diff --git a/@l10n/es-ES/CODE_OF_CONDUCT.md b/@l10n/es-ES/CODE_OF_CONDUCT.md index c8da32b3cf..ab368fcefa 100644 --- a/@l10n/es-ES/CODE_OF_CONDUCT.md +++ b/@l10n/es-ES/CODE_OF_CONDUCT.md @@ -8,19 +8,19 @@ Con el fin de fomentar un ambiente abierto y acogedor, nosotros, como contribuid Ejemplos de comportamiento que contribuyen a crear un ambiente positivo incluyen: -* Utilizar lenguaje acogedor e inclusivo -* Ser respetuoso con los diferentes puntos de vista y experiencias -* Saber aceptar las críticas constructivas -* Centrarse en lo que es lo mejor para la comunidad -* Mostrar empatía hacia otros miembros de la comunidad +- Utilizar lenguaje acogedor e inclusivo +- Ser respetuoso con los diferentes puntos de vista y experiencias +- Saber aceptar las críticas constructivas +- Centrarse en lo que es lo mejor para la comunidad +- Mostrar empatía hacia otros miembros de la comunidad Ejemplos de comportamiento que no contribuyen a crear un ambiente positivo incluyen: -* Utilizar un lenguaje o imágenes sexualizadas y atención o insinuaciones sexuales no deseadas -* Trolear, comentario insultantes/peyorativos y ataques personales o políticos -* Acoso público o en privado -* Publicar información privada de otras personas, así cómo direcciones físicas o electrónicas, sin permiso explícito -* Cualquier otra conducta que pueda ser razonablemente considerada inapropiada en un sentido profesional +- Utilizar un lenguaje o imágenes sexualizadas y atención o insinuaciones sexuales no deseadas +- Trolear, comentario insultantes/peyorativos y ataques personales o políticos +- Acoso público o en privado +- Publicar información privada de otras personas, así cómo direcciones físicas o electrónicas, sin permiso explícito +- Cualquier otra conducta que pueda ser razonablemente considerada inapropiada en un sentido profesional ## Nuestras responsabilidades diff --git a/@l10n/es-ES/CONTRIBUTING.md b/@l10n/es-ES/CONTRIBUTING.md index 4774d8e46e..48d5721c96 100644 --- a/@l10n/es-ES/CONTRIBUTING.md +++ b/@l10n/es-ES/CONTRIBUTING.md @@ -1,3 +1,3 @@ # Contribuir -Para obtener información sobre cómo contribuir a este repositorio, consulta [Contribute Documentation (XRPL.org)](https://xrpl.org/es_ES/contribute-documentation.html). \ No newline at end of file +Para obtener información sobre cómo contribuir a este repositorio, consulta [Contribute Documentation (XRPL.org)](https://xrpl.org/es_ES/contribute-documentation.html). diff --git a/@l10n/es-ES/about/faq.md b/@l10n/es-ES/about/faq.md index e428959875..ea00546e6e 100644 --- a/@l10n/es-ES/about/faq.md +++ b/@l10n/es-ES/about/faq.md @@ -1,11 +1,13 @@ --- seo: - description: Respuestas a preguntas frecuentes sobre el XRP Ledger, el ecosistema XRPL y la comunidad. + description: Respuestas a preguntas frecuentes sobre el XRP Ledger, el ecosistema XRPL y la comunidad. subtitle: Respuestas a tus preguntas XRPL labels: - Blockchain --- + ###### FAQ + # Respuestas a Tus Preguntas XRPL @@ -38,27 +40,22 @@ Todos los nodos garantizan que las transacciones cumplen los requisitos del prot Ver [Consenso](../docs/concepts/consensus-protocol/index.md) para más información sobre el proceso de consenso. - #### ¿Cuánto cuesta mantener un validador? Mantener un validador no requiere de comisiones o XRP. Es comparable al gasto de ejecutar un servidor de correo electrónico en términos de uso de electricidad. - #### ¿Qué son Las Listas de Nodos Únicos (UNLs)? Las UNLs son las listas de validadores que un participante determinado cree que no conspirarán para defraudarle. Cada operador de servidor puede elegir su propia UNL, generalmente basándose en un cojunto determinado proporcionado por un publicador de confianza. (La lista predeterminada de un publicador a veces es llamada UNL predeterminada, o _dUNL_.) - #### ¿Qué UNL debería escoger? Dado que cualquiera puede montar un validador, la carga de elegir un conjunto confiable de validadores recae sobre los participantes. Actualmente, la XRP Ledger Foundation y Ripple publican listas predeterminadas recomendadas de valiadores de alta calidad, basadas en desesmpeño pasado, identidades comprobadas, y políticas de IT responsables. Sin embargo, cada participante de la red puede elegir qué validadores considera confiables y no necesita seguir a uno de los publicadores mencionados anteriormente. - #### Si Ripple recomienda la adopción de su UNL, ¿Esto no crea un sistema centralizado? No. Cada participante elige directa o indirectamente su UNL. Si Ripple dejase de operar o actuase de manera maliciosa, los participantes pueden cambiar sus UNLs para usar una lista de un publicador diferente. - #### ¿Cuál es la estructura de incentivos para los validadores? El principal incentivo para ejecutar un validador es preservar y proteger el funcionamiento estable y la evolución sensata de la red. Son los validadores quienes deciden la evolución del XRP Ledger, por lo que cualquier negocio que utilice o dependa del XRP Ledger tiene un incentivo inherente para garantizar la confiabilidad y estabilidad de la red. Los validadores también se ganan el respeto y la buena voluntad de la comunidad al contribuir de esta manera. @@ -67,12 +64,10 @@ Si ejecutas un servidor XRP Ledger para participar en la red, el costo y el esfu Para ver ejemplos de cómo los incentivos pueden distorsionar el comportamiento de validación, lee sobre [valor extraíble del minero (MEV en inglés)](https://arxiv.org/abs/1904.05234). - #### ¿Pueden las instituciones financieras establecer validadores de transacciones para ayudarlas a cumplir estándares y requisitos institucionales específicos? No, las instituciones no pueden configurar políticas de validación personalizadas para elegir permitir algunas transacciones y rechazar otras. Los validadores siguen el protocolo o no. Si el software no sigue las reglas del protocolo, no funciona. Por lo tanto, no se recomienda que las instituciones busquen implementaciones personalizadas sin experiencia interna. - #### ¿Qué pasa si más del 20% de los nodos de la red no están de acuerdo con la mayoría? ¿Cómo se elige la versión final del ledger? Normalmente, si hay una disputa sobre la validez de una transacción, esa transacción se pospone hasta que la mayoría pueda llegar a un acuerdo. Pero si más del 20% de la red no siguiera las mismas reglas de protocolo que la mayoría, la red se detendría temporalmente. Podría reanudarse cuando los participantes reconfiguren sus UNL en función de aquellos que quieran llegar a un consenso entre ellos. Se desea este retraso temporal en el procesamiento en lugar de duplicar el gasto. @@ -83,7 +78,6 @@ Sin embargo, sólo puede haber una última versión del ledger _validated_ en un Para obtener más información sobre cómo se comporta el mecanismo de consenso del XRP Ledger en situaciones adversas, consulta [Protecciones de consenso contra ataques y modos de fallo](../docs/concepts/consensus-protocol/consensus-protections.md). - #### ¿El XRP Ledger tiene un proceso formal para añadir validadores? No, un proceso formal para agregar validadores no es compatible con XRP Ledger, porque es un sistema sin autoridad central. @@ -92,28 +86,24 @@ Los publicadores de UNL predeterminados individuales establecen sus propias pol Para recomendaciones y mejores prácticas, consulta [Ejecutar `rippled` como validador](../docs/infrastructure/configuration/server-modes/run-rippled-as-a-validator.md). - #### Si la dUNL tiene lmayor influencia en la red, ¿quiere decir que XRPL es centralizado? + Los validadores pueden optar por no utilizar la dUNL o cualquier UNL ampliamente utilizada. Cualquiera puede crear una nueva UNL en cualquier momento. Puede haber varias UNL en uso en la misma red. Cada operador puede personalizar la UNL de su propio servidor o elegir seguir una lista recomendada diferente. Todos estos servidores todavía pueden ejecutar la misma cadena y llegar a un consenso entre sí. Sin embargo, si tu UNL no coincide lo suficiente con las UNL utilizadas por otros, existe el riesgo de que su servidor se separe (fork) del resto de la red. Siempre que tu UNL tenga > 90 % de superposición con la utilizada por las personas con las que transaccionas, estás completamente a salvo de bifurcarte. Si tiene menos superposición, es posible que aún puedas seguir la misma cadena, pero las posibilidades de bifurcarte aumentan con una menor superposición, peor conectividad de red y la presencia de validadores maliciosos o poco confiables en tu UNL. - ## Papel de XRP - #### ¿Cuál es el proposito de XRP? XRP se creó como el activo nativo de XRP Ledger para potenciar una nueva generación de pagos digitales: más rápidos, más ecológicos y más baratos que cualquier activo digital anterior. También sirve para proteger el ledger del spam y para [conectar divisas](../docs/concepts/tokens/decentralized-exchange/autobridging.md) en el exchange descentralizado del XRP Ledger, cuando hacerlo es beneficioso para los usuarios. Con el tiempo, la comunidad XRP Ledger ha sido pionera en nuevos [casos de uso](/about/uses) para XRP, al igual que el propio XRP Ledger. - #### ¿Cómo responde el XRP Ledger al flood de transaciones? El XRP Ledger está diseñado para establecer el [coste de transacción](../docs/concepts/transactions/transaction-cost.md) dinámicamente en función de la demanda como una medida antispam. El impacto de cualquier posible manipulación de XRP es minimizado a medida que la red crece, crece la capitalización y crece el volumen de transacciones. - #### ¿Qué ocurre con el lavado de dinero y la actividad económica sospechosa? @@ -124,10 +114,8 @@ Ripple se compromete a monitorear e informar cualquier indicador AML en la red X [XRP Forensics / xrplorer](https://xrplorer.com/) mantiene una lista de asesoramiento para rastrear y minimizar el lavado de dinero, las estafas, el fraude y el uso ilícito del XRP Ledger. Los exchanges y otros proveedores de servicios pueden utilizar este servicio para prevenir y reaccionar ante delitos financieros. - ## Consideraciones de seguridad - #### ¿Cuál es el proceso para revisar las contribuciones de código de terceros? El proceso de contribución de código comienza cuando un desarrollador abre una [pull request](https://docs.github.com/en/github/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests) a un repositorio de código fuente como el [repositorio `rippled`](https://github.com/xrplf/rippled/), que contiene la implementación de referencia de Ripple del núcleo del servidor y del protocolo de XRP Ledger. @@ -136,7 +124,6 @@ Este pull request activa pruebas unitarias y de integración automatizadas, así Una vez que el pull request pasa las pruebas automatizadas y recibe la aprobación de los revisores, un [mantenedor del repositorio](https://opensource.guide/best-practices/) confiable puede prepararlo para su inclusión en la próxima versión beta. - #### ¿Ripple posee o controla el XRP Ledger o la red XRP Ledger? No, Ripple no posee ni controla el XRP Ledger o la red XRP Ledger. @@ -145,7 +132,6 @@ Ripple contribuye a una implementación de referencia del nucleo del servidor de Varias entidades publican listas de validadores recomndadados (UNLs). Desde julio de 2023, Ripple mantiene solo uno de los 35 validadores que están en la UNL por defecto. - #### ¿El XRP Ledger distingue entre el código base para la validación y el del software del usuario? Sí. Hay varias [librerías de cliente para XRP Ledger](../docs/references/client-libraries.md) que están destinadas a desarrolladores de software de usuario. Estas librerias tienen distintos códigos base y repositorios del [núcleo del servidor XRP Ledger](../docs/concepts/networks-and-servers/index.md) que alimenta la red y valida las transacciones. diff --git a/@l10n/es-ES/about/privacy-policy.md b/@l10n/es-ES/about/privacy-policy.md index 7033063c32..9a9c8e4793 100644 --- a/@l10n/es-ES/about/privacy-policy.md +++ b/@l10n/es-ES/about/privacy-policy.md @@ -1,8 +1,9 @@ --- seo: - title: Política de privacidad - description: Esta política describe cómo MTU XRP Ledger Trust respeta tu privacidad y detalla la recopilación, uso, y divulgación de los datos involucrados en el uso de este servicio. + title: Política de privacidad + description: Esta política describe cómo MTU XRP Ledger Trust respeta tu privacidad y detalla la recopilación, uso, y divulgación de los datos involucrados en el uso de este servicio. --- + # Política de privacidad de XRPL.org Última actualización: 20 de enero, 2023 @@ -13,14 +14,14 @@ MTU XRP Ledger Trust (“MTU XRP Ledger Trust”, "Nosotros"", "Nuestro") respet Para los fines de esta Política de Privacidad: -* _Compañía_ - (referida como "MTU XRP Ledger Trust", "Nosotros", "Nuestro" en esta política) se refiere a XRPL.org -* _Cookies_ - son pequeños ficheros que se colocan en tu ordenador, dispositivo móvil o cualquier otro dispositivo por un sitio web, conteniendo detalles de tu historial de navegación en ese sitio web entre sus muchos usos. -* _Dispositivo_ - significa cualquier dispositivo que puede acceder al servicio, como un ordenador, un teléfono móvil o una tablet digital. -* _Datos personales_ - es cualquier información que se relacione con un usuario identificado o identificable. -* _Servicio_ - se refiere a este sitio web XRPL.org. -* _Proveedor de servicios_ - significa cualquier persona normal o jurídica que procesa los datos en nombre de MTU XRP Ledger Trust. Se refiere a tercaras compañías o individuos contratados por MTU XRP Ledger Trust para facilitar el Servicio, para proveer el Servicio en nombre de MTU XRP Ledger Trust, para realizar servicios relacionados con el Servicio o para asistir a MTU XRP Ledger Trust analizando como el Servicio es utilizado. -* _Datos de Uso_ - se refiere a datos recopilados automáticamente, generados por el uso del Servicio o la infraestructura del Servicio en sí (por ejemplo, la duración de una página visitada). -* _Tú_ - significa el individuo que accede o usa el Servicio, o MTU XRP Ledger Trust, u otra entidad legal en nombre de la cual dicho individuo accede al Servicio, según corresponda. +- _Compañía_ - (referida como "MTU XRP Ledger Trust", "Nosotros", "Nuestro" en esta política) se refiere a XRPL.org +- _Cookies_ - son pequeños ficheros que se colocan en tu ordenador, dispositivo móvil o cualquier otro dispositivo por un sitio web, conteniendo detalles de tu historial de navegación en ese sitio web entre sus muchos usos. +- _Dispositivo_ - significa cualquier dispositivo que puede acceder al servicio, como un ordenador, un teléfono móvil o una tablet digital. +- _Datos personales_ - es cualquier información que se relacione con un usuario identificado o identificable. +- _Servicio_ - se refiere a este sitio web XRPL.org. +- _Proveedor de servicios_ - significa cualquier persona normal o jurídica que procesa los datos en nombre de MTU XRP Ledger Trust. Se refiere a tercaras compañías o individuos contratados por MTU XRP Ledger Trust para facilitar el Servicio, para proveer el Servicio en nombre de MTU XRP Ledger Trust, para realizar servicios relacionados con el Servicio o para asistir a MTU XRP Ledger Trust analizando como el Servicio es utilizado. +- _Datos de Uso_ - se refiere a datos recopilados automáticamente, generados por el uso del Servicio o la infraestructura del Servicio en sí (por ejemplo, la duración de una página visitada). +- _Tú_ - significa el individuo que accede o usa el Servicio, o MTU XRP Ledger Trust, u otra entidad legal en nombre de la cual dicho individuo accede al Servicio, según corresponda. ## Recopilación y uso de tus datos @@ -36,9 +37,9 @@ Nosotros también podemos recopilar información que Tu navegador envía cada ve Nosotros utilizamos Cookies y tecnologías de seguimiento similares para rastrear la actividad en Nuestro Servicio y almacenar cierta información. Las tecnologías de seguimiento utilizadas son beacons, tags y scripts para recopilar y rastrear información y para mejorar y analizar Nuestro Servicio. Las tecnologías que utilizamos pueden incluir: -* _Cookies o Cookies del Navegador_ - Una cookie es un pequeño archivo colocado en Tu Dispositivo. Puede instruir a Tu navegador para que rechace todas las Cookies o para que te indique cuándo se envía una Cookie. Sin embargo, si Tu no aceptas Cookies, es posible que no puedas utilizar algunas partes de nuestro Servicio. A menos que hayas ajustado Tu configuración del navegador para que rechace Cookies, nuestro Servicio puede utilizar Cookies. -* _Cookies Flash_ - Ciertas funciones de nuestro Servicio pueden utilizar objetos almacenados localmente (o Cookies Flash) para recopilar y almacenar información sobre Tus preferencias o Tu actividad en nuestro Servicio. Las Cookies Flash no son administradas por la misma configuración del navegador que se utiliza para las Cookies del Navegador. -* _Web Beacons_ - Ciertas secciones de nuestro Servicio pueden contener pequeños archivos electrónicos conocidos como web beacons (también denominadas clear gifs, pixel tags y gifs de píxeles únicos) que permiten a la Compañía, por ejemplo, contar usuarios que han visitado esas páginas o abierto un correo electrónico y para otras estadísticas relacionadas con el sitio web (por ejemplo, registrar la popularidad de una cierta sección y verificar la integridad del sistema y del servidor). +- _Cookies o Cookies del Navegador_ - Una cookie es un pequeño archivo colocado en Tu Dispositivo. Puede instruir a Tu navegador para que rechace todas las Cookies o para que te indique cuándo se envía una Cookie. Sin embargo, si Tu no aceptas Cookies, es posible que no puedas utilizar algunas partes de nuestro Servicio. A menos que hayas ajustado Tu configuración del navegador para que rechace Cookies, nuestro Servicio puede utilizar Cookies. +- _Cookies Flash_ - Ciertas funciones de nuestro Servicio pueden utilizar objetos almacenados localmente (o Cookies Flash) para recopilar y almacenar información sobre Tus preferencias o Tu actividad en nuestro Servicio. Las Cookies Flash no son administradas por la misma configuración del navegador que se utiliza para las Cookies del Navegador. +- _Web Beacons_ - Ciertas secciones de nuestro Servicio pueden contener pequeños archivos electrónicos conocidos como web beacons (también denominadas clear gifs, pixel tags y gifs de píxeles únicos) que permiten a la Compañía, por ejemplo, contar usuarios que han visitado esas páginas o abierto un correo electrónico y para otras estadísticas relacionadas con el sitio web (por ejemplo, registrar la popularidad de una cierta sección y verificar la integridad del sistema y del servidor). Las Cookies pueden ser "Persistentes" o de "Sesión". Las Cookies Persistentes permanecen en Tu computadora personal o dispositivo móvil cuando te desconectas, mientras que las Cookies de Sesión se eliminan tan pronto como cierras Tu navegador web. @@ -79,11 +80,11 @@ Bajo ciertas circunstancias, La Compañía puede estar obligada a divulgar Tus D La Compañía puede divulgar Tus Datos de Uso en creencia de buena fe de que dicha accion es necesaria para: -* Cumplir con una obligación legal -* Proteger y defender los derechos y propiedades de La Compañía -* Prevenir o investigar posibles irregularidades en relación con el Servicio -* Proteger la seguridad personal de los Usuarios del Servicio o del público -* Protegerse contra la responsabilidad legal +- Cumplir con una obligación legal +- Proteger y defender los derechos y propiedades de La Compañía +- Prevenir o investigar posibles irregularidades en relación con el Servicio +- Proteger la seguridad personal de los Usuarios del Servicio o del público +- Protegerse contra la responsabilidad legal ## Seguridad de Tus Datos Personales diff --git a/@l10n/es-ES/community/report-a-scam.md b/@l10n/es-ES/community/report-a-scam.md index 591741af29..cc9332d5d2 100644 --- a/@l10n/es-ES/community/report-a-scam.md +++ b/@l10n/es-ES/community/report-a-scam.md @@ -2,27 +2,28 @@ html: report-a-scam.html parent: contribute.html --- + # Reportar una estafa En una industria que evoluciona dónde la confianza y la seguridad son críticas, las estafas continuan impidiendo el progreso en cripto y blockchain. Individuos y equipos de la comunidad XRP Ledger, como el equipo de Xrplorer forensics, ayuda a mitigar a esos timadores ofreciendo herramientas gratuitas para reportar estafas. ## Tomar medidas + Si piensas que has sido estafado, asegúrate de recoleccionar toda la información que puedas sobre la estafa y el estafador tan pronto como sea posible. Revisa las opciones abajo de cómo tomar medidas. **Atención:** Por favor, ten en cuenta que _nadie_ puede congelar cuentas o revertir transacciones en el XRP Ledger. Esto es debido al diseño descentralizado de la blockchain del XRP Ledger. 1. Envía la cartera del estafador al [equipo Xrplorer forensics](https://xrplorer.com/forensics/submit). - Esto ayuda a marcar cuentas usadas en actividades ilicitas e las incluye en un monitoreo adicional, auto-trazable, y con advertencias a otros usuarios, carteras, y exchanges. + Esto ayuda a marcar cuentas usadas en actividades ilicitas e las incluye en un monitoreo adicional, auto-trazable, y con advertencias a otros usuarios, carteras, y exchanges. 2. Reporta tu caso a tu autoridad policial local. Si el estafador es arrestado, es posible que consigas tu dinero de vuelta. 3. Si el estafador envió tu XRP a un exchange, asegúrate de contactar con el equipo de soporte del exchange. El exchange puede congelar la cuenta del estafador en el exchange. Aquí hay enlaces de soporte a unos cuantos exchanges conocidos: - - - [Binance](https://www.binance.com/en/support) - - [Coinbase](https://help.coinbase.com/) - - [Uphold](https://support.uphold.com/hc/en-us/requests/new) - - [Bitrue](https://www.bitrue.com/exchange-web/footer/contactus.html) + - [Binance](https://www.binance.com/en/support) + - [Coinbase](https://help.coinbase.com/) + - [Uphold](https://support.uphold.com/hc/en-us/requests/new) + - [Bitrue](https://www.bitrue.com/exchange-web/footer/contactus.html) 4. Si el estafador intercambió XRP por otro token en el XRP Ledger, contacta con el emisor del token. El emisor podría ser capaz [congelar la línea de confianza del estafador]((../docs/tutorials/how-tos/use-tokens/freeze-a-trust-line.md) de prevenir que el estafador pueda enviar esos tokens a otras personas. diff --git a/@l10n/es-ES/docs/concepts/accounts/account-types.md b/@l10n/es-ES/docs/concepts/accounts/account-types.md index b71b6a2ee5..ee122ec9cd 100644 --- a/@l10n/es-ES/docs/concepts/accounts/account-types.md +++ b/@l10n/es-ES/docs/concepts/accounts/account-types.md @@ -2,21 +2,21 @@ html: account-types.html parent: accounts.html seo: - description: Los negocios que envían transacciones en el XRP Ledger automáticamente, deben configurar direcciones separadas para diferentes propósitos para minimizar el riesgo. + description: Los negocios que envían transacciones en el XRP Ledger automáticamente, deben configurar direcciones separadas para diferentes propósitos para minimizar el riesgo. labels: - Tokens - Seguridad --- + # Tipos de cuenta {% partial file="/docs/_snippets/issuing-and-operational-addresses-intro.md" /%} - ## Ciclo de vida de los fondos Cuando un emisor de tokens sigue esta separacion de roles, los fondos tienden a fluir en direcciones específicas, como se muetra en el siguiente diagrama: -[{% inline-svg file="/docs/img/issued-currency-funds-flow.svg" /%}](/docs/img/issued-currency-funds-flow.svg "Diagrama: Los fondos fluyen desde la dirección emisora hasta las direcciones de reserva, a direcciones operacionales, hacia las direcciones de clientes y socios, y finalmente de regreso a la dirección emisora.") +[{% inline-svg file="/docs/img/issued-currency-funds-flow.svg" /%}](/docs/img/issued-currency-funds-flow.svg 'Diagrama: Los fondos fluyen desde la dirección emisora hasta las direcciones de reserva, a direcciones operacionales, hacia las direcciones de clientes y socios, y finalmente de regreso a la dirección emisora.') La dirección emisora crea tokens enviando pagos a direcciones de reserva. Esos tokens tienen un valor negativo desde la perspectiva de la dirección emisora, ya que (a menudo) representan obligaciones. Los mismos tokens tienen valor positivo desde la otras perspectivas, incluyendo desde la perspectiva de las direcciones de reserva. @@ -28,7 +28,6 @@ Como siempre, los pagos con tokens deben moverse a través de líneas de confian Eventualmente, alguien envía tokens de vuelta al emisor. Esto destruye esos tokens, reduciendo las obligaciones del emisor con el XRP Ledger. Si el token es una stablecoin, esto es el primer paso para canjear los tokens por los activos correspondientes fuera del ledger. - ## Dirección emisora La dirección emisora es como una caja fuerte. Los socios, clientes y direcciones operacionales crean, líneas de confianza (trust lines) a la dirección emisora, pero esta dirección envía la menor cantidad de transacciones posibles. Periodícamente, un operador humano crea y firma una transacción desde la dirección emisora para recargar los balances de una dirección operacional o de reserva. Idealmente, la clave secreta utilizada para firmar esas transacciones nunca debería ser accesible desde ningun equipo conectado a Internet. @@ -43,7 +42,6 @@ Si un actor malicioso descubre la clave secreta de la dirección emisora de una Una institución financiera puede emitir más de un token en el XRP Ledger desde una única dirección de emisión. Sin embargo, hay algunas configuraciones que se aplican por igual a todos los tokens (fungibles) emitidos desde una dirección, incluido el porcentaje de [comisiones de transferencia](../tokens/fungible-tokens/transfer-fees.md) y el estado [congelación global](../tokens/fungible-tokens/freezes.md). Si la intitución financiera quiere la flexibilidad de manejar las configuraciones de distinta manera para cada token, la institución debe tener múltiples direcciones emisoras. - ## Direcciones operacionales Una dirección operacional es como una caja registradora. Realiza pagos en nombre de la institución para transferir tokens a clientes y socios. Para firmar transacciones automáticamente, la clave secreta para una dirección operacional debe ser alacenada en un servidor que está conectado a Internet. (La clave secreta puede estar almacenada encriptada, pero el servidor debe desencriptarla para firmar las transacciones.) Clientes y socios no crean ni deben crear trust lines a direcciones operacionales. @@ -54,10 +52,9 @@ Cada dirección operacional tiene un balance limitado de tokens y XRP. Cuando el Si un actor malicioso descubre la clave secreta detrás de una dirección operacional, la institución financiera sólo puede perder tanto como esa dirección operacional contiene. La institución puede cambiar a una nueva dirección operacional sin que los clientes y socios tengan que realizar ninguna acción. - ## Direcciones de reserva -Otro paso opcional que una institución puede equilibrar el riesgo y la convivencia es utilizada como "direcciones de reserva" como paso intermedio entre la dirección emisora y las direcciones operativas. La institución puede financiar direcciones XRP Ledger adicionales como direcciones de reserva, cuyas claves no están disponibles para los servidores siempre en línea, sino que confian a diferentes usuarios confiables. +Otro paso opcional que una institución puede equilibrar el riesgo y la convivencia es utilizada como "direcciones de reserva" como paso intermedio entre la dirección emisora y las direcciones operativas. La institución puede financiar direcciones XRP Ledger adicionales como direcciones de reserva, cuyas claves no están disponibles para los servidores siempre en línea, sino que confian a diferentes usuarios confiables. Cuando una dirección operacional se está quedando sin fondos (ya sea tokens o XRP), un usuario confiable pueed utilizar su dirección de reserva para recargar el balance de una dirección operacional. Cuando una dirección de reserva se queda sin fondos, la institución puede usar la dirección emisora para enviar más fondos a la dirección de reserva en una sola transacción, y la dirección de reserva puede distribuir esos fondos entre sí si es necesario. Esto mejora la seguridad de la dirección emisora, permitíendole hacer menos transacciones, sin dejar demasiado dinero en un único sistema automatizado. @@ -67,18 +64,17 @@ Como con las direcciones operacionales, una direccion de reserva debe tener una Si una dirección de reserva se ve comprometida, las consecuencias son similares a las de una dirección operacional. Un actor malintencionado puede robar cualquier saldo que posea la dirección de reserva, y la institución financiera puede cambiar a una nueva dirección de reserva sin que los clientes y socios realicen ninguna acción. - ## Ver también - **Conceptos:** - - [Cuentas](index.md) - - [Claves criptográficas](cryptographic-keys.md) + - [Cuentas](index.md) + - [Claves criptográficas](cryptographic-keys.md) - **Tutoriales:** - - [Asignar par de claves regulares](../../tutorials/how-tos/manage-account-settings/assign-a-regular-key-pair.md) - - [Cambiar o eliminar par de claves regulares](../../tutorials/how-tos/manage-account-settings/change-or-remove-a-regular-key-pair.md) + - [Asignar par de claves regulares](../../tutorials/how-tos/manage-account-settings/assign-a-regular-key-pair.md) + - [Cambiar o eliminar par de claves regulares](../../tutorials/how-tos/manage-account-settings/change-or-remove-a-regular-key-pair.md) - **Referencias:** - - [metodo account_info][] - - [Transacción SetRegularKey][] - - [Objeto AccountRoot](../../references/protocol/ledger-data/ledger-entry-types/accountroot.md) + - [metodo account_info][] + - [Transacción SetRegularKey][] + - [Objeto AccountRoot](../../references/protocol/ledger-data/ledger-entry-types/accountroot.md) {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/@l10n/es-ES/docs/concepts/accounts/addresses.md b/@l10n/es-ES/docs/concepts/accounts/addresses.md index 4237382846..82d664489d 100644 --- a/@l10n/es-ES/docs/concepts/accounts/addresses.md +++ b/@l10n/es-ES/docs/concepts/accounts/addresses.md @@ -2,10 +2,11 @@ html: addresses.html parent: accounts.html seo: - description: Las direcciones identifican de manera única las cuentas del XRP Ledger, utilizando el formato base58. + description: Las direcciones identifican de manera única las cuentas del XRP Ledger, utilizando el formato base58. labels: - Cuentas --- + # Direcciones {% partial file="/docs/_snippets/data_types/address.md" /%} @@ -14,20 +15,17 @@ Cualquier dirección válida puede [convertirse en una cuenta en el XRP Ledger]( Crear una dirección válida es una tarea estríctamente matemática que empieza con el par de claves. Puedes generar un par de claves y calcular su dirección completamente offline sin comunicarte con el XRP Ledger o con cualquier otra entidad. La conversión desde una clave pública a una dirección implica una función hash unidireccional, por lo que es posible confirmar que esa clave pública coincide con una dirección pero es imposible derivar la clave pública únicamente a partir de la dirección. (Esta es parte de la razón por la que las transacciones firmadas incluyen la clave pública _y_ la dirección del remitente.) - ## Direcciones especiales Algunas direcciones tienen un significado especial, o usos históricos, en el XRP Ledger. En muchos casos, se tratan de direcciones "black hole" o agujero negro, lo que significa que la dirección no se deriva de una clave secreta conocida. Como es efectivamente imposible adivinar una clave secreta a partir de una sola dirección, cualquier XRP que posean direcciones black hole estarán perdidos para siempre. - -| Dirección | Nombre | Significado | ¿Black Hole? | -|-------------------------------|--------|-------------|--------------| -| `rrrrrrrrrrrrrrrrrrrrrhoLvTp` | ACCOUNT\_ZERO | Una dirección que es la codificación en [base58][] en el XRP Ledger del valor `0`. En comunicaciones peer-to-peer, `rippled` utiliza esta dirección como el emisor de XRP. | Sí | -| `rrrrrrrrrrrrrrrrrrrrBZbvji` | ACCOUNT\_ONE | Una dirección que es la codificación en [base58][] en el XRP Ledger del valor `1`. En el ledger, las [entradas RippleState](../../references/protocol/ledger-data/ledger-entry-types/ripplestate.md) utilizan esta dirección como marcador de posición para el emisor de un balance de una trust line. | Sí | -| `rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh` | La cuenta génesis | Cuando `rippled` inicia un nuevo ledger génesis desde el principio (por ejemplo, en modo solitario), esta cuenta contiene todo el XRP. Esta cuenta es generada con el valor semilla `masterpassphrase` el cual está [hard-coded](https://github.com/XRPLF/rippled/blob/94ed5b3a53077d815ad0dd65d490c8d37a147361/src/ripple/app/ledger/Ledger.cpp#L184). | No | -| `rrrrrrrrrrrrrrrrrNAMEtxvNvQ` | black hole de reserva de nombre de Ripple | En el pasado, Ripple pedía a los usuarios enviar XRP a esta cuenta para reservar nombres Ripple.| Sí | -| `rrrrrrrrrrrrrrrrrrrn5RM1rHd` | Dirección NaN | Versiones previas de [ripple-lib](https://github.com/XRPLF/xrpl.js) generaban esta dirección cuando se codificaba el valor [NaN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NaN) utilizan el formato de codificación [base58][] del XRP Ledger. | Sí | - +| Dirección | Nombre | Significado | ¿Black Hole? | +| ------------------------------------ | ----------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------ | +| `rrrrrrrrrrrrrrrrrrrrrhoLvTp` | ACCOUNT_ZERO | Una dirección que es la codificación en [base58][] en el XRP Ledger del valor `0`. En comunicaciones peer-to-peer, `rippled` utiliza esta dirección como el emisor de XRP. | Sí | +| `rrrrrrrrrrrrrrrrrrrrBZbvji` | ACCOUNT_ONE | Una dirección que es la codificación en [base58][] en el XRP Ledger del valor `1`. En el ledger, las [entradas RippleState](../../references/protocol/ledger-data/ledger-entry-types/ripplestate.md) utilizan esta dirección como marcador de posición para el emisor de un balance de una trust line. | Sí | +| `rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh` | La cuenta génesis | Cuando `rippled` inicia un nuevo ledger génesis desde el principio (por ejemplo, en modo solitario), esta cuenta contiene todo el XRP. Esta cuenta es generada con el valor semilla `masterpassphrase` el cual está [hard-coded](https://github.com/XRPLF/rippled/blob/94ed5b3a53077d815ad0dd65d490c8d37a147361/src/ripple/app/ledger/Ledger.cpp#L184). | No | +| `rrrrrrrrrrrrrrrrrNAMEtxvNvQ` | black hole de reserva de nombre de Ripple | En el pasado, Ripple pedía a los usuarios enviar XRP a esta cuenta para reservar nombres Ripple. | Sí | +| `rrrrrrrrrrrrrrrrrrrn5RM1rHd` | Dirección NaN | Versiones previas de [ripple-lib](https://github.com/XRPLF/xrpl.js) generaban esta dirección cuando se codificaba el valor [NaN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NaN) utilizan el formato de codificación [base58][] del XRP Ledger. | Sí | ## Codificación de una dirección @@ -39,11 +37,11 @@ Las direcciones XRP Ledger están codificadas utilizando [base58][] con el _dicc El siguiente diagrama muestra la relación entre las claves y las direcciones: -[{% inline-svg file="/docs/img/address-encoding.svg" /%}](/docs/img/address-encoding.svg "Clave pública maestra + Prefijo Tipo → ID de cuenta + Checksum → Dirección") +[{% inline-svg file="/docs/img/address-encoding.svg" /%}](/docs/img/address-encoding.svg 'Clave pública maestra + Prefijo Tipo → ID de cuenta + Checksum → Dirección') La fórmula para calcular direcciones XRP Ledger desde una clave pública es la siguiente. Para ver el código de ejemplo completo, consulta [`encode_address.js`](https://github.com/XRPLF/xrpl-dev-portal/blob/master/content/_code-samples/address_encoding/js/encode_address.js). Para el proceso de derivar la clave pública desde una passphrase a un valor semilla, consulta [Derivación de clave](cryptographic-keys.md#key-derivation). -1. Importa los algoritmos necesarios: SHA-256, RIPEMD160, y base58. Configura el diccionario para base58. +1. Importa los algoritmos necesarios: SHA-256, RIPEMD160, y base58. Configura el diccionario para base58. ``` 'use strict'; @@ -56,7 +54,7 @@ La fórmula para calcular direcciones XRP Ledger desde una clave pública es la assert(crypto.getHashes().includes('ripemd160')); ``` -2. Empieza con una clave pública 33-byte ECDSA secp256k1, o una clave pública 32-byte Ed25519. Para claves Ed25519, prefija la clave con el byte `0xED`. +2. Empieza con una clave pública 33-byte ECDSA secp256k1, o una clave pública 32-byte Ed25519. Para claves Ed25519, prefija la clave con el byte `0xED`. ``` const pubkey_hex = @@ -65,7 +63,7 @@ La fórmula para calcular direcciones XRP Ledger desde una clave pública es la assert(pubkey.length == 33); ``` -3. Calcula el hash [RIPEMD160](https://en.wikipedia.org/wiki/RIPEMD) del hash SHA-256 de la clave pùblica. Este valor es el ID de cuenta o "Account ID". +3. Calcula el hash [RIPEMD160](https://en.wikipedia.org/wiki/RIPEMD) del hash SHA-256 de la clave pùblica. Este valor es el ID de cuenta o "Account ID". ``` const pubkey_inner_hash = crypto.createHash('sha256').update(pubkey); @@ -74,7 +72,7 @@ La fórmula para calcular direcciones XRP Ledger desde una clave pública es la const account_id = pubkey_outer_hash.digest(); ``` -4. Calcula el hash SHA-256 hash del hash SHA-256 del Account ID; toma los 4 primeros bytes. Este valor es el "checksum". +4. Calcula el hash SHA-256 hash del hash SHA-256 del Account ID; toma los 4 primeros bytes. Este valor es el "checksum". ``` const address_type_prefix = Buffer.from([0x00]); @@ -84,7 +82,7 @@ La fórmula para calcular direcciones XRP Ledger desde una clave pública es la const checksum = chksum_hash2.slice(0,4); ``` -5. Concatena el payload y el checksum. Calcula el valor base58 del buffer concatenado. El resultado es la dirección. +5. Concatena el payload y el checksum. Calcula el valor base58 del buffer concatenado. El resultado es la dirección. ``` const dataToEncode = Buffer.concat([payload, checksum]); diff --git a/@l10n/es-ES/docs/concepts/accounts/cryptographic-keys.md b/@l10n/es-ES/docs/concepts/accounts/cryptographic-keys.md index 1fff285868..0f98da73d8 100644 --- a/@l10n/es-ES/docs/concepts/accounts/cryptographic-keys.md +++ b/@l10n/es-ES/docs/concepts/accounts/cryptographic-keys.md @@ -2,11 +2,12 @@ html: cryptographic-keys.html parent: accounts.html seo: - description: Utiliza las claves criptográficas para aprobar transacciones para que el XRP Ledger pueda ejecutarlas. + description: Utiliza las claves criptográficas para aprobar transacciones para que el XRP Ledger pueda ejecutarlas. labels: - Smart Contracts - Seguridad --- + # Claves criptográficas En el XRP Ledger, una firma digital _autoriza_ a una [transacción](../transactions/index.md) a hacer un grupo específico de acciones. Solo las transacciones firmadas pueden ser enviadas a la red y ser incluidas en un ledger validado. @@ -19,14 +20,13 @@ Para realizar una firma digital, utilizas un par de claves criptográficas asoci Muchas [librerías de cliente](../../references/client-libraries.md) y aplicaciones pueden generar un par de claves adecuadas para usar con el XRP Ledger. Sin embargo, solo deberías utilizar los pares de claves que fueron generados en dispositivos y software en los que confías. Las aplicaciones comprometidas pueden exponer tu secreto a usuarios maliciosos que pueden enviar transacciones desde tu cuenta luego. - ## Componentes de clave Un par de claves criptográficas es una **clave privada** y una **clave pública** que están conectadas matemáticamente a través de un proceso de derivación de claves. Cada clave es un número; la clave privada debería elegirse usando una fuente de aleatoriedad fuerte. El [algoritmo de firma criptográfica](#algoritmos-de-firma) define el proceso de derivación de claves y establece restricciones en los números que pueden ser claves criptográficas. Al tratar con el XRP Ledger, también puedes utilizar algunos valores relacionados como passphrase, semilla, ID de cuenta, y dirección. -[{% inline-svg file="/docs/img/cryptographic-keys.svg" /%}](/docs/img/cryptographic-keys.svg "Diagrama: Passphrase → Semilla → Clave privada → Clave pública → ID de cuenta ←→ Dirección") +[{% inline-svg file="/docs/img/cryptographic-keys.svg" /%}](/docs/img/cryptographic-keys.svg 'Diagrama: Passphrase → Semilla → Clave privada → Clave pública → ID de cuenta ←→ Dirección') _Figura: Una vista simplificada de la relación entre los valores de clave criptográfica._ La passphrase, semilla, y la clave privada son **secretos**: si conoces alguno de estos valores para una cuenta, puedes generar firmas válidas y tienes el control total sobre la cuenta. Si tienes una cuenta, se **muy cuidadoso** con la información secreta de tu cuenta. Si no tienes estos secretos, no puedes usar tu cuenta. Si alguien más tiene acceso a ellos, puede tener el control de tu cuenta. @@ -37,11 +37,11 @@ Para más detalles técnicos y como la derivación de clave funciona, ver [Deriv ### Passphrase -Puedes, opcionalmente, usar una passphrase u algún otro valor de entrada como forma de elegir una semilla o una clave privada. Esto es menos seguro que elegir la semilla o la clave privada desde la aleatoriedad, pero hay algunos casos excepcionales dónde quieras hacer esto. (Por ejemplo, en 2018 "XRPuzzler" regaló XRP a la primera persona [en resolver un puzzle](https://bitcoinexchangeguide.com/cryptographic-puzzle-creator-xrpuzzler-offers-137-xrp-reward-to-anyone-who-can-solve-it/); él utilizó la solución del puzzle como la passphrase para la cuenta que tenía el premio en XRP.) +Puedes, opcionalmente, usar una passphrase u algún otro valor de entrada como forma de elegir una semilla o una clave privada. Esto es menos seguro que elegir la semilla o la clave privada desde la aleatoriedad, pero hay algunos casos excepcionales dónde quieras hacer esto. (Por ejemplo, en 2018 "XRPuzzler" regaló XRP a la primera persona [en resolver un puzzle](https://bitcoinexchangeguide.com/cryptographic-puzzle-creator-xrpuzzler-offers-137-xrp-reward-to-anyone-who-can-solve-it/); él utilizó la solución del puzzle como la passphrase para la cuenta que tenía el premio en XRP.) La passphrase es información secreta, por lo que debes protegerla con mucho cuidado. Cualquiera que conozca la passphrase de la dirección tiene control total efectivo sobre la cuenta. -### Semilla +### Semilla Un valor _semilla_ es un valor compacto que se utiliza para [derivar](#derivación-de-claves) las claves privada y pública actual de una cuenta. En la respuesta de un [método wallet_propose][], las `master_key`, `master_seed`, y `master_seed_hex` todas representan el mismo valor semilla, en varios formatos. Cualquiera de esos formatos puede ser utilizado para firmar transacciones. A pesar de tener el prefijo `master_`, las claves que esta semilla representa no necesariamente representan las claves maestras de una cuenta; puedes usar un par de claves como una clave normal o un miembro de una lista de firmantes. @@ -59,10 +59,9 @@ La _clave pública_ es un valor utilizado para verificar la autenticidad de una Las transacciones en el XRP Ledger deben incluir las claves públicas para que la red pueda verificar las firmas de las transacciones. La clave pública no se puede utilizar para crear firmas válidas, así que es seguro compartirla públicamente. - ### ID de cuenta y dirección -El **ID de cuenta** es el identificador principal para una [cuenta](index.md) o para un par de claves. Se deriva de la clave pública. En el protocolo XRP Ledger, el ID de cuenta es un dato binario de 20 bytes. La mayoría de las APIs XRP Ledger representan la Account ID como una dirección, en uno de dos formatos: +El **ID de cuenta** es el identificador principal para una [cuenta](index.md) o para un par de claves. Se deriva de la clave pública. En el protocolo XRP Ledger, el ID de cuenta es un dato binario de 20 bytes. La mayoría de las APIs XRP Ledger representan la Account ID como una dirección, en uno de dos formatos: - Una "dirección clásica" escribe una ID de cuenta en [base58][] con un checksum. En una respuesta del [método wallet_propose][], este es el valor `account_id`. - Una "dirección-X" combina una ID de cuenta _y_ un [Tag de destino](../transactions/source-and-destination-tags.md) y escribe el valor combinado en [base58][] con un checksum. @@ -79,7 +78,6 @@ El XRP Ledger soporta más de un [algoritmo de firma criptográfica](#algoritmos El campo `key_type` en el [método wallet_propose][] se refiere al algoritmo de firma criptográfica que se utilizará. - ## Par de claves maestras El par de claves maestras consiste en una clave privada y una clave publica. La dirección de una cuenta es derivada del par de claves maestras, por lo que están intrinsecamente relacionadas. No puedes cambiar o eliminar el par de claves maestras, pero puedes desactivarlo. @@ -92,8 +90,6 @@ Dado que cambiar el par de claves maestras es imposible, debes cuidarlo en propo Mantener tu par de claves maestras offline significa no colocar tu información secreta (passphrase, semilla, or clave privada) en cualquier sitio en que los actores maliciosos puedan tener acceso a él. En general, esto quiere decir que no está al alcance de un programa inofrmático que interactúe con Internet. Por ejemplo, puedes guardarlo en un equipo que no se conecta nunca a Internet, en un trozo de papel guardado en una caja fuerte, o tenerla completamente memorizada. (Memorizarla tiene algunos puntos inconvenientes, incluido ser imposible pasar la clave una vez muerto.) - - ### Permisos especiales **Solo** el par de claves maestras pueden autorizar transacciones para hacer ciertas cosas: @@ -108,7 +104,6 @@ Mantener tu par de claves maestras offline significa no colocar tu información Una clave normal o [multi-firma](multi-signing.md) puede hacer cualquier otra cosa igual que el par de claves maestras. En particular, una vez has deshabilitado el par de claves maestras, puedes volver a habilitarlo utilizando un par de claves normales o multi firma. También puedes [eliminar una cuenta](deleting-accounts.md) si cumple con los requisitos para su eliminación. - ## Par de claves normales Una cuenta XRP Ledger puede autorizar un par de claves secundario, conocido como _par de claves normales_. Tras hacerlo, puedes utilizar cualquiera, el [par de claves maestras](#par-de-claves-maestras) o el par de claves normales para autorizar transacciones. Puedes eliminar o reemplazar tu par de claves normales en cualquier momento sin cambiar el resto de la cuenta. @@ -121,28 +116,25 @@ El par de claves normales tiene el mismo formato que el par de claves maestras. La [transacción SetRegularKey][] asigna o cambia el par de claves normales de una cuenta. Para un tutorial de asignación o cambio de un par de claves normales, ver [Asignar par de claves normales](../../tutorials/how-tos/manage-account-settings/assign-a-regular-key-pair.md). - ## Algorítmos de firma Los pares de claves criptográficas están siempre atadas a un algorítmo de firma específico, el cual define la relación matemática entre la clave secreta y la clave pública. Los algorítmos de firma criptográficos tienen la propiedad de, dado el estado actual de las técnicas de criptografía, es "fácil" utilizar una clave secreta para clacular la clave pública coincidente, pero es imposible calcular la clave secreta vinculante partiendo de la clave pública. El XRP Ledger soporta los siguientes algoritmos de firma criptográfica: -| Tipo de clave | Algoritmo | Descripción | -|-------------|-----------|---| -| `secp256k1` | [ECDSA](https://en.wikipedia.org/wiki/Elliptic_Curve_Digital_Signature_Algorithm) usando la curva eliptica [secp256k1](https://en.bitcoin.it/wiki/Secp256k1) | Este es el mismo esquema que utiliza Bitcoin. El XRP Ledger utiliza este tipo de claves por defecto. | -| `ed25519` | [EdDSA](https://tools.ietf.org/html/rfc8032) usando la curva elíptica [Ed25519](https://ed25519.cr.yp.to/) | Este es un algoritmo más novedoso que tiene mejor rendimiento y otras propiedades convenientes. Como las claves públicas Ed25519 son un byte menos que las claves secp256k1, `rippled` prefija las claves públicas Ed25519 con el byte `0xED` así ambos tipos de claves públicas son de 33 bytes. | +| Tipo de clave | Algoritmo | Descripción | +| ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `secp256k1` | [ECDSA](https://en.wikipedia.org/wiki/Elliptic_Curve_Digital_Signature_Algorithm) usando la curva eliptica [secp256k1](https://en.bitcoin.it/wiki/Secp256k1) | Este es el mismo esquema que utiliza Bitcoin. El XRP Ledger utiliza este tipo de claves por defecto. | +| `ed25519` | [EdDSA](https://tools.ietf.org/html/rfc8032) usando la curva elíptica [Ed25519](https://ed25519.cr.yp.to/) | Este es un algoritmo más novedoso que tiene mejor rendimiento y otras propiedades convenientes. Como las claves públicas Ed25519 son un byte menos que las claves secp256k1, `rippled` prefija las claves públicas Ed25519 con el byte `0xED` así ambos tipos de claves públicas son de 33 bytes. | Cuando generas un par de claves con el [método wallet_propose][], puedes especificar el `key_type` para elegir que tipo de algorítmo criptográfico se utiliza para derivar las claves. Si has generado un tipo de clave disitnto al de por defecto, debes especificar también el `key_type` cuando firmas transacciones. -Los tipos de pares de claves admitidos pueden utilizarse indistintatemente en todo el XRP Ledger como pares de claves maestras, pares de claves normales, y miembros de listas de firmantes. El proceso de [derivación de una dirección](addresses.md#address-encoding) es el mismo para pares de claves secp256k1 y Ed25519. - +Los tipos de pares de claves admitidos pueden utilizarse indistintatemente en todo el XRP Ledger como pares de claves maestras, pares de claves normales, y miembros de listas de firmantes. El proceso de [derivación de una dirección](addresses.md#address-encoding) es el mismo para pares de claves secp256k1 y Ed25519. ### Algoritmos futuros En el futuro, es posible que el XRP Ledger necesite nuevos algoritmos de firma criptográficos para mantenerse al día con el desarrollo en criptográfia. Por ejemplo, si los ordenadores cuánticos utilizasen el [algoritmo de Shor](https://en.wikipedia.org/wiki/Shor's_algorithm) (o algo similar) no tardarán en romper la curva elíptica criptográfica, los desarrolladores XRP Ledger pueden añadir un algoritmo criptográfico que no es facil de romper. A mediados de 2020, no existe un algoritmo de firma "resistente a la cuántica" y los ordenadores cuánticos no son lo suficientemente prácticos para ser una amenaza, por lo que no hay planes inmediatos para añadir algoritmos específicos. - ## Derivación de claves El proceso de derivar un par de claves depende del algoritmo de firma. En todos los casos, las claves son generadas desde un valor _seed_ (semilla) que es de 16 bytes (128 bits) de longitud. El valor semilla puede ser totalmente aleatorio (recomendado) o puede ser derivado de una passphrase específica tomando el [hash SHA-512][Hash] y manteniendo los primeros 16 bytes (como [SHA-512Half][], pero manteniendo solo 128 bits en vez de los 256 bits de la salida). @@ -152,37 +144,39 @@ El proceso de derivar un par de claves depende del algoritmo de firma. En todos Los procesos de derivación de claves descritos aquí están implementados en múltiples lugares y lenguajes de programación: - En C++ en el código base de `rippled`: - - [Definición de semilla](https://github.com/XRPLF/rippled/blob/develop/src/ripple/protocol/Seed.h) - - [Derivación de clave general & Ed25519](https://github.com/XRPLF/rippled/blob/develop/src/ripple/protocol/impl/SecretKey.cpp) - - [Derivación de clave secp256k1](https://github.com/XRPLF/rippled/blob/develop/src/ripple/protocol/impl/SecretKey.cpp) + - [Definición de semilla](https://github.com/XRPLF/rippled/blob/develop/src/ripple/protocol/Seed.h) + - [Derivación de clave general & Ed25519](https://github.com/XRPLF/rippled/blob/develop/src/ripple/protocol/impl/SecretKey.cpp) + - [Derivación de clave secp256k1](https://github.com/XRPLF/rippled/blob/develop/src/ripple/protocol/impl/SecretKey.cpp) - En Python 3 en {% repo-link path="_code-samples/key-derivation/py/key_derivation.py" %}esta sección de códigos de ejemplo del repositorio{% /repo-link %}. - En JavaScript en el paquete [`ripple-keypairs`](https://github.com/XRPLF/xrpl.js/tree/main/packages/ripple-keypairs). ### Derivación de clave Ed25519 + [[Fuente]](https://github.com/XRPLF/rippled/blob/fc7ecd672a3b9748bfea52ce65996e324553c05f/src/ripple/protocol/impl/SecretKey.cpp#L203 "Fuente") -[{% inline-svg file="/docs/img/key-derivation-ed25519.svg" /%}](/docs/img/key-derivation-ed25519.svg "Passphrase → Semilla → Clave secreta → Prefijo + Clave pública") +[{% inline-svg file="/docs/img/key-derivation-ed25519.svg" /%}](/docs/img/key-derivation-ed25519.svg 'Passphrase → Semilla → Clave secreta → Prefijo + Clave pública') 1. Calcular el [SHA-512Half][] del valor de la semilla. El resultado es la clave secreta de 32-byte. - **Consejo:** Todos los números 32-byte son válidos como claves secretas Ed25519. Sin embargo, Sin embargo, solo los números elegidos aleatoriamente son suficientemente seguros para ser usados como claves secretas. + **Consejo:** Todos los números 32-byte son válidos como claves secretas Ed25519. Sin embargo, Sin embargo, solo los números elegidos aleatoriamente son suficientemente seguros para ser usados como claves secretas. 2. Para calcular una clave pública Ed25519, utiliza la derivación estandar de clave pública para [Ed25519](https://ed25519.cr.yp.to/software.html) para derivar una clave pública de 32-byte. - **Atención:** Como con cualquier algoritmo criptográfico, utiliza una implementación estandar, reconocida y públicamente auditada cuando sea posible. Por ejemplo, [OpenSSL](https://www.openssl.org/) tiene implementaciones de las funciones principales para Ed25519 y secp256k1. + **Atención:** Como con cualquier algoritmo criptográfico, utiliza una implementación estandar, reconocida y públicamente auditada cuando sea posible. Por ejemplo, [OpenSSL](https://www.openssl.org/) tiene implementaciones de las funciones principales para Ed25519 y secp256k1. 3. Prefija el byte `0xED` en la clave pública 32-byte para indicar que es una clave pública Ed25519, resultando en 33 bytes. - Si estás impementando código para firmar transacciones, elimina el prefijo `0xED` y utiliza la clave 32-byte para el proceso de firma actual. + Si estás impementando código para firmar transacciones, elimina el prefijo `0xED` y utiliza la clave 32-byte para el proceso de firma actual. 4. Cuando serializas una clave pública de cuenta a [base58][], utiliza el prefijo de la clave pública de cuenta `0x23`. - Las claves efímeras de validador no pueden ser Ed25519. + Las claves efímeras de validador no pueden ser Ed25519. ### Derivación de clave secp256k1 + [[Fuente]](https://github.com/XRPLF/rippled/blob/develop/src/ripple/protocol/impl/SecretKey.cpp "Fuente") -[{% inline-svg file="/docs/img/key-derivation-secp256k1.svg" /%}](/docs/img/key-derivation-secp256k1.svg "Passphrase → Semilla → Par de claves inicial (Root Key Pair) → Par de claves intermedias → Par de claves maestras") +[{% inline-svg file="/docs/img/key-derivation-secp256k1.svg" /%}](/docs/img/key-derivation-secp256k1.svg 'Passphrase → Semilla → Par de claves inicial (Root Key Pair) → Par de claves intermedias → Par de claves maestras') La derivación de claves de cuentas XRP Ledger secp256k1 involucra más pasos que con la derivación de clave Ed25519 por el siguiente par de razones: @@ -191,23 +185,22 @@ La derivación de claves de cuentas XRP Ledger secp256k1 involucra más pasos qu Los pasos para derivar par de claves de cuenta XRP Ledger secp256k1 desde un valor semilla es como sigue: -1. Calcular un par de claves iniciales (root key pair) a partir del valor semilla, como sigue: - +1. Calcular un par de claves iniciales (root key pair) a partir del valor semilla, como sigue: 1. Concatenar lo siguiente en orden, para un total de 20 bytes: - - El valor semilla (16 bytes) - - El valor "sequencia root" (4 bytes), como un entero big-endian no asignado. Utiliza 0 como un valor inicial para la secuencia root. + - El valor semilla (16 bytes) + - El valor "sequencia root" (4 bytes), como un entero big-endian no asignado. Utiliza 0 como un valor inicial para la secuencia root. 2. Calcular el [SHA-512Half][] del valor concatenado ( semilla+secuencia root). 3. Si el resultado no es una clave secreta válida secp256k1, incrementa la secuencia root en 1 y vuelve a empezar. [[Fuente]](https://github.com/XRPLF/rippled/blob/fc7ecd672a3b9748bfea52ce65996e324553c05f/src/ripple/crypto/impl/GenerateDeterministicKey.cpp#L103 "Fuente") - Una clave válida secp256k1 debe no ser cero, y debe ser numericamente menor que _secp256k1 group order_. El orden grupo secp256k1 es un valor constante `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141`. + Una clave válida secp256k1 debe no ser cero, y debe ser numericamente menor que _secp256k1 group order_. El orden grupo secp256k1 es un valor constante `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141`. 4. Con una clave secreta secp256k1 válida, utiliza la derivación de clave pública ECDSA estandar con la curva secp256k1 para derivar la clave pública inicial (root). (Como siempre para algoritmos critográficos, utiliza una implementación auditada públicamente, conocida y estandar cuando sea posible. Por ejemplo, [OpenSSL](https://www.openssl.org/) tiene implementaciones para funciones principales de Ed25519 y secp256k1.) **Consejo:** Los validadores utilizan este par de claves iniciales (root). Si estás calculando un par de claves para un validador, puedes parar aquí. Para disntiguir entre estos dos tipos de claves públicas, la serialización para claves públicas de validador [base58][] usa el prefijo `0x1c`. -2. Convierte la clave pública inicial (root) a su forma comprimida de 33-byte. +2. Convierte la clave pública inicial (root) a su forma comprimida de 33-byte. La forma no comprimida de cualquier clave pública ECDSA consiste en un par de enteros de 32-byte: una coordinada X, y una coordinada Y. La forma comprimida es la coordinada X y un prefijo de one-byte: `0x02` si la coordinada Y es par, o `0x03` si la coordinada Y es impar. @@ -217,12 +210,11 @@ Los pasos para derivar par de claves de cuenta XRP Ledger secp256k1 desde un val $ openssl ec -in ec-pub.pem -pubin -text -noout -conv_form compressed ``` -3. Deriva un "par de claves intermedio" desde la clave pública ráiz comprimida, así: - +3. Deriva un "par de claves intermedio" desde la clave pública ráiz comprimida, así: 1. Concatena lo siguiente en orden, para un total de 41 bytes: - - La clave pública comprimida (33 bytes) - - `0x00000000000000000000000000000000` (4 bytes de ceros). (Este valor estaba pensado para derivar diferentes números de la misma familia, pero en la práctica solo el valor 0 es utilizado.) - - Una valor "secuencia clave" (4 bytes), como un entero no asignado big-endian. Utiliza 0 como valor inicial para la secuencia clave. + - La clave pública comprimida (33 bytes) + - `0x00000000000000000000000000000000` (4 bytes de ceros). (Este valor estaba pensado para derivar diferentes números de la misma familia, pero en la práctica solo el valor 0 es utilizado.) + - Una valor "secuencia clave" (4 bytes), como un entero no asignado big-endian. Utiliza 0 como valor inicial para la secuencia clave. 2. Calcula el [SHA-512Half][] del valor concatenado. @@ -230,30 +222,28 @@ Los pasos para derivar par de claves de cuenta XRP Ledger secp256k1 desde un val 4. Con una clave secreta secp256k1 válida, utiliza la derivación de clave pública ECDSA estandar con la curva secp256k1 para derivar la clave pública intermedia. (Como siempre con los algoritmos criptográficos, utiliza una implementación públicamente auditada, conocida y estandar cuando sea posible. Por ejemplo, [OpenSSL](https://www.openssl.org/) tiene implementaciones de las funciones principales Ed25519 y secp256k1.) -4. Deriva el par de claves públicas añadiendo la clave pública intermedia a la clave pública inicial (root). De manera similar, deriva la clave secreta añadiendo la clave secreta intermedia a la clave secreta inicial (root). - +4. Deriva el par de claves públicas añadiendo la clave pública intermedia a la clave pública inicial (root). De manera similar, deriva la clave secreta añadiendo la clave secreta intermedia a la clave secreta inicial (root). - Una clave secreta ECDSA es un número entero muy largo, por lo que puedes calcular la suma de dos números secretos sumando el módulo el orden de grupo secp256k1. - Una clave pública ECDSA es un punto de la curva elíptica, por lo que necesitarás matemática de curva elíptica para sumar los puntos. -5. Convierte la clave pública maestra asu forma comprimida de 33-byte, como antes. +5. Convierte la clave pública maestra asu forma comprimida de 33-byte, como antes. -6. Cuando serialices la clave pública de la cuenta a su formato [base58][], utiliza el prefijo de la clave pública de la cuenta, `0x23`. +6. Cuando serialices la clave pública de la cuenta a su formato [base58][], utiliza el prefijo de la clave pública de la cuenta, `0x23`. Ver [Codificación de dirección](addresses.md#address-encoding) para información y códigos de ejemplo para convertir de una clave pública de cuenta a su dirección. - ## Ver también - **Conceptos:** - - [Direcciones de emisión y operacionales](account-types.md) + - [Direcciones de emisión y operacionales](account-types.md) - **Tutoriales:** - - [Asignación de par de claves normales](../../tutorials/how-tos/manage-account-settings/assign-a-regular-key-pair.md) - - [Cambiar o eliminar par de claves normales](../../tutorials/how-tos/manage-account-settings/change-or-remove-a-regular-key-pair.md) + - [Asignación de par de claves normales](../../tutorials/how-tos/manage-account-settings/assign-a-regular-key-pair.md) + - [Cambiar o eliminar par de claves normales](../../tutorials/how-tos/manage-account-settings/change-or-remove-a-regular-key-pair.md) - **Referencias:** - - [Transacción SetRegularKey][] - - [Objeto de ledger AccountRoot](../../references/protocol/ledger-data/ledger-entry-types/accountroot.md) - - [método wallet_propose][] - - [método account_info][] + - [Transacción SetRegularKey][] + - [Objeto de ledger AccountRoot](../../references/protocol/ledger-data/ledger-entry-types/accountroot.md) + - [método wallet_propose][] + - [método account_info][] {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/@l10n/es-ES/docs/concepts/accounts/decentralized-identifiers.md b/@l10n/es-ES/docs/concepts/accounts/decentralized-identifiers.md index 1b78f341d4..fd4ca872d4 100644 --- a/@l10n/es-ES/docs/concepts/accounts/decentralized-identifiers.md +++ b/@l10n/es-ES/docs/concepts/accounts/decentralized-identifiers.md @@ -2,10 +2,11 @@ html: decentralized-identifiers.html parent: accounts.html seo: - description: Los identificadores decentralizados permiten identidades digitales decentralizadas verificables. + description: Los identificadores decentralizados permiten identidades digitales decentralizadas verificables. labels: - DID --- + # Identificadores descentralizados _(REquiere de la [enmienda DID][] {% not-enabled /%})_ @@ -22,18 +23,16 @@ Los principios clave de un DID son: **Nota:** La implementación de DIDs en el XRP Ledger cumple con los requisitos de la [especificación DID v1.0](https://www.w3.org/TR/did-core/). - ## Cómo funciona 1. El dueño de una cuenta XRPL genera un DID que es controlado por la cuenta. 2. El DID se asocia a un documento DID definido por la especificaciones W3C. 3. El DID es usado para las siguientes tareas digitales como: - - Firmar documentos digitales. - - Realizar transacciones en linea seguras. - - Iniciar sesión en sitios web. + - Firmar documentos digitales. + - Realizar transacciones en linea seguras. + - Iniciar sesión en sitios web. 4. El verificador resuelve el DID a su docuemnto para verificar la identidad del sujeto. - ## Documentos DID Los documentos DID contienen la información necesaria para verificar criptográficamente la identidad del sujeto descrito por el documento DID. El sujeto puede ser una persona, organización, o cosa. Por ejemplo, un documento DID podría contener claves criptográficas públicas que el sujeto DID puede utilizar para autenticarse y demostrar su asociación con el DID. @@ -44,31 +43,29 @@ En el XRP Ledger, hay numerosas formas de asociar un DID a un documento DID: 1. Almacenar una referencia al documento en el campo `URI` del objeto `DID`, que apunta al documento almacenado en otra red de almacenamiento descentralizado, como es IPFS o STORJ. 2. Almacenar un documento DID mínimo en el campo `DIDDocument` del objeto `DID`. -3. Utilizar un documento DID _implicito_ generado a partir del DID y otra información pública disponible. - **Nota:** Los casos de uso más simples pueden solo necesitar firmas y rokens de autorización simples. En casos donde no haya un documento DID explicitamente en el ledger, un documento implicito es utilizado en su lugar. Por ejemplo, el documento DID de `did:xrpl:1:0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020` habilita solo la clave única `0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020` para autorizar cambios en el documento DID o firmar credenciales en nombre del DID. - +3. Utilizar un documento DID _implicito_ generado a partir del DID y otra información pública disponible. + **Nota:** Los casos de uso más simples pueden solo necesitar firmas y rokens de autorización simples. En casos donde no haya un documento DID explicitamente en el ledger, un documento implicito es utilizado en su lugar. Por ejemplo, el documento DID de `did:xrpl:1:0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020` habilita solo la clave única `0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020` para autorizar cambios en el documento DID o firmar credenciales en nombre del DID. ### Ejemplo de documento DID XRPL ```json { - "@context": "https://w3id.org/did/v1", - "id": "did:xrpl:1:rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "publicKey": [ - { - "id": "did:xrpl:1:rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn#keys-1", - "type": ["CryptographicKey", "EcdsaKoblitzPublicKey"], - "curve": "secp256k1", - "expires": 15674657, - "publicKeyHex": "04f42987b7faee8b95e2c3a3345224f00e00dfc67ba882..." - } - ] + "@context": "https://w3id.org/did/v1", + "id": "did:xrpl:1:rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "publicKey": [ + { + "id": "did:xrpl:1:rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn#keys-1", + "type": ["CryptographicKey", "EcdsaKoblitzPublicKey"], + "curve": "secp256k1", + "expires": 15674657, + "publicKeyHex": "04f42987b7faee8b95e2c3a3345224f00e00dfc67ba882..." + } + ] } ``` Para aprender más sobre las propiedades principales de un documento DID, ver: [Decentralized Identifiers (DIDs) v1.0](https://www.w3.org/TR/did-core/#core-properties). - ## Precauciones de privacidad y seguridad - Quien controla las claves privadas de la cuenta XRPL, controla el DID y las referencias al documento DID a la que resuelve. Asegúrate de que tus claves privadas no se comprometan. diff --git a/@l10n/es-ES/docs/concepts/accounts/deleting-accounts.md b/@l10n/es-ES/docs/concepts/accounts/deleting-accounts.md index 50066fc8e4..945d314008 100644 --- a/@l10n/es-ES/docs/concepts/accounts/deleting-accounts.md +++ b/@l10n/es-ES/docs/concepts/accounts/deleting-accounts.md @@ -1,9 +1,10 @@ --- seo: - description: Acerca de eliminar una cuenta XRP Ledger. + description: Acerca de eliminar una cuenta XRP Ledger. labels: - Cuentas --- + # Eliminar Cuentas El dueño de una cuenta puede enviar una [transacción AccountDelete][] para eliminar la cuenta y las entradas relativas del ledger, enviando la mayoría del XRP en balance restante a otra cuenta. Para evitar la creación y eliminación de cuentas sin sentido, eliminar una cuenta requiere quemar una cantidad superior a la usual utilizada como [coste de transacción](../transactions/transaction-cost.md). @@ -18,10 +19,10 @@ Para ser eliminada, una cuenta debe cumplir los siguientes requisitos: - El número de `Sequence` de la cuenta más 256 debe ser menor que el [Índice del ledger][] actual. - La cuenta no debe estar enlazada a de los siguientes tipos de [entradas del ledger](../../references/protocol/ledger-data/ledger-entry-types/index.md) (como remitente o destinatario): - - `Escrow` - - `PayChannel` - - `RippleState` - - `Check` + - `Escrow` + - `PayChannel` + - `RippleState` + - `Check` - La cuenta debe tener menos de 1000 objetos en el ledger. - La transacción debe pagar un [coste de transacción][] especial igual al menos a la [reserva de propietario](reserves.md) de un artículo (actualmente {% $env.PUBLIC_OWNER_RESERVE %}). @@ -34,4 +35,5 @@ A diferencia de Bitcoin y muchas otras criptomonedas, cada nueva versión de la Instituciones que reciben y envían valor en nombre de muchos usuarios pueden utilizar [**Source Tags** y **Destination Tags**](../transactions/source-and-destination-tags.md) para distinguir pagos desde y para sus clientes usando una (o un puñado) de cuentas en el XRP Ledger. + {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/@l10n/es-ES/docs/concepts/accounts/depositauth.md b/@l10n/es-ES/docs/concepts/accounts/depositauth.md index c8c2f5c335..9e7f36f8c0 100644 --- a/@l10n/es-ES/docs/concepts/accounts/depositauth.md +++ b/@l10n/es-ES/docs/concepts/accounts/depositauth.md @@ -2,11 +2,12 @@ html: depositauth.html parent: accounts.html seo: - description: La configuración DepositAuth le permite a una cuenta bloquear pagos entrantes por defecto. + description: La configuración DepositAuth le permite a una cuenta bloquear pagos entrantes por defecto. labels: - Pagos - Seguridad --- + # Autorización para depositar _(Añadido por la [enmienda DepositAuth][].)_ @@ -41,29 +42,27 @@ Para conseguir un efecto total de Deposit Authorization, Ripple recomienda adem Una cuenta con Deposit Authorization activado: - **No puede** ser destinatario de [transacciones Payment][], con **las siguientes excepciones**: - - Si el destinatario tiene [preautorizado](#preautorización) al remitente del pago. _(Añadido con la [enmienda DepositPreauth][])_ - - Si el balance XRP de la cuenta es igual o inferior al [requisito de reserva](reserves.md) de la cuenta, puede ser el destinatario de un pago XRP cuya cantidad `Amount` es igual o menor que el mínimo de reserva de la cuenta (actualmente {% $env.PUBLIC_BASE_RESERVE %}). Esto es para prevenir a una cuenta de quedarse "atascada" no siendo posible enviar transacciones ni tampoco recibir XRP. La reserva de la cuenta del propietario no importa en este caso. + - Si el destinatario tiene [preautorizado](#preautorización) al remitente del pago. _(Añadido con la [enmienda DepositPreauth][])_ + - Si el balance XRP de la cuenta es igual o inferior al [requisito de reserva](reserves.md) de la cuenta, puede ser el destinatario de un pago XRP cuya cantidad `Amount` es igual o menor que el mínimo de reserva de la cuenta (actualmente {% $env.PUBLIC_BASE_RESERVE %}). Esto es para prevenir a una cuenta de quedarse "atascada" no siendo posible enviar transacciones ni tampoco recibir XRP. La reserva de la cuenta del propietario no importa en este caso. - Puede recibir XRP de [transacciones PaymentChannelClaim][] **únicamente en los siguientes casos**: - - El remitente de la transacción PaymentChannelClaim es el destino del canal de pago (payment channel). - - El destino de la transacción del PaymentChannelClaim tiene [preautorizado](#preautorización) al remitente del PaymentChannelClaim. _(Añadido en la [enmienda DepositPreauth][])_ + - El remitente de la transacción PaymentChannelClaim es el destino del canal de pago (payment channel). + - El destino de la transacción del PaymentChannelClaim tiene [preautorizado](#preautorización) al remitente del PaymentChannelClaim. _(Añadido en la [enmienda DepositPreauth][])_ - Puede recibir XRP de [transacciones EscrowFinish][] **únicamente en los siguientes casos**: - - El remitente de una transacción EscrowFinish es el destino de un escrow. - - El destino de una transacción EscrowFinish tiene [preautorizado](#preautorización) al remitente de un EscrowFinish. _(Añadido en la [enmienda DepositPreauth][])_ + - El remitente de una transacción EscrowFinish es el destino de un escrow. + - El destino de una transacción EscrowFinish tiene [preautorizado](#preautorización) al remitente de un EscrowFinish. _(Añadido en la [enmienda DepositPreauth][])_ - **Puede** recibir XRP o tokens enviando una transacción [CheckCash][]. _(Añadido por la [enmienda Checks][].)_ - **Puede** recibir XRP o tokens enviando [transacciones OfferCreate][]. - - Si la cuenta envía una transacción OfferCreate que no está completamente ejecutada in mediatamente, **puede** recibir el resto del XRP o token solicitado después cuando la oferta sea consumida por otras transacciones [Payment][] y [OfferCreate][] de la cuenta. + - Si la cuenta envía una transacción OfferCreate que no está completamente ejecutada in mediatamente, **puede** recibir el resto del XRP o token solicitado después cuando la oferta sea consumida por otras transacciones [Payment][] y [OfferCreate][] de la cuenta. - Si la cuenta ha creado cualquier línea de confianza (trust lines) sin la marca [No Ripple flag](../tokens/fungible-tokens/rippling.md) activada, o ha activado el flag Default Ripple y emitido una moneda, la cuenta **puede** recibir los tokens de esas trust lines en [transacciones Payment][] como resultado del rippling. No puede ser el destino de esas transacciones. - En general, una cuenta en el XRP Ledger **no puede** recibir divisas no-XRP en el XRP Ledger mientras que lo siguiente sea cierto. (Esta regla no es específica del flag DepositAuth.) - - La cuenta no ha creado trust lines con límites distintos a cero. - - La cuenta no ha emitido tokens en trust lines creadas por otros. - - La cuenta no ha generado ninguna oferta. + - La cuenta no ha creado trust lines con límites distintos a cero. + - La cuenta no ha emitido tokens en trust lines creadas por otros. + - La cuenta no ha generado ninguna oferta. La siguiente tabla resume cuando un tipo de transacción puede depositar dinero con DepositAuth activado o desactivado: {% partial file="/docs/_snippets/depositauth-semantics-table.md" /%} - - ## Activar o desactivar Deposit Authorization Una cuenta puede activar la autorización de depositar enviando una [transacción AccountSet][] con el campo `SetFlag` con el valor de `asfDepositAuth` (9). La cuenta puede desactivar la autorización de depositar enviando una [transacción AccountSet][] con el campo `ClearFlag` con el valor de `asfDepositAuth` (9). Para más información sobre flags en AccountSet, consultar [AccountSet flags](../../references/protocol/transactions/types/accountset.md). @@ -72,7 +71,7 @@ Una cuenta puede activar la autorización de depositar enviando una [transacció Para ver cuando una cuenta tiene Deposit Authorization activado, utiliza el [método account_info][] para mirar en la cuenta. Compara el valor de los campos `Flags` (en el objeto `result.account_data`) con los [bitwise flags definidos para un objeto de ledger AccountRoot ](../../references/protocol/ledger-data/ledger-entry-types/accountroot.md). -Si el resultado de los valores bitwise `Flags` Y el valor del flag `lsfDepositAuth` (`0x01000000`) es distinto a cero, entonces la cuenta tiene el DepositAuth activado. Si el resultado es cero, entonces la cuenta tiene DepositAuth desactivado. +Si el resultado de los valores bitwise `Flags` Y el valor del flag `lsfDepositAuth` (`0x01000000`) es distinto a cero, entonces la cuenta tiene el DepositAuth activado. Si el resultado es cero, entonces la cuenta tiene DepositAuth desactivado. ## Preautorización @@ -101,7 +100,6 @@ Puedes utilizar el [método deposit_authorized][] para ver si una cuenta esta au - Si la cuenta de destino requiere de Deposit Authorization. (Si no requiere de autorización, todas las cuentas de origen son consideradas autorizadas.) - Si la cuenta de origen es preautorizada para enviar dinero al destino. - ## Ver también - La referencia [transación DepositPreauth][]. @@ -113,7 +111,6 @@ Puedes utilizar el [método deposit_authorized][] para ver si una cuenta esta au - [Pagos parciales](../payment-types/partial-payments.md) provee una forma para que cuentas puedan devolver pagos no deseados restando los [costes de transferencia](../tokens/fungible-tokens/transfer-fees.md) y los ratios de exchanges de la cantidad enviada en lugar de sumarlos a la cantidad enviada. - [enmienda DepositPreauth]: /resources/known-amendments.md#depositpreauth {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/@l10n/es-ES/docs/concepts/accounts/index.md b/@l10n/es-ES/docs/concepts/accounts/index.md index 4bbf850e8e..5c39bb6d9b 100644 --- a/@l10n/es-ES/docs/concepts/accounts/index.md +++ b/@l10n/es-ES/docs/concepts/accounts/index.md @@ -2,68 +2,64 @@ html: accounts.html parent: concepts.html seo: - description: Aprende sobre cuentas en el XRP Ledger. AccouLas cuentas pueden enviar transacciones y almacenar XRP. + description: Aprende sobre cuentas en el XRP Ledger. AccouLas cuentas pueden enviar transacciones y almacenar XRP. labels: - Cuentas - Pagos --- + # Cuentas Una "Cuenta" en el XRP Ledger representa a un titular de XRP y a un emisor de [transacciones](../../references/protocol/transactions/index.md). Una cuenta consiste en una dirección, un balance en XRP, un número de secuencia y un historial de sus transacciones. Para poder enviar transacciones, el dueño también necesita uno o más pares de claves criptográficas asociadas con la cuenta. - ## Estructura de la cuenta - Los elementos principales de una cuenta son: +Los elementos principales de una cuenta son: - Una **cuenta** identificable, como `rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn`. - Un **balance en XRP**. Parte de este XRP se aparte para la [Reserva](reserves.md). - Un **número de secuencia**, el cual ayuda a asegurar que cualquier transacción que esta cuenta envíe se aplique en el orden correcto y solo una vez. Para ejecutar una transacción, el número de secuencia de la transacción y el número de secuencia de su remitente deben coincidir. Después, como parte de la aplicación de la transacción, el número de secuencia de la cuenta incrementa en 1. (Ver también: [Tipos de datos básicos: Secuencia de cuenta](../../references/protocol/data-types/basic-data-types.md#account-sequence).) - Un **histórico de transacciones** que afectaron a la cuenta y sus balances. - Una o más maneras de [autorizar transacciones](../transactions/index.md#authorizing-transactions), posiblemente incluyendo: - - Un par de claves maestras intrínseco a la cuenta. (Esto puedes desactivarse pero no cambiarse.) - - Una par de claves "normales" ("regular" en inglés) que se pueden rotar. - - Una lista de firmantes para [multi-firma](multi-signing.md). (Almacenado por separado de los datos principales de la cuenta.) + - Un par de claves maestras intrínseco a la cuenta. (Esto puedes desactivarse pero no cambiarse.) + - Una par de claves "normales" ("regular" en inglés) que se pueden rotar. + - Una lista de firmantes para [multi-firma](multi-signing.md). (Almacenado por separado de los datos principales de la cuenta.) Los datos principales de una cuenta se guardan en una entrada del ledger [AccountRoot](../../references/protocol/ledger-data/ledger-entry-types/accountroot.md). Una cuenta puede ser también el dueña (o parcialmente dueña) de varios otros tipos de entradas del ledger. **Consejo:** Una "Cuenta" en el XRP Ledger está en algún lugar entre el uso financiero (como una "cuenta bancaria") y el uso informático (como una "cuenta UNIX"). Las monedas y activos no XRP no se guardan en una cuenta del XRP Ledger en sí misma; cada uno de estos activos se almacena en una relación contable llamada "Línea de confianza" (trust line en inglés) que conecta a dos partes. - ## Creación de cuentas No hay una transacción dedicada a "crear una cuenta". La [transacción Payment][] automáticamente crea una nueva cuenta si el pago envía suficiente XRP a una dirección matemáticamente válida que aún no tiene una cuenta. Esto se llama _finnaciar_ una cuenta, y crea una [entrada AccountRoot](../../references/protocol/ledger-data/ledger-entry-types/accountroot.md) en el ledger. No hay otra transacción que cree una cuenta. -**Atención:** Financiar una cuenta **no te da** privilegios especiales sobre esa cuenta. Quien tenga la clave secreta correspondiente a la dirección de la cuenta tiene control total sobre la cuenta y todo el XRP que contiene. Para algunas direcciones, es posible que nadie tenga la clave secreta, en este caso la cuenta es un agujero negro [black hole](addresses.md#special-addresses) y el XRP se pierde para siempre. +**Atención:** Financiar una cuenta **no te da** privilegios especiales sobre esa cuenta. Quien tenga la clave secreta correspondiente a la dirección de la cuenta tiene control total sobre la cuenta y todo el XRP que contiene. Para algunas direcciones, es posible que nadie tenga la clave secreta, en este caso la cuenta es un agujero negro [black hole](addresses.md#special-addresses) y el XRP se pierde para siempre. La forma típica de obtener una cuenta en el XRP Ledger es la siguiente: 1. Genera un par de claves desde una fuente de fuerte aleatoriedad y calcula la dirección de ese par de claves. 2. Hacer que alguien que ya tenga una cuenta en el XRP Ledger envíe XRP a la dirección que generaste. + - Por ejemplo, puedes comprar XRP en un exchange privado, después retirar el XRP del exchange a la dirección que especificaste. - - Por ejemplo, puedes comprar XRP en un exchange privado, después retirar el XRP del exchange a la dirección que especificaste. - - **Atención:** La primera vez que recibes XRP en tu propia dirección del XRP Ledger, debes pagar la [reserva de la cuenta](reserves.md) (actualmente {% $env.PUBLIC_BASE_RESERVE %}), lo que bloquea esa cantidad de XRP indefinidamente. En contraste, los exchanges privados suelen almacenar todo el XRP de los clientes en unas pocas cuentas del XRP Ledger compartidas, así los clientes no tienen que pagar la reserva de cuentas individuales en el exchange. Antes de retirar XRP, considera si pagar el precio de tener tu propia cuenta en el XRP Ledger merece la pena. - - + **Atención:** La primera vez que recibes XRP en tu propia dirección del XRP Ledger, debes pagar la [reserva de la cuenta](reserves.md) (actualmente {% $env.PUBLIC_BASE_RESERVE %}), lo que bloquea esa cantidad de XRP indefinidamente. En contraste, los exchanges privados suelen almacenar todo el XRP de los clientes en unas pocas cuentas del XRP Ledger compartidas, así los clientes no tienen que pagar la reserva de cuentas individuales en el exchange. Antes de retirar XRP, considera si pagar el precio de tener tu propia cuenta en el XRP Ledger merece la pena. ## Ver también - **Conceptos:** - - [Reservas](reserves.md) - - [Claves criptográficas](cryptographic-keys.md) - - [Cuentas emisoras y operacionales](account-types.md) + - [Reservas](reserves.md) + - [Claves criptográficas](cryptographic-keys.md) + - [Cuentas emisoras y operacionales](account-types.md) - **Referencias:** - - [Método account_info][] - - [Método wallet_propose][] - - [Transacción AccountSet][] - - [Transacción Payment][] - - [Objeto AccountRoot](../../references/protocol/ledger-data/ledger-entry-types/accountroot.md) + - [Método account_info][] + - [Método wallet_propose][] + - [Transacción AccountSet][] + - [Transacción Payment][] + - [Objeto AccountRoot](../../references/protocol/ledger-data/ledger-entry-types/accountroot.md) - **Tutoriales:** - - [Administrar configuración de la cuenta (Categoría)](../../tutorials/how-tos/manage-account-settings/index.md) - - [Monitorizar pagos entrantes con WebSocket](../../tutorials/http-websocket-apis/build-apps/monitor-incoming-payments-with-websocket.md) + - [Administrar configuración de la cuenta (Categoría)](../../tutorials/how-tos/manage-account-settings/index.md) + - [Monitorizar pagos entrantes con WebSocket](../../tutorials/http-websocket-apis/build-apps/monitor-incoming-payments-with-websocket.md) {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/@l10n/es-ES/docs/concepts/accounts/multi-signing.md b/@l10n/es-ES/docs/concepts/accounts/multi-signing.md index 3bee2e4d0d..820c049e4c 100644 --- a/@l10n/es-ES/docs/concepts/accounts/multi-signing.md +++ b/@l10n/es-ES/docs/concepts/accounts/multi-signing.md @@ -2,11 +2,12 @@ html: multi-signing.html parent: accounts.html seo: - description: Utiliza la firma múltiple para mayor seguridad enviando transacciones. + description: Utiliza la firma múltiple para mayor seguridad enviando transacciones. labels: - Smart Contracts - Seguridad --- + # Multi-Signing La firma múltiple o multi-signing en el XRP Ledger es un método para [autorizar transacciones](../transactions/index.md#authorizing-transactions) para el XRP Ledger usando una combinación de múltiples claves secretas. Puedes tener cualquier combinación de métodos de autorización activados para tu dirección, incluido el multi-signing, un [par de claves maestras](cryptographic-keys.md#par-de-claves-maestras), y un [par de claves normales](cryptographic-keys.md#par-de-claves-normales). (El único requisito es que _al menos un_ método debe estar activado.) @@ -34,13 +35,13 @@ Asignas un peso a cada firmantes de la lista. El peso representa la autoridad de El valor cuórum de una lista es una peso mínimo total requerido para autorizar la transacción. El cuórum debe ser mayor a 0 pero menor o igual a la suma de los valores de los pesos en la lista de firmantes: lo que significa, que debe ser posible conseguir un cuórum con los pesos de firmante dados. ### Localizador de cartera + También puedes añadir hasta 256 bits de datos arbitrarios para cada entrada por firmante de la lista. Estos datos no son necessarios o usados por la red, pero pueden ser utilizados por smart contracts u otras aplicaciones para identificar o confirmar otros datos sobre los firmantes. _(Añadido en la [enmienda ExpandedSignerList][].)_ - ### Ejemplos uitilzando Signer Weight y Quorum Los pesos y el cuórum te permiten establecer un nivel apropiado de supervisión para cada transacción, en función de la confianza relativa y la autoridad relegada a los responsables que administran la cuenta. @@ -55,32 +56,31 @@ En cada uno de los tres ejemplos anteriores, deshabilitarías la clave maestra s Podría darse el caso donde crees una lista de multi firma como "plan de respaldo". El dueño de la cuenta normalmente usa la clave normal para sus transacciones (no una clave multi-signing). Por seguridad, el propietario añade una lista de firmantes que contiene a 3 amigos, los tres con un peso de 1, y un cuórum de 3. Si el propietario de la cuenta perdiese la clave privada, puede pedir a sus amigos que multi firmen una transacción para reemplazar la clave normal. - ## Mandar transacciones Multi-Signed Para enviar transacciones multi-signed de forma satisfactoria, debes de hacer todo lo siguiente: -* La dirección que envía la transacción (especificada en el campo `Account`) debe tener un [objeto `SignerList` en el ledger ](../../references/protocol/ledger-data/ledger-entry-types/signerlist.md). Para instrucciones de cómo hacer esto, ver [Set Up Multi-Signing](../../tutorials/how-tos/manage-account-settings/set-up-multi-signing.md). -* La transacción debe incluir el campo `SigningPubKey` como un valor vacío. -* La transacción debe incluir el [campo `Signers`](../../references/protocol/transactions/common-fields.md#signers-field) conteniendo un array de firmas. -* Las firmas presentadas en el array `Signers` debe coincidir con los firmantes definidos en la `SignerList`. -* Para las firmas presentadas, el peso total asociado con esos firmantes debe ser igual o mayor al cuórum de la `SignerList`. -* El [coste de transacción](../transactions/transaction-cost.md) (especificado en el campo `Fee`) debe ser al menos (N+1) veces el coste de una transacción normal, donde N es el número de firmas presentadas. -* Todos los campos de la transacción deben ser definidos antes de recolectar las firmas. No puedes [auto-rellenar](../../references/protocol/transactions/common-fields.md#auto-fillable-fields) los campos. -* Si se presenta en forma binaria, el array de `Signers` debe estar ordenado en base al valor números de las direcciones de los firmantes, con el valor menor, primero . (Si se envía como JSON, el [método submit_multisigned][] se ocupa de ello automáticamente.) +- La dirección que envía la transacción (especificada en el campo `Account`) debe tener un [objeto `SignerList` en el ledger ](../../references/protocol/ledger-data/ledger-entry-types/signerlist.md). Para instrucciones de cómo hacer esto, ver [Set Up Multi-Signing](../../tutorials/how-tos/manage-account-settings/set-up-multi-signing.md). +- La transacción debe incluir el campo `SigningPubKey` como un valor vacío. +- La transacción debe incluir el [campo `Signers`](../../references/protocol/transactions/common-fields.md#signers-field) conteniendo un array de firmas. +- Las firmas presentadas en el array `Signers` debe coincidir con los firmantes definidos en la `SignerList`. +- Para las firmas presentadas, el peso total asociado con esos firmantes debe ser igual o mayor al cuórum de la `SignerList`. +- El [coste de transacción](../transactions/transaction-cost.md) (especificado en el campo `Fee`) debe ser al menos (N+1) veces el coste de una transacción normal, donde N es el número de firmas presentadas. +- Todos los campos de la transacción deben ser definidos antes de recolectar las firmas. No puedes [auto-rellenar](../../references/protocol/transactions/common-fields.md#auto-fillable-fields) los campos. +- Si se presenta en forma binaria, el array de `Signers` debe estar ordenado en base al valor números de las direcciones de los firmantes, con el valor menor, primero . (Si se envía como JSON, el [método submit_multisigned][] se ocupa de ello automáticamente.) ## Ver también - **Tutoriales:** - - [Configurar Multi-Signing](../../tutorials/how-tos/manage-account-settings/set-up-multi-signing.md) - - [Envíar una transacción Multi-Signed](../../tutorials/how-tos/manage-account-settings/send-a-multi-signed-transaction.md) + - [Configurar Multi-Signing](../../tutorials/how-tos/manage-account-settings/set-up-multi-signing.md) + - [Envíar una transacción Multi-Signed](../../tutorials/how-tos/manage-account-settings/send-a-multi-signed-transaction.md) - **Conceptos:** - - [Claves criptográficas](cryptographic-keys.md) - - [Coste de transacción especial para transacciones Multi-signed](../transactions/transaction-cost.md#special-transaction-costs) + - [Claves criptográficas](cryptographic-keys.md) + - [Coste de transacción especial para transacciones Multi-signed](../transactions/transaction-cost.md#special-transaction-costs) - **Referencias:** - - [Transacción SignerListSet][] - - [Objeto SignerList](../../references/protocol/ledger-data/ledger-entry-types/signerlist.md) - - [método sign_for][] - - [método submit_multisigned][] + - [Transacción SignerListSet][] + - [Objeto SignerList](../../references/protocol/ledger-data/ledger-entry-types/signerlist.md) + - [método sign_for][] + - [método submit_multisigned][] {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/@l10n/es-ES/docs/concepts/accounts/reserves.md b/@l10n/es-ES/docs/concepts/accounts/reserves.md index bc7ae9d7b5..0dc78f91ec 100644 --- a/@l10n/es-ES/docs/concepts/accounts/reserves.md +++ b/@l10n/es-ES/docs/concepts/accounts/reserves.md @@ -2,12 +2,13 @@ html: reserves.html parent: accounts.html seo: - description: Las cuentas XRP Ledger exigen una reserva de XRP para reducir el spam en la información del ledger. + description: Las cuentas XRP Ledger exigen una reserva de XRP para reducir el spam en la información del ledger. labels: - Comisiones - Cuentas top_nav_grouping: Páginas populares --- + # Reservas El XRP Ledger aplica un _requisito de reserva_, en XRP, para proteger el ledger global compartido de crecer excesivamente como resultado del spam o del uso malicioso. El objetivo es limitar el crecimiento del ledger para coincida con las mejoras tecnológicas de tal forma que un equipo basico actual pueda siempre tener el ledger actual en RAM. @@ -20,8 +21,8 @@ El requisito de reserva cambia de tanto en tanto debido al proceso de [Votación Los requisito de reserva consta de dos partes: -* La **reserva base** es la cantidad mínima de XRP que es necesaria para cada dirección en el ledger. -* La **reserva de propietario** es un incremento del requisito de reserva por cada objeto que la dirección posee en el ledger. El coste por artículo se le conoce como _reserva incremental_. +- La **reserva base** es la cantidad mínima de XRP que es necesaria para cada dirección en el ledger. +- La **reserva de propietario** es un incremento del requisito de reserva por cada objeto que la dirección posee en el ledger. El coste por artículo se le conoce como _reserva incremental_. Los requerimientos de reserva actuales en Mainnet son: @@ -48,7 +49,7 @@ Algunos casos especiales: Las aplicaciones pueden buscar los valores de las reservas base e incremental actuales utilizando el [método server_info][] o el [método server_state][]: | Método | Unidades | Campo de reserva base | Campo de reserva incremental | -|-------------------------|----------------------|-------------------------------------|------------------------------------| +| ----------------------- | -------------------- | ----------------------------------- | ---------------------------------- | | [método server_info][] | Decimal XRP | `validated_ledger.reserve_base_xrp` | `validated_ledger.reserve_inc_xrp` | | [método server_state][] | Drops enteros de XRP | `validated_ledger.reserve_base` | `validated_ledger.reserve_inc` | @@ -56,7 +57,6 @@ Para determinar las reservas de propietario de una cuenta, hay que multiplicar l Para calcular el requisito total de direcciones, multiplica `OwnerCount` por `reserve_inc_xrp`, y luego suma `reserve_base_xrp`. [Aquí tienes una demostración](../../tutorials/python/build-apps/build-a-desktop-wallet-in-python.md#codeblock-17) del cálculo en Python. - ## Quedarse por debajo del requisito de reserva Durante el procesamiento de transacciones, el [coste de transacción](../transactions/transaction-cost.md) destruye parte del XRP del saldo de la dirección que envía la transacción. Esto puede causar que una dirección XRP se quede por debajo del requisito de reserva. Puedes incluso destruir _todo_ tu XRP de esta forma. @@ -65,7 +65,6 @@ Cuando tu cuenta posee menos XRP XRP que el requisito actual de reserva, no pued **Consejo:** Si tu dirección está debajo del requisito de reserva, puedes enviar unas [transacciones OfferCreate][] para aadquirir más XRP y volver a superar el requisito de reeerva. Sin embargo, dado que no puedes crear una [entrada en el ledger Offer](../../references/protocol/ledger-data/ledger-entry-types/offer.md) cuando estás por debajo de la reserva, esta transacción puede consumir solo Offers que ya esté en el libro de ordenes. - ## Cambiar los requisitos de reserva El XRP Ledger tiene un mecanismo para ajustar los requisitos de reserva. Estos ajustes pueden considerar, por ejemplo, cambios a largo plazo del valor de XRP, mejoras en la capacidad del hardware de los equipos convencionales, o una eficiencia incrementada en la implementación del software del servidor. Cualquier cambio tiene que ser aprobado por un proceso de consenso. Ver [Votación de fee](../consensus-protocol/fee-voting.md) para más información. diff --git a/@l10n/es-ES/docs/concepts/accounts/tickets.md b/@l10n/es-ES/docs/concepts/accounts/tickets.md index 10f9fd6bf8..2cfc971673 100644 --- a/@l10n/es-ES/docs/concepts/accounts/tickets.md +++ b/@l10n/es-ES/docs/concepts/accounts/tickets.md @@ -2,11 +2,12 @@ html: tickets.html parent: accounts.html seo: - description: Envía transacciones en un orden no secuencial. + description: Envía transacciones en un orden no secuencial. labels: - Cuentas - Enviar transacciones --- + # Tickets _(Añadido por la [enmienda TicketBatch][].)_ @@ -25,18 +26,17 @@ Sin embargo, hay situaciones donde los números de secuencia son demasiado limit Los Tickets facilitan una solución para todos estos problemas apartando números de secuencia que se pueden uitlizar más adelante, fuera de su orden normal, pero aún así no más de una vez cada uno. - ## Los tickets son números de secuencia reservados Un Ticket es un registro de que se ha apartado un número de secuencia para utilizar más adelante. Una cuenta envía primero una [transacción TicketCreate][] para apartar una o más números de secuencia como Tickets; esto deja un registro en los [datos de estado del ledger](../ledgers/index.md), en la forma de un [objeto Ticket][], para cada número de secuencia reservado. Los Tickets están numerados usando los números de secuencia que han sido apartado para crearlos. Por ejemplo, si un número de secuencia de cuenta actual es 101 y has creado 3 Tickets, esos Tickets tienen los números de secuencia de Ticket 102, 103, y 104. Haciendo esto se incrementa el número de secuencia de la cuenta a 105. -[{% inline-svg file="/docs/img/ticket-creation.svg" /%}](/docs/img/ticket-creation.svg "Diagrama: Creación de tres tickets") +[{% inline-svg file="/docs/img/ticket-creation.svg" /%}](/docs/img/ticket-creation.svg 'Diagrama: Creación de tres tickets') Más tarde, puedes enviar una transacción utilizando un Ticket específico en vez de un número de secuencia; haciendo eso eliminas el Ticket correspondiente de los datos de estado del ledger y no cambia el número de secuencia normal de tu cuenta. También puedes todavía enviar transacciones utilizando el números de secuencia normal sin utilizar Tickets. Puedes utilizar cualquiera de tus Tickets disponibles en cualquier orden en cualquier momento, pero cada Ticket puede utilizarse solo una vez. -[{% inline-svg file="/docs/img/ticket-usage.svg" /%}](/docs/img/ticket-usage.svg "Diagrama: Usando el ticket 103.") +[{% inline-svg file="/docs/img/ticket-usage.svg" /%}](/docs/img/ticket-usage.svg 'Diagrama: Usando el ticket 103.') Continuando con el ejemplo anterior, puedes enviar una transacción utilizando el número de secuencia 105 o cualquiera de los tres Tickets que has creado. Si envías una transacción utilizando el Ticket 103, esto eliminará el Ticket 103 del ledger. Tu próxima transacción despues de esa puede uitlizar el número de secuencia 105, el Ticket 102, o el Ticket 104. @@ -59,15 +59,14 @@ Cualquier cuenta puede crear y utilizar Tickets en cualquier tipo de transaccion ## Ver también - - **Conceptos:** - - [Multi-Signing](multi-signing.md) + - [Multi-Signing](multi-signing.md) - **Tutoriales:** - - [Usar Tickets](../../tutorials/how-tos/manage-account-settings/use-tickets.md) + - [Usar Tickets](../../tutorials/how-tos/manage-account-settings/use-tickets.md) - **Referencias:** - - [Transacción TicketCreate][] - - [Campos comunes de una transacción](../../references/protocol/transactions/common-fields.md) - - [Objeto Ticket](../../references/protocol/ledger-data/ledger-entry-types/ticket.md) - - [Método account_objects ][] + - [Transacción TicketCreate][] + - [Campos comunes de una transacción](../../references/protocol/transactions/common-fields.md) + - [Objeto Ticket](../../references/protocol/ledger-data/ledger-entry-types/ticket.md) + - [Método account_objects ][] {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/@l10n/es-ES/docs/concepts/consensus-protocol/consensus-principles-and-rules.md b/@l10n/es-ES/docs/concepts/consensus-protocol/consensus-principles-and-rules.md index 5f347840bb..851a7caeac 100644 --- a/@l10n/es-ES/docs/concepts/consensus-protocol/consensus-principles-and-rules.md +++ b/@l10n/es-ES/docs/concepts/consensus-protocol/consensus-principles-and-rules.md @@ -2,10 +2,11 @@ html: consensus-principles-and-rules.html parent: consensus.html seo: - description: Las reglas y principios del algoritmo de consenso que permite a los usuarios para transferir fondos (incluidas divisas fiat, divisas digitales y cualquier otra forma de valor) a través de fronteras nacionales igual de facil que enviar un correo electrónico. + description: Las reglas y principios del algoritmo de consenso que permite a los usuarios para transferir fondos (incluidas divisas fiat, divisas digitales y cualquier otra forma de valor) a través de fronteras nacionales igual de facil que enviar un correo electrónico. labels: - Blockchain --- + # Los principios y reglas del consenso El XRP Ledger es un sistema de pagos universal que permite a los usuarios transferir fondos a través de fronteras nacionales de la misma forma que se envía un correo electrónico. Como otras redes de pagos peer-to-peer como Bitcoin, el XRP Ledger permite transacciones de liquidación peer-to-peer a través de una red descentralizada de ordenadores. A diferencia de otros protocolos de divisas digitales, el XRP Ledger permite a los usuarios denominar sus transacciones con cualquier divisa que prefieran, incluyendo divisas fiat, divisas digitales y cualquier otra forma de valor, y XRP (el activo nativo del XRP Ledger). @@ -20,7 +21,6 @@ Principalmente, el XRP Ledger es una base de datos compartida que registra infor Como sistema criptográfico, los dueños de cuentas del XRP Ledger son identificados como _identidades criptográficas_, las cuales corresponden a pares de claves públicas/privadas. Las transacciones son autorizadas por firmas criptográficas que coinciden con esas identidades. Cada servidor procesa cada transacción de acuerdo con las mismas reglas deterministas conocidas. Finalmente, el objetivo es para cada servidor en la red tener una copia completa de exactamente el estado del mismo ledger, sin necesidad de una única autoridad central que arbitre las transacciones. - ### El problema del doble gasto El problema del "doble gasto" es un desafío fundamental para cualquier sistema de pagos digital. El problema viene del requisito de que cuando el dinero es gastado en un sitio, no puede ser gastado en otro lugar. Generalmente, el problema ocurre cuando tiene dos transacciones cualesquiera de las cuales una es válida pero no ambas juntas. @@ -33,7 +33,6 @@ Convencionalmente, los sistemas de pagos resuelven el problema del doble gasto t Las tecnologías de contabilidad distribuida, como el XRP Ledger, no tiene una autoridad central. Estas tecnologías deben resolver el problema del doble gasto de alguna otra forma. - ## Cómo funciona el consenso ### Simplificando el problema @@ -56,14 +55,14 @@ La función principal del consenso es que los participantes en el proceso acuerd 1. Si no hay ninguna razón por la que una transacción debería no estar incluida en dicho grupo de transacciones, todos los participantes honestos aceptan incluirla. Si todos los participantes ya están de acuerdo, el consenso no tiene trabajo que hacer. 2. Si hay alguna razón por la que una transacción no debe incluirse en dicho grupo de transacciones, todos los participantes honestos estarán dispuestos a excluirla. Si la transacción todavía es válida, no hay razón para incluirla en la siguiente ronda, y todos deberían aceptar incluirla en ese momento. -3. Es extremadamente raro para un participante que le importe cómo las transacciones fueron agrupadas. El acuerdo es más fácil cuando la prioridad de cualquiera es llegar a un acuerdo y sólo desafiarlo cuando hay intereses divergentes. +3. Es extremadamente raro para un participante que le importe cómo las transacciones fueron agrupadas. El acuerdo es más fácil cuando la prioridad de cualquiera es llegar a un acuerdo y sólo desafiarlo cuando hay intereses divergentes. 4. Las reglas deterministas pueden ser usadas incluso para formar agrupaciones, llegando a desacuerdos solo en los casos extremos. Por ejemplo, si hay dos transacciones conflictivas en una ronda, las reglas deterministas pueden ser utilizadas para determinar cuál se incluye en la siguiente ronda. La principal prioridad de cada participante es la exactitud. Primero deben hacer cumplir las reglas para estar seguros de que nadie viola la integridad del ledger compartido. Por ejemplo, una transacción que no está correctamente firmada nunca debe ser procesada (incluso si otros participantes quieren que se procese). Sin embargo, la segunda prioridad de cada participante honesto es el llegar a un acuerdo. Una red con posibles gastos dobles no tiene ninguna utilidad, así que cada participante honesto valora el acuerdo por encima de la exactitud. ### Rondas de consenso -Una ronda de consenso es una intento de ponerse de acuerdo en un grupo de transacciones para que puedan ser procesadas. Una ronda de consenso empieza con cada participante que lo desea tomando una posición inicial. Este es el conjunto de transacciones válidas que han visto. +Una ronda de consenso es una intento de ponerse de acuerdo en un grupo de transacciones para que puedan ser procesadas. Una ronda de consenso empieza con cada participante que lo desea tomando una posición inicial. Este es el conjunto de transacciones válidas que han visto. Después, los participantes se "avalanzan" al consenso: Si una transacción particular no tiene apoyo mayoritario, los participantes concuerdan apartar esa transacción. Si una transacción en concreto sí tiene el apoyo mayoritario, los participantes concuerdan incluir esa transacción. Así leves mayorías rápidamente consiguen apoyo completo y leves minorías rápidamente consiguen rechazo universal en la ronda actual. @@ -73,7 +72,7 @@ Cuando un participante ve a una sobremayoría que está de acuerdo en el conjunt ### El consenso puede fallar -No es práctico desarrollar un algoritmo de consenso que nunca falla para alcanzar un consenso perfecto. Para entender el por qué, considera cómo finaliza el proceso de consenso. En algún momento, cada participante debe declarar que ha alcanzado consenso y que un grupo de transacciones conocido ha sido el resultado de ese proceso. Esta declaración compromete al participante de que un particular grupo de transacciones como resultado de ese proceso de consenso. +No es práctico desarrollar un algoritmo de consenso que nunca falla para alcanzar un consenso perfecto. Para entender el por qué, considera cómo finaliza el proceso de consenso. En algún momento, cada participante debe declarar que ha alcanzado consenso y que un grupo de transacciones conocido ha sido el resultado de ese proceso. Esta declaración compromete al participante de que un particular grupo de transacciones como resultado de ese proceso de consenso. Algún participante debe hacer esto primero o ningún participante podrá hacerlo nunca, y nunca llegarán a alcanzar consenso. Ahora, considera al participante que hace esto primero. Cuando este participante decide que el consenso ha finalizado, otros participantes no han llegado todavía a tomar esa decisión. Si fuesen incapaces de cambiar el conjunto acordado desde su punto de vista, ellos habrían decidido que el consenso se había alacanzado ya. Por lo que deben todavía ser capaces de cambiar el conjunto agregado.. @@ -114,18 +113,18 @@ El algoritmo de consenso del XRP Ledger provee una alternativa robusta a sistema ## Ver también - **Conceptos:** - - [Consenso](index.md) - - [Investigación del consenso](consensus-research.md) - - [Vídeo del mecanismo de consenso del XRPL](https://www.youtube.com/watch?v=k6VqEkqRTmk&list=PLJQ55Tj1hIVZtJ_JdTvSum2qMTsedWkNi&index=2) + - [Consenso](index.md) + - [Investigación del consenso](consensus-research.md) + - [Vídeo del mecanismo de consenso del XRPL](https://www.youtube.com/watch?v=k6VqEkqRTmk&list=PLJQ55Tj1hIVZtJ_JdTvSum2qMTsedWkNi&index=2) - **Tutoriales:** - - [Envío de transacciones confiable](../transactions/reliable-transaction-submission.md) - - [Ejecutar `rippled` como Validador](../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md) + - [Envío de transacciones confiable](../transactions/reliable-transaction-submission.md) + - [Ejecutar `rippled` como Validador](../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md) - **Referencias:** - - [Referencia del formato ledger](../../references/protocol/ledger-data/index.md) - - [Referencia del formato de transacción](../../references/protocol/transactions/index.md) - - [método consensus_info][] - - [método validator_list_sites][] - - [método validators][] - - [método consensus_info][] + - [Referencia del formato ledger](../../references/protocol/ledger-data/index.md) + - [Referencia del formato de transacción](../../references/protocol/transactions/index.md) + - [método consensus_info][] + - [método validator_list_sites][] + - [método validators][] + - [método consensus_info][] {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/@l10n/es-ES/docs/concepts/consensus-protocol/consensus-protections.md b/@l10n/es-ES/docs/concepts/consensus-protocol/consensus-protections.md index d3d6025a19..587c76399e 100644 --- a/@l10n/es-ES/docs/concepts/consensus-protocol/consensus-protections.md +++ b/@l10n/es-ES/docs/concepts/consensus-protocol/consensus-protections.md @@ -1,14 +1,15 @@ --- seo: - description: Aprende cómo el Protocolo de Consenso del XRP Ledger se protege contra varios problemas y ataques que pueden ocurrir en un sistema financiero descentralizado. + description: Aprende cómo el Protocolo de Consenso del XRP Ledger se protege contra varios problemas y ataques que pueden ocurrir en un sistema financiero descentralizado. labels: - Blockchain --- + # Protecciones del consenso contra ataques y modos de fallo El Protocolo de Consenso del XRP Ledger es un mecanismo de consenso _tolerante a fallos bizantinos_, lo que quiere decir que está diseñado para trabajar incluso si todo tipo de cosas salen mal: los participantes dependen de una red abierta poco confiable, y actores maliciosos pueden estar intentando controlar o interrumpir el sistema en un momento dado. Encima de eso, el conjunto de participantes en el Protocolo de Consenso del XRP Ledger no se conoce de antemano y puede cambiar con el tiempo. -Confirmar transacciones de una forma rápida mientras se mantiene las propiedades deseadas de la red es un desafío complejo, y es imposible construir un sistema perfecto. El Protocolo de Conenso del XRP Ledger está diseñado para funcionar lo mejor posible en la mayoría de las situaciones, y para fallar elegántemente en aquellas que no es posible. +Confirmar transacciones de una forma rápida mientras se mantiene las propiedades deseadas de la red es un desafío complejo, y es imposible construir un sistema perfecto. El Protocolo de Conenso del XRP Ledger está diseñado para funcionar lo mejor posible en la mayoría de las situaciones, y para fallar elegántemente en aquellas que no es posible. Esta página describe algunos de los desafíos que el Protocolo de Consenso del XRP LEdger se encuentra y cómo se enfrenta a ellos. @@ -28,7 +29,6 @@ Si más del 20% de los validadores son inalcanzables o no se comportan adecuadam La única forma de confirmar una transacción inválida sería conseguir que el 80% de los validadores confiables aprueben la transacción y estén de acuerdo en el resultado exacto. (Las transacciones inválidas incluyen ese dinero gastado que ya ha sido gastado, o de otra forma estaría rompiendo las reglas de la red.) En otras palabras, una gran mayoría de los validadores confiables habrían _colisionado_. Con docenas de validadores confiables corriendo por diferentes personas y negocios en diferentes partes del mundo, esto es muy dificil de conseguir intencionadamente. - ## Vulnerabilidades de software Como con cualquier sistema de software, los bugs (o código intencionalmente malicioso) en la implementación del Protocolo de Consenso del XRP Ledger, los paquetes de software comúnmente implementados, o sus dependencias, son un problema que hay que tomarse seriamente. Incluso los bugs que causan que un servidor falle cuando ve valores de entrada cocinados pueden abusasrse para interrumpir el proceso de la red. Los desarrolladores del XRP Ledger toman precauciones para abordar esta amenaza en la referencia de implementaciones de software de XRP Ledger, incluyen: @@ -39,21 +39,18 @@ Como con cualquier sistema de software, los bugs (o código intencionalmente mal - Revisiones profesionales encargadas periodicamentes para detectar vulnerabilidades e inseguridades. - Un [programa de recompensas de bugs](https://ripple.com/bug-bounty/) que premia a investigadores de seguridad que revelan responsablemente las vulnerabilidades. - ## Ataques Sybil Un _[ataque Sybil](https://en.wikipedia.org/wiki/Sybil_attack)_ es un intento de tomar el control de una red usando un gran número de identidades falsas. En el XRP Ledger, un ataque Sybil tomaría la forma de ejecutar un gran número de validadores, y luego convencer a otros de confiar en esos validadores. Este tipo de ataques son teóricamente posibles, pero sería muy dificil de hacer porque la intervención humana es necesaria para ser confiados por otros. -No importa cuantos servidores un atacante ejecuta, esos servidores no tienen voz ni voto sobre lo que los participantes existentes consideran validados a no ser que esos participantes decidan confiar en los validadores del atacante. Otros servidores solo escuchan lo que los validadores que tienen configurados para confiar, ya sea por una lista de validodres o una configuración explícita. (Ver [requisitos de superposición de validador](#requisitos-de-superposición-del-validador) para un sumario de cómo una lista de validadores funciona.) +No importa cuantos servidores un atacante ejecuta, esos servidores no tienen voz ni voto sobre lo que los participantes existentes consideran validados a no ser que esos participantes decidan confiar en los validadores del atacante. Otros servidores solo escuchan lo que los validadores que tienen configurados para confiar, ya sea por una lista de validodres o una configuración explícita. (Ver [requisitos de superposición de validador](#requisitos-de-superposición-del-validador) para un sumario de cómo una lista de validadores funciona.) Esta confianza no ocurre automáticamente, para realizar un ataque Sybil exitosamente habría que añadirle el laborioso trabajo de convencer a personas y empresas de reconfigurar sus servidores XRP Ledger para confiar en los validadores del atacante. Incluso en el caso de que una entidad individual sea engañada haciendo eso, esto tendrá un impacto mínimo en otros que no han cambiado sus configuraciones. - ## Ataque del 51% Un "ataque de 51%" es un ataque en un sistema blockchain donde un bando controla más del 50% de todo el poder de minado o votación. (Técnicamente, el ataque está incorrectamente llamado porque _cualquier_ valor superior al 50% es suficiente.) El XRP Ledger no es vulnerable a un ataque del 51% porque no utiliza minería en su mecanismo de consenso. La analogía más cercana para el XRP Ledger es un [ataque Sybil](#ataques-sybil), el cuál sería complicado de realizar. - ## Requisitos de superposición del validador Para todos los participantes en el XRP Ledger se pongan de acuerdo en qué consideran como validado, deben empezar eligiendo un conjunto de validadores confiables que son muy parecidos a los conjuntos elegidos por los demás. En el peor escenario, menos del 90% de superposición podría causar que algunos participantes diverjan entre ellos. Por esa razón, existen listas firmadas de validadores recomendados, destinadas a incluir servidores bien mantenidos y confiables administrados por la industria y la comunidad. @@ -64,7 +61,6 @@ Técnicamente, si ejecutas un servidor, puedes configurar tu propia lista o expl Se está investigando un nuevo diseño del protocolo de consenso mejorado que permita listas de validadores más hetereogeneas. Para más información, ver la [Investigación del consenso](consensus-research.md) page. - ## Ver también - Para una descripción detallada del protocolo de consenso, ver [Consenso](index.md). diff --git a/@l10n/es-ES/docs/concepts/consensus-protocol/consensus-research.md b/@l10n/es-ES/docs/concepts/consensus-protocol/consensus-research.md index f05bcc5eb3..ddf9121727 100644 --- a/@l10n/es-ES/docs/concepts/consensus-protocol/consensus-research.md +++ b/@l10n/es-ES/docs/concepts/consensus-protocol/consensus-research.md @@ -2,18 +2,19 @@ html: consensus-research.html parent: consensus.html seo: - description: Artículos académicos sobre algoritmos de consenso investigaciones relacionadas. + description: Artículos académicos sobre algoritmos de consenso investigaciones relacionadas. labels: - Blockchain --- + # Investigación del consenso Ripple investiga los límites teóricos y prácticos de los protocolos de consenso del XRP Ledger. La siguiente tabla enumera los artículas académicos publicados por Ripple: -| Fecha | Título | Autores | Resumen | -|---|---|---|---| -| 2018-02-20 | [Cobalt: BFT Governance in Open Networks](https://arxiv.org/abs/1802.07240) | MacBrough | Introduce un novedoso algoritmo de transmisión a nivel atómico llamado Cobalt que permite más flexibilida d de consenso en las UNL. | -| 2018-02-20 | [Analysis of the XRP Ledger Consensus Protocol](https://arxiv.org/abs/1802.07242) | Chase, MacBrough | Un análisis actualizado y detallado del algoritmo de consenso del XRP Ledger y sus propiedad de seguridad y actividad. | -| 2014 | [The Ripple Protocol Consensus Algorithm](https://ripple.com/files/ripple_consensus_whitepaper.pdf) | Schwartz, Youngs, Britto | Introduce el algoritmo de consenso detrás del XRP Ledger. | +| Fecha | Título | Autores | Resumen | +| ---------- | --------------------------------------------------------------------------------------------------- | ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------- | +| 2018-02-20 | [Cobalt: BFT Governance in Open Networks](https://arxiv.org/abs/1802.07240) | MacBrough | Introduce un novedoso algoritmo de transmisión a nivel atómico llamado Cobalt que permite más flexibilida d de consenso en las UNL. | +| 2018-02-20 | [Analysis of the XRP Ledger Consensus Protocol](https://arxiv.org/abs/1802.07242) | Chase, MacBrough | Un análisis actualizado y detallado del algoritmo de consenso del XRP Ledger y sus propiedad de seguridad y actividad. | +| 2014 | [The Ripple Protocol Consensus Algorithm](https://ripple.com/files/ripple_consensus_whitepaper.pdf) | Schwartz, Youngs, Britto | Introduce el algoritmo de consenso detrás del XRP Ledger. | diff --git a/@l10n/es-ES/docs/concepts/consensus-protocol/consensus-structure.md b/@l10n/es-ES/docs/concepts/consensus-protocol/consensus-structure.md index 8380ea6077..b3d9a4ebd6 100644 --- a/@l10n/es-ES/docs/concepts/consensus-protocol/consensus-structure.md +++ b/@l10n/es-ES/docs/concepts/consensus-protocol/consensus-structure.md @@ -2,19 +2,19 @@ html: consensus-structure.html parent: consensus.html seo: - description: Entender el rol del consenso en el XRP Ledger. + description: Entender el rol del consenso en el XRP Ledger. labels: - Blockchain --- + # Estructura de consenso -Escrito por Dave Cohen, David Schwartz, y Arthur Britto._ +Escrito por Dave Cohen, David Schwartz, y Arthur Britto.\_ Este artículo proporciona una visión a alto nivel del XRP Ledger, la información que almacena, y cómo las [transacciones](../../references/protocol/transactions/index.md) dan como resultado cambios en el ledger. Al crear aplicaciones en el XRP Ledger, es importante entender el proceso, para no sorprenderse por el comportamiento de las APIs de XRP Ledger y sus efectos. - ## Introducción La red peer-to-peer XRP Ledger proporciona un libro de contabilidad (ledger) compartido a nivel mundial, que brinda información autorizada a aplicaciones sobre el estado de su contenido. Este estado de la información incluye: @@ -27,13 +27,13 @@ La red peer-to-peer XRP Ledger proporciona un libro de contabilidad (ledger) com Para una descripción técnica completa de todos los datos que se incluyen en una versión de un ledger, ver la [Referencia de formato de ledger](../../references/protocol/ledger-data/index.md). -[{% inline-svg file="/docs/img/anatomy-of-a-ledger-complete.svg" /%}](/docs/img/anatomy-of-a-ledger-complete.svg "Figura 1: Elementos del XRP Ledger") +[{% inline-svg file="/docs/img/anatomy-of-a-ledger-complete.svg" /%}](/docs/img/anatomy-of-a-ledger-complete.svg 'Figura 1: Elementos del XRP Ledger') _Figura 1: Elementos del XRP Ledger_ El XRP Ledger tiene una nueva versión de un ledger cada ciertos segundos. Cuando la red acuerda el contenido de una nueva versión del ledger, la versión del ledger es _validado_, y sus contenidos no se pueden cambiar nunca. Las versiones validadadas de ledgers que precedieron forman el histórico del ledger. Incluso el ledger validado más reciente es parte del histórico, ya que representa el estado de la red hasta hace poco tiempo. En la actualidad, la red está evaluando transacciones que pueden aplicarse y finalizarse en la próxima versión del ledger. Mientras la evaluación está ocurriendo, la red tiene versiones de ledger que aun no están validadas. -[{% inline-svg file="/docs/img/ledger-history.svg" /%}](/docs/img/ledger-history.svg "Figura 2: Histórico del XRP Ledger") +[{% inline-svg file="/docs/img/ledger-history.svg" /%}](/docs/img/ledger-history.svg 'Figura 2: Histórico del XRP Ledger') _Figure 2: Histórico del XRP Ledger_ @@ -45,13 +45,13 @@ Los cambios a nivel de usuario son el resultado de transacciones. Ejemplos de [t Cada versión del ledger también contiene un conjunto de transacciones y metadata sobre esas transacciones. Las transacciones que incluye son solo aquellas que han sido aplicadas para la anterior versión del ledger para crear la nueva versión del ledger. Los metadatos o metadata se registran a los mismos efectos en el estado del dato del ledger. -[{% inline-svg file="/docs/img/ledger-changes.svg" /%}](/docs/img/ledger-changes.svg "Figura 3: Transacciones aplicadas a la versión del ledger") +[{% inline-svg file="/docs/img/ledger-changes.svg" /%}](/docs/img/ledger-changes.svg 'Figura 3: Transacciones aplicadas a la versión del ledger') _Figure 3: Transacciones aplicadas a la versión del ledger_ El conjunto de transacciones incluidas en una instancia ledger se guardan en ese ledger y permite auditorías de la historia del XRP Ledger. Si un balance de cuenta es diferente en un ledger N+1 respecto al ledger N, entonces el ledger N+1 contiene las transacciones responsables del cambio. -Las transacciones que aparecen en un ledger validado pueden haber logrado cambiar el ledger, o pueden haberse procesado sin haber realizado la acción requerida. Las transacciones exitosas tienen el [código resultado](../../references/protocol/transactions/transaction-results/index.md) **`tesSUCCESS`** el cual indica los cambios solicitados para aplicar en el ledger. Las transacciones fallidas en el ledger tienen el código de resultado de clase **`tec`**.1 +Las transacciones que aparecen en un ledger validado pueden haber logrado cambiar el ledger, o pueden haberse procesado sin haber realizado la acción requerida. Las transacciones exitosas tienen el [código resultado](../../references/protocol/transactions/transaction-results/index.md) **`tesSUCCESS`** el cual indica los cambios solicitados para aplicar en el ledger. Las transacciones fallidas en el ledger tienen el código de resultado de clase **`tec`**.1 Todas las transacciones incluidas en un ledger destruyen algo de XRP como un [coste de transacción](../transactions/transaction-cost.md), sin importar si tenían un código **`tes`** o **`tec`**. La cantidad exacta de XRP destruido es definido por las instrucciones de transacción firmadas. @@ -59,13 +59,13 @@ Hay otras clases de códigos de resultado además de **`tes`** y **`tec`**. Cual Cuando se trabaja con [APIs del XRP Ledger](../../references/http-websocket-apis/index.md), las aplicaciones deben distinguir entre transacciones candidatas propuestas para la inclusión en un ledger y transacciones validadas que están incluidas en un ledger. Solo los resultados de transacciones encontrados en un ledger validado son inmutables. Una transacción candidata puede eventualmente estar incluida en un leger validado, o puede que no. -Importante: Algunas [APIs `rippled`](../../references/http-websocket-apis/index.md) proporcionan resultados provisionales, basados en transacciones candidatas 2. Las aplicaciones nunca deben basarse en resultados provisionales para determinar el resultado final de una transacción. La única forma de conocer si finalmente una transacción se ha realizado correctamente, es comprobar el estado de la transacción hasta que esté en un ledger validado y además tenga el código de resultado `tesSUCCESS`. Si la transacción está en un ledger validado con otro código de resultado, ha fallado. Si el ledger especificado en [`LastLedgerSequence`](../../references/protocol/transactions/common-fields.md) en una transacción ha sido validado, pero la transacción no aparece en ese ledger o en alguno anterior, entonces esa transacción ha fallado y nunca aparecerá en ningún ledger. Un resultado es definitivo solo para transacciones en un ledger validado o nunca podrán aparecer por las restricciones de `LastLedgerSequence` explicadas más adelante en este documento. +Importante: Algunas [APIs `rippled`](../../references/http-websocket-apis/index.md) proporcionan resultados provisionales, basados en transacciones candidatas 2. Las aplicaciones nunca deben basarse en resultados provisionales para determinar el resultado final de una transacción. La única forma de conocer si finalmente una transacción se ha realizado correctamente, es comprobar el estado de la transacción hasta que esté en un ledger validado y además tenga el código de resultado `tesSUCCESS`. Si la transacción está en un ledger validado con otro código de resultado, ha fallado. Si el ledger especificado en [`LastLedgerSequence`](../../references/protocol/transactions/common-fields.md) en una transacción ha sido validado, pero la transacción no aparece en ese ledger o en alguno anterior, entonces esa transacción ha fallado y nunca aparecerá en ningún ledger. Un resultado es definitivo solo para transacciones en un ledger validado o nunca podrán aparecer por las restricciones de `LastLedgerSequence` explicadas más adelante en este documento. ## El protocolo XRP Ledger – Consenso y validación La red peer-to-peer XRP Ledger consiste en muchos servidores independientes XRP Ledger (normalmente ejecutando [`rippled`](../networks-and-servers/index.md)) que aceptan y procesan transacciones. Las aplicaciones cliente firman y envían transacciones a servidores XRP Ledger, que transmiten estas transacciones candidatas a través de la red de procesamiento. Ejemplos de aplicaciones cliente incluyen carteras web y móvil, conexiones con instituciones financieras, y plataformas de trading electrónicas. -[{% inline-svg file="/docs/img/xrp-ledger-network.svg" /%}](/docs/img/xrp-ledger-network.svg "Figura 4: Participantes en el Protocolo XRP Ledger") +[{% inline-svg file="/docs/img/xrp-ledger-network.svg" /%}](/docs/img/xrp-ledger-network.svg 'Figura 4: Participantes en el Protocolo XRP Ledger') _Figura 4: Participantes en el Protocolo XRP Ledger_ @@ -79,7 +79,7 @@ Los servidores de la red comparten información sobre transacciones candidatas. Durante el consenso, cada servidor evalúa propuestas de un específico grupo de servidores, conocidos como validadores confiables por ese servidor, o _Unique Node List (UNL)_.5 Los validadores confiables representan un subconjunto de la red la cual, en conjunto, es "confiable" para no confabular en un intento de defraudar al servidor que evalúa las propuestas. Esta definición de "confianza" no requiere que se confie en cada validador individual elegido. Más bien, los validadores son elegidos en base a la expectativa de que no confabularán en un esfuerzo coordinado para falsificar los datos transmitidos en la red 6. -[{% inline-svg file="/docs/img/consensus-rounds.svg" /%}](/docs/img/consensus-rounds.svg "Figura 5: Los validadores proponen y revisar conjuntos de transacciones") +[{% inline-svg file="/docs/img/consensus-rounds.svg" /%}](/docs/img/consensus-rounds.svg 'Figura 5: Los validadores proponen y revisar conjuntos de transacciones') _Figura 5: Validadores proponen y revisan conjuntos de transacciones — Al comienzo del consenso, los validadores pueden tener un conjunto distinto de transacciones. En siguientes rondas, los servidores modificarán sus propuestas para coincidir con las propuestas de sus validadores confiables. Este proceso determina qué transacciones deberían aplicar a la versión del ledger que se está actualmente debatiendo, y cuales deberían posponerse para próximas versiones del ledger._ @@ -98,7 +98,6 @@ La validación puede dividirse en aproximadamente dos partes: Cada servidor en la red realiza una validación separada y local. - #### Calcular y compartir validaciones Cuando el proceso de consenso se completa, cada servidor independientemente computa un nuevo ledger a partir del conjunto de transacciones acordado. Cada servidor calcula los resultados siguiendo las mismas reglas, las cuales pueden ser resumidas de la siguiente manera: @@ -107,21 +106,21 @@ Cuando el proceso de consenso se completa, cada servidor independientemente comp 2. Colocar el conjunto de transacciones acordado en _orden canónico_ para que cada servidor la procese de la misma forma. - [Orden canónico](https://github.com/XRPLF/rippled/blob/8429dd67e60ba360da591bfa905b58a35638fda1/src/ripple/app/misc/CanonicalTXSet.cpp#L25-L36) no es el orden de cómo las transacciones fueron recibidas, porque los servidores pueden recibir las mismas transacciones en diferente orden. Para prevenir a los participantes de competir sobre el orden de las trnasacciones, el orden canónico es difícil de manipular. + [Orden canónico](https://github.com/XRPLF/rippled/blob/8429dd67e60ba360da591bfa905b58a35638fda1/src/ripple/app/misc/CanonicalTXSet.cpp#L25-L36) no es el orden de cómo las transacciones fueron recibidas, porque los servidores pueden recibir las mismas transacciones en diferente orden. Para prevenir a los participantes de competir sobre el orden de las trnasacciones, el orden canónico es difícil de manipular. 3. Procesar cada transacción según sus instrucciones, en orden. Actualizar el estado del dato del ledger en consecuencia. - Si la transacción no puede ser ejecutada exitósamente, incluye la transacción con un [código de resultado de clase `tec`](../../references/protocol/transactions/transaction-results/tec-codes.md).1 + Si la transacción no puede ser ejecutada exitósamente, incluye la transacción con un [código de resultado de clase `tec`](../../references/protocol/transactions/transaction-results/tec-codes.md).1 - Para ciertos fallos de transacciones "recuperables", se mueve la transacción al final del orden canónico para volver a intentarla después de que se hayan ejecutado otras transacciones del mismo ledger. + Para ciertos fallos de transacciones "recuperables", se mueve la transacción al final del orden canónico para volver a intentarla después de que se hayan ejecutado otras transacciones del mismo ledger. 4. Actualizar la cabecera del ledger con el apropiado metadata. - Esto incluye datos tales como el ledger index o índice del ledger, el hash identificativo del ledger previo validado (el "padre" de este), la hora de cierre aproximada de esta versión del ledger, y los hashes criptográficos de los contenidos de este ledger. + Esto incluye datos tales como el ledger index o índice del ledger, el hash identificativo del ledger previo validado (el "padre" de este), la hora de cierre aproximada de esta versión del ledger, y los hashes criptográficos de los contenidos de este ledger. 5. Calcular el hash identificativo de la nueva versión del ledger. -[{% inline-svg file="/docs/img/consensus-calculate-validation.svg" /%}](/docs/img/consensus-calculate-validation.svg "Figura 7: Un servidor XRP Ledger calcula la validación de un ledger") +[{% inline-svg file="/docs/img/consensus-calculate-validation.svg" /%}](/docs/img/consensus-calculate-validation.svg 'Figura 7: Un servidor XRP Ledger calcula la validación de un ledger') _Figura 7: Un servidor XRP Ledger calcula la validación de un ledger — Cada servidor aplica transacciones acordadas por el anterior ledger validado. Los validadores envían sus resultados a toda la red._ @@ -129,7 +128,7 @@ _Figura 7: Un servidor XRP Ledger calcula la validación de un ledger — Cada s Cada validador transmite sus resultados en forma de un mensaje firmado que contiene el hash de la versión de ledger calculada. Estos mensajes, llamados _validaciones_, permiten a cada servidor comparar el ledger que calculó con el de sus pares. -[{% inline-svg file="/docs/img/consensus-declare-validation.svg" /%}](/docs/img/consensus-declare-validation.svg "Figura 8: El ledger es validado cuando la supermayoría de pares calcula el mismo resultado") +[{% inline-svg file="/docs/img/consensus-declare-validation.svg" /%}](/docs/img/consensus-declare-validation.svg 'Figura 8: El ledger es validado cuando la supermayoría de pares calcula el mismo resultado') _Figura 8: El ledger es validado cuando la supermayoría de pares calcula el mismo resultado - Cada servidor compara su su ledger calculado con los hashes recibidos de sus validadores elegidos. Si no hay acuerdo, el servidor debe recaluclar o recuperar el ledger correcto._ @@ -141,7 +140,6 @@ Si la red no logra un acuerdo de supermayoría sobre las validaciones, esto impl Una vez que alcanzan supermayoría en el acuerdo de las validaciones, los servidores trabajan con el nuevo ledger validado, ledger index N+1. El consenso y el proceso de validación se repite 9, considerando transacciones candidatas que no fueron incluidas en la última ronda junto con nuevas transacciones presentadas mientras tanto. - ## Conclusiones claves Las transacciones enviadas al XRP Ledger no son procesadas inmediatamente. Durante un periodo de tiempo, cada transacciones permanece como candidata. @@ -150,12 +148,12 @@ El ciclo de vida de una sola transacción es el siguiente: - Una transacción es creada y firmada por un dueño de una cuenta. - La transacción es enviada a la red. - - Transacciones mal formadas podrán ser rechazadas inmediatamente. - - Transacciones bien formadas pueden ser provisionalmente exitosas, y luego fallar. - - Transacciones bien formadas pueden provisionalmente fallar, y luego fallar. + - Transacciones mal formadas podrán ser rechazadas inmediatamente. + - Transacciones bien formadas pueden ser provisionalmente exitosas, y luego fallar. + - Transacciones bien formadas pueden provisionalmente fallar, y luego fallar. - Durante el consenso, la transacción es incluida en el ledger. - - El resultado de un consenso exitoso es un ledger validado. - - Si una ronda de consenso falla, el proceso de consenso se repita hasta que es exitoso. + - El resultado de un consenso exitoso es un ledger validado. + - Si una ronda de consenso falla, el proceso de consenso se repita hasta que es exitoso. - El ledger validado incluye la transacción y esta afecta al estado del ledger. Las aplicaciones deben solo confiar en información de ledgers validados, no en resultados provisionales de transacciones candidatas. Algunas [APIs de `rippled`](../../references/http-websocket-apis/index.md) devuelven inicialmente unos resultados provisionales para las transacciones. Los resultados de una transacción se convierten en inmutables solo si la transacción es incluida en un ledger validado, o la transacción incluye `LastLedgerSequence` y no aparece en ningún ledger validado con ese ledger index o menor. @@ -164,31 +162,27 @@ Buenas prácticas para aplicaciones enviando transsacciones incluyen: - Utilizar el parámetro `LastLedgerSequence` para asegurar que las transacciones se validen o fallen de forma determinista y rápida. - Comprobar los resultados de transacciones en ledgers validados. - - Hasta que el ledger que contiene la transacción es validado, o haya pasado `LastLedgerSequence`, los resultados son provisionales. - - Transacciones con el código resultado **`tesSUCCESS`** y `"validated": true` se han realizado correctamente de forma inmutable. - - Transacciones con otro código resultado y `"validated": true` han fallado de forma inmutable. - - Transacciones que no aparecen en ningún ledger validado, incluido el ledger validado identificado por el `LastLedgerSequence` de la transacción ha fallado de forma inmutable. - - Tener cuidado de usar un servidor con un histórico de ledger continuo para detectar este caso 10. - - Puede ser necesario comprobar el estado de una transacción repetidamente hasta que el identificado por `LastLedgerSequence` es validado. + - Hasta que el ledger que contiene la transacción es validado, o haya pasado `LastLedgerSequence`, los resultados son provisionales. + - Transacciones con el código resultado **`tesSUCCESS`** y `"validated": true` se han realizado correctamente de forma inmutable. + - Transacciones con otro código resultado y `"validated": true` han fallado de forma inmutable. + - Transacciones que no aparecen en ningún ledger validado, incluido el ledger validado identificado por el `LastLedgerSequence` de la transacción ha fallado de forma inmutable. + - Tener cuidado de usar un servidor con un histórico de ledger continuo para detectar este caso 10. + - Puede ser necesario comprobar el estado de una transacción repetidamente hasta que el identificado por `LastLedgerSequence` es validado. ## Ver también - **Conceptos:** - - [Investigación del consenso](consensus-research.md) - - [El mecanismo del consenso (YouTube)](https://www.youtube.com/watch?v=k6VqEkqRTmk&list=PLJQ55Tj1hIVZtJ_JdTvSum2qMTsedWkNi&index=2) + - [Investigación del consenso](consensus-research.md) + - [El mecanismo del consenso (YouTube)](https://www.youtube.com/watch?v=k6VqEkqRTmk&list=PLJQ55Tj1hIVZtJ_JdTvSum2qMTsedWkNi&index=2) - **Tutoriales:** - - [Envío de transacciones de forma correcta](../transactions/reliable-transaction-submission.md) - - [Ejecutar `rippled` como un validator](../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md) + - [Envío de transacciones de forma correcta](../transactions/reliable-transaction-submission.md) + - [Ejecutar `rippled` como un validator](../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md) - **Referencias:** - - [Referencia del fromato del ledger](../../references/protocol/ledger-data/index.md) - - [Referencia del formato de la transacción](../../references/protocol/transactions/index.md) - - [método consensus_info][] - - [método validator_list_sites][] - - [método validators][] - - - - + - [Referencia del fromato del ledger](../../references/protocol/ledger-data/index.md) + - [Referencia del formato de la transacción](../../references/protocol/transactions/index.md) + - [método consensus_info][] + - [método validator_list_sites][] + - [método validators][] ## Pies de notas @@ -202,7 +196,7 @@ Buenas prácticas para aplicaciones enviando transsacciones incluyen: 5 – Cada servidor define su propios validadores confiables, pero la consistencia de la red depende en diferentes servidores eligiendo listas que tienen un mayor grado de superposición. Por esta razón, Ripple publica una lista de validadores recomendados. -6 – Si las propuestas de todos los validadores fueron evaluadas, en lugar de exclusivamente por los validadores elegidos para no confabular, un atacante malicioso podría ejecutar más validadores para ganar poder desproporcionado sobre el proceso de validación, así podrían introducir transacciones inválidas u omitir transacciones válidas de las propuestas. La lista de validadores elegida [defiende de ataques Sybil](consensus-protections.md#ataques-sybil). +6 – Si las propuestas de todos los validadores fueron evaluadas, en lugar de exclusivamente por los validadores elegidos para no confabular, un atacante malicioso podría ejecutar más validadores para ganar poder desproporcionado sobre el proceso de validación, así podrían introducir transacciones inválidas u omitir transacciones válidas de las propuestas. La lista de validadores elegida [defiende de ataques Sybil](consensus-protections.md#ataques-sybil). 7 – El umbral de supermayoría, a partir de noviembre del 2014, requiere que al menos el 80% de pares deben estar de acuerdo en un ledger para ser validado. Est el mismo porcentaje necesario para una ronda de consenso. Ambos umbrales están sujetos a cambio y no necesitan ser iguales. diff --git a/@l10n/es-ES/docs/concepts/consensus-protocol/fee-voting.md b/@l10n/es-ES/docs/concepts/consensus-protocol/fee-voting.md index faab408406..0a5c5a1071 100644 --- a/@l10n/es-ES/docs/concepts/consensus-protocol/fee-voting.md +++ b/@l10n/es-ES/docs/concepts/consensus-protocol/fee-voting.md @@ -2,11 +2,12 @@ html: fee-voting.html parent: consensus.html seo: - description: Cómo los validadores votan las comisiones o fees (coste de transacción y requisitos de reserva). + description: Cómo los validadores votan las comisiones o fees (coste de transacción y requisitos de reserva). labels: - Fees - XRP --- + # Votación de comisiones o fees Los validadores pueden votar por cambiar los [costes de transacción](../transactions/transaction-cost.md) básicos como los [requisitos de reserva](../accounts/reserves.md). Si las preferencias en la configuración de un validador son diferentes a los ajustes actuales de la red, el validador expresa sus preferencias a la red periódicamente. Si un cuórum de validadores está de acuerdo en un cambio, pueden aplicar un cambio que se haga efectivo a partir de entonces. Los validadores pueden hacer esto por varias razones, especialmente para adaptarse a cambios en el valor de XRP a largo plazo. @@ -17,53 +18,52 @@ Los operadores de [validadores `rippled`](../../infrastructure/configuration/ser Los parámetros que puedes configurar son los siguientes: -| Parámetro | Descripción | Valor recomendado | -|-----------|-------------|-------------------| -| `reference_fee` | Cantidad de XRP, en _drops_ (1 XRP = 1 millón de drops.), que debe ser destruido para enviar la transacción de referencia, la transacción más barata posible. El coste de una transacción real es un múltiplo de ese valor, escalado dinámicamente basado en la carga de de los servidores individuales. | `10` (0.00001 XRP) | -| `account_reserve` | Cantidad mínima de XRP, en _drops_, que una cuenta debe tener en reserva. Esta es la cantidad más pequeña que se puede enviar para financiar una nueva cuenta en el ledger. | `1000000` ({% $env.PUBLIC_BASE_RESERVE %}) | -| `owner_reserve` | XRP de más, en _drops_, que se debe poseer en una dirección por _cada_ objeto que posees en el ledger. | `200000` ({% $env.PUBLIC_OWNER_RESERVE %}) | +| Parámetro | Descripción | Valor recomendado | +| ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------ | +| `reference_fee` | Cantidad de XRP, en _drops_ (1 XRP = 1 millón de drops.), que debe ser destruido para enviar la transacción de referencia, la transacción más barata posible. El coste de una transacción real es un múltiplo de ese valor, escalado dinámicamente basado en la carga de de los servidores individuales. | `10` (0.00001 XRP) | +| `account_reserve` | Cantidad mínima de XRP, en _drops_, que una cuenta debe tener en reserva. Esta es la cantidad más pequeña que se puede enviar para financiar una nueva cuenta en el ledger. | `1000000` ({% $env.PUBLIC_BASE_RESERVE %}) | +| `owner_reserve` | XRP de más, en _drops_, que se debe poseer en una dirección por _cada_ objeto que posees en el ledger. | `200000` ({% $env.PUBLIC_OWNER_RESERVE %}) | ## Proceso de votación -Cada 256º ledger se denomina un "flag" ledger. (Un flag ledger se define de manera que el `ledger_index` [modulo](https://en.wikipedia.org/wiki/Modulo_operation) `256` es igual a `0`.) En el ledger inmediatamente antes del flag ledger, cada validador cuyas preferencias de reserva de cuenta o coste de transacción son diferentes a la configuración actual de la red distribuye un mensaje de "voto" junto con su validación del ledger, indicando los valores que prefiere ese validador. +Cada 256º ledger se denomina un "flag" ledger. (Un flag ledger se define de manera que el `ledger_index` [modulo](https://en.wikipedia.org/wiki/Modulo_operation) `256` es igual a `0`.) En el ledger inmediatamente antes del flag ledger, cada validador cuyas preferencias de reserva de cuenta o coste de transacción son diferentes a la configuración actual de la red distribuye un mensaje de "voto" junto con su validación del ledger, indicando los valores que prefiere ese validador. En el propio flag ledger en sí, no ocurre nada, pero los validadores reciben y toman nota de los votos de los otros validadores en los que confían. -Después de contar los votos de otros validadores, cada validador intenta llegar a un acuerdo entre sus propias preferencias y las preferencias de la mayoría de validadores en los que confía. (Por ejemplo, si un validador quiere aumentar el coste de transacción mínima de 10 a 100, pero la mayoría de los validadores solo quiere aumentarla de 10 a 20, el validador decide aumentar el coste de transacción a 20. Sin embargo, el validador nunca estará de acuerdo en un valor menor a 10 o superior a 100.) Si es posible llegar a un compromiso, el validador inserta una [pseudo transacción SetFee](../../references/protocol/transactions/pseudo-transaction-types/setfee.md) en su propuesta para el ledger siguiente al flag ledger. Otros validaodres que quieran el mismo cambio, insertan la misma pseudo-transacción SetFee en sus propuestas para el mismo ledger. (Los validadores cuyas preferencias coincidan con las existentes en la red no hacen nada.) Si una pseudo-transacción SetFee sobrevive al proceso de consenso para ser incluida en un ledger validado, entonces el nuevo coste de transacción y configuración de reservas indicados por la pseudo transacción SetFee toman efecto empezando por el siguiente ledger. +Después de contar los votos de otros validadores, cada validador intenta llegar a un acuerdo entre sus propias preferencias y las preferencias de la mayoría de validadores en los que confía. (Por ejemplo, si un validador quiere aumentar el coste de transacción mínima de 10 a 100, pero la mayoría de los validadores solo quiere aumentarla de 10 a 20, el validador decide aumentar el coste de transacción a 20. Sin embargo, el validador nunca estará de acuerdo en un valor menor a 10 o superior a 100.) Si es posible llegar a un compromiso, el validador inserta una [pseudo transacción SetFee](../../references/protocol/transactions/pseudo-transaction-types/setfee.md) en su propuesta para el ledger siguiente al flag ledger. Otros validaodres que quieran el mismo cambio, insertan la misma pseudo-transacción SetFee en sus propuestas para el mismo ledger. (Los validadores cuyas preferencias coincidan con las existentes en la red no hacen nada.) Si una pseudo-transacción SetFee sobrevive al proceso de consenso para ser incluida en un ledger validado, entonces el nuevo coste de transacción y configuración de reservas indicados por la pseudo transacción SetFee toman efecto empezando por el siguiente ledger. En resumen: -* **Flag ledger -1**: Los validadores emiten sus votos. -* **Flag ledger**: Los validadores cuentan sus votos y deciden qué SetFee incluir, si hay alguna. -* **Flag ledger +1**: Los validadores incluyen una pseudo-transacción SetFee pseudo-transaction en sus ledgers propuestos. -* **Flag ledger +2**: La nueva configuración toma efecto, si la pseudo-transacción alcanza consenso. +- **Flag ledger -1**: Los validadores emiten sus votos. +- **Flag ledger**: Los validadores cuentan sus votos y deciden qué SetFee incluir, si hay alguna. +- **Flag ledger +1**: Los validadores incluyen una pseudo-transacción SetFee pseudo-transaction en sus ledgers propuestos. +- **Flag ledger +2**: La nueva configuración toma efecto, si la pseudo-transacción alcanza consenso. ## Valores máximos de comisiones o fees Los valores máximos posibles para las comisiones están limitadas por los tipos de datos internos almacenados en el [objeto de ledger FeeSettings](../../references/protocol/ledger-data/ledger-entry-types/feesettings.md). Los valores son los siguientes: -| Parámetro | Valor máximo (drops) | Valor máximo (XRP) -|-----------|-----------------------|----| -| `reference_fee` | 264 | (Más XRP del que nunca ha existido.) | -| `account_reserve` | 232 drops | Aproximadamente 4294 XRP | -| `owner_reserve` | 232 drops | Aproximadamente 4294 XRP | - +| Parámetro | Valor máximo (drops) | Valor máximo (XRP) | +| ----------------- | -------------------- | ------------------------------------ | +| `reference_fee` | 264 | (Más XRP del que nunca ha existido.) | +| `account_reserve` | 232 drops | Aproximadamente 4294 XRP | +| `owner_reserve` | 232 drops | Aproximadamente 4294 XRP | ## Ver también - **Conceptos:** - - [Enmiendas](../networks-and-servers/amendments.md) - - [Coste de transacción](../transactions/transaction-cost.md) - - [Reservas](../accounts/reserves.md) - - [Cola de transacción](../transactions/transaction-queue.md) + - [Enmiendas](../networks-and-servers/amendments.md) + - [Coste de transacción](../transactions/transaction-cost.md) + - [Reservas](../accounts/reserves.md) + - [Cola de transacción](../transactions/transaction-queue.md) - **Tutoriales:** - - [Configurar `rippled`](../../infrastructure/configuration/index.md) + - [Configurar `rippled`](../../infrastructure/configuration/index.md) - **Referencias:** - - [Método fee][] - - [Método server_info][] - - [Objeto FeeSettings](../../references/protocol/ledger-data/ledger-entry-types/feesettings.md) - - [Pseudo-transacción SetFee][] + - [Método fee][] + - [Método server_info][] + - [Objeto FeeSettings](../../references/protocol/ledger-data/ledger-entry-types/feesettings.md) + - [Pseudo-transacción SetFee][] {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/@l10n/es-ES/docs/concepts/consensus-protocol/index.md b/@l10n/es-ES/docs/concepts/consensus-protocol/index.md index 567a85925f..044f3e76e5 100644 --- a/@l10n/es-ES/docs/concepts/consensus-protocol/index.md +++ b/@l10n/es-ES/docs/concepts/consensus-protocol/index.md @@ -2,18 +2,18 @@ html: consensus.html parent: concepts.html seo: - description: El consenso es cómo los nuevos bloques de transacciones son confirmados por la blockchain XRP Ledger. + description: El consenso es cómo los nuevos bloques de transacciones son confirmados por la blockchain XRP Ledger. labels: - Blockchain top_nav_grouping: Popular Pages --- + # El protocolo de consenso Este tema explica cómo el XRP Ledger descentralizado confirma nuevas transacciones y nuevas versiones de ledgers, creando una blockchain. El consenso es la propiedad más importante de cualquier sistema de pagos descentralizado. En sistemas de pagos centralizados tradicionales, un administrador autorizado tiene la última palabra en cómo los pagos deben ocurrir. En sistemas descentralizados, por definición, no hay un administrador para hacerlo. En cambio, los sistemas descentralizados como el XRP Ledger definen un conjunto de reglas que todos los participantes siguen, así cada participante puede estar de acuerdo en la misma exacta serie de eventos y sus resultados en cualquier momento. A este conjunto de reglas les llamamos un _protocolo de consenso_. - ## Propiedades del protocolo de consenso El XRP Ledger utiliza el protocolo de consenso de una forma diferente a todos los activos digitales anteriores. Este protocolo, conocido como el Protocolo de Consenso de XRP Ledger, está diseñado para tener las siguientes propiedades importantes: @@ -32,7 +32,6 @@ Este protocolo sigue evolucionando, al igual que nuestro conocimiento de sus lí Los protocolos de consenso son una solución al _problema del doble gasto_: el desafío de prevenir a alguien de gastar con éxito dos veces el mismo dinero digital. La parte más dificil de este problema es poner las transacciones en orden: sin una autoridad central, puede ser dificil resolver disputas sobre qué transacciones van primero cuando dos o más transacciones mutuamente excluyentes se envían al mismo tiempo. Para un análisis del problema del doble gasto, cómo el Protocolo de Consenso XRP Ledger resuelve este problema, las concesiones y limitaciones involucradas, ver [Principios y reglas del consenso](consensus-principles-and-rules.md). - ## Histórico del ledger El XRP Ledger procesa transacciones en bloques llamadados "versiones del ledger", o "ledgers" abreviado. Cada versión del ledger contiene tres partes: @@ -41,27 +40,25 @@ El XRP Ledger procesa transacciones en bloques llamadados "versiones del ledger" - El conjunto de transacciones que han sido aplicadas en el ledger anterior para dar como resultado este. - Metadatos sobre la versión actual del ledger, como el índice del ledger, un [hash criptográfico](https://en.wikipedia.org/wiki/Cryptographic_hash_function) que identifica de forma única su contenido, e información sobre el ledger parental que se usó como base para construir este. -[{% inline-svg file="/docs/img/anatomy-of-a-ledger-simplified.svg" /%}](/docs/img/anatomy-of-a-ledger-simplified.svg "Figura 1: Anatomía de una versión de un ledger, que incluye transacciones, estado, y metadatos") +[{% inline-svg file="/docs/img/anatomy-of-a-ledger-simplified.svg" /%}](/docs/img/anatomy-of-a-ledger-simplified.svg 'Figura 1: Anatomía de una versión de un ledger, que incluye transacciones, estado, y metadatos') Cada versión del ledger está numerado por un _ledger index_ o índice ledger y se basa en una versión anterior del ledger cuyo índice es uno menos, y se remonta hasta el punto de partida llamado el _ledger génesis_ con un índice ledger 1.[¹](#footnote-1) Como Bitcoin y otras tecnologías blockchain, esto forma el histórico público de todas las transacciones y sus resultados. A diferencia de otras tecnologías blockchain, cada nuevo "bloque" en el XRP Ledger contiene la totalidad del estado actual, por lo que no tienes que recopilar toda el histórico completo para conocer qué esta pasando ahora.[²](#footnote-2) El objetivo principal del Protocolo de Consenso del XRP Ledger es acordar un conjunto de transacciones para añadir la nueva siguiente versión del ledger, aplicarlos en un orden bien definido, y después confirmar con todo el mundo para tener los mismos resultados. Cuando esto ocurre satisfactoriamente, una versión del ledger es considerado _validado_, y definitivo. A partir de aquí, el proceso continua construyendo la siguiente versión del ledger. - ## Validación basada en la confianza El principio básico detrás del mecanismo de consenso del XRP Ledger es que un poco de confianza ayuda mucho. Cada participante en la red elige un conjunto de _validadores_, servidores [configurados específicamente para participar activamente en el consenso](../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md), gestionados por diferentes equipos que se espera que se comporten honestamente la mayor parte del tiempo según el protocolo. Aún más importante, el conjunto de validadores elegidos no deberían confabular entre sí para infringir las reglas de la misma manera. Esta lista se llama _Lísta Única de Nodos_, o UNL. A medida que la red avanza, cada servidor escucha a sus validadores de confianza[³](#footnote-3); siempre y cuando un porcentaje lo suficientemente grande de ellos esté de acuerdo en que un conjunto de transacciones debería ocurrir y que un ledger dado es el resultado, el servidor declara un consenso. Si no están de acuerdo, los validadores modifican sus propuestas para que coincidan más con las de otros validadores en los que confían, repitiendo el proceso en varias rondas hasta alcanzar un consenso. -[{% inline-svg file="/docs/img/consensus-rounds.svg" /%}](/docs/img/consensus-rounds.svg "Figura 2: Rondas de consenso. Los validadores revisan sus propuestas para coincidir con otros validadores en los que confían") +[{% inline-svg file="/docs/img/consensus-rounds.svg" /%}](/docs/img/consensus-rounds.svg 'Figura 2: Rondas de consenso. Los validadores revisan sus propuestas para coincidir con otros validadores en los que confían') -Esta bien si una pequeña porción de los validadores no funciona correctamente todo el tiempo. Siempre que menos del 20% de los validadores de confianza fallen, el consenso puede continuar sin impedimentos; y confirman una transacción inválida requeriría que más del 80% de los validadodres de confianza se confabulasen. Si más del 20% o menos del 80% de los validadores confiables fallan, la red para de progresar. +Esta bien si una pequeña porción de los validadores no funciona correctamente todo el tiempo. Siempre que menos del 20% de los validadores de confianza fallen, el consenso puede continuar sin impedimentos; y confirman una transacción inválida requeriría que más del 80% de los validadodres de confianza se confabulasen. Si más del 20% o menos del 80% de los validadores confiables fallan, la red para de progresar. Para una exploración de cómo el Protocolo de Consenso del XRP Ledger responde a varios desafíos, ataques, y casos de fallo, ver [Protecciones del Consenso contra Ataques y Modos de Fallo](consensus-protections.md). - ----- +--- ## Pies de página diff --git a/@l10n/es-ES/docs/concepts/consensus-protocol/invariant-checking.md b/@l10n/es-ES/docs/concepts/consensus-protocol/invariant-checking.md index 774991aade..1ca9de2388 100644 --- a/@l10n/es-ES/docs/concepts/consensus-protocol/invariant-checking.md +++ b/@l10n/es-ES/docs/concepts/consensus-protocol/invariant-checking.md @@ -2,11 +2,12 @@ html: invariant-checking.html parent: consensus.html seo: - description: Entender qué es la verificación invariantes, por qué existe, cómo funciona, y qué comprobaciones de invariantes están activas. + description: Entender qué es la verificación invariantes, por qué existe, cómo funciona, y qué comprobaciones de invariantes están activas. labels: - Blockchain - Seguridad --- + # Comprobación de invariantes La comprobación de invariantes es una característica de seguridad del XRP Ledger. Consiste en un conjunto de comprobaciones, separadas del procesamiento normal de transacciones, que garantiza que ciertas _invariantes_ se mantienen ciertas en todas las transacciones. @@ -15,7 +16,6 @@ Como muchas características de seguridad, todos esperamos que la comprobación Las invariantes no deberían activarse, pero aseguran la integridad del XRP Ledger contra errores aún por descubrir o incluso creados. - ## Por qué existe - El código fuente del XRP Ledger es complejo y extenso; hay un potencial alto de que el código se ejecute incorrectamente. @@ -25,15 +25,12 @@ Específicamente, la ejecución de transacciones incorrectas podría crear datos El procesamiento de transacciones incorrectas socavaría el valor de confianza en el XRP Ledger. Las comprobación de invariantes proporciona valor a todo el XRP Ledger porque agrega la característica de confiabilidad. - - ## Cómo funciona El comprobador de invariantes es una segunda capa de código que se ejecuta automáticamente en tiempo real después de cada transacción. Antes de que los resultados de la transacción se confirmen en el ledger, el comprobador de invariantes examina esos cambios en busca de corrección. Si los resultados de la transacción rompieran una de las reglas estrictas del XRP Ledger, el comprobador de invariantes rechazará la transacción. Las transacciones que son rechazadas de esta manera tienen el código de resultado `tecINVARIANT_FAILED` y se incluyen en el ledger sin efectos. Para incluir la transacción en el ledger con un código de clase `tec`, es necesario realizar algún procesamiento mínimo. Si este procesamiento mínimo aún rompe un invariante, la transacción falla con el código `tefINVARIANT_FAILED` en su lugar, y no se incluye en el ledger en absoluto. - ## Invariantes activas El XRP Ledger comprueba todas las siguientes invariantes en cada transación: @@ -74,99 +71,89 @@ El XRP Ledger comprueba todas las siguientes invariantes en cada transación: - [Nueva Account Root válida](#nueva-account-root-válida) - ### Comprobación de coste de transacción - **Condicion(es) invariantes:** - - La cantidad de [coste de transacción](../transactions/transaction-cost.md) nunca debe ser negativa, ni tampoco más grande que la especificada en el coste de la transacción. - + - La cantidad de [coste de transacción](../transactions/transaction-cost.md) nunca debe ser negativa, ni tampoco más grande que la especificada en el coste de la transacción. ### XRP no creado - **Condicion(es) invariantes:** - - Una transacción no debe crear XRP y solo debería destruir el XRP del [coste de transacción](../transactions/transaction-cost.md). - + - Una transacción no debe crear XRP y solo debería destruir el XRP del [coste de transacción](../transactions/transaction-cost.md). ### Account Roots no eliminadas - **Condicion(es) invariantes:** - - Una [cuenta](../accounts/index.md) no puede ser eliminada del ledger excepto por una [transacción AccountDelete][]. - - Una transacción AccountDelete exitosa siempre borra exactamente 1 cuenta. - + - Una [cuenta](../accounts/index.md) no puede ser eliminada del ledger excepto por una [transacción AccountDelete][]. + - Una transacción AccountDelete exitosa siempre borra exactamente 1 cuenta. ### Comprobaciones de balance XRP - **Condicion(es) invariantes:** - - El balance de XRP de una cuenta debe ser de tipo XRP, y no puede ser menor a 0 o más de 100 mil millones XRP exactamente. - + - El balance de XRP de una cuenta debe ser de tipo XRP, y no puede ser menor a 0 o más de 100 mil millones XRP exactamente. ### Coincidencia de tipos de entrada de ledger - **Condicion(es) invariantes:** - - Las entradas de los ledgers modificados deberían coincidir en tipo y las entradas añadidas deben ser de un [tipo válido](../../references/protocol/ledger-data/ledger-entry-types/index.md). - + - Las entradas de los ledgers modificados deberían coincidir en tipo y las entradas añadidas deben ser de un [tipo válido](../../references/protocol/ledger-data/ledger-entry-types/index.md). ### No XRP Trust Lines - **Condicion(es) invariantes:** - - [Trust lines](../tokens/fungible-tokens/index.md) o líneas de confianza utilizando XRP no están permitidas. - + - [Trust lines](../tokens/fungible-tokens/index.md) o líneas de confianza utilizando XRP no están permitidas. ### No malas ofertas - **Condicion(es) invariantes:** - - Las [ofertas](../../references/protocol/ledger-data/ledger-entry-types/offer.md) deben ser de cantidades no negativas y no pueden ser de XRP para XRP. - + - Las [ofertas](../../references/protocol/ledger-data/ledger-entry-types/offer.md) deben ser de cantidades no negativas y no pueden ser de XRP para XRP. ### No escrow cero - **Condicion(es) invariantes:** - - Una entrada [escrow](../../references/protocol/ledger-data/ledger-entry-types/escrow.md) debe contener más de 0 XRP y menos que 100 mil millones de XRP. - + - Una entrada [escrow](../../references/protocol/ledger-data/ledger-entry-types/escrow.md) debe contener más de 0 XRP y menos que 100 mil millones de XRP. ### Nueva Account Root válida - **Condicion(es) invariantes:** - - Una nueva [account root](../../references/protocol/ledger-data/ledger-entry-types/accountroot.md) debe ser la consecuencia de un pago. - - Una nueva account root debe tener la correcta [secuencia](../../references/protocol/data-types/basic-data-types.md#account-sequence) de inicio. - - Una transacción no debe crear más de una nueva [cuenta](../accounts/index.md). + - Una nueva [account root](../../references/protocol/ledger-data/ledger-entry-types/accountroot.md) debe ser la consecuencia de un pago. + - Una nueva account root debe tener la correcta [secuencia](../../references/protocol/data-types/basic-data-types.md#account-sequence) de inicio. + - Una transacción no debe crear más de una nueva [cuenta](../accounts/index.md). ### ValidNFTokenPage - **Condicion(es) invariantes:** - - El número de NFTs acuñados o quemados solo puede ser cambiado por transacciones `NFTokenMint` o `NFTokenBurn`. - - Una transacción NFTokenMint exitosa debe incrementar el número de NFTs. - - Una transacción NFTokenMint fallida no puede cambiar el número de NFTs acuñados. - - Una transacción NFTokenMint no puede cambiar el número de NFTs quemados. - - Una transacción NFTokenBurn debe incrementar el número de NFTs quemados. - - Una transacción NFTokenBurn no debe cambiar el número de NFTs quemados. - - Una transacción NFTokenBurn no puede cambiar el número de NFTs acuñados. + - El número de NFTs acuñados o quemados solo puede ser cambiado por transacciones `NFTokenMint` o `NFTokenBurn`. + - Una transacción NFTokenMint exitosa debe incrementar el número de NFTs. + - Una transacción NFTokenMint fallida no puede cambiar el número de NFTs acuñados. + - Una transacción NFTokenMint no puede cambiar el número de NFTs quemados. + - Una transacción NFTokenBurn debe incrementar el número de NFTs quemados. + - Una transacción NFTokenBurn no debe cambiar el número de NFTs quemados. + - Una transacción NFTokenBurn no puede cambiar el número de NFTs acuñados. ### NFTokenCountTracking - **Condicion(es) invariantes:** - - La página está correctamente asociada al dueño. - - La página está correctamente ordenada entre el siguiente y el anterior enlace. - - La página contiene un número válido de NFTs. - - Los NFTs en esta página no pertenecen a una página anterior o posterior. - - Los NFTs están correctamente ordenados en la página. - - Cada URI, si está presente, no está vacío. + - La página está correctamente asociada al dueño. + - La página está correctamente ordenada entre el siguiente y el anterior enlace. + - La página contiene un número válido de NFTs. + - Los NFTs en esta página no pertenecen a una página anterior o posterior. + - Los NFTs están correctamente ordenados en la página. + - Cada URI, si está presente, no está vacío. ## Ver también - **Blog:** - - [Protegiendo el ledger: Comprobación de invariantes](https://xrpl.org/blog/2017/invariant-checking.html) + - [Protegiendo el ledger: Comprobación de invariantes](https://xrpl.org/blog/2017/invariant-checking.html) - **Repositorio:** - - [Invariant Check.h](https://github.com/XRPLF/rippled/blob/023f5704d07d09e70091f38a0d4e5df213a3144b/src/ripple/app/tx/impl/InvariantCheck.h) - - [Invariant Check.cpp](https://github.com/XRPLF/rippled/blob/023f5704d07d09e70091f38a0d4e5df213a3144b/src/ripple/app/tx/impl/InvariantCheck.cpp) - - [Parámetros del sistema](https://github.com/XRPLF/rippled/blob/develop/src/ripple/protocol/SystemParameters.h#L43) - - [Cantidad XRP](https://github.com/XRPLF/rippled/blob/develop/src/ripple/basics/XRPAmount.h#L244) - - [Formatos de ledger](https://github.com/XRPLF/rippled/blob/023f5704d07d09e70091f38a0d4e5df213a3144b/src/ripple/protocol/LedgerFormats.h#L36-L94) - + - [Invariant Check.h](https://github.com/XRPLF/rippled/blob/023f5704d07d09e70091f38a0d4e5df213a3144b/src/ripple/app/tx/impl/InvariantCheck.h) + - [Invariant Check.cpp](https://github.com/XRPLF/rippled/blob/023f5704d07d09e70091f38a0d4e5df213a3144b/src/ripple/app/tx/impl/InvariantCheck.cpp) + - [Parámetros del sistema](https://github.com/XRPLF/rippled/blob/develop/src/ripple/protocol/SystemParameters.h#L43) + - [Cantidad XRP](https://github.com/XRPLF/rippled/blob/develop/src/ripple/basics/XRPAmount.h#L244) + - [Formatos de ledger](https://github.com/XRPLF/rippled/blob/023f5704d07d09e70091f38a0d4e5df213a3144b/src/ripple/protocol/LedgerFormats.h#L36-L94) - **Otros:** - - [Trust Lines autorizadas](../tokens/fungible-tokens/authorized-trust-lines.md) - - [Calculando cambios de balance para una transacción](https://xrpl.org/blog/2015/calculating-balance-changes-for-a-transaction.html#calculating-balance-changes-for-a-transaction) + - [Trust Lines autorizadas](../tokens/fungible-tokens/authorized-trust-lines.md) + - [Calculando cambios de balance para una transacción](https://xrpl.org/blog/2015/calculating-balance-changes-for-a-transaction.html#calculating-balance-changes-for-a-transaction) {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/@l10n/es-ES/docs/concepts/consensus-protocol/negative-unl.md b/@l10n/es-ES/docs/concepts/consensus-protocol/negative-unl.md index e079cbb81d..2a37309697 100644 --- a/@l10n/es-ES/docs/concepts/consensus-protocol/negative-unl.md +++ b/@l10n/es-ES/docs/concepts/consensus-protocol/negative-unl.md @@ -2,10 +2,11 @@ html: negative-unl.html parent: consensus.html seo: - description: Comprende cómo la UNL negativa mejora la resiliencia durante interrupciones parciales. + description: Comprende cómo la UNL negativa mejora la resiliencia durante interrupciones parciales. labels: - Blockchain --- + # UNL negativa _Añadida por la [enmienda NegativeUNL](/resources/known-amendments.md#negativeunl)._ @@ -36,14 +37,12 @@ Si más del 20% de los validadores de repente se desconectan todos a la vez, los La UNL negativa no tiene efecto sobre el modo solitario o [stand-alone mode](../networks-and-servers/rippled-server-modes.md) porque el servidor no utiliza el consenso en el modo solitario. - ## Cómo funciona La UNL negativa está estrechamente ligada al [proceso de consenso](index.md) y está diseñada con salvaguardas para mantener la continuidad y confiabilidad de la red en situaciones adversas. Cuando todos los validadores confiables están funcionando normalmente, la UNL negativa no se utiliza y no tiene efecto. Cuando algunos validadores parecen estar desconectados o desincronizados, se aplican las reglas de la UNL negativa. La UNL negativa está diseñada intencionalmente para cambiar a una velocidad lenta, para evitar desacuerdos basados en el tiempo sobre qué la UNL negativa debería aplicarse al proceso de consenso de una versión dada del ledger. - ### Medición de fiabilidad Cada servidor en la red tiene una UNL, la lista de validadores en los que confía para no colisionar. (Por defecto, la UNL exacta de un servidor se configura implícitamente en función de la lista de validadores recomendada que Ripple publica). Cada servidor sigue la _fiabilidad_ de sus validadores de confianza utilizando una métrica única: el porcentaje de los últimos 256 ledgers donde el voto de validación del validador coincidió con la vista de consenso del servidor. En otras palabras: @@ -64,8 +63,6 @@ Cada servidor, incluidos los validadores, calcula de forma independiente las pun **Consejo:** Los validadores siguen su propia fiabilidad, pero no proponen agregarse a la UNL negativa. La medida de fiabilidad de un validador por sí sola no puede tener en cuenta cuán exitosamente se propagan sus votos de validación a través de la red, por lo que es menos confiable que las mediciones de servidores externos. - - ### Modificación de la UNL negativa Una versión del ledger se considera un _flag ledger_ si su índice de ledger o index es divisible entera por 256. La UNL negativa solo se puede modificar en flag ledgers. (Los flag ledgers ocurren una vez cada 15 minutos en la red principal, Mainnet, de XRP Ledger. Pueden estar más separados en redes de prueba (test) que tienen un volumen de transacciones bajo). @@ -74,32 +71,30 @@ En cada flag ledger, se aplican todos los siguientes cambios: 1. Los cambios la UNL negativa que se programaron en el flag ledger anterior entran en vigencia para la siguiente versión del ledger. El proceso de consenso para validar este flag ledger en sí mismo no utiliza el cambio programado. - **Nota:** Esto es uno de los únicos momentos en los que el estado de datos del ledger se modifica sin una [transacción](../transactions/index.md) o [pseudo-transacción](../../references/protocol/transactions/pseudo-transaction-types/index.md). + **Nota:** Esto es uno de los únicos momentos en los que el estado de datos del ledger se modifica sin una [transacción](../transactions/index.md) o [pseudo-transacción](../../references/protocol/transactions/pseudo-transaction-types/index.md). 2. Si la UNL negativa no está llena, cada servidor propone añadir **hasta 1** validador a la UNL negativa entre sus validadores confiables con una fiabilidad inferior al 50%. 3. Si la UNL negativa no está vacía, cada servidor propone eliminar **hasta 1** validador de la UNL negativa. Un servidor puede proponer eliminar un validador de la UNL negativa por dos motivos: - - Califica a ese validador con una fiabilidad > 80%. - - No tiene a ese validador en su UNL. (Si un validador deja de funcionar permanentemente, esta regla garantiza que se elimine de la UNL negativa en el ledger después de que se haya eliminado de las UNL configuradas de los servidores). + - Califica a ese validador con una fiabilidad > 80%. + - No tiene a ese validador en su UNL. (Si un validador deja de funcionar permanentemente, esta regla garantiza que se elimine de la UNL negativa en el ledger después de que se haya eliminado de las UNL configuradas de los servidores). 4. Si un cambio propuesto a la UNL negativa logra un consenso, el cambio se programa para entrar en vigencia en el siguiente flag ledger. Se puede programar hasta una adición y una eliminación de esta manera. Las propuestas para agregar y eliminar validadores de la UNL negativa toman la forma de [pseudo-transacciones de UNLModify][]. El proceso de consenso determina si cada pseudo-transacción logra un consenso o se descarta, de la misma manera que otras [pseudo-transacciones](../../references/protocol/transactions/pseudo-transaction-types/index.md). En otras palabras, para que un validador en particular se agregue o elimine a la UNL negativa, se debe lograr un consenso de servidores sobre el mismo cambio. Los cambios programados y efectivos de la UNL negativa se rastrean en el [objeto NegativeUNL](../../references/protocol/ledger-data/ledger-entry-types/negativeunl.md) en los datos de estado del ledger. - ### Límites de la UNL negativa Para prevenir que la red se fragmente en dos o más subredes, la UNL negativa no puede reducir el requisito de cuórum a menos del 60% de las entradas de UNL _totales_. Para hacer cumplir esto, un servidor considera que la UNL negativa está "llena" si el número de validadores en la UNL negativa es del 25% (redondeado hacia abajo) del número de validadores en la UNL configurada del servidor. (El 25% se basa en el cálculo de que si se eliminan el 25% de los validadores, un consenso del 80% del 75% restante equivale al 60% del número original). Si un servidor considera que la UNL negativa está llena, no propondrá nuevas adiciones a la UNL negativa; pero, como siempre, el resultado final depende de lo que haga un consenso de validadores de confianza. - ### Elección de múltiples validadores candidatos Es posible que múltiples validadores sean candidatos para ser agregados a la UNL negativa, según el umbral de fiabilidad. Dado que como máximo se puede agregar un validador a la UNL negativa a la vez, los servidores deben elegir qué validador proponer agregar. Si hay múltiples candidatos, el servidor elige cuál proponer con el siguiente mecanismo: 1. Comienza con el hash del ledger de la versión anterior. -0. Toma la clave pública de cada validador candidato. -0. Cacula el valor de exclusión-o (XOR) del validador candidato y el hash del ledger padre. -0. Propón el validador con el resultado numéricamente más bajo de la operación XOR. +2. Toma la clave pública de cada validador candidato. +3. Cacula el valor de exclusión-o (XOR) del validador candidato y el hash del ledger padre. +4. Propón el validador con el resultado numéricamente más bajo de la operación XOR. Si hay múltiples candidatos para ser eliminados de la UNL negativa en un flag ledger dado, los servidores utilizan el mismo mecanismo para elegir entre ellos. @@ -109,7 +104,6 @@ Este mecanismo tiene varias propiedades útiles: - La mayoría de los servidores eligen el mismo candidato incluso si calculan puntuaciones ligeramente diferentes para sus validadores de confianza. Esto se mantiene incluso si esos servidores discrepan sobre qué validador es _menos_ o _más_ confiable. Esto incluso se mantiene en muchos casos en los que los servidores discrepan sobre si algunos validadores están por encima o por debajo de los umbrales de fiabilidad. Por lo tanto, es probable que la red llegue a un consenso sobre qué validador agregar o eliminar. - No siempre da los mismos resultados en cada versión del ledger. Si un cambio propuesto a la UNL negativa no logra un consenso, la red no queda atrapada con algunos servidores intentando y fallando en agregar o eliminar ese validador cada vez. La red puede intentar agregar o eliminar un candidato diferente de la UNL negativa en un flag ledger posterior. - ### Filtrado de validaciones Durante [el paso de validación del proceso de consenso](consensus-structure.md#validation), se desactivan los validadores en la UNL negativa del ledger padre. Cada servidor calcula una "UNL efectiva" que consiste en su UNL configurada con los validadores desactivados eliminados, y recalcula su cuórum. (El cuórum siempre es al menos el 80% de la UNL efectiva y al menos el 60% de la UNL configurada). Si un validador desactivado envía votos de validación, los servidores siguen esos votos para fines de cálculo de la medida de fiabilidad del validador desactivado, pero no utilizan esos votos para determinar si una versión del ledger ha alcanzado un consenso. @@ -124,55 +118,53 @@ El siguiente ejemplo demuestra cómo afecta la UNL negativa al proceso de consen 1. Supón que la UNL de tu servidor consta de 38 validadores de confianza, por lo que un cuórum del 80% es al menos 31 de 38 validadores. -[{% inline-svg file="/docs/img/negative-unl-01.svg" /%}](/docs/img/negative-unl-01.svg "Diagrama: Caso normal: UNL negativa sin utilizar, el cuorum es 80% de los validadores configurados.") +[{% inline-svg file="/docs/img/negative-unl-01.svg" /%}](/docs/img/negative-unl-01.svg 'Diagrama: Caso normal: UNL negativa sin utilizar, el cuorum es 80% de los validadores configurados.') 2. Imagina que 2 de esos validadores, llamados MissingA y UnsteadyB, parecen haberse desconectado. (Ambos tienen puntuaciones de fiabilidad < 50%.) Durante el proceso de consenso para el ledger _N_, muchos de los validadores restantes proponen agregar a UnsteadyB en la UNL negativa. La moción pasa mediante un cuórum de al menos 31 de los validadores restantes, y el ledger _N_ se valida con UnsteadyB programado para ser desactivado. -[{% inline-svg file="/docs/img/negative-unl-02.svg" /%}](/docs/img/negative-unl-02.svg "Diagrama: UnsteadyB está programado para desactivarse.") - +[{% inline-svg file="/docs/img/negative-unl-02.svg" /%}](/docs/img/negative-unl-02.svg 'Diagrama: UnsteadyB está programado para desactivarse.') 3. Para ledgers desde _N+1_ hasta _N+256_, el proceso de consenso continua sin cambios. 4. En el siguiente flag ledger, ledger _N+256_, UnsteadyB se mueve automáticamente de "programado" a la lista "desconectados" en el ledger. Además, dado que MissingA está todavía offline, un consenso de validadores programa a MissingA para ser desactivado en el siguiente flag ledger. -[{% inline-svg file="/docs/img/negative-unl-04.svg" /%}](/docs/img/negative-unl-04.svg "Diagrama: UnsteadyB se desactiva y MissingA es programado para ser desactivado, también.") +[{% inline-svg file="/docs/img/negative-unl-04.svg" /%}](/docs/img/negative-unl-04.svg 'Diagrama: UnsteadyB se desactiva y MissingA es programado para ser desactivado, también.') 5. Para los ledgers _N+257_ a _N+512_, el cuorum es ahora 30 de 37 validadores. 6. UnsteadyB vuelve a estar online en el ledger _N+270_. Envía votos de validación que están de acuerdo con el resto de la red de los ledgers _N+270_ a _N+511_, dándole una puntuación de confiabilidad de > 80%. -[{% inline-svg file="/docs/img/negative-unl-06.svg" /%}](/docs/img/negative-unl-06.svg "Diagrama: UnsteadyB vuelve a estar online, pero sigue desactivado.") +[{% inline-svg file="/docs/img/negative-unl-06.svg" /%}](/docs/img/negative-unl-06.svg 'Diagrama: UnsteadyB vuelve a estar online, pero sigue desactivado.') 7. En el siguiente flag ledger, _N+256_, MissingA se mueve automáticamente a la lista de desactivados, como estaba programado. Mientras tanto, un consenso de validadores programa que UnsteadyB sea eliminado de la UNL negativa, debido a su mejora en la puntuación de confianza. -[{% inline-svg file="/docs/img/negative-unl-07.svg" /%}](/docs/img/negative-unl-07.svg "Diagrama: MissingA está desactivado y UnsteadyB está programado para ser reactivado.") +[{% inline-svg file="/docs/img/negative-unl-07.svg" /%}](/docs/img/negative-unl-07.svg 'Diagrama: MissingA está desactivado y UnsteadyB está programado para ser reactivado.') 8. Para los ledgers _N+513_ a _N+768_, el cuorum es 29 de 36 validadores. UnsteadyB continua enviando validaciones de manera estable mientras que MissingA continua offline. 9. En el flag ledger _N+768_, UnsteadyB es automáticamente eliminado de la lista de desactivados, como estaba programado. -[{% inline-svg file="/docs/img/negative-unl-09.svg" /%}](/docs/img/negative-unl-09.svg "Diagrama: UnsteadyB es eliminado de la lista de desactivados.") +[{% inline-svg file="/docs/img/negative-unl-09.svg" /%}](/docs/img/negative-unl-09.svg 'Diagrama: UnsteadyB es eliminado de la lista de desactivados.') 10. Eventualmente, tú decides que MissingA es probable que no vuelva, así que lo eliminas de tu UNL. Tu servidor empieza a proponer eliminando a MissingA de la UNL negativa en cada flag ledger posterior. -[{% inline-svg file="/docs/img/negative-unl-10.svg" /%}](/docs/img/negative-unl-10.svg "Diagrama: Después de eliminar a MissingA de tu UNL, se propone eliminarlo de la UNL negativa también.") +[{% inline-svg file="/docs/img/negative-unl-10.svg" /%}](/docs/img/negative-unl-10.svg 'Diagrama: Después de eliminar a MissingA de tu UNL, se propone eliminarlo de la UNL negativa también.') 11. A medida que los operadores de validadores eliminar a MissingA de sus UNLs, sus validadores también votan para eliminar MissingA de la UNL negativa. Cuando suficientes validadores lo han hecho, la propuesta de eliminar a MissingA consigue un consenso, y MissingA está programado para ser eliminado de la UNL negativa. -[{% inline-svg file="/docs/img/negative-unl-11.svg" /%}](/docs/img/negative-unl-11.svg "Diagrama: MissingA es eliminado de la UNL negativa.") - +[{% inline-svg file="/docs/img/negative-unl-11.svg" /%}](/docs/img/negative-unl-11.svg 'Diagrama: MissingA es eliminado de la UNL negativa.') ## Ver también - **Conceptos:** - - [Protocolo de consenso](index.md) + - [Protocolo de consenso](index.md) - **Tutoriales:** - - [Conecta tu `rippled` a la red paralela](../../infrastructure/configuration/connect-your-rippled-to-the-xrp-test-net.md) - - [Ejecuta `rippled` como validador](../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md) + - [Conecta tu `rippled` a la red paralela](../../infrastructure/configuration/connect-your-rippled-to-the-xrp-test-net.md) + - [Ejecuta `rippled` como validador](../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md) - **Referencias:** - - [Objeto NegativeUNL](../../references/protocol/ledger-data/ledger-entry-types/negativeunl.md) - - [Pseudo-transacción UNLModify][] - - [método ledger_entry][] - - [método consensus_info][] + - [Objeto NegativeUNL](../../references/protocol/ledger-data/ledger-entry-types/negativeunl.md) + - [Pseudo-transacción UNLModify][] + - [método ledger_entry][] + - [método consensus_info][] {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/@l10n/es-ES/docs/concepts/ledgers/index.md b/@l10n/es-ES/docs/concepts/ledgers/index.md index dd2c9c5783..53fbe49717 100644 --- a/@l10n/es-ES/docs/concepts/ledgers/index.md +++ b/@l10n/es-ES/docs/concepts/ledgers/index.md @@ -2,16 +2,17 @@ html: ledgers.html parent: concepts.html seo: - description: Los libros contables o ledgers son la estructura de datos que contiene datos en la red compartida de XRP Ledger. Una cadena de ledgers registra el historial de transacciones y cambios de estado. + description: Los libros contables o ledgers son la estructura de datos que contiene datos en la red compartida de XRP Ledger. Una cadena de ledgers registra el historial de transacciones y cambios de estado. labels: - Blockchain - Retención de datos --- + # Ledgers El XRP Ledger es un libro contable global compartido que está abierto para todos. Participantes individuales pueden confiar en la la integridad del ledger sin tener que confiar en una única institución para manejarlo. El protocolo XRP Ledger logra esto mediante la gestión de la base de datos de contabilidad que solo puede ser actualizada de acuerdo a unas reglas específicas. Cada servidor en la reed peer-to-peer guarda una copia completa de la base de datos del ledger o libro contable, y la red distribuye transacciones candidatas, las cuales se incluyen en bloques de acuerdo al [proceso de consenso](../consensus-protocol/index.md). -[{% inline-svg file="/docs/img/ledger-changes.svg" /%}](/docs/img/ledger-changes.svg "Diagrama: Cada ledger es el resultado de aplicar transacciones a la anterior versión del ledger.") +[{% inline-svg file="/docs/img/ledger-changes.svg" /%}](/docs/img/ledger-changes.svg 'Diagrama: Cada ledger es el resultado de aplicar transacciones a la anterior versión del ledger.') El ledger global compartido consiste en una serie de bloques, llamadas versiones del ledger o simplemente _ledgers_. Cada versión del ledger tiene un índice o [Ledger Index][] el cual identifica el orden correcto de los ledgers. Cada ledger cerrado es permanente y también tiene un único valor hash que lo identifica. @@ -19,13 +20,11 @@ En cualquier momento, cada servidor XRP Ledger tiene un ledger _abierto_ en prog Una versión del ledger consta de varias partes: -[{% inline-svg file="/docs/img/anatomy-of-a-ledger-simplified.svg" /%}](/docs/img/anatomy-of-a-ledger-simplified.svg "Diagrama: Un ledger tiene transacciones, un arbol de estado, y una cabecera con la hora de cierre y la información de validación") - -* Una **cabecera** - El índice del ledger o [Ledger Index][], hashes de sus otros contenidos, y otros metadatos. -* Un **arbol de transacciones** - Las [transacciones](../../references/protocol/transactions/index.md) que se aplicaron al ledger anterior para hacer este. -* Un **arbol de estado** - Todos los datos en el ledger, como [entradas del ledger](../../references/protocol/ledger-data/ledger-entry-types/index.md): balances, configuraciones, y demás. - +[{% inline-svg file="/docs/img/anatomy-of-a-ledger-simplified.svg" /%}](/docs/img/anatomy-of-a-ledger-simplified.svg 'Diagrama: Un ledger tiene transacciones, un arbol de estado, y una cabecera con la hora de cierre y la información de validación') +- Una **cabecera** - El índice del ledger o [Ledger Index][], hashes de sus otros contenidos, y otros metadatos. +- Un **arbol de transacciones** - Las [transacciones](../../references/protocol/transactions/index.md) que se aplicaron al ledger anterior para hacer este. +- Un **arbol de estado** - Todos los datos en el ledger, como [entradas del ledger](../../references/protocol/ledger-data/ledger-entry-types/index.md): balances, configuraciones, y demás. ## Ver también diff --git a/@l10n/es-ES/docs/concepts/ledgers/ledger-close-times.md b/@l10n/es-ES/docs/concepts/ledgers/ledger-close-times.md index 265e172f62..c34d5da033 100644 --- a/@l10n/es-ES/docs/concepts/ledgers/ledger-close-times.md +++ b/@l10n/es-ES/docs/concepts/ledgers/ledger-close-times.md @@ -2,10 +2,11 @@ html: ledger-close-times.html parent: ledgers.html seo: - description: Cómo el XRP Ledger calcula el valor de tiempo de cierre para cada versión del ledger. + description: Cómo el XRP Ledger calcula el valor de tiempo de cierre para cada versión del ledger. labels: - Blockchain --- + # Tiempos de cierre del ledger La hora exacta en la que la versión del ledger se ha cerrado se queda guardada en el campo `close_time` de la cabecera del ledger o [ledger header](../../references/protocol/ledger-data/ledger-header.md). Para hacer más facil a la red llegar a un consenso en un tiempo de cierre exacto, este valor es redondeado a un número de segundos basado en el momento de resolución del cierre, actualmente 10 segundos. Si redondear causase a un tiempo de cierre ser igual que (o anterior) a su ledger padre, el ledger hijo tendrá su tiempo de cierre igual al tiempo de cierre del ledger padre más 1. Esto garantiza que los tiempos de cierre de los ledgers validados son estríctamente incrementales. diff --git a/@l10n/es-ES/docs/concepts/ledgers/ledger-structure.md b/@l10n/es-ES/docs/concepts/ledgers/ledger-structure.md index 0a9c4e1452..3c88354873 100644 --- a/@l10n/es-ES/docs/concepts/ledgers/ledger-structure.md +++ b/@l10n/es-ES/docs/concepts/ledgers/ledger-structure.md @@ -2,8 +2,9 @@ html: ledger-structure.html parent: ledgers.html seo: - description: Un vistazo más cercano a los elementos de un bloque de ledger individual. + description: Un vistazo más cercano a los elementos de un bloque de ledger individual. --- + # La estructura del ledger El XRP Ledger es una blockchain, lo que quiere decir que consiste en un histórico de bloques de datos consecutivos. Un bloque en la blockchain XRP Ledger se denomina una _versión del ledger_ o _ledger_ abreviado. @@ -12,12 +13,11 @@ El protocolo de consenso toma la última versión del ledger como punto de parti Cada versión del ledger contiene _datos de estado_, un _conjunto de transacciones_, y una _cabecera_ que contiene metadatos. -[{% inline-svg file="/docs/img/ledger.svg" /%}](/docs/img/ledger.svg "Diagrama: Un ledger está formado por una cabecera, un conjunto de transacciones, y datos de estado.") - +[{% inline-svg file="/docs/img/ledger.svg" /%}](/docs/img/ledger.svg 'Diagrama: Un ledger está formado por una cabecera, un conjunto de transacciones, y datos de estado.') ## Estado de datos -[{% inline-svg file="/docs/img/ledger-state-data.svg" /%}](/docs/img/ledger-state-data.svg "Diagrama: Los datos de estado de un ledger, en forma de varios objetos los cuales a veces están unidos como en un grafo.") +[{% inline-svg file="/docs/img/ledger-state-data.svg" /%}](/docs/img/ledger-state-data.svg 'Diagrama: Los datos de estado de un ledger, en forma de varios objetos los cuales a veces están unidos como en un grafo.') Los _datos de estado_ representan una fotografía de todas las cuentas, balances, configuraciones, y otra información de esta versión del ledger. Cuando un servidor se conecta a la red, una de las primeras cosas que hace es descargar un conjunto completo de los datos de estado actuales para poder procesar nuevas transacciones y responder consultas sobre el estado actual. Como cada servidor de la red tiene una copia completa de los datos del estado, todos los datos son públicos y cada copia es igualmente válida. @@ -25,7 +25,7 @@ Los datos de estado consisten en objetos individuales llamados _entradas de ledg ## Conjunto de transacciones -[{% inline-svg file="/docs/img/ledger-transaction-set.svg" /%}](/docs/img/ledger-transaction-set.svg "Diagrama: Un conjunto de transacciones del ledger, un grupo de transacciones organizado en orden canónico.") +[{% inline-svg file="/docs/img/ledger-transaction-set.svg" /%}](/docs/img/ledger-transaction-set.svg 'Diagrama: Un conjunto de transacciones del ledger, un grupo de transacciones organizado en orden canónico.') Cada cambio realizado en el ledger es el resultado de una transacción. Cada versión del ledger contiene un _conjunto de transacciones_ que es un grupo de transacciones que se han aplicado recientemente en un orden específico. Si tomas los datos de estado de la versión anterior del ledger y aplicas este conjunto de transacciones del ledger encima de él, obtienes los datos de estado de este ledger como resultado. @@ -34,33 +34,30 @@ Cada transacción en el conjunto del ledger tiene ambas de la siguientes partes: - _Instrucciones de la transaccion_ mostrando lo que el remitente le pidió hacer. - _Metadatos de la transacción_ mostrando exáctamente cómo la transacción debe ser procesada y cómo afecta a los datos de estado del ledger. - ## Cabecera del ledger La _cabecera del ledger_ es un bloque de datos que resume la versión del ledger. Como la portada de un informe, identifica de forma única la versión del ledger, enumera sus contenidos, y muestra la hora en la que se creó, junto con algunas otras notas. La cabecera del ledger contiene la siguiente información: -- [{% inline-svg file="/docs/img/ledger-index-icon.svg" /%}](/docs/img/ledger-index-icon.svg "") El _ledger index_, o índice del ledger identifica la posición del ledger en la cadena. Se construye en el ledger con un índice restando uno, hasta llegar hasta el punto de inicio llamado como el _genesis ledger_. Esto forma un histórico público con todas las trnasacciones y resultados. -- [{% inline-svg file="/docs/img/ledger-hash-icon.svg" /%}](/docs/img/ledger-hash-icon.svg "") El _ledger hash_, que identifica de manera única los contenidos del ledger. El hash es calculado de manera que si cambia algún detalle, la versión del ledger cambia, el hash es completamente diferente, lo que lo convierte también en un checksum que muestra que ninguno de los datos en el ledger se ha perdido, modificado, o corrompido. -- [{% inline-svg file="/docs/img/ledger-parent-icon.svg" /%}](/docs/img/ledger-parent-icon.svg "") El _parent ledger hash_ o el hash del ledger padre. Una versión del ledger es definida en gran parte por la diferencia con el _parent ledger_ que viene antes de el, por lo que la cabecera también contiene el hash único para su ledger padre. -- [{% inline-svg file="/docs/img/ledger-timestamp-icon.svg" /%}](/docs/img/ledger-timestamp-icon.svg "") El _close time_ u hora de cierre, la timestamp que marca cuando se finalizaron los contenidos del ledger. Este número se redondea por un número de segundos, generalmente 10. -- [{% inline-svg file="/docs/img/ledger-state-data-hash-icon.svg" /%}](/docs/img/ledger-state-data-hash-icon.svg "") Un _hash de datos del estado_ el cual actua de checksum para los datos del estado. -- [{% inline-svg file="/docs/img/ledger-tx-set-hash-icon.svg" /%}](/docs/img/ledger-tx-set-hash-icon.svg "") Un _hash del conjunto de transacciones_ el cual actua como checksum de los datos del conjuntos de transacciones. -- [{% inline-svg file="/docs/img/ledger-notes-icon.svg" /%}](/docs/img/ledger-notes-icon.svg "") Algunas otras notas como la cantidad total de XRP en existencia y la cantidad que se redondeó la hora de cierre. +- [{% inline-svg file="/docs/img/ledger-index-icon.svg" /%}](/docs/img/ledger-index-icon.svg) El _ledger index_, o índice del ledger identifica la posición del ledger en la cadena. Se construye en el ledger con un índice restando uno, hasta llegar hasta el punto de inicio llamado como el _genesis ledger_. Esto forma un histórico público con todas las trnasacciones y resultados. +- [{% inline-svg file="/docs/img/ledger-hash-icon.svg" /%}](/docs/img/ledger-hash-icon.svg) El _ledger hash_, que identifica de manera única los contenidos del ledger. El hash es calculado de manera que si cambia algún detalle, la versión del ledger cambia, el hash es completamente diferente, lo que lo convierte también en un checksum que muestra que ninguno de los datos en el ledger se ha perdido, modificado, o corrompido. +- [{% inline-svg file="/docs/img/ledger-parent-icon.svg" /%}](/docs/img/ledger-parent-icon.svg) El _parent ledger hash_ o el hash del ledger padre. Una versión del ledger es definida en gran parte por la diferencia con el _parent ledger_ que viene antes de el, por lo que la cabecera también contiene el hash único para su ledger padre. +- [{% inline-svg file="/docs/img/ledger-timestamp-icon.svg" /%}](/docs/img/ledger-timestamp-icon.svg) El _close time_ u hora de cierre, la timestamp que marca cuando se finalizaron los contenidos del ledger. Este número se redondea por un número de segundos, generalmente 10. +- [{% inline-svg file="/docs/img/ledger-state-data-hash-icon.svg" /%}](/docs/img/ledger-state-data-hash-icon.svg) Un _hash de datos del estado_ el cual actua de checksum para los datos del estado. +- [{% inline-svg file="/docs/img/ledger-tx-set-hash-icon.svg" /%}](/docs/img/ledger-tx-set-hash-icon.svg) Un _hash del conjunto de transacciones_ el cual actua como checksum de los datos del conjuntos de transacciones. +- [{% inline-svg file="/docs/img/ledger-notes-icon.svg" /%}](/docs/img/ledger-notes-icon.svg) Algunas otras notas como la cantidad total de XRP en existencia y la cantidad que se redondeó la hora de cierre. Un conjunto de transacciones y los datos de estado son ilimitados en espacio, pero la cabecera del ledger siempre es de un tamaño fijo. Para los datos exactos y el formato binario de una cabecera del ledger, ver [Cabecera del leder](../../references/protocol/ledger-data/ledger-header.md). - ## Estado de validación -[{% inline-svg file="/docs/img/ledger-validated-mark.svg" /%}](/docs/img/ledger-validated-mark.svg "Diagrama: Un estado de validación de un ledger, el cual es añadido encima del ledger y no es parte del ledger en sí.") +[{% inline-svg file="/docs/img/ledger-validated-mark.svg" /%}](/docs/img/ledger-validated-mark.svg 'Diagrama: Un estado de validación de un ledger, el cual es añadido encima del ledger y no es parte del ledger en sí.') Cuando un consenso de la Lista de Nodos Únicos de un servidor está de acuerdo en los contenidos de una versión del ledger, esa versión del ledger es marcada como validada e inmutable. Los contenidos del ledger solo pueden cambiar mediante transacciones posteriores que creen una nueva versión del ledger, continuando la cadena. Cuando una versión del ledger es creada por primera vez, no está todavía validada. Debido a las diferencias en cuanto llegan las transacciones a diferentes servidores, la red puede construir y proponer múltiples versiones diferentes del ledger para ser el siguiente en la cadena. El [protocolo de consenso](../consensus-protocol/index.md) decide cual de ellas se valida. (Las transacciones candidatas que no estén en la versión del ledger validado pueden generalmente incluirse en el conjunto de transacciones la siguiente versión del ledger en su lugar.) - ## ¿Índice del ledger o Hash del ledger? Hay dos formas diferentes de identificar la versión del ledger: Su _ledger index_ o índice del ledger y su _ledger hash_ o hash del ledger. Estos dos campos identifican un ledger, pero tienen propósitos distintos. El índice del ledger te informa de la posición del ledger en la cadena, y el hash del ledger refleja los contenidos del ledger. diff --git a/@l10n/es-ES/docs/concepts/ledgers/open-closed-validated-ledgers.md b/@l10n/es-ES/docs/concepts/ledgers/open-closed-validated-ledgers.md index a33105b045..972914b897 100644 --- a/@l10n/es-ES/docs/concepts/ledgers/open-closed-validated-ledgers.md +++ b/@l10n/es-ES/docs/concepts/ledgers/open-closed-validated-ledgers.md @@ -2,23 +2,24 @@ html: open-closed-validated-ledgers.html parent: ledgers.html seo: - description: Los objetos del ledger tienen uno de los tres estados — abierto, cerrado, o validado. + description: Los objetos del ledger tienen uno de los tres estados — abierto, cerrado, o validado. labels: - Blockchain --- + # Ledgers abiertos, cerrados, y validados El servidor `rippled` hace una distinción entre versiones de ledgers que están _abiertas_, _cerradas_, y _validadas_. Un servidor tiene un ledger abierto, cualquier número de ledgers cerrados pero no validados, y un historial inmutable de ledgers validados. La siguiente tabla resume las diferencias: -| Tipo de ledger: | Abierto | Cerrado | Validado | -|:---------------------------------|:----------------------------|:-------------------------------------------|:--| -| **Propósito:** | Espacio de trabajo temporal | Próximo estado propuesto | Estado previo confirmado | -| **Número usado:** | 1 | Cualquier número, normalmente 0 o 1 | Uno por ledger index, crece con el tiempo | -| **¿Pueden los contenidos cambiar?** | Sí | No, pero el ledger completo se podría reemplazar | Nunca | -| **Transacciones se aplican en:** | El orden que son recibidas | Orden canónico | Orden canónino | +| Tipo de ledger: | Abierto | Cerrado | Validado | +| :---------------------------------- | :-------------------------- | :----------------------------------------------- | :---------------------------------------- | +| **Propósito:** | Espacio de trabajo temporal | Próximo estado propuesto | Estado previo confirmado | +| **Número usado:** | 1 | Cualquier número, normalmente 0 o 1 | Uno por ledger index, crece con el tiempo | +| **¿Pueden los contenidos cambiar?** | Sí | No, pero el ledger completo se podría reemplazar | Nunca | +| **Transacciones se aplican en:** | El orden que son recibidas | Orden canónico | Orden canónino | No intuitivamente, el XRP Ledger nunca "cierra" un ledger abierto para convertirlo en un ledger cerrado. En cambio, el servidor descarta el ledger abierto, crea un nuevo ledger cerrado aplicando transacciones encima de los ledgers cerrados previos, entonces crea un nuevo ledger abierto utilizando el último ledger cerrado como base. Esto es una consecuencia de [cómo el consenso resuelve el problema del doble gasto](../consensus-protocol/consensus-principles-and-rules.md#simplificando-el-problema). Para un ledger abierto, los servidores aplican transacciones en el orden en el que esas transacciones aparecen, pero diferentes servidores puede que vean transacciones en diferentes órdenes. Como no hay un vigilante del tiempo para decidir qué transacción fue actualmente la primera, los servidores pueden no estar de acuerdo en el orden exacto de las transacciones que fueron enviadas casi al mismo tiempo. Por lo tanto, el proceso para calcular una versión de ledger cerrado que es elegible para [validación](../consensus-protocol/consensus-structure.md#validación) es diferente que el proceso de construir un ledger abierto con transacciones propuestas en su orden de llegada. Para crear un ledger "cerrado", cada servidor XRP Ledger comienza con un cojunto de transacciones y una versión anterior de ledger, o "padre". El servidores pone las transacciones en orden canónico, después las aplica al anterior ledger en ese orden. El orden canónico está diseñado para ser determinístico y eficiente, pero dificil de manipular, para incrementar la dificultad de adelantarse (o front-running) a las Ofertas en el [exchange descentralizado](../tokens/decentralized-exchange/index.md). -Por lo tanto, un ledger abierto es solo utilizado como un espacio de trabajo temporal, lo cual es una de las principales razones por las cuales [los resultados tentativos pueden variar de los resultados finales](../transactions/finality-of-results/index.md) en las transacciones. +Por lo tanto, un ledger abierto es solo utilizado como un espacio de trabajo temporal, lo cual es una de las principales razones por las cuales [los resultados tentativos pueden variar de los resultados finales](../transactions/finality-of-results/index.md) en las transacciones. diff --git a/@l10n/es-ES/docs/concepts/networks-and-servers/amendments.md b/@l10n/es-ES/docs/concepts/networks-and-servers/amendments.md index a9c7663edc..1585a95759 100644 --- a/@l10n/es-ES/docs/concepts/networks-and-servers/amendments.md +++ b/@l10n/es-ES/docs/concepts/networks-and-servers/amendments.md @@ -2,13 +2,14 @@ html: amendments.html parent: networks-and-servers.html seo: - description: Las enmiendas representan nuevas funcionalidades u otros cambios para el procesamiento de transacciones. Los validadores se coordinan a través del consenso para aplicar estas mejoras al XRP Ledger de manera ordenada. + description: Las enmiendas representan nuevas funcionalidades u otros cambios para el procesamiento de transacciones. Los validadores se coordinan a través del consenso para aplicar estas mejoras al XRP Ledger de manera ordenada. labels: - Blockchain --- + # Enmiendas -Las enmiendas representan nuevas funcionalidades u otros cambios en el procesamiento de transacciones. +Las enmiendas representan nuevas funcionalidades u otros cambios en el procesamiento de transacciones. El sistema de enmiendas utiliza el proceso de consenso para aprobar cualquier cambio que afecte el procesamiento de transacciones en el XRP Ledger. Los cambios en el proceso de transacción completamente funcionales se introducen como enmiendas; luego, los validadores votan sobre estos cambios. Si una enmienda recibe más del 80% de apoyo durante dos semanas, la enmienda se aprueba y el cambio se aplica permanentemente a todas las versiones de ledgers subsiguientes. Deshabilitar una enmienda aprobada requiere una nueva enmienda para hacerlo. @@ -29,15 +30,14 @@ Cada 256º ledger se llama **flag** ledger. El flag ledger no tiene contenidos e 1. **Flag Ledger -1:** Cuando los validadores `rippled` envían mensajes de validación, también envían sus votos sobre enmiendas. 2. **Flag Ledger:** Los servidores interpretan los votos de los validadores confiables. 3. **Flag Ledger +1:** Los servidores insertan la pseudo transacción `EnableAmendment` y marcan dependiendo de lo que piensan que ha pasado: - * El flag (o marca) `tfGotMajority` significa que la enmienda tiene más del 80% del apoyo. - * El flag (o marca) `tfLostMajority` significa que el apoyo de la enmienda ha descendido al 80% o menos. - * Que no haya flag (o marca) significa que la enmienda está activada. + - El flag (o marca) `tfGotMajority` significa que la enmienda tiene más del 80% del apoyo. + - El flag (o marca) `tfLostMajority` significa que el apoyo de la enmienda ha descendido al 80% o menos. + - Que no haya flag (o marca) significa que la enmienda está activada. - **Nota:** Es posible para una enmienda perder el 80% del apoyo en el mismo ledger en el que alcanza el periodo de dos semanas para ser activada. En esos casos, una pseudo-transaccion `EnableAmendment` es añadida en ambos escenarios, pero la enmienda es activada finalmente. + **Nota:** Es posible para una enmienda perder el 80% del apoyo en el mismo ledger en el que alcanza el periodo de dos semanas para ser activada. En esos casos, una pseudo-transaccion `EnableAmendment` es añadida en ambos escenarios, pero la enmienda es activada finalmente. 4. **Flag Ledger +2:** Enmiendas activadas aplican a transacciones en este ledger en adelante. - ## Votación de enmienda Cada versión de `rippled` es compilada con una lista de [enmiendas conocidas](/resources/known-amendments.md) y el código para implementar esas enmiendas. Los operadores de los validadores `rippled` configuran sus servidores para votar en cada enmienda y cambiarlo en cada momento. Si un operador no elige un voto, el servidor por defecto tiene un voto definido en el códido fuente. @@ -48,16 +48,16 @@ Las enmiendas deben mantener dos semanas el apoyo de más del 80% de los validad Las enmiendas que hayan tenido su código fuente removido sin haberse activado on consideradas **vetadas** por la red. - ## Servidores bloqueados por enmienda + El bloqueo por enmienda es una característica de seguridad para proteger la precisión de los datos del XRP Ledger. Cuando una enmienda se activa, los servidores ejecutando versiones anteriores de `rippled` sin el código fuente de la enmienda ya no consiguen entender las reglas de la red. En vez de adivinar y malinterpretar los datos del ledger, estos servidores se convierten en servidores **bloqueados por enmienda** y no pueden: -* Determinar la validez de un ledger. -* Enviar o procesar transacciones. -* Participar en el proceso de consenso. -* Votar sobre futuras enmiendas. +- Determinar la validez de un ledger. +- Enviar o procesar transacciones. +- Participar en el proceso de consenso. +- Votar sobre futuras enmiendas. La configuración de votación de un servidor `rippled` no tiene impacto en convertirse en un servidor bloqueado por enmienda. Un servidor `rippled` siempre sigue las enmiendas activadas por el resto de la red, por lo que los bloqueos solo se basan en tener el código para entender los cambios de reglas. Esto significa que tu también te puedes convertir en alguien bloqueado por enmienda si conectas tu servidor a una red paralela con enmiendas activadas. Por ejemplo, La Devnet de XRP normalmente tiene enmiendas experimentales activadas. Si estás utilizando la última publicación o release en producción, tu servidor no tendrá ese código de esas enmiendas experimentales. @@ -73,16 +73,15 @@ Cuando las enmiendas son activadas, el código fuente de comportamientos previos El [Estándar 11d de XRP Ledger](https://github.com/XRPLF/XRPL-Standards/discussions/19) define un proceso para retirar enmiendas antiguas y código asociado previo a la enmienda. Después de que una enmienda haya sido activada en Mainnet por dos años, puede ser retirado. Retirar una enmienda la convierte en parte del protocolo central incondicionalmente; ya no se sigue ni se trata como una enmienda, y todo el código anterior a la enmienda es eliminado. - ## Ver también - **Conceptos:** - - [Consenso](../consensus-protocol/index.md) + - [Consenso](../consensus-protocol/index.md) - **Tutoriales:** - - [Ejecutar rippled como un validador](../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md) - - [Configurar votación de enmiendas](../../infrastructure/configuration/configure-amendment-voting.md) - - [Contribuir al código del XRP Ledger](/resources/contribute-code/index.md) + - [Ejecutar rippled como un validador](../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md) + - [Configurar votación de enmiendas](../../infrastructure/configuration/configure-amendment-voting.md) + - [Contribuir al código del XRP Ledger](/resources/contribute-code/index.md) - **Referencias:** - - [Enmiendas conocidas](/resources/known-amendments.md) + - [Enmiendas conocidas](/resources/known-amendments.md) {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/@l10n/es-ES/docs/concepts/networks-and-servers/clustering.md b/@l10n/es-ES/docs/concepts/networks-and-servers/clustering.md index 7fa50c6afc..713e959297 100644 --- a/@l10n/es-ES/docs/concepts/networks-and-servers/clustering.md +++ b/@l10n/es-ES/docs/concepts/networks-and-servers/clustering.md @@ -2,10 +2,11 @@ html: clustering.html parent: networks-and-servers.html seo: - description: Ejecuta servidores rippled en un cluster para compartir la carga criptográfica entre ellos. + description: Ejecuta servidores rippled en un cluster para compartir la carga criptográfica entre ellos. labels: - Servidor principal --- + # Clustering Si estás ejecutando varios servidores `rippled` en un único datacenter, puedes configurar esos servidores dentro de un cluster para maximizar la eficiencia. Ejecutar tus servidores `rippled` en un cluster proporciona los siguientes beneficios: @@ -19,11 +20,11 @@ Si estás ejecutando un validador como un [par privado](peer-protocol.md#pares-p ## Ver también - **Tutoriales:** - - [Cluster de servidores `rippled`](../../infrastructure/configuration/peering/cluster-rippled-servers.md) - - [Ejecutar rippled como validador](../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md) + - [Cluster de servidores `rippled`](../../infrastructure/configuration/peering/cluster-rippled-servers.md) + - [Ejecutar rippled como validador](../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md) - **Referencias:** - - [método peers][] - - [método connect][] - - [Peer Crawler](../../references/http-websocket-apis/peer-port-methods/peer-crawler.md) + - [método peers][] + - [método connect][] + - [Peer Crawler](../../references/http-websocket-apis/peer-port-methods/peer-crawler.md) {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/@l10n/es-ES/docs/concepts/networks-and-servers/index.md b/@l10n/es-ES/docs/concepts/networks-and-servers/index.md index d58c5b42f3..b8b0181c8e 100644 --- a/@l10n/es-ES/docs/concepts/networks-and-servers/index.md +++ b/@l10n/es-ES/docs/concepts/networks-and-servers/index.md @@ -2,10 +2,11 @@ html: networks-and-servers.html parent: concepts.html seo: - description: rippled es el servidor peer-to-peer principal que maneja el XRP Ledger. + description: rippled es el servidor peer-to-peer principal que maneja el XRP Ledger. metadata: indexPage: true --- + # Redes y servidores Hay dos tipos principales de software de servidores que alimentan el XRP Ledger: @@ -17,15 +18,15 @@ Cualquiera puede ejecutar instancias de uno o ambos de estos tipos de servidores ## Razones por las que ejecutar tu propio servidor -Para casos de uso más livianos y servidores individuales, puedes depender de [servidores públicos][]. Sin embargo, cuanto más serio sea tu uso del XRP Ledger, más importante será tener tu propia infraestructura. +Para casos de uso más livianos y servidores individuales, puedes depender de [servidores públicos][]. Sin embargo, cuanto más serio sea tu uso del XRP Ledger, más importante será tener tu propia infraestructura. Hay multitud de razones por las que quieres ejecutar tus propios servidores, pero la mayoría de ellas se pueden resumir en: puedes confiar en tu propio servidor, tienes control sobre la carga de trabajo, y no estás a merced de otros que decidan cuando y cómo puedes acceder. Por supuesto, debes tener tener unas buenas prácticas respecto a la seguridad de la red para proteger tu servidor de hackers maliciosos. Necesitas confiar en el servidor que utilizas. Si te conectas a un servidor malicioso, hay muchas maneras en las que se pueda aprovechar de ti o hacerte perder dinero. Por ejemplo: -* Un servidor malicioso podría informar que has sido pagado cuando no se ha hecho el pago. -* Podría selectivamente mostrar u ocultar los caminos (o paths) de pago y las foertas de intercambio de divisas para garantizar su propio beneficio mientras no te ofrece la mejor oferta. -* Si le enviaste la clave secreta de tu dirección, esto podría generar transacciones arbitrarias en tu nombre e incluso transferir o destruir todo el dinero que la dirección posee. +- Un servidor malicioso podría informar que has sido pagado cuando no se ha hecho el pago. +- Podría selectivamente mostrar u ocultar los caminos (o paths) de pago y las foertas de intercambio de divisas para garantizar su propio beneficio mientras no te ofrece la mejor oferta. +- Si le enviaste la clave secreta de tu dirección, esto podría generar transacciones arbitrarias en tu nombre e incluso transferir o destruir todo el dinero que la dirección posee. Adicionalmente, ejecutar tu propio servidor te da [acceso de administrador](../../tutorials/http-websocket-apis/build-apps/get-started.md#admin-access), lo que te permite ejecutar comandos exclusivos de administrador y de carga intensa. Si utilizas un servidor compartido, debes preocuparte por los otros usuarios del mismo servidor compitiendo contra ti por el poder de computación del servidor. Muchos de los comandos en el API WebSocket puede poner mucha presión sobre el servidor, por lo que el servidor tiene la opción de reducir sus respuestas cuando lo necesite. Si compartes un servidor con otros, puede que no siempre consigas los mejores resultados posibles. @@ -37,5 +38,4 @@ Finalmente, si ejecutas un servidor de validación, puedes utilizar un servidor {% raw-partial file="/docs/_snippets/common-links.md" /%} - {% child-pages /%} diff --git a/@l10n/es-ES/docs/concepts/networks-and-servers/ledger-history.md b/@l10n/es-ES/docs/concepts/networks-and-servers/ledger-history.md index 11fd455d6b..e6fc08c9ad 100644 --- a/@l10n/es-ES/docs/concepts/networks-and-servers/ledger-history.md +++ b/@l10n/es-ES/docs/concepts/networks-and-servers/ledger-history.md @@ -2,12 +2,13 @@ html: ledger-history.html parent: networks-and-servers.html seo: - description: Los servidores rippled almacenan una cantidad variable de transacciones e historial del estado localmente. + description: Los servidores rippled almacenan una cantidad variable de transacciones e historial del estado localmente. labels: - Retención de datos - Blockchain - Servidor principal --- + # Histórico del ledger El [proceso de consenso](../consensus-protocol/index.md) crea una cadena de [versiones de ledgers validados](../ledgers/index.md), cada uno derivado del anterior aplicando un conjunto de [transacciones](../transactions/index.md). Cada [servidor `rippled`](index.md) almacena versiones de ledgers y el historial de transacciones locálmente. La cantidad de histórico de transacciones que un servidor almacena depende de cuanto tiempo ese servidor ha estado online y cuanto histórico está configurado para recuperar y mantener. @@ -34,17 +35,16 @@ Rellenar el histórico es uno de las prioridades más bajas del servidor, por lo El XRP Ledger identifica datos (en varios niveles diferentes) mediante un hash único de sus contenidos. Los datos de estado del XRP Ledger contienen un resumen breve del histórico del ledger, en forma de [tipos de objeto LedgerHashes](../../references/protocol/ledger-data/ledger-entry-types/ledgerhashes.md). Los serivodres usan los objetos LedgerHashes para conocer qué versiones del ledger hay que buscar, y confirmar que los datos del ledger que recibe son correctos y completos. - + ### Rellenar + {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.6.0" %}Actualizado en: rippled 1.6.0{% /badge %} La cantidad de histórico que un servidor intenta descargar depende de su configuración. El servidor automáticamente intenta rellenar los huecos descargando el histórico hasta **el ledger más antiguo que está actualmente disponible**. Pues utilizar el campo `[ledger_history]` para hacer al servidor rellenar el histórico más allá de ese punto. Sin embargo, el servidor nunca descarga ledgers que estuviesen programados para su [eliminación](../../infrastructure/configuration/data-retention/online-deletion.md). El campo `[ledger_history]` define el número mínimo de ledgers que se acumulan antes del ledger actual validado. Utiliza el valor especial `full` para descargar el [histórico completo](#full-history) de la red. Si especificas un número de ledgers, debe ser igual o mayor que el campo `online_deletion`; no puedes utilizar `[ledger_history]` para hacer al servidor descargar _menos_ histórico. Para reducir la cantidad de histórico que un servidor almacena, cambia el ajuste [online deletion](../../infrastructure/configuration/data-retention/online-deletion.md). - - ## Histórico completo Algunos servidores en la red XRP Ledger están configurados como servidores "full-history". Estos servidores, los cuales requieren sifnificativamente más espacio de disco que otros servidores de seguimiento, almacenan todo el histórico disponible XRP Ledger y **no usan la opción online deletion**. @@ -58,22 +58,21 @@ Los proveedores de servidores Full History se reservan el derecho de bloquear ac Para instrucciones de cómo configurar un servidor full history, consultar [Configurar Full History](../../infrastructure/configuration/data-retention/configure-full-history.md). - ## Ver también - **Conceptos:** - - [Ledgers](../ledgers/index.md) - - [Consenso](../consensus-protocol/index.md) + - [Ledgers](../ledgers/index.md) + - [Consenso](../consensus-protocol/index.md) - **Tutoriales:** - - [Configurar `rippled`](../../infrastructure/configuration/index.md) - - [Configurar Online Deletion](../../infrastructure/configuration/data-retention/configure-online-deletion.md) - - [Configurar Advisory Deletion](../../infrastructure/configuration/data-retention/configure-advisory-deletion.md) - - [Configurar Full History](../../infrastructure/configuration/data-retention/configure-full-history.md) + - [Configurar `rippled`](../../infrastructure/configuration/index.md) + - [Configurar Online Deletion](../../infrastructure/configuration/data-retention/configure-online-deletion.md) + - [Configurar Advisory Deletion](../../infrastructure/configuration/data-retention/configure-advisory-deletion.md) + - [Configurar Full History](../../infrastructure/configuration/data-retention/configure-full-history.md) - **Referencias:** - - [método ledger][] - - [método server_info][] - - [método ledger_request][] - - [método can_delete][] - - [método ledger_cleaner][] + - [método ledger][] + - [método server_info][] + - [método ledger_request][] + - [método can_delete][] + - [método ledger_cleaner][] {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/@l10n/es-ES/docs/concepts/networks-and-servers/parallel-networks.md b/@l10n/es-ES/docs/concepts/networks-and-servers/parallel-networks.md index fc075939a9..6ad5b2fa33 100644 --- a/@l10n/es-ES/docs/concepts/networks-and-servers/parallel-networks.md +++ b/@l10n/es-ES/docs/concepts/networks-and-servers/parallel-networks.md @@ -2,49 +2,48 @@ html: parallel-networks.html parent: networks-and-servers.html seo: - description: Entender cómo las redes de prueba (test) y cadenas ledger alternativas se relacionan con el XRP Ledger en producción. + description: Entender cómo las redes de prueba (test) y cadenas ledger alternativas se relacionan con el XRP Ledger en producción. labels: - Blockchain --- + # Redes paralelas Existe una red peer-to-peer en producción del XRP Ledger, y todos los negocios que tienen lugar en el XRP Ledger ocurren dentro de la red de producción: la Mainnet. Para ayudar a miembros de la comunidad del XRP Ledger a interactuar con la tecnología sin afectar nada a la Mainnet, hay redes alternativas, o altnets. Aquí hay un desglose de algunas altnets públicas: -| Red | Cadencia de actualización | Descripción | -|:--------|:----------------|:-------------------------------------------------| -| Mainnet | Lanzamientos estables | _El_ [XRP Ledger](/about/), un libro contable criptográfico descentralizado impulsado por una red de servidores peer-to-peer y el hogar de [XRP](../../introduction/what-is-xrp.md). | -| Testnet | Lanzamientos estables | Una red de "universo alternativo" que actua como un campo de pruebas para el software construido en el XRP Ledger, sin impactar a los usuarios del XRP Ledger de producción y sin arriesgar dinero real. El [estado de enmienda](/resources/known-amendments.md) de Testnet está destinado a reflejar de cerca el de la Mainnet, aunque pueden ocurrir ligeras variaciones en el tiempo debido a la naturaleza impredecible de los sistemas descentralizados. | -| Devnet | Lanzamientos Beta | Una vista previa de las próximas atracciones, donde cambios inestables en el software principal de XRP Ledger se pueden probar. Los desarrolladores pueden utilizar esta altnet para interactuar y aprender sobre funcionalidades nuevas planficiadas para el XRP Ledger y enmiendas que no están habilitadas en la Mainnet. | +| Red | Cadencia de actualización | Descripción | +| :------ | :------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| Mainnet | Lanzamientos estables | _El_ [XRP Ledger](/about/), un libro contable criptográfico descentralizado impulsado por una red de servidores peer-to-peer y el hogar de [XRP](../../introduction/what-is-xrp.md). | +| Testnet | Lanzamientos estables | Una red de "universo alternativo" que actua como un campo de pruebas para el software construido en el XRP Ledger, sin impactar a los usuarios del XRP Ledger de producción y sin arriesgar dinero real. El [estado de enmienda](/resources/known-amendments.md) de Testnet está destinado a reflejar de cerca el de la Mainnet, aunque pueden ocurrir ligeras variaciones en el tiempo debido a la naturaleza impredecible de los sistemas descentralizados. | +| Devnet | Lanzamientos Beta | Una vista previa de las próximas atracciones, donde cambios inestables en el software principal de XRP Ledger se pueden probar. Los desarrolladores pueden utilizar esta altnet para interactuar y aprender sobre funcionalidades nuevas planficiadas para el XRP Ledger y enmiendas que no están habilitadas en la Mainnet. | Cada altnet tiene su propia distribución separada de XRP de prueba, que se [regala gratis](/resources/dev-tools/xrp-faucets) a partes interesadas en experimentar con el XRP Ledger y desarrollar aplicaciones e integraciones. El XRP test no tiene valor en el mundo real y se pierde cuando la red se reinicia. **Atención:** A diferencia de la Mainnet del XRP Ledger, las redes de prueba suelen ser _centralizadas_ y no hay garantías sobre la estabilidad y disponibilidad de estas redes. Han sido y siguen siendo utilizadas para probar diversas propiedades de la configuración del servidor, la topología de la red y el rendimiento de la red. - ## Redes paralelas y consenso El factor principal en determinar qué red sigue un servidor es su UNL configurado-la lista de validadores en los que confía para no colisionar. Cada servidor utiliza su UNL configurada para saber qué ledger aceptar como la verdad. Cuando diferentes grupos de consenso de instancias de `rippled` solo confían en otros miembros del mismo grupo, cada grupo continúa como una red paralela. Incluso si equipos maliciosos o malintencionados se conectan a ambas redes, el proceso de consenso evita la confusión siempre y cuando los miembros de cada red no estén configurados para confiar en miembros de otra red en exceso de su configuración de cuórum. Ripple ejecuta los servidores principales en la Testnet y Devnet; también puedes [conectar tu propio servidor `rippled` para estas redes](../../infrastructure/configuration/connect-your-rippled-to-the-xrp-test-net.md). La Testnet y Devnet no utilizan conjuntos de validadores diversos y resistentes a la censura. Esto hace posible que Ripple reinicie la Testnet o Devnet en cualquier momento. - ## Ver también - **Herramientas:** - - [XRP Testnet Faucet](/resources/dev-tools/xrp-faucets) + - [XRP Testnet Faucet](/resources/dev-tools/xrp-faucets) - **Conceptos:** - - [Consenso](../consensus-protocol/index.md) - - [Enmiendas](amendments.md) + - [Consenso](../consensus-protocol/index.md) + - [Enmiendas](amendments.md) - **Tutoriales:** - - [Conectar tu `rippled` en laTestnet XRP](../../infrastructure/configuration/connect-your-rippled-to-the-xrp-test-net.md) - - [Usar rippled en modo Stand-Alone](../../infrastructure/testing-and-auditing/index.md) + - [Conectar tu `rippled` en laTestnet XRP](../../infrastructure/configuration/connect-your-rippled-to-the-xrp-test-net.md) + - [Usar rippled en modo Stand-Alone](../../infrastructure/testing-and-auditing/index.md) - **Referencias:** - - [método server_info][] - - [método consensus_info][] - - [método validator_list_sites][] - - [método validators][] - - [Opciones modo Daemon](../../infrastructure/commandline-usage.md#daemon-mode-options) + - [método server_info][] + - [método consensus_info][] + - [método validator_list_sites][] + - [método validators][] + - [Opciones modo Daemon](../../infrastructure/commandline-usage.md#daemon-mode-options) {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/@l10n/es-ES/docs/concepts/networks-and-servers/peer-protocol.md b/@l10n/es-ES/docs/concepts/networks-and-servers/peer-protocol.md index d70f958c7d..71b6306c0d 100644 --- a/@l10n/es-ES/docs/concepts/networks-and-servers/peer-protocol.md +++ b/@l10n/es-ES/docs/concepts/networks-and-servers/peer-protocol.md @@ -2,11 +2,12 @@ html: peer-protocol.html parent: networks-and-servers.html seo: - description: El protocolo de pares especifica el lenguaje en el que los servidores rippled hablan entre sí. + description: El protocolo de pares especifica el lenguaje en el que los servidores rippled hablan entre sí. labels: - Servidor principal - Blockchain --- + # Protocolo de pares Los servidores en el XRP Ledger se comunican entre sí utilizando el protocolo de pares del XRP Ledger. @@ -24,13 +25,12 @@ Para establecer una conexión peer-to-peer, un servidor se conecta a otro usando El XRP Ledger utiliza el protocolo del "chismorreo" para ayudar a servidores a encontrar otros servidores para conectarse en la red XRP Ledger. Cuando un servidor se inicia, se reconecta a cualquier otro par al que se haya conectado anteriormente. Como alternativa, utiliza los [hubs públicos hardcodeados](https://github.com/XRPLF/rippled/blob/fa57859477441b60914e6239382c6fba286a0c26/src/ripple/overlay/impl/OverlayImpl.cpp#L518-L525). Después de que un servidor se conecte correctamente a un par, le pregunta a ese par por información de contacto (generalmente, dirección IP y puerto) de otros servidores XRP Ledger que también pueden estar buscando pares. El servidor puede conectarse entonces a esos servidores, y preguntarles por información de contacto de todavía más servidores a los que conectarse. A través de este proceso, el servior hace suficientes conexiones de pares para que pueda permanecer contectado con el resto de la red incluso si pierde la conexión con cualquier par en particular. -Normalmente, un servidor necesita conectarse a un hub público solo una vez, durante un corto período de tiempo, para encontrar otros pares. Después de hacerlo, el servidor puede o no permanecer conectado al hub, dependiendo de la estabilidad de su conexión de red, de lo ocupado que esté el hub y de cuántos otros pares de alta calidad encuentre el servidor. El servidor guarda las direcciones de estos otros pares para poder intentar reconectarse directamente a esos pares más tarde, después de una interrupción en la red o un reinicio. +Normalmente, un servidor necesita conectarse a un hub público solo una vez, durante un corto período de tiempo, para encontrar otros pares. Después de hacerlo, el servidor puede o no permanecer conectado al hub, dependiendo de la estabilidad de su conexión de red, de lo ocupado que esté el hub y de cuántos otros pares de alta calidad encuentre el servidor. El servidor guarda las direcciones de estos otros pares para poder intentar reconectarse directamente a esos pares más tarde, después de una interrupción en la red o un reinicio. El [método peers][] muestra una lista de pares a los que tu servidor está actualmente conectado. Para ciertos servidores de alto valor (tan importantes como [validadores](rippled-server-modes.md#modos-de-servidor-rippled)) puedes preferir no conectarte a pares no confiables a través del proceso de descubrimiento de pares. En este caso, puedes configurar tu servidor para usar solo [pares privados](#pares-privados). - ## Puerto del protocolo de pares Para participar en el XRP Ledger, los servidores `rippled` conectan con pares arbitrarios utilizando el protocolo de pares. (Todos los pares son como no confiables, a no ser que sean de tipo [clusterizado](clustering.md) con el servidor actual.) @@ -58,7 +58,6 @@ El par de claves de nodo se guarda en la base de datos y se reutiliza cuando el El par de claves de nodo también identifican otros servidores para propositos de [clustering](clustering.md) o [reservar huecos de pares](#pares-fijos-y-reservas-de-pares). Si tienes un cluster de servidores, debes configurar cada servidor en el cluster con un valor único en el apartado `[node_seed]`. Para más información de cómo configurar un cluster, ver [Servidores `rippled` clusterizados](../../infrastructure/configuration/peering/cluster-rippled-servers.md). - ## Pares fijos y reservas de pares Normalmente, un servidor `rippled` intenta mantener un número saludable de pares, y se conecta automáticamente a pares no confiables hasta un número máximo. Puedes configurar un servidor `rippled` para permanecer conectado a servidores de pares específicos de varias maneras: @@ -71,10 +70,9 @@ En los siguientes casos, un servidor `rippled` no se conecta a pares no confiabl - Si el servidor es configurado como un [par privado](#pares-privados), se conecta _solo_ a sus pares fijos. - Si el servidor esta ejecutando en [modo solitario][] no se conecta a _ningún_ par. - ## Pares privados -Puedes configurar un servidor `rippled` para actuar como un servidor "privado" para mantener oculta su dirección IP del público general. Esta puede ser una precaución útil contra ataques de denegación de servicio e intentos de intrusión en servidores `rippled` importantes como los validadores de confianza. Para participar en la red peer-to-peer, un servidor privado debe estar configurado para conectarse a al menos un servidor no privado, que transmita sus mensajes al resto de la red. +Puedes configurar un servidor `rippled` para actuar como un servidor "privado" para mantener oculta su dirección IP del público general. Esta puede ser una precaución útil contra ataques de denegación de servicio e intentos de intrusión en servidores `rippled` importantes como los validadores de confianza. Para participar en la red peer-to-peer, un servidor privado debe estar configurado para conectarse a al menos un servidor no privado, que transmita sus mensajes al resto de la red. **Atención:** Si configuras un servidor privado sin ningún [par fijo](#pares-fijos-y-reservas-de-pares), el servidor no puede conectarse a la red, por lo que no puede conocer el estado de la red, transmitir transacciones o participar en el proceso de consenso. @@ -84,9 +82,9 @@ Configurar un servidor como un servidor privado tiene varios efectos: - El servidor no acepta conexiones entrantes de otros servidores a menos que se haya configurado explícitamente para aceptar conexiones de esos servidores. - El servidor pide a sus pares directos no revelar su dirección IP a comunicaciones no confiables, incluyendo a la [respuesta de la API del peer crawler](../../references/http-websocket-apis/peer-port-methods/peer-crawler.md). Esto no afecta a las comunicaciones confiables como el [método peers admin][peers method]. - Los servidores siempre piden a sus pares ocultar las direcciones IP de validadores, independientemente de la configuración del servidor privada. Esto ayuda a proteger validadores de ser sobrecargados por ataques de denegación de servicio. + Los servidores siempre piden a sus pares ocultar las direcciones IP de validadores, independientemente de la configuración del servidor privada. Esto ayuda a proteger validadores de ser sobrecargados por ataques de denegación de servicio. - **Atención:** Es posible modificar el código fuente de un servidor para que ignore esta petición y comparta las direcciones IP de sus pares inmediatos de todos modos. Debes configurar tu servidor privado para que se conecte solo a servidores que sepas que no están modificados de esta manera. + **Atención:** Es posible modificar el código fuente de un servidor para que ignore esta petición y comparta las direcciones IP de sus pares inmediatos de todos modos. Debes configurar tu servidor privado para que se conecte solo a servidores que sepas que no están modificados de esta manera. ### Pros y contras de las configuraciones de pares @@ -98,7 +96,6 @@ Para ser parte del XRP Ledger, un servidor `rippled` debe estar conectado al res Los pros y contras de cada configuración son los siguientes: - @@ -148,27 +145,26 @@ Los pros y contras de cada configuración son los siguientes: Para configurar tu servidor como un servidor privado, establece la opción `[peer_private]` a `1` en el fichero de configuración. Para intrudciones más detalladas, ver [Configurar un servidor privado](../../infrastructure/configuration/peering/configure-a-private-server.md). - ## Ver también - **Conceptos:** - - [Consenso](../consensus-protocol/index.md) - - [Redes paralelas](parallel-networks.md) + - [Consenso](../consensus-protocol/index.md) + - [Redes paralelas](parallel-networks.md) - **Tutoriales:** - - [Cluster de servidores rippled](../../infrastructure/configuration/peering/cluster-rippled-servers.md) - - [Configurar un servidor privado](../../infrastructure/configuration/peering/configure-a-private-server.md) - - [Configurar el Peer Crawler](../../infrastructure/configuration/peering/configure-the-peer-crawler.md) - - [Redireccionar puertos para pares](../../infrastructure/configuration/peering/forward-ports-for-peering.md) - - [Conectarse manualmente a un par específico](../../infrastructure/configuration/peering/manually-connect-to-a-specific-peer.md) - - [Establecer número máximo de pares](../../infrastructure/configuration/peering/set-max-number-of-peers.md) - - [Utilizar la reserva de pares](../../infrastructure/configuration/peering/use-a-peer-reservation.md) + - [Cluster de servidores rippled](../../infrastructure/configuration/peering/cluster-rippled-servers.md) + - [Configurar un servidor privado](../../infrastructure/configuration/peering/configure-a-private-server.md) + - [Configurar el Peer Crawler](../../infrastructure/configuration/peering/configure-the-peer-crawler.md) + - [Redireccionar puertos para pares](../../infrastructure/configuration/peering/forward-ports-for-peering.md) + - [Conectarse manualmente a un par específico](../../infrastructure/configuration/peering/manually-connect-to-a-specific-peer.md) + - [Establecer número máximo de pares](../../infrastructure/configuration/peering/set-max-number-of-peers.md) + - [Utilizar la reserva de pares](../../infrastructure/configuration/peering/use-a-peer-reservation.md) - **Referencias:** - - [método peers][] - - [método peer_reservations_add][] - - [método peer_reservations_del][] - - [método peer_reservations_list][] - - [método connect][] - - [método fetch_info][] - - [Peer Crawler](../../references/http-websocket-apis/peer-port-methods/peer-crawler.md) + - [método peers][] + - [método peer_reservations_add][] + - [método peer_reservations_del][] + - [método peer_reservations_list][] + - [método connect][] + - [método fetch_info][] + - [Peer Crawler](../../references/http-websocket-apis/peer-port-methods/peer-crawler.md) {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/@l10n/es-ES/docs/concepts/networks-and-servers/rippled-server-modes.md b/@l10n/es-ES/docs/concepts/networks-and-servers/rippled-server-modes.md index 97756ac013..7360b2d079 100644 --- a/@l10n/es-ES/docs/concepts/networks-and-servers/rippled-server-modes.md +++ b/@l10n/es-ES/docs/concepts/networks-and-servers/rippled-server-modes.md @@ -2,25 +2,25 @@ html: rippled-server-modes.html parent: networks-and-servers.html seo: - description: Aprende sobre los modos de servidor rippled, incluyendo servidores stock, servidores validadores y servidores que se ejecutan en modo solitario. + description: Aprende sobre los modos de servidor rippled, incluyendo servidores stock, servidores validadores y servidores que se ejecutan en modo solitario. labels: - Servidor principal --- + # Modos de servidor rippled El software del servidor `rippled` puede ejecutarse en varios modos dependiendo de su configuración, incluyendo: - [**Modo P2P**](#modo-p2p) - Este es el modo principal del servidor: sigue la red peer-to-peer, procesa transacciones, y mantiene cierta cantidad de [histórico del ledger](ledger-history.md). Este modo se puede configurar para alguno o todos los siguientes roles: - - [**Validador**](#validadores) - Ayuda a asegurar la red participando en el consenso. - - [**Servidor API**](#servidores-api) - Proporciona [acceso API](../../tutorials/http-websocket-apis/build-apps/get-started.md) para leer datos del ledger compartido, enviar transacciones, y mirar la actividad en el ledger. Opcionalmente, puede ser un [**servidor full history**](#servidores-full-history), el cual guarda un registro completo de transacciones y el histórico del ledger. - - [**Servidor hub**](#hubs-públicos) - Transmite mensajes entre muchos otros miembros de la red peer-to-peer. + - [**Validador**](#validadores) - Ayuda a asegurar la red participando en el consenso. + - [**Servidor API**](#servidores-api) - Proporciona [acceso API](../../tutorials/http-websocket-apis/build-apps/get-started.md) para leer datos del ledger compartido, enviar transacciones, y mirar la actividad en el ledger. Opcionalmente, puede ser un [**servidor full history**](#servidores-full-history), el cual guarda un registro completo de transacciones y el histórico del ledger. + - [**Servidor hub**](#hubs-públicos) - Transmite mensajes entre muchos otros miembros de la red peer-to-peer. - [**Modo solitario**](#modo-solitario) - Un modo offline para pruebas. No se conecta a la red peer-to-peer ni usa consenso. Tambien puedes ejecutar el ejecutable `rippled` como una aplicación cliente para acceder [APIs `rippled`](../../references/http-websocket-apis/index.md) localmente. (Dos instancias del mismo binario pueden ejecutarse uno al lado del otro en este caso; uno como un servidor, y el otro ejecutándose brevemente como cliente y luego apagarlo.) Para más información sobre los comandos que ejecutar `rippled` en cada uno de estos modos, ver la [Referencia de línea de comandos](../../infrastructure/commandline-usage.md). - ## Modo P2P El Modo P2P es el modo principal y predeterminado del servidor `rippled`, y puede manejar casi cualquier cosa que desees que haga tu servidor. Estos servidores forman una red peer-to-peer que procesa transacciones y mantiene el estado compartido del XRP Ledger. Si deseas enviar transacciones, leer datos del ledger o participar de otra manera en la red, tus solicitudes deben pasar por un servidor en Modo P2P en algún momento. @@ -33,15 +33,13 @@ Los servidores en Modo P2P también pueden configurarse para proporcionar funcio Los servidores Modo P2P se conecta a [Mainnet](parallel-networks.md) por defecto. - ### Servidores API Todos los servidores en Modo P2P proporcionan [APIs](../../references/http-websocket-apis/index.md) para propósitos como enviar transacciones, verificar balances y configuraciones, y administrar el servidor. Si consultas el XRP Ledger para obtener datos o enviar transacciones para uso comercial, puede ser útil [ejecutar tu propio servidor](index.md#razones-por-las-que-ejecutar-tu-propio-servidor). #### Servidores Full History -A diferencia de algunas otras blockchains, el XRP Ledger no requiere que los servidores tengan un historial completo de transacciones para conocer el estado actual y procesar nuevas transacciones. Como operador de servidor, tú decides cuánto [histórico del ledger](ledger-history.md) almacenar en un momento dado. Sin embargo, un servidor en Modo P2P solo puede responder a solicitudes de API utilizando el historial del ledger que tiene disponible localmente. Por ejemplo, si conservas seis meses de historial, tu servidor no puede describir el resultado de una transacción de hace un año. Los servidores API con histórico completo o [full history](ledger-history.md#full-history) pueden informar de todas las transacciones y balances desde el inicio del XRP Ledger. - +A diferencia de algunas otras blockchains, el XRP Ledger no requiere que los servidores tengan un historial completo de transacciones para conocer el estado actual y procesar nuevas transacciones. Como operador de servidor, tú decides cuánto [histórico del ledger](ledger-history.md) almacenar en un momento dado. Sin embargo, un servidor en Modo P2P solo puede responder a solicitudes de API utilizando el historial del ledger que tiene disponible localmente. Por ejemplo, si conservas seis meses de historial, tu servidor no puede describir el resultado de una transacción de hace un año. Los servidores API con histórico completo o [full history](ledger-history.md#full-history) pueden informar de todas las transacciones y balances desde el inicio del XRP Ledger. ### Hubs públicos @@ -65,7 +63,6 @@ Puedes habilitar de forma segura la validación en un servidor que también se u Para más información sobre como ejecutar un validador, ver [Ejecutar `rippled` como un validador](../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md). - ## Modo solitario En el modo solitario, el servidor opera sin conectarse a la red y sin participar en el proceso de consenso. Sin el proceso de consenso, debes avanzar manualmente el ledger y no se hace ninguna distinción entre "cerrado" y "validado" ledgers. Sin embargo, el servidor sigue proporcionando acceso a la API y procesa transacciones de la misma manera. Esto te permite: @@ -74,11 +71,10 @@ En el modo solitario, el servidor opera sin conectarse a la red y sin participar - [Crear un nuevo ledger génesis](../../infrastructure/testing-and-auditing/start-a-new-genesis-ledger-in-stand-alone-mode.md) desde el inicio. - [Cargar una versión de ledger existente](../../infrastructure/testing-and-auditing/load-a-saved-ledger-in-stand-alone-mode.md) desde el disco, luego reproducir transacciones específicas para recrear sus resultados y probar otras posibilidades. - ## Ver también - **Tutoriales:** - - [Configurar `rippled`](../../infrastructure/configuration/index.md) - - [Usar rippled en modo solitario](../../infrastructure/testing-and-auditing/index.md) + - [Configurar `rippled`](../../infrastructure/configuration/index.md) + - [Usar rippled en modo solitario](../../infrastructure/testing-and-auditing/index.md) {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/@l10n/es-ES/docs/concepts/networks-and-servers/the-clio-server.md b/@l10n/es-ES/docs/concepts/networks-and-servers/the-clio-server.md index c910cc7980..db6e8f4a58 100644 --- a/@l10n/es-ES/docs/concepts/networks-and-servers/the-clio-server.md +++ b/@l10n/es-ES/docs/concepts/networks-and-servers/the-clio-server.md @@ -2,8 +2,9 @@ html: the-clio-server.html parent: networks-and-servers.html seo: - description: Clio es un servidor XRP Ledger optimizado para llamadas API. + description: Clio es un servidor XRP Ledger optimizado para llamadas API. --- + # El servidor Clio Clio es un servidor API del XRP Ledger optimizado para llamadas de WebSocket o HTTP API para datos del ledger validados. @@ -18,20 +19,19 @@ Mientras que Clio ofrece las [APIs HTTP / WebSocket](../../references/http-webso ## ¿Por qué debería ejecutar un servidor Clio? -Hay multitud de razones por las que podrías querer ejecutar tu propio servidor Clio, pero la mayoría se pueden resumir en: carga reducida en el/los servidor(es) `rippled` conectado(s) a la red P2P, menor uso de memoria y sobrecarga de almacenamiento, escalabilidad horizontal más fácil y mayor rendimiento para las solicitudes API. +Hay multitud de razones por las que podrías querer ejecutar tu propio servidor Clio, pero la mayoría se pueden resumir en: carga reducida en el/los servidor(es) `rippled` conectado(s) a la red P2P, menor uso de memoria y sobrecarga de almacenamiento, escalabilidad horizontal más fácil y mayor rendimiento para las solicitudes API. -* Carga reducida en el/los servidor(es) `rippled` - Un servidor Clio no se conecta a la red peer-to-peer. Utiliza gRPC para obtener datos validados de uno o más servidores `rippled` de confianza que están conectados a la red P2P. Por lo tanto, un servidor Clio maneja las solicitudes de manera más eficiente y reduce la carga en los servidores `rippled` que se ejecutan en modo P2P. +- Carga reducida en el/los servidor(es) `rippled` - Un servidor Clio no se conecta a la red peer-to-peer. Utiliza gRPC para obtener datos validados de uno o más servidores `rippled` de confianza que están conectados a la red P2P. Por lo tanto, un servidor Clio maneja las solicitudes de manera más eficiente y reduce la carga en los servidores `rippled` que se ejecutan en modo P2P. -* Menor uso de memoria y sobrecarga de almacenamiento - Clio utiliza Cassandra como base de datos y almacena datos en un formato eficiente en espacio, utilizando hasta 4 veces menos espacio que `rippled`. +- Menor uso de memoria y sobrecarga de almacenamiento - Clio utiliza Cassandra como base de datos y almacena datos en un formato eficiente en espacio, utilizando hasta 4 veces menos espacio que `rippled`. -* Escalabilidad horizontal más fácil - Múltiples servidores Clio pueden compartir acceso al mismo conjunto de datos, lo que le permite construir un clúster altamente disponible de servidores Clio. - -* Mayor rendimiento para las solicitudes API - Un servidor Clio extrae datos validados de uno o más servidores `rippled` confiables y almacena estos datos de manera eficiente. Por lo tanto, maneja las llamadas API de manera eficiente, lo que resulta en un mayor rendimiento y, en algunos casos, una latencia más baja también. +- Escalabilidad horizontal más fácil - Múltiples servidores Clio pueden compartir acceso al mismo conjunto de datos, lo que le permite construir un clúster altamente disponible de servidores Clio. +- Mayor rendimiento para las solicitudes API - Un servidor Clio extrae datos validados de uno o más servidores `rippled` confiables y almacena estos datos de manera eficiente. Por lo tanto, maneja las llamadas API de manera eficiente, lo que resulta en un mayor rendimiento y, en algunos casos, una latencia más baja también. ## ¿Cómo funciona un servidor Clio? -[{% inline-svg file="/docs/img/clio-basic-architecture.svg" /%}](/docs/img/clio-basic-architecture.svg "Figura 1: ¿Cómo funciona un servidor Clio?") +[{% inline-svg file="/docs/img/clio-basic-architecture.svg" /%}](/docs/img/clio-basic-architecture.svg 'Figura 1: ¿Cómo funciona un servidor Clio?') Cuando un servidor Clio almacena datos del ledger validados, como metadatos de transacciones, estados de cuentas y encabezados de ledger, en un almacén de datos persistente. @@ -48,4 +48,4 @@ Clio **siempre** reenvía a `rippled` si alguna de las siguientes condiciones es - [Código fuente Clio](https://github.com/XRPLF/clio) - **Tutoriales:** - - [Instalar servidor Clio en Ubuntu](../../infrastructure/installation/install-clio-on-ubuntu.md) + - [Instalar servidor Clio en Ubuntu](../../infrastructure/installation/install-clio-on-ubuntu.md) diff --git a/@l10n/es-ES/docs/concepts/networks-and-servers/transaction-censorship-detection.md b/@l10n/es-ES/docs/concepts/networks-and-servers/transaction-censorship-detection.md index 5fe5ed841e..fc7bf91e01 100644 --- a/@l10n/es-ES/docs/concepts/networks-and-servers/transaction-censorship-detection.md +++ b/@l10n/es-ES/docs/concepts/networks-and-servers/transaction-censorship-detection.md @@ -2,10 +2,11 @@ html: transaction-censorship-detection.html parent: networks-and-servers.html seo: - description: El XRP Ledger proporciona un detector de censura de transacciones automatizado que está disponible en todos los servidores rippled. + description: El XRP Ledger proporciona un detector de censura de transacciones automatizado que está disponible en todos los servidores rippled. labels: - Blockchain --- + # Detección de censura de transacciones {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.0" %}Nuevo en: rippled 1.2.0{% /badge %} @@ -14,8 +15,6 @@ El XRP Ledger está diseñado para ser resistente a la censura. En apoyo a este Mientras un servidor `rippled` está sincronizado con la red, el detector rastrea todas las transacciones que deberían haber sido aceptadas en la última ronda de [consensus](../consensus-protocol/index.md) e incluidas en el último ledger validado. El detector emite mensajes de registro de severidad creciente cuando ve transacciones que no han sido incluidas en un ledger validado después de varias rondas de consenso. - - ## ¿Cómo funciona? A alto nivel, así es cómo el detector de censura de transacciones funciona: @@ -26,9 +25,9 @@ A alto nivel, así es cómo el detector de censura de transacciones funciona: 3. El detector emite un [mensaje de advertencia](#ejemplo-de-mensaje-de-advertencia) en el registro para cualquier transacción que permanezca en el rastreador durante 15 ledgers, mostrándola como una transacción potencialmente censurada. La presencia de la transacción en el rastreador en este momento significa que no ha sido incluida en un ledger validado después de 15 rondas de consenso. Si la transacción permanece en el rastreador durante otros 15 ledgers, el detector emite otro mensaje de advertencia en el registro. - Mientras la transacción permanezca en el rastreador, el detector continuará emitiendo un mensaje de advertencia en el registro cada 15 ledgers, hasta cinco mensajes de advertencia. Después del quinto mensaje de advertencia, el detector emite un [mensaje de error](#ejemplo-de-mensaje-de-error) final en el registro y luego deja de emitir mensajes de advertencia y error. + Mientras la transacción permanezca en el rastreador, el detector continuará emitiendo un mensaje de advertencia en el registro cada 15 ledgers, hasta cinco mensajes de advertencia. Después del quinto mensaje de advertencia, el detector emite un [mensaje de error](#ejemplo-de-mensaje-de-error) final en el registro y luego deja de emitir mensajes de advertencia y error. - Si ves estos mensajes en el registro de tu servidor rippled, debes investigar por qué otros servidores no están incluyendo la transacción, comenzando con la suposición de que la causa es más probable que sea un [falso positivo](#potenciales-falsos-positivos) (error inocente) que una censura maliciosa. + Si ves estos mensajes en el registro de tu servidor rippled, debes investigar por qué otros servidores no están incluyendo la transacción, comenzando con la suposición de que la causa es más probable que sea un [falso positivo](#potenciales-falsos-positivos) (error inocente) que una censura maliciosa. ## Ejemplo de mensaje de advertencia @@ -38,7 +37,6 @@ Esto es un ejemplo de mensaje de advertencia emitido por el detector de censura LedgerConsensus:WRN Potential Censorship: Eligible tx E08D6E9754025BA2534A78707605E0601F03ACE063687A0CA1BDDACFCD1698C7, which we are tracking since ledger 18851530 has not been included as of ledger 18851545. ``` - ## Ejemplo de mensaje de error Este es un ejemplo de mensaje de error emitido por el detector de censura de transacciones después de que la transacción E08D6E9754025BA2534A78707605E0601F03ACE063687A0CA1BDDACFCD1698C7 permaneciese en el rastreador por 75 ledgers (5 conjuntos de 15 ledgers), desde el ledger 18851530 hasta el ledger 18851605. @@ -47,7 +45,6 @@ Este es un ejemplo de mensaje de error emitido por el detector de censura de tra LedgerConsensus:ERR Potential Censorship: Eligible tx E08D6E9754025BA2534A78707605E0601F03ACE063687A0CA1BDDACFCD1698C7, which we are tracking since ledger 18851530 has not been included as of ledger 18851605. Additional warnings suppressed. ``` - ## Potenciales falsos positivos El detector de censura de transacciones puede emitir falsos positivos en ciertos escenarios. En este caso, un falso positivo significa que el detector ha marcado una transacción que ha permanecido en el rastreador durante 15 ledgers o más, pero por razones inocentes. @@ -60,18 +57,17 @@ Aquí hay algunos escenarios que podrían causar que el detector emita mensajes - Los servidores en la red, incluido posiblemente tu propio servidor, tienen un error que les hace transmitir transacciones de manera inconsistente a otros servidores en la red. - Actualmente, no se conocen errores que causen este comportamiento inesperado. Sin embargo, si ves el impacto de lo que sospechas que es un error, considera reportarlo al programa [Ripple Bug Bounty](https://ripple.com/bug-bounty/). - + Actualmente, no se conocen errores que causen este comportamiento inesperado. Sin embargo, si ves el impacto de lo que sospechas que es un error, considera reportarlo al programa [Ripple Bug Bounty](https://ripple.com/bug-bounty/). ## Ver también - **Conceptos:** - - [Principio de consenso y reglas](../consensus-protocol/consensus-principles-and-rules.md) - - [Cola de transacciones](../transactions/transaction-queue.md) + - [Principio de consenso y reglas](../consensus-protocol/consensus-principles-and-rules.md) + - [Cola de transacciones](../transactions/transaction-queue.md) - **Tutoriales:** - - [Envío confiable de transacciones](../transactions/reliable-transaction-submission.md) - - [Entendiendo los mensajes de registro](../../infrastructure/troubleshooting/understanding-log-messages.md) + - [Envío confiable de transacciones](../transactions/reliable-transaction-submission.md) + - [Entendiendo los mensajes de registro](../../infrastructure/troubleshooting/understanding-log-messages.md) - **Referencias:** - - [Resultados de transacciones](../../references/protocol/transactions/transaction-results/index.md) + - [Resultados de transacciones](../../references/protocol/transactions/transaction-results/index.md) {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/@l10n/es-ES/docs/concepts/payment-types/bouncing-payments.md b/@l10n/es-ES/docs/concepts/payment-types/bouncing-payments.md index e70bd3d950..ec6315f06d 100644 --- a/@l10n/es-ES/docs/concepts/payment-types/bouncing-payments.md +++ b/@l10n/es-ES/docs/concepts/payment-types/bouncing-payments.md @@ -2,10 +2,11 @@ html: bouncing-payments.html parent: payment-types.html seo: - description: Cuando el propósito de un pago no esté claro, devuélvelo al remitente. + description: Cuando el propósito de un pago no esté claro, devuélvelo al remitente. labels: - Tokens --- + # Devolver pagos Cuando una de tus direcciones recibe un pago cuyo propósito no está claro, te recomendamos que intentes devolver el dinero a su remitente. Si bien esto requiere más trabajo que quedarse con el dinero, demuestra buena fe hacia los clientes. Puedes hacer que un operador rechace los pagos manualmente o crear un sistema para hacerlo automáticamente. diff --git a/@l10n/es-ES/docs/concepts/payment-types/checks.md b/@l10n/es-ES/docs/concepts/payment-types/checks.md index 3bb908f04b..15b2dd89ad 100644 --- a/@l10n/es-ES/docs/concepts/payment-types/checks.md +++ b/@l10n/es-ES/docs/concepts/payment-types/checks.md @@ -2,14 +2,14 @@ html: checks.html parent: payment-types.html seo: - description: Los cheques permiten a los usuarios a crear pagos diferidos que pueden ser cancelados o cobrados por los destinatarios deliberados. + description: Los cheques permiten a los usuarios a crear pagos diferidos que pueden ser cancelados o cobrados por los destinatarios deliberados. labels: - Cheques - Pagos - Tokens --- -# Cheques +# Cheques La función de Cheques permite a los usuarios crear pagos aplazados similares a cheques en papel. A diferencia de un depósito en garantía (escrow) o canal de pago (payment channel), los fondos no se reservan cuando se crea un cheque, por lo que el dinero solo se mueve cuando se cobra el cheque. Si el remitente no tiene los fondos en el momento en que se cobra un cheque, la transacción falla; los destinatarios pueden intentar nuevamente las transacciones fallidas hasta que el cheque expire. @@ -23,44 +23,41 @@ Los Cheques del XRP Ledger pueden tener tiempos de vencimiento después de los c - Cobros de cheques flexibles. El destnatario puede canjear el Cheque entre un nínimo y un máximo. - ## Ciclo de vida de un cheque 1. El remitente envía una [transacción CheckCreate][], que define: - - El destinatario. - - Una fecha de caducidad. - - La cantidad máxima que se puede cargar de su cuenta. + - El destinatario. + - Una fecha de caducidad. + - La cantidad máxima que se puede cargar de su cuenta. -2. Cuando una transacción es procesada, el XRP Ledger crea un objeto `Check`. El cheque puede ser cancelado por el destinatario o el remitente con una [transacción CheckCancel][]. +2. Cuando una transacción es procesada, el XRP Ledger crea un objeto `Check`. El cheque puede ser cancelado por el destinatario o el remitente con una [transacción CheckCancel][]. 3. El destinatario envía una [transacción CheckCash][] que transfiere los fondos y destruye el objeto `Check`. Los destinatarios tienen dos opciones para cobrar los cheques: - - Cantidad exacta: Se especifica la cantidad exacta de dinero a cobrar que no puede exceder el máximo del cheque. - - Cantidad flexible: Se especifica una cantidad mínima para cobrar y el XRP Ledger manda tanto como sea posible hasta el máximo del cheque. Si el remitente no tiene fondos para cumplir al menos el mínimo específicado, la transacción falla. + - Cantidad exacta: Se especifica la cantidad exacta de dinero a cobrar que no puede exceder el máximo del cheque. + - Cantidad flexible: Se especifica una cantidad mínima para cobrar y el XRP Ledger manda tanto como sea posible hasta el máximo del cheque. Si el remitente no tiene fondos para cumplir al menos el mínimo específicado, la transacción falla. 4. Si el cheque vence antes de que el destinatario lo cobre, el objeto `Check` permanece hasta que alguien lo cancele. - - ## Ver también Para más información sobre Cheques en el XRP Ledger, ver: - [Referencia transacción](../../references/protocol/transactions/types/index.md) - - [CheckCreate][] - - [CheckCash][] - - [CheckCancel][] + - [CheckCreate][] + - [CheckCash][] + - [CheckCancel][] - [Tutoriales de cheques](../../tutorials/how-tos/use-specialized-payment-types/use-checks/index.md) - - [Enviar un cheque](../../tutorials/how-tos/use-specialized-payment-types/use-checks/send-a-check.md) - - [Buscar cheques](../../tutorials/how-tos/use-specialized-payment-types/use-checks/look-up-checks.md) - - [Canjear un cheque por la cantidad exacta](../../tutorials/how-tos/use-specialized-payment-types/use-checks/cash-a-check-for-an-exact-amount.md) - - [Canjear un cheque por una cantidad flexible](../../tutorials/how-tos/use-specialized-payment-types/use-checks/cash-a-check-for-a-flexible-amount.md) - - [Cancelar un cheque](../../tutorials/how-tos/use-specialized-payment-types/use-checks/cancel-a-check.md) + - [Enviar un cheque](../../tutorials/how-tos/use-specialized-payment-types/use-checks/send-a-check.md) + - [Buscar cheques](../../tutorials/how-tos/use-specialized-payment-types/use-checks/look-up-checks.md) + - [Canjear un cheque por la cantidad exacta](../../tutorials/how-tos/use-specialized-payment-types/use-checks/cash-a-check-for-an-exact-amount.md) + - [Canjear un cheque por una cantidad flexible](../../tutorials/how-tos/use-specialized-payment-types/use-checks/cash-a-check-for-a-flexible-amount.md) + - [Cancelar un cheque](../../tutorials/how-tos/use-specialized-payment-types/use-checks/cancel-a-check.md) - [Enmienda Cheques][] Para más información sobre funciones relacionadas, ver: -* [Autorización de deposito](../accounts/depositauth.md) -* [Escrow](escrow.md) -* [Tutorial de canales de pago](../../tutorials/how-tos/use-specialized-payment-types/use-payment-channels/index.md) +- [Autorización de deposito](../accounts/depositauth.md) +- [Escrow](escrow.md) +- [Tutorial de canales de pago](../../tutorials/how-tos/use-specialized-payment-types/use-payment-channels/index.md) {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/@l10n/es-ES/docs/concepts/payment-types/cross-currency-payments.md b/@l10n/es-ES/docs/concepts/payment-types/cross-currency-payments.md index b973833746..81f7532dfc 100644 --- a/@l10n/es-ES/docs/concepts/payment-types/cross-currency-payments.md +++ b/@l10n/es-ES/docs/concepts/payment-types/cross-currency-payments.md @@ -2,41 +2,39 @@ html: cross-currency-payments.html parent: payment-types.html seo: - description: Los pagos entre divisas entregan atómicamente una moneda diferente a la que envían mediante la conversión a través de rutas y libros de pedidos. + description: Los pagos entre divisas entregan atómicamente una moneda diferente a la que envían mediante la conversión a través de rutas y libros de pedidos. labels: - Entre divisas - Pagos --- + # Pagos entre divisas El XRP Ledger te permite realizar pagos entre divisas de XRP y tokens. Los pagos entre divisas dentro del XRP Ledger son complétamente atómicos, lo que quiere decir que el pago se ejecuta por completo o no se ejecuta en absoluto. Por defecto, los pagos entre divisas entregan una cantidad fija a su destino a un coste variable para su origen. Los pagos entre divisas también pueden ser [pagos parciales](partial-payments.md) que entregan una cantidad variable dentro de un límite de envío establecido. - ## Prerrequisitos - Por definición, un pago entre divisas implica al menos dos monedas, lo que significa que al menos una fivisa involucrada debe ser un [token](../tokens/index.md) que no sea XRP. - Debe existir al menos una ruta o [Path](../tokens/fungible-tokens/paths.md) entre el remitente y el receptor, y la liquidez total a lo largo de todas las rutas debe ser suficiente para ejecutar el pago. Los pagos entre divisas se convierten de una divisa a otra consumiendo ofertas u [Offers](../tokens/decentralized-exchange/offers.md) en el [exchange descentralizado](../tokens/decentralized-exchange/index.md) del XRP Ledger. - ## Auto-puente Los pagos entre divisas que intercambian un token por otro token pueden utilizar automáticamente XRP como puente entre los tokens, cuando esto reduce el coste del pago. Por ejemplo, un pago que envía de USD a MXN convierte automáticamente USD a XRP y luego XRP a MXN si hacerlo es más barato que convertir USD a MXN diréctamente. Operaciones más grandes pueden utilizar una combinación de conversiones directas (USD-MXN) y puentes automáticos (USD-XRP-MXN). Para más información, ver auto-puente o [Auto-Bridging](../tokens/decentralized-exchange/autobridging.md). - ## Ver también - **Conceptos:** - - [Tokens](../tokens/index.md) - - [Exchange descentralizado](../tokens/decentralized-exchange/index.md) - - [Paths](../tokens/fungible-tokens/paths.md) + - [Tokens](../tokens/index.md) + - [Exchange descentralizado](../tokens/decentralized-exchange/index.md) + - [Paths](../tokens/fungible-tokens/paths.md) - **References:** - - [Tipos de transacciones de pago][Payment transaction] - - [método path_find][] - - [método ripple_path_find][] - - [Interpretando metadatos de pagos entre divisas](../transactions/finality-of-results/look-up-transaction-results.md#token-payments) + - [Tipos de transacciones de pago][Payment transaction] + - [método path_find][] + - [método ripple_path_find][] + - [Interpretando metadatos de pagos entre divisas](../transactions/finality-of-results/look-up-transaction-results.md#token-payments) {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/@l10n/es-ES/docs/concepts/payment-types/direct-xrp-payments.md b/@l10n/es-ES/docs/concepts/payment-types/direct-xrp-payments.md index 8178e8b9e1..8eaf4686a6 100644 --- a/@l10n/es-ES/docs/concepts/payment-types/direct-xrp-payments.md +++ b/@l10n/es-ES/docs/concepts/payment-types/direct-xrp-payments.md @@ -2,48 +2,44 @@ html: direct-xrp-payments.html parent: payment-types.html seo: - title: Pagos directos en XRP - description: Los pagos directos en XRP son la forma más rápida y sencilla de enviar valor en el XRP Ledger. Conoce ahora los conceptos básicos del ciclo de vida de pago directo en XRP. + title: Pagos directos en XRP + description: Los pagos directos en XRP son la forma más rápida y sencilla de enviar valor en el XRP Ledger. Conoce ahora los conceptos básicos del ciclo de vida de pago directo en XRP. labels: - XRP - Pagos --- + # Pagos directos en XRP La base de cualquier sistema financiero es la transferencia de valor. El método más rápido y sencillo en el XRP Ledger es un pago directo en XRP de una cuenta a otra. A diferencia de otros métodos de pago que requieren múltiples transacciones para completarse, un pago directo en XRP se ejecuta en una sola transacción sin intermediarios, y típicamente se completa en 8 segundos o menos. Solo puedes hacer pagos directos cuando XRP es la moneda enviada y recibida. - - ## Ciclo de vida de pagos XRP directos 1. El remitente crea una [transacción Payment][], que define los parámetros del pago. La transacción es un pago directo en XRP si XRP es la divisa enviada y recibida. 2. El procesamiento de la transacción verifica los parámetros y circunstancias de la transacción; si la comprobación falla, el pago falla. + - Todos los campos están formateados correctamente. + - La dirección de envío es una cuenta activada en el XRP Ledger. + - Todas las firmas proporcionadas son válidas para la dirección de envío. + - La dirección de destino es diferente que la dirección de envío. + - El remitente tiene suficiente XRP en balance para enviar el pago. - - Todos los campos están formateados correctamente. - - La dirección de envío es una cuenta activada en el XRP Ledger. - - Todas las firmas proporcionadas son válidas para la dirección de envío. - - La dirección de destino es diferente que la dirección de envío. - - El remitente tiene suficiente XRP en balance para enviar el pago. - -2. El procesamiento del pago comprueba la dirección de destino; si alguna comprobación falla, el pago falla. - - - Si la dirección de recepción está activada, el motor hace comprobaciones adicionales basados en sus configuraciones, como la autorización de depósito o [Deposit Authorization](../accounts/depositauth.md). - - Si la dirección de recepción no está activada, comprueba si el pago enviará suficiente XRP para cumplir con el mínimo del requisito de la [reserva de cuenta](../accounts/reserves.md). Si la reserva se cumple, una nueva cuenta es creada para la dirección y el balance inicial es la cantidad recibida. +3. El procesamiento del pago comprueba la dirección de destino; si alguna comprobación falla, el pago falla. + - Si la dirección de recepción está activada, el motor hace comprobaciones adicionales basados en sus configuraciones, como la autorización de depósito o [Deposit Authorization](../accounts/depositauth.md). + - Si la dirección de recepción no está activada, comprueba si el pago enviará suficiente XRP para cumplir con el mínimo del requisito de la [reserva de cuenta](../accounts/reserves.md). Si la reserva se cumple, una nueva cuenta es creada para la dirección y el balance inicial es la cantidad recibida. 4. El ledger quita y acredita a las correspondientes cuentas. - - **Nota:** Al remitente también se le carga el [coste de transacción](../transactions/transaction-cost.md) en XRP. - + + **Nota:** Al remitente también se le carga el [coste de transacción](../transactions/transaction-cost.md) en XRP. ## Ver también - **Tutoriales:** - - [Enviar XRP (Tutorial interactivo)](../../tutorials/how-tos/send-xrp.md) - - [Monitorizar pagos entrantes con WebSocket](../../tutorials/http-websocket-apis/build-apps/monitor-incoming-payments-with-websocket.md) + - [Enviar XRP (Tutorial interactivo)](../../tutorials/how-tos/send-xrp.md) + - [Monitorizar pagos entrantes con WebSocket](../../tutorials/http-websocket-apis/build-apps/monitor-incoming-payments-with-websocket.md) - **Referencias:** - - [Transacción Payment][] - - [Resultados de Transaction](../../references/protocol/transactions/transaction-results/index.md) - - [método account_info][] - para comprobar balances en XRP + - [Transacción Payment][] + - [Resultados de Transaction](../../references/protocol/transactions/transaction-results/index.md) + - [método account_info][] - para comprobar balances en XRP {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/@l10n/es-ES/docs/concepts/payment-types/escrow.md b/@l10n/es-ES/docs/concepts/payment-types/escrow.md index d5b74ba7d2..972a280b58 100644 --- a/@l10n/es-ES/docs/concepts/payment-types/escrow.md +++ b/@l10n/es-ES/docs/concepts/payment-types/escrow.md @@ -2,10 +2,11 @@ html: escrow.html parent: payment-types.html seo: - description: El Escrow retiene fondos hasta que las condiciones específicas se cumplan. + description: El Escrow retiene fondos hasta que las condiciones específicas se cumplan. labels: - Escrow --- + # Escrow Tradicionalmente, un escrow es un contrato entre dos partes para facilitar transacciones financieras. Un tercero imparcial recibe y retiene los fondos, y solo los libera al destinatario previsto cuando se cumplen las condiciones especificadas en el contrato. Este método asegura que ambas partes cumplan con sus obligaciones. @@ -23,16 +24,15 @@ El XRP Ledger soporta tres tipos de escrow: ## Ciclo de vida de un escrow 1. El remitente crea un escrow utilizando la transacción `EscrowCreate`. Esta transacción define: - - - Una cantidad de XRP para bloquear. - - Las condiciones para liberar el XRP. - - El destinatario del XRP. + - Una cantidad de XRP para bloquear. + - Las condiciones para liberar el XRP. + - El destinatario del XRP. 2. Cuando se procesa la transacción, el XRP Ledger crea un objeto `Escrow` que retiene el XRP en el escrow. 3. El destinatario envía una transacción `EscrowFinish` para entregar el XRP. Si las condiciones se han cumplido, esto destruye el objeto `Escrow` y entrega el XRP al destinatario. - **Nota:** Si el escrow tiene una fecha de caducidad y no se completa con éxito antes de este tiempo, el escrow se caduca. Un escrow caducado permanece en el ledger hasta que una transacción `EscrowCancel` lo cancele, destruyendo el objeto `Escrow` y devuelve el XRP al remitente. + **Nota:** Si el escrow tiene una fecha de caducidad y no se completa con éxito antes de este tiempo, el escrow se caduca. Un escrow caducado permanece en el ledger hasta que una transacción `EscrowCancel` lo cancele, destruyendo el objeto `Escrow` y devuelve el XRP al remitente. ## Estados del escrow @@ -48,18 +48,16 @@ El diagrama muestra tres casos diferentes para tres posibles combinaciones de lo - **Escrow condicional (derecha):** Si el escrow especifica una criptocondición (campo `Condition`) y no por una fecha "terminar trás", el escrow se convierte en **Condicionalmente preparado** inmediatamente cuando se crea. Durante este tiempo, cualquiera puede finalizar el escrow, pero solo si suministran el cumplimiento correcto a la criptocondición. Si nadie finaliza el escrow antes de la fecha de caducidad (campo `CancelAfter`), el escrow se convierte en **Caducado**. (Un escrow sin una fecha de "finalizar-tras" _debe_ tener una fecha de caducidad.) En el estado de caducado, el escrow no puede ser finalizado, y cualquiera puede cancelarlo. - ## Limitaciones - El escrow solo funciona con XRP, no con tokens. - Los costes pueden hacerlo poco práctico para cantidades pequeñas. - - El escrow requiere de dos transacciones: una para crear el escrow, y una para finalizarlo o cancelarlo. Las criptocondiciones incurren en un [coste de transacción](../transactions/transaction-cost.md) mayor al usual. - - Mientras que el escrow no se completa, el remitente es responsable del [requisito de reserva](../accounts/reserves.md) del objeto del `Escrow`. + - El escrow requiere de dos transacciones: una para crear el escrow, y una para finalizarlo o cancelarlo. Las criptocondiciones incurren en un [coste de transacción](../transactions/transaction-cost.md) mayor al usual. + - Mientras que el escrow no se completa, el remitente es responsable del [requisito de reserva](../accounts/reserves.md) del objeto del `Escrow`. - No puedes crear un escrow con valores de fechas pasados. - Las liberaciones y caducidad se resuelven en [tiempos de cierre de ledgers](../ledgers/ledger-close-times.md). En la práctica, los tiempos de liberaciones o caducidad pueden variar en 5 segundos respecto a los cierres de ledgers. - El único tipo de criptocondición aceptado es PREIMAGE-SHA-256. - ## Coste de la transacción EscrowFinish Cuando uses criptocondiciones, la transacción EscrowFinish debe pagar un [mayor coste de transacción](../transactions/transaction-cost.md#special-transaction-costs) por la carga de procesamiento involucrada en la verificación de la criptocondición introducida. @@ -76,20 +74,17 @@ Si el [coste de votar](../consensus-protocol/fee-voting.md) cambia el valor de ` reference_fee * (signer_count + 33 + (fulfillment_bytes / 16)) ``` - - ## Ver también Para más información sobre Escrow en el XRP Ledger, consulta lo siguiente: - [Tutoriales Escrow](../../tutorials/how-tos/use-specialized-payment-types/use-escrows/index.md) - [Referencia de transacciones](../../references/protocol/transactions/index.md) - - [Transacción EscrowCreate][] - - [Transacción EscrowFinish][] - - [Transacción EscrowCancel][] + - [Transacción EscrowCreate][] + - [Transacción EscrowFinish][] + - [Transacción EscrowCancel][] - [Referencia Ledger](../../references/protocol/ledger-data/index.md) - - [Objeto Escrow](../../references/protocol/ledger-data/ledger-entry-types/escrow.md) - + - [Objeto Escrow](../../references/protocol/ledger-data/ledger-entry-types/escrow.md) Para más información sobre el bloqueo de 55 mil millones de Ripple, consulta [Ripple's Insights Blog](https://ripple.com/insights/ripple-to-place-55-billion-xrp-in-escrow-to-ensure-certainty-into-total-xrp-supply/). diff --git a/@l10n/es-ES/docs/concepts/payment-types/index.md b/@l10n/es-ES/docs/concepts/payment-types/index.md index bec5055e9d..5c5f39824e 100644 --- a/@l10n/es-ES/docs/concepts/payment-types/index.md +++ b/@l10n/es-ES/docs/concepts/payment-types/index.md @@ -4,13 +4,12 @@ parent: concepts.html metadata: indexPage: true seo: - title: Point-to-Point & Specialized Ledger Payment Types - description: Mientras que el XRP Ledger admite pagos XRP de punto a punto, también es compatible con tipos de pago más especializados. Descubre qué métodos de pago del ledger aquí. + title: Point-to-Point & Specialized Ledger Payment Types + description: Mientras que el XRP Ledger admite pagos XRP de punto a punto, también es compatible con tipos de pago más especializados. Descubre qué métodos de pago del ledger aquí. --- -# Ledger Payment Types +# Ledger Payment Types El XRP Ledger admite pagos de XRP de punto a punto junto con otros tipos de pago más especializados. - {% child-pages /%} diff --git a/@l10n/es-ES/docs/concepts/payment-types/partial-payments.md b/@l10n/es-ES/docs/concepts/payment-types/partial-payments.md index 27a76af4bf..ddf6c83f97 100644 --- a/@l10n/es-ES/docs/concepts/payment-types/partial-payments.md +++ b/@l10n/es-ES/docs/concepts/payment-types/partial-payments.md @@ -2,11 +2,12 @@ html: partial-payments.html parent: payment-types.html seo: - description: Los pagos parciales restan costes a la cantidad enviada, entregando una cantidad flexible. Los pagos parciales son útiles para devolver pagos no deseados sin incurrir en costes adicionales. + description: Los pagos parciales restan costes a la cantidad enviada, entregando una cantidad flexible. Los pagos parciales son útiles para devolver pagos no deseados sin incurrir en costes adicionales. labels: - Pagos - Seguridad --- + # Pagos parciales El remitente de cualquier [transacción de pago][] puede habilitar el [flag de"Partial Payment"](../../references/protocol/transactions/types/payment.md#payment-flags) y enviar un pago que entregue menos de lo que indica el campo `Amount`. Al procesar cualquier Pago, utiliza el campo de metadatos `delivered_amount`, no el campo `Amount`. El `delivered_amount` es la cantidad que un pago realmente entregó. @@ -51,7 +52,7 @@ Los pagos parciales tienen las siguientes limitaciones: - Un pago parcial no puede proporcionar el XRP para crear una dirección; en este caso se devuelve el [código de resultado][] `telNO_DST_PARTIAL`. - Pagos directoss de XRP a XRP no pueden ser pagos parciales; este caso devuelve el [código de resultado][] `temBAD_SEND_XRP_PARTIAL`. - - Sin embargo, los pagos entre divisas que involucran a XRP como una de las divisas _pueden_ ser pagos parciales. + - Sin embargo, los pagos entre divisas que involucran a XRP como una de las divisas _pueden_ ser pagos parciales. [código de resultado]: ../../references/protocol/transactions/transaction-results/index.md @@ -70,15 +71,15 @@ Si ambas condiciones son verdaderas, entonces `delivered_amount` contiene el val Puedes encontrar el campo `delivered_amount` en los siguientes lugares: -| API | Método | Campo | -|-----|--------|-------| -| [JSON-RPC / WebSocket][] | [método account_tx][] | `result.transactions` miembros del array `meta.delivered_amount` | -| [JSON-RPC / WebSocket][] | [método tx][] | `result.meta.delivered_amount` | -| [JSON-RPC / WebSocket][] | [método transaction_entry][] | `result.metadata.delivered_amount` | -| [JSON-RPC / WebSocket][] | [método ledger][] (con las transacciones ampliadas) | `result.ledger.transactions` miembros del array `metaData.delivered_amount` | -| [WebSocket][] | [subscripciones Transaction](../../references/http-websocket-apis/public-api-methods/subscription-methods/subscribe.md#transaction-streams) | Mensajes de subscripción de `meta.delivered_amount` | -| ripple-lib v1.x | método `getTransaction` | `outcome.deliveredAmount` | -| ripple-lib v1.x | método `getTransactions` | miembros del array `outcome.deliveredAmount` | +| API | Método | Campo | +| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | +| [JSON-RPC / WebSocket][] | [método account_tx][] | `result.transactions` miembros del array `meta.delivered_amount` | +| [JSON-RPC / WebSocket][] | [método tx][] | `result.meta.delivered_amount` | +| [JSON-RPC / WebSocket][] | [método transaction_entry][] | `result.metadata.delivered_amount` | +| [JSON-RPC / WebSocket][] | [método ledger][] (con las transacciones ampliadas) | `result.ledger.transactions` miembros del array `metaData.delivered_amount` | +| [WebSocket][] | [subscripciones Transaction](../../references/http-websocket-apis/public-api-methods/subscription-methods/subscribe.md#transaction-streams) | Mensajes de subscripción de `meta.delivered_amount` | +| ripple-lib v1.x | método `getTransaction` | `outcome.deliveredAmount` | +| ripple-lib v1.x | método `getTransactions` | miembros del array `outcome.deliveredAmount` | [WebSocket]: ../../references/http-websocket-apis/index.md [JSON-RPC / WebSocket]: ../../references/http-websocket-apis/index.md @@ -89,18 +90,17 @@ Si la integración de una institución financiera con el XRP Ledger asume que el **La forma correcta de procesar las transacciones de Pago entrantes es utilizar [el campo `delivered_amount` de los metadatos](#the-delivered_amount-field),** no el campo `Amount`. De este modo, una institución nunca se equivocará sobre cuanto recibe _realmente_. - ### Pasos del escenario del Exploit Para realizar un exploit a una institución financiera vulnerable, un actor malicioso puede hacer lo siguiente: -1. El actor malicioso envía una transacción de Pago a la institución. Esta transacción tiene un campo `Amount` grande y tiene el flag de **`tfPartialPayment`** activado. +1. El actor malicioso envía una transacción de Pago a la institución. Esta transacción tiene un campo `Amount` grande y tiene el flag de **`tfPartialPayment`** activado. 2. El pago parcial tiene éxito (código de resultado `tesSUCCESS`) pero en realidad entrega una cantidad muy pequeña de la divisa especificada. 3. La institución vulnerable lee el campo `Amount` sin mirar el campo `Flags` o el campo de metadatos `delivered_amount`. 4. La institutución vulnerable acredita al actor malicioso en un sistema externo, como el propio ledger de la institución, por el `Amount` completo, a pesar de recibir solo un `delivered_amount` pequeño en el XRP Ledger. 5. El actor malicioso retira tanto saldo como sea posible antes de que la institución vulnerable note la discrepancia. - - Los actores maliciosos suelen preferir convertir el saldo a otra criptomoneda como Bitcoin, porque las transacciones de blockchain suelen ser irreversibles. Con un retiro a un sistema de moneda fiduciaria, la institución financiera podría revertir o cancelar la transacción varios días después de que se ejecute inicialmente. - - En el caso de un exchange, el actor malicioso también puede retirar un saldo de XRP directamente de nuevo al XRP Ledger. + - Los actores maliciosos suelen preferir convertir el saldo a otra criptomoneda como Bitcoin, porque las transacciones de blockchain suelen ser irreversibles. Con un retiro a un sistema de moneda fiduciaria, la institución financiera podría revertir o cancelar la transacción varios días después de que se ejecute inicialmente. + - En el caso de un exchange, el actor malicioso también puede retirar un saldo de XRP directamente de nuevo al XRP Ledger. En el caso de un comerciante, el orden de las operaciones es ligeramente diferente, pero el concepto es el mismo: @@ -119,22 +119,21 @@ Utilizar [el campo `delivered_amount`](#the-delivered_amount-field) al procesar - Añade chequeos adicionales a la lógica de tu negocio para procesar los retiros. Nunca proceses un retiro si el balance total que tienes en el XRP Ledger no coincide con tus activos y obligaciones esperados. - Sigue las directrices "Know Your Customer" y verifica estrictamente las identidades de tus clientes. Puede que reconozcas y bloquees usuarios maliciosos de antemano, o emprender acciones legales contra el actor malicioso que genera exploits a tu sistema. - ## Ver también - **Herramientas:** - - [Remitente de la transacción](/resources/dev-tools/tx-sender) + - [Remitente de la transacción](/resources/dev-tools/tx-sender) - **Conceptos:** - - [Transacciones](../transactions/index.md) + - [Transacciones](../transactions/index.md) - **Tutoriales:** - - [Buscar resultados de transacciones](../transactions/finality-of-results/look-up-transaction-results.md) - - [Monitorear pagos recibidos con WebSocket](../../tutorials/http-websocket-apis/build-apps/monitor-incoming-payments-with-websocket.md) - - [Usar tipos de pagos especializados](../../tutorials/how-tos/use-specialized-payment-types/index.md) - - [Listar XRP en un Exchange](../../use-cases/defi/list-xrp-as-an-exchange.md) + - [Buscar resultados de transacciones](../transactions/finality-of-results/look-up-transaction-results.md) + - [Monitorear pagos recibidos con WebSocket](../../tutorials/http-websocket-apis/build-apps/monitor-incoming-payments-with-websocket.md) + - [Usar tipos de pagos especializados](../../tutorials/how-tos/use-specialized-payment-types/index.md) + - [Listar XRP en un Exchange](../../use-cases/defi/list-xrp-as-an-exchange.md) - **Referencias:** - - [Transacción de Pago][] - - [Metadatos de transacción](../../references/protocol/transactions/metadata.md) - - [método account_tx][] - - [método tx][] + - [Transacción de Pago][] + - [Metadatos de transacción](../../references/protocol/transactions/metadata.md) + - [método account_tx][] + - [método tx][] {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/@l10n/es-ES/docs/concepts/payment-types/payment-channels.md b/@l10n/es-ES/docs/concepts/payment-types/payment-channels.md index b55523560a..cea9067993 100644 --- a/@l10n/es-ES/docs/concepts/payment-types/payment-channels.md +++ b/@l10n/es-ES/docs/concepts/payment-types/payment-channels.md @@ -2,11 +2,12 @@ html: payment-channels.html parent: payment-types.html seo: - description: Los canales de pago que activan pagos XRP asíncronos rápidos que pueden dividirse en incrementos muy pequeños y liquidarse más después. + description: Los canales de pago que activan pagos XRP asíncronos rápidos que pueden dividirse en incrementos muy pequeños y liquidarse más después. labels: - Canales de pago - Smart Contracts --- + # Canales de pago Los Canales de Pago son una función avanzada para enviar pagos de XRP "asíncronos" que pueden dividirse en incrementos muy pequeños y liquidarse más tarde. @@ -15,7 +16,6 @@ El XRP para un canal de pago se reserva temporalmente. El remitente crea reclama Debido a que las reclamaciones pueden verificarse individualmente pero liquidarse en bloque más adelante, los canales de pago hacen posible realizar transacciones a una velocidad limitada solo por la capacidad de los participantes para crear y verificar las firmas digitales de esas Reclamaciones. Este límite se basa principalmente en la velocidad del hardware de los participantes y la complejidad de los algoritmos de firma. Para obtener la máxima velocidad, utiliza firmas Ed25519, que son más rápidas que las firmas ECDSA secp256k1 predeterminadas del XRP Ledger. La investigación ha [demostrado la capacidad de crear más de 100.000 firmas Ed25519 por segundo y verificar más de 70.000 por segundo](https://ed25519.cr.yp.to/ed25519-20110926.pdf) en hardware estándar en 2011. - ## ¿Por qué usar canales de pago? El proceso de usar un canal de pago siempre implica dos partes, un pagador y un beneficiario. El pagador es una persona o institución que utiliza el XRP Ledger y es cliente del beneficiario. El beneficiario es una persona o empresa que recibe XRP como pago por bienes o servicios. @@ -26,27 +26,25 @@ Los Canales de Pago no especifican intrínsecamente nada sobre lo que puedes com - Cosas baratas, donde el coste de procesar una transacción es una parte no trivial del precio - Cosas que normalmente se compran en bloque, donde la cantidad exacta deseada no se conoce de antemano - ## Ciclo de vida de un canal de pago El siguiente diagrama resume el ciclo de vida de un canal de pago: -[{% inline-svg file="/docs/img/paychan-flow.svg" /%}](/docs/img/paychan-flow.svg "Diagrama de flujo de un canal de pago") - +[{% inline-svg file="/docs/img/paychan-flow.svg" /%}](/docs/img/paychan-flow.svg 'Diagrama de flujo de un canal de pago') ## Ver también - **Conceptos relacionados:** - - [Escrow](escrow.md), una función similar para pagos XRP condicionales de mayor valor y menor velocidad. + - [Escrow](escrow.md), una función similar para pagos XRP condicionales de mayor valor y menor velocidad. - **Tutoriales y casos de uso:** - - [Utilizar canales de pago](../../tutorials/how-tos/use-specialized-payment-types/use-payment-channels/index.md), un tutorial que guía a través del proceso de utilizar un canal de pago. - - [Abrir un canal de pago para activar una red de intercambio](../../tutorials/how-tos/use-specialized-payment-types/use-payment-channels/open-a-payment-channel-to-enable-an-inter-exchange-network.md) + - [Utilizar canales de pago](../../tutorials/how-tos/use-specialized-payment-types/use-payment-channels/index.md), un tutorial que guía a través del proceso de utilizar un canal de pago. + - [Abrir un canal de pago para activar una red de intercambio](../../tutorials/how-tos/use-specialized-payment-types/use-payment-channels/open-a-payment-channel-to-enable-an-inter-exchange-network.md) - **Referencias:** - - [Método channel_authorize][] - - [Método channel_verify][] - - [Objeto PayChannel](../../references/protocol/ledger-data/ledger-entry-types/paychannel.md) - - [Transacción PaymentChannelClaim][] - - [Transacción PaymentChannelCreate][] - - [Transacción PaymentChannelFund][] + - [Método channel_authorize][] + - [Método channel_verify][] + - [Objeto PayChannel](../../references/protocol/ledger-data/ledger-entry-types/paychannel.md) + - [Transacción PaymentChannelClaim][] + - [Transacción PaymentChannelCreate][] + - [Transacción PaymentChannelFund][] {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/@l10n/es-ES/docs/concepts/payment-types/robustly-monitoring-for-payments.md b/@l10n/es-ES/docs/concepts/payment-types/robustly-monitoring-for-payments.md index 110e9bcb6e..fad21cedcc 100644 --- a/@l10n/es-ES/docs/concepts/payment-types/robustly-monitoring-for-payments.md +++ b/@l10n/es-ES/docs/concepts/payment-types/robustly-monitoring-for-payments.md @@ -2,26 +2,27 @@ html: robustly-monitoring-for-payments.html parent: payment-types.html seo: - description: Recomendaciones para monitorizar pagos entrantes de una variedad e posibles irregularidades. + description: Recomendaciones para monitorizar pagos entrantes de una variedad e posibles irregularidades. labels: - Tokens --- + # Monitoreo robusto de pagos Para verificar robustamente los pagos entrantes, los emisores deberían hacer lo siguiente: -* Mantener un registro de la transacción y el ledger más recientemente procesados. De esta manera, si pierdes temporalmente la conectividad, sabrás hasta dónde retroceder. -* Verificar el código de resultado de cada pago entrante. Algunos pagos ingresan al ledger para cobrar una tarifa contra el spam, incluso si fallan. Solo las transacciones con el código de resultado `tesSUCCESS` pueden cambiar saldos que no sean de XRP. Solo las transacciones de un ledger validado son definitivas. -* Mirar los [pagos parciales](partial-payments.md). Los pagos con el flag de pago parcial activado pueden ser condierados "exitosos" si se entrega cualquier cantidad distinta a cero, incluso cantidades minúsculas. - * Comprobar la transacción en busca del [campo `delivered_amount`](partial-payments.md#el-campo-delivered_amount). Si está presente, el campo indica cuanto dinero _realmente_ se envió a la dirección `Destination`. - * En xrpl.js, puedes usar el [método `xrpl.getBalanceChanges()`](https://js.xrpl.org/modules.html#getBalanceChanges) para ver cuánto recibió cada dirección. En algunos casos, esto puede dividirse en varias partes en diferentes líneas de confianza (trustlines). -* Algunas transacciones cambian tus balances sin ser pagos directos hacia o desde una de tus direcciones. +- Mantener un registro de la transacción y el ledger más recientemente procesados. De esta manera, si pierdes temporalmente la conectividad, sabrás hasta dónde retroceder. +- Verificar el código de resultado de cada pago entrante. Algunos pagos ingresan al ledger para cobrar una tarifa contra el spam, incluso si fallan. Solo las transacciones con el código de resultado `tesSUCCESS` pueden cambiar saldos que no sean de XRP. Solo las transacciones de un ledger validado son definitivas. +- Mirar los [pagos parciales](partial-payments.md). Los pagos con el flag de pago parcial activado pueden ser condierados "exitosos" si se entrega cualquier cantidad distinta a cero, incluso cantidades minúsculas. + - Comprobar la transacción en busca del [campo `delivered_amount`](partial-payments.md#el-campo-delivered_amount). Si está presente, el campo indica cuanto dinero _realmente_ se envió a la dirección `Destination`. + - En xrpl.js, puedes usar el [método `xrpl.getBalanceChanges()`](https://js.xrpl.org/modules.html#getBalanceChanges) para ver cuánto recibió cada dirección. En algunos casos, esto puede dividirse en varias partes en diferentes líneas de confianza (trustlines). +- Algunas transacciones cambian tus balances sin ser pagos directos hacia o desde una de tus direcciones. Para simplificar las cosas para tus clientes, te recomendamos aceptar pagos tanto en tu dirección operacional como en tus direcciones de emisoras. Como precaución adicional, te recomendamos comparar los balances de tus direcciones emisoras con los fondos de garantía en tu sistema de contabilidad interna en cada nueva versión del ledger del XRP Ledger. Los saldos negativos de la dirección emisora deben coincidir con los activos que has asignado al XRP Ledger fuera de la red. Si ambos no coinciden, deberías suspender el procesamiento de pagos hacia y desde el XRP Ledger hasta que hayas resuelto la discrepancia. -* Utiliza el método `gateway_balances` para comprobar tus balances. -* Si tienes un coste de transferencia (transfer fee) establecido, entonces tus obligaciones dentro del XRP Ledger disminuyen ligeramente cada vez que otras direcciones del XRP Ledger transfieran tus tokens entre sí. +- Utiliza el método `gateway_balances` para comprobar tus balances. +- Si tienes un coste de transferencia (transfer fee) establecido, entonces tus obligaciones dentro del XRP Ledger disminuyen ligeramente cada vez que otras direcciones del XRP Ledger transfieran tus tokens entre sí. Para más detalles en cómo se leen los detalles de transacciones entrantes, visita [Buscar resultados de transacciones](../transactions/finality-of-results/look-up-transaction-results.md). diff --git a/@l10n/es-ES/docs/concepts/payment-types/sending-payments-to-customers.md b/@l10n/es-ES/docs/concepts/payment-types/sending-payments-to-customers.md index 453abbf78f..48b026f602 100644 --- a/@l10n/es-ES/docs/concepts/payment-types/sending-payments-to-customers.md +++ b/@l10n/es-ES/docs/concepts/payment-types/sending-payments-to-customers.md @@ -2,10 +2,11 @@ html: sending-payments-to-customers.html parent: payment-types.html seo: - description: Construye los pagos con cuidado para frustrar a los actores maliciosos. + description: Construye los pagos con cuidado para frustrar a los actores maliciosos. labels: - Tokens --- + # Enviar pagos a clientes Cuando construyes un sistema automatizado para enviar pagos al XRP Ledger para tus clientes, debes asegurarte de que construyes los pagos cuidadosamente. Los actores maliciosos están constantemente tratando de encontrar formas de engañar a un sistema para que les pague más dinero del que debería. diff --git a/@l10n/es-ES/docs/concepts/tokens/decentralized-exchange/autobridging.md b/@l10n/es-ES/docs/concepts/tokens/decentralized-exchange/autobridging.md index 79ba7e1de0..10c3f7411e 100644 --- a/@l10n/es-ES/docs/concepts/tokens/decentralized-exchange/autobridging.md +++ b/@l10n/es-ES/docs/concepts/tokens/decentralized-exchange/autobridging.md @@ -2,14 +2,15 @@ html: autobridging.html parent: decentralized-exchange.html seo: - description: El puente automático conecta automáticamente los libros de órdenes utilizando XRP como intermediario cuando reduce los costes. + description: El puente automático conecta automáticamente los libros de órdenes utilizando XRP como intermediario cuando reduce los costes. labels: - XRP - Exchange Descentralizado --- + # Puente automático -Cualquier [Oferta](offers.md) en el [exchange descentralizado](index.md) del XRP Ledger que intercambie dos tokens podría potencialmente utilizar XRP como moneda intermediaria en un libro de órdenes sintético. Esto se debe al _puente automático_, que sirve para mejorar la liquidez en todos los pares de activos utilizando XRP cuando es más barato que intercambiar directamente. Esto funciona debido a la naturaleza de XRP como criptomoneda nativa del XRP Ledger. La ejecución de la oferta puede utilizar una combinación de ofertas directas y ofertas auto-puenteadas para lograr la mejor tasa de cambio total. +Cualquier [Oferta](offers.md) en el [exchange descentralizado](index.md) del XRP Ledger que intercambie dos tokens podría potencialmente utilizar XRP como moneda intermediaria en un libro de órdenes sintético. Esto se debe al _puente automático_, que sirve para mejorar la liquidez en todos los pares de activos utilizando XRP cuando es más barato que intercambiar directamente. Esto funciona debido a la naturaleza de XRP como criptomoneda nativa del XRP Ledger. La ejecución de la oferta puede utilizar una combinación de ofertas directas y ofertas auto-puenteadas para lograr la mejor tasa de cambio total. Ejemplo: _Anita crea una oferta para vender GBP y comprar BRL. Ella podría encontrar que este mercado poco común tiene pocas ofertas. Hay una oferta con una buena tasa, pero tiene una cantidad insuficiente para satisfacer el intercambio de Anita. Sin embargo, tanto GBP como BRL tienen mercados activos y competitivos para XRP. El sistema de puente automático del XRP Ledger encuentra una forma de completar la oferta de Anita comprando XRP con GBP de un trader, luego vendiendo el XRP a otro trader para comprar BRL. Anita obtiene automáticamente la mejor tasa posible combinando la pequeña oferta en el mercado directo de GBP:BRL con las mejores tasas compuestas creadas emparejando las ofertas GBP:XRP y XRP:BRL._ diff --git a/@l10n/es-ES/docs/concepts/tokens/decentralized-exchange/automated-market-makers.md b/@l10n/es-ES/docs/concepts/tokens/decentralized-exchange/automated-market-makers.md index 5adf0ada89..f8b2e21093 100644 --- a/@l10n/es-ES/docs/concepts/tokens/decentralized-exchange/automated-market-makers.md +++ b/@l10n/es-ES/docs/concepts/tokens/decentralized-exchange/automated-market-makers.md @@ -2,13 +2,14 @@ html: automated-market-makers.html parent: decentralized-exchange.html seo: - title: ¿Qué es un Automated Market Maker (AMM)? - description: Los Automated Market Makers (AMMs) son una parte esencial de las criptomonedas, proveen liquidez entre dos pares de activos. Aprende más sobre AMMs y el XRP Ledger. + title: ¿Qué es un Automated Market Maker (AMM)? + description: Los Automated Market Makers (AMMs) son una parte esencial de las criptomonedas, proveen liquidez entre dos pares de activos. Aprende más sobre AMMs y el XRP Ledger. labels: - XRP - Exchange Descentralizado - AMM --- + # ¿Qué es un Automated Market Maker (AMM)? _(Requiere la [enmienda AMM][] XLS-30)_ @@ -43,9 +44,10 @@ Para evitar el mal uso, se aplican algunas restricciones a los activos utilizado - Si el activo es un token cuyo emisor utiliza [Authorized Trust Lines](../fungible-tokens/authorized-trust-lines.md), el creador del AMM debe estar autorizado para poseer esos tokens. Solo los usuarios cuyas líneas de confianza (trustlines) estén autorizadas pueden depositar ese token en el AMM o retirarlo; sin embargo, los usuarios aún pueden depositar o retirar el otro activo. - Si la [enmienda Clawback][] está habilitada, el emisor del token no debe haber habilitado la capacidad de recuperar sus tokens. - ## Tokens LP + + Quien crea el AMM se convierte en el primer proveedor de liquidez y recibe Tokens LP que representan el 100% de la propiedad de los activos en el pool del AMM. Pueden canjear algunos o todos esos Tokens LP para retirar activos del AMM en proporción a las cantidades actualmente allí. (Las proporciones cambian con el tiempo a medida que las personas comercian contra el AMM). El AMM no cobra una tarifa al retirar ambos activos. Por ejemplo, si creaste un AMM con 5 ETH y 5 USD, y luego alguien cambió 1.26 USD por 1 ETH, el pool ahora tiene 4 ETH y 6.26 USD en él. Puedes gastar la mitad de tus Tokens LP para retirar 2 ETH y 3.13 USD. @@ -60,7 +62,6 @@ El AMM está diseñado de manera que el pool de activos de un AMM esté vacío s Los Tokens LP utilizan un tipo especial de código de moneda en el formato hexadecimal de 160 bits ["no estándar"](../../../references/protocol/data-types/currency-formats.md#nonstandard-currency-codes). Estos códigos tienen los primeros 8 bits `0x03`. El resto del código es un hash SHA-512, truncado a los primeros 152 bits, de los códigos de moneda de los dos activos y sus emisores. (Los activos se colocan en un "orden canónico" con el par de moneda+emisor numéricamente inferior primero). Como resultado, los Tokens LP para un par de activos dado de un AMM tienen un código de moneda predecible y consistente. - ## Tarifas de intercambio Las tarifas de intercambio son una fuente de ingresos pasivos para los proveedores de liquidez, y compensan el riesgo cambiario de permitir que otros intercambien activos del pool. Las tarifas de intercambio se pagan al AMM, no directamente a los proveedores de liquidez, pero estos se benefician porque sus Tokens LP se pueden canjear por un porcentaje del pool del AMM. @@ -75,7 +76,6 @@ A diferencia de cualquier Automated Market Maker anterior, el diseño de AMM del Con cualquier AMM, cuando el precio de sus activos cambia significativamente en los mercados externos, los traders pueden usar arbitraje para obtener beneficios del AMM, lo que resulta en una pérdida para los proveedores de liquidez. El mecanismo de subasta tiene como objetivo devolver más de ese valor a los proveedores de liquidez y llevar los precios del AMM más rápidamente de vuelta al equilibrio con los mercados externos. - ## Representación en el Ledger En los datos de estado del ledger, un AMM consiste en múltiples [entradas de ledger](../../../references/protocol/ledger-data/ledger-entry-types/index.md): @@ -84,13 +84,12 @@ En los datos de estado del ledger, un AMM consiste en múltiples [entradas de le - Una [entrada AccountRoot][] especial que emite Tokens LP del AMM, y tiene XRP del AMM (si lo tiene). - La dirección de esta AccountRoot se elige de forma algo aleatoria cuando se crea el AMM, y es diferente si el AMM se elimina y se vuelve a crear. Esto puede prevenir que las personas financien la cuenta AMM con XRP excesivo por adelantado. + La dirección de esta AccountRoot se elige de forma algo aleatoria cuando se crea el AMM, y es diferente si el AMM se elimina y se vuelve a crear. Esto puede prevenir que las personas financien la cuenta AMM con XRP excesivo por adelantado. - Las [Trust lines](../fungible-tokens/index.md) a la cuenta especial AMM para los tokens en el pool del AMM. Estas entradas de ledger no son propiedad de ninguna cuenta, por lo que el [requisito de reserva](../../accounts/reserves.md) no se aplica a ellas. Sin embargo, para prevenir el spam, la transacción para crear un AMM tiene un [coste de transacción](../../transactions/transaction-cost.md) especial que requiere que el remitente queme una cantidad de XRP mayor de lo habitual. - ## Eliminación Un AMM se elimina cuando una [transacción AMMWithdraw][] retira todos los activos de su pool. Esto solo ocurre canjeando todos los Tokens LP pendientes del AMM. La eliminación del AMM incluye la eliminación de todas las entradas del ledger asociadas con él, como: @@ -102,7 +101,7 @@ Un AMM se elimina cuando una [transacción AMMWithdraw][] retira todos los activ Si hay más de 512 trust lines enlazadas a la cuenta del AMM cuando se eliminase, el proceso de retiro tiene éxito y elimina tantas trust lines como puede, pero deja el AMM en el ledger sin activos en su pool. -Mientras un AMM no tenga activos en su pool, cualquiera puede eliminarlo enviando una [transacción AMMDelete][]; si el número restante de líneas de confianza sigue siendo mayor que el límite, pueden ser necesarias múltiples transacciones AMMDelete para eliminar completamente el AMM. Alternativamente, cualquier persona puede realizar un [depósito especial](../../../references/protocol/transactions/types/ammdeposit.md#empty-amm-special-case) para financiar el AMM como si fuera nuevo. +Mientras un AMM no tenga activos en su pool, cualquiera puede eliminarlo enviando una [transacción AMMDelete][]; si el número restante de líneas de confianza sigue siendo mayor que el límite, pueden ser necesarias múltiples transacciones AMMDelete para eliminar completamente el AMM. Alternativamente, cualquier persona puede realizar un [depósito especial](../../../references/protocol/transactions/types/ammdeposit.md#empty-amm-special-case) para financiar el AMM como si fuera nuevo. No hay reembolso o incentivo para eliminar un AMM vacío. diff --git a/@l10n/es-ES/docs/concepts/tokens/decentralized-exchange/index.md b/@l10n/es-ES/docs/concepts/tokens/decentralized-exchange/index.md index 778b5d1a5f..8bd10aff5d 100644 --- a/@l10n/es-ES/docs/concepts/tokens/decentralized-exchange/index.md +++ b/@l10n/es-ES/docs/concepts/tokens/decentralized-exchange/index.md @@ -4,10 +4,11 @@ parent: tokens.html metadata: indexPage: true seo: - description: El XRP Ledger contiene un exchange completamente funcional donde los usuarios pueden intercambiar tokens por XRP o entre sí. + description: El XRP Ledger contiene un exchange completamente funcional donde los usuarios pueden intercambiar tokens por XRP o entre sí. targets: - en --- + # Exchange descentralizado El XRP Ledger posiblemente tenga el _exchange descentralizado_ más antiguo del mundo (a veces abreviado como "DEX"), operando de manera continua desde el lanzamiento del XRP Ledger en 2012. Este exchange permite a los usuarios comprar y vender [tokens](../index.md) por XRP u otros tokens, con [costes](../../transactions/fees.md) mínimos cargados a la red misma (no pagados a ninguna parte). @@ -18,7 +19,7 @@ El XRP Ledger posiblemente tenga el _exchange descentralizado_ más antiguo del El exchange descentralizado del XRP Ledger consta de un número ilimitado de pares de divisas, rastreados según la demanda cuando los usuarios realizan intercambios. Un par de divisas puede consistir en XRP y un token o dos tokens diferentes; los tokens siempre se identifican por la combinación de un emisor y un código de moneda. Es posible comerciar entre dos tokens con el mismo código de moneda y diferentes emisores, o el mismo emisor y diferentes códigos de moneda. -Como con todos los cambios en el XRP Ledger, necesitas enviar una [transacción](../../transactions/index.md) para realizar un intercambio. Un intercambio en el XRP Ledger se conoce como Oferta u [Offer](offers.md). Una Oferta es efectivamente una [_Orden límite_](https://en.wikipedia.org/wiki/Order_(exchange)#Limit_order) para comprar o vender una cantidad específica de una moneda (XRP o un token) por una cantidad específica de otra. Cuando la red ejecuta una Oferta, si hay otras Ofertas coincidentes para el mismo par de divisas, estas se consumen comenzando con la mejor tasa de cambio primero. +Como con todos los cambios en el XRP Ledger, necesitas enviar una [transacción](../../transactions/index.md) para realizar un intercambio. Un intercambio en el XRP Ledger se conoce como Oferta u [Offer](offers.md). Una Oferta es efectivamente una [_Orden límite_]() para comprar o vender una cantidad específica de una moneda (XRP o un token) por una cantidad específica de otra. Cuando la red ejecuta una Oferta, si hay otras Ofertas coincidentes para el mismo par de divisas, estas se consumen comenzando con la mejor tasa de cambio primero. Una Oferta puede llenarse completamente o parcialmente; si no se llena completamente de inmediato, se convierte en un objeto de Oferta pasiva en el ledger para la cantidad restante. Más adelante, otras Ofertas o [pagos entre divisas](../../payment-types/cross-currency-payments.md) pueden coincidir y consumir la Oferta. Debido a esto, las Ofertas pueden ejecutarse a un mejor precio que el solicitado inicialmente, o exactamente al tipo de cambio indicado más tarde (excepto por diferencias menores para tener en cuenta el redondeo). @@ -28,23 +29,22 @@ Al comerciar con dos tokens, el [puente automático](autobridging.md) mejora las ### Ejemplo de intercambio -[{% inline-svg file="/docs/img/decentralized-exchange-example-trade.svg" /%}](/docs/img/decentralized-exchange-example-trade.svg "Diagrama: Oferta parcialmente completada para comprar un token con XRP.") +[{% inline-svg file="/docs/img/decentralized-exchange-example-trade.svg" /%}](/docs/img/decentralized-exchange-example-trade.svg 'Diagrama: Oferta parcialmente completada para comprar un token con XRP.') El diagrama anterior muestra un ejemplo de intercambio en el exchange descentralizado. En este ejemplo, un trader llamado Tran coloca una Oferta para comprar 100 tokens con el código de moneda FOO emitido por un negocio ficticio llamado WayGate. (Por brevedad, "FOO.WayGate" se refiere a estos tokens.) Tran especifica que está dispuesto a gastar hasta 1000 XRP en total. Cuando la transacción de Tran es procesada, ocurren las siguientes cosas: 1. La red calcula la tasa de cambio de la Oferta de Tran, dividiendo la cantidad a comprar por la cantidad a pagar. -0. La red encuentra el libro de órdenes para el reverso de la Oferta de Tran: en este caso, eso significa el libro de órdenes para vender FOO.WayGate y comprar XRP. Este libro de órdenes ya tiene varias Ofertas existentes de otros traders para diferentes cantidades y tasas de cambio. -0. La Oferta de Tran "consume" Ofertas coincidentes, comenzando con la mejor tasa de cambio y trabajando hacia abajo, hasta que la Oferta de Tran se haya llenado por completo o no haya más Ofertas cuya tasa de cambio sea igual o mejor que la tasa especificada en la Oferta de Tran. En este ejemplo, solo hay disponibles 22 FOO.WayGate a la tasa solicitada o mejor. Las Ofertas consumidas se eliminan del libro de órdenes. -0. Tran recibe la cantidad de FOO.WayGate que el intercambio pudo adquirir, de los varios traders que previamente habían colocado órdenes para venderlo. Estos tokens van a la [trust line](../fungible-tokens/index.md) de Tran a WayGate para FOO. (Si Tran no tenía esa trust line previamente, se crea automáticamente una). -0. A cambio, esos traders reciben XRP de Tran de acuerdo con sus tasas de cambio declaradas. -0. La red calcula el resto de la Oferta de Tran: dado que la Oferta original era para comprar 100 FOO.WayGate y hasta ahora Tran ha recibido 22, el resto es de 78 FOO.WayGate. Usando la tasa de cambio original, eso significa que el resto de la Oferta de Tran ahora es comprar 78 FOO.WayGate por 780 XRP. -0. El "resto" resultante se coloca en el libro de órdenes para intercambios en la misma dirección que la de Tran: vendiendo XRP y comprando FOO.WayGate. +2. La red encuentra el libro de órdenes para el reverso de la Oferta de Tran: en este caso, eso significa el libro de órdenes para vender FOO.WayGate y comprar XRP. Este libro de órdenes ya tiene varias Ofertas existentes de otros traders para diferentes cantidades y tasas de cambio. +3. La Oferta de Tran "consume" Ofertas coincidentes, comenzando con la mejor tasa de cambio y trabajando hacia abajo, hasta que la Oferta de Tran se haya llenado por completo o no haya más Ofertas cuya tasa de cambio sea igual o mejor que la tasa especificada en la Oferta de Tran. En este ejemplo, solo hay disponibles 22 FOO.WayGate a la tasa solicitada o mejor. Las Ofertas consumidas se eliminan del libro de órdenes. +4. Tran recibe la cantidad de FOO.WayGate que el intercambio pudo adquirir, de los varios traders que previamente habían colocado órdenes para venderlo. Estos tokens van a la [trust line](../fungible-tokens/index.md) de Tran a WayGate para FOO. (Si Tran no tenía esa trust line previamente, se crea automáticamente una). +5. A cambio, esos traders reciben XRP de Tran de acuerdo con sus tasas de cambio declaradas. +6. La red calcula el resto de la Oferta de Tran: dado que la Oferta original era para comprar 100 FOO.WayGate y hasta ahora Tran ha recibido 22, el resto es de 78 FOO.WayGate. Usando la tasa de cambio original, eso significa que el resto de la Oferta de Tran ahora es comprar 78 FOO.WayGate por 780 XRP. +7. El "resto" resultante se coloca en el libro de órdenes para intercambios en la misma dirección que la de Tran: vendiendo XRP y comprando FOO.WayGate. Las transacciones posteriores, incluidas aquellas ejecutadas inmediatamente después de las de Tran en el _mismo_ ledger, utilizan los libros de órdenes actualizados para sus intercambios, por lo que pueden consumir parte o toda la Oferta de Tran hasta que se llene por completo o Tran la cancele. **Nota**: El orden canónico en el que las transacciones se ejecutan cuando se cierra y valida un ledger no es el mismo que el orden en el que se enviaron esas transacciones. Cuando varias transacciones afectan al mismo libro de órdenes en el mismo ledger, los resultados finales de esas transacciones pueden ser muy diferentes a los resultados tentativos calculados en el momento del envío de la transacción. Para obtener más detalles sobre cuándo los resultados de las transacciones son o no finales, consulta [Finalidad de resultados](../../transactions/finality-of-results/index.md). - ## Limitaciones El exchange descentralizado está diseñado con las siguientes limitaciones: @@ -58,17 +58,16 @@ Como sistema descentralizado, el XRP Ledger no tiene información sobre las pers ## Ver también - **Conceptos:** - - Ver [Ofetas](offers.md) para obtener detalles sobre cómo funcionan los intercambios en el XRP Ledger. - - Ver [Tokens](../index.md) para obtener una descripción general de cómo se pueden representar diversos tipos de valor en el XRP Ledger. + - Ver [Ofetas](offers.md) para obtener detalles sobre cómo funcionan los intercambios en el XRP Ledger. + - Ver [Tokens](../index.md) para obtener una descripción general de cómo se pueden representar diversos tipos de valor en el XRP Ledger. - **Referencias:** - - [método account_offers][] para buscar Ofertas creadas por una cuenta - - [método book_offers][] para buscar Ofertas de compra o venta según un par de divisas dado - - [transacción OfferCreate][] para crear una Oferta nueva o reemplazar una Oferta existente - - [transacción OfferCancel][] para cancelar una Oferta existente - - [objeto Offer][] para la estructura de datos de las Ofertas pasivas en el ledger - - [objeto DirectoryNode][] para la estructura de datos que sigue todas las Ofertas para un par de divisas y tarifa de intercambio dados. + - [método account_offers][] para buscar Ofertas creadas por una cuenta + - [método book_offers][] para buscar Ofertas de compra o venta según un par de divisas dado + - [transacción OfferCreate][] para crear una Oferta nueva o reemplazar una Oferta existente + - [transacción OfferCancel][] para cancelar una Oferta existente + - [objeto Offer][] para la estructura de datos de las Ofertas pasivas en el ledger + - [objeto DirectoryNode][] para la estructura de datos que sigue todas las Ofertas para un par de divisas y tarifa de intercambio dados. {% raw-partial file="/docs/_snippets/common-links.md" /%} - {% child-pages /%} diff --git a/@l10n/es-ES/docs/concepts/tokens/decentralized-exchange/offers.md b/@l10n/es-ES/docs/concepts/tokens/decentralized-exchange/offers.md index 3b00dfb497..ef1320a013 100644 --- a/@l10n/es-ES/docs/concepts/tokens/decentralized-exchange/offers.md +++ b/@l10n/es-ES/docs/concepts/tokens/decentralized-exchange/offers.md @@ -2,10 +2,11 @@ html: offers.html parent: decentralized-exchange.html seo: - description: Las ofertas son la forma de órdenes de comercio de divisas del XRP Ledger. Comprende su ciclo de vida y propiedades. + description: Las ofertas son la forma de órdenes de comercio de divisas del XRP Ledger. Comprende su ciclo de vida y propiedades. labels: - Exchange Descentralizado --- + # Ofertas En el [exchange descentralizado](index.md) del XRP Ledger, las órdenes de intercambio se llaman "Ofertas". Las Ofertas pueden intercambiar XRP con [tokens](../index.md), o tokens por otros tokens, incluyendo tokens con el mismo código de moneda pero diferentes emisores. (Los tokens con el mismo código pero diferentes emisores también a veces pueden intercambiarse a través de [rippling](../fungible-tokens/rippling.md).) @@ -29,7 +30,6 @@ Mientras tengas una Oferta en el ledger, se aparta parte de tu XRP hacia la [res - Una Oferta **Completar o Cancelar** no se coloca en el ledger, _y_ se cancela si la cantidad total no se completa cuando se ejecuta inicialmente. Esto es similar a "Inmediata o Cancelar", excepto que _no puede_ completarse parcialmente. - Una Oferta **Pasiva** no consume Ofertas coincidentes que tengan el mismo tipo de cambio (en la otra dirección), y en su lugar se coloca directamente en el ledger. Puedes usar esto para crear un peg exacto entre dos activos. Las Ofertas Pasivas aún consumen otras Ofertas que tienen un tipo de cambio _mejor_ en la otra dirección. - ### Requisitos de financiación Cuando intentas realizar una Oferta, la transacción se rechaza como "no financiada" si no tienes al menos parte del activo que la operación vendería. Más específicamente: @@ -50,11 +50,11 @@ Si colocas una Oferta que cruza alguna de tus propias Ofertas que existen en el Es posible que una Oferta se vuelva temporal o permanentemente _no financiada_ en los siguientes casos: - Si el propietario ya no tiene ningún activo de venta. - - La Oferta se vuelve financiada nuevamente cuando el propietario obtiene más de ese activo. + - La Oferta se vuelve financiada nuevamente cuando el propietario obtiene más de ese activo. - Si el activo en venta es un token en una [trust line congelada](../fungible-tokens/freezes.md). - - La Oferta se vuelve financiada nuevamente cuando la trust line ya no está congelada. + - La Oferta se vuelve financiada nuevamente cuando la trust line ya no está congelada. - Si la Oferta necesita crear una nueva trust line, pero el dueño no tiene suficiente XRP para el aumento de la [reserva](../../accounts/reserves.md). (Ver [Ofertas y confianza](#offers-and-trust).) - - La oferta vuelve a estar financiada cuando el propietario obtiene más XRP, o los requisitos de reserva disminuyen. + - La oferta vuelve a estar financiada cuando el propietario obtiene más XRP, o los requisitos de reserva disminuyen. - Si la Oferta ha expirado. (Ver [Expiración de ofertas](#offer-expiration).) Una Oferta no financiada permanece en el ledger hasta que una transacción la elimine. Las formas en que una Oferta puede ser eliminada del ledger incluyen: @@ -63,7 +63,7 @@ Una Oferta no financiada permanece en el ledger hasta que una transacción la el - El propietario cancela explicitamente la Oferta. - El propietario cancela implícitamente la Oferta enviando una nueva Oferta que la cruza. - La Oferta es encontrada sin financiar o expirada durante el procesamiento de la transacción. Normalmente esto significa que otra Oferta intentó consumirla y no pudo hacerlo. - - Esto incluye casos donde la cantidad restante puede ser pagada mediante la Oferta redondeada a cero. + - Esto incluye casos donde la cantidad restante puede ser pagada mediante la Oferta redondeada a cero. ### Seguimiento de ofertas no financiadas @@ -71,7 +71,6 @@ Seguir el estado de financiación de todas las Ofertas puede ser computacionalme Una aplicación de cliente puede seguir localmente el estado de financiación de las Ofertas. Para hacerlo, primero recupera un libro de órdenes utilizando el [método book_offers][] y verifica el campo `taker_gets_funded` de las Ofertas. Luego, [suscríbete](../../../references/http-websocket-apis/public-api-methods/subscription-methods/subscribe.md) al flujo de `transactions` y observa los metadatos de transacción para ver qué Ofertas se modifican. - ## Ofertas y confianza Los valores límite de las [trust lines](../fungible-tokens/index.md) no afectan a las Ofertas. En otras palabras, puedes usar una Oferta para adquirir más de la cantidad máxima en la que confías en un emisor. @@ -80,13 +79,11 @@ Sin embargo, mantener tokens aún requiere una trust line con el emisor. Cuando Los límites de la trust line te protegen de recibir más de un token como pago de lo que deseas. Las Ofertas pueden superar esos límites porque son una declaración explícita de cuánto del token deseas. - ## Preferencia de Oferta Las Ofertas existentes se agrupan por tipo de cambio, que se mide como la relación entre `TakerGets` y `TakerPays`. Las Ofertas con un tipo de cambio más alto se toman preferentemente. (Es decir, la persona que acepta la oferta recibe tanto como sea posible por la cantidad de moneda que paga). Las Ofertas con el mismo tipo de cambio se toman en función de cuál se colocó primero. -Cuando las Ofertas se ejecutan en el mismo bloque del ledger, el orden en que se ejecutan se determina por el [orden canónico](https://github.com/XRPLF/rippled/blob/release/src/ripple/app/misc/CanonicalTXSet.cpp "Código fuente: Ordenación de transacciones") en el que las transacciones fueron [aplicadas en el ledger](https://github.com/XRPLF/rippled/blob/5425a90f160711e46b2c1f1c93d68e5941e4bfb6/src/ripple/app/consensus/LedgerConsensus.cpp#L1435-L1538 "Código fuente: Aplicando transacciones"). Este comportamiento está diseñado para ser determinista, eficiente y difícil de manipular. - +Cuando las Ofertas se ejecutan en el mismo bloque del ledger, el orden en que se ejecutan se determina por el [orden canónico](https://github.com/XRPLF/rippled/blob/release/src/ripple/app/misc/CanonicalTXSet.cpp 'Código fuente: Ordenación de transacciones') en el que las transacciones fueron [aplicadas en el ledger](https://github.com/XRPLF/rippled/blob/5425a90f160711e46b2c1f1c93d68e5941e4bfb6/src/ripple/app/consensus/LedgerConsensus.cpp#L1435-L1538 'Código fuente: Aplicando transacciones'). Este comportamiento está diseñado para ser determinista, eficiente y difícil de manipular. ## Caducidad de la oferta @@ -98,17 +95,16 @@ Esto es una consecuencia de cómo la red alcanza un acuerdo. Para que toda la re **Nota:** Las Ofertas caducadas permanecen en los datos del ledger hasta que una transacción las elimine. Hasta entonces, pueden continuar apareciendo en los datos recuperados a través de la API (por ejemplo, utilizando el [método ledger_entry][]). Las transacciones eliminan automáticamente cualquier Oferta caducada y no financiada que encuentren, generalmente mientras ejecutan Ofertas o pagos de monedas cruzadas que las hubieran igualado o cancelado. La reserva del propietario asociada con una Oferta solo vuelve a estar disponible cuando la Oferta se elimina realmente. - ## Ver también - **Conceptos:** - - [Tokens](../index.md) - - [Paths](../fungible-tokens/paths.md) + - [Tokens](../index.md) + - [Paths](../fungible-tokens/paths.md) - **Referencias:** - - [método account_offers][] - - [método book_offers][] - - [transacción OfferCreate][] - - [transacción OfferCancel][] - - [Objeto Offer](../../../references/protocol/ledger-data/ledger-entry-types/offer.md) + - [método account_offers][] + - [método book_offers][] + - [transacción OfferCreate][] + - [transacción OfferCancel][] + - [Objeto Offer](../../../references/protocol/ledger-data/ledger-entry-types/offer.md) {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/@l10n/es-ES/docs/concepts/tokens/decentralized-exchange/ticksize.md b/@l10n/es-ES/docs/concepts/tokens/decentralized-exchange/ticksize.md index f993936a12..75c1291ace 100644 --- a/@l10n/es-ES/docs/concepts/tokens/decentralized-exchange/ticksize.md +++ b/@l10n/es-ES/docs/concepts/tokens/decentralized-exchange/ticksize.md @@ -2,11 +2,12 @@ html: ticksize.html parent: decentralized-exchange.html seo: - description: Los emisores pueden establecer tamaños de ticks personalizados para las monedas para reducir la rotación de libros de pedidos por diferencias minúsculas en los tipos de cambio. + description: Los emisores pueden establecer tamaños de ticks personalizados para las monedas para reducir la rotación de libros de pedidos por diferencias minúsculas en los tipos de cambio. labels: - Exchange Descentralizado - Tokens --- + # Tamaño de Tick Cuando se coloca una Oferta en un libro de órdenes, su tasa de cambio se trunca en base a los valores de `TickSize` establecidos por los emisores de las monedas involucradas en la Oferta. Cuando se negocia XRP y un token, se aplica el `TickSize` del emisor del token. Cuando se negocian dos tokens, la Oferta utiliza el valor de `TickSize` más pequeño (es decir, el que tiene menos dígitos significativos). Si ninguno de los tokens tiene un `TickSize` establecido, se aplica el comportamiento predeterminado. @@ -21,8 +22,8 @@ Cuando un emisor habilita, deshabilita o cambia el `TickSize`, las Ofertas que s - [Dev Blog: Introducción a la enmienda TickSize](https://xrpl.org/blog/2017/ticksize-voting.html#ticksize-amendment-overview) - **Referencias:** - - [transacción AccountSet][] - - [método book_offers][] - - [transacción OfferCreate][] + - [transacción AccountSet][] + - [método book_offers][] + - [transacción OfferCreate][] {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/@l10n/es-ES/docs/introduction/crypto-wallets.md b/@l10n/es-ES/docs/introduction/crypto-wallets.md index 3c5948295f..098207fadf 100644 --- a/@l10n/es-ES/docs/introduction/crypto-wallets.md +++ b/@l10n/es-ES/docs/introduction/crypto-wallets.md @@ -2,15 +2,15 @@ html: crypto-wallets.html parent: intro-to-xrpl.html seo: - description: Las carteras brindan una forma conveniente de administrar tu XRP en el XRP Ledger. + description: Las carteras brindan una forma conveniente de administrar tu XRP en el XRP Ledger. labels: - Blockchain --- + # Carteras cripto Las carteras cripto brindan una forma de administrar tu cuenta y tus fondos en el XRP Ledger. Hay muchas carteras para elegir. Al final, elegir la cartera adecuada se reduce a tus necesidades y a tus gustos al trabajar con XRP. - ## Carteras con custodia vs carteras sin custodia Un factor importante cuando se elige una cartera es si se desea que sea una cartera con custodia o sin custodia. @@ -29,7 +29,6 @@ Las carteras sin custodia te permiten tener más libertad. Como estás interactu Tanto los usuarios de carteras con custodia como los usuarios de carteras sin custodia deben protegerse de usuarios malintencionados que podrían intentar robar tus fondos. Con una cartera con custodia, debes administrar tu nombre de usuario y contraseña en la app o en el sitio web; en una cartera sin custodia, tienes que administrar las claves secretas (secrect keys) de tu cuenta en el libro contable (ledger). En ambos casos, las prácticas de seguridad propias del proveedor de la cartera también son importantes para protegerte de vulnerabilidades como ataques a la cadena de suministro, donde un atacante carga código malicioso en la cartera a través de actualizaciones o dependencias. Sin embargo, las carteras con custodia pueden ser un objetivo mayor para los atacantes, ya que tienen acceso inmediato a los fondos de múltiples usuarios. - ## Carteras de software vs Carteras de hardware Otro factor decisivo a la hora de elegir una cartera es elegir entre una cartera de hardware o de software. @@ -40,10 +39,8 @@ Las carteras de hardware son dispositivos físicos que almacenan tus claves priv Las carteras de software por el otro lado, son completamente digitales. Mientras esto las hace mucho más fáciles, también las convierte en el método menos seguro de los dos, pero generalmente vienen con funciones adicionales para mejorar la experiencia. Como última instancia, la decisión entre las dos dependerá de tu nivel de comidad y de lo importante que sea para ti la facilidad de uso. - ## Crear tu propia cartera El XRP Ledger es un proyecto de código abierto con librerías de cliente y métodos API disponibles públicamente. Si bien técnicamente se puede interactuar con el ledger utilizando herramientas HTTP/WebSocket, no es práctico para el uso del día a día. Puedes crear tu propia cartera para interactuar con el ledger, pero necesitarás entender exáctamente cómo funcionan las cuentas, transacciones y el ledger juntas antes de comprometerte con esta opción. - Siguiente: [Transacciones y peticiones](transactions-and-requests.md) diff --git a/@l10n/es-ES/docs/introduction/index.md b/@l10n/es-ES/docs/introduction/index.md index 0bd34dd9e2..19d389bce3 100644 --- a/@l10n/es-ES/docs/introduction/index.md +++ b/@l10n/es-ES/docs/introduction/index.md @@ -5,8 +5,9 @@ metadata: indexPage: true top_nav_grouping: Article Types --- + # Introducción -El XRP Ledger es una blockchain que permanentemente registra transacciones digitales de tokens entre cuentas. Las secciones de abajo amplian los conceptos introducidos en esa frase. +El XRP Ledger es una blockchain que permanentemente registra transacciones digitales de tokens entre cuentas. Las secciones de abajo amplian los conceptos introducidos en esa frase. {% child-pages /%} diff --git a/@l10n/es-ES/docs/introduction/software-ecosystem.md b/@l10n/es-ES/docs/introduction/software-ecosystem.md index dc5db67d64..f466595f67 100644 --- a/@l10n/es-ES/docs/introduction/software-ecosystem.md +++ b/@l10n/es-ES/docs/introduction/software-ecosystem.md @@ -2,10 +2,11 @@ html: software-ecosystem.html parent: introduction.html seo: - description: Obtén una descripción general de qué es el software XRP Ledger disponible y como funciona en conjunto. + description: Obtén una descripción general de qué es el software XRP Ledger disponible y como funciona en conjunto. labels: - Servidor central --- + # Ecosistema software El XRP Ledger alberga un ecosistema profundo de varias capas de proyectos de software que impulsan y permiten el Internet del Valor. Es imposible listar cada proyecto, herramienta, y negocio que interactua con el XRP Ledger, asi que esta página solo lista algunas categorías y destaca algunos proyectos centrales que están documentados en este sitio web. @@ -13,7 +14,7 @@ El XRP Ledger alberga un ecosistema profundo de varias capas de proyectos de sof ## Niveles de stack -- [_Servidores Principales](#servidores-principales) forman la base del XRP Ledger, una red peer-to-peer que transmite y procesa transacciones en todo momento. +- [\_Servidores Principales](#servidores-principales) forman la base del XRP Ledger, una red peer-to-peer que transmite y procesa transacciones en todo momento. - [_Librerías de cliente_](#librerías-cliente) existen en software de alto nivel, donde se importan directamente al código del programa, y contiene métodos para acceder al XRP Ledger. @@ -21,21 +22,19 @@ El XRP Ledger alberga un ecosistema profundo de varias capas de proyectos de sof - [_Apps y servicios_](#apps-y-servicios) proporcionan interación con el XRP Ledger a nivel usuario, o proporcionan una base para aplicaciones y servicios de aun más alto nivel. - ### Servidores principales -La red peer-to-peer en el corazón del XRP Ledger requiere de un servidor altamente confiable y eficiente para hacer cumplir las reglas de consenso y el procesamiento de las transacciones. La Fundación XRP Ledger publica una implementación de referencia de este software de sevidor, llamada [**`rippled`**](../concepts/networks-and-servers/index.md) (pronunciado en inglés como "ripple-dee"). El servidor está disponible bajo [una licencia permisiva de código abierto](https://github.com/XRPLF/rippled/blob/develop/LICENSE.md), por lo que cualquiera puede inspeccionar y modificar su propia instancia del servidor, y volver a publicar con pocas restricciones. +La red peer-to-peer en el corazón del XRP Ledger requiere de un servidor altamente confiable y eficiente para hacer cumplir las reglas de consenso y el procesamiento de las transacciones. La Fundación XRP Ledger publica una implementación de referencia de este software de sevidor, llamada [**`rippled`**](../concepts/networks-and-servers/index.md) (pronunciado en inglés como "ripple-dee"). El servidor está disponible bajo [una licencia permisiva de código abierto](https://github.com/XRPLF/rippled/blob/develop/LICENSE.md), por lo que cualquiera puede inspeccionar y modificar su propia instancia del servidor, y volver a publicar con pocas restricciones. ![Servidores principales](/docs/img/ecosystem-peer-to-peer.svg) Cada servidor central sincroniza con la misma red (a no ser que esté configurado para seguir una [red de test](../concepts/networks-and-servers/parallel-networks.md)) y tiene acceso a todas las comunicaciones a través de la red. Cada servidor de la red guarda una copia completa de lod datos de estado para todo el XRP Ledger, junto con transacciones recientes y un registro de los cambios que esas transacciones han realizado, y cada servidor procesa cada transacción independientemente mientras verifican que el resultado coincide con el resto de la red. Los servidores pueden ser configurados para mantener más [histórico del ledger](../concepts/networks-and-servers/ledger-history.md) y para participar en el proceso de consenso como un [validador](../concepts/networks-and-servers/rippled-server-modes.md#validators). -Los servidores Core exponen [APIs HTTP / WebSocket](../references/http-websocket-apis/index.md) para que los usuarios busquen datos, administren el servidor, y envíen transacciones. Algunos servidores también ofrecen APIs HTTP / WebSocket pero no conectan directamente con la red peer-to-peer y no procesan transacciones ni participan en el consenso. Estos servidores, como servidores `rippled` ejecutan en modo Reporting y servidores Clio, que dependen de un servidor central en modo P2P para procesar las transacciones. - +Los servidores Core exponen [APIs HTTP / WebSocket](../references/http-websocket-apis/index.md) para que los usuarios busquen datos, administren el servidor, y envíen transacciones. Algunos servidores también ofrecen APIs HTTP / WebSocket pero no conectan directamente con la red peer-to-peer y no procesan transacciones ni participan en el consenso. Estos servidores, como servidores `rippled` ejecutan en modo Reporting y servidores Clio, que dependen de un servidor central en modo P2P para procesar las transacciones. ### Librerías cliente -Las librerias simplifican parte del trabajo básico de acceder al XRP Ledger, normalmente a través de las APIs HTTP / WebSocket. Convierten los datos en formas que son más familiares y convenientes para varios lenguajes de programación e incluyen implementaiones de operaciones básicas. +Las librerias simplifican parte del trabajo básico de acceder al XRP Ledger, normalmente a través de las APIs HTTP / WebSocket. Convierten los datos en formas que son más familiares y convenientes para varios lenguajes de programación e incluyen implementaiones de operaciones básicas. ![Librerías cliente](/docs/img/ecosystem-client-libraries.svg) @@ -45,7 +44,6 @@ Muchos servicios middleware utilizan librerías cliente internamente. Ver [Librerías Cliente](../references/client-libraries.md) para más información sobre las librerías cliente disponibles actualmente. - ### Middleware Los servicios middleware son programas que consumen las APIs del XRP Ledger por un lado y proporcionan sus propias APIs por el otro. Porporcionan una capa de abstracción para facilitar la creación de aplicaciones a mayor nivel proporcionando funcionalidades comunes como servicios. @@ -54,7 +52,6 @@ Los servicios middleware son programas que consumen las APIs del XRP Ledger por A diferencia de las librerías cliente, en donde se crean instancias nuevas y se cierran con el programa que las importa, los servicios middleware generalmente permanecen ejecutándose indefinidamente y pueden tener sus propias bases de datos (bases de datos relacionales SQL o de otro tipo) y archivos de configuración. Algunos están disponibles como servicios en la nube con varios precios o limitaciones de uso. - ### Apps y servicios En lo alto del stack es donde suceden las cosas realmente interesantes. Las apps y servicios ofrecen una forma para que usuarios y dispositivos se conecten al XRP Ledger. Los servicios como los exchanges privados, los acuñadores de tokens, marketplaces, interfaces al exchanges descentralizado, y carteras brindan interfaces de usuario para comprar, vender y comerciar varios activos incluyendo XRP y tokens de todo tipo. Existen muchas otras posibilidades, incluyendo servicios adicionales en capas superiores. @@ -63,4 +60,4 @@ En lo alto del stack es donde suceden las cosas realmente interesantes. Las apps Ver [Casos de uso](../use-cases/index.md) para más ejemplos que pueden ser construidos en o encima de esta capa. -{% raw-partial file="/docs/_snippets/common-links.md" /%} \ No newline at end of file +{% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/@l10n/es-ES/docs/introduction/transactions-and-requests.md b/@l10n/es-ES/docs/introduction/transactions-and-requests.md index 8329151ae2..b74cd8e3e0 100644 --- a/@l10n/es-ES/docs/introduction/transactions-and-requests.md +++ b/@l10n/es-ES/docs/introduction/transactions-and-requests.md @@ -2,7 +2,7 @@ html: txn-and-requests.html parent: intro-to-xrpl.html seo: - description: Todas las interacciones con el ledger son transacciones o solicitudes. + description: Todas las interacciones con el ledger son transacciones o solicitudes. labels: - Blockchain --- @@ -17,7 +17,7 @@ Utiliza las transacciones para realizar cambios en el ledger, como transferir XR - Siempre debes proporcionar el _TransactionType_ y la dirección pública de la _Account_ que realiza la transacción. -- Dos campos obligatorios son la _Fee_ (comisión) de la transacción y el siguiente número de la _Sequence_ (secuencia) para las transacciones de la cuenta. Estos campos se pueden completar automáticamente. +- Dos campos obligatorios son la _Fee_ (comisión) de la transacción y el siguiente número de la _Sequence_ (secuencia) para las transacciones de la cuenta. Estos campos se pueden completar automáticamente. - Las transacciones también pueden tener campos obligatorios específicos del tipo de transacción. Por ejemplo, una transacción _Payment_ requiere un valor (cantidad) _Amount_ (en _drops_, o millonésimas de un XRP) y una dirección pública _Destination_ (destino) donde los fondos son acreditados. @@ -34,7 +34,7 @@ Aquí hay un ejemplo de transacción en formato JSON. Esta transacción transfie Hay campos opcionales disponibles para todas las transacciones, con campos adicionales disponibles para transacciones específicas. Puedes incluir tantos campos opcionales como necsites, pero no es necesario incluir todos los campos en cada transacción. -Puedes enviar la transacción al ledger como un comando de JavaScript, Python, línea de comandos, o cualquier servicio compatible. Los servidores rippled proponen las transacciones al XRPL. +Puedes enviar la transacción al ledger como un comando de JavaScript, Python, línea de comandos, o cualquier servicio compatible. Los servidores rippled proponen las transacciones al XRPL. ![Transacciones propuestas](/docs/img/introduction17-gather-txns.png) @@ -110,6 +110,7 @@ La solicitud devuelve una gran cantidad de información. Aquí hay un ejemplo de } } ``` + Para obtener información sobre los campos de un registro de información de una cuenta, ver [Cuentas](../concepts/accounts/index.md). Siguiente: [Ecosistema de software](software-ecosystem.md) diff --git a/@l10n/es-ES/docs/introduction/what-is-the-xrp-ledger.md b/@l10n/es-ES/docs/introduction/what-is-the-xrp-ledger.md index b676a930fa..ae46a03edf 100644 --- a/@l10n/es-ES/docs/introduction/what-is-the-xrp-ledger.md +++ b/@l10n/es-ES/docs/introduction/what-is-the-xrp-ledger.md @@ -2,15 +2,15 @@ html: what-is-the-xrp-ledger.html parent: introduction.html seo: - description: Aprende sobre la blockchain XRP Ledger (XRPL). + description: Aprende sobre la blockchain XRP Ledger (XRPL). labels: - Blockchain --- + # ¿Qué es el XRP Ledger? El XRP Ledger es una blockchain descentralizada que usa su propia moneda digital para procesar y registrar transacciones financieras. - ## ¿Qué es una blockchain? Una blockchain es una lista de registros en continuo creciemiento. La blockchain comienza con un bloque de datos. @@ -45,7 +45,7 @@ Por diseño, las blockchains son resistentes a la modificación de datos. Cada n ![Dos validadores con copias idénticas de la blockchain](/docs/img/introduction9-2-sets-of-3.png) -Esto crea un libro contable (ledger) abierto y distribuido que registra las transacciones entre partes de manera eficiente, verificable y permanente. +Esto crea un libro contable (ledger) abierto y distribuido que registra las transacciones entre partes de manera eficiente, verificable y permanente. Una vez registrados, los datos de cualquier bloque no se pueden modificar retroactivamente, a no ser que la mayoría de validadores se pongan de acuerdo en el cambio. Si es así, todo los bloques posteriores se modifican de la misma manera (un hecho muy raro y extremo). diff --git a/@l10n/es-ES/docs/introduction/what-is-xrp.md b/@l10n/es-ES/docs/introduction/what-is-xrp.md index 4629e99b9b..f9d58a02dd 100644 --- a/@l10n/es-ES/docs/introduction/what-is-xrp.md +++ b/@l10n/es-ES/docs/introduction/what-is-xrp.md @@ -2,11 +2,12 @@ html: what-is-xrp.html parent: introduction.html seo: - title: ¿Qué es XRP y por qué es valioso? - description: XRP, la criptomoneda respaldada por el XRP Ledger (XRPL), permite transacciones más rápidas y económicas. Descubre cómo opera XRP en una blockchain de código abierto. + title: ¿Qué es XRP y por qué es valioso? + description: XRP, la criptomoneda respaldada por el XRP Ledger (XRPL), permite transacciones más rápidas y económicas. Descubre cómo opera XRP en una blockchain de código abierto. labels: - Blockchain --- + # ¿Qué es XRP? XRP es la criptomoneda respaldada por el XRP Ledger. @@ -45,31 +46,28 @@ Aunque puede parecer mucho más seguro tener algo "real en la mano, muchas perso El valor de las criptomonedas proviene de la confianza que sus poseedores depositan en la moneda. Debido a la naturaleza distribuida de los registros y la protección criptográfica para asegurar los fondos, las criptomonedas podrían considerarse mucho más robustas, seguras, y convenientes que las monedas fiduciarias tradicionales. - ## XRP es una criptomoneda El XRP Ledger fue construido entre 2011 y principios de 2012 por Jed McCaleb, Arthur Britto y David Schwartz. En el momento de su creación, había 100 mil millones de XRP. En septiembre de 2012, Jed y Arthur, junto con Chris Larsen formaron Ripple (la compañía, llamada en ese momento OpenCoin Inc.) y decidieron donar 80 mil millones XRP a Ripple a cambio de que Ripple desarrollase en el XRP Ledger. ![Cien mil millones con "M"](/docs/img/introduction14-hundred-billion.png) -Desde entonces, la compañía ha vendido XRP regularmente, lo ha utilizado para fortalecer los mercados de XRP y mejorar la liquidez de la red, e incentivar el desarrollo del ecosistema. En 2017, la compañía colocó [55 mil millones de XRP en escrow](https://ripple.com/insights/ripple-escrows-55-billion-xrp-for-supply-predictability/?__hstc=78174987.8aa695b6d0420a940041f1842edfd8a6.1692378128025.1692644550213.1692652561840.8&__hssc=78174987.3.1692652561840&__hsfp=3379522993) para asegurar que la cantidad que entra al suministro general [crece de manera predecible](https://ripple.com/insights/ripple-to-place-55-billion-xrp-in-escrow-to-ensure-certainty-into-total-xrp-supply/?__hstc=78174987.8aa695b6d0420a940041f1842edfd8a6.1692378128025.1692644550213.1692652561840.8&__hssc=78174987.3.1692652561840&__hsfp=3379522993) en el futuro inmediato,. Ripple [sitio de rendimiento del mercado XRP](https://ripple.com/xrp/?__hstc=78174987.8aa695b6d0420a940041f1842edfd8a6.1692378128025.1692644550213.1692652561840.8&__hssc=78174987.3.1692652561840&__hsfp=3379522993) informa cuánto XRP tiene la compañía disponible y cuanto tiene bloqueado en escrow en la actualidad. +Desde entonces, la compañía ha vendido XRP regularmente, lo ha utilizado para fortalecer los mercados de XRP y mejorar la liquidez de la red, e incentivar el desarrollo del ecosistema. En 2017, la compañía colocó [55 mil millones de XRP en escrow](https://ripple.com/insights/ripple-escrows-55-billion-xrp-for-supply-predictability/?__hstc=78174987.8aa695b6d0420a940041f1842edfd8a6.1692378128025.1692644550213.1692652561840.8&__hssc=78174987.3.1692652561840&__hsfp=3379522993) para asegurar que la cantidad que entra al suministro general [crece de manera predecible](https://ripple.com/insights/ripple-to-place-55-billion-xrp-in-escrow-to-ensure-certainty-into-total-xrp-supply/?__hstc=78174987.8aa695b6d0420a940041f1842edfd8a6.1692378128025.1692644550213.1692652561840.8&__hssc=78174987.3.1692652561840&__hsfp=3379522993) en el futuro inmediato,. Ripple [sitio de rendimiento del mercado XRP](https://ripple.com/xrp/?__hstc=78174987.8aa695b6d0420a940041f1842edfd8a6.1692378128025.1692644550213.1692652561840.8&__hssc=78174987.3.1692652561840&__hsfp=3379522993) informa cuánto XRP tiene la compañía disponible y cuanto tiene bloqueado en escrow en la actualidad. ![Hombre con un XRP](/docs/img/introduction13-x-prefix.png) - ### El nombre Originalmente, el XRP Ledger se llamaba "Ripple" por la forma en que la tecnología permitía que los pagos [se propagaran a través de múltiples saltos y monedas](../concepts/tokens/fungible-tokens/rippling.md). Para el activo nativo construido dentro del ledger, los creadores eligieron las siglas "XRP" del término "créditos ripple" o "ripples" y el prefijo X por ser una moneda no nacional según el estandar de la [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). La compañía se registró como "Ripple Labs". El nombre "XRP" empezó a usarse para referirse al activo en todos los contextos, para evitar confusiones con nombres similares de la tecnología y la compañía, y finalmente la empresa acortó su propio nombre a "Ripple". En mayo de 2018, [la comunidad seleccionó un nuevo símbolo "X"](https://twitter.com/xrpsymbol/status/1006925937571713025) para representar XRP y diferenciarlo del logotipo triskelion con el que se conocía anteriormente tanto a la empresa como al activo digital -| XRP "X" Logo | Ripple triskelion | -|:---------------------------------------|:------------------------------------| +| XRP "X" Logo | Ripple triskelion | +| :------------------------------- | :--------------------------------------------- | | !["X" logo](/img/xrp-x-logo.png) | ![Triskelion](/docs/img/ripple-triskelion.png) | - ### Marca comercial "XRP" es una marca registrada de la XRPL Foundation en EE.UU. y otros países como China y Estonia. La solicitud de marca se registró en la Oficina de Patentes y Marcas de los Estados Unidos (USPTO) en 2013 con OpenCoin Inc y Ripple Labs Inc como cesionarios. En 2022, la asignación de marca fue actualizada y ahora está asignada a MITTETULUNDUSÜHING XRP LEDGER TRUST (“XRPLF”). - + Siguiente: [Carteras Cripto](crypto-wallets.md) diff --git a/@l10n/es-ES/translations.yaml b/@l10n/es-ES/translations.yaml index 211dbe89b0..d2bbac93ad 100644 --- a/@l10n/es-ES/translations.yaml +++ b/@l10n/es-ES/translations.yaml @@ -78,7 +78,7 @@ Contribute to Consensus: Contribuye al consenso Apply for funding to build your XRPL project: Aplica para financiar la construcción de tu proyecto XRPL Awarded in a single grant: Premiado en una financiación Distributed to grant recipients: Distribuido entre los recibidores de la financiación -Open-source projects funded : Proyectos de código abierto financiados +Open-source projects funded: Proyectos de código abierto financiados Learn More: Leer más Showcase your XRPL project, application or product: Muestra tu proyecto XRPL, aplicación o producto XRPL Community Spotlight: Destacado en la comunidad XRPL @@ -153,7 +153,7 @@ Explore, Test, Verify: Explora, prueba, verifica Explore Dev Tools: Explora las herramientas de desarrollo Browse By Recommended Pages: Explora entre las páginas recomendadas Get Free Test XRP: Consigue XRP de prueba gratis -Generate Testnet Credentials: Genera credenciales de Testnet +Generate Testnet Credentials: Genera credenciales de Testnet See full documentation index: Consulta el índice de la documentación completa Find the XRPL Community Around the World: Encuentra a la comunidad XRPL alrededor del mundo Events: Eventos @@ -281,7 +281,7 @@ Trust for: Confianza para Security: Seguridad Release Notes: Notas de la versión Custody: Custodia -Infrastructure: Infraestructura +Infrastructure: Infraestructura Carbon Markets/Sustainability: Mercados de Carbono/Sostenibilidad Developer Tooling: Herramientas de desarrollo Gaming: Gaming diff --git a/@l10n/ja/CODE-OF-CONDUCT.md b/@l10n/ja/CODE-OF-CONDUCT.md index 35532f8342..dcf3cd9046 100644 --- a/@l10n/ja/CODE-OF-CONDUCT.md +++ b/@l10n/ja/CODE-OF-CONDUCT.md @@ -8,19 +8,19 @@ 前向きな環境を作り上げることに貢献する行動の例: -* 友好的で差別のない言葉の使用 -* 異なる観点や経験の尊重 -* 建設的な批判の素直な受け入れ -* コミュニティーにとっての最善への注力 -* 他のコミュニティーメンバーへの共感の表示 +- 友好的で差別のない言葉の使用 +- 異なる観点や経験の尊重 +- 建設的な批判の素直な受け入れ +- コミュニティーにとっての最善への注力 +- 他のコミュニティーメンバーへの共感の表示 前向きな環境を作り上げることに貢献しない行動の例: -* 性的な意味を含む言葉や画像の使用、望まない性的注目や誘いかけ -* あおり、侮辱的または軽蔑的なコメント、個人攻撃や政治攻撃 -* 公的または私的な嫌がらせ -* 住所やメールアドレスなどの個人情報の、明確な許可なしでの公開 -* 職場において不適切であると合理的に考えられる、その他の行為 +- 性的な意味を含む言葉や画像の使用、望まない性的注目や誘いかけ +- あおり、侮辱的または軽蔑的なコメント、個人攻撃や政治攻撃 +- 公的または私的な嫌がらせ +- 住所やメールアドレスなどの個人情報の、明確な許可なしでの公開 +- 職場において不適切であると合理的に考えられる、その他の行為 ## 責任 @@ -43,4 +43,5 @@ この行動規範は、[コントリビューター行動規範][ホームページ]バージョン1.4(https://www.contributor-covenant.org/version/1/4/code-of-conduct.html)から抜粋したものです。 [ホームページ]: https://www.contributor-covenant.org + この行動規範に関するよくある質問と回答については、https://www.contributor-covenant.org/faq をご覧ください。 diff --git a/@l10n/ja/about/faq.md b/@l10n/ja/about/faq.md index b482cf3149..c2fd0f4898 100644 --- a/@l10n/ja/about/faq.md +++ b/@l10n/ja/about/faq.md @@ -1,14 +1,16 @@ --- seo: - description: XRP Ledger、XRPLエコシステム、コミュニティに関するよくある質問にお答えします。 + description: XRP Ledger、XRPLエコシステム、コミュニティに関するよくある質問にお答えします。 subtitle: XRPLについての質問にお答えします top_nav_grouping: 概要 labels: - ブロックチェーン --- + # よくある質問 + #### XRPはリップルと呼ぶのですか? いいえ。XRPは**エックスアールピー**と呼びます。日本国内の多くの取引所などはXRPをRippleやリップルなどと表記していることがありますが、それは間違いです。 @@ -19,22 +21,18 @@ labels: いいえ。XRPLは分散型のパブリックブロックチェーンです。トランザクション処理やコンセンサスに影響を与えるような変更は、ネットワークバリデータの80%以上の承認が必要です。Rippleはネットワークへの貢献者の一員ですが、その権利は他の貢献者たちと同じです。ネットワークには150以上のバリデータが参加しており、うちデフォルトのユニークノードリスト(UNL)に登録されているものは35以上です。Rippleはこれらのうち[1つのノード](https://foundation.xrpl.org/2023/03/23/unl-update-march-2023/)を運営しています。 ユニークノードリスト(UNL)に関しては[ユニークノードリスト(UNL)とは何ですか?](#ユニークノードリストunlとは何ですか)の項目をご覧ください。 - #### プルーフ・オブ・ワーク(PoW)が最善の検証メカニズムではないのですか? プルーフ・オブ・ワークは、信頼できる第三者を必要とせずに二重支出の問題を解決する最初のコンセンサンス・メカニズムでした。[XRP Ledgerのコンセンサスメカニズム](../docs/concepts/consensus-protocol/index.md)は、同じ問題をはるかに速く、安く、より良いエネルギー効率で解決します。 - #### XRPLではXRP以外の通貨も取引できますか? はい。XRPLは米ドル、ユーロ、石油、金、リワードポイントなど、任意の資産をトークン化できるように構築されており、どんな通貨でもXRPL上で発行することができます。成長中のXRPLコミュニティは様々なフィアットトークンや暗号通貨をサポートしており、これを裏付けています。 - #### XRPLは決済専用ではないのですか? いいえ。当初は決済のユースケース向けに開発されましたが、台帳であるXRP Ledgerとそのネイティブ・デジタルアセットであるXRPの両方は、NFTなどのブロックチェーンの革新的ユースケースで更に人気を集めています。自動マーケットメーカー(AMM)、スマートコントラクト機能Hooks、相互運用サイドチェーンの開発などが現在進行中です。 - ## バリデータ(検証者)とユニークノードリスト #### トランザクション(取引)のバリデータはどのようなサービスを提供するのですか? @@ -43,27 +41,22 @@ labels: コンセンサスプロセスの詳細は、[コンセンサス](../docs/concepts/consensus-protocol/index.md)をご覧ください。 - #### バリデータの実行にはいくらかかりますか? バリデータを実行するのに手数料やXRPは必要ありません。メールサーバを稼働するための電気代相当です。 - #### ユニークノードリスト(UNL)とは何ですか? UNLとは、ある参加者が共謀しないと信じるバリデータのリストです。各サーバ運営者は自分のUNLを選ぶことができますが、通常は信頼できる発行元から提供されたデフォルトを参考にします。(信頼できる発行元からのデフォルトセットはデフォルトUNLまたは _dUNL_ と呼ばれることがあります)。 - #### どのUNLを選択すればよいですか? バリデータは誰でも実行できるため、信頼できるバリデータを選ぶ責任はネットワーク参加者にあります。現在、RippleとXRP Ledger財団が、過去の実績、証明された身元、責任あるITポリシーに基づき、高品質なバリデータの推奨デフォルトリストを公表していることが知られています。しかし、すべてのネットワーク参加者は、自身が信頼できるバリデータを選択することができ、上記の2つの発行者のいずれかに従う必要はありません。 - #### RippleがそのUNLの採用を推奨しているなら、それは中央集権的なシステムを形成することにならないのですか? いいえ。XRP Ledgerネットワークはオプトイン方式です。各参加者は直接的または間接的に自身のUNLを選択することができます。万が一、Rippleが活動を停止したり、Rippleが悪意を持って行動したりした場合、参加者は自身のUNLを変更してXRP Ledgerを引き続き使用することができます。 - #### バリデータにとってインセンティブとなるものは何ですか? バリデータを運営する主なインセンティブは、ネットワークの安定的な運用と健全な進化を維持・保護することです。XRP Ledgerの進化を決定するのはバリデータであり、XRP Ledgerを利用する、あるいはXRP Ledgerに依存するビジネスには、ネットワークの信頼性と安定性を確保するインセンティブが内在しています。バリデータはまた、このように貢献することでコミュニティからの評価と信頼を得ることができます。 @@ -72,12 +65,10 @@ UNLとは、ある参加者が共謀しないと信じるバリデータのリ インセンティブがどのようにバリデータの行動を歪めるかの例については、[miner extractable value (MEV)](https://arxiv.org/abs/1904.05234)をご覧ください。 - #### 金融機関は、特定の制度上の基準や要件を満たすのに役立つトランザクションバリデータを設定できますか? いいえ。トランザクション選択のためにカスタマイズされたバリデータポリシーを金融機関が設定することはできません。バリデータは既存のプロトコルに従う、従わないのいずれかを選択します。ソフトウェアは、プロトコルルールに従わない場合は機能しません。そのため、金融機関が社内の専門知識なしにカスタム実装を求めることは推奨されません。 - #### ネットワーク内の20%を超えるノードが他の多数ノードと一致しない場合はどうなりますか? レジャー(台帳)の最終バージョンはどのように選択されますか? 通常、あるトランザクションの有効性について係争があった場合、多数派が合意に達するまでそのトランザクションは保留されます。しかしネットワークの20%超が多数派と同じプロトコルルールに従わなかった場合、ネットワークは一時的に停止します。参加者が互いに合意を得たいUNLに基づいてUNLを再設定すれば再開できます。この一時的な処理の遅延は二重支出よりも望ましいでしょう。 @@ -88,7 +79,6 @@ UNLとは、ある参加者が共謀しないと信じるバリデータのリ XRP Ledgerのコンセンサスメカニズムが不利な状況でどのように動作するかについては、[攻撃と失敗モードに対するコンセンサスの保護](../docs/concepts/consensus-protocol/consensus-protections.md)をご覧ください。 - #### XRP Ledgerでは正式なバリデータのオンボーディングプロセスを使用していますか? いいえ。XRP Ledgerは、中央権限のないシステムであるため、正式なバリデータのオンボーディングプロセスのようなものは存在しません。 @@ -97,7 +87,6 @@ XRP Ledgerのコンセンサスメカニズムが不利な状況でどのよう 推奨事項やベストプラクティスについては、[バリデータとしての`rippled`の実行](../docs/infrastructure/configuration/server-modes/run-rippled-as-a-validator.md)をご覧ください。 - #### デフォルトUNL(dUNL)がネットワークに最も影響力を持つなら、XRPLは中央集権的ではないでしょうか? バリデータはdUNLや広く使われているUNLを使わないこともできます。誰でもいつでも自由にUNLを作ることができます。 @@ -106,20 +95,16 @@ XRP Ledgerのコンセンサスメカニズムが不利な状況でどのよう しかし、もしあなたのUNLが他の人が使っているUNLと十分に重複していなければ、あなたのサーバが他のネットワークからフォークしてしまう危険性があります。あなたのUNLが他の人が使っているUNLと90%以上重なっていれば、フォークから完全に保護されます。重複が少ない場合、同じチェーンをフォローできるかもしれませんが、重複が少ないほど、ネットワークの接続性が悪いほど、UNLに信頼できないバリデータや悪意のあるバリデータがあるほど、フォークする可能性が高くなります。 - ## XRPの役割 - #### XRPはどのような目的で利用されますか? XRPはXRP Ledgerのネイティブ資産として、これまでのどのデジタルアセットよりも速く、環境に優しく、安価な次世代の決済を実現するために作られました。XRPはまた、スパムから台帳を保護し、XRP Ledgerの分散型取引所で[通貨のブリッジ](../docs/concepts/tokens/decentralized-exchange/autobridging.md)を行うことがユーザにとって有益である場合に、その役割を果たします。時間とともに、XRP Ledgerコミュニティは、XRPの新しい[ユースケース](/about/uses)やXRP Ledgerそのものを発展させてきました。 - #### XRP Ledgerにおいて大量のトランザクションに対してはどのように対応しますか? XRP Ledgerは、スパム対策として、需要に基づいて[トランザクションコスト](../docs/concepts/transactions/transaction-cost.md)を動的に設定するように設計されています。潜在的なXRPの操作による影響は、時価総額とトランザクション量の増加に伴うネットワークサイズの拡大によって最小限に抑えられます。 - #### マネーロンダリングや疑わしい経済活動に対して、どのような標準操作手順が実施されていますか? XRP Ledgerネットワークはオープンネットワークであり、すべての取引はオープンに公開されています。 @@ -128,10 +113,8 @@ Rippleは Ledgerネットワーク全体のAMLフラグを監視・報告し、 [XRP Forensics / xrplorer](https://xrplorer.com/)は、XRP Ledgerのマネーロンダリング、詐欺、詐欺、不正使用を追跡し、最小限に抑えるための勧告リストを維持しています。取引所やその他のサービス・プロバイダは、金融犯罪を防止し対応するためにこのサービスを利用することができます。 - ## セキュリティ上の懸念 - #### サードパーティにより提供されたコードは審査プロセスはどのようになっていますか? コードへの貢献のプロセスは、開発者が[`rippled`リポジトリ](https://github.com/xrplf/rippled/)のようなソースコードリポジトリに[プルリクエスト](https://docs.github.com/ja/github/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests)を行うことから始まります。 @@ -140,7 +123,6 @@ Rippleは Ledgerネットワーク全体のAMLフラグを監視・報告し、 プルリクエストが自動テストに合格し、レビュアーの承認を受けると、信頼できる[リポジトリのメンテナ](https://opensource.guide/best-practices/)が次のベータ版に含めるための手続きを行います。 - #### RippleはXRP LedgerまたはXRP Ledgerネットワークを所有または管理していますか? いいえ、RippleはXRP LedgerまたはXRP Ledgerネットワークを所有も管理もしていません。 @@ -149,7 +131,6 @@ Rippleは、コアとなるXRP Ledgerサーバ([`rippled`](https://github.com/ いくつかの団体が推奨バリデータリスト(UNL)を公開しています。2023年7月現在、RippleはデフォルトのUNLにある35のバリデータのうち1つのみを実行しています。 - #### XRP Ledgerは検証用のコードベースとユーザソフトウェア用のコードベースを区別していますか? XRP Ledgerの[クライアントライブラリ](../docs/references/client-libraries.md)は、ソフトウェア開発者向けのものです。これらのライブラリは、ネットワークを支え、トランザクションを検証する[XRP Ledgerのコアサーバ](../docs/concepts/networks-and-servers/index.md)とは異なるコードベースとリポジトリを持っています。 diff --git a/@l10n/ja/community/report-a-scam.md b/@l10n/ja/community/report-a-scam.md index 27428c4271..c06231d35a 100644 --- a/@l10n/ja/community/report-a-scam.md +++ b/@l10n/ja/community/report-a-scam.md @@ -2,27 +2,28 @@ html: report-a-scam.html parent: contribute.html --- + # 詐欺の報告 発展する業界において、信頼とセキュリティは非常に重要ですが、詐欺はクリプトとブロックチェーンの進歩を妨げ続けています。Xrplorer forensicsチームのようなXRP Ledgerコミュニティ全体の個人やチームは、詐欺を報告するための無料ツールを提供することで、これらの詐欺行為を抑制する手助けをしています。 ## 報告する + 詐欺に遭ったと思ったら、詐欺の手口や詐欺業者について、できるだけ早く、できるだけ多くの情報を集めるようにしてください。どのように行動すべきかは以下の方法を確認してください。 {% admonition type="warning" name="注意" %}誰もXRP Ledgerのアカウントをフリーズしたり、トランザクションを元に戻したりすることはできません。これはXRP Ledgerブロックチェーンの分散型設計によるものです。{% /admonition %} 1. [Xrplorerの調査チーム](https://xrplorer.com/forensics/submit)に詐欺業者のウォレットアドレスを提出してください。 - これにより、不正行為に使用されたアカウントにフラグを立て、他のユーザ、ウォレット、および取引所に対する追加の監視、自動追跡、および警告に含めることができます。 + これにより、不正行為に使用されたアカウントにフラグを立て、他のユーザ、ウォレット、および取引所に対する追加の監視、自動追跡、および警告に含めることができます。 2. 最寄りの警察署に通報してください。詐欺業者が捕まれば、お金を取り戻せる場合があります。 3. 詐欺業者が取引所にXRPを送金した場合は、必ず取引所のサポートチームに連絡してください。取引所は詐欺業者の口座をフリーズすることができます。以下は、いくつかの有名な取引所のサポートリンクです。 - - - [Binance](https://www.binance.com/en/support) - - [Coinbase](https://help.coinbase.com/) - - [Uphold](https://support.uphold.com/hc/en-us/requests/new) - - [Bitrue](https://www.bitrue.com/exchange-web/footer/contactus.html) + - [Binance](https://www.binance.com/en/support) + - [Coinbase](https://help.coinbase.com/) + - [Uphold](https://support.uphold.com/hc/en-us/requests/new) + - [Bitrue](https://www.bitrue.com/exchange-web/footer/contactus.html) 4. 詐欺業者がXRP Ledger上でXRPを他のトークンと交換した場合、そのトークンの発行者に連絡してください。発行者は[詐欺業者のトラストラインをフリーズする](../docs/tutorials/how-tos/use-tokens/freeze-a-trust-line.md)ことができるかもしれません。 diff --git a/@l10n/ja/docs/_snippets/data_types/address.md b/@l10n/ja/docs/_snippets/data_types/address.md index 7da6a32df1..ea9ba2c095 100644 --- a/@l10n/ja/docs/_snippets/data_types/address.md +++ b/@l10n/ja/docs/_snippets/data_types/address.md @@ -1,10 +1,10 @@ XRP Ledgerのアカウントは、XRP Ledgerの[base58](../../references/protocol/data-types/base58-encodings.md)フォーマットのアドレスで識別されます。このアドレスはアカウントのマスター[公開鍵](https://en.wikipedia.org/wiki/Public-key_cryptography)から生成され、マスター公開鍵は秘密鍵から生成されます。アドレスはJSON文字列で記述され、以下の特徴があります。 -* 長さは25から35文字 -* 文字`r`から始まる -* 数字"`0`"、大文字"`O`"、大文字"`I`"、小文字"`l`"を除く英数字 -* 大文字と小文字を区別 -* 4バイトのチェックサムが含まれており、ランダムな文字から有効なアドレスが生成される確率はおよそ232分の1 +- 長さは25から35文字 +- 文字`r`から始まる +- 数字"`0`"、大文字"`O`"、大文字"`I`"、小文字"`l`"を除く英数字 +- 大文字と小文字を区別 +- 4バイトのチェックサムが含まれており、ランダムな文字から有効なアドレスが生成される確率はおよそ232分の1 {% admonition type="info" name="注記" %} [宛先タグ](../../concepts/transactions/source-and-destination-tags.md)をアドレスに「組み込む」**X**アドレス形式もあります。これらのアドレスは`X`(メインネット用)または`T`([テストネットワーク](../../concepts/networks-and-servers/parallel-networks.md)用)で始まります。取引所とウォレットは、顧客が知る必要のあるすべてのデータを1つの値で表すためにXアドレスを使用できます。詳細については、[Xアドレスフォーマットサイト](https://xrpaddress.info/)と[コーデック](https://github.com/xrp-community/xrpl-tagged-address-codec)をご覧ください diff --git a/@l10n/ja/docs/_snippets/data_types/hash.md b/@l10n/ja/docs/_snippets/data_types/hash.md index c48710e785..4289b49124 100644 --- a/@l10n/ja/docs/_snippets/data_types/hash.md +++ b/@l10n/ja/docs/_snippets/data_types/hash.md @@ -2,8 +2,8 @@ XRP Ledger内の多くのオブジェクト、特にトランザクションと XRP Ledgerのハッシュ値には、以下の特徴があります。 -* 長さは64文字ちょうどです -* [16進数](https://en.wikipedia.org/wiki/Hexadecimal)の文字セット: 0-9およびA-Fです。 -* 通常は大文字で記述されます。 +- 長さは64文字ちょうどです +- [16進数](https://en.wikipedia.org/wiki/Hexadecimal)の文字セット: 0-9およびA-Fです。 +- 通常は大文字で記述されます。 {% admonition type="info" name="注記" %}SHA-512ハーフは、公式に定義されている _SHA-512/256_ ハッシュ関数とほぼ同等のセキュリティーを持ちます。しかし、XRP LedgerはSHA-512/256より前から利用されているため、既存のSHA-512関数上に実装することも容易にできます。(この記事の時点で、暗号ライブラリーでのSHA-512のサポートはSHA-512/256よりはるかに一般的です。){% /admonition %} diff --git a/@l10n/ja/docs/_snippets/data_types/ledger_index.md b/@l10n/ja/docs/_snippets/data_types/ledger_index.md index e8b593b59c..e07a234812 100644 --- a/@l10n/ja/docs/_snippets/data_types/ledger_index.md +++ b/@l10n/ja/docs/_snippets/data_types/ledger_index.md @@ -2,6 +2,6 @@ レジャーインデックスがレジャーの順番を示すのに対し、[ハッシュ][]値はレジャーの正確なコンテンツを示します。2つのレジャーが同じハッシュ値を持つ場合、それらは必ず同じものです。検証済みレジャーでは、ハッシュ値とレジャーインデックスは等しく有効で、1:1の関係です。しかし、進行中のレジャーに対しては、以下の理由によりその限りでありません。 -* ネットワーク全体でのトランザクションの伝搬遅延が原因で、2つの異なる`rippled`サーバで、同じレジャーインデックスを持つ現行レジャーに対するコンテンツが異なる場合があります。 -* 決済済みレジャーバージョンが複数あり、コンセンサスによる検証が競合している場合があります。このようなレジャーバージョンでは、レジャーインデックスは同じですが、コンテンツは異なります(ハッシュも異なります)。これらの決済済みレジャーのうち、検証済みになるのは1つだけです。 -* 現行のオープンレジャーのハッシュは計算されません。これは、現行レジャーのレジャーインデックスは同じままであっても、コンテンツは時間とともに変化し、ハッシュが変わる可能性があるためです。レジャーのハッシュは、レジャーが閉鎖されるときにのみ計算されます。 +- ネットワーク全体でのトランザクションの伝搬遅延が原因で、2つの異なる`rippled`サーバで、同じレジャーインデックスを持つ現行レジャーに対するコンテンツが異なる場合があります。 +- 決済済みレジャーバージョンが複数あり、コンセンサスによる検証が競合している場合があります。このようなレジャーバージョンでは、レジャーインデックスは同じですが、コンテンツは異なります(ハッシュも異なります)。これらの決済済みレジャーのうち、検証済みになるのは1つだけです。 +- 現行のオープンレジャーのハッシュは計算されません。これは、現行レジャーのレジャーインデックスは同じままであっても、コンテンツは時間とともに変化し、ハッシュが変わる可能性があるためです。レジャーのハッシュは、レジャーが閉鎖されるときにのみ計算されます。 diff --git a/@l10n/ja/docs/_snippets/data_types/public_key.md b/@l10n/ja/docs/_snippets/data_types/public_key.md index 2aeff9b554..36c024938d 100644 --- a/@l10n/ja/docs/_snippets/data_types/public_key.md +++ b/@l10n/ja/docs/_snippets/data_types/public_key.md @@ -1,8 +1,8 @@ XRP Ledgerは、以下のようなさまざまな状況で暗号署名を検証するために、公開鍵を使用します。 -* トランザクションを承認するため。トランザクションに公開鍵が添付されます。公開鍵は、送信元のXRP Ledgerのアドレスか送信者のレギュラーキーアドレスに数学的に関連付けられている必要があります。 -* `rippled`サーバ間のピアツーピア通信の安全を確保するため。これには、データベースが空の状態でサーバが起動する場合に、サーバがランダムに生成する「ノード公開鍵」が使用されます。 -* コンセンサスプロセスの一環として検証投票に署名するため。これには、サーバの運用者が[設定ファイルに定義](../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md)した「バリデータ公開鍵」が使用されます。 +- トランザクションを承認するため。トランザクションに公開鍵が添付されます。公開鍵は、送信元のXRP Ledgerのアドレスか送信者のレギュラーキーアドレスに数学的に関連付けられている必要があります。 +- `rippled`サーバ間のピアツーピア通信の安全を確保するため。これには、データベースが空の状態でサーバが起動する場合に、サーバがランダムに生成する「ノード公開鍵」が使用されます。 +- コンセンサスプロセスの一環として検証投票に署名するため。これには、サーバの運用者が[設定ファイルに定義](../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md)した「バリデータ公開鍵」が使用されます。 バリデータ公開鍵とノード公開鍵は、まったく同じフォーマットを使用します。 diff --git a/@l10n/ja/docs/_snippets/etl-source-object.md b/@l10n/ja/docs/_snippets/etl-source-object.md index 4ed07362aa..5439a963dc 100644 --- a/@l10n/ja/docs/_snippets/etl-source-object.md +++ b/@l10n/ja/docs/_snippets/etl-source-object.md @@ -1,13 +1,14 @@ ### ETLソースオブジェクト + レポートモードサーバでは、`etl_sources`フィールドの各メンバは以下のフィールドを持つオブジェクトです。 -| フィールド | 型 | 説明 | -|-----------------------------|-------|-------------| +| フィールド | 型 | 説明 | +| --------------------------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `connected` | 真偽値 | `true`の場合、レポートモードサーバがこのP2Pモードサーバに接続していることを示します。`false`の場合、サーバに接続していないことを示します。これは設定ミスやネットワーク障害によるものか、P2Pモードサーバが停止している可能性があります。 | -| `grpc_port` | 文字列 | このレポート モードサーバが接続し、gRPCを介してレジャーデータを取得するように設定されている P2P モード サーバのポート番号。 | -| `ip` | 文字列 | P2PモードサーバのIPアドレス(IPv4またはIPv6)。 | -| `last_message_arrival_time` | 文字列 | レポートモードサーバがこのP2Pサーバからメッセージを受信した最新の時刻を示すISO 8601タイムスタンプ。 | -| `validated_ledgers_range` | 文字列 | `complete_ledgers`と同じ形式で、このP2Pモードサーバが利用可能であると報告する、有効なレジャーのバージョンの範囲。 | -| `websocket_port` | 文字列 | このレポートモードサーバが、レポートモードから直接提供できないWebSocketリクエストを転送するように設定されているP2Pサーバのポート番号。 | +| `grpc_port` | 文字列 | このレポート モードサーバが接続し、gRPCを介してレジャーデータを取得するように設定されている P2P モード サーバのポート番号。 | +| `ip` | 文字列 | P2PモードサーバのIPアドレス(IPv4またはIPv6)。 | +| `last_message_arrival_time` | 文字列 | レポートモードサーバがこのP2Pサーバからメッセージを受信した最新の時刻を示すISO 8601タイムスタンプ。 | +| `validated_ledgers_range` | 文字列 | `complete_ledgers`と同じ形式で、このP2Pモードサーバが利用可能であると報告する、有効なレジャーのバージョンの範囲。 | +| `websocket_port` | 文字列 | このレポートモードサーバが、レポートモードから直接提供できないWebSocketリクエストを転送するように設定されているP2Pサーバのポート番号。 | diff --git a/@l10n/ja/docs/_snippets/interactive-tutorials/connect-step.md b/@l10n/ja/docs/_snippets/interactive-tutorials/connect-step.md index 0a8cf2a7cb..31e76b929d 100644 --- a/@l10n/ja/docs/_snippets/interactive-tutorials/connect-step.md +++ b/@l10n/ja/docs/_snippets/interactive-tutorials/connect-step.md @@ -1,4 +1,4 @@ - @@ -6,11 +6,12 @@ {% interactive-block label=default($label, "Connect") steps=$frontmatter.steps %} +
接続ステータス: 接続されていません - {% loading-icon /%} +{% loading-icon /%}
diff --git a/@l10n/ja/docs/_snippets/interactive-tutorials/generate-step.md b/@l10n/ja/docs/_snippets/interactive-tutorials/generate-step.md index 88971bbc03..13edae1a85 100644 --- a/@l10n/ja/docs/_snippets/interactive-tutorials/generate-step.md +++ b/@l10n/ja/docs/_snippets/interactive-tutorials/generate-step.md @@ -2,6 +2,7 @@ {% loading-icon message="暗号鍵を作成しています…" /%} +
{% /interactive-block %} diff --git a/@l10n/ja/docs/_snippets/issuing-and-operational-addresses-intro.md b/@l10n/ja/docs/_snippets/issuing-and-operational-addresses-intro.md index 2bd0a046e8..465de8e348 100644 --- a/@l10n/ja/docs/_snippets/issuing-and-operational-addresses-intro.md +++ b/@l10n/ja/docs/_snippets/issuing-and-operational-addresses-intro.md @@ -1,5 +1,5 @@ XRP Ledgerでは、金融機関は秘密鍵の漏えいに関連するリスクを最小限に抑えるために、複数のXRP Ledgerアドレスを使用するのが一般的です。業界標準では、以下のような役割分担をしています。 -* 1つの**発行アドレス**。「コールドウォレット」とも呼ばれます。このアドレスは、レジャーでの金融機関の会計上の関係の中心となるものですが、トランザクションの送信は可能な限り少なく抑えます。 -* 1つ以上の**運用アドレス**。「ホットウォレット」とも呼ばれます。インターネットに接続した自動システムが、これらのアドレスへの秘密鍵を使用して、顧客やパートナーへの送金といった日常業務を実施します。 -* オプションの**待機アドレス**。「ウォームウォレット」とも呼ばれます。信頼できる人間のオペレーターが、これらのアドレスを使用して運用アドレスに送金します。 +- 1つの**発行アドレス**。「コールドウォレット」とも呼ばれます。このアドレスは、レジャーでの金融機関の会計上の関係の中心となるものですが、トランザクションの送信は可能な限り少なく抑えます。 +- 1つ以上の**運用アドレス**。「ホットウォレット」とも呼ばれます。インターネットに接続した自動システムが、これらのアドレスへの秘密鍵を使用して、顧客やパートナーへの送金といった日常業務を実施します。 +- オプションの**待機アドレス**。「ウォームウォレット」とも呼ばれます。信頼できる人間のオペレーターが、これらのアドレスを使用して運用アドレスに送金します。 diff --git a/@l10n/ja/docs/_snippets/peer_reservation_object.md b/@l10n/ja/docs/_snippets/peer_reservation_object.md index e09a1d0d76..3fbf9a53da 100644 --- a/@l10n/ja/docs/_snippets/peer_reservation_object.md +++ b/@l10n/ja/docs/_snippets/peer_reservation_object.md @@ -1,4 +1,4 @@ -| `Field` | 型 | 説明 | -|:--------------|:-------|:----------------------------------------------------| -| `node` | 文字列 | この予約の対象となるピアサーバの[ノード公開鍵][]([base58][])。 | -| `description` | 文字列 | _(省略される場合があります)_ このピアリザベーションの説明(ある場合)。 | +| `Field` | 型 | 説明 | +| :------------ | :----- | :------------------------------------------------------------------------ | +| `node` | 文字列 | この予約の対象となるピアサーバの[ノード公開鍵][]([base58][])。 | +| `description` | 文字列 | _(省略される場合があります)_ このピアリザベーションの説明(ある場合)。 | diff --git a/@l10n/ja/docs/_snippets/port-descriptor-object.md b/@l10n/ja/docs/_snippets/port-descriptor-object.md index 8b383631ea..33ba1f7650 100644 --- a/@l10n/ja/docs/_snippets/port-descriptor-object.md +++ b/@l10n/ja/docs/_snippets/port-descriptor-object.md @@ -1,11 +1,12 @@ ### ポート記述子オブジェクト + `ports`配列の各メンバーは以下のフィールドを持つオブジェクトです。 -| フィールド | 値 | 説明 | -|------------|-------------|-------------| -| `port` | 文字列 - 数値 | サーバがリッスンしているポート番号。 | +| フィールド | 値 | 説明 | +| ---------- | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `port` | 文字列 - 数値 | サーバがリッスンしているポート番号。 | | `protocol` | 文字列の配列 | このポートに接続されているプロトコルの一覧。有効なプロトコルには、JSON-RPCの`http`または`https`、WebSocketの`ws`、`ws2`、`wss`、`wss2`、[gRPC](../infrastructure/configuration/configure-grpc.md)の`grpc`、[XRP Ledgerピアプロトコル](../concepts/networks-and-servers/peer-protocol.md)の`peer`があります。 | {% admonition type="info" name="注記" %}ネットワークインフラによっては、ここで報告されるポートやプロトコルが、外部のネットワークからサーバに到達する方法と一致しないことがあります。例えば、TLSがロードバランサやプロキシで終了する場合、サーバはあるポートで`http`と報告するかもしれませんが、外部からはポート443の`https`でしか到達できないかもしれません。{% /admonition %} diff --git a/@l10n/ja/docs/_snippets/string-number-formatting.md b/@l10n/ja/docs/_snippets/string-number-formatting.md index 6fc407ee56..20e4c9947c 100644 --- a/@l10n/ja/docs/_snippets/string-number-formatting.md +++ b/@l10n/ja/docs/_snippets/string-number-formatting.md @@ -1,8 +1,8 @@ XRP LedgerのAPIでは、[XRP](../introduction/what-is-xrp.md)と[トークン](../concepts/tokens/index.md)の両方で、通貨の金額を数値で表現するために、JSONのネイティブの数値ではなく文字列を使用します。これは、JSONパーサーが自動的にすべてのJSON数値を浮動小数点形式で表現しようとする可能性がある場合に、精度の低下を防ぐためです。String値の中では、数値はネイティブのJSON数値と同じ方法で処理されます。 -* 10進数 -* ゼロの接頭辞なし -* 小数点として`.`を含むことができます。例えば、½は`0.5`と表されます -* 負の金額は`-`から始まります -* `E`または`e`は10の累乗(科学的記数法)を表します。例えば`1.2E5`は1.2×105つまり`120000`と同じです。負の指数も可能です。 -* カンマ(`,`)は使用しません。 +- 10進数 +- ゼロの接頭辞なし +- 小数点として`.`を含むことができます。例えば、½は`0.5`と表されます +- 負の金額は`-`から始まります +- `E`または`e`は10の累乗(科学的記数法)を表します。例えば`1.2E5`は1.2×105つまり`120000`と同じです。負の指数も可能です。 +- カンマ(`,`)は使用しません。 diff --git a/@l10n/ja/docs/_snippets/tx-metadata-field-table.md b/@l10n/ja/docs/_snippets/tx-metadata-field-table.md index 00aad69bd4..6a90fb53d2 100644 --- a/@l10n/ja/docs/_snippets/tx-metadata-field-table.md +++ b/@l10n/ja/docs/_snippets/tx-metadata-field-table.md @@ -1,7 +1,7 @@ -| フィールド | 値 | 説明 | -|:--------------------------------------|:--------------------|:---------------| -| `AffectedNodes` | 配列 | このトランザクションで作成、削除、または修正された[レジャーオブジェクト](../references/protocol/ledger-data/ledger-entry-types/index.md)のリストと、個々のオブジェクトに対する具体的な変更内容。 | -| `DeliveredAmount` | [通貨額](../references/protocol/data-types/basic-data-types.md#通貨額の指定) | **廃止予定。**`delivered_amount`で置き換えられます。Partial Paymentsでない場合は省略されます。 | -| `TransactionIndex` | 符号なし整数 | トランザクションが記録されているレジャーでのトランザクションの位置。この配列は0から始まります。(例えば、値が`2`の場合、そのレジャーの3番目のトランザクションであったことを意味します)。 | -| `TransactionResult` | 文字列 | トランザクションが成功したか、どのような理由で失敗したかを示す[結果コード](../references/protocol/transactions/transaction-results/index.md)。 | +| フィールド | 値 | 説明 | +| :------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `AffectedNodes` | 配列 | このトランザクションで作成、削除、または修正された[レジャーオブジェクト](../references/protocol/ledger-data/ledger-entry-types/index.md)のリストと、個々のオブジェクトに対する具体的な変更内容。 | +| `DeliveredAmount` | [通貨額](../references/protocol/data-types/basic-data-types.md#通貨額の指定) | **廃止予定。**`delivered_amount`で置き換えられます。Partial Paymentsでない場合は省略されます。 | +| `TransactionIndex` | 符号なし整数 | トランザクションが記録されているレジャーでのトランザクションの位置。この配列は0から始まります。(例えば、値が`2`の場合、そのレジャーの3番目のトランザクションであったことを意味します)。 | +| `TransactionResult` | 文字列 | トランザクションが成功したか、どのような理由で失敗したかを示す[結果コード](../references/protocol/transactions/transaction-results/index.md)。 | | [`delivered_amount`](../references/protocol/transactions/metadata.md#delivered_amount) | [通貨額](../references/protocol/data-types/basic-data-types.md#通貨額の指定) | `Destination`アカウントが実際に受取った通貨額。このフィールドは、トランザクションが[Partial Payments](../concepts/payment-types/partial-payments.md)であるかどうかにかかわらず、送金された金額を特定するために使用します。 | diff --git a/@l10n/ja/docs/concepts/accounts/account-types.md b/@l10n/ja/docs/concepts/accounts/account-types.md index 48de34e0de..d0b148b5b1 100644 --- a/@l10n/ja/docs/concepts/accounts/account-types.md +++ b/@l10n/ja/docs/concepts/accounts/account-types.md @@ -2,21 +2,21 @@ html: account-types.html parent: accounts.html seo: - description: XRP Ledgerで自動的にトランザクションを送信するビジネスは、リスクを最小限に抑えるために目的ごとに別のアドレスを設定することをおすすめします。 + description: XRP Ledgerで自動的にトランザクションを送信するビジネスは、リスクを最小限に抑えるために目的ごとに別のアドレスを設定することをおすすめします。 labels: - トークン - セキュリティ --- + # アカウントの種類 {% partial file="/@l10n/ja/docs/_snippets/issuing-and-operational-addresses-intro.md" /%} - ## 資金のライフサイクル トークン発行者がこのような役割を分担すると、以下の図のように資金が一方向に流れるようになります。 -[{% inline-svg file="/docs/img/issued-currency-funds-flow.ja.svg" /%}](/docs/img/issued-currency-funds-flow.ja.svg "図: 発行アドレスから待機アドレス、運用アドレス、顧客アドレスおよびパートナーアドレスに移動し、最後に発行アドレスに戻る資金フロー") +[{% inline-svg file="/docs/img/issued-currency-funds-flow.ja.svg" /%}](/docs/img/issued-currency-funds-flow.ja.svg '図: 発行アドレスから待機アドレス、運用アドレス、顧客アドレスおよびパートナーアドレスに移動し、最後に発行アドレスに戻る資金フロー') 発行アドレスは、待機アドレスに支払いを送信することでトークンを作成します。これらのトークンは(多くの場合)債務を表すため、発行アドレスの観点からはマイナスの価値を持ちます。同じトークンは、待機アドレスの観点も含めると、他の観点からはプラスの価値を持ちます。 @@ -42,7 +42,6 @@ labels: 金融機関はXRP Ledgerで1つの発行アドレスから複数の通貨を発行することができます。ただし、[送金手数料](../tokens/fungible-tokens/transfer-fees.md)のパーセンテージや[Global Freeze](../tokens/fungible-tokens/freezes.md)の状態など、1つのアドレスから発行される全ての(代替可能)トークンに等しく適用される設定もあります。トークンの種類ごとに設定を変えて柔軟に管理したい場合、金融機関は通貨ごとに異なる発行アドレスを使用する必要があります。 - ## 運用アドレス 運用アドレスはレジに似ています。イシュアンスを顧客とパートナーに送信して、金融機関に代わって支払いを行います。トランザクションに自動的に署名するには、運用アドレスの秘密鍵をインターネットに接続されたサーバに保管する必要があります。(秘密鍵は暗号化して保管できますが、サーバがトランザクションに署名する際に秘密鍵を復号化する必要があります。)顧客やパートナーは、運用アドレスへのトラストラインを作成しませんし、作成すべきではありません。 @@ -66,18 +65,17 @@ labels: 待機アドレスの秘密鍵が漏えいした場合、その影響は運用アドレスの場合と同じです。悪意のある第三者は、待機アドレスが保有するすべての残高を盗むことができ、金融機関は顧客やパートナーが何もしなくても、新しい待機アドレスに切り替えることができます。 - ## 関連項目 - **コンセプト:** - - [アカウント](index.md) - - [暗号鍵](cryptographic-keys.md) + - [アカウント](index.md) + - [暗号鍵](cryptographic-keys.md) - **チュートリアル:** - - [レギュラーキーペアの割り当て](../../tutorials/how-tos/manage-account-settings/assign-a-regular-key-pair.md) - - [レギュラーキーペアの変更または削除](../../tutorials/how-tos/manage-account-settings/change-or-remove-a-regular-key-pair.md) + - [レギュラーキーペアの割り当て](../../tutorials/how-tos/manage-account-settings/assign-a-regular-key-pair.md) + - [レギュラーキーペアの変更または削除](../../tutorials/how-tos/manage-account-settings/change-or-remove-a-regular-key-pair.md) - **リファレンス:** - - [account_infoメソッド][] - - [SetRegularKeyトランザクション][] - - [AccountRootオブジェクト](../../references/protocol/ledger-data/ledger-entry-types/accountroot.md) + - [account_infoメソッド][] + - [SetRegularKeyトランザクション][] + - [AccountRootオブジェクト](../../references/protocol/ledger-data/ledger-entry-types/accountroot.md) {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/concepts/accounts/addresses.md b/@l10n/ja/docs/concepts/accounts/addresses.md index 7c79be2701..c213fd859b 100644 --- a/@l10n/ja/docs/concepts/accounts/addresses.md +++ b/@l10n/ja/docs/concepts/accounts/addresses.md @@ -2,10 +2,11 @@ html: addresses.html parent: accounts.html seo: - description: アドレスは、base58フォーマットを使用して、XRP Ledgerのアカウントを一意に識別します。 + description: アドレスは、base58フォーマットを使用して、XRP Ledgerのアカウントを一意に識別します。 labels: - アカウント --- + # アドレス {% partial file="/@l10n/ja/docs/_snippets/data_types/address.md" /%} @@ -14,19 +15,17 @@ labels: キーペアの生成を始めとする有効なアドレスの作成は、厳密には数学的な作業です。キーペアの生成とアドレスの計算は、XRP Ledgerや他のいかなる第三者とも通信することなく、完全にオフラインで行うことができます。公開鍵からアドレスへの変換には一方向ハッシュ関数が使用されるため、公開鍵とアドレスの一致を確認することは可能ですが、アドレスのみから公開鍵を導き出すことは不可能です。(これが署名付きトランザクションに公開鍵と送信者のアドレスを含める理由の一部です)。 - ## 特別なアドレス XRP Ledgerでは、特別な意味や歴史的な役割を持つアドレスがあります。多くの場合、これらは"ブラックホール"アドレスであり、そのアドレスは既知の秘密鍵に由来するものではありません。アドレスから秘密鍵を推測することは事実上不可能であるため、ブラックホールアドレスが保有するXRPは永遠に失われます。 -| アドレス | 名称 | 意味 | ブラック ホール? | -|-------------------------------|-----|-----|----------------| -| `rrrrrrrrrrrrrrrrrrrrrhoLvTp` | ACCOUNT\_ZERO | 値0を[base58][]形式にエンコードしたXRP Ledgerのアドレス。ピアツーピア通信では、このアドレスは、XRPの発行者として`rippled`で使用されます。 | はい | -| `rrrrrrrrrrrrrrrrrrrrBZbvji` | ACCOUNT\_ONE | 値1を[base58][]形式にエンコードしたXRP Ledgerのアドレス。レジャーの[RippleStateエントリ](../../references/protocol/ledger-data/ledger-entry-types/ripplestate.md)では、このアドレスは、トラストライン残高の発行者のプレースホルダーとして使用されます。 | はい | -| `rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh` | ジェネシスアカウント | `rippled`で(スタンドアロンモードなど)新しいジェネシスレジャーが一から開始される場合、このアカウントはすべてのXRPを保持します。このアドレスは、シード値`masterpassphrase`から生成されており、この値は[ハードコーディング](https://github.com/XRPLF/rippled/blob/94ed5b3a53077d815ad0dd65d490c8d37a147361/src/ripple/app/ledger/Ledger.cpp#L184)されています。 | いいえ | -| `rrrrrrrrrrrrrrrrrNAMEtxvNvQ` | Ripple Namesの登録用ブラックホール | 以前、Ripple社は、Ripple Namesを登録するために、このアカウントにXRPを送金するようユーザに求めていました。| はい | -| `rrrrrrrrrrrrrrrrrrrn5RM1rHd` | NaNアドレス | 以前のバージョンの[ripple-lib](https://github.com/XRPLF/xrpl.js)では、XRP Ledgerの[base58][]文字列エンコード形式を使用して、値[NaN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NaN)をエンコードするときにこのアドレスを生成しました。 | はい | - +| アドレス | 名称 | 意味 | ブラック ホール? | +| ------------------------------------ | ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------- | +| `rrrrrrrrrrrrrrrrrrrrrhoLvTp` | ACCOUNT_ZERO | 値0を[base58][]形式にエンコードしたXRP Ledgerのアドレス。ピアツーピア通信では、このアドレスは、XRPの発行者として`rippled`で使用されます。 | はい | +| `rrrrrrrrrrrrrrrrrrrrBZbvji` | ACCOUNT_ONE | 値1を[base58][]形式にエンコードしたXRP Ledgerのアドレス。レジャーの[RippleStateエントリ](../../references/protocol/ledger-data/ledger-entry-types/ripplestate.md)では、このアドレスは、トラストライン残高の発行者のプレースホルダーとして使用されます。 | はい | +| `rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh` | ジェネシスアカウント | `rippled`で(スタンドアロンモードなど)新しいジェネシスレジャーが一から開始される場合、このアカウントはすべてのXRPを保持します。このアドレスは、シード値`masterpassphrase`から生成されており、この値は[ハードコーディング](https://github.com/XRPLF/rippled/blob/94ed5b3a53077d815ad0dd65d490c8d37a147361/src/ripple/app/ledger/Ledger.cpp#L184)されています。 | いいえ | +| `rrrrrrrrrrrrrrrrrNAMEtxvNvQ` | Ripple Namesの登録用ブラックホール | 以前、Ripple社は、Ripple Namesを登録するために、このアカウントにXRPを送金するようユーザに求めていました。 | はい | +| `rrrrrrrrrrrrrrrrrrrn5RM1rHd` | NaNアドレス | 以前のバージョンの[ripple-lib](https://github.com/XRPLF/xrpl.js)では、XRP Ledgerの[base58][]文字列エンコード形式を使用して、値[NaN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NaN)をエンコードするときにこのアドレスを生成しました。 | はい | ## アドレスのエンコード @@ -38,58 +37,58 @@ XRP Ledgerのアドレスは、[base58][]形式の _ディクショナリ_ `rpsh 次の図は、キーとアドレスの関係を示しています -[{% inline-svg file="/docs/img/address-encoding.ja.svg" /%}](/docs/img/address-encoding.ja.svg "マスター公開鍵 + タイプ接頭辞 → アカウントID + チェックサム → アドレス") +[{% inline-svg file="/docs/img/address-encoding.ja.svg" /%}](/docs/img/address-encoding.ja.svg 'マスター公開鍵 + タイプ接頭辞 → アカウントID + チェックサム → アドレス') 公開鍵からXRP Ledgerアドレスを計算する式は次の通りです。完全なサンプルコードついては、[`encode_address.js`](https://github.com/XRPLF/xrpl-dev-portal/blob/master/_code-samples/address_encoding/js/encode_address.js)をご覧ください。パスフレーズまたはシード値から公開鍵を導出するプロセスについては、[鍵の導出](cryptographic-keys.md#鍵導出)をご覧ください。 1. 次の必須アルゴリズムをインポートします。SHA-256、RIPEMD160、base58。base58のディクショナリを設定します。 - ``` - 'use strict'; - const assert = require('assert'); - const crypto = require('crypto'); - const R_B58_DICT = 'rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz'; - const base58 = require('base-x')(R_B58_DICT); + ``` + 'use strict'; + const assert = require('assert'); + const crypto = require('crypto'); + const R_B58_DICT = 'rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz'; + const base58 = require('base-x')(R_B58_DICT); - assert(crypto.getHashes().includes('sha256')); - assert(crypto.getHashes().includes('ripemd160')); - ``` + assert(crypto.getHashes().includes('sha256')); + assert(crypto.getHashes().includes('ripemd160')); + ``` 2. 33バイトのECDSA secp256k1公開鍵、または32バイトのEd25519公開鍵で始めます。Ed25519キーの場合は、キーの前にバイト文字`0xED`を付与します。 - ``` - const pubkey_hex = - 'ED9434799226374926EDA3B54B1B461B4ABF7237962EAE18528FEA67595397FA32'; - const pubkey = Buffer.from(pubkey_hex, 'hex'); - assert(pubkey.length == 33); - ``` + ``` + const pubkey_hex = + 'ED9434799226374926EDA3B54B1B461B4ABF7237962EAE18528FEA67595397FA32'; + const pubkey = Buffer.from(pubkey_hex, 'hex'); + assert(pubkey.length == 33); + ``` 3. 公開鍵のSHA-256ハッシュの[RIPEMD160](https://en.wikipedia.org/wiki/RIPEMD)ハッシュを計算します。この値は「Account ID」です。 - ``` - const pubkey_inner_hash = crypto.createHash('sha256').update(pubkey); - const pubkey_outer_hash = crypto.createHash('ripemd160'); - pubkey_outer_hash.update(pubkey_inner_hash.digest()); - const account_id = pubkey_outer_hash.digest(); - ``` + ``` + const pubkey_inner_hash = crypto.createHash('sha256').update(pubkey); + const pubkey_outer_hash = crypto.createHash('ripemd160'); + pubkey_outer_hash.update(pubkey_inner_hash.digest()); + const account_id = pubkey_outer_hash.digest(); + ``` 4. アカウントIDのSHA-256ハッシュのSHA-256ハッシュを計算します。最初の4バイトを使用します。この値が「チェックサム」です。 - ``` - const address_type_prefix = Buffer.from([0x00]); - const payload = Buffer.concat([address_type_prefix, account_id]); - const chksum_hash1 = crypto.createHash('sha256').update(payload).digest(); - const chksum_hash2 = crypto.createHash('sha256').update(chksum_hash1).digest(); - const checksum = chksum_hash2.slice(0,4); - ``` + ``` + const address_type_prefix = Buffer.from([0x00]); + const payload = Buffer.concat([address_type_prefix, account_id]); + const chksum_hash1 = crypto.createHash('sha256').update(payload).digest(); + const chksum_hash2 = crypto.createHash('sha256').update(chksum_hash1).digest(); + const checksum = chksum_hash2.slice(0,4); + ``` 5. ペイロードとチェックサムを連結します。連結バッファーのbase58値を計算します。この結果が、アドレスになります。 - ``` - const dataToEncode = Buffer.concat([payload, checksum]); - const address = base58.encode(dataToEncode); - console.log(address); - // rDTXLQ7ZKZVKz33zJbHjgVShjsBnqMBhmN - ``` + ``` + const dataToEncode = Buffer.concat([payload, checksum]); + const address = base58.encode(dataToEncode); + console.log(address); + // rDTXLQ7ZKZVKz33zJbHjgVShjsBnqMBhmN + ``` {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/concepts/accounts/cryptographic-keys.md b/@l10n/ja/docs/concepts/accounts/cryptographic-keys.md index 6b117e624d..3d08572200 100644 --- a/@l10n/ja/docs/concepts/accounts/cryptographic-keys.md +++ b/@l10n/ja/docs/concepts/accounts/cryptographic-keys.md @@ -2,11 +2,12 @@ html: cryptographic-keys.html parent: accounts.html seo: - description: 暗号鍵を使用してトランザクションを承認し、XRP Ledgerがトランザクションを実行できるようにします。 + description: 暗号鍵を使用してトランザクションを承認し、XRP Ledgerがトランザクションを実行できるようにします。 labels: - セキュリティ - スマートコントラクト --- + # 暗号鍵 XRP Ledgerでは、[トランザクション](../transactions/index.md)による一連の具体的なアクションの実行が承認されていることを、デジタル署名によって証明します。署名されたトランザクションのみがネットワークに送信され、検証済みレジャーに含まれます。 @@ -21,14 +22,13 @@ XRP Ledgerでは、[トランザクション](../transactions/index.md)による 注:ツールによってデフォルト値が異なります。多くのクライアントライブラリ(xrpl.jsなど)は、デフォルトの暗号化アルゴリズムとしてEd25519を使用していますが、rippledの管理者向けRPCコマンドである[wallet_propose](../../references/http-websocket-apis/admin-api-methods/key-generation-methods/wallet_propose.md)は、デフォルトとしてsecp256k1を使用しています。つまり、アルゴリズムを明示的に指定しない限り、同じシードから別のツールを使用してウォレットを生成すると、異なるアドレスが生成される可能性があります。 - ## キーの構成要素 暗号鍵ペアは、鍵の導出プロセスを通じて数学的に関連づけられる**秘密鍵**と**公開鍵**のことです。秘密鍵は、強力なランダム性によって決定されなければなりません。[暗号化署名アルゴリズム](#署名アルゴリズム)は、鍵の導出プロセスを定義し、暗号鍵となり得る数値の制限を設定します。 XRP Ledgerを扱う場合、パスフレーズ、シード、アカウントID、アドレスなど、いくつかの関連する値を使用することもあります。 -[{% inline-svg file="/docs/img/cryptographic-keys.ja.svg" /%}](/docs/img/cryptographic-keys.ja.svg "Diagram: パスフレーズ → シード → 秘密鍵 → 公開鍵 → アカウントID ←→ アドレス") +[{% inline-svg file="/docs/img/cryptographic-keys.ja.svg" /%}](/docs/img/cryptographic-keys.ja.svg 'Diagram: パスフレーズ → シード → 秘密鍵 → 公開鍵 → アカウントID ←→ アドレス') _図: 暗号鍵の値の関係を簡略化した図_ パスフレーズ、シード、秘密鍵は**秘密情報**であり、あるアカウントのこれらの値のいずれかを知っていれば、有効な署名を行うことができ、そのアカウントを完全に制御することができます。もしあなたがアカウントを所有しているのであれば、アカウントの秘密情報には**細心の注意を払ってください**。もしあなたがそれらを持っていないなら、あなたは自分のアカウントを利用することはできません。もし他の誰かがそれらにアクセスすることができれば、彼らはあなたのアカウントをコントロールすることができます。 @@ -61,7 +61,6 @@ _秘密鍵_ は、デジタル署名を作成するために使用される値 XRP Ledgerのトランザクションには、ネットワークがトランザクションの署名を検証できるように、公開鍵が含まれている必要があります。公開鍵は有効な署名を作成するために使用することはできないので、公開しても問題はありません。 - ### アカウントIDとアドレス **アカウントID**は、[アカウント](index.md)またはキーペアの中核となる識別子です。これは公開鍵から派生します。XRP Ledgerのプロトコルでは、アカウントIDは20バイトのバイナリデータです。ほとんどのXRP Ledger APIは、アカウントIDをアドレスとして表現し、次の2つのフォーマットのうちの1つで表現します。 @@ -81,7 +80,6 @@ XRP Ledgerは、複数の[暗号署名アルゴリズム](#署名アルゴリズ [wallet_proposeメソッド][]の`key_type`フィールドは、使用する暗号化署名アルゴリズムを指します。 - ## マスターキーペア マスターキーペアは、秘密鍵と公開鍵で構成されています。アカウントのアドレスは、そのアカウントのマスターキーペアから得られるので、両者は[本質的な関係](addresses.md#アドレスのエンコード)となります。マスターキーペアの変更・削除はできませんが、無効にすることはできます。 @@ -94,8 +92,6 @@ XRP Ledgerは、複数の[暗号署名アルゴリズム](#署名アルゴリズ マスターキーペアをオフラインで保管する際には、不正使用者がアクセスできる場所に秘密情報(パスフレーズ、シード、秘密鍵)を保管しないようにします。たとえば、インターネットに一切接続されない物理的に隔離されたマシンに保管したり、紙に記入して安全な場所に保管します。一般的には、インターネットと相互にやり取りをするコンピュータプログラムがアクセスできる範囲内には保管しません。マスターキーペアは、緊急時(漏えいの恐れがある場合や実際に漏えいが発生した場合にレギュラーキーペアを変更するなど)に限り、最も信頼できるデバイスでのみ使用することが理想的です。 - - ### 特殊な権限 **マスターキーペアのみ**が、ある特定の処理を行うトランザクションを承認することができます。 @@ -110,7 +106,6 @@ XRP Ledgerは、複数の[暗号署名アルゴリズム](#署名アルゴリズ レギュラーキーや[マルチシグ](multi-signing.md)は、マスターキーペアと同じようにその他の処理を行うことができます。特に、マスターキーペアを無効にした後、レギュラーキーペアやマルチシグを使用して再び有効にすることができます。また、削除の条件を満たしていれば、[アカウントの削除](deleting-accounts.md)を行うことも可能です。 - ## レギュラーキーペア XRP Ledgerアカウントは、_レギュラーキーペア_ と呼ばれるセカンダリキーペアを許可することができます。そうすると、[マスターキーペア](#マスターキーペア)とレギュラーキーのどちらかを使ってトランザクションを承認することができるようになります。レギュラーキーペアは、アカウントの他の部分を変更することなく、いつでも削除または変更することができます。 @@ -123,28 +118,25 @@ XRP Ledgerアカウントは、_レギュラーキーペア_ と呼ばれるセ [SetRegularKeyトランザクション][]は、アカウントのレギュラーキーペアを割り当てたり変更したりします。レギュラーキーペアの割り当てまたは変更に関するチュートリアルは、[レギュラーキーペアの割り当て](../../tutorials/how-tos/manage-account-settings/assign-a-regular-key-pair.md)をご覧ください - ## 署名アルゴリズム 暗号鍵ペアは常に特定の署名アルゴリズムに関連付けられています。署名アルゴリズムは、秘密鍵と公開鍵の間の数学的関係を定義します。暗号化署名アルゴリズムには、現在の暗号技術では、秘密鍵を使用して対応する公開鍵を「簡単に」計算できるものの、公開鍵から対応する秘密鍵を計算することは実質的に不可能であるという特性があります。 XRP Ledgerでは次の暗号化署名アルゴリズムがサポートされています。 -| キータイプ | アルゴリズム | 説明 | -|-------------|-----------|---| -| `secp256k1` | 楕円曲線[secp256k1](https://en.bitcoin.it/wiki/Secp256k1)を使用する[ECDSA](https://en.wikipedia.org/wiki/Elliptic_Curve_Digital_Signature_Algorithm) | これはBitcoinで使用されているスキームです。XRP Ledgerではデフォルトでこのキータイプが使用されます。 | -| `ed25519` | 楕円曲線[Ed25519](https://ed25519.cr.yp.to/)を使用する[EdDSA](https://tools.ietf.org/html/rfc8032) | パフォーマンスに優れ、その他の便利な特性を備えた新しいアルゴリズムです。Ed25519公開鍵はsecp256k1鍵よりも1バイト短いため、`rippled`ではEd25519公開鍵の先頭に`0xED`バイトが追加されます。これにより、両方の公開鍵タイプは33バイトになります。 | +| キータイプ | アルゴリズム | 説明 | +| ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `secp256k1` | 楕円曲線[secp256k1](https://en.bitcoin.it/wiki/Secp256k1)を使用する[ECDSA](https://en.wikipedia.org/wiki/Elliptic_Curve_Digital_Signature_Algorithm) | これはBitcoinで使用されているスキームです。XRP Ledgerではデフォルトでこのキータイプが使用されます。 | +| `ed25519` | 楕円曲線[Ed25519](https://ed25519.cr.yp.to/)を使用する[EdDSA](https://tools.ietf.org/html/rfc8032) | パフォーマンスに優れ、その他の便利な特性を備えた新しいアルゴリズムです。Ed25519公開鍵はsecp256k1鍵よりも1バイト短いため、`rippled`ではEd25519公開鍵の先頭に`0xED`バイトが追加されます。これにより、両方の公開鍵タイプは33バイトになります。 | [wallet_proposeメソッド][]を使用してキーペアを生成するときには、キーの生成に使用する暗号化署名アルゴリズムを選択するため`key_type`を指定できます。デフォルト以外のキータイプを生成した場合は、トランザクションに署名する際に`key_type`も指定する必要があります。 XRP Ledgerでは、サポートされているさまざまなタイプのキーペアは、マスターキーペア、レギュラーキーペア、署名者リストメンバーとして互換的に使用できます。[アドレス生成](addresses.md#アドレスのエンコード)プロセスは、secp256k1キーペアとEd25519キーペアでは同一です。 - ### 将来のアルゴリズム 今後、暗号技術の発展に対応するため、XRP Ledgerには新しい暗号化署名アルゴリズムが必要になるでしょう。例えば、[Shorのアルゴリズム](https://en.wikipedia.org/wiki/Shor's_algorithm)(または類似のアルゴリズム)を使用する量子コンピュータの実用化が間近となり、楕円曲線暗号が解読される可能性が生じた場合、XRP Ledger開発者は容易に解読できない暗号化署名アルゴリズムを追加できます。2019年半ばの時点で、確実な第一選択肢となる「耐量子」署名アルゴリズムはなく、量子コンピュータはまだ脅威となるほど実用的ではないため、現時点では特定のアルゴリズムを追加する予定はありません。 - ## 鍵導出 キーペアを導出するプロセスは、署名アルゴリズムによって異なります。いずれの場合も、キーは長さが16バイト(128ビット)の _シード_ 値から生成されます。シード値は完全にランダムにする(推奨)か、[SHA-512ハッシュ][ハッシュ]を取得して最初の16バイトを保持することで特定のパスフレーズから導出することができます([SHA-512Half][]と同様ですが、出力の256ビットではなく128ビットのみを保持します)。 @@ -154,37 +146,39 @@ XRP Ledgerでは、サポートされているさまざまなタイプのキー ここで説明する鍵導出プロセスは、さまざまなプログラミング言語で複数の場所に実装されています。 - C++: `rippled`コードベース: - - [シード定義](https://github.com/XRPLF/rippled/blob/develop/src/ripple/protocol/Seed.h) - - [汎用キー & Ed25519鍵導出](https://github.com/XRPLF/rippled/blob/develop/src/ripple/protocol/impl/SecretKey.cpp) - - [secp256k1鍵導出](https://github.com/XRPLF/rippled/blob/develop/src/ripple/protocol/impl/SecretKey.cpp) + - [シード定義](https://github.com/XRPLF/rippled/blob/develop/src/ripple/protocol/Seed.h) + - [汎用キー & Ed25519鍵導出](https://github.com/XRPLF/rippled/blob/develop/src/ripple/protocol/impl/SecretKey.cpp) + - [secp256k1鍵導出](https://github.com/XRPLF/rippled/blob/develop/src/ripple/protocol/impl/SecretKey.cpp) - Python 3: {% repo-link path="_code-samples/key-derivation/py/key_derivation.py" %}このリポジトリのコードサンプルセクション{% /repo-link %} - JavaScript: [`ripple-keypairs`](https://github.com/XRPLF/xrpl.js/tree/main/packages/ripple-keypairs)パッケージ ### Ed25519鍵導出 + [[ソース]](https://github.com/XRPLF/rippled/blob/fc7ecd672a3b9748bfea52ce65996e324553c05f/src/ripple/protocol/impl/SecretKey.cpp#L203 "Source") -[{% inline-svg file="/docs/img/key-derivation-ed25519.ja.svg" /%}](/docs/img/key-derivation-ed25519.ja.svg "パスフレーズ → シード → 秘密鍵 → プレフィクス + 公開鍵") +[{% inline-svg file="/docs/img/key-derivation-ed25519.ja.svg" /%}](/docs/img/key-derivation-ed25519.ja.svg 'パスフレーズ → シード → 秘密鍵 → プレフィクス + 公開鍵') 1. シード値の[SHA-512Half][]を計算します。32バイトの秘密鍵が導出されます。 - {% admonition type="success" name="ヒント" %}32バイトの数値はすべて、有効なEd25519秘密鍵です。ただし、秘密鍵として使用する上で安全なのは、十分ランダムに選択された数値のみです。{% /admonition %} + {% admonition type="success" name="ヒント" %}32バイトの数値はすべて、有効なEd25519秘密鍵です。ただし、秘密鍵として使用する上で安全なのは、十分ランダムに選択された数値のみです。{% /admonition %} 2. Ed25519公開鍵を計算するには、[Ed25519](https://ed25519.cr.yp.to/software.html)の標準公開鍵を導出して、32バイトの公開鍵を導出します。 - {% admonition type="warning" name="注意" %}暗号化アルゴリズムの場合と同様に、可能な場合は必ず、公的に監査された既知の標準実装を使用します。例えば、[OpenSSL](https://www.openssl.org/)には、コア関数であるEd25519やsecp256k1が実装されています。{% /admonition %} + {% admonition type="warning" name="注意" %}暗号化アルゴリズムの場合と同様に、可能な場合は必ず、公的に監査された既知の標準実装を使用します。例えば、[OpenSSL](https://www.openssl.org/)には、コア関数であるEd25519やsecp256k1が実装されています。{% /admonition %} 3. Ed25519公開鍵を示すには、32バイトの公開鍵の前にシングルバイトのプレフィクス`0xED`を付加し、33バイトにします。 - トランザクションに署名するコードを実装している場合は、プレフィクス`0xED`を削除し、実際の署名プロセスに32バイトキーを使用します。 + トランザクションに署名するコードを実装している場合は、プレフィクス`0xED`を削除し、実際の署名プロセスに32バイトキーを使用します。 4. アカウントの公開鍵を[base58][]にシリアル化する場合は、アカウントの公開鍵プレフィクス`0x23`を使用します。 - バリデータの一時キーにEd25519を使用することはできません。 + バリデータの一時キーにEd25519を使用することはできません。 ### secp256k1鍵導出 + [[ソース]](https://github.com/XRPLF/rippled/blob/develop/src/ripple/protocol/impl/SecretKey.cpp "Source") -[{% inline-svg file="/docs/img/key-derivation-secp256k1.ja.svg" /%}](/docs/img/key-derivation-secp256k1.ja.svg "パスフレーズ → シード → ルートキーペア → 仲介銀行(機関)キーペア → マスターキーペア") +[{% inline-svg file="/docs/img/key-derivation-secp256k1.ja.svg" /%}](/docs/img/key-derivation-secp256k1.ja.svg 'パスフレーズ → シード → ルートキーペア → 仲介銀行(機関)キーペア → マスターキーペア') XRP Ledgerアカウントキーでのsecp256k1鍵導出に、Ed25519鍵導出よりも多くの手順が含まれる理由は次のとおりです。 @@ -194,68 +188,64 @@ XRP Ledgerアカウントキーでのsecp256k1鍵導出に、Ed25519鍵導出よ シード値からXRP Ledgerのsecp256k1アカウントキーペアを導出する手順は次のとおりです。 1. 次のように、シード値から「ルートキーペア」を計算します。 + 1. 以下を順番に連結して、合計20バイトにします。 + - シード値(16バイト) + - 「ルートシーケンス」値(4バイト)。ビッグエンディアンの符号なし整数。ルートシーケンスの開始値として0を使用します。 - 1. 以下を順番に連結して、合計20バイトにします。 - - シード値(16バイト) - - 「ルートシーケンス」値(4バイト)。ビッグエンディアンの符号なし整数。ルートシーケンスの開始値として0を使用します。 + 2. 連結された(シード+ルートシーケンス)値の[SHA-512Half][]を計算します。 - 2. 連結された(シード+ルートシーケンス)値の[SHA-512Half][]を計算します。 + 3. 結果が有効なsecp256k1秘密鍵でない場合は、ルートシーケンスを1増やして最初からやり直します。[[ソース]](https://github.com/XRPLF/rippled/blob/fc7ecd672a3b9748bfea52ce65996e324553c05f/src/ripple/crypto/impl/GenerateDeterministicKey.cpp#L103 "Source") - 3. 結果が有効なsecp256k1秘密鍵でない場合は、ルートシーケンスを1増やして最初からやり直します。[[ソース]](https://github.com/XRPLF/rippled/blob/fc7ecd672a3b9748bfea52ce65996e324553c05f/src/ripple/crypto/impl/GenerateDeterministicKey.cpp#L103 "Source") + 有効なsecp256k1鍵は0であってはならず、 _secp256k1グループ_ の数値順よりも低くなければなりません。secp256k1グループの順序は、定数`0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141`です。 - 有効なsecp256k1鍵は0であってはならず、 _secp256k1グループ_ の数値順よりも低くなければなりません。secp256k1グループの順序は、定数`0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141`です。 + 4. 有効なsecp256k1秘密鍵を使用して、secp256k1曲線で標準ECDSA公開鍵を導出し、ルート公開鍵を導出します。(暗号化アルゴリズムの場合と同様に、可能な場合は必ず、公的に監査された既知の標準実装を使用します。例えば、[OpenSSL](https://www.openssl.org/)には、コア関数であるEd25519およびsecp256k1が実装されています。) - 4. 有効なsecp256k1秘密鍵を使用して、secp256k1曲線で標準ECDSA公開鍵を導出し、ルート公開鍵を導出します。(暗号化アルゴリズムの場合と同様に、可能な場合は必ず、公的に監査された既知の標準実装を使用します。例えば、[OpenSSL](https://www.openssl.org/)には、コア関数であるEd25519およびsecp256k1が実装されています。) - - {% admonition type="success" name="ヒント" %}バリデータではこのルートキーペアを使用します。バリデータのキーペアを計算する場合は、ここで停止できます。この2つのタイプの公開鍵を区別するには、バリデータの公開鍵の[base58][]シリアル化でプレフィクス`0x1c`を使用します。{% /admonition %} + {% admonition type="success" name="ヒント" %}バリデータではこのルートキーペアを使用します。バリデータのキーペアを計算する場合は、ここで停止できます。この2つのタイプの公開鍵を区別するには、バリデータの公開鍵の[base58][]シリアル化でプレフィクス`0x1c`を使用します。{% /admonition %} 2. ルート公開鍵を33バイトの圧縮形式に変換します。 - ECDSA公開鍵の非圧縮形式は、32バイト整数のペア(X座標とY座標)で構成されます。圧縮形式は、X座標と1バイトのプレフィクスのみで構成されます。Y座標が偶数の場合は`0x02`、Y座標が奇数の場合は`0x03`です。 + ECDSA公開鍵の非圧縮形式は、32バイト整数のペア(X座標とY座標)で構成されます。圧縮形式は、X座標と1バイトのプレフィクスのみで構成されます。Y座標が偶数の場合は`0x02`、Y座標が奇数の場合は`0x03`です。 非圧縮形式の公開鍵を圧縮形式に変換するには、`openssl`コマンドラインツールを使用します。例えば、非圧縮の公開鍵がファイル`ec-pub.pem`にある場合は、次のような圧縮形式を出力できます。 - ``` - $ openssl ec -in ec-pub.pem -pubin -text -noout -conv_form compressed - ``` + ``` + $ openssl ec -in ec-pub.pem -pubin -text -noout -conv_form compressed + ``` 3. 次のように、圧縮されたルート公開鍵から「仲介銀行(機関)キーペア」を導出します。 + 1. 以下を順番に連結して、合計40バイトにします。 + - 圧縮されたルート公開鍵(33バイト) + - `0x00000000000000000000000000000000`(4バイトのゼロ)(この値は、同じファミリーの異なるメンバーの導出に使用することを目的としていましたが、実際には値0のみが使用されます。) + - 「キーシーケンス」値(4バイト)。ビッグエンディアンの符号なし整数。キーシーケンスの開始値として0を使用します。 - 1. 以下を順番に連結して、合計40バイトにします。 - - 圧縮されたルート公開鍵(33バイト) - - `0x00000000000000000000000000000000`(4バイトのゼロ)(この値は、同じファミリーの異なるメンバーの導出に使用することを目的としていましたが、実際には値0のみが使用されます。) - - 「キーシーケンス」値(4バイト)。ビッグエンディアンの符号なし整数。キーシーケンスの開始値として0を使用します。 + 2. 連結された値の[SHA-512Half][]を計算します。 - 2. 連結された値の[SHA-512Half][]を計算します。 + 3. 結果が有効なsecp256k1秘密鍵でない場合は、キーシーケンスを1増やし、アカウントの仲介銀行(機関)キーペアの導出をやり直します。 - 3. 結果が有効なsecp256k1秘密鍵でない場合は、キーシーケンスを1増やし、アカウントの仲介銀行(機関)キーペアの導出をやり直します。 - - 4. 有効なsecp256k1秘密鍵を使用して、secp256k1曲線で標準ECDSA公開鍵を導出し、仲介銀行(機関)公開鍵を導出します。(暗号化アルゴリズムの場合と同様に、可能な場合は必ず、公的に監査された既知の標準実装を使用します。例えば、[OpenSSL](https://www.openssl.org/)には、コア関数であるEd25519およびsecp256k1が実装されています。) + 4. 有効なsecp256k1秘密鍵を使用して、secp256k1曲線で標準ECDSA公開鍵を導出し、仲介銀行(機関)公開鍵を導出します。(暗号化アルゴリズムの場合と同様に、可能な場合は必ず、公的に監査された既知の標準実装を使用します。例えば、[OpenSSL](https://www.openssl.org/)には、コア関数であるEd25519およびsecp256k1が実装されています。) 4. 仲介銀行(機関)公開鍵をルート公開鍵に追加して、マスター公開鍵ペアを導出します。同様に、仲介銀行(機関)秘密鍵をルート秘密鍵に追加して秘密鍵を導出します。 + - ECDSA秘密鍵は非常に大きな整数値であるため、secp256k1グループ順序を法として2つの秘密鍵を合計することで、2つの秘密鍵の合計を計算できます。 - - ECDSA秘密鍵は非常に大きな整数値であるため、secp256k1グループ順序を法として2つの秘密鍵を合計することで、2つの秘密鍵の合計を計算できます。 - - - ECDSA公開鍵は楕円曲線上の点であるため、楕円曲線の数値を使用して点の合計値を計算する必要があります。 + - ECDSA公開鍵は楕円曲線上の点であるため、楕円曲線の数値を使用して点の合計値を計算する必要があります。 5. 以前と同様に、マスター公開鍵を33バイトの圧縮形式に変換します。 6. アカウントの公開鍵を[base58][]形式にシリアル化する場合は、アカウントの公開鍵プレフィクス`0x23`を使用します。 - アカウントの公開鍵からそのアドレスに変換するための情報とサンプルコードについては、[アドレスのエンコード](addresses.md#アドレスのエンコード)をご覧ください。 - + アカウントの公開鍵からそのアドレスに変換するための情報とサンプルコードについては、[アドレスのエンコード](addresses.md#アドレスのエンコード)をご覧ください。 ## 関連項目 - **コンセプト:** - - [発行アドレスと運用アドレス](account-types.md) + - [発行アドレスと運用アドレス](account-types.md) - **チュートリアル:** - - [レギュラーキーペアの割り当て](../../tutorials/how-tos/manage-account-settings/assign-a-regular-key-pair.md) - - [レギュラーキーペアの変更または削除](../../tutorials/how-tos/manage-account-settings/change-or-remove-a-regular-key-pair.md) + - [レギュラーキーペアの割り当て](../../tutorials/how-tos/manage-account-settings/assign-a-regular-key-pair.md) + - [レギュラーキーペアの変更または削除](../../tutorials/how-tos/manage-account-settings/change-or-remove-a-regular-key-pair.md) - **リファレンス:** - - [SetRegularKeyトランザクション][] - - [AccountRootレジャーオブジェクト](../../references/protocol/ledger-data/ledger-entry-types/accountroot.md) - - [wallet_proposeメソッド][] - - [account_infoメソッド][] + - [SetRegularKeyトランザクション][] + - [AccountRootレジャーオブジェクト](../../references/protocol/ledger-data/ledger-entry-types/accountroot.md) + - [wallet_proposeメソッド][] + - [account_infoメソッド][] {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/concepts/accounts/deleting-accounts.md b/@l10n/ja/docs/concepts/accounts/deleting-accounts.md index 5add0aae99..1270335104 100644 --- a/@l10n/ja/docs/concepts/accounts/deleting-accounts.md +++ b/@l10n/ja/docs/concepts/accounts/deleting-accounts.md @@ -2,10 +2,11 @@ html: deleting-accounts.html parent: accounts.html seo: - description: XRP Ledgerのアカウントの削除について。 + description: XRP Ledgerのアカウントの削除について。 labels: - アカウント --- + # アカウントの削除 アカウントの所有者は[AccountDeleteトランザクション][]を送信することで、レジャーからアカウントと関連するエントリを削除し、アカウントの残りのXRP残高のほとんどを別のアカウントに送ることができます。アカウントの無駄な作成と削除を抑止するため、アカウントの削除には[トランザクションコスト](../transactions/transaction-cost.md)として通常よりも多くのXRPをバーンする必要があります。 @@ -13,22 +14,19 @@ labels: いくつかの種類のレジャーエントリを保有している場合、アカウントの削除がブロックされます。たとえば、(代替可能)トークンの発行者は、そのトークンの発行残高がゼロでなければ、削除することはできません。 アカウントは削除した後、通常の[アカウントの作成方法](index.md#creating-accounts)によって再作成できます。削除後に再作成されたアカウントと、初めて作成されたアカウントに違いはありません。 - - ## 要件 アカウントを削除するには、次の条件を満たす必要があります。 - アカウントの`Sequence`番号に256を加えた値が、現在の[レジャーインデックス][]未満であること。 - アカウントが次の[レジャーエントリ](../../references/protocol/ledger-data/ledger-entry-types/index.md)のいずれも(送金元または受取人として)保有していないこと。 - - `Escrow` - - `PayChannel` - - `RippleState` - - `Check` + - `Escrow` + - `PayChannel` + - `RippleState` + - `Check` - アカウントがレジャー内に所有するオブジェクトが1000個未満であること。 - トランザクションの送信時、少なくとも1つ分の[所有者準備金](reserves.md)(現在2XRP)に相当する特別な[トランザクションコスト][]を支払う必要があります。 - ## 削除コスト {% admonition type="warning" name="注意" %}アカウントの削除要件を満たしていないためにトランザクションが失敗した場合でも、[AccountDeleteトランザクション][]のトランザクションコストは、トランザクションが検証済みレジャーに含まれる場合常に発生します。アカウントを削除できなかった場合に高いトランザクションコストを支払う可能性を減らすには、AccountDeleteトランザクションを送信するときに`fail_hard`オプションを使用してください。{% /admonition %} diff --git a/@l10n/ja/docs/concepts/accounts/depositauth.md b/@l10n/ja/docs/concepts/accounts/depositauth.md index ebc9ae146f..329760c174 100644 --- a/@l10n/ja/docs/concepts/accounts/depositauth.md +++ b/@l10n/ja/docs/concepts/accounts/depositauth.md @@ -1,11 +1,12 @@ --- seo: - description: DepositAuth設定をすると、アカウントは着信ペイメントをデフォルトでブロックします。 + description: DepositAuth設定をすると、アカウントは着信ペイメントをデフォルトでブロックします。 labels: - - セキュリティ - - 支払い -outdated_translation: true  + - セキュリティ + - 支払い +outdated_translation: true --- + # Deposit Authorization Deposit Authorizationは、XRP Ledgerの[アカウント](index.md)のオプション機能です。Deposit Authorizationが有効な場合、トランザクションはそのトランザクションの送信者がアカウント自体でない限り、アカウントへはどのような資産も送信できません。Deposit Authorizationのアカウントは、次の2つの方法でのみ入金することができます。 @@ -40,22 +41,22 @@ Deposit Authorizationを最大限に活用するため、以下の実施を推 Deposit Authorizationが有効化されているアカウントの特徴は次のとおりです。 - [Paymentトランザクション][]の送信先には**できません**。ただし**以下の例外**は除きます。 - - 送金先により、支払の送金元が[事前承認](#事前承認)されている場合。{% amendment-disclaimer name="DepositPreauth" /%} - - アカウントのXRP残高がアカウントの最低[必要準備金](reserves.md)以下で、XRP PaymentのAmountがアカウントの最低準備金(現時点では10XRP)以下である場合は、このアカウントを送金先に指定できます。これにより、アカウントがトランザクションを送信することも、XRPを受領することもできずに操作不可能な状態になるのを防ぎます。この場合、アカウントの所有者の準備金は関係ありません。 + - 送金先により、支払の送金元が[事前承認](#事前承認)されている場合。{% amendment-disclaimer name="DepositPreauth" /%} + - アカウントのXRP残高がアカウントの最低[必要準備金](reserves.md)以下で、XRP PaymentのAmountがアカウントの最低準備金(現時点では10XRP)以下である場合は、このアカウントを送金先に指定できます。これにより、アカウントがトランザクションを送信することも、XRPを受領することもできずに操作不可能な状態になるのを防ぎます。この場合、アカウントの所有者の準備金は関係ありません。 - **以下に該当する場合にのみ**[PaymentChannelClaimトランザクション][]からXRPを受領できます。 - - PaymentChannelClaimトランザクションの送金元がPayment Channelの送金先である場合。 - - PaymentChannelClaimトランザクションの送金先がPaymentChannelClaimの送金元を[事前承認している](#事前承認)場合。{% amendment-disclaimer name="DepositPreauth" /%} + - PaymentChannelClaimトランザクションの送金元がPayment Channelの送金先である場合。 + - PaymentChannelClaimトランザクションの送金先がPaymentChannelClaimの送金元を[事前承認している](#事前承認)場合。{% amendment-disclaimer name="DepositPreauth" /%} - **以下に該当する場合にのみ**[EscrowFinishトランザクション][]からXRPを受領できます。 - - EscrowFinishトランザクションの送金元がEscrowの送金先である場合。 - - EscrowFinishトランザクションの送金先がEscrowFinishの送金元を[事前承認している](#事前承認)場合。{% amendment-disclaimer name="DepositPreauth" /%} + - EscrowFinishトランザクションの送金元がEscrowの送金先である場合。 + - EscrowFinishトランザクションの送金先がEscrowFinishの送金元を[事前承認している](#事前承認)場合。{% amendment-disclaimer name="DepositPreauth" /%} - [CheckCash][]トランザクションを送信してXRPまたはトークンを受領**できます**。 {% amendment-disclaimer name="Checks" /%} - [OfferCreateトランザクション][]を送信してXRPまたはトークンを受領**できます**。 - - 即時には完全に実行されないOfferCreateトランザクションがアカウントから送信される場合、このアカウントは、後でオファーが他のアカウントの[Payment][]トランザクションと[OfferCreate][]トランザクションによって消費される時点で、注文済みXRPとトークンのリマインダーを受信する**ことがあります**。 + - 即時には完全に実行されないOfferCreateトランザクションがアカウントから送信される場合、このアカウントは、後でオファーが他のアカウントの[Payment][]トランザクションと[OfferCreate][]トランザクションによって消費される時点で、注文済みXRPとトークンのリマインダーを受信する**ことがあります**。 - アカウントが[NoRippleフラグ](../tokens/fungible-tokens/rippling.md)を有効にせずにトラストラインを作成している場合、またはDefaultRippleフラグを有効にして通貨を発行した場合は、アカウントはRipplingの結果として、[Paymentトランザクション][]でそれらのトラストラインのトークンを受領**できます**。このようなトランザクションの送金先にすることはできません。 - 一般的に、以下のすべての条件に該当する場合は、XRP LedgerのアカウントはXRP LedgerでXRP以外の通貨を受領**できません**。(このルールは、DepositAuthフラグに特有のものではありません。) - - アカウントにより、ゼロ以外の限度を指定したトラストラインが作成されていない。 - - アカウントが、その他のアカウントにより作成されたトラストラインで通貨を発行していない。 - - アカウントがまだオファーを出していない。 + - アカウントにより、ゼロ以外の限度を指定したトラストラインが作成されていない。 + - アカウントが、その他のアカウントにより作成されたトラストラインで通貨を発行していない。 + - アカウントがまだオファーを出していない。 以下の表に、トランザクションタイプ別にDepositAuthが有効または無効な状態での入金の可否をまとめました。 @@ -64,8 +65,6 @@ Deposit Authorizationが有効化されているアカウントの特徴は次 {% partial file="/docs/_snippets/depositauth-semantics-table.md" /%} - - ## Deposit Authorizationの有効化または無効化 アカウントのDeposit Authorizationを有効にするには、`SetFlag`フィールドに`asfDepositAuth`の値(9)を設定した[AccountSetトランザクション][]を送信します。アカウントのDeposit Authorizationを無効にするには、`ClearFlag`フィールドに`asfDepositAuth`の値(9)を設定した[AccountSetトランザクション][]を送信します。AccountSetフラグについての詳細は、[AccountSetフラグ](../../references/protocol/transactions/types/accountset.md)をご覧ください。 @@ -103,7 +102,6 @@ DepositPreauthトランザクションの処理が完了すると、承認済み - 送金先アカウントがDeposit Authorizationを必要としているかどうか。(承認を必要としていない場合は、すべての送金元アカウントが承認済みとみなされます。) - 送金元アカウントに対し、送金先への送金が事前承認されているかどうか。 - ## 関連項目 - [DepositPreauthトランザクション][]リファレンス。 @@ -115,7 +113,6 @@ DepositPreauthトランザクションの処理が完了すると、承認済み - [Partial Payment](../payment-types/partial-payments.md)により、アカウントは不要な支払を返金できます。この際、[送金手数料](../tokens/fungible-tokens/transfer-fees.md)と為替レートは送金額には追加されず、送金された金額から差し引かれます。 - [DepositPreauth Amendment]: /resources/known-amendments.md#depositpreauth {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/concepts/accounts/index.md b/@l10n/ja/docs/concepts/accounts/index.md index 9357fd4002..a79695da77 100644 --- a/@l10n/ja/docs/concepts/accounts/index.md +++ b/@l10n/ja/docs/concepts/accounts/index.md @@ -2,18 +2,18 @@ html: accounts.html parent: concepts.html seo: - description: XRP Ledgerのアカウントについて説明します。アカウントはトランザクションを送信でき、XRPを保有できます。 + description: XRP Ledgerのアカウントについて説明します。アカウントはトランザクションを送信でき、XRPを保有できます。 labels: - アカウント - 支払い --- + # アカウント XRP Ledgerの「アカウント」は、XRPの所有者と[トランザクション]アカウントの主な要素は次のとおりです。 アカウントは、アドレス、XRPの残高、シーケンス番号、トランザクション履歴から構成されます。トランザクションを送信するためには、所有者はアカウントに紐付く1つ以上の暗号鍵ペアを必要とします。 - ## アカウントの構成 アカウントの種等な構成要素は次の通りです。 @@ -23,15 +23,14 @@ XRP Ledgerの「アカウント」は、XRPの所有者と[トランザクショ - **シーケンス番号**。このアカウントから送信されるトランザクションがすべて、正しい順序で、それぞれ1回のみ適用されるようにします。トランザクションを実行するには、トランザクションのシーケンス番号と送金元のシーケンス番号が一致する必要があります。その後も、トランザクションが適用されている限り、アカウントのシーケンス番号は1ずつ増加します。(関連項目: [基本的なデータタイプ: アカウントシーケンス](../../references/protocol/data-types/basic-data-types.md#アカウントシーケンス)) - このアカウントと残高に影響を及ぼした**トランザクションの履歴**。 - [トランザクションの承認](../transactions/index.md#トランザクションの承認)方法。 - - アカウント固有のマスターキーのペア。(無効にできますが、変更はできません。) - - ローテーションして使用できる「レギュラー」キーペア。 - - [マルチシグ](multi-signing.md)の署名者のリスト。(アカウントのコアデータとは別に保存されます。) + - アカウント固有のマスターキーのペア。(無効にできますが、変更はできません。) + - ローテーションして使用できる「レギュラー」キーペア。 + - [マルチシグ](multi-signing.md)の署名者のリスト。(アカウントのコアデータとは別に保存されます。) アカウントのコアデータは、[AccountRoot](../../references/protocol/ledger-data/ledger-entry-types/accountroot.md)レジャーエントリに保存されます。アカウントは、他の複数のタイプのレジャーエントリの所有者(または部分的な所有者)になることもできます。 {% admonition type="success" name="ヒント" %}XRP Ledgerの「アカウント」は、財務上の用途(例:「銀行口座」)やコンピュータ上の用途(例:「UNIXアカウント」)で使用されます。XRP以外の通貨および資産はXRP Ledgerアカウント自体には保存されません。そのような資産はそれぞれ、両当事者を結ぶ「トラストライン」と呼ばれる会計関係に保存されます。{% /admonition %} - ### アカウントの作成 「アカウント作成」専用のトランザクションはありません。Paymentトランザクションでまだアカウントを所有していない数学的に有効なアドレスに[アカウントの準備金](reserves.md)以上のXRPが送信されると、[Paymentトランザクション][]で自動的に新しいアカウントが作成されます。これはアカウントへの _資金提供_ と呼ばれ、レジャーに[AccountRootエントリ](../../references/protocol/ledger-data/ledger-entry-types/accountroot.md)が作成されます。それ以外のトランザクションでアカウントを作成することはできません。 @@ -43,27 +42,24 @@ XRP Ledgerでアカウントを取得する一般的な方法は次のとおり 1. ランダム性の強いソースからキーペアを生成し、そのキーペアのアドレスを計算します。(例えば、[wallet_proposeメソッド][]を使用して計算することができます。) 2. XRP Ledgerにアカウントをすでに持っているユーザに、生成したアドレスにXRPを送信してもらいます。 + - 例えば、一般的な取引所でXRPを購入し、その取引所から、指定したアドレスにXRPを出金することができます。 - - 例えば、一般的な取引所でXRPを購入し、その取引所から、指定したアドレスにXRPを出金することができます。 - - {% admonition type="warning" name="注意" %}自身のXRP Ledgerアドレスで初めてXRPを受け取る場合は[アカウントの準備金](reserves.md)(現在は10XRP)を支払う必要があります。この金額のXRPは無期限に使用できなくなります。一方で、一般的な取引所では通常、顧客のXRPはすべて、共有されたいくつかのXRP Ledgerアカウントに保有されているため、顧客はその取引所で個々のアカウントの準備金を支払う必要はありません。引き出す前に、XRP Ledgerに直接アカウントを保有することが、金額に見合う価値があるかどうかを検討してください。{% /admonition %} - - + {% admonition type="warning" name="注意" %}自身のXRP Ledgerアドレスで初めてXRPを受け取る場合は[アカウントの準備金](reserves.md)(現在は10XRP)を支払う必要があります。この金額のXRPは無期限に使用できなくなります。一方で、一般的な取引所では通常、顧客のXRPはすべて、共有されたいくつかのXRP Ledgerアカウントに保有されているため、顧客はその取引所で個々のアカウントの準備金を支払う必要はありません。引き出す前に、XRP Ledgerに直接アカウントを保有することが、金額に見合う価値があるかどうかを検討してください。{% /admonition %} ## 関連項目 - **コンセプト:** - - [準備金](reserves.md) - - [暗号鍵](cryptographic-keys.md) - - [発行アドレスと運用アドレス](account-types.md) + - [準備金](reserves.md) + - [暗号鍵](cryptographic-keys.md) + - [発行アドレスと運用アドレス](account-types.md) - **リファレンス:** - - [account_infoメソッド][] - - [wallet_proposeメソッド][] - - [AccountSetトランザクション][] - - [Paymentトランザクション][] + - [account_infoメソッド][] + - [wallet_proposeメソッド][] + - [AccountSetトランザクション][] + - [Paymentトランザクション][] - [AccountRootオブジェクト](../../references/protocol/ledger-data/ledger-entry-types/accountroot.md) - **チュートリアル:** - - [アカウント設定の管理(カテゴリ)](../../tutorials/how-tos/manage-account-settings/index.md) - - [WebSocketを使用した着信ペイメントの監視](../../tutorials/http-websocket-apis/monitor-incoming-payments-with-websocket.md) + - [アカウント設定の管理(カテゴリ)](../../tutorials/how-tos/manage-account-settings/index.md) + - [WebSocketを使用した着信ペイメントの監視](../../tutorials/http-websocket-apis/monitor-incoming-payments-with-websocket.md) {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/concepts/accounts/multi-signing.md b/@l10n/ja/docs/concepts/accounts/multi-signing.md index c29c22cf88..625f46727e 100644 --- a/@l10n/ja/docs/concepts/accounts/multi-signing.md +++ b/@l10n/ja/docs/concepts/accounts/multi-signing.md @@ -2,21 +2,22 @@ html: multi-signing.html parent: accounts.html seo: - description: マルチシグを使用することで、トランザクション送信時のセキュリティが強化されます。 + description: マルチシグを使用することで、トランザクション送信時のセキュリティが強化されます。 labels: - スマートコントラクト - セキュリティ --- + # マルチシグ マルチシグは、複数のシークレットキーを組み合わせて使用してXRP Ledgerの[トランザクションを承認する](../transactions/index.md#トランザクションの承認)手法です。アドレスで有効な承認手法(マルチシグ、[マスターキーペア](cryptographic-keys.md#マスターキーペア)、[レギュラーキーペア](cryptographic-keys.md#レギュラーキーペア)など)を自由に組み合わせて使用できます。(唯一の要件は、 _少なくとも1つの_ 手法を有効にする必要があることです。) マルチシグには次のメリットがあります。 -* 複数のデバイスからのキーを要求できます。これにより、不正使用者があなたの代わりにトランザクションを送信するには複数のマシンを悪用しなければならなくなります。 -* 複数のユーザ間で1つのアドレスの管理を共有できます。この場合、各ユーザが、そのアドレスからトランザクションを送信する際に必要な複数のキーのいずれか1つだけを所有します。 -* あなたのアドレスからトランザクションを送信できる権限を、複数ユーザのグループに委任できます。委任を受けた各ユーザは、あなたが通常の方法で署名できない場合にあなたのアドレスを制御できます。 -* その他のメリットもあります。 +- 複数のデバイスからのキーを要求できます。これにより、不正使用者があなたの代わりにトランザクションを送信するには複数のマシンを悪用しなければならなくなります。 +- 複数のユーザ間で1つのアドレスの管理を共有できます。この場合、各ユーザが、そのアドレスからトランザクションを送信する際に必要な複数のキーのいずれか1つだけを所有します。 +- あなたのアドレスからトランザクションを送信できる権限を、複数ユーザのグループに委任できます。委任を受けた各ユーザは、あなたが通常の方法で署名できない場合にあなたのアドレスを制御できます。 +- その他のメリットもあります。 ## 署名者リスト @@ -58,29 +59,29 @@ CEOのウェイトを3、副社長3人のウェイトを各2、取締役3人の マルチシグトランザクションを正常に送信するには、以下のすべての条件を満たす必要があります。 -* トランザクションを送信するアドレス(`Account`に指定されるアドレス)は、[レジャーに`SignerList`](../../references/protocol/ledger-data/ledger-entry-types/signerlist.md)を所有する必要があります。この方法については、[マルチシグを設定する](../../tutorials/how-tos/manage-account-settings/set-up-multi-signing.md)をご覧ください。 -* トランザクションに`SigningPubKey`フィールドを空の文字列として含める必要があります。 -* トランザクションに、署名の配列が指定されている[`Signers`フィールド](../../references/protocol/transactions/common-fields.md#signersフィールド)を含める必要があります。 -* `Signers`配列に含まれている署名は、`SignerList`で定義されている署名と一致している必要があります。 -* 指定された署名で、これらの署名者に関連付けられている`weight`の合計が、`SignerList`の`quorum`以上である必要があります。 -* [トランザクションコスト](../transactions/transaction-cost.md)(`Fee`フィールドで指定)は、通常のトランザクションコストの(N+1)倍以上である必要があります。このNは、指定される署名の数です。 -* トランザクションのすべてのフィールドは、署名収集前に定義する必要があります。フィールドの[自動入力](../../references/protocol/transactions/common-fields.md#自動入力可能なフィールド)は実行できません。 -* `Signers`配列がバイナリ形式で指定される場合、この配列は署名者アドレスの数値に基づいて、低い値から順にソートされている必要があります。(JSONとして提出される場合は、[submit_multisignedメソッド][]がこの処理を自動的に実行します。) +- トランザクションを送信するアドレス(`Account`に指定されるアドレス)は、[レジャーに`SignerList`](../../references/protocol/ledger-data/ledger-entry-types/signerlist.md)を所有する必要があります。この方法については、[マルチシグを設定する](../../tutorials/how-tos/manage-account-settings/set-up-multi-signing.md)をご覧ください。 +- トランザクションに`SigningPubKey`フィールドを空の文字列として含める必要があります。 +- トランザクションに、署名の配列が指定されている[`Signers`フィールド](../../references/protocol/transactions/common-fields.md#signersフィールド)を含める必要があります。 +- `Signers`配列に含まれている署名は、`SignerList`で定義されている署名と一致している必要があります。 +- 指定された署名で、これらの署名者に関連付けられている`weight`の合計が、`SignerList`の`quorum`以上である必要があります。 +- [トランザクションコスト](../transactions/transaction-cost.md)(`Fee`フィールドで指定)は、通常のトランザクションコストの(N+1)倍以上である必要があります。このNは、指定される署名の数です。 +- トランザクションのすべてのフィールドは、署名収集前に定義する必要があります。フィールドの[自動入力](../../references/protocol/transactions/common-fields.md#自動入力可能なフィールド)は実行できません。 +- `Signers`配列がバイナリ形式で指定される場合、この配列は署名者アドレスの数値に基づいて、低い値から順にソートされている必要があります。(JSONとして提出される場合は、[submit_multisignedメソッド][]がこの処理を自動的に実行します。) 詳細は、[マルチシグの設定](../../tutorials/how-tos/manage-account-settings/set-up-multi-signing.md)をご覧ください。 ## 関連項目 - **チュートリアル:** - - [マルチシグを設定する](../../tutorials/how-tos/manage-account-settings/set-up-multi-signing.md) - - [マルチシグトランザクションを送信する](../../tutorials/how-tos/manage-account-settings/send-a-multi-signed-transaction.md) + - [マルチシグを設定する](../../tutorials/how-tos/manage-account-settings/set-up-multi-signing.md) + - [マルチシグトランザクションを送信する](../../tutorials/how-tos/manage-account-settings/send-a-multi-signed-transaction.md) - **コンセプト:** - - [暗号鍵](cryptographic-keys.md) - - [マルチシグトランザクションの特別なトランザクションコスト](../transactions/transaction-cost.md#特別なトランザクションコスト) + - [暗号鍵](cryptographic-keys.md) + - [マルチシグトランザクションの特別なトランザクションコスト](../transactions/transaction-cost.md#特別なトランザクションコスト) - **リファレンス:** - - [SignerListSetトランザクション][] - - [SignerListオブジェクト](../../references/protocol/ledger-data/ledger-entry-types/signerlist.md) - - [sign_forメソッド][] - - [submit_multisignedメソッド][] + - [SignerListSetトランザクション][] + - [SignerListオブジェクト](../../references/protocol/ledger-data/ledger-entry-types/signerlist.md) + - [sign_forメソッド][] + - [submit_multisignedメソッド][] {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/concepts/accounts/reserves.md b/@l10n/ja/docs/concepts/accounts/reserves.md index d06cdec351..7a45e66213 100644 --- a/@l10n/ja/docs/concepts/accounts/reserves.md +++ b/@l10n/ja/docs/concepts/accounts/reserves.md @@ -2,12 +2,13 @@ html: reserves.html parent: accounts.html seo: - description: XRP Ledgerのアカウントでは、レジャーデータ内のスパムを減らすためにXRPの準備金が必要です。 + description: XRP Ledgerのアカウントでは、レジャーデータ内のスパムを減らすためにXRPの準備金が必要です。 labels: - 手数料 - アカウント top_nav_grouping: 人気ページ --- + # 準備金 XRP Ledgerでは、スパムや悪意のある使用によって、共有グローバル台帳(レジャー)が過度に大きくならないように、XRPを用いた _準備金_ の仕組みを採用しています。現在一般に市販されているのマシンで、処理中の現行レジャーを常にRAMに保存でき、全履歴がディスクに収まるように、技術の向上に合わせて台帳サイズが大きくなるのを制限することが目的です。 @@ -20,8 +21,8 @@ XRP Ledgerでは、スパムや悪意のある使用によって、共有グロ 準備金は2つの部分に分けられます。 -* **基本準備金**は、レジャーの各アドレスに必要なXRPの最小額です。 -* **所有者準備金**は、アドレスがレジャーに所有しているオブジェクトごとに必要な準備金の増加額です。アイテムごとのコストは「増分準備金」とも呼ばれます。 +- **基本準備金**は、レジャーの各アドレスに必要なXRPの最小額です。 +- **所有者準備金**は、アドレスがレジャーに所有しているオブジェクトごとに必要な準備金の増加額です。アイテムごとのコストは「増分準備金」とも呼ばれます。 メインネットにおける現在の準備金要件は次の通りです。 @@ -47,16 +48,15 @@ XRP Ledgerでは、スパムや悪意のある使用によって、共有グロ アプリケーションは、[server_infoメソッド][]または[server_stateメソッド][]を使用して、現在の基本準備金と増分準備金の値を調べることができます。 -| メソッド | 単位 | 基本準備金のフィールド | 増分準備金のフィールド | -|-------------------------|--------------|-------------------------------------|------------------------------------| -| [server_infoメソッド][] | 10進数のXRP値 | `validated_ledger.reserve_base_xrp` | `validated_ledger.reserve_inc_xrp` | -| [server_stateメソッド][] | 整数のdrop値 | `validated_ledger.reserve_base` | `validated_ledger.reserve_inc` | +| メソッド | 単位 | 基本準備金のフィールド | 増分準備金のフィールド | +| ------------------------ | ------------- | ----------------------------------- | ---------------------------------- | +| [server_infoメソッド][] | 10進数のXRP値 | `validated_ledger.reserve_base_xrp` | `validated_ledger.reserve_inc_xrp` | +| [server_stateメソッド][] | 整数のdrop値 | `validated_ledger.reserve_base` | `validated_ledger.reserve_inc` | アカウントの所有者準備金を決定するには、増分準備金にアカウントが所有するオブジェクトの数を掛けます。アカウントが所有しているオブジェクトの数を調べるには、[account_infoメソッド][]を呼び出し、`account_data.OwnerCount`を取得します。 アドレスの必要となる合計準備金を計算するには、`OwnerCount`に`reserve_inc_xrp`を掛け、次に`reserve_base_xrp`を加えます。[この計算をPythonで行うデモ](../../tutorials/python/build-apps/build-a-desktop-wallet-in-python.md#codeblock-17)があります。 - ## 必要準備金を下回る トランザクション処理中、[トランザクションコスト](../transactions/transaction-cost.md)によって、送信元アドレスのXRP残高の一部がバーンされます。その結果、そのアドレスのXRPが必要準備金を下回る可能性があります。 @@ -65,7 +65,6 @@ XRP Ledgerでは、スパムや悪意のある使用によって、共有グロ {% admonition type="success" name="ヒント" %}アドレスが必要準備金を下回った場合は、新しい[OfferCreateトランザクション][]を送信して、追加のXRP、または既存のトラストライン上の他の通貨を入手することができます。このような取引では、新しい[トラストライン](../../references/protocol/ledger-data/ledger-entry-types/ripplestate.md)や[レジャー内のオファーエントリ](../../references/protocol/ledger-data/ledger-entry-types/offer.md)を作成することはできないため、すでにオーダーブック内にあるオファーを実行するトランザクションのみを実行することができます。{% /admonition %} - ## 準備金要件の変更 XRP Ledgerには、準備金要件を調整する仕組みがあります。このような調整は、例えばXRPの価値の長期的な変化、汎用レベルのハードウェアの性能の向上、サーバソフトウェアの実装の効率化などを考慮することができます。いかなる変更も、コンセンサスプロセスによる合意が必要です。詳細は[手数料の投票](../consensus-protocol/fee-voting.md)をご覧ください。 diff --git a/@l10n/ja/docs/concepts/accounts/tickets.md b/@l10n/ja/docs/concepts/accounts/tickets.md index 501e37b2e8..2d22804879 100644 --- a/@l10n/ja/docs/concepts/accounts/tickets.md +++ b/@l10n/ja/docs/concepts/accounts/tickets.md @@ -1,10 +1,11 @@ --- seo: - description: トランザクションを非連続的な順序で送信する + description: トランザクションを非連続的な順序で送信する labels: - - アカウント - - トランザクション送信 + - アカウント + - トランザクション送信 --- + # Ticket XRP Ledgerのチケットは、取引をすぐに送信せずに、その取引のために[シーケンス番号][]を確保する方法です。チケットを使うことで、通常の順序以外で取引を送信することができます。この使用例としては、必要な署名を集めるのに時間がかかるような[マルチサイン取引](multi-signing.md)などが挙げられます。 @@ -23,18 +24,17 @@ XRP Ledgerのチケットは、取引をすぐに送信せずに、その取引 チケットでは、これらの問題を解決するために、通常の順番とは別に、後からでも(ただし、それぞれ1回まで)使用可能なシーケンス番号を用意しています。 - ## チケットは予約済みのシーケンス番号 チケットとは、あるシーケンス番号が後に使用されるために確保されたという記録です。アカウントは、まず[TicketCreateトランザクション][]を送信して、1つまたは複数のシーケンス番号をチケットとして確保します。これにより、[台帳の状態データ](../ledgers/index.md)に、予約された各シーケンス番号について[Ticketオブジェクト][]の形で記録が残されます。 チケットには、チケット作成時に設定されたシーケンス番号が使用されます。例えば、あなたのアカウントの現在のシーケンス番号が101で、3枚のチケットを作成した場合、それらのチケットにはチケットシーケンス番号102、103、104が付けられます。これにより、あなたのアカウントのシーケンス番号は105になります。 -[{% inline-svg file="/docs/img/ticket-creation.ja.svg" /%}](/docs/img/ticket-creation.ja.svg "図: 3つのTicketの作成") +[{% inline-svg file="/docs/img/ticket-creation.ja.svg" /%}](/docs/img/ticket-creation.ja.svg '図: 3つのTicketの作成') 後から、シーケンス番号の代わりに特定のチケットを使用してトランザクションを送信することができます。これにより、元帳の状態データから対応するチケットが削除され、アカウントの通常のシーケンス番号は変更されません。また、チケットを使用せずに、通常のシーケンス番号を使用してトランザクションを送信することもできます。利用可能なチケットは、いつでもどのような順番でも使用できますが、各チケットは1回しか使用できません。 -[{% inline-svg file="/docs/img/ticket-usage.ja.svg" /%}](/docs/img/ticket-usage.ja.svg "図: 103のTicketを利用") +[{% inline-svg file="/docs/img/ticket-usage.ja.svg" /%}](/docs/img/ticket-usage.ja.svg '図: 103のTicketを利用') 上記の例では、シーケンス番号105または作成した3つのチケットのいずれかを使用してトランザクションを送信できます。チケット103を使ってトランザクションを送信すると、それによってチケット103は元帳から削除されます。その後の次のトランザクションでは、シーケンス番号105、チケット102、またはチケット104を使用できます。 @@ -57,15 +57,14 @@ XRP Ledgerのチケットは、取引をすぐに送信せずに、その取引 ## 関連項目 - - **Concepts:** - - [マルチシグ](multi-signing.md) + - [マルチシグ](multi-signing.md) - **Tutorials:** - - [チケットを使用する](../../tutorials/how-tos/manage-account-settings/use-tickets.md) + - [チケットを使用する](../../tutorials/how-tos/manage-account-settings/use-tickets.md) - **References:** - - [TicketCreateトランザクション][] - - [トランザクションの共通フィールド](../../references/protocol/transactions/common-fields.md) - - [Ticket オブジェクト](../../references/protocol/ledger-data/ledger-entry-types/ticket.md) - - [account_objectsメソッド][] + - [TicketCreateトランザクション][] + - [トランザクションの共通フィールド](../../references/protocol/transactions/common-fields.md) + - [Ticket オブジェクト](../../references/protocol/ledger-data/ledger-entry-types/ticket.md) + - [account_objectsメソッド][] {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/concepts/consensus-protocol/consensus-principles-and-rules.md b/@l10n/ja/docs/concepts/consensus-protocol/consensus-principles-and-rules.md index 58525d4e66..a96d01dbd4 100644 --- a/@l10n/ja/docs/concepts/consensus-protocol/consensus-principles-and-rules.md +++ b/@l10n/ja/docs/concepts/consensus-protocol/consensus-principles-and-rules.md @@ -2,10 +2,11 @@ html: consensus-principles-and-rules.html parent: consensus.html seo: - description: XRP Ledgerは世界規模の決済システムで、ユーザはメールを送るときのようにスムーズに国境を越えて送金することができます。 + description: XRP Ledgerは世界規模の決済システムで、ユーザはメールを送るときのようにスムーズに国境を越えて送金することができます。 labels: - ブロックチェーン --- + # コンセンサスの原理とルール XRP Ledgerは世界規模の決済システムで、ユーザはメールを送るときのようにスムーズに国境を越えて送金することができます。Bitcoinなどの他のピアツーピア決済ネットワークと同様に、XRP Ledgerでは分散型コンピュータネットワークを介したピアツーピア取引の決済が可能です。他のデジタル通貨プロトコルとは異なり、XRP LedgerではXRP(XRP Ledgerのネイティブ資産)の他にユーザが選択した通貨(法定通貨、デジタル通貨、その他の価値形態など)建てでトランザクションを実行できます。 @@ -20,7 +21,6 @@ XRP Ledgerのテクノロジーにより、ほぼリアルタイムでの決済 暗号化システムであるため、XRP Ledgerアカウントの所有者は _暗号ID_ により識別されます。暗号IDは、公開鍵/秘密鍵のペアに相当します。トランザクションは、暗号IDに一致する暗号署名によって承認されます。すべてのサーバでは、同一の確定的な既知のルールに基づいてすべてのトランザクションが処理されます。最終的な目標は、ネットワーク内のすべてのサーバがまったく同じレジャー状態の完全なコピーを保有できるようにし、1つの中央機関がトランザクションを調停する必要がないようにすることです。 - ## 二重支払いの問題 「二重支払い」の問題は、どのような決済システムの運用においても根本的な課題となります。この問題は、ある場所でお金を支払うときに、別の場所ではそのお金を支払うことができないという要件に起因しています。一般的には、2つのトランザクションがあり、いずれかのトランザクションが有効で、両方が同時に有効になることがない場合にこの問題が発生します。 @@ -33,7 +33,6 @@ Aliceが「同じ」$10をCharlieとBobの両方に送金できてしまう場 XRP Ledgerなどの分散型台帳技術では中央機関が存在せず、二重支払いの問題を他の方法で解決する必要があります。 - # コンセンサスの仕組み ## 問題の単純化 diff --git a/@l10n/ja/docs/concepts/consensus-protocol/consensus-protections.md b/@l10n/ja/docs/concepts/consensus-protocol/consensus-protections.md index 5dd705e82e..8b03a620aa 100644 --- a/@l10n/ja/docs/concepts/consensus-protocol/consensus-protections.md +++ b/@l10n/ja/docs/concepts/consensus-protocol/consensus-protections.md @@ -2,10 +2,11 @@ html: consensus-protections.html parent: consensus.html seo: - description: Learn how the XRP Ledger Consensus Protocol is protected against various problems and attacks that may occur in a decentralized financial system. #TODO: translate + description: Learn how the XRP Ledger Consensus Protocol is protected against various problems and attacks that may occur in a decentralized financial system. #TODO: translate labels: - ブロックチェーン --- + # 攻撃および障害モードに対するコンセンサスの保護 XRP Ledgerコンセンサスプロトコルは、 _ビザンチンフォールトトレラント性_ のあるコンセンサスメカニズムです。つまり、あらゆる不適切な状況(参加者が信頼できないオープンネットワークを利用して通信している場合や、不正使用者が常にシステムを乗っ取ろうとしているかまたは中断しようとしている場合など)が発生しても動作するように設計されています。さらに、XRP Ledgerコンセンサスプロトコルの参加者が事前に判明していない場合や、時間の経過とともに変わる場合があります。 @@ -30,7 +31,6 @@ _バリデータ_ とは、新しいレジャーバージョンの決定プロ 無効なトランザクションを承認する唯一の方法は、80%以上の信頼できるバリデータがそのトランザクションを承認し、その結果に合意することです。(無効なトランザクションには、すでに使用された資金を送金するトランザクションや、ネットワークのルールに違反するトランザクションなどがあります。)つまり、信頼できるバリデータの過半数が _共謀する_ 必要があります。多数の信頼できるバリデータが世界各地域で異なる人々や企業により運用されている状況では、意図的にこれを達成することは非常に困難です。 - ## ソフトウェアの脆弱性 あらゆるソフトウェアシステムと同様に、XRP Ledgerコンセンサスプロトコル、広く導入されているソフトウェアパッケージ、またはその依存関係の実装に伴うバグ(または意図的に悪意のあるコード)の問題には、真剣に取り組む必要があります。巧妙に作成された入力を取り込んだサーバをクラッシュさせるだけのバグであっても、ネットワークの進捗を妨害する目的で悪用される可能性があります。XRP Ledgerの開発者はこのような脅威に対処するため、次のようなさまざまな対策を導入しています。 @@ -41,7 +41,6 @@ _バリデータ_ とは、新しいレジャーバージョンの決定プロ - セキュリティの脆弱性と不安定さに関する定期的に委託された専門家レビュー。 - 責任を持って脆弱性を公開したセキュリティ研究者に報奨金を授与する[Bug Bountyプログラム](https://ripple.com/bug-bounty/)。 - ## シビル攻撃 _[シビル攻撃](https://en.wikipedia.org/wiki/Sybil_attack)_ とは、大量の偽IDを使ってネットワークのコントロールを試みる攻撃です。XRP Ledgerでは、シビル攻撃は多数のバリデータを操作して、他のバリデータにこれらのバリデータを信頼するように仕向ける形で攻撃をしかける可能性があります。このような攻撃は理論上は可能ですが、バリデータが信頼を得るには人間による介入が必要であるため、実際には非常に困難です。 @@ -50,12 +49,10 @@ _[シビル攻撃](https://en.wikipedia.org/wiki/Sybil_attack)_ とは、大量 この信頼は自動的に形成されるものではありません。したがってシビル攻撃を成功させるには、ターゲットとなる人物や企業が、攻撃者のバリデータを信頼してXRP Ledgerサーバを再設定するように仕向けるという難しい作業をこなさなければなりません。ある人物または企業がだまされてXRP Ledgerサーバを再設定したとしても、自らの設定を変更していない他の人物や企業に対する影響は最小限となります。 - ## 51%攻撃 「51%攻撃」とは、特定の当事者が全採掘能力または投票能力の50%を超える割合を支配しているブロックチェーンに対する攻撃です。(厳密には、50%を _わずかでも_ 超えていれば十分であるため、この攻撃の名前は多少間違っています。)XRP Ledgerは、コンセンサスメカニズムに採掘を採用していないため、51%攻撃に対し脆弱ではありません。これに最も類似するXRP Ledgerへの攻撃には[シビル攻撃](#シビル攻撃)がありますが、この攻撃を実際に実施することは困難です。 - ## バリデータ重複要件 XRP Ledgerのすべての参加者が何を検証済みとみなすかについて合意するには、参加者はまず、他の参加者が選択したバリデータ群によく似た信頼できるバリデータ群を選択する必要があります。最悪のケースでは、重複が約90%未満のために一部の参加者間に不一致が生じる場合があります。そのため、業界やコミュニティによって運営されている信頼できる、よくメンテナンスされたサーバを含むことを意味する、推奨バリデータの署名されたリストがあります。 @@ -66,7 +63,6 @@ XRP Ledgerのすべての参加者が何を検証済みとみなすかについ コンセンサスプロトコルの設計を改善し、より多様性のあるバリデータリストを実現するための研究が進んでいます。詳細は、[コンセンサスの研究](consensus-research.md)ページをご覧ください。 - ## 関連項目 - コンセンサスの**入門レベルの概要**については、[コンセンサスについて](index.md)をご覧ください。 diff --git a/@l10n/ja/docs/concepts/consensus-protocol/consensus-research.md b/@l10n/ja/docs/concepts/consensus-protocol/consensus-research.md index 55e054762b..937f0e143d 100644 --- a/@l10n/ja/docs/concepts/consensus-protocol/consensus-research.md +++ b/@l10n/ja/docs/concepts/consensus-protocol/consensus-research.md @@ -2,16 +2,17 @@ html: consensus-research.html parent: consensus.html seo: - description: コンセンサスアルゴリズムに関する学術論文と関連研究。 + description: コンセンサスアルゴリズムに関する学術論文と関連研究。 labels: - ブロックチェーン --- + # コンセンサスの研究 Rippleでは、XRP Ledgerのコンセンサスプロトコルの理論上の制限と実際の制限の両方についての研究を進め、この分野にてさまざまなアイデアを探究しています。以下の表に、Rippleが発表した学術論文の一覧を示します。 -| 日付 | タイトル | 著者 | 概要 | -|---|---|---|---| -| 2018-02-20 | [Cobalt: BFT Governance in Open Networks](https://arxiv.org/abs/1802.07240) | MacBrough | コンセンサスUNLの柔軟性を高める新しいアトミックブロードキャストアルゴリズム、Cobaltの紹介。 | -| 2018-02-20 | [Analysis of the XRP Ledger Consensus Protocol](https://arxiv.org/abs/1802.07242) | Chase, MacBrough | XRP Ledgerのコンセンサスアルゴリズムとその安全性および活性の特性に関する最新の詳細な分析。 | -| 2014 | [The Ripple Protocol Consensus Algorithm](https://ripple.com/files/ripple_consensus_whitepaper.pdf) | Schwartz, Youngs, Britto | XRP Ledgerで採用されているコンセンサスアルゴリズムの紹介。 | +| 日付 | タイトル | 著者 | 概要 | +| ---------- | --------------------------------------------------------------------------------------------------- | ------------------------ | ------------------------------------------------------------------------------------------- | +| 2018-02-20 | [Cobalt: BFT Governance in Open Networks](https://arxiv.org/abs/1802.07240) | MacBrough | コンセンサスUNLの柔軟性を高める新しいアトミックブロードキャストアルゴリズム、Cobaltの紹介。 | +| 2018-02-20 | [Analysis of the XRP Ledger Consensus Protocol](https://arxiv.org/abs/1802.07242) | Chase, MacBrough | XRP Ledgerのコンセンサスアルゴリズムとその安全性および活性の特性に関する最新の詳細な分析。 | +| 2014 | [The Ripple Protocol Consensus Algorithm](https://ripple.com/files/ripple_consensus_whitepaper.pdf) | Schwartz, Youngs, Britto | XRP Ledgerで採用されているコンセンサスアルゴリズムの紹介。 | diff --git a/@l10n/ja/docs/concepts/consensus-protocol/consensus-structure.md b/@l10n/ja/docs/concepts/consensus-protocol/consensus-structure.md index c62df86700..370f464c2c 100644 --- a/@l10n/ja/docs/concepts/consensus-protocol/consensus-structure.md +++ b/@l10n/ja/docs/concepts/consensus-protocol/consensus-structure.md @@ -2,10 +2,11 @@ html: consensus-structure.html parent: consensus.html seo: - description: XRP Ledgerにおけるコンセンサスの役割について理解を深めましょう。 + description: XRP Ledgerにおけるコンセンサスの役割について理解を深めましょう。 labels: - ブロックチェーン --- + # コンセンサス _著者: Dave Cohen、David Schwartz、Arthur Britto_ @@ -14,7 +15,6 @@ _著者: Dave Cohen、David Schwartz、Arthur Britto_ XRP Ledger上でアプリケーションを構築する場合は、XRP Ledger APIの動作や、その動作によってもたされる影響を知っておくために、このプロセスを理解することが重要です。 - ## まえがき ピアツーピアサーバのXRP Ledgerネットワークは世界で共有されている台帳であり、ここから、アプリケーションはこの台帳の内容の状態に関して信頼できる情報を得ることができます。この状態に関する情報には以下の内容が含まれます。 @@ -98,7 +98,6 @@ _図5: バリデータによるトランザクションセットの提案と修 ネットワーク内の各サーバは、それぞれ個別にローカルに検証を行います。 - #### 検証の計算と共有 コンセンサスプロセスが完了すると、各サーバは合意済みの一連のトランザクションから新しいレジャーを個別に計算します。各サーバは、同じ規則に従って結果を次のように計算します。 @@ -141,7 +140,6 @@ _図8: 圧倒的多数のピアが同じ結果を計算するとレジャーが 検証について圧倒的多数の合意が得られると、サーバは検証済みの新しいレジャー、レジャーインデックスN+1との作業に入ることができます。最後のラウンドに含まれなかった候補トランザクションと、その間に送信された新しいトランザクションに対して、コンセンサスと検証プロセスが繰り返されます9。 - ## 要点 XRP Ledgerに送信されたトランザクションはすぐには処理されません。一定期間、各トランザクションは候補状態になります。 @@ -187,10 +185,6 @@ XRP Ledgerに送信されたトランザクションはすぐには処理され - [Validator_list_sitesメソッド][] - [Validatorsメソッド][] - - - - ## 脚注 1 – [**tec**結果コード](../../references/protocol/transactions/transaction-results/tec-codes.md)を持つトランザクションでは、要求されたアクションは実行されませんが、レジャーには影響します。ネットワークの悪用を防ぎ、トランザクションの分散コストを賄うために、XRPの[トランザクションコスト](../transactions/transaction-cost.md)が消却されます。同じ送信者によって同時刻に送信された他のトランザクションをブロックしないようにするには、送信者のアカウントの[シーケンス番号](../../references/protocol/data-types/basic-data-types.md#アカウントシーケンス)を都度増やしてゆきます。`tec`クラスの結果を持つトランザクションは、期限切れのオブジェクトや資金のない取引注文を削除するなどのメンテナンスも行います。 diff --git a/@l10n/ja/docs/concepts/consensus-protocol/fee-voting.md b/@l10n/ja/docs/concepts/consensus-protocol/fee-voting.md index 3ea93d72f7..8792364291 100644 --- a/@l10n/ja/docs/concepts/consensus-protocol/fee-voting.md +++ b/@l10n/ja/docs/concepts/consensus-protocol/fee-voting.md @@ -1,10 +1,11 @@ --- seo: - description: バリデータが手数料(トランザクションコストおよび準備預金)に投票する方法。 + description: バリデータが手数料(トランザクションコストおよび準備預金)に投票する方法。 labels: - 手数料 - XRP --- + # 手数料投票 手数料投票は、XRP Ledgerの使用料、具体的には基本[トランザクションコスト](../transactions/transaction-cost.md)および[準備金要件](../accounts/reserves.md)を調整するためのシステムです。この手数料の目的は、ネットワークをスパムから保護することにあります。そのため、手数料の投票による決定は、より多くのユーザやユースケースにネットワークを利用可能にするという目的と、ネットワークを悪用や過剰利用から保護するという目的の、競合する優先事項を考慮する必要があります。XRPの価値やネットワークノードのコストおよび機能の長期的な変化に適応するために、定期的な変更が必要です。 @@ -15,11 +16,11 @@ labels: 設定できるパラメーターは次の通りです。 -| パラメーター | 説明 | 推奨される値 | -|-------------------|-------------|-------------------| -| `reference_fee` | **リファレンストランザクションのコスト**。これは、リファレンストランザクション(最も安価なトランザクション)を送信するためにバーンしなければならないXRPの量(1 XRP = 100万ドロップ)です。実際のトランザクションコストは、個々のサーバの負荷に応じて動的に調整される、この値の倍数です。 | `10` (0.000010 XRP) | -| `account_reserve` | **基本アカウント準備金**。これは、アカウントが保持しなければならないXRPの量(1 XRP = 100万ドロップ)です。これは、新しいアカウントを作成するための最小要件でもあります。 | `1000000` ({% $env.PUBLIC_BASE_RESERVE %}) | -| `owner_reserve` | **所有者準備金の増加量**。これは、アカウントがレジャー内で所有する各オブジェクトに対して保持しなければならないXRPの量(1 XRP = 100万ドロップ)です。 | `200000` ({% $env.PUBLIC_OWNER_RESERVE %}) | +| パラメーター | 説明 | 推奨される値 | +| ----------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------- | +| `reference_fee` | **リファレンストランザクションのコスト**。これは、リファレンストランザクション(最も安価なトランザクション)を送信するためにバーンしなければならないXRPの量(1 XRP = 100万ドロップ)です。実際のトランザクションコストは、個々のサーバの負荷に応じて動的に調整される、この値の倍数です。 | `10` (0.000010 XRP) | +| `account_reserve` | **基本アカウント準備金**。これは、アカウントが保持しなければならないXRPの量(1 XRP = 100万ドロップ)です。これは、新しいアカウントを作成するための最小要件でもあります。 | `1000000` ({% $env.PUBLIC_BASE_RESERVE %}) | +| `owner_reserve` | **所有者準備金の増加量**。これは、アカウントがレジャー内で所有する各オブジェクトに対して保持しなければならないXRPの量(1 XRP = 100万ドロップ)です。 | `200000` ({% $env.PUBLIC_OWNER_RESERVE %}) | @@ -44,10 +45,10 @@ labels: まとめ: -* **フラグレジャー-1**: バリデータが投票を送信します。 -* **フラグレジャー**: バリデータが投票を集計し、どのSetFeeの内容を含めるか決定します(存在する場合)。 -* **フラグレジャー+1**: バリデータは、SetFee疑似トランザクションを各自の提案レジャーに挿入します。 -* **フラグレジャー+2**: SetFee疑似トランザクションがコンセンサスに達すると、新しい設定が有効になります。 +- **フラグレジャー-1**: バリデータが投票を送信します。 +- **フラグレジャー**: バリデータが投票を集計し、どのSetFeeの内容を含めるか決定します(存在する場合)。 +- **フラグレジャー+1**: バリデータは、SetFee疑似トランザクションを各自の提案レジャーに挿入します。 +- **フラグレジャー+2**: SetFee疑似トランザクションがコンセンサスに達すると、新しい設定が有効になります。 ## 手数料の最大値 @@ -64,16 +65,16 @@ labels: ## See Also - **コンセプト:** - - [Amendment](../networks-and-servers/amendments.md) - - [トランザクションコスト](../transactions/transaction-cost.md) - - [準備金](../accounts/reserves.md) - - [トランザクションキュー](../transactions/transaction-queue.md) + - [Amendment](../networks-and-servers/amendments.md) + - [トランザクションコスト](../transactions/transaction-cost.md) + - [準備金](../accounts/reserves.md) + - [トランザクションキュー](../transactions/transaction-queue.md) - **チュートリアル:** - - [rippledの設定](../../infrastructure/configuration/index.md) + - [rippledの設定](../../infrastructure/configuration/index.md) - **リファレンス:** - - [feeメソッド][] - - [server_infoメソッド][] - - [FeeSettingsオブジェクト](../../references/protocol/ledger-data/ledger-entry-types/feesettings.md) - - [SetFee疑似トランザクション][] + - [feeメソッド][] + - [server_infoメソッド][] + - [FeeSettingsオブジェクト](../../references/protocol/ledger-data/ledger-entry-types/feesettings.md) + - [SetFee疑似トランザクション][] {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/concepts/consensus-protocol/index.md b/@l10n/ja/docs/concepts/consensus-protocol/index.md index b650bbbb90..bf7fe7cd09 100644 --- a/@l10n/ja/docs/concepts/consensus-protocol/index.md +++ b/@l10n/ja/docs/concepts/consensus-protocol/index.md @@ -2,15 +2,15 @@ html: consensus.html parent: concepts.html seo: - description: XRP Ledgerのコンセンサスメカニズムについて基本的な理解を深めましょう。 + description: XRP Ledgerのコンセンサスメカニズムについて基本的な理解を深めましょう。 labels: - ブロックチェーン top_nav_grouping: 人気ページ --- + # コンセンサスプロトコル - _コンセンサス_ は、分散型決済システムの最も重要な特性です。従来の中央集権型決済システムでは、権限のある1人の管理者が決済の方法とタイミングについて最終的な決定権を持ちます。分散型システムでは、その名が示すとおり、そのような管理者は存在しません。その代わりに、XRP Ledgerのような分散型システムでは、参加者は定められた一連のルールに従うことになっているため、同じ一連のイベントとその結果についていつでも合意することができます。この一連のルールは、 _コンセンサスプロトコル_ と呼ばれます。 - +_コンセンサス_ は、分散型決済システムの最も重要な特性です。従来の中央集権型決済システムでは、権限のある1人の管理者が決済の方法とタイミングについて最終的な決定権を持ちます。分散型システムでは、その名が示すとおり、そのような管理者は存在しません。その代わりに、XRP Ledgerのような分散型システムでは、参加者は定められた一連のルールに従うことになっているため、同じ一連のイベントとその結果についていつでも合意することができます。この一連のルールは、 _コンセンサスプロトコル_ と呼ばれます。 ## コンセンサスプロトコルの特性 @@ -30,7 +30,6 @@ top_nav_grouping: 人気ページ コンセンサスプロトコルは、_二重支払いの問題_、つまり同じデジタルマネーを2回使用することを防ぐという課題に対する解決策です。この問題において最も困難なのは、取引を順序立てる点です。中央管理者がいない中で、同時に複数の相互排他的取引が送信されたときに、先に到着したのはどの取引なのかという紛争を解決するのは困難です。二重支払いの問題や、XRP Ledger コンセンサスプロトコルでこの問題を解決する方法、およびそれに伴うトレードオフと制限事項の詳細な分析については、[コンセンサスの原理とルール](consensus-principles-and-rules.md)をご覧ください。 - ## レジャー(台帳)履歴 XRP Ledgerは、「レジャーバージョン」、または略して「レジャー」と呼ばれるブロックで取引を処理します。レジャーの各バージョンには、次の3つの部分が含まれています。 @@ -40,13 +39,13 @@ XRP Ledgerは、「レジャーバージョン」、または略して「レジ - レジャーインデックスや、その内容を一意に識別する[暗号化ハッシュ](https://en.wikipedia.org/wiki/Cryptographic_hash_function)、およびこのレジャーを構築するための基盤として使用された親レジャーに関する情報など、現行のレジャーバージョンに関するメタデータ。 [![図1: レジャーバージョンの構造(取引、状態、およびメタデータを含む)](/docs/img/anatomy-of-a-ledger-simplified.ja.png)](/docs/img/anatomy-of-a-ledger-simplified.ja.png) + レジャーの各バージョンには _レジャーインデックス_ としての番号が付けられており、インデックスが1つ前のレジャーバージョンを基に新たな情報を追加する形で作成されています。一番最初まで遡ると、レジャーインデックスが1の _ジェネシスレジャー_ と呼ばれる出発点に戻ります。[¹](#footnote-1)これにより、Bitcoinや他のブロックチェーン技術と同様に、すべての取引とその結果についての公開履歴が形成されます。多くのブロックチェーン技術とは異なり、XRP Ledgerの新しい「ブロック」には現在の状態がすべて含まれているため、現在起こっている内容を把握するために履歴全体を収集する必要はありません。[²](#footnote-2) XRP Ledger コンセンサスプロトコルの主な役割は、前のレジャーに適用する一連の新しい取引に合意し、それらを明確に定義された順序で適用した上で、全員が同じ結果を得たことを確認することです。これが正常に行われると、レジャーバージョンは _検証済み_ 、および確定したとみなされます。続いて、次のレジャーバージョンが構築されます。 - ## 信頼に基づく検証 XRP Ledgerのコンセンサスメカニズムは、小さな信頼が大きな効果を生み出すという基本的な原理に支えられています。ネットワークの各参加者は、一連の _バリデータ_ (検証者)を選択します。バリデータは常に誠実に行動することが期待されるさまざまな当事者によって運営されており、[コンセンサスにアクティブに参加するように特別に設定されたサーバ](../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md)上に存在します。さらに重要なことは、選択された一連のバリデータが互いに共謀して同じ方法を使ってルールを破ることはないということです。この一連バリデータのリストは、_ユニークノードリスト_(UNL)とも呼ばれます。 @@ -59,7 +58,7 @@ XRP Ledgerのコンセンサスメカニズムは、小さな信頼が大きな XRP Ledger コンセンサスプロトコルで、さまざまな課題や攻撃、失敗の事例にどのように対応するかについての詳細な説明については、[攻撃と失敗モードに対するコンセンサスの保護](consensus-protections.md)をご覧ください。 ----- +--- ## 脚注 diff --git a/@l10n/ja/docs/concepts/consensus-protocol/invariant-checking.md b/@l10n/ja/docs/concepts/consensus-protocol/invariant-checking.md index 3bbe4a2fb6..2813c3c1c7 100644 --- a/@l10n/ja/docs/concepts/consensus-protocol/invariant-checking.md +++ b/@l10n/ja/docs/concepts/consensus-protocol/invariant-checking.md @@ -2,11 +2,12 @@ html: invariant-checking.html parent: consensus.html seo: - description: 不変性チェックとは何か、なぜ存在するのか、どのように機能するのか、どのような不変性チェックが有効なのかを理解することができます。 + description: 不変性チェックとは何か、なぜ存在するのか、どのように機能するのか、どのような不変性チェックが有効なのかを理解することができます。 labels: - ブロックチェーン - セキュリティ --- + # 不変性チェック 不変性チェックは、XRP Ledgerの安全機能です。これは、通常のトランザクション処理とは別に、すべての取引において特定の「不変量」が真であることを保証する一連のチェックで構成されています。 @@ -15,7 +16,6 @@ labels: 不変性はトリガーされるべきではありませんが、まだ発見されていない、あるいは作成されてもいないバグからXRP Ledgerの整合性を確保するものです。 - ## なぜ存在するのか - XRP Ledgerのソースコードは複雑かつ膨大であり、コードが誤って実行される可能性が高いです。 @@ -25,15 +25,12 @@ labels: 不正なトランザクションの処理は、XRP Ledgerの信頼という価値を損なうことになります。不変性チェックは、信頼性という機能を付加するため、XRP Ledger 全体に価値を提供します。 - - ## 仕組み 不変性チェッカーは、各トランザクションの後にリアルタイムで自動的に実行される第2層のコードです。トランザクションの結果がレジャーにコミットされる前に、不変性チェッカーはそれらの変更が正しいかどうかを検証します。もしトランザクションの結果がXRP Ledgerの厳格なルールに沿わない場合、不変性チェッカーはそのトランザクションを拒否します。このように拒否されたトランザクションは結果コード `tecINVARIANT_FAILED` を持ち、何の効果もなくレジャーに含まれます。 トランザクションを `tec` クラスのコードでレジャーに含めるには、何らかの最小限の処理が必要です。この最小限の処理でも不変条件に沿わない場合、トランザクションは `tefINVARIANT_FAILED` というコードで失敗し、レジャーには一切含まれません。 - ## 有効な不変条件 XRP Ledgerは、各トランザクションについて、以下のすべての不変条件をチェックします。 @@ -74,79 +71,68 @@ XRP Ledgerは、各トランザクションについて、以下のすべての - [有効な新規アカウントルート](#有効な新規アカウントルート) - ### トランザクション手数料チェック - **不変条件:** - - [トランザクションコスト](../transactions/transaction-cost.md)の金額は決してマイナスになってはならず、またトランザクションで指定されたコストより大きくなってはいけません。 - + - [トランザクションコスト](../transactions/transaction-cost.md)の金額は決してマイナスになってはならず、またトランザクションで指定されたコストより大きくなってはいけません。 ### XRPは作成されません - **不変条件:** - - トランザクションはXRPを生成してはならず、XRPを破棄するのみです[トランザクションコスト](../transactions/transaction-cost.md)。 - + - トランザクションはXRPを生成してはならず、XRPを破棄するのみです[トランザクションコスト](../transactions/transaction-cost.md)。 ### アカウントルートが削除されていない - **不変条件:** - - [アカウント](../accounts/index.md)は、[AccountDeleteトランザクション][]によってのみレジャーから削除することができます。 - - AccountDelete が成功すると、常にちょうど1つのアカウントが削除されます。 - + - [アカウント](../accounts/index.md)は、[AccountDeleteトランザクション][]によってのみレジャーから削除することができます。 + - AccountDelete が成功すると、常にちょうど1つのアカウントが削除されます。 ### XRPの残高確認 - **不変条件:** - - アカウントのXRP残高はXRPの形式である必要があり、0未満または1000億XRPを超えることはできません。 - + - アカウントのXRP残高はXRPの形式である必要があり、0未満または1000億XRPを超えることはできません。 ### レジャーエントリ形式の一致 - **不変条件:** - - 変更されたレジャーの項目は形式が一致し、追加された項目は[有効なタイプ](../../references/protocol/ledger-data/ledger-entry-types/index.md)である必要があります。 - + - 変更されたレジャーの項目は形式が一致し、追加された項目は[有効なタイプ](../../references/protocol/ledger-data/ledger-entry-types/index.md)である必要があります。 ### XRPのトラストラインはありません - **不変条件:** - - XRPを使用した[トラストライン](../tokens/fungible-tokens/index.md)は作成できません。 - + - XRPを使用した[トラストライン](../tokens/fungible-tokens/index.md)は作成できません。 ### 不正なオファーでない - **不変条件:** - - [オファー](../../references/protocol/ledger-data/ledger-entry-types/offer.md)は負でない金額でなければならず、XRP同士であってはいけません。 - + - [オファー](../../references/protocol/ledger-data/ledger-entry-types/offer.md)は負でない金額でなければならず、XRP同士であってはいけません。 ### 0のエスクローでない - **不変条件:** - - [エスクロー](../../references/protocol/ledger-data/ledger-entry-types/escrow.md)エントリは、0XRP以上1000億XRP未満を保有している必要があります。 - + - [エスクロー](../../references/protocol/ledger-data/ledger-entry-types/escrow.md)エントリは、0XRP以上1000億XRP未満を保有している必要があります。 ### 有効な新規アカウントルート - **不変条件:** - - 新しい[アカウントルート](../../references/protocol/ledger-data/ledger-entry-types/accountroot.md)は、支払いの結果でなければなりません。 - - 新しいアカウントルートは、正しい開始[シーケンス](../../references/protocol/data-types/basic-data-types.md#アカウントシーケンス)を持たなければなりません。 - - 1つのトランザクションで複数の新しい[アカウント](../accounts/index.md)を作成してはいけません。 - + - 新しい[アカウントルート](../../references/protocol/ledger-data/ledger-entry-types/accountroot.md)は、支払いの結果でなければなりません。 + - 新しいアカウントルートは、正しい開始[シーケンス](../../references/protocol/data-types/basic-data-types.md#アカウントシーケンス)を持たなければなりません。 + - 1つのトランザクションで複数の新しい[アカウント](../accounts/index.md)を作成してはいけません。 ## 関連項目 - **ブログ:** - - [レジャーの保護: 不変性チェック](https://xrpl.org/blog/2017/invariant-checking.html) + - [レジャーの保護: 不変性チェック](https://xrpl.org/blog/2017/invariant-checking.html) - **リポジトリ:** - - [Invariant Check.h](https://github.com/XRPLF/rippled/blob/023f5704d07d09e70091f38a0d4e5df213a3144b/src/ripple/app/tx/impl/InvariantCheck.h) - - [Invariant Check.cpp](https://github.com/XRPLF/rippled/blob/023f5704d07d09e70091f38a0d4e5df213a3144b/src/ripple/app/tx/impl/InvariantCheck.cpp) - - [System Parameters](https://github.com/XRPLF/rippled/blob/develop/src/ripple/protocol/SystemParameters.h#L43) - - [XRP Amount](https://github.com/XRPLF/rippled/blob/develop/src/ripple/basics/XRPAmount.h#L244) - - [Ledger Formats](https://github.com/XRPLF/rippled/blob/023f5704d07d09e70091f38a0d4e5df213a3144b/src/ripple/protocol/LedgerFormats.h#L36-L94) - + - [Invariant Check.h](https://github.com/XRPLF/rippled/blob/023f5704d07d09e70091f38a0d4e5df213a3144b/src/ripple/app/tx/impl/InvariantCheck.h) + - [Invariant Check.cpp](https://github.com/XRPLF/rippled/blob/023f5704d07d09e70091f38a0d4e5df213a3144b/src/ripple/app/tx/impl/InvariantCheck.cpp) + - [System Parameters](https://github.com/XRPLF/rippled/blob/develop/src/ripple/protocol/SystemParameters.h#L43) + - [XRP Amount](https://github.com/XRPLF/rippled/blob/develop/src/ripple/basics/XRPAmount.h#L244) + - [Ledger Formats](https://github.com/XRPLF/rippled/blob/023f5704d07d09e70091f38a0d4e5df213a3144b/src/ripple/protocol/LedgerFormats.h#L36-L94) - **その他:** - - [Authorized Trust Lines](../tokens/fungible-tokens/authorized-trust-lines.md) - - [トランザクションの残高変化の計算](https://xrpl.org/blog/2015/calculating-balance-changes-for-a-transaction.html#calculating-balance-changes-for-a-transaction) + - [Authorized Trust Lines](../tokens/fungible-tokens/authorized-trust-lines.md) + - [トランザクションの残高変化の計算](https://xrpl.org/blog/2015/calculating-balance-changes-for-a-transaction.html#calculating-balance-changes-for-a-transaction) {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/concepts/consensus-protocol/negative-unl.md b/@l10n/ja/docs/concepts/consensus-protocol/negative-unl.md index 199fb6cae9..27bf19a7a3 100644 --- a/@l10n/ja/docs/concepts/consensus-protocol/negative-unl.md +++ b/@l10n/ja/docs/concepts/consensus-protocol/negative-unl.md @@ -2,10 +2,11 @@ html: negative-unl.html parent: consensus.html seo: - description: ネガティブUNLが部分的な停止時に台帳の耐障害性を向上させることを理解する。 + description: ネガティブUNLが部分的な停止時に台帳の耐障害性を向上させることを理解する。 labels: - ブロックチェーン --- + # ネガティブUNL _([NegativeUNL Amendment](/resources/known-amendments.md#negativeunl)によって追加されました。)_ @@ -42,7 +43,6 @@ XRP Ledgerプロトコルの各サーバは、UNL(Unique Node List)と呼ば ネガティブUNLは意図的にゆっくりとした速度で変化するように設計されており、あるバージョンのレジャーの合意形成プロセスにおいて、どのネガティブUNLを適用すべきかという時間ベースの不一致を回避するためである。 - ### 信頼性評価 ネットワーク上の各サーバは、共謀しないように信頼するバリデータのリストであるUNLを持っています。(デフォルトでは、サーバの正確なUNLはリップル社が公表している推奨バリデータリストに基づいて暗黙的に設定されます)。各サーバは、信頼できるバリデータの「信頼性」を1つの指標で追跡します。それは、直近256件のレジャーのうち、バリデータの検証投票がサーバの考えるコンセンサスと一致した割合です。言い換えれば @@ -63,8 +63,6 @@ Vaは、サーバ側のコンセンサス見解と一致した過去2 {% admonition type="success" name="ヒント" %}バリデータは自分自身の信頼性を追跡するが、自分自身をネガティブUNLに加えることは提案しない。バリデータの信頼性測定は、バリデータの投票がネットワークを通じてどの程度うまく伝わるかを考慮できないので、外部のサーバからの測定値よりも信頼性が低い。{% /admonition %} - - ### ネガティブUNLの変更 レジャーバージョンが256で均等に割り切れる場合、_フラグレジャー_ とみなされます。ネガティブUNLはフラグレジャーでのみ変更可能です。(フラグレジャーは、XRP Ledgerメインネットで約15分に1回発生します。トランザクション量の少ないテストネットワークでは、もっと低頻度な場合があります) @@ -73,32 +71,30 @@ Vaは、サーバ側のコンセンサス見解と一致した過去2 1. 前のフラグレジャーで予定されていたネガティブUNLの変更は、次のレジャーバージョンから有効となる。このフラグレジャーの検証のための合意プロセスそのものは、予定されていた変更を利用しない。 - {% admonition type="info" name="注記" %}これは、[トランザクション](../transactions/index.md)や[疑似トランザクション](../../references/protocol/transactions/pseudo-transaction-types/index.md)を行わずにレジャーの状態データを変更する唯一の機会です。{% /admonition %} + {% admonition type="info" name="注記" %}これは、[トランザクション](../transactions/index.md)や[疑似トランザクション](../../references/protocol/transactions/pseudo-transaction-types/index.md)を行わずにレジャーの状態データを変更する唯一の機会です。{% /admonition %} 2. ネガティブUNLが満杯でない場合、各サーバは信頼度50%未満のバリデータの中から、**最大1つ**のバリデータをネガティブUNLに追加することを提案する。 3. ネガティブUNLが空でない場合、各サーバはネガティブUNLから**最大1つ**のバリデータを削除することを提案する。サーバがバリデータをネガティブUNLから削除することを提案できる理由は2つある。 - - バリデータの信頼度が80%を超えている。 - - 自身のUNLにそのバリデータを持たない。(バリデータが永久に停止した場合、このルールは、サーバの設定済みUNLからバリデータが削除された後に、オンレジャーのネガティブUNLからバリデータが削除されることを確実にする)。 + - バリデータの信頼度が80%を超えている。 + - 自身のUNLにそのバリデータを持たない。(バリデータが永久に停止した場合、このルールは、サーバの設定済みUNLからバリデータが削除された後に、オンレジャーのネガティブUNLからバリデータが削除されることを確実にする)。 4. ネガティブUNLの変更案がコンセンサスに達した場合、その変更は次のフラグレジャーから適用される予定である。この方法で最大1つの追加と1つの削除をスケジュールすることができる。 ネガティブUNLにバリデータを追加したり削除したりする提案は[UNLModify pseudo-transactions][]の形式を取る。それぞれの擬似トランザクションは他の[擬似トランザクション](../../references/protocol/transactions/pseudo-transaction-types/index.md)と同じように合意形成プロセスによって合意を得るか捨てられるかが決定される。言い換えると、あるバリデータがネガティブUNLに追加されたり削除されたりするためには、サーバの総意として同じ変更を提案する必要がある。 ネガティブUNLの予定された有効な変更は、レジャーの状態データの中の[ネガティブUNLオブジェクト](../../references/protocol/ledger-data/ledger-entry-types/negativeunl.md)に追跡される。 - ### ネガティブUNLの制限 ネットワークが2つ以上のサブネットワークに分断されるのを防ぐために、ネガティブUNLは定足数要件をUNLエントリ全体の60%未満に減らすことができない。これを強制するために、サーバはネガティブUNL上のバリデータ数がサーバの設定済みUNL内のバリデータ数の25%(切り捨て)である場合、ネガティブUNLが"満杯"になったと見なす。(この25%は、25%のバリデータが削除された場合、残りの75%のバリデータの80%の合意は元の数の60%に等しいという計算に基づいている)。もしサーバがネガティブUNLが一杯になったと判断した場合、ネガティブUNLへの新たな追加は提案されない。 - ### 複数のバリデータ候補から選択する 信頼性の閾値に基づき、複数のバリデータがネガティブUNLに追加される候補となる可能性がある。一度に最大1つのバリデータをネガティブUNLに追加できるので、サーバはどのバリデータを追加するかを選択しなければならない。複数の候補がある場合、サーバは以下のメカニズムでどの候補を提案するかを選択する。 1. 親レジャーバージョンのレジャーハッシュを取得する。 -0. 各バリデータ候補の公開鍵を取得する。 -0. 候補のバリデータと親レジャーのハッシュの排他的論理和(XOR)を計算する。 -0. XOR演算の結果のうち、数値が最も小さいバリデータを提案する。 +2. 各バリデータ候補の公開鍵を取得する。 +3. 候補のバリデータと親レジャーのハッシュの排他的論理和(XOR)を計算する。 +4. XOR演算の結果のうち、数値が最も小さいバリデータを提案する。 あるフラグレジャーのネガティブUNLから削除される候補が複数ある場合、サーバは同じメカニズムでそれらの中から選択します。 @@ -108,7 +104,6 @@ Vaは、サーバ側のコンセンサス見解と一致した過去2 - 信頼できるバリデータのスコアが多少異なっていても、ほとんどのサーバは同じ候補を選択する。これは、どのバリデータの信頼度が「最低」なのか「最高」なのかについて、 サーバ間で見解の相違があったとしても同様である。これは、あるバリデータが信頼性の閾値より上か下かについて、各サーバが意見を異にしている場合でさえも同様である。したがって、ネットワークは、どのバリデータを追加または削除するかについて、合意が得られる可能性が高い。 - レジャーバージョンごとに同じ結果が出るとは限りません。もしネガティブUNLへのある変更案が合意に至らなかったとしても、ネットワークは毎回その1つのバリデータの追加や削除を試みて失敗し続けることはない。ネットワークは、後のフラグ付きレジャーで別の候補をネガティブUNLに追加・削除することを試みることができる。 - ### 検証のフィルタリング [コンセンサスプロセスの検証ステップ](consensus-structure.md#検証)では、親レジャーのネガティブUNLのバリデータを無効化します。各サーバは無効化されたバリデータを取り除いた設定済みUNLからなる"有効UNL"を計算し、定足数を再計算します。(定足数は常に有効UNLの80%以上、かつ設定UNLの60%以上です)。無効化されたバリデータが検証票を送信した場合、サーバは無効化されたバリデータの信頼性を計算するためにその票を追跡するが、あるバージョンのレジャーが合意に達したかどうかを判断するためにその票を使うことはありません。 @@ -123,55 +118,53 @@ Vaは、サーバ側のコンセンサス見解と一致した過去2 1. サーバのUNLが38人の信頼できるバリデータで構成されているとすると、80%の定足数は38人のうち少なくとも31人の信頼できるバリデータである。 -[{% inline-svg file="/docs/img/negative-unl-01.ja.svg" /%}](/docs/img/negative-unl-01.ja.svg "Diagram: 通常の場合。ネガティブUNLは未使用、定足数は設定されたバリデータの80%である。") +[{% inline-svg file="/docs/img/negative-unl-01.ja.svg" /%}](/docs/img/negative-unl-01.ja.svg 'Diagram: 通常の場合。ネガティブUNLは未使用、定足数は設定されたバリデータの80%である。') 2. MissingAとUnsteadyBという2人のバリデータがオフラインになったとする。(両者とも信頼度スコアは50%未満である。)レジャー _N_ の合意プロセスにおいて、残りのバリデータの多くがUnsteadyBをネガティブUNLに追加することを提案する。この動議は残りのバリデータのうち少なくとも31人の定足数で可決され、レジャー _N_ はUnsteadyBを無効化する予定で有効になった。 -[{% inline-svg file="/docs/img/negative-unl-02.ja.svg" /%}](/docs/img/negative-unl-02.ja.svg "Diagram: UnsteadyBは無効になる予定。") - +[{% inline-svg file="/docs/img/negative-unl-02.ja.svg" /%}](/docs/img/negative-unl-02.ja.svg 'Diagram: UnsteadyBは無効になる予定。') 3. レジャー _N+1_ から _N+256_ については、コンセンサスプロセスをそのまま継続する。 4. 次のフラグレジャー _N+256_ では、UnsteadyBはレジャーの「予定」から「無効」リストへ自動的に移動する。また、MissingAがまだオフラインであるため、検証者の総意として、次のフラグレジャーでMissingAを無効化する予定とする。 -[{% inline-svg file="/docs/img/negative-unl-04.ja.svg" /%}](/docs/img/negative-unl-04.ja.svg "UnsteadyBが無効化され、MissingAも無効化される予定。") +[{% inline-svg file="/docs/img/negative-unl-04.ja.svg" /%}](/docs/img/negative-unl-04.ja.svg 'UnsteadyBが無効化され、MissingAも無効化される予定。') 5. レジャー _N+257_ から _N+512_ について、定足数は37名中30名となった。 6. UnsteadyBがレジャー _N+270_ でオンラインに復帰。レジャー _N+270_ から _N+511_ に対してネットワークの他の部分と一致する検証票を送信し、信頼性スコアが80%以上となる。 -[{% inline-svg file="/docs/img/negative-unl-06.ja.svg" /%}](/docs/img/negative-unl-06.ja.svg "Diagram: UnsteadyBがオンラインに戻るが、まだ無効化されている。") +[{% inline-svg file="/docs/img/negative-unl-06.ja.svg" /%}](/docs/img/negative-unl-06.ja.svg 'Diagram: UnsteadyBがオンラインに戻るが、まだ無効化されている。') 7. 次のフラグレジャー _N+256_ では、予定通りMissingAが自動的に無効リストに移される。一方、UnsteadyBは信頼性スコアが向上したため、検証者の総意としてネガティブUNLから削除される予定である。 -[{% inline-svg file="/docs/img/negative-unl-07.ja.svg" /%}](/docs/img/negative-unl-07.ja.svg "Diagram: MissingAを無効化し、UnsteadyBを再有効化する予定。") +[{% inline-svg file="/docs/img/negative-unl-07.ja.svg" /%}](/docs/img/negative-unl-07.ja.svg 'Diagram: MissingAを無効化し、UnsteadyBを再有効化する予定。') 8. レジャー _N+513_ から _N+768_ の場合、定足数は36人中29人である。MissingAがオフラインの間、UnsteadyBは安定的に検証結果を送り続ける。 9. フラグレジャー _N+768_ では、予定通りUnsteadyBが無効リストから自動的に削除されています。 -[{% inline-svg file="/docs/img/negative-unl-09.ja.svg" /%}](/docs/img/negative-unl-09.ja.svg "Diagram: UnsteadyBを無効リストから削除。") +[{% inline-svg file="/docs/img/negative-unl-09.ja.svg" /%}](/docs/img/negative-unl-09.ja.svg 'Diagram: UnsteadyBを無効リストから削除。') 10. 最終的に、あなたはMissingAがおそらく戻ってこないと判断し、あなたのサーバの設定されたUNLからそれを削除します。あなたのサーバはそれ以降、各フラグレジャーからMissingAをネガティブUNLから削除することを提案し始める。 -[{% inline-svg file="/docs/img/negative-unl-10.ja.svg" /%}](/docs/img/negative-unl-10.ja.svg "Diagram: MissingAを設定済みUNLから削除した後、ネガティブUNLからも削除することを提案する。 ") +[{% inline-svg file="/docs/img/negative-unl-10.ja.svg" /%}](/docs/img/negative-unl-10.ja.svg 'Diagram: MissingAを設定済みUNLから削除した後、ネガティブUNLからも削除することを提案する。 ') 11. バリデータ操作者が自分の設定したUNLからMissingAを削除すると、そのバリデータ操作者はネガティブUNLからMissingAを削除するように投票する。十分な数のバリデータが投票した時点で、MissingAを削除する提案は合意に達し、MissingAはスケジュールされ、最終的にネガティブUNLから削除される。 -[{% inline-svg file="/docs/img/negative-unl-11.ja.svg" /%}](/docs/img/negative-unl-11.ja.svg "Diagram: MissingAをネガティブUNLから削除。") - +[{% inline-svg file="/docs/img/negative-unl-11.ja.svg" /%}](/docs/img/negative-unl-11.ja.svg 'Diagram: MissingAをネガティブUNLから削除。') ### 関連項目 - **コンセンサス:** - - [コンセンサスプロトコル](index.md) + - [コンセンサスプロトコル](index.md) - **チュートリアル:** - - [Testnetや別の並列ネットワークへ接続する](../../infrastructure/configuration/connect-your-rippled-to-the-xrp-test-net.md) - - [バリデータとしての`rippled`の実行](../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md) + - [Testnetや別の並列ネットワークへ接続する](../../infrastructure/configuration/connect-your-rippled-to-the-xrp-test-net.md) + - [バリデータとしての`rippled`の実行](../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md) - **リファレンス:** - - [negativeUNL オブジェクト](../../references/protocol/ledger-data/ledger-entry-types/negativeunl.md) - - [UNLModify pseudo-transaction][] - - [ledger_entryメソッド][] - - [consensus_infoメソッド][] + - [negativeUNL オブジェクト](../../references/protocol/ledger-data/ledger-entry-types/negativeunl.md) + - [UNLModify pseudo-transaction][] + - [ledger_entryメソッド][] + - [consensus_infoメソッド][] {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/concepts/decentralized-storage/credentials.md b/@l10n/ja/docs/concepts/decentralized-storage/credentials.md index e7e40e2a93..c0294b8563 100644 --- a/@l10n/ja/docs/concepts/decentralized-storage/credentials.md +++ b/@l10n/ja/docs/concepts/decentralized-storage/credentials.md @@ -4,7 +4,6 @@ Credentials(資格情報)機能は、プライバシーと分散化を尊重し Credentials標準の設計は、[W3C Verifiable Credentials標準](https://www.w3.org/TR/vc-data-model-2.0/)から着想を得ています。XRP Ledgerのコンテキストで意味をなす範囲で互換性を持たせることを意図しています。データ構造とフォーマットには若干の違いがあります。例えば、資格情報の対象はURLではなくXRP Ledgerアドレスによって識別されます。 - ## 概要 _Credentials_ は、レジャーに保存可能な署名付きの声明であり、ユーザのアイデンティティ、法的地位、またはその他の状態を証明することができます。この機能には、XRP Ledger上での資格情報の発行、保存、検証が含まれ、同時にユーザのプライバシーニーズもサポートします。 @@ -31,9 +30,9 @@ XRP Ledgerに保存された資格情報は、特にDID(分散型識別子)と 資格情報の典型的な利用フローには、以下の例で説明するように、異なる役割を持つ3つの関係者が関与します。 -* Verityは、法的コンプライアンスを確保するために、適切にKYCされたアカウントとのみ相互作用したい規制対象ビジネスです。これによりVerityは _認証者_ となります。なぜなら、どのアカウントが彼らと相互作用できる(認可される)かを設定するからです。 -* Isabelは、アカウントを審査し、アカウントが本人であることを証明する資格情報を発行する資格情報発行者です。 -* Aliceは、Verityと相互作用したいユーザです。 +- Verityは、法的コンプライアンスを確保するために、適切にKYCされたアカウントとのみ相互作用したい規制対象ビジネスです。これによりVerityは _認証者_ となります。なぜなら、どのアカウントが彼らと相互作用できる(認可される)かを設定するからです。 +- Isabelは、アカウントを審査し、アカウントが本人であることを証明する資格情報を発行する資格情報発行者です。 +- Aliceは、Verityと相互作用したいユーザです。 3者全てにXRP Ledgerアカウントが必要です。フローは以下のように進みます。 diff --git a/@l10n/ja/docs/concepts/decentralized-storage/decentralized-identifiers.md b/@l10n/ja/docs/concepts/decentralized-storage/decentralized-identifiers.md index 937a136b34..387d72a39c 100644 --- a/@l10n/ja/docs/concepts/decentralized-storage/decentralized-identifiers.md +++ b/@l10n/ja/docs/concepts/decentralized-storage/decentralized-identifiers.md @@ -1,9 +1,10 @@ --- seo: - description: 分散型IDは、検証可能な分散型デジタルIDを可能にします。 + description: 分散型IDは、検証可能な分散型デジタルIDを可能にします。 labels: - DID --- + # 分散型ID 分散型ID(DID)は、検証可能なデジタルIDを可能にするWorld Wide Web Consortium(W3C)によって定義された新しいタイプの識別子です。DIDはDID所有者の完全な管理下にあり、中央管理レジストリ、IDプロバイダ、認証局から独立しています。 @@ -14,7 +15,7 @@ DIDの主な基本原則は以下の通りです。 - **検証可能な資格情報(Verifiable Credentials):** 誰でもDIDを作成し、その情報を偽造することができます。DIDの真正性を証明するために、ユーザは暗号的に安全で改ざんできない検証可能な資格情報(Verifiable Credentials/VC)を提供しなければなりません。 - DIDエコシステムには3つの当事者がいます。_ユーザ_、_発行者_、_検証者_ です。ユーザはDIDを管理しますが、オフラインで情報を検証するには信頼できる _発行者_ が必要です。_発行者_ は検証可能な資格情報を提供し、ユーザはそれをユーザの身元を確認する必要がある _検証者_ に渡します。DIDエコシステムの詳細については、こちらをご覧ください。[エコシステムの概要](https://www.w3.org/TR/vc-data-model/#ecosystem-overview) + DIDエコシステムには3つの当事者がいます。_ユーザ_、_発行者_、_検証者_ です。ユーザはDIDを管理しますが、オフラインで情報を検証するには信頼できる _発行者_ が必要です。_発行者_ は検証可能な資格情報を提供し、ユーザはそれをユーザの身元を確認する必要がある _検証者_ に渡します。DIDエコシステムの詳細については、こちらをご覧ください。[エコシステムの概要](https://www.w3.org/TR/vc-data-model/#ecosystem-overview) - **相互運用性:** DIDは、W3CのDID規格を認識するあらゆるソリューションに対してオープンです。つまり、DIDは様々なデジタルトランザクションやインタラクションの認証や信頼の確立に使用することができます。 @@ -29,7 +30,6 @@ DIDの主な基本原則は以下の通りです。 3. ユーザは、デジタル上のタスクのために、自分のDIDとVCを検証者に提供します。 4. 検証者はDIDをそのドキュメントに変換し、VCを使用してその真正性を検証します。 - ## DIDドキュメント DIDドキュメントには、記述された対象の身元を暗号的に検証するために必要な情報が含まれます。サブジェクトは、人、組織、または物であってもかまいません。たとえば、DIDドキュメントには、DIDサブジェクトが自身を認証し、DIDの関連を証明するために使用できる暗号化公開鍵を含めることができます。 @@ -41,30 +41,28 @@ XRP Ledgerでは、DIDをDIDドキュメントに関連付ける方法がいく 1. IPFSやSTORJのような他の分散ストレージネットワークに保存されているドキュメントを指す`DID`オブジェクトの`URI`フィールドにドキュメントへの参照を保存します。 2. 最小限のDIDドキュメントを`DID`オブジェクトの`DIDDocument`フィールドに格納します。 3. DIDとその他の利用可能な公開情報から生成された最小限の _暗黙的な_ DIDドキュメントを使用します。 - {% admonition type="info" name="注記" %}より単純なユースケースでは、署名と単純な認証トークンのみが必要な場合があります。レジャー上に明示的にDIDドキュメントが存在しない場合、代わりに暗黙的なドキュメントが使用されます。たとえば、`did:xrpl:1:0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020`の暗黙のDIDドキュメントでは、単一のキー`0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020`だけでDIDドキュメントの変更を承認したり、DIDの名前で署名に署名したりできます。{% /admonition %} - + {% admonition type="info" name="注記" %}より単純なユースケースでは、署名と単純な認証トークンのみが必要な場合があります。レジャー上に明示的にDIDドキュメントが存在しない場合、代わりに暗黙的なドキュメントが使用されます。たとえば、`did:xrpl:1:0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020`の暗黙のDIDドキュメントでは、単一のキー`0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020`だけでDIDドキュメントの変更を承認したり、DIDの名前で署名に署名したりできます。{% /admonition %} ### XRPL DIDドキュメントの例 ```json { - "@context": "https://w3id.org/did/v1", - "id": "did:xrpl:1:rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "publicKey": [ - { - "id": "did:xrpl:1:rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn#keys-1", - "type": ["CryptographicKey", "EcdsaKoblitzPublicKey"], - "curve": "secp256k1", - "expires": 15674657, - "publicKeyHex": "04f42987b7faee8b95e2c3a3345224f00e00dfc67ba882..." - } - ] + "@context": "https://w3id.org/did/v1", + "id": "did:xrpl:1:rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "publicKey": [ + { + "id": "did:xrpl:1:rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn#keys-1", + "type": ["CryptographicKey", "EcdsaKoblitzPublicKey"], + "curve": "secp256k1", + "expires": 15674657, + "publicKeyHex": "04f42987b7faee8b95e2c3a3345224f00e00dfc67ba882..." + } + ] } ``` DIDドキュメントの主要なプロパティの詳細については[Decentralized Identifiers (DIDs) v1.0](https://www.w3.org/TR/did-core/#core-properties)をご覧ください。 - ## プライバシーとセキュリティの懸念 - XRPLアカウントの秘密鍵を管理する人は誰でも、DIDとそれが解決するDIDドキュメントへの参照を管理します。秘密鍵が漏洩しないように注意してください。 diff --git a/@l10n/ja/docs/concepts/decentralized-storage/index.md b/@l10n/ja/docs/concepts/decentralized-storage/index.md index 26cad21319..47959720c5 100644 --- a/@l10n/ja/docs/concepts/decentralized-storage/index.md +++ b/@l10n/ja/docs/concepts/decentralized-storage/index.md @@ -2,9 +2,9 @@ metadata: indexPage: true --- + # 分散型ストレージ XRP Ledgerにオフチェーンからの特定の種類の情報を保存出来ます。 - {% child-pages /%} diff --git a/@l10n/ja/docs/concepts/decentralized-storage/price-oracles.md b/@l10n/ja/docs/concepts/decentralized-storage/price-oracles.md index 6b4925d605..6be3e561ff 100644 --- a/@l10n/ja/docs/concepts/decentralized-storage/price-oracles.md +++ b/@l10n/ja/docs/concepts/decentralized-storage/price-oracles.md @@ -12,7 +12,6 @@ _([PriceOracle Amendment][])_ {% /admonition %} - ## オラクルの仕組み ほとんどのオラクルブロックチェーンのやり取りは、次のような仕組みになっています。 @@ -23,7 +22,6 @@ _([PriceOracle Amendment][])_ このプロセスは逆方向にも機能し、トランザクション情報を外部システムにプッシュすることも可能です。 - ## XRP Ledgerの価格オラクル XRPLの価格オラクルはネイティブのオンチェーンオラクルであり、XRP LedgerのネイティブDeFi機能を強化します。オフチェーン価格オラクルは、そのデータをXRPLオラクルに送信し、XRPLオラクルはオンチェーンにその情報を保存します。これにより、分散型アプリケーションは価格データについてXRPLオラクルに問い合わせることが可能になります。複数のXRPLオラクルに問い合わせることで、リスクと不正確性を最小限に抑えることができます。 @@ -33,9 +31,9 @@ XRPLの価格オラクルはネイティブのオンチェーンオラクルで ## 関連項目 - **リファレンス:** - - [get_aggregate_priceメソッド][] - - [Oracleエントリ][] - - [OracleDeleteトランザクション][] - - [OracleSetトランザクション][] + - [get_aggregate_priceメソッド][] + - [Oracleエントリ][] + - [OracleDeleteトランザクション][] + - [OracleSetトランザクション][] {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/concepts/index.md b/@l10n/ja/docs/concepts/index.md index e9bbad84f7..500f0e5e01 100644 --- a/@l10n/ja/docs/concepts/index.md +++ b/@l10n/ja/docs/concepts/index.md @@ -5,9 +5,9 @@ top_nav_grouping: カテゴリ metadata: indexPage: true --- + # コンセプト XRP Ledgerの基本的な部分の背景に「何があるか」、「なぜなのか」を学びましょう。 - {% child-pages /%} diff --git a/@l10n/ja/docs/concepts/ledgers/index.md b/@l10n/ja/docs/concepts/ledgers/index.md index a5fc432f59..ae1d79a8df 100644 --- a/@l10n/ja/docs/concepts/ledgers/index.md +++ b/@l10n/ja/docs/concepts/ledgers/index.md @@ -2,16 +2,17 @@ html: ledgers.html parent: concepts.html seo: - description: XRP Ledgerは、rippledによって内部データベースに保持されている一連の個別レジャー(レジャーバージョン)で構成されています。これらのレジャーの構造と内容について説明します。 + description: XRP Ledgerは、rippledによって内部データベースに保持されている一連の個別レジャー(レジャーバージョン)で構成されています。これらのレジャーの構造と内容について説明します。 labels: - ブロックチェーン - データ保持 --- + # レジャー XRP Ledgerは、誰にでも開かれた共有のグローバル台帳(レジャー)です。個々の参加者は、単一の機関に台帳の管理を任せることなく、台帳の正当性を信頼することができます。XRP Ledgerプロトコルは、非常に特殊なルールに従ってのみ更新可能な台帳データベースを管理することで、これを実現しています。ピアツーピアネットワークのサーバは台帳データベースの完全なコピーを保持し、ネットワークは候補となるトランザクションを配信し、[コンセンサスプロセス](../consensus-protocol/index.md)に従ってブロック単位で適用されます。 -[{% inline-svg file="/docs/img/ledger-changes.svg" /%}](/docs/img/ledger-changes.svg "図: 各レジャーは、その前のレジャーバージョンにトランザクションを適用して生成されます") +[{% inline-svg file="/docs/img/ledger-changes.svg" /%}](/docs/img/ledger-changes.svg '図: 各レジャーは、その前のレジャーバージョンにトランザクションを適用して生成されます') 共有グローバル台帳は、レジャーバージョンまたは単に _レジャー_ と呼ばれる一連のブロックから構成されます。すべてのレジャーバージョンには、台帳の正しい順序を識別する[レジャーインデックス][]があります。永続的にクローズされる各台帳には、固有の識別ハッシュ値も存在します。 @@ -19,13 +20,11 @@ XRP Ledgerは、誰にでも開かれた共有のグローバル台帳(レジャ 1つのレジャーバージョンはいくつかの要素から構成されています。 -[{% inline-svg file="/docs/img/anatomy-of-a-ledger-simplified.svg" /%}](/docs/img/anatomy-of-a-ledger-simplified.svg "レジャーにはトランザクション、状態ツリー、閉鎖時刻、検証情報を含むヘッダーが含まれています。") - -* **ヘッダー** - [レジャーインデックス][]、レジャーのその他のコンテンツのハッシュ、その他のメタデータ。 -* **トランザクションツリー** - このレジャーの作成時に、直前のレジャーに適用された[トランザクション](../../references/protocol/transactions/index.md)。トランザクションは、レジャーの変更を可能にする _唯一の_ 手段です。 -* **状態ツリー** - このレジャーの設定、残高などを含むすべての[レジャーエントリ](../../references/protocol/ledger-data/ledger-entry-types/index.md)。 - +[{% inline-svg file="/docs/img/anatomy-of-a-ledger-simplified.svg" /%}](/docs/img/anatomy-of-a-ledger-simplified.svg 'レジャーにはトランザクション、状態ツリー、閉鎖時刻、検証情報を含むヘッダーが含まれています。') +- **ヘッダー** - [レジャーインデックス][]、レジャーのその他のコンテンツのハッシュ、その他のメタデータ。 +- **トランザクションツリー** - このレジャーの作成時に、直前のレジャーに適用された[トランザクション](../../references/protocol/transactions/index.md)。トランザクションは、レジャーの変更を可能にする _唯一の_ 手段です。 +- **状態ツリー** - このレジャーの設定、残高などを含むすべての[レジャーエントリ](../../references/protocol/ledger-data/ledger-entry-types/index.md)。 ## 関連項目 diff --git a/@l10n/ja/docs/concepts/ledgers/ledger-close-times.md b/@l10n/ja/docs/concepts/ledgers/ledger-close-times.md index 2d985b2f92..d69b82f18c 100644 --- a/@l10n/ja/docs/concepts/ledgers/ledger-close-times.md +++ b/@l10n/ja/docs/concepts/ledgers/ledger-close-times.md @@ -2,10 +2,11 @@ html: ledger-close-times.html parent: ledgers.html seo: - description: XRP Ledgerが、レジャーバージョンごとに一意の閉鎖時刻を計算する方法。 + description: XRP Ledgerが、レジャーバージョンごとに一意の閉鎖時刻を計算する方法。 labels: - ブロックチェーン --- + # レジャーの閉鎖時刻 レジャーバージョンの閉鎖時刻は、[レジャーヘッダー](../../references/protocol/ledger-data/ledger-header.md)の`close_time`フィールドに記録されます。ネットワークの正確な閉鎖時刻についてコンセンサスを得やすくするため、この値は閉鎖時刻の精度に基づく秒数に丸められます(現在は10秒)。丸めによってレジャーの閉鎖時刻が親レジャーの閉鎖時刻と同じになる(または早くなる)場合、子レジャーの閉鎖時刻は親レジャーの閉鎖時刻に1を足した時刻に設定されます。これにより、有効なレジャーの閉鎖時刻が確実に増加することが保証されます。 diff --git a/@l10n/ja/docs/concepts/ledgers/ledger-structure.md b/@l10n/ja/docs/concepts/ledgers/ledger-structure.md index 0ff37f90e5..ca323cdb60 100644 --- a/@l10n/ja/docs/concepts/ledgers/ledger-structure.md +++ b/@l10n/ja/docs/concepts/ledgers/ledger-structure.md @@ -2,8 +2,9 @@ html: ledger-structure.html parent: ledgers.html seo: - description: 個別のレジャーブロックの要素を詳しく見てみましょう。 + description: 個別のレジャーブロックの要素を詳しく見てみましょう。 --- + # レジャーの構成要素 XRP Ledgerはブロックチェーンであり、データブロックの履歴を順番に並べたものです。XRP Ledgerブロックチェーンのブロックは、 _レジャーバージョン_ または略して _レジャー_ と呼ばれます。 @@ -12,12 +13,11 @@ XRP Ledgerはブロックチェーンであり、データブロックの履歴 各レジャーバージョンには、 _状態データ_ 、 _トランザクションセット_ 、メタデータを含む _ヘッダー_ が含まれます。 -[{% inline-svg file="/docs/img/ledger.svg" /%}](/docs/img/ledger.svg "図: レジャーはヘッダー、トランザクションセット、状態データから構成されます。") - +[{% inline-svg file="/docs/img/ledger.svg" /%}](/docs/img/ledger.svg '図: レジャーはヘッダー、トランザクションセット、状態データから構成されます。') ## 状態データ -[{% inline-svg file="/docs/img/ledger-state-data.svg" /%}](/docs/img/ledger-state-data.svg "図: レジャーの状態データは、さまざまなオブジェクトで構成され、グラフのようにリンクされていることもあります。") +[{% inline-svg file="/docs/img/ledger-state-data.svg" /%}](/docs/img/ledger-state-data.svg '図: レジャーの状態データは、さまざまなオブジェクトで構成され、グラフのようにリンクされていることもあります。') _状態データ_ とは、そのレジャーバージョンにおけるすべてのアカウント、残高、設定、その他の情報のスナップショットを表します。サーバがネットワークに接続すると、最初に行うことの1つは、新しいトランザクションを処理し、現在の状態に関するクエリに答えることができるように、現在の状態データの完全なセットをダウンロードすることです。ネットワーク内のすべてのサーバが状態データの完全なコピーを持っているため、すべてのデータは公開され、どのコピーも同じように有効です。 @@ -25,7 +25,7 @@ _状態データ_ とは、そのレジャーバージョンにおけるすべ ## トランザクションセット -[{% inline-svg file="/docs/img/ledger-transaction-set.svg" /%}](/docs/img/ledger-transaction-set.svg "図: レジャーのトランザクションセット、正規の順序で並べられたトランザクションのグループ") +[{% inline-svg file="/docs/img/ledger-transaction-set.svg" /%}](/docs/img/ledger-transaction-set.svg '図: レジャーのトランザクションセット、正規の順序で並べられたトランザクションのグループ') レジャーに加えられたすべての変更は、トランザクションの結果です。各レジャーバージョンには、特定の順序で新たに適用されたトランザクションのグループである _トランザクションセット_ が含まれています。あるレジャーのトランザクションセットを前のレジャーバージョンの状態データに適用すると、結果としてそのレジャーの状態データが得られます。 @@ -34,34 +34,32 @@ _状態データ_ とは、そのレジャーバージョンにおけるすべ - 送信者がレジャーに何を指示したかを示す _トランザクションの内容_ 。 - トランザクションがどのように処理され、レジャーの状態データにどのような影響を与えたかを正確に示す _トランザクションのメタデータ_ 。 - ## レジャーヘッダー _レジャーヘッダー_ は、レジャーバージョンの概略を示すデータのブロックです。レポートの表紙のように、レジャーバージョンを一意に識別し、その内容を記載し、他の注意事項とともに作成時刻を表しています。レジャーヘッダーには以下の情報が含まれます。 -- [{% inline-svg file="/docs/img/ledger-index-icon.svg" /%}](/docs/img/ledger-index-icon.svg "") チェーン内でのレジャーの位置を示す _レジャーインデックス_ 。レジャーは、1つ小さいインデックスを持つレジャーの上に構築され、 _ジェネシスレジャー_ として知られるスタート地点に戻ります。これは、すべてのトランザクションと結果の公開履歴を形成します。 -- [{% inline-svg file="/docs/img/ledger-hash-icon.svg" /%}](/docs/img/ledger-hash-icon.svg "") レジャーの内容を一意に識別する _レジャーハッシュ_ 。ハッシュは、レジャーバージョンの内容が変更された場合、ハッシュが完全に異なるものになるように計算されます。これは、レジャーのデータが消失、変更、破損していないことを示すチェックサムのようなものでもあります。 -- [{% inline-svg file="/docs/img/ledger-parent-icon.svg" /%}](/docs/img/ledger-parent-icon.svg "") 親レジャーのハッシュ。レジャーバージョンは、その前の _親レジャー_ との違いによって定義されることが多く、ヘッダーには親レジャーの一意なハッシュも含まれます。 -- [{% inline-svg file="/docs/img/ledger-timestamp-icon.svg" /%}](/docs/img/ledger-timestamp-icon.svg "") このレジャーの内容が確定した正式なタイムスタンプとなる _閉鎖時刻_ 。この数値は秒数(一の位)が四捨五入され、通常は10です。 -- [{% inline-svg file="/docs/img/ledger-state-data-hash-icon.svg" /%}](/docs/img/ledger-state-data-hash-icon.svg "") このレジャーの状態データのチェックサムとして機能する _状態データのハッシュ_ 。 -- [{% inline-svg file="/docs/img/ledger-tx-set-hash-icon.svg" /%}](/docs/img/ledger-tx-set-hash-icon.svg "") このレジャーのトランザクションセットのデータのチェックサムとして機能する _トランザクションセットのハッシュ_。 -- [{% inline-svg file="/docs/img/ledger-notes-icon.svg" /%}](/docs/img/ledger-notes-icon.svg "") その他、存在するXRPの総量や、閉鎖時刻が四捨五入された値など、いくつかのメモがあります。 +- [{% inline-svg file="/docs/img/ledger-index-icon.svg" /%}](/docs/img/ledger-index-icon.svg) チェーン内でのレジャーの位置を示す _レジャーインデックス_ 。レジャーは、1つ小さいインデックスを持つレジャーの上に構築され、 _ジェネシスレジャー_ として知られるスタート地点に戻ります。これは、すべてのトランザクションと結果の公開履歴を形成します。 +- [{% inline-svg file="/docs/img/ledger-hash-icon.svg" /%}](/docs/img/ledger-hash-icon.svg) レジャーの内容を一意に識別する _レジャーハッシュ_ 。ハッシュは、レジャーバージョンの内容が変更された場合、ハッシュが完全に異なるものになるように計算されます。これは、レジャーのデータが消失、変更、破損していないことを示すチェックサムのようなものでもあります。 +- [{% inline-svg file="/docs/img/ledger-parent-icon.svg" /%}](/docs/img/ledger-parent-icon.svg) 親レジャーのハッシュ。レジャーバージョンは、その前の _親レジャー_ との違いによって定義されることが多く、ヘッダーには親レジャーの一意なハッシュも含まれます。 +- [{% inline-svg file="/docs/img/ledger-timestamp-icon.svg" /%}](/docs/img/ledger-timestamp-icon.svg) このレジャーの内容が確定した正式なタイムスタンプとなる _閉鎖時刻_ 。この数値は秒数(一の位)が四捨五入され、通常は10です。 +- [{% inline-svg file="/docs/img/ledger-state-data-hash-icon.svg" /%}](/docs/img/ledger-state-data-hash-icon.svg) このレジャーの状態データのチェックサムとして機能する _状態データのハッシュ_ 。 +- [{% inline-svg file="/docs/img/ledger-tx-set-hash-icon.svg" /%}](/docs/img/ledger-tx-set-hash-icon.svg) このレジャーのトランザクションセットのデータのチェックサムとして機能する _トランザクションセットのハッシュ_。 +- [{% inline-svg file="/docs/img/ledger-notes-icon.svg" /%}](/docs/img/ledger-notes-icon.svg) その他、存在するXRPの総量や、閉鎖時刻が四捨五入された値など、いくつかのメモがあります。 レジャーのトランザクションセットと状態データのサイズは無制限ですが、レジャーヘッダーは常に固定サイズです。レジャーヘッダーの正確なデータとバイナリ形式については、[レジャーヘッダー](../../references/protocol/ledger-data/ledger-header.md)をご覧ください。 - ## バリデーションの状況 -[{% inline-svg file="/docs/img/ledger-validated-mark.svg" /%}](/docs/img/ledger-validated-mark.svg "Diagram: レジャーのバリデーション(検証)状況。レジャーの上に追加され、レジャー自体の一部ではありません。") +[{% inline-svg file="/docs/img/ledger-validated-mark.svg" /%}](/docs/img/ledger-validated-mark.svg 'Diagram: レジャーのバリデーション(検証)状況。レジャーの上に追加され、レジャー自体の一部ではありません。') サーバの Unique Node List のバリデータのコンセンサスがレジャーバージョンの内容に合意すると、そのレジャーバージョンは検証済みであり、変更不可であるとみなされます。レジャーの内容は、後続のトランザクションが新しいレジャーバージョンを作成し、チェーンを更新することによってのみ変更できます。 レジャーバージョンが新しく作成された時点では、まだ未検証です。候補となるトランザクションが異なるサーバに到着するタイミングが異なるため、ネットワークはチェーンの次のステップとなる複数の異なるレジャーバージョンを構築し、提案する可能性があります。[コンセンサスプロトコル](../consensus-protocol/index.md)は、そのうちのどれを有効化するかを決定します。(検証済みのレジャーバージョンに存在しなかったトランザクション候補は、通常、次のレジャーバージョンのトランザクションセットに含まれます)。 - ## レジャーインデックスとレジャーハッシュ + レジャーバージョンを識別する方法には、 _レジャーインデックス_ と _レジャーハッシュ_ の2種類があります。この2つのフィールドはどちらもレジャーを識別しますが、その目的は異なります。レジャーインデックスはチェーン内でのレジャーの位置を表し、レジャーハッシュはレジャーの内容を表します。 異なるチェーンのレジャーは、レジャーインデックスは同じでもハッシュが異なることがあります。また、検証されていないレジャーバージョンを扱う場合、インデックスが同じでも内容が異なるため、ハッシュが異なる複数のレジャー候補が存在する可能性があります。 diff --git a/@l10n/ja/docs/concepts/ledgers/open-closed-validated-ledgers.md b/@l10n/ja/docs/concepts/ledgers/open-closed-validated-ledgers.md index fd18c25425..5faab63cdb 100644 --- a/@l10n/ja/docs/concepts/ledgers/open-closed-validated-ledgers.md +++ b/@l10n/ja/docs/concepts/ledgers/open-closed-validated-ledgers.md @@ -2,20 +2,21 @@ html: open-closed-validated-ledgers.html parent: ledgers.html seo: - description: レジャーオブジェクトには、オープン、閉鎖済み、検証済みの3つの状態があります。 + description: レジャーオブジェクトには、オープン、閉鎖済み、検証済みの3つの状態があります。 labels: - ブロックチェーン --- + # オープン、閉鎖済み、および検証済みレジャー `rippled`サーバはレジャーのバージョンを _オープン(open)_、_閉鎖済み(closed)_、_検証済み(validated)_ に区別します。サーバはオープンなレジャーを1つ、閉鎖済みだが未検証のレジャーをいくつでも、そして検証済みレジャーの変更不可能な履歴を持ちます。以下の表はその違いをまとめたものです。 -| レジャーの種類: | オープン | 閉鎖済み | 検証済み | -|:--------------------------|:--------------|:--------------------------------------------|:--| -| **目的:** | 一時的な作業領域 | 次の状態の提案 | 直前の状態の確認 | -| **使用する数:** | 1 | 任意の数、通常は0または1 | レジャーインデックスごとに1つ、時間の経過とともに増加 | -| **内容は変更可能?** | はい | いいえ、ただし、別のレジャーが採用される可能性あり。 | いいえ | -| **トランザクションの適用方法:** | 受信順 | 正規順序 | 正規順序 | +| レジャーの種類: | オープン | 閉鎖済み | 検証済み | +| :------------------------------ | :--------------- | :--------------------------------------------------- | :---------------------------------------------------- | +| **目的:** | 一時的な作業領域 | 次の状態の提案 | 直前の状態の確認 | +| **使用する数:** | 1 | 任意の数、通常は0または1 | レジャーインデックスごとに1つ、時間の経過とともに増加 | +| **内容は変更可能?** | はい | いいえ、ただし、別のレジャーが採用される可能性あり。 | いいえ | +| **トランザクションの適用方法:** | 受信順 | 正規順序 | 正規順序 | 直感に反し、XRP Ledgerはオープンレジャーを「閉鎖」して閉鎖済みレジャーへと変換することはありません。その代わりに、サーバはオープンレジャーを捨て、以前の閉鎖済みレジャーの上にトランザクションを適用して閉鎖済みレジャーを作成し、最新の閉鎖済みレジャーをベースとして新しいオープンレジャーを作成します。これは、[コンセンサスが二重支出問題を解決する方法](../consensus-protocol/consensus-principles-and-rules.md#simplifying-the-problem)の結果と言えます。 diff --git a/@l10n/ja/docs/concepts/networks-and-servers/amendments.md b/@l10n/ja/docs/concepts/networks-and-servers/amendments.md index b1ee1947c2..e6b4ca57f8 100644 --- a/@l10n/ja/docs/concepts/networks-and-servers/amendments.md +++ b/@l10n/ja/docs/concepts/networks-and-servers/amendments.md @@ -2,10 +2,11 @@ html: amendments.html parent: networks-and-servers.html seo: - description: Amendmentはトランザクション処理の新しい機能やその他の変更を指します。バリデータはコンセンサスを通して連携し、XRP Ledgerにこれらのアップグレードを順序正しく適用します。 + description: Amendmentはトランザクション処理の新しい機能やその他の変更を指します。バリデータはコンセンサスを通して連携し、XRP Ledgerにこれらのアップグレードを順序正しく適用します。 labels: - ブロックチェーン --- + # Amendment Amendmentは、トランザクション処理における新機能またはその他の変更を表します。 @@ -29,15 +30,14 @@ Amendmentのコードがソフトウェアリリースに組み込まれた後 1. **フラグレジャー -1:** `rippled`バリデータが検証メッセージを送信するとき、彼らは自身でAmendmentへの投票も送信します。 2. **フラグレジャー:** サーバは、信頼できるバリデータからの投票を処理します。 3. **フラグレジャー +1:** サーバは`EnableAmendment`疑似トランザクションを挿入し、発生したと思われることに基づいてフラグを立てます。 - * `tfGotMajority`フラグは、そのAmendmentが80%超の支持を得ていることを意味します。 - * `tfLostMajority`フラグはAmendmentへの支持が80%以下になったことを意味します。 - * フラグなしは、Amendmentが有効であることを意味します。 + - `tfGotMajority`フラグは、そのAmendmentが80%超の支持を得ていることを意味します。 + - `tfLostMajority`フラグはAmendmentへの支持が80%以下になったことを意味します。 + - フラグなしは、Amendmentが有効であることを意味します。 - {% admonition type="info" name="注記" %}Amendmentが有効化されるために必要な2週間の期間に達したのと同一のレジャーで、80%の支持を失う可能性があります。このような場合、両方のシナリオで `EnableAmendment`擬似トランザクションが追加されますが、最終的にそのAmendmentは有効になります。{% /admonition %} + {% admonition type="info" name="注記" %}Amendmentが有効化されるために必要な2週間の期間に達したのと同一のレジャーで、80%の支持を失う可能性があります。このような場合、両方のシナリオで `EnableAmendment`擬似トランザクションが追加されますが、最終的にそのAmendmentは有効になります。{% /admonition %} 4. **フラグレジャー +2:** Amendmentが有効になった場合、このレジャー以降のトランザクションに適用されます。 - ## Amendment投票 `rippled`の各バージョンは、[既知のAmendment](/resources/known-amendments.md)のリストとそれらのAmendmentを実装するためのコードでコンパイルされています。`rippled`バリデータのオペレータは、各Amendmentに投票するようにサーバを設定し、いつでも変更することができます。オペレータが投票を選択しない場合、サーバはソースコードで定義されたデフォルトの投票を使用します。 @@ -48,23 +48,23 @@ Amendmentが有効になるには、信頼できるバリデータの80%超か 有効化されずにソースコードが削除されたAmendmentは、ネットワークによって**撤回**されたとみなされます。 - ### Amendmentブロックされたサーバ + AmendmentブロックはXRP Ledgerデータの正確性を守るためのセキュリティ機能です。Amendmentが有効になると、Amendmentのソースコードなしで以前のバージョンの`rippled`を実行しているサーバは、ネットワークのルールを認識できなくなります。レジャーデータを推測して誤って解釈するのではなく、これらのサーバは**Amendmentブロック**された状態になります。Amendmentブロック状態のサーバは次のことが行えません。 -* レジャーのバリデータの判断 -* トランザクションの送信または処理 -* 合意プロセスへの参加 -* Amendmentへの投票 +- レジャーのバリデータの判断 +- トランザクションの送信または処理 +- 合意プロセスへの参加 +- Amendmentへの投票 `rippled`サーバの投票設定は、そのサーバがAmendmentブロックされることに影響を与えません。`rippled`サーバは常に他のネットワークで有効になっているAmendmentに従うので、ブロックは単にルールの変更を認識するコードを持っているかどうかに基づいています。つまり、異なるAmendmentが有効になっている並列ネットワークにサーバを接続した場合も、Amendmentブロックされる可能性があるということです。例えば、XRP Ledgerの開発ネットでは通常、実験的なAmendmentが有効になっています。最新のプロダクションリリースのコードを使用している場合、あなたのサーバには実験的なAmendmentのコードが存在しない可能性が高いです。 最新バージョンの`rippled`にアップグレードすることで、Amendmentブロックされたサーバのブロックを解除することができます。 - ### AmendmentブロックされたClioサーバ + Clioサーバが台帳データのロード中に未知のフィールドに遭遇した場合、Amendmentブロックが発生することがあります。これは、Clioのビルド時に使用された`libxrpl`の依存ファイルにそれらのフィールドが存在しない場合に発生します。Amendmentブロックを解除するには、互換性のある`libxrpl`でビルドされた新しいClioリリースにアップグレードしてください。 @@ -75,16 +75,15 @@ Amendmentを有効にすると、修正前の動作のソースコードは`ripp [XRP Ledger Standard 11d](https://github.com/XRPLF/XRPL-Standards/discussions/19)では、古いレジャーと関連する以前のレジャーのコードを破棄するプロセスを定義しています。メインネット上でAmendmentが2年間有効である場合、古いコードは削除することができます。Amendmentは自動的にコアプロトコルの一部となり、その後は追跡されず、Amendmentとして扱われず、Amendment前のコードはすべて削除されます。 - ## 関連項目 - **コンセプト:** - - [コンセンサスについて](../consensus-protocol/index.md) + - [コンセンサスについて](../consensus-protocol/index.md) - **チュートリアル:** - - [バリデータとしてrippledを実行](../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md) - - [Amendment投票機能の設定](../../infrastructure/configuration/configure-amendment-voting.md) - - [XRP Ledgerのコードへの貢献](/resources/contribute-code/index.md) + - [バリデータとしてrippledを実行](../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md) + - [Amendment投票機能の設定](../../infrastructure/configuration/configure-amendment-voting.md) + - [XRP Ledgerのコードへの貢献](/resources/contribute-code/index.md) - **リファレンス:** - - [既知のAmendment](/resources/known-amendments.md) + - [既知のAmendment](/resources/known-amendments.md) {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/concepts/networks-and-servers/clustering.md b/@l10n/ja/docs/concepts/networks-and-servers/clustering.md index 7b7f5d338d..a591bc360e 100644 --- a/@l10n/ja/docs/concepts/networks-and-servers/clustering.md +++ b/@l10n/ja/docs/concepts/networks-and-servers/clustering.md @@ -2,10 +2,11 @@ html: clustering.html parent: networks-and-servers.html seo: - description: 暗号処理の負荷を分散させるためにクラスターでrippledサーバを運用できます。 + description: 暗号処理の負荷を分散させるためにクラスターでrippledサーバを運用できます。 labels: - コアサーバ --- + # クラスター化 1つのデータセンターで複数の`rippled`サーバを運用している場合は、これらのサーバをクラスターに編成して、効率性を最大化できます。`rippled`サーバをクラスターで運用するメリットは以下のとおりです。 diff --git a/@l10n/ja/docs/concepts/networks-and-servers/index.md b/@l10n/ja/docs/concepts/networks-and-servers/index.md index 92ad6f7c4c..6bba406926 100644 --- a/@l10n/ja/docs/concepts/networks-and-servers/index.md +++ b/@l10n/ja/docs/concepts/networks-and-servers/index.md @@ -2,10 +2,11 @@ html: networks-and-servers.html parent: concepts.html seo: - description: rippledは、XRP Ledgerを管理するコアとなるピアツーピアサーバです。 + description: rippledは、XRP Ledgerを管理するコアとなるピアツーピアサーバです。 metadata: indexPage: true --- + # ネットワークとサーバ XRP Ledgerを動かすサーバソフトウェアは、主に2種類あります。 @@ -23,9 +24,9 @@ XRP Ledgerを動かすサーバソフトウェアは、主に2種類あります 利用しているサーバを信頼する必要があります。悪意のあるサーバに接続すると、そのサーバに利用されたり、損害を受けたりする可能性があります。例えば、以下のようなことです。 -* 悪意のあるサーバは、支払いを行っていないにもかかわらず、支払いを受けたと報告する可能性があります。 -* 選択的に支払いパスや通貨交換のオファーを表示または非表示にすることができ、最良の取引を提供せず、彼ら自身の利益を確保する可能性があります。 -* もし、アドレスの秘密鍵を送信してしまった場合、サーバの管理者はあなたに代わって任意のトランザクションを実行し、アドレスが保有するすべての資金を転送または破棄する可能性があります。 +- 悪意のあるサーバは、支払いを行っていないにもかかわらず、支払いを受けたと報告する可能性があります。 +- 選択的に支払いパスや通貨交換のオファーを表示または非表示にすることができ、最良の取引を提供せず、彼ら自身の利益を確保する可能性があります。 +- もし、アドレスの秘密鍵を送信してしまった場合、サーバの管理者はあなたに代わって任意のトランザクションを実行し、アドレスが保有するすべての資金を転送または破棄する可能性があります。 さらに、独自のサーバを運営することで、[管理者アクセス権限](../../tutorials/http-websocket-apis/build-apps/get-started.md#管理者アクセス権限)が与えられ、重要な管理者専用コマンドや負荷の高いコマンドを実行することができます。共有サーバを使用する場合、同じサーバの他のユーザとサーバの計算能力を共有することを考慮しなければいけません。WebSocket APIのコマンドの多くはサーバに大きな負担をかけるので、サーバには必要なときにレスポンスを縮小するオプションがあります。サーバを他人と共有する場合、常に最良の結果を得られるとは限りません。 @@ -37,5 +38,4 @@ XRP Ledgerを動かすサーバソフトウェアは、主に2種類あります {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} - {% child-pages /%} diff --git a/@l10n/ja/docs/concepts/networks-and-servers/ledger-history.md b/@l10n/ja/docs/concepts/networks-and-servers/ledger-history.md index 2e4517cc79..bdcf67373c 100644 --- a/@l10n/ja/docs/concepts/networks-and-servers/ledger-history.md +++ b/@l10n/ja/docs/concepts/networks-and-servers/ledger-history.md @@ -2,12 +2,13 @@ html: ledger-history.html parent: networks-and-servers.html seo: - description: rippledサーバはトランザクションの変動金額と状態の履歴をローカルに保管します。 + description: rippledサーバはトランザクションの変動金額と状態の履歴をローカルに保管します。 labels: - データ保持 - ブロックチェーン - コアサーバ --- + # レジャー履歴 [コンセンサスプロセス](../consensus-protocol/index.md)により、[検証済みレジャーバージョン](../ledgers/index.md)のチェーンが作成されます。各バージョンは、以前のバージョンに[トランザクション](../transactions/index.md)のセットを適用して生成されます。各[`rippled`サーバ](index.md)には、レジャーバージョンとトランザクション履歴がローカルに保管されます。サーバに保管されるトランザクション履歴の量は、サーバがオンラインであった期間と、サーバが取得し、保持する履歴量の設定に応じて異なります。 @@ -34,9 +35,10 @@ labels: XRP Ledgerは、コンテンツの一意のハッシュを使用して(さまざまなレベルの)データを識別します。XRP Ledgerの状態データには、レジャーの履歴の概要が[LedgerHashesオブジェクトタイプ](../../references/protocol/ledger-data/ledger-entry-types/ledgerhashes.md)の形式で含まれています。サーバはLedgerHashesオブジェクトを使用して取得するレジャーバージョンを認識し、受信するレジャーデータが正しく完全であることを確認します。 - + ### 履歴の埋め戻し + {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.6.0" %}新規: rippled 1.6.0{% /badge %} サーバがダウンロードしようとする履歴の量は、その設定に依存します。サーバは自動的に、**最も古い台帳までの履歴**をダウンロードしてギャップを埋めようとします。`[ledger_history]`設定を使用すると、サーバがそれ以降の履歴を埋め戻すようにすることができます。ただし、[削除](../../infrastructure/configuration/data-retention/online-deletion.md)が予定されている台帳は、サーバがダウンロードすることはありません。 @@ -54,22 +56,21 @@ XRP Ledger財団は、コミュニティメンバーが運営する一連の全 すべての履歴の設定については、[完全な履歴の設定](../../infrastructure/configuration/data-retention/configure-full-history.md)をご覧ください。 - ## 関連項目 - **コンセプト:** - - [レジャー](../ledgers/index.md) - - [コンセンサス](../consensus-protocol/index.md) + - [レジャー](../ledgers/index.md) + - [コンセンサス](../consensus-protocol/index.md) - **チュートリアル:** - - [`rippled`の設定](../../infrastructure/configuration/index.md) - - [オンライン削除の設定](../../infrastructure/configuration/data-retention/configure-online-deletion.md) - - [指示による削除の設定](../../infrastructure/configuration/data-retention/configure-advisory-deletion.md) - - [全履歴の設定](../../infrastructure/configuration/data-retention/configure-full-history.md) + - [`rippled`の設定](../../infrastructure/configuration/index.md) + - [オンライン削除の設定](../../infrastructure/configuration/data-retention/configure-online-deletion.md) + - [指示による削除の設定](../../infrastructure/configuration/data-retention/configure-advisory-deletion.md) + - [全履歴の設定](../../infrastructure/configuration/data-retention/configure-full-history.md) - **リファレンス:** - - [ledgerメソッド][] - - [server_infoメソッド][] - - [ledger_requestメソッド][] - - [can_deleteメソッド][] - - [ledger_cleanerメソッド][] + - [ledgerメソッド][] + - [server_infoメソッド][] + - [ledger_requestメソッド][] + - [can_deleteメソッド][] + - [ledger_cleanerメソッド][] {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/concepts/networks-and-servers/parallel-networks.md b/@l10n/ja/docs/concepts/networks-and-servers/parallel-networks.md index f13eb0db8f..f09341fdd2 100644 --- a/@l10n/ja/docs/concepts/networks-and-servers/parallel-networks.md +++ b/@l10n/ja/docs/concepts/networks-and-servers/parallel-networks.md @@ -2,34 +2,33 @@ html: parallel-networks.html parent: networks-and-servers.html seo: - description: テストネットワークおよび代替レジャーチェーンと本番環境のXRP Ledgerとの関係について説明します。 + description: テストネットワークおよび代替レジャーチェーンと本番環境のXRP Ledgerとの関係について説明します。 labels: - ブロックチェーン --- + # 並列ネットワーク XRP Ledgerにはピアツーピアの本番環境のネットワークが1つ存在し、XRP Ledger上で行われるすべての取引はその本番環境のネットワーク、すなわちMainnet内で発生します。 XRP Ledgerコミュニティのメンバーが、メインネットに影響を与えることなくXRP Ledgerとやり取りできるように、テストネットをはじめとするいくつかの代替ネットワークが用意されています。ここでは、いくつかのネットワークを紹介します。 -| ネットワーク | アップグレード頻度 | 説明 | -|:-----------|:----------------|:---------------------------------------------| -| Mainnet | 安定版リリース | ピアツーピアサーバのネットワーク機能を備えた分散型の暗号台帳であり、[XRP](../../introduction/what-is-xrp.md)の土台となる[XRP Ledger](/about/)です。 | -| Testnet | 安定版リリース | XRP Ledger上に構築したソフトウェアのテスト環境として動作する「代替環境」のネットワークです。本番環境のXRP Ledgerユーザに影響を及ぼすことも、本物の通貨をリスクにさらすこともありません。Testnetの[Amendmentのステータス](/resources/known-amendments.md)は、Mainnetを厳密に反映するようになっていますが、分散型システムが持つ予測不可能な性質により、タイミングにわずかな違いが生じることがあります。 | -| Devnet | ベータ版リリース | 次期リリースのプレビューネットワークです。XRP Ledgerのコアソフトウェアへの不安定な変更がテストされます。このAltNetを使用すると、開発者はまだMainnetで有効になっていないXRPLの計画段階の新機能やAmendmentを操作したり学習したりすることができます。 | +| ネットワーク | アップグレード頻度 | 説明 | +| :----------- | :----------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Mainnet | 安定版リリース | ピアツーピアサーバのネットワーク機能を備えた分散型の暗号台帳であり、[XRP](../../introduction/what-is-xrp.md)の土台となる[XRP Ledger](/about/)です。 | +| Testnet | 安定版リリース | XRP Ledger上に構築したソフトウェアのテスト環境として動作する「代替環境」のネットワークです。本番環境のXRP Ledgerユーザに影響を及ぼすことも、本物の通貨をリスクにさらすこともありません。Testnetの[Amendmentのステータス](/resources/known-amendments.md)は、Mainnetを厳密に反映するようになっていますが、分散型システムが持つ予測不可能な性質により、タイミングにわずかな違いが生じることがあります。 | +| Devnet | ベータ版リリース | 次期リリースのプレビューネットワークです。XRP Ledgerのコアソフトウェアへの不安定な変更がテストされます。このAltNetを使用すると、開発者はまだMainnetで有効になっていないXRPLの計画段階の新機能やAmendmentを操作したり学習したりすることができます。 | テスト用XRPは、XRP Ledgerの実験やアプリケーションの開発、統合に興味のある人々に[無償で提供](/resources/dev-tools/xrp-faucets)されています。テスト用のXRPは実際には価値を持たず、ネットワークがリセットされると失われます。 {% admonition type="warning" name="注意" %}XRP Ledgerメインネットとは異なり、テストネットワークは通常「中央集権型」であり、これらのネットワークの安定性や可用性については保証されていません。これらのネットワークは、サーバ構成、ネットワークトポロジー、ネットワークパフォーマンスのさまざまな特性をテストする目的でこれまで使用され、またこれからも同様に使用されます。{% /admonition %} - ## 並列ネットワークとコンセンサス 使用するネットワークを定義する`rippled`の設定はありません。その代わり、信頼するバリデータのコンセンサスに基づいてどのレジャーを正しいレジャーとして受け入れるかを把握します。`rippled`インスタンスからなる異なるコンセンサスグループが、同じグループの他のメンバーだけを信頼する場合、各グループは引き続き並列ネットワークとして機能します。悪意のあるコンピュータや不適切に動作するコンピュータが両方のネットワークに接続している場合でも、各ネットワークのメンバーが、定数設定を超えて別のネットワークのメンバーを信頼するように設定されていない限り、コンセンサスプロセスに混乱は生じません。 Ripple社は、TestnetとDevnetでメインサーバを運用しています。[独自の`rippled`サーバをTestnetに接続](../../infrastructure/configuration/connect-your-rippled-to-the-xrp-test-net.md)することも可能です。TestnetとDevnetでは、多様で検閲耐性のあるバリデータのセットは使用されていません。そのため、Ripple社はTestnetやDevnetを定期的にリセットできます。 - ## 関連項目 - **ツール:** diff --git a/@l10n/ja/docs/concepts/networks-and-servers/peer-protocol.md b/@l10n/ja/docs/concepts/networks-and-servers/peer-protocol.md index ae93159ff1..96b9c87680 100644 --- a/@l10n/ja/docs/concepts/networks-and-servers/peer-protocol.md +++ b/@l10n/ja/docs/concepts/networks-and-servers/peer-protocol.md @@ -2,11 +2,12 @@ html: peer-protocol.html parent: networks-and-servers.html seo: - description: ピアプロトコルは、rippledサーバが互いに通信する言語を指定します。 + description: ピアプロトコルは、rippledサーバが互いに通信する言語を指定します。 labels: - コアサーバ - ブロックチェーン --- + # ピアプロトコル XRP Ledgerのサーバは、XRP Ledgerピアプロトコル(RTXP)を使用して相互に通信します。 @@ -30,7 +31,6 @@ XRP Ledgerでは、「ゴシップ」プロトコルを使用して、XRP Ledger 価値の高いサーバ(重要な[バリデータ](rippled-server-modes.md#rippledサーバのモード)など)によっては、ピア検出プロセスを通じて、サーバを信頼性の低いピアに接続しないようにする場合があります。この場合、[プライベートピア](#プライベートピア)のみを使用するようにサーバを構成できます。 - ## ピアプロトコルポート XRP Ledgerに参加するため、`rippled`サーバはピアプロトコルを使用して任意のピアに接続します。(すべてのピアは、現行サーバで[クラスター化されている](clustering.md)場合を除き、信頼できないものとして扱われます。) @@ -58,7 +58,6 @@ protocol = peer また、ノードキーペアは、[ピアスロットの](#固定ピアとピアリザベーション)[クラスタリング](clustering.md)または[確保](#固定ピアとピアリザベーション)のために他のサーバも識別します。サーバクラスターを使用している場合、一意の`[node_seed]`設定を使用してクラスター内の各サーバを構成する必要があります。クラスターの設定についての詳細は、[`rippled`サーバのクラスター化](../../infrastructure/configuration/peering/cluster-rippled-servers.md)をご覧ください。 - ## 固定ピアとピアリザベーション 通常、`rippled`サーバでは多数のピアを維持するよう試みるため、信頼性の低いピアの最大数まで自動接続されます。特定のピアサーバへの接続を維持するように`rippled`サーバを構成するには、いくつかの方法があります。 @@ -71,7 +70,6 @@ protocol = peer - [プライベートピア](#プライベートピア)として構成されている場合、サーバは固定ピアに _のみ_ 接続されます。 - [スタンドアロンモード](rippled-server-modes.md#スタンドアロンモード)で実行されている場合、サーバは _どの_ ピアにも接続されません。 - ## プライベートピア `rippled`サーバが「プライベート」サーバとして動作するように設定し、そのIPアドレスを非公開にすることができます。これは、信頼できるバリデータなどの重要な`rippled`サーバへのサービス拒否攻撃や侵入の試みに対する予防対策として有用です。ピアツーピアネットワークに参加するには、プライベートサーバは1つ以上の非プライベートサーバに接続するように設定されている必要があります。この非プライベートサーバにより、メッセージがネットワークのその他の部分へ中継されます。 @@ -98,7 +96,6 @@ XRP Ledgerで使用できるように、`rippled`サーバをピアツーピア 各構成のメリットとデメリットは次のとおりです。 -
Configuración Pros Contras
@@ -148,7 +145,6 @@ XRP Ledgerで使用できるように、`rippled`サーバをピアツーピア サーバをプライベートサーバとして設定するには、設定ファイルの`[peer_private]`を`1`に設定します。詳細な手順については、[プライベートサーバの設定](../../infrastructure/configuration/peering/configure-a-private-server.md)をご覧ください。 - ## 関連項目 - **コンセプト:** diff --git a/@l10n/ja/docs/concepts/networks-and-servers/rippled-server-modes.md b/@l10n/ja/docs/concepts/networks-and-servers/rippled-server-modes.md index 612aae87b9..11caf54d7e 100644 --- a/@l10n/ja/docs/concepts/networks-and-servers/rippled-server-modes.md +++ b/@l10n/ja/docs/concepts/networks-and-servers/rippled-server-modes.md @@ -2,18 +2,19 @@ html: rippled-server-modes.html parent: networks-and-servers.html seo: - description: ストックサーバ、バリデータサーバ、スタンドアロンモードで運用されるrippledサーバなど、rippledサーバのモードについて説明します。 + description: ストックサーバ、バリデータサーバ、スタンドアロンモードで運用されるrippledサーバなど、rippledサーバのモードについて説明します。 labels: - コアサーバ --- + # rippledサーバのモード `rippled`サーバソフトウェアは、その設定に応じて以下のようなさまざまなモードで実行できます。 - [**P2Pモード**](#p2pモード) - ピアツーピアネットワークをフォローし、トランザクションを処理し、ある程度の[レジャー履歴](ledger-history.md)を維持します。このモードは、以下の役割のいずれか、またはすべてを行うように設定することができます。 - - [**バリデータ**](#バリデータ) - コンセンサスに参加することで、ネットワークの安全確保に貢献します。 - - [**APIサーバ**](#apiサーバ) - 共有レジャーからデータを読み込んだり、トランザクションを送信したり、レジャーのアクティビティを監視するための[APIアクセス](../../tutorials/http-websocket-apis/build-apps/get-started.md)を提供します。オプションとして、トランザクションやレジャーの履歴を完全に記録する [**全履歴サーバ**](#全履歴サーバ) とすることができます。 - - [**ハブサーバ**](#公開ハブ) - ピアツーピアネットワークの他の多くのメンバー間のメッセージを中継します。 + - [**バリデータ**](#バリデータ) - コンセンサスに参加することで、ネットワークの安全確保に貢献します。 + - [**APIサーバ**](#apiサーバ) - 共有レジャーからデータを読み込んだり、トランザクションを送信したり、レジャーのアクティビティを監視するための[APIアクセス](../../tutorials/http-websocket-apis/build-apps/get-started.md)を提供します。オプションとして、トランザクションやレジャーの履歴を完全に記録する [**全履歴サーバ**](#全履歴サーバ) とすることができます。 + - [**ハブサーバ**](#公開ハブ) - ピアツーピアネットワークの他の多くのメンバー間のメッセージを中継します。 - [**レポートモード**](#レポートモード) - リレーショナルデータベースからのAPIリクエストに対応するための専用モードです。ピアツーピアネットワークには参加しないため、P2Pモードサーバを実行し、信頼できるgRPC接続を使用してレポートモードサーバに接続する必要があります。 {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.7.0" %}新規: rippled 1.7.0{% /badge %} - [**スタンドアロンモード**](#スタンドアロンモード) - テスト用のオフラインモードです。ピアツーピアネットワークに接続せず、コンセンサスも使用しません。 @@ -21,7 +22,6 @@ labels: 各モードで`rippled`を実行するためのコマンドについては、[rippledコマンドライン使用リファレンス](../../infrastructure/commandline-usage.md)をご覧ください。 - ## P2Pモード P2Pモードは`rippled`サーバのメインかつデフォルトのモードで、サーバが行うべきほぼ全てのことを処理することができます。これらのサーバは、トランザクションを処理し、XRP Ledgerの共有状態を維持するピアツーピア・ネットワークを形成しています。トランザクションを送信したり、レジャーデータを読んだり、その他ネットワークに参加したい場合、リクエストはどこかでP2Pモードのサーバを経由しなければなりません。 @@ -64,9 +64,8 @@ XRP Ledgerの堅牢性は、他のバリデータが共謀しないことをそ バリデータの実行についての詳細は、[バリデータとしての`rippled`の実行](../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md)をご覧ください。 - - ## レポートモード + {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.7.0" %}新規: rippled 1.7.0{% /badge %} レポートモードは、APIリクエストをより効率的に処理するために特化したモードです。このモードでは、サーバは[gRPC](../../infrastructure/configuration/configure-grpc.md)を介して、P2Pモードで動作する別の`rippled`サーバから最新の検証済みレジャーデータを取得し、そのデータをリレーショナルデータベース([PostgreSQL](https://www.postgresql.org/))にロードします。レポートモードサーバはピアツーピアネットワークに直接参加しませんが、トランザクションの送信などのリクエストを、使用しているP2Pモードサーバに転送することはできます。 @@ -75,7 +74,6 @@ XRP Ledgerの堅牢性は、他のバリデータが共謀しないことをそ 最も注目すべきは、レポートモードのサーバは、保留中や未検証のレジャーデータまたはトランザクションをレポートしないことです。この制限は、[分散型取引所](../tokens/decentralized-exchange/index.md)での裁定取引の実行など、流動的なデータへの迅速なアクセスに依存する特定の使用事例に関連しています。 - ## スタンドアロンモード スタンドアロンモードでは、サーバはネットワークに接続せず、コンセンサスプロセスにも参加せずに動作します。コンセンサスプロセスがなければ、手動で台帳を進める必要があり、「closedレジャー」と「validatedレジャー」の区別はありません。しかし、サーバは依然としてAPIアクセスを提供し、トランザクションを同じように処理します。これにより、以下のことが可能になります。 diff --git a/@l10n/ja/docs/concepts/networks-and-servers/the-clio-server.md b/@l10n/ja/docs/concepts/networks-and-servers/the-clio-server.md index fdab97fb90..e189646e7a 100644 --- a/@l10n/ja/docs/concepts/networks-and-servers/the-clio-server.md +++ b/@l10n/ja/docs/concepts/networks-and-servers/the-clio-server.md @@ -2,8 +2,9 @@ html: the-clio-server.html parent: networks-and-servers.html seo: - description: Clioは、API呼び出しに最適化されたXRP Ledgerサーバです。 + description: Clioは、API呼び出しに最適化されたXRP Ledgerサーバです。 --- + # Clioサーバ Clioは、検証済みの台帳データに対するWebSocketまたはHTTP API呼び出しに最適化されたXRP Ledger APIサーバです。 @@ -20,18 +21,17 @@ Clioは完全な[HTTP / WebSocket API](../../references/http-websocket-apis/inde 独自のClioサーバを運用する理由には様々なものがありますが、その多くは、P2Pネットワークに接続している`rippled`サーバの負荷軽減、メモリ使用量とストレージのオーバーヘッドの低減、水平スケーリングの容易さ、APIリクエストのスループットの向上などに集約されるのではないでしょうか。 -* `rippled`サーバの負荷軽減 - Clioサーバはピアツーピア・ネットワークに接続しません。P2Pネットワークに接続されている1つ以上の信頼できる`rippled`サーバから検証済みのデータを取得するためにgRPCを使用します。したがって、Clioサーバはリクエストをより効率的に処理し、P2Pモードで動作する`rippled`サーバの負荷を軽減することができます。 +- `rippled`サーバの負荷軽減 - Clioサーバはピアツーピア・ネットワークに接続しません。P2Pネットワークに接続されている1つ以上の信頼できる`rippled`サーバから検証済みのデータを取得するためにgRPCを使用します。したがって、Clioサーバはリクエストをより効率的に処理し、P2Pモードで動作する`rippled`サーバの負荷を軽減することができます。 -* メモリ使用量とストレージのオーバーヘッドの低減 - ClioはデータベースとしてCassandraを使用し、データをスペース効率の良いフォーマットで保存するため、`rippled`に比べて最大4倍少ないスペースで保存できます。 +- メモリ使用量とストレージのオーバーヘッドの低減 - ClioはデータベースとしてCassandraを使用し、データをスペース効率の良いフォーマットで保存するため、`rippled`に比べて最大4倍少ないスペースで保存できます。 -* 容易な水平スケーリング - 複数のClioサーバが同じデータセットへのアクセスを共有できるため、Clioサーバの高可用性クラスターを構築することが可能です。 - -* APIリクエストのスループットの向上 - Clioサーバは、1つまたは複数の信頼できる`rippled`サーバから検証済みのデータを抽出し、このデータを効率的に保存します。そのため、APIコールを効率的に処理することができ、結果としてスループットが向上し、場合によってはレイテンシーも低下します。 +- 容易な水平スケーリング - 複数のClioサーバが同じデータセットへのアクセスを共有できるため、Clioサーバの高可用性クラスターを構築することが可能です。 +- APIリクエストのスループットの向上 - Clioサーバは、1つまたは複数の信頼できる`rippled`サーバから検証済みのデータを抽出し、このデータを効率的に保存します。そのため、APIコールを効率的に処理することができ、結果としてスループットが向上し、場合によってはレイテンシーも低下します。 ## Clioサーバの仕組み -[{% inline-svg file="/docs/img/clio-basic-architecture.svg" /%}](/docs/img/clio-basic-architecture.svg "図1: Clioサーバの仕組み") +[{% inline-svg file="/docs/img/clio-basic-architecture.svg" /%}](/docs/img/clio-basic-architecture.svg '図1: Clioサーバの仕組み') Clioサーバは、トランザクションメタデータ、アカウントステート、台帳ヘッダーなどの有効な台帳データを永続的なデータストアに保存します。 @@ -48,4 +48,4 @@ ClioサーバはAPIリクエストを受信すると、これらのデータス - [Clio ソースコード](https://github.com/XRPLF/clio) - **チュートリアル:** - - [UbuntuにClioサーバをインストールする](../../infrastructure/installation/install-clio-on-ubuntu.md) + - [UbuntuにClioサーバをインストールする](../../infrastructure/installation/install-clio-on-ubuntu.md) diff --git a/@l10n/ja/docs/concepts/networks-and-servers/transaction-censorship-detection.md b/@l10n/ja/docs/concepts/networks-and-servers/transaction-censorship-detection.md index 24fd8d5e01..e9dcd4c7a6 100644 --- a/@l10n/ja/docs/concepts/networks-and-servers/transaction-censorship-detection.md +++ b/@l10n/ja/docs/concepts/networks-and-servers/transaction-censorship-detection.md @@ -2,10 +2,11 @@ html: transaction-censorship-detection.html parent: networks-and-servers.html seo: - description: XRP Ledgerでは取引検閲の自動検知機能がすべてのrippledサーバで有効になっています。 + description: XRP Ledgerでは取引検閲の自動検知機能がすべてのrippledサーバで有効になっています。 labels: - ブロックチェーン --- + # 取引検閲の検知 {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.0" %}新規: rippled 1.2.0{% /badge %} @@ -14,8 +15,6 @@ XRP Ledgerは、高い検閲耐性を実現できるように設計されてい `rippled`サーバがネットワークと同期している間、検知機能は、`rippled`サーバの観点から、[コンセンサス](../consensus-protocol/index.md)の最終ラウンドで受け入れられ、最後に検証されたレジャーに取り込まれるトランザクションをすべて追跡します。検知機能では、数回のコンセンサスラウンド後、検証済みのレジャーに取り込まれていないトランザクションの重大度が高くなるというログメッセージを発行します。 - - ## 仕組み 取引検閲検知機能の仕組みの概要を以下に示します。 @@ -30,8 +29,6 @@ XRP Ledgerは、高い検閲耐性を実現できるように設計されてい `rippled`サーバログにこれらのメッセージが表示される場合、他のサーバでトランザクションを取り込むことができない理由を調査する必要があります。まず、原因が悪意のある検閲よりも[誤検知](#誤検知の可能性)(無害なバグ)である可能性が高いと仮定します。 - - ## 警告メッセージの例 トランザクションE08D6E9754025BA2534A78707605E0601F03ACE063687A0CA1BDDACFCD1698C7がレジャー18851530~18851545までの15個のレジャーのトラッカーに残っている場合に、取引検閲検知機能によって発行される警告メッセージの例を次に示します。 @@ -40,7 +37,6 @@ XRP Ledgerは、高い検閲耐性を実現できるように設計されてい LedgerConsensus:WRN Potential Censorship: Eligible tx E08D6E9754025BA2534A78707605E0601F03ACE063687A0CA1BDDACFCD1698C7, which we are tracking since ledger 18851530 has not been included as of ledger 18851545. ``` - ## エラーメッセージの例 トランザクションE08D6E9754025BA2534A78707605E0601F03ACE063687A0CA1BDDACFCD1698C7がレジャー18851530~18851605までの75個のレジャー(15個のレジャーの5セット)のトラッカーに残っている場合に、取引検閲検知機能によって発行されるエラーメッセージの例を以下に示します。 @@ -49,7 +45,6 @@ LedgerConsensus:WRN Potential Censorship: Eligible tx E08D6E9754025BA2534A787076 LedgerConsensus:ERR Potential Censorship: Eligible tx E08D6E9754025BA2534A78707605E0601F03ACE063687A0CA1BDDACFCD1698C7, which we are tracking since ledger 18851530 has not been included as of ledger 18851605.Additional warnings suppressed. ``` - ## 誤検知の可能性 シナリオによっては、取引検閲検知機能で誤検知が発生する場合があります。この場合、誤検知とは、15個以上のレジャーについてトラッカーに残っているトランザクションにフラグが立てられたことを意味しますが、これによる問題はありません。 @@ -64,7 +59,6 @@ LedgerConsensus:ERR Potential Censorship: Eligible tx E08D6E9754025BA2534A787076 現在、この予期しない動作の原因となる既知のバグはありません。ただし、バグの疑いがある影響を確認した場合は、[RippleのBug Bounty](https://ripple.com/bug-bounty/)プログラムへのご報告をお願いいたします。 - ## 関連項目 - **コンセプト:** diff --git a/@l10n/ja/docs/concepts/payment-types/bouncing-payments.md b/@l10n/ja/docs/concepts/payment-types/bouncing-payments.md index 23ac3a0c82..4389b20058 100644 --- a/@l10n/ja/docs/concepts/payment-types/bouncing-payments.md +++ b/@l10n/ja/docs/concepts/payment-types/bouncing-payments.md @@ -2,10 +2,11 @@ html: bouncing-payments.html parent: payment-types.html seo: - description: 支払いの目的が不明確な場合は、送り主に返却してください。 + description: 支払いの目的が不明確な場合は、送り主に返却してください。 labels: - トークン --- + # 不明な入金の返金 アドレスが不明な支払いを受け取った場合、送金者に返金することが推奨されます。これは、資金を保管するよりも手間がかかりますが、顧客に対する誠意を示すことになります。オペレーターが手動で支払いを返金することもできますし、自動的に返金するシステムを構築することもできます。 diff --git a/@l10n/ja/docs/concepts/payment-types/checks.md b/@l10n/ja/docs/concepts/payment-types/checks.md index f247e439b7..1b0f8cf353 100644 --- a/@l10n/ja/docs/concepts/payment-types/checks.md +++ b/@l10n/ja/docs/concepts/payment-types/checks.md @@ -2,12 +2,13 @@ html: checks.html parent: payment-types.html seo: - description: Checksを使用すると、指定の受取人による取消または換金が可能な後払いの支払いを生成することができます。 + description: Checksを使用すると、指定の受取人による取消または換金が可能な後払いの支払いを生成することができます。 labels: - Checks - 支払い - トークン --- + # Checks _([Checks Amendment][]が必要です)_ @@ -18,30 +19,26 @@ XRP Ledger Checksには有効期限があり、この期限を過ぎると換金 Checksは[Escrow](escrow.md)と[Payment Channel](../../tutorials/how-tos/use-specialized-payment-types/use-payment-channels/index.md)に似ていますが、Checksとこれらの機能の間には重要な相違がいくつかあります。 -* Checksではトークンを送金できます。Payment ChannelとEscrowで送金できるのはXRPのみです。 +- Checksではトークンを送金できます。Payment ChannelとEscrowで送金できるのはXRPのみです。 -* Checksは資金をフリーズしません。Payment ChannelとEscrowでは、送金元が発行したクレームでXRPが清算されるか(Payment Channel)、または有効期限切れまたはCrypto-conditionsによってXRPがリリースされる(Escrow)までは、そのXRPを使用できません。 - -* EscrowではXRPを自分自身に送金できます。ChecksではXRPを自身に送金することはできません。 +- Checksは資金をフリーズしません。Payment ChannelとEscrowでは、送金元が発行したクレームでXRPが清算されるか(Payment Channel)、または有効期限切れまたはCrypto-conditionsによってXRPがリリースされる(Escrow)までは、そのXRPを使用できません。 +- EscrowではXRPを自分自身に送金できます。ChecksではXRPを自身に送金することはできません。 {% admonition type="info" name="注記" %}[Checks Amendment][] により、[OfferCreate][]トランザクションの有効期限が変更されます。詳細は[オファーの有効期限](../tokens/decentralized-exchange/offers.md#オファーの有効期限)をご覧ください。{% /admonition %} - ## Checksを利用する理由 従来の紙の小切手では、実際の通貨を即座にやり取りすることなく残高を送金できます。XRP Ledger Checksを使用すると、銀行業界でよく利用され受け入れられている方法で資金を非同期にやり取りすることができます。 XRP Ledger Checksは、XRP Ledgerに固有の問題も解決できます。たとえば、ユーザが不審な支払いを拒否したり、支払いの一部のみを受領することを可能にします。これは、コンプライアンス上の理由から支払いの受け入れに慎重に対応する必要がある機関にとっては有用です。 - ### ユースケース: 支払いの承認 **課題:** [BSA、KYC、AML、CFT](../tokens/fungible-tokens/stablecoins/compliance-guidelines.md)などの規制に準拠するにあたり、金融機関は受領する資金の送金元に関する文書を提出する必要があります。違法な資金移動を防止するため、これらの規制は金融機関に対して、処理済のすべての支払いについて、その送金元と送金先を開示するよう義務付けています。XRP Ledgerの性質上、誰でもXRPを(および該当する場合にはトークンを)XRP Ledger上の金融機関のアカウントに送金することができます。金融機関のコンプライアンス部門では、このような不審な支払いへの対応にかかるコスト(罰金の可能性を含む)の増大と処理の遅れが生じます。 **解決策:** 金融機関は各自のXRP Ledgerのアカウントで、[`AccountSet`トランザクションの`asfDepositAuth`フラグを設定](../../references/protocol/transactions/types/accountset.md)することにより、[Deposit Authorization](../accounts/depositauth.md)を有効にできます。これにより、アカウントはPaymentトランザクションを受領できなくなります。Deposit Authorizationが有効なアカウントは、Escrow、Payment Channel、またはChecksでのみ資金を受領できます。Deposit Authorizationが有効な場合、Checksが最もシンプルで使いやすく、柔軟な資金移動手段となります。 - ## 使用法 Checksの一般的なライフサイクルを以下で説明します。 @@ -52,19 +49,16 @@ Checksの一般的なライフサイクルを以下で説明します。 **ステップ1:** Checkを作成するため、送金元が[CheckCreate][]トランザクションを送信し、受取人(`Destination`)、有効期限(`Expiration`)、および送金元アカウントからの引き落とし限度額(`SendMax`)を指定します。 - **ステップ2:** CheckCreateトランザクションの処理が完了すると、XRP Ledgerに[Checkオブジェクト](../../references/protocol/ledger-data/ledger-entry-types/check.md)が作成されます。このオブジェクトには、オブジェクトを作成したトランザクションにより定義されたCheckのプロパティーが含まれています。有効期限前にこのオブジェクトを変更できるのは、送金元([CheckCancel][]トランザクションで取り消す)と受取人(取り消すかまたは換金する)だけです。有効期限の経過後は、誰でもCheckを取り消すことができます。 **ステップ3:** Checkを換金するため、受取人が[CheckCash][]トランザクションを送信します。受取人には次の2つのCheck換金オプションがあります。 -* `Amount` — 受取人はこのオプションを使用して換金する正確な額を指定できます。これは、送金元が想定される[送金手数料](../tokens/fungible-tokens/transfer-fees.md)をCheckの額に上乗せし、受取人は請求書やその他の契約に記載されている指定された額のみ受け取れるようにする場合に役立ちます。 +- `Amount` — 受取人はこのオプションを使用して換金する正確な額を指定できます。これは、送金元が想定される[送金手数料](../tokens/fungible-tokens/transfer-fees.md)をCheckの額に上乗せし、受取人は請求書やその他の契約に記載されている指定された額のみ受け取れるようにする場合に役立ちます。 -* `DeliverMin` — 受取人はこのオプションを使用してCheckから受領する最小額を指定できます。受取人がこのオプションを使用する場合、`rippled`は可能な限り多くの送金を試み、少なくともこの額以上を送金します。受取人に入金できる額がこの額よりも少ない場合には、このトランザクションは失敗します。 +- `DeliverMin` — 受取人はこのオプションを使用してCheckから受領する最小額を指定できます。受取人がこのオプションを使用する場合、`rippled`は可能な限り多くの送金を試み、少なくともこの額以上を送金します。受取人に入金できる額がこの額よりも少ない場合には、このトランザクションは失敗します。 送金元にCheckの裏付けとなる資金が十分あり、有効期限が経過してなければ、資金は送金元のアカウントから引き落とされ、受取人のアカウントに入金され、Checkオブジェクトは消却されます。 - - #### 有効期限切れの例 Checksが有効期限切れになった場合のライフサイクルを以下で説明します。 @@ -73,14 +67,11 @@ Checksが有効期限切れになった場合のライフサイクルを以下 [![Checkのフローチャート(有効期限切れ)](/docs/img/checks-expiration.ja.png)](/docs/img/checks-expiration.ja.png) - Checksはすべて同じ方法で開始されるため、**ステップ1と2**は換金の例と同じです。 **ステップ3a:** 受取人が換金する前にCheckが有効期限切れになると、そのCheckは換金できなくなりますが、レジャーに残ります。 -**ステップ4a:** 有効期限切れになったCheckは、[CheckCancel][]トランザクションを送信することで誰でも取り消すことができます。このトランザクションによりレジャーからCheckが削除されます。 - - +**ステップ4a:** 有効期限切れになったCheckは、[CheckCancel][]トランザクションを送信することで誰でも取り消すことができます。このトランザクションによりレジャーからCheckが削除されます。 ## Checksの利用可能性 @@ -88,27 +79,26 @@ Checksはすべて同じ方法で開始されるため、**ステップ1と2** Test NetまたはプライベートXRP LedgerネットワークでのAmendmentの状況を確認するには、[featureメソッド][]を使用してください。 - ## 参考情報 XRP LedgerのChecksの詳細は、以下をご覧ください。 - [トランザクションのリファレンス](../../references/protocol/transactions/types/index.md) - - [CheckCreate][] - - [CheckCash][] - - [CheckCancel][] + - [CheckCreate][] + - [CheckCash][] + - [CheckCancel][] - [Checksのチュートリアル](../../tutorials/how-tos/use-specialized-payment-types/use-checks/index.md) - - [Checkの送信](../../tutorials/how-tos/use-specialized-payment-types/use-checks/send-a-check.md) - - [Checksの検索](../../tutorials/how-tos/use-specialized-payment-types/use-checks/look-up-checks.md) - - [Checkの指定された金額での換金](../../tutorials/how-tos/use-specialized-payment-types/use-checks/cash-a-check-for-an-exact-amount.md) - - [Checkの変動金額での換金](../../tutorials/how-tos/use-specialized-payment-types/use-checks/cash-a-check-for-a-flexible-amount.md) - - [Checkの取消し](../../tutorials/how-tos/use-specialized-payment-types/use-checks/cancel-a-check.md) + - [Checkの送信](../../tutorials/how-tos/use-specialized-payment-types/use-checks/send-a-check.md) + - [Checksの検索](../../tutorials/how-tos/use-specialized-payment-types/use-checks/look-up-checks.md) + - [Checkの指定された金額での換金](../../tutorials/how-tos/use-specialized-payment-types/use-checks/cash-a-check-for-an-exact-amount.md) + - [Checkの変動金額での換金](../../tutorials/how-tos/use-specialized-payment-types/use-checks/cash-a-check-for-a-flexible-amount.md) + - [Checkの取消し](../../tutorials/how-tos/use-specialized-payment-types/use-checks/cancel-a-check.md) - [Checks Amendment][] 関連機能の詳細については、以下をご覧ください。 -* [Deposit Authorization](../accounts/depositauth.md) -* [Escrow](escrow.md) -* [Payment Channelチュートリアル](../../tutorials/how-tos/use-specialized-payment-types/use-payment-channels/index.md) +- [Deposit Authorization](../accounts/depositauth.md) +- [Escrow](escrow.md) +- [Payment Channelチュートリアル](../../tutorials/how-tos/use-specialized-payment-types/use-payment-channels/index.md) {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/concepts/payment-types/cross-currency-payments.md b/@l10n/ja/docs/concepts/payment-types/cross-currency-payments.md index a0d8552dfe..c13fb6743b 100644 --- a/@l10n/ja/docs/concepts/payment-types/cross-currency-payments.md +++ b/@l10n/ja/docs/concepts/payment-types/cross-currency-payments.md @@ -2,26 +2,25 @@ html: cross-currency-payments.html parent: payment-types.html seo: - description: クロスカレンシー支払いでは、パスとオーダーブックを通じて変換するのとは異なる通貨を自動的にに送金します。 + description: クロスカレンシー支払いでは、パスとオーダーブックを通じて変換するのとは異なる通貨を自動的にに送金します。 labels: - クロスカレンシー - 支払い --- + # クロスカレンシー支払い XRP Ledgerでは、1つ以上のトークンとXRP、またはその両方を交換して、クロスカレンシー支払いができます。[XRPによる直接支払い](../../tutorials/how-tos/send-xrp.md)と同様に、このような支払いでは[Paymentトランザクションタイプ][Payment]が使用されます。XRP Ledgerでのクロスカレンシー支払いは完全にアトミックです。つまり、支払いを全額実行するか、またはまったく実行しないかのいずれかになります。 デフォルトでは、クロスカレンシー支払いでは宛先に一定額が送金され、支払元が変動コストを負担します。クロスカレンシー支払いが、[Partial Payments](partial-payments.md)で行われ、一定の送金限度内の変動額が宛先に送金される場合もあります。 - ## 前提条件 - 定義上、クロスカレンシー支払いには2種類以上の通貨が関係します。つまり、関係する通貨のうち、少なくとも1種類以上がXRP以外のトークンである必要があります。 - - 通常は、[XRP Ledgerゲートウェイ](../../use-cases/tokenization/stablecoin-issuer.md)が発行した通貨を1種類以上使用することになります。このような通貨はXRP Ledger外部の資金を担保とし、ゲートウェイを通じて引き出すことができます。 - - 取引を行う当事者が、XRP Ledger内でのみ発行され、外部の担保がないデジタルトークンを送受信し、何らかの価値を持つ資産として取り扱うことを望む限り、このデジタルトークンを使用することもできます。 + - 通常は、[XRP Ledgerゲートウェイ](../../use-cases/tokenization/stablecoin-issuer.md)が発行した通貨を1種類以上使用することになります。このような通貨はXRP Ledger外部の資金を担保とし、ゲートウェイを通じて引き出すことができます。 + - 取引を行う当事者が、XRP Ledger内でのみ発行され、外部の担保がないデジタルトークンを送受信し、何らかの価値を持つ資産として取り扱うことを望む限り、このデジタルトークンを使用することもできます。 - 送金元と受取人の間に1つ以上の[パス](../tokens/fungible-tokens/paths.md)が確立しており、すべてのパスの総流動性が、支払いを促進するのに十分である必要があります。クロスカレンシー支払いの場合、これは一般に通貨取引[オファー](../tokens/decentralized-exchange/offers.md)を消費することを意味します。 - ## オートブリッジング 2種類のトークンを自動的に交換するクロスカレンシー支払いでは、XRPの使用により支払いコストを抑えられる場合には自動的にXRPが使用されます。この場合、オーダーブックを接続して流動性プールが拡大されます。たとえば、USDからMXNに送金する支払いの場合、USDからXRP、XRPからMXNへの交換にかかるコストが、USDからMXNへの直接交換にかかるコストよりも低い場合には、前者の交換が自動的に実行されます。 diff --git a/@l10n/ja/docs/concepts/payment-types/direct-xrp-payments.md b/@l10n/ja/docs/concepts/payment-types/direct-xrp-payments.md index e5fe370661..91c54b49a6 100644 --- a/@l10n/ja/docs/concepts/payment-types/direct-xrp-payments.md +++ b/@l10n/ja/docs/concepts/payment-types/direct-xrp-payments.md @@ -2,8 +2,9 @@ html: direct-xrp-payments.html parent: payment-types.html seo: - description: XRPによる直接支払いは、XRP Ledgerで資産を送金する最も簡単な方法です。 + description: XRPによる直接支払いは、XRP Ledgerで資産を送金する最も簡単な方法です。 --- + # XRPによる直接支払い 金融システムの基本は、 _価値の移動_ です。一言で言えば、決済です。XRP Ledgerでの最も簡単な支払いタイプは、XRP間の直接支払いで、XRP Ledgerのあるアカウントから別のアカウントにXRPを直接移動します。 @@ -27,27 +28,23 @@ seo: XRP間の直接支払いではPartial Paymentは使用できませんが、Partial Paymentでは複数の送金元通貨から変換後にXRPを送金できます。 - ## アカウントの資金提供 XRP Ledgerにそのアドレスの記録が事前に存在していなくても、支払いで[口座準備金](../accounts/reserves.md)の最少額を満たすのに十分なXRPが送金されれば、数学的に有効なアドレスで支払いを受け取ることができます。支払いで十分なXRPを送金できない場合は失敗します。 詳細は、[アカウント](../accounts/index.md#アカウントの作成)をご覧ください。 - ## アドレスの再利用 XRP Ledgerでは、支払いを受け取ることができるアドレスは永続的ですが、XRPの重要な[必要準備金](../accounts/reserves.md)は消費できません。つまり、他の一部のブロックチェーンシステムとは異なり、トランザクションごとに異なる使い捨てアドレスを使用することはお勧めできません。XRP Ledgerでは、ベストプラクティスとして、複数のトランザクションに同じアドレスを再利用することをお勧めします。アドレスを定期的に使用する場合(特にインターネット接続サービスによって管理されている場合)は、[レギュラーキー](../accounts/cryptographic-keys.md)を設定し、キーの漏えいのリスクを低減するためにキーを定期的に事前変更する必要があります。 送金元は、目的の受取人が最後に支払いを送信したときと同じアドレスを使用していると仮定しないことが重要です。必然的に、セキュリティの侵害が発生し、ユーザまたは企業はアドレスを変更しなければならない場合があります。送金する前に、現在の受取アドレスを受取人に尋ねてください。これにより、漏えいした古いアドレスを制御している不正ユーザに誤ってお金を送信することはありません。 - ## XRPによる直接支払いの処理方法 大まかに言えば、XRP Ledgerのトランザクション処理エンジンでは、XRPによる直接支払いを次のように適用します。 1. [Paymentトランザクション][]のパラメータを検証します。トランザクションがXRPを送信、送金するように構成されている場合、トランザクション処理エンジンはそのトランザクションをXRP間の直接支払いとして認識します。検証チェックは次のように行います。 - - すべてのフィールドが正しいフォーマットであることを確認します。たとえば、XRPによる直接支払いの場合、`Amount`フィールドは[XRPのdrop数][]でなければなりません。 - 送信元アドレスがXRP Ledgerの資金供給された[アカウント](../accounts/index.md)であることを確認します。 - 指定された署名がすべて、送信元アドレスに対して有効であることを確認します。 @@ -57,7 +54,6 @@ XRP Ledgerでは、支払いを受け取ることができるアドレスは永 いずれかのチェックに失敗すると、支払いは失敗します。 2. 受取アドレスが、資金供給されたアカウントかどうかを確認します。 - - 受取アドレスに資金が供給されている場合は、[DepositAuth](../accounts/depositauth.md)や[RequireDest](../transactions/source-and-destination-tags.md#タグの必須化)など、支払いの受け取りに関する制限が受取アドレスにあるかどうかを確認します。そのような制限を支払いが満たしていない場合、支払いは失敗します。 - 受取アドレスに資金が供給されていない場合は、[必要準備金](../accounts/reserves.md)の最低額を満たすのに十分なXRPが支払いで送金されるかどうかを確認します。十分でない場合、支払いは失敗します。 @@ -67,7 +63,6 @@ XRP Ledgerでは、支払いを受け取ることができるアドレスは永 エンジンは、[トランザクションのメタデータ](../../references/protocol/transactions/metadata.md)に`delivered_amount`フィールドを追加して、送金金額を示します。正しい金額のXRPを受け取ったことを確認できるように、必ず`delivered_amount`を使用する必要があります。`Amount`フィールドでは**ありません**。(通貨間の支払「Partial Payment」では、`Amount`フィールドに記載されているよりも少額のXRPが送金される場合があります。)詳細は、[Partial Payments](partial-payments.md)をご覧ください。 - ## 他の支払いタイプとの比較 - **XRPによる直接支払い**は、単一のトランザクションでXRPを送受信する唯一の方法です。この方法は、速度、シンプルさ、低コストの面でバランスが取れています。 @@ -76,15 +71,14 @@ XRP Ledgerでは、支払いを受け取ることができるアドレスは永 - [Escrow](escrow.md)では、特定の条件が満たされたときに、意図した受取人が要求できるXRPを確保します。XRPの金額は完全に保証されており、Escrowの有効期限が切れない限り、送金元が使用することはできません。Escrowは、巨額のスマートコントラクトに適しています。 - [Payment Channel](payment-channels.md)では、XRPが確保されます。受取人は、署名による認証を使用して、チャネルから一括でXRPを要求できます。XRP Ledgerの全トランザクションを送信せずに、認証を個々に確認できます。Payment Channelは、極めて大量の小口決済または「ストリーミング」支払いに適しています。 - ## 関連項目 - **チュートリアル:** - - [XRPの送金(対話型チュートリアル)](../../tutorials/how-tos/send-xrp.md) - - [WebSocketを使用した着信ペイメントの監視](../../tutorials/http-websocket-apis/monitor-incoming-payments-with-websocket.md) + - [XRPの送金(対話型チュートリアル)](../../tutorials/how-tos/send-xrp.md) + - [WebSocketを使用した着信ペイメントの監視](../../tutorials/http-websocket-apis/monitor-incoming-payments-with-websocket.md) - **リファレンス:** - - [Paymentトランザクション][] - - [トランザクションの結果](../../references/protocol/transactions/transaction-results/index.md) - - [account_infoメソッド][] - XRP残高を確認します。 + - [Paymentトランザクション][] + - [トランザクションの結果](../../references/protocol/transactions/transaction-results/index.md) + - [account_infoメソッド][] - XRP残高を確認します。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/concepts/payment-types/escrow.md b/@l10n/ja/docs/concepts/payment-types/escrow.md index 0d6f1300a6..0173a4f018 100644 --- a/@l10n/ja/docs/concepts/payment-types/escrow.md +++ b/@l10n/ja/docs/concepts/payment-types/escrow.md @@ -2,10 +2,11 @@ html: escrow.html parent: payment-types.html seo: - description: XRPはEscrowに預託され、後日特定の条件が満たされた時点で送金されます。Escrowは時間制限、暗号条件、あるいはその両方によって異なる場合があります。 + description: XRPはEscrowに預託され、後日特定の条件が満たされた時点で送金されます。Escrowは時間制限、暗号条件、あるいはその両方によって異なる場合があります。 labels: - Escrow --- + # Escrow 従来より、Escrowとは、金融取引を円滑に行うための二者間の契約です。公平な第三者が資金を受領・保管し、契約で指定された条件が満たされた場合にのみ、目的の受取人に資金を提供します。この方法により、両当事者は確実に義務を果たすことができます。 @@ -23,16 +24,15 @@ XRP Ledgerは3つの種類のEscrowをサポートします。 ## Escrowのライフサイクル 1. 送信者は`EscrowCreate`トランザクションを用いてEscrowを作成します。このトランザクションは以下を指定します。 - - - ロックするXRPの量 - - XRPをリリースする条件 - - XRPの受取人 + - ロックするXRPの量 + - XRPをリリースする条件 + - XRPの受取人 2. トランザクションが処理されると、XRP LedgerはEscrowされたXRPを保持する`Escrow`オブジェクトを作成します。 3. 受取人はXRPを受け渡すために`EscrowFinish`トランザクションを送信します。条件が満たされた場合、`Escrow`オブジェクトは破棄され、XRPは受取人に引き渡されます。 - {% admonition type="info" name="注記" %}Escrowに有効期限があり、それまでに正常に終了しなかった場合、Escrowは期限切れになります。期限切れのEscrowは`EscrowCancel`トランザクションがそれをキャンセルするまで台帳に残り、`Escrow`オブジェクトを破棄してXRPを送信者に返します。{% /admonition %} + {% admonition type="info" name="注記" %}Escrowに有効期限があり、それまでに正常に終了しなかった場合、Escrowは期限切れになります。期限切れのEscrowは`EscrowCancel`トランザクションがそれをキャンセルするまで台帳に残り、`Escrow`オブジェクトを破棄してXRPを送信者に返します。{% /admonition %} ## 状態遷移図 @@ -48,18 +48,16 @@ XRP Ledgerは3つの種類のEscrowをサポートします。 - **条件付きEscrow(右):** EscrowでCrypto-condition(`Condition`フィールド)が指定されており、Finish-after時刻が指定されていない場合、Escrowは作成時点で即時に**Conditionally Ready**になります。この時点では、Crypto-conditionに対する正しいフルフィルメントを提供した人だけがEscrowを終了できます。有効期限(`CancelAfter`フィールド)までに終了されなかったEscrowは**Expired**になります。(Finish-after時刻が設定されていないEscrowには、有効期限が設定されている _必要があります_ 。)Expired状態では、Escrowを終了できなくなり、誰でもEscrowをキャンセルできるようになります。 - ## 制約事項 - EscrowはXRPでのみ実行でき、発行済み通貨では実行できません。 - 少額での利用はコスト面で難しいかもしれません。 - - Crypto-conditionを使用する場合、[EscrowFinishトランザクションのコスト](#escrowfinishトランザクションのコスト)が通常よりも高くなります。 - - エスクローが未成立な間は、`Escrow`オブジェクトの[準備金](../accounts/reserves.md)は送信者の責任となります。 + - Crypto-conditionを使用する場合、[EscrowFinishトランザクションのコスト](#escrowfinishトランザクションのコスト)が通常よりも高くなります。 + - エスクローが未成立な間は、`Escrow`オブジェクトの[準備金](../accounts/reserves.md)は送信者の責任となります。 - Escrowを作成するトランザクションの実行時には、時刻の値が過去の時間であってはなりません。 - 時限リリースおよび有効期限は、レジャークローズに制約されます。つまり実際には、レジャーの正確なクローズ時刻に基づいて、これらの時刻が約5秒単位で丸められる場合があります。 - サポートされている唯一の[Crypto-condition][]タイプはPREIMAGE-SHA-256です。 - ## EscrowFinishトランザクションのコスト Crypto-conditionを使用する場合、Crypto-conditionフルフィルメントの検証に高い処理負荷がかかるため、EscrowFinishトランザクションでは[高額なトランザクションコスト](../transactions/transaction-cost.md#特別なトランザクションコスト)を支払う必要があります。 @@ -76,20 +74,17 @@ Crypto-conditionを使用する場合、Crypto-conditionフルフィルメント reference_fee * (signer_count + 33 + (fulfillment_bytes / 16)) ``` - - ## 参考情報 XRP LedgerのEscrowの詳細は、以下をご覧ください: - [Escrowチュートリアル](../../tutorials/how-tos/use-specialized-payment-types/use-escrows/index.md) - [トランザクションのリファレンス](../../references/protocol/transactions/index.md) - - [EscrowCreateトランザクション][] - - [EscrowFinishトランザクション][] - - [EscrowCancelトランザクション][] + - [EscrowCreateトランザクション][] + - [EscrowFinishトランザクション][] + - [EscrowCancelトランザクション][] - [レジャーリファレンス](../../references/protocol/ledger-data/index.md) - - [Escrowオブジェクト](../../references/protocol/ledger-data/ledger-entry-types/escrow.md) - + - [Escrowオブジェクト](../../references/protocol/ledger-data/ledger-entry-types/escrow.md) Rippleによる550億XRPのロックアップについては、[Ripple's Insights Blog](https://ripple.com/insights/ripple-to-place-55-billion-xrp-in-escrow-to-ensure-certainty-into-total-xrp-supply/)をご覧ください。 diff --git a/@l10n/ja/docs/concepts/payment-types/index.md b/@l10n/ja/docs/concepts/payment-types/index.md index 518c9f7a4b..3499db4173 100644 --- a/@l10n/ja/docs/concepts/payment-types/index.md +++ b/@l10n/ja/docs/concepts/payment-types/index.md @@ -4,12 +4,12 @@ parent: concepts.html metadata: indexPage: true seo: - title: ポイント・ツー・ポイント & 様々な支払いの種類 - description: XRP Ledgerはポイント・ツー・ポイントのXRP支払いのほかに、様々な支払い方法をサポートしています。XRP Ledgerの支払い方法については、こちらをご覧ください。 + title: ポイント・ツー・ポイント & 様々な支払いの種類 + description: XRP Ledgerはポイント・ツー・ポイントのXRP支払いのほかに、様々な支払い方法をサポートしています。XRP Ledgerの支払い方法については、こちらをご覧ください。 --- + # 様々なPaymentの種類 XRP Ledgerはポイント・ツー・ポイントのXRPペイメントのほかに、特別な支払いタイプをサポートしています。 - {% child-pages /%} diff --git a/@l10n/ja/docs/concepts/payment-types/partial-payments.md b/@l10n/ja/docs/concepts/payment-types/partial-payments.md index a35573942b..c2dffd12eb 100644 --- a/@l10n/ja/docs/concepts/payment-types/partial-payments.md +++ b/@l10n/ja/docs/concepts/payment-types/partial-payments.md @@ -2,11 +2,12 @@ html: partial-payments.html parent: payment-types.html seo: - description: Partial Paymentsは送金額から手数料を差し引き、変動額を送金します。Partial Paymentsは、追加コストなしで不審な支払いを返金したい場合に便利です。 + description: Partial Paymentsは送金額から手数料を差し引き、変動額を送金します。Partial Paymentsは、追加コストなしで不審な支払いを返金したい場合に便利です。 labels: - 支払い - セキュリティ --- + # Partial Payment {% admonition type="warning" name="警告" %}このページでは、`Payment`トランザクションおよび各種APIメソッドに表示される`Amount`フィールドの詳細について説明します。`Amount`とPartial Paymentに関するコンテキスト情報は依然として関連性がありますが、`rippled` [API v2](../../references/http-websocket-apis/index.md)においてフィールド名が`DeliverMax`に変更されました。これは、フィールド名をその動作に特化させ、以下に説明する誤解や悪用を防ぐためです。{% /admonition %} @@ -51,7 +52,7 @@ Partial Paymentには次の制限事項があります。 - Partial Paymentでは、アドレスにXRPにて資金を供給できません。この場合、[結果コード][]`telNO_DST_PARTIAL`が返されます。 - Partial Paymentでは、XRP間の直接決済はできません。この場合、[結果コード][]`temBAD_SEND_XRP_PARTIAL`が返されます。 - - ただし、イシュアンスからXRPへの支払またはXRPからイシュアンスへの支払は、Partial Paymentが可能です。 + - ただし、イシュアンスからXRPへの支払またはXRPからイシュアンスへの支払は、Partial Paymentが可能です。 [結果コード]: ../../references/protocol/transactions/transaction-results/index.md @@ -70,15 +71,15 @@ Partial Payment以外の場合、トランザクションのメタデータの`d `delivered_amount`フィールドは以下のフィールドに含まれています。 -| API | メソッド | フィールド | -|-----|--------|-------| -| [JSON-RPC / WebSocket][] | [account_txメソッド][] | `result.transactions` 配列メンバーの `meta.delivered_amount` | -| [JSON-RPC / WebSocket][] | [txメソッド][] | `result.meta.delivered_amount` | -| [JSON-RPC / WebSocket][] | [transaction_entryメソッド][] | `result.metadata.delivered_amount` | -| [JSON-RPC / WebSocket][] | [ledgerメソッド][](トランザクションが展開されている状態) | `result.ledger.transactions` 配列メンバーの`metaData.delivered_amount` {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.1" %}新規: rippled 1.2.1{% /badge %} | -| [WebSocket][] | [トランザクションサブスクリプション](../../references/http-websocket-apis/public-api-methods/subscription-methods/subscribe.md#トランザクションストリーム) | サブスクリプションメッセージの`meta.delivered_amount` {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.1" %}新規: rippled 1.2.1{% /badge %} | -| ripple-lib v1.x | `getTransaction` メソッド | `outcome.deliveredAmount` | -| ripple-lib v1.x | `getTransactions` メソッド | 配列メンバーの `outcome.deliveredAmount` | +| API | メソッド | フィールド | +| ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [JSON-RPC / WebSocket][] | [account_txメソッド][] | `result.transactions` 配列メンバーの `meta.delivered_amount` | +| [JSON-RPC / WebSocket][] | [txメソッド][] | `result.meta.delivered_amount` | +| [JSON-RPC / WebSocket][] | [transaction_entryメソッド][] | `result.metadata.delivered_amount` | +| [JSON-RPC / WebSocket][] | [ledgerメソッド][](トランザクションが展開されている状態) | `result.ledger.transactions` 配列メンバーの`metaData.delivered_amount` {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.1" %}新規: rippled 1.2.1{% /badge %} | +| [WebSocket][] | [トランザクションサブスクリプション](../../references/http-websocket-apis/public-api-methods/subscription-methods/subscribe.md#トランザクションストリーム) | サブスクリプションメッセージの`meta.delivered_amount` {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.1" %}新規: rippled 1.2.1{% /badge %} | +| ripple-lib v1.x | `getTransaction` メソッド | `outcome.deliveredAmount` | +| ripple-lib v1.x | `getTransactions` メソッド | 配列メンバーの `outcome.deliveredAmount` | [WebSocket]: ../../references/http-websocket-apis/index.md [JSON-RPC / WebSocket]: ../../references/http-websocket-apis/index.md @@ -89,7 +90,6 @@ Partial Payment以外の場合、トランザクションのメタデータの`d **着信Paymentトランザクションを正しく処理するには、**`Amount`フィールドではなく **[`delivered_amount`メタデータフィールド](#delivered_amountフィールド)を使用します。** これにより、金融機関が _実際の_ 受取金額を間違えることがなくなります。 - ### 悪用シナリオの流れ 脆弱な金融機関を攻撃するため、不正使用者は次のような操作を試みます。 @@ -99,8 +99,8 @@ Partial Payment以外の場合、トランザクションのメタデータの`d 3. 脆弱な金融機関はトランザクションの`Amount`フィールドを確認しますが、`Flags`フィールドや`delivered_amount`メタデータフィールドは確認しません。 4. 脆弱な金融機関は、XRP Ledgerへ入金された`delivered_amount`が非常に少額のであるにもかかわらず、外部システム(金融機関独自のレジャーなど)で`Amount`の総額を不正使用者に入金します。 5. 不正使用者は、脆弱な機関がこの差異に気付く前に、可能な限りの多くの残高を別のシステムに出金します。 - - ブロックチェーントランザクションは通常不可逆であるため、不正使用者は一般的にBitcoinなどの他の仮想通貨に残高を換金することを好みます。法定通貨システムに出金した場合、金融機関がトランザクションを撤回または取り消せるのは、最初にトランザクションが実行されてから数日後になります。 - - 取引所の場合、不正使用者はXRPから残高を出金し、直接XRP Ledgerに戻すこともできます。 + - ブロックチェーントランザクションは通常不可逆であるため、不正使用者は一般的にBitcoinなどの他の仮想通貨に残高を換金することを好みます。法定通貨システムに出金した場合、金融機関がトランザクションを撤回または取り消せるのは、最初にトランザクションが実行されてから数日後になります。 + - 取引所の場合、不正使用者はXRPから残高を出金し、直接XRP Ledgerに戻すこともできます。 業者の場合、操作の順序がやや異なりますが、概念は同じです: diff --git a/@l10n/ja/docs/concepts/payment-types/payment-channels.md b/@l10n/ja/docs/concepts/payment-types/payment-channels.md index 1e609dc387..78d40ef605 100644 --- a/@l10n/ja/docs/concepts/payment-types/payment-channels.md +++ b/@l10n/ja/docs/concepts/payment-types/payment-channels.md @@ -2,11 +2,12 @@ html: payment-channels.html parent: payment-types.html seo: - description: Payment Channelは、少額の単位に分割可能な高速な非同期のXRPペイメントを送信し、後日決済されるようにします。 + description: Payment Channelは、少額の単位に分割可能な高速な非同期のXRPペイメントを送信し、後日決済されるようにします。 labels: - Payment Channel - スマートコントラクト --- + # Payment Channel Payment Channelは、少額の単位に分割可能な「非同期」のXRPペイメントを送信し、後日決済する高度な機能です。 @@ -15,7 +16,6 @@ Payment Channel向けのXRPは、指定された期間にわたって留保さ クレームは個別に検証され、後で一括で清算できるため、Payment Channelでは、クレームのデジタル署名を作成および検証する参加者の能力によってのみ制限されるペースで、トランザクションを行えます。この制限は主に、参加者のハードウェアのスピードと、署名アルゴリズムの複雑さによるものです。最大限の速度を引き出すにはEd25519署名を使用します。これはXRP Ledgerのデフォルトのsecp256k1 ECSDA 署名よりも高速です。研究の結果、2011年のコモディティーハードウェアで[1秒あたりEd25519署名を100,000個以上作成し、1秒あたり70,000個以上を検証できることが実証されました](https://ed25519.cr.yp.to/ed25519-20110926.pdf)。 - ## Payment Channelを使用する理由 Payment Channelを使用するプロセスには常に、支払人と受取人という2名の当事者が関わります。支払人とは、受取人の顧客で、XRP Ledgerを使用している個人または機関です。受取人とは、商品またはサービスの代金としてXRPを受領する個人または事業者です。 @@ -26,13 +26,11 @@ Payment Channelでは本来、そこで売買可能なものにいては、一 - 安価な商品(価格に占めるトランザクション処理コストの割合が大きい) - 通常大量購入する商品(正確な希望数量が事前に判明していない) - ## Payment Channelのライフサイクル 次の図は、Payment Channelのライフサイクルの概要を示します。 -[{% inline-svg file="/docs/img/paychan-flow.ja.svg" /%}](/docs/img/paychan-flow.ja.svg "Payment Channelフローチャート") - +[{% inline-svg file="/docs/img/paychan-flow.ja.svg" /%}](/docs/img/paychan-flow.ja.svg 'Payment Channelフローチャート') ## 関連項目 diff --git a/@l10n/ja/docs/concepts/payment-types/robustly-monitoring-for-payments.md b/@l10n/ja/docs/concepts/payment-types/robustly-monitoring-for-payments.md index 8dc54050c1..14c9fde66b 100644 --- a/@l10n/ja/docs/concepts/payment-types/robustly-monitoring-for-payments.md +++ b/@l10n/ja/docs/concepts/payment-types/robustly-monitoring-for-payments.md @@ -2,26 +2,27 @@ html: robustly-monitoring-for-payments.html parent: payment-types.html seo: - description: 不正な入金がないかを監視するための推奨事項を説明します。 + description: 不正な入金がないかを監視するための推奨事項を説明します。 labels: - トークン --- + # 入金のモニタリング 入金チェックを確実に行うために、発行者は以下のことを行う必要があります。 -* 直近に処理したトランザクションとレジャーを記録しておく。そうすれば、一時的に接続ができなくなったとしても、どこまで遡ればいいのか分かります。 -* 受信したすべての支払いの結果コードを確認する。一部の支払いは、失敗したにもかかわらず、スパム対策料金を請求するためにレジャーに登録されます。結果コード`tesSUCCESS`を持つトランザクションだけが、XRP以外の残高を変更できます。また、検証されたレジャーからのトランザクションのみが確定的なものとなります。 -* [部分支払い](partial-payments.md)に注意してください。partial paymentフラグを有効にした場合、0以上の金額であれば、少額でも「成功」と判断されることがあります。 - * トランザクションに[`delivered_amount`フィールド](partial-payments.md#the-delivered_amount-field)があるかどうか確認してください。もし存在すれば、そのフィールドは`Destination`アドレスに実際にどれだけの金額が支払われたかを示しています。 - * xrpl.jsでは、[`xrpl.getBalanceChanges()`メソッド](https://js.xrpl.org/modules.html#getBalanceChanges)を使って、各アドレスがいくら受け取ったかを見ることができます。場合によっては、これを異なるトラストラインで複数回に分けて表示することも可能です -* トランザクションの中には、アドレスの1つへの直接の支払いやアドレスからの支払いでなくても、残高を変更するものがあります。 +- 直近に処理したトランザクションとレジャーを記録しておく。そうすれば、一時的に接続ができなくなったとしても、どこまで遡ればいいのか分かります。 +- 受信したすべての支払いの結果コードを確認する。一部の支払いは、失敗したにもかかわらず、スパム対策料金を請求するためにレジャーに登録されます。結果コード`tesSUCCESS`を持つトランザクションだけが、XRP以外の残高を変更できます。また、検証されたレジャーからのトランザクションのみが確定的なものとなります。 +- [部分支払い](partial-payments.md)に注意してください。partial paymentフラグを有効にした場合、0以上の金額であれば、少額でも「成功」と判断されることがあります。 + - トランザクションに[`delivered_amount`フィールド](partial-payments.md#the-delivered_amount-field)があるかどうか確認してください。もし存在すれば、そのフィールドは`Destination`アドレスに実際にどれだけの金額が支払われたかを示しています。 + - xrpl.jsでは、[`xrpl.getBalanceChanges()`メソッド](https://js.xrpl.org/modules.html#getBalanceChanges)を使って、各アドレスがいくら受け取ったかを見ることができます。場合によっては、これを異なるトラストラインで複数回に分けて表示することも可能です +- トランザクションの中には、アドレスの1つへの直接の支払いやアドレスからの支払いでなくても、残高を変更するものがあります。 顧客の利便性を高めるため、運用アドレスと発行アドレスの両方への支払いを受け付けることをお勧めします。 追加の防止策として、新しいXRP Ledgerの各レジャーバージョンにおいて、発行アドレスの残高と内部会計システムにおける担保資金を比較することをお勧めします。発行アドレスのマイナス残高は、ネットワーク外のXRP Ledgerに割り当てた資産と一致するはずです。もし両者が一致しないのであれば、その不一致を解決するまでXRP Ledgerへの出入りの支払い処理を中断する必要があります。 -* 残高を確認するには、`gateway_balances`メソッドを使用します。 -* Transfer Feeが設定されている場合、他のXRP Ledgerアドレスがあなたのトークンを転送するたびに、XRP Ledger内でのあなたの負債はわずかに減少します。 +- 残高を確認するには、`gateway_balances`メソッドを使用します。 +- Transfer Feeが設定されている場合、他のXRP Ledgerアドレスがあなたのトークンを転送するたびに、XRP Ledger内でのあなたの負債はわずかに減少します。 受信したトランザクションの詳細を確認する方法については、[トランザクションの結果の確認](../transactions/finality-of-results/look-up-transaction-results.md)をご覧ください。 diff --git a/@l10n/ja/docs/concepts/payment-types/sending-payments-to-customers.md b/@l10n/ja/docs/concepts/payment-types/sending-payments-to-customers.md index 752b67441d..b725baebc4 100644 --- a/@l10n/ja/docs/concepts/payment-types/sending-payments-to-customers.md +++ b/@l10n/ja/docs/concepts/payment-types/sending-payments-to-customers.md @@ -2,10 +2,11 @@ html: sending-payments-to-customers.html parent: payment-types.html seo: - description: Construct payments carefully to thwart malicious actors. + description: Construct payments carefully to thwart malicious actors. labels: - トークン --- + # 顧客への送金 顧客のためにXRP Ledgerに支払いを送信する自動化システムを構築する際には、支払いが確実に行われるように注意する必要があります。悪意のある行為者は常に、システムを騙して必要以上の金額を支払わせる方法を見つけようとしています。 diff --git a/@l10n/ja/docs/concepts/tokens/decentralized-exchange/autobridging.md b/@l10n/ja/docs/concepts/tokens/decentralized-exchange/autobridging.md index d69b11382a..edc06ed68b 100644 --- a/@l10n/ja/docs/concepts/tokens/decentralized-exchange/autobridging.md +++ b/@l10n/ja/docs/concepts/tokens/decentralized-exchange/autobridging.md @@ -2,11 +2,12 @@ html: autobridging.html parent: decentralized-exchange.html seo: - description: オートブリッジングは、コストが下がる場合はXRPを仲介として使用してオーダーブックを自動的に接続します。 + description: オートブリッジングは、コストが下がる場合はXRPを仲介として使用してオーダーブックを自動的に接続します。 labels: - XRP - 分散型取引所 --- + # オートブリッジング XRP Ledgerの[分散型取引所](index.md)で、XRP以外の2種類の通貨を交換する[オファー](offers.md)があった場合、合成されたオーダーブックで[XRP](../../../introduction/what-is-xrp.md)が中間通貨として使用されることがあります。これは _オートブリッジング_ によるものです。この機能は、通貨を直接交換するよりも安く済む場合にXRPを使用し、あらゆる通貨ペアの流動性を向上させる役割を担います。XRP Ledgerのネイティブ暗号資産であるというXRPの特性によりこのように機能します。オファーを実行する際は、直接オファーとオートブリッジングオファーを組み合わせることで全体として最良の為替レートを実現できます。 @@ -17,7 +18,6 @@ XRP Ledgerの[分散型取引所](index.md)で、XRP以外の2種類の通貨を [![オートブリッジングによる直接注文と合成注文の組み合わせを示す図](/docs/img/autobridging.png)](/docs/img/autobridging.png) - ## 関連項目 - [開発者ブログ: オートブリッジング](https://xrpl.org/blog/2014/introducing-offer-autobridging.html) diff --git a/@l10n/ja/docs/concepts/tokens/decentralized-exchange/automated-market-makers.md b/@l10n/ja/docs/concepts/tokens/decentralized-exchange/automated-market-makers.md index e10619a302..2330b95057 100644 --- a/@l10n/ja/docs/concepts/tokens/decentralized-exchange/automated-market-makers.md +++ b/@l10n/ja/docs/concepts/tokens/decentralized-exchange/automated-market-makers.md @@ -1,11 +1,12 @@ --- seo: - description: 自動マーケットメーカー(AMM)は、資産ペア間の流動性を提供し、分散型取引所のオーダーブックを補完すると同時に、流動性提供者に利益を提供します。 + description: 自動マーケットメーカー(AMM)は、資産ペア間の流動性を提供し、分散型取引所のオーダーブックを補完すると同時に、流動性提供者に利益を提供します。 labels: - XRP - 分散型取引所 - AMM --- + # 自動マーケットメーカー(AMM)とは? 自動マーケットメーカー(AMM)は、XRP Ledgerの分散型取引所において流動性を提供します。個々のAMMは2つの資産のプールを保有します。ユーザは数式で定められた取引レートによりその2つの資産間でスワップが可能です。 @@ -91,7 +92,6 @@ AMMは、発行済のLPトークンがない場合に限り、AMMの資産プー LPトークンは、160ビットの16進法["非標準"フォーマット](../../../references/protocol/data-types/currency-formats.md#非標準通貨コード)の特別なタイプの通貨コードを使用します。これらのコードの最初の8ビットは`0x03`です。残りのコードは、2つの資産の通貨コードとその発行者のSHA-512ハッシュで、最初の152ビットまで切り捨てたものです。(資産は、数値の低い通貨と発行者のペアを最初にする「正規化された順序」で配置されます。)その結果、LPトークンは、通貨と発行者のペアを最初にする「正規化された順序」で配置されます。その結果、ある資産ペアのAMMのLPトークンは、予測可能で一貫した通貨コードを持っています。 - ## 取引手数料 取引手数料は流動性供給者の収益源であり、プールの資産に対して他者に取引をさせることによる為替リスクを相殺するものであり、取引手数料は流動性提供者に直接支払われずにAMMに支払われます。流動性供給者は自分のLPトークンをAMMのプールの一定割合と交換することができるため、利益を得ることができます。 @@ -122,7 +122,6 @@ AMMの資産価格が外部市場で大きく変動すると、トレーダー オークションスロットの最小入札額は、空または期限切れの場合、現在のLPトークンの総数に取引手数料を掛けたものを25で割ったものです。(擬似コードで表すと、`MinBid = LPTokens * TradingFee / 25`です。) オークションスロットが占有されている場合、現在のスロット保持者が支払った金額の105%までの最小入札額を支払う必要があります。 - ## 台帳上の表示 台帳の状態データでは、AMMは複数の[レジャーエントリのタイプ](../../../references/protocol/ledger-data/ledger-entry-types/index.md)で構成されています。 @@ -131,13 +130,12 @@ AMMの資産価格が外部市場で大きく変動すると、トレーダー - AMMのLPトークンを発行し、AMMのXRP(保有している場合)を保有する特別な[AccountRootエントリ][] - このAccountRootのアドレスは、AMMの作成時にランダムに選ばれ、AMMを削除して再作成した場合にも異なるアドレスが選ばれます。これは、AMMのアカウントにユーザが事前にXRPで資金を供給することを防止するためです。 + このAccountRootのアドレスは、AMMの作成時にランダムに選ばれ、AMMを削除して再作成した場合にも異なるアドレスが選ばれます。これは、AMMのアカウントにユーザが事前にXRPで資金を供給することを防止するためです。 - AMMのプールにあるトークンのAMM専用アカウントへの[トラストライン](../fungible-tokens/index.md) これらのレジャーエントリはどのアカウントにも所有されていないため、[準備金要件](../../accounts/reserves.md)は適用されません。ただし、スパムを防ぐため、AMMを作成するための取引には特別な[トランザクションコスト](../../transactions/transaction-cost.md)があり、通常よりも多くのXRPを消費する必要があります。 - ## 削除 AMMは、[AMMWithdrawトランザクション][]がそのプールから全てのアセットを引き出すと削除されます。これは、AMMのすべての発行済みLPトークンを償還することによってのみ発生します。AMMの削除には、以下のようなAMMに関連するすべてのレジャーエントリの削除も含まれます。 diff --git a/@l10n/ja/docs/concepts/tokens/decentralized-exchange/index.md b/@l10n/ja/docs/concepts/tokens/decentralized-exchange/index.md index d497dc53b3..84e537f0a8 100644 --- a/@l10n/ja/docs/concepts/tokens/decentralized-exchange/index.md +++ b/@l10n/ja/docs/concepts/tokens/decentralized-exchange/index.md @@ -4,8 +4,9 @@ parent: tokens.html metadata: indexPage: true seo: - description: XRP Ledgerには多機能な取引所が含まれており、この取引所を利用してユーザはトークンをXRPに、あるいはXRPをトークンにに交換できます。 + description: XRP Ledgerには多機能な取引所が含まれており、この取引所を利用してユーザはトークンをXRPに、あるいはXRPをトークンにに交換できます。 --- + # 分散型取引所 XRP Ledgerには、世界でおそらく最も古い _分散型取引所_ (「DEX」と略されることもあります)があり、2012年のXRP Ledgerのローンチ以来、現在まで稼働し続けています。この取引所では、ユーザが[トークン](../index.md)をXRPや他のトークンと売買することができ、ネットワーク自体に課される[手数料](../../transactions/fees.md)はごく僅かです。(いかなる当事者にも支払われることはありません) @@ -26,23 +27,22 @@ XRP Ledgerのすべての変更がそうであるように、取引を行うに ### 取引の例 -[{% inline-svg file="/docs/img/decentralized-exchange-example-trade.ja.svg" /%}](/docs/img/decentralized-exchange-example-trade.ja.svg "図: XRPでトークンを購入する注文が一部約定する。") +[{% inline-svg file="/docs/img/decentralized-exchange-example-trade.ja.svg" /%}](/docs/img/decentralized-exchange-example-trade.ja.svg '図: XRPでトークンを購入する注文が一部約定する。') 上の図は、分散型取引所での取引例です。この例では、Tranというトレーダーが、WayGateという架空の企業が発行するFOOという通貨コードのトークン100個の購入オファーを出しています。(簡潔にするため、「FOO.WayGate」はこれらのトークンを指します。)Tranは、合計で最大1000XRPまで支払う意思があることを明記しています。Tranのトランザクションが処理されると、次のようなことが起こります。 1. ネットワークは、購入する通貨額を支払う通貨額で割ることによって、TranのOfferの取引レートを計算します。 -0. このオーダーブックには、金額や取引レートが異なる他のトレーダーからのオファーがすでに複数存在します。このケースでは、FOO.WayGateの売りとXRPの買いのオーダーブックを意味します。 -0. Tranのオファーが全額約定するか、Tranのオファーは、Tranのオファーで指定されたレートと同等以上の取引レートのオファーがなくなるまで、最良の取引レートから順に、オファーを約定していきます。この例では、22 FOO.WayGateのみが指定されたレート以上で取引可能です。約定したオファーはオーダーブックから削除されます。 -0. Tranは、この取引で調達できたFOO.WayGateの量を、それまで売り注文を出していた様々なトレーダーから受け取ります。これらのトークンはWayGateのFOOに対するTranの[トラストライン](../fungible-tokens/index.md)に送られます。(Tranがまだトラストラインを持っていなかった場合、自動的に作成されます。) -0. その見返りとして、それらのトレーダーは、提示された取引レートに従って、TranからXRPを受け取ります。 -0. ネットワークはTranのオファーの残りを計算します。元々のオファーが100 FOO.WayGateの購入で、これまでTranは22を受け取っているので、残りは78 FOO.WayGateとなります。元の取引レートを使用すると、Tranのオファーの残りは780 XRPで78 FOO.WayGateを購入することになります。 -0. この「残り」は、Tranの取引と同じ向きの取引、つまりXRPの売りとFOO.WayGateの買いのオーダーブックに載せられます。 +2. このオーダーブックには、金額や取引レートが異なる他のトレーダーからのオファーがすでに複数存在します。このケースでは、FOO.WayGateの売りとXRPの買いのオーダーブックを意味します。 +3. Tranのオファーが全額約定するか、Tranのオファーは、Tranのオファーで指定されたレートと同等以上の取引レートのオファーがなくなるまで、最良の取引レートから順に、オファーを約定していきます。この例では、22 FOO.WayGateのみが指定されたレート以上で取引可能です。約定したオファーはオーダーブックから削除されます。 +4. Tranは、この取引で調達できたFOO.WayGateの量を、それまで売り注文を出していた様々なトレーダーから受け取ります。これらのトークンはWayGateのFOOに対するTranの[トラストライン](../fungible-tokens/index.md)に送られます。(Tranがまだトラストラインを持っていなかった場合、自動的に作成されます。) +5. その見返りとして、それらのトレーダーは、提示された取引レートに従って、TranからXRPを受け取ります。 +6. ネットワークはTranのオファーの残りを計算します。元々のオファーが100 FOO.WayGateの購入で、これまでTranは22を受け取っているので、残りは78 FOO.WayGateとなります。元の取引レートを使用すると、Tranのオファーの残りは780 XRPで78 FOO.WayGateを購入することになります。 +7. この「残り」は、Tranの取引と同じ向きの取引、つまりXRPの売りとFOO.WayGateの買いのオーダーブックに載せられます。 同じ台帳でTranの直後に実行されたものも含め、その後の取引は更新されたオーダーブックを使って行われるため、Tranのオファーが全額約定するかTranがキャンセルするまで、その一部または全額を約定することができます。 {% admonition type="info" name="注記" %}元帳がクローズされ、検証される際の取引の実行順序は、取引が送信された順序と同じではありません。複数のトランザクションが同じ台帳の同じオーダーブックに影響を与える場合、それらのトランザクションの最終結果は、トランザクション送信時に計算された暫定的な結果とは大きく異なる可能性があります。取引結果が確定する場合、確定しない場合の詳細については、[結果のファイナリティー](../../transactions/finality-of-results/index.md)をご覧ください。{% /admonition %} - ## 制限事項 分散型取引所は、以下のような制限を設けて設計されています。 @@ -56,17 +56,16 @@ XRP Ledgerは、成行注文、指値注文、レバレッジ取引などの概 ## 関連項目 - **コンセプト:** - - [Offers](offers.md): XRP Ledgerでのトレードの仕組みについて - - [トークン](../index.md): XRP Ledgerで様々な種類の価値を表現する方法の概要について + - [Offers](offers.md): XRP Ledgerでのトレードの仕組みについて + - [トークン](../index.md): XRP Ledgerで様々な種類の価値を表現する方法の概要について - **リファレンス:** - - [account_offersメソッド][]: アカウントから注文されたオファーを検索 - - [book_offersメソッド][]: 指定された通貨ペアの売買のオファーを検索 - - [OfferCreateトランザクション][]: 新規オファーを発注や既存のオファーの置き換え - - [OfferCancelトランザクション][]: 既存のオファーをキャンセル - - [Offerオブジェクト][] 台帳のオファーのデータ構造 - - [DirectoryNodeオブジェクト][]: 特定の通貨ペアと取引レートのすべてのオファーを追跡するデータ構造 + - [account_offersメソッド][]: アカウントから注文されたオファーを検索 + - [book_offersメソッド][]: 指定された通貨ペアの売買のオファーを検索 + - [OfferCreateトランザクション][]: 新規オファーを発注や既存のオファーの置き換え + - [OfferCancelトランザクション][]: 既存のオファーをキャンセル + - [Offerオブジェクト][] 台帳のオファーのデータ構造 + - [DirectoryNodeオブジェクト][]: 特定の通貨ペアと取引レートのすべてのオファーを追跡するデータ構造 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} - {% child-pages /%} diff --git a/@l10n/ja/docs/concepts/tokens/decentralized-exchange/offers.md b/@l10n/ja/docs/concepts/tokens/decentralized-exchange/offers.md index c7feedadde..7b3c0ef913 100644 --- a/@l10n/ja/docs/concepts/tokens/decentralized-exchange/offers.md +++ b/@l10n/ja/docs/concepts/tokens/decentralized-exchange/offers.md @@ -2,10 +2,11 @@ html: offers.html parent: decentralized-exchange.html seo: - description: オファーはXRP Ledgerの通貨取引に関する機能の一つです。オファーのライフサイクルと特性について説明します。 + description: オファーはXRP Ledgerの通貨取引に関する機能の一つです。オファーのライフサイクルと特性について説明します。 labels: - 分散型取引所 --- + # オファー XRP Ledgerの[分散型取引所](index.md)では、通貨の取引注文は「オファー」と呼ばれます。オファーはXRPと[トークン](../index.md)の取引、またはトークン間の取引(同一通貨コードだが発行者が異なるトークンを含む)を行うことができます。(同一通貨コードで発行者が異なる通貨は、[rippling](../fungible-tokens/rippling.md)によって取引することもできます。) @@ -14,7 +15,6 @@ XRP Ledgerの[分散型取引所](index.md)では、通貨の取引注文は「 - 即時に約定されないオファーはレジャーデータの[Offerオブジェクト](../../../references/protocol/ledger-data/ledger-entry-types/offer.md)になります。その後のオファーとPaymentにより、レジャーのOfferオブジェクトは約定されます。 - [クロスカレンシー支払い](../../payment-types/cross-currency-payments.md)はオファーを約定して流動性を提供します。 - ## オファーのライフサイクル [OfferCreateトランザクション][]は、2つのトークン、またはトークンとXRPの間で取引を行なうための命令です。それぞれのトランザクションは購入額(`TakerPays`)と売却額(`TakerGets`)を含みます。トランザクションが処理されると、自動的に約定またはクロスするオファーが可能な限り約定されます。その結果、新しいオファーを完全に約定しきれない場合、残りは台帳上のOfferオブジェクトとなります。 @@ -45,21 +45,20 @@ Offerオブジェクトは、他のオファーやクロスカレンシー決済 次のような場合には、オファーが一時的または長期に渡って「資金不足」になる可能性があります。 - 所有者が売却する資産を一切保有しなくなった場合。 - - オーナーがその資産を再度取得すると、オファーに資金が供給されるようになります。 + - オーナーがその資産を再度取得すると、オファーに資金が供給されるようになります。 - 売却する資産が[フリーズされたトラストライン](../fungible-tokens/freezes.md)に含まれるトークンである場合。 - - トラストラインがフリーズ解除されると、オファーは再び資金が供給されるようになります。 + - トラストラインがフリーズ解除されると、オファーは再び資金が供給されるようになります。 - オファーが新しいトラストラインを作成する必要があるが、オーナーがその[準備金](../../accounts/reserves.md)の増加に伴う十分なXRPを持っていない場合。 - - オーナーが追加のXRPを調達するか、準備金の必要量が減少すると、オファーは自動的に使用可能になります。 + - オーナーが追加のXRPを調達するか、準備金の必要量が減少すると、オファーは自動的に使用可能になります。 - オファーが失効した場合。([オファーの有効期限](#オファーの有効期限)を参照) 資金不足のOfferオブジェクトは、トランザクションによって削除されるまで、台帳に残ります。台帳からOfferオブジェクトを削除するには、以下の方法があります。 - - 約定するオファーまたは[クロスカレンシー支払い](../../payment-types/cross-currency-payments.md)によってオファーが全額約定される。 - 所有者が明示的にオファーをキャンセルする。 - 所有者が交差する新しいオファーを作成することにより、暗黙のうちにオファーをキャンセルする。 - トランザクション処理中にオファーが資金不足または期限切れであることが判明する。 - - これには、オファーが支払うことができる残額がゼロになる場合も含まれます。 + - これには、オファーが支払うことができる残額がゼロになる場合も含まれます。 ### 資金不足のオファーの追跡 @@ -67,7 +66,6 @@ Offerオブジェクトは、他のオファーやクロスカレンシー決済 クライアントアプリケーションでオファーの資金化の状況をローカルで追跡できます。このためには、最初に[book_offersメソッド][]を使用してオーダーブックを取得し、次にオファーの`taker_gets_funded`フィールドを調べます。次に`transactions`ストリームを[サブスクライブ](../../../references/http-websocket-apis/public-api-methods/subscription-methods/subscribe.md)し、トランザクションメタデータを監視してどのオファーが変更されるかを確認します。 - ## オファーとトラスト トラストラインの限度額([TrustSet](../../../references/protocol/transactions/types/trustset.md)を参照)はオファーに影響しません。つまり、オファーを使用して、発行者に対して設定したトラストラインの限度額を上回る額を取得できます。 @@ -76,13 +74,11 @@ Offerオブジェクトは、他のオファーやクロスカレンシー決済 トラストラインの制限は、あなたの希望以上のトークンを受け取ることを防ぐためのものです。オファーとは、トークンをどれだけ欲しいかを明示的に示すものであるため、この制限を超えることができます。 - ## オファーの優先度 台帳内のOfferオブジェクトは取引レートによってグループにまとめられます。取引レートは、`TakerGets`と`TakerPays`の比率として計算されます。取引レートが高いOfferオブジェクトが優先的に処理されます。(つまり、オファーを約定する人は、支払われる通貨額に対して可能な限り多くの額を受領します。)同じ取引レートのオファーは、オファーの作成タイミングを基準にして処理されます。 -同じ取引レートのOfferオブジェクトが同じ台帳ブロックに記録されている場合、オファーの処理順序は[レジャーへトランザクションを適用する](https://github.com/XRPLF/rippled/blob/5425a90f160711e46b2c1f1c93d68e5941e4bfb6/src/ripple/app/consensus/LedgerConsensus.cpp#L1435-L1538 "Source Code: Applying transactions")ための[正規順序](https://github.com/XRPLF/rippled/blob/release/src/ripple/app/misc/CanonicalTXSet.cpp "Source Code: Transaction ordering")によって決定します。この動作は確定的かつ効率的であり、操作することが困難であるように設計されています。 - +同じ取引レートのOfferオブジェクトが同じ台帳ブロックに記録されている場合、オファーの処理順序は[レジャーへトランザクションを適用する](https://github.com/XRPLF/rippled/blob/5425a90f160711e46b2c1f1c93d68e5941e4bfb6/src/ripple/app/consensus/LedgerConsensus.cpp#L1435-L1538 'Source Code: Applying transactions')ための[正規順序](https://github.com/XRPLF/rippled/blob/release/src/ripple/app/misc/CanonicalTXSet.cpp 'Source Code: Transaction ordering')によって決定します。この動作は確定的かつ効率的であり、操作することが困難であるように設計されています。 ## オファーの有効期限 @@ -97,13 +93,13 @@ Offerオブジェクトは、他のオファーやクロスカレンシー決済 ## 関連項目 - **コンセプト:** - - [トークン](../index.md) - - [パス](../fungible-tokens/paths.md) + - [トークン](../index.md) + - [パス](../fungible-tokens/paths.md) - **リファレンス:** - - [account_offersメソッド][] - - [book_offersメソッド][] - - [OfferCreateトランザクション][] - - [OfferCancelトランザクション][] - - [Offerオブジェクト](../../../references/protocol/ledger-data/ledger-entry-types/offer.md) + - [account_offersメソッド][] + - [book_offersメソッド][] + - [OfferCreateトランザクション][] + - [OfferCancelトランザクション][] + - [Offerオブジェクト](../../../references/protocol/ledger-data/ledger-entry-types/offer.md) {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/concepts/tokens/decentralized-exchange/permissioned-dexes.md b/@l10n/ja/docs/concepts/tokens/decentralized-exchange/permissioned-dexes.md index d4e665820b..5362843fa3 100644 --- a/@l10n/ja/docs/concepts/tokens/decentralized-exchange/permissioned-dexes.md +++ b/@l10n/ja/docs/concepts/tokens/decentralized-exchange/permissioned-dexes.md @@ -1,17 +1,17 @@ --- seo: - description: 許可型メインインスタンスの定義と詳細について + description: 許可型メインインスタンスの定義と詳細について labels: - コンプライアンス - 分散型取引所 --- + # 許可型DEX 許可型DEXは、XRP Ledgerの[分散型取引所(DEX)](./index.md)内での取引を制御する環境です。許可型DEXでの取引は、オープンDEXと同様ですが、[_許可型ドメイン_](./permissioned-domains.md)によって誰がオファーを置くことができるか、またはオファーを受け入れることができるかを制御します。許可型DEXを利用することで、規制下にある企業はXRP Ledgerでの取引に参加し、取引先のすべての相手方が適切に検証されていることを確認することができます。 XRP Ledgerブロックチェーン内には、複数の許可型DEXが存在することができます。それぞれは、許可型ドメインと関連付けられており、そのDEXへのアクセスを許可するリストとして機能します。許可型DEX内に置かれた取引は、同じ許可型DEX内の他の取引にのみ実行できます。各許可型DEXは、必要に応じて、任意の数の通貨ペアの注文帳を持つことができます。 - ## 背景: 許可型DEXの必要性 XRP Ledgerは、ローンチ以来、単一の、_オープンDEX_ を持っています。XRPLアカウントを持っていれば誰でもこのDEXで取引することができ、システムは誰がオファーを作成したに関係なく、マッチングする注文、もしくはオファーを自動的に約定します。注文はまた、クロスカレンシー支払いに流動性を提供し、潜在的に1つのアトミック取引の一部として複数の取引を実行することができます。 @@ -24,7 +24,6 @@ XRP Ledgerは、ローンチ以来、単一の、_オープンDEX_ を持って - [オファー](./offers.md) - [許可型ドメイン](./permissioned-domains.md) - ## 許可型DEXの重要な役割 許可型DEXを使用するには、以下の役割と責任を持つ参加者が必要です。 @@ -39,7 +38,6 @@ XRP Ledgerは、ローンチ以来、単一の、_オープンDEX_ を持って _図: 許可型オーダーブック。Owenは許可型ドメインの所有者であり、許可型ドメインの承認された資格情報の1つの発行者です。TracyはOwenが発行した適切な資格情報を保有しているため、許可型オーダーブックで取引することができます。_ - ## 許可型DEXの構造を理解する: オファーの種類と相互作用 許可型DEX機能を使用すると、取引オファーは _オープン_、_許可型_、または _ハイブリッド_ のいずれかになります。 @@ -60,16 +58,15 @@ _図: 許可型オーダーブック。Owenは許可型ドメインの所有者 ハイブリッドオファーは、オープンDEXのオーダーブックと、その通貨ペアの許可型ドメイン固有のオーダーブックの両方で追跡され、どちらかのオファーとマッチングすることができます。配置された場合、許可型DEXのオファーと優先的にマッチングします。 - ### オープン、ハイブリッド、許可型オファーのマッチング方法 要約すると、以下の表に、どのオファーがマッチングできるかをまとめています: | オファー/支払いタイプ | オープンオファー | ハイブリッドオファー | 許可型オファー | AMM | -|-----------------------|------------------|----------------------|-------------------|-----| -| オープン | ✅ | ✅ | ❌ | ✅ | -| ハイブリッド | ✅ | ✅ | ✅ (同じドメイン) | ✅ | -| 許可型 | ❌ | ❌ | ✅ (同じドメイン) | ❌ | +| --------------------- | ---------------- | -------------------- | ----------------- | --- | +| オープン | ✅ | ✅ | ❌ | ✅ | +| ハイブリッド | ✅ | ✅ | ✅ (同じドメイン) | ✅ | +| 許可型 | ❌ | ❌ | ✅ (同じドメイン) | ❌ | 許可型DEXを表すための単一のレジャーエントリはありません。 それは暗黙的に、同じドメインIDを持つすべてのオーダーブックとして存在します。指定されたドメインIDを使用して有効なオファーが配置されると、そのオーダーブックが作成され、空になると自動的に削除されます。 @@ -81,7 +78,6 @@ _図: 許可型オーダーブック。Owenは許可型ドメインの所有者 _図: オープンDEXと2つの異なる許可型DEX。それぞれが、可能な通貨ペアのサブセットの注文帳を含んでいます。_ - ### 無効な許可型オファー オープンDEXでオファーが資金不足になる方法に加えて、許可型DEXでのオファーは _無効_ になる可能性があります。無効なオファーは、資金不足のオファーと同じ方法で処理され、トランザクションがそれらを含むオーダーブックを変更するたびに自動的に削除されます。トランザクションがそれらを削除するまで、レジャーデータ内に無期限に残ることができますが、無効な場合は約定できません。 diff --git a/@l10n/ja/docs/concepts/tokens/decentralized-exchange/permissioned-domains.md b/@l10n/ja/docs/concepts/tokens/decentralized-exchange/permissioned-domains.md index d793e47a7e..19de9fd884 100644 --- a/@l10n/ja/docs/concepts/tokens/decentralized-exchange/permissioned-domains.md +++ b/@l10n/ja/docs/concepts/tokens/decentralized-exchange/permissioned-domains.md @@ -1,10 +1,11 @@ --- seo: - description: 許可型ドメインの定義と詳細 + description: 許可型ドメインの定義と詳細 labels: - コンプライアンス - 許可型ドメイン --- + # 許可型ドメイン 許可型ドメインは、XRP Ledgerブロックチェーンのより広いエコシステム内の制御された環境です。ドメインは何もしませんが、許可型DEXや貸付プロトコルなどの機能は、ドメインを使用してアクセスを制限するため、従来の金融機関は、様々なコンプライアンスルールに従って、チェーン上でサービスを提供できます。 @@ -25,7 +26,7 @@ _([PermissionedDomains amendment][]が必要です {% not-enabled /%})_ ドメインは、資格情報と制限されたリソースの間の抽象化レイヤーとして機能します。ドメインの所有者は、制限されたリソース自体を変更せずに、必要な資格情報のリストを更新できます。 -[{% inline-svg file="../../../img/permissioned-domain.svg" /%}](../../../img/permissioned-domain.svg "図: 許可型DEXは、IDによって許可型ドメインを指します。ドメインの許可された資格情報は、アクセスを取得するための3つの可能な資格情報を説明します") +[{% inline-svg file="../../../img/permissioned-domain.svg" /%}](../../../img/permissioned-domain.svg '図: 許可型DEXは、IDによって許可型ドメインを指します。ドメインの許可された資格情報は、アクセスを取得するための3つの可能な資格情報を説明します') ユーザは、ドメインに参加または退出するために申請する必要はありません。トランザクションがドメインによって制限されたリソースへのアクセスを必要とする場合、トランザクションは自動的にアカウントがドメインの許可された資格情報と一致する資格情報を保持しているかどうかを確認し、一致しない場合は失敗します。ユーザの資格情報は、許可されており、有効期限が切れていない必要があります。 diff --git a/@l10n/ja/docs/concepts/tokens/decentralized-exchange/ticksize.md b/@l10n/ja/docs/concepts/tokens/decentralized-exchange/ticksize.md index a5317f95b1..d01b453cd2 100644 --- a/@l10n/ja/docs/concepts/tokens/decentralized-exchange/ticksize.md +++ b/@l10n/ja/docs/concepts/tokens/decentralized-exchange/ticksize.md @@ -1,10 +1,11 @@ --- seo: - description: 発行者は、為替レートのごくわずかな差を超えて、頻繁な取引を抑制するためにオーダーブックで通貨のカスタムチックサイズを設定することができます。 + description: 発行者は、為替レートのごくわずかな差を超えて、頻繁な取引を抑制するためにオーダーブックで通貨のカスタムチックサイズを設定することができます。 labels: - - 分散型取引所 - - トークン + - 分散型取引所 + - トークン --- + # ティックサイズ オファーがオーダーブックに対して発行されると、そのオファーに関係する通貨の発行者によって設定された`TickSize`の値に基づいて、為替レートが切り捨てられます。トレーダーがXRPとトークンを交換するオファーを出した場合は、そのトークンの発行者からの`TickSize`が適用されます。トレーダーが2種類のトークンを交換するオファーを出した場合は、小さい方の`TickSize`の値(有効数字の桁数が少ない値)がこのオファーに適用されます。いずれの通貨にも`TickSize`が設定されていない場合、デフォルトが適用されます。 diff --git a/@l10n/ja/docs/concepts/tokens/fungible-tokens/authorized-trust-lines.md b/@l10n/ja/docs/concepts/tokens/fungible-tokens/authorized-trust-lines.md index e920e59a22..9a930fe367 100644 --- a/@l10n/ja/docs/concepts/tokens/fungible-tokens/authorized-trust-lines.md +++ b/@l10n/ja/docs/concepts/tokens/fungible-tokens/authorized-trust-lines.md @@ -2,11 +2,12 @@ html: authorized-trust-lines.html parent: trust-lines-and-issuing.html seo: - description: 認可トラストラインとは、トークンを保有できる人を制限するための設定です。 + description: 認可トラストラインとは、トークンを保有できる人を制限するための設定です。 labels: - トークン - セキュリティ --- + # 認可トラストライン XRP Ledgerの認可トラストライン機能により、発行者は、発行者が許可したアカウントのみが保有できるトークンを作成することができます。認可トラストライン機能はトークンにのみ適用され、XRPには影響しません。 @@ -35,6 +36,7 @@ XRP Ledger上のステーブルコインと認可トラストラインの使用 認可トラストラインを使用するつもりがない場合でも、[運用アカウントと予備アカウント](../../accounts/account-types.md)のRequire Auth設定を有効にし、これらのアカウントにトラストラインを認可させないようにすることができます。これは、これらのアカウントが誤ってトークンを発行することを防止します(たとえば、ユーザが誤って間違ったアドレスをトラストしてしまった場合など)。これはあくまで予防措置であり、運用アカウントと予備アカウントが意図したとおりに _発行者の_ トークンを転送することを止めるものではありません。 ## 技術情報 + ### RequireAuthの有効化 @@ -64,7 +66,6 @@ POST http://localhost:5005/ {% partial file="/@l10n/ja/docs/_snippets/secret-key-warning.md" /%} - ## アカウントのRequireAuthの有効化の確認 アカウントのRequireAuth設定の有効化の状態を確認するには、[account_infoメソッド][]を使用してアカウントを調べます。`Flags`フィールド(`result.account_data`オブジェクト)の値を、[AccountRootレジャーオブジェクトのビット単位フラグ](../../../references/protocol/ledger-data/ledger-entry-types/accountroot.md)と比較します。 @@ -106,7 +107,6 @@ POST http://localhost:8088/ {% partial file="/@l10n/ja/docs/_snippets/secret-key-warning.md" /%} - ## トラストラインの認可状況の確認 トラストラインの認可状況を確認するには、[account_linesメソッド][]を使用してトラストラインを調べます。レスポンスの`account`フィールドに顧客のアドレスを指定し、`peer`フィールドに発行者のアドレスを指定します。 @@ -116,14 +116,14 @@ POST http://localhost:8088/ ## 関連項目 - **コンセプト:** - - [Deposit Authorization](../../accounts/depositauth.md) - - [トークンのフリーズ](freezes.md) + - [Deposit Authorization](../../accounts/depositauth.md) + - [トークンのフリーズ](freezes.md) - **リファレンス:** - - [account_linesメソッド][] - - [account_infoメソッド][] - - [AccountSetトランザクション][] - - [TrustSetトランザクション][] - - [AccountRootフラグ](../../../references/protocol/ledger-data/ledger-entry-types/accountroot.md#accountrootのフラグ) - - [RippleState (トラストライン) フラグ](../../../references/protocol/ledger-data/ledger-entry-types/ripplestate.md#ripplestateのフラグ) + - [account_linesメソッド][] + - [account_infoメソッド][] + - [AccountSetトランザクション][] + - [TrustSetトランザクション][] + - [AccountRootフラグ](../../../references/protocol/ledger-data/ledger-entry-types/accountroot.md#accountrootのフラグ) + - [RippleState (トラストライン) フラグ](../../../references/protocol/ledger-data/ledger-entry-types/ripplestate.md#ripplestateのフラグ) {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/concepts/tokens/fungible-tokens/clawing-back-tokens.md b/@l10n/ja/docs/concepts/tokens/fungible-tokens/clawing-back-tokens.md index 36535a0f53..91b03c398c 100644 --- a/@l10n/ja/docs/concepts/tokens/fungible-tokens/clawing-back-tokens.md +++ b/@l10n/ja/docs/concepts/tokens/fungible-tokens/clawing-back-tokens.md @@ -1,9 +1,10 @@ --- seo: - description: 発行者は、トークンを発行する前にClawback機能を有効にすると、規制遵守の目的でトークンを取り戻すことができます。 + description: 発行者は、トークンを発行する前にClawback機能を有効にすると、規制遵守の目的でトークンを取り戻すことができます。 labels: - トークン --- + # トークンの回収 規制上の目的から、トークンがアカウントに送信された後にトークンを回収する機能を必要とする発行者が存在します。例えば、トークンが違法行為で制裁を受けたアカウントに送られたことが発覚した場合、発行者はその資金を「回収」することができます。 @@ -26,10 +27,10 @@ Clawback機能はデフォルトで無効になっています。使用するに "TransactionType": "Clawback", "Account": "rp6abvbTbjoce8ZDJkT6snvxTZSYMBCC9S", "Amount": { - "currency": "FOO", - "issuer": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", - "value": "314.159" - } + "currency": "FOO", + "issuer": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", + "value": "314.159" + } } ``` diff --git a/@l10n/ja/docs/concepts/tokens/fungible-tokens/common-misconceptions-about-freezes.md b/@l10n/ja/docs/concepts/tokens/fungible-tokens/common-misconceptions-about-freezes.md index f9c4ccf547..5dd1490402 100644 --- a/@l10n/ja/docs/concepts/tokens/fungible-tokens/common-misconceptions-about-freezes.md +++ b/@l10n/ja/docs/concepts/tokens/fungible-tokens/common-misconceptions-about-freezes.md @@ -2,10 +2,11 @@ parent: freezes.html html: common-misconceptions-about-freezes.html seo: - description: XRP Ledgerのフリーズ機能について、よくある誤解を解いていきます。 + description: XRP Ledgerのフリーズ機能について、よくある誤解を解いていきます。 labels: - トークン --- + # トークンのフリーズに関するよくある誤解 PayPalのような中央集権的なサービスがアカウントを停止して資金にアクセスできないようにするのと同様に、Ripple社などがXRPをフリーズすることができるというのはよくある誤解です。XRP Ledgerには[フリーズ機能](freezes.md)がありますが、これは発行トークンにのみ使用可能で、XRPには使用できません。 **XRPをフリーズすることは誰にもできません**。 @@ -24,7 +25,6 @@ XRP Ledgerは分散型であり、Ripple社やXRP Ledger財団、そして他の さらに、トークン発行者は、トークンをフリーズする能力を自主的かつ永久的に放棄することができます。この["No Freeze"](freezes.md#no-freeze)設定は、他者がトークンの使用を止めることができないという意味で、トークンがより実際の現金のように振る舞うことを想定しています。 - ## しかし、Ripple社がJed McCaleb氏のXRPをフリーズしたと聞きましたが? これは、2015年から2016年にかけて実際に起こった事件の誤報です。2013年にRipple社の創業者で同社を退社したJed McCaleb氏は、100万USドル以上のXRPをカストディ取引所であるBitstampで売却しようと試みました。Ripple社の代理人は、この売却はJed氏とRipple社が2014年に締結した契約に違反すると主張しました。Ripple社の要求により、[BitstampはJedのBitstampアカウントをフリーズ](https://www.coindesk.com/markets/2015/04/02/1-million-legal-fight-ensnares-ripple-bitstamp-and-jed-mccaleb/)し、裁判に持ち込まれました。この裁判は[最終的に和解](https://www.coindesk.com/markets/2016/02/12/ripple-settles-1-million-lawsuit-with-former-executive-and-founder/)となり、双方がその結果に納得したと表明しています。 diff --git a/@l10n/ja/docs/concepts/tokens/fungible-tokens/deep-freeze.md b/@l10n/ja/docs/concepts/tokens/fungible-tokens/deep-freeze.md index 128c5675ab..8fb4bd90b9 100644 --- a/@l10n/ja/docs/concepts/tokens/fungible-tokens/deep-freeze.md +++ b/@l10n/ja/docs/concepts/tokens/fungible-tokens/deep-freeze.md @@ -1,11 +1,12 @@ --- seo: - description: ディープフリーズは、トラストラインのフリーズが解除されるまで、フリーズされたトークン保有者がその資金を送受信できないようにします。 + description: ディープフリーズは、トラストラインのフリーズが解除されるまで、フリーズされたトークン保有者がその資金を送受信できないようにします。 labels: - トークン - フリーズ - ディープフリーズ --- + # ディープフリーズ ディープフリーズは、XRP Ledger上のトークン発行者が、フリーズされたアカウントによるトークンの悪用を防ぐための機能です。これは、フリーズされた資産と支払いのやり取りを強化し、トラストラインがフリーズ解除されない限り、フリーズされたトークン保有者が資金を受け取ることができないようにします。 @@ -37,10 +38,10 @@ labels: ディープフリーズでは、`RippleState`(トラストライン)オブジェクトに、`lsfLowDeepFreeze` と `lsfHighDeepFreeze` の2つのフラグが導入されます。 -| フラグ名 | フラグ値 | 説明 | -|-----------|-------------|-------------| -| `lsfLowDeepFreeze` | `0x02000000` | 低位アカウントがトラストラインをディープフリーズしており、高位アカウントは資産を移動できません。 | -| `lsfHighDeepFreeze` | `0x04000000` | 高位アカウントがトラストラインをディープフリーズしており、低位アカウントは資産を移動できません。 | +| フラグ名 | フラグ値 | 説明 | +| ------------------- | ------------ | ------------------------------------------------------------------------------------------------ | +| `lsfLowDeepFreeze` | `0x02000000` | 低位アカウントがトラストラインをディープフリーズしており、高位アカウントは資産を移動できません。 | +| `lsfHighDeepFreeze` | `0x04000000` | 高位アカウントがトラストラインをディープフリーズしており、低位アカウントは資産を移動できません。 | [高位vs低位アカウント](../../../references/protocol/ledger-data/ledger-entry-types/ripplestate.md#high-vs-low-account)をご覧ください. @@ -48,10 +49,10 @@ labels: ディープフリーズでは、`TrustSet` トランザクションに `tfSetDeepFreeze` および `tfClearDeepFreeze` の2つのフラグが導入されます。 -| フラグ名 | フラグ値 | 説明 | -|-----------|-------------|-------------| -| `tfSetDeepFreeze` | `0x00400000` | トラストラインをディープフリーズします。 | -| `tfClearDeepFreeze` | `0x00800000` | トラストラインのディープフリーズを解除します。 | +| フラグ名 | フラグ値 | 説明 | +| ------------------- | ------------ | ---------------------------------------------- | +| `tfSetDeepFreeze` | `0x00400000` | トラストラインをディープフリーズします。 | +| `tfClearDeepFreeze` | `0x00800000` | トラストラインのディープフリーズを解除します。 | `tfSetDeepFreeze` を設定しようとする `TrustSet` トランザクションは、以下のいずれかが当てはまる場合にのみ成功します。 diff --git a/@l10n/ja/docs/concepts/tokens/fungible-tokens/demurrage.md b/@l10n/ja/docs/concepts/tokens/fungible-tokens/demurrage.md index a289d8ff9d..7d84e18431 100644 --- a/@l10n/ja/docs/concepts/tokens/fungible-tokens/demurrage.md +++ b/@l10n/ja/docs/concepts/tokens/fungible-tokens/demurrage.md @@ -2,9 +2,10 @@ html: demurrage.html parent: trust-lines-and-issuing.html seo: - description: (廃止) 一部の古いXRP Ledgerツールは、組み込み金利やマイナス金利を持つ通貨コードをサポートしていました。. + description: (廃止) 一部の古いXRP Ledgerツールは、組み込み金利やマイナス金利を持つ通貨コードをサポートしていました。. status: removed --- + # デマレージ {% admonition type="warning" name="注意" %}デマレージは非推奨の機能であり、継続的なサポートはありません。このページでは、旧バージョンのXRP Ledgerソフトウェアの過去の動作について説明します。{% /admonition %} @@ -40,11 +41,10 @@ D = A × ( e ^ (t ÷ τ) ) 1. `( e ^ (t ÷ τ) )`の値を計算する。この数値を「デマレージ係数」と呼ぶ。デマレージ係数は常に現在時刻など特定の時刻からの相対値である。 2. 変換する量に適用します。 - - レジャー値を表示値に変換する場合は、デマレージ係数を乗じる。 - - 表示値をレジャー値に変換する場合は、デマレージ係数で割ってください。 + - レジャー値を表示値に変換する場合は、デマレージ係数を乗じる。 + - 表示値をレジャー値に変換する場合は、デマレージ係数で割ってください。 3. 必要であれば、結果値が望ましい精度で表現できるように調整する。XRP Ledgerの[発行通貨形式](../../../references/protocol/data-types/currency-formats.md#トークンの精度)により、レジャー値の精度は小数点以下15桁までとされています。 - ## 利子付き通貨コードフォーマット [標準通貨コード形式](../../../references/protocol/data-types/currency-formats.md#標準通貨コード)ではなく、正の金利や負の金利(Demurrage)を持つ通貨は、以下の形式の160ビット通貨コードを使用します。 @@ -53,7 +53,7 @@ D = A × ( e ^ (t ÷ τ) ) 1. 最初の8ビットは `0x01` でなければなりません。 2. 次の24ビットはASCIIの3文字を表します。 - これはISO 4217のコードと予想されます。標準フォーマットのASCII文字と同じ文字をサポートしています。 + これはISO 4217のコードと予想されます。標準フォーマットのASCII文字と同じ文字をサポートしています。 3. 次の24ビットはすべて「0」でなければなりません。 4. 次の64ビットは通貨の金利で、IEEE754ダブルフォーマットで「[e-folding time](http://en.wikipedia.org/wiki/E-folding)」と表現される。 5. 次の24ビットは予約されており,すべて`0`でなければなりません @@ -93,14 +93,13 @@ D = A × ( e ^ (t ÷ τ) ) // デマレージ通貨の表示金額を表す Amount オブジェクトを作成し、 // 現在の日付を表すreference_dateを渡します。 // (この場合、2017-11-04T00:07:50Zに、年0.5%の脱税で台帳値10 XAU。)。 -var demAmount = ripple.Amount.from_human('10 0158415500000000C1F76FF6ECB0BAC600000000', - {reference_date:563069270}); +var demAmount = ripple.Amount.from_human('10 0158415500000000C1F76FF6ECB0BAC600000000', { reference_date: 563069270 }) // 発行者を設定します -demAmount.set_issuer("rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh"); +demAmount.set_issuer('rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh') // get the JSON format for the ledger amount -console.log(demAmount.to_json()); +console.log(demAmount.to_json()) // { "value": "10.93625123082769", // "currency": "0158415500000000C1F76FF6ECB0BAC600000000", @@ -112,14 +111,15 @@ console.log(demAmount.to_json()); ```js // レジャー値を持つ Amount オブジェクトを作成します。 ledgerAmount = ripple.Amount.from_json({ - "currency": "015841551A748AD2C1F76FF6ECB0CCCD00000000", - "issuer": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "value": "10.93625123082769"}) + currency: '015841551A748AD2C1F76FF6ECB0CCCD00000000', + issuer: 'rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh', + value: '10.93625123082769', +}) // 表示金額を得るために現在時刻までの利息を適用する -var displayAmount = demAmount.applyInterest(new Date()); +var displayAmount = demAmount.applyInterest(new Date()) -console.log(displayAmount.to_json()); +console.log(displayAmount.to_json()) // { "value": "9.999998874657716", // "currency": "0158415500000000C1F76FF6ECB0BAC600000000", diff --git a/@l10n/ja/docs/concepts/tokens/fungible-tokens/freezes.md b/@l10n/ja/docs/concepts/tokens/fungible-tokens/freezes.md index e128a6c1e7..60dafa634a 100644 --- a/@l10n/ja/docs/concepts/tokens/fungible-tokens/freezes.md +++ b/@l10n/ja/docs/concepts/tokens/fungible-tokens/freezes.md @@ -2,10 +2,11 @@ html: freezes.html parent: trust-lines-and-issuing.html seo: - description: 発行者はコンプライアンス目的でトークンの取引を停止できます。 + description: 発行者はコンプライアンス目的でトークンの取引を停止できます。 labels: - トークン --- + # トークンのフリーズ 発行者は発行したトークンをXRP Ledgerでフリーズすることができます。**これはXRP LedgerのネイティブアセットであるXRPには適用されません。** @@ -16,21 +17,20 @@ labels: フリーズについては、3種類の設定があります。 -* [**Individual Freeze(個別のフリーズ)**](#individual-freeze) - 1件の取引相手をフリーズします。 -* [**Global Freeze(全体のフリーズ)**](#global-freeze) - 取引相手全員をフリーズします。 -* [**No Freeze(フリーズ機能の放棄)**](#no-freeze) - 個々の取引相手のフリーズ機能と、Global Freeze機能を永久に放棄します。 +- [**Individual Freeze(個別のフリーズ)**](#individual-freeze) - 1件の取引相手をフリーズします。 +- [**Global Freeze(全体のフリーズ)**](#global-freeze) - 取引相手全員をフリーズします。 +- [**No Freeze(フリーズ機能の放棄)**](#no-freeze) - 個々の取引相手のフリーズ機能と、Global Freeze機能を永久に放棄します。 フリーズ対象の残高がプラス、マイナスにかかわらず、すべてのフリーズ設定を行うことができます。通貨イシュアーまたは通貨保持者のいずれかがトラストラインをフリーズできますが、通貨保持者がイシュアーをフリーズしても、その影響はわずかです。 - ## Individual Freeze **Individual Freeze**機能は、[トラストライン](index.md)に関する設定です。発行アドレスがIndividual Freeze設定を有効にすると、そのトラストラインの通貨に対して以下のルールが適用されます。 -* フリーズされたトラストラインの両当事者間の直接決済は、フリーズ後も可能です。 -* そのトラストラインの取引相手は、イシュアーへ直接支払う場合を除き、フリーズされたトラストラインの残高を減らすことはできません。取引相手は、フリーズされたイシュアンスを直接イシュアーに送信することだけが可能です。 -* 取引相手は、フリーズされたトラストライン上で引き続きその他の当事者からの支払を受け取ることができます。 -* 取引相手がフリーズされたトラストライン上のトークンの売りオファーを出した場合、[資金不足とみなされます](../decentralized-exchange/offers.md#オファーのライフサイクル)。 +- フリーズされたトラストラインの両当事者間の直接決済は、フリーズ後も可能です。 +- そのトラストラインの取引相手は、イシュアーへ直接支払う場合を除き、フリーズされたトラストラインの残高を減らすことはできません。取引相手は、フリーズされたイシュアンスを直接イシュアーに送信することだけが可能です。 +- 取引相手は、フリーズされたトラストライン上で引き続きその他の当事者からの支払を受け取ることができます。 +- 取引相手がフリーズされたトラストライン上のトークンの売りオファーを出した場合、[資金不足とみなされます](../decentralized-exchange/offers.md#オファーのライフサイクル)。 再確認: トラストラインではXRPは保持されません。XRPはフリーズできません。 @@ -42,14 +42,13 @@ Individual Freezeは1つの通貨にのみ適用されます。特定の取引 [No Freeze](#no-freeze)設定を有効にしている場合、アドレスはIndividual Freeze設定を有効にできません。 - ## Global Freeze **Global Freeze**機能は、アドレスに設定できます。発行アドレスがGlobal Freeze機能を有効にすると、その発行アドレスのすべてのトークンに対して以下のルールが適用されます: -* フリーズされた発行アドレスのすべての取引相手は、イシュアーに直接支払う場合を除き、フリーズされたアドレスへのトラストラインの残高を減らすことができません。(これはすべての[運用アドレス](../../accounts/account-types.md)にも影響します。) -* フリーズされた発行アドレスの取引相手は、発行アドレスとの直接的な支払の送受信を引き続き行うことができます。 -* フリーズアドレスによるトークンの売りオファーはすべて、[資金不足とみなされます](../decentralized-exchange/offers.md#オファーのライフサイクル)。 +- フリーズされた発行アドレスのすべての取引相手は、イシュアーに直接支払う場合を除き、フリーズされたアドレスへのトラストラインの残高を減らすことができません。(これはすべての[運用アドレス](../../accounts/account-types.md)にも影響します。) +- フリーズされた発行アドレスの取引相手は、発行アドレスとの直接的な支払の送受信を引き続き行うことができます。 +- フリーズアドレスによるトークンの売りオファーはすべて、[資金不足とみなされます](../decentralized-exchange/offers.md#オファーのライフサイクル)。 再確認: アドレスはXRPを発行できません。Global FreezeはXRPには適用されません。 @@ -61,7 +60,6 @@ Global Freezeは、当該アドレスによって発行および保有されて アドレスのGlobal Freeze設定はいつでも有効にできます。ただし、アドレスの[No Freeze](#no-freeze)設定を有効にすると、Global Freezeを _無効にする_ ことはできません。 - ## No Freeze **No Freeze**機能をアドレスに設定すると、取引相手が発行した通貨をフリーズする機能を永久に放棄します。この機能を使用すれば、企業は自社が発行した資金を「物理的なお金のように」扱うことができます。これにより、企業は顧客どうしがその資金を取引することに介入できなくなります。 @@ -70,8 +68,8 @@ Global Freezeは、当該アドレスによって発行および保有されて No Freeze設定には次の2つの効果があります。 -* 発行アドレスは、すべての取引相手とのトラストラインに対してIndividual Freezeを有効にできなくなります。 -* 発行アドレスは、Global Freezeを有効にしてグローバルフリーズを施行できますが、Global Freezeを _無効にする_ ことはできません。 +- 発行アドレスは、すべての取引相手とのトラストラインに対してIndividual Freezeを有効にできなくなります。 +- 発行アドレスは、Global Freezeを有効にしてグローバルフリーズを施行できますが、Global Freezeを _無効にする_ ことはできません。 XRP Ledgerは金融機関に対し、その発行資金が表す債務を履行することを強制できません。このため、Global Freezeを有効にする機能を放棄しても顧客を保護できません。ただし、Global Freezeを _無効にする_ 機能を放棄することで、Global Freeze機能が一部の顧客に対して不当に適用されないようにすることができます。 @@ -79,23 +77,21 @@ No Freeze設定は、アドレスに対して発行される通貨と、アド No Freeze設定は、アドレスのマスターキーのシークレットキーにより署名されたトランザクションでのみ有効にできます。[レギュラーキー](../../../references/protocol/transactions/types/setregularkey.md)または[マルチシグトランザクション](../../accounts/multi-signing.md)を使用してNo Freezeを有効にすることはできません。 - - # 関連項目 - [フリーズコードの例](https://github.com/XRPLF/xrpl-dev-portal/tree/master/_code-samples/freeze) - **コンセプト:** - - [トラストラインとトークンの発行](index.md) + - [トラストラインとトークンの発行](index.md) - **Tutorials:** - - [No Freezeを有効化](../../../tutorials/how-tos/use-tokens/enable-no-freeze.md) - - [Global Freezeの実行](../../../tutorials/how-tos/use-tokens/enact-global-freeze.md) - - [トラストラインのフリーズ](../../../tutorials/how-tos/use-tokens/freeze-a-trust-line.md) + - [No Freezeを有効化](../../../tutorials/how-tos/use-tokens/enable-no-freeze.md) + - [Global Freezeの実行](../../../tutorials/how-tos/use-tokens/enact-global-freeze.md) + - [トラストラインのフリーズ](../../../tutorials/how-tos/use-tokens/freeze-a-trust-line.md) - **References:** - - [account_linesメソッド][] - - [account_infoメソッド][] - - [AccountSetトランザクション][] - - [TrustSetトランザクション][] - - [AccountRootフラグ](../../../references/protocol/ledger-data/ledger-entry-types/accountroot.md#accountrootのフラグ) - - [RippleState(trust line)フラグ](../../../references/protocol/ledger-data/ledger-entry-types/ripplestate.md#ripplestateのフラグ) + - [account_linesメソッド][] + - [account_infoメソッド][] + - [AccountSetトランザクション][] + - [TrustSetトランザクション][] + - [AccountRootフラグ](../../../references/protocol/ledger-data/ledger-entry-types/accountroot.md#accountrootのフラグ) + - [RippleState(trust line)フラグ](../../../references/protocol/ledger-data/ledger-entry-types/ripplestate.md#ripplestateのフラグ) {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/concepts/tokens/fungible-tokens/index.md b/@l10n/ja/docs/concepts/tokens/fungible-tokens/index.md index 1c7967eddf..9888c9d598 100644 --- a/@l10n/ja/docs/concepts/tokens/fungible-tokens/index.md +++ b/@l10n/ja/docs/concepts/tokens/fungible-tokens/index.md @@ -2,10 +2,11 @@ html: trust-lines-and-issuing.html parent: tokens.html seo: - description: トラストラインの特性と根本原理について説明します。 + description: トラストラインの特性と根本原理について説明します。 labels: - トークン --- + # 代替可能トークン 非公式な"借用書"から、法定通貨を担保とするステーブルコイン、純粋なデジタルファンジブルトークンやセミファンジブルトークンなど、誰でもXRP Ledger上で代替可能なトークンを発行することができます。 @@ -20,9 +21,9 @@ labels: - トラストラインが接続する **2つの[アカウント](../../accounts/index.md)** の識別子 - 一方のアカウントから見てプラス、他方のアカウントから見てマイナスとなる、単一の共有された**残高** - - 残高がマイナスのアカウントは、一般的にトークンの「発行者」とみなされます。ただし、[API](../../../references/http-websocket-apis/index.md)では、`issuer`という名称はどちらを指すこともあるようです。 + - 残高がマイナスのアカウントは、一般的にトークンの「発行者」とみなされます。ただし、[API](../../../references/http-websocket-apis/index.md)では、`issuer`という名称はどちらを指すこともあるようです。 - 様々な **設定** とメタデータ。2つのアカウントの _それぞれ_ は、トラストライン上の設定を制御することができます。 - - 最も重要なことは、各サイドがトラストラインに **限度額** を設定できることです。これはデフォルトでは0です。各アカウントの残高は(トラストラインから見て)そのアカウントの上限を超えることはできません。ただし、[アカウント自身の操作](#限度額以上を保有する)を除きます。 + - 最も重要なことは、各サイドがトラストラインに **限度額** を設定できることです。これはデフォルトでは0です。各アカウントの残高は(トラストラインから見て)そのアカウントの上限を超えることはできません。ただし、[アカウント自身の操作](#限度額以上を保有する)を除きます。 各トラストラインは、特定の[通貨コード][]に固有です。2つのアカウント間に作成できる各種通貨コードのトラストラインの数に制限はありませんが、どの通貨コードについても、作成できるトラストラインは1方向に1つだけです。 @@ -34,7 +35,6 @@ labels: トラストラインは、[分散型取引所](../decentralized-exchange/index.md)でトークンを購入するときなど、いくつかのトランザクションによって暗黙的に作成されることがあります。この場合、トラストラインはデフォルト設定をそのまま使用します。 - ## 限度額以上を保有する トラストラインの限度額よりも _大きい_ 残高を保有できるケースは次の3つがあります。 @@ -43,7 +43,6 @@ labels: 2. プラスの残高があるトラストラインの限度額を減らした場合 3. [チェックの現金化](../../payment-types/checks.md)によって、トークンを限度額以上取得する場合 {% amendment-disclaimer name="CheckCashMakesTrustLine" /%} - ## トラストラインの設定 アカウントごとに、共通残高のほかに、トラストラインの設定項目があり、その構成は以下のとおりです。 @@ -55,7 +54,6 @@ labels: - **DeepFreeze**: このトラストラインに[ディープフリーズ](deep-freeze.md)が適用されているかどうかを示す値(true/false)です。デフォルトは`false` です。 - **Quality In** および **Quality Out**: この設定により、このトラストライン上の他のアカウントで発行されたトークンを額面より少なく(または多く)評価することができます。たとえば、ステーブルコインの発行者が、オフレッジャーにある同等の資産に対してトークンの引き出しに3%の手数料を課している場合、この設定を使用して、それらのトークンを額面の97%で評価することが可能です。デフォルトは`0`で、額面価格を表しています。 - ## 準備金と削除 トラストラインは台帳のスペースを使用するため、[トラストラインはあなたのアカウントが準備金として保持しなければならないXRPを増加させます](../../accounts/reserves.md)。 トラストラインのどちらか、または両方のアカウントにトラストラインの準備金が負担されることがあります。トラストラインの設定がデフォルトでない場合、またはプラス残高を保持している場合、所有者準備金の1つとしてカウントされます。 @@ -72,6 +70,7 @@ labels: **Authorized** の設定は、一度オンにするとオフにできないため、トラストラインの初期状態にはカウントされません。 ## 無料のトラストライン + [[Source]](https://github.com/XRPLF/rippled/blob/72377e7bf25c4eaee5174186d2db3c6b4210946f/src/ripple/app/tx/impl/SetTrust.cpp#L148-L168) トラストラインはXRP Ledgerの強力な機能であるため、アカウントの最初の2つのトラストラインを「無料」にする特別な機能が用意されています。 @@ -80,16 +79,15 @@ labels: アカウントが台帳に3つ以上のオブジェクトを所有している場合、所有者準備金が全額適用されます。 - ## 関連項目 - **コンセプト:** - - [分散型取引所](../decentralized-exchange/index.md) - - [リップリング](rippling.md) + - [分散型取引所](../decentralized-exchange/index.md) + - [リップリング](rippling.md) - **リファレンス:** - - [account_linesメソッド][] - 指定されたアカウントに関連付けられたトラストラインを確認 - - [gateway_balancesメソッド][] - 発行者の発行残高を確認 - - [RippleStateオブジェクト](../../../references/protocol/ledger-data/ledger-entry-types/ripplestate.md) - 台帳の状態データのうち、トラストラインのデータ形式 - - [TrustSetトランザクション][] - トラストラインを作成・変更するトランザクション + - [account_linesメソッド][] - 指定されたアカウントに関連付けられたトラストラインを確認 + - [gateway_balancesメソッド][] - 発行者の発行残高を確認 + - [RippleStateオブジェクト](../../../references/protocol/ledger-data/ledger-entry-types/ripplestate.md) - 台帳の状態データのうち、トラストラインのデータ形式 + - [TrustSetトランザクション][] - トラストラインを作成・変更するトランザクション {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/concepts/tokens/fungible-tokens/multi-purpose-tokens.md b/@l10n/ja/docs/concepts/tokens/fungible-tokens/multi-purpose-tokens.md index f661585292..4e3866b151 100644 --- a/@l10n/ja/docs/concepts/tokens/fungible-tokens/multi-purpose-tokens.md +++ b/@l10n/ja/docs/concepts/tokens/fungible-tokens/multi-purpose-tokens.md @@ -1,12 +1,13 @@ --- seo: - description: Multi-Purpose Tokenは、トラストラインよりもコンパクトで柔軟なトークンタイプです。 + description: Multi-Purpose Tokenは、トラストラインよりもコンパクトで柔軟なトークンタイプです。 labels: - トークン - MPT - Multi-Purpose Token status: not_enabled --- + # Multi-Purpose Token {% partial file="/@l10n/ja/docs/_snippets/mpts-disclaimer.md" /%} @@ -21,10 +22,10 @@ MPTを使用することで、数行のコードですぐに使えるトーク - MPT を転送不可トークンと定義することもできます。この場合、トークンは発行者にのみ転送することができ、トークン保有者の間では転送できません。航空会社のクレジットを発行したり、ロイヤリティ報酬を発行したりする場合に便利です。 - 発行者は、トークン保有者間でトークンが取引されるたびにオンチェーン収益を得るために送金手数料を設定することができます。 - MPTには高度なコンプライアンス機能もあります。 - - トークン保有者が保有するトークンをロックし、コンプライアンス要件をサポートする機能。 - - すべてのトークン保有者のすべてのMPT残高に対してグローバルロックを設定する機能。 - - 発行者は、トークン保有者のウォレットからMPTをクローバックできるように設定することができ、MPTを失効させたり、ウォレットキーを紛失した場合に再割り当てしたりすることができます。 - - オプトイン機能として、発行者が許可したウォレットにのみ発行されたトークンを保持させることができます。 + - トークン保有者が保有するトークンをロックし、コンプライアンス要件をサポートする機能。 + - すべてのトークン保有者のすべてのMPT残高に対してグローバルロックを設定する機能。 + - 発行者は、トークン保有者のウォレットからMPTをクローバックできるように設定することができ、MPTを失効させたり、ウォレットキーを紛失した場合に再割り当てしたりすることができます。 + - オプトイン機能として、発行者が許可したウォレットにのみ発行されたトークンを保持させることができます。 ## MPTとトラストラインの比較 diff --git a/@l10n/ja/docs/concepts/tokens/fungible-tokens/paths.md b/@l10n/ja/docs/concepts/tokens/fungible-tokens/paths.md index 66c35f1e7c..fedfa5853f 100644 --- a/@l10n/ja/docs/concepts/tokens/fungible-tokens/paths.md +++ b/@l10n/ja/docs/concepts/tokens/fungible-tokens/paths.md @@ -2,11 +2,12 @@ html: paths.html parent: trust-lines-and-issuing.html seo: - description: トークンによる支払いは、接続されているユーザのパスとオーダーブックを通す必要があります。 + description: トークンによる支払いは、接続されているユーザのパスとオーダーブックを通す必要があります。 labels: - 支払い - クロスカレンシー --- + # パス XRP Ledgerでは、[トークン](../index.md)の支払いが送金元から受取人に届くまでにたどる中間ステップの道筋をパスによって定義します。パスは、XRP Ledgerの[分散型取引所](../decentralized-exchange/index.md)の注文と[自動マーケットメーカー](../../../concepts/tokens/decentralized-exchange/automated-market-makers.md)を介して送金元と受取人を結び付けることで、[クロスカレンシー支払い](../../payment-types/cross-currency-payments.md)を可能にします。また、負債を相殺するような複雑な決済もパスにより可能になります。 @@ -19,8 +20,8 @@ XRPは任意のアドレスに直接送金できるため、[XRP間のトラン パスは、支払いの送金元と受取人を結ぶステップで構成されています。すべてのステップは次のいずれかを行います。 -* 同一通貨の別のアドレスを通じたRippling -* オーダーブックとAMMでの通貨の取引 +- 同一通貨の別のアドレスを通じたRippling +- オーダーブックとAMMでの通貨の取引 別のアドレスを通じたRipplingは、負債を移動するプロセスです。一般的なケースでは、ある当事者に対するイシュアーの債務が削減され、別の当事者に対する債務が増加します。Ripplingは、トラストラインで結ばれているすべてのアドレスの間で発生させることができます。Ripplingのその他の例については、[NoRippleフラグについて](rippling.md)をご覧ください。 @@ -28,9 +29,7 @@ XRPは任意のアドレスに直接送金できるため、[XRP間のトラン いずれのタイプのステップでも、中間アドレスでは取得する価値と失う価値はほぼ同等です。トラストラインから同じ通貨の別のトラストラインへ残高がripplingするか、または以前に出されたオーダーに基づいて通貨が交換されます。場合によっては、[送金手数料](transfer-fees.md)、AMM手数料、トラストライン残高の増減、または数値の丸め方が原因で、取得する価値と失われる価値が厳密に同等ではないことがあります。 -[{% inline-svg file="/docs/img/paths-examples.ja.svg" /%}](/docs/img/paths-examples.ja.svg "3つのパスの例を示す図") - - +[{% inline-svg file="/docs/img/paths-examples.ja.svg" /%}](/docs/img/paths-examples.ja.svg '3つのパスの例を示す図') # 技術詳細 @@ -44,17 +43,15 @@ XRPは任意のアドレスに直接送金できるため、[XRP間のトラン パスの検出は、新しいレジャーが検証されるたびに数秒ごとに変化する非常に難しい課題であるため、`rippled`は完全に最適なパスを検出するようには設計されていません。ただし、いくつかの有効なパスを検出し、特定額の送金コストを推定することができます。 - ## 暗黙のステップ 規約として、パスのステップのいくつかは[Paymentトランザクションのフィールド](../../../references/protocol/transactions/types/payment.md)により黙示的に示されます。これらのフィールドは、`Account`(送金元)、`Destination`(受取人)、`Amount`(通貨と納入額)、`SendMax`(通貨と送金額(指定されている場合))です。暗黙のステップは次のとおりです。 -* パスの1番目のステップは、トランザクションの`Account`フィールドに定義されるとおり、トランザクションの送信者であると常に黙示されます。 -* トランザクションに、そのトランザクションの送信者ではない`issuer`が指定されている`SendMax`フィールドが含まれている場合、そのイシュアーはパスの2番目のパスとして黙示されます。 - * `SendMax`の`issuer`が送信側アドレス _である_ 場合、パスはその送信側アドレスから始まり、そのアドレスの特定の通貨のトラストラインのいずれかを使用できます。詳細は、[SendMaxおよびAmountの特殊な値](../../../references/protocol/transactions/types/payment.md#sendmaxおよびamountで使用する特殊なissuerの値)をご覧ください。 -* トランザクションの`Amount`フィールドに、トランザクションの`Destination`とは異なる`issuer`が指定されている場合、そのイシュアーはパスの最後から2番目のステップであると黙示されます。 -* 最後に、トランザクションの`Destination`フィールドに定義されるとおり、パスの最終ステップはトランザクションの受信者であることが常に黙示されます。 - +- パスの1番目のステップは、トランザクションの`Account`フィールドに定義されるとおり、トランザクションの送信者であると常に黙示されます。 +- トランザクションに、そのトランザクションの送信者ではない`issuer`が指定されている`SendMax`フィールドが含まれている場合、そのイシュアーはパスの2番目のパスとして黙示されます。 + - `SendMax`の`issuer`が送信側アドレス _である_ 場合、パスはその送信側アドレスから始まり、そのアドレスの特定の通貨のトラストラインのいずれかを使用できます。詳細は、[SendMaxおよびAmountの特殊な値](../../../references/protocol/transactions/types/payment.md#sendmaxおよびamountで使用する特殊なissuerの値)をご覧ください。 +- トランザクションの`Amount`フィールドに、トランザクションの`Destination`とは異なる`issuer`が指定されている場合、そのイシュアーはパスの最後から2番目のステップであると黙示されます。 +- 最後に、トランザクションの`Destination`フィールドに定義されるとおり、パスの最終ステップはトランザクションの受信者であることが常に黙示されます。 ## デフォルトパス @@ -62,28 +59,27 @@ XRPは任意のアドレスに直接送金できるため、[XRP間のトラン デフォルトパスは次のいずれかになります。 -* トランザクションで(イシュアーに関係なく)1種類の通貨のみが使用される場合、デフォルトパスでは支払いが、関連するアドレスを通じてRipplingされると想定されます。このパスは、これらのアドレスがトラストラインで接続されている場合にのみ機能します。 - * `SendMax`が省略されているか、または`SendMax`の`issuer`が送金元の場合、デフォルトパスが機能するためには送金元`Account`から宛先`Amount`の`issuer`へのトラストラインが必要です。 - * `SendMax`と`Amount`に異なる`issuer`値が指定されており、そのいずれも送金元または受取人ではない場合、これらの2つのイシュアー間のトラストラインでRipplingが必要となるため、デフォルトパスは有用ではない可能性があります。一般にイシュアーが互いに直接信頼し合うことはお勧めしません。 -* クロスカレンシー支払いの場合、デフォルトパスは支払元通貨(`SendMax`フィールドで指定)と宛先通貨(`Amount`フィールドで指定)の間でオーダーブックやAMMを使用します。 +- トランザクションで(イシュアーに関係なく)1種類の通貨のみが使用される場合、デフォルトパスでは支払いが、関連するアドレスを通じてRipplingされると想定されます。このパスは、これらのアドレスがトラストラインで接続されている場合にのみ機能します。 + - `SendMax`が省略されているか、または`SendMax`の`issuer`が送金元の場合、デフォルトパスが機能するためには送金元`Account`から宛先`Amount`の`issuer`へのトラストラインが必要です。 + - `SendMax`と`Amount`に異なる`issuer`値が指定されており、そのいずれも送金元または受取人ではない場合、これらの2つのイシュアー間のトラストラインでRipplingが必要となるため、デフォルトパスは有用ではない可能性があります。一般にイシュアーが互いに直接信頼し合うことはお勧めしません。 +- クロスカレンシー支払いの場合、デフォルトパスは支払元通貨(`SendMax`フィールドで指定)と宛先通貨(`Amount`フィールドで指定)の間でオーダーブックやAMMを使用します。 有効なすべてのデフォルトパスを次の図に示します。 -[{% inline-svg file="/docs/img/default-paths.ja.svg" /%}](/docs/img/default-paths.ja.svg "デフォルトパスの図") +[{% inline-svg file="/docs/img/default-paths.ja.svg" /%}](/docs/img/default-paths.ja.svg 'デフォルトパスの図') デフォルトパスを無効にするには[`tfNoDirectRipple`フラグ](../../../references/protocol/transactions/types/payment.md#paymentのフラグ)を使用します。このケースでは、トランザクションに明示的に指定されたパスを使用してトランザクションを実行することだけが可能です。トレーダーはこのオプションを使用して裁定取引を実行できます。 - ## パスの仕様 パスセットは配列です。パスセットの各要素は、個々の _パス_ を表す別の配列です。パスの各要素は、ステップを指定するオブジェクトです。ステップのフィールドを次に示します。 -| フィールド | 値 | 説明 | -|:-----------|:-----------------------|:---------------------------------------| -| `account` | 文字列 - アドレス | _(省略可)_ 指定されている場合、このパスステップは指定されたアドレスを通じたRipplingを表します。このステップに`currency`フィールドまたは`issuer`フィールドが指定されている場合は、このフィールドを指定しないでください。 | -| `currency` | 文字列 - 通貨コード | _(省略可)_ 指定されている場合、このパスステップはオーダーブックやAMMを通じた通貨の変換を表します。指定される通貨は新しい通貨を表します。このステップに`account`フィールドが指定されている場合は、このフィールドを指定しないでください。 | -| `issuer` | 文字列 - アドレス | _(省略可)_ 指定されている場合、このパスステップは通貨の変換を表し、このアドレスは新しい通貨の発行者を定義します。XRP以外の`currency`のステップでこのフィールドが省略されている場合、パスの直前のステップが発行者を定義します。`currency`が省略され、このフィールドが指定されている場合、発行者が異なる同名の通貨間でオーダーブックやAMMを使用するパスステップを示します。`currency`がXRPの場合は省略する必要があります。このステップに`account`フィールドが指定されている場合は、このフィールドを指定しないでください。 | -| `type` | 整数 | **廃止予定**_(省略可)_ 他にどのフィールドが指定されているかを示します。 | -| `type_hex` | 文字列 | **廃止予定**: _(省略可)_`type`フィールドの16進数表現です。 | +| フィールド | 値 | 説明 | +| :--------- | :------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `account` | 文字列 - アドレス | _(省略可)_ 指定されている場合、このパスステップは指定されたアドレスを通じたRipplingを表します。このステップに`currency`フィールドまたは`issuer`フィールドが指定されている場合は、このフィールドを指定しないでください。 | +| `currency` | 文字列 - 通貨コード | _(省略可)_ 指定されている場合、このパスステップはオーダーブックやAMMを通じた通貨の変換を表します。指定される通貨は新しい通貨を表します。このステップに`account`フィールドが指定されている場合は、このフィールドを指定しないでください。 | +| `issuer` | 文字列 - アドレス | _(省略可)_ 指定されている場合、このパスステップは通貨の変換を表し、このアドレスは新しい通貨の発行者を定義します。XRP以外の`currency`のステップでこのフィールドが省略されている場合、パスの直前のステップが発行者を定義します。`currency`が省略され、このフィールドが指定されている場合、発行者が異なる同名の通貨間でオーダーブックやAMMを使用するパスステップを示します。`currency`がXRPの場合は省略する必要があります。このステップに`account`フィールドが指定されている場合は、このフィールドを指定しないでください。 | +| `type` | 整数 | **廃止予定**_(省略可)_ 他にどのフィールドが指定されているかを示します。 | +| `type_hex` | 文字列 | **廃止予定**: _(省略可)_`type`フィールドの16進数表現です。 | 要約すると、以下のフィールドの組み合わせが有効であり、またオプションで`type`、`type_hex`のいずれかまたは両方を指定できます。 @@ -96,11 +92,11 @@ XRPは任意のアドレスに直接送金できるため、[XRP間のトラン パスセットのバイナリシリアル化に使用される`type`フィールドは、実際には1つの整数上でビット演算により作成されます。ビットの定義は次のとおりです。 -| 値(16進数) | 値(10進数) | 説明 | -|-------------|-----------------|-------------| -| 0x01 | 1 | アドレスの変更(Rippling):`account`フィールドが指定されています。 | -| 0x10 | 16 | 通貨の変更:`currency`フィールドが指定されています。 | -| 0x20 | 32 | イシュアーの変更:`issuer`フィールドが指定されています。 | +| 値(16進数) | 値(10進数) | 説明 | +| ------------ | ------------ | ------------------------------------------------------------------ | +| 0x01 | 1 | アドレスの変更(Rippling):`account`フィールドが指定されています。 | +| 0x10 | 16 | 通貨の変更:`currency`フィールドが指定されています。 | +| 0x20 | 32 | イシュアーの変更:`issuer`フィールドが指定されています。 | ## 関連項目 diff --git a/@l10n/ja/docs/concepts/tokens/fungible-tokens/rippling.md b/@l10n/ja/docs/concepts/tokens/fungible-tokens/rippling.md index 78b4ff53b4..c1d5ff31a9 100644 --- a/@l10n/ja/docs/concepts/tokens/fungible-tokens/rippling.md +++ b/@l10n/ja/docs/concepts/tokens/fungible-tokens/rippling.md @@ -2,11 +2,12 @@ html: rippling.html parent: trust-lines-and-issuing.html seo: - description: Ripplingは、複数当事者間でのトークン残高の自動ネット決済です。 + description: Ripplingは、複数当事者間でのトークン残高の自動ネット決済です。 labels: - トークン - クロスカレンシー --- + # Rippling XRP Ledgerでは、「Rippling」とは同一通貨の[トラストライン](index.md)を有する複数の接続当事者間での非可分なネット決済のプロセスを指しています。Ripplingはトークンの基幹的なプロセスです。Ripplingを利用すれば、同一イシュアーを信頼するユーザは、そのイシュアーを受動的な仲介機関として発行済み残高を相互に送金できるようになります。Ripplingは、受動的かつ双方向の[通貨取引オーダー](../decentralized-exchange/offers.md)のようなもので、制限がなく、通貨コードが同一でイシュアーが異なる2つの通貨間の為替レートは1:1です。 @@ -21,11 +22,11 @@ Ripplingは、支払[パス](paths.md)でのみ発生します。[XRP間の直 「Rippling」は、支払いを行うために複数のトラストラインが調整されたときに発生します。たとえば、AliceがCharlieにお金を借りており、さらにAliceはBobからもお金を借りている場合、XRP Ledgerではトラストラインは次のようになります: -[{% inline-svg file="/docs/img/noripple-01.svg" /%}](/docs/img/noripple-01.svg "Charlie --($10)-- Alice -- ($20) -- Bob") +[{% inline-svg file="/docs/img/noripple-01.svg" /%}](/docs/img/noripple-01.svg 'Charlie --($10)-- Alice -- ($20) -- Bob') BobがCharlieに$3を支払いたい場合、BobはAliceに対して「Alice、君に貸しているお金の中から$3をCharlieに支払ってくれ。」と言えます。AliceはBobに借りているお金の一部をCharlieに送金します。最終的にはトラストラインは次のようになります。 -[{% inline-svg file="/docs/img/noripple-02.svg" /%}](/docs/img/noripple-02.svg "Charlie --($13)-- Alice --($17)-- Bob") +[{% inline-svg file="/docs/img/noripple-02.svg" /%}](/docs/img/noripple-02.svg 'Charlie --($13)-- Alice --($17)-- Bob') 2つのアドレスが、アドレス間のトラストライン上の残高を調整することで相互に支払うこのプロセスを「Rippling」と呼びます。これはXRP Ledgerの有用で重要な機能です。Ripplingは、同一の[通貨コード][]を使用するトラストラインによってアドレスがリンクされている場合に起こります。イシュアーが同一でなくてもかまいません。実際、大規模なチェーンでは常にイシュアーが変更されます。 @@ -39,17 +40,17 @@ BobがCharlieに$3を支払いたい場合、BobはAliceに対して「Alice、 たとえば、Emilyが2つの異なる金融機関から発行されたお金を保有しているとします。 -[{% inline-svg file="/docs/img/noripple-03.svg" /%}](/docs/img/noripple-03.svg "Charlie --($10)-- 金融機関A --($1)-- Emily --($100)-- 金融機関B --($2)-- Daniel") +[{% inline-svg file="/docs/img/noripple-03.svg" /%}](/docs/img/noripple-03.svg 'Charlie --($10)-- 金融機関A --($1)-- Emily --($100)-- 金融機関B --($2)-- Daniel') CharlieはDanielに支払うため、Emilyのアドレスを通じてRipplingします。たとえば、CharlieがDanielに$10を支払うとします: -[{% inline-svg file="/docs/img/noripple-04.svg" /%}](/docs/img/noripple-04.svg "Charlie --($0)-- 金融機関A --($11)-- Emily --($90)-- 金融機関B --($12)-- Daniel") +[{% inline-svg file="/docs/img/noripple-04.svg" /%}](/docs/img/noripple-04.svg 'Charlie --($0)-- 金融機関A --($11)-- Emily --($90)-- 金融機関B --($12)-- Daniel') この場合、CharlieやDanielと面識のないEmilyは驚く可能性があります。さらに、金融機関Aが金融機関Bよりも高い出金手数料をEmilyに請求した場合、Emilyがコストを負担することになる可能性があります。NoRippleフラグはこの状況を回避するためのフラグです。Emilyが両方のトラストラインでNoRippleフラグを設定していれば、この2つのトラストラインを使用しているEmilyのアドレスを通じて、支払がRipplingされることはありません。 例: -[{% inline-svg file="/docs/img/noripple-05.svg" /%}](/docs/img/noripple-05.svg "Charlie --($10)-- 金融機関A --($1、NoRipple)-- Emily --($100、NoRipple)-- 金融機関B --($2)-- Daniel") +[{% inline-svg file="/docs/img/noripple-05.svg" /%}](/docs/img/noripple-05.svg 'Charlie --($10)-- 金融機関A --($1、NoRipple)-- Emily --($100、NoRipple)-- 金融機関B --($2)-- Daniel') このように、CharlieがEmilyのアドレスを通じてRipplingし、Danielに支払うという上記のシナリオは、不可能になります。 @@ -57,8 +58,7 @@ CharlieはDanielに支払うため、Emilyのアドレスを通じてRipplingし NoRippleフラグにより特定のパスが無効になり、無効になったパスは支払に使用できなくなります。パスが無効であると見なされるのは、パスが、あるアドレスに対してNoRippleが有効となっているトラストラインを通じて、そのアドレスノードに入り**かつ**そのノードから出た場合に限られます。 -[{% inline-svg file="/docs/img/noripple-06.ja.svg" /%}](/docs/img/noripple-06.ja.svg "処理を行うためには同一アドレスによって両方のトラストラインにNoRippleが設定されている必要があることを示す図") - +[{% inline-svg file="/docs/img/noripple-06.ja.svg" /%}](/docs/img/noripple-06.ja.svg '処理を行うためには同一アドレスによって両方のトラストラインにNoRippleが設定されている必要があることを示す図') ## DefaultRippleフラグ @@ -66,8 +66,8 @@ DefaultRippleフラグは、デフォルトで着信トラストラインでのR アカウントのDefaultRipple設定は、他者があなたに対してオープンしたトラストラインにのみ影響し、あなたが作成するトラストラインには影響しません。アカウントのDefaultRipple設定を変更する場合、変更前に作成したトラストラインでは既存のNoRipple設定が維持されます。アドレスの新しいデフォルトに合わせてトラストラインのNoRipple設定を変更するには、[TrustSetトランザクション][]を使用します。 - ## NoRippleを使用する + ### NoRippleを有効/無効にする @@ -76,14 +76,12 @@ DefaultRippleフラグは、デフォルトで着信トラストラインでのR [`rippled` API](../../../references/http-websocket-apis/index.md)でNoRippleフラグを有効にするには、`tfSetNoRipple`フラグを設定した[TrustSetトランザクション][]を送信します。NoRippleを無効にする(Ripplingを有効にする)には、`tfClearNoRipple`フラグを使用します。 - ### NoRippleステータスの確認 相互に信頼し合っている2つのアカウントの場合、NoRippleフラグはアカウントごとに管理されます。 [`rippled` API](../../../references/http-websocket-apis/index.md)でアドレスに関連付けられているトラストラインを確認するには、[account_linesメソッド][]を使用します。各トラストラインの`no_ripple`フィールドには、現在のアドレスがそのトラストラインに対してNoRippleフラグを有効にしているか否かが表示され、`no_ripple_peer`フィールドには、取引相手がNoRippleフラグを有効にしているか否かが表示されます。 - ## 関連項目 - **コンセプト:** diff --git a/@l10n/ja/docs/concepts/tokens/fungible-tokens/stablecoins/compliance-guidelines.md b/@l10n/ja/docs/concepts/tokens/fungible-tokens/stablecoins/compliance-guidelines.md index 58dffd05d4..6d2cb1c5ea 100644 --- a/@l10n/ja/docs/concepts/tokens/fungible-tokens/stablecoins/compliance-guidelines.md +++ b/@l10n/ja/docs/concepts/tokens/fungible-tokens/stablecoins/compliance-guidelines.md @@ -2,10 +2,11 @@ html: stablecoin-compliance-guidelines.html parent: stablecoins.html seo: - description: ステーブルコインの発行者は、現地の規制を遵守し、適切な機関に報告する責任があります。 + description: ステーブルコインの発行者は、現地の規制を遵守し、適切な機関に報告する責任があります。 labels: - トークン --- + # ステーブルコインのコンプライアンス指針 トークン発行者は、各国の規制を遵守し、適切な機関に報告する責任があります。規制は国や州によって異なりますが、以下のセクションで説明する報告やコンプライアンスの要件が含まれる場合があります。トークンを発行する前に、管轄区域やユースケースの要件について、専門家の法的助言を求める必要があります。以下のリソースは、背景情報として参考になる可能性があります。 @@ -30,8 +31,6 @@ KYCは、金融機関や関連企業にとって、リスク、特に法的リ - [金融活動作業部会(FATF)が定めたKYCに関する米国以外の基準について](http://www.fatf-gafi.org/publications/fatfrecommendations/documents/fatf-recommendations.html) - - ### マネーロンダリング対策(AML)およびテロ資金供与防止対策(CFT) マネーロンダリングとは、合法的な金融ルートや信頼できる機関を通じて合法的に資金を入手または分配できるように、資金源、性質、所有者を偽装することによって違法な資金を移動させるプロセスのことです。つまり、「汚いお金」を「きれいなお金」に変えることです。アンチマネーロンダリング(AML)とは、マネーロンダリングの発生を阻止するために設計された法律と手続きを指します。 @@ -44,16 +43,12 @@ KYCは、金融機関や関連企業にとって、リスク、特に法的リ - ["仮想通貨: 主要な定義と潜在的なAML/CFTリスク". FATF、2014年](http://www.fatf-gafi.org/publications/methodsandtrends/documents/virtual-currency-definitions-aml-cft-risk.html) - - ### 資金源 金融機関は、不正な資金がシステムを通過するのを防ぐために、顧客の資金源が犯罪行為と関連しているかどうかを合理的に判断する必要があります。 すべての顧客の正確な資金源を特定することは、管理上実行不可能な場合があります。その結果、規制当局の中には、すべての口座について特定の規制やガイダンスを提供しない場合もある。しかし、特定の場合には、当局は金融機関に対して資金源を特定し報告することを求めることができる。FATFのガイダンスでは、マネーロンダリングやテロ資金供与のリスクが高い場合(一般に「リスクに応じたアプローチ」と呼ばれる)、金融機関は顧客の資金源を特定することを含むがこれに限定されないデューデリジェンスの強化を行うことを勧告しています。 - - ### 疑わしい取引の報告 金融機関は、資金が犯罪行為に関連している可能性があると疑われる場合、適切な規制当局に疑わしい取引の届出/Suspicious Activity Report (SAR)を提出する必要があります。疑わしい取引を報告しなかった場合、金融機関は罰則を受ける可能性があります。 @@ -76,8 +71,6 @@ KYCは、金融機関や関連企業にとって、リスク、特に法的リ - 送金注文の金額、送金注文の実行日 - 受取人の金融機関の名称 - - 関連項目: - [ファンドの「トラベル」規制について: 質問と回答](https://www.fincen.gov/resources/statutes-regulations/guidance/funds-travel-regulations-questions-answers) @@ -86,17 +79,15 @@ KYCは、金融機関や関連企業にとって、リスク、特に法的リ - 米国では、Dodd Frank 1073 Electronic Fund Transfer Act (Regulation E)により、銀行は米国発の国際決済について、為替レート、手数料、外国の指定受取人が受け取る金額など、コストと配送条件に関する情報を提供することが義務付けられています。「Pre-payment disclosure」は国際電子決済を依頼する際に消費者に提供され、「Receiption disclosure」は消費者が送金を許可する際に消費者に提供されます。 - 関連項目 - - - [消費者金融保護局の説明による、銀行に対する規制とその適用範囲について](https://www.consumerfinance.gov/rules-policy/final-rules/electronic-fund-transfers-regulation-e/#rule) + 関連項目 + - [消費者金融保護局の説明による、銀行に対する規制とその適用範囲について](https://www.consumerfinance.gov/rules-policy/final-rules/electronic-fund-transfers-regulation-e/#rule) - 欧州連合(EU)では、EU資金移動規制により、マネーロンダリングやテロ資金供与を検知、調査、防止するために、送金元の銀行、受取人の銀行、仲介銀行がトランザクションの詳細に支払人と受取人の特定の情報を含めることが義務付けられています。 - 関連項目: + 関連項目: + - [EU規則(EC) No 1781/2006の説明](http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=OJ:L:2006:345:0001:0009:EN:PDF) - - [EU規則(EC) No 1781/2006の説明](http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=OJ:L:2006:345:0001:0009:EN:PDF) - - - [2017年6月26日より施行 資金移動に付随する情報に関する規則2015/847号](http://eur-lex.europa.eu/legal-content/EN/ALL/?uri=CELEX%3A32015R0847) + - [2017年6月26日より施行 資金移動に付随する情報に関する規則2015/847号](http://eur-lex.europa.eu/legal-content/EN/ALL/?uri=CELEX%3A32015R0847) ### 外国資産管理局(OFAC) @@ -106,20 +97,15 @@ KYCは、金融機関や関連企業にとって、リスク、特に法的リ - [OFAC関連資料の一覧](https://www.treasury.gov/resource-center/faqs/Sanctions/Pages/ques_index.aspx) - - ### 暗号資産・マネーサービス事業に関する指針 - 米国: + - [仮想通貨に関するFinCENのガイダンスと定義(2013年3月18日付)](https://www.fincen.gov/resources/statutes-regulations/guidance/application-fincens-regulations-persons-administering) - - [仮想通貨に関するFinCENのガイダンスと定義(2013年3月18日付)](https://www.fincen.gov/resources/statutes-regulations/guidance/application-fincens-regulations-persons-administering) - - - [FinCEN、仮想通貨のマイナーと投資家に関する2つの裁定を発表 2014年1月30日](https://www.fincen.gov/news/news-releases/fincen-publishes-two-rulings-virtual-currency-miners-and-investors) + - [FinCEN、仮想通貨のマイナーと投資家に関する2つの裁定を発表 2014年1月30日](https://www.fincen.gov/news/news-releases/fincen-publishes-two-rulings-virtual-currency-miners-and-investors) - ヨーロッパ: - - - [仮想通貨に関する欧州銀行監督機構意見書(2014年7月4日付)](http://www.eba.europa.eu/documents/10180/657547/EBA-Op-2014-08+Opinion+on+Virtual+Currencies.pdf) + - [仮想通貨に関する欧州銀行監督機構意見書(2014年7月4日付)](http://www.eba.europa.eu/documents/10180/657547/EBA-Op-2014-08+Opinion+on+Virtual+Currencies.pdf) - FATFの金融事業者向けガイダンス: - - - [金融活動作業部会、2009年7月](http://www.fatf-gafi.org/media/fatf/documents/reports/Guidance-RBA-money-value-transfer-services.pdf) + - [金融活動作業部会、2009年7月](http://www.fatf-gafi.org/media/fatf/documents/reports/Guidance-RBA-money-value-transfer-services.pdf) diff --git a/@l10n/ja/docs/concepts/tokens/fungible-tokens/stablecoins/configuration.md b/@l10n/ja/docs/concepts/tokens/fungible-tokens/stablecoins/configuration.md index 5a44b3a465..23bff83ef8 100644 --- a/@l10n/ja/docs/concepts/tokens/fungible-tokens/stablecoins/configuration.md +++ b/@l10n/ja/docs/concepts/tokens/fungible-tokens/stablecoins/configuration.md @@ -2,25 +2,24 @@ html: stablecoin-configuration.html parent: stablecoins.html seo: - description: ステーブルコインの設定を行い、ステーブルコインの機能を詳細に調整します。 + description: ステーブルコインの設定を行い、ステーブルコインの機能を詳細に調整します。 labels: - トークン --- + # ステーブルコイン発行者の設定 トークンの発行を始める前に、XRP Ledgerアカウントで設定する必要がある項目がいくつかあります。これらの設定の例については、[代替可能トークンの発行](../../../../tutorials/how-tos/use-tokens/issue-a-fungible-token.md)をご覧ください。 設定すべき項目は以下の通りです。 - -| 設定 | 備考 | -|-----------------------|------| -| Default Ripple | 発行者は、このフィールドを**必ず**有効にする必要があります。 | -| Deposit Authorization | 明示的に承認していないユーザからの入金をすべてブロックします。 | -| Require Auth | トークンの保持を、明示的に承認したユーザに限定します。 | +| 設定 | 備考 | +| --------------------- | -------------------------------------------------------------------------------- | +| Default Ripple | 発行者は、このフィールドを**必ず**有効にする必要があります。 | +| Deposit Authorization | 明示的に承認していないユーザからの入金をすべてブロックします。 | +| Require Auth | トークンの保持を、明示的に承認したユーザに限定します。 | | Tick Size | 分散型取引所の取引所為替レートを四捨五入して、より迅速な価格決定を可能にします。 | -| Transfer Fee | ユーザ同士がトークンを送信する際に、一定割合の手数料を徴収します。 | - +| Transfer Fee | ユーザ同士がトークンを送信する際に、一定割合の手数料を徴収します。 | ## Default Ripple @@ -30,7 +29,6 @@ Default Rippleフラグは、トラストラインの残高をデフォルトで 運用ウォレットやスタンバイウォレットなど、他のアドレスではDefault Rippleフラグを有効にすべきではありません。 - ## Deposit Authorization Deposit Authorizationの設定は、以下のいずれかを行わない限り、アカウントへのすべての入金をブロックします。 @@ -44,21 +42,18 @@ Deposit Authorizationは、不要なXRPの支払いをブロックするのに より詳細な情報は[Deposit Authorization](../../../accounts/depositauth.md)をご覧ください。 - ## Disallow Incoming Trust Line Disallow Incoming Trust Lineの設定は、他のユーザがアドレスにトラストラインを開くことを防ぎます。予防措置として、運用アドレスと待機アドレスでこの設定を有効にすることで、誤ってこれらのアカウントからトークンを発行できないようにします。発行アドレスではこの設定を有効にしないでください。 この設定を有効にするには、[AccountSetトランザクション](../../../../references/protocol/transactions/types/accountset.md)で`"SetFlag": 15` (`asfDisallowIncomingTrustline`)を設定します。 - ## Disallow XRP Disallow XRPの設定は、XRP Ledgerのユーザが誤ってXRPをアドレスに送信することを阻止するために設計されています。これは、XRPの受信と保持を意図していないアドレスからの不必要な返金コストと労力を削減するものです。なぜなら、そうすることでアドレスがXRPを誤って送金した場合に返金されずにXRPを失う可能性があるからです。クライアントアプリケーションは、デフォルトでDisallow XRPフラグを尊重すべきですが、ユーザがそれを無視することを許可する場合もあります。 DisallowXRPフラグは任意ですが、もしあなたが顧客からXRPを受け取るつもりがないのであれば、発行アドレスとすべての運用アドレスでこのフラグを有効にしておくとよいでしょう。 - ## Require Auth Require Authの設定は、事前にトラストラインを明示的に承認しない限り、発行したトークンをユーザが保持することをブロックします。XRP Ledger内で誰があなたのトークンを保持するかが重要である場合、規制要件を満たすためにこの設定を使用することができます。しかし、この設定は、ユーザへの承認がトークンを使用するためのボトルネックとなるため、トークンの利便性を低下させる可能性があります。 @@ -67,7 +62,6 @@ Require Authの設定は、事前にトラストラインを明示的に承認 詳しくは[認可トラストライン](../authorized-trust-lines.md)をご覧ください。 - ## Tick Size Tick Sizeは、[分散型取引所](../../decentralized-exchange/index.md)で為替レートを計算する際に使用する小数点以下の桁数を制御する設定です。Tick Sizeを大きくすると、より精度が高くなり、さまざまな取引の金額で丸め込みが少なくなります。取引は主に取引レートに基づいてランク付けされるため、トレーダーがリストの上位にわずかな金額を提供することができるため、精度が高すぎると不都合になることがあります。Tick Sizeを小さくすると、オークションの最低入札額と同じような効果があり、無関係な小額を徐々に入札する時間と労力が省けます。しかし、Tick Sizeを小さくすると四捨五入が多くなり、取引コストが高くなります。また、四捨五入前は完全に一致するように見えた2つのオファーが、四捨五入後は一致しなくなるという意外な結果になることもあります。 @@ -78,7 +72,6 @@ Tick Sizeは取引レートの精度を制御するだけで、トークン自 詳しくは[Tick Size](../../decentralized-exchange/ticksize.md)をご覧ください。 - ## Transfer Fees Transfer Feesは、ユーザ同士がトークンを送金する際に、一定割合の手数料を請求するものです。送金手数料は、トークンを発行したり、発行アドレスで直接トークンを交換したりする場合には適用されません。(ユーザが発行アドレスに送金するときには適用されません。)同じアドレスから複数のトークンを発行する場合、すべてのトークンに対して同じ送金手数料が適用されます。 @@ -89,7 +82,6 @@ Transfer Feesは、ユーザ同士がトークンを送金する際に、一定 詳しくは[送金手数料](../transfer-fees.md)をご覧ください。 - ### 運用アドレスと待機アドレスによる送金手数料 運用アドレスや待機アドレスを含むすべてのXRP Ledgerアドレスは、トークンを送信する際に発行者の送金手数料がかかります。送金手数料をゼロ以外に設定した場合、運用アドレスや待機アドレスから支払いを行う際に、(送金手数料を支払うために)余分に送金しなければなりません。つまり、これらのアドレスは、支払いを行うたびに、あなたの発行アドレスが作った残高を少し返金する必要があります。 diff --git a/@l10n/ja/docs/concepts/tokens/fungible-tokens/stablecoins/index.md b/@l10n/ja/docs/concepts/tokens/fungible-tokens/stablecoins/index.md index c97b7aeaef..88bd79cc72 100644 --- a/@l10n/ja/docs/concepts/tokens/fungible-tokens/stablecoins/index.md +++ b/@l10n/ja/docs/concepts/tokens/fungible-tokens/stablecoins/index.md @@ -2,11 +2,12 @@ html: stablecoins.html parent: trust-lines-and-issuing.html seo: - description: XRP Ledger上で取引される一般的なステーブルコインには5種類あります。 + description: XRP Ledger上で取引される一般的なステーブルコインには5種類あります。 labels: - XRP - ステーブルコイン --- + # ステーブルコイン ステーブルコインは、XRP Ledgerの外の資産の価値を保持し、レジャー上の同等の価値を表すトークンを発行します。この種類の発行者は、そのサービスを通じてXRP Ledgerの内外に通貨を移動させることができるため、 _ゲートウェイ_ と呼ばれることがあります。もしトークンの裏付けとなる資産が、レジャー上のトークンと同じ金額と額面であれば、そのトークンは"ステーブルコイン"とみなすことができます。 diff --git a/@l10n/ja/docs/concepts/tokens/fungible-tokens/stablecoins/precautions.md b/@l10n/ja/docs/concepts/tokens/fungible-tokens/stablecoins/precautions.md index aaa073b1ed..d9a54b3ed1 100644 --- a/@l10n/ja/docs/concepts/tokens/fungible-tokens/stablecoins/precautions.md +++ b/@l10n/ja/docs/concepts/tokens/fungible-tokens/stablecoins/precautions.md @@ -2,20 +2,19 @@ html: stablecoin-precautions.html parent: stablecoins.html seo: - description: XRPLでステーブルコイン資金の入出金時の注意点を説明します。 + description: XRPLでステーブルコイン資金の入出金時の注意点を説明します。 labels: - トークン --- + # ステーブルコインに関する注意事項 XRP Ledgerとの間の決済処理には当然リスクが伴いますので、発行者はこれらの処理を実施する際に十分な注意を払う必要があります。ステーブルコインの発行者としては、以下の注意点を考慮する必要があります。 - ## インフラストラクチャ あなた自身のセキュリティとネットワークの安定性のために、XRP Ledgerを利用する事業者は、1つの[バリデータ](../../../networks-and-servers/rippled-server-modes.md#validators)を含む[独自のXRP Ledgerサーバ](../../../../infrastructure/installation/index.md)を実行すべきです。 - ## ツールのセキュリティ XRP Ledgerのトランザクションを送信する際には、秘密鍵を使って署名する必要があります。秘密鍵は、あなたのXRP Ledgerアドレスを完全にコントロールします。秘密鍵を他人が運営するサーバに決して送らないでください。自身のサーバを使うか、クライアントライブラリを使ってローカルでトランザクションに署名してください。安全な設定の手順と例については、[安全な署名の設定](../../../transactions/secure-signing.md)をご覧ください。 @@ -29,7 +28,6 @@ XRP Ledgerへの接続方法は、ニーズや既存のソフトウェアに応 ただし、公式な配布チャネルから信頼できるツールだけを使用するように注意してください。悪意のあるサーバ、ライブラリ、アプリは、攻撃者に秘密鍵を漏らすように設定されている可能性があります。 - ## XRP Ledgerからの送金 XRP Ledgerから送金を受ける際、プロセスや統合ソフトウェアが悪用されることのないよう、いつ送金が確定したかを把握し、正しい金額を顧客にクレジットすることが重要です。詳細とよくある落とし穴については、[入金のモニタリング](../../../payment-types/robustly-monitoring-for-payments.md)をご覧ください。 @@ -38,7 +36,6 @@ XRP Ledgerから送金を受ける際、プロセスや統合ソフトウェア XRP Ledgerからの支払いを処理する前に、顧客の身元を確認してください。そうすることで、匿名の攻撃者による詐欺が難しくなります。ほとんどのマネーロンダリング対策規制は、いずれにせよこの確認を要求しています。XRP Ledgerから送金するユーザは、XRP Ledgerで最初にお金を受け取ったユーザとは異なる可能性があるため、これは特に重要です。詳しくは、[ステーブルコインのコンプライアンス指針](compliance-guidelines.md)をご覧ください。 - ## XRP Ledgerへの送金 XRP Ledgerに送金を行う際には、手数料の過払いや迂回経路を避けるため、ベストプラクティスに従ってください。詳しくは[顧客への送金](../../../payment-types/sending-payments-to-customers.md)をご覧ください。 @@ -47,7 +44,6 @@ XRP Ledgerに送金を行う際には、手数料の過払いや迂回経路を さらに、停電やネットワーク停止のようなまれな状況でも、XRP Ledgerのトランザクションの最終結果を確実に知ることができるように、[信頼できるトランザクションの送信](../../../transactions/reliable-transaction-submission.md)に従ってください。 - ## その他の注意事項 - XRP Ledger内の債務と残高を追跡し、担保口座の資産と比較してください。両者が一致しない場合は、不一致を解決するまで引き出しと入金の処理を停止してください。 diff --git a/@l10n/ja/docs/concepts/tokens/fungible-tokens/stablecoins/settings.md b/@l10n/ja/docs/concepts/tokens/fungible-tokens/stablecoins/settings.md index 3405dd50f7..928f9a20e6 100644 --- a/@l10n/ja/docs/concepts/tokens/fungible-tokens/stablecoins/settings.md +++ b/@l10n/ja/docs/concepts/tokens/fungible-tokens/stablecoins/settings.md @@ -2,11 +2,12 @@ html: stablecoin-settings.html parent: stablecoins.html seo: - description: Settings to configure before issuing your stablecoin. + description: Settings to configure before issuing your stablecoin. labels: - XRP - ステーブルコイン --- + # ステーブルコインの設定 新しいステーブルコインを発行する前に、最初にコインを発行すると変更不可能とする設定を行う必要があります。 @@ -25,7 +26,6 @@ labels: スタンバイアカウントと運用アカウントを使用することで、発行アカウントをハッキング攻撃から守ることができ、またステーブルコインの作成と破棄を監視しやすくなります。 - ## 取引手数料の設定 送金手数料の設定は、アカウント間でトークンを送金する際にパーセンテージの手数料をユーザに請求します。 @@ -34,7 +34,6 @@ labels: 詳しくは[送金手数料](../transfer-fees.md)をご覧ください。 - ## ティックサイズの設定 ティックサイズは、[分散型取引所](../../decentralized-exchange/index.md)で取引レートを計算する際に使用される小数点以下の桁数を制御します。ティックサイズが大きいほど(小数点以下の桁数が多いほど)精度が高くなり、さまざまな取引金額の四捨五入が少なくなります。ティックサイズが小さいほど、オークションにおける最低入札額と同じように機能し、無駄に小さい金額で徐々に価格を競り上げる時間と労力を節約できます。 @@ -43,7 +42,6 @@ labels: [ティックサイズ](../../decentralized-exchange/ticksize.md)をご覧ください。 - ## Default Rippleフラグの設定 Default Rippleフラグはトラストラインの残高をデフォルトでRipple(波及)させるかどうかを制御します。Ripplingは顧客間でトークンを送ったり取引したりすることを可能にするものです。発行者はその発行アドレスへの全てのトラストラインでRipplingを許可しなければなりません(MUST)。 @@ -52,7 +50,6 @@ Default Rippleフラグはトラストラインの残高をデフォルトでRip [Rippling](../rippling.md)をご覧ください。 - ## 宛先タグの有効化 ステーブルコインのアプリケーションが複数の顧客の代わりにトランザクションを処理する場合、どのアカウントに入金すべきかがわからないことがあります。宛先タグは、送金者に受取人や送金先を指定させることで、このような状況を回避するのに役立ちます。RequireDestフラグを有効にするには、`AccountSet`トランザクションの`SetFlag`フィールドに`asfRequireDest`値(1)を設定してください。 @@ -63,14 +60,12 @@ Default Rippleフラグはトラストラインの残高をデフォルトでRip ステーブルコインの作成と配布をコントロールするには、いくつかのオプションがあります。 - ### 認可トラストライン KYC(Know Your Customer)やAML(Anti-Money Laundering)などのコンプライアンスルールに従う必要がある場合、トラストラインを使用して、ステーブルコインの配布を許可されたプールを作成することができます。これにより、資金が誰に送金されるかを確認することができます。 [認可トラストライン](../authorized-trust-lines.md)をご覧ください。 - ### Freezeフラグ 保有者アカウント内のステーブルコインをフリーズすることができます。これは、詐欺行為が疑われる場合、または保有を強制する場合に行うことができます。個々のトラストラインをフリーズすることも、グローバルにフリーズすることもできます。 @@ -79,7 +74,6 @@ KYC(Know Your Customer)やAML(Anti-Money Laundering)などのコンプライア [トークンのフリーズ](../freezes.md)をご覧ください。 - ### Clawbackフラグ Clawbackにより、特定の状況下でトラストラインからステーブルコインを回収(クローバック)することができます。これにより、アカウントへのアクセス不能や悪意のある活動などの課題に対応する能力が追加されます。 diff --git a/@l10n/ja/docs/concepts/tokens/fungible-tokens/transfer-fees.md b/@l10n/ja/docs/concepts/tokens/fungible-tokens/transfer-fees.md index 6697be7b82..ee2a8c2fa3 100644 --- a/@l10n/ja/docs/concepts/tokens/fungible-tokens/transfer-fees.md +++ b/@l10n/ja/docs/concepts/tokens/fungible-tokens/transfer-fees.md @@ -2,11 +2,12 @@ html: transfer-fees.html parent: tokens.html seo: - description: トークンの発行者は、自己のトークンの送金に手数料を課すことができます。 + description: トークンの発行者は、自己のトークンの送金に手数料を課すことができます。 labels: - 手数料 - トークン --- + # 送金手数料 [トークン](index.md)の発行者は、`TransferRate`の設定を使用して、ユーザに対し _送金手数料_ を請求できます。この送金の送金元からは送金手数料に基づく割合で引き落とされ、送金先へ入金されます。差額が送金手数料となります。 @@ -25,13 +26,11 @@ XRPは発行者が存在しないため、送金手数料がかかることは 以下の図は、AliceからCharlieへの2EUR.ACMEのXRP Ledger支払いを、送金手数料1%で表しています。 -[{% inline-svg file="/docs/img/transfer-fees.ja.svg" /%}](/docs/img/transfer-fees.ja.svg "Aliceが2,02€を送金し、Charlieが2,00€を受け取り、ACMEはXRP Ledgerで0,02€を受け取ります。") +[{% inline-svg file="/docs/img/transfer-fees.ja.svg" /%}](/docs/img/transfer-fees.ja.svg 'Aliceが2,02€を送金し、Charlieが2,00€を受け取り、ACMEはXRP Ledgerで0,02€を受け取ります。') 会計用語では、Alice、ACME、Charlieの貸借対照表はこのように変わっているでしょう。 -[{% inline-svg file="/docs/img/transfer-fees-balance-sheets.ja.svg" /%}](/docs/img/transfer-fees-balance-sheets.ja.svg "Aliceの資産は2,02€減少、Charlieは2,00€増加、ACMEの負債は0,02€減少。") - - +[{% inline-svg file="/docs/img/transfer-fees-balance-sheets.ja.svg" /%}](/docs/img/transfer-fees-balance-sheets.ja.svg 'Aliceの資産は2,02€減少、Charlieは2,00€増加、ACMEの負債は0,02€減少。') ## ペイメントパスでの送金手数料 @@ -39,15 +38,13 @@ XRPは発行者が存在しないため、送金手数料がかかることは 送金手数料は、各送金においてイシュアンスが発行アカウントを通じて当事者間を移動するたびに適用されます。さらに複雑なトランザクションでは、手数料が複数回適用されます。送金手数料は、送金の終わりの時点から逆方向に適用されるので、最終的には支払いの送金者がすべての手数料をカバーするのに十分な額を送金する必要があります。例: -[{% inline-svg file="/docs/img/transfer-fees-in-paths.ja.svg" /%}](/docs/img/transfer-fees-in-paths.ja.svg "手数料が適用されたクロスカレンシー支払いの図") +[{% inline-svg file="/docs/img/transfer-fees-in-paths.ja.svg" /%}](/docs/img/transfer-fees-in-paths.ja.svg '手数料が適用されたクロスカレンシー支払いの図') このシナリオでは、ACMEが発行したEURをSalazar(送金元)が保有しており、WayGateが発行した100 USDをRosa(受取人)に送金したいと思っています。FXMakerはオーダーブックで最も良いレート(1 USD.WayGate = 0.9 EUR.ACME)のオファーを提供する通貨取引業者です。もし手数料がなければ、Salazarは90 EURを送金すればRosaに100 USDを送金することができます。しかしながら、ACMEで1%の送金手数料が発生し、WayGateで0.2%の送金手数料が発生します。つまり、次のようになります。 -* Rosaが100 USD.WayGateを受領するには、FXMakerから100.20 USD.WayGateを送金する必要があります。 -* 100.20 USD.WayGateを送金する場合のFXMakerの現在の買値は90.18 EUR.ACMEです。 -* FXMakerが90.18 EUR.ACMEを受領するには、Salazarが91.0818 EUR.ACMEを送金する必要があります。 - - +- Rosaが100 USD.WayGateを受領するには、FXMakerから100.20 USD.WayGateを送金する必要があります。 +- 100.20 USD.WayGateを送金する場合のFXMakerの現在の買値は90.18 EUR.ACMEです。 +- FXMakerが90.18 EUR.ACMEを受領するには、Salazarが91.0818 EUR.ACMEを送金する必要があります。 # 技術詳細 diff --git a/@l10n/ja/docs/concepts/tokens/index.md b/@l10n/ja/docs/concepts/tokens/index.md index fbd8964f1c..e52f24e604 100644 --- a/@l10n/ja/docs/concepts/tokens/index.md +++ b/@l10n/ja/docs/concepts/tokens/index.md @@ -2,10 +2,11 @@ parent: concepts.html html: tokens.html seo: - description: XRP Ledger上でデジタルな価値を表すトークンを作成することができます。 + description: XRP Ledger上でデジタルな価値を表すトークンを作成することができます。 labels: - トークン --- + # トークン XRP以外のすべての資産は、XRP Ledgerでは **トークン** として扱うことができます。通常のトークンは、アカウント間の[トラストライン](fungible-tokens/index.md) と呼ばれる関係で管理されます。すべてのアカウントは、トークンを保有することを許可する他のアカウントにはトークンを発行できますが、トークンを必要としないアカウントに一方的にトークンを配付することはできません。トークンは、台帳の外に存在する資産に裏付けられた「ステーブルコイン」、XRP Ledger上で独自に作成された純粋なデジタルトークン、コミュニティクレジットなど、様々な種類の価値を表すことが出来ます。 diff --git a/@l10n/ja/docs/concepts/tokens/nfts/authorizing-another-minter.md b/@l10n/ja/docs/concepts/tokens/nfts/authorizing-another-minter.md index 3371591b58..d7e74b99ff 100644 --- a/@l10n/ja/docs/concepts/tokens/nfts/authorizing-another-minter.md +++ b/@l10n/ja/docs/concepts/tokens/nfts/authorizing-another-minter.md @@ -2,10 +2,11 @@ html: nftoken-authorized-minting.html parent: non-fungible-tokens.html seo: - description: NFTのMintを他のアカウントに代行してもらうことができます。 + description: NFTのMintを他のアカウントに代行してもらうことができます。 labels: - - 非代替性トークン, NFT + - 非代替性トークン, NFT --- + # NFT処理を他のアカウントに委任 各アカウントは、自分に代わってNFTをMintすることができる認可されたMinterを最大一人設定することができまます。認可Minter機能を利用することで、クリエイターは別のアカウントにNFTをMintさせることができ、より多くのNFTを作ることに集中することができます。 @@ -16,16 +17,16 @@ labels: ```js tx_json = { - "TransactionType": "AccountSet", - "Account": "rrE5EgHN4DfjXhR9USecudHm7UyhTYq6m", - "NFTokenMinter": "r3riWB2TDWRmwmT7FRKdRHjqm6efYu4s9C", - "SetFlag": xrpl.AccountSetAsfFlags.asfAuthorizedNFTokenMinter + TransactionType: 'AccountSet', + Account: 'rrE5EgHN4DfjXhR9USecudHm7UyhTYq6m', + NFTokenMinter: 'r3riWB2TDWRmwmT7FRKdRHjqm6efYu4s9C', + SetFlag: xrpl.AccountSetAsfFlags.asfAuthorizedNFTokenMinter, } ``` `NFTokenMinter` 同じXRP Ledgerインスタンス上のアカウントのIDです。`asfAuthorizedNFTokenMinter`フラグは`NFTokenMinter`に指定するアカウントが`Account`の代理としてNFTをMintすることを許可します。 -*注記*: `asfAuthorizedNFTokenMinter`フラグは`AccountSet`トランザクションでのみ使用されます。これは、トランザクションがAccountRoot上のNFTokenMinterフィールドの存在または値に影響を与えるかどうかを示します。実際、AccountRootには対応するフラグはありません。 +_注記_: `asfAuthorizedNFTokenMinter`フラグは`AccountSet`トランザクションでのみ使用されます。これは、トランザクションがAccountRoot上のNFTokenMinterフィールドの存在または値に影響を与えるかどうかを示します。実際、AccountRootには対応するフラグはありません。 ## 認可Minterの割り当て解除 @@ -33,9 +34,9 @@ tx_json = { ```js tx_json = { - "TransactionType": "AccountSet", - "Account": "rrE5EgHN4DfjXhR9USecudHm7UyhTYq6m", - "ClearFlag": xrpl.AccountSetAsfFlags.asfAuthorizedNFTokenMinter + TransactionType: 'AccountSet', + Account: 'rrE5EgHN4DfjXhR9USecudHm7UyhTYq6m', + ClearFlag: xrpl.AccountSetAsfFlags.asfAuthorizedNFTokenMinter, } ``` @@ -45,13 +46,13 @@ tx_json = { ```js const transactionBlob = { - "TransactionType": "NFTokenMint", - "Account": "r3riWB2TDWRmwmT7FRKdRHjqm6efYu4s9C", - "URI": xrpl.convertStringToHex("ipfs://bafybeigdyrzt5sfp7udm7hu76uh7y26nf4dfuylqabf3oclgtqy55fbzdi"), - "Flags": 8, - "TransferFee": 5000, - "NFTokenTaxon": 0, - "Issuer": "rrE5EgHN4DfjXhR9USecudHm7UyhTYq6m", // 別アカウントでMintする際に必要 + TransactionType: 'NFTokenMint', + Account: 'r3riWB2TDWRmwmT7FRKdRHjqm6efYu4s9C', + URI: xrpl.convertStringToHex('ipfs://bafybeigdyrzt5sfp7udm7hu76uh7y26nf4dfuylqabf3oclgtqy55fbzdi'), + Flags: 8, + TransferFee: 5000, + NFTokenTaxon: 0, + Issuer: 'rrE5EgHN4DfjXhR9USecudHm7UyhTYq6m', // 別アカウントでMintする際に必要 } ``` diff --git a/@l10n/ja/docs/concepts/tokens/nfts/batch-minting.md b/@l10n/ja/docs/concepts/tokens/nfts/batch-minting.md index 1671a6bfb8..54147d6259 100644 --- a/@l10n/ja/docs/concepts/tokens/nfts/batch-minting.md +++ b/@l10n/ja/docs/concepts/tokens/nfts/batch-minting.md @@ -2,9 +2,9 @@ html: nftoken-batch-minting.html parent: non-fungible-tokens.html seo: - description: NFTokenオブジェクトを一括でMintする。 + description: NFTokenオブジェクトを一括でMintする。 labels: - - 非代替性トークン, NFT + - 非代替性トークン, NFT --- # NFTのバッチMint @@ -17,8 +17,8 @@ NFTokenオブジェクトを一括でMintする方法には、一般的に、オ ### メリット -* 売れ残りのNFTokenオブジェクトを保有するための準備金が発生しません。 -* 売れると分かった時点でリアルタイムにNFTokenオブジェクトをMintします。 +- 売れ残りのNFTokenオブジェクトを保有するための準備金が発生しません。 +- 売れると分かった時点でリアルタイムにNFTokenオブジェクトをMintします。 ### デメリット @@ -32,8 +32,8 @@ NFTokenオブジェクトの初回販売以前の市場活動は、XRP Ledgerに ### メリット -* NFToken オブジェクトは事前にMintされます。 -* NFTokenオブジェクトの初回販売の市場活動は台帳に記録されます。 +- NFToken オブジェクトは事前にMintされます。 +- NFTokenオブジェクトの初回販売の市場活動は台帳に記録されます。 ### デメリット diff --git a/@l10n/ja/docs/concepts/tokens/nfts/collections.md b/@l10n/ja/docs/concepts/tokens/nfts/collections.md index 0be5b00aec..906a74d064 100644 --- a/@l10n/ja/docs/concepts/tokens/nfts/collections.md +++ b/@l10n/ja/docs/concepts/tokens/nfts/collections.md @@ -2,10 +2,11 @@ html: nft-collections.html parent: non-fungible-tokens.html seo: - description: NFTのTaxonフィールドを使用して、NFTをコレクションとしてミントすることができます。 + description: NFTのTaxonフィールドを使用して、NFTをコレクションとしてミントすることができます。 labels: - - 非代替性トークン, NFT + - 非代替性トークン, NFT --- + # NFTのコレクション化 `NFTokenTaxon`フィールドを使用すると、NFTをコレクションにグループ化することができます。ミント担当者は、`0x0`から`0xFFFFFFF`までの任意の数値を選択し、NFTを作成する際にそれを割り当てることができます。Taxon(分類群)の定義付けは完全に自由です。 diff --git a/@l10n/ja/docs/concepts/tokens/nfts/dynamic-nfts.md b/@l10n/ja/docs/concepts/tokens/nfts/dynamic-nfts.md index b85facea43..7f278d1971 100644 --- a/@l10n/ja/docs/concepts/tokens/nfts/dynamic-nfts.md +++ b/@l10n/ja/docs/concepts/tokens/nfts/dynamic-nfts.md @@ -1,6 +1,6 @@ --- seo: - description: ダイナミックNFTを作成し、URIを変更して参照されるデータオブジェクトを更新するオプションを提供します。 + description: ダイナミックNFTを作成し、URIを変更して参照されるデータオブジェクトを更新するオプションを提供します。 labels: - 非代替性トークン, NFT --- @@ -27,6 +27,6 @@ labels: "Fee": "10", "Sequence": 33, "NFTokenID": "0008C350C182B4F213B82CCFA4C6F59AD76F0AFCFBDF04D5A048C0A300000007", - "URI": "697066733A2F2F62616679626569636D6E73347A736F6C686C6976346C746D6E356B697062776373637134616C70736D6C6179696970666B73746B736D3472746B652F5665742E706E67", - } + "URI": "697066733A2F2F62616679626569636D6E73347A736F6C686C6976346C746D6E356B697062776373637134616C70736D6C6179696970666B73746B736D3472746B652F5665742E706E67" +} ``` diff --git a/@l10n/ja/docs/concepts/tokens/nfts/guaranteeing-a-fixed-supply.md b/@l10n/ja/docs/concepts/tokens/nfts/guaranteeing-a-fixed-supply.md index e819a093a9..7f9370ebfa 100644 --- a/@l10n/ja/docs/concepts/tokens/nfts/guaranteeing-a-fixed-supply.md +++ b/@l10n/ja/docs/concepts/tokens/nfts/guaranteeing-a-fixed-supply.md @@ -2,10 +2,11 @@ html: nft-fixed-supply.html parent: non-fungible-tokens.html seo: - description: 新しいアカウントを使って一定数のNFTをミントし、そのアカウントをブラックホール化します。 + description: 新しいアカウントを使って一定数のNFTをミントし、そのアカウントをブラックホール化します。 labels: - 非代替性トークン, NFT --- + # NFTの固定供給 プロジェクトによっては、発行アカウントから一定数以上のNFTがミントされないことを保証したい場合があります。 diff --git a/@l10n/ja/docs/concepts/tokens/nfts/index.md b/@l10n/ja/docs/concepts/tokens/nfts/index.md index 25876f970e..6432f896bc 100644 --- a/@l10n/ja/docs/concepts/tokens/nfts/index.md +++ b/@l10n/ja/docs/concepts/tokens/nfts/index.md @@ -2,9 +2,9 @@ html: non-fungible-tokens.html parent: tokens.html seo: - description: XRPL NFTを紹介します。 + description: XRPL NFTを紹介します。 labels: - - 非代替性トークン, NFT + - 非代替性トークン, NFT --- # 非代替性トークン(NFT) @@ -28,7 +28,7 @@ XRP Ledgerでは、容量を節約するために、一つのアカウントで - トークンを一意に定義する各種識別データ。 - 発行者が、現在の保有者に関係なく、トークンを焼却できるかどうか。 - トークンの保持者がトークンを他者に転送できるかどうか。(`NFToken`は常に発行者に直接送信したり、発行者から送信することが可能です)。 - - 転送が許可されている場合、発行者は販売価格に対する一定の割合で手数料を徴収することができます。 + - 転送が許可されている場合、発行者は販売価格に対する一定の割合で手数料を徴収することができます。 - NFTokenを[トークン](../index.md)で売却できるか、XRPのみでしか売却できないか。 ## `NFToken`のライフサイクル @@ -37,7 +37,7 @@ XRP Ledgerでは、容量を節約するために、一つのアカウントで [NFTokenBurnトランザクション][]を使用して、自分が所有する`NFToken`を破棄することができます。発行者が`tfBurnable`フラグを有効にしてトークンを発行した場合、発行者は現在の所有者に関係なくトークンを破棄することが可能です。(例えば、あるイベントのチケットを表すトークンである場合、そのチケットをある時点で消費するといった場合に便利です)。 -![The NFT Lifecycle](/docs/img/nft-lifecycle.png "NFT Lifecycle Image") +![The NFT Lifecycle](/docs/img/nft-lifecycle.png 'NFT Lifecycle Image') `NFToken`オブジェクトの転送に関する詳細は、[XRP Ledger上でNFTokenを売買する](trading.md)をご覧ください。 diff --git a/@l10n/ja/docs/concepts/tokens/nfts/nft-apis.md b/@l10n/ja/docs/concepts/tokens/nfts/nft-apis.md index 03978265b3..b10a8ce99a 100644 --- a/@l10n/ja/docs/concepts/tokens/nfts/nft-apis.md +++ b/@l10n/ja/docs/concepts/tokens/nfts/nft-apis.md @@ -2,10 +2,11 @@ html: nft-apis.html parent: non-fungible-tokens.html seo: - description: 専用のAPIを使用すると、有用なNFTメタデータにアクセスできます。 + description: 専用のAPIを使用すると、有用なNFTメタデータにアクセスできます。 labels: - 非代替性トークン, NFT --- + # NFTのAPI このページでは、NFTに関連するトランザクションとリクエストを一覧でご紹介します。 @@ -14,8 +15,8 @@ labels: - [NFToken][]データ型 - 台帳に保存されるNFTのオブジェクト。 - レジャーオブジェクト - - [NFTokenOfferオブジェクト][] - NFTを売買するためのオファー。 - - [NFTokenPageオブジェクト][] - NFTページは最大32個のNFTオブジェクトを保持します。実際には、各NFTページは通常16~24個のNFTを保持します。 + - [NFTokenOfferオブジェクト][] - NFTを売買するためのオファー。 + - [NFTokenPageオブジェクト][] - NFTページは最大32個のNFTオブジェクトを保持します。実際には、各NFTページは通常16~24個のNFTを保持します。 ## NFTのトランザクション @@ -46,7 +47,7 @@ Clioサーバは、キャッシュに基づいて情報のリクエストを処 - [nft_info](../../../references/http-websocket-apis/public-api-methods/clio-methods/nft_info.md) - 指定されたNFTに関する現在のステータスを取得します。 - [nft_history](../../../references/http-websocket-apis/public-api-methods/clio-methods/nft_history.md) - 指定されたNFTの過去のトランザクションメタデータを取得します。 - diff --git a/@l10n/ja/docs/concepts/tokens/nfts/non-transferable-tokens.md b/@l10n/ja/docs/concepts/tokens/nfts/non-transferable-tokens.md index 15986179db..7a916cb2d2 100644 --- a/@l10n/ja/docs/concepts/tokens/nfts/non-transferable-tokens.md +++ b/@l10n/ja/docs/concepts/tokens/nfts/non-transferable-tokens.md @@ -1,9 +1,10 @@ --- seo: - description: ユーザ間で売買ができないNFTを作成する + description: ユーザ間で売買ができないNFTを作成する labels: - 非代替性トークン, NFT --- + # 譲渡不可トークン XRP Ledgerは、[非代替性トークン](./index.md)の一種として、ソウルバウンドトークン(SBT/SoulBound Token)と呼ばれることもある譲渡不可トークン(NTT/Non-Transferable Token)をサポートしています。譲渡不可トークンは、証明書やIDトークン、ゲームにおける実績、あるいはトークンの目的が特定の一人に限定されるような場合に使用されます。 diff --git a/@l10n/ja/docs/concepts/tokens/nfts/payload-storage.md b/@l10n/ja/docs/concepts/tokens/nfts/payload-storage.md index d57e6fb9dc..48155614b5 100644 --- a/@l10n/ja/docs/concepts/tokens/nfts/payload-storage.md +++ b/@l10n/ja/docs/concepts/tokens/nfts/payload-storage.md @@ -2,10 +2,11 @@ html: nft-storage.html parent: non-fungible-tokens.html seo: - description: NFTのペイロードのストレージオプション。 + description: NFTのペイロードのストレージオプション。 labels: - 非代替性トークン, NFT --- + # NFTペイロードのストレージ NFTはブロックチェーン上で作成されます。しかし、メディア、メタデータ、属性を含むNFTのコンテンツは、XRP Ledger上、XRP Ledger外の分散型、XRP Ledger外の中央集権型など、様々な方法で保存することができます。 diff --git a/@l10n/ja/docs/concepts/tokens/nfts/reserve-requirements.md b/@l10n/ja/docs/concepts/tokens/nfts/reserve-requirements.md index 143c29b473..374736b76c 100644 --- a/@l10n/ja/docs/concepts/tokens/nfts/reserve-requirements.md +++ b/@l10n/ja/docs/concepts/tokens/nfts/reserve-requirements.md @@ -2,10 +2,11 @@ html: nft-reserve-requirements.html parent: non-fungible-tokens.html seo: - description: NFTのMintと保有に必要な準備金について学びましょう。 + description: NFTのMintと保有に必要な準備金について学びましょう。 labels: - - 非代替性トークン, NFT + - 非代替性トークン, NFT --- + # NFTの準備金要件 NFTをミントし、保有し、販売するためには、XRPを準備金として保有しておく必要があります。準備金の額は急激に膨れ上がる可能性があります。準備金の要件を理解することは、ビジネスケースに最適なアプローチを選択するのに役立ちます。 @@ -27,12 +28,12 @@ NFTの場合、 _オブジェクト_ はそれぞれのNFTを指すのではな NFTの保有枚数や保有ページ数によって、所有者準備金の総額がどの程度になるか、次の表に例を示します。 -| NFTの保有数 | 最良のケース | 標準的なケース | 最悪のケース | -|:------------|:----------|:-------------|:-----------| -| 32以下 | 0.2 XRP | 0.2 XRP | 0.2 XRP | -| 50 | 0.4 XRP | 0.6 XRP | 0.8 XRP | -| 200 | 1.4 XRP | 1.8 XRP | 2.6 XRP | -| 1000 | 6.4 XRP | 8.4 XRP | 12.6 XRP | +| NFTの保有数 | 最良のケース | 標準的なケース | 最悪のケース | +| :---------- | :----------- | :------------- | :----------- | +| 32以下 | 0.2 XRP | 0.2 XRP | 0.2 XRP | +| 50 | 0.4 XRP | 0.6 XRP | 0.8 XRP | +| 200 | 1.4 XRP | 1.8 XRP | 2.6 XRP | +| 1000 | 6.4 XRP | 8.4 XRP | 12.6 XRP | @@ -46,22 +47,22 @@ NFTをミントし、保有し、売買のオファーをする場合、必要 新しいアカウントを作成し、NFTをミントし、XRP Ledgerに`NFTokenSellOffer`を作成する場合、最低14XRPが準備金として必要です。 -| 準備金の種類 | 準備金の額 | -|:--------------------|--------:| -| 基本 | {% $env.PUBLIC_BASE_RESERVE %} | -| NFTokenページ | {% $env.PUBLIC_OWNER_RESERVE %} | -| NFTokenオファー | {% $env.PUBLIC_OWNER_RESERVE % | -| 合計 | 1.4 XRP | +| 準備金の種類 | 準備金の額 | +| :-------------- | ------------------------------: | +| 基本 | {% $env.PUBLIC_BASE_RESERVE %} | +| NFTokenページ | {% $env.PUBLIC_OWNER_RESERVE %} | +| NFTokenオファー | {% $env.PUBLIC_OWNER_RESERVE % | +| 合計 | 1.4 XRP | {% admonition type="info" name="注記" %}準備金要件ではありませんが、ミントと売却のプロセスにおけるトランザクションの些細な手数料(通常12drops、または.000012XRP)を負担するために、少なくとも必要準備金より1XRPより多く用意しておきくべきです。{% /admonition %} 仮に200個のNFTをミントし、それぞれに「NFTokenSellOffer」を作成すると、436XRPもの準備金が必要になります。 -| 準備金の種類 | 準備金の額 | -|:--------------------|--------:| -| 基本 | {% $env.PUBLIC_BASE_RESERVE %} | -| NFTokenページ | 2.6 XRP | -| NFTokenオファー | 40 XRP | -| 合計 | 43.6 XRP | +| 準備金の種類 | 準備金の額 | +| :-------------- | -----------------------------: | +| 基本 | {% $env.PUBLIC_BASE_RESERVE %} | +| NFTokenページ | 2.6 XRP | +| NFTokenオファー | 40 XRP | +| 合計 | 43.6 XRP | 必要準備金の額が余裕を持って確保できる額を超える場合は、オンデマンドミントモデルを使用して、一度に保有するNFTとオファーの数を減らすことを検討してください。[オンデマンドMint](batch-minting.md#オンデマンドmint-遅延minting)をご覧ください。 diff --git a/@l10n/ja/docs/concepts/tokens/nfts/running-an-nft-auction.md b/@l10n/ja/docs/concepts/tokens/nfts/running-an-nft-auction.md index 671d580937..77f5829f9a 100644 --- a/@l10n/ja/docs/concepts/tokens/nfts/running-an-nft-auction.md +++ b/@l10n/ja/docs/concepts/tokens/nfts/running-an-nft-auction.md @@ -2,10 +2,11 @@ html: nftoken-auctions.html parent: non-fungible-tokens.html seo: - description: NFTのMintを他のアカウントに代行してもらうことができます。 + description: NFTのMintを他のアカウントに代行してもらうことができます。 labels: - - 非代替性トークン, NFT + - 非代替性トークン, NFT --- + # NFTオークションの実施 オークションの運営にはいくつかの方法があり、それぞれにメリットとデメリットがあります。 @@ -22,7 +23,7 @@ labels: 最低落札価格ありのオークションとして、ブローカー方式で運営する。 -![ブローカー方式で最低落札価格ありのオークション](/docs/img/nft-auction1.png "ブローカー方式で最低落札価格ありのオークション") +![ブローカー方式で最低落札価格ありのオークション](/docs/img/nft-auction1.png 'ブローカー方式で最低落札価格ありのオークション') 1. 売り手はNFTを作成し,`NFTokenCreateOffer`を用い,ブローカーアカウントを宛先に設定して,オークションの最低落札価格を設定します。 1. 入札者は`NFTokenCreateOffer`を使ってオファーを出し、ブローカーアカウントを宛先として設定します。 @@ -44,7 +45,7 @@ labels: この3つのうち、最も複雑なワークフローとなります。 -![ブローカー方式で最低落札価格なしのオークション](/docs/img/nft-auction2.png "ブローカー方式で最低落札価格なしのオークション") +![ブローカー方式で最低落札価格なしのオークション](/docs/img/nft-auction2.png 'ブローカー方式で最低落札価格なしのオークション') 1. 売り手は`NFTokenMint`を使用してNFTを作成します。 1. 入札者は`NFTokenCreateOffer`を使って、ブローカーを宛先としてオファーを出します。 diff --git a/@l10n/ja/docs/concepts/tokens/nfts/trading.md b/@l10n/ja/docs/concepts/tokens/nfts/trading.md index 612f84f42a..057570d77c 100644 --- a/@l10n/ja/docs/concepts/tokens/nfts/trading.md +++ b/@l10n/ja/docs/concepts/tokens/nfts/trading.md @@ -3,9 +3,9 @@ name: NFTの取引 html: non-fungible-token-transfers.html parent: non-fungible-tokens.html seo: - description: NFTokenをダイレクトモードまたはブローカーモードで取引する。 + description: NFTokenをダイレクトモードまたはブローカーモードで取引する。 labels: - - 非代替性トークン, NFT + - 非代替性トークン, NFT --- # XRP Ledger上でNFTokenを売買する @@ -16,30 +16,24 @@ XRP Ledger上のアカウント間で`NFToken`オブジェクトを転送する ## 売却オファー - ### 売却オファーの作成 `NFToken`オブジェクトの所有者であれば、`tfSellToken`フラグを指定して[NFTokenCreateOfferトランザクション][]を使用して売却オファーを作成することができます。`NFTokenID`と、対価として受け取る金額`Amount`を指定します。オプションで、そのオファーが無効になる`Expiration`と、その`NFToken`を購入することができる唯一のアカウントである`Destination`を指定することができます。 - ### 売却オファーを受け入れる 販売されている`NFToken`を購入するには、`NFTokenAcceptOffer`トランザクションを使用します。`NFTokenOffer`オブジェクトの所有者アカウントと`NFTokenOfferID`を指定し、受け入れることを決定します。 - ## 購入オファー - ### 購入オファーの作成 どのアカウントでも`NFToken`の購入オファーを作成することができます。`tfSellToken`のフラグを指定せずに、[NFTokenCreateOffer][]を使用することで、購入オファーを作成することが可能です。`Owner`アカウント、`NFTokenID`、オファーの`Amount`を指定します。 - ### 購入オファーを受け入れる `NFTokenAcceptOffer`トランザクションを使用して`NFToken`を転送します。`NFTokenOfferID`と所有者アカウントを指定して、トランザクションを完了させてください。 - ## 取引モード `NFToken`を取引する場合、購入者と販売者の間で直接取引を行う、 _ダイレクト_ 取引と、第三者の口座が売りと買いのオファーをマッチングして取引を仲介する、 _ブローカー_ 取引を選択することができます。 @@ -48,7 +42,6 @@ XRP Ledger上のアカウント間で`NFToken`オブジェクトを転送する ブローカーモードでは、販売者は第三者のアカウントに`NFToken`の販売を仲介させます。ブローカーアカウントは、合意したレートで仲介手数料を徴収し、転送を行います。購入はリアルタイムで完了し、ブローカーと販売者には購入資金から支払われ、ブローカーによる前払いは必要ありません。 - ### ブローカーモードを使用する場合 `NFToken`の作成者が適切な購入者を探す時間と忍耐力がある場合、作成者は販売から得たすべての収益を得ることができます。これは、少数の`NFToken`オブジェクトを様々な価格で販売するクリエイターにとって、非常に有効な方法です。 @@ -57,25 +50,20 @@ XRP Ledger上のアカウント間で`NFToken`オブジェクトを転送する ブローカーを利用すると、いくつかの利点があります。例えば -* ブローカーは仲介者として、`NFToken`の販売価格を最大化するために活動することができます。ブローカーが販売価格の何割かを受け取る場合、価格が高ければ高いほど、ブローカーの収入も増えます。 -* ブローカーは、ニッチな市場や価格帯などの基準に基づいて`NFToken`オブジェクトの管理を行う管理者として活動することができます。これによって、クリエイターの作品を発見できないような購入者のグループを呼び込むことができるでしょう。 -* ブローカーは、Opensea.ioのようなマーケットプレイスとして機能し、アプリケーション層でオークション機能を提供することもできます。 - +- ブローカーは仲介者として、`NFToken`の販売価格を最大化するために活動することができます。ブローカーが販売価格の何割かを受け取る場合、価格が高ければ高いほど、ブローカーの収入も増えます。 +- ブローカーは、ニッチな市場や価格帯などの基準に基づいて`NFToken`オブジェクトの管理を行う管理者として活動することができます。これによって、クリエイターの作品を発見できないような購入者のグループを呼び込むことができるでしょう。 +- ブローカーは、Opensea.ioのようなマーケットプレイスとして機能し、アプリケーション層でオークション機能を提供することもできます。 ### ブローカー販売のワークフロー 最も単純なワークフローでは、クリエイターが新しい`NFToken`を発行します。クリエイターは売却オファーを作成する際、最低売却価格を入力し、売却先にブローカーを設定します。購入希望者はブローカーを経由して`NFToken`に入札を行います。ブローカーは落札者を選び、取引を完了させ、ブローカー手数料を受け取ります。ベストプラクティスとして、ブローカーは`NFToken`に対して残っている購入オファーをすべてキャンセルします。 - ![Brokered Mode with Reserve](/docs/img/nft-brokered-mode-with-reserve.png) - もう1つのワークフローは、クリエイターが販売をよりコントロールできるようにするものです。このワークフローでは、クリエイターが新しい`NFToken`を発行します。入札者はオファーを作成し、ブローカーを宛先として設定します。ブローカーは落札者を選び、仲介手数料を差し引き、`NFTokenCreateOffer`を使用してクリエイターに署名の依頼をします。クリエーターは要求されたオファーに署名し、ブローカーを宛先として設定します。ブローカーは`NFTokenAcceptOffer`を使って売却を完了し、仲介手数料を保持します。ブローカーは`NFTokenCancelOffer`を使用して`NFToken`に対する残りの入札をキャンセルします。 - ![Brokered Mode without Reserve](/docs/img/nft-brokered-mode-without-reserve.png) - 所有者が他のアカウントで作成した`NFToken`をリセールする場合にも、同じワークフローを使用することができます。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/concepts/transactions/batch-transactions.md b/@l10n/ja/docs/concepts/transactions/batch-transactions.md index 3d5b9e1f41..0aff830a39 100644 --- a/@l10n/ja/docs/concepts/transactions/batch-transactions.md +++ b/@l10n/ja/docs/concepts/transactions/batch-transactions.md @@ -1,16 +1,18 @@ --- seo: - description: バッチは最大8つのトランザクションを単一のユニットとして送信できます。 + description: バッチは最大8つのトランザクションを単一のユニットとして送信できます。 labels: - Batch - Transactions status: not_enabled --- + # バッチ `Batch`では、複数のトランザクションをまとめてパッケージ化し、単一のユニットとして実行できます。部分的な完了や予期しない結果のリスクを排除し、複雑な操作をより信頼性が高く予測可能な方法で実行できます。1つのバッチで最大8つのトランザクションを送信できます。 `Batch`の潜在的な使用例は以下の通りです。 + - 全て成功か全て失敗:NFTをミントして同時にオファーを作成できます。オファー作成が失敗した場合、NFTミントも取り消されます。 - 複数のオファーの試行:異なるスリッページ量で複数のオファーを送信しますが、成功するのは1つだけです。 - プラットフォーム手数料:プラットフォーム手数料をトランザクション自体に含めることで、プロセスを簡素化できます。 @@ -55,9 +57,9 @@ status: not_enabled `Batch`は次のグローバルなトランザクションフラグを追加します。 -| フラグ名 | 値 | -|------------------|------------| -| `tfInnerBatchTxn`| 0x40000000 | +| フラグ名 | 値 | +| ----------------- | ---------- | +| `tfInnerBatchTxn` | 0x40000000 | このフラグは、トランザクションがバッチトランザクションの内部トランザクションである場合にのみ使用されます。これは、トランザクションが署名されていないことを示します。このフラグを含む通常のトランザクションは拒否されます。 @@ -69,12 +71,12 @@ status: not_enabled この配列内の各オブジェクトには、以下のフィールドが含まれます。 -| フィールド | 必須? | JSONの型 | 内部の型 | -|-----------------|-----------|-----------|---------------| -| Account | はい | string | STAccount | -| SigningPubKey | いいえ | string | STBlob | -| TxnSignature | いいえ | string | STBlob | -| Signers | いいえ | array | STArray | +| フィールド | 必須? | JSONの型 | 内部の型 | +| ------------- | ------ | -------- | --------- | +| Account | はい | string | STAccount | +| SigningPubKey | いいえ | string | STBlob | +| TxnSignature | いいえ | string | STBlob | +| Signers | いいえ | array | STArray | `SigningPubKey`と`TxnSignature`フィールド、または`Signers`フィールドのいずれかを含める必要があります。 @@ -94,7 +96,7 @@ status: not_enabled 外部トランザクションの手数料は、ベース手数料の2倍(手数料エスカレーションがない場合は合計20 drop)に、全ての内部トランザクションのトランザクション手数料の合計(`multisign`や`AMMCreate`などのより高い手数料などの要因を組み込む)を加え、さらにトランザクション内の各追加署名(例:`BatchSigners`から)に対する追加のベース手数料金額を加えたものです。式で表すと以下の通りです。 -2 * (ベース手数料) + SUM(内部トランザクション手数料) + 各追加署名に対する追加のベース手数料 +2 \* (ベース手数料) + SUM(内部トランザクション手数料) + 各追加署名に対する追加のベース手数料 個々の内部トランザクションの手数料は、内部トランザクション自体ではなく外部トランザクションで支払われます。これにより、手数料エスカレーションがオーバーヘッドのみではなくバッチトランザクション全体のコストに基づいて計算されることが保証されます。 @@ -126,9 +128,9 @@ status: not_enabled この標準はトランザクション共通フィールドに新しいフィールドを追加しませんが、別のグローバルトランザクションフラグを追加します: -| フラグ名 | 値 | -|------------------|------------| -| tfInnerBatchTxn | 0x40000000 | +| フラグ名 | 値 | +| --------------- | ---------- | +| tfInnerBatchTxn | 0x40000000 | このフラグは、トランザクションが`Batch`トランザクションの内部トランザクションである場合にのみ使用すべきです。これは、トランザクションが署名されるべきでないことを示します。このフラグを含む通常のトランザクションは拒否されるべきです。 @@ -158,4 +160,4 @@ status: not_enabled バッチの内部トランザクションは特殊なケースです。署名や手数料を含みません(これらは両方とも外部トランザクションに含まれているため)。したがって、誰かが外部トランザクションに含めることなく、`Batch`の内部トランザクションを直接送信できないことを保証するために、慎重に処理する必要があります。 -内部トランザクションはブロードキャストできません(例えば悪意のあるノードからブロードキャストされた場合、受け入れられません)。代わりに`Batch`の外部トランザクションから生成される必要があります。内部トランザクションは、submit RPCを介して直接送信することはできません。 \ No newline at end of file +内部トランザクションはブロードキャストできません(例えば悪意のあるノードからブロードキャストされた場合、受け入れられません)。代わりに`Batch`の外部トランザクションから生成される必要があります。内部トランザクションは、submit RPCを介して直接送信することはできません。 diff --git a/@l10n/ja/docs/concepts/transactions/fees.md b/@l10n/ja/docs/concepts/transactions/fees.md index d92f0563e3..43dbade6bb 100644 --- a/@l10n/ja/docs/concepts/transactions/fees.md +++ b/@l10n/ja/docs/concepts/transactions/fees.md @@ -2,17 +2,17 @@ html: fees.html parent: transactions.html seo: - description: レジャーを悪用から守る中立的な手数料(誰にも支払われません)や、ユーザが互いから徴収できる手数料など、XRP Ledgerで許可されている手数料のタイプについて説明します。 + description: レジャーを悪用から守る中立的な手数料(誰にも支払われません)や、ユーザが互いから徴収できる手数料など、XRP Ledgerで許可されている手数料のタイプについて説明します。 labels: - 手数料 --- + # 手数料(曖昧さの回避) XRP Ledgerは分散型レジャーであり、暗号技術により保護され、サーバで構成される分散型ピアツーピアネットワークで運用されます。つまり、Rippleを含め誰もネットワークアクセス料を要求できません。 ただしXRP Ledgerのルールには、レジャーを悪用から保護するための中立的な手数料を含む各種手数料が設定されています。この中立的な手数料の受取先はありません。また、XRP Ledgerの内外でユーザはさまざまな方法で相互に手数料を徴収できます。 - ## レジャー内部 ### 中立的な手数料 @@ -27,7 +27,6 @@ _**送金手数料**_ は、イシュアーが発行する通貨を、そのイ _**トラストラインクオリティ**_ は、アカウントがトラストラインの残高を額面価格よりも高い価格または低い価格で評価できるようにする設定です。この設定により、手数料が発生するような状況になることがあります。トラストラインクオリティは、トラストラインに関連付けられていないXRPには適用されません。 - ## レジャー外部 XRP Ledgerには前述の手数料しか組み込まれていませんが、この他にもレジャーに関連した手数料を請求する方法を考案することが可能です。たとえば、一般的に金融機関は、XRP Ledgerへの資金の送金やXRP Ledgerからの資金の受領に関して、手数料を顧客に請求します。 diff --git a/@l10n/ja/docs/concepts/transactions/finality-of-results/canceling-a-transaction.md b/@l10n/ja/docs/concepts/transactions/finality-of-results/canceling-a-transaction.md index 067f7acbfb..dd6a37810e 100644 --- a/@l10n/ja/docs/concepts/transactions/finality-of-results/canceling-a-transaction.md +++ b/@l10n/ja/docs/concepts/transactions/finality-of-results/canceling-a-transaction.md @@ -2,10 +2,11 @@ html: canceling-a-transaction.html parent: finality-of-results.html seo: - description: 送信済みのトランザクションのキャンセルがいつどのように可能か説明します。 + description: 送信済みのトランザクションのキャンセルがいつどのように可能か説明します。 labels: - トランザクション送信 --- + # トランザクションの取消し XRP Ledgerの重要かつ意図的な機能の1つに、トランザクションが検証済みレジャーに組み込まれると、即時に最終的なトランザクションになるという機能があります。 diff --git a/@l10n/ja/docs/concepts/transactions/finality-of-results/index.md b/@l10n/ja/docs/concepts/transactions/finality-of-results/index.md index 193d58eb28..e11dc0af3a 100644 --- a/@l10n/ja/docs/concepts/transactions/finality-of-results/index.md +++ b/@l10n/ja/docs/concepts/transactions/finality-of-results/index.md @@ -2,11 +2,12 @@ html: finality-of-results.html parent: transactions.html seo: - description: トランザクション結果が最終的かつ不変になるタイミングについて説明します。 + description: トランザクション結果が最終的かつ不変になるタイミングについて説明します。 labels: - トランザクション送信 - ブロックチェーン --- + # 結果のファイナリティー トランザクションがコンセンサスレジャーに適用される順序は、[レジャー](../../ledgers/index.md)がクローズされ、そのトランザクションセットが[コンセンサスプロセス](../../consensus-protocol/index.md)によって承認されるまで確定されません。最初に成功したトランザクションはその後で失敗する可能性があり、最初に失敗したトランザクションはその後で成功する可能性があります。さらに、あるラウンドでコンセンサスプロセスによって拒否されたトランザクションは、後のラウンドでコンセンサスに達する可能性があります。 @@ -15,13 +16,13 @@ labels: 結果コードがそれ以外の場合は、結果が最終的なものかどうかを判断するのは困難です。次の表は、トランザクションの結果がいつ確定するかをまとめたものです。この内容は、トランザクション送信からの結果コードに基づいています。 -| 結果コード | ファイナリティー | -|:----------------|:-----------------------------------------------------------| -| `tesSUCCESS` | 検証済みレジャーに含まれる場合は確定 | -| すべての`tec`コード | 検証済みレジャーに含まれる場合は確定 | -| すべての`tem`コード | 確定(トランザクションが有効になるようにプロトコルが変更される場合を除く) | -| `tefPAST_SEQ` | 検証済みレジャーに同じシーケンス番号の別のトランザクションが含まれている場合は確定 | -| `tefMAX_LEDGER` | 検証済みレジャーにトランザクションの`LastLedgerSequence`フィールドよりも大きい[レジャーインデックス][レジャーインデックス]があり、検証済みレジャーにそのトランザクションが含まれていない場合は確定 | +| 結果コード | ファイナリティー | +| :------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `tesSUCCESS` | 検証済みレジャーに含まれる場合は確定 | +| すべての`tec`コード | 検証済みレジャーに含まれる場合は確定 | +| すべての`tem`コード | 確定(トランザクションが有効になるようにプロトコルが変更される場合を除く) | +| `tefPAST_SEQ` | 検証済みレジャーに同じシーケンス番号の別のトランザクションが含まれている場合は確定 | +| `tefMAX_LEDGER` | 検証済みレジャーにトランザクションの`LastLedgerSequence`フィールドよりも大きい[レジャーインデックス][レジャーインデックス]があり、検証済みレジャーにそのトランザクションが含まれていない場合は確定 | 他のトランザクション結果は確定でない可能性があります。その場合、トランザクションはその後に成功または失敗する可能性があります(特に、条件の変更によってトランザクションの適用を妨げる原因がなくなった場合)。例えば、まだ存在していないアカウントにXRP以外の通貨を送信しようとしても失敗しますが、別のトランザクションで送信先アカウントを作成するのに十分なXRPを送信すれば成功します。サーバは、一時的に失敗した署名付きのトランザクションを保存してから、事前に確認せずに後でそれを正常に適用する場合があります。 @@ -30,7 +31,6 @@ labels: 最初にトランザクションを送信すると、`rippled`サーバはそのトランザクションを現在のオープンレジャーに暫定的に適用し、その結果から暫定的な[トランザクションの結果](../../../references/protocol/transactions/transaction-results/index.md)を返します。ただし、トランザクションの最終結果は、暫定的な結果とは大きく異なる場合があります。考えられる理由を以下に示します。 - トランザクションは、後のレジャーバージョンまで延期されるか、検証済みレジャーに取り込まれない場合があります。ほとんどの場合、XRP Ledgerでは、すべての有効なトランザクションをできるだけ早く処理するという原則に従います。ただし、次のような例外があります。 - - 提案されたトランザクションが[コンセンサスラウンド](../../consensus-protocol/index.md)の開始時点で過半数のバリデータに中継されていない場合は、残りのバリデータがトランザクションを取得して有効であることを確認する時間を確保できるように、次のレジャーバージョンまで延期される場合があります。 - アドレスが同じシーケンス番号を使用して2つの異なるトランザクションを送信する場合、それらのトランザクションのうち最大1つが検証されます。そのようなトランザクションが異なるパスのネットワーク経由で中継される場合、サーバによっては、他の競合するトランザクションが先に過半数のサーバに到達したために、暫定的に成功したトランザクションが失敗する可能性があります。 @@ -42,8 +42,7 @@ labels: - 上記の要因が2つ以上同時に発生する場合もあります。 - 通常、[トランザクションが決済済みレジャーに適用される順序](../../ledgers/index.md)は、それらのトランザクションが現在のオープンレジャーに一時的に適用された順序とは異なります。そのため、関連するトランザクションに応じて、一時的に成功したトランザクションが失敗したり、一時的に失敗したトランザクションが成功したりする場合があります。以下に例を示します。 - - - 2つのトランザクションでそれぞれ、同じ[オファー](../../tokens/decentralized-exchange/offers.md)を[分散型取引所](../../tokens/decentralized-exchange/index.md)で完全に使用する場合、どちらか一方が先に成功すると、もう一方は失敗します。それらのトランザクションが適用される順序は変わる可能性があるため、成功したトランザクションが失敗したり、失敗したトランザクションが成功したりする可能性があります。オファーは部分的に実行できるため、成功する可能性もありますが、程度は異なります。 + - 2つのトランザクションでそれぞれ、同じ[オファー](../../tokens/decentralized-exchange/offers.md)を[分散型取引所](../../tokens/decentralized-exchange/index.md)で完全に使用する場合、どちらか一方が先に成功すると、もう一方は失敗します。それらのトランザクションが適用される順序は変わる可能性があるため、成功したトランザクションが失敗したり、失敗したトランザクションが成功したりする可能性があります。オファーは部分的に実行できるため、成功する可能性もありますが、程度は異なります。 - [分散型取引所](../../tokens/decentralized-exchange/index.md)で[オファー](../../tokens/decentralized-exchange/offers.md)を使用することで[クロスカレンシー支払い](../../payment-types/cross-currency-payments.md)は成功したが、別のトランザクションが同じオーダーブックでオファーを使用または作成した場合、クロスカレンシー支払いは仮に実行されたときとは異なる為替レートで成功する場合があります。[Partial Payment](../../payment-types/partial-payments.md)では、別の金額を送金することもできます。 @@ -51,7 +50,6 @@ labels: {% admonition type="success" name="ヒント" %}上記の理由により、XRP Ledgerに対してテストを実行しており、同じデータに影響する複数のアカウントがある場合、必ずトランザクション間のレジャーが閉じられるまでお待ちください。[スタンドアロンモード](../../networks-and-servers/rippled-server-modes.md#スタンドアロンモード)のサーバに対してテストを実行する場合は、[レジャーを手動で閉じる](../../../infrastructure/testing-and-auditing/advance-the-ledger-in-stand-alone-mode.md)必要があります。{% /admonition %} - ## 関連項目 - [トランザクションの結果の確認](look-up-transaction-results.md) diff --git a/@l10n/ja/docs/concepts/transactions/finality-of-results/look-up-transaction-results.md b/@l10n/ja/docs/concepts/transactions/finality-of-results/look-up-transaction-results.md index 7606af80a4..c650fb0bcc 100644 --- a/@l10n/ja/docs/concepts/transactions/finality-of-results/look-up-transaction-results.md +++ b/@l10n/ja/docs/concepts/transactions/finality-of-results/look-up-transaction-results.md @@ -2,11 +2,12 @@ html: look-up-transaction-results.html parent: finality-of-results.html seo: - description: 以前に送信したトランザクションの結果を確認します。 + description: 以前に送信したトランザクションの結果を確認します。 labels: - 支払い - 開発 --- + # トランザクションの結果の確認 XRP Ledgerを効果的に使用するには、[トランザクション](../index.md)の結果を次のように把握することが重要です。トランザクションは成功したか?トランザクションは何を遂行したか?失敗した場合は、なぜか? @@ -26,7 +27,6 @@ XRP Ledgerは共有システムとなっていて、すべてのデータが公 {% admonition type="success" name="ヒント" %}この他にも、[Data API](../../../references/data-api.md)やエクスポートされた他のデータベースを使用するなど、XRP Ledgerからトランザクションのデータを照会する方法があります。ただし、これらのインターフェイスは正式なものではありません。このドキュメントでは、最も直接的で信頼できる結果を得るために、`rippled` APIを直接使用してデータを確認する方法を説明します。{% /admonition %} - ## 1. トランザクションステータスの取得 トランザクションが成功したか失敗したかを確認するには、2つの問いが必要です。 @@ -65,14 +65,12 @@ XRP Ledgerは共有システムとなっていて、すべてのデータが公 この例では、rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpnというアドレスを持つ[アカウント](../../accounts/index.md)が、[シーケンス番号][] 376を使用して、[AccountSetトランザクション][]を送信したことを示しています。トランザクションの[識別用ハッシュ][]は`017DED8F5E20F0335C6F56E3D5EE7EF5F7E83FB81D2904072E665EEA69402567`で、その[結果](../../../references/protocol/transactions/transaction-results/index.md)は`tesSUCCESS`です。トランザクションは、検証済みのレジャーバージョン46447423に記録されたため、結果は最終的なものです。 - ### ケース: 検証済みレジャーに記録されていない **トランザクションが検証済みレジャーに記録されていない場合は、共有XRP Ledgerの状態には _いかなる_ 影響も及ぼしません。** 今後レジャーに記録されるトランザクションの失敗が[_最終的_](index.md)となる場合、その失敗が将来影響を及ぼすことはありません。 トランザクションの失敗が最終的でない場合は、 _将来の_ 検証済みレジャーに記録される可能性があります。トランザクションを現在のオープンレジャーに適用して得た暫定的な結果から、トランザクションが最終レジャーに及ぼすと思われる影響を事前に確認できます。ただし、実際の結果は[さまざまな要因](index.md#未確定の結果はどのように変更できますか)によって変わる場合があります。 - ### ケース: 検証済みレジャーに記録されている トランザクションが検証済みレジャーに記録 _されている_ 場合、[トランザクションメタデータ](../../../references/protocol/transactions/metadata.md)にはトランザクションの処理結果として、レジャーの状態に対して行われたすべての変更を網羅したレポートが含まれます。メタデータの`TransactionResult`フィールドには、以下のような、結果を要約した[トランザクション結果コード](../../../references/protocol/transactions/transaction-results/index.md)が含まれます。 @@ -83,12 +81,11 @@ XRP Ledgerは共有システムとなっていて、すべてのデータが公 結果コードは、トランザクションの結果の要約にすぎません。トランザクションの実行内容を詳しく理解するには、トランザクションの指示とトランザクションの実行前のレジャーの状態に照らして残りのメタデータを確認する必要があります。 - ## 2. メタデータの解釈 トランザクションメタデータは、以下に示すフィールドをはじめとして、トランザクションがレジャーに適用された方法を _正確に_ 示します。 -{% partial file="/@l10n/ja/docs/_snippets/tx-metadata-field-table.md" /%} +{% partial file="/@l10n/ja/docs/_snippets/tx-metadata-field-table.md" /%} ほとんどのメタデータは、[`AffectedNodes`配列](../../../references/protocol/transactions/metadata.md#affectednodes)に含まれています。この配列で探す対象は、トランザクションのタイプによって異なります。ほぼすべてのトランザクションが、送金元の[AccountRootオブジェクト][]を変更してXRP[トランザクションコスト](../transaction-cost.md)を消却し、[アカウントのシーケンス番号](../../../references/protocol/data-types/basic-data-types.md#アカウントシーケンス)を増やします。 @@ -397,7 +394,7 @@ TrustSetトランザクションは、[`RippleState`オブジェクト](../../.. 以下の例は、**rf1BiG...** が**rsA2Lp...** によって発行されたUSDを最大110 USDまで保持するという新しいトラストラインを示します。 ```json - { +{ "CreatedNode": { "LedgerEntryType": "RippleState", "LedgerIndex": "9CA88CDEDFF9252B3DE183CE35B038F57282BC9503CDFA1923EF9A95DF0D6F7B", @@ -423,7 +420,6 @@ TrustSetトランザクションは、[`RippleState`オブジェクト](../../.. } ``` - ### その他のトランザクション その他のほとんどのトランザクションは、特定のタイプのレジャーエントリを作成し、[送金元の所有者準備金と所有者ディレクトリーの調整](#汎用的なブックキーピング)を行います。 diff --git a/@l10n/ja/docs/concepts/transactions/finality-of-results/transaction-malleability.md b/@l10n/ja/docs/concepts/transactions/finality-of-results/transaction-malleability.md index 8c451d01ff..96ace7c1c8 100644 --- a/@l10n/ja/docs/concepts/transactions/finality-of-results/transaction-malleability.md +++ b/@l10n/ja/docs/concepts/transactions/finality-of-results/transaction-malleability.md @@ -2,11 +2,12 @@ html: transaction-malleability.html parent: finality-of-results.html seo: - description: トランザクションが想定とは異なるハッシュを持つようにどのように変更される可能性があるか注意してください。 + description: トランザクションが想定とは異なるハッシュを持つようにどのように変更される可能性があるか注意してください。 labels: - セキュリティ - トランザクション送信 --- + # トランザクション展性 署名後のトランザクションを、署名に使用されたキーを使用せずに変更できる場合、そのトランザクションには「展性がある」ことになります。XRP Ledgerでは、署名付きトランザクションの**機能性**は変更できませんが、場合によっては第三者がトランザクションの署名と識別用ハッシュを変更できる _可能性があります_ 。 @@ -17,8 +18,6 @@ XRP Ledgerのメインネット上では、**マルチ署名**トランザクシ 2014年以前は、デフォルトの署名アルゴリズムであるsecp256k1曲線を使用したECDSAの特性により、単一署名トランザクションを不正に変更することができました。レガシー署名ツールとの互換性のため、2020-07-03に[RequireFullyCanonicalSig Amendment][]が有効になるまでは、変更可能な単一署名トランザクションを作成して提出することが可能でした。(Ed25519鍵で署名されたトランザクション(cryptographic-keys.html#署名アルゴリズム)は、この問題に対して脆弱ではありませんでした)。 - - ## 背景 XRP Ledgerでは、以下の条件に該当しない場合にはトランザクションを実行できません。 @@ -49,7 +48,6 @@ ECDSA署名はRおよびSと呼ばれる2つの整数で構成されています 2014年から2020年の間、XRP Ledgerは常に完全な正規署名を生成するわけではないレガシーソフトウェアと互換性がありましたが、トランザクションの脆弱性から互換性のあるソフトウェアを保護するために、トランザクションに[**tfullyCanonicalSig`**](../../../references/protocol/transactions/common-fields.md#global-flags)と呼ばれるフラグを使用していました。このフラグは互換署名ソフトウェアがデフォルトで有効にしており、トランザクションが有効であるために _完全正規な_ 署名を使用することを要求していました。[RequireFullyCanonicalSig Amendment][]が有効になったので、このフラグは必要なくなりましたが、いずれにせよ有効にしても害はありません。 - ### マルチシグの展性 マルチシグの明示的で重要な機能として、さまざまな設定によってトランザクションを有効にできるという機能があげられます。たとえば、5人の署名者のうち3人の署名者の署名によってトランザクションを承認できるようにアカウントを設定できます。ただしこの場合、有効なトランザクションにはいくつかのバリエーションが存在する可能性があり、識別用ハッシュは各バリエーションごとに異なります。 @@ -76,7 +74,6 @@ ECDSA署名はRおよびSと呼ばれる2つの整数で構成されています セキュリティ強化のため、上記のガイドラインにより何重もの保護対策が講じられます。 - ## 展性のあるトランザクションを使用した悪用 XRP Ledgerとのインフターフェイスに使用するソフトウェアから展性のあるトランザクションが送信されると、不正使用者がソフトウェアをだましてトランザクションの最終結果を確認できなくし、(最悪の場合)同額の支払いを複数回送金させることが可能になります。 @@ -89,7 +86,7 @@ XRP Ledgerとのインフターフェイスに使用するソフトウェアか 1. 脆弱なシステムが、tfFullyCanonicalSigを有効にせずにトランザクションを生成し署名する。 - 承認された署名者が悪意のある、あるいは無責任な場合、その署名者の署名が含まれていないにもかかわらず追加される可能性がある場合、そのトランザクションも脆弱になる可能性があります。 + 承認された署名者が悪意のある、あるいは無責任な場合、その署名者の署名が含まれていないにもかかわらず追加される可能性がある場合、そのトランザクションも脆弱になる可能性があります。 2. システムは脆弱なトランザクションの識別用ハッシュを確認し、そのハッシュをXRP Ledgerネットワークに送信し、検証済みレジャーバージョンにそのハッシュが記録されるのを監視し始めます。 @@ -97,53 +94,52 @@ XRP Ledgerとのインフターフェイスに使用するソフトウェアか 4. 不正使用者が脆弱なトランザクションの代替署名を計算します。 - 異なるトランザクション指示の署名を作成する場合とは異なり、この場合は大量の計算処理は不要です。最初に署名を生成する場合よりもかなり短い時間で完了する可能性があります。 + 異なるトランザクション指示の署名を作成する場合とは異なり、この場合は大量の計算処理は不要です。最初に署名を生成する場合よりもかなり短い時間で完了する可能性があります。 - あるいは、その署名がまだトランザクションの一部でない承認された署名者は、脆弱なトランザクションの署名リストに自分の署名を追加することができます。送信者のマルチシグの設定によっては、これはトランザクションから他の署名を削除する代わりに、あるいはそれに加えて行われるかもしれません。 + あるいは、その署名がまだトランザクションの一部でない承認された署名者は、脆弱なトランザクションの署名リストに自分の署名を追加することができます。送信者のマルチシグの設定によっては、これはトランザクションから他の署名を削除する代わりに、あるいはそれに加えて行われるかもしれません。 - 改ざんされた署名により、異なる識別用ハッシュが生成されます。(ネットワークに送信する前にハッシュを計算する必要はありませんが、ハッシュがあれば後でトランザクションのステータスを容易に確認できることを理解しています。) + 改ざんされた署名により、異なる識別用ハッシュが生成されます。(ネットワークに送信する前にハッシュを計算する必要はありませんが、ハッシュがあれば後でトランザクションのステータスを容易に確認できることを理解しています。) 5. 不正使用者が改ざんした(完全に正規ではない可能性のある)トランザクションをネットワークに送信します。 - これにより、当初送信されたトランザクションと、不正使用者によって送信された改ざんバージョンが「競争」します。この2つのトランザクションが同時に記録されることはありません。いずれのトランザクションも有効ですが、`Sequence`番号をはじめ厳密に同一のトランザクションデータを含んでいるので、検証済みレジャーに記録できるのは常にいずれか1つになります。 + これにより、当初送信されたトランザクションと、不正使用者によって送信された改ざんバージョンが「競争」します。この2つのトランザクションが同時に記録されることはありません。いずれのトランザクションも有効ですが、`Sequence`番号をはじめ厳密に同一のトランザクションデータを含んでいるので、検証済みレジャーに記録できるのは常にいずれか1つになります。 - ピアツーピアネットワークのサーバは、どちらが「最初に到着した」トランザクションであるか、またはどちらが元の送信者が意図したトランザクションであるかを認識できません。ネットワーク接続での遅延やその他の偶発的な事象により、バリデータはコンセンサス提案をファイナライズする時点で、いずれかのトランザクションだけを認識する結果になる可能性があります。この場合、いずれかのトランザクションが「競争に勝った」ことになります。 + ピアツーピアネットワークのサーバは、どちらが「最初に到着した」トランザクションであるか、またはどちらが元の送信者が意図したトランザクションであるかを認識できません。ネットワーク接続での遅延やその他の偶発的な事象により、バリデータはコンセンサス提案をファイナライズする時点で、いずれかのトランザクションだけを認識する結果になる可能性があります。この場合、いずれかのトランザクションが「競争に勝った」ことになります。 - もし不正使用者がピアツーピアネットワークで適切に接続しているいくつかのサーバを乗っ取れば、これらのサーバがバリデータとして信頼されていなくても、非正規トランザクションを確定できる確率を高めることができます。 + もし不正使用者がピアツーピアネットワークで適切に接続しているいくつかのサーバを乗っ取れば、これらのサーバがバリデータとして信頼されていなくても、非正規トランザクションを確定できる確率を高めることができます。 - 脆弱なシステムからのトランザクションを唯一受信したサーバを不正使用者が乗っ取った場合、不正使用者はネットワークの他の部分に配信されるバージョンを容易に制御できるようになります。 + 脆弱なシステムからのトランザクションを唯一受信したサーバを不正使用者が乗っ取った場合、不正使用者はネットワークの他の部分に配信されるバージョンを容易に制御できるようになります。 6. 不正ユーザのトランザクションがコンセンサスに達し、検証済みレジャーに記録されます。 - この時点でトランザクションは実行されており、このトランザクションを無効にすることはできません。その影響(XRPの送金など)は最終的です。本来のトランザクションは、その`Sequence`番号がすでに使用されているために有効ではなくなります。 + この時点でトランザクションは実行されており、このトランザクションを無効にすることはできません。その影響(XRPの送金など)は最終的です。本来のトランザクションは、その`Sequence`番号がすでに使用されているために有効ではなくなります。 - XRP Ledgerでのトランザクションの影響は、本来のバージョンが実行された場合とまったく同じです。 + XRP Ledgerでのトランザクションの影響は、本来のバージョンが実行された場合とまったく同じです。 7. 脆弱なシステムは、予期しているトランザクションハッシュを認識せず、トランザクションが実行されなかったという誤った結論に達します。 - トランザクションに`LastLedgerSequence`フィールドが含まれている場合は、指定されたレジャーインデックスを経過した後でこの状況が発生します。 + トランザクションに`LastLedgerSequence`フィールドが含まれている場合は、指定されたレジャーインデックスを経過した後でこの状況が発生します。 - トランザクションで`LastLedgerSequence`フィールドが省略されている場合は、別の意味で誤っている可能性があります。つまり、同じ送信者からの他のトランザクションでは同じ`Sequence`番号が使用されていない場合、トランザクションはその後、時間の経過に関係なく、理論上成功します。(詳細は、[確実なトランザクションの送信](../reliable-transaction-submission.md)をご覧ください。) + トランザクションで`LastLedgerSequence`フィールドが省略されている場合は、別の意味で誤っている可能性があります。つまり、同じ送信者からの他のトランザクションでは同じ`Sequence`番号が使用されていない場合、トランザクションはその後、時間の経過に関係なく、理論上成功します。(詳細は、[確実なトランザクションの送信](../reliable-transaction-submission.md)をご覧ください。) 8. 脆弱なシステムは、トランザクションが失敗したと想定してアクションを実行します。 - たとえば、XRP Ledgerで送金されていないと判断した資金についての責任を果たすため、システムで顧客の残高に返金します(または単に引き落としを行いません)。 - - さらに、脆弱なシステムがトランザクションを置き換えるために新しいトランザクションを生成し、ネットワークの現在の状態に基づいて新しい`Sequence`、`LastLedgerSequence`、および`Fee`パラメーターを選択し、その一方でトランザクションの残りの部分は本来のトランザクションと同じ状態で維持することがあります。この新しいトランザクションにも展性がある場合、システムは何度も同じように悪用される可能性があります。 + たとえば、XRP Ledgerで送金されていないと判断した資金についての責任を果たすため、システムで顧客の残高に返金します(または単に引き落としを行いません)。 + さらに、脆弱なシステムがトランザクションを置き換えるために新しいトランザクションを生成し、ネットワークの現在の状態に基づいて新しい`Sequence`、`LastLedgerSequence`、および`Fee`パラメーターを選択し、その一方でトランザクションの残りの部分は本来のトランザクションと同じ状態で維持することがあります。この新しいトランザクションにも展性がある場合、システムは何度も同じように悪用される可能性があります。 ## 関連項目 - **コンセプト:** - - [トランザクション](../index.md) - - [結果のファイナリティー](index.md) + - [トランザクション](../index.md) + - [結果のファイナリティー](index.md) - **チュートリアル:** - - [トランザクションの結果の確認](look-up-transaction-results.md) - - [信頼できるトランザクションの送信](../reliable-transaction-submission.md) + - [トランザクションの結果の確認](look-up-transaction-results.md) + - [信頼できるトランザクションの送信](../reliable-transaction-submission.md) - **リファレンス:** - - [基本的なデータ型 - ハッシュ](../../../references/protocol/data-types/basic-data-types.md#ハッシュ) - - [トランザクションの共通フィールド](../../../references/protocol/transactions/common-fields.md#グローバルフラグ) - - [トランザクションの結果](../../../references/protocol/transactions/transaction-results/index.md) - - [シリアル化フォーマット](../../../references/protocol/binary-format.md) + - [基本的なデータ型 - ハッシュ](../../../references/protocol/data-types/basic-data-types.md#ハッシュ) + - [トランザクションの共通フィールド](../../../references/protocol/transactions/common-fields.md#グローバルフラグ) + - [トランザクションの結果](../../../references/protocol/transactions/transaction-results/index.md) + - [シリアル化フォーマット](../../../references/protocol/binary-format.md) {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/concepts/transactions/index.md b/@l10n/ja/docs/concepts/transactions/index.md index 004b205a11..a166e92cbe 100644 --- a/@l10n/ja/docs/concepts/transactions/index.md +++ b/@l10n/ja/docs/concepts/transactions/index.md @@ -2,18 +2,18 @@ html: transactions.html parent: concepts.html seo: - description: トランザクションは、XRP Ledgerの変更を可能にする唯一の手段です。トランザクションの形態とその使用方法について説明します。 + description: トランザクションは、XRP Ledgerの変更を可能にする唯一の手段です。トランザクションの形態とその使用方法について説明します。 labels: - トランザクション送信 - 支払い --- + # トランザクション _トランザクション(取引)_ は、XRP Ledgerを変更する唯一の方法です。[コンセンサスプロセス](../consensus-protocol/index.md)に従って署名され、送信され、検証済みのレジャーバージョンに承認された場合にのみ、トランザクションは最終的なものになります。レジャーのルールによっては、_[疑似トランザクション](../../references/protocol/transactions/pseudo-transaction-types/index.md)_ も生成されます。このトランザクションは署名も送信もされませんが、コンセンサスによって承認されなければならないことは同様です。失敗したトランザクションであっても、スパム対策の[トランザクションコスト][]を支払のためXRPの残高が変わるため、レジャーに記録されます。 トランザクションで行えることは、送金だけではありません。XRP Ledgerのトランザクションは、さまざまな[支払いタイプ](../payment-types/index.md)に対応しているだけでなく、[暗号鍵](../accounts/cryptographic-keys.md)のローテーション、その他の設定の管理、およびXRP Ledgerの[分散型取引所](../tokens/decentralized-exchange/index.md)での取引にも使用されます。[トランザクションタイプの詳細なリスト](../../references/protocol/transactions/types/index.md)については、[`rippled` APIリファレンス](../../references/http-websocket-apis/index.md)をご覧ください。 - ### トランザクションの識別 署名付きトランザクションには、それを識別する固有の`"hash"`があります。トランザクションを送信すると、サーバのレスポンスでハッシュが返されます。[account_txコマンド](../../references/http-websocket-apis/public-api-methods/account-methods/account_tx.md)を使用して、アカウントのトランザクション履歴でトランザクションを検索することもできます。 @@ -22,16 +22,13 @@ _トランザクション(取引)_ は、XRP Ledgerを変更する唯一の {% raw-partial file="/@l10n/ja/docs/_snippets/setfee_uniqueness_note.md" /%} - - ## 請求コストの正当化 失敗したトランザクションに対しても[トランザクションコスト](transaction-cost.md)が発生するのは不公平に思えるかもしれませんが、正当な理由から`tec`クラスのエラーが存在します。 -* 失敗したトランザクションの後に送信するトランザクションでは、シーケンス値の番号を変更する必要はありません。失敗したトランザクションをレジャーに組み込むと、トランザクションのシーケンス番号が順に使われ予想される順序が保持されます。 -* ネットワーク全体にトランザクションを拡散されられると、ネットワークの負荷が増大します。トランザクションコストを強制することにより、攻撃者が失敗したトランザクションでネットワークを乱用することが難しくなります。 -* トランザクションコストは実際には非常に少額であるため、大量のトランザクションを送信している場合を除き、ユーザに害を及ぼすことはありません。 - +- 失敗したトランザクションの後に送信するトランザクションでは、シーケンス値の番号を変更する必要はありません。失敗したトランザクションをレジャーに組み込むと、トランザクションのシーケンス番号が順に使われ予想される順序が保持されます。 +- ネットワーク全体にトランザクションを拡散されられると、ネットワークの負荷が増大します。トランザクションコストを強制することにより、攻撃者が失敗したトランザクションでネットワークを乱用することが難しくなります。 +- トランザクションコストは実際には非常に少額であるため、大量のトランザクションを送信している場合を除き、ユーザに害を及ぼすことはありません。 ## トランザクションの承認 @@ -39,21 +36,20 @@ _トランザクション(取引)_ は、XRP Ledgerを変更する唯一の トランザクションは、次のいずれかの署名によって承認できます。 -* 送信元アドレスと数学的に関連付けられている、マスター秘密鍵による単一の署名。[AccountSetトランザクション][]を使用して、マスターキーペアを無効または有効にできます。 -* アドレスに関連付けられているレギュラー秘密鍵と一致する単一の署名。[SetRegularKeyトランザクション][]を使用して、レギュラーキーペアを追加、削除、または置き換えることができます。 -* アドレスが所有する署名者のリストと一致する[マルチシグ](../accounts/multi-signing.md)。[SignerListSetトランザクション][]を使用して、署名者のリストを追加、削除、または置換することができます。 +- 送信元アドレスと数学的に関連付けられている、マスター秘密鍵による単一の署名。[AccountSetトランザクション][]を使用して、マスターキーペアを無効または有効にできます。 +- アドレスに関連付けられているレギュラー秘密鍵と一致する単一の署名。[SetRegularKeyトランザクション][]を使用して、レギュラーキーペアを追加、削除、または置き換えることができます。 +- アドレスが所有する署名者のリストと一致する[マルチシグ](../accounts/multi-signing.md)。[SignerListSetトランザクション][]を使用して、署名者のリストを追加、削除、または置換することができます。 署名の種類に関係なく、あらゆるタイプのトランザクションを承認できます。ただし、次の例外があります。 -* マスター秘密鍵だけが[マスター公開鍵](../../references/protocol/transactions/types/accountset.md)を無効にできます。 -* マスター秘密鍵だけが[フリーズ機能を永続的に放棄](../tokens/fungible-tokens/freezes.md#no-freeze)できます。 -* アドレスからトランザクションに署名する最後の方法を削除することはできません。 +- マスター秘密鍵だけが[マスター公開鍵](../../references/protocol/transactions/types/accountset.md)を無効にできます。 +- マスター秘密鍵だけが[フリーズ機能を永続的に放棄](../tokens/fungible-tokens/freezes.md#no-freeze)できます。 +- アドレスからトランザクションに署名する最後の方法を削除することはできません。 マスターキーとレギュラーキーペアについて詳しくは、[暗号鍵](../accounts/cryptographic-keys.md)をご覧ください。 - ## トランザクションへの署名とトランザクションの送信 XRP Ledgerにトランザクションを送信するには、いくつかの手順を実行する必要があります。 @@ -67,24 +63,23 @@ XRP Ledgerにトランザクションを送信するには、いくつかの手 XRP決済の送信に関する対話型チュートリアルについては、[Send XRP](../../tutorials/how-tos/send-xrp.md)をご覧ください。 - ### 未署名のトランザクションの例 JSON形式の未署名の[Paymentトランザクション][]の例を次に示します。 ```json { - "TransactionType" : "Payment", - "Account" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "Destination" : "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "Amount" : { - "currency" : "USD", - "value" : "1", - "issuer" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn" + "TransactionType": "Payment", + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "Amount": { + "currency": "USD", + "value": "1", + "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn" }, "Fee": "12", "Flags": 2147483648, - "Sequence": 2, + "Sequence": 2 } ``` @@ -98,7 +93,7 @@ XRP Ledgerは、トランザクションオブジェクトが送信元アドレ { "id": 2, "command": "submit", - "tx_blob" : "120000240000000461D4838D7EA4C6800000000000000000000000000055534400000000004B4E9C06F24296074F7BC48F92A97916C6DC5EA968400000000000000F732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB74483046022100982064CDD3F052D22788DB30B52EEA8956A32A51375E72274E417328EBA31E480221008F522C9DB4B0F31E695AA013843958A10DE8F6BA7D6759BEE645F71A7EB240BE81144B4E9C06F24296074F7BC48F92A97916C6DC5EA983143E9D4A2B8AA0780F682D136F7A56D6724EF53754" + "tx_blob": "120000240000000461D4838D7EA4C6800000000000000000000000000055534400000000004B4E9C06F24296074F7BC48F92A97916C6DC5EA968400000000000000F732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB74483046022100982064CDD3F052D22788DB30B52EEA8956A32A51375E72274E417328EBA31E480221008F522C9DB4B0F31E695AA013843958A10DE8F6BA7D6759BEE645F71A7EB240BE81144B4E9C06F24296074F7BC48F92A97916C6DC5EA983143E9D4A2B8AA0780F682D136F7A56D6724EF53754" } ``` @@ -198,7 +193,6 @@ XRP Ledgerは、トランザクションオブジェクトが送信元アドレ } ``` - ## 関連項目 - **コンセプト:** diff --git a/@l10n/ja/docs/concepts/transactions/reliable-transaction-submission.md b/@l10n/ja/docs/concepts/transactions/reliable-transaction-submission.md index c09663d2ba..f8cefbce62 100644 --- a/@l10n/ja/docs/concepts/transactions/reliable-transaction-submission.md +++ b/@l10n/ja/docs/concepts/transactions/reliable-transaction-submission.md @@ -2,11 +2,12 @@ html: reliable-transaction-submission.html parent: transactions.html seo: - description: XRP Ledgerにトランザクションを送信することができるシステムを構築し、最終結果を素早く安全に受け取ります。 + description: XRP Ledgerにトランザクションを送信することができるシステムを構築し、最終結果を素早く安全に受け取ります。 labels: - トランザクション送信 - 開発 --- + # 信頼できるトランザクションの送信 XRP Ledgerを使用する金融機関やその他のサービスは、ここで説明するベストプラクティスを使用し、迅速で確認可能な方法で、トランザクションが検証または拒否されるようにする必要があります。信頼できる(ローカルで運営されている)`rippled`サーバにトランザクションを送信してください。 @@ -69,7 +70,8 @@ APIは、現在の進行中のレジャーにトランザクション候補を 次の図は、トランザクションの送信と結果の判断に推奨されるフローを示します。 -[{% inline-svg file="/docs/img/reliable-tx-submission.svg" /%}](/docs/img/reliable-tx-submission.svg "信頼できるトランザクションの送信フローチャート") + +[{% inline-svg file="/docs/img/reliable-tx-submission.svg" /%}](/docs/img/reliable-tx-submission.svg '信頼できるトランザクションの送信フローチャート') ### 信頼できるトランザクションの送信 @@ -143,13 +145,11 @@ For each persisted transaction without validated result: - 失敗のケース(1)では、トランザクションはレジャーに含まれ、[XRPトランザクションコスト](transaction-cost.md)は消却されましたが、それ以外には何も起こりませんでした。この原因としては、流動性の欠如、適切でない[パス](../tokens/fungible-tokens/paths.md)、またはその他の状況が考えられます。多くの場合、このような失敗の場合には、同様のトランザクションをすぐに試すと同じ結果が出ることが多いです。状況が変わるのを待ってから送信すると、別の結果が得られることがあります。 - 失敗のケース(2)では、トランザクションは検証済みレジャーには含まれないため、何も起こらず、トランザクションコストも消却されませんでした。これは、XRP Ledgerの現在の負荷に対してトランザクションコストが低すぎる、`LastLedgerSequence`が早すぎる、または不安定なネットワーク接続などの状況が原因である可能性があります。 - - 失敗のケース(1)と異なり、このケースでは`LastLedgerSequence`のみを変更(または`Fee`も変更)するだけで、新しいトランザクションが成功する可能性があります。元のトランザクションと同じ`Sequence`番号を使用します。 - また、トランザクションが成功しないのはレジャーのステータスが原因である可能性もあります。例えば、トランザクションに署名するために使用されたキーペアが送信アドレスで無効になっている場合などです。トランザクションの暫定的な結果が[`tef`-class code](../../references/protocol/transactions/transaction-results/tef-codes.md)の場合には、修正をしない限りそのトランザクションが成功する可能性は低くなります。 - 失敗のケース(3)は、予期しない状態を表します。トランザクションが未処理の場合、最新の検証済みレジャーにある送信元アカウントの`Sequence`番号を確認する必要があります。([account_infoメソッド][]を使用して確認できます。)最新の検証済みレジャーにあるアカウントの`Sequence`値がトランザクションの`Sequence`値より大きい場合、同じ`Sequence`値を持つ別のトランザクションが検証済みレジャーに含まれています。システムがこの別のトランザクションを認識していない場合、予期しない状態となり、その原因が特定されるまで処理を停止しなければならなくなります。そうしないと、システムが同じ目標を達成するために複数のトランザクションを送信する可能性があります。行う必要のある手順は、具体的な原因によって変わります。考えられる原因と手順は次のとおりです。 - - 前回送信したトランザクションに[展性](finality-of-results/transaction-malleability.md)があり、実際に検証済みレジャーに含まれていたが、予想と異なるハッシュだった場合。この問題は、`tfFullyCanonicalSig`フラグが含まれないフラグのセットを指定した場合か、必要以上の署名者によってマルチシグされたトランザクションであった場合に起こる可能性があります。これに該当する場合は、その異なるハッシュとトランザクションの最終結果を保存し、通常のアクティビティーを再開します。 - トランザクションを[キャンセル](finality-of-results/canceling-a-transaction.md)して置き換えたため、置き換え後のトランザクションが代わりに処理された場合。障害から復旧しようとしている場合、置き換え後のトランザクションでレコードが失われている可能性があります。その場合、当初確認していたトランザクションは恒久的に失敗し、置き換え後のトランザクションの最終結果が検証済みレジャーバージョンに記録されます。両方の最終結果を保存し、他に欠落したトランザクションや置き換えられたトランザクションがないか確認してから、通常のアクティビティーを再開します。 @@ -173,15 +173,15 @@ For each persisted transaction without validated result: トランザクションの送信および確認のベストプラクティスを実施するには、アプリケーションで以下を実行する必要があります。 1. 署名するアカウントの次のシーケンス番号を判断します - * 各トランザクションにはアカウント固有の[シーケンス番号](../../references/protocol/data-types/basic-data-types.md#アカウントシーケンス)があります。これにより、アカウントによって署名されたトランザクションの実行順序が保証され、再送信しても同じトランザクションがレジャーに二重に適用されることがなくなります。 + - 各トランザクションにはアカウント固有の[シーケンス番号](../../references/protocol/data-types/basic-data-types.md#アカウントシーケンス)があります。これにより、アカウントによって署名されたトランザクションの実行順序が保証され、再送信しても同じトランザクションがレジャーに二重に適用されることがなくなります。 2. `LastLedgerSequence`を決定します - * トランザクションの`LastLedgerSequence`は、最後の検証済みレジャーインデックスから計算されます。 + - トランザクションの`LastLedgerSequence`は、最後の検証済みレジャーインデックスから計算されます。 3. トランザクションを生成して署名します - * 送信前に、署名されたトランザクションの詳細を保持します。 + - 送信前に、署名されたトランザクションの詳細を保持します。 4. トランザクションを送信します - * 初期の結果は暫定的なものであり、変化する可能性があります。 + - 初期の結果は暫定的なものであり、変化する可能性があります。 5. トランザクションの最終結果を判断します - * 最終結果は、レジャー履歴における不変部分です。 + - 最終結果は、レジャー履歴における不変部分です。 アプリケーションでのこれらのアクションの実行方法は、アプリケーションが使用するAPIによって異なります。アプリケーションでは、以下のインターフェイスを使用できます。 @@ -213,22 +213,22 @@ JSON-RPCリクエスト: ```json { - "result": { - "validated": true, - "status": "success", - "ledger_index": 10266396, - "account_data": { - "index": "96AB97A1BBC37F4F8A22CE28109E0D39D709689BDF412FE8EDAFB57A55E37F38", - "Sequence": 4, - "PreviousTxnLgrSeq": 9905632, - "PreviousTxnID": "CAEE0E34B3DB50A7A0CA486E3A236513531DE9E52EAC47CE4C26332CC847DE26", - "OwnerCount": 2, - "LedgerEntryType": "AccountRoot", - "Flags": 0, - "Balance": "49975988", - "Account": "rG5Ro9e3uGEZVCh3zu5gB9ydKUskCs221W" - } + "result": { + "validated": true, + "status": "success", + "ledger_index": 10266396, + "account_data": { + "index": "96AB97A1BBC37F4F8A22CE28109E0D39D709689BDF412FE8EDAFB57A55E37F38", + "Sequence": 4, + "PreviousTxnLgrSeq": 9905632, + "PreviousTxnID": "CAEE0E34B3DB50A7A0CA486E3A236513531DE9E52EAC47CE4C26332CC847DE26", + "OwnerCount": 2, + "LedgerEntryType": "AccountRoot", + "Flags": 0, + "Balance": "49975988", + "Account": "rG5Ro9e3uGEZVCh3zu5gB9ydKUskCs221W" } + } } ``` @@ -253,34 +253,34 @@ JSON-RPCリクエスト: ```json { - "result": { - "status": "success", - "state": { - "validation_quorum": 3, - "validated_ledger": { - "seq": 10268596, - "reserve_inc": 5000000, - "reserve_base": 20000000, - "hash": "0E0901DA980251B8A4CCA17AB4CA6C3168FE83FA1D3F781AFC5B9B097FD209EF", - "close_time": 470798600, - "base_fee": 10 - }, - "server_state": "full", - "published_ledger": 10268596, - "pubkey_node": "n9LGg37Ya2SS9TdJ4XEuictrJmHaicdgTKiPJYi8QRSdvQd3xMnK", - "peers": 58, - "load_factor": 256000, - "load_base": 256, - "last_close": { - "proposers": 5, - "converge_time": 3004 - }, - "io_latency_ms": 2, - "fetch_pack": 10121, - "complete_ledgers": "10256331-10256382,10256412-10268596", - "build_version": "0.26.4-sp3-private" - } + "result": { + "status": "success", + "state": { + "validation_quorum": 3, + "validated_ledger": { + "seq": 10268596, + "reserve_inc": 5000000, + "reserve_base": 20000000, + "hash": "0E0901DA980251B8A4CCA17AB4CA6C3168FE83FA1D3F781AFC5B9B097FD209EF", + "close_time": 470798600, + "base_fee": 10 + }, + "server_state": "full", + "published_ledger": 10268596, + "pubkey_node": "n9LGg37Ya2SS9TdJ4XEuictrJmHaicdgTKiPJYi8QRSdvQd3xMnK", + "peers": 58, + "load_factor": 256000, + "load_base": 256, + "last_close": { + "proposers": 5, + "converge_time": 3004 + }, + "io_latency_ms": 2, + "fetch_pack": 10121, + "complete_ledgers": "10256331-10256382,10256412-10268596", + "build_version": "0.26.4-sp3-private" } + } } ``` @@ -294,26 +294,26 @@ JSON-RPCリクエスト: ```json { - "method": "sign", - "params": [ - { - "offline": true, - "secret": "s████████████████████████████", - "tx_json": { - "Account": "rG5Ro9e3uGEZVCh3zu5gB9ydKUskCs221W", - "Sequence": 4, - "LastLedgerSequence": 10268600, - "Fee": "10000", - "Amount": { - "currency": "FOO", - "issuer": "rG5Ro9e3uGEZVCh3zu5gB9ydKUskCs221W", - "value": "10" - }, - "Destination": "rawz2WQ8i9FdTHp4KSNpBdyxgFqNpKe8fM", - "TransactionType": "Payment" - } - } - ] + "method": "sign", + "params": [ + { + "offline": true, + "secret": "s████████████████████████████", + "tx_json": { + "Account": "rG5Ro9e3uGEZVCh3zu5gB9ydKUskCs221W", + "Sequence": 4, + "LastLedgerSequence": 10268600, + "Fee": "10000", + "Amount": { + "currency": "FOO", + "issuer": "rG5Ro9e3uGEZVCh3zu5gB9ydKUskCs221W", + "value": "10" + }, + "Destination": "rawz2WQ8i9FdTHp4KSNpBdyxgFqNpKe8fM", + "TransactionType": "Payment" + } + } + ] } ``` @@ -325,27 +325,27 @@ JSON-RPCリクエスト: ```json { - "result": { - "tx_json": { - "hash": "395C313F6F11F70FEBAF3785529A6D6DE3F44C7AF679515A7EAE22B30146DE57", - "TxnSignature": "304402202646962A21EC0516FCE62DC9280F79E7265778C571E9410D795E67BB72A2D8E402202FF4AF7B2E2160F5BCA93011CB548014626CAC7FCBEBDB81FE8193CEFF69C753", - "TransactionType": "Payment", - "SigningPubKey": "0267268EE0DDDEE6A862C9FF9DDAF898CF17060A673AF771B565AA2F4AE24E3FC5", - "Sequence": 4, - "LastLedgerSequence": 10268600, - "Flags": 2147483648, - "Fee": "10000", - "Destination": "rawz2WQ8i9FdTHp4KSNpBdyxgFqNpKe8fM", - "Amount": { - "value": "10", - "issuer": "rG5Ro9e3uGEZVCh3zu5gB9ydKUskCs221W", - "currency": "FOO" - }, - "Account": "rG5Ro9e3uGEZVCh3zu5gB9ydKUskCs221W" - }, - "tx_blob": "12000022800000002400000004201B009CAFB861D4C38D7EA4C68000000000000000000000000000464F4F0000000000AC5FA3BB28A09BD2EC1AE0EED2315060E83D796A68400000000000271073210267268EE0DDDEE6A862C9FF9DDAF898CF17060A673AF771B565AA2F4AE24E3FC57446304402202646962A21EC0516FCE62DC9280F79E7265778C571E9410D795E67BB72A2D8E402202FF4AF7B2E2160F5BCA93011CB548014626CAC7FCBEBDB81FE8193CEFF69C7538114AC5FA3BB28A09BD2EC1AE0EED2315060E83D796A831438BC6F9F5A6F6C4E474DB0D59892E90C2C7CED5C", - "status": "success" - } + "result": { + "tx_json": { + "hash": "395C313F6F11F70FEBAF3785529A6D6DE3F44C7AF679515A7EAE22B30146DE57", + "TxnSignature": "304402202646962A21EC0516FCE62DC9280F79E7265778C571E9410D795E67BB72A2D8E402202FF4AF7B2E2160F5BCA93011CB548014626CAC7FCBEBDB81FE8193CEFF69C753", + "TransactionType": "Payment", + "SigningPubKey": "0267268EE0DDDEE6A862C9FF9DDAF898CF17060A673AF771B565AA2F4AE24E3FC5", + "Sequence": 4, + "LastLedgerSequence": 10268600, + "Flags": 2147483648, + "Fee": "10000", + "Destination": "rawz2WQ8i9FdTHp4KSNpBdyxgFqNpKe8fM", + "Amount": { + "value": "10", + "issuer": "rG5Ro9e3uGEZVCh3zu5gB9ydKUskCs221W", + "currency": "FOO" + }, + "Account": "rG5Ro9e3uGEZVCh3zu5gB9ydKUskCs221W" + }, + "tx_blob": "12000022800000002400000004201B009CAFB861D4C38D7EA4C68000000000000000000000000000464F4F0000000000AC5FA3BB28A09BD2EC1AE0EED2315060E83D796A68400000000000271073210267268EE0DDDEE6A862C9FF9DDAF898CF17060A673AF771B565AA2F4AE24E3FC57446304402202646962A21EC0516FCE62DC9280F79E7265778C571E9410D795E67BB72A2D8E402202FF4AF7B2E2160F5BCA93011CB548014626CAC7FCBEBDB81FE8193CEFF69C7538114AC5FA3BB28A09BD2EC1AE0EED2315060E83D796A831438BC6F9F5A6F6C4E474DB0D59892E90C2C7CED5C", + "status": "success" + } } ``` @@ -359,12 +359,12 @@ JSON-RPCリクエスト: ```json { - "method": "submit", - "params": [ - { - "tx_blob": "12000022800000002400000004201B009CAFB861D4C38D7EA4C68000000000000000000000000000464F4F0000000000AC5FA3BB28A09BD2EC1AE0EED2315060E83D796A68400000000000271073210267268EE0DDDEE6A862C9FF9DDAF898CF17060A673AF771B565AA2F4AE24E3FC57446304402202646962A21EC0516FCE62DC9280F79E7265778C571E9410D795E67BB72A2D8E402202FF4AF7B2E2160F5BCA93011CB548014626CAC7FCBEBDB81FE8193CEFF69C7538114AC5FA3BB28A09BD2EC1AE0EED2315060E83D796A831438BC6F9F5A6F6C4E474DB0D59892E90C2C7CED5C" - } - ] + "method": "submit", + "params": [ + { + "tx_blob": "12000022800000002400000004201B009CAFB861D4C38D7EA4C68000000000000000000000000000464F4F0000000000AC5FA3BB28A09BD2EC1AE0EED2315060E83D796A68400000000000271073210267268EE0DDDEE6A862C9FF9DDAF898CF17060A673AF771B565AA2F4AE24E3FC57446304402202646962A21EC0516FCE62DC9280F79E7265778C571E9410D795E67BB72A2D8E402202FF4AF7B2E2160F5BCA93011CB548014626CAC7FCBEBDB81FE8193CEFF69C7538114AC5FA3BB28A09BD2EC1AE0EED2315060E83D796A831438BC6F9F5A6F6C4E474DB0D59892E90C2C7CED5C" + } + ] } ``` @@ -372,30 +372,30 @@ JSON-RPCリクエスト: ```json { - "result": { - "tx_json": { - "hash": "395C313F6F11F70FEBAF3785529A6D6DE3F44C7AF679515A7EAE22B30146DE57", - "TxnSignature": "304402202646962A21EC0516FCE62DC9280F79E7265778C571E9410D795E67BB72A2D8E402202FF4AF7B2E2160F5BCA93011CB548014626CAC7FCBEBDB81FE8193CEFF69C753", - "TransactionType": "Payment", - "SigningPubKey": "0267268EE0DDDEE6A862C9FF9DDAF898CF17060A673AF771B565AA2F4AE24E3FC5", - "Sequence": 4, - "LastLedgerSequence": 10268600, - "Flags": 2147483648, - "Fee": "10000", - "Destination": "rawz2WQ8i9FdTHp4KSNpBdyxgFqNpKe8fM", - "Amount": { - "value": "10", - "issuer": "rG5Ro9e3uGEZVCh3zu5gB9ydKUskCs221W", - "currency": "FOO" - }, - "Account": "rG5Ro9e3uGEZVCh3zu5gB9ydKUskCs221W" - }, - "tx_blob": "12000022800000002400000004201B009CAFB861D4C38D7EA4C68000000000000000000000000000464F4F0000000000AC5FA3BB28A09BD2EC1AE0EED2315060E83D796A68400000000000271073210267268EE0DDDEE6A862C9FF9DDAF898CF17060A673AF771B565AA2F4AE24E3FC57446304402202646962A21EC0516FCE62DC9280F79E7265778C571E9410D795E67BB72A2D8E402202FF4AF7B2E2160F5BCA93011CB548014626CAC7FCBEBDB81FE8193CEFF69C7538114AC5FA3BB28A09BD2EC1AE0EED2315060E83D796A831438BC6F9F5A6F6C4E474DB0D59892E90C2C7CED5C", - "status": "success", - "engine_result_message": "The transaction was applied.", - "engine_result_code": 0, - "engine_result": "tesSUCCESS" - } + "result": { + "tx_json": { + "hash": "395C313F6F11F70FEBAF3785529A6D6DE3F44C7AF679515A7EAE22B30146DE57", + "TxnSignature": "304402202646962A21EC0516FCE62DC9280F79E7265778C571E9410D795E67BB72A2D8E402202FF4AF7B2E2160F5BCA93011CB548014626CAC7FCBEBDB81FE8193CEFF69C753", + "TransactionType": "Payment", + "SigningPubKey": "0267268EE0DDDEE6A862C9FF9DDAF898CF17060A673AF771B565AA2F4AE24E3FC5", + "Sequence": 4, + "LastLedgerSequence": 10268600, + "Flags": 2147483648, + "Fee": "10000", + "Destination": "rawz2WQ8i9FdTHp4KSNpBdyxgFqNpKe8fM", + "Amount": { + "value": "10", + "issuer": "rG5Ro9e3uGEZVCh3zu5gB9ydKUskCs221W", + "currency": "FOO" + }, + "Account": "rG5Ro9e3uGEZVCh3zu5gB9ydKUskCs221W" + }, + "tx_blob": "12000022800000002400000004201B009CAFB861D4C38D7EA4C68000000000000000000000000000464F4F0000000000AC5FA3BB28A09BD2EC1AE0EED2315060E83D796A68400000000000271073210267268EE0DDDEE6A862C9FF9DDAF898CF17060A673AF771B565AA2F4AE24E3FC57446304402202646962A21EC0516FCE62DC9280F79E7265778C571E9410D795E67BB72A2D8E402202FF4AF7B2E2160F5BCA93011CB548014626CAC7FCBEBDB81FE8193CEFF69C7538114AC5FA3BB28A09BD2EC1AE0EED2315060E83D796A831438BC6F9F5A6F6C4E474DB0D59892E90C2C7CED5C", + "status": "success", + "engine_result_message": "The transaction was applied.", + "engine_result_code": 0, + "engine_result": "tesSUCCESS" + } } ``` @@ -409,13 +409,13 @@ JSON-RPCリクエスト: ```json { - "method": "tx", - "params": [ - { - "transaction": "395C313F6F11F70FEBAF3785529A6D6DE3F44C7AF679515A7EAE22B30146DE57", - "binary": false - } - ] + "method": "tx", + "params": [ + { + "transaction": "395C313F6F11F70FEBAF3785529A6D6DE3F44C7AF679515A7EAE22B30146DE57", + "binary": false + } + ] } ``` @@ -463,17 +463,17 @@ JSON-RPCリクエスト: ```json { - "result": { - "status": "error", - "request": { - "transaction": "395C313F6F11F70FEBAF3785529A6D6DE3F44C7AF679515A7EAE22B30146DE56", - "command": "tx", - "binary": false - }, - "error_message": "Transaction not found.", - "error_code": 24, - "error": "txnNotFound" - } + "result": { + "status": "error", + "request": { + "transaction": "395C313F6F11F70FEBAF3785529A6D6DE3F44C7AF679515A7EAE22B30146DE56", + "command": "tx", + "binary": false + }, + "error_message": "Transaction not found.", + "error_code": 24, + "error": "txnNotFound" + } } ``` @@ -483,32 +483,32 @@ JSON-RPCリクエスト: ```json { - "result": { - "status": "success", - "state": { - "validation_quorum": 3, - "validated_ledger": { - "seq": 10269447, - "reserve_inc": 5000000, - "reserve_base": 20000000, - "hash": "D05C7ECC66DD6F4FEA3A6394F209EB5D6824A76C16438F562A1749CCCE7EAFC2", - "close_time": 470802340, - "base_fee": 10 - }, - "server_state": "full", - "pubkey_node": "n9LJ5eCNjeUXQpNXHCcLv9PQ8LMFYy4W8R1BdVNcpjc1oDwe6XZF", - "peers": 84, - "load_factor": 256000, - "load_base": 256, - "last_close": { - "proposers": 5, - "converge_time": 2002 - }, - "io_latency_ms": 1, - "complete_ledgers": "10256331-10256382,10256412-10269447", - "build_version": "0.26.4-sp3-private" - } + "result": { + "status": "success", + "state": { + "validation_quorum": 3, + "validated_ledger": { + "seq": 10269447, + "reserve_inc": 5000000, + "reserve_base": 20000000, + "hash": "D05C7ECC66DD6F4FEA3A6394F209EB5D6824A76C16438F562A1749CCCE7EAFC2", + "close_time": 470802340, + "base_fee": 10 + }, + "server_state": "full", + "pubkey_node": "n9LJ5eCNjeUXQpNXHCcLv9PQ8LMFYy4W8R1BdVNcpjc1oDwe6XZF", + "peers": 84, + "load_factor": 256000, + "load_base": 256, + "last_close": { + "proposers": 5, + "converge_time": 2002 + }, + "io_latency_ms": 1, + "complete_ledgers": "10256331-10256382,10256412-10269447", + "build_version": "0.26.4-sp3-private" } + } } ``` diff --git a/@l10n/ja/docs/concepts/transactions/secure-signing.md b/@l10n/ja/docs/concepts/transactions/secure-signing.md index a1e2ac5879..9510b0a9ac 100644 --- a/@l10n/ja/docs/concepts/transactions/secure-signing.md +++ b/@l10n/ja/docs/concepts/transactions/secure-signing.md @@ -2,11 +2,12 @@ html: secure-signing.html parent: transactions.html seo: - description: 安全にトランザクションを送信できる環境を設定します。 + description: 安全にトランザクションを送信できる環境を設定します。 labels: - セキュリティ - 開発 --- + # 安全な署名 [トランザクション](index.md)をXRP Ledgerに送信するには、[秘密鍵](../accounts/cryptographic-keys.md)のセキュリティを損なわない方法でトランザクションにデジタル署名する必要があります。(他の人があなたの秘密鍵にアクセスできる場合、その人はあなたと同じようにあなたのアカウントを操作できるため、すべての資金が盗まれたり消却されたりする可能性があります。)このページでは、トランザクションに安全に署名できる環境の設定方法について説明します。 @@ -25,7 +26,8 @@ labels: ## 安全でない構成 -[{% inline-svg file="/docs/img/insecure-signing-options.svg" /%}](/docs/img/insecure-signing-options.svg "安全でない構成の図") + +[{% inline-svg file="/docs/img/insecure-signing-options.svg" /%}](/docs/img/insecure-signing-options.svg '安全でない構成の図') 外部のソースからあなたの秘密鍵にアクセスできる構成は危険で、不正使用者によってあなたのすべてのXRP(およびあなたのXRP Ledgerのアドレスにあるすべてのもの)が盗まれる可能性があります。そのような構成の例としては、インターネット経由で他の人の`rippled`サーバの[signメソッド][]を使用する構成や、秘密鍵をインターネットを経由してプレーンテキストで自己所有サーバに送信する構成などがあります。 @@ -33,31 +35,29 @@ labels: - ## ローカルでrippledを実行する -[{% inline-svg file="/docs/img/secure-signing-local-rippled.svg" /%}](/docs/img/secure-signing-local-rippled.svg "署名にローカルrippledサーバを使用する構成の図") +[{% inline-svg file="/docs/img/secure-signing-local-rippled.svg" /%}](/docs/img/secure-signing-local-rippled.svg '署名にローカルrippledサーバを使用する構成の図') -この構成では、トランザクションを生成するマシンで`rippled`を実行します。 秘密鍵はマシンから出ていかないため、マシンへのアクセス権がない人は秘密鍵にアクセスできません。もちろん、マシンのセキュリティ保護に関する業界標準のプラクティスに従ってください。この構成を使用するには、次の手順を実行します。 +この構成では、トランザクションを生成するマシンで`rippled`を実行します。 秘密鍵はマシンから出ていかないため、マシンへのアクセス権がない人は秘密鍵にアクセスできません。もちろん、マシンのセキュリティ保護に関する業界標準のプラクティスに従ってください。この構成を使用するには、次の手順を実行します。 1. [`rippled`をインストール](../../infrastructure/installation/index.md)します。 - ローカルマシンが[`rippled`の最小システム要件](../../infrastructure/installation/system-requirements.md)を満たしていることを確認します。 + ローカルマシンが[`rippled`の最小システム要件](../../infrastructure/installation/system-requirements.md)を満たしていることを確認します。 2. トランザクションに署名する必要がある場合は、`localhost`または`127.0.0.1`のサーバに接続します。シングル署名の場合は[signメソッド][]、マルチシグの場合は[sign_forメソッド][]を使用します。 - [構成ファイルの例](https://github.com/XRPLF/rippled/blob/8429dd67e60ba360da591bfa905b58a35638fda1/cfg/rippled-example.cfg#L1050-L1073)では、ローカルループバックネットワーク上(127.0.0.1)のポート5005でJSON-RPC(HTTP)、ポート6006でWebSocket(WS)の接続をリッスンし、接続されるすべてのクライアントを管理者として扱っています。 + [構成ファイルの例](https://github.com/XRPLF/rippled/blob/8429dd67e60ba360da591bfa905b58a35638fda1/cfg/rippled-example.cfg#L1050-L1073)では、ローカルループバックネットワーク上(127.0.0.1)のポート5005でJSON-RPC(HTTP)、ポート6006でWebSocket(WS)の接続をリッスンし、接続されるすべてのクライアントを管理者として扱っています。 - {% admonition type="warning" name="注意" %}署名に[コマンドラインAPI](../../references/http-websocket-apis/api-conventions/request-formatting.md#コマンドライン形式)を使用する場合は、コマンドラインでないクライアントで[Websocket APIやJSON-RPC APIを使用](../../tutorials/http-websocket-apis/build-apps/get-started.md)する場合よりもセキュリティが弱くなります。コマンドライン構文を使用すると、秘密鍵がシステムのプロセスリストで他のユーザに見える可能性があり、シェル履歴にプレーンテキスト形式でキーが保存される可能性があります。{% /admonition %} + {% admonition type="warning" name="注意" %}署名に[コマンドラインAPI](../../references/http-websocket-apis/api-conventions/request-formatting.md#コマンドライン形式)を使用する場合は、コマンドラインでないクライアントで[Websocket APIやJSON-RPC APIを使用](../../tutorials/http-websocket-apis/build-apps/get-started.md)する場合よりもセキュリティが弱くなります。コマンドライン構文を使用すると、秘密鍵がシステムのプロセスリストで他のユーザに見える可能性があり、シェル履歴にプレーンテキスト形式でキーが保存される可能性があります。{% /admonition %} 3. サーバの使用中は、稼働状態と最新状態を維持して、ネットワークと同期されるようにしておく必要があります。 - {% admonition type="info" name="注記" %}トランザクションを送信していないときは`rippled`サーバをオフにすることが _可能_ ですが、再び起動したときにネットワークとの同期に最大15分かかります。{% /admonition %} - + {% admonition type="info" name="注記" %}トランザクションを送信していないときは`rippled`サーバをオフにすることが _可能_ ですが、再び起動したときにネットワークとの同期に最大15分かかります。{% /admonition %} ## 同じLAN内でrippledを実行する -[{% inline-svg file="/docs/img/secure-signing-lan-rippled.svg" /%}](/docs/img/secure-signing-lan-rippled.svg "署名にLAN経由でrippledサーバを使用する構成の図") +[{% inline-svg file="/docs/img/secure-signing-lan-rippled.svg" /%}](/docs/img/secure-signing-lan-rippled.svg '署名にLAN経由でrippledサーバを使用する構成の図') この構成では、署名するトランザクションを生成するマシンと同じプライベートローカルエリアネットワーク(LAN)内の専用マシンで`rippled`サーバを実行します。この構成では、`rippled`を実行する専用の1台のマシンを使用しながら、中程度のシステムスペックの1台以上のマシンでトランザクションの指示を組み立てることができます。自己所有のデータセンターやサーバルームがある場合に魅力的な選択肢です。 @@ -67,10 +67,9 @@ labels: 必ず、マシンのセキュリティ保護に関する業界標準のプラクティスに従ってください。例えば、ファイアウォール、ウイルス対策、適切なユーザ権限を使用するなどです。 - ## ローカル署名機能のあるクライアントライブラリを使用する -[{% inline-svg file="/docs/img/secure-signing-client-library.svg" /%}](/docs/img/secure-signing-client-library.svg "ローカル署名機能のあるクライアントライブラリを使用する構成の図") +[{% inline-svg file="/docs/img/secure-signing-client-library.svg" /%}](/docs/img/secure-signing-client-library.svg 'ローカル署名機能のあるクライアントライブラリを使用する構成の図') この構成では、使用するプログラミング言語で、署名を組み込んだクライアントライブラリを使用します。ローカル署名を実行できるライブラリの一覧は、[クライアントライブラリ](../../references/client-libraries.md)をご覧ください。 @@ -78,24 +77,23 @@ labels: 署名ライブラリのセキュリティを最適化するために、次のベストプラクティスを使用してください。 -* 使用する署名ライブラリが、署名アルゴリズムを適切かつ安全に実装 していることを確認してください。例えば、ライブラリがデフォルトのECDSAアルゴリズムを使用する場合、[RFC-6979](https://tools.ietf.org/html/rfc6979)に記述されているように、決定論的なnoncesも使用すべきです。 +- 使用する署名ライブラリが、署名アルゴリズムを適切かつ安全に実装 していることを確認してください。例えば、ライブラリがデフォルトのECDSAアルゴリズムを使用する場合、[RFC-6979](https://tools.ietf.org/html/rfc6979)に記述されているように、決定論的なnoncesも使用すべきです。 - 上記のすべての公開ライブラリは、業界のベストプラクティスに従っています。 + 上記のすべての公開ライブラリは、業界のベストプラクティスに従っています。 +- クライアントライブラリを最新の安定版に更新してください。 -* クライアントライブラリを最新の安定版に更新してください。 - -* セキュリティ強化のため、[Vault](https://www.vaultproject.io/)などの管理ツールから秘密鍵を読み込みます。 +- セキュリティ強化のため、[Vault](https://www.vaultproject.io/)などの管理ツールから秘密鍵を読み込みます。 ### ローカル署名の例 以下は、以下の言語とライブラリを使用して、ローカルでトランザクションに署名する方法の例です。 -* **JavaScript** / **TypeScript** - [`xrpl.js`](https://github.com/XRPLF/xrpl.js) +- **JavaScript** / **TypeScript** - [`xrpl.js`](https://github.com/XRPLF/xrpl.js) -* **Python** - [`xrpl-py`](https://github.com/XRPLF/xrpl-py) +- **Python** - [`xrpl-py`](https://github.com/XRPLF/xrpl-py) -* **Java** - [`xrpl4j`](https://github.com/XRPLF/xrpl4j) +- **Java** - [`xrpl4j`](https://github.com/XRPLF/xrpl4j) {% tabs %} @@ -113,40 +111,37 @@ labels: {% /tabs %} - ## 専用の署名デバイスを使用する -[{% inline-svg file="/docs/img/secure-signing-dedicated-hardware.svg" /%}](/docs/img/secure-signing-dedicated-hardware.svg "専用の署名ハードウェアの使用の図") +[{% inline-svg file="/docs/img/secure-signing-dedicated-hardware.svg" /%}](/docs/img/secure-signing-dedicated-hardware.svg '専用の署名ハードウェアの使用の図') 専用の署名デバイスが各社から販売されており、例えば[Ledger Nano S](https://www.ledger.com/products/ledger-nano-s)は、秘密鍵をデバイスから出さずに使ってXRP Ledgerトランザクションに署名できます。すべてのタイプのトランザクションに対応していないデバイスもあります。 この構成の設定は、特定のデバイスによって異なります。場合によっては、署名デバイスと通信するためにマシンで「マネージャー」アプリケーションを実行する必要があります。そのようなデバイスの設定と使用方法については、メーカーの手順をご覧ください。 - ## リモートrippledサーバに対して安全なVPNを使用する -[{% inline-svg file="/docs/img/secure-signing-over-vpn.svg" /%}](/docs/img/secure-signing-over-vpn.svg "VPNを経由してリモート`rippled`に安全に接続する構成の図") +[{% inline-svg file="/docs/img/secure-signing-over-vpn.svg" /%}](/docs/img/secure-signing-over-vpn.svg 'VPNを経由してリモート`rippled`に安全に接続する構成の図') この構成では、コロケーション施設や遠隔地のデータセンターなどにあるリモートでホストされている`rippled`サーバを使用し、暗号化されたVPNを使用してそのサーバに接続します。 この構成を使用するには、[プライベートLANで`rippled`を実行](#同じlan内でrippledを実行する)するための手順に従いますが、VPNを使用してリモート`rippled`サーバのLANに接続します。VPNの設定手順は環境によって異なり、このガイドでは説明しません。 - ## 関連項目 - **コンセプト:** - - [暗号鍵](../accounts/cryptographic-keys.md) - - [マルチシグ](../accounts/multi-signing.md) + - [暗号鍵](../accounts/cryptographic-keys.md) + - [マルチシグ](../accounts/multi-signing.md) - **チュートリアル:** - - [rippledのインストール](../../infrastructure/installation/index.md) - - [レギュラーキーペアの割り当て](../../tutorials/how-tos/manage-account-settings/assign-a-regular-key-pair.md) - - [信頼できるトランザクションの送信](reliable-transaction-submission.md) - - [パブリック署名の有効化](../../infrastructure/configuration/enable-public-signing.md) + - [rippledのインストール](../../infrastructure/installation/index.md) + - [レギュラーキーペアの割り当て](../../tutorials/how-tos/manage-account-settings/assign-a-regular-key-pair.md) + - [信頼できるトランザクションの送信](reliable-transaction-submission.md) + - [パブリック署名の有効化](../../infrastructure/configuration/enable-public-signing.md) - **リファレンス:** - - [signメソッド][] - - [submitメソッド][] - - [xrpl.jsリファレンス](https://js.xrpl.org/) - - [`xrpl-py`リファレンス](https://xrpl-py.readthedocs.io/) - - [`xrpl4j` Reference](https://javadoc.io/doc/org.xrpl/) + - [signメソッド][] + - [submitメソッド][] + - [xrpl.jsリファレンス](https://js.xrpl.org/) + - [`xrpl-py`リファレンス](https://xrpl-py.readthedocs.io/) + - [`xrpl4j` Reference](https://javadoc.io/doc/org.xrpl/) {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/concepts/transactions/source-and-destination-tags.md b/@l10n/ja/docs/concepts/transactions/source-and-destination-tags.md index 8cf78f3488..6738ec4b13 100644 --- a/@l10n/ja/docs/concepts/transactions/source-and-destination-tags.md +++ b/@l10n/ja/docs/concepts/transactions/source-and-destination-tags.md @@ -2,12 +2,13 @@ html: source-and-destination-tags.html parent: transactions.html seo: - description: 送信元タグと宛先タグを使用して、多目的アドレスからの、または多目的アドレスへの支払いを行います。 + description: 送信元タグと宛先タグを使用して、多目的アドレスからの、または多目的アドレスへの支払いを行います。 labels: - 支払い - アカウント - セキュリティ --- + # 送信元タグと宛先タグ _送信元タグ_ と _宛先タグ_ は、XRP Ledgerの[支払い](../payment-types/index.md)機能で、多目的アドレスからの支払いや多目的アドレスへの支払いの特定の目的を示すことができます。送信元タグと宛先タグは、台帳上の直接的な機能を持ちません。送信元タグと宛先タグは、台帳外のシステムがどのように支払いを処理すべきかについての情報を提供するだけです。トランザクションでは、送信元タグも宛先タグも 32ビット符号なし整数の形式です。 @@ -39,12 +40,10 @@ _送信元タグ_ と _宛先タグ_ は、XRP Ledgerの[支払い](../payment-t タグを番号順に割り当てると、顧客のプライバシーが損なわれます。XRP Ledgerのトランザクションはすべて公開されているため、番号順でタグを割り当てると、タグとユーザのアドレスの対応を推測したり、使用されているタグに基づいてユーザのアカウントに関する情報を導き出したりすることが可能になります。 - ## タグの必須化 複数の顧客口座への支払いを受け取る可能性があるXRP Ledgerアドレスにとって、宛先タグなしで支払いを受け取ることは問題です。どの顧客に入金すべきかがすぐに分からないため、手作業が必要になったり、誰が受取人であったかを特定するために送金者とやり取りをしなければならなくなったりします。このようなケースを減らすために、[`RequireDest`設定を有効にする](../../tutorials/how-tos/manage-account-settings/require-destination-tags.md)ことができます。そうすることで、もしユーザが支払先にタグを設定し忘れた場合、XRP Ledgerはその支払いを拒否します。その後、ユーザはそのタグを使って再度支払いを行うことができます。 - ## 関連項目 - [宛先タグの必須化](../../tutorials/how-tos/manage-account-settings/require-destination-tags.md) diff --git a/@l10n/ja/docs/concepts/transactions/transaction-cost.md b/@l10n/ja/docs/concepts/transactions/transaction-cost.md index 01499ed9fa..0575431d56 100644 --- a/@l10n/ja/docs/concepts/transactions/transaction-cost.md +++ b/@l10n/ja/docs/concepts/transactions/transaction-cost.md @@ -2,18 +2,18 @@ html: transaction-cost.html parent: transactions.html seo: - description: トランザクションコストとはトランザクション送信のために償却される少額のXRPで、これによってレジャーがスパムから保護されます。トランザクションコストの適用方法について説明します。 + description: トランザクションコストとはトランザクション送信のために償却される少額のXRPで、これによってレジャーがスパムから保護されます。トランザクションコストの適用方法について説明します。 labels: - 手数料 - トランザクション送信 --- + # トランザクションコスト XRP LedgerをスパムやDoS攻撃から守るため、各トランザクションでは少額の[XRP](../../introduction/what-is-xrp.md)が消却されます。この _トランザクションコスト_ はネットワークの負荷とともに増加するように設計されており、故意または不注意にネットワークに過剰な負荷をかけると非常に高くつきます。 各トランザクションのトランザクションコストを支払う際には、[消却するXRPの額を指定](#トランザクションコストの指定)する必要があります。 - ## 現在のトランザクションコスト ネットワークが標準のトランザクションに必要とする現在の最低トランザクションコストは**0.00001 XRP**(10 drop)です。これは負荷が通常より高くなると増加することがあります。 @@ -24,33 +24,30 @@ XRP LedgerをスパムやDoS攻撃から守るため、各トランザクショ 一部のトランザクションには異なるトランザクションコストがあります。 -| トランザクション | 負荷スケーリング前のコスト | -|-----------------------|--------------------------| -| [Referenceトランザクション](#referenceトランザクションコスト)(ほとんどのトランザクション) | 10 drop | -| [Key Resetトランザクション](#key-resetトランザクション)| 0 | -| [マルチシグトランザクション](../accounts/multi-signing.md)| 10 drop × (1 + 署名の数) | -| [フルフィルメントを伴うEscrowFinishトランザクション](../../references/protocol/transactions/types/escrowfinish.md)| 10 drop × (33 + (バイト単位のフルフィルメントサイズ ÷ 16)) | -| [AccountDeleteトランザクション](../accounts/deleting-accounts.md)| 2,000,000 drop | - +| トランザクション | 負荷スケーリング前のコスト | +| ------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------- | +| [Referenceトランザクション](#referenceトランザクションコスト)(ほとんどのトランザクション) | 10 drop | +| [Key Resetトランザクション](#key-resetトランザクション) | 0 | +| [マルチシグトランザクション](../accounts/multi-signing.md) | 10 drop × (1 + 署名の数) | +| [フルフィルメントを伴うEscrowFinishトランザクション](../../references/protocol/transactions/types/escrowfinish.md) | 10 drop × (33 + (バイト単位のフルフィルメントサイズ ÷ 16)) | +| [AccountDeleteトランザクション](../accounts/deleting-accounts.md) | 2,000,000 drop | ## トランザクションコストの受取人 トランザクションコストは誰かに支払われるものではありません。XRPは取り消し不能で消却されます。XRPを新たに作ることはできないため、XRPの希少性が高まり、XRPの価値を高めることによって、すべてのXRP保有者に利益がもたらされます。 - ## 負荷コストとオープンレジャーコスト [FeeEscalation Amendment][]が有効な場合、トランザクションコストには以下の2つのしきい値があります。 -* トランザクションコストが`rippled`サーバの[負荷ベーストランザクションコストのしきい値](#ローカル負荷コスト)を満たしていない場合、サーバはそのトランザクションを完全に無視します。(このロジックはAmendmentの有無にかかわらず基本的に変わりません。) -* トランザクションコストが`rippled`サーバの[オープンレジャーコストのしきい値](#オープンレジャーコスト)を満たしていない場合、サーバはそのトランザクションを後のレジャーのキューに入れます。 +- トランザクションコストが`rippled`サーバの[負荷ベーストランザクションコストのしきい値](#ローカル負荷コスト)を満たしていない場合、サーバはそのトランザクションを完全に無視します。(このロジックはAmendmentの有無にかかわらず基本的に変わりません。) +- トランザクションコストが`rippled`サーバの[オープンレジャーコストのしきい値](#オープンレジャーコスト)を満たしていない場合、サーバはそのトランザクションを後のレジャーのキューに入れます。 これによってトランザクションは大まかに以下の3つのカテゴリに分けられます。 -* トランザクションコストが低く設定され、負荷ベーストランザクションコストによって拒否されるトランザクション。 -* トランザクションコストが高く設定され、現在のオープンレジャーに組み入れられるトランザクション。 -* その中間のトランザクション。[後のレジャーバージョンのキューに入れられます](#キューに入れられたトランザクション)。 - +- トランザクションコストが低く設定され、負荷ベーストランザクションコストによって拒否されるトランザクション。 +- トランザクションコストが高く設定され、現在のオープンレジャーに組み入れられるトランザクション。 +- その中間のトランザクション。[後のレジャーバージョンのキューに入れられます](#キューに入れられたトランザクション)。 ## ローカル負荷コスト @@ -78,15 +75,14 @@ XRP LedgerをスパムやDoS攻撃から守るため、各トランザクショ ### 手数料レベル - _手数料レベル_ は、トランザクションの最少コストと実際のコストとの相対的な差を表します。[オープンレジャーコスト](#オープンレジャーコスト)は絶対的なコストではなく手数料レベルで評価されます。比較する場合は以下の表をご覧ください。 - -| トランザクション | drop単位の最少コスト | 手数料レベルでの最少コスト | drop単位で倍のコスト | 手数料レベルで倍のコスト | -|-------------|-----------------------|----------------------------|----------------------|---------------------------| -| Referenceトランザクション(ほとんどのトランザクション) | 10 | 256 | 20 | 512 | -| 4つの署名を持つ[マルチシグトランザクション](../accounts/multi-signing.md) | 50 | 256 | 100 | 512 | -| [Key Resetトランザクション](transaction-cost.md#key-resetトランザクション) | 0 | (事実上無限) | なし | (事実上無限) | -| 32バイトのプリイメージ付きの[EscrowFinishトランザクション](../../references/protocol/transactions/types/escrowfinish.md)。 | 350 | 256 | 700 | 512 | +_手数料レベル_ は、トランザクションの最少コストと実際のコストとの相対的な差を表します。[オープンレジャーコスト](#オープンレジャーコスト)は絶対的なコストではなく手数料レベルで評価されます。比較する場合は以下の表をご覧ください。 +| トランザクション | drop単位の最少コスト | 手数料レベルでの最少コスト | drop単位で倍のコスト | 手数料レベルで倍のコスト | +| -------------------------------------------------------------------------------------------------------------------------- | -------------------- | -------------------------- | -------------------- | ------------------------ | +| Referenceトランザクション(ほとんどのトランザクション) | 10 | 256 | 20 | 512 | +| 4つの署名を持つ[マルチシグトランザクション](../accounts/multi-signing.md) | 50 | 256 | 100 | 512 | +| [Key Resetトランザクション](transaction-cost.md#key-resetトランザクション) | 0 | (事実上無限) | なし | (事実上無限) | +| 32バイトのプリイメージ付きの[EscrowFinishトランザクション](../../references/protocol/transactions/types/escrowfinish.md)。 | 350 | 256 | 700 | 512 | ## トランザクションコストの問い合わせ @@ -100,15 +96,12 @@ XRP LedgerをスパムやDoS攻撃から守るため、各トランザクショ **XRP単位の現在のトランザクションコスト = `base_fee_xrp` × `load_factor`** - ### server_state [server_stateメソッド][]は、`rippled`の内部負荷計算の内容をそのままの表示形式で返します。この場合、有効負荷率は`load_base`に対する`load_factor`の割合です。`validated_ledger.base_fee`パラメーターは、[XRPのdrop](../../references/protocol/data-types/basic-data-types.md#通貨額の指定)単位の最低トランザクションコストをレポートします。この設計により、`rippled`では整数のみでトランザクションコストの計算ができ、サーバ負荷の微調整も十分に行えます。実際のトランザクションコストの計算は以下のようになります。 **drop単位の現在のトランザクションコスト = (`base_fee` × `load_factor`) ÷ `load_base`** - - ## トランザクションコストの指定 署名されたすべてのトランザクションの[`Fee`フィールド](../../references/protocol/transactions/common-fields.md)には、トランザクションコストを含める必要があります。署名されたトランザクションのすべてのフィールドと同様に、このフィールドは署名の無効化を行わなければ変更できません。 @@ -117,19 +110,16 @@ XRP LedgerをスパムやDoS攻撃から守るため、各トランザクショ トランザクションに署名する前に、[現在の負荷ベースのトランザクションコストを調べる](#トランザクションコストの問い合わせ)ことをお勧めします。負荷スケーリングが原因でトランザクションコストが高い場合は、低下するまで待つことができます。トランザクションをすぐに送信するつもりがない場合は、トランザクションコストにおける将来の負荷ベースの変動を考慮して、少し高めのトランザクションコストを指定することをお勧めします。 - ### トランザクションコストの自動指定 オンラインでトランザクションに署名する場合は、`Fee`フィールドを省略できます。この場合、`rippled`または[クライアントライブラリ](../../references/client-libraries.md)が現在の要件に照らしてピアツーピアネットワークの状態を確認し、トランザクションに署名する前に`Fee`値を追加します。ただし、このようなトランザクションコストへの自動入力にはいくつかの欠点と制限事項があります。 -* トランザクションに署名し、分散するまでの間にネットワークのトランザクションコストが上昇した場合、そのトランザクションは承認されない場合があります。 - * 最悪の場合、トランザクションに`LastLedgerSequence`パラメーターが含まれているか、同じ`Sequence`番号を使用する新しいトランザクションによってその[トランザクションがキャンセル](finality-of-results/canceling-a-transaction.md)されない限り、トランザクションは明確に承認も拒否もされない状態のままとなってしまいます。ベストプラクティスについては、[信頼できるトランザクションの送信](reliable-transaction-submission.md)をご覧ください。 -* 署名するトランザクションの`Fee`フィールドの正確な値は事前にわかりません。 - * `rippled`を使用している場合は、[signメソッド][]の`fee_mult_max`パラメーターと`fee_div_max`パラメーターを使用して、署名しようとしている負荷スケーリングに制限を設定することもできます。 -* オフラインのマシンから現在のトランザクションコストを調べることはできません。 -* [マルチシグ](../accounts/multi-signing.md)の場合、トランザクションコストの自動指定は行えません。 - - +- トランザクションに署名し、分散するまでの間にネットワークのトランザクションコストが上昇した場合、そのトランザクションは承認されない場合があります。 + - 最悪の場合、トランザクションに`LastLedgerSequence`パラメーターが含まれているか、同じ`Sequence`番号を使用する新しいトランザクションによってその[トランザクションがキャンセル](finality-of-results/canceling-a-transaction.md)されない限り、トランザクションは明確に承認も拒否もされない状態のままとなってしまいます。ベストプラクティスについては、[信頼できるトランザクションの送信](reliable-transaction-submission.md)をご覧ください。 +- 署名するトランザクションの`Fee`フィールドの正確な値は事前にわかりません。 + - `rippled`を使用している場合は、[signメソッド][]の`fee_mult_max`パラメーターと`fee_div_max`パラメーターを使用して、署名しようとしている負荷スケーリングに制限を設定することもできます。 +- オフラインのマシンから現在のトランザクションコストを調べることはできません。 +- [マルチシグ](../accounts/multi-signing.md)の場合、トランザクションコストの自動指定は行えません。 ## トランザクションコストと失敗したトランザクション @@ -145,7 +135,6 @@ XRP LedgerをスパムやDoS攻撃から守るため、各トランザクショ トランザクションはすでにネットワークに配信されているけれども、アカウントにトランザクションコストを支払うのに十分なXRPがない場合は、結果コード`tecINSUFF_FEE`が発生します。この場合、アカウントからは可能なかぎりすべてのXRPが支払われるため、最終的に0 XRPになります。これは、`rippled`がトランザクションをネットワークに中継するかどうかを進行中のレジャーに基づいて判断するために起こります。しかしコンセンサスレジャーを作成するときにトランザクションは破棄されるか並べ替えられることになります。 - ## Key Resetトランザクション 特殊なケースですが、アカウントの[lsfPasswordSpentフラグ](../../references/protocol/ledger-data/ledger-entry-types/accountroot.md)が無効であるかぎり、そのアカウントはトランザクションコスト`0`で[SetRegularKey](../../references/protocol/transactions/types/setregularkey.md)トランザクションを送信できます。このトランザクションにはアカウントの _マスターキーペア_ による署名が必要です。このトランザクションを送信すると、lsfPasswordSpentフラグが有効になります。 @@ -156,12 +145,10 @@ XRP LedgerをスパムやDoS攻撃から守るため、各トランザクショ [FeeEscalation Amendment][]が有効な場合、Key Resetトランザクションの名目トランザクションコストがゼロであっても、`rippled`は他のトランザクションよりもKey Resetトランザクションを優先します。 - ## トランザクションコストの変更 XRP Ledgerは、XRPの価値が長期的に変化することを見越して、最低トランザクションコストを変更するしくみを備えています。変更はすべて、コンセンサスプロセスによる承認が必要です。詳細は、[手数料の投票](../consensus-protocol/fee-voting.md)をご覧ください。 - ## 関連項目 - **コンセプト:** diff --git a/@l10n/ja/docs/concepts/transactions/transaction-queue.md b/@l10n/ja/docs/concepts/transactions/transaction-queue.md index 73c0f5e161..fccc7ca8ec 100644 --- a/@l10n/ja/docs/concepts/transactions/transaction-queue.md +++ b/@l10n/ja/docs/concepts/transactions/transaction-queue.md @@ -2,10 +2,11 @@ html: transaction-queue.html parent: transactions.html seo: - description: コンセンサスに至る前にトランザクションをどのようにキューに入れることができるか説明します。 + description: コンセンサスに至る前にトランザクションをどのようにキューに入れることができるか説明します。 labels: - トランザクション送信 --- + # トランザクションキュー `rippled`サーバは、トランザクションキューを使用して[オープンレジャーコスト](transaction-cost.md#オープンレジャーコスト)を適用します。オープンレジャーコストにより、特定のレジャーの目標トランザクション数が設定され、オープンレジャーがこのサイズを超えると、必要なトランザクションコストが迅速に引き上げられます。`rippled`は引き上げられたトランザクションコストを支払うことができないトランザクションを無効にする代わりに、次のレジャーの構築に使用するトランザクションキューにそれらのトランザクションを入れようとします。 @@ -28,7 +29,7 @@ labels: 6. **キューへの追加** - 次の提案レジャーがすでにいっぱいである場合は、着信トランザクションはその後のレジャーバージョンのキューに入れられます。([オープンレジャーコスト](transaction-cost.md#オープンレジャーコスト)を支払うトランザクションは、次の提案レジャーが「いっぱい」であってもそのレジャーに追加されますが、このようにトランザクションが追加されるたびにオープンレジャーコストは急激に増加します。) - このステップの後、プロセスが最初から繰り返されます。 + このステップの後、プロセスが最初から繰り返されます。 {% admonition type="info" name="注記" %}技術的には、上記のプロセスで説明したステップのいくつかは並行して発生します。これは、各サーバは常に新しいトランザクションに備えて待機しており、前のレジャーバージョンのコンセンサスプロセスの実行中に次のレジャー提案の準備を開始するためです。{% /admonition %} @@ -40,9 +41,9 @@ labels: - `AccountTxnID`フィールドが指定されているトランザクションはキューに入れることができません。 - 1つの送信側アドレスには、同時に最大10個のトランザクションを入れることができます。 - トランザクションをキューに入れるには、送信者が以下のすべてを行うのに十分なXRPを保有している必要があります。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.0" %}更新: rippled 1.2.0{% /badge %} - - キュー内のすべての送信者のトランザクションの`Fee`フィールドに指定されているXRP[トランザクションコスト](transaction-cost.md)の消却。キュー内のトランザクションの合計額は、アカウントの基本準備金(現時点では{% $env.PUBLIC_BASE_RESERVE %})を超えることはできません。(トランザクションコストの支払いが最小額の0.00001 XRPを大幅に上回るトランザクションは、キューをスキップし、オープンレジャーに直接追加されます。) - - キュー内のすべての送信者のトランザクションの送金を可能とするXRPの最大合計額の送信。 - - アカウントの[必要準備金](../accounts/reserves.md)を確保するのに十分なXRPの保有。 + - キュー内のすべての送信者のトランザクションの`Fee`フィールドに指定されているXRP[トランザクションコスト](transaction-cost.md)の消却。キュー内のトランザクションの合計額は、アカウントの基本準備金(現時点では{% $env.PUBLIC_BASE_RESERVE %})を超えることはできません。(トランザクションコストの支払いが最小額の0.00001 XRPを大幅に上回るトランザクションは、キューをスキップし、オープンレジャーに直接追加されます。) + - キュー内のすべての送信者のトランザクションの送金を可能とするXRPの最大合計額の送信。 + - アカウントの[必要準備金](../accounts/reserves.md)を確保するのに十分なXRPの保有。 - あるトランザクションが、送信側アドレスがトランザクションを承認する方法に影響する場合、同じアドレスからの他のトランザクションをそのトランザクションの後にキューに入れることはできません。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.32.0" %}新規: rippled 0.32.0{% /badge %} - トランザクションに`LastLedgerSequence`フィールドが指定されている場合、そのフィールドの値は少なくとも **現在のレジャーインデックス+ 2**になります。 @@ -54,9 +55,9 @@ labels: この機能により、特定の状況を回避できます。キュー内にある低コストのトランザクションを1つ以上送信した場合、同じアドレスから新しいトランザクションを送信するには、以下のいずれかを実行する必要があります。 -* キュー内のトランザクションが検証済みレジャーに追加されるまで待機する。 -* キュー内のトランザクションに[`LastLedgerSequence`フィールド](reliable-transaction-submission.md#lastledgersequence)が設定されている場合、それらのトランザクションが完全に無効化されるまで待機する。 -* [キュー内のトランザクションを取り消す](finality-of-results/canceling-a-transaction.md)。このためには、同じシーケンス番号で、これらのトランザクションよりも高いトランザクションコストを指定した新しいトランザクションを送信します。 +- キュー内のトランザクションが検証済みレジャーに追加されるまで待機する。 +- キュー内のトランザクションに[`LastLedgerSequence`フィールド](reliable-transaction-submission.md#lastledgersequence)が設定されている場合、それらのトランザクションが完全に無効化されるまで待機する。 +- [キュー内のトランザクションを取り消す](finality-of-results/canceling-a-transaction.md)。このためには、同じシーケンス番号で、これらのトランザクションよりも高いトランザクションコストを指定した新しいトランザクションを送信します。 上記のどの操作も行われないと、トランザクションは理論上無期限にキューに入れられたままとなり、他の送信者はそれらよりもトランザクションコストが高いトランザクションを送信してキューに「割り込む」ことができます。署名済みのトランザクションは変更できないため、キュー内のトランザクションのトランザクションコストを増加して、トランザクションの優先度を上げることはできません。以前に送信されたトランザクションを無効にしたくない場合には、手数料の平均化が回避策となります。新しいトランザクションのトランザクションコストを増額して不足分を補えば、キュー内のトランザクションは即時にオープンレジャーに追加されます。 @@ -68,7 +69,6 @@ labels: **注記:**`rippled`がトランザクションをキューに入れるときに付与される暫定的な[トランザクションレスポンスコード](../../references/protocol/transactions/transaction-results/index.md)は`terQUEUED`です。つまり、トランザクションは今後のレジャーバージョンで成功する見込みです。すべての暫定的なレスポンスコードと同様に、トランザクションが検証済みレジャーに追加されるか、または[完全に無効であると示される](finality-of-results/index.md)までは、トランザクションの結果は最終的ではありません。 - ## 関連項目 - トランザクションコストが設けられている理由と、XRP Ledgerでのトランザクションコストの適用方法については、[トランザクションコスト](transaction-cost.md)をご覧ください。 diff --git a/@l10n/ja/docs/concepts/xrpl-sidechains/cross-chain-bridges.md b/@l10n/ja/docs/concepts/xrpl-sidechains/cross-chain-bridges.md index 1493a0c835..dc48357ec3 100644 --- a/@l10n/ja/docs/concepts/xrpl-sidechains/cross-chain-bridges.md +++ b/@l10n/ja/docs/concepts/xrpl-sidechains/cross-chain-bridges.md @@ -2,12 +2,13 @@ html: cross-chain-bridges.html parent: xrpl-sidechains.html seo: - description: XRP Ledgerのクロスチェーンブリッジは、XRPや他のトークン(IOU)の価値をブロックチェーン間で効率的に移動させることを可能にします。 + description: XRP Ledgerのクロスチェーンブリッジは、XRPや他のトークン(IOU)の価値をブロックチェーン間で効率的に移動させることを可能にします。 status: not_enabled labels: - ブロックチェーン - 相互運用性 --- + # クロスチェーンブリッジ _([XChainBridge Amendment][] {% not-enabled /%} が必要です)_ @@ -22,7 +23,6 @@ _([XChainBridge Amendment][] {% not-enabled /%} が必要です)_ ロックチェーンと発行チェーンはともに、独立したノードとバリデータを持つ並列ネットワークとして動作します。2つのチェーン間の取引を監視し、資産が特別に指定されたアカウントに移動したことを証明するために、独立した[Witnessサーバ](witness-servers.md)を利用します。 - ## ブリッジの仕組み 大まかに説明すると、ブリッジは以下のステップを通じてクロスチェーン取引を可能にします。 @@ -30,12 +30,12 @@ _([XChainBridge Amendment][] {% not-enabled /%} が必要です)_ 1. 発行チェーン上にクロスチェーン請求IDを作成します。クロスチェーン請求IDは、ブロックチェーン間の1回の価値移転を表します。 2. ロックチェーン上でコミットトランザクションを送信し、資産をドアアカウントへ送信します。このトランザクションには、クロスチェーン請求IDとWitnessサーバへの報酬が含まれます。 - {% admonition type="info" name="注記" %}Witnessサーバは両方のチェーン上のトランザクションを監視します。Witnessサーバは、トランザクションが発生したことを検証するために、証明書(署名付きメッセージ)を提供します。`XChainCommit`トランザクションと`XChainAccountCreateCommit`トランザクションには証明書が含まれます。{% /admonition %} + {% admonition type="info" name="注記" %}Witnessサーバは両方のチェーン上のトランザクションを監視します。Witnessサーバは、トランザクションが発生したことを検証するために、証明書(署名付きメッセージ)を提供します。`XChainCommit`トランザクションと`XChainAccountCreateCommit`トランザクションには証明書が含まれます。{% /admonition %} 3. Witnessサーバは、発行チェーンに対して、資産がロックチェーン上でロックされたことを証明します。 4. 定足数に達する十分な署名があると、発行チェーン上でアセットが宛先アカウントに発行されます。 - {% admonition type="info" name="注記" %}Deposit Authorizationが有効になっている場合など、いくつかのケースでは、発行チェーン上で移管された資産の請求トランザクションを提出する必要があります。{% /admonition %} + {% admonition type="info" name="注記" %}Deposit Authorizationが有効になっている場合など、いくつかのケースでは、発行チェーン上で移管された資産の請求トランザクションを提出する必要があります。{% /admonition %} 5. 発行チェーン上のWitnessサーバのアカウントに報酬が分配されます。 diff --git a/@l10n/ja/docs/concepts/xrpl-sidechains/index.md b/@l10n/ja/docs/concepts/xrpl-sidechains/index.md index 76499f79b1..615de2f252 100644 --- a/@l10n/ja/docs/concepts/xrpl-sidechains/index.md +++ b/@l10n/ja/docs/concepts/xrpl-sidechains/index.md @@ -2,11 +2,12 @@ html: xrpl-sidechains.html parent: concepts.html seo: - description: XRPLサイドチェーンは、独自のコンセンサスアルゴリズム、トランザクションタイプ、ルールを持つ独立した台帳です。 + description: XRPLサイドチェーンは、独自のコンセンサスアルゴリズム、トランザクションタイプ、ルールを持つ独立した台帳です。 labels: - ブロックチェーン - 相互運用性 --- + # XRPLサイドチェーン _([XChainBridge Amendment][] {% not-enabled /%} が必要です)_ @@ -15,15 +16,14 @@ _([XChainBridge Amendment][] {% not-enabled /%} が必要です)_ サイドチェーンは、XRP Ledgerのプロトコルを特定のユースケースやプロジェクトのニーズに合わせてカスタマイズし、独自のブロックチェーンとして運用することができます。いくつかの例を紹介します。 -* スマートコントラクト層の追加: [Xahau](https://xahau.network/)をご覧ください。 -* イーサリアム仮想マシン(EVM)互換性の追加: [EVMサイドチェーン](https://opensource.ripple.com/docs/evm-sidechain/intro-to-evm-sidechain/)をご覧ください。 -* 独自のアルゴリズムによるステーブルコインの構築。 -* メインネットの[分散型取引所](../tokens/decentralized-exchange/index.md)で資産を取引できる、パーミッションあり、またはほぼパーミッションレス、中央集権型、または大部分が分散されている台帳の構築。 - +- スマートコントラクト層の追加: [Xahau](https://xahau.network/)をご覧ください。 +- イーサリアム仮想マシン(EVM)互換性の追加: [EVMサイドチェーン](https://opensource.ripple.com/docs/evm-sidechain/intro-to-evm-sidechain/)をご覧ください。 +- 独自のアルゴリズムによるステーブルコインの構築。 +- メインネットの[分散型取引所](../tokens/decentralized-exchange/index.md)で資産を取引できる、パーミッションあり、またはほぼパーミッションレス、中央集権型、または大部分が分散されている台帳の構築。 **ノート:** - - サイドチェーンは独自のバリデータを使い、メインチェーンの `rippled` UNL とは別のUNLを必要とします。 - - メインチェーンとサイドチェーンのノードはお互いを認識していません。 +- サイドチェーンは独自のバリデータを使い、メインチェーンの `rippled` UNL とは別のUNLを必要とします。 +- メインチェーンとサイドチェーンのノードはお互いを認識していません。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/concepts/xrpl-sidechains/witness-servers.md b/@l10n/ja/docs/concepts/xrpl-sidechains/witness-servers.md index 2c2ce7e6a7..a8a868238e 100644 --- a/@l10n/ja/docs/concepts/xrpl-sidechains/witness-servers.md +++ b/@l10n/ja/docs/concepts/xrpl-sidechains/witness-servers.md @@ -2,13 +2,15 @@ html: witness-servers.html parent: xrpl-sidechains.html seo: - description: Witnessサーバとは、XRP Ledgerと他のチェーン間のトランザクションの監視と署名を行うための軽量サーバです。 + description: Witnessサーバとは、XRP Ledgerと他のチェーン間のトランザクションの監視と署名を行うための軽量サーバです。 status: not_enabled labels: - ブロックチェーン - 相互運用性 --- + # Witnessサーバ + [[ソース]](https://github.com/seelabs/xbridge_witness "ソース") _([XChainBridge Amendment][] {% not-enabled /%} が必要です)_ @@ -17,19 +19,17 @@ Witnessサーバは、ロックチェーンと発行チェーン間のトラン ロックチェーンと発行チェーンの間のブリッジは、その設定に以下の情報を含みます。 -* ブリッジ上のトランザクションを監視するWitnessサーバ。Witnessサーバは1つ以上選択できます。 -* Witnessサーバのサービス料金。 +- ブリッジ上のトランザクションを監視するWitnessサーバ。Witnessサーバは1つ以上選択できます。 +- Witnessサーバのサービス料金。 誰でもWitnessサーバを運用することができます。しかし、Witnessサーバの信頼性を評価する責任は発行チェーンの参加者にあります。Witnessサーバを実行する場合、`rippled`ノードも実行し、Witnessサーバがアクセスする必要があるチェーンと同期させる必要があります。 {% admonition type="info" name="注記" %}発行チェーンは、最初は1台のWitnessサーバだけでブリッジを構成し、Witnessサーバ自体を実行することを選択できます。この戦略は、発行チェーンがまだマーケットで地位を確立していない初期に役立ちます。{% /admonition %} - ## Witnessサーバの設定 Witnessサーバはコマンドライン引数`--conf`で指定されたJSON設定ファイルを受け取ります。 - ### 設定JSONの例 ```json @@ -85,65 +85,59 @@ Witnessサーバはコマンドライン引数`--conf`で指定されたJSON設 } ``` - ### 設定のフィールド -| フィールド名 | JSONの型 | 必須? | 説明 | -|------------------|------------|-------|-----| -| `Admin` | オブジェクト | いいえ | Witnessサーバへの特権リクエスト用の`Username`フィールドと`Password`フィールド (文字列)。**注記:** adminフィールドは両方に設定、またはどちらも設定されていない必要があります。 | -| [`IssuingChain`](#issuingchainとlockingchainのフィールド) | オブジェクト | はい | 発行チェーンと通信するためのパラメータ。 | -| [`LockingChain`](#issuingchainとlockingchainのフィールド) | オブジェクト | はい | ロックチェーンと通信するためのパラメータ。 | -| `RPCEndpoint` | オブジェクト | はい | WitnessサーバへのRPCリクエストのエンドポイント。 | -| `LogFile` | 文字列 | はい | ログファイルの保存場所。 | -| `LogLevel` | 文字列 | はい | ログファイルに保存するログのレベル。`All`、`Trace`、`Debug`、`Info`、`Warning`、`Error`、`Fatal`、`Disabled`、`None`のいずれかを指定します。 | -| `DBDir` | 文字列 | はい | データベースが保存されているディレクトリの場所。 | -| `SigningKeySeed` | 文字列 | はい | Witnessサーバが証明書に署名する際に使用するシード。 | -| `SigningKeyType` | 文字列 | はい | `SigningKeySeed`のエンコードに使用するアルゴリズム。`secp256k1`と`ed25519`のいずれかを指定します。 | -| [`XChainBridge`](#xchainbridgeのフィールド) | XChainBridge | はい | Witnessサーバが監視しているブリッジ。 | - +| フィールド名 | JSONの型 | 必須? | 説明 | +| --------------------------------------------------------- | ------------ | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Admin` | オブジェクト | いいえ | Witnessサーバへの特権リクエスト用の`Username`フィールドと`Password`フィールド (文字列)。**注記:** adminフィールドは両方に設定、またはどちらも設定されていない必要があります。 | +| [`IssuingChain`](#issuingchainとlockingchainのフィールド) | オブジェクト | はい | 発行チェーンと通信するためのパラメータ。 | +| [`LockingChain`](#issuingchainとlockingchainのフィールド) | オブジェクト | はい | ロックチェーンと通信するためのパラメータ。 | +| `RPCEndpoint` | オブジェクト | はい | WitnessサーバへのRPCリクエストのエンドポイント。 | +| `LogFile` | 文字列 | はい | ログファイルの保存場所。 | +| `LogLevel` | 文字列 | はい | ログファイルに保存するログのレベル。`All`、`Trace`、`Debug`、`Info`、`Warning`、`Error`、`Fatal`、`Disabled`、`None`のいずれかを指定します。 | +| `DBDir` | 文字列 | はい | データベースが保存されているディレクトリの場所。 | +| `SigningKeySeed` | 文字列 | はい | Witnessサーバが証明書に署名する際に使用するシード。 | +| `SigningKeyType` | 文字列 | はい | `SigningKeySeed`のエンコードに使用するアルゴリズム。`secp256k1`と`ed25519`のいずれかを指定します。 | +| [`XChainBridge`](#xchainbridgeのフィールド) | XChainBridge | はい | Witnessサーバが監視しているブリッジ。 | #### IssuingChainとLockingChainのフィールド -| フィールド名 | JSONの型 | 必須? | 説明 | -|-----------------|------------|------|-----| -| `Endpoint` | オブジェクト | はい | チェーンと同期した`rippled`ノードのWebSocketエンドポイント。**注記:** `rippled`ノードとWitnessサーバは同じ人が操作する必要があります。 | -| `TxnSubmit` | オブジェクト | はい | チェーン上でトランザクションを送信するためのパラメータ。 | -| `RewardAccount` | 文字列 | はい | チェーン上で`SignatureReward`の報酬の分配を受け取るアカウント。 | - +| フィールド名 | JSONの型 | 必須? | 説明 | +| --------------- | ------------ | ----- | -------------------------------------------------------------------------------------------------------------------------------------- | +| `Endpoint` | オブジェクト | はい | チェーンと同期した`rippled`ノードのWebSocketエンドポイント。**注記:** `rippled`ノードとWitnessサーバは同じ人が操作する必要があります。 | +| `TxnSubmit` | オブジェクト | はい | チェーン上でトランザクションを送信するためのパラメータ。 | +| `RewardAccount` | 文字列 | はい | チェーン上で`SignatureReward`の報酬の分配を受け取るアカウント。 | #### Endpointのフィールド -| フィールド名 | JSONの型 | 必須? | 説明 | -|------------|---------|-------|-----| -| `Host` | 文字列 | はい | `rippled`ノードのIPアドレス。**注記:** IPv4アドレスかURLを指定します。 | -| `Port` | 文字列 | はい | WebSocketエンドポイントのポート。 | - +| フィールド名 | JSONの型 | 必須? | 説明 | +| ------------ | -------- | ----- | ---------------------------------------------------------------------- | +| `Host` | 文字列 | はい | `rippled`ノードのIPアドレス。**注記:** IPv4アドレスかURLを指定します。 | +| `Port` | 文字列 | はい | WebSocketエンドポイントのポート。 | #### RPCEndpointのフィールド -| フィールド名 | JSONの型 | 必須? | 説明 | -|------------|---------|-------|-----| -| `Host` | 文字列 | はい | `rippled`ノードのIPアドレス。**注記:** IPv4アドレスかURLを指定します。 | -| `Port` | 文字列 | はい | WebSocketエンドポイントのポート。 | - +| フィールド名 | JSONの型 | 必須? | 説明 | +| ------------ | -------- | ----- | ---------------------------------------------------------------------- | +| `Host` | 文字列 | はい | `rippled`ノードのIPアドレス。**注記:** IPv4アドレスかURLを指定します。 | +| `Port` | 文字列 | はい | WebSocketエンドポイントのポート。 | #### TxnSubmitのフィールド -| フィールド名 | JSONの型 | 必須? | 説明 | -|---------------------|---------|-------|-----| -| `ShouldSubmit` | 真偽値 | はい | Witnessサーバがロックチェーン上でトランザクションを提出すべきかどうかを示す真偽値。 | -| `SigningKeySeed` | 文字列 | いいえ | Witnessサーバがロックチェーン上のトランザクションに署名する際に使用するシード。これは`ShouldSubmit`が`true`の場合に必要です。 | -| `SigningKeyType` | 文字列 | いいえ | `SigningKeySeed`のエンコードに使用するアルゴリズム。`secp256k1`と`ed25519`のいずれかを指定します。これは`ShouldSubmit`が`true`の場合に必要です。 | +| フィールド名 | JSONの型 | 必須? | 説明 | +| ------------------- | -------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------- | +| `ShouldSubmit` | 真偽値 | はい | Witnessサーバがロックチェーン上でトランザクションを提出すべきかどうかを示す真偽値。 | +| `SigningKeySeed` | 文字列 | いいえ | Witnessサーバがロックチェーン上のトランザクションに署名する際に使用するシード。これは`ShouldSubmit`が`true`の場合に必要です。 | +| `SigningKeyType` | 文字列 | いいえ | `SigningKeySeed`のエンコードに使用するアルゴリズム。`secp256k1`と`ed25519`のいずれかを指定します。これは`ShouldSubmit`が`true`の場合に必要です。 | | `SubmittingAccount` | 文字列 | いいえ | `XChainAddClaimAttestation`と`XChainAddAccountCreateAttestation`トランザクションを送信するアカウント。これは`ShouldSubmit`が`true`の場合に必要です。 | - #### XChainBridgeのフィールド -| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | -|:--------------------|:---------|:-----------|:------|:----| -| `IssuingChainDoor` | 文字列 | Account | はい | 発行チェーンのドアアカウント。XRP-XRPブリッジの場合、これはジェネシスアカウント(ネットワークが最初に開始されたときに作成されるアカウントで、すべてのXRPを含む)でなければなりません。 | -| `IssuingChainIssue` | Issue | Issue | はい | 発行チェーン上で作成され、バーンされる資産。IOU-IOUブリッジの場合、供給量の問題を避けるため、資産の発行者は発行チェーンのドアアカウントでなければなりません。 | -| `LockingChainDoor` | 文字列 | Account | はい | ロックチェーンのドアアカウント。 | -| `LockingChainIssue` | Issue | Issue | はい | ロックチェーンでロック、アンロックされる資産。 | +| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | +| :------------------ | :------- | :----------- | :---- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `IssuingChainDoor` | 文字列 | Account | はい | 発行チェーンのドアアカウント。XRP-XRPブリッジの場合、これはジェネシスアカウント(ネットワークが最初に開始されたときに作成されるアカウントで、すべてのXRPを含む)でなければなりません。 | +| `IssuingChainIssue` | Issue | Issue | はい | 発行チェーン上で作成され、バーンされる資産。IOU-IOUブリッジの場合、供給量の問題を避けるため、資産の発行者は発行チェーンのドアアカウントでなければなりません。 | +| `LockingChainDoor` | 文字列 | Account | はい | ロックチェーンのドアアカウント。 | +| `LockingChainIssue` | Issue | Issue | はい | ロックチェーンでロック、アンロックされる資産。 | {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/infrastructure/commandline-usage.md b/@l10n/ja/docs/infrastructure/commandline-usage.md index 12bfe7b009..37d221be69 100644 --- a/@l10n/ja/docs/infrastructure/commandline-usage.md +++ b/@l10n/ja/docs/infrastructure/commandline-usage.md @@ -3,21 +3,22 @@ html: commandline-usage.html name: コマンドラインの使い方 parent: infrastructure.html seo: - description: rippledサーバのコマンドライン使用オプションです。 + description: rippledサーバのコマンドライン使用オプションです。 curated_anchors: - name: 使用できるモード - anchor: "#使用できるモード" + anchor: '#使用できるモード' - name: デーモンモードのオプション - anchor: "#デーモンモードのオプション" + anchor: '#デーモンモードのオプション' - name: スタンドアロンモードのオプション - anchor: "#スタンドアロンモードのオプション" + anchor: '#スタンドアロンモードのオプション' - name: クライアントモードのオプション - anchor: "#クライアントモードのオプション" + anchor: '#クライアントモードのオプション' - name: 単体テスト - anchor: "#単体テスト" + anchor: '#単体テスト' labels: - コアサーバ --- + # コマンドラインの使い方 `rippled`の実行可能ファイルは、通常はXRP Ledgerを処理するデーモンとして実行されますが、他のモードでも実行できます。このページでは、コマンドラインから実行する場合に`rippled`に渡すことができるすべてのオプションを説明します。 @@ -28,29 +29,27 @@ labels: - **スタンドアロンモード** - `-a`または`--standalone`オプションを使用します。他のサーバには接続できない以外は、デーモンモードと同様です。このモードは、トランザクション処理やその他の機能のテストに使用できます。 - **クライアントモード** - APIメソッドの名前を指定して、別の`rippled`サーバにJSON-RPCクライアントとして接続し、その後終了します。実行可能ファイルがすでに別のプロセスで実行中である場合に、このモードを使用してサーバのステータスとレジャーデータを確認できます。 - **その他の使用法** - 以下の各コマンドを実行すると、`rippled`実行可能ファイルが何らかの情報を出力し、その後終了します。 - - **ヘルプ** - 使用法の説明を出力するには、`-h`または`--help`を使用します。 - - **単体テスト** - 単体テストを実行し、結果の概要を出力するには、`-u`または`--unittest`を使用します。rippledが正しくコンパイルされていることを確認する場合に便利です。 - - **バージョンステートメント** - `rippled`のバージョン番号を出力し、その後終了するには、`--version`を使用します。 + - **ヘルプ** - 使用法の説明を出力するには、`-h`または`--help`を使用します。 + - **単体テスト** - 単体テストを実行し、結果の概要を出力するには、`-u`または`--unittest`を使用します。rippledが正しくコンパイルされていることを確認する場合に便利です。 + - **バージョンステートメント** - `rippled`のバージョン番号を出力し、その後終了するには、`--version`を使用します。 ## 汎用オプション ほとんどのモードに適用されるオプションは、以下の通りです。 -| オプション | 説明 | -|:----------------|:-----------------------------------------------------------| +| オプション | 説明 | +| :-------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `--conf {FILE}` | デフォルトのロケーションで構成ファイルを検索する代わりに、構成ファイルとして`{FILE}`を使用します。指定されていない場合、`rippled`は最初にローカル作業ディレクトリで`rippled.cfg`ファイルがあるかどうかを調べます。Linuxでは、このファイルが見つからない場合`rippled`は次に`$XDG_CONFIG_HOME/ripple/ripple.cfg`を確認します。(一般的に`$XDG_CONFIG_HOME`の場所は`$HOME/.config`です。) | ### 詳細レベルのオプション 次の汎用オプションは、標準出力とログファイルに書き込まれる情報の量を制御します。 -| オプション | 短縮形 | 説明 | -|:------------|:--------------|:-----------------------------------------------| -| `--debug` | | **廃止予定** トレースレベルのデバッグを有効にします(`--verbose`のエイリアス)。代わりに[log_levelメソッド][]を使用してください。 | -| `--silent` | | 起動中にログを標準出力と標準エラー出力に書き込みません。冗長なログを削減するために`rippled`をsystemdユニットとして開始する場合に推奨されます。 | -| `--verbose` | `-v` | **廃止予定** トレースレベルデバッグを有効にします。代わりに[log_levelメソッド][]を使用してください。 | - - +| オプション | 短縮形 | 説明 | +| :---------- | :----- | :--------------------------------------------------------------------------------------------------------------------------------------------- | +| `--debug` | | **廃止予定** トレースレベルのデバッグを有効にします(`--verbose`のエイリアス)。代わりに[log_levelメソッド][]を使用してください。 | +| `--silent` | | 起動中にログを標準出力と標準エラー出力に書き込みません。冗長なログを削減するために`rippled`をsystemdユニットとして開始する場合に推奨されます。 | +| `--verbose` | `-v` | **廃止予定** トレースレベルデバッグを有効にします。代わりに[log_levelメソッド][]を使用してください。 | ## デーモンモードのオプション @@ -60,11 +59,11 @@ rippled [OPTIONS] デーモンモードは、`rippled`のデフォルトの運用モードです。[汎用オプション](#汎用オプション)の他に、以下のいずれかのオプションを指定できます。 -| オプション | 説明 | -|:--------------------|:-------------------------------------------------------| -| `--fg` | デーモンをフォアグラウンドでシングルプロセスとして実行します。このオプションを指定しない場合、`rippled`は1番目のプロセスがモニターとして実行されている間に、デーモンの2番目のプロセスをフォークします。 | -| `--import` | 完全に起動する前に、別の`rippled`サーバのレジャーストアーからレジャーデータをインポートしてください。構成ファイルに有効な`[import_db]`スタンザが指定されている必要があります。 | -| `--net` | **廃止予定** デバッグのためのオプションです。ネットワークからレジャーを取得できるようになるまで、ローカルレジャーを作成しません。 | +| オプション | 説明 | +| :------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `--fg` | デーモンをフォアグラウンドでシングルプロセスとして実行します。このオプションを指定しない場合、`rippled`は1番目のプロセスがモニターとして実行されている間に、デーモンの2番目のプロセスをフォークします。 | +| `--import` | 完全に起動する前に、別の`rippled`サーバのレジャーストアーからレジャーデータをインポートしてください。構成ファイルに有効な`[import_db]`スタンザが指定されている必要があります。 | +| `--net` | **廃止予定** デバッグのためのオプションです。ネットワークからレジャーを取得できるようになるまで、ローカルレジャーを作成しません。 | | `--quorum {QUORUM}` | これは[テストネットワーク](../concepts/networks-and-servers/parallel-networks.md)のブートストラップ用のオプションです。検証のための最小定数をオーバーライドするには、`{QUORUM}`の信頼できるバリデータの同意を必要とします。デフォルトでは、検証のための定数は、信頼できるバリデータの実際の数に基づき、安全な数に自動的に設定されます。一部のバリデータがオンラインではない場合、このオプションにより、標準定数よりも少ない数のバリデータで続行できるようになります。{% admonition type="danger" name="警告" %}定数を手動で設定すると、設定した値が小さすぎるためにサーバがネットワークの他の部分から分岐することを防ぐことができない可能性があります。このオプションは、コンセンサスを十分に理解し、標準以外の設定を使用する必要がある場合にのみ使用してください。{% /admonition %} | 次のフィールドは廃止されました: `--validateShards` {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.7.0" %}削除: rippled 1.7.0{% /badge %}, `--nodetoshard` {% badge href="https://github.com/XRPLF/rippled/releases/tag/2.3.0" %}削除: rippled 2.3.0{% /badge %}。 @@ -75,20 +74,21 @@ rippled [OPTIONS] rippled --standalone [OPTIONS] rippled -a [OPTIONS] ``` + スタンドアロンモードで実行します。このモードでは、`rippled`はネットワークに接続しないか、またはコンセンサスを実行しません。(それ以外の場合、`rippled`はデーモンモードで実行されます。) ### 初期レジャーオプション 以下のオプションにより、起動時に最初に読み込むレジャーが判断されます。これらはのオプションは、履歴レジャーのリプレイまたはテストネットワークのブートストラップのためのものです。 -| オプション | 説明 | -|:----------------------|:-----------------------------------------------------| -| `--ledger {LEDGER}` | `{LEDGER}`(レジャーハッシュまたはレジャーインデックス)により初期レジャーと識別されているレジャーバージョンを読み込みます。指定されたレジャーバージョンは、サーバのレジャーストアーに格納される必要があります。 | -| `--ledgerfile {FILE}` | 指定された`{FILE}`からレジャーバージョンを読み込みます(このファイルには完全なレジャーがJSONフォーマットで格納されている必要があります)。このようなファイルの例については、付属の{% repo-link path="_api-examples/rippled-cli/ledger-file.json" %}`ledger-file.json`{% /repo-link %}をご覧ください。 | -| `--load` | **廃止予定** デバッグのためのオプションです。ディスク上のレジャーストアーから初期レジャーを読み込むだけです。 | +| オプション | 説明 | +| :-------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `--ledger {LEDGER}` | `{LEDGER}`(レジャーハッシュまたはレジャーインデックス)により初期レジャーと識別されているレジャーバージョンを読み込みます。指定されたレジャーバージョンは、サーバのレジャーストアーに格納される必要があります。 | +| `--ledgerfile {FILE}` | 指定された`{FILE}`からレジャーバージョンを読み込みます(このファイルには完全なレジャーがJSONフォーマットで格納されている必要があります)。このようなファイルの例については、付属の{% repo-link path="_api-examples/rippled-cli/ledger-file.json" %}`ledger-file.json`{% /repo-link %}をご覧ください。 | +| `--load` | **廃止予定** デバッグのためのオプションです。ディスク上のレジャーストアーから初期レジャーを読み込むだけです。 | | `--replay` | デバッグのためのオプションです。`--ledger`と組み合わせて使用し、レジャーの閉鎖をリプレイします。サーバのレジャーストアーには、当該レジャーとその直前のバージョンのレジャーがすでに格納されている必要があります。サーバでは、前のレジャーをベースとして使用して、指定されたレジャーのすべてのトランザクションが処理されます。その結果、指定されたレジャーが再作成されます。デバッガーを使用して、特定のトランザクションの処理ロジックを分析するためのブレークポイントを追加できます。 | -| `--start` | デバッグのためのオプションです。既知のすべてのAmendment(反対票を投じるようにサーバに設定されているAmendmentを除く)が適用されている新しいジェネシスレジャーを使用して開始します。したがってこれらのAmendmentの機能は、2週間の[Amendmentプロセス](../concepts/networks-and-servers/amendments.md)期間ではなく、2番目のレジャーの開始時から使用可能になります。 | -| `--valid` | **廃止予定** デバッグのためのオプションです。ネットワークとの完全同期の前であっても、初期レジャーを有効なネットワークレジャーと見なします。 | +| `--start` | デバッグのためのオプションです。既知のすべてのAmendment(反対票を投じるようにサーバに設定されているAmendmentを除く)が適用されている新しいジェネシスレジャーを使用して開始します。したがってこれらのAmendmentの機能は、2週間の[Amendmentプロセス](../concepts/networks-and-servers/amendments.md)期間ではなく、2番目のレジャーの開始時から使用可能になります。 | +| `--valid` | **廃止予定** デバッグのためのオプションです。ネットワークとの完全同期の前であっても、初期レジャーを有効なネットワークレジャーと見なします。 | ## クライアントモードのオプション @@ -102,10 +102,10 @@ rippled [OPTIONS] -- {COMMAND} {COMMAND_PARAMETERS} クライアントモードは、個別のコマンド構文の他に、[汎用オプション](#汎用オプション)と以下のオプションに対応します。 -| オプション | 説明 | -|:------------------------|:---------------------------------------------------| -| `--rpc` | サーバをクライアントモードで実行することを明示的に指定します。必須ではありません。 | -| `--rpc_ip {IP_ADDRESS}` | 指定されたIPアドレスの`rippled`サーバに接続します。オプションでポート番号も指定します。 | +| オプション | 説明 | +| :---------------------- | :------------------------------------------------------------------------------------------------------------------------------- | +| `--rpc` | サーバをクライアントモードで実行することを明示的に指定します。必須ではありません。 | +| `--rpc_ip {IP_ADDRESS}` | 指定されたIPアドレスの`rippled`サーバに接続します。オプションでポート番号も指定します。 | | `--rpc_port {PORT}` | **廃止予定** 指定されたポートで`rippled`サーバに接続します。代わりに、`--rpc_ip`を使用してIPアドレスとともにポートを指定します。 | {% admonition type="success" name="ヒント" %}一部の引数では、マイナスの値を指定できます。APIコマンドの引数がオプションとして解釈されないようにするには、コマンド名の前に`--`引数を渡します。{% /admonition %} @@ -116,7 +116,6 @@ rippled [OPTIONS] -- {COMMAND} {COMMAND_PARAMETERS} rippled -- account_tx r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 -1 -1 ``` - ## 単体テスト ```bash @@ -134,13 +133,12 @@ rippled -u [OPTIONS] 単体テストの実行時には、[汎用オプション](#汎用オプション)と以下のいずれかのオプションを指定できます。 -| オプション | 短縮形 | 説明 | -|:-----------------------------------|:--------------|:------------------------| -| `--unittest-ipv6` | | 単体テストの実行時に[IPv6](https://en.wikipedia.org/wiki/IPv6)を使用してローカルサーバに接続します。このオプションが指定されていない場合、単体テストではIPv4が代わりに使用されます。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.1.0" %}新規: rippled 1.1.0{% /badge %} | -| `--unittest-jobs {NUMBER_OF_JOBS}` | | 指定された数のプロセスを使用して単体テストを実行します。これにより、マルチコアシステムの単体テストをより短時間で終了できます。`{NUMBER_OF_JOBS}`には、使用するプロセスの数を示すプラスの整数値を指定します。 | -| `--unittest-log` | | `--quiet`が指定されている場合でも、単体テストにてログへの書き込みができるようにします。(それ以外の影響はありません。) | -| `--quiet` | `-q` | 単体テストの実行時に出力される診断メッセージの数が減少します。 | - +| オプション | 短縮形 | 説明 | +| :--------------------------------- | :----- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `--unittest-ipv6` | | 単体テストの実行時に[IPv6](https://en.wikipedia.org/wiki/IPv6)を使用してローカルサーバに接続します。このオプションが指定されていない場合、単体テストではIPv4が代わりに使用されます。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.1.0" %}新規: rippled 1.1.0{% /badge %} | +| `--unittest-jobs {NUMBER_OF_JOBS}` | | 指定された数のプロセスを使用して単体テストを実行します。これにより、マルチコアシステムの単体テストをより短時間で終了できます。`{NUMBER_OF_JOBS}`には、使用するプロセスの数を示すプラスの整数値を指定します。 | +| `--unittest-log` | | `--quiet`が指定されている場合でも、単体テストにてログへの書き込みができるようにします。(それ以外の影響はありません。) | +| `--quiet` | `-q` | 単体テストの実行時に出力される診断メッセージの数が減少します。 | ### 特定の単体テスト @@ -176,8 +174,8 @@ Longest suite times: 特定の手動単体テストでは引数を指定できます。以下のオプションを使用して引数を指定します。 -| オプション | 説明 | -|:------------------------|:---------------------------------------------------| -| `--unittest-arg {ARG}` | 実行される単体テストに引数`{ARG}`を指定します。引数を受け入れる単体テストはそれぞれ、固有の引数形式を定義しています。 | +| オプション | 説明 | +| :--------------------- | :-------------------------------------------------------------------------------------------------------------------- | +| `--unittest-arg {ARG}` | 実行される単体テストに引数`{ARG}`を指定します。引数を受け入れる単体テストはそれぞれ、固有の引数形式を定義しています。 | {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/infrastructure/configuration/configure-amendment-voting.md b/@l10n/ja/docs/infrastructure/configuration/configure-amendment-voting.md index 7ead0f0a09..470d3e7922 100644 --- a/@l10n/ja/docs/infrastructure/configuration/configure-amendment-voting.md +++ b/@l10n/ja/docs/infrastructure/configuration/configure-amendment-voting.md @@ -2,11 +2,12 @@ html: configure-amendment-voting.html parent: configure-rippled.html seo: - description: プロトコル修正に伴うサーバの投票を設定する。 + description: プロトコル修正に伴うサーバの投票を設定する。 labels: - コアサーバ - ブロックチェーン --- + # Amendment投票機能の設定 バリデータとして設定されたサーバは、[featureメソッド][]を使ってXRP Ledgerプロトコルの[Amendment](../../concepts/networks-and-servers/amendments.md)に投票することができます。(この方法には[管理者アクセス](../../tutorials/http-websocket-apis/build-apps/get-started.md#管理者アクセス権限)が必要です). @@ -16,6 +17,7 @@ labels: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": "any_id_here", @@ -24,26 +26,31 @@ labels: "vetoed": true } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "feature", - "params": [ - { - "feature": "SHAMapV2", - "vetoed": true - } - ] + "method": "feature", + "params": [ + { + "feature": "SHAMapV2", + "vetoed": true + } + ] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh rippled feature SHAMapV2 reject ``` + {% /tab %} {% /tabs %} @@ -66,7 +73,7 @@ rippled feature SHAMapV2 reject ## 関連項目 - [Amendment](../../concepts/networks-and-servers/amendments.md) - - [既知のAmendment](/resources/known-amendments.md) + - [既知のAmendment](/resources/known-amendments.md) - [featureメソッド][] {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/infrastructure/configuration/configure-grpc.md b/@l10n/ja/docs/infrastructure/configuration/configure-grpc.md index fa399d4380..fc2c26cf3c 100644 --- a/@l10n/ja/docs/infrastructure/configuration/configure-grpc.md +++ b/@l10n/ja/docs/infrastructure/configuration/configure-grpc.md @@ -2,10 +2,11 @@ html: configure-grpc.html parent: configure-rippled.html seo: - description: gRPC APIを有効にして設定します。 + description: gRPC APIを有効にして設定します。 labels: - コアサーバ --- + # gRPCの設定 `rippled`サーバは[P2Pモードサーバ](../../concepts/networks-and-servers/rippled-server-modes.md)が提供できる限定的な[gRPC API](https://grpc.io/)を持っています。レポートモードのサーバはこのAPIを使って、最新の有効なレジャーやトランザクションに関するデータを取得します。新しい設定を使って、サーバ上でgRPC APIを有効にすることができます。 @@ -26,33 +27,33 @@ gRPCを有効にするには、次の前提条件を満たす必要がありま 1. `[port_grpc]`が`rippled`設定ファイルにあることを確認してください。 - ``` - [port_grpc] - port = 50051 - ip = 127.0.0.1 - ``` + ``` + [port_grpc] + port = 50051 + ip = 127.0.0.1 + ``` - - `port`はサーバがクライアントアプリケーションからのgRPC接続を待ち受けるポートを定義します。推奨されるポートは`50051`です。 - - ip`はサーバが待ち受けるインタフェースを定義します。127.0.0.1`はローカルループバックネットワーク(同じマシン)への接続を制限し、デフォルトで有効になっています。この値を`0.0.0.0`に変更すると、利用可能なすべてのネットワークインターフェイスを待ち受けます。 + - `port`はサーバがクライアントアプリケーションからのgRPC接続を待ち受けるポートを定義します。推奨されるポートは`50051`です。 + - ip`はサーバが待ち受けるインタフェースを定義します。127.0.0.1`はローカルループバックネットワーク(同じマシン)への接続を制限し、デフォルトで有効になっています。この値を`0.0.0.0`に変更すると、利用可能なすべてのネットワークインターフェイスを待ち受けます。 - {% partial file="/@l10n/ja/docs/_snippets/conf-file-location.md" /%} + {% partial file="/@l10n/ja/docs/_snippets/conf-file-location.md" /%} 2. `rippled`サービスを開始(または再起動)します。 - ``` - sudo systemctl restart rippled - ``` + ``` + sudo systemctl restart rippled + ``` ## 関連項目 - **コンセプト:** - - [XRP Ledgerの概要](/about/) - - [`rippled`サーバのモード](../../concepts/networks-and-servers/rippled-server-modes.md) + - [XRP Ledgerの概要](/about/) + - [`rippled`サーバのモード](../../concepts/networks-and-servers/rippled-server-modes.md) - **チュートリアル:** - - [HTTP / WebSocketAPIを使ってみる](../../tutorials/http-websocket-apis/build-apps/get-started.md) - - [信頼できるトランザクションの送信](../../concepts/transactions/reliable-transaction-submission.md) - - [rippledサーバの管理](../installation/install-rippled-on-ubuntu.md) + - [HTTP / WebSocketAPIを使ってみる](../../tutorials/http-websocket-apis/build-apps/get-started.md) + - [信頼できるトランザクションの送信](../../concepts/transactions/reliable-transaction-submission.md) + - [rippledサーバの管理](../installation/install-rippled-on-ubuntu.md) - **リファレンス:** - - [HTTP / WebSocket APIリファレンス](../../references/http-websocket-apis/index.md) + - [HTTP / WebSocket APIリファレンス](../../references/http-websocket-apis/index.md) {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/infrastructure/configuration/configure-statsd.md b/@l10n/ja/docs/infrastructure/configuration/configure-statsd.md index d65e57fae3..340534393a 100644 --- a/@l10n/ja/docs/infrastructure/configuration/configure-statsd.md +++ b/@l10n/ja/docs/infrastructure/configuration/configure-statsd.md @@ -2,10 +2,11 @@ html: configure-statsd.html parent: configure-rippled.html seo: - description: StatsDの統計データでrippledサーバを監視します。 + description: StatsDの統計データでrippledサーバを監視します。 labels: - コアサーバ --- + # StatsDの設定 `rippled`は自分自身に関するヘルスや動作情報を[StatsD](https://github.com/statsd/statsd)フォーマットでエクスポートできます。これらの情報は、[`rippledmon`](https://github.com/ripple/rippledmon)やStatsDフォーマットの統計情報を受け付ける他のコレクターを通して取得し、可視化することができます。 @@ -16,62 +17,60 @@ labels: 1. 別のマシンで`rippledmon`インスタンスをセットアップし、統計情報を受信して集計します。 - ``` - $ git clone https://github.com/ripple/rippledmon.git - $ cd rippledmon - $ docker-compose up - ``` + ``` + $ git clone https://github.com/ripple/rippledmon.git + $ cd rippledmon + $ docker-compose up + ``` - 上記の手順を実行する際には、[Docker](https://docs.docker.com/)と[DockerCompose](https://docs.docker.com/compose/install/)がマシンにインストールされていることを確認してください。`rippledmon`の設定については、[`rippledmon`リポジトリ](https://github.com/ripple/rippledmon)をご覧ください。 + 上記の手順を実行する際には、[Docker](https://docs.docker.com/)と[DockerCompose](https://docs.docker.com/compose/install/)がマシンにインストールされていることを確認してください。`rippledmon`の設定については、[`rippledmon`リポジトリ](https://github.com/ripple/rippledmon)をご覧ください。 -0. `[insight]`を`rippled`の設定ファイルに追加します。 +2. `[insight]`を`rippled`の設定ファイルに追加します。 - ``` - [insight] - server=statsd - address=192.0.2.0:8125 - prefix=my_rippled - ``` + ``` + [insight] + server=statsd + address=192.0.2.0:8125 + prefix=my_rippled + ``` - - `address`には`rippledmon`が接続しているIPアドレスとポートを指定します。デフォルトでは、このポートは8125です。 - - `prefix`には設定する`rippled`サーバを識別する名前を指定します。prefixには、空白、コロン":"、または縦棒"|"を含めてはいけません。このprefix(接頭辞)は、このサーバからエクスポートされるすべてのStatsDの統計情報に表示されます。 + - `address`には`rippledmon`が接続しているIPアドレスとポートを指定します。デフォルトでは、このポートは8125です。 + - `prefix`には設定する`rippled`サーバを識別する名前を指定します。prefixには、空白、コロン":"、または縦棒"|"を含めてはいけません。このprefix(接頭辞)は、このサーバからエクスポートされるすべてのStatsDの統計情報に表示されます。 - {% partial file="/@l10n/ja/docs/_snippets/conf-file-location.md" /%} + {% partial file="/@l10n/ja/docs/_snippets/conf-file-location.md" /%} -1. `rippled`サービスを再起動します。 +3. `rippled`サービスを再起動します。 - ``` - $ sudo systemctl restart rippled - ``` + ``` + $ sudo systemctl restart rippled + ``` -2. 統計情報がエクスポートされていることを確認します。 +4. 統計情報がエクスポートされていることを確認します。 - ``` - $ tcpdump -i en0 | grep UDP - ``` + ``` + $ tcpdump -i en0 | grep UDP + ``` - `en0`をあなたのマシンの適切なネットワークインターフェースに置き換えてください。あなたのマシンのインターフェースの完全なリストを取得するには`$ tcpdump -D`を使ってください。 + `en0`をあなたのマシンの適切なネットワークインターフェースに置き換えてください。あなたのマシンのインターフェースの完全なリストを取得するには`$ tcpdump -D`を使ってください。 - 出力の例: + 出力の例: - ``` - 00:41:53.066333 IP 192.0.2.2.63409 > 192.0.2.0.8125: UDP, length 196 - ``` + ``` + 00:41:53.066333 IP 192.0.2.2.63409 > 192.0.2.0.8125: UDP, length 196 + ``` - `rippledmon`インスタンスの設定されたアドレスとポートへの送信トラフィックを示すメッセージが定期的に表示されるはずです。 + `rippledmon`インスタンスの設定されたアドレスとポートへの送信トラフィックを示すメッセージが定期的に表示されるはずです。 StatsDの各データの説明については、[`rippledmon`リポジトリ](https://github.com/ripple/rippledmon)をご覧ください。 - - ## 関連項目 - **コンセプト:** - - [XRP Ledgerの概要](/about/) - - [`rippled`サーバ](../../concepts/networks-and-servers/index.md) + - [XRP Ledgerの概要](/about/) + - [`rippled`サーバ](../../concepts/networks-and-servers/index.md) - **チュートリアル:** - - [`rippled`のインストール](../installation/index.md) - - [容量の計画](../installation/capacity-planning.md) + - [`rippled`のインストール](../installation/index.md) + - [容量の計画](../installation/capacity-planning.md) - **リアファレンス:** - - [server_infoメソッド](../../references/http-websocket-apis/public-api-methods/server-info-methods/server_info.md) - - [printメソッド](../../references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/print.md) + - [server_infoメソッド](../../references/http-websocket-apis/public-api-methods/server-info-methods/server_info.md) + - [printメソッド](../../references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/print.md) diff --git a/@l10n/ja/docs/infrastructure/configuration/connect-your-rippled-to-the-xrp-test-net.md b/@l10n/ja/docs/infrastructure/configuration/connect-your-rippled-to-the-xrp-test-net.md index 2c58ce5821..d6739e3f09 100644 --- a/@l10n/ja/docs/infrastructure/configuration/connect-your-rippled-to-the-xrp-test-net.md +++ b/@l10n/ja/docs/infrastructure/configuration/connect-your-rippled-to-the-xrp-test-net.md @@ -2,12 +2,13 @@ html: connect-your-rippled-to-the-xrp-test-net.html parent: configure-rippled.html seo: - description: rippledサーバをTest Netに接続して、模造の資金を使って新しい機能を試したり、機能をテストしたりします。 + description: rippledサーバをTest Netに接続して、模造の資金を使って新しい機能を試したり、機能をテストしたりします。 labels: - コアサーバ - ブロックチェーン - 開発 --- + # rippledを並列ネットワークに接続 様々な[テスト用・開発用の代替ネットワーク](../../concepts/networks-and-servers/parallel-networks.md)が存在しており、開発者は実際の資金をリスクにさらすことなく、アプリのテストや機能の実験を行うことができます。**これらのネットワークで使用される資金は実際の資金ではなく、テスト専用です。**あなたの[`rippled`サーバ](../../concepts/networks-and-servers/index.md)をこれらのテストネットワークのいずれかに接続することができます。 @@ -23,61 +24,62 @@ labels: `rippled.cfg`ファイルを編集します。 {% partial file="/@l10n/ja/docs/_snippets/conf-file-location.md" /%} + 1. `[ips]`に接続したいネットワークのハブを設定します。 - {% tabs %} + {% tabs %} - ```{% label="Testnet" %} - [ips] - s.altnet.rippletest.net 51235 - ``` + ```{% label="Testnet" %} + [ips] + s.altnet.rippletest.net 51235 + ``` - ```{% label="Devnet" %} - [ips] - s.devnet.rippletest.net 51235 - ``` + ```{% label="Devnet" %} + [ips] + s.devnet.rippletest.net 51235 + ``` - ```{% label="Mainnet" %} - # No [ips] stanza. Use the default hubs to connect to Mainnet. - ``` + ```{% label="Mainnet" %} + # No [ips] stanza. Use the default hubs to connect to Mainnet. + ``` - {% /tabs %} + {% /tabs %} 2. 以前の `[ips]`があれば、コメントアウトしてください。 - ``` - # [ips] - # r.ripple.com 51235 - # zaphod.alloy.ee 51235 - # sahyadri.isrdc.in 51235 - ``` + ``` + # [ips] + # r.ripple.com 51235 + # zaphod.alloy.ee 51235 + # sahyadri.isrdc.in 51235 + ``` 3. `[network_id]`に適切な値を追加します。 - {% tabs %} + {% tabs %} - ```{% label="Testnet" %} - [network_id] - testnet - ``` + ```{% label="Testnet" %} + [network_id] + testnet + ``` - ```{% label="Devnet" %} - [network_id] - devnet - ``` + ```{% label="Devnet" %} + [network_id] + devnet + ``` - ```{% label="Mainnet" %} - [network_id] - main - ``` + ```{% label="Mainnet" %} + [network_id] + main + ``` - {% /tabs %} + {% /tabs %} - カスタムネットワークの場合、そのネットワークに接続する全員が、そのネットワークに固有の値を使用する必要があります。新しいネットワークを作成するときは、ネットワークIDを11から4,294,967,295までの整数からランダムに選択します。 + カスタムネットワークの場合、そのネットワークに接続する全員が、そのネットワークに固有の値を使用する必要があります。新しいネットワークを作成するときは、ネットワークIDを11から4,294,967,295までの整数からランダムに選択します。 - {% admonition type="info" name="注記" %}この設定はサーバが同じネットワーク上にいる仲間を見つけるのに役立ちますが、サーバがどのネットワークに従うかを厳密に制御するものではありません。UNL/信頼できるバリデータの設定(次のステップ)はサーバが従うネットワークを定義するものです。{% /admonition %} + {% admonition type="info" name="注記" %}この設定はサーバが同じネットワーク上にいる仲間を見つけるのに役立ちますが、サーバがどのネットワークに従うかを厳密に制御するものではありません。UNL/信頼できるバリデータの設定(次のステップ)はサーバが従うネットワークを定義するものです。{% /admonition %} ## 2. 信頼できるバリデータリストの設定 @@ -85,57 +87,57 @@ labels: 1. 接続したいネットワークの`[validator_list_sites]`と`[validator_list_keys]`コメントを解除するか、追加します。 - {% tabs %} + {% tabs %} - ```{% label="Testnet" %} - [validator_list_sites] - https://vl.altnet.rippletest.net + ```{% label="Testnet" %} + [validator_list_sites] + https://vl.altnet.rippletest.net - [validator_list_keys] - ED264807102805220DA0F312E71FC2C69E1552C9C5790F6C25E3729DEB573D5860 - ``` + [validator_list_keys] + ED264807102805220DA0F312E71FC2C69E1552C9C5790F6C25E3729DEB573D5860 + ``` - ```{% label="Devnet" %} - [validator_list_sites] - https://vl.devnet.rippletest.net + ```{% label="Devnet" %} + [validator_list_sites] + https://vl.devnet.rippletest.net - [validator_list_keys] - EDBB54B0D9AEE071BB37784AF5A9E7CC49AC7A0EFCE868C54532BCB966B9CFC13B - ``` + [validator_list_keys] + EDBB54B0D9AEE071BB37784AF5A9E7CC49AC7A0EFCE868C54532BCB966B9CFC13B + ``` - ```{% label="Mainnet" %} - [validator_list_sites] - https://vl.ripple.com + ```{% label="Mainnet" %} + [validator_list_sites] + https://vl.ripple.com - [validator_list_keys] - ED2677ABFFD1B33AC6FBC3062B71F1E8397C1505E1C42C64D11AD1B28FF73F4734 - ``` + [validator_list_keys] + ED2677ABFFD1B33AC6FBC3062B71F1E8397C1505E1C42C64D11AD1B28FF73F4734 + ``` - {% /tabs %} + {% /tabs %} - {% admonition type="success" name="ヒント" %}プレビュー版パッケージには必要な項目があらかじめ設定されている場合がありますが、念のため確認してください。{% /admonition %} + {% admonition type="success" name="ヒント" %}プレビュー版パッケージには必要な項目があらかじめ設定されている場合がありますが、念のため確認してください。{% /admonition %} 2. 以前の`[validator_list_sites]`,`[validator_list_keys]`,または`[validators]`をコメントアウトします。 - 例えば: + 例えば: - ``` - # [validator_list_sites] - # https://vl.ripple.com - # - # [validator_list_keys] - # ED2677ABFFD1B33AC6FBC3062B71F1E8397C1505E1C42C64D11AD1B28FF73F4734 + ``` + # [validator_list_sites] + # https://vl.ripple.com + # + # [validator_list_keys] + # ED2677ABFFD1B33AC6FBC3062B71F1E8397C1505E1C42C64D11AD1B28FF73F4734 - # Old hard-coded List of Devnet Validators - # [validators] - # n9Mo4QVGnMrRN9jhAxdUFxwvyM4aeE1RvCuEGvMYt31hPspb1E2c - # n9MEwP4LSSikUnhZJNQVQxoMCgoRrGm6GGbG46AumH2KrRrdmr6B - # n9M1pogKUmueZ2r3E3JnZyM3g6AxkxWPr8Vr3zWtuRLqB7bHETFD - # n9MX7LbfHvPkFYgGrJmCyLh8Reu38wsnnxA4TKhxGTZBuxRz3w1U - # n94aw2fof4xxd8g3swN2qJCmooHdGv1ajY8Ae42T77nAQhZeYGdd - # n9LiE1gpUGws1kFGKCM9rVFNYPVS4QziwkQn281EFXX7TViCp2RC - # n9Jq9w1R8UrvV1u2SQqGhSXLroeWNmPNc3AVszRXhpUr1fmbLyhS - ``` + # Old hard-coded List of Devnet Validators + # [validators] + # n9Mo4QVGnMrRN9jhAxdUFxwvyM4aeE1RvCuEGvMYt31hPspb1E2c + # n9MEwP4LSSikUnhZJNQVQxoMCgoRrGm6GGbG46AumH2KrRrdmr6B + # n9M1pogKUmueZ2r3E3JnZyM3g6AxkxWPr8Vr3zWtuRLqB7bHETFD + # n9MX7LbfHvPkFYgGrJmCyLh8Reu38wsnnxA4TKhxGTZBuxRz3w1U + # n94aw2fof4xxd8g3swN2qJCmooHdGv1ajY8Ae42T77nAQhZeYGdd + # n9LiE1gpUGws1kFGKCM9rVFNYPVS4QziwkQn281EFXX7TViCp2RC + # n9Jq9w1R8UrvV1u2SQqGhSXLroeWNmPNc3AVszRXhpUr1fmbLyhS + ``` ## 3. 機能を有効化(無効化)する @@ -144,24 +146,30 @@ labels: {% tabs %} {% tab label="Testnet" %} + ``` # [features] # Delete or comment out. Don't force-enable features on Testnet. ``` + {% /tab %} {% tab label="Devnet" %} + ``` # [features] # Delete or comment out. Don't force-enable features on Devnet. ``` + {% /tab %} {% tab label="Mainnet" %} + ``` # [features] # Delete or comment out. Don't force-enable features on Mainnet. ``` + {% /tab %} {% /tabs %} @@ -188,21 +196,19 @@ rippled server_info | grep seq WebSocketツールの[server_info](/resources/dev-tools/websocket-api-tool#server_info)を使って、対象のネットワーク上の最新のレジャーインデックス(`seq`)を調べることができます。 - - ## 関連項目 - **ツール:** - - [XRP Faucets](/resources/dev-tools/xrp-faucets) - - [WebSocket APIツール](/resources/dev-tools/websocket-api-tool) - 接続オプションで「Testnet Public Server」または「Devnet Public Server」を選択します。 + - [XRP Faucets](/resources/dev-tools/xrp-faucets) + - [WebSocket APIツール](/resources/dev-tools/websocket-api-tool) - 接続オプションで「Testnet Public Server」または「Devnet Public Server」を選択します。 - **コンセプト:** - - [並列ネットワーク](../../concepts/networks-and-servers/parallel-networks.md) - - [コンセンサス](../../concepts/consensus-protocol/index.md) + - [並列ネットワーク](../../concepts/networks-and-servers/parallel-networks.md) + - [コンセンサス](../../concepts/consensus-protocol/index.md) - **チュートリアル:** - - [バリデータとしてのrippledの実行](server-modes/run-rippled-as-a-validator.md) - - [オフラインで`rippled`をスタンドアロンモードでテストする](../testing-and-auditing/index.md) - - [`rippled`のトラブルシューティング](../troubleshooting/index.md) + - [バリデータとしてのrippledの実行](server-modes/run-rippled-as-a-validator.md) + - [オフラインで`rippled`をスタンドアロンモードでテストする](../testing-and-auditing/index.md) + - [`rippled`のトラブルシューティング](../troubleshooting/index.md) - **References:** - - [server_infoメソッド][] + - [server_infoメソッド][] {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/infrastructure/configuration/data-retention/configure-advisory-deletion.md b/@l10n/ja/docs/infrastructure/configuration/data-retention/configure-advisory-deletion.md index 651ee65285..37b2830b30 100644 --- a/@l10n/ja/docs/infrastructure/configuration/data-retention/configure-advisory-deletion.md +++ b/@l10n/ja/docs/infrastructure/configuration/data-retention/configure-advisory-deletion.md @@ -2,11 +2,12 @@ html: configure-advisory-deletion.html parent: data-retention.html seo: - description: 指示による削除を使用して、新しい履歴ができたときではなく、スケジュールで古いレジャー履歴を削除します。 + description: 指示による削除を使用して、新しい履歴ができたときではなく、スケジュールで古いレジャー履歴を削除します。 labels: - コアサーバ - データ保持 --- + # 指示による削除の設定 デフォルトの構成ファイルは、新しいレジャーバージョンが利用可能になると`rippled`が古いXRP Ledgerの履歴を自動的に削除するように設定されています。サーバがピーク時にハードウェアリソースの大部分を使用する場合は、オフピーク時に実行するようスケジュールされたコマンドからの指示があった場合にのみ、レジャーを削除するようにサーバを設定できます。これにより、オンライン削除がサーバのパフォーマンスに及ぼす影響はほとんどなくなります。 @@ -19,21 +20,21 @@ labels: - `rippled`サーバがすでに[インストール](../../installation/index.md)されており、[オンライン削除](online-deletion.md)が有効になっている。 - デフォルトの構成ファイルは、レジャーバージョンが2000個を超えるとオンライン削除を実行するよう設定されています。 + デフォルトの構成ファイルは、レジャーバージョンが2000個を超えるとオンライン削除を実行するよう設定されています。 - `cron`デーモンがインストールされており、実行されている。 - Ubuntu Linuxではデフォルトで`cron`デーモンが実行されます。 + Ubuntu Linuxではデフォルトで`cron`デーモンが実行されます。 - RHELまたはCentOSでは、以下の`cronie`パッケージをインストールできます。 + RHELまたはCentOSでは、以下の`cronie`パッケージをインストールできます。 - ``` - $ sudo yum install cronie - ``` + ``` + $ sudo yum install cronie + ``` - 選択した量の履歴をレジャーストアーに保管するのに十分なディスク容量がサーバにある。 - 各種設定で必要なストレージの容量についての詳細は、[容量計画](../../installation/capacity-planning.md)をご覧ください。指示による削除が有効な場合、削除が実行されるまでにサーバに蓄積可能な履歴の最大数は、`online_delete`設定で設定したレジャーバージョン数と、オンライン削除の指示の間隔を**加算**したものに相当します。 + 各種設定で必要なストレージの容量についての詳細は、[容量計画](../../installation/capacity-planning.md)をご覧ください。指示による削除が有効な場合、削除が実行されるまでにサーバに蓄積可能な履歴の最大数は、`online_delete`設定で設定したレジャーバージョン数と、オンライン削除の指示の間隔を**加算**したものに相当します。 - サーバの使用率が最も低い時間帯を把握している。 @@ -43,68 +44,68 @@ labels: 1. `rippled`の構成ファイルの`[node_db]`スタンザで`advisory_delete`を有効にします。 - ``` - [node_db] - # Other settings unchanged ... - online_delete=300000 - advisory_delete=1 - ``` + ``` + [node_db] + # Other settings unchanged ... + online_delete=300000 + advisory_delete=1 + ``` - - 指示された場合にのみオンライン削除を実行するには、`advisory_delete`を`1`に設定します。(`0`に設定すると、新しいレジャーバージョンが使用可能になると自動的にオンライン削除が実行されます。) - - `online_delete`を、オンライン削除の実行後に維持するレジャーバージョンの最小数に設定します。オンライン削除が実行されるまでに蓄積される履歴は、この値よりも多くなります。 + - 指示された場合にのみオンライン削除を実行するには、`advisory_delete`を`1`に設定します。(`0`に設定すると、新しいレジャーバージョンが使用可能になると自動的にオンライン削除が実行されます。) + - `online_delete`を、オンライン削除の実行後に維持するレジャーバージョンの最小数に設定します。オンライン削除が実行されるまでに蓄積される履歴は、この値よりも多くなります。 - {% partial file="/@l10n/ja/docs/_snippets/conf-file-location.md" /%} + {% partial file="/@l10n/ja/docs/_snippets/conf-file-location.md" /%} 2. サーバに対してオンライン削除を指示する[can_deleteメソッド][]の実行をテストします。 - このコマンドの実行には[`rippled`コマンドラインインターフェイス](../../../tutorials/http-websocket-apis/build-apps/get-started.md#コマンドライン)を使用できます。例: + このコマンドの実行には[`rippled`コマンドラインインターフェイス](../../../tutorials/http-websocket-apis/build-apps/get-started.md#コマンドライン)を使用できます。例: - ``` - $ rippled --conf=/etc/opt/ripple/rippled.cfg can_delete now - ``` + ``` + $ rippled --conf=/etc/opt/ripple/rippled.cfg can_delete now + ``` - レスポンスは、サーバがそのレジャーストアーから削除するレジャーインデックスの最大値を示します。たとえば、以下のメッセージはレジャーインデックス43633667以下のレジャーバージョンを削除できることを示します。 + レスポンスは、サーバがそのレジャーストアーから削除するレジャーインデックスの最大値を示します。たとえば、以下のメッセージはレジャーインデックス43633667以下のレジャーバージョンを削除できることを示します。 - ``` - { - "result": { - "can_delete": 43633667, - "status": "success" - } - } - ``` + ``` + { + "result": { + "can_delete": 43633667, + "status": "success" + } + } + ``` - サーバ内の _新しい_ 検証済みレジャーバージョンの数が、`online_delete`の設定以上となった場合にのみ、レジャーバージョンが削除されます。 + サーバ内の _新しい_ 検証済みレジャーバージョンの数が、`online_delete`の設定以上となった場合にのみ、レジャーバージョンが削除されます。 3. 前のステップでテストした`can_delete`メソッドを、予定した時刻に実行するように`cron`デーモンを設定します。 - `cron` 設定を編集します。 + `cron` 設定を編集します。 - ``` - $ crontab -e - ``` + ``` + $ crontab -e + ``` - 以下の例では、サーバ時刻で毎日1:05 AMにサーバが削除を実行するように設定されています。 + 以下の例では、サーバ時刻で毎日1:05 AMにサーバが削除を実行するように設定されています。 - ``` - 5 1 * * * rippled --conf /etc/opt/ripple/rippled.cfg can_delete now - ``` + ``` + 5 1 * * * rippled --conf /etc/opt/ripple/rippled.cfg can_delete now + ``` - サーバで設定されているタイムゾーンに基づいてコマンドが実行されるようにスケジュールしてください。 + サーバで設定されているタイムゾーンに基づいてコマンドが実行されるようにスケジュールしてください。 - **ヒント:**`advisory_delete`を無効にしている場合は、`cron`ジョブをオンラインで実行するようにスケジュールする必要はありません。この場合、サーバの最も古いレジャーバージョンと現行の検証済みレジャーバージョンの差が`online_delete`の値以上である場合に、`rippled`によりオンライン削除が実行されます。 + **ヒント:**`advisory_delete`を無効にしている場合は、`cron`ジョブをオンラインで実行するようにスケジュールする必要はありません。この場合、サーバの最も古いレジャーバージョンと現行の検証済みレジャーバージョンの差が`online_delete`の値以上である場合に、`rippled`によりオンライン削除が実行されます。 4. `rippled`サービスを起動(または再起動)します。 - ``` - $ sudo systemctl restart rippled - ``` + ``` + $ sudo systemctl restart rippled + ``` 5. [server_infoメソッド][]を使用してサーバの`complete_ledgers`範囲を定期的に調べ、レジャーがスケジュール通りに削除されていることを確認します。 - オンライン削除の実行後には`complete_ledgers`の最小レジャーインデックスが増加します。 + オンライン削除の実行後には`complete_ledgers`の最小レジャーインデックスが増加します。 - サーバの使用率の状況と、一度に削除する履歴の量によっては、削除が完了するまでに数分間かかることがあります。 + サーバの使用率の状況と、一度に削除する履歴の量によっては、削除が完了するまでに数分間かかることがあります。 ## トラブルシューティング diff --git a/@l10n/ja/docs/infrastructure/configuration/data-retention/configure-full-history.md b/@l10n/ja/docs/infrastructure/configuration/data-retention/configure-full-history.md index 9ea2b86d32..28fc67c274 100644 --- a/@l10n/ja/docs/infrastructure/configuration/data-retention/configure-full-history.md +++ b/@l10n/ja/docs/infrastructure/configuration/data-retention/configure-full-history.md @@ -1,10 +1,11 @@ --- seo: - description: 完全履歴サーバは、運用のコストは高いものの、XRP Ledgerでこれまでに発生したすべてのトランザクションの記録を提供します。 + description: 完全履歴サーバは、運用のコストは高いものの、XRP Ledgerでこれまでに発生したすべてのトランザクションの記録を提供します。 labels: - コアサーバ - データ保持 --- + # 全履歴の設定 デフォルトの構成では、新しいレジャーバージョンが利用可能になると`rippled`サーバが古いXRP Ledger状態とトランザクションの履歴を自動的に削除するように設定されています。ほとんどのサーバでは現在の状態を把握してトランザクションを処理するのに古い履歴は不要なため、この設定で十分です。ただし、一部のサーバが可能な限り多くのXRP Ledgerの履歴を提供する場合、これはネットワークにとって有用であることがあります。 @@ -17,94 +18,93 @@ labels: ネットワークへの参加、トランザクションの検証、またはネットワークの現在の状態の確認には、全履歴を記録するサーバは必要ありません。全履歴が有用となるのは、過去に発生したトランザクションの結果や、過去の特定の時点におけるレジャーの状態を確認する場合だけです。このような情報を取得するには、必要とする履歴を保持している他のサーバを利用する必要があります。 - ## 構成手順 サーバが全履歴を取得して保管するように構成するには、以下の手順を実行します。 1. `rippled`サーバが稼働中の場合は停止します。 - ``` - $ sudo systemctl stop rippled - ``` + ``` + $ sudo systemctl stop rippled + ``` -0. サーバの構成ファイルで`[node_db]`スタンザの`online_delete`設定と`advisory_delete`設定を削除(またはコメントアウト)し、タイプをまだ`NuDB`に変更していない場合は変更します。 +2. サーバの構成ファイルで`[node_db]`スタンザの`online_delete`設定と`advisory_delete`設定を削除(またはコメントアウト)し、タイプをまだ`NuDB`に変更していない場合は変更します。 - ``` - [node_db] - type=NuDB - path=/var/lib/rippled/db/nudb - #online_delete=300000 - #advisory_delete=0 - ``` + ``` + [node_db] + type=NuDB + path=/var/lib/rippled/db/nudb + #online_delete=300000 + #advisory_delete=0 + ``` - 全履歴が記録されるサーバでは、レジャーストアーにNuDBを使用します。これは、データベースがこれほど大きいと、RocksDBでは非常に大量のRAMが必要になるためです。詳細は、[容量の計画](../../installation/capacity-planning.md)をご覧ください。パフォーマンス関連の構成オプション`open_files`、`filter_bits`、`cache_mb`、`file_size_mb`、および`file_size_mult`は、RocksDBのみに適用されるオプションであるため、デフォルトの`[node_db]`スタンザから削除できます。 + 全履歴が記録されるサーバでは、レジャーストアーにNuDBを使用します。これは、データベースがこれほど大きいと、RocksDBでは非常に大量のRAMが必要になるためです。詳細は、[容量の計画](../../installation/capacity-planning.md)をご覧ください。パフォーマンス関連の構成オプション`open_files`、`filter_bits`、`cache_mb`、`file_size_mb`、および`file_size_mult`は、RocksDBのみに適用されるオプションであるため、デフォルトの`[node_db]`スタンザから削除できます。 - {% admonition type="warning" name="注意" %}RocksDBで履歴をすでにダウンロードしている場合は、NuDBへ切り替えるときに構成ファイルでデータベースのパスを変更するか、またはそのデータを削除する必要があります。`[node_db]`スタンザの`path`設定**および**`[database_path]`(SQLiteデータベース)設定の両方を変更する必要があります。このようにしないと、サーバの[起動が失敗する](../../troubleshooting/server-wont-start.md#状態dbエラー)可能性があります。{% /admonition %} + {% admonition type="warning" name="注意" %}RocksDBで履歴をすでにダウンロードしている場合は、NuDBへ切り替えるときに構成ファイルでデータベースのパスを変更するか、またはそのデータを削除する必要があります。`[node_db]`スタンザの`path`設定**および**`[database_path]`(SQLiteデータベース)設定の両方を変更する必要があります。このようにしないと、サーバの[起動が失敗する](../../troubleshooting/server-wont-start.md#状態dbエラー)可能性があります。{% /admonition %} - {% partial file="/@l10n/ja/docs/_snippets/conf-file-location.md" /%} + {% partial file="/@l10n/ja/docs/_snippets/conf-file-location.md" /%} -0. サーバの構成ファイルで`[ledger_history]`スタンザを`full`に設定します。 +3. サーバの構成ファイルで`[ledger_history]`スタンザを`full`に設定します。 - ``` - [ledger_history] - full - ``` + ``` + [ledger_history] + full + ``` -0. 全履歴が保管されている1台以上のサーバと明示的にピア接続するように、サーバの構成ファイルで`[ips_fixed]`スタンザを設定します。 +4. 全履歴が保管されている1台以上のサーバと明示的にピア接続するように、サーバの構成ファイルで`[ips_fixed]`スタンザを設定します。 - ``` - [ips_fixed] - 169.55.164.20 - 50.22.123.215 - ``` + ``` + [ips_fixed] + 169.55.164.20 + 50.22.123.215 + ``` - サーバのダイレクトピアの1つが使用可能な履歴データを保持している場合に限り、サーバはピアツーピアネットワークから履歴データをダウンロードできます。全履歴をダウンロードする最も容易な方法は、すでに全履歴を保管しているサーバとピア接続することです。 + サーバのダイレクトピアの1つが使用可能な履歴データを保持している場合に限り、サーバはピアツーピアネットワークから履歴データをダウンロードできます。全履歴をダウンロードする最も容易な方法は、すでに全履歴を保管しているサーバとピア接続することです。 - {% admonition type="success" name="ヒント" %}Rippleは、すべての履歴が記録されるサーバのプールを公開しています。これらのサーバのIPアドレスを取得するには、ドメイン`s2.ripple.com`を数回解決します。これらのサーバは公開サービスとして提供されているため、他のサーバとのピア接続での可用性は限られており、またこれらのサーバを悪用するとブロックされる可能性があることに注意してください。{% /admonition %} + {% admonition type="success" name="ヒント" %}Rippleは、すべての履歴が記録されるサーバのプールを公開しています。これらのサーバのIPアドレスを取得するには、ドメイン`s2.ripple.com`を数回解決します。これらのサーバは公開サービスとして提供されているため、他のサーバとのピア接続での可用性は限られており、またこれらのサーバを悪用するとブロックされる可能性があることに注意してください。{% /admonition %} -0. 全履歴が記録されている別のサーバからのデータベースダンプがあり、このダンプをベースとして利用できる場合は、サーバの構成ファイルで`[import_db]`スタンザがインポート対象データを指し示すように設定します。(それ以外の場合はこのステップをスキップします。) +5. 全履歴が記録されている別のサーバからのデータベースダンプがあり、このダンプをベースとして利用できる場合は、サーバの構成ファイルで`[import_db]`スタンザがインポート対象データを指し示すように設定します。(それ以外の場合はこのステップをスキップします。) - ``` - [import_db] - type=NuDB - path=/tmp/full_history_dump/ - ``` + ``` + [import_db] + type=NuDB + path=/tmp/full_history_dump/ + ``` -0. 以前に稼働していた`rippled`からの既存のデータベースファイルがサーバにある場合は、そのデータベースファイルを削除します。 +6. 以前に稼働していた`rippled`からの既存のデータベースファイルがサーバにある場合は、そのデータベースファイルを削除します。 - オンライン削除を無効にすると、サーバはオンライン削除が有効であった間にダウンロードしたデータをすべて無視するため、ディスク容量を空けることができます。次に例を示します。 + オンライン削除を無効にすると、サーバはオンライン削除が有効であった間にダウンロードしたデータをすべて無視するため、ディスク容量を空けることができます。次に例を示します。 - ``` - rm -r /var/lib/rippled/db/* - ``` + ``` + rm -r /var/lib/rippled/db/* + ``` - {% admonition type="danger" name="警告" %}フォルダーを削除する前に、保持したいファイルがそのフォルダーに含まれていないことを確認してください。通常は安全に`rippled`サーバのデータベースファイルをすべて削除できますが、この操作は、設定されているデータベースフォルダーが`rippled`のデータベース以外には使用されていない場合にのみ行ってください。{% /admonition %} + {% admonition type="danger" name="警告" %}フォルダーを削除する前に、保持したいファイルがそのフォルダーに含まれていないことを確認してください。通常は安全に`rippled`サーバのデータベースファイルをすべて削除できますが、この操作は、設定されているデータベースフォルダーが`rippled`のデータベース以外には使用されていない場合にのみ行ってください。{% /admonition %} -0. `rippled`サーバを起動し、インポート可能なデータベースダンプがある場合にはインポートします。 +7. `rippled`サーバを起動し、インポート可能なデータベースダンプがある場合にはインポートします。 - `[Import_db]`で構成されている読み取り対象データベースダンプがある場合は、`--import` [コマンドラインオプション](../../commandline-usage.md#デーモンモードのオプション)を指定してサーバを明示的に起動します。 + `[Import_db]`で構成されている読み取り対象データベースダンプがある場合は、`--import` [コマンドラインオプション](../../commandline-usage.md#デーモンモードのオプション)を指定してサーバを明示的に起動します。 - ``` - $ /opt/ripple/bin/rippled --conf /etc/opt/ripple/rippled.cfg --import - ``` + ``` + $ /opt/ripple/bin/rippled --conf /etc/opt/ripple/rippled.cfg --import + ``` - 大量のデータベースダンプのインポートには数分から数時間かかることがあります。インポート中はサーバは完全には起動せず、ネットワークと同期しません。インポートの状況を確認するには、サーバログをご覧ください。 + 大量のデータベースダンプのインポートには数分から数時間かかることがあります。インポート中はサーバは完全には起動せず、ネットワークと同期しません。インポートの状況を確認するには、サーバログをご覧ください。 - データベースダンプをインポートしない場合は、サーバを通常の方法で起動します。 + データベースダンプをインポートしない場合は、サーバを通常の方法で起動します。 - ``` - $ sudo systemctl start rippled - ``` + ``` + $ sudo systemctl start rippled + ``` -0. `[import_db]`スタンザをサーバの構成ファイルに追加した場合は、インポートの完了後にそのスタンザを削除してください。 +8. `[import_db]`スタンザをサーバの構成ファイルに追加した場合は、インポートの完了後にそのスタンザを削除してください。 - このようにしないと、次回の再起動時にサーバが同じデータを再びインポートしようとします。 + このようにしないと、次回の再起動時にサーバが同じデータを再びインポートしようとします。 -0. [server_infoメソッド][]を使用して、サーバの利用可能な履歴を監視します。 +9. [server_infoメソッド][]を使用して、サーバの利用可能な履歴を監視します。 - `complete_ledgers`フィールドに表示される利用可能なレジャーの範囲は、時間の経過とともに増加します。 + `complete_ledgers`フィールドに表示される利用可能なレジャーの範囲は、時間の経過とともに増加します。 - 本番環境のXRP Ledgerの履歴で最も古い利用可能なレジャーバージョンは、レジャーインデックス**32570**です。レジャー履歴の最初の約2週間分は、当時のサーバのバグが原因で失われています。Test Netやその他のチェーンでは通常、履歴の最初のバージョンはレジャーインデックス**1**です。 + 本番環境のXRP Ledgerの履歴で最も古い利用可能なレジャーバージョンは、レジャーインデックス**32570**です。レジャー履歴の最初の約2週間分は、当時のサーバのバグが原因で失われています。Test Netやその他のチェーンでは通常、履歴の最初のバージョンはレジャーインデックス**1**です。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/infrastructure/configuration/data-retention/configure-online-deletion.md b/@l10n/ja/docs/infrastructure/configuration/data-retention/configure-online-deletion.md index 374903d583..5c9ec9b5f0 100644 --- a/@l10n/ja/docs/infrastructure/configuration/data-retention/configure-online-deletion.md +++ b/@l10n/ja/docs/infrastructure/configuration/data-retention/configure-online-deletion.md @@ -2,11 +2,12 @@ html: configure-online-deletion.html parent: data-retention.html seo: - description: サーバでどこまで古いトランザクション履歴を保持するかを設定します。 + description: サーバでどこまで古いトランザクション履歴を保持するかを設定します。 labels: - データ保持 - コアサーバ --- + # オンライン削除の設定 `rippled`サーバのデフォルトの構成では、最新2000個のレジャーバージョンよりも古い[履歴が削除され](online-deletion.md)、レジャー履歴は約15分間維持されます(現行のレジャー毎の間隔に基づく)。このページでは、削除までに`rippled`サーバに保管される履歴の量を設定する方法を説明します。 @@ -19,60 +20,57 @@ labels: - `rippled`サーバがすでに[インストール](../../installation/index.md)されており、[オンライン削除](online-deletion.md)が有効になっている。 - 推奨されるプラットフォームのインストール手順に従えば、オンライン削除はデフォルトで有効となります。 + 推奨されるプラットフォームのインストール手順に従えば、オンライン削除はデフォルトで有効となります。 - 選択した量の履歴をレジャーストアーに保管するのに[十分なディスク容量](../../installation/capacity-planning.md)がサーバにある。 - ## 構成手順 サーバに保管する履歴の量を変更するには、以下の手順を実行します。 1. 保管する履歴に相当するレジャーバージョンの数を決定します。 - 新しいレジャーバージョンは通常3~4秒間隔で検証されます。このため、レジャーバージョンの数は、保管する期間におおむね対応しています。各種構成で必要なストレージの容量についての詳細は、[容量計画](../../installation/capacity-planning.md)をご覧ください。 + 新しいレジャーバージョンは通常3~4秒間隔で検証されます。このため、レジャーバージョンの数は、保管する期間におおむね対応しています。各種構成で必要なストレージの容量についての詳細は、[容量計画](../../installation/capacity-planning.md)をご覧ください。 - オンライン削除は、履歴の削除 _後_ に維持するレジャーバージョンの数に基づいておこなわれるので、設定した維持するレジャー数の2倍を保管するのに十分なディスク容量が必要です。 + オンライン削除は、履歴の削除 _後_ に維持するレジャーバージョンの数に基づいておこなわれるので、設定した維持するレジャー数の2倍を保管するのに十分なディスク容量が必要です。 -0. `rippled`の構成ファイルで`[node_db]` スタンザの`online_delete`フィールドを編集します。 +2. `rippled`の構成ファイルで`[node_db]` スタンザの`online_delete`フィールドを編集します。 - ``` - [node_db] - # Other settings unchanged ... - online_delete=300000 - advisory_delete=0 - ``` + ``` + [node_db] + # Other settings unchanged ... + online_delete=300000 + advisory_delete=0 + ``` - `online_delete`を、オンライン削除の実行後に維持するレジャーバージョンの最小数に設定します。自動削除が設定されている場合(デフォルト)、サーバは通常、この数の約2倍のレジャーバージョンが蓄積されると削除を実行します。 + `online_delete`を、オンライン削除の実行後に維持するレジャーバージョンの最小数に設定します。自動削除が設定されている場合(デフォルト)、サーバは通常、この数の約2倍のレジャーバージョンが蓄積されると削除を実行します。 - {% partial file="/@l10n/ja/docs/_snippets/conf-file-location.md" /%} + {% partial file="/@l10n/ja/docs/_snippets/conf-file-location.md" /%} -0. `rippled`サービスを起動(または再起動)します。 +3. `rippled`サービスを起動(または再起動)します。 - ``` - $ sudo systemctl restart rippled - ``` + ``` + $ sudo systemctl restart rippled + ``` -0. サーバがネットワークと同期するまで待ちます。 +4. サーバがネットワークと同期するまで待ちます。 - ネットワークとシステムの能力と、サーバがオフラインになっていた期間に応じて、完全な同期が完了するまでには5~15分かかります。 + ネットワークとシステムの能力と、サーバがオフラインになっていた期間に応じて、完全な同期が完了するまでには5~15分かかります。 - サーバとネットワークの同期が完了すると、[server_infoメソッド][]が再び開き、`server_state`の値として`"full"`、`"proposing"`、`"validating"`のいずれかが報告されます。 + サーバとネットワークの同期が完了すると、[server_infoメソッド][]が再び開き、`server_state`の値として`"full"`、`"proposing"`、`"validating"`のいずれかが報告されます。 -0. [server_infoメソッド][]を使用してサーバの`complete_ledgers`範囲を定期的に調べ、レジャーが削除されていることを確認します。 +5. [server_infoメソッド][]を使用してサーバの`complete_ledgers`範囲を定期的に調べ、レジャーが削除されていることを確認します。 - オンライン削除実行後の`complete_ledgers`範囲には、古いレジャーが使用できなくなったことが反映されます。サーバに履歴が蓄積されるにつれ、使用可能なレジャーの総数が徐々に増加します。この数が設定した`online_delete`値の2倍に達し、オンライン削除が実行されるとレジャーの総数は減少します。 + オンライン削除実行後の`complete_ledgers`範囲には、古いレジャーが使用できなくなったことが反映されます。サーバに履歴が蓄積されるにつれ、使用可能なレジャーの総数が徐々に増加します。この数が設定した`online_delete`値の2倍に達し、オンライン削除が実行されるとレジャーの総数は減少します。 -0. `rippled`ログで、`SHAMapStore::WRN`で始まるメッセージを確認します。このメッセージが出力されている場合、サーバがネットワークと同期していない状態になったために[オンライン削除が中断されている](online-deletion.md#オンライン削除の中断)可能性があります。 - - この状況が定期的に発生する場合は、サーバのスペックが不十分で、オンライン削除の実行中にレジャーを最新状態に維持できていない可能性があります。同じハードウェア上の他のサービス(スケジュール済みバックアップやセキュリティスキャンなど)と`rippled`サーバがリソースをめぐって競合していないことを確認してください。以下のいずれかの操作を実行できます。 - - - システムスペックを強化する。推奨事項については、[システム要件](../../installation/system-requirements.md)をご覧ください。 - - 設定を変更し、保管する履歴の量を減らす。(このチュートリアルのステップ2) - - サーバの[`node_size`パラメーター](../../installation/capacity-planning.md)を変更する。 - - レジャーストアーに[RocksDBの代わりにNuDB](../../installation/capacity-planning.md)を使用する。 - - [指示による削除を使用してオンライン削除をスケジュールする](configure-advisory-deletion.md)。 +6. `rippled`ログで、`SHAMapStore::WRN`で始まるメッセージを確認します。このメッセージが出力されている場合、サーバがネットワークと同期していない状態になったために[オンライン削除が中断されている](online-deletion.md#オンライン削除の中断)可能性があります。 + この状況が定期的に発生する場合は、サーバのスペックが不十分で、オンライン削除の実行中にレジャーを最新状態に維持できていない可能性があります。同じハードウェア上の他のサービス(スケジュール済みバックアップやセキュリティスキャンなど)と`rippled`サーバがリソースをめぐって競合していないことを確認してください。以下のいずれかの操作を実行できます。 + - システムスペックを強化する。推奨事項については、[システム要件](../../installation/system-requirements.md)をご覧ください。 + - 設定を変更し、保管する履歴の量を減らす。(このチュートリアルのステップ2) + - サーバの[`node_size`パラメーター](../../installation/capacity-planning.md)を変更する。 + - レジャーストアーに[RocksDBの代わりにNuDB](../../installation/capacity-planning.md)を使用する。 + - [指示による削除を使用してオンライン削除をスケジュールする](configure-advisory-deletion.md)。 ## 関連項目 diff --git a/@l10n/ja/docs/infrastructure/configuration/data-retention/index.md b/@l10n/ja/docs/infrastructure/configuration/data-retention/index.md index c724e17d6e..f75df77a5a 100644 --- a/@l10n/ja/docs/infrastructure/configuration/data-retention/index.md +++ b/@l10n/ja/docs/infrastructure/configuration/data-retention/index.md @@ -4,11 +4,11 @@ parent: configure-rippled.html metadata: indexPage: true seo: - description: サーバが保存するデータの量と、古いデータを削除するタイミングを制御します。 + description: サーバが保存するデータの量と、古いデータを削除するタイミングを制御します。 --- + # データの保存 サーバが保存するデータの量と、古いバージョンのレジャーステートや過去のトランザクションを含む古いデータを削除するタイミングを制御します。 - {% child-pages /%} diff --git a/@l10n/ja/docs/infrastructure/configuration/data-retention/online-deletion.md b/@l10n/ja/docs/infrastructure/configuration/data-retention/online-deletion.md index 1c9b9f6cbb..545174b350 100644 --- a/@l10n/ja/docs/infrastructure/configuration/data-retention/online-deletion.md +++ b/@l10n/ja/docs/infrastructure/configuration/data-retention/online-deletion.md @@ -2,12 +2,14 @@ html: online-deletion.html parent: data-retention.html seo: - description: オンライン削除は古いトランザクションと状態の履歴を消去します。 + description: オンライン削除は古いトランザクションと状態の履歴を消去します。 labels: - データ保持 - コアサーバ --- + # オンライン削除 + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/app/misc/SHAMapStoreImp.cpp "Source") オンライン削除機能により、`rippled`サーバはレジャーの古いバージョンのローカルコピーを削除できます。これにより、時間とともにディスク使用量が急増しないようにできます。デフォルトの構成ファイルにはオンライン削除の自動実行が設定されていますが、指示があった場合にのみオンライン削除を実行するようにも設定できます。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.27.0" %}新規: rippled 0.27.0{% /badge %} @@ -18,14 +20,12 @@ labels: {% admonition type="success" name="ヒント" %}オンライン削除を使用しても、同一期間のレジャーデータを保管するのに必要なディスク容量は時間の経過とともに増加します。これは、個々のレジャーバージョンのサイズが時間とともに増加する傾向にあるためです。蓄積データが増加するペースは、古いレジャーを削除しない場合に比べると、非常にゆっくりとしています。必要なディスク容量に関する詳細は、[容量の計画](../../installation/capacity-planning.md)をご覧ください。{% /admonition %} - ## 背景 `rippled`サーバでは[レジャー履歴](../../../concepts/networks-and-servers/ledger-history.md)がその _レジャーストアー_ に保管されます。このデータは時間とともに蓄積されます。 レジャーストアー内ではレジャーデータの「重複排除」が行われます。つまり、バージョン間で変更されていないデータは1回だけ保存されます。レジャーストアーのレコード自体には、レコードが記録されているレジャーバージョンの記載はありません。オンライン削除処理において、古いレジャーバージョンでのみ使用されるレコードが特定されます。この処理には時間がかかり、またディスクI/Oとアプリケーションキャッシュに影響するため、レジャーを閉鎖するたびに古いデータを削除することは現実的ではありません。 - ## オンライン削除の動作 オンライン削除の設定では、`rippled`サーバがレジャーストアーで使用可能な状態で維持するレジャーバージョンの数が設定されます。ただし、指定される数は目安であり、厳格に適用されるものではありません。 @@ -33,20 +33,18 @@ labels: - サーバでは、設定された数のレジャーバージョンよりも新しいデータが削除されることはありませんが、長期にわたってサーバが稼働していない場合や、ネットワークとの同期が失われた場合には、サーバに含まれるレジャーバージョンの数が使用可能な数よりも少ないことがあります。(サーバは一部の履歴の埋め戻しを試みます。詳細は、[履歴の取得](../../../concepts/networks-and-servers/ledger-history.md#履歴の取得)をご覧ください。) - オンライン削除の自動実行が設定されている場合、設定されているレジャーバージョンの数の2倍を超える数まで保存できる可能性があります。(オンライン削除を実行するたびに、保管されるレジャーバージョンの数が削減され、設定数に近くなります。) - PCサーバがビジーのためオンライン削除が遅延すると、レジャーバージョンが蓄積し続けることがあります。正常に動作している場合には、サーバ内のレジャーバージョン数が設定された数の2倍に達した時点でオンライン削除が開始されますが、さらにいくつかのレジャーバージョンが蓄積するまではオンライン削除が完了しないことがあります。 + PCサーバがビジーのためオンライン削除が遅延すると、レジャーバージョンが蓄積し続けることがあります。正常に動作している場合には、サーバ内のレジャーバージョン数が設定された数の2倍に達した時点でオンライン削除が開始されますが、さらにいくつかのレジャーバージョンが蓄積するまではオンライン削除が完了しないことがあります。 - 指示による削除が有効な場合、管理者が[can_deleteメソッド][]を呼び出すまで、サーバが取得および作成したすべてのレジャーバージョンがサーバに保存されます。 - サーバに保存されるデータ量は、[can_delete][can_deleteメソッド]を呼び出す頻度と、`online_delete`設定に指定されている期間の長さに応じて異なります。 + サーバに保存されるデータ量は、[can_delete][can_deleteメソッド]を呼び出す頻度と、`online_delete`設定に指定されている期間の長さに応じて異なります。 + - `online_delete`の間隔よりも頻繁に`can_delete`を呼び出す場合、サーバには最大で **`online_delete`の値の2倍** にほぼ相当するレジャーバージョンが保存されます。(削除後には、この数はほぼ`online_delete`の値まで減少します。) - - `online_delete`の間隔よりも頻繁に`can_delete`を呼び出す場合、サーバには最大で **`online_delete`の値の2倍** にほぼ相当するレジャーバージョンが保存されます。(削除後には、この数はほぼ`online_delete`の値まで減少します。) + たとえば`now`値を指定した`can_delete`を1日1回呼び出し、`online_delete`に値50,000を指定している場合、削除実行前のサーバには通常、最大100,000のレジャーバージョンが蓄積されます。削除実行後は、少なくとも50,000のレジャーバージョン(約 2日分)がサーバに保持されます。この設定では、約1回おきに`can_delete`を呼び出しした場合、変更が生じません。これは、削除するのに十分な数のレジャーバージョンがサーバにないためです。 - たとえば`now`値を指定した`can_delete`を1日1回呼び出し、`online_delete`に値50,000を指定している場合、削除実行前のサーバには通常、最大100,000のレジャーバージョンが蓄積されます。削除実行後は、少なくとも50,000のレジャーバージョン(約 2日分)がサーバに保持されます。この設定では、約1回おきに`can_delete`を呼び出しした場合、変更が生じません。これは、削除するのに十分な数のレジャーバージョンがサーバにないためです。 - - - `online_delete`の間隔 _よりも少ない頻度で_ `can_delete`を呼び出す場合、最大で **`can_delete`呼び出しの間隔のほぼ2倍** の期間にわたりレジャーバージョンがサーバに保管されます。(削除後には、この数は約1間隔分のデータまで減少します。) - - たとえば`now`値を指定した`can_delete`を1日1回呼び出し、`online_delete`値に2000を指定している場合、サーバでは通常、削除が実行されるまでに最大で2日間分のレジャーバージョンが保管されます。削除の実行後は、サーバには約1日分のレジャーバージョン(約25,000)が保持されますが、このレジャーバージョンの数が2000を下回ることはありません。 + - `online_delete`の間隔 _よりも少ない頻度で_ `can_delete`を呼び出す場合、最大で **`can_delete`呼び出しの間隔のほぼ2倍** の期間にわたりレジャーバージョンがサーバに保管されます。(削除後には、この数は約1間隔分のデータまで減少します。) + たとえば`now`値を指定した`can_delete`を1日1回呼び出し、`online_delete`値に2000を指定している場合、サーバでは通常、削除が実行されるまでに最大で2日間分のレジャーバージョンが保管されます。削除の実行後は、サーバには約1日分のレジャーバージョン(約25,000)が保持されますが、このレジャーバージョンの数が2000を下回ることはありません。 オンライン削除が有効であり、自動的に実行される場合(つまり指示による削除が無効な場合)、保管されるレジャーデータの量は、最低でもサーバに設定された保持レジャーバージョン数に相当し、最大でその約2倍です。 @@ -62,38 +60,37 @@ labels: オンライン削除を一時的に無効にするには、引数`never`を指定した[can_deleteメソッド][]を使用できます。この変更は、[can_delete][can_deleteメソッド] をもう一度呼び出してオンライン削除を再度有効にするまで保持されます。オンライン削除の実行時点の制御についての詳細は、[指示による削除](#指示による削除)をご覧ください。 - ## 設定 オンライン削除に関連する設定は以下のとおりです。 - **`online_delete`** - 維持する検証済みレジャーバージョンの数を指定します。サーバは、この数よりも古いレジャーバージョンをすべて定期的に削除します。数を指定しなければ、レジャーは削除されません。 - デフォルトの構成ファイルでは、この値は2000に設定されています。この値に256未満の数は設定はできません。これは、[手数料投票](../../../concepts/consensus-protocol/fee-voting.md)や[Amendmentプロセス](../../../concepts/networks-and-servers/amendments.md#amendmentプロセス)などのイベントで一度に更新されるレジャーの数が256であるためです。 + デフォルトの構成ファイルでは、この値は2000に設定されています。この値に256未満の数は設定はできません。これは、[手数料投票](../../../concepts/consensus-protocol/fee-voting.md)や[Amendmentプロセス](../../../concepts/networks-and-servers/amendments.md#amendmentプロセス)などのイベントで一度に更新されるレジャーの数が256であるためです。 - **注意:**`online_delete`を無効にして`rippled`を実行し、その後`online_delete`を有効にしてサーバを再起動すると、`online_delete`が無効の間にサーバがダウンロードした既存のレジャー履歴は無視されますが、削除されません。ディスク容量を節約するには、`online_delete`設定の変更後にサーバを再起動する前に、既存の履歴を削除します。 + **注意:**`online_delete`を無効にして`rippled`を実行し、その後`online_delete`を有効にしてサーバを再起動すると、`online_delete`が無効の間にサーバがダウンロードした既存のレジャー履歴は無視されますが、削除されません。ディスク容量を節約するには、`online_delete`設定の変更後にサーバを再起動する前に、既存の履歴を削除します。 - **`[ledger_history]`** - 検証済みレジャーの数(`online_delete`の値以下)を指定します。サーバの検証済みレジャーバージョンの数がこの数よりも少ない場合、ピアからデータを取得してバージョンを埋め戻す操作が試行されます。 - この設定のデフォルト値はレジャー256個です。 + この設定のデフォルト値はレジャー256個です。 - 次の図は、`online_delete`設定と`ledger_history`設定の関係を示します。 + 次の図は、`online_delete`設定と`ledger_history`設定の関係を示します。 - [{% inline-svg file="/docs/img/online_delete-vs-ledger_history.ja.svg" /%}](/docs/img/online_delete-vs-ledger_history.svg "`online_delete`より古いレジャーは自動的に削除されます。`ledger_history`よりも新しいレジャーは埋め戻されます。その間に位置するレジャーは、使用可能な場合は保持されますが、埋め戻しは行われません") + [{% inline-svg file="/docs/img/online_delete-vs-ledger_history.ja.svg" /%}](/docs/img/online_delete-vs-ledger_history.svg '`online_delete`より古いレジャーは自動的に削除されます。`ledger_history`よりも新しいレジャーは埋め戻されます。その間に位置するレジャーは、使用可能な場合は保持されますが、埋め戻しは行われません') - **`advisory_delete`** - 有効な場合、オンライン削除は自動的にスケジュールされません。代わりに管理者が手動でオンライン削除をトリガーする必要があります。無効にするには値`0`を使用し、有効にするには`1`を使用します。 - この設定はデフォルトで無効になっています。 + この設定はデフォルトで無効になっています。 - **`[fetch_depth]`** - 検証済みレジャーバージョンの数を指定します。サーバは、指定されている数のレジャーバージョンよりも古い履歴データに対するピアからの取得リクエストを受け入れません。使用可能なすべてのデータをピアに提供するには、値`full`を指定します。 - `fetch_depth`のデフォルトは`full`です(使用可能なすべてのデータを提供します)。 + `fetch_depth`のデフォルトは`full`です(使用可能なすべてのデータを提供します)。 - `fetch_depth`設定と`online_delete`設定の両方が指定されている場合、`fetch_depth`には`online_delete`よりも大きな値を設定できません。`fetch_depth`に大きな値が設定されている場合、サーバは`fetch_depth`の値が`online_delete`と同等であるものとして扱います。 + `fetch_depth`設定と`online_delete`設定の両方が指定されている場合、`fetch_depth`には`online_delete`よりも大きな値を設定できません。`fetch_depth`に大きな値が設定されている場合、サーバは`fetch_depth`の値が`online_delete`と同等であるものとして扱います。 - 次の図は、fetch_depthの仕組みを示します。 + 次の図は、fetch_depthの仕組みを示します。 - [{% inline-svg file="/docs/img/fetch_depth.ja.svg" /%}](/docs/img/fetch_depth.ja.svg "fetch_depthよりも古いレジャーバージョンはピアに提供されません") + [{% inline-svg file="/docs/img/fetch_depth.ja.svg" /%}](/docs/img/fetch_depth.ja.svg 'fetch_depthよりも古いレジャーバージョンはピアに提供されません') さまざまな量の履歴の保管に必要なディスク容量の見積もりについては、[容量の計画](../../installation/capacity-planning.md#ディスク容量)をご覧ください。 @@ -107,7 +104,6 @@ labels: `can_delete` API メソッドは、構成ファイルで `advisory_delete` が有効になっている場合は、一般的な自動削除または特定のレジャーバージョンまでの自動削除を有効または無効にできます。`rippled`サーバの再起動前に構成ファイルで`advisory_delete`を無効にしている場合を除き、これらの設定はサーバを再起動しても維持されます。 - ## 仕組み オンライン削除では2つのデータベースが作成されます。このため、「古い」読み取り専用データベースと、書き込み可能な「現行」データベースが常に存在します。`rippled`サーバはいずれかのデータベースからオブジェクトを読み取ることができます。このため、現行レジャーバージョンにはいずれかのデータベースのオブジェクトが含まれます。レジャーバージョン間でレジャー内のオブジェクトに変更がない場合、そのオブジェクトのコピーが1つだけデータベースに残ります。これにより、オブジェクトのコピーが重複してサーバに保存されることはありません。レジャーバージョンの更新によりオブジェクトが変更されると、サーバは変更されたオブジェクトを「新しい」データベースに保存し、古いバージョンのオブジェクト(古いレジャーバージョンで使用されているオブジェクト)は「古い」データベースに残ります。 @@ -116,7 +112,6 @@ labels: [{% inline-svg file="/docs/img/online-deletion-process.ja.svg" /%}](/docs/img/online-deletion-process.ja.svg 'オンライン削除で2つのデータベースがどのように使用されるかを示す図') - ## 関連項目 - [容量の計画](../../installation/capacity-planning.md) diff --git a/@l10n/ja/docs/infrastructure/configuration/enable-public-signing.md b/@l10n/ja/docs/infrastructure/configuration/enable-public-signing.md index 3cd793f82d..03bd5cd83b 100644 --- a/@l10n/ja/docs/infrastructure/configuration/enable-public-signing.md +++ b/@l10n/ja/docs/infrastructure/configuration/enable-public-signing.md @@ -2,11 +2,12 @@ html: enable-public-signing.html parent: configure-rippled.html seo: - description: 他の人があなたのサーバを使ってトランザクションに署名できるようにします。(非推奨) + description: 他の人があなたのサーバを使ってトランザクションに署名できるようにします。(非推奨) labels: - コアサーバ - セキュリティ --- + # パブリック署名の有効化 {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.1.0" %}新規: rippled 1.1.0{% /badge %}デフォルトでは、`rippled`の署名メソッドは管理者接続に限定されています。v1.1.0以前のバージョンの`rippled`のように、署名メソッドをパブリックAPIメソッドとして使用できるようにするには、構成を変更することで、これを使用できるようにします。 @@ -25,23 +26,23 @@ labels: 1. `rippled`の構成ファイルを編集します。 - ``` - vim /etc/opt/ripple/rippled.cfg - ``` + ``` + vim /etc/opt/ripple/rippled.cfg + ``` - {% partial file="/@l10n/ja/docs/_snippets/conf-file-location.md" /%} + {% partial file="/@l10n/ja/docs/_snippets/conf-file-location.md" /%} 2. 以下のスタンザを構成ファイルに追加し、変更を保存します。 - ``` - [signing_support] - true - ``` + ``` + [signing_support] + true + ``` 3. `rippled`サーバを再起動します。 - ``` - systemctl restart rippled - ``` + ``` + systemctl restart rippled + ``` {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/infrastructure/configuration/index.md b/@l10n/ja/docs/infrastructure/configuration/index.md index acb25a26d4..6f82965ff4 100644 --- a/@l10n/ja/docs/infrastructure/configuration/index.md +++ b/@l10n/ja/docs/infrastructure/configuration/index.md @@ -4,11 +4,11 @@ parent: infrastructure.html metadata: indexPage: true seo: - description: rippledサーバの構成をカスタマイズします。 + description: rippledサーバの構成をカスタマイズします。 --- + # rippledの設定 rippledサーバの構成をカスタマイズします。 - {% child-pages /%} diff --git a/@l10n/ja/docs/infrastructure/configuration/peering/cluster-rippled-servers.md b/@l10n/ja/docs/infrastructure/configuration/peering/cluster-rippled-servers.md index 3b8e3d1f92..2e856367d2 100644 --- a/@l10n/ja/docs/infrastructure/configuration/peering/cluster-rippled-servers.md +++ b/@l10n/ja/docs/infrastructure/configuration/peering/cluster-rippled-servers.md @@ -2,10 +2,11 @@ html: cluster-rippled-servers.html parent: configure-peering.html seo: - description: サーバのグループで処理を分担するように設定して効率化します。 + description: サーバのグループで処理を分担するように設定して効率化します。 labels: - コアサーバ --- + # rippledサーバのクラスター化 1つのデータセンターで複数の`rippled`サーバを稼働している場合は、これらのサーバを[クラスター](../../../concepts/networks-and-servers/clustering.md)に構成して、効率を最大化できます。クラスター構成の設定は次のとおりです。 @@ -14,89 +15,88 @@ labels: 2. [validation_createメソッド][]を使用して各サーバの一意のシードを生成します。 - コマンドラインインターフェイスを使用する場合の例を以下に示します。 + コマンドラインインターフェイスを使用する場合の例を以下に示します。 - ``` - $ rippled validation_create + ``` + $ rippled validation_create - Loading: "/etc/rippled.cfg" - Connecting to 127.0.0.1:5005 - { - "result" : { - "status" : "success", - "validation_key" : "FAWN JAVA JADE HEAL VARY HER REEL SHAW GAIL ARCH BEN IRMA", - "validation_public_key" : "n9Mxf6qD4J55XeLSCEpqaePW4GjoCR5U1ZeGZGJUCNe3bQa4yQbG", - "validation_seed" : "ssZkdwURFMBXenJPbrpE14b6noJSu" - } - } - ``` + Loading: "/etc/rippled.cfg" + Connecting to 127.0.0.1:5005 + { + "result" : { + "status" : "success", + "validation_key" : "FAWN JAVA JADE HEAL VARY HER REEL SHAW GAIL ARCH BEN IRMA", + "validation_public_key" : "n9Mxf6qD4J55XeLSCEpqaePW4GjoCR5U1ZeGZGJUCNe3bQa4yQbG", + "validation_seed" : "ssZkdwURFMBXenJPbrpE14b6noJSu" + } + } + ``` - 各レスポンスの`validation_seed`パラメーターと`validation_public_key`パラメーターを安全な場所に保存します。 + 各レスポンスの`validation_seed`パラメーターと`validation_public_key`パラメーターを安全な場所に保存します。 3. 各サーバで[構成ファイル](https://github.com/XRPLF/rippled/blob/master/cfg/rippled-example.cfg)を編集し、以下のセクションを変更します。 + 1. `[ips_fixed]`セクションに、クラスターの _その他の_ 各メンバーのIPアドレスとポートを記入します。各サーバのポート番号は、サーバの `rippled.cfg`に指定されている`protocol = peer`ポート(通常は51235)と一致している必要があります。例: - 1. `[ips_fixed]`セクションに、クラスターの _その他の_ 各メンバーのIPアドレスとポートを記入します。各サーバのポート番号は、サーバの `rippled.cfg`に指定されている`protocol = peer`ポート(通常は51235)と一致している必要があります。例: + ``` + [ips_fixed] + 192.168.0.1 51235 + 192.168.0.2 51235 + ``` - ``` - [ips_fixed] - 192.168.0.1 51235 - 192.168.0.2 51235 - ``` + この例では、このサーバがダイレクトピアツーピア接続の維持を常に試みる先のピアサーバを特定しています。 - この例では、このサーバがダイレクトピアツーピア接続の維持を常に試みる先のピアサーバを特定しています。 + 2. `[node_seed]`セクションでは、サーバのノードシードを、ステップ2で[validation_createメソッド][]を使用して生成した`validation_seed`の値の1つに設定します。各サーバは一意のノードシードを使用する必要があります。例: - 2. `[node_seed]`セクションでは、サーバのノードシードを、ステップ2で[validation_createメソッド][]を使用して生成した`validation_seed`の値の1つに設定します。各サーバは一意のノードシードを使用する必要があります。例: + ``` + [node_seed] + ssZkdwURFMBXenJPbrpE14b6noJSu + ``` - ``` - [node_seed] - ssZkdwURFMBXenJPbrpE14b6noJSu - ``` + この例では、ピアツーピア通信(検証メッセージを除く)の署名にサーバが使用するキーペアを定義しています。 - この例では、ピアツーピア通信(検証メッセージを除く)の署名にサーバが使用するキーペアを定義しています。 + 3. `[cluster_nodes]`セクションでは、サーバのクラスターのメンバーを設定します。これらのメンバーは`validation_public_key`の値で識別されます。各サーバのクラスターの _その他の_ すべてのメンバーをここに記入する必要があります。任意で、各サーバのカスタム名を追加します。例: - 3. `[cluster_nodes]`セクションでは、サーバのクラスターのメンバーを設定します。これらのメンバーは`validation_public_key`の値で識別されます。各サーバのクラスターの _その他の_ すべてのメンバーをここに記入する必要があります。任意で、各サーバのカスタム名を追加します。例: + ``` + [cluster_nodes] + n9McNsnzzXQPbg96PEUrrQ6z3wrvgtU4M7c97tncMpSoDzaQvPar keynes + n94UE1ukbq6pfZY9j54sv2A1UrEeHZXLbns3xK5CzU9NbNREytaa friedman + ``` - ``` - [cluster_nodes] - n9McNsnzzXQPbg96PEUrrQ6z3wrvgtU4M7c97tncMpSoDzaQvPar keynes - n94UE1ukbq6pfZY9j54sv2A1UrEeHZXLbns3xK5CzU9NbNREytaa friedman - ``` - - この例は、サーバがクラスターのメンバーを認識するために使用するキーペアを定義しています。 + この例は、サーバがクラスターのメンバーを認識するために使用するキーペアを定義しています。 4. 構成ファイルを保存した後、各サーバで`rippled`を再起動します。 - ``` - # systemctl restart rippled - ``` + ``` + # systemctl restart rippled + ``` 5. 各サーバがクラスターのメンバーになっていることを確認するには、[peersメソッド][]を使用します。`cluster`フィールドに、各サーバの公開鍵とカスタム名(構成している場合)のリストが表示されます。 - コマンドラインインターフェイスを使用する場合の例を以下に示します。 + コマンドラインインターフェイスを使用する場合の例を以下に示します。 - ``` - $ rippled peers + ``` + $ rippled peers - Loading: "/etc/rippled.cfg" - Connecting to 127.0.0.1:5005 - { - "result" : { - "cluster" : { - "n9McNsnzzXQPbg96PEUrrQ6z3wrvgtU4M7c97tncMpSoDzaQvPar": { - "tag": "keynes", - "age": 1 - }, - "n94UE1ukbq6pfZY9j54sv2A1UrEeHZXLbns3xK5CzU9NbNREytaa": { - "tag": "friedman", - "age": 1 - } - }, - "peers" : [ - ...(omitted) ... - ], - "status" : "success" - } - } - ``` + Loading: "/etc/rippled.cfg" + Connecting to 127.0.0.1:5005 + { + "result" : { + "cluster" : { + "n9McNsnzzXQPbg96PEUrrQ6z3wrvgtU4M7c97tncMpSoDzaQvPar": { + "tag": "keynes", + "age": 1 + }, + "n94UE1ukbq6pfZY9j54sv2A1UrEeHZXLbns3xK5CzU9NbNREytaa": { + "tag": "friedman", + "age": 1 + } + }, + "peers" : [ + ...(omitted) ... + ], + "status" : "success" + } + } + ``` {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/infrastructure/configuration/peering/configure-a-private-server.md b/@l10n/ja/docs/infrastructure/configuration/peering/configure-a-private-server.md index 29c419788f..33fab1af94 100644 --- a/@l10n/ja/docs/infrastructure/configuration/peering/configure-a-private-server.md +++ b/@l10n/ja/docs/infrastructure/configuration/peering/configure-a-private-server.md @@ -2,11 +2,12 @@ html: configure-a-private-server.html parent: configure-peering.html seo: - description: サーバが特定の信頼できるピアのみに接続するように設定します。 + description: サーバが特定の信頼できるピアのみに接続するように設定します。 labels: - コアサーバ - セキュリティ --- + # プライベートサーバの設定 [プライベートサーバ](../../../concepts/networks-and-servers/peer-protocol.md#プライベートピア)は、オープンなピアツーピアネットワーク内の検出されたピアに直接接続するのではなく、特定の信頼できるピアのみを通じてネットワークに接続する`rippled`サーバです。この種の構成は、[バリデータ](../server-modes/run-rippled-as-a-validator.md)に一般的に推奨される任意の対策ですが、その他の特定の目的でも役立ちます。 @@ -26,9 +27,9 @@ labels: 1. `rippled`の構成ファイルを編集します。 - ``` - vim /etc/opt/ripple/rippled.cfg - ``` + ``` + vim /etc/opt/ripple/rippled.cfg + ``` {% partial file="/@l10n/ja/docs/_snippets/conf-file-location.md" /%} @@ -36,10 +37,10 @@ labels: 構成ファイルに以下のスタンザを追加するか、コメントを解除します。 - ``` - [peer_private] - 1 - ``` + ``` + [peer_private] + 1 + ``` 3. 固定数のピアを追加します。 @@ -47,43 +48,42 @@ labels: 例えば、**公開ハブ**を使用して接続する場合は、以下のスタンザを使用できます。 - ``` - [ips_fixed] - r.ripple.com 51235 - zaphod.alloy.ee 51235 - ``` + ``` + [ips_fixed] + r.ripple.com 51235 + zaphod.alloy.ee 51235 + ``` サーバが**プロキシ**を使用して接続している場合は、IPアドレスとポートが、プロキシとして使用している`rippled`サーバの構成と一致している必要があります。これらの各サーバについては、ポート番号が、サーバの構成ファイルに記載されている`protocol = peer`ポート(通常は51235)と一致している必要があります。例えば、構成は次のようになります。 - ``` - [ips_fixed] - 192.168.0.1 51235 - 192.168.0.2 51235 - ``` + ``` + [ips_fixed] + 192.168.0.1 51235 + 192.168.0.2 51235 + ``` 4. プロキシを使用している場合、プロキシをプライベートピアと互いを含めてクラスター化します。 公開ハブを使用している場合は、このステップをスキップします。 - プロキシを使用している場合、プライベートピアを含む[クラスターとしてプロキシを構成](cluster-rippled-servers.md)します。クラスターの各メンバーは、クラスターの_他の_各メンバーをリストにした`[ips_fixed]`スタンザを持っている必要があります。ただし、`[peer_private]`スタンザを持つのは**プライベートサーバのみ**とします。 + プロキシを使用している場合、プライベートピアを含む[クラスターとしてプロキシを構成](cluster-rippled-servers.md)します。クラスターの各メンバーは、クラスターの*他の*各メンバーをリストにした`[ips_fixed]`スタンザを持っている必要があります。ただし、`[peer_private]`スタンザを持つのは**プライベートサーバのみ**とします。 各プロキシで`rippled`を再起動します。各プロキシサーバで、次のようにします。 - ``` - sudo service systemctl restart rippled - ``` + ``` + sudo service systemctl restart rippled + ``` 5. プライベートサーバで`rippled`を起動します。 - ``` - sudo service systemctl start rippled - ``` + ``` + sudo service systemctl start rippled + ``` 6. [peersメソッド][]を使用して、プライベートサーバが自身のピアに _のみ_ 接続していることを確認します。 レスポンスの`peers`配列に、構成済みのピアのいずれでもない`address`を持つオブジェクトが含まれていてはなりません。含まれている場合は、構成ファイルを再度確認して、プライベートサーバを再起動します。 - ## 次のステップ 追加の予防対策として、自身のピアでないサーバからプライベートサーバへの着信接続をブロックするようにファイアウォールを設定する必要があります。プロキシサーバを実行している場合は、ファイヤーウォールを通じてプロキシに[ピアポートを転送](forward-ports-for-peering.md)するようにします。ただし、プライベートピアで**ない**ものに転送します。この設定方法の具体的な手順は、使用するファイアウォールによって異なります。 diff --git a/@l10n/ja/docs/infrastructure/configuration/peering/configure-the-peer-crawler.md b/@l10n/ja/docs/infrastructure/configuration/peering/configure-the-peer-crawler.md index 36d73f46ea..093bc19d4b 100644 --- a/@l10n/ja/docs/infrastructure/configuration/peering/configure-the-peer-crawler.md +++ b/@l10n/ja/docs/infrastructure/configuration/peering/configure-the-peer-crawler.md @@ -2,11 +2,12 @@ html: configure-the-peer-crawler.html parent: configure-peering.html seo: - description: rippledサーバがステータスとピアについてどの程度の情報を公表するか設定します。 + description: rippledサーバがステータスとピアについてどの程度の情報を公表するか設定します。 labels: - Core Server - Security --- + # ピアクローラの設定 デフォルトでは、[`rippled`サーバ](../../../concepts/networks-and-servers/index.md)は、[ピアクローラAPI](../../../references/http-websocket-apis/peer-port-methods/peer-crawler.md)を使ってリクエストしてきた人に統計を公開し、[XRP Ledgerのピアツーピアネットワーク](../../../concepts/networks-and-servers/peer-protocol.md)の健全性と状況を追跡しやすくしています。より多くの情報を提供したり、より少ない情報を提供したり、あるいはピアクローラーのリクエストを完全に拒否するように、サーバを設定することができます。 @@ -22,30 +23,29 @@ labels: 1. `rippled`の設定ファイルを編集します。 - ``` - vim /etc/opt/ripple/rippled.cfg - ``` + ``` + vim /etc/opt/ripple/rippled.cfg + ``` - {% partial file="/@l10n/ja/docs/_snippets/conf-file-location.md" /%} + {% partial file="/@l10n/ja/docs/_snippets/conf-file-location.md" /%} 2. 設定ファイルに`[crawl]`を追加または更新し、変更を保存します。 - ``` - [crawl] - overlay = 1 - server = 1 - counts = 0 - unl = 1 - ``` + ``` + [crawl] + overlay = 1 + server = 1 + counts = 0 + unl = 1 + ``` - このスタンザのフィールドは、サーバが[peer crawlerレスポンス](../../../references/http-websocket-apis/peer-port-methods/peer-crawler.md#レスポンスのフォーマット)で返すフィールドを制御します。設定フィールドの名前はAPIレスポンスのフィールドと一致します。値が`1`の設定は、レスポンスにそのフィールドを含めることを意味します。0`の値は、そのフィールドをレスポンスから省略することを意味します。この例では、各設定のデフォルト値を示しています。 + このスタンザのフィールドは、サーバが[peer crawlerレスポンス](../../../references/http-websocket-apis/peer-port-methods/peer-crawler.md#レスポンスのフォーマット)で返すフィールドを制御します。設定フィールドの名前はAPIレスポンスのフィールドと一致します。値が`1`の設定は、レスポンスにそのフィールドを含めることを意味します。0`の値は、そのフィールドをレスポンスから省略することを意味します。この例では、各設定のデフォルト値を示しています。 3. 設定ファイルに変更を保存したら、`rippled`サーバを再起動して、更新された設定を適用します。 - ``` - systemctl restart rippled - ``` - + ``` + systemctl restart rippled + ``` ## ピアクローラの無効化 @@ -53,37 +53,36 @@ labels: 1. `rippled`の設定ファイルを編集します。 - ``` - vim /etc/opt/ripple/rippled.cfg - ``` + ``` + vim /etc/opt/ripple/rippled.cfg + ``` - {% partial file="/@l10n/ja/docs/_snippets/conf-file-location.md" /%} + {% partial file="/@l10n/ja/docs/_snippets/conf-file-location.md" /%} 2. 設定ファイルに`[crawl]`を追加または更新し、変更を保存します。 - ``` - [crawl] - 0 - ``` + ``` + [crawl] + 0 + ``` - `[crawl]`の他のすべての内容を削除するか、コメントアウトしてください。 + `[crawl]`の他のすべての内容を削除するか、コメントアウトしてください。 3. 設定ファイルに変更を保存したら、`rippled`サーバを再起動して、更新された設定を適用します。 - ``` - systemctl restart rippled - ``` - + ``` + systemctl restart rippled + ``` ## 関連項目 - **コンセプト:** - - [ピアプロトコル](../../../concepts/networks-and-servers/peer-protocol.md) + - [ピアプロトコル](../../../concepts/networks-and-servers/peer-protocol.md) - **チュートリアル:** - - [rippledサーバの管理](../../installation/install-rippled-on-ubuntu.md) + - [rippledサーバの管理](../../installation/install-rippled-on-ubuntu.md) - **リファレンス:** - - [server_infoメソッド][] - - [peersメソッド][] - - [ピアクローラ](../../../references/http-websocket-apis/peer-port-methods/peer-crawler.md) + - [server_infoメソッド][] + - [peersメソッド][] + - [ピアクローラ](../../../references/http-websocket-apis/peer-port-methods/peer-crawler.md) {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/infrastructure/configuration/peering/enable-link-compression.md b/@l10n/ja/docs/infrastructure/configuration/peering/enable-link-compression.md index 54f433e388..0735d4c2eb 100644 --- a/@l10n/ja/docs/infrastructure/configuration/peering/enable-link-compression.md +++ b/@l10n/ja/docs/infrastructure/configuration/peering/enable-link-compression.md @@ -2,10 +2,11 @@ html: enable-link-compression.html parent: configure-peering.html seo: - description: ピアツーピア通信を圧縮して帯域幅を節約します。 + description: ピアツーピア通信を圧縮して帯域幅を節約します。 labels: - コアサーバ --- + # 回線圧縮の有効化 `rippled`サーバは[ピアツーピア通信](../../../concepts/networks-and-servers/peer-protocol.md)を圧縮することで帯域幅を節約できますが、その代償としてCPU使用率が高くなります。回線圧縮を有効にすると、サーバは回線圧縮を有効にしているピアサーバとの通信を自動的に圧縮します。 diff --git a/@l10n/ja/docs/infrastructure/configuration/peering/forward-ports-for-peering.md b/@l10n/ja/docs/infrastructure/configuration/peering/forward-ports-for-peering.md index 62e48e7b19..c5ff794792 100644 --- a/@l10n/ja/docs/infrastructure/configuration/peering/forward-ports-for-peering.md +++ b/@l10n/ja/docs/infrastructure/configuration/peering/forward-ports-for-peering.md @@ -2,10 +2,11 @@ html: forward-ports-for-peering.html parent: configure-peering.html seo: - description: 受信ピアがrippledサーバに接続できるようにファイアウォールを設定します。 + description: 受信ピアがrippledサーバに接続できるようにファイアウォールを設定します。 labels: - コアサーバ --- + # ピアリングのポート転送 XRP Ledgerのピアツーピアネットワーク内にあるサーバは、[ピアプロトコル](../../../concepts/networks-and-servers/peer-protocol.md)を介して通信します。セキュリティとネットワークの他の部分との接続を両立させるために、ファイアウォールを使用して、サーバをほとんどのポートから保護し、ピアプロトコルポートだけを開放するか転送するようにする必要があります。 @@ -46,7 +47,6 @@ $ sudo firewall-cmd --add-forward-port=port=51235:proto=tcp:toport=51235 その他のソフトウェアファイアウォールとハードウェアファイアウォールについては、メーカー公式のドキュメントをご覧ください。 - ## 関連項目 - **コンセプト:** diff --git a/@l10n/ja/docs/infrastructure/configuration/peering/index.md b/@l10n/ja/docs/infrastructure/configuration/peering/index.md index 0a37f520d7..248e35b73a 100644 --- a/@l10n/ja/docs/infrastructure/configuration/peering/index.md +++ b/@l10n/ja/docs/infrastructure/configuration/peering/index.md @@ -5,15 +5,15 @@ parent: infrastructure.html metadata: indexPage: true seo: - description: サーバをピアツーピアネットワークに接続する方法を設定します。 + description: サーバをピアツーピアネットワークに接続する方法を設定します。 labels: - コアサーバ --- + # ピアリングの設定 XRP Ledgerのピアツーピアプロトコルは、ほとんどの場合、ピア接続を自動的に管理します。場合によっては、サーバが接続するピアを手動で調整して、サーバの可用性とネットワークの他の部分との接続性を最大限に高めたいというケースがあります。 同じデータセンター内で複数のサーバを稼動させている場合は、[クラスター化](cluster-rippled-servers.md)して効率を向上させたいケースがあります。ピアツーピアネットワークのトポロジー内の重要なハブなど、稼動していないが接続を維持したいサーバ用の予約済みピアスロットを使うことができます。他のピアについては、サーバはピアを自動検出し、その接続を管理しますが、望ましくない動作をするピアをブロックするように手動で介入することもできます。 - {% child-pages /%} diff --git a/@l10n/ja/docs/infrastructure/configuration/peering/manually-connect-to-a-specific-peer.md b/@l10n/ja/docs/infrastructure/configuration/peering/manually-connect-to-a-specific-peer.md index 9db2eb2fea..a83fcdf735 100644 --- a/@l10n/ja/docs/infrastructure/configuration/peering/manually-connect-to-a-specific-peer.md +++ b/@l10n/ja/docs/infrastructure/configuration/peering/manually-connect-to-a-specific-peer.md @@ -2,17 +2,17 @@ html: manually-connect-to-a-specific-peer.html parent: configure-peering.html seo: - description: rippledサーバを特定のピアに接続します。 + description: rippledサーバを特定のピアに接続します。 labels: - コアサーバ --- + # 特定のピアへの手動接続 サーバをXRP Ledgerネットワーク内の特定の[ピア](../../../concepts/networks-and-servers/peer-protocol.md)に手動で接続するには、次の手順を実行します。 {% admonition type="success" name="ヒント" %}サーバが起動時にこのサーバに自動的に接続して、以降も接続を維持するようにするには、そのピアに対して[ピアリザベーション](use-a-peer-reservation.md)を設定することができます。{% /admonition %} - ## 前提条件 - 接続先のピアのIPアドレスを把握しておく必要があります。 @@ -27,6 +27,7 @@ labels: {% tabs %} {% tab label="WebSocket" %} + ``` { "command": "connect", @@ -34,9 +35,11 @@ labels: "port": 51235 } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ``` { "method": "connect", @@ -48,17 +51,19 @@ labels: ] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ``` rippled connect 169.54.2.151 51235 ``` + {% /tab %} {% /tabs %} - ## 関連項目 - **コンセプト:** diff --git a/@l10n/ja/docs/infrastructure/configuration/peering/set-max-number-of-peers.md b/@l10n/ja/docs/infrastructure/configuration/peering/set-max-number-of-peers.md index ea2434aaf5..5c9f5ddc5f 100644 --- a/@l10n/ja/docs/infrastructure/configuration/peering/set-max-number-of-peers.md +++ b/@l10n/ja/docs/infrastructure/configuration/peering/set-max-number-of-peers.md @@ -2,10 +2,11 @@ html: set-max-number-of-peers.html parent: configure-peering.html seo: - description: rippledサーバが接続するピアの最大数を設定します。 + description: rippledサーバが接続するピアの最大数を設定します。 labels: - コアサーバ --- + # ピアの最大数の設定 `rippled`サーバには、接続先の[ピア](../../../concepts/networks-and-servers/peer-protocol.md)の数を定める設定可能なソフト最大数があります。ピアのデフォルトの最大数は**21**です。 @@ -16,18 +17,18 @@ labels: 1. `rippled`の構成ファイルを編集します。 - ``` - $ vim /etc/opt/ripple/rippled.cfg - ``` + ``` + $ vim /etc/opt/ripple/rippled.cfg + ``` {% partial file="/@l10n/ja/docs/_snippets/conf-file-location.md" /%} 2. 構成ファイルで、`[peers_max]`スタンザのコメントを解除して編集するか、まだない場合は追加します。 - ``` - [peers_max] - 30 - ``` + ``` + [peers_max] + 30 + ``` スタンザの内容は、許可するピアの合計数を示す整数のみである必要があります。デフォルトでは、サーバは受信ピアが約85%、送信ピアが約15%という比率を維持するように試みますが、送信ピアの最小数が10であるため、68未満の値にしても、サーバが行う送信ピア接続の数は増えません。 @@ -37,10 +38,9 @@ labels: 3. `rippled`サーバを再起動します。 - ``` - $ sudo systemctl restart rippled.service - ``` - + ``` + $ sudo systemctl restart rippled.service + ``` ## 関連項目 diff --git a/@l10n/ja/docs/infrastructure/configuration/peering/use-a-peer-reservation.md b/@l10n/ja/docs/infrastructure/configuration/peering/use-a-peer-reservation.md index 352581e727..fb685fedcd 100644 --- a/@l10n/ja/docs/infrastructure/configuration/peering/use-a-peer-reservation.md +++ b/@l10n/ja/docs/infrastructure/configuration/peering/use-a-peer-reservation.md @@ -2,10 +2,11 @@ html: use-a-peer-reservation.html parent: configure-peering.html seo: - description: ピアリザベーションを使用して特定のピアへのより信頼できる接続を設定します。 + description: ピアリザベーションを使用して特定のピアへのより信頼できる接続を設定します。 lables: - コアサーバ --- + # ピアリザベーションの使用 [ピアリザベーション][]を使用すると、`rippled`サーバが予約とマッチしたピアからの通信を常に受け入れるように設定できます。このページでは、ピアリザベーションを使用して2台のサーバ間のピアツーピア通信を、各サーバの管理者の協力のもと一貫して維持する方法について説明します。 @@ -42,28 +43,28 @@ lables: 例: - ``` - rippled validation_create + ``` + rippled validation_create - Loading: "/etc/rippled.cfg" - Connecting to 127.0.0.1:5005 - { - "result" : { - "status" : "success", - "validation_key" : "FAWN JAVA JADE HEAL VARY HER REEL SHAW GAIL ARCH BEN IRMA", - "validation_public_key" : "n9Mxf6qD4J55XeLSCEpqaePW4GjoCR5U1ZeGZGJUCNe3bQa4yQbG", - "validation_seed" : "ssZkdwURFMBXenJPbrpE14b6noJSu" - } - } - ``` + Loading: "/etc/rippled.cfg" + Connecting to 127.0.0.1:5005 + { + "result" : { + "status" : "success", + "validation_key" : "FAWN JAVA JADE HEAL VARY HER REEL SHAW GAIL ARCH BEN IRMA", + "validation_public_key" : "n9Mxf6qD4J55XeLSCEpqaePW4GjoCR5U1ZeGZGJUCNe3bQa4yQbG", + "validation_seed" : "ssZkdwURFMBXenJPbrpE14b6noJSu" + } + } + ``` `validation_seed`(ノードシード値)と`validation_public_key`値(ノード公開鍵)を保存します。 2. `rippled`の構成ファイルを編集します。 - ``` - vim /etc/opt/ripple/rippled.cfg - ``` + ``` + vim /etc/opt/ripple/rippled.cfg + ``` {% partial file="/@l10n/ja/docs/_snippets/conf-file-location.md" /%} @@ -71,18 +72,18 @@ lables: 例: - ``` - [node_seed] - ssZkdwURFMBXenJPbrpE14b6noJSu - ``` + ``` + [node_seed] + ssZkdwURFMBXenJPbrpE14b6noJSu + ``` {% admonition type="danger" name="警告" %}すべてのサーバの`[node_seed]`値が一意である必要があります。構成ファイルを別のサーバにコピーする場合は、`[node_seed]`値を削除するか、変更してください。`[node_seed]`は公開しないようにします。不正使用者がこの値にアクセスできた場合、それを使用してサーバを偽装し、XRP Ledgerのピアツーピア通信を行う可能性があります。{% /admonition %} 4. `rippled`サーバを再起動します。 - ``` - systemctl restart rippled - ``` + ``` + systemctl restart rippled + ``` ### 2.ストックサーバのノード公開鍵を連絡する @@ -122,6 +123,7 @@ Connecting to 127.0.0.1:5005 {% tabs %} {% tab label="WebSocket" %} + ``` { "command": "connect", @@ -129,9 +131,11 @@ Connecting to 127.0.0.1:5005 "port": 51235 } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ``` { "method": "connect", @@ -144,19 +148,21 @@ Connecting to 127.0.0.1:5005 ] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ``` rippled connect 169.54.2.151 51235 ``` + {% /tab %} {% /tabs %} ハブサーバの管理者が上記の手順に従ってピアリザベーションを設定した場合、自動的に接続され、可能な限り接続が維持されます。 - ## 次のステップ サーバの管理者は、サーバに設定された他のピアへの予約を管理できます。(他のサーバからの予約は確認できません。)次のことを実行できます。 @@ -168,7 +174,6 @@ rippled connect 169.54.2.151 51235 {% admonition type="success" name="ヒント" %}不正なピアからの接続を即座に切断するAPIメソッドはありませんが、`firewalld`などのソフトウェアファイアウォールを使用すれば、不正なピアからのサーバへの接続をブロックできます。例については、コミュニティーによって作成された[rbhスクリプト](https://github.com/gnanderson/rbh)をご覧ください。{% /admonition %} - ## 関連項目 - **コンセプト:** diff --git a/@l10n/ja/docs/infrastructure/configuration/server-modes/index.md b/@l10n/ja/docs/infrastructure/configuration/server-modes/index.md index f79702e121..b4602a8fc2 100644 --- a/@l10n/ja/docs/infrastructure/configuration/server-modes/index.md +++ b/@l10n/ja/docs/infrastructure/configuration/server-modes/index.md @@ -4,11 +4,11 @@ parent: configure-rippled.html metadata: indexPage: true seo: - description: コアサーバを用途別に適した様々なモードで運用する方法を紹介します。 + description: コアサーバを用途別に適した様々なモードで運用する方法を紹介します。 --- + # サーバの種類 XRP Ledgerのコアサーバは、用途別に適した様々なモードで実行することができます。 - {% child-pages /%} diff --git a/@l10n/ja/docs/infrastructure/configuration/server-modes/run-rippled-as-a-stock-server.md b/@l10n/ja/docs/infrastructure/configuration/server-modes/run-rippled-as-a-stock-server.md index 7fd4c64f53..828d2808f3 100644 --- a/@l10n/ja/docs/infrastructure/configuration/server-modes/run-rippled-as-a-stock-server.md +++ b/@l10n/ja/docs/infrastructure/configuration/server-modes/run-rippled-as-a-stock-server.md @@ -2,15 +2,15 @@ html: run-rippled-as-a-stock-server.html parent: server-modes.html seo: - description: XRPを統合する人のための汎用的な構成。 + description: XRPを統合する人のための汎用的な構成。 labels: - コアサーバ --- + # ウォレットサーバとしてのrippledの実行 ストックサーバは`rippled`用の汎用的な設定です。ストックサーバを利用することで、XRP Ledgerにトランザクションを送信したり、レジャーの履歴にアクセスしたり、XRPやXRP Ledgerと統合するための最新の[ツール](../../../introduction/software-ecosystem.md)を利用したりすることができます。このサーバを使って、クライアントアプリケーションをXRP Ledgerに接続することができます。 - ウォレットサーバは、次のすべてのことを行います。 - [ピアネットワーク](../../../concepts/networks-and-servers/peer-protocol.md)に接続 @@ -19,10 +19,8 @@ labels: - 完全な共有グローバル[レジャー](../../../concepts/ledgers/index.md)のローカルコピーを維持 - バリデータとして[コンセンサスプロセス](../../../concepts/consensus-protocol/index.md)に参加するには、代わりに[バリデータとしてrippledを実行](run-rippled-as-a-validator.md)してください。 - ## `rippled`のインストールと実行 デフォルトのパッケージインストールでは、取引履歴の少ないストックサーバがインストールされます。インストール手順については、[`rippled`のインストール](../../installation/index.md)をご覧ください。 @@ -33,20 +31,19 @@ labels: 詳しくは、[`rippled`のトラブルシューティング](../../troubleshooting/index.md)をご覧ください。 - ## 関連項目 - **コンセプト:** - - [XRP Ledgerの概要](/about/) - - [`rippled`サーバ](../../../concepts/networks-and-servers/index.md) + - [XRP Ledgerの概要](/about/) + - [`rippled`サーバ](../../../concepts/networks-and-servers/index.md) - **チュートリアル:** - - [rippledサーバのクラスター化](../peering/cluster-rippled-servers.md) - - [`rippled`のインストール](../../installation/index.md) - - [容量の計画](../../installation/capacity-planning.md) + - [rippledサーバのクラスター化](../peering/cluster-rippled-servers.md) + - [`rippled`のインストール](../../installation/index.md) + - [容量の計画](../../installation/capacity-planning.md) - **リファレンス:** - - [Validator Keysツールガイド](https://github.com/ripple/validator-keys-tool/blob/master/doc/validator-keys-tool-guide.md) - - [consensus_infoメソッド][] - - [validator_list_sitesメソッド][] - - [validatorsメソッド][] + - [Validator Keysツールガイド](https://github.com/ripple/validator-keys-tool/blob/master/doc/validator-keys-tool-guide.md) + - [consensus_infoメソッド][] + - [validator_list_sitesメソッド][] + - [validatorsメソッド][] {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/infrastructure/configuration/server-modes/run-rippled-as-a-validator.md b/@l10n/ja/docs/infrastructure/configuration/server-modes/run-rippled-as-a-validator.md index 6d2203b082..2c5b2c4c90 100644 --- a/@l10n/ja/docs/infrastructure/configuration/server-modes/run-rippled-as-a-validator.md +++ b/@l10n/ja/docs/infrastructure/configuration/server-modes/run-rippled-as-a-validator.md @@ -2,13 +2,14 @@ html: run-rippled-as-a-validator.html parent: server-modes.html seo: - description: サーバがコンセンサスレジャーで投票できるようにします。 + description: サーバがコンセンサスレジャーで投票できるようにします。 labels: - コアサーバ - ブロックチェーン top_nav_grouping: 人気ページ top_nav_name: UNLに参加しよう --- + # バリデータとしてのrippledの実行 [バリデータモード](../../../concepts/networks-and-servers/rippled-server-modes.md)で実行されている[`rippled`サーバ](../../../concepts/networks-and-servers/index.md)は、ストックサーバが実行するあらゆる処理を実行します。 @@ -27,40 +28,34 @@ top_nav_name: UNLに参加しよう {% admonition type="warning" name="注意" %}バリデータは外部からはアクセスするべきものではありません。バリデータサーバへの一般からのWebSocketアクセスやその他の一般からのアクセスを許可してはいけません。{% /admonition %} - - ## 1. 優れたバリデータの特徴の理解 バリデータ(サーバ)が以下の特質を常に備えるよう努めます。優れたバリデータであることは、`rippled`サーバの運用者やバリデータリスト発行者(https://vl.ripple.com や https://vl.xrplf.orgなど)が、バリデータを彼らのUNLに追加する際に、バリデータを信頼する上で後押しになります。 - **可用性** - 優れたバリデータは、常に稼働し、提案されるあらゆるレジャーについて検証投票を送信します。100%のアップタイムを実現するよう努めてください。 + 優れたバリデータは、常に稼働し、提案されるあらゆるレジャーについて検証投票を送信します。100%のアップタイムを実現するよう努めてください。 - **合意** - 優れたバリデータの投票は、可能な限り高い頻度で、コンセンサスプロセスの結果と合致します。これに該当しない場合は、バリデータのソフトウェアが最新のものではないか、不具合があるか、意図的な偏りがあることを示唆している可能性があります。常に[最新の`rippled`リリース](https://github.com/XRPLF/rippled/tree/master)を、修正を加えることなく実行します。新規リリースについて知るために、[`rippled`のリリースを確認](https://github.com/XRPLF/rippled/releases)してください。 + 優れたバリデータの投票は、可能な限り高い頻度で、コンセンサスプロセスの結果と合致します。これに該当しない場合は、バリデータのソフトウェアが最新のものではないか、不具合があるか、意図的な偏りがあることを示唆している可能性があります。常に[最新の`rippled`リリース](https://github.com/XRPLF/rippled/tree/master)を、修正を加えることなく実行します。新規リリースについて知るために、[`rippled`のリリースを確認](https://github.com/XRPLF/rippled/releases)してください。 - **適時の投票** - 優れたバリデータの投票は、コンセンサスラウンドが終了する前に、素早く届きます。適時の投票を維持するには、バリデータが推奨される[システム要件](../../installation/system-requirements.md)を満たしていることを確認してください。これには、高速のインターネット接続が含まれます。 + 優れたバリデータの投票は、コンセンサスラウンドが終了する前に、素早く届きます。適時の投票を維持するには、バリデータが推奨される[システム要件](../../installation/system-requirements.md)を満たしていることを確認してください。これには、高速のインターネット接続が含まれます。 - バリデータを使って新しいトランザクションを送信したりデータを検索したりすることは可能ですが、APIクエリの負荷が高くなるとバリデータがコンセンサスに追いつけなくなる可能性があります。APIの負荷が十分軽ければ、サーバを両方の目的に使うことができます。理想的には、バリデータはコンセンサスに参加するために特化したものであるべきです。 + バリデータを使って新しいトランザクションを送信したりデータを検索したりすることは可能ですが、APIクエリの負荷が高くなるとバリデータがコンセンサスに追いつけなくなる可能性があります。APIの負荷が十分軽ければ、サーバを両方の目的に使うことができます。理想的には、バリデータはコンセンサスに参加するために特化したものであるべきです。 - **身元の確さ** - 優れたバリデータには、身元が明確な所有者が存在します。[ドメイン検証](#6-ドメイン検証の提供)を提供することは、その第一歩になります。XRP LedgerネットワークのUNLに、多くの法的な管轄域および地域のさまざまな所有者によって運営されているバリデータが含まれていると理想的です。結果として、信頼できるバリデータの公正な運用が地域特有の事象によって損なわれるおそれが低減されます。 + 優れたバリデータには、身元が明確な所有者が存在します。[ドメイン検証](#6-ドメイン検証の提供)を提供することは、その第一歩になります。XRP LedgerネットワークのUNLに、多くの法的な管轄域および地域のさまざまな所有者によって運営されているバリデータが含まれていると理想的です。結果として、信頼できるバリデータの公正な運用が地域特有の事象によって損なわれるおそれが低減されます。 運用者は[exampleファイル](https://github.com/XRPLF/rippled/blob/develop/cfg/validators-example.txt)に存在するバリデータリストを使用することを強くお勧めします。 - - ## 2. `rippled`サーバのインストール 詳細は、[`rippled`のインストール](../../installation/index.md)をご覧ください。 - - ## 3. `rippled`サーバで検証を有効化 `rippled`サーバで検証を有効にすることは、サーバの`rippled.cfg`ファイルにあるバリデータトークンを提供することを意味します。バリデータキーとトークンを安全に生成して管理するために、`validator-keys`ツール(`rippled` RPMに含まれる)を使用することをお勧めします。 @@ -73,25 +68,25 @@ top_nav_name: UNLに参加しよう 2. `create_keys`コマンドを使用して、バリデータキーペアを生成します。 - ``` - $ validator-keys create_keys - ``` + ``` + $ validator-keys create_keys + ``` Ubuntuでの出力の例: - ``` - Validator keys stored in /home/my-user/.ripple/validator-keys.json + ``` + Validator keys stored in /home/my-user/.ripple/validator-keys.json - This file should be stored securely and not shared. - ``` + This file should be stored securely and not shared. + ``` macOSでの出力の例: - ``` - Validator keys stored in /Users/my-user/.ripple/validator-keys.json + ``` + Validator keys stored in /Users/my-user/.ripple/validator-keys.json - This file should be stored securely and not shared. - ``` + This file should be stored securely and not shared. + ``` {% admonition type="danger" name="警告" %}生成した`validator-keys.json`キーファイルは、暗号化されたUSBフラッシュドライブなど、安全かつ回復可能なオフラインの場所に保管してください。内容には修正を加えないでください。特に、キーの使用場所となるバリデータにキーファイルを保存しないようにします。バリデータの`secret_key`が悪用された場合は、ただちに[キーを破棄](https://github.com/ripple/validator-keys-tool/blob/master/doc/validator-keys-tool-guide.md#key-revocation)します。{% /admonition %} @@ -99,27 +94,27 @@ top_nav_name: UNLに参加しよう 3. `create_token`コマンドを使用して、バリデータトークンを生成します。 - ``` - $ validator-keys create_token --keyfile /PATH/TO/YOUR/validator-keys.json - ``` + ``` + $ validator-keys create_token --keyfile /PATH/TO/YOUR/validator-keys.json + ``` 出力の例: - ``` - Update rippled.cfg file with these values: + ``` + Update rippled.cfg file with these values: - # validator public key: nHUtNnLVx7odrz5dnfb2xpIgbEeJPbzJWfdicSkGyVw1eE5GpjQr + # validator public key: nHUtNnLVx7odrz5dnfb2xpIgbEeJPbzJWfdicSkGyVw1eE5GpjQr - [validator_token] - eyJ2YWxpZGF0aW9uX3NlY3J|dF9rZXkiOiI5ZWQ0NWY4NjYyNDFjYzE4YTI3NDdiNT - QzODdjMDYyNTkwNzk3MmY0ZTcxOTAyMzFmYWE5Mzc0NTdmYT|kYWY2IiwibWFuaWZl - c3QiOiJKQUFBQUFGeEllMUZ0d21pbXZHdEgyaUNjTUpxQzlnVkZLaWxHZncxL3ZDeE - hYWExwbGMyR25NaEFrRTFhZ3FYeEJ3RHdEYklENk9NU1l1TTBGREFscEFnTms4U0tG - bjdNTzJmZGtjd1JRSWhBT25ndTlzQUtxWFlvdUorbDJWMFcrc0FPa1ZCK1pSUzZQU2 - hsSkFmVXNYZkFpQnNWSkdlc2FhZE9KYy9hQVpva1MxdnltR21WcmxIUEtXWDNZeXd1 - NmluOEhBU1FLUHVnQkQ2N2tNYVJGR3ZtcEFUSGxHS0pkdkRGbFdQWXk1QXFEZWRGdj - VUSmEydzBpMjFlcTNNWXl3TFZKWm5GT3I3QzBrdzJBaVR6U0NqSXpkaXRROD0ifQ== - ``` + [validator_token] + eyJ2YWxpZGF0aW9uX3NlY3J|dF9rZXkiOiI5ZWQ0NWY4NjYyNDFjYzE4YTI3NDdiNT + QzODdjMDYyNTkwNzk3MmY0ZTcxOTAyMzFmYWE5Mzc0NTdmYT|kYWY2IiwibWFuaWZl + c3QiOiJKQUFBQUFGeEllMUZ0d21pbXZHdEgyaUNjTUpxQzlnVkZLaWxHZncxL3ZDeE + hYWExwbGMyR25NaEFrRTFhZ3FYeEJ3RHdEYklENk9NU1l1TTBGREFscEFnTms4U0tG + bjdNTzJmZGtjd1JRSWhBT25ndTlzQUtxWFlvdUorbDJWMFcrc0FPa1ZCK1pSUzZQU2 + hsSkFmVXNYZkFpQnNWSkdlc2FhZE9KYy9hQVpva1MxdnltR21WcmxIUEtXWDNZeXd1 + NmluOEhBU1FLUHVnQkQ2N2tNYVJGR3ZtcEFUSGxHS0pkdkRGbFdQWXk1QXFEZWRGdj + VUSmEydzBpMjFlcTNNWXl3TFZKWm5GT3I3QzBrdzJBaVR6U0NqSXpkaXRROD0ifQ== + ``` バリデータ(サーバ)で、以下の手順に従います。 @@ -129,15 +124,15 @@ top_nav_name: UNLに参加しよう 2. `rippled`を再起動します。 - ``` - $ sudo systemctl restart rippled.service - ``` + ``` + $ sudo systemctl restart rippled.service + ``` 3. `server_info`コマンドを使用してバリデータの情報を取得し、バリデータとして実行されていることを確認します。 - ``` - $ rippled server_info - ``` + ``` + $ rippled server_info + ``` - レスポンスに含まれている`pubkey_validator`の値は、バリデータで使用するために生成した`validator-keys.json`ファイルの`public_key`と一致している必要があります。 @@ -157,14 +152,12 @@ top_nav_name: UNLに参加しよう これらのアプローチの違いについては、[ピア接続設定のメリットとデメリット](../../../concepts/networks-and-servers/peer-protocol.md#ピア接続設定のメリットとデメリット)をご覧ください。 - ### 検出されたピアを使用した接続 この構成では、[検出されたピア](../../../concepts/networks-and-servers/peer-protocol.md#ピアの検出)を使用してバリデータをXRP Ledgerネットワークに接続します。これは`rippled`サーバのデフォルトの動作です。 _**検出されたピアを使用してバリデータをXRP Ledgerネットワークに接続するには、**_ バリデータの`rippled.cfg`ファイルで`[peer_private]`スタンザを省略するか、それを`0`に設定します。この構成の[サンプルのrippled.cfgファイル](https://github.com/XRPLF/rippled/blob/develop/cfg/rippled-example.cfg)が提供されています。 - ### プロキシを使用した接続 この構成は、自社で運用するストック`rippled`サーバを通じてバリデータをネットワークに接続します。これらのプロキシサーバは、バリデータと発着信ネットワークトラフィックの間に設置します。 @@ -180,26 +173,24 @@ _**プロキシを使用してバリデータをXRP Ledgerネットワークに {% admonition type="danger" name="警告" %}バリデータのIPアドレスを、その他の方法で公開していないことを確認してください。{% /admonition %} 4. 以下のトラフィックのみを許可するように、バリデータのホストマシンのファイアウォールを構成します。 - - 着信トラフィック: 構成したクラスター内にあるストック`rippled`サーバのIPアドレスが発信元である場合のみ - 発信トラフィック: 構成したクラスター内にあるストック`rippled`サーバのIPアドレスおよびポート443経由のが送信先である場合のみ 5. `rippled`を再起動します。 - ``` - $ sudo systemctl restart rippled.service - ``` + ``` + $ sudo systemctl restart rippled.service + ``` 6. いずれかのストック`rippled`サーバにある[ピアクローラー](../../../references/http-websocket-apis/peer-port-methods/peer-crawler.md)エンドポイントを使用します。レスポンスには、バリデータが含まれていないはずです。これにより、バリデータの`[peer_private]`構成が機能していることが確認されます。バリデータの`[peer_private]`を有効にした場合の効果の1つは、バリデータのピアによって、ピアクローラーの結果にバリデータが含まれないことです。 - ``` - $ curl --insecure https://STOCK_SERVER_IP_ADDRESS_HERE:51235/crawl | python3 -m json.tool - ``` + ``` + $ curl --insecure https://STOCK_SERVER_IP_ADDRESS_HERE:51235/crawl | python3 -m json.tool + ``` - ### 公開ハブを使用した接続 この構成では、2つの[公開ハブ](../../../concepts/networks-and-servers/rippled-server-modes.md#公開ハブ)を使用してバリデータをネットワークに接続します。この構成は、[自社で運用しているプロキシを使用した接続](#プロキシを使用した接続)と似ていますが、公開ハブを通じて接続します。 @@ -208,16 +199,15 @@ _**公開ハブを使用してバリデータをネットワークに接続す 1. バリデータの`rippled.cfg`ファイルに、次の`[ips_fixed]`スタンザを含めます。2つの値`r.ripple.com 51235`と`zaphod.alloy.ee 51235`がデフォルトの公開ハブです。このスタンザは、これらの公開ハブとのピア接続を常に維持するよう`rippled`に指示します。 - ``` - [ips_fixed] - r.ripple.com 51235 - zaphod.alloy.ee 51235 - ``` + ``` + [ips_fixed] + r.ripple.com 51235 + zaphod.alloy.ee 51235 + ``` {% admonition type="warning" name="注意" %}この構成では、デフォルトの公開ハブを使用してバリデータをネットワークに接続します。これらは _デフォルト_ の公開ハブであるため、ビジー状態になってバリデータにネットワークへの接続を提供できない場合があります。この問題を避けるために、接続する公開ハブの数を増やすか、デフォルトでない公開ハブに接続するようにします。{% /admonition %} 他の`rippled`サーバのIPアドレスをここに記述することもできますが、それらのサーバに対して以下の事項を期待できる場合に _**限ります**_ 。 - - メッセージを検閲することなく中継する。 - オンライン状態を常に維持する。 - サーバに対するDDoS攻撃を実行しない。 @@ -226,10 +216,10 @@ _**公開ハブを使用してバリデータをネットワークに接続す 2. また、バリデータの`rippled.cfg`ファイルに、次の`[peer_private]`スタンザを含めて、それを`1`に設定します。それにより、バリデータのピアに対して、バリデータのIPアドレスをブロードキャストしないよう指示することになります。また、バリデータに対して、`[ips_fixed]`スタンザで設定されているピアにのみ接続するよう指示することになります。これにより、既知の信頼できるピア`rippled`サーバに対してのみ、バリデータが接続を確立し、IPアドレスを共有することが保証されます。 - ``` - [peer_private] - 1 - ``` + ``` + [peer_private] + 1 + ``` {% admonition type="danger" name="警告" %}バリデータのIPアドレスを、その他の方法で公開していないことを確認してください。{% /admonition %} @@ -237,11 +227,9 @@ _**公開ハブを使用してバリデータをネットワークに接続す 3. `rippled`を再起動します。 - ``` - $ sudo systemctl restart rippled.service - ``` - - + ``` + $ sudo systemctl restart rippled.service + ``` ## 5. ネットワーク接続の確認 @@ -259,8 +247,6 @@ _**公開ハブを使用してバリデータをネットワークに接続す - [`validators`](../../../references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validators.md)コマンドを使用して、バリデータによって使用される、公開済みかつ信頼できるバリデータの最新リストを取得します。`validator_list_expires`の値が、`never`(無期限)、期限が切れていない、または期限切れ間近のいずれかであることを確認してください。 - - ## 6. ドメイン検証の提供 検証リスト発行者およびXRP Ledgerネットワーク内のその他の参加者がバリデータの運用元を把握しやすいようにするには、バリデータのドメイン検証を提供します。ドメイン検証とは、ハイレベルでは双方向リンクを指します。 @@ -278,49 +264,46 @@ _**公開ハブを使用してバリデータをネットワークに接続す 2. バリデータの公開鍵を公開し、特に他の`rippled`オペレーターに知らせます。例えば、Webサイト、ソーシャルメディア、[XRPChatコミュニティーフォーラム](https://www.xrpchat.com/)、またはプレスリリースでバリデータの公開鍵を公表できます。 3. この[Googleフォーム](https://docs.google.com/forms/d/e/1FAIpQLScszfq7rRLAfArSZtvitCyl-VFA9cNcdnXLFjURsdCQ3gHW7w/viewform)を使用して、自身のバリデータをXRP Chartsの[バリデータレジストリー](https://xrpcharts.ripple.com/#/validators)に登録するためのリクエストを送信します。バリデータをこのレジストリーに登録することは、そのバリデータとドメインを所有していることを示す、別の形での公的な証拠になります。フォームに漏れなく記入するには、以下の情報が必要です。 - 1. バリデータのサーバで以下のコマンドを実行して、バリデータの公開鍵を検出します。 $ /opt/ripple/bin/rippled server_info | grep pubkey_validator - ``` - 返された値を、Googleフォームの**Validator Public Key**フィールドに入力します。 - ``` + ``` + 返された値を、Googleフォームの**Validator Public Key**フィールドに入力します。 + ``` 2. WebドメインのTLS秘密鍵を使用して、バリデータの公開鍵に署名します。TLS秘密鍵ファイルをバリデータのサーバに保存する必要はありません。 $ openssl dgst -sha256 -hex -sign /PATH/TO/YOUR/TLS.key <(echo YOUR_VALIDATOR_PUBLIC_KEY_HERE) - ``` - 出力の例: + ``` + 出力の例: - 4a8b84ac264d18d116856efd2761a76f3f4544a1fbd82b9835bcd0aa67db91c53342a1ab197ab1ec4ae763d8476dd92fb9c24e6d9de37e3594c0af05d0f14fd2a00a7a5369723c019f122956bf3fc6c6b176ed0469c70c864aa07b4bf73042b1c7cf0b2c656aaf20ece5745f54ab0f78fab50ebd599e62401f4b57a4cccdf8b76d26f4490a1c51367e4a36faf860d48dd2f98a6134ebec1a6d92fadf9f89aae67e854f33e1acdcde12cfaf5f5dbf1b6a33833e768edbb9ff374cf4ae2be21dbc73186a5b54cc518f63d6081919e6125f7daf9a1d8e96e3fdbf3b94b089438221f8cfd78fd4fc85c646b288eb6d22771a3ee47fb597d28091e7aff38a1e636b4f + 4a8b84ac264d18d116856efd2761a76f3f4544a1fbd82b9835bcd0aa67db91c53342a1ab197ab1ec4ae763d8476dd92fb9c24e6d9de37e3594c0af05d0f14fd2a00a7a5369723c019f122956bf3fc6c6b176ed0469c70c864aa07b4bf73042b1c7cf0b2c656aaf20ece5745f54ab0f78fab50ebd599e62401f4b57a4cccdf8b76d26f4490a1c51367e4a36faf860d48dd2f98a6134ebec1a6d92fadf9f89aae67e854f33e1acdcde12cfaf5f5dbf1b6a33833e768edbb9ff374cf4ae2be21dbc73186a5b54cc518f63d6081919e6125f7daf9a1d8e96e3fdbf3b94b089438221f8cfd78fd4fc85c646b288eb6d22771a3ee47fb597d28091e7aff38a1e636b4f - 返された値を、Googleフォームの**SSL Signature**フィールドに入力します。 - ``` + 返された値を、Googleフォームの**SSL Signature**フィールドに入力します。 + ``` 3. [`validator-keys`ツール](https://github.com/ripple/validator-keys-tool/blob/master/doc/validator-keys-tool-guide.md)(`rippled`のRPMに収録)を使用して、ドメイン名に署名します。 $ validator-keys --keyfile /PATH/TO/YOUR/validator-keys.json sign YOUR_DOMAIN_NAME - ``` - 出力の例: + ``` + 出力の例: - E852C2FE725B64F353E19DB463C40B1ABB85959A63B8D09F72C6B6C27F80B6C72ED9D5ED6DC4B8690D1F195E28FF1B00FB7119C3F9831459F3C3DE263B73AC04 + E852C2FE725B64F353E19DB463C40B1ABB85959A63B8D09F72C6B6C27F80B6C72ED9D5ED6DC4B8690D1F195E28FF1B00FB7119C3F9831459F3C3DE263B73AC04 - 返された値を、Googleフォームの**Domain Signature**フィールドに入力します。 - ``` + 返された値を、Googleフォームの**Domain Signature**フィールドに入力します。 + ``` 4. 記入したGoogleフォームを送信すると、ドメイン検証の成否を通知するメールがXRP Chartsから送信されます。ドメイン検証が成功した場合は、XRP Chartsの[バリデータレジストリー](https://xrpcharts.ripple.com/#/validators)にバリデータとドメインが表示されます。 - ## バリデータキーの破棄 バリデータのマスター秘密鍵が漏えいした場合は、ただちに永続的に破棄する必要があります。 `validator-keys`ツールでバリデータ用に生成したマスターキーペアを破棄する方法については、[Key Revocation](https://github.com/ripple/validator-keys-tool/blob/master/doc/validator-keys-tool-guide.md#key-revocation)をご覧ください。 - ## 関連項目 - **コンセプト:** diff --git a/@l10n/ja/docs/infrastructure/index.md b/@l10n/ja/docs/infrastructure/index.md index 9aa9ec8a97..7401a5f52d 100644 --- a/@l10n/ja/docs/infrastructure/index.md +++ b/@l10n/ja/docs/infrastructure/index.md @@ -5,9 +5,9 @@ metadata: indexPage: true top_nav_grouping: カテゴリ --- + # インフラストラクチャ XRP Ledgerを動かすソフトウェアのインストール、設定、管理。 - {% child-pages /%} diff --git a/@l10n/ja/docs/infrastructure/installation/build-on-linux-mac-windows.md b/@l10n/ja/docs/infrastructure/installation/build-on-linux-mac-windows.md index 1929731796..8abd779f60 100644 --- a/@l10n/ja/docs/infrastructure/installation/build-on-linux-mac-windows.md +++ b/@l10n/ja/docs/infrastructure/installation/build-on-linux-mac-windows.md @@ -2,12 +2,13 @@ html: build-on-linux-mac-windows.html parent: install-rippled.html seo: - description: Linux、Mac(macOS)、Windows上でrippledをビルドします。 + description: Linux、Mac(macOS)、Windows上でrippledをビルドします。 labels: - コアサーバ - ブロックチェーン top_nav_grouping: 人気ページ --- + # Linux、Mac(macOS)、Windows上でのrippledのビルド Windows、Linux、macOSなど様々なプラットフォームで`rippled`をビルドするには、C++開発環境が必要です。Git、Python、Conan、CMake、そして適切なC++コンパイラなどのツールが必要です。 diff --git a/@l10n/ja/docs/infrastructure/installation/capacity-planning.md b/@l10n/ja/docs/infrastructure/installation/capacity-planning.md index bc553dc4a4..c77e4792f0 100644 --- a/@l10n/ja/docs/infrastructure/installation/capacity-planning.md +++ b/@l10n/ja/docs/infrastructure/installation/capacity-planning.md @@ -2,11 +2,12 @@ html: capacity-planning.html parent: install-rippled.html seo: - description: 本番環境のシステムスペックを計画して、rippledの構成を調整します。 + description: 本番環境のシステムスペックを計画して、rippledの構成を調整します。 labels: - コアサーバ - データ保持 --- + # 容量の計画 このドキュメントでは、XRP Ledgerサーバのパフォーマンスを調整・最適化するために使用できる、構成、ネットワーク、ハードウェアに関する推奨事項を説明しています。 @@ -15,15 +16,12 @@ XRP Ledgerのサーバの負荷は、複数の要因によって変化します これらの要素を考慮して、構成するサーバが現在および将来のXRP Ledgerネットワークの活動を処理する能力を持っていることを確認する必要があります。 - - ## 構成設定 デフォルトの設定ファイルには、一般的なユースケースを幅広くカバーする設定が含まれています。お使いのハードウェアや使用目的に合わせて設定をカスタマイズすることで、より良いパフォーマンスを得ることができます。 本セクションでの設定は、`rippled.cfg`ファイルのパラメータです。設定ファイルの例である `rippled-example.cfg` は、`rippled` GitHubリポジトリ の [`cfg` ディレクトリ](https://github.com/XRPLF/rippled/blob/develop/cfg/rippled-example.cfg)からアクセスできます。サンプル設定ファイルの設定は、サーバと一緒にインストールされたデフォルトの設定と一致しています。 - ### ノードサイズ `[node_size]`パラメータは、サーバのハードウェア全体の容量を反映する必要があります。このパラメータを省略すると、システムの総RAMとCPUスレッド数に基づいて、サーバが自動的に適切な設定を選択します。システムのRAMやスレッドの一部を他のソフトウェア用に確保する必要がある場合や、オペレーティングシステムから報告される量が不正確な場合など、自動設定がシステムに合わない場合は、この値を明示的に設定できます。(これは一部のコンテナで発生する可能性があります。) {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.8.1" %}更新: rippled 1.8.1{% /badge %}. @@ -36,17 +34,16 @@ XRP Ledgerのサーバの負荷は、複数の要因によって変化します サーバを調整するために、まず`tiny`から初め、ユースケースの要件に合わせてサイズを徐々に`small`、`medium`と増やしていくと便利です。 -| `rippled`で使用できるRAM | `node_size` 値 | 注記 | -|:----------------------------|:------------------|:---------------------------| -| 8GB未満 | `tiny` | **非推奨** この設定をしたサーバは、ビジー状態のネットワークに同期しないことがあります。 | -| 8GB | `small` | テストサーバに推奨。 | -| 16GB | `medium` | `rippled-example.cfg`ファイルではこの値が使用されます。 | -| 32GB | `large` | **非推奨** 実際には、この設定はほとんどの状況で `huge` よりもパフォーマンスが低下します。安定性を求めるのであれば、常に `huge` を使用してください。 | -| 64GB | `huge` | 実稼働サーバに推奨。 | +| `rippled`で使用できるRAM | `node_size` 値 | 注記 | +| :----------------------- | :------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------- | +| 8GB未満 | `tiny` | **非推奨** この設定をしたサーバは、ビジー状態のネットワークに同期しないことがあります。 | +| 8GB | `small` | テストサーバに推奨。 | +| 16GB | `medium` | `rippled-example.cfg`ファイルではこの値が使用されます。 | +| 32GB | `large` | **非推奨** 実際には、この設定はほとんどの状況で `huge` よりもパフォーマンスが低下します。安定性を求めるのであれば、常に `huge` を使用してください。 | +| 64GB | `huge` | 実稼働サーバに推奨。 | `node_size`パラメーターを無効な値に設定すると、[サーバは起動しません](../troubleshooting/server-wont-start.md#node_sizeの値が正しくない)。 - ### ノードDBタイプ `rippled.cfg`ファイルの`[node_db]`節の`type`フィールドでは、レジャーストアを保持するために`rippled`で使用されるkey-valueストアのタイプを設定します。 @@ -104,21 +101,18 @@ advisory_delete=0 (`path`を、ディスク上でレジャーを維持するディレクトリーに設定します。`online_delete`と`advisory_delete`をお使いの構成に合わせて調整します。) - ### ログレベル サンプルの`rippled-example.cfg`ファイルの`[rpc_startup]`節では、ロギング詳細レベルが`warning`に設定されています。この設定を使用すると、より詳細なログ比べ、ディスク容量とI/O要件が大幅に緩和されます。ただし、より詳細なログレベルを設定すると、トラブルシューティングの際により細かな情報が得られます。 {% admonition type="warning" name="注意" %}`[rpc_startup]`節で`log_level`コマンドを省略すると、サーバは`debug`レべルでディスクにログを書き込み、`warning`レベルのログをコンソールに出力します。 `debug` レベルのログは、`warning`レベルに比べ、トランザクション量とクライアントアクティビティーに基づいて、一日当たりに必要なディスク容量が数GB多くなります。{% /admonition %} - ## ネットワークとハードウェア XRP Ledgerネットワークの各サーバは、ネットワークのすべての取引処理作業を行います。ネットワーク上の総活動量は変動しますが、ほとんどが時間の経過とともに増加していますので、現在のネットワーク活動に必要な容量よりも大きな容量のハードウェアを選択する必要があります。 `rippled`サーバが、これらのネットワーク要件とハードウェア要件を満たすようにすることは、XRP Ledgerネットワーク全体で一貫した優れたパフォーマンスを実現するために役立ちます。 - ### 推奨事項 推奨されるハードウェアのスペックをまとめたものは、[システム要件](system-requirements.md)をご覧ください @@ -138,22 +132,22 @@ XRP Ledgerネットワークの各サーバは、ネットワークのすべて #### ディスク容量 -`[node_db]`節はサーバの_レジャーの保存容量_を制御し、[レジャーの履歴](../../concepts/networks-and-servers/ledger-history.md)を保持します。必要なディスク容量は、どの程度の履歴をローカルに保存するかによって決まります。XRP Ledgerサーバは、コンセンサス・プロセスを追跡し、レジャーの完全な状態を報告するために、最新の256以上のレジャーバージョンを保存する必要はありません。ただし、サーバで照会できる実行済みトランザクションは、ローカルで保存されたレジャーバージョンにあるものだけです。`[node_db]`の`path`を設定して、レジャーの保存場所を決めてください。 +`[node_db]`節はサーバの*レジャーの保存容量*を制御し、[レジャーの履歴](../../concepts/networks-and-servers/ledger-history.md)を保持します。必要なディスク容量は、どの程度の履歴をローカルに保存するかによって決まります。XRP Ledgerサーバは、コンセンサス・プロセスを追跡し、レジャーの完全な状態を報告するために、最新の256以上のレジャーバージョンを保存する必要はありません。ただし、サーバで照会できる実行済みトランザクションは、ローカルで保存されたレジャーバージョンにあるものだけです。`[node_db]`の`path`を設定して、レジャーの保存場所を決めてください。 保持するデータ量は、[オンライン削除](../configuration/data-retention/online-deletion.md)で管理できます。デフォルトの構成ファイルの設定では、サーバは最新の2000のレジャーバージョンを保持します。オンライン削除を使用しないと、サーバのディスク要件が際限なく増え続けます。 以下のテーブルは、本書の執筆時点(2018年12月13日)における、様々な履歴量の要件をまとめたものです。 -| 実際の時間 | レジャーバージョンの数 | 必要なディスク容量(RocksDB) | 必要なディスク容量(NuDB) | -|:-----------------|:--------------------------|:------------------------------|:--| -| 2時間 | 2,000 | 250MB | 450MB | -| 1日 | 25,000 | 8GB | 12GB | -| 14日 | 350,000 | 112GB | 168GB | -| 30日 | 750,000 | 240GB | 360GB | -| 90日 | 2,250,000 | 720GB | 1TB | -| 1年 | 10,000,000 | 3TB | 4.5TB | -| 2年 | 20,000,000 | 6TB | 9TB | -| 完全な履歴(2020-11-10まで) | 59,000,000+ | (非推奨) | ~14TB | +| 実際の時間 | レジャーバージョンの数 | 必要なディスク容量(RocksDB) | 必要なディスク容量(NuDB) | +| :--------------------------- | :--------------------- | :---------------------------- | :------------------------- | +| 2時間 | 2,000 | 250MB | 450MB | +| 1日 | 25,000 | 8GB | 12GB | +| 14日 | 350,000 | 112GB | 168GB | +| 30日 | 750,000 | 240GB | 360GB | +| 90日 | 2,250,000 | 720GB | 1TB | +| 1年 | 10,000,000 | 3TB | 4.5TB | +| 2年 | 20,000,000 | 6TB | 9TB | +| 完全な履歴(2020-11-10まで) | 59,000,000+ | (非推奨) | ~14TB | これらの数値は概算です。様々な要因によって変わりますが、最も重要なのはネットワーク内のトランザクション量です。トランザクション量が増えるにつれ、各レジャーバージョンはより多くの固有データを格納します。今後の拡大に備え、予備のストレージ容量を準備しておくことをお勧めします。 @@ -165,7 +159,6 @@ XRP Ledgerネットワークの各サーバは、ネットワークのすべて 一般的なルールとして、実行されていない`rippled`サーバのデータベースファイル(レジャーストアとデータベースの両方)を安全に削除することができます。これにより、サーバに保存されているレジャーの履歴はすべて消去されますが、そのデータをネットワークから再取得することができます。ただし、`[database_path]`にある`wallet.db`ファイルを削除すると、[Amendment 投票](../configuration/configure-amendment-voting.md)や[ピアリザベーション](../configuration/peering/use-a-peer-reservation.md)などのランタイムの設定変更を手動で再適用しなければなりません。 - ##### Amazon Web Services Amazon Web Services(AWS)は、人気のある仮想化ホスト環境です。AWSで`rippled`を実行することはできますが、Elastic Block Storage(EBS)は使用しないでください。詳しくは[システム要件](system-requirements.md)をご覧ください。 @@ -186,29 +179,29 @@ AWSインスタンスストア(`ephemeral`ストレージ)では適切なパ 以下は、一般的なタスクで使用されるネットワーク帯域幅の例です。 -| タスク | 転送量/受信量 | -|:------------------------------------------------|:---------------------------| -| 現在のトランザクション量を処理する | 2Mbpsの転送、2Mbpsの受信 | -| ピーク時のトランザクション量を処理 | 100Mbps以上の転送 | -| 履歴レジャーとトランザクションレポートを提供する | 100Mbps以上の転送 | -| `rippled`の起動 | 20Mbpsの受信 | +| タスク | 転送量/受信量 | +| :----------------------------------------------- | :----------------------- | +| 現在のトランザクション量を処理する | 2Mbpsの転送、2Mbpsの受信 | +| ピーク時のトランザクション量を処理 | 100Mbps以上の転送 | +| 履歴レジャーとトランザクションレポートを提供する | 100Mbps以上の転送 | +| `rippled`の起動 | 20Mbpsの受信 | [P2P通信で圧縮を有効にする](../configuration/peering/enable-link-compression.md)ことで帯域幅を節約することができますが、その代償としてCPU使用率が高くなります。多くのハードウェア構成では、通常の使用時にはCPUの容量に余裕があるため、ネットワークの帯域幅が限られている場合には、この方法が経済的な選択肢となります。 ## 関連項目 - **コンセプト:** - - [`rippled`サーバ](../../concepts/networks-and-servers/index.md) - - [コンセンサスについて](../../concepts/consensus-protocol/index.md) + - [`rippled`サーバ](../../concepts/networks-and-servers/index.md) + - [コンセンサスについて](../../concepts/consensus-protocol/index.md) - **チュートリアル:** - - [`rippled`の構成](../configuration/index.md) - - [オンライ削除の設定](../configuration/data-retention/configure-online-deletion.md) - サーバが一度に保持するレジャー履歴のバージョン数を調整します。 - - [`rippled`のトラブルシューティング](../troubleshooting/index.md) + - [`rippled`の構成](../configuration/index.md) + - [オンライ削除の設定](../configuration/data-retention/configure-online-deletion.md) - サーバが一度に保持するレジャー履歴のバージョン数を調整します。 + - [`rippled`のトラブルシューティング](../troubleshooting/index.md) - **リファレンス:** - - [rippled APIリファレンス](../../references/http-websocket-apis/index.md) - - [`rippled`コマンドラインの使用](../commandline-usage.md) - - [logrotateメソッド][] - サーバのデバッグログを閉じたり再開したりして、標準的なツールでローテーション可能にします。 - - [server_infoメソッド][] - 同期の状態や、ディスク上で利用可能なレジャー履歴のバージョン数など、サーバに関する一般的な情報を取得します。 - - [get_countsメソッド][] - 追加のサーバの正常情報、特にRAM内に様々な種類のオブジェクトをいくつ保持しているかを取得します。 + - [rippled APIリファレンス](../../references/http-websocket-apis/index.md) + - [`rippled`コマンドラインの使用](../commandline-usage.md) + - [logrotateメソッド][] - サーバのデバッグログを閉じたり再開したりして、標準的なツールでローテーション可能にします。 + - [server_infoメソッド][] - 同期の状態や、ディスク上で利用可能なレジャー履歴のバージョン数など、サーバに関する一般的な情報を取得します。 + - [get_countsメソッド][] - 追加のサーバの正常情報、特にRAM内に様々な種類のオブジェクトをいくつ保持しているかを取得します。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/infrastructure/installation/index.md b/@l10n/ja/docs/infrastructure/installation/index.md index 91805fcfb9..9e6f64ec60 100644 --- a/@l10n/ja/docs/infrastructure/installation/index.md +++ b/@l10n/ja/docs/infrastructure/installation/index.md @@ -4,11 +4,11 @@ parent: infrastructure.html metadata: indexPage: true seo: - description: rippledサーバをインストールして更新します。 + description: rippledサーバをインストールして更新します。 --- + # rippledのインストール rippledサーバをインストールして更新します。 - {% child-pages /%} diff --git a/@l10n/ja/docs/infrastructure/installation/install-clio-on-ubuntu.md b/@l10n/ja/docs/infrastructure/installation/install-clio-on-ubuntu.md index 57be1c6f1f..3f00723d42 100644 --- a/@l10n/ja/docs/infrastructure/installation/install-clio-on-ubuntu.md +++ b/@l10n/ja/docs/infrastructure/installation/install-clio-on-ubuntu.md @@ -2,173 +2,164 @@ html: install-clio-on-ubuntu.html parent: install-rippled.html seo: - description: Ubuntu Linuxにコンパイル済みのClioバイナリをインストールします。 + description: Ubuntu Linuxにコンパイル済みのClioバイナリをインストールします。 labels: - Clioサーバ --- + # Ubuntu LinuxへのClioのインストール このページでは、[`apt`](https://ubuntu.com/server/docs)を使用して、**Ubuntu Linux 20.04 以降**にClioの最新安定版をインストールするための推奨手順を説明します。 これらの手順はRippleによってコンパイルされたバイナリをインストールします。Clioをソースからビルドする方法については、[Clioソースコードリポジトリ](https://github.com/XRPLF/clio)をご覧ください。 - ## 前提条件 Clioをインストールする前に、以下の条件を満たしている必要があります。 - お使いのシステムが[システム要件](system-requirements.md)を満たしていることを確認してください。 - {% admonition type="info" name="Note" %}Clioのシステム要件は`rippled`サーバと同じですが、同じ量のレジャー履歴を保存するのに必要なディスク容量はClioの方が少なくなります。{% /admonition %} + {% admonition type="info" name="Note" %}Clioのシステム要件は`rippled`サーバと同じですが、同じ量のレジャー履歴を保存するのに必要なディスク容量はClioの方が少なくなります。{% /admonition %} -- 互換性のあるバージョンのCMakeとBoostが必要です。ClioにはC++20とBoost 1.75.0以上が必要です。 +- 互換性のあるバージョンのCMakeとBoostが必要です。ClioにはC++20とBoost 1.75.0以上が必要です。 - ローカルまたはリモートで実行されているCassandraクラスタにアクセスします。[Cassandraのインストールほうほ](https://cassandra.apache.org/doc/latest/cassandra/getting_started/installing.html)に従ってCassandraクラスタを手動でインストールして構成するか、次のコマンドのいずれかを使用してDockerコンテナ上でCassandraを実行できます。 + - Clioデータを永続化する場合は、DockerコンテナでCassandraを実行し、Clioデータを格納する空のディレクトリを指定します: - - Clioデータを永続化する場合は、DockerコンテナでCassandraを実行し、Clioデータを格納する空のディレクトリを指定します: + ``` + docker run --rm -it --network=host --name cassandra -v $PWD/cassandra_data:/var/lib/ + cassandra cassandra:4.0.4 + ``` - ``` - docker run --rm -it --network=host --name cassandra -v $PWD/cassandra_data:/var/lib/ - cassandra cassandra:4.0.4 - ``` + - Clioのデータを永続化したくない場合は、以下のコマンドを実行してください。 - - Clioのデータを永続化したくない場合は、以下のコマンドを実行してください。 - - ``` - docker run --rm -it --network=host --name cassandra cassandra:4.0.4 - ``` + ``` + docker run --rm -it --network=host --name cassandra cassandra:4.0.4 + ``` - P2Pモードでは1つ以上の`rippled`サーバにgRPCでアクセスする必要があります。この`rippled`サーバはローカルでもリモートでも構いませんが、信頼する必要があります。最も確実な方法は、[`rippled`を自分でインストール](index.md)することです。 - ## インストールの手順 1. リポジトリを更新します。 - ``` - sudo apt -y update - ``` + ``` + sudo apt -y update + ``` - {% admonition type="success" name="ヒント" %}すでに同じマシンに`rippled`の最新版をインストールしている場合、Rippleのパッケージリポジトリと署名キーを追加する以下のステップは省略できます。ステップ5の"Rippleリポジトリを取得します。"から再開します。{% /admonition %} + {% admonition type="success" name="ヒント" %}すでに同じマシンに`rippled`の最新版をインストールしている場合、Rippleのパッケージリポジトリと署名キーを追加する以下のステップは省略できます。ステップ5の"Rippleリポジトリを取得します。"から再開します。{% /admonition %} 2. ユーティリティをインストールします。 - ``` - sudo apt -y install apt-transport-https ca-certificates wget gnupg - ``` + ``` + sudo apt -y install apt-transport-https ca-certificates wget gnupg + ``` -3. Rippleのパッケージ署名用のGPGキーを、信頼できるキーのリストに追加します。 +3. Rippleのパッケージ署名用のGPGキーを、信頼できるキーのリストに追加します。 - ``` - sudo mkdir /usr/local/share/keyrings/ - wget -q -O - "https://repos.ripple.com/repos/api/gpg/key/public" | gpg --dearmor > ripple-key.gpg - sudo mv ripple-key.gpg /usr/local/share/keyrings - ``` + ``` + sudo mkdir /usr/local/share/keyrings/ + wget -q -O - "https://repos.ripple.com/repos/api/gpg/key/public" | gpg --dearmor > ripple-key.gpg + sudo mv ripple-key.gpg /usr/local/share/keyrings + ``` 4. 追加したキーのフィンガープリントを確認します。 - ``` - gpg /usr/local/share/keyrings/ripple-key.gpg - ``` + ``` + gpg /usr/local/share/keyrings/ripple-key.gpg + ``` - 出力に、次のようなRipple用のエントリが含まれていることを確認してください。 + 出力に、次のようなRipple用のエントリが含まれていることを確認してください。 - ``` - gpg: WARNING: no command supplied. Trying to guess what you mean ... - pub rsa3072 2019-02-14 [SC] [expires: 2026-02-17] - C0010EC205B35A3310DC90DE395F97FFCCAFD9A2 - uid TechOps Team at Ripple - sub rsa3072 2019-02-14 [E] [expires: 2026-02-17] - ``` + ``` + gpg: WARNING: no command supplied. Trying to guess what you mean ... + pub rsa3072 2019-02-14 [SC] [expires: 2026-02-17] + C0010EC205B35A3310DC90DE395F97FFCCAFD9A2 + uid TechOps Team at Ripple + sub rsa3072 2019-02-14 [E] [expires: 2026-02-17] + ``` + 特に、フィンガープリントが一致することを確認してください。(上記の例では、フィンガープリントは三行目の`C001`で始まる部分です。) - 特に、フィンガープリントが一致することを確認してください。(上記の例では、フィンガープリントは三行目の`C001`で始まる部分です。) +5. 使用しているオペレーティングシステムのバージョンに対応する適切なRippleリポジトリを追加します。 -4. 使用しているオペレーティングシステムのバージョンに対応する適切なRippleリポジトリを追加します。 + ``` + echo "deb [signed-by=/usr/local/share/keyrings/ripple-key.gpg] https://repos.ripple.com/repos/rippled-deb focal stable" | \ + sudo tee -a /etc/apt/sources.list.d/ripple.list + ``` - ``` - echo "deb [signed-by=/usr/local/share/keyrings/ripple-key.gpg] https://repos.ripple.com/repos/rippled-deb focal stable" | \ - sudo tee -a /etc/apt/sources.list.d/ripple.list - ``` + 上記の例は、**Ubuntu 20.04 Focal Fossa**向けのものです。 - 上記の例は、**Ubuntu 20.04 Focal Fossa**向けのものです。 +6. Rippleリポジトリを取得します。 -5. Rippleリポジトリを取得します。 + ``` + sudo apt -y update + ``` - ``` - sudo apt -y update - ``` +7. Clioソフトウェアパッケージをインストールします。オプションは2つあります。 + - 同じマシン上で`rippled`を実行するには、両方のサーバをセットアップする`clio`パッケージをインストールしてください: -6. Clioソフトウェアパッケージをインストールします。オプションは2つあります。 + ``` + sudo apt -y install clio + ``` - - 同じマシン上で`rippled`を実行するには、両方のサーバをセットアップする`clio`パッケージをインストールしてください: + - Clio を`rippled`とは別のマシンで実行するには、Clioのみをセットアップする`clio-server`パッケージをインストールしてください: + + ``` + sudo apt -y install clio-server + ``` + +8. 別のマシンで`rippled`を実行している場合は、Clioの設定ファイルを修正して、そちらを指すようにします。`clio`パッケージを使って同じマシンに両方をインストールした場合は、この手順を省略できます。 + 1. Clioサーバの設定ファイルを編集して`rippled`サーバの接続情報を変更します。パッケージはこのファイルを`/opt/clio/etc/config.json`にインストールします。 + + ``` + "etl_sources": + [ + { + "ip":"127.0.0.1", + "ws_port":"6006", + "grpc_port":"50051" + } + ] + ``` + + 以下の情報が含まれます。 + - `rippled`サーバのIPアドレス + - `rippled`が暗号化されていないWebSocket接続を受け付けるポート番号 + - `rippled`がgRPCリクエストを受け付けるポート番号 + + {% admonition type="info" name="注記" %}`etl_sources`セクションに項目を追加することで、複数の`rippled`サーバをデータソースとして使用することができます。そうすると、Clioはリスト内のすべてのサーバでリクエストを負荷分散し、少なくとも`rippled`サーバの一つが同期している限り、ネットワークに追いつくことができます。{% /admonition %} + + [設定ファイル例](https://github.com/XRPLF/clio/blob/develop/example-config.json)は、ローカルのループバックネットワーク(127.0.0.1)上で動作している`rippled`サーバに、ポート6006のWebSocket(WS)とポート50051のgRPCでアクセスします。 + + 2. Clioサーバが接続できるように`rippled`サーバの設定ファイルを更新します。パッケージはこのファイルを`/etc/opt/ripple/rippled.cfg`にインストールします。 + - 暗号化されていないWebSocket接続を受け付けるポートを開きます。 ``` - sudo apt -y install clio + [port_ws_public] + port = 6005 + ip = 0.0.0.0 + protocol = ws ``` - - Clio を`rippled`とは別のマシンで実行するには、Clioのみをセットアップする`clio-server`パッケージをインストールしてください: + - gRPCリクエストを処理するポートを開き、`secure_gateway`項目にClioサーバのIPを指定します。 ``` - sudo apt -y install clio-server + [port_grpc] + port = 50051 + ip = 0.0.0.0 + secure_gateway = 127.0.0.1 ``` -7. 別のマシンで`rippled`を実行している場合は、Clioの設定ファイルを修正して、そちらを指すようにします。`clio`パッケージを使って同じマシンに両方をインストールした場合は、この手順を省略できます。 + {% admonition type="success" name="ヒント" %}もし`rippled`と同じマシンでClioを実行していない場合は、サンプルの`secure_gateway`を変更して、ClioサーバのIPアドレスを使用してください。{% /admonition %} +9. Clioのsystemdサービスを有効にして起動します。 + ``` + sudo systemctl enable clio + ``` - 1. Clioサーバの設定ファイルを編集して`rippled`サーバの接続情報を変更します。パッケージはこのファイルを`/opt/clio/etc/config.json`にインストールします。 - - ``` - "etl_sources": - [ - { - "ip":"127.0.0.1", - "ws_port":"6006", - "grpc_port":"50051" - } - ] - ``` - - 以下の情報が含まれます。 - - - `rippled`サーバのIPアドレス - - `rippled`が暗号化されていないWebSocket接続を受け付けるポート番号 - - `rippled`がgRPCリクエストを受け付けるポート番号 - - {% admonition type="info" name="注記" %}`etl_sources`セクションに項目を追加することで、複数の`rippled`サーバをデータソースとして使用することができます。そうすると、Clioはリスト内のすべてのサーバでリクエストを負荷分散し、少なくとも`rippled`サーバの一つが同期している限り、ネットワークに追いつくことができます。{% /admonition %} - - [設定ファイル例](https://github.com/XRPLF/clio/blob/develop/example-config.json)は、ローカルのループバックネットワーク(127.0.0.1)上で動作している`rippled`サーバに、ポート6006のWebSocket(WS)とポート50051のgRPCでアクセスします。 - - 2. Clioサーバが接続できるように`rippled`サーバの設定ファイルを更新します。パッケージはこのファイルを`/etc/opt/ripple/rippled.cfg`にインストールします。 - - * 暗号化されていないWebSocket接続を受け付けるポートを開きます。 - - ``` - [port_ws_public] - port = 6005 - ip = 0.0.0.0 - protocol = ws - ``` - - * gRPCリクエストを処理するポートを開き、`secure_gateway`項目にClioサーバのIPを指定します。 - - ``` - [port_grpc] - port = 50051 - ip = 0.0.0.0 - secure_gateway = 127.0.0.1 - ``` - - {% admonition type="success" name="ヒント" %}もし`rippled`と同じマシンでClioを実行していない場合は、サンプルの`secure_gateway`を変更して、ClioサーバのIPアドレスを使用してください。{% /admonition %} - -8. Clioのsystemdサービスを有効にして起動します。 - - ``` - sudo systemctl enable clio - ``` - -9. `rippled`サーバとClioサーバを起動します。 +10. `rippled`サーバとClioサーバを起動します。 ``` sudo systemctl start rippled @@ -177,11 +168,7 @@ Clioをインストールする前に、以下の条件を満たしている必 新しいデータベースで始める場合、Clioは完全なレジャーをダウンロードする必要があります。これには時間がかかります。両方のサーバを初めて起動する場合、Clioはレジャーを抽出する前に`rippled`の同期を待つため、さらに時間がかかることがあります。 - - - - ## 関連項目 - **コンセプト:** - - [Clioサーバ](../../concepts/networks-and-servers/the-clio-server.md) + - [Clioサーバ](../../concepts/networks-and-servers/the-clio-server.md) diff --git a/@l10n/ja/docs/infrastructure/installation/install-rippled-on-rhel.md b/@l10n/ja/docs/infrastructure/installation/install-rippled-on-rhel.md index a9c08bea98..859624e3e9 100644 --- a/@l10n/ja/docs/infrastructure/installation/install-rippled-on-rhel.md +++ b/@l10n/ja/docs/infrastructure/installation/install-rippled-on-rhel.md @@ -2,88 +2,85 @@ html: install-rippled-on-centos-rhel-with-yum.html parent: install-rippled.html seo: - description: プリコンパイル済みのrippledバイナリーをCentOSまたはRed Hat Enterprise Linuxにインストールします。 + description: プリコンパイル済みのrippledバイナリーをCentOSまたはRed Hat Enterprise Linuxにインストールします。 labels: - コアサーバ --- + # yumを使用したCentOS/Red Hatへのインストール このページでは、Rippleの[yum](https://en.wikipedia.org/wiki/Yellowdog_Updater,_Modified)リポジトリを使用して、**CentOS 7**または**Red Hat Enterprise Linux 7**に、`rippled`の安定した最新バージョンをインストールする場合の推奨手順を説明します。 以下の手順では、Rippleによってコンパイルされたバイナリーをインストールします。 - ## 前提条件 `rippled`をインストールする前に、[システム要件](system-requirements.md)を満たす必要があります。 - ## インストール手順 1. Ripple RPMリポジトリをインストールします。 - ``` - $ cat << REPOFILE | sudo tee /etc/yum.repos.d/ripple.repo - [ripple-stable] - name=XRP Ledger Packages - baseurl=https://repos.ripple.com/repos/rippled-rpm/stable/ - enabled=1 - gpgcheck=0 - gpgkey=https://repos.ripple.com/repos/rippled-rpm/stable/repodata/repomd.xml.key - repo_gpgcheck=1 - REPOFILE - ``` + ``` + $ cat << REPOFILE | sudo tee /etc/yum.repos.d/ripple.repo + [ripple-stable] + name=XRP Ledger Packages + baseurl=https://repos.ripple.com/repos/rippled-rpm/stable/ + enabled=1 + gpgcheck=0 + gpgkey=https://repos.ripple.com/repos/rippled-rpm/stable/repodata/repomd.xml.key + repo_gpgcheck=1 + REPOFILE + ``` 2. 最新のrepoのアップデートを取得します。 - ``` - $ sudo yum -y update - ``` + ``` + $ sudo yum -y update + ``` 3. 新しい`rippled`パッケージをインストールします。 - ``` - $ sudo yum install rippled - ``` + ``` + $ sudo yum install rippled + ``` バージョン1.3.1では、構成ファイル(`rippled.cfg`および`validators.txt`)を変更する必要はありません。このアップデート手順では、既存の構成ファイルが現在のまま残ります。 4. systemdユニットファイルを再度読み込みます。 - ``` - $ sudo systemctl daemon-reload - ``` + ``` + $ sudo systemctl daemon-reload + ``` 5. 起動時に開始するように、`rippled`サービスを設定します。 - ``` - $ sudo systemctl enable rippled.service - ``` + ``` + $ sudo systemctl enable rippled.service + ``` 6. `rippled`サービスを開始します。 - ``` - $ sudo systemctl start rippled.service - ``` - + ``` + $ sudo systemctl start rippled.service + ``` ## 次のステップ {% partial file="/@l10n/ja/docs/_snippets/post-rippled-install.md" /%} - ## 関連項目 - **コンセプト:** - - [`rippled`サーバ](../../concepts/networks-and-servers/index.md) - - [コンセンサスについて](../../concepts/consensus-protocol/index.md) + - [`rippled`サーバ](../../concepts/networks-and-servers/index.md) + - [コンセンサスについて](../../concepts/consensus-protocol/index.md) - **チュートリアル:** - - [rippledの構成](../configuration/index.md) - - [rippledのトラブルシューティング](../troubleshooting/index.md) - - [rippled APIの使用開始](../../tutorials/http-websocket-apis/build-apps/get-started.md) + - [rippledの構成](../configuration/index.md) + - [rippledのトラブルシューティング](../troubleshooting/index.md) + - [rippled APIの使用開始](../../tutorials/http-websocket-apis/build-apps/get-started.md) - **リファレンス:** - - [rippled APIリファレンス](../../references/http-websocket-apis/index.md) - - [`rippled`コマンドラインの使用](../commandline-usage.md) - - [server_infoメソッド][] + - [rippled APIリファレンス](../../references/http-websocket-apis/index.md) + - [`rippled`コマンドラインの使用](../commandline-usage.md) + - [server_infoメソッド][] {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/infrastructure/installation/install-rippled-on-ubuntu.md b/@l10n/ja/docs/infrastructure/installation/install-rippled-on-ubuntu.md index f4cf010dbf..9df435d897 100644 --- a/@l10n/ja/docs/infrastructure/installation/install-rippled-on-ubuntu.md +++ b/@l10n/ja/docs/infrastructure/installation/install-rippled-on-ubuntu.md @@ -2,78 +2,75 @@ html: install-rippled-on-ubuntu.html parent: install-rippled.html seo: - description: プリコンパイル済みのrippledバイナリーをUbuntu Linuxにインストールします。 + description: プリコンパイル済みのrippledバイナリーをUbuntu Linuxにインストールします。 labels: - コアサーバ --- + # UbuntuまたはDebian Linuxへのインストール このページでは、[`apt`](https://ubuntu.com/server/docs)ユーティリティを使用して、**Ubuntu Linux 18.04以降**または**Debian 10** に`rippled`の安定した最新バージョンをインストールする場合の推奨手順を説明します。 以下の手順では、Rippleによってコンパイルされたバイナリーをインストールします。 - ## 前提条件 `rippled`をインストールする前に、[システム要件](system-requirements.md)を満たす必要があります。 - ## インストール手順 1. リポジトリを更新します。 - ``` - sudo apt -y update - ``` + ``` + sudo apt -y update + ``` 2. ユーティリティをインストールします。 - ``` - sudo apt -y install apt-transport-https ca-certificates wget gnupg - ``` + ``` + sudo apt -y install apt-transport-https ca-certificates wget gnupg + ``` 3. Rippleのパッケージ署名用のGPGキーを、信頼できるキーのリストに追加します。 - ``` - sudo mkdir /usr/local/share/keyrings/ - wget -q -O - "https://repos.ripple.com/repos/api/gpg/key/public" | gpg --dearmor > ripple-key.gpg - sudo mv ripple-key.gpg /usr/local/share/keyrings - ``` + ``` + sudo mkdir /usr/local/share/keyrings/ + wget -q -O - "https://repos.ripple.com/repos/api/gpg/key/public" | gpg --dearmor > ripple-key.gpg + sudo mv ripple-key.gpg /usr/local/share/keyrings + ``` 4. 追加したキーのフィンガープリントを確認します。 - ``` - gpg /usr/local/share/keyrings/ripple-key.gpg - ``` + ``` + gpg /usr/local/share/keyrings/ripple-key.gpg + ``` 出力に、次のようなRipple用のエントリが含まれていることを確認してください。 - ``` - gpg: WARNING: no command supplied. Trying to guess what you mean ... - pub rsa3072 2019-02-14 [SC] [expires: 2026-02-17] - C0010EC205B35A3310DC90DE395F97FFCCAFD9A2 - uid TechOps Team at Ripple - sub rsa3072 2019-02-14 [E] [expires: 2026-02-17] - ``` + ``` + gpg: WARNING: no command supplied. Trying to guess what you mean ... + pub rsa3072 2019-02-14 [SC] [expires: 2026-02-17] + C0010EC205B35A3310DC90DE395F97FFCCAFD9A2 + uid TechOps Team at Ripple + sub rsa3072 2019-02-14 [E] [expires: 2026-02-17] + ``` 特に、フィンガープリントが一致することを確認してください。(上記の例では、フィンガープリントは三行目の`C001`で始まる部分です。) 5. 使用しているオペレーティングシステムのバージョンに対応する適切なRippleリポジトリを追加します。 - ``` - echo "deb [signed-by=/usr/local/share/keyrings/ripple-key.gpg] https://repos.ripple.com/repos/rippled-deb focal stable" | \ - sudo tee -a /etc/apt/sources.list.d/ripple.list - ``` + ``` + echo "deb [signed-by=/usr/local/share/keyrings/ripple-key.gpg] https://repos.ripple.com/repos/rippled-deb focal stable" | \ + sudo tee -a /etc/apt/sources.list.d/ripple.list + ``` 上記の例は、**Ubuntu 20.04 Focal Fossa**向けのものです。。その他のオペレーティングシステムについては、`focal`という単語を次のいずれかに置き換えます。 - - - `bionic` for **Ubuntu 18.04 Bionic Beaver** - - `buster` for **Debian 10 Buster** - - `bullseye` for **Debian 11 Bullseye** - - `jammy` for **Ubuntu 22.04 Jammy Jellyfish** + - `bionic` for **Ubuntu 18.04 Bionic Beaver** + - `buster` for **Debian 10 Buster** + - `bullseye` for **Debian 11 Bullseye** + - `jammy` for **Ubuntu 22.04 Jammy Jellyfish** `rippled`の開発バージョンまたはプレリリースバージョンにアクセスするには、`stable`ではなく次のいずれかを使用します。 - - `unstable` - プレインストールビルド([`release`ブランチ](https://github.com/XRPLF/rippled/tree/release)) - `nightly` - 実験/開発ビルド([`develop`ブランチ](https://github.com/XRPLF/rippled/tree/develop)) @@ -81,46 +78,44 @@ labels: 6. Rippleリポジトリを取得します。 - ``` - sudo apt -y update - ``` + ``` + sudo apt -y update + ``` 7. `rippled`ソフトウェアパッケージをインストールします。 - ``` - sudo apt -y install rippled - ``` + ``` + sudo apt -y install rippled + ``` 8. `rippled`サービスのステータスをチェックします。 - ``` - systemctl status rippled.service - ``` + ``` + systemctl status rippled.service + ``` `rippled`サービスが自動的に開始します。開始しない場合は、手動で開始できます。 - ``` - sudo systemctl start rippled.service - ``` + ``` + sudo systemctl start rippled.service + ``` ## 次のステップ {% partial file="/@l10n/ja/docs/_snippets/post-rippled-install.md" /%} - - ## 関連項目 - **コンセプト:** - - [`rippled`サーバ](../../concepts/networks-and-servers/index.md) - - [コンセンサスについて](../../concepts/consensus-protocol/index.md) + - [`rippled`サーバ](../../concepts/networks-and-servers/index.md) + - [コンセンサスについて](../../concepts/consensus-protocol/index.md) - **チュートリアル:** - - [rippledの構成](../configuration/index.md) - - [rippledのトラブルシューティング](../troubleshooting/index.md) - - [rippled APIの使用開始](../../tutorials/http-websocket-apis/get-started.md) + - [rippledの構成](../configuration/index.md) + - [rippledのトラブルシューティング](../troubleshooting/index.md) + - [rippled APIの使用開始](../../tutorials/http-websocket-apis/get-started.md) - **リファレンス:** - - [rippled APIリファレンス](../../references/http-websocket-apis/index.md) - - [`rippled`コマンドラインの使用](../commandline-usage.md) - - [server_infoメソッド][] + - [rippled APIリファレンス](../../references/http-websocket-apis/index.md) + - [`rippled`コマンドラインの使用](../commandline-usage.md) + - [server_infoメソッド][] {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/infrastructure/installation/rippled-1-3-migration-instructions.md b/@l10n/ja/docs/infrastructure/installation/rippled-1-3-migration-instructions.md index 6104d9a7e9..37d42cbe92 100644 --- a/@l10n/ja/docs/infrastructure/installation/rippled-1-3-migration-instructions.md +++ b/@l10n/ja/docs/infrastructure/installation/rippled-1-3-migration-instructions.md @@ -2,8 +2,9 @@ html: rippled-1-3-migration-instructions.html parent: install-rippled.html seo: - description: rippled 1.2.4以前のバージョンからrippled v1.3以降に移行するプロセスについて説明します。 + description: rippled 1.2.4以前のバージョンからrippled v1.3以降に移行するプロセスについて説明します。 --- + # rippled v1.3.xへの移行手順 このドキュメントでは、`rippled` 1.2.4以前のバージョンから`rippled` v1.3以降に移行するプロセスについて説明します。`rippled`のインストールプロセスがバージョン1.3では変更されたため、この移行プロセスは必須です。 @@ -15,63 +16,60 @@ seo: その他のプラットフォームについては、ソースからコンパイルするためのアップデート手順をご覧ください。([Ubuntu](build-on-linux-mac-windows.md)、[macOS](build-on-linux-mac-windows.md)、または[Windows](https://github.com/XRPLF/rippled/tree/develop/Builds/VisualStudio2017)) - ## CentOSまたはRed Hat Enterprise Linux(RHEL)での移行 Rippleの公式RPMリポジトリとそれを使用するための手順が変更されました。[自動更新](update-rippled-automatically-on-linux.md)を有効にしている場合は、システムで移行が自動的に実行されます。以前のリポジトリから新しいリポジトリに手動で移行するには、以下の手順を実行します。 1. `rippled`サーバを停止します。 - ``` - $ sudo systemctl stop rippled.service - ``` + ``` + $ sudo systemctl stop rippled.service + ``` 2. 以前のRippleリポジトリパッケージを削除します。 - ``` - $ sudo rpm -e ripple-repo - ``` + ``` + $ sudo rpm -e ripple-repo + ``` `rippled-repo`パッケージは、現在**廃止予定**です。このパッケージはバージョン1.3.1に対応するために、最後にもう一度だけ更新されました。今後は、リポジトリに変更があれば、`ripple.repo`ファイルに手動で変更を加える必要があります。 3. Rippleの新しいyumリポジトリを追加します。 - ``` - $ cat << REPOFILE | sudo tee /etc/yum.repos.d/ripple.repo - [ripple-stable] - name=XRP Ledger Packages - baseurl=https://repos.ripple.com/repos/rippled-rpm/stable/ - enabled=1 - gpgcheck=0 - gpgkey=https://repos.ripple.com/repos/rippled-rpm/stable/repodata/repomd.xml.key - repo_gpgcheck=1 - REPOFILE - ``` + ``` + $ cat << REPOFILE | sudo tee /etc/yum.repos.d/ripple.repo + [ripple-stable] + name=XRP Ledger Packages + baseurl=https://repos.ripple.com/repos/rippled-rpm/stable/ + enabled=1 + gpgcheck=0 + gpgkey=https://repos.ripple.com/repos/rippled-rpm/stable/repodata/repomd.xml.key + repo_gpgcheck=1 + REPOFILE + ``` 4. 新しい`rippled`パッケージをインストールします。 - ``` - $ sudo yum install rippled - ``` + ``` + $ sudo yum install rippled + ``` バージョン1.3.1では、構成ファイル(`rippled.cfg`および`validators.txt`)を変更する必要はありません。このアップデート手順では、既存の構成ファイルが現在のまま残ります。 5. systemdユニットファイルを再度読み込みます。 - ``` - $ sudo systemctl daemon-reload - ``` + ``` + $ sudo systemctl daemon-reload + ``` 6. `rippled`サービスを開始します。 - ``` - $ sudo systemctl start rippled.service - ``` - + ``` + $ sudo systemctl start rippled.service + ``` {% admonition type="danger" name="警告" %}[自動更新](update-rippled-automatically-on-linux.md)を使用している場合、この移行プロセスを実行した後も自動更新が続きます。ただし、**`ripple-repo`パッケージは、現在は廃止予定**です。そのため、今後は、Rippleのリポジトリへの変更があれば、各自がrepoファイルを手動で更新する必要があります。{% /admonition %} - ## Ubuntu Linuxでの移行 バージョン1.3より前では、Ubuntu Linuxに`rippled`をインストールする方法として、Alienを使用してRPMパッケージをインストールする方法がサポートされていました。`rippled`v1.3.1から、RippleはUbuntuおよびDebian Linux向けのネイティブパッケージを提供しており、これが推奨のインストール方法となります。すでにRPMパッケージをインストールしている場合は、[インストール手順](install-rippled-on-ubuntu.md)を実行して、パッケージをアップグレードし、ネイティブAPT(`.deb`)パッケージに切り替えます。 @@ -82,29 +80,29 @@ Rippleの公式RPMリポジトリとそれを使用するための手順が変 1. systemdユニットファイルを再度読み込みます。 - ``` - $ sudo systemctl daemon-reload - ``` + ``` + $ sudo systemctl daemon-reload + ``` 2. `rippled`サービスを再起動します。 - ``` - $ sudo systemctl restart rippled.service - ``` + ``` + $ sudo systemctl restart rippled.service + ``` 他のパッケージ用にAlienを使用する必要がなくなった場合は、必要に応じて、次の手順でAlienとその依存関係をアンインストールできます。 1. Alienをアンインストールします。 - ``` - $ sudo apt -y remove alien - ``` + ``` + $ sudo apt -y remove alien + ``` 2. 使用していない依存関係をアンインストールします。 - ``` - $ sudo apt -y autoremove - ``` + ``` + $ sudo apt -y autoremove + ``` ### 自動更新 @@ -121,8 +119,8 @@ Rippleの公式RPMリポジトリとそれを使用するための手順が変 - [rippledのトラブルシューティング](../troubleshooting/index.md) - [rippled APIの使用開始](../../tutorials/http-websocket-apis/get-started.md) - **リファレンス:** - - [rippled APIリファレンス](../../references/http-websocket-apis/index.md) - - [`rippled`コマンドラインの使用](../commandline-usage.md) - - [server_infoメソッド][] + - [rippled APIリファレンス](../../references/http-websocket-apis/index.md) + - [`rippled`コマンドラインの使用](../commandline-usage.md) + - [server_infoメソッド][] {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/infrastructure/installation/system-requirements.md b/@l10n/ja/docs/infrastructure/installation/system-requirements.md index abe13ec74f..69a27a4d90 100644 --- a/@l10n/ja/docs/infrastructure/installation/system-requirements.md +++ b/@l10n/ja/docs/infrastructure/installation/system-requirements.md @@ -2,10 +2,11 @@ html: system-requirements.html parent: install-rippled.html seo: - description: rippledのハードウェアやソフトウェアのシステム要件 + description: rippledのハードウェアやソフトウェアのシステム要件 labels: - コアサーバ --- + # システム要件 ## 推奨される仕様 @@ -31,28 +32,24 @@ labels: - ディスク: SSD / NVMe (バーストや ピーク時ではなく、10,000 IOPSの維持が望ましい)。データベースパーティションとして最低50GB。Amazon Elastic Block Store(AWS EBS)はレイテンシが高すぎて確実に同期できないので使用しないでください。 - RAM: 16GB以上 - - 作業負荷によっては、Amazon EC2の`i3.2xlarge`のVMサイズが適切な場合があります。高速のネットワーク接続が望ましいです。サーバのクライアント処理負荷が増加すると、必要なリソースも増加します。 - ## システム時刻 `rippled`サーバは、正確な時刻が維持されていることを前提としています。`ntpd`や`chrony`などのデーモンで、ネットワークタイムプロトコル(NTP)を使用してシステムの時刻を同期することを推奨します。 - ## 関連項目 - **コンセプト:** - - [`rippled`サーバ](../../concepts/networks-and-servers/index.md) - - [コンセンサスについて](../../concepts/consensus-protocol/index.md) + - [`rippled`サーバ](../../concepts/networks-and-servers/index.md) + - [コンセンサスについて](../../concepts/consensus-protocol/index.md) - **チュートリアル:** - - [容量の計画](capacity-planning.md) - 本番環境向けの推奨仕様および計画についての詳細情報 - - [`rippled`のインストール](index.md) - - [rippledのトラブルシューティング](../troubleshooting/index.md) + - [容量の計画](capacity-planning.md) - 本番環境向けの推奨仕様および計画についての詳細情報 + - [`rippled`のインストール](index.md) + - [rippledのトラブルシューティング](../troubleshooting/index.md) - **リファレンス:** - - [rippled APIリファレンス](../../references/http-websocket-apis/index.md) - - [`rippled`コマンドラインの使用](../commandline-usage.md) - - [server_infoメソッド][] + - [rippled APIリファレンス](../../references/http-websocket-apis/index.md) + - [`rippled`コマンドラインの使用](../commandline-usage.md) + - [server_infoメソッド][] {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/infrastructure/installation/update-rippled-automatically-on-linux.md b/@l10n/ja/docs/infrastructure/installation/update-rippled-automatically-on-linux.md index 19e3144e59..49225e826c 100644 --- a/@l10n/ja/docs/infrastructure/installation/update-rippled-automatically-on-linux.md +++ b/@l10n/ja/docs/infrastructure/installation/update-rippled-automatically-on-linux.md @@ -2,11 +2,12 @@ html: update-rippled-automatically-on-linux.html parent: install-rippled.html seo: - description: Linuxでrippledの自動更新を設定します。 + description: Linuxでrippledの自動更新を設定します。 labels: - コアサーバ - セキュリティ --- + # Linuxでの自動更新 Linuxでは、`rippled`が1回限りの`cron`構成を使用して最新バージョンに自動的にアップグレードされるように設定できます。可能であれば自動更新を有効にしておくことが推奨されます。 @@ -19,34 +20,31 @@ Linuxでは、`rippled`が1回限りの`cron`構成を使用して最新バー 2. `cron.d`フォルダーに、`/opt/ripple/etc/update-rippled-cron`構成ファイルへのsymlinkを作成します。 - ``` - $ sudo ln -s /opt/ripple/etc/update-rippled-cron /etc/cron.d/ - ``` + ``` + $ sudo ln -s /opt/ripple/etc/update-rippled-cron /etc/cron.d/ + ``` このcron構成は、インストール済みの`rippled`パッケージを新版のリリース後1時間以内に更新するためのスクリプトを実行します。同時に更新を実行しているすべてのサーバが停止する可能性を抑えるため、このスクリプトは`rippled`サービスを再起動しません。手動再起動しますまで、以前のバージョンを実行し続けます。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.8.1" %}新規: rippled 1.8.1{% /badge %} 3. 新しいリリースが公開された後、`rippled`サービスを手動再起動する。 - ``` - sudo systemctl restart rippled.service - ``` - - + ``` + sudo systemctl restart rippled.service + ``` {% admonition type="warning" name="注意" %}将来的には、Rippleのリポジトリが変更された場合に、更新を検索するスクリプトが実行されるURLの手動更新が必要となることがあります。必要な変更についての最新情報は、[XRP Ledgerブログ](/blog/)または[ripple-serverメーリングリスト](https://groups.google.com/forum/#!forum/ripple-server)でお知らせします。{% /admonition %} - ## 関連項目 - **コンセプト:** - - [`rippled`サーバ](../../concepts/networks-and-servers/index.md) - - [コンセンサスについて](../../concepts/consensus-protocol/index.md) + - [`rippled`サーバ](../../concepts/networks-and-servers/index.md) + - [コンセンサスについて](../../concepts/consensus-protocol/index.md) - **チュートリアル:** - - [容量の計画](capacity-planning.md) - - [rippledのトラブルシューティング](../troubleshooting/index.md) + - [容量の計画](capacity-planning.md) + - [rippledのトラブルシューティング](../troubleshooting/index.md) - **リファレンス:** - - [rippled APIリファレンス](../../references/http-websocket-apis/index.md) - - [`rippled`コマンドラインの使用](../commandline-usage.md) - - [server_infoメソッド][] + - [rippled APIリファレンス](../../references/http-websocket-apis/index.md) + - [`rippled`コマンドラインの使用](../commandline-usage.md) + - [server_infoメソッド][] {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/infrastructure/installation/update-rippled-manually-on-rhel.md b/@l10n/ja/docs/infrastructure/installation/update-rippled-manually-on-rhel.md index e38d05234e..76857a0b16 100644 --- a/@l10n/ja/docs/infrastructure/installation/update-rippled-manually-on-rhel.md +++ b/@l10n/ja/docs/infrastructure/installation/update-rippled-manually-on-rhel.md @@ -2,11 +2,12 @@ html: update-rippled-manually-on-centos-rhel.html parent: install-rippled.html seo: - description: CentOSまたはRed Hat Enterprise Linuxでrippledを手動更新します。 + description: CentOSまたはRed Hat Enterprise Linuxでrippledを手動更新します。 labels: - コアサーバ - セキュリティ --- + # CentOS/Red Hatでの手動更新 このページでは、CentOSまたはRed Hat Enterprise Linuxで最新リリースの`rippled`に手動で更新する手順を説明します。可能であれば手動更新ではなく[自動更新](update-rippled-automatically-on-linux.md)を設定することが推奨されます。 @@ -19,48 +20,47 @@ labels: 1. `rippled` 1.7.0にその以前のバージョンから更新する場合は、リポジトリを再度追加して、Rippleの更新されたGPGキーを取得します。それ以外の場合は、この手順をスキップしてください。 - ``` - cat << REPOFILE | sudo tee /etc/yum.repos.d/ripple.repo - [ripple-stable] - name=XRP Ledger Packages - enabled=1 - gpgcheck=0 - repo_gpgcheck=1 - baseurl=https://repos.ripple.com/repos/rippled-rpm/stable - gpgkey=https://repos.ripple.com/repos/rippled-rpm/stable/repodata/repomd.xml.key - REPOFILE - ``` + ``` + cat << REPOFILE | sudo tee /etc/yum.repos.d/ripple.repo + [ripple-stable] + name=XRP Ledger Packages + enabled=1 + gpgcheck=0 + repo_gpgcheck=1 + baseurl=https://repos.ripple.com/repos/rippled-rpm/stable + gpgkey=https://repos.ripple.com/repos/rippled-rpm/stable/repodata/repomd.xml.key + REPOFILE + ``` 1. 最新の`rippled`パッケージをダウンロードしてインストールします。 - ``` - sudo yum update rippled - ``` + ``` + sudo yum update rippled + ``` -2. `systemd`ユニットファイルを再度読み込みます。 +1. `systemd`ユニットファイルを再度読み込みます。 - ``` - sudo systemctl daemon-reload - ``` + ``` + sudo systemctl daemon-reload + ``` -3. `rippled`サービスを再起動します。 - - ``` - sudo systemctl restart rippled.service - ``` +1. `rippled`サービスを再起動します。 + ``` + sudo systemctl restart rippled.service + ``` ## 関連項目 - **コンセプト:** - - [`rippled`サーバ](../../concepts/networks-and-servers/index.md) - - [コンセンサスについて](../../concepts/consensus-protocol/index.md) + - [`rippled`サーバ](../../concepts/networks-and-servers/index.md) + - [コンセンサスについて](../../concepts/consensus-protocol/index.md) - **チュートリアル:** - - [`rippled` v1.3.xへの移行手順](rippled-1-3-migration-instructions.md) - - [rippledのトラブルシューティング](../troubleshooting/index.md) + - [`rippled` v1.3.xへの移行手順](rippled-1-3-migration-instructions.md) + - [rippledのトラブルシューティング](../troubleshooting/index.md) - **リファレンス:** - - [rippled APIリファレンス](../../references/http-websocket-apis/index.md) - - [`rippled`コマンドラインの使用](../commandline-usage.md) - - [server_infoメソッド][] + - [rippled APIリファレンス](../../references/http-websocket-apis/index.md) + - [`rippled`コマンドラインの使用](../commandline-usage.md) + - [server_infoメソッド][] {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/infrastructure/installation/update-rippled-manually-on-ubuntu.md b/@l10n/ja/docs/infrastructure/installation/update-rippled-manually-on-ubuntu.md index ba5c68a0f6..097334537b 100644 --- a/@l10n/ja/docs/infrastructure/installation/update-rippled-manually-on-ubuntu.md +++ b/@l10n/ja/docs/infrastructure/installation/update-rippled-manually-on-ubuntu.md @@ -2,11 +2,12 @@ html: update-rippled-manually-on-ubuntu.html parent: install-rippled.html seo: - description: Ubuntu Linuxでrippledを手動更新します。 + description: Ubuntu Linuxでrippledを手動更新します。 labels: - コアサーバ - セキュリティ --- + # UbuntuまたはDebianでの手動更新 このページでは、Ubuntu Linuxで最新リリースの`rippled`に手動で更新する手順を説明します。以下の手順は、[`rippled`がすでにネイティブパッケージを使用してインストール](install-rippled-on-ubuntu.md)されていることを前提としています。可能であれば手動更新ではなく[自動更新](update-rippled-automatically-on-linux.md)を設定することが推奨されます。 @@ -19,40 +20,39 @@ labels: 1. リポジトリを更新します。 - ``` - $ sudo apt -y update - ``` + ``` + $ sudo apt -y update + ``` 2. `rippled`パッケージをアップグレードします。 - ``` - $ sudo apt -y upgrade rippled - ``` + ``` + $ sudo apt -y upgrade rippled + ``` 3. `systemd`ユニットファイルを再度読み込みます。 - ``` - $ sudo systemctl daemon-reload - ``` + ``` + $ sudo systemctl daemon-reload + ``` 4. `rippled`サービスを再起動します。 - ``` - $ sudo service rippled restart - ``` - + ``` + $ sudo service rippled restart + ``` ## 関連項目 - **コンセプト:** - - [`rippled`サーバ](../../concepts/networks-and-servers/index.md) - - [コンセンサスについて](../../concepts/consensus-protocol/index.md) + - [`rippled`サーバ](../../concepts/networks-and-servers/index.md) + - [コンセンサスについて](../../concepts/consensus-protocol/index.md) - **チュートリアル:** - - [`rippled` v1.3.xへの移行手順](rippled-1-3-migration-instructions.md) - - [rippledのトラブルシューティング](../troubleshooting/index.md) + - [`rippled` v1.3.xへの移行手順](rippled-1-3-migration-instructions.md) + - [rippledのトラブルシューティング](../troubleshooting/index.md) - **リファレンス:** - - [rippled APIリファレンス](../../references/http-websocket-apis/index.md) - - [`rippled`コマンドラインの使用](../commandline-usage.md) - - [server_infoメソッド][] + - [rippled APIリファレンス](../../references/http-websocket-apis/index.md) + - [`rippled`コマンドラインの使用](../commandline-usage.md) + - [server_infoメソッド][] {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/infrastructure/testing-and-auditing/advance-the-ledger-in-stand-alone-mode.md b/@l10n/ja/docs/infrastructure/testing-and-auditing/advance-the-ledger-in-stand-alone-mode.md index 4748862d7c..e3e0b6ebbd 100644 --- a/@l10n/ja/docs/infrastructure/testing-and-auditing/advance-the-ledger-in-stand-alone-mode.md +++ b/@l10n/ja/docs/infrastructure/testing-and-auditing/advance-the-ledger-in-stand-alone-mode.md @@ -2,10 +2,11 @@ html: advance-the-ledger-in-stand-alone-mode.html parent: use-stand-alone-mode.html seo: - description: レジャーを手動で閉鎖して、スタンドアロンモードでの処理を進めます。 + description: レジャーを手動で閉鎖して、スタンドアロンモードでの処理を進めます。 labels: - コアサーバ --- + # スタンドアロンモードでレジャーを進める スタンドアロンモードでは`rippled`はピアツーピアネットワークの他のメンバーと通信せず、またコンセンサスプロセスに参加しません。このため、[ledger_acceptメソッド][]を使用してレジャーインデックスを手動で進める必要があります。 diff --git a/@l10n/ja/docs/infrastructure/testing-and-auditing/index.md b/@l10n/ja/docs/infrastructure/testing-and-auditing/index.md index 06483edd95..b65bcd3a6f 100644 --- a/@l10n/ja/docs/infrastructure/testing-and-auditing/index.md +++ b/@l10n/ja/docs/infrastructure/testing-and-auditing/index.md @@ -4,11 +4,11 @@ parent: infrastructure.html metadata: indexPage: true seo: - description: 新機能や実験用に、スタンドアロンモードを使用してフルネットワークで機能をテストできます。 + description: 新機能や実験用に、スタンドアロンモードを使用してフルネットワークで機能をテストできます。 --- + # スタンドアロンモードでrippledをテスト 新機能や実験用に、スタンドアロンモードを使用してフルネットワークで機能をテストできます。 - {% child-pages /%} diff --git a/@l10n/ja/docs/infrastructure/testing-and-auditing/load-a-saved-ledger-in-stand-alone-mode.md b/@l10n/ja/docs/infrastructure/testing-and-auditing/load-a-saved-ledger-in-stand-alone-mode.md index 81144fc7ce..ba1516ac47 100644 --- a/@l10n/ja/docs/infrastructure/testing-and-auditing/load-a-saved-ledger-in-stand-alone-mode.md +++ b/@l10n/ja/docs/infrastructure/testing-and-auditing/load-a-saved-ledger-in-stand-alone-mode.md @@ -2,10 +2,11 @@ html: load-a-saved-ledger-in-stand-alone-mode.html parent: use-stand-alone-mode.html seo: - description: 特定の保存済みレジャーからスタンドアロンモードで開始して、トランザクションのテストやリプレイを行います。 + description: 特定の保存済みレジャーからスタンドアロンモードで開始して、トランザクションのテストやリプレイを行います。 labels: - コアサーバ --- + # スタンドアロンモードでの保存済みレジャーの読み込み 以前にディスクに保存していた[履歴レジャーバージョン](../../concepts/ledgers/index.md)を使用して、`rippled`サーバを[スタンドアロンモード](../../concepts/networks-and-servers/rippled-server-modes.md)で起動できます。例えば、以前に`rippled`サーバをXRP Ledgerのピアツーピアネットワーク([本番Mainnet、Testnet、Devnetなど](../../concepts/networks-and-servers/parallel-networks.md))と同期していた場合は、過去にサーバで使用できていた任意のレジャーバージョンを読み込むことができます。 @@ -24,9 +25,9 @@ rippled --conf=/path/to/rippled.cfg [server_infoメソッド][]を使用して、ネットワークに対するサーバの状態を確認します。`server_state`に以下のいずれかの値が示される場合は、サーバは同期しています。 -* `full` -* `proposing` -* `validating` +- `full` +- `proposing` +- `validating` 詳細は、[考えられるサーバの状態](../../references/http-websocket-apis/api-conventions/rippled-server-states.md)をご覧ください。 @@ -73,15 +74,15 @@ rippled ledger_accept --conf=/path/to/rippled.cfg ## 関連項目 - **コンセプト:** - - [`rippled`サーバ](../../concepts/networks-and-servers/index.md) - - [`rippled`サーバのモード](../../concepts/networks-and-servers/rippled-server-modes.md) - - [コンセンサスについて](../../concepts/consensus-protocol/index.md) - - [Amendment](../../concepts/networks-and-servers/amendments.md) + - [`rippled`サーバ](../../concepts/networks-and-servers/index.md) + - [`rippled`サーバのモード](../../concepts/networks-and-servers/rippled-server-modes.md) + - [コンセンサスについて](../../concepts/consensus-protocol/index.md) + - [Amendment](../../concepts/networks-and-servers/amendments.md) - **リファレンス:** - - [ledger_acceptメソッド][] - - [server_infoメソッド][] - - [`rippled`コマンドラインの使用](../commandline-usage.md) + - [ledger_acceptメソッド][] + - [server_infoメソッド][] + - [`rippled`コマンドラインの使用](../commandline-usage.md) - **ユースケース:** - - [XRP Ledgerへのコードの提供](/resources/contribute-code/index.md) + - [XRP Ledgerへのコードの提供](/resources/contribute-code/index.md) {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/infrastructure/testing-and-auditing/run-private-network-with-docker.md b/@l10n/ja/docs/infrastructure/testing-and-auditing/run-private-network-with-docker.md index 8224a821b4..950e5fb745 100644 --- a/@l10n/ja/docs/infrastructure/testing-and-auditing/run-private-network-with-docker.md +++ b/@l10n/ja/docs/infrastructure/testing-and-auditing/run-private-network-with-docker.md @@ -3,7 +3,7 @@ html: private-network-with-docker.html name: プライベートネットワークをDockerで構築する parent: use-stand-alone-mode.html seo: - description: DockerとDocker Composeを使って独自のXRPプライベートレジャーネットワークを構築する方法を紹介します。 + description: DockerとDocker Composeを使って独自のXRPプライベートレジャーネットワークを構築する方法を紹介します。 labels: - コアサーバ --- @@ -28,7 +28,7 @@ labels: 次の図は、これからセットアップするコンテナ型プライベートネットワークの概要を示したものです。 -[{% inline-svg file="/docs/img/xrp-ledger-private-network-docker.svg" /%}](/docs/img/xrp-ledger-private-network-docker.svg "図1:3つのノードのコンテナ型プライベートレジャーネットワークの構成図") +[{% inline-svg file="/docs/img/xrp-ledger-private-network-docker.svg" /%}](/docs/img/xrp-ledger-private-network-docker.svg '図1:3つのノードのコンテナ型プライベートレジャーネットワークの構成図') ## 前提条件 @@ -40,72 +40,72 @@ labels: 1. ターミナルで以下を実行し、`rippled`のDockerコンテナシェル内でコマンドを実行します: - ``` - docker run -it --entrypoint /bin/bash xrpllabsofficial/xrpld:latest - ``` + ``` + docker run -it --entrypoint /bin/bash xrpllabsofficial/xrpld:latest + ``` - {% admonition type="info" name="注記" %}Apple M1またはM2チップの場合は、代わりに`docker run -it --platform linux/amd64 --entrypoint /bin/bash xrpllabsofficial/xrpld:latest`を実行してください。{% /admonition %} + {% admonition type="info" name="注記" %}Apple M1またはM2チップの場合は、代わりに`docker run -it --platform linux/amd64 --entrypoint /bin/bash xrpllabsofficial/xrpld:latest`を実行してください。{% /admonition %} - 出力の例: + 出力の例: - ``` - root@7732bd585b14:/# - ``` + ``` + root@7732bd585b14:/# + ``` 2. `create_keys`コマンドを使ってバリデータのキーペアを生成します。 - ``` - cd /opt/ripple/bin && - ./validator-keys create_keys --keyfile /PATH/TO/YOUR/validator--keys.json - ``` + ``` + cd /opt/ripple/bin && + ./validator-keys create_keys --keyfile /PATH/TO/YOUR/validator--keys.json + ``` - 出力の例: + 出力の例: - ``` - バリデータのキーは/PATH/TO/YOUR/validator--keys.jsonに保存されています。 + ``` + バリデータのキーは/PATH/TO/YOUR/validator--keys.jsonに保存されています。 - このファイルは安全に保管し、決して他人と共有しないようにしてください。 - ``` + このファイルは安全に保管し、決して他人と共有しないようにしてください。 + ``` - {% admonition type="warning" name="注意" %}本番環境やテスト環境では、常にベストプラクティスに従い、生成された鍵は暗号化されたUSBフラッシュドライブなど、安全でオフラインかつ復元可能な場所に保管してください。しかし、このチュートリアルはローカルの開発セットアップの例なので、鍵をコンピュータに保存するだけで十分です。{% /admonition %} + {% admonition type="warning" name="注意" %}本番環境やテスト環境では、常にベストプラクティスに従い、生成された鍵は暗号化されたUSBフラッシュドライブなど、安全でオフラインかつ復元可能な場所に保管してください。しかし、このチュートリアルはローカルの開発セットアップの例なので、鍵をコンピュータに保存するだけで十分です。{% /admonition %} 3. JSON出力から**public_key**の値をコピーし、コンピュータ上のテキストファイルに保存します。 - ``` - cat /PATH/TO/YOUR/validator--keys.json - ``` + ``` + cat /PATH/TO/YOUR/validator--keys.json + ``` - 出力の例: + 出力の例: - ``` - { - "key_type" : "ed25519", - "public_key" : "nHD9jtA9y1nWC2Fs1HeRkEisqV3iFpk12wHmHi3mQxQwUP1ywUKs", - "revoked" : false, - "secret_key" : "paLsUUm9bRrvNBPpvJQ4nF7vdRTZyDNofGMMYs9EDeEKeNJa99q", - "token_sequence" : 0 - } - ``` + ``` + { + "key_type" : "ed25519", + "public_key" : "nHD9jtA9y1nWC2Fs1HeRkEisqV3iFpk12wHmHi3mQxQwUP1ywUKs", + "revoked" : false, + "secret_key" : "paLsUUm9bRrvNBPpvJQ4nF7vdRTZyDNofGMMYs9EDeEKeNJa99q", + "token_sequence" : 0 + } + ``` 4. `create_token`コマンドを使ってバリデータトークンを作成します。 - ``` - ./validator-keys create_token --keyfile /PATH/TO/YOUR/validator--keys.json - ``` + ``` + ./validator-keys create_token --keyfile /PATH/TO/YOUR/validator--keys.json + ``` - 出力から次のようなトークンの値をコピーし、コンピュータ上のテキストファイルに保存します。 + 出力から次のようなトークンの値をコピーし、コンピュータ上のテキストファイルに保存します。 - ``` - [validator_token] - eyJ2YWxpZGF0aW9uX3NlY3J|dF9rZXkiOiI5ZWQ0NWY4NjYyNDFjYzE4YTI3NDdiNT - QzODdjMDYyNTkwNzk3MmY0ZTcxOTAyMzFmYWE5Mzc0NTdmYT|kYWY2IiwibWFuaWZl - c3QiOiJKQUFBQUFGeEllMUZ0d21pbXZHdEgyaUNjTUpxQzlnVkZLaWxHZncxL3ZDeE - hYWExwbGMyR25NaEFrRTFhZ3FYeEJ3RHdEYklENk9NU1l1TTBGREFscEFnTms4U0tG - bjdNTzJmZGtjd1JRSWhBT25ndTlzQUtxWFlvdUorbDJWMFcrc0FPa1ZCK1pSUzZQU2 - hsSkFmVXNYZkFpQnNWSkdlc2FhZE9KYy9hQVpva1MxdnltR21WcmxIUEtXWDNZeXd1 - NmluOEhBU1FLUHVnQkQ2N2tNYVJGR3ZtcEFUSGxHS0pkdkRGbFdQWXk1QXFEZWRGdj - VUSmEydzBpMjFlcTNNWXl3TFZKWm5GT3I3QzBrdzJBaVR6U0NqSXpkaXRROD0ifQ== - ``` + ``` + [validator_token] + eyJ2YWxpZGF0aW9uX3NlY3J|dF9rZXkiOiI5ZWQ0NWY4NjYyNDFjYzE4YTI3NDdiNT + QzODdjMDYyNTkwNzk3MmY0ZTcxOTAyMzFmYWE5Mzc0NTdmYT|kYWY2IiwibWFuaWZl + c3QiOiJKQUFBQUFGeEllMUZ0d21pbXZHdEgyaUNjTUpxQzlnVkZLaWxHZncxL3ZDeE + hYWExwbGMyR25NaEFrRTFhZ3FYeEJ3RHdEYklENk9NU1l1TTBGREFscEFnTms4U0tG + bjdNTzJmZGtjd1JRSWhBT25ndTlzQUtxWFlvdUorbDJWMFcrc0FPa1ZCK1pSUzZQU2 + hsSkFmVXNYZkFpQnNWSkdlc2FhZE9KYy9hQVpva1MxdnltR21WcmxIUEtXWDNZeXd1 + NmluOEhBU1FLUHVnQkQ2N2tNYVJGR3ZtcEFUSGxHS0pkdkRGbFdQWXk1QXFEZWRGdj + VUSmEydzBpMjFlcTNNWXl3TFZKWm5GT3I3QzBrdzJBaVR6U0NqSXpkaXRROD0ifQ== + ``` 5. 残りのバリデータノードについても**2-4**の手順を繰り返します。すべてのバリデータのキーとトークンを生成したら、ターミナルで`exit`と入力してDockerコンテナを終了します。 @@ -143,119 +143,119 @@ mkdir -p xrpl-private-network/{validator_1/config,validator_2/config,validator_3 2. 以下の`rippled.cfg`テンプレートの情報をファイルにコピーします。 - ``` - [server] - port_rpc_admin_local - port_rpc - port_ws_admin_local - port_ws_public - port_peer - # ssl_key = /etc/ssl/private/server.key - # ssl_cert = /etc/ssl/certs/server.crt + ``` + [server] + port_rpc_admin_local + port_rpc + port_ws_admin_local + port_ws_public + port_peer + # ssl_key = /etc/ssl/private/server.key + # ssl_cert = /etc/ssl/certs/server.crt - [port_rpc_admin_local] - port = 5005 - ip = 127.0.0.1 - admin = 127.0.0.1 - protocol = http + [port_rpc_admin_local] + port = 5005 + ip = 127.0.0.1 + admin = 127.0.0.1 + protocol = http - [port_ws_admin_local] - port = 6006 - ip = 127.0.0.1 - admin = 127.0.0.1 - protocol = ws + [port_ws_admin_local] + port = 6006 + ip = 127.0.0.1 + admin = 127.0.0.1 + protocol = ws - [port_ws_public] - port = 80 - ip = 0.0.0.0 - protocol = ws + [port_ws_public] + port = 80 + ip = 0.0.0.0 + protocol = ws - [port_peer] - port = 51235 - ip = 0.0.0.0 - protocol = peer + [port_peer] + port = 51235 + ip = 0.0.0.0 + protocol = peer - [port_rpc] - port = 51234 - ip = 0.0.0.0 - admin = 127.0.0.1 - protocol = https, http + [port_rpc] + port = 51234 + ip = 0.0.0.0 + admin = 127.0.0.1 + protocol = https, http - [node_size] - small - # tiny - # small - # medium - # large - # huge + [node_size] + small + # tiny + # small + # medium + # large + # huge - [node_db] - type=NuDB - path=/var/lib/rippled/db/nudb - advisory_delete=0 + [node_db] + type=NuDB + path=/var/lib/rippled/db/nudb + advisory_delete=0 - # How many ledgers do we want to keep (history)? - # Integer value that defines the number of ledgers - # between online deletion events - online_delete=256 + # How many ledgers do we want to keep (history)? + # Integer value that defines the number of ledgers + # between online deletion events + online_delete=256 - [ledger_history] - # How many ledgers do we want to keep (history)? - # Integer value (ledger count) - # or (if you have lots of TB SSD storage): 'full' - 256 + [ledger_history] + # How many ledgers do we want to keep (history)? + # Integer value (ledger count) + # or (if you have lots of TB SSD storage): 'full' + 256 - [database_path] - /var/lib/rippled/db + [database_path] + /var/lib/rippled/db - [debug_logfile] - /var/log/rippled/debug.log + [debug_logfile] + /var/log/rippled/debug.log - [sntp_servers] - time.windows.com - time.apple.com - time.nist.gov - pool.ntp.org + [sntp_servers] + time.windows.com + time.apple.com + time.nist.gov + pool.ntp.org - [ips_fixed] - validator_1 51235 - validator_2 51235 - validator_3 51235 + [ips_fixed] + validator_1 51235 + validator_2 51235 + validator_3 51235 - [validators_file] - validators.txt + [validators_file] + validators.txt - [rpc_startup] - { "command": "log_level", "severity": "warning" } - # severity (order: lots of information .. only errors) - # debug - # info - # warn - # error - # fatal + [rpc_startup] + { "command": "log_level", "severity": "warning" } + # severity (order: lots of information .. only errors) + # debug + # info + # warn + # error + # fatal - [ssl_verify] - 0 + [ssl_verify] + 0 - [validator_token] - - ``` + [validator_token] + + ``` 3. チュートリアルの[最初](#バリデータキーの生成)に作成した次のようなバリデータトークンを追加します。 - ``` - [validator_token] - eyJtYW5pZmVzdCI6IkpBQUFBQUZ4SWUwcVd3ZnpLZ2tacWJTL01QVGxHVXlOeTVJZ2kzYzlG - V1JvTDFIMGoydkNobk1oQTBOc2RHeFNXbWF6b0xkdU5NeDVmaVVZU2h3bjk2SnpSaUFReFJz - cENuR2dka1l3UkFJZ1dLazV4cklSN3FNRWd1UmJwOTRrN0E0QnBOZmwrT2VYUm92bTNIOGtS - YkVDSUZXYmVocHd5ZS9UWFpZRGYwUEgwTkxjN2I1cWNEOXUvbzVYUjA4YW1pUEJjQkpBYjEw - NE95bG5IS0JSZTJmRW1qSVVjT24vZ2ZacE44bXdhZ1dGbUxlemc2RFRLL0hpTVkyektNQ3l0 - aksreHpHNWpjc3JlS3k5Q29sRGtpKzk3V0JHQ2c9PSIsInZhbGlkYXRpb25fc2VjcmV0X2tl - eSI6IjZFNTNFQjA1M0IwNEM1RTczNDc4M0VCMEU0RTBFOTg1NDVDNDQ0QzI3OTBFQjdBMzA2 - NUQzMUVBOTU1QjQyMTIifQ== - ``` + ``` + [validator_token] + eyJtYW5pZmVzdCI6IkpBQUFBQUZ4SWUwcVd3ZnpLZ2tacWJTL01QVGxHVXlOeTVJZ2kzYzlG + V1JvTDFIMGoydkNobk1oQTBOc2RHeFNXbWF6b0xkdU5NeDVmaVVZU2h3bjk2SnpSaUFReFJz + cENuR2dka1l3UkFJZ1dLazV4cklSN3FNRWd1UmJwOTRrN0E0QnBOZmwrT2VYUm92bTNIOGtS + YkVDSUZXYmVocHd5ZS9UWFpZRGYwUEgwTkxjN2I1cWNEOXUvbzVYUjA4YW1pUEJjQkpBYjEw + NE95bG5IS0JSZTJmRW1qSVVjT24vZ2ZacE44bXdhZ1dGbUxlemc2RFRLL0hpTVkyektNQ3l0 + aksreHpHNWpjc3JlS3k5Q29sRGtpKzk3V0JHQ2c9PSIsInZhbGlkYXRpb25fc2VjcmV0X2tl + eSI6IjZFNTNFQjA1M0IwNEM1RTczNDc4M0VCMEU0RTBFOTg1NDVDNDQ0QzI3OTBFQjdBMzA2 + NUQzMUVBOTU1QjQyMTIifQ== + ``` - 各バリデータノードは固有のトークンを持たなければなりません。 + 各バリデータノードは固有のトークンを持たなければなりません。 ### validators.txtファイルの作成 @@ -267,12 +267,12 @@ mkdir -p xrpl-private-network/{validator_1/config,validator_2/config,validator_3 2. チュートリアルの[最初](#バリデータキーの生成)に生成した`validator-keys.json`ファイルから公開鍵をコピーします。 3. 次のようにすべてのバリデータの公開鍵を追加します。 - ``` - [validators] - nHBgaEDL8buUECuk4Rck4QBYtmUgbAoeYJLpWLzG9iXsznTRYrQu - nHBCHX7iLDTyap3LumqBNuKgG7JLA5tc6MSJxpLs3gjkwpu836mY - nHU5STUKTgWdreVqJDx6TopLUymzRUZshTSGcWNtjfByJkYdiiRc - ``` + ``` + [validators] + nHBgaEDL8buUECuk4Rck4QBYtmUgbAoeYJLpWLzG9iXsznTRYrQu + nHBCHX7iLDTyap3LumqBNuKgG7JLA5tc6MSJxpLs3gjkwpu836mY + nHU5STUKTgWdreVqJDx6TopLUymzRUZshTSGcWNtjfByJkYdiiRc + ``` ## ネットワークを開始する @@ -284,55 +284,55 @@ Docker Composeを使用すると、簡単な`yaml`ファイルの設定でコン 1. `xrpl-private-network`ディレクトリのルートに`docker-compose.yml`ファイルを作成し、次の内容を追加します。 - ``` - version: "3.9" - services: - validator_1: - platform: linux/amd64 - container_name: validator_1 - image: "xrpllabsofficial/xrpld" - ports: - - "8001:80" - - "5006:5005" - - "4001:6006" - - "9001:51235" - volumes: - - ./validator_1/config:/config/ - validator_2: - platform: linux/amd64 - container_name: validator_2 - image: "xrpllabsofficial/xrpld" - ports: - - "8002:80" - - "5007:5005" - - "4002:6006" - - "9002:51235" - volumes: - - ./validator_2/config:/config/ - validator_3: - platform: linux/amd64 - container_name: validator_3 - image: "xrpllabsofficial/xrpld" - ports: - - "8003:80" - - "5008:5005" - - "4003:6006" - - "9003:51235" - volumes: - - ./validator_3/config:/config/ - ``` + ``` + version: "3.9" + services: + validator_1: + platform: linux/amd64 + container_name: validator_1 + image: "xrpllabsofficial/xrpld" + ports: + - "8001:80" + - "5006:5005" + - "4001:6006" + - "9001:51235" + volumes: + - ./validator_1/config:/config/ + validator_2: + platform: linux/amd64 + container_name: validator_2 + image: "xrpllabsofficial/xrpld" + ports: + - "8002:80" + - "5007:5005" + - "4002:6006" + - "9002:51235" + volumes: + - ./validator_2/config:/config/ + validator_3: + platform: linux/amd64 + container_name: validator_3 + image: "xrpllabsofficial/xrpld" + ports: + - "8003:80" + - "5008:5005" + - "4003:6006" + - "9003:51235" + volumes: + - ./validator_3/config:/config/ + ``` - 各 `service`の`volumes`キーは、設定ファイルが保存されている場所を表します。例えば、`./validator_1/config:/config/`はホストコンピュータの`/validator_1/config`ディレクトリをDockerコンテナの`/config/`マップします。ホストのディレクトリで行われた変更は、自動的にコンテナに反映されます。 + 各 `service`の`volumes`キーは、設定ファイルが保存されている場所を表します。例えば、`./validator_1/config:/config/`はホストコンピュータの`/validator_1/config`ディレクトリをDockerコンテナの`/config/`マップします。ホストのディレクトリで行われた変更は、自動的にコンテナに反映されます。 2. ターミナルから`docker-compose.yml`ファイルを作成した場所で`docker-compose up -d`を実行してください。以下のような出力が表示されるはずです。 - ``` - [+] Running 4/4 - ✔ Network xrpl-private-network_default Created 0.0s - ✔ Container validator_3 Started 0.5s - ✔ Container validator_1 Started 0.5s - ✔ Container validator_2 Started 0.5s - ``` + ``` + [+] Running 4/4 + ✔ Network xrpl-private-network_default Created 0.0s + ✔ Container validator_3 Started 0.5s + ✔ Container validator_1 Started 0.5s + ✔ Container validator_2 Started 0.5s + ``` ## ネットワークを検証する @@ -340,7 +340,7 @@ Docker Composeを使用すると、簡単な`yaml`ファイルの設定でコン 1. ターミナルで`docker exec -it bin/bash`を実行し、バリデータのDockerコンテナでコマンドを実行します。``はコンテナ名に置き換えてください(例:`validator_1`)。 -2. +2. ``` rippled server_info | grep server_state @@ -400,69 +400,70 @@ rippled server_info | grep server_state 1. ターミナルで以下のコマンドを実行し、トランザクションを送信します。 - ``` - docker exec -it validator_1 \ - rippled submit 'snoPBrXtMeMyMHUVTgbuqAfg1SUTb' '{ "Account": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "Amount": "1000000000", "Destination": "r9wRwVgL2vWVnKhTPdtxva5vdH7FNw1zPs", "TransactionType": "Payment", "Fee": "10" }' - ``` + ``` + docker exec -it validator_1 \ + rippled submit 'snoPBrXtMeMyMHUVTgbuqAfg1SUTb' '{ "Account": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "Amount": "1000000000", "Destination": "r9wRwVgL2vWVnKhTPdtxva5vdH7FNw1zPs", "TransactionType": "Payment", "Fee": "10" }' + ``` - 出力の例: + 出力の例: - ``` - { - "result" : { - "engine_result" : "tesSUCCESS", - "engine_result_code" : 0, - "engine_result_message" : "The transaction was applied. Only final in a validated ledger.", - "status" : "success", - "tx_blob" : "1200002280000000240000000161400000003B9ACA0068400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074463044022057CCEED351A4278F35C13FD104A55338DC8F48C1F9902D58045A4CD0CE89C92A0220184026BD3B1E2C21239017CAF1BBF683 35EDC57F6F98D952E263763DE449561B8114B5F762798A53D543A014CAF8B297CFF8F2F937E883145988EBB744055F4E8BDC7F67FD53EB9FCF961DC0", - "tx_json" : { - "Account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "Amount" : "1000000000", - "Destination" : "r9wRwVgL2vWVnKhTPdtxva5vdH7FNw1zPs", - "Fee" : "10", - "Flags" : 2147483648, - "Sequence" : 1, - "SigningPubKey" : "0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020", - "TransactionType" : "Payment", - "TxnSignature" : "3044022057CCEED351A4278F35C13FD104A55338DC8F48C1F9902D58045A4CD0CE89C92A0220184026BD3B1E2C21239017CAF1BBF68335EDC57F6F98D952E263763DE449561B", - "hash" : "EB516738841794B24819C68273E0F853A3D234350E6534F7F2841F620CE99437" - } - } - } - ``` + ``` + { + "result" : { + "engine_result" : "tesSUCCESS", + "engine_result_code" : 0, + "engine_result_message" : "The transaction was applied. Only final in a validated ledger.", + "status" : "success", + "tx_blob" : "1200002280000000240000000161400000003B9ACA0068400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074463044022057CCEED351A4278F35C13FD104A55338DC8F48C1F9902D58045A4CD0CE89C92A0220184026BD3B1E2C21239017CAF1BBF683 35EDC57F6F98D952E263763DE449561B8114B5F762798A53D543A014CAF8B297CFF8F2F937E883145988EBB744055F4E8BDC7F67FD53EB9FCF961DC0", + "tx_json" : { + "Account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "Amount" : "1000000000", + "Destination" : "r9wRwVgL2vWVnKhTPdtxva5vdH7FNw1zPs", + "Fee" : "10", + "Flags" : 2147483648, + "Sequence" : 1, + "SigningPubKey" : "0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020", + "TransactionType" : "Payment", + "TxnSignature" : "3044022057CCEED351A4278F35C13FD104A55338DC8F48C1F9902D58045A4CD0CE89C92A0220184026BD3B1E2C21239017CAF1BBF68335EDC57F6F98D952E263763DE449561B", + "hash" : "EB516738841794B24819C68273E0F853A3D234350E6534F7F2841F620CE99437" + } + } + } + ``` 2. 各バリデータについて、宛先アカウント `r9wRwVgL2vWVnKhTPdtxva5vdH7FNw1zPs` に 1000000000 XRP があることを確認します。 - ``` - docker exec -it validator_1 \ - rippled account_info r9wRwVgL2vWVnKhTPdtxva5vdH7FNw1zPs validated strict - ``` + ``` + docker exec -it validator_1 \ + rippled account_info r9wRwVgL2vWVnKhTPdtxva5vdH7FNw1zPs validated strict + ``` - 出力の例: + 出力の例: - ``` - { - "result" : { - "account_data" : { - "Account" : "r9wRwVgL2vWVnKhTPdtxva5vdH7FNw1zPs", - "Balance" : "1000000000", - "Flags" : 0, - "LedgerEntryType" : "AccountRoot", - "OwnerCount" : 0, - "PreviousTxnID" : "EB516738841794B24819C68273E0F853A3D234350E6534F7F2841F620CE99437", - "PreviousTxnLgrSeq" : 36, - "Sequence" : 1, - "index" : "0F2E4615AE24EEF58EE82BD1E67D237234ED41BFC8B7885630B7AC05082E97AA" - }, - "ledger_hash" : "6F9F54903CC4546F7A426CD78AFD68D907F5DC40B1780DF31A662CF65920E49C", - "ledger_index" : 51, - "status" : "success", - "validated" : true - } - } + ``` + { + "result" : { + "account_data" : { + "Account" : "r9wRwVgL2vWVnKhTPdtxva5vdH7FNw1zPs", + "Balance" : "1000000000", + "Flags" : 0, + "LedgerEntryType" : "AccountRoot", + "OwnerCount" : 0, + "PreviousTxnID" : "EB516738841794B24819C68273E0F853A3D234350E6534F7F2841F620CE99437", + "PreviousTxnLgrSeq" : 36, + "Sequence" : 1, + "index" : "0F2E4615AE24EEF58EE82BD1E67D237234ED41BFC8B7885630B7AC05082E97AA" + }, + "ledger_hash" : "6F9F54903CC4546F7A426CD78AFD68D907F5DC40B1780DF31A662CF65920E49C", + "ledger_index" : 51, + "status" : "success", + "validated" : true + } + } - ``` - すべてのバリデータノードは、`r9wRwVgL2vWVnKhTPdtxva5vdH7FNw1zPs`アカウントの同じ残高1000000000XRPでレスポンスする必要があります。 + ``` + + すべてのバリデータノードは、`r9wRwVgL2vWVnKhTPdtxva5vdH7FNw1zPs`アカウントの同じ残高1000000000XRPでレスポンスする必要があります。 ## ネットワークを停止する @@ -471,24 +472,23 @@ rippled server_info | grep server_state 1. ターミナルで`xrpl-private-network`ディレクトリに移動します。 2. 以下のコマンドを実行して、ネットワークをシャットダウンします。 - ``` - docker-compose down - ``` + ``` + docker-compose down + ``` - 出力の例: + 出力の例: - ``` - [+] Running 4/4 - ✔ Container validator_3 Removed 1.7s - ✔ Container validator_1 Removed 1.6s - ✔ Container validator_2 Removed 1.6s - ✔ Network xrpl-private-network_default Removed 0.0s - ``` + ``` + [+] Running 4/4 + ✔ Container validator_3 Removed 1.7s + ✔ Container validator_1 Removed 1.6s + ✔ Container validator_2 Removed 1.6s + ✔ Network xrpl-private-network_default Removed 0.0s + ``` ## 関連項目 - **ネットワークとサーバ:** - - [ピアプロトコル](../../concepts/networks-and-servers/peer-protocol.md) - + - [ピアプロトコル](../../concepts/networks-and-servers/peer-protocol.md) - **References:** - - [XRPL TestnetのDocker用セットアップスクリプト](https://github.com/UNIC-IFF/xrpl-docker-testnet) + - [XRPL TestnetのDocker用セットアップスクリプト](https://github.com/UNIC-IFF/xrpl-docker-testnet) diff --git a/@l10n/ja/docs/infrastructure/testing-and-auditing/start-a-new-genesis-ledger-in-stand-alone-mode.md b/@l10n/ja/docs/infrastructure/testing-and-auditing/start-a-new-genesis-ledger-in-stand-alone-mode.md index 500b7a3a27..fa15def7fe 100644 --- a/@l10n/ja/docs/infrastructure/testing-and-auditing/start-a-new-genesis-ledger-in-stand-alone-mode.md +++ b/@l10n/ja/docs/infrastructure/testing-and-auditing/start-a-new-genesis-ledger-in-stand-alone-mode.md @@ -2,15 +2,16 @@ html: start-a-new-genesis-ledger-in-stand-alone-mode.html parent: use-stand-alone-mode.html seo: - description: スタンドアロンモードで新しいジェネシスレジャーを開始します。 + description: スタンドアロンモードで新しいジェネシスレジャーを開始します。 labels: - コアサーバ --- + # スタンドアロンモードでの新しいジェネシスレジャーの開始 スタンドアロンモードでは`rippled`に新しいジェネシスレジャーを作成させることができます。これにより既知の状態が実現され、本番環境のXRP Ledgerのレジャー履歴は使用されません。(これは単体テストなどに特に便利です。) -* スタンドアロンモードで新しいジェネシスレジャーを使用して`rippled`を起動するには、`-a`オプションと`--start`オプションを使用します。 +- スタンドアロンモードで新しいジェネシスレジャーを使用して`rippled`を起動するには、`-a`オプションと`--start`オプションを使用します。 ``` rippled -a --start --conf=/path/to/rippled.cfg diff --git a/@l10n/ja/docs/infrastructure/testing-and-auditing/test-amendments.md b/@l10n/ja/docs/infrastructure/testing-and-auditing/test-amendments.md index 5a3f1be213..3de7bee4f4 100644 --- a/@l10n/ja/docs/infrastructure/testing-and-auditing/test-amendments.md +++ b/@l10n/ja/docs/infrastructure/testing-and-auditing/test-amendments.md @@ -2,12 +2,12 @@ html: test-amendments.html parent: configure-rippled.html seo: - description: ネットワーク上で有効になる前に、Amendmentをテストすることができます。 + description: ネットワーク上で有効になる前に、Amendmentをテストすることができます。 labels: - ブロックチェーン --- -# Amendmentのテスト +# Amendmentのテスト 本番ネットワークでAmendmentが完全に有効になる前に、スタンドアロンモードを使って`rippled` の動作をテストすることができます。 @@ -18,11 +18,13 @@ labels: {% tabs %} {% tab label="Example" %} + ``` [features] MultiSign TrustSetAuth ``` + {% /tab %} {% /tabs %} diff --git a/@l10n/ja/docs/infrastructure/troubleshooting/diagnosing-problems.md b/@l10n/ja/docs/infrastructure/troubleshooting/diagnosing-problems.md index 50a13b087a..997debb9d0 100644 --- a/@l10n/ja/docs/infrastructure/troubleshooting/diagnosing-problems.md +++ b/@l10n/ja/docs/infrastructure/troubleshooting/diagnosing-problems.md @@ -2,10 +2,11 @@ html: diagnosing-problems.html parent: troubleshoot-the-rippled-server.html seo: - description: 情報を収集して問題の原因を特定します。 + description: 情報を収集して問題の原因を特定します。 labels: - コアサーバ --- + # rippledの問題の診断 `rippled`で問題が発生した場合はまず、問題の特徴を正確に明らかにするため、詳細な情報を収集します。これにより、根本原因を洗い出して修正策を編み出すことが容易になります。 @@ -25,7 +26,6 @@ rippled server_info このコマンドに対するレスポンスには大量の情報が含まれています。これについては、[server_infoメソッド][]で説明します。トラブルシューティングで最も重要なフィールドは以下のとおりです(最も一般的に使われるものから順に説明します)。 - **`server_state`** - ほとんどの場合、このフィールドには`proposing`([バリデータとして設定されている](../configuration/server-modes/run-rippled-as-a-validator.md)サーバの場合)または`full`(バリデータではないサーバの場合)が表示されます。値が`connected`の場合は、サーバはピアツーピアネットワークの他の部分と通信できますが、共有レジャーの状態を追跡するのに十分なデータがありません。通常、レジャーの残りの部分の状態を同期するには起動後約5~15分かかります。 - - サーバが数時間にわたり`connected`状態である場合、または`full`あるいは`proposing`状態になってから`connected`状態に戻る場合は通常、サーバがネットワークの他の部分よりも遅れています。最も一般的なボトルネックはディスクI/O、ネットワーク帯域幅、RAMです。 - 例えば、以下のサーバ状態情報は、正常なサーバで同期が3分以内に完了しており(`disconnected`、`connected`、`syncing`の状態に分かれている)、現在は完全に同期された`proposing`状態が約90分間続いていることを示しています。 @@ -74,7 +74,6 @@ rippled server_info - 同期の問題をデバッグする際の参考として、[サーバが同期しない](server-doesnt-sync.md)をご覧ください。 - **`complete_ledgers`** - このフィールドは、サーバに完全なレジャーデータが保管されている[レジャーインデックス](../../references/protocol/data-types/basic-data-types.md#レジャーインデックス)を示します。通常、正常なサーバには連続した最新のレジャーのセット(`"12133424-12133858"`など)があります。 - - 連続していない完全なレジャーのセット(`"11845721-12133420,12133424-12133858"`など)がある場合、サーバで断続的な障害が発生したか、またはネットワークの他の部分との同期が一時的にできなかった可能性があります。このようなケースの最も一般的な原因は、ディスクI/Oまたはネットワーク帯域幅の不足です。 - 通常、`rippled`サーバはピアから最新のレジャー履歴をダウンロードします。レジャー履歴のギャップが数時間以上続く場合は、欠落データを所有しているピアに接続されていない可能性があります。この状況が発生した場合は、構成ファイルに次のスタンザを追加して再起動すれば、完全な履歴が保管されているRippleのパブリックサーバの1つにサーバを強制的にピア接続できます。 @@ -87,7 +86,6 @@ rippled server_info - **`amendment_blocked`** - このフィールドは通常`server_info`レスポンスでは省略されます。このフィールドの値が`true`の場合は、ネットワークにより承認された[Amendment](../../concepts/networks-and-servers/amendments.md)がサーバに導入されていません。ほとんどの場合は、最新バージョンに[rippledを更新する](../installation/index.md)ことで修正できます。また[featureメソッド][]を使用して、現在有効なAmendment ID、サーバでサポートされているAmendment ID、サーバでサポートされていないAmendment IDを確認することもできます。 - **`peers`** - このフィールドは、サーバが接続しているXRP Ledgerピアツーピアネットワーク内のその他のサーバの数を示します。特定のピアのみに接続するように明示的に構成されているサーバを除き、正常なサーバでは通常5~50ピアと表示されます。 - - ピアの数が0の場合、サーバがネットワークに接続できないか、またはシステムクロックが正しくない可能性があります。(サーバのクロックを同期するため、すべてのサーバで[NTP](http://www.ntp.org/)デーモンを実行することが推奨されます。) - ピアの数が10の場合、`rippled`が[NAT](https://en.wikipedia.org/wiki/Network_address_translation)を使用したルーター経由での着信接続を受信できていない可能性があります。接続を改善するには、ルーターのファイアウォールがピアツーピア接続に使用するポート([デフォルトでは](https://github.com/XRPLF/rippled/blob/8429dd67e60ba360da591bfa905b58a35638fda1/cfg/rippled-example.cfg#L1065)ポート51235)を転送するように設定します。 @@ -98,10 +96,10 @@ rippled server_info ```json { - "error" : "internal", - "error_code" : 71, - "error_message" : "Internal error.", - "error_what" : "no response from server" + "error": "internal", + "error_code": 71, + "error_message": "Internal error.", + "error_what": "no response from server" } ``` @@ -124,15 +122,15 @@ rippled server_info ## 関連項目 - **コンセプト:** - - [`rippled`サーバ](../../concepts/networks-and-servers/index.md) - - [Amendment](../../concepts/networks-and-servers/amendments.md) + - [`rippled`サーバ](../../concepts/networks-and-servers/index.md) + - [Amendment](../../concepts/networks-and-servers/amendments.md) - **チュートリアル:** - - [容量の計画](../installation/capacity-planning.md) - - [rippledの構成](../configuration/index.md) + - [容量の計画](../installation/capacity-planning.md) + - [rippledの構成](../configuration/index.md) - **リファレンス:** - - [rippled APIリファレンス](../../references/http-websocket-apis/index.md) - - [`rippled`コマンドラインの使用](../commandline-usage.md) - - [log_levelメソッド][] - - [server_infoメソッド][] + - [rippled APIリファレンス](../../references/http-websocket-apis/index.md) + - [`rippled`コマンドラインの使用](../commandline-usage.md) + - [log_levelメソッド][] + - [server_infoメソッド][] {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/infrastructure/troubleshooting/fix-sqlite-tx-db-page-size-issue.md b/@l10n/ja/docs/infrastructure/troubleshooting/fix-sqlite-tx-db-page-size-issue.md index cdbc735870..4a23f12c74 100644 --- a/@l10n/ja/docs/infrastructure/troubleshooting/fix-sqlite-tx-db-page-size-issue.md +++ b/@l10n/ja/docs/infrastructure/troubleshooting/fix-sqlite-tx-db-page-size-issue.md @@ -2,8 +2,9 @@ html: fix-sqlite-tx-db-page-size-issue.html parent: troubleshoot-the-rippled-server.html seo: - description: rippledバージョン0.40.0以前で起動された完全履歴サーバでのSQLiteのページサイズに関する問題を解決します。 + description: rippledバージョン0.40.0以前で起動された完全履歴サーバでのSQLiteのページサイズに関する問題を解決します。 --- + # SQLiteトランザクションデータベースのページサイズの問題の解決 全トランザクション履歴(または極めて大量のトランザクション履歴)が記録されている`rippled`サーバと、0.40.0(2017年1月リリース)よりも古いバージョンの`rippled`で最初に作成されたデータベースでは、SQLiteデータベースのページサイズが原因でサーバが適切に稼働しなくなる問題が発生する可能性があります。最近のトランザクション履歴のみが保管されているサーバ(デフォルト構成)と、バージョン0.40.0以降の`rippled`でデータベースファイルが作成されているサーバでは、この問題が発生する可能性はそれほどありません。 @@ -18,7 +19,6 @@ SQLiteデータベースの容量は、データベースの _ページサイズ {% admonition type="success" name="ヒント" %}ほとんどの場合、`rippled`サーバの稼働に全履歴が必要となることはありません。サーバにトランザクションの全履歴が記録されていれば、長期分析やアーカイブ、または災害に対する事前対策に役立ちます。{% /admonition %} - ## 検出 サーバがこの問題に対して脆弱である場合は、次の2種類の方法でこの問題を検出できます。 @@ -68,7 +68,6 @@ Terminating thread doJob:AcquisitionDone: unhandled disk is full while executing "INSERT INTO [...] ``` - ## 解決策 この問題を解決するには、このドキュメントで説明する手順に従い、サポートされているLinuxシステムで`rippled`を使用します。[推奨されるハードウェア構成](../installation/capacity-planning.md#推奨事項-1)とおおよそ一致するシステムスペックで全履歴を記録するサーバの場合、このプロセスにかかる日数は2日を超える可能性があります。 @@ -76,22 +75,21 @@ Terminating thread doJob:AcquisitionDone: unhandled ### 前提条件 - **[rippledバージョン1.1.0][新規: rippled 1.1.0]以上**を実行している必要があります。 + - このプロセスを開始する前に、安定した最新バージョンに[rippledをアップグレード](../installation/index.md)します。 - - このプロセスを開始する前に、安定した最新バージョンに[rippledをアップグレード](../installation/index.md)します。 + - 以下のコマンドを実行して、ローカルにインストールした`rippled`のバージョンを確認できます。 - - 以下のコマンドを実行して、ローカルにインストールした`rippled`のバージョンを確認できます。 - - ``` - rippled --version - ``` + ``` + rippled --version + ``` - `rippled`ユーザが書き込めるディレクトリーに、トランザクションデータベースの2つめのコピーを一時的に保管するのに十分な空き容量が必要です。この空き容量は、既存のトランザクションデータベースと同じファイルシステムに設ける必要はありません。 - トランザクションデータベースは、構成の`[database_path]`設定で指定されるフォルダーの`transaction.db`ファイルに保管されます。このファイルのサイズを調べ、必要な空き容量を確認できます。次に例を示します。 + トランザクションデータベースは、構成の`[database_path]`設定で指定されるフォルダーの`transaction.db`ファイルに保管されます。このファイルのサイズを調べ、必要な空き容量を確認できます。次に例を示します。 - ``` - ls -l /var/lib/rippled/db/transaction.db - ``` + ``` + ls -l /var/lib/rippled/db/transaction.db + ``` ### 移行プロセス @@ -101,78 +99,78 @@ Terminating thread doJob:AcquisitionDone: unhandled 2. 移行プロセスの実行中に一時ファイルを保管するフォルダーを作成します。 - ``` - mkdir /tmp/rippled_txdb_migration - ``` + ``` + mkdir /tmp/rippled_txdb_migration + ``` 3. `rippled`ユーザに、一時フォルダーの所有権を付与します。これにより、ユーザは一時フォルダー内のファイルに書き込みできるようになります。(`rippled`ユーザがすでにアクセス権限を持つ場所に一時フォルダーがある場合は、この操作は不要です。) - ``` - chown rippled /tmp/rippled_txdb_migration - ``` + ``` + chown rippled /tmp/rippled_txdb_migration + ``` 4. 一時フォルダーに、トランザクションデータベースのコピーを保管するのに十分な空き容量があることを確認します。 - たとえば、`df`コマンドの`Avail`出力と、[`transaction.db`ファイルのサイズ](#前提条件)を比較します。 + たとえば、`df`コマンドの`Avail`出力と、[`transaction.db`ファイルのサイズ](#前提条件)を比較します。 - ``` - df -h /tmp/rippled_txdb_migration + ``` + df -h /tmp/rippled_txdb_migration - Filesystem Size Used Avail Use% Mounted on - /dev/sda2 5.4T 2.6T 2.6T 50% /tmp - ``` + Filesystem Size Used Avail Use% Mounted on + /dev/sda2 5.4T 2.6T 2.6T 50% /tmp + ``` 5. `rippled`がまだ稼働している場合は停止します。 - ``` - sudo systemctl stop rippled - ``` + ``` + sudo systemctl stop rippled + ``` 6. `screen`セッション(または類似のツール)を開き、ログアウトしてもプロセスが停止しないようにします。 - ``` - screen - ``` + ``` + screen + ``` 7. `rippled`ユーザになります。 - ``` - sudo su - rippled - ``` + ``` + sudo su - rippled + ``` 8. 一時ディレクトリへのパスを指定した`--vacuum`コマンドで、`rippled`実行可能ファイルを直接実行できます。 - ``` - /opt/ripple/bin/rippled -q --vacuum /tmp/rippled_txdb_migration - ``` + ``` + /opt/ripple/bin/rippled -q --vacuum /tmp/rippled_txdb_migration + ``` - `rippled`実行可能ファイルにより次のメッセージが即時に表示されます。 + `rippled`実行可能ファイルにより次のメッセージが即時に表示されます。 - ``` - VACUUM beginning. page_size:1024 - ``` + ``` + VACUUM beginning. page_size:1024 + ``` 9. プロセスが完了するまで待ちます。これには丸2日以上かかることがあります。 - プロセスが完了したら、`rippled`実行可能ファイルは以下のメッセージを表示して終了します。 + プロセスが完了したら、`rippled`実行可能ファイルは以下のメッセージを表示して終了します。 - ``` - VACUUM finished. page_size:4096 - ``` + ``` + VACUUM finished. page_size:4096 + ``` - 待機している間に`screen`セッションを切り離すには、**CTRL-A**を押してから**D**を押します。その後、以下のようなコマンドでスクリーンセッションを再接続します。 + 待機している間に`screen`セッションを切り離すには、**CTRL-A**を押してから**D**を押します。その後、以下のようなコマンドでスクリーンセッションを再接続します。 - ``` - screen -x -r - ``` + ``` + screen -x -r + ``` - プロセスが完了したら、スクリーンセッションを終了します。 + プロセスが完了したら、スクリーンセッションを終了します。 - ``` - exit - ``` + ``` + exit + ``` - `screen`コマンドについての詳細は、[公式Screenユーザマニュアル](https://www.gnu.org/software/screen/manual/screen.html)またはオンラインで使用可能なその他の多数のリソースをご覧ください。 + `screen`コマンドについての詳細は、[公式Screenユーザマニュアル](https://www.gnu.org/software/screen/manual/screen.html)またはオンラインで使用可能なその他の多数のリソースをご覧ください。 10. `rippled`サービスを再起動します。 diff --git a/@l10n/ja/docs/infrastructure/troubleshooting/health-check-interventions.md b/@l10n/ja/docs/infrastructure/troubleshooting/health-check-interventions.md index b41c6b14b8..aceb3a5bb1 100644 --- a/@l10n/ja/docs/infrastructure/troubleshooting/health-check-interventions.md +++ b/@l10n/ja/docs/infrastructure/troubleshooting/health-check-interventions.md @@ -2,10 +2,11 @@ html: health-check-interventions.html parent: troubleshoot-the-rippled-server.html seo: - description: 自動化されたインフラ監視の一環として、rippledサーバのヘルスチェックを使用します。 + description: 自動化されたインフラ監視の一環として、rippledサーバのヘルスチェックを使用します。 labels: - コアサーバ --- + # ヘルスチェックの導入 [Health Checkメソッド](../../references/http-websocket-apis/peer-port-methods/health-check.md)は、自動監視によって`rippled`サーバが正常でないことを認識し、サーバの再起動や人間の管理者への警告などの介入を促すために利用することができます。 @@ -41,14 +42,12 @@ labels: - [ネットワークの調査](#ネットワークの調査): 問題が他の場所で発生した場合のためにネットワークを調査します。 - [ハードウェアの交換](#ハードウェアの交換) - ### トラフィックのリダイレクト 一般的な信頼性のためのテクニックは、1つ以上の負荷分散プロキシを通して冗長なサーバのプールを実行することです。これは`rippled`サーバではできますが、[バリデータ](../../concepts/networks-and-servers/rippled-server-modes.md)ではすべきではありません。場合によっては、ロードバランサはプール内のサーバの健全性を監視し、現在健全であると報告しているサーバだけにトラフィックを向けることができます。これにより、サーバは一時的な過負荷から回復し、自動的にアクティブなサーバのプールに戻ることができます。 特に`health`ステータスが`warning`と表示されたサーバに対しては、不健全なサーバからトラフィックをリダイレクトすることが適切な対応です。`critical`の範囲にあるサーバはより重要な介入が必要かもしれません。 - ### 再起動 最も簡単な方法は、サーバを再起動することです。これにより、以下の[metrics][]のいずれかを含む、いくつかのタイプの障害の一時的な問題を解決できます。 @@ -68,7 +67,6 @@ $ sudo systemctl restart rippled.service **注意n:** サーバの起動後、ネットワークへの同期には通常最大15分を要します。この間、ヘルスチェックはcriticalまたはwarningステータスを報告する可能性があります。自動化システムでは、サーバを再起動する前に、同期に十分な時間をかける必要があります。 - ### 更新 サーバがヘルスチェックで`"amendment_blocked": true`と報告した場合、これはXRP Ledgerがサーバが理解できない[プロトコルの修正(Amendment)](../../concepts/networks-and-servers/amendments.md)を有効にしたことを示しています。ネットワークの改訂されたルールを誤って解釈して損害を被らないようにするため、このようなサーバは正常に動作する代わりに"amendment blocked(Amendmentブロック)"となります。 @@ -77,7 +75,6 @@ Amendmentブロックを解消するには、[サーバをアップデート](.. また、ソフトウェアのバグによってサーバが[同期できない](server-doesnt-sync.md)状態になることもあります。この場合、`server_state`メトリクスはwarningまたはcriticalな状態になっている可能性があります。最新の安定版リリースを使用していない場合は、アップグレードして、この問題を引き起こす可能性のある既知の問題に対する最新の修正を入手してください。 - ### ネットワークの調査 信頼性の低いネットワーク接続や不十分なネットワーク接続が原因で、サーバが停止を報告することがあります。以下の[Metrics][]のwarningまたはcriticalの値は、ネットワークの問題を示している可能性があります。 @@ -92,8 +89,6 @@ Amendmentブロックを解消するには、[サーバをアップデート](.. - ネットワークインターフェース、スイッチ、ルーター、ケーブルの再起動または交換 - 他のネットワークサービスプロバイダーに連絡して、そのプロバイダー側での問題の解決 - - ### ハードウェアの交換 ハードウェアの故障や、ハードウェアの処理能力を超える高負荷が原因で障害が発生した場合、コンポーネントの交換やサーバ全体の交換が必要になることがあります。 @@ -106,12 +101,6 @@ XRP Ledgerのサーバにかかる負荷の量は、ネットワークのトラ - `server_state` - `validated_ledger` - - - - - - [metrics]: ../../references/http-websocket-apis/peer-port-methods/health-check.md#レスポンスのフォーマット {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/infrastructure/troubleshooting/index.md b/@l10n/ja/docs/infrastructure/troubleshooting/index.md index 7a64a0c05e..7468c7b110 100644 --- a/@l10n/ja/docs/infrastructure/troubleshooting/index.md +++ b/@l10n/ja/docs/infrastructure/troubleshooting/index.md @@ -4,11 +4,11 @@ parent: infrastructure.html metadata: indexPage: true seo: - description: rippledサーバのあらゆる種類の問題をトラブルシューティングします。 + description: rippledサーバのあらゆる種類の問題をトラブルシューティングします。 --- + # rippledのトラブルシューティング rippledサーバのあらゆる種類の問題をトラブルシューティングします。 - {% child-pages /%} diff --git a/@l10n/ja/docs/infrastructure/troubleshooting/server-doesnt-sync.md b/@l10n/ja/docs/infrastructure/troubleshooting/server-doesnt-sync.md index 87e3957859..e546daeee2 100644 --- a/@l10n/ja/docs/infrastructure/troubleshooting/server-doesnt-sync.md +++ b/@l10n/ja/docs/infrastructure/troubleshooting/server-doesnt-sync.md @@ -2,17 +2,17 @@ html: server-doesnt-sync.html parent: troubleshoot-the-rippled-server.html seo: - description: rippledサーバがXRP Ledgerの他の部分と同期できない問題のトラブルシューティング。 + description: rippledサーバがXRP Ledgerの他の部分と同期できない問題のトラブルシューティング。 labels: - コアサーバ --- + # rippledサーバが同期しない このページでは、[`rippled`サーバ](../../concepts/networks-and-servers/index.md)が正常に起動したのに、ネットワークに完全に接続できずに[「connected」状態](../../references/http-websocket-apis/api-conventions/rippled-server-states.md)のままになっている場合の原因について説明します。(サーバが起動中または起動直後にクラッシュした場合は、[サーバが起動しない](server-wont-start.md)をご覧ください。) 以下の手順では、サポートされているプラットフォームに[`rippled`がインストール](../installation/index.md)されていることを前提としています。 - ## 通常の同期動作 ネットワークとの同期は、通常はおよそ5分から15分で完了します。その間に、サーバは次のようなさまざまなことを行います。 @@ -25,7 +25,6 @@ labels: サーバがこれらのタスクを行うときにネットワークに同調して対応できなかった場合は、サーバはネットワークと同期しない状態になります。 - ## 最初のステップ: 再起動 多くの同期の問題は、サーバを再起動することで解決できます。最初に同期が失敗した原因がどのようなものであっても、2回目では成功する場合があります。 @@ -34,18 +33,16 @@ labels: 問題が解決しない場合は、このページに記載されている他の原因を確認してください。いずれも当てはまらないと思われる場合は、[`rippled`リポジトリに問題を登録](https://github.com/XRPLF/rippled/issues)し、「Syncing issue」ラベルを追加します。 - ## 同期の問題のよくある原因 同期の問題の原因として最もよくあるのは、[システム要件](../installation/system-requirements.md)を満たしていないことです。要件を満たせない主な原因は次の3つです。 -- **低速なディスク。** 安定して高速な性能を発揮するソリッドステートディスク(SSD)が必要です。AWSなどのクラウドプロバイダーはディスク性能を保証しておらず、ハードウェアを共有する他のユーザの影響を受ける可能性があります。 -- **不十分なRAM。** メモリー要件はさまざまな要因に大きく左右されます。例えば、ネットワークの負荷やXRP Ledgerがどのように使われるかなど、予測しづらい要因もあるため、念のため最小システム要件よりも大きいメモリーを用意することをお勧めします。 -- **品質の悪いネットワーク接続。** ネットワーク要件は、主にXRP Ledgerをユーザがどのよう使うかによって左右されますが、接続が低速または不安定な場合、XRP Ledgerに追加された新しいトランザクションやデータとの同期がとれなくなる可能性があります。 +- **低速なディスク。** 安定して高速な性能を発揮するソリッドステートディスク(SSD)が必要です。AWSなどのクラウドプロバイダーはディスク性能を保証しておらず、ハードウェアを共有する他のユーザの影響を受ける可能性があります。 +- **不十分なRAM。** メモリー要件はさまざまな要因に大きく左右されます。例えば、ネットワークの負荷やXRP Ledgerがどのように使われるかなど、予測しづらい要因もあるため、念のため最小システム要件よりも大きいメモリーを用意することをお勧めします。 +- **品質の悪いネットワーク接続。** ネットワーク要件は、主にXRP Ledgerをユーザがどのよう使うかによって左右されますが、接続が低速または不安定な場合、XRP Ledgerに追加された新しいトランザクションやデータとの同期がとれなくなる可能性があります。 同期の問題が解消されない場合は、サーバがシステム要件を満たしているかもう一度確認してください。サーバの使用方法によっては、「最小」要件よりも高い「推奨」要件を満たす必要があります。「推奨」要件を満たしていても、まだ同期ができない場合は、このページの他の原因を試してみてください。 - ## バリデータリストを読み込めない デフォルトの構成では、`vl.ripple.com`から受信した推奨バリデータリストを使用します。このリストは、Rippleの暗号鍵ペアで署名されており、有効期限が組み込まれています。サーバが何らかの理由でリストを`vl.ripple.com`からダウンロードできない場合、サーバは信頼できるバリデータのセットを選択せず、有効として宣言できるレジャーを決定できません。([Testnetや別の並列ネットワーク](../../concepts/networks-and-servers/parallel-networks.md)に接続している場合、サーバは代わりにそのネットワークの信頼できるバリデータのリストを使用します。) @@ -56,14 +53,12 @@ labels: - ## 十分な数のピアがない サーバが十分な数の[ピアサーバ](../../concepts/networks-and-servers/peer-protocol.md)に接続していない場合、サーバは十分なデータをダウンロードできず、ネットワークが新しいトランザクションを処理するときに同期がとれなくなる可能性があります。この問題は、ネットワーク接続の信頼性が低い場合や、十分な数の信頼できる固定ピアを追加せずにサーバを[プライベートサーバ](../../concepts/networks-and-servers/peer-protocol.md#プライベートピア)として構成している場合に起こる可能性があります。 [peersメソッド][]を使用して、サーバの現在のピアについての情報を取得します。ピアの数が10または11の場合、ファイアウォールが着信ピア接続をブロックしていることを示しています。[ポートフォワーディングを設定](../configuration/peering/forward-ports-for-peering.md)して、より多くの着信接続を許可します。サーバがプライベートサーバとして構成されている場合は、構成ファイルの`[ips_fixed]`スタンザの内容と構文を再度確認し、可能であればプロキシと公開ハブをさらに追加します。 - ## データベースの破損 まれに、`rippled`サーバの内部データベースに保存されているデータが破損していることで同期の問題が発生する場合があります。サーバが稼動中でなければ、ほとんどの場合、サーバのデータベースを安全に削除できます。データの破損は、ディスクにコピーまたは書き込みするときに起こった一時的なハードウェア障害や、より深刻なディスク障害、別のプロセスがクラッシュしてディスクの誤った部分に書き込んだなど、さまざまな問題の結果として起こる可能性があります。 @@ -74,52 +69,51 @@ labels: 1. `rippled`サーバが稼働中の場合は停止します。 - ``` - $ sudo systemctl stop rippled - ``` + ``` + $ sudo systemctl stop rippled + ``` 2. 新しいデータベースを格納するための新しい空のフォルダーを作成します。 - ``` - $ mkdir /var/lib/rippled/db_new/ - $ mkdir /var/lib/rippled/db_new/nudb - ``` + ``` + $ mkdir /var/lib/rippled/db_new/ + $ mkdir /var/lib/rippled/db_new/nudb + ``` 3. 新しいパスを使用するように構成ファイルを編集します。`[node_db]`スタンザの`path`フィールド**と**`[database_path]`スタンザの値を変更します。 - ``` - [node_db] - type=NuDB - path=/var/lib/rippled/db_new/nudb + ``` + [node_db] + type=NuDB + path=/var/lib/rippled/db_new/nudb - [database_path] - /var/lib/rippled/db_new - ``` + [database_path] + /var/lib/rippled/db_new + ``` - {% partial file="/@l10n/ja/docs/_snippets/conf-file-location.md" /%} + {% partial file="/@l10n/ja/docs/_snippets/conf-file-location.md" /%} 4. `rippled`サーバを再起動します。 - ``` - $ sudo systemctl start rippled - ``` + ``` + $ sudo systemctl start rippled + ``` 新しいデータベースを使用してサーバが同期に成功したら、以前のデータベースを格納していたフォルダーを削除できます。また、ハードウェア障害、特にディスクとRAMの障害を確認することもお勧めします。 - ## 関連項目 - **コンセプト:** - - [`rippled`サーバ](../../concepts/networks-and-servers/index.md) - - [ピアプロトコル](../../concepts/networks-and-servers/peer-protocol.md) - - [技術に関するよくある質問](/about/faq.md) + - [`rippled`サーバ](../../concepts/networks-and-servers/index.md) + - [ピアプロトコル](../../concepts/networks-and-servers/peer-protocol.md) + - [技術に関するよくある質問](/about/faq.md) - **チュートリアル:** - - [ログメッセージについて](understanding-log-messages.md) - - [容量の計画](../installation/capacity-planning.md) + - [ログメッセージについて](understanding-log-messages.md) + - [容量の計画](../installation/capacity-planning.md) - **リファレンス:** - - [rippled APIリファレンス](../../references/http-websocket-apis/index.md) - - [peersメソッド][] - - [server_infoメソッド][] - - [validator_list_sitesメソッド][] + - [rippled APIリファレンス](../../references/http-websocket-apis/index.md) + - [peersメソッド][] + - [server_infoメソッド][] + - [validator_list_sitesメソッド][] {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/infrastructure/troubleshooting/server-is-amendment-blocked.md b/@l10n/ja/docs/infrastructure/troubleshooting/server-is-amendment-blocked.md index fcb31afecb..8f01f599ac 100644 --- a/@l10n/ja/docs/infrastructure/troubleshooting/server-is-amendment-blocked.md +++ b/@l10n/ja/docs/infrastructure/troubleshooting/server-is-amendment-blocked.md @@ -2,10 +2,11 @@ html: server-is-amendment-blocked.html parent: troubleshoot-the-rippled-server.html seo: - description: Amendmentによる変更を実行できないサーバのトラブルシューティング + description: Amendmentによる変更を実行できないサーバのトラブルシューティング labels: - コアサーバ --- + # rippledサーバがAmendmentブロックされた Amendmentブロックされたサーバは、レジャーの有効性を判断したり、トランザクションを送信または処理したり、コンセンサスプロセスに参加したりすることができません。 @@ -14,16 +15,16 @@ Amendmentブロックされたサーバは、レジャーの有効性を判断 ```json { - "result":{ - "error":"amendmentBlocked", - "error_code":14, - "error_message":"Amendment blocked, need upgrade.", - "request":{ - "command":"submit", - "tx_blob":"479H0KQ4LUUXIHL48WCVN0C9VD7HWSX0MG1UPYNXK6PI9HLGBU2U10K3HPFJSROFEG5VD749WDPHWSHXXO72BOSY2G8TWUDOJNLRTR9LTT8PSOB9NNZ485EY2RD9D80FLDFRBVMP1RKMELILD7I922D6TBCAZK30CSV6KDEDUMYABE0XB9EH8C4LE98LMU91I9ZV2APETJD4AYFEN0VNMIT1XQ122Y2OOXO45GJ737HHM5XX88RY7CXHVWJ5JJ7NYW6T1EEBW9UE0NLB2497YBP9V1XVAEK8JJYVRVW0L03ZDXFY8BBHP6UBU7ZNR0JU9GJQPNHG0DK86S4LLYDN0BTCF4KWV2J4DEB6DAX4BDLNPT87MM75G70DFE9W0R6HRNWCH0X075WHAXPSH7S3CSNXPPA6PDO6UA1RCCZOVZ99H7968Q37HACMD8EZ8SU81V4KNRXM46N520S4FVZNSJHA" - }, - "status":"error" - } + "result": { + "error": "amendmentBlocked", + "error_code": 14, + "error_message": "Amendment blocked, need upgrade.", + "request": { + "command": "submit", + "tx_blob": "479H0KQ4LUUXIHL48WCVN0C9VD7HWSX0MG1UPYNXK6PI9HLGBU2U10K3HPFJSROFEG5VD749WDPHWSHXXO72BOSY2G8TWUDOJNLRTR9LTT8PSOB9NNZ485EY2RD9D80FLDFRBVMP1RKMELILD7I922D6TBCAZK30CSV6KDEDUMYABE0XB9EH8C4LE98LMU91I9ZV2APETJD4AYFEN0VNMIT1XQ122Y2OOXO45GJ737HHM5XX88RY7CXHVWJ5JJ7NYW6T1EEBW9UE0NLB2497YBP9V1XVAEK8JJYVRVW0L03ZDXFY8BBHP6UBU7ZNR0JU9GJQPNHG0DK86S4LLYDN0BTCF4KWV2J4DEB6DAX4BDLNPT87MM75G70DFE9W0R6HRNWCH0X075WHAXPSH7S3CSNXPPA6PDO6UA1RCCZOVZ99H7968Q37HACMD8EZ8SU81V4KNRXM46N520S4FVZNSJHA" + }, + "status": "error" + } } ``` @@ -57,7 +58,6 @@ Amendmentブロックされたサーバは、レジャーの有効性を判断 } ``` - ## サーバのブロックを解除する 最も簡単な解決策は`rippled`の最新バージョンにアップデートすることですが、場合によっては、サーバをブロックするAmendmentを含む古いバージョンにアップデートすることもできます。 @@ -72,6 +72,7 @@ Amendmentブロックされたサーバは、レジャーの有効性を判断 "enabled" : true "supported" : false ``` + これらの値は、最新のレジャーではAmendmentが必要だが、サーバがその実装をサポートしていないことを意味します。 ** JSON-RPCレスポンスの例:** @@ -123,10 +124,10 @@ Amendmentブロックされたサーバは、レジャーの有効性を判断 この例では、以下の機能との競合が`rippled`サーバのAmendmentブロックを引き起こしています。 -* `157D2D480E006395B76F948E3E07A45A05FE10230D88A7993C71F97AE4B1F2D1` +- `157D2D480E006395B76F948E3E07A45A05FE10230D88A7993C71F97AE4B1F2D1` -* `67A34F2CF55BFC0F93AACD5B281413176FEE195269FA6D95219A2DF738671172` +- `67A34F2CF55BFC0F93AACD5B281413176FEE195269FA6D95219A2DF738671172` -* `F64E1EABBE79D55B3BB82020516CEC2C582A98A6BFE20FBE9BB6A0D233418064` +- `F64E1EABBE79D55B3BB82020516CEC2C582A98A6BFE20FBE9BB6A0D233418064` どの`rippled`バージョンがこれらの機能をサポートしているか調べるには、[既知のAmendment](/resources/known-amendments.md)をご覧ください。 diff --git a/@l10n/ja/docs/infrastructure/troubleshooting/server-wont-start.md b/@l10n/ja/docs/infrastructure/troubleshooting/server-wont-start.md index 550f47ee28..996d6f3df9 100644 --- a/@l10n/ja/docs/infrastructure/troubleshooting/server-wont-start.md +++ b/@l10n/ja/docs/infrastructure/troubleshooting/server-wont-start.md @@ -2,10 +2,11 @@ html: server-wont-start.html parent: troubleshoot-the-rippled-server.html seo: - description: rippledサーバが起動しない原因となると思われる問題とその解決方法です。 + description: rippledサーバが起動しない原因となると思われる問題とその解決方法です。 labels: - コアサーバ --- + # rippledサーバが起動しない このページでは、[`rippled`サーバ](../../concepts/networks-and-servers/index.md)が起動しない際に考えられる原因とその修正方法を説明します。 @@ -25,31 +26,30 @@ limit the number of simultaneous connections. 1. 次の行を`/etc/security/limits.conf`ファイルの終わりに追加します。 - ``` - * soft nofile 65536 - * hard nofile 65536 - ``` + ``` + * soft nofile 65536 + * hard nofile 65536 + ``` 2. [開くことができるファイルの数のハード制限](https://ss64.com/bash/ulimit.html)が現在`65536`であることを確認します。 - ``` - ulimit -Hn - ``` + ``` + ulimit -Hn + ``` このコマンドの出力は`65536`になるはずです。 3. `rippled`をもう一度起動します。 - ``` - systemctl start rippled - ``` + ``` + systemctl start rippled + ``` 4. それでも`rippled`が起動しない場合は、`/etc/sysctl.conf`を開き、以下のカーネルレベル設定を付加します。 - ``` - fs.file-max = 65536 - ``` - + ``` + fs.file-max = 65536 + ``` ## /etc/opt/ripple/rippled.cfgを開くことができない @@ -68,7 +68,7 @@ Aborted (core dumped) - `rippled`ユーザが読み取ることができる構成ファイルを`$HOME/.config/ripple/rippled.cfg`に作成します(`$HOME`は`rippled`ユーザのホームディレクトリを指しています)。 - {% admonition type="success" name="ヒント" %}`rippled`リポジトリには、パケージのインストール時にデフォルトの構成として提供される[`rippled.cfg`サンプルファイル](https://github.com/XRPLF/rippled/blob/master/cfg/rippled-example.cfg)が含まれています。このファイルがない場合は、上記のリンク先からコピーできます。{% /admonition %} + {% admonition type="success" name="ヒント" %}`rippled`リポジトリには、パケージのインストール時にデフォルトの構成として提供される[`rippled.cfg`サンプルファイル](https://github.com/XRPLF/rippled/blob/master/cfg/rippled-example.cfg)が含まれています。このファイルがない場合は、上記のリンク先からコピーできます。{% /admonition %} - `--conf`[コマンドラインオプション](../commandline-usage.md)を使用して、使用する構成ファイルのパスを指定します。 @@ -86,20 +86,19 @@ Aborted (core dumped) - `validators.txt`ファイルが存在し、`rippled`ユーザにこのファイルの読み取り権限があることを確認します。 - {% admonition type="success" name="ヒント" %}`rippled`リポジトリには、パケージのインストール時にデフォルトの構成として提供される[`validators.txt`サンプルファイル](https://github.com/XRPLF/rippled/blob/master/cfg/validators-example.txt)が含まれています。このファイルがない場合は、上記のリンク先からコピーできます。{% /admonition %} + {% admonition type="success" name="ヒント" %}`rippled`リポジトリには、パケージのインストール時にデフォルトの構成として提供される[`validators.txt`サンプルファイル](https://github.com/XRPLF/rippled/blob/master/cfg/validators-example.txt)が含まれています。このファイルがない場合は、上記のリンク先からコピーできます。{% /admonition %} - `rippled.cfg`ファイルを編集し、`[validators_file]`設定を変更して、`validators.txt`ファイル(またはこれに相当するファイル)の正しいパスを指定します。ファイル名の前後に余分な空白があるかどうかを確認します。 - `rippled.cfg`ファイルを編集し、`[validators_file]`設定を削除します。バリデータ設定を`rippled.cfg`ファイルに直接追加します。例: - ``` - [validator_list_sites] - https://vl.ripple.com - - [validator_list_keys] - ED2677ABFFD1B33AC6FBC3062B71F1E8397C1505E1C42C64D11AD1B28FF73F4734 - ``` + ``` + [validator_list_sites] + https://vl.ripple.com + [validator_list_keys] + ED2677ABFFD1B33AC6FBC3062B71F1E8397C1505E1C42C64D11AD1B28FF73F4734 + ``` ## データベースパスを作成できない @@ -121,7 +120,6 @@ Aborted (core dumped) - `rippled`ユーザに対し、設定されているデータベースパスへの書き込み権限を付与します。 - ## 状態DBエラー `rippled`サーバの状態データベースが破損している場合に、以下のエラーが発生する可能性があります。これは、予期しないシャットダウンが行われた場合、またはデータベースのタイプをRocksDBからNuDBに変更したが構成ファイルの`path`設定と`[database_path]`設定を変更しなかった場合に発生する可能性があります。 @@ -161,7 +159,6 @@ path=/var/lib/rippled/custom_nudb_path /var/lib/rippled/custom_sqlite_db_path ``` - ## オンライン削除の値がレジャー履歴の値よりも少ない 以下のようなエラーメッセージが出力される場合、`rippled.cfg`ファイルの`[ledger_history]`と`online_delete`に矛盾する値が指定されています。 @@ -174,7 +171,6 @@ Terminating thread rippled: main: unhandled St13runtime_error 'online_delete mus この問題を修正するには、`rippled.cfg`ファイルを編集し、`[ledger_history]`オプションまたは`online_delete`オプションのいずれかを変更または削除します。(`[ledger_history]`を省略すると、デフォルトの256レジャーバージョンに設定されるので、`online_delete`を残して指定する場合は256よりも大きな値にする必要があります。`online_delete`を省略すると、古いレジャーバージョンの自動削除が無効になります。) - ## node_sizeの値が正しくない 以下のようなエラーが出力される場合は、`rippled.cfg`ファイルの`node_size`設定の値が誤っています。 @@ -185,19 +181,17 @@ Terminating thread rippled: main: unhandled N5beast14BadLexicalCastE 'std::bad_c `node_size`フィールドの有効なパラメーターは`tiny`、`small`、`medium`、`large`、`huge`です。詳細は、[ノードサイズ](../installation/capacity-planning.md#ノードサイズ)をご覧ください。 - - ## 関連項目 - **コンセプト:** - - [`rippled`サーバ](../../concepts/networks-and-servers/index.md) - - [技術に関するよくある質問](/about/faq.md) + - [`rippled`サーバ](../../concepts/networks-and-servers/index.md) + - [技術に関するよくある質問](/about/faq.md) - **チュートリアル:** - - [ログメッセージについて](understanding-log-messages.md) - - [容量の計画](../installation/capacity-planning.md) + - [ログメッセージについて](understanding-log-messages.md) + - [容量の計画](../installation/capacity-planning.md) - **リファレンス:** - - [rippled APIリファレンス](../../references/http-websocket-apis/index.md) - - [`rippled`コマンドラインの使用](../commandline-usage.md) - - [server_infoメソッド][] + - [rippled APIリファレンス](../../references/http-websocket-apis/index.md) + - [`rippled`コマンドラインの使用](../commandline-usage.md) + - [server_infoメソッド][] {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/infrastructure/troubleshooting/understanding-log-messages.md b/@l10n/ja/docs/infrastructure/troubleshooting/understanding-log-messages.md index fc73191119..6ac600f95b 100644 --- a/@l10n/ja/docs/infrastructure/troubleshooting/understanding-log-messages.md +++ b/@l10n/ja/docs/infrastructure/troubleshooting/understanding-log-messages.md @@ -2,10 +2,11 @@ html: understanding-log-messages.html parent: troubleshoot-the-rippled-server.html seo: - description: デバッグログの警告メッセージとエラーメッセージを解釈して対応します。 + description: デバッグログの警告メッセージとエラーメッセージを解釈して対応します。 labels: - コアサーバ --- + # ログメッセージについて 以下のセクションでは、[`rippled`サーバ](../../concepts/networks-and-servers/index.md)のデバッグログに出力される最も一般的なログメッセージタイプとその解釈を説明します。 @@ -34,7 +35,6 @@ Terminating thread rippled: main: unhandled St13runtime_error 上記のいずれにも該当しない場合は、その問題をセキュリティ上重要なバグとしてRippleに報告してください。Rippleでクラッシュを再現できる場合は、報奨を受領できる可能性があります。詳細はをご覧ください。 - ## Already validated sequence at or past 以下のようなログメッセージが出力される場合は、サーバが異なるレジャーインデックスの検証を順不同で受信しています。 @@ -49,7 +49,6 @@ Terminating thread rippled: main: unhandled St13runtime_error - メッセージに表示されているバリデータにネットワークの問題がある。 - メッセージに表示されているバリデータが悪意のある振る舞いをしている。 - ## Connection reset by peer 以下のメッセージは、ピア`rippled`サーバによって接続が閉じられたことを示します。 @@ -65,7 +64,6 @@ Terminating thread rippled: main: unhandled St13runtime_error - 1つ以上の特定のピアへのインターネット接続が切断されている。 - サーバからのリクエストでピアに過剰な負担がかかり、ピアがサーバをドロップした。 - ## InboundLedger 11 timeouts for ledger ```text @@ -81,7 +79,6 @@ InboundLedger:WRN 11 timeouts for ledger 8265938 s2.ripple.com 51235 ``` - ## InboundLedger Want hash 以下のようなログメッセージは、サーバが他のサーバにレジャーデータをリクエストしていることを示しています。 @@ -92,7 +89,6 @@ InboundLedger:WRN Want: 5AE53B5E39E6388DBACD0959E5F5A0FCAF0E0DCBA45D9AB15120E8CD これは、サーバの同期中、埋め戻し中は正常です。 - ## LoadMonitor:WRN Job 以下のようなメッセージは、機能の実行に時間がかかっている場合(この例では11秒以上)に出力されます。 @@ -124,7 +120,6 @@ type=RocksDB # ... more config omitted ``` - ## Potential Censorship XRP Ledgerが取引検閲の可能性を検出すると、以下のようなログメッセージが出力されます。ログメッセージと取引検閲検出機能の詳細は、[取引検閲の検知](../../concepts/networks-and-servers/transaction-censorship-detection.md)をご覧ください。 @@ -141,8 +136,6 @@ LedgerConsensus:WRN Potential Censorship: Eligible tx E08D6E9754025BA2534A787076 LedgerConsensus:ERR Potential Censorship: Eligible tx E08D6E9754025BA2534A78707605E0601F03ACE063687A0CA1BDDACFCD1698C7, which we are tracking since ledger 18851530 has not been included as of ledger 18851605. Additional warnings suppressed. ``` - - ## Unable to determine hash of ancestor 以下のようなログメッセージは、サーバがピアからの検証メッセージを認識するけれども、サーバが基盤としている親レジャーバージョンを認識しない場合に発生します。これは、サーバがネットワークの他の部分と同期していない場合に発生することがあります。 @@ -153,8 +146,6 @@ LedgerConsensus:ERR Potential Censorship: Eligible tx E08D6E9754025BA2534A787076 {% partial file="/@l10n/ja/docs/_snippets/unsynced_warning_logs.md" /%} - - ## View of consensus changed during open 以下のようなログメッセージが出力される場合は、サーバがネットワークの他の部分と同期していません。 @@ -167,8 +158,6 @@ LedgerConsensus:ERR Potential Censorship: Eligible tx E08D6E9754025BA2534A787076 {% partial file="/@l10n/ja/docs/_snippets/unsynced_warning_logs.md" /%} - - ## We are not running on the consensus ledger ```text @@ -177,19 +166,17 @@ NetworkOPs:WRN We are not running on the consensus ledger {% partial file="/@l10n/ja/docs/_snippets/unsynced_warning_logs.md" /%} - - ## 関連項目 - **コンセプト:** - - [`rippled`サーバ](../../concepts/networks-and-servers/index.md) - - [技術に関するよくある質問](/about/faq.md) + - [`rippled`サーバ](../../concepts/networks-and-servers/index.md) + - [技術に関するよくある質問](/about/faq.md) - **チュートリアル:** - - [問題の診断](diagnosing-problems.md) - - [容量の計画](../installation/capacity-planning.md) + - [問題の診断](diagnosing-problems.md) + - [容量の計画](../installation/capacity-planning.md) - **リファレンス:** - - [rippled APIリファレンス](../../references/http-websocket-apis/index.md) - - [`rippled`コマンドラインの使用](../commandline-usage.md) - - [server_infoメソッド][] + - [rippled APIリファレンス](../../references/http-websocket-apis/index.md) + - [`rippled`コマンドラインの使用](../commandline-usage.md) + - [server_infoメソッド][] {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/introduction/crypto-wallets.md b/@l10n/ja/docs/introduction/crypto-wallets.md index f81df7fa47..6af11216c4 100644 --- a/@l10n/ja/docs/introduction/crypto-wallets.md +++ b/@l10n/ja/docs/introduction/crypto-wallets.md @@ -2,15 +2,15 @@ html: crypto-wallets.html parent: intro-to-xrpl.html seo: - description: ウォレットは、XRP Ledger上でユーザのXRPを管理するための便利な方法です。 + description: ウォレットは、XRP Ledger上でユーザのXRPを管理するための便利な方法です。 labels: - ブロックチェーン --- + # 暗号通貨のウォレット 暗号通貨のウォレットは、XRP Ledger上であなたのアカウントと資金を管理する方法を提供します。多くのウォレットがありますが、最終的にはあなたのニーズとXRPを利用する上での快適さによって、適切なウォレットを選ぶことができます。 - ## カストディアル vs ノンカストディアル ウォレット ウォレットを選ぶときの大きなポイントは、カストディアルウォレットにするかノンカストディアルウォレットにするかの選択です。 @@ -29,7 +29,6 @@ labels: カストディアルウォレットとノンカストディアルウォレットの両方のユーザは、資金を盗み取ろうとする悪意のあるユーザから身を守る必要があります。カストディアルウォレットでは、アプリやサイトへのログインIDとパスワードを管理する必要があり、ノンカストディアルウォレットでは、オンレジャーアカウントへのシークレットキーを管理する必要があります。どちらの場合も、ソフトウェアのアップデートや依存関係を通じて攻撃者が悪意のあるコードをウォレットに読み込ませるサプライチェーン攻撃のような脆弱性から保護するために、ウォレットプロバイダ自身のセキュリティ対策も重要です。一方、カストディアルウォレットは、複数の顧客の資金に即座にアクセスできるため、攻撃者の大きな標的になり得ます。 - ## ハードウェア vs ソフトウェア ウォレット また、ウォレットを選ぶ際の決め手として、ハードウェアウォレットとソフトウェアウォレットのどちらを選ぶかという点も重要です。 @@ -40,10 +39,8 @@ labels: 一方で、ソフトウェアウォレットは、完全にデジタル化されているのが特徴です。そのため、使い勝手が良い反面、安全性に劣りますが、通常、使い勝手を向上させるための追加機能が付いています。最終的に、この2つを選択するのは、あなた自身の使いやすさと、簡単であることがどれだけ重要であるかということになります。 - ## 自分自身のウォレットを作成する XRP Ledgerはオープンソースプロジェクトであり、クライアントライブラリやAPIメソッドが公開されています。技術的にはHTTP/WebSocketツールを使ってレジャーとやりとりすることができますが、日常的な使用としては現実的ではありません。独自のウォレットを作成してレジャーとやり取りすることはできますが、このオプションを選択する前に、アカウント、トランザクション、レジャーがどのように連携しているかを正確に理解する必要があります。 - 次のページ: [トランザクションとリクエスト](transactions-and-requests.md) diff --git a/@l10n/ja/docs/introduction/index.md b/@l10n/ja/docs/introduction/index.md index 5fd3218f35..0290ae8716 100644 --- a/@l10n/ja/docs/introduction/index.md +++ b/@l10n/ja/docs/introduction/index.md @@ -5,9 +5,9 @@ metadata: indexPage: true top_nav_grouping: カテゴリ --- + # 基本 XRP Ledger(XRPL)の主要な機能を簡単に紹介します。これを読んでXRPLのハイレベルな理解を深め、その後、特に興味のある分野についての詳細を読むことができます。XRP Ledgerは、アカウント間のトークンのデジタルトランザクションを永続的に記録するブロックチェーンです。以下のセクションは、その文章で紹介された概念を拡張するものです。 - {% child-pages /%} diff --git a/@l10n/ja/docs/introduction/software-ecosystem.md b/@l10n/ja/docs/introduction/software-ecosystem.md index 3c83cf238c..633213dea1 100644 --- a/@l10n/ja/docs/introduction/software-ecosystem.md +++ b/@l10n/ja/docs/introduction/software-ecosystem.md @@ -2,10 +2,11 @@ html: software-ecosystem.html parent: introduction.html seo: - description: どのようなXRP Ledgerソフトウェアがあり、どのように組み合わされているのか、その概要を知ることができます。 + description: どのようなXRP Ledgerソフトウェアがあり、どのように組み合わされているのか、その概要を知ることができます。 labels: - コアサーバ --- + # ソフトウェアエコシステム XRP Ledgerは、価値のインターネットを実現するソフトウェアプロジェクトの、深く階層的なエコシステムの本拠地となっています。 XRP Ledgerと相互作用する全てのプロジェクト、ツール、ビジネスをリストアップすることは不可能なので、このページではいくつかのカテゴリを挙げ、このウェブサイトで文書化されているいくつかの中心的なプロジェクトに焦点を当てます。 @@ -21,7 +22,6 @@ XRP Ledgerは、価値のインターネットを実現するソフトウェア - [_アプリとサービス_](#アプリとサービス)は、XRP Ledgerでのユーザレベルのやり取りや、さらに上位のアプリやサービスに対する基盤を提供します。 - ### コアサーバ XRP Ledgerの中心であるピアツーピアネットワークは、コンセンサスとトランザクションプロセスのルールを実行するために、信頼性が高く、効率のよいサーバを必要とします。XRP Ledger財団では、このサーバソフトウェアのリファレンス実装である[**`rippled`**](../concepts/networks-and-servers/index.md)(発音は「リップルディー」)を公開しています。このサーバは、[一般利用が可能なオープンソースライセンス](https://github.com/XRPLF/rippled/blob/develop/LICENSE.md)の下で使用できるため、誰でもこのサーバの自身のインスタンスを検証し、変更することができます。また、いくつかの制限の下でそれを再公開することができます。 @@ -32,7 +32,6 @@ XRP Ledgerの中心であるピアツーピアネットワークは、コンセ コアサーバは、ユーザがデータを調べたり、サーバを管理したり、トランザクションを送信したりするために、[HTTP / WebSocket API](../references/http-websocket-apis/index.md)を公開します。また、HTTP / WebSocket APIを提供するものの、ピアツーピアネットワークに直接接続せず、トランザクションを処理したりコンセンサスに参加したりしないサーバも存在します。Reportingモードで動作する`rippled`サーバやClioサーバなどのこれらのサーバは、トランザクションを処理するためにP2Pモードのコアサーバに依存しています。 - ### クライアントライブラリ ライブラリは、通常HTTP / WebSocket APIを通じてXRP Ledgerにアクセスする際の共通作業の一部をシンプルにするものです。これらは、データを様々なプログラミング言語にとってより身近で便利な形に変換し、一般的な操作の実装を備えています。クライアントライブラリの中には、XRP Ledger財団によって公式にメンテナンスされているものもあれば、コミュニティの他のエンティティによってメンテナンスされているものもあります。 @@ -45,7 +44,6 @@ XRP Ledgerの中心であるピアツーピアネットワークは、コンセ 現在利用可能なクライアントライブラリについては、[クライアントライブラリ](../references/client-libraries.md)をご覧ください。 - ### ミドルウェア ミドルウェアサービスは、一方ではXRP Ledger APIを利用し、もう一方では独自のAPIを提供するプログラムです。抽象化層を提供して、いくつかの一般的な機能をサービスとして提供することで上位のアプリケーションを容易に構築できるようにします。 @@ -54,7 +52,6 @@ XRP Ledgerの中心であるピアツーピアネットワークは、コンセ クライアントライブラリは、インポートしたプログラムとともに新たにインスタンス化され、シャットダウンされますが、ミドルウェアサービスは通常、無期限に稼働し続け、独自のデータベース(リレーショナルSQLデータベースなど)や設定ファイルを持つことがあります。クラウドサービスとして提供されているものもあり、価格や利用方法にさまざまな制限があります。 - ### アプリとサービス 最上層は、最もエキサイティングなことが起こる場所です。アプリとサービスは、XRP Ledgerに接続するための手段をユーザとデバイスに提供します。私設取引所、トークン発行者、マーケットプレイス、分散型取引所へのインターフェース、ウォレットなどのサービスは、XRPやあらゆる種類のトークンを含む様々な資産を売買・取引するためのユーザインターフェースを提供します。その他にも、さらに上位に重ねた追加サービスなど、多くの可能性が存在します。 diff --git a/@l10n/ja/docs/introduction/transactions-and-requests.md b/@l10n/ja/docs/introduction/transactions-and-requests.md index f31086f7a3..9891fbba12 100644 --- a/@l10n/ja/docs/introduction/transactions-and-requests.md +++ b/@l10n/ja/docs/introduction/transactions-and-requests.md @@ -2,7 +2,7 @@ html: txn-and-requests.html parent: intro-to-xrpl.html seo: - description: レジャーとのやりとりは、すべてトランザクションかリクエストで行われます。 + description: レジャーとのやりとりは、すべてトランザクションかリクエストで行われます。 labels: - ブロックチェーン --- @@ -110,6 +110,7 @@ ClioサーバはXRPL上の他のrippledサーバの負荷の一部を軽減し } } ``` + Accountのフィールドについては、[アカウント](../concepts/accounts/index.md)をご覧ください。 次のページ: [ソフトウェアエコシステム](software-ecosystem.md) diff --git a/@l10n/ja/docs/introduction/what-is-the-xrp-ledger.md b/@l10n/ja/docs/introduction/what-is-the-xrp-ledger.md index 636883d127..0dd180842b 100644 --- a/@l10n/ja/docs/introduction/what-is-the-xrp-ledger.md +++ b/@l10n/ja/docs/introduction/what-is-the-xrp-ledger.md @@ -2,15 +2,15 @@ html: what-is-the-xrp-ledger.html parent: introduction.html seo: - description: ブロックチェーン「XRP Ledger」についてご紹介します。 + description: ブロックチェーン「XRP Ledger」についてご紹介します。 labels: - ブロックチェーン --- + # XRP Ledgerとは? XRPは、中央集権的な機関が管理せずブロックチェーン暗号を用いた分散型システムであるXRP Ledgerによってトランザクションが検証され記録が管理されるデジタル通貨です。 - ## ブロックチェーンとは? ブロックチェーンは、連続的に変化するデータのリストです。ブロックチェーンは、データのブロックからなります。 diff --git a/@l10n/ja/docs/introduction/what-is-xrp.md b/@l10n/ja/docs/introduction/what-is-xrp.md index c2758ea982..8ddbf28bb3 100644 --- a/@l10n/ja/docs/introduction/what-is-xrp.md +++ b/@l10n/ja/docs/introduction/what-is-xrp.md @@ -2,10 +2,11 @@ html: what-is-xrp.html parent: introduction.html seo: - description: XRP Ledgerで取引される暗号通貨、XRPについてご紹介します。 + description: XRP Ledgerで取引される暗号通貨、XRPについてご紹介します。 labels: - ブロックチェーン --- + # XRPとは? XRPはXRP Ledgerにて使用可能な暗号通貨です。 @@ -44,7 +45,6 @@ XRPはXRP Ledgerにて使用可能な暗号通貨です。 暗号通貨の価値は、保有者が通貨に寄せる信頼から生まれます。記録が分散していることや、資金を保護するための暗号的セキュリティ対策を考えると、暗号通貨は従来の不換紙幣よりもはるかに堅牢で安全、かつ便利な通貨形態と考えることができるのではないでしょうか。 - ## 暗号通貨であるXRPL XRP Ledgerは、2011年から2012年初頭にかけて、Jed McCaleb、Arthur Britto、David Schwartzによって開発されました。2012年9月、JedとArthurはChris LarsenとともにRippleと名の会社(当時はOpenCoin Inc.という会社)を設立し、Ripple社がXRP Ledger上で開発を行う代わりに、800億XRPをRipple社へ譲渡することを決定しました。 @@ -59,15 +59,14 @@ XRP Ledgerは、2011年から2012年初頭にかけて、Jed McCaleb、Arthur Br 元々、XRP Ledgerは、その技術が[複数のホップと通貨を通じて波及(ripple)する](../concepts/tokens/fungible-tokens/rippling.md)支払いを可能にする方法から「リップル」と呼ばれていました。Ledgerに組み込まれたネイティブアセットについて、クリエイターたちは「リップルクレジット」または「リップル」という用語と、[ISO 4217](https://www.iso.org/iso-4217-currency-codes.html)標準の非国家通貨を表すX接頭辞から「XRP」というティッカーシンボルを選びました。同社は「Ripple Labs」として登録。「XRP」という名称は、技術や会社の類似した名称との混同を避けるため、あらゆる文脈で資産を指すために使用されるようになり、最終的に同社は自らの名称を「Ripple」に短縮しました。2018年5月、[コミュニティは、それまで会社とデジタル資産の両方に使用されていたトリスケリオンのロゴと区別するために、XRPを表す新しい「X」のシンボル](https://twitter.com/xrpsymbol/status/1006925937571713025)を選択しました。 -| XRPの"X"ロゴ | Ripple社のトリスケリオン | -|:-------------------------------------|:-------------------------------------------| +| XRPの"X"ロゴ | Ripple社のトリスケリオン | +| :------------------------------ | :------------------------------------------------- | | !["X"ロゴ](/img/xrp-x-logo.png) | ![トリスケリオン](/docs/img/ripple-triskelion.png) | - ### 商標 「XRP」は、米国や中国、エストニアなどの国々におけるXRPL財団の登録商標です。 この商標出願は2013年に米国特許商標庁(USPTO)に登録され、OpenCoin IncとRipple Labs Incが譲受人となっています。2022年に商標の譲渡が更新され、現在はMITTETULUNDUSÜHING XRP LEDGER TRUST(「XRPLF」)に譲渡されています。 - + 次のページ: [暗号通貨のウォレット](crypto-wallets.md) diff --git a/@l10n/ja/docs/references/client-libraries.md b/@l10n/ja/docs/references/client-libraries.md index 1d6fed9867..73fc11edd8 100644 --- a/@l10n/ja/docs/references/client-libraries.md +++ b/@l10n/ja/docs/references/client-libraries.md @@ -2,20 +2,21 @@ html: client-libraries.html parent: references.html seo: - description: これらのライブラリを使用して、お好みのプログラミング言語からXRP Ledgerにアクセスします。 + description: これらのライブラリを使用して、お好みのプログラミング言語からXRP Ledgerにアクセスします。 --- + # クライアントライブラリ これらのクライアントライブラリは、XRP Ledgerのデータにアクセスし処理するための一般的な作業の一部を簡素化し、それぞれのプログラミング言語のネイティブな規約に従った形でデータを表示します。 その他のプログラミング言語の場合、[HTTP APIs](http-websocket-apis/index.md)を通してXRP Ledgerにアクセスすることが可能です。 -| 言語 | ライブラリ名 | Get Started | APIリファレンス | ソースコード | -|---------------------------------|------------------------|--------------|---------------|-------------| -| **Python** | `xrpl-py` | [Pythonを使ってみよう](../tutorials/python/build-apps/get-started.md) | [API リファレンス](https://xrpl-py.readthedocs.io/) | [リポジトリ](https://github.com/XRPLF/xrpl-py) | -| **JavaScript** / **TypeScript** | `xrpl.js` | [JavaScriptを使ってみよう](../tutorials/javascript/build-apps/get-started.md) | [API リファレンス](https://js.xrpl.org/) | [リポジトリ](https://github.com/XRPLF/xrpl.js) | -| **JavaScript** / **TypeScript** | `xrpl-client` | [触ってみる](https://jsfiddle.net/WietseWind/35az6p1b/) | [NPM リファレンス](https://www.npmjs.com/package/xrpl-client) | [リポジトリ](https://github.com/XRPL-Labs/xrpl-client) | -| **JavaScript** / **TypeScript** | `xrpl-accountlib` | [触ってみる](https://jsfiddle.net/WietseWind/gkefpnu0/) | [NPM リファレンス](https://www.npmjs.com/package/xrpl-accountlib) | [リポジトリ](https://github.com/WietseWind/xrpl-accountlib) | -| **C++** | `rippled` 署名ライブラリ | [署名ライブラリを使ってみよう](https://github.com/XRPLF/rippled/tree/develop/Builds/linux#signing-library) | | ([`rippled`](https://github.com/XRPLF/rippled/))の一部 | -| **Java** | `xrpl4j` | [Javaを使ってみよう](../tutorials/java/build-apps/get-started.md) | [API リファレンス](https://javadoc.io/doc/org.xrpl/) | [リポジトリ](https://github.com/XRPLF/xrpl4j) | -| **PHP** | `XRPL_PHP` | [PHPを使ってみよう](../tutorials/php/build-apps/get-started.md) | [XRPL_PHP ドキュメント](https://alexanderbuzz.github.io/xrpl-php-docs/) | [リポジトリ](https://github.com/AlexanderBuzz/xrpl-php) | +| 言語 | ライブラリ名 | Get Started | APIリファレンス | ソースコード | +| ------------------------------- | ------------------------ | ---------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------- | +| **Python** | `xrpl-py` | [Pythonを使ってみよう](../tutorials/python/build-apps/get-started.md) | [API リファレンス](https://xrpl-py.readthedocs.io/) | [リポジトリ](https://github.com/XRPLF/xrpl-py) | +| **JavaScript** / **TypeScript** | `xrpl.js` | [JavaScriptを使ってみよう](../tutorials/javascript/build-apps/get-started.md) | [API リファレンス](https://js.xrpl.org/) | [リポジトリ](https://github.com/XRPLF/xrpl.js) | +| **JavaScript** / **TypeScript** | `xrpl-client` | [触ってみる](https://jsfiddle.net/WietseWind/35az6p1b/) | [NPM リファレンス](https://www.npmjs.com/package/xrpl-client) | [リポジトリ](https://github.com/XRPL-Labs/xrpl-client) | +| **JavaScript** / **TypeScript** | `xrpl-accountlib` | [触ってみる](https://jsfiddle.net/WietseWind/gkefpnu0/) | [NPM リファレンス](https://www.npmjs.com/package/xrpl-accountlib) | [リポジトリ](https://github.com/WietseWind/xrpl-accountlib) | +| **C++** | `rippled` 署名ライブラリ | [署名ライブラリを使ってみよう](https://github.com/XRPLF/rippled/tree/develop/Builds/linux#signing-library) | | ([`rippled`](https://github.com/XRPLF/rippled/))の一部 | +| **Java** | `xrpl4j` | [Javaを使ってみよう](../tutorials/java/build-apps/get-started.md) | [API リファレンス](https://javadoc.io/doc/org.xrpl/) | [リポジトリ](https://github.com/XRPLF/xrpl4j) | +| **PHP** | `XRPL_PHP` | [PHPを使ってみよう](../tutorials/php/build-apps/get-started.md) | [XRPL_PHP ドキュメント](https://alexanderbuzz.github.io/xrpl-php-docs/) | [リポジトリ](https://github.com/AlexanderBuzz/xrpl-php) | diff --git a/@l10n/ja/docs/references/data-api.md b/@l10n/ja/docs/references/data-api.md index cf4a576fc6..fde213c7ef 100644 --- a/@l10n/ja/docs/references/data-api.md +++ b/@l10n/ja/docs/references/data-api.md @@ -2,10 +2,11 @@ html: data-api.html parent: references.html seo: - description: (非推奨)XRP Ledger分析と履歴データに対するRESTfulインターフェイスです。 + description: (非推奨)XRP Ledger分析と履歴データに対するRESTfulインターフェイスです。 status: removed nav_omit: true --- + # Ripple Data API v2 {% admonition type="danger" name="警告" %}Ripple Data API v2は非推奨となりました。代わりに[HTTP / WebSocket API](http-websocket-apis/index.md)を使って下さい。{% /admonition %} diff --git a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/index.md b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/index.md index 90721e7723..2bcdc4aa2b 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/index.md +++ b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/index.md @@ -2,66 +2,62 @@ html: admin-api-methods.html parent: http-websocket-apis.html seo: - description: これらの管理APIメソッドを使用してrippledサーバを管理します。 + description: これらの管理APIメソッドを使用してrippledサーバを管理します。 labels: - コアサーバ --- + # 管理APIメソッド `rippled`サーバと直接通信する際には管理APIメソッドを使用します。管理メソッドは、信頼できるサーバ運用担当者のみを対象としています。管理メソッドには、サーバの管理、監視、デバッグのためのコマンドが含まれています。 管理コマンドを使用できるのは、管理者として、`rippled.cfg`ファイルに指定されているホストとポートで`rippled`サーバに接続している場合に限られます。デフォルトでは、コマンドラインクライアントが管理接続を使用します。`rippled`への接続についての詳細は、[rippled API入門](../../../tutorials/http-websocket-apis/build-apps/get-started.md)をご覧ください。 - ## [キー生成メソッド](key-generation-methods/index.md) キーを生成および管理するには、以下のメソッドを使用します。 -* **[`validation_create`](key-generation-methods/validation_create.md)** - 新しいrippledバリデータのキーを生成します。 -* **[`wallet_propose`](key-generation-methods/wallet_propose.md)** - 新規アカウントのキーを生成します。 - +- **[`validation_create`](key-generation-methods/validation_create.md)** - 新しいrippledバリデータのキーを生成します。 +- **[`wallet_propose`](key-generation-methods/wallet_propose.md)** - 新規アカウントのキーを生成します。 ## [ロギングおよびデータ管理のメソッド](logging-and-data-management-methods/index.md) ログレベルとその他のデータ(レジャーなど)の管理には、以下のメソッドを使用します。 -* **[`can_delete`](logging-and-data-management-methods/can_delete.md)** - 特定レジャーまでのレジャーのオンライン削除を許可します。 -* **[`ledger_cleaner`](logging-and-data-management-methods/ledger_cleaner.md)** - レジャークリーナーサービスが破損データを確認するように設定します。 -* **[`ledger_request`](logging-and-data-management-methods/ledger_request.md)** - ピアサーバに対し特定のレジャーバージョンを照会します。 -* **[`log_level`](logging-and-data-management-methods/log_level.md)** - ログの詳細レベルを取得または変更します。 -* **[`logrotate`](logging-and-data-management-methods/logrotate.md)** - ログファイルを再度開きます。 - +- **[`can_delete`](logging-and-data-management-methods/can_delete.md)** - 特定レジャーまでのレジャーのオンライン削除を許可します。 +- **[`ledger_cleaner`](logging-and-data-management-methods/ledger_cleaner.md)** - レジャークリーナーサービスが破損データを確認するように設定します。 +- **[`ledger_request`](logging-and-data-management-methods/ledger_request.md)** - ピアサーバに対し特定のレジャーバージョンを照会します。 +- **[`log_level`](logging-and-data-management-methods/log_level.md)** - ログの詳細レベルを取得または変更します。 +- **[`logrotate`](logging-and-data-management-methods/logrotate.md)** - ログファイルを再度開きます。 ## [サーバ制御メソッド](server-control-methods/index.md) rippledサーバの管理には、以下のメソッドを使用します。 -* **[`connect`](peer-management-methods/connect.md)** - rippledサーバを特定のピアに強制的に接続します。 -* **[`ledger_accept`](server-control-methods/ledger_accept.md)** - スタンドアロンモードでレジャーを閉鎖し、次のレジャーに進みます。 -* **[`stop`](server-control-methods/stop.md)** - rippledサーバをシャットダウンします。 -* **[`validation_seed`](server-control-methods/validation_seed.md)** - 検証に使用するキーを一時的に設定します。 - +- **[`connect`](peer-management-methods/connect.md)** - rippledサーバを特定のピアに強制的に接続します。 +- **[`ledger_accept`](server-control-methods/ledger_accept.md)** - スタンドアロンモードでレジャーを閉鎖し、次のレジャーに進みます。 +- **[`stop`](server-control-methods/stop.md)** - rippledサーバをシャットダウンします。 +- **[`validation_seed`](server-control-methods/validation_seed.md)** - 検証に使用するキーを一時的に設定します。 ## [ステータスおよびデバッグメソッド](status-and-debugging-methods/index.md) ネットワークとサーバのステータスを確認するには、以下のメソッドを使用します。 -* **[`consensus_info`](status-and-debugging-methods/consensus_info.md)** - 発生したコンセンサスの状態に関する情報を取得します。 -* **[`feature`](status-and-debugging-methods/feature.md)** - プロトコルAmendmentに関する情報を取得します。 -* **[`fetch_info`](status-and-debugging-methods/fetch_info.md)** - サーバとネットワークの同期に関する情報を取得します。 -* **[`get_counts`](status-and-debugging-methods/get_counts.md)** - サーバ内部とメモリー使用状況に関する統計情報を取得します。 -* **[`peers`](peer-management-methods/peers.md)** - 接続しているピアサーバに関する情報を取得します。 -* **[`print`](status-and-debugging-methods/print.md)** - 内部サブシステムに関する情報を取得します。 -* **[`validators`](status-and-debugging-methods/validators.md)** - 現在のバリデータに関する情報を取得します。 -* **[`validator_list_sites`](status-and-debugging-methods/validator_list_sites.md)** - バリデータリストを公開するサイトに関する情報を取得します。 - +- **[`consensus_info`](status-and-debugging-methods/consensus_info.md)** - 発生したコンセンサスの状態に関する情報を取得します。 +- **[`feature`](status-and-debugging-methods/feature.md)** - プロトコルAmendmentに関する情報を取得します。 +- **[`fetch_info`](status-and-debugging-methods/fetch_info.md)** - サーバとネットワークの同期に関する情報を取得します。 +- **[`get_counts`](status-and-debugging-methods/get_counts.md)** - サーバ内部とメモリー使用状況に関する統計情報を取得します。 +- **[`peers`](peer-management-methods/peers.md)** - 接続しているピアサーバに関する情報を取得します。 +- **[`print`](status-and-debugging-methods/print.md)** - 内部サブシステムに関する情報を取得します。 +- **[`validators`](status-and-debugging-methods/validators.md)** - 現在のバリデータに関する情報を取得します。 +- **[`validator_list_sites`](status-and-debugging-methods/validator_list_sites.md)** - バリデータリストを公開するサイトに関する情報を取得します。 ## 廃止予定のメソッド 以下の管理コマンドは廃止予定であり、今後予告なしに削除される可能性があります。 -* `ledger_header` - 代わりに[ledgerメソッド][]を使用してください。 -* `unl_add`、`unl_delete`、`unl_list`、`unl_load`、`unl_network`、`unl_reset`、`unl_score` - 代わりに UNL管理用構成ファイルを使用してください。 -* `wallet_seed` - 代わりに[wallet_proposeメソッド][]を使用してください。 +- `ledger_header` - 代わりに[ledgerメソッド][]を使用してください。 +- `unl_add`、`unl_delete`、`unl_list`、`unl_load`、`unl_network`、`unl_reset`、`unl_score` - 代わりに UNL管理用構成ファイルを使用してください。 +- `wallet_seed` - 代わりに[wallet_proposeメソッド][]を使用してください。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/key-generation-methods/index.md b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/key-generation-methods/index.md index 891fadb0e0..d654dde2fd 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/key-generation-methods/index.md +++ b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/key-generation-methods/index.md @@ -4,9 +4,9 @@ parent: admin-api-methods.html metadata: indexPage: true --- + # キー生成メソッド 以下のメソッドを使用してキーを生成および管理することができます。 - {% child-pages /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/key-generation-methods/validation_create.md b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/key-generation-methods/validation_create.md index 808782e62f..f2e3e98fb5 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/key-generation-methods/validation_create.md +++ b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/key-generation-methods/validation_create.md @@ -2,12 +2,14 @@ html: validation_create.html parent: key-generation-methods.html seo: - description: rippledサーバがネットワークに対して自身の身元を識別させるのに使用できる暗号鍵を生成します。 + description: rippledサーバがネットワークに対して自身の身元を識別させるのに使用できる暗号鍵を生成します。 labels: - セキュリティ - コアサーバ --- + # validation_create + [[ソース]](https://github.com/XRPLF/rippled/blob/315a8b6b602798a4cff4d8e1911936011e12abdb/src/ripple/rpc/handlers/ValidationCreate.cpp "Source") `validation_create`コマンドキーを使用して、[`rippled`サーバがネットワークに対して自身の身元を識別させるのに使用できる暗号鍵](../../../../concepts/networks-and-servers/peer-protocol.md#ノードキーペア)を生成します。[wallet_proposeメソッド][]と同様に、このメソッドでは適切なフォーマットで一連のキーが単に生成されるだけです。XRP Ledgerのデータやサーバ構成は変更されません。 @@ -18,48 +20,54 @@ _`validation_create`メソッドは、権限のないユーザは実行できな **ヒント:** 堅牢なバリデータを設定するには、`validator-keys`ツール(`rippled` RPMに付属)を使用してバリデータトークン(ローテーション可能)とオフラインマスターキーを生成してください。詳細は、[rippledサーバで検証を有効化](../../../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md#3-rippledサーバで検証を有効化)をご覧ください。 - ### リクエストのフォーマット + リクエストのフォーマットの例: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": 0, - "command": "validation_create", - "secret": "BAWL MAN JADE MOON DOVE GEM SON NOW HAD ADEN GLOW TIRE" + "id": 0, + "command": "validation_create", + "secret": "BAWL MAN JADE MOON DOVE GEM SON NOW HAD ADEN GLOW TIRE" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "validation_create", - "params": [ - { - "secret": "BAWL MAN JADE MOON DOVE GEM SON NOW HAD ADEN GLOW TIRE" - } - ] + "method": "validation_create", + "params": [ + { + "secret": "BAWL MAN JADE MOON DOVE GEM SON NOW HAD ADEN GLOW TIRE" + } + ] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh #Syntax: validation_create [secret] rippled validation_create "BAWL MAN JADE MOON DOVE GEM SON NOW HAD ADEN GLOW TIRE" ``` + {% /tab %} {% /tabs %} リクエストには以下のパラメーターが含まれます。 -| `Field` | 型 | 説明 | -|:---------|:-------|:---------------------------------------------------------| +| `Field` | 型 | 説明 | +| :------- | :----- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `secret` | 文字列 | _(省略可)_ クレデンシャルを生成するときにこの値をシードとして使用します。同じシークレットを使用すると常に同じクレデンシャルが生成されます。シードは[RFC-1751](https://tools.ietf.org/html/rfc1751)フォーマットまたはXRP Ledgerの[base58][]フォーマットで指定できます。省略すると、ランダムシードが生成されます。 | {% admonition type="info" name="注記" %}バリデータのセキュリティは、シードのエントロピーに応じて異なります。シークレット値が強力なランダム性のソースを使用して生成されている場合を除き、実際の事業目的のためにシークレット値を使用しないでください。新しいクレデンシャルを初めて生成するときには`secret`を省略することが推奨されます。{% /admonition %} @@ -71,19 +79,22 @@ rippled validation_create "BAWL MAN JADE MOON DOVE GEM SON NOW HAD ADEN GLOW TIR {% tabs %} {% tab label="JSON-RPC" %} + ```json { - "result" : { - "status" : "success", - "validation_key" : "FAWN JAVA JADE HEAL VARY HER REEL SHAW GAIL ARCH BEN IRMA", - "validation_public_key" : "n9Mxf6qD4J55XeLSCEpqaePW4GjoCR5U1ZeGZGJUCNe3bQa4yQbG", - "validation_seed" : "ssZkdwURFMBXenJPbrpE14b6noJSu" + "result": { + "status": "success", + "validation_key": "FAWN JAVA JADE HEAL VARY HER REEL SHAW GAIL ARCH BEN IRMA", + "validation_public_key": "n9Mxf6qD4J55XeLSCEpqaePW4GjoCR5U1ZeGZGJUCNe3bQa4yQbG", + "validation_seed": "ssZkdwURFMBXenJPbrpE14b6noJSu" } } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -97,21 +108,22 @@ Connecting to 127.0.0.1:5005 } } ``` + {% /tab %} {% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 -| `Field` | 型 | 説明 | -|:------------------------|:-------|:------------------------------------------| +| `Field` | 型 | 説明 | +| :---------------------- | :----- | :------------------------------------------------------------------------------------------------------------ | | `validation_key` | 文字列 | これらの検証クレデンシャルのシークレットキー([RFC-1751](https://tools.ietf.org/html/rfc1751)フォーマット)。 | -| `validation_public_key` | 文字列 | これらの検証クレデンシャルの公開鍵(XRP Ledgerの[base58][]エンコード文字列フォーマット)。 | -| `validation_seed` | 文字列 | これらの検証クレデンシャルのシークレットキー(XRP Ledgerの[base58][]エンコード文字列フォーマット)。 | +| `validation_public_key` | 文字列 | これらの検証クレデンシャルの公開鍵(XRP Ledgerの[base58][]エンコード文字列フォーマット)。 | +| `validation_seed` | 文字列 | これらの検証クレデンシャルのシークレットキー(XRP Ledgerの[base58][]エンコード文字列フォーマット)。 | ### 考えられるエラー -* [汎用エラータイプ][]のすべて。 -* `badSeed` - リクエストに無効なシード値が指定されていました。この場合は通常、シード値が異なるフォーマットの有効文字列(アカウントアドレス、検証の公開鍵など)である可能性があります。 +- [汎用エラータイプ][]のすべて。 +- `badSeed` - リクエストに無効なシード値が指定されていました。この場合は通常、シード値が異なるフォーマットの有効文字列(アカウントアドレス、検証の公開鍵など)である可能性があります。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/key-generation-methods/wallet_propose.md b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/key-generation-methods/wallet_propose.md index 3de4358797..c00ab52a0c 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/key-generation-methods/wallet_propose.md +++ b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/key-generation-methods/wallet_propose.md @@ -2,17 +2,19 @@ html: wallet_propose.html parent: key-generation-methods.html seo: - description: キーペアとXRP Ledgerアドレスを生成します。 + description: キーペアとXRP Ledgerアドレスを生成します。 labels: - セキュリティ - アカウント --- + # wallet_propose + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/WalletPropose.cpp "Source") `wallet_propose`メソッドを使用して、キーペアとXRP Ledgerアドレスを生成します。このコマンドは単にキーとアドレス値を生成し、XRP Ledger自体には何ら影響しません。レジャー上で資金供給済みのアドレスになるには、そのアドレスで、[必要準備金](../../../../concepts/accounts/reserves.md)を満たすのに十分なXRPの[Paymentトランザクションを受け取る](../../../../concepts/accounts/index.md#アカウントの作成)必要があります。 -*`wallet_propose`メソッドは、権限のないユーザは実行できない[管理メソッド](../index.md)です。*(このコマンドは、アカウントの機密情報を求めてネットワーク上の伝送情報をスニッフィングする人々から守るためにadminコマンドとされています。adminコマンドは通常、外部ネットワーク上で伝送されることはありません。) +_`wallet_propose`メソッドは、権限のないユーザは実行できない[管理メソッド](../index.md)です。_(このコマンドは、アカウントの機密情報を求めてネットワーク上の伝送情報をスニッフィングする人々から守るためにadminコマンドとされています。adminコマンドは通常、外部ネットワーク上で伝送されることはありません。) {% badge href="https://github.com/XRPLF/rippled/releases/tag/0.31.0" %}更新: rippled 0.31.0{% /badge %} @@ -23,68 +25,78 @@ labels: {% tabs %} {% tab label="WebSocket(キータイプあり)" %} + ```json { - "command": "wallet_propose", - "seed": "snoPBrXtMeMyMHUVTgbuqAfg1SUTb", - "key_type": "secp256k1" + "command": "wallet_propose", + "seed": "snoPBrXtMeMyMHUVTgbuqAfg1SUTb", + "key_type": "secp256k1" } ``` + {% /tab %} {% tab label="WebSocket(キータイプなし)" %} + ```json { - "command": "wallet_propose", - "passphrase": "masterpassphrase" + "command": "wallet_propose", + "passphrase": "masterpassphrase" } ``` + {% /tab %} {% tab label="JSON-RPC(キータイプあり)" %} + ```json { - "method": "wallet_propose", - "params": [ - { - "seed": "snoPBrXtMeMyMHUVTgbuqAfg1SUTb", - "key_type": "secp256k1" - } - ] + "method": "wallet_propose", + "params": [ + { + "seed": "snoPBrXtMeMyMHUVTgbuqAfg1SUTb", + "key_type": "secp256k1" + } + ] } ``` + {% /tab %} {% tab label="JSON-RPC(キータイプなし)" %} + ```json { - "method": "wallet_propose", - "params": [ - { - "passphrase": "snoPBrXtMeMyMHUVTgbuqAfg1SUTb" - } - ] + "method": "wallet_propose", + "params": [ + { + "passphrase": "snoPBrXtMeMyMHUVTgbuqAfg1SUTb" + } + ] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh #Syntax: wallet_propose [passphrase] rippled wallet_propose masterpassphrase ``` + {% /tab %} {% /tabs %} リクエストには以下のパラメーターを含めることができます。 -| `Field` | 型 | 説明 | -|:-------------|:-------|:-----------------------------------------------------| -| `key_type` | 文字列 | このキーペアの導出に使用する[署名アルゴリズム](../../../../concepts/accounts/cryptographic-keys.md#署名アルゴリズム)。有効な値は`ed25519`と`secp256k1`(すべて小文字)です。デフォルトは`secp256k1`です。 | +| `Field` | 型 | 説明 | +| :----------- | :----- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `key_type` | 文字列 | このキーペアの導出に使用する[署名アルゴリズム](../../../../concepts/accounts/cryptographic-keys.md#署名アルゴリズム)。有効な値は`ed25519`と`secp256k1`(すべて小文字)です。デフォルトは`secp256k1`です。 | | `passphrase` | 文字列 | _(省略可)_ このシード値からキーペアとアドレスを生成します。この値は、[16進数][]、XRP Ledgerの[base58][]フォーマット、[RFC-1751][]、または任意の文字列でフォーマットできます。`seed`または`seed_hex`とともに使用することはできません。 | -| `seed` | 文字列 | _(省略可能)_ このシード値からXRP Ledgerの[base58][]エンコードフォーマットでキーペアとアドレスを生成します。`passphrase`または`seed_hex`とともに使用することはできません。 | -| `seed_hex` | 文字列 | _(省略可能)_ このシード値から[16進数][]形式でキーペアとアドレスを生成します。`passphrase`または`seed`とともに使用することはできません。 | +| `seed` | 文字列 | _(省略可能)_ このシード値からXRP Ledgerの[base58][]エンコードフォーマットでキーペアとアドレスを生成します。`passphrase`または`seed_hex`とともに使用することはできません。 | +| `seed_hex` | 文字列 | _(省略可能)_ このシード値から[16進数][]形式でキーペアとアドレスを生成します。`passphrase`または`seed`とともに使用することはできません。 | 以下のフィールドのうち**1つ**を指定する必要があります。`passphrase`、`seed`、または`seed_hex`。3つすべてを省略すると、`rippled`によってランダムシードが使用されます。 @@ -96,18 +108,18 @@ rippled wallet_propose masterpassphrase 以下の場合には、既知のシードを指定します。 -* アドレスに関連するシードのみを知っていて、アドレスを再計算する -* `rippled`の機能をテストする +- アドレスに関連するシードのみを知っていて、アドレスを再計算する +- `rippled`の機能をテストする シードは、以下のどのフォーマットでも指定できます。 -* XRP Ledgerの[base58][]フォーマットのシークレットキー文字列。例: `snoPBrXtMeMyMHUVTgbuqAfg1SUTb`。 -* [RFC-1751][]フォーマット文字列(secp256k1キーペアのみ)。例: `I IRE BOND BOW TRIO LAID SEAT GOAL HEN IBIS IBIS DARE`。 -* 128ビットの[16進数][]文字列。例: `DEDCE9CE67B451D852FD4E846FCDE31C`。 -* シード値として使用する任意の文字列。例: `masterpassphrase`。 +- XRP Ledgerの[base58][]フォーマットのシークレットキー文字列。例: `snoPBrXtMeMyMHUVTgbuqAfg1SUTb`。 +- [RFC-1751][]フォーマット文字列(secp256k1キーペアのみ)。例: `I IRE BOND BOW TRIO LAID SEAT GOAL HEN IBIS IBIS DARE`。 +- 128ビットの[16進数][]文字列。例: `DEDCE9CE67B451D852FD4E846FCDE31C`。 +- シード値として使用する任意の文字列。例: `masterpassphrase`。 -[RFC-1751]: https://tools.ietf.org/html/rfc1751 "" -[16進数]: https://en.wikipedia.org/wiki/Hexadecimal "" +[RFC-1751]: https://tools.ietf.org/html/rfc1751 +[16進数]: https://en.wikipedia.org/wiki/Hexadecimal ### レスポンスのフォーマット @@ -116,6 +128,7 @@ rippled wallet_propose masterpassphrase {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 2, @@ -132,26 +145,30 @@ rippled wallet_propose masterpassphrase } } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "result": { - "account_id": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "key_type": "secp256k1", - "master_key": "I IRE BOND BOW TRIO LAID SEAT GOAL HEN IBIS IBIS DARE", - "master_seed": "snoPBrXtMeMyMHUVTgbuqAfg1SUTb", - "master_seed_hex": "DEDCE9CE67B451D852FD4E846FCDE31C", - "public_key": "aBQG8RQAzjs1eTKFEAQXr2gS4utcDiEC9wmi7pfUPTi27VCahwgw", - "public_key_hex": "0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020", - "status": "success" - } + "result": { + "account_id": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "key_type": "secp256k1", + "master_key": "I IRE BOND BOW TRIO LAID SEAT GOAL HEN IBIS IBIS DARE", + "master_seed": "snoPBrXtMeMyMHUVTgbuqAfg1SUTb", + "master_seed_hex": "DEDCE9CE67B451D852FD4E846FCDE31C", + "public_key": "aBQG8RQAzjs1eTKFEAQXr2gS4utcDiEC9wmi7pfUPTi27VCahwgw", + "public_key_hex": "0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020", + "status": "success" + } } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -169,22 +186,23 @@ Connecting to 127.0.0.1:5005 } } ``` + {% /tab %} {% /tabs %} レスポンスは[標準フォーマット][]に従い、正常に終了した場合、新しい(可能性がある)アカウントについての重要な各種情報を含みます。以下のフィールドを含みます。 -| `Field` | 型 | 説明 | -|:------------------|:-------|:------------------------------------------------| -| `key_type` | 文字列 | このキーペアの導出に使用された[署名アルゴリズム](../../../../concepts/accounts/cryptographic-keys.md#署名アルゴリズム)。有効な値は`ed25519`と`secp256k1`(すべて小文字)です。 | -| `master_seed` | 文字列 | これはキーペアの秘密鍵です。このアカウントに関するその他のあらゆる情報が、マスターシードからXRP Ledgerの[base58][]エンコード文字列フォーマットで引き出されます。通常、このフォーマットのキーを使用してトランザクションに署名します。 | -| `master_seed_hex` | 文字列 | 16進数形式のマスターシード。単純で広く支持されている秘密鍵表示法。トランザクションの署名に使用できます。 | -| `master_key` | 文字列 | **廃止予定** [RFC-1751][]形式のマスターシード。覚えやすく書き留めやすい秘密鍵。トランザクションの署名に使用できます。**注記:** `rippled`の実装では、RFC-1751からデコードした後、RFC-1751にエンコードする前に、キーのバイト順序が逆になります。別のRFC-1751実装を使用して、XRP Ledgerで使用するキーの読み書きを行う場合は、同様にして、`rippled`のRFC-1751エンコーディングとの互換性を保つ必要があります。 | -| `account_id` | 文字列 | XRP Ledgerの[base58][]フォーマットで作成されたアカウントの[アドレス][]。これは公開鍵ではありませんが、公開鍵を2回ハッシュ化したものです。チェックサムも持っているため、タイプミスした場合はほぼ間違いなく無効なアドレスとみなされ、有効だが異なるアドレスとはみなされません。これはXRP LedgerのアカウントのプライマリIDです。支払いを受けるときにこれを人に伝えたり、トランザクションにおいて、自身や、支払先、委託先識別するのに使用します。[マルチシグリスト](../../../../concepts/accounts/multi-signing.md)でもこれを使用して、他の署名者を識別します。 | -| `public_key` | 文字列 | XRP Ledgerの[base58][]エンコード文字列フォーマットで作成された、キーペアの公開鍵。`master_seed`から生成されます。 | -| `public_key_hex` | 文字列 | これは16進数で作成されたキーペアの公開鍵です。`master_seed`から生成されます。トランザクションの署名を検証する場合、`rippled`にはこの公開鍵が必要です。そのため、署名されたトランザクションのフォーマットの`SigningPubKey`フィールドには公開鍵が入力されています。 | -| `warning` | 文字列 | (削除される可能性あり)リクエストにシード値を指定した場合、このフィールドに安全でない可能性があるという警告が表示されます。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.32.0" %}新規: rippled 0.32.0{% /badge %} | +| `Field` | 型 | 説明 | +| :---------------- | :----- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `key_type` | 文字列 | このキーペアの導出に使用された[署名アルゴリズム](../../../../concepts/accounts/cryptographic-keys.md#署名アルゴリズム)。有効な値は`ed25519`と`secp256k1`(すべて小文字)です。 | +| `master_seed` | 文字列 | これはキーペアの秘密鍵です。このアカウントに関するその他のあらゆる情報が、マスターシードからXRP Ledgerの[base58][]エンコード文字列フォーマットで引き出されます。通常、このフォーマットのキーを使用してトランザクションに署名します。 | +| `master_seed_hex` | 文字列 | 16進数形式のマスターシード。単純で広く支持されている秘密鍵表示法。トランザクションの署名に使用できます。 | +| `master_key` | 文字列 | **廃止予定** [RFC-1751][]形式のマスターシード。覚えやすく書き留めやすい秘密鍵。トランザクションの署名に使用できます。**注記:** `rippled`の実装では、RFC-1751からデコードした後、RFC-1751にエンコードする前に、キーのバイト順序が逆になります。別のRFC-1751実装を使用して、XRP Ledgerで使用するキーの読み書きを行う場合は、同様にして、`rippled`のRFC-1751エンコーディングとの互換性を保つ必要があります。 | +| `account_id` | 文字列 | XRP Ledgerの[base58][]フォーマットで作成されたアカウントの[アドレス][]。これは公開鍵ではありませんが、公開鍵を2回ハッシュ化したものです。チェックサムも持っているため、タイプミスした場合はほぼ間違いなく無効なアドレスとみなされ、有効だが異なるアドレスとはみなされません。これはXRP LedgerのアカウントのプライマリIDです。支払いを受けるときにこれを人に伝えたり、トランザクションにおいて、自身や、支払先、委託先識別するのに使用します。[マルチシグリスト](../../../../concepts/accounts/multi-signing.md)でもこれを使用して、他の署名者を識別します。 | +| `public_key` | 文字列 | XRP Ledgerの[base58][]エンコード文字列フォーマットで作成された、キーペアの公開鍵。`master_seed`から生成されます。 | +| `public_key_hex` | 文字列 | これは16進数で作成されたキーペアの公開鍵です。`master_seed`から生成されます。トランザクションの署名を検証する場合、`rippled`にはこの公開鍵が必要です。そのため、署名されたトランザクションのフォーマットの`SigningPubKey`フィールドには公開鍵が入力されています。 | +| `warning` | 文字列 | (削除される可能性あり)リクエストにシード値を指定した場合、このフィールドに安全でない可能性があるという警告が表示されます。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.32.0" %}新規: rippled 0.32.0{% /badge %} | このメソッドを使用してキーペアを生成し、アカウントのレギュラーキーペアとして使用することもできます。アカウントにレギュラーキーペアを割り当てて、それを使用してほとんどのトランザクションに署名し、マスターキーペアをできるだけオフラインにしておくことも可能です。 @@ -194,11 +212,10 @@ Connecting to 127.0.0.1:5005 マルチシグの詳細は、[マルチシグ](../../../../concepts/accounts/multi-signing.md)をご覧ください。 - ### 考えられるエラー -* いずれかの[汎用エラータイプ][]。 -* `invalidParams` - 1つ以上のフィールドが不正に指定されています。 -* `badSeed` - リクエストには、空の文字列やXRP Ledgerアドレスに似た文字列などの許可されないシード値が(`passphrase`、`seed`、または`seed_hex`フィールド内に)指定されています。 +- いずれかの[汎用エラータイプ][]。 +- `invalidParams` - 1つ以上のフィールドが不正に指定されています。 +- `badSeed` - リクエストには、空の文字列やXRP Ledgerアドレスに似た文字列などの許可されないシード値が(`passphrase`、`seed`、または`seed_hex`フィールド内に)指定されています。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/can_delete.md b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/can_delete.md index ca46225437..bff6e8452f 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/can_delete.md +++ b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/can_delete.md @@ -2,11 +2,13 @@ html: can_delete.html parent: logging-and-data-management-methods.html seo: - description: 指定したレジャーバージョン以前のレジャー履歴を削除可能にします。 + description: 指定したレジャーバージョン以前のレジャー履歴を削除可能にします。 labels: - データ保持 --- + # can_delete + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/CanDelete.cpp "Source") `can_delete`メソッドは[指示による削除が有効なオンライン削除](../../../../infrastructure/configuration/data-retention/online-deletion.md#指示による削除)を使用する`rippled`サーバに削除が可能のレジャーバージョンを通知します。指定したレジャーバージョン以前が削除可能になります。指示による削除が有効ではない場合、このメソッドは何も行いません。 @@ -20,49 +22,55 @@ _`can_delete`メソッドは、権限のないユーザは実行できない[管 {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": 2, - "command": "can_delete", - "can_delete": 11320417 + "id": 2, + "command": "can_delete", + "can_delete": 11320417 } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "can_delete", - "params": [ - { - "can_delete": 11320417 - } - ] + "method": "can_delete", + "params": [ + { + "can_delete": 11320417 + } + ] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh #Syntax: can_delete [||now|always|never] rippled can_delete 11320417 ``` + {% /tab %} {% /tabs %} リクエストには以下のパラメーターを指定できます。 -| `Field` | 型 | 説明 | -|:-------------|:------------------|:------------------------------------------| +| `Field` | 型 | 説明 | +| :----------- | :---------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `can_delete` | 文字列 または整数 | _(省略可)_ 削除可能な最大レジャーバージョンの[レジャーインデックス][]。特殊ケース`never`を指定すると、オンライン削除が無効になります。特殊ケース`always`を指定すると、指示による削除が無効な場合と同様に、自動オンライン削除が有効になります。特殊ケース`now`を指定すると、設定されている`online_delete`値に一致するかまたはこの値を超える次の検証済みレジャーで、オンライン削除が1回実行されます。省略すると、サーバは変更を行いません(ただし現在の`can_delete`の値でレスポンスします)。 | ### レスポンスのフォーマット レスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 -| `Field` | 型 | 説明 | -|:-------------|:--------|:----------------------------------------------------| +| `Field` | 型 | 説明 | +| :----------- | :--- | :--------------------------------------------------------------- | | `can_delete` | 整数 | オンライン削除ルーチンにより削除できる最大レジャーインデックス。 | 既存の`can_delete`設定を照会する場合は、パラメーターを指定せずにこのコマンドを実行します。 diff --git a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/index.md b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/index.md index de9f60e334..3f5428a009 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/index.md +++ b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/index.md @@ -4,9 +4,9 @@ parent: admin-api-methods.html metadata: indexPage: true --- + # ログとデータの管理メソッド 以下のメソッドを使用して、ログレベルや台帳などのデータを管理することができます。 - {% child-pages /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ledger_cleaner.md b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ledger_cleaner.md index 52b48f1a49..099d35be06 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ledger_cleaner.md +++ b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ledger_cleaner.md @@ -2,11 +2,13 @@ html: ledger_cleaner.html parent: logging-and-data-management-methods.html seo: - description: レジャークリーナーを制御し、レジャーデータベースの破損を検出して修復できる非同期メンテナンスをする。 + description: レジャークリーナーを制御し、レジャーデータベースの破損を検出して修復できる非同期メンテナンスをする。 labels: - データ保持 --- + # ledger_cleaner + [[ソース]](https://github.com/XRPLF/rippled/blob/df54b47cd0957a31837493cd69e4d9aade0b5055/src/ripple/rpc/handlers/LedgerCleaner.cpp "Source") `ledger_cleaner`コマンドは[レジャークリーナー](https://github.com/XRPLF/rippled/blob/f313caaa73b0ac89e793195dcc2a5001786f916f/src/ripple/app/ledger/README.md#the-ledger-cleaner)を制御します。レジャークリーナーは、`rippled`のレジャーデータベースの破損を検出して修復できる非同期メンテナンスプロセスです。 @@ -14,34 +16,37 @@ labels: _`ledger_cleaner`メソッドは、権限のないユーザは実行できない[管理メソッド](../index.md)です。_ ### リクエストのフォーマット + リクエストのフォーマットの例: {% tabs %} {% tab label="WebSocket" %} + ```json { - "command": "ledger_cleaner", - "max_ledger": 13818756, - "min_ledger": 13818000, - "stop": false + "command": "ledger_cleaner", + "max_ledger": 13818756, + "min_ledger": 13818000, + "stop": false } ``` + {% /tab %} {% /tabs %} リクエストには以下のパラメーターが含まれます。 -| `Field` | 型 | 説明 | -|:--------------|:--------------------------|:---------------------------------| -| `ledger` | 数値 - [レジャーインデックス][] | _(省略可)_ 指定されている場合は、指定されたレジャーのみをチェックして訂正します。 | -| `max_ledger` | 数値 - [レジャーインデックス][] | _(省略可)_ レジャーインデックスがこの番号以下のレジャーをチェックするようにレジャークリーナーを設定します。 | -| `min_ledger` | 数値 - [レジャーインデックス][] | _(省略可)_ レジャーインデックスがこの番号以上のレジャーをチェックするようにレジャークリーナーを設定します。 | -| `full` | ブール値 | _(省略可)_ trueの場合は、指定されたレジャーのレジャー状態オブジェクトとトランザクションを修正します。デフォルトではfalseです。`ledger`が指定されている場合は、自動的に`true`に設定されます。 | -| `fix_txns` | ブール値 | _(省略可)_ trueの場合は、指定されたレジャーのトランザクションを修正します。指定されている場合は`full`をオーバーライドします。 | -| `check_nodes` | ブール値 | _(省略可)_ trueの場合は、指定されているレジャーのレジャー状態オブジェクトを修正します。指定されている場合は`full`をオーバーライドします。 | -| `stop` | ブール値 | _(省略可)_ trueの場合は、レジャークリーナーを無効にします。 | +| `Field` | 型 | 説明 | +| :------------ | :------------------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `ledger` | 数値 - [レジャーインデックス][] | _(省略可)_ 指定されている場合は、指定されたレジャーのみをチェックして訂正します。 | +| `max_ledger` | 数値 - [レジャーインデックス][] | _(省略可)_ レジャーインデックスがこの番号以下のレジャーをチェックするようにレジャークリーナーを設定します。 | +| `min_ledger` | 数値 - [レジャーインデックス][] | _(省略可)_ レジャーインデックスがこの番号以上のレジャーをチェックするようにレジャークリーナーを設定します。 | +| `full` | ブール値 | _(省略可)_ trueの場合は、指定されたレジャーのレジャー状態オブジェクトとトランザクションを修正します。デフォルトではfalseです。`ledger`が指定されている場合は、自動的に`true`に設定されます。 | +| `fix_txns` | ブール値 | _(省略可)_ trueの場合は、指定されたレジャーのトランザクションを修正します。指定されている場合は`full`をオーバーライドします。 | +| `check_nodes` | ブール値 | _(省略可)_ trueの場合は、指定されているレジャーのレジャー状態オブジェクトを修正します。指定されている場合は`full`をオーバーライドします。 | +| `stop` | ブール値 | _(省略可)_ trueの場合は、レジャークリーナーを無効にします。 | ### レスポンスのフォーマット @@ -50,6 +55,7 @@ _`ledger_cleaner`メソッドは、権限のないユーザは実行できない {% tabs %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -61,19 +67,20 @@ _`ledger_cleaner`メソッドは、権限のないユーザは実行できない } ``` + {% /tab %} {% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 -| `Field` | 型 | 説明 | -|:----------|:-------|:---------------------------------| +| `Field` | 型 | 説明 | +| :-------- | :----- | :------------------------------------- | | `message` | 文字列 | `Cleaner configured`: 正常終了の場合。 | ### 考えられるエラー -* いずれかの[汎用エラータイプ][]。 -* `internal`: いずれかのパラメーターが正しく指定されていない場合。(これはバグです。本来のエラーコードは`invalidParams`です。) +- いずれかの[汎用エラータイプ][]。 +- `internal`: いずれかのパラメーターが正しく指定されていない場合。(これはバグです。本来のエラーコードは`invalidParams`です。) {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ledger_request.md b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ledger_request.md index 398c5f4bb4..67d40090f5 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ledger_request.md +++ b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ledger_request.md @@ -2,46 +2,53 @@ html: ledger_request.html parent: logging-and-data-management-methods.html seo: - description: サーバに対し接続しているピアから特定のレジャーバージョンを取得するように指示します。 + description: サーバに対し接続しているピアから特定のレジャーバージョンを取得するように指示します。 labels: - データ保持 --- + # ledger_request + [[ソース]](https://github.com/XRPLF/rippled/blob/e980e69eca9ea843d200773eb1f43abe3848f1a0/src/ripple/rpc/handlers/LedgerRequest.cpp "Source") `ledger_request`コマンドは、サーバに対し接続しているピアから特定のレジャーバージョンを取得するように指示します。これは、サーバが直接接続しているピアの1つにそのレジャーが存在している場合にのみ機能します。場合によっては、レジャーを完全に取得するにはこのコマンドを繰り返し実行する必要があります。 -*`ledger_request`リクエストは、権限のないユーザは実行できない[管理メソッド](../index.md)です。* +_`ledger_request`リクエストは、権限のないユーザは実行できない[管理メソッド](../index.md)です。_ ### リクエストのフォーマット + リクエストのフォーマットの例: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": 102, - "command": "ledger_request", - "ledger_index": 13800000 + "id": 102, + "command": "ledger_request", + "ledger_index": 13800000 } ``` + {% /tab %} {% tab label="コマンドライン" %} + ``` rippled ledger_request 13800000 ``` + {% /tab %} {% /tabs %} リクエストには以下のパラメーターが含まれます。 -| `Field` | 型 | 説明 | -|:---------------|:-------|:---------------------------------------------------| -| `ledger_index` | 数値 | _(省略可)_[レジャーインデックス][]により指定されたレジャーを取得します。 | -| `ledger_hash` | 文字列 | _(省略可)_ 識別用[ハッシュ][]により指定されたレジャーを取得します。 | +| `Field` | 型 | 説明 | +| :------------- | :----- | :------------------------------------------------------------------------- | +| `ledger_index` | 数値 | _(省略可)_[レジャーインデックス][]により指定されたレジャーを取得します。 | +| `ledger_hash` | 文字列 | _(省略可)_ 識別用[ハッシュ][]により指定されたレジャーを取得します。 | `ledger_index`または`ledger_hash`のいずれかを指定する必要がありますが、両方は指定しないでください。 @@ -56,6 +63,7 @@ rippled ledger_request 13800000 {% tabs %} {% tab label="コマンドライン(失敗)" %} + ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -79,9 +87,11 @@ Connecting to 127.0.0.1:5005 } } ``` + {% /tab %} {% tab label="コマンドライン(進行中)" %} + ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -126,9 +136,11 @@ Connecting to 127.0.0.1:5005 } } ``` + {% /tab %} {% tab label="コマンドライン(成功)" %} + ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -157,6 +169,7 @@ Connecting to 127.0.0.1:5005 } ``` + {% /tab %} {% /tabs %} @@ -171,21 +184,21 @@ Connecting to 127.0.0.1:5005 サーバでレジャーの取得操作が進行中であり、まだ完了していない場合は、`rippled`サーバはレジャー取得状況を示すレジャーリクエストオブジェクトを返します。このオブジェクトのフィールドを次に示します。 -| `Field` | 型 | 説明 | -|:----------------------------|:-----------------|:----------------------------| -| `hash` | 文字列 | (省略される場合があります)リクエストされるレジャーの[ハッシュ][](サーバがこのハッシュを認識している場合)。 | -| `have_header` | ブール値 | リクエストされたレジャーのヘッダーセクションがサーバにあるかどうか。 | -| `have_state` | ブール値 | (省略される場合があります)リクエストされたレジャーの完全な状態データがサーバにあるかどうか。 | -| `have_transactions` | ブール値 | (省略される場合があります)リクエストされたレジャーの完全なトランザクションセットがサーバにあるかどうか。 | -| `needed_state_hashes` | 文字列の配列 | (省略される場合があります)サーバが取得する必要がある完全な状態データ内のオブジェクトのハッシュ(最大16個)。 | +| `Field` | 型 | 説明 | +| :-------------------------- | :----------- | :----------------------------------------------------------------------------------------------------------------- | +| `hash` | 文字列 | (省略される場合があります)リクエストされるレジャーの[ハッシュ][](サーバがこのハッシュを認識している場合)。 | +| `have_header` | ブール値 | リクエストされたレジャーのヘッダーセクションがサーバにあるかどうか。 | +| `have_state` | ブール値 | (省略される場合があります)リクエストされたレジャーの完全な状態データがサーバにあるかどうか。 | +| `have_transactions` | ブール値 | (省略される場合があります)リクエストされたレジャーの完全なトランザクションセットがサーバにあるかどうか。 | +| `needed_state_hashes` | 文字列の配列 | (省略される場合があります)サーバが取得する必要がある完全な状態データ内のオブジェクトのハッシュ(最大16個)。 | | `needed_transaction_hashes` | 文字列の配列 | (省略される場合があります)サーバが取得する必要があるトランザクションセットのオブジェクトのハッシュ(最大16個)。 | -| `peers` | 数値 | このレジャーを見つけるためにサーバが照会するピアの数。 | -| `timeouts` | 数値 | これまでにこのレジャーの取得操作がタイムアウトした回数。 | +| `peers` | 数値 | このレジャーを見つけるためにサーバが照会するピアの数。 | +| `timeouts` | 数値 | これまでにこのレジャーの取得操作がタイムアウトした回数。 | ### 考えられるエラー -* [汎用エラータイプ][]のすべて。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。このエラーは、指定したレジャーインデックスが現在進行中のレジャーのインデックス以上である場合にも発生します。 -* `lgrNotFound` - レジャーがまだ利用可能ではない場合。これは、サーバがレジャーの取得を開始していますが、リクエストされたレジャーが接続されたどのピアにもない場合には失敗する可能性があることを意味します。(以前はこのエラーにはコード`ledgerNotFound`が使用されていました。)[更新: rippled 0.30.1][新規: rippled 0.30.1] +- [汎用エラータイプ][]のすべて。 +- `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。このエラーは、指定したレジャーインデックスが現在進行中のレジャーのインデックス以上である場合にも発生します。 +- `lgrNotFound` - レジャーがまだ利用可能ではない場合。これは、サーバがレジャーの取得を開始していますが、リクエストされたレジャーが接続されたどのピアにもない場合には失敗する可能性があることを意味します。(以前はこのエラーにはコード`ledgerNotFound`が使用されていました。)[更新: rippled 0.30.1][新規: rippled 0.30.1] {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/log_level.md b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/log_level.md index 655e323a6a..493187bac7 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/log_level.md +++ b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/log_level.md @@ -2,11 +2,13 @@ html: log_level.html parent: logging-and-data-management-methods.html seo: - description: ログ詳細レベルを変更するか、現在のログレベルを返します。 + description: ログ詳細レベルを変更するか、現在のログレベルを返します。 labels: - データ保持 --- + # log_level + [[ソース]](https://github.com/XRPLF/rippled/blob/155fcdbcd0b4927152892c8c8be01d9cf62bed68/src/ripple/rpc/handlers/LogLevel.cpp "Source") `log_level`コマンドは`rippled`サーバのログ詳細レベルを変更するか、各ログメッセージカテゴリ(_パーティション_)の現在のログレベルを返します。 @@ -14,36 +16,41 @@ labels: _`log_level`メソッドは、権限のないユーザは実行できない[管理メソッド](../index.md)です。_ ### リクエストのフォーマット + リクエストのフォーマットの例: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": "ll1", - "command": "log_level", - "severity": "debug", - "partition": "PathRequest" + "id": "ll1", + "command": "log_level", + "severity": "debug", + "partition": "PathRequest" } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh #Syntax: log_level [[partition] severity] rippled log_level PathRequest debug ``` + {% /tab %} {% /tabs %} リクエストには以下のパラメーターが含まれます。 -| `Field` | 型 | 説明 | -|:------------|:-------|:------------------------------------------------------| +| `Field` | 型 | 説明 | +| :---------- | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `severity` | 文字列 | _(省略可)_ 設定するログの詳細レベル。以下に、有効な値を詳細レベルの低いものから順に示します。`fatal`、`error`、`warn`、`info`、`debug`、および`trace`。省略すると、すべてのカテゴリの現在のログ詳細レベルが返されます。 | -| `partition` | 文字列 | _(省略可)_`severity`が指定されていない場合は無視されます。変更するログカテゴリ。省略されている場合、または`base`の値が指定されている場合は、すべてのカテゴリのログレベルを設定します。 | +| `partition` | 文字列 | _(省略可)_`severity`が指定されていない場合は無視されます。変更するログカテゴリ。省略されている場合、または`base`の値が指定されている場合は、すべてのカテゴリのログレベルを設定します。 | ### レスポンスのフォーマット @@ -52,6 +59,7 @@ rippled log_level PathRequest debug {% tabs %} {% tab label="コマンドライン(ログレベルの設定)" %} + ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -62,9 +70,11 @@ Connecting to 127.0.0.1:5005 } } ``` + {% /tab %} {% tab label="コマンドライン(ログレベルの確認)" %} + ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -127,6 +137,7 @@ Connecting to 127.0.0.1:5005 } } ``` + {% /tab %} {% /tabs %} @@ -135,13 +146,13 @@ Connecting to 127.0.0.1:5005 それ以外の場合、リクエストには以下のフィールドが含まれます。 -| `Field` | 型 | 説明 | -|:--------|:-------|:----------------------------------------------------------| +| `Field` | 型 | 説明 | +| :------ | :----------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `level` | オブジェクト | 各カテゴリの現在のログレベル。このカテゴリリストは、今後のリリースで予告なく変更される場合があります。このコマンドに対するリクエストで、フィールド名を`partition`の値として使用できます。 | ### 考えられるエラー -* [汎用エラータイプ][]のすべて。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 +- [汎用エラータイプ][]のすべて。 +- `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/logrotate.md b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/logrotate.md index 111c429ce1..f0dbba2397 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/logrotate.md +++ b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/logrotate.md @@ -2,11 +2,13 @@ html: logrotate.html parent: logging-and-data-management-methods.html seo: - description: ログファイルを閉じて再度開きます。 + description: ログファイルを閉じて再度開きます。 labels: - データ保持 --- + # logrotate + [[ソース]](https://github.com/XRPLF/rippled/blob/743bd6c9175c472814448ea889413be79dfd1c07/src/ripple/rpc/handlers/LogRotate.cpp "Source") `logrotate`コマンドは、ログファイルを閉じて再度開きます。これは、Linuxファイルシステムでのログローテーションを促進することを目的としています。 @@ -42,24 +44,29 @@ labels: _`logrotate`メソッドは、権限のないユーザは実行できない[管理メソッド](../index.md)です。_ ### リクエストのフォーマット + リクエストのフォーマットの例: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": "lr1", - "command": "logrotate" + "id": "lr1", + "command": "logrotate" } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh #Syntax: logrotate rippled logrotate ``` + {% /tab %} {% /tabs %} @@ -73,6 +80,7 @@ rippled logrotate {% tabs %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -84,9 +92,11 @@ rippled logrotate } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -99,18 +109,19 @@ Connecting to 127.0.0.1:5005 } ``` + {% /tab %} {% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 -| `Field` | 型 | 説明 | -|:----------|:-------|:--------------------------------------------------------| +| `Field` | 型 | 説明 | +| :-------- | :----- | :------------------------------------------------------------------------------------------ | | `message` | 文字列 | 正常に完了した場合、次のメッセージが含まれています。`The log file was closed and reopened.` | ### 考えられるエラー -* いずれかの[汎用エラータイプ][]。 +- いずれかの[汎用エラータイプ][]。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/connect.md b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/connect.md index 8c48621134..8e4d12a21c 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/connect.md +++ b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/connect.md @@ -2,61 +2,70 @@ html: connect.html parent: peer-management-methods.html seo: - description: 特定のピアrippledサーバに強制的に接続します。 + description: 特定のピアrippledサーバに強制的に接続します。 labels: - コアサーバ --- + # connect + [[ソース]](https://github.com/XRPLF/rippled/blob/a61ffab3f9010d8accfaa98aa3cacc7d38e74121/src/ripple/rpc/handlers/Connect.cpp "Source") `connect`コマンドは、`rippled`サーバを特定のピア`rippled`サーバに強制的に接続します。 -*`connect`リクエストは、権限のないユーザは実行できない[管理メソッド](../index.md)です。* +_`connect`リクエストは、権限のないユーザは実行できない[管理メソッド](../index.md)です。_ ### リクエストのフォーマット + リクエストのフォーマットの例: {% tabs %} {% tab label="WebSocket" %} + ```json { - "command": "connect", - "ip": "192.170.145.88", - "port": 51235 + "command": "connect", + "ip": "192.170.145.88", + "port": 51235 } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "connect", - "params": [ - { - "ip": "192.170.145.88", - "port": 51235 - } - ] + "method": "connect", + "params": [ + { + "ip": "192.170.145.88", + "port": 51235 + } + ] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh #Syntax: connect ip [port] rippled connect 192.170.145.88 51235 ``` + {% /tab %} {% /tabs %} リクエストには以下のパラメーターが含まれます。 -| `Field` | 型 | 説明 | -|:--------|:-------|:----------------------------------------------------------| -| `ip` | 文字列 | 接続するサーバのIPアドレス。 | -| `port` | 数値 | _(省略可)_ 接続時に使用するポート番号。デフォルトでは**2459**です。 {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.6.0" %}新規: rippled 1.6.0{% /badge %} | +| `Field` | 型 | 説明 | +| :------ | :----- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `ip` | 文字列 | 接続するサーバのIPアドレス。 | +| `port` | 数値 | _(省略可)_ 接続時に使用するポート番号。デフォルトでは**2459**です。 {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.6.0" %}新規: rippled 1.6.0{% /badge %} | ### レスポンスのフォーマット @@ -65,17 +74,20 @@ rippled connect 192.170.145.88 51235 {% tabs %} {% tab label="JSON-RPC" %} + ```json { - "result" : { - "message" : "connecting", - "status" : "success" + "result": { + "message": "connecting", + "status": "success" } } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -87,20 +99,21 @@ Connecting to 127.0.0.1:5005 } } ``` + {% /tab %} {% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 -| `Field` | 型 | 説明 | -|:----------|:-------|:-------------------------------------------------------| +| `Field` | 型 | 説明 | +| :-------- | :----- | :----------------------------------------- | | `message` | 文字列 | コマンドが成功した場合の値は`connecting`。 | ### 考えられるエラー -* [汎用エラータイプ][]のすべて。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* スタンドアロンモードでは接続できません - スタンドアロンモードではネットワーク関連のコマンドが無効にされています。 +- [汎用エラータイプ][]のすべて。 +- `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 +- スタンドアロンモードでは接続できません - スタンドアロンモードではネットワーク関連のコマンドが無効にされています。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/index.md b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/index.md index cab85ecd72..5451c2f934 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/index.md +++ b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/index.md @@ -4,9 +4,9 @@ parent: admin-api-methods.html metadata: indexPage: true --- + # ピア管理メソッド 以下のメソッドを使用して、サーバのピアツーピア接続を管理することができます。 - {% child-pages /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_add.md b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_add.md index 9fb28dfb85..b98ac7bc94 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_add.md +++ b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_add.md @@ -2,18 +2,19 @@ html: peer_reservations_add.html parent: peer-management-methods.html seo: - description: 特定のピアサーバ用の予約済みスロットを追加します。 + description: 特定のピアサーバ用の予約済みスロットを追加します。 labels: - コアサーバ --- + # peer_reservations_add + [[ソース]](https://github.com/XRPLF/rippled/blob/4a1148eb2849513dd1e7ae080288fd47ab57a376/src/ripple/rpc/handlers/Reservations.cpp#L36 "Source") この{% code-page-name /%}メソッドは、XRP Ledger[ピアツーピアネットワーク](../../../../concepts/networks-and-servers/peer-protocol.md)内の特定のピアサーバの予約済みスロットを追加または更新します。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.4.0" %}新規: rippled 1.4.0{% /badge %} _{% code-page-name /%}メソッドは、権限のないユーザは実行できない[管理メソッド](../index.md)です。_ - ### リクエストのフォーマット リクエストのフォーマットの例: @@ -21,46 +22,52 @@ _{% code-page-name /%}メソッドは、権限のないユーザは実行でき {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": "peer_reservations_add_example_1", - "command": "{% $frontmatter.seo.title %}", - "public_key": "n9Jt8awsPzWLjBCNKVEEDQnw4bQEPjezfcQ4gttD1UzbLT1FoG99", - "description": "Ripple s1 server 'WOOL'" + "id": "peer_reservations_add_example_1", + "command": "{% $frontmatter.seo.title %}", + "public_key": "n9Jt8awsPzWLjBCNKVEEDQnw4bQEPjezfcQ4gttD1UzbLT1FoG99", + "description": "Ripple s1 server 'WOOL'" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "{% $frontmatter.seo.title %}", - "params": [{ + "method": "{% $frontmatter.seo.title %}", + "params": [ + { "public_key": "n9Jt8awsPzWLjBCNKVEEDQnw4bQEPjezfcQ4gttD1UzbLT1FoG99", "description": "Ripple s1 server 'WOOL'" - }] + } + ] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh #Syntax: {% $frontmatter.seo.title %} [] rippled {% $frontmatter.seo.title %} n9Jt8awsPzWLjBCNKVEEDQnw4bQEPjezfcQ4gttD1UzbLT1FoG99 "Ripple s1 server 'WOOL'" ``` + {% /tab %} {% /tabs %} リクエストには以下のパラメーターが含まれます。 -| `Field` | 型 | 説明 | -|:--------------|:-------|:----------------------------------------------------| -| `public_key` | 文字列 | [base58][]での予約を追加するピアリザベーションの[ノード公開鍵][] 。 | +| `Field` | 型 | 説明 | +| :------------ | :----- | :-------------------------------------------------------------------------------------------------------------------- | +| `public_key` | 文字列 | [base58][]での予約を追加するピアリザベーションの[ノード公開鍵][] 。 | | `description` | 文字列 | _(省略可)_ ピアリザベーションに関するカスタムの説明。64文字を超える部分は、再起動時にサーバによって切り捨てられます。 | - - ### レスポンスのフォーマット 処理が成功したレスポンスの例: @@ -68,6 +75,7 @@ rippled {% $frontmatter.seo.title %} n9Jt8awsPzWLjBCNKVEEDQnw4bQEPjezfcQ4gttD1Uz {% tabs %} {% tab label="WebSocket" %} + ```json { "id": "peer_reservations_add_example_1", @@ -81,9 +89,11 @@ rippled {% $frontmatter.seo.title %} n9Jt8awsPzWLjBCNKVEEDQnw4bQEPjezfcQ4gttD1Uz "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { "result": { @@ -95,9 +105,11 @@ rippled {% $frontmatter.seo.title %} n9Jt8awsPzWLjBCNKVEEDQnw4bQEPjezfcQ4gttD1Uz } } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -112,14 +124,15 @@ Connecting to 127.0.0.1:5005 } } ``` + {% /tab %} {% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 -| `Field` | 型 | 説明 | -|:-----------|:-------|:-------------------------------------------------------| +| `Field` | 型 | 説明 | +| :--------- | :----------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `previous` | オブジェクト | _(省略される場合があります)_ 同じ[ノード公開鍵][]の以前のエントリ(同じノード公開鍵を使用した予約がすでに存在する場合)。以下で説明するように、このオブジェクトは、**ピアリザベーションオブジェクト**というフォーマットになります。 | 同じ[ノード公開鍵][]に以前のエントリがなかった場合、`result`オブジェクトは空です。 @@ -130,8 +143,6 @@ Connecting to 127.0.0.1:5005 {% partial file="/@l10n/ja/docs/_snippets/peer_reservation_object.md" /%} - - ### 考えられるエラー - いずれかの[汎用エラータイプ][]。 diff --git a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_del.md b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_del.md index 7c4bc59201..7d0e7162c4 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_del.md +++ b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_del.md @@ -2,10 +2,11 @@ html: peer_reservations_del.html parent: peer-management-methods.html seo: - description: 特定のピアサーバ用の予約済みスロットを削除します。 + description: 特定のピアサーバ用の予約済みスロットを削除します。 labels: - コアサーバ --- + # peer_reservations_del [[ソース]](https://github.com/XRPLF/rippled/blob/4a1148eb2849513dd1e7ae080288fd47ab57a376/src/ripple/rpc/handlers/Reservations.cpp#L89 "Source") @@ -23,42 +24,49 @@ _{% code-page-name /%}メソッドは、権限のないユーザは実行でき {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": "peer_reservations_del_example_1", - "command": "{% $frontmatter.seo.title %}", - "public_key": "n9Jt8awsPzWLjBCNKVEEDQnw4bQEPjezfcQ4gttD1UzbLT1FoG99" + "id": "peer_reservations_del_example_1", + "command": "{% $frontmatter.seo.title %}", + "public_key": "n9Jt8awsPzWLjBCNKVEEDQnw4bQEPjezfcQ4gttD1UzbLT1FoG99" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "{% $frontmatter.seo.title %}", - "params": [{ + "method": "{% $frontmatter.seo.title %}", + "params": [ + { "public_key": "n9Jt8awsPzWLjBCNKVEEDQnw4bQEPjezfcQ4gttD1UzbLT1FoG99" - }] + } + ] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh #Syntax: {% $frontmatter.seo.title %} rippled {% $frontmatter.seo.title %} n9Jt8awsPzWLjBCNKVEEDQnw4bQEPjezfcQ4gttD1UzbLT1FoG99 ``` + {% /tab %} {% /tabs %} リクエストには以下のパラメーターが含まれます。 -| `Field` | 型 | 説明 | -|:------------|:--------------------------|:-----------------------------------| +| `Field` | 型 | 説明 | +| :----------- | :----- | :------------------------------------------------------------------------- | | `public_key` | 文字列 | 削除する[ピアリザベーション][]の[ノード公開鍵][]([base58][]フォーマット) | - ### レスポンスのフォーマット 処理が成功したレスポンスの例: @@ -66,6 +74,7 @@ rippled {% $frontmatter.seo.title %} n9Jt8awsPzWLjBCNKVEEDQnw4bQEPjezfcQ4gttD1Uz {% tabs %} {% tab label="WebSocket" %} + ```json { "id": "peer_reservations_del_example_1", @@ -79,23 +88,27 @@ rippled {% $frontmatter.seo.title %} n9Jt8awsPzWLjBCNKVEEDQnw4bQEPjezfcQ4gttD1Uz "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "result" : { - "previous" : { - "description" : "Ripple s1 server 'WOOL'", - "node" : "n9Jt8awsPzWLjBCNKVEEDQnw4bQEPjezfcQ4gttD1UzbLT1FoG99" - }, - "status" : "success" - } + "result": { + "previous": { + "description": "Ripple s1 server 'WOOL'", + "node": "n9Jt8awsPzWLjBCNKVEEDQnw4bQEPjezfcQ4gttD1UzbLT1FoG99" + }, + "status": "success" + } } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -110,14 +123,15 @@ Connecting to 127.0.0.1:5005 } } ``` + {% /tab %} {% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 -| `Field` | 型 | 説明 | -|:--------|:-------|:----------------------------------------------------------| +| `Field` | 型 | 説明 | +| :--------- | :----------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `previous` | オブジェクト | _(省略される場合があります)_ 削除する前のピアリザベーションの最後のステータスを伴った、**ピアリザベーションオブジェクト**。このフィールドは、ピアリザベーションが正常に削除された場合、必ず表示されます。 | {% admonition type="info" name="注記" %}指定された予約が存在しなかった場合は、このコマンドによって、成功を示す空の結果オブジェクトが返されます。この場合、`previous`フィールドは省略されます。{% /admonition %} @@ -128,7 +142,6 @@ Connecting to 127.0.0.1:5005 {% partial file="/@l10n/ja/docs/_snippets/peer_reservation_object.md" /%} - ### 考えられるエラー - いずれかの[汎用エラータイプ][]。 diff --git a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_list.md b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_list.md index 9bdb6e0270..7845906b04 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_list.md +++ b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_list.md @@ -2,18 +2,19 @@ html: peer_reservations_list.html parent: peer-management-methods.html seo: - description: 特定のピアサーバ用の予約済みスロットをリスト表示します。 + description: 特定のピアサーバ用の予約済みスロットをリスト表示します。 labels: - コアサーバ --- + # peer_reservations_list + [[ソース]](https://github.com/XRPLF/rippled/blob/4a1148eb2849513dd1e7ae080288fd47ab57a376/src/ripple/rpc/handlers/Reservations.cpp#L116 "Source") {% code-page-name /%}メソッドは、[ピアリザベーション][]を一覧表示します。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.4.0" %}新規: rippled 1.4.0{% /badge %} _{% code-page-name /%}メソッドは、権限のないユーザは実行できない[管理メソッド](../index.md)です。_ - ### リクエストのフォーマット リクエストのフォーマットの例: @@ -21,34 +22,39 @@ _{% code-page-name /%}メソッドは、権限のないユーザは実行でき {% tabs %} {% tab label="WebSocket" %} + ```json { "id": "peer_reservations_list_example_1", "command": "{% $frontmatter.seo.title %}" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "{% $frontmatter.seo.title %}" + "method": "{% $frontmatter.seo.title %}" } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh #Syntax: {% $frontmatter.seo.title %} rippled {% $frontmatter.seo.title %} ``` + {% /tab %} {% /tabs %} このリクエストにはパラメーターは含まれません。 - ### レスポンスのフォーマット 処理が成功したレスポンスの例: @@ -56,6 +62,7 @@ rippled {% $frontmatter.seo.title %} {% tabs %} {% tab label="WebSocket" %} + ```json { "id": "peer_reservations_list_example_1", @@ -74,28 +81,32 @@ rippled {% $frontmatter.seo.title %} "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "result" : { - "reservations" : [ - { - "description" : "Ripple s1 server 'WOOL'", - "node" : "n9Jt8awsPzWLjBCNKVEEDQnw4bQEPjezfcQ4gttD1UzbLT1FoG99" - }, - { - "node" : "n9MZRo92mzYjjsa5XcqnPC7GFYAnENo9VfJzKmpcS9EFZvw5fgwz" - } + "result": { + "reservations": [ + { + "description": "Ripple s1 server 'WOOL'", + "node": "n9Jt8awsPzWLjBCNKVEEDQnw4bQEPjezfcQ4gttD1UzbLT1FoG99" + }, + { + "node": "n9MZRo92mzYjjsa5XcqnPC7GFYAnENo9VfJzKmpcS9EFZvw5fgwz" + } ], - "status" : "success" + "status": "success" } } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```json Loading: "/etc/rippled.cfg" 2019-Dec-27 21:56:07.253260422 HTTPClient:NFO Connecting to 127.0.0.1:5005 @@ -115,14 +126,15 @@ Loading: "/etc/rippled.cfg" } } ``` + {% /tab %} {% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 -| `Field` | 型 | 説明 | -|:---------------|:------|:----------------------------------------------------| +| `Field` | 型 | 説明 | +| :------------- | :--- | :------------------------------------------------------------------------------------------------------------- | | `reservations` | 配列 | 既存の[ピアリザベーション][]のリスト。各メンバーはピアリザベーションオブジェクトです。詳細は以下のとおりです。 | #### ピアリザベーションオブジェクト @@ -131,7 +143,6 @@ Loading: "/etc/rippled.cfg" {% partial file="/@l10n/ja/docs/_snippets/peer_reservation_object.md" /%} - ### 考えられるエラー - いずれかの[汎用エラータイプ][]。 diff --git a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peers.md b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peers.md index 170177e92c..a44d6d3f00 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peers.md +++ b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peers.md @@ -2,35 +2,42 @@ html: peers.html parent: peer-management-methods.html seo: - description: ピアプロトコルでこのサーバに現在接続されているその他のすべてのrippledサーバのリストを返します。 + description: ピアプロトコルでこのサーバに現在接続されているその他のすべてのrippledサーバのリストを返します。 labels: - コアサーバ --- + # peers + [[ソース]](https://github.com/XRPLF/rippled/blob/52f298f150fc1530d201d3140c80d3eaf781cb5f/src/ripple/rpc/handlers/Peers.cpp "Source") `peers`コマンドは、[ピアプロトコル](../../../../concepts/networks-and-servers/peer-protocol.md)でこのサーバに現在接続されているその他のすべての`rippled`サーバのリスト(各サーバの接続状況と同期状況を含む)を返します。 -*`peers`リクエストは、権限のないユーザは実行できない[管理メソッド](../index.md)です。* +_`peers`リクエストは、権限のないユーザは実行できない[管理メソッド](../index.md)です。_ ### リクエストのフォーマット + リクエストのフォーマットの例: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": 2, - "command": "peers" + "id": 2, + "command": "peers" } ``` + {% /tab %} {% tab label="コマンドライン" %} + ``` rippled peers ``` + {% /tab %} {% /tabs %} @@ -44,234 +51,239 @@ rippled peers {% tabs %} {% tab label="WebSocket" %} -```json -{ - "id": 2, - "status": "success", - "type": "response", - "result": { - "cluster": {}, - "peers": [ - { - "address": "184.172.237.226:51235", - "complete_ledgers": "14534883 - 18828973", - "latency": 117, - "ledger": "50A2577CE6EB8A92847C443BDA45F5C5F0A22B9C6F4B47DBA0C12BDA75001D01", - "load": 54, - "public_key": "n9KNYm52mgcUQ7R2RA4kyw9Nk1yc6S35PaiuyqjYsy6UjhCXpw12", - "uptime": 55036, - "version": "rippled-0.30.0-hf1" - }, - { - "address": "54.186.248.91:51235", - "complete_ledgers": "18827949 - 18828973", - "latency": 91, - "ledger": "50A2577CE6EB8A92847C443BDA45F5C5F0A22B9C6F4B47DBA0C12BDA75001D01", - "load": 62, - "public_key": "n9MT5EjnV912KGuBUqPs4tpdhzMPGcnDBrTuWkD9sWQHJ1kDcUcz", - "uptime": 83814, - "version": "rippled-0.30.1" - }, - { - "address": "54.84.21.230:51235", - "complete_ledgers": "18827949 - 18828973", - "latency": 202, - "ledger": "50A2577CE6EB8A92847C443BDA45F5C5F0A22B9C6F4B47DBA0C12BDA75001D01", - "load": 60, - "public_key": "n9KJb7NMxGySRcjCqh69xEPMUhwJx22qntYYXsnUqYgjsJhNoW7g", - "uptime": 99625, - "version": "rippled-0.30.1" - }, - { - "address": "72.251.233.162:51235", - "complete_ledgers": "18827949 - 18828973", - "latency": 36, - "ledger": "50A2577CE6EB8A92847C443BDA45F5C5F0A22B9C6F4B47DBA0C12BDA75001D01", - "load": 66, - "public_key": "n9M8RSk6hrvXZKFQ6CxPbJsjt73xW1xsnjn7G69VAMbE2j4sBQNQ", - "uptime": 99619, - "version": "rippled-0.30.1" - }, - { - "address": "162.217.98.136:51235", - "complete_ledgers": "32570 - 18828973", - "latency": 118, - "ledger": "50A2577CE6EB8A92847C443BDA45F5C5F0A22B9C6F4B47DBA0C12BDA75001D01", - "load": 69, - "public_key": "n944PcXEoZaiEHnwFD92xA4bxsS7jjYb27WcdDQwkHYyk1MWTEsX", - "uptime": 99625, - "version": "rippled-0.30.1" - }, - { - "address": "72.251.233.163:51235", - "complete_ledgers": "18827949 - 18828973", - "latency": 51, - "ledger": "50A2577CE6EB8A92847C443BDA45F5C5F0A22B9C6F4B47DBA0C12BDA75001D01", - "load": 61, - "public_key": "n94ne2Z5dX8qcJNa8cPtAbtn21gEaCoEduS8TwdGAhi1iLfCUMDm", - "uptime": 99625, - "version": "rippled-0.30.1" - }, - { - "address": "54.186.73.52:51235", - "complete_ledgers": "18827949 - 18828973", - "latency": 72, - "ledger": "50A2577CE6EB8A92847C443BDA45F5C5F0A22B9C6F4B47DBA0C12BDA75001D01", - "load": 60, - "public_key": "n9JySgyBVcQKvyDoeRKg7s2Mm6ZcFHk22vUZb3o1HSosWxcj9xPt", - "uptime": 99625, - "version": "rippled-0.30.1" - }, - { - "address": "72.251.233.165:51235", - "complete_ledgers": "18827949 - 18828973", - "latency": 40, - "ledger": "50A2577CE6EB8A92847C443BDA45F5C5F0A22B9C6F4B47DBA0C12BDA75001D01", - "load": 63, - "public_key": "n9M77Uc9CSaSFZqt5V7sxPR4kFwbha7hwUFBD5v5kZt2SQjBeoDs", - "uptime": 99625, - "version": "rippled-0.30.1" - }, - { - "address": "72.251.232.173:51235", - "complete_ledgers": "32570 - 18828973", - "latency": 40, - "ledger": "50A2577CE6EB8A92847C443BDA45F5C5F0A22B9C6F4B47DBA0C12BDA75001D01", - "load": 71, - "public_key": "n9JveA1hHDGjZECaYC7KM4JP8NXXzNXAxixbzcLTGnrsFZsA9AD1", - "uptime": 99625, - "version": "rippled-0.31.0-b6" - }, - { - "address": "98.167.120.212:51235", - "complete_ledgers": "18828845 - 18828973", - "latency": 99, - "ledger": "50A2577CE6EB8A92847C443BDA45F5C5F0A22B9C6F4B47DBA0C12BDA75001D01", - "load": 60, - "public_key": "n9LDBRoqPYY7RdkNXbX1dqZXVtUKcSqzs2CZPhTH7ymA9X7Xzmpj", - "uptime": 99625, - "version": "rippled-0.30.1-rc4" - } - ] - } -} -``` -{% /tab %} -{% tab label="JSON-RPC" %} ```json { - "result" : { - "cluster" : {}, - "peers" : [ - { - "address" : "184.172.237.226:51235", - "complete_ledgers" : "14535005 - 18828957", - "latency" : 114, - "ledger" : "80FCB89BC5B90D2B9C2CE33786738809796F04FB9CB1E5EEE768DD9A9C399FB0", - "load" : 47, - "public_key" : "n9KNYm52mgcUQ7R2RA4kyw9Nk1yc6S35PaiuyqjYsy6UjhCXpw12", - "uptime" : 54976, - "version" : "rippled-0.30.0-hf1" - }, - { - "address" : "54.186.248.91:51235", - "complete_ledgers" : "18827934 - 18828958", - "latency" : 68, - "ledger" : "9447480E351221123B1A454356435A66C188D9794B0197A060637E19F074B421", - "load" : 56, - "public_key" : "n9MT5EjnV912KGuBUqPs4tpdhzMPGcnDBrTuWkD9sWQHJ1kDcUcz", - "uptime" : 83754, - "version" : "rippled-0.30.1" - }, - { - "address" : "54.84.21.230:51235", - "complete_ledgers" : "18827934 - 18828958", - "latency" : 135, - "ledger" : "9447480E351221123B1A454356435A66C188D9794B0197A060637E19F074B421", - "load" : 54, - "public_key" : "n9KJb7NMxGySRcjCqh69xEPMUhwJx22qntYYXsnUqYgjsJhNoW7g", - "uptime" : 99565, - "version" : "rippled-0.30.1" - }, - { - "address" : "72.251.233.162:51235", - "complete_ledgers" : "18827934 - 18828958", - "latency" : 24, - "ledger" : "9447480E351221123B1A454356435A66C188D9794B0197A060637E19F074B421", - "load" : 61, - "public_key" : "n9M8RSk6hrvXZKFQ6CxPbJsjt73xW1xsnjn7G69VAMbE2j4sBQNQ", - "uptime" : 99560, - "version" : "rippled-0.30.1" - }, - { - "address" : "162.217.98.136:51235", - "complete_ledgers" : "32570 - 18828958", - "latency" : 88, - "ledger" : "9447480E351221123B1A454356435A66C188D9794B0197A060637E19F074B421", - "load" : 55, - "public_key" : "n944PcXEoZaiEHnwFD92xA4bxsS7jjYb27WcdDQwkHYyk1MWTEsX", - "uptime" : 99566, - "version" : "rippled-0.30.1" - }, - { - "address" : "72.251.233.163:51235", - "complete_ledgers" : "18827934 - 18828958", - "latency" : 24, - "ledger" : "9447480E351221123B1A454356435A66C188D9794B0197A060637E19F074B421", - "load" : 56, - "public_key" : "n94ne2Z5dX8qcJNa8cPtAbtn21gEaCoEduS8TwdGAhi1iLfCUMDm", - "uptime" : 99566, - "version" : "rippled-0.30.1" - }, - { - "address" : "54.186.73.52:51235", - "complete_ledgers" : "18827934 - 18828958", - "latency" : 51, - "ledger" : "9447480E351221123B1A454356435A66C188D9794B0197A060637E19F074B421", - "load" : 56, - "public_key" : "n9JySgyBVcQKvyDoeRKg7s2Mm6ZcFHk22vUZb3o1HSosWxcj9xPt", - "uptime" : 99566, - "version" : "rippled-0.30.1" - }, - { - "address" : "72.251.233.165:51235", - "complete_ledgers" : "18827934 - 18828958", - "latency" : 25, - "ledger" : "9447480E351221123B1A454356435A66C188D9794B0197A060637E19F074B421", - "load" : 56, - "public_key" : "n9M77Uc9CSaSFZqt5V7sxPR4kFwbha7hwUFBD5v5kZt2SQjBeoDs", - "uptime" : 99566, - "version" : "rippled-0.30.1" - }, - { - "address" : "72.251.232.173:51235", - "complete_ledgers" : "32570 - 18828958", - "latency" : 24, - "ledger" : "9447480E351221123B1A454356435A66C188D9794B0197A060637E19F074B421", - "load" : 81, - "public_key" : "n9JveA1hHDGjZECaYC7KM4JP8NXXzNXAxixbzcLTGnrsFZsA9AD1", - "uptime" : 99566, - "version" : "rippled-0.31.0-b6" - }, - { - "address" : "98.167.120.212:51235", - "complete_ledgers" : "18828830 - 18828957", - "latency" : 137, - "ledger" : "9447480E351221123B1A454356435A66C188D9794B0197A060637E19F074B421", - "load" : 54, - "public_key" : "n9LDBRoqPYY7RdkNXbX1dqZXVtUKcSqzs2CZPhTH7ymA9X7Xzmpj", - "uptime" : 99566, - "version" : "rippled-0.30.1-rc4" - } - ], - "status" : "success" + "id": 2, + "status": "success", + "type": "response", + "result": { + "cluster": {}, + "peers": [ + { + "address": "184.172.237.226:51235", + "complete_ledgers": "14534883 - 18828973", + "latency": 117, + "ledger": "50A2577CE6EB8A92847C443BDA45F5C5F0A22B9C6F4B47DBA0C12BDA75001D01", + "load": 54, + "public_key": "n9KNYm52mgcUQ7R2RA4kyw9Nk1yc6S35PaiuyqjYsy6UjhCXpw12", + "uptime": 55036, + "version": "rippled-0.30.0-hf1" + }, + { + "address": "54.186.248.91:51235", + "complete_ledgers": "18827949 - 18828973", + "latency": 91, + "ledger": "50A2577CE6EB8A92847C443BDA45F5C5F0A22B9C6F4B47DBA0C12BDA75001D01", + "load": 62, + "public_key": "n9MT5EjnV912KGuBUqPs4tpdhzMPGcnDBrTuWkD9sWQHJ1kDcUcz", + "uptime": 83814, + "version": "rippled-0.30.1" + }, + { + "address": "54.84.21.230:51235", + "complete_ledgers": "18827949 - 18828973", + "latency": 202, + "ledger": "50A2577CE6EB8A92847C443BDA45F5C5F0A22B9C6F4B47DBA0C12BDA75001D01", + "load": 60, + "public_key": "n9KJb7NMxGySRcjCqh69xEPMUhwJx22qntYYXsnUqYgjsJhNoW7g", + "uptime": 99625, + "version": "rippled-0.30.1" + }, + { + "address": "72.251.233.162:51235", + "complete_ledgers": "18827949 - 18828973", + "latency": 36, + "ledger": "50A2577CE6EB8A92847C443BDA45F5C5F0A22B9C6F4B47DBA0C12BDA75001D01", + "load": 66, + "public_key": "n9M8RSk6hrvXZKFQ6CxPbJsjt73xW1xsnjn7G69VAMbE2j4sBQNQ", + "uptime": 99619, + "version": "rippled-0.30.1" + }, + { + "address": "162.217.98.136:51235", + "complete_ledgers": "32570 - 18828973", + "latency": 118, + "ledger": "50A2577CE6EB8A92847C443BDA45F5C5F0A22B9C6F4B47DBA0C12BDA75001D01", + "load": 69, + "public_key": "n944PcXEoZaiEHnwFD92xA4bxsS7jjYb27WcdDQwkHYyk1MWTEsX", + "uptime": 99625, + "version": "rippled-0.30.1" + }, + { + "address": "72.251.233.163:51235", + "complete_ledgers": "18827949 - 18828973", + "latency": 51, + "ledger": "50A2577CE6EB8A92847C443BDA45F5C5F0A22B9C6F4B47DBA0C12BDA75001D01", + "load": 61, + "public_key": "n94ne2Z5dX8qcJNa8cPtAbtn21gEaCoEduS8TwdGAhi1iLfCUMDm", + "uptime": 99625, + "version": "rippled-0.30.1" + }, + { + "address": "54.186.73.52:51235", + "complete_ledgers": "18827949 - 18828973", + "latency": 72, + "ledger": "50A2577CE6EB8A92847C443BDA45F5C5F0A22B9C6F4B47DBA0C12BDA75001D01", + "load": 60, + "public_key": "n9JySgyBVcQKvyDoeRKg7s2Mm6ZcFHk22vUZb3o1HSosWxcj9xPt", + "uptime": 99625, + "version": "rippled-0.30.1" + }, + { + "address": "72.251.233.165:51235", + "complete_ledgers": "18827949 - 18828973", + "latency": 40, + "ledger": "50A2577CE6EB8A92847C443BDA45F5C5F0A22B9C6F4B47DBA0C12BDA75001D01", + "load": 63, + "public_key": "n9M77Uc9CSaSFZqt5V7sxPR4kFwbha7hwUFBD5v5kZt2SQjBeoDs", + "uptime": 99625, + "version": "rippled-0.30.1" + }, + { + "address": "72.251.232.173:51235", + "complete_ledgers": "32570 - 18828973", + "latency": 40, + "ledger": "50A2577CE6EB8A92847C443BDA45F5C5F0A22B9C6F4B47DBA0C12BDA75001D01", + "load": 71, + "public_key": "n9JveA1hHDGjZECaYC7KM4JP8NXXzNXAxixbzcLTGnrsFZsA9AD1", + "uptime": 99625, + "version": "rippled-0.31.0-b6" + }, + { + "address": "98.167.120.212:51235", + "complete_ledgers": "18828845 - 18828973", + "latency": 99, + "ledger": "50A2577CE6EB8A92847C443BDA45F5C5F0A22B9C6F4B47DBA0C12BDA75001D01", + "load": 60, + "public_key": "n9LDBRoqPYY7RdkNXbX1dqZXVtUKcSqzs2CZPhTH7ymA9X7Xzmpj", + "uptime": 99625, + "version": "rippled-0.30.1-rc4" + } + ] } } ``` + +{% /tab %} + +{% tab label="JSON-RPC" %} + +```json +{ + "result": { + "cluster": {}, + "peers": [ + { + "address": "184.172.237.226:51235", + "complete_ledgers": "14535005 - 18828957", + "latency": 114, + "ledger": "80FCB89BC5B90D2B9C2CE33786738809796F04FB9CB1E5EEE768DD9A9C399FB0", + "load": 47, + "public_key": "n9KNYm52mgcUQ7R2RA4kyw9Nk1yc6S35PaiuyqjYsy6UjhCXpw12", + "uptime": 54976, + "version": "rippled-0.30.0-hf1" + }, + { + "address": "54.186.248.91:51235", + "complete_ledgers": "18827934 - 18828958", + "latency": 68, + "ledger": "9447480E351221123B1A454356435A66C188D9794B0197A060637E19F074B421", + "load": 56, + "public_key": "n9MT5EjnV912KGuBUqPs4tpdhzMPGcnDBrTuWkD9sWQHJ1kDcUcz", + "uptime": 83754, + "version": "rippled-0.30.1" + }, + { + "address": "54.84.21.230:51235", + "complete_ledgers": "18827934 - 18828958", + "latency": 135, + "ledger": "9447480E351221123B1A454356435A66C188D9794B0197A060637E19F074B421", + "load": 54, + "public_key": "n9KJb7NMxGySRcjCqh69xEPMUhwJx22qntYYXsnUqYgjsJhNoW7g", + "uptime": 99565, + "version": "rippled-0.30.1" + }, + { + "address": "72.251.233.162:51235", + "complete_ledgers": "18827934 - 18828958", + "latency": 24, + "ledger": "9447480E351221123B1A454356435A66C188D9794B0197A060637E19F074B421", + "load": 61, + "public_key": "n9M8RSk6hrvXZKFQ6CxPbJsjt73xW1xsnjn7G69VAMbE2j4sBQNQ", + "uptime": 99560, + "version": "rippled-0.30.1" + }, + { + "address": "162.217.98.136:51235", + "complete_ledgers": "32570 - 18828958", + "latency": 88, + "ledger": "9447480E351221123B1A454356435A66C188D9794B0197A060637E19F074B421", + "load": 55, + "public_key": "n944PcXEoZaiEHnwFD92xA4bxsS7jjYb27WcdDQwkHYyk1MWTEsX", + "uptime": 99566, + "version": "rippled-0.30.1" + }, + { + "address": "72.251.233.163:51235", + "complete_ledgers": "18827934 - 18828958", + "latency": 24, + "ledger": "9447480E351221123B1A454356435A66C188D9794B0197A060637E19F074B421", + "load": 56, + "public_key": "n94ne2Z5dX8qcJNa8cPtAbtn21gEaCoEduS8TwdGAhi1iLfCUMDm", + "uptime": 99566, + "version": "rippled-0.30.1" + }, + { + "address": "54.186.73.52:51235", + "complete_ledgers": "18827934 - 18828958", + "latency": 51, + "ledger": "9447480E351221123B1A454356435A66C188D9794B0197A060637E19F074B421", + "load": 56, + "public_key": "n9JySgyBVcQKvyDoeRKg7s2Mm6ZcFHk22vUZb3o1HSosWxcj9xPt", + "uptime": 99566, + "version": "rippled-0.30.1" + }, + { + "address": "72.251.233.165:51235", + "complete_ledgers": "18827934 - 18828958", + "latency": 25, + "ledger": "9447480E351221123B1A454356435A66C188D9794B0197A060637E19F074B421", + "load": 56, + "public_key": "n9M77Uc9CSaSFZqt5V7sxPR4kFwbha7hwUFBD5v5kZt2SQjBeoDs", + "uptime": 99566, + "version": "rippled-0.30.1" + }, + { + "address": "72.251.232.173:51235", + "complete_ledgers": "32570 - 18828958", + "latency": 24, + "ledger": "9447480E351221123B1A454356435A66C188D9794B0197A060637E19F074B421", + "load": 81, + "public_key": "n9JveA1hHDGjZECaYC7KM4JP8NXXzNXAxixbzcLTGnrsFZsA9AD1", + "uptime": 99566, + "version": "rippled-0.31.0-b6" + }, + { + "address": "98.167.120.212:51235", + "complete_ledgers": "18828830 - 18828957", + "latency": 137, + "ledger": "9447480E351221123B1A454356435A66C188D9794B0197A060637E19F074B421", + "load": 54, + "public_key": "n9LDBRoqPYY7RdkNXbX1dqZXVtUKcSqzs2CZPhTH7ymA9X7Xzmpj", + "uptime": 99566, + "version": "rippled-0.30.1-rc4" + } + ], + "status": "success" + } +} +``` + {% /tab %} {% tab label="コマンドライン" %} + ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -375,46 +387,47 @@ Connecting to 127.0.0.1:5005 } ``` + {% /tab %} {% /tabs %} レスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドからなるJSONオブジェクトが含まれます。 -| `Field` | 型 | 説明 | -|:----------|:-------|:--------------------------------------------------------| +| `Field` | 型 | 説明 | +| :-------- | :----------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `cluster` | オブジェクト | [クラスターとして構成されている](../../../../concepts/networks-and-servers/clustering.md)場合は、同じクラスター内の他の`rippled`サーバの概要。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.30.1" %}新規: rippled 0.30.1{% /badge %} | -| `peers` | 配列 | peerオブジェクトからなる配列。 | +| `peers` | 配列 | peerオブジェクトからなる配列。 | `cluster`オブジェクトの各フィールドは、該当する`rippled`サーバの識別用キーペアの公開鍵です。(これは、[server_infoメソッド][]で当該サーバから`pubkey_node`として返される値と同じです。)そのフィールドの内容は、以下のフィールドを持つオブジェクトです。 -| `Field` | 型 | 説明 | -|:--------|:-------|:----------------------------------------------------------| -| `tag` | 文字列 | 構成ファイルで定義されているこのクラスターメンバーの表示名。 | -| `fee` | 数値 | (省略される場合があります)このクラスターメンバーが[トランザクションコスト](../../../../concepts/transactions/transaction-cost.md)に適用する負荷乗数。 | -| `age` | 数値 | このクラスターメンバーからの最終クラスターレポート以降の経過秒数。 | +| `Field` | 型 | 説明 | +| :------ | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `tag` | 文字列 | 構成ファイルで定義されているこのクラスターメンバーの表示名。 | +| `fee` | 数値 | (省略される場合があります)このクラスターメンバーが[トランザクションコスト](../../../../concepts/transactions/transaction-cost.md)に適用する負荷乗数。 | +| `age` | 数値 | このクラスターメンバーからの最終クラスターレポート以降の経過秒数。 | `peers`配列の各メンバーは、以下のフィールドを持つpeerオブジェクトです。 -| `Field` | 型 | 説明 | -|:-------------------|:--------|:----------------------------------------------| -| `address` | 文字列 | このピアが接続しているIPアドレスとポート。 | -| `cluster` | ブール値 | (省略される場合があります)`true`の場合、現在のサーバとピアサーバは同じ`rippled`クラスターに含まれています。 | -| `name` | 文字列 | (省略される場合があります)ピアが同じクラスターに含まれている場合、この名前は構成ファイルで定義されているそのピアサーバの表示名です。 | -| `complete_ledgers` | 文字列 | ピア`rippled`で利用可能なレジャーバージョンのシーケンス番号を示す範囲式 | -| `inbound` | ブール値 | (省略される場合があります)`true`の場合は、ピアはローカルサーバに接続しています。 | -| `latency` | 数値 | ピアへのネットワーク遅延(ミリ秒単位) | -| `ledger` | 文字列 | 最後に閉鎖されたピアのレジャーのハッシュ。 | -| `load` | 数値 | ピアサーバによるローカルサーバへの負荷の測定値。この数値が大きいほど負荷が高くなります。(負荷の測定単位は正式には定義されていません。) | -| `protocol` | 文字列 | (省略される場合があります)ピアが使用しているプロトコルバージョン(ローカルサーバのプロトコルバージョンと異なる場合)。 | -| `public_key` | 文字列 | (省略される場合があります)ピアのメッセージの整合性の検証に使用できる公開鍵。これは、検証に使用する公開鍵とは異なりますが、フォーマットは同じです。 | -| `sanity` | 文字列 | (省略される場合があります)このピアが現行サーバと同じルールとレジャーシーケンスに従っているかどうか。値が`insane`の場合、ピアは並列ネットワークの一部である可能性があります。値が`unknown`の場合、現行サーバはピアに互換性があるかどうかを把握していません。 | -| `status` | 文字列 | (省略される場合があります)ピアからの最新のステータスメッセージ。`connecting`、`connected`、`monitoring`、`validating`、`shutting`のいずれかです。 | -| `uptime` | 数値 | `rippled`サーバがこのピアに継続して接続していた秒数。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.30.1" %}新規: rippled 0.30.1{% /badge %} | -| `version` | 文字列 | (省略される場合があります)ピアサーバの`rippled`バージョン番号 | +| `Field` | 型 | 説明 | +| :----------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `address` | 文字列 | このピアが接続しているIPアドレスとポート。 | +| `cluster` | ブール値 | (省略される場合があります)`true`の場合、現在のサーバとピアサーバは同じ`rippled`クラスターに含まれています。 | +| `name` | 文字列 | (省略される場合があります)ピアが同じクラスターに含まれている場合、この名前は構成ファイルで定義されているそのピアサーバの表示名です。 | +| `complete_ledgers` | 文字列 | ピア`rippled`で利用可能なレジャーバージョンのシーケンス番号を示す範囲式 | +| `inbound` | ブール値 | (省略される場合があります)`true`の場合は、ピアはローカルサーバに接続しています。 | +| `latency` | 数値 | ピアへのネットワーク遅延(ミリ秒単位) | +| `ledger` | 文字列 | 最後に閉鎖されたピアのレジャーのハッシュ。 | +| `load` | 数値 | ピアサーバによるローカルサーバへの負荷の測定値。この数値が大きいほど負荷が高くなります。(負荷の測定単位は正式には定義されていません。) | +| `protocol` | 文字列 | (省略される場合があります)ピアが使用しているプロトコルバージョン(ローカルサーバのプロトコルバージョンと異なる場合)。 | +| `public_key` | 文字列 | (省略される場合があります)ピアのメッセージの整合性の検証に使用できる公開鍵。これは、検証に使用する公開鍵とは異なりますが、フォーマットは同じです。 | +| `sanity` | 文字列 | (省略される場合があります)このピアが現行サーバと同じルールとレジャーシーケンスに従っているかどうか。値が`insane`の場合、ピアは並列ネットワークの一部である可能性があります。値が`unknown`の場合、現行サーバはピアに互換性があるかどうかを把握していません。 | +| `status` | 文字列 | (省略される場合があります)ピアからの最新のステータスメッセージ。`connecting`、`connected`、`monitoring`、`validating`、`shutting`のいずれかです。 | +| `uptime` | 数値 | `rippled`サーバがこのピアに継続して接続していた秒数。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.30.1" %}新規: rippled 0.30.1{% /badge %} | +| `version` | 文字列 | (省略される場合があります)ピアサーバの`rippled`バージョン番号 | ### 考えられるエラー -* [汎用エラータイプ][]のすべて。 +- [汎用エラータイプ][]のすべて。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/server-control-methods/index.md b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/server-control-methods/index.md index ea9c8a5ed0..c14096cc98 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/server-control-methods/index.md +++ b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/server-control-methods/index.md @@ -4,9 +4,9 @@ parent: admin-api-methods.html metadata: indexPage: true --- + # サーバ操作メソッド 以下のメソッドを使用して、rippledサーバを管理することができます。 - {% child-pages /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/server-control-methods/ledger_accept.md b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/server-control-methods/ledger_accept.md index 21071a74de..6ecf3ce21b 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/server-control-methods/ledger_accept.md +++ b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/server-control-methods/ledger_accept.md @@ -2,16 +2,18 @@ html: ledger_accept.html parent: server-control-methods.html seo: - description: スタンドアロンモードでサーバが現在処理中のレジャーを強制的に終了し、次のレジャー番号に進むようにします。 + description: スタンドアロンモードでサーバが現在処理中のレジャーを強制的に終了し、次のレジャー番号に進むようにします。 labels: - コアサーバ --- + # ledger_accept + [[ソース]](https://github.com/XRPLF/rippled/blob/a61ffab3f9010d8accfaa98aa3cacc7d38e74121/src/ripple/rpc/handlers/LedgerAccept.cpp "Source") `ledger_accept`メソッドは、サーバが現在処理中のレジャーを強制的に終了し、次のレジャー番号に進むようにします。このメソッドはテスト専用であり、`rippled`サーバがスタンドアロンモードで実行されている場合にのみ使用できます。 -*`ledger_accept`メソッドは、権限のないユーザは実行できない[管理メソッド](../index.md)です。* +_`ledger_accept`メソッドは、権限のないユーザは実行できない[管理メソッド](../index.md)です。_ ### リクエストのフォーマット @@ -20,19 +22,23 @@ labels: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": "Accept my ledger!", "command": "ledger_accept" } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh #Syntax: ledger_accept rippled ledger_accept ``` + {% /tab %} {% /tabs %} @@ -42,6 +48,7 @@ rippled ledger_accept ### レスポンスのフォーマット 処理が成功したレスポンスの例: + ```js { "id": "Accept my ledger!", @@ -55,15 +62,15 @@ rippled ledger_accept レスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 -| `Field` | 型 | 説明 | -|:-----------------------|:-----------------|:---------------------------------| +| `Field` | 型 | 説明 | +| :--------------------- | :----------- | :------------------------------------------- | | `ledger_current_index` | 符号なし整数 | 新規に作成される「現行」レジャーインデックス | {% admonition type="info" name="注記" %}レジャーを閉鎖すると、`rippled`がそのレジャーのトランザクションの正規順序を決定してリプレイします。これにより、以前に現行レジャーに暫定的に適用されていたトランザクションの結果が変化することがあります。{% /admonition %} ### 考えられるエラー -* [汎用エラータイプ][]のすべて。 -* `notStandAlone` - `rippled`サーバが現在スタンドアロンモードで実行されていない場合。 +- [汎用エラータイプ][]のすべて。 +- `notStandAlone` - `rippled`サーバが現在スタンドアロンモードで実行されていない場合。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/server-control-methods/stop.md b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/server-control-methods/stop.md index 9b1d308195..55dd3a41df 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/server-control-methods/stop.md +++ b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/server-control-methods/stop.md @@ -2,46 +2,53 @@ html: stop.html parent: server-control-methods.html seo: - description: サーバのグレースフルシャットダウンを行います。 + description: サーバのグレースフルシャットダウンを行います。 labels: - コアサーバ --- + # stop + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/Stop.cpp "Source") サーバのグレースフルシャットダウンを行います。 -_`stop`リクエストは、権限のないユーザは実行できない*[管理メソッド](../index.md)です。_ +_`stop`リクエストは、権限のないユーザは実行できない\*[管理メソッド](../index.md)です。_ ### リクエストのフォーマット + リクエストのフォーマットの例: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": 0, - "command": "stop" + "id": 0, + "command": "stop" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "stop", - "params": [ - {} - ] + "method": "stop", + "params": [{}] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ``` rippled stop ``` + {% /tab %} {% /tabs %} @@ -55,17 +62,20 @@ rippled stop {% tabs %} {% tab label="JSON-RPC" %} + ```json { - "result" : { - "message" : "ripple server stopping", - "status" : "success" + "result": { + "message": "ripple server stopping", + "status": "success" } } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -77,18 +87,19 @@ Connecting to 127.0.0.1:5005 } } ``` + {% /tab %} {% /tabs %} レスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 -| `Field` | 型 | 説明 | -|:----------|:-------|:-------------------------------------| +| `Field` | 型 | 説明 | +| :-------- | :----- | :------------------------------------------ | | `message` | 文字列 | `ripple server stopping` : 正常終了の場合。 | ### 考えられるエラー -* [汎用エラータイプ][]のすべて。 +- [汎用エラータイプ][]のすべて。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/server-control-methods/validation_seed.md b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/server-control-methods/validation_seed.md index 16a960b916..b2eb6fcc0d 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/server-control-methods/validation_seed.md +++ b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/server-control-methods/validation_seed.md @@ -2,46 +2,53 @@ html: validation_seed.html parent: server-control-methods.html seo: - description: 無効。rippledが検証の署名に使用するシークレット値を一時的に設定します。 + description: 無効。rippledが検証の署名に使用するシークレット値を一時的に設定します。 status: removed labels: - コアサーバ --- + # validation_seed + [[ソース]](https://github.com/XRPLF/rippled/blob/a61ffab3f9010d8accfaa98aa3cacc7d38e74121/src/ripple/rpc/handlers/ValidationSeed.cpp "Source") `validation_seed`コマンドは、rippledが検証の署名に使用するシークレット値を一時的に設定します。サーバを再起動すると、この値は構成ファイルに基づいてリセットされます。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.29.1-rc1" %}rippled 0.29.1 以降では無効{% /badge %} -*`validation_seed`リクエストは、権限のないユーザは実行できない[管理メソッド](../index.md)です。* +_`validation_seed`リクエストは、権限のないユーザは実行できない[管理メソッド](../index.md)です。_ ### リクエストのフォーマット + リクエストのフォーマットの例: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": "set_seed_1", - "command": "validation_seed", - "secret": "BAWL MAN JADE MOON DOVE GEM SON NOW HAD ADEN GLOW TIRE" + "id": "set_seed_1", + "command": "validation_seed", + "secret": "BAWL MAN JADE MOON DOVE GEM SON NOW HAD ADEN GLOW TIRE" } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh #Syntax: validation_seed [secret] rippled validation_seed 'BAWL MAN JADE MOON DOVE GEM SON NOW HAD ADEN GLOW TIRE' ``` + {% /tab %} {% /tabs %} リクエストには以下のパラメーターが含まれます。 -| `Field` | 型 | 説明 | -|:---------|:-------|:---------------------------------------------------------| +| `Field` | 型 | 説明 | +| :------- | :----- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `secret` | 文字列 | _(省略可)_ 指定されている場合は、この値はキーペアの検証のためのシークレット値として使用されます。有効なフォーマットには、XRP Ledgerの[base58][]フォーマット、[RFC-1751](https://tools.ietf.org/html/rfc1751)、またはパスフレーズがあります。省略されている場合は、ネットワークへの検証の提案が無効になります。 | ### レスポンスのフォーマット @@ -51,6 +58,7 @@ rippled validation_seed 'BAWL MAN JADE MOON DOVE GEM SON NOW HAD ADEN GLOW TIRE' {% tabs %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -63,9 +71,11 @@ rippled validation_seed 'BAWL MAN JADE MOON DOVE GEM SON NOW HAD ADEN GLOW TIRE' } } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -79,21 +89,22 @@ Connecting to 127.0.0.1:5005 } } ``` + {% /tab %} {% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 -| `Field` | 型 | 説明 | -|:------------------------|:-------|:------------------------------------------| +| `Field` | 型 | 説明 | +| :---------------------- | :----- | :------------------------------------------------------------------------------------------------------------------------------------------ | | `validation_key` | 文字列 | (提案が無効な場合には省略可)これらの検証クレデンシャルのシークレットキー([RFC-1751](https://tools.ietf.org/html/rfc1751)フォーマット)。 | -| `validation_public_key` | 文字列 | (提案が無効な場合には省略可)これらの検証クレデンシャルの公開鍵(XRP Ledgerの[base58][]エンコード文字列フォーマット) | -| `validation_seed` | 文字列 | (提案が無効な場合には省略可)これらの検証クレデンシャルのシークレットキー(XRP Ledgerの[base58][]エンコード文字列フォーマット) | +| `validation_public_key` | 文字列 | (提案が無効な場合には省略可)これらの検証クレデンシャルの公開鍵(XRP Ledgerの[base58][]エンコード文字列フォーマット) | +| `validation_seed` | 文字列 | (提案が無効な場合には省略可)これらの検証クレデンシャルのシークレットキー(XRP Ledgerの[base58][]エンコード文字列フォーマット) | ### 考えられるエラー -* [汎用エラータイプ][]のすべて。 -* `badSeed` - リクエストに無効なシークレット値が指定されていました。この場合は通常、シークレット値が異なるフォーマットの有効文字列(アカウントアドレス、検証の公開鍵など)である可能性があります。 +- [汎用エラータイプ][]のすべて。 +- `badSeed` - リクエストに無効なシークレット値が指定されていました。この場合は通常、シークレット値が異なるフォーマットの有効文字列(アカウントアドレス、検証の公開鍵など)である可能性があります。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/signing-methods/index.md b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/signing-methods/index.md index bd97aeea7a..fa349b1ba0 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/signing-methods/index.md +++ b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/signing-methods/index.md @@ -4,9 +4,9 @@ parent: admin-api-methods.html metadata: indexPage: true --- + # 署名メソッド 以下のメソッドを使用して、トランザクションを扱うことができます。 - {% child-pages /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/signing-methods/sign.md b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/signing-methods/sign.md index a87ef6d9b3..61eae1d91f 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/signing-methods/sign.md +++ b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/signing-methods/sign.md @@ -2,114 +2,122 @@ html: sign.html # watch for clashes w/ this filename parent: signing-methods.html seo: - description: トランザクションの署名済みバイナリー表現を返します。 + description: トランザクションの署名済みバイナリー表現を返します。 labels: - トランザクション送信 --- + # sign + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/SignHandler.cpp "ソース") `sign`メソッドは[JSONフォーマットのトランザクション](../../../protocol/transactions/index.md)と[シード値](../../../../concepts/accounts/cryptographic-keys.md)を受け取り、トランザクションの署名済みバイナリー表現を返します。[マルチシグトランザクション](../../../../concepts/accounts/multi-signing.md)に署名を付与する場合は、代わりに[sign_forメソッド][]を使用します。 {% partial file="/@l10n/ja/docs/_snippets/public-signing-note.md" /%} - {% admonition type="warning" name="注意" %}独自の`rippled`サーバを運用している場合を除き、このコマンドを使用するのではなく、[クライアントライブラリ](../../../client-libraries.md)を実行してください。詳細については[安全な署名の設定](../../../../concepts/transactions/secure-signing.md)をご覧ください。{% /admonition %} ## リクエストのフォーマット + リクエストのフォーマットの例: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 2, "api_version": 2, "command": "sign", - "tx_json" : { - "TransactionType" : "Payment", - "Account" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "Destination" : "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "DeliverMax" : { - "currency" : "USD", - "value" : "1", - "issuer" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn" - } - }, - "secret" : "s████████████████████████████", - "offline": false, - "fee_mult_max": 1000 + "tx_json": { + "TransactionType": "Payment", + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "DeliverMax": { + "currency": "USD", + "value": "1", + "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn" + } + }, + "secret": "s████████████████████████████", + "offline": false, + "fee_mult_max": 1000 } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "sign", - "params": [ - { - "offline": false, - "api_version": 2, - "secret": "s████████████████████████████", - "tx_json": { - "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "DeliverMax": { - "currency": "USD", - "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "value": "1" - }, - "Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "TransactionType": "Payment" - }, - "fee_mult_max": 1000 - } - ] + "method": "sign", + "params": [ + { + "offline": false, + "api_version": 2, + "secret": "s████████████████████████████", + "tx_json": { + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "DeliverMax": { + "currency": "USD", + "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "value": "1" + }, + "Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "TransactionType": "Payment" + }, + "fee_mult_max": 1000 + } + ] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh #Syntax: sign secret tx_json [offline] rippled sign s████████████████████████████ '{"TransactionType": "Payment", "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", "Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", "DeliverMax": { "currency": "USD", "value": "1", "issuer" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn" }, "Sequence": 360, "Fee": "10000"}' offline ``` + {% /tab %} {% /tabs %} トランザクションに署名するには、[トランザクションを承認](../../../../concepts/transactions/index.md#トランザクションの承認)できるシークレットキーを提供する必要があります。通常、サーバが秘密鍵を取得するシード値を提供します。これを行うには、以下の方法があります。 -* `secret`フィールドにシードを指定し、`key_type`フィールドを省略します。この値は、XRP Ledgerの[base58][]シード、RFC-1751、16進値のフォーマットで記述するか、文字列パスフレーズとして記述します(secp256k1キーのみ)。 -* `key_type`値と、`seed`、`seed_hex`、または`passphrase`のいずれか1つを提供します。`secret`フィールドは省略します。(コマンドライン構文ではサポートされません)。 +- `secret`フィールドにシードを指定し、`key_type`フィールドを省略します。この値は、XRP Ledgerの[base58][]シード、RFC-1751、16進値のフォーマットで記述するか、文字列パスフレーズとして記述します(secp256k1キーのみ)。 +- `key_type`値と、`seed`、`seed_hex`、または`passphrase`のいずれか1つを提供します。`secret`フィールドは省略します。(コマンドライン構文ではサポートされません)。 リクエストには以下のパラメーターが含まれます。 -| `Field` | 型 | 説明 | -|:---------------|:--------|:--------------------------------------------------| -| `tx_json` | オブジェクト | JSONフォーマットの[トランザクション定義](../../../protocol/transactions/index.md) | -| `secret` | 文字列 | _(省略可)_ トランザクションを提供するアカウントの秘密シード。トランザクションへの署名に使用されます。信頼できないサーバに対して、またはセキュリティが確保されていないネットワーク接続を通じて機密情報を送信しないでください。`key_type`、`seed`、`seed_hex`、`passphrase`と同時に使用することはできません。 | -| `seed` | 文字列 | _(省略可)_ トランザクションを提供するアカウントの秘密シード。トランザクションへの署名に使用されます。XRP Ledgerの[base58][]フォーマットにする必要があります。指定する場合は、`key_type`も指定する必要があります。`secret`、`seed_hex`、`passphrase`と同時に使用することはできません。 | -| `seed_hex` | 文字列 | _(省略可)_ トランザクションを提供するアカウントの秘密シード。トランザクションへの署名に使用されます。16進フォーマットにする必要があります。指定する場合は、`key_type`も指定する必要があります。`secret`、`seed`、`passphrase`と同時に使用することはできません。 | -| `passphrase` | 文字列 | _(省略可)_ トランザクションを提供するアカウントの秘密シード。文字列パスフレーズとして、トランザクションへの署名に使用されます。指定する場合は、`key_type`も指定する必要があります。`secret`、`seed`、`seed_hex`と同時に使用することはできません。 | -| `key_type` | 文字列 | _(省略可)_ 指定された暗号化キーペアの[署名アルゴリズム](../../../../concepts/accounts/cryptographic-keys.md#署名アルゴリズム)。有効な種類は、`secp256k1`または`ed25519`です。デフォルトは`secp256k1`です。`secret`と同時に使用することはできません。 | -| `offline` | ブール値 | _(省略可)_ `true`の場合は、トランザクションの生成時に、トランザクションの詳細を[自動入力](#自動入力可能なフィールド)しないでください。デフォルトは`false`です。 | -| `build_path` | ブール値 | _(省略可)_ Payment型のトランザクションに対して指定した場合、署名前に`Paths`フィールドが自動で入力されます。**注意:** サーバは、このフィールドの値ではなく、このフィールドが存在するかどうかを調べます。この動作は変更される可能性があります。 | -| `fee_mult_max` | 整数 | _(省略可)_[自動的に提供される`Fee`フィールド](../../../protocol/transactions/common-fields.md#自動入力可能なフィールド)の上限値を設定します。現在の[トランザクションコストの負荷の乗数](../../../../concepts/transactions/transaction-cost.md#ローカル負荷コスト)が(`fee_mult_max` ÷ `fee_div_max`)よりも大きい場合、署名は`rpcHIGH_FEE`エラーで失敗します。トランザクションの`Fee`フィールド([トランザクションコスト](../../../../concepts/transactions/transaction-cost.md))を指定した場合は無視されます。デフォルトは`10`です。 | -| `fee_div_max` | 整数 | _(省略可)_ 現在の[トランザクションコストの負荷の乗数](../../../../concepts/transactions/transaction-cost.md#ローカル負荷コスト)が(`fee_mult_max` ÷ `fee_div_max`)よりも大きい場合、署名は`rpcHIGH_FEE`エラーで失敗します。トランザクションの`Fee`フィールド([トランザクションコスト](../../../../concepts/transactions/transaction-cost.md))を指定した場合は無視されます。デフォルトは`1`です。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.30.1" %}新規: rippled 0.30.1{% /badge %} | +| `Field` | 型 | 説明 | +| :------------- | :----------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `tx_json` | オブジェクト | JSONフォーマットの[トランザクション定義](../../../protocol/transactions/index.md) | +| `secret` | 文字列 | _(省略可)_ トランザクションを提供するアカウントの秘密シード。トランザクションへの署名に使用されます。信頼できないサーバに対して、またはセキュリティが確保されていないネットワーク接続を通じて機密情報を送信しないでください。`key_type`、`seed`、`seed_hex`、`passphrase`と同時に使用することはできません。 | +| `seed` | 文字列 | _(省略可)_ トランザクションを提供するアカウントの秘密シード。トランザクションへの署名に使用されます。XRP Ledgerの[base58][]フォーマットにする必要があります。指定する場合は、`key_type`も指定する必要があります。`secret`、`seed_hex`、`passphrase`と同時に使用することはできません。 | +| `seed_hex` | 文字列 | _(省略可)_ トランザクションを提供するアカウントの秘密シード。トランザクションへの署名に使用されます。16進フォーマットにする必要があります。指定する場合は、`key_type`も指定する必要があります。`secret`、`seed`、`passphrase`と同時に使用することはできません。 | +| `passphrase` | 文字列 | _(省略可)_ トランザクションを提供するアカウントの秘密シード。文字列パスフレーズとして、トランザクションへの署名に使用されます。指定する場合は、`key_type`も指定する必要があります。`secret`、`seed`、`seed_hex`と同時に使用することはできません。 | +| `key_type` | 文字列 | _(省略可)_ 指定された暗号化キーペアの[署名アルゴリズム](../../../../concepts/accounts/cryptographic-keys.md#署名アルゴリズム)。有効な種類は、`secp256k1`または`ed25519`です。デフォルトは`secp256k1`です。`secret`と同時に使用することはできません。 | +| `offline` | ブール値 | _(省略可)_ `true`の場合は、トランザクションの生成時に、トランザクションの詳細を[自動入力](#自動入力可能なフィールド)しないでください。デフォルトは`false`です。 | +| `build_path` | ブール値 | _(省略可)_ Payment型のトランザクションに対して指定した場合、署名前に`Paths`フィールドが自動で入力されます。**注意:** サーバは、このフィールドの値ではなく、このフィールドが存在するかどうかを調べます。この動作は変更される可能性があります。 | +| `fee_mult_max` | 整数 | _(省略可)_[自動的に提供される`Fee`フィールド](../../../protocol/transactions/common-fields.md#自動入力可能なフィールド)の上限値を設定します。現在の[トランザクションコストの負荷の乗数](../../../../concepts/transactions/transaction-cost.md#ローカル負荷コスト)が(`fee_mult_max` ÷ `fee_div_max`)よりも大きい場合、署名は`rpcHIGH_FEE`エラーで失敗します。トランザクションの`Fee`フィールド([トランザクションコスト](../../../../concepts/transactions/transaction-cost.md))を指定した場合は無視されます。デフォルトは`10`です。 | +| `fee_div_max` | 整数 | _(省略可)_ 現在の[トランザクションコストの負荷の乗数](../../../../concepts/transactions/transaction-cost.md#ローカル負荷コスト)が(`fee_mult_max` ÷ `fee_div_max`)よりも大きい場合、署名は`rpcHIGH_FEE`エラーで失敗します。トランザクションの`Fee`フィールド([トランザクションコスト](../../../../concepts/transactions/transaction-cost.md))を指定した場合は無視されます。デフォルトは`1`です。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.30.1" %}新規: rippled 0.30.1{% /badge %} | ### 自動入力可能なフィールド `tx_json`([トランザクションオブジェクト](../../../protocol/transactions/index.md))の特定のフィールドを省略すると、サーバは自動的に入力しようとします。リクエストの`offline`を`true`と指定しない限り、サーバは署名前に以下のフィールドを提供します。 -* `Sequence` - サーバは、送信者のアカウント情報にある次のシーケンス番号を自動的に使用します。 - * **注意:** アカウントの次のシーケンス番号は、このトランザクションが適用されるまで増分されません。トランザクションの送信および個々のトランザクションへのレスポンスを待たずに複数のトランザクションに署名する場合は、最初のトランザクション以降の各トランザクションについて、正しいシーケンス番号を手動で提供する必要があります。 -* `Fee` - `Fee`パラメーターを省略した場合、サーバは適切なトランザクションコストを自動的に入力しようとします。本番環境のXRP Ledgerでは、適切な`fee_mult_max`値を提供しない限り、この処理は`rpcHIGH_FEE`エラーで失敗します。 - * `fee_mult_max`パラメーターと`fee_div_max`パラメーターは、[リファレンストランザクションコスト](../../../../concepts/transactions/transaction-cost.md#referenceトランザクションコスト)に適用される負荷スケーリング乗数によって、自動的に提供されるトランザクションコストの上限値を設定します。デフォルト設定では、自動的に提供される値が10×の乗数より大きい場合、エラーが返されます。ただし、本番環境のXRP Ledgerでは、[1000×の負荷乗数を使用することが一般的](../../../../concepts/transactions/transaction-cost.md#現在のトランザクションコスト)です。 - * コマンドライン構文では、`fee_mult_max`および`fee_div_max`はサポートされません。本番環境のXRP Ledgerの場合は、`Fee`値を提供する必要があります。 - * **注意:** 悪意のあるサーバは、`fee_mult_max`や`fee_div_max`の値を無視して、きわめて大きなトランザクションコストを指定するおそれがあります。 -* `Paths` - Payment型のトランザクションの場合(XRP間の移動を除く)、Pathsフィールドは、[ripple_path_findメソッド][]を使用した場合と同様に自動的に入力できます。`build_path`を指定した場合のみ入力されます。 +- `Sequence` - サーバは、送信者のアカウント情報にある次のシーケンス番号を自動的に使用します。 + - **注意:** アカウントの次のシーケンス番号は、このトランザクションが適用されるまで増分されません。トランザクションの送信および個々のトランザクションへのレスポンスを待たずに複数のトランザクションに署名する場合は、最初のトランザクション以降の各トランザクションについて、正しいシーケンス番号を手動で提供する必要があります。 +- `Fee` - `Fee`パラメーターを省略した場合、サーバは適切なトランザクションコストを自動的に入力しようとします。本番環境のXRP Ledgerでは、適切な`fee_mult_max`値を提供しない限り、この処理は`rpcHIGH_FEE`エラーで失敗します。 + - `fee_mult_max`パラメーターと`fee_div_max`パラメーターは、[リファレンストランザクションコスト](../../../../concepts/transactions/transaction-cost.md#referenceトランザクションコスト)に適用される負荷スケーリング乗数によって、自動的に提供されるトランザクションコストの上限値を設定します。デフォルト設定では、自動的に提供される値が10×の乗数より大きい場合、エラーが返されます。ただし、本番環境のXRP Ledgerでは、[1000×の負荷乗数を使用することが一般的](../../../../concepts/transactions/transaction-cost.md#現在のトランザクションコスト)です。 + - コマンドライン構文では、`fee_mult_max`および`fee_div_max`はサポートされません。本番環境のXRP Ledgerの場合は、`Fee`値を提供する必要があります。 + - **注意:** 悪意のあるサーバは、`fee_mult_max`や`fee_div_max`の値を無視して、きわめて大きなトランザクションコストを指定するおそれがあります。 +- `Paths` - Payment型のトランザクションの場合(XRP間の移動を除く)、Pathsフィールドは、[ripple_path_findメソッド][]を使用した場合と同様に自動的に入力できます。`build_path`を指定した場合のみ入力されます。 ## レスポンスのフォーマット @@ -118,6 +126,7 @@ rippled sign s██████████████████████ {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 2, @@ -145,9 +154,11 @@ rippled sign s██████████████████████ } } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -174,9 +185,11 @@ rippled sign s██████████████████████ } } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -204,29 +217,30 @@ Connecting to 127.0.0.1:5005 } } ``` + {% /tab %} {% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 -| `Field` | 型 | 説明 | -|:----------|:-------|:--------------------------------------------------------| -| `tx_blob` | 文字列 | 正しく作成された署名済みトランザクションの16進バイナリー表現 | +| `Field` | 型 | 説明 | +| :-------- | :----------- | :-------------------------------------------------------------------------------------------------------------------- | +| `tx_blob` | 文字列 | 正しく作成された署名済みトランザクションの16進バイナリー表現 | | `tx_json` | オブジェクト | 自動的に入力されたフィールドを含む、署名済み[トランザクション全体](../../../protocol/transactions/index.md)のJSON仕様 | {% admonition type="warning" name="注意" %}このコマンドの結果としてエラーメッセージが表示された場合は、リクエストで指定されたシークレット値がメッセージの中に含まれている可能性があります。これらのエラーが他者から見えない状態であることを確認してください。{% /admonition %} -* このエラーは、複数の人物が参照できるログファイルに書き込まないでください。 -* デバッグを目的として、誰でも参照できる場所にこのエラーを貼り付けないでください。 -* このエラーメッセージは、誤ってWebサイトに表示しないようにしてください。 +- このエラーは、複数の人物が参照できるログファイルに書き込まないでください。 +- デバッグを目的として、誰でも参照できる場所にこのエラーを貼り付けないでください。 +- このエラーメッセージは、誤ってWebサイトに表示しないようにしてください。 ## 考えられるエラー -* いずれかの[汎用エラータイプ][]。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* `highFee` - トランザクションコストに適用される現在の負荷乗数が、自動的に提供されるトランザクションコストの上限を超えています。リクエストで指定する`fee_mult_max`を大きくするか(1000以上)、`tx_json`の`Fee`フィールドに値を手動で指定します。 -* `tooBusy` - トランザクションにパスが含まれていませんが、サーバがビジーであるため、パス検出処理をすぐに実行できません。管理者として接続している場合は発生しません。 -* `noPath` - トランザクションにパスが含まれておらず、サーバは、このペイメントの発生経路となるパスを検出できませんでした。 +- いずれかの[汎用エラータイプ][]。 +- `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 +- `highFee` - トランザクションコストに適用される現在の負荷乗数が、自動的に提供されるトランザクションコストの上限を超えています。リクエストで指定する`fee_mult_max`を大きくするか(1000以上)、`tx_json`の`Fee`フィールドに値を手動で指定します。 +- `tooBusy` - トランザクションにパスが含まれていませんが、サーバがビジーであるため、パス検出処理をすぐに実行できません。管理者として接続している場合は発生しません。 +- `noPath` - トランザクションにパスが含まれておらず、サーバは、このペイメントの発生経路となるパスを検出できませんでした。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/signing-methods/sign_for.md b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/signing-methods/sign_for.md index e03e32d7fd..cf8ec27a35 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/signing-methods/sign_for.md +++ b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/signing-methods/sign_for.md @@ -2,77 +2,86 @@ html: sign_for.html parent: signing-methods.html seo: - description: マルチシグトランザクションの署名を1つ提供します。 + description: マルチシグトランザクションの署名を1つ提供します。 labels: - トランザクション送信 --- + # sign_for + [[ソース]](https://github.com/XRPLF/rippled/blob/release/src/ripple/rpc/handlers/SignFor.cpp "Source") `sign_for`コマンドは、[マルチシグトランザクション](../../../../concepts/accounts/multi-signing.md)の署名を1つ提供します。 {% partial file="/@l10n/ja/docs/_snippets/public-signing-note.md" /%} - このコマンドを使用するには、[MultiSign Amendment][]が有効になっている必要があります。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.31.0" %}新規: rippled 0.31.0{% /badge %} ## リクエストのフォーマット + リクエストのフォーマットの例: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id":"sign_for_example", - "command":"sign_for", - "account":"rLFd1FzHMScFhLsXeaxStzv3UC97QHGAbM", - "seed":"s████████████████████████████", - "key_type":"ed25519", - "tx_json":{ - "TransactionType":"TrustSet", - "Account":"rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", - "Flags":262144, - "LimitAmount":{ - "currency":"USD", - "issuer":"rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "value":"100" - }, - "Sequence":2, - "SigningPubKey":"", - "Fee":"30000" - } + "id": "sign_for_example", + "command": "sign_for", + "account": "rLFd1FzHMScFhLsXeaxStzv3UC97QHGAbM", + "seed": "s████████████████████████████", + "key_type": "ed25519", + "tx_json": { + "TransactionType": "TrustSet", + "Account": "rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", + "Flags": 262144, + "LimitAmount": { + "currency": "USD", + "issuer": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "value": "100" + }, + "Sequence": 2, + "SigningPubKey": "", + "Fee": "30000" + } } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method":"sign_for", - "params":[{ - "account":"rLFd1FzHMScFhLsXeaxStzv3UC97QHGAbM", - "seed":"s████████████████████████████", - "key_type":"ed25519", - "tx_json":{ - "TransactionType":"TrustSet", - "Account":"rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", - "Flags":262144, - "LimitAmount":{ - "currency":"USD", - "issuer":"rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "value":"100" - }, - "Sequence":2, - "SigningPubKey":"", - "Fee":"30000" - } - }] + "method": "sign_for", + "params": [ + { + "account": "rLFd1FzHMScFhLsXeaxStzv3UC97QHGAbM", + "seed": "s████████████████████████████", + "key_type": "ed25519", + "tx_json": { + "TransactionType": "TrustSet", + "Account": "rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", + "Flags": 262144, + "LimitAmount": { + "currency": "USD", + "issuer": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "value": "100" + }, + "Sequence": 2, + "SigningPubKey": "", + "Fee": "30000" + } + } + ] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh #Syntax: rippled sign_for [offline] rippled sign_for rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW s████████████████████████████ '{ @@ -89,26 +98,27 @@ rippled sign_for rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW s█████████ "Fee":"30000" }' ``` + {% /tab %} {% /tabs %} リクエストには以下のパラメーターが含まれます。 -| `Field` | 型 | 説明 | -|:-------------|:---------------------|:---------------------------------------| -| `account` | 文字列 - [アドレス][] | 署名を提供するアドレス。 | -| `tx_json` | オブジェクト | 署名する[トランザクション](../../../protocol/transactions/index.md)。[signメソッド][]を使用する場合とは異なり、トランザクションのすべてのフィールド(`Fee`と`Sequence`を含む)を指定する必要があります。トランザクションに、空の文字列を値として指定した`SigningPubKey`フィールドを含める必要があります。このオブジェクトには、以前に収集した署名を持つ`Signers`配列を必要に応じて含めることができます。 | -| `secret` | 文字列 | _(省略可)_ トランザクションを提供するアカウントのシークレットキー。トランザクションへの署名に使用されます。信頼できないサーバに対して、またはセキュリティが確保されていないネットワーク接続を通じて機密情報を送信しないでください。`key_type`、`seed`、`seed_hex`、`passphrase`と同時に使用することはできません。 | -| `seed` | 文字列 | _(省略可)_ トランザクションを提供するアカウントのシークレットキー。トランザクションへの署名に使用されます。XRP Ledgerの[base58][]フォーマットにする必要があります。指定する場合は、`key_type`も指定する必要があります。`secret`、`seed_hex`、`passphrase`と同時に使用することはできません。 | -| `seed_hex` | 文字列 | _(省略可)_ トランザクションを提供するアカウントのシークレットキー。トランザクションへの署名に使用されます。16進フォーマットにする必要があります。指定する場合は、`key_type`も指定する必要があります。`secret`、`seed`、`passphrase`と同時に使用することはできません。 | -| `passphrase` | 文字列 | _(省略可)_ トランザクションを提供するアカウントのシークレットキー。文字列パスフレーズとして、トランザクションへの署名に使用されます。指定する場合は、`key_type`も指定する必要があります。`secret`、`seed`、`seed_hex`と同時に使用することはできません。 | -| `key_type` | 文字列 | _(省略可)_ このリクエストで提供する暗号鍵の種類。有効な種類は、`secp256k1`または`ed25519`です。デフォルトでは`secp256k1`です。`secret`と同時に使用することはできません。**注意:** Ed25519のサポートは実験的な機能です。 | +| `Field` | 型 | 説明 | +| :----------- | :-------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `account` | 文字列 - [アドレス][] | 署名を提供するアドレス。 | +| `tx_json` | オブジェクト | 署名する[トランザクション](../../../protocol/transactions/index.md)。[signメソッド][]を使用する場合とは異なり、トランザクションのすべてのフィールド(`Fee`と`Sequence`を含む)を指定する必要があります。トランザクションに、空の文字列を値として指定した`SigningPubKey`フィールドを含める必要があります。このオブジェクトには、以前に収集した署名を持つ`Signers`配列を必要に応じて含めることができます。 | +| `secret` | 文字列 | _(省略可)_ トランザクションを提供するアカウントのシークレットキー。トランザクションへの署名に使用されます。信頼できないサーバに対して、またはセキュリティが確保されていないネットワーク接続を通じて機密情報を送信しないでください。`key_type`、`seed`、`seed_hex`、`passphrase`と同時に使用することはできません。 | +| `seed` | 文字列 | _(省略可)_ トランザクションを提供するアカウントのシークレットキー。トランザクションへの署名に使用されます。XRP Ledgerの[base58][]フォーマットにする必要があります。指定する場合は、`key_type`も指定する必要があります。`secret`、`seed_hex`、`passphrase`と同時に使用することはできません。 | +| `seed_hex` | 文字列 | _(省略可)_ トランザクションを提供するアカウントのシークレットキー。トランザクションへの署名に使用されます。16進フォーマットにする必要があります。指定する場合は、`key_type`も指定する必要があります。`secret`、`seed`、`passphrase`と同時に使用することはできません。 | +| `passphrase` | 文字列 | _(省略可)_ トランザクションを提供するアカウントのシークレットキー。文字列パスフレーズとして、トランザクションへの署名に使用されます。指定する場合は、`key_type`も指定する必要があります。`secret`、`seed`、`seed_hex`と同時に使用することはできません。 | +| `key_type` | 文字列 | _(省略可)_ このリクエストで提供する暗号鍵の種類。有効な種類は、`secp256k1`または`ed25519`です。デフォルトでは`secp256k1`です。`secret`と同時に使用することはできません。**注意:** Ed25519のサポートは実験的な機能です。 | シークレットキーを指定した**1つのフィールドのみ**を指定する必要があります。次のいずれかになります。 -* `secret`値を指定し、`key_type`フィールドを省略します。この値は、XRP Ledgerの[base58][]シード、RFC-1751、16進値のフォーマットで記述するか、文字列パスフレーズとして記述します(secp256k1キーのみ)。 -* `key_type`値と、`seed`、`seed_hex`、または`passphrase`のいずれか1つを提供します。`secret`フィールドは省略します。(コマンドライン構文ではサポートされません。) +- `secret`値を指定し、`key_type`フィールドを省略します。この値は、XRP Ledgerの[base58][]シード、RFC-1751、16進値のフォーマットで記述するか、文字列パスフレーズとして記述します(secp256k1キーのみ)。 +- `key_type`値と、`seed`、`seed_hex`、または`passphrase`のいずれか1つを提供します。`secret`フィールドは省略します。(コマンドライン構文ではサポートされません。) ## レスポンスのフォーマット @@ -117,42 +127,45 @@ rippled sign_for rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW s█████████ {% tabs %} {% tab label="WebSocket" %} + ```json { - "id":"sign_for_example", - "status":"success", - "type":"response", - "result":{ - "tx_blob":"1200142200040000240000000263D5038D7EA4C680000000000000000000000000005553440000000000B5F762798A53D543A014CAF8B297CFF8F2F937E868400000000000753073008114A3780F5CB5A44D366520FC44055E8ED44D9A2270F3E0107321EDDF4ECB8F34A168143B928D48EFE625501FB8552403BBBD3FC038A5788951D7707440C3DCA3FEDE6D785398EEAB10A46B44047FF1B0863FC4313051FB292C991D1E3A9878FABB301128FE4F86F3D8BE4706D53FA97F5536DBD31AF14CD83A5ACDEB068114D96CB910955AB40A0E987EEE82BB3CEDD4441AAAE1F1", - "tx_json":{ - "Account":"rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", - "Fee":"30000", - "Flags":262144, - "LimitAmount":{ - "currency":"USD", - "issuer":"rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "value":"100" - }, - "Sequence":2, - "Signers":[ - { - "Signer":{ - "Account":"rLFd1FzHMScFhLsXeaxStzv3UC97QHGAbM", - "SigningPubKey":"EDDF4ECB8F34A168143B928D48EFE625501FB8552403BBBD3FC038A5788951D770", - "TxnSignature":"C3DCA3FEDE6D785398EEAB10A46B44047FF1B0863FC4313051FB292C991D1E3A9878FABB301128FE4F86F3D8BE4706D53FA97F5536DBD31AF14CD83A5ACDEB06" - } - } - ], - "SigningPubKey":"", - "TransactionType":"TrustSet", - "hash":"5216A13A3E3CF662352F0B430C7D82B7450415B6883DD428B5EC1DF1DE45DD8C" - } - } + "id": "sign_for_example", + "status": "success", + "type": "response", + "result": { + "tx_blob": "1200142200040000240000000263D5038D7EA4C680000000000000000000000000005553440000000000B5F762798A53D543A014CAF8B297CFF8F2F937E868400000000000753073008114A3780F5CB5A44D366520FC44055E8ED44D9A2270F3E0107321EDDF4ECB8F34A168143B928D48EFE625501FB8552403BBBD3FC038A5788951D7707440C3DCA3FEDE6D785398EEAB10A46B44047FF1B0863FC4313051FB292C991D1E3A9878FABB301128FE4F86F3D8BE4706D53FA97F5536DBD31AF14CD83A5ACDEB068114D96CB910955AB40A0E987EEE82BB3CEDD4441AAAE1F1", + "tx_json": { + "Account": "rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", + "Fee": "30000", + "Flags": 262144, + "LimitAmount": { + "currency": "USD", + "issuer": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "value": "100" + }, + "Sequence": 2, + "Signers": [ + { + "Signer": { + "Account": "rLFd1FzHMScFhLsXeaxStzv3UC97QHGAbM", + "SigningPubKey": "EDDF4ECB8F34A168143B928D48EFE625501FB8552403BBBD3FC038A5788951D770", + "TxnSignature": "C3DCA3FEDE6D785398EEAB10A46B44047FF1B0863FC4313051FB292C991D1E3A9878FABB301128FE4F86F3D8BE4706D53FA97F5536DBD31AF14CD83A5ACDEB06" + } + } + ], + "SigningPubKey": "", + "TransactionType": "TrustSet", + "hash": "5216A13A3E3CF662352F0B430C7D82B7450415B6883DD428B5EC1DF1DE45DD8C" + } + } } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ``` 200 OK { @@ -185,9 +198,11 @@ rippled sign_for rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW s█████████ } } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```json Loading:"/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -222,24 +237,25 @@ Connecting to 127.0.0.1:5005 } } ``` + {% /tab %} {% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 -| `Field` | 型 | 説明 | -|:----------|:-------|:--------------------------------------------------------| -| `tx_blob` | 文字列 | 新規に追加した署名を含む署名済みトランザクションの16進数表記。トランザクションに十分な数の署名がある場合には、[`submit`メソッドを使用してこの文字列を送信](../../public-api-methods/transaction-methods/submit.md#送信専用モード)できます。 | +| `Field` | 型 | 説明 | +| :-------- | :----------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `tx_blob` | 文字列 | 新規に追加した署名を含む署名済みトランザクションの16進数表記。トランザクションに十分な数の署名がある場合には、[`submit`メソッドを使用してこの文字列を送信](../../public-api-methods/transaction-methods/submit.md#送信専用モード)できます。 | | `tx_json` | オブジェクト | 新規に追加された署名を含む`Signers`配列を持つ[トランザクションの指定](../../../protocol/transactions/index.md)(JSONフォーマット) 。トランザクションに十分な数の署名がある場合には、[submit_multisignedメソッド][]を使用してこのオブジェクトを送信できます。 | ## 考えられるエラー -* [汎用エラータイプ][]のすべて。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* `srcActNotFound` - トランザクションの`Account`が、レジャーの資金供給のあるアドレスではない場合。 -* `srcActMalformed` - リクエストの署名アドレス(`account`フィールド)の形式が無効である場合。 -* `badSeed` - 指定されたシード値のフォーマットが正しくありません。 -* `badSecret` - 指定されたシークレット値のフォーマットが正しくありません。 +- [汎用エラータイプ][]のすべて。 +- `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 +- `srcActNotFound` - トランザクションの`Account`が、レジャーの資金供給のあるアドレスではない場合。 +- `srcActMalformed` - リクエストの署名アドレス(`account`フィールド)の形式が無効である場合。 +- `badSeed` - 指定されたシード値のフォーマットが正しくありません。 +- `badSecret` - 指定されたシークレット値のフォーマットが正しくありません。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/consensus_info.md b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/consensus_info.md index 6116d08900..2cd48f5d79 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/consensus_info.md +++ b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/consensus_info.md @@ -2,12 +2,14 @@ html: consensus_info.html parent: status-and-debugging-methods.html seo: - description: デバッグのためのコンセンサスプロセスに関する情報を返します。 + description: デバッグのためのコンセンサスプロセスに関する情報を返します。 labels: - ブロックチェーン - コアサーバ --- + # consensus_info + [[ソース]](https://github.com/XRPLF/rippled/blob/a61ffab3f9010d8accfaa98aa3cacc7d38e74121/src/ripple/rpc/handlers/ConsensusInfo.cpp "Source") `consensus_info`メソッドは、デバッグのための[コンセンサスプロセス](../../../../concepts/consensus-protocol/index.md)に関する情報を返します。 @@ -15,35 +17,40 @@ labels: _`consensus_info`メソッドは、権限のないユーザは実行できない[管理メソッド](../index.md)です。_ ### リクエストのフォーマット + リクエストのフォーマットの例: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": 99, - "command": "consensus_info" + "id": 99, + "command": "consensus_info" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "consensus_info", - "params": [ - {} - ] + "method": "consensus_info", + "params": [{}] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh #Syntax: consensus_info rippled consensus_info ``` + {% /tab %} {% /tabs %} @@ -57,81 +64,84 @@ rippled consensus_info {% tabs %} {% tab label="JSON-RPC" %} + ```json { - "result" : { - "info" : { - "acquired" : { - "4BC2CE596CBD1321775320E2067F9C06D3862826212C16EF42ABB6A2B0414306" : "acquired" + "result": { + "info": { + "acquired": { + "4BC2CE596CBD1321775320E2067F9C06D3862826212C16EF42ABB6A2B0414306": "acquired" + }, + "close_granularity": 10, + "close_percent": 50, + "close_resolution": 10, + "close_times": { + "486082972": 1, + "486082973": 4 + }, + "current_ms": 1003, + "have_time_consensus": false, + "ledger_seq": 13701086, + "our_position": { + "close_time": 486082973, + "previous_ledger": "0BB01379B51234BAAF501A71C7AB147F595460B689BB9E8252A0B87B5A483623", + "propose_seq": 0, + "transaction_hash": "4BC2CE596CBD1321775320E2067F9C06D3862826212C16EF42ABB6A2B0414306" + }, + "peer_positions": { + "0A2EAF919033A036D363D4E5610A66209DDBE8EE": { + "close_time": 486082972, + "peer_id": "n9KiYM9CgngLvtRCQHZwgC2gjpdaZcCcbt3VboxiNFcKuwFVujzS", + "previous_ledger": "0BB01379B51234BAAF501A71C7AB147F595460B689BB9E8252A0B87B5A483623", + "propose_seq": 0, + "transaction_hash": "4BC2CE596CBD1321775320E2067F9C06D3862826212C16EF42ABB6A2B0414306" }, - "close_granularity" : 10, - "close_percent" : 50, - "close_resolution" : 10, - "close_times" : { - "486082972" : 1, - "486082973" : 4 + "1567A8C953A86F8428C7B01641D79BBF2FD508F3": { + "close_time": 486082973, + "peer_id": "n9LdgEtkmGB9E2h3K4Vp7iGUaKuq23Zr32ehxiU8FWY7xoxbWTSA", + "previous_ledger": "0BB01379B51234BAAF501A71C7AB147F595460B689BB9E8252A0B87B5A483623", + "propose_seq": 0, + "transaction_hash": "4BC2CE596CBD1321775320E2067F9C06D3862826212C16EF42ABB6A2B0414306" }, - "current_ms" : 1003, - "have_time_consensus" : false, - "ledger_seq" : 13701086, - "our_position" : { - "close_time" : 486082973, - "previous_ledger" : "0BB01379B51234BAAF501A71C7AB147F595460B689BB9E8252A0B87B5A483623", - "propose_seq" : 0, - "transaction_hash" : "4BC2CE596CBD1321775320E2067F9C06D3862826212C16EF42ABB6A2B0414306" + "202397A81F20B44CF44EA99AF761295E5A8397D2": { + "close_time": 486082973, + "peer_id": "n9MD5h24qrQqiyBC8aeqqCWvpiBiYQ3jxSr91uiDvmrkyHRdYLUj", + "previous_ledger": "0BB01379B51234BAAF501A71C7AB147F595460B689BB9E8252A0B87B5A483623", + "propose_seq": 0, + "transaction_hash": "4BC2CE596CBD1321775320E2067F9C06D3862826212C16EF42ABB6A2B0414306" }, - "peer_positions" : { - "0A2EAF919033A036D363D4E5610A66209DDBE8EE" : { - "close_time" : 486082972, - "peer_id" : "n9KiYM9CgngLvtRCQHZwgC2gjpdaZcCcbt3VboxiNFcKuwFVujzS", - "previous_ledger" : "0BB01379B51234BAAF501A71C7AB147F595460B689BB9E8252A0B87B5A483623", - "propose_seq" : 0, - "transaction_hash" : "4BC2CE596CBD1321775320E2067F9C06D3862826212C16EF42ABB6A2B0414306" - }, - "1567A8C953A86F8428C7B01641D79BBF2FD508F3" : { - "close_time" : 486082973, - "peer_id" : "n9LdgEtkmGB9E2h3K4Vp7iGUaKuq23Zr32ehxiU8FWY7xoxbWTSA", - "previous_ledger" : "0BB01379B51234BAAF501A71C7AB147F595460B689BB9E8252A0B87B5A483623", - "propose_seq" : 0, - "transaction_hash" : "4BC2CE596CBD1321775320E2067F9C06D3862826212C16EF42ABB6A2B0414306" - }, - "202397A81F20B44CF44EA99AF761295E5A8397D2" : { - "close_time" : 486082973, - "peer_id" : "n9MD5h24qrQqiyBC8aeqqCWvpiBiYQ3jxSr91uiDvmrkyHRdYLUj", - "previous_ledger" : "0BB01379B51234BAAF501A71C7AB147F595460B689BB9E8252A0B87B5A483623", - "propose_seq" : 0, - "transaction_hash" : "4BC2CE596CBD1321775320E2067F9C06D3862826212C16EF42ABB6A2B0414306" - }, - "5C29005CF4FB479FC49EEFB4A5B075C86DD963CC" : { - "close_time" : 486082973, - "peer_id" : "n9L81uNCaPgtUJfaHh89gmdvXKAmSt5Gdsw2g1iPWaPkAHW5Nm4C", - "previous_ledger" : "0BB01379B51234BAAF501A71C7AB147F595460B689BB9E8252A0B87B5A483623", - "propose_seq" : 0, - "transaction_hash" : "4BC2CE596CBD1321775320E2067F9C06D3862826212C16EF42ABB6A2B0414306" - }, - "EFC49EB648E557CC50A72D715249B80E071F7705" : { - "close_time" : 486082973, - "peer_id" : "n949f75evCHwgyP4fPVgaHqNHxUVN15PsJEZ3B3HnXPcPjcZAoy7", - "previous_ledger" : "0BB01379B51234BAAF501A71C7AB147F595460B689BB9E8252A0B87B5A483623", - "propose_seq" : 0, - "transaction_hash" : "4BC2CE596CBD1321775320E2067F9C06D3862826212C16EF42ABB6A2B0414306" - } + "5C29005CF4FB479FC49EEFB4A5B075C86DD963CC": { + "close_time": 486082973, + "peer_id": "n9L81uNCaPgtUJfaHh89gmdvXKAmSt5Gdsw2g1iPWaPkAHW5Nm4C", + "previous_ledger": "0BB01379B51234BAAF501A71C7AB147F595460B689BB9E8252A0B87B5A483623", + "propose_seq": 0, + "transaction_hash": "4BC2CE596CBD1321775320E2067F9C06D3862826212C16EF42ABB6A2B0414306" }, - "previous_mseconds" : 2005, - "previous_proposers" : 5, - "proposers" : 5, - "proposing" : false, - "state" : "consensus", - "synched" : true, - "validating" : false - }, - "status" : "success" + "EFC49EB648E557CC50A72D715249B80E071F7705": { + "close_time": 486082973, + "peer_id": "n949f75evCHwgyP4fPVgaHqNHxUVN15PsJEZ3B3HnXPcPjcZAoy7", + "previous_ledger": "0BB01379B51234BAAF501A71C7AB147F595460B689BB9E8252A0B87B5A483623", + "propose_seq": 0, + "transaction_hash": "4BC2CE596CBD1321775320E2067F9C06D3862826212C16EF42ABB6A2B0414306" + } + }, + "previous_mseconds": 2005, + "previous_proposers": 5, + "proposers": 5, + "proposing": false, + "state": "consensus", + "synched": true, + "validating": false + }, + "status": "success" } } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -207,34 +217,34 @@ Connecting to 127.0.0.1:5005 } } ``` + {% /tab %} {% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 -| `Field` | 型 | 説明 | -|:--------|:-------|:----------------------------------------------------------| +| `Field` | 型 | 説明 | +| :------ | :----------- | :----------------------------------------------------------------------------------------------- | | `info` | オブジェクト | コンセンサスのデバッグで役立つ可能性のある情報。この出力は、予告なく変更される可能性があります。 | `info`オブジェクトに含まれる可能性のあるフィールドについて以下に簡単に説明します。 -| `Field` | 型 | 説明 | -|:-----------------|:--------|:------------------------------------------------| -| `ledger_seq` | 数値 | 現在コンセンサスプロセスにあるレジャーのシーケンス番号。 | -| `our_position` | オブジェクト | コンセンサスプロセスにあるレジャーについてサーバが予期する内容。 | -| `peer_positions` | オブジェクト | コンセンサスプロセスにあるピアと各ピアが提案するレジャーバージョンのマップ。 | -| `proposers` | 数値 | このコンセンサスプロセスに参加している信頼できるバリデータの数。信頼できるバリデータは、このサーバ構成に応じて異なります。 | -| `synched` | ブール値 | このサーバ自体が、自分がネットワークと同期中であるとみなしているかどうか。 | -| `state` | 文字列 | 現在進行中のコンセンサスプロセスの部分: `open`、`consensus`、`finished`、または`accepted`。 | +| `Field` | 型 | 説明 | +| :--------------- | :----------- | :------------------------------------------------------------------------------------------------------------------------- | +| `ledger_seq` | 数値 | 現在コンセンサスプロセスにあるレジャーのシーケンス番号。 | +| `our_position` | オブジェクト | コンセンサスプロセスにあるレジャーについてサーバが予期する内容。 | +| `peer_positions` | オブジェクト | コンセンサスプロセスにあるピアと各ピアが提案するレジャーバージョンのマップ。 | +| `proposers` | 数値 | このコンセンサスプロセスに参加している信頼できるバリデータの数。信頼できるバリデータは、このサーバ構成に応じて異なります。 | +| `synched` | ブール値 | このサーバ自体が、自分がネットワークと同期中であるとみなしているかどうか。 | +| `state` | 文字列 | 現在進行中のコンセンサスプロセスの部分: `open`、`consensus`、`finished`、または`accepted`。 | `info`の唯一のフィールドが`"consensus": "none"`である最小限の結果となることもありますが、これは正常です。これは、サーバがコンセンサスラウンドの合間にあることを示します。 `consensus_info`コマンドを短い間隔で連続して数回実行すると、このコマンドの結果が大きく変化することがあります。 - ### 考えられるエラー -* [汎用エラータイプ][]のすべて。 +- [汎用エラータイプ][]のすべて。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/feature.md b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/feature.md index 616ebe03d5..4d5fdcbac5 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/feature.md +++ b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/feature.md @@ -2,12 +2,14 @@ html: feature.html parent: status-and-debugging-methods.html seo: - description: Amendmentに関してこのサーバが認識している情報を返します。 + description: Amendmentに関してこのサーバが認識している情報を返します。 labels: - ブロックチェーン - コアサーバ --- + # feature + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/Feature1.cpp "Source") `feature`コマンドは、[Amendment](../../../../concepts/networks-and-servers/amendments.md)に関してこのサーバが認識している情報(Amendmentが有効であるかどうか、サーバが[Amendmentプロセス](../../../../concepts/networks-and-servers/amendments.md#amendmentプロセス)でこれらのAmendmentに賛成票を投じたかどうかなど)を返します。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.31.0" %}新規: rippled 0.31.0{% /badge %} @@ -17,58 +19,67 @@ labels: _`feature`メソッドは、権限のないユーザは実行できない[管理メソッド](../index.md)です。_ ### リクエストのフォーマット + リクエストのフォーマットの例: {% tabs %} {% tab label="WebSocket - すべてリスト" %} + ```json { - "id": "list_all_features", - "command": "feature" + "id": "list_all_features", + "command": "feature" } ``` + {% /tab %} {% tab label="WebSocket - 拒否" %} + ```json { - "id": "reject_multi_sign", - "command": "feature", - "feature": "4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373", - "vetoed": true + "id": "reject_multi_sign", + "command": "feature", + "feature": "4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373", + "vetoed": true } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "feature", - "params": [ - { - "feature": "4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373", - "vetoed": false - } - ] + "method": "feature", + "params": [ + { + "feature": "4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373", + "vetoed": false + } + ] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh #Syntax: feature [ [accept|reject]] rippled feature 4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373 accept ``` + {% /tab %} {% /tabs %} リクエストには以下のパラメーターが含まれます。 -| `Field` | 型 | 説明 | -|:----------|:--------|:-------------------------------------------------------| -| `feature` | 文字列 | _(省略可)_ Amendmentの一意のID(16進数)またはAmendmentの短い名前。指定されている場合は、レスポンスが1つのAmendmentに限定されます。それ以外の場合はレスポンスにすべてのAmendmentのリストが表示されます。 | +| `Field` | 型 | 説明 | +| :-------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `feature` | 文字列 | _(省略可)_ Amendmentの一意のID(16進数)またはAmendmentの短い名前。指定されている場合は、レスポンスが1つのAmendmentに限定されます。それ以外の場合はレスポンスにすべてのAmendmentのリストが表示されます。 | | `vetoed` | ブール値 | (省略可、`feature`が指定されていない場合は無視されます)trueの場合、サーバに対し`feature`で指定されたAmendmentに反対票を投じるように指示します。falseの場合、サーバに対しAmendmentに賛成票を投じるように指示します。 | {% admonition type="info" name="注記" %}サーバが新しいAmendmentの適用方法を現在認識していない場合でも、`feature`フィールドにAmendment IDを指定すれば、新しいAmendmentに賛成票を投じるようにサーバを設定できます。たとえば、Amendmentをサポートする新しい`rippled`バージョンに _確実に_ アップグレードする予定がある場合などにこのように設定できます。{% /admonition %} @@ -80,70 +91,75 @@ rippled feature 4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373 {% tabs %} {% tab label="WebSocket - すべてリスト" %} + ```json { - "id": "list_all_features", - "status": "success", - "type": "response", - "result": { - "features": { - "42426C4D4F1009EE67080A9B7965B44656D7714D104A72F9B4369F97ABF044EE": { - "enabled": false, - "name": "FeeEscalation", - "supported": true, - "vetoed": false - }, - "4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373": { - "enabled": false, - "name": "MultiSign", - "supported": true, - "vetoed": false - }, - "6781F8368C4771B83E8B821D88F580202BCB4228075297B19E4FDC5233F1EFDC": { - "enabled": false, - "name": "TrustSetAuth", - "supported": true, - "vetoed": false - }, - "C1B8D934087225F509BEB5A8EC24447854713EE447D277F69545ABFA0E0FD490": { - "enabled": false, - "name": "Tickets", - "supported": true, - "vetoed": false - }, - "DA1BD556B42D85EA9C84066D028D355B52416734D3283F85E216EA5DA6DB7E13": { - "enabled": false, - "name": "SusPay", - "supported": true, - "vetoed": false - } - } - } + "id": "list_all_features", + "status": "success", + "type": "response", + "result": { + "features": { + "42426C4D4F1009EE67080A9B7965B44656D7714D104A72F9B4369F97ABF044EE": { + "enabled": false, + "name": "FeeEscalation", + "supported": true, + "vetoed": false + }, + "4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373": { + "enabled": false, + "name": "MultiSign", + "supported": true, + "vetoed": false + }, + "6781F8368C4771B83E8B821D88F580202BCB4228075297B19E4FDC5233F1EFDC": { + "enabled": false, + "name": "TrustSetAuth", + "supported": true, + "vetoed": false + }, + "C1B8D934087225F509BEB5A8EC24447854713EE447D277F69545ABFA0E0FD490": { + "enabled": false, + "name": "Tickets", + "supported": true, + "vetoed": false + }, + "DA1BD556B42D85EA9C84066D028D355B52416734D3283F85E216EA5DA6DB7E13": { + "enabled": false, + "name": "SusPay", + "supported": true, + "vetoed": false + } + } + } } ``` + {% /tab %} {% tab label="WebSocket - 拒否" %} + ```json { - "id": "reject_multi_sign", - "status": "success", - "type": "response", - "result": { - "features": { - "4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373": { - "enabled": false, - "name": "MultiSign", - "supported": true, - "vetoed": true - } - } - } + "id": "reject_multi_sign", + "status": "success", + "type": "response", + "result": { + "features": { + "4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373": { + "enabled": false, + "name": "MultiSign", + "supported": true, + "vetoed": true + } + } + } } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -159,9 +175,11 @@ rippled feature 4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373 } } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -178,24 +196,25 @@ Connecting to 127.0.0.1:5005 } } ``` + {% /tab %} {% /tabs %} レスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に**Amendmentのマップ**がJSONプロジェクトとして含まれています。オブジェクトのキーはAmendment IDです。各キーの値は、そのIDのAmendmentのステータスを記述した _Amendmentオブジェクト_ です。リクエストに`feature`が指定されいる場合、リクエストによる変更の適用後には、リクエストされたAmendmentオブジェクトだけがマップに含まれます。各Amendmentオブジェクトのフィールドを次に示します。 -| `Field` | 型 | 説明 | -|:------------|:--------|:-----------------------------------------------------| -| `enabled` | ブール値 | 最新レジャーでこのAmendmentが現在有効であるかどうか。 | -| `name` | 文字列 | (省略される場合があります)このAmendmentの人間が読める形式の名前(判明している場合)。 | -| `supported` | ブール値 | サーバがこのAmendmentの適用方法を認識しているかどうか。このフィールドが`false`(サーバがこのAmendmentの適用方法を認識していない)に設定されており、`enabled`が`true`(このAmendmentが最新レジャーで有効である)に設定されている場合、このAmendmentによりサーバが[Amendmentブロック](../../../../concepts/networks-and-servers/amendments.md#amendment-blocked)される可能性があります。 | -| `vetoed` | ブール値 または 文字列 | ほとんどのAmendmentにおいて、これはサーバがこのAmendmentに反対票を投じるように指示されているかどうかを示すブール値です。コードの中で廃止とマークされているAmendmentについては、代わりに`Obsolete`という文字列を指定します。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.11.0" %}更新: rippled 1.11.0{% /badge %}. | +| `Field` | 型 | 説明 | +| :---------- | :--------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `enabled` | ブール値 | 最新レジャーでこのAmendmentが現在有効であるかどうか。 | +| `name` | 文字列 | (省略される場合があります)このAmendmentの人間が読める形式の名前(判明している場合)。 | +| `supported` | ブール値 | サーバがこのAmendmentの適用方法を認識しているかどうか。このフィールドが`false`(サーバがこのAmendmentの適用方法を認識していない)に設定されており、`enabled`が`true`(このAmendmentが最新レジャーで有効である)に設定されている場合、このAmendmentによりサーバが[Amendmentブロック](../../../../concepts/networks-and-servers/amendments.md#amendment-blocked)される可能性があります。 | +| `vetoed` | ブール値 または 文字列 | ほとんどのAmendmentにおいて、これはサーバがこのAmendmentに反対票を投じるように指示されているかどうかを示すブール値です。コードの中で廃止とマークされているAmendmentについては、代わりに`Obsolete`という文字列を指定します。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.11.0" %}更新: rippled 1.11.0{% /badge %}. | {% admonition type="warning" name="注意" %}Amendmentの`name`は、Amendmentの内容を厳密に示すものではありません。サーバ間でこの名前が一意であることや整合性があることは保証されません。{% /admonition %} ### 考えられるエラー -* [汎用エラータイプ][]のすべて。 -* `badFeature` - 指定されている`feature`のフォーマットが正しくないか、サーバがその名前のAmendmentを認識していません。 +- [汎用エラータイプ][]のすべて。 +- `badFeature` - 指定されている`feature`のフォーマットが正しくないか、サーバがその名前のAmendmentを認識していません。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/fetch_info.md b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/fetch_info.md index 7e2216d35a..e0b0e9e080 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/fetch_info.md +++ b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/fetch_info.md @@ -2,11 +2,13 @@ html: fetch_info.html parent: status-and-debugging-methods.html seo: - description: このサーバが現在ネットワークからフェッチしているオブジェクトに関する情報を返します。 + description: このサーバが現在ネットワークからフェッチしているオブジェクトに関する情報を返します。 labels: - コアサーバ --- + # fetch_info + [[ソース]](https://github.com/XRPLF/rippled/blob/315a8b6b602798a4cff4d8e1911936011e12abdb/src/ripple/rpc/handlers/FetchInfo.cpp "Source") `fetch_info`コマンドは、このサーバが現在ネットワークからフェッチしているオブジェクトに関する情報と、その情報を所有しているピアの数を返します。これは現在の取得操作をリセットする場合にも使用できます。 @@ -14,46 +16,53 @@ labels: _`fetch_info`メソッドは、権限のないユーザは実行できない[管理メソッド](../index.md)です。_ ### リクエストのフォーマット + リクエストのフォーマットの例: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": 91, - "command": "fetch_info", - "clear": false + "id": 91, + "command": "fetch_info", + "clear": false } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "fetch_info", - "params": [ - { - "clear": false - } - ] + "method": "fetch_info", + "params": [ + { + "clear": false + } + ] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh #Syntax: fetch_info [clear] rippled fetch_info ``` + {% /tab %} {% /tabs %} リクエストには以下のパラメーターが含まれます。 -| `Field` | 型 | 説明 | -|:--------|:--------|:---------------------------------------------------------| +| `Field` | 型 | 説明 | +| :------ | :------- | :----------------------------------------------------------------------------------------------------------------------- | | `clear` | ブール値 | `true`の場合、現在のフェッチ操作がリセットされます。それ以外の場合、進行中のフェッチ操作のステータスのみが取得されます。 | ### レスポンスのフォーマット @@ -63,44 +72,47 @@ rippled fetch_info {% tabs %} {% tab label="JSON-RPC" %} + ```json { - "result" : { - "info" : { - "348928" : { - "hash" : "C26D432B06F84861BCACD7942EDC3FE0B2E1DEB966A9E516A0FD275A375C2010", - "have_header" : true, - "have_state" : false, - "have_transactions" : true, - "needed_state_hashes" : [ - "BF8DC6B1E10D1D3565BF0649075D22EBFD34F751AFCC0E53E81D74786BC88922", - "34E37A71CB51A12C73A435250E6A6349F7884C7EEBA6B88FA31F0244E967E88F", - "BFB7D3008A7D61FD6A0538D1C2E70CFB94CE8DC66606319C372F278A48629765", - "41C0C61D701FB1EA586F0EF1FC7A91FEC476D979589DA60507F05C13F7C21975", - "6DDE8840A2C3C7FF05E5FFEE4D06408694C16A8357338FE0C4581DC3D8A00BBA", - "6C69D833B582C849917806FA009518832BB50E900E43716FD7CC1966428DD0CF", - "1EDC020CFC4AF19B625C52E20B66D6AE672821CCC461E8A9C457A3B2955657F7", - "FC0616A66A2B0589CA513F3341D4EA51E782C4601E5072308478E3CC19264640", - "19FC607B5DE1B64681A676EC1ED5507B9555B0E098CD9D898320297DE1A64033", - "5E128D3FC990074E35687387A14AA12D9FD287E5AB57CB9B2FD83DE635DF5CA9", - "DE72820F3981770F2AA8770BC233B80661F1A452819D8529008875FF8DED87A9", - "3ACB84BEE2C45556351FF60FD787D235C9CF5623FB8A35B01446B773598E7CC0", - "0DD3A8DF69874148057F1F2BF305442FF2E89A76A08B4CC8C051E2ED69B874F3", - "4AE9A9C4F12A5BD0355037DA40A0B145420A2168A9FEDE43E643BD13062F8ECE", - "08CBF8CFFEC207F5AC4E4F24BC447011FD8C79D25B344281FBFB4732D7058ED4", - "779B2577C5C4BAED6657421448EA506BBF50F86BE363E0924127C4EA17A58BBE" - ], - "peers" : 2, - "timeouts" : 0 - } - }, - "status" : "success" + "result": { + "info": { + "348928": { + "hash": "C26D432B06F84861BCACD7942EDC3FE0B2E1DEB966A9E516A0FD275A375C2010", + "have_header": true, + "have_state": false, + "have_transactions": true, + "needed_state_hashes": [ + "BF8DC6B1E10D1D3565BF0649075D22EBFD34F751AFCC0E53E81D74786BC88922", + "34E37A71CB51A12C73A435250E6A6349F7884C7EEBA6B88FA31F0244E967E88F", + "BFB7D3008A7D61FD6A0538D1C2E70CFB94CE8DC66606319C372F278A48629765", + "41C0C61D701FB1EA586F0EF1FC7A91FEC476D979589DA60507F05C13F7C21975", + "6DDE8840A2C3C7FF05E5FFEE4D06408694C16A8357338FE0C4581DC3D8A00BBA", + "6C69D833B582C849917806FA009518832BB50E900E43716FD7CC1966428DD0CF", + "1EDC020CFC4AF19B625C52E20B66D6AE672821CCC461E8A9C457A3B2955657F7", + "FC0616A66A2B0589CA513F3341D4EA51E782C4601E5072308478E3CC19264640", + "19FC607B5DE1B64681A676EC1ED5507B9555B0E098CD9D898320297DE1A64033", + "5E128D3FC990074E35687387A14AA12D9FD287E5AB57CB9B2FD83DE635DF5CA9", + "DE72820F3981770F2AA8770BC233B80661F1A452819D8529008875FF8DED87A9", + "3ACB84BEE2C45556351FF60FD787D235C9CF5623FB8A35B01446B773598E7CC0", + "0DD3A8DF69874148057F1F2BF305442FF2E89A76A08B4CC8C051E2ED69B874F3", + "4AE9A9C4F12A5BD0355037DA40A0B145420A2168A9FEDE43E643BD13062F8ECE", + "08CBF8CFFEC207F5AC4E4F24BC447011FD8C79D25B344281FBFB4732D7058ED4", + "779B2577C5C4BAED6657421448EA506BBF50F86BE363E0924127C4EA17A58BBE" + ], + "peers": 2, + "timeouts": 0 + } + }, + "status": "success" } } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -139,29 +151,30 @@ Connecting to 127.0.0.1:5005 } } ``` + {% /tab %} {% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 -| `Field` | 型 | 説明 | -|:--------|:-------|:----------------------------------------------------------| +| `Field` | 型 | 説明 | +| :------ | :----------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `info` | オブジェクト | フェッチ対象のオブジェクトと、そのフェッチ対象オブジェクトのステータスのマップ。フェッチ対象のレジャーはその[レジャーインデックス]によって識別されます。フェッチ対象のレジャーとその他のオブジェクトがハッシュによって識別されることもあります。 | 進行中のフェッチ操作を記述するフィールドは、予告なく変更される可能性があります。以下のフィールドが含まれている可能性があります。 -| `Field` | 型 | 説明 | -|:----------------------|:------------------------|:---------------------------| -| `hash` | 文字列 | フェッチ対象アイテムのハッシュ。 | -| `have_header` | ブール値 | レジャーの場合、このサーバがすでにレジャーのヘッダーセクションを取得しているかどうか。 | -| `have_transactions` | ブール値 | レジャーの場合、このサーバがすでにレジャーのトランザクションセクションを取得しているかどうか。 | +| `Field` | 型 | 説明 | +| :-------------------- | :----------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `hash` | 文字列 | フェッチ対象アイテムのハッシュ。 | +| `have_header` | ブール値 | レジャーの場合、このサーバがすでにレジャーのヘッダーセクションを取得しているかどうか。 | +| `have_transactions` | ブール値 | レジャーの場合、このサーバがすでにレジャーのトランザクションセクションを取得しているかどうか。 | | `needed_state_hashes` | (ハッシュ)文字列の配列 | まだ必要とされる、このアイテムの状態オブジェクトのハッシュ値。必要なハッシュの数が16を超えている場合、レスポンスには最初の16個のハッシュのみが含まれます。 | -| `peers` | 数値 | このアイテムが利用可能であるピアの数。 | -| `timeouts` | 数値 | このアイテムをフェッチしようとしてタイムアウトになった(2.5秒)回数。 | +| `peers` | 数値 | このアイテムが利用可能であるピアの数。 | +| `timeouts` | 数値 | このアイテムをフェッチしようとしてタイムアウトになった(2.5秒)回数。 | ### 考えられるエラー -* [汎用エラータイプ][]のすべて。 +- [汎用エラータイプ][]のすべて。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/get_counts.md b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/get_counts.md index 34b5c4e1c0..6290b026f3 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/get_counts.md +++ b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/get_counts.md @@ -2,11 +2,13 @@ html: get_counts.html parent: status-and-debugging-methods.html seo: - description: サーバの健全性に関するさまざまな統計情報を提供します。 + description: サーバの健全性に関するさまざまな統計情報を提供します。 labels: - コアサーバ --- + # get_counts + [[ソース]](https://github.com/XRPLF/rippled/blob/c7118a183a660648aa88a3546a6b2c5bce858440/src/ripple/rpc/handlers/GetCounts.cpp "Source") `get_counts`コマンドは、サーバの健全性に関するさまざまな統計情報を提供します。そのほとんどは、現在メモリーに格納されている各種オブジェクトの数です。 @@ -14,46 +16,53 @@ labels: _`get_counts`メソッドは、権限のないユーザは実行できない[管理メソッド](../index.md)です。_ ### リクエストのフォーマット + リクエストのフォーマットの例: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": 90, - "command": "get_counts", - "min_count": 100 + "id": 90, + "command": "get_counts", + "min_count": 100 } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "get_counts", - "params": [ - { - "min_count": 100 - } - ] + "method": "get_counts", + "params": [ + { + "min_count": 100 + } + ] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh #Syntax: get_counts [min_count] rippled get_counts 100 ``` + {% /tab %} {% /tabs %} リクエストには以下のパラメーターが含まれます。 -| `Field` | 型 | 説明 | -|:------------|:--------------------------|:-----------------------------------| +| `Field` | 型 | 説明 | +| :---------- | :------------------- | :--------------------------------------------- | | `min_count` | 数値(符号なし整数) | この値以上の値を含むフィールドのみを返します。 | ### レスポンスのフォーマット @@ -63,43 +72,46 @@ rippled get_counts 100 {% tabs %} {% tab label="JSON-RPC" %} + ```json { - "result" : { - "AL_hit_rate" : 48.36725616455078, - "HashRouterEntry" : 3048, - "Ledger" : 46, - "NodeObject" : 10417, - "SLE_hit_rate" : 64.62035369873047, - "STArray" : 1299, - "STLedgerEntry" : 646, - "STObject" : 6987, - "STTx" : 4104, - "STValidation" : 610, - "Transaction" : 4069, - "dbKBLedger" : 10733, - "dbKBTotal" : 39069, - "dbKBTransaction" : 26982, - "fullbelow_size" : 0, - "historical_perminute" : 0, - "ledger_hit_rate" : 71.0565185546875, - "node_hit_rate" : 3.808214902877808, - "node_read_bytes" : 393611911, - "node_reads_hit" : 1283098, - "node_reads_total" : 679410, - "node_writes" : 1744285, - "node_written_bytes" : 794368909, - "status" : "success", - "treenode_cache_size" : 6650, - "treenode_track_size" : 598631, - "uptime" : "3 hours, 50 minutes, 27 seconds", - "write_load" : 0 + "result": { + "AL_hit_rate": 48.36725616455078, + "HashRouterEntry": 3048, + "Ledger": 46, + "NodeObject": 10417, + "SLE_hit_rate": 64.62035369873047, + "STArray": 1299, + "STLedgerEntry": 646, + "STObject": 6987, + "STTx": 4104, + "STValidation": 610, + "Transaction": 4069, + "dbKBLedger": 10733, + "dbKBTotal": 39069, + "dbKBTransaction": 26982, + "fullbelow_size": 0, + "historical_perminute": 0, + "ledger_hit_rate": 71.0565185546875, + "node_hit_rate": 3.808214902877808, + "node_read_bytes": 393611911, + "node_reads_hit": 1283098, + "node_reads_total": 679410, + "node_writes": 1744285, + "node_written_bytes": 794368909, + "status": "success", + "treenode_cache_size": 6650, + "treenode_track_size": 598631, + "uptime": "3 hours, 50 minutes, 27 seconds", + "write_load": 0 } } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -137,23 +149,24 @@ Connecting to 127.0.0.1:5005 } } ``` + {% /tab %} {% /tabs %} レスポンスは[標準フォーマット][]に従っています。結果に含まれるフィールドのリストは、予告なく変更される可能性がありますが、(特に)以下のいずれかが含まれます。 -| `Field` | 型 | 説明 | -|:--------------|:-------|:----------------------------------------------------| -| `Transaction` | 数値 | メモリー内の`Transaction`オブジェクトの数 | -| `Ledger` | 数値 | メモリー内のレジャーの数 | -| `uptime` | 文字列 | このサーバの連続稼働時間。 | +| `Field` | 型 | 説明 | +| :------------ | :----- | :---------------------------------------- | +| `Transaction` | 数値 | メモリー内の`Transaction`オブジェクトの数 | +| `Ledger` | 数値 | メモリー内のレジャーの数 | +| `uptime` | 文字列 | このサーバの連続稼働時間。 | その他のほとんどのエントリでは、値はメモリー内に現在保持されている当該タイプのオブジェクトの数を示します。 ### 考えられるエラー -* [汎用エラータイプ][]のすべて。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 +- [汎用エラータイプ][]のすべて。 +- `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/index.md b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/index.md index 3df73594d0..60f1f3dff8 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/index.md +++ b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/index.md @@ -4,9 +4,9 @@ parent: admin-api-methods.html metadata: indexPage: true --- + # ステータスとデバッグのメソッド 以下のメソッドを使用して、ネットワークとサーバのステータスを確認することができます。 - {% child-pages /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/print.md b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/print.md index cd71ab8660..5fec8cfce2 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/print.md +++ b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/print.md @@ -2,35 +2,42 @@ html: print.html parent: status-and-debugging-methods.html seo: - description: さまざまな内部サブシステムの現在の状況を返します。 + description: さまざまな内部サブシステムの現在の状況を返します。 labels: - コアサーバ --- + # print + [[ソース]](https://github.com/XRPLF/rippled/blob/315a8b6b602798a4cff4d8e1911936011e12abdb/src/ripple/rpc/handlers/Print.cpp "Source") `print`コマンドは、さまざまな内部サブシステム(ピア、レジャークリーナー、リソースマネージャーなど)の現在の状況を返します。 -*`print`リクエストは、権限のないユーザは実行できない[管理メソッド](../index.md)です。* +_`print`リクエストは、権限のないユーザは実行できない[管理メソッド](../index.md)です。_ ### リクエストのフォーマット + リクエストのフォーマットの例: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": "print_req_1", - "command": "print" + "id": "print_req_1", + "command": "print" } ``` + {% /tab %} {% tab label="コマンドライン" %} + ``` rippled print ``` + {% /tab %} {% /tabs %} @@ -44,6 +51,7 @@ rippled print {% tabs %} {% tab label="コマンドライン" %} + ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -229,6 +237,7 @@ Connecting to 127.0.0.1:5005 } ``` + {% /tab %} {% /tabs %} @@ -237,6 +246,6 @@ Connecting to 127.0.0.1:5005 ### 考えられるエラー -* [汎用エラータイプ][]のすべて。 +- [汎用エラータイプ][]のすべて。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_info.md b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_info.md index 70d78bce0a..09d4fc8289 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_info.md +++ b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_info.md @@ -2,19 +2,20 @@ html: validator_info.html parent: status-and-debugging-methods.html seo: - description: バリデータとして設定されている場合、サーバのバリデーション設定を取得します。 + description: バリデータとして設定されている場合、サーバのバリデーション設定を取得します。 labels: - コアサーバ - ブロックチェーン --- + # validator_info + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/ValidatorInfo.cpp "ソース") {% code-page-name /%}メソッドは、サーバがバリデータとして設定されている場合に、現在のバリデータの設定を返します。 _{% code-page-name /%}メソッドは[管理メソッド](../index.md)で、権限のないユーザは実行できません。_ - ### リクエストのフォーマット リクエストのフォーマットの例: @@ -22,33 +23,38 @@ _{% code-page-name /%}メソッドは[管理メソッド](../index.md)で、権 {% tabs %} {% tab label="WebSocket" %} + ```json { - "command": "{% $frontmatter.seo.title %}" + "command": "{% $frontmatter.seo.title %}" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "{% $frontmatter.seo.title %}" + "method": "{% $frontmatter.seo.title %}" } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh #Syntax: {% $frontmatter.seo.title %} rippled {% $frontmatter.seo.title %} ``` + {% /tab %} {% /tabs %} リクエストはパラメータを使用しません。 - ### レスポンスのフォーマット 成功したレスポンスの例: @@ -56,6 +62,7 @@ rippled {% $frontmatter.seo.title %} {% tabs %} {% tab label="WebSocket" %} + ```json { "result": { @@ -69,9 +76,11 @@ rippled {% $frontmatter.seo.title %} "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -86,9 +95,11 @@ rippled {% $frontmatter.seo.title %} } } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -104,26 +115,27 @@ Connecting to 127.0.0.1:5005 } } ``` + {% /tab %} {% /tabs %} レスポンスは[標準フォーマット][]に従い、成功した結果には以下のフィールドが含まれます. -| `Field` | 型 | 説明 | -|:----------------|:------|:----------------------------------------------------------| -| `domain` | 文字列 | _(省略される場合があります)_ このバリデータに関連付けられたドメイン名 (ドメイン名が設定されている場合)。 | -| `ephemeral_key` | 文字列 | _(省略される場合があります)_ このサーバが検証メッセージに署名する際に使用する公開鍵。この鍵は、バリデータが設定したトークンを変更した際に変更されます。 | -| `manifest` | 文字列 | _(省略される場合があります)_ このバリデータが設定したトークンに対応するパブリックな「マニフェスト」を[バイナリにシリアライズ](../../../protocol/binary-format.md)して、base64でエンコードしたもの。このフィールドには個人情報は含まれません。 | +| `Field` | 型 | 説明 | +| :-------------- | :----- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `domain` | 文字列 | _(省略される場合があります)_ このバリデータに関連付けられたドメイン名 (ドメイン名が設定されている場合)。 | +| `ephemeral_key` | 文字列 | _(省略される場合があります)_ このサーバが検証メッセージに署名する際に使用する公開鍵。この鍵は、バリデータが設定したトークンを変更した際に変更されます。 | +| `manifest` | 文字列 | _(省略される場合があります)_ このバリデータが設定したトークンに対応するパブリックな「マニフェスト」を[バイナリにシリアライズ](../../../protocol/binary-format.md)して、base64でエンコードしたもの。このフィールドには個人情報は含まれません。 | | `master_key` | 文字列 | このバリデータのマスターキーペアの公開鍵。このキーはバリデータを一意に識別するもので、バリデータが公開鍵をローテーションする場合でも同じです。サーバが`[validator_token]`ではなく`[validation_seed]`を用いて設定されている場合、レスポンスのフィールドはこれだけとなります。 | -| `seq` | 数値 | _(省略される場合があります)_ このバリデータのバリデーション用トークンおよび設定のシーケンス番号。この番号は、バリデータのオペレータがトークンを更新して鍵をローテーションしたり設定を変更したりするたびに増加します。 | +| `seq` | 数値 | _(省略される場合があります)_ このバリデータのバリデーション用トークンおよび設定のシーケンス番号。この番号は、バリデータのオペレータがトークンを更新して鍵をローテーションしたり設定を変更したりするたびに増加します。 | バリデータトークンとキーローテーションの詳細については、[validator-keys-toolガイド](https://github.com/ripple/validator-keys-tool/blob/master/doc/validator-keys-tool-guide.md)をご覧ください。 - ### 考えられるエラー -* [汎用エラータイプ][]のすべて。 -- `invalidParams` - サーバが[バリデータとして設定されていない](../../../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md)場合、サーバはこのエラーを`"error_message" : "not a validator"`と共に返します。 +- [汎用エラータイプ][]のすべて。 + +* `invalidParams` - サーバが[バリデータとして設定されていない](../../../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md)場合、サーバはこのエラーを`"error_message" : "not a validator"`と共に返します。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_list_sites.md b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_list_sites.md index 9bafe975bc..0d3138f2a1 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_list_sites.md +++ b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_list_sites.md @@ -2,48 +2,55 @@ html: validator_list_sites.html parent: status-and-debugging-methods.html seo: - description: バリデータリストを処理するサイトのステータス情報を返します。 + description: バリデータリストを処理するサイトのステータス情報を返します。 labels: - ブロックチェーン - コアサーバ --- + # validator_list_sites + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/ValidatorListSites.cpp "Source") `validator_list_sites`コマンドは、バリデータリストを処理するサイトのステータス情報を返します。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.80.1" %}新規: rippled 0.80.1{% /badge %} -*`validator_list_sites`リクエストは、権限のないユーザは実行できない[管理メソッド](../index.md)です。* +_`validator_list_sites`リクエストは、権限のないユーザは実行できない[管理メソッド](../index.md)です。_ ### リクエストのフォーマット + リクエストのフォーマットの例: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": 1, - "command": "validator_list_sites" + "id": 1, + "command": "validator_list_sites" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "validator_list_sites", - "params": [ - {} - ] + "method": "validator_list_sites", + "params": [{}] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh #Syntax: validator_list_sites rippled validator_list_sites ``` + {% /tab %} {% /tabs %} @@ -57,6 +64,7 @@ rippled validator_list_sites {% tabs %} {% tab label="WebSocket" %} + ```json { "id":5, @@ -75,9 +83,11 @@ rippled validator_list_sites } } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -95,9 +105,11 @@ rippled validator_list_sites } } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -116,27 +128,28 @@ Connecting to 127.0.0.1:5005 } } ``` + {% /tab %} {% /tabs %} レスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 -| `Field` | 型 | 説明 | -|:------------------|:------|----------------------------------| +| `Field` | 型 | 説明 | +| :---------------- | :--- | ------------------------------------------ | | `validator_sites` | 配列 | バリデータサイトオブジェクトからなる配列。 | `validator_sites`フィールドの配列の各メンバーは、次のフィールドを有するオブジェクトです。 -| `Field` | 型 | 説明 | -|:-----------------------|:-----------------|:--------------------------------| -| `last_refresh_status` | 文字列 | 存在する場合は、サイトの最終更新の[`ListDisposition`](https://github.com/XRPLF/rippled/blob/master/src/ripple/app/misc/ValidatorList.h)です。存在しない場合は、サイトに対するクエリーがまだ成功していません。 | -| `last_refresh_time` | 文字列 | サイトの最終照会時刻を人間が読み取れる形式で表示します。存在しない場合は、サイトに対するクエリーがまだ成功していません。 | -| `refresh_interval_min` | 符号なし整数 | 更新試行間隔の分数。 | -| `uri` | 文字列 | サイトのURI。 | +| `Field` | 型 | 説明 | +| :--------------------- | :----------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `last_refresh_status` | 文字列 | 存在する場合は、サイトの最終更新の[`ListDisposition`](https://github.com/XRPLF/rippled/blob/master/src/ripple/app/misc/ValidatorList.h)です。存在しない場合は、サイトに対するクエリーがまだ成功していません。 | +| `last_refresh_time` | 文字列 | サイトの最終照会時刻を人間が読み取れる形式で表示します。存在しない場合は、サイトに対するクエリーがまだ成功していません。 | +| `refresh_interval_min` | 符号なし整数 | 更新試行間隔の分数。 | +| `uri` | 文字列 | サイトのURI。 | ### 考えられるエラー -* [汎用エラータイプ][]のすべて。 +- [汎用エラータイプ][]のすべて。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validators.md b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validators.md index 5629bc6974..21ecebbf7c 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validators.md +++ b/@l10n/ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validators.md @@ -2,48 +2,55 @@ html: validators.html parent: status-and-debugging-methods.html seo: - description: サーバが使用する公開済みの信頼できるバリデータの最新リストに関する情報を返します。 + description: サーバが使用する公開済みの信頼できるバリデータの最新リストに関する情報を返します。 labels: - ブロックチェーン - コアサーバ --- + # validators + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/Validators.cpp "Source") `validators`コマンドは、サーバが使用する公開済みの信頼できるバリデータの最新リストに関する情報を、人間が読み取れる形式で返します。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.80.1" %}新規: rippled 0.80.1{% /badge %} -*`validators`リクエストは、権限のないユーザは実行できない[管理メソッド](../index.md)です。* +_`validators`リクエストは、権限のないユーザは実行できない[管理メソッド](../index.md)です。_ ### リクエストのフォーマット + リクエストのフォーマットの例: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": 1, - "command": "validators" + "id": 1, + "command": "validators" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "validators", - "params": [ - {} - ] + "method": "validators", + "params": [{}] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh #Syntax: validators rippled validators ``` + {% /tab %} {% /tabs %} @@ -57,40 +64,37 @@ rippled validators {% tabs %} {% tab label="WebSocket" %} + ```json { - "id":5, - "status":"success", - "type":"response", - "result":{ - "local_static_keys": [], - "publisher_lists":[ - { - "available":true, - "expiration":"2017-Oct-13 14:56:00", - "list":[ - "nHBtBkHGfL4NpB54H1AwBaaSJkSJLUSPvnUNAcuNpuffYB51VjH6", - "nHBe4vqSAzjpPRLKwSFzRFtmvzXaf5wPPmuVrQCAoJoS1zskgDA4" - ], - "pubkey_publisher":"ED58ED4AA543B524F16771F6E1367BAA220D99DCF22CD8CF7A11309E9EAB1B647B", - "seq":1, - "version":1 - } - ], - "signing_keys":{}, - "status":"success", - "trusted_validator_keys":[ - "nHBe4vqSAzjpPRLKwSFzRFtmvzXaf5wPPmuVrQCAoJoS1zskgDA4", - "nHBtBkHGfL4NpB54H1AwBaaSJkSJLUSPvnUNAcuNpuffYB51VjH6" - ], - "validation_quorum":2, - "validator_list_expires":"2017-Oct-13 14:56:00" - } + "id": 5, + "status": "success", + "type": "response", + "result": { + "local_static_keys": [], + "publisher_lists": [ + { + "available": true, + "expiration": "2017-Oct-13 14:56:00", + "list": ["nHBtBkHGfL4NpB54H1AwBaaSJkSJLUSPvnUNAcuNpuffYB51VjH6", "nHBe4vqSAzjpPRLKwSFzRFtmvzXaf5wPPmuVrQCAoJoS1zskgDA4"], + "pubkey_publisher": "ED58ED4AA543B524F16771F6E1367BAA220D99DCF22CD8CF7A11309E9EAB1B647B", + "seq": 1, + "version": 1 + } + ], + "signing_keys": {}, + "status": "success", + "trusted_validator_keys": ["nHBe4vqSAzjpPRLKwSFzRFtmvzXaf5wPPmuVrQCAoJoS1zskgDA4", "nHBtBkHGfL4NpB54H1AwBaaSJkSJLUSPvnUNAcuNpuffYB51VjH6"], + "validation_quorum": 2, + "validator_list_expires": "2017-Oct-13 14:56:00" + } } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -122,9 +126,11 @@ rippled validators "status":"success" } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -157,34 +163,35 @@ Connecting to 127.0.0.1:5005 "status":"success" } ``` + {% /tab %} {% /tabs %} レスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 -| `Field` | 型 | 説明 | -|:-------------------------|:-------|:-----------------------------------------| -| `listed_static_keys` | 配列 | 信頼リストに常に追加可能なバリデータの公開鍵の配列。 | -| `publisher_lists` | 配列 | パブリッシャーリストオブジェクトの配列。 | -| `signing_keys` | オブジェクト | バリデータマニフェストを使用している登録済みバリデータのマスター公開鍵から、現在の署名キーへのマッピング。 | -| `trusted_validator_keys` | 配列 | 現在信頼されているバリデータの公開鍵の配列。 | -| `validation_quorum` | 数値 | 1つのレジャーバージョンの検証に最低限必要となる信頼できる検証の数。状況によっては、サーバがさらに検証をリクエストする場合があります。 | -| `validator_list_expires` | 文字列 | 人間が読み取れる形式での現在のバリデータリストの有効期限、文字列`unknown`(サーバが公開済みバリデータリストを読み込む必要がある場合)、または文字列`never`(サーバが静的なバリデータリストを使用している場合)のいずれか。 | +| `Field` | 型 | 説明 | +| :----------------------- | :----------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `listed_static_keys` | 配列 | 信頼リストに常に追加可能なバリデータの公開鍵の配列。 | +| `publisher_lists` | 配列 | パブリッシャーリストオブジェクトの配列。 | +| `signing_keys` | オブジェクト | バリデータマニフェストを使用している登録済みバリデータのマスター公開鍵から、現在の署名キーへのマッピング。 | +| `trusted_validator_keys` | 配列 | 現在信頼されているバリデータの公開鍵の配列。 | +| `validation_quorum` | 数値 | 1つのレジャーバージョンの検証に最低限必要となる信頼できる検証の数。状況によっては、サーバがさらに検証をリクエストする場合があります。 | +| `validator_list_expires` | 文字列 | 人間が読み取れる形式での現在のバリデータリストの有効期限、文字列`unknown`(サーバが公開済みバリデータリストを読み込む必要がある場合)、または文字列`never`(サーバが静的なバリデータリストを使用している場合)のいずれか。 | `publisher_lists`配列の各メンバーは、以下のフィールドを有するオブジェクトです。 -| `Field` | 型 | 説明 | -|:-------------------|:-----------------|:-------------------------------------| -| `available` | ブール値 | `false`の場合、`list`内のバリデータキーはこのパブリッシャーによりサポートされていない可能性があります。 | -| `expiration` | 文字列 | この公開済みリストの有効期限を人間が読み取れる形式で示します。 | -| `list` | 配列 | 公開済みバリデータキーからなる配列。 | -| `pubkey_publisher` | 文字列 | リストパブリッシャーのEd25519またはECDSA公開鍵(16進数)。 | -| `seq` | 符号なし整数 | 公開済みリストのシーケンス番号。 | -| `version` | 符号なし整数 | リストフォーマットのバージョン。 | +| `Field` | 型 | 説明 | +| :----------------- | :----------- | :------------------------------------------------------------------------------------------------------ | +| `available` | ブール値 | `false`の場合、`list`内のバリデータキーはこのパブリッシャーによりサポートされていない可能性があります。 | +| `expiration` | 文字列 | この公開済みリストの有効期限を人間が読み取れる形式で示します。 | +| `list` | 配列 | 公開済みバリデータキーからなる配列。 | +| `pubkey_publisher` | 文字列 | リストパブリッシャーのEd25519またはECDSA公開鍵(16進数)。 | +| `seq` | 符号なし整数 | 公開済みリストのシーケンス番号。 | +| `version` | 符号なし整数 | リストフォーマットのバージョン。 | ### 考えられるエラー -* [汎用エラータイプ][]のすべて。 +- [汎用エラータイプ][]のすべて。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/api-conventions/ctid.md b/@l10n/ja/docs/references/http-websocket-apis/api-conventions/ctid.md index 31dceae6f6..039425546a 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/api-conventions/ctid.md +++ b/@l10n/ja/docs/references/http-websocket-apis/api-conventions/ctid.md @@ -2,10 +2,11 @@ html: ctid.html parent: api-conventions.html seo: - description: CTID(Compact Transaction Identifier)は、検証済みトランザクションをチェーン全体で一意に識別する短い文字列です。 + description: CTID(Compact Transaction Identifier)は、検証済みトランザクションをチェーン全体で一意に識別する短い文字列です。 labels: - 開発 --- + # トランザクション軽量識別子 CTID(トランザクション軽量識別子 / Compact Transaction Identifier)は、XRP Ledgerのメインネットを含む、あらゆる[ネットワーク](../../../concepts/networks-and-servers/parallel-networks.md)で利用可能な、検証済みトランザクションの一意な識別子です。 diff --git a/@l10n/ja/docs/references/http-websocket-apis/api-conventions/error-formatting.md b/@l10n/ja/docs/references/http-websocket-apis/api-conventions/error-formatting.md index 8ef94fd7a0..37cb6274a7 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/api-conventions/error-formatting.md +++ b/@l10n/ja/docs/references/http-websocket-apis/api-conventions/error-formatting.md @@ -2,22 +2,23 @@ html: error-formatting.html parent: api-conventions.html seo: - description: WebSocket、JSON-RPC、コマンドラインインターフェイスのエラーフォーマットと汎用エラーコードです。 + description: WebSocket、JSON-RPC、コマンドラインインターフェイスのエラーフォーマットと汎用エラーコードです。 labels: - 開発 --- + # エラーのフォーマット エラーが発生する可能性のある状況をすべて挙げることは不可能です。トランスポートレイヤーで発生する場合(ネットワーク接続が失われる場合など)には、使用しているクライアントとトランスポートに応じてその結果は異なります。ただし、`rippled`サーバがリクエストを正常に受信した場合、サーバは標準のエラー形式でのレスポンスを試みます。 {% admonition type="warning" name="注意" %}リクエストの結果がエラーになった場合、レスポンスの一部としてリクエスト全体がコピーされます。このため、エラーのデバッグに取り組むことができます。ただし、これにはリクエストで渡した機密情報がすべて含まれます。エラーメッセージを共有するときには、アカウントの重要な機密情報を他のユーザに誤って公開することがないように、十分に注意してください。{% /admonition %} - エラーの例: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 3, @@ -33,9 +34,11 @@ labels: } } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json HTTP Status: 200 OK @@ -52,39 +55,40 @@ HTTP Status: 200 OK } } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```json { - "result": { - "error": "ledgerIndexMalformed", - "request": { - "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "command": "account_info", - "ledger_index": "-", - "strict": true - }, - "status": "error" - } + "result": { + "error": "ledgerIndexMalformed", + "request": { + "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "command": "account_info", + "ledger_index": "-", + "strict": true + }, + "status": "error" + } } ``` + {% /tab %} {% /tabs %} - ## WebSocketフォーマット -| `Field` | 型 | 説明 | -|:--------------|:------|:------------------------------------------------------| -| `id` | (多様) | このレスポンスのリクエスト元となったWeb Socketリクエストに指定されていたID | -| `status` | 文字列 | `"error"`: リクエストが原因でエラーが発生した場合 | -| `type` | 文字列 | 通常は`"response"`。これは、コマンドに対し正常にレスポンスしたことを示します。 | -| `error` | 文字列 | 発生したエラータイプの一意のコード。 | +| `Field` | 型 | 説明 | +| :------------ | :----------- | :----------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | (多様) | このレスポンスのリクエスト元となったWeb Socketリクエストに指定されていたID | +| `status` | 文字列 | `"error"`: リクエストが原因でエラーが発生した場合 | +| `type` | 文字列 | 通常は`"response"`。これは、コマンドに対し正常にレスポンスしたことを示します。 | +| `error` | 文字列 | 発生したエラータイプの一意のコード。 | | `request` | オブジェクト | このエラーが発生したリクエストのコピー(JSONフォーマット)。**注意:** リクエストにアカウントの機密情報が含まれている場合、ここにコピーされます。 | -| `api_version` | 数値 | _(省略可)_ リクエストで`api_version`を指定していた場合は、その値。 | - +| `api_version` | 数値 | _(省略可)_ リクエストで`api_version`を指定していた場合は、その値。 | ## JSON-RPCフォーマット @@ -97,14 +101,13 @@ Null method HTTPステータスコード200 OKが返されるその他のエラーの場合、レスポンスはJSONフォーマットで、以下のフィールドが使用されます。 -| `Field` | 型 | 説明 | -|:-----------------|:-------|:-------------------------------------------------| -| `result` | オブジェクト | クエリーに対するレスポンスが含まれているオブジェクト | -| `result.error` | 文字列 | 発生したエラータイプの一意のコード。 | -| `result.status` | 文字列 | `"error"`: リクエストが原因でエラーが発生した場合 | +| `Field` | 型 | 説明 | +| :--------------- | :----------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `result` | オブジェクト | クエリーに対するレスポンスが含まれているオブジェクト | +| `result.error` | 文字列 | 発生したエラータイプの一意のコード。 | +| `result.status` | 文字列 | `"error"`: リクエストが原因でエラーが発生した場合 | | `result.request` | オブジェクト | このエラーが発生したリクエストのコピー(JSONフォーマット)。**注意:** リクエストにアカウントの機密情報が含まれている場合、ここにコピーされます。**注記:** 発行されるリクエストにかかわらず、リクエストはWebSocketフォーマットに再設定されます。 | - ## 汎用エラー すべてのメソッドは、以下のいずれかの値の`error`コードを返す可能性があります。 @@ -123,5 +126,4 @@ HTTPステータスコード200 OKが返されるその他のエラーの場合 - `tooBusy` - サーバの負荷が高すぎるため、現在このコマンドを実行できません。管理者として接続している場合は、通常このエラーが返されることはありません。 - `wsTextRequired` -(WebSocketのみ)リクエストの[opcode](https://tools.ietf.org/html/rfc6455#section-5.2)がテキストではありません。 - {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/api-conventions/index.md b/@l10n/ja/docs/references/http-websocket-apis/api-conventions/index.md index bc44463975..90df2bd564 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/api-conventions/index.md +++ b/@l10n/ja/docs/references/http-websocket-apis/api-conventions/index.md @@ -2,15 +2,15 @@ html: api-conventions.html parent: http-websocket-apis.html seo: - description: rippled APIのデータ型とフォーマットについて説明します。 + description: rippled APIのデータ型とフォーマットについて説明します。 metadata: indexPage: true --- + # APIの規則 このセクションでは、JSON-RPCおよびWebSocketインターフェイスを含む`rippled` APIのデータ型とフォーマットについて説明します。 これらのデータ型の一部は、[Data API](../../data-api.md)を含む、より高度なAPIにも使用されます。 - {% child-pages /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/api-conventions/markers-and-pagination.md b/@l10n/ja/docs/references/http-websocket-apis/api-conventions/markers-and-pagination.md index 6d98a5e4f6..6a3496cfdb 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/api-conventions/markers-and-pagination.md +++ b/@l10n/ja/docs/references/http-websocket-apis/api-conventions/markers-and-pagination.md @@ -2,8 +2,9 @@ html: markers-and-pagination.html parent: api-conventions.html seo: - description: 大きなクエリを複数のレスポンスにページネーションする際の慣例です。 + description: 大きなクエリを複数のレスポンスにページネーションする際の慣例です。 --- + # マーカーとページネーション 一部のメソッドから返されるデータは、1つのレスポンスに実質的に収まらないことがあります。結果全体が収まらない場合、レスポンスには`marker`フィールドが含まれます。このフィールドを使用することで、複数回の呼出しを通じてデータのページをさらに取得できます。各リクエストで直前のレスポンスの`marker`値を渡して、終わったところから再開します。レスポンスに`marker`が含まれていなければ、データセットの終わりに達しています。 diff --git a/@l10n/ja/docs/references/http-websocket-apis/api-conventions/rate-limiting.md b/@l10n/ja/docs/references/http-websocket-apis/api-conventions/rate-limiting.md index a0087bec39..260a771b16 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/api-conventions/rate-limiting.md +++ b/@l10n/ja/docs/references/http-websocket-apis/api-conventions/rate-limiting.md @@ -2,10 +2,11 @@ html: rate-limiting.html parent: api-conventions.html seo: - description: パブリックAPIがどのようにクライアントのリクエスト数を制限しているかについての説明です。 + description: パブリックAPIがどのようにクライアントのリクエスト数を制限しているかについての説明です。 labels: - コアサーバ --- + # レート制限 `rippled`サーバはAPIクライアントが公開APIにリクエストできるレートを制限できます。レート制限はクライアントのIPアドレスに基づいて行われるため、[ネットワークアドレス変換](https://ja.wikipedia.org/wiki/ネットワークアドレス変換)の背後にいるクライアントは公開IPアドレスに基づく制限を共有します。 @@ -23,8 +24,8 @@ WebSocket APIの場合、サーバは接続を閉じ、切断メッセージと ```js const WebSocket = require('ws') const ws = new WebSocket('ws://localhost:6007/') -ws.on('close', (code,reason) => { - console.log("Disconnected. \ncode: ", code, "\nreason: ", reason) +ws.on('close', (code, reason) => { + console.log('Disconnected. \ncode: ', code, '\nreason: ', reason) }) // If rate limited, prints: @@ -46,6 +47,7 @@ Server is overloaded ``` ## リクエストあたりのレート + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/resource/Fees.h "ソース") サーバは時間の経過とともに行われるリクエストの数に基づいてクライアントの使用率を計算し、サーバがリクエストにレスポンスするためにどれだけの作業をしなければならないかに基づいて、異なるタイプのリクエストに重みをつけます。[subscribeメソッド][]と[path_findメソッド][]に対するサーバからの後続メッセージもクライアントの使用率にカウントされます。 @@ -55,13 +57,13 @@ Server is overloaded ## 関連項目 - **コンセプト:** - - [`rippled`サーバ](../../../concepts/networks-and-servers/index.md) - - [ソフトウェアエコシステム](../../../introduction/software-ecosystem.md) + - [`rippled`サーバ](../../../concepts/networks-and-servers/index.md) + - [ソフトウェアエコシステム](../../../introduction/software-ecosystem.md) - **チュートリアル:** - - [XRP Ledger APIの使用開始](../../../tutorials/http-websocket-apis/build-apps/get-started.md) - - [rippledのトラブルシューティング](../../../infrastructure/troubleshooting/index.md) + - [XRP Ledger APIの使用開始](../../../tutorials/http-websocket-apis/build-apps/get-started.md) + - [rippledのトラブルシューティング](../../../infrastructure/troubleshooting/index.md) - **リファレンス:** - - [rippled APIリファレンス](../index.md) - - [エラーのフォーマット](error-formatting.md) + - [rippled APIリファレンス](../index.md) + - [エラーのフォーマット](error-formatting.md) {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/api-conventions/request-formatting.md b/@l10n/ja/docs/references/http-websocket-apis/api-conventions/request-formatting.md index 0e3edb5cbf..0a61497cda 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/api-conventions/request-formatting.md +++ b/@l10n/ja/docs/references/http-websocket-apis/api-conventions/request-formatting.md @@ -2,8 +2,9 @@ html: request-formatting.html parent: api-conventions.html seo: - description: WebSocket、JSON-RPC、コマンドラインインターフェイスの標準のリクエストのフォーマットと例です。 + description: WebSocket、JSON-RPC、コマンドラインインターフェイスの標準のリクエストのフォーマットと例です。 --- + # リクエストのフォーマット ## リクエストの例 @@ -11,6 +12,7 @@ seo: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 2, @@ -21,9 +23,11 @@ seo: "api_version": 1 } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json POST http://s1.ripple.com:51234/ Content-Type: application/json @@ -40,27 +44,29 @@ Content-Type: application/json ] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh rippled account_info r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 validated strict ``` + {% /tab %} {% /tabs %} - ## WebSocketフォーマット `rippled`サーバへのWebSocketを開いた後、以下のフィールドを使用して、コマンドを[JSON](https://ja.wikipedia.org/wiki/JSON)オブジェクトとして送信できます。 -| フィールド | 型 | 説明 | -|:--------------------|:----------|:-------------------------------------------| -| `command` | 文字列 | [APIメソッド](../public-api-methods/index.md)の名前。 | -| `id` | (多種) | _(省略可)_ リクエストを識別するための一意な値。このリクエストに対するレスポンスも同じ `id` フィールドを使用します。これにより、レスポンスが順番通りに返ってこない場合でも、どのリクエストがどのレスポンスを返したのかを知ることができます。 | -| `api_version` | 数値 | _(省略可)_ 使用するAPIのバージョン。省略時はバージョン1を使用します。詳細については、[APIのバージョン管理](#api-versioning)をご覧ください。 | -| (メソッドのパラメータ) | (多種) | トップレベルのメソッドに任意のパラメータを指定します。 | +| フィールド | 型 | 説明 | +| :--------------------- | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `command` | 文字列 | [APIメソッド](../public-api-methods/index.md)の名前。 | +| `id` | (多種) | _(省略可)_ リクエストを識別するための一意な値。このリクエストに対するレスポンスも同じ `id` フィールドを使用します。これにより、レスポンスが順番通りに返ってこない場合でも、どのリクエストがどのレスポンスを返したのかを知ることができます。 | +| `api_version` | 数値 | _(省略可)_ 使用するAPIのバージョン。省略時はバージョン1を使用します。詳細については、[APIのバージョン管理](#api-versioning)をご覧ください。 | +| (メソッドのパラメータ) | (多種) | トップレベルのメソッドに任意のパラメータを指定します。 | サーバからのレスポンスについては[レスポンスのフォーマット](response-formatting.md)をご覧ください。 @@ -74,18 +80,17 @@ JSON-RPCリクエストを実行するには、`rippled`サーバがJSON-RPC接 以下のフィールドを指定したリクエストボディを[JSON](https://en.wikipedia.org/wiki/JSON)オブジェクトとして送信します。 - -| フィールド | 型 | 説明 | -|:--------------------|:----------|:-------------------------------------------| -| `method` | 文字列 | [APIメソッド](../public-api-methods/index.md)の名前。 | -| `params` | 配列 | _(省略可)_ このメソッドのパラメータを持つネストされたJSONオブジェクトを含む**一要素の配列**。メソッドがパラメータを必要としない場合は、このフィールドを省略できます。 | +| フィールド | 型 | 説明 | +| :--------- | :----- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `method` | 文字列 | [APIメソッド](../public-api-methods/index.md)の名前。 | +| `params` | 配列 | _(省略可)_ このメソッドのパラメータを持つネストされたJSONオブジェクトを含む**一要素の配列**。メソッドがパラメータを必要としない場合は、このフィールドを省略できます。 | `params`配列内のオブジェクトには以下のフィールドを含めることができます。 -| フィールド | 型 | 説明 | -|:--------------------|:----------|:-------------------------------------------| -| `api_version` | 数値 | _(省略可)_ 使用するAPIのバージョン。省略時はバージョン1を使用します。詳細については、[APIのバージョン管理](#api-versioning)をご覧ください。 | -| (Method Parameters) | (多種) | メソッドで利用する任意のパラメータ。 | +| フィールド | 型 | 説明 | +| :------------------ | :----- | :------------------------------------------------------------------------------------------------------------------------------------------ | +| `api_version` | 数値 | _(省略可)_ 使用するAPIのバージョン。省略時はバージョン1を使用します。詳細については、[APIのバージョン管理](#api-versioning)をご覧ください。 | +| (Method Parameters) | (多種) | メソッドで利用する任意のパラメータ。 | サーバからのレスポンスについては[レスポンスのフォーマット](response-formatting.md)をご覧ください。 @@ -97,6 +102,6 @@ APIのメソッド名は、通常の(ダッシュで始まる)コマンドライ コマンドラインは常に最新の[APIバージョン](#api-versioning)を使用します。 -{% admonition type="warning" name="注意" %}コマンドラインインターフェイスは管理目的でのみ使用することを意図しており、_サポートされているAPIではありません_です。新しいバージョンの`rippled`では、警告なしにコマンドラインAPIに破壊的な変更が導入される可能性があります!{% /admonition %} +{% admonition type="warning" name="注意" %}コマンドラインインターフェイスは管理目的でのみ使用することを意図しており、*サポートされているAPIではありません*です。新しいバージョンの`rippled`では、警告なしにコマンドラインAPIに破壊的な変更が導入される可能性があります!{% /admonition %} {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/api-conventions/response-formatting.md b/@l10n/ja/docs/references/http-websocket-apis/api-conventions/response-formatting.md index de8b9e1e01..afc659d117 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/api-conventions/response-formatting.md +++ b/@l10n/ja/docs/references/http-websocket-apis/api-conventions/response-formatting.md @@ -2,31 +2,32 @@ html: response-formatting.html parent: api-conventions.html seo: - description: WebSocket、JSON-RPC、コマンドラインインターフェイスのレスポンスのフォーマットとそのレスポンスに含まれるフィールド。 + description: WebSocket、JSON-RPC、コマンドラインインターフェイスのレスポンスのフォーマットとそのレスポンスに含まれるフィールド。 --- + # レスポンスのフォーマット `rippled`APIからのレスポンスのフォーマットは、メソッドが呼び出されたインターフェイス(WebSocket、JSON-RPC、コマンドライン)に応じて多少異なります。コマンドラインインターフェイスがJSON-RPCを呼び出すため、コマンドラインインターフェイスとJSON-RPCインターフェイスは同じフォーマットを使用します。 成功した場合のレスポンスに含まれるフィールドは、以下の通りです。 -| `Field` | 型 | 説明 | -|:----------------|:-----------|:------------------------------------------------| -| `id` | (場合により異なる) | (WebSocketのみ)このレスポンスのリクエスト元となったリクエストで指定されているID。 | -| `status` | 文字列 | (WebSocketのみ)値が`success`である場合、リクエストがサーバによって正常に受信され、理解されたことを示します。 | -| `result.status` | 文字列 | (JSON-RPCおよびコマンドライン)値が`success`である場合、リクエストがサーバによって正常に受信され、理解されたことを示します。 | -| `type` | 文字列 | (WebSocketのみ)値が`response`の場合、コマンドに対する正常なレスポンスであることを示します。[非同期の通知](../public-api-methods/subscription-methods/subscribe.md)では、`ledgerClosed`や`transaction`など異なる値が使用されます。 | -| `result` | オブジェクト | クエリーの結果。内容はコマンドによって異なります。 | -| `warning` | 文字列 | _(省略可)_ このフィールドが存在する場合、値は文字列`load`です。これはクライアントがサーバがこのクライアントを切断する[レートリミット](rate-limiting.md)の閾値に近づいていることを意味します。 | -| `warnings` | 配列 | _(省略可)_ このフィールドが存在する場合、重要な警告を含む1つ以上の**Warningsオブジェクト**が含まれます。詳細については、[API警告](#apiの警告)をご覧ください。 | -| `forwarded` | 真偽値 | _(省略可)_ `true`の場合、このリクエストとレスポンスは[レポートモード][]サーバからP2Pモードサーバに転送されます。デフォルトは`false`です。 | - +| `Field` | 型 | 説明 | +| :-------------- | :------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | (場合により異なる) | (WebSocketのみ)このレスポンスのリクエスト元となったリクエストで指定されているID。 | +| `status` | 文字列 | (WebSocketのみ)値が`success`である場合、リクエストがサーバによって正常に受信され、理解されたことを示します。 | +| `result.status` | 文字列 | (JSON-RPCおよびコマンドライン)値が`success`である場合、リクエストがサーバによって正常に受信され、理解されたことを示します。 | +| `type` | 文字列 | (WebSocketのみ)値が`response`の場合、コマンドに対する正常なレスポンスであることを示します。[非同期の通知](../public-api-methods/subscription-methods/subscribe.md)では、`ledgerClosed`や`transaction`など異なる値が使用されます。 | +| `result` | オブジェクト | クエリーの結果。内容はコマンドによって異なります。 | +| `warning` | 文字列 | _(省略可)_ このフィールドが存在する場合、値は文字列`load`です。これはクライアントがサーバがこのクライアントを切断する[レートリミット](rate-limiting.md)の閾値に近づいていることを意味します。 | +| `warnings` | 配列 | _(省略可)_ このフィールドが存在する場合、重要な警告を含む1つ以上の**Warningsオブジェクト**が含まれます。詳細については、[API警告](#apiの警告)をご覧ください。 | +| `forwarded` | 真偽値 | _(省略可)_ `true`の場合、このリクエストとレスポンスは[レポートモード][]サーバからP2Pモードサーバに転送されます。デフォルトは`false`です。 | ## 成功した場合のレスポンスの例 {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 2, @@ -48,9 +49,11 @@ seo: } } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json HTTP Status: 200 OK @@ -72,42 +75,44 @@ HTTP Status: 200 OK } } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```json { - "result": { - "account_data": { - "Account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "Balance": "27389517749", - "Flags": 0, - "LedgerEntryType": "AccountRoot", - "OwnerCount": 18, - "PreviousTxnID": "B6B410172C0B65575D89E464AF5B99937CC568822929ABF87DA75CBD11911932", - "PreviousTxnLgrSeq": 6592159, - "Sequence": 1400, - "index": "4F83A2CF7E70F77F79A307E6A472BFC2585B806A70833CCD1C26105BAE0D6E05" - }, - "ledger_index": 6761012, - "status": "success" - } + "result": { + "account_data": { + "Account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "Balance": "27389517749", + "Flags": 0, + "LedgerEntryType": "AccountRoot", + "OwnerCount": 18, + "PreviousTxnID": "B6B410172C0B65575D89E464AF5B99937CC568822929ABF87DA75CBD11911932", + "PreviousTxnLgrSeq": 6592159, + "Sequence": 1400, + "index": "4F83A2CF7E70F77F79A307E6A472BFC2585B806A70833CCD1C26105BAE0D6E05" + }, + "ledger_index": 6761012, + "status": "success" + } } ``` + {% /tab %} {% /tabs %} - ## APIの警告 レスポンスに`warnings`の配列が含まれる場合、その配列の各要素はサーバからの個別の警告を表します。このような**警告オブジェクト**はそれぞれ以下のフィールドを含みます: -| フィールド | 型 | 説明 | -|:----------|:-----------|:--------------------------------------------------------| -| `id` | 数値 | この警告メッセージの一意の数値コード。 | -| `message` | 文字列 | このメッセージの原因を説明する人間が読める文字列。このメッセージの内容に依存するようなソフトウェアを書かないでください。代わりに`id`(および`details`(もしあれば))を使って警告を識別してください。 | -| `details` | オブジェクト | _(省略可)_ この警告に関する追加情報。内容は警告の種類によって異なります。 | +| フィールド | 型 | 説明 | +| :--------- | :----------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `id` | 数値 | この警告メッセージの一意の数値コード。 | +| `message` | 文字列 | このメッセージの原因を説明する人間が読める文字列。このメッセージの内容に依存するようなソフトウェアを書かないでください。代わりに`id`(および`details`(もしあれば))を使って警告を識別してください。 | +| `details` | オブジェクト | _(省略可)_ この警告に関する追加情報。内容は警告の種類によって異なります。 | 以下の資料では、考えられるすべての警告について説明しています。 @@ -134,14 +139,13 @@ HTTP Status: 200 OK この警告には、以下のフィールドを含む`details`フィールドが含まれます。 -| フィールド | 型 | 説明 | -|:--------------------|:-------|:----------------------------------------------| -| `expected_date` | 数値 | サポートされていない最初のAmendmentが有効になると予想される時刻([Rippleエポック以降の経過秒数][])。| -| `expected_date_UTC` | 文字列 | サポートされていない最初のAmendmentが有効になると予想される時刻(UTCでのタイムスタンプ)。 | +| フィールド | 型 | 説明 | +| :------------------ | :----- | :-------------------------------------------------------------------------------------------------- | +| `expected_date` | 数値 | サポートされていない最初のAmendmentが有効になると予想される時刻([Rippleエポック以降の経過秒数][])。 | +| `expected_date_UTC` | 文字列 | サポートされていない最初のAmendmentが有効になると予想される時刻(UTCでのタイムスタンプ)。 | レジャーのクローズ時間の変動により、これらはおおよその時刻となります。また、指定された時刻までにAmendmentが80%以上のバリデータからサポートされ続けない場合、Amendmentが有効にならず、期待された時刻にAmendmentが有効にならない可能性があります。サポートされていないAmendmentが有効にならない限り、サーバはAmendmentブロックされません。 - ### 1002. This server is amendment blocked 警告の例: @@ -178,21 +182,20 @@ HTTP Status: 200 OK {% admonition type="warning" name="注意" %}レポートモードで検証されていないデータをリクエストする場合、明示的に[レジャーバージョンを指定][レジャーの指定]しない限り、レポートモードはデフォルトで最新の検証済みレジャーを使用します。{% /admonition %} - ## 関連項目 - [リクエストのフォーマット](request-formatting.md) - [エラーのフォーマット](error-formatting.md): APIレスポンスの失敗 - **コンセプト:** - - [`rippled`サーバ](../../../concepts/networks-and-servers/index.md) - - [コンセンサス](../../../concepts/consensus-protocol/index.md) - - [Amendment](../../../concepts/networks-and-servers/amendments.md) - - [既知のAmendment](/resources/known-amendments.md) + - [`rippled`サーバ](../../../concepts/networks-and-servers/index.md) + - [コンセンサス](../../../concepts/consensus-protocol/index.md) + - [Amendment](../../../concepts/networks-and-servers/amendments.md) + - [既知のAmendment](/resources/known-amendments.md) - **チュートリアル:** - - [XRP LedgerのAPIを触ってみよう](../../../tutorials/http-websocket-apis/build-apps/get-started.md) - - [`rippled`のインストールと更新](../../../infrastructure/installation/index.md) + - [XRP LedgerのAPIを触ってみよう](../../../tutorials/http-websocket-apis/build-apps/get-started.md) + - [`rippled`のインストールと更新](../../../infrastructure/installation/index.md) - **リファレンス:** - - [featureメソッド][] - - [server_infoメソッド][] + - [featureメソッド][] + - [server_infoメソッド][] {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/api-conventions/rippled-server-states.md b/@l10n/ja/docs/references/http-websocket-apis/api-conventions/rippled-server-states.md index aff978032f..e9270916a2 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/api-conventions/rippled-server-states.md +++ b/@l10n/ja/docs/references/http-websocket-apis/api-conventions/rippled-server-states.md @@ -2,23 +2,24 @@ html: rippled-server-states.html parent: api-conventions.html seo: - description: 一部のAPIメソッドで報告される状態情報の定義です。 + description: 一部のAPIメソッドで報告される状態情報の定義です。 labels: - コアサーバ --- + # rippledサーバの状態 `rippled`サーバの設定、稼働時間、その他の要素により、サーバがグローバルなXRP Ledgerピアツーピアネットワークに参加する度合いは異なります。これは、[server_infoメソッド][]と[server_stateメソッド][]へのレスポンス内の`server_state`フィールドに示されます。レスポンスは昇順のやり取りに従い、後の値は前の値より優先されます。これらのレスポンスの定義を以下に示します(優先順位の高い順)。 -| `Value` | 説明 | -|:---------------|:------------------------------------------------------------| +| `Value` | 説明 | +| :------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `disconnected` | サーバはXRP Ledgerピアツーピアネットワークにまったく接続されていません。オフラインモードで稼働しているか、何らかの理由でネットワークにアクセスできない可能性があります。 | -| `connected` | サーバはネットワークに接続されていると考えられます。 | -| `syncing` | サーバは現在、レジャーバージョンの状態に追いついていません。(通常、サーバが始動後に最新状態になるまで数分かかります。) | -| `tracking` | サーバはネットワークに接続しています。 | -| `full` | サーバはネットワークに完全に組み込まれ、検証にも参加できますが、参加していません(検証者として設定されていないことが原因と考えられます)。 | -| `validating` | サーバは現在、レジャーの検証に参加しています。 | -| `proposing` | サーバはレジャーの検証に参加しており、現在、自身のバージョンを提案中です。 | +| `connected` | サーバはネットワークに接続されていると考えられます。 | +| `syncing` | サーバは現在、レジャーバージョンの状態に追いついていません。(通常、サーバが始動後に最新状態になるまで数分かかります。) | +| `tracking` | サーバはネットワークに接続しています。 | +| `full` | サーバはネットワークに完全に組み込まれ、検証にも参加できますが、参加していません(検証者として設定されていないことが原因と考えられます)。 | +| `validating` | サーバは現在、レジャーの検証に参加しています。 | +| `proposing` | サーバはレジャーの検証に参加しており、現在、自身のバージョンを提案中です。 | {% admonition type="info" name="注記" %}`full`、`validating`、`proposing`の区別は、グローバルネットワークの他者との同期の状況に基づいていますが、通常サーバの上記の状態は一般的なオペレーションの中で変動します。{% /admonition %} diff --git a/@l10n/ja/docs/references/http-websocket-apis/index.md b/@l10n/ja/docs/references/http-websocket-apis/index.md index 85d33f84b8..2e9bf99b9e 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/index.md +++ b/@l10n/ja/docs/references/http-websocket-apis/index.md @@ -4,27 +4,26 @@ parent: references.html metadata: indexPage: true --- + # HTTP / WebSocket API リファレンス rippledサーバの公開APIを通じて、XRP Ledgerと通信することができます。 - 現在、APIにはバージョン1とバージョン2の2種類があります{% badge href="https://github.com/XRPLF/rippled/releases/tag/2.0.0" %}新規: rippled 2.0.0{% /badge %}。 サーバは、[`version` APIメソッド](public-api-methods/server-info-methods/version.md)を通じてサポートされているAPIバージョンの範囲を通知します。APIリクエストで使用するバージョンを指定できます。 同じ持続的な接続で、異なるAPIリクエストで異なるAPIバージョンを使用できます。例えば、WebSocketを通じて、APIバージョン1と2をサポートするサーバに接続した場合、同じ接続からAPIバージョン2を使用して`account_tx`リクエストを行い、その後、APIバージョン1を使用してもう1つの`account_tx`リクエストを行うことができます。 - ## デフォルトのAPIバージョン 以下の表は、リクエストでAPIバージョンを指定しない場合に使用される`rippled` APIのバージョンを示しています。 -| リクエスト方式 | APIバージョン | 追加の注意事項 | -|----------------|---------------|------------------| -| Websocket | 1 | | -| JSON-RPC | 1 | | -| Commandline | 2 | コマンドラインでは、最新のAPIバージョンのみが使用されます。 | -| [xrpl.js](https://github.com/XRPLF/xrpl.js) | 2 | v4.0.0以降では、[API v2][]がデフォルトで使用されます。 | -| [xrpl-py](https://github.com/XRPLF/xrpl-py) | 2 | v3.0.0以降では、[API v2][]がデフォルトで使用されます。 | +| リクエスト方式 | APIバージョン | 追加の注意事項 | +| ------------------------------------------- | ------------- | ----------------------------------------------------------- | +| Websocket | 1 | | +| JSON-RPC | 1 | | +| Commandline | 2 | コマンドラインでは、最新のAPIバージョンのみが使用されます。 | +| [xrpl.js](https://github.com/XRPLF/xrpl.js) | 2 | v4.0.0以降では、[API v2][]がデフォルトで使用されます。 | +| [xrpl-py](https://github.com/XRPLF/xrpl-py) | 2 | v3.0.0以降では、[API v2][]がデフォルトで使用されます。 | {% admonition type="info" name="注記" %} Clioは、[API v1][]をデフォルトで使用しますが、[API v2][]のリクエストもサポートしています。 @@ -43,13 +42,13 @@ Clioは、[API v1][]をデフォルトで使用しますが、[API v2][]のリ - APIメソッドを削除または変更する。 - 既存のクライアントからアクセス可能なAPI関数の動作を変更する。 - 以下のタイプの破壊的な変更は、gRPC APIにのみ適用されます。 - - `proto`フィールド番号を変更する。 - - 列挙型または列挙型の値を削除または変更する。 - - `oneof`にフィールドを追加または削除する。 - - `oneof`を分割またはマージする。 - - メッセージフィールドが`optional`、`repeated`、または`required`であるかどうかを変更する。 - - リクエストまたはレスポンスのストリーム値を変更する。 - - パッケージまたはサービスを削除または変更する。 + - `proto`フィールド番号を変更する。 + - 列挙型または列挙型の値を削除または変更する。 + - `oneof`にフィールドを追加または削除する。 + - `oneof`を分割またはマージする。 + - メッセージフィールドが`optional`、`repeated`、または`required`であるかどうかを変更する。 + - リクエストまたはレスポンスのストリーム値を変更する。 + - パッケージまたはサービスを削除または変更する。 いずれかのリリースで破壊的な変更が導入されると、新しいAPIバージョン番号が導入されます。プレリリース、ベータ、開発バージョンは、同じAPIバージョン番号に対して破壊的な変更を導入する場合があります。 diff --git a/@l10n/ja/docs/references/http-websocket-apis/peer-port-methods/health-check.md b/@l10n/ja/docs/references/http-websocket-apis/peer-port-methods/health-check.md index 33932ab5e3..aa5703714b 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/peer-port-methods/health-check.md +++ b/@l10n/ja/docs/references/http-websocket-apis/peer-port-methods/health-check.md @@ -2,11 +2,13 @@ html: health-check.html parent: peer-port-methods.html seo: - description: サーバの状態を報告するための特別なAPIメソッドです。 + description: サーバの状態を報告するための特別なAPIメソッドです。 labels: - コアサーバ --- + # ヘルスチェック + [[ソース]](https://github.com/XRPLF/rippled/blob/de0c52738785de8bf837f9124da65c7905e7bb5a/src/ripple/overlay/impl/OverlayImpl.cpp#L1084-L1168 "ソース") ヘルスチェックは、個々の`rippled`サーバの状態を報告するための特別な[peer portメソッド](index.md)です。このメソッドは、自動化された監視において、機能停止を認識し、サーバの再起動のような自動または手動による介入を促すために使用することを意図しています。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.6.0" %}新規: rippled 1.6.0{% /badge %} @@ -17,7 +19,6 @@ labels: {% admonition type="info" name="注記" %}ヘルスチェックは[peer portメソッド](index.md)であるため、[スタンドアロンモード][]でサーバをテストしているときは利用できません。{% /admonition %} - ## リクエストのフォーマット ヘルスチェック情報をリクエストするには、以下のHTTPリクエストを行ってください。 @@ -36,6 +37,7 @@ labels: {% tabs %} {% tab label="Healthy" %} + ```json HTTP/1.1 200 OK Server: rippled-1.6.0-b8 @@ -47,9 +49,11 @@ Transfer-Encoding: chunked "info": {} } ``` + {% /tab %} {% tab label="Warning" %} + ```json HTTP/1.1 503 Service Unavailable Server: rippled-1.6.0 @@ -64,9 +68,11 @@ Transfer-Encoding: chunked } } ``` + {% /tab %} {% tab label="Critical" %} + ```json HTTP/1.1 500 Internal Server Error Server: rippled-1.6.0 @@ -82,6 +88,7 @@ Transfer-Encoding: chunked } } ``` + {% /tab %} {% /tabs %} @@ -90,22 +97,22 @@ Transfer-Encoding: chunked レスポンスのHTTPステータスコードは、サーバの状態を示します。 -| ステータスコード | 現在の状態 | 説明 | -|:------------------------------|:--------------|:-----------------------------| -| **200 OK** | Healthy | すべての指標は許容範囲内です。 | -| **503 Service Unavailable** | Warning | 1つ以上の指標が警告範囲にあります。手動介入が必要な場合と不要な場合があります。 | -| **500 Internal Server Error** | Critical | 1つ以上のメトリクスが深刻な範囲にあります。おそらく手動による修正が必要な深刻な問題があります。 | +| ステータスコード | 現在の状態 | 説明 | +| :---------------------------- | :--------- | :---------------------------------------------------------------------------------------------- | +| **200 OK** | Healthy | すべての指標は許容範囲内です。 | +| **503 Service Unavailable** | Warning | 1つ以上の指標が警告範囲にあります。手動介入が必要な場合と不要な場合があります。 | +| **500 Internal Server Error** | Critical | 1つ以上のメトリクスが深刻な範囲にあります。おそらく手動による修正が必要な深刻な問題があります。 | レスポンスボディは JSON オブジェクトで、トップレベルに `info`オブジェクトが 1 つあります。`info`オブジェクトには、warningまたはcriticalの範囲にある指標ごとの値が含まれます。正常な範囲にある指標は省略されるため、完全に正常なサーバは空のオブジェクトを持ちます。 `info`オブジェクトは以下のフィールドを含むことができます。 -| `Field` | 値 | 説明 | -|:--------------------|:------|:---------------------------------------------| -| `amendment_blocked` | 真偽値 | _(省略される場合があります)_ `true`の場合、サーバは[amendmentブロック](../../../concepts/networks-and-servers/amendments.md#amendment-blocked-servers)状態で、ネットワークとの同期を維持するためにアップグレードする必要があります。この状態は非常に重要です。サーバがAmendmentブロックされていない場合、このフィールドは省略されます。 | -| `load_factor` | 数値 | _(省略される場合があります)_ サーバが受けている全体的な負荷の指標。I/O、CPU、メモリの制限が反映されます。負荷率が100以上の場合はwarning、1000以上の場合はcriticalです。 | -| `peers` | 数値 | _(省略される場合があります)_ このサーバが接続している[ピアサーバ](../../../concepts/networks-and-servers/peer-protocol.md)の数。7つ以下のピアに接続されている場合はwarning、0つのピアに接続されている場合はcriticalです。 | -| `server_state` | 文字列 | _(省略される場合があります)_ 現在の[サーバの状態](../api-conventions/rippled-server-states.md)。サーバの状態が`tracking`、`syncing`、`connected`の場合はwarningです。サーバが`disconnected`状態の場合はcriticalです。 | +| `Field` | 値 | 説明 | +| :------------------ | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `amendment_blocked` | 真偽値 | _(省略される場合があります)_ `true`の場合、サーバは[amendmentブロック](../../../concepts/networks-and-servers/amendments.md#amendment-blocked-servers)状態で、ネットワークとの同期を維持するためにアップグレードする必要があります。この状態は非常に重要です。サーバがAmendmentブロックされていない場合、このフィールドは省略されます。 | +| `load_factor` | 数値 | _(省略される場合があります)_ サーバが受けている全体的な負荷の指標。I/O、CPU、メモリの制限が反映されます。負荷率が100以上の場合はwarning、1000以上の場合はcriticalです。 | +| `peers` | 数値 | _(省略される場合があります)_ このサーバが接続している[ピアサーバ](../../../concepts/networks-and-servers/peer-protocol.md)の数。7つ以下のピアに接続されている場合はwarning、0つのピアに接続されている場合はcriticalです。 | +| `server_state` | 文字列 | _(省略される場合があります)_ 現在の[サーバの状態](../api-conventions/rippled-server-states.md)。サーバの状態が`tracking`、`syncing`、`connected`の場合はwarningです。サーバが`disconnected`状態の場合はcriticalです。 | | `validated_ledger` | 数値 | _(省略される場合があります)_ レジャーが最後に[コンセンサス](../../../concepts/consensus-protocol/index.md)によって検証されてから何秒経ったかを表します。検証されたレジャーがない場合([サーバ起動時の初期同期期間](../../../infrastructure/troubleshooting/server-doesnt-sync.md#normal-syncing-behavior))、この値は`-1`となり、warningとみなされます。また、最後に検証されたレジャーが少なくとも7秒前であればwarningとなり、最後に検証されたレジャーが少なくとも20秒前であればcriticalとなります。 | ## 関連項目 diff --git a/@l10n/ja/docs/references/http-websocket-apis/peer-port-methods/index.md b/@l10n/ja/docs/references/http-websocket-apis/peer-port-methods/index.md index be5f40933b..0e441fcfab 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/peer-port-methods/index.md +++ b/@l10n/ja/docs/references/http-websocket-apis/peer-port-methods/index.md @@ -4,9 +4,9 @@ parent: http-websocket-apis.html metadata: indexPage: true --- + # ピアポートメソッド ネットワークトポロジーやステータスメトリクスを共有するための特別なAPIメソッドです。 - {% child-pages /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/peer-port-methods/peer-crawler.md b/@l10n/ja/docs/references/http-websocket-apis/peer-port-methods/peer-crawler.md index a267020247..dc80de799b 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/peer-port-methods/peer-crawler.md +++ b/@l10n/ja/docs/references/http-websocket-apis/peer-port-methods/peer-crawler.md @@ -2,11 +2,12 @@ html: peer-crawler.html parent: peer-port-methods.html seo: - description: ネットワークの情報とステータスの統計を共有するための特別なAPIメソッドです。 + description: ネットワークの情報とステータスの統計を共有するための特別なAPIメソッドです。 labels: - コアサーバ - ブロックチェーン --- + # ピアクローラ ピアクローラは、ピアツーピアネットワークの健全性と統計情報を報告するための特別な[peer portメソッド](index.md)です。このAPIメソッドは、デフォルトでは[ピアプロトコル](../../../concepts/networks-and-servers/peer-protocol.md)のポートを通して非rootベースで利用可能で、コンセンサスやレジャーの履歴、その他の必要な情報についての`rippled`サーバのピアツーピア通信にも使用されます。 @@ -24,32 +25,31 @@ labels: - **パス:** `/crawl` - **セキュリティ:** ほとんどの`rippled`サーバはリクエストにレスポンスするために自己署名証明書を使います。デフォルトでは、(ウェブブラウザを含む)ほとんどのツールは、そのようなレスポンスは信頼できないとしてフラグを立てたりブロックしたりします。これらのサーバからのレスポンスを表示するには、証明書のチェックを無視しなければなりません(たとえば、cURLを使用している場合は`--insecure`フラグを追加します)。 - ## レスポンスのフォーマット レスポンスにはステータスコード**200 OK**とメッセージ本文にJSONオブジェクトがあります。 JSONオブジェクトは次のフィールドを含んでいます。 -| `フィールド` | 値 | 説明 | -|:-----------------|:-----------|:-------------------------------------------------| -| `counts` | オブジェクト | _(省略可)_ [get_countsメソッド][]のレスポンスと同じように、このサーバの状態に関する統計情報を返します。デフォルトの設定では、このフィールドは報告されません。報告される情報には、レジャーデータベースとトランザクションデータベースのサイズ、アプリケーション内キャッシュのキャッシュヒット率、さまざまな種類のオブジェクトがメモリにキャッシュされている数などがあります。メモリに保存されるオブジェクトの種類には、レジャー(`Ledger`)、トランザクション(`STTx`)、検証メッセージ (`STValidation`)などがあります。 | -| `overlay` | オブジェクト | _(省略可)_ [peersメソッド][]のレスポンスに似ています。`active`というフィールドがあり、これはオブジェクトの配列です(下記参照)。 | -| `server` | オブジェクト | _(省略可)_ このサーバに関する情報。[server_stateメソッド][]の公開フィールドを含みます。どの`rippled`バージョン(`build_version`)か、どの[レジャーバージョン](../../../concepts/networks-and-servers/ledger-history.md)が利用可能か(`complete_ledgers`)、サーバの負荷量などです。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.1" %}更新: rippled 1.2.1{% /badge %}. | -| `unl` | オブジェクト | _(省略可)_ [validatorsメソッド][]や[validator_list_sitesメソッド][]のレスポンスと同様です。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.1" %}更新: rippled 1.2.1{% /badge %}. | -| `version` | 数値 | このピアクローラのレスポンスのフォーマットのバージョンを示します。現在のピアクローラのバージョン番号は`2`です。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.1" %}更新: rippled 1.2.1{% /badge %}. | +| `フィールド` | 値 | 説明 | +| :----------- | :----------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `counts` | オブジェクト | _(省略可)_ [get_countsメソッド][]のレスポンスと同じように、このサーバの状態に関する統計情報を返します。デフォルトの設定では、このフィールドは報告されません。報告される情報には、レジャーデータベースとトランザクションデータベースのサイズ、アプリケーション内キャッシュのキャッシュヒット率、さまざまな種類のオブジェクトがメモリにキャッシュされている数などがあります。メモリに保存されるオブジェクトの種類には、レジャー(`Ledger`)、トランザクション(`STTx`)、検証メッセージ (`STValidation`)などがあります。 | +| `overlay` | オブジェクト | _(省略可)_ [peersメソッド][]のレスポンスに似ています。`active`というフィールドがあり、これはオブジェクトの配列です(下記参照)。 | +| `server` | オブジェクト | _(省略可)_ このサーバに関する情報。[server_stateメソッド][]の公開フィールドを含みます。どの`rippled`バージョン(`build_version`)か、どの[レジャーバージョン](../../../concepts/networks-and-servers/ledger-history.md)が利用可能か(`complete_ledgers`)、サーバの負荷量などです。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.1" %}更新: rippled 1.2.1{% /badge %}. | +| `unl` | オブジェクト | _(省略可)_ [validatorsメソッド][]や[validator_list_sitesメソッド][]のレスポンスと同様です。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.1" %}更新: rippled 1.2.1{% /badge %}. | +| `version` | 数値 | このピアクローラのレスポンスのフォーマットのバージョンを示します。現在のピアクローラのバージョン番号は`2`です。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.1" %}更新: rippled 1.2.1{% /badge %}. | `overlay.active`配列の各メンバーは、次のフィールドを持つオブジェクトです。 -| `Field` | 値 | 説明 | -|:-------------------|:-----------------------|:-----------------------------------| -| `complete_ledgers` | 文字列 | このピアで利用可能な[レジャーバージョン](../../../concepts/networks-and-servers/ledger-history.md)の範囲。 | -| `ip` | 文字列 (IPv4アドレス) | _(省略可)_この接続ピアの IPアドレス。ピアがバリデータまたは[プライベートピア](../../../concepts/networks-and-servers/peer-protocol.md#プライベートピア)として設定されている場合は省略されます。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.1" %}更新: rippled 1.2.1{% /badge %}. | -| `port` | 文字列 (数値) | _(省略可)_ RTXPを提供するピアサーバのポート番号。通常は`51235`。ピアがバリデータまたは[プライベートピア](../../../concepts/networks-and-servers/peer-protocol.md#プライベートピア)として設定されている場合は省略されます。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.1" %}更新: rippled 1.2.1{% /badge %}. | -| `public_key` | 文字列 (Base64エンコード) | このピアがRTXPメッセージに署名するために使用するECDSA鍵ペアの公開鍵。(これはピアサーバの[server_infoメソッド][]で報告される`pubkey_node`と同じデータです)。 | -| `type` | 文字列 | `in`または`out`の値で、ピアへのTCP接続が着信か発信かを示します。 | -| `uptime` | 数値 | サーバがこのピアに接続している秒数。 | -| `version` | 文字列 | 相手が使用していると報告した`rippled`バージョン番号。 | +| `Field` | 値 | 説明 | +| :----------------- | :------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `complete_ledgers` | 文字列 | このピアで利用可能な[レジャーバージョン](../../../concepts/networks-and-servers/ledger-history.md)の範囲。 | +| `ip` | 文字列 (IPv4アドレス) | *(省略可)*この接続ピアの IPアドレス。ピアがバリデータまたは[プライベートピア](../../../concepts/networks-and-servers/peer-protocol.md#プライベートピア)として設定されている場合は省略されます。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.1" %}更新: rippled 1.2.1{% /badge %}. | +| `port` | 文字列 (数値) | _(省略可)_ RTXPを提供するピアサーバのポート番号。通常は`51235`。ピアがバリデータまたは[プライベートピア](../../../concepts/networks-and-servers/peer-protocol.md#プライベートピア)として設定されている場合は省略されます。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.1" %}更新: rippled 1.2.1{% /badge %}. | +| `public_key` | 文字列 (Base64エンコード) | このピアがRTXPメッセージに署名するために使用するECDSA鍵ペアの公開鍵。(これはピアサーバの[server_infoメソッド][]で報告される`pubkey_node`と同じデータです)。 | +| `type` | 文字列 | `in`または`out`の値で、ピアへのTCP接続が着信か発信かを示します。 | +| `uptime` | 数値 | サーバがこのピアに接続している秒数。 | +| `version` | 文字列 | 相手が使用していると報告した`rippled`バージョン番号。 | #### 例 @@ -58,15 +58,19 @@ JSONオブジェクトは次のフィールドを含んでいます。 {% tabs %} {% tab label="HTTP" %} + ``` GET https://localhost:51235/crawl ``` + {% /tab %} {% tab label="cURL" %} + ``` curl --insecure https://localhost:51235/crawl ``` + {% /tab %} {% /tabs %} @@ -75,7 +79,6 @@ curl --insecure https://localhost:51235/crawl {% code-snippet file="/_api-examples/peer-crawler/crawl.json" language="json" prefix="200 OK\n\n" /%} - ## 関連項目 - [ピアプロトコル](../../../concepts/networks-and-servers/peer-protocol.md) diff --git a/@l10n/ja/docs/references/http-websocket-apis/peer-port-methods/validator-list.md b/@l10n/ja/docs/references/http-websocket-apis/peer-port-methods/validator-list.md index 4db26091fa..f7eac8f1f7 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/peer-port-methods/validator-list.md +++ b/@l10n/ja/docs/references/http-websocket-apis/peer-port-methods/validator-list.md @@ -2,11 +2,12 @@ html: validator-list.html parent: peer-port-methods.html seo: - description: 推奨バリデータリストを共有するための特別なAPIメソッド。 + description: 推奨バリデータリストを共有するための特別なAPIメソッド。 labels: - コアサーバ - ブロックチェーン --- + # バリデータリストメソッド バリデータリストメソッドは特別なAPIエンドポイントで、`rippled`サーバが現在使用している信頼できるバリデータリストを取得します。これは多くの場合、サーバが信頼するバリデータの正確なリストを表します。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.5.0" %}新規: rippled 1.5.0{% /badge %}. @@ -23,12 +24,11 @@ labels: - **ポート:** (`rippled`サーバがピアプロトコルを使用するポート番号) - **パス:** `/vl/{public_key}` - `{public_key}`はリスト発行者の公開鍵で、16進数です。この鍵は発行者を識別し、リストの内容が真正で完全であることを確認するためにも使われます。 + `{public_key}`はリスト発行者の公開鍵で、16進数です。この鍵は発行者を識別し、リストの内容が真正で完全であることを確認するためにも使われます。 - **セキュリティ:** ほとんどの`rippled`サーバはリクエストにレスポンスするために自己署名したTLS証明書を使います。デフォルトでは、(Webブラウザを含む)ほとんどのツールはそのようなレスポンスが信頼できないものであるとしてフラグを立てたりブロックしたりします。これらのサーバからのレスポンスを表示するには、証明書のチェックを無視しなければなりません(たとえばcURLを使う場合は`--insecure`フラグを追加します)。 - バリデータリストの内容は別の暗号鍵で署名されているので、使用するTLS証明書にかかわらずその完全性を検証できます。 - + バリデータリストの内容は別の暗号鍵で署名されているので、使用するTLS証明書にかかわらずその完全性を検証できます。 ## レスポンスのフォーマット @@ -36,54 +36,53 @@ labels: JSONオブジェクトには以下のフィールドがあります。 -| `Field` | 値 | 説明 | -|:-----------------|:------|:-------------------------------------------------| -| `manifest` | 文字列 | リスト発行者の[マニフェストデータ](#マニフェストデータ)をbase64または16進数で表します。 | -| `blob` | 文字列 | バリデータリストを表すBase64エンコードされたJSONデータ。 | -| `signature` | 文字列 | 16進数で表した`blob`データの署名。 | -| `version` | 数値 | このオブジェクトが使用するバリデータリストプロトコルのバージョン。現在のバージョンは **1** です。それ以上のバージョン番号は、バリデータリストプロトコルの以前のバージョンとの下位互換性を表します。 | -| `public_key` | 文字列 | このバリデータリストのデータを検証するために使用する公開鍵。これは32バイトのEd25519公開鍵で、先頭に`0xED`というバイトが付きます。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.7.0" %}新規: rippled 1.7.0{% /badge %}. | +| `Field` | 値 | 説明 | +| :----------- | :----- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `manifest` | 文字列 | リスト発行者の[マニフェストデータ](#マニフェストデータ)をbase64または16進数で表します。 | +| `blob` | 文字列 | バリデータリストを表すBase64エンコードされたJSONデータ。 | +| `signature` | 文字列 | 16進数で表した`blob`データの署名。 | +| `version` | 数値 | このオブジェクトが使用するバリデータリストプロトコルのバージョン。現在のバージョンは **1** です。それ以上のバージョン番号は、バリデータリストプロトコルの以前のバージョンとの下位互換性を表します。 | +| `public_key` | 文字列 | このバリデータリストのデータを検証するために使用する公開鍵。これは32バイトのEd25519公開鍵で、先頭に`0xED`というバイトが付きます。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.7.0" %}新規: rippled 1.7.0{% /badge %}. | ### マニフェストデータ + [[ソース]](https://github.com/XRPLF/rippled/blob/97712107b71a8e2089d2e3fcef9ebf5362951110/src/ripple/app/misc/impl/Manifest.cpp#L43-L66 "ソース") -"マニフェスト"には、コンセンサスプロセスに関与する個人または組織(***バリデータ**または**リスト発行者**)を一意に識別する情報が含まれます。バリデータのマニフェストには、その[バリデータのトークン](../../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md#3-enable-validation-on-your-rippled-server)の _公開_ 情報が含まれます。リスト発行者のマニフェストはリスト発行者に関する情報を提供します。どちらも通常、XRP Ledgerの標準的な[バイナリフォーマット](../../protocol/binary-format.md)でバイナリにエンコードされます。(マニフェストの標準的なJSON形式はありません)。 +"マニフェスト"には、コンセンサスプロセスに関与する個人または組織(**\*バリデータ**または**リスト発行者**)を一意に識別する情報が含まれます。バリデータのマニフェストには、その[バリデータのトークン](../../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md#3-enable-validation-on-your-rippled-server)の _公開_ 情報が含まれます。リスト発行者のマニフェストはリスト発行者に関する情報を提供します。どちらも通常、XRP Ledgerの標準的な[バイナリフォーマット](../../protocol/binary-format.md)でバイナリにエンコードされます。(マニフェストの標準的なJSON形式はありません)。 マニフェストの主な目的の1つは、バリデータ鍵のローテーションです。バリデータはそのエフェメラル鍵ペアを変更すると、新しいエフェメラル公開鍵を共有するために新しいマニフェストを発行します。バリデータは[コンセンサスプロセス](../../../concepts/consensus-protocol/index.md)の一部としてバリデーションに署名するためにエフェメラル鍵ペアを使用し、新しいマニフェストに署名するためにのみマスター鍵ペアを使用します。(マニフェストは、[バリデータ管理者が`rippled.cfg`設定ファイルに追加する](../../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md#3-enable-validation-on-your-rippled-server)プライベートデータと一緒にバリデータトークンに組み込まれます)。 マニフェストでエンコードされるデータは次のとおりです。 -| `Field` | 内部の型 | 説明 | -|:--------------------|:--------------|:-----------------------------------------| -| `sfPublicKey` | Blob | この個人または組織を一意に識別するマスター公開鍵。これは33バイトのsecp256k1公開鍵か、32バイトのEd25519公開鍵の前に`0xED`というバイトを付加したものになります。 | -| `sfMasterSignature` | Blob | マスターキーペアからの、このマニフェストデータの署名。これにより、マニフェストの信頼性が証明されます。 | -| `sfSequence` | UInt32 | このマニフェストのシーケンス番号。番号が大きいほど新しいマニフェストであり、同じマスター公開鍵からの古いマニフェストはすべて無効になります。 | -| `sfVersion` | UInt16 | 使用されているマニフェスト形式を示すバージョン番号。数値が高いほど、以前のマニフェスト形式と比較して、変更点を含む新しいマニフェスト形式であることを示します。 | -| `sfDomain` | Blob | _(省略可)_ ASCIIエンコードされた、この個人または組織が所有するドメイン名。 | -| `sfSigningPubKey` | Blob | _(省略可)_ この個人または組織が現在使用している鍵ペアのエフェメラル公開鍵。これは33バイトのsecp256k1公開鍵でなければなりません。 | -| `sfSignature` | Blob | _(省略可)_ エフェメラルキーペアからのこのマニフェストデータの署名。 | +| `Field` | 内部の型 | 説明 | +| :------------------ | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `sfPublicKey` | Blob | この個人または組織を一意に識別するマスター公開鍵。これは33バイトのsecp256k1公開鍵か、32バイトのEd25519公開鍵の前に`0xED`というバイトを付加したものになります。 | +| `sfMasterSignature` | Blob | マスターキーペアからの、このマニフェストデータの署名。これにより、マニフェストの信頼性が証明されます。 | +| `sfSequence` | UInt32 | このマニフェストのシーケンス番号。番号が大きいほど新しいマニフェストであり、同じマスター公開鍵からの古いマニフェストはすべて無効になります。 | +| `sfVersion` | UInt16 | 使用されているマニフェスト形式を示すバージョン番号。数値が高いほど、以前のマニフェスト形式と比較して、変更点を含む新しいマニフェスト形式であることを示します。 | +| `sfDomain` | Blob | _(省略可)_ ASCIIエンコードされた、この個人または組織が所有するドメイン名。 | +| `sfSigningPubKey` | Blob | _(省略可)_ この個人または組織が現在使用している鍵ペアのエフェメラル公開鍵。これは33バイトのsecp256k1公開鍵でなければなりません。 | +| `sfSignature` | Blob | _(省略可)_ エフェメラルキーペアからのこのマニフェストデータの署名。 | `sfMasterSignature`と`sfSignature`の署名は、署名フィールド(`sfMasterSignature`と`sfSignature`)自体を除いて、マニフェストの[シリアライズされた](../../protocol/binary-format.md)バイナリデータに署名することで作成されます。 - ### Blobデータ base64から`blob`をデコードすると、以下のフィールドを持つJSONオブジェクトになります。 -| `Field` | 値 | 解説 | -|:-------------|:-----|:-------------------------------------------------------| +| `Field` | 値 | 解説 | +| :----------- | :--- | :----------------------------------------------------------------- | | `sequence` | 数値 | このリスト固有のシーケンス番号。一度に最新のリストのみが有効です。 | -| `expiration` | 数値 | このリストが期限切れになる時間([Rippleエポック以降の経過秒数][])。 | -| `validators` | 配列 | 推奨されるバリデータのリスト。 | +| `expiration` | 数値 | このリストが期限切れになる時間([Rippleエポック以降の経過秒数][])。 | +| `validators` | 配列 | 推奨されるバリデータのリスト。 | `validators`配列の各メンバーは以下のフィールドを持っています。 -| `Field` | 値 | 説明 | -|:------------------------|:------|:------------------------------------------| -| `validation_public_key` | 文字列 | このバリデータを一意に識別するマスター公開鍵。 | +| `Field` | 値 | 説明 | +| :---------------------- | :----- | :---------------------------------------------------------------------------------------- | +| `validation_public_key` | 文字列 | このバリデータを一意に識別するマスター公開鍵。 | | `manifest` | 文字列 | このバリデータの[マニフェストデータ](#マニフェストデータ)をbase64または16進数で表します。 | - #### デコードされたBlobの例 {% code-snippet file="/_api-examples/vl/vl-blob.json" language="json" /%} @@ -95,15 +94,19 @@ base64から`blob`をデコードすると、以下のフィールドを持つJS {% tabs %} {% tab label="HTTP" %} + ``` GET https://localhost:51235/vl/ED2677ABFFD1B33AC6FBC3062B71F1E8397C1505E1C42C64D11AD1B28FF73F4734 ``` + {% /tab %} {% tab label="cURL" %} + ``` curl --insecure https://localhost:51235/vl/ED2677ABFFD1B33AC6FBC3062B71F1E8397C1505E1C42C64D11AD1B28FF73F4734 ``` + {% /tab %} {% /tabs %} @@ -112,7 +115,6 @@ curl --insecure https://localhost:51235/vl/ED2677ABFFD1B33AC6FBC3062B71F1E8397C1 {% code-snippet file="/_api-examples/vl/vl.json" language="json" prefix="200 OK\n\n" /%} - ## 関連項目 - [ピアプロトコル](../../../concepts/networks-and-servers/peer-protocol.md) diff --git a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_channels.md b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_channels.md index ccda0971e7..0d22e62258 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_channels.md +++ b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_channels.md @@ -2,11 +2,13 @@ html: account_channels.html parent: account-methods.html seo: - description: アカウントのPayment Channelに関する情報を返します。 + description: アカウントのPayment Channelに関する情報を返します。 labels: - Payment Channel --- + # account_channels + [[ソース]](https://github.com/XRPLF/rippled/blob/release/src/ripple/rpc/handlers/AccountChannels.cpp "Source") _([PayChan Amendment][]が有効になっている必要があります。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.33.0" %}新規: rippled 0.33.0{% /badge %})_ @@ -14,11 +16,13 @@ _([PayChan Amendment][]が有効になっている必要があります。{% b `account_channels`メソッドは、アカウントのPayment Channelに関する情報を返します。指定されたアカウントがChannelの送金元であり、送金先ではないChannelのみが含まれます。(Channelの「送金元」と「所有者」は同一です。)取得された情報はすべて、特定バージョンのレジャーに関連付けられています。 ## リクエストのフォーマット + リクエストのフォーマットの例: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 1, @@ -28,43 +32,49 @@ _([PayChan Amendment][]が有効になっている必要があります。{% b "ledger_index": "validated" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "account_channels", - "params": [{ - "account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "destination_account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "ledger_index": "validated" - }] + "method": "account_channels", + "params": [ + { + "account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "destination_account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "ledger_index": "validated" + } + ] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```bash #Syntax: account_channels [] [] rippled account_channels rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn ra5nK24KXen9AHvsdFTKHSANinZseWnPcX validated ``` + {% /tab %} {% /tabs %} {% try-it method="account_channels" /%} - リクエストには以下のパラメーターが含まれます。 -| フィールド | 型 | 説明 | -|:----------------------|:-------------------------------------------|:--------| -| `account` | 文字列 | アカウントの一意のID。通常はアカウントの[アドレス][]です。リクエストは、このアカウントがChannelの所有者/送金元であるChannelを返します。 | -| `destination_account` | 文字列 | _(省略可)_ アカウントの一意のID。通常はアカウントの[アドレス][]です。指定されている場合、フィルタリングによりこのアカウントを送金先とするPayment Channelに絞り込まれます。 | -| `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーバージョンの20バイトの16進文字列。([レジャーの指定][]をご覧ください) | -| `ledger_index` | 文字列または符号なし整数 | _(省略可)_ 使用する[レジャーインデックス][]、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]をご覧ください) | -| `limit` | 整数 | _(省略可)_ 取得するトランザクション数を制限します。サーバはこの値に従う必要はありません。10以上400以下の範囲で値を指定する必要があります。デフォルトでは200です。 | -| `marker` | [マーカー][] | _(省略可)_ 以前にページネーションされたレスポンスの値。そのレスポンスを停止した箇所からデータの取得を再開します。 | +| フィールド | 型 | 説明 | +| :-------------------- | :----------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `account` | 文字列 | アカウントの一意のID。通常はアカウントの[アドレス][]です。リクエストは、このアカウントがChannelの所有者/送金元であるChannelを返します。 | +| `destination_account` | 文字列 | _(省略可)_ アカウントの一意のID。通常はアカウントの[アドレス][]です。指定されている場合、フィルタリングによりこのアカウントを送金先とするPayment Channelに絞り込まれます。 | +| `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーバージョンの20バイトの16進文字列。([レジャーの指定][]をご覧ください) | +| `ledger_index` | 文字列または符号なし整数 | _(省略可)_ 使用する[レジャーインデックス][]、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]をご覧ください) | +| `limit` | 整数 | _(省略可)_ 取得するトランザクション数を制限します。サーバはこの値に従う必要はありません。10以上400以下の範囲で値を指定する必要があります。デフォルトでは200です。 | +| `marker` | [マーカー][] | _(省略可)_ 以前にページネーションされたレスポンスの値。そのレスポンスを停止した箇所からデータの取得を再開します。 | ## レスポンスのフォーマット @@ -73,6 +83,7 @@ rippled account_channels rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn ra5nK24KXen9AHvsdFTK {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 1, @@ -98,9 +109,11 @@ rippled account_channels rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn ra5nK24KXen9AHvsdFTK "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -126,9 +139,11 @@ rippled account_channels rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn ra5nK24KXen9AHvsdFTK } } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```json 200 OK @@ -154,44 +169,45 @@ rippled account_channels rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn ra5nK24KXen9AHvsdFTK } } ``` + {% /tab %} {% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 -| フィールド | 型 | 説明 | -|:-----------|:-------------------------------------------|:-------------------| -| `account` | 文字列 | Payment Channelの送金元/所有者のアドレス。これはリクエストの`account`フィールドに対応しています。 | -| `channels` | channelオブジェクトの配列 | この`account`が所有するPayment Channel。 | -| `ledger_hash` | 文字列 | このレスポンスの生成に使用されたレジャーバージョンの識別用[ハッシュ][]。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.90.0" %}新規: rippled 0.90.0{% /badge %} | -| `ledger_index` | 数値 | このレスポンスの生成に使用されたレジャーバージョンの[レジャーインデックス][]。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.90.0" %}新規: rippled 0.90.0{% /badge %} | -| `validated` | ブール値 | _(省略される場合があります)_`true`の場合、このレスポンスの情報は検証済みレジャーバージョンから取り込まれます。trueでない場合、情報は変更されることがあります。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.90.0" %}新規: rippled 0.90.0{% /badge %} | -| `limit` | 数値 | _(省略される場合があります)_ このリクエストから実際に返されるchannelオブジェクトの数の制限。 | -| `marker` | [マーカー][] | _(省略される場合があります)_ ページネーションのサーバ定義の値。この値を次のコールに渡して、このコールで終わった箇所から結果の取得を再開します。この後に追加のページがない場合は省略されます。 | +| フィールド | 型 | 説明 | +| :------------- | :------------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `account` | 文字列 | Payment Channelの送金元/所有者のアドレス。これはリクエストの`account`フィールドに対応しています。 | +| `channels` | channelオブジェクトの配列 | この`account`が所有するPayment Channel。 | +| `ledger_hash` | 文字列 | このレスポンスの生成に使用されたレジャーバージョンの識別用[ハッシュ][]。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.90.0" %}新規: rippled 0.90.0{% /badge %} | +| `ledger_index` | 数値 | このレスポンスの生成に使用されたレジャーバージョンの[レジャーインデックス][]。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.90.0" %}新規: rippled 0.90.0{% /badge %} | +| `validated` | ブール値 | _(省略される場合があります)_`true`の場合、このレスポンスの情報は検証済みレジャーバージョンから取り込まれます。trueでない場合、情報は変更されることがあります。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.90.0" %}新規: rippled 0.90.0{% /badge %} | +| `limit` | 数値 | _(省略される場合があります)_ このリクエストから実際に返されるchannelオブジェクトの数の制限。 | +| `marker` | [マーカー][] | _(省略される場合があります)_ ページネーションのサーバ定義の値。この値を次のコールに渡して、このコールで終わった箇所から結果の取得を再開します。この後に追加のページがない場合は省略されます。 | 各Channelオブジェクトのフィールドは次のとおりです。 -| フィールド | 型 | 説明 | -|-------|------|-------------| -| `account` | 文字列 | Channelの所有者([アドレス][]として)。 | -| `amount` | 文字列 | このChannelに割り当てられる[XRPのdrop数][]の合計額。 | -| `balance` | 文字列 | 使用されているレジャーバージョンにおいて、このChannelから支払われた[XRPのdrop数][]の合計額。(Channelに残っているXRPの額を計算するには、`balance`を`amount`から差し引きます。) | -| `channel_id` | 文字列 | このChannelの一意のID(64文字の16進数文字列)。レジャーの状態データの[channelオブジェクトのID](../../../protocol/ledger-data/ledger-entry-types/paychannel.md#paychannel-idのフォーマット)でもあります。 | -| `destination_account` | 文字列 | Channelの送金先アカウント([アドレス][]として)。このアカウントだけが、Channelがオープンしている間にXRPを受領できます。 | -| `public_key` | 文字列 | _(省略される場合があります)_ XRP Ledgerの[base58][]フォーマットのPayment Channelの公開鍵。このChannelに対する署名付きクレームは、一致するキーペアを使用して清算する必要があります。 | -| `public_key_hex` | 文字列 | _(省略される場合があります)_ Payment Channel作成時にChannelの公開鍵を指定している場合はその公開鍵(16進数フォーマット)。このChannelに対する署名付きクレームは、一致するキーペアを使用して清算する必要があります。 | -| `settle_delay` | 符号なし整数 | Payment Channelの所有者がChannel閉鎖を依頼した後に、そのChannelが開いている必要がある秒数。 | -| `expiration` | 符号なし整数 | _(省略される場合があります)_ このChannelに設定された有効期限([Rippleエポック以降の経過秒数][])。この有効期限の日付は変更可能です。これが最新の検証済みレジャーの閉鎖時刻よりも前の場合、Channelは有効期限切れです。 | -| `cancel_after` | 符号なし整数 | _(省略される場合があります)_ このChannelの変更不可能な有効期限がChannel作成時に指定されている場合はその有効期限([Rippleエポック以降の経過秒数][])。これが最新の検証済みレジャーの閉鎖時刻よりも前の場合、Channelは有効期限切れです。 | -| `source_tag` | 符号なし整数 | _(省略される場合があります)_ このPayment Channelを通じた支払いの[送金元タグ](../../../../concepts/transactions/source-and-destination-tags.md)として使用される32ビット符号なし整数(Channel作成時に指定されている場合)。送金元アカウントでのPayment Channelの送金人またはその他の目的を示します。通常、このChannelからの支払いを差し戻す場合、返金の`DestinationTag`にこの値を指定する必要があります。 | -| `destination_tag` | 符号なし整数 | _(省略される場合があります)_ このChannelを通じた支払いの[送金先タグ](../../../../concepts/transactions/source-and-destination-tags.md)として使用される32ビット符号なし整数(Channel作成時に指定されている場合)。送金先アカウントでのPayment Channelの受取人またはその他の目的を示します。 | +| フィールド | 型 | 説明 | +| --------------------- | ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `account` | 文字列 | Channelの所有者([アドレス][]として)。 | +| `amount` | 文字列 | このChannelに割り当てられる[XRPのdrop数][]の合計額。 | +| `balance` | 文字列 | 使用されているレジャーバージョンにおいて、このChannelから支払われた[XRPのdrop数][]の合計額。(Channelに残っているXRPの額を計算するには、`balance`を`amount`から差し引きます。) | +| `channel_id` | 文字列 | このChannelの一意のID(64文字の16進数文字列)。レジャーの状態データの[channelオブジェクトのID](../../../protocol/ledger-data/ledger-entry-types/paychannel.md#paychannel-idのフォーマット)でもあります。 | +| `destination_account` | 文字列 | Channelの送金先アカウント([アドレス][]として)。このアカウントだけが、Channelがオープンしている間にXRPを受領できます。 | +| `public_key` | 文字列 | _(省略される場合があります)_ XRP Ledgerの[base58][]フォーマットのPayment Channelの公開鍵。このChannelに対する署名付きクレームは、一致するキーペアを使用して清算する必要があります。 | +| `public_key_hex` | 文字列 | _(省略される場合があります)_ Payment Channel作成時にChannelの公開鍵を指定している場合はその公開鍵(16進数フォーマット)。このChannelに対する署名付きクレームは、一致するキーペアを使用して清算する必要があります。 | +| `settle_delay` | 符号なし整数 | Payment Channelの所有者がChannel閉鎖を依頼した後に、そのChannelが開いている必要がある秒数。 | +| `expiration` | 符号なし整数 | _(省略される場合があります)_ このChannelに設定された有効期限([Rippleエポック以降の経過秒数][])。この有効期限の日付は変更可能です。これが最新の検証済みレジャーの閉鎖時刻よりも前の場合、Channelは有効期限切れです。 | +| `cancel_after` | 符号なし整数 | _(省略される場合があります)_ このChannelの変更不可能な有効期限がChannel作成時に指定されている場合はその有効期限([Rippleエポック以降の経過秒数][])。これが最新の検証済みレジャーの閉鎖時刻よりも前の場合、Channelは有効期限切れです。 | +| `source_tag` | 符号なし整数 | _(省略される場合があります)_ このPayment Channelを通じた支払いの[送金元タグ](../../../../concepts/transactions/source-and-destination-tags.md)として使用される32ビット符号なし整数(Channel作成時に指定されている場合)。送金元アカウントでのPayment Channelの送金人またはその他の目的を示します。通常、このChannelからの支払いを差し戻す場合、返金の`DestinationTag`にこの値を指定する必要があります。 | +| `destination_tag` | 符号なし整数 | _(省略される場合があります)_ このChannelを通じた支払いの[送金先タグ](../../../../concepts/transactions/source-and-destination-tags.md)として使用される32ビット符号なし整数(Channel作成時に指定されている場合)。送金先アカウントでのPayment Channelの受取人またはその他の目的を示します。 | ## 考えられるエラー -* [汎用エラータイプ][]のすべて。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* `actNotFound` - リクエストの`account`フィールドに指定されているアドレスが、レジャーのアカウントに対応していません。 -* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバが保有していません。 +- [汎用エラータイプ][]のすべて。 +- `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 +- `actNotFound` - リクエストの`account`フィールドに指定されているアドレスが、レジャーのアカウントに対応していません。 +- `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバが保有していません。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_currencies.md b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_currencies.md index 37a58bb229..0f667dfcb3 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_currencies.md +++ b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_currencies.md @@ -2,45 +2,52 @@ html: account_currencies.html parent: account-methods.html seo: - description: アカウントが送金または受領できる通貨のリストを返します。 + description: アカウントが送金または受領できる通貨のリストを返します。 labels: - トークン --- + # account_currencies + [[ソース]](https://github.com/XRPLF/rippled/blob/df966a9ac6dd986585ecccb206aff24452e41a30/src/ripple/rpc/handlers/AccountCurrencies.cpp "Source") `account_currencies`コマンドは、アカウントのトラストラインに基づいてそのアカウントが送金または受領できる通貨のリストを返します。(このリストは完全に確認されたリストではありませんが、ユーザインターフェイスへの入力に使用できます。) ## リクエストのフォーマット + リクエストのフォーマットの例: {% tabs %} {% tab label="WebSocket" %} + ```json { - "command": "account_currencies", - "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "strict": true, - "ledger_index": "validated" + "command": "account_currencies", + "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "strict": true, + "ledger_index": "validated" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "account_currencies", - "params": [ - { - "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "account_index": 0, - "ledger_index": "validated", - "strict": true - } - ] + "method": "account_currencies", + "params": [ + { + "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "account_index": 0, + "ledger_index": "validated", + "strict": true + } + ] } ``` + {% /tab %} {% /tabs %} @@ -49,12 +56,12 @@ labels: リクエストには以下のパラメーターが含まれます。 -| `Field` | 型 | 説明 | -|:---------------|:---------------------------|:-------------------------------| -| `account` | 文字列 | このアカウントが送受信できる通貨を検索します。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.11.0" %}更新: rippled 1.11.0{% /badge %} | -| `strict` | ブール値 | _(省略可)_ trueの場合は、アカウントパラメーターにアドレスまたは公開鍵だけを受け入れます。デフォルトではfalseです。 | -| `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーバージョンの20バイトの16進文字列。([レジャーの指定][]をご覧ください) | -| `ledger_index` | 文字列または符号なし整数 | _(省略可)_ 使用する[レジャーインデックス][]、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]をご覧ください) | +| `Field` | 型 | 説明 | +| :------------- | :----------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------- | +| `account` | 文字列 | このアカウントが送受信できる通貨を検索します。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.11.0" %}更新: rippled 1.11.0{% /badge %} | +| `strict` | ブール値 | _(省略可)_ trueの場合は、アカウントパラメーターにアドレスまたは公開鍵だけを受け入れます。デフォルトではfalseです。 | +| `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーバージョンの20バイトの16進文字列。([レジャーの指定][]をご覧ください) | +| `ledger_index` | 文字列または符号なし整数 | _(省略可)_ 使用する[レジャーインデックス][]、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]をご覧ください) | 次のフィールドは廃止予定であるため、指定しないでください。`account_index`. @@ -65,6 +72,7 @@ labels: {% tabs %} {% tab label="WebSocket" %} + ``` { "result": { @@ -97,9 +105,11 @@ labels: "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ``` 200 OK { @@ -132,27 +142,28 @@ labels: } } ``` + {% /tab %} {% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 -| `Field` | 型 | 説明 | -|:---------------------|:---------------------------|:-------------------------| -| `ledger_hash` | 文字列 - [ハッシュ][] | (省略される場合があります)このデータの取得に使用するレジャーバージョンの識別用ハッシュ(16進数)。 | -| `ledger_index` | 整数 - [レジャーインデックス][] | このデータの取得に使用するレジャーバージョンのシーケンス番号。 | -| `receive_currencies` | 文字列の配列 | このアカウントが受領できる通貨の[通貨コード][]の配列。 | -| `send_currencies` | 文字列の配列 | このアカウントが送金できる通貨の[通貨コード][]の配列。 | -| `validated` | ブール値 | `true`の場合、このデータは検証済みレジャーから取得されます。 | +| `Field` | 型 | 説明 | +| :------------------- | :------------------------------ | :--------------------------------------------------------------------------------------------------- | +| `ledger_hash` | 文字列 - [ハッシュ][] | (省略される場合があります)このデータの取得に使用するレジャーバージョンの識別用ハッシュ(16進数)。 | +| `ledger_index` | 整数 - [レジャーインデックス][] | このデータの取得に使用するレジャーバージョンのシーケンス番号。 | +| `receive_currencies` | 文字列の配列 | このアカウントが受領できる通貨の[通貨コード][]の配列。 | +| `send_currencies` | 文字列の配列 | このアカウントが送金できる通貨の[通貨コード][]の配列。 | +| `validated` | ブール値 | `true`の場合、このデータは検証済みレジャーから取得されます。 | {% admonition type="info" name="注記" %}アカウントが送金または受領できる通貨は、アカウントのトラストラインのチェックに基づいて定義されます。アカウントに通貨のトラストラインがあり、残高を増額できる余裕がある場合、その通貨を受領できます。トラストラインの残高を減らせる場合、アカウントはその通貨を送金できます。このメソッドでは、トラストラインが[フリーズ](../../../../concepts/tokens/fungible-tokens/freezes.md)または承認されているかどうかは確認 _されません_ 。{% /admonition %} ## 考えられるエラー -* [汎用エラータイプ][]のすべて。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* `actNotFound` - リクエストの`account`フィールドに指定されているアドレスが、レジャーのアカウントに対応していません。 -* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバが保有していません。 +- [汎用エラータイプ][]のすべて。 +- `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 +- `actNotFound` - リクエストの`account`フィールドに指定されているアドレスが、レジャーのアカウントに対応していません。 +- `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバが保有していません。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_info.md b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_info.md index 0ead3a8193..9566de3950 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_info.md +++ b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_info.md @@ -2,12 +2,14 @@ html: account_info.html parent: account-methods.html seo: - description: アカウントとそのアクティビティおよびXRP残高についての情報を取得します。 + description: アカウントとそのアクティビティおよびXRP残高についての情報を取得します。 labels: - アカウント - XRP --- + # account_info + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/AccountInfo.cpp "Source") `account_info`コマンドは、アカウントとそのアクティビティおよびXRP残高についての情報を取得します。取得されたすべての情報は、特定バージョンのレジャーに関連付けられています。 @@ -19,6 +21,7 @@ account_infoリクエストの例: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 2, @@ -28,28 +31,33 @@ account_infoリクエストの例: "queue": true } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "account_info", - "params": [ - { - "account": "rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn", - "ledger_index": "current", - "queue": true - } - ] + "method": "account_info", + "params": [ + { + "account": "rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn", + "ledger_index": "current", + "queue": true + } + ] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh #Syntax: account_info account [ledger_index|ledger_hash] rippled account_info rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn validated ``` + {% /tab %} {% /tabs %} @@ -58,13 +66,13 @@ rippled account_info rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn validated リクエストには以下のパラメーターが含まれます。 -| `Field` | 型 | 必須? | 説明 | -|:---------------|:---------------------------|:------|:-------------------------------| -| `account` | 文字列 - [アドレス][] | はい | 検索するアカウント。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.11.0" %}更新: rippled 1.11.0{% /badge %} | -| `ledger_hash` | 文字列 | いいえ | 使用するレジャーバージョンの20バイトの16進文字列。([レジャーの指定][]をご覧ください。) | -| `ledger_index` | 文字列または整数 | いいえ | 使用するレジャーのシーケンス番号、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]をご覧ください。) | -| `queue` | 真偽値 | いいえ | `true`の場合、このアカウントに関連するキューに入れられたトランザクションについてのステータスも返されます。これを使用するのは、現在のオープンレジャーのデータを問い合わせる場合のみです。 | -| `signer_lists` | 真偽値 | いいえ | `true`の場合、このアカウントに関連するすべての[SignerListオブジェクト](../../../protocol/ledger-data/ledger-entry-types/signerlist.md)も返されます。 | +| `Field` | 型 | 必須? | 説明 | +| :------------- | :-------------------- | :----- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `account` | 文字列 - [アドレス][] | はい | 検索するアカウント。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.11.0" %}更新: rippled 1.11.0{% /badge %} | +| `ledger_hash` | 文字列 | いいえ | 使用するレジャーバージョンの20バイトの16進文字列。([レジャーの指定][]をご覧ください。) | +| `ledger_index` | 文字列または整数 | いいえ | 使用するレジャーのシーケンス番号、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]をご覧ください。) | +| `queue` | 真偽値 | いいえ | `true`の場合、このアカウントに関連するキューに入れられたトランザクションについてのステータスも返されます。これを使用するのは、現在のオープンレジャーのデータを問い合わせる場合のみです。 | +| `signer_lists` | 真偽値 | いいえ | `true`の場合、このアカウントに関連するすべての[SignerListオブジェクト](../../../protocol/ledger-data/ledger-entry-types/signerlist.md)も返されます。 | 次のフィールドは廃止予定のため、指定しないでください。`ident`、`ledger`,`strict` @@ -75,6 +83,7 @@ rippled account_info rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn validated {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 5, @@ -122,9 +131,11 @@ rippled account_info rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn validated } } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { "result": { @@ -170,92 +181,95 @@ rippled account_info rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn validated } } ``` + {% /tab %} {% tab label="Commandline" %} + ```json { - "result" : { - "account_data" : { - "Account" : "rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn", - "Balance" : "9986", - "Flags" : 1114112, - "LedgerEntryType" : "AccountRoot", - "OwnerCount" : 0, - "PreviousTxnID" : "0705FE3F52057924C288296EF0EBF668E0C1A3646FBA8FAF9B73DCC0A797B4B2", - "PreviousTxnLgrSeq" : 51948740, - "RegularKey" : "rhLkGGNZdjSpnHJw4XAFw1Jy7PD8TqxoET", - "Sequence" : 192220, - "index" : "92FA6A9FC8EA6018D5D16532D7795C91BFB0831355BDFDA177E86C8BF997985F" - }, - "ledger_hash" : "8169428EDF7F046F817CE44F5F1DF23AD9FAEFFA2CBA7645C3254D66AA79B46E", - "ledger_index" : 56843712, - "status" : "success", - "validated" : true - } + "result": { + "account_data": { + "Account": "rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn", + "Balance": "9986", + "Flags": 1114112, + "LedgerEntryType": "AccountRoot", + "OwnerCount": 0, + "PreviousTxnID": "0705FE3F52057924C288296EF0EBF668E0C1A3646FBA8FAF9B73DCC0A797B4B2", + "PreviousTxnLgrSeq": 51948740, + "RegularKey": "rhLkGGNZdjSpnHJw4XAFw1Jy7PD8TqxoET", + "Sequence": 192220, + "index": "92FA6A9FC8EA6018D5D16532D7795C91BFB0831355BDFDA177E86C8BF997985F" + }, + "ledger_hash": "8169428EDF7F046F817CE44F5F1DF23AD9FAEFFA2CBA7645C3254D66AA79B46E", + "ledger_index": 56843712, + "status": "success", + "validated": true + } } ``` + {% /tab %} {% /tabs %} レスポンスは[標準フォーマット][]に従い、リクエストされたアカウントとそのデータ、アカウントの適用先レジャーが結果として表示されます。以下のフィールドが含まれます。 -| `Field` | 型 | 説明 | -|:-----------------------|:-----------|:------------------------------------------| -| `account_data` | オブジェクト | このアカウントの情報を含む[AccountRootレジャーオブジェクト](../../../protocol/ledger-data/ledger-entry-types/accountroot.md)がレジャーに保管されているとおりに表示されます。 | -| `account_flags` | オブジェクト | アカウントの`Flags`フィールドに基づく、アカウントのフラグ情報(下記参照)。 {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.11.0" %}新規: rippled 1.11.0{% /badge %} | -| `signer_lists` | 配列 | (リクエストに`signer_lists`が指定されていて、少なくとも1つのSignerListがアカウントに関連する場合を除いて省略)[マルチシグ](../../../../concepts/accounts/multi-signing.md)用にアカウントに関連付けられた[SignerListレジャーオブジェクト](../../../protocol/ledger-data/ledger-entry-types/signerlist.md)の配列。アカウントが所有できるSignerListは最大1つであるため、この配列のメンバーは存在するとすれば、1メンバーのみです。 | -| `ledger_current_index` | 整数 | (`ledger_index`が代わりに指定されている場合は省略) この情報を取得したときに使用されていた最新のレジャーのシーケンス番号。この情報には、これより新しいレジャーの変更は一切含まれません。 | -| `ledger_index` | 整数 | (`ledger_current_index`が代わりに指定されている場合は省略) この情報を取得したときに使用されていたレジャーのシーケンス番号。この情報には、これより新しいレジャーの変更は一切含まれません。 | -| `queue_data` | オブジェクト | (`queue`が`true`と指定され、現在開いているレジャーを問い合わせている場合を除いて省略) このアカウントによって送信された[キューに入れられたトランザクション](../../../../concepts/transactions/transaction-cost.md#キューに入れられたトランザクション)についての情報。この情報にはローカル`rippled`サーバの状態が示されますが、コンセンサスネットワーク内の他のサーバとは異なる場合があります。示される値はキューメカニズムによって「大まかに」計算されるため、一部のフィールドは省略される場合があります。 | -| `validated` | 真偽値 | このデータが検証済みのレジャーバージョンのものである場合はTrueです。省略されているかFalseが設定されている場合、このデータは最終のものではありません。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.26.0" %}新規: rippled 0.26.0{% /badge %} | +| `Field` | 型 | 説明 | +| :--------------------- | :----------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `account_data` | オブジェクト | このアカウントの情報を含む[AccountRootレジャーオブジェクト](../../../protocol/ledger-data/ledger-entry-types/accountroot.md)がレジャーに保管されているとおりに表示されます。 | +| `account_flags` | オブジェクト | アカウントの`Flags`フィールドに基づく、アカウントのフラグ情報(下記参照)。 {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.11.0" %}新規: rippled 1.11.0{% /badge %} | +| `signer_lists` | 配列 | (リクエストに`signer_lists`が指定されていて、少なくとも1つのSignerListがアカウントに関連する場合を除いて省略)[マルチシグ](../../../../concepts/accounts/multi-signing.md)用にアカウントに関連付けられた[SignerListレジャーオブジェクト](../../../protocol/ledger-data/ledger-entry-types/signerlist.md)の配列。アカウントが所有できるSignerListは最大1つであるため、この配列のメンバーは存在するとすれば、1メンバーのみです。 | +| `ledger_current_index` | 整数 | (`ledger_index`が代わりに指定されている場合は省略) この情報を取得したときに使用されていた最新のレジャーのシーケンス番号。この情報には、これより新しいレジャーの変更は一切含まれません。 | +| `ledger_index` | 整数 | (`ledger_current_index`が代わりに指定されている場合は省略) この情報を取得したときに使用されていたレジャーのシーケンス番号。この情報には、これより新しいレジャーの変更は一切含まれません。 | +| `queue_data` | オブジェクト | (`queue`が`true`と指定され、現在開いているレジャーを問い合わせている場合を除いて省略) このアカウントによって送信された[キューに入れられたトランザクション](../../../../concepts/transactions/transaction-cost.md#キューに入れられたトランザクション)についての情報。この情報にはローカル`rippled`サーバの状態が示されますが、コンセンサスネットワーク内の他のサーバとは異なる場合があります。示される値はキューメカニズムによって「大まかに」計算されるため、一部のフィールドは省略される場合があります。 | +| `validated` | 真偽値 | このデータが検証済みのレジャーバージョンのものである場合はTrueです。省略されているかFalseが設定されている場合、このデータは最終のものではありません。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.26.0" %}新規: rippled 0.26.0{% /badge %} | `account_flags`フィールドは以下のネストしたフィールドを含みます: -| `Field` | 型 | 説明 | -|:-----------------------|:--------|:------------------------------------------| -| `defaultRipple` | 真偽値 | `true`の場合、アカウントはデフォルトでトラストラインの[rippling](../../../../concepts/tokens/fungible-tokens/rippling.md)を許可します。 | -| `depositAuth` | 真偽値 | `true`の場合、このアカウントは[Deposit Authorization](../../../../concepts/accounts/depositauth.md)を使用しており、未知の第三者からの入金を受け付けていません。 | -| `disableMasterKey` | 真偽値 | `true`の場合、アカウントの[マスターキーペア](../../../../concepts/accounts/cryptographic-keys.md)が無効になっています。 | -| `disallowIncomingCheck` | 真偽値 | `true`の場合、このアカウントは第三者からの[Check](../../../../concepts/payment-types/checks.md)の送信を許可してません。 _([DisallowIncoming amendment][]が必要です)_ | -| `disallowIncomingNFTokenOffer` | 真偽値 | `true`の場合、このアカウントは第三者からの[NFT売買オファー](../../../../concepts/tokens/nfts/trading.md)の作成を許可してません。 _([DisallowIncoming amendment][]が必要です)_ | -| `disallowIncomingPayChan` | 真偽値 | `true`の場合、このアカウントは第三者からの[ペイメントチャンネル](../../../../concepts/payment-types/payment-channels.md)の作成を許可していません。 _([DisallowIncoming amendment][]が必要です)_ | -| `disallowIncomingTrustline` | 真偽値 | `true`の場合、このアカウントは第三者が[トラストライン](../../../../concepts/tokens/fungible-tokens/index.md)を作ることを許可していません。 _([DisallowIncoming amendment][]が必要です)_ | -| `disallowIncomingXRP` | 真偽値 | `true`の場合、このアカウントは他者からXRPを受け取りたくありません。(これは参考情報であり、プロトコルレベルでは強制されません) | -| `globalFreeze` | 真偽値 | `true`の場合、このアカウントによって発行されたすべてのトークンは現在フリーズされています。 | -| `noFreeze` | 真偽値 | `true`の場合、このアカウントは個々のトラストラインをフリーズしたり、グローバルフリーズを行う機能を永久に放棄しています。詳細は[No Freeze](../../../../concepts/tokens/fungible-tokens/freezes.md#no-freeze)をご覧ください。 | -| `passwordSpent` | 真偽値 | `false`の場合、このアカウントはトランザクションコスト0の特別な[キーリセットトランザクション](../../../../concepts/transactions/transaction-cost.md#key-resetトランザクション)を送信できます。プロトコルはこのフラグを自動的にオン/オフします。 | -| `requireAuthorization` | 真偽値 | `true`の場合、このアカウントは[認可トラストライン](../../../../concepts/tokens/fungible-tokens/authorized-trust-lines.md)を使って、発行するトークンを保持できる人を制限しています。 | -| `requireDestinationTag` | 真偽値 | `true`の場合、このアカウントは受け取るすべての支払いに[宛先タグ](../../../../tutorials/how-tos/manage-account-settings/require-destination-tags.md)をリクエストしています。 | +| `Field` | 型 | 説明 | +| :----------------------------- | :----- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `defaultRipple` | 真偽値 | `true`の場合、アカウントはデフォルトでトラストラインの[rippling](../../../../concepts/tokens/fungible-tokens/rippling.md)を許可します。 | +| `depositAuth` | 真偽値 | `true`の場合、このアカウントは[Deposit Authorization](../../../../concepts/accounts/depositauth.md)を使用しており、未知の第三者からの入金を受け付けていません。 | +| `disableMasterKey` | 真偽値 | `true`の場合、アカウントの[マスターキーペア](../../../../concepts/accounts/cryptographic-keys.md)が無効になっています。 | +| `disallowIncomingCheck` | 真偽値 | `true`の場合、このアカウントは第三者からの[Check](../../../../concepts/payment-types/checks.md)の送信を許可してません。 _([DisallowIncoming amendment][]が必要です)_ | +| `disallowIncomingNFTokenOffer` | 真偽値 | `true`の場合、このアカウントは第三者からの[NFT売買オファー](../../../../concepts/tokens/nfts/trading.md)の作成を許可してません。 _([DisallowIncoming amendment][]が必要です)_ | +| `disallowIncomingPayChan` | 真偽値 | `true`の場合、このアカウントは第三者からの[ペイメントチャンネル](../../../../concepts/payment-types/payment-channels.md)の作成を許可していません。 _([DisallowIncoming amendment][]が必要です)_ | +| `disallowIncomingTrustline` | 真偽値 | `true`の場合、このアカウントは第三者が[トラストライン](../../../../concepts/tokens/fungible-tokens/index.md)を作ることを許可していません。 _([DisallowIncoming amendment][]が必要です)_ | +| `disallowIncomingXRP` | 真偽値 | `true`の場合、このアカウントは他者からXRPを受け取りたくありません。(これは参考情報であり、プロトコルレベルでは強制されません) | +| `globalFreeze` | 真偽値 | `true`の場合、このアカウントによって発行されたすべてのトークンは現在フリーズされています。 | +| `noFreeze` | 真偽値 | `true`の場合、このアカウントは個々のトラストラインをフリーズしたり、グローバルフリーズを行う機能を永久に放棄しています。詳細は[No Freeze](../../../../concepts/tokens/fungible-tokens/freezes.md#no-freeze)をご覧ください。 | +| `passwordSpent` | 真偽値 | `false`の場合、このアカウントはトランザクションコスト0の特別な[キーリセットトランザクション](../../../../concepts/transactions/transaction-cost.md#key-resetトランザクション)を送信できます。プロトコルはこのフラグを自動的にオン/オフします。 | +| `requireAuthorization` | 真偽値 | `true`の場合、このアカウントは[認可トラストライン](../../../../concepts/tokens/fungible-tokens/authorized-trust-lines.md)を使って、発行するトークンを保持できる人を制限しています。 | +| `requireDestinationTag` | 真偽値 | `true`の場合、このアカウントは受け取るすべての支払いに[宛先タグ](../../../../tutorials/how-tos/manage-account-settings/require-destination-tags.md)をリクエストしています。 | `queue_data`パラメーターが存在する場合、以下のフィールドが含まれます。 -| `Field` | 型 | 説明 | -|:------------------------|:--------|:-----------------------------------------| -| `txn_count` | 整数 | このアドレスからキューに入れられたトランザクションの数。 | -| `auth_change_queued` | 真偽値 | (省略される場合があります)キュー内のトランザクションがこのアドレスの[トランザクションの承認方法](../../../../concepts/transactions/index.md#トランザクションの承認)を変更するかどうかを示します。`true`の場合、トランザクションが実行されているかキューから除外されるまで、このアドレスはトランザクションをこれ以上キューに入れることができません。 | -| `lowest_sequence` | 整数 | (省略される場合があります)このアドレスによってキューに入れられたトランザクションのうち最も低い[シーケンス番号][]。 | -| `highest_sequence` | 整数 | (省略される場合があります)このアドレスによってキューに入れられたトランザクションのうち最も高い[シーケンス番号][]。 | -| `max_spend_drops_total` | 文字列 | (省略される場合があります)キュー内のすべてのトランザクションが利用可能なXRPを最大限消費する場合に、このアドレスから差し引くことができる[XRPのdrop数][]を示す整数の金額。 | -| `transactions` | 配列 | (省略される場合があります)このアドレスからキューに入れられた各トランザクションについての情報。 | +| `Field` | 型 | 説明 | +| :---------------------- | :----- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `txn_count` | 整数 | このアドレスからキューに入れられたトランザクションの数。 | +| `auth_change_queued` | 真偽値 | (省略される場合があります)キュー内のトランザクションがこのアドレスの[トランザクションの承認方法](../../../../concepts/transactions/index.md#トランザクションの承認)を変更するかどうかを示します。`true`の場合、トランザクションが実行されているかキューから除外されるまで、このアドレスはトランザクションをこれ以上キューに入れることができません。 | +| `lowest_sequence` | 整数 | (省略される場合があります)このアドレスによってキューに入れられたトランザクションのうち最も低い[シーケンス番号][]。 | +| `highest_sequence` | 整数 | (省略される場合があります)このアドレスによってキューに入れられたトランザクションのうち最も高い[シーケンス番号][]。 | +| `max_spend_drops_total` | 文字列 | (省略される場合があります)キュー内のすべてのトランザクションが利用可能なXRPを最大限消費する場合に、このアドレスから差し引くことができる[XRPのdrop数][]を示す整数の金額。 | +| `transactions` | 配列 | (省略される場合があります)このアドレスからキューに入れられた各トランザクションについての情報。 | `queue_data`の`transactions`配列内の各オブジェクト(存在する場合)には、以下のフィールドのいずれかまたはすべてが含まれます。 -| `Field` | 型 | 説明 | -|:------------------|:--------|:-----------------------------------------------| -| `auth_change` | 真偽値 | このトランザクションがこのアドレスの[トランザクション承認の方法](../../../../concepts/transactions/index.md#トランザクションの承認)を変更するかどうかを示します。 | -| `fee` | 文字列 | このトランザクションの[トランザクションコスト](../../../../concepts/transactions/transaction-cost.md)([XRPのdrop数][])。 | -| `fee_level` | 文字列 | このタイプのトランザクションの最少コストと比較した、このトランザクションのトランザクションコスト([手数料レベル][])。 | -| `max_spend_drops` | 文字列 | このトランザクションで送信または消却できる[XRPのdrop数][]の最高額。 | -| `seq` | 整数 | このトランザクションの[シーケンス番号][]。 | +| `Field` | 型 | 説明 | +| :---------------- | :----- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `auth_change` | 真偽値 | このトランザクションがこのアドレスの[トランザクション承認の方法](../../../../concepts/transactions/index.md#トランザクションの承認)を変更するかどうかを示します。 | +| `fee` | 文字列 | このトランザクションの[トランザクションコスト](../../../../concepts/transactions/transaction-cost.md)([XRPのdrop数][])。 | +| `fee_level` | 文字列 | このタイプのトランザクションの最少コストと比較した、このトランザクションのトランザクションコスト([手数料レベル][])。 | +| `max_spend_drops` | 文字列 | このトランザクションで送信または消却できる[XRPのdrop数][]の最高額。 | +| `seq` | 整数 | このトランザクションの[シーケンス番号][]。 | ## 考えられるエラー -* いずれかの[汎用エラータイプ][]。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。例えば、リクエストで`queue`を`true`と指定したが、現在開いているレジャーではない`ledger_index`を指定した場合です。[API v1][]では、`signer_lists`に非真偽値を指定した場合にこのエラーが発生します。 -* `actNotFound` - リクエストの`account`フィールドに指定したアドレスが、レジャー内のアカウントに対応していません。 -* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバが保有していません。 +- いずれかの[汎用エラータイプ][]。 +- `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。例えば、リクエストで`queue`を`true`と指定したが、現在開いているレジャーではない`ledger_index`を指定した場合です。[API v1][]では、`signer_lists`に非真偽値を指定した場合にこのエラーが発生します。 +- `actNotFound` - リクエストの`account`フィールドに指定したアドレスが、レジャー内のアカウントに対応していません。 +- `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバが保有していません。 [手数料レベル]: ../../../../concepts/transactions/transaction-cost.md#手数料レベル diff --git a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_lines.md b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_lines.md index 6ad077b9df..87363a651c 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_lines.md +++ b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_lines.md @@ -2,11 +2,13 @@ html: account_lines.html parent: account-methods.html seo: - description: アカウントのトラストラインに関する情報を返します。 + description: アカウントのトラストラインに関する情報を返します。 labels: - トークン --- + # account_lines + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/AccountLines.cpp "Source") `account_lines`メソッドは、アカウントのトラストラインに関する情報(XRP以外のあらゆる通貨の残高と資産など)を返します。取得された情報はすべて、特定バージョンのレジャーに関連付けられています。 @@ -18,6 +20,7 @@ labels: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 1, @@ -25,26 +28,31 @@ labels: "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "account_lines", - "params": [ - { - "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59" - } - ] + "method": "account_lines", + "params": [ + { + "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59" + } + ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh #Syntax: account_lines [] [|] rippled account_lines r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 ``` + {% /tab %} {% /tabs %} @@ -53,14 +61,14 @@ rippled account_lines r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 リクエストには以下のパラメーターを指定できます。 -| `Field` | 型 | 説明 | -|:--------------|:---------------|:---------------| -| `account` | 文字列 | トラストラインを検索するアカウント。 | -| `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーバージョンの20バイトの16進文字列。([レジャーの指定][]をご覧ください) | -| `ledger_index` | 文字列または整数 | _(省略可)_ 使用するレジャーの[レジャーインデックス][]、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]をご覧ください) | -| `peer` | 文字列 | _(省略可)_ 2番目のアカウントの[アドレス][]。指定されている場合は、2つのアカウントを結ぶトラストラインだけが出力されます。 | -| `limit` | 整数 | (省略可、デフォルト値は可変)取得するトラストラインの数を制限します。サーバはこの値を受け入れる必要はありません。10以上400以下の範囲で値を指定する必要があります。 | -| `marker` | [マーカー][] | _(省略可)_ 以前にページネーションされたレスポンスの値。そのレスポンスを停止した箇所からデータの取得を再開します。 | +| `Field` | 型 | 説明 | +| :------------- | :--------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `account` | 文字列 | トラストラインを検索するアカウント。 | +| `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーバージョンの20バイトの16進文字列。([レジャーの指定][]をご覧ください) | +| `ledger_index` | 文字列または整数 | _(省略可)_ 使用するレジャーの[レジャーインデックス][]、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]をご覧ください) | +| `peer` | 文字列 | _(省略可)_ 2番目のアカウントの[アドレス][]。指定されている場合は、2つのアカウントを結ぶトラストラインだけが出力されます。 | +| `limit` | 整数 | (省略可、デフォルト値は可変)取得するトラストラインの数を制限します。サーバはこの値を受け入れる必要はありません。10以上400以下の範囲で値を指定する必要があります。 | +| `marker` | [マーカー][] | _(省略可)_ 以前にページネーションされたレスポンスの値。そのレスポンスを停止した箇所からデータの取得を再開します。 | 以下のパラメーターは廃止予定であり、今後予告なしに削除される可能性があります。`ledger`および`peer_index`。 @@ -71,51 +79,54 @@ rippled account_lines r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": 1, - "status": "success", - "type": "response", - "result": { - "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "lines": [ - { - "account": "r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z", - "balance": "0", - "currency": "ASP", - "limit": "0", - "limit_peer": "10", - "quality_in": 0, - "quality_out": 0 - }, - { - "account": "r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z", - "balance": "0", - "currency": "XAU", - "limit": "0", - "limit_peer": "0", - "no_ripple": true, - "no_ripple_peer": true, - "quality_in": 0, - "quality_out": 0 - }, - { - "account": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "balance": "3.497605752725159", - "currency": "USD", - "limit": "5", - "limit_peer": "0", - "no_ripple": true, - "quality_in": 0, - "quality_out": 0 - } - ] - } + "id": 1, + "status": "success", + "type": "response", + "result": { + "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "lines": [ + { + "account": "r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z", + "balance": "0", + "currency": "ASP", + "limit": "0", + "limit_peer": "10", + "quality_in": 0, + "quality_out": 0 + }, + { + "account": "r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z", + "balance": "0", + "currency": "XAU", + "limit": "0", + "limit_peer": "0", + "no_ripple": true, + "no_ripple_peer": true, + "quality_in": 0, + "quality_out": 0 + }, + { + "account": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "balance": "3.497605752725159", + "currency": "USD", + "limit": "5", + "limit_peer": "0", + "no_ripple": true, + "quality_in": 0, + "quality_out": 0 + } + ] + } } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -158,292 +169,295 @@ rippled account_lines r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 } } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```json { - "result" : { - "account" : "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "ledger_current_index" : 56867265, - "lines" : [ - { - "account" : "r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z", - "balance" : "0", - "currency" : "ASP", - "limit" : "0", - "limit_peer" : "10", - "quality_in" : 0, - "quality_out" : 0 - }, - { - "account" : "r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z", - "balance" : "0", - "currency" : "XAU", - "limit" : "0", - "limit_peer" : "0", - "no_ripple" : true, - "no_ripple_peer" : true, - "quality_in" : 0, - "quality_out" : 0 - }, - { - "account" : "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "balance" : "5", - "currency" : "USD", - "limit" : "5", - "limit_peer" : "0", - "no_ripple" : true, - "quality_in" : 0, - "quality_out" : 0 - }, - { - "account" : "rHpXfibHgSb64n8kK9QWDpdbfqSpYbM9a4", - "balance" : "481.992867407479", - "currency" : "MXN", - "limit" : "1000", - "limit_peer" : "0", - "quality_in" : 0, - "quality_out" : 0 - }, - { - "account" : "rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", - "balance" : "0.793598266778297", - "currency" : "EUR", - "limit" : "1", - "limit_peer" : "0", - "no_ripple" : true, - "quality_in" : 0, - "quality_out" : 0 - }, - { - "account" : "rnuF96W4SZoCJmbHYBFoJZpR8eCaxNvekK", - "balance" : "0", - "currency" : "CNY", - "limit" : "3", - "limit_peer" : "0", - "no_ripple" : true, - "quality_in" : 0, - "quality_out" : 0 - }, - { - "account" : "rGwUWgN5BEg3QGNY3RX2HfYowjUTZdid3E", - "balance" : "1.336889190631542", - "currency" : "DYM", - "limit" : "3", - "limit_peer" : "0", - "quality_in" : 0, - "quality_out" : 0 - }, - { - "account" : "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "balance" : "0.3488146605801446", - "currency" : "CHF", - "limit" : "0", - "limit_peer" : "0", - "quality_in" : 0, - "quality_out" : 0 - }, - { - "account" : "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "balance" : "0", - "currency" : "BTC", - "limit" : "3", - "limit_peer" : "0", - "quality_in" : 0, - "quality_out" : 0 - }, - { - "account" : "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "balance" : "11.68225001668339", - "currency" : "USD", - "limit" : "5000", - "limit_peer" : "0", - "quality_in" : 0, - "quality_out" : 0 - }, - { - "account" : "rpgKWEmNqSDAGFhy5WDnsyPqfQxbWxKeVd", - "balance" : "-0.00111", - "currency" : "BTC", - "limit" : "0", - "limit_peer" : "10", - "quality_in" : 0, - "quality_out" : 0 - }, - { - "account" : "rBJ3YjwXi2MGbg7GVLuTXUWQ8DjL7tDXh4", - "balance" : "-0.0008744482690504699", - "currency" : "BTC", - "limit" : "0", - "limit_peer" : "10", - "quality_in" : 0, - "quality_out" : 0 - }, - { - "account" : "rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", - "balance" : "0", - "currency" : "USD", - "limit" : "1", - "limit_peer" : "0", - "quality_in" : 0, - "quality_out" : 0 - }, - { - "account" : "razqQKzJRdB4UxFPWf5NEpEG3WMkmwgcXA", - "balance" : "9.07619790068559", - "currency" : "CNY", - "limit" : "100", - "limit_peer" : "0", - "no_ripple" : true, - "quality_in" : 0, - "quality_out" : 0 - }, - { - "account" : "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "balance" : "7.292695098901099", - "currency" : "JPY", - "limit" : "0", - "limit_peer" : "0", - "no_ripple" : true, - "quality_in" : 0, - "quality_out" : 0 - }, - { - "account" : "r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z", - "balance" : "0", - "currency" : "AUX", - "limit" : "0", - "limit_peer" : "0", - "no_ripple" : true, - "no_ripple_peer" : true, - "quality_in" : 0, - "quality_out" : 0 - }, - { - "account" : "r9vbV3EHvXWjSkeQ6CAcYVPGeq7TuiXY2X", - "balance" : "0.0004557360418801623", - "currency" : "USD", - "limit" : "1", - "limit_peer" : "0", - "no_ripple" : true, - "quality_in" : 0, - "quality_out" : 0 - }, - { - "account" : "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "balance" : "12.41688780720394", - "currency" : "EUR", - "limit" : "100", - "limit_peer" : "0", - "no_ripple" : true, - "quality_in" : 0, - "quality_out" : 0 - }, - { - "account" : "rfF3PNkwkq1DygW2wum2HK3RGfgkJjdPVD", - "balance" : "35", - "currency" : "USD", - "limit" : "500", - "limit_peer" : "0", - "no_ripple" : true, - "quality_in" : 0, - "quality_out" : 0 - }, - { - "account" : "rwUVoVMSURqNyvocPCcvLu3ygJzZyw8qwp", - "balance" : "-5", - "currency" : "JOE", - "limit" : "0", - "limit_peer" : "50", - "no_ripple_peer" : true, - "quality_in" : 0, - "quality_out" : 0 - }, - { - "account" : "rE6R3DWF9fBD7CyiQciePF9SqK58Ubp8o2", - "balance" : "0", - "currency" : "USD", - "limit" : "0", - "limit_peer" : "100", - "no_ripple_peer" : true, - "quality_in" : 0, - "quality_out" : 0 - }, - { - "account" : "rE6R3DWF9fBD7CyiQciePF9SqK58Ubp8o2", - "balance" : "0", - "currency" : "JOE", - "limit" : "0", - "limit_peer" : "100", - "no_ripple_peer" : true, - "quality_in" : 0, - "quality_out" : 0 - }, - { - "account" : "rs9M85karFkCRjvc6KMWn8Coigm9cbcgcx", - "balance" : "0", - "currency" : "015841551A748AD2C1F76FF6ECB0CCCD00000000", - "limit" : "10.01037626125837", - "limit_peer" : "0", - "no_ripple" : true, - "quality_in" : 0, - "quality_out" : 0 - }, - { - "account" : "rEhDDUUNxpXgEHVJtC2cjXAgyx5VCFxdMF", - "balance" : "0", - "currency" : "USD", - "limit" : "0", - "limit_peer" : "1", - "quality_in" : 0, - "quality_out" : 0 - } - ], - "status" : "success", - "validated" : false - } + "result": { + "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "ledger_current_index": 56867265, + "lines": [ + { + "account": "r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z", + "balance": "0", + "currency": "ASP", + "limit": "0", + "limit_peer": "10", + "quality_in": 0, + "quality_out": 0 + }, + { + "account": "r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z", + "balance": "0", + "currency": "XAU", + "limit": "0", + "limit_peer": "0", + "no_ripple": true, + "no_ripple_peer": true, + "quality_in": 0, + "quality_out": 0 + }, + { + "account": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "balance": "5", + "currency": "USD", + "limit": "5", + "limit_peer": "0", + "no_ripple": true, + "quality_in": 0, + "quality_out": 0 + }, + { + "account": "rHpXfibHgSb64n8kK9QWDpdbfqSpYbM9a4", + "balance": "481.992867407479", + "currency": "MXN", + "limit": "1000", + "limit_peer": "0", + "quality_in": 0, + "quality_out": 0 + }, + { + "account": "rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", + "balance": "0.793598266778297", + "currency": "EUR", + "limit": "1", + "limit_peer": "0", + "no_ripple": true, + "quality_in": 0, + "quality_out": 0 + }, + { + "account": "rnuF96W4SZoCJmbHYBFoJZpR8eCaxNvekK", + "balance": "0", + "currency": "CNY", + "limit": "3", + "limit_peer": "0", + "no_ripple": true, + "quality_in": 0, + "quality_out": 0 + }, + { + "account": "rGwUWgN5BEg3QGNY3RX2HfYowjUTZdid3E", + "balance": "1.336889190631542", + "currency": "DYM", + "limit": "3", + "limit_peer": "0", + "quality_in": 0, + "quality_out": 0 + }, + { + "account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "balance": "0.3488146605801446", + "currency": "CHF", + "limit": "0", + "limit_peer": "0", + "quality_in": 0, + "quality_out": 0 + }, + { + "account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "balance": "0", + "currency": "BTC", + "limit": "3", + "limit_peer": "0", + "quality_in": 0, + "quality_out": 0 + }, + { + "account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "balance": "11.68225001668339", + "currency": "USD", + "limit": "5000", + "limit_peer": "0", + "quality_in": 0, + "quality_out": 0 + }, + { + "account": "rpgKWEmNqSDAGFhy5WDnsyPqfQxbWxKeVd", + "balance": "-0.00111", + "currency": "BTC", + "limit": "0", + "limit_peer": "10", + "quality_in": 0, + "quality_out": 0 + }, + { + "account": "rBJ3YjwXi2MGbg7GVLuTXUWQ8DjL7tDXh4", + "balance": "-0.0008744482690504699", + "currency": "BTC", + "limit": "0", + "limit_peer": "10", + "quality_in": 0, + "quality_out": 0 + }, + { + "account": "rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", + "balance": "0", + "currency": "USD", + "limit": "1", + "limit_peer": "0", + "quality_in": 0, + "quality_out": 0 + }, + { + "account": "razqQKzJRdB4UxFPWf5NEpEG3WMkmwgcXA", + "balance": "9.07619790068559", + "currency": "CNY", + "limit": "100", + "limit_peer": "0", + "no_ripple": true, + "quality_in": 0, + "quality_out": 0 + }, + { + "account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "balance": "7.292695098901099", + "currency": "JPY", + "limit": "0", + "limit_peer": "0", + "no_ripple": true, + "quality_in": 0, + "quality_out": 0 + }, + { + "account": "r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z", + "balance": "0", + "currency": "AUX", + "limit": "0", + "limit_peer": "0", + "no_ripple": true, + "no_ripple_peer": true, + "quality_in": 0, + "quality_out": 0 + }, + { + "account": "r9vbV3EHvXWjSkeQ6CAcYVPGeq7TuiXY2X", + "balance": "0.0004557360418801623", + "currency": "USD", + "limit": "1", + "limit_peer": "0", + "no_ripple": true, + "quality_in": 0, + "quality_out": 0 + }, + { + "account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "balance": "12.41688780720394", + "currency": "EUR", + "limit": "100", + "limit_peer": "0", + "no_ripple": true, + "quality_in": 0, + "quality_out": 0 + }, + { + "account": "rfF3PNkwkq1DygW2wum2HK3RGfgkJjdPVD", + "balance": "35", + "currency": "USD", + "limit": "500", + "limit_peer": "0", + "no_ripple": true, + "quality_in": 0, + "quality_out": 0 + }, + { + "account": "rwUVoVMSURqNyvocPCcvLu3ygJzZyw8qwp", + "balance": "-5", + "currency": "JOE", + "limit": "0", + "limit_peer": "50", + "no_ripple_peer": true, + "quality_in": 0, + "quality_out": 0 + }, + { + "account": "rE6R3DWF9fBD7CyiQciePF9SqK58Ubp8o2", + "balance": "0", + "currency": "USD", + "limit": "0", + "limit_peer": "100", + "no_ripple_peer": true, + "quality_in": 0, + "quality_out": 0 + }, + { + "account": "rE6R3DWF9fBD7CyiQciePF9SqK58Ubp8o2", + "balance": "0", + "currency": "JOE", + "limit": "0", + "limit_peer": "100", + "no_ripple_peer": true, + "quality_in": 0, + "quality_out": 0 + }, + { + "account": "rs9M85karFkCRjvc6KMWn8Coigm9cbcgcx", + "balance": "0", + "currency": "015841551A748AD2C1F76FF6ECB0CCCD00000000", + "limit": "10.01037626125837", + "limit_peer": "0", + "no_ripple": true, + "quality_in": 0, + "quality_out": 0 + }, + { + "account": "rEhDDUUNxpXgEHVJtC2cjXAgyx5VCFxdMF", + "balance": "0", + "currency": "USD", + "limit": "0", + "limit_peer": "1", + "quality_in": 0, + "quality_out": 0 + } + ], + "status": "success", + "validated": false + } } ``` + {% /tab %} {% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合には、アカウントのアドレスとトラストラインオブジェクトの配列が含まれています。具体的には、結果オブジェクトには以下のフィールドが含まれます。 -| `Field` | 型 | 説明 | -|:-----------------------|:----------------------------|:-----------------------| -| `account` | 文字列 | このリクエストに対応するアカウントの一意の[アドレス][]。トラストラインのための「パースペクティブアカウント」です。 | -| `lines` | 配列 | トラストラインオブジェクトからなる配列。以下で説明します。トラストラインの数が多い場合は、一度に`limit`の数までのトラストラインが返されます。 | -| `ledger_current_index` | 整数 - [レジャーインデックス][] | _(`ledger_hash`または`ledger_index`が指定されている場合は省略)_ この情報の取得時に使用した、現行のオープンレジャーのレジャーインデックス。 | -| `ledger_index` | 整数 - [レジャーインデックス][] | _(`ledger_current_index`が指定されている場合は省略)_ このデータの取得時に使用されたレジャーバージョンのレジャーインデックス。 | -| `ledger_hash` | 文字列 - [ハッシュ][] | _(省略される場合があります)_ このデータの取得時に使用されたレジャーバージョンの識別用ハッシュ。 | -| `marker` | [マーカー][] | レスポンスがページネーションされていることを示す、サーバが定義した値。この値を次のコールに渡して、このコールで終わった箇所から再開します。この後に追加のページがない場合は省略されます | +| `Field` | 型 | 説明 | +| :--------------------- | :------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `account` | 文字列 | このリクエストに対応するアカウントの一意の[アドレス][]。トラストラインのための「パースペクティブアカウント」です。 | +| `lines` | 配列 | トラストラインオブジェクトからなる配列。以下で説明します。トラストラインの数が多い場合は、一度に`limit`の数までのトラストラインが返されます。 | +| `ledger_current_index` | 整数 - [レジャーインデックス][] | _(`ledger_hash`または`ledger_index`が指定されている場合は省略)_ この情報の取得時に使用した、現行のオープンレジャーのレジャーインデックス。 | +| `ledger_index` | 整数 - [レジャーインデックス][] | _(`ledger_current_index`が指定されている場合は省略)_ このデータの取得時に使用されたレジャーバージョンのレジャーインデックス。 | +| `ledger_hash` | 文字列 - [ハッシュ][] | _(省略される場合があります)_ このデータの取得時に使用されたレジャーバージョンの識別用ハッシュ。 | +| `marker` | [マーカー][] | レスポンスがページネーションされていることを示す、サーバが定義した値。この値を次のコールに渡して、このコールで終わった箇所から再開します。この後に追加のページがない場合は省略されます | 各トラストラインオブジェクトには以下のフィールドの組み合わせが含まれています。 -| `Field` | 型 | 説明 | -|:------------------|:-----------|:---------------------------------------| -| `account` | 文字列 | このトラストラインの相手側の一意の[アドレス][]。 | -| `balance` | 文字列 | 現在このラインに対して保留されている残高(数値)の表示。残高がプラスの場合はパースペクティブアカウントがその額を保有しており、マイナスの場合はパースペクティブアカウントがその額を借用しています。 | -| `currency` | 文字列 | このトラストラインが保有できる通貨を示す[通貨コード][]。 | -| `limit` | 文字列 | このアカウントがピアアカウントからの借用を希望する特定の通貨の上限額。 | -| `limit_peer` | 文字列 | 相手側アカウントがパースペクティブアカウントからの借用を希望する特定の通貨の上限額。 | -| `quality_in` | 符号なし整数 | このアカウントが、このトラストラインの入金時残高を評価する際のレート(この数値対10億単位の比率)。(たとえば5億の場合は0.5:1の比率を表します。)特殊なケースとして、0は1:1の比率として扱われます。 | -| `quality_out` | 符号なし整数 | このアカウントが、このトラストラインの出金時残高を評価する際のレート(この数値対10億単位の比率)。(たとえば5億の場合は0.5:1の比率を表します。)特殊なケースとして、0は1:1の比率として扱われます。 | -| `no_ripple` | 真偽値 | (省略される場合があります)`true`の場合、このアカウントはこのトラストラインの[No Rippleフラグ](../../../../concepts/tokens/fungible-tokens/rippling.md)を有効にしています。もし`false`であれば、このアカウントは[No Rippleフラグ](../../../protocol/ledger-data/ledger-entry-types/ripplestate.md#所有者の準備金への資金供給)を無効にしていますが、これは[デフォルト値](../../../protocol/ledger-data/ledger-entry-types/ripplestate.md#所有者の準備金への資金供給)ではありません。。省略された場合、そのアカウントはこのトラストラインのNo Rippleフラグは無効で、Default Rippleが有効となります。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.7.0" %}更新: rippled 1.7.0{% /badge %} | -| `no_ripple_peer` | 真偽値 | (省略される場合があります)`true`の場合、ピアアカウントはこのトラストラインで[No Rippleフラグ](../../../../concepts/tokens/fungible-tokens/rippling.md)を有効にしています。もし`false`なら、このアカウントはNo Rippleフラグを無効にしていますが、このアカウントはDefault Rippleフラグも無効にしているため、[デフォルト値](../../../protocol/ledger-data/ledger-entry-types/ripplestate.md#所有者の準備金への資金供給)とはみなされません。省略された場合、そのアカウントはこのトラストラインのNo Rippleフラグが無効で、Default Rippleが有効です。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.7.0" %}更新: rippled 1.7.0{% /badge %} | -| `authorized` | 真偽値 | (省略される場合があります)このアカウントが[このトラストラインを承認した](../../../../concepts/tokens/fungible-tokens/authorized-trust-lines.md)場合は、`true`。省略されている場合は、`false`と同じです。 | -| `peer_authorized` | 真偽値 | (省略される場合があります)ピアアカウントが[このトラストラインを承認した](../../../../concepts/tokens/fungible-tokens/authorized-trust-lines.md)場合は`true`。省略されている場合は、`false`と同じです。 | -| `freeze` | 真偽値 | (省略される場合があります)このアカウントがこのトラストラインを[フリーズ](../../../../concepts/tokens/fungible-tokens/freezes.md)した場合は`true`。省略されている場合は、`false`と同じです。 | -| `freeze_peer` | 真偽値 | (省略される場合があります)ピアアカウントがこのトラストラインを[フリーズ](../../../../concepts/tokens/fungible-tokens/freezes.md)した場合は、`true`。省略されている場合は、`false`と同じです。 | +| `Field` | 型 | 説明 | +| :---------------- | :----------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `account` | 文字列 | このトラストラインの相手側の一意の[アドレス][]。 | +| `balance` | 文字列 | 現在このラインに対して保留されている残高(数値)の表示。残高がプラスの場合はパースペクティブアカウントがその額を保有しており、マイナスの場合はパースペクティブアカウントがその額を借用しています。 | +| `currency` | 文字列 | このトラストラインが保有できる通貨を示す[通貨コード][]。 | +| `limit` | 文字列 | このアカウントがピアアカウントからの借用を希望する特定の通貨の上限額。 | +| `limit_peer` | 文字列 | 相手側アカウントがパースペクティブアカウントからの借用を希望する特定の通貨の上限額。 | +| `quality_in` | 符号なし整数 | このアカウントが、このトラストラインの入金時残高を評価する際のレート(この数値対10億単位の比率)。(たとえば5億の場合は0.5:1の比率を表します。)特殊なケースとして、0は1:1の比率として扱われます。 | +| `quality_out` | 符号なし整数 | このアカウントが、このトラストラインの出金時残高を評価する際のレート(この数値対10億単位の比率)。(たとえば5億の場合は0.5:1の比率を表します。)特殊なケースとして、0は1:1の比率として扱われます。 | +| `no_ripple` | 真偽値 | (省略される場合があります)`true`の場合、このアカウントはこのトラストラインの[No Rippleフラグ](../../../../concepts/tokens/fungible-tokens/rippling.md)を有効にしています。もし`false`であれば、このアカウントは[No Rippleフラグ](../../../protocol/ledger-data/ledger-entry-types/ripplestate.md#所有者の準備金への資金供給)を無効にしていますが、これは[デフォルト値](../../../protocol/ledger-data/ledger-entry-types/ripplestate.md#所有者の準備金への資金供給)ではありません。。省略された場合、そのアカウントはこのトラストラインのNo Rippleフラグは無効で、Default Rippleが有効となります。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.7.0" %}更新: rippled 1.7.0{% /badge %} | +| `no_ripple_peer` | 真偽値 | (省略される場合があります)`true`の場合、ピアアカウントはこのトラストラインで[No Rippleフラグ](../../../../concepts/tokens/fungible-tokens/rippling.md)を有効にしています。もし`false`なら、このアカウントはNo Rippleフラグを無効にしていますが、このアカウントはDefault Rippleフラグも無効にしているため、[デフォルト値](../../../protocol/ledger-data/ledger-entry-types/ripplestate.md#所有者の準備金への資金供給)とはみなされません。省略された場合、そのアカウントはこのトラストラインのNo Rippleフラグが無効で、Default Rippleが有効です。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.7.0" %}更新: rippled 1.7.0{% /badge %} | +| `authorized` | 真偽値 | (省略される場合があります)このアカウントが[このトラストラインを承認した](../../../../concepts/tokens/fungible-tokens/authorized-trust-lines.md)場合は、`true`。省略されている場合は、`false`と同じです。 | +| `peer_authorized` | 真偽値 | (省略される場合があります)ピアアカウントが[このトラストラインを承認した](../../../../concepts/tokens/fungible-tokens/authorized-trust-lines.md)場合は`true`。省略されている場合は、`false`と同じです。 | +| `freeze` | 真偽値 | (省略される場合があります)このアカウントがこのトラストラインを[フリーズ](../../../../concepts/tokens/fungible-tokens/freezes.md)した場合は`true`。省略されている場合は、`false`と同じです。 | +| `freeze_peer` | 真偽値 | (省略される場合があります)ピアアカウントがこのトラストラインを[フリーズ](../../../../concepts/tokens/fungible-tokens/freezes.md)した場合は、`true`。省略されている場合は、`false`と同じです。 | ## 考えられるエラー -* いずれかの[汎用エラータイプ][]。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* `actNotFound` - リクエストの`account`フィールドに指定されている[アドレス][]が、レジャーのアカウントに対応していません。 -* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバが保有していません。 -* `actMalformed` - 指定されている`marker`フィールドが受け入れられない場合。 +- いずれかの[汎用エラータイプ][]。 +- `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 +- `actNotFound` - リクエストの`account`フィールドに指定されている[アドレス][]が、レジャーのアカウントに対応していません。 +- `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバが保有していません。 +- `actMalformed` - 指定されている`marker`フィールドが受け入れられない場合。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_nfts.md b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_nfts.md index 36a0318b4d..7cb4dafd03 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_nfts.md +++ b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_nfts.md @@ -2,11 +2,13 @@ html: account_nfts.html parent: account-methods.html seo: - description: アカウントのすべてのNFTのリストを取得します。 + description: アカウントのすべてのNFTのリストを取得します。 labels: - 非代替性トークン, NFT --- + # account_nfts + [[ソース]](https://github.com/xrplf/rippled/blob/master/src/ripple/rpc/handlers/AccountObjects.cpp "ソース") `account_nfts`メソッドは、指定したアカウントの`NFToken`オブジェクトの一覧を返します。 @@ -14,6 +16,7 @@ labels: {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} ## リクエストのフォーマット + リクエストのフォーマットの例 {% raw-partial file="/@l10n/ja/docs/_snippets/no-cli-syntax.md" /%} @@ -21,6 +24,7 @@ labels: {% tabs %} {% tab label="WebSocket" %} + ```json { "command": "account_nfts", @@ -28,18 +32,23 @@ labels: "ledger_index": "validated" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { "method": "account_nfts", - "params": [{ - "account": "rsuHaTvJh1bDmDoxX9QcKP7HEBSBt4XsHx", - "ledger_index": "validated" - }] + "params": [ + { + "account": "rsuHaTvJh1bDmDoxX9QcKP7HEBSBt4XsHx", + "ledger_index": "validated" + } + ] } ``` + {% /tab %} {% /tabs %} @@ -48,21 +57,22 @@ labels: リクエストには以下のパラメーターが含まれます。 -| フィールド | 型 | 説明 | -|:---------------|:-----------------|:-----------------------------------------| -| `account` | 文字列 | アカウントの一意の識別子で、通常はアカウントの[アドレス][]です。このリクエストは、このアカウントが所有するNFTのリストを返します。 | -| `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーのバージョンを示す20バイトの16進数の文字列。([レジャーの指定][]を参照)。 | -| `ledger_index` | 文字列 または 数値 | _(省略可)_ 使用するレジャーの[レジャーインデックス][]、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]を参照)。 | -| `limit` | 整数 | _(省略可)_ 取得する[トークンのページ][NFTokenPage オブジェクト]の数を制限します。各ページには最大32個のNFTを含めることができます。`limit`の値は20以上・400以下で指定します。この範囲外の正の値は、最も近い有効な値に置き換えられます。デフォルトは100です。 | -| `marker` | [マーカー][] | _(省略可)_ 以前のページ分割されたレスポンスの値。そのレスポンスが終了したところからデータの取得を再開します。 | - +| フィールド | 型 | 説明 | +| :------------- | :----------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `account` | 文字列 | アカウントの一意の識別子で、通常はアカウントの[アドレス][]です。このリクエストは、このアカウントが所有するNFTのリストを返します。 | +| `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーのバージョンを示す20バイトの16進数の文字列。([レジャーの指定][]を参照)。 | +| `ledger_index` | 文字列 または 数値 | _(省略可)_ 使用するレジャーの[レジャーインデックス][]、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]を参照)。 | +| `limit` | 整数 | _(省略可)_ 取得する[トークンのページ][NFTokenPage オブジェクト]の数を制限します。各ページには最大32個のNFTを含めることができます。`limit`の値は20以上・400以下で指定します。この範囲外の正の値は、最も近い有効な値に置き換えられます。デフォルトは100です。 | +| `marker` | [マーカー][] | _(省略可)_ 以前のページ分割されたレスポンスの値。そのレスポンスが終了したところからデータの取得を再開します。 | ## レスポンスのフォーマット + 処理が成功したレスポンスの例: {% tabs %} {% tab label="WebSocket" %} + ```json { "result": { @@ -93,9 +103,11 @@ labels: "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { "result": { @@ -125,39 +137,40 @@ labels: } } ``` + {% /tab %} {% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 -| `Field` | 型 | 説明 | -|:-----------------------|:----------------------------|:----------------------------------------| -| `account` | 文字列 | NFTの一覧を所有するアカウント | -| `account_nfts` | 配列 | アカウントが所有するNFTのリストで、**NFTオブジェクト**(下記参照)としてフォーマットされます。 | -| `ledger_hash` | 文字列 | _(省略可能)_ このレスポンスの生成に使用されたレジャーの識別ハッシュ。 | -| `ledger_index` | 数値 - [レジャーインデックス][] | _(省略可能)_ このレスポンスの生成に使用されたレジャーのインデックス。 | -| `ledger_current_index` | 数値 - [レジャーインデックス][] | _(省略可能)_ このレスポンスの生成に使用された、現在進行中のレジャーバージョンのレジャーインデックス。 | -| `validated` | ブール値 | このレスポンスに含まれ、`true`に設定されている場合、このレスポンスの情報は検証済みのレジャーバージョンから取得したものです。そうでない場合、情報は変更される可能性があります。 | +| `Field` | 型 | 説明 | +| :--------------------- | :------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `account` | 文字列 | NFTの一覧を所有するアカウント | +| `account_nfts` | 配列 | アカウントが所有するNFTのリストで、**NFTオブジェクト**(下記参照)としてフォーマットされます。 | +| `ledger_hash` | 文字列 | _(省略可能)_ このレスポンスの生成に使用されたレジャーの識別ハッシュ。 | +| `ledger_index` | 数値 - [レジャーインデックス][] | _(省略可能)_ このレスポンスの生成に使用されたレジャーのインデックス。 | +| `ledger_current_index` | 数値 - [レジャーインデックス][] | _(省略可能)_ このレスポンスの生成に使用された、現在進行中のレジャーバージョンのレジャーインデックス。 | +| `validated` | ブール値 | このレスポンスに含まれ、`true`に設定されている場合、このレスポンスの情報は検証済みのレジャーバージョンから取得したものです。そうでない場合、情報は変更される可能性があります。 | ### NFTオブジェクト `account_nfts`配列の各オブジェクトは1つの[NFToken][]を表し、以下のフィールドを保持しています -| `Field` | 型 | 説明 | -|:---------------|:------------------- |:-------------------------------------| -| `Flags` | 数値 | このNFTokenで有効なブール値フラグのビットマップ。指定できる値については、[NFTokenフラグ](../../../protocol/data-types/nftoken.md#nftoken-フラグ)をご覧ください。 | -| `Issuer` | 文字列 - [アドレス][] | このNFTokenを発行したアカウント。 | -| `NFTokenID` | 文字列 | このNFTokenの一意の識別子(16進数)。 | -| `NFTokenTaxon` | 数値 | このトークンの[taxon](../../../protocol/data-types/nftoken.md#nftokentaxon分類群)の非乱数化した値。同じtaxonを持つ複数のトークンは、一つの限定されたシリーズのインスタンスを表すかもしれません。 | -| `URI` | String | このNFTokenに関連付けられた16進数のURI データ。 | -| `nft_serial` | 文字列 | このNFTokenのトークンシーケンス番号。 | +| `Field` | 型 | 説明 | +| :------------- | :-------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Flags` | 数値 | このNFTokenで有効なブール値フラグのビットマップ。指定できる値については、[NFTokenフラグ](../../../protocol/data-types/nftoken.md#nftoken-フラグ)をご覧ください。 | +| `Issuer` | 文字列 - [アドレス][] | このNFTokenを発行したアカウント。 | +| `NFTokenID` | 文字列 | このNFTokenの一意の識別子(16進数)。 | +| `NFTokenTaxon` | 数値 | このトークンの[taxon](../../../protocol/data-types/nftoken.md#nftokentaxon分類群)の非乱数化した値。同じtaxonを持つ複数のトークンは、一つの限定されたシリーズのインスタンスを表すかもしれません。 | +| `URI` | String | このNFTokenに関連付けられた16進数のURI データ。 | +| `nft_serial` | 文字列 | このNFTokenのトークンシーケンス番号。 | ## 考えられるエラー -* いずれかの[汎用エラータイプ][]。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* `actNotFound` - リクエストの`account`フィールドに指定されている[アドレス][]が、レジャーのアカウントに対応していません。 -* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバが保有していません。 +- いずれかの[汎用エラータイプ][]。 +- `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 +- `actNotFound` - リクエストの`account`フィールドに指定されている[アドレス][]が、レジャーのアカウントに対応していません。 +- `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバが保有していません。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_objects.md b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_objects.md index ec783c03e6..abec93e6e6 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_objects.md +++ b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_objects.md @@ -2,12 +2,14 @@ html: account_objects.html parent: account-methods.html seo: - description: アカウントが所有するすべてのオブジェクトを返します。 + description: アカウントが所有するすべてのオブジェクトを返します。 labels: - アカウント - データ保持 --- + # account_objects + [[ソース]](https://github.com/XRPLF/rippled/blob/399c43cae6e90a428e9ce6a988123972b0f03c99/src/ripple/rpc/handlers/AccountObjects.cpp "Source") `account_objects`コマンドは、アカウントが所有するすべてのレジャーエントリの生[レジャーフォーマット][]を返します。アカウントのトラストラインと残高の概要については、[account_linesメソッド][]をご覧ください。 @@ -26,13 +28,14 @@ labels: - アカウントの[SignerList](../../../protocol/ledger-data/ledger-entry-types/signerlist.md): アカウントで[マルチシグ](../../../../concepts/accounts/multi-signing.md)が有効な場合。 - [Ticketエントリ](../../../../concepts/accounts/tickets.md): Ticket情報。 - ## リクエストのフォーマット + リクエストのフォーマットの例: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 1, @@ -44,30 +47,35 @@ labels: "limit": 10 } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "account_objects", - "params": [ - { - "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "ledger_index": "validated", - "type": "state", - "deletion_blockers_only": false, - "limit": 10 - } - ] + "method": "account_objects", + "params": [ + { + "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "ledger_index": "validated", + "type": "state", + "deletion_blockers_only": false, + "limit": 10 + } + ] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh #Syntax: account_objects [] rippled account_objects r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 validated ``` + {% /tab %} {% /tabs %} @@ -76,15 +84,15 @@ rippled account_objects r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 validated リクエストには以下のパラメーターが含まれます。 -| `Field` | 型 | 必須? | 説明 | -|:-------------------------|:----------------------|:-----|:---------------| -| `account` | 文字列 | はい | アカウントの一意のIDであり、最も一般的にはアカウントのアドレスが使用されます。 | -| `deletion_blockers_only` | Boolean | いいえ | `true`の場合、このアカウントが[削除](../../../../concepts/accounts/deleting-accounts.md)されるのをブロックするオブジェクトのみをレスポンスに含めます。デフォルトは`false`です。 {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.4.0" %}新規: rippled 1.4.0{% /badge %} | -| `ledger_hash` | [ハッシュ][] | いいえ | 使用するレジャーバージョンの20バイトの16進文字列。([レジャーの指定][]をご覧ください) | -| `ledger_index` | [レジャーインデックス][] | いいえ | 使用するレジャーの[レジャーインデックス][]、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]ををご覧ください) | -| `limit` | 符号なし整数 | いいえ | 結果に含めることができるオブジェクトの最大数。非管理者接続では10以上400以下の範囲で値を指定する必要があります。デフォルトでは200です。 | -| `marker` | [マーカー][] | いいえ | 以前にページネーションされたレスポンスの値。そのレスポンスを停止した箇所からデータの取得を再開します。 | -| `type` | 文字列 | いいえ | 指定されている場合、結果をフィルタリングしてこのタイプのレジャーオブジェクトのみが含まれるようにします。有効なタイプは`bridge`, `check`、`deposit_preauth`、`escrow`、`nft_offer`, `nft_page`, `offer`、`payment_channel`、`signer_list`、`state`(トラストライン)そして`ticket`です。 | +| `Field` | 型 | 必須? | 説明 | +| :----------------------- | :----------------------- | :----- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `account` | 文字列 | はい | アカウントの一意のIDであり、最も一般的にはアカウントのアドレスが使用されます。 | +| `deletion_blockers_only` | Boolean | いいえ | `true`の場合、このアカウントが[削除](../../../../concepts/accounts/deleting-accounts.md)されるのをブロックするオブジェクトのみをレスポンスに含めます。デフォルトは`false`です。 {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.4.0" %}新規: rippled 1.4.0{% /badge %} | +| `ledger_hash` | [ハッシュ][] | いいえ | 使用するレジャーバージョンの20バイトの16進文字列。([レジャーの指定][]をご覧ください) | +| `ledger_index` | [レジャーインデックス][] | いいえ | 使用するレジャーの[レジャーインデックス][]、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]ををご覧ください) | +| `limit` | 符号なし整数 | いいえ | 結果に含めることができるオブジェクトの最大数。非管理者接続では10以上400以下の範囲で値を指定する必要があります。デフォルトでは200です。 | +| `marker` | [マーカー][] | いいえ | 以前にページネーションされたレスポンスの値。そのレスポンスを停止した箇所からデータの取得を再開します。 | +| `type` | 文字列 | いいえ | 指定されている場合、結果をフィルタリングしてこのタイプのレジャーオブジェクトのみが含まれるようにします。有効なタイプは`bridge`, `check`、`deposit_preauth`、`escrow`、`nft_offer`, `nft_page`, `offer`、`payment_channel`、`signer_list`、`state`(トラストライン)そして`ticket`です。 | {% admonition type="info" name="注記" %}`account_objects`コマンドのコマンドラインインタフェースは`type`フィールドを受け付けません。代わりにコマンドラインでJSON-RPC形式のリクエストを送信するには[jsonメソッド][]を使用してください。{% /admonition %} @@ -95,266 +103,269 @@ rippled account_objects r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 validated {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": 8, - "status": "success", - "type": "response", - "result": { - "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "account_objects": [ - { - "Balance": { - "currency": "ASP", - "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value": "0" - }, - "Flags": 65536, - "HighLimit": { - "currency": "ASP", - "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value": "0" - }, - "HighNode": "0000000000000000", - "LedgerEntryType": "RippleState", - "LowLimit": { - "currency": "ASP", - "issuer": "r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z", - "value": "10" - }, - "LowNode": "0000000000000000", - "PreviousTxnID": "BF7555B0F018E3C5E2A3FF9437A1A5092F32903BE246202F988181B9CED0D862", - "PreviousTxnLgrSeq": 1438879, - "index": "2243B0B630EA6F7330B654EFA53E27A7609D9484E535AB11B7F946DF3D247CE9" - }, - { - "Balance": { - "currency": "XAU", - "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value": "0" - }, - "Flags": 3342336, - "HighLimit": { - "currency": "XAU", - "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value": "0" - }, - "HighNode": "0000000000000000", - "LedgerEntryType": "RippleState", - "LowLimit": { - "currency": "XAU", - "issuer": "r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z", - "value": "0" - }, - "LowNode": "0000000000000000", - "PreviousTxnID": "79B26D7D34B950AC2C2F91A299A6888FABB376DD76CFF79D56E805BF439F6942", - "PreviousTxnLgrSeq": 5982530, - "index": "9ED4406351B7A511A012A9B5E7FE4059FA2F7650621379C0013492C315E25B97" - }, - { - "Balance": { - "currency": "USD", - "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value": "0" - }, - "Flags": 1114112, - "HighLimit": { - "currency": "USD", - "issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "value": "0" - }, - "HighNode": "0000000000000000", - "LedgerEntryType": "RippleState", - "LowLimit": { - "currency": "USD", - "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value": "5" - }, - "LowNode": "0000000000000000", - "PreviousTxnID": "6FE8C824364FB1195BCFEDCB368DFEE3980F7F78D3BF4DC4174BB4C86CF8C5CE", - "PreviousTxnLgrSeq": 10555014, - "index": "2DECFAC23B77D5AEA6116C15F5C6D4669EBAEE9E7EE050A40FE2B1E47B6A9419" - }, - { - "Balance": { - "currency": "MXN", - "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value": "481.992867407479" - }, - "Flags": 65536, - "HighLimit": { - "currency": "MXN", - "issuer": "rHpXfibHgSb64n8kK9QWDpdbfqSpYbM9a4", - "value": "0" - }, - "HighNode": "0000000000000000", - "LedgerEntryType": "RippleState", - "LowLimit": { - "currency": "MXN", - "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value": "1000" - }, - "LowNode": "0000000000000000", - "PreviousTxnID": "A467BACE5F183CDE1F075F72435FE86BAD8626ED1048EDEFF7562A4CC76FD1C5", - "PreviousTxnLgrSeq": 3316170, - "index": "EC8B9B6B364AF6CB6393A423FDD2DDBA96375EC772E6B50A3581E53BFBDFDD9A" - }, - { - "Balance": { - "currency": "EUR", - "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value": "0.793598266778297" - }, - "Flags": 1114112, - "HighLimit": { - "currency": "EUR", - "issuer": "rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", - "value": "0" - }, - "HighNode": "0000000000000000", - "LedgerEntryType": "RippleState", - "LowLimit": { - "currency": "EUR", - "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value": "1" - }, - "LowNode": "0000000000000000", - "PreviousTxnID": "E9345D44433EA368CFE1E00D84809C8E695C87FED18859248E13662D46A0EC46", - "PreviousTxnLgrSeq": 5447146, - "index": "4513749B30F4AF8DA11F077C448128D6486BF12854B760E4E5808714588AA915" - }, - { - "Balance": { - "currency": "CNY", - "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value": "0" - }, - "Flags": 2228224, - "HighLimit": { - "currency": "CNY", - "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value": "3" - }, - "HighNode": "0000000000000000", - "LedgerEntryType": "RippleState", - "LowLimit": { - "currency": "CNY", - "issuer": "rnuF96W4SZoCJmbHYBFoJZpR8eCaxNvekK", - "value": "0" - }, - "LowNode": "0000000000000008", - "PreviousTxnID": "2FDDC81F4394695B01A47913BEC4281AC9A283CC8F903C14ADEA970F60E57FCF", - "PreviousTxnLgrSeq": 5949673, - "index": "578C327DA8944BDE2E10C9BA36AFA2F43E06C8D1E8819FB225D266CBBCFDE5CE" - }, - { - "Balance": { - "currency": "DYM", - "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value": "1.336889190631542" - }, - "Flags": 65536, - "HighLimit": { - "currency": "DYM", - "issuer": "rGwUWgN5BEg3QGNY3RX2HfYowjUTZdid3E", - "value": "0" - }, - "HighNode": "0000000000000000", - "LedgerEntryType": "RippleState", - "LowLimit": { - "currency": "DYM", - "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value": "3" - }, - "LowNode": "0000000000000000", - "PreviousTxnID": "6DA2BD02DFB83FA4DAFC2651860B60071156171E9C021D9E0372A61A477FFBB1", - "PreviousTxnLgrSeq": 8818732, - "index": "5A2A5FF12E71AEE57564E624117BBA68DEF78CD564EF6259F92A011693E027C7" - }, - { - "Balance": { - "currency": "CHF", - "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value": "-0.3488146605801446" - }, - "Flags": 131072, - "HighLimit": { - "currency": "CHF", - "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value": "0" - }, - "HighNode": "0000000000000000", - "LedgerEntryType": "RippleState", - "LowLimit": { - "currency": "CHF", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "0" - }, - "LowNode": "000000000000008C", - "PreviousTxnID": "722394372525A13D1EAAB005642F50F05A93CF63F7F472E0F91CDD6D38EB5869", - "PreviousTxnLgrSeq": 2687590, - "index": "F2DBAD20072527F6AD02CE7F5A450DBC72BE2ABB91741A8A3ADD30D5AD7A99FB" - }, - { - "Balance": { - "currency": "BTC", - "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value": "0" - }, - "Flags": 131072, - "HighLimit": { - "currency": "BTC", - "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value": "3" - }, - "HighNode": "0000000000000000", - "LedgerEntryType": "RippleState", - "LowLimit": { - "currency": "BTC", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "0" - }, - "LowNode": "0000000000000043", - "PreviousTxnID": "03EDF724397D2DEE70E49D512AECD619E9EA536BE6CFD48ED167AE2596055C9A", - "PreviousTxnLgrSeq": 8317037, - "index": "767C12AF647CDF5FEB9019B37018748A79C50EDAF87E8D4C7F39F78AA7CA9765" - }, - { - "Balance": { - "currency": "USD", - "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value": "-16.00534471983042" - }, - "Flags": 131072, - "HighLimit": { - "currency": "USD", - "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value": "5000" - }, - "HighNode": "0000000000000000", - "LedgerEntryType": "RippleState", - "LowLimit": { - "currency": "USD", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "0" - }, - "LowNode": "000000000000004A", - "PreviousTxnID": "CFFF5CFE623C9543308C6529782B6A6532207D819795AAFE85555DB8BF390FE7", - "PreviousTxnLgrSeq": 14365854, - "index": "826CF5BFD28F3934B518D0BDF3231259CBD3FD0946E3C3CA0C97D2C75D2D1A09" - } - ], - "ledger_hash": "053DF17D2289D1C4971C22F235BC1FCA7D4B3AE966F842E5819D0749E0B8ECD3", - "ledger_index": 14378733, - "limit": 10, - "marker": "F60ADF645E78B69857D2E4AEC8B7742FEABC8431BD8611D099B428C3E816DF93,94A9F05FEF9A153229E2E997E64919FD75AAE2028C8153E8EBDB4440BD3ECBB5", - "validated": true - } + "id": 8, + "status": "success", + "type": "response", + "result": { + "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "account_objects": [ + { + "Balance": { + "currency": "ASP", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "0" + }, + "Flags": 65536, + "HighLimit": { + "currency": "ASP", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "0" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "ASP", + "issuer": "r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z", + "value": "10" + }, + "LowNode": "0000000000000000", + "PreviousTxnID": "BF7555B0F018E3C5E2A3FF9437A1A5092F32903BE246202F988181B9CED0D862", + "PreviousTxnLgrSeq": 1438879, + "index": "2243B0B630EA6F7330B654EFA53E27A7609D9484E535AB11B7F946DF3D247CE9" + }, + { + "Balance": { + "currency": "XAU", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "0" + }, + "Flags": 3342336, + "HighLimit": { + "currency": "XAU", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "0" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "XAU", + "issuer": "r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z", + "value": "0" + }, + "LowNode": "0000000000000000", + "PreviousTxnID": "79B26D7D34B950AC2C2F91A299A6888FABB376DD76CFF79D56E805BF439F6942", + "PreviousTxnLgrSeq": 5982530, + "index": "9ED4406351B7A511A012A9B5E7FE4059FA2F7650621379C0013492C315E25B97" + }, + { + "Balance": { + "currency": "USD", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "0" + }, + "Flags": 1114112, + "HighLimit": { + "currency": "USD", + "issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "value": "0" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "USD", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "5" + }, + "LowNode": "0000000000000000", + "PreviousTxnID": "6FE8C824364FB1195BCFEDCB368DFEE3980F7F78D3BF4DC4174BB4C86CF8C5CE", + "PreviousTxnLgrSeq": 10555014, + "index": "2DECFAC23B77D5AEA6116C15F5C6D4669EBAEE9E7EE050A40FE2B1E47B6A9419" + }, + { + "Balance": { + "currency": "MXN", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "481.992867407479" + }, + "Flags": 65536, + "HighLimit": { + "currency": "MXN", + "issuer": "rHpXfibHgSb64n8kK9QWDpdbfqSpYbM9a4", + "value": "0" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "MXN", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "1000" + }, + "LowNode": "0000000000000000", + "PreviousTxnID": "A467BACE5F183CDE1F075F72435FE86BAD8626ED1048EDEFF7562A4CC76FD1C5", + "PreviousTxnLgrSeq": 3316170, + "index": "EC8B9B6B364AF6CB6393A423FDD2DDBA96375EC772E6B50A3581E53BFBDFDD9A" + }, + { + "Balance": { + "currency": "EUR", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "0.793598266778297" + }, + "Flags": 1114112, + "HighLimit": { + "currency": "EUR", + "issuer": "rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", + "value": "0" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "EUR", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "1" + }, + "LowNode": "0000000000000000", + "PreviousTxnID": "E9345D44433EA368CFE1E00D84809C8E695C87FED18859248E13662D46A0EC46", + "PreviousTxnLgrSeq": 5447146, + "index": "4513749B30F4AF8DA11F077C448128D6486BF12854B760E4E5808714588AA915" + }, + { + "Balance": { + "currency": "CNY", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "0" + }, + "Flags": 2228224, + "HighLimit": { + "currency": "CNY", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "3" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "CNY", + "issuer": "rnuF96W4SZoCJmbHYBFoJZpR8eCaxNvekK", + "value": "0" + }, + "LowNode": "0000000000000008", + "PreviousTxnID": "2FDDC81F4394695B01A47913BEC4281AC9A283CC8F903C14ADEA970F60E57FCF", + "PreviousTxnLgrSeq": 5949673, + "index": "578C327DA8944BDE2E10C9BA36AFA2F43E06C8D1E8819FB225D266CBBCFDE5CE" + }, + { + "Balance": { + "currency": "DYM", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "1.336889190631542" + }, + "Flags": 65536, + "HighLimit": { + "currency": "DYM", + "issuer": "rGwUWgN5BEg3QGNY3RX2HfYowjUTZdid3E", + "value": "0" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "DYM", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "3" + }, + "LowNode": "0000000000000000", + "PreviousTxnID": "6DA2BD02DFB83FA4DAFC2651860B60071156171E9C021D9E0372A61A477FFBB1", + "PreviousTxnLgrSeq": 8818732, + "index": "5A2A5FF12E71AEE57564E624117BBA68DEF78CD564EF6259F92A011693E027C7" + }, + { + "Balance": { + "currency": "CHF", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "-0.3488146605801446" + }, + "Flags": 131072, + "HighLimit": { + "currency": "CHF", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "0" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "CHF", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "0" + }, + "LowNode": "000000000000008C", + "PreviousTxnID": "722394372525A13D1EAAB005642F50F05A93CF63F7F472E0F91CDD6D38EB5869", + "PreviousTxnLgrSeq": 2687590, + "index": "F2DBAD20072527F6AD02CE7F5A450DBC72BE2ABB91741A8A3ADD30D5AD7A99FB" + }, + { + "Balance": { + "currency": "BTC", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "0" + }, + "Flags": 131072, + "HighLimit": { + "currency": "BTC", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "3" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "BTC", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "0" + }, + "LowNode": "0000000000000043", + "PreviousTxnID": "03EDF724397D2DEE70E49D512AECD619E9EA536BE6CFD48ED167AE2596055C9A", + "PreviousTxnLgrSeq": 8317037, + "index": "767C12AF647CDF5FEB9019B37018748A79C50EDAF87E8D4C7F39F78AA7CA9765" + }, + { + "Balance": { + "currency": "USD", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "-16.00534471983042" + }, + "Flags": 131072, + "HighLimit": { + "currency": "USD", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "5000" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "0" + }, + "LowNode": "000000000000004A", + "PreviousTxnID": "CFFF5CFE623C9543308C6529782B6A6532207D819795AAFE85555DB8BF390FE7", + "PreviousTxnLgrSeq": 14365854, + "index": "826CF5BFD28F3934B518D0BDF3231259CBD3FD0946E3C3CA0C97D2C75D2D1A09" + } + ], + "ledger_hash": "053DF17D2289D1C4971C22F235BC1FCA7D4B3AE966F842E5819D0749E0B8ECD3", + "ledger_index": 14378733, + "limit": 10, + "marker": "F60ADF645E78B69857D2E4AEC8B7742FEABC8431BD8611D099B428C3E816DF93,94A9F05FEF9A153229E2E997E64919FD75AAE2028C8153E8EBDB4440BD3ECBB5", + "validated": true + } } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK { @@ -611,620 +622,623 @@ rippled account_objects r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 validated } } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```json { - "result" : { - "account" : "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "account_objects" : [ - { - "Balance" : { - "currency" : "ASP", - "issuer" : "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value" : "0" - }, - "Flags" : 65536, - "HighLimit" : { - "currency" : "ASP", - "issuer" : "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value" : "0" - }, - "HighNode" : "0000000000000000", - "LedgerEntryType" : "RippleState", - "LowLimit" : { - "currency" : "ASP", - "issuer" : "r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z", - "value" : "10" - }, - "LowNode" : "0000000000000000", - "PreviousTxnID" : "BF7555B0F018E3C5E2A3FF9437A1A5092F32903BE246202F988181B9CED0D862", - "PreviousTxnLgrSeq" : 1438879, - "index" : "2243B0B630EA6F7330B654EFA53E27A7609D9484E535AB11B7F946DF3D247CE9" - }, - { - "Balance" : { - "currency" : "XAU", - "issuer" : "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value" : "0" - }, - "Flags" : 3342336, - "HighLimit" : { - "currency" : "XAU", - "issuer" : "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value" : "0" - }, - "HighNode" : "0000000000000000", - "LedgerEntryType" : "RippleState", - "LowLimit" : { - "currency" : "XAU", - "issuer" : "r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z", - "value" : "0" - }, - "LowNode" : "0000000000000000", - "PreviousTxnID" : "79B26D7D34B950AC2C2F91A299A6888FABB376DD76CFF79D56E805BF439F6942", - "PreviousTxnLgrSeq" : 5982530, - "index" : "9ED4406351B7A511A012A9B5E7FE4059FA2F7650621379C0013492C315E25B97" - }, - { - "Balance" : { - "currency" : "USD", - "issuer" : "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value" : "5" - }, - "Flags" : 1114112, - "HighLimit" : { - "currency" : "USD", - "issuer" : "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "value" : "0" - }, - "HighNode" : "0000000000000000", - "LedgerEntryType" : "RippleState", - "LowLimit" : { - "currency" : "USD", - "issuer" : "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value" : "5" - }, - "LowNode" : "0000000000000000", - "PreviousTxnID" : "2A5C5D95880A254A2C57BB5332558205BC33B9F2B38D359A170283CB4CBD080A", - "PreviousTxnLgrSeq" : 39498567, - "index" : "2DECFAC23B77D5AEA6116C15F5C6D4669EBAEE9E7EE050A40FE2B1E47B6A9419" - }, - { - "Balance" : { - "currency" : "MXN", - "issuer" : "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value" : "481.992867407479" - }, - "Flags" : 65536, - "HighLimit" : { - "currency" : "MXN", - "issuer" : "rHpXfibHgSb64n8kK9QWDpdbfqSpYbM9a4", - "value" : "0" - }, - "HighNode" : "0000000000000000", - "LedgerEntryType" : "RippleState", - "LowLimit" : { - "currency" : "MXN", - "issuer" : "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value" : "1000" - }, - "LowNode" : "0000000000000000", - "PreviousTxnID" : "A467BACE5F183CDE1F075F72435FE86BAD8626ED1048EDEFF7562A4CC76FD1C5", - "PreviousTxnLgrSeq" : 3316170, - "index" : "EC8B9B6B364AF6CB6393A423FDD2DDBA96375EC772E6B50A3581E53BFBDFDD9A" - }, - { - "Balance" : { - "currency" : "EUR", - "issuer" : "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value" : "0.793598266778297" - }, - "Flags" : 1114112, - "HighLimit" : { - "currency" : "EUR", - "issuer" : "rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", - "value" : "0" - }, - "HighNode" : "0000000000000000", - "LedgerEntryType" : "RippleState", - "LowLimit" : { - "currency" : "EUR", - "issuer" : "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value" : "1" - }, - "LowNode" : "0000000000000000", - "PreviousTxnID" : "E9345D44433EA368CFE1E00D84809C8E695C87FED18859248E13662D46A0EC46", - "PreviousTxnLgrSeq" : 5447146, - "index" : "4513749B30F4AF8DA11F077C448128D6486BF12854B760E4E5808714588AA915" - }, - { - "Balance" : { - "currency" : "CNY", - "issuer" : "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value" : "0" - }, - "Flags" : 2228224, - "HighLimit" : { - "currency" : "CNY", - "issuer" : "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value" : "3" - }, - "HighNode" : "0000000000000000", - "LedgerEntryType" : "RippleState", - "LowLimit" : { - "currency" : "CNY", - "issuer" : "rnuF96W4SZoCJmbHYBFoJZpR8eCaxNvekK", - "value" : "0" - }, - "LowNode" : "0000000000000008", - "PreviousTxnID" : "2FDDC81F4394695B01A47913BEC4281AC9A283CC8F903C14ADEA970F60E57FCF", - "PreviousTxnLgrSeq" : 5949673, - "index" : "578C327DA8944BDE2E10C9BA36AFA2F43E06C8D1E8819FB225D266CBBCFDE5CE" - }, - { - "Balance" : { - "currency" : "DYM", - "issuer" : "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value" : "1.336889190631542" - }, - "Flags" : 65536, - "HighLimit" : { - "currency" : "DYM", - "issuer" : "rGwUWgN5BEg3QGNY3RX2HfYowjUTZdid3E", - "value" : "0" - }, - "HighNode" : "0000000000000000", - "LedgerEntryType" : "RippleState", - "LowLimit" : { - "currency" : "DYM", - "issuer" : "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value" : "3" - }, - "LowNode" : "0000000000000000", - "PreviousTxnID" : "6DA2BD02DFB83FA4DAFC2651860B60071156171E9C021D9E0372A61A477FFBB1", - "PreviousTxnLgrSeq" : 8818732, - "index" : "5A2A5FF12E71AEE57564E624117BBA68DEF78CD564EF6259F92A011693E027C7" - }, - { - "Balance" : { - "currency" : "CHF", - "issuer" : "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value" : "-0.3488146605801446" - }, - "Flags" : 131072, - "HighLimit" : { - "currency" : "CHF", - "issuer" : "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value" : "0" - }, - "HighNode" : "0000000000000000", - "LedgerEntryType" : "RippleState", - "LowLimit" : { - "currency" : "CHF", - "issuer" : "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value" : "0" - }, - "LowNode" : "000000000000008C", - "PreviousTxnID" : "722394372525A13D1EAAB005642F50F05A93CF63F7F472E0F91CDD6D38EB5869", - "PreviousTxnLgrSeq" : 2687590, - "index" : "F2DBAD20072527F6AD02CE7F5A450DBC72BE2ABB91741A8A3ADD30D5AD7A99FB" - }, - { - "Balance" : { - "currency" : "BTC", - "issuer" : "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value" : "0" - }, - "Flags" : 131072, - "HighLimit" : { - "currency" : "BTC", - "issuer" : "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value" : "3" - }, - "HighNode" : "0000000000000000", - "LedgerEntryType" : "RippleState", - "LowLimit" : { - "currency" : "BTC", - "issuer" : "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value" : "0" - }, - "LowNode" : "0000000000000043", - "PreviousTxnID" : "03EDF724397D2DEE70E49D512AECD619E9EA536BE6CFD48ED167AE2596055C9A", - "PreviousTxnLgrSeq" : 8317037, - "index" : "767C12AF647CDF5FEB9019B37018748A79C50EDAF87E8D4C7F39F78AA7CA9765" - }, - { - "Balance" : { - "currency" : "USD", - "issuer" : "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value" : "-11.68225001668339" - }, - "Flags" : 131072, - "HighLimit" : { - "currency" : "USD", - "issuer" : "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value" : "5000" - }, - "HighNode" : "0000000000000000", - "LedgerEntryType" : "RippleState", - "LowLimit" : { - "currency" : "USD", - "issuer" : "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value" : "0" - }, - "LowNode" : "000000000000004A", - "PreviousTxnID" : "8C55AFC2A2AA42B5CE624AEECDB3ACFDD1E5379D4E5BF74A8460C5E97EF8706B", - "PreviousTxnLgrSeq" : 43251698, - "index" : "826CF5BFD28F3934B518D0BDF3231259CBD3FD0946E3C3CA0C97D2C75D2D1A09" - }, - { - "Balance" : { - "currency" : "BTC", - "issuer" : "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value" : "0.00111" - }, - "Flags" : 65536, - "HighLimit" : { - "currency" : "BTC", - "issuer" : "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value" : "0" - }, - "HighNode" : "0000000000000000", - "LedgerEntryType" : "RippleState", - "LowLimit" : { - "currency" : "BTC", - "issuer" : "rpgKWEmNqSDAGFhy5WDnsyPqfQxbWxKeVd", - "value" : "10" - }, - "LowNode" : "0000000000000000", - "PreviousTxnID" : "74F2F2A731C1350492FA03F8C67AF6C05EEC391160AACC04BF99329D9EAB0052", - "PreviousTxnLgrSeq" : 585437, - "index" : "94A9F05FEF9A153229E2E997E64919FD75AAE2028C8153E8EBDB4440BD3ECBB5" - }, - { - "Balance" : { - "currency" : "BTC", - "issuer" : "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value" : "-0.0008744482690504699" - }, - "Flags" : 131072, - "HighLimit" : { - "currency" : "BTC", - "issuer" : "rBJ3YjwXi2MGbg7GVLuTXUWQ8DjL7tDXh4", - "value" : "10" - }, - "HighNode" : "0000000000000000", - "LedgerEntryType" : "RippleState", - "LowLimit" : { - "currency" : "BTC", - "issuer" : "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value" : "0" - }, - "LowNode" : "0000000000000000", - "PreviousTxnID" : "95221CD154317176B5748202A2E820D7A336597816E9787C27E3E4F25576877F", - "PreviousTxnLgrSeq" : 8208104, - "index" : "BC2AC65D7F9AD5CDAD131DEFE248727CA8A0FC219A33A3264E6202F50B4733C0" - }, - { - "Balance" : { - "currency" : "USD", - "issuer" : "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value" : "0" - }, - "Flags" : 65536, - "HighLimit" : { - "currency" : "USD", - "issuer" : "rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", - "value" : "0" - }, - "HighNode" : "0000000000000002", - "LedgerEntryType" : "RippleState", - "LowLimit" : { - "currency" : "USD", - "issuer" : "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value" : "1" - }, - "LowNode" : "0000000000000000", - "PreviousTxnID" : "8C55AFC2A2AA42B5CE624AEECDB3ACFDD1E5379D4E5BF74A8460C5E97EF8706B", - "PreviousTxnLgrSeq" : 43251698, - "index" : "C493ABA2619D0FC6355BA862BC8312DF8266FBE76AFBA9636E857F7EAC874A99" - }, - { - "Balance" : { - "currency" : "CNY", - "issuer" : "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value" : "-9.07619790068559" - }, - "Flags" : 2228224, - "HighLimit" : { - "currency" : "CNY", - "issuer" : "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value" : "100" - }, - "HighNode" : "0000000000000000", - "LedgerEntryType" : "RippleState", - "LowLimit" : { - "currency" : "CNY", - "issuer" : "razqQKzJRdB4UxFPWf5NEpEG3WMkmwgcXA", - "value" : "0" - }, - "LowNode" : "0000000000000005", - "PreviousTxnID" : "8EFE067DA1B2D57C485EFFCF875604548BA990EA00D019B466313D4CEE1E4668", - "PreviousTxnLgrSeq" : 8284705, - "index" : "C8554E6CE903505F631703E73D22D2D4D0662FDA9F524290997DF6B4D760C495" - }, - { - "Balance" : { - "currency" : "JPY", - "issuer" : "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value" : "-7.292695098901099" - }, - "Flags" : 2228224, - "HighLimit" : { - "currency" : "JPY", - "issuer" : "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value" : "0" - }, - "HighNode" : "0000000000000000", - "LedgerEntryType" : "RippleState", - "LowLimit" : { - "currency" : "JPY", - "issuer" : "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value" : "0" - }, - "LowNode" : "0000000000000076", - "PreviousTxnID" : "CE460D85F9AD93752E8EC8BCF4DFFE91DDF08B8C988836D64CB51EB7B447F672", - "PreviousTxnLgrSeq" : 5100078, - "index" : "CB1565898F19916A5EE49CC537B1D43CA075B9B96E82C6892E16EF6DFDEE7865" - }, - { - "Balance" : { - "currency" : "AUX", - "issuer" : "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value" : "0" - }, - "Flags" : 3342336, - "HighLimit" : { - "currency" : "AUX", - "issuer" : "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value" : "0" - }, - "HighNode" : "0000000000000000", - "LedgerEntryType" : "RippleState", - "LowLimit" : { - "currency" : "AUX", - "issuer" : "r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z", - "value" : "0" - }, - "LowNode" : "0000000000000000", - "PreviousTxnID" : "A6964735A14272742E7E10EB5AB5A7CE693473BBB4DAFA488971A15E181132CF", - "PreviousTxnLgrSeq" : 5982528, - "index" : "C61E113C767A9E7B27CD944162FB63EAA24C38C8664E984759821C3ADFFE097E" - }, - { - "Balance" : { - "currency" : "USD", - "issuer" : "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value" : "0.0004557360418801623" - }, - "Flags" : 1114112, - "HighLimit" : { - "currency" : "USD", - "issuer" : "r9vbV3EHvXWjSkeQ6CAcYVPGeq7TuiXY2X", - "value" : "0" - }, - "HighNode" : "0000000000000003", - "LedgerEntryType" : "RippleState", - "LowLimit" : { - "currency" : "USD", - "issuer" : "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value" : "1" - }, - "LowNode" : "0000000000000000", - "PreviousTxnID" : "F8F178712C0C3DA013A774A598B2A004BE6BA3D4542B8448D221A60D8A0D409A", - "PreviousTxnLgrSeq" : 38837233, - "index" : "D43180D7B2EEBB285C9D296590C4D5E5580C814F3026FC4D41FFDF3049FB547F" - }, - { - "Balance" : { - "currency" : "EUR", - "issuer" : "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value" : "-12.41688780720394" - }, - "Flags" : 2228224, - "HighLimit" : { - "currency" : "EUR", - "issuer" : "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value" : "100" - }, - "HighNode" : "0000000000000000", - "LedgerEntryType" : "RippleState", - "LowLimit" : { - "currency" : "EUR", - "issuer" : "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value" : "0" - }, - "LowNode" : "000000000000008F", - "PreviousTxnID" : "1F0436C0688A8156EE2D7745B02C3F39C477A43F6BAD5D46C25A08949EF41739", - "PreviousTxnLgrSeq" : 5449071, - "index" : "F6B22B4D6A83B13A7F16E6A4A6EA8D3E26739C9D86C23DAC21C18E74B5E2C8CC" - }, - { - "Balance" : { - "currency" : "USD", - "issuer" : "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value" : "-35" - }, - "Flags" : 2228224, - "HighLimit" : { - "currency" : "USD", - "issuer" : "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value" : "500" - }, - "HighNode" : "0000000000000000", - "LedgerEntryType" : "RippleState", - "LowLimit" : { - "currency" : "USD", - "issuer" : "rfF3PNkwkq1DygW2wum2HK3RGfgkJjdPVD", - "value" : "0" - }, - "LowNode" : "0000000000000000", - "PreviousTxnID" : "99CB3C30FAEC301621951B944059C3C2EB78FDE7ED2E124A79901B6F2600E868", - "PreviousTxnLgrSeq" : 4339260, - "index" : "D23CF25053AC6A5106E9162A20AF52818EDC672CA77AD1625C0407A71D37102F" - }, - { - "Balance" : { - "currency" : "JOE", - "issuer" : "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value" : "-5" - }, - "Flags" : 2228224, - "HighLimit" : { - "currency" : "JOE", - "issuer" : "rwUVoVMSURqNyvocPCcvLu3ygJzZyw8qwp", - "value" : "50" - }, - "HighNode" : "0000000000000000", - "LedgerEntryType" : "RippleState", - "LowLimit" : { - "currency" : "JOE", - "issuer" : "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value" : "0" - }, - "LowNode" : "0000000000000000", - "PreviousTxnID" : "F5B48F7631779C6562AF07DC79E0E4E25A0696C38823417BF811DF27C5D88168", - "PreviousTxnLgrSeq" : 5736288, - "index" : "FEECE8973F75156412E1604C52B8B9C6BC9EF21FA4A0FAA8B779AC416D039B34" - }, - { - "Balance" : { - "currency" : "USD", - "issuer" : "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value" : "0" - }, - "Flags" : 2228224, - "HighLimit" : { - "currency" : "USD", - "issuer" : "rE6R3DWF9fBD7CyiQciePF9SqK58Ubp8o2", - "value" : "100" - }, - "HighNode" : "0000000000000000", - "LedgerEntryType" : "RippleState", - "LowLimit" : { - "currency" : "USD", - "issuer" : "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value" : "0" - }, - "LowNode" : "0000000000000000", - "PreviousTxnID" : "B1A7405C4A698E6A371E5B02836E779A942936AB754865FE82141E5280F09D1B", - "PreviousTxnLgrSeq" : 5718137, - "index" : "8DF1456AAB7470A760F6A095C156B457FF1038D43E6B11FD8011C2DF714E4FA1" - }, - { - "Balance" : { - "currency" : "JOE", - "issuer" : "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value" : "0" - }, - "Flags" : 2228224, - "HighLimit" : { - "currency" : "JOE", - "issuer" : "rE6R3DWF9fBD7CyiQciePF9SqK58Ubp8o2", - "value" : "100" - }, - "HighNode" : "0000000000000000", - "LedgerEntryType" : "RippleState", - "LowLimit" : { - "currency" : "JOE", - "issuer" : "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value" : "0" - }, - "LowNode" : "0000000000000000", - "PreviousTxnID" : "8E488B0E939D4DACD62102A5BFA2FDC63679EFCC56F2FDA2FDF45283674BB711", - "PreviousTxnLgrSeq" : 5989200, - "index" : "273BD42DD72E7D84416ED759CEC92DACCD12A4502287E50BECF816233C021ED1" - }, - { - "Balance" : { - "currency" : "015841551A748AD2C1F76FF6ECB0CCCD00000000", - "issuer" : "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value" : "0" - }, - "Flags" : 2228224, - "HighLimit" : { - "currency" : "015841551A748AD2C1F76FF6ECB0CCCD00000000", - "issuer" : "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value" : "10.01037626125837" - }, - "HighNode" : "0000000000000000", - "LedgerEntryType" : "RippleState", - "LowLimit" : { - "currency" : "015841551A748AD2C1F76FF6ECB0CCCD00000000", - "issuer" : "rs9M85karFkCRjvc6KMWn8Coigm9cbcgcx", - "value" : "0" - }, - "LowNode" : "0000000000000000", - "PreviousTxnID" : "2B3E313FBDE15988425AACA1EA2EAEBBBCB8020E4FBAA7159BA678E1C4F6B4C3", - "PreviousTxnLgrSeq" : 5982458, - "index" : "BA92A0B9EB8A75E84C5463BA1A055F2B1C1B7CC20BFDA7B027C685F75E06629D" - }, - { - "Balance" : { - "currency" : "USD", - "issuer" : "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value" : "0" - }, - "Flags" : 131072, - "HighLimit" : { - "currency" : "USD", - "issuer" : "rEhDDUUNxpXgEHVJtC2cjXAgyx5VCFxdMF", - "value" : "1" - }, - "HighNode" : "0000000000000000", - "LedgerEntryType" : "RippleState", - "LowLimit" : { - "currency" : "USD", - "issuer" : "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value" : "0" - }, - "LowNode" : "0000000000000000", - "PreviousTxnID" : "B6B410172C0B65575D89E464AF5B99937CC568822929ABF87DA75CBD11911932", - "PreviousTxnLgrSeq" : 6592159, - "index" : "2CC2B211F6D1159B5CFD07AF8717A9C51C985E2497B2875C192EE87266AB0F81" - } - ], - "ledger_hash" : "06BF4DBE7D57FBFEAFD70D4CA7B00ED6EF404B94C446767063A0EF58A937FC4E", - "ledger_index" : 56843766, - "status" : "success", - "validated" : true - } + "result": { + "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "account_objects": [ + { + "Balance": { + "currency": "ASP", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "0" + }, + "Flags": 65536, + "HighLimit": { + "currency": "ASP", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "0" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "ASP", + "issuer": "r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z", + "value": "10" + }, + "LowNode": "0000000000000000", + "PreviousTxnID": "BF7555B0F018E3C5E2A3FF9437A1A5092F32903BE246202F988181B9CED0D862", + "PreviousTxnLgrSeq": 1438879, + "index": "2243B0B630EA6F7330B654EFA53E27A7609D9484E535AB11B7F946DF3D247CE9" + }, + { + "Balance": { + "currency": "XAU", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "0" + }, + "Flags": 3342336, + "HighLimit": { + "currency": "XAU", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "0" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "XAU", + "issuer": "r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z", + "value": "0" + }, + "LowNode": "0000000000000000", + "PreviousTxnID": "79B26D7D34B950AC2C2F91A299A6888FABB376DD76CFF79D56E805BF439F6942", + "PreviousTxnLgrSeq": 5982530, + "index": "9ED4406351B7A511A012A9B5E7FE4059FA2F7650621379C0013492C315E25B97" + }, + { + "Balance": { + "currency": "USD", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "5" + }, + "Flags": 1114112, + "HighLimit": { + "currency": "USD", + "issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "value": "0" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "USD", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "5" + }, + "LowNode": "0000000000000000", + "PreviousTxnID": "2A5C5D95880A254A2C57BB5332558205BC33B9F2B38D359A170283CB4CBD080A", + "PreviousTxnLgrSeq": 39498567, + "index": "2DECFAC23B77D5AEA6116C15F5C6D4669EBAEE9E7EE050A40FE2B1E47B6A9419" + }, + { + "Balance": { + "currency": "MXN", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "481.992867407479" + }, + "Flags": 65536, + "HighLimit": { + "currency": "MXN", + "issuer": "rHpXfibHgSb64n8kK9QWDpdbfqSpYbM9a4", + "value": "0" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "MXN", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "1000" + }, + "LowNode": "0000000000000000", + "PreviousTxnID": "A467BACE5F183CDE1F075F72435FE86BAD8626ED1048EDEFF7562A4CC76FD1C5", + "PreviousTxnLgrSeq": 3316170, + "index": "EC8B9B6B364AF6CB6393A423FDD2DDBA96375EC772E6B50A3581E53BFBDFDD9A" + }, + { + "Balance": { + "currency": "EUR", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "0.793598266778297" + }, + "Flags": 1114112, + "HighLimit": { + "currency": "EUR", + "issuer": "rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", + "value": "0" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "EUR", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "1" + }, + "LowNode": "0000000000000000", + "PreviousTxnID": "E9345D44433EA368CFE1E00D84809C8E695C87FED18859248E13662D46A0EC46", + "PreviousTxnLgrSeq": 5447146, + "index": "4513749B30F4AF8DA11F077C448128D6486BF12854B760E4E5808714588AA915" + }, + { + "Balance": { + "currency": "CNY", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "0" + }, + "Flags": 2228224, + "HighLimit": { + "currency": "CNY", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "3" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "CNY", + "issuer": "rnuF96W4SZoCJmbHYBFoJZpR8eCaxNvekK", + "value": "0" + }, + "LowNode": "0000000000000008", + "PreviousTxnID": "2FDDC81F4394695B01A47913BEC4281AC9A283CC8F903C14ADEA970F60E57FCF", + "PreviousTxnLgrSeq": 5949673, + "index": "578C327DA8944BDE2E10C9BA36AFA2F43E06C8D1E8819FB225D266CBBCFDE5CE" + }, + { + "Balance": { + "currency": "DYM", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "1.336889190631542" + }, + "Flags": 65536, + "HighLimit": { + "currency": "DYM", + "issuer": "rGwUWgN5BEg3QGNY3RX2HfYowjUTZdid3E", + "value": "0" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "DYM", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "3" + }, + "LowNode": "0000000000000000", + "PreviousTxnID": "6DA2BD02DFB83FA4DAFC2651860B60071156171E9C021D9E0372A61A477FFBB1", + "PreviousTxnLgrSeq": 8818732, + "index": "5A2A5FF12E71AEE57564E624117BBA68DEF78CD564EF6259F92A011693E027C7" + }, + { + "Balance": { + "currency": "CHF", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "-0.3488146605801446" + }, + "Flags": 131072, + "HighLimit": { + "currency": "CHF", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "0" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "CHF", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "0" + }, + "LowNode": "000000000000008C", + "PreviousTxnID": "722394372525A13D1EAAB005642F50F05A93CF63F7F472E0F91CDD6D38EB5869", + "PreviousTxnLgrSeq": 2687590, + "index": "F2DBAD20072527F6AD02CE7F5A450DBC72BE2ABB91741A8A3ADD30D5AD7A99FB" + }, + { + "Balance": { + "currency": "BTC", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "0" + }, + "Flags": 131072, + "HighLimit": { + "currency": "BTC", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "3" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "BTC", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "0" + }, + "LowNode": "0000000000000043", + "PreviousTxnID": "03EDF724397D2DEE70E49D512AECD619E9EA536BE6CFD48ED167AE2596055C9A", + "PreviousTxnLgrSeq": 8317037, + "index": "767C12AF647CDF5FEB9019B37018748A79C50EDAF87E8D4C7F39F78AA7CA9765" + }, + { + "Balance": { + "currency": "USD", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "-11.68225001668339" + }, + "Flags": 131072, + "HighLimit": { + "currency": "USD", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "5000" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "0" + }, + "LowNode": "000000000000004A", + "PreviousTxnID": "8C55AFC2A2AA42B5CE624AEECDB3ACFDD1E5379D4E5BF74A8460C5E97EF8706B", + "PreviousTxnLgrSeq": 43251698, + "index": "826CF5BFD28F3934B518D0BDF3231259CBD3FD0946E3C3CA0C97D2C75D2D1A09" + }, + { + "Balance": { + "currency": "BTC", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "0.00111" + }, + "Flags": 65536, + "HighLimit": { + "currency": "BTC", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "0" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "BTC", + "issuer": "rpgKWEmNqSDAGFhy5WDnsyPqfQxbWxKeVd", + "value": "10" + }, + "LowNode": "0000000000000000", + "PreviousTxnID": "74F2F2A731C1350492FA03F8C67AF6C05EEC391160AACC04BF99329D9EAB0052", + "PreviousTxnLgrSeq": 585437, + "index": "94A9F05FEF9A153229E2E997E64919FD75AAE2028C8153E8EBDB4440BD3ECBB5" + }, + { + "Balance": { + "currency": "BTC", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "-0.0008744482690504699" + }, + "Flags": 131072, + "HighLimit": { + "currency": "BTC", + "issuer": "rBJ3YjwXi2MGbg7GVLuTXUWQ8DjL7tDXh4", + "value": "10" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "BTC", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "0" + }, + "LowNode": "0000000000000000", + "PreviousTxnID": "95221CD154317176B5748202A2E820D7A336597816E9787C27E3E4F25576877F", + "PreviousTxnLgrSeq": 8208104, + "index": "BC2AC65D7F9AD5CDAD131DEFE248727CA8A0FC219A33A3264E6202F50B4733C0" + }, + { + "Balance": { + "currency": "USD", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "0" + }, + "Flags": 65536, + "HighLimit": { + "currency": "USD", + "issuer": "rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", + "value": "0" + }, + "HighNode": "0000000000000002", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "USD", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "1" + }, + "LowNode": "0000000000000000", + "PreviousTxnID": "8C55AFC2A2AA42B5CE624AEECDB3ACFDD1E5379D4E5BF74A8460C5E97EF8706B", + "PreviousTxnLgrSeq": 43251698, + "index": "C493ABA2619D0FC6355BA862BC8312DF8266FBE76AFBA9636E857F7EAC874A99" + }, + { + "Balance": { + "currency": "CNY", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "-9.07619790068559" + }, + "Flags": 2228224, + "HighLimit": { + "currency": "CNY", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "100" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "CNY", + "issuer": "razqQKzJRdB4UxFPWf5NEpEG3WMkmwgcXA", + "value": "0" + }, + "LowNode": "0000000000000005", + "PreviousTxnID": "8EFE067DA1B2D57C485EFFCF875604548BA990EA00D019B466313D4CEE1E4668", + "PreviousTxnLgrSeq": 8284705, + "index": "C8554E6CE903505F631703E73D22D2D4D0662FDA9F524290997DF6B4D760C495" + }, + { + "Balance": { + "currency": "JPY", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "-7.292695098901099" + }, + "Flags": 2228224, + "HighLimit": { + "currency": "JPY", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "0" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "JPY", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "0" + }, + "LowNode": "0000000000000076", + "PreviousTxnID": "CE460D85F9AD93752E8EC8BCF4DFFE91DDF08B8C988836D64CB51EB7B447F672", + "PreviousTxnLgrSeq": 5100078, + "index": "CB1565898F19916A5EE49CC537B1D43CA075B9B96E82C6892E16EF6DFDEE7865" + }, + { + "Balance": { + "currency": "AUX", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "0" + }, + "Flags": 3342336, + "HighLimit": { + "currency": "AUX", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "0" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "AUX", + "issuer": "r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z", + "value": "0" + }, + "LowNode": "0000000000000000", + "PreviousTxnID": "A6964735A14272742E7E10EB5AB5A7CE693473BBB4DAFA488971A15E181132CF", + "PreviousTxnLgrSeq": 5982528, + "index": "C61E113C767A9E7B27CD944162FB63EAA24C38C8664E984759821C3ADFFE097E" + }, + { + "Balance": { + "currency": "USD", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "0.0004557360418801623" + }, + "Flags": 1114112, + "HighLimit": { + "currency": "USD", + "issuer": "r9vbV3EHvXWjSkeQ6CAcYVPGeq7TuiXY2X", + "value": "0" + }, + "HighNode": "0000000000000003", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "USD", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "1" + }, + "LowNode": "0000000000000000", + "PreviousTxnID": "F8F178712C0C3DA013A774A598B2A004BE6BA3D4542B8448D221A60D8A0D409A", + "PreviousTxnLgrSeq": 38837233, + "index": "D43180D7B2EEBB285C9D296590C4D5E5580C814F3026FC4D41FFDF3049FB547F" + }, + { + "Balance": { + "currency": "EUR", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "-12.41688780720394" + }, + "Flags": 2228224, + "HighLimit": { + "currency": "EUR", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "100" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "EUR", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "0" + }, + "LowNode": "000000000000008F", + "PreviousTxnID": "1F0436C0688A8156EE2D7745B02C3F39C477A43F6BAD5D46C25A08949EF41739", + "PreviousTxnLgrSeq": 5449071, + "index": "F6B22B4D6A83B13A7F16E6A4A6EA8D3E26739C9D86C23DAC21C18E74B5E2C8CC" + }, + { + "Balance": { + "currency": "USD", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "-35" + }, + "Flags": 2228224, + "HighLimit": { + "currency": "USD", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "500" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "USD", + "issuer": "rfF3PNkwkq1DygW2wum2HK3RGfgkJjdPVD", + "value": "0" + }, + "LowNode": "0000000000000000", + "PreviousTxnID": "99CB3C30FAEC301621951B944059C3C2EB78FDE7ED2E124A79901B6F2600E868", + "PreviousTxnLgrSeq": 4339260, + "index": "D23CF25053AC6A5106E9162A20AF52818EDC672CA77AD1625C0407A71D37102F" + }, + { + "Balance": { + "currency": "JOE", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "-5" + }, + "Flags": 2228224, + "HighLimit": { + "currency": "JOE", + "issuer": "rwUVoVMSURqNyvocPCcvLu3ygJzZyw8qwp", + "value": "50" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "JOE", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "0" + }, + "LowNode": "0000000000000000", + "PreviousTxnID": "F5B48F7631779C6562AF07DC79E0E4E25A0696C38823417BF811DF27C5D88168", + "PreviousTxnLgrSeq": 5736288, + "index": "FEECE8973F75156412E1604C52B8B9C6BC9EF21FA4A0FAA8B779AC416D039B34" + }, + { + "Balance": { + "currency": "USD", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "0" + }, + "Flags": 2228224, + "HighLimit": { + "currency": "USD", + "issuer": "rE6R3DWF9fBD7CyiQciePF9SqK58Ubp8o2", + "value": "100" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "USD", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "0" + }, + "LowNode": "0000000000000000", + "PreviousTxnID": "B1A7405C4A698E6A371E5B02836E779A942936AB754865FE82141E5280F09D1B", + "PreviousTxnLgrSeq": 5718137, + "index": "8DF1456AAB7470A760F6A095C156B457FF1038D43E6B11FD8011C2DF714E4FA1" + }, + { + "Balance": { + "currency": "JOE", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "0" + }, + "Flags": 2228224, + "HighLimit": { + "currency": "JOE", + "issuer": "rE6R3DWF9fBD7CyiQciePF9SqK58Ubp8o2", + "value": "100" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "JOE", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "0" + }, + "LowNode": "0000000000000000", + "PreviousTxnID": "8E488B0E939D4DACD62102A5BFA2FDC63679EFCC56F2FDA2FDF45283674BB711", + "PreviousTxnLgrSeq": 5989200, + "index": "273BD42DD72E7D84416ED759CEC92DACCD12A4502287E50BECF816233C021ED1" + }, + { + "Balance": { + "currency": "015841551A748AD2C1F76FF6ECB0CCCD00000000", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "0" + }, + "Flags": 2228224, + "HighLimit": { + "currency": "015841551A748AD2C1F76FF6ECB0CCCD00000000", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "10.01037626125837" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "015841551A748AD2C1F76FF6ECB0CCCD00000000", + "issuer": "rs9M85karFkCRjvc6KMWn8Coigm9cbcgcx", + "value": "0" + }, + "LowNode": "0000000000000000", + "PreviousTxnID": "2B3E313FBDE15988425AACA1EA2EAEBBBCB8020E4FBAA7159BA678E1C4F6B4C3", + "PreviousTxnLgrSeq": 5982458, + "index": "BA92A0B9EB8A75E84C5463BA1A055F2B1C1B7CC20BFDA7B027C685F75E06629D" + }, + { + "Balance": { + "currency": "USD", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "0" + }, + "Flags": 131072, + "HighLimit": { + "currency": "USD", + "issuer": "rEhDDUUNxpXgEHVJtC2cjXAgyx5VCFxdMF", + "value": "1" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "USD", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "0" + }, + "LowNode": "0000000000000000", + "PreviousTxnID": "B6B410172C0B65575D89E464AF5B99937CC568822929ABF87DA75CBD11911932", + "PreviousTxnLgrSeq": 6592159, + "index": "2CC2B211F6D1159B5CFD07AF8717A9C51C985E2497B2875C192EE87266AB0F81" + } + ], + "ledger_hash": "06BF4DBE7D57FBFEAFD70D4CA7B00ED6EF404B94C446767063A0EF58A937FC4E", + "ledger_index": 56843766, + "status": "success", + "validated": true + } } ``` + {% /tab %} {% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 -| `Field` | 型 | 説明 | -|:-----------------------|:----------------------------|:------------------------| -| `account` | 文字列 | このリクエストに対応するアカウントの一意の[アドレス][]。 | -| `account_objects` | 配列 | このアカウントが所有するオブジェクトの配列。各オブジェクトは、生[レジャーフォーマット][]です。 | -| `ledger_hash` | 文字列 | (省略される場合があります)このレスポンスの生成に使用されたレジャーの識別用ハッシュ。 | -| `ledger_index` | 数値 - [レジャーインデックス][] | _(省略される場合があります)_ このレスポンスの生成に使用されたレジャーバージョンのレジャーインデックス。 | -| `ledger_current_index` | 数値 - [レジャーインデックス][] | _(省略される場合があります)_ このレスポンスの生成に使用された現在処理中のレジャーバージョンのレジャーインデックス。 | -| `limit` | 数値 | _(省略される場合があります)_ このリクエストで使用されていた制限(制限の使用がある場合)。 | -| `marker` | [マーカー][] | レスポンスがページネーションされていることを示す、サーバが定義した値。この値を次のコールに渡して、このコールで終わった箇所から再開します。この後に追加のページがない場合は省略されます。 | -| `validated` | 真偽値 | このフィールドが含まれていて`true`に設定されている場合、このレスポンス内の情報は検証済みのレジャーバージョンから取得されています。そうでない場合、情報は変更されることがあります。 | +| `Field` | 型 | 説明 | +| :--------------------- | :------------------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `account` | 文字列 | このリクエストに対応するアカウントの一意の[アドレス][]。 | +| `account_objects` | 配列 | このアカウントが所有するオブジェクトの配列。各オブジェクトは、生[レジャーフォーマット][]です。 | +| `ledger_hash` | 文字列 | (省略される場合があります)このレスポンスの生成に使用されたレジャーの識別用ハッシュ。 | +| `ledger_index` | 数値 - [レジャーインデックス][] | _(省略される場合があります)_ このレスポンスの生成に使用されたレジャーバージョンのレジャーインデックス。 | +| `ledger_current_index` | 数値 - [レジャーインデックス][] | _(省略される場合があります)_ このレスポンスの生成に使用された現在処理中のレジャーバージョンのレジャーインデックス。 | +| `limit` | 数値 | _(省略される場合があります)_ このリクエストで使用されていた制限(制限の使用がある場合)。 | +| `marker` | [マーカー][] | レスポンスがページネーションされていることを示す、サーバが定義した値。この値を次のコールに渡して、このコールで終わった箇所から再開します。この後に追加のページがない場合は省略されます。 | +| `validated` | 真偽値 | このフィールドが含まれていて`true`に設定されている場合、このレスポンス内の情報は検証済みのレジャーバージョンから取得されています。そうでない場合、情報は変更されることがあります。 | ## 考えられるエラー -* いずれかの[汎用エラータイプ][]。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* `actNotFound` - リクエストの`account`フィールドに指定されている[アドレス][]が、レジャーのアカウントに対応していません。 -* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバが保有していません。 +- いずれかの[汎用エラータイプ][]。 +- `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 +- `actNotFound` - リクエストの`account`フィールドに指定されている[アドレス][]が、レジャーのアカウントに対応していません。 +- `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバが保有していません。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_offers.md b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_offers.md index e698cad866..ea7adcc306 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_offers.md +++ b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_offers.md @@ -2,11 +2,13 @@ html: account_offers.html parent: account-methods.html seo: - description: 特定のアカウントから出されたオファーのリストを取得します。 + description: 特定のアカウントから出されたオファーのリストを取得します。 labels: - 分散型取引所 --- + # account_offers + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/AccountOffers.cpp "Source") `account_offers`メソッドは、特定の[アカウント](../../../../concepts/accounts/index.md)から出された[オファー](../../../../concepts/tokens/decentralized-exchange/offers.md)のうち、特定の[レジャーバージョン](../../../../concepts/ledgers/index.md)で未処理であったオファーのリストを取得します。 @@ -18,6 +20,7 @@ labels: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 2, @@ -25,26 +28,31 @@ labels: "account": "rpP2JgiMyTF5jR5hLG3xHCPi1knBb1v9cM" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "account_offers", - "params": [ - { - "account": "rpP2JgiMyTF5jR5hLG3xHCPi1knBb1v9cM" - } - ] + "method": "account_offers", + "params": [ + { + "account": "rpP2JgiMyTF5jR5hLG3xHCPi1knBb1v9cM" + } + ] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh #Syntax: account_offers account [ledger_index] rippled account_offers r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 current ``` + {% /tab %} {% /tabs %} @@ -53,13 +61,13 @@ rippled account_offers r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 current リクエストには以下のパラメーターを指定できます。 -| `Field` | 型 | 必須? | 説明 | -|:---------------|:----------------------|:-----|:------------------------------| -| `account` | 文字列 - [Address][] | はい | このアカウントからのオファーを検索します。 | -| `ledger_hash` | [ハッシュ][] | いいえ | 使用するレジャーバージョンを識別する20バイトの16進文字列。 | -| `ledger_index` | [レジャーインデックス][] | いいえ | 使用するレジャーの[レジャーインデックス][]、レジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]をご覧ください | -| `limit` | 整数 | いいえ | 取得するオファーの数を制限します。サーバはこの数より少ない結果を返すことがあります。10~400の範囲内でなければなりません。この範囲外の正の値は、最も近い有効なオプションに置き換えられます。デフォルトは200です。 | -| `marker` | [マーカー][] | いいえ | 以前にページネーションされたレスポンスの値。そのレスポンスを停止した箇所からデータの取得を再開します。 | +| `Field` | 型 | 必須? | 説明 | +| :------------- | :----------------------- | :----- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `account` | 文字列 - [Address][] | はい | このアカウントからのオファーを検索します。 | +| `ledger_hash` | [ハッシュ][] | いいえ | 使用するレジャーバージョンを識別する20バイトの16進文字列。 | +| `ledger_index` | [レジャーインデックス][] | いいえ | 使用するレジャーの[レジャーインデックス][]、レジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]をご覧ください | +| `limit` | 整数 | いいえ | 取得するオファーの数を制限します。サーバはこの数より少ない結果を返すことがあります。10~400の範囲内でなければなりません。この範囲外の正の値は、最も近い有効なオプションに置き換えられます。デフォルトは200です。 | +| `marker` | [マーカー][] | いいえ | 以前にページネーションされたレスポンスの値。そのレスポンスを停止した箇所からデータの取得を再開します。 | 以下のパラメーターは廃止予定であり、今後予告なしに削除される可能性があります。`ledger`,`strict` @@ -70,6 +78,7 @@ rippled account_offers r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 current {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 9, @@ -107,9 +116,11 @@ rippled account_offers r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 current } } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -157,65 +168,67 @@ rippled account_offers r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 current } } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```json { - "result" : { - "account" : "rpP2JgiMyTF5jR5hLG3xHCPi1knBb1v9cM", - "ledger_current_index" : 57110969, - "offers" : [ - { - "flags" : 0, - "quality" : "1499850014.892974", - "seq" : 7916201, - "taker_gets" : { - "currency" : "BCH", - "issuer" : "rcyS4CeCZVYvTiKcxj6Sx32ibKwcDHLds", - "value" : "0.5268598580881351" - }, - "taker_pays" : "790210766" - } - ], - "status" : "success", - "validated" : false - } + "result": { + "account": "rpP2JgiMyTF5jR5hLG3xHCPi1knBb1v9cM", + "ledger_current_index": 57110969, + "offers": [ + { + "flags": 0, + "quality": "1499850014.892974", + "seq": 7916201, + "taker_gets": { + "currency": "BCH", + "issuer": "rcyS4CeCZVYvTiKcxj6Sx32ibKwcDHLds", + "value": "0.5268598580881351" + }, + "taker_pays": "790210766" + } + ], + "status": "success", + "validated": false + } } ``` + {% /tab %} {% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 -| `Field` | 型 | 説明 | -|:-----------------------|:----------------------------|:------------------------| -| `account` | 文字列 | オファーを出したアカウントを識別する一意の[アドレス][] | -| `offers` | 配列 | オブジェクトの配列。各オブジェクトは、このアカウントが出したオファーの中で、レジャーバージョンがリクエストされた時点で未処理のオファーを表します。オファーの数が多い場合は、一度に`limit`の数までのオファーが返されます。 | -| `ledger_current_index` | 数値 - [レジャーインデックス][] | _(`ledger_hash`または`ledger_index`が指定されている場合は省略可)_ このデータの取得時に使用した、現在処理中のレジャーバージョンのレジャーインデックス。 | -| `ledger_index` | 数値 - [レジャーインデックス][] | _(`ledger_current_index`が指定されている場合は省略可)_ リクエストに従って、このデータの取得時に使用されたレジャーバージョンのレジャーインデックス。 | -| `ledger_hash` | 文字列 - [ハッシュ][] | _(省略される場合があります)_ このデータの取得時に使用されたレジャーバージョンの識別用ハッシュ。 | -| `marker` | [マーカー][] | _(省略される場合があります)_ レスポンスがページネーションされていることを示す、サーバが定義した値。この値を次のコールに渡して、このコールで終わった箇所から再開します。この後に情報ページがない場合は省略されます。 | - +| `Field` | 型 | 説明 | +| :--------------------- | :------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `account` | 文字列 | オファーを出したアカウントを識別する一意の[アドレス][] | +| `offers` | 配列 | オブジェクトの配列。各オブジェクトは、このアカウントが出したオファーの中で、レジャーバージョンがリクエストされた時点で未処理のオファーを表します。オファーの数が多い場合は、一度に`limit`の数までのオファーが返されます。 | +| `ledger_current_index` | 数値 - [レジャーインデックス][] | _(`ledger_hash`または`ledger_index`が指定されている場合は省略可)_ このデータの取得時に使用した、現在処理中のレジャーバージョンのレジャーインデックス。 | +| `ledger_index` | 数値 - [レジャーインデックス][] | _(`ledger_current_index`が指定されている場合は省略可)_ リクエストに従って、このデータの取得時に使用されたレジャーバージョンのレジャーインデックス。 | +| `ledger_hash` | 文字列 - [ハッシュ][] | _(省略される場合があります)_ このデータの取得時に使用されたレジャーバージョンの識別用ハッシュ。 | +| `marker` | [マーカー][] | _(省略される場合があります)_ レスポンスがページネーションされていることを示す、サーバが定義した値。この値を次のコールに渡して、このコールで終わった箇所から再開します。この後に情報ページがない場合は省略されます。 | 各Offerオブジェクトのフィールドを次に示します。 -| `Field` | 型 | 説明 | -|:-------------|:---------------------|:-------------------------------------------| -| `flags` | 符号なし整数 | このオファーエントリに対してビットフラグとして設定されているオプション。 | -| `seq` | 符号なし整数 | このエントリを作成したトランザクションのシーケンス番号。(トランザクションの[シーケンス番号](../../../protocol/data-types/basic-data-types.md#アカウントシーケンス)はアカウントに関連付けられています。) | -| `taker_gets` | 文字列またはオブジェクト | オファーを受け入れるアカウントが受領する額。XRPまたは通貨指定オブジェクトの額を表す文字列として示されます。([通貨額の指定][通貨額]をご覧ください。) | -| `taker_pays` | 文字列またはオブジェクト | オファーを受け入れるアカウントが提供する額。XRPまたは通貨指定オブジェクトの額を表す文字列として示されます。([通貨額の指定][通貨額]をご覧ください。) | -| `quality` | 文字列 | オファーの為替レート。元の`taker_pays`を元の`taker_gets`で割った比率です。オファーの実行時には、最も好ましい(最も低い)クオリティのオファーが最初に消費されます。同じクオリティのオファーは古いものから新しいものの順で実行されます。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.29.0" %}新規: rippled 0.29.0{% /badge %} | -| `expiration` | 符号なし整数 | (省略される場合があります)この時刻の経過後は、資金化されなかったオファーとみなされます([Rippleエポック以降の経過秒数][])。関連項目: [オファーの有効期限](../../../../concepts/tokens/decentralized-exchange/offers.md#オファーの有効期限)。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.30.1" %}新規: rippled 0.30.1{% /badge %} | +| `Field` | 型 | 説明 | +| :----------- | :----------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `flags` | 符号なし整数 | このオファーエントリに対してビットフラグとして設定されているオプション。 | +| `seq` | 符号なし整数 | このエントリを作成したトランザクションのシーケンス番号。(トランザクションの[シーケンス番号](../../../protocol/data-types/basic-data-types.md#アカウントシーケンス)はアカウントに関連付けられています。) | +| `taker_gets` | 文字列またはオブジェクト | オファーを受け入れるアカウントが受領する額。XRPまたは通貨指定オブジェクトの額を表す文字列として示されます。([通貨額の指定][通貨額]をご覧ください。) | +| `taker_pays` | 文字列またはオブジェクト | オファーを受け入れるアカウントが提供する額。XRPまたは通貨指定オブジェクトの額を表す文字列として示されます。([通貨額の指定][通貨額]をご覧ください。) | +| `quality` | 文字列 | オファーの為替レート。元の`taker_pays`を元の`taker_gets`で割った比率です。オファーの実行時には、最も好ましい(最も低い)クオリティのオファーが最初に消費されます。同じクオリティのオファーは古いものから新しいものの順で実行されます。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.29.0" %}新規: rippled 0.29.0{% /badge %} | +| `expiration` | 符号なし整数 | (省略される場合があります)この時刻の経過後は、資金化されなかったオファーとみなされます([Rippleエポック以降の経過秒数][])。関連項目: [オファーの有効期限](../../../../concepts/tokens/decentralized-exchange/offers.md#オファーの有効期限)。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.30.1" %}新規: rippled 0.30.1{% /badge %} | ## 考えられるエラー -* いずれかの[汎用エラータイプ][]。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* `actNotFound` - リクエストの`account`フィールドに指定されている[アドレス][]が、レジャーのアカウントに対応していません。 -* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバが保有していません。 -* `actMalformed` - 指定されている`marker`フィールドが受け入れられない場合。 +- いずれかの[汎用エラータイプ][]。 +- `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 +- `actNotFound` - リクエストの`account`フィールドに指定されている[アドレス][]が、レジャーのアカウントに対応していません。 +- `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバが保有していません。 +- `actMalformed` - 指定されている`marker`フィールドが受け入れられない場合。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_tx.md b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_tx.md index c942163b92..5b8ff71dcd 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_tx.md +++ b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_tx.md @@ -2,12 +2,14 @@ html: account_tx.html parent: account-methods.html seo: - description: 指定したアカウントに関連するトランザクションのリストを取得します。 + description: 指定したアカウントに関連するトランザクションのリストを取得します。 labels: - アカウント - 支払い --- + # account_tx + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/AccountTx.cpp "Source") `account_tx`メソッドは、指定したアカウントに関連するトランザクションのリストを取得します。 @@ -19,6 +21,7 @@ labels: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 2, @@ -32,33 +35,38 @@ labels: "api_version": 2 } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "account_tx", - "params": [ - { - "account": "rLNaPoKeeBjZe2qs6x52yVPZpZ8td4dc6w", - "binary": false, - "forward": false, - "ledger_index_max": -1, - "ledger_index_min": -1, - "limit": 2, - "api_version": 2 - } - ] + "method": "account_tx", + "params": [ + { + "account": "rLNaPoKeeBjZe2qs6x52yVPZpZ8td4dc6w", + "binary": false, + "forward": false, + "ledger_index_max": -1, + "ledger_index_min": -1, + "limit": 2, + "api_version": 2 + } + ] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh # Syntax: account_tx account [ledger_index_min [ledger_index_max]] [limit] [offset] [binary] [count] [descending] # For binary/count/descending, use the parameter name for true and omit for false. rippled -- account_tx rLNaPoKeeBjZe2qs6x52yVPZpZ8td4dc6w -1 -1 2 0 binary descending ``` + {% /tab %} {% /tabs %} @@ -67,23 +75,22 @@ rippled -- account_tx rLNaPoKeeBjZe2qs6x52yVPZpZ8td4dc6w -1 -1 2 0 binary descen リクエストには以下のパラメーターが含まれます。 -| `Field` | 型 | 説明 | -| :----------------- | :----------------------- | ---- | -| `account` | 文字列 | アカウントの一意のIDであり、最も一般的なアカウントのアドレスが使用されます。 | -| `tx_type` | 文字列 | _(省略可)_ **Clioのみ** "Clawback"、"AccountSet"、"AccountDelete "など、特定のタイプのトランザクションのみを返します。 See [Transaction Types](../../../../references//protocol/transactions/types/index.md#transaction-types). [新規: Clio v2.0](https://github.com/XRPLF/clio/releases/tag/2.0.0 "BADGE_BLUE") [AMMのサポート: Clio v2.1.0](https://github.com/XRPLF/clio/releases/tag/2.1.0 "BADGE_GREEN") | -| `ledger_index_min` | 整数 | _(省略可能)_ 含めるトランザクションのレジャーのうち最古のものを指定するのに使用します。`-1`の値は、使用可能な検証済みレジャーのうち最古のバージョンを使用するよう、サーバに指示します。 | -| `ledger_index_max` | 整数 | _(省略可能)_ 含めるトランザクションのレジャーのうち最新のものを指定するのに使用します。`-1`の値は、使用可能な検証済みレジャーのうち最新のバージョンを使用するよう、サーバに指示します。 | -| `ledger_hash` | 文字列 | _(省略可能)_ 単一のレジャーからのみトランザクションを検索するのに使用します。([レジャーの指定][]をご覧ください) | -| `ledger_index` | 文字列または符号なし整数 | _(省略可能)_ 単一のレジャーからのみトランザクションを検索するのに使用します。([レジャーの指定][]をご覧ください) | -| `binary` | ブール値 | _(省略可能)_ デフォルトは`false`です。`true`に設定すると、JSONの代わりに16進文字列でトランザクションが返されます。 | -| `forward` | ブール値 | _(省略可能)_ デフォルトは`false`です。`true`に設定すると、最も古いレジャーを先頭としてインデックスが付けられた値が返されます。そうしない場合、最新のレジャーを先頭として結果にインデックスが付けられます。(結果を示した各ページの中身は順序よく整理されていない場合がありますが、ページ全体としては順序付けされています。) | -| `limit` | 整数 | _(省略可能)_ デフォルトは変化します。取得するトランザクションの数を制限します。サーバはこの値を受け入れる必要はありません。 | -| `marker` | [マーカー][] | 以前にページネーションされたレスポンスの値。そのレスポンスを停止した箇所からデータの取得を再開します。サーバが使用できるレジャーの範囲に変更があっても、この値は変わりません。 | +| `Field` | 型 | 説明 | +| :----------------- | :----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `account` | 文字列 | アカウントの一意のIDであり、最も一般的なアカウントのアドレスが使用されます。 | +| `tx_type` | 文字列 | _(省略可)_ **Clioのみ** "Clawback"、"AccountSet"、"AccountDelete "など、特定のタイプのトランザクションのみを返します。 See [Transaction Types](../../../../references//protocol/transactions/types/index.md#transaction-types). [新規: Clio v2.0](https://github.com/XRPLF/clio/releases/tag/2.0.0 'BADGE_BLUE') [AMMのサポート: Clio v2.1.0](https://github.com/XRPLF/clio/releases/tag/2.1.0 'BADGE_GREEN') | +| `ledger_index_min` | 整数 | _(省略可能)_ 含めるトランザクションのレジャーのうち最古のものを指定するのに使用します。`-1`の値は、使用可能な検証済みレジャーのうち最古のバージョンを使用するよう、サーバに指示します。 | +| `ledger_index_max` | 整数 | _(省略可能)_ 含めるトランザクションのレジャーのうち最新のものを指定するのに使用します。`-1`の値は、使用可能な検証済みレジャーのうち最新のバージョンを使用するよう、サーバに指示します。 | +| `ledger_hash` | 文字列 | _(省略可能)_ 単一のレジャーからのみトランザクションを検索するのに使用します。([レジャーの指定][]をご覧ください) | +| `ledger_index` | 文字列または符号なし整数 | _(省略可能)_ 単一のレジャーからのみトランザクションを検索するのに使用します。([レジャーの指定][]をご覧ください) | +| `binary` | ブール値 | _(省略可能)_ デフォルトは`false`です。`true`に設定すると、JSONの代わりに16進文字列でトランザクションが返されます。 | +| `forward` | ブール値 | _(省略可能)_ デフォルトは`false`です。`true`に設定すると、最も古いレジャーを先頭としてインデックスが付けられた値が返されます。そうしない場合、最新のレジャーを先頭として結果にインデックスが付けられます。(結果を示した各ページの中身は順序よく整理されていない場合がありますが、ページ全体としては順序付けされています。) | +| `limit` | 整数 | _(省略可能)_ デフォルトは変化します。取得するトランザクションの数を制限します。サーバはこの値を受け入れる必要はありません。 | +| `marker` | [マーカー][] | 以前にページネーションされたレスポンスの値。そのレスポンスを停止した箇所からデータの取得を再開します。サーバが使用できるレジャーの範囲に変更があっても、この値は変わりません。 | - リクエスト内で次の各フィールドのうち1つ以上を使用する必要があります: `ledger_index`、`ledger_hash`、`ledger_index_min`、または`ledger_index_max`。 - [API v2][]: `ledger_index`と`ledger_hash`のどちらかを指定した場合、`ledger_index_min`と`ledger_index_max`を含めると`invalidParams`エラーが返ります。 - ### 照会されたデータの繰り返し 他のページネーションメソッドと同様に、`marker`フィールドを使用すると複数ページのデータが返されます。 @@ -97,6 +104,7 @@ rippled -- account_tx rLNaPoKeeBjZe2qs6x52yVPZpZ8td4dc6w -1 -1 2 0 binary descen {% tabs %} {% tab label="WebSocket" %} + ```json { "result": { @@ -259,170 +267,183 @@ rippled -- account_tx rLNaPoKeeBjZe2qs6x52yVPZpZ8td4dc6w -1 -1 2 0 binary descen "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "result": { - "account": "rLNaPoKeeBjZe2qs6x52yVPZpZ8td4dc6w", - "ledger_index_min": 32570, - "ledger_index_max": 91824423, - "transactions": [{ - "meta": { - "AffectedNodes": [{ - "ModifiedNode": { - "FinalFields": { - "Account": "rLJmawLfNAFNyyYHFbNErTfCrfsbmRzrTc", - "Balance": "77694521", - "Domain": "7872702D6C65646765722D746F6D6C2E68746D6C", - "EmailHash": "CE29D0E8928E95C3FF5BDD8CFE82F445", - "Flags": 8388608, - "MessageKey": "02000000000000000000000000A9E7611C8B9AFE2DEDA42039DBF09F3BFA185F76", - "OwnerCount": 26, - "RegularKey": "rLNaPoKeeBjZe2qs6x52yVPZpZ8td4dc6w", - "Sequence": 62418073 - }, - "LedgerEntryType": "AccountRoot", - "LedgerIndex": "548E97B1F63273FC2F339CBEB8C202FBF9231C4C61BC1BA51A6239501A2F6FB9", - "PreviousFields": { - "Balance": "77694533", - "Sequence": 62418072 - }, - "PreviousTxnID": "5FDB0B2ECE005EEA87DC35B33204424D0766AB37B764F1618A6C69C06BDDD511", - "PreviousTxnLgrSeq": 87319056 - } - }], - "TransactionIndex": 24, - "TransactionResult": "tesSUCCESS" - }, - "tx_json": { - "Account": "rLJmawLfNAFNyyYHFbNErTfCrfsbmRzrTc", - "Fee": "12", - "Flags": 131072, - "LastLedgerSequence": 88061884, - "LimitAmount": { - "currency": "QNT", - "issuer": "rGPsXnzAkdv1FYKkhC59GRp3M42axDhE1d", - "value": "500000000" + "result": { + "account": "rLNaPoKeeBjZe2qs6x52yVPZpZ8td4dc6w", + "ledger_index_min": 32570, + "ledger_index_max": 91824423, + "transactions": [ + { + "meta": { + "AffectedNodes": [ + { + "ModifiedNode": { + "FinalFields": { + "Account": "rLJmawLfNAFNyyYHFbNErTfCrfsbmRzrTc", + "Balance": "77694521", + "Domain": "7872702D6C65646765722D746F6D6C2E68746D6C", + "EmailHash": "CE29D0E8928E95C3FF5BDD8CFE82F445", + "Flags": 8388608, + "MessageKey": "02000000000000000000000000A9E7611C8B9AFE2DEDA42039DBF09F3BFA185F76", + "OwnerCount": 26, + "RegularKey": "rLNaPoKeeBjZe2qs6x52yVPZpZ8td4dc6w", + "Sequence": 62418073 }, - "Sequence": 62418072, - "SigningPubKey": "023833AB55CD985EB4F7744DC2B02D34886A71ECC0177EE59749A0113ABEE8D64A", - "TransactionType": "TrustSet", - "TxnSignature": "304402201B00F6D2D9C3B290B8EB3CBAB15612C16C7C06E1D5D8A8B55528D4E1762EB7110220565D2A7369884D84F324FB3CA521BA4EDAFF8F2DDDE48AF8992CF99DF0EEB3F0", - "ledger_index": 88061876, - "date": 769309032 - }, - "ledger_index": 88061876, - "hash": "735E296F0F271382FF8FBBBD0058AC7330419B8A1C955388A7384E5E3D5B2FCB", - "ledger_hash": "95B2DA521829572779128884B145DF921B4239CC74057C08EB570DD31641A8F5", - "close_time_iso": "2024-05-18T00:57:12Z", - "validated": true - }, { - "meta": { - "AffectedNodes": [{ - "ModifiedNode": { - "FinalFields": { - "Account": "rLNaPoKeeBjZe2qs6x52yVPZpZ8td4dc6w", - "Balance": "8579705270", - "Flags": 131072, - "OwnerCount": 0, - "Sequence": 1152385 - }, - "LedgerEntryType": "AccountRoot", - "LedgerIndex": "140FA03FE8C39540CA8189BC7A7956795C712BC0A542C6409C041150703C8574", - "PreviousFields": { - "Balance": "8554705270" - }, - "PreviousTxnID": "DB31B6D0A304777F125CAD069E2D2C60829475BC30A5DB63376C425C10B85752", - "PreviousTxnLgrSeq": 86879421 - } - }, { - "ModifiedNode": { - "FinalFields": { - "Account": "rpKoCafrEz7FxQZ9FfktocuBGNZZyrz4KH", - "Balance": "802086263", - "Flags": 0, - "OwnerCount": 0, - "Sequence": 60818358 - }, - "LedgerEntryType": "AccountRoot", - "LedgerIndex": "481C0CDDC838688B61B960A1EE721F657BD8E501F64141A51E9A905A1D87A2C9", - "PreviousFields": { - "Balance": "827086275", - "Sequence": 60818357 - }, - "PreviousTxnID": "7C1671C63D75EBDDD87672D1DE9D5A9EAEAF34C37BDB29D1359301B85ECEF776", - "PreviousTxnLgrSeq": 60818357 - } - }], - "TransactionIndex": 39, - "TransactionResult": "tesSUCCESS", - "delivered_amount": "25000000" - }, - "tx_json": { - "Account": "rpKoCafrEz7FxQZ9FfktocuBGNZZyrz4KH", - "DeliverMax": "25000000", - "Destination": "rLNaPoKeeBjZe2qs6x52yVPZpZ8td4dc6w", - "DestinationTag": 997786069, - "Fee": "12", - "LastLedgerSequence": 87598991, - "Sequence": 60818357, - "SigningPubKey": "0229DA128237D9A63FBA95666C5B8794F455875D843EDF39F6C02DF07FD5B4720D", - "TransactionType": "Payment", - "TxnSignature": "304402203B0048779085087566AABB4B878EF30EB41D3B29581937111F2708780EE4168702203E2D3B1B73F3F8B86EE009F818B226467E3BFC444B831AE851E0E0B0FB7F49C8", - "ledger_index": 87598983, - "date": 767543720 - }, - "ledger_index": 87598983, - "hash": "16DFB8551F5301E3B7D1BCEAA8DB92E9AF5D783E6DCA7C0E11FD143D988E904A", - "ledger_hash": "2B363FD30EA376E2662777CEBDDDE22C035A87DA3CD3EA0E6125CBBC9D8A7873", - "close_time_iso": "2024-04-27T14:35:20Z", - "validated": true - }], - "validated": true, - "marker": { - "ledger": 87598983, - "seq": 39 + "LedgerEntryType": "AccountRoot", + "LedgerIndex": "548E97B1F63273FC2F339CBEB8C202FBF9231C4C61BC1BA51A6239501A2F6FB9", + "PreviousFields": { + "Balance": "77694533", + "Sequence": 62418072 + }, + "PreviousTxnID": "5FDB0B2ECE005EEA87DC35B33204424D0766AB37B764F1618A6C69C06BDDD511", + "PreviousTxnLgrSeq": 87319056 + } + } + ], + "TransactionIndex": 24, + "TransactionResult": "tesSUCCESS" }, - "limit": 2, - "status": "success" - } + "tx_json": { + "Account": "rLJmawLfNAFNyyYHFbNErTfCrfsbmRzrTc", + "Fee": "12", + "Flags": 131072, + "LastLedgerSequence": 88061884, + "LimitAmount": { + "currency": "QNT", + "issuer": "rGPsXnzAkdv1FYKkhC59GRp3M42axDhE1d", + "value": "500000000" + }, + "Sequence": 62418072, + "SigningPubKey": "023833AB55CD985EB4F7744DC2B02D34886A71ECC0177EE59749A0113ABEE8D64A", + "TransactionType": "TrustSet", + "TxnSignature": "304402201B00F6D2D9C3B290B8EB3CBAB15612C16C7C06E1D5D8A8B55528D4E1762EB7110220565D2A7369884D84F324FB3CA521BA4EDAFF8F2DDDE48AF8992CF99DF0EEB3F0", + "ledger_index": 88061876, + "date": 769309032 + }, + "ledger_index": 88061876, + "hash": "735E296F0F271382FF8FBBBD0058AC7330419B8A1C955388A7384E5E3D5B2FCB", + "ledger_hash": "95B2DA521829572779128884B145DF921B4239CC74057C08EB570DD31641A8F5", + "close_time_iso": "2024-05-18T00:57:12Z", + "validated": true + }, + { + "meta": { + "AffectedNodes": [ + { + "ModifiedNode": { + "FinalFields": { + "Account": "rLNaPoKeeBjZe2qs6x52yVPZpZ8td4dc6w", + "Balance": "8579705270", + "Flags": 131072, + "OwnerCount": 0, + "Sequence": 1152385 + }, + "LedgerEntryType": "AccountRoot", + "LedgerIndex": "140FA03FE8C39540CA8189BC7A7956795C712BC0A542C6409C041150703C8574", + "PreviousFields": { + "Balance": "8554705270" + }, + "PreviousTxnID": "DB31B6D0A304777F125CAD069E2D2C60829475BC30A5DB63376C425C10B85752", + "PreviousTxnLgrSeq": 86879421 + } + }, + { + "ModifiedNode": { + "FinalFields": { + "Account": "rpKoCafrEz7FxQZ9FfktocuBGNZZyrz4KH", + "Balance": "802086263", + "Flags": 0, + "OwnerCount": 0, + "Sequence": 60818358 + }, + "LedgerEntryType": "AccountRoot", + "LedgerIndex": "481C0CDDC838688B61B960A1EE721F657BD8E501F64141A51E9A905A1D87A2C9", + "PreviousFields": { + "Balance": "827086275", + "Sequence": 60818357 + }, + "PreviousTxnID": "7C1671C63D75EBDDD87672D1DE9D5A9EAEAF34C37BDB29D1359301B85ECEF776", + "PreviousTxnLgrSeq": 60818357 + } + } + ], + "TransactionIndex": 39, + "TransactionResult": "tesSUCCESS", + "delivered_amount": "25000000" + }, + "tx_json": { + "Account": "rpKoCafrEz7FxQZ9FfktocuBGNZZyrz4KH", + "DeliverMax": "25000000", + "Destination": "rLNaPoKeeBjZe2qs6x52yVPZpZ8td4dc6w", + "DestinationTag": 997786069, + "Fee": "12", + "LastLedgerSequence": 87598991, + "Sequence": 60818357, + "SigningPubKey": "0229DA128237D9A63FBA95666C5B8794F455875D843EDF39F6C02DF07FD5B4720D", + "TransactionType": "Payment", + "TxnSignature": "304402203B0048779085087566AABB4B878EF30EB41D3B29581937111F2708780EE4168702203E2D3B1B73F3F8B86EE009F818B226467E3BFC444B831AE851E0E0B0FB7F49C8", + "ledger_index": 87598983, + "date": 767543720 + }, + "ledger_index": 87598983, + "hash": "16DFB8551F5301E3B7D1BCEAA8DB92E9AF5D783E6DCA7C0E11FD143D988E904A", + "ledger_hash": "2B363FD30EA376E2662777CEBDDDE22C035A87DA3CD3EA0E6125CBBC9D8A7873", + "close_time_iso": "2024-04-27T14:35:20Z", + "validated": true + } + ], + "validated": true, + "marker": { + "ledger": 87598983, + "seq": 39 + }, + "limit": 2, + "status": "success" + } } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```json { - "result" : { - "account" : "rLNaPoKeeBjZe2qs6x52yVPZpZ8td4dc6w", - "ledger_index_max" : 57112094, - "ledger_index_min" : 57105464, - "limit" : 2, - "marker" : { - "ledger" : 57112074, - "seq" : 9 + "result": { + "account": "rLNaPoKeeBjZe2qs6x52yVPZpZ8td4dc6w", + "ledger_index_max": 57112094, + "ledger_index_min": 57105464, + "limit": 2, + "marker": { + "ledger": 57112074, + "seq": 9 + }, + "status": "success", + "transactions": [ + { + "ledger_index": 57112090, + "meta": "201C0000002EF8E51100612503677617551E0297F38EF4FED7004E074D246B4EA3E550D9AE0F61BE40E08D3432091D52CE56140FA03FE8C39540CA8189BC7A7956795C712BC0A542C6409C041150703C8574E624000AB96E624000037771BFD270E1E7220002000024000AB96F2D0000000062400003776C784A418114D2E44C9FAF7BE9C536219800A6E698E4C7D2C911E1E1E311006156F7D315E0E992B1F1AC66B309C9D68961AA327FE770101B74D4C975F8C5DEC96AE8240367761A624000000005478807811403C95DC0C7CE402E8044A5F13304108013CE9963E1E1F1031000", + "tx_blob": "120000228000000024000AB96E201B036776306140000000054788076840000000000000287321020A46D8D02AC780C59853ACA309EAA92E7D8E02DD72A0B6AC315A7D18A6C3276A74463044022054811EEF61ACCFA1B5FC6BB05D2FA49CF5174062740370328382E6EA557C0E6A0220480584D487638C333A87CA37100354BD36209E355E8DB9FE79791A56E24C1F268114D2E44C9FAF7BE9C536219800A6E698E4C7D2C911831403C95DC0C7CE402E8044A5F13304108013CE9963", + "validated": true }, - "status" : "success", - "transactions" : [ - { - "ledger_index" : 57112090, - "meta" : "201C0000002EF8E51100612503677617551E0297F38EF4FED7004E074D246B4EA3E550D9AE0F61BE40E08D3432091D52CE56140FA03FE8C39540CA8189BC7A7956795C712BC0A542C6409C041150703C8574E624000AB96E624000037771BFD270E1E7220002000024000AB96F2D0000000062400003776C784A418114D2E44C9FAF7BE9C536219800A6E698E4C7D2C911E1E1E311006156F7D315E0E992B1F1AC66B309C9D68961AA327FE770101B74D4C975F8C5DEC96AE8240367761A624000000005478807811403C95DC0C7CE402E8044A5F13304108013CE9963E1E1F1031000", - "tx_blob" : "120000228000000024000AB96E201B036776306140000000054788076840000000000000287321020A46D8D02AC780C59853ACA309EAA92E7D8E02DD72A0B6AC315A7D18A6C3276A74463044022054811EEF61ACCFA1B5FC6BB05D2FA49CF5174062740370328382E6EA557C0E6A0220480584D487638C333A87CA37100354BD36209E355E8DB9FE79791A56E24C1F268114D2E44C9FAF7BE9C536219800A6E698E4C7D2C911831403C95DC0C7CE402E8044A5F13304108013CE9963", - "validated" : true - }, - { - "ledger_index" : 57112087, - "meta" : "201C00000026F8E5110061250367760A556B80EE9A9AD3FC40F471F29DCB80C678375137CE36220718902EF1EDCD375E7156140FA03FE8C39540CA8189BC7A7956795C712BC0A542C6409C041150703C8574E66240000376DEB77118E1E7220002000024000AB96E2D00000000624000037771BFD2708114D2E44C9FAF7BE9C536219800A6E698E4C7D2C911E1E1E511006125036776155591DA498D40AFD90670555F3D719883B48D224B4E4E906C634DEFA21163E8197756CC20FEBEA6D2AF969EC46F2BD92684D9FBABC3F238E841B5E056FE4EBF4379A9E62400071DA26240000001C0D849F8E1E722000200002400071DA32D0000000062400000012DCFE87881146914CB622B8E41E150DE431F48DA244A69809366E1E1F1031000", - "tx_blob" : "12000022800000002400071DA22E00000001201B0367762D61400000009308615868400000000000002873210381575032E254BF4D699C3D8D6EFDB63B3A71F97475C6F6885BC7DAEEE55D9A0174473045022100E592BCCFD85CCE0B39075EFC66D6BCA594EBB451F12AD5AD9EE533A267F1381B02203635AB46AC110848FC44E797BD19D77A19E10A0F463AA5540B1C62E5D48C81F081146914CB622B8E41E150DE431F48DA244A698093668314D2E44C9FAF7BE9C536219800A6E698E4C7D2C911", - "validated" : true - } - ], - "validated" : true - } + { + "ledger_index": 57112087, + "meta": "201C00000026F8E5110061250367760A556B80EE9A9AD3FC40F471F29DCB80C678375137CE36220718902EF1EDCD375E7156140FA03FE8C39540CA8189BC7A7956795C712BC0A542C6409C041150703C8574E66240000376DEB77118E1E7220002000024000AB96E2D00000000624000037771BFD2708114D2E44C9FAF7BE9C536219800A6E698E4C7D2C911E1E1E511006125036776155591DA498D40AFD90670555F3D719883B48D224B4E4E906C634DEFA21163E8197756CC20FEBEA6D2AF969EC46F2BD92684D9FBABC3F238E841B5E056FE4EBF4379A9E62400071DA26240000001C0D849F8E1E722000200002400071DA32D0000000062400000012DCFE87881146914CB622B8E41E150DE431F48DA244A69809366E1E1F1031000", + "tx_blob": "12000022800000002400071DA22E00000001201B0367762D61400000009308615868400000000000002873210381575032E254BF4D699C3D8D6EFDB63B3A71F97475C6F6885BC7DAEEE55D9A0174473045022100E592BCCFD85CCE0B39075EFC66D6BCA594EBB451F12AD5AD9EE533A267F1381B02203635AB46AC110848FC44E797BD19D77A19E10A0F463AA5540B1C62E5D48C81F081146914CB622B8E41E150DE431F48DA244A698093668314D2E44C9FAF7BE9C536219800A6E698E4C7D2C911", + "validated": true + } + ], + "validated": true + } } ``` + {% /tab %} {% /tabs %} @@ -433,56 +454,56 @@ rippled -- account_tx rLNaPoKeeBjZe2qs6x52yVPZpZ8td4dc6w -1 -1 2 0 binary descen {% tab label="API v2" %} -| `Field` | 型 | 説明 | -|:-------------------|:---------------------------|:---------------------------| -| `account` | 文字列 | 関連するアカウントを識別する一意の[アドレス][] | -| `ledger_index_min` | 数値 - [レジャーインデックス][] | 実際に検索された最小のレジャーのレジャーインデックス。 | -| `ledger_index_max` | 数値 - [レジャーインデックス][] | 実際に検索された最大のレジャーのレジャーインデックス。 | -| `limit` | 数値 | リクエストで使用された`limit`値。(サーバによって強制される実際の制限値とは異なる場合があります。) | -| `marker` | [マーカー][] | レスポンスがページネーションされていることを示す、サーバが定義した値。この値を次のコールに渡して、このコールで終わった箇所から再開します。 | -| `meta` | オブジェクト(JSON) | (JSONモード) トランザクション結果のメタデータのJSON。 | -| `meta_blob` | 文字列(バイナリ) | (バイナリモード) トランザクション結果のメタデータの16進文字列。 | -| `transactions` | 配列 | リクエストの基準を満たすトランザクションの配列。 | -| `validated` | 真偽値 | このフィールドが含まれていて`true`に設定されている場合、このレスポンス内の情報は検証済みのレジャーバージョンから取得されています。そうでない場合、情報は変更される場合があります。 | +| `Field` | 型 | 説明 | +| :----------------- | :------------------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `account` | 文字列 | 関連するアカウントを識別する一意の[アドレス][] | +| `ledger_index_min` | 数値 - [レジャーインデックス][] | 実際に検索された最小のレジャーのレジャーインデックス。 | +| `ledger_index_max` | 数値 - [レジャーインデックス][] | 実際に検索された最大のレジャーのレジャーインデックス。 | +| `limit` | 数値 | リクエストで使用された`limit`値。(サーバによって強制される実際の制限値とは異なる場合があります。) | +| `marker` | [マーカー][] | レスポンスがページネーションされていることを示す、サーバが定義した値。この値を次のコールに渡して、このコールで終わった箇所から再開します。 | +| `meta` | オブジェクト(JSON) | (JSONモード) トランザクション結果のメタデータのJSON。 | +| `meta_blob` | 文字列(バイナリ) | (バイナリモード) トランザクション結果のメタデータの16進文字列。 | +| `transactions` | 配列 | リクエストの基準を満たすトランザクションの配列。 | +| `validated` | 真偽値 | このフィールドが含まれていて`true`に設定されている場合、このレスポンス内の情報は検証済みのレジャーバージョンから取得されています。そうでない場合、情報は変更される場合があります。 | {% admonition type="info" name="注記" %}サーバから返される`ledger_index_min`および`ledger_index_max`の値がリクエストで指定したものとは異なる場合があります。(例えば、サーバに手元の指定したバージョンがない場合など){% /admonition %} 各トランザクションのオブジェクトには以下のフィールドが含まれます。JSONまたはバイナリ(`"binary":true`)フォーマットのどちらでリクエストされたかによって異なります。 -| `Field` | 型 | 説明 | -|:-----------------|:---------------------|:------------------| -| `close_time_iso` | 文字列 | ISO 8601形式で表されたレジャー閉鎖時間。 | -| `hash` | 文字列 | トランザクションの一意のハッシュ識別子。 | -| `ledger_hash` | 文字列 | このトランザクションを含むレジャーバージョンのハッシュの16進文字列。 | -| `ledger_index` | 整数 | このトランザクションを含むレジャーバージョンの[レジャーインデックス][]。 | -| `tx_json` | オブジェクト(JSON) | (JSONモード) JSONオブジェクトでトランザクションを定義します。 | -| `tx_blob` | 文字列(バイナリ) | (バイナリモード) トランザクションを定義する一意の16進文字列。 | +| `Field` | 型 | 説明 | +| :--------------- | :------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------- | +| `close_time_iso` | 文字列 | ISO 8601形式で表されたレジャー閉鎖時間。 | +| `hash` | 文字列 | トランザクションの一意のハッシュ識別子。 | +| `ledger_hash` | 文字列 | このトランザクションを含むレジャーバージョンのハッシュの16進文字列。 | +| `ledger_index` | 整数 | このトランザクションを含むレジャーバージョンの[レジャーインデックス][]。 | +| `tx_json` | オブジェクト(JSON) | (JSONモード) JSONオブジェクトでトランザクションを定義します。 | +| `tx_blob` | 文字列(バイナリ) | (バイナリモード) トランザクションを定義する一意の16進文字列。 | | `validated` | 真偽値 | このトランザクションが検証済みのレジャーに含まれるかどうか。検証済みのレジャーに含まれていないトランザクションはすべて、変更される場合があります。 | {% /tab %} {% tab label="API v1" %} -| `Field` | 型 | 説明 | -| :----------------- | :------------------------------ | ---- | -| `account` | 文字列 | 関連するアカウントを識別する一意の[アドレス][]。 | -| `ledger_index_min` | 整数 - [レジャーインデックス][] | トランザクションで実際に検索された最古のレジャーのレジャーインデックス。 | -| `ledger_index_max` | 整数 - [レジャーインデックス][] | トランザクションで実際に検索された最新のレジャーのレジャーインデックス。 | -| `limit` | 整数 | リクエストで使用される`limit`値。(サーバによって強制される実際の制限値とは異なる場合があります。) | -| `marker` | [マーカー][] | レスポンスがページネーションされていることを示す、サーバが定義した値。この値を次のコールに渡して、このコールで終わった箇所から再開します。 | -| `meta` | オブジェクト(JSON)または文字列(バイナリ) | `binary`が`true`の場合、これはトランザクション結果のメタデータの16進文字列です。そうでない場合、トランザクション結果のメタデータはJSONフォーマットとなります。 | -| `transactions` | 配列 | 以降で説明する、リクエストの基準を満たすトランザクションの配列。 | -| `validated` | ブール値 | このフィールドが含まれていて`true`に設定されている場合、このレスポンス内の情報は検証済みのレジャーバージョンから取得されています。そうでない場合、情報は変更されることがあります。 | +| `Field` | 型 | 説明 | +| :----------------- | :------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `account` | 文字列 | 関連するアカウントを識別する一意の[アドレス][]。 | +| `ledger_index_min` | 整数 - [レジャーインデックス][] | トランザクションで実際に検索された最古のレジャーのレジャーインデックス。 | +| `ledger_index_max` | 整数 - [レジャーインデックス][] | トランザクションで実際に検索された最新のレジャーのレジャーインデックス。 | +| `limit` | 整数 | リクエストで使用される`limit`値。(サーバによって強制される実際の制限値とは異なる場合があります。) | +| `marker` | [マーカー][] | レスポンスがページネーションされていることを示す、サーバが定義した値。この値を次のコールに渡して、このコールで終わった箇所から再開します。 | +| `meta` | オブジェクト(JSON)または文字列(バイナリ) | `binary`が`true`の場合、これはトランザクション結果のメタデータの16進文字列です。そうでない場合、トランザクション結果のメタデータはJSONフォーマットとなります。 | +| `transactions` | 配列 | 以降で説明する、リクエストの基準を満たすトランザクションの配列。 | +| `validated` | ブール値 | このフィールドが含まれていて`true`に設定されている場合、このレスポンス内の情報は検証済みのレジャーバージョンから取得されています。そうでない場合、情報は変更されることがあります。 | {% admonition type="info" name="注記" %}サーバから返される`ledger_index_min`および`ledger_index_max`の値がリクエストで指定したものとは異なる場合があります。例えば、サーバに手元の指定したバージョンがない場合など。{% /admonition %} 各トランザクションのオブジェクトには以下のフィールドが含まれます。含まれるフィールドは、JSONまたは16進文字列(`"binary":true`)フォーマットのどちらでリクエストされたかによって異なります。 -| `Field` | 型 | 説明 | -| :------------- | :----------- | ---- | -| `ledger_index` | 整数 | このトランザクションを含むレジャーバージョンの[レジャーインデックス][]。 | -| `tx` | オブジェクト | (JSONモード) トランザクションのJSON表現。 | -| `tx_blob` | 文字列 | (バイナリモード) トランザクションの16進文字列表現。 | +| `Field` | 型 | 説明 | +| :------------- | :----------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | +| `ledger_index` | 整数 | このトランザクションを含むレジャーバージョンの[レジャーインデックス][]。 | +| `tx` | オブジェクト | (JSONモード) トランザクションのJSON表現。 | +| `tx_blob` | 文字列 | (バイナリモード) トランザクションの16進文字列表現。 | | `validated` | ブール値 | トランザクションが検証済みのレジャーに含まれるかどうか。検証済みのレジャーに含まれていないトランザクションはすべて、変更される場合があります。 | {% /tab %} @@ -491,12 +512,12 @@ rippled -- account_tx rLNaPoKeeBjZe2qs6x52yVPZpZ8td4dc6w -1 -1 2 0 binary descen ## 考えられるエラー -* いずれかの[汎用エラータイプ][]。 -* 1つ以上のフィールドが正しく指定されていないか、1つ以上の必須フィールドが欠落しています。[API v1][]では、以下のように指定することで、このエラーを回避できます。 - * `ledger_index_min`または`ledger_index_max`、または`ledger_index`または`ledger_hash`を指定します。 - * `binary`または`forward`フィールドに対して非ブール値を指定します。 -* `actMalformed` - リクエストの`account`フィールドに指定した[アドレス][]が、正しいフォーマットではありません。 -* `lgrIdxMalformed` - `ledger_index_min`または`ledger_index_max`で指定したレジャーが存在しないか、存在してはいるもののサーバが保有していません。[API v1][]では、`ledger_index_min`または`ledger_index_max`にサーバが保有していないレジャーの範囲を指定した場合にこのエラーが発生します。 -* `lgrIdxsInvalid` - リクエストで`ledger_index_min`の前にある`ledger_index_max`を指定したか、[ネットワークと同期](../../../../infrastructure/troubleshooting/index.md)されていないためにサーバに検証済みレジャーの範囲が存在しません。 +- いずれかの[汎用エラータイプ][]。 +- 1つ以上のフィールドが正しく指定されていないか、1つ以上の必須フィールドが欠落しています。[API v1][]では、以下のように指定することで、このエラーを回避できます。 + - `ledger_index_min`または`ledger_index_max`、または`ledger_index`または`ledger_hash`を指定します。 + - `binary`または`forward`フィールドに対して非ブール値を指定します。 +- `actMalformed` - リクエストの`account`フィールドに指定した[アドレス][]が、正しいフォーマットではありません。 +- `lgrIdxMalformed` - `ledger_index_min`または`ledger_index_max`で指定したレジャーが存在しないか、存在してはいるもののサーバが保有していません。[API v1][]では、`ledger_index_min`または`ledger_index_max`にサーバが保有していないレジャーの範囲を指定した場合にこのエラーが発生します。 +- `lgrIdxsInvalid` - リクエストで`ledger_index_min`の前にある`ledger_index_max`を指定したか、[ネットワークと同期](../../../../infrastructure/troubleshooting/index.md)されていないためにサーバに検証済みレジャーの範囲が存在しません。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/gateway_balances.md b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/gateway_balances.md index ec0afa3113..e1c10173b1 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/gateway_balances.md +++ b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/gateway_balances.md @@ -2,51 +2,55 @@ html: gateway_balances.html parent: account-methods.html seo: - description: 特定のアカウントから発行された残高の合計を計算します。 + description: 特定のアカウントから発行された残高の合計を計算します。 labels: - トークン - アカウント --- + # gateway_balances + [[ソース]](https://github.com/XRPLF/rippled/blob/9111ad1a9dc37d49d085aa317712625e635197c0/src/ripple/rpc/handlers/GatewayBalances.cpp "Source") `gateway_balances`コマンドは、特定のアカウントから発行された残高の合計を計算します。オプションで、[運用アドレス](../../../../concepts/accounts/account-types.md)が保有する額を除外できます。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.28.2" %}新規: rippled 0.28.2{% /badge %} ## リクエストのフォーマット + リクエストのフォーマットの例: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": "example_gateway_balances_1", - "command": "gateway_balances", - "account": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "strict": true, - "hotwallet": ["rKm4uWpg9tfwbVSeATv4KxDe6mpE9yPkgJ","ra7JkEzrgeKHdzKgo4EUUVBnxggY4z37kt"], - "ledger_index": "validated" + "id": "example_gateway_balances_1", + "command": "gateway_balances", + "account": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "strict": true, + "hotwallet": ["rKm4uWpg9tfwbVSeATv4KxDe6mpE9yPkgJ", "ra7JkEzrgeKHdzKgo4EUUVBnxggY4z37kt"], + "ledger_index": "validated" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "gateway_balances", - "params": [ - { - "account": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "hotwallet": [ - "rKm4uWpg9tfwbVSeATv4KxDe6mpE9yPkgJ", - "ra7JkEzrgeKHdzKgo4EUUVBnxggY4z37kt" - ], - "ledger_index": "validated", - "strict": true - } - ] + "method": "gateway_balances", + "params": [ + { + "account": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "hotwallet": ["rKm4uWpg9tfwbVSeATv4KxDe6mpE9yPkgJ", "ra7JkEzrgeKHdzKgo4EUUVBnxggY4z37kt"], + "ledger_index": "validated", + "strict": true + } + ] } ``` + {% /tab %} {% /tabs %} @@ -55,12 +59,12 @@ labels: リクエストには以下のパラメーターが含まれます。 -| `Field` | 型 | 説明 | -|:---------------|:---------------------------|:-------------------------------| -| `account` | 文字列 | チェックする[アドレス][]。[発行アドレス](../../../../concepts/accounts/account-types.md)である必要があります。 | -| `strict` | ブール値 | _(省略可)_ trueの場合は、アカウントパラメーターにアドレスまたは公開鍵だけを受け入れます。デフォルトではfalseです。 | -| `hotwallet` | 文字列または配列 | _(省略可)_ 発行済み残高から除外する[運用アドレス](../../../../concepts/accounts/account-types.md)、またはそのようなアドレスの配列。 | -| `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーバージョンの20バイトの16進文字列。([レジャーの指定][]をご覧ください) | +| `Field` | 型 | 説明 | +| :------------- | :----------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `account` | 文字列 | チェックする[アドレス][]。[発行アドレス](../../../../concepts/accounts/account-types.md)である必要があります。 | +| `strict` | ブール値 | _(省略可)_ trueの場合は、アカウントパラメーターにアドレスまたは公開鍵だけを受け入れます。デフォルトではfalseです。 | +| `hotwallet` | 文字列または配列 | _(省略可)_ 発行済み残高から除外する[運用アドレス](../../../../concepts/accounts/account-types.md)、またはそのようなアドレスの配列。 | +| `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーバージョンの20バイトの16進文字列。([レジャーの指定][]をご覧ください) | | `ledger_index` | 文字列または符号なし整数 | _(省略可)_ 使用するレジャーバージョンの[レジャーインデックス][]、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]をご覧ください) | ## レスポンスのフォーマット @@ -70,6 +74,7 @@ labels: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 3, @@ -135,9 +140,11 @@ labels: } } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK { @@ -202,6 +209,7 @@ labels: } } ``` + {% /tab %} {% /tabs %} @@ -210,22 +218,22 @@ labels: このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 -| `Field` | 型 | 説明 | -|:-----------------------|:--------------------------|:------------------------| -| `account` | 文字列 - [アドレス][] | 残高を発行したアカウントのアドレス。 | -| `obligations` | オブジェクト | (空の場合は省略)除外されていないアドレスに発行された額の合計。発行された価値の合計に対する通貨のマップとして示されます。 | -| `balances` | オブジェク | _(空の場合は省略)_ リクエストから`hotwallet`アドレスに発行された額。キーはアドレスであり、値はアドレスが保有する通貨額の配列です。 | -| `assets` | オブジェクト | _(空の場合は省略)_ 他から発行された保有額の合計。推奨される構成では、[発行アドレス](../../../../concepts/accounts/account-types.md)の保有額はありません。 | -| `ledger_hash` | 文字列 - [ハッシュ][] | _(省略される場合があります)_ このレスポンスの生成に使用されたレジャーバージョンの識別用ハッシュ。 | -| `ledger_index` | 数値 - [レジャーインデックス][] | _(省略される場合があります)_ このレスポンスの生成に使用されたレジャーバージョンのレジャーインデックス。 | | -| `ledger_current_index` | 数値 - [レジャーインデックス][] | _(`ledger_current_index`が指定されている場合は省略)_ この情報の取得時に使用した、現在処理中のレジャーバージョンの[レジャーインデックス][]。 | +| `Field` | 型 | 説明 | +| :--------------------- | :------------------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------- | --- | +| `account` | 文字列 - [アドレス][] | 残高を発行したアカウントのアドレス。 | +| `obligations` | オブジェクト | (空の場合は省略)除外されていないアドレスに発行された額の合計。発行された価値の合計に対する通貨のマップとして示されます。 | +| `balances` | オブジェク | _(空の場合は省略)_ リクエストから`hotwallet`アドレスに発行された額。キーはアドレスであり、値はアドレスが保有する通貨額の配列です。 | +| `assets` | オブジェクト | _(空の場合は省略)_ 他から発行された保有額の合計。推奨される構成では、[発行アドレス](../../../../concepts/accounts/account-types.md)の保有額はありません。 | +| `ledger_hash` | 文字列 - [ハッシュ][] | _(省略される場合があります)_ このレスポンスの生成に使用されたレジャーバージョンの識別用ハッシュ。 | +| `ledger_index` | 数値 - [レジャーインデックス][] | _(省略される場合があります)_ このレスポンスの生成に使用されたレジャーバージョンのレジャーインデックス。 | | +| `ledger_current_index` | 数値 - [レジャーインデックス][] | _(`ledger_current_index`が指定されている場合は省略)_ この情報の取得時に使用した、現在処理中のレジャーバージョンの[レジャーインデックス][]。 | ## 考えられるエラー -* いずれかの[汎用エラータイプ][]。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* `invalidHotWallet` - `hotwallet`フィールドに指定されている1つ以上のアドレスが、リクエストに指定されているアカウントが発行した通貨を保有しているアカウントの[アドレス][]ではありません。 -* `actNotFound` - リクエストの`account`フィールドに指定されている[アドレス][]が、レジャーのアカウントに対応していません。 -* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバが保有していません。 +- いずれかの[汎用エラータイプ][]。 +- `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 +- `invalidHotWallet` - `hotwallet`フィールドに指定されている1つ以上のアドレスが、リクエストに指定されているアカウントが発行した通貨を保有しているアカウントの[アドレス][]ではありません。 +- `actNotFound` - リクエストの`account`フィールドに指定されている[アドレス][]が、レジャーのアカウントに対応していません。 +- `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバが保有していません。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/index.md b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/index.md index 47dc2af645..95a1fcd23b 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/index.md +++ b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/index.md @@ -4,9 +4,9 @@ parent: public-api-methods.html metadata: indexPage: true --- + # Accountメソッド XRP Ledgerのアカウントとは、XRPの保有者とトランザクションの送信者を意味します。以下のメソッドを使用して、アカウント情報を処理することができます。 - {% child-pages /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/noripple_check.md b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/noripple_check.md index 1621ffdd39..993e8d5efc 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/noripple_check.md +++ b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/account-methods/noripple_check.md @@ -2,49 +2,56 @@ html: noripple_check.html parent: account-methods.html seo: - description: アカウントのDefaultRippleフィールドとそのトラストラインのNoRippleフラグの状態を、推奨される設定と比較して迅速にチェックします。 + description: アカウントのDefaultRippleフィールドとそのトラストラインのNoRippleフラグの状態を、推奨される設定と比較して迅速にチェックします。 labels: - トークン --- + # noripple_check + [[ソース]](https://github.com/XRPLF/rippled/blob/9111ad1a9dc37d49d085aa317712625e635197c0/src/ripple/rpc/handlers/NoRippleCheck.cpp "Source") `noripple_check`コマンドを使用すると、[アカウントのDefaultRippleフィールドとそのトラストラインのNoRippleフラグ](../../../../concepts/tokens/fungible-tokens/rippling.md)の状態を、推奨される設定と比較して迅速にチェックできます。 ## リクエストのフォーマット + リクエストのフォーマットの例: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": 0, - "command": "noripple_check", - "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "role": "gateway", - "ledger_index": "current", - "limit": 2, - "transactions": true + "id": 0, + "command": "noripple_check", + "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "role": "gateway", + "ledger_index": "current", + "limit": 2, + "transactions": true } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "noripple_check", - "params": [ - { - "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "ledger_index": "current", - "limit": 2, - "role": "gateway", - "transactions": true - } - ] + "method": "noripple_check", + "params": [ + { + "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "ledger_index": "current", + "limit": 2, + "role": "gateway", + "transactions": true + } + ] } ``` + {% /tab %} {% /tabs %} @@ -55,14 +62,14 @@ labels: リクエストには以下のパラメーターが含まれます。 -| `Field` | 型 | 説明 | -|:---------------|:---------------------------|:-----| -| `account` | 文字列 | アカウントの一意のIDであり、通常はアカウントのアドレスです。 | -| `role` | 文字列 | アドレスが`gateway`と`user`のいずれを指しているか。推奨事項はアカウントの役割に応じて異なります。イシュアーのDefaultRippleを有効にし、すべてのトラストラインでNoRippleを無効にする必要があります。ユーザのDefaultRippleを無効にし、すべてのトラストラインでNoRippleを有効にする必要があります。 | -| `transactions` | ブール値 | _(省略可)_ `true`の場合、提案される[トランザクション](../../../protocol/transactions/index.md)(JSONオブジェクト)の配列を指定します。問題を修正するために、これらのトランザクションに署名して送信することができます。デフォルトでは`false`です。 | -| `limit` | 符号なし整数 | _(省略可)_ 結果に含めることができるトラストライン問題の最大数。デフォルトでは300です。 | -| `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーバージョンの20バイトの16進数文字列。([レジャーの指定][]をご覧ください。 | -| `ledger_index` | 文字列または符号なし整数 | _(省略可)_ 使用するレジャーのシーケンス番号、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]をご覧ください。 | +| `Field` | 型 | 説明 | +| :------------- | :----------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `account` | 文字列 | アカウントの一意のIDであり、通常はアカウントのアドレスです。 | +| `role` | 文字列 | アドレスが`gateway`と`user`のいずれを指しているか。推奨事項はアカウントの役割に応じて異なります。イシュアーのDefaultRippleを有効にし、すべてのトラストラインでNoRippleを無効にする必要があります。ユーザのDefaultRippleを無効にし、すべてのトラストラインでNoRippleを有効にする必要があります。 | +| `transactions` | ブール値 | _(省略可)_ `true`の場合、提案される[トランザクション](../../../protocol/transactions/index.md)(JSONオブジェクト)の配列を指定します。問題を修正するために、これらのトランザクションに署名して送信することができます。デフォルトでは`false`です。 | +| `limit` | 符号なし整数 | _(省略可)_ 結果に含めることができるトラストライン問題の最大数。デフォルトでは300です。 | +| `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーバージョンの20バイトの16進数文字列。([レジャーの指定][]をご覧ください。 | +| `ledger_index` | 文字列または符号なし整数 | _(省略可)_ 使用するレジャーのシーケンス番号、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]をご覧ください。 | ## レスポンスのフォーマット @@ -71,58 +78,61 @@ labels: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": 0, - "status": "success", - "type": "response", - "result": { - "ledger_current_index": 14342939, - "problems": [ - "You should immediately set your default ripple flag", - "You should clear the no ripple flag on your XAU line to r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z", - "You should clear the no ripple flag on your USD line to rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q" - ], - "transactions": [ - { - "Account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "Fee": 10000, - "Sequence": 1406, - "SetFlag": 8, - "TransactionType": "AccountSet" - }, - { - "Account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "Fee": 10000, - "Flags": 262144, - "LimitAmount": { - "currency": "XAU", - "issuer": "r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z", - "value": "0" - }, - "Sequence": 1407, - "TransactionType": "TrustSet" - }, - { - "Account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "Fee": 10000, - "Flags": 262144, - "LimitAmount": { - "currency": "USD", - "issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "value": "5" - }, - "Sequence": 1408, - "TransactionType": "TrustSet" - } - ], - "validated": false - } + "id": 0, + "status": "success", + "type": "response", + "result": { + "ledger_current_index": 14342939, + "problems": [ + "You should immediately set your default ripple flag", + "You should clear the no ripple flag on your XAU line to r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z", + "You should clear the no ripple flag on your USD line to rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q" + ], + "transactions": [ + { + "Account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "Fee": 10000, + "Sequence": 1406, + "SetFlag": 8, + "TransactionType": "AccountSet" + }, + { + "Account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "Fee": 10000, + "Flags": 262144, + "LimitAmount": { + "currency": "XAU", + "issuer": "r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z", + "value": "0" + }, + "Sequence": 1407, + "TransactionType": "TrustSet" + }, + { + "Account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "Fee": 10000, + "Flags": 262144, + "LimitAmount": { + "currency": "USD", + "issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "value": "5" + }, + "Sequence": 1408, + "TransactionType": "TrustSet" + } + ], + "validated": false + } } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK { @@ -171,23 +181,24 @@ labels: } } ``` + {% /tab %} {% /tabs %} レスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 -| `Field` | 型 | 説明 | -|:-----------------------|:-------|:-------------------------------------------| -| `ledger_current_index` | 数値 | これらの結果の計算に使用するレジャーのシーケンス番号。 | -| `problems` | 配列 | 人間が読み取ることができる形式の問題の記述が含まれている文字列の配列。アカウントのDefaultRipple設定が推奨に従っていない場合は、最大1つのエントリが含まれます。加えて、NoRipple設定が推奨に従っていないトラストラインのエントリ(最大で`limit`に指定されている数)も含まれます。 | -| `transactions` | 配列 | (省略される場合があります)リクエストで`transactions`が`true`に指定されている場合、これはJSONオブジェクトの配列です。各JSONオブジェクトは、JSON形式の[トランザクション](../../../protocol/transactions/index.md)で、記述されている問題の1つを修正します。この配列の長さは`problems`配列と同じであり、各エントリは、その配列の同じインデックスで記述されている問題の修正を目的としています。 | +| `Field` | 型 | 説明 | +| :--------------------- | :--- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `ledger_current_index` | 数値 | これらの結果の計算に使用するレジャーのシーケンス番号。 | +| `problems` | 配列 | 人間が読み取ることができる形式の問題の記述が含まれている文字列の配列。アカウントのDefaultRipple設定が推奨に従っていない場合は、最大1つのエントリが含まれます。加えて、NoRipple設定が推奨に従っていないトラストラインのエントリ(最大で`limit`に指定されている数)も含まれます。 | +| `transactions` | 配列 | (省略される場合があります)リクエストで`transactions`が`true`に指定されている場合、これはJSONオブジェクトの配列です。各JSONオブジェクトは、JSON形式の[トランザクション](../../../protocol/transactions/index.md)で、記述されている問題の1つを修正します。この配列の長さは`problems`配列と同じであり、各エントリは、その配列の同じインデックスで記述されている問題の修正を目的としています。 | ## 考えられるエラー -* [汎用エラータイプ][]のすべて。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。[API v1][]では、`transactions`フィールドに非ブール値を指定した場合にこのエラーが発生します。 -* `actNotFound` - リクエストの`account`フィールドに指定されている[アドレス][]が、レジャーのアカウントに対応していません。 -* `lgrNotFound` - `ledger_hash`または`ledger_index`に指定されているレジャーが存在しないか、存在しているがサーバにはありません。 +- [汎用エラータイプ][]のすべて。 +- `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。[API v1][]では、`transactions`フィールドに非ブール値を指定した場合にこのエラーが発生します。 +- `actNotFound` - リクエストの`account`フィールドに指定されている[アドレス][]が、レジャーのアカウントに対応していません。 +- `lgrNotFound` - `ledger_hash`または`ledger_index`に指定されているレジャーが存在しないか、存在しているがサーバにはありません。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/clio-methods/index.md b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/clio-methods/index.md index 3e9b66fe54..3543c183cd 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/clio-methods/index.md +++ b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/clio-methods/index.md @@ -4,9 +4,9 @@ parent: public-api-methods.html metadata: indexPage: true --- + # Clio Serverメソッド 以下のメソッドを使用して、ClioサーバのAPIから情報を取得することができます。 - {% child-pages /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/clio-methods/ledger-clio.md b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/clio-methods/ledger-clio.md index edf737983a..cc943f6eb5 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/clio-methods/ledger-clio.md +++ b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/clio-methods/ledger-clio.md @@ -2,11 +2,13 @@ html: ledger-clio.html # Watch carefully for clashes w/ this filename parent: clio-methods.html seo: - description: レジャーのバージョン情報を取得します。 + description: レジャーのバージョン情報を取得します。 labels: - ブロックチェーン --- + # ledger + [[ソース]](https://github.com/XRPLF/clio/blob/master/src/rpc/handlers/Ledger.cpp "ソース") `ledger`コマンドは公開されている[レジャー](../../../../concepts/ledgers/index.md)の情報を取得します。{% badge href="https://github.com/XRPLF/clio/releases/tag/1.0.0" %}新規: Clio v1.0.0{% /badge %} @@ -14,6 +16,7 @@ labels: Clioサーバはデフォルトで検証済みのレジャーデータを返すことに注意してください。 ## リクエストのフォーマット + リクエストのフォーマットの例: {% tabs %} @@ -32,24 +35,24 @@ Clioサーバはデフォルトで検証済みのレジャーデータを返す リクエストには以下のパラメータを含めることができます。 -| `Field` | 型 | 説明 | -|:---------------|:----------------------|:-------------------------------| -| `ledger_hash` | [ハッシュ][] | _(省略可)_ 使用するレジャーバージョンの20バイトの16進文字列。([レジャーの指定][]ご覧ください。) | -| `ledger_index` | [レジャーインデックス][] | _(省略可)_ 使用するレジャーの[レジャーインデックス][]、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]をご覧ください) | -| `transactions` | 真偽値 | _(省略可)_ `true`の場合、指定されたレジャーバージョンのトランザクションに関する情報が返されます。デフォルトでは`false`です。レジャーバージョンを指定しない場合は無視されます。 | -| `expand` | 真偽値 | _(省略可)_ ハッシュのみではなく、トランザクション/アカウントの完全な情報がJSONフォーマットで提供されます。デフォルトでは`false`です。トランザクション、アカウント、またはその両方をリクエストしない場合は無視されます。 | -| `owner_funds` | 真偽値 | _(省略可)_ `true`の場合、レスポンスのOfferCreateトランザクションのメタデータに`owner_funds`フィールドが含まれます。デフォルトでは`false`です。トランザクションが含まれておらず、`expand`がtrueではない場合には無視されます。 | -| `binary` | 真偽値 | _(省略可)_ `true`で、かつ`transactions`と`expand`が両方とも`true`の場合、JSONフォーマットではなくバイナリフォーマット(16進文字列)でトランザクション情報が返されます。 | -| `diff` | 真偽値 | _(省略可)_ `true`の場合、指定したレジャーのトランザクションの一部として追加、変更、または削除されたすべてのオブジェクトを返します。 | +| `Field` | 型 | 説明 | +| :------------- | :----------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `ledger_hash` | [ハッシュ][] | _(省略可)_ 使用するレジャーバージョンの20バイトの16進文字列。([レジャーの指定][]ご覧ください。) | +| `ledger_index` | [レジャーインデックス][] | _(省略可)_ 使用するレジャーの[レジャーインデックス][]、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]をご覧ください) | +| `transactions` | 真偽値 | _(省略可)_ `true`の場合、指定されたレジャーバージョンのトランザクションに関する情報が返されます。デフォルトでは`false`です。レジャーバージョンを指定しない場合は無視されます。 | +| `expand` | 真偽値 | _(省略可)_ ハッシュのみではなく、トランザクション/アカウントの完全な情報がJSONフォーマットで提供されます。デフォルトでは`false`です。トランザクション、アカウント、またはその両方をリクエストしない場合は無視されます。 | +| `owner_funds` | 真偽値 | _(省略可)_ `true`の場合、レスポンスのOfferCreateトランザクションのメタデータに`owner_funds`フィールドが含まれます。デフォルトでは`false`です。トランザクションが含まれておらず、`expand`がtrueではない場合には無視されます。 | +| `binary` | 真偽値 | _(省略可)_ `true`で、かつ`transactions`と`expand`が両方とも`true`の場合、JSONフォーマットではなくバイナリフォーマット(16進文字列)でトランザクション情報が返されます。 | +| `diff` | 真偽値 | _(省略可)_ `true`の場合、指定したレジャーのトランザクションの一部として追加、変更、または削除されたすべてのオブジェクトを返します。 | `ledger`フィールドは廃止予定であり、今後予告なしに削除される可能性があります。 {% admonition type="info" name="注記" %} Clioの`ledger`コマンドは、[rippledのledgerコマンド](../ledger-methods/ledger.md)でサポートされている以下のフィールドをサポートしていません。 -* `accounts` -* `full` -* `queue` +- `accounts` +- `full` +- `queue` 上記のフィールドのいずれかが`true`に設定されている場合、Clioは**常に**リクエストを`rippled`に転送します。 {% /admonition %} @@ -72,50 +75,49 @@ Clioの`ledger`コマンドは、[rippledのledgerコマンド](../ledger-method レスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果にレジャーに関する情報を表す次のフィールドが含まれています。 -| `Field` | 型 | 説明 | -|:-------------------------------|:-----------|:----------------------------------| -| `ledger` | オブジェクト | このレジャーの完全なヘッダーデータ。 | -| `ledger.account_hash` | 文字列 | このレジャーのすべてのアカウントの状態情報のハッシュ値。 | -| `ledger.accountState` | 配列 | (リクエストで指定がない場合省略) このレジャーのすべての[アカウント状態情報](../../../protocol/ledger-data/index.md)(16進数) | -| `ledger.close_flags` | 数値 | このレジャーの[クローズに関するフラグ](../../../protocol/ledger-data/ledger-header.md#close-flags)のビットマップ。 | -| `ledger.close_time` | 数値 | レジャーが閉鎖された時刻([Rippleエポック以降の経過秒数][])。 | -| `ledger.close_time_human` | 文字列 | 人間が読めるフォーマットでのこのレジャーが閉鎖された時刻。常にUTCタイムゾーンを使用します。 | -| `ledger.close_time_resolution` | 数値 | レジャー閉鎖時刻が丸められる秒数の範囲。 | -| `ledger.closed` | 真偽値 | このレジャーが閉鎖されているかどうか。 | -| `ledger.ledger_hash` | 文字列 | レジャー全体の一意の識別用ハッシュ。 | -| `ledger.ledger_index` | 文字列 | このレジャーの[レジャーインデックス][]。整数を引用符で囲んだ形式で示されます。 | -| `ledger.parent_close_time` | 数値 | 前のレジャーが閉鎖された時刻。 | -| `ledger.parent_hash` | 文字列 | このレジャーの直前のレジャーの一意の識別用ハッシュ。 | -| `ledger.total_coins` | 文字列 | ネットワークのXRPの合計(drop数)。整数を引用符で囲んだ形式で示されます。(トランザクションコストによりXRPが焼却されると、この値は減少します。) | -| `ledger.transaction_hash` | 文字列 | このレジャーに記録されているトランザクション情報のハッシュ(16進数) | -| `ledger.transactions` | 配列 | (リクエストで指定がない場合省略) このレジャーバージョンで適用されたトランザクション。デフォルトでは、メンバーはトランザクションの識別用[ハッシュ][]文字列です。リクエストで`expand`がtrueとして指定されている場合は、メンバーはJSONフォーマットまたはバイナリフォーマットでのトランザクションの完全な表現です。フォーマットは、リクエストで`binary`がtrueとして指定されていたかどうかに応じて決まります。 | -| `ledger_hash` | 文字列 | レジャー全体の一意の識別用ハッシュ。 | -| `ledger_index` | 数値 | このレジャーの[レジャーインデックス][]。 | -| `validated` | 真偽値 | _(省略される場合があります)_ `true`の場合、このレジャーは最終バージョンです。省略または `false` の場合、このレジャーのデータは最終版ではありません。 | -| `diff` | オブジェクト | _(リクエストで`diff`パラメータの指定がない場合省略)_ レジャーのトランザクションの一部として追加、変更、または削除されたハッシュの配列を含むオブジェクト。 | +| `Field` | 型 | 説明 | +| :----------------------------- | :----------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `ledger` | オブジェクト | このレジャーの完全なヘッダーデータ。 | +| `ledger.account_hash` | 文字列 | このレジャーのすべてのアカウントの状態情報のハッシュ値。 | +| `ledger.accountState` | 配列 | (リクエストで指定がない場合省略) このレジャーのすべての[アカウント状態情報](../../../protocol/ledger-data/index.md)(16進数) | +| `ledger.close_flags` | 数値 | このレジャーの[クローズに関するフラグ](../../../protocol/ledger-data/ledger-header.md#close-flags)のビットマップ。 | +| `ledger.close_time` | 数値 | レジャーが閉鎖された時刻([Rippleエポック以降の経過秒数][])。 | +| `ledger.close_time_human` | 文字列 | 人間が読めるフォーマットでのこのレジャーが閉鎖された時刻。常にUTCタイムゾーンを使用します。 | +| `ledger.close_time_resolution` | 数値 | レジャー閉鎖時刻が丸められる秒数の範囲。 | +| `ledger.closed` | 真偽値 | このレジャーが閉鎖されているかどうか。 | +| `ledger.ledger_hash` | 文字列 | レジャー全体の一意の識別用ハッシュ。 | +| `ledger.ledger_index` | 文字列 | このレジャーの[レジャーインデックス][]。整数を引用符で囲んだ形式で示されます。 | +| `ledger.parent_close_time` | 数値 | 前のレジャーが閉鎖された時刻。 | +| `ledger.parent_hash` | 文字列 | このレジャーの直前のレジャーの一意の識別用ハッシュ。 | +| `ledger.total_coins` | 文字列 | ネットワークのXRPの合計(drop数)。整数を引用符で囲んだ形式で示されます。(トランザクションコストによりXRPが焼却されると、この値は減少します。) | +| `ledger.transaction_hash` | 文字列 | このレジャーに記録されているトランザクション情報のハッシュ(16進数) | +| `ledger.transactions` | 配列 | (リクエストで指定がない場合省略) このレジャーバージョンで適用されたトランザクション。デフォルトでは、メンバーはトランザクションの識別用[ハッシュ][]文字列です。リクエストで`expand`がtrueとして指定されている場合は、メンバーはJSONフォーマットまたはバイナリフォーマットでのトランザクションの完全な表現です。フォーマットは、リクエストで`binary`がtrueとして指定されていたかどうかに応じて決まります。 | +| `ledger_hash` | 文字列 | レジャー全体の一意の識別用ハッシュ。 | +| `ledger_index` | 数値 | このレジャーの[レジャーインデックス][]。 | +| `validated` | 真偽値 | _(省略される場合があります)_ `true`の場合、このレジャーは最終バージョンです。省略または `false` の場合、このレジャーのデータは最終版ではありません。 | +| `diff` | オブジェクト | _(リクエストで`diff`パラメータの指定がない場合省略)_ レジャーのトランザクションの一部として追加、変更、または削除されたハッシュの配列を含むオブジェクト。 | リクエストに`"owner_funds": true`が指定されておりトランザクションが展開されている場合、レスポンスには、各[OfferCreateトランザクション][]の`metaData`オブジェクトの`owner_funds`フィールドが含まれています。このフィールドの目的は、新しい検証済みレジャーごとに[オファーの資金化ステータス](../../../../concepts/tokens/decentralized-exchange/offers.md#オファーのライフサイクル)を容易に追跡できるようにすることです。このフィールドの定義は、[オーダーブックサブスクリプションストリーム](../subscription-methods/subscribe.md#オーダーブックストリーム)でのこのフィールドのバージョンとはわずかに異なります。 -| `Field` | 値 | 説明 | -|:--------------|:------|:----------------------------------------------------| +| `Field` | 値 | 説明 | +| :------------ | :----- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `owner_funds` | 文字列 | このレジャーのすべてのトランザクションの実行後に、このOfferCreateトランザクションを送信する`Account`が保有する`TakerGets`通貨の額。この通貨額が[フリーズ](../../../../concepts/tokens/fungible-tokens/freezes.md)されているかどうかはチェックされません。 | リクエストで`”diff": true`を指定した場合、レスポンスにはオブジェクト`diff`が含まれます。このオブジェクトのフィールドは以下の通りです。 -| `Field` | 値 | 説明 | -|:--------------|:---------------------------|:----------------------------------------------------| -| `object_id` | 文字列 | オブジェクトのID | -| `Hashes` | オブジェクトまたは16進文字列 | リクエストが`binary`をtrueに設定したかfalseに設定したかに応じて、このフィールドは作成されたオブジェクトの内容、変更されたオブジェクトの新しい値、またはオブジェクトが削除された場合は空の文字列を返します。 | +| `Field` | 値 | 説明 | +| :---------- | :--------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `object_id` | 文字列 | オブジェクトのID | +| `Hashes` | オブジェクトまたは16進文字列 | リクエストが`binary`をtrueに設定したかfalseに設定したかに応じて、このフィールドは作成されたオブジェクトの内容、変更されたオブジェクトの新しい値、またはオブジェクトが削除された場合は空の文字列を返します。 | ### `diff`に`true`を設定した場合のレスポンス - `{% code-snippet file="/_api-examples/ledger-clio/jsonrpc-diff-response.json" language="json" /%}` ## 考えられるエラー -* [汎用エラータイプ][]のすべて。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバが保有していません。 +- [汎用エラータイプ][]のすべて。 +- `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 +- `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバが保有していません。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/clio-methods/nft_history.md b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/clio-methods/nft_history.md index e026831d53..37c930b604 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/clio-methods/nft_history.md +++ b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/clio-methods/nft_history.md @@ -2,10 +2,11 @@ html: nft_history.html parent: clio-methods.html seo: - description: Clioサーバの`nft_history`API を使用して、指定した NFT の所有権と移動の履歴を取得します。 + description: Clioサーバの`nft_history`API を使用して、指定した NFT の所有権と移動の履歴を取得します。 labels: - 非代替性トークン, NFT --- + # nft_history [[ソース]](https://github.com/XRPLF/clio/blob/4a5cb962b6971872d150777881801ce27ae9ed1a/src/rpc/handlers/NFTHistory.cpp "ソース") @@ -15,11 +16,13 @@ labels: {% admonition type="info" name="注記" %}`nft_history`はNFTに関連する成功したトランザクションのみを返します。{% /admonition %} ## リクエストのフォーマット + リクエストのフォーマットの例: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 1, @@ -27,19 +30,22 @@ labels: "nft_id": "00080000B4F4AFC5FBCBD76873F18006173D2193467D3EE70000099B00000000" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "nft_history", - "params": [ - { - "nft_id": "00080000B4F4AFC5FBCBD76873F18006173D2193467D3EE70000099B00000000" - } - ] + "method": "nft_history", + "params": [ + { + "nft_id": "00080000B4F4AFC5FBCBD76873F18006173D2193467D3EE70000099B00000000" + } + ] } ``` + {% /tab %} {% /tabs %} @@ -48,17 +54,17 @@ labels: リクエストには以下のパラメーターが含まれます。 -| `Field` | 型 | 説明 | -|:-------------------|:-----------------------|:-------------------------------| -| `nft_id` | 文字列 | 非代替性トークン(NFT)の一意の識別子。 | -| `ledger_index_min` | 整数 | _(省略可)_ NFTを含む最も古いレジャーを指定します。値`-1`を指定すると、検証済みの最も古いレジャーのバージョンを使用するようにサーバに指示します。 | -| `ledger_index_max` | 整数 | _(省略可)_ NFTを含める最新のレジャーを指定します。値`-1`を指定すると、利用可能な最新の有効なレジャーのバージョンを使用するようにサーバに指示します。 | -| `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーのバージョンを示す20バイトの16進文字列。[レジャーの指定][]をご覧ください)。 | +| `Field` | 型 | 説明 | +| :----------------- | :------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `nft_id` | 文字列 | 非代替性トークン(NFT)の一意の識別子。 | +| `ledger_index_min` | 整数 | _(省略可)_ NFTを含む最も古いレジャーを指定します。値`-1`を指定すると、検証済みの最も古いレジャーのバージョンを使用するようにサーバに指示します。 | +| `ledger_index_max` | 整数 | _(省略可)_ NFTを含める最新のレジャーを指定します。値`-1`を指定すると、利用可能な最新の有効なレジャーのバージョンを使用するようにサーバに指示します。 | +| `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーのバージョンを示す20バイトの16進文字列。[レジャーの指定][]をご覧ください)。 | | `ledger_index` | 文字列 または 符号なし整数 | _(省略可)_ 使用するレジャーの[レジャーインデックス][]あるいは、レジャーを自動的に選択するためのショートカット文字列。 `ledger_index`に`closed`や `current`を指定しないでください。指定した場合、P2Pの`rippled`サーバにリクエストが転送されますが、`nft_history`APIは`rippled`では利用できません。[レジャーの指定][]をご覧ください)。 | -| `binary` | 真偽値 | _(省略可)_ デフォルトは`false`。`true`に設定すると、トランザクションをJSONではなく16進数の文字列で返します。 | -| `forward` | 真偽値 | _(省略可)_ デフォルトは`false`。`true`に設定すると、最も古いレジャーからインデックスを付けて返します。そうでない場合は、新しいレジャーからインデックスが付けられます。(結果の各ページは内部的には順序付けされていないかもしれませんが、ページ全体としては順序付けされています)。 | -| `limit` | UInt32 | _(省略可)_ 取得するNFTの数を制限します。サーバはこの値を守る必要はありません。 | -| `marker` | マーカー | 以前のページ分割されたレスポンスの値。そのレスポンスが終了したところからデータの取得を再開します。サーバで使用可能なレジャーの範囲が変更された場合、この値は変化する可能性があります。"検証済み"レジャーを照会している場合、ページング中に新しいNFTが作成される可能性があります。 | +| `binary` | 真偽値 | _(省略可)_ デフォルトは`false`。`true`に設定すると、トランザクションをJSONではなく16進数の文字列で返します。 | +| `forward` | 真偽値 | _(省略可)_ デフォルトは`false`。`true`に設定すると、最も古いレジャーからインデックスを付けて返します。そうでない場合は、新しいレジャーからインデックスが付けられます。(結果の各ページは内部的には順序付けされていないかもしれませんが、ページ全体としては順序付けされています)。 | +| `limit` | UInt32 | _(省略可)_ 取得するNFTの数を制限します。サーバはこの値を守る必要はありません。 | +| `marker` | マーカー | 以前のページ分割されたレスポンスの値。そのレスポンスが終了したところからデータの取得を再開します。サーバで使用可能なレジャーの範囲が変更された場合、この値は変化する可能性があります。"検証済み"レジャーを照会している場合、ページング中に新しいNFTが作成される可能性があります。 | {% admonition type="info" name="注記" %}レジャーのバージョンを指定しない場合、Clioは検証済みの最新のレジャーを使用します。{% /admonition %} @@ -69,6 +75,7 @@ labels: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 0, @@ -151,9 +158,11 @@ labels: ] } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { "result": { @@ -234,6 +243,7 @@ labels: ] } ``` + {% /tab %} {% /tabs %} @@ -243,6 +253,7 @@ labels: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 0, @@ -270,9 +281,11 @@ labels: ] } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { "result": { @@ -297,44 +310,44 @@ labels: } ] } - ``` + {% /tab %} {% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 -| `Field` | 型 | 説明 | -|:-------------------|:----------------------------|:---------------------------| -| `nft_id` | 文字列 | 非代替性トークン(NFT)の一意の識別子。 | -| `ledger_index_min` | 整数 - [レジャーインデックス][] | 実際にトランザクションを検索した最も古いレジャーのレジャーインデックス。 | -| `ledger_index_max` | 整数 - [レジャーインデックス][] | 実際にトランザクションを検索した最新のレジャーのレジャーインデックス。 | -| `limit` | 整数 | リクエストで使われる`limit`の値。(これはサーバによって強制される実際の値とは異なるかもしれません)。 | -| `marker` | [マーカー][] | レスポンスがページ分割されていることを示す、サーバ定義の値。この値を次の呼び出しに渡すと、この呼び出しが中断したところから再開します。 | -| `transactions` | 配列 | 以下に説明するように、リクエストの条件に一致するトランザクションの配列。 | -| `validated` | 真偽値 | レスポンスに含まれ、`true`に設定されている場合、このレスポンスの情報は検証済みのレジャーのバージョンに基づきます。`false`の場合、情報は変更される可能性があります。 | +| `Field` | 型 | 説明 | +| :----------------- | :------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `nft_id` | 文字列 | 非代替性トークン(NFT)の一意の識別子。 | +| `ledger_index_min` | 整数 - [レジャーインデックス][] | 実際にトランザクションを検索した最も古いレジャーのレジャーインデックス。 | +| `ledger_index_max` | 整数 - [レジャーインデックス][] | 実際にトランザクションを検索した最新のレジャーのレジャーインデックス。 | +| `limit` | 整数 | リクエストで使われる`limit`の値。(これはサーバによって強制される実際の値とは異なるかもしれません)。 | +| `marker` | [マーカー][] | レスポンスがページ分割されていることを示す、サーバ定義の値。この値を次の呼び出しに渡すと、この呼び出しが中断したところから再開します。 | +| `transactions` | 配列 | 以下に説明するように、リクエストの条件に一致するトランザクションの配列。 | +| `validated` | 真偽値 | レスポンスに含まれ、`true`に設定されている場合、このレスポンスの情報は検証済みのレジャーのバージョンに基づきます。`false`の場合、情報は変更される可能性があります。 | {% admonition type="info" name="注記" %}例えば、指定したバージョンが手元にない場合、サーバはリクエストで指定した値とは異なる`ledger_index_min`と`ledger_index_max`を返すことがあります。{% /admonition %} 各トランザクションオブジェクトは、JSONまたは16進文字列(`"binary":true`)のどちらの形式でリクエストされたかに応じて、以下のフィールドを含みます。 -| `Field` | 型 | 説明 | -|:---------------|:-------------------------------------|:-------------------------| -| `ledger_index` | 整数 | このトランザクションを含むレジャーバージョンの[レジャーインデックス][]。 | +| `Field` | 型 | 説明 | +| :------------- | :----------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------- | +| `ledger_index` | 整数 | このトランザクションを含むレジャーバージョンの[レジャーインデックス][]。 | | `meta` | オブジェクト(JSON) または 文字列(バイナリ) | `binary`が`true`の場合、トランザクションメタデータの16文字列が格納されます。`false`の場合は、トランザクションメタデータがJSON 形式で格納されます。 | -| `tx` | オブジェクト | (JSONのみ) トランザクションを定義するJSONオブジェクト | -| `tx_blob` | 文字列 | (Binaryのみ) トランザクションを表す一意のハッシュ化された文字列。 | -| `validated` | 真偽値 | トランザクションが検証済みレジャーに含まれているかどうか。まだ有効なレジャーに含まれていないトランザクションは、変更される可能性があります。 | +| `tx` | オブジェクト | (JSONのみ) トランザクションを定義するJSONオブジェクト | +| `tx_blob` | 文字列 | (Binaryのみ) トランザクションを表す一意のハッシュ化された文字列。 | +| `validated` | 真偽値 | トランザクションが検証済みレジャーに含まれているかどうか。まだ有効なレジャーに含まれていないトランザクションは、変更される可能性があります。 | `tx`オブジェクトで返されるフィールドの定義については、[トランザクションメタデータ](../../../protocol/transactions/metadata.md)をご覧ください。 ## 考えられるエラー -* いずれかの[汎用エラータイプ][]。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* `actMalformed` - リクエストの`account`フィールドに指定した[アドレス][]が、正しいフォーマットではありません。 -* `lgrIdxMalformed` - `ledger_index_min`または`ledger_index_max`で指定されたレジャーが存在しないか、存在してもサーバに保存されていません。 -* `lgrIdxsInvalid` - リクエストが`ledger_index_min`よりも前の`ledger_index_max`を指定しているか、サーバが[ネットワークと同期していない](../../../../infrastructure/troubleshooting/server-doesnt-sync.md)ために有効なレジャー範囲を持っていません。 +- いずれかの[汎用エラータイプ][]。 +- `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 +- `actMalformed` - リクエストの`account`フィールドに指定した[アドレス][]が、正しいフォーマットではありません。 +- `lgrIdxMalformed` - `ledger_index_min`または`ledger_index_max`で指定されたレジャーが存在しないか、存在してもサーバに保存されていません。 +- `lgrIdxsInvalid` - リクエストが`ledger_index_min`よりも前の`ledger_index_max`を指定しているか、サーバが[ネットワークと同期していない](../../../../infrastructure/troubleshooting/server-doesnt-sync.md)ために有効なレジャー範囲を持っていません。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/clio-methods/nft_info.md b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/clio-methods/nft_info.md index 1f0fbe823f..c65ffbf9d0 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/clio-methods/nft_info.md +++ b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/clio-methods/nft_info.md @@ -2,21 +2,25 @@ html: nft_info.html parent: clio-methods.html seo: - description: Clioサーバの`nft_info`APIを使用して、指定したNFTに関する情報を取得します。 + description: Clioサーバの`nft_info`APIを使用して、指定したNFTに関する情報を取得します。 labels: - 非代替性トークン, NFT --- + # nft_info + [[ソース]](https://github.com/XRPLF/clio/blob/4a5cb962b6971872d150777881801ce27ae9ed1a/src/rpc/handlers/NFTInfo.cpp "ソース") `nft_info`コマンドはクエリ対象の[NFT](../../../../concepts/tokens/nfts/index.md)に関する情報をClioサーバに問い合わせます。{% badge href="https://github.com/XRPLF/clio/releases/tag/1.1.0" %}新規: Clio v1.1.0{% /badge %} ## リクエストのフォーマット + リクエストのフォーマットの例: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 1, @@ -24,19 +28,22 @@ labels: "nft_id": "00080000B4F4AFC5FBCBD76873F18006173D2193467D3EE70000099B00000000" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "nft_info", - "params": [ - { - "nft_id": "00080000B4F4AFC5FBCBD76873F18006173D2193467D3EE70000099B00000000" - } - ] + "method": "nft_info", + "params": [ + { + "nft_id": "00080000B4F4AFC5FBCBD76873F18006173D2193467D3EE70000099B00000000" + } + ] } ``` + {% /tab %} {% /tabs %} @@ -45,10 +52,10 @@ labels: リクエストには以下のパラメーターが含まれます。 -| `Field` | 型 | 説明 | -|:---------------|:-----------------------|:-----------------------| -| `nft_id` | 文字列 | 非代替性トークン(NFT)の一意の識別子。 | -| `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーのバージョンを示す20バイトの16進文字列。[レジャーの指定][]をご覧ください)。 | +| `Field` | 型 | 説明 | +| :------------- | :------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `nft_id` | 文字列 | 非代替性トークン(NFT)の一意の識別子。 | +| `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーのバージョンを示す20バイトの16進文字列。[レジャーの指定][]をご覧ください)。 | | `ledger_index` | 文字列 または 符号なし整数 | _(省略可)_ 使用するレジャーの[レジャーインデックス][]あるいは、レジャーを自動的に選択するためのショートカット文字列。`ledger_index`に`closed`や`current`を指定しないでください。指定した場合、P2Pの`rippled`サーバにリクエストが転送されますが、`nft_info`APIは`rippled`では利用できません。[レジャーの指定][]をご覧ください)。 | レジャーのバージョンを指定しない場合、Clioは検証済みの最新のレジャーを使用します。 @@ -60,6 +67,7 @@ labels: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 1, @@ -89,9 +97,11 @@ labels: ] } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { "result": { @@ -120,28 +130,28 @@ labels: ] } ``` + {% /tab %} {% /tabs %} レスポンスは[標準フォーマット][] に従い、成功すると以下のフィールドをいくつか並べた`nft_info`レスポンスオブジェクトが返されます。 -| `Field` | 型 | 説明 | -|:----------------------------------|:------|:---------------------| -| `nft_id` | 文字列 | 非代替性トークン(NFT)の一意の識別子。 | -| `ledger_index` | 整数 | NFT がミント(作成)された、所有者が変わった(取引された)、バーンされた(破棄された)など、このNFTの状態が変更された最新のレジャーバージョンの[レジャーインデックス][]。返される情報には、リクエストされたレジャーと比較して直近に起こったことが含まれます。 | -| `owner` | 文字列 | このレジャーインデックスにおけるこのNFTの所有者のアカウントID。 | -| `is_burned` | 真偽値 | NFTがこのレジャーでバーンされていれば`true`を、そうでなければ`false`を返します。 | -| `flags ` | 整数 | このNFTのフラグ | -| `transfer_fee` | 整数 | このNFTの送金手数料。送金手数料の詳細については、[NFTokenMintのフィールド](../../../protocol/transactions/types/nftokenmint.md#nftokenmint-フィールド)をご覧ください。 | -| `issuer` | 文字列 | このNFTの発行者を示すアカウントID。| -| `nft_taxon` | 整数 | このNFTのTaxon。 | -| `nft_sequence` | 整数 | このNFTのシーケンス番号. | -| `uri` | 文字列 | このNFTのURI。NFTがURIを持っていない場合、空の文字列を返します。 {% badge href="https://github.com/XRPLF/clio/releases/tag/2.0.0" %}更新: Clio v2.0.0{% /badge %} | - +| `Field` | 型 | 説明 | +| :------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `nft_id` | 文字列 | 非代替性トークン(NFT)の一意の識別子。 | +| `ledger_index` | 整数 | NFT がミント(作成)された、所有者が変わった(取引された)、バーンされた(破棄された)など、このNFTの状態が変更された最新のレジャーバージョンの[レジャーインデックス][]。返される情報には、リクエストされたレジャーと比較して直近に起こったことが含まれます。 | +| `owner` | 文字列 | このレジャーインデックスにおけるこのNFTの所有者のアカウントID。 | +| `is_burned` | 真偽値 | NFTがこのレジャーでバーンされていれば`true`を、そうでなければ`false`を返します。 | +| `flags ` | 整数 | このNFTのフラグ | +| `transfer_fee` | 整数 | このNFTの送金手数料。送金手数料の詳細については、[NFTokenMintのフィールド](../../../protocol/transactions/types/nftokenmint.md#nftokenmint-フィールド)をご覧ください。 | +| `issuer` | 文字列  | このNFTの発行者を示すアカウントID。 | +| `nft_taxon` | 整数 | このNFTのTaxon。 | +| `nft_sequence` | 整数 | このNFTのシーケンス番号. | +| `uri` | 文字列 | このNFTのURI。NFTがURIを持っていない場合、空の文字列を返します。 {% badge href="https://github.com/XRPLF/clio/releases/tag/2.0.0" %}更新: Clio v2.0.0{% /badge %} | ## 考えられるエラー -* いずれかの[汎用エラータイプ][]。 +- いずれかの[汎用エラータイプ][]。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/clio-methods/server_info-clio.md b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/clio-methods/server_info-clio.md index 7ed66cecae..cc14566031 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/clio-methods/server_info-clio.md +++ b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/clio-methods/server_info-clio.md @@ -2,39 +2,43 @@ html: server_info-clio.html parent: clio-methods.html seo: - description: Clioサーバの状態を人間が読める形式で取得します。 + description: Clioサーバの状態を人間が読める形式で取得します。 labels: - コアサーバ --- + # server_info + [[ソース]](https://github.com/XRPLF/clio/blob/master/src/rpc/handlers/ServerInfo.cpp "ソース") `server_info`コマンドは[Clioサーバ](../../../../concepts/networks-and-servers/the-clio-server.md)にクエリされるClioサーバに関する様々な情報を人間が読める形で問い合わせます。`rippled`サーバについては、代わりに[`server_info` (`rippled`)](../server-info-methods/server_info.md)をご覧ください。{% badge href="https://github.com/XRPLF/clio/releases/tag/1.0.0" %}新規: Clio v1.0.0{% /badge %} - ## リクエストのフォーマット + リクエストのフォーマットの例: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 1, "command": "server_info" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "server_info", - "params": [ - {} - ] + "method": "server_info", + "params": [{}] } ``` + {% /tab %} {% /tabs %} @@ -52,218 +56,221 @@ labels: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": 1, - "result": { - "info": { - "complete_ledgers": "19499132-19977628", - "counters": { - "rpc": { - "account_objects": { - "started": "1", - "finished": "1", - "errored": "0", - "forwarded": "0", - "duration_us": "991" - }, - "account_tx": { - "started": "1", - "finished": "1", - "errored": "0", - "forwarded": "0", - "duration_us": "91633" - }, - "account_lines": { - "started": "5", - "finished": "5", - "errored": "0", - "forwarded": "0", - "duration_us": "4915159" - }, - "submit_multisigned": { - "started": "2", - "finished": "2", - "errored": "0", - "forwarded": "2", - "duration_us": "4823" - }, - "ledger_entry": { - "started": "1", - "finished": "1", - "errored": "0", - "forwarded": "0", - "duration_us": "17806" - }, - "server_info": { - "started": "5", - "finished": "5", - "errored": "0", - "forwarded": "0", - "duration_us": "2375580" - }, - "account_info": { - "started": "5", - "finished": "5", - "errored": "0", - "forwarded": "5", - "duration_us": "9256" - }, - "account_currencies": { - "started": "4", - "finished": "4", - "errored": "0", - "forwarded": "0", - "duration_us": "517302" - }, - "noripple_check": { - "started": "1", - "finished": "1", - "errored": "0", - "forwarded": "1", - "duration_us": "2218" - }, - "tx": { - "started": "1", - "finished": "1", - "errored": "0", - "forwarded": "0", - "duration_us": "562" - }, - "gateway_balances": { - "started": "6", - "finished": "6", - "errored": "0", - "forwarded": "0", - "duration_us": "1395156" - }, - "channel_authorize": { - "started": "1", - "finished": "1", - "errored": "0", - "forwarded": "1", - "duration_us": "2017" - }, - "manifest": { - "started": "1", - "finished": "1", - "errored": "0", - "forwarded": "1", - "duration_us": "1707" - }, - "subscribe": { - "started": "6", - "finished": "6", - "errored": "0", - "forwarded": "0", - "duration_us": "116" - }, - "random": { - "started": "1", - "finished": "1", - "errored": "0", - "forwarded": "0", - "duration_us": "111" - }, - "ledger_data": { - "started": "14", - "finished": "3", - "errored": "11", - "forwarded": "0", - "duration_us": "6179145" - }, - "ripple_path_find": { - "started": "1", - "finished": "1", - "errored": "0", - "forwarded": "1", - "duration_us": "1409563" - }, - "account_channels": { - "started": "14", - "finished": "14", - "errored": "0", - "forwarded": "0", - "duration_us": "1062692" - }, - "submit": { - "started": "6", - "finished": "6", - "errored": "0", - "forwarded": "6", - "duration_us": "11383" - }, - "transaction_entry": { - "started": "8", - "finished": "5", - "errored": "3", - "forwarded": "0", - "duration_us": "494131" - } - }, - "subscriptions": { - "ledger": 0, - "transactions": 0, - "transactions_proposed": 0, - "manifests": 2, - "validations": 2, - "account": 0, - "accounts_proposed": 0, - "books": 0 - } - }, - "load_factor": 1, - "clio_version": "0.3.0-b2", - "validation_quorum": 8, - "rippled_version": "1.9.1-rc1", - "validated_ledger": { - "age": 4, - "hash": "4CD25FB70D45646EE5822E76E58B66D39D5AE6BA0F70491FA803DA0DA218F434", - "seq": 19977628, - "base_fee_xrp": 1E-5, - "reserve_base_xrp": 1E1, - "reserve_inc_xrp": 2E0 - } + "id": 1, + "result": { + "info": { + "complete_ledgers": "19499132-19977628", + "counters": { + "rpc": { + "account_objects": { + "started": "1", + "finished": "1", + "errored": "0", + "forwarded": "0", + "duration_us": "991" + }, + "account_tx": { + "started": "1", + "finished": "1", + "errored": "0", + "forwarded": "0", + "duration_us": "91633" + }, + "account_lines": { + "started": "5", + "finished": "5", + "errored": "0", + "forwarded": "0", + "duration_us": "4915159" + }, + "submit_multisigned": { + "started": "2", + "finished": "2", + "errored": "0", + "forwarded": "2", + "duration_us": "4823" + }, + "ledger_entry": { + "started": "1", + "finished": "1", + "errored": "0", + "forwarded": "0", + "duration_us": "17806" + }, + "server_info": { + "started": "5", + "finished": "5", + "errored": "0", + "forwarded": "0", + "duration_us": "2375580" + }, + "account_info": { + "started": "5", + "finished": "5", + "errored": "0", + "forwarded": "5", + "duration_us": "9256" + }, + "account_currencies": { + "started": "4", + "finished": "4", + "errored": "0", + "forwarded": "0", + "duration_us": "517302" + }, + "noripple_check": { + "started": "1", + "finished": "1", + "errored": "0", + "forwarded": "1", + "duration_us": "2218" + }, + "tx": { + "started": "1", + "finished": "1", + "errored": "0", + "forwarded": "0", + "duration_us": "562" + }, + "gateway_balances": { + "started": "6", + "finished": "6", + "errored": "0", + "forwarded": "0", + "duration_us": "1395156" + }, + "channel_authorize": { + "started": "1", + "finished": "1", + "errored": "0", + "forwarded": "1", + "duration_us": "2017" + }, + "manifest": { + "started": "1", + "finished": "1", + "errored": "0", + "forwarded": "1", + "duration_us": "1707" + }, + "subscribe": { + "started": "6", + "finished": "6", + "errored": "0", + "forwarded": "0", + "duration_us": "116" + }, + "random": { + "started": "1", + "finished": "1", + "errored": "0", + "forwarded": "0", + "duration_us": "111" + }, + "ledger_data": { + "started": "14", + "finished": "3", + "errored": "11", + "forwarded": "0", + "duration_us": "6179145" + }, + "ripple_path_find": { + "started": "1", + "finished": "1", + "errored": "0", + "forwarded": "1", + "duration_us": "1409563" + }, + "account_channels": { + "started": "14", + "finished": "14", + "errored": "0", + "forwarded": "0", + "duration_us": "1062692" + }, + "submit": { + "started": "6", + "finished": "6", + "errored": "0", + "forwarded": "6", + "duration_us": "11383" + }, + "transaction_entry": { + "started": "8", + "finished": "5", + "errored": "3", + "forwarded": "0", + "duration_us": "494131" + } }, - "cache": { - "size": 8812733, - "is_full": true, - "latest_ledger_seq": 19977629 - }, - "etl": { - "etl_sources": [ - { - "validated_range": "19405538-19977629", - "is_connected": "1", - "ip": "52.36.182.38", - "ws_port": "6005", - "grpc_port": "50051", - "last_msg_age_seconds": "0" - } - ], - "is_writer": true, - "read_only": false, - "last_publish_age_seconds": "2" - }, - "validated": true - }, - "status": "success", - "type": "response", - "warnings": [ - { - "id": 2001, - "message": "This is a clio server. clio only serves validated data. If you want to talk to rippled, include ledger_index:current in your request" - }, - { - "id": 2002, - "message": "This server may be out of date" + "subscriptions": { + "ledger": 0, + "transactions": 0, + "transactions_proposed": 0, + "manifests": 2, + "validations": 2, + "account": 0, + "accounts_proposed": 0, + "books": 0 } - ] + }, + "load_factor": 1, + "clio_version": "0.3.0-b2", + "validation_quorum": 8, + "rippled_version": "1.9.1-rc1", + "validated_ledger": { + "age": 4, + "hash": "4CD25FB70D45646EE5822E76E58B66D39D5AE6BA0F70491FA803DA0DA218F434", + "seq": 19977628, + "base_fee_xrp": 1e-5, + "reserve_base_xrp": 1e1, + "reserve_inc_xrp": 2 + } + }, + "cache": { + "size": 8812733, + "is_full": true, + "latest_ledger_seq": 19977629 + }, + "etl": { + "etl_sources": [ + { + "validated_range": "19405538-19977629", + "is_connected": "1", + "ip": "52.36.182.38", + "ws_port": "6005", + "grpc_port": "50051", + "last_msg_age_seconds": "0" + } + ], + "is_writer": true, + "read_only": false, + "last_publish_age_seconds": "2" + }, + "validated": true + }, + "status": "success", + "type": "response", + "warnings": [ + { + "id": 2001, + "message": "This is a clio server. clio only serves validated data. If you want to talk to rippled, include ledger_index:current in your request" + }, + { + "id": 2002, + "message": "This server may be out of date" + } + ] } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -474,6 +481,7 @@ labels: ] } ``` + {% /tab %} {% /tabs %} @@ -483,44 +491,47 @@ labels: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": 1, - "result": { - "info": { - "complete_ledgers":"32570-73737719", - "load_factor":1, - "clio_version":"1.0.2", - "validation_quorum":28, - "rippled_version":"1.9.1", - "validated_ledger": { - "age":7, - "hash":"4ECDEAF9E6F8B37EFDE297953168AAB42DEED1082A565639EBB2D29E047341B4", - "seq":73737719, - "base_fee_xrp":1E-5, - "reserve_base_xrp":1E1, - "reserve_inc_xrp":2E0 - }, - "cache": { - "size":15258947, - "is_full":true, - "latest_ledger_seq":73737719 - } - }, - "validated":true, - "status":"success" + "id": 1, + "result": { + "info": { + "complete_ledgers": "32570-73737719", + "load_factor": 1, + "clio_version": "1.0.2", + "validation_quorum": 28, + "rippled_version": "1.9.1", + "validated_ledger": { + "age": 7, + "hash": "4ECDEAF9E6F8B37EFDE297953168AAB42DEED1082A565639EBB2D29E047341B4", + "seq": 73737719, + "base_fee_xrp": 1e-5, + "reserve_base_xrp": 1e1, + "reserve_inc_xrp": 2 + }, + "cache": { + "size": 15258947, + "is_full": true, + "latest_ledger_seq": 73737719 + } }, - "warnings": [ - { - "id":2001, - "message":"This is a clio server. clio only serves validated data. If you want to talk to rippled, include 'ledger_index':'current' in your request" - } - ] + "validated": true, + "status": "success" + }, + "warnings": [ + { + "id": 2001, + "message": "This is a clio server. clio only serves validated data. If you want to talk to rippled, include 'ledger_index':'current' in your request" + } + ] } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -557,6 +568,7 @@ labels: ] } ``` + {% /tab %} {% /tabs %} @@ -565,65 +577,64 @@ labels: `info`オブジェクトは以下のフィールドを含むことがあります。 -| `Field` | 型 | 説明 | -|:---------------------------------------|:--------------|:---------------------| -| `complete_ledgers` | 文字列 | ローカル`rippled`がデータベース内に有するレジャーのバージョンのシーケンス番号の範囲を示す表現。例えば、`24900901-24900984,24901116-24901158`のように、互いに素なシーケンスの場合があります。サーバに完全なレジャーがない場合(例えば、ネットワークとの同期を始めたばかりの場合)、文字列`empty`になります。 | -| `counters` | オブジェクト | _(省略される場合があります)_ サーバ起動以降に処理されたAPIコールの統計。クライアントが`localhost`経由でClioサーバに接続した場合のみ表示されます。 -| `rpc` | オブジェクト | _(省略される場合があります)_ 起動時からClioサーバが処理した各API呼び出しの統計情報。これは`counters`オブジェクトの中にネストされているので、クライアントが`localhost`経由でClioサーバに接続した場合のみ存在します。 | -| `rpc.*.started` | 数値 | Clioサーバが起動後に処理を開始した、このタイプのAPIコールの数。 | -| `rpc.*.finished` | 数値 | Clioサーバが起動以降に処理を終了した、このタイプのAPIコールの数。 | -| `rpc.*.errored` | 数値 | 起動後に何らかのエラーが発生した、このタイプのAPIコールの数。 | -| `rpc.*.forwarded` | 数値 | 起動してからClioサーバが`rippled`P2Pサーバに転送したAPI呼び出しの数。 | -| `rpc.*.duration_us` | 数値 | 起動時からこのタイプのAPIコールの処理に費やされたマイクロ秒数の合計。 | -| `subscriptions` | オブジェクト | _(省略される場合があります)_ 各ストリームタイプの現在の接続者数。これは`counters`オブジェクトの中にネストされているので、クライアントが`localhost`経由でClioサーバに接続した場合のみ存在します。 | -| `subscriptions.ledger` | | | -| `subscriptions.transactions` | | | -| `subscriptions.transactions_proposed` | | | -| `subscriptions.manifests` | | | -| `subscriptions.validations` | | | -| `subscriptions.account` | | | -| `subscriptions.accounts_proposed` | | | -| `subscriptions.books` | | | -| `time` | 文字列 | サーバの時計によるUTCでの現在時刻。{% badge href="https://github.com/XRPLF/clio/releases/tag/2.0.0" %}新規: Clio v2.0{% /badge %} | -| `uptime` | 数値 | サーバが連続して稼働している秒数。{% badge href="https://github.com/XRPLF/clio/releases/tag/2.0.0" %}新規: Clio v2.0{% /badge %} | -| `amendment_blocked` | 真偽値 | _(省略される場合があります)_ Clioサーバが[Amendmentブロック](../../../../concepts/networks-and-servers/amendments.md#amendment-blocked-clio-servers)がされているかどうか。{% badge href="https://github.com/XRPLF/clio/releases/tag/2.0.0" %}新規: Clio v2.0{% /badge %} | -| `load_factor` | 数値 | サーバが現在実行中の、負荷スケーリングされたオープンレジャートランザクションコストを、基本トランザクションコストに適用される乗数として示したもの。例えば、負荷係数`1000`でリファレンストランザクションコストが10 dropである場合、負荷スケーリングされたトランザクションコストは10,000 drop(0.01 XRP)です。負荷係数は、[個々のサーバの負荷係数](../../../../concepts/transactions/transaction-cost.md#ローカル負荷コスト)の最高値、クラスターの負荷係数、[オープンレジャーコスト](../../../../concepts/transactions/transaction-cost.md#オープンレジャーコスト)、ネットワーク全体の負荷係数によって決まります。 | -| `clio_version` | 文字列 | 実行中のClioサーバのバージョン番号。 | -| `libxrpl_version` | 文字列 | このClioサーバがビルドされた`libxrpl`ライブラリのバージョン番号。{% badge href="https://github.com/XRPLF/clio/releases/tag/2.0.0" %}新規: Clio v2.0{% /badge %} | -| `validation_quorum` | 数値 | _(省略される場合があります)_ レジャーバージョンを検証するために必要な、信頼できる検証の最小数。状況によっては、サーバがより多くの検証をリクエストすることもあります。この値は`rippled`から取得します。何らかの理由でClioサーバが`rippled`に接続できない場合、このフィールドはレスポンスから省略されることがあります。 | -| `rippled_version` | 文字列 | _(省略される場合があります)_ Clioサーバが接続している`rippled`サーバのバージョン番号。何らかの理由でClioサーバが`rippled`に接続できない場合、このフィールドはレスポンスから省略されることがあります。 | -| `network_id` | 文字列 | _(省略される場合があります)_ このClioサーバが接続している`rippled`が動作しているネットワークのネットワークID。何らかの理由でClioサーバが`rippled`に接続できない場合、このフィールドはレスポンスから省略されることがあります。{% badge href="https://github.com/XRPLF/clio/releases/tag/2.0.0" %}新規: Clio v2.0{% /badge %} | -| `validated_ledger` | オブジェクト | _(省略される場合があります)_ 完全に検証された最新のレジャーに関する情報。検証済みの最新のレジャーがない場合、レスポンスではこのフィールドは省略され、代わりに`closed_ledger`が含まれます。 | -| `validated_ledger` | オブジェクト | (省略される場合があります)完全に検証された最新のレジャーについての情報。最新の検証済みレジャーが使用できない場合、このフィールドはレスポンスにて省略され、代わりに`closed_ledger`が含まれます。 | -| `validated_ledger.age` | 数値 | レジャーの閉鎖以降の秒数。 | -| `validated_ledger.base_fee_xrp` | 数値 | XRP単位の基本手数料。0.00005の場合は、`1e-05`などの科学的記数法で表すことができます。 | -| `validated_ledger.hash` | 文字列 | 16進数で表された、レジャーの一意のハッシュ | -| `validated_ledger.reserve_base_xrp` | 数値 | すべてのアカウントで準備金として保有しておく必要があるXRPの最少額(drop数ではありません) | -| `validated_ledger.reserve_inc_xrp` | 数値 | アカウントがレジャー内に保有するオブジェクトごとのアカウント準備金に追加するXRP額(drop数ではありません) | -| `validated_ledger.seq` | 数値 | 最新の検証済みレジャーのレジャーインデックス | -| `validation_quorum` | 数値 | レジャーバージョンの検証に、最低限必要となる信頼できる検証の数。場合によっては、サーバがさらに検証をリクエストする場合があります。 | -| `validator_list_expires` | 文字列 | _(管理者のみ)_ 現在のバリデータリストの有効期限が切れるタイミングを人間が読み取れる時間でを表示、または、サーバが発行済みのバリデータリストをロードしていない場合は文字列`unknown`、サーバが静的なバリデータリストを使用する場合は文字列`never`のいずれかを表示します。 | -| `cache` | オブジェクト | Clioの状態データのキャッシュに関する情報。 | -| `cache.size` | 数値 | 現在キャッシュ内にある状態データオブジェクトの数。 | -| `cache.is_full` | 真偽値 | キャッシュに特定のレジャーのすべての状態データが含まれている場合はtrue、そうでない場合はfalse。[book_offersメソッド][] などの一部の API 呼び出しは、キャッシュが完全な場合、より高速に処理されます。 | -| `cache.latest_ledger_seq` | 数値 | キャッシュに保存されている、検証済みの最新のレジャーの[レジャーインデックス][]。 | -| `etl` | オブジェクト | Clioサーバが接続している`rippled`ソース(ETLソース)。クライアントが`localhost`経由で Clioサーバに接続した場合のみ表示されます。 | -| `etl.etl_sources` | オブジェクト配列 | Clioサーバが接続され、データを抽出する`rippled`ソース(ETLソース)を表示します。 | -| `etl.etl_sources.validated_range` | 文字列 | P2Pの`rippled`サーバから取得した有効なレジャーの範囲。 | -| `etl.etl_sources.is_connected` | 真偽値 | ClioがWebSocket経由でこのソースに接続されていればTrue、そうでなければFalse。ここでfalseが指定された場合は、ネットワークの問題や `rippled`が実行されていないことなどが考えられます。 | -| `etl.etl_sources.ip` | 数値 | `rippled`サーバのIP。 | -| `etl.etl_sources.ws_port` | 数値 | `rippled`サーバのWebSocketポート。 | -| `etl.etl_sources.grpc_port` | 数値 | Clioサーバが接続しているP2P`rippled`サーバのgRPC接続ポート。 | -| `etl.etl_sources.last_msg_age_seconds` | 数値 | Clioが最後に`rippled`から何かを取得してからの経過秒数の合計。これは8より大きくなってはいけません。 | -| `etl.is_writer` | 真偽値 | このClioサーバが現在データベースにデータを書き込んでいる場合はtrue、そうでない場合はfalse。| -| `etl.read_only` | 真偽値 | このClioサーバが読み込み専用モードで設定されている場合はtrue、そうでない場合はfalse。 | -| `etl.last_publish_age_seconds` | 数値 | このClioサーバが最後にレジャーを公開してからの経過時間(秒)。これは8以上であってはなりません。 | -| `validated` | 真偽値 | Trueの場合、レスポンスがコンセンサスによって検証されたレジャーバージョンを使用していることを示します。Clioでは、検証済みのレジャーデータを保存して返すため、これは常にtrueです。リクエストが`rippled`に転送され、サーバが現在のデータを返した場合、値がないかfalseの場合は、このレジャーのデータが確定でないことを示します。 | -| `status` | 文字列 | APIリクエストのステータスを返します。リクエストが正常に完了した場合は`success`を返します。 | - +| `Field` | 型 | 説明 | +| :------------------------------------- | :--------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `complete_ledgers` | 文字列 | ローカル`rippled`がデータベース内に有するレジャーのバージョンのシーケンス番号の範囲を示す表現。例えば、`24900901-24900984,24901116-24901158`のように、互いに素なシーケンスの場合があります。サーバに完全なレジャーがない場合(例えば、ネットワークとの同期を始めたばかりの場合)、文字列`empty`になります。 | +| `counters` | オブジェクト | _(省略される場合があります)_ サーバ起動以降に処理されたAPIコールの統計。クライアントが`localhost`経由でClioサーバに接続した場合のみ表示されます。 | +| `rpc` | オブジェクト | _(省略される場合があります)_ 起動時からClioサーバが処理した各API呼び出しの統計情報。これは`counters`オブジェクトの中にネストされているので、クライアントが`localhost`経由でClioサーバに接続した場合のみ存在します。 | +| `rpc.*.started` | 数値 | Clioサーバが起動後に処理を開始した、このタイプのAPIコールの数。 | +| `rpc.*.finished` | 数値 | Clioサーバが起動以降に処理を終了した、このタイプのAPIコールの数。 | +| `rpc.*.errored` | 数値 | 起動後に何らかのエラーが発生した、このタイプのAPIコールの数。 | +| `rpc.*.forwarded` | 数値 | 起動してからClioサーバが`rippled`P2Pサーバに転送したAPI呼び出しの数。 | +| `rpc.*.duration_us` | 数値 | 起動時からこのタイプのAPIコールの処理に費やされたマイクロ秒数の合計。 | +| `subscriptions` | オブジェクト | _(省略される場合があります)_ 各ストリームタイプの現在の接続者数。これは`counters`オブジェクトの中にネストされているので、クライアントが`localhost`経由でClioサーバに接続した場合のみ存在します。 | +| `subscriptions.ledger` | | | +| `subscriptions.transactions` | | | +| `subscriptions.transactions_proposed` | | | +| `subscriptions.manifests` | | | +| `subscriptions.validations` | | | +| `subscriptions.account` | | | +| `subscriptions.accounts_proposed` | | | +| `subscriptions.books` | | | +| `time` | 文字列 | サーバの時計によるUTCでの現在時刻。{% badge href="https://github.com/XRPLF/clio/releases/tag/2.0.0" %}新規: Clio v2.0{% /badge %} | +| `uptime` | 数値 | サーバが連続して稼働している秒数。{% badge href="https://github.com/XRPLF/clio/releases/tag/2.0.0" %}新規: Clio v2.0{% /badge %} | +| `amendment_blocked` | 真偽値 | _(省略される場合があります)_ Clioサーバが[Amendmentブロック](../../../../concepts/networks-and-servers/amendments.md#amendment-blocked-clio-servers)がされているかどうか。{% badge href="https://github.com/XRPLF/clio/releases/tag/2.0.0" %}新規: Clio v2.0{% /badge %} | +| `load_factor` | 数値 | サーバが現在実行中の、負荷スケーリングされたオープンレジャートランザクションコストを、基本トランザクションコストに適用される乗数として示したもの。例えば、負荷係数`1000`でリファレンストランザクションコストが10 dropである場合、負荷スケーリングされたトランザクションコストは10,000 drop(0.01 XRP)です。負荷係数は、[個々のサーバの負荷係数](../../../../concepts/transactions/transaction-cost.md#ローカル負荷コスト)の最高値、クラスターの負荷係数、[オープンレジャーコスト](../../../../concepts/transactions/transaction-cost.md#オープンレジャーコスト)、ネットワーク全体の負荷係数によって決まります。 | +| `clio_version` | 文字列 | 実行中のClioサーバのバージョン番号。 | +| `libxrpl_version` | 文字列 | このClioサーバがビルドされた`libxrpl`ライブラリのバージョン番号。{% badge href="https://github.com/XRPLF/clio/releases/tag/2.0.0" %}新規: Clio v2.0{% /badge %} | +| `validation_quorum` | 数値 | _(省略される場合があります)_ レジャーバージョンを検証するために必要な、信頼できる検証の最小数。状況によっては、サーバがより多くの検証をリクエストすることもあります。この値は`rippled`から取得します。何らかの理由でClioサーバが`rippled`に接続できない場合、このフィールドはレスポンスから省略されることがあります。 | +| `rippled_version` | 文字列 | _(省略される場合があります)_ Clioサーバが接続している`rippled`サーバのバージョン番号。何らかの理由でClioサーバが`rippled`に接続できない場合、このフィールドはレスポンスから省略されることがあります。 | +| `network_id` | 文字列 | _(省略される場合があります)_ このClioサーバが接続している`rippled`が動作しているネットワークのネットワークID。何らかの理由でClioサーバが`rippled`に接続できない場合、このフィールドはレスポンスから省略されることがあります。{% badge href="https://github.com/XRPLF/clio/releases/tag/2.0.0" %}新規: Clio v2.0{% /badge %} | +| `validated_ledger` | オブジェクト | _(省略される場合があります)_ 完全に検証された最新のレジャーに関する情報。検証済みの最新のレジャーがない場合、レスポンスではこのフィールドは省略され、代わりに`closed_ledger`が含まれます。 | +| `validated_ledger` | オブジェクト | (省略される場合があります)完全に検証された最新のレジャーについての情報。最新の検証済みレジャーが使用できない場合、このフィールドはレスポンスにて省略され、代わりに`closed_ledger`が含まれます。 | +| `validated_ledger.age` | 数値 | レジャーの閉鎖以降の秒数。 | +| `validated_ledger.base_fee_xrp` | 数値 | XRP単位の基本手数料。0.00005の場合は、`1e-05`などの科学的記数法で表すことができます。 | +| `validated_ledger.hash` | 文字列 | 16進数で表された、レジャーの一意のハッシュ | +| `validated_ledger.reserve_base_xrp` | 数値 | すべてのアカウントで準備金として保有しておく必要があるXRPの最少額(drop数ではありません) | +| `validated_ledger.reserve_inc_xrp` | 数値 | アカウントがレジャー内に保有するオブジェクトごとのアカウント準備金に追加するXRP額(drop数ではありません) | +| `validated_ledger.seq` | 数値 | 最新の検証済みレジャーのレジャーインデックス | +| `validation_quorum` | 数値 | レジャーバージョンの検証に、最低限必要となる信頼できる検証の数。場合によっては、サーバがさらに検証をリクエストする場合があります。 | +| `validator_list_expires` | 文字列 | _(管理者のみ)_ 現在のバリデータリストの有効期限が切れるタイミングを人間が読み取れる時間でを表示、または、サーバが発行済みのバリデータリストをロードしていない場合は文字列`unknown`、サーバが静的なバリデータリストを使用する場合は文字列`never`のいずれかを表示します。 | +| `cache` | オブジェクト | Clioの状態データのキャッシュに関する情報。 | +| `cache.size` | 数値 | 現在キャッシュ内にある状態データオブジェクトの数。 | +| `cache.is_full` | 真偽値 | キャッシュに特定のレジャーのすべての状態データが含まれている場合はtrue、そうでない場合はfalse。[book_offersメソッド][] などの一部の API 呼び出しは、キャッシュが完全な場合、より高速に処理されます。 | +| `cache.latest_ledger_seq` | 数値 | キャッシュに保存されている、検証済みの最新のレジャーの[レジャーインデックス][]。 | +| `etl` | オブジェクト | Clioサーバが接続している`rippled`ソース(ETLソース)。クライアントが`localhost`経由で Clioサーバに接続した場合のみ表示されます。 | +| `etl.etl_sources` | オブジェクト配列 | Clioサーバが接続され、データを抽出する`rippled`ソース(ETLソース)を表示します。 | +| `etl.etl_sources.validated_range` | 文字列 | P2Pの`rippled`サーバから取得した有効なレジャーの範囲。 | +| `etl.etl_sources.is_connected` | 真偽値 | ClioがWebSocket経由でこのソースに接続されていればTrue、そうでなければFalse。ここでfalseが指定された場合は、ネットワークの問題や `rippled`が実行されていないことなどが考えられます。 | +| `etl.etl_sources.ip` | 数値 | `rippled`サーバのIP。 | +| `etl.etl_sources.ws_port` | 数値 | `rippled`サーバのWebSocketポート。 | +| `etl.etl_sources.grpc_port` | 数値 | Clioサーバが接続しているP2P`rippled`サーバのgRPC接続ポート。 | +| `etl.etl_sources.last_msg_age_seconds` | 数値 | Clioが最後に`rippled`から何かを取得してからの経過秒数の合計。これは8より大きくなってはいけません。 | +| `etl.is_writer` | 真偽値 | このClioサーバが現在データベースにデータを書き込んでいる場合はtrue、そうでない場合はfalse。 | +| `etl.read_only` | 真偽値 | このClioサーバが読み込み専用モードで設定されている場合はtrue、そうでない場合はfalse。 | +| `etl.last_publish_age_seconds` | 数値 | このClioサーバが最後にレジャーを公開してからの経過時間(秒)。これは8以上であってはなりません。 | +| `validated` | 真偽値 | Trueの場合、レスポンスがコンセンサスによって検証されたレジャーバージョンを使用していることを示します。Clioでは、検証済みのレジャーデータを保存して返すため、これは常にtrueです。リクエストが`rippled`に転送され、サーバが現在のデータを返した場合、値がないかfalseの場合は、このレジャーのデータが確定でないことを示します。 | +| `status` | 文字列 | APIリクエストのステータスを返します。リクエストが正常に完了した場合は`success`を返します。 | ## 考えられるエラー -* いずれかの[汎用エラータイプ][]。 +- いずれかの[汎用エラータイプ][]。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/index.md b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/index.md index 19b35977d5..05a4a27446 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/index.md +++ b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/index.md @@ -2,107 +2,99 @@ html: public-api-methods.html parent: http-websocket-apis.html seo: - description: パブリックAPIメソッドを使用して、rippledサーバと直接通信します。 + description: パブリックAPIメソッドを使用して、rippledサーバと直接通信します。 labels: - コアサーバ top_nav_grouping: 人気ページ top_nav_name: APIのメソッド --- + # rippledのパブリックメソッド 以下のパブリックAPIメソッドを使用して、[XRP Ledgerサーバ](../../../concepts/networks-and-servers/index.md)と直接通信します。パブリックメソッドは必ずしも一般大衆向けに設計されたのではありませんが、サーバに接続されたあらゆるクライアントが使用します。パブリックメソッドは、サーバを運用している組織のメンバーまたは顧客向けのものと考えてください。 - ## [アカウントメソッド](account-methods/index.md) XRP Ledgerのアカウントとは、XRPの保有者と取引の送信者を意味ます。以下のメソッドを使用して、アカウント情報を処理します。 -* **[`account_channels`](account-methods/account_channels.md)** - アカウントがチャンネルのソースであるペイメントチャネルのリストを取得します。 -* **[`account_currencies`](account-methods/account_currencies.md)** - アカウントが送受信できる通貨のリストを取得します。 -* **[`account_info`](account-methods/account_info.md)** - アカウントについての基本データを取得します。 -* **[`account_lines`](account-methods/account_lines.md)** - アカウントのトラストラインについての情報を取得します。 -* **[`account_objects`](account-methods/account_objects.md)** - アカウントが保有しているすべてのレジャーオブジェクトを取得します。 -* **[`account_offers`](account-methods/account_offers.md)** - アカウントの通貨取引オファーについての情報を取得します。 -* **[`account_tx`](account-methods/account_tx.md)** - アカウントのトランザクションについての情報を取得します。 -* **[`gateway_balances`](account-methods/gateway_balances.md)** - アカウントによって発行された総額を計算します。 -* **[`noripple_check`](account-methods/noripple_check.md)** - アカウントのDefaultRippleおよびNoRipple設定への推奨される変更を取得します。 - +- **[`account_channels`](account-methods/account_channels.md)** - アカウントがチャンネルのソースであるペイメントチャネルのリストを取得します。 +- **[`account_currencies`](account-methods/account_currencies.md)** - アカウントが送受信できる通貨のリストを取得します。 +- **[`account_info`](account-methods/account_info.md)** - アカウントについての基本データを取得します。 +- **[`account_lines`](account-methods/account_lines.md)** - アカウントのトラストラインについての情報を取得します。 +- **[`account_objects`](account-methods/account_objects.md)** - アカウントが保有しているすべてのレジャーオブジェクトを取得します。 +- **[`account_offers`](account-methods/account_offers.md)** - アカウントの通貨取引オファーについての情報を取得します。 +- **[`account_tx`](account-methods/account_tx.md)** - アカウントのトランザクションについての情報を取得します。 +- **[`gateway_balances`](account-methods/gateway_balances.md)** - アカウントによって発行された総額を計算します。 +- **[`noripple_check`](account-methods/noripple_check.md)** - アカウントのDefaultRippleおよびNoRipple設定への推奨される変更を取得します。 ## [レジャーメソッド](ledger-methods/index.md) レジャーバージョンには、ヘッダー、トランザクションツリー、状態ツリーが含まれ、さらにその中にアカウント設定、トラストライン、残高、トランザクション、その他のデータが含まれます。以下のメソッドを使用して、レジャー情報を取得します。 -* **[`ledger`](ledger-methods/ledger.md)** - レジャーバージョンについての情報を取得します。 -* **[`ledger_closed`](ledger-methods/ledger_closed.md)** - 最新の閉鎖済みレジャーバージョンを取得します。 -* **[`ledger_current`](ledger-methods/ledger_current.md)** - 現在処理中のレジャーバージョンを取得します。 -* **[`ledger_data`](ledger-methods/ledger_data.md)** - レジャーバージョンの生データコンテンツを取得します。 -* **[`ledger_entry`](ledger-methods/ledger_entry.md)** - レジャーバージョンから1つのエレメントを取得します。 - +- **[`ledger`](ledger-methods/ledger.md)** - レジャーバージョンについての情報を取得します。 +- **[`ledger_closed`](ledger-methods/ledger_closed.md)** - 最新の閉鎖済みレジャーバージョンを取得します。 +- **[`ledger_current`](ledger-methods/ledger_current.md)** - 現在処理中のレジャーバージョンを取得します。 +- **[`ledger_data`](ledger-methods/ledger_data.md)** - レジャーバージョンの生データコンテンツを取得します。 +- **[`ledger_entry`](ledger-methods/ledger_entry.md)** - レジャーバージョンから1つのエレメントを取得します。 ## [トランザクションメソッド](transaction-methods/index.md) トランザクションだけが、XRP Ledgerの共有されている状態を変更できます。XRP Ledgerに対するすべてのビジネスはトランザクションの形態をとります。以下のメソッドを使用して、トランザクションを処理します。 -* **[`sign`](../admin-api-methods/signing-methods/sign.md)** - トランザクションに暗号で署名します。 -* **[`sign_for`](../admin-api-methods/signing-methods/sign_for.md)** - マルチ署名に署名を提供します。 -* **[`submit`](transaction-methods/submit.md)** - トランザクションをネットワークに送信します。 -* **[`submit_multisigned`](transaction-methods/submit_multisigned.md)** - マルチ署名済みトランザクションをネットワークに送信します。 -* **[`transaction_entry`](transaction-methods/transaction_entry.md)** - レジャーの特定のバージョンからトランザクションについての情報を取得します。 -* **[`tx`](transaction-methods/tx.md)** - 手元にあるすべてのレジャーからトランザクションについての情報を取得します。 - +- **[`sign`](../admin-api-methods/signing-methods/sign.md)** - トランザクションに暗号で署名します。 +- **[`sign_for`](../admin-api-methods/signing-methods/sign_for.md)** - マルチ署名に署名を提供します。 +- **[`submit`](transaction-methods/submit.md)** - トランザクションをネットワークに送信します。 +- **[`submit_multisigned`](transaction-methods/submit_multisigned.md)** - マルチ署名済みトランザクションをネットワークに送信します。 +- **[`transaction_entry`](transaction-methods/transaction_entry.md)** - レジャーの特定のバージョンからトランザクションについての情報を取得します。 +- **[`tx`](transaction-methods/tx.md)** - 手元にあるすべてのレジャーからトランザクションについての情報を取得します。 ## [パスおよびオーダーブックのメソッド](path-and-order-book-methods/index.md) パスは、支払いが送信者から受信者に届くまでに中間ステップでたどる道筋を定義します。パスは、送信者と受信者をオーダーブックを介してつなぐことで、クロスカレンシー支払いを可能にします。パスと他のオーダーブックに関しては、以下のメソッドを使用します。 -* **[`amm_info`](path-and-order-book-methods/amm_info.md)** - 自動マーケットメイカー(AMM)についての情報を取得します。 -* **[`book_offers`](path-and-order-book-methods/book_offers.md)** - 2つの通貨を交換するオファーに関する情報を取得します。 -* **[`deposit_authorized`](path-and-order-book-methods/deposit_authorized.md)** - あるアカウントが別のアカウントへの支払いの直接送信について承認されているかどうかを調べます。 -* **[`nft_buy_offers`](path-and-order-book-methods/nft_buy_offers.md)** - Retrieve a list of buy offers for a specified NFToken object. -* **[`nft_sell_offers`](path-and-order-book-methods/nft_sell_offers.md)** - Retrieve a list of sell offers for a specified NFToken object. -* **[`path_find`](path-and-order-book-methods/path_find.md)** - 2つのアカウント間の支払いのパスを見つけて、更新を受け取ります。 -* **[`ripple_path_find`](path-and-order-book-methods/ripple_path_find.md)** - 2つのアカウント間の支払いのパスを1回だけ見つけます。 - +- **[`amm_info`](path-and-order-book-methods/amm_info.md)** - 自動マーケットメイカー(AMM)についての情報を取得します。 +- **[`book_offers`](path-and-order-book-methods/book_offers.md)** - 2つの通貨を交換するオファーに関する情報を取得します。 +- **[`deposit_authorized`](path-and-order-book-methods/deposit_authorized.md)** - あるアカウントが別のアカウントへの支払いの直接送信について承認されているかどうかを調べます。 +- **[`nft_buy_offers`](path-and-order-book-methods/nft_buy_offers.md)** - Retrieve a list of buy offers for a specified NFToken object. +- **[`nft_sell_offers`](path-and-order-book-methods/nft_sell_offers.md)** - Retrieve a list of sell offers for a specified NFToken object. +- **[`path_find`](path-and-order-book-methods/path_find.md)** - 2つのアカウント間の支払いのパスを見つけて、更新を受け取ります。 +- **[`ripple_path_find`](path-and-order-book-methods/ripple_path_find.md)** - 2つのアカウント間の支払いのパスを1回だけ見つけます。 ## [Payment Channel メソッド](payment-channel-methods/index.md) Payment Channel は、2名の当事者間での一方向の繰り返しの支払い、またはそれに伴う一時的な貸付を容易に行えるようにするためのツールです。Payment Channelに関しては、以下のメソッドを使用します。 -* **[`channel_authorize`](payment-channel-methods/channel_authorize.md)** - ペイメントチャネルへのクレーム(支払請求)に署名します。 -* **[`channel_verify`](payment-channel-methods/channel_verify.md)** - payment channel クレームの署名をチェックします。 - +- **[`channel_authorize`](payment-channel-methods/channel_authorize.md)** - ペイメントチャネルへのクレーム(支払請求)に署名します。 +- **[`channel_verify`](payment-channel-methods/channel_verify.md)** - payment channel クレームの署名をチェックします。 ## [サブスクリプションメソッド](subscription-methods/index.md) 以下のメソッドにより、各種イベントの発生時にサーバからクライアントに更新が通知されるように設定できます。これにより、イベントを即座に把握し、対処することができます。_WebSocket APIのみ。_ -* **[`subscribe`](subscription-methods/subscribe.md)** - 特定の対象について更新の通知を受けます。 -* **[`unsubscribe`](subscription-methods/unsubscribe.md)** - 特定の対象についての更新の通知を停止します。 - +- **[`subscribe`](subscription-methods/subscribe.md)** - 特定の対象について更新の通知を受けます。 +- **[`unsubscribe`](subscription-methods/unsubscribe.md)** - 特定の対象についての更新の通知を停止します。 ## [サーバ情報メソッド](server-info-methods/index.md) 以下のメソッドを使用して、`rippled`サーバの現在の状態についての情報を取得します。 -* **[`fee`](server-info-methods/fee.md)** - トランザクションコストについての情報を取得します。 -* **[`server_info`](server-info-methods/server_info.md)** - サーバのステータスを人間が読めるフォーマットで取得します。 -* **[`server_state`](server-info-methods/server_state.md)** - サーバのステータスを機械が読み取れるフォーマットで取得します。 - +- **[`fee`](server-info-methods/fee.md)** - トランザクションコストについての情報を取得します。 +- **[`server_info`](server-info-methods/server_info.md)** - サーバのステータスを人間が読めるフォーマットで取得します。 +- **[`server_state`](server-info-methods/server_state.md)** - サーバのステータスを機械が読み取れるフォーマットで取得します。 ## [ユーティリティメソッド](utility-methods/index.md) 以下のメソッドを使用して、pingや乱数生成などの便利なタスクを実行します。 -* **[`json`](utility-methods/json.md)** - プロキシとして使用して、他のコマンドを実行します。コマンドのパラメーターをJSON値として受け入れます。_コマンドラインのみ。_ -* **[`ping`](utility-methods/ping.md)** - サーバとの接続を確認します。 -* **[`random`](utility-methods/random.md)** - 乱数を生成します。 - +- **[`json`](utility-methods/json.md)** - プロキシとして使用して、他のコマンドを実行します。コマンドのパラメーターをJSON値として受け入れます。_コマンドラインのみ。_ +- **[`ping`](utility-methods/ping.md)** - サーバとの接続を確認します。 +- **[`random`](utility-methods/random.md)** - 乱数を生成します。 ## 非推奨のメソッド 以下の方法は廃止予定であり、すでに削除されているか、または予告なく削除される場合があります。 -* **`owner_info`** - 代わりに[`account_objects`](account-methods/account_objects.md)を使用してください。 -* **[`tx_history`](transaction-methods/tx_history.md)** - 代わりに[`account_tx`](account-methods/account_tx.md)メソッド、または[`ledger`](ledger-methods/ledger.md)メソッドを使用し、`transactions`フィールドを`true`に設定してください。 +- **`owner_info`** - 代わりに[`account_objects`](account-methods/account_objects.md)を使用してください。 +- **[`tx_history`](transaction-methods/tx_history.md)** - 代わりに[`account_tx`](account-methods/account_tx.md)メソッド、または[`ledger`](ledger-methods/ledger.md)メソッドを使用し、`transactions`フィールドを`true`に設定してください。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/ledger-methods/index.md b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/ledger-methods/index.md index 9b96063c50..a40aa3dac6 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/ledger-methods/index.md +++ b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/ledger-methods/index.md @@ -4,9 +4,9 @@ parent: public-api-methods.html metadata: indexPage: true --- + # Ledgerメソッド レジャーバージョンには、ヘッダー、トランザクションツリー、状態ツリーが含まれ、さらにその中にアカウント設定、トラストライン、残高、トランザクション、その他のデータが含まれます。以下のメソッドを使用して、レジャー情報を取得することができます。 - {% child-pages /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger.md b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger.md index 6dc965281c..6585178b83 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger.md +++ b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger.md @@ -2,56 +2,65 @@ html: ledger.html # Watch carefully for clashes w/ this filename parent: ledger-methods.html seo: - description: 公開レジャーに関する情報を取得します。 + description: 公開レジャーに関する情報を取得します。 label: - ブロックチェーン --- + # ledger + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/LedgerHandler.cpp "Source") 公開レジャーに関する情報を取得します。 ## リクエストのフォーマット + リクエストのフォーマットの例: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id":14, - "command":"ledger", - "ledger_index":"validated", - "transactions": false, - "expand": false, - "owner_funds": false + "id": 14, + "command": "ledger", + "ledger_index": "validated", + "transactions": false, + "expand": false, + "owner_funds": false } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method":"ledger", - "params":[ - { - "ledger_index":"validated", - "transactions": false, - "expand": false, - "owner_funds": false - } - ] + "method": "ledger", + "params": [ + { + "ledger_index": "validated", + "transactions": false, + "expand": false, + "owner_funds": false + } + ] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh #Syntax: ledger ledger_index|ledger_hash [full|tx] # "full" is equivalent to "full": true # "tx" is equivalent to "transactions": true rippled ledger current ``` + {% /tab %} {% /tabs %} @@ -60,16 +69,15 @@ rippled ledger current リクエストには以下のパラメーターを含めることができます。 -| `Field` | 型 | 必須? | 説明 | -|:---------------|:---------------------|:------|:-------------------------------| -| `ledger_hash` | [ハッシュ][] | いいえ | 使用するレジャーバージョンの32バイトの16進文字列。([レジャーの指定][]ご覧ください。) | -| `ledger_index` | [レジャーインデックス][] | いいえ | 使用するレジャーの[レジャーインデックス][]、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]をご覧ください) | -| `transactions` | 真偽値 | いいえ | `true`の場合、指定されたレジャーバージョンのトランザクションに関する情報が返されます。デフォルトでは`false`です。レジャーバージョンを指定しない場合は無視されます。 | -| `expand` | 真偽値 | いいえ | ハッシュのみではなく、トランザクション/アカウントの完全な情報がJSONフォーマットで提供されます。デフォルトでは`false`です。トランザクション、アカウント、またはその両方をリクエストしない場合は無視されます。 | -| `owner_funds` | 真偽値 | いいえ | `true`の場合、レスポンスのOfferCreateトランザクションのメタデータに`owner_funds`フィールドが含まれます。デフォルトでは`false`です。トランザクションが含まれておらず、`expand`がtrueではない場合には無視されます。 | -| `binary` | 真偽値 | いいえ | `true`で、かつ`transactions`と`expand`が両方とも`true`の場合、JSONフォーマットではなくバイナリフォーマット(16進文字列)でトランザクション情報が返されます。 | -| `queue` | 真偽値 | いいえ | `true`で、かつコマンドが`current`レジャーをリクエストしている場合、[キューに入れらているトランザクション](../../../../concepts/transactions/transaction-cost.md#キューに入れられたトランザクション)の配列が結果に含まれます。 - +| `Field` | 型 | 必須? | 説明 | +| :------------- | :----------------------- | :----- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `ledger_hash` | [ハッシュ][] | いいえ | 使用するレジャーバージョンの32バイトの16進文字列。([レジャーの指定][]ご覧ください。) | +| `ledger_index` | [レジャーインデックス][] | いいえ | 使用するレジャーの[レジャーインデックス][]、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]をご覧ください) | +| `transactions` | 真偽値 | いいえ | `true`の場合、指定されたレジャーバージョンのトランザクションに関する情報が返されます。デフォルトでは`false`です。レジャーバージョンを指定しない場合は無視されます。 | +| `expand` | 真偽値 | いいえ | ハッシュのみではなく、トランザクション/アカウントの完全な情報がJSONフォーマットで提供されます。デフォルトでは`false`です。トランザクション、アカウント、またはその両方をリクエストしない場合は無視されます。 | +| `owner_funds` | 真偽値 | いいえ | `true`の場合、レスポンスのOfferCreateトランザクションのメタデータに`owner_funds`フィールドが含まれます。デフォルトでは`false`です。トランザクションが含まれておらず、`expand`がtrueではない場合には無視されます。 | +| `binary` | 真偽値 | いいえ | `true`で、かつ`transactions`と`expand`が両方とも`true`の場合、JSONフォーマットではなくバイナリフォーマット(16進文字列)でトランザクション情報が返されます。 | +| `queue` | 真偽値 | いいえ | `true`で、かつコマンドが`current`レジャーをリクエストしている場合、[キューに入れらているトランザクション](../../../../concepts/transactions/transaction-cost.md#キューに入れられたトランザクション)の配列が結果に含まれます。 | `ledger`フィールドは廃止予定であり、今後予告なしに削除される可能性があります。`full`、`accounts`、`type`フィールド(管理者専用)も非推奨です。 @@ -95,26 +103,26 @@ rippled ledger current レスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果にレジャーに関する情報を表す次のフィールドが含まれています。 -| `Field` | 型 | 説明 | -|:-------------------------------|:------------|:--------------------------| -| `ledger` | オブジェクト | このレジャーの完全な[レジャーヘッダのデータ](../../../protocol/ledger-data/ledger-header.md)で、便宜上いくつかのフィールドが追加されています。 | -| `ledger.account_hash` | 文字列 | このレジャーのすべてのアカウント状態情報の[ハッシュ][] | -| `ledger.accountState` | 配列 | このレジャーのすべての[アカウント状態情報](../../../protocol/ledger-data/index.md)(16進数)。 | -| `ledger.close_flags` | 整数 | このレジャーの[クローズに関するフラグ](../../../protocol/ledger-data/ledger-header.md#close-flags)のビットマップ。 | -| `ledger.close_time` | 整数 | レジャーが閉鎖された時刻([Rippleエポック以降の経過秒数][])。 | -| `ledger.close_time_human` | 文字列 | 人間が読めるフォーマットでのこのレジャーが閉鎖された時刻。常にUTCタイムゾーンを使用します。 | -| `ledger.close_time_resolution` | 整数 | レジャー閉鎖時刻が丸められる秒数の範囲。 | -| `ledger.closed` | 真偽値 | このレジャーが閉鎖されているかどうか。 | -| `ledger.ledger_hash` | 文字列 | レジャー全体の一意の識別用ハッシュ。 | -| `ledger.ledger_index` | 文字列 | このレジャーの[レジャーインデックス][]。整数を引用符で囲んだ形式で示されます。 | -| `ledger.parent_close_time` | 整数 | 前のレジャーが閉鎖された時刻。 | -| `ledger.parent_hash` | 文字列 | このレジャーの直前のレジャーの一意の識別用ハッシュ。 | -| `ledger.total_coins` | 文字列 | ネットワークのXRPの合計(drop数)。整数を引用符で囲んだ形式で示されます。(トランザクションコストによりXRPが焼却されると、この値は減少します。) | -| `ledger.transaction_hash` | 文字列 | このレジャーに記録されているトランザクション情報のハッシュ(16進数) | +| `Field` | 型 | 説明 | +| :----------------------------- | :----------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `ledger` | オブジェクト | このレジャーの完全な[レジャーヘッダのデータ](../../../protocol/ledger-data/ledger-header.md)で、便宜上いくつかのフィールドが追加されています。 | +| `ledger.account_hash` | 文字列 | このレジャーのすべてのアカウント状態情報の[ハッシュ][] | +| `ledger.accountState` | 配列 | このレジャーのすべての[アカウント状態情報](../../../protocol/ledger-data/index.md)(16進数)。 | +| `ledger.close_flags` | 整数 | このレジャーの[クローズに関するフラグ](../../../protocol/ledger-data/ledger-header.md#close-flags)のビットマップ。 | +| `ledger.close_time` | 整数 | レジャーが閉鎖された時刻([Rippleエポック以降の経過秒数][])。 | +| `ledger.close_time_human` | 文字列 | 人間が読めるフォーマットでのこのレジャーが閉鎖された時刻。常にUTCタイムゾーンを使用します。 | +| `ledger.close_time_resolution` | 整数 | レジャー閉鎖時刻が丸められる秒数の範囲。 | +| `ledger.closed` | 真偽値 | このレジャーが閉鎖されているかどうか。 | +| `ledger.ledger_hash` | 文字列 | レジャー全体の一意の識別用ハッシュ。 | +| `ledger.ledger_index` | 文字列 | このレジャーの[レジャーインデックス][]。整数を引用符で囲んだ形式で示されます。 | +| `ledger.parent_close_time` | 整数 | 前のレジャーが閉鎖された時刻。 | +| `ledger.parent_hash` | 文字列 | このレジャーの直前のレジャーの一意の識別用ハッシュ。 | +| `ledger.total_coins` | 文字列 | ネットワークのXRPの合計(drop数)。整数を引用符で囲んだ形式で示されます。(トランザクションコストによりXRPが焼却されると、この値は減少します。) | +| `ledger.transaction_hash` | 文字列 | このレジャーに記録されているトランザクション情報のハッシュ(16進数) | | `ledger.transactions` | 配列 | (リクエストされていない場合は省略)このレジャーバージョンで適用されたトランザクション。デフォルトでは、メンバーはトランザクションの識別用[ハッシュ][]文字列です。リクエストで`expand`がtrueとして指定されている場合は、メンバーはJSONフォーマットまたはバイナリフォーマットでのトランザクションの完全な表現です。フォーマットは、リクエストで`binary`がtrueとして指定されていたかどうかに応じて決まります。 | -| `ledger_hash` | 文字列 | レジャー全体の一意の識別用ハッシュ。 | -| `ledger_index` | 数値 | このレジャーの[レジャーインデックス][]。 | -| `queue_data` | 配列 | (`queue`パラメーターでリクエストされている場合を除いて省略)キューに入れられたトランザクションをキューと同じ順序で記述するオブジェクトの配列。リクエストで`expand`がtrueに指定されている場合は、メンバーにはJSONフォーマットまたはバイナリフォーマットでのトランザクションの完全な表現が含まれています。フォーマットは、リクエストで`binary`がtrueとして指定されていたかどうかによって決まります。 | +| `ledger_hash` | 文字列 | レジャー全体の一意の識別用ハッシュ。 | +| `ledger_index` | 数値 | このレジャーの[レジャーインデックス][]。 | +| `queue_data` | 配列 | (`queue`パラメーターでリクエストされている場合を除いて省略)キューに入れられたトランザクションをキューと同じ順序で記述するオブジェクトの配列。リクエストで`expand`がtrueに指定されている場合は、メンバーにはJSONフォーマットまたはバイナリフォーマットでのトランザクションの完全な表現が含まれています。フォーマットは、リクエストで`binary`がtrueとして指定されていたかどうかによって決まります。 | `ledger.accountState`フィールド(`"full": true`または`"accounts": true`でリクエストされない限り省略)は廃止予定です。 @@ -122,33 +130,33 @@ rippled ledger current `queue_data`配列の各メンバーは、キュー内の1つのトランザクションを表します。このオブジェクトの一部フィールドは、まだ計算されていないために省略されることがあります。このオブジェクトのフィールドを次に示します。 -| フィールド | 値 | 説明 | -|:--------------------|:---------------------|:------------------------------------| -| `account` | 文字列 | このキューに入れられたトランザクションの送信者の[アドレス][]。 | +| フィールド | 値 | 説明 | +| :------------------ | :----------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `account` | 文字列 | このキューに入れられたトランザクションの送信者の[アドレス][]。 | | `tx` | 文字列またはオブジェクト | デフォルトでは、これはトランザクションの[識別用ハッシュ](../../../protocol/data-types/basic-data-types.md#ハッシュ)を含む文字列です。トランザクションがバイナリフォーマットで展開されている場合、これは`tx_blob`が唯一のフィールドであるオブジェクトであり、バイナリー形式のトランザクションが10進文字列として含まれています。トランザクションがJSONフォーマットで展開されている場合、これは`hash`フィールドにトランザクションの識別用ハッシュが指定されている[トランザクションオブジェクト](../../../protocol/transactions/index.md)を含むオブジェクトです。 | -| `retries_remaining` | 数値 | このトランザクションの再試行可能回数。この回数を超えるとトランザクションが除外されます。 | -| `preflight_result` | 文字列 | 初期トランザクションチェックの一時的な結果。これは常に`tesSUCCESS`です。 | -| `last_result` | 文字列 | _(省略される場合があります)_[再試行可能な(`ter`)の結果](../../../protocol/transactions/transaction-results/ter-codes.md)を取得した後でこのトランザクションがキューに残っている場合、これは取得した正確な`ter`結果コードです。 | -| `auth_change` | 真偽値 | _(省略される場合があります)_ このトランザクションがこのアドレスの[トランザクション承認方法](../../../../concepts/transactions/index.md#トランザクションの承認)を変更するかどうかを示します。 | -| `fee` | 文字列 | _(省略される場合があります)_ このトランザクションの[トランザクションコスト](../../../../concepts/transactions/transaction-cost.md)([XRPのdrop数][])。 | -| `fee_level` | 文字列 | _(省略される場合があります)_ このタイプのトランザクションの最少コストと比較した、このトランザクションのトランザクションコスト([手数料レベル][])。 | -| `max_spend_drops` | 文字列 | _(省略される場合があります)_ このトランザクションで送信または消却できる[XRPのdrop数][]の最高額。 | +| `retries_remaining` | 数値 | このトランザクションの再試行可能回数。この回数を超えるとトランザクションが除外されます。 | +| `preflight_result` | 文字列 | 初期トランザクションチェックの一時的な結果。これは常に`tesSUCCESS`です。 | +| `last_result` | 文字列 | _(省略される場合があります)_[再試行可能な(`ter`)の結果](../../../protocol/transactions/transaction-results/ter-codes.md)を取得した後でこのトランザクションがキューに残っている場合、これは取得した正確な`ter`結果コードです。 | +| `auth_change` | 真偽値 | _(省略される場合があります)_ このトランザクションがこのアドレスの[トランザクション承認方法](../../../../concepts/transactions/index.md#トランザクションの承認)を変更するかどうかを示します。 | +| `fee` | 文字列 | _(省略される場合があります)_ このトランザクションの[トランザクションコスト](../../../../concepts/transactions/transaction-cost.md)([XRPのdrop数][])。 | +| `fee_level` | 文字列 | _(省略される場合があります)_ このタイプのトランザクションの最少コストと比較した、このトランザクションのトランザクションコスト([手数料レベル][])。 | +| `max_spend_drops` | 文字列 | _(省略される場合があります)_ このトランザクションで送信または消却できる[XRPのdrop数][]の最高額。 | リクエストに`"owner_funds": true`が指定されておりトランザクションが展開されている場合、レスポンスには、各[OfferCreateトランザクション][]の`metaData`オブジェクトの`owner_funds`フィールドが含まれています。このフィールドの目的は、新しい検証済みレジャーごとに[オファーの資金化ステータス](../../../../concepts/tokens/decentralized-exchange/offers.md#オファーのライフサイクル)を容易に追跡できるようにすることです。このフィールドの定義は、[オーダーブックサブスクリプションストリーム](../subscription-methods/subscribe.md#オーダーブックストリーム)でのこのフィールドのバージョンとはわずかに異なります。 -| `Field` | 値 | 説明 | -|:--------------|:-------|:----------------------------------------------------| +| `Field` | 値 | 説明 | +| :------------ | :----- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `owner_funds` | 文字列 | このレジャーのすべてのトランザクションの実行後に、このOfferCreateトランザクションを送信する`Account`が保有する`TakerGets`通貨の額。この通貨額が[フリーズ](../../../../concepts/tokens/fungible-tokens/freezes.md)されているかどうかはチェックされません。 | ## 考えられるエラー -* [汎用エラータイプ][]のすべて。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバが保有していません。 -* `noPermission` - `full`または`accounts`をtrueとして指定したが、管理者としてサーバに接続していない場合(通常、管理者はローカルポートで接続する必要があります)。 - +- [汎用エラータイプ][]のすべて。 +- `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 +- `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバが保有していません。 +- `noPermission` - `full`または`accounts`をtrueとして指定したが、管理者としてサーバに接続していない場合(通常、管理者はローカルポートで接続する必要があります)。 + [手数料レベル]: ../../../../concepts/transactions/transaction-cost.md#手数料レベル {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_closed.md b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_closed.md index fbaaf5aca9..3e9e86977b 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_closed.md +++ b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_closed.md @@ -2,45 +2,52 @@ html: ledger_closed.html parent: ledger-methods.html seo: - description: 最新の閉鎖済みレジャーの一意のIDを返します。 + description: 最新の閉鎖済みレジャーの一意のIDを返します。 label: - ブロックチェーン --- + # ledger_closed + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/LedgerClosed.cpp "Source") `ledger_closed`メソッドは、最新の決済済みレジャーの一意のIDを返します。(このレジャーは必ずしも検証済みで変更不可能ではありません。) ## リクエストのフォーマット + リクエストのフォーマットの例: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": 2, - "command": "ledger_closed" + "id": 2, + "command": "ledger_closed" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "ledger_closed", - "params": [ - {} - ] + "method": "ledger_closed", + "params": [{}] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ``` #Syntax: ledger_closed rippled ledger_closed ``` + {% /tab %} {% /tabs %} @@ -50,11 +57,13 @@ rippled ledger_closed このメソッドはパラメーターを受け入れません。 ## レスポンスのフォーマット + 処理が成功したレスポンスの例: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 1, @@ -66,9 +75,11 @@ rippled ledger_closed } } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -80,19 +91,20 @@ rippled ledger_closed } } ``` + {% /tab %} {% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 -| `Field` | 型 | 説明 | -|:---------------|:-----------------|:-----------------------------------------| -| `ledger_hash` | 文字列 | このレジャーバージョンの一意の[ハッシュ][](16進数)。 | -| `ledger_index` | 符号なし整数 | このレジャーバージョンの[レジャーインデックス][]。 | +| `Field` | 型 | 説明 | +| :------------- | :----------- | :----------------------------------------------------- | +| `ledger_hash` | 文字列 | このレジャーバージョンの一意の[ハッシュ][](16進数)。 | +| `ledger_index` | 符号なし整数 | このレジャーバージョンの[レジャーインデックス][]。 | ## 考えられるエラー -* いずれかの[汎用エラータイプ][]。 +- いずれかの[汎用エラータイプ][]。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_current.md b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_current.md index b9a4543d83..a3bbb1a91e 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_current.md +++ b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_current.md @@ -2,11 +2,13 @@ html: ledger_current.html parent: ledger-methods.html seo: - description: 現在進行中のレジャーの一意のIDを返します。 + description: 現在進行中のレジャーの一意のIDを返します。 label: - ブロックチェーン --- + # ledger_current + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/LedgerCurrent.cpp "Source") `ledger_current`メソッドは、現在進行中のレジャーの一意のIDを返します。このコマンドで返されるレジャーは確定されたものではないため、このコマンドは主にテストに有用です。 @@ -18,30 +20,34 @@ label: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id":2, - "command":"ledger_current" + "id": 2, + "command": "ledger_current" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method":"ledger_current", - "params":[ - {} - ] + "method": "ledger_current", + "params": [{}] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh #Syntax: ledger_current rippled ledger_current ``` + {% /tab %} {% /tabs %} @@ -50,26 +56,29 @@ rippled ledger_current このリクエストにはパラメーターは含まれていません。 - ## レスポンスのフォーマット + 処理が成功したレスポンスの例: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id":2, - "status":"success", - "type":"response", - "result":{ - "ledger_current_index":6643240 - } + "id": 2, + "status": "success", + "type": "response", + "result": { + "ledger_current_index": 6643240 + } } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -80,20 +89,21 @@ rippled ledger_current } } ``` + {% /tab %} {% /tabs %} レスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 -| `Field` | 型 | 説明 | -|:-----------------------|:-----------------|:-------------------------------| +| `Field` | 型 | 説明 | +| :--------------------- | :----------- | :--------------------------- | | `ledger_current_index` | 符号なし整数 | このレジャーのシーケンス番号 | 現行レジャーのハッシュは、レジャーの内容とともに常に変化するため、`ledger_hash`フィールドはありません。 ## 考えられるエラー -* [汎用エラータイプ][]のすべて。 +- [汎用エラータイプ][]のすべて。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_data.md b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_data.md index 30dbfa2785..905dacbf0a 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_data.md +++ b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_data.md @@ -2,46 +2,53 @@ html: ledger_data.html parent: ledger-methods.html seo: - description: 指定されたレジャーの内容を取得します。 + description: 指定されたレジャーの内容を取得します。 label: - ブロックチェーン - データ保持 --- + # ledger_data + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/LedgerData.cpp "Source") `ledger_data`メソッドは指定されたレジャーの内容を取得します。1つのレジャーバージョンの内容全体を取得するため、複数のコールを繰り返し実行できます。 ## リクエストのフォーマット + リクエストのフォーマットの例: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id":2, - "ledger_hash":"842B57C1CC0613299A686D3E9F310EC0422C84D3911E5056389AA7E5808A93C8", - "command":"ledger_data", - "limit":5, + "id": 2, + "ledger_hash": "842B57C1CC0613299A686D3E9F310EC0422C84D3911E5056389AA7E5808A93C8", + "command": "ledger_data", + "limit": 5, "binary": true } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method":"ledger_data", - "params":[ - { - "binary": true, - "ledger_hash":"842B57C1CC0613299A686D3E9F310EC0422C84D3911E5056389AA7E5808A93C8", - "limit":5 - } - ] + "method": "ledger_data", + "params": [ + { + "binary": true, + "ledger_hash": "842B57C1CC0613299A686D3E9F310EC0422C84D3911E5056389AA7E5808A93C8", + "limit": 5 + } + ] } ``` + {% /tab %} {% /tabs %} @@ -50,14 +57,14 @@ label: リクエストには以下のフィールドが含まれます。 -| `Field` | 型 | 説明 | -|:---------------|:-------------------------------------------|:---------------| -| `id` | (任意) | (WebSocketのみ)レスポンスが遅延して順不同になる場合にこのリクエストを他のリクエストと区別するためのID。 | -| `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーバージョンの20バイトの16進文字列。([レジャーの指定][]をご覧ください) | -| `ledger_index` | 文字列または符号なし整数 | _(省略可)_ 使用するレジャーのシーケンス番号、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]をご覧ください) | -| `binary` | ブール値 | (省略可、デフォルトではfalseです)trueに設定すると、レジャーオブジェクトがJSONではなくハッシュされた16進文字列として返されます。 | -| `limit` | 整数 | (省略可、デフォルト値は可変)取得するレジャーオブジェクトの数を制限します。サーバはこの値に従う必要はありません。 | -| `marker` | [マーカー][] | 以前にページネーションされたレスポンスの値。そのレスポンスを停止した箇所からデータの取得を再開します。 | +| `Field` | 型 | 説明 | +| :------------- | :----------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | (任意) | (WebSocketのみ)レスポンスが遅延して順不同になる場合にこのリクエストを他のリクエストと区別するためのID。 | +| `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーバージョンの20バイトの16進文字列。([レジャーの指定][]をご覧ください) | +| `ledger_index` | 文字列または符号なし整数 | _(省略可)_ 使用するレジャーのシーケンス番号、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]をご覧ください) | +| `binary` | ブール値 | (省略可、デフォルトではfalseです)trueに設定すると、レジャーオブジェクトがJSONではなくハッシュされた16進文字列として返されます。 | +| `limit` | 整数 | (省略可、デフォルト値は可変)取得するレジャーオブジェクトの数を制限します。サーバはこの値に従う必要はありません。 | +| `marker` | [マーカー][] | 以前にページネーションされたレスポンスの値。そのレスポンスを停止した箇所からデータの取得を再開します。 | `ledger`フィールドは廃止予定であり、今後予告なしに削除される可能性があります。 @@ -68,142 +75,147 @@ label: {% tabs %} {% tab label="WebSocket (binary:true)" %} + ```json { - "id":2, - "result":{ - "ledger_hash":"842B57C1CC0613299A686D3E9F310EC0422C84D3911E5056389AA7E5808A93C8", - "ledger_index":"6885842", - "marker":"0002A590029B53BE7857EFF9985F770EC792CE483720EB5E963C4D6A607D43DF", - "state":[ - { - "data":"11006122000000002400000001250062FEA42D0000000055C204A65CF2542946289A3358C67D991B5E135FABFA89F271DBA7A150C08CA0466240000000354540208114C909F42250CFE8F12A7A1A0DFBD3CBD20F32CD79", - "index":"00001A2969BE1FC85F1D7A55282FA2E6D95C71D2E4B9C0FDD3D9994F3C00FF8F" - }, - { - "data":"11006F22000000002400000003250035788533000000000000000034000000000000000055555B93628BF3EC318892BB7C7CDCB6732FF53D12B6EEC4FAF60DD1AEE1C6101F501071633D7DE1B6AEB32F87F1A73258B13FC8CC32942D53A66D4F038D7EA4C6800064D4838D7EA4C68000000000000000000000000000425443000000000035DD7DF146893456296BF4061FBE68735D28F3286540000000000F42408114A4B8F5F7B644AEDC3447F9459C132EEB016A133B", - "index":"000037C6659BB98F8D09F2F4CFEB27DE8EFEAFE54DD9E1C13AECDF5794B0C0F5" - }, - { - "data":"11006F2200020000240000000A250067395C33000000000000000034000000000000000055A160BC41A45B6BB118DF23D77E4FF23C723431B917F50DCB41319ECC2821F34C5010DFA3B6DDAB58C7E8E5D944E736DA4B7046C30E4F460FD9DE4C1AA535D3D0C00064D554C88B43EFA00000000000000000000000000055534400000000000A20B3C85F482532A9578DBB3950B85CA06594D165400000B59B9F780081148366FB9ACD2A0FD822E31112D2EB6F98C317C2C1", - "index":"0000A8791F78CC9B39200E12A9BDAACCF40A72A512FA815525CFC9BA772990F7" - }, - { - "data":"1100612200000000240000000125003E742F2D0000000055286498B513710CFEB2D723A554C7557983D1952DF4DEE342C40DCB43067C9A21624000000306DC42008114225BAB89C4A4B94624BB069D6DB3C819F934991C", - "index":"0000B717320558E2DE1A3B9FDB24E9A695BF05D1A44E4A4683212BB1DD0FBA23" - }, - { - "data":"110072220002000025000B65783700000000000000003800000000000000005587591A63051645F37B85D1FBA55EE69B1C96BFF16904F5C99F03FB93D42D03756280000000000000000000000000000000000000004254430000000000000000000000000000000000000000000000000166800000000000000000000000000000000000000042544300000000000A20B3C85F482532A9578DBB3950B85CA06594D167D4C38D7EA4C680000000000000000000000000004254430000000000C795FDF8A637BCAAEDAD1C434033506236C82A2D", - "index":"000103996A3BAD918657F86E12A67D693E8FC8A814DA4B958A244B5F14D93E58" - } - ] - }, - "status":"success", - "type":"response" + "id": 2, + "result": { + "ledger_hash": "842B57C1CC0613299A686D3E9F310EC0422C84D3911E5056389AA7E5808A93C8", + "ledger_index": "6885842", + "marker": "0002A590029B53BE7857EFF9985F770EC792CE483720EB5E963C4D6A607D43DF", + "state": [ + { + "data": "11006122000000002400000001250062FEA42D0000000055C204A65CF2542946289A3358C67D991B5E135FABFA89F271DBA7A150C08CA0466240000000354540208114C909F42250CFE8F12A7A1A0DFBD3CBD20F32CD79", + "index": "00001A2969BE1FC85F1D7A55282FA2E6D95C71D2E4B9C0FDD3D9994F3C00FF8F" + }, + { + "data": "11006F22000000002400000003250035788533000000000000000034000000000000000055555B93628BF3EC318892BB7C7CDCB6732FF53D12B6EEC4FAF60DD1AEE1C6101F501071633D7DE1B6AEB32F87F1A73258B13FC8CC32942D53A66D4F038D7EA4C6800064D4838D7EA4C68000000000000000000000000000425443000000000035DD7DF146893456296BF4061FBE68735D28F3286540000000000F42408114A4B8F5F7B644AEDC3447F9459C132EEB016A133B", + "index": "000037C6659BB98F8D09F2F4CFEB27DE8EFEAFE54DD9E1C13AECDF5794B0C0F5" + }, + { + "data": "11006F2200020000240000000A250067395C33000000000000000034000000000000000055A160BC41A45B6BB118DF23D77E4FF23C723431B917F50DCB41319ECC2821F34C5010DFA3B6DDAB58C7E8E5D944E736DA4B7046C30E4F460FD9DE4C1AA535D3D0C00064D554C88B43EFA00000000000000000000000000055534400000000000A20B3C85F482532A9578DBB3950B85CA06594D165400000B59B9F780081148366FB9ACD2A0FD822E31112D2EB6F98C317C2C1", + "index": "0000A8791F78CC9B39200E12A9BDAACCF40A72A512FA815525CFC9BA772990F7" + }, + { + "data": "1100612200000000240000000125003E742F2D0000000055286498B513710CFEB2D723A554C7557983D1952DF4DEE342C40DCB43067C9A21624000000306DC42008114225BAB89C4A4B94624BB069D6DB3C819F934991C", + "index": "0000B717320558E2DE1A3B9FDB24E9A695BF05D1A44E4A4683212BB1DD0FBA23" + }, + { + "data": "110072220002000025000B65783700000000000000003800000000000000005587591A63051645F37B85D1FBA55EE69B1C96BFF16904F5C99F03FB93D42D03756280000000000000000000000000000000000000004254430000000000000000000000000000000000000000000000000166800000000000000000000000000000000000000042544300000000000A20B3C85F482532A9578DBB3950B85CA06594D167D4C38D7EA4C680000000000000000000000000004254430000000000C795FDF8A637BCAAEDAD1C434033506236C82A2D", + "index": "000103996A3BAD918657F86E12A67D693E8FC8A814DA4B958A244B5F14D93E58" + } + ] + }, + "status": "success", + "type": "response" } ``` + {% /tab %} {% tab label="WebSocket (binary:false)" %} + ```json { - "id":2, - "result":{ - "ledger_hash":"842B57C1CC0613299A686D3E9F310EC0422C84D3911E5056389AA7E5808A93C8", - "ledger_index":"6885842", - "marker":"0002A590029B53BE7857EFF9985F770EC792CE483720EB5E963C4D6A607D43DF", - "state":[ - { - "Account":"rKKzk9ghA2iuy3imqMXUHJqdRPMtNDGf4c", - "Balance":"893730848", - "Flags":0, - "LedgerEntryType":"AccountRoot", - "OwnerCount":0, - "PreviousTxnID":"C204A65CF2542946289A3358C67D991B5E135FABFA89F271DBA7A150C08CA046", - "PreviousTxnLgrSeq":6487716, - "Sequence":1, - "index":"00001A2969BE1FC85F1D7A55282FA2E6D95C71D2E4B9C0FDD3D9994F3C00FF8F" - }, - { - "Account":"rGryPmNWFognBgMtr9k4quqPbbEcCrhNmD", - "BookDirectory":"71633D7DE1B6AEB32F87F1A73258B13FC8CC32942D53A66D4F038D7EA4C68000", - "BookNode":"0000000000000000", - "Flags":0, - "LedgerEntryType":"Offer", - "OwnerNode":"0000000000000000", - "PreviousTxnID":"555B93628BF3EC318892BB7C7CDCB6732FF53D12B6EEC4FAF60DD1AEE1C6101F", - "PreviousTxnLgrSeq":3504261, - "Sequence":3, - "TakerGets":"1000000", - "TakerPays":{ - "currency":"BTC", - "issuer":"rnuF96W4SZoCJmbHYBFoJZpR8eCaxNvekK", - "value":"1" - }, - "index":"000037C6659BB98F8D09F2F4CFEB27DE8EFEAFE54DD9E1C13AECDF5794B0C0F5" - }, - { - "Account":"rUy8tW38MW9ma7kSjRgB2GHtTkQAFRyrN8", - "BookDirectory":"DFA3B6DDAB58C7E8E5D944E736DA4B7046C30E4F460FD9DE4C1AA535D3D0C000", - "BookNode":"0000000000000000", - "Flags":131072, - "LedgerEntryType":"Offer", - "OwnerNode":"0000000000000000", - "PreviousTxnID":"A160BC41A45B6BB118DF23D77E4FF23C723431B917F50DCB41319ECC2821F34C", - "PreviousTxnLgrSeq":6764892, - "Sequence":10, - "TakerGets":"780000000000", - "TakerPays":{ - "currency":"USD", - "issuer":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value":"5850" - }, - "index":"0000A8791F78CC9B39200E12A9BDAACCF40A72A512FA815525CFC9BA772990F7" - }, - { - "Account":"rh3C81VfNDhhWPQWCU8ZGgknvdgNUvRtM9", - "Balance":"13000000000", - "Flags":0, - "LedgerEntryType":"AccountRoot", - "OwnerCount":0, - "PreviousTxnID":"286498B513710CFEB2D723A554C7557983D1952DF4DEE342C40DCB43067C9A21", - "PreviousTxnLgrSeq":4092975, - "Sequence":1, - "index":"0000B717320558E2DE1A3B9FDB24E9A695BF05D1A44E4A4683212BB1DD0FBA23" - }, - { - "Balance":{ - "currency":"BTC", - "issuer":"rrrrrrrrrrrrrrrrrrrrBZbvji", - "value":"0" - }, - "Flags":131072, - "HighLimit":{ - "currency":"BTC", - "issuer":"rKUK9omZqVEnraCipKNFb5q4tuNTeqEDZS", - "value":"10" - }, - "HighNode":"0000000000000000", - "LedgerEntryType":"RippleState", - "LowLimit":{ - "currency":"BTC", - "issuer":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value":"0" - }, - "LowNode":"0000000000000000", - "PreviousTxnID":"87591A63051645F37B85D1FBA55EE69B1C96BFF16904F5C99F03FB93D42D0375", - "PreviousTxnLgrSeq":746872, - "index":"000103996A3BAD918657F86E12A67D693E8FC8A814DA4B958A244B5F14D93E58" - } - ] - }, - "status":"success", - "type":"response" + "id": 2, + "result": { + "ledger_hash": "842B57C1CC0613299A686D3E9F310EC0422C84D3911E5056389AA7E5808A93C8", + "ledger_index": "6885842", + "marker": "0002A590029B53BE7857EFF9985F770EC792CE483720EB5E963C4D6A607D43DF", + "state": [ + { + "Account": "rKKzk9ghA2iuy3imqMXUHJqdRPMtNDGf4c", + "Balance": "893730848", + "Flags": 0, + "LedgerEntryType": "AccountRoot", + "OwnerCount": 0, + "PreviousTxnID": "C204A65CF2542946289A3358C67D991B5E135FABFA89F271DBA7A150C08CA046", + "PreviousTxnLgrSeq": 6487716, + "Sequence": 1, + "index": "00001A2969BE1FC85F1D7A55282FA2E6D95C71D2E4B9C0FDD3D9994F3C00FF8F" + }, + { + "Account": "rGryPmNWFognBgMtr9k4quqPbbEcCrhNmD", + "BookDirectory": "71633D7DE1B6AEB32F87F1A73258B13FC8CC32942D53A66D4F038D7EA4C68000", + "BookNode": "0000000000000000", + "Flags": 0, + "LedgerEntryType": "Offer", + "OwnerNode": "0000000000000000", + "PreviousTxnID": "555B93628BF3EC318892BB7C7CDCB6732FF53D12B6EEC4FAF60DD1AEE1C6101F", + "PreviousTxnLgrSeq": 3504261, + "Sequence": 3, + "TakerGets": "1000000", + "TakerPays": { + "currency": "BTC", + "issuer": "rnuF96W4SZoCJmbHYBFoJZpR8eCaxNvekK", + "value": "1" + }, + "index": "000037C6659BB98F8D09F2F4CFEB27DE8EFEAFE54DD9E1C13AECDF5794B0C0F5" + }, + { + "Account": "rUy8tW38MW9ma7kSjRgB2GHtTkQAFRyrN8", + "BookDirectory": "DFA3B6DDAB58C7E8E5D944E736DA4B7046C30E4F460FD9DE4C1AA535D3D0C000", + "BookNode": "0000000000000000", + "Flags": 131072, + "LedgerEntryType": "Offer", + "OwnerNode": "0000000000000000", + "PreviousTxnID": "A160BC41A45B6BB118DF23D77E4FF23C723431B917F50DCB41319ECC2821F34C", + "PreviousTxnLgrSeq": 6764892, + "Sequence": 10, + "TakerGets": "780000000000", + "TakerPays": { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "5850" + }, + "index": "0000A8791F78CC9B39200E12A9BDAACCF40A72A512FA815525CFC9BA772990F7" + }, + { + "Account": "rh3C81VfNDhhWPQWCU8ZGgknvdgNUvRtM9", + "Balance": "13000000000", + "Flags": 0, + "LedgerEntryType": "AccountRoot", + "OwnerCount": 0, + "PreviousTxnID": "286498B513710CFEB2D723A554C7557983D1952DF4DEE342C40DCB43067C9A21", + "PreviousTxnLgrSeq": 4092975, + "Sequence": 1, + "index": "0000B717320558E2DE1A3B9FDB24E9A695BF05D1A44E4A4683212BB1DD0FBA23" + }, + { + "Balance": { + "currency": "BTC", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "0" + }, + "Flags": 131072, + "HighLimit": { + "currency": "BTC", + "issuer": "rKUK9omZqVEnraCipKNFb5q4tuNTeqEDZS", + "value": "10" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "BTC", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "0" + }, + "LowNode": "0000000000000000", + "PreviousTxnID": "87591A63051645F37B85D1FBA55EE69B1C96BFF16904F5C99F03FB93D42D0375", + "PreviousTxnLgrSeq": 746872, + "index": "000103996A3BAD918657F86E12A67D693E8FC8A814DA4B958A244B5F14D93E58" + } + ] + }, + "status": "success", + "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC (binary:true)" %} + ```json 200 OK @@ -238,32 +250,33 @@ label: } } ``` + {% /tab %} {% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 -| `Field` | 型 | 説明 | -|:---------------|:-------------------------------------------|:---------------| -| `ledger_index` | 符号なし整数 | このレジャーのシーケンス番号 | -| `ledger_hash` | 文字列 | レジャー全体の一意の識別用ハッシュ。 | -| `state` | 配列 | ツリーのデータが含まれているJSONオブジェクトの配列。以下のように定義されています。 | +| `Field` | 型 | 説明 | +| :------------- | :----------- | :----------------------------------------------------------------------------------------------------------------------------------------- | +| `ledger_index` | 符号なし整数 | このレジャーのシーケンス番号 | +| `ledger_hash` | 文字列 | レジャー全体の一意の識別用ハッシュ。 | +| `state` | 配列 | ツリーのデータが含まれているJSONオブジェクトの配列。以下のように定義されています。 | | `marker` | [マーカー][] | レスポンスがページネーションされていることを示す、サーバが定義した値。この値を次のコールに渡して、このコールで終わった箇所から再開します。 | `state`配列の各オブジェクトのフォーマットは、リクエストで`binary`がtrueに設定されているかどうかによって異なります。各`state`オブジェクトには以下のフィールドが含まれます。 -| `Field` | 型 | 説明 | -|:--------------------|:----------|:-------------------------------------------| -| `data` | 文字列 | (`"binary":true`の場合にのみ含まれる)リクエストされたデータの16進表現。 | -| `LedgerEntryType` | 文字列 | (`"binary":false`の場合にのみ含まれる)このオブジェクトが表すレジャーオブジェクトの型を示す文字列。詳細なリストについては[レジャーデータフォーマット](../../../protocol/ledger-data/index.md)をご覧ください。 | -| (追加のフィールド) | (各種) | (`"binary":false`の場合にのみ含まれる)このオブジェクトを記述する追加フィールド。オブジェクトのLedgerEntryTypeに応じて異なります。 | -| `index` | 文字列 | このレジャーエントリの一意のID(16進数) | +| `Field` | 型 | 説明 | +| :------------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `data` | 文字列 | (`"binary":true`の場合にのみ含まれる)リクエストされたデータの16進表現。 | +| `LedgerEntryType` | 文字列 | (`"binary":false`の場合にのみ含まれる)このオブジェクトが表すレジャーオブジェクトの型を示す文字列。詳細なリストについては[レジャーデータフォーマット](../../../protocol/ledger-data/index.md)をご覧ください。 | +| (追加のフィールド) | (各種) | (`"binary":false`の場合にのみ含まれる)このオブジェクトを記述する追加フィールド。オブジェクトのLedgerEntryTypeに応じて異なります。 | +| `index` | 文字列 | このレジャーエントリの一意のID(16進数) | ## 考えられるエラー -* [汎用エラータイプ][]のすべて。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバが保有していません。 +- [汎用エラータイプ][]のすべて。 +- `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 +- `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバが保有していません。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_entry.md b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_entry.md index b91fd1f711..09adcfba6d 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_entry.md +++ b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_entry.md @@ -2,12 +2,14 @@ html: ledger_entry.html parent: ledger-methods.html seo: - description: XRP Ledgerの1つのレジャーエントリを生フォーマットで返します。 + description: XRP Ledgerの1つのレジャーエントリを生フォーマットで返します。 label: - ブロックチェーン - データ保持 --- + # ledger_entry + [[ソース]](https://github.com/xrplf/rippled/blob/master/src/ripple/rpc/handlers/LedgerEntry.cpp "Source") `ledger_entry`メソッドは、XRP Ledgerの1つのレジャーエントリを生フォーマットで返します。取得可能な各種エントリについては、[レジャーフォーマット][]をご覧ください。 @@ -20,18 +22,18 @@ label: ### 一般的なフィールド -| フィールド | 型 | 説明 | -|:------------------------|:-----------------------|:----------------------| -| `binary` | ブール値 | _(省略可)_ `true`の場合、リクエストしたレジャーエントリの内容がXRP Ledgerの[バイナリ形式](../../../protocol/binary-format.md)の16進数の文字列として返されます。それ以外の場合はデータがJSONフォーマットで返されます。デフォルトは`false`です。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.0" %}更新: rippled 1.2.0{% /badge %} | -| `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーバージョンの20バイトの16進数の文字列。([レジャーの指定][]をご覧ください。 | -| `ledger_index` | 文字列 または 符号なし整数 | _(省略可)_ 使用するレジャーの[レジャーインデックス][]、またはレジャーを自動的に選択するためのショートカット文字列("validated"や"closed"、"current"など)。([レジャーの指定][]をご覧ください。 | -| `include_deleted` | 真偽値 | _(省略可, Clioサーバのみ)_ クエリされたオブジェクトが削除されている場合、その完全なデータを削除前の状態で返します。`false`または提供されていない場合、クエリされたオブジェクトが削除されている場合は`objectNotFound`を返します。 | +| フィールド | 型 | 説明 | +| :---------------- | :------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `binary` | ブール値 | _(省略可)_ `true`の場合、リクエストしたレジャーエントリの内容がXRP Ledgerの[バイナリ形式](../../../protocol/binary-format.md)の16進数の文字列として返されます。それ以外の場合はデータがJSONフォーマットで返されます。デフォルトは`false`です。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.0" %}更新: rippled 1.2.0{% /badge %} | +| `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーバージョンの20バイトの16進数の文字列。([レジャーの指定][]をご覧ください。 | +| `ledger_index` | 文字列 または 符号なし整数 | _(省略可)_ 使用するレジャーの[レジャーインデックス][]、またはレジャーを自動的に選択するためのショートカット文字列("validated"や"closed"、"current"など)。([レジャーの指定][]をご覧ください。 | +| `include_deleted` | 真偽値 | _(省略可, Clioサーバのみ)_ クエリされたオブジェクトが削除されている場合、その完全なデータを削除前の状態で返します。`false`または提供されていない場合、クエリされたオブジェクトが削除されている場合は`objectNotFound`を返します。 | `generator`と`ledger`パラメータは非推奨であり、予告なく削除される可能性があります。 -上記の一般的なフィールドに加えて、エントリを取得するタイプを示すために、以下のフィールドのうち *正確に1つ* を指定する必要があります。有効なフィールドは以下のとおりです。 +上記の一般的なフィールドに加えて、エントリを取得するタイプを示すために、以下のフィールドのうち _正確に1つ_ を指定する必要があります。有効なフィールドは以下のとおりです。 -- [ledger\_entry](#ledger_entry) +- [ledger_entry](#ledger_entry) - [リクエストのフォーマット](#リクエストのフォーマット) - [一般的なフィールド](#一般的なフィールド) - [IDからレジャーエントリを取得する](#idからレジャーオントリを取得する) @@ -56,19 +58,20 @@ label: {% admonition type="warning" name="注意" %}リクエストでこれらの型固有のフィールドを1つ以上指定した場合、サーバはそのうちの1つだけの結果を取得します。サーバがどれを選択するかは定義されていないため、こうした指定方法は避けるべきです。{% /admonition %} - ### IDからレジャーエントリを取得する + ユニークな ID を使用して、任意のタイプのレジャーエントリを取得します。 -| フィールド | 型 | 説明 | -|:---------|:-------|:----------------------------------------------------------| -| `index` | 文字列 | レジャーから取得する1エントリの[レジャーエントリID](../../../protocol/ledger-data/common-fields.md)を、64文字(256ビット)の16進数の文字列。 | +| フィールド | 型 | 説明 | +| :--------- | :----- | :----------------------------------------------------------------------------------------------------------------------------------------- | +| `index` | 文字列 | レジャーから取得する1エントリの[レジャーエントリID](../../../protocol/ledger-data/common-fields.md)を、64文字(256ビット)の16進数の文字列。 | {% tabs %} {% tab label="WebSocket" %} + ```json { "command": "ledger_entry", @@ -76,26 +79,31 @@ label: "ledger_index": "validated" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "ledger_entry", - "params": [ - { - "index": "7DB0788C020F02780A673DC74757F23823FA3014C1866E72CC4CD8B226CD6EF4", - "ledger_index": "validated" - } - ] + "method": "ledger_entry", + "params": [ + { + "index": "7DB0788C020F02780A673DC74757F23823FA3014C1866E72CC4CD8B226CD6EF4", + "ledger_index": "validated" + } + ] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh rippled json ledger_entry '{ "index": "7DB0788C020F02780A673DC74757F23823FA3014C1866E72CC4CD8B226CD6EF4", "ledger_index": "validated" }' ``` + {% /tab %} {% /tabs %} @@ -109,22 +117,22 @@ rippled json ledger_entry '{ "index": "7DB0788C020F02780A673DC74757F23823FA3014C - [`FeeSettings`](../../../protocol/ledger-data/ledger-entry-types/feesettings.md) - `4BC50C9B0D8515D3EAAE1E74B29A95804346C491EE1A95BF25E4AAB854A6A651` - [直近の`LedgerHashes`](../../../protocol/ledger-data/ledger-entry-types/ledgerhashes.md) - `B4979A36CDC7F3D3D5C31A4EAE2AC7D7209DDA877588B9AFC66799692AB0D66B` - [`NegativeUNL`](../../../protocol/ledger-data/ledger-entry-types/negativeunl.md) - `2E8A59AA9D3B5B186B0B9E0F62E6C02587CA74A4D778938E957B6357D364B244` -{% /admonition %} - - + {% /admonition %} ### AccountRootエントリを取得する + アドレスから[AccountRootエントリ](../../../protocol/ledger-data/ledger-entry-types/accountroot.md)を取得します。これは[account_infoメソッド][]とほぼ同じです。 -| フィールド | 型 | 説明 | -|:---------------|:--------------------|:----------------------| +| フィールド | 型 | 説明 | +| :------------- | :-------------------- | :------------------------------------------------------------------------------------------------------------- | | `account_root` | 文字列 - [アドレス][] | 取得する[AccountRootエントリ](../../../protocol/ledger-data/ledger-entry-types/accountroot.md)の標準アドレス。 | {% tabs %} {% tab label="WebSocket" %} + ```json { "id": "example_get_accountroot", @@ -133,50 +141,55 @@ rippled json ledger_entry '{ "index": "7DB0788C020F02780A673DC74757F23823FA3014C "ledger_index": "validated" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "ledger_entry", - "params": [ - { - "account_root": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "ledger_index": "validated" - } - ] + "method": "ledger_entry", + "params": [ + { + "account_root": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "ledger_index": "validated" + } + ] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh rippled json ledger_entry '{ "account_root": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", "ledger_index": "validated" }' ``` + {% /tab %} {% /tabs %} {% try-it method="ledger_entry-accountroot" /%} - - ### AMMエントリを取得する + {% amendment-disclaimer name="AMM" /%} レジャーからAutomated Market-Maker(AMM)エントリを取得します。これは[amm_infoメソッド][]と似ていますが、`ledger_entry`は保存されているレジャーエントリのみを返します。 -| フィールド | 型 | 説明 | -|:-------------|:---------------------|:----------------------| +| フィールド | 型 | 説明 | +| :----------- | :----------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `amm` | オブジェクトまたは文字列 | 取得する[AMM](../../../protocol/ledger-data/ledger-entry-types/amm.md)。文字列を指定する場合は、AMMの[レジャーエントリID](../../../protocol/ledger-data/common-fields.md)を16進数で指定しなければなりません。エントリを指定する場合は、`asset`と`asset2`のサブフィールドを含む必要があります。 | -| `amm.asset` | オブジェクト | このAMMのプールにある2つの資産のうちのひとつを、[金額なしの通貨エントリ](../../../protocol/data-types/currency-formats.md#金額なしでの通貨の指定)として指定します。 | -| `amm.asset2` | オブジェクト | このAMMのプールにある2つの資産のうちのもうひとつを、[金額なしの通貨エントリ](../../../protocol/data-types/currency-formats.md#金額なしでの通貨の指定)として指定します。 | +| `amm.asset` | オブジェクト | このAMMのプールにある2つの資産のうちのひとつを、[金額なしの通貨エントリ](../../../protocol/data-types/currency-formats.md#金額なしでの通貨の指定)として指定します。 | +| `amm.asset2` | オブジェクト | このAMMのプールにある2つの資産のうちのもうひとつを、[金額なしの通貨エントリ](../../../protocol/data-types/currency-formats.md#金額なしでの通貨の指定)として指定します。 | {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 3, @@ -186,64 +199,69 @@ rippled json ledger_entry '{ "account_root": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 "currency": "XRP" }, "asset2": { - "currency" : "TST", - "issuer" : "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd" + "currency": "TST", + "issuer": "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd" } }, "ledger_index": "validated" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "ledger_entry", - "params": [ - { - "amm": { - "asset": { - "currency": "XRP" - }, - "asset2": { - "currency" : "TST", - "issuer" : "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd" - } - }, - "ledger_index": "validated" + "method": "ledger_entry", + "params": [ + { + "amm": { + "asset": { + "currency": "XRP" + }, + "asset2": { + "currency": "TST", + "issuer": "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd" } - ] + }, + "ledger_index": "validated" + } + ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh rippled json ledger_entry '{ "amm": { "asset": { "currency": "XRP" }, "asset2": { "currency" : "TST", "issuer" : "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd" } }, "ledger_index": "validated" }' ``` + {% /tab %} {% /tabs %} {% try-it method="ledger_entry-amm" server="testnet" /%} - ### Bridgeエントリを取得する + _([XChainBridge amendment][]が必要です {% not-enabled /%})_ XRP Ledgerを他のブロックチェーンに接続する1つのクロスチェーンブリッジを表す[Bridgeエントリ](../../../protocol/ledger-data/ledger-entry-types/bridge.md)を取得します。 -| フィールド   | 型 | 説明 | -|:-----------------|:-----------|:----------------------| -| `bridge_account` | 文字列 | ブロックチェーン上で`XChainCreateBridge`トランザクションを送信したアカウント。 | +| フィールド   | 型 | 説明 | +| :--------------- | :----------- | :------------------------------------------------------------------------------------------------------------------------------------------- | +| `bridge_account` | 文字列 | ブロックチェーン上で`XChainCreateBridge`トランザクションを送信したアカウント。 | | `bridge` | オブジェクト | 取得する[ブリッジ](../../../protocol/ledger-data/ledger-entry-types/bridge.md)。ドアアカウントと発行・ロックチェーンの資産の情報を含みます。 | - {% tabs %} {% tab label="WebSocket" %} + ```json { "id": "example_get_bridge", @@ -262,53 +280,57 @@ XRP Ledgerを他のブロックチェーンに接続する1つのクロスチェ "ledger_index": "validated" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "ledger_entry", - "params": [ - { - "bridge_account": "rnQAXXWoFNN6PEqwqsdTngCtFPCrmfuqFJ", - "bridge": { - "IssuingChainDoor": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "IssuingChainIssue": { - "currency": "XRP" - }, - "LockingChainDoor": "rnQAXXWoFNN6PEqwqsdTngCtFPCrmfuqFJ", - "LockingChainIssue": { - "currency": "XRP" - } - }, - "ledger_index": "validated" + "method": "ledger_entry", + "params": [ + { + "bridge_account": "rnQAXXWoFNN6PEqwqsdTngCtFPCrmfuqFJ", + "bridge": { + "IssuingChainDoor": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "IssuingChainIssue": { + "currency": "XRP" + }, + "LockingChainDoor": "rnQAXXWoFNN6PEqwqsdTngCtFPCrmfuqFJ", + "LockingChainIssue": { + "currency": "XRP" } - ] + }, + "ledger_index": "validated" + } + ] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh rippled json ledger_entry '{ "bridge_account": "rnQAXXWoFNN6PEqwqsdTngCtFPCrmfuqFJ", "bridge": { "IssuingChainDoor": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "IssuingChainIssue": { "currency": "XRP" }, "LockingChainDoor": "rnQAXXWoFNN6PEqwqsdTngCtFPCrmfuqFJ", "LockingChainIssue": { "currency": "XRP" } }, "ledger_index": "validated" }' ``` + {% /tab %} {% /tabs %} {% try-it method="ledger_entry-bridge" server="devnet" /%} - ### Credentialエントリを取得する [Credentialエントリ](../../../protocol/ledger-data/ledger-entry-types/credential.md)を取得します。 -| フィールド | 型 | 必須? | 説明 | -| :--------------------------- | :------------------------- | :---- | ---- | +| フィールド | 型 | 必須? | 説明 | +| :--------------------------- | :------------------------- | :---- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `credential` | オブジェクト または 文字列 | はい | 取得する[Credentialエントリ](../../../protocol/ledger-data/ledger-entry-types/credential.md)を指定します。文字列の場合は、エントリの[レジャーエントリID](../../../protocol/ledger-data/common-fields.md)を16進数で指定します。オブジェクトの場合は、`subject`, `issuer`, `credential_type`のサブフィールドが必要です。 | -| `credential.subject` | 文字列 - [Address][] | はい | 資格情報の対象となるアカウント。 | -| `credential.issuer` | 文字列 - [Address][] | はい | 資格情報を発行したアカウント。 | -| `credential.credential_type` | 文字列 - 16進数文字列 | はい | 資格情報の種類。 | +| `credential.subject` | 文字列 - [Address][] | はい | 資格情報の対象となるアカウント。 | +| `credential.issuer` | 文字列 - [Address][] | はい | 資格情報を発行したアカウント。 | +| `credential.credential_type` | 文字列 - 16進数文字列 | はい | 資格情報の種類。 | WebSocket: @@ -330,14 +352,16 @@ JSON-RPC: ```json { "method": "ledger_entry", - "params": [{ - "credential": { - "subject": "rsUiUMpnrgxQp24dJYZDhmV4bE3aBtQyt8", - "issuer": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "credential_type": "6D795F63726564656E7469616C" - }, - "ledger_index": "validated" - }] + "params": [ + { + "credential": { + "subject": "rsUiUMpnrgxQp24dJYZDhmV4bE3aBtQyt8", + "issuer": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "credential_type": "6D795F63726564656E7469616C" + }, + "ledger_index": "validated" + } + ] } ``` @@ -351,22 +375,23 @@ rippled json ledger_entry '{ "credential": {"subject": "rsUiUMpnrgxQp24dJYZDhmV4 [Try it! >](/resources/dev-tools/websocket-api-tool#ledger_entry-credential) --> - ### DirectoryNodeエントリを取得する + 他のレジャーエントリのリストを含む[DirectoryNode](../../../protocol/ledger-data/ledger-entry-types/directorynode.md)を取得します。文字列(DirectoryのレジャーエントリID)またはオブジェクトを指定します。 -| フィールド | 型 | 説明 | -|:------------------------|:---------------------------|:----------------------| -| `directory` | オブジェクト または 文字列 | 取得する[DirectoryNode](../../../protocol/ledger-data/ledger-entry-types/directorynode.md)。文字列の場合は、ディレクトリの[レジャーエントリID](../../../protocol/ledger-data/common-fields.md)を16進数で指定します。オブジェクトの場合は、サブフィールドとして`dir_root`または`owner`が必要で、オプションとして`sub_index`サブフィールドを指定可能です。 | -| `directory.sub_index` | 符号なし整数 | _(省略可)_ 指定された場合、その"ページ"以降の[DirectoryNode](../../../protocol/ledger-data/ledger-entry-types/directorynode.md)にジャンプします。 | -| `directory.dir_root` | 文字列 | _(省略可)_ 取得するディレクトリを表す一意のインデックス。 | -| `directory.owner` | 文字列 | _(省略可)_ このディレクトリに関連付けられているアカウントの一意のアドレス。 | +| フィールド | 型 | 説明 | +| :-------------------- | :------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `directory` | オブジェクト または 文字列 | 取得する[DirectoryNode](../../../protocol/ledger-data/ledger-entry-types/directorynode.md)。文字列の場合は、ディレクトリの[レジャーエントリID](../../../protocol/ledger-data/common-fields.md)を16進数で指定します。オブジェクトの場合は、サブフィールドとして`dir_root`または`owner`が必要で、オプションとして`sub_index`サブフィールドを指定可能です。 | +| `directory.sub_index` | 符号なし整数 | _(省略可)_ 指定された場合、その"ページ"以降の[DirectoryNode](../../../protocol/ledger-data/ledger-entry-types/directorynode.md)にジャンプします。 | +| `directory.dir_root` | 文字列 | _(省略可)_ 取得するディレクトリを表す一意のインデックス。 | +| `directory.owner` | 文字列 | _(省略可)_ このディレクトリに関連付けられているアカウントの一意のアドレス。 | {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 3, @@ -378,51 +403,56 @@ rippled json ledger_entry '{ "credential": {"subject": "rsUiUMpnrgxQp24dJYZDhmV4 "ledger_index": "validated" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "ledger_entry", - "params": [ - { - "directory": { - "owner": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "sub_index": 0 - }, - "ledger_index": "validated" - } - ] + "method": "ledger_entry", + "params": [ + { + "directory": { + "owner": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "sub_index": 0 + }, + "ledger_index": "validated" + } + ] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh rippled json ledger_entry '{ "directory": { "owner": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", "sub_index": 0 }, "ledger_index": "validated" }' ``` + {% /tab %} {% /tabs %} {% try-it method="ledger_entry-directorynode" /%} - - ### Offerエントリを取得する + 通貨交換のオファーを定義した [Offer エントリ](../../../protocol/ledger-data/ledger-entry-types/offer.md) を取得します。文字列 (オファーの一意なインデックス) あるいはオブジェクトを指定します。 -| フィールド | 型 | 説明 | -|:------------------------|:---------------------------|:----------------------| -| `offer` | オブジェクトまたは 文字列 | 取得する[オファーエントリ](../../../protocol/ledger-data/ledger-entry-types/offer.md)。文字列の場合、オファーに対する[一意のレジャーエントリID](../../../protocol/ledger-data/common-fields.md)を指定します。レジャーエントリの場合、オファーを一意に識別するためのサブフィールド`account`と`seq`を指定します。 | -| `offer.account` | 文字列 - [アドレス][] | _(`offer`がオブジェクト形式で指定されている場合、必須)_ オファーを作成したアカウント。 | -| `offer.seq` | 符号なし整数 | _(`offer`がオブジェクト形式で指定されている場合、必須)_ オファーエントリを作成したトランザクションの[シーケンス番号][]。 | +| フィールド | 型 | 説明 | +| :-------------- | :------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `offer` | オブジェクトまたは 文字列 | 取得する[オファーエントリ](../../../protocol/ledger-data/ledger-entry-types/offer.md)。文字列の場合、オファーに対する[一意のレジャーエントリID](../../../protocol/ledger-data/common-fields.md)を指定します。レジャーエントリの場合、オファーを一意に識別するためのサブフィールド`account`と`seq`を指定します。 | +| `offer.account` | 文字列 - [アドレス][] | _(`offer`がオブジェクト形式で指定されている場合、必須)_ オファーを作成したアカウント。 | +| `offer.seq` | 符号なし整数 | _(`offer`がオブジェクト形式で指定されている場合、必須)_ オファーエントリを作成したトランザクションの[シーケンス番号][]。 | {% tabs %} {% tab label="WebSocket" %} + ```json { "id": "example_get_offer", @@ -434,9 +464,11 @@ rippled json ledger_entry '{ "directory": { "owner": "rf1BiGeXwwQoi8Z2ueFYTEXSwu "ledger_index": "validated" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { "method": "ledger_entry", @@ -451,12 +483,15 @@ rippled json ledger_entry '{ "directory": { "owner": "rf1BiGeXwwQoi8Z2ueFYTEXSwu ] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh rippled json ledger_entry '{ "offer": { "account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", "seq": 359}, "ledger_index": "validated" }' ``` + {% /tab %} {% /tabs %} @@ -469,128 +504,136 @@ _([PriceOracle amendment][]が必要です)_ [Oracleエントリ](../../../protocol/ledger-data/ledger-entry-types/oracle.md)を取得します。これは、トークン価格を保存できる単一の価格オラクルを表します。 -| フィールド | 型 | 必須? | 説明 | -|-----------------------------|----------------------|-------|------| -| `oracle` | Object | はい | オラクルの識別子。 | +| フィールド | 型 | 必須? | 説明 | +| --------------------------- | -------------------- | ----- | ------------------------------------------ | +| `oracle` | Object | はい | オラクルの識別子。 | | `oracle.account` | String - [Address][] | はい | `Oracle`オブジェクトを制御するアカウント。 | -| `oracle.oracle_document_id` | Number | はい | `Account`のオラクルの一意の識別子。 | +| `oracle.oracle_document_id` | Number | はい | `Account`のオラクルの一意の識別子。 | {% tabs %} {% tab label="WebSocket" %} + ```json { "id": "example_get_oracle", "command": "ledger_entry", - "oracle" : { + "oracle": { "account": "rNZ9m6AP9K7z3EVg6GhPMx36V4QmZKeWds", - "oracle_document_id": 34 + "oracle_document_id": 34 }, "ledger_index": "validated" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { "method": "ledger_entry", - "params" : [ + "params": [ { - "oracle" : { + "oracle": { "account": "rNZ9m6AP9K7z3EVg6GhPMx36V4QmZKeWds", - "oracle_document_id": 34 + "oracle_document_id": 34 }, "ledger_index": "validated" } ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh rippled json ledger_entry '{ "oracle": { "account": "rNZ9m6AP9K7z3EVg6GhPMx36V4QmZKeWds", "oracle_document_id": 34 }, "ledger_index": "validated" }' ``` + {% /tab %} {% /tabs %} [試してみる >](/resources/dev-tools/websocket-api-tool?server=wss%3A%2F%2Fs.devnet.rippletest.net%3A51233%2F#ledger_entry-oracle) - ### RippleStateエントリを取得する + 2つのアカウント間の(XRP以外の)通貨残高を追跡する[RippleStateエントリ](../../../protocol/ledger-data/ledger-entry-types/ripplestate.md)を取得します。 -| フィールド | 型 | 説明 | -|:------------------------|:---------------------------|:----------------------| -| `ripple_state` | オブジェクト | 取得するRippleState(trust line)エントリを指定するレジャーエントリ。取得するRippleStateエントリを一意に指定するには、`accounts`と`currency`のサブフィールドが必要です。 | -| `ripple_state.accounts` | 配列 | _(`ripple_state`が指定されている場合、必須)_ この[RippleStateエントリ](../../../protocol/ledger-data/ledger-entry-types/ripplestate.md)によってリンクされた2つのアカウントを長さ2の配列で指定します。 | -| `ripple_state.currency` | 文字列 | _(`ripple_state`が指定されている場合、必須)_ 取得する[RippleStateエントリ](../../../protocol/ledger-data/ledger-entry-types/ripplestate.md)の[通貨コード][]を指定します。 | +| フィールド | 型 | 説明 | +| :---------------------- | :----------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `ripple_state` | オブジェクト | 取得するRippleState(trust line)エントリを指定するレジャーエントリ。取得するRippleStateエントリを一意に指定するには、`accounts`と`currency`のサブフィールドが必要です。 | +| `ripple_state.accounts` | 配列 | _(`ripple_state`が指定されている場合、必須)_ この[RippleStateエントリ](../../../protocol/ledger-data/ledger-entry-types/ripplestate.md)によってリンクされた2つのアカウントを長さ2の配列で指定します。 | +| `ripple_state.currency` | 文字列 | _(`ripple_state`が指定されている場合、必須)_ 取得する[RippleStateエントリ](../../../protocol/ledger-data/ledger-entry-types/ripplestate.md)の[通貨コード][]を指定します。 | {% tabs %} {% tab label="WebSocket" %} + ```json { "id": "example_get_ripplestate", "command": "ledger_entry", "ripple_state": { - "accounts": [ - "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW" - ], + "accounts": ["rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW"], "currency": "USD" }, "ledger_index": "validated" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { "method": "ledger_entry", - "params": [{ - "ripple_state": { - "accounts": [ - "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW" - ], - "currency": "USD" - }, - "ledger_index": "validated" - }] + "params": [ + { + "ripple_state": { + "accounts": ["rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW"], + "currency": "USD" + }, + "ledger_index": "validated" + } + ] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh rippled json ledger_entry '{ "ripple_state": { "accounts": ["rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW"], "currency": "USD"}, "ledger_index": "validated" }' ``` + {% /tab %} {% /tabs %} {% try-it method="ledger_entry-ripplestate" /%} - - ### Checkエントリを取得する + [Checkエントリ](../../../protocol/ledger-data/ledger-entry-types/check.md)を取得します。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.0.0" %}新規: rippled 1.0.0{% /badge %}. -| フィールド | 型 | 説明 | -|:---------|:------|:----------------------| -| `check` | 文字列 | 取得する[Checkエントリ](../../../protocol/ledger-data/ledger-entry-types/check.md)の[レジャーエントリID](../../../protocol/ledger-data/common-fields.md)。 | +| フィールド | 型 | 説明 | +| :--------- | :----- | :--------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `check` | 文字列 | 取得する[Checkエントリ](../../../protocol/ledger-data/ledger-entry-types/check.md)の[レジャーエントリID](../../../protocol/ledger-data/common-fields.md)。 | {% tabs %} {% tab label="WebSocket" %} + ```json { "id": "example_get_check", @@ -599,46 +642,53 @@ rippled json ledger_entry '{ "ripple_state": { "accounts": ["rf1BiGeXwwQoi8Z2ueF "ledger_index": "validated" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { "method": "ledger_entry", - "params": [{ - "check": "C4A46CCD8F096E994C4B0DEAB6CE98E722FC17D7944C28B95127C2659C47CBEB", - "ledger_index": "validated" - }] + "params": [ + { + "check": "C4A46CCD8F096E994C4B0DEAB6CE98E722FC17D7944C28B95127C2659C47CBEB", + "ledger_index": "validated" + } + ] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh rippled json ledger_entry '{ "check": "C4A46CCD8F096E994C4B0DEAB6CE98E722FC17D7944C28B95127C2659C47CBEB", "ledger_index": "validated" }' ``` + {% /tab %} {% /tabs %} {% try-it method="ledger_entry-check" /%} - - ### Escrowエントリを取得する + [Escrowエントリ](../../../protocol/ledger-data/ledger-entry-types/escrow.md)を取得します。文字列(エスクローのエントリID)またはオブジェクトとして指定します。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.0.0" %}新規: rippled 1.0.0{% /badge %} -| フィールド | 型 | 説明 | -|:------------------------|:---------------------------|:----------------------| -| `escrow` | オブジェクト または 文字列 | 取得する[Escrowエントリ](../../../protocol/ledger-data/ledger-entry-types/escrow.md)を指定します。文字列の場合は、エスクローの[レジャーエントリID](../../../protocol/ledger-data/common-fields.md)を16進数で指定します。オブジェクトの場合、`owner`と`seq`サブフィールドを指定します。. | -| `escrow.owner` | 文字列 - [アドレス][] | _(`escrow`がオブジェクト形式で指定されている場合、必須)_ Escrowエントリの所有者(送信者)。 | -| `escrow.seq` | 符号なし整数 | _(`escrow`がオブジェクト形式で指定されている場合、必須)_ エスクローエントリを作成したトランザクションの[シーケンス番号][]。 | +| フィールド | 型 | 説明 | +| :------------- | :------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `escrow` | オブジェクト または 文字列 | 取得する[Escrowエントリ](../../../protocol/ledger-data/ledger-entry-types/escrow.md)を指定します。文字列の場合は、エスクローの[レジャーエントリID](../../../protocol/ledger-data/common-fields.md)を16進数で指定します。オブジェクトの場合、`owner`と`seq`サブフィールドを指定します。. | +| `escrow.owner` | 文字列 - [アドレス][] | _(`escrow`がオブジェクト形式で指定されている場合、必須)_ Escrowエントリの所有者(送信者)。 | +| `escrow.seq` | 符号なし整数 | _(`escrow`がオブジェクト形式で指定されている場合、必須)_ エスクローエントリを作成したトランザクションの[シーケンス番号][]。 | {% tabs %} {% tab label="WebSocket" %} + ```json { "id": "example_get_escrow", @@ -650,46 +700,53 @@ rippled json ledger_entry '{ "check": "C4A46CCD8F096E994C4B0DEAB6CE98E722FC17D79 "ledger_index": "validated" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { "method": "ledger_entry", - "params": [{ - "escrow": { - "owner": "rL4fPHi2FWGwRGRQSH7gBcxkuo2b9NTjKK", - "seq": 126 - }, - "ledger_index": "validated" - }] + "params": [ + { + "escrow": { + "owner": "rL4fPHi2FWGwRGRQSH7gBcxkuo2b9NTjKK", + "seq": 126 + }, + "ledger_index": "validated" + } + ] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh rippled json ledger_entry '{ "escrow": { "owner": "rL4fPHi2FWGwRGRQSH7gBcxkuo2b9NTjKK", "seq": 126 }, "ledger_index": "validated" }' ``` + {% /tab %} {% /tabs %} {% try-it method="ledger_entry-escrow" /%} - - ### PayChannelエントリを取得する + 非同期決済用のXRPを保持する[PayChannelエントリ](../../../protocol/ledger-data/ledger-entry-types/paychannel.md)を取得します。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.0.0" %}新規: rippled 1.0.0{% /badge %}. -| フィールド | 型 | 説明 | -|:------------------|:-------|:------------------------------------------------| -| `payment_channel` | 文字列 | 取得する[PayChannelエントリ](../../../protocol/ledger-data/ledger-entry-types/paychannel.md)の[エントリID](../../../protocol/ledger-data/common-fields.md)。 | +| フィールド | 型 | 説明 | +| :---------------- | :----- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `payment_channel` | 文字列 | 取得する[PayChannelエントリ](../../../protocol/ledger-data/ledger-entry-types/paychannel.md)の[エントリID](../../../protocol/ledger-data/common-fields.md)。 | {% tabs %} {% tab label="WebSocket" %} + ```json { "id": "example_get_paychannel", @@ -698,42 +755,49 @@ rippled json ledger_entry '{ "escrow": { "owner": "rL4fPHi2FWGwRGRQSH7gBcxkuo2b9 "ledger_index": "validated" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { "method": "ledger_entry", - "params": [{ - "payment_channel": "C7F634794B79DB40E87179A9D1BF05D05797AE7E92DF8E93FD6656E8C4BE3AE7", - "ledger_index": "validated" - }] + "params": [ + { + "payment_channel": "C7F634794B79DB40E87179A9D1BF05D05797AE7E92DF8E93FD6656E8C4BE3AE7", + "ledger_index": "validated" + } + ] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh rippled json ledger_entry '{ "payment_channel": "C7F634794B79DB40E87179A9D1BF05D05797AE7E92DF8E93FD6656E8C4BE3AE7", "ledger_index": "validated" }' ``` + {% /tab %} {% /tabs %} {% try-it method="ledger_entry-paychannel" /%} - ### DepositPreauthエントリを取得する + [DepositPreauthエントリ](../../../protocol/ledger-data/ledger-entry-types/depositpreauth.md)を取得します。このエントリは、[Deposit Authorization](../../../../concepts/accounts/depositauth.md)を必要とする口座への支払いの事前承認を記録します。文字列(DepositPreauthのエントリID)またはオブジェクトとして指定します。 -| フィールド | 型 | 必須? | 説明 | -| :--------------------------------------- | :------------------------- | :----- | ---- | +| フィールド | 型 | 必須? | 説明 | +| :--------------------------------------- | :------------------------- | :----- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `deposit_preauth` | オブジェクト または 文字列 | はい | 取得するDepositPreauthを指定します。文字列の場合は、DepositPreauthエントリの[レジャーエントリID][]を16進数で指定する必要があります。オブジェクトの場合は、`owner`サブフィールドと、`authorized`または`authorize_credentials`サブフィールドのいずれかが必要です。 | -| `deposit_preauth.owner` | 文字列 - [アドレス][] | はい | 事前承認を行ったアカウント | -| `deposit_preauth.authorized` | 文字列 - [アドレス][] | いいえ | 事前承認を受けたアカウント。 | -| `deposit_preauth.authorized_credentials` | 配列 | いいえ | 事前承認を受けた資格情報のセット | +| `deposit_preauth.owner` | 文字列 - [アドレス][] | はい | 事前承認を行ったアカウント | +| `deposit_preauth.authorized` | 文字列 - [アドレス][] | いいえ | 事前承認を受けたアカウント。 | +| `deposit_preauth.authorized_credentials` | 配列 | いいえ | 事前承認を受けた資格情報のセット | `deposit_preauth.authorized_credentials`配列の各メンバは、提供されている場合、次のネストされたフィールドを含める必要があります。 @@ -745,6 +809,7 @@ rippled json ledger_entry '{ "payment_channel": "C7F634794B79DB40E87179A9D1BF05D {% tabs %} {% tab label="WebSocket" %} + ```json { "id": "example_get_deposit_preauth", @@ -756,48 +821,56 @@ rippled json ledger_entry '{ "payment_channel": "C7F634794B79DB40E87179A9D1BF05D "ledger_index": "validated" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { "method": "ledger_entry", - "params": [{ - "deposit_preauth": { - "owner": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "authorized": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX" - }, - "ledger_index": "validated" - }] + "params": [ + { + "deposit_preauth": { + "owner": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "authorized": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX" + }, + "ledger_index": "validated" + } + ] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh rippled json ledger_entry '{ "deposit_preauth": { "owner": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", "authorized": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX" }, "ledger_index": "validated" }' ``` + {% /tab %} {% /tabs %} {% try-it method="ledger_entry-depositpreauth" /%} - ### Ticketエントリを取得する + 将来の使用のために確保された[シーケンス番号][]を表す[Ticketエントリ](../../../protocol/ledger-data/ledger-entry-types/ticket.md)を取得します。文字列(TicketのエントリID)またはオブジェクトを指定します。 {% amendment-disclaimer name="TicketBatch" /%} -| フィールド | 型 | 説明 | -|:--------------------|:-----------------------|:----------------------| +| フィールド | 型 | 説明 | +| :------------------ | :--------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `ticket` | エントリ または 文字列 | 取得する[Ticketエントリ](../../../protocol/ledger-data/ledger-entry-types/ticket.md)。文字列の場合、チケットの[レジャーエントリID](../../../protocol/ledger-data/common-fields.md)を16進数で指定します。オブジェクトの場合、チケットエントリを一意に指定するために`account`と`ticket_seq`サブフィールドを指定します。 | -| `ticket.account` | 文字列 - [アドレス][] | _(`ticket`がオブジェクト形式で指定されている場合、必須)_ Ticketエントリの所有者を指定します。 | -| `ticket.ticket_seq` | 数値 | _(`ticket`がオブジェクト形式で指定されている場合、必須)_ 取得するTicketのTicketシーケンス番号を指定します。 | +| `ticket.account` | 文字列 - [アドレス][] | _(`ticket`がオブジェクト形式で指定されている場合、必須)_ Ticketエントリの所有者を指定します。 | +| `ticket.ticket_seq` | 数値 | _(`ticket`がオブジェクト形式で指定されている場合、必須)_ 取得するTicketのTicketシーケンス番号を指定します。 | {% tabs %} {% tab label="WebSocket" %} + ```json { "id": "example_get_ticket", @@ -809,72 +882,87 @@ rippled json ledger_entry '{ "deposit_preauth": { "owner": "rf1BiGeXwwQoi8Z2ueFY "ledger_index": "validated" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { "method": "ledger_entry", - "params": [{ - "ticket": { - "account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "ticket_seq": 389 - }, - "ledger_index": "validated" - }] + "params": [ + { + "ticket": { + "account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "ticket_seq": 389 + }, + "ledger_index": "validated" + } + ] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh rippled json ledger_entry '{ "ticket": { "account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", "ticket_seq: 389 }, "ledger_index": "validated" }' ``` + {% /tab %} {% /tabs %} {% try-it method="ledger_entry-ticket" /%} - ### NFT Pageを取得する + NFT ページを生のレジャー形式で取得します。 -| フィールド | 型 | 説明 | -|:------------------------|:-------|:----------------------| -| `nft_page` | 文字列 | 取得する[NFTページ](../../../protocol/ledger-data/ledger-entry-types/nftokenpage.md)の[レジャーエントリID](../../../protocol/ledger-data/common-fields.md)。 | +| フィールド | 型 | 説明 | +| :--------- | :----- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `nft_page` | 文字列 | 取得する[NFTページ](../../../protocol/ledger-data/ledger-entry-types/nftokenpage.md)の[レジャーエントリID](../../../protocol/ledger-data/common-fields.md)。 | {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": "example_get_nft_page", - "command": "ledger_entry", - "nft_page": "255DD86DDF59D778081A06D02701E9B2C9F4F01DFFFFFFFFFFFFFFFFFFFFFFFF", - "ledger_index": "validated" + "id": "example_get_nft_page", + "command": "ledger_entry", + "nft_page": "255DD86DDF59D778081A06D02701E9B2C9F4F01DFFFFFFFFFFFFFFFFFFFFFFFF", + "ledger_index": "validated" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { "method": "ledger_entry", - "params": [{ - "nft_page": "255DD86DDF59D778081A06D02701E9B2C9F4F01DFFFFFFFFFFFFFFFFFFFFFFFF", - "ledger_index": "validated" - }] + "params": [ + { + "nft_page": "255DD86DDF59D778081A06D02701E9B2C9F4F01DFFFFFFFFFFFFFFFFFFFFFFFF", + "ledger_index": "validated" + } + ] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh rippled json ledger_entry '{ "nft_page": "255DD86DDF59D778081A06D02701E9B2C9F4F01DFFFFFFFFFFFFFFFFFFFFFFFF", "ledger_index": "validated" }' ``` + {% /tab %} {% /tabs %} @@ -887,39 +975,47 @@ _([MPTokensV1 amendment][]が必要です。 {% not-enabled /%})_ `MPTokenIssuance`オブジェクトを返します。 -| フィールド | 型 | 説明 | -|:------------------------|:-------|:---------------| -| `mpt_issuance` | 文字列 | 192ビットの`MPTokenIssuanceID`を16進文字列で指定。 | +| フィールド | 型 | 説明 | +| :------------- | :----- | :------------------------------------------------- | +| `mpt_issuance` | 文字列 | 192ビットの`MPTokenIssuanceID`を16進文字列で指定。 | {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": "example_get_mpt_issuance", - "command": "ledger_entry", - "mpt_issuance": "000004C463C52827307480341125DA0577DEFC38405B0E3E", - "ledger_index": "validated" + "id": "example_get_mpt_issuance", + "command": "ledger_entry", + "mpt_issuance": "000004C463C52827307480341125DA0577DEFC38405B0E3E", + "ledger_index": "validated" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { "method": "ledger_entry", - "params": [{ - "mpt_issuance": "000004C463C52827307480341125DA0577DEFC38405B0E3E", - "ledger_index": "validated" - }] + "params": [ + { + "mpt_issuance": "000004C463C52827307480341125DA0577DEFC38405B0E3E", + "ledger_index": "validated" + } + ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh rippled json ledger_entry '{ "mpt_issuance": "000004C463C52827307480341125DA0577DEFC38405B0E3E", "ledger_index": "validated" }' ``` + {% /tab %} {% /tabs %} @@ -933,11 +1029,11 @@ _([MPTokensV1 amendment][]が必要です。 {% not-enabled /%})_ `MPToken`オブジェクトを返します。 -| フィールド | 型 | 説明 | -|:------------------------|:-------------------------|:----------------------| +| フィールド | 型 | 説明 | +| :---------------------- | :----------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `mptoken` | オブジェクトまたは文字列 | 文字列の場合、取得するMPTokenのレジャーエントリIDとして解釈します。オブジェクトの場合、`MPToken`を一意に識別するために、`account`と`mpt_issuance_id`のサブフィールドが必要です。 | -| mptoken.mpt_issuance_id | 文字列 | (`MPToken`がオブジェクトの場合必須) MPTokenIssuanceに紐づく192ビットのMPTokenIssuanceID。 | -| mptoken.account ️ | 文字列 | (`MPToken`がオブジェクトの場合必須) MPTokenの所有者のアカウント。 | +| mptoken.mpt_issuance_id | 文字列 | (`MPToken`がオブジェクトの場合必須) MPTokenIssuanceに紐づく192ビットのMPTokenIssuanceID。 | +| mptoken.account ️ | 文字列 | (`MPToken`がオブジェクトの場合必須) MPTokenの所有者のアカウント。 | {% tabs %} @@ -945,36 +1041,41 @@ _([MPTokensV1 amendment][]が必要です。 {% not-enabled /%})_ ```json { - "id": "example_get_mpt_issuance", - "command": "ledger_entry", - "mptoken": { - "mpt_issuance_id": "000002DFA4D893CFBC4DC6AE877EB585F90A3B47528B958D", - "account":"r33kves44ksufkHSGg3M6GPPAsoVHEN8C1" - } + "id": "example_get_mpt_issuance", + "command": "ledger_entry", + "mptoken": { + "mpt_issuance_id": "000002DFA4D893CFBC4DC6AE877EB585F90A3B47528B958D", + "account": "r33kves44ksufkHSGg3M6GPPAsoVHEN8C1" + } } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "ledger_entry", - "params": [ - { - "mptoken":{ - "mpt_issuance_id": "000002DFA4D893CFBC4DC6AE877EB585F90A3B47528B958D", - "account":"r33kves44ksufkHSGg3M6GPPAsoVHEN8C1" - } - } - ] + "method": "ledger_entry", + "params": [ + { + "mptoken": { + "mpt_issuance_id": "000002DFA4D893CFBC4DC6AE877EB585F90A3B47528B958D", + "account": "r33kves44ksufkHSGg3M6GPPAsoVHEN8C1" + } + } + ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh rippled json ledger_entry '{ "mptoken": {"mpt_issuance_id": "000002DFA4D893CFBC4DC6AE877EB585F90A3B47528B958D", "account":"r33kves44ksufkHSGg3M6GPPAsoVHEN8C1"} }' ``` + {% /tab %} {% /tabs %} @@ -986,20 +1087,20 @@ rippled json ledger_entry '{ "mptoken": {"mpt_issuance_id": "000002DFA4D893CFBC4 レスポンスは[標準フォーマット][]に従い、成功した結果には次のフィールドが含まれます。 -| フィールド | 型 | 説明 | -|:---------------|:-----------------|:-----------------------------------------| -| `index` | 文字列 | [レジャーエントリ](../../../protocol/ledger-data/ledger-entry-types/index.md)の一意のID。 | -| `ledger_index` | 符号なし整数 | このデータを取得する際に使用したレジャーの [レジャーインデックス][]。 | -| `node` | オブジェクト | _(`"binary": true`が指定されている場合、省略)_ [レジャーフォーマット][]に基づいた、このレジャーエントリのデータを含むエントリ。 | -| `node_binary` | 文字列 | _(`"binary": true`が指定されていない場合、省略)_ レジャーエントリの[バイナリ形式](../../../protocol/binary-format.md)を16進数で表したもの。 | -| `deleted_ledger_index` | 文字列 | _(Clioサーバのみ, `include_deleted`パラメータが設定されている場合のみ)_ レジャーエントリオブジェクトが削除された[レジャーインデックス][]。 | - +| フィールド | 型 | 説明 | +| :--------------------- | :----------- | :------------------------------------------------------------------------------------------------------------------------------------------ | +| `index` | 文字列 | [レジャーエントリ](../../../protocol/ledger-data/ledger-entry-types/index.md)の一意のID。 | +| `ledger_index` | 符号なし整数 | このデータを取得する際に使用したレジャーの [レジャーインデックス][]。 | +| `node` | オブジェクト | _(`"binary": true`が指定されている場合、省略)_ [レジャーフォーマット][]に基づいた、このレジャーエントリのデータを含むエントリ。 | +| `node_binary` | 文字列 | _(`"binary": true`が指定されていない場合、省略)_ レジャーエントリの[バイナリ形式](../../../protocol/binary-format.md)を16進数で表したもの。 | +| `deleted_ledger_index` | 文字列 | _(Clioサーバのみ, `include_deleted`パラメータが設定されている場合のみ)_ レジャーエントリオブジェクトが削除された[レジャーインデックス][]。 | 成功したレスポンスの例: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": "example_get_accountroot", @@ -1030,9 +1131,11 @@ rippled json ledger_entry '{ "mptoken": {"mpt_issuance_id": "000002DFA4D893CFBC4 "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -1063,9 +1166,11 @@ rippled json ledger_entry '{ "mptoken": {"mpt_issuance_id": "000002DFA4D893CFBC4 } } ``` + {% /tab %} {% tab label="Commandline" %} + ```json { "result": { @@ -1094,22 +1199,22 @@ rippled json ledger_entry '{ "mptoken": {"mpt_issuance_id": "000002DFA4D893CFBC4 } } ``` + {% /tab %} {% /tabs %} - ## 考えられるエラー -* いずれかの[汎用エラータイプ][]。 -* `deprecatedFeature` - 削除されたフィールド(`generator`など)がリクエストに指定されていました。 -* `entryNotFound` - リクエストされたレジャーエントリはレジャーに存在しません。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバが保有していません。 -* `malformedAddress` - リクエストの[アドレス][]フィールドが誤って指定されています。 -* `malformedCurrency` - リクエストの[通貨コード][]フィールドが誤って指定されています。 -* `malformedOwner` - リクエストの`escrow.owner`サブフィールドが誤って指定されています。 -* `malformedRequest` - リクエストにフィールドが無効な組み合わせで指定されているか、1つ以上のフィールドの型が誤っています。 -* `unknownOption` - リクエストに指定されたフィールドが、予期されるリクエストのフォーマットのいずれにも一致していません。 +- いずれかの[汎用エラータイプ][]。 +- `deprecatedFeature` - 削除されたフィールド(`generator`など)がリクエストに指定されていました。 +- `entryNotFound` - リクエストされたレジャーエントリはレジャーに存在しません。 +- `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 +- `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバが保有していません。 +- `malformedAddress` - リクエストの[アドレス][]フィールドが誤って指定されています。 +- `malformedCurrency` - リクエストの[通貨コード][]フィールドが誤って指定されています。 +- `malformedOwner` - リクエストの`escrow.owner`サブフィールドが誤って指定されています。 +- `malformedRequest` - リクエストにフィールドが無効な組み合わせで指定されているか、1つ以上のフィールドの型が誤っています。 +- `unknownOption` - リクエストに指定されたフィールドが、予期されるリクエストのフォーマットのいずれにも一致していません。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/amm_info.md b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/amm_info.md index dde560028f..34c71fe65a 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/amm_info.md +++ b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/amm_info.md @@ -2,21 +2,22 @@ html: amm_info.html parent: path-and-order-book-methods.html seo: - description: 自動マーケットメーカ(AMM)の情報を取得する。 + description: 自動マーケットメーカ(AMM)の情報を取得する。 status: not_enabled labels: - 分散型取引所 - クロスカレンシー - AMM --- + # amm_info + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/AMMInfo.cpp "Source") {% code-page-name /%}メソッドは、自動マーケットメーカー(AMM)インスタンスに関する情報を取得します。 {% amendment-disclaimer name="AMM" /%} - ### リクエストのフォーマット リクエストの例 @@ -26,25 +27,29 @@ labels: {% tabs %} {% tab label="WebSocket" %} + ```json { - "command": "{% $frontmatter.seo.title %}", - "asset": { - "currency": "XRP" - }, - "asset2": { - "currency": "TST", - "issuer": "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd" - } + "command": "{% $frontmatter.seo.title %}", + "asset": { + "currency": "XRP" + }, + "asset2": { + "currency": "TST", + "issuer": "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd" + } } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "{% $frontmatter.seo.title %}", - "params": [{ + "method": "{% $frontmatter.seo.title %}", + "params": [ + { "asset": { "currency": "XRP" }, @@ -52,9 +57,11 @@ labels: "currency": "TST", "issuer": "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd" } - }] + } + ] } ``` + {% /tab %} {% /tabs %} @@ -63,11 +70,11 @@ labels: リクエストには以下のパラメーターが含まれます。 -| `フィールド` | 型 | 必須? | 説明 | -|:--------------|:--------------------|:------|:-----------------------------------| -| `account` | 文字列 - [アドレス][] | いいえ | この流動性プロバイダーが保有するLPトークンのみを表示します。 | -| `amm_account` | 文字列 - [アドレス][] | いいえ | AMMの特別なAccountRootのアドレス。(これはAMMのLPトークンの`issuer`です)。 | -| `asset` | オブジェクト | いいえ | [通貨額][Currency Amount]のように、`currency`と`issuer`フィールドを持つオブジェクトとして(XRPの場合は`issuer`を省略)、検索するAMMの資産の一つを指定します。 | +| `フィールド` | 型 | 必須? | 説明 | +| :------------ | :-------------------- | :----- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `account` | 文字列 - [アドレス][] | いいえ | この流動性プロバイダーが保有するLPトークンのみを表示します。 | +| `amm_account` | 文字列 - [アドレス][] | いいえ | AMMの特別なAccountRootのアドレス。(これはAMMのLPトークンの`issuer`です)。 | +| `asset` | オブジェクト | いいえ | [通貨額][Currency Amount]のように、`currency`と`issuer`フィールドを持つオブジェクトとして(XRPの場合は`issuer`を省略)、検索するAMMの資産の一つを指定します。 | | `asset2` | オブジェクト | いいえ | AMMの資産のもう一方を、`currency`と`issuer`フィールド(XRPの場合は`issuer`を省略)を持つオブジェクトとして、[通貨額][Currency Amount]のように指定することが可能です。 | `amm_account`、または`asset`と`asset2`の両方を指定する必要があります。 @@ -79,6 +86,7 @@ labels: {% tabs %} {% tab label="WebSocket" %} + ```json { "result": { @@ -131,9 +139,11 @@ labels: "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -187,74 +197,70 @@ labels: } } ``` + {% /tab %} {% /tabs %} レスポンスは[標準フォーマット][]に従っており、成功した場合は以下のフィールドを含みます。 -| フィールド | 型 | 説明 | -|:-----------------------|:---------------------|:----------------------------------------------------------| -| `amm` | オブジェクト | リクエストに含まれる資産ペアの[**AMM詳細オブジェクト**](#amm詳細オブジェクト)です。 | -| `ledger_current_index` | [レジャーインデックス][] | _(`ledger_index`の指定がある場合は省略)_ この情報を取得する際に使用された、現在の進行中の台帳の[レジャーインデックス][]。 | -| `ledger_hash` | [ハッシュ][] | _(`ledger_current_index`の指定がある場合は省略)_ この情報を取得する際に使用された台帳のバージョンの識別ハッシュ。 | -| `ledger_index` | [レジャーインデックス][] | _(`ledger_current_index`の指定がある場合は省略)_ この情報を取得する際に使用した台帳のバージョンの[レジャーインデックス][]。 | -| `validated` | 真偽値 | もし`true`なら、このリクエストに使用された台帳は検証済みで、これらの結果は最終的なものです。もし省略されるか`false`に設定されると、データは未確定で変更される可能性があります。 | - +| フィールド | 型 | 説明 | +| :--------------------- | :----------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `amm` | オブジェクト | リクエストに含まれる資産ペアの[**AMM詳細オブジェクト**](#amm詳細オブジェクト)です。 | +| `ledger_current_index` | [レジャーインデックス][] | _(`ledger_index`の指定がある場合は省略)_ この情報を取得する際に使用された、現在の進行中の台帳の[レジャーインデックス][]。 | +| `ledger_hash` | [ハッシュ][] | _(`ledger_current_index`の指定がある場合は省略)_ この情報を取得する際に使用された台帳のバージョンの識別ハッシュ。 | +| `ledger_index` | [レジャーインデックス][] | _(`ledger_current_index`の指定がある場合は省略)_ この情報を取得する際に使用した台帳のバージョンの[レジャーインデックス][]。 | +| `validated` | 真偽値 | もし`true`なら、このリクエストに使用された台帳は検証済みで、これらの結果は最終的なものです。もし省略されるか`false`に設定されると、データは未確定で変更される可能性があります。 | ### AMM詳細オブジェクト `amm`フィールドは、自動マーケットメーカー(AMM)の現在の状態を記述するオブジェクトであり、以下のフィールドを含みます。 -| フィールド | 型 | 説明 | -|-----------------|------------|-------------| -| `amm_account` | 文字列 | AMMアカウントの[アドレス][]です。 | -| `amount` | [通貨額][] | AMMのプールにある1つの資産の合計額。(注記:リクエストに指定した`asset` _または_ `asset2`になります。) | -| `amount2` | [通貨額][] | AMMのプール内の他の資産の合計額。(注意:リクエストに指定した`asset` _または_ `asset2`になります。) | -| `asset_frozen` | 真偽値 | _(XRPの場合、省略)_ `true`の場合、`amount`の通貨は現在[フリーズ](../../../../concepts/tokens/fungible-tokens/freezes.md)されています。 | -| `asset2_frozen` | 真偽値 | _(XRPの場合、省略)_ `true`の場合、`amount2`の通貨は現在[フリーズ](../../../../concepts/tokens/fungible-tokens/freezes.md)されています。 | -| `auction_slot` | オブジェクト | _(省略される場合があります)_ 存在する場合、現在のオークションスロットの所有者を記述した[オークションスロットオブジェクト](#オークションスロットオブジェクト)です。 | -| `lp_token` | [通貨額][] | このAMMのLPトークンの発行残高の合計。リクエスト時に`account`フィールドで流動性プロバイダを指定した場合、その流動性プロバイダが保有するこのAMMのLPトークンの量です。 | -| `trading_fee` | 数値 | AMMの現在の取引手数料。単位は1/100,000で、1は0.001%の手数料に相当します。 | -| `vote_slots` | 配列 | _(省略される場合があります)_ AMMの取引手数料に対する現在の投票数。[投票スロットオブジェクト](#投票スロットオブジェクト)として表示されます。 | - +| フィールド | 型 | 説明 | +| --------------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `amm_account` | 文字列 | AMMアカウントの[アドレス][]です。 | +| `amount` | [通貨額][] | AMMのプールにある1つの資産の合計額。(注記:リクエストに指定した`asset` _または_ `asset2`になります。) | +| `amount2` | [通貨額][] | AMMのプール内の他の資産の合計額。(注意:リクエストに指定した`asset` _または_ `asset2`になります。) | +| `asset_frozen` | 真偽値 | _(XRPの場合、省略)_ `true`の場合、`amount`の通貨は現在[フリーズ](../../../../concepts/tokens/fungible-tokens/freezes.md)されています。 | +| `asset2_frozen` | 真偽値 | _(XRPの場合、省略)_ `true`の場合、`amount2`の通貨は現在[フリーズ](../../../../concepts/tokens/fungible-tokens/freezes.md)されています。 | +| `auction_slot` | オブジェクト | _(省略される場合があります)_ 存在する場合、現在のオークションスロットの所有者を記述した[オークションスロットオブジェクト](#オークションスロットオブジェクト)です。 | +| `lp_token` | [通貨額][] | このAMMのLPトークンの発行残高の合計。リクエスト時に`account`フィールドで流動性プロバイダを指定した場合、その流動性プロバイダが保有するこのAMMのLPトークンの量です。 | +| `trading_fee` | 数値 | AMMの現在の取引手数料。単位は1/100,000で、1は0.001%の手数料に相当します。 | +| `vote_slots` | 配列 | _(省略される場合があります)_ AMMの取引手数料に対する現在の投票数。[投票スロットオブジェクト](#投票スロットオブジェクト)として表示されます。 | ### オークションスロットオブジェクト `AMM`オブジェクトの`auction_slot`フィールドは、AMMの現在のオークションスロット保持者を表し、以下のフィールドを含みます。 -| フィールド | 型 | 説明 | -|------------------|-----------|-------------| -| `account` | 文字列 | オークションスロットを所有するアカウントの[アドレス][]です。 | -| `auth_accounts` | 配列 | オークションスロットの所有者が、取引手数料の割引の対象として指定した追加アカウントのリスト。この配列の各メンバーは、1つのフィールド`account`を持つオブジェクトで、指定したアカウントのアドレスが含まれています。 | -| `discounted_fee` | 数値 | このAMMに対して取引を行う際に、オークションスロットの保有者、および対象となるアカウントに適用される割引後の取引手数料です。これは通常の取引手数料の1/10です。 | -| `expiration` | 文字列 | このオークションスロットが期限切れとなるISO8601のUTCタイムスタンプ。期限切れになると、オークションスロットは適用されません (ただし、別のトランザクションで置き換えられるかクリーンアップされるまで、データは台帳に残ります)。 | -| `price` | [通貨額][] | オークションスロット所有者がオークションスロットを獲得するために支払った金額(LPトークン単位)です。これは、現在のスロット所有者を競り落とすための価格に影響します。 | +| フィールド | 型 | 説明 | +| ---------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `account` | 文字列 | オークションスロットを所有するアカウントの[アドレス][]です。 | +| `auth_accounts` | 配列 | オークションスロットの所有者が、取引手数料の割引の対象として指定した追加アカウントのリスト。この配列の各メンバーは、1つのフィールド`account`を持つオブジェクトで、指定したアカウントのアドレスが含まれています。 | +| `discounted_fee` | 数値 | このAMMに対して取引を行う際に、オークションスロットの保有者、および対象となるアカウントに適用される割引後の取引手数料です。これは通常の取引手数料の1/10です。 | +| `expiration` | 文字列 | このオークションスロットが期限切れとなるISO8601のUTCタイムスタンプ。期限切れになると、オークションスロットは適用されません (ただし、別のトランザクションで置き換えられるかクリーンアップされるまで、データは台帳に残ります)。 | +| `price` | [通貨額][] | オークションスロット所有者がオークションスロットを獲得するために支払った金額(LPトークン単位)です。これは、現在のスロット所有者を競り落とすための価格に影響します。 | | `time_interval` | 数値 | このオークションスロットが現在入っている72分の時間間隔を0から19までで指定します。オークションスロットは24時間後(72分間隔で20回)に失効し、現在の保有者を競り落とすためのコストと、誰かが競り落とした場合に現在の保有者が払い戻される金額に影響します。 | - ### 投票スロットオブジェクト `vote_slots`配列の各項目は、取引手数料を設定するための流動性供給者の投票権を表し、以下のフィールドを含みます。 -| フィールド | 型 | 説明 | -|---------------|-------|-------------| -| `account` | 文字列 | この流動性供給者の[アドレス][]。 | -| `trading_fee` | 数値 | この流動性供給者が投票した取引手数料。単位は1/100,000です。 | +| フィールド | 型 | 説明 | +| ------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `account` | 文字列 | この流動性供給者の[アドレス][]。 | +| `trading_fee` | 数値 | この流動性供給者が投票した取引手数料。単位は1/100,000です。 | | `vote_weight` | 数値 | この流動性供給者の投票が、最終的な取引手数料にどれだけカウントさ れるかを表します。これは、この流動性供給者がAMMのLPトークンをどれだけ保有しているかに比例します。値は、この流動性供給者が保有するこのLPトークンの数の100,000倍を、発行済LPトークンの総数で割ったものになります。例えば、値が1000の場合、流動性供給者はこのAMMのLPトークンの1%を保有していることを意味します。 | - ### 考えられるエラー - [汎用エラータイプ][]のすべて。 - `actNotFound` - この資産ペアのAMMが存在しないか、リクエストで指定された発行アカウントが存在しません。 - `invalidParams` - 1つまたは複数のフィールドの指定に誤りがあるか、1つまたは複数の必須フィールドが欠落しています。 - ## 関連項目 - - [AMMオブジェクト](../../../protocol/ledger-data/ledger-entry-types/amm.md) - AMMオブジェクトの正規の保存形式 - - [AMMBid][] - オークションスロットと入札の仕組みについての詳細はこちら - - [AMMVote][] - 取引手数料の投票メカニズムの詳細はこちら +- [AMMオブジェクト](../../../protocol/ledger-data/ledger-entry-types/amm.md) - AMMオブジェクトの正規の保存形式 +- [AMMBid][] - オークションスロットと入札の仕組みについての詳細はこちら +- [AMMVote][] - 取引手数料の投票メカニズムの詳細はこちら {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/book_changes.md b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/book_changes.md index 1ca96e35d2..0b029f0820 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/book_changes.md +++ b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/book_changes.md @@ -1,11 +1,13 @@ --- seo: - description: オーダーブック情報の変更をサブスクライブします。 + description: オーダーブック情報の変更をサブスクライブします。 labels: - 分散型取引所 - クロスカレンシー --- + # book_changes + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/BookChanges.h "ソース") {% code-page-name /%} メソッドは、[分散型取引所(DEX)](../../../../concepts/tokens/decentralized-exchange/index.md) のオーダーブックの変更に関する情報を、以前のレジャーバージョンと比較して提供します。これは「ローソク足」チャートの作成に役立つ場合があります。 @@ -17,31 +19,39 @@ labels: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": "example_book_changes", - "command": "{% $frontmatter.seo.title %}", - "ledger_index": 88530953 + "id": "example_book_changes", + "command": "{% $frontmatter.seo.title %}", + "ledger_index": 88530953 } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "{% $frontmatter.seo.title %}", - "params": [{ + "method": "{% $frontmatter.seo.title %}", + "params": [ + { "ledger_index": 88530953 - }] + } + ] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh #Syntax: book_changes [] rippled book_changes 88530953 ``` + {% /tab %} {% /tabs %} @@ -50,9 +60,9 @@ rippled book_changes 88530953 リクエストには以下のパラメーターが含まれます。 -| フィールド | 型 | 必須? | 説明 | -|:---------------|:-------------------------|:-------|------| -| `ledger_hash` | [ハッシュ][] | いいえ | 使用するレジャーバージョンの32バイトの16進文字列。(詳しくは[レジャーの指定][]をご覧ください。) | +| フィールド | 型 | 必須? | 説明 | +| :------------- | :----------------------- | :----- | ---------------------------------------------------------------------------------------------------------------------------- | +| `ledger_hash` | [ハッシュ][] | いいえ | 使用するレジャーバージョンの32バイトの16進文字列。(詳しくは[レジャーの指定][]をご覧ください。) | | `ledger_index` | [レジャーインデックス][] | いいえ | 使用するレジャーの[レジャーインデックス][]、または自動的にレジャーを選択するためのショートカット文字列。([レジャーの指定][]) | {% admonition type="warning" name="既知の問題" %} @@ -88,29 +98,29 @@ rippled book_changes 88530953 このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 -| フィールド | 型 | 説明 | -|:---------------|:-------------------------|:-----------------| +| フィールド | 型 | 説明 | +| :------------- | :----------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `changes` | 配列 | このレジャーバージョンで更新された各オーダーブックの[Book Updateオブジェクト](#book-updateオブジェクト)のリスト。オーダーブックが更新されなかった場合、配列は空になります。 | -| `ledger_hash` | [ハッシュ][] | このデータを取得する際に使用されたレジャーバージョンの識別ハッシュ。 | -| `ledger_index` | [レジャーインデックス][] | このデータを取得する際に使用されたレジャーバージョンのレジャーインデックス。 | -| `ledger_time` | 数値 | このデータを取得する際に使用されたレジャーバージョンの公式クローズ時間。[Rippleエポック以降の経過秒数][]で表されます。 | -| `type` | 文字列 | 文字列`bookChanges`。これはオーダーブック更新メッセージであることを示します。 | -| `validated` | 真偽値 | _(省略可)_ `true`の場合、検証済みのレジャーバージョンから取得されたことを表します。 | +| `ledger_hash` | [ハッシュ][] | このデータを取得する際に使用されたレジャーバージョンの識別ハッシュ。 | +| `ledger_index` | [レジャーインデックス][] | このデータを取得する際に使用されたレジャーバージョンのレジャーインデックス。 | +| `ledger_time` | 数値 | このデータを取得する際に使用されたレジャーバージョンの公式クローズ時間。[Rippleエポック以降の経過秒数][]で表されます。 | +| `type` | 文字列 | 文字列`bookChanges`。これはオーダーブック更新メッセージであることを示します。 | +| `validated` | 真偽値 | _(省略可)_ `true`の場合、検証済みのレジャーバージョンから取得されたことを表します。 | ### Book Updateオブジェクト Book Updateオブジェクトは、1つのレジャーバージョンにおける1つのオーダーブックの変更を表し、次のフィールドを含みます。 -| フィールド | 型 | 説明 | -|:---------------|:-----------------|:------------------------| -| `currency_a` | 文字列 | オーダーブック内の2つの通貨のうちの最初の通貨の識別子。XRPの場合、これは文字列`XRP_drops`です。[トークン](../../../../concepts/tokens/index.md)の場合、[base58][]で表された発行者のアドレスの後にスラッシュ(`/`)が続き、その後に[通貨コード][]が続きます。これは3文字の標準コードまたは20文字の16進コードになります。 | -| `currency_b` | 文字列 | オーダーブック内の2つの通貨のうちの2番目の通貨の識別子。これは`currency_a`と同じ形式ですが、`currency_b`はXRPになることはありません。 | -| `volume_a` | 文字列 - 数値 | このレジャーバージョンでこのオーダーブックの取引を通じて移動した最初の通貨(つまり`currency_a`)の総量、または _取引高_。 | -| `volume_b` | 文字列 - 数値 | このレジャーバージョンでこのオーダーブックの取引を通じて移動した2番目の通貨(つまり`currency_b`)の取引高。 | -| `high` | 文字列 - 数値 | このレジャーバージョンでこのオーダーブックの取引を通じてマッチしたすべてのオファーの中で最も高い取引レート。最初の通貨と2番目の通貨の比率として表されます。(つまり、`currency_a : currency_b`。) | -| `low` | 文字列 - 数値 | このレジャーバージョンでこのオーダーブックの取引を通じてマッチしたすべてのオファーの中で最も低い取引レート。最初の通貨と2番目の通貨の比率として表されます。 | -| `open` | 文字列 - 数値 | このレジャーバージョンでこのオーダーブックの取引を処理する前のオーダーブックの最初の取引の取引レート。最初の通貨と2番目の通貨の比率として表されます。 | -| `close` | 文字列 - 数値 | このレジャーバージョンでこのオーダーブックの取引を処理した後のオーダーブックの最初の取引の取引レート。最初の通貨と2番目の通貨の比率として表されます。 | +| フィールド | 型 | 説明 | +| :----------- | :------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `currency_a` | 文字列 | オーダーブック内の2つの通貨のうちの最初の通貨の識別子。XRPの場合、これは文字列`XRP_drops`です。[トークン](../../../../concepts/tokens/index.md)の場合、[base58][]で表された発行者のアドレスの後にスラッシュ(`/`)が続き、その後に[通貨コード][]が続きます。これは3文字の標準コードまたは20文字の16進コードになります。 | +| `currency_b` | 文字列 | オーダーブック内の2つの通貨のうちの2番目の通貨の識別子。これは`currency_a`と同じ形式ですが、`currency_b`はXRPになることはありません。 | +| `volume_a` | 文字列 - 数値 | このレジャーバージョンでこのオーダーブックの取引を通じて移動した最初の通貨(つまり`currency_a`)の総量、または _取引高_。 | +| `volume_b` | 文字列 - 数値 | このレジャーバージョンでこのオーダーブックの取引を通じて移動した2番目の通貨(つまり`currency_b`)の取引高。 | +| `high` | 文字列 - 数値 | このレジャーバージョンでこのオーダーブックの取引を通じてマッチしたすべてのオファーの中で最も高い取引レート。最初の通貨と2番目の通貨の比率として表されます。(つまり、`currency_a : currency_b`。) | +| `low` | 文字列 - 数値 | このレジャーバージョンでこのオーダーブックの取引を通じてマッチしたすべてのオファーの中で最も低い取引レート。最初の通貨と2番目の通貨の比率として表されます。 | +| `open` | 文字列 - 数値 | このレジャーバージョンでこのオーダーブックの取引を処理する前のオーダーブックの最初の取引の取引レート。最初の通貨と2番目の通貨の比率として表されます。 | +| `close` | 文字列 - 数値 | このレジャーバージョンでこのオーダーブックの取引を処理した後のオーダーブックの最初の取引の取引レート。最初の通貨と2番目の通貨の比率として表されます。 | XRP-トークンのオーダーブックでは、XRPは常に`currency_a`で表されます。トークン-トークンのオーダーブックでは、発行者と通貨コードでアルファベット順に並べ替えられます。 @@ -118,8 +128,8 @@ XRPに関する取引レートは常に[XRPのdrop数][]を使用して計算さ ## 考えられるエラー -* いずれかの[汎用エラータイプ][]。 -* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバが保有していません。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 +- いずれかの[汎用エラータイプ][]。 +- `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバが保有していません。 +- `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/book_offers.md b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/book_offers.md index 78b2c45bd3..4ef8a38e3b 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/book_offers.md +++ b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/book_offers.md @@ -1,21 +1,25 @@ --- seo: - description: オーダーブックと呼ばれる、2つの通貨間のオファーのリストを取得します。 + description: オーダーブックと呼ばれる、2つの通貨間のオファーのリストを取得します。 labels: - 分散型取引所 - クロスカレンシー --- + # book_offers + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/BookOffers.cpp "Source") `book_offers`メソッドは、2つの通貨間の[オファー](../../../../concepts/tokens/decentralized-exchange/offers.md)のリストを取得します。これは、_オーダーブック_ とも呼ばれます。レスポンスは、[資金供給のないオファー](../../../../concepts/tokens/decentralized-exchange/offers.md#オファーのライフサイクル)を省略し、残りの各オファーの合計に対して資金供給されている割合を報告します。 ## リクエストのフォーマット + リクエストのフォーマットの例: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 4, @@ -31,34 +35,39 @@ labels: "limit": 10 } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "book_offers", - "params": [ - { - "taker": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "taker_gets": { - "currency": "XRP" - }, - "taker_pays": { - "currency": "USD", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - }, - "limit": 10 - } - ] + "method": "book_offers", + "params": [ + { + "taker": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "taker_gets": { + "currency": "XRP" + }, + "taker_pays": { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" + }, + "limit": 10 + } + ] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh #Syntax: book_offers taker_pays taker_gets [taker [ledger [limit] ] ] rippled book_offers 'USD/rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B' 'EUR/rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B' ``` + {% /tab %} {% /tabs %} @@ -67,17 +76,16 @@ rippled book_offers 'USD/rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B' 'EUR/rvYAfWj5gh67oV6 リクエストには以下のパラメーターが含まれます。 -| フィールド | 型 | 必須? | 説明 | -|:---------------|:-------------------------|:-------|:-------------------------------| -| `taker_gets` | オブジェクト | はい | オファーを受諾するアカウントが受け取る通貨を、[通貨額][通貨額]と同様に、`currency`フィールドと`issuer`フィールドを持つオブジェクトとして指定します(XRPの場合はissuerを省略)。 | -| `taker_pays` | オブジェクト | はい | オファーを受諾するアカウントが支払う通貨を、[通貨額][通貨額]と同様に、`currency`フィールドと`issuer`フィールドを持つオブジェクトとして指定します(XRPの場合はissuerを省略)。 | -| `domain` | [ハッシュ][] | いいえ | 許可型ドメインのレジャーエントリID。指定された場合、オープンDEXの代わりに、対応する[許可型DEX](../../../../concepts/tokens/decentralized-exchange/permissioned-dexes.md)からオファーを返します。 _([PermissionedDEX amendment][]が必要です。 {% not-enabled /%})_ | -| `ledger_hash` | [ハッシュ][] | いいえ | 使用するレジャーバージョンの20バイトの16進文字列。([レジャーの指定][]をご覧ください) | -| `ledger_index` | [レジャーインデックス][] | いいえ | 使用するレジャーの[レジャーインデックス][]、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]をご覧ください) | -| `limit` | 整数 | いいえ | 指定されている場合、サーバはこの制限を超える数のオファーを結果に含めません。資金供給のないオファーはサーバにより省略されるため、返される結果の総数はこの制限よりも少ないことがあります。 | +| フィールド | 型 | 必須? | 説明 | +| :------------- | :----------------------- | :----- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `taker_gets` | オブジェクト | はい | オファーを受諾するアカウントが受け取る通貨を、[通貨額][通貨額]と同様に、`currency`フィールドと`issuer`フィールドを持つオブジェクトとして指定します(XRPの場合はissuerを省略)。 | +| `taker_pays` | オブジェクト | はい | オファーを受諾するアカウントが支払う通貨を、[通貨額][通貨額]と同様に、`currency`フィールドと`issuer`フィールドを持つオブジェクトとして指定します(XRPの場合はissuerを省略)。 | +| `domain` | [ハッシュ][] | いいえ | 許可型ドメインのレジャーエントリID。指定された場合、オープンDEXの代わりに、対応する[許可型DEX](../../../../concepts/tokens/decentralized-exchange/permissioned-dexes.md)からオファーを返します。 _([PermissionedDEX amendment][]が必要です。 {% not-enabled /%})_ | +| `ledger_hash` | [ハッシュ][] | いいえ | 使用するレジャーバージョンの20バイトの16進文字列。([レジャーの指定][]をご覧ください) | +| `ledger_index` | [レジャーインデックス][] | いいえ | 使用するレジャーの[レジャーインデックス][]、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]をご覧ください) | +| `limit` | 整数 | いいえ | 指定されている場合、サーバはこの制限を超える数のオファーを結果に含めません。資金供給のないオファーはサーバにより省略されるため、返される結果の総数はこの制限よりも少ないことがあります。 | | `taker` | 文字列 | いいえ | パースペクティブとして使用するアカウントの[アドレス][]。このアカウントが発行した[資金供給のないオファー](../../../../concepts/tokens/decentralized-exchange/offers.md#オファーのライフサイクル)は常にレスポンスに含まれます。(これを使用して、キャンセルしたい各自のオーダーを検索できます。) | - ## レスポンスのフォーマット 処理が成功したレスポンスの例: @@ -85,6 +93,7 @@ rippled book_offers 'USD/rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B' 'EUR/rvYAfWj5gh67oV6 {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 11, @@ -143,9 +152,11 @@ rippled book_offers 'USD/rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B' 'EUR/rvYAfWj5gh67oV6 } } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -158,109 +169,112 @@ rippled book_offers 'USD/rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B' 'EUR/rvYAfWj5gh67oV6 } } ``` + {% /tab %} {% tab label="Commandline" %} + ```json { - "result" : { - "ledger_current_index" : 56867201, - "offers" : [ - { - "Account" : "rnixnrMHHvR7ejMpJMRCWkaNrq3qREwMDu", - "BookDirectory" : "7E5F614417C2D0A7CEFEB73C4AA773ED5B078DE2B5771F6D56038D7EA4C68000", - "BookNode" : "0000000000000000", - "Flags" : 131072, - "LedgerEntryType" : "Offer", - "OwnerNode" : "0000000000000000", - "PreviousTxnID" : "E43ADD1BD4AC2049E0D9DE6BC279B7FD95A99C8DE2C4694A4A7623F6D9AAAE29", - "PreviousTxnLgrSeq" : 47926685, - "Sequence" : 219, - "TakerGets" : { - "currency" : "EUR", - "issuer" : "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value" : "2.459108753792364" - }, - "TakerPays" : { - "currency" : "USD", - "issuer" : "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value" : "24.59108753792364" - }, - "index" : "3087B4828C6B5D8595EA325D69C0F396C57452893647799493A38F2C164990AB", - "owner_funds" : "2.872409153061363", - "quality" : "10" - }, - { - "Account" : "rKwjWCKBaASEvtHCxtvReNd2i9n8DxSihk", - "BookDirectory" : "7E5F614417C2D0A7CEFEB73C4AA773ED5B078DE2B5771F6D56038D7EA4C68000", - "BookNode" : "0000000000000000", - "Flags" : 131072, - "LedgerEntryType" : "Offer", - "OwnerNode" : "0000000000000000", - "PreviousTxnID" : "B63B2ECD124FE6B02BC2998929517266BD221A02FEE51DDE4992C1BCB7E86CD3", - "PreviousTxnLgrSeq" : 43166305, - "Sequence" : 19, - "TakerGets" : { - "currency" : "EUR", - "issuer" : "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value" : "3.52" - }, - "TakerPays" : { - "currency" : "USD", - "issuer" : "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value" : "35.2" - }, - "index" : "89865F2C70D1140796D9D249AC2ED765AE2D007A52DEC6D6D64CCB1A77A6EB7F", - "owner_funds" : "3.523192614770459", - "quality" : "10", - "taker_gets_funded" : { - "currency" : "EUR", - "issuer" : "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value" : "3.516160294182094" - }, - "taker_pays_funded" : { - "currency" : "USD", - "issuer" : "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value" : "35.16160294182094" - } - } - ], - "status" : "success", - "validated" : false - } + "result": { + "ledger_current_index": 56867201, + "offers": [ + { + "Account": "rnixnrMHHvR7ejMpJMRCWkaNrq3qREwMDu", + "BookDirectory": "7E5F614417C2D0A7CEFEB73C4AA773ED5B078DE2B5771F6D56038D7EA4C68000", + "BookNode": "0000000000000000", + "Flags": 131072, + "LedgerEntryType": "Offer", + "OwnerNode": "0000000000000000", + "PreviousTxnID": "E43ADD1BD4AC2049E0D9DE6BC279B7FD95A99C8DE2C4694A4A7623F6D9AAAE29", + "PreviousTxnLgrSeq": 47926685, + "Sequence": 219, + "TakerGets": { + "currency": "EUR", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "2.459108753792364" + }, + "TakerPays": { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "24.59108753792364" + }, + "index": "3087B4828C6B5D8595EA325D69C0F396C57452893647799493A38F2C164990AB", + "owner_funds": "2.872409153061363", + "quality": "10" + }, + { + "Account": "rKwjWCKBaASEvtHCxtvReNd2i9n8DxSihk", + "BookDirectory": "7E5F614417C2D0A7CEFEB73C4AA773ED5B078DE2B5771F6D56038D7EA4C68000", + "BookNode": "0000000000000000", + "Flags": 131072, + "LedgerEntryType": "Offer", + "OwnerNode": "0000000000000000", + "PreviousTxnID": "B63B2ECD124FE6B02BC2998929517266BD221A02FEE51DDE4992C1BCB7E86CD3", + "PreviousTxnLgrSeq": 43166305, + "Sequence": 19, + "TakerGets": { + "currency": "EUR", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "3.52" + }, + "TakerPays": { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "35.2" + }, + "index": "89865F2C70D1140796D9D249AC2ED765AE2D007A52DEC6D6D64CCB1A77A6EB7F", + "owner_funds": "3.523192614770459", + "quality": "10", + "taker_gets_funded": { + "currency": "EUR", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "3.516160294182094" + }, + "taker_pays_funded": { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "35.16160294182094" + } + } + ], + "status": "success", + "validated": false + } } ``` + {% /tab %} {% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 -| フィールド | 型 | 説明 | -|:-----------------------|:-------------------------|:------------------------| -| `ledger_current_index` | [レジャーインデックス][] | _(`ledger_current_index`が指定されている場合は省略)_ この情報の取得時に使用した、現在処理中のレジャーバージョンの[レジャーインデックス][]。 | +| フィールド | 型 | 説明 | +| :--------------------- | :----------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------ | +| `ledger_current_index` | [レジャーインデックス][] | _(`ledger_current_index`が指定されている場合は省略)_ この情報の取得時に使用した、現在処理中のレジャーバージョンの[レジャーインデックス][]。 | | `ledger_index` | [レジャーインデックス][] | _(`ledger_current_index`が指定されている場合は省略)_ リクエストに従って、このデータの取得時に使用されたレジャーバージョンのレジャーインデックス。 | -| `ledger_hash` | [ハッシュ][] | _(省略される場合があります)_ リクエストに従って、このデータの取得時に使用されたレジャーバージョンの識別用ハッシュ。 | -| `offers` | 配列 | Offerオブジェクトの配列。詳細は下記にて。 | +| `ledger_hash` | [ハッシュ][] | _(省略される場合があります)_ リクエストに従って、このデータの取得時に使用されたレジャーバージョンの識別用ハッシュ。 | +| `offers` | 配列 | Offerオブジェクトの配列。詳細は下記にて。 | `offers`配列の各要素には、[Offerエントリ][]の標準フィールドの他に、以下の追加フィールドが含まれます。 -| フィールド | 型 | 説明 | -|:--------------------|:-----------|:--------------------| +| フィールド | 型 | 説明 | +| :------------------ | :--------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `owner_funds` | 文字列 | オファーの発行元が保有する取引可能なTakerGets通貨の金額。(XRPはdrop単位で表されます。その他のすべての通貨は10進数値として表されます。)1人のトレーダーの複数のオファーが同一のブックに含まれている場合、このフィールドは最高順位のオファーにのみ含まれます。 | -| `taker_gets_funded` | [通貨額][] | (部分的に資金供給されているオファーのみに含まれます) オファーの資金供給ステータスが指定されている場合に、受取人が受領できる最大通貨額。 | -| `taker_pays_funded` | [通貨額][] | (部分的に資金供給されているオファーのみに含まれます) オファーの資金供給ステータスが指定されている場合に、受取人が支払う最大通貨額。 | -| `quality` | 文字列 | 為替レート(`taker_pays`を`taker_gets`で割った比率)。公正を期すため、同じクオリティのオファーは先入れ先出しで自動的に約定されます。(つまり、複数の人々が通貨を同じレートで取引するオファーを出した場合、最も古いオファーが最初に受諾されます。) | +| `taker_gets_funded` | [通貨額][] | (部分的に資金供給されているオファーのみに含まれます) オファーの資金供給ステータスが指定されている場合に、受取人が受領できる最大通貨額。 | +| `taker_pays_funded` | [通貨額][] | (部分的に資金供給されているオファーのみに含まれます) オファーの資金供給ステータスが指定されている場合に、受取人が支払う最大通貨額。 | +| `quality` | 文字列 | 為替レート(`taker_pays`を`taker_gets`で割った比率)。公正を期すため、同じクオリティのオファーは先入れ先出しで自動的に約定されます。(つまり、複数の人々が通貨を同じレートで取引するオファーを出した場合、最も古いオファーが最初に受諾されます。) | ## 考えられるエラー -* いずれかの[汎用エラータイプ][]。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバが保有していません。 -* `srcCurMalformed` - リクエストの`taker_pays`フィールドのフォーマットが適切ではありません。 -* `dstAmtMalformed` - リクエストの`taker_gets`フィールドのフォーマットが適切ではありません。 -* `srcIsrMalformed` - リクエストの`taker_pays`フィールドの`issuer`フィールドが無効です。 -* `dstIsrMalformed` - リクエストの`taker_gets`フィールドの`issuer`フィールドが無効です。 -* `badMarket` - 必要なオーダーブックが存在していません(ある通貨をその通貨自体と交換するオファーなど)。 +- いずれかの[汎用エラータイプ][]。 +- `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 +- `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバが保有していません。 +- `srcCurMalformed` - リクエストの`taker_pays`フィールドのフォーマットが適切ではありません。 +- `dstAmtMalformed` - リクエストの`taker_gets`フィールドのフォーマットが適切ではありません。 +- `srcIsrMalformed` - リクエストの`taker_pays`フィールドの`issuer`フィールドが無効です。 +- `dstIsrMalformed` - リクエストの`taker_gets`フィールドの`issuer`フィールドが無効です。 +- `badMarket` - 必要なオーダーブックが存在していません(ある通貨をその通貨自体と交換するオファーなど)。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/deposit_authorized.md b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/deposit_authorized.md index 566c84cde1..2433486fe5 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/deposit_authorized.md +++ b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/deposit_authorized.md @@ -1,21 +1,25 @@ --- seo: - description: あるアカウントに別のアカウントへ支払を直接送金する権限があるかどうかを示します。 + description: あるアカウントに別のアカウントへ支払を直接送金する権限があるかどうかを示します。 labels: - アカウント - セキュリティ --- + # deposit_authorized + [[ソース]](https://github.com/XRPLF/rippled/blob/817d2339b8632cb2f97d3edd6f7af33aa7631744/src/ripple/rpc/handlers/DepositAuthorized.cpp "Source") `deposit_authorized`コマンドは、あるアカウントに別のアカウントへ支払を直接送金する権限があるかどうかを示します。アカウントへの送金に承認を義務付ける方法については、[Deposit Authorization](../../../../concepts/accounts/depositauth.md)をご覧ください。 ## リクエストのフォーマット + リクエストのフォーマットの例: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 1, @@ -29,9 +33,11 @@ labels: "ledger_index": "validated" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { "method": "deposit_authorized", @@ -48,6 +54,7 @@ labels: ] } ``` + {% /tab %} {% tab label="コマンドライン" %} @@ -56,17 +63,18 @@ labels: #Syntax: deposit_authorized [] rippled deposit_authorized rEhxGqkqPPSxQ3P25J66ft5TwpzV14k2de rsUiUMpnrgxQp24dJYZDhmV4bE3aBtQyt8 validated ``` + {% /tab %} {% /tabs %} リクエストには以下のパラメーターが含まれます。 -| フィールド | 型 | 必須? | 説明 | -| :-------------------- | :----------------------- | :----- | ---- | -| `source_account` | 文字列 - [アドレス][] | はい | 発生し得る支払いの送金元。 | -| `destination_account` | 文字列 - [アドレス][] | はい | 発生し得る支払いの送金先。 | -| `ledger_hash` | [ハッシュ][] | いいえ | 使用するレジャーバージョンの32バイトの16進文字列。([レジャーの指定][]をご覧ください) | -| `ledger_index` | [レジャーインデックス][] | いいえ | 使用するレジャーの[レジャーインデックス][]、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]をご覧ください) | +| フィールド | 型 | 必須? | 説明 | +| :-------------------- | :----------------------- | :----- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `source_account` | 文字列 - [アドレス][] | はい | 発生し得る支払いの送金元。 | +| `destination_account` | 文字列 - [アドレス][] | はい | 発生し得る支払いの送金先。 | +| `ledger_hash` | [ハッシュ][] | いいえ | 使用するレジャーバージョンの32バイトの16進文字列。([レジャーの指定][]をご覧ください) | +| `ledger_index` | [レジャーインデックス][] | いいえ | 使用するレジャーの[レジャーインデックス][]、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]をご覧ください) | | `credentials` | 配列 | いいえ | 送金元が送金先に送金できるかどうかを確認する際に考慮する資格情報のセット。配列の各メンバは、レジャーの[Credentialエントリ][]の一意のIDでなければなりません。空の配列は許可されません。 | {% admonition type="info" name="注記" %} @@ -80,6 +88,7 @@ rippled deposit_authorized rEhxGqkqPPSxQ3P25J66ft5TwpzV14k2de rsUiUMpnrgxQp24dJY {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 1, @@ -99,9 +108,11 @@ rippled deposit_authorized rEhxGqkqPPSxQ3P25J66ft5TwpzV14k2de rsUiUMpnrgxQp24dJY "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { "result": { @@ -119,9 +130,11 @@ rippled deposit_authorized rEhxGqkqPPSxQ3P25J66ft5TwpzV14k2de rsUiUMpnrgxQp24dJY } } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```json Loading: "/etc/rippled.cfg" 2018-Jul-30 20:07:38.771658157 HTTPClient:NFO Connecting to 127.0.0.1:5005 @@ -142,21 +155,22 @@ Loading: "/etc/rippled.cfg" } } ``` + {% /tab %} {% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 -| フィールド | 型 | 必須? | 説明 | -| :--------------------- | :------------------------------ | :---- | ---- | -| `credentials` | [ハッシュ][]の配列 | No | リクエストに指定されている資格情報のセット。 | +| フィールド | 型 | 必須? | 説明 | +| :--------------------- | :------------------------------ | :---- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `credentials` | [ハッシュ][]の配列 | No | リクエストに指定されている資格情報のセット。 | | `deposit_authorized` | 真偽値 | Yes | 指定の支払元アカウントが指定の支払先アカウントへの直接送金を承認されているかどうか。`true`の場合、支払先アカウントで[Deposit Authorization](../../../../concepts/accounts/depositauth.md)を必要としていないか、または支払元アカウントが事前承認されています。 | -| `destination_account` | 文字列 - [アドレス][] | Yes | リクエストに指定されている宛先アカウント。 | -| `ledger_hash` | 文字列 | No | このレスポンスの生成に使用されたレジャーの識別用ハッシュ。 | -| `ledger_index` | 数値 - [レジャーインデックス][] | No | このレスポンスの生成に使用されたレジャーバージョンのレジャーインデックス。 | -| `ledger_current_index` | 数値 - [レジャーインデックス][] | No | このレスポンスの生成に使用された現在処理中のレジャーバージョンのレジャーインデックス。 | -| `source_account` | 文字列 - [アドレス][] | Yes | リクエストに指定されている支払元アカウント。 | -| `validated` | 真偽値 | No | 検証済みレジャーバージョンからの情報が取り込まれます。 | +| `destination_account` | 文字列 - [アドレス][] | Yes | リクエストに指定されている宛先アカウント。 | +| `ledger_hash` | 文字列 | No | このレスポンスの生成に使用されたレジャーの識別用ハッシュ。 | +| `ledger_index` | 数値 - [レジャーインデックス][] | No | このレスポンスの生成に使用されたレジャーバージョンのレジャーインデックス。 | +| `ledger_current_index` | 数値 - [レジャーインデックス][] | No | このレスポンスの生成に使用された現在処理中のレジャーバージョンのレジャーインデックス。 | +| `source_account` | 文字列 - [アドレス][] | Yes | リクエストに指定されている支払元アカウント。 | +| `validated` | 真偽値 | No | 検証済みレジャーバージョンからの情報が取り込まれます。 | {% admonition type="info" name="注記" %} `deposit_authorized`ステータスが`true`でも、指定の支払元から指定の支払先への送金が可能であるとは保証されません。たとえば、支払先アカウントに指定通貨の[トラストライン](../../../../concepts/tokens/fungible-tokens/index.md)がない場合や、送金に十分な流動性がない場合があります。 @@ -164,13 +178,12 @@ Loading: "/etc/rippled.cfg" ## 考えられるエラー -* いずれかの[汎用エラータイプ][]。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* `actMalformed` - リクエストの`source_account`フィールドまたは`destination_account`フィールドに指定されている[アドレス][]のフォーマットが適切ではありません。(入力ミスが含まれていたり、長さが正しくない場合は、チェックサムは失敗します。) -* `badCredentials` - 提供された資格情報の少なくとも1つが存在しない、期限切れである、または受け入れられていません。 -* `dstActNotFound` - リクエストの`destination_account`フィールドがレジャーのアカウントに対応していません。 -* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバが保有していません。 -* `srcActNotFound` - リクエストの`source_account`フィールドがレジャーのアカウントに対応していません。 - +- いずれかの[汎用エラータイプ][]。 +- `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 +- `actMalformed` - リクエストの`source_account`フィールドまたは`destination_account`フィールドに指定されている[アドレス][]のフォーマットが適切ではありません。(入力ミスが含まれていたり、長さが正しくない場合は、チェックサムは失敗します。) +- `badCredentials` - 提供された資格情報の少なくとも1つが存在しない、期限切れである、または受け入れられていません。 +- `dstActNotFound` - リクエストの`destination_account`フィールドがレジャーのアカウントに対応していません。 +- `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバが保有していません。 +- `srcActNotFound` - リクエストの`source_account`フィールドがレジャーのアカウントに対応していません。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/get_aggregate_price.md b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/get_aggregate_price.md index 362aab43fe..2fdacb49b9 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/get_aggregate_price.md +++ b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/get_aggregate_price.md @@ -1,19 +1,18 @@ --- seo: - description: 指定されたOracleインスタンスの集計価格を計算します。 + description: 指定されたOracleインスタンスの集計価格を計算します。 labels: - オラクル --- + # get_aggregate_price _([PriceOracle amendment][])_ [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/GetAggregatePrice.cpp "ソース") - `get_aggregate_price`メソッドは、指定された`Oracle`オブジェクトの集計価格を取得し、平均値、中央値、整形された平均値の3つの価格情報を返します。 - ## リクエストフォーマット リクエストの例: @@ -21,6 +20,7 @@ _([PriceOracle amendment][])_ {% tabs %} {% tab label="WebSocket" %} + ```json { "command": "get_aggregate_price", @@ -52,9 +52,11 @@ _([PriceOracle amendment][])_ ] } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { "method": "get_aggregate_price", @@ -82,6 +84,7 @@ _([PriceOracle amendment][])_ ] } ``` + {% /tab %} {% /tabs %} @@ -90,13 +93,13 @@ _([PriceOracle amendment][])_ リクエストには以下のパラメータが含まれています: -| フィールド | 型 | 必須? | 説明 | -| ---------------- | ------ | ------ | ---- | -| `base_asset` | 文字列 | はい | 価格を計算する資産の通貨コード。 | -| `quote_asset` | 文字列 | はい | 基軸資産の価格を計算する資産の通貨コード。 | +| フィールド | 型 | 必須? | 説明 | +| ---------------- | ------ | ------ | ------------------------------------------------------------------------------------------------------------------- | +| `base_asset` | 文字列 | はい | 価格を計算する資産の通貨コード。 | +| `quote_asset` | 文字列 | はい | 基軸資産の価格を計算する資産の通貨コード。 | | `trim` | 数値 | いいえ | 外れ値を削除する割合。有効な削除範囲は1-25。削除範囲が含まれている場合、APIは整形された平均値の統計情報を返します。 | | `trim_threshold` | 数値 | いいえ | 古い価格データをフィルタリングする秒単位の時間範囲を定義します。デフォルト値は0で、データをフィルタリングしません。 | -| `oracles` | 配列 | はい | Oracleを識別するオブジェクトの配列。Oracleオブジェクトは1から200のOracleの識別子をリストする必要があります。 | +| `oracles` | 配列 | はい | Oracleを識別するオブジェクトの配列。Oracleオブジェクトは1から200のOracleの識別子をリストする必要があります。 | `oracles`配列の各メンバーは、次のフィールドを持つOracleオブジェクトです。 @@ -105,7 +108,6 @@ _([PriceOracle amendment][])_ | `account` | 文字列 | はい | `Oracle`オブジェクトを制御するXRPLアカウント | | `oracle_document_id` | 数値 | はい | `Account`の価格Oracleの一意の識別子 | - ## レスポンスフォーマット レスポンスの例: @@ -133,17 +135,17 @@ _([PriceOracle amendment][])_ } ``` -| フィールド | 型 | 説明 | -| -------------------------------- | ------------- | ---- | -| `entire_set` | オブジェクト | 収集されたOracleの価格の統計情報。 | -| `entire_set.mean` | 文字列 - 数値 | 単純な平均値。 | -| `entire_set.size` | 数値 | 平均値を計算するデータセットのサイズ。 | -| `entire_set.standard_deviation` | 文字列 - 数値 | 標準偏差。 | +| フィールド | 型 | 説明 | +| -------------------------------- | ------------- | ------------------------------------------------------------------------------------------------------ | +| `entire_set` | オブジェクト | 収集されたOracleの価格の統計情報。 | +| `entire_set.mean` | 文字列 - 数値 | 単純な平均値。 | +| `entire_set.size` | 数値 | 平均値を計算するデータセットのサイズ。 | +| `entire_set.standard_deviation` | 文字列 - 数値 | 標準偏差。 | | `trimmed_set` | オブジェクト | 整形されたOracleの価格の統計情報。`trim`フィールドがリクエストに指定されている場合にのみ表示されます。 | -| `trimmed_set.mean` | 文字列 - 数値 | 整形されたデータの単純な平均値。 | -| `trimmed_set.size` | 数値 | 整形された平均値を計算するデータセットのサイズ。 | -| `trimmed_set.standard_deviation` | 文字列 - 数値 | 整形されたデータの標準偏差。 | -| `time` | 数値 | すべての`LastUpdateTime`値の中で最も新しいタイムスタンプ。Unix時間で表されます。 | +| `trimmed_set.mean` | 文字列 - 数値 | 整形されたデータの単純な平均値。 | +| `trimmed_set.size` | 数値 | 整形された平均値を計算するデータセットのサイズ。 | +| `trimmed_set.standard_deviation` | 文字列 - 数値 | 整形されたデータの標準偏差。 | +| `time` | 数値 | すべての`LastUpdateTime`値の中で最も新しいタイムスタンプ。Unix時間で表されます。 | {% admonition type="info" name="注記" %} @@ -154,7 +156,6 @@ _([PriceOracle amendment][])_ {% /admonition %} - ## 起こりうるエラー - すべての[汎用エラータイプ][]。 @@ -162,6 +163,6 @@ _([PriceOracle amendment][])_ - `internal` - `trim_threshold`の設定によりすべての価格が削除された。 - `objectNotFound` - データセットに価格がない。 - `oracleMalformed` - `oracles`配列が不正。少なくとも1つのオブジェクトフィールドが正しく指定されていないか、オブジェクトの数が1から200の範囲外です。 -- +- {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/index.md b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/index.md index 862b5a0288..2a3a4e86d7 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/index.md +++ b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/index.md @@ -4,9 +4,9 @@ parent: public-api-methods.html metadata: indexPage: true --- + # PathおよびOrderBookのメソッド パスは、支払いが送信者から受信者に届くまでに中間ステップでたどる道筋を定義します。パスは、送信者と受信者をオーダーブックを介してつなぐことで、クロスカレンシー支払いを可能にします。パスと他のオーダーブックに関しては、以下のメソッドを使用します。 - {% child-pages /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/mpt_holders.md b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/mpt_holders.md index b898a8cf72..98df0fe6ba 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/mpt_holders.md +++ b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/mpt_holders.md @@ -1,6 +1,6 @@ --- seo: - description: 指定された`MPTokenIssuanceID`とledgerシーケンスに対する所有者の情報を取得します。 + description: 指定された`MPTokenIssuanceID`とledgerシーケンスに対する所有者の情報を取得します。 labels: - アカウント - XRP @@ -14,7 +14,7 @@ labels: ## リクエストのフォーマット -*Websocket* +_Websocket_ ```json { @@ -24,7 +24,7 @@ labels: } ``` -*JSON-RPC* +_JSON-RPC_ ```json { @@ -38,37 +38,38 @@ labels: } ``` - リクエストには以下のパラメータが含まれます。 -| フィールド | 型 | 必須? | 説明 | -|:------------------|:----------------------|:----------|-------------| -| `mpt_issuance_id` | 文字列 | はい | クエリ対象の`MPTokenIssuance`。 | +| フィールド | 型 | 必須? | 説明 | +| :---------------- | :--------------------------- | :----- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `mpt_issuance_id` | 文字列 | はい | クエリ対象の`MPTokenIssuance`。 | | `ledger_index` | 文字列または数値(正の整数) | いいえ | 使用する最大のレジャーインデックス、または自動的にレジャーを選択するためのショートカット文字列。ledger_indexまたはledger_hashのいずれかを指定する必要があります。 | -| `ledger_hash` | 文字列 | いいえ | 使用する32バイトのレジャーハッシュ。ledger_indexまたはledger_hashのいずれかを指定する必要があります。 | -| `marker` | 文字列 | いいえ | ページングで中断したクエリを続けるために使用します。 | -| `limit` | 数値(正の整数) | いいえ | 返されるMPTの数の制限を指定します。 | +| `ledger_hash` | 文字列 | いいえ | 使用する32バイトのレジャーハッシュ。ledger_indexまたはledger_hashのいずれかを指定する必要があります。 | +| `marker` | 文字列 | いいえ | ページングで中断したクエリを続けるために使用します。 | +| `limit` | 数値(正の整数) | いいえ | 返されるMPTの数の制限を指定します。 | ## レスポンスのフォーマット ```json { - "mpt_issuance_id": "000004C463C52827307480341125DA0577DEFC38405B0E3E", - "limit":50, - "ledger_index": 2, - "mptokens": [{ - "account": "rEiNkzogdHEzUxPfsri5XSMqtXUixf2Yx", - "flags": 0, - "mpt_amount": "20", - "mptoken_index": "36D91DEE5EFE4A93119A8B84C944A528F2B444329F3846E49FE921040DE17E65" + "mpt_issuance_id": "000004C463C52827307480341125DA0577DEFC38405B0E3E", + "limit": 50, + "ledger_index": 2, + "mptokens": [ + { + "account": "rEiNkzogdHEzUxPfsri5XSMqtXUixf2Yx", + "flags": 0, + "mpt_amount": "20", + "mptoken_index": "36D91DEE5EFE4A93119A8B84C944A528F2B444329F3846E49FE921040DE17E65" }, { - "account": "rrnAZCqMahreZrKMcZU3t2DZ6yUndT4ubN", - "flags": 0, - "mpt_amount": "1", - "mptoken_index": "D137F2E5A5767A06CB7A8F060ADE442A30CFF95028E1AF4B8767E3A56877205A" - }], - "validated": true + "account": "rrnAZCqMahreZrKMcZU3t2DZ6yUndT4ubN", + "flags": 0, + "mpt_amount": "1", + "mptoken_index": "D137F2E5A5767A06CB7A8F060ADE442A30CFF95028E1AF4B8767E3A56877205A" + } + ], + "validated": true } ``` @@ -76,22 +77,22 @@ labels: レスポンスは[標準フォーマット][]に従い、結果に以下のフィールドが含まれます。 -| フィールド | 型 | 説明 | -|:--------------------|:--------|:----------------------------------------| -| `mpt_issuance_id` | 文字列 | クエリされた`MPTokenIssuance` | -| `mptokens` | 配列 | mptokenの配列。基礎となるMPTokenオブジェクトの全ての関連フィールドを含みます。 | -| `marker` | 文字列 | ページング時に次のクエリを続けるために使用します。この結果の後にエントリがない場合は省略されます。 | -| `limit` | 数値 | リクエストで指定された制限値 | -| `ledger_index` | 数値 | 使用されたレジャーインデックス。 | +| フィールド | 型 | 説明 | +| :---------------- | :----- | :------------------------------------------------------------------------------------------------- | +| `mpt_issuance_id` | 文字列 | クエリされた`MPTokenIssuance` | +| `mptokens` | 配列 | mptokenの配列。基礎となるMPTokenオブジェクトの全ての関連フィールドを含みます。 | +| `marker` | 文字列 | ページング時に次のクエリを続けるために使用します。この結果の後にエントリがない場合は省略されます。 | +| `limit` | 数値 | リクエストで指定された制限値 | +| `ledger_index` | 数値 | 使用されたレジャーインデックス。 | `mptoken`オブジェクトには以下のパラメータがあります。 -| フィールド | 型 | 説明 | -|:--------------------|:--------|:----------------------------------------| -| `account` | 文字列 | `MPToken`を所有するホルダーのアカウントアドレス。 | -| `flags` | 数値 | `MPToken`オブジェクトに割り当てられたフラグ。 | -| `mpt_amount` | 文字列 | ホルダーの残高を10進数でエンコードした量。 | -| `mptoken_index` | 文字列 | `MPToken`オブジェクトのキー。 | +| フィールド | 型 | 説明 | +| :-------------- | :----- | :------------------------------------------------ | +| `account` | 文字列 | `MPToken`を所有するホルダーのアカウントアドレス。 | +| `flags` | 数値 | `MPToken`オブジェクトに割り当てられたフラグ。 | +| `mpt_amount` | 文字列 | ホルダーの残高を10進数でエンコードした量。 | +| `mptoken_index` | 文字列 | `MPToken`オブジェクトのキー。 | ##### 例 @@ -129,33 +130,32 @@ labels: `mpt_issuance_id`フィールドはJSON MPTokenIssuanceオブジェクトで提供されます(バイナリでは利用できません)。次ののAPIが影響を受けます、`ledger_data`および`account_objects`。 - ##### 例 `account_objects`のレスポンス例 ```json { - "result": { - "account": "rBT9cUqK6UvpvZhPFNQ2qpUTin8rDokBeL", - "account_objects": [ - { - "AssetScale": 2, - "Flags": 64, - "Issuer": "rBT9cUqK6UvpvZhPFNQ2qpUTin8rDokBeL", - "LedgerEntryType": "MPTokenIssuance", - "OutstandingAmount": "100", - "OwnerNode": "0", - "PreviousTxnID": "BDC5ECA6B115C74BF4DA83E36325A2F55DF9E2C968A5CC15EB4D009D87D5C7CA", - "PreviousTxnLgrSeq": 308, - "Sequence": 303, - "index": "75EC6F2939ED6C5798A5F369A0221BC4F6DDC50F8614ECF72E3B976351057A63", - "mpt_issuance_id": "0000012F72A341F09A988CDAEA4FF5BE31F25B402C550ABE" - } - ], - "ledger_current_index": 309, - "status": "success", - "validated": false - } + "result": { + "account": "rBT9cUqK6UvpvZhPFNQ2qpUTin8rDokBeL", + "account_objects": [ + { + "AssetScale": 2, + "Flags": 64, + "Issuer": "rBT9cUqK6UvpvZhPFNQ2qpUTin8rDokBeL", + "LedgerEntryType": "MPTokenIssuance", + "OutstandingAmount": "100", + "OwnerNode": "0", + "PreviousTxnID": "BDC5ECA6B115C74BF4DA83E36325A2F55DF9E2C968A5CC15EB4D009D87D5C7CA", + "PreviousTxnLgrSeq": 308, + "Sequence": 303, + "index": "75EC6F2939ED6C5798A5F369A0221BC4F6DDC50F8614ECF72E3B976351057A63", + "mpt_issuance_id": "0000012F72A341F09A988CDAEA4FF5BE31F25B402C550ABE" + } + ], + "ledger_current_index": 309, + "status": "success", + "validated": false + } } ``` diff --git a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_buy_offers.md b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_buy_offers.md index 1e6c08539a..9c80f44ba3 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_buy_offers.md +++ b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_buy_offers.md @@ -2,11 +2,13 @@ html: nft_buy_offers.html parent: path-and-order-book-methods.html seo: - description: NFTokenに対するすべての購入オファーのリストを取得します。 + description: NFTokenに対するすべての購入オファーのリストを取得します。 labels: - 非代替性トークン, NFT, NFToken --- + # nft_buy_offers + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/NFTOffers.cpp "ソース") `nft_buy_offers`メソッドは、与えられた[NFToken][]オブジェクトに対する購入オファーのリストを返します。 @@ -14,6 +16,7 @@ labels: {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} ## リクエストのフォーマット + リクエストのフォーマットの例: {% raw-partial file="/@l10n/ja/docs/_snippets/no-cli-syntax.md" /%} @@ -21,6 +24,7 @@ labels: {% tabs %} {% tab label="WebSocket" %} + ```json { "command": "nft_buy_offers", @@ -28,18 +32,23 @@ labels: "ledger_index": "validated" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { "method": "nft_buy_offers", - "params": [{ - "nft_id": "00090000D0B007439B080E9B05BF62403911301A7B1F0CFAA048C0A200000007", - "ledger_index": "validated" - }] + "params": [ + { + "nft_id": "00090000D0B007439B080E9B05BF62403911301A7B1F0CFAA048C0A200000007", + "ledger_index": "validated" + } + ] } ``` + {% /tab %} {% /tabs %} @@ -48,21 +57,22 @@ labels: リクエストには以下のパラメーターが含まれます。 -| `Field` | 型 | 説明 | -|:---------------|:-----------------|:-----------------------------------------| -| `nft_id` | 文字列 | [NFToken][] オブジェクトの一意の識別子。 | -| `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーのバージョンを示す20バイトの16進文字列。[レジャーの指定][]をご覧ください)。 | -| `ledger_index` | 文字列 または 数値 | _(省略可)_ 使用するレジャーの[レジャーインデックス][]、またはレジャーを自動的に選択するためのショートカット文字列。[レジャーの指定][]をご覧ください)。 | -| `limit` | 整数値 | _(省略可)_ 取得するNFTの購入オファーの数を制限します。この値は50未満または500を超えることはできません。この範囲外の正の値は、最も近い有効な値に置き換えられます。デフォルトは250です。 | -| `marker` | [マーカー][] | _(省略可)_ 以前のページ分割されたレスポンスの値。そのレスポンスが終了したところからデータの取得を再開します。 | - +| `Field` | 型 | 説明 | +| :------------- | :----------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `nft_id` | 文字列 | [NFToken][] オブジェクトの一意の識別子。 | +| `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーのバージョンを示す20バイトの16進文字列。[レジャーの指定][]をご覧ください)。 | +| `ledger_index` | 文字列 または 数値 | _(省略可)_ 使用するレジャーの[レジャーインデックス][]、またはレジャーを自動的に選択するためのショートカット文字列。[レジャーの指定][]をご覧ください)。 | +| `limit` | 整数値 | _(省略可)_ 取得するNFTの購入オファーの数を制限します。この値は50未満または500を超えることはできません。この範囲外の正の値は、最も近い有効な値に置き換えられます。デフォルトは250です。 | +| `marker` | [マーカー][] | _(省略可)_ 以前のページ分割されたレスポンスの値。そのレスポンスが終了したところからデータの取得を再開します。 | ## レスポンスのフォーマット + 処理が成功したレスポンスの例: {% tabs %} {% tab label="WebSocket" %} + ```json { "result": { @@ -80,9 +90,11 @@ labels: "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { "result": { @@ -99,35 +111,36 @@ labels: } } ``` + {% /tab %} {% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 -| `Field` | 型 | 説明 | -|:---------|:-----------|:-----------------------------------------------------| -| `nft_id` | 文字列 | リクエストで指定された NFToken | -| `offers` | 配列 | トークンの購入オファー一覧。各オファーは **購入オファー** (下記参照)の形式で表示されます。 | -| `limit` | 数値 | _(省略可)_ リクエストで指定された`limit`。 | +| `Field` | 型 | 説明 | +| :------- | :----------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `nft_id` | 文字列 | リクエストで指定された NFToken | +| `offers` | 配列 | トークンの購入オファー一覧。各オファーは **購入オファー** (下記参照)の形式で表示されます。 | +| `limit` | 数値 | _(省略可)_ リクエストで指定された`limit`。 | | `marker` | [マーカー][] | _(省略可)_ レスポンスがページ分割されていることを示す、サーバ定義の値。これを次の呼び出しに渡すと、この呼び出しが中断したところから再開します。この後に情報のページがない場合は省略されます。 | ### 購入オファー `offers`配列の各メンバーは、対象のNFTを購入するための1つの[NFTokenOfferオブジェクト][]を表し、以下のフィールドを持ちます。 -| `Field` | 型 | 説明 | -|:------------------|:-----------------------|:--------------------------------------| -| `amount` | 文字列 または オブジェクト | NFTを購入するために提示される金額で、XRPのドロップ数を表す文字列、または(代替可能)トークンの金額を表すオブジェクトです。([通貨金額の指定][通貨額]をご覧ください)。 | -| `flags` | 数値 | このオファーのためのフラグ。指定できる値については、[NFTokenOfferのフラグ](../../../protocol/ledger-data/ledger-entry-types/nftokenoffer.md#nftokenofferのフラグ)をご覧ください。 | -| `nft_offer_index` | 文字列 | このオファーの[レジャーオブジェクトID](../../../protocol/ledger-data/common-fields.md)。 | -| `owner` | 文字列 | このオファーを作成アカウント。 | +| `Field` | 型 | 説明 | +| :---------------- | :------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `amount` | 文字列 または オブジェクト | NFTを購入するために提示される金額で、XRPのドロップ数を表す文字列、または(代替可能)トークンの金額を表すオブジェクトです。([通貨金額の指定][通貨額]をご覧ください)。 | +| `flags` | 数値 | このオファーのためのフラグ。指定できる値については、[NFTokenOfferのフラグ](../../../protocol/ledger-data/ledger-entry-types/nftokenoffer.md#nftokenofferのフラグ)をご覧ください。 | +| `nft_offer_index` | 文字列 | このオファーの[レジャーオブジェクトID](../../../protocol/ledger-data/common-fields.md)。 | +| `owner` | 文字列 | このオファーを作成アカウント。 | ## 考えられるエラー -* いずれかの[汎用エラータイプ][]。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* `actNotFound` - リクエストの`account`フィールドに指定されているアドレスが、レジャーのアカウントに対応していません。 -* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバが保有していません。 +- いずれかの[汎用エラータイプ][]。 +- `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 +- `actNotFound` - リクエストの`account`フィールドに指定されているアドレスが、レジャーのアカウントに対応していません。 +- `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバが保有していません。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_sell_offers.md b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_sell_offers.md index f7747f8581..c0567083cf 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_sell_offers.md +++ b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_sell_offers.md @@ -2,11 +2,13 @@ html: nft_sell_offers.html parent: path-and-order-book-methods.html seo: - description: NFTokenに対するすべての売却オファーのリストを取得します。 + description: NFTokenに対するすべての売却オファーのリストを取得します。 labels: - 非代替性トークン, NFT, NFToken --- + # nft_sell_offers + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/NFTOffers.cpp "ソース") `nft_sell_offers`メソッドは、与えられた[NFToken][]オブジェクトに対する売却オファーのリストを返します。 @@ -14,6 +16,7 @@ labels: {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} ## リクエストのフォーマット + リクエストのフォーマットの例: {% raw-partial file="/@l10n/ja/docs/_snippets/no-cli-syntax.md" /%} @@ -21,6 +24,7 @@ labels: {% tabs %} {% tab label="WebSocket" %} + ```json { "command": "nft_sell_offers", @@ -28,19 +32,22 @@ labels: "ledger_index": "validated" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "nft_sell_offers", - "params": [ - { - "nft_id": "00090000D0B007439B080E9B05BF62403911301A7B1F0CFAA048C0A200000007" - } - ] + "method": "nft_sell_offers", + "params": [ + { + "nft_id": "00090000D0B007439B080E9B05BF62403911301A7B1F0CFAA048C0A200000007" + } + ] } ``` + {% /tab %} {% /tabs %} @@ -49,20 +56,22 @@ labels: リクエストには以下のパラメーターが含まれます。 -| `Field` | 型 | 説明 | -|:---------------|:-----------------|:-----------------------------------------| -| `nft_id` | 文字列 | [NFToken][] オブジェクトの一意の識別子。 | -| `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーのバージョンを示す20バイトの16進文字列。[レジャーの指定][]をご覧ください)。 | -| `ledger_index` | 文字列 または 数値 | _(省略可)_ 使用するレジャーの[レジャーインデックス][]、またはレジャーを自動的に選択するためのショートカット文字列。[レジャーの指定][]をご覧ください)。 | -| `limit` | 整数値 | _(省略可)_ 取得するNFTの売却オファーの数を制限します。この値は50未満または500を超えることはできません。この範囲外の正の値は、最も近い有効な値に置き換えられます。デフォルトは250です。 | -| `marker` | [マーカー][] | _(省略可)_ 以前のページ分割されたレスポンスの値。そのレスポンスが終了したところからデータの取得を再開します。 | +| `Field` | 型 | 説明 | +| :------------- | :----------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `nft_id` | 文字列 | [NFToken][] オブジェクトの一意の識別子。 | +| `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーのバージョンを示す20バイトの16進文字列。[レジャーの指定][]をご覧ください)。 | +| `ledger_index` | 文字列 または 数値 | _(省略可)_ 使用するレジャーの[レジャーインデックス][]、またはレジャーを自動的に選択するためのショートカット文字列。[レジャーの指定][]をご覧ください)。 | +| `limit` | 整数値 | _(省略可)_ 取得するNFTの売却オファーの数を制限します。この値は50未満または500を超えることはできません。この範囲外の正の値は、最も近い有効な値に置き換えられます。デフォルトは250です。 | +| `marker` | [マーカー][] | _(省略可)_ 以前のページ分割されたレスポンスの値。そのレスポンスが終了したところからデータの取得を再開します。 | ## レスポンスのフォーマット + 処理が成功したレスポンスの例: {% tabs %} {% tab label="WebSocket" %} + ```json { "result": { @@ -80,9 +89,11 @@ labels: "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { "result": { @@ -99,36 +110,36 @@ labels: } } ``` + {% /tab %} {% /tabs %} - このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 -| `Field` | 型 | 説明 | -|:---------|:-----------|:-----------------------------------------------------| -| `nft_id` | 文字列 | リクエストで指定された NFToken | -| `offers` | 配列 | トークンの売却オファー一覧。各オファーは **売却オファー** (下記参照)の形式で表示されます。 | -| `limit` | 数値 | _(省略可)_ リクエストで指定された`limit`。 | +| `Field` | 型 | 説明 | +| :------- | :----------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `nft_id` | 文字列 | リクエストで指定された NFToken | +| `offers` | 配列 | トークンの売却オファー一覧。各オファーは **売却オファー** (下記参照)の形式で表示されます。 | +| `limit` | 数値 | _(省略可)_ リクエストで指定された`limit`。 | | `marker` | [マーカー][] | _(省略可)_ レスポンスがページ分割されていることを示す、サーバ定義の値。これを次の呼び出しに渡すと、この呼び出しが中断したところから再開します。この後に情報のページがない場合は省略されます。 | ### 売却オファー `offers`配列の各メンバーは、対象のNFTを売却するための1つの[NFTokenOfferオブジェクト][]を表し、以下のフィールドを持ちます。 -| `Field` | 型 | 説明 | -|:------------------|:-----------------------|:--------------------------------------| -| `amount` | 文字列 または オブジェクト | NFTを売却するために提示される金額で、XRPのドロップ数を表す文字列、または(代替可能)トークンの金額を表すオブジェクトです。([通貨金額の指定][通貨額]をご覧ください)。 | -| `flags` | 数値 | このオファーのためのフラグ。指定できる値については、[NFTokenOfferのフラグ](../../../protocol/ledger-data/ledger-entry-types/nftokenoffer.md#nftokenofferのフラグ)をご覧ください。 | -| `nft_offer_index` | 文字列 | このオファーの[レジャーオブジェクトID](../../../protocol/ledger-data/common-fields.md)。 | -| `owner` | 文字列 | このオファーを作成アカウント。 | +| `Field` | 型 | 説明 | +| :---------------- | :------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `amount` | 文字列 または オブジェクト | NFTを売却するために提示される金額で、XRPのドロップ数を表す文字列、または(代替可能)トークンの金額を表すオブジェクトです。([通貨金額の指定][通貨額]をご覧ください)。 | +| `flags` | 数値 | このオファーのためのフラグ。指定できる値については、[NFTokenOfferのフラグ](../../../protocol/ledger-data/ledger-entry-types/nftokenoffer.md#nftokenofferのフラグ)をご覧ください。 | +| `nft_offer_index` | 文字列 | このオファーの[レジャーオブジェクトID](../../../protocol/ledger-data/common-fields.md)。 | +| `owner` | 文字列 | このオファーを作成アカウント。 | ## 考えられるエラー -* いずれかの[汎用エラータイプ][]。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* `actNotFound` - リクエストの`account`フィールドに指定されているアドレスが、レジャーのアカウントに対応していません。 -* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバが保有していません。 +- いずれかの[汎用エラータイプ][]。 +- `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 +- `actNotFound` - リクエストの`account`フィールドに指定されているアドレスが、レジャーのアカウントに対応していません。 +- `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバが保有していません。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/path_find.md b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/path_find.md index fb9e803200..8cf67e9f65 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/path_find.md +++ b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/path_find.md @@ -2,25 +2,28 @@ html: path_find.html parent: path-and-order-book-methods.html seo: - description: トランザクションが実行される可能性のあるパスを探索し、時間の経過とともにパスが変化する場合に更新を定期的に送信します。 + description: トランザクションが実行される可能性のあるパスを探索し、時間の経過とともにパスが変化する場合に更新を定期的に送信します。 labels: - クロスカレンシー - トークン --- + # path_find + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/PathFind.cpp "Source") -*WebSocket APIのみ。*`path_find`メソッドは、トランザクションが実行される可能性のある[パス](../../../../concepts/tokens/fungible-tokens/paths.md)を探索し、時間の経過とともにパスが変化する場合に更新を定期的に送信します。JSON-RPCでサポートされているシンプルなバージョンについては、[ripple_path_findメソッド][]をご覧ください。完全にXRPで行われる支払いの場合、XRPはどのアカウントにも直接送金できるためパスを探索する必要はありません。 +_WebSocket APIのみ。_`path_find`メソッドは、トランザクションが実行される可能性のある[パス](../../../../concepts/tokens/fungible-tokens/paths.md)を探索し、時間の経過とともにパスが変化する場合に更新を定期的に送信します。JSON-RPCでサポートされているシンプルなバージョンについては、[ripple_path_findメソッド][]をご覧ください。完全にXRPで行われる支払いの場合、XRPはどのアカウントにも直接送金できるためパスを探索する必要はありません。 path_findコマンドには3種類のモード(サブコマンド)があります。使用するモードを`subcommand`パラメーターに指定します。 -* `create` - Pathfinding情報の送信を開始します -* `close` - Pathfinding情報の送信を停止します -* `status` - 現在処理中のPathfindingリクエストに関する情報を取得します +- `create` - Pathfinding情報の送信を開始します +- `close` - Pathfinding情報の送信を停止します +- `status` - 現在処理中のPathfindingリクエストに関する情報を取得します `rippled`サーバは支払いを行うにあたり最も安価なパスまたはパスの組み合わせを探索しますが、このメソッドで返されるパスが最良のパスであることは保証されません。サーバの負荷が原因で、Pathfindingで最良のパスを検出できないことがあります。また、信頼できないサーバからのPathfindingの結果には注意する必要があります。オペレーターの収益となるように、最良ではないパスを返すようにサーバが改ざんされる可能性があります。Pathfindingについて信頼できる独自サーバがない場合は、1つのサーバから不適切な結果が返されるリスクを最小限に抑えるため、異なる当事者が実行する複数のサーバからのPathfindingの結果を比較してください。(**注記:** サーバから最良ではない結果が返されても、必ずしも悪意のある振る舞いの証拠とはなりません。サーバの負荷が高い場合の症状である可能性もあります。) ## path_find create + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/PathFind.cpp#L50-L56 "Source") `path_find`の`create`サブコマンドは、指定された特定アカウントから支払トランザクションを実行できるパスを探索する継続的なリクエストを作成し、別のアカウントが何らかの通貨で希望する額を受領できるようにします。初期レスポンスには2つのアドレス間で提案されるパスが含まれています。このパスにより、希望する額を受領できます。その後サーバは、`"type": "path_find"`で有効なパスの更新を含む追加メッセージを送信します。更新の頻度はサーバにより決定されますが、新しいレジャーバージョンがある場合には通常、数秒間に1回です。 @@ -28,25 +31,28 @@ path_findコマンドには3種類のモード(サブコマンド)があり クライアントは一度に1つのPathfindingリクエストのみ実行できます。同じ接続ですでに他のPathfindingリクエストが実行されている場合、古いリクエストが自動的にクローズされ、新しいリクエストに置き換えられます。 ### リクエストのフォーマット + リクエストのフォーマットの例: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id":8, - "command":"path_find", - "subcommand":"create", - "source_account":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "destination_account":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "destination_amount":{ - "value":"0.001", - "currency":"USD", - "issuer":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - } + "id": 8, + "command": "path_find", + "subcommand": "create", + "source_account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "destination_account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "destination_amount": { + "value": "0.001", + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" + } } ``` + {% /tab %} {% /tabs %} @@ -55,15 +61,15 @@ path_findコマンドには3種類のモード(サブコマンド)があり リクエストには以下のパラメーターが含まれます。 -| フィールド | 型 | 必須? | 説明 | -|:----------------------|:-------------------------|:-------|:---------------------------| -| `subcommand` | 文字列 | はい | `"create"`を使用してcreateサブコマンドを送信します。 | -| `source_account` | 文字列 - [アドレス][] | はい | 検索するパスの送金元アカウントのドレス。(つまり、支払いを送金するアカウント) | -| `destination_account` | 文字列 - [アドレス][] | はい | 検索するパスの送金先アカウントのアドレス。(つまり、支払いを受領するアカウント) | -| `destination_amount` | [通貨額][] | はい | 送金先アカウントが受け取る金額。 **特殊ケース:** XRPの場合、`"-1"`を指定するか、トークンの場合、`value`フィールドの内容として-1を指定できます。これにより、`send_max`で指定された金額を超えない範囲で、可能な限り多くの送金先への送金を要求します。 | -| `domain` | 文字列 - [ハッシュ][] | いいえ | 許可型ドメインのレジャーエントリID。指定された場合、対応する[許可型DEX](../../../../concepts/tokens/decentralized-exchange/permissioned-dexes.md)のみを使用するパスを返します。 _([PermissionedDEX amendment][]が必要です。 {% not-enabled /%})_ | -| `paths` | 配列 | いいえ | チェックする[支払いパス](../../../../concepts/tokens/fungible-tokens/paths.md)を表すオブジェクトの配列。すでに判明している特定パスの変更内容を常に把握する場合や、特定パスに沿った支払いにかかる総コストを確認する場合にこのフィールドを使用できます。 | -| `send_max` | [通貨額][] | いいえ | トランザクションに使用する[通貨額][]。`source_currencies`と同時に指定することはできません。| +| フィールド | 型 | 必須? | 説明 | +| :-------------------- | :-------------------- | :----- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `subcommand` | 文字列 | はい | `"create"`を使用してcreateサブコマンドを送信します。 | +| `source_account` | 文字列 - [アドレス][] | はい | 検索するパスの送金元アカウントのドレス。(つまり、支払いを送金するアカウント) | +| `destination_account` | 文字列 - [アドレス][] | はい | 検索するパスの送金先アカウントのアドレス。(つまり、支払いを受領するアカウント) | +| `destination_amount` | [通貨額][] | はい | 送金先アカウントが受け取る金額。 **特殊ケース:** XRPの場合、`"-1"`を指定するか、トークンの場合、`value`フィールドの内容として-1を指定できます。これにより、`send_max`で指定された金額を超えない範囲で、可能な限り多くの送金先への送金を要求します。 | +| `domain` | 文字列 - [ハッシュ][] | いいえ | 許可型ドメインのレジャーエントリID。指定された場合、対応する[許可型DEX](../../../../concepts/tokens/decentralized-exchange/permissioned-dexes.md)のみを使用するパスを返します。 _([PermissionedDEX amendment][]が必要です。 {% not-enabled /%})_ | +| `paths` | 配列 | いいえ | チェックする[支払いパス](../../../../concepts/tokens/fungible-tokens/paths.md)を表すオブジェクトの配列。すでに判明している特定パスの変更内容を常に把握する場合や、特定パスに沿った支払いにかかる総コストを確認する場合にこのフィールドを使用できます。 | +| `send_max` | [通貨額][] | いいえ | トランザクションに使用する[通貨額][]。`source_currencies`と同時に指定することはできません。 | サーバは`source_currencies`および`bridges`フィールドも認識しますが、これらのフィールドを使用した場合の結果は保証されません。これらのフィールドは将来のために予約されているものと考えてください。 @@ -74,398 +80,400 @@ path_findコマンドには3種類のモード(サブコマンド)があり {% tabs %} {% tab label="WebSocket" %} + ```json { - "id":1, - "status":"success", - "type":"response", - "result":{ - "alternatives":[ - { - "paths_computed":[ - [ - { - "currency":"USD", - "issuer":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type":48, - "type_hex":"0000000000000030" - }, - { - "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type":1, - "type_hex":"0000000000000001" - } - ], - [ - { - "currency":"USD", - "issuer":"rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "type":48, - "type_hex":"0000000000000030" - }, - { - "account":"rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "type":1, - "type_hex":"0000000000000001" - } - ], - [ - { - "currency":"USD", - "issuer":"r9vbV3EHvXWjSkeQ6CAcYVPGeq7TuiXY2X", - "type":48, - "type_hex":"0000000000000030" - }, - { - "account":"r9vbV3EHvXWjSkeQ6CAcYVPGeq7TuiXY2X", - "type":1, - "type_hex":"0000000000000001" - } - ], - [ - { - "currency":"USD", - "issuer":"rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", - "type":48, - "type_hex":"0000000000000030" - }, - { - "account":"rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", - "type":1, - "type_hex":"0000000000000001" - } - ] - ], - "source_amount":"251686" - }, - { - "paths_computed":[ - [ - { - "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type":1, - "type_hex":"0000000000000001" - }, - { - "currency":"USD", - "issuer":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type":48, - "type_hex":"0000000000000030" - }, - { - "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type":1, - "type_hex":"0000000000000001" - } - ], - [ - { - "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type":1, - "type_hex":"0000000000000001" - }, - { - "currency":"USD", - "issuer":"rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "type":48, - "type_hex":"0000000000000030" - }, - { - "account":"rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "type":1, - "type_hex":"0000000000000001" - } - ], - [ - { - "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type":1, - "type_hex":"0000000000000001" - }, - { - "currency":"USD", - "issuer":"rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", - "type":48, - "type_hex":"0000000000000030" - }, - { - "account":"rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", - "type":1, - "type_hex":"0000000000000001" - } - ] - ], - "source_amount":{ - "currency":"BTC", - "issuer":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value":"0.000001541291269274307" - } - }, - { - "paths_computed":[ - [ - { - "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type":1, - "type_hex":"0000000000000001" - }, - { - "currency":"USD", - "issuer":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type":48, - "type_hex":"0000000000000030" - }, - { - "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type":1, - "type_hex":"0000000000000001" - } - ] - ], - "source_amount":{ - "currency":"CHF", - "issuer":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value":"0.0009211546262510451" - } - }, - { - "paths_computed":[ - [ - { - "account":"razqQKzJRdB4UxFPWf5NEpEG3WMkmwgcXA", - "type":1, - "type_hex":"0000000000000001" - }, - { - "currency":"USD", - "issuer":"rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "type":48, - "type_hex":"0000000000000030" - }, - { - "account":"rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "type":1, - "type_hex":"0000000000000001" - } - ], - [ - { - "account":"razqQKzJRdB4UxFPWf5NEpEG3WMkmwgcXA", - "type":1, - "type_hex":"0000000000000001" - }, - { - "currency":"USD", - "issuer":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type":48, - "type_hex":"0000000000000030" - }, - { - "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type":1, - "type_hex":"0000000000000001" - } - ] - ], - "source_amount":{ - "currency":"CNY", - "issuer":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value":"0.006293562" - } - }, - { - "paths_computed":[ - [ - { - "account":"rGwUWgN5BEg3QGNY3RX2HfYowjUTZdid3E", - "type":1, - "type_hex":"0000000000000001" - }, - { - "currency":"USD", - "issuer":"rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", - "type":48, - "type_hex":"0000000000000030" - }, - { - "account":"rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", - "type":1, - "type_hex":"0000000000000001" - } - ], - [ - { - "account":"rGwUWgN5BEg3QGNY3RX2HfYowjUTZdid3E", - "type":1, - "type_hex":"0000000000000001" - }, - { - "currency":"USD", - "issuer":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type":48, - "type_hex":"0000000000000030" - }, - { - "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type":1, - "type_hex":"0000000000000001" - } - ], - [ - { - "account":"rGwUWgN5BEg3QGNY3RX2HfYowjUTZdid3E", - "type":1, - "type_hex":"0000000000000001" - }, - { - "currency":"USD", - "issuer":"rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "type":48, - "type_hex":"0000000000000030" - }, - { - "account":"rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "type":1, - "type_hex":"0000000000000001" - } - ] - ], - "source_amount":{ - "currency":"DYM", - "issuer":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value":"0.0007157142857142858" - } - }, - { - "paths_computed":[ - [ - { - "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type":1, - "type_hex":"0000000000000001" - }, - { - "currency":"USD", - "issuer":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type":48, - "type_hex":"0000000000000030" - }, - { - "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type":1, - "type_hex":"0000000000000001" - } - ], - [ - { - "account":"rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", - "type":1, - "type_hex":"0000000000000001" - }, - { - "currency":"USD", - "issuer":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type":48, - "type_hex":"0000000000000030" - }, - { - "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type":1, - "type_hex":"0000000000000001" - } - ], - [ - { - "account":"rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", - "type":1, - "type_hex":"0000000000000001" - }, - { - "currency":"USD", - "issuer":"rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", - "type":48, - "type_hex":"0000000000000030" - }, - { - "account":"rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", - "type":1, - "type_hex":"0000000000000001" - } - ] - ], - "source_amount":{ - "currency":"EUR", - "issuer":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value":"0.0007409623616236163" - } - }, - { - "paths_computed":[ - [ - { - "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type":1, - "type_hex":"0000000000000001" - }, - { - "currency":"USD", - "issuer":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type":48, - "type_hex":"0000000000000030" - }, - { - "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type":1, - "type_hex":"0000000000000001" - } - ] - ], - "source_amount":{ - "currency":"JPY", - "issuer":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value":"0.103412412" - } - } - ], - "destination_account":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "destination_amount":{ - "currency":"USD", - "issuer":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value":"0.001" - }, - "id":1, - "source_account":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "full_reply": false - } + "id": 1, + "status": "success", + "type": "response", + "result": { + "alternatives": [ + { + "paths_computed": [ + [ + { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type": 48, + "type_hex": "0000000000000030" + }, + { + "account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type": 1, + "type_hex": "0000000000000001" + } + ], + [ + { + "currency": "USD", + "issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "type": 48, + "type_hex": "0000000000000030" + }, + { + "account": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "type": 1, + "type_hex": "0000000000000001" + } + ], + [ + { + "currency": "USD", + "issuer": "r9vbV3EHvXWjSkeQ6CAcYVPGeq7TuiXY2X", + "type": 48, + "type_hex": "0000000000000030" + }, + { + "account": "r9vbV3EHvXWjSkeQ6CAcYVPGeq7TuiXY2X", + "type": 1, + "type_hex": "0000000000000001" + } + ], + [ + { + "currency": "USD", + "issuer": "rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", + "type": 48, + "type_hex": "0000000000000030" + }, + { + "account": "rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", + "type": 1, + "type_hex": "0000000000000001" + } + ] + ], + "source_amount": "251686" + }, + { + "paths_computed": [ + [ + { + "account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type": 1, + "type_hex": "0000000000000001" + }, + { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type": 48, + "type_hex": "0000000000000030" + }, + { + "account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type": 1, + "type_hex": "0000000000000001" + } + ], + [ + { + "account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type": 1, + "type_hex": "0000000000000001" + }, + { + "currency": "USD", + "issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "type": 48, + "type_hex": "0000000000000030" + }, + { + "account": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "type": 1, + "type_hex": "0000000000000001" + } + ], + [ + { + "account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type": 1, + "type_hex": "0000000000000001" + }, + { + "currency": "USD", + "issuer": "rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", + "type": 48, + "type_hex": "0000000000000030" + }, + { + "account": "rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", + "type": 1, + "type_hex": "0000000000000001" + } + ] + ], + "source_amount": { + "currency": "BTC", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "0.000001541291269274307" + } + }, + { + "paths_computed": [ + [ + { + "account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type": 1, + "type_hex": "0000000000000001" + }, + { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type": 48, + "type_hex": "0000000000000030" + }, + { + "account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type": 1, + "type_hex": "0000000000000001" + } + ] + ], + "source_amount": { + "currency": "CHF", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "0.0009211546262510451" + } + }, + { + "paths_computed": [ + [ + { + "account": "razqQKzJRdB4UxFPWf5NEpEG3WMkmwgcXA", + "type": 1, + "type_hex": "0000000000000001" + }, + { + "currency": "USD", + "issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "type": 48, + "type_hex": "0000000000000030" + }, + { + "account": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "type": 1, + "type_hex": "0000000000000001" + } + ], + [ + { + "account": "razqQKzJRdB4UxFPWf5NEpEG3WMkmwgcXA", + "type": 1, + "type_hex": "0000000000000001" + }, + { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type": 48, + "type_hex": "0000000000000030" + }, + { + "account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type": 1, + "type_hex": "0000000000000001" + } + ] + ], + "source_amount": { + "currency": "CNY", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "0.006293562" + } + }, + { + "paths_computed": [ + [ + { + "account": "rGwUWgN5BEg3QGNY3RX2HfYowjUTZdid3E", + "type": 1, + "type_hex": "0000000000000001" + }, + { + "currency": "USD", + "issuer": "rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", + "type": 48, + "type_hex": "0000000000000030" + }, + { + "account": "rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", + "type": 1, + "type_hex": "0000000000000001" + } + ], + [ + { + "account": "rGwUWgN5BEg3QGNY3RX2HfYowjUTZdid3E", + "type": 1, + "type_hex": "0000000000000001" + }, + { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type": 48, + "type_hex": "0000000000000030" + }, + { + "account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type": 1, + "type_hex": "0000000000000001" + } + ], + [ + { + "account": "rGwUWgN5BEg3QGNY3RX2HfYowjUTZdid3E", + "type": 1, + "type_hex": "0000000000000001" + }, + { + "currency": "USD", + "issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "type": 48, + "type_hex": "0000000000000030" + }, + { + "account": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "type": 1, + "type_hex": "0000000000000001" + } + ] + ], + "source_amount": { + "currency": "DYM", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "0.0007157142857142858" + } + }, + { + "paths_computed": [ + [ + { + "account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type": 1, + "type_hex": "0000000000000001" + }, + { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type": 48, + "type_hex": "0000000000000030" + }, + { + "account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type": 1, + "type_hex": "0000000000000001" + } + ], + [ + { + "account": "rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", + "type": 1, + "type_hex": "0000000000000001" + }, + { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type": 48, + "type_hex": "0000000000000030" + }, + { + "account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type": 1, + "type_hex": "0000000000000001" + } + ], + [ + { + "account": "rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", + "type": 1, + "type_hex": "0000000000000001" + }, + { + "currency": "USD", + "issuer": "rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", + "type": 48, + "type_hex": "0000000000000030" + }, + { + "account": "rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", + "type": 1, + "type_hex": "0000000000000001" + } + ] + ], + "source_amount": { + "currency": "EUR", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "0.0007409623616236163" + } + }, + { + "paths_computed": [ + [ + { + "account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type": 1, + "type_hex": "0000000000000001" + }, + { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type": 48, + "type_hex": "0000000000000030" + }, + { + "account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type": 1, + "type_hex": "0000000000000001" + } + ] + ], + "source_amount": { + "currency": "JPY", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "0.103412412" + } + } + ], + "destination_account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "destination_amount": { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "0.001" + }, + "id": 1, + "source_account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "full_reply": false + } } ``` + {% /tab %} {% /tabs %} この初期レスポンスは[標準フォーマット](../../api-conventions/response-formatting.md)に従っており、正常に完了した場合は次のフィールドが含まれています。 -| フィールド | 型 | 説明 | -|:----------------------|:-----------------|:---------------------------| -| `alternatives` | 配列 | 以下に説明する、提案される[パス](../../../../concepts/tokens/fungible-tokens/paths.md)のオブジェクトの配列。空の場合、送金元アカウントと送金先アカウントを結ぶパスが見つかりませんでした。 | -| `destination_account` | 文字列 | トランザクションを受信するアカウントの一意のアドレス。 | -| `destination_amount` | 文字列またはオブジェクト | 送金先がトランザクションで受領する[通貨額][]。 | -| `id` | (各種) | (WebSocketのみ)WebSocketリクエストに指定されているIDが再びこのレベルで含まれます。 | -| `source_account` | 文字列 | トランザクションを送信するアカウントの一意のアドレス。 | -| `full_reply` | ブール値 | `false`の場合、これは不完全な検索の結果です。これ以降のレスポンスに、より適切なパスが含まれている可能性があります。`true`の場合、これは検出された最良のパスです。(理論上、これよりも優れたパスが存在している可能性がありますが`rippled`では検出されません。)Pathfindingリクエストをクローズするまで、`rippled`は引き続き、新しいレジャーが閉鎖されるたびに更新を送信します。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.29.0" %}新規: rippled 0.29.0{% /badge %} | +| フィールド | 型 | 説明 | +| :-------------------- | :----------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `alternatives` | 配列 | 以下に説明する、提案される[パス](../../../../concepts/tokens/fungible-tokens/paths.md)のオブジェクトの配列。空の場合、送金元アカウントと送金先アカウントを結ぶパスが見つかりませんでした。 | +| `destination_account` | 文字列 | トランザクションを受信するアカウントの一意のアドレス。 | +| `destination_amount` | 文字列またはオブジェクト | 送金先がトランザクションで受領する[通貨額][]。 | +| `id` | (各種) | (WebSocketのみ)WebSocketリクエストに指定されているIDが再びこのレベルで含まれます。 | +| `source_account` | 文字列 | トランザクションを送信するアカウントの一意のアドレス。 | +| `full_reply` | ブール値 | `false`の場合、これは不完全な検索の結果です。これ以降のレスポンスに、より適切なパスが含まれている可能性があります。`true`の場合、これは検出された最良のパスです。(理論上、これよりも優れたパスが存在している可能性がありますが`rippled`では検出されません。)Pathfindingリクエストをクローズするまで、`rippled`は引き続き、新しいレジャーが閉鎖されるたびに更新を送信します。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.29.0" %}新規: rippled 0.29.0{% /badge %} | `alternatives`配列の各要素は、1つの送金元通貨(開始アカウントが保有)から送金先アカウントへのパスと通貨を表すオブジェクトです。このオブジェクトのフィールドを次に示します。 -| フィールド | 型 | 説明 | -|:-----------------|:-----------------|:--------------------------------| -| `paths_computed` | 配列 | [ペイメントパス](../../../../concepts/tokens/fungible-tokens/paths.md)を定義するオブジェクトの配列。 | -| `source_amount` | 文字列またはオブジェクト | 送金先が必要な額を受領するために、送金元がこのパスで送金する必要がある[通貨額][]。 | +| フィールド | 型 | 説明 | +| :--------------- | :----------------------- | :--------------------------------------------------------------------------------------------------- | +| `paths_computed` | 配列 | [ペイメントパス](../../../../concepts/tokens/fungible-tokens/paths.md)を定義するオブジェクトの配列。 | +| `source_amount` | 文字列またはオブジェクト | 送金先が必要な額を受領するために、送金元がこのパスで送金する必要がある[通貨額][]。 | ### 考えられるエラー -* [汎用エラータイプ][]のすべて。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* `noEvents` - 非同期コールバックをサポートしていないプロトコル(JSON-RPCなど)を使用しています。(JSON-RPCと互換性が _ある_ Pathfindingメソッドについては、[ripple_path_findメソッド][]をご覧ください。) +- [汎用エラータイプ][]のすべて。 +- `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 +- `noEvents` - 非同期コールバックをサポートしていないプロトコル(JSON-RPCなど)を使用しています。(JSON-RPCと互換性が _ある_ Pathfindingメソッドについては、[ripple_path_findメソッド][]をご覧ください。) ### 非同期フォローアップ @@ -478,114 +486,124 @@ path_find createリクエストからの非同期フォローアップの例を {% tabs %} {% tab label="WebSocket" %} + ```json { - "id":1, - "type":"path_find", - "alternatives":[ - /* paths omitted from this example; same format as the initial response */ - ], - "destination_account":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "destination_amount":{ - "currency":"USD", - "issuer":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value":"0.001" - }, - "source_account":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59" + "id": 1, + "type": "path_find", + "alternatives": [ + /* paths omitted from this example; same format as the initial response */ + ], + "destination_account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "destination_amount": { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "0.001" + }, + "source_account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59" } ``` + {% /tab %} {% /tabs %} ## path_find close + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/PathFind.cpp#L58-L67 "Source") `path_find`の`close`サブコマンドは、サーバに対して現在実行中のPathfindingリクエストに関する情報の送信を停止するように指示します。 ### リクエストのフォーマット + リクエストのフォーマットの例: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id":57, - "command":"path_find", - "subcommand":"close" + "id": 57, + "command": "path_find", + "subcommand": "close" } ``` + {% /tab %} {% /tabs %} リクエストには以下のパラメーターが含まれます。 -| フィールド | 型 | 説明 | -|:-------------|:-------|:------------------------------------| +| フィールド | 型 | 説明 | +| :----------- | :----- | :----------------------------------------------------- | | `subcommand` | 文字列 | closeサブコマンドを送信するため`"close"`を使用します。 | ### レスポンスのフォーマット Pathfindingリクエストが正常にクローズされた場合、レスポンスは[`path_find create`](#path_find-create)に対する初期レスポンスと同じフォーマットであり、されに以下のフィールドが含まれます。 -| フィールド | 型 | 説明 | -|:-----------|:--------|:-------------------------------------------------| +| フィールド | 型 | 説明 | +| :--------- | :------- | :------------------------------------------------------------------------ | | `closed` | ブール値 | 値が`true`の場合、これは`path_find close`コマンドに対するレスポンスです。 | 未処理のPathfindingリクエストがない場合はエラーが返されます。 ### 考えられるエラー -* [汎用エラータイプ][]のすべて。 -* `invalidParams` - フィールドの指定が正しくないか、必須フィールドが指定されていません。 -* `noEvents` - 非同期コールバックをサポートしていないプロトコル(JSON-RPCなど)でこのメソッドを使用しようとしました。(JSON-RPCと互換性が _ある_ Pathfindingメソッドについては、[ripple_path_findメソッド][]をご覧ください。) -* `noPathRequest` - Pathfindingリクエストをクローズしようとしましたが、実行中のリクエストがありませんでした。 +- [汎用エラータイプ][]のすべて。 +- `invalidParams` - フィールドの指定が正しくないか、必須フィールドが指定されていません。 +- `noEvents` - 非同期コールバックをサポートしていないプロトコル(JSON-RPCなど)でこのメソッドを使用しようとしました。(JSON-RPCと互換性が _ある_ Pathfindingメソッドについては、[ripple_path_findメソッド][]をご覧ください。) +- `noPathRequest` - Pathfindingリクエストをクローズしようとしましたが、実行中のリクエストがありませんでした。 ## path_find status + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/PathFind.cpp#L69-L77 "Source") `path_find`の`status`サブコマンドは、現在実行中のクライアントのPathfindingリクエストの即時更新をリクエストします。 ### リクエストのフォーマット + リクエストのフォーマットの例: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id":58, - "command":"path_find", - "subcommand":"status" + "id": 58, + "command": "path_find", + "subcommand": "status" } ``` + {% /tab %} {% /tabs %} リクエストには以下のパラメーターが含まれます。 -| フィールド | 型 | 説明 | -|:-------------|:-------|:--------------------------------------| +| フィールド | 型 | 説明 | +| :----------- | :----- | :----------------------------------------------------- | | `subcommand` | 文字列 | `"status"`を使用して、statusサブコマンドを送信します。 | ### レスポンスのフォーマット Pathfindingリクエストが実行中の場合、レスポンスは[`path_find create`](#path_find-create)に対する初期レスポンスと同じフォーマットであるのに加えて、以下のフィールドがあります。 -| フィールド | 型 | 説明 | -|:-----------|:--------|:-------------------------------------------------| +| フィールド | 型 | 説明 | +| :--------- | :------- | :------------------------------------------------------------------------- | | `status` | ブール値 | 値が`true`の場合、これは`path_find status`コマンドに対するレスポンスです。 | 未処理のPathfindingリクエストがない場合はエラーが返されます。 ### 考えられるエラー -* [汎用エラータイプ][]のすべて。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* `noEvents` - 非同期コールバックをサポートしていないプロトコル(JSON-RPCなど)を使用しています。(JSON-RPCと互換性が _ある_ Pathfindingメソッドについては、[ripple_path_findメソッド][]をご覧ください。) -* `noPathRequest` - Pathfindingリクエストのステータスを確認しようとしましたが、処理中のリクエストがありませんでした。 +- [汎用エラータイプ][]のすべて。 +- `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 +- `noEvents` - 非同期コールバックをサポートしていないプロトコル(JSON-RPCなど)を使用しています。(JSON-RPCと互換性が _ある_ Pathfindingメソッドについては、[ripple_path_findメソッド][]をご覧ください。) +- `noPathRequest` - Pathfindingリクエストのステータスを確認しようとしましたが、処理中のリクエストがありませんでした。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/ripple_path_find.md b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/ripple_path_find.md index 758693b7a0..72065ccb7a 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/ripple_path_find.md +++ b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/ripple_path_find.md @@ -2,12 +2,14 @@ html: ripple_path_find.html parent: path-and-order-book-methods.html seo: - description: すぐに利用できるペイメントパスを含む1つのレスポンスを返します。 + description: すぐに利用できるペイメントパスを含む1つのレスポンスを返します。 labels: - クロスカレンシー - トークン --- + # ripple_path_find + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/RipplePathFind.cpp "Source") `ripple_path_find`メソッドは、[path_findメソッド][]のシンプルなバージョンであり、すぐに利用できる[ペイメントパス](../../../../concepts/tokens/fungible-tokens/paths.md)を含む1つのレスポンスを返します。WebSocket APIとJSON-RPC APIの両方で使用できます。ただし、結果は時間の経過とともに古くなる傾向にあります。最新の状態を維持するために複数のコールを実行する代わりに、可能な場合には[path_findメソッド][]を使用して、継続的な更新をサブスクライブします。 @@ -17,66 +19,73 @@ labels: {% admonition type="warning" name="注意" %}信頼できないサーバからのPathfindingの結果には注意してください。オペレーターの収益となるように、最良ではないパスを返すようにサーバが改ざんされる可能性があります。サーバの負荷が非常に高い場合にも不適切な結果が返される可能性があります。Pathfindingについて信頼できる独自サーバがない場合は、1つのサーバから不適切な結果が返されるリスクを最小限に抑えるため、異なる当事者が実行する複数のサーバからのPathfindingの結果を比較してください。{% /admonition %} ## リクエストのフォーマット + リクエストのフォーマットの例: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id":8, - "command":"ripple_path_find", - "source_account":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "source_currencies":[ - { - "currency":"XRP" - }, - { - "currency":"USD" - } - ], - "destination_account":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "destination_amount":{ - "value":"0.001", - "currency":"USD", - "issuer":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - } + "id": 8, + "command": "ripple_path_find", + "source_account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "source_currencies": [ + { + "currency": "XRP" + }, + { + "currency": "USD" + } + ], + "destination_account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "destination_amount": { + "value": "0.001", + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" + } } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method":"ripple_path_find", - "params":[ - { - "destination_account":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "destination_amount":{ - "currency":"USD", - "issuer":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value":"0.001" - }, - "source_account":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "source_currencies":[ - { - "currency":"XRP" - }, - { - "currency":"USD" - } - ] - } - ] + "method": "ripple_path_find", + "params": [ + { + "destination_account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "destination_amount": { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "0.001" + }, + "source_account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "source_currencies": [ + { + "currency": "XRP" + }, + { + "currency": "USD" + } + ] + } + ] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh #Syntax ripple_path_find json ledger_index|ledger_hash rippled ripple_path_find '{"source_account":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", "source_currencies":[ { "currency":"XRP" }, { "currency":"USD" } ], "destination_account":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", "destination_amount":{ "value":"0.001", "currency":"USD", "issuer":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" } }' ``` + {% /tab %} {% /tabs %} @@ -85,15 +94,15 @@ rippled ripple_path_find '{"source_account":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59" リクエストには以下のパラメーターが含まれます。 -| フィールド | 型 | 必須? | 説明 | -|:----------------------|:-------------------------|:-------|:-----------------| -| `source_account` | 文字列 - [アドレス][] | はい | トランザクションで資金を送金するアカウントのアドレス。 | -| `destination_account` | 文字列 - [アドレス][] | はい | トランザクションで資金を受領するアカウントのアドレス。 | -| `destination_amount` | [通貨額][] | はい | 送金先アカウントがトランザクションで受領する[通貨額][]。**特殊なケース:** `value`フィールドには`"-1"`(XRPの場合)または-1(XRP以外の通貨の場合)を指定できます。これにより、最大限の額を送金できるパスがリクエストされます。ただし`send_max`が指定されている場合は、指定されている額を上回る額が支払われることはありません。 | -| `domain` | 文字列 - [ハッシュ][] | いいえ | 許可型DEXのレジャーエントリID。指定された場合、対応する[許可型DEX](../../../../concepts/tokens/decentralized-exchange/permissioned-dexes.md)のみを使用するパスを返します。([PermissionedDEX amendment][] {% not-enabled /%}が必要です) | -| `ledger_hash` | 文字列 - [ハッシュ][] | いいえ | 使用するレジャーバージョンの20バイトの16進文字列。([レジャーの指定][]をご覧ください) | -| `ledger_index` | [レジャーインデックス][] | いいえ | 使用するレジャーのシーケンス番号、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]をご覧ください) | -| `send_max` | [通貨額][] | いいえ | トランザクションで使用する[通貨額][]。`source_currencies`と同時に使用することはできません。 | +| フィールド | 型 | 必須? | 説明 | +| :-------------------- | :----------------------- | :----- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `source_account` | 文字列 - [アドレス][] | はい | トランザクションで資金を送金するアカウントのアドレス。 | +| `destination_account` | 文字列 - [アドレス][] | はい | トランザクションで資金を受領するアカウントのアドレス。 | +| `destination_amount` | [通貨額][] | はい | 送金先アカウントがトランザクションで受領する[通貨額][]。**特殊なケース:** `value`フィールドには`"-1"`(XRPの場合)または-1(XRP以外の通貨の場合)を指定できます。これにより、最大限の額を送金できるパスがリクエストされます。ただし`send_max`が指定されている場合は、指定されている額を上回る額が支払われることはありません。 | +| `domain` | 文字列 - [ハッシュ][] | いいえ | 許可型DEXのレジャーエントリID。指定された場合、対応する[許可型DEX](../../../../concepts/tokens/decentralized-exchange/permissioned-dexes.md)のみを使用するパスを返します。([PermissionedDEX amendment][] {% not-enabled /%}が必要です) | +| `ledger_hash` | 文字列 - [ハッシュ][] | いいえ | 使用するレジャーバージョンの20バイトの16進文字列。([レジャーの指定][]をご覧ください) | +| `ledger_index` | [レジャーインデックス][] | いいえ | 使用するレジャーのシーケンス番号、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]をご覧ください) | +| `send_max` | [通貨額][] | いいえ | トランザクションで使用する[通貨額][]。`source_currencies`と同時に使用することはできません。 | | `source_currencies` | 配列 | いいえ | 送信元アカウントが使用する通貨の配列。この配列の各エントリは、必須の`currency`フィールドとオプションの`issuer`フィールドを有するJSONオブジェクトです([通貨額][]の指定方法と同様)。指定できる送金元通貨は**18**種類以下です。デフォルトでは、あらゆる送金元通貨を使用し、最大で**88**の異なる通貨/イシュアーペアに使用できます。 | ## レスポンスのフォーマット @@ -103,115 +112,108 @@ rippled ripple_path_find '{"source_account":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59" {% tabs %} {% tab label="WebSocket" %} + ```json { - "id":8, - "status":"success", - "type":"response", - "result":{ - "alternatives":[ - { - "paths_canonical":[], - "paths_computed":[ - [ - { - "currency":"USD", - "issuer":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type":48, - "type_hex":"0000000000000030" - }, - { - "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type":1, - "type_hex":"0000000000000001" - } - ], - [ - { - "currency":"USD", - "issuer":"rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1", - "type":48, - "type_hex":"0000000000000030" - }, - { - "account":"rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1", - "type":1, - "type_hex":"0000000000000001" - }, - { - "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type":1, - "type_hex":"0000000000000001" - } - ], - [ - { - "currency":"USD", - "issuer":"rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1", - "type":48, - "type_hex":"0000000000000030" - }, - { - "account":"rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1", - "type":1, - "type_hex":"0000000000000001" - }, - { - "account":"rLpq4LgabRfm1xEX5dpWfJovYBH6g7z99q", - "type":1, - "type_hex":"0000000000000001" - }, - { - "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type":1, - "type_hex":"0000000000000001" - } - ], - [ - { - "currency":"USD", - "issuer":"rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1", - "type":48, - "type_hex":"0000000000000030" - }, - { - "account":"rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1", - "type":1, - "type_hex":"0000000000000001" - }, - { - "account":"rPuBoajMjFoDjweJBrtZEBwUMkyruxpwwV", - "type":1, - "type_hex":"0000000000000001" - }, - { - "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type":1, - "type_hex":"0000000000000001" - } - ] - ], - "source_amount":"256987" - } - ], - "destination_account":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "destination_currencies":[ - "015841551A748AD2C1F76FF6ECB0CCCD00000000", - "JOE", - "DYM", - "EUR", - "CNY", - "MXN", - "BTC", - "USD", - "XRP" - ] - } + "id": 8, + "status": "success", + "type": "response", + "result": { + "alternatives": [ + { + "paths_canonical": [], + "paths_computed": [ + [ + { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type": 48, + "type_hex": "0000000000000030" + }, + { + "account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type": 1, + "type_hex": "0000000000000001" + } + ], + [ + { + "currency": "USD", + "issuer": "rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1", + "type": 48, + "type_hex": "0000000000000030" + }, + { + "account": "rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1", + "type": 1, + "type_hex": "0000000000000001" + }, + { + "account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type": 1, + "type_hex": "0000000000000001" + } + ], + [ + { + "currency": "USD", + "issuer": "rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1", + "type": 48, + "type_hex": "0000000000000030" + }, + { + "account": "rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1", + "type": 1, + "type_hex": "0000000000000001" + }, + { + "account": "rLpq4LgabRfm1xEX5dpWfJovYBH6g7z99q", + "type": 1, + "type_hex": "0000000000000001" + }, + { + "account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type": 1, + "type_hex": "0000000000000001" + } + ], + [ + { + "currency": "USD", + "issuer": "rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1", + "type": 48, + "type_hex": "0000000000000030" + }, + { + "account": "rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1", + "type": 1, + "type_hex": "0000000000000001" + }, + { + "account": "rPuBoajMjFoDjweJBrtZEBwUMkyruxpwwV", + "type": 1, + "type_hex": "0000000000000001" + }, + { + "account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type": 1, + "type_hex": "0000000000000001" + } + ] + ], + "source_amount": "256987" + } + ], + "destination_account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "destination_currencies": ["015841551A748AD2C1F76FF6ECB0CCCD00000000", "JOE", "DYM", "EUR", "CNY", "MXN", "BTC", "USD", "XRP"] + } } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -318,37 +320,38 @@ rippled ripple_path_find '{"source_account":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59" } } ``` + {% /tab %} {% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 -| フィールド | 型 | 説明 | -|:-------------------------|:-------|:-----------------------------------------| -| `alternatives` | 配列 | 使用可能なパスを持つオブジェクトの配列。以下に説明します。空の場合、送金元アカウントと送金先アカウントを結ぶパスがありません。 | -| `destination_account` | 文字列 | 支払トランザクションを受信するアカウントの一意のアドレス。 | -| `destination_currencies` | 配列 | 送金先が受領する通貨を表す文字列の配列。この文字列は、3文字コード(`"USD"`など)または40文字の16進文字列(`"015841551A748AD2C1F76FF6ECB0CCCD00000000"`など)です。 | +| フィールド | 型 | 説明 | +| :----------------------- | :----- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `alternatives` | 配列 | 使用可能なパスを持つオブジェクトの配列。以下に説明します。空の場合、送金元アカウントと送金先アカウントを結ぶパスがありません。 | +| `destination_account` | 文字列 | 支払トランザクションを受信するアカウントの一意のアドレス。 | +| `destination_currencies` | 配列 | 送金先が受領する通貨を表す文字列の配列。この文字列は、3文字コード(`"USD"`など)または40文字の16進文字列(`"015841551A748AD2C1F76FF6ECB0CCCD00000000"`など)です。 | `alternatives`配列の各要素は、1つの送金元通貨(開始アカウントが保有)から送金先アカウントへのパスと通貨を表すオブジェクトです。このオブジェクトのフィールドを次に示します。 -| フィールド | 型 | 説明 | -|:-----------------|:-----------------|:---------------------------------------| -| `paths_computed` | 配列 | (省略可)[ペイメントパス](../../../../concepts/tokens/fungible-tokens/paths.md)を定義するオブジェクトの配列。 | -| `source_amount` | 文字列またはオブジェクト | 送金先が希望額を受領できるよう、送金元がこのパスで送金する必要のある[通貨額][]。 | +| フィールド | 型 | 説明 | +| :--------------- | :----------------------- | :------------------------------------------------------------------------------------------------------------- | +| `paths_computed` | 配列 | (省略可)[ペイメントパス](../../../../concepts/tokens/fungible-tokens/paths.md)を定義するオブジェクトの配列。 | +| `source_amount` | 文字列またはオブジェクト | 送金先が希望額を受領できるよう、送金元がこのパスで送金する必要のある[通貨額][]。 | 次のフィールドは廃止予定のため、省略される可能性があります。`paths_canonical`および`paths_expanded`。出力される場合は無視してください。 ## 考えられるエラー -* [汎用エラータイプ][]のすべて。 -* `tooBusy` - サーバの負荷が高すぎるため、パスを計算できません。管理者として接続している場合は、このエラーが返されることはありません。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* `srcActMissing` - `source_account`フィールドがリクエストで省略されています。 -* `srcActMalformed` - リクエストの`source_account`フィールドのフォーマットが適切ではありません。 -* `dstActMissing` - `destination_account`フィールドがリクエストで省略されています。 -* `dstActMalformed` - リクエストの`destination_account`フィールドのフォーマットが適切ではありません。 -* `srcCurMalformed` - `source_currencies`フィールドのフォーマットが適切ではありません。 -* `srcIsrMalformed` - リクエストの1つ以上の通貨オブジェクトの`issuer`フィールドが有効ではありません。 +- [汎用エラータイプ][]のすべて。 +- `tooBusy` - サーバの負荷が高すぎるため、パスを計算できません。管理者として接続している場合は、このエラーが返されることはありません。 +- `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 +- `srcActMissing` - `source_account`フィールドがリクエストで省略されています。 +- `srcActMalformed` - リクエストの`source_account`フィールドのフォーマットが適切ではありません。 +- `dstActMissing` - `destination_account`フィールドがリクエストで省略されています。 +- `dstActMalformed` - リクエストの`destination_account`フィールドのフォーマットが適切ではありません。 +- `srcCurMalformed` - `source_currencies`フィールドのフォーマットが適切ではありません。 +- `srcIsrMalformed` - リクエストの1つ以上の通貨オブジェクトの`issuer`フィールドが有効ではありません。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_authorize.md b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_authorize.md index f0f08c83cd..5f5880c08e 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_authorize.md +++ b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_authorize.md @@ -2,11 +2,13 @@ html: channel_authorize.html parent: payment-channel-methods.html seo: - description: 特定額のXRPをPayment Channelから清算するときに使用できる署名を作成します。 + description: 特定額のXRPをPayment Channelから清算するときに使用できる署名を作成します。 labels: - Payment Channel --- + # channel_authorize + [[ソース]](https://github.com/XRPLF/rippled/blob/d4a56f223a3b80f64ff70b4e90ab6792806929ca/src/ripple/rpc/handlers/PayChanClaim.cpp#L41 "Source") _([PayChan Amendment][]が有効になっている必要があります。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.33.0" %}新規: rippled 0.33.0{% /badge %})_ @@ -14,24 +16,28 @@ _([PayChan Amendment][]が有効になっている必要があります。{% b `channel_authorize`メソッドは、特定額のXRPをPayment Channelから清算するときに使用できる署名を作成します。 ## リクエストのフォーマット + リクエストのフォーマットの例: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": "channel_authorize_example_id1", - "command": "channel_authorize", - "channel_id": "5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3", - "seed": "s████████████████████████████", - "key_type": "secp256k1", - "amount": "1000000", + "id": "channel_authorize_example_id1", + "command": "channel_authorize", + "channel_id": "5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3", + "seed": "s████████████████████████████", + "key_type": "secp256k1", + "amount": "1000000" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json POST http://localhost:5005/ Content-Type: application/json @@ -46,28 +52,31 @@ Content-Type: application/json }] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh #Syntax: channel_authorize [] rippled channel_authorize s████████████████████████████ secp256k1 5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3 1000000 ``` + {% /tab %} {% /tabs %} リクエストには以下のパラメーターが含まれます。 -| フィールド | 型 | 説明 | -|-------|------|-------------| -| `channel_id` | 文字列 | Payment Channelが使用する一意のID。 -| `secret` | 文字列 | _(省略可)_ クレームへの署名に使用する秘密鍵。これは、Channelに指定されている公開鍵と同じキーペアである必要があります。`seed`、`seed_hex`、`passphrase`と同時に使用することはできません。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.4.0" %}更新: rippled 1.4.0{% /badge %} | -| `seed ` | 文字列 | _(省略可)_ クレームへの署名に使用する秘密シード。これは、Channelに指定されている公開鍵と同じキーペアである必要があります。XRP Ledgerの[base58][]フォーマットにする必要があります。指定する場合は、`key_type`も指定する必要があります。`secret`、`seed_hex`、`passphrase`と同時に使用することはできません。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.4.0" %}新規: rippled 1.4.0{% /badge %} | -| `seed_hex` | 文字列 | _(省略可)_ クレームへの署名に使用する秘密シード。これは、Channelに指定されている公開鍵と同じキーペアである必要があります。16進フォーマットにする必要があります。指定する場合は、`key_type`も指定する必要があります。`secret`、`seed`、`passphrase`と同時に使用することはできません。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.4.0" %}新規: rippled 1.4.0{% /badge %} | +| フィールド | 型 | 説明 | +| ------------ | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `channel_id` | 文字列 | Payment Channelが使用する一意のID。 | +| `secret` | 文字列 | _(省略可)_ クレームへの署名に使用する秘密鍵。これは、Channelに指定されている公開鍵と同じキーペアである必要があります。`seed`、`seed_hex`、`passphrase`と同時に使用することはできません。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.4.0" %}更新: rippled 1.4.0{% /badge %} | +| `seed ` | 文字列 | _(省略可)_ クレームへの署名に使用する秘密シード。これは、Channelに指定されている公開鍵と同じキーペアである必要があります。XRP Ledgerの[base58][]フォーマットにする必要があります。指定する場合は、`key_type`も指定する必要があります。`secret`、`seed_hex`、`passphrase`と同時に使用することはできません。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.4.0" %}新規: rippled 1.4.0{% /badge %} | +| `seed_hex` | 文字列 | _(省略可)_ クレームへの署名に使用する秘密シード。これは、Channelに指定されている公開鍵と同じキーペアである必要があります。16進フォーマットにする必要があります。指定する場合は、`key_type`も指定する必要があります。`secret`、`seed`、`passphrase`と同時に使用することはできません。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.4.0" %}新規: rippled 1.4.0{% /badge %} | | `passphrase` | 文字列 | _(省略可)_ クレームへの署名に使用する文字列パスフレーズ。これは、Channelに指定されている公開鍵と同じキーペアである必要があります。[このパスフレーズから導出した鍵](../../../../concepts/accounts/cryptographic-keys.md#鍵導出)は、チャネルで指定された公開鍵と一致する必要があります。指定する場合は、`key_type`も指定する必要があります。`secret`、`seed`、`seed_hex`と同時に使用することはできません。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.4.0" %}新規: rippled 1.4.0{% /badge %} | -| `key_type` | 文字列 | _(省略可)_ 指定された暗号化キーペアの[署名アルゴリズム](../../../../concepts/accounts/cryptographic-keys.md#署名アルゴリズム)。有効な種類は、`secp256k1`または`ed25519`です。デフォルトは`secp256k1`です。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.4.0" %}新規: rippled 1.4.0{% /badge %} | -| `amount` | 文字列 | 承認するXRPの累積額(drop数)送金先がこのChannelからすでに受領しているXRPの額がこのフィールドの額よりも少ない場合、このメソッドで作成される署名を使用して差額を清算できます。 | +| `key_type` | 文字列 | _(省略可)_ 指定された暗号化キーペアの[署名アルゴリズム](../../../../concepts/accounts/cryptographic-keys.md#署名アルゴリズム)。有効な種類は、`secp256k1`または`ed25519`です。デフォルトは`secp256k1`です。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.4.0" %}新規: rippled 1.4.0{% /badge %} | +| `amount` | 文字列 | 承認するXRPの累積額(drop数)送金先がこのChannelからすでに受領しているXRPの額がこのフィールドの額よりも少ない場合、このメソッドで作成される署名を使用して差額を清算できます。 | リクエストでは、`secret`、`seed`、`seed_hex`、`passphrase`のうち1つだけを指定する**必要があります**。 @@ -80,18 +89,21 @@ rippled channel_authorize s█████████████████ {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": "channel_authorize_example_id1", - "status": "success", - "result": { - "signature": "304402204EF0AFB78AC23ED1C472E74F4299C0C21F1B21D07EFC0A3838A420F76D783A400220154FB11B6F54320666E4C36CA7F686C16A3A0456800BBC43746F34AF50290064", - } + "id": "channel_authorize_example_id1", + "status": "success", + "result": { + "signature": "304402204EF0AFB78AC23ED1C472E74F4299C0C21F1B21D07EFC0A3838A420F76D783A400220154FB11B6F54320666E4C36CA7F686C16A3A0456800BBC43746F34AF50290064" + } } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -102,33 +114,36 @@ rippled channel_authorize s█████████████████ } } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```json { - "result": { - "signature": "304402204EF0AFB78AC23ED1C472E74F4299C0C21F1B21D07EFC0A3838A420F76D783A400220154FB11B6F54320666E4C36CA7F686C16A3A0456800BBC43746F34AF50290064", - "status": "success" - } + "result": { + "signature": "304402204EF0AFB78AC23ED1C472E74F4299C0C21F1B21D07EFC0A3838A420F76D783A400220154FB11B6F54320666E4C36CA7F686C16A3A0456800BBC43746F34AF50290064", + "status": "success" + } } ``` + {% /tab %} {% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 -| フィールド | 型 | 説明 | -|-------|------|-------------| +| フィールド | 型 | 説明 | +| ----------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `signature` | 文字列 | このクレームの署名(16進値)。このクレームを処理するには、Payment Channelの送金先アカウントがこの署名、正確なChannel ID、XRPの額、およびChannelの公開鍵が指定された[PaymentChannelClaimトランザクション][]を送信する必要があります。 | ## 考えられるエラー -* いずれかの[汎用エラータイプ][]。 -* `badKeyType` - リクエストの`key_type`パラメーターは、有効なキータイプではありません。(有効なタイプは、`secp256k1`または`ed25519`です。){% badge href="https://github.com/XRPLF/rippled/releases/tag/1.4.0" %}新規: rippled 1.4.0{% /badge %} -* `badSeed` - リクエストの`secret`が有効なシークレットキーではありません。 -* `channelAmtMalformed` - リクエストの`amount`が有効な[XRPの額][XRPのdrop数]ではありません。 -* `channelMalformed` - リクエストの`channel_id`が有効なChannel IDではありません。Channel IDは256ビット(64文字)の16進文字列です。 +- いずれかの[汎用エラータイプ][]。 +- `badKeyType` - リクエストの`key_type`パラメーターは、有効なキータイプではありません。(有効なタイプは、`secp256k1`または`ed25519`です。){% badge href="https://github.com/XRPLF/rippled/releases/tag/1.4.0" %}新規: rippled 1.4.0{% /badge %} +- `badSeed` - リクエストの`secret`が有効なシークレットキーではありません。 +- `channelAmtMalformed` - リクエストの`amount`が有効な[XRPの額][XRPのdrop数]ではありません。 +- `channelMalformed` - リクエストの`channel_id`が有効なChannel IDではありません。Channel IDは256ビット(64文字)の16進文字列です。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_verify.md b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_verify.md index 01bc7836f5..2bbe4661fa 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_verify.md +++ b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_verify.md @@ -2,11 +2,13 @@ html: channel_verify.html parent: payment-channel-methods.html seo: - description: 特定額のXRPをPayment Channelから清算するときに使用できる署名の有効性を検証します。 + description: 特定額のXRPをPayment Channelから清算するときに使用できる署名の有効性を検証します。 labels: - Payment Channel --- + # channel_verify + [[ソース]](https://github.com/XRPLF/rippled/blob/d4a56f223a3b80f64ff70b4e90ab6792806929ca/src/ripple/rpc/handlers/PayChanClaim.cpp#L89 "Source") _([PayChan Amendment][]が有効になっている必要があります。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.33.0" %}新規: rippled 0.33.0{% /badge %})_ @@ -14,54 +16,63 @@ _([PayChan Amendment][]が有効になっている必要があります。{% b `channel_verify`メソッドは、特定額のXRPをPayment Channelから清算するときに使用できる署名の有効性を検証します。 ## リクエストのフォーマット + リクエストのフォーマットの例: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id":1, - "command":"channel_verify", - "channel_id":"5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3", - "signature":"304402204EF0AFB78AC23ED1C472E74F4299C0C21F1B21D07EFC0A3838A420F76D783A400220154FB11B6F54320666E4C36CA7F686C16A3A0456800BBC43746F34AF50290064", - "public_key":"aB44YfzW24VDEJQ2UuLPV2PvqcPCSoLnL7y5M1EzhdW4LnK5xMS3", - "amount":"1000000" + "id": 1, + "command": "channel_verify", + "channel_id": "5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3", + "signature": "304402204EF0AFB78AC23ED1C472E74F4299C0C21F1B21D07EFC0A3838A420F76D783A400220154FB11B6F54320666E4C36CA7F686C16A3A0456800BBC43746F34AF50290064", + "public_key": "aB44YfzW24VDEJQ2UuLPV2PvqcPCSoLnL7y5M1EzhdW4LnK5xMS3", + "amount": "1000000" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method":"channel_verify", - "params":[{ - "channel_id":"5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3", - "signature":"304402204EF0AFB78AC23ED1C472E74F4299C0C21F1B21D07EFC0A3838A420F76D783A400220154FB11B6F54320666E4C36CA7F686C16A3A0456800BBC43746F34AF50290064", - "public_key":"aB44YfzW24VDEJQ2UuLPV2PvqcPCSoLnL7y5M1EzhdW4LnK5xMS3", - "amount":"1000000" - }] + "method": "channel_verify", + "params": [ + { + "channel_id": "5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3", + "signature": "304402204EF0AFB78AC23ED1C472E74F4299C0C21F1B21D07EFC0A3838A420F76D783A400220154FB11B6F54320666E4C36CA7F686C16A3A0456800BBC43746F34AF50290064", + "public_key": "aB44YfzW24VDEJQ2UuLPV2PvqcPCSoLnL7y5M1EzhdW4LnK5xMS3", + "amount": "1000000" + } + ] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh #Syntax: channel_verify rippled channel_verify aB44YfzW24VDEJQ2UuLPV2PvqcPCSoLnL7y5M1EzhdW4LnK5xMS3 5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3 1000000 304402204EF0AFB78AC23ED1C472E74F4299C0C21F1B21D07EFC0A3838A420F76D783A400220154FB11B6F54320666E4C36CA7F686C16A3A0456800BBC43746F34AF50290064 ``` + {% /tab %} {% /tabs %} リクエストには以下のパラメーターが含まれます。 -| フィールド | 型 | 説明 | -|-------|------|-------------| -| `amount` | 文字列 | 指定された`signature`で承認する[XRP、drop単位][]の額。 | -| `channel_id` | 文字列 | XRPを供給するChannelのChannel ID。これは64文字の16進文字列です。 | +| フィールド | 型 | 説明 | +| ------------ | ------ | ----------------------------------------------------------------------------------------------------------------------------------------- | +| `amount` | 文字列 | 指定された`signature`で承認する[XRP、drop単位][]の額。 | +| `channel_id` | 文字列 | XRPを供給するChannelのChannel ID。これは64文字の16進文字列です。 | | `public_key` | 文字列 | Channelの公開鍵と、署名の作成に使用されたキーペア(16進数またはXRP Ledgerの[base58][]形式)。[更新: rippled 0.90.0][新規: rippled 0.90.0] | -| `signature` | 文字列 | 検証する署名(16進数)。 | +| `signature` | 文字列 | 検証する署名(16進数)。 | ## レスポンスのフォーマット @@ -70,19 +81,22 @@ rippled channel_verify aB44YfzW24VDEJQ2UuLPV2PvqcPCSoLnL7y5M1EzhdW4LnK5xMS3 5DB0 {% tabs %} {% tab label="WebSocket" %} + ```json { - "id":1, - "status":"success", - "type":"response", - "result":{ - "signature_verified":true - } + "id": 1, + "status": "success", + "type": "response", + "result": { + "signature_verified": true + } } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -93,35 +107,38 @@ rippled channel_verify aB44YfzW24VDEJQ2UuLPV2PvqcPCSoLnL7y5M1EzhdW4LnK5xMS3 5DB0 } } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```json { - "result":{ - "signature_verified":true, - "status":"success" - } + "result": { + "signature_verified": true, + "status": "success" + } } ``` + {% /tab %} {% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 -| フィールド | 型 | 説明 | -|-------|------|-------------| +| フィールド | 型 | 説明 | +| -------------------- | -------- | --------------------------------------------------------------- | | `signature_verified` | ブール値 | `true`の場合、示されている額、Channel、公開鍵で署名が有効です。 | {% admonition type="warning" name="注意" %}これは、Channelに十分なXRPが割り当てられていることを確認するものではありません。クレームが有効であると判断する前に、最新の検証済みレジャーでこのChannelを調べ、このChannelがオープンでありその`amount`の値がクレームの`amount`以上であることを確認してください。このためには[account_channelsメソッド][]を使用します。{% /admonition %} ## 考えられるエラー -* [汎用エラータイプ][]のすべて。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* `publicMalformed` - リクエストの`public_key`フィールドが、正しいフォーマットの有効な公開鍵ではありません。公開鍵は33バイトであり、base58または16進数で表記されている必要があります。[アカウントの公開鍵のbase58表現は文字`a`から始まります](../../../protocol/data-types/base58-encodings.md)。16進表現は66文字です。 -* `channelMalformed` - リクエストの`channel_id`フィールドが有効なChannel IDではありません。Channel IDは256ビット(64文字)の16進文字列である必要があります。 -* `channelAmtMalformed` - リクエストの`amount`に指定された値が、有効な[XRPの額][XRP、drop単位]ではありませんでした。 +- [汎用エラータイプ][]のすべて。 +- `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 +- `publicMalformed` - リクエストの`public_key`フィールドが、正しいフォーマットの有効な公開鍵ではありません。公開鍵は33バイトであり、base58または16進数で表記されている必要があります。[アカウントの公開鍵のbase58表現は文字`a`から始まります](../../../protocol/data-types/base58-encodings.md)。16進表現は66文字です。 +- `channelMalformed` - リクエストの`channel_id`フィールドが有効なChannel IDではありません。Channel IDは256ビット(64文字)の16進文字列である必要があります。 +- `channelAmtMalformed` - リクエストの`amount`に指定された値が、有効な[XRPの額][XRP、drop単位]ではありませんでした。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/payment-channel-methods/index.md b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/payment-channel-methods/index.md index 51e2ab7c78..e47be16424 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/payment-channel-methods/index.md +++ b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/payment-channel-methods/index.md @@ -4,9 +4,9 @@ parent: public-api-methods.html metadata: indexPage: true --- + # Payment Channelメソッド Payment Channelは、2者間で繰り返される一方向の支払いや一時的な与信を可能にするためのツールです。これらのメソッドを使用して、Payment Channelを使用することができます。 - {% child-pages /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/server-info-methods/fee.md b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/server-info-methods/fee.md index 6ea6b5769e..c8ae383884 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/server-info-methods/fee.md +++ b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/server-info-methods/fee.md @@ -2,11 +2,13 @@ html: fee.html parent: server-info-methods.html seo: - description: トランザクションコストに関するオープンレジャーの要件の現在の状態を報告します。 + description: トランザクションコストに関するオープンレジャーの要件の現在の状態を報告します。 labels: - 手数料 --- + # fee + [[ソース]](https://github.com/XRPLF/rippled/blob/release/src/ripple/rpc/handlers/Fee1.cpp "Source") `fee`コマンドは、[トランザクションコスト](../../../../concepts/transactions/transaction-cost.md)に関するオープンレジャーの要件の現在の状態を報告します。このコマンドを使用するには、[FeeEscalation Amendment][]が有効になっている必要があります。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.31.0" %}新規: rippled 0.31.0{% /badge %} @@ -14,33 +16,40 @@ labels: これは権限のないユーザが使用できるパブリックコマンドです。[更新: rippled 0.32.0][新規: rippled 0.32.0] ## リクエストのフォーマット + リクエストのフォーマットの例: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id":"fee_websocket_example", - "command":"fee" + "id": "fee_websocket_example", + "command": "fee" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method":"fee", - "params":[{}] + "method": "fee", + "params": [{}] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh #Syntax: fee rippled fee ``` + {% /tab %} {% /tabs %} @@ -54,35 +63,38 @@ rippled fee {% tabs %} {% tab label="WebSocket" %} + ```json { - "id":"fee_websocket_example", - "status":"success", - "type":"response", - "result":{ - "current_ledger_size":"14", - "current_queue_size":"0", - "drops":{ - "base_fee":"10", - "median_fee":"11000", - "minimum_fee":"10", - "open_ledger_fee":"10" - }, - "expected_ledger_size":"24", - "ledger_current_index":26575101, - "levels":{ - "median_level":"281600", - "minimum_level":"256", - "open_ledger_level":"256", - "reference_level":"256" - }, - "max_queue_size":"480" - } + "id": "fee_websocket_example", + "status": "success", + "type": "response", + "result": { + "current_ledger_size": "14", + "current_queue_size": "0", + "drops": { + "base_fee": "10", + "median_fee": "11000", + "minimum_fee": "10", + "open_ledger_fee": "10" + }, + "expected_ledger_size": "24", + "ledger_current_index": 26575101, + "levels": { + "median_level": "281600", + "minimum_level": "256", + "open_ledger_level": "256", + "reference_level": "256" + }, + "max_queue_size": "480" + } } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -109,9 +121,11 @@ rippled fee } } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```json Loading:"/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -139,36 +153,37 @@ Connecting to 127.0.0.1:5005 } } ``` + {% /tab %} {% /tabs %} このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 -| `Field` | 型 | 説明 | -|:---------------------------|:-----------------|:-----------------------------| -| `current_ledger_size` | 文字列(整数) | 進行中のレジャーに暫定的に含まれているトランザクションの数。 | -| `current_queue_size` | 文字列(整数) | 次のレジャーに追加するためにキューに入れられたトランザクションの数。 | -| `drops` | オブジェクト | [XRPのdrop数][]で表されるトランザクションコスト(トランザクションの`Fee`フィールド)に関するさまざまな情報 。 | -| `drops.base_fee` | 文字列(整数) | 最小限の負荷でレジャーに[リファレンストランザクション](../../../../concepts/transactions/transaction-cost.md#referenceトランザクションコスト)を追加するのに必要なトランザクションコスト(XRPのdrop数)。 | -| `drops.median_fee` | 文字列(整数) | 前の検証済みレジャーに含まれているトランザクションのトランザクションコストのおおよその中央値(XRPのdrop数)。 | +| `Field` | 型 | 説明 | +| :------------------------- | :------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `current_ledger_size` | 文字列(整数) | 進行中のレジャーに暫定的に含まれているトランザクションの数。 | +| `current_queue_size` | 文字列(整数) | 次のレジャーに追加するためにキューに入れられたトランザクションの数。 | +| `drops` | オブジェクト | [XRPのdrop数][]で表されるトランザクションコスト(トランザクションの`Fee`フィールド)に関するさまざまな情報 。 | +| `drops.base_fee` | 文字列(整数) | 最小限の負荷でレジャーに[リファレンストランザクション](../../../../concepts/transactions/transaction-cost.md#referenceトランザクションコスト)を追加するのに必要なトランザクションコスト(XRPのdrop数)。 | +| `drops.median_fee` | 文字列(整数) | 前の検証済みレジャーに含まれているトランザクションのトランザクションコストのおおよその中央値(XRPのdrop数)。 | | `drops.minimum_fee` | 文字列(整数) | 後のレジャーのキューに[リファレンストランザクション](../../../../concepts/transactions/transaction-cost.md#referenceトランザクションコスト)を入れる際の最少トランザクションコスト(XRPのdrop数)。`base_fee`より大きい場合、トランザクションキューは一杯になっています。 | -| `drops.open_ledger_fee` | 文字列(整数) | 現在のオープンレジャーに[リファレンストランザクション](../../../../concepts/transactions/transaction-cost.md#referenceトランザクションコスト)を追加する際に支払う必要がある最少トランザクションコスト(XRPのdrop数)。 | -| `expected_ledger_size` | 文字列(整数) | 現行レジャーへ追加される見込みのトランザクションの概数。これは前のレジャーのトランザクション数に基づいています。 | -| `ledger_current_index` | 数値 | これらのステータスにより示される現行オープンレジャーの[レジャーインデックス][]。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.50.0" %}新規: rippled 0.50.0{% /badge %} | -| `levels` | オブジェクト | トランザクションコスト([手数料レベル][])に関するさまざまな情報。手数料レベルの比率は、その特定トランザクションの最少コストを基準にすべてのトランザクションに適用されます。 | -| `levels.median_level` | 文字列(整数) | 前の検証済みレジャーに含まれているトランザクションのトランザクションコストの中央値([手数料レベル][])。 | -| `levels.minimum_level` | 文字列(整数) | 今後のレジャーのキューに入れるのに必要となる最少トランザクションコスト([手数料レベル][])。 | -| `levels.open_ledger_level` | 文字列(整数) | 現行オープンレジャーにトランザクションを追加するのに必要な最少トランザクションコスト([手数料レベル][])。 | -| `levels.reference_level` | 文字列(整数) | 最少トランザクションコストに相当します([手数料レベル][]で表現されます)。 | -| `max_queue_size` | 文字列(整数) | [トランザクションキュー](../../../../concepts/transactions/transaction-cost.md#キューに入れられたトランザクション)で現在保持できるトランザクションの最大数。 | +| `drops.open_ledger_fee` | 文字列(整数) | 現在のオープンレジャーに[リファレンストランザクション](../../../../concepts/transactions/transaction-cost.md#referenceトランザクションコスト)を追加する際に支払う必要がある最少トランザクションコスト(XRPのdrop数)。 | +| `expected_ledger_size` | 文字列(整数) | 現行レジャーへ追加される見込みのトランザクションの概数。これは前のレジャーのトランザクション数に基づいています。 | +| `ledger_current_index` | 数値 | これらのステータスにより示される現行オープンレジャーの[レジャーインデックス][]。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.50.0" %}新規: rippled 0.50.0{% /badge %} | +| `levels` | オブジェクト | トランザクションコスト([手数料レベル][])に関するさまざまな情報。手数料レベルの比率は、その特定トランザクションの最少コストを基準にすべてのトランザクションに適用されます。 | +| `levels.median_level` | 文字列(整数) | 前の検証済みレジャーに含まれているトランザクションのトランザクションコストの中央値([手数料レベル][])。 | +| `levels.minimum_level` | 文字列(整数) | 今後のレジャーのキューに入れるのに必要となる最少トランザクションコスト([手数料レベル][])。 | +| `levels.open_ledger_level` | 文字列(整数) | 現行オープンレジャーにトランザクションを追加するのに必要な最少トランザクションコスト([手数料レベル][])。 | +| `levels.reference_level` | 文字列(整数) | 最少トランザクションコストに相当します([手数料レベル][]で表現されます)。 | +| `max_queue_size` | 文字列(整数) | [トランザクションキュー](../../../../concepts/transactions/transaction-cost.md#キューに入れられたトランザクション)で現在保持できるトランザクションの最大数。 | ## 考えられるエラー -* [汎用エラータイプ][]のすべて。 - +- [汎用エラータイプ][]のすべて。 + [手数料レベル]: ../../../../concepts/transactions/transaction-cost.md#手数料レベル {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/server-info-methods/index.md b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/server-info-methods/index.md index 859f5e40b3..4dbb12b709 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/server-info-methods/index.md +++ b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/server-info-methods/index.md @@ -4,9 +4,9 @@ parent: public-api-methods.html metadata: indexPage: true --- + # Server Infoメソッド 以下のメソッドを使用して、rippledサーバの現在の状態についての情報を取得することができます。 - {% child-pages /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/server-info-methods/manifest.md b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/server-info-methods/manifest.md index 12d108860b..f48dcd765c 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/server-info-methods/manifest.md +++ b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/server-info-methods/manifest.md @@ -2,16 +2,17 @@ html: manifest.html parent: server-info-methods.html seo: - description: 既知のバリデータに関する公開情報を調べます。 + description: 既知のバリデータに関する公開情報を調べます。 labels: - ブロックチェーン --- + # manifest + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/Manifest.cpp "ソース") {% code-page-name /%}メソッドは、指定したバリデータ公開鍵の現在の"マニフェスト"情報を報告します。"マニフェスト"は、バリデータのマスターキーペアから署名付きの公開鍵(ephemeral signing key)を認証するためのデータブロックです。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.7.0" %}更新: rippled 1.7.0{% /badge %}. - ### リクエストのフォーマット リクエストのフォーマットの例: @@ -19,41 +20,48 @@ labels: {% tabs %} {% tab label="WebSocket" %} + ```json { - "command": "{% $frontmatter.seo.title %}", - "public_key": "nHUFE9prPXPrHcG3SkwP1UzAQbSphqyQkQK9ATXLZsfkezhhda3p" + "command": "{% $frontmatter.seo.title %}", + "public_key": "nHUFE9prPXPrHcG3SkwP1UzAQbSphqyQkQK9ATXLZsfkezhhda3p" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "{% $frontmatter.seo.title %}", - "params": [{ - "public_key":"nHUFE9prPXPrHcG3SkwP1UzAQbSphqyQkQK9ATXLZsfkezhhda3p" - }] + "method": "{% $frontmatter.seo.title %}", + "params": [ + { + "public_key": "nHUFE9prPXPrHcG3SkwP1UzAQbSphqyQkQK9ATXLZsfkezhhda3p" + } + ] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh #Syntax: {% $frontmatter.seo.title %} public_key rippled {% $frontmatter.seo.title %} nHUFE9prPXPrHcG3SkwP1UzAQbSphqyQkQK9ATXLZsfkezhhda3p ``` + {% /tab %} {% /tabs %} リクエストには以下のパラメータが含まれます。 -| `Field` | 型  | 説明 | -|:-------------|:------|:-----------------------------------| +| `Field` | 型   | 説明 | +| :----------- | :----- | :----------------------------------------------------------------------------------------------------------- | | `public_key` | 文字列 | 検索するバリデータの[base58][]エンコードされた公開鍵。マスター公開鍵あるいはエフェメラル公開鍵を指定します。 | - ### レスポンスのフォーマット 成功したレスポンスの例: @@ -61,6 +69,7 @@ rippled {% $frontmatter.seo.title %} nHUFE9prPXPrHcG3SkwP1UzAQbSphqyQkQK9ATXLZsf {% tabs %} {% tab label="WebSocket" %} + ```json { "result": { @@ -77,9 +86,11 @@ rippled {% $frontmatter.seo.title %} nHUFE9prPXPrHcG3SkwP1UzAQbSphqyQkQK9ATXLZsf "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -97,9 +108,11 @@ rippled {% $frontmatter.seo.title %} nHUFE9prPXPrHcG3SkwP1UzAQbSphqyQkQK9ATXLZsf } } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -118,6 +131,7 @@ Connecting to 127.0.0.1:5005 } } ``` + {% /tab %} {% /tabs %} @@ -126,27 +140,27 @@ Connecting to 127.0.0.1:5005 レスポンスは[標準フォーマット][]に従い、成功した結果には以下のフィールドが含まれます。 -| `Field` | 型 | 説明 | -|:------------|:-----------|:------------------------------------------------------| -| `details` | オブジェクト | _(省略される場合があります)_ このマニフェストに含まれるデータ。サーバがリクエストからの`public_key`に対するマニフェストを持っていない場合は省略されます。その内容の完全な説明については、以下の **オブジェクトの詳細** をご覧ください。 | -| `manifest` | 文字列 | _(省略される場合があります)_ base64形式の完全なマニフェストデータ。このデータは[シリアライズ](../../../protocol/binary-format.md)され、base64エンコードされる前にバイナリになります。サーバがリクエストからの`public_key`に対するマニフェストを持っていない場合は省略されます。 | -| `requested` | 文字列 | リクエストの`public_key`。 | +| `Field` | 型 | 説明 | +| :---------- | :----------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `details` | オブジェクト | _(省略される場合があります)_ このマニフェストに含まれるデータ。サーバがリクエストからの`public_key`に対するマニフェストを持っていない場合は省略されます。その内容の完全な説明については、以下の **オブジェクトの詳細** をご覧ください。 | +| `manifest` | 文字列 | _(省略される場合があります)_ base64形式の完全なマニフェストデータ。このデータは[シリアライズ](../../../protocol/binary-format.md)され、base64エンコードされる前にバイナリになります。サーバがリクエストからの`public_key`に対するマニフェストを持っていない場合は省略されます。 | +| `requested` | 文字列 | リクエストの`public_key`。 | #### オブジェクトの詳細 もし指定された場合、`details`オブジェクトは以下のフィールドを含みます。 -| `Field` | 型 | 説明 | -|:----------------|:------|:--------------------------------------------------| -| `domain` | 文字列 | このバリデータが関連していると示すドメイン名。マニフェストにドメインが含まれていない場合、これは空文字列になります。 | -| `ephemeral_key` | 文字列 | このバリデータのエフェメラル公開鍵を、[base58][]で指定します。 | -| `master_key` | 文字列 | このバリデータのマスター公開鍵を、[base58][]で指定します。 | +| `Field` | 型 | 説明 | +| :-------------- | :----- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `domain` | 文字列 | このバリデータが関連していると示すドメイン名。マニフェストにドメインが含まれていない場合、これは空文字列になります。 | +| `ephemeral_key` | 文字列 | このバリデータのエフェメラル公開鍵を、[base58][]で指定します。 | +| `master_key` | 文字列 | このバリデータのマスター公開鍵を、[base58][]で指定します。 | | `seq` | 数値 | このマニフェストのシーケンス番号。この番号は、バリデータのオペレータがバリデータのトークンを更新してエフェメラルキーをローテーションしたり、設定を変更したりするたびに増加します。 | - ## 考えられるエラー -* いずれかの[汎用エラータイプ][]。 -- `invalidParams` - `public_key`フィールドが見つからないか、正しく指定されていません。 +- いずれかの[汎用エラータイプ][]。 + +* `invalidParams` - `public_key`フィールドが見つからないか、正しく指定されていません。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/server-info-methods/server_definitions.md b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/server-info-methods/server_definitions.md index eb7710077b..ad9c9e073c 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/server-info-methods/server_definitions.md +++ b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/server-info-methods/server_definitions.md @@ -2,37 +2,42 @@ html: server_definitions.html parent: server-info-methods.html seo: - description: 実行中の`rippled`インスタンスから生成されるSDK互換の`definitions.json`を取得します。 + description: 実行中の`rippled`インスタンスから生成されるSDK互換の`definitions.json`を取得します。 labels: - コアサーバ --- + # server_definitions [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/ServerInfo.cpp#L43 "ソース") `server_definitions`コマンドは実行中の`rippled`インスタンスから生成されたSDK互換の`definitions.json`を返します。これを使用してネットワーク上のノードにアクセスし、そのバイナリデータをシリアライズ/デシリアライズするために必要な定義を受け取ることができます。 - ## リクエストのフォーマット + リクエストのフォーマットの例: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 2, "command": "server_definitions" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { "method": "server_definitions" } ``` + {% /tab %} {% /tabs %} @@ -41,7 +46,6 @@ labels: リクエストにパラメータは含まれません。 - ## レスポンスのフォーマット レスポンスのフォーマットの例: @@ -49,6 +53,7 @@ labels: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 1, @@ -99,13 +104,13 @@ labels: } } ``` + {% /tab %} {% /tabs %} 完全な`definitions.json`ファイルとトップレベルフィールドの説明を見るには、[定義ファイル](../../../protocol/binary-format.md#定義ファイル)をご覧ください。 - ## 考えられるエラー いずれかの汎用エラータイプ。 diff --git a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/server-info-methods/server_info.md b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/server-info-methods/server_info.md index 5f9f175a1f..4f5df8ba76 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/server-info-methods/server_info.md +++ b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/server-info-methods/server_info.md @@ -2,45 +2,52 @@ html: server_info.html parent: server-info-methods.html seo: - description: サーバについての各種情報を、人間が読めるフォーマットでサーバにリクエストします。 + description: サーバについての各種情報を、人間が読めるフォーマットでサーバにリクエストします。 labels: - コアサーバ --- + # server_info (rippled) + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/ServerInfo.cpp "Source") `server_info`コマンドは、問い合わせ中の`rippled`サーバについての各種情報を、人間が読めるフォーマットでサーバにリクエストします。[Clioサーバ](../../../../concepts/networks-and-servers/the-clio-server.md)については、[`server_info` (Clio)](../clio-methods/server_info-clio.md)をご覧ください。 ## リクエストのフォーマット + リクエストのフォーマットの例: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 1, "command": "server_info" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "server_info", - "params": [ - {} - ] + "method": "server_info", + "params": [{}] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh #Syntax: server_info rippled server_info ``` + {% /tab %} {% /tabs %} @@ -73,52 +80,52 @@ rippled server_info `info`オブジェクトは以下のフィールドを含むことがあります。 -| `Field` | 型 | 説明 | -|:------------------------------------|:-----------|:-----------| -| `amendment_blocked` | 真偽値 | _(省略される場合があります)_`true`の場合、このサーバは[Amendmentブロック](../../../../concepts/networks-and-servers/amendments.md#amendment-blocked)の状態です。サーバがAmendmentブロックの状態でない場合、このフィールドはレスポンスから省略されます。 | -| `build_version` | 文字列 | 実行中の`rippled`のバージョン番号。 | -| `closed_ledger` | オブジェクト | (省略される場合があります)コンセンサスによってまだ検証されていない、最も最近更新を閉鎖したレジャーについての情報。最新の検証済みレジャーが使用可能な場合、このフィールドはレスポンスで省略され、代わりに`validated_ledger`が含まれます。メンバーフィールドは`validated_ledger`フィールドと同じです。 | -| `complete_ledgers` | 文字列 | ローカル`rippled`がデータベース内に有するレジャーのバージョンのシーケンス番号の範囲を示す表現。例えば、`24900901-24900984,24901116-24901158`のように、互いに素なシーケンスの場合があります。サーバに完全なレジャーがない場合(例えば、ネットワークとの同期を始めたばかりの場合)、文字列`empty`になります。 | -| `hostid` | 文字列 | adminリクエストの場合、`rippled`インスタンスを実行するサーバのホスト名が返されます。それ以外のリクエストの場合、一意の4文字の単語が返されます。 | -| `io_latency_ms` | 数値 | I/O処理の待ち時間(ミリ秒単位)。この数値がそれほど低くない場合、`rippled`サーバは深刻な負荷の問題を抱えている可能性があります。 | -| `jq_trans_overflow` | 文字列-数値 | このサーバが一度に処理待ちのトランザクションが250回を超えた回数(起動以来)。この数値が大きい場合、サーバがXRP Ledgerネットワークのトランザクション負荷に対応できていない可能性があります。将来を見据えたサーバの詳細な推奨仕様については、[容量の計画](../../../../infrastructure/installation/capacity-planning.md)をご覧ください。 | -| `last_close` | オブジェクト | サーバが最後にレジャーを閉鎖したときの情報。これには、コンセンサスの取得に要した時間や、参加した信頼できるバリデータ(検証者)の数が含まれます。 | -| `last_close.converge_time_s` | 数値 | 直近で検証されたレジャーバージョンでコンセンサスに達するまでにかかった時間(秒)。 | -| `last_close.proposers` | 数値 | 直近に検証されたレジャーバージョンのコンセンサスプロセスで、サーバが考慮した信頼できるバリデータの数(バリデータとして設定されている場合は自分自身を含む)。 | -| `load` | オブジェクト | _(管理者のみ)_ サーバの現在の負荷状態についての詳細な情報。 | -| `load.job_types` | 配列 | _(管理者のみ)_ サーバが実行している各種ジョブのレートや、各ジョブにかかる時間についての情報。 | -| `load.threads` | 数値 | _(管理者のみ)_ サーバの主要なジョブプール内のスレッドの数。 | -| `load_factor` | 数値 | サーバが現在実行中の、負荷スケーリングされたオープンレジャートランザクションコストを、基本トランザクションコストに適用される乗数として示したもの。例えば、負荷係数`1000`でリファレンストランザクションコストが10 dropである場合、負荷スケーリングされたトランザクションコストは10,000 drop(0.01 XRP)です。負荷係数は、[個々のサーバの負荷係数](../../../../concepts/transactions/transaction-cost.md#ローカル負荷コスト)の最高値、クラスターの負荷係数、[オープンレジャーコスト](../../../../concepts/transactions/transaction-cost.md#オープンレジャーコスト)、ネットワーク全体の負荷係数によって決まります。 | -| `load_factor_local` | 数値 | (省略される場合があります)このサーバに対する負荷に基づく、[トランザクションコスト][]に適用される現在の乗数。 | -| `load_factor_net` | 数値 | (省略される場合があります)ネットワークのその他の部分で使用されている、[トランザクションコスト][]に適用される現在の乗数(他のサーバから報告された負荷値から推定します)。 | -| `load_factor_cluster` | 数値 | (省略される場合があります)[このクラスター](../../../../concepts/networks-and-servers/clustering.md)内のサーバに対する負荷に基づく、[トランザクションコスト][]に適用される現在の乗数。 | -| `load_factor_fee_escalation` | 数値 | (省略される場合があります)オープンレジャーに入るために取引が支払う必要がある[トランザクションコスト][]に適用される現在の乗数。 | -| `load_factor_fee_queue` | 数値 | (省略される場合があります)キューが一杯になっている場合に、キューに入るために取引が支払う必要がある[トランザクションコスト][]に適用される現在の乗数。 | -| `load_factor_server` | 数値 | (省略される場合があります)サーバが実施中の負荷係数。[オープンレジャーコスト](../../../../concepts/transactions/transaction-cost.md#オープンレジャーコスト)は含まれません。 | -| `peers` | 数値 | このサーバが現在接続している、他の`rippled`サーバの数。 | -| `ports` | 配列 | サーバがAPIコマンドを待ち受けているポートの一覧。配列の各エントリは[ポート記述子オブジェクト](#ポート記述子オブジェクト) となります。 {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.12.0" %}新規: rippled 1.12.0{% /badge %} | -| `pubkey_node` | 文字列 | ピアツーピア通信の中でこのサーバを検証するために使用する公開鍵。この _ノードのキーペア_ は、サーバを初めて起動すると自動的に生成されます。(削除された場合、サーバは新たなキーペアを作成できます。)構成ファイルにて`[node_seed]`設定オプションを使用すると、永続値を設定できます。これは[クラスター化](../../../../concepts/networks-and-servers/clustering.md)に便利です。 | -| `pubkey_validator` | 文字列 | _(管理者のみ)_ このノードがレジャーの検証の署名に使用する公開鍵。この _検証キーペア_ は、`[validator_token]`または`[validation_seed]`設定フィールドにて生成されます。 | -| `reporting` | オブジェクト | _([レポートモード](../../../../concepts/networks-and-servers/rippled-server-modes.md)サーバのみ)_ このサーバのレポートモード固有の設定に関する情報。 | -| `reporting.etl_sources` | 配列 | _([レポートモード](../../../../concepts/networks-and-servers/rippled-server-modes.md)サーバのみ)_ このレポートモードがデータを取得するP2Pモードサーバのリスト。この配列の各エントリは[ETLソースオブジェクト](#etlソースオブジェクト)です。 | -| `reporting.is_writer` | 真偽値 | _([レポートモード](../../../../concepts/networks-and-servers/rippled-server-modes.md)サーバのみ)_ `true`の場合、このサーバは外部データベースにレジャーデータを書き込んでいます。`false`の場合、他のレポートモードサーバが共有データベースにデータを書き込んでいるか、読み取り専用に設定されているため、現在は書き込んでいません。 | -| `reporting.last_publish_time` | 文字列 | _([レポートモード](../../../../concepts/networks-and-servers/rippled-server-modes.md)サーバのみ)_このサーバが最後に有効なレジャーを[サブスクリプションストリーム](../subscription-methods/subscribe.md)に公開した日時を示すISO 8601タイムスタンプ。 | -| `server_state` | 文字列 | サーバのネットワークへの参加の度合いを示す文字列。詳細は、[考えられるサーバの状態](../../api-conventions/rippled-server-states.md)をご覧ください。 | -| `server_state_duration_us` | 数値 | サーバが現在の状態になってから経過したマイクロ秒数。 | -| `state_accounting` | オブジェクト | 各種[サーバ状態](../../api-conventions/rippled-server-states.md)のマップと、サーバが各状態に費やした時間についての情報。これは、サーバのネットワーク接続について長期的な健全性を追跡するのに便利です。 | -| `state_accounting.*.duration_us` | 文字列 | サーバがこの状態になってから費やしたマイクロ秒数。(サーバが別の状態に移行するたびに更新されます。) | -| `state_accounting.*.transitions` | 文字列 | サーバがこの状態に移行した回数。 | -| `time` | 文字列 | サーバの時計によるUTCでの現在時刻。 | -| `uptime` | 数値 | サーバが連続して稼働している秒数。 | -| `validated_ledger` | オブジェクト | (省略される場合があります)完全に検証された最新のレジャーについての情報。最新の検証済みレジャーが使用できない場合、このフィールドはレスポンスにて省略され、代わりに`closed_ledger`が含まれます。 | -| `validated_ledger.age` | 数値 | レジャーの閉鎖以降の秒数。 | -| `validated_ledger.base_fee_xrp` | 数値 | XRP単位の基本手数料。0.00005の場合は、`1e-05`などの科学的記数法で表すことができます。 | -| `validated_ledger.hash` | 文字列 | 16進数で表された、レジャーの一意のハッシュ | -| `validated_ledger.reserve_base_xrp` | 符号なし整数 | すべてのアカウントで準備金として保有しておく必要があるXRPの最少額(drop数ではありません) | -| `validated_ledger.reserve_inc_xrp` | 符号なし整数 | アカウントがレジャー内に保有するオブジェクトごとのアカウント準備金に追加するXRP額(drop数ではありません) | -| `validated_ledger.seq` | 数値 | 最新の検証済みレジャーのレジャーインデックス | -| `validation_quorum` | 数値 | レジャーバージョンの検証に、最低限必要となる信頼できる検証の数。場合によっては、サーバがさらに検証をリクエストする場合があります。 | -| `validator_list_expires` | 文字列 | _(管理者のみ)_ 現在のバリデータリストの有効期限が切れるタイミングを人間が読み取れる時間でを表示、または、サーバが発行済みのバリデータリストをロードしていない場合は文字列`unknown`、サーバが静的なバリデータリストを使用する場合は文字列`never`のいずれかを表示します。 | +| `Field` | 型 | 説明 | +| :---------------------------------- | :----------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `amendment_blocked` | 真偽値 | _(省略される場合があります)_`true`の場合、このサーバは[Amendmentブロック](../../../../concepts/networks-and-servers/amendments.md#amendment-blocked)の状態です。サーバがAmendmentブロックの状態でない場合、このフィールドはレスポンスから省略されます。 | +| `build_version` | 文字列 | 実行中の`rippled`のバージョン番号。 | +| `closed_ledger` | オブジェクト | (省略される場合があります)コンセンサスによってまだ検証されていない、最も最近更新を閉鎖したレジャーについての情報。最新の検証済みレジャーが使用可能な場合、このフィールドはレスポンスで省略され、代わりに`validated_ledger`が含まれます。メンバーフィールドは`validated_ledger`フィールドと同じです。 | +| `complete_ledgers` | 文字列 | ローカル`rippled`がデータベース内に有するレジャーのバージョンのシーケンス番号の範囲を示す表現。例えば、`24900901-24900984,24901116-24901158`のように、互いに素なシーケンスの場合があります。サーバに完全なレジャーがない場合(例えば、ネットワークとの同期を始めたばかりの場合)、文字列`empty`になります。 | +| `hostid` | 文字列 | adminリクエストの場合、`rippled`インスタンスを実行するサーバのホスト名が返されます。それ以外のリクエストの場合、一意の4文字の単語が返されます。 | +| `io_latency_ms` | 数値 | I/O処理の待ち時間(ミリ秒単位)。この数値がそれほど低くない場合、`rippled`サーバは深刻な負荷の問題を抱えている可能性があります。 | +| `jq_trans_overflow` | 文字列-数値 | このサーバが一度に処理待ちのトランザクションが250回を超えた回数(起動以来)。この数値が大きい場合、サーバがXRP Ledgerネットワークのトランザクション負荷に対応できていない可能性があります。将来を見据えたサーバの詳細な推奨仕様については、[容量の計画](../../../../infrastructure/installation/capacity-planning.md)をご覧ください。 | +| `last_close` | オブジェクト | サーバが最後にレジャーを閉鎖したときの情報。これには、コンセンサスの取得に要した時間や、参加した信頼できるバリデータ(検証者)の数が含まれます。 | +| `last_close.converge_time_s` | 数値 | 直近で検証されたレジャーバージョンでコンセンサスに達するまでにかかった時間(秒)。 | +| `last_close.proposers` | 数値 | 直近に検証されたレジャーバージョンのコンセンサスプロセスで、サーバが考慮した信頼できるバリデータの数(バリデータとして設定されている場合は自分自身を含む)。 | +| `load` | オブジェクト | _(管理者のみ)_ サーバの現在の負荷状態についての詳細な情報。 | +| `load.job_types` | 配列 | _(管理者のみ)_ サーバが実行している各種ジョブのレートや、各ジョブにかかる時間についての情報。 | +| `load.threads` | 数値 | _(管理者のみ)_ サーバの主要なジョブプール内のスレッドの数。 | +| `load_factor` | 数値 | サーバが現在実行中の、負荷スケーリングされたオープンレジャートランザクションコストを、基本トランザクションコストに適用される乗数として示したもの。例えば、負荷係数`1000`でリファレンストランザクションコストが10 dropである場合、負荷スケーリングされたトランザクションコストは10,000 drop(0.01 XRP)です。負荷係数は、[個々のサーバの負荷係数](../../../../concepts/transactions/transaction-cost.md#ローカル負荷コスト)の最高値、クラスターの負荷係数、[オープンレジャーコスト](../../../../concepts/transactions/transaction-cost.md#オープンレジャーコスト)、ネットワーク全体の負荷係数によって決まります。 | +| `load_factor_local` | 数値 | (省略される場合があります)このサーバに対する負荷に基づく、[トランザクションコスト][]に適用される現在の乗数。 | +| `load_factor_net` | 数値 | (省略される場合があります)ネットワークのその他の部分で使用されている、[トランザクションコスト][]に適用される現在の乗数(他のサーバから報告された負荷値から推定します)。 | +| `load_factor_cluster` | 数値 | (省略される場合があります)[このクラスター](../../../../concepts/networks-and-servers/clustering.md)内のサーバに対する負荷に基づく、[トランザクションコスト][]に適用される現在の乗数。 | +| `load_factor_fee_escalation` | 数値 | (省略される場合があります)オープンレジャーに入るために取引が支払う必要がある[トランザクションコスト][]に適用される現在の乗数。 | +| `load_factor_fee_queue` | 数値 | (省略される場合があります)キューが一杯になっている場合に、キューに入るために取引が支払う必要がある[トランザクションコスト][]に適用される現在の乗数。 | +| `load_factor_server` | 数値 | (省略される場合があります)サーバが実施中の負荷係数。[オープンレジャーコスト](../../../../concepts/transactions/transaction-cost.md#オープンレジャーコスト)は含まれません。 | +| `peers` | 数値 | このサーバが現在接続している、他の`rippled`サーバの数。 | +| `ports` | 配列 | サーバがAPIコマンドを待ち受けているポートの一覧。配列の各エントリは[ポート記述子オブジェクト](#ポート記述子オブジェクト) となります。 {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.12.0" %}新規: rippled 1.12.0{% /badge %} | +| `pubkey_node` | 文字列 | ピアツーピア通信の中でこのサーバを検証するために使用する公開鍵。この _ノードのキーペア_ は、サーバを初めて起動すると自動的に生成されます。(削除された場合、サーバは新たなキーペアを作成できます。)構成ファイルにて`[node_seed]`設定オプションを使用すると、永続値を設定できます。これは[クラスター化](../../../../concepts/networks-and-servers/clustering.md)に便利です。 | +| `pubkey_validator` | 文字列 | _(管理者のみ)_ このノードがレジャーの検証の署名に使用する公開鍵。この _検証キーペア_ は、`[validator_token]`または`[validation_seed]`設定フィールドにて生成されます。 | +| `reporting` | オブジェクト | _([レポートモード](../../../../concepts/networks-and-servers/rippled-server-modes.md)サーバのみ)_ このサーバのレポートモード固有の設定に関する情報。 | +| `reporting.etl_sources` | 配列 | _([レポートモード](../../../../concepts/networks-and-servers/rippled-server-modes.md)サーバのみ)_ このレポートモードがデータを取得するP2Pモードサーバのリスト。この配列の各エントリは[ETLソースオブジェクト](#etlソースオブジェクト)です。 | +| `reporting.is_writer` | 真偽値 | _([レポートモード](../../../../concepts/networks-and-servers/rippled-server-modes.md)サーバのみ)_ `true`の場合、このサーバは外部データベースにレジャーデータを書き込んでいます。`false`の場合、他のレポートモードサーバが共有データベースにデータを書き込んでいるか、読み取り専用に設定されているため、現在は書き込んでいません。 | +| `reporting.last_publish_time` | 文字列 | *([レポートモード](../../../../concepts/networks-and-servers/rippled-server-modes.md)サーバのみ)*このサーバが最後に有効なレジャーを[サブスクリプションストリーム](../subscription-methods/subscribe.md)に公開した日時を示すISO 8601タイムスタンプ。 | +| `server_state` | 文字列 | サーバのネットワークへの参加の度合いを示す文字列。詳細は、[考えられるサーバの状態](../../api-conventions/rippled-server-states.md)をご覧ください。 | +| `server_state_duration_us` | 数値 | サーバが現在の状態になってから経過したマイクロ秒数。 | +| `state_accounting` | オブジェクト | 各種[サーバ状態](../../api-conventions/rippled-server-states.md)のマップと、サーバが各状態に費やした時間についての情報。これは、サーバのネットワーク接続について長期的な健全性を追跡するのに便利です。 | +| `state_accounting.*.duration_us` | 文字列 | サーバがこの状態になってから費やしたマイクロ秒数。(サーバが別の状態に移行するたびに更新されます。) | +| `state_accounting.*.transitions` | 文字列 | サーバがこの状態に移行した回数。 | +| `time` | 文字列 | サーバの時計によるUTCでの現在時刻。 | +| `uptime` | 数値 | サーバが連続して稼働している秒数。 | +| `validated_ledger` | オブジェクト | (省略される場合があります)完全に検証された最新のレジャーについての情報。最新の検証済みレジャーが使用できない場合、このフィールドはレスポンスにて省略され、代わりに`closed_ledger`が含まれます。 | +| `validated_ledger.age` | 数値 | レジャーの閉鎖以降の秒数。 | +| `validated_ledger.base_fee_xrp` | 数値 | XRP単位の基本手数料。0.00005の場合は、`1e-05`などの科学的記数法で表すことができます。 | +| `validated_ledger.hash` | 文字列 | 16進数で表された、レジャーの一意のハッシュ | +| `validated_ledger.reserve_base_xrp` | 符号なし整数 | すべてのアカウントで準備金として保有しておく必要があるXRPの最少額(drop数ではありません) | +| `validated_ledger.reserve_inc_xrp` | 符号なし整数 | アカウントがレジャー内に保有するオブジェクトごとのアカウント準備金に追加するXRP額(drop数ではありません) | +| `validated_ledger.seq` | 数値 | 最新の検証済みレジャーのレジャーインデックス | +| `validation_quorum` | 数値 | レジャーバージョンの検証に、最低限必要となる信頼できる検証の数。場合によっては、サーバがさらに検証をリクエストする場合があります。 | +| `validator_list_expires` | 文字列 | _(管理者のみ)_ 現在のバリデータリストの有効期限が切れるタイミングを人間が読み取れる時間でを表示、または、サーバが発行済みのバリデータリストをロードしていない場合は文字列`unknown`、サーバが静的なバリデータリストを使用する場合は文字列`never`のいずれかを表示します。 | {% admonition type="info" name="注記" %}`closed_ledger`フィールドがあり、`seq`の値が小さい(8桁未満)場合、`rippled`には現在、ピアツーピアネットワークから取得した検証済みレジャーのコピーがないことを表しています。これは、サーバが現在も同期中である可能性を示しています。接続速度とハードウェア仕様にもよりますが、通常はネットワークとの同期に約5分かかります。{% /admonition %} @@ -128,6 +135,6 @@ rippled server_info ## 考えられるエラー -* いずれかの[汎用エラータイプ][]。 +- いずれかの[汎用エラータイプ][]。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/server-info-methods/server_state.md b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/server-info-methods/server_state.md index 7d8d26bb8a..4cb68db833 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/server-info-methods/server_state.md +++ b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/server-info-methods/server_state.md @@ -2,10 +2,11 @@ html: server_state.html parent: server-info-methods.html seo: - description: サーバの現在の状態に関するさまざまなマシンが読み取り可能な情報を問い合わせます。 + description: サーバの現在の状態に関するさまざまなマシンが読み取り可能な情報を問い合わせます。 labels: - コアサーバ --- + # server_state [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/ServerState.cpp "Source") @@ -15,11 +16,13 @@ labels: The [Clio server](../../../../concepts/networks-and-servers/the-clio-server.md) does not support `server_state` directly, but you can ask for the `server_state` of the `rippled` server that Clio is connected to. Specify `"ledger_index": "current"` (WebSocket) or `"params": [{"ledger_index": "current"}]` (JSON-RPC). ## リクエストのフォーマット + リクエストのフォーマットの例: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 2, @@ -27,24 +30,27 @@ The [Clio server](../../../../concepts/networks-and-servers/the-clio-server.md) "ledger_index": "current" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { "method": "server_state", - "params": [ - {"ledger_index": "current"} - ] + "params": [{ "ledger_index": "current" }] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh #Syntax: server_state rippled server_state ``` + {% /tab %} {% /tabs %} @@ -60,6 +66,7 @@ rippled server_state {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 1, @@ -124,9 +131,11 @@ rippled server_state "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -193,9 +202,11 @@ Headers } } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```json Loading: "/etc/opt/ripple/rippled.cfg" 2020-Mar-24 01:30:08.646201720 UTC HTTPClient:NFO Connecting to 127.0.0.1:5005 @@ -263,6 +274,7 @@ Headers } } ``` + {% /tab %} {% /tabs %} @@ -271,50 +283,50 @@ Headers `state`オブジェクトには、以下のフィールドが含まれています。 -| `Field` | 型 | 説明 | -|:---------------------------------|:-----------|:-----------------------| -| `amendment_blocked` | 真偽値 | _(省略される場合があります)_`true`の場合、このサーバは[Amendmentブロック](../../../../concepts/networks-and-servers/amendments.md#amendment-blocked)の状態です。サーバがAmendmentブロックではない場合、レスポンスではこのフィールドが省略されます。 | -| `build_version` | 文字列 | 実行中の`rippled`バージョンのバージョン番号。 | -| `complete_ledgers` | 文字列 | ローカルの`rippled`がデータベース内に有するレジャーバージョンのシーケンス番号の範囲を示す表現。例えば、「2500-5000,32570-7695432」のように互いに素なシーケンスの場合があります。サーバに完全なレジャーがない場合(例えば、ネットワークとの同期を始めたばかりの場合)、文字列`empty`になります。 | -| `closed_ledger` | オブジェクト | (省略される場合があります)コンセンサスによって検証されていない、最新の閉鎖済みレジャーに関する情報。最新の検証済みレジャーが使用可能な場合、レスポンスではこのフィールドは省略され、代わりに`validated_ledger`が含まれます。メンバーフィールドは`validated_ledger`フィールドと同じです。 | -| `io_latency_ms` | 数値 | I/O処理の待機に費やされた時間数(ミリ秒単位)。この数値が極端に低くない場合、`rippled`サーバでは深刻な負荷の問題が発生している可能性があります。 | -| `jq_trans_overflow` | 文字列-数値 | Tこのサーバが一度に処理待ちのトランザクションが250回を超えた回数(起動以来)。この数値が大きい場合、サーバがXRP Ledgerネットワークのトランザクション負荷に対応できていない可能性があります。将来を見据えたサーバの詳細な推奨仕様については、[容量の計画](../../../../infrastructure/installation/capacity-planning.md)をご覧ください | -| `last_close` | オブジェクト | サーバが最後にレジャーを閉鎖したときの情報。これには、コンセンサスの取得に要した時間や、参加した信頼できるバリデータ(検証者)の数が含まれます。 | -| `last_close.converge_time` | 数値 | 直近で検証されたレジャーバージョンでコンセンサスに達するまでにかかった時間(ミリ秒)。 | -| `last_close.proposers` | 数値 | 直近に検証されたレジャーバージョンのコンセンサスプロセスで、サーバが考慮した信頼できるバリデータの数(バリデータとして設定されている場合は自分自身を含む)。 | -| `load` | オブジェクト | _(管理者専用)_ サーバの現在の負荷状態についての詳細な情報。 | -| `load.job_types` | 配列 | _(管理者専用)_ サーバが実行している各種ジョブのレートや、各ジョブに要する時間についての情報。 | -| `load.threads` | 数値 | _(管理者専用)_ サーバの主要なジョブプール内のスレッド数。 | -| `load_base` | 整数 | [トランザクションコスト](../../../../concepts/transactions/transaction-cost.md)の計算で使用されるサーバ負荷のベースライン量です。`load_factor`が`load_base`と同等の場合、基本トランザクションコストのみが適用されます。`load_factor`が`load_base`よりも大きい場合、トランザクションコストにそれらの値の比率が乗算されます。たとえば`load_factor`が`load_base`の2倍である場合、トランザクションコストは2倍になります。 | -| `load_factor` | 数値 | サーバが現在適用している負荷係数。トランザクションコストの乗数は、この値と`load_base`の比率によって決まります。負荷係数は、個別サーバの最も高い負荷係数、クラスターの負荷係数、[オープンレジャーコスト](../../../../concepts/transactions/transaction-cost.md#オープンレジャーコスト)、およびネットワーク全体の負荷係数によって決定します。 | -| `load_factor_fee_escalation` | 整数 | (省略される場合があります)オープンレジャーに入るときに[トランザクションコスト][]に適用される現在の乗数([手数料レベル][])。 | -| `load_factor_fee_queue` | 整数 | (省略される場合があります)キューが一杯になっている場合に、キューへ入るときに[トランザクションコスト][]に適用される現在の乗数([手数料レベル][])。 | -| `load_factor_fee_reference` | 整数 | (省略される場合があります)負荷スケーリングのない[トランザクションコスト][]([手数料レベル][])。 | -| `load_factor_server` | 数値 | (省略される場合があります)サーバが適用している負荷係数。[オープンレジャーコスト](../../../../concepts/transactions/transaction-cost.md#オープンレジャーコスト)は含まれません。 | -| `peers` | 数値 | このサーバが現在接続している他の`rippled`サーバの数。 | -| `ports` | 配列 | サーバがAPIコマンドを待ち受けているポートの一覧。配列の各エントリは[ポート記述子オブジェクト](#ポート記述子オブジェクト) となります。 {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.12.0" %}新規: rippled 1.12.0{% /badge %} | -| `pubkey_node` | 文字列 | ピアツーピア通信のためにこのサーバを検証する際に使用される公開鍵。サーバを初めて起動すると、サーバにより _ノードキーペア_ が自動的に生成されます。(キーペアが削除されている場合、サーバは新しいキーペアを作成できます。)`[node_seed]`構成オプションを使用して構成ファイルの永続値を設定できます。これは[クラスター化](../../../../concepts/networks-and-servers/clustering.md)で便利です。 | -| `pubkey_validator` | 文字列 | _(管理者専用)_ このノードがレジャー検証の署名に使用する公開鍵。_検証キーペア_ は、`[validator_token]`構成フィールドまたは`[validation_seed]`構成フィールドから生成されます。 | -| `reporting` | オブジェクト | _([レポートモード](../../../../concepts/networks-and-servers/rippled-server-modes.md)サーバのみ)_ このサーバのレポートモード固有の設定に関する情報。 | -| `reporting.etl_sources` | 配列 | _([レポートモード](../../../../concepts/networks-and-servers/rippled-server-modes.md)サーバのみ)_ このレポートモードがデータを取得する P2P モードサーバのリスト。この配列の各エントリは[ETLソースオブジェクト](#etlソースオブジェクト)です。 | -| `reporting.is_writer` | 真偽値 | _([レポートモード](../../../../concepts/networks-and-servers/rippled-server-modes.md)サーバのみ)_ `true`の場合、このサーバは外部データベースにレジャーデータを書き込んでいます。`false`の場合、他のレポートモードサーバが共有データベースにデータを書き込んでいるか、読み取り専用に設定されているため、現在は書き込んでいません。 | -| `reporting.last_publish_time` | 文字列 | _([レポートモード](../../../../concepts/networks-and-servers/rippled-server-modes.md)サーバのみ)_このサーバが最後に有効なレジャーを[サブスクリプションストリーム](../subscription-methods/subscribe.md)に公開した日時を示すISO 8601タイムスタンプ。 | -| `server_state` | 文字列 | サーバのネットワークへの参加度を示す文字列。詳細は、[考えられるサーバの状態](../../api-conventions/rippled-server-states.md)をご覧ください。 | -| `server_state_duration_us` | 数値 | サーバが現在の状態になってから経過した連続マイクロ秒数。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.0" %}新規: rippled 1.2.0{% /badge %} | -| `state_accounting` | オブジェクト | 各種[サーバ状態](../../api-conventions/rippled-server-states.md)のマップと、サーバが各状態に費やした時間についての情報。これは、サーバのネットワーク接続性の健全性を長期的に追跡するのに便利です。 | -| `state_accounting.*.duration_us` | 文字列 | サーバがこの状態になってから経過したマイクロ秒数。(サーバが別の状態に移行するたびに更新されます。) | -| `state_accounting.*.transitions` | 数値 | サーバがこの状態に移行した回数。 | -| `time` | 文字列 | サーバの時計によるUTCでの現在時刻。 | -| `uptime` | 数値 | サーバが連続稼働している秒数。 | -| `validated_ledger` | オブジェクト | (省略される場合があります)完全に検証された最新のレジャーについての情報。最新の検証済みレジャーが使用できない場合、このフィールドはレスポンスで省略され、代わりに`closed_ledger`が含まれます。 | -| `validated_ledger.base_fee` | 符号なし整数 | ネットワークへのトランザクション伝達にかかる基本手数料(XRPのdrop数)。 | -| `validated_ledger.close_time` | 数値 | レジャーが閉鎖された時刻([Rippleエポック以降の経過秒数][]) | -| `validated_ledger.hash` | 文字列 | 当該レジャーバージョンの一意のハッシュ(16進数) | -| `validated_ledger.reserve_base` | 符号なし整数 | すべてのアカウントで準備金として保有する必要がある最小額(XRPのdrop数) | -| `validated_ledger.reserve_inc` | 符号なし整数 | アカウントがレジャー内に保有する各アイテムのアカウント準備金に追加する額(XRPのdrop数)。 | -| `validated_ledger.seq` | 符号なし整数 | このレジャーの一意のシーケンス番号 | -| `validation_quorum` | 数値 | 1つのレジャーバージョンの検証に最低限必要となる信頼できる検証の数。状況によっては、サーバがさらに検証をリクエストする場合があります。 | -| `validator_list_expires` | 数値 | _(管理者専用)_ 現在のバリデータリストが期限切れになる時点([Rippleエポック以降の経過秒数][])。サーバが発行済みのバリデータリストをロードしていない場合は0。 | +| `Field` | 型 | 説明 | +| :------------------------------- | :----------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `amendment_blocked` | 真偽値 | _(省略される場合があります)_`true`の場合、このサーバは[Amendmentブロック](../../../../concepts/networks-and-servers/amendments.md#amendment-blocked)の状態です。サーバがAmendmentブロックではない場合、レスポンスではこのフィールドが省略されます。 | +| `build_version` | 文字列 | 実行中の`rippled`バージョンのバージョン番号。 | +| `complete_ledgers` | 文字列 | ローカルの`rippled`がデータベース内に有するレジャーバージョンのシーケンス番号の範囲を示す表現。例えば、「2500-5000,32570-7695432」のように互いに素なシーケンスの場合があります。サーバに完全なレジャーがない場合(例えば、ネットワークとの同期を始めたばかりの場合)、文字列`empty`になります。 | +| `closed_ledger` | オブジェクト | (省略される場合があります)コンセンサスによって検証されていない、最新の閉鎖済みレジャーに関する情報。最新の検証済みレジャーが使用可能な場合、レスポンスではこのフィールドは省略され、代わりに`validated_ledger`が含まれます。メンバーフィールドは`validated_ledger`フィールドと同じです。 | +| `io_latency_ms` | 数値 | I/O処理の待機に費やされた時間数(ミリ秒単位)。この数値が極端に低くない場合、`rippled`サーバでは深刻な負荷の問題が発生している可能性があります。 | +| `jq_trans_overflow` | 文字列-数値 | Tこのサーバが一度に処理待ちのトランザクションが250回を超えた回数(起動以来)。この数値が大きい場合、サーバがXRP Ledgerネットワークのトランザクション負荷に対応できていない可能性があります。将来を見据えたサーバの詳細な推奨仕様については、[容量の計画](../../../../infrastructure/installation/capacity-planning.md)をご覧ください | +| `last_close` | オブジェクト | サーバが最後にレジャーを閉鎖したときの情報。これには、コンセンサスの取得に要した時間や、参加した信頼できるバリデータ(検証者)の数が含まれます。 | +| `last_close.converge_time` | 数値 | 直近で検証されたレジャーバージョンでコンセンサスに達するまでにかかった時間(ミリ秒)。 | +| `last_close.proposers` | 数値 | 直近に検証されたレジャーバージョンのコンセンサスプロセスで、サーバが考慮した信頼できるバリデータの数(バリデータとして設定されている場合は自分自身を含む)。 | +| `load` | オブジェクト | _(管理者専用)_ サーバの現在の負荷状態についての詳細な情報。 | +| `load.job_types` | 配列 | _(管理者専用)_ サーバが実行している各種ジョブのレートや、各ジョブに要する時間についての情報。 | +| `load.threads` | 数値 | _(管理者専用)_ サーバの主要なジョブプール内のスレッド数。 | +| `load_base` | 整数 | [トランザクションコスト](../../../../concepts/transactions/transaction-cost.md)の計算で使用されるサーバ負荷のベースライン量です。`load_factor`が`load_base`と同等の場合、基本トランザクションコストのみが適用されます。`load_factor`が`load_base`よりも大きい場合、トランザクションコストにそれらの値の比率が乗算されます。たとえば`load_factor`が`load_base`の2倍である場合、トランザクションコストは2倍になります。 | +| `load_factor` | 数値 | サーバが現在適用している負荷係数。トランザクションコストの乗数は、この値と`load_base`の比率によって決まります。負荷係数は、個別サーバの最も高い負荷係数、クラスターの負荷係数、[オープンレジャーコスト](../../../../concepts/transactions/transaction-cost.md#オープンレジャーコスト)、およびネットワーク全体の負荷係数によって決定します。 | +| `load_factor_fee_escalation` | 整数 | (省略される場合があります)オープンレジャーに入るときに[トランザクションコスト][]に適用される現在の乗数([手数料レベル][])。 | +| `load_factor_fee_queue` | 整数 | (省略される場合があります)キューが一杯になっている場合に、キューへ入るときに[トランザクションコスト][]に適用される現在の乗数([手数料レベル][])。 | +| `load_factor_fee_reference` | 整数 | (省略される場合があります)負荷スケーリングのない[トランザクションコスト][]([手数料レベル][])。 | +| `load_factor_server` | 数値 | (省略される場合があります)サーバが適用している負荷係数。[オープンレジャーコスト](../../../../concepts/transactions/transaction-cost.md#オープンレジャーコスト)は含まれません。 | +| `peers` | 数値 | このサーバが現在接続している他の`rippled`サーバの数。 | +| `ports` | 配列 | サーバがAPIコマンドを待ち受けているポートの一覧。配列の各エントリは[ポート記述子オブジェクト](#ポート記述子オブジェクト) となります。 {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.12.0" %}新規: rippled 1.12.0{% /badge %} | +| `pubkey_node` | 文字列 | ピアツーピア通信のためにこのサーバを検証する際に使用される公開鍵。サーバを初めて起動すると、サーバにより _ノードキーペア_ が自動的に生成されます。(キーペアが削除されている場合、サーバは新しいキーペアを作成できます。)`[node_seed]`構成オプションを使用して構成ファイルの永続値を設定できます。これは[クラスター化](../../../../concepts/networks-and-servers/clustering.md)で便利です。 | +| `pubkey_validator` | 文字列 | _(管理者専用)_ このノードがレジャー検証の署名に使用する公開鍵。_検証キーペア_ は、`[validator_token]`構成フィールドまたは`[validation_seed]`構成フィールドから生成されます。 | +| `reporting` | オブジェクト | _([レポートモード](../../../../concepts/networks-and-servers/rippled-server-modes.md)サーバのみ)_ このサーバのレポートモード固有の設定に関する情報。 | +| `reporting.etl_sources` | 配列 | _([レポートモード](../../../../concepts/networks-and-servers/rippled-server-modes.md)サーバのみ)_ このレポートモードがデータを取得する P2P モードサーバのリスト。この配列の各エントリは[ETLソースオブジェクト](#etlソースオブジェクト)です。 | +| `reporting.is_writer` | 真偽値 | _([レポートモード](../../../../concepts/networks-and-servers/rippled-server-modes.md)サーバのみ)_ `true`の場合、このサーバは外部データベースにレジャーデータを書き込んでいます。`false`の場合、他のレポートモードサーバが共有データベースにデータを書き込んでいるか、読み取り専用に設定されているため、現在は書き込んでいません。 | +| `reporting.last_publish_time` | 文字列 | *([レポートモード](../../../../concepts/networks-and-servers/rippled-server-modes.md)サーバのみ)*このサーバが最後に有効なレジャーを[サブスクリプションストリーム](../subscription-methods/subscribe.md)に公開した日時を示すISO 8601タイムスタンプ。 | +| `server_state` | 文字列 | サーバのネットワークへの参加度を示す文字列。詳細は、[考えられるサーバの状態](../../api-conventions/rippled-server-states.md)をご覧ください。 | +| `server_state_duration_us` | 数値 | サーバが現在の状態になってから経過した連続マイクロ秒数。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.0" %}新規: rippled 1.2.0{% /badge %} | +| `state_accounting` | オブジェクト | 各種[サーバ状態](../../api-conventions/rippled-server-states.md)のマップと、サーバが各状態に費やした時間についての情報。これは、サーバのネットワーク接続性の健全性を長期的に追跡するのに便利です。 | +| `state_accounting.*.duration_us` | 文字列 | サーバがこの状態になってから経過したマイクロ秒数。(サーバが別の状態に移行するたびに更新されます。) | +| `state_accounting.*.transitions` | 数値 | サーバがこの状態に移行した回数。 | +| `time` | 文字列 | サーバの時計によるUTCでの現在時刻。 | +| `uptime` | 数値 | サーバが連続稼働している秒数。 | +| `validated_ledger` | オブジェクト | (省略される場合があります)完全に検証された最新のレジャーについての情報。最新の検証済みレジャーが使用できない場合、このフィールドはレスポンスで省略され、代わりに`closed_ledger`が含まれます。 | +| `validated_ledger.base_fee` | 符号なし整数 | ネットワークへのトランザクション伝達にかかる基本手数料(XRPのdrop数)。 | +| `validated_ledger.close_time` | 数値 | レジャーが閉鎖された時刻([Rippleエポック以降の経過秒数][]) | +| `validated_ledger.hash` | 文字列 | 当該レジャーバージョンの一意のハッシュ(16進数) | +| `validated_ledger.reserve_base` | 符号なし整数 | すべてのアカウントで準備金として保有する必要がある最小額(XRPのdrop数) | +| `validated_ledger.reserve_inc` | 符号なし整数 | アカウントがレジャー内に保有する各アイテムのアカウント準備金に追加する額(XRPのdrop数)。 | +| `validated_ledger.seq` | 符号なし整数 | このレジャーの一意のシーケンス番号 | +| `validation_quorum` | 数値 | 1つのレジャーバージョンの検証に最低限必要となる信頼できる検証の数。状況によっては、サーバがさらに検証をリクエストする場合があります。 | +| `validator_list_expires` | 数値 | _(管理者専用)_ 現在のバリデータリストが期限切れになる時点([Rippleエポック以降の経過秒数][])。サーバが発行済みのバリデータリストをロードしていない場合は0。 | [レポートモード]: ../../../../concepts/networks-and-servers/rippled-server-modes.md @@ -324,6 +336,6 @@ Headers ## 考えられるエラー -* [汎用エラータイプ][]のすべて。 +- [汎用エラータイプ][]のすべて。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/subscription-methods/index.md b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/subscription-methods/index.md index b5375668f1..73e4602bc0 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/subscription-methods/index.md +++ b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/subscription-methods/index.md @@ -4,9 +4,9 @@ parent: public-api-methods.html metadata: indexPage: true --- + # Subscriptionメソッド 以下のメソッドを使用して、さまざまなイベントが発生したときに更新情報をサーバからクライアントにプッシュできるようになるため、即座に情報を取得することができます。WebSocket APIのみ対応しています。 - {% child-pages /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/subscription-methods/subscribe.md b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/subscription-methods/subscribe.md index a99ad90237..22ad03b58b 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/subscription-methods/subscribe.md +++ b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/subscription-methods/subscribe.md @@ -2,24 +2,28 @@ html: subscribe.html parent: subscription-methods.html seo: - description: 特定のイベントが発生した場合に、定期的に通知するようサーバにリクエストします。 + description: 特定のイベントが発生した場合に、定期的に通知するようサーバにリクエストします。 labels: - 支払い - アカウント - ブロックチェーン - スマートコントラクト --- + # subscribe + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/Subscribe.cpp "Source") `subscribe`メソッドは、特定のイベントが発生した場合に、定期的に通知するようサーバにリクエストします。 ## リクエストのフォーマット + リクエストのフォーマットの例: {% tabs %} {% tab label="アカウントのサブスクライブ" %} + ```json { "id": "Example watch Bitstamp's hot wallet", @@ -27,30 +31,34 @@ labels: "accounts": ["rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1"] } ``` + {% /tab %} {% tab label="オーダーブックのサブスクライブ" %} + ```json { - "id": "Example subscribe to XRP/GateHub USD order book", - "command": "subscribe", - "books": [ - { - "taker_pays": { - "currency": "XRP" - }, - "taker_gets": { - "currency": "USD", - "issuer": "rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq" - }, - "snapshot": true - } - ] + "id": "Example subscribe to XRP/GateHub USD order book", + "command": "subscribe", + "books": [ + { + "taker_pays": { + "currency": "XRP" + }, + "taker_gets": { + "currency": "USD", + "issuer": "rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq" + }, + "snapshot": true + } + ] } ``` + {% /tab %} {% tab label="レジャーストリームのサブスクライブ" %} + ```json { "id": "Example watch for new validated ledgers", @@ -58,6 +66,7 @@ labels: "streams": ["ledger"] } ``` + {% /tab %} {% /tabs %} @@ -66,31 +75,31 @@ labels: リクエストには以下のパラメーターが含まれます。 -| フィールド | 型 | 必須? | 説明 | -|:--------------------|:-------|:-------|:-----| -| `streams` | 配列 | いいえ | 以下で説明するストリームにサブスクライブします。配列の各要素は、ストリームの文字列名でなければなりません。 | -| `accounts` | 配列 | いいえ | 検証済みトランザクションを監視するアカウントの一意の[アドレス][]を持つ配列。サーバは、少なくともこれらのアカウントのいずれかに影響を与えるトランザクションが発生するたびに、`transaction`タイプのメッセージを送信します。 | -| `accounts_proposed` | 配列 | いいえ | `accounts`と同様ですが、まだファイナライズされていないトランザクションを含みます。 | +| フィールド | 型 | 必須? | 説明 | +| :------------------ | :----- | :----- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `streams` | 配列 | いいえ | 以下で説明するストリームにサブスクライブします。配列の各要素は、ストリームの文字列名でなければなりません。 | +| `accounts` | 配列 | いいえ | 検証済みトランザクションを監視するアカウントの一意の[アドレス][]を持つ配列。サーバは、少なくともこれらのアカウントのいずれかに影響を与えるトランザクションが発生するたびに、`transaction`タイプのメッセージを送信します。 | +| `accounts_proposed` | 配列 | いいえ | `accounts`と同様ですが、まだファイナライズされていないトランザクションを含みます。 | | `books` | 配列 | いいえ | 更新を監視するオーダーブック。配列の各要素は、以下で定義される[book object](#book-objects)でなければなりません。サーバは、トランザクションがこのアカウントに影響を与えるたびに、`transaction`タイプのメッセージを送信します。 | -| `url` | 文字列 | いいえ | (Websocketでは省略可、それ以外では必須)サーバが各イベントのJSON-RPCコールバックを送信するURL。*管理者専用。* | -| `url_username` | 文字列 | いいえ | コールバックURLで基本認証を行うためのユーザ名。 | -| `url_password` | 文字列 | いいえ | コールバックURLで基本認証を行うためのパスワード。 | +| `url` | 文字列 | いいえ | (Websocketでは省略可、それ以外では必須)サーバが各イベントのJSON-RPCコールバックを送信するURL。_管理者専用。_ | +| `url_username` | 文字列 | いいえ | コールバックURLで基本認証を行うためのユーザ名。 | +| `url_password` | 文字列 | いいえ | コールバックURLで基本認証を行うためのパスワード。 | 以下のパラメータは廃止予定で、今後予告なしに削除される可能性があります。`user`、`password`、`rt_accounts`。 `streams`パラメータは、以下のデフォルトの情報ストリームへのアクセスを可能にします。 -| ストリーム名 | メッセージタイプ | 説明 | -|:------------------------|:---------------------|:------------| -| `book_changes` | `bookChanges` | コンセンサスプロセスが新しい検証済みレジャーを宣言するたびに、オーダーブックの変更をメッセージで送信します。 | -| `consensus` | `consensusPhase` | サーバがコンセンサスサイクルのフェーズを変更するたびにメッセージを送信します。 | -| `ledger` | `ledgerClosed` | コンセンサスプロセスで新しい検証済みレジャーが宣言されるたびにメッセージを送信します。 | -| `manifests` | `manifestReceived` | バリデータのephemeral署名鍵の更新を受け取るたびにメッセージを送信します。 | -| `peer_status` | `peerStatusChange` | **(管理者専用)** 接続している`rippled`のピアサーバに関する情報(特にコンセンサスプロセスに関する情報)。 | -| `transactions` | `transaction` | 閉鎖済みレジャーにトランザクションが追加されるたびにメッセージを送信します。 | +| ストリーム名 | メッセージタイプ | 説明 | +| :---------------------- | :------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `book_changes` | `bookChanges` | コンセンサスプロセスが新しい検証済みレジャーを宣言するたびに、オーダーブックの変更をメッセージで送信します。 | +| `consensus` | `consensusPhase` | サーバがコンセンサスサイクルのフェーズを変更するたびにメッセージを送信します。 | +| `ledger` | `ledgerClosed` | コンセンサスプロセスで新しい検証済みレジャーが宣言されるたびにメッセージを送信します。 | +| `manifests` | `manifestReceived` | バリデータのephemeral署名鍵の更新を受け取るたびにメッセージを送信します。 | +| `peer_status` | `peerStatusChange` | **(管理者専用)** 接続している`rippled`のピアサーバに関する情報(特にコンセンサスプロセスに関する情報)。 | +| `transactions` | `transaction` | 閉鎖済みレジャーにトランザクションが追加されるたびにメッセージを送信します。 | | `transactions_proposed` | `transaction` | 閉鎖済みレジャーにトランザクションが追加される場合や、検証済みレジャーにまだ追加されておらず、今後も追加される見込みのない一部のトランザクションが検証済みレジャーに追加される場合に、メッセージを送信します。提案されたすべてのトランザクションが検証前に表示されるわけではありません。 {% admonition type="info" name="注記" %}[成功しなかったトランザクション](../../../protocol/transactions/transaction-results/index.md) 成功しなかったトランザクションも、スパム対策取引手数料を取るため、検証済みレジャーに含まれます。{% /admonition %} | -| `server` | `serverStatus` | `rippled`サーバのステータス(ネットワーク接続など)が変更されるたびにメッセージを送信します。 | -| `validations` | `validationReceived` | サーバがバリデータを信頼しているか否かにかかわらず、サーバが検証メッセージを受信するたびに、メッセージを送信します。(個々の`rippled`は、サーバが少なくとも定数の信頼できるバリデータから検証メッセージを受信した時点で、レジャーが検証済みであると宣言します。) | +| `server` | `serverStatus` | `rippled`サーバのステータス(ネットワーク接続など)が変更されるたびにメッセージを送信します。 | +| `validations` | `validationReceived` | サーバがバリデータを信頼しているか否かにかかわらず、サーバが検証メッセージを受信するたびに、メッセージを送信します。(個々の`rippled`は、サーバが少なくとも定数の信頼できるバリデータから検証メッセージを受信した時点で、レジャーが検証済みであると宣言します。) | {% admonition type="info" name="注記" %}以下のストリームは Clioおよび[レポートモード][]の`rippled`サーバからは利用できません: `server`、`peer_status`、`consensus`。これらのストリームを要求すると、どちらも`reportingUnsupported`エラーを返します。 {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.8.1" %}更新: rippled 1.8.1{% /badge %} {% badge href="https://github.com/XRPLF/clio/releases/tag/2.0.0" %}新規: Clio v2.0{% /badge %}{% /admonition %} @@ -98,15 +107,14 @@ labels: `books`配列が指定されている場合、この配列の各要素は、以下のフィールドを持つオブジェクトです。 -| フィールド | 型 | 必須? | 説明 | -| :----------- | :-------------------- | :----- | ---- | -| `taker_gets` | オブジェクト | はい | オファーを受諾するアカウントが受け取る通貨を[金額なしの通貨オブジェクト](../../../protocol/data-types/currency-formats.md#金額なしでの通貨の指定)として指定します。 | -| `taker_pays` | オブジェクト | はい | オファーを受諾するアカウントが支払う通貨を[金額なしの通貨オブジェクト](../../../protocol/data-types/currency-formats.md#金額なしでの通貨の指定)として指定します。 | -| `both` | ブール値 | いいえ | `true`の場合は、オーダーブックの両サイドを返します。デフォルトは`false` | +| フィールド | 型 | 必須? | 説明 | +| :----------- | :-------------------- | :----- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `taker_gets` | オブジェクト | はい | オファーを受諾するアカウントが受け取る通貨を[金額なしの通貨オブジェクト](../../../protocol/data-types/currency-formats.md#金額なしでの通貨の指定)として指定します。 | +| `taker_pays` | オブジェクト | はい | オファーを受諾するアカウントが支払う通貨を[金額なしの通貨オブジェクト](../../../protocol/data-types/currency-formats.md#金額なしでの通貨の指定)として指定します。 | +| `both` | ブール値 | いいえ | `true`の場合は、オーダーブックの両サイドを返します。デフォルトは`false` | | `domain` | 文字列 - [ハッシュ][] | いいえ | 許可型DEXのレジャーエントリID。指定された場合、対応する[許可型DEX](../../../../concepts/tokens/decentralized-exchange/permissioned-dexes.md)のみを使用するパスを返します。([PermissionedDEX amendment][] {% not-enabled /%}が必要です) | -| `snapshot` | ブール値 | いいえ | `true`の場合は、更新の送信前にサブスクライブした時点でオーダーブックの現在の状態を一度返します。デフォルトは`false` | -| `taker` | 文字列 | いいえ | オファーを表示するパースペクティブとして使用する一意のアカウントアドレス(XRP Ledgerの[base58][]フォーマット)。(これはオファーの資金提供ステータスと手数料に影響します。) | - +| `snapshot` | ブール値 | いいえ | `true`の場合は、更新の送信前にサブスクライブした時点でオーダーブックの現在の状態を一度返します。デフォルトは`false` | +| `taker` | 文字列 | いいえ | オファーを表示するパースペクティブとして使用する一意のアカウントアドレス(XRP Ledgerの[base58][]フォーマット)。(これはオファーの資金提供ステータスと手数料に影響します。) | ## レスポンスのフォーマット @@ -115,6 +123,7 @@ labels: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": "Example watch Bitstamp's hot wallet", @@ -123,31 +132,32 @@ labels: "result": {} } ``` + {% /tab %} {% /tabs %} レスポンスは[標準フォーマット][]に従っています。レスポンスに含まれるフィールドは、リクエストに指定されたサブスクリプションに応じて異なります。 -* `accounts`および`accounts_proposed` - フィールドが返されません。 -* *Stream: `server`* - `load_base`(サーバの現在の読み込みレベル)、`random`(ランダムに生成された値)などのサーバのステータスに関する情報。これらの情報は変更される可能性があります。 -* *Stream: `transactions`*、*Stream: `transactions_proposed`*、*Stream: `validations`*、および*Stream: `consensus`* - フィールドは返されません。 -* *Stream: `ledger`* - 手元にあるレジャーと現在の料金に関する情報。これは、[ledgerストリームメッセージ](#レジャーストリーム)と同じフィールドを含みますが、`type`と`txn_count`フィールドは省略されています。 -* `books` - フィールドはデフォルトで返されません。リクエストが`"snapshot": true`に設定されている場合、`offers`(オーダーブックを定義するオファー定義オブジェクトの配列)を返します。 +- `accounts`および`accounts_proposed` - フィールドが返されません。 +- _Stream: `server`_ - `load_base`(サーバの現在の読み込みレベル)、`random`(ランダムに生成された値)などのサーバのステータスに関する情報。これらの情報は変更される可能性があります。 +- _Stream: `transactions`_、_Stream: `transactions_proposed`_、_Stream: `validations`_、および*Stream: `consensus`* - フィールドは返されません。 +- _Stream: `ledger`_ - 手元にあるレジャーと現在の料金に関する情報。これは、[ledgerストリームメッセージ](#レジャーストリーム)と同じフィールドを含みますが、`type`と`txn_count`フィールドは省略されています。 +- `books` - フィールドはデフォルトで返されません。リクエストが`"snapshot": true`に設定されている場合、`offers`(オーダーブックを定義するオファー定義オブジェクトの配列)を返します。 ## 考えられるエラー -* いずれかの[汎用エラータイプ][]。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* `noPermission` - リクエストに`url`フィールドが指定されていますが、管理者として接続していません。 -* `unknownStream` - リクエストの`streams`フィールドの1つ以上の要素が有効なストリーム名ではありません。 -* `malformedStream` - リクエストの`streams`フィールドのフォーマットが適切ではありません。 -* `malformedAccount` - リクエストの`accounts`または`accounts_proposed`フィールドのアドレスのいずれか1つが、適切なフォーマットのXRP Ledgerアドレスではありません。(**注記:** グローバルレジャーにまだエントリのないアドレスのストリームをサブスクライブして、そのアドレスに資金が供給されたらメッセージを受け取るように _できます_ 。) -* `srcCurMalformed` - リクエストの`books`フィールドの1つ以上の`taker_pays`サブフィールドのフォーマットが適切ではありません。 -* `dstAmtMalformed` - リクエストの`books`フィールドの1つ以上の`taker_gets`サブフィールドのフォーマットが適切ではありません。 -* `srcIsrMalformed` - リクエストの`books`フィールドの1つ以上の`taker_pays`サブフィールドの`issuer`フィールドが無効です。 -* `dstIsrMalformed` - リクエストの`books`フィールドの1つ以上の`taker_gets`サブフィールドの`issuer`フィールドが無効です。 -* `badMarket` - `books`フィールドに指定されている1つ以上のオーダーブックが存在していません(ある通貨とその通貨自体の交換オファーなど)。 +- いずれかの[汎用エラータイプ][]。 +- `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 +- `noPermission` - リクエストに`url`フィールドが指定されていますが、管理者として接続していません。 +- `unknownStream` - リクエストの`streams`フィールドの1つ以上の要素が有効なストリーム名ではありません。 +- `malformedStream` - リクエストの`streams`フィールドのフォーマットが適切ではありません。 +- `malformedAccount` - リクエストの`accounts`または`accounts_proposed`フィールドのアドレスのいずれか1つが、適切なフォーマットのXRP Ledgerアドレスではありません。(**注記:** グローバルレジャーにまだエントリのないアドレスのストリームをサブスクライブして、そのアドレスに資金が供給されたらメッセージを受け取るように _できます_ 。) +- `srcCurMalformed` - リクエストの`books`フィールドの1つ以上の`taker_pays`サブフィールドのフォーマットが適切ではありません。 +- `dstAmtMalformed` - リクエストの`books`フィールドの1つ以上の`taker_gets`サブフィールドのフォーマットが適切ではありません。 +- `srcIsrMalformed` - リクエストの`books`フィールドの1つ以上の`taker_pays`サブフィールドの`issuer`フィールドが無効です。 +- `dstIsrMalformed` - リクエストの`books`フィールドの1つ以上の`taker_gets`サブフィールドの`issuer`フィールドが無効です。 +- `badMarket` - `books`フィールドに指定されている1つ以上のオーダーブックが存在していません(ある通貨とその通貨自体の交換オファーなど)。 特定のストリームをサブスクライブすると、サブスクライブを解除するか、WebSocket接続を閉じるまで、そのストリームに関するレスポンスを定期的に受信します。これらのレスポンスの内容は、サブスクライブしている内容に応じて異なります。以下に、いくつかの例を紹介します。 @@ -172,19 +182,18 @@ labels: レジャーストリームメッセージのフィールドは次のとおりです。 -| フィールド | 型 | 説明 | -| :------------------ | :------------------------------ | ---- | -| `type` | 文字列 | `ledgerClosed`は、このメッセージがレジャーストリームからのものであることを示します。 | +| フィールド | 型 | 説明 | +| :------------------ | :------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `type` | 文字列 | `ledgerClosed`は、このメッセージがレジャーストリームからのものであることを示します。 | | `fee_base` | 数値 | このレジャーバージョン時点の[Referenceトランザクションコスト](../../../../concepts/transactions/transaction-cost.md#referenceトランザクションコスト)([XRPのdrop数][])。このレジャーバージョンに[SetFee疑似トランザクション](../../../protocol/transactions/pseudo-transaction-types/setfee.md)が含まれている場合は、次のレジャーバージョンから新しいトランザクションコストが適用されます。 | -| `fee_ref` | 数値 | (省略される場合があります)「手数料単位」の[Referenceトランザクションコスト](../../../../concepts/transactions/transaction-cost.md#referenceトランザクションコスト)。 _[XRPFees amendment][]_ が有効である場合, このフィールドは永久に省略されます。 | -| `ledger_hash` | 文字列 - [ハッシュ][] | 閉鎖されたレジャーバージョンの識別用ハッシュ。 | -| `ledger_index` | 数値 - [レジャーインデックス][] | 閉鎖されたレジャーのレジャーインデックス。 | -| `ledger_time` | 数値 | レジャーが閉鎖された時刻([Rippleエポック以降の経過秒数][]) | -| `reserve_base` | 数値 | アカウントの最低必要[準備金](../../../../concepts/accounts/reserves.md)([XRPのdrop数][])。このレジャーバージョンに[SetFee疑似トランザクション](../../../protocol/transactions/pseudo-transaction-types/setfee.md)が含まれる場合は、次のレジャーバージョンから新しい基本準備金が適用されます。 | -| `reserve_inc` | 数値 | アカウントがレジャーに所有しているオブジェクトごとの[所有者準備金](../../../../concepts/accounts/reserves.md#所有者準備金)([XRPのdrop数][])。レジャーに[SetFee疑似トランザクション](../../../protocol/transactions/pseudo-transaction-types/setfee.md)が記録されている場合、このレジャー以降は新しい所有者準備金が適用されます。 | -| `txn_count` | 数値 | このレジャーバージョンに含まれる新規トランザクションの数。 | -| `validated_ledgers` | 文字列 | _(省略される場合があります)_ サーバが利用可能なレジャーの範囲。これは、`24900901-24900984,24901116-24901158`のような不連続なシーケンスである可能性があります。サーバがネットワークに接続されていない場合、または接続されているがまだネットワークからレジャーを取得していない場合は、このフィールドは返されません。 | - +| `fee_ref` | 数値 | (省略される場合があります)「手数料単位」の[Referenceトランザクションコスト](../../../../concepts/transactions/transaction-cost.md#referenceトランザクションコスト)。 _[XRPFees amendment][]_ が有効である場合, このフィールドは永久に省略されます。 | +| `ledger_hash` | 文字列 - [ハッシュ][] | 閉鎖されたレジャーバージョンの識別用ハッシュ。 | +| `ledger_index` | 数値 - [レジャーインデックス][] | 閉鎖されたレジャーのレジャーインデックス。 | +| `ledger_time` | 数値 | レジャーが閉鎖された時刻([Rippleエポック以降の経過秒数][]) | +| `reserve_base` | 数値 | アカウントの最低必要[準備金](../../../../concepts/accounts/reserves.md)([XRPのdrop数][])。このレジャーバージョンに[SetFee疑似トランザクション](../../../protocol/transactions/pseudo-transaction-types/setfee.md)が含まれる場合は、次のレジャーバージョンから新しい基本準備金が適用されます。 | +| `reserve_inc` | 数値 | アカウントがレジャーに所有しているオブジェクトごとの[所有者準備金](../../../../concepts/accounts/reserves.md#所有者準備金)([XRPのdrop数][])。レジャーに[SetFee疑似トランザクション](../../../protocol/transactions/pseudo-transaction-types/setfee.md)が記録されている場合、このレジャー以降は新しい所有者準備金が適用されます。 | +| `txn_count` | 数値 | このレジャーバージョンに含まれる新規トランザクションの数。 | +| `validated_ledgers` | 文字列 | _(省略される場合があります)_ サーバが利用可能なレジャーの範囲。これは、`24900901-24900984,24901116-24901158`のような不連続なシーケンスである可能性があります。サーバがネットワークに接続されていない場合、または接続されているがまだネットワークからレジャーを取得していない場合は、このフィールドは返されません。 | ## 検証ストリーム @@ -192,67 +201,66 @@ labels: ```json { - "type": "validationReceived", - "amendments":[ - "42426C4D4F1009EE67080A9B7965B44656D7714D104A72F9B4369F97ABF044EE", - "4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373", - "6781F8368C4771B83E8B821D88F580202BCB4228075297B19E4FDC5233F1EFDC", - "C1B8D934087225F509BEB5A8EC24447854713EE447D277F69545ABFA0E0FD490", - "DA1BD556B42D85EA9C84066D028D355B52416734D3283F85E216EA5DA6DB7E13" - ], - "base_fee":10, - "flags":2147483649, - "full":true, - "ledger_hash":"EC02890710AAA2B71221B0D560CFB22D64317C07B7406B02959AD84BAD33E602", - "ledger_index":"6", - "load_fee":256000, - "master_key": "nHUon2tpyJEHHYGmxqeGu37cvPYHzrMtUNQFVdCgGNvEkjmCpTqK", - "reserve_base":20000000, - "reserve_inc":5000000, - "signature":"3045022100E199B55643F66BC6B37DBC5E185321CF952FD35D13D9E8001EB2564FFB94A07602201746C9A4F7A93647131A2DEB03B76F05E426EC67A5A27D77F4FF2603B9A528E6", - "signing_time":515115322, - "validation_public_key":"n94Gnc6svmaPPRHUAyyib1gQUov8sYbjLoEwUBYPH39qHZXuo8ZT" + "type": "validationReceived", + "amendments": [ + "42426C4D4F1009EE67080A9B7965B44656D7714D104A72F9B4369F97ABF044EE", + "4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373", + "6781F8368C4771B83E8B821D88F580202BCB4228075297B19E4FDC5233F1EFDC", + "C1B8D934087225F509BEB5A8EC24447854713EE447D277F69545ABFA0E0FD490", + "DA1BD556B42D85EA9C84066D028D355B52416734D3283F85E216EA5DA6DB7E13" + ], + "base_fee": 10, + "flags": 2147483649, + "full": true, + "ledger_hash": "EC02890710AAA2B71221B0D560CFB22D64317C07B7406B02959AD84BAD33E602", + "ledger_index": "6", + "load_fee": 256000, + "master_key": "nHUon2tpyJEHHYGmxqeGu37cvPYHzrMtUNQFVdCgGNvEkjmCpTqK", + "reserve_base": 20000000, + "reserve_inc": 5000000, + "signature": "3045022100E199B55643F66BC6B37DBC5E185321CF952FD35D13D9E8001EB2564FFB94A07602201746C9A4F7A93647131A2DEB03B76F05E426EC67A5A27D77F4FF2603B9A528E6", + "signing_time": 515115322, + "validation_public_key": "n94Gnc6svmaPPRHUAyyib1gQUov8sYbjLoEwUBYPH39qHZXuo8ZT" } ``` 検証ストリームメッセージのフィールドは次のとおりです。 -| フィールド | 型 | 説明 | -| :---------------------- | :------------ | ---- | -| `type` | 文字列 | 値`validationReceived`は、このメッセージが検証ストリームからであることを示します。 | -| `amendments` | 文字列の配列 | (省略される場合があります)このサーバがプロトコルへの追加を求める[Amendment](../../../../concepts/networks-and-servers/amendments.md)。 | -| `base_fee` | 整数 | (省略される場合があります)サーバが[手数料投票](../../../../concepts/consensus-protocol/fee-voting.md)による設定を希望するスケーリングされていないトランザクションコスト(`reference_fee`値)。 | -| `cookie` | 文字列 - 数値 | _(省略される場合があります)_ サーバが起動時に選択した任意の値。同じ検証キーペアで異なるクッキーを使用して同時に有効な検証を送信する場合、通常は複数のサーバが同じ検証キーペアを使用していることを示します。 {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.8.1" %}新規: rippled 1.8.1{% /badge %} | +| フィールド | 型 | 説明 | +| :---------------------- | :------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `type` | 文字列 | 値`validationReceived`は、このメッセージが検証ストリームからであることを示します。 | +| `amendments` | 文字列の配列 | (省略される場合があります)このサーバがプロトコルへの追加を求める[Amendment](../../../../concepts/networks-and-servers/amendments.md)。 | +| `base_fee` | 整数 | (省略される場合があります)サーバが[手数料投票](../../../../concepts/consensus-protocol/fee-voting.md)による設定を希望するスケーリングされていないトランザクションコスト(`reference_fee`値)。 | +| `cookie` | 文字列 - 数値 | _(省略される場合があります)_ サーバが起動時に選択した任意の値。同じ検証キーペアで異なるクッキーを使用して同時に有効な検証を送信する場合、通常は複数のサーバが同じ検証キーペアを使用していることを示します。 {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.8.1" %}新規: rippled 1.8.1{% /badge %} | | `flags` | 数値 | この検証メッセージに追加されるフラグのビットマスク。フラグ`0x80000000`は、検証の署名が完全に正規であることを示します。フラグ`0x00000001`は、完全な検証であることを示します。それ以外の場合は部分検証です。部分検証とは、特定のレジャーに対する投票ではありません。部分検証は、バリデータがオンラインであるがコンセンサスにまだ同意していないことを示します。 | -| `full` | ブール値 | `true`の場合は、完全な検証です。それ以外の場合は部分検証です。部分検証とは、特定のレジャーに対する投票ではありません。部分検証は、バリデータがオンラインであるがコンセンサスにまだ同意していないことを示します。 | -| `ledger_hash` | 文字列 | 提案されたレジャーの識別ハッシュを検証中です。 | -| `ledger_index` | 文字列 - 整数 | 提案されたレジャーの[レジャーインデックス][]。 | -| `load_fee` | 整数 | (省略される場合があります)このバリデータにより現在施行されているローカルの負荷スケーリングされたトランザクションコスト(手数料単位)。 | -| `master_key` | 文字列 | _(省略される場合があります)_ バリデータのマスター公開鍵(バリデータがXRP Ledgerの[base58][]フォーマットのバリデータトークンを使用している場合)。(関連項目: [`rippled`サーバで検証を有効化](../../../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md#3-rippledサーバで検証を有効化)。) | -| `reserve_base` | 整数 | (省略される場合があります)このバリデータが[手数料投票](../../../../concepts/consensus-protocol/fee-voting.md)による設定を希望する最低必要準備金(`account_reserve`値)。 | -| `reserve_inc` | 整数 | (省略される場合があります)このバリデータが[手数料投票](../../../../concepts/consensus-protocol/fee-voting.md)による設定を希望する必要準備金(`owner_reserve`値)の増分。 | -| `server_version` | 文字列 - 数値 | _(省略される場合があります)_ バリデータサーバのバージョン番号を表す 64 ビットの整数。例えば`「1745990410175512576」`。256レジャーに一度だけ提供されます。 {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.8.1" %}新規: rippled 1.8.1{% /badge %} | -| `signature` | 文字列 | バリデータがこのレジャーへの投票に署名するときに使用する署名。 | -| `signing_time` | 数値 | この検証投票が署名された時刻([Rippleエポック以降の経過秒数][])。 | -| `validated_hash` | 文字列 | この検証が適用される提案レジャーの一意のハッシュ。 {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.8.1" %}新規: rippled 1.8.1{% /badge %} | -| `validation_public_key` | 文字列 | バリデータがメッセージの署名に使用したキーペアの公開鍵(XRP Ledgerの[base58][]形式)。このフィールドは、メッセージを送信するバリデータを特定します。また`signature`の検証にも使用できます。バリデータがトークンを使用している場合は一時的な公開鍵です。 | - +| `full` | ブール値 | `true`の場合は、完全な検証です。それ以外の場合は部分検証です。部分検証とは、特定のレジャーに対する投票ではありません。部分検証は、バリデータがオンラインであるがコンセンサスにまだ同意していないことを示します。 | +| `ledger_hash` | 文字列 | 提案されたレジャーの識別ハッシュを検証中です。 | +| `ledger_index` | 文字列 - 整数 | 提案されたレジャーの[レジャーインデックス][]。 | +| `load_fee` | 整数 | (省略される場合があります)このバリデータにより現在施行されているローカルの負荷スケーリングされたトランザクションコスト(手数料単位)。 | +| `master_key` | 文字列 | _(省略される場合があります)_ バリデータのマスター公開鍵(バリデータがXRP Ledgerの[base58][]フォーマットのバリデータトークンを使用している場合)。(関連項目: [`rippled`サーバで検証を有効化](../../../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md#3-rippledサーバで検証を有効化)。) | +| `reserve_base` | 整数 | (省略される場合があります)このバリデータが[手数料投票](../../../../concepts/consensus-protocol/fee-voting.md)による設定を希望する最低必要準備金(`account_reserve`値)。 | +| `reserve_inc` | 整数 | (省略される場合があります)このバリデータが[手数料投票](../../../../concepts/consensus-protocol/fee-voting.md)による設定を希望する必要準備金(`owner_reserve`値)の増分。 | +| `server_version` | 文字列 - 数値 | _(省略される場合があります)_ バリデータサーバのバージョン番号を表す 64 ビットの整数。例えば`「1745990410175512576」`。256レジャーに一度だけ提供されます。 {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.8.1" %}新規: rippled 1.8.1{% /badge %} | +| `signature` | 文字列 | バリデータがこのレジャーへの投票に署名するときに使用する署名。 | +| `signing_time` | 数値 | この検証投票が署名された時刻([Rippleエポック以降の経過秒数][])。 | +| `validated_hash` | 文字列 | この検証が適用される提案レジャーの一意のハッシュ。 {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.8.1" %}新規: rippled 1.8.1{% /badge %} | +| `validation_public_key` | 文字列 | バリデータがメッセージの署名に使用したキーペアの公開鍵(XRP Ledgerの[base58][]形式)。このフィールドは、メッセージを送信するバリデータを特定します。また`signature`の検証にも使用できます。バリデータがトークンを使用している場合は一時的な公開鍵です。 | ## トランザクションストリーム サブスクリプションの多くは、次のようなトランザクションに関するメッセージをもたらします。 -* `transactions`ストリーム -* `transactions_proposed`ストリーム -* `accounts`サブスクリプション -* `accounts_proposed`サブスクリプション -* `book`(オーダーブック)サブスクリプション +- `transactions`ストリーム +- `transactions_proposed`ストリーム +- `accounts`サブスクリプション +- `accounts_proposed`サブスクリプション +- `book`(オーダーブック)サブスクリプション `transactions_proposed`ストリームは、厳密には`transactions`ストリームのスーパーセットです。このストリームにはすべての検証済みトランザクションと、検証済みレジャーにまだ記録されておらず、今後も記録される見込みのない提案されたトランザクションがいくつか記録されます。このような「処理中」のトランザクションはそのフィールドから判断できます。 -* `validated`フィールドがないか、または値`false`が指定されている。 -* `meta`フィールドまたは`metadata`フィールドがない。 -* トランザクションがファイナライズされたレジャーバージョンを指定する`ledger_index`フィールドと`ledger_hash`フィールドの代わりに、現在これらのトランザクションに提案されているレジャーバージョンを指定する`ledger_current_index`フィールドが存在する。 +- `validated`フィールドがないか、または値`false`が指定されている。 +- `meta`フィールドまたは`metadata`フィールドがない。 +- トランザクションがファイナライズされたレジャーバージョンを指定する`ledger_index`フィールドと`ledger_hash`フィールドの代わりに、現在これらのトランザクションに提案されているレジャーバージョンを指定する`ledger_current_index`フィールドが存在する。 上記に該当しない場合、`transactions_proposed`ストリームからのメッセージは`transactions`ストリームからのメッセージと同じです。 @@ -338,36 +346,36 @@ labels: {% tab label="API v2" %} -| フィールド | 型 | 説明 | -|:------------------------|:--------------------------|:-----| -| `close_time_iso` | 文字列 | レジャーの終了時刻をISO 8601の時刻形式で表します。 | -| `type` | 文字列 | `transaction`は、複数の可能なストリームからのトランザクションの通知であることを示します。 | -| `engine_result` | 文字列 | 文字列での[取引結果コード](../../../protocol/transactions/transaction-results/index.md) | -| `engine_result_code` | 数値 | 数値での[取引結果コード](../../../protocol/transactions/transaction-results/index.md) (該当する場合) | -| `engine_result_message` | 文字列 | 人間が読み取れる形式のトランザクションレスポンスの説明 | -| `hash` | 文字列 | トランザクションの一意のハッシュ識別子。 | -| `ledger_current_index` | 数値 - [レジャーインデックス][] | _(未検証のトランザクションのみ)_ このトランザクションが現在提案されている現在進行中の[レジャーバージョン](../../../../concepts/ledgers/index.md)のレジャーインデックス。 | -| `ledger_hash` | 文字列 - [ハッシュ][] | _(検証済みのトランザクションのみ)_ このトランザクションを含むレジャーバージョンの識別用ハッシュ。 | -| `ledger_index` | 数値 - [レジャーインデックス][] | _(検証済みのトランザクションのみ)_ このトランザクションを含むレジャーバージョンのレジャーインデックス。 | -| `meta` | オブジェクト | _(検証済みのトランザクションのみ)_ [トランザクションメタデータ](../../../protocol/transactions/metadata.md)。トランザクションの正確な結果を詳細に表示します。 | -| `tx_json` | オブジェクト | JSONフォーマットの[トランザクションの定義](../../../protocol/transactions/index.md)。 | -| `validated` | ブール値 | `true`の場合、このトランザクションは検証済みのレジャーに含まれており、その結果は最終的であることを意味します。`transaction`ストリームからのレスポンスは常に検証される必要があります。 | +| フィールド | 型 | 説明 | +| :---------------------- | :------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `close_time_iso` | 文字列 | レジャーの終了時刻をISO 8601の時刻形式で表します。 | +| `type` | 文字列 | `transaction`は、複数の可能なストリームからのトランザクションの通知であることを示します。 | +| `engine_result` | 文字列 | 文字列での[取引結果コード](../../../protocol/transactions/transaction-results/index.md) | +| `engine_result_code` | 数値 | 数値での[取引結果コード](../../../protocol/transactions/transaction-results/index.md) (該当する場合) | +| `engine_result_message` | 文字列 | 人間が読み取れる形式のトランザクションレスポンスの説明 | +| `hash` | 文字列 | トランザクションの一意のハッシュ識別子。 | +| `ledger_current_index` | 数値 - [レジャーインデックス][] | _(未検証のトランザクションのみ)_ このトランザクションが現在提案されている現在進行中の[レジャーバージョン](../../../../concepts/ledgers/index.md)のレジャーインデックス。 | +| `ledger_hash` | 文字列 - [ハッシュ][] | _(検証済みのトランザクションのみ)_ このトランザクションを含むレジャーバージョンの識別用ハッシュ。 | +| `ledger_index` | 数値 - [レジャーインデックス][] | _(検証済みのトランザクションのみ)_ このトランザクションを含むレジャーバージョンのレジャーインデックス。 | +| `meta` | オブジェクト | _(検証済みのトランザクションのみ)_ [トランザクションメタデータ](../../../protocol/transactions/metadata.md)。トランザクションの正確な結果を詳細に表示します。 | +| `tx_json` | オブジェクト | JSONフォーマットの[トランザクションの定義](../../../protocol/transactions/index.md)。 | +| `validated` | ブール値 | `true`の場合、このトランザクションは検証済みのレジャーに含まれており、その結果は最終的であることを意味します。`transaction`ストリームからのレスポンスは常に検証される必要があります。 | {% /tab %} {% tab label="API v1" %} -| フィールド | 型 | 説明 | -| :---------------------- | :------------------------------ | ---- | -| `type` | 文字列 | `transaction`は、トランザクションの通知であることを示します。この通知はさまざまなストリームから送信される可能性があります。 | -| `engine_result` | 文字列 | 文字列の[トランザクション結果コード](../../../protocol/transactions/transaction-results/index.md) | -| `engine_result_code` | 数値 | 数値の[トランザクションレスポンスコード](../../../protocol/transactions/transaction-results/index.md)(該当する場合) | -| `engine_result_message` | 文字列 | 人間が読み取れる形式のトランザクションレスポンスの説明 | +| フィールド | 型 | 説明 | +| :---------------------- | :------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `type` | 文字列 | `transaction`は、トランザクションの通知であることを示します。この通知はさまざまなストリームから送信される可能性があります。 | +| `engine_result` | 文字列 | 文字列の[トランザクション結果コード](../../../protocol/transactions/transaction-results/index.md) | +| `engine_result_code` | 数値 | 数値の[トランザクションレスポンスコード](../../../protocol/transactions/transaction-results/index.md)(該当する場合) | +| `engine_result_message` | 文字列 | 人間が読み取れる形式のトランザクションレスポンスの説明 | | `ledger_current_index` | 数値 - [レジャーインデックス][] | _(未検証のトランザクションのみ)_ このトランザクションが現在提案されている現在進行中の[レジャーバージョン](../../../../concepts/ledgers/index.md)のレジャーインデックス。 | -| `ledger_hash` | 文字列 - [ハッシュ][] | _(検証済みのトランザクションのみ)_ このトランザクションを含む レジャーバージョンの識別用ハッシュ。 | -| `ledger_index` | 数値 - [レジャーインデックス][] | _(検証済みのトランザクションのみ)_ このトランザクションを含むレジャーバージョンのレジャーインデックス。 | -| `meta` | オブジェクト | _(検証済みのトランザクションのみ)_ [トランザクションのメタデータ](../../../protocol/transactions/metadata.md)。トランザクションの正確な結果を詳細に表示します。 | -| `transaction` | オブジェクト | JSONフォーマットの[トランザクションの定義](../../../protocol/transactions/index.md)。 | +| `ledger_hash` | 文字列 - [ハッシュ][] | _(検証済みのトランザクションのみ)_ このトランザクションを含む レジャーバージョンの識別用ハッシュ。 | +| `ledger_index` | 数値 - [レジャーインデックス][] | _(検証済みのトランザクションのみ)_ このトランザクションを含むレジャーバージョンのレジャーインデックス。 | +| `meta` | オブジェクト | _(検証済みのトランザクションのみ)_ [トランザクションのメタデータ](../../../protocol/transactions/metadata.md)。トランザクションの正確な結果を詳細に表示します。 | +| `transaction` | オブジェクト | JSONフォーマットの[トランザクションの定義](../../../protocol/transactions/index.md)。 | | `validated` | ブール値 | `true`の場合、このトランザクションは検証済みのレジャーに含まれており、最終的な結果であることを意味します。`transaction`ストリームからのレスポンスは常に検証される必要があります。 | {% /tab %} @@ -382,39 +390,38 @@ labels: ```json { - "action": "CLOSING_LEDGER", - "date": 508546525, - "ledger_hash": "4D4CD9CD543F0C1EF023CC457F5BEFEA59EEF73E4552542D40E7C4FA08D3C320", - "ledger_index": 18853106, - "ledger_index_max": 18853106, - "ledger_index_min": 18852082, - "type": "peerStatusChange" + "action": "CLOSING_LEDGER", + "date": 508546525, + "ledger_hash": "4D4CD9CD543F0C1EF023CC457F5BEFEA59EEF73E4552542D40E7C4FA08D3C320", + "ledger_index": 18853106, + "ledger_index_max": 18853106, + "ledger_index_min": 18852082, + "type": "peerStatusChange" } ``` ピアステータスストリームメッセージは、`rippled`ピアサーバのステータスが変化したイベントを表します。これらのメッセージは、次のフィールドを持つJSONオブジェクトです。 -| フィールド | 値 | 説明 | -| :----------------- | :----- | ---- | -| `type` | 文字列 | `peerStatusChange`は、ピアステータスストリームからのメッセージであることを示します。 | +| フィールド | 値 | 説明 | +| :----------------- | :----- | --------------------------------------------------------------------------------------------------------------------------------------------- | +| `type` | 文字列 | `peerStatusChange`は、ピアステータスストリームからのメッセージであることを示します。 | | `action` | 文字列 | このメッセージが送信される原因となったイベントのタイプ。有効な値については、[ピアステータスイベント](#ピアステータスイベント)をご覧ください。 | -| `date` | 数値 | このイベントが発生した時刻([Rippleエポック以降の経過秒数][]) | -| `ledger_hash` | 文字列 | (省略される場合があります)このメッセージに関連するレジャーバージョンの識別用[ハッシュ][]。 | -| `ledger_index` | 数値 | (省略される場合があります)このメッセージに関連するレジャーバージョンの[レジャーインデックス][]。 | -| `ledger_index_max` | 数値 | (省略される場合があります)ピアで現在使用可能な最大[レジャーインデックス][]。 | -| `ledger_index_min` | 数値 | (省略される場合があります)ピアで現在使用可能な最小[レジャーインデックス][]。 | +| `date` | 数値 | このイベントが発生した時刻([Rippleエポック以降の経過秒数][]) | +| `ledger_hash` | 文字列 | (省略される場合があります)このメッセージに関連するレジャーバージョンの識別用[ハッシュ][]。 | +| `ledger_index` | 数値 | (省略される場合があります)このメッセージに関連するレジャーバージョンの[レジャーインデックス][]。 | +| `ledger_index_max` | 数値 | (省略される場合があります)ピアで現在使用可能な最大[レジャーインデックス][]。 | +| `ledger_index_min` | 数値 | (省略される場合があります)ピアで現在使用可能な最小[レジャーインデックス][]。 | ### ピアステータスイベント ピアステータスストリームメッセージの`action`フィールドには次のいずれかの値が含まれます。 -| `Value` | 意味 | -| :---------------- | ---- | -| `CLOSING_LEDGER` | ピアがこの[レジャーインデックス][]のレジャーバージョンを閉鎖しました。 | +| `Value` | 意味 | +| :---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `CLOSING_LEDGER` | ピアがこの[レジャーインデックス][]のレジャーバージョンを閉鎖しました。 | | `ACCEPTED_LEDGER` | ピアがコンセンサスラウンドの結果としてこのレジャーバージョンを作成しました。**注記:** このレジャーが不変的に検証済みになるかどうかはまだ確実ではありません。 | -| `SWITCHED_LEDGER` | ピアは、ネットワークの他の部分に従っていないと結論付け、異なるレジャーバージョンに切り替えました。 | -| `LOST_SYNC` | ピアは検証済みのレジャーバージョンとコンセンサス処理中のレジャーバージョンの追跡でネットワークの他の部分に遅れをとりました。 | - +| `SWITCHED_LEDGER` | ピアは、ネットワークの他の部分に従っていないと結論付け、異なるレジャーバージョンに切り替えました。 | +| `LOST_SYNC` | ピアは検証済みのレジャーバージョンとコンセンサス処理中のレジャーバージョンの追跡でネットワークの他の部分に遅れをとりました。 | ## オーダーブックストリーム @@ -566,11 +573,10 @@ labels: オーダーブックストリームメッセージの形式は、[トランザクションストリームメッセージ](#トランザクションストリーム)と同様ですが、`OfferCreate`トランザクションに以下のフィールドも含まれている点が異なります。 -| フィールド | 値 | 説明 | -| :------------------------ | :----- | ---- | +| フィールド | 値 | 説明 | +| :------------------------ | :----- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `transaction.owner_funds` | 文字列 | このOfferCreateトランザクションを送信する`Account`が、このトランザクション実行後に有する`TakerGets`通貨の金額。この通貨額が[フリーズ](../../../../concepts/tokens/fungible-tokens/freezes.md)されているかどうかはチェックされません。
[API v2][]では`tx_json.owner_funds`に変更されました。 | - ## Book Changesストリーム `book_changes`ストリームは、新しいレジャーが検証されると`bookChanges`メッセージを送信します。このメッセージには、そのレジャーで分散型取引所で発生したすべてのオーダーブックの変更の概要が含まれています。 @@ -700,15 +706,14 @@ labels: [Book Changes]ストリームメッセージのフィールドは以下のとおりです: -| フィールド | 値 | 説明 | -|:---------------|:-------------------------|:-----| -| `type` | 文字列 | 値`bookChanges`は、これがBook Changesストリームからのものであることを示します。 | -| `ledger_index` | [レジャーインデックス][] | これらの変更を含むレジャーのレジャーインデックス。 | -| `ledger_hash` | [ハッシュ][] | これらの変更を含むレジャーの識別用ハッシュ。 | -| `ledger_time` | 数値 | これらの変更を含むレジャーの公式的な閉鎖時刻。[リップルエポック](../../../../concepts/ledgers/index.md#ripple-epoch)からの秒数。 | +| フィールド | 値 | 説明 | +| :------------- | :----------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `type` | 文字列 | 値`bookChanges`は、これがBook Changesストリームからのものであることを示します。 | +| `ledger_index` | [レジャーインデックス][] | これらの変更を含むレジャーのレジャーインデックス。 | +| `ledger_hash` | [ハッシュ][] | これらの変更を含むレジャーの識別用ハッシュ。 | +| `ledger_time` | 数値 | これらの変更を含むレジャーの公式的な閉鎖時刻。[リップルエポック](../../../../concepts/ledgers/index.md#ripple-epoch)からの秒数。 | | `changes` | 配列 | [Book Update Objects](../path-and-order-book-methods/book_changes.md#book-update-objects)のリスト。このレジャーバージョンで更新された各オーダーブックに対して1つのエントリが含まれます。オーダーブックが更新されなかった場合、配列は空です。 | - ## コンセンサスストリーム `consensus`ストリームは、[コンセンサスプロセス](../../../../concepts/consensus-protocol/index.md)でフェーズが変更されると、`consensusPhase`メッセージを送信します。このメッセージには、サーバで実行されているコンセンサスの新しいフェーズが含まれます。 @@ -722,9 +727,9 @@ labels: コンセンサスストリームメッセージのフィールドは次のとおりです。 -| フィールド | 型 | 説明 | -| :---------- | :----- | ---- | -| `type` | 文字列 | `consensusPhase`は、このメッセージがコンセンサスストリームからのものであることを示します。 | +| フィールド | 型 | 説明 | +| :---------- | :----- | --------------------------------------------------------------------------------------------------------- | +| `type` | 文字列 | `consensusPhase`は、このメッセージがコンセンサスストリームからのものであることを示します。 | | `consensus` | 文字列 | サーバで実行されている新しいコンセンサスフェーズ。値には、`open`、`establish`、`accepted`などがあります。 | {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/subscription-methods/unsubscribe.md b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/subscription-methods/unsubscribe.md index 856421099b..3c0fe820d9 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/subscription-methods/unsubscribe.md +++ b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/subscription-methods/unsubscribe.md @@ -2,45 +2,50 @@ html: unsubscribe.html parent: subscription-methods.html seo: - description: 特定のサブスクリプションまたは一連のサブスクリプションへのメッセージ送信の停止を指示します。 + description: 特定のサブスクリプションまたは一連のサブスクリプションへのメッセージ送信の停止を指示します。 labels: - 支払い - アカウント - ブロックチェーン - スマートコントラクト --- + # unsubscribe + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/Unsubscribe.cpp "Source") `unsubscribe`コマンドはサーバに対して、特定のサブスクリプションまたは一連のサブスクリプションへのメッセージ送信の停止を指示します。 ## リクエストのフォーマット + リクエストのフォーマットの例: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id":"Unsubscribe a lot of stuff", - "command":"unsubscribe", - "streams":["ledger","server","transactions","transactions_proposed"], - "accounts":["rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1"], - "accounts_proposed":["rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1"], - "books":[ - { - "taker_pays":{ - "currency":"XRP" - }, - "taker_gets":{ - "currency":"USD", - "issuer":"rUQTpMqAF5jhykj4FExVeXakrZpiKF6cQV" - }, - "both": true - } - ] + "id": "Unsubscribe a lot of stuff", + "command": "unsubscribe", + "streams": ["ledger", "server", "transactions", "transactions_proposed"], + "accounts": ["rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1"], + "accounts_proposed": ["rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1"], + "books": [ + { + "taker_pays": { + "currency": "XRP" + }, + "taker_gets": { + "currency": "USD", + "issuer": "rUQTpMqAF5jhykj4FExVeXakrZpiKF6cQV" + }, + "both": true + } + ] } ``` + {% /tab %} {% /tabs %} @@ -49,22 +54,22 @@ labels: このリクエストのパラメーターは、[subscribeメソッド][]のパラメーターとほぼ同様の方法で指定されますが、終了するサブスクリプションを定義するために使用される点が異なります。これらのパラメーターを以下に示します。 -| `Field` | 型 | 説明 | -|:--------------------|:------|:-----------------------------------------------| -| `streams` | 配列 | _(省略可)_ サブスクライブを解除する汎用ストリームの文字列名の配列(`ledger`、`server`、`transactions`、`transactions_proposed`など)。 | +| `Field` | 型 | 説明 | +| :------------------ | :--- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `streams` | 配列 | _(省略可)_ サブスクライブを解除する汎用ストリームの文字列名の配列(`ledger`、`server`、`transactions`、`transactions_proposed`など)。 | | `accounts` | 配列 | _(省略可)_ 更新の受信を停止する一意のアカウントアドレスの配列(XRP Ledgerの[base58][]フォーマット)。(以前にこれらのアカウントをサブスクライブしていた場合にのみ、メッセージが停止されます。一般のトランザクションストリームからアカウントを除外する目的では使用できません。) | -| `accounts_proposed` | 配列 | _(省略可)_`accounts`と同様ですが、未検証のトランザクションを含む`accounts_proposed`サブスクリプションを対象としています。 | -| `books` | 配列 | _(省略可)_ 以下に説明するように、サブスクライブ解除するオーダーブックを定義するオブジェクトの配列。 | +| `accounts_proposed` | 配列 | _(省略可)_`accounts`と同様ですが、未検証のトランザクションを含む`accounts_proposed`サブスクリプションを対象としています。 | +| `books` | 配列 | _(省略可)_ 以下に説明するように、サブスクライブ解除するオーダーブックを定義するオブジェクトの配列。 | `rt_accounts`パラメーター、`url`パラメーター、`rt_transactions`ストリーム名は廃止予定であり、今後予告なしに削除される可能性があります。 `books`配列のオブジェクトは、subscribeのオブジェクトと同様に定義されますが、一部のフィールドが含まれていない点が異なります。このオブジェクトのフィールドを次に示します。 -| `Field` | 型 | 説明 | -|:-------------|:--------|:----------------------------------------------------| -| `taker_gets` | オブジェクト | オファーを受諾するアカウントが受け取る通貨を、[通貨額][]と同様、`currency`フィールドと`issuer`フィールドを持つオブジェクトとして指定します(XRPの場合はissuerを省略)。 | -| `taker_pays` | オブジェクト | オファーを受諾するアカウントが支払う通貨を、[通貨額][]と同様、`currency`フィールドと`issuer`フィールドを持つオブジェクトとして指定します(XRPの場合はissuerを省略)。 | -| `both` | ブール値 | (省略可、デフォルトではfalse)trueの場合は、オーダーブックの両サイドからサブスクリプションを削除します。 | +| `Field` | 型 | 説明 | +| :----------- | :----------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `taker_gets` | オブジェクト | オファーを受諾するアカウントが受け取る通貨を、[通貨額][]と同様、`currency`フィールドと`issuer`フィールドを持つオブジェクトとして指定します(XRPの場合はissuerを省略)。 | +| `taker_pays` | オブジェクト | オファーを受諾するアカウントが支払う通貨を、[通貨額][]と同様、`currency`フィールドと`issuer`フィールドを持つオブジェクトとして指定します(XRPの場合はissuerを省略)。 | +| `both` | ブール値 | (省略可、デフォルトではfalse)trueの場合は、オーダーブックの両サイドからサブスクリプションを削除します。 | ## レスポンスのフォーマット @@ -73,14 +78,16 @@ labels: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id":"Unsubscribe a lot of stuff", - "result":{}, - "status":"success", - "type":"response" + "id": "Unsubscribe a lot of stuff", + "result": {}, + "status": "success", + "type": "response" } ``` + {% /tab %} {% /tabs %} @@ -89,16 +96,16 @@ labels: ## 考えられるエラー -* [汎用エラータイプ][]のすべて。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* `noPermission` - リクエストに`url`フィールドが指定されていますが、管理者として接続していません。 -* `malformedStream` - リクエストの`streams`フィールドのフォーマットが適切ではありません。 -* `malformedAccount` - リクエストの`accounts`または`accounts_proposed`フィールドのアドレスの1つが、適切なフォーマットのXRP Ledgerアドレスではありません。 - * **注記:** グローバルレジャーにエントリがまだ作成されていないアドレスのストリームをサブスクライブ _できます_ 。このようにサブスクライブして、そのアドレスに資金が供給されたらメッセージを受け取ることができます。 -* `srcCurMalformed` - リクエストの`books`フィールドの1つ以上の`taker_pays`サブフィールドのフォーマットが適切ではありません。 -* `dstAmtMalformed` - リクエストの`books`フィールドの1つ以上の`taker_gets`サブフィールドのフォーマットが適切ではありません。 -* `srcIsrMalformed` - リクエストの`books`フィールドの1つ以上の`taker_pays`サブフィールドの`issuer`フィールドが無効です。 -* `dstIsrMalformed` - リクエストの`books`フィールドの1つ以上の`taker_gets`サブフィールドの`issuer`フィールドが無効です。 -* `badMarket` - `books` フィールドに指定されている1つ以上のオーダーブックが存在していません(ある通貨をその通貨自体と交換するオファーなど)。 +- [汎用エラータイプ][]のすべて。 +- `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 +- `noPermission` - リクエストに`url`フィールドが指定されていますが、管理者として接続していません。 +- `malformedStream` - リクエストの`streams`フィールドのフォーマットが適切ではありません。 +- `malformedAccount` - リクエストの`accounts`または`accounts_proposed`フィールドのアドレスの1つが、適切なフォーマットのXRP Ledgerアドレスではありません。 + - **注記:** グローバルレジャーにエントリがまだ作成されていないアドレスのストリームをサブスクライブ _できます_ 。このようにサブスクライブして、そのアドレスに資金が供給されたらメッセージを受け取ることができます。 +- `srcCurMalformed` - リクエストの`books`フィールドの1つ以上の`taker_pays`サブフィールドのフォーマットが適切ではありません。 +- `dstAmtMalformed` - リクエストの`books`フィールドの1つ以上の`taker_gets`サブフィールドのフォーマットが適切ではありません。 +- `srcIsrMalformed` - リクエストの`books`フィールドの1つ以上の`taker_pays`サブフィールドの`issuer`フィールドが無効です。 +- `dstIsrMalformed` - リクエストの`books`フィールドの1つ以上の`taker_gets`サブフィールドの`issuer`フィールドが無効です。 +- `badMarket` - `books` フィールドに指定されている1つ以上のオーダーブックが存在していません(ある通貨をその通貨自体と交換するオファーなど)。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/transaction-methods/index.md b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/transaction-methods/index.md index 0223449aaa..de1455da9a 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/transaction-methods/index.md +++ b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/transaction-methods/index.md @@ -1,12 +1,12 @@ --- -html: transaction-methods.html # watch for clashes w/ this filename +html: transaction-methods.html # watch for clashes w/ this filename parent: public-api-methods.html metadata: indexPage: true --- + # Transactionメソッド トランザクションだけが、XRP Ledgerの共有されている状態を変更できます。XRP Ledgerに対するすべてのビジネスはトランザクションの形態をとります。以下のメソッドを使用して、トランザクションを処理します。 - {% child-pages /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/transaction-methods/simulate.md b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/transaction-methods/simulate.md index ae0a90ccf3..a45dbf0b8f 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/transaction-methods/simulate.md +++ b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/transaction-methods/simulate.md @@ -1,10 +1,12 @@ --- seo: - description: あらゆる種類のトランザクションを仮実行して、結果とメタデータをプレビューします。 + description: あらゆる種類のトランザクションを仮実行して、結果とメタデータをプレビューします。 labels: - トランザクション送信 --- + # simulate + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/Simulate.cpp "ソース") `simulate` メソッドは、あらゆる トランザクションを仮実行し、XRP Ledger に反映することなく、その結果やメタデータを事前に確認できます。このコマンドはネットワークにトランザクションを送信しないため、手数料は発生しません。 @@ -13,7 +15,6 @@ labels: `simulate` メソッドの結果は、実際にトランザクションを送信したときと同じになるとは限りません。これは、トランザクションの処理に影響する台帳の状態が、シミュレーションと送信の間に変化する可能性があるためです。 {% /admonition %} - ## リクエストのフォーマット リクエストのフォーマットの例: @@ -21,42 +22,46 @@ labels: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": 2, - "command": "simulate", - "tx_json" : { - "TransactionType" : "Payment", - "Account" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "Destination" : "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "Amount" : { - "currency" : "USD", - "value" : "1", - "issuer" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn" - } + "id": 2, + "command": "simulate", + "tx_json": { + "TransactionType": "Payment", + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "Amount": { + "currency": "USD", + "value": "1", + "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn" } + } } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "simulate", - "params": { - "tx_json" : { - "TransactionType" : "Payment", - "Account" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "Destination" : "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "Amount" : { - "currency" : "USD", - "value" : "1", - "issuer" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn" - } - } + "method": "simulate", + "params": { + "tx_json": { + "TransactionType": "Payment", + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "Amount": { + "currency": "USD", + "value": "1", + "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn" + } } + } } ``` + {% /tab %} {% /tabs %} @@ -65,11 +70,11 @@ labels: リクエストには以下のパラメーターが含まれます。 -| フィールド | 型 | 必須? | 説明 | -| --------- | ------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `tx_blob` | 文字列 | はい | シミュレーション対象のトランザクションを[バイナリフォーマット](https://xrpl.org/ja/docs/references/protocol/binary-format)で指定します。このフィールドを使用する場合、`tx_json`は同時に指定しないでください。 | -| `tx_json` | オブジェクト | はい | シミュレーション対象のトランザクションをJSON形式で指定します。このフィールドを使用する場合は、`tx_blob`を同時に指定しないでください。 | -| `binary` | ブール値 | いいえ | デフォルト値は`false`であり、この場合はデータとメタデータがJSON形式で返されます。`true`を指定すると、データとメタデータはバイナリフォーマットで返され、16進文字列としてシリアライズされます。 | +| フィールド | 型 | 必須? | 説明 | +| ---------- | ------------ | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `tx_blob` | 文字列 | はい | シミュレーション対象のトランザクションを[バイナリフォーマット](https://xrpl.org/ja/docs/references/protocol/binary-format)で指定します。このフィールドを使用する場合、`tx_json`は同時に指定しないでください。 | +| `tx_json` | オブジェクト | はい | シミュレーション対象のトランザクションをJSON形式で指定します。このフィールドを使用する場合は、`tx_blob`を同時に指定しないでください。 | +| `binary` | ブール値 | いいえ | デフォルト値は`false`であり、この場合はデータとメタデータがJSON形式で返されます。`true`を指定すると、データとメタデータはバイナリフォーマットで返され、16進文字列としてシリアライズされます。 | - シミュレーションで使用するトランザクションは、未署名でなければなりません。 - `Fee`、`Sequence`、`SigningPubKey`、または`NetworkID`フィールドが指定されている場合、それらはトランザクションに使用されます。指定されていない場合は、サーバーが自動的に補完します。 @@ -175,18 +180,17 @@ labels: レスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 -| フィールド | 型 | 説明 | -| -------------- | ------ | ----------- | -| `tx_json` | オブジェクト | 自動補完された値を含む、シミュレーションされたトランザクション。`binary`が`false`の場合に含まれます。 | -| `tx_blob` | 文字列 | 自動補完された値を含む、シリアライズされたシミュレーションされたトランザクション。`binary`が`true`の場合に含まれます。 | -| `ledger_index` | [レジャーインデックス](https://xrpl.org/ja/docs/references/protocol/data-types/basic-data-types#レジャーインデックス) | このトランザクションが含まれていたであろうレジャーインデックス。 | -| `meta` | オブジェクト | トランザクションの結果を示すメタデータ。台帳に含まれないことを意味するコード(たとえば TEC 以外のコード)でトランザクションが失敗した場合は含まれません。`binary`が`false`の場合に含まれます。 | -| `meta_blob` | 文字列 | トランザクションの結果を示すメタデータ。台帳に含まれないことを意味するコード(たとえば TEC 以外のコード)でトランザクションが失敗した場合は含まれません。`binary`が`true`の場合に含まれます。 | - +| フィールド | 型 | 説明 | +| -------------- | --------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `tx_json` | オブジェクト | 自動補完された値を含む、シミュレーションされたトランザクション。`binary`が`false`の場合に含まれます。 | +| `tx_blob` | 文字列 | 自動補完された値を含む、シリアライズされたシミュレーションされたトランザクション。`binary`が`true`の場合に含まれます。 | +| `ledger_index` | [レジャーインデックス](https://xrpl.org/ja/docs/references/protocol/data-types/basic-data-types#レジャーインデックス) | このトランザクションが含まれていたであろうレジャーインデックス。 | +| `meta` | オブジェクト | トランザクションの結果を示すメタデータ。台帳に含まれないことを意味するコード(たとえば TEC 以外のコード)でトランザクションが失敗した場合は含まれません。`binary`が`false`の場合に含まれます。 | +| `meta_blob` | 文字列 | トランザクションの結果を示すメタデータ。台帳に含まれないことを意味するコード(たとえば TEC 以外のコード)でトランザクションが失敗した場合は含まれません。`binary`が`true`の場合に含まれます。 | ## 考えられるエラー -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* `transactionSigned` - トランザクションが署名済みです。シミュレーションで使用するトランザクションは、未署名でなければなりません。 +- `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 +- `transactionSigned` - トランザクションが署名済みです。シミュレーションで使用するトランザクションは、未署名でなければなりません。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/transaction-methods/submit.md b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/transaction-methods/submit.md index aaadb394de..682ff15a4d 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/transaction-methods/submit.md +++ b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/transaction-methods/submit.md @@ -2,20 +2,22 @@ html: submit.html parent: transaction-methods.html seo: - description: トランザクションを適用し、トランザクションの確認と将来のレジャーへの記録が行われるように、ネットワークに送信します。 + description: トランザクションを適用し、トランザクションの確認と将来のレジャーへの記録が行われるように、ネットワークに送信します。 labels: - トランザクション送信 - 支払い --- + # submit + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/Submit.cpp "ソース") `submit`メソッドは[トランザクション](../../../protocol/transactions/index.md)を適用し、トランザクションの確認と将来のレジャーへの記録が行われるように、ネットワークに送信します。 このコマンドには、以下の2つのモードがあります。 -* 送信専用モードは、署名済みのシリアル化されたトランザクションをBlobとして取得し、そのままネットワークに送信します。署名済みのトランザクションオブジェクトは不変のものであるため、送信後は、どの部分も修正したり、自動的に内容を入力したりすることはできません。 -* 署名と送信モードでは、JSONフォーマットのトランザクションオブジェクトを取得し、[signメソッド][]と同じ方法でトランザクションを完成させて署名し、署名済みのトランザクションを送信します。テストと開発に関しては、このモードのみ使用することをお勧めします。 +- 送信専用モードは、署名済みのシリアル化されたトランザクションをBlobとして取得し、そのままネットワークに送信します。署名済みのトランザクションオブジェクトは不変のものであるため、送信後は、どの部分も修正したり、自動的に内容を入力したりすることはできません。 +- 署名と送信モードでは、JSONフォーマットのトランザクションオブジェクトを取得し、[signメソッド][]と同じ方法でトランザクションを完成させて署名し、署名済みのトランザクションを送信します。テストと開発に関しては、このモードのみ使用することをお勧めします。 トランザクションを可能な限り確実に送信するには、トランザクションを事前に生成して[sign][signメソッド]メソッドで署名し、停電発生後もアクセスできるいずれかの場所に保存した後、`tx_blob`として`submit`メソッドで送信します。送信後は、ネットワークを[txメソッド][]コマンドで監視して、トランザクションが正常に適用されたかどうかを確認します。再起動やその他の問題が発生した場合ても、`tx_blob`のトランザクションを問題なく再送信できます。シーケンス番号が以前のトランザクションと同一であるため、トランザクションが2回適用されることはありません。 @@ -23,138 +25,150 @@ labels: 送信専用のリクエストでは、以下のパラメーターを指定します。 -| `Field` | 型 | 説明 | -|:------------|:--------|:-----------------------------------------------------| -| `tx_blob` | 文字列 | 送信する署名済みトランザクションの16進表現。[マルチシグトランザクション](../../../../concepts/accounts/multi-signing.md)を送信することもできます。 | -| `fail_hard` | ブール値 | (省略可。デフォルトはfalse)trueにした場合は、トランザクションがローカルで失敗したときに再試行されず、他のサーバにも中継されません。 | +| `Field` | 型 | 説明 | +| :---------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------- | +| `tx_blob` | 文字列 | 送信する署名済みトランザクションの16進表現。[マルチシグトランザクション](../../../../concepts/accounts/multi-signing.md)を送信することもできます。 | +| `fail_hard` | ブール値 | (省略可。デフォルトはfalse)trueにした場合は、トランザクションがローカルで失敗したときに再試行されず、他のサーバにも中継されません。 | ### リクエストのフォーマット {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": 3, - "command": "submit", - "tx_blob": "1200002280000000240000001E61D4838D7EA4C6800000000000000000000000000055534400000000004B4E9C06F24296074F7BC48F92A97916C6DC5EA968400000000000000B732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB7447304502210095D23D8AF107DF50651F266259CC7139D0CD0C64ABBA3A958156352A0D95A21E02207FCF9B77D7510380E49FF250C21B57169E14E9B4ACFD314CEDC79DDD0A38B8A681144B4E9C06F24296074F7BC48F92A97916C6DC5EA983143E9D4A2B8AA0780F682D136F7A56D6724EF53754" + "id": 3, + "command": "submit", + "tx_blob": "1200002280000000240000001E61D4838D7EA4C6800000000000000000000000000055534400000000004B4E9C06F24296074F7BC48F92A97916C6DC5EA968400000000000000B732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB7447304502210095D23D8AF107DF50651F266259CC7139D0CD0C64ABBA3A958156352A0D95A21E02207FCF9B77D7510380E49FF250C21B57169E14E9B4ACFD314CEDC79DDD0A38B8A681144B4E9C06F24296074F7BC48F92A97916C6DC5EA983143E9D4A2B8AA0780F682D136F7A56D6724EF53754" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "submit", - "params": [ - { - "tx_blob": "1200002280000000240000000361D4838D7EA4C6800000000000000000000000000055534400000000004B4E9C06F24296074F7BC48F92A97916C6DC5EA968400000000000000A732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB74473045022100D184EB4AE5956FF600E7536EE459345C7BBCF097A84CC61A93B9AF7197EDB98702201CEA8009B7BEEBAA2AACC0359B41C427C1C5B550A4CA4B80CF2174AF2D6D5DCE81144B4E9C06F24296074F7BC48F92A97916C6DC5EA983143E9D4A2B8AA0780F682D136F7A56D6724EF53754" - } - ] + "method": "submit", + "params": [ + { + "tx_blob": "1200002280000000240000000361D4838D7EA4C6800000000000000000000000000055534400000000004B4E9C06F24296074F7BC48F92A97916C6DC5EA968400000000000000A732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB74473045022100D184EB4AE5956FF600E7536EE459345C7BBCF097A84CC61A93B9AF7197EDB98702201CEA8009B7BEEBAA2AACC0359B41C427C1C5B550A4CA4B80CF2174AF2D6D5DCE81144B4E9C06F24296074F7BC48F92A97916C6DC5EA983143E9D4A2B8AA0780F682D136F7A56D6724EF53754" + } + ] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh #Syntax: submit tx_blob submit 1200002280000000240000000361D4838D7EA4C6800000000000000000000000000055534400000000004B4E9C06F24296074F7BC48F92A97916C6DC5EA968400000000000000A732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB74473045022100D184EB4AE5956FF600E7536EE459345C7BBCF097A84CC61A93B9AF7197EDB98702201CEA8009B7BEEBAA2AACC0359B41C427C1C5B550A4CA4B80CF2174AF2D6D5DCE81144B4E9C06F24296074F7BC48F92A97916C6DC5EA983143E9D4A2B8AA0780F682D136F7A56D6724EF53754 ``` + {% /tab %} {% /tabs %} {% try-it method="submit" /%} - ## 署名と送信モード このモードでは、トランザクションに署名してただちに送信します。このモードは、テストで使用することを目的としています。[マルチシグトランザクション](../../../../concepts/accounts/multi-signing.md)には使用できません。 - _デフォルトでは、署名と送信モードは[管理者専用](../../admin-api-methods/index.md)です。_ サーバで[パブリック署名が有効になっている](../../../../infrastructure/configuration/enable-public-signing.md)場合は、パブリックメソッドとして使用できます。 +_デフォルトでは、署名と送信モードは[管理者専用](../../admin-api-methods/index.md)です。_ サーバで[パブリック署名が有効になっている](../../../../infrastructure/configuration/enable-public-signing.md)場合は、パブリックメソッドとして使用できます。 トランザクションの署名に使用するシークレットキーは、以下の方法で提供できます。 -* `secret`値を指定し、`key_type`フィールドを省略します。この値は、XRP Ledgerの[base58][]シード、RFC-1751、16進値のフォーマットで記述するか、文字列パスフレーズとして記述します(secp256k1キーのみ)。 -* `key_type`値と、`seed`、`seed_hex`、または`passphrase`のいずれか1つを提供します。`secret`フィールドは省略します(コマンドライン構文ではサポートされません)。 +- `secret`値を指定し、`key_type`フィールドを省略します。この値は、XRP Ledgerの[base58][]シード、RFC-1751、16進値のフォーマットで記述するか、文字列パスフレーズとして記述します(secp256k1キーのみ)。 +- `key_type`値と、`seed`、`seed_hex`、または`passphrase`のいずれか1つを提供します。`secret`フィールドは省略します(コマンドライン構文ではサポートされません)。 リクエストには以下のパラメーターが含まれます。 -| `Field` | 型 | 説明 | -|:---------------|:--------|:--------------------------------------------------| -| `tx_json` | オブジェクト | JSONフォーマットの[トランザクション定義](../../../protocol/transactions/index.md)。自動入力可能なフィールドについては、省略することも可能です。 | -| `secret` | 文字列 | _(省略可)_ トランザクションを提供するアカウントのシークレットキー。トランザクションへの署名に使用されます。信頼できないサーバに対して、またはセキュリティが確保されていないネットワーク接続を通じて機密情報を送信しないでください。`key_type`、`seed`、`seed_hex`、`passphrase`と同時に使用することはできません。 | -| `seed` | 文字列 | _(省略可)_ トランザクションを提供するアカウントのシークレットキー。トランザクションへの署名に使用されます。XRP Ledgerの[base58][]フォーマットにする必要があります。指定する場合は、`key_type`も指定する必要があります。`secret`、`seed_hex`、`passphrase`と同時に使用することはできません。 | -| `seed_hex` | 文字列 | _(省略可)_ トランザクションを提供するアカウントのシークレットキー。トランザクションへの署名に使用されます。16進フォーマットにする必要があります。指定する場合は、`key_type`も指定する必要があります。`secret`、`seed`、`passphrase`と同時に使用することはできません。 | -| `passphrase` | 文字列 | _(省略可)_ トランザクションを提供するアカウントのシークレットキー。文字列パスフレーズとして、トランザクションへの署名に使用されます。指定する場合は、`key_type`も指定する必要があります。`secret`、`seed`、`seed_hex`と同時に使用することはできません。 | -| `key_type` | 文字列 | _(省略可)_ このリクエストで提供する暗号鍵の種類。有効な種類は、`secp256k1`または`ed25519`です。デフォルトは`secp256k1`です。`secret`と同時に使用することはできません。**注意:** Ed25519のサポートは実験的な機能です。 | -| `fail_hard` | ブール値 | (省略可。デフォルトはfalse)trueにした場合は、トランザクションがローカルで失敗したときに再試行されず、他のサーバにも中継されません。 | -| `offline` | ブール値 | (省略可。デフォルトはfalse)trueにする場合は、トランザクションの生成時に、値を自動で入力または検証しようとしないでください。 | -| `build_path` | ブール値 | _(省略可)_ Payment型のトランザクションに対して指定した場合、署名前に`Paths`フィールドが自動で入力されます。トランザクションがXRP間の直接移動である場合は、このフィールドを省略してください。**注意:** サーバは、このフィールドの値ではなく、このフィールドが存在するかどうかを調べます。この動作は変更される可能性があります。 | -| `fee_mult_max` | 整数 | (省略可。デフォルトは10、推奨値は1000)`Fee`パラメーターを省略する場合は、自動的に提供される`Fee`値が長期の基本トランザクションコストとこの値の積以下になるよう、このフィールドで制限します。 | -| `fee_div_max` | 整数 | (省略可。デフォルトは1)`fee_mult_max`と併用して、制限に使用される分数の乗数を作成します。具体的には、サーバは基本[トランザクションコスト](../../../../concepts/transactions/transaction-cost.md)を`fee_mult_max`で乗算した後、この値で除算して上限値(整数値に丸められます)を割り出します。自動的に提供される`Fee`値が上限値を超えている場合、submitコマンドは失敗します。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.30.1" %}新規: rippled 0.30.1{% /badge %} | +| `Field` | 型 | 説明 | +| :------------- | :----------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `tx_json` | オブジェクト | JSONフォーマットの[トランザクション定義](../../../protocol/transactions/index.md)。自動入力可能なフィールドについては、省略することも可能です。 | +| `secret` | 文字列 | _(省略可)_ トランザクションを提供するアカウントのシークレットキー。トランザクションへの署名に使用されます。信頼できないサーバに対して、またはセキュリティが確保されていないネットワーク接続を通じて機密情報を送信しないでください。`key_type`、`seed`、`seed_hex`、`passphrase`と同時に使用することはできません。 | +| `seed` | 文字列 | _(省略可)_ トランザクションを提供するアカウントのシークレットキー。トランザクションへの署名に使用されます。XRP Ledgerの[base58][]フォーマットにする必要があります。指定する場合は、`key_type`も指定する必要があります。`secret`、`seed_hex`、`passphrase`と同時に使用することはできません。 | +| `seed_hex` | 文字列 | _(省略可)_ トランザクションを提供するアカウントのシークレットキー。トランザクションへの署名に使用されます。16進フォーマットにする必要があります。指定する場合は、`key_type`も指定する必要があります。`secret`、`seed`、`passphrase`と同時に使用することはできません。 | +| `passphrase` | 文字列 | _(省略可)_ トランザクションを提供するアカウントのシークレットキー。文字列パスフレーズとして、トランザクションへの署名に使用されます。指定する場合は、`key_type`も指定する必要があります。`secret`、`seed`、`seed_hex`と同時に使用することはできません。 | +| `key_type` | 文字列 | _(省略可)_ このリクエストで提供する暗号鍵の種類。有効な種類は、`secp256k1`または`ed25519`です。デフォルトは`secp256k1`です。`secret`と同時に使用することはできません。**注意:** Ed25519のサポートは実験的な機能です。 | +| `fail_hard` | ブール値 | (省略可。デフォルトはfalse)trueにした場合は、トランザクションがローカルで失敗したときに再試行されず、他のサーバにも中継されません。 | +| `offline` | ブール値 | (省略可。デフォルトはfalse)trueにする場合は、トランザクションの生成時に、値を自動で入力または検証しようとしないでください。 | +| `build_path` | ブール値 | _(省略可)_ Payment型のトランザクションに対して指定した場合、署名前に`Paths`フィールドが自動で入力されます。トランザクションがXRP間の直接移動である場合は、このフィールドを省略してください。**注意:** サーバは、このフィールドの値ではなく、このフィールドが存在するかどうかを調べます。この動作は変更される可能性があります。 | +| `fee_mult_max` | 整数 | (省略可。デフォルトは10、推奨値は1000)`Fee`パラメーターを省略する場合は、自動的に提供される`Fee`値が長期の基本トランザクションコストとこの値の積以下になるよう、このフィールドで制限します。 | +| `fee_div_max` | 整数 | (省略可。デフォルトは1)`fee_mult_max`と併用して、制限に使用される分数の乗数を作成します。具体的には、サーバは基本[トランザクションコスト](../../../../concepts/transactions/transaction-cost.md)を`fee_mult_max`で乗算した後、この値で除算して上限値(整数値に丸められます)を割り出します。自動的に提供される`Fee`値が上限値を超えている場合、submitコマンドは失敗します。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.30.1" %}新規: rippled 0.30.1{% /badge %} | サーバによって特定のフィールドにどのように値が自動入力されるかについては、[signメソッド][]をご覧ください。 ### リクエストのフォーマット + リクエストのフォーマットの例: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 2, "api_version": 2, "command": "submit", - "tx_json" : { - "TransactionType" : "Payment", - "Account" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "Destination" : "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "DeliverMax" : { - "currency" : "USD", - "value" : "1", - "issuer" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn" - } - }, - "secret" : "s████████████████████████████", - "offline": false, - "fee_mult_max": 1000 + "tx_json": { + "TransactionType": "Payment", + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "DeliverMax": { + "currency": "USD", + "value": "1", + "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn" + } + }, + "secret": "s████████████████████████████", + "offline": false, + "fee_mult_max": 1000 } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "submit", - "params": [ - { - "offline": false, - "api_version": 2, - "secret": "s████████████████████████████", - "tx_json": { - "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "DeliverMax": { - "currency": "USD", - "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "value": "1" - }, - "Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "TransactionType": "Payment" - }, - "fee_mult_max": 1000 - } - ] + "method": "submit", + "params": [ + { + "offline": false, + "api_version": 2, + "secret": "s████████████████████████████", + "tx_json": { + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "DeliverMax": { + "currency": "USD", + "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "value": "1" + }, + "Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "TransactionType": "Payment" + }, + "fee_mult_max": 1000 + } + ] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh #Syntax: submit secret json [offline] rippled submit s████████████████████████████ '{"Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", "DeliverMax": { "currency": "USD", "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", "value": "1" }, "Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", "TransactionType": "Payment", "Fee": "10000"}' ``` + {% /tab %} {% /tabs %} @@ -168,6 +182,7 @@ rippled submit s█████████████████████ {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 1, @@ -175,17 +190,17 @@ rippled submit s█████████████████████ "status": "success", "type": "response", "result": { - "accepted" : true, - "account_sequence_available" : 362, - "account_sequence_next" : 362, - "applied" : true, - "broadcast" : true, + "accepted": true, + "account_sequence_available": 362, + "account_sequence_next": 362, + "applied": true, + "broadcast": true, "engine_result": "tesSUCCESS", "engine_result_code": 0, "engine_result_message": "The transaction was applied. Only final in a validated ledger.", - "kept" : true, + "kept": true, "open_ledger_cost": "10", - "queued" : false, + "queued": false, "tx_blob": "1200002280000000240000016861D4838D7EA4C6800000000000000000000000000055534400000000004B4E9C06F24296074F7BC48F92A97916C6DC5EA9684000000000002710732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB7446304402200E5C2DD81FDF0BE9AB2A8D797885ED49E804DBF28E806604D878756410CA98B102203349581946B0DDA06B36B35DBC20EDA27552C1F167BCF5C6ECFF49C6A46F858081144B4E9C06F24296074F7BC48F92A97916C6DC5EA983143E9D4A2B8AA0780F682D136F7A56D6724EF53754", "tx_json": { "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", @@ -203,52 +218,56 @@ rippled submit s█████████████████████ "TxnSignature": "304402200E5C2DD81FDF0BE9AB2A8D797885ED49E804DBF28E806604D878756410CA98B102203349581946B0DDA06B36B35DBC20EDA27552C1F167BCF5C6ECFF49C6A46F8580", "hash": "4D5D90890F8D49519E4151938601EF3D0B30B16CD6A519D9C99102C9FA77F7E0" }, - "validated_ledger_index" : 21184416 + "validated_ledger_index": 21184416 } } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "result": { - "accepted" : true, - "account_sequence_available" : 362, - "account_sequence_next" : 362, - "applied" : true, - "broadcast" : true, - "engine_result": "tesSUCCESS", - "engine_result_code": 0, - "engine_result_message": "The transaction was applied. Only final in a validated ledger.", - "status": "success", - "kept" : true, - "open_ledger_cost": "10", - "queued" : false, - "tx_blob": "1200002280000000240000016961D4838D7EA4C6800000000000000000000000000055534400000000004B4E9C06F24296074F7BC48F92A97916C6DC5EA9684000000000002710732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB74473045022100A7CCD11455E47547FF617D5BFC15D120D9053DFD0536B044F10CA3631CD609E502203B61DEE4AC027C5743A1B56AF568D1E2B8E79BB9E9E14744AC87F38375C3C2F181144B4E9C06F24296074F7BC48F92A97916C6DC5EA983143E9D4A2B8AA0780F682D136F7A56D6724EF53754", - "tx_json": { - "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "DeliverMax": { - "currency": "USD", - "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "value": "1" - }, - "Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "Fee": "10000", - "Flags": 2147483648, - "Sequence": 361, - "SigningPubKey": "03AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB", - "TransactionType": "Payment", - "TxnSignature": "3045022100A7CCD11455E47547FF617D5BFC15D120D9053DFD0536B044F10CA3631CD609E502203B61DEE4AC027C5743A1B56AF568D1E2B8E79BB9E9E14744AC87F38375C3C2F1", - "hash": "5B31A7518DC304D5327B4887CD1F7DC2C38D5F684170097020C7C9758B973847" - } - }, - "validated_ledger_index" : 21184416 + "result": { + "accepted": true, + "account_sequence_available": 362, + "account_sequence_next": 362, + "applied": true, + "broadcast": true, + "engine_result": "tesSUCCESS", + "engine_result_code": 0, + "engine_result_message": "The transaction was applied. Only final in a validated ledger.", + "status": "success", + "kept": true, + "open_ledger_cost": "10", + "queued": false, + "tx_blob": "1200002280000000240000016961D4838D7EA4C6800000000000000000000000000055534400000000004B4E9C06F24296074F7BC48F92A97916C6DC5EA9684000000000002710732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB74473045022100A7CCD11455E47547FF617D5BFC15D120D9053DFD0536B044F10CA3631CD609E502203B61DEE4AC027C5743A1B56AF568D1E2B8E79BB9E9E14744AC87F38375C3C2F181144B4E9C06F24296074F7BC48F92A97916C6DC5EA983143E9D4A2B8AA0780F682D136F7A56D6724EF53754", + "tx_json": { + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "DeliverMax": { + "currency": "USD", + "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "value": "1" + }, + "Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "Fee": "10000", + "Flags": 2147483648, + "Sequence": 361, + "SigningPubKey": "03AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB", + "TransactionType": "Payment", + "TxnSignature": "3045022100A7CCD11455E47547FF617D5BFC15D120D9053DFD0536B044F10CA3631CD609E502203B61DEE4AC027C5743A1B56AF568D1E2B8E79BB9E9E14744AC87F38375C3C2F1", + "hash": "5B31A7518DC304D5327B4887CD1F7DC2C38D5F684170097020C7C9758B973847" + } + }, + "validated_ledger_index": 21184416 } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -288,40 +307,40 @@ Connecting to 127.0.0.1:5005 "validated_ledger_index" : 21184416 } ``` + {% /tab %} {% /tabs %} このレスポンスは[標準フォーマット][]に従っており、結果が正しい場合、以下のフィールドが含まれます。 -| `Field` | 型 | 説明 | -|:------------------------|:--------|:-----------------------------------------| -| `engine_result` | 文字列 | トランザクションの暫定的な結果を示すコード。例: `tesSUCCESS` | -| `engine_result_code` | 整数 | トランザクションの暫定的な結果を示し、`engine_result`と直接の相関関係にある数値コード | -| `engine_result_message` | 文字列 | 人間が読める形式の、トランザクションの暫定的な結果の説明 | -| `tx_blob` | 文字列 | トランザクション全体の16進文字列表現 | -| `tx_json` | オブジェクト | トランザクション全体のJSON表現 | +| `Field` | 型 | 説明 | +| :---------------------- | :----------- | :------------------------------------------------------------------------------------ | +| `engine_result` | 文字列 | トランザクションの暫定的な結果を示すコード。例: `tesSUCCESS` | +| `engine_result_code` | 整数 | トランザクションの暫定的な結果を示し、`engine_result`と直接の相関関係にある数値コード | +| `engine_result_message` | 文字列 | 人間が読める形式の、トランザクションの暫定的な結果の説明 | +| `tx_blob` | 文字列 | トランザクション全体の16進文字列表現 | +| `tx_json` | オブジェクト | トランザクション全体のJSON表現 | {% admonition type="warning" name="注意" %}WebSocketのレスポンスに`"status":"success"`が含まれていても、これはコマンドが正常に受け付けられたことを示すものであり、トランザクションが正常に実行されたことを示しているわけでは _ありません_ 。トランザクションは、さまざまな状況で正常に処理されない可能性があります。例えば、ペイメントの2つのアカウントを接続するトラストラインの欠落や、トランザクション生成後のレジャーの状態の変化などです。問題が特にない場合も、トランザクションが含まれているバージョンのレジャーを閉鎖し検証するまでに数秒かかることがあります。詳細は、[トランザクションのレスポンスの完全なリスト](../../../protocol/transactions/transaction-results/index.md)をご覧ください。トランザクションの結果は、検証済みバージョンのレジャーにトランザクションが表示されるまで、最終的なものと考えないでください。{% /admonition %} {% admonition type="warning" name="注意" %}このコマンドの結果としてエラーメッセージが表示された場合、リクエストから取得されたシークレットキーがメッセージの中に記述されている可能性があります。(リクエストに含まれているものが署名済みのtx_blobである場合は問題ありません)。これらのエラーが他者から見えない状態であることを確認してください。{% /admonition %} -* シークレットキーが記述されているエラーは、複数の人物が参照できるログファイルに書き込まないでください。 -* シークレットキーが記述されているエラーは、誰でも参照できる場所にデバッグを目的として貼り付けないでください。 -* シークレットキーが記述されているエラーメッセージは、誤ってWebサイトに表示しないようにしてください。 - +- シークレットキーが記述されているエラーは、複数の人物が参照できるログファイルに書き込まないでください。 +- シークレットキーが記述されているエラーは、誰でも参照できる場所にデバッグを目的として貼り付けないでください。 +- シークレットキーが記述されているエラーメッセージは、誤ってWebサイトに表示しないようにしてください。 ## 考えられるエラー -* いずれかの[汎用エラータイプ][]。 -* `amendmentBlocked` - `rippled`サーバでの[修正がブロックされている](../../../../concepts/networks-and-servers/amendments.md#amendment-blocked)ため、トランザクションをネットワークに送信できません。 -* `highFee` - `fee_mult_max`パラメーターが指定されましたが、サーバの現在の手数料の乗数が指定値を超えています(署名と送信モードのみ)。 -* `internalJson` - トランザクションをJSONへとシリアル化するときに、内部エラーが発生しました。このエラーは、無効な署名や一部フィールドの形式の誤りなど、トランザクションのさまざまな側面が原因となって発生する可能性があります。 -* `internalSubmit` - トランザクションを送信するときに内部エラーが発生しました。このエラーは、無効な署名や一部フィールドの形式の誤りなど、トランザクションのさまざまな側面が原因となって発生する可能性があります。 -* `internalTransaction` - トランザクションを処理するときに内部エラーが発生しました。このエラーは、無効な署名や一部フィールドの形式の誤りなど、トランザクションのさまざまな側面が原因となって発生する可能性があります。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* `invalidTransaction` - トランザクションの形式が誤っているか、その他の理由で無効なものになっています。 -* `noPath` - トランザクションにパスが含まれておらず、サーバは、このペイメントの発生経路となるパスを検出できませんでした。(署名と送信モードのみ)。 -* `tooBusy` - トランザクションにパスが含まれていませんが、サーバがビジーであるため、パス検出処理をすぐに実行できません。管理者として接続している場合は発生しません。(署名と送信モードのみ)。 +- いずれかの[汎用エラータイプ][]。 +- `amendmentBlocked` - `rippled`サーバでの[修正がブロックされている](../../../../concepts/networks-and-servers/amendments.md#amendment-blocked)ため、トランザクションをネットワークに送信できません。 +- `highFee` - `fee_mult_max`パラメーターが指定されましたが、サーバの現在の手数料の乗数が指定値を超えています(署名と送信モードのみ)。 +- `internalJson` - トランザクションをJSONへとシリアル化するときに、内部エラーが発生しました。このエラーは、無効な署名や一部フィールドの形式の誤りなど、トランザクションのさまざまな側面が原因となって発生する可能性があります。 +- `internalSubmit` - トランザクションを送信するときに内部エラーが発生しました。このエラーは、無効な署名や一部フィールドの形式の誤りなど、トランザクションのさまざまな側面が原因となって発生する可能性があります。 +- `internalTransaction` - トランザクションを処理するときに内部エラーが発生しました。このエラーは、無効な署名や一部フィールドの形式の誤りなど、トランザクションのさまざまな側面が原因となって発生する可能性があります。 +- `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 +- `invalidTransaction` - トランザクションの形式が誤っているか、その他の理由で無効なものになっています。 +- `noPath` - トランザクションにパスが含まれておらず、サーバは、このペイメントの発生経路となるパスを検出できませんでした。(署名と送信モードのみ)。 +- `tooBusy` - トランザクションにパスが含まれていませんが、サーバがビジーであるため、パス検出処理をすぐに実行できません。管理者として接続している場合は発生しません。(署名と送信モードのみ)。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/transaction-methods/submit_multisigned.md b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/transaction-methods/submit_multisigned.md index 2a46b06d58..9acaad0305 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/transaction-methods/submit_multisigned.md +++ b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/transaction-methods/submit_multisigned.md @@ -2,11 +2,13 @@ html: submit_multisigned.html parent: transaction-methods.html seo: - description: マルチシグトランザクションを適用し、このトランザクションをネットワークに送信します。 + description: マルチシグトランザクションを適用し、このトランザクションをネットワークに送信します。 labels: - トランザクション送信 --- + # submit_multisigned + [[ソース]](https://github.com/XRPLF/rippled/blob/release/src/ripple/rpc/handlers/SubmitMultiSigned.cpp "Source") `submit_multisigned`コマンドは[マルチシグ](../../../../concepts/accounts/multi-signing.md)トランザクションを適用し、このトランザクションをネットワークに送信して、今後のレジャーに追加します。([`submit`コマンドを送信専用モードで](submit.md#送信専用モード)使用して、マルチシグトランザクションをバイナリー形式で送信することもできます。) @@ -14,89 +16,98 @@ labels: このコマンドを使用するには、[MultiSign Amendment][]が有効になっている必要があります。{% badge href="https://github.com/XRPLF/rippled/releases/tag/0.31.0" %}新規: rippled 0.31.0{% /badge %} ## リクエストのフォーマット + リクエストのフォーマットの例: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": "submit_multisigned_example", - "command": "submit_multisigned", - "tx_json": { - "Account": "rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", - "Fee": "30000", - "Flags": 262144, - "LimitAmount": { - "currency": "USD", - "issuer": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "value": "100" - }, - "Sequence": 2, - "Signers": [{ - "Signer": { - "Account": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", - "SigningPubKey": "02B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF", - "TxnSignature": "30450221009C195DBBF7967E223D8626CA19CF02073667F2B22E206727BFE848FF42BEAC8A022048C323B0BED19A988BDBEFA974B6DE8AA9DCAE250AA82BBD1221787032A864E5" - } - }, { - "Signer": { - "Account": "rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v", - "SigningPubKey": "028FFB276505F9AC3F57E8D5242B386A597EF6C40A7999F37F1948636FD484E25B", - "TxnSignature": "30440220680BBD745004E9CFB6B13A137F505FB92298AD309071D16C7B982825188FD1AE022004200B1F7E4A6A84BB0E4FC09E1E3BA2B66EBD32F0E6D121A34BA3B04AD99BC1" - } - }], - "SigningPubKey": "", - "TransactionType": "TrustSet", - "hash": "BD636194C48FD7A100DE4C972336534C8E710FD008C0F3CF7BC5BF34DAF3C3E6" - } + "id": "submit_multisigned_example", + "command": "submit_multisigned", + "tx_json": { + "Account": "rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", + "Fee": "30000", + "Flags": 262144, + "LimitAmount": { + "currency": "USD", + "issuer": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "value": "100" + }, + "Sequence": 2, + "Signers": [ + { + "Signer": { + "Account": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", + "SigningPubKey": "02B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF", + "TxnSignature": "30450221009C195DBBF7967E223D8626CA19CF02073667F2B22E206727BFE848FF42BEAC8A022048C323B0BED19A988BDBEFA974B6DE8AA9DCAE250AA82BBD1221787032A864E5" + } + }, + { + "Signer": { + "Account": "rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v", + "SigningPubKey": "028FFB276505F9AC3F57E8D5242B386A597EF6C40A7999F37F1948636FD484E25B", + "TxnSignature": "30440220680BBD745004E9CFB6B13A137F505FB92298AD309071D16C7B982825188FD1AE022004200B1F7E4A6A84BB0E4FC09E1E3BA2B66EBD32F0E6D121A34BA3B04AD99BC1" + } + } + ], + "SigningPubKey": "", + "TransactionType": "TrustSet", + "hash": "BD636194C48FD7A100DE4C972336534C8E710FD008C0F3CF7BC5BF34DAF3C3E6" + } } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "submit_multisigned", - "params": [ - { - "tx_json": { - "Account": "rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", - "Fee": "30000", - "Flags": 262144, - "LimitAmount": { - "currency": "USD", - "issuer": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "value": "0" - }, - "Sequence": 4, - "Signers": [ - { - "Signer": { - "Account": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", - "SigningPubKey": "02B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF", - "TxnSignature": "3045022100CC9C56DF51251CB04BB047E5F3B5EF01A0F4A8A549D7A20A7402BF54BA744064022061EF8EF1BCCBF144F480B32508B1D10FD4271831D5303F920DE41C64671CB5B7" - } - }, - { - "Signer": { - "Account": "raKEEVSGnKSD9Zyvxu4z6Pqpm4ABH8FS6n", - "SigningPubKey": "03398A4EDAE8EE009A5879113EAA5BA15C7BB0F612A87F4103E793AC919BD1E3C1", - "TxnSignature": "3045022100FEE8D8FA2D06CE49E9124567DCA265A21A9F5465F4A9279F075E4CE27E4430DE022042D5305777DA1A7801446780308897699412E4EDF0E1AEFDF3C8A0532BDE4D08" - } - } - ], - "SigningPubKey": "", - "TransactionType": "TrustSet", - "hash": "81A477E2A362D171BB16BE17B4120D9F809A327FA00242ABCA867283BEA2F4F8" - } - } - ] + "method": "submit_multisigned", + "params": [ + { + "tx_json": { + "Account": "rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", + "Fee": "30000", + "Flags": 262144, + "LimitAmount": { + "currency": "USD", + "issuer": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "value": "0" + }, + "Sequence": 4, + "Signers": [ + { + "Signer": { + "Account": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", + "SigningPubKey": "02B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF", + "TxnSignature": "3045022100CC9C56DF51251CB04BB047E5F3B5EF01A0F4A8A549D7A20A7402BF54BA744064022061EF8EF1BCCBF144F480B32508B1D10FD4271831D5303F920DE41C64671CB5B7" + } + }, + { + "Signer": { + "Account": "raKEEVSGnKSD9Zyvxu4z6Pqpm4ABH8FS6n", + "SigningPubKey": "03398A4EDAE8EE009A5879113EAA5BA15C7BB0F612A87F4103E793AC919BD1E3C1", + "TxnSignature": "3045022100FEE8D8FA2D06CE49E9124567DCA265A21A9F5465F4A9279F075E4CE27E4430DE022042D5305777DA1A7801446780308897699412E4EDF0E1AEFDF3C8A0532BDE4D08" + } + } + ], + "SigningPubKey": "", + "TransactionType": "TrustSet", + "hash": "81A477E2A362D171BB16BE17B4120D9F809A327FA00242ABCA867283BEA2F4F8" + } + } + ] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh #Syntax: submit_multisigned rippled submit_multisigned '{ @@ -130,16 +141,17 @@ rippled submit_multisigned '{ "hash": "81A477E2A362D171BB16BE17B4120D9F809A327FA00242ABCA867283BEA2F4F8" }' ``` + {% /tab %} {% /tabs %} リクエストには以下のパラメーターが含まれます。 -| `Field` | 型 | 説明 | -|:------------|:--------|:-----------------------------------------------------| -| `tx_json` | オブジェクト | `Signers`からなる配列が指定された[JSONフォーマットのトランザクション](../../../protocol/transactions/index.md)。成功させるには、署名の重みが[SignerList](../../../protocol/ledger-data/ledger-entry-types/signerlist.md)の定数以上でなければなりません。 | -| `fail_hard` | ブール値 | (省略可、デフォルトではfalseです)trueで、かつトランザクションがローカルで失敗する場合は、このトランザクションの再試行や、他のサーバへのリレーは行わないでください。 | +| `Field` | 型 | 説明 | +| :---------- | :----------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `tx_json` | オブジェクト | `Signers`からなる配列が指定された[JSONフォーマットのトランザクション](../../../protocol/transactions/index.md)。成功させるには、署名の重みが[SignerList](../../../protocol/ledger-data/ledger-entry-types/signerlist.md)の定数以上でなければなりません。 | +| `fail_hard` | ブール値 | (省略可、デフォルトではfalseです)trueで、かつトランザクションがローカルで失敗する場合は、このトランザクションの再試行や、他のサーバへのリレーは行わないでください。 | ## レスポンスのフォーマット @@ -148,52 +160,55 @@ rippled submit_multisigned '{ {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": "submit_multisigned_example", - "status": "success", - "type": "response", - "result": { - "engine_result": "tesSUCCESS", - "engine_result_code": 0, - "engine_result_message": "The transaction was applied.Only final in a validated ledger.", - "tx_blob": "1200142200040000240000000263D5038D7EA4C680000000000000000000000000005553440000000000B5F762798A53D543A014CAF8B297CFF8F2F937E868400000000000753073008114A3780F5CB5A44D366520FC44055E8ED44D9A2270F3E010732102B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF744730450221009C195DBBF7967E223D8626CA19CF02073667F2B22E206727BFE848FF42BEAC8A022048C323B0BED19A988BDBEFA974B6DE8AA9DCAE250AA82BBD1221787032A864E58114204288D2E47F8EF6C99BCC457966320D12409711E1E0107321028FFB276505F9AC3F57E8D5242B386A597EF6C40A7999F37F1948636FD484E25B744630440220680BBD745004E9CFB6B13A137F505FB92298AD309071D16C7B982825188FD1AE022004200B1F7E4A6A84BB0E4FC09E1E3BA2B66EBD32F0E6D121A34BA3B04AD99BC181147908A7F0EDD48EA896C3580A399F0EE78611C8E3E1F1", - "tx_json": { - "Account": "rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", - "Fee": "30000", - "Flags": 262144, - "LimitAmount": { - "currency": "USD", - "issuer": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "value": "100" - }, - "Sequence": 2, - "Signers": [ - { - "Signer": { - "Account": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", - "SigningPubKey": "02B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF", - "TxnSignature": "30450221009C195DBBF7967E223D8626CA19CF02073667F2B22E206727BFE848FF42BEAC8A022048C323B0BED19A988BDBEFA974B6DE8AA9DCAE250AA82BBD1221787032A864E5" - } - }, - { - "Signer": { - "Account": "rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v", - "SigningPubKey": "028FFB276505F9AC3F57E8D5242B386A597EF6C40A7999F37F1948636FD484E25B", - "TxnSignature": "30440220680BBD745004E9CFB6B13A137F505FB92298AD309071D16C7B982825188FD1AE022004200B1F7E4A6A84BB0E4FC09E1E3BA2B66EBD32F0E6D121A34BA3B04AD99BC1" - } - } - ], - "SigningPubKey": "", - "TransactionType": "TrustSet", - "hash": "BD636194C48FD7A100DE4C972336534C8E710FD008C0F3CF7BC5BF34DAF3C3E6" - } - } + "id": "submit_multisigned_example", + "status": "success", + "type": "response", + "result": { + "engine_result": "tesSUCCESS", + "engine_result_code": 0, + "engine_result_message": "The transaction was applied.Only final in a validated ledger.", + "tx_blob": "1200142200040000240000000263D5038D7EA4C680000000000000000000000000005553440000000000B5F762798A53D543A014CAF8B297CFF8F2F937E868400000000000753073008114A3780F5CB5A44D366520FC44055E8ED44D9A2270F3E010732102B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF744730450221009C195DBBF7967E223D8626CA19CF02073667F2B22E206727BFE848FF42BEAC8A022048C323B0BED19A988BDBEFA974B6DE8AA9DCAE250AA82BBD1221787032A864E58114204288D2E47F8EF6C99BCC457966320D12409711E1E0107321028FFB276505F9AC3F57E8D5242B386A597EF6C40A7999F37F1948636FD484E25B744630440220680BBD745004E9CFB6B13A137F505FB92298AD309071D16C7B982825188FD1AE022004200B1F7E4A6A84BB0E4FC09E1E3BA2B66EBD32F0E6D121A34BA3B04AD99BC181147908A7F0EDD48EA896C3580A399F0EE78611C8E3E1F1", + "tx_json": { + "Account": "rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", + "Fee": "30000", + "Flags": 262144, + "LimitAmount": { + "currency": "USD", + "issuer": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "value": "100" + }, + "Sequence": 2, + "Signers": [ + { + "Signer": { + "Account": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", + "SigningPubKey": "02B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF", + "TxnSignature": "30450221009C195DBBF7967E223D8626CA19CF02073667F2B22E206727BFE848FF42BEAC8A022048C323B0BED19A988BDBEFA974B6DE8AA9DCAE250AA82BBD1221787032A864E5" + } + }, + { + "Signer": { + "Account": "rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v", + "SigningPubKey": "028FFB276505F9AC3F57E8D5242B386A597EF6C40A7999F37F1948636FD484E25B", + "TxnSignature": "30440220680BBD745004E9CFB6B13A137F505FB92298AD309071D16C7B982825188FD1AE022004200B1F7E4A6A84BB0E4FC09E1E3BA2B66EBD32F0E6D121A34BA3B04AD99BC1" + } + } + ], + "SigningPubKey": "", + "TransactionType": "TrustSet", + "hash": "BD636194C48FD7A100DE4C972336534C8E710FD008C0F3CF7BC5BF34DAF3C3E6" + } + } } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -237,25 +252,26 @@ rippled submit_multisigned '{ } } ``` + {% /tab %} {% /tabs %} レスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 -| `Field` | 型 | 説明 | -|:------------------------|:--------|:-----------------------------------------| -| `engine_result` | 文字列 | 以下は、トランザクションの暫定的な結果を示すコードの例です。 `tesSUCCESS` | -| `engine_result_code` | 整数 | トランザクションの暫定的な結果を示し、`engine_result`と直接の相関関係にある数値コード | -| `engine_result_message` | 文字列 | 人間が読み取れる形式の暫定的なトランザクション結果の説明 | -| `tx_blob` | 文字列 | [トランザクション](../../../protocol/transactions/index.md)全体の16進文字列表現 | -| `tx_json` | オブジェクト | [トランザクション](../../../protocol/transactions/index.md)全体のJSON表現 | +| `Field` | 型 | 説明 | +| :---------------------- | :----------- | :------------------------------------------------------------------------------------ | +| `engine_result` | 文字列 | 以下は、トランザクションの暫定的な結果を示すコードの例です。 `tesSUCCESS` | +| `engine_result_code` | 整数 | トランザクションの暫定的な結果を示し、`engine_result`と直接の相関関係にある数値コード | +| `engine_result_message` | 文字列 | 人間が読み取れる形式の暫定的なトランザクション結果の説明 | +| `tx_blob` | 文字列 | [トランザクション](../../../protocol/transactions/index.md)全体の16進文字列表現 | +| `tx_json` | オブジェクト | [トランザクション](../../../protocol/transactions/index.md)全体のJSON表現 | ## 考えられるエラー -* [汎用エラータイプ][]のすべて。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* `srcActMalformed` - `tx_json`の`Account`フィールドが無効または欠落していました。 -* `internal` - 内部エラーが発生しました。これには、指定されているトランザクションJSONに対して署名が無効な場合も含まれます。 +- [汎用エラータイプ][]のすべて。 +- `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 +- `srcActMalformed` - `tx_json`の`Account`フィールドが無効または欠落していました。 +- `internal` - 内部エラーが発生しました。これには、指定されているトランザクションJSONに対して署名が無効な場合も含まれます。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/transaction-methods/transaction_entry.md b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/transaction-methods/transaction_entry.md index 6754a32a86..3e6d726171 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/transaction-methods/transaction_entry.md +++ b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/transaction-methods/transaction_entry.md @@ -2,11 +2,13 @@ html: transaction_entry.html parent: transaction-methods.html seo: - description: 特定のレジャーバージョンから1つのトランザクションに関する情報を取得します。 + description: 特定のレジャーバージョンから1つのトランザクションに関する情報を取得します。 labels: - トランザクション送信 --- + # transaction_entry + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/TransactionEntry.cpp "Source") `transaction_entry`メソッドは、特定のレジャーバージョンから1つのトランザクションに関する情報を取得します。(これに対して、[txメソッド][]はすべてのレジャーから指定のトランザクションを検索します。txメソッドの使用をお勧めします。) @@ -18,6 +20,7 @@ labels: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 4, @@ -26,27 +29,32 @@ labels: "ledger_index": 348734 } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "transaction_entry", - "params": [ - { - "tx_hash": "E08D6E9754025BA2534A78707605E0601F03ACE063687A0CA1BDDACFCD1698C7", - "ledger_index": 348734 - } - ] + "method": "transaction_entry", + "params": [ + { + "tx_hash": "E08D6E9754025BA2534A78707605E0601F03ACE063687A0CA1BDDACFCD1698C7", + "ledger_index": 348734 + } + ] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh #Syntax: transaction_entry transaction_hash ledger_index|ledger_hash rippled transaction_entry E08D6E9754025BA2534A78707605E0601F03ACE063687A0CA1BDDACFCD1698C7 348734 ``` + {% /tab %} {% /tabs %} @@ -55,11 +63,11 @@ rippled transaction_entry E08D6E9754025BA2534A78707605E0601F03ACE063687A0CA1BDDA リクエストには以下のパラメーターが含まれます。 -| `Field` | 型 | 説明 | -| :------------- | :----------------------- | ---- | -| `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーバージョンの20バイトの16進文字列。([レジャーの指定][]をご覧ください) | +| `Field` | 型 | 説明 | +| :------------- | :----------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーバージョンの20バイトの16進文字列。([レジャーの指定][]をご覧ください) | | `ledger_index` | 文字列または符号なし整数 | _(省略可)_ 使用するレジャーの[レジャーインデックス][]、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]をご覧ください) | -| `tx_hash` | 文字列 | 検索するトランザクションの一意のハッシュ | +| `tx_hash` | 文字列 | 検索するトランザクションの一意のハッシュ | {% admonition type="info" name="注記" %}このメソッドでは、現在進行中のレジャーから情報を取得する操作はサポートされていません。`ledger_index`または`ledger_hash`でレジャーバージョンを指定する必要があります。{% /admonition %} @@ -70,6 +78,7 @@ rippled transaction_entry E08D6E9754025BA2534A78707605E0601F03ACE063687A0CA1BDDA {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 4, @@ -192,253 +201,257 @@ rippled transaction_entry E08D6E9754025BA2534A78707605E0601F03ACE063687A0CA1BDDA "type": "response" } ``` + {% /tab %} - {% tab label="JSON-RPC" %} + ```json { - "result": { - "ledger_hash": "793E56131D8D4ABFB27FA383BFC44F2978B046E023FF46C588D7E0C874C2472A", - "ledger_index": 56865245, - "meta": { - "AffectedNodes": [ - { - "ModifiedNode": { - "FinalFields": { - "ExchangeRate": "4F04C66806CF7400", - "Flags": 0, - "RootIndex": "02BAAC1E67C1CE0E96F0FA2E8061020536CEDD043FEB0FF54F04C66806CF7400", - "TakerGetsCurrency": "0000000000000000000000000000000000000000", - "TakerGetsIssuer": "0000000000000000000000000000000000000000", - "TakerPaysCurrency": "000000000000000000000000434E590000000000", - "TakerPaysIssuer": "CED6E99370D5C00EF4EBF72567DA99F5661BFB3A" - }, - "LedgerEntryType": "DirectoryNode", - "LedgerIndex": "02BAAC1E67C1CE0E96F0FA2E8061020536CEDD043FEB0FF54F04C66806CF7400" - } - }, - { - "ModifiedNode": { - "FinalFields": { - "Account": "rhhh49pFH96roGyuC4E5P4CHaNjS1k8gzM", - "Balance": "10404767991", - "Flags": 0, - "OwnerCount": 3, - "Sequence": 5037711 - }, - "LedgerEntryType": "AccountRoot", - "LedgerIndex": "1DECD9844E95FFBA273F1B94BA0BF2564DDF69F2804497A6D7837B52050174A2", - "PreviousFields": { - "Balance": "10404768003", - "Sequence": 5037710 - }, - "PreviousTxnID": "4DC47B246B5EB9CCE92ABA8C482479E3BF1F946CABBEF74CA4DE36521D5F9008", - "PreviousTxnLgrSeq": 56865244 - } - }, - { - "DeletedNode": { - "FinalFields": { - "Account": "rhhh49pFH96roGyuC4E5P4CHaNjS1k8gzM", - "BookDirectory": "02BAAC1E67C1CE0E96F0FA2E8061020536CEDD043FEB0FF54F04C66806CF7400", - "BookNode": "0000000000000000", - "Flags": 0, - "OwnerNode": "0000000000000000", - "PreviousTxnID": "8F5FF57B404827F12BDA7561876A13C3E3B3095CBF75334DBFB5F227391A660C", - "PreviousTxnLgrSeq": 56865244, - "Sequence": 5037708, - "TakerGets": "15000000000", - "TakerPays": { - "currency": "CNY", - "issuer": "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y", - "value": "20160.75" - } - }, - "LedgerEntryType": "Offer", - "LedgerIndex": "26AAE6CA8D29E28A47C92ADF22D5D96A0216F0551E16936856DDC8CB1AAEE93B" - } - }, - { - "ModifiedNode": { - "FinalFields": { - "Flags": 0, - "IndexNext": "0000000000000000", - "IndexPrevious": "0000000000000000", - "Owner": "rhhh49pFH96roGyuC4E5P4CHaNjS1k8gzM", - "RootIndex": "47FAF5D102D8CE655574F440CDB97AC67C5A11068BB3759E87C2B9745EE94548" - }, - "LedgerEntryType": "DirectoryNode", - "LedgerIndex": "47FAF5D102D8CE655574F440CDB97AC67C5A11068BB3759E87C2B9745EE94548" - } - }, - { - "CreatedNode": { - "LedgerEntryType": "Offer", - "LedgerIndex": "8BAEE3C7DE04A568E96007420FA11ABD0BC9AE44D35932BB5640E9C3FB46BC9B", - "NewFields": { - "Account": "rhhh49pFH96roGyuC4E5P4CHaNjS1k8gzM", - "BookDirectory": "02BAAC1E67C1CE0E96F0FA2E8061020536CEDD043FEB0FF54F04C66806CF7400", - "Sequence": 5037710, - "TakerGets": "15000000000", - "TakerPays": { - "currency": "CNY", - "issuer": "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y", - "value": "20160.75" - } - } - } - } - ], - "TransactionIndex": 0, - "TransactionResult": "tesSUCCESS" + "result": { + "ledger_hash": "793E56131D8D4ABFB27FA383BFC44F2978B046E023FF46C588D7E0C874C2472A", + "ledger_index": 56865245, + "meta": { + "AffectedNodes": [ + { + "ModifiedNode": { + "FinalFields": { + "ExchangeRate": "4F04C66806CF7400", + "Flags": 0, + "RootIndex": "02BAAC1E67C1CE0E96F0FA2E8061020536CEDD043FEB0FF54F04C66806CF7400", + "TakerGetsCurrency": "0000000000000000000000000000000000000000", + "TakerGetsIssuer": "0000000000000000000000000000000000000000", + "TakerPaysCurrency": "000000000000000000000000434E590000000000", + "TakerPaysIssuer": "CED6E99370D5C00EF4EBF72567DA99F5661BFB3A" + }, + "LedgerEntryType": "DirectoryNode", + "LedgerIndex": "02BAAC1E67C1CE0E96F0FA2E8061020536CEDD043FEB0FF54F04C66806CF7400" + } }, - "status": "success", - "tx_json": { - "Account": "rhhh49pFH96roGyuC4E5P4CHaNjS1k8gzM", - "Fee": "12", - "Flags": 0, - "LastLedgerSequence": 56865248, - "OfferSequence": 5037708, - "Sequence": 5037710, - "SigningPubKey": "03B51A3EDF70E4098DA7FB053A01C5A6A0A163A30ED1445F14F87C7C3295FCB3BE", - "TakerGets": "15000000000", - "TakerPays": { + { + "ModifiedNode": { + "FinalFields": { + "Account": "rhhh49pFH96roGyuC4E5P4CHaNjS1k8gzM", + "Balance": "10404767991", + "Flags": 0, + "OwnerCount": 3, + "Sequence": 5037711 + }, + "LedgerEntryType": "AccountRoot", + "LedgerIndex": "1DECD9844E95FFBA273F1B94BA0BF2564DDF69F2804497A6D7837B52050174A2", + "PreviousFields": { + "Balance": "10404768003", + "Sequence": 5037710 + }, + "PreviousTxnID": "4DC47B246B5EB9CCE92ABA8C482479E3BF1F946CABBEF74CA4DE36521D5F9008", + "PreviousTxnLgrSeq": 56865244 + } + }, + { + "DeletedNode": { + "FinalFields": { + "Account": "rhhh49pFH96roGyuC4E5P4CHaNjS1k8gzM", + "BookDirectory": "02BAAC1E67C1CE0E96F0FA2E8061020536CEDD043FEB0FF54F04C66806CF7400", + "BookNode": "0000000000000000", + "Flags": 0, + "OwnerNode": "0000000000000000", + "PreviousTxnID": "8F5FF57B404827F12BDA7561876A13C3E3B3095CBF75334DBFB5F227391A660C", + "PreviousTxnLgrSeq": 56865244, + "Sequence": 5037708, + "TakerGets": "15000000000", + "TakerPays": { "currency": "CNY", "issuer": "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y", "value": "20160.75" + } }, - "TransactionType": "OfferCreate", - "TxnSignature": "3045022100A5023A0E64923616FCDB6D664F569644C7C9D1895772F986CD6B981B515B02A00220530C973E9A8395BC6FE2484948D2751F6B030FC7FB8575D1BFB406368AD554D9", - "hash": "C53ECF838647FA5A4C780377025FEC7999AB4182590510CA461444B207AB74A9" + "LedgerEntryType": "Offer", + "LedgerIndex": "26AAE6CA8D29E28A47C92ADF22D5D96A0216F0551E16936856DDC8CB1AAEE93B" + } }, - "validated": true - } + { + "ModifiedNode": { + "FinalFields": { + "Flags": 0, + "IndexNext": "0000000000000000", + "IndexPrevious": "0000000000000000", + "Owner": "rhhh49pFH96roGyuC4E5P4CHaNjS1k8gzM", + "RootIndex": "47FAF5D102D8CE655574F440CDB97AC67C5A11068BB3759E87C2B9745EE94548" + }, + "LedgerEntryType": "DirectoryNode", + "LedgerIndex": "47FAF5D102D8CE655574F440CDB97AC67C5A11068BB3759E87C2B9745EE94548" + } + }, + { + "CreatedNode": { + "LedgerEntryType": "Offer", + "LedgerIndex": "8BAEE3C7DE04A568E96007420FA11ABD0BC9AE44D35932BB5640E9C3FB46BC9B", + "NewFields": { + "Account": "rhhh49pFH96roGyuC4E5P4CHaNjS1k8gzM", + "BookDirectory": "02BAAC1E67C1CE0E96F0FA2E8061020536CEDD043FEB0FF54F04C66806CF7400", + "Sequence": 5037710, + "TakerGets": "15000000000", + "TakerPays": { + "currency": "CNY", + "issuer": "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y", + "value": "20160.75" + } + } + } + } + ], + "TransactionIndex": 0, + "TransactionResult": "tesSUCCESS" + }, + "status": "success", + "tx_json": { + "Account": "rhhh49pFH96roGyuC4E5P4CHaNjS1k8gzM", + "Fee": "12", + "Flags": 0, + "LastLedgerSequence": 56865248, + "OfferSequence": 5037708, + "Sequence": 5037710, + "SigningPubKey": "03B51A3EDF70E4098DA7FB053A01C5A6A0A163A30ED1445F14F87C7C3295FCB3BE", + "TakerGets": "15000000000", + "TakerPays": { + "currency": "CNY", + "issuer": "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y", + "value": "20160.75" + }, + "TransactionType": "OfferCreate", + "TxnSignature": "3045022100A5023A0E64923616FCDB6D664F569644C7C9D1895772F986CD6B981B515B02A00220530C973E9A8395BC6FE2484948D2751F6B030FC7FB8575D1BFB406368AD554D9", + "hash": "C53ECF838647FA5A4C780377025FEC7999AB4182590510CA461444B207AB74A9" + }, + "validated": true + } } ``` + {% /tab %} {% tab label="Commandline" %} + ```json { - "result" : { - "ledger_hash" : "793E56131D8D4ABFB27FA383BFC44F2978B046E023FF46C588D7E0C874C2472A", - "ledger_index" : 56865245, - "meta" : { - "AffectedNodes" : [ - { - "ModifiedNode" : { - "FinalFields" : { - "ExchangeRate" : "4F04C66806CF7400", - "Flags" : 0, - "RootIndex" : "02BAAC1E67C1CE0E96F0FA2E8061020536CEDD043FEB0FF54F04C66806CF7400", - "TakerGetsCurrency" : "0000000000000000000000000000000000000000", - "TakerGetsIssuer" : "0000000000000000000000000000000000000000", - "TakerPaysCurrency" : "000000000000000000000000434E590000000000", - "TakerPaysIssuer" : "CED6E99370D5C00EF4EBF72567DA99F5661BFB3A" - }, - "LedgerEntryType" : "DirectoryNode", - "LedgerIndex" : "02BAAC1E67C1CE0E96F0FA2E8061020536CEDD043FEB0FF54F04C66806CF7400" - } + "result": { + "ledger_hash": "793E56131D8D4ABFB27FA383BFC44F2978B046E023FF46C588D7E0C874C2472A", + "ledger_index": 56865245, + "meta": { + "AffectedNodes": [ + { + "ModifiedNode": { + "FinalFields": { + "ExchangeRate": "4F04C66806CF7400", + "Flags": 0, + "RootIndex": "02BAAC1E67C1CE0E96F0FA2E8061020536CEDD043FEB0FF54F04C66806CF7400", + "TakerGetsCurrency": "0000000000000000000000000000000000000000", + "TakerGetsIssuer": "0000000000000000000000000000000000000000", + "TakerPaysCurrency": "000000000000000000000000434E590000000000", + "TakerPaysIssuer": "CED6E99370D5C00EF4EBF72567DA99F5661BFB3A" }, - { - "ModifiedNode" : { - "FinalFields" : { - "Account" : "rhhh49pFH96roGyuC4E5P4CHaNjS1k8gzM", - "Balance" : "10404767991", - "Flags" : 0, - "OwnerCount" : 3, - "Sequence" : 5037711 - }, - "LedgerEntryType" : "AccountRoot", - "LedgerIndex" : "1DECD9844E95FFBA273F1B94BA0BF2564DDF69F2804497A6D7837B52050174A2", - "PreviousFields" : { - "Balance" : "10404768003", - "Sequence" : 5037710 - }, - "PreviousTxnID" : "4DC47B246B5EB9CCE92ABA8C482479E3BF1F946CABBEF74CA4DE36521D5F9008", - "PreviousTxnLgrSeq" : 56865244 - } + "LedgerEntryType": "DirectoryNode", + "LedgerIndex": "02BAAC1E67C1CE0E96F0FA2E8061020536CEDD043FEB0FF54F04C66806CF7400" + } + }, + { + "ModifiedNode": { + "FinalFields": { + "Account": "rhhh49pFH96roGyuC4E5P4CHaNjS1k8gzM", + "Balance": "10404767991", + "Flags": 0, + "OwnerCount": 3, + "Sequence": 5037711 }, - { - "DeletedNode" : { - "FinalFields" : { - "Account" : "rhhh49pFH96roGyuC4E5P4CHaNjS1k8gzM", - "BookDirectory" : "02BAAC1E67C1CE0E96F0FA2E8061020536CEDD043FEB0FF54F04C66806CF7400", - "BookNode" : "0000000000000000", - "Flags" : 0, - "OwnerNode" : "0000000000000000", - "PreviousTxnID" : "8F5FF57B404827F12BDA7561876A13C3E3B3095CBF75334DBFB5F227391A660C", - "PreviousTxnLgrSeq" : 56865244, - "Sequence" : 5037708, - "TakerGets" : "15000000000", - "TakerPays" : { - "currency" : "CNY", - "issuer" : "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y", - "value" : "20160.75" - } - }, - "LedgerEntryType" : "Offer", - "LedgerIndex" : "26AAE6CA8D29E28A47C92ADF22D5D96A0216F0551E16936856DDC8CB1AAEE93B" - } + "LedgerEntryType": "AccountRoot", + "LedgerIndex": "1DECD9844E95FFBA273F1B94BA0BF2564DDF69F2804497A6D7837B52050174A2", + "PreviousFields": { + "Balance": "10404768003", + "Sequence": 5037710 }, - { - "ModifiedNode" : { - "FinalFields" : { - "Flags" : 0, - "IndexNext" : "0000000000000000", - "IndexPrevious" : "0000000000000000", - "Owner" : "rhhh49pFH96roGyuC4E5P4CHaNjS1k8gzM", - "RootIndex" : "47FAF5D102D8CE655574F440CDB97AC67C5A11068BB3759E87C2B9745EE94548" - }, - "LedgerEntryType" : "DirectoryNode", - "LedgerIndex" : "47FAF5D102D8CE655574F440CDB97AC67C5A11068BB3759E87C2B9745EE94548" - } + "PreviousTxnID": "4DC47B246B5EB9CCE92ABA8C482479E3BF1F946CABBEF74CA4DE36521D5F9008", + "PreviousTxnLgrSeq": 56865244 + } + }, + { + "DeletedNode": { + "FinalFields": { + "Account": "rhhh49pFH96roGyuC4E5P4CHaNjS1k8gzM", + "BookDirectory": "02BAAC1E67C1CE0E96F0FA2E8061020536CEDD043FEB0FF54F04C66806CF7400", + "BookNode": "0000000000000000", + "Flags": 0, + "OwnerNode": "0000000000000000", + "PreviousTxnID": "8F5FF57B404827F12BDA7561876A13C3E3B3095CBF75334DBFB5F227391A660C", + "PreviousTxnLgrSeq": 56865244, + "Sequence": 5037708, + "TakerGets": "15000000000", + "TakerPays": { + "currency": "CNY", + "issuer": "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y", + "value": "20160.75" + } }, - { - "CreatedNode" : { - "LedgerEntryType" : "Offer", - "LedgerIndex" : "8BAEE3C7DE04A568E96007420FA11ABD0BC9AE44D35932BB5640E9C3FB46BC9B", - "NewFields" : { - "Account" : "rhhh49pFH96roGyuC4E5P4CHaNjS1k8gzM", - "BookDirectory" : "02BAAC1E67C1CE0E96F0FA2E8061020536CEDD043FEB0FF54F04C66806CF7400", - "Sequence" : 5037710, - "TakerGets" : "15000000000", - "TakerPays" : { - "currency" : "CNY", - "issuer" : "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y", - "value" : "20160.75" - } - } - } + "LedgerEntryType": "Offer", + "LedgerIndex": "26AAE6CA8D29E28A47C92ADF22D5D96A0216F0551E16936856DDC8CB1AAEE93B" + } + }, + { + "ModifiedNode": { + "FinalFields": { + "Flags": 0, + "IndexNext": "0000000000000000", + "IndexPrevious": "0000000000000000", + "Owner": "rhhh49pFH96roGyuC4E5P4CHaNjS1k8gzM", + "RootIndex": "47FAF5D102D8CE655574F440CDB97AC67C5A11068BB3759E87C2B9745EE94548" + }, + "LedgerEntryType": "DirectoryNode", + "LedgerIndex": "47FAF5D102D8CE655574F440CDB97AC67C5A11068BB3759E87C2B9745EE94548" + } + }, + { + "CreatedNode": { + "LedgerEntryType": "Offer", + "LedgerIndex": "8BAEE3C7DE04A568E96007420FA11ABD0BC9AE44D35932BB5640E9C3FB46BC9B", + "NewFields": { + "Account": "rhhh49pFH96roGyuC4E5P4CHaNjS1k8gzM", + "BookDirectory": "02BAAC1E67C1CE0E96F0FA2E8061020536CEDD043FEB0FF54F04C66806CF7400", + "Sequence": 5037710, + "TakerGets": "15000000000", + "TakerPays": { + "currency": "CNY", + "issuer": "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y", + "value": "20160.75" + } } - ], - "TransactionIndex" : 0, - "TransactionResult" : "tesSUCCESS" + } + } + ], + "TransactionIndex": 0, + "TransactionResult": "tesSUCCESS" + }, + "status": "success", + "tx_json": { + "Account": "rhhh49pFH96roGyuC4E5P4CHaNjS1k8gzM", + "Fee": "12", + "Flags": 0, + "LastLedgerSequence": 56865248, + "OfferSequence": 5037708, + "Sequence": 5037710, + "SigningPubKey": "03B51A3EDF70E4098DA7FB053A01C5A6A0A163A30ED1445F14F87C7C3295FCB3BE", + "TakerGets": "15000000000", + "TakerPays": { + "currency": "CNY", + "issuer": "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y", + "value": "20160.75" }, - "status" : "success", - "tx_json" : { - "Account" : "rhhh49pFH96roGyuC4E5P4CHaNjS1k8gzM", - "Fee" : "12", - "Flags" : 0, - "LastLedgerSequence" : 56865248, - "OfferSequence" : 5037708, - "Sequence" : 5037710, - "SigningPubKey" : "03B51A3EDF70E4098DA7FB053A01C5A6A0A163A30ED1445F14F87C7C3295FCB3BE", - "TakerGets" : "15000000000", - "TakerPays" : { - "currency" : "CNY", - "issuer" : "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y", - "value" : "20160.75" - }, - "TransactionType" : "OfferCreate", - "TxnSignature" : "3045022100A5023A0E64923616FCDB6D664F569644C7C9D1895772F986CD6B981B515B02A00220530C973E9A8395BC6FE2484948D2751F6B030FC7FB8575D1BFB406368AD554D9", - "hash" : "C53ECF838647FA5A4C780377025FEC7999AB4182590510CA461444B207AB74A9" - }, - "validated" : true - } + "TransactionType": "OfferCreate", + "TxnSignature": "3045022100A5023A0E64923616FCDB6D664F569644C7C9D1895772F986CD6B981B515B02A00220530C973E9A8395BC6FE2484948D2751F6B030FC7FB8575D1BFB406368AD554D9", + "hash": "C53ECF838647FA5A4C780377025FEC7999AB4182590510CA461444B207AB74A9" + }, + "validated": true + } } ``` + {% /tab %} {% /tabs %} @@ -449,25 +462,25 @@ rippled transaction_entry E08D6E9754025BA2534A78707605E0601F03ACE063687A0CA1BDDA {% tab label="API v2" %} -| `Field` | 型 | 説明 | -|:-----------------|:--------------------------------|:-----| -| `close_time_iso` | 文字列 | レジャーの閉鎖時刻をISO 8601の時刻形式で表します。 | -| `hash` | 文字列 | トランザクションの一意なハッシュ識別子。 | -| `ledger_index` | 数値 - [レジャーインデックス][] | トランザクションが存在するレジャーバージョンのレジャーインデックス。 | -| `ledger_hash` | 文字列 - [ハッシュ][] | _(省略される場合があります)_ トランザクションが存在するレジャーバージョンの識別用ハッシュ。 | +| `Field` | 型 | 説明 | +| :--------------- | :------------------------------ | :--------------------------------------------------------------------------------------------------------------------------- | +| `close_time_iso` | 文字列 | レジャーの閉鎖時刻をISO 8601の時刻形式で表します。 | +| `hash` | 文字列 | トランザクションの一意なハッシュ識別子。 | +| `ledger_index` | 数値 - [レジャーインデックス][] | トランザクションが存在するレジャーバージョンのレジャーインデックス。 | +| `ledger_hash` | 文字列 - [ハッシュ][] | _(省略される場合があります)_ トランザクションが存在するレジャーバージョンの識別用ハッシュ。 | | `meta` | オブジェクト | [トランザクションのメタデータ](../../../protocol/transactions/metadata.md)。トランザクションの正確な結果を詳細に表示します。 | -| `tx_json` | オブジェクト | [Transactionオブジェクト](../../../protocol/transactions/index.md)のJSON表現。 | +| `tx_json` | オブジェクト | [Transactionオブジェクト](../../../protocol/transactions/index.md)のJSON表現。 | {% /tab %} {% tab label="API v1" %} -| `Field` | 型 | 説明 | -| :------------- | :------------------------------ | ---- | -| `ledger_index` | 数値 - [レジャーインデックス][] | トランザクションが検出されたレジャーバージョンのレジャーインデックス。これはリクエストのレジャーインデックスと同じです。 | +| `Field` | 型 | 説明 | +| :------------- | :------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------- | +| `ledger_index` | 数値 - [レジャーインデックス][] | トランザクションが検出されたレジャーバージョンのレジャーインデックス。これはリクエストのレジャーインデックスと同じです。 | | `ledger_hash` | 文字列 - [ハッシュ][] | _(省略される場合があります)_ トランザクションが検出されたレジャーバージョンの識別用ハッシュ。これはリクエストのハッシュと同じです。 | -| `metadata` | オブジェクト | [トランザクションのメタデータ](../../../protocol/transactions/metadata.md)。トランザクションの正確な結果を詳細に表示します。 | -| `tx_json` | オブジェクト | [Transactionオブジェクト](../../../protocol/transactions/index.md)のJSON表現。 | +| `metadata` | オブジェクト | [トランザクションのメタデータ](../../../protocol/transactions/metadata.md)。トランザクションの正確な結果を詳細に表示します。 | +| `tx_json` | オブジェクト | [Transactionオブジェクト](../../../protocol/transactions/index.md)のJSON表現。 | {% /tab %} @@ -475,16 +488,16 @@ rippled transaction_entry E08D6E9754025BA2534A78707605E0601F03ACE063687A0CA1BDDA サーバがトランザクションの検出に失敗する原因として、次のようなものが考えられます。 -* トランザクションが存在しません。 -* トランザクションが存在しますが、指定のレジャーバージョンに含まれていません。 -* サーバには、使用可能な指定のレジャーバージョンがありません。正しいバージョンを保管する別のサーバからのレスポンスは、異なる可能性があります。 +- トランザクションが存在しません。 +- トランザクションが存在しますが、指定のレジャーバージョンに含まれていません。 +- サーバには、使用可能な指定のレジャーバージョンがありません。正しいバージョンを保管する別のサーバからのレスポンスは、異なる可能性があります。 ## 考えられるエラー -* いずれかの[汎用エラータイプ][]。 -* `fieldNotFoundTransaction` - `tx_hash`フィールドがリクエストで省略されています。 -* `notYetImplemented` - レジャーバージョンがリクエストに指定されていません。 -* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバが保有していません。 -* `transactionNotFound` - リクエストに指定されているトランザクションが指定のレジャーで見つかりませんでした。(トランザクションが異なるレジャーバージョンにあるか、またはトランザクションがまったく使用できない可能性があります。) +- いずれかの[汎用エラータイプ][]。 +- `fieldNotFoundTransaction` - `tx_hash`フィールドがリクエストで省略されています。 +- `notYetImplemented` - レジャーバージョンがリクエストに指定されていません。 +- `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバが保有していません。 +- `transactionNotFound` - リクエストに指定されているトランザクションが指定のレジャーで見つかりませんでした。(トランザクションが異なるレジャーバージョンにあるか、またはトランザクションがまったく使用できない可能性があります。) {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/transaction-methods/tx.md b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/transaction-methods/tx.md index af80ea8988..76f7dc9c22 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/transaction-methods/tx.md +++ b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/transaction-methods/tx.md @@ -2,11 +2,12 @@ html: tx.html parent: transaction-methods.html seo: - description: 1つのトランザクションに関する情報を取得します。 + description: 1つのトランザクションに関する情報を取得します。 labels: - トランザクション送信 - 支払い --- + # tx [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/Tx.cpp "Source") @@ -20,6 +21,7 @@ labels: {% tabs %} {% tab label="WebSocket (Hash)" %} + ```json { "id": 1, @@ -29,9 +31,11 @@ labels: "api_version": 2 } ``` + {% /tab %} {% tab label="WebSocket (CTID)" %} + ```json { "id": "CTID example", @@ -41,43 +45,50 @@ labels: "api_version": 2 } ``` + {% /tab %} {% tab label="JSON-RPC (Hash)" %} + ```json { - "method": "tx", - "params": [ - { - "transaction": "C53ECF838647FA5A4C780377025FEC7999AB4182590510CA461444B207AB74A9", - "binary": false, - "api_version": 2 - } - ] + "method": "tx", + "params": [ + { + "transaction": "C53ECF838647FA5A4C780377025FEC7999AB4182590510CA461444B207AB74A9", + "binary": false, + "api_version": 2 + } + ] } ``` + {% /tab %} {% tab label="JSON-RPC (CTID)" %} + ```json { - "method": "tx", - "params": [ - { - "ctid": "C005523E00000000", - "binary": false, - "api_version": 2 - } - ] + "method": "tx", + "params": [ + { + "ctid": "C005523E00000000", + "binary": false, + "api_version": 2 + } + ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh #Syntax: tx transaction [binary] rippled tx C53ECF838647FA5A4C780377025FEC7999AB4182590510CA461444B207AB74A9 false ``` + {% /tab %} {% /tabs %} @@ -86,13 +97,13 @@ rippled tx C53ECF838647FA5A4C780377025FEC7999AB4182590510CA461444B207AB74A9 fals リクエストには以下のパラメーターが含まれます。 -| フィールド | 型 | 必須? | 説明 | -| :------------ | :----- | :----- | --- | +| フィールド | 型 | 必須? | 説明 | +| :------------ | :----- | :----- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `ctid` | 文字列 | いいえ | 検索するトランザクションの[コンパクトトランザクション識別子](../../api-conventions/ctid.md)。大文字の16進数のみを使用する必要があります。 {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.12.0" %}新規: rippled 1.12.0{% /badge %} _(Clio v2.0以前では対応していません)_ | -| `transaction` | 文字列 | いいえ | 検索するトランザクションの16進数の256ビットハッシュ | -| `binary` | 真偽値 | いいえ | `true` の場合、トランザクションデータとメタデータを16進数文字列へのバイナリ[シリアライズ](../../../protocol/binary-format.md)として返します。`false` の場合、トランザクションデータとメタデータを JSON で返します。デフォルトは `false` 。 | -| `min_ledger` | 数値 | いいえ | `max_ledger`と一緒に使うことで、このレジャーを起点として最大1000件までの[レジャーインデックス][]の範囲を指定することができます(自身を含む)。サーバーが[トランザクションを見つけられない](#not-foundレスポンス)場合、この範囲内のいずれのレジャーにも存在しないことになります。 | -| `max_ledger` | 数値 | いいえ | `min_ledger`と一緒に使うと、このレジャーで終わる最大1000個の[レジャーインデックス][]の範囲を指定できます(自身を含む)。サーバーが[トランザクションを見つけられない](#not-foundレスポンス)場合、この範囲内のいずれのレジャーにも存在しないことになります。 | +| `transaction` | 文字列 | いいえ | 検索するトランザクションの16進数の256ビットハッシュ | +| `binary` | 真偽値 | いいえ | `true` の場合、トランザクションデータとメタデータを16進数文字列へのバイナリ[シリアライズ](../../../protocol/binary-format.md)として返します。`false` の場合、トランザクションデータとメタデータを JSON で返します。デフォルトは `false` 。 | +| `min_ledger` | 数値 | いいえ | `max_ledger`と一緒に使うことで、このレジャーを起点として最大1000件までの[レジャーインデックス][]の範囲を指定することができます(自身を含む)。サーバーが[トランザクションを見つけられない](#not-foundレスポンス)場合、この範囲内のいずれのレジャーにも存在しないことになります。 | +| `max_ledger` | 数値 | いいえ | `min_ledger`と一緒に使うと、このレジャーで終わる最大1000個の[レジャーインデックス][]の範囲を指定できます(自身を含む)。サーバーが[トランザクションを見つけられない](#not-foundレスポンス)場合、この範囲内のいずれのレジャーにも存在しないことになります。 | `ctid`または`transaction`のいずれか一方のみを提供する必要があります。 @@ -124,18 +135,18 @@ rippled tx C53ECF838647FA5A4C780377025FEC7999AB4182590510CA461444B207AB74A9 fals このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に[Transactionオブジェクト](../../../protocol/transactions/index.md)フィールドと以下の追加のフィールドが含まれています。 -| `Field` | 型 | 説明 | -| :------------- | :------------------ | ---- | +| `Field` | 型 | 説明 | +| :------------- | :------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `ctid` | 文字列 | 検索するトランザクションの[コンパクトトランザクション識別子](../../api-conventions/ctid.md)。大文字の16進数のみを使用する必要があります。 {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.12.0" %}新規: rippled 1.12.0{% /badge %} _(Clio v2.0以前では対応していません)_ | -| `date` | 数値 | トランザクションが適用されたレジャーの[閉鎖時間](../../../../concepts/ledgers/ledger-close-times.md)。[Ripple Epoch][]からの秒数で表されます。 | -| `hash` | 文字列 | トランザクションの一意の[識別ハッシュ][] | -| `inLedger` | 数値 | _(非推奨)_ `ledger_index`の別名。 | -| `ledger_index` | 数値 | トランザクションが含まれるレジャーの[レジャーインデックス][]。 | -| `meta` | オブジェクト (JSON) | (JSONモード) [Transaction metadata](../../../protocol/transactions/metadata.md)。トランザクションの結果を詳細に表示します。 | -| `meta_blob` | 文字列 (バイナリ) | (バイナリモード) [Transaction metadata](../../../protocol/transactions/metadata.md)。トランザクションの結果を詳細に表示します。 | -| `tx_blob` | 文字列 (バイナリ) | (バイナリモード) トランザクションデータを16進数の文字列で表したもの。 | -| `tx_json` | オブジェクト (JSON) | (JSONモード) トランザクションデータをJSONで表したもの。 | -| `validated` | 真偽値 | `true`の場合、このデータは検証済みのレジャーバージョンからのものです。`false`の場合、このデータはまだ検証されていません。 | +| `date` | 数値 | トランザクションが適用されたレジャーの[閉鎖時間](../../../../concepts/ledgers/ledger-close-times.md)。[Ripple Epoch][]からの秒数で表されます。 | +| `hash` | 文字列 | トランザクションの一意の[識別ハッシュ][] | +| `inLedger` | 数値 | _(非推奨)_ `ledger_index`の別名。 | +| `ledger_index` | 数値 | トランザクションが含まれるレジャーの[レジャーインデックス][]。 | +| `meta` | オブジェクト (JSON) | (JSONモード) [Transaction metadata](../../../protocol/transactions/metadata.md)。トランザクションの結果を詳細に表示します。 | +| `meta_blob` | 文字列 (バイナリ) | (バイナリモード) [Transaction metadata](../../../protocol/transactions/metadata.md)。トランザクションの結果を詳細に表示します。 | +| `tx_blob` | 文字列 (バイナリ) | (バイナリモード) トランザクションデータを16進数の文字列で表したもの。 | +| `tx_json` | オブジェクト (JSON) | (JSONモード) トランザクションデータをJSONで表したもの。 | +| `validated` | 真偽値 | `true`の場合、このデータは検証済みのレジャーバージョンからのものです。`false`の場合、このデータはまだ検証されていません。 | {% /tab %} @@ -143,18 +154,18 @@ rippled tx C53ECF838647FA5A4C780377025FEC7999AB4182590510CA461444B207AB74A9 fals このレスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に[Transactionオブジェクト](../../../protocol/transactions/index.md)フィールドと以下の追加のフィールドが含まれています。 -| `Field` | 型 | 説明 | -| :------------- | :--------------------------------------- | --- | +| `Field` | 型 | 説明 | +| :------------- | :--------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `ctid` | 文字列 | 検索するトランザクションの[コンパクトトランザクション識別子](../../api-conventions/ctid.md)。大文字の16進数のみを使用する必要があります。 {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.12.0" %}新規: rippled 1.12.0{% /badge %} _(Clio v2.0以前では対応していません)_ | -| `date` | 数値 | トランザクションが適用されたレジャーの[閉鎖時間](../../../../concepts/ledgers/ledger-close-times.md)。[Ripple Epoch][]からの秒数で表されます。 | -| `hash` | 文字列 | トランザクションの一意の[識別ハッシュ][] | -| `inLedger` | 数値 | _(非推奨)_ `ledger_index`の別名。 | -| `ledger_index` | 数値 | トランザクションが含まれるレジャーの[レジャーインデックス][]。 | -| `meta` | オブジェクト (JSON) or 文字列 (バイナリ) | [Transaction metadata](../../../protocol/transactions/metadata.md)。トランザクションの結果を詳細に表示します。 | -| `tx` | 文字列 (バイナリ) | (バイナリモード) トランザクションデータを16進数の文字列で表したもの。 | -| `tx_json` | オブジェクト (JSON) | (JSONモード) トランザクションデータをJSONで表したもの。 | -| `validated` | 真偽値 | `true`の場合、このデータは検証済みのレジャーバージョンからのものです。`false`の場合、このデータはまだ検証されていません。 | -| (その他) | (その他) | [Transactionオブジェクト](../../../protocol/transactions/index.md)のその他のフィールド | +| `date` | 数値 | トランザクションが適用されたレジャーの[閉鎖時間](../../../../concepts/ledgers/ledger-close-times.md)。[Ripple Epoch][]からの秒数で表されます。 | +| `hash` | 文字列 | トランザクションの一意の[識別ハッシュ][] | +| `inLedger` | 数値 | _(非推奨)_ `ledger_index`の別名。 | +| `ledger_index` | 数値 | トランザクションが含まれるレジャーの[レジャーインデックス][]。 | +| `meta` | オブジェクト (JSON) or 文字列 (バイナリ) | [Transaction metadata](../../../protocol/transactions/metadata.md)。トランザクションの結果を詳細に表示します。 | +| `tx` | 文字列 (バイナリ) | (バイナリモード) トランザクションデータを16進数の文字列で表したもの。 | +| `tx_json` | オブジェクト (JSON) | (JSONモード) トランザクションデータをJSONで表したもの。 | +| `validated` | 真偽値 | `true`の場合、このデータは検証済みのレジャーバージョンからのものです。`false`の場合、このデータはまだ検証されていません。 | +| (その他) | (その他) | [Transactionオブジェクト](../../../protocol/transactions/index.md)のその他のフィールド | {% /tab %} @@ -171,15 +182,16 @@ rippled tx C53ECF838647FA5A4C780377025FEC7999AB4182590510CA461444B207AB74A9 fals さらに可能性を絞り込むために、リクエストに`min_ledger`と`max_ledger`フィールドを指定してレジャーの範囲を指定することができます。リクエストに`min_ledger`と`max_ledger`フィールドを指定した場合、`txnNotFound`レスポンスには以下のフィールドが含まれます。 -| フィールド | 型 | 説明 | -|:---------------|:----------|:-----------------------------------------| -| `searched_all` | 真偽値 | _(リクエストに`min_ledger`と`max_ledger`が指定されていない場合は省略)_ サーバが指定されたすべてのレジャーバージョンを検索できた場合は`true`。サーバが指定されたすべてのレジャーバージョンを持っていないため、トランザクションがそれらのいずれかに含まれているかどうかを確認できない場合は`false`。 | +| フィールド | 型 | 説明 | +| :------------- | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `searched_all` | 真偽値 | _(リクエストに`min_ledger`と`max_ledger`が指定されていない場合は省略)_ サーバが指定されたすべてのレジャーバージョンを検索できた場合は`true`。サーバが指定されたすべてのレジャーバージョンを持っていないため、トランザクションがそれらのいずれかに含まれているかどうかを確認できない場合は`false`。 | リクエストされたレジャー範囲を完全に検索した`txnNotFound`レスポンスの例: {% tabs %} {% tab label="WebSocket" %} + ```json { "error": "txnNotFound", @@ -199,9 +211,11 @@ rippled tx C53ECF838647FA5A4C780377025FEC7999AB4182590510CA461444B207AB74A9 fals "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -222,16 +236,17 @@ rippled tx C53ECF838647FA5A4C780377025FEC7999AB4182590510CA461444B207AB74A9 fals } } ``` + {% /tab %} {% /tabs %} ## 考えられるエラー -* [汎用エラータイプ][]のすべて。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* `txnNotFound` - トランザクションが存在しないか、または`rippled`で使用できない古いレジャーバージョンのトランザクションです。 -* `excessiveLgrRange` - リクエストの`min_ledger`と`max_ledger`フィールドの差が1000を超えています。 -* `invalidLgrRange` - 指定された`min_ledger`が`max_ledger`より大きいか、それらのパラメータのいずれかが有効なレジャーインデックスではありません。 +- [汎用エラータイプ][]のすべて。 +- `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 +- `txnNotFound` - トランザクションが存在しないか、または`rippled`で使用できない古いレジャーバージョンのトランザクションです。 +- `excessiveLgrRange` - リクエストの`min_ledger`と`max_ledger`フィールドの差が1000を超えています。 +- `invalidLgrRange` - 指定された`min_ledger`が`max_ledger`より大きいか、それらのパラメータのいずれかが有効なレジャーインデックスではありません。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/transaction-methods/tx_history.md b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/transaction-methods/tx_history.md index c3ac07d8fb..35a1c6b8ff 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/transaction-methods/tx_history.md +++ b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/transaction-methods/tx_history.md @@ -2,9 +2,11 @@ html: tx_history.html parent: transaction-methods.html seo: - description: 直近に作成されたトランザクションの一部を取得します。 + description: 直近に作成されたトランザクションの一部を取得します。 --- + # tx_history + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/TxHistory.cpp "Source") `tx_history`メソッドは、直近に作成されたトランザクションの一部を取得します。 @@ -12,38 +14,45 @@ seo: {% admonition type="warning" name="注意" %}このメソッドは廃止予定であり、今後予告なしに削除される可能性があります。{% /admonition %} ## リクエストのフォーマット + リクエストのフォーマットの例: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": 5, - "command": "tx_history", - "start": 0 + "id": 5, + "command": "tx_history", + "start": 0 } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "tx_history", - "params": [ - { - "start": 0 - } - ] + "method": "tx_history", + "params": [ + { + "start": 0 + } + ] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh #Syntax: tx_history [start] rippled tx_history 0 ``` + {% /tab %} {% /tabs %} @@ -52,8 +61,8 @@ rippled tx_history 0 リクエストには以下のパラメーターが含まれます。 -| `Field` | 型 | 説明 | -|:--------|:-----------------|:-------------------------------------| +| `Field` | 型 | 説明 | +| :------ | :----------- | :--------------------------------- | | `start` | 符号なし整数 | スキップするトランザクションの数。 | ## レスポンスのフォーマット @@ -63,459 +72,462 @@ rippled tx_history 0 {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": 2, - "status": "success", - "type": "response", - "result": { - "index": 0, - "txs": [ - { - "Account": "r9bf8V4ae5xReYnKPXgnwERDFPoW34FhGy", - "Fee": "12", - "Flags": 2147483648, - "LastLedgerSequence": 6907169, - "Sequence": 3276, - "SigningPubKey": "03B7857216DF96BABCC839686670A67602B3EE50D0F12B41C15F73760B8ED394C1", - "TransactionType": "AccountSet", - "TxnSignature": "3045022100CC0A2688DC36DC47BDBD5A571407316DD16A6CB3289E60C9589531707D30EBDB022010A2ED1F8562FEF61461B89E90E9D7245F5DD1AAE6680401A60F7FDA60184312", - "hash": "30FF69D2F2C2FF517A82EC8BA62AA4879E27A6EAF2C9B4AA422B77C23CD11B35", - "inLedger": 6907162, - "ledger_index": 6907162 - }, - { - "Account": "rHsZHqa5oMQNL5hFm4kfLd47aEMYjPstpg", - "Fee": "15", - "Flags": 0, - "Sequence": 1479735, - "SigningPubKey": "025718736160FA6632F48EA4354A35AB0340F8D7DC7083799B9C57C3E937D71851", - "TakerGets": "9999999999", - "TakerPays": { - "currency": "USD", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "48.050907917" - }, - "TransactionType": "OfferCreate", - "TxnSignature": "3045022100C110F47609CED085E0C184396877685ACAFF0A5846C859E9A57A8E238788FAE2022042A578D36F3D911E2536A39D74B10A741EF4C77B40738DB66E9E4FA85B797DF2", - "hash": "A5DE72E2E97CB0FA548713FB7C8542FD1A9723EC556D386F13B25F052435B29F", - "inLedger": 6907162, - "ledger_index": 6907162 - }, - { - "Account": "r9bf8V4ae5xReYnKPXgnwERDFPoW34FhGy", - "Fee": "12", - "Flags": 2147483648, - "LastLedgerSequence": 6907169, - "Sequence": 3275, - "SigningPubKey": "03B7857216DF96BABCC839686670A67602B3EE50D0F12B41C15F73760B8ED394C1", - "TransactionType": "AccountSet", - "TxnSignature": "3044022030E4CCDCBA8D9984C16AD9807D0FE654D4C558C08728B33A6D9F4D05DA811CF102202A6B53015583A6C24054EE93D9B9DDF0D17133676848304BBA5156DD2C2875BE", - "hash": "55DFC8F7EF3976B5968DC462D91B29274E8097C35D43D6B3740AB20584336A9C", - "inLedger": 6907162, - "ledger_index": 6907162 - }, - { - "Account": "rHsZHqa5oMQNL5hFm4kfLd47aEMYjPstpg", - "Fee": "15", - "Flags": 131072, - "Sequence": 1479734, - "SigningPubKey": "025718736160FA6632F48EA4354A35AB0340F8D7DC7083799B9C57C3E937D71851", - "TakerGets": { - "currency": "BTC", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "0.009194668" - }, - "TakerPays": "1073380944", - "TransactionType": "OfferCreate", - "TxnSignature": "304402202C0D26EABE058FCE8B6862EF5CAB70674637CE32B1B4E2F3551B9D5A2E1CDC7E02202C191D2697C65478BC2C1489721EB5799A6F3D4A1ECD8FE87A0C4FDCA3704A03", - "hash": "2499BAE9947BE731D7FE2F8E7B6A55E1E5B43BA8D3A9F22E39F79A0CC027A1C8", - "inLedger": 6907161, - "ledger_index": 6907161 - }, - { - "Account": "rHsZHqa5oMQNL5hFm4kfLd47aEMYjPstpg", - "Fee": "15", - "Flags": 131072, - "Sequence": 1479733, - "SigningPubKey": "025718736160FA6632F48EA4354A35AB0340F8D7DC7083799B9C57C3E937D71851", - "TakerGets": { - "currency": "USD", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "5.298037873" - }, - "TakerPays": { - "currency": "BTC", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "0.008937558999999999" - }, - "TransactionType": "OfferCreate", - "TxnSignature": "3044022075EF6054ABD08F9B8287314AD4904944A74A6C3BBED9D035BCE7D409FC46E49E022025CFEE7F72BEC1F87EA83E3565CB653643A57CDD13661798D6B70F47AF63FDB6", - "hash": "F873CB065791DDD503580931A500BB896B9DBAFC9C285C1159B884354F3EF48B", - "inLedger": 6907161, - "ledger_index": 6907161 - }, - { - "Account": "rHsZHqa5oMQNL5hFm4kfLd47aEMYjPstpg", - "Fee": "15", - "Flags": 0, - "OfferSequence": 1479726, - "Sequence": 1479732, - "SigningPubKey": "025718736160FA6632F48EA4354A35AB0340F8D7DC7083799B9C57C3E937D71851", - "TransactionType": "OfferCancel", - "TxnSignature": "3045022100E82B813DA3896051EAAA3D53E197F8F426DF4E51F07A2AB83E43B10CD4008D8402204D93BABA74E63E775D44D77F4F9B07D69B0C86930F2865BBBBD2DC956FA8AE4E", - "hash": "203613CFA3CB7BFBCFABBBCF80D932DFBBFDECCBB869CCDBE756EAA4C8EEA41D", - "inLedger": 6907161, - "ledger_index": 6907161 - }, - { - "Account": "rHsZHqa5oMQNL5hFm4kfLd47aEMYjPstpg", - "Fee": "15", - "Flags": 0, - "OfferSequence": 1479725, - "Sequence": 1479731, - "SigningPubKey": "025718736160FA6632F48EA4354A35AB0340F8D7DC7083799B9C57C3E937D71851", - "TransactionType": "OfferCancel", - "TxnSignature": "30440220678FF2E754A879EAE72207F191614BBA01B8088CD174AF509E9AA11448798CD502205B326E187A0530E4E90BDD1ED875492836657E4D593FBD655F64604178693D2F", - "hash": "1CF4D0D583F6FC85BFD15A0BEF5E4779A8ACAD0DE43823F07C9CC2A20E29E422", - "inLedger": 6907161, - "ledger_index": 6907161 - }, - { - "Account": "rHsZHqa5oMQNL5hFm4kfLd47aEMYjPstpg", - "Fee": "15", - "Flags": 0, - "OfferSequence": 1479724, - "Sequence": 1479730, - "SigningPubKey": "025718736160FA6632F48EA4354A35AB0340F8D7DC7083799B9C57C3E937D71851", - "TransactionType": "OfferCancel", - "TxnSignature": "3045022100A5533E81A67B6A88B674864E898FDF31D83787FECE496544EBEE88E6FC220500022002438599B2A0E4F70C2B46FB049CD339F76E466399CA4A8F72C4ADA03F615D90", - "hash": "D96EC06F2ADF3CF7ED59BD76B8F1BDB127CDE46B45977B477703DB05B8DF5208", - "inLedger": 6907161, - "ledger_index": 6907161 - }, - { - "Account": "rHsZHqa5oMQNL5hFm4kfLd47aEMYjPstpg", - "Fee": "15", - "Flags": 0, - "OfferSequence": 1479723, - "Sequence": 1479729, - "SigningPubKey": "025718736160FA6632F48EA4354A35AB0340F8D7DC7083799B9C57C3E937D71851", - "TransactionType": "OfferCancel", - "TxnSignature": "304402206DEF8C70103AE45BCED6762B238E6F155A57D46300E8FF0A1CD0197362483CAE022007BBDFD93A0BC2473EE4537B44095D1BB5EB83F76661A14230FB3B27C4EABB6D", - "hash": "089D22F601FB52D0E55A8E27D393F05570DC24E92028BB9D9DCAD7BC3337ADF9", - "inLedger": 6907161, - "ledger_index": 6907161 - }, - { - "Account": "rHsZHqa5oMQNL5hFm4kfLd47aEMYjPstpg", - "Fee": "15", - "Flags": 0, - "OfferSequence": 1479722, - "Sequence": 1479728, - "SigningPubKey": "025718736160FA6632F48EA4354A35AB0340F8D7DC7083799B9C57C3E937D71851", - "TransactionType": "OfferCancel", - "TxnSignature": "3044022065051B7240DE1D46865453B3D7F8FC59FB2B9FD609196AB394F857B75E2B8409022044683F3A35740FC97655A8A4516184D8C582E5D88CA360301B1AD308F4126763", - "hash": "F6A660EF99E32D02B9AF761B14993CA1ED8BAF3507F580D90A7759ABFAF0284E", - "inLedger": 6907161, - "ledger_index": 6907161 - }, - { - "Account": "rUBLCjWdsPPMkppdFXVJWhHnr3FNqCzgG3", - "Fee": "15", - "Flags": 0, - "LastLedgerSequence": 6907168, - "Sequence": 173286, - "SigningPubKey": "03D606359EEA9C0A49CA9EF55F6AED6C8AEDDE604223C1BE51A2D0460A725CF173", - "TakerGets": { - "currency": "BTC", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "0.44942631" - }, - "TakerPays": { - "currency": "USD", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "260" - }, - "TransactionType": "OfferCreate", - "TxnSignature": "304502205395AF4127AD0B890AC9C47F765B4F4046C70C3DFC6F8DCD2729552FAA97F13C022100C8C2DBA6A466D76D0F103AC88DB166D1EC7F6339238E2C4245C2C26308B38058", - "hash": "F20F06F36B5FEFF43DD1E8AEDBE9A0ECEF0CE41402AE6F0FE4BEE1F2F82A4D54", - "inLedger": 6907161, - "ledger_index": 6907161 - }, - { - "Account": "rDVynssGDojUPpM4abx9rxYeHG4HiLGxC", - "Fee": "15", - "Flags": 2147483648, - "LastLedgerSequence": 6907169, - "OfferSequence": 859, - "Sequence": 860, - "SigningPubKey": "02C37DA8D793142BD190CE13BB697521A89D1DC318A045816EE657F42527EBFC4E", - "TakerGets": "19871628459", - "TakerPays": { - "currency": "BTC", - "issuer": "rfYv1TXnwgDDK4WQNbFALykYuEBnrR4pDX", - "value": "0.166766470665369" - }, - "TransactionType": "OfferCreate", - "TxnSignature": "3044022074737D253A0DB39DBB6C63E5BD522C1313CC57658B0A567E1F1DD3414DA3817502201F333D81F29845C53A0271D0C5B005DEE4A250529DAD1A880838E242D358EE35", - "hash": "AD197326AEF75AA466F32FEA87358C9FB587F1C1ABF41C73E2C3EFDD83B6F33B", - "inLedger": 6907161, - "ledger_index": 6907161 - }, - { - "Account": "rHsZHqa5oMQNL5hFm4kfLd47aEMYjPstpg", - "Fee": "15", - "Flags": 0, - "OfferSequence": 1479721, - "Sequence": 1479727, - "SigningPubKey": "025718736160FA6632F48EA4354A35AB0340F8D7DC7083799B9C57C3E937D71851", - "TransactionType": "OfferCancel", - "TxnSignature": "3045022100CCD7336F78291E1BCAA4F86695119175E0DBC26281B2F13B30A24C726419DFCA022062547E0A4894CEAE87C42CABA94E0731134560F07D8860AE62F4A87AFD16BC43", - "hash": "20353EA4152C32E63941DE2F3175BA69657BA9FAB39D22BCE38B6CA1B3734D4B", - "inLedger": 6907161, - "ledger_index": 6907161 - }, - { - "Account": "r9bf8V4ae5xReYnKPXgnwERDFPoW34FhGy", - "Fee": "12", - "Flags": 2147483648, - "LastLedgerSequence": 6907168, - "Sequence": 3274, - "SigningPubKey": "03B7857216DF96BABCC839686670A67602B3EE50D0F12B41C15F73760B8ED394C1", - "TransactionType": "AccountSet", - "TxnSignature": "3045022100F8412BBB1DB830F314F7400E99570A9F92668ACCDEA6096144A47EDF98E18D5D02204AD89122224F353155EACC30F80BA214350968F744A480B4CD5A3174B473D6AF", - "hash": "16F266ABCC617CF906A25AA83BDDAD2577125E6A692A36543934AA0F0C3B77C0", - "inLedger": 6907161, - "ledger_index": 6907161 - }, - { - "Account": "r9bf8V4ae5xReYnKPXgnwERDFPoW34FhGy", - "Fee": "12", - "Flags": 2147483648, - "LastLedgerSequence": 6907167, - "Sequence": 3273, - "SigningPubKey": "03B7857216DF96BABCC839686670A67602B3EE50D0F12B41C15F73760B8ED394C1", - "TakerGets": "5397", - "TakerPays": { - "currency": "USD", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "0.00002593363079073453" - }, - "TransactionType": "OfferCreate", - "TxnSignature": "3044022061685E23375A299747DE45DA302966C6AF8C07D2DA9BEBB4F5572E3B02C6564D02207187E626EC817EFAFFAD002E75FC16E17A5BD54DA41D4E339F3C2A9F86FFD523", - "hash": "C9112B7C246FC8A9B377BD762F1D64F0DCA1128D55254A442E5735935A09D83E", - "inLedger": 6907160, - "ledger_index": 6907160 - }, - { - "Account": "rBHMbioz9znTCqgjZ6Nx43uWY43kToEPa9", - "Amount": { - "currency": "USD", - "issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "value": "4" - }, - "Destination": "r4X3WWZ3UZMDw3Z7T32FXK2NAaiitSWZ9c", - "Fee": "12", - "Flags": 0, - "LastLedgerSequence": 6907168, - "Paths": [ - [ - { - "account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type": 1, - "type_hex": "0000000000000001" - }, - { - "currency": "XRP", - "type": 16, - "type_hex": "0000000000000010" - }, - { - "currency": "USD", - "issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "type": 48, - "type_hex": "0000000000000030" - }, - { - "account": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "type": 1, - "type_hex": "0000000000000001" - } - ], - [ - { - "account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type": 1, - "type_hex": "0000000000000001" - }, - { - "currency": "USD", - "issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "type": 48, - "type_hex": "0000000000000030" - }, - { - "account": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "type": 1, - "type_hex": "0000000000000001" - } - ], - [ - { - "account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type": 1, - "type_hex": "0000000000000001" - }, - { - "currency": "XRP", - "type": 16, - "type_hex": "0000000000000010" - }, - { - "currency": "USD", - "issuer": "rwmUaXsWtXU4Z843xSYwgt1is97bgY8yj6", - "type": 48, - "type_hex": "0000000000000030" - }, - { - "account": "rwmUaXsWtXU4Z843xSYwgt1is97bgY8yj6", - "type": 1, - "type_hex": "0000000000000001" - }, - { - "account": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "type": 1, - "type_hex": "0000000000000001" - } - ], - [ - { - "account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type": 1, - "type_hex": "0000000000000001" - }, - { - "currency": "XRP", - "type": 16, - "type_hex": "0000000000000010" - }, - { - "currency": "USD", - "issuer": "rfsEoNBUBbvkf4jPcFe2u9CyaQagLVHGfP", - "type": 48, - "type_hex": "0000000000000030" - }, - { - "account": "rfsEoNBUBbvkf4jPcFe2u9CyaQagLVHGfP", - "type": 1, - "type_hex": "0000000000000001" - }, - { - "account": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "type": 1, - "type_hex": "0000000000000001" - } - ] - ], - "SendMax": { - "currency": "USD", - "issuer": "rBHMbioz9znTCqgjZ6Nx43uWY43kToEPa9", - "value": "4.132649022" - }, - "Sequence": 4660, - "SigningPubKey": "03DFEFC9A95AEF55232A2B89867745CE45373F5CE23C34D51D21343CEA92BD61AD", - "TransactionType": "Payment", - "TxnSignature": "30450220636E405B96C998BF5EBB665D519FA8B4431A6CB5962F754EEDD48EBE95F8C45F02210097851E297FEDA44F7DFED844AE109CF2D968BD58CD3C0E951B435278A91002FA", - "hash": "5007E8ECAE64482D258E915FFDEFAF2FE35ED9520BA7BB424BE280691F997435", - "inLedger": 6907160, - "ledger_index": 6907160 - }, - { - "Account": "rfESTMcbvbvCBqU1FTvGWiJP8cmUSu4GKg", - "Amount": { - "currency": "BTC", - "issuer": "rTJdjjQ5wWAMh8TL1ToXXD2mZzesa6DSX", - "value": "0.0998" - }, - "Destination": "r3AWbdp2jQLXLywJypdoNwVSvr81xs3uhn", - "Fee": "10", - "Flags": 2147483648, - "InvoiceID": "A98FD36C17BE2B8511AD36DC335478E7E89F06262949F36EB88E2D683BBCC50A", - "SendMax": { - "currency": "BTC", - "issuer": "rTJdjjQ5wWAMh8TL1ToXXD2mZzesa6DSX", - "value": "0.100798" - }, - "Sequence": 18697, - "SigningPubKey": "025D9E40A50D78347EB8AFF7A36222BBE173CB9D06E68D109D189FF8616FC21107", - "TransactionType": "Payment", - "TxnSignature": "3044022007AA39E0117963ABF03BAEF0C5AB45862093525344362D34B9F6BA8373A0C9DC02206AB4FE915F4CBDA84E668F7F21A9914DC95C83A72FB3F9A114B10D4ECB697A25", - "hash": "C738A5095DCE3A256C843AA48BB26F0339EAD3FF09B6D75C2EF50C4AD4B4D17C", - "inLedger": 6907159, - "ledger_index": 6907159 - }, - { - "Account": "rHsZHqa5oMQNL5hFm4kfLd47aEMYjPstpg", - "Fee": "15", - "Flags": 0, - "Sequence": 1479726, - "SigningPubKey": "025718736160FA6632F48EA4354A35AB0340F8D7DC7083799B9C57C3E937D71851", - "TakerGets": "37284087", - "TakerPays": { - "currency": "NZD", - "issuer": "rsP3mgGb2tcYUrxiLFiHJiQXhsziegtwBc", - "value": "0.291570426" - }, - "TransactionType": "OfferCreate", - "TxnSignature": "3045022100F246F043C97C0DA7947793E9390DBA5AB0C6EB4A0165DADF0E96C939B70D113C0220797F572368EF68490813663C0E2ACF03424CB73B64F3D6C8508C7E8F6D2CC767", - "hash": "CAE39A38C222DF0BBC9AA25D30320220DC216646CE0A447F330BE279B20BD008", - "inLedger": 6907159, - "ledger_index": 6907159 - }, - { - "Account": "rHsZHqa5oMQNL5hFm4kfLd47aEMYjPstpg", - "Fee": "15", - "Flags": 0, - "Sequence": 1479725, - "SigningPubKey": "025718736160FA6632F48EA4354A35AB0340F8D7DC7083799B9C57C3E937D71851", - "TakerGets": "10000000000", - "TakerPays": { - "currency": "BTC", - "issuer": "ra9eZxMbJrUcgV8ui7aPc161FgrqWScQxV", - "value": "0.091183099" - }, - "TransactionType": "OfferCreate", - "TxnSignature": "30440220376E6D149435B87CA761ED1A9BD205BA93C0C30D6EB1FB26D8B5D06A55977F510220213E882DD43BC78C96B51E43273D9BD451F8337DDF6960CBFB9802A347FF18E4", - "hash": "CC07A503ED60F14AF023AB839C726B73591DE5C986D1234671E2518D8F840E12", - "inLedger": 6907159, - "ledger_index": 6907159 - }, - { - "Account": "rHsZHqa5oMQNL5hFm4kfLd47aEMYjPstpg", - "Fee": "15", - "Flags": 0, - "Sequence": 1479724, - "SigningPubKey": "025718736160FA6632F48EA4354A35AB0340F8D7DC7083799B9C57C3E937D71851", - "TakerGets": "9094329166", - "TakerPays": { - "currency": "XAG", - "issuer": "r9Dr5xwkeLegBeXq6ujinjSBLQzQ1zQGjH", - "value": "3.022830117" - }, - "TransactionType": "OfferCreate", - "TxnSignature": "3045022100CFD63762B3809B37B6A1294C4B4C8DA39023D66893045BA4AA9767DD8570A8F9022005F42B08E94190637158E80DAE99F3FB104EC2AA30F69BBA3417E5BBCDB5DB77", - "hash": "64029D736C34D21CDB100D976A06A988E2CA6E3BBC0DDFCE840D9619B853B47C", - "inLedger": 6907159, - "ledger_index": 6907159 - } - ] - } + "id": 2, + "status": "success", + "type": "response", + "result": { + "index": 0, + "txs": [ + { + "Account": "r9bf8V4ae5xReYnKPXgnwERDFPoW34FhGy", + "Fee": "12", + "Flags": 2147483648, + "LastLedgerSequence": 6907169, + "Sequence": 3276, + "SigningPubKey": "03B7857216DF96BABCC839686670A67602B3EE50D0F12B41C15F73760B8ED394C1", + "TransactionType": "AccountSet", + "TxnSignature": "3045022100CC0A2688DC36DC47BDBD5A571407316DD16A6CB3289E60C9589531707D30EBDB022010A2ED1F8562FEF61461B89E90E9D7245F5DD1AAE6680401A60F7FDA60184312", + "hash": "30FF69D2F2C2FF517A82EC8BA62AA4879E27A6EAF2C9B4AA422B77C23CD11B35", + "inLedger": 6907162, + "ledger_index": 6907162 + }, + { + "Account": "rHsZHqa5oMQNL5hFm4kfLd47aEMYjPstpg", + "Fee": "15", + "Flags": 0, + "Sequence": 1479735, + "SigningPubKey": "025718736160FA6632F48EA4354A35AB0340F8D7DC7083799B9C57C3E937D71851", + "TakerGets": "9999999999", + "TakerPays": { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "48.050907917" + }, + "TransactionType": "OfferCreate", + "TxnSignature": "3045022100C110F47609CED085E0C184396877685ACAFF0A5846C859E9A57A8E238788FAE2022042A578D36F3D911E2536A39D74B10A741EF4C77B40738DB66E9E4FA85B797DF2", + "hash": "A5DE72E2E97CB0FA548713FB7C8542FD1A9723EC556D386F13B25F052435B29F", + "inLedger": 6907162, + "ledger_index": 6907162 + }, + { + "Account": "r9bf8V4ae5xReYnKPXgnwERDFPoW34FhGy", + "Fee": "12", + "Flags": 2147483648, + "LastLedgerSequence": 6907169, + "Sequence": 3275, + "SigningPubKey": "03B7857216DF96BABCC839686670A67602B3EE50D0F12B41C15F73760B8ED394C1", + "TransactionType": "AccountSet", + "TxnSignature": "3044022030E4CCDCBA8D9984C16AD9807D0FE654D4C558C08728B33A6D9F4D05DA811CF102202A6B53015583A6C24054EE93D9B9DDF0D17133676848304BBA5156DD2C2875BE", + "hash": "55DFC8F7EF3976B5968DC462D91B29274E8097C35D43D6B3740AB20584336A9C", + "inLedger": 6907162, + "ledger_index": 6907162 + }, + { + "Account": "rHsZHqa5oMQNL5hFm4kfLd47aEMYjPstpg", + "Fee": "15", + "Flags": 131072, + "Sequence": 1479734, + "SigningPubKey": "025718736160FA6632F48EA4354A35AB0340F8D7DC7083799B9C57C3E937D71851", + "TakerGets": { + "currency": "BTC", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "0.009194668" + }, + "TakerPays": "1073380944", + "TransactionType": "OfferCreate", + "TxnSignature": "304402202C0D26EABE058FCE8B6862EF5CAB70674637CE32B1B4E2F3551B9D5A2E1CDC7E02202C191D2697C65478BC2C1489721EB5799A6F3D4A1ECD8FE87A0C4FDCA3704A03", + "hash": "2499BAE9947BE731D7FE2F8E7B6A55E1E5B43BA8D3A9F22E39F79A0CC027A1C8", + "inLedger": 6907161, + "ledger_index": 6907161 + }, + { + "Account": "rHsZHqa5oMQNL5hFm4kfLd47aEMYjPstpg", + "Fee": "15", + "Flags": 131072, + "Sequence": 1479733, + "SigningPubKey": "025718736160FA6632F48EA4354A35AB0340F8D7DC7083799B9C57C3E937D71851", + "TakerGets": { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "5.298037873" + }, + "TakerPays": { + "currency": "BTC", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "0.008937558999999999" + }, + "TransactionType": "OfferCreate", + "TxnSignature": "3044022075EF6054ABD08F9B8287314AD4904944A74A6C3BBED9D035BCE7D409FC46E49E022025CFEE7F72BEC1F87EA83E3565CB653643A57CDD13661798D6B70F47AF63FDB6", + "hash": "F873CB065791DDD503580931A500BB896B9DBAFC9C285C1159B884354F3EF48B", + "inLedger": 6907161, + "ledger_index": 6907161 + }, + { + "Account": "rHsZHqa5oMQNL5hFm4kfLd47aEMYjPstpg", + "Fee": "15", + "Flags": 0, + "OfferSequence": 1479726, + "Sequence": 1479732, + "SigningPubKey": "025718736160FA6632F48EA4354A35AB0340F8D7DC7083799B9C57C3E937D71851", + "TransactionType": "OfferCancel", + "TxnSignature": "3045022100E82B813DA3896051EAAA3D53E197F8F426DF4E51F07A2AB83E43B10CD4008D8402204D93BABA74E63E775D44D77F4F9B07D69B0C86930F2865BBBBD2DC956FA8AE4E", + "hash": "203613CFA3CB7BFBCFABBBCF80D932DFBBFDECCBB869CCDBE756EAA4C8EEA41D", + "inLedger": 6907161, + "ledger_index": 6907161 + }, + { + "Account": "rHsZHqa5oMQNL5hFm4kfLd47aEMYjPstpg", + "Fee": "15", + "Flags": 0, + "OfferSequence": 1479725, + "Sequence": 1479731, + "SigningPubKey": "025718736160FA6632F48EA4354A35AB0340F8D7DC7083799B9C57C3E937D71851", + "TransactionType": "OfferCancel", + "TxnSignature": "30440220678FF2E754A879EAE72207F191614BBA01B8088CD174AF509E9AA11448798CD502205B326E187A0530E4E90BDD1ED875492836657E4D593FBD655F64604178693D2F", + "hash": "1CF4D0D583F6FC85BFD15A0BEF5E4779A8ACAD0DE43823F07C9CC2A20E29E422", + "inLedger": 6907161, + "ledger_index": 6907161 + }, + { + "Account": "rHsZHqa5oMQNL5hFm4kfLd47aEMYjPstpg", + "Fee": "15", + "Flags": 0, + "OfferSequence": 1479724, + "Sequence": 1479730, + "SigningPubKey": "025718736160FA6632F48EA4354A35AB0340F8D7DC7083799B9C57C3E937D71851", + "TransactionType": "OfferCancel", + "TxnSignature": "3045022100A5533E81A67B6A88B674864E898FDF31D83787FECE496544EBEE88E6FC220500022002438599B2A0E4F70C2B46FB049CD339F76E466399CA4A8F72C4ADA03F615D90", + "hash": "D96EC06F2ADF3CF7ED59BD76B8F1BDB127CDE46B45977B477703DB05B8DF5208", + "inLedger": 6907161, + "ledger_index": 6907161 + }, + { + "Account": "rHsZHqa5oMQNL5hFm4kfLd47aEMYjPstpg", + "Fee": "15", + "Flags": 0, + "OfferSequence": 1479723, + "Sequence": 1479729, + "SigningPubKey": "025718736160FA6632F48EA4354A35AB0340F8D7DC7083799B9C57C3E937D71851", + "TransactionType": "OfferCancel", + "TxnSignature": "304402206DEF8C70103AE45BCED6762B238E6F155A57D46300E8FF0A1CD0197362483CAE022007BBDFD93A0BC2473EE4537B44095D1BB5EB83F76661A14230FB3B27C4EABB6D", + "hash": "089D22F601FB52D0E55A8E27D393F05570DC24E92028BB9D9DCAD7BC3337ADF9", + "inLedger": 6907161, + "ledger_index": 6907161 + }, + { + "Account": "rHsZHqa5oMQNL5hFm4kfLd47aEMYjPstpg", + "Fee": "15", + "Flags": 0, + "OfferSequence": 1479722, + "Sequence": 1479728, + "SigningPubKey": "025718736160FA6632F48EA4354A35AB0340F8D7DC7083799B9C57C3E937D71851", + "TransactionType": "OfferCancel", + "TxnSignature": "3044022065051B7240DE1D46865453B3D7F8FC59FB2B9FD609196AB394F857B75E2B8409022044683F3A35740FC97655A8A4516184D8C582E5D88CA360301B1AD308F4126763", + "hash": "F6A660EF99E32D02B9AF761B14993CA1ED8BAF3507F580D90A7759ABFAF0284E", + "inLedger": 6907161, + "ledger_index": 6907161 + }, + { + "Account": "rUBLCjWdsPPMkppdFXVJWhHnr3FNqCzgG3", + "Fee": "15", + "Flags": 0, + "LastLedgerSequence": 6907168, + "Sequence": 173286, + "SigningPubKey": "03D606359EEA9C0A49CA9EF55F6AED6C8AEDDE604223C1BE51A2D0460A725CF173", + "TakerGets": { + "currency": "BTC", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "0.44942631" + }, + "TakerPays": { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "260" + }, + "TransactionType": "OfferCreate", + "TxnSignature": "304502205395AF4127AD0B890AC9C47F765B4F4046C70C3DFC6F8DCD2729552FAA97F13C022100C8C2DBA6A466D76D0F103AC88DB166D1EC7F6339238E2C4245C2C26308B38058", + "hash": "F20F06F36B5FEFF43DD1E8AEDBE9A0ECEF0CE41402AE6F0FE4BEE1F2F82A4D54", + "inLedger": 6907161, + "ledger_index": 6907161 + }, + { + "Account": "rDVynssGDojUPpM4abx9rxYeHG4HiLGxC", + "Fee": "15", + "Flags": 2147483648, + "LastLedgerSequence": 6907169, + "OfferSequence": 859, + "Sequence": 860, + "SigningPubKey": "02C37DA8D793142BD190CE13BB697521A89D1DC318A045816EE657F42527EBFC4E", + "TakerGets": "19871628459", + "TakerPays": { + "currency": "BTC", + "issuer": "rfYv1TXnwgDDK4WQNbFALykYuEBnrR4pDX", + "value": "0.166766470665369" + }, + "TransactionType": "OfferCreate", + "TxnSignature": "3044022074737D253A0DB39DBB6C63E5BD522C1313CC57658B0A567E1F1DD3414DA3817502201F333D81F29845C53A0271D0C5B005DEE4A250529DAD1A880838E242D358EE35", + "hash": "AD197326AEF75AA466F32FEA87358C9FB587F1C1ABF41C73E2C3EFDD83B6F33B", + "inLedger": 6907161, + "ledger_index": 6907161 + }, + { + "Account": "rHsZHqa5oMQNL5hFm4kfLd47aEMYjPstpg", + "Fee": "15", + "Flags": 0, + "OfferSequence": 1479721, + "Sequence": 1479727, + "SigningPubKey": "025718736160FA6632F48EA4354A35AB0340F8D7DC7083799B9C57C3E937D71851", + "TransactionType": "OfferCancel", + "TxnSignature": "3045022100CCD7336F78291E1BCAA4F86695119175E0DBC26281B2F13B30A24C726419DFCA022062547E0A4894CEAE87C42CABA94E0731134560F07D8860AE62F4A87AFD16BC43", + "hash": "20353EA4152C32E63941DE2F3175BA69657BA9FAB39D22BCE38B6CA1B3734D4B", + "inLedger": 6907161, + "ledger_index": 6907161 + }, + { + "Account": "r9bf8V4ae5xReYnKPXgnwERDFPoW34FhGy", + "Fee": "12", + "Flags": 2147483648, + "LastLedgerSequence": 6907168, + "Sequence": 3274, + "SigningPubKey": "03B7857216DF96BABCC839686670A67602B3EE50D0F12B41C15F73760B8ED394C1", + "TransactionType": "AccountSet", + "TxnSignature": "3045022100F8412BBB1DB830F314F7400E99570A9F92668ACCDEA6096144A47EDF98E18D5D02204AD89122224F353155EACC30F80BA214350968F744A480B4CD5A3174B473D6AF", + "hash": "16F266ABCC617CF906A25AA83BDDAD2577125E6A692A36543934AA0F0C3B77C0", + "inLedger": 6907161, + "ledger_index": 6907161 + }, + { + "Account": "r9bf8V4ae5xReYnKPXgnwERDFPoW34FhGy", + "Fee": "12", + "Flags": 2147483648, + "LastLedgerSequence": 6907167, + "Sequence": 3273, + "SigningPubKey": "03B7857216DF96BABCC839686670A67602B3EE50D0F12B41C15F73760B8ED394C1", + "TakerGets": "5397", + "TakerPays": { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "0.00002593363079073453" + }, + "TransactionType": "OfferCreate", + "TxnSignature": "3044022061685E23375A299747DE45DA302966C6AF8C07D2DA9BEBB4F5572E3B02C6564D02207187E626EC817EFAFFAD002E75FC16E17A5BD54DA41D4E339F3C2A9F86FFD523", + "hash": "C9112B7C246FC8A9B377BD762F1D64F0DCA1128D55254A442E5735935A09D83E", + "inLedger": 6907160, + "ledger_index": 6907160 + }, + { + "Account": "rBHMbioz9znTCqgjZ6Nx43uWY43kToEPa9", + "Amount": { + "currency": "USD", + "issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "value": "4" + }, + "Destination": "r4X3WWZ3UZMDw3Z7T32FXK2NAaiitSWZ9c", + "Fee": "12", + "Flags": 0, + "LastLedgerSequence": 6907168, + "Paths": [ + [ + { + "account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type": 1, + "type_hex": "0000000000000001" + }, + { + "currency": "XRP", + "type": 16, + "type_hex": "0000000000000010" + }, + { + "currency": "USD", + "issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "type": 48, + "type_hex": "0000000000000030" + }, + { + "account": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "type": 1, + "type_hex": "0000000000000001" + } + ], + [ + { + "account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type": 1, + "type_hex": "0000000000000001" + }, + { + "currency": "USD", + "issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "type": 48, + "type_hex": "0000000000000030" + }, + { + "account": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "type": 1, + "type_hex": "0000000000000001" + } + ], + [ + { + "account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type": 1, + "type_hex": "0000000000000001" + }, + { + "currency": "XRP", + "type": 16, + "type_hex": "0000000000000010" + }, + { + "currency": "USD", + "issuer": "rwmUaXsWtXU4Z843xSYwgt1is97bgY8yj6", + "type": 48, + "type_hex": "0000000000000030" + }, + { + "account": "rwmUaXsWtXU4Z843xSYwgt1is97bgY8yj6", + "type": 1, + "type_hex": "0000000000000001" + }, + { + "account": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "type": 1, + "type_hex": "0000000000000001" + } + ], + [ + { + "account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type": 1, + "type_hex": "0000000000000001" + }, + { + "currency": "XRP", + "type": 16, + "type_hex": "0000000000000010" + }, + { + "currency": "USD", + "issuer": "rfsEoNBUBbvkf4jPcFe2u9CyaQagLVHGfP", + "type": 48, + "type_hex": "0000000000000030" + }, + { + "account": "rfsEoNBUBbvkf4jPcFe2u9CyaQagLVHGfP", + "type": 1, + "type_hex": "0000000000000001" + }, + { + "account": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "type": 1, + "type_hex": "0000000000000001" + } + ] + ], + "SendMax": { + "currency": "USD", + "issuer": "rBHMbioz9znTCqgjZ6Nx43uWY43kToEPa9", + "value": "4.132649022" + }, + "Sequence": 4660, + "SigningPubKey": "03DFEFC9A95AEF55232A2B89867745CE45373F5CE23C34D51D21343CEA92BD61AD", + "TransactionType": "Payment", + "TxnSignature": "30450220636E405B96C998BF5EBB665D519FA8B4431A6CB5962F754EEDD48EBE95F8C45F02210097851E297FEDA44F7DFED844AE109CF2D968BD58CD3C0E951B435278A91002FA", + "hash": "5007E8ECAE64482D258E915FFDEFAF2FE35ED9520BA7BB424BE280691F997435", + "inLedger": 6907160, + "ledger_index": 6907160 + }, + { + "Account": "rfESTMcbvbvCBqU1FTvGWiJP8cmUSu4GKg", + "Amount": { + "currency": "BTC", + "issuer": "rTJdjjQ5wWAMh8TL1ToXXD2mZzesa6DSX", + "value": "0.0998" + }, + "Destination": "r3AWbdp2jQLXLywJypdoNwVSvr81xs3uhn", + "Fee": "10", + "Flags": 2147483648, + "InvoiceID": "A98FD36C17BE2B8511AD36DC335478E7E89F06262949F36EB88E2D683BBCC50A", + "SendMax": { + "currency": "BTC", + "issuer": "rTJdjjQ5wWAMh8TL1ToXXD2mZzesa6DSX", + "value": "0.100798" + }, + "Sequence": 18697, + "SigningPubKey": "025D9E40A50D78347EB8AFF7A36222BBE173CB9D06E68D109D189FF8616FC21107", + "TransactionType": "Payment", + "TxnSignature": "3044022007AA39E0117963ABF03BAEF0C5AB45862093525344362D34B9F6BA8373A0C9DC02206AB4FE915F4CBDA84E668F7F21A9914DC95C83A72FB3F9A114B10D4ECB697A25", + "hash": "C738A5095DCE3A256C843AA48BB26F0339EAD3FF09B6D75C2EF50C4AD4B4D17C", + "inLedger": 6907159, + "ledger_index": 6907159 + }, + { + "Account": "rHsZHqa5oMQNL5hFm4kfLd47aEMYjPstpg", + "Fee": "15", + "Flags": 0, + "Sequence": 1479726, + "SigningPubKey": "025718736160FA6632F48EA4354A35AB0340F8D7DC7083799B9C57C3E937D71851", + "TakerGets": "37284087", + "TakerPays": { + "currency": "NZD", + "issuer": "rsP3mgGb2tcYUrxiLFiHJiQXhsziegtwBc", + "value": "0.291570426" + }, + "TransactionType": "OfferCreate", + "TxnSignature": "3045022100F246F043C97C0DA7947793E9390DBA5AB0C6EB4A0165DADF0E96C939B70D113C0220797F572368EF68490813663C0E2ACF03424CB73B64F3D6C8508C7E8F6D2CC767", + "hash": "CAE39A38C222DF0BBC9AA25D30320220DC216646CE0A447F330BE279B20BD008", + "inLedger": 6907159, + "ledger_index": 6907159 + }, + { + "Account": "rHsZHqa5oMQNL5hFm4kfLd47aEMYjPstpg", + "Fee": "15", + "Flags": 0, + "Sequence": 1479725, + "SigningPubKey": "025718736160FA6632F48EA4354A35AB0340F8D7DC7083799B9C57C3E937D71851", + "TakerGets": "10000000000", + "TakerPays": { + "currency": "BTC", + "issuer": "ra9eZxMbJrUcgV8ui7aPc161FgrqWScQxV", + "value": "0.091183099" + }, + "TransactionType": "OfferCreate", + "TxnSignature": "30440220376E6D149435B87CA761ED1A9BD205BA93C0C30D6EB1FB26D8B5D06A55977F510220213E882DD43BC78C96B51E43273D9BD451F8337DDF6960CBFB9802A347FF18E4", + "hash": "CC07A503ED60F14AF023AB839C726B73591DE5C986D1234671E2518D8F840E12", + "inLedger": 6907159, + "ledger_index": 6907159 + }, + { + "Account": "rHsZHqa5oMQNL5hFm4kfLd47aEMYjPstpg", + "Fee": "15", + "Flags": 0, + "Sequence": 1479724, + "SigningPubKey": "025718736160FA6632F48EA4354A35AB0340F8D7DC7083799B9C57C3E937D71851", + "TakerGets": "9094329166", + "TakerPays": { + "currency": "XAG", + "issuer": "r9Dr5xwkeLegBeXq6ujinjSBLQzQ1zQGjH", + "value": "3.022830117" + }, + "TransactionType": "OfferCreate", + "TxnSignature": "3045022100CFD63762B3809B37B6A1294C4B4C8DA39023D66893045BA4AA9767DD8570A8F9022005F42B08E94190637158E80DAE99F3FB104EC2AA30F69BBA3417E5BBCDB5DB77", + "hash": "64029D736C34D21CDB100D976A06A988E2CA6E3BBC0DDFCE840D9619B853B47C", + "inLedger": 6907159, + "ledger_index": 6907159 + } + ] + } } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -881,23 +893,24 @@ rippled tx_history 0 } } ``` + {% /tab %} {% /tabs %} レスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 -| `Field` | 型 | 説明 | -|:--------|:-----------------|:------------------------------------------| +| `Field` | 型 | 説明 | +| :------ | :----------- | :-------------------------------------- | | `index` | 符号なし整数 | リクエストに使用されている`start`の値。 | -| `txs` | 配列 | トランザクションオブジェクトの配列。 | +| `txs` | 配列 | トランザクションオブジェクトの配列。 | 各トランザクションオブジェクトに含まれているフィールドは、トランザクションのタイプに応じて多少異なります。詳細は、[トランザクションのフォーマット](../../../protocol/transactions/index.md)をご覧ください。 ## 考えられるエラー -* [汎用エラータイプ][]のすべて。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* `noPermission` - `start`フィールドに指定されている値が10000を超えていますが、サーバに管理者として接続していません。 +- [汎用エラータイプ][]のすべて。 +- `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 +- `noPermission` - `start`フィールドに指定されている値が10000を超えていますが、サーバに管理者として接続していません。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/utility-methods/index.md b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/utility-methods/index.md index 497950b902..bd353e9e85 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/utility-methods/index.md +++ b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/utility-methods/index.md @@ -4,9 +4,9 @@ parent: public-api-methods.html metadata: indexPage: true --- + # ユーティリティメソッド 以下のメソッドを使用して、Pingや乱数生成などの便利な処理を行うことができます。 - {% child-pages /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/utility-methods/json.md b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/utility-methods/json.md index 1262fc9a19..735d8dbc0f 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/utility-methods/json.md +++ b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/utility-methods/json.md @@ -2,24 +2,28 @@ html: json.html parent: utility-methods.html seo: - description: コマンドのパラメーターをJSON値として受け入れ、他のコマンドを実行します。 + description: コマンドのパラメーターをJSON値として受け入れ、他のコマンドを実行します。 labels: - コアサーバ --- + # json `json`メソッドは、プロキシとして他のコマンドを実行し、コマンドのパラメーターをJSON値として受け入れます。これは*コマンドラインクライアント専用*であり、パラメーターを指定するコマンドライン構文が不十分であるかまたは望ましくない場合に使用されるものです。 ## リクエストのフォーマット + リクエストのフォーマットの例: {% tabs %} {% tab label="コマンドライン" %} + ```sh # Syntax: json method json_stanza rippled -q json ledger_closed '{}' ``` + {% /tab %} {% /tabs %} @@ -31,15 +35,17 @@ rippled -q json ledger_closed '{}' {% tabs %} {% tab label="WebSocket" %} + ```json { - "result" :{ - "ledger_hash" :"8047C3ECF1FA66326C1E57694F6814A1C32867C04D3D68A851367EE2F89BBEF3", - "ledger_index" :390308, - "status" :"success" + "result": { + "ledger_hash": "8047C3ECF1FA66326C1E57694F6814A1C32867C04D3D68A851367EE2F89BBEF3", + "ledger_index": 390308, + "status": "success" } } ``` + {% /tab %} {% /tabs %} diff --git a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/utility-methods/ping.md b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/utility-methods/ping.md index c78a53f51b..b551a7cf52 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/utility-methods/ping.md +++ b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/utility-methods/ping.md @@ -2,45 +2,52 @@ html: ping.html parent: utility-methods.html seo: - description: 確認レスポンスを返します。これにより、接続のステータスと遅延をテストできます。 + description: 確認レスポンスを返します。これにより、接続のステータスと遅延をテストできます。 labels: - コアサーバ --- + # ping + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/Ping.cpp "Source") `ping`コマンドは確認レスポンスを返します。これにより、クライアントは接続のステータスと遅延をテストできます。 ## リクエストのフォーマット + リクエストのフォーマットの例: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id":1, - "command":"ping" + "id": 1, + "command": "ping" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method":"ping", - "params":[ - {} - ] + "method": "ping", + "params": [{}] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh #Syntax: ping rippled ping ``` + {% /tab %} {% /tabs %} @@ -56,17 +63,20 @@ rippled ping {% tabs %} {% tab label="WebSocket" %} + ```json { - "id":1, - "result":{}, - "status":"success", - "type":"response" + "id": 1, + "result": {}, + "status": "success", + "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -76,6 +86,7 @@ rippled ping } } ``` + {% /tab %} {% /tabs %} @@ -84,6 +95,6 @@ rippled ping ## 考えられるエラー -* [汎用エラータイプ][]のすべて。 +- [汎用エラータイプ][]のすべて。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/utility-methods/random.md b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/utility-methods/random.md index 672c930f6b..6a5f52b545 100644 --- a/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/utility-methods/random.md +++ b/@l10n/ja/docs/references/http-websocket-apis/public-api-methods/utility-methods/random.md @@ -2,45 +2,52 @@ html: random.html parent: utility-methods.html seo: - description: クライアントが乱数生成のエントロピー生成源として使用する乱数を提供します。 + description: クライアントが乱数生成のエントロピー生成源として使用する乱数を提供します。 labels: - コアサーバ --- + # random + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/Random.cpp "Source") `random`コマンドは、クライアントが乱数生成のエントロピー生成源として使用する乱数を提供します。 ## リクエストのフォーマット + リクエストのフォーマットの例: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id":1, - "command":"random" + "id": 1, + "command": "random" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method":"random", - "params":[ - {} - ] + "method": "random", + "params": [{}] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh #Syntax: random rippled random ``` + {% /tab %} {% /tabs %} @@ -54,19 +61,22 @@ rippled random {% tabs %} {% tab label="WebSocket" %} + ```json { - "id":1, - "result":{ - "random":"8ED765AEBBD6767603C2C9375B2679AEC76E6A8133EF59F04F9FC1AAA70E41AF" - }, - "status":"success", - "type":"response" + "id": 1, + "result": { + "random": "8ED765AEBBD6767603C2C9375B2679AEC76E6A8133EF59F04F9FC1AAA70E41AF" + }, + "status": "success", + "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -77,19 +87,20 @@ rippled random } } ``` + {% /tab %} {% /tabs %} レスポンスは[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 -| `Field` | 型 | 説明 | -|:---------|:-------|:--------------------------| +| `Field` | 型 | 説明 | +| :------- | :----- | :-------------------------- | | `random` | 文字列 | ランダムな256ビット16進値。 | ## 考えられるエラー -* [汎用エラータイプ][]のすべて。 -* `internal` - 乱数生成機能に関連している可能性がある内部エラーが発生しました。 +- [汎用エラータイプ][]のすべて。 +- `internal` - 乱数生成機能に関連している可能性がある内部エラーが発生しました。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/index.md b/@l10n/ja/docs/references/index.md index c3ccb68d86..16ced4b53b 100644 --- a/@l10n/ja/docs/references/index.md +++ b/@l10n/ja/docs/references/index.md @@ -1,7 +1,8 @@ --- seo: - description: XRP LedgerプロトコルやAPIメソッドなどのリファレンスドキュメント + description: XRP LedgerプロトコルやAPIメソッドなどのリファレンスドキュメント --- + # リファレンス XRP LedgerリファレンスはXRP LedgerプロトコルやAPIメソッドなどのドキュメントです。 diff --git a/@l10n/ja/docs/references/protocol/binary-format.md b/@l10n/ja/docs/references/protocol/binary-format.md index b73b617702..7feb5973de 100644 --- a/@l10n/ja/docs/references/protocol/binary-format.md +++ b/@l10n/ja/docs/references/protocol/binary-format.md @@ -2,19 +2,21 @@ html: serialization.html parent: protocol-reference.html seo: - description: XRP Ledgerトランザクションやその他のオブジェクトの場合のJSONフォーマットと正規バイナリーフォーマットとの変換です。 + description: XRP Ledgerトランザクションやその他のオブジェクトの場合のJSONフォーマットと正規バイナリーフォーマットとの変換です。 labels: - アカウント - トランザクション送信 curated_anchors: - name: サンプルコード - anchor: "#サンプルコード" + anchor: '#サンプルコード' - name: フィールドの正規順序 - anchor: "#フィールドの正規順序" + anchor: '#フィールドの正規順序' - name: タイプリスト - anchor: "#タイプリスト" + anchor: '#タイプリスト' --- + # バイナリフォーマット + [[ソース]](https://github.com/XRPLF/rippled/blob/develop/src/ripple/protocol/impl/STObject.cpp#L696-L718 "Source") このページでは、XRP Ledgerのトランザクションとその他のデータの正規バイナリフォーマットについて説明します。このバイナリフォーマットは、トランザクションの内容のデジタル署名を作成および検証するために必要であり、[サーバ間のピアツーピア通信](../../concepts/networks-and-servers/peer-protocol.md)を含む他の用途にも使用されます。通常、[`rippled` API](../http-websocket-apis/index.md)は、JSONを使用してクライアントアプリケーションと通信します。ただしJSONは、同じデータをさまざまな同等の方法で表現できるため、デジタル署名を付与するトランザクションをシリアル化するのに適したフォーマットではありません。 @@ -61,8 +63,6 @@ curated_anchors: これらのすべての実装には、一般利用が可能なオープンソースライセンスが提供されているので、学習のためにドキュメントと合わせて使用するだけでなく、必要に応じてコードをインポート、使用、または変更することができます。 - - ## 内部フォーマット 各フィールドには「内部」バイナリフォーマットがあります。このフォーマットは、`rippled`ソースコードで署名時に(およびその他のほとんどの場合に)そのフィールドを表示するのに使用されます。すべてのフィールドの内部フォーマットは、[`SField.cpp`](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/SField.cpp)のソースコードに定義されています。(このフィールドには、トランザクションフィールド以外のフィールドも含まれています。)[トランザクションフォーマットリファレンス](transactions/index.md)にも、すべてのトランザクションフィールドの内部フォーマットが記載されています。 @@ -77,25 +77,25 @@ curated_anchors: この定義ファイルの最上位フィールドの定義を以下の表に示します。 -| フィールド | 内容 | -|:----------------------|:-----------------------------------------------------| -| `TYPES` | フィールドIDの作成と正規順序でのフィールドのソートのためのデータタイプからその[「タイプコード」](#タイプコード)へのマップ。1未満のコードは実際のデータには含まれません。10000を超えるコードは、他のオブジェクト内部ではシリアル化できない「トランザクション」などの特殊な「上位」オブジェクトタイプを表します。各タイプのシリアル化方法についての詳細は、[タイプリスト](#タイプリスト)をご覧ください。 | -| `LEDGER_ENTRY_TYPES` | [レジャーオブジェクト](ledger-data/ledger-entry-types/index.md)から対応するデータタイプへのマップ。これはレジャー状態データと、処理されたトランザクションの[メタデータ](transactions/metadata.md)の「affected nodes」セクションに含まれます。 | -| `FIELDS` | トランザクション、レジャーオブジェクト、あるいはその他のデータに含まれる可能性があるすべてのフィールドを表すタプルからなるソート済み配列。各タプルの1番目のメンバーはフィールドの文字列名であり、2番目のメンバーはそのフィールドのプロパティーが含まれているオブジェクトです。(これらのフィールドの定義については、以下の「フィールドプロパティー」の表をご覧ください。) | -| `TRANSACTION_RESULTS` | [トランザクション結果コード](transactions/transaction-results/index.md)から対応する数値へのマップ。レジャーに含まれない結果タイプにはマイナスの値が含まれています。`tesSUCCESS`に数値0が含まれています。[`tec`クラスコード](transactions/transaction-results/tec-codes.md)は、レジャーに含まれている失敗を示しています。 | -| `TRANSACTION_TYPES` | [トランザクションのタイプ](transactions/types/index.md)から対応する数値へのマップ。 | +| フィールド | 内容 | +| :-------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `TYPES` | フィールドIDの作成と正規順序でのフィールドのソートのためのデータタイプからその[「タイプコード」](#タイプコード)へのマップ。1未満のコードは実際のデータには含まれません。10000を超えるコードは、他のオブジェクト内部ではシリアル化できない「トランザクション」などの特殊な「上位」オブジェクトタイプを表します。各タイプのシリアル化方法についての詳細は、[タイプリスト](#タイプリスト)をご覧ください。 | +| `LEDGER_ENTRY_TYPES` | [レジャーオブジェクト](ledger-data/ledger-entry-types/index.md)から対応するデータタイプへのマップ。これはレジャー状態データと、処理されたトランザクションの[メタデータ](transactions/metadata.md)の「affected nodes」セクションに含まれます。 | +| `FIELDS` | トランザクション、レジャーオブジェクト、あるいはその他のデータに含まれる可能性があるすべてのフィールドを表すタプルからなるソート済み配列。各タプルの1番目のメンバーはフィールドの文字列名であり、2番目のメンバーはそのフィールドのプロパティーが含まれているオブジェクトです。(これらのフィールドの定義については、以下の「フィールドプロパティー」の表をご覧ください。) | +| `TRANSACTION_RESULTS` | [トランザクション結果コード](transactions/transaction-results/index.md)から対応する数値へのマップ。レジャーに含まれない結果タイプにはマイナスの値が含まれています。`tesSUCCESS`に数値0が含まれています。[`tec`クラスコード](transactions/transaction-results/tec-codes.md)は、レジャーに含まれている失敗を示しています。 | +| `TRANSACTION_TYPES` | [トランザクションのタイプ](transactions/types/index.md)から対応する数値へのマップ。 | 署名と送信のためにトランザクションをシリアル化するという目的から、`FIELDS`、`TYPES`、および`TRANSACTION_TYPES`フィールドが必要です。 `FIELDS`配列のフィールド定義オブジェクトには以下のフィールドが含まれています。 -| フィールド | 型 | 内容 | -|:-----------------|:--------|:------------------------------------------------| -| `nth` | 数値 | このフィールドの[フィールドコード](#フィールドコード)。このコードは、[フィールドID](#フィールドid)の作成時と、同一データタイプの他のフィールドとのソート時に使用されます。 | -| `isVLEncoded` | ブール値 | `true`の場合、このフィールドには[長さプレフィクスが付加されています](#長さプレフィクスを付加する)。 | -| `isSerialized` | ブール値 | `true`の場合、このフィールドはシリアル化バイナリデータにエンコードされる必要があります。このフィールドが`false`の場合、一般にフィールドは保管されず、オンデマンドで再作成されます。 | +| フィールド | 型 | 内容 | +| :--------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `nth` | 数値 | このフィールドの[フィールドコード](#フィールドコード)。このコードは、[フィールドID](#フィールドid)の作成時と、同一データタイプの他のフィールドとのソート時に使用されます。 | +| `isVLEncoded` | ブール値 | `true`の場合、このフィールドには[長さプレフィクスが付加されています](#長さプレフィクスを付加する)。 | +| `isSerialized` | ブール値 | `true`の場合、このフィールドはシリアル化バイナリデータにエンコードされる必要があります。このフィールドが`false`の場合、一般にフィールドは保管されず、オンデマンドで再作成されます。 | | `isSigningField` | ブール値 | `true`の場合、署名のためにトランザクションを準備する際にこのフィールドをシリアル化する必要があります。`false`の場合、このフィールドは署名対象データから省略する必要があります。(これはトランザクションに含まれていない可能性があります。) | -| `type` | 文字列 | このフィールドの内部データタイプ。これは、このフィールドの[タイプコード](#タイプコード)を示す`TYPES`マップのキーにマップします。 | +| `type` | 文字列 | このフィールドの内部データタイプ。これは、このフィールドの[タイプコード](#タイプコード)を示す`TYPES`マップのキーにマップします。 | ### フィールドID @@ -104,17 +104,17 @@ curated_anchors: フィールドのタイプコードとフィールドコードを結合すると、フィールドの一意のIDになります。このIDは、最終的なシリアル化Blobでこのフィールドの前に付加されます。フィールドIDのサイズは、タイプコードとその結合対象のフィールドコードに応じて1~3バイトとなります。以下の表をご覧ください。 -| | タイプコード < 16 | タイプコード >= 16 | -|:-----------------|:------------------------------------------------------------------------------|:--| -| **フィールドコード < 16** | ![1バイト: 上位4ビットがタイプを定義し、下位4ビットがフィールドを定義します。](/docs/img/field-id-common-type-common-field.ja.png) | ![2バイト: 1番目のバイトの下位4ビットがフィールドを定義し、次のバイトがタイプを定義します。](/docs/img/field-id-uncommon-type-common-field.ja.png) | -| **フィールドコード >= 16** | ![2バイト: 1番目のバイトの上位4ビットがタイプを定義し、1番目のバイトの下位4ビットは0になります。次のバイトがフィールドを定義します。](/docs/img/field-id-common-type-uncommon-field.ja.png )| ![3バイト: 1番目のバイトは0x00、2番目のバイトはタイプを定義します。3番目のバイトはフィールドを定義します。](/docs/img/field-id-uncommon-type-uncommon-field.ja.png) | +| | タイプコード < 16 | タイプコード >= 16 | +| :------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| **フィールドコード < 16** | ![1バイト: 上位4ビットがタイプを定義し、下位4ビットがフィールドを定義します。](/docs/img/field-id-common-type-common-field.ja.png) | ![2バイト: 1番目のバイトの下位4ビットがフィールドを定義し、次のバイトがタイプを定義します。](/docs/img/field-id-uncommon-type-common-field.ja.png) | +| **フィールドコード >= 16** | ![2バイト: 1番目のバイトの上位4ビットがタイプを定義し、1番目のバイトの下位4ビットは0になります。次のバイトがフィールドを定義します。](/docs/img/field-id-common-type-uncommon-field.ja.png) | ![3バイト: 1番目のバイトは0x00、2番目のバイトはタイプを定義します。3番目のバイトはフィールドを定義します。](/docs/img/field-id-uncommon-type-uncommon-field.ja.png) | デコードの際には、**1番目のバイト**のどのビットがゼロであるかによって、フィールドIDのバイト数を把握できます。これは、上記の表の例に対応しています。 -| | 上位4ビットがゼロ以外である | 上位4ビットがゼロである | -|:-----------------|:------------------------------------------------------------------------------|:--| -| **下位4ビットがゼロ以外である** | 1バイト: 上位4ビットがタイプを定義し、下位4ビットがフィールドを定義します。 | 2バイト: 1番目のバイトの下位4ビットがフィールドを定義し、次のバイトがタイプを定義します。 | -| **下位4ビットがゼロである** | 2バイト: 1番目のバイトの上位4ビットがタイプを定義し、1番目のバイトの下位4ビットは0になります。次のバイトがフィールドを定義します。 | 3バイト: 1番目のバイトは0x00、2番目のバイトはタイプを定義します。3番目のバイトはフィールドを定義します。 | +| | 上位4ビットがゼロ以外である | 上位4ビットがゼロである | +| :------------------------------ | :--------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------- | +| **下位4ビットがゼロ以外である** | 1バイト: 上位4ビットがタイプを定義し、下位4ビットがフィールドを定義します。 | 2バイト: 1番目のバイトの下位4ビットがフィールドを定義し、次のバイトがタイプを定義します。 | +| **下位4ビットがゼロである** | 2バイト: 1番目のバイトの上位4ビットがタイプを定義し、1番目のバイトの下位4ビットは0になります。次のバイトがフィールドを定義します。 | 3バイト: 1番目のバイトは0x00、2番目のバイトはタイプを定義します。3番目のバイトはフィールドを定義します。 | {% admonition type="warning" name="注意" %}フィールドIDは、フィールドのソートに使用される2つの要素で構成されますが、シリアル化されたフィールドID自体に基づいてソートを実行しないでください。これは、フィールドIDのバイト構造によってソート順序が変わるためです。{% /admonition %} @@ -130,15 +130,15 @@ curated_anchors: - フィールドに193~12480バイトのデータが含まれている場合、最初の2バイトは以下の式で算出されるフィールドの長さを示します。 - ``` - 193 + ((byte1 - 193) * 256) + byte2 - ``` + ``` + 193 + ((byte1 - 193) * 256) + byte2 + ``` - フィールドに12481~918744バイトのデータが含まれている場合、最初の3バイトは以下の式で算出されるフィールドの長さを示します。 - ``` - 12481 + ((byte1 - 241) * 65536) + (byte2 * 256) + byte3 - ``` + ``` + 12481 + ((byte1 - 241) * 65536) + (byte2 * 256) + byte3 + ``` - 長さプレフィクスが付加されているフィールドに格納できる最大データは918744バイトです。 @@ -148,7 +148,6 @@ curated_anchors: - 1番目の長さバイトの値が193~240の場合、2つの長さバイトがあります。 - 1番目の長さバイトの値が241~254の場合、3つの長さバイトがあります。 - ## フィールドの正規順序 トランザクションのすべてのフィールドは、まずフィールドのタイプ(特に各タイプに割り当てられている数値の「タイプコード」)に基づいて特定の順序でソートされ、次にフィールド自体(「フィールドコード」)に基づいてソートされます。(たとえば、姓がフィールドのタイプ、名前がフィールド自体とすると、姓で最初にソートし、次に名でソートすることになります。) @@ -169,53 +168,50 @@ curated_anchors: フィールドコードは異なるフィールドタイプのフィールドで再利用されますが、同じタイプのフィールドに同じフィールドコードが含まれることはありません。タイプコードとフィールドコードを組み合わせると、フィールドの一意の[フィールドID](#フィールドid)になります。 - - ## タイプリスト トランザクションの指示には、以下のタイプのフィールドを指定できます。 -| タイプ名 | タイプコード | ビット長 | [長さプレフィクスを付加する]? | 説明 | -|:--------------|:----------|:-----------|:-------------------|----------------| -| [AccountID][] | 8 | 160 | はい | [アカウント](../../concepts/accounts/index.md)の一意のID。 | -| [Amount][] | 6 | 64または384 | いいえ | XRPまたはトークンの金額。フィールドの長さは、XRPの場合は64ビット、トークンの場合は384ビット(64+160+160)です。 | -| [Blob][] | 7 | 可変 | はい | 任意のバイナリデータ。このようなフィールドの中で重要なフィールドとして、`TxnSignature`(トランザクションを承認する署名)があります。 | -| [Hash128][] | 4 | 128 | いいえ | 128ビットの任意のバイナリ値。該当する唯一のフィールドは`EmailHash`です。これは、[Gravatar](https://www.gravatar.com/)を取得する目的でアカウント所有者のメールのMD-5ハッシュを保管するフィールドです。 | -| [Hash160][] | 17 | 160 | いいえ | 160ビットの任意のバイナリ値。これにより通貨コードまたはイシュアーが定義されます。 | -| [Hash256][] | 5 | 256 | いいえ | 256ビットの任意のバイナリ値。これは通常、トランザクション、レジャーバージョン、またはレジャーデータオブジェクトの「SHA-512ハーフ」ハッシュを表します。 | -| [PathSet][] | 18 | 可変 | いいえ | [クロスカレンシー支払い](../../concepts/payment-types/cross-currency-payments.md)の有効な[ペイメントパス](../../concepts/tokens/fungible-tokens/paths.md)のセット。 | -| [STArray][] | 15 | 可変 | いいえ | 可変数のメンバーからなる配列。フィールドによってタイプが異なる場合があります。この例として、[memos](transactions/common-fields.md#memosフィールド)や[マルチ署名](../../concepts/accounts/multi-signing.md)で使用される署名者のリストがあります。 | -| [STIssue][] | 24 | 160 or 320 | いいえ | 数量を含まない、資産(XRPまたはトークン)を指定します。 | -| [STObject][] | 14 | 可変 | いいえ | 1つ以上のネストされたフィールドを含むオブジェクト。 | -| [UInt8][] | 16 | 8 | いいえ | 8ビットの符号なし整数。 | -| [UInt16][] | 1 | 16 | いいえ | 16ビットの符号なし整数。`TransactionType`は、このタイプの特殊なフィールドで、特定の文字列から整数値へのマッピングを含みます。 | -| [UInt32][] | 2 | 32 | いいえ | 32ビットの符号なし整数。このタイプの例として、すべてのトランザクションの`Flags`フィールドと`Sequence`フィールドがあります。 | -| [XChainBridge][] | 25 | 可変 | いいえ | 2つのブロックチェーン間のブリッジで、両方のチェーン上のドアアカウントと発行された資産によって識別されます。 | - +| タイプ名 | タイプコード | ビット長 | [長さプレフィクスを付加する]? | 説明 | +| :--------------- | :----------- | :---------- | :---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| [AccountID][] | 8 | 160 | はい | [アカウント](../../concepts/accounts/index.md)の一意のID。 | +| [Amount][] | 6 | 64または384 | いいえ | XRPまたはトークンの金額。フィールドの長さは、XRPの場合は64ビット、トークンの場合は384ビット(64+160+160)です。 | +| [Blob][] | 7 | 可変 | はい | 任意のバイナリデータ。このようなフィールドの中で重要なフィールドとして、`TxnSignature`(トランザクションを承認する署名)があります。 | +| [Hash128][] | 4 | 128 | いいえ | 128ビットの任意のバイナリ値。該当する唯一のフィールドは`EmailHash`です。これは、[Gravatar](https://www.gravatar.com/)を取得する目的でアカウント所有者のメールのMD-5ハッシュを保管するフィールドです。 | +| [Hash160][] | 17 | 160 | いいえ | 160ビットの任意のバイナリ値。これにより通貨コードまたはイシュアーが定義されます。 | +| [Hash256][] | 5 | 256 | いいえ | 256ビットの任意のバイナリ値。これは通常、トランザクション、レジャーバージョン、またはレジャーデータオブジェクトの「SHA-512ハーフ」ハッシュを表します。 | +| [PathSet][] | 18 | 可変 | いいえ | [クロスカレンシー支払い](../../concepts/payment-types/cross-currency-payments.md)の有効な[ペイメントパス](../../concepts/tokens/fungible-tokens/paths.md)のセット。 | +| [STArray][] | 15 | 可変 | いいえ | 可変数のメンバーからなる配列。フィールドによってタイプが異なる場合があります。この例として、[memos](transactions/common-fields.md#memosフィールド)や[マルチ署名](../../concepts/accounts/multi-signing.md)で使用される署名者のリストがあります。 | +| [STIssue][] | 24 | 160 or 320 | いいえ | 数量を含まない、資産(XRPまたはトークン)を指定します。 | +| [STObject][] | 14 | 可変 | いいえ | 1つ以上のネストされたフィールドを含むオブジェクト。 | +| [UInt8][] | 16 | 8 | いいえ | 8ビットの符号なし整数。 | +| [UInt16][] | 1 | 16 | いいえ | 16ビットの符号なし整数。`TransactionType`は、このタイプの特殊なフィールドで、特定の文字列から整数値へのマッピングを含みます。 | +| [UInt32][] | 2 | 32 | いいえ | 32ビットの符号なし整数。このタイプの例として、すべてのトランザクションの`Flags`フィールドと`Sequence`フィールドがあります。 | +| [XChainBridge][] | 25 | 可変 | いいえ | 2つのブロックチェーン間のブリッジで、両方のチェーン上のドアアカウントと発行された資産によって識別されます。 | [長さプレフィクスを付加する]: #長さプレフィクスを付加する 上記のフィールドタイプの他に、[レジャーオブジェクト](ledger-data/ledger-entry-types/index.md)や[トランザクションメタデータ](transactions/metadata.md)などのコンテキストでは以下のタイプが含まれることがあります。 -| タイプ名 | タイプコード | [長さプレフィクスを付加する]? | 説明 | -|:------------|:----------|:-------------------|:------------------------------| -| Transaction | 10001 | いいえ | [トランザクション](transactions/index.md)全体を含む「上位」タイプ。 | -| LedgerEntry | 10002 | いいえ | [レジャーオブジェクト](ledger-data/ledger-entry-types/index.md)全体を含む「上位」タイプ。 | -| Validation | 10003 | いいえ | ピアツーピア通信で[コンセンサスプロセス](../../concepts/consensus-protocol/index.md)の検証投票を表すために使用される「上位」タイプ。 | -| Metadata | 10004 | いいえ | [1つのトランザクションのメタデータ](transactions/metadata.md)を含む「上位」タイプ。 | -| [UInt64][] | 3 | いいえ | 64ビットの符号なし整数。このタイプはトランザクションの指示には含まれませんが、さまざまなレジャーオブジェクトでこのタイプのフィールドが使用されます。 | -| Vector256 | 19 | はい | このタイプはトランザクションの指示には含まれませんが、[Amendmentレジャーオブジェクト](ledger-data/ledger-entry-types/amendments.md)の`Amendments`フィールドでは、現在有効な[Amendment](../../concepts/networks-and-servers/amendments.md)を示すためにこのタイプが使用されます。 | - +| タイプ名 | タイプコード | [長さプレフィクスを付加する]? | 説明 | +| :---------- | :----------- | :---------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| Transaction | 10001 | いいえ | [トランザクション](transactions/index.md)全体を含む「上位」タイプ。 | +| LedgerEntry | 10002 | いいえ | [レジャーオブジェクト](ledger-data/ledger-entry-types/index.md)全体を含む「上位」タイプ。 | +| Validation | 10003 | いいえ | ピアツーピア通信で[コンセンサスプロセス](../../concepts/consensus-protocol/index.md)の検証投票を表すために使用される「上位」タイプ。 | +| Metadata | 10004 | いいえ | [1つのトランザクションのメタデータ](transactions/metadata.md)を含む「上位」タイプ。 | +| [UInt64][] | 3 | いいえ | 64ビットの符号なし整数。このタイプはトランザクションの指示には含まれませんが、さまざまなレジャーオブジェクトでこのタイプのフィールドが使用されます。 | +| Vector256 | 19 | はい | このタイプはトランザクションの指示には含まれませんが、[Amendmentレジャーオブジェクト](ledger-data/ledger-entry-types/amendments.md)の`Amendments`フィールドでは、現在有効な[Amendment](../../concepts/networks-and-servers/amendments.md)を示すためにこのタイプが使用されます。 | ### AccountIDフィールド + [AccountID]: #accountidフィールド このタイプのフィールドには、XRP Ledger[アカウント](../../concepts/accounts/index.md)の160ビットのIDが含まれています。JSONではこれらのフィールドは[base58][] XRP Ledger「アドレス」および追加のチェックサムデータとして表示されます。このため、スペルミスが有効なアドレスとなることがありません。(このエンコードは「Base58Check」とも呼ばれ、誤ったアドレスへの送金を防止します。)これらのフィールドのバイナリフォーマットにはチェックサムデータは含まれておらず、また[アドレスのbase58エンコード](../../concepts/accounts/addresses.md#アドレスのエンコード)で使用される`0x00`「タイププレフィクス」も含まれていません。(ただし、バイナリフォーマットは主に署名済みトランザクションに使用されるため、署名済みトランザクションを転記する際にスペルミスなどのエラーが発生すると署名が無効となり、送金できなくなります。) スタンドアロンフィールドとして表示されるAccountID(`Account`や`Destination`など)の長さは固定長の160ビットですが、[長さプレフィクスが付加](#長さプレフィクスを付加する)されます。その結果、これらのフィールドの長さインディケーターは常に`0x14`バイトになります。特殊フィールドの子として示されるAccountID([Amount `issuer`][Amount]、[PathSet `account`][PathSet]など)では長さプレフィクスは付加 _されません_ 。 - ### Amountフィールド + [Amount]: #amountフィールド 「Amount」タイプは、通貨(XRPまたはトークン)の額を表す特殊なフィールドタイプです。このタイプは2つのサブタイプで構成されます。 @@ -228,20 +224,21 @@ curated_anchors: トークンは以下の3つのセグメントで構成され、セグメントの順序は以下のとおりです。 - 1. [トークンの数量フォーマット](#トークンの数量フォーマット)の額を示す64ビット。1番目のビットは、これがXRPではないことを示す`1`です。 - 2. [通貨コード](data-types/currency-formats.md#通貨コード)を示す160ビット。標準APIでは、[標準通貨コードフォーマット](data-types/currency-formats.md#標準通貨コード)を使用して「USD」などの3文字のコードが160ビットのコードに変換されますが、160ビットのカスタムコードも使用できます。 - 3. イシュアーのアカウントIDを示す160ビット。(関連項目: [アカウントアドレスエンコード](../../concepts/accounts/addresses.md#アドレスのエンコード) +1. [トークンの数量フォーマット](#トークンの数量フォーマット)の額を示す64ビット。1番目のビットは、これがXRPではないことを示す`1`です。 +2. [通貨コード](data-types/currency-formats.md#通貨コード)を示す160ビット。標準APIでは、[標準通貨コードフォーマット](data-types/currency-formats.md#標準通貨コード)を使用して「USD」などの3文字のコードが160ビットのコードに変換されますが、160ビットのカスタムコードも使用できます。 +3. イシュアーのアカウントIDを示す160ビット。(関連項目: [アカウントアドレスエンコード](../../concepts/accounts/addresses.md#アドレスのエンコード) 1番目のビットに基づいて2つのサブタイプのいずれに該当するかを確認できます。`0`の場合はXRP、`1`の場合はトークンです。 以下の図に、XRPの額とトークン額のシリアル化フォーマットを示します。 -[{% inline-svg file="/docs/img/serialization-amount.ja.svg" /%}](/docs/img/serialization-amount.ja.svg "「非XRP」ビット、符号ビット、および62ビットの精度で構成されるXRPの額。「非XRP」ビット、符号ビット、指数(8ビット)、仮数(54ビット)、通貨コード(160ビット)、イシュアー(160ビット)で構成されるトークンの額。") +[{% inline-svg file="/docs/img/serialization-amount.ja.svg" /%}](/docs/img/serialization-amount.ja.svg '「非XRP」ビット、符号ビット、および62ビットの精度で構成されるXRPの額。「非XRP」ビット、符号ビット、指数(8ビット)、仮数(54ビット)、通貨コード(160ビット)、イシュアー(160ビット)で構成されるトークンの額。') #### トークンの数量フォーマット + [[ソース]](https://github.com/XRPLF/rippled/blob/35fa20a110e3d43ffc1e9e664fc9017b6f2747ae/src/ripple/protocol/impl/STAmount.cpp "ソース") -[{% inline-svg file="/docs/img/currency-number-format.ja.svg" /%}](/docs/img/currency-number-format.ja.svg "トークンの数量フォーマットの図") +[{% inline-svg file="/docs/img/currency-number-format.ja.svg" /%}](/docs/img/currency-number-format.ja.svg 'トークンの数量フォーマットの図') XRP Ledgerは64ビットを使って(代替可能な)トークンの金額をシリアライズします。(JSONフォーマットでは、通貨量オブジェクトの`value`フィールドが数値量になります)。バイナリ形式では、数値は"非XRP"ビット、符号ビット、指数、有効数字の順で構成されます。 @@ -261,18 +258,18 @@ XRP Ledgerは64ビットを使って(代替可能な)トークンの金額をシ [`rippled` API](../http-websocket-apis/index.md)は、3文字のASCIIコードを160ビットの16進数に変換するための**標準フォーマット**を以下のようにサポートしています。 -[{% inline-svg file="/docs/img/currency-code-format.ja.svg" /%}](/docs/img/currency-code-format.ja.svg "標準通貨コードのフォーマット") +[{% inline-svg file="/docs/img/currency-code-format.ja.svg" /%}](/docs/img/currency-code-format.ja.svg '標準通貨コードのフォーマット') 1. 最初の8ビットは`0x00`でなければなりません。 2. 次の88ビットは予約済みで、すべて`0`でなければなりません。 3. 次の24ビットはASCIIの3文字を表します。 - [ISO 4217](https://www.xe.com/iso4217.php) コード、または "BTC"のような一般的な擬似 ISO 4217コードの使用を推奨します。すべての大文字と小文字、数字、記号 `?`, `!`, `@`, `#`, `$`, `%`, `^`, `&`, `*`, `<`, `>`, `(`, `)`, `{`, `}`, `[`, `]`, |が利用可能です。 通貨コード`XRP`(すべて大文字)はXRPのために予約済みであり、トークンで使用することはできません。 -4. 次の40ビットは予約済みで、すべて`0`でなければなりません。 + [ISO 4217](https://www.xe.com/iso4217.php) コード、または "BTC"のような一般的な擬似 ISO 4217コードの使用を推奨します。すべての大文字と小文字、数字、記号 `?`, `!`, `@`, `#`, `$`, `%`, `^`, `&`, `*`, `<`, `>`, `(`, `)`, `{`, `}`, `[`, `]`, |が利用可能です。 通貨コード`XRP`(すべて大文字)はXRPのために予約済みであり、トークンで使用することはできません。 +4. 次の40ビットは予約済みで、すべて`0`でなければなりません。 **非標準フォーマット**は、最初の8ビットが`0x00`以外の160ビットのデータです。 - ### 配列フィールド + [STArray]: #配列フィールド 一部のトランザクションフィールド([SignerListSetトランザクション][]の`SignerEntries`や[`Memos`](transactions/common-fields.md#memosフィールド)など)はオブジェクトの配列です(「STArray」タイプと呼ばれます)。 @@ -283,18 +280,18 @@ XRP Ledgerは64ビットを使って(代替可能な)トークンの金額をシ 以下の例は、配列のシリアル化フォーマットを示します(`SignerEntries`フィールド)。 -[{% inline-svg file="/docs/img/serialization-array.ja.svg" /%}](/docs/img/serialization-array.ja.svg "配列フィールドID、各配列要素のフィールドIDと内容、および「配列の終わり」を示すフィールドID") - +[{% inline-svg file="/docs/img/serialization-array.ja.svg" /%}](/docs/img/serialization-array.ja.svg '配列フィールドID、各配列要素のフィールドIDと内容、および「配列の終わり」を示すフィールドID') ### Blobフィールド + [Blob]: #blobフィールド Blobタイプは、任意のデータを持つ[長さプレフィクスが付加されている](#長さプレフィクスを付加する)フィールドです。このタイプを使用する2種類の一般的なフィールドとして、`SigningPubKey`と`TxnSignature`があります。これらのフィールドにはそれぞれ、トランザクションの実行を承認する公開鍵と署名が含まれています。 両方のフィールドにはこれ以上の内容構造がないため、フィールドIDと長さプレフィクスの後に可変長エンコードで示される正確なバイト数で構成されます。 - ### ハッシュフィールド + [Hash128]: #ハッシュフィールド [Hash160]: #ハッシュフィールド [Hash256]: #ハッシュフィールド @@ -304,6 +301,7 @@ XRP LedgerのハッシュタイプにはHash128、Hash160、Hash256がありま これらのフィールドは、長さインディケーターを使用せずに、ビッグエンディアンバイトオーダーで特定数のビットとしてシリアル化されます。 ### Issueフィールド + [STIssue]: #issueフィールド いくつかのフィールドは、XRPや[トークン](../../concepts/tokens/index.md)といったアセットタイプを指定します。これらのフィールドは、1つまたは2つの160ビットから構成されています: @@ -312,6 +310,7 @@ XRP LedgerのハッシュタイプにはHash128、Hash160、Hash256がありま 2. 最初の160ビットが全て0の場合(アセットがXRPの場合)、フィールドはそこで終了します。そうでない場合、アセットはトークンであり、次の160ビットは[トークン発行者のAccountID](#accountidフィールド)です。 ### オブジェクトフィールド + [STObject]: #オブジェクトフィールド トランザクションフィールドの一部([SignerListSetトランザクション][]の`SignerEntry`や`Memos`配列の`Memo`など)はオブジェクトです(「STObject」タイプと呼ばれます)。オブジェクトのシリアル化は配列のシリアル化に似ていますが、唯一異なる点としてオブジェクトフィールド内では**オブジェクトのメンバーを正規順序に従って配置する必要がある**点があげられます。配列フィールドではすでに順序が明示的に設定されています。 @@ -320,10 +319,10 @@ XRP LedgerのハッシュタイプにはHash128、Hash160、Hash256がありま 以下の例は、オブジェクトのシリアル化フォーマットを示します(`Memos`配列内の1つの`Memo`オブジェクト)。 -[{% inline-svg file="/docs/img/serialization-object.ja.svg" /%}](/docs/img/serialization-object.ja.svg "オブジェクトフィールドID、各オブジェクトメンバーのオブジェクトIDと内容(正規順序)、および「オブジェクトの終わり」を示すフィールドID") - +[{% inline-svg file="/docs/img/serialization-object.ja.svg" /%}](/docs/img/serialization-object.ja.svg 'オブジェクトフィールドID、各オブジェクトメンバーのオブジェクトIDと内容(正規順序)、および「オブジェクトの終わり」を示すフィールドID') ### PathSetフィールド + [PathSet]: #pathsetフィールド クロスカレンシーの[Paymentトランザクション][]の`Paths`フィールドは、JSONで配列からなる配列として表される「PathSet」です。使用されるパスについての詳細は、[パス](../../concepts/tokens/fungible-tokens/paths.md)をご覧ください。 @@ -337,11 +336,11 @@ PathSetは、**1~6**の個別パスとして順序どおりにシリアル化 以下の表に、有効なフィールドと、タイプバイトでフィールドを示すために設定されるビット単位のフラグを示します。 -| タイプフラグ | 含まれるフィールド | フィールドタイプ | ビットサイズ | 順序 | -|:----------|:--------------|:------------------|:---------|:------| -| `0x01` | `account` | [AccountID][] | 160ビット | 1番目 | -| `0x10` | `currency` | [通貨コード][] | 160ビット | 2番目 | -| `0x20` | `issuer` | [AccountID][] | 160ビット | 3番目 | +| タイプフラグ | 含まれるフィールド | フィールドタイプ | ビットサイズ | 順序 | +| :----------- | :----------------- | :--------------- | :----------- | :---- | +| `0x01` | `account` | [AccountID][] | 160ビット | 1番目 | +| `0x10` | `currency` | [通貨コード][] | 160ビット | 2番目 | +| `0x20` | `issuer` | [AccountID][] | 160ビット | 3番目 | [通貨コード]: data-types/currency-formats.md#標準通貨コード @@ -353,10 +352,10 @@ PathSetは、**1~6**の個別パスとして順序どおりにシリアル化 以下の例は、PathSetのシリアル化フォーマットを示します。 -[{% inline-svg file="/docs/img/serialization-pathset.ja.svg" /%}](/docs/img/serialization-pathset.ja.svg "PathSetは複数のパスからなり、各パスの後に継続または終了を示すバイトが続きます。各パスは複数のパスステップからなり、各パスステップはタイプバイトと、タイプバイトに基づく1つ以上の160ビットフィールドで構成されます。") - +[{% inline-svg file="/docs/img/serialization-pathset.ja.svg" /%}](/docs/img/serialization-pathset.ja.svg 'PathSetは複数のパスからなり、各パスの後に継続または終了を示すバイトが続きます。各パスは複数のパスステップからなり、各パスステップはタイプバイトと、タイプバイトに基づく1つ以上の160ビットフィールドで構成されます。') ### UIntフィールド + [UInt8]: #uintフィールド [UInt16]: #uintフィールド [UInt32]: #uintフィールド @@ -368,11 +367,11 @@ JSONオブジェクトにこれらのフィールドが含まれている場合 もう1つの特殊なケースとして`TransactionType`フィールドがあります。JSONではこのフィールドは便宜上、トランザクションタイプの名前の文字列として表現されますが、バイナリではこのフィールドはUInt16です。[定義ファイル](#定義ファイル)内の`TRANSACTION_TYPES`オブジェクトにより、これらの文字列が特定の数値にマップされます。 - ### XChainBridgeフィールド + [XChainBridge]: #xchainbridgeフィールド -[{% inline-svg file="/docs/img/serialization-xchainbridge.ja.svg" /%}](/docs/img/serialization-xchainbridge.ja.svg "XChainBridgeのフォーマットの図") +[{% inline-svg file="/docs/img/serialization-xchainbridge.ja.svg" /%}](/docs/img/serialization-xchainbridge.ja.svg 'XChainBridgeのフォーマットの図') `XChainBridge`フィールドは、[クロスチェーンブリッジ](../../concepts/xrpl-sidechains/cross-chain-bridges.md)に関連するトランザクションとレジャーエントリで使用され、XChainBridgeタイプの唯一のフィールドです。XChainBridgeフィールドは4つの要素から構成され、ブロックチェーン間のブリッジを定義します。 diff --git a/@l10n/ja/docs/references/protocol/data-types/base58-encodings.md b/@l10n/ja/docs/references/protocol/data-types/base58-encodings.md index 8ead11885c..0e46b859ad 100644 --- a/@l10n/ja/docs/references/protocol/data-types/base58-encodings.md +++ b/@l10n/ja/docs/references/protocol/data-types/base58-encodings.md @@ -2,8 +2,9 @@ html: base58-encodings.html parent: basic-data-types.html seo: - description: 暗号鍵と関連データをbase58形式で表すフォーマットです。 + description: 暗号鍵と関連データをbase58形式で表すフォーマットです。 --- + # base58エンコード `rippled` APIでは、チェックサムを含む**base58**エンコード(「Base58Check」とも呼ばれます)を使用して[アカウントアドレス](../../../concepts/accounts/addresses.md)や暗号鍵に関連するその他のタイプの値が表現されることがよくあります。このエンコードは、[Bitcoinのアドレスに使用されているエンコード](https://en.bitcoin.it/wiki/Base58Check_encoding)と同じですが、XRP Ledgerでは以下のディクショナリが使用される点が異なります。`rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz`。 @@ -12,12 +13,12 @@ XRP Ledgerにより、さまざまなタイプの値をエンコードする前 以下の表に、XRP Ledgerで使用されるすべてのエンコードを示します。 -| データタイプ | 開始文字 | タイププレフィクス | コンテンツのサイズ¹ | 最大文字数 | -|:-----------------------------------------|:------------|:------------|:--------------|:--| -| [アカウント][]アドレス | r | `0x00` | 20バイト | 35 | -| アカウントの公開鍵 | a | `0x23` | 33バイト | 53 | -| シード値(シークレットキー) | s | `0x21` | 16バイト | 29 | -| 検証公開鍵またはノード公開鍵 | n | `0x1C` | 33バイト | 53 | +| データタイプ | 開始文字 | タイププレフィクス | コンテンツのサイズ¹ | 最大文字数 | +| :--------------------------- | :------- | :----------------- | :------------------ | :--------- | +| [アカウント][]アドレス | r | `0x00` | 20バイト | 35 | +| アカウントの公開鍵 | a | `0x23` | 33バイト | 53 | +| シード値(シークレットキー) | s | `0x21` | 16バイト | 29 | +| 検証公開鍵またはノード公開鍵 | n | `0x1C` | 33バイト | 53 | ¹ コンテンツのサイズでは1バイトのタイププレフィクスは除外されます。 diff --git a/@l10n/ja/docs/references/protocol/data-types/basic-data-types.md b/@l10n/ja/docs/references/protocol/data-types/basic-data-types.md index ed03611305..9b4ae61978 100644 --- a/@l10n/ja/docs/references/protocol/data-types/basic-data-types.md +++ b/@l10n/ja/docs/references/protocol/data-types/basic-data-types.md @@ -2,8 +2,9 @@ html: basic-data-types.html parent: protocol-reference.html seo: - description: アドレス、レジャーインデックス、通貨コードなどの基本的なデータタイプのフォーマットと意味について説明します。 + description: アドレス、レジャーインデックス、通貨コードなどの基本的なデータタイプのフォーマットと意味について説明します。 --- + # 基本的なデータ型 さまざまなタイプのオブジェクトがそれぞれ異なる方法で一意に識別されます。 @@ -15,87 +16,83 @@ seo: 閉鎖された各[レジャー](../ledger-data/index.md)は、[レジャーインデックス][]と[ハッシュ][]値を保有します。[レジャーを指定する](#レジャーの指定)場合、いずれか1つを使用できます。 ## アドレス + [アドレス]: #アドレス {% partial file="/@l10n/ja/docs/_snippets/data_types/address.md" /%} - - ## ハッシュ + [ハッシュ]: #ハッシュ {% partial file="/@l10n/ja/docs/_snippets/data_types/hash.md" /%} - ### ハッシュプレフィクス + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/HashPrefix.h "Source") 多くの場合、XRP Ledgerではオブジェクトのバイナリデータに4バイトのプレフィクスを付けてからハッシュを計算するため、異なるタイプのオブジェクトが同じバイナリフォーマットである場合でも、異なるハッシュが設定されます。既存の4バイトコードは、ASCIIでエンコードされた英字3文字の後に0バイトが続く構成となっています。 ある種のハッシュは、APIのリクエストとレスポンスに使用されます。またある種のデータに署名するときの最初のステップで計算されるだけのものや、より高度なハッシュを計算するためのものもあります。XRP Ledgerで使用されるすべての4バイトのハッシュプレフィクスは以下の表の通りです。 -| オブジェクトタイプ | APIフィールド | ハッシュプレフィクス(16進数) | ハッシュプレフィクス(テキスト) | -|:--------------------------------------------|:---------------------------------------|:--------------------------|:--| -| コンセンサスの提案 | なし | `0x50525000` | `PRP\0` | -| レジャーバージョン | `ledger_hash` | `0x4C575200` | `LWR\0` | -| レジャー状態データ | `account_state` ([レジャーヘッダー][]内) | `0x4D4C4E00` | `MLN\0` | -| レジャーデータ内部ノード | なし | `0x4D494E00` | `MIN\0` | -| レジャーデータ内部ノード([SHAMapv2][]) | なし | `0x494E5200` | `INR\0` | -| Payment Channelのクレーム | なし | `0x434C4D00` | `CLM\0` | -| 署名済みのトランザクション | トランザクションの`hash` | `0x54584E00` | `TXN\0` | -| メタデータを持つトランザクション | なし | `0x534E4400` | `SND\0` | -| 未署名のトランザクション(シングル署名) | なし | `0x53545800` | `STX\0` | -| 未署名のトランザクション(マルチシグ) | なし | `0x534D5400` | `SMT\0` | -| 検証の投票 | なし | `0x56414C00` | `VAL\0` | -| バリデータサブキー認証(「バリデータマニフェスト」) | なし | `0x4D414E00` | `MAN\0` | +| オブジェクトタイプ | APIフィールド | ハッシュプレフィクス(16進数) | ハッシュプレフィクス(テキスト) | +| :--------------------------------------------------- | :----------------------------------------- | :----------------------------- | :------------------------------- | +| コンセンサスの提案 | なし | `0x50525000` | `PRP\0` | +| レジャーバージョン | `ledger_hash` | `0x4C575200` | `LWR\0` | +| レジャー状態データ | `account_state` ([レジャーヘッダー][]内) | `0x4D4C4E00` | `MLN\0` | +| レジャーデータ内部ノード | なし | `0x4D494E00` | `MIN\0` | +| レジャーデータ内部ノード([SHAMapv2][]) | なし | `0x494E5200` | `INR\0` | +| Payment Channelのクレーム | なし | `0x434C4D00` | `CLM\0` | +| 署名済みのトランザクション | トランザクションの`hash` | `0x54584E00` | `TXN\0` | +| メタデータを持つトランザクション | なし | `0x534E4400` | `SND\0` | +| 未署名のトランザクション(シングル署名) | なし | `0x53545800` | `STX\0` | +| 未署名のトランザクション(マルチシグ) | なし | `0x534D5400` | `SMT\0` | +| 検証の投票 | なし | `0x56414C00` | `VAL\0` | +| バリデータサブキー認証(「バリデータマニフェスト」) | なし | `0x4D414E00` | `MAN\0` | [レジャーヘッダー]: ../ledger-data/ledger-header.md [SHAMapv2]: /resources/known-amendments.md#shamapv2 [レジャーオブジェクトID](../ledger-data/common-fields.md)も似た方法で計算されますが、ここで説明したプレフィクスの代わりに「スペースキー」という2バイトのプレフィクスを使用します。 - ## アカウントシーケンス + [シーケンス番号]: #アカウントシーケンス {% partial file="/@l10n/ja/docs/_snippets/data_types/account_sequence.md" /%} - - ## レジャーインデックス + [レジャーインデックス]: #レジャーインデックス {% partial file="/@l10n/ja/docs/_snippets/data_types/ledger_index.md" /%} - - ### レジャーの指定 APIメソッドの多くは、レジャーのインスタンスを指定する必要があります。その場合、共有されたレジャーの特定バージョンで最新と見なされるデータで指定する必要があります。レジャーバージョンを受け入れるコマンドは、すべて同様に機能します。使用するレジャーを指定するには、以下の3つの方法があります。 1. `ledger_index`パラメータにレジャーの[レジャーインデックス][]を指定します。閉鎖された各レジャーには識別用のレジャーインデックスが付いていて、その前に検証されたレジャーより1つ大きい番号になります。(最初のレジャーのインデックスは1です。) - ``` - "ledger_index": 61546724 - ``` + ``` + "ledger_index": 61546724 + ``` 2. `ledger_hash`パラメータにレジャーの[ハッシュ][]値を指定します。 - ``` - "ledger_hash": "8BB204CE37CFA7A021A16B5F6143400831C4D1779E6FE538D9AC561ABBF4A929" - ``` + ``` + "ledger_hash": "8BB204CE37CFA7A021A16B5F6143400831C4D1779E6FE538D9AC561ABBF4A929" + ``` 3. `ledger_index`パラメータに以下のいずれかのショートカットを指定します。 + - `validated`: [コンセンサスで検証](../../../concepts/consensus-protocol/consensus-structure.md#検証)された最新のレジャー - * `validated`: [コンセンサスで検証](../../../concepts/consensus-protocol/consensus-structure.md#検証)された最新のレジャー + ``` + "ledger_index": "validated" + ``` - ``` - "ledger_index": "validated" - ``` + - `closed`: 変更できないように閉鎖され、検証を提案されている最新のレジャー - * `closed`: 変更できないように閉鎖され、検証を提案されている最新のレジャー - - * `current`: サーバで現在処理中のレジャーバージョン + - `current`: サーバで現在処理中のレジャーバージョン 上記3つのフォーマットすべてを受け入れる、廃止予定の`ledger`パラメーターもあります。このパラメーターは使用*しないでください*。今後予告なしに廃止される可能性があります。 @@ -105,7 +102,6 @@ APIメソッドの多くは、レジャーのインスタンスを指定する レポートモードでは、検証済みとなるまでレジャーデータは記録されません。レポートモードサーバに`current`または`closed`のレジャーをリクエストすると、サーバはそのリクエストを P2Pモードサーバに転送します。検証されていないレジャー番号またはハッシュをリクエストした場合、レポートモードのサーバは`lgrNotFound`エラーを返します。 - ### 通貨額の指定 XRP LedgerにはXRPとトークンの2種類の通貨があります。これら2種類の通貨は、異なるフォーマット、異なる精度と丸め動作で指定されます。 @@ -116,23 +112,22 @@ XRPは、XRPの “drop"数を含む整数の文字列として指定され、10 - **XRP** - `Amount`フィールドに13.1 XRPを指定するには: - ``` - "Amount": "13100000" - ``` + ``` + "Amount": "13100000" + ``` - **トークン** - `rf1B...`が発行した13.1 FOOという値で`Amount`フィールドを指定するには: - ``` - "Amount": { - "value": "13.1", - "currency": "FOO", - "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn" - } - ``` + ``` + "Amount": { + "value": "13.1", + "currency": "FOO", + "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn" + } + ``` 詳しくは[通貨フォーマット](currency-formats.md)をご覧ください。 - ## 時間の指定 `rippled`サーバとそのAPIでは、時間を符号なし整数で表します。この数値は、「Rippleエポック」である2000年1月1日(00:00 UTC)から経過した秒数を表しています。これは[UNIXエポック](http://en.wikipedia.org/wiki/Unix_time)と同様に機能しますが、RippleエポックはUNIXエポックより946684800秒遅れています。 diff --git a/@l10n/ja/docs/references/protocol/data-types/currency-formats.md b/@l10n/ja/docs/references/protocol/data-types/currency-formats.md index e0017ab9a9..64d4ae0725 100644 --- a/@l10n/ja/docs/references/protocol/data-types/currency-formats.md +++ b/@l10n/ja/docs/references/protocol/data-types/currency-formats.md @@ -2,11 +2,12 @@ html: currency-formats.html parent: basic-data-types.html seo: - description: XRP Ledgerで利用可能な通貨の精度と範囲、カスタム通貨コードのフォーマットについて説明します。 + description: XRP Ledgerで利用可能な通貨の精度と範囲、カスタム通貨コードのフォーマットについて説明します。 labels: - XRP - トークン --- + # 通貨フォーマット XRP Ledgerには2種類の通貨、XRPと[トークン](../../../concepts/tokens/index.md)があります。XRP Ledgerでは、これらの通貨のフォーマットは異なりますが、どちらも高精度です。 @@ -15,18 +16,18 @@ XRP Ledgerには2種類の通貨、XRPと[トークン](../../../concepts/tokens 以下の表は、XRP LedgerにおけるXRPとトークンの違いをまとめたものです。 -| XRP | トークン | -|:---------------------------------------------------------|:------------------| -| 発行者は存在しません。 | XRP Ledgerのアカウントから発行されます。 | -| 文字列形式で指定します。 | オブジェクト形式で指定します。 | -| [アカウント](../ledger-data/ledger-entry-types/accountroot.md)に記録されます。 | [トラストライン](../ledger-data/ledger-entry-types/ripplestate.md)に記録されます。 | -| バーンするのみで作成することはできません。 | 自由に発行・償還が可能です。 | -| 最小値: `0` (負の値はありません) | 最小値: `-9999999999999999e80` ゼロでない絶対値の最小値: `1000000000000000e-96` -| 最大値 `100000000000` (1011) XRP (`100000000000000000` (1017) "drops") | 最大値 `9999999999999999e80` | -| 最小の精度: "drop" (0.000001 XRP) | 小数点以下15桁の精度 | -| [フリーズ](../../../concepts/tokens/fungible-tokens/freezes.md)できません | 発行者は残高を[フリーズ](../../../concepts/tokens/fungible-tokens/freezes.md)することができます | -| 送金手数料はかかりません。XRP同士の支払いは常に直接行われます | 間接的な[パス](../../../concepts/tokens/fungible-tokens/paths.md)を取ることができ、各発行者は一定の[送金手数料](../../../concepts/tokens/fungible-tokens/transfer-fees.md)を請求できます | -| [ペイメントチャンネル](../../../concepts/payment-types/payment-channels.md)と[エスクロー](../../../concepts/payment-types/escrow.md)で使用できます | ペイメントチャネルやエスクローには対応していません | +| XRP | トークン | +| :------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 発行者は存在しません。 | XRP Ledgerのアカウントから発行されます。 | +| 文字列形式で指定します。 | オブジェクト形式で指定します。 | +| [アカウント](../ledger-data/ledger-entry-types/accountroot.md)に記録されます。 | [トラストライン](../ledger-data/ledger-entry-types/ripplestate.md)に記録されます。 | +| バーンするのみで作成することはできません。 | 自由に発行・償還が可能です。 | +| 最小値: `0` (負の値はありません) | 最小値: `-9999999999999999e80` ゼロでない絶対値の最小値: `1000000000000000e-96` | +| 最大値 `100000000000` (1011) XRP (`100000000000000000` (1017) "drops") | 最大値 `9999999999999999e80` | +| 最小の精度: "drop" (0.000001 XRP) | 小数点以下15桁の精度 | +| [フリーズ](../../../concepts/tokens/fungible-tokens/freezes.md)できません | 発行者は残高を[フリーズ](../../../concepts/tokens/fungible-tokens/freezes.md)することができます | +| 送金手数料はかかりません。XRP同士の支払いは常に直接行われます | 間接的な[パス](../../../concepts/tokens/fungible-tokens/paths.md)を取ることができ、各発行者は一定の[送金手数料](../../../concepts/tokens/fungible-tokens/transfer-fees.md)を請求できます | +| [ペイメントチャンネル](../../../concepts/payment-types/payment-channels.md)と[エスクロー](../../../concepts/payment-types/escrow.md)で使用できます | ペイメントチャネルやエスクローには対応していません | 詳しくは [XRPとは?](../../../introduction/what-is-xrp.md)や[トークン](../../../concepts/tokens/index.md)をご覧ください。 @@ -53,11 +54,11 @@ XRPの金額は負になることはありません。 [(代替可能な)トークン](../../../concepts/tokens/index.md)の金額を指定するには、Amountオブジェクトを使用します。これは、3つのフィールドを持つJSONオブジェクトです。 -| `Field` | 型 | 説明 | -|:-----------|:---------------------|:-----------------------------------| -| `currency` | 文字列 - [通貨コード][] | トークンの任意の通貨コード。`XRP`は使用できません。 | -| `value` | [文字列フォーマット][] | トークンの金額を10進数で表します。1.23e11`は123,000,000,000を意味します。e` と `E` の両方を使用することができます。残高を表示する場合には負の値を指定することができますが、送信金額を指定する場合などには負の値を指定することはできません。 | -| `issuer` | 文字列 | 一般的には、このトークンを発行する[アカウント](../../../concepts/accounts/index.md)を指します。特殊なケースでは、トークンを保持しているアカウントを指します(例えば、[Clawback](../transactions/types/clawback.md)トランザクションの場合など)。 | +| `Field` | 型 | 説明 | +| :--------- | :---------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `currency` | 文字列 - [通貨コード][] | トークンの任意の通貨コード。`XRP`は使用できません。 | +| `value` | [文字列フォーマット][] | トークンの金額を10進数で表します。1.23e11`は123,000,000,000を意味します。e` と `E` の両方を使用することができます。残高を表示する場合には負の値を指定することができますが、送信金額を指定する場合などには負の値を指定することはできません。 | +| `issuer` | 文字列 | 一般的には、このトークンを発行する[アカウント](../../../concepts/accounts/index.md)を指します。特殊なケースでは、トークンを保持しているアカウントを指します(例えば、[Clawback](../transactions/types/clawback.md)トランザクションの場合など)。 | [文字列フォーマット]: #文字列フォーマット @@ -67,9 +68,9 @@ XRPの金額は負になることはありません。 ```json { - "currency": "USD", - "value": "153.75", - "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59" + "currency": "USD", + "value": "153.75", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59" } ``` @@ -94,7 +95,6 @@ XRPを金額なしで記述するには、JSONオブジェクトとして`curren } ``` - ## 文字列フォーマット {% partial file="/@l10n/ja/docs/_snippets/string-number-formatting.md" /%} @@ -112,12 +112,11 @@ XRP Ledgerのピアツーピアネットワークでトークンの金額を送 **ヒント:** 分割不可能なトークンについては、[非代替性トークン(NFT)](../../../concepts/tokens/nfts/index.md)をご覧ください。 ## 通貨コード + [通貨コード]: #通貨コード {% partial file="/@l10n/ja/docs/_snippets/data_types/currency_code.md" /%} - - ### 標準通貨コード 通貨コードの標準フォーマットは`USD`のような3文字の文字列です。これは[ISO 4217 Currency Codes](https://www.xe.com/iso4217.php)で使用するためのものです。以下のルールがあります。 diff --git a/@l10n/ja/docs/references/protocol/data-types/nftoken.md b/@l10n/ja/docs/references/protocol/data-types/nftoken.md index 86b2617e7e..e907ddd222 100644 --- a/@l10n/ja/docs/references/protocol/data-types/nftoken.md +++ b/@l10n/ja/docs/references/protocol/data-types/nftoken.md @@ -2,10 +2,11 @@ html: nftoken.html parent: basic-data-types.html seo: - description: XRPL NFTの紹介 + description: XRPL NFTの紹介 labels: - 非代替性トークン, NFT --- + # NFToken `NFToken`オブジェクトは、1つの非代替性トークン(NFT)を表します。単体では保存されず、他の`NFToken`オブジェクトと共に[NFTokenPageオブジェクト][]に格納されます。 @@ -16,17 +17,15 @@ labels: ```json { - "TokenID": "000B013A95F14B0044F78A264E41713C64B5F89242540EE208C3098E00000D65", - "URI": "ipfs://bafybeigdyrzt5sfp7udm7hu76uh7y26nf4dfuylqabf3oclgtqy55fbzdi" + "TokenID": "000B013A95F14B0044F78A264E41713C64B5F89242540EE208C3098E00000D65", + "URI": "ipfs://bafybeigdyrzt5sfp7udm7hu76uh7y26nf4dfuylqabf3oclgtqy55fbzdi" } ``` 通常の[レジャーエントリ](../ledger-data/ledger-entry-types/index.md)とは異なり、`NFToken`にはオブジェクトのタイプや現在の所有者を特定するフィールドはありません。`NFToken`オブジェクトは、そのオブジェクトのタイプを暗黙的に定義し、所有者を特定するページにグループ化されます。 - ## NFTokenID - NFTokenID, 任意, 文字列, UInt256 この複合フィールドは、トークンを一意に識別するものであり、以下のセクションから構成されます。 @@ -41,7 +40,7 @@ D) 32ビットの発行者が指定する[`NFTokenTaxon`](https://www.merriam-we E) 32ビットの(自動生成される)単調増加するシーケンス番号 -![トークンIDの内訳](/docs/img/nftoken1.png "トークンIDの内訳") +![トークンIDの内訳](/docs/img/nftoken1.png 'トークンIDの内訳') 16ビットのフラグ、送金手数料フィールド、32ビットの`NFTokenTaxon`、シーケンス番号フィールドはビッグエンディアン形式で格納されます。 @@ -49,14 +48,13 @@ E) 32ビットの(自動生成される)単調増加するシーケンス番 フラグは、`NFToken`オブジェクトに関連するプロパティやその他のオプションです。 - -| フラグ名 | フラグ値 | 説明 | -|:------------------|:-----------|:--------------------------------------------| -| `lsfBurnable` | `0x0001` | 設定されている場合、発行者(または発行者が許可したエンティティ)が`NFToken`を破棄できることを示します。オブジェクトの所有者は常に破棄することができます。 | -| `lsfOnlyXRP` | `0x0002` | 設定されている場合、`NFToken`はXRPに対してのみオファーまたは売却できることを示します。 | -| `lsfTrustLine` | `0x0004` | **廃止** 設定されている場合、送金手数料を保持するための[トラストライン](../../../concepts/tokens/fungible-tokens/index.md)を自動的に作成します。設定されていない場合、発行者がそのトークンのトラストラインを持っていない場合、この`NFToken`をそのトークンで売買することは失敗します。[fixRemoveNFTokenAutoTrustLine amendment][]により、このフラグは利用できなくなります。| -| `lsfTransferable` | `0x0008` | 設定されている場合、この`NFToken`は所有者から別の所有者に転送することができます。設定されていない場合、所有者は発行者との間でのみ譲渡が可能です。 | -| `lsfReservedFlag` | `0x8000` | 将来の使用に備えて確保されています。このフラグを設定しようとすると失敗します。 | +| フラグ名 | フラグ値 | 説明 | +| :---------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `lsfBurnable` | `0x0001` | 設定されている場合、発行者(または発行者が許可したエンティティ)が`NFToken`を破棄できることを示します。オブジェクトの所有者は常に破棄することができます。 | +| `lsfOnlyXRP` | `0x0002` | 設定されている場合、`NFToken`はXRPに対してのみオファーまたは売却できることを示します。 | +| `lsfTrustLine` | `0x0004` | **廃止** 設定されている場合、送金手数料を保持するための[トラストライン](../../../concepts/tokens/fungible-tokens/index.md)を自動的に作成します。設定されていない場合、発行者がそのトークンのトラストラインを持っていない場合、この`NFToken`をそのトークンで売買することは失敗します。[fixRemoveNFTokenAutoTrustLine amendment][]により、このフラグは利用できなくなります。 | +| `lsfTransferable` | `0x0008` | 設定されている場合、この`NFToken`は所有者から別の所有者に転送することができます。設定されていない場合、所有者は発行者との間でのみ譲渡が可能です。 | +| `lsfReservedFlag` | `0x8000` | 将来の使用に備えて確保されています。このフラグを設定しようとすると失敗します。 | `NFToken`のフラグは変更できません。[NFTokenMintトランザクション][]でのみ設定可能で、後で変更することはできません。 @@ -64,8 +62,7 @@ E) 32ビットの(自動生成される)単調増加するシーケンス番 この例では、`lsfBurnable`(`0x0001`), `lsfOnlyXRP`(`0x0002`), `lsfTransferable`(`0x0008`)の3つのフラグを設定しています。1+2+8 = 11、つまりビッグエンディアン形式で`0x000B`です。 -![フラグ](/docs/img/nftokena.png "フラグ") - +![フラグ](/docs/img/nftokena.png 'フラグ') ### 送金手数料 @@ -75,17 +72,16 @@ E) 32ビットの(自動生成される)単調増加するシーケンス番 この値では、転送手数料は31.4bps(0.314%)に設定されます。 -![送金手数料](/docs/img/nftokenb.png "送金手数料") +![送金手数料](/docs/img/nftokenb.png '送金手数料') ### 発行者の識別 `NFTokenID`の3番目のセクションは、発行者のアドレスをビッグエンディアンで表現したものです。 -![発行者アドレス](/docs/img/nftokenc.png "発行者アドレス") +![発行者アドレス](/docs/img/nftokenc.png '発行者アドレス') ### NFTokenTaxon(分類群) - 4番目のセクションは、発行者が指定する`NFTokenTaxon`です。 ![`NFTokenTaxon` の概要図](/docs/img/nftokend.png) @@ -98,7 +94,7 @@ E) 32ビットの(自動生成される)単調増加するシーケンス番 5番目のセクションは、発行者が`NFToken`を作成するたびに増加するシーケンス番号です。 -![シーケンス番号](/docs/img/nftokene.png "シーケンス番号") +![シーケンス番号](/docs/img/nftokene.png 'シーケンス番号') [NFTokenMintトランザクション][]では`NFTokenID`のこのフィールドを`Issuer`アカウントの`MintedNFTokens`フィールドを基に自動的に設定します。発行者の[AccountRootオブジェクト][]が`MintedNFTokens`フィールドを持っていない場合、そのフィールドは値 0 と見なされます。フィールドの値は1ずつ増加します。 diff --git a/@l10n/ja/docs/references/protocol/index.md b/@l10n/ja/docs/references/protocol/index.md index eaf741fd98..ef19865fb0 100644 --- a/@l10n/ja/docs/references/protocol/index.md +++ b/@l10n/ja/docs/references/protocol/index.md @@ -5,11 +5,11 @@ metadata: indexPage: true eyebrow_text: 特徴とルール seo: - description: XRP Ledgerプロトコルの、利用方法に依存しない特徴やルールについて。 + description: XRP Ledgerプロトコルの、利用方法に依存しない特徴やルールについて。 --- + # XRP Ledgerプロトコルリファレンス XRP Ledgerプロトコルの、利用方法に依存しない特徴やルールについて。 - {% child-pages /%} diff --git a/@l10n/ja/docs/references/protocol/ledger-data/common-fields.md b/@l10n/ja/docs/references/protocol/ledger-data/common-fields.md index dc6a875c18..25140a6460 100644 --- a/@l10n/ja/docs/references/protocol/ledger-data/common-fields.md +++ b/@l10n/ja/docs/references/protocol/ledger-data/common-fields.md @@ -1,22 +1,23 @@ --- html: ledger-entry-common-fields.html seo: - description: これらの共通フィールドは、すべてのレジャーエントリの一部です。 + description: これらの共通フィールドは、すべてのレジャーエントリの一部です。 --- + # Ledger Entryの共通フィールド + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/LedgerFormats.cpp) [レジャー](../../../concepts/ledgers/index.md)の状態データの各エントリは、同じ共通フィールドのセットと、[レジャーエントリのタイプ](ledger-entry-types/index.md)に基づく追加フィールドを持ちます。フィールド名は大文字と小文字を区別します。すべてのレジャーエントリの共通フィールドは以下の通りです。 -| `Field` | JSONの型 | [内部の型][] | 必須? | 説明 | -|:-------------------------|:--------|:------------|:------|:------------| -| `index` or `LedgerIndex` | 文字列 | UInt256 | いいえ | このレジャーエントリの一意のID。JSONでは、このフィールドはコンテキストやAPIメソッドによって異なる名前で表現されます。(コード上では"任意(optional)"と指定されていますが、XRP Ledgerの歴史のごく初期からのレガシーデータでない限り、すべてのレジャーエントリは一意であるべきです)。 | -| `LedgerEntryType` | 文字列 | UInt16 | はい | レジャーエントリのタイプ。有効な[レジャーエントリのタイプ](ledger-entry-types/index.md)には`AccountRoot`、`Offer`、`RippleState`などがあります。 | -| `Flags` | 数値 | UInt32 | はい | このレジャーエントリのビットフラグのセット。 | +| `Field` | JSONの型 | [内部の型][] | 必須? | 説明 | +| :----------------------- | :------- | :----------- | :----- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `index` or `LedgerIndex` | 文字列 | UInt256 | いいえ | このレジャーエントリの一意のID。JSONでは、このフィールドはコンテキストやAPIメソッドによって異なる名前で表現されます。(コード上では"任意(optional)"と指定されていますが、XRP Ledgerの歴史のごく初期からのレガシーデータでない限り、すべてのレジャーエントリは一意であるべきです)。 | +| `LedgerEntryType` | 文字列 | UInt16 | はい | レジャーエントリのタイプ。有効な[レジャーエントリのタイプ](ledger-entry-types/index.md)には`AccountRoot`、`Offer`、`RippleState`などがあります。 | +| `Flags` | 数値 | UInt32 | はい | このレジャーエントリのビットフラグのセット。 | {% admonition type="warning" name="注意" %}JSONでは、レジャーエントリIDは`index`または`LedgerIndex`フィールドになります。これは`ledger_index`フィールドの[レジャーインデックス][]とは異なります。{% /admonition %} - ## Ledger Entry ID [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/Indexes.cpp) @@ -27,8 +28,7 @@ seo: オファーディレクトリには特別なIDがあり、ハッシュの一部がそのディレクトリ内のオファーの取引レートに置き換えられます。 -[{% inline-svg file="/docs/img/ledger-object-ids.ja.svg" /%}](/docs/img/ledger-object-ids.ja.svg "図: 異なるタイプのレジャーエントリのID計算。スペースキーは、異なるタイプのIDが衝突するのを防ぎます。") - +[{% inline-svg file="/docs/img/ledger-object-ids.ja.svg" /%}](/docs/img/ledger-object-ids.ja.svg '図: 異なるタイプのレジャーエントリのID計算。スペースキーは、異なるタイプのIDが衝突するのを防ぎます。') ## フラグ diff --git a/@l10n/ja/docs/references/protocol/ledger-data/index.md b/@l10n/ja/docs/references/protocol/ledger-data/index.md index a6222237b8..b769bffd9f 100644 --- a/@l10n/ja/docs/references/protocol/ledger-data/index.md +++ b/@l10n/ja/docs/references/protocol/ledger-data/index.md @@ -2,18 +2,18 @@ html: ledger-data-formats.html parent: protocol-reference.html seo: - description: XRP Ledgerの共有状態を構成する個別のデータオブジェクトについて説明します。 + description: XRP Ledgerの共有状態を構成する個別のデータオブジェクトについて説明します。 metadata: indexPage: true --- + # レジャーのデータ型 XRP Ledgerに各レジャーバージョンは3つの要素で構成されています: -* **[レジャーヘッダー](ledger-header.md)**: このレジャーに関してメタデータです。 -* **[トランザクションセット](../transactions/index.md)**: このレジャーの作成時に、直前のレジャーに適用されたトランザクション。 -* **[状態データ](ledger-entry-types/index.md)**: このバージョンのレジャーの設定、残高、オブジェクトを含むすべてのレジャーオブジェクト。 - +- **[レジャーヘッダー](ledger-header.md)**: このレジャーに関してメタデータです。 +- **[トランザクションセット](../transactions/index.md)**: このレジャーの作成時に、直前のレジャーに適用されたトランザクション。 +- **[状態データ](ledger-entry-types/index.md)**: このバージョンのレジャーの設定、残高、オブジェクトを含むすべてのレジャーオブジェクト。 ## 状態データ diff --git a/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/accountroot.md b/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/accountroot.md index 651d6e98a4..0bf000811f 100644 --- a/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/accountroot.md +++ b/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/accountroot.md @@ -1,11 +1,13 @@ --- seo: - description: あるアカウントの設定、XRP残高、その他のメタデータを表します。 + description: あるアカウントの設定、XRP残高、その他のメタデータを表します。 labels: - アカウント - XRP --- + # AccountRoot + [[ソース]](https://github.com/xrplf/rippled/blob/5d2d88209f1732a0f8d592012094e345cbe3e675/src/ripple/protocol/impl/LedgerFormats.cpp#L27 "Source") `AccountRoot`オブジェクトタイプは、1つの[アカウント](../../../../concepts/accounts/index.md)、そのアカウントの設定、XRP残高を記述します。 @@ -14,20 +16,20 @@ labels: ```json { - "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "AccountTxnID": "0D5FB50FA65C9FE1538FD7E398FFFE9D1908DFA4576D8D7A020040686F93C77D", - "Balance": "148446663", - "Domain": "6D64756F31332E636F6D", - "EmailHash": "98B4375E1D753E5B91627516F6D70977", - "Flags": 8388608, - "LedgerEntryType": "AccountRoot", - "MessageKey": "0000000000000000000000070000000300", - "OwnerCount": 3, - "PreviousTxnID": "0D5FB50FA65C9FE1538FD7E398FFFE9D1908DFA4576D8D7A020040686F93C77D", - "PreviousTxnLgrSeq": 14091160, - "Sequence": 336, - "TransferRate": 1004999999, - "index": "13F1A95D7AAB7108D5CE7EEAF504B2894B8C674E6D68499076441C4837282BF8" + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "AccountTxnID": "0D5FB50FA65C9FE1538FD7E398FFFE9D1908DFA4576D8D7A020040686F93C77D", + "Balance": "148446663", + "Domain": "6D64756F31332E636F6D", + "EmailHash": "98B4375E1D753E5B91627516F6D70977", + "Flags": 8388608, + "LedgerEntryType": "AccountRoot", + "MessageKey": "0000000000000000000000070000000300", + "OwnerCount": 3, + "PreviousTxnID": "0D5FB50FA65C9FE1538FD7E398FFFE9D1908DFA4576D8D7A020040686F93C77D", + "PreviousTxnLgrSeq": 14091160, + "Sequence": 336, + "TransferRate": 1004999999, + "index": "13F1A95D7AAB7108D5CE7EEAF504B2894B8C674E6D68499076441C4837282BF8" } ``` @@ -35,30 +37,30 @@ labels: `AccountRoot`オブジェクトのフィールドは次のとおりです。 -| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | -|:------------------------------|:---------|:------------------|:------|:------| -| `Account` | 文字列 | AccountID | はい | この[アカウント](../../../../concepts/accounts/index.md)を識別するための(クラシック)アドレスです。 | -| `AccountTxnID` | 文字列 | UInt256 | いいえ | このアカウントから直近に送信されたトランザクションの識別ハッシュ。このフィールドは、[`AccountTxnID`トランザクションフィールド](../../transactions/common-fields.md#accounttxnid)を使うために有効になっていなければなりません。これを有効にするには、[`asfAccountTxnID`フラグを有効にしたAccountSetトランザクション](../../transactions/types/accountset.md#accountsetのフラグ)を送信してください。 | -| `AMMID` | 文字列 | UInt256 | いいえ | {% amendment-disclaimer name="AMM" /%} 対応するAMMレジャーエントリのレジャーエントリID。アカウント作成時に設定します。AMM以外のアカウントでは常に省略されます。 | -| `Balance` | 文字列 | Amount | いいえ | アカウントの現在の[XRPのdrop数][]で、文字列で表現されます。 | -| `BurnedNFTokens` | 数値 | UInt32 | いいえ | このアカウントで発行された [非代替性トークン](../../../../concepts/tokens/nfts/index.md) のうち、バーンしたトークンの総数を表します。この数値は常に `MintedNFTokens` と同じかそれ以下となります。 | -| `Domain` | 文字列 | VariableLength | いいえ | このアカウントに関連付けられたドメイン。JSONでは、ドメインのASCII表現を16進数で表現します。[256バイトを超える長さは使用できません](https://github.com/xrplf/rippled/blob/55dc7a252e08a0b02cd5aa39e9b4777af3eafe77/src/ripple/app/tx/impl/SetAccount.h#L34) | -| `EmailHash` | 文字列 | Hash128 | いいえ | メールアドレスのmd5ハッシュ。クライアントはこれを使用してサービス内で[Gravatar](https://ja.gravatar.com/)などのアバターを検索できます。 | -| [`Flags`](#accountrootのフラグ) | 数値 | UInt32 | はい | このアカウントに対して有効になっているブールフラグのビットマップ。 | -| `LedgerEntryType` | 文字列 | UInt16 | はい | 値`0x0061`で文字列`AccountRoot`にマッピングされ、AccountRootオブジェクトであることを示します。 | -| `MessageKey` | 文字列 | VariableLength | いいえ | このアカウントに暗号化されたメッセージを送信するために使用することができる公開鍵です。JSONでは、16進数で指定します。33バイトであることが必要で、最初の1バイトは鍵の種類を表します。secp256k1鍵の場合は`0x02`または`0x03`、Ed25519鍵の場合は`0xED`となります。 | -| `MintedNFTokens` | 数値 | UInt32 | いいえ | このアカウントによって、またはこのアカウントのためにMintされた[非代替性トークン](../../../../concepts/tokens/nfts/index.md) の合計数。 | -| `NFTokenMinter` | 文字列 | AccountID | いいえ | このアカウントに代わって[非代替性トークン](../../../../concepts/tokens/nfts/index.md)をミントできる別のアカウントを表します。 | -| `OwnerCount` | 数値 | UInt32 | はい | レジャーでこのアカウントが所有しており、アカウント所有者の準備金に資金を付与するオブジェクトの数。 | -| `PreviousTxnID` | 文字列 | UInt256 | はい | 最後にこのオブジェクトを変更したトランザクションの識別用ハッシュ。 | -| `PreviousTxnLgrSeq` | 数値 | UInt32 | はい | 最後にこのオブジェクトを変更したトランザクションが記録された[レジャーインデックス][]。 | -| `RegularKey` | 文字列 | AccountID | いいえ | このアカウントのトランザクションに署名するときにマスターキーの代わりに使用できる[キーペア](../../../../concepts/accounts/cryptographic-keys.md)のアドレス。この値を変更するには[SetRegularKeyトランザクション][]を使用してください。 | -| `Sequence` | 数値 | UInt32 | はい | このアカウントの有効な次のトランザクションの[シーケンス番号](../../data-types/basic-data-types.md#アカウントシーケンス) を表します。 | -| `TicketCount` | 数値 | UInt32 | いいえ | このアカウントが台帳に保有する[チケット](../../../../concepts/accounts/tickets.md)の数です。これは、アカウントが一度に250 チケットという上限以内に留まることを保証するために自動的に更新されます。このフィールドは、チケットの数がゼロの場合は省略されます。 {% amendment-disclaimer name="TicketBatch" /%} | -| `TickSize` | 数値 | UInt8 | いいえ | このアドレスが発行した通貨が関わるオファーの為替レートに使用する有効桁数。有効な値は`3`以上`15`以下です。{% amendment-disclaimer name="TickSize" /%} | -| `TransferRate` | 数値 | UInt32 | いいえ | このアカウントが発行した通貨を他のユーザが相互に送金する際に、これらのユーザに請求する[送金手数料](../../../../concepts/tokens/fungible-tokens/transfer-fees.md)。 | -| `WalletLocator` | 文字列 | UInt256 | いいえ | ユーザが設定できる任意の256bit値。 | -| `WalletSize` | 数値 | UInt32 | いいえ | 未使用。(コード上ではこのフィールドをサポートしていますが、設定する方法はありません)。 | +| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | +| :------------------------------ | :------- | :------------- | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Account` | 文字列 | AccountID | はい | この[アカウント](../../../../concepts/accounts/index.md)を識別するための(クラシック)アドレスです。 | +| `AccountTxnID` | 文字列 | UInt256 | いいえ | このアカウントから直近に送信されたトランザクションの識別ハッシュ。このフィールドは、[`AccountTxnID`トランザクションフィールド](../../transactions/common-fields.md#accounttxnid)を使うために有効になっていなければなりません。これを有効にするには、[`asfAccountTxnID`フラグを有効にしたAccountSetトランザクション](../../transactions/types/accountset.md#accountsetのフラグ)を送信してください。 | +| `AMMID` | 文字列 | UInt256 | いいえ | {% amendment-disclaimer name="AMM" /%} 対応するAMMレジャーエントリのレジャーエントリID。アカウント作成時に設定します。AMM以外のアカウントでは常に省略されます。 | +| `Balance` | 文字列 | Amount | いいえ | アカウントの現在の[XRPのdrop数][]で、文字列で表現されます。 | +| `BurnedNFTokens` | 数値 | UInt32 | いいえ | このアカウントで発行された [非代替性トークン](../../../../concepts/tokens/nfts/index.md) のうち、バーンしたトークンの総数を表します。この数値は常に `MintedNFTokens` と同じかそれ以下となります。 | +| `Domain` | 文字列 | VariableLength | いいえ | このアカウントに関連付けられたドメイン。JSONでは、ドメインのASCII表現を16進数で表現します。[256バイトを超える長さは使用できません](https://github.com/xrplf/rippled/blob/55dc7a252e08a0b02cd5aa39e9b4777af3eafe77/src/ripple/app/tx/impl/SetAccount.h#L34) | +| `EmailHash` | 文字列 | Hash128 | いいえ | メールアドレスのmd5ハッシュ。クライアントはこれを使用してサービス内で[Gravatar](https://ja.gravatar.com/)などのアバターを検索できます。 | +| [`Flags`](#accountrootのフラグ) | 数値 | UInt32 | はい | このアカウントに対して有効になっているブールフラグのビットマップ。 | +| `LedgerEntryType` | 文字列 | UInt16 | はい | 値`0x0061`で文字列`AccountRoot`にマッピングされ、AccountRootオブジェクトであることを示します。 | +| `MessageKey` | 文字列 | VariableLength | いいえ | このアカウントに暗号化されたメッセージを送信するために使用することができる公開鍵です。JSONでは、16進数で指定します。33バイトであることが必要で、最初の1バイトは鍵の種類を表します。secp256k1鍵の場合は`0x02`または`0x03`、Ed25519鍵の場合は`0xED`となります。 | +| `MintedNFTokens` | 数値 | UInt32 | いいえ | このアカウントによって、またはこのアカウントのためにMintされた[非代替性トークン](../../../../concepts/tokens/nfts/index.md) の合計数。 | +| `NFTokenMinter` | 文字列 | AccountID | いいえ | このアカウントに代わって[非代替性トークン](../../../../concepts/tokens/nfts/index.md)をミントできる別のアカウントを表します。 | +| `OwnerCount` | 数値 | UInt32 | はい | レジャーでこのアカウントが所有しており、アカウント所有者の準備金に資金を付与するオブジェクトの数。 | +| `PreviousTxnID` | 文字列 | UInt256 | はい | 最後にこのオブジェクトを変更したトランザクションの識別用ハッシュ。 | +| `PreviousTxnLgrSeq` | 数値 | UInt32 | はい | 最後にこのオブジェクトを変更したトランザクションが記録された[レジャーインデックス][]。 | +| `RegularKey` | 文字列 | AccountID | いいえ | このアカウントのトランザクションに署名するときにマスターキーの代わりに使用できる[キーペア](../../../../concepts/accounts/cryptographic-keys.md)のアドレス。この値を変更するには[SetRegularKeyトランザクション][]を使用してください。 | +| `Sequence` | 数値 | UInt32 | はい | このアカウントの有効な次のトランザクションの[シーケンス番号](../../data-types/basic-data-types.md#アカウントシーケンス) を表します。 | +| `TicketCount` | 数値 | UInt32 | いいえ | このアカウントが台帳に保有する[チケット](../../../../concepts/accounts/tickets.md)の数です。これは、アカウントが一度に250 チケットという上限以内に留まることを保証するために自動的に更新されます。このフィールドは、チケットの数がゼロの場合は省略されます。 {% amendment-disclaimer name="TicketBatch" /%} | +| `TickSize` | 数値 | UInt8 | いいえ | このアドレスが発行した通貨が関わるオファーの為替レートに使用する有効桁数。有効な値は`3`以上`15`以下です。{% amendment-disclaimer name="TickSize" /%} | +| `TransferRate` | 数値 | UInt32 | いいえ | このアカウントが発行した通貨を他のユーザが相互に送金する際に、これらのユーザに請求する[送金手数料](../../../../concepts/tokens/fungible-tokens/transfer-fees.md)。 | +| `WalletLocator` | 文字列 | UInt256 | いいえ | ユーザが設定できる任意の256bit値。 | +| `WalletSize` | 数値 | UInt32 | いいえ | 未使用。(コード上ではこのフィールドをサポートしていますが、設定する方法はありません)。 | ## AMMの特殊なAccountRootエントリ @@ -85,22 +87,22 @@ AccountRootフラグの多くは、[AccountSetトランザクション][]で変 AccountRootオブジェクトは`Flags`フィールドに以下のフラグを指定できます。 -| フラグ名 | 16進数値 | 10進数値 | 対応する[AccountSetのフラグ](../../transactions/types/accountset.md#accountsetのフラグ) | 説明 | -|-----------------------------------|--------------|----------|-------------------------------------|-------------------------------| -| `lsfAllowTrustLineClawback` | `0x80000000` | 2147483648 | `asfAllowTrustLineClawback` | このアカウントの[Clawback](../../../../concepts/tokens/fungible-tokens/clawing-back-tokens.md)を有効にします。 {% amendment-disclaimer name="Clawback" /%} | -| `lsfDefaultRipple` | `0x00800000` | 8388608 | `asfDefaultRipple` | このアドレスのトラストラインでデフォルトで[rippling](../../../../concepts/tokens/fungible-tokens/rippling.md)を有効にします。発行アドレスに必要です。他のアドレスでの使用は推奨されません。 | -| `lsfDepositAuth` | `0x01000000` | 16777216 | `asfDepositAuth` | このアカウントは、アカウントが送信するトランザクションと、[事前承認された](../../../../concepts/accounts/depositauth.md#事前承認)アカウントからの資金だけを受領します。([DepositAuth](../../../../concepts/accounts/depositauth.md)が有効になっています。) | -| `lsfDisableMaster` | `0x00100000` | 1048576 | `asfDisableMaster` | このアカウントのトランザクションの署名にマスターキーを使用することを禁止します。 | -| `lsfDisallowIncomingCheck` | `0x08000000` | 134217728 | `asfDisallowIncomingCheck` | このアカウントを宛先とするチェックの作成をブロックします。 {% amendment-disclaimer name="DisallowIncoming" /%} | -| `lsfDisallowIncomingNFTokenOffer` | `0x04000000` | 67108864 | `asfDisallowIncomingNFTokenOffer` | このアカウントを宛先とするNFTokenオファーの作成をブロックします。 {% amendment-disclaimer name="DisallowIncoming" /%} | -| `lsfDisallowIncomingPayChan` | `0x10000000` | 268435456 | `asfDisallowIncomingPayChan` | このアカウントを宛先とするペイメントチャネルの作成をブロックします。 {% amendment-disclaimer name="DisallowIncoming" /%} | -| `lsfDisallowIncomingTrustline` | `0x20000000` | 536870912 | `asfDisallowIncomingTrustline` | このアカウントに対するトラストラインの作成をブロックします。 {% amendment-disclaimer name="DisallowIncoming" /%} | -| `lsfDisallowXRP` | `0x00080000` | 524288 | `asfDisallowXRP` | クライアントアプリケーションはこのアカウントにXRPを送金しないでください。`rippled`により強制されるものではありません。 | -| `lsfGlobalFreeze` | `0x00400000` | 4194304 | `asfGlobalFreeze` | このアドレスが発行するすべての資産がフリーズされます。 | -| `lsfNoFreeze` | `0x00200000` | 2097152 | `asfNoFreeze` | このアドレスは、このアドレスに接続しているトラストラインをフリーズできません。一度有効にすると、無効にできません。 | -| `lsfPasswordSpent` | `0x00010000` | 65536 | (なし) | このアカウントは無料のSetRegularKeyトランザクションを使用しています。 | -| `lsfRequireAuth` | `0x00040000` | 262144 | `asfRequireAuth` | このアカウントは、他のユーザがこのアカウントのトークンを保有することを個別に承認する必要があります。 | -| `lsfRequireDestTag` | `0x00020000` | 131072 | `asfRequireDest` | 受信ペイメントには宛先タグの指定が必要です。 | +| フラグ名 | 16進数値 | 10進数値 | 対応する[AccountSetのフラグ](../../transactions/types/accountset.md#accountsetのフラグ) | 説明 | +| --------------------------------- | ------------ | ---------- | --------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `lsfAllowTrustLineClawback` | `0x80000000` | 2147483648 | `asfAllowTrustLineClawback` | このアカウントの[Clawback](../../../../concepts/tokens/fungible-tokens/clawing-back-tokens.md)を有効にします。 {% amendment-disclaimer name="Clawback" /%} | +| `lsfDefaultRipple` | `0x00800000` | 8388608 | `asfDefaultRipple` | このアドレスのトラストラインでデフォルトで[rippling](../../../../concepts/tokens/fungible-tokens/rippling.md)を有効にします。発行アドレスに必要です。他のアドレスでの使用は推奨されません。 | +| `lsfDepositAuth` | `0x01000000` | 16777216 | `asfDepositAuth` | このアカウントは、アカウントが送信するトランザクションと、[事前承認された](../../../../concepts/accounts/depositauth.md#事前承認)アカウントからの資金だけを受領します。([DepositAuth](../../../../concepts/accounts/depositauth.md)が有効になっています。) | +| `lsfDisableMaster` | `0x00100000` | 1048576 | `asfDisableMaster` | このアカウントのトランザクションの署名にマスターキーを使用することを禁止します。 | +| `lsfDisallowIncomingCheck` | `0x08000000` | 134217728 | `asfDisallowIncomingCheck` | このアカウントを宛先とするチェックの作成をブロックします。 {% amendment-disclaimer name="DisallowIncoming" /%} | +| `lsfDisallowIncomingNFTokenOffer` | `0x04000000` | 67108864 | `asfDisallowIncomingNFTokenOffer` | このアカウントを宛先とするNFTokenオファーの作成をブロックします。 {% amendment-disclaimer name="DisallowIncoming" /%} | +| `lsfDisallowIncomingPayChan` | `0x10000000` | 268435456 | `asfDisallowIncomingPayChan` | このアカウントを宛先とするペイメントチャネルの作成をブロックします。 {% amendment-disclaimer name="DisallowIncoming" /%} | +| `lsfDisallowIncomingTrustline` | `0x20000000` | 536870912 | `asfDisallowIncomingTrustline` | このアカウントに対するトラストラインの作成をブロックします。 {% amendment-disclaimer name="DisallowIncoming" /%} | +| `lsfDisallowXRP` | `0x00080000` | 524288 | `asfDisallowXRP` | クライアントアプリケーションはこのアカウントにXRPを送金しないでください。`rippled`により強制されるものではありません。 | +| `lsfGlobalFreeze` | `0x00400000` | 4194304 | `asfGlobalFreeze` | このアドレスが発行するすべての資産がフリーズされます。 | +| `lsfNoFreeze` | `0x00200000` | 2097152 | `asfNoFreeze` | このアドレスは、このアドレスに接続しているトラストラインをフリーズできません。一度有効にすると、無効にできません。 | +| `lsfPasswordSpent` | `0x00010000` | 65536 | (なし) | このアカウントは無料のSetRegularKeyトランザクションを使用しています。 | +| `lsfRequireAuth` | `0x00040000` | 262144 | `asfRequireAuth` | このアカウントは、他のユーザがこのアカウントのトークンを保有することを個別に承認する必要があります。 | +| `lsfRequireDestTag` | `0x00020000` | 131072 | `asfRequireDest` | 受信ペイメントには宛先タグの指定が必要です。 | ## {% $frontmatter.seo.title %}の準備金 @@ -112,7 +114,7 @@ AccountRootエントリの[準備金](../../../../concepts/accounts/reserves.md) AccountRootエントリのIDは、以下の値がこの順序で連結されている[SHA-512Half][]です。 -* Accountスペースキー(`0x0061`) -* アカウントのAccountID +- Accountスペースキー(`0x0061`) +- アカウントのAccountID {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/amendments.md b/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/amendments.md index bfa8d810c1..ac2c10a138 100644 --- a/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/amendments.md +++ b/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/amendments.md @@ -1,10 +1,12 @@ --- seo: - description: 有効化されているAmendmentと保留中のAmendmentのステータスを持つシングルトンオブジェクトです。 + description: 有効化されているAmendmentと保留中のAmendmentのステータスを持つシングルトンオブジェクトです。 labels: - - ブロックチェーン + - ブロックチェーン --- + # Amendments + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/LedgerFormats.cpp#L110-L113 "Source") `Amendments`オブジェクトタイプには、現在アクティブな[Amendment](../../../../concepts/networks-and-servers/amendments.md)のリストが含まれています。各レジャーバージョンには**最大で1つの**`Amendments`オブジェクトが含まれています。 @@ -13,30 +15,30 @@ labels: ```json { - "Amendments": [ - "42426C4D4F1009EE67080A9B7965B44656D7714D104A72F9B4369F97ABF044EE", - "4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373", - // (... Long list of enabled amendment IDs ...) - "03BDC0099C4E14163ADA272C1B6F6FABB448CC3E51F522F978041E4B57D9158C", - "35291ADD2D79EB6991343BDA0912269C817D0F094B02226C1C14AD2858962ED4" - ], - "Flags": 0, - "LedgerEntryType": "Amendments", - "Majorities": [ - { - "Majority": { - "Amendment": "7BB62DC13EC72B775091E9C71BF8CF97E122647693B50C5E87A80DFD6FCFAC50", - "CloseTime": 779561310 - } - }, - { - "Majority": { - "Amendment": "755C971C29971C9F20C6F080F2ED96F87884E40AD19554A5EBECDCEC8A1F77FE", - "CloseTime": 779561310 - } - } - ], - "index": "7DB0788C020F02780A673DC74757F23823FA3014C1866E72CC4CD8B226CD6EF4" + "Amendments": [ + "42426C4D4F1009EE67080A9B7965B44656D7714D104A72F9B4369F97ABF044EE", + "4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373", + // (... Long list of enabled amendment IDs ...) + "03BDC0099C4E14163ADA272C1B6F6FABB448CC3E51F522F978041E4B57D9158C", + "35291ADD2D79EB6991343BDA0912269C817D0F094B02226C1C14AD2858962ED4" + ], + "Flags": 0, + "LedgerEntryType": "Amendments", + "Majorities": [ + { + "Majority": { + "Amendment": "7BB62DC13EC72B775091E9C71BF8CF97E122647693B50C5E87A80DFD6FCFAC50", + "CloseTime": 779561310 + } + }, + { + "Majority": { + "Amendment": "755C971C29971C9F20C6F080F2ED96F87884E40AD19554A5EBECDCEC8A1F77FE", + "CloseTime": 779561310 + } + } + ], + "index": "7DB0788C020F02780A673DC74757F23823FA3014C1866E72CC4CD8B226CD6EF4" } ``` @@ -46,21 +48,21 @@ labels: [共通フィールド][]に加えて、{% $frontmatter.seo.title %}エントリは以下のフィールドを使用します。 -| 名前 | JSONの型 | [内部の型][] | 必須? | 説明 | -|---------------------|----------|--------------|--------|------| +| 名前 | JSONの型 | [内部の型][] | 必須? | 説明 | +| ------------------- | -------- | ------------ | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `Amendments` | 配列 | VECTOR256 | いいえ | _(省略可)_ 現在有効なすべてのAmendmentの256ビット[Amendment ID](../../../../concepts/networks-and-servers/amendments.md)からなる配列。省略されている場合は、有効なAmendmentがありません。 | -| `Flags` | 数値 | UInt32 | はい | ブール値フラグのビットマップ。Amendmentオブジェクトタイプにはフラグが定義されていないため、この値は常に`0`です。 | -| `LedgerEntryType` | 文字列 | UInt16 | はい | 値が`0x0066`(文字列`Amendments`にマッピング)の場合は、このオブジェクトがXRP **Ledgerに対するAmendmentのステータスを記述していることを示します**。 | -| `Majorities` | 配列 | Array | いいえ | _(省略可)_ 過半数の支持を得ているがまだ有効になっていないAmendmentのステータスを記述するオブジェクトの配列。省略されている場合は、過半数の支持を得ている保留中のAmendmentがありません。 | -| `PreviousTxnID` | 文字列 | UInt256 | いいえ | このエントリを最後に変更したトランザクションの識別ハッシュ。{% amendment-disclaimer name="fixPreviousTxnID" /%} | -| `PreviousTxnLgrSeq` | 数値 | UInt32 | いいえ | このエントリを最後に変更したトランザクションが含まれる[レジャーインデックス](../ledger-header.md)。{% amendment-disclaimer name="fixPreviousTxnID" /%} | +| `Flags` | 数値 | UInt32 | はい | ブール値フラグのビットマップ。Amendmentオブジェクトタイプにはフラグが定義されていないため、この値は常に`0`です。 | +| `LedgerEntryType` | 文字列 | UInt16 | はい | 値が`0x0066`(文字列`Amendments`にマッピング)の場合は、このオブジェクトがXRP **Ledgerに対するAmendmentのステータスを記述していることを示します**。 | +| `Majorities` | 配列 | Array | いいえ | _(省略可)_ 過半数の支持を得ているがまだ有効になっていないAmendmentのステータスを記述するオブジェクトの配列。省略されている場合は、過半数の支持を得ている保留中のAmendmentがありません。 | +| `PreviousTxnID` | 文字列 | UInt256 | いいえ | このエントリを最後に変更したトランザクションの識別ハッシュ。{% amendment-disclaimer name="fixPreviousTxnID" /%} | +| `PreviousTxnLgrSeq` | 数値 | UInt32 | いいえ | このエントリを最後に変更したトランザクションが含まれる[レジャーインデックス](../ledger-header.md)。{% amendment-disclaimer name="fixPreviousTxnID" /%} | `Majorities`フィールドにメンバーが含まれている場合、各メンバーは`Majority`フィールドのみが含まれているオブジェクトです。このフィールドの内容は、以下のフィールドからなるネストオブジェクトです。 -| 名前 | JSONの型 | [内部の型][] | 説明 | -|-------------------|----------|--------------|-------------| -| `Amendment` | 文字列 | UInt256 | 保留中のAmendmentのAmendment ID。 | -| `CloseTime` | 数値 | UInt32 | このAmendmentが最後に過半数の支持を得たレジャーバージョンの[`close_time`フィールド](../ledger-header.md)。 | +| 名前 | JSONの型 | [内部の型][] | 説明 | +| ----------- | -------- | ------------ | ---------------------------------------------------------------------------------------------------------- | +| `Amendment` | 文字列 | UInt256 | 保留中のAmendmentのAmendment ID。 | +| `CloseTime` | 数値 | UInt32 | このAmendmentが最後に過半数の支持を得たレジャーバージョンの[`close_time`フィールド](../ledger-header.md)。 | [Amendmentプロセス](../../../../concepts/networks-and-servers/amendments.md#amendmentプロセス)では、80%以上のバリデータが新しいAmendmentを支持してバリデータのコンセンサスが得られると、`tfGotMajority`フラグを指定した[EnableAmendment][]疑似トランザクションを使用してこの新しいAmendmentが`Majorities`フィールドに追加されます。保留中のAmendmentの支持が80%を下回ると、`tfLostMajority`フラグが指定された[EnableAmendment][]疑似トランザクションによりそのAmendmentが`Majorities`配列から削除されます。Amendmentが`Majorities`フィールドに含まれている状態が2週間以上継続している場合、フラグが指定されていない[EnableAmendment][]疑似トランザクションによってそのAmendmentは`Majorities`から削除され、`Amendments`フィールドに恒久的に追加されます。 @@ -70,12 +72,10 @@ labels: {% code-page-name /%}エントリに定義されているフラグはありません。 - ## {% $frontmatter.seo.title %}の準備金 {% code-page-name /%}エントリは準備金が不要です。 - ## Amendment IDのフォーマット `Amendments`オブジェクトIDは、`Amendments`スペースキー(`0x0066`)のハッシュのみです。つまり、レジャーの`Amendments`オブジェクトのIDは常に次の値になります: diff --git a/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/amm.md b/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/amm.md index 929c5a9cad..04d6e35032 100644 --- a/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/amm.md +++ b/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/amm.md @@ -1,10 +1,12 @@ --- seo: - description: 自動マーケットメーカー(AMM)インスタンスの定義と詳細。 + description: 自動マーケットメーカー(AMM)インスタンスの定義と詳細。 labels: - - AMM + - AMM --- + # AMM + [[ソース]](https://github.com/xrplf/rippled/blob/c1e4bfb08bcc9f187d794a71d653003a6148dc68/src/ripple/protocol/impl/LedgerFormats.cpp#L265-L275 "Source") `AMM`レジャーエントリは、単一の[自動マーケットメーカー](../../../../concepts/tokens/decentralized-exchange/automated-market-makers.md)(AMM)インスタンスを表します。これは常に[特殊なAccountRootエントリ](accountroot.md#ammの特殊なaccountrootエントリ)と対になっています。 @@ -60,41 +62,39 @@ labels: [共通フィールド][]に加えて、{% $frontmatter.seo.title %}エントリは以下のフィールドを使用します。 -| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | -|:--------------------|:-------------|:-------------|:-------|--------------| -| `Asset` | オブジェクト | STIssue | はい | このAMMが保有する2つのアセットのうちの1つの定義。JSONでは、`currency`と`issuer`フィールドを持つオブジェクトになります。 | -| `Asset2` | オブジェクト | STIssue | はい | このAMMが保有するもう一つの資産の定義。JSONでは、`currency`と`issuer`フィールドを持つオブジェクトになります。 | -| `Account` | 文字列 | AccountID | はい | このAMMの資産を保有する[特殊なアカウント](accountroot.md#ammの特殊なaccountrootエントリ)のアドレス。 | -| `AuctionSlot` | オブジェクト | Object | いいえ | オークションスロットの現在の所有者の詳細。[オークションスロットオブジェクト](#オークションスロットオブジェクト)形式です。| +| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | +| :------------------ | :----------- | :----------- | :----- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Asset` | オブジェクト | STIssue | はい | このAMMが保有する2つのアセットのうちの1つの定義。JSONでは、`currency`と`issuer`フィールドを持つオブジェクトになります。 | +| `Asset2` | オブジェクト | STIssue | はい | このAMMが保有するもう一つの資産の定義。JSONでは、`currency`と`issuer`フィールドを持つオブジェクトになります。 | +| `Account` | 文字列 | AccountID | はい | このAMMの資産を保有する[特殊なアカウント](accountroot.md#ammの特殊なaccountrootエントリ)のアドレス。 | +| `AuctionSlot` | オブジェクト | Object | いいえ | オークションスロットの現在の所有者の詳細。[オークションスロットオブジェクト](#オークションスロットオブジェクト)形式です。 | | `LPTokenBalance` | [通貨額][] | Amount | はい | AMMインスタンスの流動性供給者トークンの発行残高の合計。このトークンの保有者は、保有量に比例してAMMの取引手数料に投票したり、取引手数料の徴収とともに増えていくAMMの資産の一部とトークンを交換したりすることができます。 | -| `PreviousTxnID` | 文字列 | UInt256 | いいえ | このエントリを最後に変更したトランザクションの識別ハッシュ。{% amendment-disclaimer name="fixPreviousTxnID" /%} | -| `PreviousTxnLgrSeq` | 数値 | UInt32 | いいえ | このエントリを最後に変更したトランザクションが含まれる[レジャーインデックス](../ledger-header.md)。{% amendment-disclaimer name="fixPreviousTxnID" /%} | -| `TradingFee` | 数値 | UInt16 | はい | AMMインスタンスに対する取引に課される手数料のパーセンテージを1/100,000の単位で指定します。最大値は1000で、これは1%の手数料となります。 | -| `VoteSlots` | 配列 | Array | いいえ | プールの取引手数料に関する投票を表す、投票オブジェクトのリスト。| - +| `PreviousTxnID` | 文字列 | UInt256 | いいえ | このエントリを最後に変更したトランザクションの識別ハッシュ。{% amendment-disclaimer name="fixPreviousTxnID" /%} | +| `PreviousTxnLgrSeq` | 数値 | UInt32 | いいえ | このエントリを最後に変更したトランザクションが含まれる[レジャーインデックス](../ledger-header.md)。{% amendment-disclaimer name="fixPreviousTxnID" /%} | +| `TradingFee` | 数値 | UInt16 | はい | AMMインスタンスに対する取引に課される手数料のパーセンテージを1/100,000の単位で指定します。最大値は1000で、これは1%の手数料となります。 | +| `VoteSlots` | 配列 | Array | いいえ | プールの取引手数料に関する投票を表す、投票オブジェクトのリスト。 | ### AuctionSlotオブジェクト `AuctionSlot`フィールドは、以下のネストしたフィールドを持つオブジェクトを含んでいます。 -| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | -|:----------------|:--------------------|:------------------|:----------|:--| -| `Account` | 文字列 - アドレス | AccountID | はい | このオークションスロットの現在の所有者。 | -| `AuthAccounts` | 配列 | Array | いいえ | AMMインスタンスに対して取引手数料を割引した価格で取引することを許可された、最大4つの追加アカウントのリスト。 | -| `DiscountedFee` | 文字列 | UInt32 | はい | オークションスロットの所有者に請求される取引手数料で、`TradingFee`と同じフォーマットです。これは通常の取引手数料の1/10です。 | -| `Price` | [通貨額][] | Amount | はい | オークションスロットの所有者がこのスロットを落札するために支払った金額(LPトークン)。 | -| `Expiration` | 文字列 | UInt32 | はい | このスロットの有効期限が切れる[Rippleエポック以降の経過秒数][]で指定した時刻。 | +| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | +| :-------------- | :---------------- | :----------- | :----- | :--------------------------------------------------------------------------------------------------------------------------- | +| `Account` | 文字列 - アドレス | AccountID | はい | このオークションスロットの現在の所有者。 | +| `AuthAccounts` | 配列 | Array | いいえ | AMMインスタンスに対して取引手数料を割引した価格で取引することを許可された、最大4つの追加アカウントのリスト。 | +| `DiscountedFee` | 文字列 | UInt32 | はい | オークションスロットの所有者に請求される取引手数料で、`TradingFee`と同じフォーマットです。これは通常の取引手数料の1/10です。 | +| `Price` | [通貨額][] | Amount | はい | オークションスロットの所有者がこのスロットを落札するために支払った金額(LPトークン)。 | +| `Expiration` | 文字列 | UInt32 | はい | このスロットの有効期限が切れる[Rippleエポック以降の経過秒数][]で指定した時刻。 | ## VoteEntryオブジェクト `VoteSlots`フィールドには、以下のフィールドを持つ`VoteEntry`オブジェクトの配列が格納されます。 -| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | -|:-----------------|:----------------|:-----------|:------|------| -| `Account` | 文字列 - アドレス | AccountID | はい | 投票を行ったアカウント | -| `TradingFee` | 数値 | UInt16 | はい | 提案されている取引手数料。単位は1/100,000で、1の値は0.001%に相当します。最大値は1000で、1%の手数料を示します。 | -| `VoteWeight` | 数値 | UInt32 | はい | 投票の重みを1/100,000単位で表します。例えば、値が1234の場合、この投票は重み付けされた総投票数の1.234%としてカウントされます。重み付けは、そのアカウントが所有するこのAMMのLPトークンの割合によって決まります。最大値は100000です。 | - +| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | +| :----------- | :---------------- | :----------- | :---- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Account` | 文字列 - アドレス | AccountID | はい | 投票を行ったアカウント | +| `TradingFee` | 数値 | UInt16 | はい | 提案されている取引手数料。単位は1/100,000で、1の値は0.001%に相当します。最大値は1000で、1%の手数料を示します。 | +| `VoteWeight` | 数値 | UInt32 | はい | 投票の重みを1/100,000単位で表します。例えば、値が1234の場合、この投票は重み付けされた総投票数の1.234%としてカウントされます。重み付けは、そのアカウントが所有するこのAMMのLPトークンの割合によって決まります。最大値は100000です。 | ## {% $frontmatter.seo.title %}の準備金 diff --git a/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/bridge.md b/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/bridge.md index 548cd6ee44..d7b5392b7d 100644 --- a/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/bridge.md +++ b/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/bridge.md @@ -2,19 +2,20 @@ html: bridge.html parent: ledger-entry-types.html seo: - description: Bridgeオブジェクトは、2つのブロックチェーンを接続し、価値の移動を効率的に行うための1つのクロスチェーンブリッジを表します。 + description: Bridgeオブジェクトは、2つのブロックチェーンを接続し、価値の移動を効率的に行うための1つのクロスチェーンブリッジを表します。 labels: - 相互運用性 status: not_enabled --- + # Bridge + _([XChainBridge Amendment][] {% not-enabled /%} が必要です)_ [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/LedgerFormats.cpp#L286-L300 "ソース") `Bridge`レジャーエントリは、XRP Ledgerをサイドチェーンなどの別のブロックチェーンと接続し、XRPやその他のトークン(IOU)の形で2つのブロックチェーン間を効率的に移動することを可能にする、1つのクロスチェーンブリッジを表します。 - ## Bridge JSONの例 ```json @@ -44,29 +45,27 @@ _([XChainBridge Amendment][] {% not-enabled /%} が必要です)_ } ``` - ## Bridgeのフィールド [共通フィールド](../common-fields.md)に加えて、{% code-page-name /%}エントリは次のフィールドを持ちます。 -| フィールド | JSONの型 | 内部の型 | 必須? | 説明 | -|:---------------------------|:-------------|:--------------|:------|:----| -| `Account` | 文字列 | Account | はい | ブロックチェーン上で`XChainCreateBridge`トランザクションを送信したアカウント。 | -| `MinAccountCreateAmount` | [通貨額][] | Amount | いいえ | `XChainAccountCreateCommit`トランザクションに必要な最小金額。これが存在しない場合、`XChainAccountCreateCommit`トランザクションは失敗します。このフィールドはXRP-XRPブリッジにのみ存在できます。 | -| `SignatureReward` | [通貨額][] | Amount | はい | クロスチェーン送金のために署名を提供した場合、またはクロスチェーン報酬のために署名を提供した場合に支払われる報酬の合計額(XRP単位)。この金額は署名者の間で分配されます。 | -| `XChainAccountClaimCount` | 数値 | UInt64 | はい | アカウント作成トランザクションの実行順序を決めるために使用されるカウンタ。`XChainAccountCreateCommit`トランザクションが送信先チェーンで"claim"されるたびにインクリメントされます。「請求(claim)」トランザクションが宛先チェーンで実行されると、`XChainAccountClaimCount`は`XChainAccountClaimCount`が送信元チェーンで実行された時の`XChainAccountCreateCount`の値と一致しなければなりません。これにより、`XChainAccountCreateCommit`トランザクションが送信元チェーンで実行されたのと同じ順序で請求が実行されるようになり、トランザクションのリプレイを防ぐことができます。 | -| `XChainAccountCreateCount` | 数値 | UInt64 | はい | アカウント作成トランザクションの実行順序を決めるために使用されるカウンタ。XChainAccountCreateCommit`トランザクションが実行される度にインクリメントされます。 | -| `XChainBridge` | XChainBridge | XChain_Bridge | はい | このオブジェクトが関連するブリッジのドアアカウントと資産。 | -| `XChainClaimID` | 数値 | UInt64 | はい | 次に作成される`XChainClaimID`の値。 | - +| フィールド | JSONの型 | 内部の型 | 必須? | 説明 | +| :------------------------- | :----------- | :------------ | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Account` | 文字列 | Account | はい | ブロックチェーン上で`XChainCreateBridge`トランザクションを送信したアカウント。 | +| `MinAccountCreateAmount` | [通貨額][] | Amount | いいえ | `XChainAccountCreateCommit`トランザクションに必要な最小金額。これが存在しない場合、`XChainAccountCreateCommit`トランザクションは失敗します。このフィールドはXRP-XRPブリッジにのみ存在できます。 | +| `SignatureReward` | [通貨額][] | Amount | はい | クロスチェーン送金のために署名を提供した場合、またはクロスチェーン報酬のために署名を提供した場合に支払われる報酬の合計額(XRP単位)。この金額は署名者の間で分配されます。 | +| `XChainAccountClaimCount` | 数値 | UInt64 | はい | アカウント作成トランザクションの実行順序を決めるために使用されるカウンタ。`XChainAccountCreateCommit`トランザクションが送信先チェーンで"claim"されるたびにインクリメントされます。「請求(claim)」トランザクションが宛先チェーンで実行されると、`XChainAccountClaimCount`は`XChainAccountClaimCount`が送信元チェーンで実行された時の`XChainAccountCreateCount`の値と一致しなければなりません。これにより、`XChainAccountCreateCommit`トランザクションが送信元チェーンで実行されたのと同じ順序で請求が実行されるようになり、トランザクションのリプレイを防ぐことができます。 | +| `XChainAccountCreateCount` | 数値 | UInt64 | はい | アカウント作成トランザクションの実行順序を決めるために使用されるカウンタ。XChainAccountCreateCommit`トランザクションが実行される度にインクリメントされます。 | +| `XChainBridge` | XChainBridge | XChain_Bridge | はい | このオブジェクトが関連するブリッジのドアアカウントと資産。 | +| `XChainClaimID` | 数値 | UInt64 | はい | 次に作成される`XChainClaimID`の値。 | ### XChainBridgeのフィールド -| フィールド | JSONの型 | 内部の型 | 必須? | 説明 | -|:--------------------|:---------|:--------|:------|:----------------| -| `IssuingChainDoor` | 文字列 | Account | はい | 発行チェーンのドアアカウント。XRP-XRPブリッジの場合、これはジェネシスアカウント(ネットワークが最初に開始されたときに作成されるアカウントで、すべてのXRPを含む)でなければなりません。 | -| `IssuingChainIssue` | Issue | Issue | はい | 発行チェーン上で作成され、バーンされる資産。IOU-IOUブリッジの場合、供給問題を避けるため、資産の発行者は発行チェーンのドアアカウントでなければなりません。 | -| `LockingChainDoor` | 文字列 | Account | はい | ロックチェーンのドアアカウント。 | -| `LockingChainIssue` | Issue | Issue | はい | ロックチェーンでロック、アンロックされる資産。 | +| フィールド | JSONの型 | 内部の型 | 必須? | 説明 | +| :------------------ | :------- | :------- | :---- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `IssuingChainDoor` | 文字列 | Account | はい | 発行チェーンのドアアカウント。XRP-XRPブリッジの場合、これはジェネシスアカウント(ネットワークが最初に開始されたときに作成されるアカウントで、すべてのXRPを含む)でなければなりません。 | +| `IssuingChainIssue` | Issue | Issue | はい | 発行チェーン上で作成され、バーンされる資産。IOU-IOUブリッジの場合、供給問題を避けるため、資産の発行者は発行チェーンのドアアカウントでなければなりません。 | +| `LockingChainDoor` | 文字列 | Account | はい | ロックチェーンのドアアカウント。 | +| `LockingChainIssue` | Issue | Issue | はい | ロックチェーンでロック、アンロックされる資産。 | {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/check.md b/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/check.md index 5c8fa4a1e8..8bb8229d01 100644 --- a/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/check.md +++ b/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/check.md @@ -2,11 +2,13 @@ html: check.html parent: ledger-entry-types.html seo: - description: 送信先が清算して資金にできるCheckです。 + description: 送信先が清算して資金にできるCheckです。 labels: - Checks --- + # Check + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/LedgerFormats.cpp#L157-L170 "Source") _([Checks Amendment][]が必要です)_ @@ -38,40 +40,39 @@ _([Checks Amendment][]が必要です)_ [共通フィールド][]に加えて、{% $frontmatter.seo.title %}エントリは以下のフィールドを使用します。 -| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | -|:--------------------|:---------------------|:-----------|:-------|:----------------| -| `Account` | 文字列 | Account | はい | Checkの送金元。Checkを換金するとこのアドレスの残高から引き落とされます。 | -| `Destination` | 文字列 | Account | はい | Checkの指定受取人。このアドレスだけが[CheckCashトランザクション][]を使用してCheckを換金できます。 | -| `DestinationNode` | 文字列 | UInt64 | いいえ | _(省略可)_ 送金先の所有者ディレクトリが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。 | -| `DestinationTag` | 数値 | UInt32 | いいえ | _(省略可)_ このCheckの送金先(送金先アドレスのホスティングされている受取人など)を詳しく指定するための任意のタグ。 | -| `Expiration` | 数値 | UInt32 | いいえ | _(省略可)_ 経過後にこのCheckが有効期限切れとみなされる時刻を示します。詳細は[時間の指定][]をご覧ください。 | -| `InvoiceID` | 文字列 | UInt256 | いいえ | _(省略可)_ このCheckの具体的な理由または識別子として送金元が指定する任意の256ビットハッシュ。 | -| `LedgerEntryType` | 文字列 | UInt16 | はい | 値`0x0043`が文字列`Check`にマッピングされている場合は、このオブジェクトがCheckオブジェクトであることを示します。 | -| `OwnerNode` | 文字列 | UInt64 | はい | 送金元の所有者ディレクトリが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。**注記:** このオブジェクトには、オブジェクトを含む所有者ディレクトリへの直接リンクは含まれていません。これは、その値を`Account`から取得できるためです。 | -| `PreviousTxnID` | 文字列 | UInt256 | はい | 最後にこのオブジェクトを変更したトランザクションの識別用ハッシュ。 | -| `PreviousTxnLgrSeq` | 数値 | UInt32 | はい | 最後にこのオブジェクトを変更したトランザクションを含む[レジャーインデックス][]。 | -| `SendMax` | 文字列またはオブジェクト | Amount | はい | このCheckで送金元から引き落とすことができる最大通貨額。Checkの換金が成功すると、送金先に同じ通貨で最大この額までの資金が入金されます。 | -| `Sequence` | 数値 | UInt32 | はい | このCheckを作成した[CheckCreateトランザクション][]のシーケンス番号。 | -| `SourceTag` | 数値 | UInt32 | いいえ | _(省略可)_ このCheckの送金元(送金元アドレスのホスティングされている返金時の受取人など)を詳しく指定するための任意のタグ。 | +| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | +| :------------------ | :----------------------- | :----------- | :----- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Account` | 文字列 | Account | はい | Checkの送金元。Checkを換金するとこのアドレスの残高から引き落とされます。 | +| `Destination` | 文字列 | Account | はい | Checkの指定受取人。このアドレスだけが[CheckCashトランザクション][]を使用してCheckを換金できます。 | +| `DestinationNode` | 文字列 | UInt64 | いいえ | _(省略可)_ 送金先の所有者ディレクトリが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。 | +| `DestinationTag` | 数値 | UInt32 | いいえ | _(省略可)_ このCheckの送金先(送金先アドレスのホスティングされている受取人など)を詳しく指定するための任意のタグ。 | +| `Expiration` | 数値 | UInt32 | いいえ | _(省略可)_ 経過後にこのCheckが有効期限切れとみなされる時刻を示します。詳細は[時間の指定][]をご覧ください。 | +| `InvoiceID` | 文字列 | UInt256 | いいえ | _(省略可)_ このCheckの具体的な理由または識別子として送金元が指定する任意の256ビットハッシュ。 | +| `LedgerEntryType` | 文字列 | UInt16 | はい | 値`0x0043`が文字列`Check`にマッピングされている場合は、このオブジェクトがCheckオブジェクトであることを示します。 | +| `OwnerNode` | 文字列 | UInt64 | はい | 送金元の所有者ディレクトリが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。**注記:** このオブジェクトには、オブジェクトを含む所有者ディレクトリへの直接リンクは含まれていません。これは、その値を`Account`から取得できるためです。 | +| `PreviousTxnID` | 文字列 | UInt256 | はい | 最後にこのオブジェクトを変更したトランザクションの識別用ハッシュ。 | +| `PreviousTxnLgrSeq` | 数値 | UInt32 | はい | 最後にこのオブジェクトを変更したトランザクションを含む[レジャーインデックス][]。 | +| `SendMax` | 文字列またはオブジェクト | Amount | はい | このCheckで送金元から引き落とすことができる最大通貨額。Checkの換金が成功すると、送金先に同じ通貨で最大この額までの資金が入金されます。 | +| `Sequence` | 数値 | UInt32 | はい | このCheckを作成した[CheckCreateトランザクション][]のシーケンス番号。 | +| `SourceTag` | 数値 | UInt32 | いいえ | _(省略可)_ このCheckの送金元(送金元アドレスのホスティングされている返金時の受取人など)を詳しく指定するための任意のタグ。 | ## {% $frontmatter.seo.title %}のフラグ {% code-page-name /%}エントリに定義されているフラグはありません。 - ## {% $frontmatter.seo.title %}の準備金 {% code-page-name /%}エントリは、そのエントリが台帳上にある限り、Checkの送金人の所有者準備金の1つとしてカウントされます。この準備金は、小切手が換金されるか、またはキャンセルされたときに解放されます。 - ## Check IDのフォーマット + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/Indexes.cpp#L193-L200 "Source") `Check`オブジェクトのIDは、以下の値がこの順序で連結されている[SHA-512Half][]です。 -* Checkスペースキー(`0x0043`) -* `Check`オブジェクトを作成した[CheckCreateトランザクション][]の送信者のAccountID。 -* `Check`オブジェクトを作成した[CheckCreateトランザクション][]のシーケンス番号。 - CheckCreateトランザクションが[Ticket](../../../../concepts/accounts/tickets.md)を使用する場合は、代わりに`TicketSequence`値を使用します。 +- Checkスペースキー(`0x0043`) +- `Check`オブジェクトを作成した[CheckCreateトランザクション][]の送信者のAccountID。 +- `Check`オブジェクトを作成した[CheckCreateトランザクション][]のシーケンス番号。 + CheckCreateトランザクションが[Ticket](../../../../concepts/accounts/tickets.md)を使用する場合は、代わりに`TicketSequence`値を使用します。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/credential.md b/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/credential.md index 1b77d42ae9..1b48158b4c 100644 --- a/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/credential.md +++ b/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/credential.md @@ -1,8 +1,9 @@ --- seo: - description: 支払いの事前承認に使用できる、資格発行者アカウントによる対象アカウントについての証明。 + description: 支払いの事前承認に使用できる、資格発行者アカウントによる対象アカウントについての証明。 status: not_enabled --- + # Credential `Credential`エントリは[資格情報](../../../../concepts/decentralized-storage/credentials.md)を表し、_対象(subject)_ アカウントについての _資格発行者(credential issuer)_ アカウントからの証明を含みます。この証明の意味は発行者によって定義されます。 @@ -11,16 +12,16 @@ status: not_enabled ```json { - "LedgerEntryType": "Credential", - "Flags": 65536, - "Subject": "rsUiUMpnrgxQp24dJYZDhmV4bE3aBtQyt8", - "Issuer": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "IssuerNode": "0000000000000000", - "CredentialType": "6D795F63726564656E7469616C", - "PreviousTxnID": "8089451B193AAD110ACED3D62BE79BB523658545E6EE8B7BB0BE573FED9BCBFB", - "PreviousTxnLgrSeq": 234644, - "SubjectNode": "0000000000000000", - "index": "A738A1E6E8505E1FC77BBB9FEF84FF9A9C609F2739E0F9573CDD6367100A0AA9" + "LedgerEntryType": "Credential", + "Flags": 65536, + "Subject": "rsUiUMpnrgxQp24dJYZDhmV4bE3aBtQyt8", + "Issuer": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "IssuerNode": "0000000000000000", + "CredentialType": "6D795F63726564656E7469616C", + "PreviousTxnID": "8089451B193AAD110ACED3D62BE79BB523658545E6EE8B7BB0BE573FED9BCBFB", + "PreviousTxnLgrSeq": 234644, + "SubjectNode": "0000000000000000", + "index": "A738A1E6E8505E1FC77BBB9FEF84FF9A9C609F2739E0F9573CDD6367100A0AA9" } ``` @@ -30,24 +31,24 @@ status: not_enabled [共通フィールド](../common-fields.md)に加えて、{% code-page-name /%}エントリには以下のフィールドがあります。 -| フィールド | JSON型 | [内部の型][] | 必須? | 説明 | -| :------------------ | :-------------------- | :----------- | :----- | ---- | -| `CredentialType` | 文字列 - 16進数 | Blob | はい | このエントリが表す資格情報の種類を定義する任意のデータ。最小長は1バイトで最大長は64バイトです。 | -| `Expiration` | 数値 | UInt32 | いいえ | 資格情報が期限切れとなる時間([Rippleエポック以降の経過秒数][])。 | -| `Issuer` | 文字列 - [アドレス][] | AccountID | はい | この資格情報を発行したアカウント。 | -| `IssuerNode` | 文字列 | UInt64 | はい | ディレクトリが複数のページで構成される場合に、発行者のディレクトリのどのページがこのエントリにリンクしているかを示すヒント。 | -| `PreviousTxnID` | 文字列 - [ハッシュ][] | UInt256 | はい | このエントリを最後に変更したトランザクションの識別ハッシュ。 | -| `PreviousTxnLgrSeq` | 数値 | UInt32 | はい | このオブジェクトを最後に変更したトランザクションを含む[レジャーインデックス][]。 | -| `Subject` | 文字列 - [アドレス][] | AccountID | はい | この資格情報の対象となるアカウント。 | +| フィールド | JSON型 | [内部の型][] | 必須? | 説明 | +| :------------------ | :-------------------- | :----------- | :----- | -------------------------------------------------------------------------------------------------------------------------------- | +| `CredentialType` | 文字列 - 16進数 | Blob | はい | このエントリが表す資格情報の種類を定義する任意のデータ。最小長は1バイトで最大長は64バイトです。 | +| `Expiration` | 数値 | UInt32 | いいえ | 資格情報が期限切れとなる時間([Rippleエポック以降の経過秒数][])。 | +| `Issuer` | 文字列 - [アドレス][] | AccountID | はい | この資格情報を発行したアカウント。 | +| `IssuerNode` | 文字列 | UInt64 | はい | ディレクトリが複数のページで構成される場合に、発行者のディレクトリのどのページがこのエントリにリンクしているかを示すヒント。 | +| `PreviousTxnID` | 文字列 - [ハッシュ][] | UInt256 | はい | このエントリを最後に変更したトランザクションの識別ハッシュ。 | +| `PreviousTxnLgrSeq` | 数値 | UInt32 | はい | このオブジェクトを最後に変更したトランザクションを含む[レジャーインデックス][]。 | +| `Subject` | 文字列 - [アドレス][] | AccountID | はい | この資格情報の対象となるアカウント。 | | `SubjectNode` | 文字列 | UInt64 | はい | ディレクトリが複数のページで構成される場合に、対象の所有者ディレクトリのどのページがこのエントリにリンクしているかを示すヒント。 | -| `URI` | 文字列 - 16進数 | Blob | いいえ | 資格情報に関する任意の追加データ(例:W3C形式の検証可能な資格情報を取得できるURL)。 | +| `URI` | 文字列 - 16進数 | Blob | いいえ | 資格情報に関する任意の追加データ(例:W3C形式の検証可能な資格情報を取得できるURL)。 | ## Credentialのフラグ Credentialエントリでは、`Flags`フィールドに以下のフラグを組み合わせることができます: -| フラグ名 | 16進値 | 10進値 | 説明 | -| ------------- | ------------ | ------ | ---- | +| フラグ名 | 16進値 | 10進値 | 説明 | +| ------------- | ------------ | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `lsfAccepted` | `0x00010000` | 65536 | 有効な場合、資格情報の対象者が資格情報を承認したことを示します。そうでない場合、発行者が資格情報を作成しましたが、対象者がまだ承認していないため、有効ではありません。 | ## Credentialの準備金 @@ -58,9 +59,9 @@ Credentialエントリでは、`Flags`フィールドに以下のフラグを組 Credentialエントリの一意のIDは、以下の値を順番に連結したもののSHA-512Halfハッシュです。 -* `Credential`スペースキー(`0x0044`) -* `Subject`フィールドの値 -* `Issuer`フィールドの値 -* `CredentialType`フィールドの値 +- `Credential`スペースキー(`0x0044`) +- `Subject`フィールドの値 +- `Issuer`フィールドの値 +- `CredentialType`フィールドの値 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/depositpreauth.md b/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/depositpreauth.md index 316675959b..771c9cb9ef 100644 --- a/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/depositpreauth.md +++ b/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/depositpreauth.md @@ -2,11 +2,13 @@ html: depositpreauth-object.html parent: ledger-entry-types.html seo: - description: 承認を必要とするアカウントへの送金ペイメントの事前承認の記録です。 + description: 承認を必要とするアカウントへの送金ペイメントの事前承認の記録です。 labels: - セキュリティ --- + # DepositPreauth + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/LedgerFormats.cpp#L172-L178 "Source") `DepositPreauth`エントリは、1つのアカウントからの事前承認を追跡します。常に[DepositPreauthトランザクション][]を送信することで事前承認を作成できますが、[Deposit Authorization](../../../../concepts/accounts/depositauth.md)を使用していない限り、効果はありません。 @@ -20,31 +22,36 @@ labels: {% tabs %} {% tab label="個別アカウントの事前承認" %} -```json -{ - "LedgerEntryType" : "DepositPreauth", - "Account" : "rsUiUMpnrgxQp24dJYZDhmV4bE3aBtQyt8", - "Authorize" : "rEhxGqkqPPSxQ3P25J66ft5TwpzV14k2de", - "Flags" : 0, - "OwnerNode" : "0000000000000000", - "PreviousTxnID" : "3E8964D5A86B3CD6B9ECB33310D4E073D64C865A5B866200AD2B7E29F8326702", - "PreviousTxnLgrSeq" : 7, - "index" : "4A255038CC3ADCC1A9C91509279B59908251728D0DAADB248FFE297D0F7E068C" -} -``` -{% /tab %} -{% tab label="資格情報による事前承認" %} ```json { "LedgerEntryType": "DepositPreauth", "Account": "rsUiUMpnrgxQp24dJYZDhmV4bE3aBtQyt8", - "AuthorizeCredentials": [{ - "Credential": { - "Issuer": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "CredentialType": "6D795F63726564656E7469616C" + "Authorize": "rEhxGqkqPPSxQ3P25J66ft5TwpzV14k2de", + "Flags": 0, + "OwnerNode": "0000000000000000", + "PreviousTxnID": "3E8964D5A86B3CD6B9ECB33310D4E073D64C865A5B866200AD2B7E29F8326702", + "PreviousTxnLgrSeq": 7, + "index": "4A255038CC3ADCC1A9C91509279B59908251728D0DAADB248FFE297D0F7E068C" +} +``` + +{% /tab %} + +{% tab label="資格情報による事前承認" %} + +```json +{ + "LedgerEntryType": "DepositPreauth", + "Account": "rsUiUMpnrgxQp24dJYZDhmV4bE3aBtQyt8", + "AuthorizeCredentials": [ + { + "Credential": { + "Issuer": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "CredentialType": "6D795F63726564656E7469616C" + } } - }], + ], "Flags": 0, "OwnerNode": "0000000000000000", "PreviousTxnID": "FD2A4E9E317C7FEF112D22ADEB9E2C6DC3C2AB6E2AD96A50B76EBB9DEB39EA77", @@ -52,6 +59,7 @@ labels: "index": "F2B8550ADF60FD268157262C1C54E1D1014BDEA361CE848B6F48556348327E5F" } ``` + {% /tab %} {% /tabs %} @@ -59,15 +67,15 @@ labels: [共通フィールド][]に加えて、{% $frontmatter.seo.title %}エントリは以下のフィールドを使用します。 -| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | -| :--------------------- | :-------------------- | :----------- | :----- | ---- | -| `Account` | 文字列 | Account | はい | 事前承認を付与したアカウント。(事前承認支払の宛先) | -| `Authorize` | 文字列 | Account | いいえ | 事前承認を受けたアカウント。(事前承認支払の送金元) | -| `AuthorizeCredentials` | 配列 | Array | いいえ | 事前承認を受けた資格情報のセット。(これらの資格情報を持つアカウントは事前承認されます。)この配列の長さは最小1、最大8です。 | -| `LedgerEntryType` | 文字列 | UInt16 | はい | 値`0x0070`が文字列`DepositPreauth`にマッピングされている場合は、これがDepositPreauthオブジェクトであることを示します。 | +| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | +| :--------------------- | :-------------------- | :----------- | :----- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Account` | 文字列 | Account | はい | 事前承認を付与したアカウント。(事前承認支払の宛先) | +| `Authorize` | 文字列 | Account | いいえ | 事前承認を受けたアカウント。(事前承認支払の送金元) | +| `AuthorizeCredentials` | 配列 | Array | いいえ | 事前承認を受けた資格情報のセット。(これらの資格情報を持つアカウントは事前承認されます。)この配列の長さは最小1、最大8です。 | +| `LedgerEntryType` | 文字列 | UInt16 | はい | 値`0x0070`が文字列`DepositPreauth`にマッピングされている場合は、これがDepositPreauthオブジェクトであることを示します。 | | `OwnerNode` | 文字列 | UInt64 | はい | 送金元アドレスの所有者のディレクトリが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。**注記:** このオブジェクトには、オブジェクトを含む所有者ディレクトリへの直接リンクは含まれていません。これは、その値を`Account`から取得できるためです。 | -| `PreviousTxnID` | 文字列 - [ハッシュ][] | UInt256 | はい | このオブジェクトを最後に変更したトランザクションの識別用ハッシュ。 | -| `PreviousTxnLgrSeq` | 数値 | UInt32 | はい | このオブジェクトを最後に変更したトランザクションが記録された[レジャーインデックス][]。 | +| `PreviousTxnID` | 文字列 - [ハッシュ][] | UInt256 | はい | このオブジェクトを最後に変更したトランザクションの識別用ハッシュ。 | +| `PreviousTxnLgrSeq` | 数値 | UInt32 | はい | このオブジェクトを最後に変更したトランザクションが記録された[レジャーインデックス][]。 | 各エントリには、`Authorize`フィールドまたは`AuthorizeCredentials`フィールドのいずれかが必要ですが、両方を持つことはできません。 @@ -98,17 +106,18 @@ labels: この場合、IDは以下の値の[SHA-512Half][]です。 -* DepositPreauthスペースキー(`0x0070`) -* このオブジェクトの所有者(このオブジェクトを作成した[DepositPreauthトランザクション][]の送信者、つまり事前承認を付与したユーザ)のAccountID -* `Authorize`フィールドのAccountID +- DepositPreauthスペースキー(`0x0070`) +- このオブジェクトの所有者(このオブジェクトを作成した[DepositPreauthトランザクション][]の送信者、つまり事前承認を付与したユーザ)のAccountID +- `Authorize`フィールドのAccountID ### 資格情報による事前承認 + _([Credentials amendment][]が必要です。 {% not-enabled /%})_ この場合、IDは以下の値の[SHA-512Half][]です。 -* 資格情報による事前承認のスペースキー (`0x0050`) -* このオブジェクトの所有者(このオブジェクトを作成した[DepositPreauthトランザクション][]の送信者、つまり事前承認を付与したユーザ)のAccountID -* `AuthorizeCredentials`フィールドの内容 +- 資格情報による事前承認のスペースキー (`0x0050`) +- このオブジェクトの所有者(このオブジェクトを作成した[DepositPreauthトランザクション][]の送信者、つまり事前承認を付与したユーザ)のAccountID +- `AuthorizeCredentials`フィールドの内容 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/did.md b/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/did.md index cf8108e270..0edf31f51e 100644 --- a/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/did.md +++ b/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/did.md @@ -2,32 +2,33 @@ html: did.html parent: ledger-entry-types.html seo: - description: 分散型ID(DID)の定義と詳細 + description: 分散型ID(DID)の定義と詳細 labels: - DID --- + # DID + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/LedgerFormats.cpp#L330-L341 "ソース) _([DID Amendment][])_ `DID`のレジャーエントリは、単一の[DID](../../../../concepts/decentralized-storage/decentralized-identifiers.md)への参照、またはそれに関連するデータを保持します。 - ## DID JSONの例 ```json { - "Account": "rpfqJrXg5uidNo2ZsRhRY6TiF1cvYmV9Fg", - "DIDDocument": "646F63", - "Data": "617474657374", - "Flags": 0, - "LedgerEntryType": "DID", - "OwnerNode": "0", - "PreviousTxnID": "A4C15DA185E6092DF5954FF62A1446220C61A5F60F0D93B4B09F708778E41120", - "PreviousTxnLgrSeq": 4, - "URI": "6469645F6578616D706C65", - "index": "46813BE38B798B3752CA590D44E7FEADB17485649074403AD1761A2835CE91FF" + "Account": "rpfqJrXg5uidNo2ZsRhRY6TiF1cvYmV9Fg", + "DIDDocument": "646F63", + "Data": "617474657374", + "Flags": 0, + "LedgerEntryType": "DID", + "OwnerNode": "0", + "PreviousTxnID": "A4C15DA185E6092DF5954FF62A1446220C61A5F60F0D93B4B09F708778E41120", + "PreviousTxnLgrSeq": 4, + "URI": "6469645F6578616D706C65", + "index": "46813BE38B798B3752CA590D44E7FEADB17485649074403AD1761A2835CE91FF" } ``` @@ -35,28 +36,25 @@ _([DID Amendment][])_ [共通フィールド][]に加えて、{% $frontmatter.seo.title %}エントリは以下のフィールドを使用します。 -| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | -|:--------------------|:----------|:-----------|:------|--------------| -| `Account` | 文字列 | AccountID | はい | DIDを管理するアカウント。 | -| `DIDDocument` | 文字列 | Blob | いいえ | DIDに関連付けられたW3C規格のDIDドキュメント。`DIDDocument`フィールドの有効性はチェックされず、最大長は256バイトに制限されます。 | -| `Data` | 文字列 | Blob | いいえ | DIDに関連付けられたID情報の公開証明。`Data`フィールドの有効性はチェックされず、最大長は 256 バイトに制限されます。 | -| `LedgerEntryType` | 文字列 | UInt16 | はい | 文字列`DID`にマップされる値`0x0049`は、このオブジェクトがDIDオブジェクトであることを示します。 | -| `OwnerNode` | 文字列 | UInt64 | はい | ディレクトリが複数のページで構成されている場合に、送信者のオーナーディレクトリのどのページがこのエントリにリンクしているかを示すヒント。 | -| `PreviousTxnID` | 文字列 | UInt256 | はい | このオブジェクトを最近変更したトランザクションの識別ハッシュ。 | -| `PreviousTxnLgrSeq` | 数値 | UInt32 | はい | このオブジェクトを最後に変更したトランザクションを含むレジャーインデックス。 | -| `URI` | 文字列 | Blob | いいえ | 対応するDIDドキュメントまたはDIDに関連付けられたデータを指すユニバーサルリソース識別子。このフィールドにはHTTP(S)URLまたはIPFS URIを指定できます。このフィールドの有効性はチェックされず、最大長は256バイトに制限されます。 | - +| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | +| :------------------ | :------- | :----------- | :----- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Account` | 文字列 | AccountID | はい | DIDを管理するアカウント。 | +| `DIDDocument` | 文字列 | Blob | いいえ | DIDに関連付けられたW3C規格のDIDドキュメント。`DIDDocument`フィールドの有効性はチェックされず、最大長は256バイトに制限されます。 | +| `Data` | 文字列 | Blob | いいえ | DIDに関連付けられたID情報の公開証明。`Data`フィールドの有効性はチェックされず、最大長は 256 バイトに制限されます。 | +| `LedgerEntryType` | 文字列 | UInt16 | はい | 文字列`DID`にマップされる値`0x0049`は、このオブジェクトがDIDオブジェクトであることを示します。 | +| `OwnerNode` | 文字列 | UInt64 | はい | ディレクトリが複数のページで構成されている場合に、送信者のオーナーディレクトリのどのページがこのエントリにリンクしているかを示すヒント。 | +| `PreviousTxnID` | 文字列 | UInt256 | はい | このオブジェクトを最近変更したトランザクションの識別ハッシュ。 | +| `PreviousTxnLgrSeq` | 数値 | UInt32 | はい | このオブジェクトを最後に変更したトランザクションを含むレジャーインデックス。 | +| `URI` | 文字列 | Blob | いいえ | 対応するDIDドキュメントまたはDIDに関連付けられたデータを指すユニバーサルリソース識別子。このフィールドにはHTTP(S)URLまたはIPFS URIを指定できます。このフィールドの有効性はチェックされず、最大長は256バイトに制限されます。 | ## {% $frontmatter.seo.title %}の準備金 {% code-page-name /%}オブジェクトを作成したアカウントには、1つの所有者準備金が発生します。 - ## {% $frontmatter.seo.title %}のフラグ {% code-page-name /%}エントリにはフラグが定義されていません。 - ## DID IDのフォーマット `DID`エントリのIDは以下の値の[SHA-512Half][]を順番に連結したものです: diff --git a/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/directorynode.md b/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/directorynode.md index 7f88794093..7fb68baa8d 100644 --- a/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/directorynode.md +++ b/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/directorynode.md @@ -1,33 +1,34 @@ --- seo: - description: 他のオブジェクトへのリンクを保持します。 + description: 他のオブジェクトへのリンクを保持します。 labels: - データ保持 - 分散型取引所 --- + # DirectoryNode + [[ソース]](https://github.com/XRPLF/rippled/blob/7e24adbdd0b61fb50967c4c6d4b27cc6d81b33f3/include/xrpl/protocol/detail/ledger_entries.macro#L177-L192 "Source") `DirectoryNode`オブジェクトタイプは、レジャーの状態ツリー内の他オブジェクトへのリンクのリストを提供します。概念上の1つの _ディレクトリ_ は、1つ以上の各DirectoryNodeオブジェクトが含まれる二重リンクリストの形式になっています。各DirectoryNodeオブジェクトには、他オブジェクトの[ID](../common-fields.md)が最大32個まで含まれています。1番目のオブジェクトはディレクトリのルートと呼ばれ、ルートオブジェクト以外のオブジェクトはすべて必要に応じて自由に追加または削除できます。 ディレクトリには3種類があります。 -* _所有者ディレクトリ_ は、[`RippleState`(トラストライン)](ripplestate.md)エントリや[`Offer`](offer.md)エントリなどアカウントが所有するその他のエントリの一覧です。 -* _オファーディレクトリ_ は、[分散型取引所(DEX)](../../../../concepts/tokens/decentralized-exchange/index.md)で利用可能なオファーの一覧です。1つのオファーディレクトリには、同一トークン(通貨コードと発行者)に同一の取引レートが設定されているすべてのオファーが含まれます。 -* _NFTオファーディレクトリ_ は、NFTの買いオファーと売りオファーの一覧です。各NFTには、買いオファー用と売りオファー用の2つのディレクトリがあります。 +- _所有者ディレクトリ_ は、[`RippleState`(トラストライン)](ripplestate.md)エントリや[`Offer`](offer.md)エントリなどアカウントが所有するその他のエントリの一覧です。 +- _オファーディレクトリ_ は、[分散型取引所(DEX)](../../../../concepts/tokens/decentralized-exchange/index.md)で利用可能なオファーの一覧です。1つのオファーディレクトリには、同一トークン(通貨コードと発行者)に同一の取引レートが設定されているすべてのオファーが含まれます。 +- _NFTオファーディレクトリ_ は、NFTの買いオファーと売りオファーの一覧です。各NFTには、買いオファー用と売りオファー用の2つのディレクトリがあります。 ## {% $frontmatter.seo.title %}のJSONの例 {% tabs %} {% tab label="オファーディレクトリ" %} + ```json { "ExchangeRate": "4e133c40576f7c00", "Flags": 0, - "Indexes": [ - "353E55E7A0B0E82D16DF6E748D48BDAFE4C56045DF5A8B0ED723FF3C38A4787A" - ], + "Indexes": ["353E55E7A0B0E82D16DF6E748D48BDAFE4C56045DF5A8B0ED723FF3C38A4787A"], "LedgerEntryType": "DirectoryNode", "PreviousTxnID": "0F79E60C8642A23658ECB29D939499EA0F28D804077B7EE16613BE0C813A2DD6", "PreviousTxnLgrSeq": 91448326, @@ -39,9 +40,11 @@ labels: "index": "79C54A4EBD69AB2EADCE313042F36092BE432423CC6A4F784E133C40576F7C00" } ``` + {% /tab %} {% tab label="所有者ディレクトリ" %} + ```json { "Flags": 0, @@ -70,15 +73,15 @@ labels: "index": "0A2600D85F8309FE7F75A490C19613F1CE0C37483B856DB69B8140154C2335F3" } ``` + {% /tab %} {% tab label="NFTオファーディレクトリ" %} + ```json { "Flags": 1, - "Indexes": [ - "68227B203065DED9EEB8B73FC952494A1DA6A69CEABEAA99923836EB5E77C95A" - ], + "Indexes": ["68227B203065DED9EEB8B73FC952494A1DA6A69CEABEAA99923836EB5E77C95A"], "LedgerEntryType": "DirectoryNode", "NFTokenID": "000822603EA060FD1026C04B2D390CC132D07D600DA9B082CB5CE9AC0487E50B", "PreviousTxnID": "EF8A9AD51E7CC6BBD219C3C980EC3145C7B0814ED3184471FD952D9D23A1918D", @@ -87,78 +90,76 @@ labels: "index": "0EC5802BD1AB56527A9DE524CCA2A2BA25E1085CCE7EA112940ED115FFF91EE2" } ``` + {% /tab %} {% /tabs %} ## {% $frontmatter.seo.title %}のフィールド -| 名前 | JSONの型 | [内部の型][] | 必須? | 説明 | -|---------------------|-----------|--------------|:-------|-------------| -| `DomainID` | 文字列 | Hash256 | いいえ | (オファーディレクトリのみ) 許可型DEXのレジャーエントリID。指定された場合、対応する[許可型DEX](../../../../concepts/tokens/decentralized-exchange/permissioned-dexes.md)のみを使用するパスを返します。([PermissionedDEX amendment][] {% not-enabled /%}が必要です。) | -| `ExchangeRate` | 数値 | UInt64 | いいえ | (オファーディレクトリのみ)**廃止予定**。使用しないでください。 | -| `Flags` | 数値 | UInt32 | はい | このディレクトリに対して有効になっているブール値フラグのビットマップ。現在、プロトコルではDirectoryNodeオブジェクトのフラグは定義されていません。 | -| `Indexes` | 配列 | Vector256 | はい | このディレクトリの内容: 他のオブジェクトのIDの配列。 | -| `IndexNext` | 数値 | UInt64 | いいえ | (省略可)このディレクトリに複数のページが含まれている場合、このIDはチェーン内の次のオブジェクトにリンクし、末尾でラップアラウンドします。 | -| `IndexPrevious` | 数値 | UInt64 | いいえ | (省略可)このディレクトリに複数のページが含まれている場合、このIDはチェーン内の前のオブジェクトにリンクし、先頭でラップアラウンドします。 | -| `LedgerEntryType` | 文字列 | UInt16 | はい | 値が`0x0064`(文字列`DirectoryNode`にマッピング)の場合は、このオブジェクトがディレクトリの一部であることを示します。 | -| `NFTokenID` | 文字列 | UInt256 | いいえ |(NFTオファーディレクトリのみ) 購入または売却オファーに紐づくNFTのID。. | -| `Owner` | 文字列 | AccountID | いいえ | (所有者ディレクトリのみ)このディレクトリ内のオブジェクトを所有するアカウントのアドレス。 | -| `PreviousTxnID` | 文字列 | UInt256 | いいえ | このエントリを最後に変更したトランザクションの識別ハッシュ。{% amendment-disclaimer name="fixPreviousTxnID" /%} | -| `PreviousTxnLgrSeq` | 数値 | UInt32 | いいえ | このエントリを最後に変更したトランザクションが含まれる[レジャーインデックス](../ledger-header.md)。{% amendment-disclaimer name="fixPreviousTxnID" /%} | -| `RootIndex` | 文字列 | UInt256 | はい | このディレクトリのルートオブジェクトのID。 | -| `TakerGetsCurrency` | 文字列 | UInt160 | いいえ | (オファーディレクトリのみ)このディレクトリのオファーのTakerGetsの額の通貨コード。 | -| `TakerGetsIssuer` | 文字列 | UInt160 | いいえ | (オファーディレクトリのみ)このディレクトリのオファーのTakerGetsの額のイシュアー。 | -| `TakerPaysCurrency` | 文字列 | UInt160 | いいえ | (オファーディレクトリのみ)このディレクトリのオファーのTakerPaysの額の通貨コード。 | -| `TakerPaysIssuer` | 文字列 | UInt160 | いいえ | (オファーディレクトリのみ)このディレクトリのオファーのTakerPaysの額のイシュアー。 | - +| 名前 | JSONの型 | [内部の型][] | 必須? | 説明 | +| ------------------- | -------- | ------------ | :----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `DomainID` | 文字列 | Hash256 | いいえ | (オファーディレクトリのみ) 許可型DEXのレジャーエントリID。指定された場合、対応する[許可型DEX](../../../../concepts/tokens/decentralized-exchange/permissioned-dexes.md)のみを使用するパスを返します。([PermissionedDEX amendment][] {% not-enabled /%}が必要です。) | +| `ExchangeRate` | 数値 | UInt64 | いいえ | (オファーディレクトリのみ)**廃止予定**。使用しないでください。 | +| `Flags` | 数値 | UInt32 | はい | このディレクトリに対して有効になっているブール値フラグのビットマップ。現在、プロトコルではDirectoryNodeオブジェクトのフラグは定義されていません。 | +| `Indexes` | 配列 | Vector256 | はい | このディレクトリの内容: 他のオブジェクトのIDの配列。 | +| `IndexNext` | 数値 | UInt64 | いいえ | (省略可)このディレクトリに複数のページが含まれている場合、このIDはチェーン内の次のオブジェクトにリンクし、末尾でラップアラウンドします。 | +| `IndexPrevious` | 数値 | UInt64 | いいえ | (省略可)このディレクトリに複数のページが含まれている場合、このIDはチェーン内の前のオブジェクトにリンクし、先頭でラップアラウンドします。 | +| `LedgerEntryType` | 文字列 | UInt16 | はい | 値が`0x0064`(文字列`DirectoryNode`にマッピング)の場合は、このオブジェクトがディレクトリの一部であることを示します。 | +| `NFTokenID` | 文字列 | UInt256 | いいえ | (NFTオファーディレクトリのみ) 購入または売却オファーに紐づくNFTのID。. | +| `Owner` | 文字列 | AccountID | いいえ | (所有者ディレクトリのみ)このディレクトリ内のオブジェクトを所有するアカウントのアドレス。 | +| `PreviousTxnID` | 文字列 | UInt256 | いいえ | このエントリを最後に変更したトランザクションの識別ハッシュ。{% amendment-disclaimer name="fixPreviousTxnID" /%} | +| `PreviousTxnLgrSeq` | 数値 | UInt32 | いいえ | このエントリを最後に変更したトランザクションが含まれる[レジャーインデックス](../ledger-header.md)。{% amendment-disclaimer name="fixPreviousTxnID" /%} | +| `RootIndex` | 文字列 | UInt256 | はい | このディレクトリのルートオブジェクトのID。 | +| `TakerGetsCurrency` | 文字列 | UInt160 | いいえ | (オファーディレクトリのみ)このディレクトリのオファーのTakerGetsの額の通貨コード。 | +| `TakerGetsIssuer` | 文字列 | UInt160 | いいえ | (オファーディレクトリのみ)このディレクトリのオファーのTakerGetsの額のイシュアー。 | +| `TakerPaysCurrency` | 文字列 | UInt160 | いいえ | (オファーディレクトリのみ)このディレクトリのオファーのTakerPaysの額の通貨コード。 | +| `TakerPaysIssuer` | 文字列 | UInt160 | いいえ | (オファーディレクトリのみ)このディレクトリのオファーのTakerPaysの額のイシュアー。 | ## {% $frontmatter.seo.title %}のフラグ {% code-page-name /%} エントリは以下のフラグを持つことができます。 -| フラグ名 | 16進数値 | 10進数値 | 説明 | -|:-----------------------|:-------------|:---------|:------------| +| フラグ名 | 16進数値 | 10進数値 | 説明 | +| :--------------------- | :----------- | :------- | :-------------------------------------------------- | | `lsfNFTokenBuyOffers` | `0x00000001` | 1 | このディレクトリにはNFTの購入オファーが含まれます。 | | `lsfNFTokenSellOffers` | `0x00000002` | 2 | このディレクトリにはNFTの売却オファーが含まれます。 | オファーディレクトリと所有者ディレクトリはフラグを使用しません。それらの`Flags`の値は常に0です。 - ## {% $frontmatter.seo.title %}の準備金 {% code-page-name /%}エントリは準備金が不要です。 - ## ディレクトリ IDのフォーマット DirectoryNodeのIDを作成するときには、DirectoryNodeが以下のどのページを表しているかに応じて3種類の方式があります。 -* 所有者ディレクトリまたはNFTオファーディレクトリの1番目のページ(ルートとも呼ばれます) -* オファーディレクトリの1番目のページ -* オファーディレクトリの最初のページ。オープンDEXと認可型DEX用のバージョンが含まれます。 _([PermissionedDEX amendment][]が必要です。 {% not-enabled /%})_ -* いずれかのディレクトリの以降のページ +- 所有者ディレクトリまたはNFTオファーディレクトリの1番目のページ(ルートとも呼ばれます) +- オファーディレクトリの1番目のページ +- オファーディレクトリの最初のページ。オープンDEXと認可型DEX用のバージョンが含まれます。 _([PermissionedDEX amendment][]が必要です。 {% not-enabled /%})_ +- いずれかのディレクトリの以降のページ **所有者ディレクトリまたはNFTオファーディレクトリの1番目のページ**のIDは、以下の値がこの順序で連結されている[SHA-512Half][]です。 -* 所有者ディレクトリのスペースキー(`0x004F`) -* `Owner`フィールドのAccountID。 +- 所有者ディレクトリのスペースキー(`0x004F`) +- `Owner`フィールドのAccountID。 **オファーディレクトリの1番目のページ**には特殊なIDがあります。このIDの上位192ビットはオーダーブックを定義し、それ以降の64ビットはこのディレクトリ内のオファーの為替レートを定義します。(IDはビッグエンディアンであるため、最初に位置する上位ビットにブックが含まれ、後に位置する下位ビットにクオリティが含まれます。)これにより、最適なオファーから最低のオファーへの順にオーダーブックを反復できます。具体的には、先頭192ビットとは、以下の値がこの順序で連結されている[SHA-512Half][]の先頭192ビットです。 -* ブックディレクトリのスペースキー(`0x0042`) -* `TakerPaysCurrency`の160ビットの通貨コード -* `TakerGetsCurrency`の160ビットの通貨コード -* `TakerPaysIssuer`のAccountID -* `TakerGetsIssuer`のAccountID -* このオーダーブックが属する許可型DEXの許可型ドメインの`DomainID`。許可型DEXのオーダーブックの場合。オープンDEXのオーダーブックの場合は省略。 +- ブックディレクトリのスペースキー(`0x0042`) +- `TakerPaysCurrency`の160ビットの通貨コード +- `TakerGetsCurrency`の160ビットの通貨コード +- `TakerPaysIssuer`のAccountID +- `TakerGetsIssuer`のAccountID +- このオーダーブックが属する許可型DEXの許可型ドメインの`DomainID`。許可型DEXのオーダーブックの場合。オープンDEXのオーダーブックの場合は省略。 オファーディレクトリのIDの下位64ビットは、そのディレクトリ内のオファーのTakerPaysの額をTakerGetsの額で割った結果を、XRP Ledgerの内部金額フォーマットの64ビット数値で表したものです。 **DirectoryNodeがディレクトリの1番目のページではない場合**、DirectoryNodeのIDは、以下の値をこの順序で連結した[SHA-512Half][]です。 -* DirectoryNodeスペースキー(`0x0064`) -* ルートDirectoryNodeのID -* このオブジェクトのページ番号(ルートDirectoryNodeは0であるため、この値は1以上の整数値です。) +- DirectoryNodeスペースキー(`0x0064`) +- ルートDirectoryNodeのID +- このオブジェクトのページ番号(ルートDirectoryNodeは0であるため、この値は1以上の整数値です。) {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/escrow.md b/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/escrow.md index 3b0e47ab4a..02fd7a5bd8 100644 --- a/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/escrow.md +++ b/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/escrow.md @@ -1,10 +1,12 @@ --- seo: - description: 条件付き決済のために保有されているXRPを含みます。 + description: 条件付き決済のために保有されているXRPを含みます。 labels: - - Escrow + - Escrow --- + # Escrow + [[ソース]](https://github.com/XRPLF/rippled/blob/c6b6d82a754fe449cc533e18659df483c10a5c98/src/ripple/protocol/impl/LedgerFormats.cpp#L90-L101 "Source") `Escrow`レジャーエントリは特定の条件が満たされるまでXRPを保持する1つの[エスクロー](../../../../concepts/payment-types/escrow.md)を表します。 @@ -37,39 +39,36 @@ labels: [共通フィールド][]に加えて、{% $frontmatter.seo.title %}エントリは以下のフィールドを使用します。 -| 名前 | JSONの型 | [内部の型][] | 必須? | 説明 | -|:--------------------|:----------|:--------------|:------|:----| -| `Account` | 文字列 | AccountID | はい | この保留中の支払の所有者(送金元)のアドレス。これはXRPを供給し、保留中の支払が取り消された場合にXRPが返金されるアカウントです。 | -| `Amount` | 文字列 | Amount | はい | 保留中の支払から送金されるXRPの額(drop単位)。 | -| `CancelAfter` | 数値 | UInt32 | いいえ | _(省略可)_ このフィールドがあり、 _かつ_ 指定されている時刻を経過している場合にのみ、保留中の支払を取り消すことができます。具体的には、これは[Rippleエポック以降の経過秒数][]として指定され、前の検証済みレジャーの閉鎖時刻よりも早い場合に「経過した」ことになります。 | -| `Condition` | 文字列 | VariableLength | いいえ | _(省略可)_ [PREIMAGE-SHA-256 Crypto-condition](https://tools.ietf.org/html/draft-thomas-crypto-conditions-02#section-8.1)(16進数)。指定されている場合、[EscrowFinishトランザクション][]にこの条件を満たすフルフィルメントが含まれている必要があります。 | -| `Destination` | 文字列 | AccountID | はい | 保留中の支払が成功するとXRPが支払われる宛先アドレス。 | -| `DestinationNode` | 文字列 | UInt64 | いいえ | _(省略可)_ 宛先の所有者ディレクトリが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。[fix1523 Amendment][]を有効にする前に作成されたEscrowでは省略されています。 | -| `DestinationTag` | 数値 | UInt32 | いいえ | _(省略可)_ この保留中の支払の宛先(宛先アドレスにホスティングされている受取人など)を詳しく指定するための任意のタグ。 | -| `FinishAfter` | 数値 | UInt32 | いいえ | _(省略可)_ [Rippleエポック以降の経過秒数][]で示される時刻が経過した後、保留中の支払を完了できます。この時刻より前の[EscrowFinishトランザクション][]はすべて失敗します。(特にこれは、前の検証済みレジャーの閉鎖時刻と比較されます。) | -| `LedgerEntryType` | 文字列 | UInt16 | はい | 値`0x0075`が文字列`Escrow`にマッピングされている場合は、このオブジェクトが`Escrow`オブジェクトであることを示します。 | -| `OwnerNode` | 文字列 | UInt64 | はい | 所有者のディレクトリが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。**注記:** このオブジェクトには、オブジェクトを含む所有者ディレクトリへの直接リンクは含まれていません。これは、その値を`Account`から取得できるためです。 | -| `PreviousTxnID` | 文字列 | UInt256 | はい | 最後にこのオブジェクトを変更したトランザクションの識別用ハッシュ。 | -| `PreviousTxnLgrSeq` | 数値 | UInt32 | はい | 最後にこのオブジェクトを変更したトランザクションが記録された[レジャーインデックス][]。 | -| `SourceTag` | 数値 | UInt32 | いいえ | _(省略可)_ この保留中の支払の支払元(所有者のアドレスにホスティングされている受取人など)を詳しく指定するための任意のタグ。 | - +| 名前 | JSONの型 | [内部の型][] | 必須? | 説明 | +| :------------------ | :------- | :------------- | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `Account` | 文字列 | AccountID | はい | この保留中の支払の所有者(送金元)のアドレス。これはXRPを供給し、保留中の支払が取り消された場合にXRPが返金されるアカウントです。 | +| `Amount` | 文字列 | Amount | はい | 保留中の支払から送金されるXRPの額(drop単位)。 | +| `CancelAfter` | 数値 | UInt32 | いいえ | _(省略可)_ このフィールドがあり、 _かつ_ 指定されている時刻を経過している場合にのみ、保留中の支払を取り消すことができます。具体的には、これは[Rippleエポック以降の経過秒数][]として指定され、前の検証済みレジャーの閉鎖時刻よりも早い場合に「経過した」ことになります。 | +| `Condition` | 文字列 | VariableLength | いいえ | _(省略可)_ [PREIMAGE-SHA-256 Crypto-condition](https://tools.ietf.org/html/draft-thomas-crypto-conditions-02#section-8.1)(16進数)。指定されている場合、[EscrowFinishトランザクション][]にこの条件を満たすフルフィルメントが含まれている必要があります。 | +| `Destination` | 文字列 | AccountID | はい | 保留中の支払が成功するとXRPが支払われる宛先アドレス。 | +| `DestinationNode` | 文字列 | UInt64 | いいえ | _(省略可)_ 宛先の所有者ディレクトリが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。[fix1523 Amendment][]を有効にする前に作成されたEscrowでは省略されています。 | +| `DestinationTag` | 数値 | UInt32 | いいえ | _(省略可)_ この保留中の支払の宛先(宛先アドレスにホスティングされている受取人など)を詳しく指定するための任意のタグ。 | +| `FinishAfter` | 数値 | UInt32 | いいえ | _(省略可)_ [Rippleエポック以降の経過秒数][]で示される時刻が経過した後、保留中の支払を完了できます。この時刻より前の[EscrowFinishトランザクション][]はすべて失敗します。(特にこれは、前の検証済みレジャーの閉鎖時刻と比較されます。) | +| `LedgerEntryType` | 文字列 | UInt16 | はい | 値`0x0075`が文字列`Escrow`にマッピングされている場合は、このオブジェクトが`Escrow`オブジェクトであることを示します。 | +| `OwnerNode` | 文字列 | UInt64 | はい | 所有者のディレクトリが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。**注記:** このオブジェクトには、オブジェクトを含む所有者ディレクトリへの直接リンクは含まれていません。これは、その値を`Account`から取得できるためです。 | +| `PreviousTxnID` | 文字列 | UInt256 | はい | 最後にこのオブジェクトを変更したトランザクションの識別用ハッシュ。 | +| `PreviousTxnLgrSeq` | 数値 | UInt32 | はい | 最後にこのオブジェクトを変更したトランザクションが記録された[レジャーインデックス][]。 | +| `SourceTag` | 数値 | UInt32 | いいえ | _(省略可)_ この保留中の支払の支払元(所有者のアドレスにホスティングされている受取人など)を詳しく指定するための任意のタグ。 | ## {% $frontmatter.seo.title %}のフラグ {% code-page-name /%}エントリに定義されているフラグはありません。 - ## {% $frontmatter.seo.title %}の準備金 {% code-page-name /%} エントリは、台帳上にエントリがある限り、送信者の所有者準備金の1つとしてカウントされます。エスクローを終了またはキャンセルすると、この準備金は解放されます。 - ## Escrow IDのフォーマット `Escrow`オブジェクトのIDは、以下の値がこの順序で連結されている[SHA-512Half][]です。 -* Escrowスペースキー(`0x0075`) -* `Escrow`オブジェクトを作成した[EscrowCreateトランザクション][]の送信者のAccountID。 -* `Escrow`オブジェクトを作成した[EscrowCreateトランザクション][]のシーケンス番号。 +- Escrowスペースキー(`0x0075`) +- `Escrow`オブジェクトを作成した[EscrowCreateトランザクション][]の送信者のAccountID。 +- `Escrow`オブジェクトを作成した[EscrowCreateトランザクション][]のシーケンス番号。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/feesettings.md b/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/feesettings.md index 570e697c29..21fa102293 100644 --- a/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/feesettings.md +++ b/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/feesettings.md @@ -1,10 +1,12 @@ --- seo: - description: コンセンサスで承認された基本トランザクションコストと必要準備金があるシングルトンオブジェクトです。 + description: コンセンサスで承認された基本トランザクションコストと必要準備金があるシングルトンオブジェクトです。 labels: - - 手数料 + - 手数料 --- + # FeeSettings + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/LedgerFormats.cpp#L115-L120 "Source") `FeeSettings`オブジェク @@ -30,15 +32,15 @@ labels: `FeeSettings`オブジェクトのフィールドは次のとおりです。 -| 名前 | JSONの型 | [内部の型][] | 説明 | -|:--------------------|:----------|:-------------|:-----------------------| -| `LedgerEntryType` | 文字列 | UInt16 | 値`0x0073`が文字列`FeeSettings`にマッピングされている場合は、このオブジェクトにレジャーの手数料設定が含まれていることを示します。 | -| `BaseFee` | 文字列 | UInt64 | 「リファレンストランザクション」の[トランザクションコスト](../../../../concepts/transactions/transaction-cost.md)(XRPのdrop数、16進数) | -| `ReferenceFeeUnits` | 数値 | UInt32 | 「手数料単位」に変換された`BaseFee` | -| `ReserveBase` | 数値 | UInt32 | XRP Ledgerのアカウントの[基本準備金](../../../../concepts/accounts/reserves.md#基本準備金と所有者準備金)(XRPのdrop数)。 | -| `ReserveIncrement` | 数値 | UInt32 | 所有するオブジェクトごとに増加する[所有者準備金](../../../../concepts/accounts/reserves.md#基本準備金と所有者準備金)(XRPのdrop数)。 | -| `PreviousTxnID` | 文字列 | UInt256 | このエントリを最後に変更したトランザクションの識別ハッシュ。{% amendment-disclaimer name="fixPreviousTxnID" /%} | -| `PreviousTxnLgrSeq` | 数値 | UInt32 | このエントリを最後に変更したトランザクションが含まれる[レジャーインデックス](../ledger-header.md)。{% amendment-disclaimer name="fixPreviousTxnID" /%} | +| 名前 | JSONの型 | [内部の型][] | 説明 | +| :------------------ | :------- | :----------- | :----------------------------------------------------------------------------------------------------------------------------------------------------- | +| `LedgerEntryType` | 文字列 | UInt16 | 値`0x0073`が文字列`FeeSettings`にマッピングされている場合は、このオブジェクトにレジャーの手数料設定が含まれていることを示します。 | +| `BaseFee` | 文字列 | UInt64 | 「リファレンストランザクション」の[トランザクションコスト](../../../../concepts/transactions/transaction-cost.md)(XRPのdrop数、16進数) | +| `ReferenceFeeUnits` | 数値 | UInt32 | 「手数料単位」に変換された`BaseFee` | +| `ReserveBase` | 数値 | UInt32 | XRP Ledgerのアカウントの[基本準備金](../../../../concepts/accounts/reserves.md#基本準備金と所有者準備金)(XRPのdrop数)。 | +| `ReserveIncrement` | 数値 | UInt32 | 所有するオブジェクトごとに増加する[所有者準備金](../../../../concepts/accounts/reserves.md#基本準備金と所有者準備金)(XRPのdrop数)。 | +| `PreviousTxnID` | 文字列 | UInt256 | このエントリを最後に変更したトランザクションの識別ハッシュ。{% amendment-disclaimer name="fixPreviousTxnID" /%} | +| `PreviousTxnLgrSeq` | 数値 | UInt32 | このエントリを最後に変更したトランザクションが含まれる[レジャーインデックス](../ledger-header.md)。{% amendment-disclaimer name="fixPreviousTxnID" /%} | {% admonition type="danger" name="警告" %}このレジャーオブジェクトのJSONフォーマットは一般的ではありません。`BaseFee`、`ReserveBase`、および`ReserveIncrement`はXRPのdrop数を示しますが、通常の[XRP指定][通貨額]フォーマットでは***ありません*** 。{% /admonition %} diff --git a/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/index.md b/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/index.md index f637a00884..9f36cd9ad6 100644 --- a/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/index.md +++ b/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/index.md @@ -6,9 +6,9 @@ metadata: labels: - データ保持 --- + # レジャーエントリのタイプ {% partial file="/@l10n/ja/docs/_snippets/ledger-objects-intro.md" /%} - {% child-pages /%} diff --git a/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/ledgerhashes.md b/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/ledgerhashes.md index b5a1ec0833..e6e598795a 100644 --- a/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/ledgerhashes.md +++ b/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/ledgerhashes.md @@ -2,11 +2,13 @@ html: ledgerhashes.html parent: ledger-entry-types.html seo: - description: 履歴検索用に以前のレジャーバージョンのハッシュをリスト表示します。 + description: 履歴検索用に以前のレジャーバージョンのハッシュをリスト表示します。 labels: - ブロックチェーン --- + # LedgerHashes + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/LedgerFormats.cpp#L104-L108 "Source") (レジャーバージョンを一意に示す[「ledger hash」文字列データ型][ハッシュ]と混同しないでください。このセクションでは、`LedgerHashes`レジャーオブジェクトタイプについて説明します。) @@ -42,13 +44,13 @@ labels: `LedgerHashes`オブジェクトのフィールドは次のとおりです。 -| 名前 | JSONの型 | [内部の型][] | 説明 | -|-------------------|-----------|-------------------|-------------| -| `LedgerEntryType` | 文字列 | UInt16 | 値`0x0068`が文字列`LedgerHashes`にマッピングされている場合は、このオブジェクトがレジャーハッシュのリストであることを示します。 | -| `FirstLedgerSequence` | 数値 | UInt32 | **廃止予定** 使用しないでください。(本番環境のXRP Ledgerの「最近のハッシュ」オブジェクトでは、このフィールドの値は`2`です。これは、以前の`rippled`ソフトウェアによるものです。この値は「最近のハッシュ」オブジェクトの更新に伴い持ち越されます。このフィールドは新しい「過去の履歴」オブジェクトには含まれていません。また、新しいバージョンの`rippled`で導入された[並列ネットワーク](../../../../concepts/networks-and-servers/parallel-networks.md)の「最近のハッシュ」オブジェクトにも含まれていません。) | -| `LastLedgerSequence` | 数値 | UInt32 | このオブジェクトの`Hashes`配列の最後の要素の[レジャーインデックス][]。 | -| `Hashes` | 文字列の配列 | STI_VECTOR256 | 最大256個のレジャーハッシュからなる配列。その内容は、これが`LedgerHashes`オブジェクトのどのサブタイプであるかに応じて異なります。 | -| `Flags` | 数値 | UInt32 | このオブジェクトのブールフラグのビットマップ。このタイプではフラグは定義されていません。 | +| 名前 | JSONの型 | [内部の型][] | 説明 | +| --------------------- | ------------ | ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `LedgerEntryType` | 文字列 | UInt16 | 値`0x0068`が文字列`LedgerHashes`にマッピングされている場合は、このオブジェクトがレジャーハッシュのリストであることを示します。 | +| `FirstLedgerSequence` | 数値 | UInt32 | **廃止予定** 使用しないでください。(本番環境のXRP Ledgerの「最近のハッシュ」オブジェクトでは、このフィールドの値は`2`です。これは、以前の`rippled`ソフトウェアによるものです。この値は「最近のハッシュ」オブジェクトの更新に伴い持ち越されます。このフィールドは新しい「過去の履歴」オブジェクトには含まれていません。また、新しいバージョンの`rippled`で導入された[並列ネットワーク](../../../../concepts/networks-and-servers/parallel-networks.md)の「最近のハッシュ」オブジェクトにも含まれていません。) | +| `LastLedgerSequence` | 数値 | UInt32 | このオブジェクトの`Hashes`配列の最後の要素の[レジャーインデックス][]。 | +| `Hashes` | 文字列の配列 | STI_VECTOR256 | 最大256個のレジャーハッシュからなる配列。その内容は、これが`LedgerHashes`オブジェクトのどのサブタイプであるかに応じて異なります。 | +| `Flags` | 数値 | UInt32 | このオブジェクトのブールフラグのビットマップ。このタイプではフラグは定義されていません。 | ## 最近の履歴のLedgerHashes @@ -65,6 +67,7 @@ labels: 「過去の履歴」`LedgerHashes`オブジェクトは[スキップリスト](https://en.wikipedia.org/wiki/Skip_list)として機能するので、任意の履歴フラッグレジャーのハッシュをそのインデックスから取得できます。さらに、フラッグレジャーの「最近の履歴」オブジェクトを使用してその他のレジャーのハッシュを取得できます。 ## LedgerHashes IDのフォーマット + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/Indexes.cpp#L26-L42) `LedgerHashes`オブジェクトIDには2種類のフォーマットがあります。これは、オブジェクトのサブタイプが「最近の履歴」と「過去の履歴」のいずれであるかに応じて決まります。 @@ -76,6 +79,6 @@ labels: - `LedgerHashes`スペースキー(`0x0073`) - オブジェクトの`Hashes`配列のフラッグレジャーの32ビット[レジャーインデックス][]を65536で割った値。 - {% admonition type="success" name="ヒント" %}65536で割ることで最上位16ビットが維持されます。これは、「過去の履歴」オブジェクトに含まれているすべてのフラッグレジャーでのみ同一です。この点を踏まえて、フラッグレジャーのハッシュが含まれている`LedgerHashes`オブジェクトを検索できます。{% /admonition %} + {% admonition type="success" name="ヒント" %}65536で割ることで最上位16ビットが維持されます。これは、「過去の履歴」オブジェクトに含まれているすべてのフラッグレジャーでのみ同一です。この点を踏まえて、フラッグレジャーのハッシュが含まれている`LedgerHashes`オブジェクトを検索できます。{% /admonition %} {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/mptoken.md b/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/mptoken.md index faca502fe5..8bbbb37859 100644 --- a/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/mptoken.md +++ b/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/mptoken.md @@ -1,9 +1,10 @@ --- seo: - description: XRPLのMulti-Purpose Tokenのオブジェクトについて説明します。 + description: XRPLのMulti-Purpose Tokenのオブジェクトについて説明します。 labels: - Multi-Purpose Token, MPT, トークン --- + # MPToken {% partial file="/@l10n/ja/docs/_snippets/mpts-disclaimer.md" /%} @@ -16,12 +17,12 @@ labels: ```json { - "LedgerEntryType": "MPToken", - "Account": "rajgkBmMxmz161r8bWYH7CQAFZP5bA9oSG", - "MPTokenIssuanceID": "000004C463C52827307480341125DA0577DEFC38405B0E3E", - "Flags": 0, - "MPTAmount": "100000000", - "OwnerNode": "1" + "LedgerEntryType": "MPToken", + "Account": "rajgkBmMxmz161r8bWYH7CQAFZP5bA9oSG", + "MPTokenIssuanceID": "000004C463C52827307480341125DA0577DEFC38405B0E3E", + "Flags": 0, + "MPTAmount": "100000000", + "OwnerNode": "1" } ``` @@ -37,25 +38,24 @@ labels: `MPToken`オブジェクトには以下のフィールドがあります。 -| フィールド名 | JSONの型 | 内部の型 | 説明 | -|:--------------------|:----------|:----------|:------------| -| `LedgerEntryType` | 数値 | UInt16 | 値0x007Fは文字列`MPToken`にマッピングされ、このオブジェクトがMPTの個別アカウントの保有を表すことを示します。 | -| `Account` | 文字列 | AccountID | MPTの所有者。 | -| `MPTokenIssuanceID` | 文字列 | UInt192 | `MPTokenIssuance`の識別子。 | -| `MPTAmount` | 文字列 | UInt64 | この値は、所有者が現在保有しているトークンの正の数量を指定します。このフィールドの有効な値は0x0から0x7FFFFFFFFFFFFFFFの間です。 | -| `Flags` | 数値 | UInt32 | (デフォルト) [MPTokenのフラグ](#mptokenのフラグ)をご覧ください。 | -| `PreviousTxnID` | 文字列 | UInt256 | このオブジェクトを最後に変更したトランザクションのトランザクションID。 | -| `PreviousTxnLgrSeq` | 数値 | UInt32 | このオブジェクトを最後に変更したトランザクションを含むレジャーのシーケンス番号。 | -| `OwnerNode` | 文字列 | UInt64 | (デフォルト) 所有者のディレクトリでこのアイテムが参照されているページ。 | - +| フィールド名 | JSONの型 | 内部の型 | 説明 | +| :------------------ | :------- | :-------- | :------------------------------------------------------------------------------------------------------------------------------ | +| `LedgerEntryType` | 数値 | UInt16 | 値0x007Fは文字列`MPToken`にマッピングされ、このオブジェクトがMPTの個別アカウントの保有を表すことを示します。 | +| `Account` | 文字列 | AccountID | MPTの所有者。 | +| `MPTokenIssuanceID` | 文字列 | UInt192 | `MPTokenIssuance`の識別子。 | +| `MPTAmount` | 文字列 | UInt64 | この値は、所有者が現在保有しているトークンの正の数量を指定します。このフィールドの有効な値は0x0から0x7FFFFFFFFFFFFFFFの間です。 | +| `Flags` | 数値 | UInt32 | (デフォルト) [MPTokenのフラグ](#mptokenのフラグ)をご覧ください。 | +| `PreviousTxnID` | 文字列 | UInt256 | このオブジェクトを最後に変更したトランザクションのトランザクションID。 | +| `PreviousTxnLgrSeq` | 数値 | UInt32 | このオブジェクトを最後に変更したトランザクションを含むレジャーのシーケンス番号。 | +| `OwnerNode` | 文字列 | UInt64 | (デフォルト) 所有者のディレクトリでこのアイテムが参照されているページ。 | ### MPTokenのフラグ Flagsは`MPToken`オブジェクトに紐付けられたプロパティまたはその他のオプションです。 -| フラグ名 | フラグ値 | 説明 | -|:-------------------|:-------------|:--------------------------------------------| -| `lsfMPTLocked` | `0x00000001` | 有効な場合、このアカウントが所有するMPTが現在ロックされており、発行者への価値の送信以外のXRPトランザクションで使用できないことを示します | -| `lsfMPTAuthorized` | `0x00000002` | (ホワイトリストの場合のみ適用) 設定されている場合、発行者がそのMPTの保有者を承認したことを示します。このフラグは`MPTokenAuthorize`トランザクションを使用して設定できます。また、`tfMPTUnauthorize`フラグを指定した`MPTokenAuthorize`トランザクションを使用して「解除」することもできます。| +| フラグ名 | フラグ値 | 説明 | +| :----------------- | :----------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `lsfMPTLocked` | `0x00000001` | 有効な場合、このアカウントが所有するMPTが現在ロックされており、発行者への価値の送信以外のXRPトランザクションで使用できないことを示します | +| `lsfMPTAuthorized` | `0x00000002` | (ホワイトリストの場合のみ適用) 設定されている場合、発行者がそのMPTの保有者を承認したことを示します。このフラグは`MPTokenAuthorize`トランザクションを使用して設定できます。また、`tfMPTUnauthorize`フラグを指定した`MPTokenAuthorize`トランザクションを使用して「解除」することもできます。 | {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/mptokenissuance.md b/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/mptokenissuance.md index fb94e4b901..82ad306dca 100644 --- a/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/mptokenissuance.md +++ b/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/mptokenissuance.md @@ -1,9 +1,10 @@ --- seo: - description: 単一のMPT Issuanceを表し、Issuance自体に関連するデータを保持します。 + description: 単一のMPT Issuanceを表し、Issuance自体に関連するデータを保持します。 labels: - Multi-Purpose Token, MPT, トークン --- + # MPTokenIssuance {% partial file="/@l10n/ja/docs/_snippets/mpts-disclaimer.md" /%} @@ -45,39 +46,37 @@ labels: - トランザクションシーケンス番号 - 発行者のAccountID - ## MPTokenIssuanceのフィールド `MPTokenIssuance`オブジェクトには以下のフィールドがあります。 -| フィールド名 | JSON型 | 内部型 | 説明 | -| :------------------ | :----- | :-------- | ---- | -| `LedgerEntryType` | 数値 | UInt16 | 値0x007Eは文字列MPTokenIssuanceにマッピングされ、このオブジェクトがMulti-Purpose Token (MPT)を記述していることを示します。 | -| `Flags` | 数値 | UInt32 | [MPTokenIssuanceのフラグ](#mptokenissuanceのフラグ)をご覧ください。 | -| `Issuer` | 文字列 | AccountID | 特定の代替可能トークンの発行量とプロパティの両方を制御するアカウントのアドレス。 | -| `AssetScale` | 数値 | UInt8 | 標準単位と対応する分数単位との間の桁数の差です。より正確には、AssetScaleは自然数(0、1、2、...)で、1標準単位は対応する分数単位の10^(-scale)に等しくなります。分数単位が標準単位と等しい場合、AssetScaleは0です。 | -| `MaximumAmount` | 文字列 | UInt64 | この値は、非発行アカウントに配布できるMPTの最大数(つまり、発行可能な数)を指定する符号なし数値です。未指定の場合、この値は0x7FFFFFFFFFFFFFFFに設定されます。 | -| `OutstandingAmount` | 文字列 | UInt64 | すべてのトークン保有者に発行されたトークン量の合計を指定します。この値は、値が0の場合にLedger上で少ないスペースを占めるように、デフォルトタイプとしてLedgerに保存されます。この値は、発行者が非発行者アカウントにMPTを支払うたびに増加し、非発行者が発行アカウントにMPTを支払うたびに減少します。 | -| `TransferFee` | 数値 | UInt16 | この値は、トークンの二次販売が許可されている場合に、発行者が課す手数料をベーシスポイントの10分の1単位で指定します。このフィールドの有効な値は0から50,000までです。値1は1/10ベーシスポイントまたは0.001%に相当し、0%から50%までの手数料設定を可能にします。50,000の`TransferFee`は50%に相当します。このフィールドのデフォルト値は0です。転送手数料の小数点以下は切り捨てられます。支払いが小さい場合、手数料は0に切り捨てられる可能性があります。発行者は、MPTの`AssetScale`が十分に大きいことを確認する必要があります。 | -| `MPTokenMetadata` | 文字列 | Blob | この発行に関する任意のメタデータで、16進数形式です。このフィールドの制限は1024バイトです。 | -| `PreviousTxnID` | 文字列 | UInt256 | このオブジェクトを最後に変更したトランザクションのトランザクションID。 | -| `PreviousTxnLgrSeq` | 数値 | UInt32 | このオブジェクトを最後に変更したトランザクションを含むレジャーのシーケンス番号。 | -| `OwnerNode` | 文字列 | UInt64 | このアイテムが参照されている所有者のディレクトリのページ。 | +| フィールド名 | JSON型 | 内部型 | 説明 | +| :------------------ | :----- | :-------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `LedgerEntryType` | 数値 | UInt16 | 値0x007Eは文字列MPTokenIssuanceにマッピングされ、このオブジェクトがMulti-Purpose Token (MPT)を記述していることを示します。 | +| `Flags` | 数値 | UInt32 | [MPTokenIssuanceのフラグ](#mptokenissuanceのフラグ)をご覧ください。 | +| `Issuer` | 文字列 | AccountID | 特定の代替可能トークンの発行量とプロパティの両方を制御するアカウントのアドレス。 | +| `AssetScale` | 数値 | UInt8 | 標準単位と対応する分数単位との間の桁数の差です。より正確には、AssetScaleは自然数(0、1、2、...)で、1標準単位は対応する分数単位の10^(-scale)に等しくなります。分数単位が標準単位と等しい場合、AssetScaleは0です。 | +| `MaximumAmount` | 文字列 | UInt64 | この値は、非発行アカウントに配布できるMPTの最大数(つまり、発行可能な数)を指定する符号なし数値です。未指定の場合、この値は0x7FFFFFFFFFFFFFFFに設定されます。 | +| `OutstandingAmount` | 文字列 | UInt64 | すべてのトークン保有者に発行されたトークン量の合計を指定します。この値は、値が0の場合にLedger上で少ないスペースを占めるように、デフォルトタイプとしてLedgerに保存されます。この値は、発行者が非発行者アカウントにMPTを支払うたびに増加し、非発行者が発行アカウントにMPTを支払うたびに減少します。 | +| `TransferFee` | 数値 | UInt16 | この値は、トークンの二次販売が許可されている場合に、発行者が課す手数料をベーシスポイントの10分の1単位で指定します。このフィールドの有効な値は0から50,000までです。値1は1/10ベーシスポイントまたは0.001%に相当し、0%から50%までの手数料設定を可能にします。50,000の`TransferFee`は50%に相当します。このフィールドのデフォルト値は0です。転送手数料の小数点以下は切り捨てられます。支払いが小さい場合、手数料は0に切り捨てられる可能性があります。発行者は、MPTの`AssetScale`が十分に大きいことを確認する必要があります。 | +| `MPTokenMetadata` | 文字列 | Blob | この発行に関する任意のメタデータで、16進数形式です。このフィールドの制限は1024バイトです。 | +| `PreviousTxnID` | 文字列 | UInt256 | このオブジェクトを最後に変更したトランザクションのトランザクションID。 | +| `PreviousTxnLgrSeq` | 数値 | UInt32 | このオブジェクトを最後に変更したトランザクションを含むレジャーのシーケンス番号。 | +| `OwnerNode` | 文字列 | UInt64 | このアイテムが参照されている所有者のディレクトリのページ。 | | `Sequence` | 数値 | UInt32 | 特定の送信者からの発行が、Issuanceが後で削除された場合でも一度しか存在できないことを保証するために使用される32ビットの符号なし整数。新しい発行が作成されるたびに、この値はアカウントの現在の`Sequence`番号と一致する必要があります。`Tickets`は通常の順序外でトランザクションを送信できるように、これらのルールから一部例外を設けています。`Tickets`は後で使用するために予約されたシーケンス番号を表します。トランザクションは通常のアカウントSequence番号の代わりに`Ticket`を使用できます。MPTを作成するトランザクションがレジャーに含まれるたびに、トランザクションが正常に実行されたか、tecクラスのエラーコードで失敗したかに関係なく、シーケンス番号(またはTicket)が使用されます。その他のトランザクションの失敗はレジャーに含まれないため、送信者のシーケンス番号は変更されません(また、他の影響もありません)。未確認のMPT作成トランザクションが同じIssuerとシーケンス番号を持つことは可能です。そのようなトランザクションは相互に排他的であり、検証済みレジャーに含まれるのは最大で1つだけです。(他のトランザクションは最終的に効果がありません。) | - ### MPTokenIssuanceのフラグ Flagsは`MPToken`オブジェクトに関連付けられたプロパティまたはその他のオプションです。`MPTokenIssuanceSet`トランザクションを介して変更可能な`lsfMPTLocked`を除き、これらのフラグは不変です。`MPTokenIssuanceCreate`トランザクション中にのみ設定でき、後で変更することはできません。 -| フラグ名 | フラグ値 | 説明 | -| :------------------ | :----------- | ---- | -| `lsfMPTLocked` | `0x00000001` | 設定されている場合、すべての残高がロックされていることを示します。 | -| `lsfMPTCanLock` | `0x00000002` | 設定されている場合、発行者が個々の残高またはこのMPTのすべての残高をロックできることを示します。設定されていない場合、MPTはいかなる方法でもロックできません。 | -| `lsfMPTRequireAuth` | `0x00000004` | 設定されている場合、個々の保有者は承認を必要とすることを示します。これにより、発行者は自身の資産を保有できる人を制限できます。 | -| `lsfMPTCanEscrow` | `0x00000008` | 設定されている場合、個々の保有者が残高をエスクローに入れることができることを示します。 | -| `lsfMPTCanTrade` | `0x00000010` | 設定されている場合、個々の保有者がXRP Ledger DEXまたはAMMを使用して残高を取引できることを示します。 | +| フラグ名 | フラグ値 | 説明 | +| :------------------ | :----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `lsfMPTLocked` | `0x00000001` | 設定されている場合、すべての残高がロックされていることを示します。 | +| `lsfMPTCanLock` | `0x00000002` | 設定されている場合、発行者が個々の残高またはこのMPTのすべての残高をロックできることを示します。設定されていない場合、MPTはいかなる方法でもロックできません。 | +| `lsfMPTRequireAuth` | `0x00000004` | 設定されている場合、個々の保有者は承認を必要とすることを示します。これにより、発行者は自身の資産を保有できる人を制限できます。 | +| `lsfMPTCanEscrow` | `0x00000008` | 設定されている場合、個々の保有者が残高をエスクローに入れることができることを示します。 | +| `lsfMPTCanTrade` | `0x00000010` | 設定されている場合、個々の保有者がXRP Ledger DEXまたはAMMを使用して残高を取引できることを示します。 | | `lsfMPTCanTransfer` | `0x00000020` | 設定されている場合、非発行者が保有するトークンを他のアカウントに転送できることを示します。設定されていない場合、非発行者が保有するトークンは発行者に返却する以外は転送できないことを示します。これにより、ストアクレジットなどのユースケースが可能になります。 | -| `lsfMPTCanClawback` | `0x00000040` | 設定されている場合、発行者が`Clawback`トランザクションを使用して個々の保有者から価値を回収できることを示します。 | +| `lsfMPTCanClawback` | `0x00000040` | 設定されている場合、発行者が`Clawback`トランザクションを使用して個々の保有者から価値を回収できることを示します。 | {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/negativeunl.md b/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/negativeunl.md index ff1594ee5e..6ce7cbc7f6 100644 --- a/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/negativeunl.md +++ b/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/negativeunl.md @@ -1,9 +1,10 @@ --- seo: - description: 現在オフラインと思われるバリデータの一覧を表します。 + description: 現在オフラインと思われるバリデータの一覧を表します。 labels: - - ブロックチェーン + - ブロックチェーン --- + # NegativeUNL `NegativeUNL`オブジェクトタイプは、[ネガティブUNL](../../../../concepts/consensus-protocol/negative-unl.md)の現在の状態、つまり現在オフラインであると考えられる信頼できるバリデーションのリストを含んでいます。 @@ -32,29 +33,26 @@ labels: } ``` - `NegativeUNL`オブジェクトは、以下のフィールドを持ちます。 -| 名前 | JSONの型 | [内部の型][] | 必須? | 説明 | -|:----------------------|:---------|:-------------|:-------|:---------------------| -| `DisabledValidators` | 配列 | Array | いいえ | `DisabledValidator`オブジェクト(下記参照)は、現在無効になっている信頼できるバリデータを表すリストです。 | -| `Flags` | 数値 | UInt32 | はい | 真偽値フラグのビットマップ。NegativeUNLオブジェクトタイプにはフラグが定義されていないため、この値は常に`0`となります。 | -| `LedgerEntryType` | 文字列 | UInt16 | はい | `0x004E`は文字列`NegativeUNL`に対応し、このオブジェクトがNegativeUNLであることを意味します。 | -| `PreviousTxnID` | 文字列 | UInt256 | いいえ | このエントリを最後に変更したトランザクションの識別ハッシュ。{% amendment-disclaimer name="fixPreviousTxnID" /%} | +| 名前 | JSONの型 | [内部の型][] | 必須? | 説明 | +| :-------------------- | :------- | :----------- | :----- | :----------------------------------------------------------------------------------------------------------------------------------------------------- | +| `DisabledValidators` | 配列 | Array | いいえ | `DisabledValidator`オブジェクト(下記参照)は、現在無効になっている信頼できるバリデータを表すリストです。 | +| `Flags` | 数値 | UInt32 | はい | 真偽値フラグのビットマップ。NegativeUNLオブジェクトタイプにはフラグが定義されていないため、この値は常に`0`となります。 | +| `LedgerEntryType` | 文字列 | UInt16 | はい | `0x004E`は文字列`NegativeUNL`に対応し、このオブジェクトがNegativeUNLであることを意味します。 | +| `PreviousTxnID` | 文字列 | UInt256 | いいえ | このエントリを最後に変更したトランザクションの識別ハッシュ。{% amendment-disclaimer name="fixPreviousTxnID" /%} | | `PreviousTxnLgrSeq` | 数値 | UInt32 | いいえ | このエントリを最後に変更したトランザクションが含まれる[レジャーインデックス](../ledger-header.md)。{% amendment-disclaimer name="fixPreviousTxnID" /%} | -| `ValidatorToDisable` | 文字列 | Blob | いいえ | 次回のフラグレジャーで無効化される予定の信頼できるバリデータの公開鍵を表します。 | -| `ValidatorToReEnable` | 文字列 | Blob | いいえ | 次回のフラグレジャーで再有効化される予定のネガティブUNLの信頼できるバリデータの公開鍵を表します。 | +| `ValidatorToDisable` | 文字列 | Blob | いいえ | 次回のフラグレジャーで無効化される予定の信頼できるバリデータの公開鍵を表します。 | +| `ValidatorToReEnable` | 文字列 | Blob | いいえ | 次回のフラグレジャーで再有効化される予定のネガティブUNLの信頼できるバリデータの公開鍵を表します。 | ## DisabledValidatorオブジェクト 各`DisabledValidator`オブジェクトは無効化されたバリデータ一つ分を表します。JSONでは、`DisabledValidator`オブジェクトは`DisabledValidator`という1つのフィールドを持ち、そのオブジェクトは以下のフィールドを持つ別のオブジェクトを含んでいます。 -| 名前 | JSONの型 | [内部の型][]| 説明 | -|:----------------------|:---------|:----------|:----------------------| -| `FirstLedgerSequence` | 数値 | UInt32 | バリデータがネガティブUNLに追加されたときの[レジャーインデックス][]を表します。 | -| `PublicKey` | 文字列 | Blob | バリデータのマスター公開鍵を16進数で表します。 | - - +| 名前 | JSONの型 | [内部の型][] | 説明 | +| :-------------------- | :------- | :----------- | :------------------------------------------------------------------------------ | +| `FirstLedgerSequence` | 数値 | UInt32 | バリデータがネガティブUNLに追加されたときの[レジャーインデックス][]を表します。 | +| `PublicKey` | 文字列 | Blob | バリデータのマスター公開鍵を16進数で表します。 | ## NegativeUNL IDのフォーマット diff --git a/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/nftokenoffer.md b/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/nftokenoffer.md index 725b12e38c..b8216b2380 100644 --- a/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/nftokenoffer.md +++ b/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/nftokenoffer.md @@ -2,10 +2,11 @@ html: nftokenoffer.html parent: ledger-entry-types.html seo: - description: NFTを売買するオファーを作成する。 + description: NFTを売買するオファーを作成する。 labels: - - Non-fungible Tokens, NFTs + - Non-fungible Tokens, NFTs --- + # NFTokenOffer `lsfTransferable`フラグが設定されているトークンは、オファーを使って参加者間で転送することができます。`NFTokenOffer`オブジェクトは`NFToken`オブジェクトの購入、売却、または譲渡のオファーを表します。`NFToken`の所有者は`NFTokenCreateOffer`を使用して売買を行うことができます。 @@ -16,43 +17,40 @@ labels: ```json { - "Amount": "1000000", - "Flags": 1, - "LedgerEntryType": "NFTokenOffer", - "NFTokenID": "00081B5825A08C22787716FA031B432EBBC1B101BB54875F0002D2A400000000", - "NFTokenOfferNode": "0", - "Owner": "rhRxL3MNvuKEjWjL7TBbZSDacb8PmzAd7m", - "OwnerNode": "17", - "PreviousTxnID": "BFA9BE27383FA315651E26FDE1FA30815C5A5D0544EE10EC33D3E92532993769", - "PreviousTxnLgrSeq": 75443565, - "index": "AEBABA4FAC212BF28E0F9A9C3788A47B085557EC5D1429E7A8266FB859C863B3" + "Amount": "1000000", + "Flags": 1, + "LedgerEntryType": "NFTokenOffer", + "NFTokenID": "00081B5825A08C22787716FA031B432EBBC1B101BB54875F0002D2A400000000", + "NFTokenOfferNode": "0", + "Owner": "rhRxL3MNvuKEjWjL7TBbZSDacb8PmzAd7m", + "OwnerNode": "17", + "PreviousTxnID": "BFA9BE27383FA315651E26FDE1FA30815C5A5D0544EE10EC33D3E92532993769", + "PreviousTxnLgrSeq": 75443565, + "index": "AEBABA4FAC212BF28E0F9A9C3788A47B085557EC5D1429E7A8266FB859C863B3" } ``` - ### `NFTokenOffer`のフィールド -| 名前 | JSONの型 | [内部の型][] | 必須? | 説明 | -|:--------------------|:------------|:------------------|:------|:-----------| -| `Amount` | [通貨額][] | AMOUNT | はい | NFTokenに対して見込まれる、または提示される金額です。トークンに`lsfOnlyXRP`フラグが設定されている場合、金額はXRPで指定する必要があります。XRP以外の資産を指定する売却オファーは、0以外の金額を指定する必要があります。XRPを指定する売却オファーは、`無料`にすることができます(つまり、このフィールドは`"0"`とすることができます)。 | -| `Destination` | 文字列 | AccountID | いいえ | このオファーの対象となるAccountID。存在する場合、そのアカウントのみがオファーを受け入れることができます。 | -| `Expiration` | 数値 | UInt32 | いいえ | オファーが有効でなくなる時刻。値は、リップルエポックからの秒数です。 | -| `Flags` | 数値 | UInt32 | はい | このオブジェクトに関連付けられたフラグのセットで、様々なオプションや設定を指定するために使用されます。フラグは、以下の表に示すとおりです。 | -| `LedgerEntryType` | 文字列 | UInt16 | はい | レジャーオブジェクトの種類を示します(0x0074)。 | -| `NFTokenID` | 文字列 | UInt256 | はい | このオファーが参照するNFTokenオブジェクトのNFTokenID。 | -| `NFTokenOfferNode` | 文字列 | UInt64 | いいえ | トークン購入または売却のオファーディレクトリの中で、このトークンが記録されている内部的な台帳です。このフィールドを使用することで、オファーを効率的に削除することができます。 | -| `Owner` | 文字列 | AccountID | はい | オファーの作成者であり、所有者であるアカウント。NFTokenの現在の所有者のみがNFTokenの売却オファーを作成できますが、NFTokenの購入オファーはどのアカウントでも作成できます。 | -| `OwnerNode` | 文字列 | UInt64 | いいえ | このトークンが記録されているオーナーディレクトリ内のページを示す、内部的な台帳です。このフィールドを使用することで、オファーを効率的に削除することができます。 | -| `PreviousTxnID` | 文字列 | UInt256 | はい | このオブジェクトを最も最近更新したトランザクションの識別ハッシュ。 | -| `PreviousTxnLgrSeq` | 数値 | UInt32 | はい | このオブジェクトを最も最近更新したトランザクションを含むレジャーのインデックス。 | - - +| 名前 | JSONの型 | [内部の型][] | 必須? | 説明 | +| :------------------ | :--------- | :----------- | :----- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Amount` | [通貨額][] | AMOUNT | はい | NFTokenに対して見込まれる、または提示される金額です。トークンに`lsfOnlyXRP`フラグが設定されている場合、金額はXRPで指定する必要があります。XRP以外の資産を指定する売却オファーは、0以外の金額を指定する必要があります。XRPを指定する売却オファーは、`無料`にすることができます(つまり、このフィールドは`"0"`とすることができます)。 | +| `Destination` | 文字列 | AccountID | いいえ | このオファーの対象となるAccountID。存在する場合、そのアカウントのみがオファーを受け入れることができます。 | +| `Expiration` | 数値 | UInt32 | いいえ | オファーが有効でなくなる時刻。値は、リップルエポックからの秒数です。 | +| `Flags` | 数値 | UInt32 | はい | このオブジェクトに関連付けられたフラグのセットで、様々なオプションや設定を指定するために使用されます。フラグは、以下の表に示すとおりです。 | +| `LedgerEntryType` | 文字列 | UInt16 | はい | レジャーオブジェクトの種類を示します(0x0074)。 | +| `NFTokenID` | 文字列 | UInt256 | はい | このオファーが参照するNFTokenオブジェクトのNFTokenID。 | +| `NFTokenOfferNode` | 文字列 | UInt64 | いいえ | トークン購入または売却のオファーディレクトリの中で、このトークンが記録されている内部的な台帳です。このフィールドを使用することで、オファーを効率的に削除することができます。 | +| `Owner` | 文字列 | AccountID | はい | オファーの作成者であり、所有者であるアカウント。NFTokenの現在の所有者のみがNFTokenの売却オファーを作成できますが、NFTokenの購入オファーはどのアカウントでも作成できます。 | +| `OwnerNode` | 文字列 | UInt64 | いいえ | このトークンが記録されているオーナーディレクトリ内のページを示す、内部的な台帳です。このフィールドを使用することで、オファーを効率的に削除することができます。 | +| `PreviousTxnID` | 文字列 | UInt256 | はい | このオブジェクトを最も最近更新したトランザクションの識別ハッシュ。 | +| `PreviousTxnLgrSeq` | 数値 | UInt32 | はい | このオブジェクトを最も最近更新したトランザクションを含むレジャーのインデックス。 | #### NFTokenOfferのフラグ -|フラグ名 |16進数値 |10進数値|説明 | -|------------------|--------------|------|---------| -| `lsfSellNFToken `| `0x00000001` | 1 | 有効な場合、オファーは売却オファーとなります。そうでない場合、オファーは購入オファーとなります。 | +| フラグ名 | 16進数値 | 10進数値 | 説明 | +| ----------------- | ------------ | -------- | ------------------------------------------------------------------------------------------------ | +| `lsfSellNFToken ` | `0x00000001` | 1 | 有効な場合、オファーは売却オファーとなります。そうでない場合、オファーは購入オファーとなります。 | ## `NFTokenOffer`トランザクション @@ -64,23 +62,20 @@ labels: - [NFTokenCancelOffer][] - [NFTokenAcceptOffer][] - ### `NFTokenOffer`オブジェクトの検索 各`NFToken`は、2つの[ディレクトリ](directorynode.md)があります。1つはトークンを購入するためのオファー、もう1つはトークンを売却するためのオファーが含まれています。マーケットプレイスやその他のクライアントアプリケーションは、ユーザに対し`NFToken`オブジェクトの取引オファーを提示したり、自動的にマッチングすることができます。 - ### `NFTokenOffer`の準備金 各`NFTokenOffer`オブジェクトは、オファーを出すアカウントに1つ分の準備金の増額を要求します。執筆時点では、準備金の増分は2XRPです。この準備金は、オファーをキャンセルすることで取り戻すことができます。 - ### `NFTokenOfferID`のフォーマット `NFTokenOffer`オブジェクトのユニークID(`NFTokenOfferID`)は、以下の値を順番に結合したものです。 -* `NFTokenOffer`のスペースキー、`0x0074` -* オファーを出すアカウントの`AccountID` -* `NFTokenCreateOffer`トランザクションが生成する`NFTokenCreateOffer`の`Sequence`(または`Ticket`) +- `NFTokenOffer`のスペースキー、`0x0074` +- オファーを出すアカウントの`AccountID` +- `NFTokenCreateOffer`トランザクションが生成する`NFTokenCreateOffer`の`Sequence`(または`Ticket`) {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/nftokenpage.md b/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/nftokenpage.md index c3b1844344..cdb36240ed 100644 --- a/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/nftokenpage.md +++ b/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/nftokenpage.md @@ -2,57 +2,50 @@ html: nftokenpage.html parent: ledger-entry-types.html seo: - description: NFTokenを記録するためのレジャー構造。 + description: NFTokenを記録するためのレジャー構造。 labels: - - Non-fungible Tokens, NFTs + - Non-fungible Tokens, NFTs --- + # NFTokenPage `NFTokenPage`オブジェクトは、同じアカウントが所有する[NFT](../../../../concepts/tokens/nfts/index.md)のコレクションを表します。一つのアカウントは複数の`NFTokenPage`エントリを持つことができ、それらは双方向リストを形成します。 {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} - ## {% $frontmatter.seo.title %}のJSONの例 ```json { "LedgerEntryType": "NFTokenPage", - "PreviousPageMin": - "8A244DD75DAF4AC1EEF7D99253A7B83D2297818B2297818B70E264D2000002F2", - "NextPageMin": - "8A244DD75DAF4AC1EEF7D99253A7B83D2297818B2297818BE223B0AE0000010B", - "PreviousTxnID": - "95C8761B22894E328646F7A70035E9DFBECC90EDD83E43B7B973F626D21A0822", - "PreviousTxnLgrSeq": - 42891441, + "PreviousPageMin": "8A244DD75DAF4AC1EEF7D99253A7B83D2297818B2297818B70E264D2000002F2", + "NextPageMin": "8A244DD75DAF4AC1EEF7D99253A7B83D2297818B2297818BE223B0AE0000010B", + "PreviousTxnID": "95C8761B22894E328646F7A70035E9DFBECC90EDD83E43B7B973F626D21A0822", + "PreviousTxnLgrSeq": 42891441, "NFTokens": [ { "NFToken": { - "NFTokenID": - "000B013A95F14B0044F78A264E41713C64B5F89242540EE208C3098E00000D65", + "NFTokenID": "000B013A95F14B0044F78A264E41713C64B5F89242540EE208C3098E00000D65", "URI": "697066733A2F2F62616679626569676479727A74357366703775646D37687537367568377932366E6634646675796C71616266336F636C67747179353566627A6469" } - }, + } /* 更に多くのオブジェクト */ ] } ``` - ## {% $frontmatter.seo.title %}のフィールド [共通フィールド][]に加えて、{% $frontmatter.seo.title %}エントリは以下のフィールドを使用します。 -| 名前 | JSONの型 | [内部の型][] | 必須? | 説明 | -|:--------------------|:----------|:-----------|:----------|:------------| -| `LedgerEntryType` | 文字列 | UInt16 | はい | レジャーオブジェクトのタイプを識別文字列です。予約されているレジャーの種類は、0x0050です。| -| `NextPageMin` | 文字列 | UInt256 | いいえ | 次のページの位置情報(もしあれば)。このフィールドの使用方法は、NFTokenオブジェクトの追加の項に記載しています。| -| `NFTokens` | オブジェクト | TOKEN | はい | このNFTokenPageオブジェクトに含まれる`NFToken`オブジェクトのコレクション。本仕様では、1ページあたり32のNFTokenオブジェクトを上限としています。オブジェクトは、`NFTokenID`をソートパラメータとして使用して、低いものから高いものへとソートされた順序で格納されています。| -| `PreviousPageMin` | 文字列 | UInt256 | いいえ | 前のページの位置情報(もしあれば)。このフィールドの使用方法は、NFTokenオブジェクトの追加の項に記載しています。| -| `PreviousTxnID` | 文字列 | UInt256 | いいえ | このNFTokenPageオブジェクトを最も最近変更したトランザクションのトランザクションIDの情報を示します。| -| `PreviousTxnLgrSeq` | 数値 | UInt32 | いいえ | このNFTokenPageオブジェクトを最も最近変更したトランザクションを含むレジャーのシーケンスを示します。| - +| 名前 | JSONの型 | [内部の型][] | 必須? | 説明 | +| :------------------ | :----------- | :----------- | :----- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `LedgerEntryType` | 文字列 | UInt16 | はい | レジャーオブジェクトのタイプを識別文字列です。予約されているレジャーの種類は、0x0050です。 | +| `NextPageMin` | 文字列 | UInt256 | いいえ | 次のページの位置情報(もしあれば)。このフィールドの使用方法は、NFTokenオブジェクトの追加の項に記載しています。 | +| `NFTokens` | オブジェクト | TOKEN | はい | このNFTokenPageオブジェクトに含まれる`NFToken`オブジェクトのコレクション。本仕様では、1ページあたり32のNFTokenオブジェクトを上限としています。オブジェクトは、`NFTokenID`をソートパラメータとして使用して、低いものから高いものへとソートされた順序で格納されています。 | +| `PreviousPageMin` | 文字列 | UInt256 | いいえ | 前のページの位置情報(もしあれば)。このフィールドの使用方法は、NFTokenオブジェクトの追加の項に記載しています。 | +| `PreviousTxnID` | 文字列 | UInt256 | いいえ | このNFTokenPageオブジェクトを最も最近変更したトランザクションのトランザクションIDの情報を示します。 | +| `PreviousTxnLgrSeq` | 数値 | UInt32 | いいえ | このNFTokenPageオブジェクトを最も最近変更したトランザクションを含むレジャーのシーケンスを示します。 | ### NFTokenPage IDのフォーマット @@ -66,40 +59,34 @@ labels: この不思議な構造は、SHAMapの構造を利用して、`NFTokenPages`の二重リンクされたリストを反復することなく、個々の`NFToken`オブジェクトを効率的に検索できるようにするものです。 - ### `NFToken`オブジェクトの検索 特定の`NFToken`を検索するには、上記のように所有者のアカウントとトークンの`NFTokenID`を使用して`NFTokenPageID`を計算します。識別子がその値以下であるレジャーの項目を検索します。そのエントリが存在しないか、`NFTokenPage`でない場合、`NFToken`は与えられたアカウントによって保持されていません。 - ### `NFToken`オブジェクトの追加 `NFToken`オブジェクトを追加するには、そのオブジェクトが含まれるべき`NFTokenPage`を見つけ(`NFToken`オブジェクトを検索するのと同じテクニックを使用します)、そのページに追加します。`NFTokenPage`が一杯である場合、前後のページを検索し、その3ページでバランスをとりながら、必要に応じて新しい`NFTokenPage`を挿入します。 - ### `NFToken`オブジェクトの削除 `NFToken`の削除も追加と同じように動作します。ページ内の`NFToken`の数がある閾値を下回ると、サーバはそのページを前後のページと統合して準備金を取り戻そうとします。 - ### {% $frontmatter.seo.title %}の準備金 `NFTokenPage`ごとに、所有者アカウントに追加で準備金の費用がかかります。つまり、複数のNFTを保有するアカウントでは、NFTあたりの _実効_ 準備金コストは _R_ /32( _R_ は準備金増分)と低くすることが可能です。 - ### 準備金の実例 ページの分割と結合が機能するため、1ページあたりの`NFToken`オブジェクトの実際の数はやや予測不可能で、関係する実際の`NFTokenID`値に依存します。実際には、大量のNFTをミントまたは受領した後、各ページには16個のアイテムしかないこともあれば、32個のアイテムしかないこともあります。 以下の表は、様々なシナリオの下で、様々な数のNFTを所有した場合の**所有準備金の合計**を示したものです。 - -| 所有NFTの数 | 最良のケース | 一般 | 最悪のケース | -|:------------|:----------|:--------|:-----------| -| 32以下 | 0.2 XRP | 0.2 XRP | 0.2 XRP | -| 50 | 0.4 XRP | 0.6 XRP | 0.8 XRP | -| 200 | 1.4 XRP | 1.8 XRP | 2.6 XRP | -| 1000 | 6.4 XRP | 8.4 XRP | 12.6 XRP | +| 所有NFTの数 | 最良のケース | 一般 | 最悪のケース | +| :---------- | :----------- | :------ | :----------- | +| 32以下 | 0.2 XRP | 0.2 XRP | 0.2 XRP | +| 50 | 0.4 XRP | 0.6 XRP | 0.8 XRP | +| 200 | 1.4 XRP | 1.8 XRP | 2.6 XRP | +| 1000 | 6.4 XRP | 8.4 XRP | 12.6 XRP | diff --git a/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/offer.md b/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/offer.md index f92a46423b..3f5afe86c9 100644 --- a/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/offer.md +++ b/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/offer.md @@ -2,11 +2,13 @@ html: offer.html parent: ledger-entry-types.html seo: - description: 通貨取引を行う注文 + description: 通貨取引を行う注文 labels: - 分散型取引所 --- + # Offer + [[ソース]](https://github.com/XRPLF/rippled/blob/7e24adbdd0b61fb50967c4c6d4b27cc6d81b33f3/include/xrpl/protocol/detail/ledger_entries.macro#L242-L255 "ソース") `Offer`レジャーエントリは、XRP Ledgerの[分散型取引所](../../../../concepts/tokens/decentralized-exchange/index.md)で通貨を交換する[オファー](../../../../concepts/tokens/decentralized-exchange/offers.md)を表しています。(金融ではより伝統的に _オーダー_ として知られています)。[OfferCreateトランザクション][]は他のOfferを全額約定できない場合、Offerエントリを作成します。 @@ -40,47 +42,45 @@ labels: [共通フィールド][]に加えて、{% $frontmatter.seo.title %}エントリは以下のフィールドを使用します。 -| 名前 | JSONの型 | [内部の型][] | 必須? | 説明 | -|---------------------|-----------------------|--------------|-------|-------| -| `Account` | 文字列 | AccountID | はい | このオファーを所有するアカウントのアドレス。 | -| `AdditionalBooks` | 配列 | Array | いいえ| 追加のオファーディレクトリーのリスト。このフィールドは、このオファーが[許可型DEX](../../../../concepts/tokens/decentralized-exchange/permissioned-dexes.md)でハイブリッドオファーの場合にのみ存在します。配列には常に1つのエントリが含まれます。([PermissionedDEX amendment][] {% not-enabled /%}が必要です。) | -| `BookDirectory` | 文字列 - [ハッシュ][] | UInt256 | はい | このオファーにリンクしている[オファーディレクトリー](directorynode.md)のID。 | -| `BookNode` | 文字列 | UInt64 | はい | Offerディレクトリが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒント。 | -| `DomainID` | 文字列 - [ハッシュ][] | Hash256 | いいえ | 許可型DEXのレジャーエントリID。指定された場合、対応する[許可型DEX](../../../../concepts/tokens/decentralized-exchange/permissioned-dexes.md)のみを使用するパスを返します。([PermissionedDEX amendment][] {% not-enabled /%}が必要です。) | -| `Expiration` | 数値 | UInt32 | いいえ | (省略可)このオファーが資金不足とみなされる時刻。詳細は、[時間の指定][]をご覧ください。 | -| `Flags` | 数値 | UInt32 | はい | このオファーに対して有効になっているブール値フラグのビットマップ。 | -| `LedgerEntryType` | 文字列 | UInt16 | はい | 値が`0x006F`(文字列`Offer`にマッピング)の場合は、このオブジェクトが通貨取引オーダーを記述することを示す。 | -| `OwnerNode` | 文字列 | UInt64 | はい | 所有者ディレクトリーが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒント。**注記:** このオファーには、オファーを含む所有者ディレクトリーへの直接リンクは含まれていません。これは、その値を`Account`から取得できるためです。 | -| `PreviousTxnID` | 文字列 - [ハッシュ][] | UInt256 | はい | 最後にこのオブジェクトを変更したトランザクションの識別用ハッシュ。 | -| `Sequence` | 数値 | UInt32 | はい | `Offer`オブジェクトを作成した[OfferCreate][]トランザクションの`Sequence`値。`Account`とこのフィールドの組み合わせによってこのオファーが識別されます。 | -| `PreviousTxnLgrSeq` | 数値 | UInt32 | はい | 最後にこのオブジェクトを変更したトランザクションが記録された[レジャーインデックス][]。 | -| `TakerPays` | [通貨額][] | Amount | はい | オファー作成者がリクエストする残額と通貨の種類。 | -| `TakerGets` | [通貨額][] | Amount | はい | オファー作成者が提供する残額と通貨の種類。 | +| 名前 | JSONの型 | [内部の型][] | 必須? | 説明 | +| ------------------- | --------------------- | ------------ | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Account` | 文字列 | AccountID | はい | このオファーを所有するアカウントのアドレス。 | +| `AdditionalBooks` | 配列 | Array | いいえ | 追加のオファーディレクトリーのリスト。このフィールドは、このオファーが[許可型DEX](../../../../concepts/tokens/decentralized-exchange/permissioned-dexes.md)でハイブリッドオファーの場合にのみ存在します。配列には常に1つのエントリが含まれます。([PermissionedDEX amendment][] {% not-enabled /%}が必要です。) | +| `BookDirectory` | 文字列 - [ハッシュ][] | UInt256 | はい | このオファーにリンクしている[オファーディレクトリー](directorynode.md)のID。 | +| `BookNode` | 文字列 | UInt64 | はい | Offerディレクトリが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒント。 | +| `DomainID` | 文字列 - [ハッシュ][] | Hash256 | いいえ | 許可型DEXのレジャーエントリID。指定された場合、対応する[許可型DEX](../../../../concepts/tokens/decentralized-exchange/permissioned-dexes.md)のみを使用するパスを返します。([PermissionedDEX amendment][] {% not-enabled /%}が必要です。) | +| `Expiration` | 数値 | UInt32 | いいえ | (省略可)このオファーが資金不足とみなされる時刻。詳細は、[時間の指定][]をご覧ください。 | +| `Flags` | 数値 | UInt32 | はい | このオファーに対して有効になっているブール値フラグのビットマップ。 | +| `LedgerEntryType` | 文字列 | UInt16 | はい | 値が`0x006F`(文字列`Offer`にマッピング)の場合は、このオブジェクトが通貨取引オーダーを記述することを示す。 | +| `OwnerNode` | 文字列 | UInt64 | はい | 所有者ディレクトリーが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒント。**注記:** このオファーには、オファーを含む所有者ディレクトリーへの直接リンクは含まれていません。これは、その値を`Account`から取得できるためです。 | +| `PreviousTxnID` | 文字列 - [ハッシュ][] | UInt256 | はい | 最後にこのオブジェクトを変更したトランザクションの識別用ハッシュ。 | +| `Sequence` | 数値 | UInt32 | はい | `Offer`オブジェクトを作成した[OfferCreate][]トランザクションの`Sequence`値。`Account`とこのフィールドの組み合わせによってこのオファーが識別されます。 | +| `PreviousTxnLgrSeq` | 数値 | UInt32 | はい | 最後にこのオブジェクトを変更したトランザクションが記録された[レジャーインデックス][]。 | +| `TakerPays` | [通貨額][] | Amount | はい | オファー作成者がリクエストする残額と通貨の種類。 | +| `TakerGets` | [通貨額][] | Amount | はい | オファー作成者が提供する残額と通貨の種類。 | ## Offerのフラグ `Offer`エントリは以下のフラグを`Flags`フィールドに指定することができます。 -| フラグ名 | 16進数値 | 10進数値 | 対応する[OfferCreateフラグ](../../transactions/types/offercreate.md#offercreateフラグ) | 説明 | -|--------------|--------------|----------|-------------|------------------------| -| `lsfPassive` | `0x00010000` | 65536 | `tfPassive` | オブジェクトはパッシブオファーとして発注されています。レジャー内のオブジェクトには影響しません。 | -| `lsfSell` | `0x00020000` | 131072 | `tfSell` | オブジェクトは売却オファーとして発注されています。これは台帳にあるオブジェクトには何の影響もありません (`tfSell`は指定したレートよりも良いレートが存在する場合にのみ意味を持ち、台帳にこのフラグを持ったオブジェクトが入ることはありません。)。 | -| `lsfHybrid` | `0x00040000` | 262144 | `tfHybrid` | ハイブリッドオファーとして作成されています。これは、[許可型DEX](../../../../concepts/tokens/decentralized-exchange/permissioned-dexes.md)と公開DEXの両方にリストされていることを意味します。([PermissionedDEX amendment][] {% not-enabled /%}が必要です。) | - +| フラグ名 | 16進数値 | 10進数値 | 対応する[OfferCreateフラグ](../../transactions/types/offercreate.md#offercreateフラグ) | 説明 | +| ------------ | ------------ | -------- | -------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `lsfPassive` | `0x00010000` | 65536 | `tfPassive` | オブジェクトはパッシブオファーとして発注されています。レジャー内のオブジェクトには影響しません。 | +| `lsfSell` | `0x00020000` | 131072 | `tfSell` | オブジェクトは売却オファーとして発注されています。これは台帳にあるオブジェクトには何の影響もありません (`tfSell`は指定したレートよりも良いレートが存在する場合にのみ意味を持ち、台帳にこのフラグを持ったオブジェクトが入ることはありません。)。 | +| `lsfHybrid` | `0x00040000` | 262144 | `tfHybrid` | ハイブリッドオファーとして作成されています。これは、[許可型DEX](../../../../concepts/tokens/decentralized-exchange/permissioned-dexes.md)と公開DEXの両方にリストされていることを意味します。([PermissionedDEX amendment][] {% not-enabled /%}が必要です。) | ## {% $frontmatter.seo.title %}の準備金 {% code-page-name /%}エントリは、台帳上にエントリがある限り、オファーを出したアカウントの所有者準備金の対象の1つとしてカウントされます。オファーをキャンセルまたは約定すると、準備金が解放されます。準備金は、資金がないことが判明してオファーが削除された場合にも解放されます。 - ## オファーIDのフォーマット `Offer`オブジェクトのIDは、以下の値がこの順序で連結されている[SHA-512Half][]です。 -* Offerスペースキー(`0x006F`) -* オファーを行うアカウントのAccountID -* オファーを作成した[OfferCreateトランザクション][]のシーケンス番号 +- Offerスペースキー(`0x006F`) +- オファーを行うアカウントのAccountID +- オファーを作成した[OfferCreateトランザクション][]のシーケンス番号 - OfferCreateトランザクションが[チケット](../../../../concepts/accounts/tickets.md)を使用した場合、代わりに`TicketSequence`値を使用します。 + OfferCreateトランザクションが[チケット](../../../../concepts/accounts/tickets.md)を使用した場合、代わりに`TicketSequence`値を使用します。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/oracle.md b/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/oracle.md index 55c9246e74..692dd4b1e9 100644 --- a/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/oracle.md +++ b/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/oracle.md @@ -12,7 +12,6 @@ Oracleのレジャーエントリには、単一資産の価格オラクルオ {% /admonition %} - ## OracleのJSONの例 ```json @@ -27,9 +26,9 @@ Oracleのレジャーエントリには、単一資産の価格オラクルオ "BaseAsset": "XRP", "QuoteAsset": "USD", "AssetPrice": 740, - "Scale": 3, + "Scale": 3 } - }, + } ], "LastUpdateTime": 1724871860, "PreviousTxnID": "C53ECF838647FA5A4C780377025FEC7999AB4182590510CA461444B207AB74A9", @@ -37,31 +36,28 @@ Oracleのレジャーエントリには、単一資産の価格オラクルオ } ``` - ## Oracleのフィールド -| フィールド | JSONの型 | 内部の型 | 必須? | 説明 | -|---------------------|-----------|---------------|-----------|-------------| -| `Owner` | 文字列 | AccountID | はい | オラクルの更新および削除権限を持つXRPLアカウント。このアカウントで[マルチシグ](../../../../tutorials/how-tos/manage-account-settings/set-up-multi-signing.md)を設定することをお勧めします。 | -| `Provider` | 文字列 | Blob | はい | オラクルプロバイダーを識別する任意の値、例えば、Chainlink、Band、またはDIAなど。このフィールドは、最大256文字のASCII 16進エンコード文字(0x20-0x7E)の文字列です。 | -| `PriceDataSeries` | 配列 | Array | はい | トークンペアの価格情報を表す、最大10個の`PriceData`オブジェクトの配列。`PriceData`オブジェクトが5個を超える場合、2つの所有者準備金が必要です。 | -| `LastUpdateTime` | 数値 | UInt32 | はい | Unix時間で表現された、データの最終更新時刻。 | -| `URI` | 文字列 | Blob | いいえ | 任意で指定可能なユニバーサルリソース識別子で、チェーン外の価格データを参照します。このフィールドは256バイトに制限されています。 | -| `AssetClass` | 文字列 | Blob | はい | 「通貨」、「商品」、「指数」などの資産の種類を説明します。このフィールドは、最大16文字のASCII 16進コード文字(0x20-0x7E)の文字列です。 | -| `OwnerNode` | 文字列 | UInt64 | はい | ディレクトリが複数のページで構成されている場合、このエントリにリンクしているオラクル所有者のオーナーディレクトリのページを示すヒント。 | -| `PreviousTxnID` | 文字列 | UInt256 | はい | このエントリを変更した前回のトランザクションのハッシュ値。 | -| `PreviousTxnLgrSeq` | 文字列 | UInt32 | はい | このエントリが最後に変更または作成されたレジャーのインデックス。 | - +| フィールド | JSONの型 | 内部の型 | 必須? | 説明 | +| ------------------- | -------- | --------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Owner` | 文字列 | AccountID | はい | オラクルの更新および削除権限を持つXRPLアカウント。このアカウントで[マルチシグ](../../../../tutorials/how-tos/manage-account-settings/set-up-multi-signing.md)を設定することをお勧めします。 | +| `Provider` | 文字列 | Blob | はい | オラクルプロバイダーを識別する任意の値、例えば、Chainlink、Band、またはDIAなど。このフィールドは、最大256文字のASCII 16進エンコード文字(0x20-0x7E)の文字列です。 | +| `PriceDataSeries` | 配列 | Array | はい | トークンペアの価格情報を表す、最大10個の`PriceData`オブジェクトの配列。`PriceData`オブジェクトが5個を超える場合、2つの所有者準備金が必要です。 | +| `LastUpdateTime` | 数値 | UInt32 | はい | Unix時間で表現された、データの最終更新時刻。 | +| `URI` | 文字列 | Blob | いいえ | 任意で指定可能なユニバーサルリソース識別子で、チェーン外の価格データを参照します。このフィールドは256バイトに制限されています。 | +| `AssetClass` | 文字列 | Blob | はい | 「通貨」、「商品」、「指数」などの資産の種類を説明します。このフィールドは、最大16文字のASCII 16進コード文字(0x20-0x7E)の文字列です。 | +| `OwnerNode` | 文字列 | UInt64 | はい | ディレクトリが複数のページで構成されている場合、このエントリにリンクしているオラクル所有者のオーナーディレクトリのページを示すヒント。 | +| `PreviousTxnID` | 文字列 | UInt256 | はい | このエントリを変更した前回のトランザクションのハッシュ値。 | +| `PreviousTxnLgrSeq` | 文字列 | UInt32 | はい | このエントリが最後に変更または作成されたレジャーのインデックス。 | ### PriceDataのフィールド -| フィールド | JSONの型 | 内部の型 | 必須? | 説明 | -|---------------------|-----------|---------------|-----------|-------------| -| `BaseAsset` | 文字列 | Currency | はい | 取引ペアにおける基軸となる資産。株式シンボル、債券CUSIP、通貨コードなど、有効な識別子であれば何でも使用できます。 | -| `QuoteAsset` | 文字列 | Currency | はい | 取引ペアにおける見積資産。見積資産は、基軸資産の1単位の価格を示します。 | -| `AssetPrice` | 数値 | UInt64 | いいえ | `Scale`の精度レベルを適用した後の資産価格。最後の更新トランザクションに`BaseAsset`/`QuoteAsset`のペアが含まれていなかった場合は、含まれません。| -| `Scale` | 数値 | UInt8 | いいえ | 資産価格に適用するスケーリング値。例えば、`Scale`が6で元の価格が0.155の場合、スケーリング後の価格は155000となります。有効な範囲は0~10です。最後の更新トランザクションに`BaseAsset`/`QuoteAsset`のペアが含まれていない場合は、含まれません。 | - +| フィールド | JSONの型 | 内部の型 | 必須? | 説明 | +| ------------ | -------- | -------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `BaseAsset` | 文字列 | Currency | はい | 取引ペアにおける基軸となる資産。株式シンボル、債券CUSIP、通貨コードなど、有効な識別子であれば何でも使用できます。 | +| `QuoteAsset` | 文字列 | Currency | はい | 取引ペアにおける見積資産。見積資産は、基軸資産の1単位の価格を示します。 | +| `AssetPrice` | 数値 | UInt64 | いいえ | `Scale`の精度レベルを適用した後の資産価格。最後の更新トランザクションに`BaseAsset`/`QuoteAsset`のペアが含まれていなかった場合は、含まれません。 | +| `Scale` | 数値 | UInt8 | いいえ | 資産価格に適用するスケーリング値。例えば、`Scale`が6で元の価格が0.155の場合、スケーリング後の価格は155000となります。有効な範囲は0~10です。最後の更新トランザクションに`BaseAsset`/`QuoteAsset`のペアが含まれていない場合は、含まれません。 | ## Oracleの準備金 @@ -81,11 +77,11 @@ OracleオブジェクトのIDは、以下の値を順番に連結した[SHA-512H ```json { - "PriceData" : { - "BaseAsset" : "3931323831305252390000000000000000000000", - "QuoteAsset" : "USD", - "Scale" : 1, - "SymbolPrice" : 740 + "PriceData": { + "BaseAsset": "3931323831305252390000000000000000000000", + "QuoteAsset": "USD", + "Scale": 1, + "SymbolPrice": 740 } } ``` diff --git a/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/paychannel.md b/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/paychannel.md index 8d5287c6c7..3b632d0b51 100644 --- a/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/paychannel.md +++ b/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/paychannel.md @@ -1,10 +1,12 @@ --- seo: - description: 非同期XRP支払い用のチャネルです。 + description: 非同期XRP支払い用のチャネルです。 labels: - - Payment Channel + - Payment Channel --- + # PayChannel + [[ソース]](https://github.com/XRPLF/rippled/blob/c0a0b79d2d483b318ce1d82e526bd53df83a4a2c/src/ripple/protocol/impl/LedgerFormats.cpp#L180-L198 "Source") `PayChannel`エントリは1つの[支払いチャネル](../../../../concepts/payment-types/payment-channels.md)を表します。 @@ -39,23 +41,23 @@ labels: [共通フィールド][]に加えて、{% $frontmatter.seo.title %}エントリは以下のフィールドを使用します。 -| 名前 | JSONの型 | [内部の型][] | 必須? | 説明 | -|:--------------------|:---------|:------------|:----- |:-----| -| `Account` | 文字列 | AccountID | はい | このPayment Channelを所有する支払元アドレス。これは、Channelを作成したトランザクションの送信側アドレスから取得されます。 | -| `Amount` | 文字列 | Amount | はい | このChannelに割り当てられている [XRPのdrop数][]の合計です。これには宛先アドレスに支払われたXRPも含まれます。最初にChannelを作成したトランザクションにより設定され、支払元アドレスがPaymentChannelFundトランザクションを送信する場合に増加できます。 | -| `Balance` | 文字列 | Amount | はい | このChannelがすでに支払った[XRPのdrop数][]の合計。この値と`Amount`フィールドの差異は、PaymentChannelClaimトランザクションの宛先アドレスに対して支払うことができるXRPの量を示します。Channelが閉鎖すると、残りの差額は支払元アドレスに返されます。 | -| `CancelAfter` | 数値 | UInt32 | いいえ | _(省略可)_ このPayment Channelの不変の有効期限([Rippleエポック以降の経過秒数][])。この値が指定されており、前のレジャーの[`close_time`フィールド](../ledger-header.md)よりも小さい場合、Channelは有効期限切れです。これは、Channelを作成するトランザクションによりオプションで設定され、変更できません。 | -| `Destination` | 文字列 | AccountID | はい | このPayment Channelの宛先アドレス。Payment Channelが開いている場合、このアドレスは、このChannelからXRPを受領できる唯一のアドレスです。これは、Channelを作成したトランザクションの`Destination`フィールドから取得されます。 | -| `DestinationTag` | 数値 | UInt32 | いいえ | _(省略可)_ このPayment Channelの宛先(宛先アドレスのホスティングされている受取人など) を詳しく指定するための任意のタグ。 | -| `DestinationNode` | 文字列 | UInt64 | いいえ | _(省略可)_ 宛先の所有者ディレクトリが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。[fixPayChanRecipientOwnerDir Amendment][]を有効にする前に作成されたPayment Channelでは省略されています。 | -| `Expiration` | 数値 | UInt32 | いいえ | _(省略可)_ このPayment Channelの変更可能な有効期限([Rippleエポック以降の経過秒数][])。この値が指定されており、前のレジャーの[`close_time`フィールド](../ledger-header.md)よりも小さい場合、Channelは有効期限切れです。詳細は、[Channel有効期限の設定](#channel有効期限の設定)をご覧ください。 | -| `LedgerEntryType` | 文字列 | UInt16 | はい | 値`0x0078`が文字列`PayChannel`にマッピングされている場合は、このオブジェクトがPayment Channelオブジェクトであることを示します。 | -| `OwnerNode` | 文字列 | UInt64 | はい | 支払元アドレスの所有者のディレクトリが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。 | -| `PreviousTxnID` | 文字列 | UInt256 | はい | 最後にこのオブジェクトを変更したトランザクションの識別用ハッシュ。 | -| `PreviousTxnLgrSeq` | 数値 | UInt32 | はい | 最後にこのオブジェクトを変更したトランザクションが記録された[レジャーインデックス][]。 | -| `PublicKey` | 文字列 | PubKey | はい | このChannelに対するクレームの署名に使用できるキーペアの公開鍵(16進数)。有効なsecp256k1公開鍵またはEd25519公開鍵を指定できます。Channelを作成したトランザクションによって設定されます。Channelに対するクレームに使用される公開鍵と一致している必要があります。Channelの支払元アドレスは、署名付きクレームなしでこのChannelから宛先にXRPを送金することもできます。 | -| `SettleDelay` | 数値 | UInt32 | はい | ChannelにXRPがまだある場合に、支払元アドレスがそのChannelを閉鎖するまでに待機する秒数。値が小さい場合、支払元アドレスがChannelの閉鎖を要求した後で、宛先アドレスが未処理のクレームを精算できる時間が短くなります。32ビットの符号なし整数に収まる値(0~2^32-1)であれば任意の値を指定できます。これは、Channelを作成するトランザクションにより設定されます。 | -| `SourceTag` | 数値 | UInt32 | いいえ | _(省略可)_ このPayment Channelの支払元(所有者のアドレスのホスティングされている受取人など) を詳しく指定するための任意のタグ。 | +| 名前 | JSONの型 | [内部の型][] | 必須? | 説明 | +| :------------------ | :------- | :----------- | :----- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Account` | 文字列 | AccountID | はい | このPayment Channelを所有する支払元アドレス。これは、Channelを作成したトランザクションの送信側アドレスから取得されます。 | +| `Amount` | 文字列 | Amount | はい | このChannelに割り当てられている [XRPのdrop数][]の合計です。これには宛先アドレスに支払われたXRPも含まれます。最初にChannelを作成したトランザクションにより設定され、支払元アドレスがPaymentChannelFundトランザクションを送信する場合に増加できます。 | +| `Balance` | 文字列 | Amount | はい | このChannelがすでに支払った[XRPのdrop数][]の合計。この値と`Amount`フィールドの差異は、PaymentChannelClaimトランザクションの宛先アドレスに対して支払うことができるXRPの量を示します。Channelが閉鎖すると、残りの差額は支払元アドレスに返されます。 | +| `CancelAfter` | 数値 | UInt32 | いいえ | _(省略可)_ このPayment Channelの不変の有効期限([Rippleエポック以降の経過秒数][])。この値が指定されており、前のレジャーの[`close_time`フィールド](../ledger-header.md)よりも小さい場合、Channelは有効期限切れです。これは、Channelを作成するトランザクションによりオプションで設定され、変更できません。 | +| `Destination` | 文字列 | AccountID | はい | このPayment Channelの宛先アドレス。Payment Channelが開いている場合、このアドレスは、このChannelからXRPを受領できる唯一のアドレスです。これは、Channelを作成したトランザクションの`Destination`フィールドから取得されます。 | +| `DestinationTag` | 数値 | UInt32 | いいえ | _(省略可)_ このPayment Channelの宛先(宛先アドレスのホスティングされている受取人など) を詳しく指定するための任意のタグ。 | +| `DestinationNode` | 文字列 | UInt64 | いいえ | _(省略可)_ 宛先の所有者ディレクトリが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。[fixPayChanRecipientOwnerDir Amendment][]を有効にする前に作成されたPayment Channelでは省略されています。 | +| `Expiration` | 数値 | UInt32 | いいえ | _(省略可)_ このPayment Channelの変更可能な有効期限([Rippleエポック以降の経過秒数][])。この値が指定されており、前のレジャーの[`close_time`フィールド](../ledger-header.md)よりも小さい場合、Channelは有効期限切れです。詳細は、[Channel有効期限の設定](#channel有効期限の設定)をご覧ください。 | +| `LedgerEntryType` | 文字列 | UInt16 | はい | 値`0x0078`が文字列`PayChannel`にマッピングされている場合は、このオブジェクトがPayment Channelオブジェクトであることを示します。 | +| `OwnerNode` | 文字列 | UInt64 | はい | 支払元アドレスの所有者のディレクトリが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。 | +| `PreviousTxnID` | 文字列 | UInt256 | はい | 最後にこのオブジェクトを変更したトランザクションの識別用ハッシュ。 | +| `PreviousTxnLgrSeq` | 数値 | UInt32 | はい | 最後にこのオブジェクトを変更したトランザクションが記録された[レジャーインデックス][]。 | +| `PublicKey` | 文字列 | PubKey | はい | このChannelに対するクレームの署名に使用できるキーペアの公開鍵(16進数)。有効なsecp256k1公開鍵またはEd25519公開鍵を指定できます。Channelを作成したトランザクションによって設定されます。Channelに対するクレームに使用される公開鍵と一致している必要があります。Channelの支払元アドレスは、署名付きクレームなしでこのChannelから宛先にXRPを送金することもできます。 | +| `SettleDelay` | 数値 | UInt32 | はい | ChannelにXRPがまだある場合に、支払元アドレスがそのChannelを閉鎖するまでに待機する秒数。値が小さい場合、支払元アドレスがChannelの閉鎖を要求した後で、宛先アドレスが未処理のクレームを精算できる時間が短くなります。32ビットの符号なし整数に収まる値(0~2^32-1)であれば任意の値を指定できます。これは、Channelを作成するトランザクションにより設定されます。 | +| `SourceTag` | 数値 | UInt32 | いいえ | _(省略可)_ このPayment Channelの支払元(所有者のアドレスのホスティングされている受取人など) を詳しく指定するための任意のタグ。 | ## Channelの有効期限 @@ -63,7 +65,6 @@ Payment Channelの`Expiration`フィールドは、`CancelAfter`フィールド Payment Channelが期限切れになると、新しいトランザクションだけが台帳の内容を変更できるため、最初は台帳に残ります。有効期限が切れた後にそのチャネルにアクセスするトランザクションがあると、トランザクション処理は自動的にそのチャネルを閉じます。期限切れのチャネルを閉じ、未使用のXRPを所有者に返却するには、何らかのアドレスがチャネルにアクセスする新しいPaymentChannelClaimまたはPaymentChannelFundトランザクションを送信する必要があります。 - ### 支払元アドレス 支払元アドレスは、PaymentChannelFundトランザクションタイプを使用して直接`Expiration`を設定できます。新しい値は、以下の早い方の値よりも前であってはなりません。 @@ -88,20 +89,17 @@ Payment Channelが期限切れになると、新しいトランザクション その他のアドレスが`Expiration`フィールドを設定しようとすると、トランザクションはエラーコード`tecNO_PERMISSION`で失敗します。ただし、Channelがすでに有効期限切れになっている場合、このトランザクションでChannelが閉鎖し、その結果は`tesSUCCESS`になります。 - - ## {% $frontmatter.seo.title %}の準備金 {% code-page-name /%}エントリは、台帳上にエントリがある限り、支払いチャネルを作成したアカウントの所有者準備金の対象の1つとしてカウントされます。チャネルを削除すると、準備金が解放されます。これは、チャネルの有効期限が切れた後(明示的にクローズされた場合を含む)にのみ実行できます。 - ## PayChannel IDのフォーマット `PayChannel`オブジェクトのIDは、以下の値がこの順序で連結されている[SHA-512Half][]です。 -* PayChannelスペースキー(`0x0078`) -* 支払元アカウントのAccountID -* 宛先アカウントのAccountID -* Channelを作成したトランザクションのシーケンス番号 +- PayChannelスペースキー(`0x0078`) +- 支払元アカウントのAccountID +- 宛先アカウントのAccountID +- Channelを作成したトランザクションのシーケンス番号 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/permissioneddomain.md b/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/permissioneddomain.md index a3929fa08c..51bf31326e 100644 --- a/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/permissioneddomain.md +++ b/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/permissioneddomain.md @@ -1,18 +1,19 @@ --- seo: - description: PermissionedDomainレジャーエントリは、他の機能へのアクセスを制限するために使用される許可型ドメインを表します。 + description: PermissionedDomainレジャーエントリは、他の機能へのアクセスを制限するために使用される許可型ドメインを表します。 labels: - コンプライアンス - 許可型ドメイン --- + # PermissionedDomain + [[ソース]](https://github.com/XRPLF/rippled/blob/master/include/xrpl/protocol/detail/ledger_entries.macro#L451-L461 "ソース") `PermissionedDomain`レジャーエントリは、単一の[許可型ドメイン][]インスタンスを記述します。[PermissionedDomainSetトランザクション][]を送信することで、許可型ドメインを作成できます。 _([PermissionedDomains amendment][]が必要です {% not-enabled /%})_ - ## {% $frontmatter.seo.title %}のJSONの例 ```json @@ -25,10 +26,10 @@ _([PermissionedDomains amendment][]が必要です {% not-enabled /%})_ "Sequence": 390, "AcceptedCredentials": [ { - "Credential": { - "Issuer": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "CredentialType": "6D795F63726564656E7469616C" - } + "Credential": { + "Issuer": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "CredentialType": "6D795F63726564656E7469616C" + } } ], "PreviousTxnID": "E7E3F2BBAAF48CF893896E48DC4A02BDA0C747B198D5AE18BC3D7567EE64B904", @@ -43,24 +44,23 @@ _([PermissionedDomains amendment][]が必要です {% not-enabled /%})_ [共通フィールド](../common-fields.md)に加えて、{% code-page-name /%}エントリには次のフィールドがあります。 -| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | -|:----------------------|:----------------------|:-------------|:------|:------| +| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | +| :-------------------- | :-------------------- | :----------- | :---- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `AcceptedCredentials` | 配列 | Array | はい | このドメインへのアクセスを許可する1から10個の[AcceptedCredentials](#acceptedcredentialsオブジェクト)オブジェクトのリスト。配列は発行者でソートされて保存されます。 | -| `Owner` | 文字列 - [アドレス][] | AccountID | はい | このドメインの所有者のアドレス。 | -| `OwnerNode` | 文字列 | UInt64 | はい | 所有者ディレクトリが複数のページで構成されている場合、このエントリにリンクする所有者ディレクトリのページを示すヒント。 | -| `PreviousTxnID` | 文字列 - [ハッシュ][] | Hash256 | はい | このエントリを最後に変更したトランザクションの識別ハッシュ。 | -| `PreviousTxnLgrSeq` | 数値 | UInt32 | はい | このオブジェクトを最後に変更したトランザクションを含む[レジャーのインデックス][Ledger Index]。 | -| `Sequence` | 数値 | UInt32 | はい | このエントリを作成したトランザクションの`Sequence`値。 | - +| `Owner` | 文字列 - [アドレス][] | AccountID | はい | このドメインの所有者のアドレス。 | +| `OwnerNode` | 文字列 | UInt64 | はい | 所有者ディレクトリが複数のページで構成されている場合、このエントリにリンクする所有者ディレクトリのページを示すヒント。 | +| `PreviousTxnID` | 文字列 - [ハッシュ][] | Hash256 | はい | このエントリを最後に変更したトランザクションの識別ハッシュ。 | +| `PreviousTxnLgrSeq` | 数値 | UInt32 | はい | このオブジェクトを最後に変更したトランザクションを含む[レジャーのインデックス][Ledger Index]。 | +| `Sequence` | 数値 | UInt32 | はい | このエントリを作成したトランザクションの`Sequence`値。 | ### AcceptedCredentialsオブジェクト `AcceptedCredentials`配列の各メンバーは、次のネストされたフィールドを持つ内部オブジェクトです。 -| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | -|:-----------------|:---------------------|:------------------|:----------|--------------| -| `Issuer` | 文字列 - [アドレス][] | AccountID | はい | 資格情報の発行者。 | -| `CredentialType` | 文字列 | Blob | はい | 資格情報の種類。これは、発行者が資格情報を発行するときに設定する1から64バイトの任意の値です。 | +| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | +| :--------------- | :-------------------- | :----------- | :---- | --------------------------------------------------------------------------------------------- | +| `Issuer` | 文字列 - [アドレス][] | AccountID | はい | 資格情報の発行者。 | +| `CredentialType` | 文字列 | Blob | はい | 資格情報の種類。これは、発行者が資格情報を発行するときに設定する1から64バイトの任意の値です。 | {% admonition type="info" name="注記" %} 通常のJSON形式では、内部オブジェクトは、内部オブジェクトの種類を定義する名前を持つ1つのフィールドを持つオブジェクトでラップされます。この場合、ラッピングフィールドは`Credential`と呼ばれます。 @@ -76,21 +76,19 @@ _([PermissionedDomains amendment][]が必要です {% not-enabled /%})_ // ... 追加のCredential内部オブジェクト ... ] ``` -{% /admonition %} +{% /admonition %} ## {% $frontmatter.seo.title %}のフラグ {% code-page-name /%}エントリには、フラグは定義されていません。 - ## {% $frontmatter.seo.title %}の準備金要件 {% code-page-name /%}エントリは、所有者の準備金要件に対して1つのアイテムとしてカウントされます。 {% code-page-name /%}エントリは、削除ブロッカーであり、つまり、アカウントが{% code-page-name /%}エントリを所有している場合、アカウントは削除できません。 - ## {% $frontmatter.seo.title %} IDのフォーマット {% code-page-name /%}エントリのIDは、次の値を順番に連結した[SHA-512Half][]です。 @@ -99,5 +97,4 @@ _([PermissionedDomains amendment][]が必要です {% not-enabled /%})_ 2. 所有者のアカウントID 3. 作成した{% code-page-name /%}トランザクションのシーケンス番号 - {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/ripplestate.md b/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/ripplestate.md index aba8e9e79a..7e1dd707fb 100644 --- a/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/ripplestate.md +++ b/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/ripplestate.md @@ -2,11 +2,13 @@ html: ripplestate.html parent: ledger-entry-types.html seo: - description: 2つのアカウントをリンクし、それらのアカウント間の特定の通貨の残高を追跡します。トラストラインのコンセプトは、このオブジェクトタイプを抽象化することです。 + description: 2つのアカウントをリンクし、それらのアカウント間の特定の通貨の残高を追跡します。トラストラインのコンセプトは、このオブジェクトタイプを抽象化することです。 labels: - トークン --- + # RippleState + [[ソース]](https://github.com/XRPLF/rippled/blob/5d2d88209f1732a0f8d592012094e345cbe3e675/src/ripple/protocol/impl/LedgerFormats.cpp#L70 "Source") `RippleState`のレジャーエントリは、2つのアカウント間の[トラストライン](../../../../concepts/tokens/fungible-tokens/index.md)を表します。各アカウントは限度額やその他の設定を変更できますが、残高は共通の値です。完全にデフォルトのトラストラインは、存在しないトラストラインと同じとみなされ、自動的に削除されます。 @@ -17,7 +19,6 @@ labels: トラストラインの残高の["issuer"](../../../../concepts/tokens/fungible-tokens/index.md)は、残高がプラスかマイナスかによって異なります。もし`RippleState`エントリが正の残高を示していれば、高位アカウントが発行者です。残高がマイナスの場合、低位アカウントが発行者です。多くの場合、発行者の限度額は0に設定され、もう一方のアカウントの限度額はプラスに設定されていますが、限度額既存の残高に影響を与えることなく変更される可能性があるため、これは信頼できません。 - ## {% $frontmatter.seo.title %}のJSONの例 ```json @@ -51,44 +52,44 @@ labels: [共通フィールド][]に加えて、{% $frontmatter.seo.title %}エントリは以下のフィールドを使用します。 -| 名前 | JSONの型 | [内部の型][] | 必須? | 説明 | -|:--------------------|:-----------|:------------|:------|:----| -| `Balance` | オブジェクト | Amount | はい | 低位アカウントからみたトラストラインの残高。残高がマイナスの場合、低位アカウントから高位アカウントに対して通貨が発行されています。この場合のイシュアーは常に中立値[ACCOUNT_ONE](../../../../concepts/accounts/addresses.md#特別なアドレス)に設定されます。 | -| `Flags` | 数値 | UInt32 | はい | このオブジェクトに対して有効になっているブールオプションのビットマップ。 | -| `HighLimit` | オブジェクト | Amount | はい | 高位アカウントがトラストラインに設定した限度額。`issuer`は、この限度額を設定した高位アカウントのアドレスです。 | -| `HighNode` | 文字列 | UInt64 | はい | (一部の履歴レジャーでは省略されます)高位アカウントの所有者ディレクトリが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。 | -| `HighQualityIn` | 数値 | UInt32 | いいえ | (省略可)暗黙の比率(HighQualityIn:1,000,000,000)で整数として高位アカウントにより設定された着信品質。値が0の場合は10億または額面価格と同等です。 | -| `HighQualityOut` | 数値 | UInt32 | いいえ | (省略可)暗黙の比率(HighQualityOut:1,000,000,000)で整数として高位アカウントにより設定された発信品質。値が0の場合は10億または額面価格と同等です。 | -| `LedgerEntryType` | 文字列 | UInt16 | はい | 値`0x0072`が文字列`RippleState`にマッピングされている場合は、このオブジェクトがRippleStateオブジェクトであることを示します。 | -| `LowLimit` | オブジェクト | Amount | はい | 低位アカウントがトラストラインに設定した限度額。`issuer`は、この限度額を設定した低位アカウントのアドレスです。 | -| `LowNode` | 文字列 | UInt64 | はい | (一部の履歴レジャーでは省略されます)低位アカウントの所有者ディレクトリが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。 | -| `LowQualityIn` | 数値 | UInt32 | いいえ | (省略可)暗黙の比率(LowQualityIn:1,000,000,000)で整数として低位アカウントにより設定された着信品質。値が0の場合は10億または額面価格と同等です。 | -| `LowQualityOut` | 数値 | UInt32 | いいえ | (省略可)暗黙の比率(LowQualityOut:1,000,000,000)で整数として低位アカウントにより設定された発信品質。値が0の場合は10億または額面価格と同等です。 | -| `PreviousTxnID` | 文字列 | UInt256 | はい | 最後にこのオブジェクトを変更したトランザクションの識別用ハッシュ。 | -| `PreviousTxnLgrSeq` | 数値 | UInt32 | はい | 最後にこのオブジェクトを変更したトランザクションが記録された[レジャーインデックス][]。 | +| 名前 | JSONの型 | [内部の型][] | 必須? | 説明 | +| :------------------ | :----------- | :----------- | :----- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Balance` | オブジェクト | Amount | はい | 低位アカウントからみたトラストラインの残高。残高がマイナスの場合、低位アカウントから高位アカウントに対して通貨が発行されています。この場合のイシュアーは常に中立値[ACCOUNT_ONE](../../../../concepts/accounts/addresses.md#特別なアドレス)に設定されます。 | +| `Flags` | 数値 | UInt32 | はい | このオブジェクトに対して有効になっているブールオプションのビットマップ。 | +| `HighLimit` | オブジェクト | Amount | はい | 高位アカウントがトラストラインに設定した限度額。`issuer`は、この限度額を設定した高位アカウントのアドレスです。 | +| `HighNode` | 文字列 | UInt64 | はい | (一部の履歴レジャーでは省略されます)高位アカウントの所有者ディレクトリが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。 | +| `HighQualityIn` | 数値 | UInt32 | いいえ | (省略可)暗黙の比率(HighQualityIn:1,000,000,000)で整数として高位アカウントにより設定された着信品質。値が0の場合は10億または額面価格と同等です。 | +| `HighQualityOut` | 数値 | UInt32 | いいえ | (省略可)暗黙の比率(HighQualityOut:1,000,000,000)で整数として高位アカウントにより設定された発信品質。値が0の場合は10億または額面価格と同等です。 | +| `LedgerEntryType` | 文字列 | UInt16 | はい | 値`0x0072`が文字列`RippleState`にマッピングされている場合は、このオブジェクトがRippleStateオブジェクトであることを示します。 | +| `LowLimit` | オブジェクト | Amount | はい | 低位アカウントがトラストラインに設定した限度額。`issuer`は、この限度額を設定した低位アカウントのアドレスです。 | +| `LowNode` | 文字列 | UInt64 | はい | (一部の履歴レジャーでは省略されます)低位アカウントの所有者ディレクトリが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。 | +| `LowQualityIn` | 数値 | UInt32 | いいえ | (省略可)暗黙の比率(LowQualityIn:1,000,000,000)で整数として低位アカウントにより設定された着信品質。値が0の場合は10億または額面価格と同等です。 | +| `LowQualityOut` | 数値 | UInt32 | いいえ | (省略可)暗黙の比率(LowQualityOut:1,000,000,000)で整数として低位アカウントにより設定された発信品質。値が0の場合は10億または額面価格と同等です。 | +| `PreviousTxnID` | 文字列 | UInt256 | はい | 最後にこのオブジェクトを変更したトランザクションの識別用ハッシュ。 | +| `PreviousTxnLgrSeq` | 数値 | UInt32 | はい | 最後にこのオブジェクトを変更したトランザクションが記録された[レジャーインデックス][]。 | ## RippleStateのフラグ `RippleState`エントリは以下のフラグを`Flags`フィールドに設定することができます。 -| フラグ名 | 16進数値 | 10進数値 | 対応する[TrustSetフラグ](../../transactions/types/trustset.md#trustsetのフラグ) | 説明 | -|-------------------|--------------|----------|-------------|------------------------| -| `lsfAMMNode` | `0x01000000` | 16777216 | (なし) | このトラストラインがAMMアカウントに紐づくことを表します。 | -| `lsfLowReserve` | `0x00010000` | 65536 | (なし) | このRippleStateオブジェクトは[低位アカウント所有者の準備金に資金を供給します](#所有者の準備金への資金供給)。 | -| `lsfHighReserve` | `0x00020000` | 131072 | (なし) | このRippleStateオブジェクトは[高位アカウント所有者の準備金に資金を供給します](#所有者の準備金への資金供給)。 | -| `lsfLowAuth` | `0x00040000` | 262144 | `tfSetAuth` | 低位アカウントにより、高位アカウントが低位アカウントのイシュアンスを保有することが承認されています。 | -| `lsfHighAuth` | `0x00080000` | 524288 | `tfSetAuth` | 高位アカウントにより、低位アカウントが高位アカウントのイシュアンスを保有することが承認されています。 | -| `lsfLowNoRipple` | `0x00100000` | 1048576 | `tfSetNoRipple` | 低位アカウントで、このトラストラインから、同じアカウントのNoRippleフラグが設定されている他のトラストラインへの[Ripplingが無効化されています](../../../../concepts/tokens/fungible-tokens/rippling.md)。 | -| `lsfHighNoRipple` | `0x00200000` | 2097152 | `tfSetNoRipple` | 高位アカウントで、このトラストラインから、同じアカウントのNoRippleフラグが設定されている他のトラストラインへの[Ripplingが無効化されています](../../../../concepts/tokens/fungible-tokens/rippling.md)。 | -| `lsfLowFreeze` | `0x00400000` | 4194304 | `tfSetFreeze` | 低位アカウントがトラストラインをフリーズしており、高位アカウントから資産を移動できません。 | -| `lsfHighFreeze` | `0x00800000` | 8388608 | `tfSetFreeze` | 高位アカウントがトラストラインをフリーズしており、低位アカウントから資産を移動できません。 | -| `lsfLowDeepFreeze` | `0x02000000` | 33554432 |`tfSetLowDeepFreeze` | 低位アカウントがトラストラインをディープフリーズしており、高位アカウントは資産を移動できません。 | -| `lsfHighDeepFreeze` | `0x04000000` | 67108864 | `tfSetHighDeepFreeze` | 高位アカウントがトラストラインをディープフリーズしており、低位アカウントは資産を移動できません。 | +| フラグ名 | 16進数値 | 10進数値 | 対応する[TrustSetフラグ](../../transactions/types/trustset.md#trustsetのフラグ) | 説明 | +| ------------------- | ------------ | -------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `lsfAMMNode` | `0x01000000` | 16777216 | (なし) | このトラストラインがAMMアカウントに紐づくことを表します。 | +| `lsfLowReserve` | `0x00010000` | 65536 | (なし) | このRippleStateオブジェクトは[低位アカウント所有者の準備金に資金を供給します](#所有者の準備金への資金供給)。 | +| `lsfHighReserve` | `0x00020000` | 131072 | (なし) | このRippleStateオブジェクトは[高位アカウント所有者の準備金に資金を供給します](#所有者の準備金への資金供給)。 | +| `lsfLowAuth` | `0x00040000` | 262144 | `tfSetAuth` | 低位アカウントにより、高位アカウントが低位アカウントのイシュアンスを保有することが承認されています。 | +| `lsfHighAuth` | `0x00080000` | 524288 | `tfSetAuth` | 高位アカウントにより、低位アカウントが高位アカウントのイシュアンスを保有することが承認されています。 | +| `lsfLowNoRipple` | `0x00100000` | 1048576 | `tfSetNoRipple` | 低位アカウントで、このトラストラインから、同じアカウントのNoRippleフラグが設定されている他のトラストラインへの[Ripplingが無効化されています](../../../../concepts/tokens/fungible-tokens/rippling.md)。 | +| `lsfHighNoRipple` | `0x00200000` | 2097152 | `tfSetNoRipple` | 高位アカウントで、このトラストラインから、同じアカウントのNoRippleフラグが設定されている他のトラストラインへの[Ripplingが無効化されています](../../../../concepts/tokens/fungible-tokens/rippling.md)。 | +| `lsfLowFreeze` | `0x00400000` | 4194304 | `tfSetFreeze` | 低位アカウントがトラストラインをフリーズしており、高位アカウントから資産を移動できません。 | +| `lsfHighFreeze` | `0x00800000` | 8388608 | `tfSetFreeze` | 高位アカウントがトラストラインをフリーズしており、低位アカウントから資産を移動できません。 | +| `lsfLowDeepFreeze` | `0x02000000` | 33554432 | `tfSetLowDeepFreeze` | 低位アカウントがトラストラインをディープフリーズしており、高位アカウントは資産を移動できません。 | +| `lsfHighDeepFreeze` | `0x04000000` | 67108864 | `tfSetHighDeepFreeze` | 高位アカウントがトラストラインをディープフリーズしており、低位アカウントは資産を移動できません。 | トラストラインによって接続された2つのアカウントは、[TrustSetトランザクション][]を使用して、それぞれの設定を変更することができます。 - ## {% $frontmatter.seo.title %}の準備金 + `RippleState`エントリは、接続するアカウントの一方または両方の[所有者準備金](../../../../concepts/accounts/reserves.md#所有者準備金)の対象の1つとしてカウントされます。一般的なケースでは、トークンの所有者は準備金を支払う必要があり、トークンの発行者は準備金を支払いません。 @@ -97,14 +98,14 @@ labels: トラストラインのデフォルト以外の状態に反映される値は以下の通りです。 -| 高位アカウントに責任がある場合の条件 | 低位アカウントに責任がある場合の条件 | -|-----------------------|----------------------| +| 高位アカウントに責任がある場合の条件 | 低位アカウントに責任がある場合の条件 | +| --------------------------------------------------------------- | ------------------------------------------------------------- | | `Balance`がマイナスである(高位アカウントが通貨を保有している) | `Balance`がプラスである(低位アカウントが通貨を保有している) | -| `HighLimit`が`0`ではない | `LowLimit`が`0`ではない | -| `LowQualityIn`が`0`でも`1000000000`でもない | `HighQualityIn`が`0`でも`1000000000`でもない | -| `LowQualityOut`が`0`でも `1000000000`でもない | `HighQualityOut`が`0`でも`1000000000`でもない | -| `lsfHighNoRipple`フラグがデフォルト状態ではない | `lsfLowNoRipple`フラグがデフォルト状態ではない | -| `lsfHighFreeze`フラグが有効である | `lsfLowFreeze`フラグが有効である | +| `HighLimit`が`0`ではない | `LowLimit`が`0`ではない | +| `LowQualityIn`が`0`でも`1000000000`でもない | `HighQualityIn`が`0`でも`1000000000`でもない | +| `LowQualityOut`が`0`でも `1000000000`でもない | `HighQualityOut`が`0`でも`1000000000`でもない | +| `lsfHighNoRipple`フラグがデフォルト状態ではない | `lsfLowNoRipple`フラグがデフォルト状態ではない | +| `lsfHighFreeze`フラグが有効である | `lsfLowFreeze`フラグが有効である | **`lsfLowAuth`**フラグと **`lsfHighAuth`**フラグは無効にできないため、デフォルト状態に不利に作用することはありません。 @@ -118,9 +119,9 @@ XRP Ledgerは遅延評価を使用して所有者準備金を計算していま RippleStateオブジェクトのIDは、以下の値がこの順序で連結されている[SHA-512Half][]です。 -* RippleStateスペースキー(`0x0072`) -* 低位アカウントのAccountID -* 高位アカウントのAccountID -* トラストラインの160ビットの通貨コード +- RippleStateスペースキー(`0x0072`) +- 低位アカウントのAccountID +- 高位アカウントのAccountID +- トラストラインの160ビットの通貨コード {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/signerlist.md b/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/signerlist.md index bdfb01aeea..58f12efd4c 100644 --- a/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/signerlist.md +++ b/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/signerlist.md @@ -1,10 +1,12 @@ --- seo: - description: マルチシグトランザクションのアドレスのリストです。 + description: マルチシグトランザクションのアドレスのリストです。 labels: - - セキュリティ + - セキュリティ --- + # SignerList + [[ソース]](https://github.com/XRPLF/rippled/blob/6d2e3da30696bd10e3bb11a5ff6d45d2c4dae90f/src/ripple/protocol/impl/LedgerFormats.cpp#L127 "Source") `SignerList`オブジェクトタイプは、個別アカウントの代わりにグループとしてトランザクション署名をすることが承認されている署名者のリストです。[SignerListSetトランザクション][]を使用して、SignerListを作成、置き換え、または削除できます。 @@ -15,34 +17,34 @@ labels: ```json { - "Flags": 0, - "LedgerEntryType": "SignerList", - "OwnerNode": "0000000000000000", - "PreviousTxnID": "5904C0DC72C58A83AEFED2FFC5386356AA83FCA6A88C89D00646E51E687CDBE4", - "PreviousTxnLgrSeq": 16061435, - "SignerEntries": [ - { - "SignerEntry": { - "Account": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", - "SignerWeight": 2 - } - }, - { - "SignerEntry": { - "Account": "raKEEVSGnKSD9Zyvxu4z6Pqpm4ABH8FS6n", - "SignerWeight": 1 - } - }, - { - "SignerEntry": { - "Account": "rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v", - "SignerWeight": 1 - } - } - ], - "SignerListID": 0, - "SignerQuorum": 3, - "index": "A9C28A28B85CD533217F5C0A0C7767666B093FA58A0F2D80026FCC4CD932DDC7" + "Flags": 0, + "LedgerEntryType": "SignerList", + "OwnerNode": "0000000000000000", + "PreviousTxnID": "5904C0DC72C58A83AEFED2FFC5386356AA83FCA6A88C89D00646E51E687CDBE4", + "PreviousTxnLgrSeq": 16061435, + "SignerEntries": [ + { + "SignerEntry": { + "Account": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", + "SignerWeight": 2 + } + }, + { + "SignerEntry": { + "Account": "raKEEVSGnKSD9Zyvxu4z6Pqpm4ABH8FS6n", + "SignerWeight": 1 + } + }, + { + "SignerEntry": { + "Account": "rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v", + "SignerWeight": 1 + } + } + ], + "SignerListID": 0, + "SignerQuorum": 3, + "index": "A9C28A28B85CD533217F5C0A0C7767666B093FA58A0F2D80026FCC4CD932DDC7" } ``` @@ -50,16 +52,16 @@ labels: `SignerList`オブジェクトのフィールドを次に示します。 -| 名前 | JSONの型 | 内部の型 | 説明 | -|:--------------------|:----------|:--------------|:---------------------------| -| `LedgerEntryType` | 文字列 | UInt16 | 値が`0x0053`(文字列`SignerList`にマッピング)の場合は、これがSignerListオブジェクトであることを示します。 | -| `Flags` | 数値 | UInt32 | このSignerListに対して有効になっているブール値フラグのビットマップ。詳細は、[SignerListのフラグ](#signerlistのフラグ)をご覧ください。 | -| `PreviousTxnID` | 文字列 | UInt256 | 最後にこのオブジェクトを変更したトランザクションの識別用ハッシュ。 | -| `PreviousTxnLgrSeq` | 数値 | UInt32 | 最後にこのオブジェクトを変更したトランザクションが記録された[レジャーインデックス][]。 | -| `OwnerNode` | 文字列 | UInt64 | 所有者ディレクトリーが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。 | -| `SignerEntries` | 配列 | 配列 | この署名者リストに記載されている署名者を表すSignerEntryオブジェクトの配列。 | -| `SignerListID` | 数値 | UInt32 | この署名者リストのID。現時点では常に`0`に設定されます。今後の[Amendment](../../../../concepts/networks-and-servers/amendments.md)によってアカウントに複数の署名者リストを使用できるようになる場合は、変更される可能性があります。 | -| `SignerQuorum` | 数値 | UInt32 | 署名者の重みのターゲット数。署名者がこのSignerListの所有者に代わって有効な署名を生成するには、重みの合計がこの数値以上である有効な署名を提出する必要があります。 | +| 名前 | JSONの型 | 内部の型 | 説明 | +| :------------------ | :------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `LedgerEntryType` | 文字列 | UInt16 | 値が`0x0053`(文字列`SignerList`にマッピング)の場合は、これがSignerListオブジェクトであることを示します。 | +| `Flags` | 数値 | UInt32 | このSignerListに対して有効になっているブール値フラグのビットマップ。詳細は、[SignerListのフラグ](#signerlistのフラグ)をご覧ください。 | +| `PreviousTxnID` | 文字列 | UInt256 | 最後にこのオブジェクトを変更したトランザクションの識別用ハッシュ。 | +| `PreviousTxnLgrSeq` | 数値 | UInt32 | 最後にこのオブジェクトを変更したトランザクションが記録された[レジャーインデックス][]。 | +| `OwnerNode` | 文字列 | UInt64 | 所有者ディレクトリーが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。 | +| `SignerEntries` | 配列 | 配列 | この署名者リストに記載されている署名者を表すSignerEntryオブジェクトの配列。 | +| `SignerListID` | 数値 | UInt32 | この署名者リストのID。現時点では常に`0`に設定されます。今後の[Amendment](../../../../concepts/networks-and-servers/amendments.md)によってアカウントに複数の署名者リストを使用できるようになる場合は、変更される可能性があります。 | +| `SignerQuorum` | 数値 | UInt32 | 署名者の重みのターゲット数。署名者がこのSignerListの所有者に代わって有効な署名を生成するには、重みの合計がこの数値以上である有効な署名を提出する必要があります。 | `SignerEntries`は、secp256k1キーまたはed25519キーを使用する資金供給のあるアドレスと資金供給のないアドレスの自由な組み合わせです。 @@ -67,11 +69,11 @@ labels: `SignerEntries`フィールドの各メンバーは、リストの署名者を記述するオブジェクトです。SignerEntryのフィールドは次のとおりです。 -| 名前 | JSONの型 | 内部の型 | 説明 | -|:---------------|:----------|:--------------|:--------------------------------| -| `Account` | 文字列 | AccountID | 署名がマルチシグに提供されるXRP Ledgerアドレス。レジャーの資金供給のあるアドレスである必要はありません。 | -| `SignerWeight` | 数値 | UInt16 | この署名者による署名の重み。マルチシグは、付与された署名の重みの合計がSignerListの`SignerQuorum`値を超えている場合にのみ有効となります。 | -| `WalletLocator` | 文字列 | UInt256 | (省略可)任意の16進数データ。これは署名者を識別するため、または他の関連する目的のために使用することができます。{% amendment-disclaimer name="ExpandedSignerList" /%} | +| 名前 | JSONの型 | 内部の型 | 説明 | +| :-------------- | :------- | :-------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Account` | 文字列 | AccountID | 署名がマルチシグに提供されるXRP Ledgerアドレス。レジャーの資金供給のあるアドレスである必要はありません。 | +| `SignerWeight` | 数値 | UInt16 | この署名者による署名の重み。マルチシグは、付与された署名の重みの合計がSignerListの`SignerQuorum`値を超えている場合にのみ有効となります。 | +| `WalletLocator` | 文字列 | UInt256 | (省略可)任意の16進数データ。これは署名者を識別するため、または他の関連する目的のために使用することができます。{% amendment-disclaimer name="ExpandedSignerList" /%} | マルチシグトランザクションを処理する際に、サーバはトランザクション実行時にレジャーに関する`Account`値を間接参照します。アドレスが資金供給のある[AccountRootオブジェクト](accountroot.md)に対応して _いない_ 場合、そのアドレスに関連付けられているマスターシークレットによってのみ有効な署名を生成できます。アカウントがレジャーに _確かに_ 存在している場合は、アカウントの状態により異なります。アカウントにレギュラーキーが設定されている場合はレギュラーキーを使用できます。アカウントのマスターキーが無効化されていない場合に限り、アカウントのマスターキーを使用できます。マルチシグを別のマルチシグの一部として使用することはできません。 @@ -81,9 +83,9 @@ _([MultiSignReserve Amendment][]が必要です.)_ SignerListオブジェクトには以下のフラグ値を指定できます。 -| フラグ名 | 16進値 | 10進値 | 説明 | -|:-----------------|:-----------|:--------------|:-------------------------------| -| lsfOneOwnerCount | 0x00010000 | 65536 | このフラグが有効な場合、SignerListは[所有者準備金](../../../../concepts/accounts/reserves.md#所有者準備金)の1アイテムとしてカウントされます。このフラグが無効な場合、このリストはN+2アイテムとしてカウントされます。このNは、リストに含まれている署名者の数です。[MultiSignReserve Amendment][]が有効になった後で署名者リストを追加または更新すると、このフラグが自動的に有効となります。 | +| フラグ名 | 16進値 | 10進値 | 説明 | +| :--------------- | :--------- | :----- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| lsfOneOwnerCount | 0x00010000 | 65536 | このフラグが有効な場合、SignerListは[所有者準備金](../../../../concepts/accounts/reserves.md#所有者準備金)の1アイテムとしてカウントされます。このフラグが無効な場合、このリストはN+2アイテムとしてカウントされます。このNは、リストに含まれている署名者の数です。[MultiSignReserve Amendment][]が有効になった後で署名者リストを追加または更新すると、このフラグが自動的に有効となります。 | ## SignerListと準備金 @@ -99,8 +101,8 @@ MultiSignReserve Amendmentよりも前に作成されたSignerListの必要準 SignerListオブジェクトのIDは、以下の値がこの順序で連結されているSHA-512ハーフです。 -* RippleStateスペースキー(`0x0053`) -* SignerListの所有者のAccountID -* SignerListID(現時点では常に`0`) +- RippleStateスペースキー(`0x0053`) +- SignerListの所有者のAccountID +- SignerListID(現時点では常に`0`) {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/ticket.md b/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/ticket.md index 214c29524d..ec9e253168 100644 --- a/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/ticket.md +++ b/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/ticket.md @@ -2,10 +2,11 @@ html: ticket.html parent: ledger-entry-types.html seo: - description: チケットは、将来使用するために確保されたアカウントのシーケンス番号を追跡します。 + description: チケットは、将来使用するために確保されたアカウントのシーケンス番号を追跡します。 labels: - トランザクション送信 --- + # Ticket [[ソース]](https://github.com/XRPLF/rippled/blob/76a6956138c4ecd156c5c408f136ed3d6ab7d0c1/src/ripple/protocol/impl/LedgerFormats.cpp#L155-L164) @@ -18,13 +19,13 @@ _([TicketBatch amendment][]が必要です)_ ```json { - "Account" : "rEhxGqkqPPSxQ3P25J66ft5TwpzV14k2de", - "Flags" : 0, - "LedgerEntryType" : "Ticket", - "OwnerNode" : "0000000000000000", - "PreviousTxnID" : "F19AD4577212D3BEACA0F75FE1BA1644F2E854D46E8D62E9C95D18E9708CBFB1", - "PreviousTxnLgrSeq" : 4, - "TicketSequence" : 3 + "Account": "rEhxGqkqPPSxQ3P25J66ft5TwpzV14k2de", + "Flags": 0, + "LedgerEntryType": "Ticket", + "OwnerNode": "0000000000000000", + "PreviousTxnID": "F19AD4577212D3BEACA0F75FE1BA1644F2E854D46E8D62E9C95D18E9708CBFB1", + "PreviousTxnLgrSeq": 4, + "TicketSequence": 3 } ``` @@ -32,32 +33,29 @@ _([TicketBatch amendment][]が必要です)_ [共通フィールド][]に加えて、{% $frontmatter.seo.title %}エントリは以下のフィールドを使用します。 -| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | -|:--------------------|:----------|:--------------|:------|:----| -| `Account` | 文字列 | AccountID | はい | このチケットを所有する[アカウント](../../../../concepts/accounts/index.md)です。 | -| `LedgerEntryType` | 文字列 | UInt16 | はい | 文字列`Ticket`にマッピングされた値`0x0054`は、このオブジェクトが {% $frontmatter.seo.title %}エントリであることを示しています。 | -| `OwnerNode` | 文字列 | UInt64 | はい | 送金元の所有者ディレクトリが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。注記: このオブジェクトには、オブジェクトを含む所有者ディレクトリへの直接リンクは含まれていません。これは、その値を`Account`から取得できるためです。 | -| `PreviousTxnID` | 文字列 | UInt256 | はい | 最後にこのオブジェクトを変更した[トランザクション](../../../../concepts/transactions/index.md)の識別用ハッシュ。 | -| `PreviousTxnLgrSeq` | 数値 | UInt32 | はい | 最後にこのオブジェクトを変更したトランザクションを含む[レジャーインデックス][]。 | -| `TicketSequence` | 数値 | UInt32 | はい | 本チケットが設定する[シーケンス番号][]。 | - +| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | +| :------------------ | :------- | :----------- | :---- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `Account` | 文字列 | AccountID | はい | このチケットを所有する[アカウント](../../../../concepts/accounts/index.md)です。 | +| `LedgerEntryType` | 文字列 | UInt16 | はい | 文字列`Ticket`にマッピングされた値`0x0054`は、このオブジェクトが {% $frontmatter.seo.title %}エントリであることを示しています。 | +| `OwnerNode` | 文字列 | UInt64 | はい | 送金元の所有者ディレクトリが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。注記: このオブジェクトには、オブジェクトを含む所有者ディレクトリへの直接リンクは含まれていません。これは、その値を`Account`から取得できるためです。 | +| `PreviousTxnID` | 文字列 | UInt256 | はい | 最後にこのオブジェクトを変更した[トランザクション](../../../../concepts/transactions/index.md)の識別用ハッシュ。 | +| `PreviousTxnLgrSeq` | 数値 | UInt32 | はい | 最後にこのオブジェクトを変更したトランザクションを含む[レジャーインデックス][]。 | +| `TicketSequence` | 数値 | UInt32 | はい | 本チケットが設定する[シーケンス番号][]。 | ## {% $frontmatter.seo.title %}の準備金 {% code-page-name /%}エントリは、台帳上にエントリがある限り、それを作成したアカウントの所有者準備金の対象の1つとしてカウントされます。チケットを使用すると、準備金が解放されます。 - ## {% $frontmatter.seo.title %}のフラグ {% code-page-name /%}エントリに定義されているフラグはありません。 - ## {% $frontmatter.seo.title %} IDのフォーマット TicketオブジェクトのIDは、以下の値がこの順序で連結されているSHA-512ハーフです -* Ticketスペースキー (`0x0054`) -* チケットの所有者のアカウントID -* チケットの`TicketSequence` +- Ticketスペースキー (`0x0054`) +- チケットの所有者のアカウントID +- チケットの`TicketSequence` {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/xchainownedclaimid.md b/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/xchainownedclaimid.md index 61e390387e..e70b749006 100644 --- a/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/xchainownedclaimid.md +++ b/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/xchainownedclaimid.md @@ -2,12 +2,14 @@ html: xchainownedclaimid.html parent: ledger-entry-types.html seo: - description: XChainOwnedClaimIDオブジェクトは、クロスチェーンでの価値の移動の*1つ*を表します。 + description: XChainOwnedClaimIDオブジェクトは、クロスチェーンでの価値の移動の*1つ*を表します。 labels: - 相互運用性 status: not_enabled --- + # XChainOwnedClaimID + _([XChainBridge Amendment][] {% not-enabled /%} が必要です)_ [[ソース]](https://github.com/seelabs/rippled/blob/xbridge/src/ripple/protocol/impl/LedgerFormats.cpp#L281-L293 "ソース") @@ -18,7 +20,6 @@ _([XChainBridge Amendment][] {% not-enabled /%} が必要です)_ `XChainCreateClaimID`トランザクションは新しい`XChainOwnedClaimID`を作成するために使われます。このレジャーオブジェクトは、資金が送金先のチェーンで請求に成功すると削除されます。 - ## XChainOwnedClaimID JSONの例 ```json @@ -59,7 +60,7 @@ _([XChainBridge Amendment][] {% not-enabled /%} が必要です)_ "Destination": "rBW1U7J9mEhEdk6dMHEFUjqQ7HW7WpaEMi", "PublicKey": "03D40434A6843638681E2F215310EBC4131AFB12EA85985DA073183B732525F7C9", "WasLockingChainSend": 1 - }, + } } ], "XChainClaimID": "b5", @@ -68,40 +69,37 @@ _([XChainBridge Amendment][] {% not-enabled /%} が必要です)_ } ``` - ## XChainOwnedClaimIDのフィールド -| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | -|:--------------------------|:-------------|:--------------|:-----|:----| -| `Account` | 文字列 | Account | はい | このオブジェクトを所有するアカウント。 | -| `LedgerIndex` | 文字列 | UInt256 | はい | レジャーインデックスは、`XChainOwnedClaimID`の一意な接頭辞、`XChainClaimID`の実際の値、`XChainBridge`のフィールドのハッシュです。 | -| `OtherChainSource` | 文字列 | Account | はい | 送信元チェーンで対応する`XChainCommit`を送信する必要があるアカウント。つまり、`OtherChainSource`が指定されていないと、別のアカウントが別の送信先を指定して資金を盗もうとする可能性があるということです。また、どのアカウントが`XChainCommit`トランザクションを送信するのかが分かるので、単一の署名セットのみを追跡することもできます。 | -| `SignatureReward` | [通貨額][] | Amount | はい | Witnessサーバに支払う署名報酬の合計額。`Bridge`レジャー帳オブジェクトの`SignatureReward`の値以上でなければなりません。 | -| `XChainBridge` | XChainBridge | XChain_Bridge | はい | このオブジェクトに紐づくブリッジのドアアカウントと資産。 | -| `XChainClaimAttestations` | 配列 | Array | はい | Witnessサーバから収集された証明。これには、署名されたメッセージの再作成に必要なパラメータが含まれます。これには、その署名の量、どのチェーン(ロックまたは発行)、任意の宛先、報酬アカウントなどが含まれます。 | -| `XChainClaimID` | 文字列 | UInt64 | はい | クロスチェーン送金の一意のシーケンス番号。 | - +| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | +| :------------------------ | :----------- | :------------ | :---- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Account` | 文字列 | Account | はい | このオブジェクトを所有するアカウント。 | +| `LedgerIndex` | 文字列 | UInt256 | はい | レジャーインデックスは、`XChainOwnedClaimID`の一意な接頭辞、`XChainClaimID`の実際の値、`XChainBridge`のフィールドのハッシュです。 | +| `OtherChainSource` | 文字列 | Account | はい | 送信元チェーンで対応する`XChainCommit`を送信する必要があるアカウント。つまり、`OtherChainSource`が指定されていないと、別のアカウントが別の送信先を指定して資金を盗もうとする可能性があるということです。また、どのアカウントが`XChainCommit`トランザクションを送信するのかが分かるので、単一の署名セットのみを追跡することもできます。 | +| `SignatureReward` | [通貨額][] | Amount | はい | Witnessサーバに支払う署名報酬の合計額。`Bridge`レジャー帳オブジェクトの`SignatureReward`の値以上でなければなりません。 | +| `XChainBridge` | XChainBridge | XChain_Bridge | はい | このオブジェクトに紐づくブリッジのドアアカウントと資産。 | +| `XChainClaimAttestations` | 配列 | Array | はい | Witnessサーバから収集された証明。これには、署名されたメッセージの再作成に必要なパラメータが含まれます。これには、その署名の量、どのチェーン(ロックまたは発行)、任意の宛先、報酬アカウントなどが含まれます。 | +| `XChainClaimID` | 文字列 | UInt64 | はい | クロスチェーン送金の一意のシーケンス番号。 | ### XChainClaimAttestationsのフィールド -| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | -|:------------------------------|:----------|:-----------|:------|:----| -| `XChainClaimProofSig` | 配列 | Object | はい | Witnessサーバ1台からの証明書。 | -| `Amount` | [通貨額][] | Amount | はい | 送信先チェーンの`XChainCommit`トランザクションで請求する金額。 | -| `AttestationRewardAccount` | 文字列 | Account | はい | 署名者に分配される`SignatureReward`を受け取るアカウント。 | -| `AttestationSignerAccount` | 文字列 | Account | はい | ドアアカウントの署名者リストにある、トランザクションに署名するアカウント。 | -| `Destination` | 文字列 | Account | いいえ | 送金先チェーン上の資金の送金先アカウント。 | -| `PublicKey` | 文字列 | Blob | はい | 署名の検証に使用する公開鍵。 | -| `WasLockingChainSend` | 数値 | UInt8 | はい | イベントが発生したチェーンを表す真偽値。 | - +| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | +| :------------------------- | :--------- | :----------- | :----- | :------------------------------------------------------------------------- | +| `XChainClaimProofSig` | 配列 | Object | はい | Witnessサーバ1台からの証明書。 | +| `Amount` | [通貨額][] | Amount | はい | 送信先チェーンの`XChainCommit`トランザクションで請求する金額。 | +| `AttestationRewardAccount` | 文字列 | Account | はい | 署名者に分配される`SignatureReward`を受け取るアカウント。 | +| `AttestationSignerAccount` | 文字列 | Account | はい | ドアアカウントの署名者リストにある、トランザクションに署名するアカウント。 | +| `Destination` | 文字列 | Account | いいえ | 送金先チェーン上の資金の送金先アカウント。 | +| `PublicKey` | 文字列 | Blob | はい | 署名の検証に使用する公開鍵。 | +| `WasLockingChainSend` | 数値 | UInt8 | はい | イベントが発生したチェーンを表す真偽値。 | ### XChainBridgeのフィールド -| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | -|:--------------------|:---------|:-----------|:------|:----------------| -| `IssuingChainDoor` | 文字列 | Account | はい | 発行チェーンのドアアカウント。XRP-XRPブリッジの場合、これはジェネシスアカウント(ネットワークが最初に開始されたときに作成されるアカウントで、すべてのXRPを含む)でなければなりません。 | -| `IssuingChainIssue` | Issue | Issue | はい | 発行チェーン上で作成され、バーンされる資産。IOU-IOUブリッジの場合、供給問題を避けるため、資産の発行者は発行チェーンのドアアカウントでなければなりません。 | -| `LockingChainDoor` | 文字列 | Account | はい | ロックチェーンのドアアカウント。 | -| `LockingChainIssue` | Issue | Issue | はい | ロックチェーンでロック、アンロックされる資産。 | +| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | +| :------------------ | :------- | :----------- | :---- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `IssuingChainDoor` | 文字列 | Account | はい | 発行チェーンのドアアカウント。XRP-XRPブリッジの場合、これはジェネシスアカウント(ネットワークが最初に開始されたときに作成されるアカウントで、すべてのXRPを含む)でなければなりません。 | +| `IssuingChainIssue` | Issue | Issue | はい | 発行チェーン上で作成され、バーンされる資産。IOU-IOUブリッジの場合、供給問題を避けるため、資産の発行者は発行チェーンのドアアカウントでなければなりません。 | +| `LockingChainDoor` | 文字列 | Account | はい | ロックチェーンのドアアカウント。 | +| `LockingChainIssue` | Issue | Issue | はい | ロックチェーンでロック、アンロックされる資産。 | {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/xchainownedcreateaccountclaimid.md b/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/xchainownedcreateaccountclaimid.md index 4be568c29d..74fab9be78 100644 --- a/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/xchainownedcreateaccountclaimid.md +++ b/@l10n/ja/docs/references/protocol/ledger-data/ledger-entry-types/xchainownedcreateaccountclaimid.md @@ -2,12 +2,14 @@ html: xchainownedcreateaccountclaimid.html parent: ledger-entry-types.html seo: - description: XChainOwnedCreateAccountClaimIDレジャーオブジェクトは、クロスチェーン送金でアカウントを作成するための証明を収集するために使用されます。 + description: XChainOwnedCreateAccountClaimIDレジャーオブジェクトは、クロスチェーン送金でアカウントを作成するための証明を収集するために使用されます。 labels: - 相互運用性 status: not_enabled --- + # XChainOwnedCreateAccountClaimID + _([XChainBridge Amendment][] {% not-enabled /%} が必要です)_ [[ソース]](https://github.com/seelabs/rippled/blob/xbridge/src/ripple/protocol/impl/LedgerFormats.cpp#L296-L306 "ソース") @@ -18,7 +20,6 @@ _([XChainBridge Amendment][] {% not-enabled /%} が必要です)_ すべての証明を受け取り、新しいアカウントに資金が移動すると、レジャーオブジェクトは破棄されます。 - ## XChainOwnedCreateAccountClaimID JSONの例 ```json @@ -53,38 +54,35 @@ _([XChainBridge Amendment][] {% not-enabled /%} が必要です)_ } ``` - ## XChainOwnedCreateAccountClaimIDのフィールド -| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | -|:----------------------------------|:-------------|:--------------|:------|:------------| -| `Account` | 文字列 | Account | はい | このオブジェクトを所有するアカウント。 | -| `LedgerIndex` | 文字列 | UInt256 | はい | レジャーインデックスは、`XChainOwnedCreateAccountClaimID`の一意な接頭辞、`XChainAccountClaimCount`の実際の値、`XChainBridge`のフィールドのハッシュです。 | -| `XChainAccountCreateCount` | 数値 | UInt64 | はい | クロスチェーン送金で作成されたアカウントの実行順序を決める整数。小さい数字は大きい数字より先に実行されなければなりません。 | -| `XChainBridge` | XChainBridge | XChain_Bridge | はい | このオブジェクトに紐づくブリッジのドアアカウントと資産。 | -| `XChainCreateAccountAttestations` | 配列 | Array | はい | Witnessサーバから収集された証明。これには、署名されたメッセージの再作成に必要なパラメータが含まれます。これには、その署名の量、どのチェーン(ロックまたは発行)、任意の宛先、報酬アカウントなどが含まれます。 | - +| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | +| :-------------------------------- | :----------- | :------------ | :---- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `Account` | 文字列 | Account | はい | このオブジェクトを所有するアカウント。 | +| `LedgerIndex` | 文字列 | UInt256 | はい | レジャーインデックスは、`XChainOwnedCreateAccountClaimID`の一意な接頭辞、`XChainAccountClaimCount`の実際の値、`XChainBridge`のフィールドのハッシュです。 | +| `XChainAccountCreateCount` | 数値 | UInt64 | はい | クロスチェーン送金で作成されたアカウントの実行順序を決める整数。小さい数字は大きい数字より先に実行されなければなりません。 | +| `XChainBridge` | XChainBridge | XChain_Bridge | はい | このオブジェクトに紐づくブリッジのドアアカウントと資産。 | +| `XChainCreateAccountAttestations` | 配列 | Array | はい | Witnessサーバから収集された証明。これには、署名されたメッセージの再作成に必要なパラメータが含まれます。これには、その署名の量、どのチェーン(ロックまたは発行)、任意の宛先、報酬アカウントなどが含まれます。 | ### XChainCreateAccountAttestationsのフィールド -| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | -|-------------------------------|-----------|-------------|-------|-----| -| `XChainCreateAccountProofSig` | 配列 | Object | はい | Witnessサーバ1台からの証明書。 | -| `Amount` | [通貨額][] | Amount | はい | 送信先チェーンの`XChainAccountCreateCommit`トランザクションで請求する金額。 | -| `AttestationRewardAccount` | 文字列 | Account | はい | 署名者に分配される`SignatureReward`を受け取るアカウント。 | -| `AttestationSignerAccount` | 文字列 | Account | はい | ドアアカウントの署名者リストにある、トランザクションに署名するアカウント。 | -| `Destination` | 文字列 | Account | はい | 送金先チェーン上の資金の送金先アカウント。 | -| `PublicKey` | 文字列 | Blob | はい | 署名の検証に使用する公開鍵。 | -| `WasLockingChainSend` | 数値 | UInt8 | はい | イベントが発生したチェーンを表す真偽値。 | - +| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | +| ----------------------------- | ---------- | ------------ | ----- | --------------------------------------------------------------------------- | +| `XChainCreateAccountProofSig` | 配列 | Object | はい | Witnessサーバ1台からの証明書。 | +| `Amount` | [通貨額][] | Amount | はい | 送信先チェーンの`XChainAccountCreateCommit`トランザクションで請求する金額。 | +| `AttestationRewardAccount` | 文字列 | Account | はい | 署名者に分配される`SignatureReward`を受け取るアカウント。 | +| `AttestationSignerAccount` | 文字列 | Account | はい | ドアアカウントの署名者リストにある、トランザクションに署名するアカウント。 | +| `Destination` | 文字列 | Account | はい | 送金先チェーン上の資金の送金先アカウント。 | +| `PublicKey` | 文字列 | Blob | はい | 署名の検証に使用する公開鍵。 | +| `WasLockingChainSend` | 数値 | UInt8 | はい | イベントが発生したチェーンを表す真偽値。 | ### XChainBridgeのフィールド -| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | -|:--------------------|:---------|:-----------|:------|:----------------| -| `IssuingChainDoor` | 文字列 | Account | はい | 発行チェーンのドアアカウント。XRP-XRPブリッジの場合、これはジェネシスアカウント(ネットワークが最初に開始されたときに作成されるアカウントで、すべてのXRPを含む)でなければなりません。 | -| `IssuingChainIssue` | Issue | Issue | はい | 発行チェーン上で作成され、バーンされる資産。IOU-IOUブリッジの場合、供給問題を避けるため、資産の発行者は発行チェーンのドアアカウントでなければなりません。 | -| `LockingChainDoor` | 文字列 | Account | はい | ロックチェーンのドアアカウント。 | -| `LockingChainIssue` | Issue | Issue | はい | ロックチェーンでロック、アンロックされる資産。 | +| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | +| :------------------ | :------- | :----------- | :---- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `IssuingChainDoor` | 文字列 | Account | はい | 発行チェーンのドアアカウント。XRP-XRPブリッジの場合、これはジェネシスアカウント(ネットワークが最初に開始されたときに作成されるアカウントで、すべてのXRPを含む)でなければなりません。 | +| `IssuingChainIssue` | Issue | Issue | はい | 発行チェーン上で作成され、バーンされる資産。IOU-IOUブリッジの場合、供給問題を避けるため、資産の発行者は発行チェーンのドアアカウントでなければなりません。 | +| `LockingChainDoor` | 文字列 | Account | はい | ロックチェーンのドアアカウント。 | +| `LockingChainIssue` | Issue | Issue | はい | ロックチェーンでロック、アンロックされる資産。 | {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/ledger-data/ledger-header.md b/@l10n/ja/docs/references/protocol/ledger-data/ledger-header.md index b0d1e6feb7..978b656141 100644 --- a/@l10n/ja/docs/references/protocol/ledger-data/ledger-header.md +++ b/@l10n/ja/docs/references/protocol/ledger-data/ledger-header.md @@ -2,42 +2,41 @@ html: ledger-header.html parent: ledger-data-formats.html seo: - description: レジャーバージョンの内容を記述する一意のヘッダーです。 + description: レジャーバージョンの内容を記述する一意のヘッダーです。 labels: - データ保持 - ブロックチェーン --- + # レジャーヘッダー + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/ledger/ReadView.h#L71 "Source") すべてのレジャーバージョンには、その内容を記述する一意のヘッダーが含まれています。[ledgerメソッド][]を使用してレジャーのヘッダー情報を検索できます。レジャーヘッダーの内容を以下に示します。 -| フィールド | JSONの型 | [内部の型][] | 説明 | -|:-----------------------------|:----------|:------------------|:--------------| -| `ledger_index` | 文字列 | UInt32 | レジャーの[レジャーインデックス][レジャーインデックス]。APIメソッドの中には、この番号を引用符で囲んだ整数として表示するメソッドと、ネイティブJSON数値として表示するメソッドがあります。 | -| `ledger_hash` | 文字列 | UInt256 | このレジャーバージョンの[SHA-512Half][]。これは、このレジャーとそのすべての内容の一意のIDとして機能します。 | -| `account_hash` | 文字列 | UInt256 | このレジャーの状態ツリー情報の[SHA-512Half][]。 | -| `close_time` | 数値 | UInt32 | このレジャーバージョンが閉鎖されたおおよその時刻。Rippleエポック(2000-01-01 00:00:00)以降の経過秒数として示されます。この値は、`close_time_resolution`に基づいて丸められます。 | -| `closed` | ブール値 | ブール値 | `true`の場合、このレジャーバージョンはこれ以上新しいトランザクションを受け入れません。(ただし、このレジャーバージョンが未検証の場合は、一連の異なるトランザクションが記録されている別のレジャーバージョンに置き換えられることがあります。) | -| `parent_hash` | 文字列 | UInt256 | このバージョンの直前のレジャーバージョンの`ledger_hash`値。直前のレジャーインデックスの異なるバージョンが存在している場合、これはレジャーの生成元を示します。 | -| `total_coins` | 文字列 | UInt64 | レジャーのアカウントが保有するXRPの[XRPのdrop数][]の合計。トランザクション手数料により消却されたXRPは除外されます。一部のアカウントは、そのキーを知っている人がいない「ブラックホール」アカウントであるため、流通している実際のXRPの量はこれよりも少なくなります。 | -| `transaction_hash` | 文字列 | UInt256 | このレジャーに記録されているトランザクションの[SHA-512Half][]。 | -| `close_time_resolution` | 数値 | Uint8 | `close_time`を丸めるときの最大秒数を示す範囲[2,120]内の整数。 | -| [`closeFlags`](#closeフラグ) | (省略) | UInt8 | このレジャーの閉鎖に関連するフラグのビットマップ。 | - +| フィールド | JSONの型 | [内部の型][] | 説明 | +| :--------------------------- | :------- | :----------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `ledger_index` | 文字列 | UInt32 | レジャーの[レジャーインデックス][レジャーインデックス]。APIメソッドの中には、この番号を引用符で囲んだ整数として表示するメソッドと、ネイティブJSON数値として表示するメソッドがあります。 | +| `ledger_hash` | 文字列 | UInt256 | このレジャーバージョンの[SHA-512Half][]。これは、このレジャーとそのすべての内容の一意のIDとして機能します。 | +| `account_hash` | 文字列 | UInt256 | このレジャーの状態ツリー情報の[SHA-512Half][]。 | +| `close_time` | 数値 | UInt32 | このレジャーバージョンが閉鎖されたおおよその時刻。Rippleエポック(2000-01-01 00:00:00)以降の経過秒数として示されます。この値は、`close_time_resolution`に基づいて丸められます。 | +| `closed` | ブール値 | ブール値 | `true`の場合、このレジャーバージョンはこれ以上新しいトランザクションを受け入れません。(ただし、このレジャーバージョンが未検証の場合は、一連の異なるトランザクションが記録されている別のレジャーバージョンに置き換えられることがあります。) | +| `parent_hash` | 文字列 | UInt256 | このバージョンの直前のレジャーバージョンの`ledger_hash`値。直前のレジャーインデックスの異なるバージョンが存在している場合、これはレジャーの生成元を示します。 | +| `total_coins` | 文字列 | UInt64 | レジャーのアカウントが保有するXRPの[XRPのdrop数][]の合計。トランザクション手数料により消却されたXRPは除外されます。一部のアカウントは、そのキーを知っている人がいない「ブラックホール」アカウントであるため、流通している実際のXRPの量はこれよりも少なくなります。 | +| `transaction_hash` | 文字列 | UInt256 | このレジャーに記録されているトランザクションの[SHA-512Half][]。 | +| `close_time_resolution` | 数値 | Uint8 | `close_time`を丸めるときの最大秒数を示す範囲[2,120]内の整数。 | +| [`closeFlags`](#closeフラグ) | (省略) | UInt8 | このレジャーの閉鎖に関連するフラグのビットマップ。 | ## レジャーインデックス + {% partial file="/@l10n/ja/docs/_snippets/data_types/ledger_index.md" /%} - - ## closeフラグ レジャーでは1つのフラグだけがcloseFlagsとして設定されています(**sLCF_NoConsensusTime**(値`1`))。このフラグが有効な場合、バリデータによってレジャーの閉鎖時刻が異なります。ただし、作成しているレジャーは同一のものであるため、バリデータは閉鎖時刻について「合意をしないことに合意する」とした上でコンセンサスを宣言しました。この場合、コンセンサスレジャーバージョンの`close_time`の値は直前のバージョンの1秒後です。(この場合、正式な閉鎖時刻がありませんが、実際の閉鎖時刻はおそらく指定されている`close_time`の3~6秒後です。) `closeFlags`フィールドはレジャーのJSON表現には含まれていませんが、レジャーのバイナリ表現には含まれており、レジャーのハッシュを判別するフィールドの1つです。 - ## 関連項目 レジャーの基本的な説明については、[レジャー](../../../concepts/ledgers/index.md)をご覧ください。 diff --git a/@l10n/ja/docs/references/protocol/transactions/common-fields.md b/@l10n/ja/docs/references/protocol/transactions/common-fields.md index 1c3163aaeb..40359adbd9 100644 --- a/@l10n/ja/docs/references/protocol/transactions/common-fields.md +++ b/@l10n/ja/docs/references/protocol/transactions/common-fields.md @@ -2,29 +2,30 @@ html: transaction-common-fields.html parent: transaction-formats.html seo: - description: どのトランザクションについても、共通する一連のフィールドがあります。 + description: どのトランザクションについても、共通する一連のフィールドがあります。 labels: - トランザクション送信 --- + # トランザクションの共通フィールド どのトランザクションについても、共通する一連のフィールドに加え、[トランザクションのタイプ](types/index.md)に応じた追加のフィールドがあります。フィールドの名前では、大文字と小文字が区別されます。すべてのトランザクションに共通するフィールドは、以下のとおりです。 -| フィールド | JSONの型 | [内部の型][] | 説明 | -|:-------------------|:-----------------|:------------------|:-----------------| -| Account | 文字列 | AccountID | _(必須)_ トランザクションを開始した[アカウント](../../../concepts/accounts/index.md)の一意アドレス。 | -| TransactionType | 文字列 | UInt16 | _(必須)_ トランザクションのタイプ。有効なタイプは、`Payment`、`OfferCreate`、`OfferCancel`、`TrustSet`、`AccountSet`、`SetRegularKey`、`SignerListSet`、`EscrowCreate`、`EscrowFinish`、`EscrowCancel`、`PaymentChannelCreate`、`PaymentChannelFund`、`PaymentChannelClaim`、`DepositPreauth`です。 | -| Fee | 文字列 | Amount | _(必須。[自動入力可能][])_ 整数で表したXRPの額(drop単位)。このトランザクションをネットワークに送信するためのコストとして消却されます。トランザクションのタイプによっては、最小要件が異なります。詳細は、[トランザクションコスト][]をご覧ください。 | -| Sequence | 符号なし整数 | UInt32 | _(必須。[自動入力可能][])_ トランザクションを開始したアカウントに関連付けられた、トランザクションのシーケンス番号。トランザクションが有効とみなされるのは、その`Sequence`番号が、同一のアカウントの直前トランザクションよりも1大きい場合のみです。保留中のトランザクションを`Sequence`番号を使用して無効にする方法については、[トランザクションのキャンセルまたはスキップ](../../../concepts/transactions/finality-of-results/canceling-a-transaction.md)をご覧ください。 | -| [AccountTxnID][] | 文字列 | UInt256 | _(省略可)_ 別のトランザクションを識別するためのハッシュ値。このハッシュがある場合、このトランザクションが有効になるのは、送信側のアカウントの直前送信トランザクションがこのハッシュと一致しているときのみです。 | -| [Flags][] | 符号なし整数 | UInt32 | _(省略可)_ このトランザクションのビットフラグのセット。 | -| LastLedgerSequence | 数値 | UInt32 | _(省略可。使用を強く推奨)_ このトランザクションを登録できるレジャーインデックスの最大値。このフィールドを指定することにより、トランザクションが検証または拒否されるのを待たなければならない期間の上限を設定することができます。詳細は、[信頼できるトランザクションの送信](../../../concepts/transactions/reliable-transaction-submission.md)をご覧ください。 | -| [`NetworkID`](#networkidフィールド) | Number | UInt32 | _(Network-specific)_ The network ID of the chain this transaction is intended for. **MUST BE OMITTED** for Mainnet and some test networks. **REQUIRED** on chains whose network ID is 1025 or higher. | -| [Memos][] | オブジェクトの配列 | 配列 | _(省略可)_ このトランザクションの識別に使用される任意の追加情報。 | -| [Signers][] | 配列 | 配列 | _(省略可)_ このトランザクションを承認するための[マルチシグ](../../../concepts/accounts/multi-signing.md)を表すオブジェクトの配列。 | -| SourceTag | 符号なし整数 | UInt32 | _(省略可)_ この支払いの理由、またはこのトランザクションの実行元である送信者を識別するために使用される任意の整数。一般的に、返金については、最初の支払いの`SourceTag`を返金の`DestinationTag`として指定する必要があります。 | -| SigningPubKey | 文字列 | Blob | _(署名時に自動追加)_ このトランザクションへの署名に使用される秘密鍵に対応する公開鍵の16進表現。空文字列の場合は、代わりに`Signers`フィールドにマルチシグが保持されていることを示します。 | -| TxnSignature | 文字列 | Blob | _(署名時に自動追加)_ このトランザクションが、発信元であると主張しているアカウントから発信されたものであることを検証するための署名。 | +| フィールド | JSONの型 | [内部の型][] | 説明 | +| :---------------------------------- | :----------------- | :----------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Account | 文字列 | AccountID | _(必須)_ トランザクションを開始した[アカウント](../../../concepts/accounts/index.md)の一意アドレス。 | +| TransactionType | 文字列 | UInt16 | _(必須)_ トランザクションのタイプ。有効なタイプは、`Payment`、`OfferCreate`、`OfferCancel`、`TrustSet`、`AccountSet`、`SetRegularKey`、`SignerListSet`、`EscrowCreate`、`EscrowFinish`、`EscrowCancel`、`PaymentChannelCreate`、`PaymentChannelFund`、`PaymentChannelClaim`、`DepositPreauth`です。 | +| Fee | 文字列 | Amount | _(必須。[自動入力可能][])_ 整数で表したXRPの額(drop単位)。このトランザクションをネットワークに送信するためのコストとして消却されます。トランザクションのタイプによっては、最小要件が異なります。詳細は、[トランザクションコスト][]をご覧ください。 | +| Sequence | 符号なし整数 | UInt32 | _(必須。[自動入力可能][])_ トランザクションを開始したアカウントに関連付けられた、トランザクションのシーケンス番号。トランザクションが有効とみなされるのは、その`Sequence`番号が、同一のアカウントの直前トランザクションよりも1大きい場合のみです。保留中のトランザクションを`Sequence`番号を使用して無効にする方法については、[トランザクションのキャンセルまたはスキップ](../../../concepts/transactions/finality-of-results/canceling-a-transaction.md)をご覧ください。 | +| [AccountTxnID][] | 文字列 | UInt256 | _(省略可)_ 別のトランザクションを識別するためのハッシュ値。このハッシュがある場合、このトランザクションが有効になるのは、送信側のアカウントの直前送信トランザクションがこのハッシュと一致しているときのみです。 | +| [Flags][] | 符号なし整数 | UInt32 | _(省略可)_ このトランザクションのビットフラグのセット。 | +| LastLedgerSequence | 数値 | UInt32 | _(省略可。使用を強く推奨)_ このトランザクションを登録できるレジャーインデックスの最大値。このフィールドを指定することにより、トランザクションが検証または拒否されるのを待たなければならない期間の上限を設定することができます。詳細は、[信頼できるトランザクションの送信](../../../concepts/transactions/reliable-transaction-submission.md)をご覧ください。 | +| [`NetworkID`](#networkidフィールド) | Number | UInt32 | _(Network-specific)_ The network ID of the chain this transaction is intended for. **MUST BE OMITTED** for Mainnet and some test networks. **REQUIRED** on chains whose network ID is 1025 or higher. | +| [Memos][] | オブジェクトの配列 | 配列 | _(省略可)_ このトランザクションの識別に使用される任意の追加情報。 | +| [Signers][] | 配列 | 配列 | _(省略可)_ このトランザクションを承認するための[マルチシグ](../../../concepts/accounts/multi-signing.md)を表すオブジェクトの配列。 | +| SourceTag | 符号なし整数 | UInt32 | _(省略可)_ この支払いの理由、またはこのトランザクションの実行元である送信者を識別するために使用される任意の整数。一般的に、返金については、最初の支払いの`SourceTag`を返金の`DestinationTag`として指定する必要があります。 | +| SigningPubKey | 文字列 | Blob | _(署名時に自動追加)_ このトランザクションへの署名に使用される秘密鍵に対応する公開鍵の16進表現。空文字列の場合は、代わりに`Signers`フィールドにマルチシグが保持されていることを示します。 | +| TxnSignature | 文字列 | Blob | _(署名時に自動追加)_ このトランザクションが、発信元であると主張しているアカウントから発信されたものであることを検証するための署名。 | [自動入力可能]: #自動入力可能なフィールド [AccountTxnID]: #accounttxnid @@ -34,7 +35,6 @@ labels: {% badge href="https://github.com/XRPLF/rippled/releases/tag/0.28.0" %}削除: rippled 0.28.0{% /badge %}: トランザクションの`PreviousTxnID`フィールドは、[AccountTxnID][]フィールドに置き換えられました。この文字列/UInt256フィールドは、過去に発生したトランザクションの一部に記述されています。このフィールドは、一部の[レジャーオブジェクト](../ledger-data/index.md)にある`PreviousTxnID`という同じ名前のフィールドとは無関係です。 - ## AccountTxnID `AccountTxnID`フィールドにより、直前のトランザクション(シーケンス番号で識別)も有効で、かつ期待するトランザクションに一致しない限り、現在のトランザクションが有効にならないよう、トランザクションどうしをチェーンにすることができます。 @@ -43,22 +43,20 @@ labels: AccountTxnIDを使用するには、アカウントの1つ前のトランザクションのIDがレジャーで追跡されるよう、最初に[asfAccountTxnID](types/accountset.md#accountsetのフラグ)フラグを設定する必要があります。 - ## 自動入力可能なフィールド 一部のフィールドについては、トランザクションの署名前に、`rippled`サーバによって、または署名に使用される[ripple-lib][]などのライブラリーによって値を自動入力できます。値を自動入力するには、最新の状態を取得するためのXRP Ledgerへのアクティブな接続が必要です。したがって、オフラインでは実行できません。[ripple-lib][]と`rippled`のどちらも、以下の値を自動的に提供できます。 -* `Fee` - ネットワークに基づいて[トランザクションコスト][]を自動的に入力します。 +- `Fee` - ネットワークに基づいて[トランザクションコスト][]を自動的に入力します。 - **注記:**`rippled`の[signメソッド][]を使用するときは、`fee_mult_max`パラメーターと`fee_div_max`パラメーターを使用して、自動入力値の上限を設定できます。 + **注記:**`rippled`の[signメソッド][]を使用するときは、`fee_mult_max`パラメーターと`fee_div_max`パラメーターを使用して、自動入力値の上限を設定できます。 -* `Sequence` - トランザクションを送信する側のアカウントの次のシーケンス番号を自動的に使用します。 +- `Sequence` - トランザクションを送信する側のアカウントの次のシーケンス番号を自動的に使用します。 本番システムについては、これらのフィールドの値がサーバによって入力される状態に _しない_ ことをお勧めします。例えば、ネットワークの負荷が一時的に急上昇したためにトランザクションコストが高騰した場合、トランザクションによっては、一時的な高額のコストを支払うよりも、必要に応じて待機し、コストが低下してから送信したほうが好ましいことがあります。 [Paymentトランザクション][]タイプの[`Paths`フィールド](types/payment.md#パス)についても、値を自動入力できます。 - ## Flagsフィールド `Flags`フィールドには、トランザクションの行動を調整する各種のオプションを設定できます。オプションは、ビット単位のOR操作と組み合わせることで複数のフラグを同時に設定できるバイナリー値として表現します。 @@ -73,10 +71,10 @@ AccountTxnIDを使用するには、アカウントの1つ前のトランザク すべてのトランザクションにグローバルに適用されるフラグは、以下のとおりです。 -| フラグの名前 | 16進値 | 10進値 | 説明 | -|:--------------------|:-----------|:--------------|:--------------------------| -| tfFullyCanonicalSig | 0x80000000 | 2147483648 | _(使用を強く推奨)_ 完全に正規である署名を要求します。 | -| tfInnerBatchTxn | 0x40000000 | 1073741824 | このフラグは [Batchトランザクション][] の内部トランザクションである場合にのみ使用されます。これは、トランザクションが署名されていないことを示します。このフラグを含む通常のトランザクションは拒否されます。 | +| フラグの名前 | 16進値 | 10進値 | 説明 | +| :------------------ | :--------- | :--------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| tfFullyCanonicalSig | 0x80000000 | 2147483648 | _(使用を強く推奨)_ 完全に正規である署名を要求します。 | +| tfInnerBatchTxn | 0x40000000 | 1073741824 | このフラグは [Batchトランザクション][] の内部トランザクションである場合にのみ使用されます。これは、トランザクションが署名されていないことを示します。このフラグを含む通常のトランザクションは拒否されます。 | [signメソッド][](または「署名と送信」モードの[submitメソッド][])を使用すると、`rippled`は、`Flags`フィールドがすでに存在している場合を除き、`tfFullyCanonicalSig`フラグを有効にした状態で`Flags`フィールドを追加します。`tfFullyCanonicalSig`フラグは、`Flags`が明示的に指定されている場合、自動的には有効に***なりません***。また、[sign_forメソッド][]を使用してマルチシグトランザクションに署名を追加する場合も、自動的には有効に***なりません***。 @@ -86,24 +84,23 @@ AccountTxnIDを使用するには、アカウントの1つ前のトランザク トランザクションの`Flags`フィールドでは、さまざまなレベルや状況に適用されるフラグを設定できます。個々の状況に関するフラグは、以下の範囲に限定されます。 -| 範囲の名前 | ビットマスク | 説明 | -|:-----------------|:-------------|:-------------------------------------------| -| ユニバーサルフラグ | `0xff000000` | すべてのタイプのトランザクションに対して一様に適用されるフラグ。 | -| タイプに基づくフラグ | `0x00ff0000` | フラグを使用する[トランザクションのタイプ](types/index.md)に応じて意味が異なるフラグ。 | -| 予約済みのフラグ | `0x0000ffff` | 現時点では定義されていないフラグ。トランザクションが有効になるのは、これらのフラグが無効になっている場合のみです。 | +| 範囲の名前 | ビットマスク | 説明 | +| :------------------- | :----------- | :----------------------------------------------------------------------------------------------------------------- | +| ユニバーサルフラグ | `0xff000000` | すべてのタイプのトランザクションに対して一様に適用されるフラグ。 | +| タイプに基づくフラグ | `0x00ff0000` | フラグを使用する[トランザクションのタイプ](types/index.md)に応じて意味が異なるフラグ。 | +| 予約済みのフラグ | `0x0000ffff` | 現時点では定義されていないフラグ。トランザクションが有効になるのは、これらのフラグが無効になっている場合のみです。 | {% admonition type="info" name="注記" %}[AccountSetトランザクション][]タイプには、タイプに基づくフラグと似た目的を果たす[ビット単位ではない独自のフラグ](types/accountset.md#accountsetのフラグ)があります。[レジャーオブジェクト](../ledger-data/ledger-entry-types/index.md)にも、さまざまなビット単位のフラグが定義される`Flags`フィールドがあります。{% /admonition %} - ## Memosフィールド `Memos`フィールドは、トランザクションに関する任意のメッセージデータを保持します。このフィールドは、オブジェクトの配列として表現します。各オブジェクトには唯一のフィールド`Memo`があり、このフィールドは、以下のフィールドを*1つ以上*持つ別のオブジェクトを保持しています。 -| フィールド | 型 | [内部の型][] | 説明 | -|:-----------|:-------|:------------------|:-----------------------------------| -| MemoData | 文字列 | Blob | 通例、メモの内容を保持する任意の16進値。 | -| MemoFormat | 文字列 | Blob | URLで使用できる文字を表現する16進値。通例、メモのエンコード方法に関する情報を保持しています([MIMEタイプ](http://www.iana.org/assignments/media-types/media-types.xhtml)など)。 | -| MemoType | 文字列 | Blob | URLで使用できる文字を表現する16進値。通例、このメモのフォーマットを定義する一意の関係([RFC 5988](http://tools.ietf.org/html/rfc5988#section-4)に準拠)。 | +| フィールド | 型 | [内部の型][] | 説明 | +| :--------- | :----- | :----------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| MemoData | 文字列 | Blob | 通例、メモの内容を保持する任意の16進値。 | +| MemoFormat | 文字列 | Blob | URLで使用できる文字を表現する16進値。通例、メモのエンコード方法に関する情報を保持しています([MIMEタイプ](http://www.iana.org/assignments/media-types/media-types.xhtml)など)。 | +| MemoType | 文字列 | Blob | URLで使用できる文字を表現する16進値。通例、このメモのフォーマットを定義する一意の関係([RFC 5988](http://tools.ietf.org/html/rfc5988#section-4)に準拠)。 | MemoTypeフィールドとMemoFormatフィールドには、以下の文字のみを使用できます。 `ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~:/?#[]@!$&'()*+,;=%` @@ -127,39 +124,40 @@ MemoTypeフィールドとMemoFormatフィールドには、以下の文字の "Amount": "1" } ``` + ## NetworkIDフィールド + {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.11.0" %}新規: rippled 1.11.0{% /badge %} `NetworkID`フィールドは「クロスチェーン」トランザクションのリプレイ攻撃に対する保護であり、同じトランザクションがコピーされ、意図していない[ネットワーク](../../../concepts/networks-and-servers/parallel-networks.md)で実行されることを防ぎます。既存のチェーンとの互換性のため、ネットワークIDが1024以下のネットワークでは`NetworkID`フィールドを省略する必要がありますが、ネットワークIDが1025以上のネットワークでは`NetworkID`フィールドを含める必要があります。以下の表は、さまざまな既知のネットワークのステータスと値を示しています。 -| ネットワーク | ID | `NetworkID`フィールド | -| ------------------------------- | ----- | ----------------------------------------------------- | -| Mainnet | 0 | 使用不可 | -| Testnet | 1 | 使用不可 | -| Devnet | 2 | 使用不可 | -| Batch Testnet | 21336 | 必須 | -| Xahau Mainnet | 21337 | 必須 | -| Xahau Testnet | 21338 | 必須 | -| JS Hooks Testnet | 31338 | 必須 | +| ネットワーク | ID | `NetworkID`フィールド | +| ---------------- | ----- | --------------------- | +| Mainnet | 0 | 使用不可 | +| Testnet | 1 | 使用不可 | +| Devnet | 2 | 使用不可 | +| Batch Testnet | 21336 | 必須 | +| Xahau Mainnet | 21337 | 必須 | +| Xahau Testnet | 21338 | 必須 | +| JS Hooks Testnet | 31338 | 必須 | トランザクションのリプレイ攻撃は理論的には可能ですが、2つ目のネットワークに特定の条件が必要です。次のすべてが真でなければなりません。 - トランザクションの送信者が2つ目のネットワーク上の資金提供アカウントである。 - 2つ目のネットワーク上の送信者の`Sequence`がトランザクションの`Sequence`と一致するか、トランザクションが第二のネットワークで利用可能な[Ticket](../../../concepts/accounts/tickets.md)を使用している。 - トランザクションが`LastLedgerSequence`フィールドを持っていないか、2つ目レジャーの現在のレジャーインデックスよりも高い値を指定している。 - - メインネットは一般的に、テストネットワークやサイドチェーンよりもレジャーインデックスが高いため、トランザクションが`LastLedgerSequence`を本来の意図通りに使用している場合、メインネットのトランザクションをサイドチェーンやテストネットワークでリプレイする方が現実的です。 + - メインネットは一般的に、テストネットワークやサイドチェーンよりもレジャーインデックスが高いため、トランザクションが`LastLedgerSequence`を本来の意図通りに使用している場合、メインネットのトランザクションをサイドチェーンやテストネットワークでリプレイする方が現実的です。 - ネットワークが両方とも1024以下のIDを持っているか、両方のネットワークが同じIDを使用しているか、2つ目のネットワークが`NetworkID`フィールドを必要としないかのいずれか。 - ## Signersフィールド `Signers`フィールドには、最大8つのキーペアから取得された署名を保持し、トランザクションを承認するための[マルチシグ](../../../concepts/accounts/multi-signing.md)が含まれています。`Signers`リストはオブジェクトの配列であり、各オブジェクトが1つの`Signer`フィールドを保持しています。`Signer`フィールドには、以下の入れ子フィールドがあります。 -| フィールド | 型 | [内部の型][] | 説明 | -|:--------------|:-------|:------------------|:--------------------------------| -| Account | 文字列 | AccountID | SignerListに記述され、この署名に関連付けられているアドレス。 | -| TxnSignature | 文字列 | Blob | `SigningPubKey`を使用して検証できる、このトランザクションの署名。 | -| SigningPubKey | 文字列 | Blob | この署名の作成に使用される公開鍵。 | +| フィールド | 型 | [内部の型][] | 説明 | +| :------------ | :----- | :----------- | :---------------------------------------------------------------- | +| Account | 文字列 | AccountID | SignerListに記述され、この署名に関連付けられているアドレス。 | +| TxnSignature | 文字列 | Blob | `SigningPubKey`を使用して検証できる、このトランザクションの署名。 | +| SigningPubKey | 文字列 | Blob | この署名の作成に使用される公開鍵。 | `SigningPubKey`は、`Account`アドレスに関連付けられているキーでなければなりません。参照されている`Account`が、レジャーにあり資金供給済みアカウントである場合、SigningPubKeyには、そのアカウントの現在のレギュラーキー(設定されている場合)を指定できます。また、[lsfDisableMaster](../ledger-data/ledger-entry-types/accountroot.md#accountrootのフラグ)フラグが有効になっている場合を除き、そのアカウントのマスターキーを指定することもできます。参照されている`Account`アドレスが、レジャーの資金供給済みのアカウントではない場合、`SigningPubKey`は、そのアドレスに関連付けられているマスターキーでなければなりません。 diff --git a/@l10n/ja/docs/references/protocol/transactions/index.md b/@l10n/ja/docs/references/protocol/transactions/index.md index 3ecd6d36ce..a76be76b6f 100644 --- a/@l10n/ja/docs/references/protocol/transactions/index.md +++ b/@l10n/ja/docs/references/protocol/transactions/index.md @@ -2,15 +2,15 @@ html: transaction-formats.html parent: protocol-reference.html seo: - description: プロトコルのすべてのトランザクションタイプとその結果を説明します。 + description: プロトコルのすべてのトランザクションタイプとその結果を説明します。 metadata: indexPage: true --- + # トランザクションリファレンス - _トランザクション_ は、XRP Ledgerを変更する唯一の方法です。[コンセンサスプロセス](../../../concepts/consensus-protocol/index.md)に従って署名され、送信され、検証済みのレジャーバージョンに承認された場合にのみ、トランザクションは[最終](../../../concepts/transactions/finality-of-results/index.md)的なものになります。レジャーのルールによっては、 _[疑似トランザクション](pseudo-transaction-types/index.md)_ も生成されます。このトランザクションは署名も送信もされませんが、コンセンサスによって承認されなければならないことは同様です。失敗したトランザクションも、スパム対策の[トランザクションコスト][]を支払うためにXRPの残高が変更されることから、レジャーに含まれます。 +_トランザクション_ は、XRP Ledgerを変更する唯一の方法です。[コンセンサスプロセス](../../../concepts/consensus-protocol/index.md)に従って署名され、送信され、検証済みのレジャーバージョンに承認された場合にのみ、トランザクションは[最終](../../../concepts/transactions/finality-of-results/index.md)的なものになります。レジャーのルールによっては、 _[疑似トランザクション](pseudo-transaction-types/index.md)_ も生成されます。このトランザクションは署名も送信もされませんが、コンセンサスによって承認されなければならないことは同様です。失敗したトランザクションも、スパム対策の[トランザクションコスト][]を支払うためにXRPの残高が変更されることから、レジャーに含まれます。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} - {% child-pages /%} diff --git a/@l10n/ja/docs/references/protocol/transactions/metadata.md b/@l10n/ja/docs/references/protocol/transactions/metadata.md index 6a8c92e533..eac7a789bf 100644 --- a/@l10n/ja/docs/references/protocol/transactions/metadata.md +++ b/@l10n/ja/docs/references/protocol/transactions/metadata.md @@ -2,10 +2,11 @@ html: transaction-metadata.html parent: transaction-formats.html seo: - description: トランザクションのメタデータは、トランザクションが成功したかどうかに関係なく、トランザクションの結果を詳細に記述します。 + description: トランザクションのメタデータは、トランザクションが成功したかどうかに関係なく、トランザクションの結果を詳細に記述します。 labels: - ブロックチェーン --- + # トランザクションのメタデータ トランザクションのメタデータは、トランザクションの処理後にトランザクションに追加されるひとまとまりのデータです。レジャーに記録されるトランザクションは、トランザクションが成功するかどうかにかかわらず、メタデータを保持しています。トランザクションのメタデータには、トランザクションの結果の詳細が含まれます。 @@ -14,8 +15,7 @@ labels: 以下に、トランザクションのメタデータに含まれる可能性があるフィールドをいくつか示します。 -{% partial file="/@l10n/ja/docs/_snippets/tx-metadata-field-table.md" /%} - +{% partial file="/@l10n/ja/docs/_snippets/tx-metadata-field-table.md" /%} ## メタデータの例 @@ -194,7 +194,6 @@ labels: } ``` - ## AffectedNodes `AffectedNodes`配列には、このトランザクションが何らかの変更を加えた[レジャーエントリ](../ledger-data/ledger-entry-types/index.md)の完全なリストが格納されます。この配列の各項目は、何が起こったかを示すトップレベルのフィールドを1つ持つオブジェクトです。 @@ -205,54 +204,50 @@ labels: これらの各フィールドの値は、レジャーエントリに行われた変更を記述するJSONオブジェクトです。 - ### CreatedNodeのフィールド `CreatedNode`オブジェクトは次のフィールドを含みます。 -| フィールド | 値 | 説明 | -|:------------------|:--------------------|:-------------------------------------| -| `LedgerEntryType` | 文字列 | 作成された[レジャーエントリの種類](../ledger-data/ledger-entry-types/index.md)。 | +| フィールド | 値 | 説明 | +| :---------------- | :-------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `LedgerEntryType` | 文字列 | 作成された[レジャーエントリの種類](../ledger-data/ledger-entry-types/index.md)。 | | `LedgerIndex` | 文字列 - [ハッシュ][] | レジャーの[状態ツリー](../../../concepts/ledgers/index.md)内のこの[レジャーエントリのID](../ledger-data/common-fields.md)。**注意:** 名前が非常に似ていますがこれは[レジャーインデックス](../data-types/basic-data-types.md#レジャーインデックス)とは**異なります**。 | -| `NewFields` | オブジェクト | 新しく作成されたレジャーエントリの内容を示すフィールド。どのフィールドが存在するかは、作成されたレジャーエントリの種類によって異なります。 | - +| `NewFields` | オブジェクト | 新しく作成されたレジャーエントリの内容を示すフィールド。どのフィールドが存在するかは、作成されたレジャーエントリの種類によって異なります。 | ### DeletedNodeのフィールド `DeletedNode`オブジェクトは次のフィールドを含みます。 -| フィールド | 値 | 説明 | -|:------------------|:--------------------|:-------------------------------------| -| `LedgerEntryType` | 文字列 | 削除された[レジャーエントリの種類](../ledger-data/ledger-entry-types/index.md)。 | +| フィールド | 値 | 説明 | +| :---------------- | :-------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `LedgerEntryType` | 文字列 | 削除された[レジャーエントリの種類](../ledger-data/ledger-entry-types/index.md)。 | | `LedgerIndex` | 文字列 - [ハッシュ][] | レジャーの[状態ツリー](../../../concepts/ledgers/index.md)内のこの[レジャーエントリのID](../ledger-data/common-fields.md)。**注意:** 名前が非常に似ていますがこれは[レジャーインデックス](../data-types/basic-data-types.md#レジャーインデックス)とは**異なります** | -| `FinalFields` | オブジェクト | 削除されたレジャーエントリの最後の内容を示すフィールド。どのフィールドが存在するかは、削除されたレジャーエントリの種類によって異なります。 | - +| `FinalFields` | オブジェクト | 削除されたレジャーエントリの最後の内容を示すフィールド。どのフィールドが存在するかは、削除されたレジャーエントリの種類によって異なります。 | ### ModifiedNodeのフィールド `ModifiedNode`オブジェクトは次のフィールドを含みます。 -| フィールド | 値 | 説明 | -|:--------------------|:---------------------------|:---------------------------| -| `LedgerEntryType` | 文字列 | 更新された[レジャーエントリの種類](../ledger-data/ledger-entry-types/index.md)。 | -| `LedgerIndex` | 文字列 - [ハッシュ][] | レジャーの[状態ツリー](../../../concepts/ledgers/index.md)内のこの[レジャーエントリのID](../ledger-data/common-fields.md)。**注意:** 名前が非常に似ていますがこれは[レジャーインデックス](../data-types/basic-data-types.md#レジャーインデックス)とは**異なります**。 | -| `FinalFields` | オブジェクト | このトランザクションからの変更を適用した後のレジャーエントリの内容を示すフィールド。どのフィールドが存在するかは、作成されたレジャーエントリの種類によって異なります。ほとんどのタイプのレジャーエントリには`PreviousTxnID`フィールドと`PreviousTxnLgrSeq`フィールドがありますが、これは省略されます。 | -| `PreviousFields` | オブジェクト | このトランザクションの結果として変更されたオブジェクトのすべてのフィールドの以前の値。トランザクションがオブジェクトにフィールドを追加しただけの場合、このフィールドは空のオブジェクトです。 | -| `PreviousTxnID` | 文字列 - [ハッシュ][] | _(省略可能)_ このレジャーエントリを変更する前のトランザクションの[識別用ハッシュ][]。`PreviousTxnID`フィールドを持たないレジャーエントリの種類では省略されます。 | -| `PreviousTxnLgrSeq` | 数値 - [レジャーインデックス][] | _(省略可能)_ このレジャーエントリを変更する前のトランザクションを含むレジャーバージョンの[レジャーインデックス][]。`PreviousTxnLgrSeq`フィールドを持たないレジャーエントリの種類では省略されます。 | +| フィールド | 値 | 説明 | +| :------------------ | :------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `LedgerEntryType` | 文字列 | 更新された[レジャーエントリの種類](../ledger-data/ledger-entry-types/index.md)。 | +| `LedgerIndex` | 文字列 - [ハッシュ][] | レジャーの[状態ツリー](../../../concepts/ledgers/index.md)内のこの[レジャーエントリのID](../ledger-data/common-fields.md)。**注意:** 名前が非常に似ていますがこれは[レジャーインデックス](../data-types/basic-data-types.md#レジャーインデックス)とは**異なります**。 | +| `FinalFields` | オブジェクト | このトランザクションからの変更を適用した後のレジャーエントリの内容を示すフィールド。どのフィールドが存在するかは、作成されたレジャーエントリの種類によって異なります。ほとんどのタイプのレジャーエントリには`PreviousTxnID`フィールドと`PreviousTxnLgrSeq`フィールドがありますが、これは省略されます。 | +| `PreviousFields` | オブジェクト | このトランザクションの結果として変更されたオブジェクトのすべてのフィールドの以前の値。トランザクションがオブジェクトにフィールドを追加しただけの場合、このフィールドは空のオブジェクトです。 | +| `PreviousTxnID` | 文字列 - [ハッシュ][] | _(省略可能)_ このレジャーエントリを変更する前のトランザクションの[識別用ハッシュ][]。`PreviousTxnID`フィールドを持たないレジャーエントリの種類では省略されます。 | +| `PreviousTxnLgrSeq` | 数値 - [レジャーインデックス][] | _(省略可能)_ このレジャーエントリを変更する前のトランザクションを含むレジャーバージョンの[レジャーインデックス][]。`PreviousTxnLgrSeq`フィールドを持たないレジャーエントリの種類では省略されます。 | {% admonition type="info" name="注記" %}変更されたレジャーエントリに`PreviousTxnID`フィールドと`PreviousTxnLgrSeq`フィールドがある場合、トランザクションは常にトランザクションの識別ハッシュとトランザクションを含むレジャーバージョンのインデックスでそれらを更新しますが、これらのフィールドの新しい値は`ModifiedNode`オブジェクトの`FinalFields`にはリストされず、以前の値はネストされた`PreviousFields`オブジェクトではなく`ModifiedNode`オブジェクトのトップレベルにリストされます。{% /admonition %} - ## NFTのフィールド NFTを含むトランザクション(`tx`と`account_tx`)はメタデータに以下のフィールドを含むことができます。これらの値はリクエスト時にサーバによって追加され、ハッシュ化されたバイナリメタデータには格納されません。 -| フィールド | 値 | 説明 | -|:--------------------|:--------------------------|:---------------------------| -| `nftoken_id` | 文字列 | トランザクションの結果、レジャー上で変更された`NFToken`の`NFTokenID`を示します。トランザクションが`NFTokenMint`または`NFTokenAcceptOffer`の場合のみ表示されます。[NFTokenID](../data-types/nftoken.md#nftokenid)をご覧ください。 | -| `nftoken_ids` | 配列 | トランザクションの結果、レジャー上で変更された`NFToken`のすべての`NFTokenID`を表示します。トランザクションが `NFTokenCancelOffer`の場合のみ表示されます。 | -| `offer_id` | 文字列 | `NFTokenCreateOffer`トランザクションからのレスポンスに、新しい`NFTokenOffer`の`OfferID`を表示します。 | +| フィールド | 値 | 説明 | +| :------------ | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `nftoken_id` | 文字列 | トランザクションの結果、レジャー上で変更された`NFToken`の`NFTokenID`を示します。トランザクションが`NFTokenMint`または`NFTokenAcceptOffer`の場合のみ表示されます。[NFTokenID](../data-types/nftoken.md#nftokenid)をご覧ください。 | +| `nftoken_ids` | 配列 | トランザクションの結果、レジャー上で変更された`NFToken`のすべての`NFTokenID`を表示します。トランザクションが `NFTokenCancelOffer`の場合のみ表示されます。 | +| `offer_id` | 文字列 | `NFTokenCreateOffer`トランザクションからのレスポンスに、新しい`NFTokenOffer`の`OfferID`を表示します。 | ## MPTのフィールド @@ -270,8 +265,8 @@ NFTを含むトランザクション(`tx`と`account_tx`)はメタデータ トランザクションのメタデータの`delivered_amount`フィールドは、成功したすべてのPaymentトランザクションが保持しており、フォーマットは通常の通貨額と同様です。ただし、送金額は、以下の両方の条件に該当するトランザクションについては使用できません。 -* Partial Paymentsである -* 2014-01-20よりも前の検証済みレジャーに含まれている +- Partial Paymentsである +- 2014-01-20よりも前の検証済みレジャーに含まれている 両方の条件に該当する場合、`delivered_amount`には、実際の金額ではなく文字列値`unavailable`が記述されます。この場合、トランザクションのメタデータにあるAffectedNodesを読み取ることが、実際に送金された金額を割り出せる唯一の手段になります。 diff --git a/@l10n/ja/docs/references/protocol/transactions/pseudo-transaction-types/enableamendment.md b/@l10n/ja/docs/references/protocol/transactions/pseudo-transaction-types/enableamendment.md index 0c1c0853b6..22b53f28d8 100644 --- a/@l10n/ja/docs/references/protocol/transactions/pseudo-transaction-types/enableamendment.md +++ b/@l10n/ja/docs/references/protocol/transactions/pseudo-transaction-types/enableamendment.md @@ -1,19 +1,20 @@ --- seo: - description: トランザクション処理を変更するAmendmentプロセスの進行状況を追跡します。 + description: トランザクション処理を変更するAmendmentプロセスの進行状況を追跡します。 labels: - - ブロックチェーン + - ブロックチェーン --- + # EnableAmendment `EnableAmendment`[疑似トランザクション](./index.md)はトランザクション処理を変更する[Amendmentプロセス](../../../../concepts/networks-and-servers/amendments.md#amendmentプロセス)の進行状況を追跡します。この疑似トランザクションは、提案されたAmendmentが多数の承認を獲得したか否かや、Amendmentの有効化の状況を示します。 {% admonition type="info" name="注記" %}疑似トランザクションは送信できませんが、レジャーの処理時に疑似トランザクションが見つかることがあります。{% /admonition %} -| フィールド | JSONの型 | [内部の型][] | 説明 | -|:---------------|:----------|:------------------|:----------------------------| -| Amendment | 文字列 | UInt256 | Amendmentの一意のID。人間が読み取れる形式の名前ではありません。既知のAmendmentのリストについては、[Amendment](../../../../concepts/networks-and-servers/amendments.md)をご覧ください。 | -| LedgerSequence | 数値 | UInt32 | Amendmentが含まれているレジャーバージョンのインデックス。これにより、この疑似トランザクションと別途発生する同様の変更が区別されます。 | +| フィールド | JSONの型 | [内部の型][] | 説明 | +| :------------- | :------- | :----------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Amendment | 文字列 | UInt256 | Amendmentの一意のID。人間が読み取れる形式の名前ではありません。既知のAmendmentのリストについては、[Amendment](../../../../concepts/networks-and-servers/amendments.md)をご覧ください。 | +| LedgerSequence | 数値 | UInt32 | Amendmentが含まれているレジャーバージョンのインデックス。これにより、この疑似トランザクションと別途発生する同様の変更が区別されます。 | ## EnableAmendment Flags @@ -21,9 +22,9 @@ EnableAmendment疑似トランザクションの`Flags`の値は、この疑似 `Flags`の値が`0`(フラグなし)の場合、Amendmentは有効化されており、これ以降のすべてのレジャーに適用されます。`Flags`のその他の値を以下に示します。 -| フラグ名 | 16進値 | 10進値 | 説明 | -|:---------------|:-----------|:--------------|:-------------------------------| -| tfGotMajority | 0x00010000 | 65536 | このレジャーバージョン以降、信頼できるバリデータのAmendment支持率は80%以上に増加しました。 | -| tfLostMajority | 0x00020000 | 131072 | このレジャーバージョン以降、信頼できるバリデータのAmendment支持率が80%未満に減少しました。 | +| フラグ名 | 16進値 | 10進値 | 説明 | +| :------------- | :--------- | :----- | :----------------------------------------------------------------------------------------- | +| tfGotMajority | 0x00010000 | 65536 | このレジャーバージョン以降、信頼できるバリデータのAmendment支持率は80%以上に増加しました。 | +| tfLostMajority | 0x00020000 | 131072 | このレジャーバージョン以降、信頼できるバリデータのAmendment支持率が80%未満に減少しました。 | {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/transactions/pseudo-transaction-types/index.md b/@l10n/ja/docs/references/protocol/transactions/pseudo-transaction-types/index.md index 02af5948e2..bad20d51f5 100644 --- a/@l10n/ja/docs/references/protocol/transactions/pseudo-transaction-types/index.md +++ b/@l10n/ja/docs/references/protocol/transactions/pseudo-transaction-types/index.md @@ -2,25 +2,25 @@ html: pseudo-transaction-types.html parent: transaction-formats.html seo: - description: バリデータがXRP Ledgerに適用する場合がある疑似トランザクションのフォーマットです。 + description: バリデータがXRP Ledgerに適用する場合がある疑似トランザクションのフォーマットです。 metadata: indexPage: true labels: - ブロックチェーン --- + # 疑似トランザクション 疑似トランザクションはユーザにより送信されることがなく、またネットワークで伝搬されません。その代わりに、サーバは提案されたレジャーに疑似トランザクションを直接挿入することを選択できます。十分な数のサーバがこの疑似トランザクションを挿入し、疑似トランザクションがコンセンサスを通過すると、この疑似トランザクションはレジャーに記録され、それ以降レジャーデータに表示されます。 通常のトランザクションの必須フィールドの中には、疑似トランザクションには不適切なものがあります。このような場合、疑似トランザクションのデフォルト値は以下のようになります。 -| フィールド | デフォルト値 | -|:--------------|:---------------------------------------------------------| +| フィールド | デフォルト値 | +| :------------ | :------------------------------------------------------------------------ | | Account | [ACCOUNT_ZERO](../../../../concepts/accounts/addresses.md#特別なアドレス) | -| Sequence | 0 | -| Fee | 0 | -| SigningPubKey | "" | -| Signature | "" | - +| Sequence | 0 | +| Fee | 0 | +| SigningPubKey | "" | +| Signature | "" | {% child-pages /%} diff --git a/@l10n/ja/docs/references/protocol/transactions/pseudo-transaction-types/setfee.md b/@l10n/ja/docs/references/protocol/transactions/pseudo-transaction-types/setfee.md index 8af459b4bc..744df06991 100644 --- a/@l10n/ja/docs/references/protocol/transactions/pseudo-transaction-types/setfee.md +++ b/@l10n/ja/docs/references/protocol/transactions/pseudo-transaction-types/setfee.md @@ -1,9 +1,10 @@ --- seo: - description: 手数料投票の結果としてトランザクションコストまたはアカウント準備金の要件が変更されます。 + description: 手数料投票の結果としてトランザクションコストまたはアカウント準備金の要件が変更されます。 labels: - 手数料 --- + # SetFee `SetFee`[疑似トランザクション](./index.md)は[手数料投票](../../../../concepts/consensus-protocol/fee-voting.md)の結果として[トランザクションコスト](../../../../concepts/transactions/transaction-cost.md)または[アカウント準備金](../../../../concepts/accounts/reserves.md)の要件が変更されます。 @@ -12,28 +13,28 @@ labels: ```json { - "Account": "rrrrrrrrrrrrrrrrrrrrrhoLvTp", - "BaseFee": "000000000000000A", - "Fee": "0", - "ReferenceFeeUnits": 10, - "ReserveBase": 20000000, - "ReserveIncrement": 5000000, - "Sequence": 0, - "SigningPubKey": "", - "TransactionType": "SetFee", - "date": 439578860, - "hash": "1C15FEA3E1D50F96B6598607FC773FF1F6E0125F30160144BE0C5CBC52F5151B", - "ledger_index": 3721729, - } + "Account": "rrrrrrrrrrrrrrrrrrrrrhoLvTp", + "BaseFee": "000000000000000A", + "Fee": "0", + "ReferenceFeeUnits": 10, + "ReserveBase": 20000000, + "ReserveIncrement": 5000000, + "Sequence": 0, + "SigningPubKey": "", + "TransactionType": "SetFee", + "date": 439578860, + "hash": "1C15FEA3E1D50F96B6598607FC773FF1F6E0125F30160144BE0C5CBC52F5151B", + "ledger_index": 3721729 +} ``` -| フィールド | JSONの型 | [内部の型][] | 説明 | -|:------------------|:-----------------|:------------------|:------------------| -| BaseFee | 文字列 | UInt64 | リファレンストランザクションの手数料(XRPのdrop数、16進数)。(これは、負荷スケーリング前の[トランザクションコスト](../../../../concepts/transactions/transaction-cost.md)です。) | -| ReferenceFeeUnits | 符号なし整数 | UInt32 | リファレンストランザクションのコスト(手数料単位) | -| ReserveBase | 符号なし整数 | UInt32 | 基本準備金(drop数) | -| ReserveIncrement | 符号なし整数 | UInt32 | 増分準備金(drop数) | -| LedgerSequence | 数値 | UInt32 | _(過去に発生した`SetFee`疑似トランザクションの場合は省略)_ この擬似トランザクションが表示されるレジャーバージョンのインデックス。これにより、この疑似トランザクションと別途発生する同様の変更が区別されます。 | +| フィールド | JSONの型 | [内部の型][] | 説明 | +| :---------------- | :----------- | :----------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| BaseFee | 文字列 | UInt64 | リファレンストランザクションの手数料(XRPのdrop数、16進数)。(これは、負荷スケーリング前の[トランザクションコスト](../../../../concepts/transactions/transaction-cost.md)です。) | +| ReferenceFeeUnits | 符号なし整数 | UInt32 | リファレンストランザクションのコスト(手数料単位) | +| ReserveBase | 符号なし整数 | UInt32 | 基本準備金(drop数) | +| ReserveIncrement | 符号なし整数 | UInt32 | 増分準備金(drop数) | +| LedgerSequence | 数値 | UInt32 | _(過去に発生した`SetFee`疑似トランザクションの場合は省略)_ この擬似トランザクションが表示されるレジャーバージョンのインデックス。これにより、この疑似トランザクションと別途発生する同様の変更が区別されます。 | {% raw-partial file="/@l10n/ja/docs/_snippets/setfee_uniqueness_note.md" /%} diff --git a/@l10n/ja/docs/references/protocol/transactions/pseudo-transaction-types/unlmodify.md b/@l10n/ja/docs/references/protocol/transactions/pseudo-transaction-types/unlmodify.md index 12a033933c..5624bb6720 100644 --- a/@l10n/ja/docs/references/protocol/transactions/pseudo-transaction-types/unlmodify.md +++ b/@l10n/ja/docs/references/protocol/transactions/pseudo-transaction-types/unlmodify.md @@ -1,9 +1,10 @@ --- seo: - description: 現在オフラインとみなされている信頼できるバリデータのリストを変更します。 + description: 現在オフラインとみなされている信頼できるバリデータのリストを変更します。 labels: - - ブロックチェーン + - ブロックチェーン --- + # UNLModify `UNLModify`[疑似トランザクション](./index.md)は[Negative UNL](../../../../concepts/consensus-protocol/negative-unl.md)の変更を示し、信頼できるバリデータがオフラインになったかオンラインに戻ってきたことを示します。 @@ -23,18 +24,19 @@ labels: "SigningPubKey": "", "TransactionType": "UNLModify", "UNLModifyDisabling": 1, - "UNLModifyValidator": "ED6629D456285AE3613B285F65BBFF168D695BA3921F309949AFCD2CA7AFEC16FE", + "UNLModifyValidator": "ED6629D456285AE3613B285F65BBFF168D695BA3921F309949AFCD2CA7AFEC16FE" } ``` {% partial file="/@l10n/ja/docs/_snippets/pseudo-tx-fields-intro.md" /%} + -| 名前 | JSONの型 | [内部の型][] | 説明 | -|:---------------------|:--------|:------------------|:----------------------| -| `TransactionType` | 文字列 | UInt16 | `0x0066`は文字列`UNLModify`にマッピングされ、このオブジェクトが`UNLModify`擬似トランザクションであることを表します。 | -| `LedgerSequence` | 数値 | UInt32 | この擬似トランザクションが出現する[レジャーインデックス][]です。これは、この擬似トランザクションを、同じ変更の他の出現と区別するものです。 | -| `UNLModifyDisabling` | 数値 | UInt8 | `1`の場合、この変更はネガティブUNLにバリデータを追加することを意味します。0` の場合、この変更はネガティブ UNL からバリデータを削除することを意味します。(これらの値以外は使用できません) | -| `UNLModifyValidator` | 文字列 | Blob | 追加または削除するバリデータであり、そのマスター公開鍵で識別されます。 | +| 名前 | JSONの型 | [内部の型][] | 説明 | +| :------------------- | :------- | :----------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `TransactionType` | 文字列 | UInt16 | `0x0066`は文字列`UNLModify`にマッピングされ、このオブジェクトが`UNLModify`擬似トランザクションであることを表します。 | +| `LedgerSequence` | 数値 | UInt32 | この擬似トランザクションが出現する[レジャーインデックス][]です。これは、この擬似トランザクションを、同じ変更の他の出現と区別するものです。 | +| `UNLModifyDisabling` | 数値 | UInt8 | `1`の場合、この変更はネガティブUNLにバリデータを追加することを意味します。0` の場合、この変更はネガティブ UNL からバリデータを削除することを意味します。(これらの値以外は使用できません) | +| `UNLModifyValidator` | 文字列 | Blob | 追加または削除するバリデータであり、そのマスター公開鍵で識別されます。 | {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/transactions/transaction-results/index.md b/@l10n/ja/docs/references/protocol/transactions/transaction-results/index.md index ee7f43ca06..cb838fe95c 100644 --- a/@l10n/ja/docs/references/protocol/transactions/transaction-results/index.md +++ b/@l10n/ja/docs/references/protocol/transactions/transaction-results/index.md @@ -2,24 +2,25 @@ html: transaction-results.html parent: transaction-formats.html seo: - description: rippledサーバのトランザクション結果の解釈の仕方について説明します。 + description: rippledサーバのトランザクション結果の解釈の仕方について説明します。 labels: - トランザクション送信 --- + # トランザクションの結果 [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/TER.h "Source") `rippled`サーバは、トランザクション結果の要約を結果コードで示し、結果コードは`engine_result`や`meta.TransactionResult`などのフィールドに記述されます。これらのコードは、それぞれ異なるプレフィクスを付加した複数のカテゴリに分類されます。 -| カテゴリ | プレフィクス | 説明 | -|:----------------------|:------------------------|:---------------------------| -| コストの請求のみ | [tec](tec-codes.md) | トランザクションは意図された目的を果さず、[トランザクションコスト](../../../../concepts/transactions/transaction-cost.md)は消却されました。この結果が最終的なものになるのは、検証済みレジャーに記録された場合のみです。 | -| 失敗 | [tef](tef-codes.md) | サーバの現在の(進行中の)レジャーまたはその後のレジャーに対して、トランザクションを適用できません。すでに適用されているか、レジャーの状態が原因となって、将来の適用が不可能になっています。 | -| ローカルエラー | [tel](tel-codes.md) | 負荷が高いなど、ローカルの状態が原因となって、`rippled`サーバでエラーが発生しました。サーバまたは時間を変えて再送信すると、別のレスポンスを得られる可能性があります。 | -| 形式が正しくないトランザクション | [tem](tem-codes.md) | 構文が誤っている、オプションが互いに矛盾している、署名が不正であるなどの原因で、トランザクションが無効になっています。 | -| 再試行 | [ter](ter-codes.md) | トランザクションを適用できませんでしたが、後ほど適用できる可能性があります。 | -| 成功 | [tes](tes-success.md) | (エラーではありません)トランザクションは成功しました。この結果が最終的なものになるのは、検証済みレジャーに記録された場合のみです。 | +| カテゴリ | プレフィクス | 説明 | +| :------------------------------- | :-------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| コストの請求のみ | [tec](tec-codes.md) | トランザクションは意図された目的を果さず、[トランザクションコスト](../../../../concepts/transactions/transaction-cost.md)は消却されました。この結果が最終的なものになるのは、検証済みレジャーに記録された場合のみです。 | +| 失敗 | [tef](tef-codes.md) | サーバの現在の(進行中の)レジャーまたはその後のレジャーに対して、トランザクションを適用できません。すでに適用されているか、レジャーの状態が原因となって、将来の適用が不可能になっています。 | +| ローカルエラー | [tel](tel-codes.md) | 負荷が高いなど、ローカルの状態が原因となって、`rippled`サーバでエラーが発生しました。サーバまたは時間を変えて再送信すると、別のレスポンスを得られる可能性があります。 | +| 形式が正しくないトランザクション | [tem](tem-codes.md) | 構文が誤っている、オプションが互いに矛盾している、署名が不正であるなどの原因で、トランザクションが無効になっています。 | +| 再試行 | [ter](ter-codes.md) | トランザクションを適用できませんでしたが、後ほど適用できる可能性があります。 | +| 成功 | [tes](tes-success.md) | (エラーではありません)トランザクションは成功しました。この結果が最終的なものになるのは、検証済みレジャーに記録された場合のみです。 | {% admonition type="danger" name="警告" %}トランザクションの暫定的な結果コードは、最終的な結果とは異なるものになる場合があります。暫定的に成功とされたトランザクションが最終的に失敗する場合や、暫定的に失敗とされたトランザクションが最終的に成功する場合もあります。暫定的に失敗とされたトランザクションが、最終的に別のコードで失敗とされる場合もあります。トランザクションの結果が最終的なものとなるタイミングを判断する方法については、[結果のファイナリティー](../../../../concepts/transactions/finality-of-results/index.md)をご覧ください。{% /admonition %} @@ -27,18 +28,17 @@ labels: これに対して、`tem`エラーは、設定にかかわらずトランザクションを適用できるサーバが存在しないことを示唆しています。トランザクションがプロトコルのルールに違反しているか、許容限度を超えてあいまいであるか、完全に無意味なものになっています。形式が正しくないトランザクションが有効なものになる可能性があるのは、プロトコルに変更が生じた場合のみです。例えば、新しい機能が採用された場合、当該の機能を使用するトランザクションは、当該の機能がまだ採用されていない古いソフトウェアを実行しているサーバによって、形式が正しくないと見なされる可能性があります。 - ## 即時のレスポンス [submitメソッド][]から返されるレスポンスには、トランザクションのローカル処理中に発生した事項を示す、`rippled`サーバからの暫定的な結果が含まれています。 `submit`からのレスポンスに含まれているのは、以下のフィールドです。 -| フィールド | 値 | 説明 | -|:------------------------|:---------------|:----------------------------------| -| `engine_result` | 文字列 | 結果を分類するコード。例: `tecPATH_DRY` | -| `engine_result_code` | 符号付き整数 | `engine_result`に対応する数値。値そのものは変更される可能性があります。 | -| `engine_result_message` | 文字列 | 発生した事項を説明する、人間が読める形式のメッセージ。このメッセージは、問題を診断する目的で開発者に利用されることを想定したものであり、通知なく変更される可能性があります。 | +| フィールド | 値 | 説明 | +| :---------------------- | :----------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `engine_result` | 文字列 | 結果を分類するコード。例: `tecPATH_DRY` | +| `engine_result_code` | 符号付き整数 | `engine_result`に対応する数値。値そのものは変更される可能性があります。 | +| `engine_result_message` | 文字列 | 発生した事項を説明する、人間が読める形式のメッセージ。このメッセージは、問題を診断する目的で開発者に利用されることを想定したものであり、通知なく変更される可能性があります。 | トランザクションをローカルで送信して適用した時点で問題がない場合、レスポンスは以下のような内容になります。 diff --git a/@l10n/ja/docs/references/protocol/transactions/transaction-results/tec-codes.md b/@l10n/ja/docs/references/protocol/transactions/transaction-results/tec-codes.md index dc0e9997b4..1ffe52ea2b 100644 --- a/@l10n/ja/docs/references/protocol/transactions/transaction-results/tec-codes.md +++ b/@l10n/ja/docs/references/protocol/transactions/transaction-results/tec-codes.md @@ -1,10 +1,12 @@ --- seo: - description: tecコードは、トランザクションは失敗したものの、トランザクションコストを適用するために、このトランザクションがレジャーに適用されたことを示します。 + description: tecコードは、トランザクションは失敗したものの、トランザクションコストを適用するために、このトランザクションがレジャーに適用されたことを示します。 labels: - - トランザクション送信 + - トランザクション送信 --- + # tecコード + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/TER.cpp "ソース") これらのコードは、トランザクションは失敗したものの、[トランザクションコスト](../../../../concepts/transactions/transaction-cost.md)を適用するために、このトランザクションがレジャーに適用されたことを示します。100から199までの数値が含まれています。数値ではなくテキストコードの使用が推奨されます。 @@ -13,60 +15,60 @@ labels: {% admonition type="warning" name="注意" %}暫定的に`tec`コードで失敗したトランザクションは、再適用後に成功するか、または別のコードで失敗する可能性があります。検証済みレジャーバージョンに記録される結果が最終結果となります。詳細は、[結果のファイナリティー](../../../../concepts/transactions/finality-of-results/index.md)と[信頼できるトランザクションの送信](../../../../concepts/transactions/reliable-transaction-submission.md)をご覧ください。{% /admonition %} -| コード | 値 | 説明 | -|:---------------------------------- |:----|:----------------------------------------| -| `tecAMM_ACCOUNT` | 168 | 自動マーケットメーカー(AMM)アカウントではこの操作が許可されていないため、トランザクションが失敗しました。 {% amendment-disclaimer name="AMM" /%} | -| `tecAMM_UNFUNDED` | 162 | 送信者が指定された資産を十分に保有していないため[AMMCreateトランザクション][]が失敗しました。 {% amendment-disclaimer name="AMM" /%} | -| `tecAMM_BALANCE` | 163 | AMMまたはユーザーが指定された資産の十分な量を保有していないため[AMMDeposit][]または[AMMWithdraw][]トランザクションが失敗しました。(例えば、AMMが保有するよりも多くを引き出そうとしている場合) {% amendment-disclaimer name="AMM" /%} | -| `tecAMM_EMPTY` | 166 | AMMのプールに資産がないためAMM関連のトランザクションが失敗しました。この状態では、AMMを削除するか、新しい入金でAMMに資金を供給することしかできません。 {% amendment-disclaimer name="AMM" /%} | -| `tecAMM_FAILED` | 164 | AMM関連のトランザクションは失敗しました。[AMMDeposit][]または[AMMWithdraw][]の場合、これは送信者が指定された資産を十分に持っていないか、利用可能な金額では不可能な実効価格がトランザクションで要求されたことが原因である可能性があります。[AMMBid][]の場合、これは当該アカウントが落札に必要な金額を十分に持っていないか、指定された最高入札価格よりも高い金額が必要であることが原因である可能性があります。[AMMVote] の場合、このAMMのLPトークンをより多く保有している他のアカウントからの投票がすでに多すぎるのが原因である可能性があります。 {% amendment-disclaimer name="AMM" /%} | -| `tecAMM_INVALID_TOKENS` | 165 | LPトークンの不足や丸め処理の問題により、AMM関連のトランザクションが失敗しました。例えば、返却されるLPトークンの額がゼロに切り捨てられる場合、「非常に少量の資産を預け入れる」という行為が失敗する可能性があります。 {% amendment-disclaimer name="AMM" /%} | -| `tecAMM_NOT_EMPTY` | 167 | トランザクションは、資産プールが空のAMMで動作するように設計されていましたが、指定されたAMMは資産を保有しています。 {% amendment-disclaimer name="AMM" /%} | -| `tecCANT_ACCEPT_OWN_NFTOKEN_OFFER` | 157 | トランザクションは、同じアカウントが購入または売却するために作成された[非代替可能トークン(NFT)](../../../../concepts/tokens/nfts/index.md)のオファーを受け入れようとしました。 {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} | -| `tecCLAIM` | 100 | 不明なエラー。トランザクションコストは消却されました。 | -| `tecCRYPTOCONDITION_ERROR` | 146 | この[EscrowCreate][]トランザクションまたは[EscrowFinish][]トランザクションに指定されるCrypto-conditionの形式が誤っているか、または一致しませんでした。 | -| `tecDIR_FULL` | 121 | トランザクションがアカウントの所有者ディレクトリにオブジェクト(トラストライン、Check、Escrow、Payment Channelなど)を追加しようと試みましたが、このアカウントはレジャーにこれ以上のオブジェクトを所有できません。 | -| `tecDUPLICATE` | 149 | トランザクションが、すでに存在するオブジェクト([DepositPreauth][]の承認など)を作成しようとしました。 | -| `tecDST_TAG_NEEDED` | 143 | [Paymentトランザクション][]の宛先タグが省略されましたが、支払先アカウントでは`lsfRequireDestTag`フラグが有効になっています。 | -| `tecEMPTY_DID` | 187 | トランザクションが[DIDエントリ](../../ledger-data/ledger-entry-types/did.md)を作成しようとしましたが、内容が空でした。DIDは空にできません。 {% amendment-disclaimer name="DID" /%} | -| `tecEXPIRED` | 148 | トランザクションがオブジェクト(OfferやCheckなど)を作成しようとしましたが、そのオブジェクトで指定された有効期限がすでに経過しています。 | -| `tecFAILED_PROCESSING` | 105 | トランザクションの処理中に不明なエラーが発生しました。 | -| `tecFROZEN` | 137 | [OfferCreateトランザクション][]が失敗しました。関係する1つまたは両方の資産が[Global Freeze](../../../../concepts/tokens/fungible-tokens/freezes.md)の対象となっています。 | -| `tecHAS_OBLIGATIONS ` | 151 | 削除するアカウントが削除できないオブジェクトを所有しているため、[AccountDeleteトランザクション][]が失敗しました。詳細は、[アカウントの削除](../../../../concepts/accounts/deleting-accounts.md)をご覧ください。 | -| `tecINSUF_RESERVE_LINE` | 122 | 送信側アカウントに、新しいトラストラインを作成するのに十分なXRPがないため、トランザクションが失敗しました。([準備金](../../../../concepts/accounts/reserves.md)をご覧ください)このエラーは、取引相手から同一通貨の送信側アカウントへのトラストラインがデフォルト以外の状態である場合に発生します。(その他のケースについては`tecNO_LINE_INSUF_RESERVE`をご覧ください。) | -| `tecINSUF_RESERVE_OFFER` | 123 | 送信側アカウントに、新しいオファーを作成するのに十分なXRPがないため、トランザクションが失敗しました。([準備金](../../../../concepts/accounts/reserves.md)をご覧ください。) | -| `tecINSUFF_FEE` | 136 | 指定された[トランザクションコスト](../../../../concepts/transactions/transaction-cost.md)を支払うのに十分なXRPが送金元アカウントにないため、トランザクションが失敗しました。(この場合、送金元のXRPが指定されたトランザクションコストよりも低い場合でも、トランザクション処理によってすべて消却されます。)この結果は、このトランザクションがコンセンサスセットに含まれるのに十分なネットワークに配布された*後に*アカウントの残高が減少した場合にのみ発生します。そうでない場合、トランザクションは配布される前に[`terINSUF_FEE_B`](ter-codes.md)で失敗します。 | -| `tecINSUFFICIENT_FUNDS` | 158 | 関連するアカウントのうちの1つが必要な資産を十分に保有していません。 {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} | -| `tecINSUFFICIENT_PAYMENT` | 161 | 指定された金額は、トランザクションに関わるすべての料金を支払うには十分ではありません。例えば、非代替性トークンを取引する場合、購入金額はブローカー手数料と販売金額の両方を支払うには不十分である可能性があります。 {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} | -| `tecINSUFFICIENT_RESERVE` | 141 | トランザクションによって[必要準備金](../../../../concepts/accounts/reserves.md)が増加し、送信側アカウントの残高を超える可能性があります。[SignerListSet][]、[PaymentChannelCreate][]、[PaymentChannelFund][]、および[EscrowCreate][]からこのエラーコードが返されることがあります。詳細は、[SignerListと準備金](../../ledger-data/ledger-entry-types/signerlist.md#signerlistと準備金)をご覧ください。 | -| `tecINTERNAL` | 144 | 不明な内部エラーが発生し、トランザクションコストは適用されました。通常はこのエラーは返されません。このエラーを再現できる場合は、[問題を報告](https://github.com/XRPLF/rippled/issues)してください。 | -| `tecINVARIANT_FAILED` | 147 | このトランザクションを実行しようとしたところ、不変性チェックが失敗しました。このエラーを再現できる場合は、[問題を報告](https://github.com/XRPLF/rippled/issues)してください。{% amendment-disclaimer name="EnforceInvariants" /%} | -| `tecKILLED` | 150 | [OfferCreateトランザクション][]がtfFillOrKillフラグを指定しましたが、トランザクションを確定できなかったため、このトランザクションは取り消されました。{% amendment-disclaimer name="fix1578" /%} | -| `tecMAX_SEQUENCE_REACHED` | 153 | シーケンス番号フィールドはすでに最大値に達しています。これには`MintedNFTokens`フィールドも含まれます。 {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} | -| `tecNEED_MASTER_KEY` | 142 | このトランザクションはマスターキーを必要とする変更([マスターキーの無効化または残高フリーズ能力の放棄](../types/accountset.md#accountsetのフラグ)など)を試みました。| -| `tecNFTOKEN_BUY_SELL_MISMATCH` | 155 | [NFTokenAcceptOfferトランザクション][]は、非代替性トークンの購入と売却に関する対応しないオファーをマッチングさせようとしました。 {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} | -| `tecNFTOKEN_OFFER_TYPE_MISMATCH` | 156 | トランザクションで指定されたオファーのうち、1つまたは複数について、オファーの種類が適切ではありませんでした。(例えば、`NFTokenSellOffer`フィールドに購入オファーが指定されていました。) {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} | -| `tecNO_ALTERNATIVE_KEY` | 130 | トランザクションが唯一の[トランザクション承認](../../../../concepts/transactions/index.md#トランザクションの承認)メソッドを削除しようとしました。これは、レギュラーキーを削除する[SetRegularKeyトランザクション][]、SignerListを削除する[SignerListSetトランザクション][]、またはマスターキーを無効にする[AccountSetトランザクション][]である可能性があります。(`rippled` 0.30.0より前のバージョンでは、このトランザクションは`tecMASTER_DISABLED`と呼ばれていました。) | -| `tecNO_AUTH` | 134 | トランザクションはトラストラインの残高を、`lsfRequireAuth`フラグが有効になっているアカウントに追加する必要がありましたが、そのトラストラインが承認されていなかったため、失敗しました。トラストラインが存在しない場合は、代わりに`tecNO_LINE`が発生します。 | -| `tecNO_DST` | 124 | トランザクションの受信側のアカウントが存在しません。これには、PaymentトランザクションタイプやTrustSetトランザクションタイプがあります。(XRPを十分に受信した場合に作成される可能性があります。) | -| `tecNO_DST_INSUF_XRP` | 125 | トランザクションの受信側のアカウントが存在しません。トランザクションは、アカウントの作成に十分なXRPを送金していません。 | -| `tecNO_ENTRY` | 140 | トランザクションは[Check](../../../../concepts/payment-types/checks.md)か[Payment Channel](../../../../concepts/payment-types/payment-channels.md)か[Deposit Preauth事前承認](../../ledger-data/ledger-entry-types/depositpreauth.md)などの[レジャーオブジェクト](../../ledger-data/ledger-entry-types/index.md)の変更を試みましたが、そのオブジェクトは存在しません。以前のトランザクションで削除されましたか、あるいはこのトランザクションに正しくないIDフィールド(`CheckID`か`Channel`か`Unauthorize`など)があります。 | -| `tecNO_ISSUER` | 133 | 通貨額の`issuer`フィールドに指定されたアカウントが存在しません。 | -| `tecNO_LINE` | 135 | [OfferCreateトランザクション][]の`TakerPays`フィールドに、`lsfRequireAuth`を有効にしているイシュアーの資産が指定されており、このオファーを行っているアカウントはその資産に関してトラストラインを確立していません。(通常、オファーを暗黙に行うと必要に応じてトラストラインが作成されますが、この場合は承認なしでは資産を保有できないので問題にはなりません。)トラストラインは存在しているが承認されていない場合は、代わりに`tecNO_AUTH`が発生します。 | -| `tecNO_LINE_INSUF_RESERVE` | 126 | 送信側アカウントに、新しいトラストラインを作成するのに十分なXRPがないため、トランザクションが失敗しました。([準備金](../../../../concepts/accounts/reserves.md)を参照)このエラーは、取引相手がこのアカウントに対する同一通貨のトラストラインを持っていない場合に発生します。(その他のケースについては`tecINSUF_RESERVE_LINE`をご覧ください。) | -| `tecNO_LINE_REDUNDANT` | 127 | トランザクションはトラストラインをデフォルト状態に設定しようと試みましたが、トラストラインが存在していなかったため、失敗しました。 | -| `tecNO_PERMISSION` | 139 | 送信者にはこの操作を実行する権限がありません。たとえば[EscrowFinishトランザクション][]が`FinishAfter`時刻に達する前に保留中の支払をリリースしようとしたか、送信者が所有していないChannelで誰かが[PaymentChannelFund][]を使用しようとしたか、または[Payment][]が「DepositAuth」フラグが有効になっているアカウントに資金の送金を試みました。 | -| `tecNO_REGULAR_KEY` | 131 | [AccountSetトランザクション][]がマスターキーを無効にしようとしましたが、アカウントにはマスターキー以外で[トランザクションを承認する](../../../../concepts/transactions/index.md#トランザクションの承認)方法がありません。[マルチシグ](../../../../concepts/accounts/multi-signing.md)が有効な場合、このコードは廃止予定であり、代わりに`tecNO_ALTERNATIVE_KEY`が使用されます。 | -| `tecNO_SUITABLE_NFTOKEN_PAGE` | 154 | トランザクションは、非代替性トークンの発行または取得を試みましたが、`NFToken`を受け取るアカウントには、それを保持できるディレクトリページがありません。この状況はレアケースです。 {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} | -| `tecNO_TARGET` | 138 | トランザクションが参照するEscrowレジャーオブジェクトまたはPayChannelレジャーオブジェクトが存在していません。これらのオブジェクトは、これまでに存在したことがないか、すでに削除されています。(たとえば、別の[EscrowFinishトランザクション][]で保留中の支払がすでに実行されている場合などです。)あるいは、支払先アカウントで`asfDisallowXRP`が設定されているため、このアカウントは[PaymentChannelCreate][]トランザクションまたは[EscrowCreate][]トランザクションの宛先に指定できません。 | -| `tecOVERSIZE` | 145 | サーバがこのトランザクションの適用時に大量のメタデータを作成したため、このトランザクションを処理できませんでした。 | -| `tecOWNERS` | 132 | トランザクションでは、トランザクションを送信するアカウントの「所有者カウント」はゼロ以外である必要があります。このためトランザクションを正常に完了できません。たとえば、トラストラインや使用可能なオファーがあるアカウントでは、[`lsfRequireAuth`](../types/accountset.md#accountsetのフラグ)フラグを有効にできません。 | -| `tecPATH_DRY` | 128 | トランザクションが失敗しました。指定されたパスに、送信の実行に十分な流動性がありませんでした。つまり、支払元アカウントと支払先アカウントはトラストラインにより関連付けされていません。 | -| `tecPATH_PARTIAL` | 101 | トランザクションが失敗しました。指定されたパスに、全額を送金するのに十分な流動性がありませんでした。 | -| `tecTOO_SOON` | 152 | 削除するアカウントの`Sequence`番号が大きすぎるため、[AccountDeleteトランザクション][]が失敗しました。現行のレジャーインデックスは、アカウントのシーケンス番号より256以上大きくなければなりません。 | -| `tecUNFUNDED` | 129 | トランザクションが失敗しました。アカウントがトランザクションの支払額に十分なXRPを保有しておらず、 _かつ_ このトランザクションを実行するのに追加で必要となる準備金が不足しています。([準備金](../../../../concepts/accounts/reserves.md)をご覧ください。) | -| `tecUNFUNDED_ADD` | 102 | **廃止。** | -| `tecUNFUNDED_PAYMENT` | 104 | 送信側アカウントが準備金を考慮せずに、保有するXRPを超える額の送信を試みたため、トランザクションが失敗しました。([準備金](../../../../concepts/accounts/reserves.md)をご覧ください。) | -| `tecUNFUNDED_OFFER` | 103 | [OfferCreateトランザクション][]が失敗しました。オファーの作成元アカウントに`TakerGets`通貨がありません。 | +| コード | 値 | 説明 | +| :--------------------------------- | :-- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `tecAMM_ACCOUNT` | 168 | 自動マーケットメーカー(AMM)アカウントではこの操作が許可されていないため、トランザクションが失敗しました。 {% amendment-disclaimer name="AMM" /%} | +| `tecAMM_UNFUNDED` | 162 | 送信者が指定された資産を十分に保有していないため[AMMCreateトランザクション][]が失敗しました。 {% amendment-disclaimer name="AMM" /%} | +| `tecAMM_BALANCE` | 163 | AMMまたはユーザーが指定された資産の十分な量を保有していないため[AMMDeposit][]または[AMMWithdraw][]トランザクションが失敗しました。(例えば、AMMが保有するよりも多くを引き出そうとしている場合) {% amendment-disclaimer name="AMM" /%} | +| `tecAMM_EMPTY` | 166 | AMMのプールに資産がないためAMM関連のトランザクションが失敗しました。この状態では、AMMを削除するか、新しい入金でAMMに資金を供給することしかできません。 {% amendment-disclaimer name="AMM" /%} | +| `tecAMM_FAILED` | 164 | AMM関連のトランザクションは失敗しました。[AMMDeposit][]または[AMMWithdraw][]の場合、これは送信者が指定された資産を十分に持っていないか、利用可能な金額では不可能な実効価格がトランザクションで要求されたことが原因である可能性があります。[AMMBid][]の場合、これは当該アカウントが落札に必要な金額を十分に持っていないか、指定された最高入札価格よりも高い金額が必要であることが原因である可能性があります。[AMMVote] の場合、このAMMのLPトークンをより多く保有している他のアカウントからの投票がすでに多すぎるのが原因である可能性があります。 {% amendment-disclaimer name="AMM" /%} | +| `tecAMM_INVALID_TOKENS` | 165 | LPトークンの不足や丸め処理の問題により、AMM関連のトランザクションが失敗しました。例えば、返却されるLPトークンの額がゼロに切り捨てられる場合、「非常に少量の資産を預け入れる」という行為が失敗する可能性があります。 {% amendment-disclaimer name="AMM" /%} | +| `tecAMM_NOT_EMPTY` | 167 | トランザクションは、資産プールが空のAMMで動作するように設計されていましたが、指定されたAMMは資産を保有しています。 {% amendment-disclaimer name="AMM" /%} | +| `tecCANT_ACCEPT_OWN_NFTOKEN_OFFER` | 157 | トランザクションは、同じアカウントが購入または売却するために作成された[非代替可能トークン(NFT)](../../../../concepts/tokens/nfts/index.md)のオファーを受け入れようとしました。 {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} | +| `tecCLAIM` | 100 | 不明なエラー。トランザクションコストは消却されました。 | +| `tecCRYPTOCONDITION_ERROR` | 146 | この[EscrowCreate][]トランザクションまたは[EscrowFinish][]トランザクションに指定されるCrypto-conditionの形式が誤っているか、または一致しませんでした。 | +| `tecDIR_FULL` | 121 | トランザクションがアカウントの所有者ディレクトリにオブジェクト(トラストライン、Check、Escrow、Payment Channelなど)を追加しようと試みましたが、このアカウントはレジャーにこれ以上のオブジェクトを所有できません。 | +| `tecDUPLICATE` | 149 | トランザクションが、すでに存在するオブジェクト([DepositPreauth][]の承認など)を作成しようとしました。 | +| `tecDST_TAG_NEEDED` | 143 | [Paymentトランザクション][]の宛先タグが省略されましたが、支払先アカウントでは`lsfRequireDestTag`フラグが有効になっています。 | +| `tecEMPTY_DID` | 187 | トランザクションが[DIDエントリ](../../ledger-data/ledger-entry-types/did.md)を作成しようとしましたが、内容が空でした。DIDは空にできません。 {% amendment-disclaimer name="DID" /%} | +| `tecEXPIRED` | 148 | トランザクションがオブジェクト(OfferやCheckなど)を作成しようとしましたが、そのオブジェクトで指定された有効期限がすでに経過しています。 | +| `tecFAILED_PROCESSING` | 105 | トランザクションの処理中に不明なエラーが発生しました。 | +| `tecFROZEN` | 137 | [OfferCreateトランザクション][]が失敗しました。関係する1つまたは両方の資産が[Global Freeze](../../../../concepts/tokens/fungible-tokens/freezes.md)の対象となっています。 | +| `tecHAS_OBLIGATIONS ` | 151 | 削除するアカウントが削除できないオブジェクトを所有しているため、[AccountDeleteトランザクション][]が失敗しました。詳細は、[アカウントの削除](../../../../concepts/accounts/deleting-accounts.md)をご覧ください。 | +| `tecINSUF_RESERVE_LINE` | 122 | 送信側アカウントに、新しいトラストラインを作成するのに十分なXRPがないため、トランザクションが失敗しました。([準備金](../../../../concepts/accounts/reserves.md)をご覧ください)このエラーは、取引相手から同一通貨の送信側アカウントへのトラストラインがデフォルト以外の状態である場合に発生します。(その他のケースについては`tecNO_LINE_INSUF_RESERVE`をご覧ください。) | +| `tecINSUF_RESERVE_OFFER` | 123 | 送信側アカウントに、新しいオファーを作成するのに十分なXRPがないため、トランザクションが失敗しました。([準備金](../../../../concepts/accounts/reserves.md)をご覧ください。) | +| `tecINSUFF_FEE` | 136 | 指定された[トランザクションコスト](../../../../concepts/transactions/transaction-cost.md)を支払うのに十分なXRPが送金元アカウントにないため、トランザクションが失敗しました。(この場合、送金元のXRPが指定されたトランザクションコストよりも低い場合でも、トランザクション処理によってすべて消却されます。)この結果は、このトランザクションがコンセンサスセットに含まれるのに十分なネットワークに配布された*後に*アカウントの残高が減少した場合にのみ発生します。そうでない場合、トランザクションは配布される前に[`terINSUF_FEE_B`](ter-codes.md)で失敗します。 | +| `tecINSUFFICIENT_FUNDS` | 158 | 関連するアカウントのうちの1つが必要な資産を十分に保有していません。 {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} | +| `tecINSUFFICIENT_PAYMENT` | 161 | 指定された金額は、トランザクションに関わるすべての料金を支払うには十分ではありません。例えば、非代替性トークンを取引する場合、購入金額はブローカー手数料と販売金額の両方を支払うには不十分である可能性があります。 {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} | +| `tecINSUFFICIENT_RESERVE` | 141 | トランザクションによって[必要準備金](../../../../concepts/accounts/reserves.md)が増加し、送信側アカウントの残高を超える可能性があります。[SignerListSet][]、[PaymentChannelCreate][]、[PaymentChannelFund][]、および[EscrowCreate][]からこのエラーコードが返されることがあります。詳細は、[SignerListと準備金](../../ledger-data/ledger-entry-types/signerlist.md#signerlistと準備金)をご覧ください。 | +| `tecINTERNAL` | 144 | 不明な内部エラーが発生し、トランザクションコストは適用されました。通常はこのエラーは返されません。このエラーを再現できる場合は、[問題を報告](https://github.com/XRPLF/rippled/issues)してください。 | +| `tecINVARIANT_FAILED` | 147 | このトランザクションを実行しようとしたところ、不変性チェックが失敗しました。このエラーを再現できる場合は、[問題を報告](https://github.com/XRPLF/rippled/issues)してください。{% amendment-disclaimer name="EnforceInvariants" /%} | +| `tecKILLED` | 150 | [OfferCreateトランザクション][]がtfFillOrKillフラグを指定しましたが、トランザクションを確定できなかったため、このトランザクションは取り消されました。{% amendment-disclaimer name="fix1578" /%} | +| `tecMAX_SEQUENCE_REACHED` | 153 | シーケンス番号フィールドはすでに最大値に達しています。これには`MintedNFTokens`フィールドも含まれます。 {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} | +| `tecNEED_MASTER_KEY` | 142 | このトランザクションはマスターキーを必要とする変更([マスターキーの無効化または残高フリーズ能力の放棄](../types/accountset.md#accountsetのフラグ)など)を試みました。 | +| `tecNFTOKEN_BUY_SELL_MISMATCH` | 155 | [NFTokenAcceptOfferトランザクション][]は、非代替性トークンの購入と売却に関する対応しないオファーをマッチングさせようとしました。 {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} | +| `tecNFTOKEN_OFFER_TYPE_MISMATCH` | 156 | トランザクションで指定されたオファーのうち、1つまたは複数について、オファーの種類が適切ではありませんでした。(例えば、`NFTokenSellOffer`フィールドに購入オファーが指定されていました。) {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} | +| `tecNO_ALTERNATIVE_KEY` | 130 | トランザクションが唯一の[トランザクション承認](../../../../concepts/transactions/index.md#トランザクションの承認)メソッドを削除しようとしました。これは、レギュラーキーを削除する[SetRegularKeyトランザクション][]、SignerListを削除する[SignerListSetトランザクション][]、またはマスターキーを無効にする[AccountSetトランザクション][]である可能性があります。(`rippled` 0.30.0より前のバージョンでは、このトランザクションは`tecMASTER_DISABLED`と呼ばれていました。) | +| `tecNO_AUTH` | 134 | トランザクションはトラストラインの残高を、`lsfRequireAuth`フラグが有効になっているアカウントに追加する必要がありましたが、そのトラストラインが承認されていなかったため、失敗しました。トラストラインが存在しない場合は、代わりに`tecNO_LINE`が発生します。 | +| `tecNO_DST` | 124 | トランザクションの受信側のアカウントが存在しません。これには、PaymentトランザクションタイプやTrustSetトランザクションタイプがあります。(XRPを十分に受信した場合に作成される可能性があります。) | +| `tecNO_DST_INSUF_XRP` | 125 | トランザクションの受信側のアカウントが存在しません。トランザクションは、アカウントの作成に十分なXRPを送金していません。 | +| `tecNO_ENTRY` | 140 | トランザクションは[Check](../../../../concepts/payment-types/checks.md)か[Payment Channel](../../../../concepts/payment-types/payment-channels.md)か[Deposit Preauth事前承認](../../ledger-data/ledger-entry-types/depositpreauth.md)などの[レジャーオブジェクト](../../ledger-data/ledger-entry-types/index.md)の変更を試みましたが、そのオブジェクトは存在しません。以前のトランザクションで削除されましたか、あるいはこのトランザクションに正しくないIDフィールド(`CheckID`か`Channel`か`Unauthorize`など)があります。 | +| `tecNO_ISSUER` | 133 | 通貨額の`issuer`フィールドに指定されたアカウントが存在しません。 | +| `tecNO_LINE` | 135 | [OfferCreateトランザクション][]の`TakerPays`フィールドに、`lsfRequireAuth`を有効にしているイシュアーの資産が指定されており、このオファーを行っているアカウントはその資産に関してトラストラインを確立していません。(通常、オファーを暗黙に行うと必要に応じてトラストラインが作成されますが、この場合は承認なしでは資産を保有できないので問題にはなりません。)トラストラインは存在しているが承認されていない場合は、代わりに`tecNO_AUTH`が発生します。 | +| `tecNO_LINE_INSUF_RESERVE` | 126 | 送信側アカウントに、新しいトラストラインを作成するのに十分なXRPがないため、トランザクションが失敗しました。([準備金](../../../../concepts/accounts/reserves.md)を参照)このエラーは、取引相手がこのアカウントに対する同一通貨のトラストラインを持っていない場合に発生します。(その他のケースについては`tecINSUF_RESERVE_LINE`をご覧ください。) | +| `tecNO_LINE_REDUNDANT` | 127 | トランザクションはトラストラインをデフォルト状態に設定しようと試みましたが、トラストラインが存在していなかったため、失敗しました。 | +| `tecNO_PERMISSION` | 139 | 送信者にはこの操作を実行する権限がありません。たとえば[EscrowFinishトランザクション][]が`FinishAfter`時刻に達する前に保留中の支払をリリースしようとしたか、送信者が所有していないChannelで誰かが[PaymentChannelFund][]を使用しようとしたか、または[Payment][]が「DepositAuth」フラグが有効になっているアカウントに資金の送金を試みました。 | +| `tecNO_REGULAR_KEY` | 131 | [AccountSetトランザクション][]がマスターキーを無効にしようとしましたが、アカウントにはマスターキー以外で[トランザクションを承認する](../../../../concepts/transactions/index.md#トランザクションの承認)方法がありません。[マルチシグ](../../../../concepts/accounts/multi-signing.md)が有効な場合、このコードは廃止予定であり、代わりに`tecNO_ALTERNATIVE_KEY`が使用されます。 | +| `tecNO_SUITABLE_NFTOKEN_PAGE` | 154 | トランザクションは、非代替性トークンの発行または取得を試みましたが、`NFToken`を受け取るアカウントには、それを保持できるディレクトリページがありません。この状況はレアケースです。 {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} | +| `tecNO_TARGET` | 138 | トランザクションが参照するEscrowレジャーオブジェクトまたはPayChannelレジャーオブジェクトが存在していません。これらのオブジェクトは、これまでに存在したことがないか、すでに削除されています。(たとえば、別の[EscrowFinishトランザクション][]で保留中の支払がすでに実行されている場合などです。)あるいは、支払先アカウントで`asfDisallowXRP`が設定されているため、このアカウントは[PaymentChannelCreate][]トランザクションまたは[EscrowCreate][]トランザクションの宛先に指定できません。 | +| `tecOVERSIZE` | 145 | サーバがこのトランザクションの適用時に大量のメタデータを作成したため、このトランザクションを処理できませんでした。 | +| `tecOWNERS` | 132 | トランザクションでは、トランザクションを送信するアカウントの「所有者カウント」はゼロ以外である必要があります。このためトランザクションを正常に完了できません。たとえば、トラストラインや使用可能なオファーがあるアカウントでは、[`lsfRequireAuth`](../types/accountset.md#accountsetのフラグ)フラグを有効にできません。 | +| `tecPATH_DRY` | 128 | トランザクションが失敗しました。指定されたパスに、送信の実行に十分な流動性がありませんでした。つまり、支払元アカウントと支払先アカウントはトラストラインにより関連付けされていません。 | +| `tecPATH_PARTIAL` | 101 | トランザクションが失敗しました。指定されたパスに、全額を送金するのに十分な流動性がありませんでした。 | +| `tecTOO_SOON` | 152 | 削除するアカウントの`Sequence`番号が大きすぎるため、[AccountDeleteトランザクション][]が失敗しました。現行のレジャーインデックスは、アカウントのシーケンス番号より256以上大きくなければなりません。 | +| `tecUNFUNDED` | 129 | トランザクションが失敗しました。アカウントがトランザクションの支払額に十分なXRPを保有しておらず、 _かつ_ このトランザクションを実行するのに追加で必要となる準備金が不足しています。([準備金](../../../../concepts/accounts/reserves.md)をご覧ください。) | +| `tecUNFUNDED_ADD` | 102 | **廃止。** | +| `tecUNFUNDED_PAYMENT` | 104 | 送信側アカウントが準備金を考慮せずに、保有するXRPを超える額の送信を試みたため、トランザクションが失敗しました。([準備金](../../../../concepts/accounts/reserves.md)をご覧ください。) | +| `tecUNFUNDED_OFFER` | 103 | [OfferCreateトランザクション][]が失敗しました。オファーの作成元アカウントに`TakerGets`通貨がありません。 | {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/transactions/transaction-results/tef-codes.md b/@l10n/ja/docs/references/protocol/transactions/transaction-results/tef-codes.md index ccff46f4ae..da6c16fee4 100644 --- a/@l10n/ja/docs/references/protocol/transactions/transaction-results/tef-codes.md +++ b/@l10n/ja/docs/references/protocol/transactions/transaction-results/tef-codes.md @@ -2,36 +2,37 @@ html: tef-codes.html parent: transaction-results.html seo: - description: tefコードは、トランザクションが失敗してレジャーに記録されなかったが、一部の理論上のレジャーでは正常に完了できた可能性があることを示します。 + description: tefコードは、トランザクションが失敗してレジャーに記録されなかったが、一部の理論上のレジャーでは正常に完了できた可能性があることを示します。 labels: - トランザクション送信 --- + # tefコード これらのコードは、トランザクションが失敗してレジャーに記録されなかったが、一部の理論上のレジャーでは正常に完了できた可能性があることを示します。通常これは、このトランザクションが今後すべてのレジャーで正常に完了できないことを意味します。-199から-100までの数値が含まれています。特定のエラーを示すコードは変更される可能性があるので、コードを使用しないでください。 {% admonition type="warning" name="注意" %}`tef`コードが付いているトランザクションはレジャーには適用されません。またこのようなトランザクションが原因でXRP Ledgerの状態が変わることはありません。ただし、暫定的に失敗したトランザクションは、再適用後に成功するか、または別のコードで失敗する可能性があります。詳細は、[結果のファイナリティー](../../../../concepts/transactions/finality-of-results/index.md)と[信頼できるトランザクションの送信](../../../../concepts/transactions/reliable-transaction-submission.md)をご覧ください。{% /admonition %} -| コード | 説明 | -|:-----------------------|:----------------------------------------------------| -| `tefALREADY` | まったく同一のトランザクションがすでに適用されています。 | -| `tefBAD_ADD_AUTH` | **廃止予定。** | -| `tefBAD_AUTH` | このアカウントの署名に使用したキーには、このアカウントを変更する権限がありません。(このアカウントが[レギュラーキー](../../../../concepts/accounts/cryptographic-keys.md)として同じキーセットを持っている場合は変更が承認される可能性があります。) | -| `tefBAD_AUTH_MASTER` | このトランザクションを承認するために指定された1つの署名がマスターキーと一致していませんが、このアドレスに関連付けられているレギュラーキーもありません。 | -| `tefBAD_LEDGER` | トランザクションの処理中に、レジャーが予期しない状態にあることが検出されました。このエラーを再現できる場合は、修正のため[問題を報告](https://github.com/XRPLF/rippled/issues)してください。 | -| `tefBAD_QUORUM` | トランザクションは[マルチシグ](../../../../concepts/accounts/multi-signing.md)トランザクションでしたが、そこに含まれるすべての署名の重みの合計が定数を満たしていません。 | -| `tefBAD_SIGNATURE` | トランザクションは[マルチシグ](../../../../concepts/accounts/multi-signing.md)トランザクションでしたが、送信側アカウントに関連付けられているSignerListにないアドレスの署名が含まれていました。 | -| `tefCREATED` | **廃止予定。** | -| `tefEXCEPTION` | トランザクションの処理中に、サーバが予期しない状態になりました。この状態は、予期しない入力(トランザクションのバイナリーデータの形式が大幅に誤っている場合など)が原因となった可能性があります。このエラーを再現できる場合は、修正のため[問題を報告](https://github.com/XRPLF/rippled/issues)してください。 | -| `tefFAILURE` | トランザクション適用中の不明な障害。 | -| `tefINTERNAL` | トランザクションの適用を試みた際に、サーバが予期しない状態になりました。このエラーを再現できる場合は、修正のため[問題を報告](https://github.com/XRPLF/rippled/issues)してください。 | -| `tefINVARIANT_FAILED` | [トランザクションコスト](../../../../concepts/transactions/transaction-cost.md)を請求しようとしたところ、不変性チェックが失敗しました。このエラーを再現できる場合は、[問題を報告](https://github.com/XRPLF/rippled/issues)してください。 {% amendment-disclaimer name="EnforceInvariants" /%} | -| `tefMASTER_DISABLED` | トランザクションはアカウントのマスターキーで署名されていましたが、アカウントに`lsfDisableMaster`フィールドが設定されていました。 | -| `tefMAX_LEDGER` | トランザクションには[`LastLedgerSequence`](../../../../concepts/transactions/reliable-transaction-submission.md#lastledgersequence)パラメーターが指定されていましたが、現在のレジャーのシーケンス番号はすでに指定値を上回っています。 | -| `tefNO_AUTH_REQUIRED` | [TrustSetトランザクション][]で相手トラストラインを承認済みとしてマークしようとしましたが、自身のアカウントにおいて`lsfRequireAuth`フラグが有効になっていないため、承認できません。 | -| `tefNOT_MULTI_SIGNING` | トランザクションは[マルチシグ](../../../../concepts/accounts/multi-signing.md)トランザクションでしたが、送信側アカウントでSignerListが定義されていません。 | -| `tefPAST_SEQ` | トランザクションのシーケンス番号は、トランザクションの送信元アカウントの現在のシーケンス番号よりも小さい番号です。 | -| `tefTOO_BIG` | レジャー内にある、トランザクションの影響を受けるオブジェクトが多過ぎます。例えば、これは[AccountDeleteトランザクション][]でしたが、削除されるアカウントのレジャーには1,000個を超えるオブジェクトがあります。 | -| `tefWRONG_PRIOR` | トランザクションに`AccountTxnID`フィールド(または廃止予定の`PreviousTxnID`フィールド)が含まれていますが、このフィールドに指定されているトランザクションはアカウントの前のトランザクションに一致しません。 | +| コード | 説明 | +| :--------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `tefALREADY` | まったく同一のトランザクションがすでに適用されています。 | +| `tefBAD_ADD_AUTH` | **廃止予定。** | +| `tefBAD_AUTH` | このアカウントの署名に使用したキーには、このアカウントを変更する権限がありません。(このアカウントが[レギュラーキー](../../../../concepts/accounts/cryptographic-keys.md)として同じキーセットを持っている場合は変更が承認される可能性があります。) | +| `tefBAD_AUTH_MASTER` | このトランザクションを承認するために指定された1つの署名がマスターキーと一致していませんが、このアドレスに関連付けられているレギュラーキーもありません。 | +| `tefBAD_LEDGER` | トランザクションの処理中に、レジャーが予期しない状態にあることが検出されました。このエラーを再現できる場合は、修正のため[問題を報告](https://github.com/XRPLF/rippled/issues)してください。 | +| `tefBAD_QUORUM` | トランザクションは[マルチシグ](../../../../concepts/accounts/multi-signing.md)トランザクションでしたが、そこに含まれるすべての署名の重みの合計が定数を満たしていません。 | +| `tefBAD_SIGNATURE` | トランザクションは[マルチシグ](../../../../concepts/accounts/multi-signing.md)トランザクションでしたが、送信側アカウントに関連付けられているSignerListにないアドレスの署名が含まれていました。 | +| `tefCREATED` | **廃止予定。** | +| `tefEXCEPTION` | トランザクションの処理中に、サーバが予期しない状態になりました。この状態は、予期しない入力(トランザクションのバイナリーデータの形式が大幅に誤っている場合など)が原因となった可能性があります。このエラーを再現できる場合は、修正のため[問題を報告](https://github.com/XRPLF/rippled/issues)してください。 | +| `tefFAILURE` | トランザクション適用中の不明な障害。 | +| `tefINTERNAL` | トランザクションの適用を試みた際に、サーバが予期しない状態になりました。このエラーを再現できる場合は、修正のため[問題を報告](https://github.com/XRPLF/rippled/issues)してください。 | +| `tefINVARIANT_FAILED` | [トランザクションコスト](../../../../concepts/transactions/transaction-cost.md)を請求しようとしたところ、不変性チェックが失敗しました。このエラーを再現できる場合は、[問題を報告](https://github.com/XRPLF/rippled/issues)してください。 {% amendment-disclaimer name="EnforceInvariants" /%} | +| `tefMASTER_DISABLED` | トランザクションはアカウントのマスターキーで署名されていましたが、アカウントに`lsfDisableMaster`フィールドが設定されていました。 | +| `tefMAX_LEDGER` | トランザクションには[`LastLedgerSequence`](../../../../concepts/transactions/reliable-transaction-submission.md#lastledgersequence)パラメーターが指定されていましたが、現在のレジャーのシーケンス番号はすでに指定値を上回っています。 | +| `tefNO_AUTH_REQUIRED` | [TrustSetトランザクション][]で相手トラストラインを承認済みとしてマークしようとしましたが、自身のアカウントにおいて`lsfRequireAuth`フラグが有効になっていないため、承認できません。 | +| `tefNOT_MULTI_SIGNING` | トランザクションは[マルチシグ](../../../../concepts/accounts/multi-signing.md)トランザクションでしたが、送信側アカウントでSignerListが定義されていません。 | +| `tefPAST_SEQ` | トランザクションのシーケンス番号は、トランザクションの送信元アカウントの現在のシーケンス番号よりも小さい番号です。 | +| `tefTOO_BIG` | レジャー内にある、トランザクションの影響を受けるオブジェクトが多過ぎます。例えば、これは[AccountDeleteトランザクション][]でしたが、削除されるアカウントのレジャーには1,000個を超えるオブジェクトがあります。 | +| `tefWRONG_PRIOR` | トランザクションに`AccountTxnID`フィールド(または廃止予定の`PreviousTxnID`フィールド)が含まれていますが、このフィールドに指定されているトランザクションはアカウントの前のトランザクションに一致しません。 | {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/transactions/transaction-results/tel-codes.md b/@l10n/ja/docs/references/protocol/transactions/transaction-results/tel-codes.md index f565a1f4b7..d109973e0d 100644 --- a/@l10n/ja/docs/references/protocol/transactions/transaction-results/tel-codes.md +++ b/@l10n/ja/docs/references/protocol/transactions/transaction-results/tel-codes.md @@ -2,33 +2,34 @@ html: tel-codes.html parent: transaction-results.html seo: - description: telコードは、トランザクションを処理するローカルサーバでのエラーを示します。 + description: telコードは、トランザクションを処理するローカルサーバでのエラーを示します。 labels: - トランザクション送信 --- + # telコード これらのコードは、トランザクションを処理するローカルサーバでのエラーを示します。構成や負荷レベルが異なる別のサーバでは同じトランザクションが正常に処理される場合があります。-399から-300までの数値が含まれています。実際のエラーに対して数値は変更される可能性がありますので、これに頼らないでください。 {% admonition type="warning" name="注意" %}`tel`コードが付いているトランザクションはレジャーには適用されません。またこのようなトランザクションが原因でXRP Ledgerの状態が変わることはありません。ただし、暫定的に失敗したトランザクションは、再適用後に成功するか、または別のコードで失敗する可能性があります。詳細は、[結果のファイナリティー](../../../../concepts/transactions/finality-of-results/index.md)と[信頼性の高いトランザクション送信](../../../../concepts/transactions/reliable-transaction-submission.md)をご覧ください。{% /admonition %} -| コード | 説明 | -|:----------------------|:-----------------------------------------------------| -| `telBAD_DOMAIN` | トランザクションで指定されたドメイン値([AccountSetトランザクション][]の`Domain`フィールドなど)は、レジャーに保管するには長すぎます。 | -| `telBAD_PATH_COUNT` | トランザクションに含まれているパスが多過ぎるため、ローカルサーバが処理できません。 | -| `telBAD_PUBLIC_KEY` | トランザクションで指定された公開鍵値([AccountSetトランザクション][]の`MessageKey`フィールドなど)の長すぎます。 | -| `telCAN_NOT_QUEUE` | このトランザクションは[オープンレジャーコスト](../../../../concepts/transactions/transaction-cost.md)を満たしていませんが、[キュー制限](../../../../concepts/transactions/transaction-queue.md#キューの制約事項)を満たしていなかったため、サーバはこのトランザクションをキューに入れませんでした。たとえば、送信者のキューにすでに10個のトランザクションが入っている場合には、トランザクションからこのコードが返されます。後で再試行するか、`Fee`フィールドに高いコストを指定して代わりのトランザクションに署名して送信することができます。 | -| `telCAN_NOT_QUEUE_BALANCE` | トランザクションが[オープンレジャーコスト](../../../../concepts/transactions/transaction-cost.md)を満たしておらず、またすでにキューに入っているトランザクションの予測XRPコストの合計が、アカウントの予想残高よりも大きいために、このトランザクションはトランザクションキューに追加されませんでした。後で再試行するか、別のサーバへの送信を試みることができます。 | -| `telCAN_NOT_QUEUE_BLOCKS` | トランザクションは[オープンレジャーコスト](../../../../concepts/transactions/transaction-cost.md)を満たしておらず、トランザクションキューにも追加されませんでした。このトランザクションはキュー内の既存のトランザクションを置き換えることができませんでした。これは、認証メソッドを変更することで、すでにキューに入っている同じ送信者からのトランザクションがブロックされる可能性があるためです。(これには[SetRegularKey][]トランザクションと[SignerListSet][]トランザクションのすべて、およびRequireAuth/OptionalAuth、DisableMaster、AccountTxnIDフラグを変更する[AccountSet][]トランザクションなどがあります。)後で再試行するか、別のサーバへの送信を試みることができます。 | -| `telCAN_NOT_QUEUE_BLOCKED` | トランザクションが[オープンレジャーコスト](../../../../concepts/transactions/transaction-cost.md)を満たしておらず、トランザクションキューにも追加されませんでした。これは、このトランザクションの前にキューに入れられた同じ送信者のトランザクションによってブロックされるためです。(これには[SetRegularKey][]トランザクションと[SignerListSet][]トランザクションのすべて、およびRequireAuth/OptionalAuth、DisableMaster、AccountTxnIDフラグを変更する[AccountSet][]トランザクションなどがあります。)後で再試行するか、別のサーバへの送信を試みることができます。 | -| `telCAN_NOT_QUEUE_FEE` | トランザクションは[オープンレジャーコスト](../../../../concepts/transactions/transaction-cost.md)を満たしておらず、トランザクションキューにも追加されませんでした。このコードは、送信者とシーケンス番号が同じトランザクションがすでにキューに入れられており、新しいトランザクションが、既存のトランザクションを置き換えるのに十分なトランザクションコストを支払わない場合に発生します。キュー内のトランザクションを置き換えるには、新しいトランザクションの`Fee`値に25%以上の上乗せ([手数料レベル](../../../../concepts/transactions/transaction-cost.md#手数料レベル)で評価)が必要となります。`Fee`の値を大きくして再試行するか、大きな数字の`Sequence`番号でこのトランザクションを送信して既存のトランザクションを置き換えないようにするか、別のサーバへ送信を試みることができます。 | -| `telCAN_NOT_QUEUE_FULL` | このトランザクションは[オープンレジャーコスト](../../../../concepts/transactions/transaction-cost.md)を満たしておらず、またこのサーバのトランザクションキューが一杯であるため、サーバはこのトランザクションをキューに入れませんでした。`Fee`の値を大きくして再試行するか、後で試してみるか、別のサーバへの送信を試みることができます。新しいトランザクションのトランザクションコスト([手数料レベル](../../../../concepts/transactions/transaction-cost.md#手数料レベル)で評価)は、キュー内でトランザクションコストが最も低いトランザクションよりも高くなければなりません。 | -| `telFAILED_PROCESSING` | トランザクションの処理中に不明なエラーが発生しました。 | -| `telINSUF_FEE_P` | トランザクションの`Fee`が、サーバの負荷レベルに基づいて定められるサーバの現在の[トランザクションコスト](../../../../concepts/transactions/transaction-cost.md)要件を満たすのに十分な値ではありあません。 | -| `telLOCAL_ERROR` | 不明なローカルエラー。 | -| `telNETWORK_ID_MAKES_TX_NON_CANONICAL` | トランザクションは[`NetworkID`フィールド](../common-fields.md#networkidフィールド)を指定していますが、現在のネットワークルールでは`NetworkID`フィールドは指定しないことになっています。(メインネットやその他のチェーンIDが1024以下のネットワークではこのフィールドは使用されません)。もしトランザクションが`NetworkID`を使用しないネットワーク向けであった場合、そのフィールドを削除して再試行してください。トランザクションが別のネットワーク向けだった場合は、正しいネットワークに接続されているサーバに送信してください。 {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.11.0" %}新規: rippled 1.11.0{% /badge %} | -| `telNO_DST`_`PARTIAL` | トランザクションは、新しいアカウントに資金を供給するためのXRPによる支払いですが、[tfPartialPaymentフラグ](../../../../concepts/payment-types/partial-payments.md)が有効になっていました。これは許可されていません。 | -| `telREQUIRES_NETWORK_ID` | トランザクションは[`NetworkID`フィールド](../common-fields.md#networkidフィールド)を指定していません。トランザクションが`NetworkID`を必要とするネットワーク向けであった場合、フィールドを追加して再試行してください。トランザクションが別のネットワーク向けであった場合、正しいネットワークに接続されているサーバに送信してください。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.11.0" %}新規: rippled 1.11.0{% /badge %} | -| `telWRONG_NETWORK` | トランザクションが現在のネットワークに対して間違った [`NetworkID` 値](../common-fields.md#networkidフィールド) を指定しています。目的のネットワークに対して正しい `NetworkID`値を指定するか、正しいネットワークに接続されているサーバにトランザクションを送信してください。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.11.0" %}新規: rippled 1.11.0{% /badge %} | +| コード | 説明 | +| :------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `telBAD_DOMAIN` | トランザクションで指定されたドメイン値([AccountSetトランザクション][]の`Domain`フィールドなど)は、レジャーに保管するには長すぎます。 | +| `telBAD_PATH_COUNT` | トランザクションに含まれているパスが多過ぎるため、ローカルサーバが処理できません。 | +| `telBAD_PUBLIC_KEY` | トランザクションで指定された公開鍵値([AccountSetトランザクション][]の`MessageKey`フィールドなど)の長すぎます。 | +| `telCAN_NOT_QUEUE` | このトランザクションは[オープンレジャーコスト](../../../../concepts/transactions/transaction-cost.md)を満たしていませんが、[キュー制限](../../../../concepts/transactions/transaction-queue.md#キューの制約事項)を満たしていなかったため、サーバはこのトランザクションをキューに入れませんでした。たとえば、送信者のキューにすでに10個のトランザクションが入っている場合には、トランザクションからこのコードが返されます。後で再試行するか、`Fee`フィールドに高いコストを指定して代わりのトランザクションに署名して送信することができます。 | +| `telCAN_NOT_QUEUE_BALANCE` | トランザクションが[オープンレジャーコスト](../../../../concepts/transactions/transaction-cost.md)を満たしておらず、またすでにキューに入っているトランザクションの予測XRPコストの合計が、アカウントの予想残高よりも大きいために、このトランザクションはトランザクションキューに追加されませんでした。後で再試行するか、別のサーバへの送信を試みることができます。 | +| `telCAN_NOT_QUEUE_BLOCKS` | トランザクションは[オープンレジャーコスト](../../../../concepts/transactions/transaction-cost.md)を満たしておらず、トランザクションキューにも追加されませんでした。このトランザクションはキュー内の既存のトランザクションを置き換えることができませんでした。これは、認証メソッドを変更することで、すでにキューに入っている同じ送信者からのトランザクションがブロックされる可能性があるためです。(これには[SetRegularKey][]トランザクションと[SignerListSet][]トランザクションのすべて、およびRequireAuth/OptionalAuth、DisableMaster、AccountTxnIDフラグを変更する[AccountSet][]トランザクションなどがあります。)後で再試行するか、別のサーバへの送信を試みることができます。 | +| `telCAN_NOT_QUEUE_BLOCKED` | トランザクションが[オープンレジャーコスト](../../../../concepts/transactions/transaction-cost.md)を満たしておらず、トランザクションキューにも追加されませんでした。これは、このトランザクションの前にキューに入れられた同じ送信者のトランザクションによってブロックされるためです。(これには[SetRegularKey][]トランザクションと[SignerListSet][]トランザクションのすべて、およびRequireAuth/OptionalAuth、DisableMaster、AccountTxnIDフラグを変更する[AccountSet][]トランザクションなどがあります。)後で再試行するか、別のサーバへの送信を試みることができます。 | +| `telCAN_NOT_QUEUE_FEE` | トランザクションは[オープンレジャーコスト](../../../../concepts/transactions/transaction-cost.md)を満たしておらず、トランザクションキューにも追加されませんでした。このコードは、送信者とシーケンス番号が同じトランザクションがすでにキューに入れられており、新しいトランザクションが、既存のトランザクションを置き換えるのに十分なトランザクションコストを支払わない場合に発生します。キュー内のトランザクションを置き換えるには、新しいトランザクションの`Fee`値に25%以上の上乗せ([手数料レベル](../../../../concepts/transactions/transaction-cost.md#手数料レベル)で評価)が必要となります。`Fee`の値を大きくして再試行するか、大きな数字の`Sequence`番号でこのトランザクションを送信して既存のトランザクションを置き換えないようにするか、別のサーバへ送信を試みることができます。 | +| `telCAN_NOT_QUEUE_FULL` | このトランザクションは[オープンレジャーコスト](../../../../concepts/transactions/transaction-cost.md)を満たしておらず、またこのサーバのトランザクションキューが一杯であるため、サーバはこのトランザクションをキューに入れませんでした。`Fee`の値を大きくして再試行するか、後で試してみるか、別のサーバへの送信を試みることができます。新しいトランザクションのトランザクションコスト([手数料レベル](../../../../concepts/transactions/transaction-cost.md#手数料レベル)で評価)は、キュー内でトランザクションコストが最も低いトランザクションよりも高くなければなりません。 | +| `telFAILED_PROCESSING` | トランザクションの処理中に不明なエラーが発生しました。 | +| `telINSUF_FEE_P` | トランザクションの`Fee`が、サーバの負荷レベルに基づいて定められるサーバの現在の[トランザクションコスト](../../../../concepts/transactions/transaction-cost.md)要件を満たすのに十分な値ではありあません。 | +| `telLOCAL_ERROR` | 不明なローカルエラー。 | +| `telNETWORK_ID_MAKES_TX_NON_CANONICAL` | トランザクションは[`NetworkID`フィールド](../common-fields.md#networkidフィールド)を指定していますが、現在のネットワークルールでは`NetworkID`フィールドは指定しないことになっています。(メインネットやその他のチェーンIDが1024以下のネットワークではこのフィールドは使用されません)。もしトランザクションが`NetworkID`を使用しないネットワーク向けであった場合、そのフィールドを削除して再試行してください。トランザクションが別のネットワーク向けだった場合は、正しいネットワークに接続されているサーバに送信してください。 {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.11.0" %}新規: rippled 1.11.0{% /badge %} | +| `telNO_DST`\_`PARTIAL` | トランザクションは、新しいアカウントに資金を供給するためのXRPによる支払いですが、[tfPartialPaymentフラグ](../../../../concepts/payment-types/partial-payments.md)が有効になっていました。これは許可されていません。 | +| `telREQUIRES_NETWORK_ID` | トランザクションは[`NetworkID`フィールド](../common-fields.md#networkidフィールド)を指定していません。トランザクションが`NetworkID`を必要とするネットワーク向けであった場合、フィールドを追加して再試行してください。トランザクションが別のネットワーク向けであった場合、正しいネットワークに接続されているサーバに送信してください。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.11.0" %}新規: rippled 1.11.0{% /badge %} | +| `telWRONG_NETWORK` | トランザクションが現在のネットワークに対して間違った [`NetworkID` 値](../common-fields.md#networkidフィールド) を指定しています。目的のネットワークに対して正しい `NetworkID`値を指定するか、正しいネットワークに接続されているサーバにトランザクションを送信してください。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.11.0" %}新規: rippled 1.11.0{% /badge %} | {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/transactions/transaction-results/tem-codes.md b/@l10n/ja/docs/references/protocol/transactions/transaction-results/tem-codes.md index b872461aa4..4c90c0efbf 100644 --- a/@l10n/ja/docs/references/protocol/transactions/transaction-results/tem-codes.md +++ b/@l10n/ja/docs/references/protocol/transactions/transaction-results/tem-codes.md @@ -2,51 +2,52 @@ html: tem-codes.html parent: transaction-results.html seo: - description: temコードは、トランザクションの形式が正しくないため、XRP Ledgerプロトコルに基づきトランザクションが正常に完了しないことを示します。 + description: temコードは、トランザクションの形式が正しくないため、XRP Ledgerプロトコルに基づきトランザクションが正常に完了しないことを示します。 labels: - トランザクション送信 --- + # temコード これらのコードは、トランザクションの形式が正しくないため、XRP Ledgerプロトコルに基づきトランザクションが正常に完了しないことを示します。これらには-299から-200までの数値が含まれています。実際のエラーに対して数値は変更される可能性がありますので、これに頼らないでください。 {% admonition type="success" name="ヒント" %}`tem`コードが付いているトランザクションはレジャーには適用されません。またこのようなトランザクションが原因でXRP Ledgerの状態が変わることはありません。有効なトランザクションに関するルールが変更されない限り、`tem`コードが最終的な結果となります。(例えば、[Amendment](../../../../concepts/networks-and-servers/amendments.md)の有効化前に当該のAmendmentの機能を使用すると`temDISABLED`になります。後日Amendmentが有効化されると、エラーになったトランザクションは有効となり、正常に処理される可能性があります。){% /admonition %} -| コード | 説明 | -|:-----------------------------|:----------------------------------------------| -| `temBAD_AMOUNT` | トランザクションにより指定された額(宛先への[Payment][]の`Amount`または`SendMax`の金額など)が無効でした。マイナスの金額が指定された可能性があります。 | -| `temBAD_AUTH_MASTER` | このトランザクションの署名に使用されたキーが、トランザクションの送信元アカウントのマスターキーと一致していません。また、アカウントに[レギュラーキー](../../../../concepts/accounts/cryptographic-keys.md)セットがありません。 | -| `temBAD_CURRENCY` | トランザクションの通貨フィールドが誤って指定されています。正しいフォーマットについては、[通貨額の指定][通貨額]をご覧ください。 | -| `temBAD_EXPIRATION` | トランザクションの有効期限の値が誤って指定されています([OfferCreateトランザクション][]など)。あるいは、トランザクションに必須の有効期限値が指定されていません(例えば、[EscrowCreateトランザクション][]の作成過程などで)。 | -| `temBAD_FEE` | トランザクションで`Fee`の値が誤って指定されています(例えば、XRP以外の通貨やマイナスの額のXRPを指定するなど)。 | -| `temBAD_ISSUER` | リクエストに指定されている通貨の`issuer`フィールドが、トランザクションにて誤って指定されています。 | -| `temBAD_LIMIT` | [TrustSetトランザクション][]でトラストラインの`LimitAmount`値が誤って指定されています。 | -| `temBAD_OFFER` | [OfferCreateトランザクション][]で無効なオファーが指定されています(XRPをXRP自身と取引するオファー、マイナスの額のオファーなど)。 | -| `temBAD_PATH` | [Paymentトランザクション][]の1つ以上の[パス](../../../../concepts/tokens/fungible-tokens/paths.md)が誤って指定されています。例えば、XRPのイシュアーが含まれていたり、アカウントが異なる方法で指定されたりするなど。 | -| `temBAD_PATH_LOOP` | [Paymentトランザクション][]で[パス](../../../../concepts/tokens/fungible-tokens/paths.md)の1つがループとしてマークされているため、限られた時間内に処理できません。 | -| `temBAD_SEND_XRP_LIMIT` | [Paymentトランザクション][]で、XRP間の直接支払いに[tfLimitQuality](../types/payment.md#クオリティの制限)フラグが使用されましたが、XRP間の支払いでは通貨の取引は行われません。 | -| `temBAD_SEND_XRP_MAX` | [Paymentトランザクション][]で、XRP間の直接支払いに`SendMax`フィールドが指定されていますが、XRPの送金ではSendMaxは不要です。(SendMaxでXRPが有効となるのは、宛先への`Amount`がXRPではない場合のみです。) | -| `temBAD_SEND_XRP_NO_DIRECT` | [Paymentトランザクション][]で、XRP間の直接支払いに[tfNoDirectRipple](../types/payment.md#paymentのフラグ)フラグが使用されていますが、XRP間の支払いは常に直接行われます。 | -| `temBAD_SEND_XRP_PARTIAL` | [Paymentトランザクション][]で、XRP間の直接支払いに [tfPartialPayment](../../../../concepts/payment-types/partial-payments.md)フラグが使用されていますが、XRP間の直接支払いでは常に全額が送金されます。 | -| `temBAD_SEND_XRP_PATHS` | [Paymentトランザクション][]で、XRP送金時の`Paths`が指定されていますが、XRP間の支払いは常に直接行われます。 | -| `temBAD_SEQUENCE` | トランザクションは、トランザクション自体の`Sequence`番号よりも大きいシーケンス番号を参照します。例えば、取り消したいオファーは、そのオファーを取り消すトランザクションよりも後に置く必要があります。 | -| `temBAD_SIGNATURE` | このトランザクションを承認するための署名がないか、または署名の形式が適切ではありません。(適切な形式の署名がアカウントで承認されない場合は、[tecNO_PERMISSION](tec-codes.md)をご覧ください。) | -| `temBAD_SRC_ACCOUNT` | このトランザクションの送信元の`Account`(「支払元アカウント」)の[アカウント](../../../../concepts/accounts/index.md)アドレスは適切な形式ではありません。 | -| `temBAD_TRANSFER_RATE` | [AccountSetトランザクションの`TransferRate`フィールド](../types/accountset.md#transferrate)のフォーマットが適切ではないか、または許容範囲外です。 | -| `temCANNOT_PREAUTH_SELF` | [DepositPreauthトランザクション][]の送信者は、事前承認対象のアカウントとしても指定されていました。自分自身を事前承認することはできません。 | -| `temDST_IS_SRC` | トランザクションで宛先アドレスがトランザクションの送信元`Account`として誤って指定されていました。これにはトラストライン(支払先アドレスは`LimitAmount`の`issuer`フィールド)とPayment Channel(支払先アドレスは`Destination`フィールド)などがあります。 | -| `temDST_NEEDED` | トランザクションで宛先が誤って省略されていました。これは、[Paymentトランザクション][]の`Destination`フィールド、または`TrustSet`トランザクションの`LimitAmount`フィールドの`issuer`サブフィールドで起こり得ます。 | -| `temINVALID` | その他の理由により、トランザクションは無効です。例えば、トランザクションIDのフォーマットや署名の形式が正しくないなど、トランザクションを解釈する過程で何らかの誤った処理が発生した可能性があります。 | -| `temINVALID_FLAG` | トランザクションに指定されている[フラグ](../common-fields.md#flagsフィールド)が存在していないか、または矛盾するフラグの組み合わせが指定されています。 | -| `temMALFORMED` | トランザクションのフォーマットで不明な問題が発生しました。 | -| `temREDUNDANT` | トランザクションは処理を行いません。例えば、送信側アカウントに支払いを直接送金する場合や、同一イシュアーの同一通貨を売買するオファーを作成する場合などです。 | -| `temREDUNDANT_SEND_MAX` | {% badge href="https://github.com/XRPLF/rippled/releases/tag/0.28.0" %}削除: rippled 0.28.0{% /badge %} | -| `temRIPPLE_EMPTY` | [Paymentトランザクション][]に指定されている`Paths`フィールドが空ですが、この支払いを完了するにはパスが必要です。 | -| `temBAD_WEIGHT` | [SignerListSetトランザクション][]に無効な`SignerWeight`が指定されています。例えば、0やマイナス値など。 | -| `temBAD_SIGNER` | [SignerListSetトランザクション][]に指定されている署名者が無効です。例えば、重複するエントリが指定されている場合や、SignerListの所有者がメンバーでもある場合などです。 | -| `temBAD_QUORUM` | [SignerListSetトランザクション][]に無効な`SignerQuorum`値が指定されています。この値が0以下であるか、またはリストのすべての署名者の合計数を超えています。 | -| `temUNCERTAIN` | 内部使用のみ。通常はこのコードは返されません。 | -| `temUNKNOWN` | 内部使用のみ。通常はこのコードは返されません。 | -| `temDISABLED` | このトランザクションには、無効化されているロジックが必要です。通常これは、現行レジャー向けに有効化されていない[Amendment](../../../../concepts/networks-and-servers/amendments.md)を使用しようとしていることを意味します。 | +| コード | 説明 | +| :-------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `temBAD_AMOUNT` | トランザクションにより指定された額(宛先への[Payment][]の`Amount`または`SendMax`の金額など)が無効でした。マイナスの金額が指定された可能性があります。 | +| `temBAD_AUTH_MASTER` | このトランザクションの署名に使用されたキーが、トランザクションの送信元アカウントのマスターキーと一致していません。また、アカウントに[レギュラーキー](../../../../concepts/accounts/cryptographic-keys.md)セットがありません。 | +| `temBAD_CURRENCY` | トランザクションの通貨フィールドが誤って指定されています。正しいフォーマットについては、[通貨額の指定][通貨額]をご覧ください。 | +| `temBAD_EXPIRATION` | トランザクションの有効期限の値が誤って指定されています([OfferCreateトランザクション][]など)。あるいは、トランザクションに必須の有効期限値が指定されていません(例えば、[EscrowCreateトランザクション][]の作成過程などで)。 | +| `temBAD_FEE` | トランザクションで`Fee`の値が誤って指定されています(例えば、XRP以外の通貨やマイナスの額のXRPを指定するなど)。 | +| `temBAD_ISSUER` | リクエストに指定されている通貨の`issuer`フィールドが、トランザクションにて誤って指定されています。 | +| `temBAD_LIMIT` | [TrustSetトランザクション][]でトラストラインの`LimitAmount`値が誤って指定されています。 | +| `temBAD_OFFER` | [OfferCreateトランザクション][]で無効なオファーが指定されています(XRPをXRP自身と取引するオファー、マイナスの額のオファーなど)。 | +| `temBAD_PATH` | [Paymentトランザクション][]の1つ以上の[パス](../../../../concepts/tokens/fungible-tokens/paths.md)が誤って指定されています。例えば、XRPのイシュアーが含まれていたり、アカウントが異なる方法で指定されたりするなど。 | +| `temBAD_PATH_LOOP` | [Paymentトランザクション][]で[パス](../../../../concepts/tokens/fungible-tokens/paths.md)の1つがループとしてマークされているため、限られた時間内に処理できません。 | +| `temBAD_SEND_XRP_LIMIT` | [Paymentトランザクション][]で、XRP間の直接支払いに[tfLimitQuality](../types/payment.md#クオリティの制限)フラグが使用されましたが、XRP間の支払いでは通貨の取引は行われません。 | +| `temBAD_SEND_XRP_MAX` | [Paymentトランザクション][]で、XRP間の直接支払いに`SendMax`フィールドが指定されていますが、XRPの送金ではSendMaxは不要です。(SendMaxでXRPが有効となるのは、宛先への`Amount`がXRPではない場合のみです。) | +| `temBAD_SEND_XRP_NO_DIRECT` | [Paymentトランザクション][]で、XRP間の直接支払いに[tfNoDirectRipple](../types/payment.md#paymentのフラグ)フラグが使用されていますが、XRP間の支払いは常に直接行われます。 | +| `temBAD_SEND_XRP_PARTIAL` | [Paymentトランザクション][]で、XRP間の直接支払いに [tfPartialPayment](../../../../concepts/payment-types/partial-payments.md)フラグが使用されていますが、XRP間の直接支払いでは常に全額が送金されます。 | +| `temBAD_SEND_XRP_PATHS` | [Paymentトランザクション][]で、XRP送金時の`Paths`が指定されていますが、XRP間の支払いは常に直接行われます。 | +| `temBAD_SEQUENCE` | トランザクションは、トランザクション自体の`Sequence`番号よりも大きいシーケンス番号を参照します。例えば、取り消したいオファーは、そのオファーを取り消すトランザクションよりも後に置く必要があります。 | +| `temBAD_SIGNATURE` | このトランザクションを承認するための署名がないか、または署名の形式が適切ではありません。(適切な形式の署名がアカウントで承認されない場合は、[tecNO_PERMISSION](tec-codes.md)をご覧ください。) | +| `temBAD_SRC_ACCOUNT` | このトランザクションの送信元の`Account`(「支払元アカウント」)の[アカウント](../../../../concepts/accounts/index.md)アドレスは適切な形式ではありません。 | +| `temBAD_TRANSFER_RATE` | [AccountSetトランザクションの`TransferRate`フィールド](../types/accountset.md#transferrate)のフォーマットが適切ではないか、または許容範囲外です。 | +| `temCANNOT_PREAUTH_SELF` | [DepositPreauthトランザクション][]の送信者は、事前承認対象のアカウントとしても指定されていました。自分自身を事前承認することはできません。 | +| `temDST_IS_SRC` | トランザクションで宛先アドレスがトランザクションの送信元`Account`として誤って指定されていました。これにはトラストライン(支払先アドレスは`LimitAmount`の`issuer`フィールド)とPayment Channel(支払先アドレスは`Destination`フィールド)などがあります。 | +| `temDST_NEEDED` | トランザクションで宛先が誤って省略されていました。これは、[Paymentトランザクション][]の`Destination`フィールド、または`TrustSet`トランザクションの`LimitAmount`フィールドの`issuer`サブフィールドで起こり得ます。 | +| `temINVALID` | その他の理由により、トランザクションは無効です。例えば、トランザクションIDのフォーマットや署名の形式が正しくないなど、トランザクションを解釈する過程で何らかの誤った処理が発生した可能性があります。 | +| `temINVALID_FLAG` | トランザクションに指定されている[フラグ](../common-fields.md#flagsフィールド)が存在していないか、または矛盾するフラグの組み合わせが指定されています。 | +| `temMALFORMED` | トランザクションのフォーマットで不明な問題が発生しました。 | +| `temREDUNDANT` | トランザクションは処理を行いません。例えば、送信側アカウントに支払いを直接送金する場合や、同一イシュアーの同一通貨を売買するオファーを作成する場合などです。 | +| `temREDUNDANT_SEND_MAX` | {% badge href="https://github.com/XRPLF/rippled/releases/tag/0.28.0" %}削除: rippled 0.28.0{% /badge %} | +| `temRIPPLE_EMPTY` | [Paymentトランザクション][]に指定されている`Paths`フィールドが空ですが、この支払いを完了するにはパスが必要です。 | +| `temBAD_WEIGHT` | [SignerListSetトランザクション][]に無効な`SignerWeight`が指定されています。例えば、0やマイナス値など。 | +| `temBAD_SIGNER` | [SignerListSetトランザクション][]に指定されている署名者が無効です。例えば、重複するエントリが指定されている場合や、SignerListの所有者がメンバーでもある場合などです。 | +| `temBAD_QUORUM` | [SignerListSetトランザクション][]に無効な`SignerQuorum`値が指定されています。この値が0以下であるか、またはリストのすべての署名者の合計数を超えています。 | +| `temUNCERTAIN` | 内部使用のみ。通常はこのコードは返されません。 | +| `temUNKNOWN` | 内部使用のみ。通常はこのコードは返されません。 | +| `temDISABLED` | このトランザクションには、無効化されているロジックが必要です。通常これは、現行レジャー向けに有効化されていない[Amendment](../../../../concepts/networks-and-servers/amendments.md)を使用しようとしていることを意味します。 | {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/transactions/transaction-results/ter-codes.md b/@l10n/ja/docs/references/protocol/transactions/transaction-results/ter-codes.md index 5982048d61..ba853b764d 100644 --- a/@l10n/ja/docs/references/protocol/transactions/transaction-results/ter-codes.md +++ b/@l10n/ja/docs/references/protocol/transactions/transaction-results/ter-codes.md @@ -2,28 +2,29 @@ html: ter-codes.html parent: transaction-results.html seo: - description: terコードは、トランザクションは失敗したけれども、将来そのトランザクションを正常に適用できる可能性があることを示します。 + description: terコードは、トランザクションは失敗したけれども、将来そのトランザクションを正常に適用できる可能性があることを示します。 labels: - トランザクション送信 --- + # terコード これらのコードは、トランザクションは失敗したけれども、将来そのトランザクションを正常に適用できる可能性があることを示します。通常は、他の仮定トランザクションが先に適用される場合など。これらには-99から-1までの数値が含まれています。実際のエラーに対して数値は変更される可能性がありますので、これに頼らないでください。 {% admonition type="warning" name="注意" %}`ter`コードが付いているトランザクションはレジャーには適用されません。またこのようなトランザクションが原因でXRP Ledgerの状態が変わることはありません。ただし、暫定的に失敗したトランザクションは、再適用後に成功するか、または別のコードで失敗する可能性があります。詳細は、[結果のファイナリティー](../../../../concepts/transactions/finality-of-results/index.md)と[信頼性の高いトランザクション送信](../../../../concepts/transactions/reliable-transaction-submission.md)をご覧ください。{% /admonition %} -| コード | 説明 | -|:-----------------|:----------------------------------------------------------| -| `terFUNDS_SPENT` | **廃止予定。** | -| `terINSUF_FEE_B` | トランザクションの送信元アカウントに、トランザクションに指定されている`Fee`の支払いに十分なXRPがありません。 | -| `terLAST` | 内部使用のみ。通常はこのコードは返されません。 | -| `terNO_ACCOUNT` | レジャーのトランザクション送信元アドレスに(まだ)資金が供給されていません。 | -| `terNO_AUTH` | トランザクションでは、`lsfRequireAuth`が有効であるアカウントが発行した通貨を未承認のトラストラインに追加する操作が行われます。たとえば、保有が許可されていない通貨を購入するオファーを出した場合などです。 | -| `terNO_LINE` | 内部使用のみ。通常はこのコードは返されません。 | -| `terNO_RIPPLE` | 内部使用のみ。通常はこのコードは返されません。 | -| `terOWNERS` | トランザクションでは、トランザクションを送信するアカウントの「所有者カウント」はゼロ以外である必要があります。このためトランザクションを正常に完了できません。たとえば、トラストラインや使用可能なオファーがあるアカウントでは、[`lsfRequireAuth`](../types/accountset.md#accountsetのフラグ)フラグを有効にできません。 | -| `terPRE_SEQ` | 現在のトランザクションの`Sequence`番号が、トランザクションを送信するアカウントの現在のシーケンス番号よりも大きな番号です。 | -| `terRETRY` | 再試行可能な不明なエラー。 | -| `terQUEUED` | トランザクションは負荷スケーリングされた[トランザクションコスト](../../../../concepts/transactions/transaction-cost.md)の要件を満たしているが、オープンレジャーの要件を満たしていなかったため、トランザクションは将来のレジャーのキューに入れられました。 | +| コード | 説明 | +| :--------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `terFUNDS_SPENT` | **廃止予定。** | +| `terINSUF_FEE_B` | トランザクションの送信元アカウントに、トランザクションに指定されている`Fee`の支払いに十分なXRPがありません。 | +| `terLAST` | 内部使用のみ。通常はこのコードは返されません。 | +| `terNO_ACCOUNT` | レジャーのトランザクション送信元アドレスに(まだ)資金が供給されていません。 | +| `terNO_AUTH` | トランザクションでは、`lsfRequireAuth`が有効であるアカウントが発行した通貨を未承認のトラストラインに追加する操作が行われます。たとえば、保有が許可されていない通貨を購入するオファーを出した場合などです。 | +| `terNO_LINE` | 内部使用のみ。通常はこのコードは返されません。 | +| `terNO_RIPPLE` | 内部使用のみ。通常はこのコードは返されません。 | +| `terOWNERS` | トランザクションでは、トランザクションを送信するアカウントの「所有者カウント」はゼロ以外である必要があります。このためトランザクションを正常に完了できません。たとえば、トラストラインや使用可能なオファーがあるアカウントでは、[`lsfRequireAuth`](../types/accountset.md#accountsetのフラグ)フラグを有効にできません。 | +| `terPRE_SEQ` | 現在のトランザクションの`Sequence`番号が、トランザクションを送信するアカウントの現在のシーケンス番号よりも大きな番号です。 | +| `terRETRY` | 再試行可能な不明なエラー。 | +| `terQUEUED` | トランザクションは負荷スケーリングされた[トランザクションコスト](../../../../concepts/transactions/transaction-cost.md)の要件を満たしているが、オープンレジャーの要件を満たしていなかったため、トランザクションは将来のレジャーのキューに入れられました。 | {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/transactions/transaction-results/tes-success.md b/@l10n/ja/docs/references/protocol/transactions/transaction-results/tes-success.md index 41f3dcfabb..5cf721bd8e 100644 --- a/@l10n/ja/docs/references/protocol/transactions/transaction-results/tes-success.md +++ b/@l10n/ja/docs/references/protocol/transactions/transaction-results/tes-success.md @@ -2,16 +2,17 @@ html: tes-success.html parent: transaction-results.html seo: - description: tesSUCCESSコードは、トランザクションが成功したことを示す唯一のコードです。 + description: tesSUCCESSコードは、トランザクションが成功したことを示す唯一のコードです。 labels: - トランザクション送信 --- + # tes Success `tesSUCCESS`コードは、トランザクションが成功したことを示す唯一のコードです。このコードは、必ずしも処理が期待どおりに終了したことを示すものではありません。(たとえば[OfferCancel][]は、キャンセルするオファーがない場合でも「正常に終了」できます。)`tesSUCCESS`の結果には数値0が使用されます。 -| コード | 説明 | -|:-----------|:----------------------------------------------------------------| +| コード | 説明 | +| :----------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | | `tesSUCCESS` | トランザクションが適用され、他のサーバに転送されました。検証済みレジャーにこのコードが記録されている場合は、トランザクションの成功が最終的な結果となります。 | {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/transactions/types/accountdelete.md b/@l10n/ja/docs/references/protocol/transactions/types/accountdelete.md index a297bb37db..581ec2b21a 100644 --- a/@l10n/ja/docs/references/protocol/transactions/types/accountdelete.md +++ b/@l10n/ja/docs/references/protocol/transactions/types/accountdelete.md @@ -1,9 +1,10 @@ --- seo: - description: アカウントの削除 + description: アカウントの削除 labels: - アカウント --- + # AccountDelete [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/DeleteAccount.cpp "Source") @@ -16,27 +17,25 @@ _[DeletableAccounts Amendment][]が必要です。_ ```json { - "TransactionType": "AccountDelete", - "Account": "rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm", - "Destination": "rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe", - "DestinationTag": 13, - "Fee": "5000000", - "Sequence": 2470665, - "Flags": 2147483648 + "TransactionType": "AccountDelete", + "Account": "rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm", + "Destination": "rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe", + "DestinationTag": 13, + "Fee": "5000000", + "Sequence": 2470665, + "Flags": 2147483648 } ``` {% tx-example txid="1AF19BF9717DA0B05A3BFC5007873E7743BA54C0311CCCCC60776AAEAC5C4635" /%} - {% raw-partial file="/@l10n/ja/docs/_snippets/tx-fields-intro.md" /%} -| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | -| :--------------- | :-------------------- | :----------- | :----- | ---- | +| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | +| :--------------- | :-------------------- | :----------- | :----- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `CredentialIDs` | 文字列の配列 | Vector256 | いいえ | このトランザクションによる入金を承認する資格情報のセット。配列の各メンバーは、レジャー内のCredentialエントリのレジャーエントリIDでなければなりません。詳細については、[Credential ID](./payment.md#credential-ids)をご覧ください。 | -| `Destination` | 文字列 - [アドレス][] | AccountID | はい | 送金元アカウントを削除した後の残りのXRPを受け取るアカウントのアドレス。レジャー内の資金供給のあるアカウントでなければならず、送金元アカウントであってはいけません。 | -| `DestinationTag` | 数値 | UInt32 | いいえ | 削除されたアカウントの残りのXRPの受取人を識別する任意の[宛先タグ](../../../../concepts/transactions/source-and-destination-tags.md)、または受取人のその他の情報。 | - +| `Destination` | 文字列 - [アドレス][] | AccountID | はい | 送金元アカウントを削除した後の残りのXRPを受け取るアカウントのアドレス。レジャー内の資金供給のあるアカウントでなければならず、送金元アカウントであってはいけません。 | +| `DestinationTag` | 数値 | UInt32 | いいえ | 削除されたアカウントの残りのXRPの受取人を識別する任意の[宛先タグ](../../../../concepts/transactions/source-and-destination-tags.md)、または受取人のその他の情報。 | ## 特別なトランザクションコスト @@ -44,20 +43,19 @@ _[DeletableAccounts Amendment][]が必要です。_ トランザクションコストは、トランザクションが検証済みレジャーに含まれている場合は常に適用されます。アカウントを削除できない場合でも、トランザクションは失敗します。(詳細は、[エラーケース](#エラーケース)をご覧ください。)アカウントを削除できない場合の高いトランザクションコストを支払う可能性を大幅に減らすには、[トランザクションを送信](../../../http-websocket-apis/public-api-methods/transaction-methods/submit.md)する際に`fail_hard`を有効にしてください。 - ## エラーケース すべてのトランザクションで発生する可能性のあるエラーに加えて、{% $frontmatter.seo.title %}トランザクションでは、次の[トランザクション結果コード](../transaction-results/index.md)が発生する可能性があります。 -| エラーコード | 説明 | -| :------------------- | ---- | -| `temDISABLED` | [DeletableAccounts Amendment](/resources/known-amendments.md#deletableaccounts)が有効でない場合に発生します。 | -| `temDST_IS_SRC` | `Destination`がトランザクションの送金元(`Account`フィールド)と一致している場合に発生します。 | -| `tecDST_TAG_NEEDED` | `Destination`アカウントに[宛先タグ](../../../../concepts/transactions/source-and-destination-tags.md)が必要であるのに、`DestinationTag`フィールドが指定されていない場合に発生します。 | -| `tecNO_DST` | `Destination`アカウントが、レジャーの資金供給のあるアカウントではない場合に発生します。 | -| `tecNO_PERMISSION` | `Destination`アカウントに[Deposit Authorization](../../../../concepts/accounts/depositauth.md)が必要で、送金元が事前に承認されていない場合に発生します。 | -| `tecTOO_SOON` | 送金元の`Sequence`番号が大きすぎる場合に発生します。トランザクションの`Sequence`番号に256を加えた値が、現行の[レジャーインデックス][]より小さい値でなければなりません。 | +| エラーコード | 説明 | +| :------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `temDISABLED` | [DeletableAccounts Amendment](/resources/known-amendments.md#deletableaccounts)が有効でない場合に発生します。 | +| `temDST_IS_SRC` | `Destination`がトランザクションの送金元(`Account`フィールド)と一致している場合に発生します。 | +| `tecDST_TAG_NEEDED` | `Destination`アカウントに[宛先タグ](../../../../concepts/transactions/source-and-destination-tags.md)が必要であるのに、`DestinationTag`フィールドが指定されていない場合に発生します。 | +| `tecNO_DST` | `Destination`アカウントが、レジャーの資金供給のあるアカウントではない場合に発生します。 | +| `tecNO_PERMISSION` | `Destination`アカウントに[Deposit Authorization](../../../../concepts/accounts/depositauth.md)が必要で、送金元が事前に承認されていない場合に発生します。 | +| `tecTOO_SOON` | 送金元の`Sequence`番号が大きすぎる場合に発生します。トランザクションの`Sequence`番号に256を加えた値が、現行の[レジャーインデックス][]より小さい値でなければなりません。 | | `tecHAS_OBLIGATIONS` | 削除するアカウントが、レジャーの削除できないオブジェクトに接続されている場合に発生します。([escrow](../../../../concepts/payment-types/escrow.md)など、他のアカウントによって作成されたオブジェクトが含まれます。) | -| `tefTOO_BIG` | 送金元アカウントが、レジャーの1,000個を超えるオブジェクトにリンクされている場合に発生します。これらのオブジェクトの一部が先行して個別に削除された場合、トランザクションは再試行で成功する可能性があります。 | +| `tefTOO_BIG` | 送金元アカウントが、レジャーの1,000個を超えるオブジェクトにリンクされている場合に発生します。これらのオブジェクトの一部が先行して個別に削除された場合、トランザクションは再試行で成功する可能性があります。 | {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/transactions/types/accountset.md b/@l10n/ja/docs/references/protocol/transactions/types/accountset.md index c0d911a043..295b77f753 100644 --- a/@l10n/ja/docs/references/protocol/transactions/types/accountset.md +++ b/@l10n/ja/docs/references/protocol/transactions/types/accountset.md @@ -1,9 +1,10 @@ --- seo: - description: XRP Ledgerのアカウントのプロパティーを修正します。 + description: XRP Ledgerのアカウントのプロパティーを修正します。 labels: - アカウント --- + # AccountSet [[ソース]](https://github.com/XRPLF/rippled/blob/f65cea66ef99b1de149c02c15f06de6c61abf360/src/ripple/app/transactors/SetAccount.cpp "ソース") @@ -14,13 +15,13 @@ AccountSetトランザクションは、[XRP Ledgerのアカウント](../../led ```json { - "TransactionType": "AccountSet", - "Account" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "Fee": "12", - "Sequence": 5, - "Domain": "6578616D706C652E636F6D", - "SetFlag": 5, - "MessageKey": "03AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB" + "TransactionType": "AccountSet", + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "Fee": "12", + "Sequence": 5, + "Domain": "6578616D706C652E636F6D", + "SetFlag": 5, + "MessageKey": "03AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB" } ``` @@ -28,18 +29,18 @@ AccountSetトランザクションは、[XRP Ledgerのアカウント](../../led {% raw-partial file="/@l10n/ja/docs/_snippets/tx-fields-intro.md" /%} -| フィールド | JSONの型 | [内部の型][] | 説明 | -|:-----------------|:-----------------|:------------------|:-------------------| -| [`ClearFlag`](#accountsetのフラグ) | 数値 | UInt32 | _(省略可)_ このアカウントについてオプションを無効にするためのフラグの一意識別子。 | -| [`Domain`](#domain) | 文字列 | Blob | _(省略可)_ このアカウントを保有するドメインのASCII小文字を表現する16進文字列。[256バイトを超える長さは使用できません。](https://github.com/XRPLF/rippled/blob/55dc7a252e08a0b02cd5aa39e9b4777af3eafe77/src/ripple/app/tx/impl/SetAccount.h#L34) | -| `EmailHash` | 文字列 | Hash128 | _(省略可)_ アバターイメージの生成に使用されるメールアドレスのハッシュ。一般的に、クライアントは[Gravatar](http://en.gravatar.com/site/implement/hash/)を使用してこのイメージを表示しています。 | -| `MessageKey` | 文字列 | Blob | _(省略可)_ 暗号化されたメッセージをこのアカウントに送信するための公開鍵です。キーを設定するには、正確に33バイトである必要があり、最初のバイトはキーの種類を示します。secp256k1鍵の場合は`0x02`または`0x03`、Ed25519鍵の場合は`0xED`です。キーを削除するには、空の値を使用します。 | -| `NFTokenMinter` | 文字列 | Blob | _(省略可)_ あなたのために[NFTokensをミントする](../../../../tutorials/javascript/nfts/assign-an-authorized-minter.md)ことができる別のアカウント。 {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} | -| [`SetFlag`](#accountsetのフラグ) | 数値 | UInt32 | _(省略可)_ このアカウントについてオプションを有効にするための整数フラグ。 | -| [`TransferRate`](#transferrate) | 符号なし整数 | UInt32 | _(省略可)_ ユーザがこのアカウントのトークンを送金するときに請求される手数料。通貨単位の10億分の1で表現されます。手数料なしを意味する特殊なケースの`0`を除いて、`2000000000`より大きくしたり、`1000000000`より小さくしたりすることはできません。 | -| [`TickSize`](../../../../concepts/tokens/decentralized-exchange/ticksize.md) | 符号なし整数 | UInt8 | _(省略可)_このアドレスによって発行されている通貨が関係するオファーに使用する為替レートの呼値の単位。それらのオファーの為替レートは、この有効桁数へと丸められます。有効な値は`3`から`15`、または無効にするための`0`です{% amendment-disclaimer name="TickSize" /%} | -| `WalletLocator` | 文字列 | UInt256 | _(省略可)_ 任意の256ビット値です。指定された場合、この値はアカウントの設定の一部として保存さ れますが、固有の定義や要件を持ちません。 | -| `WalletSize` | 数値 | UInt32 | _(省略可)_ 使用されません。このフィールドはAccountSetトランザクションで有効ですが、何の機能もありません | +| フィールド | JSONの型 | [内部の型][] | 説明 | +| :--------------------------------------------------------------------------- | :----------- | :----------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [`ClearFlag`](#accountsetのフラグ) | 数値 | UInt32 | _(省略可)_ このアカウントについてオプションを無効にするためのフラグの一意識別子。 | +| [`Domain`](#domain) | 文字列 | Blob | _(省略可)_ このアカウントを保有するドメインのASCII小文字を表現する16進文字列。[256バイトを超える長さは使用できません。](https://github.com/XRPLF/rippled/blob/55dc7a252e08a0b02cd5aa39e9b4777af3eafe77/src/ripple/app/tx/impl/SetAccount.h#L34) | +| `EmailHash` | 文字列 | Hash128 | _(省略可)_ アバターイメージの生成に使用されるメールアドレスのハッシュ。一般的に、クライアントは[Gravatar](http://en.gravatar.com/site/implement/hash/)を使用してこのイメージを表示しています。 | +| `MessageKey` | 文字列 | Blob | _(省略可)_ 暗号化されたメッセージをこのアカウントに送信するための公開鍵です。キーを設定するには、正確に33バイトである必要があり、最初のバイトはキーの種類を示します。secp256k1鍵の場合は`0x02`または`0x03`、Ed25519鍵の場合は`0xED`です。キーを削除するには、空の値を使用します。 | +| `NFTokenMinter` | 文字列 | Blob | _(省略可)_ あなたのために[NFTokensをミントする](../../../../tutorials/javascript/nfts/assign-an-authorized-minter.md)ことができる別のアカウント。 {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} | +| [`SetFlag`](#accountsetのフラグ) | 数値 | UInt32 | _(省略可)_ このアカウントについてオプションを有効にするための整数フラグ。 | +| [`TransferRate`](#transferrate) | 符号なし整数 | UInt32 | _(省略可)_ ユーザがこのアカウントのトークンを送金するときに請求される手数料。通貨単位の10億分の1で表現されます。手数料なしを意味する特殊なケースの`0`を除いて、`2000000000`より大きくしたり、`1000000000`より小さくしたりすることはできません。 | +| [`TickSize`](../../../../concepts/tokens/decentralized-exchange/ticksize.md) | 符号なし整数 | UInt8 | *(省略可)*このアドレスによって発行されている通貨が関係するオファーに使用する為替レートの呼値の単位。それらのオファーの為替レートは、この有効桁数へと丸められます。有効な値は`3`から`15`、または無効にするための`0`です{% amendment-disclaimer name="TickSize" /%} | +| `WalletLocator` | 文字列 | UInt256 | _(省略可)_ 任意の256ビット値です。指定された場合、この値はアカウントの設定の一部として保存さ れますが、固有の定義や要件を持ちません。 | +| `WalletSize` | 数値 | UInt32 | _(省略可)_ 使用されません。このフィールドはAccountSetトランザクションで有効ですが、何の機能もありません | (全てのフィールドは任意です。) @@ -60,9 +61,9 @@ AccountSetトランザクションは、[XRP Ledgerのアカウント](../../led アカウントについて、有効または無効にできる複数のオプションが用意されています。アカウントのオプションは、状況に応じてさまざまなタイプのフラグで表現します。 -* `AccountSet`タイプのトランザクションについては、`SetFlag`パラメーターとして渡すことでオプションを有効にしたり、`ClearFlag`パラメーターとして渡すことでオプションを無効にしたりできる複数の「AccountSetフラグ」が用意されています(プレフィクスは**asf**)。 -* `AccountSet`タイプのトランザクションについては、`Flags`パラメーターとして渡すことでアカウントの特定のオプションを有効または無効にできる複数のトランザクションフラグが用意されています(プレフィクスは**tf**)。このタイプの利用はお勧めしません。新しいアカウントオプションには、対応するトランザクションフラグ(tf)が存在しません。 -* `AccountRoot`レジャーオブジェクトタイプには、レジャー固有のフラグが用意されています(プレフィクスは**lsf**)。これらのフラグは、特定のレジャーに含まれている特定のアカウントオプションの状態を表します。これらの設定は、トランザクションによって変更されるまで適用されます。 +- `AccountSet`タイプのトランザクションについては、`SetFlag`パラメーターとして渡すことでオプションを有効にしたり、`ClearFlag`パラメーターとして渡すことでオプションを無効にしたりできる複数の「AccountSetフラグ」が用意されています(プレフィクスは**asf**)。 +- `AccountSet`タイプのトランザクションについては、`Flags`パラメーターとして渡すことでアカウントの特定のオプションを有効または無効にできる複数のトランザクションフラグが用意されています(プレフィクスは**tf**)。このタイプの利用はお勧めしません。新しいアカウントオプションには、対応するトランザクションフラグ(tf)が存在しません。 +- `AccountRoot`レジャーオブジェクトタイプには、レジャー固有のフラグが用意されています(プレフィクスは**lsf**)。これらのフラグは、特定のレジャーに含まれている特定のアカウントオプションの状態を表します。これらの設定は、トランザクションによって変更されるまで適用されます。 アカウントのフラグを有効または無効にする手段としてお勧めするのは、AccountSetトランザクションの`SetFlag`パラメーターと`ClearFlag`パラメーターを使用する方法です。AccountSetのフラグは、名前が**asf**で始まります。 @@ -70,31 +71,31 @@ AccountSetトランザクションは、[XRP Ledgerのアカウント](../../led 使用できるAccountSetのフラグは、以下のとおりです。 -| フラグの名前 | 10進値 | 説明 | -|:----------------------------------|:------|:--------------| -| `asfAccountTxnID` | 5 | このアカウントの直近のトランザクションのIDを追跡します。[AccountTxnID](../common-fields.md#accounttxnid)については必須です。 | -| `asfAllowTrustLineClawback` | 16 | アカウントの発行したトークンを回収する機能を有効にします。 {% amendment-disclaimer name="Clawback" /%} 所有者ディレクトリが存在する場合はClawback機能を有効にできません。つまり、トラストラインやオファー、エスクロー、ペイメントチャネル、チェック、または署名者リストを設定する前に行う必要があります。このフラグは、有効にした後は無効にできません。| -| `asfAuthorizedNFTokenMinter` | 10 | このアカウントの代わりに、別のアカウントが非代替性トークン(NFToken)をミントすることを許可するために使用します。認可されたアカウントを[AccountRoot](../../ledger-data/ledger-entry-types/accountroot.md)オブジェクトの`NFTokenMinter`フィールドで指定します。認可されたアカウントを削除するには、このフラグを有効にして`NFTokenMinter`フィールドを省略します。 {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} | -| `asfDefaultRipple` | 8 | このアカウントのトラストラインでの[リップリング](../../../../concepts/tokens/fungible-tokens/rippling.md)をデフォルトで有効にします。 | -| `asfDepositAuth` | 9 | このアカウントに対して[Deposit Authorization](../../../../concepts/accounts/depositauth.md)を有効にします {% amendment-disclaimer name="DepositAuth" /%} | -| `asfDisableMaster` | 4 | マスターキーペアの使用を禁止します。[レギュラーキー](../../../../concepts/accounts/cryptographic-keys.md)や[署名者リスト](../../../../concepts/accounts/multi-signing.md)など、トランザクションに署名するための別の手段がアカウントで設定されている場合のみ有効にできます。 | -| `asfDisallowIncomingCheck` | 13 | チェックの着信をブロックします。{% amendment-disclaimer name="DisallowIncoming" /%} | -| `asfDisallowIncomingNFTokenOffer` | 12 | NFTokenOffersの着信をブロックします。{% amendment-disclaimer name="DisallowIncoming" /%} | -| `asfDisallowIncomingPayChan` | 14 | ペイメントチャネルの着信をブロックします。{% amendment-disclaimer name="DisallowIncoming" /%} | -| `asfDisallowIncomingTrustline` | 15 | トラストラインの着信をブロックします。{% amendment-disclaimer name="DisallowIncoming" /%} | -| `asfDisallowXRP` | 3 | XRPがこのアカウントに送信されないようにします(勧告的なもので、XRP Ledgerのプロトコルでは強制されません)。 | -| `asfGlobalFreeze` | 7 | このアカウントによって発行されたすべての資産を[フリーズ](../../../../concepts/tokens/fungible-tokens/freezes.md)します。 | -| `asfNoFreeze` | 6 | [個々のトラストラインのフリーズまたはGlobal Freezeの無効化](../../../../concepts/tokens/fungible-tokens/freezes.md)の機能を永続的に放棄します。このフラグは、有効にした後は無効にできません。 | -| `asfRequireAuth` | 2 | このアドレスによって発行された残高をユーザが保持することについて、承認を要求します。アドレスにトラストラインが接続されていない場合のみ有効にできます。 | -| `asfRequireDest` | 1 | トランザクションをこのアカウントに送信するための宛先タグを要求します。 | +| フラグの名前 | 10進値 | 説明 | +| :-------------------------------- | :----- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `asfAccountTxnID` | 5 | このアカウントの直近のトランザクションのIDを追跡します。[AccountTxnID](../common-fields.md#accounttxnid)については必須です。 | +| `asfAllowTrustLineClawback` | 16 | アカウントの発行したトークンを回収する機能を有効にします。 {% amendment-disclaimer name="Clawback" /%} 所有者ディレクトリが存在する場合はClawback機能を有効にできません。つまり、トラストラインやオファー、エスクロー、ペイメントチャネル、チェック、または署名者リストを設定する前に行う必要があります。このフラグは、有効にした後は無効にできません。 | +| `asfAuthorizedNFTokenMinter` | 10 | このアカウントの代わりに、別のアカウントが非代替性トークン(NFToken)をミントすることを許可するために使用します。認可されたアカウントを[AccountRoot](../../ledger-data/ledger-entry-types/accountroot.md)オブジェクトの`NFTokenMinter`フィールドで指定します。認可されたアカウントを削除するには、このフラグを有効にして`NFTokenMinter`フィールドを省略します。 {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} | +| `asfDefaultRipple` | 8 | このアカウントのトラストラインでの[リップリング](../../../../concepts/tokens/fungible-tokens/rippling.md)をデフォルトで有効にします。 | +| `asfDepositAuth` | 9 | このアカウントに対して[Deposit Authorization](../../../../concepts/accounts/depositauth.md)を有効にします {% amendment-disclaimer name="DepositAuth" /%} | +| `asfDisableMaster` | 4 | マスターキーペアの使用を禁止します。[レギュラーキー](../../../../concepts/accounts/cryptographic-keys.md)や[署名者リスト](../../../../concepts/accounts/multi-signing.md)など、トランザクションに署名するための別の手段がアカウントで設定されている場合のみ有効にできます。 | +| `asfDisallowIncomingCheck` | 13 | チェックの着信をブロックします。{% amendment-disclaimer name="DisallowIncoming" /%} | +| `asfDisallowIncomingNFTokenOffer` | 12 | NFTokenOffersの着信をブロックします。{% amendment-disclaimer name="DisallowIncoming" /%} | +| `asfDisallowIncomingPayChan` | 14 | ペイメントチャネルの着信をブロックします。{% amendment-disclaimer name="DisallowIncoming" /%} | +| `asfDisallowIncomingTrustline` | 15 | トラストラインの着信をブロックします。{% amendment-disclaimer name="DisallowIncoming" /%} | +| `asfDisallowXRP` | 3 | XRPがこのアカウントに送信されないようにします(勧告的なもので、XRP Ledgerのプロトコルでは強制されません)。 | +| `asfGlobalFreeze` | 7 | このアカウントによって発行されたすべての資産を[フリーズ](../../../../concepts/tokens/fungible-tokens/freezes.md)します。 | +| `asfNoFreeze` | 6 | [個々のトラストラインのフリーズまたはGlobal Freezeの無効化](../../../../concepts/tokens/fungible-tokens/freezes.md)の機能を永続的に放棄します。このフラグは、有効にした後は無効にできません。 | +| `asfRequireAuth` | 2 | このアドレスによって発行された残高をユーザが保持することについて、承認を要求します。アドレスにトラストラインが接続されていない場合のみ有効にできます。 | +| `asfRequireDest` | 1 | トランザクションをこのアカウントに送信するための宛先タグを要求します。 | 参考のため、各AccountSetフラグに対応するレジャーフラグは以下のとおりです。 -| AccountSetフラグの名前 | 対応するレジャーフラグ | -|:----------------------------------|:----------------------------------| -| `asfAccountTxnID` | (なし) | -| `asfAllowTrustLineClawback` | `lsfAllowTrustlineClawback` | -| `asfAuthorizedNFTokenMinter` | (なし) | +| AccountSetフラグの名前 | 対応するレジャーフラグ | +| :-------------------------------- | :-------------------------------- | +| `asfAccountTxnID` | (なし) | +| `asfAllowTrustLineClawback` | `lsfAllowTrustlineClawback` | +| `asfAuthorizedNFTokenMinter` | (なし) | | `asfDefaultRipple` | `lsfDefaultRipple` | | `asfDepositAuth` | `lsfDepositAuth` | | `asfDisableMaster` | `lsfDisableMaster` | @@ -112,18 +113,17 @@ AccountSetトランザクションは、[XRP Ledgerのアカウント](../../led 以下の[トランザクションフラグ](../common-fields.md#flagsフィールド)はAccountSetタイプのトランザクションに固有のもので、同様の目的を果たしますが、使用することはお勧めしません。限られたスペースのため、いくつかの設定には関連する `tf` フラグがありません。また、新しい `tf` フラグは `AccountSet` トランザクションタイプには追加されていません。一つのトランザクションで複数の設定を有効にするには、`tf`フラグと`asf`フラグを組み合わせて使用することができます。 -| フラグの名前 | 16進値 | 10進値 | 後継のAccountSetのフラグ | -|:--------------------|:-------------|:--------------|:----------------------------| -| `tfRequireDestTag` | `0x00010000` | 65536 | asfRequireDest(SetFlag) | -| `tfOptionalDestTag` | `0x00020000` | 131072 | asfRequireDest(ClearFlag) | -| `tfRequireAuth` | `0x00040000` | 262144 | asfRequireAuth(SetFlag) | -| `tfOptionalAuth` | `0x00080000` | 524288 | asfRequireAuth(ClearFlag) | -| `tfDisallowXRP` | `0x00100000` | 1048576 | asfDisallowXRP(SetFlag) | -| `tfAllowXRP` | `0x00200000` | 2097152 | asfDisallowXRP(ClearFlag) | +| フラグの名前 | 16進値 | 10進値 | 後継のAccountSetのフラグ | +| :------------------ | :----------- | :------ | :-------------------------- | +| `tfRequireDestTag` | `0x00010000` | 65536 | asfRequireDest(SetFlag) | +| `tfOptionalDestTag` | `0x00020000` | 131072 | asfRequireDest(ClearFlag) | +| `tfRequireAuth` | `0x00040000` | 262144 | asfRequireAuth(SetFlag) | +| `tfOptionalAuth` | `0x00080000` | 524288 | asfRequireAuth(ClearFlag) | +| `tfDisallowXRP` | `0x00100000` | 1048576 | asfDisallowXRP(SetFlag) | +| `tfAllowXRP` | `0x00200000` | 2097152 | asfDisallowXRP(ClearFlag) | {% admonition type="warning" name="注意" %}トランザクションに含まれている`tf`フラグと`asf`フラグの数値は、レジャーに含まれている静的なアカウントに設定された値と合致しません。レジャーに含まれているアカウントのフラグを読み取るには、[`AccountRoot`フラグ](../../ledger-data/ledger-entry-types/accountroot.md#accountrootのフラグ)をご覧ください。{% /admonition %} - ### 着信トランザクションのブロック 目的が不明確な着信トランザクションは、顧客による誤りを識別し、誤りに応じて、アカウントへの払い戻しや残高の調整を実施しなければならない場合がある金融機関にとって、不都合な存在です。`asfRequireDest`フラグと`asfDisallowXRP`フラグは、理由が不明確な状態で資金が誤って送金されることのないよう、ユーザを保護することを目的としています。 @@ -147,7 +147,7 @@ _すべての_ 支払いの着信をブロックしたい場合、[Deposit Autho TransferRateフィールドは、ユーザの発行する通貨を相手方が送金するときに請求する手数料を指定します。 -HTTPおよびWebSocketのAPIでは、TransferRate(相手方に10億単位の通貨を送金するのに必要な金額)は整数で表現します。例えば、送金手数料が20%である場合、値を`1200000000`と表現します。 値を1000000000未満にすることはできません(この値未満にした場合、トランザクションの送信について金銭の引き渡しが発生することになり、攻撃に利用されるおそれがあります)。`1000000000`の短縮形として、手数料なしを意味する`0`を指定できます。 +HTTPおよびWebSocketのAPIでは、TransferRate(相手方に10億単位の通貨を送金するのに必要な金額)は整数で表現します。例えば、送金手数料が20%である場合、値を`1200000000`と表現します。 値を1000000000未満にすることはできません(この値未満にした場合、トランザクションの送信について金銭の引き渡しが発生することになり、攻撃に利用されるおそれがあります)。`1000000000`の短縮形として、手数料なしを意味する`0`を指定できます。 詳細は、[送金手数料](../../../../concepts/tokens/fungible-tokens/transfer-fees.md)をご覧ください。 @@ -155,5 +155,4 @@ HTTPおよびWebSocketのAPIでは、TransferRate(相手方に10億単位の 認可ミンターを削除するには、`ClearFlag`を10(`asfAuthorizedNFTokenMinter`)に設定し、`NFTokenMinter`フィールドを省略します。 - {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/transactions/types/ammbid.md b/@l10n/ja/docs/references/protocol/transactions/types/ammbid.md index d2ec7c87a6..9b1fc552c7 100644 --- a/@l10n/ja/docs/references/protocol/transactions/types/ammbid.md +++ b/@l10n/ja/docs/references/protocol/transactions/types/ammbid.md @@ -2,11 +2,13 @@ html: ammbid.html parent: transaction-types.html seo: - description: 自動マーケットメーカーのオークションスロットに入札することで、手数料の割引を受けることができます。 + description: 自動マーケットメーカーのオークションスロットに入札することで、手数料の割引を受けることができます。 labels: - AMM --- + # AMMBid + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/AMMBid.cpp "Source") {% amendment-disclaimer name="AMM" /%} @@ -15,60 +17,59 @@ labels: AMMのLPトークンを使って落札すると、落札に利用したLPトークンはAMMに返され、LPトークンの残高が減ります。 - ## {% $frontmatter.seo.title %} JSONの例 ```json { - "Account" : "rJVUeRqDFNs2xqA7ncVE6ZoAhPUoaJJSQm", - "Asset" : { - "currency" : "XRP" + "Account": "rJVUeRqDFNs2xqA7ncVE6ZoAhPUoaJJSQm", + "Asset": { + "currency": "XRP" + }, + "Asset2": { + "currency": "TST", + "issuer": "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd" + }, + "AuthAccounts": [ + { + "AuthAccount": { + "Account": "rMKXGCbJ5d8LbrqthdG46q3f969MVK2Qeg" + } }, - "Asset2" : { - "currency" : "TST", - "issuer" : "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd" - }, - "AuthAccounts" : [ - { - "AuthAccount" : { - "Account" : "rMKXGCbJ5d8LbrqthdG46q3f969MVK2Qeg" - } - }, - { - "AuthAccount" : { - "Account" : "rBepJuTLFJt3WmtLXYAxSjtBWAeQxVbncv" - } - } - ], - "BidMax" : { - "currency" : "039C99CD9AB0B70B32ECDA51EAAE471625608EA2", - "issuer" : "rE54zDvgnghAoPopCgvtiqWNq3dU5y836S", - "value" : "100" - }, - "Fee" : "10", - "Flags" : 2147483648, - "Sequence" : 9, - "TransactionType" : "AMMBid" + { + "AuthAccount": { + "Account": "rBepJuTLFJt3WmtLXYAxSjtBWAeQxVbncv" + } + } + ], + "BidMax": { + "currency": "039C99CD9AB0B70B32ECDA51EAAE471625608EA2", + "issuer": "rE54zDvgnghAoPopCgvtiqWNq3dU5y836S", + "value": "100" + }, + "Fee": "10", + "Flags": 2147483648, + "Sequence": 9, + "TransactionType": "AMMBid" } ``` {% raw-partial file="/@l10n/ja/docs/_snippets/tx-fields-intro.md" /%} -| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | -|:---------------|:-----------|:------------|:------|:------------| -| `Asset` | オブジェクト | STIssue | はい | AMMのプールにある資産の一つを定義します。JSONでは、`currency`と`issuer`フィールドを持つオブジェクトになります(XRPの場合は`issuer`を省略します)。 | -| `Asset2` | オブジェクト | STIssue | はい | AMMのプールにあるもう一つのアセットの定義です。JSONでは、`currency`と`issuer`フィールドを持つオブジェクトになります(XRPの場合は`issuer`を省略します)。 | -| `BidMin` | [通貨額][] | Amount | いいえ | スロットに支払う最小の金額。この値を高く設定すると、他の人から競り落とされにくくなります。省略された場合は、落札に必要な最低額を支払います。 | -| `BidMax` | [通貨額][] | Amount | いいえ | スロットに支払う最大の金額。落札するためのコストがこの金額より高い場合、取引は失敗します。省略された場合は、落札に必要な金額を支払います。 | -| `AuthAccounts` | 配列 | Array | いいえ | 割引料金で取引を許可する最大4つの追加のアカウントのリスト。これには、トランザクション送信者のアドレスは含めることはできません。これらのオブジェクトはそれぞれ[Auth Accountオブジェクト](#auth-accountオブジェクト)である必要があります。. | +| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | +| :------------- | :----------- | :----------- | :----- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Asset` | オブジェクト | STIssue | はい | AMMのプールにある資産の一つを定義します。JSONでは、`currency`と`issuer`フィールドを持つオブジェクトになります(XRPの場合は`issuer`を省略します)。 | +| `Asset2` | オブジェクト | STIssue | はい | AMMのプールにあるもう一つのアセットの定義です。JSONでは、`currency`と`issuer`フィールドを持つオブジェクトになります(XRPの場合は`issuer`を省略します)。 | +| `BidMin` | [通貨額][] | Amount | いいえ | スロットに支払う最小の金額。この値を高く設定すると、他の人から競り落とされにくくなります。省略された場合は、落札に必要な最低額を支払います。 | +| `BidMax` | [通貨額][] | Amount | いいえ | スロットに支払う最大の金額。落札するためのコストがこの金額より高い場合、取引は失敗します。省略された場合は、落札に必要な金額を支払います。 | +| `AuthAccounts` | 配列 | Array | いいえ | 割引料金で取引を許可する最大4つの追加のアカウントのリスト。これには、トランザクション送信者のアドレスは含めることはできません。これらのオブジェクトはそれぞれ[Auth Accountオブジェクト](#auth-accountオブジェクト)である必要があります。. | ### Auth Accountオブジェクト `AuthAccounts` 配列の各メンバーは、以下のフィールドを持つオブジェクトである必要があります。 -| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | -|:---------------|:----------|:-------------|:-----|:------------| -| `Account` | 文字列 | AccountID | はい | 認可するアカウントのアドレス。 | +| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | +| :--------- | :------- | :----------- | :---- | :----------------------------- | +| `Account` | 文字列 | AccountID | はい | 認可するアカウントのアドレス。 | 配列に現れる他の「内部オブジェクト」と同様に、これらのオブジェクトのJSON表現は、オブジェクトタイプ`AuthAccount`のみをキーとするオブジェクトにラップされています。 @@ -78,36 +79,36 @@ AMMのLPトークンを使って落札すると、落札に利用したLPトー - オークションスロットが現在空であったり、期限切れ、または最後のインターバルである場合、**最低入札価格**は次のように定義されます。 - ```text - M = L * F / 25 - ``` + ```text + M = L * F / 25 + ``` - - `M`: 最低入札価格。 - - `L`: AMMによって現在発行されているLPトークンの総数。 - - `F`: 取引手数料。小数で表されます。 + - `M`: 最低入札価格。 + - `L`: AMMによって現在発行されているLPトークンの総数。 + - `F`: 取引手数料。小数で表されます。 - それ以外の場合、現在の保有者に落札価格は、以下の式で計算されます。 - ``` - P = B × 1.05 × (1 - t^60) + M - ``` + ``` + P = B × 1.05 × (1 - t^60) + M + ``` - - `P`: 落札価格。単位はLPトークン。 - - `B`: 現在の入札価格。単位はLPトークン。 - - `t`: 現在の24時間枠で経過した時間の割合。0.05の倍数に切り捨てられる。 - - `M`: Mは上記で定義された**最低入札価格**。 + - `P`: 落札価格。単位はLPトークン。 + - `B`: 現在の入札価格。単位はLPトークン。 + - `t`: 現在の24時間枠で経過した時間の割合。0.05の倍数に切り捨てられる。 + - `M`: Mは上記で定義された**最低入札価格**。 - 落札コストには、2つの特殊なケースがあります。誰かが落札してから**最初の時間枠**では、その落札価格は、最低入札価格+既存の入札価格の5%アップとなります。 + 落札コストには、2つの特殊なケースがあります。誰かが落札してから**最初の時間枠**では、その落札価格は、最低入札価格+既存の入札価格の5%アップとなります。 - ``` - P = B × 1.05 + M - ``` + ``` + P = B × 1.05 + M + ``` - スロットの**最後の時間枠**では、落札コストは最低入札額のみです。 + スロットの**最後の時間枠**では、落札コストは最低入札額のみです。 - ``` - P = M - ``` + ``` + P = M + ``` {% admonition type="info" name="注記" %}レジャーを作成する際に、ネットワーク上のすべてのサーバが同じ結果になるように、時間の計測は前回のレジャーの[正規の閉鎖時刻](../../../../concepts/ledgers/ledger-close-times.md)に基づいており、これはおおよその目安の時間です。{% /admonition %} @@ -127,19 +128,19 @@ R = B × (1 - t) {% admonition type="info" name="注記" %}XRP Ledgerの時刻と同様に、トランザクション処理では _前回の_ レジャーの[正規の閉鎖時刻](../../../../concepts/ledgers/ledger-close-times.md)を使用するため、実時間と最大で約10秒の差が生じる場合があります。{% /admonition %} - ## エラーケース + すべてのトランザクションで発生する可能性のあるエラーに加えて、{% $frontmatter.seo.title %}トランザクションでは、次の[トランザクション結果コード](../transaction-results/index.md)が発生する可能性があります。 -| エラーコード | 説明 | -|:------------------------|:---------------------------------------------| -| `tecAMM_EMPTY` | AMMのプールに資産がありません。この状態では、AMMを削除するか、新しい入金を行い資金を供給することしかできません。 | +| エラーコード | 説明 | +| :---------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `tecAMM_EMPTY` | AMMのプールに資産がありません。この状態では、AMMを削除するか、新しい入金を行い資金を供給することしかできません。 | | `tecAMM_FAILED` | このトランザクションでは、送信者が必要な入札額を支払うために十分なLPトークンを保有していないか、落札価格がトランザクションで指定された`BidMax`値より高いため、落札できませんでした。 | -| `tecAMM_INVALID_TOKENS` | このトランザクションの送信者は、スロット価格に見合うだけのLPトークンを保有していません。 | -| `temBAD_AMM_TOKENS` | 指定された`BidMin`または`BidMax`は、このAMMの正しいLPトークンではありません。 | -| `temDISABLED` | このネットワークでは、AMM機能が有効ではありません。 | -| `temMALFORMED` | トランザクションが無効なオプションを指定しました。例えば、`AuthAccounts`のリストが長すぎるなど。 | -| `terNO_ACCOUNT` | このリクエストで指定されたアカウントのいずれかが存在しません。 | -| `terNO_AMM` | このトランザクションの資産ペアの自動マーケットメーカーのインスタンスが存在しません。 | +| `tecAMM_INVALID_TOKENS` | このトランザクションの送信者は、スロット価格に見合うだけのLPトークンを保有していません。 | +| `temBAD_AMM_TOKENS` | 指定された`BidMin`または`BidMax`は、このAMMの正しいLPトークンではありません。 | +| `temDISABLED` | このネットワークでは、AMM機能が有効ではありません。 | +| `temMALFORMED` | トランザクションが無効なオプションを指定しました。例えば、`AuthAccounts`のリストが長すぎるなど。 | +| `terNO_ACCOUNT` | このリクエストで指定されたアカウントのいずれかが存在しません。 | +| `terNO_AMM` | このトランザクションの資産ペアの自動マーケットメーカーのインスタンスが存在しません。 | {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/transactions/types/ammclawback.md b/@l10n/ja/docs/references/protocol/transactions/types/ammclawback.md index 0c0a1d7d66..dc46e7c3c3 100644 --- a/@l10n/ja/docs/references/protocol/transactions/types/ammclawback.md +++ b/@l10n/ja/docs/references/protocol/transactions/types/ammclawback.md @@ -1,10 +1,11 @@ --- seo: - description: 自動マーケットメーカープールに発行済みトークンを預け入れた保有者から、トークンを回収する。 + description: 自動マーケットメーカープールに発行済みトークンを預け入れた保有者から、トークンを回収する。 labels: - AMM - Tokens --- + # AMMClawback [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/AMMClawback.cpp "ソース") @@ -13,10 +14,8 @@ labels: Clawbackはデフォルトで無効です。Clawbackを使用するには、[AccountSetトランザクション][]を送信して、**Allow Trust Line Clawback**設定を有効にする必要があります。すでにトークンが発行済みである発行者はClawbackを有効にできません。**Allow Trust Line Clawback**を有効にするには、トラストライン、オファー、エスクロー、ペイメントチャネル、チェック、署名者リストを設定する前に、所有者ディレクトリを完全に空にする必要があります。Clawbackを有効にした後は、元に戻すことはできません。つまり発行者アカウントは、トラストラインの発行済みトークンを回収できる権利を永続的に得ます。 - {% amendment-disclaimer name="AMMClawback" /%} - ## {% $frontmatter.seo.title %} JSONの例 ```json @@ -25,54 +24,50 @@ Clawbackはデフォルトで無効です。Clawbackを使用するには、[Acc "Account": "rPdYxU9dNkbzC5Y2h4jLbVJ3rMRrk7WVRL", "Holder": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", "Asset": { - "currency" : "FOO", - "issuer" : "rPdYxU9dNkbzC5Y2h4jLbVJ3rMRrk7WVRL" + "currency": "FOO", + "issuer": "rPdYxU9dNkbzC5Y2h4jLbVJ3rMRrk7WVRL" }, - "Asset2" : { - "currency" : "BAR", - "issuer" : "rHtptZx1yHf6Yv43s1RWffM3XnEYv3XhRg" + "Asset2": { + "currency": "BAR", + "issuer": "rHtptZx1yHf6Yv43s1RWffM3XnEYv3XhRg" }, "Amount": { - "currency" : "FOO", - "issuer" : "rPdYxU9dNkbzC5Y2h4jLbVJ3rMRrk7WVRL", - "value" : "1000" + "currency": "FOO", + "issuer": "rPdYxU9dNkbzC5Y2h4jLbVJ3rMRrk7WVRL", + "value": "1000" } } ``` - {% raw-partial file="/@l10n/ja/docs/_snippets/tx-fields-intro.md" /%} - -| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | -|:-----------|:----------------------|:-------------|:-------|:------------------| -| `Account` | 文字列 - [アドレス][] | AccountID | はい | 回収する資産の発行者。このトランザクションは、発行者のみが送信できます。 | -| `Asset` | オブジェクト | Issue | はい | AMMプールから回収したい資産を指定します。資産はXRP、トークン、またはMPT([金額なしの指定][]を参照)です。`issuer`フィールドは`Account`と一致していなければなりません。 | -| `Asset2` | オブジェクト | Issue | はい | AMMのプール内のもう一方の資産を指定します。資産はXRP、トークン、またはMPT([金額なしの指定][]を参照)です。 | +| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | +| :--------- | :-------------------- | :----------- | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Account` | 文字列 - [アドレス][] | AccountID | はい | 回収する資産の発行者。このトランザクションは、発行者のみが送信できます。 | +| `Asset` | オブジェクト | Issue | はい | AMMプールから回収したい資産を指定します。資産はXRP、トークン、またはMPT([金額なしの指定][]を参照)です。`issuer`フィールドは`Account`と一致していなければなりません。 | +| `Asset2` | オブジェクト | Issue | はい | AMMのプール内のもう一方の資産を指定します。資産はXRP、トークン、またはMPT([金額なしの指定][]を参照)です。 | | `Amount` | [通貨額][] | Amount | いいえ | AMMアカウントから回収する最大額を指定します。`currency`と`issuer`サブフィールドは`Asset`サブフィールドと一致していなければなりません。このフィールドが指定されていない場合、または`value`サブフィールドがAMMの保有者の利用可能なトークンを超えている場合、保有者のすべてのトークンが回収されます。 | -| `Holder` | 文字列 - [アドレス][] | AccountID | はい | 回収する資産を保有しているアカウント。 | - +| `Holder` | 文字列 - [アドレス][] | AccountID | はい | 回収する資産を保有しているアカウント。 | ## AMMClawbackのフラグ -| フラグ名 | Hex値 | 10進数値 | 説明 | -|-------------------|--------------|----------|-------------| +| フラグ名 | Hex値 | 10進数値 | 説明 | +| ----------------- | ------------ | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `tfClawTwoAssets` | `0x00000001` | 1 | `Asset`の指定額を回収し、AMMプールの資産比率に基づいて`Asset2`の対応する額を回収します。両方の資産は`Account`フィールドの発行者によって発行されなければなりません。このフラグが有効でない場合、発行者は`Asset`の指定された額を回収しますが、`Asset2`の対応する比率は`Holder`に返されます。 | - ## エラーのケース すべてのトランザクションで発生する可能性のあるエラーに加えて、`AMMClawback`トランザクションは以下の[トランザクション結果コード](../transaction-results/index.md)をもたらすことがあります。 -| エラーコード | 説明 | -|:-------------------|:------------| +| エラーコード | 説明 | +| :----------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `tecNO_PERMISSION` | `lsfAllowTrustlineClawback` フラグが有効になっていない状態で AMM からトークンを回収しようとした場合、または AMM で両方の資産を発行していない状態で `tfClawTwoAssets` フラグが有効になっている場合に発生します。また、`Asset` の発行者が `Account` と一致しない場合にも発生します。 | -| `tecAMM_BALANCE` | `Holder`がAMMプールのLPトークンを保有していない場合に発生します。 | -| `temDISABLED` | [AMMClawback amendment][]が有効になっていない場合に発生します。 | -| `temBAD_AMOUNT` | `AMMClawback`トランザクションの`Amount`フィールドが0以下の場合、または`currency`と`issuer`サブフィールドが`Amount`と`Asset`の間で一致しない場合に発生します。 | -| `temINVALID_FLAG` | `tfClawTwoAssets`以外のフラグを有効にしようとした場合に発生します。 | -| `temMALFORMED` | `issuer`サブフィールドが`Asset`と`Account`の間で一致しない場合、`Account`が`Holder`と同じ場合、または`Asset`がXRPの場合に発生します。 | -| `terNO_AMM` | `Asset`と`Asset2`で指定されたAMMプールが存在しない場合に発生します。 | +| `tecAMM_BALANCE` | `Holder`がAMMプールのLPトークンを保有していない場合に発生します。 | +| `temDISABLED` | [AMMClawback amendment][]が有効になっていない場合に発生します。 | +| `temBAD_AMOUNT` | `AMMClawback`トランザクションの`Amount`フィールドが0以下の場合、または`currency`と`issuer`サブフィールドが`Amount`と`Asset`の間で一致しない場合に発生します。 | +| `temINVALID_FLAG` | `tfClawTwoAssets`以外のフラグを有効にしようとした場合に発生します。 | +| `temMALFORMED` | `issuer`サブフィールドが`Asset`と`Account`の間で一致しない場合、`Account`が`Holder`と同じ場合、または`Asset`がXRPの場合に発生します。 | +| `terNO_AMM` | `Asset`と`Asset2`で指定されたAMMプールが存在しない場合に発生します。 | ## 関連項目 diff --git a/@l10n/ja/docs/references/protocol/transactions/types/ammcreate.md b/@l10n/ja/docs/references/protocol/transactions/types/ammcreate.md index 30f66737b1..846638be6c 100644 --- a/@l10n/ja/docs/references/protocol/transactions/types/ammcreate.md +++ b/@l10n/ja/docs/references/protocol/transactions/types/ammcreate.md @@ -2,11 +2,13 @@ html: ammcreate.html parent: transaction-types.html seo: - description: 指定された資産ペアを取引するための新しい自動マーケットメーカーを作成します。 + description: 指定された資産ペアを取引するための新しい自動マーケットメーカーを作成します。 labels: - AMM --- + # AMMCreate + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/AMMCreate.cpp "Source") {% amendment-disclaimer name="AMM" /%} @@ -21,28 +23,28 @@ AMMを表す[AMMエントリ][]と[特殊なAccountRootエントリ](../../ledge ```json { - "Account" : "rJVUeRqDFNs2xqA7ncVE6ZoAhPUoaJJSQm", - "Amount" : { - "currency" : "TST", - "issuer" : "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd", - "value" : "25" - }, - "Amount2" : "250000000", - "Fee" : "10", - "Flags" : 2147483648, - "Sequence" : 6, - "TradingFee" : 500, - "TransactionType" : "AMMCreate" + "Account": "rJVUeRqDFNs2xqA7ncVE6ZoAhPUoaJJSQm", + "Amount": { + "currency": "TST", + "issuer": "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd", + "value": "25" + }, + "Amount2": "250000000", + "Fee": "10", + "Flags": 2147483648, + "Sequence": 6, + "TradingFee": 500, + "TransactionType": "AMMCreate" } ``` {% raw-partial file="/@l10n/ja/docs/_snippets/tx-fields-intro.md" /%} -| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | -|:-------------|:----------|:-----------|:------|:------------| -| `Amount` | [通貨額][] | Amount | はい | このAMMの最初の資金となる2つの資産のうち、1つ目の資産です。これは正数である必要があります。 | -| `Amount2` | [通貨額][] | Amount | はい | このAMMの最初の資金となる2つの資産のうち、2つ目の資産です。これは正数である必要があります。 | -| `TradingFee` | 数値 | UInt16 | はい | このAMMインスタンスに対する取引に課される手数料を1/100,000単位で指定します(値1は0.001%に相当)。最大値は`1000`で、1%の手数料を意味します。最小値は `0`です。 | +| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | +| :----------- | :--------- | :----------- | :---- | :------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `Amount` | [通貨額][] | Amount | はい | このAMMの最初の資金となる2つの資産のうち、1つ目の資産です。これは正数である必要があります。 | +| `Amount2` | [通貨額][] | Amount | はい | このAMMの最初の資金となる2つの資産のうち、2つ目の資産です。これは正数である必要があります。 | +| `TradingFee` | 数値 | UInt16 | はい | このAMMインスタンスに対する取引に課される手数料を1/100,000単位で指定します(値1は0.001%に相当)。最大値は`1000`で、1%の手数料を意味します。最小値は `0`です。 | `Amount`と`Amount2`の一方または両方は[トークン](../../../../concepts/tokens/index.md)であり、最大でどちらか一方を[XRP](../../../../introduction/what-is-xrp.md)にすることが可能です。通貨コードと発行者が同じものは使用できません。AMMのLPトークンは、別のAMMの資産の1つとして使用することができます。トークンの発行者は[Default Ripple](../../../../concepts/tokens/fungible-tokens/rippling.md#defaultrippleフラグ)を有効にしていなければなりません。AMMのLPトークンは、別のAMMの資産の一つとして使用することはできません。 @@ -54,19 +56,19 @@ AMMを表す[AMMエントリ][]と[特殊なAccountRootエントリ](../../ledge すべてのトランザクションで発生する可能性のあるエラーに加えて、{% $frontmatter.seo.title %}トランザクションでは、次の[トランザクション結果コード](../transaction-results/index.md)が発生する可能性があります。 -| エラーコード | 説明 | -|:--------------------|:---------------------------------------------| -| `tecAMM_INVALID_TOKENS` | `Amount`または`Amount2`が、このAMMのLPトークンと同じ通貨コードを使用しています。(これが起こることは稀です。) | -| `tecDUPLICATE` | この通貨ペアを扱っているAMMが既に存在しています。 | -| `tecFROZEN` | 資産(`Amount`または`Amount2`)の少なくとも1つが現在[フリーズ](../../../../concepts/tokens/fungible-tokens/freezes.md)されています。 | +| エラーコード | 説明 | +| :---------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `tecAMM_INVALID_TOKENS` | `Amount`または`Amount2`が、このAMMのLPトークンと同じ通貨コードを使用しています。(これが起こることは稀です。) | +| `tecDUPLICATE` | この通貨ペアを扱っているAMMが既に存在しています。 | +| `tecFROZEN` | 資産(`Amount`または`Amount2`)の少なくとも1つが現在[フリーズ](../../../../concepts/tokens/fungible-tokens/freezes.md)されています。 | | `tecINSUF_RESERVE_LINE` | 送信者は、このトランザクションを処理するための[準備金要件](../../../../concepts/accounts/reserves.md)を満たしていません。おそらく、LPトークンを保持するための新しいトラストラインが必要で、新しいトラストラインの所有者準備金を満たす十分なXRPを持っていないためです。 | -| `tecNO_AUTH` | 送信者は資産(`Amount`または`Amount2`)のいずれかを保有する権限がありません。 | -| `tecNO_LINE` | 送信者は資産(`Amount`または`Amount2`)のうちいずれか1つに対するトラストラインを保有していません。 | -| `tecNO_PERMISSION` | 少なくとも1つの入金資産はAMMで使用できません。 | -| `tecUNFUNDED_AMM` | 送信者は`Amount`と`Amount2`で指定された金額をAMMに入金するための十分な資金を保有していません。 | -| `terNO_RIPPLE` | 少なくとも1つの資産の発行者が[Default Rippleフラグ](../../../../concepts/tokens/fungible-tokens/rippling.md#defaultrippleフラグ)を有効にしていません。 | -| `temAMM_BAD_TOKENS` | `Amount`と`Amount2`値が正しくありません。例えば、両方とも同じトークンを参照している場合です。 | -| `temBAD_FEE` | `TradingFee`の値が不正です。ゼロまたは正の整数でなければならず、1000を超えることはできません。 | -| `temDISABLED` | このネットワークでは、AMM機能が無効になっています。 | +| `tecNO_AUTH` | 送信者は資産(`Amount`または`Amount2`)のいずれかを保有する権限がありません。 | +| `tecNO_LINE` | 送信者は資産(`Amount`または`Amount2`)のうちいずれか1つに対するトラストラインを保有していません。 | +| `tecNO_PERMISSION` | 少なくとも1つの入金資産はAMMで使用できません。 | +| `tecUNFUNDED_AMM` | 送信者は`Amount`と`Amount2`で指定された金額をAMMに入金するための十分な資金を保有していません。 | +| `terNO_RIPPLE` | 少なくとも1つの資産の発行者が[Default Rippleフラグ](../../../../concepts/tokens/fungible-tokens/rippling.md#defaultrippleフラグ)を有効にしていません。 | +| `temAMM_BAD_TOKENS` | `Amount`と`Amount2`値が正しくありません。例えば、両方とも同じトークンを参照している場合です。 | +| `temBAD_FEE` | `TradingFee`の値が不正です。ゼロまたは正の整数でなければならず、1000を超えることはできません。 | +| `temDISABLED` | このネットワークでは、AMM機能が無効になっています。 | {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/transactions/types/ammdelete.md b/@l10n/ja/docs/references/protocol/transactions/types/ammdelete.md index 0d440014e4..bb257bb815 100644 --- a/@l10n/ja/docs/references/protocol/transactions/types/ammdelete.md +++ b/@l10n/ja/docs/references/protocol/transactions/types/ammdelete.md @@ -2,11 +2,13 @@ html: ammdelete.html parent: transaction-types.html seo: - description: 空のプールを持つ自動マーケットメーカーのインスタンスを削除します。 + description: 空のプールを持つ自動マーケットメーカーのインスタンスを削除します。 labels: - AMM --- + # AMMDelete + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/AMMDelete.cpp "Source") {% amendment-disclaimer name="AMM" /%} @@ -15,42 +17,40 @@ labels: 通常、[AMMWithdrawトランザクション][]は、AMMのプールからすべての資産を引き出すと、AMMと関連するすべてのレジャーエントリを自動的に削除します。ただし、AMMアカウントへのトラストラインが多すぎて1回のトランザクションで削除できない場合は、AMMの削除を行わない場合があります。しかしこの場合でも、AMMDeleteトランザクションは最大512のトラストラインを削除します。すべてのトラストラインとそのAMMを削除するには、数回のAMMDeleteトランザクションが必要な場合があります。いずれの場合も、AMMとAccountRootのレジャーエントリが削除されるのは、最後のトランザクションのみです。 - ## {% $frontmatter.seo.title %} JSONの例 ```json { - "Account" : "rJVUeRqDFNs2xqA7ncVE6ZoAhPUoaJJSQm", - "Asset" : { - "currency" : "XRP" - }, - "Asset2" : { - "currency" : "TST", - "issuer" : "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd" - }, - "Fee" : "10", - "Flags" : 0, - "Sequence" : 9, - "TransactionType" : "AMMDelete" + "Account": "rJVUeRqDFNs2xqA7ncVE6ZoAhPUoaJJSQm", + "Asset": { + "currency": "XRP" + }, + "Asset2": { + "currency": "TST", + "issuer": "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd" + }, + "Fee": "10", + "Flags": 0, + "Sequence": 9, + "TransactionType": "AMMDelete" } ``` {% raw-partial file="/@l10n/ja/docs/_snippets/tx-fields-intro.md" /%} -| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | -|:---------|:-----------|:-----------|:------|:----| -| `Asset` | オブジェクト | STIssue | はい | AMMのプールにある資産の一つを定義します。JSONでは、`currency`と`issuer`フィールドを持つオブジェクトになります(XRPの場合は`issuer`を省略します)。 | -| `Asset2` | オブジェクト | STIssue | はい | AMMのプールにあるもう一つの資産を定義します。JSONでは、`currency`と`issuer`フィールドを持つオブジェクトです(XRPの場合は`issuer`を省略)。 | - +| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | +| :--------- | :----------- | :----------- | :---- | :------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Asset` | オブジェクト | STIssue | はい | AMMのプールにある資産の一つを定義します。JSONでは、`currency`と`issuer`フィールドを持つオブジェクトになります(XRPの場合は`issuer`を省略します)。 | +| `Asset2` | オブジェクト | STIssue | はい | AMMのプールにあるもう一つの資産を定義します。JSONでは、`currency`と`issuer`フィールドを持つオブジェクトです(XRPの場合は`issuer`を省略)。 | ## エラーケース AMMCreateトランザクションでは、すべてのトランザクションで発生する可能性のあるエラーの他に、以下の[トランザクション結果コード](../transaction-results/index.md)が発生する可能性があります。 -| エラーコード | 説明 | -|:--------------------|:---------------------------------------------| -| `tecAMM_NOT_EMPTY` | AMMが空でないため、削除することができません。AMMの流動性プロバイダーの一人である場合は、まず[AMMWithdraw][]を使用してください。 | -| `tecINCOMPLETE` | 関連するレジャーエントリを可能な限り削除しましたが、AMM は完全には削除されませんでした。別の AMMDelete トランザクションを送信して、作業を続行し、完了させることができます。 | -| `terNO_AMM` | 指定したAMMが存在しません。(すでに削除されているか、指定したAMMの資産が間違っている可能性があります)。| +| エラーコード | 説明 | +| :----------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `tecAMM_NOT_EMPTY` | AMMが空でないため、削除することができません。AMMの流動性プロバイダーの一人である場合は、まず[AMMWithdraw][]を使用してください。 | +| `tecINCOMPLETE` | 関連するレジャーエントリを可能な限り削除しましたが、AMM は完全には削除されませんでした。別の AMMDelete トランザクションを送信して、作業を続行し、完了させることができます。 | +| `terNO_AMM` | 指定したAMMが存在しません。(すでに削除されているか、指定したAMMの資産が間違っている可能性があります)。 | {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/transactions/types/ammdeposit.md b/@l10n/ja/docs/references/protocol/transactions/types/ammdeposit.md index 1222a02719..1872b0f4f1 100644 --- a/@l10n/ja/docs/references/protocol/transactions/types/ammdeposit.md +++ b/@l10n/ja/docs/references/protocol/transactions/types/ammdeposit.md @@ -2,11 +2,13 @@ html: ammdeposit.html parent: transaction-types.html seo: - description: 自動マーケットメーカーに資金を預け、LPTokenを受け取ります。 + description: 自動マーケットメーカーに資金を預け、LPTokenを受け取ります。 labels: - AMM --- + # AMMDeposit + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/AMMDeposit.cpp "Source") [自動マーケットメーカー](../../../../concepts/tokens/decentralized-exchange/automated-market-makers.md)(AMM)インスタンスに資金を預け、AMMの流動性プロバイダートークン( _LPトークン_ )を受け取ります。AMMのプールにある資産の一方または両方を預けることができます。 @@ -15,9 +17,10 @@ labels: {% admonition type="info" name="注記" %} 次の場合、いずれの資産もAMMに預けることはできません。 + - AMMのプールにある資産の一方または両方がトークン発行者によって[フリーズ](../../../../concepts/tokens/fungible-tokens/freezes.md)されている - AMMのプールにある資産の一方または両方を保有する権限がない -{% /admonition %} + {% /admonition %} {% amendment-disclaimer name="AMM" /%} @@ -25,24 +28,24 @@ labels: ```json { - "Account" : "rJVUeRqDFNs2xqA7ncVE6ZoAhPUoaJJSQm", - "Amount" : { - "currency" : "TST", - "issuer" : "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd", - "value" : "2.5" - }, - "Amount2" : "30000000", - "Asset" : { - "currency" : "TST", - "issuer" : "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd" - }, - "Asset2" : { - "currency" : "XRP" - }, - "Fee" : "10", - "Flags" : 1048576, - "Sequence" : 7, - "TransactionType" : "AMMDeposit" + "Account": "rJVUeRqDFNs2xqA7ncVE6ZoAhPUoaJJSQm", + "Amount": { + "currency": "TST", + "issuer": "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd", + "value": "2.5" + }, + "Amount2": "30000000", + "Asset": { + "currency": "TST", + "issuer": "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd" + }, + "Asset2": { + "currency": "XRP" + }, + "Fee": "10", + "Flags": 1048576, + "Sequence": 7, + "TransactionType": "AMMDeposit" } ``` @@ -50,16 +53,15 @@ labels: {% raw-partial file="/@l10n/ja/docs/_snippets/tx-fields-intro.md" /%} -| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | -|:--------------|:-------------|:-------------|:-------|:------------| -| `Asset` | オブジェクト | STIssue | はい | AMMのプールにある資産の一つを定義します。JSONでは、`currency`と`issuer`フィールドを持つオブジェクトになります(XRPの場合は`issuer`を省略します)。 | -| `Asset2` | オブジェクト | STIssue | はい | AMMのプールにあるもう一つの資産を定義します。JSONでは、`currency`と`issuer`フィールドを持つオブジェクトになります(XRPの場合は`issuer`を省略します)。 | -| `Amount` | [通貨額][] | Amount | いいえ | AMMに預ける1つの資産の量を指定します。存在する場合、これはAMMのプールにある資産の一つ(トークンまたはXRP)と一致する必要があります。 | -| `Amount2` | [通貨額][] | Amount | いいえ | AMMに追加する別の資産の量を指定します。存在する場合、これはAMMのプール内の他の資産と一致する必要があり、`Amount`と同じ資産にすることはできません。 | -| `EPrice` | [通貨額][] | Amount | いいえ | 受け取った各LPトークンに支払う、預け入れ資産の最大有効価格です。 | -| `LPTokenOut` | [通貨額][] | Amount | いいえ | AMMのLPトークンの購入数量。 | -| `TradingFee` | 数値 | UInt16 | いいえ | AMMプールの取引手数料を1/100,000の単位で投票します。1は0.001%に相当します。最大値は1000で、1%の手数料を示します。 | - +| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | +| :----------- | :----------- | :----------- | :----- | :----------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Asset` | オブジェクト | STIssue | はい | AMMのプールにある資産の一つを定義します。JSONでは、`currency`と`issuer`フィールドを持つオブジェクトになります(XRPの場合は`issuer`を省略します)。 | +| `Asset2` | オブジェクト | STIssue | はい | AMMのプールにあるもう一つの資産を定義します。JSONでは、`currency`と`issuer`フィールドを持つオブジェクトになります(XRPの場合は`issuer`を省略します)。 | +| `Amount` | [通貨額][] | Amount | いいえ | AMMに預ける1つの資産の量を指定します。存在する場合、これはAMMのプールにある資産の一つ(トークンまたはXRP)と一致する必要があります。 | +| `Amount2` | [通貨額][] | Amount | いいえ | AMMに追加する別の資産の量を指定します。存在する場合、これはAMMのプール内の他の資産と一致する必要があり、`Amount`と同じ資産にすることはできません。 | +| `EPrice` | [通貨額][] | Amount | いいえ | 受け取った各LPトークンに支払う、預け入れ資産の最大有効価格です。 | +| `LPTokenOut` | [通貨額][] | Amount | いいえ | AMMのLPトークンの購入数量。 | +| `TradingFee` | 数値 | UInt16 | いいえ | AMMプールの取引手数料を1/100,000の単位で投票します。1は0.001%に相当します。最大値は1000で、1%の手数料を示します。 | ### AMMDepositモード @@ -70,34 +72,32 @@ labels: 以下の項目の組み合わせは、**ダブルアセット入金**について示しています。 -| フラグ名 | フラグ値 | 指定フィールド | 意味 | -|---------------------|--------------|---------------------|---------| -| `tfLPToken` | `0x00010000` | `LPTokenOut`のみ | 指定された量のLPトークンを受け取るようにこのAMMの2つの資産を預けます。預ける金額は、AMMの保有する2つの資産の割合と等しくなります。 | +| フラグ名 | フラグ値 | 指定フィールド | 意味 | +| ------------------- | ------------ | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `tfLPToken` | `0x00010000` | `LPTokenOut`のみ | 指定された量のLPトークンを受け取るようにこのAMMの2つの資産を預けます。預ける金額は、AMMの保有する2つの資産の割合と等しくなります。 | | `tfTwoAsset` | `0x00100000` | `Amount`と`Amount2` | このAMMの両資産を指定した金額まで預けます。実際に預ける金額は、AMMがすでに保有している資産と同じ割合を維持する必要があるため、どちらか一方の預け入れ金額が指定金額より少なくてもかまいません。得られるLPトークンの金額は、預けた金額の合計から算出されます。 | -| `tfTwoAssetIfEmpty` | `0x00800000` | `Amount`と`Amount2` | プールが空のAMMに、このAMMの資産を指定した金額預け入れます。得られるLPトークンの量は、預け入れた合計額から算出されます。 | +| `tfTwoAssetIfEmpty` | `0x00800000` | `Amount`と`Amount2` | プールが空のAMMに、このAMMの資産を指定した金額預け入れます。得られるLPトークンの量は、預け入れた合計額から算出されます。 | 以下の項目の組み合わせは、**シングルアセット入金**について示しています。 -| フラグ名 | フラグ値 | 指定フィールド | 意味 | -|---------------------|--------------|------------------------|---------| -| `tfSingleAsset` | `0x00080000` | `Amount`のみ | 指定の資産を指定の量だけ預け、その結果得られたプールのシェアに応じた量のLPトークンを受け取ります。(手数料を差し引いた金額) | -| `tfOneAssetLPToken` | `0x00200000` | `Amount`と`LPTokenOut` | 1つの資産を指定された上限額まで預け、対価として指定金額分のLPトークンを受け取ります。(手数料を差し引いた金額) | +| フラグ名 | フラグ値 | 指定フィールド | 意味 | +| ------------------- | ------------ | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------ | +| `tfSingleAsset` | `0x00080000` | `Amount`のみ | 指定の資産を指定の量だけ預け、その結果得られたプールのシェアに応じた量のLPトークンを受け取ります。(手数料を差し引いた金額) | +| `tfOneAssetLPToken` | `0x00200000` | `Amount`と`LPTokenOut` | 1つの資産を指定された上限額まで預け、対価として指定金額分のLPトークンを受け取ります。(手数料を差し引いた金額) | | `tfLimitLPToken` | `0x00400000` | `Amount`と`EPrice` | 1つの資産を指定された金額まで預けますが、LPトークン1つにつき指定された有効価格(手数料差引後)を超えて預けることはありません。 | これ以外のフィールドとフラグの組み合わせは無効です。 - ### シングルアセット入金の手数料 - シングルアセット入金の手数料は、AMMを使って預け入れ金額の一部を他の資産と交換し、結果的にダブルアセット入金を行った場合と同じになるように計算されます。AMMの取引手数料は、一部の資産の交換に必要な金額には適用されますが、残りの預け入れ金額には適用されません。 _例えば、AMMの資産プールがUSDとEURで完全に均等に分割されている場合、100USDを預けようとすると、受け取るLPトークンの量は、50EUR+50USDを預けた場合よりもわずかに少なくなります。_ +シングルアセット入金の手数料は、AMMを使って預け入れ金額の一部を他の資産と交換し、結果的にダブルアセット入金を行った場合と同じになるように計算されます。AMMの取引手数料は、一部の資産の交換に必要な金額には適用されますが、残りの預け入れ金額には適用されません。 _例えば、AMMの資産プールがUSDとEURで完全に均等に分割されている場合、100USDを預けようとすると、受け取るLPトークンの量は、50EUR+50USDを預けた場合よりもわずかに少なくなります。_ - ダブルアセット入金の場合、LPトークンを受け取る数は、以下の計算式で算出できます。 +ダブルアセット入金の場合、LPトークンを受け取る数は、以下の計算式で算出できます。 + +[{% inline-svg file="/docs/img/amm-single-asset-deposit-formula.svg" /%}](/docs/img/amm-single-asset-deposit-formula.svg 'L = T × ( (( 1 + (B - (F × (1 - W) × B)) ÷ P)^W) - 1)') -[{% inline-svg file="/docs/img/amm-single-asset-deposit-formula.svg" /%}](/docs/img/amm-single-asset-deposit-formula.svg "L = T × ( (( 1 + (B - (F × (1 - W) × B)) ÷ P)^W) - 1)") - - - `L`: 受け取るLPトークンの量 - `T`: 預け入れ前のLPトークンの残高合計 - `B`: 預け入れ資産の額 @@ -105,7 +105,6 @@ labels: - `W`: プール内の預金資産の重みです。これはすべてのAMMプールで0.5と定義されています(50/50の分割を意味します)ので、Wによる累乗は平方根を取ることと同一です。 - `P`: 預け入れ前のプール内の預金資産の合計額 - ### 空のAMMの場合の特殊なケース 場合によっては、プール内に資産がない状態で AMM が存在することがあります。このような状態の AMM には通常の入金を行うことができません。なぜなら資産間の比率が未定義 (0/0) だからです。その代わりに、フラグ `tfTwoAssetIfEmpty` と両方の資産の正確な金額を指定した“空AMM”への特殊な入金を行うことができます。これはAMMを作成する[AMMCreateトランザクション][]が行うのと同じように、資産間の比率を直接設定します。ダブルアセット入金と同様に、これは手数料を徴収されません。 @@ -116,35 +115,34 @@ AMMが空の場合のみ、「空のAMM」への特別な入金を行うこと AMMDepositトランザクションは、以下のような[`Flags`フィールド](../common-fields.md#flagsフィールド)の値をサポートしています。 -| フラグ名 | 16進数値 | 10進数値 | 説明 | -|:--------------------|:-------------|:--------------|:----------------------| -| `tfLPToken` | `0x00010000` | 65536 | ダブルアセット入金を行い、指定された額のLPトークンを受け取ります。 | -| `tfSingleAsset` | `0x00080000` | 524288 | 預け入れる資産を指定して、シングルアセット入金を行います。 | -| `tfTwoAsset` | `0x00100000` | 1048576 | 両資産を指定金額で預けるダブルアセット入金を行います。 | -| `tfOneAssetLPToken` | `0x00200000` | 2097152 | シングルアセット入金を行い、指定された額のLPトークンを受け取ります。 | -| `tfLimitLPToken` | `0x00400000` | 4194304 | 有効価格を指定して、シングルアセット入金を行います。 | -| `tfTwoAssetIfEmpty` | `0x00800000` | 8388608 | 空のプールを持つAMMに特別なダブルアセット入金を行います。 | +| フラグ名 | 16進数値 | 10進数値 | 説明 | +| :------------------ | :----------- | :------- | :------------------------------------------------------------------- | +| `tfLPToken` | `0x00010000` | 65536 | ダブルアセット入金を行い、指定された額のLPトークンを受け取ります。 | +| `tfSingleAsset` | `0x00080000` | 524288 | 預け入れる資産を指定して、シングルアセット入金を行います。 | +| `tfTwoAsset` | `0x00100000` | 1048576 | 両資産を指定金額で預けるダブルアセット入金を行います。 | +| `tfOneAssetLPToken` | `0x00200000` | 2097152 | シングルアセット入金を行い、指定された額のLPトークンを受け取ります。 | +| `tfLimitLPToken` | `0x00400000` | 4194304 | 有効価格を指定して、シングルアセット入金を行います。 | +| `tfTwoAssetIfEmpty` | `0x00800000` | 8388608 | 空のプールを持つAMMに特別なダブルアセット入金を行います。 | これらのフラグのうちの**1つのみ**と、任意の[グローバルフラグ](../common-fields.md#グローバルフラグ)を指定する必要があります。 - ## エラーケース すべてのトランザクションで発生する可能性のあるエラーに加えて、{% $frontmatter.seo.title %}トランザクションでは、次の[トランザクション結果コード](../transaction-results/index.md)が発生する可能性があります。 -| エラーコード | 説明 | -|:------------------------|:---------------------------------------------| -| `tecAMM_EMPTY` | 現在、AMM は資産を保有していないため、通常の入金はできません。代わりに、空のAMMの場合の特殊な入金を行う必要があります。 | -| `tecAMM_NOT_EMPTY` | トランザクションで`tfTwoAssetIfEmpty`が指定されましたが、AMMは空ではありませんでした。 | -| `tecAMM_FAILED` | 預け入れの条件が成立しませんでした。例えば、`EPrice`フィールドに指定された実効価格が低すぎる場合など。 | -| `tecFROZEN` | トランザクションは[フリーズ](../../../../concepts/tokens/fungible-tokens/freezes.md)されているトークンを預けようとした、またはプール内の資産の少なくとも1つがフリーズされています。 | +| エラーコード | 説明 | +| :---------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `tecAMM_EMPTY` | 現在、AMM は資産を保有していないため、通常の入金はできません。代わりに、空のAMMの場合の特殊な入金を行う必要があります。 | +| `tecAMM_NOT_EMPTY` | トランザクションで`tfTwoAssetIfEmpty`が指定されましたが、AMMは空ではありませんでした。 | +| `tecAMM_FAILED` | 預け入れの条件が成立しませんでした。例えば、`EPrice`フィールドに指定された実効価格が低すぎる場合など。 | +| `tecFROZEN` | トランザクションは[フリーズ](../../../../concepts/tokens/fungible-tokens/freezes.md)されているトークンを預けようとした、またはプール内の資産の少なくとも1つがフリーズされています。 | | `tecINSUF_RESERVE_LINE` | このトランザクションの送信者は、この処理による[準備金要件](../../../../concepts/accounts/reserves.md)の増加の対象であり、LPトークンを保持するための新しいトラストラインが必要で、そのための追加の所有者準備金分のXRPを保有していないためと思われます。 | -| `tecUNFUNDED_AMM` | 送信者の残高が、指定された預け入れを行うのに十分な量ではありません。 | -| `temBAD_AMM_TOKENS` | トランザクションでLPトークンを指定しましたが、`issuer`がAMMに紐づくAccountアドレスではない、または`currency`がこのAMMのLPトークンの通貨コードではない、またはトランザクションでこのAMMのLPトークンをAssetフィールドのいずれかに指定しました。 | -| `temBAD_AMOUNT` | トランザクションで指定された金額が無効です。例えば、金額がマイナスなど。 | -| `temBAD_FEE` | トランザクションで指定された手数料の値が無効です。例えば、取引手数料が許容範囲外など。 | -| `temMALFORMED` | トランザクションで無効なフィールドの組み合わせが指定されました。詳細は、[AMMDepositモード](#ammdepositモード)をご覧ください。 | -| `terNO_ACCOUNT` | リクエストで参照されたいずれかのアカウントが存在しません。 | -| `terNO_AMM` | このトランザクションの資産ペアの自動マーケットメーカーインスタンスが存在しません。 | +| `tecUNFUNDED_AMM` | 送信者の残高が、指定された預け入れを行うのに十分な量ではありません。 | +| `temBAD_AMM_TOKENS` | トランザクションでLPトークンを指定しましたが、`issuer`がAMMに紐づくAccountアドレスではない、または`currency`がこのAMMのLPトークンの通貨コードではない、またはトランザクションでこのAMMのLPトークンをAssetフィールドのいずれかに指定しました。 | +| `temBAD_AMOUNT` | トランザクションで指定された金額が無効です。例えば、金額がマイナスなど。 | +| `temBAD_FEE` | トランザクションで指定された手数料の値が無効です。例えば、取引手数料が許容範囲外など。 | +| `temMALFORMED` | トランザクションで無効なフィールドの組み合わせが指定されました。詳細は、[AMMDepositモード](#ammdepositモード)をご覧ください。 | +| `terNO_ACCOUNT` | リクエストで参照されたいずれかのアカウントが存在しません。 | +| `terNO_AMM` | このトランザクションの資産ペアの自動マーケットメーカーインスタンスが存在しません。 | {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/transactions/types/ammvote.md b/@l10n/ja/docs/references/protocol/transactions/types/ammvote.md index b5ef112769..8ac6407a36 100644 --- a/@l10n/ja/docs/references/protocol/transactions/types/ammvote.md +++ b/@l10n/ja/docs/references/protocol/transactions/types/ammvote.md @@ -2,11 +2,13 @@ html: ammvote.html parent: transaction-types.html seo: - description: 自動マーケットメーカーインスタンスの取引手数料へ投票する。 + description: 自動マーケットメーカーインスタンスの取引手数料へ投票する。 labels: - AMM --- + # AMMVote + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/AMMVote.cpp "Source") [自動マーケットメーカー](../../../../concepts/tokens/decentralized-exchange/automated-market-makers.md)インスタンスの取引手数料を投票します。最大8つのアカウントが、保有するAMMのLPトークンの量に比例して投票することができます。投票を行うごとには、投票の加重平均に基づいてAMMの取引手数料が再計算されます。 @@ -17,19 +19,19 @@ labels: ```json { - "Account" : "rJVUeRqDFNs2xqA7ncVE6ZoAhPUoaJJSQm", - "Asset" : { - "currency" : "XRP" - }, - "Asset2" : { - "currency" : "TST", - "issuer" : "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd" - }, - "Fee" : "10", - "Flags" : 2147483648, - "Sequence" : 8, - "TradingFee" : 600, - "TransactionType" : "AMMVote" + "Account": "rJVUeRqDFNs2xqA7ncVE6ZoAhPUoaJJSQm", + "Asset": { + "currency": "XRP" + }, + "Asset2": { + "currency": "TST", + "issuer": "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd" + }, + "Fee": "10", + "Flags": 2147483648, + "Sequence": 8, + "TradingFee": 600, + "TransactionType": "AMMVote" } ``` @@ -37,22 +39,22 @@ labels: {% raw-partial file="/@l10n/ja/docs/_snippets/tx-fields-intro.md" /%} -| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | -|:-------------|:-----------|:-----------|:-----|:------------| -| `Asset` | オブジェクト | STIssue | はい | AMMのプールにある資産の一つを定義します。JSONでは、`currency`と`issuer`フィールドを持つオブジェクトになります(XRPの場合は`issuer`を省略します)。 | -| `Asset2` | オブジェクト | STIssue | はい | AMMのプールにあるもう一つの資産を定義します。JSONでは、`currency`と`issuer`フィールドを持つオブジェクトになります(XRPの場合は`issuer`を省略します)。| -| `TradingFee` | 数値 | UInt16 | はい | 投票に必要な手数料を1/100,000の単位で指定します。値1は0.001%を表します。最大値は1000で、1%の手数料を表します。 | +| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | +| :----------- | :----------- | :----------- | :---- | :----------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Asset` | オブジェクト | STIssue | はい | AMMのプールにある資産の一つを定義します。JSONでは、`currency`と`issuer`フィールドを持つオブジェクトになります(XRPの場合は`issuer`を省略します)。 | +| `Asset2` | オブジェクト | STIssue | はい | AMMのプールにあるもう一つの資産を定義します。JSONでは、`currency`と`issuer`フィールドを持つオブジェクトになります(XRPの場合は`issuer`を省略します)。 | +| `TradingFee` | 数値 | UInt16 | はい | 投票に必要な手数料を1/100,000の単位で指定します。値1は0.001%を表します。最大値は1000で、1%の手数料を表します。 | ## エラーケース すべてのトランザクションで発生する可能性のあるエラーに加えて、{% $frontmatter.seo.title %}トランザクションでは、次の[トランザクション結果コード](../transaction-results/index.md)が発生する可能性があります。 -| エラーコード | 説明 | -|:------------------------|:---------------------------------------------| +| エラーコード | 説明 | +| :---------------------- | :--------------------------------------------------------------------------------------------------------------- | | `tecAMM_EMPTY` | AMMのプールに資産がありません。この状態では、AMMを削除するか、新しい入金を行い資金を供給することしかできません。 | -| `tecAMM_INVALID_TOKENS` | 送信者は、このAMMのLPトークンを保有していないため、投票することができません。 | -| `tecAMM_FAILED_VOTE` | このトランザクションの送信者よりも多くのLPトークンを保有しているアカウントからの投票が既に8件存在しています。 | -| `temBAD_FEE` | このトランザクションの`TradingFee`は正しくありません。 | -| `terNO_AMM` | このトランザクションの資産ペアの自動マーケットメーカー インスタンスが存在しません。 | +| `tecAMM_INVALID_TOKENS` | 送信者は、このAMMのLPトークンを保有していないため、投票することができません。 | +| `tecAMM_FAILED_VOTE` | このトランザクションの送信者よりも多くのLPトークンを保有しているアカウントからの投票が既に8件存在しています。 | +| `temBAD_FEE` | このトランザクションの`TradingFee`は正しくありません。 | +| `terNO_AMM` | このトランザクションの資産ペアの自動マーケットメーカー インスタンスが存在しません。 | {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/transactions/types/ammwithdraw.md b/@l10n/ja/docs/references/protocol/transactions/types/ammwithdraw.md index 9ceeeae7c8..c8359db96e 100644 --- a/@l10n/ja/docs/references/protocol/transactions/types/ammwithdraw.md +++ b/@l10n/ja/docs/references/protocol/transactions/types/ammwithdraw.md @@ -2,11 +2,13 @@ html: ammwithdraw.html parent: transaction-types.html seo: - description: LPトークを自動マーケットメーカーに返却し、プールが保有する資産の一部と引き換えマス。 + description: LPトークを自動マーケットメーカーに返却し、プールが保有する資産の一部と引き換えマス。 labels: - AMM --- + # AMMWithdraw + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/AMMWithdraw.cpp "Source") AMMの流動性プロバイダトークン(LPトークン)を返却することで、[自動マーケットメーカー](../../../../concepts/tokens/decentralized-exchange/automated-market-makers.md)(AMM)インスタンスから資産を引き出します。 @@ -17,24 +19,24 @@ AMMの流動性プロバイダトークン(LPトークン)を返却するこ ```json { - "Account" : "rJVUeRqDFNs2xqA7ncVE6ZoAhPUoaJJSQm", - "Amount" : { - "currency" : "TST", - "issuer" : "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd", - "value" : "5" - }, - "Amount2" : "50000000", - "Asset" : { - "currency" : "TST", - "issuer" : "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd" - }, - "Asset2" : { - "currency" : "XRP" - }, - "Fee" : "10", - "Flags" : 1048576, - "Sequence" : 10, - "TransactionType" : "AMMWithdraw" + "Account": "rJVUeRqDFNs2xqA7ncVE6ZoAhPUoaJJSQm", + "Amount": { + "currency": "TST", + "issuer": "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd", + "value": "5" + }, + "Amount2": "50000000", + "Asset": { + "currency": "TST", + "issuer": "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd" + }, + "Asset2": { + "currency": "XRP" + }, + "Fee": "10", + "Flags": 1048576, + "Sequence": 10, + "TransactionType": "AMMWithdraw" } ``` @@ -42,14 +44,14 @@ AMMの流動性プロバイダトークン(LPトークン)を返却するこ {% raw-partial file="/@l10n/ja/docs/_snippets/tx-fields-intro.md" /%} -| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | -|:-------------|:-----------|:-----------|:------|:------------| -| `Asset` | オブジェクト | STIssue | はい | AMMのプールにある資産の一つを定義します。JSONでは、`currency`と`issuer`フィールドを持つオブジェクトになります(XRPの場合は`issuer`を省略します)。 | -| `Asset2` | オブジェクト | STIssue | はい | AMMのプールにあるもう一つの資産を定義します。JSONでは、`currency`と`issuer`フィールドを持つオブジェクトです(XRPの場合は`issuer`を省略)。| -| `Amount` | [通貨額][] | Amount | いいえ | AMMから引き出す1つの資産の量。これは、AMMのプールにある資産の1つ(トークンまたはXRP)と一致する必要があります。 | -| `Amount2` | [通貨額][] | Amount | いいえ | AMMから引き出す他の資産の量。存在する場合、これはAMMのプール内の他の資産と一致する必要があり、`Amount`と同じにすることはできません。 | -| `EPrice` | [通貨額][] | Amount | いいえ | 引き出しに必要な、資産の1単位あたりに支払う最低有効価格(LPトークンの返却単位)。 | -| `LPTokenIn` | [通貨額][] | Amount | いいえ | AMMのLPトークンの引き替え数。 | +| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | +| :---------- | :----------- | :----------- | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Asset` | オブジェクト | STIssue | はい | AMMのプールにある資産の一つを定義します。JSONでは、`currency`と`issuer`フィールドを持つオブジェクトになります(XRPの場合は`issuer`を省略します)。 | +| `Asset2` | オブジェクト | STIssue | はい | AMMのプールにあるもう一つの資産を定義します。JSONでは、`currency`と`issuer`フィールドを持つオブジェクトです(XRPの場合は`issuer`を省略)。 | +| `Amount` | [通貨額][] | Amount | いいえ | AMMから引き出す1つの資産の量。これは、AMMのプールにある資産の1つ(トークンまたはXRP)と一致する必要があります。 | +| `Amount2` | [通貨額][] | Amount | いいえ | AMMから引き出す他の資産の量。存在する場合、これはAMMのプール内の他の資産と一致する必要があり、`Amount`と同じにすることはできません。 | +| `EPrice` | [通貨額][] | Amount | いいえ | 引き出しに必要な、資産の1単位あたりに支払う最低有効価格(LPトークンの返却単位)。 | +| `LPTokenIn` | [通貨額][] | Amount | いいえ | AMMのLPトークンの引き替え数。 | {% admonition type="info" name="注記" %}ダブルアセット出金の場合、`Asset1`と`Amount1`または`Amount2`が対応していれば、`Asset2`はもう一方に対応することが可能です。しかし、両者を一致させることをお勧めします(つまり、`Amount2`は`Asset2`で定義されたアセットの金額です)。その方が混乱を招きにくくなります。{% /admonition %} @@ -62,20 +64,20 @@ AMMの流動性プロバイダトークン(LPトークン)を返却するこ 以下の項目の組み合わせは、**ダブルアセット出金**について示しています。 -| フラグ名 | フラグ値 | 指定フィール | 意味 | -|-----------------|--------------|---------------- ----|---------| +| フラグ名 | フラグ値 | 指定フィール | 意味 | +| --------------- | ------------ | ------------------- | ------------------------------------------------------------------------------------------------------------------------------ | | `tfLPToken` | `0x00010000` | `LPTokenIn`のみ | 指定された量のLPトークンを返却し、LPトークンの発行総数に対する返却されたトークンの割合に基づく金額の両方の資産を受け取ります。 | -| `tfWithdrawAll` | `0x00020000` | なし | LPトークンを _全て_ 返却し、AMMのプールにある両方の資産を最大限受け取ります。 | -| `tfTwoAsset` | `0x00100000` | `Amount`と`Amount2` | 指定した金額を上限として、AMMの資産の両方を出金します。実際に受け取る金額は、AMMのプールの資産残高の割合と同じになります。 | +| `tfWithdrawAll` | `0x00020000` | なし | LPトークンを _全て_ 返却し、AMMのプールにある両方の資産を最大限受け取ります。 | +| `tfTwoAsset` | `0x00100000` | `Amount`と`Amount2` | 指定した金額を上限として、AMMの資産の両方を出金します。実際に受け取る金額は、AMMのプールの資産残高の割合と同じになります。 | 以下の項目の組み合わせは、**シングルアセット出金**について示しています。 -| フラグ名 | フラグ値 | 指定フィールド | 意味 | -|-------------------------|--------------|-----------------------|---------| -| `tfSingleAsset` | `0x00080000` | `Amount`のみ | LPトークンを指定した数だけ返却し、1つの資産を指定した量だけ出金します。 | -| `tfOneAssetWithdrawAll` | `0x00040000` | `Amount`のみ | LPトークンを全て返却することで、1つの資産を指定した金額以上出金します。指定された金額以上を受け取ることができない場合は失敗します。指定する金額は0でもかまいません。この場合、少しでも正の金額を出金できれば成功します。 | -| `tfOneAssetLPToken` | `0x00200000` | `Amount`と`LPTokenIn` | 指定した量のLPトークンを返却することで、1つの資産を指定した量まで出金します。 | -| `tfLimitLPToken` | `0x00400000` | `Amount`と`EPrice` | 指定した1つの資産の量を上限として出金しますが、受け取る資産の一単位あたりのLPトークンで指定した有効価格より高い金額を支払うことはありません。 | +| フラグ名 | フラグ値 | 指定フィールド | 意味 | +| ----------------------- | ------------ | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `tfSingleAsset` | `0x00080000` | `Amount`のみ | LPトークンを指定した数だけ返却し、1つの資産を指定した量だけ出金します。 | +| `tfOneAssetWithdrawAll` | `0x00040000` | `Amount`のみ | LPトークンを全て返却することで、1つの資産を指定した金額以上出金します。指定された金額以上を受け取ることができない場合は失敗します。指定する金額は0でもかまいません。この場合、少しでも正の金額を出金できれば成功します。 | +| `tfOneAssetLPToken` | `0x00200000` | `Amount`と`LPTokenIn` | 指定した量のLPトークンを返却することで、1つの資産を指定した量まで出金します。 | +| `tfLimitLPToken` | `0x00400000` | `Amount`と`EPrice` | 指定した1つの資産の量を上限として出金しますが、受け取る資産の一単位あたりのLPトークンで指定した有効価格より高い金額を支払うことはありません。 | これら以外のフィールドとフラグの組み合わせは無効です。 @@ -93,34 +95,33 @@ AMMの流動性プロバイダトークン(LPトークン)を返却するこ AMMWithdrawトランザクションは、以下のように[`Flags`フィールド](../common-fields.md#flagsフィールド)の値をサポートしています。 -| フラグ名 | 16進数値 | 10進数値 | 説明 | -|:------------------------|:-------------|:--------------|:----------------------| -| `tfLPToken` | `0x00010000` | 65536 | 指定された額のLPトークンを返還する、ダブルアセット出金を行います。 | -| `tfWithdrawAll` | `0x00020000` | 131072 | LPトークンをすべて返還する、ダブルアセット出金を行います。 | -| `tfOneAssetWithdrawAll` | `0x00040000` | 262144 | 全てのLPトークンを返還する、シングルアセット出金を行います。 | -| `tfSingleAsset` | `0x00080000` | 524288 | 引き出す資産を指定して、シングルアセット出金を行います。| -| `tfTwoAsset` | `0x00100000` | 1048576 | 両資産の金額を指定して、ダブルアセット出金を行います。 | -| `tfOneAssetLPToken` | `0x00200000` | 2097152 | シングルアセット出金を行い、指定された額のLPトークンを受け取ります。 | -| `tfLimitLPToken` | `0x00400000` | 4194304 | 有効価格を指定して、シングルアセット出金を行います。 | +| フラグ名 | 16進数値 | 10進数値 | 説明 | +| :---------------------- | :----------- | :------- | :------------------------------------------------------------------- | +| `tfLPToken` | `0x00010000` | 65536 | 指定された額のLPトークンを返還する、ダブルアセット出金を行います。 | +| `tfWithdrawAll` | `0x00020000` | 131072 | LPトークンをすべて返還する、ダブルアセット出金を行います。 | +| `tfOneAssetWithdrawAll` | `0x00040000` | 262144 | 全てのLPトークンを返還する、シングルアセット出金を行います。 | +| `tfSingleAsset` | `0x00080000` | 524288 | 引き出す資産を指定して、シングルアセット出金を行います。 | +| `tfTwoAsset` | `0x00100000` | 1048576 | 両資産の金額を指定して、ダブルアセット出金を行います。 | +| `tfOneAssetLPToken` | `0x00200000` | 2097152 | シングルアセット出金を行い、指定された額のLPトークンを受け取ります。 | +| `tfLimitLPToken` | `0x00400000` | 4194304 | 有効価格を指定して、シングルアセット出金を行います。 | これらのフラグのうちの **1つのみ** と、任意の[グローバルフラグ](../common-fields.md#グローバルフラグ)を指定する必要があります。 - ## エラーケース すべてのトランザクションで発生する可能性のあるエラーに加えて、{% $frontmatter.seo.title %}トランザクションでは、次の[トランザクション結果コード](../transaction-results/index.md)が発生する可能性があります。 -| エラーコード | 説明 | -|:-------------------------|:---------------------------------------------| -| `tecAMM_EMPTY` | AMMのプールに資産がありません。この状態では、AMMを削除するか、新しい入金を行い資金を供給することしかできません。 | -| `tecAMM_BALANCE` | トランザクションによって、プールから1つの資産をすべて引き出そうとしている、もしくは`tfWithdrawAll`の場合に端数処理によって0以外の金額が残ってしまっています。 | -| `tecAMM_FAILED` | 例えば、`EPrice`フィールドに指定された有効価格が低過ぎる場合など、出金に関する条件が成立しませんでした。 | -| `tecAMM_INVALID_TOKENS` | トークンペアのAMMが存在しないか、計算の結果、引き出し額がゼロに丸められました。 | -| `tecFROZEN` | トランザクションは[フリーズ](../../../../concepts/tokens/fungible-tokens/freezes.md)されたトークンを引き出そうとしました。 | -| `tecINSUF_RESERVE_LINE` | トランザクションの送信者は、このトランザクションを処理するための[準備金要件](../../../../concepts/accounts/reserves.md)の増加に対応できません。おそらく、引き出される資産の1つを保持するために少なくとも1つの新しいトラストラインが必要ですが、新しいトラストラインのための追加の所有者準備金分のXRPを持っていないためでしょう。 | -| `tecNO_AUTH` | 送信者は、引き出し資産のいずれかを保有する権限を有していません。 | -| `temMALFORMED` | トランザクションで無効なフィールドの組み合わせが指定されました。[AMMWithdrawモード](#ammwithdrawモード)をご覧ください。 | -| `temBAD_AMM_TOKENS` | 例えば、`issuer`がAMMの関連するAccountRootアドレスでない、`currency`がこのAMMのLPトークンの通貨コードでない、またはトランザクションがこのAMMのLPトークンをAssetフィールドの1つに指定した、などです。 | -| `terNO_AMM` | トランザクションで指定した資産ペアの自動マーケットメーカーインスタンスが存在しません。 | +| エラーコード | 説明 | +| :---------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `tecAMM_EMPTY` | AMMのプールに資産がありません。この状態では、AMMを削除するか、新しい入金を行い資金を供給することしかできません。 | +| `tecAMM_BALANCE` | トランザクションによって、プールから1つの資産をすべて引き出そうとしている、もしくは`tfWithdrawAll`の場合に端数処理によって0以外の金額が残ってしまっています。 | +| `tecAMM_FAILED` | 例えば、`EPrice`フィールドに指定された有効価格が低過ぎる場合など、出金に関する条件が成立しませんでした。 | +| `tecAMM_INVALID_TOKENS` | トークンペアのAMMが存在しないか、計算の結果、引き出し額がゼロに丸められました。 | +| `tecFROZEN` | トランザクションは[フリーズ](../../../../concepts/tokens/fungible-tokens/freezes.md)されたトークンを引き出そうとしました。 | +| `tecINSUF_RESERVE_LINE` | トランザクションの送信者は、このトランザクションを処理するための[準備金要件](../../../../concepts/accounts/reserves.md)の増加に対応できません。おそらく、引き出される資産の1つを保持するために少なくとも1つの新しいトラストラインが必要ですが、新しいトラストラインのための追加の所有者準備金分のXRPを持っていないためでしょう。 | +| `tecNO_AUTH` | 送信者は、引き出し資産のいずれかを保有する権限を有していません。 | +| `temMALFORMED` | トランザクションで無効なフィールドの組み合わせが指定されました。[AMMWithdrawモード](#ammwithdrawモード)をご覧ください。 | +| `temBAD_AMM_TOKENS` | 例えば、`issuer`がAMMの関連するAccountRootアドレスでない、`currency`がこのAMMのLPトークンの通貨コードでない、またはトランザクションがこのAMMのLPトークンをAssetフィールドの1つに指定した、などです。 | +| `terNO_AMM` | トランザクションで指定した資産ペアの自動マーケットメーカーインスタンスが存在しません。 | {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/transactions/types/batch.md b/@l10n/ja/docs/references/protocol/transactions/types/batch.md index 320967f0aa..dc5222df9d 100644 --- a/@l10n/ja/docs/references/protocol/transactions/types/batch.md +++ b/@l10n/ja/docs/references/protocol/transactions/types/batch.md @@ -1,12 +1,14 @@ --- seo: - description: 最大8件のトランザクションをまとめて作成・送信し、それらがすべて成功するか、すべて失敗するようにアトミックに処理されるようにします。 + description: 最大8件のトランザクションをまとめて作成・送信し、それらがすべて成功するか、すべて失敗するようにアトミックに処理されるようにします。 labels: - Batch - Transaction Sending status: not_enabled --- + # Batch + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/Batch.cpp "Source") `Batch`トランザクションは、最大8つのトランザクションを単一のバッチで送信します。各トランザクションは、4つのモード(全て成功または全て失敗(All or Nothing)、一つのみ成功(Only One)、失敗まで継続(Until Failure)、および独立実行(Independent))のいずれかでアトミックに実行されます。 @@ -116,11 +118,11 @@ status: not_enabled {% raw-partial file="/@l10n/ja/docs/_snippets/tx-fields-intro.md" /%} -| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | -| :---------------- | :--------- | :--------- | :----- | :----------------------------------------------------------- | -| `Flags` | 数値 | UInt32 | はい | このトランザクションのビットフラグです。トランザクションのバッチモードを表すために、正確に1つ指定する必要があります。[バッチのフラグ](#バッチのフラグ)をご覧ください。 | -| `RawTransactions` | 配列 | Array | はい | 適用するトランザクションのリストです。 | -| `BatchSigners` | 配列 | Array | いいえ | 複数アカウントの`Batch`トランザクションを承認する署名です。 | +| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | +| :---------------- | :------- | :----------- | :----- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Flags` | 数値 | UInt32 | はい | このトランザクションのビットフラグです。トランザクションのバッチモードを表すために、正確に1つ指定する必要があります。[バッチのフラグ](#バッチのフラグ)をご覧ください。 | +| `RawTransactions` | 配列 | Array | はい | 適用するトランザクションのリストです。 | +| `BatchSigners` | 配列 | Array | いいえ | 複数アカウントの`Batch`トランザクションを承認する署名です。 | ### RawTransactions @@ -128,46 +130,44 @@ status: not_enabled 各内部トランザクションは以下の条件を満たす必要があります。 -* `tfInnerBatchTxn` (10進数値: `1073741824`、または16進数値: `0x40000000`) フラグを含める必要があります。 -* `Fee` の値が `"0"` である必要があります。 -* 署名されていてはなりません(グローバルトランザクションはすべての関係者によってすでに署名されています)。代わりに、`SigningPubKey` には空の文字列 (`""`) を含み、`TxnSignature` フィールドは省略する必要があります。 -* `TicketSequence` または `Sequence` の値がゼロより大きい必要があります。 +- `tfInnerBatchTxn` (10進数値: `1073741824`、または16進数値: `0x40000000`) フラグを含める必要があります。 +- `Fee` の値が `"0"` である必要があります。 +- 署名されていてはなりません(グローバルトランザクションはすべての関係者によってすでに署名されています)。代わりに、`SigningPubKey` には空の文字列 (`""`) を含み、`TxnSignature` フィールドは省略する必要があります。 +- `TicketSequence` または `Sequence` の値がゼロより大きい必要があります。 ### BatchSigners このフィールドは、XRPLにおけるマルチシグ機能と同様の仕組みで動作します。複数のアカウントのトランザクションが`Batch`トランザクションに含まれている場合にのみ必要で、それ以外の場合は通常のトランザクション署名で同じセキュリティが保証されます。 -| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | -| :-------------- | :--------- | :--------- | :----- | :----------------------------------------------------------- | -| `Account` | 文字列 | AccountID | はい | 少なくとも1つの内部トランザクションを持つアカウント。 | -| `SigningPubKey` | 文字列 | Blob | いいえ | このトランザクションの署名に使用された秘密鍵に対応する公開鍵の16進数表現。 | -| `TxnSignature` | 文字列 | Blob | いいえ | このトランザクションが、それが由来するとされるアカウントからのものであることを検証する署名。 | -| `Signers` | 配列 | Array | いいえ | このトランザクションを承認するマルチシグを表すオブジェクトの配列。 | +| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | +| :-------------- | :------- | :----------- | :----- | :------------------------------------------------------------------------------------------- | +| `Account` | 文字列 | AccountID | はい | 少なくとも1つの内部トランザクションを持つアカウント。 | +| `SigningPubKey` | 文字列 | Blob | いいえ | このトランザクションの署名に使用された秘密鍵に対応する公開鍵の16進数表現。 | +| `TxnSignature` | 文字列 | Blob | いいえ | このトランザクションが、それが由来するとされるアカウントからのものであることを検証する署名。 | +| `Signers` | 配列 | Array | いいえ | このトランザクションを承認するマルチシグを表すオブジェクトの配列。 | {% admonition type="info" name="Note" %} `Batch`トランザクションを送信するアカウントが単一署名を使用する場合、`Flags`フィールドと内部トランザクションのハッシュに署名します。この場合、含まれるのは`SigningPubKey`と`TxnSignature`のみです。一方で、複数署名を使用する場合は代わりに`Signers`フィールドが使用され、そこに`Flags`フィールドおよび内部トランザクションのハッシュに対する署名が格納されます。 {% /admonition %} - ## バッチのフラグ `Batch`タイプのトランザクションは、[`Flags`フィールド](../common-fields.md#flags-field)に追加の値をサポートしており、以下のとおりです。 -| フラグ名 | 16進数値 | 10進数値 | 説明 | -| :--------------- | :--------- | :------- | :--------------------------------- | -| `tfAllOrNothing` | `0x00010000` | 65536 | すべてのトランザクションが成功しなければ、バッチ全体が失敗します。 | -| `tfOnlyOne` | `0x00020000` | 131072 | 最初に成功したトランザクションのみ適用され、それ以降はすべて失敗またはスキップされます。 | +| フラグ名 | 16進数値 | 10進数値 | 説明 | +| :--------------- | :----------- | :------- | :------------------------------------------------------------------------------------------------------------------- | +| `tfAllOrNothing` | `0x00010000` | 65536 | すべてのトランザクションが成功しなければ、バッチ全体が失敗します。 | +| `tfOnlyOne` | `0x00020000` | 131072 | 最初に成功したトランザクションのみ適用され、それ以降はすべて失敗またはスキップされます。 | | `tfUntilFailure` | `0x00040000` | 262144 | 最初の失敗が発生するまで、すべてのトランザクションが順に適用されます。失敗以降のトランザクションはスキップされます。 | -| `tfIndependent` | `0x00080000` | 524288 | 各トランザクションは、成功・失敗に関係なくすべて適用されます。 | +| `tfIndependent` | `0x00080000` | 524288 | 各トランザクションは、成功・失敗に関係なくすべて適用されます。 | トランザクションは`tesSUCCESS`を結果として返す場合、成功とみなされます。 - ## エラーケース -| エラーコード | 説明 | -|:--------------------------|:--------------------------------------------------| -| `temINVALID_INNER_BATCH` | 内部トランザクションの形式が不正です。 | -| `temSEQ_AND_TICKET` | トランザクションに`TicketSequence`フィールドと、0以外の`Sequence`フィールドの両方が含まれています。両方を同時に指定することはできませんが、いずれか一方は必須です。 | +| エラーコード | 説明 | +| :----------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `temINVALID_INNER_BATCH` | 内部トランザクションの形式が不正です。 | +| `temSEQ_AND_TICKET` | トランザクションに`TicketSequence`フィールドと、0以外の`Sequence`フィールドの両方が含まれています。両方を同時に指定することはできませんが、いずれか一方は必須です。 | {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/transactions/types/checkcancel.md b/@l10n/ja/docs/references/protocol/transactions/types/checkcancel.md index 74a679a223..933f8cbc49 100644 --- a/@l10n/ja/docs/references/protocol/transactions/types/checkcancel.md +++ b/@l10n/ja/docs/references/protocol/transactions/types/checkcancel.md @@ -2,11 +2,13 @@ html: checkcancel.html parent: transaction-types.html seo: - description: 未清算のCheckを取り消し、送金を行わずにレジャーから削除します。 + description: 未清算のCheckを取り消し、送金を行わずにレジャーから削除します。 labels: - Checks --- + # CheckCancel + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/CancelCheck.cpp "Source") 未清算のCheckを取り消し、送金を行わずにレジャーから削除します。Checkの送金元または送金先は、いつでもこのトランザクションタイプを使用してCheckを取り消すことができます。有効期限切れのCheckはすべてのアドレスが取り消すことができます。 @@ -17,21 +19,20 @@ _([Checks Amendment][]が必要です)_ ```json { - "Account": "rUn84CUYbNjRoTQ6mSW7BVJPSVJNLb1QLo", - "TransactionType": "CheckCancel", - "CheckID": "49647F0D748DC3FE26BDACBC57F251AADEFFF391403EC9BF87C97F67E9977FB0", - "Fee": "12" + "Account": "rUn84CUYbNjRoTQ6mSW7BVJPSVJNLb1QLo", + "TransactionType": "CheckCancel", + "CheckID": "49647F0D748DC3FE26BDACBC57F251AADEFFF391403EC9BF87C97F67E9977FB0", + "Fee": "12" } ``` {% tx-example txid="D3328000315C6DCEC1426E4E549288E3672752385D86A40D56856DBD10382953" /%} - {% raw-partial file="/@l10n/ja/docs/_snippets/tx-fields-intro.md" /%} -| フィールド | JSONの型 | [内部の型][] | 説明 | -|:------------|:----------|:------------------|:-------------------------------| -| `CheckID` | 文字列 | UInt256 | 取り消す[Checkレジャーオブジェクト](../../ledger-data/ledger-entry-types/check.md)のID(64文字の16進文字列)。 | +| フィールド | JSONの型 | [内部の型][] | 説明 | +| :--------- | :------- | :----------- | :------------------------------------------------------------------------------------------------------------- | +| `CheckID` | 文字列 | UInt256 | 取り消す[Checkレジャーオブジェクト](../../ledger-data/ledger-entry-types/check.md)のID(64文字の16進文字列)。 | ## エラーケース diff --git a/@l10n/ja/docs/references/protocol/transactions/types/checkcash.md b/@l10n/ja/docs/references/protocol/transactions/types/checkcash.md index e0fd57307d..87ceba1404 100644 --- a/@l10n/ja/docs/references/protocol/transactions/types/checkcash.md +++ b/@l10n/ja/docs/references/protocol/transactions/types/checkcash.md @@ -2,11 +2,13 @@ html: checkcash.html parent: transaction-types.html seo: - description: レジャーでCheckオブジェクトの清算を試みます。 + description: レジャーでCheckオブジェクトの清算を試みます。 labels: - Checks --- + # CheckCash + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/CashCheck.cpp "Source") 対応する[CheckCreateトランザクション][]で承認された額まで受領するため、レジャーでCheckオブジェクトの清算を試みます。CheckCashトランザクションでCheckを換金できるのは、Checkの`Destination`アドレスだけです。このCheckの換金方法は、送金先により開始される[Payment][]の実行に似ています。 @@ -19,24 +21,23 @@ _([Checks Amendment][]が必要です)_ ```json { - "Account": "rfkE1aSy9G8Upk4JssnwBxhEv5p4mn2KTy", - "TransactionType": "CheckCash", - "Amount": "100000000", - "CheckID": "838766BA2B995C00744175F69A1B11E32C3DBC40E64801A4056FCBD657F57334", - "Fee": "12" + "Account": "rfkE1aSy9G8Upk4JssnwBxhEv5p4mn2KTy", + "TransactionType": "CheckCash", + "Amount": "100000000", + "CheckID": "838766BA2B995C00744175F69A1B11E32C3DBC40E64801A4056FCBD657F57334", + "Fee": "12" } ``` {% tx-example txid="67B71B13601CDA5402920691841AC27A156463678E106FABD45357175F9FF406" /%} - {% raw-partial file="/@l10n/ja/docs/_snippets/tx-fields-intro.md" /%} -| フィールド | JSONの型 | [内部の型][] | 説明 | -|:-------------|:--------------------|:------------------|:--------------------| -| `CheckID` | 文字列 | UInt256 | 換金する[Checkレジャーオブジェクト](../../ledger-data/ledger-entry-types/check.md)のID(64文字の16進文字列)。 | -| `Amount` | [通貨額][] | Amount | _(省略可)_ 可能であればCheckを厳密にこの額で清算します。通貨は対応するCheckCreateトランザクションの`SendMax`の通貨と一致している必要があります。このフィールドまたは`DeliverMin`のいずれかを指定する必要があります。 | -| `DeliverMin` | [通貨額][] | Amount | _(省略可)_ Checkをこの額以上の可能な限りの額で清算します。通貨は対応するCheckCreateトランザクションの`SendMax`の通貨と一致している必要があります。このフィールドまたは`Amount`のいずれかを指定する必要があります。 | +| フィールド | JSONの型 | [内部の型][] | 説明 | +| :----------- | :--------- | :----------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `CheckID` | 文字列 | UInt256 | 換金する[Checkレジャーオブジェクト](../../ledger-data/ledger-entry-types/check.md)のID(64文字の16進文字列)。 | +| `Amount` | [通貨額][] | Amount | _(省略可)_ 可能であればCheckを厳密にこの額で清算します。通貨は対応するCheckCreateトランザクションの`SendMax`の通貨と一致している必要があります。このフィールドまたは`DeliverMin`のいずれかを指定する必要があります。 | +| `DeliverMin` | [通貨額][] | Amount | _(省略可)_ Checkをこの額以上の可能な限りの額で清算します。通貨は対応するCheckCreateトランザクションの`SendMax`の通貨と一致している必要があります。このフィールドまたは`Amount`のいずれかを指定する必要があります。 | `Amount`または`DeliverMin`のいずれかを指定する***必要があります***が、両方は指定しないでください。 diff --git a/@l10n/ja/docs/references/protocol/transactions/types/checkcreate.md b/@l10n/ja/docs/references/protocol/transactions/types/checkcreate.md index e14c1850ee..be53cdcc4a 100644 --- a/@l10n/ja/docs/references/protocol/transactions/types/checkcreate.md +++ b/@l10n/ja/docs/references/protocol/transactions/types/checkcreate.md @@ -2,11 +2,13 @@ html: checkcreate.html parent: transaction-types.html seo: - description: レジャーにCheckオブジェクトを作成します + description: レジャーにCheckオブジェクトを作成します labels: - Checks --- + # CheckCreate + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/CreateCheck.cpp "Source") レジャーにCheckオブジェクトを作成します。これにより指定の送金先は後日換金することができます。このトランザクションの送信者はCheckの送金元です。 @@ -17,14 +19,14 @@ _([Checks Amendment][]が必要です)_ ```json { - "TransactionType": "CheckCreate", - "Account": "rUn84CUYbNjRoTQ6mSW7BVJPSVJNLb1QLo", - "Destination": "rfkE1aSy9G8Upk4JssnwBxhEv5p4mn2KTy", - "SendMax": "100000000", - "Expiration": 570113521, - "InvoiceID": "6F1DFD1D0FE8A32E40E1F2C05CF1C15545BAB56B617F9C6C2D63A6B704BEF59B", - "DestinationTag": 1, - "Fee": "12" + "TransactionType": "CheckCreate", + "Account": "rUn84CUYbNjRoTQ6mSW7BVJPSVJNLb1QLo", + "Destination": "rfkE1aSy9G8Upk4JssnwBxhEv5p4mn2KTy", + "SendMax": "100000000", + "Expiration": 570113521, + "InvoiceID": "6F1DFD1D0FE8A32E40E1F2C05CF1C15545BAB56B617F9C6C2D63A6B704BEF59B", + "DestinationTag": 1, + "Fee": "12" } ``` @@ -32,13 +34,13 @@ _([Checks Amendment][]が必要です)_ {% raw-partial file="/@l10n/ja/docs/_snippets/tx-fields-intro.md" /%} -| フィールド | JSONの型 | [内部の型][] | 説明 | -|:-----------------|:--------------------|:------------------|:----------------| -| `Destination` | 文字列 | AccountID | Checkを換金できる[アカウント](../../../../concepts/accounts/index.md)の一意アドレス。 | -| `SendMax` | [通貨額][] | Amount | Checkで送金元から引き落とすことができる送金元通貨の最大額(XRP以外の通貨の[送金手数料](../../../../concepts/tokens/fungible-tokens/transfer-fees.md)を含む)。Checkは同一通貨の送金先にのみ入金可能です(XRP以外の通貨の場合は同一イシュアーから)。XRP以外の金額の場合、入れ子フィールドの名前にはアルファベットの小文字のみ使用してください。 | -| `DestinationTag` | 数値 | UInt32 | _(省略可)_ Checkの理由を明確にする任意のタグ、または支払先となる、ホスティングされている受取人。 | -| `Expiration` | 数値 | UInt32 | _(省略可)_ Checkが無効になる時刻([Rippleエポック以降の経過秒数][])。 | -| `InvoiceID` | 文字列 | UInt256 | _(省略可)_ このCheckの具体的な理由または識別子を表現する任意の256ビットハッシュ。 | +| フィールド | JSONの型 | [内部の型][] | 説明 | +| :--------------- | :--------- | :----------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Destination` | 文字列 | AccountID | Checkを換金できる[アカウント](../../../../concepts/accounts/index.md)の一意アドレス。 | +| `SendMax` | [通貨額][] | Amount | Checkで送金元から引き落とすことができる送金元通貨の最大額(XRP以外の通貨の[送金手数料](../../../../concepts/tokens/fungible-tokens/transfer-fees.md)を含む)。Checkは同一通貨の送金先にのみ入金可能です(XRP以外の通貨の場合は同一イシュアーから)。XRP以外の金額の場合、入れ子フィールドの名前にはアルファベットの小文字のみ使用してください。 | +| `DestinationTag` | 数値 | UInt32 | _(省略可)_ Checkの理由を明確にする任意のタグ、または支払先となる、ホスティングされている受取人。 | +| `Expiration` | 数値 | UInt32 | _(省略可)_ Checkが無効になる時刻([Rippleエポック以降の経過秒数][])。 | +| `InvoiceID` | 文字列 | UInt256 | _(省略可)_ このCheckの具体的な理由または識別子を表現する任意の256ビットハッシュ。 | ## エラーケース diff --git a/@l10n/ja/docs/references/protocol/transactions/types/clawback.md b/@l10n/ja/docs/references/protocol/transactions/types/clawback.md index 98c29947b7..e22e4f6364 100644 --- a/@l10n/ja/docs/references/protocol/transactions/types/clawback.md +++ b/@l10n/ja/docs/references/protocol/transactions/types/clawback.md @@ -1,9 +1,10 @@ --- seo: - description: 発行したトークンを取り戻します。 + description: 発行したトークンを取り戻します。 labels: - トークン --- + # Clawback [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/Clawback.cpp "ソース") @@ -21,34 +22,33 @@ Clawback機能はデフォルトで無効になっています。使用するに "TransactionType": "Clawback", "Account": "rp6abvbTbjoce8ZDJkT6snvxTZSYMBCC9S", "Amount": { - "currency": "FOO", - "issuer": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", - "value": "314.159" - } + "currency": "FOO", + "issuer": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", + "value": "314.159" + } } ``` {% raw-partial file="/@l10n/ja/docs/_snippets/tx-fields-intro.md" /%} -| フィールド | JSONの型 | [内部の型][] | 説明 | -|:-------------------|:-----------|:-------------|:----------| -| `Amount` | [通貨額][] | Amount | 回収する金額と、その金額を回収する相手を表します。`value`サブフィールドの回収する数量はゼロであってはなりません。これが現在の残高より多い場合、トランザクションは全残高を回収します。サブフィールド`Amount`内の`issuer`はトークン所有者のアカウントを表します。| -| `Holder` | 文字列 | AccountID | (任意) 回収する相手のアカウントアドレスを指定します。回収対象のアカウントの所有する`MPToken`オブジェクトの残高が非ゼロである必要があります。 | +| フィールド | JSONの型 | [内部の型][] | 説明 | +| :--------- | :--------- | :----------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Amount` | [通貨額][] | Amount | 回収する金額と、その金額を回収する相手を表します。`value`サブフィールドの回収する数量はゼロであってはなりません。これが現在の残高より多い場合、トランザクションは全残高を回収します。サブフィールド`Amount`内の`issuer`はトークン所有者のアカウントを表します。 | +| `Holder` | 文字列 | AccountID | (任意) 回収する相手のアカウントアドレスを指定します。回収対象のアカウントの所有する`MPToken`オブジェクトの残高が非ゼロである必要があります。 | -{% admonition type="info" name="注記" %}XRP LedgerのIOU(トラストライン)では、トークンを発行した側を_発行者_と呼びますが、トラストラインは双方向性があり、設定によっては双方を発行者とみなすことができます。このトランザクションでは、トークン発行者のアドレスは`Account`フィールドにあり、トークン保有者のアドレスは`Amount`フィールドの`issuer`サブフィールドにあります。{% /admonition %} +{% admonition type="info" name="注記" %}XRP LedgerのIOU(トラストライン)では、トークンを発行した側を*発行者*と呼びますが、トラストラインは双方向性があり、設定によっては双方を発行者とみなすことができます。このトランザクションでは、トークン発行者のアドレスは`Account`フィールドにあり、トークン保有者のアドレスは`Amount`フィールドの`issuer`サブフィールドにあります。{% /admonition %} {% admonition type="info" name="注記" %}MPTの保有者から資金を回収するには、発行者は`MPTokenIssuanceCreate`トランザクションを使用してMPTを作成するときに`tfMPTCanClawback`フラグを設定して、MPTがClawbackを許可することを指定しなければなりません。このフラグが設定されたMPTが作成されたと仮定すると、`Clawback`トランザクションを使用して回収を行うことができます。{% /admonition %} - ## エラーケース すべてのトランザクションで発生する可能性のあるエラーに加えて、{% $frontmatter.seo.title %}トランザクションでは、次の[トランザクション結果コード](../transaction-results/index.md)が発生する可能性があります。 -| エラーコード | 説明 | -|:-----------|:------------| -| `temDISABLED` | [Clawback amendment](/resources/known-amendments.md#clawback)が有効ではありません。 | -| `temBAD_AMOUNT` | 保有者の残高が0です。回収しようとする金額が保有者の残高を超えていてもエラーにはなりません。また、`Amount`に記載されている相手がこのトランザクションを発行している`Account`と同じ場合にもエラーが発生します。 | -| `tecNO_LINE` | 取引相手とのトラストラインがない、またはトラストラインの残高が0です。 | -| `tecNO_PERMISSION` | `lsfNoFreeze`が設定されているときに`lsfAllowTrustlineClawback`を設定、または`lsfAllowTrustLineClawback`が設定されているときに`lsfNoFreeze`を設定しようとしています。 | +| エラーコード | 説明 | +| :----------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `temDISABLED` | [Clawback amendment](/resources/known-amendments.md#clawback)が有効ではありません。 | +| `temBAD_AMOUNT` | 保有者の残高が0です。回収しようとする金額が保有者の残高を超えていてもエラーにはなりません。また、`Amount`に記載されている相手がこのトランザクションを発行している`Account`と同じ場合にもエラーが発生します。 | +| `tecNO_LINE` | 取引相手とのトラストラインがない、またはトラストラインの残高が0です。 | +| `tecNO_PERMISSION` | `lsfNoFreeze`が設定されているときに`lsfAllowTrustlineClawback`を設定、または`lsfAllowTrustLineClawback`が設定されているときに`lsfNoFreeze`を設定しようとしています。 | {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/transactions/types/credentialaccept.md b/@l10n/ja/docs/references/protocol/transactions/types/credentialaccept.md index 8f58e3bd17..31a12e9798 100644 --- a/@l10n/ja/docs/references/protocol/transactions/types/credentialaccept.md +++ b/@l10n/ja/docs/references/protocol/transactions/types/credentialaccept.md @@ -1,8 +1,9 @@ --- seo: - description: アカウントに仮発行された資格情報を承認します。 - status: not_enabled + description: アカウントに仮発行された資格情報を承認します。 + status: not_enabled --- + # CredentialAccept CredentialAcceptトランザクションは資格情報を承認し、その資格情報を有効にします。資格情報の対象者のみがこの操作を実行できます。 @@ -11,40 +12,37 @@ CredentialAcceptトランザクションは資格情報を承認し、その資 ```json { - "TransactionType" : "CredentialAccept", - "Account": "rsUiUMpnrgxQp24dJYZDhmV4bE3aBtQyt8", - "Issuer": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "CredentialType": "6D795F63726564656E7469616C", - "Fee": "10", - "Flags": 0, - "Sequence": 234203 + "TransactionType": "CredentialAccept", + "Account": "rsUiUMpnrgxQp24dJYZDhmV4bE3aBtQyt8", + "Issuer": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "CredentialType": "6D795F63726564656E7469616C", + "Fee": "10", + "Flags": 0, + "Sequence": 234203 } ``` - ## CredentialAcceptのフィールド [共通フィールド][]に加えて、CredentialAcceptトランザクションは以下のフィールドを使用します。 -| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | -| :--------------- | :-------------------- | :---------------- | :----- | ---- | -| `Issuer` | 文字列 - [アドレス][] | AccountID | はい | 資格情報を作成した発行者のアドレス。 | -| `CredentialType` | 文字列 | Blob | はい | 資格情報の種類を定義する任意のデータ。最小サイズは1バイト、最大は64バイトです。 | +| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | +| :--------------- | :-------------------- | :----------- | :----- | ------------------------------------------------------------------------------- | +| `Issuer` | 文字列 - [アドレス][] | AccountID | はい | 資格情報を作成した発行者のアドレス。 | +| `CredentialType` | 文字列 | Blob | はい | 資格情報の種類を定義する任意のデータ。最小サイズは1バイト、最大は64バイトです。 | `Account`フィールド(このトランザクションの送信者)は、資格情報の対象者でなければなりません。 `Account`、`Issuer`、`CredentialType`の組み合わせは、レジャー上に存在し、まだ承認されていない`Credential`レジャーエントリと一致する必要があります。一致しない場合、トランザクションは失敗します。 - ## エラーケース -| エラーコード | 説明 | -| :---------------------- | ---- | -| `tecDUPLICATE` | 指定された資格情報は既に承認されています。 | -| `tecEXPIRED` | 指定された資格情報の有効期限が過去の時点になっています。(この場合、トランザクションは期限切れの資格情報をレジャーから削除します。) | -| `tecNO_ENTRY` | トランザクションの`Account`、`Issuer`、`CredentialType`フィールドで一意に識別される資格情報がレジャー上に存在しません。 | -| `temDISABLED` | 関連するAmendmentが有効になっていません。 | +| エラーコード | 説明 | +| :---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | +| `tecDUPLICATE` | 指定された資格情報は既に承認されています。 | +| `tecEXPIRED` | 指定された資格情報の有効期限が過去の時点になっています。(この場合、トランザクションは期限切れの資格情報をレジャーから削除します。) | +| `tecNO_ENTRY` | トランザクションの`Account`、`Issuer`、`CredentialType`フィールドで一意に識別される資格情報がレジャー上に存在しません。 | +| `temDISABLED` | 関連するAmendmentが有効になっていません。 | | `temINVALID_ACCOUNT_ID` | 提供された`Issuer`フィールドが無効です。例えば、[ACCOUNT_ZERO](../../../../concepts/accounts/addresses.md#特別なアドレス)が含まれている場合など。 | - {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/transactions/types/credentialcreate.md b/@l10n/ja/docs/references/protocol/transactions/types/credentialcreate.md index e0fb6a4504..6e6565ae7f 100644 --- a/@l10n/ja/docs/references/protocol/transactions/types/credentialcreate.md +++ b/@l10n/ja/docs/references/protocol/transactions/types/credentialcreate.md @@ -1,7 +1,7 @@ --- seo: - description: アカウントに対して暫定的に資格情報を発行します。 - status: not_enabled + description: アカウントに対して暫定的に資格情報を発行します。 + status: not_enabled --- # CredentialCreate @@ -12,26 +12,25 @@ CredentialCreateトランザクションは、レジャーにCredentialを作成 ```json { - "TransactionType" : "CredentialCreate", - "Account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "Subject": "rsUiUMpnrgxQp24dJYZDhmV4bE3aBtQyt8", - "CredentialType": "6D795F63726564656E7469616C", - "Fee": "10", - "Flags": 0, - "Sequence": 234200 + "TransactionType": "CredentialCreate", + "Account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "Subject": "rsUiUMpnrgxQp24dJYZDhmV4bE3aBtQyt8", + "CredentialType": "6D795F63726564656E7469616C", + "Fee": "10", + "Flags": 0, + "Sequence": 234200 } ``` - ## CredentialCreateのフィールド [共通フィールド][]に加えて、CredentialCreateトランザクションは以下のフィールドを使用します。 -| フィールド | JSON型 | [内部の型][] | 必須? | 説明 | -| :--------------- | :-------------------- | :----------- | :----- | ---- | -| `Subject` | 文字列 - [アドレス][] | AccountID | はい | 資格情報の対象アカウント。 | -| `CredentialType` | 文字列 - 16進数 | Blob | はい | このエントリが表す資格情報の種類を定義する任意のデータ。最小長は1バイトで、最大長は64バイトです。 | -| `Expiration` | 数値 | UInt32 | いいえ | この資格情報が期限切れとみなされる時間([Rippleエポック以降の経過秒数][])。 | +| フィールド | JSON型 | [内部の型][] | 必須? | 説明 | +| :--------------- | :-------------------- | :----------- | :----- | ------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Subject` | 文字列 - [アドレス][] | AccountID | はい | 資格情報の対象アカウント。 | +| `CredentialType` | 文字列 - 16進数 | Blob | はい | このエントリが表す資格情報の種類を定義する任意のデータ。最小長は1バイトで、最大長は64バイトです。 | +| `Expiration` | 数値 | UInt32 | いいえ | この資格情報が期限切れとみなされる時間([Rippleエポック以降の経過秒数][])。 | | `URI` | 文字列 | Blob | いいえ | 関連する検証可能な資格情報ドキュメントを参照できるURLなど、資格情報に関する任意の追加データ。存在する場合、最小長は1バイトで最大は256バイトです。 | トランザクションの`Account`フィールド(送信者)は、資格情報の発行者です。発行者と対象(Subject)アカウントは同じアカウントでも構いません。 @@ -40,13 +39,12 @@ CredentialCreateトランザクションは、レジャーにCredentialを作成 すべてのトランザクションで発生する可能性のあるエラーの他に、CredentialCreateトランザクションでは以下の[トランザクション結果コード](../transaction-results/index.md)が発生する可能性があります。 -| エラーコード | 説明 | -| :---------------------- | ---- | -| `tecDUPLICATE` | 同じSubject、Issuer、およびCredentialTypeを持つCredentialがすでに存在しています。 | -| `tecEXPIRED` | Credentialの有効期限に過去の日時が設定されています。 | -| `tecNO_TARGET` | `Subject`フィールドで指定されたアカウントはレジャーで資金提供されているアカウントではありません。 | -| `temDISABLED` | 関連するAmendmentが有効になっていません。 | +| エラーコード | 説明 | +| :---------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | +| `tecDUPLICATE` | 同じSubject、Issuer、およびCredentialTypeを持つCredentialがすでに存在しています。 | +| `tecEXPIRED` | Credentialの有効期限に過去の日時が設定されています。 | +| `tecNO_TARGET` | `Subject`フィールドで指定されたアカウントはレジャーで資金提供されているアカウントではありません。 | +| `temDISABLED` | 関連するAmendmentが有効になっていません。 | | `temINVALID_ACCOUNT_ID` | 提供された`Subject`フィールドが無効です。例えば、[ACCOUNT_ZERO](../../../../concepts/accounts/addresses.md#特別なアドレス)が含まれている場合です。 | - {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/transactions/types/credentialdelete.md b/@l10n/ja/docs/references/protocol/transactions/types/credentialdelete.md index 42c6188476..a392e1b5da 100644 --- a/@l10n/ja/docs/references/protocol/transactions/types/credentialdelete.md +++ b/@l10n/ja/docs/references/protocol/transactions/types/credentialdelete.md @@ -1,36 +1,34 @@ --- seo: - description: レジャーから認証情報を削除し、事実上失効させます。 - status: not_enabled + description: レジャーから認証情報を削除し、事実上失効させます。 + status: not_enabled --- + # CredentialDelete CredentialDeleteトランザクションは、レジャーから認証情報を削除し、事実上失効させます。ユーザは[準備金要件](../../../../concepts/accounts/reserves.md)を調整するために、不要な資格情報を削除することもできます。 - ## CredentialDelete JSONの例 ```json { - "TransactionType" : "CredentialDelete", - "Account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "Subject": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "CredentialType": "6D795F63726564656E7469616C", - "Fee": "10", - "Flags": 0, - "Sequence": 234203 + "TransactionType": "CredentialDelete", + "Account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "Subject": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "CredentialType": "6D795F63726564656E7469616C", + "Fee": "10", + "Flags": 0, + "Sequence": 234203 } ``` - ## CredentialDeleteのフィールド - [共通フィールド][]に加えて、CredentialDeleteトランザクションは以下のフィールドを使用します。 -| フィールド | JSON型 | [内部の型][] | 必須? | 説明 | -| :--------------- | :-------------------- | :----------- | :----- | ---- | -| `CredentialType` | 文字列 - 16進数 | Blob | はい | 削除する資格情報の種類を定義する任意のデータ。最小長は1バイトで、最大長は256バイトです。 | +| フィールド | JSON型 | [内部の型][] | 必須? | 説明 | +| :--------------- | :-------------------- | :----------- | :----- | ----------------------------------------------------------------------------------------------------------------- | +| `CredentialType` | 文字列 - 16進数 | Blob | はい | 削除する資格情報の種類を定義する任意のデータ。最小長は1バイトで、最大長は256バイトです。 | | `Subject` | 文字列 - [アドレス][] | AccountID | いいえ | 削除する資格情報の対象者。省略された場合、`Account`(トランザクションの送信者)を資格情報の対象者として使用します。 | | `Issuer` | 文字列 - [アドレス][] | AccountID | いいえ | 削除する資格情報の発行者。省略された場合、`Account`(トランザクションの送信者)を資格情報の発行者として使用します。 | @@ -38,15 +36,13 @@ CredentialDeleteトランザクションは、レジャーから認証情報を このトランザクションは、指定された対象者、発行者、および資格情報の種類を持つ[Credentialレジャーエントリ](../../ledger-data/ledger-entry-types/credential.md)を探し、トランザクションの送信者に権限がある場合にそのエントリを削除します。資格情報の保持者または発行者は、いつでもそれを削除できます。資格情報が期限切れの場合、誰でも削除できます。 - ## エラーケース -| エラーコード | 説明 | -| :---------------------- | ---- | -| `temDISABLED` | 関連するAmendmentが有効になっていません。 | +| エラーコード | 説明 | +| :---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `temDISABLED` | 関連するAmendmentが有効になっていません。 | | `temINVALID_ACCOUNT_ID` | 提供された`Subject`または`Issuer`フィールドが無効です。例えば、[ACCOUNT_ZERO](../../../../concepts/accounts/addresses.md#特別なアドレス)が含まれている場合です。 | -| `tecNO_PERMISSION` | 送信者が資格情報の発行者でも対象者でもなく、資格情報が期限切れでもありません。 | -| `tecNO_ENTRY` | 指定された資格情報がレジャーに存在しません。 | - +| `tecNO_PERMISSION` | 送信者が資格情報の発行者でも対象者でもなく、資格情報が期限切れでもありません。 | +| `tecNO_ENTRY` | 指定された資格情報がレジャーに存在しません。 | {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/transactions/types/depositpreauth.md b/@l10n/ja/docs/references/protocol/transactions/types/depositpreauth.md index bcccc53e4e..a3fc3662be 100644 --- a/@l10n/ja/docs/references/protocol/transactions/types/depositpreauth.md +++ b/@l10n/ja/docs/references/protocol/transactions/types/depositpreauth.md @@ -1,12 +1,13 @@ --- seo: - description: DepositPreauthトランザクションは別のアカウントに対し、このトランザクションの送信者に支払いを送金することを事前承認します。 + description: DepositPreauthトランザクションは別のアカウントに対し、このトランザクションの送信者に支払いを送金することを事前承認します。 labels: - セキュリティ --- -# DepositPreauth -[[ソース]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/DepositPreauth.cpp "Source") +# DepositPreauth + +[[ソース]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/DepositPreauth.cpp "Source") DepositPreauthトランザクションは、あなたのアカウントへの支払いを送金するための事前承認を付与します。これは、あなたが[Deposit Authorization](../../../../concepts/accounts/depositauth.md)を使用している(または使用する予定がある)場合にのみ有用です。 @@ -19,54 +20,58 @@ DepositPreauthトランザクションは、あなたのアカウントへの支 {% tabs %} {% tab label="個別アカウントの事前承認" %} + ```json { - "TransactionType" : "DepositPreauth", - "Account" : "rsUiUMpnrgxQp24dJYZDhmV4bE3aBtQyt8", - "Authorize" : "rEhxGqkqPPSxQ3P25J66ft5TwpzV14k2de", - "Fee" : "10", - "Flags" : 2147483648, - "Sequence" : 2 + "TransactionType": "DepositPreauth", + "Account": "rsUiUMpnrgxQp24dJYZDhmV4bE3aBtQyt8", + "Authorize": "rEhxGqkqPPSxQ3P25J66ft5TwpzV14k2de", + "Fee": "10", + "Flags": 2147483648, + "Sequence": 2 } ``` + {% /tab %} {% tab label="資格情報による事前承認" %} + ```json { - "TransactionType" : "DepositPreauth", - "Account" : "rsUiUMpnrgxQp24dJYZDhmV4bE3aBtQyt8", - "AuthorizeCredentials": [{ - "Credential": { - "Issuer": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "CredentialType": "6D795F63726564656E7469616C" + "TransactionType": "DepositPreauth", + "Account": "rsUiUMpnrgxQp24dJYZDhmV4bE3aBtQyt8", + "AuthorizeCredentials": [ + { + "Credential": { + "Issuer": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "CredentialType": "6D795F63726564656E7469616C" + } } - }], - "Fee" : "10", + ], + "Fee": "10", "Flags": 0, "Sequence": 230984 } ``` + {% /tab %} {% /tabs %} {% tx-example txid="CB1BF910C93D050254C049E9003DA1A265C107E0C8DE4A7CFF55FADFD39D5656" /%} - {% raw-partial file="/@l10n/ja/docs/_snippets/tx-fields-intro.md" /%} -| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | -| :----------------------- | :-------------------- | :----------- | :----- | ---- | -| `Authorize` | 文字列 - [アドレス][] | AccountID | いいえ | 事前承認するアカウント。 | -| `AuthorizeCredentials` | 配列 | Array | いいえ | 承認する資格証明書のセット。 _([Credentials amendment][]が必要です。 {% not-enabled /%})_ | -| `Unauthorize` | 文字列 | AccountID | いいえ | 事前承認を取り消すアカウント。 | -| `UnauthorizeCredentials` | 配列 | Array | いいえ | 事前承認を取り消す資格証明書のセット。 _([Credentials amendment][]が必要です。 {% not-enabled /%})_ | +| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | +| :----------------------- | :-------------------- | :----------- | :----- | --------------------------------------------------------------------------------------------------- | +| `Authorize` | 文字列 - [アドレス][] | AccountID | いいえ | 事前承認するアカウント。 | +| `AuthorizeCredentials` | 配列 | Array | いいえ | 承認する資格証明書のセット。 _([Credentials amendment][]が必要です。 {% not-enabled /%})_ | +| `Unauthorize` | 文字列 | AccountID | いいえ | 事前承認を取り消すアカウント。 | +| `UnauthorizeCredentials` | 配列 | Array | いいえ | 事前承認を取り消す資格証明書のセット。 _([Credentials amendment][]が必要です。 {% not-enabled /%})_ | `Authorize`, `AuthorizeCredentials`, `Unauthorize`, or `UnauthorizeCredentials`の**いずれか**を提供する必要があります。 このトランザクションが成功すると、提供されたフィールドに基づいて、[DepositPreauthエントリ](../../ledger-data/ledger-entry-types/depositpreauth.md)が作成または削除されます。 - ### AuthorizeCredentialsオブジェクト 提供される場合、`AuthorizeCredentials`フィールドまたは`UnauthorizeCredentials`フィールドの各メンバーは、次のフィールドを持つ内部オブジェクトでなければなりません。 @@ -80,14 +85,14 @@ DepositPreauthトランザクションは、あなたのアカウントへの支 すべてのトランザクションで発生する可能性のあるエラータイプに加えて、DepositPreauthトランザクションは次のエラーコードを生成することがあります。 -| エラーコード | 説明 | -| :------------------------ | ---- | -| `tecDUPLICATE` | トランザクションはすでに存在する事前承認を作成します。 | +| エラーコード | 説明 | +| :------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `tecDUPLICATE` | トランザクションはすでに存在する事前承認を作成します。 | | `tecINSUFFICIENT_RESERVE` | 送信者は[準備金要件](../../../../concepts/accounts/reserves.md)を満たしていません。(DepositPreauthエントリは承認者の所有者準備金に1つのアイテムとしてカウントされます。) | -| `tecNO_ENTRY` | トランザクションは存在しない事前承認を取り消そうとしました。 | -| `tecNO_ISSUER` | 指定された資格証明書発行者の1つ以上がレジャーに存在しません。 | -| `tecNO_TARGET` | トランザクションは、レジャーの資金提供アカウントではないアカウントを承認しようとしました。 | -| `temCANNOT_PREAUTH_SELF` | `Authorize`フィールドのアドレスはトランザクションの送信者です。自分自身を事前承認することはできません。 | -| `temDISABLED` | 必要なAmendmentが有効になっていません。 | +| `tecNO_ENTRY` | トランザクションは存在しない事前承認を取り消そうとしました。 | +| `tecNO_ISSUER` | 指定された資格証明書発行者の1つ以上がレジャーに存在しません。 | +| `tecNO_TARGET` | トランザクションは、レジャーの資金提供アカウントではないアカウントを承認しようとしました。 | +| `temCANNOT_PREAUTH_SELF` | `Authorize`フィールドのアドレスはトランザクションの送信者です。自分自身を事前承認することはできません。 | +| `temDISABLED` | 必要なAmendmentが有効になっていません。 | {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/transactions/types/diddelete.md b/@l10n/ja/docs/references/protocol/transactions/types/diddelete.md index 1843e398f7..cdbde1d2a5 100644 --- a/@l10n/ja/docs/references/protocol/transactions/types/diddelete.md +++ b/@l10n/ja/docs/references/protocol/transactions/types/diddelete.md @@ -2,10 +2,11 @@ html: diddelete.html parent: transaction-types.html seo: - description: DIDを削除する。 + description: DIDを削除する。 labels: - DID --- + # DIDDelete [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/DID.cpp "ソース") @@ -16,27 +17,25 @@ _([DID Amendment][])_ {% admonition type="info" name="注記" %}このトランザクションは[共通フィールド][]のみ利用します。{% /admonition %} - ## {% $frontmatter.seo.title %} JSONの例 ```json { - "TransactionType": "DIDDelete", - "Account": "rp4pqYgrTAtdPHuZd1ZQWxrzx45jxYcZex", - "Fee": "12", - "Sequence": 391, - "SigningPubKey":"0293A815C095DBA82FAC597A6BB9D338674DB93168156D84D18417AD509FFF5904", - "TxnSignature":"3044022011E9A7EE3C7AE9D202848390522E6840F7F3ED098CD13E..." + "TransactionType": "DIDDelete", + "Account": "rp4pqYgrTAtdPHuZd1ZQWxrzx45jxYcZex", + "Fee": "12", + "Sequence": 391, + "SigningPubKey": "0293A815C095DBA82FAC597A6BB9D338674DB93168156D84D18417AD509FFF5904", + "TxnSignature": "3044022011E9A7EE3C7AE9D202848390522E6840F7F3ED098CD13E..." } ``` - ## エラーケース すべてのトランザクションで発生する可能性のあるエラーの他に、{% $frontmatter.seo.title %}トランザクションでは以下の[トランザクション結果コード](../transaction-results/index.md)が発生する可能性があります: -| エラーコード | 説明 | -|:--------------------|:---------------------------------------------| -| `tecNO_ENTRY` | アカウントはDIDを保有していません。 | +| エラーコード | 説明 | +| :------------ | :---------------------------------- | +| `tecNO_ENTRY` | アカウントはDIDを保有していません。 | {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/transactions/types/didset.md b/@l10n/ja/docs/references/protocol/transactions/types/didset.md index 5b3f7fa374..448214fe04 100644 --- a/@l10n/ja/docs/references/protocol/transactions/types/didset.md +++ b/@l10n/ja/docs/references/protocol/transactions/types/didset.md @@ -2,10 +2,11 @@ html: didset.html parent: transaction-types.html seo: - description: DIDを作成または更新します。 + description: DIDを作成または更新します。 labels: - DID --- + # DIDSet [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/DID.cpp "ソース") @@ -14,7 +15,6 @@ _([DID Amendment][])_ 新しい[DIDレジャーエントリ](../../ledger-data/ledger-entry-types/did.md)を作成したり、既存の項目を更新したりします。 - ## {% $frontmatter.seo.title %} JSONの例 ```json @@ -25,30 +25,29 @@ _([DID Amendment][])_ "Sequence": 391, "URI": "697066733A2F2F62616679626569676479727A74357366703775646D37687537367568377932366E6634646675796C71616266336F636C67747179353566627A6469", "Data": "", - "SigningPubKey":"0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020" + "SigningPubKey": "0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020" } ``` {% raw-partial file="/@l10n/ja/docs/_snippets/tx-fields-intro.md" /%} -| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | -|:--------------|:---------|:-----------|:------|:----| -| `Data` | 文字列 | Blob | いいえ | DIDに関連付けられたID情報の公開証明。 | -| `DIDDocument` | 文字列 | Blob | いいえ | DIDに関連付けられたDIDドキュメント。 | -| `URI` | 文字列 | Blob | いいえ | DIDに関連付けられたデータを指すユニバーサルリソース識別子 | +| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | +| :------------ | :------- | :----------- | :----- | :-------------------------------------------------------- | +| `Data` | 文字列 | Blob | いいえ | DIDに関連付けられたID情報の公開証明。 | +| `DIDDocument` | 文字列 | Blob | いいえ | DIDに関連付けられたDIDドキュメント。 | +| `URI` | 文字列 | Blob | いいえ | DIDに関連付けられたデータを指すユニバーサルリソース識別子 | `DIDSet`トランザクションを送信するときには`Data`、`DIDDocument`、`URI`のいずれかを含める必要があります。この3つのフィールドが欠けていると、トランザクションは失敗します。 {% admonition type="info" name="注記" %}既存のDIDレジャーエントリから`Data`、`DIDDocument`、`URI`フィールドを削除するには、そのフィールドを空文字列として設定します。{% /admonition %} - ## エラーケース すべてのトランザクションで発生する可能性のあるエラーに加えて、{% $frontmatter.seo.title %}トランザクションでは、次の[トランザクション結果コード](../transaction-results/index.md)が発生する可能性があります。 -| エラーコード | 説明 | -|:--------------------|:---------------------------------------------| -| `tecEMPTY_DID` | トランザクションによって空のDIDレジャーエントリを作成しています。更新によって`Data`、`DIDDocument`、`URI`フィールドが削除されていないか確認してください。 | -| `temEMPTY_DID` | トランザクションが不正で、DID情報がありません。`Data`、`DIDDocument`、`URI`フィールドのいずれかを含めてください。 | +| エラーコード | 説明 | +| :------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `tecEMPTY_DID` | トランザクションによって空のDIDレジャーエントリを作成しています。更新によって`Data`、`DIDDocument`、`URI`フィールドが削除されていないか確認してください。 | +| `temEMPTY_DID` | トランザクションが不正で、DID情報がありません。`Data`、`DIDDocument`、`URI`フィールドのいずれかを含めてください。 | {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/transactions/types/escrowcancel.md b/@l10n/ja/docs/references/protocol/transactions/types/escrowcancel.md index 7537fda41d..1eddc8e543 100644 --- a/@l10n/ja/docs/references/protocol/transactions/types/escrowcancel.md +++ b/@l10n/ja/docs/references/protocol/transactions/types/escrowcancel.md @@ -1,10 +1,12 @@ --- seo: - description: Escrowに留保されているXRPを送金元に返金します。 + description: Escrowに留保されているXRPを送金元に返金します。 labels: - - Escrow + - Escrow --- + # EscrowCancel + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/Escrow.cpp "Source") Escrowに留保されているXRPを送金元に返金します。 @@ -15,26 +17,25 @@ Escrowに留保されているXRPを送金元に返金します。 ```json { - "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "TransactionType": "EscrowCancel", - "Owner": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "OfferSequence": 7, + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "TransactionType": "EscrowCancel", + "Owner": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "OfferSequence": 7 } ``` {% tx-example txid="B24B9D7843F99AED7FB8A3929151D0CCF656459AE40178B77C9D44CED64E839B" /%} - {% raw-partial file="/@l10n/ja/docs/_snippets/tx-fields-intro.md" /%} -| フィールド | JSONの型 | [内部の型][] | 説明 | -|:----------------|:----------|:------------------|:---------------------------| -| `Owner` | 文字列 | AccountID | Escrow経由の支払いに資金を供給した支払元アカウントのアドレス。 | -| `OfferSequence` | 数値 | UInt32 | 取り消すEscrowを作成した[EscrowCreateトランザクション][]のトランザクションシーケンス。 | +| フィールド | JSONの型 | [内部の型][] | 説明 | +| :-------------- | :------- | :----------- | :------------------------------------------------------------------------------------- | +| `Owner` | 文字列 | AccountID | Escrow経由の支払いに資金を供給した支払元アカウントのアドレス。 | +| `OfferSequence` | 数値 | UInt32 | 取り消すEscrowを作成した[EscrowCreateトランザクション][]のトランザクションシーケンス。 | EscrowCancelトランザクションはどのアカウントからでも送信できます。 -* 対応する[EscrowCreateトランザクション][]で`CancelAfter`時刻が指定されていない場合、EscrowCancelトランザクションは失敗します。 -* 指定されていても、`CancelAfter`時刻が最後に閉鎖されたレジャーの閉鎖時刻よりも後である場合は、EscrowCancelトランザクションが失敗します。 +- 対応する[EscrowCreateトランザクション][]で`CancelAfter`時刻が指定されていない場合、EscrowCancelトランザクションは失敗します。 +- 指定されていても、`CancelAfter`時刻が最後に閉鎖されたレジャーの閉鎖時刻よりも後である場合は、EscrowCancelトランザクションが失敗します。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/transactions/types/escrowcreate.md b/@l10n/ja/docs/references/protocol/transactions/types/escrowcreate.md index 8208231965..f50c867fbd 100644 --- a/@l10n/ja/docs/references/protocol/transactions/types/escrowcreate.md +++ b/@l10n/ja/docs/references/protocol/transactions/types/escrowcreate.md @@ -1,10 +1,12 @@ --- seo: - description: Escrowプロセスが終了または取り消されるまでXRPを隔離します。 + description: Escrowプロセスが終了または取り消されるまでXRPを隔離します。 labels: - - Escrow + - Escrow --- + # EscrowCreate + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/Escrow.cpp "Source") Escrowプロセスが終了または取り消されるまでXRPを隔離します。 @@ -15,41 +17,40 @@ Escrowプロセスが終了または取り消されるまでXRPを隔離しま ```json { - "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "TransactionType": "EscrowCreate", - "Amount": "10000", - "Destination": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", - "CancelAfter": 533257958, - "FinishAfter": 533171558, - "Condition": "A0258020E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855810100", - "DestinationTag": 23480, - "SourceTag": 11747 + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "TransactionType": "EscrowCreate", + "Amount": "10000", + "Destination": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", + "CancelAfter": 533257958, + "FinishAfter": 533171558, + "Condition": "A0258020E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855810100", + "DestinationTag": 23480, + "SourceTag": 11747 } ``` {% tx-example txid="C44F2EB84196B9AD820313DBEBA6316A15C9A2D35787579ED172B87A30131DA7" /%} - {% raw-partial file="/@l10n/ja/docs/_snippets/tx-fields-intro.md" /%} -| フィールド | JSONの型 | [内部の型][] | 説明 | -|:-----------------|:----------|:------------------|:--------------------------| -| `Amount` | 文字列 | Amount | 送金元の残高から差し引いてエスクローに留保する[XRPのdrop数][]の額。エスクローに留保されたXRPは`Destination`アドレスに送金されるか(`FinishAfter`時刻の経過後)、または送金元に戻されます(`CancelAfter`時刻の経過後)。 | -| `Destination` | 文字列 | AccountID | エスクローに留保されたXRPを受領するアドレス。 | -| `CancelAfter` | 数値 | UInt32 | _(省略可)_ このEscrowの有効期限([Rippleエポック以降の経過秒数][])。この値は変更できません。この時刻の経過後にのみ資金を送金元に返金できます。 | -| `FinishAfter` | 数値 | UInt32 | _(省略可)_ Escrowに留保されたXRPを受取人に対してリリースできる時刻([Rippleエポック以降の経過秒数][])。この値は変更できません。この時刻に達するまでは資金を移動できません。 | -| `Condition` | 文字列 | Blob | _(省略可)_[PREIMAGE-SHA-256 Crypto-condition](https://tools.ietf.org/html/draft-thomas-crypto-conditions-02#section-8.1)を表す16進数値。この条件が満たされている場合にのみ、資金を受取人に送金できます。 | -| `DestinationTag` | 数値 | UInt32 | _(省略可)_ Escrowに留保されている支払いの宛先(宛先アドレスでホスティングされている受取人など) を詳しく指定するための任意のタグ。 | +| フィールド | JSONの型 | [内部の型][] | 説明 | +| :--------------- | :------- | :----------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Amount` | 文字列 | Amount | 送金元の残高から差し引いてエスクローに留保する[XRPのdrop数][]の額。エスクローに留保されたXRPは`Destination`アドレスに送金されるか(`FinishAfter`時刻の経過後)、または送金元に戻されます(`CancelAfter`時刻の経過後)。 | +| `Destination` | 文字列 | AccountID | エスクローに留保されたXRPを受領するアドレス。 | +| `CancelAfter` | 数値 | UInt32 | _(省略可)_ このEscrowの有効期限([Rippleエポック以降の経過秒数][])。この値は変更できません。この時刻の経過後にのみ資金を送金元に返金できます。 | +| `FinishAfter` | 数値 | UInt32 | _(省略可)_ Escrowに留保されたXRPを受取人に対してリリースできる時刻([Rippleエポック以降の経過秒数][])。この値は変更できません。この時刻に達するまでは資金を移動できません。 | +| `Condition` | 文字列 | Blob | _(省略可)_[PREIMAGE-SHA-256 Crypto-condition](https://tools.ietf.org/html/draft-thomas-crypto-conditions-02#section-8.1)を表す16進数値。この条件が満たされている場合にのみ、資金を受取人に送金できます。 | +| `DestinationTag` | 数値 | UInt32 | _(省略可)_ Escrowに留保されている支払いの宛先(宛先アドレスでホスティングされている受取人など) を詳しく指定するための任意のタグ。 | 次のフィールドの組み合わせのいずれかを指定する必要があります。 -| 概要 | `FinishAfter` | `Condition` | `CancelAfter` | -|-----------------------------------|---------------|-------------|---------------| -| 時刻ベース | ✅ | | | -| 有効期限ありの時刻ベース | ✅ | | ✅ | -| 時刻あり条件 | ✅ | ✅ | | -| 有効期限と時刻ありの条件 | ✅ | ✅ | ✅ | -| 有効期限ありの条件 | | ✅ | ✅ | +| 概要 | `FinishAfter` | `Condition` | `CancelAfter` | +| ------------------------ | ------------- | ----------- | ------------- | +| 時刻ベース | ✅ | | | +| 有効期限ありの時刻ベース | ✅ | | ✅ | +| 時刻あり条件 | ✅ | ✅ | | +| 有効期限と時刻ありの条件 | ✅ | ✅ | ✅ | +| 有効期限ありの条件 | | ✅ | ✅ | 有効期限のない条件付きエスクローを作成することはできませんが、有効期限を非常に遠い将来に指定することはできます。 diff --git a/@l10n/ja/docs/references/protocol/transactions/types/escrowfinish.md b/@l10n/ja/docs/references/protocol/transactions/types/escrowfinish.md index 8c6bd60ce1..db65ecf460 100644 --- a/@l10n/ja/docs/references/protocol/transactions/types/escrowfinish.md +++ b/@l10n/ja/docs/references/protocol/transactions/types/escrowfinish.md @@ -1,10 +1,12 @@ --- seo: - description: エスクローされたXRPを受取人へ送金します。 + description: エスクローされたXRPを受取人へ送金します。 labels: - - Escrow + - Escrow --- + # EscrowFinish + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/Escrow.cpp "Source") エスクロー(保留中の支払い)から受取人へXRPを送金します。 @@ -15,27 +17,26 @@ labels: ```json { - "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "TransactionType": "EscrowFinish", - "Owner": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "OfferSequence": 7, - "Condition": "A0258020E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855810100", - "Fulfillment": "A0028000" + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "TransactionType": "EscrowFinish", + "Owner": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "OfferSequence": 7, + "Condition": "A0258020E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855810100", + "Fulfillment": "A0028000" } ``` {% tx-example txid="317081AF188CDD4DBE55C418F41A90EC3B959CDB3B76105E0CBE6B7A0F56C5F7" /%} - {% raw-partial file="/@l10n/ja/docs/_snippets/tx-fields-intro.md" /%} -| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | -| :-------------- | :----------- | :----------- | :----- | ---- | -| `Owner` | 文字列 | AccountID | はい | エスクローに資金を供給した支払元アカウントのアドレス。 | -| `OfferSequence` | 数値 | UInt32 | はい | 対象となるエスクローを作成した[EscrowCreateトランザクション][]のトランザクションシーケンス。 | -| `Condition` | 文字列 | Blob | いいえ | 以前に指定されたエスクローの[PREIMAGE-SHA-256 Crypto-condition](https://tools.ietf.org/html/draft-thomas-crypto-conditions-02#section-8.1)に一致する16進数値。 | +| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | +| :-------------- | :----------- | :----------- | :----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `Owner` | 文字列 | AccountID | はい | エスクローに資金を供給した支払元アカウントのアドレス。 | +| `OfferSequence` | 数値 | UInt32 | はい | 対象となるエスクローを作成した[EscrowCreateトランザクション][]のトランザクションシーケンス。 | +| `Condition` | 文字列 | Blob | いいえ | 以前に指定されたエスクローの[PREIMAGE-SHA-256 Crypto-condition](https://tools.ietf.org/html/draft-thomas-crypto-conditions-02#section-8.1)に一致する16進数値。 | | `CredentialIDs` | 文字列の配列 | Vector256 | いいえ | このトランザクションによって作成されたエスクローによる資金提供を承認する資格証明書のセット。各配列のメンバーは、レジャーの資格証明書エントリのレジャーエントリIDでなければなりません。詳細については、[Credential ID](./payment.md#credential-ids)をご覧ください。 | -| `Fulfillment` | 文字列 | Blob | いいえ | エスクローの`Condition`に一致する[PREIMAGE-SHA-256 crypto-condition fulfillment](https://tools.ietf.org/html/draft-thomas-crypto-conditions-02#section-8.1.4)の16進数値。 | +| `Fulfillment` | 文字列 | Blob | いいえ | エスクローの`Condition`に一致する[PREIMAGE-SHA-256 crypto-condition fulfillment](https://tools.ietf.org/html/draft-thomas-crypto-conditions-02#section-8.1.4)の16進数値。 | すべてのアカウントがEscrowFinishトランザクションを送信できます。 diff --git a/@l10n/ja/docs/references/protocol/transactions/types/index.md b/@l10n/ja/docs/references/protocol/transactions/types/index.md index 0210b01df7..e5a82b807d 100644 --- a/@l10n/ja/docs/references/protocol/transactions/types/index.md +++ b/@l10n/ja/docs/references/protocol/transactions/types/index.md @@ -2,21 +2,21 @@ html: transaction-types.html parent: transaction-formats.html seo: - description: トランザクションのタイプは、どういったタイプの操作を実行することが想定されているのかを示します。 + description: トランザクションのタイプは、どういったタイプの操作を実行することが想定されているのかを示します。 metadata: indexPage: true labels: - ブロックチェーン --- + # トランザクションのタイプ トランザクションのタイプ(`TransactionType`フィールド)は、トランザクションに関する最も基本的な情報です。トランザクションで、どういったタイプの操作を実行することが想定されているのかを示します。 すべてのトランザクションに、特定の共通フィールドが含まれています。 -* [共通フィールド](../common-fields.md) +- [共通フィールド](../common-fields.md) トランザクションのタイプごとに、実行される操作のタイプに関連した追加のフィールドが含まれています。 - {% child-pages /%} diff --git a/@l10n/ja/docs/references/protocol/transactions/types/mptokenauthorize.md b/@l10n/ja/docs/references/protocol/transactions/types/mptokenauthorize.md index 33afef27b1..5554264170 100644 --- a/@l10n/ja/docs/references/protocol/transactions/types/mptokenauthorize.md +++ b/@l10n/ja/docs/references/protocol/transactions/types/mptokenauthorize.md @@ -1,11 +1,12 @@ --- seo: - description: アカウントが特定のMPTの残高を保持することを許可します。 + description: アカウントが特定のMPTの残高を保持することを許可します。 labels: - - Multi-Purpose Token, MPT + - Multi-Purpose Token, MPT --- # MPTokenAuthorize + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/MPTokenAuthorize.cpp "ソース") {% partial file="/@l10n/ja/docs/_snippets/mpts-disclaimer.md" /%} @@ -18,21 +19,20 @@ labels: {% raw-partial file="/@l10n/ja/docs/_snippets/tx-fields-intro.md" /%} -| フィールド | JSON型 | [内部の型][] | 説明 | -|:--------------------|:--------------------|:------------------|:-------------------| -| `Account` | 文字列 | `AccountID` | このアドレスはMPTの発行者または潜在的な保有者のいずれかを示すことができます。 | -| `TransactionType` | オブジェクト | `UInt16` | 新しいトランザクションタイプMPTokenAuthorizeを示します。整数値は29です。 | -| `MPTokenIssuanceID` | 文字列 | `UIn192` | 対象となるMPTのIDを示します。 | -| `Holder` | 文字列 | `AccountID` | (任意) 発行者が承認したい保有者のアドレスを指定します。承認/ホワイトリストにのみ使用され、保有者が送信する場合は空である必要があります。 | -| `Flags` | 数値 | `UInt32` | [MPTokenAuthorizeのフラグ](#mptokenauthorizeのフラグ)をご覧ください。 | - +| フィールド | JSON型 | [内部の型][] | 説明 | +| :------------------ | :----------- | :----------- | :--------------------------------------------------------------------------------------------------------------------------------------- | +| `Account` | 文字列 | `AccountID` | このアドレスはMPTの発行者または潜在的な保有者のいずれかを示すことができます。 | +| `TransactionType` | オブジェクト | `UInt16` | 新しいトランザクションタイプMPTokenAuthorizeを示します。整数値は29です。 | +| `MPTokenIssuanceID` | 文字列 | `UIn192` | 対象となるMPTのIDを示します。 | +| `Holder` | 文字列 | `AccountID` | (任意) 発行者が承認したい保有者のアドレスを指定します。承認/ホワイトリストにのみ使用され、保有者が送信する場合は空である必要があります。 | +| `Flags` | 数値 | `UInt32` | [MPTokenAuthorizeのフラグ](#mptokenauthorizeのフラグ)をご覧ください。 | ### MPTokenAuthorizeのフラグ MPTokenAuthorizeタイプのトランザクションは、Flagsフィールドにおいて以下の追加の値をサポートします。 -| フラグ名 | 16進数値 | 10進数値 | 説明 | -|:-------------------|:-------------|:-------------|:----------------------------| -| `tfMPTUnauthorize` | `0x00000001` | 1 | 保有者が送信する場合に設定すると、保有者が`MPToken`の保持を望まなくなったことを示し、その結果`MPToken`は削除されます。保有者の`MPToken`の残高がゼロでない状態でこのフラグを設定しようとすると、トランザクションは失敗します。一方、発行者が送信する場合に設定すると、発行者が保有者の承認を取り消したい(アローリストにのみ適用)ことを意味し、`MPToken`の`lsfMPTAuthorized`フラグが解除されます。 | +| フラグ名 | 16進数値 | 10進数値 | 説明 | +| :----------------- | :----------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `tfMPTUnauthorize` | `0x00000001` | 1 | 保有者が送信する場合に設定すると、保有者が`MPToken`の保持を望まなくなったことを示し、その結果`MPToken`は削除されます。保有者の`MPToken`の残高がゼロでない状態でこのフラグを設定しようとすると、トランザクションは失敗します。一方、発行者が送信する場合に設定すると、発行者が保有者の承認を取り消したい(アローリストにのみ適用)ことを意味し、`MPToken`の`lsfMPTAuthorized`フラグが解除されます。 | {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/transactions/types/mptokenissuancecreate.md b/@l10n/ja/docs/references/protocol/transactions/types/mptokenissuancecreate.md index e0199d8c64..df873c2605 100644 --- a/@l10n/ja/docs/references/protocol/transactions/types/mptokenissuancecreate.md +++ b/@l10n/ja/docs/references/protocol/transactions/types/mptokenissuancecreate.md @@ -1,11 +1,12 @@ --- seo: - description: 新しいMulti-Purpose Tokenを発行します。 + description: 新しいMulti-Purpose Tokenを発行します。 labels: - - Multi-Purpose Token, MPT + - Multi-Purpose Token, MPT --- # MPTokenIssuanceCreate + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/MPTokenIssuanceCreate.cpp "ソース") {% partial file="/@l10n/ja/docs/_snippets/mpts-disclaimer.md" /%} @@ -37,27 +38,26 @@ labels: {% raw-partial file="/@l10n/ja/docs/_snippets/tx-fields-intro.md" /%} -| フィールド | JSON型 | [内部の型][] | 説明 | -| :---------------- | :----- | :----------- | ---- | -| `TransactionType` | 文字列 | UInt16 | 新しいトランザクションタイプMPTokenIssuanceCreateを示します。 | -| `AssetScale` | 数値 | UInt8 | (任意) 標準単位と対応する分数単位との間の桁数の差を表します。より正確には、AssetScaleは自然数(0, 1, 2, ...)で、1標準単位は対応する分数単位の10^(-scale)に等しくなります。分数単位が標準単位と等しい場合、AssetScaleは0となります。指定されない場合はデフォルトで0となります。 | -| `Flags` | 数値 | UInt16 | このトランザクションのフラグを指定します。[MPTokenIssuanceCreateのフラグ](#mptokenissuancecreateのフラグ)をご覧ください。 | +| フィールド | JSON型 | [内部の型][] | 説明 | +| :---------------- | :----- | :----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `TransactionType` | 文字列 | UInt16 | 新しいトランザクションタイプMPTokenIssuanceCreateを示します。 | +| `AssetScale` | 数値 | UInt8 | (任意) 標準単位と対応する分数単位との間の桁数の差を表します。より正確には、AssetScaleは自然数(0, 1, 2, ...)で、1標準単位は対応する分数単位の10^(-scale)に等しくなります。分数単位が標準単位と等しい場合、AssetScaleは0となります。指定されない場合はデフォルトで0となります。 | +| `Flags` | 数値 | UInt16 | このトランザクションのフラグを指定します。[MPTokenIssuanceCreateのフラグ](#mptokenissuancecreateのフラグ)をご覧ください。 | | `TransferFee` | 数値 | UInt16 | (任意) トークンの二次販売に対して発行者が請求する手数料を指定します(二次流通が許可されている場合)。このフィールドの有効な値は0から50,000までで、0.000%から50.000%までの転送レートを0.001刻みで設定できます。tfMPTCanTransferフラグが設定されていない場合、このフィールドは存在できません。存在する場合、トランザクションは失敗し、手数料が請求されます。 | -| `MaximumAmount` | 文字列 | UInt64 | (任意) このトークンが発行される最大アセット量を10進数エンコードの文字列で指定します。指定されない場合、9,223,372,036,854,775,807(2^63-1)に設定されます。 | -| `MPTokenMetadata` | 文字列 | Blob | この発行に関する任意のメタデータで、16進数形式で指定します。このフィールドの制限は1024バイトです。 | - +| `MaximumAmount` | 文字列 | UInt64 | (任意) このトークンが発行される最大アセット量を10進数エンコードの文字列で指定します。指定されない場合、9,223,372,036,854,775,807(2^63-1)に設定されます。 | +| `MPTokenMetadata` | 文字列 | Blob | この発行に関する任意のメタデータで、16進数形式で指定します。このフィールドの制限は1024バイトです。 | ## MPTokenIssuanceCreateのフラグ MPTokenIssuanceCreateトランザクションでは、[`Flags`フィールド](../common-fields.md#Flagsフィールド)に以下の追加の値がサポートされています。 -| フラグ名 | 16進数値 | 10進数値 | 説明 | -| :----------------- | :----------- | :------------ | ---- | -| `tfMPTCanLock` | `0x00000002` | `2` | 設定されている場合、MPTを個別およびグローバルにロックできることを示します。設定されていない場合、MPTはいかなる方法でもロックできません。 | -| `tfMPTRequireAuth` | `0x00000004` | `4` | 設定されている場合、個々の保有者は承認が必要であることを示します。これにより発行者は自身のアセットを保有できる者を制限できます。 | -| `tfMPTCanEscrow` | `0x00000008` | `8` | 設定されている場合、個々の保有者が残高をエスクローに入れることができることを示します。 | -| `tfMPTCanTrade` | `0x00000010` | `16` | 設定されている場合、個々の保有者がXRP Ledger DEXを使用して残高を取引できることを示します。 | -| `tfMPTCanTransfer` | `0x00000020` | `32` | 設定されている場合、トークンを発行者以外のアカウントに転送できることを示します。 | -| `tfMPTCanClawback` | `0x00000040` | `64` | 設定されている場合、発行者がClawbackトランザクションを使用して個々の保有者から価値を回収できることを示します。 | +| フラグ名 | 16進数値 | 10進数値 | 説明 | +| :----------------- | :----------- | :------- | ---------------------------------------------------------------------------------------------------------------------------------------- | +| `tfMPTCanLock` | `0x00000002` | `2` | 設定されている場合、MPTを個別およびグローバルにロックできることを示します。設定されていない場合、MPTはいかなる方法でもロックできません。 | +| `tfMPTRequireAuth` | `0x00000004` | `4` | 設定されている場合、個々の保有者は承認が必要であることを示します。これにより発行者は自身のアセットを保有できる者を制限できます。 | +| `tfMPTCanEscrow` | `0x00000008` | `8` | 設定されている場合、個々の保有者が残高をエスクローに入れることができることを示します。 | +| `tfMPTCanTrade` | `0x00000010` | `16` | 設定されている場合、個々の保有者がXRP Ledger DEXを使用して残高を取引できることを示します。 | +| `tfMPTCanTransfer` | `0x00000020` | `32` | 設定されている場合、トークンを発行者以外のアカウントに転送できることを示します。 | +| `tfMPTCanClawback` | `0x00000040` | `64` | 設定されている場合、発行者がClawbackトランザクションを使用して個々の保有者から価値を回収できることを示します。 | {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/transactions/types/mptokenissuancedestroy.md b/@l10n/ja/docs/references/protocol/transactions/types/mptokenissuancedestroy.md index 3854289624..0e6530687c 100644 --- a/@l10n/ja/docs/references/protocol/transactions/types/mptokenissuancedestroy.md +++ b/@l10n/ja/docs/references/protocol/transactions/types/mptokenissuancedestroy.md @@ -1,10 +1,12 @@ --- seo: - description: Multi-Purpose Tokenを削除します。 + description: Multi-Purpose Tokenを削除します。 labels: - - Multi-Purpose Token, MPT + - Multi-Purpose Token, MPT --- + # MPTokenIssuanceDestroy + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/MPTokenIssuanceDestroy.cpp "ソース") {% partial file="/@l10n/ja/docs/_snippets/mpts-disclaimer.md" /%} @@ -15,11 +17,11 @@ labels: ## MPTokenIssuanceDestroyのJSONの例 -```json +```json { - "TransactionType": "MPTokenIssuanceDestroy", - "Fee": "10", - "MPTokenIssuanceID": "00070C4495F14B0E44F78A264E41713C64B5F89242540EE255534400000000000000" + "TransactionType": "MPTokenIssuanceDestroy", + "Fee": "10", + "MPTokenIssuanceID": "00070C4495F14B0E44F78A264E41713C64B5F89242540EE255534400000000000000" } ``` @@ -27,9 +29,9 @@ labels: {% raw-partial file="/@l10n/ja/docs/_snippets/tx-fields-intro.md" /%} -| フィールド | JSONの型 | [内部の型][] | 説明 | -|:--------------------|:--------------------|:-------------|:------------------| -| `TransactionType` | 文字列 | UInt16 | 新しいトランザクションタイプMPTokenIssuanceDestroyを示します。 | -| `MPTokenIssuanceID` | 文字列 | UInt192 | トランザクションによって削除される`MPTokenIssuance`オブジェクトの識別子。 | +| フィールド | JSONの型 | [内部の型][] | 説明 | +| :------------------ | :------- | :----------- | :------------------------------------------------------------------------ | +| `TransactionType` | 文字列 | UInt16 | 新しいトランザクションタイプMPTokenIssuanceDestroyを示します。 | +| `MPTokenIssuanceID` | 文字列 | UInt192 | トランザクションによって削除される`MPTokenIssuance`オブジェクトの識別子。 | {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/transactions/types/mptokenissuanceset.md b/@l10n/ja/docs/references/protocol/transactions/types/mptokenissuanceset.md index 3486ced9fe..a021b80dfd 100644 --- a/@l10n/ja/docs/references/protocol/transactions/types/mptokenissuanceset.md +++ b/@l10n/ja/docs/references/protocol/transactions/types/mptokenissuanceset.md @@ -1,10 +1,12 @@ --- seo: - description: MPTの変更可能なプロパティを設定します。 + description: MPTの変更可能なプロパティを設定します。 labels: - - Multi-Purpose Token, MPT + - Multi-Purpose Token, MPT --- + # MPTokenIssuanceSet + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/MPTokenIssuanceSet.cpp "ソース") {% partial file="/@l10n/ja/docs/_snippets/mpts-disclaimer.md" /%} @@ -13,12 +15,12 @@ labels: ## MPTokenIssuanceSetの例 -```json +```json { - "TransactionType": "MPTokenIssuanceSet", - "Fee": "10", - "MPTokenIssuanceID": "00070C4495F14B0E44F78A264E41713C64B5F89242540EE255534400000000000000", - "Flags": 1 + "TransactionType": "MPTokenIssuanceSet", + "Fee": "10", + "MPTokenIssuanceID": "00070C4495F14B0E44F78A264E41713C64B5F89242540EE255534400000000000000", + "Flags": 1 } ``` @@ -26,20 +28,20 @@ labels: {% raw-partial file="/@l10n/ja/docs/_snippets/tx-fields-intro.md" /%} -| フィールド | JSON型 | [内部の型][] | 説明 | -|:-------------------|:-------------------|:-------------|:-------------------| -| `TransactionType` | 文字列 | UInt16 | 新しいトランザクションタイプ`MPTokenIssuanceSet`を示します。 | -| `MPTokenIssuanceID`| 文字列 | UInt192 | `MPTokenIssuance`の識別子。 | -| `Holder` | 文字列 | AccountID | (任意) ロック/アンロックする個別のトークン保有者残高のXRPLアドレス。省略した場合、このトランザクションはMPTを保有する全てのアカウントに適用されます。 | -| `Flag` | 数値 | UInt64 | このトランザクションのフラグを指定します。[MPTokenIssuanceSetのフラグ](#mptokenissuancesetのフラグ)をご覧ください。 | +| フィールド | JSON型 | [内部の型][] | 説明 | +| :------------------ | :----- | :----------- | :---------------------------------------------------------------------------------------------------------------------------------------------------- | +| `TransactionType` | 文字列 | UInt16 | 新しいトランザクションタイプ`MPTokenIssuanceSet`を示します。 | +| `MPTokenIssuanceID` | 文字列 | UInt192 | `MPTokenIssuance`の識別子。 | +| `Holder` | 文字列 | AccountID | (任意) ロック/アンロックする個別のトークン保有者残高のXRPLアドレス。省略した場合、このトランザクションはMPTを保有する全てのアカウントに適用されます。 | +| `Flag` | 数値 | UInt64 | このトランザクションのフラグを指定します。[MPTokenIssuanceSetのフラグ](#mptokenissuancesetのフラグ)をご覧ください。 | ### MPTokenIssuanceSetのフラグ `MPTokenIssuanceSet`トランザクションでは、`Flags`フィールドで以下の追加の値がサポートされています。 -| フラグ名 | 16進値 | 10進値 | 説明 | -|:-------------------|:-------------|:--------------|:------------------------------| -| `tfMPTLock` | `0x00000001` | 1 | 設定された場合、このアセットの全てのMPT残高をロックすることを示します。 | -| `tfMPTUnlock` | `0x00000002` | 2 | 設定された場合、このアセットの全てのMPT残高をアンロックすることを示します。 | +| フラグ名 | 16進値 | 10進値 | 説明 | +| :------------ | :----------- | :----- | :-------------------------------------------------------------------------- | +| `tfMPTLock` | `0x00000001` | 1 | 設定された場合、このアセットの全てのMPT残高をロックすることを示します。 | +| `tfMPTUnlock` | `0x00000002` | 2 | 設定された場合、このアセットの全てのMPT残高をアンロックすることを示します。 | {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/transactions/types/nftokenacceptoffer.md b/@l10n/ja/docs/references/protocol/transactions/types/nftokenacceptoffer.md index 0813a7624a..74693e2d16 100644 --- a/@l10n/ja/docs/references/protocol/transactions/types/nftokenacceptoffer.md +++ b/@l10n/ja/docs/references/protocol/transactions/types/nftokenacceptoffer.md @@ -1,16 +1,18 @@ --- seo: - description: NFTokenの購入または売却のオファーを受け入れる。 + description: NFTokenの購入または売却のオファーを受け入れる。 labels: - NFT, 非代替性トークン --- + # NFTokenAcceptOffer + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/NFTokenAcceptOffer.cpp "ソース") `NFTokenAcceptOffer`トランザクションは`NFToken`の購入または売却のオファーを受け入れるために使用されます。トランザクションは次のいずれかになります。 -* 1つのオファーを受け入れます。これは _ダイレクト_ モードと呼ばれます。 -* 2つの異なるオファー(`NFToken`の購入オファーと同じ`NFToken`に対するの売却オファー)をアトミックに受け入れます。これは _ブローカー_ モードと呼ばれます。 +- 1つのオファーを受け入れます。これは _ダイレクト_ モードと呼ばれます。 +- 2つの異なるオファー(`NFToken`の購入オファーと同じ`NFToken`に対するの売却オファー)をアトミックに受け入れます。これは _ブローカー_ モードと呼ばれます。 {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} @@ -40,24 +42,22 @@ labels: トランザクションが動作するモードは、トランザクションの`NFTokenSellOffer`フィールドと`NFTokenBuyOffer`フィールドの存在によって決まります。 -| `NFTokenSellOffer` | `NFTokenBuyOffer` | Mode | -|:-------------------|:------------------|:---------| -| ✔️ | ✔️ | ブローカー | -| ✔️ | X | ダイレクト | -| X | ✔️ | ダイレクト | - +| `NFTokenSellOffer` | `NFTokenBuyOffer` | Mode | +| :----------------- | :---------------- | :--------- | +| ✔️ | ✔️ | ブローカー | +| ✔️ | X | ダイレクト | +| X | ✔️ | ダイレクト | もしこれらのフィールドがどちらも指定されていない場合、トランザクションは不正で、`tem`クラスのエラーを発生させます。 ブローカーモードの意味合いは、ダイレクト・モードのそれとは若干異なります。トランザクションを送信するアカウントはブローカーとして機能し、2つのオファーをまとめてマッチングさせますが、関係する`NFToken`の所有権を取得することはなく、トランザクションが成功すれば、販売者から購入者に直接転送されます。 - ## 実行内容 トランザクションが成功した場合 -* 既存の`owner`の`NFTokenPage`からトークンが削除され、新しい`owner`の`NFTokenPage`に追加されます。 -* `NFTokenOffer`で指定された通り、購入者から販売者に資金が移動します。対応する`NFToken`のオファーに`TransferFee`が指定されている場合、`issuer`は指定されたパーセンテージを受け取り、残りは`NFToken`の販売者に送られます。 +- 既存の`owner`の`NFTokenPage`からトークンが削除され、新しい`owner`の`NFTokenPage`に追加されます。 +- `NFTokenOffer`で指定された通り、購入者から販売者に資金が移動します。対応する`NFToken`のオファーに`TransferFee`が指定されている場合、`issuer`は指定されたパーセンテージを受け取り、残りは`NFToken`の販売者に送られます。 以下の場合、トランザクションは[`tec`コード](../transaction-results/tec-codes.md)で失敗します。 @@ -67,16 +67,15 @@ labels: - 売却オファーが特定の宛先アカウントを指定しており、トランザクションの送信者がそのアカウントでない。 - トランザクションの送信者が購入または売却のオファーを所有している。 - ## フィールド {% raw-partial file="/@l10n/ja/docs/_snippets/tx-fields-intro.md" /%} -| フィールド | JSONの型 | [内部の型][] | 説明 | -|:-------------------|:--------------------|:------------------|:--------------| -| `NFTokenSellOffer` | 文字列 | UInt256 | _(省略可)_ `NFToken`の売却を提案する`NFTokenOffer`の識別情報です。 | -| `NFTokenBuyOffer` | 文字列 | UInt256 | _(省略可)_ `NFToken`の購入を提案する`NFTokenOffer`の識別情報です。 | -| `NFTokenBrokerFee` | [通貨額][] | Amount | _(省略可)_ このフィールドはブローカーモードでのみ有効であり、2つのオファーをまとめるための手数料としてブローカーが保持する金額を指定します。残りの金額は`NFToken`の販売者に送られます。指定する場合、発行者が課す送金手数料を考慮する前に、販売者が受け取る金額が少なくとも売却オファーで示された金額になるように手数料を設定しなければなりません。 | +| フィールド | JSONの型 | [内部の型][] | 説明 | +| :----------------- | :--------- | :----------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `NFTokenSellOffer` | 文字列 | UInt256 | _(省略可)_ `NFToken`の売却を提案する`NFTokenOffer`の識別情報です。 | +| `NFTokenBuyOffer` | 文字列 | UInt256 | _(省略可)_ `NFToken`の購入を提案する`NFTokenOffer`の識別情報です。 | +| `NFTokenBrokerFee` | [通貨額][] | Amount | _(省略可)_ このフィールドはブローカーモードでのみ有効であり、2つのオファーをまとめるための手数料としてブローカーが保持する金額を指定します。残りの金額は`NFToken`の販売者に送られます。指定する場合、発行者が課す送金手数料を考慮する前に、販売者が受け取る金額が少なくとも売却オファーで示された金額になるように手数料を設定しなければなりません。 | ダイレクトモードでは、`NFTokenSellOffer`または`NFTokenBuyOffer`フィールドの**いずれか**を指定する必要があります。ブローカーモードでは、**両方**のフィールドを指定する必要があります。 @@ -90,17 +89,17 @@ labels: すべてのトランザクションで発生する可能性のあるエラーに加えて、{% $frontmatter.seo.title %}トランザクションでは、次の[トランザクション結果コード](../transaction-results/index.md)が発生する可能性があります。 -| エラーコード | 説明 | -|:-----------------------------------|:----------------------------------------| -| `temDISABLED` | [NonFungibleTokensV1 Amendment][]は有効ではありません。 | -| `temMALFORMED` | トランザクションのフォーマットが正しくありません。たとえば、`NFTokenSellOffer`と`NFTokenBuyOffer`のどちらも指定されていないか、`NFTokenBrokerFee`に負の値が指定されています。| -| `tecCANT_ACCEPT_OWN_NFTOKEN_OFFER` | 購入者と販売者が同じアカウントになっています。 | -| `tecEXPIRED` | トランザクションで指定されたオファーの有効期限が既に切れています。 | +| エラーコード | 説明 | +| :--------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `temDISABLED` | [NonFungibleTokensV1 Amendment][]は有効ではありません。 | +| `temMALFORMED` | トランザクションのフォーマットが正しくありません。たとえば、`NFTokenSellOffer`と`NFTokenBuyOffer`のどちらも指定されていないか、`NFTokenBrokerFee`に負の値が指定されています。 | +| `tecCANT_ACCEPT_OWN_NFTOKEN_OFFER` | 購入者と販売者が同じアカウントになっています。 | +| `tecEXPIRED` | トランザクションで指定されたオファーの有効期限が既に切れています。 | | `tecINSUFFICIENT_FUNDS` | 購入者が申し出た金額を全額持っていない。購入額がXRPで指定されている場合、[所有者準備金](../../../../concepts/accounts/reserves.md)が原因である可能性があります。購入額がトークンである場合、トークンが[フリーズ](../../../../concepts/tokens/fungible-tokens/freezes.md) されていることが原因と考えられます。 | -| `tecINSUFFICIENT_PAYMENT` | ブローカーモードにおいて、提示された購入額は、`BrokerFee` _および_ `NFToken`の売却コストを支払うには十分な額ではありません。 | -| `tecOBJECT_NOT_FOUND` | トランザクションで指定されたオファーがレジャーに存在しません。 | -| `tecNFTOKEN_BUY_SELL_MISMATCH` | ブローカーモードにおいて、2つのオファーが有効なマッチングではありません。例えば、販売者が購入者の提示額よりも高い金額を提示している、購入と売却のオファーが異なる通貨で提示されている、販売者が購入者や ブローカーとは異なる販売先を指定している、などです。 | -| `tecNFTOKEN_OFFER_TYPE_MISMATCH` | `NFTokenBuyOffer`で識別されるオブジェクトが実際には購入オファーでない、または`NFTokenSellOffer`で識別されるオブジェクトが実際には売却オファーでない場合です。| -| `tecNO_PERMISSION` | 販売者が売却する`NFToken`を所有していません。または、マッチングオファーが、オファーを受け入れるアカウントとは異なる`Destination`アカウントを指定しています。 | +| `tecINSUFFICIENT_PAYMENT` | ブローカーモードにおいて、提示された購入額は、`BrokerFee` _および_ `NFToken`の売却コストを支払うには十分な額ではありません。 | +| `tecOBJECT_NOT_FOUND` | トランザクションで指定されたオファーがレジャーに存在しません。 | +| `tecNFTOKEN_BUY_SELL_MISMATCH` | ブローカーモードにおいて、2つのオファーが有効なマッチングではありません。例えば、販売者が購入者の提示額よりも高い金額を提示している、購入と売却のオファーが異なる通貨で提示されている、販売者が購入者や ブローカーとは異なる販売先を指定している、などです。 | +| `tecNFTOKEN_OFFER_TYPE_MISMATCH` | `NFTokenBuyOffer`で識別されるオブジェクトが実際には購入オファーでない、または`NFTokenSellOffer`で識別されるオブジェクトが実際には売却オファーでない場合です。 | +| `tecNO_PERMISSION` | 販売者が売却する`NFToken`を所有していません。または、マッチングオファーが、オファーを受け入れるアカウントとは異なる`Destination`アカウントを指定しています。 | {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/transactions/types/nftokenburn.md b/@l10n/ja/docs/references/protocol/transactions/types/nftokenburn.md index 00c2ffa16d..9be4be0027 100644 --- a/@l10n/ja/docs/references/protocol/transactions/types/nftokenburn.md +++ b/@l10n/ja/docs/references/protocol/transactions/types/nftokenburn.md @@ -2,10 +2,11 @@ html: nftokenburn.html parent: transaction-types.html seo: - description: TokenBurnを使用して、NFTを永久に破棄します。 + description: TokenBurnを使用して、NFTを永久に破棄します。 labels: - 非代替性トークン, NFT --- + # NFTokenBurn NFTokenBurnトランザクションは、`NFToken`オブジェクトを保持している`NFTokenPage`内から削除し、トークンをレジャーから削除( _バーン_ )することになります。 @@ -16,7 +17,6 @@ NFTokenBurnトランザクションは、`NFToken`オブジェクトを保持し {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} - ## {% $frontmatter.seo.title %} JSONの例 ```json @@ -31,20 +31,19 @@ NFTokenBurnトランザクションは、`NFToken`オブジェクトを保持し {% raw-partial file="/@l10n/ja/docs/_snippets/tx-fields-intro.md" /%} -| フィールド | JSONの型 | [内部の型][] | 説明 | -|:------------------|:----------|:------------------|:-------------------------| -| `NFTokenID` | 文字列 | UInt256 | このトランザクションによって削除される`NFToken`を指定します。 | -| `Owner` | 文字列 | AccountID | _(省略可)_ Burnする`NFToken`の所有者。所有者がこのトランザクションを送信するアカウントと異なる場合にのみ使用されます。発行者または許可された発行者は、`lsfBurnable`フラグが有効なNFTをBurnするために、このフィールドを使用することができます。 | - +| フィールド | JSONの型 | [内部の型][] | 説明 | +| :---------- | :------- | :----------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `NFTokenID` | 文字列 | UInt256 | このトランザクションによって削除される`NFToken`を指定します。 | +| `Owner` | 文字列 | AccountID | _(省略可)_ Burnする`NFToken`の所有者。所有者がこのトランザクションを送信するアカウントと異なる場合にのみ使用されます。発行者または許可された発行者は、`lsfBurnable`フラグが有効なNFTをBurnするために、このフィールドを使用することができます。 | ## エラーケース すべてのトランザクションで発生する可能性のあるエラーに加えて、{% $frontmatter.seo.title %}トランザクションでは、次の[トランザクション結果コード](../transaction-results/index.md)が発生する可能性があります。 -| エラーコード | 説明 | -|:-------------------|:--------------------------------------------------------| -| `temDISABLED` | [NonFungibleTokensV1 Amendment][]は有効ではありません。 | -| `tecNO_ENTRY` | 指定された `TokenID` が見つかりませんでした。 | -| `tecNO_PERMISSION` | このアカウントにはトークンをBurnする権限がありません。 | +| エラーコード | 説明 | +| :----------------- | :------------------------------------------------------ | +| `temDISABLED` | [NonFungibleTokensV1 Amendment][]は有効ではありません。 | +| `tecNO_ENTRY` | 指定された `TokenID` が見つかりませんでした。 | +| `tecNO_PERMISSION` | このアカウントにはトークンをBurnする権限がありません。 | {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/transactions/types/nftokencanceloffer.md b/@l10n/ja/docs/references/protocol/transactions/types/nftokencanceloffer.md index a5a3e42392..60fb048f72 100644 --- a/@l10n/ja/docs/references/protocol/transactions/types/nftokencanceloffer.md +++ b/@l10n/ja/docs/references/protocol/transactions/types/nftokencanceloffer.md @@ -2,11 +2,13 @@ html: nftokencanceloffer.html parent: transaction-types.html seo: - description: NFTokenの売買のための既存のトークンへのオファーをキャンセルする。 + description: NFTokenの売買のための既存のトークンへのオファーをキャンセルする。 labels: - NFT, 非代替性トークン --- + # NFTokenCancelOffer + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/NFTokenCancelOffer.cpp "ソース") `NFTokenCancelOffer`トランザクションは、`NFTokenCreateOffer`を使用して作成した既存のトークンへのオファーをキャンセルするために使用できます。 @@ -17,11 +19,9 @@ labels: ```json { - "TransactionType": "NFTokenCancelOffer", - "Account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "NFTokenOffers": [ - "9C92E061381C1EF37A8CDE0E8FC35188BFC30B1883825042A64309AC09F4C36D" - ] + "TransactionType": "NFTokenCancelOffer", + "Account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "NFTokenOffers": ["9C92E061381C1EF37A8CDE0E8FC35188BFC30B1883825042A64309AC09F4C36D"] } ``` @@ -31,17 +31,17 @@ labels: `NFTokenOffer` オブジェクトで表される既存のオファーは、以下の方法でキャンセルすることができます。 -* `NFTokenOffer`を最初に作成したアカウント -* `NFTokenOffer`の`Destination`フィールドのアカウント(存在する場合) -* `NFTokenOffer`が有効期限を指定しており、`NFTokenCancelOffer`が含まれる親レジャーのクローズ時刻が有効期限より大きい場合、任意のアカウントに設定することができます +- `NFTokenOffer`を最初に作成したアカウント +- `NFTokenOffer`の`Destination`フィールドのアカウント(存在する場合) +- `NFTokenOffer`が有効期限を指定しており、`NFTokenCancelOffer`が含まれる親レジャーのクローズ時刻が有効期限より大きい場合、任意のアカウントに設定することができます このトランザクションは、リストアップされた`NFTokenOffer`オブジェクトがあればレジャーから削除し、それに応じて必要な準備金を調整します。`NFTokenOffer`が見つからなくてもエラーにはなりません。その場合、トランザクションは正常に完了するでしょう。 {% raw-partial file="/@l10n/ja/docs/_snippets/tx-fields-intro.md" /%} -| フィールド | JSONの型 | [内部の型][] | 説明 | -|:------------------|:----------|:------------------|:-------------------------| -| `NFTokenOffers` | 配列 | VECTOR256 | キャンセルする`NFTokenOffer`オブジェクトのIDの配列(`NFToken`オブジェクトのIDではなく、`NFTokenOffer`オブジェクトのID)です。各エントリは[NFTokenOffer](../../ledger-data/ledger-entry-types/nftokenoffer.md)オブジェクトの異なる[オブジェクトID](../../ledger-data/common-fields.md)である必要があり、配列に重複した項目がある場合、トランザクションはエラーとなります。 | +| フィールド | JSONの型 | [内部の型][] | 説明 | +| :-------------- | :------- | :----------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `NFTokenOffers` | 配列 | VECTOR256 | キャンセルする`NFTokenOffer`オブジェクトのIDの配列(`NFToken`オブジェクトのIDではなく、`NFTokenOffer`オブジェクトのID)です。各エントリは[NFTokenOffer](../../ledger-data/ledger-entry-types/nftokenoffer.md)オブジェクトの異なる[オブジェクトID](../../ledger-data/common-fields.md)である必要があり、配列に重複した項目がある場合、トランザクションはエラーとなります。 | `NFTokenOffers`フィールドのIDの1つ以上が、レジャーに現在存在するオブジェクトを参照していない場合でも、トランザクションは成功します(たとえば、それらのオファーはすでに削除されている可能性があります)。IDの1つが存在するオブジェクトを指していても、[NFTokenOffer](../../ledger-data/ledger-entry-types/nftokenoffer.md)オブジェクトでない場合は、エラーでトランザクションが失敗します。 @@ -53,10 +53,10 @@ IDが[NFTokenOffer](../../ledger-data/ledger-entry-types/nftokenoffer.md)オブ すべてのトランザクションで発生する可能性のあるエラーに加えて、{% $frontmatter.seo.title %}トランザクションでは、次の[トランザクション結果コード](../transaction-results/index.md)が発生する可能性があります。 -| エラーコード | 説明 | -|:-------------------|:--------------------------------------------------------| -| `temDISABLED` | [NonFungibleTokensV1 Amendment][]は有効ではありません。 | -| `temMALFORMED` | トランザクションが有効なフォーマットではありませんでした。たとえば、`NFTokenOffers`配列が空であるか、一度にキャンセルできるオファーの最大数を超える数を含んでいた場合です。 | +| エラーコード | 説明 | +| :----------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `temDISABLED` | [NonFungibleTokensV1 Amendment][]は有効ではありません。 | +| `temMALFORMED` | トランザクションが有効なフォーマットではありませんでした。たとえば、`NFTokenOffers`配列が空であるか、一度にキャンセルできるオファーの最大数を超える数を含んでいた場合です。 | | `tecNO_PERMISSION` | `NFTokenOffers`フィールドのIDのうち少なくとも1つが、キャンセルできないオブジェクトを参照しています。例えば、このトランザクションの送信者がオファーの所有者や`Destination`ではない場合や、オブジェクトが`NFTokenOffer`タイプのオブジェクトではなかった場合などです。 | {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/transactions/types/nftokencreateoffer.md b/@l10n/ja/docs/references/protocol/transactions/types/nftokencreateoffer.md index c5ec6561af..24bb11880b 100644 --- a/@l10n/ja/docs/references/protocol/transactions/types/nftokencreateoffer.md +++ b/@l10n/ja/docs/references/protocol/transactions/types/nftokencreateoffer.md @@ -2,11 +2,13 @@ html: nftokencreateoffer.html parent: transaction-types.html seo: - description: NFTの売買のオファーを作成する。 + description: NFTの売買のオファーを作成する。 labels: - 非代替性トークン, NFT --- + # NFTokenCreateOffer + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/NFTokenCreateOffer.cpp "ソース") トランザクションを送信するアカウントが所有する`NFToken`に対する新しい _売却_ オファー、または別のアカウントが所有する`NFToken`に対する新しい _購入_ オファーを作成します。 @@ -19,11 +21,11 @@ labels: ```json { - "TransactionType": "NFTokenCreateOffer", - "Account": "rs8jBmmfpwgmrSPgwMsh7CvKRmRt1JTVSX", - "NFTokenID": "000100001E962F495F07A990F4ED55ACCFEEF365DBAA76B6A048C0A200000007", - "Amount": "1000000", - "Flags": 1 + "TransactionType": "NFTokenCreateOffer", + "Account": "rs8jBmmfpwgmrSPgwMsh7CvKRmRt1JTVSX", + "NFTokenID": "000100001E962F495F07A990F4ED55ACCFEEF365DBAA76B6A048C0A200000007", + "Amount": "1000000", + "Flags": 1 } ``` @@ -31,43 +33,41 @@ labels: {% raw-partial file="/@l10n/ja/docs/_snippets/tx-fields-intro.md" /%} -| フィールド | JSONの型 | [内部の型][] | 説明 | -|:--------------|:--------------------|:------------------|:-------------------| -| `Owner` | 文字列 | AccountID | _(省略可)_ 対応する`NFToken`の所有者を指定します。トークンの購入オファーである場合、このフィールドは必ず存在し、`Account`フィールドとは異なるものでなければなりません(すでに保有しているトークンの購入オファーは無意味)。トークンの売却オファーである場合、このフィールドは存在してはいけません。所有者は暗黙のうちに`Account`と同じになるからです(すでに保有していないトークンを売却するオファーは無意味)。 | -| `NFTokenID` | 文字列 | UInt256 | オファーが参照する`NFToken`オブジェクトを指定します。 | -| `Amount` | [通貨額][] | Amount | 対応する`NFToken`に対する売却希望額または売却提示額を表します。0を指定することは、トークンの現在の所有者が、誰でも、または`Destination`フィールドで指定されたアカウントに、トークンを無償で譲渡することを意味します。 | -| `Expiration` | 数値 | UInt32 | _(省略可)_ オファーが無効となる時間を指定します。値は[Rippleエポック以降の経過秒数][]です。 | -| `Destination` | 文字列 | AccountID | _(省略可)_ 存在する場合、このオファーは指定されたアカウントによってのみ受け入れることが可能であることを示します。他のアカウントによってこのオファーを受け入れることはできません。 | - +| フィールド | JSONの型 | [内部の型][] | 説明 | +| :------------ | :--------- | :----------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Owner` | 文字列 | AccountID | _(省略可)_ 対応する`NFToken`の所有者を指定します。トークンの購入オファーである場合、このフィールドは必ず存在し、`Account`フィールドとは異なるものでなければなりません(すでに保有しているトークンの購入オファーは無意味)。トークンの売却オファーである場合、このフィールドは存在してはいけません。所有者は暗黙のうちに`Account`と同じになるからです(すでに保有していないトークンを売却するオファーは無意味)。 | +| `NFTokenID` | 文字列 | UInt256 | オファーが参照する`NFToken`オブジェクトを指定します。 | +| `Amount` | [通貨額][] | Amount | 対応する`NFToken`に対する売却希望額または売却提示額を表します。0を指定することは、トークンの現在の所有者が、誰でも、または`Destination`フィールドで指定されたアカウントに、トークンを無償で譲渡することを意味します。 | +| `Expiration` | 数値 | UInt32 | _(省略可)_ オファーが無効となる時間を指定します。値は[Rippleエポック以降の経過秒数][]です。 | +| `Destination` | 文字列 | AccountID | _(省略可)_ 存在する場合、このオファーは指定されたアカウントによってのみ受け入れることが可能であることを示します。他のアカウントによってこのオファーを受け入れることはできません。 | ## NFTokenCreateOfferフラグ NFTokenCreateOfferタイプのトランザクションは、以下のように[`Flags`フィールド](../common-fields.md#flags-field)に追加の値を設定することが可能です。 -| フラグ名 | 16進数値 | 整数値 | 説明 | -|:----------------|:-------------|:--------------|:------------------------------| -| `tfSellNFToken` | `0x00000001` | `1` | 有効な場合、オファーが売却オファーであることを示します。そうでない場合は、購入オファーであることを示します。 | - +| フラグ名 | 16進数値 | 整数値 | 説明 | +| :-------------- | :----------- | :----- | :----------------------------------------------------------------------------------------------------------- | +| `tfSellNFToken` | `0x00000001` | `1` | 有効な場合、オファーが売却オファーであることを示します。そうでない場合は、購入オファーであることを示します。 | ## エラーケース すべてのトランザクションで発生する可能性のあるエラーに加えて、{% $frontmatter.seo.title %}トランザクションでは、次の[トランザクション結果コード](../transaction-results/index.md)が発生する可能性があります。 -| エラーコード | 説明 | -|:---------------------------------|:------------------------------------------| -| `temDISABLED` | [NonFungibleTokensV1 Amendment][]は有効ではありません。 | -| `temBAD_AMOUNT` | `Amount`フィールドが有効ではありません。例えば、購入オファーで金額がゼロであったり、金額はトークンであるが`NFToken`で[`lsfOnlyXRP`フラグ](../../data-types/nftoken.md#nftoken-フラグ)が有効になっている場合などです。 | -| `temBAD_EXPIRATION` | 指定された`Expiration`は無効です(例:`0`)。 | -| `tecDIR_FULL` | 送信者がレジャーにすでにあまりにも多くのオブジェクトを所有しているか、またはこのトークンの売買のオファーがあまりにも多く存在しています。 | -| `tecEXPIRED` | 指定された`Expiration`の時間は既に経過しています。 | -| `tecFROZEN` | `Amount`はトークンで、このオファーからトークンを受け取るトラストラインは[フリーズ](../../../../concepts/tokens/fungible-tokens/freezes.md)されています。これは売却者のトラストラインか、`NFToken`の発行者のトラストライン(`NFToken`に送金手数料がある場合)である可能性があります。 | -| `tecINSUFFICIENT_RESERVE` | 送信者はこのオファーを提示した後、[所有者準備金](../../../../concepts/accounts/reserves.md)を満たすのに十分なXRPを持っていません。 | -| `tecNO_DST` | `Destination`に指定されたアカウントがレジャーに存在しません。 | -| `tecNO_ENTRY` | `NFToken`フィールドで指定したアカウントは所有していません。 | -| `tecNO_ISSUER` | `Amount`フィールドで指定した発行者が存在しません。 | -| `tecNO_LINE` | `Amount`フィールドはトークンですが、`NFToken`の発行者はそのトークンのトラストラインを持っておらず、`NFToken`は[`lsfTrustLine`フラグ](../../data-types/nftoken.md#nftoken-フラグ)が有効ではありません。 | -| `tecNO_PERMISSION` | `Destination`アカウントが着信する NFTokenOffer をブロックします。 {% amendment-disclaimer name="DisallowIncoming" /%} +| エラーコード | 説明 | +| :------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `temDISABLED` | [NonFungibleTokensV1 Amendment][]は有効ではありません。 | +| `temBAD_AMOUNT` | `Amount`フィールドが有効ではありません。例えば、購入オファーで金額がゼロであったり、金額はトークンであるが`NFToken`で[`lsfOnlyXRP`フラグ](../../data-types/nftoken.md#nftoken-フラグ)が有効になっている場合などです。 | +| `temBAD_EXPIRATION` | 指定された`Expiration`は無効です(例:`0`)。 | +| `tecDIR_FULL` | 送信者がレジャーにすでにあまりにも多くのオブジェクトを所有しているか、またはこのトークンの売買のオファーがあまりにも多く存在しています。 | +| `tecEXPIRED` | 指定された`Expiration`の時間は既に経過しています。 | +| `tecFROZEN` | `Amount`はトークンで、このオファーからトークンを受け取るトラストラインは[フリーズ](../../../../concepts/tokens/fungible-tokens/freezes.md)されています。これは売却者のトラストラインか、`NFToken`の発行者のトラストライン(`NFToken`に送金手数料がある場合)である可能性があります。 | +| `tecINSUFFICIENT_RESERVE` | 送信者はこのオファーを提示した後、[所有者準備金](../../../../concepts/accounts/reserves.md)を満たすのに十分なXRPを持っていません。 | +| `tecNO_DST` | `Destination`に指定されたアカウントがレジャーに存在しません。 | +| `tecNO_ENTRY` | `NFToken`フィールドで指定したアカウントは所有していません。 | +| `tecNO_ISSUER` | `Amount`フィールドで指定した発行者が存在しません。 | +| `tecNO_LINE` | `Amount`フィールドはトークンですが、`NFToken`の発行者はそのトークンのトラストラインを持っておらず、`NFToken`は[`lsfTrustLine`フラグ](../../data-types/nftoken.md#nftoken-フラグ)が有効ではありません。 | +| `tecNO_PERMISSION` | `Destination`アカウントが着信する NFTokenOffer をブロックします。 {% amendment-disclaimer name="DisallowIncoming" /%} | | `tecUNFUNDED_OFFER` | 購入オファーの場合、送信者は`Amount`フィールドで指定された通貨を利用可能です。もし`Amount`がXRPである場合、これは準備不足によるものかもしれません。もし`Amount`がトークンである場合、これは[フリーズ](../../../../concepts/tokens/fungible-tokens/freezes.md)されている可能性があります。 | -| `tefNFTOKEN_IS_NOT_TRANSFERABLE` | `NFToken`は[`lsfTransferable`フラグ](../../data-types/nftoken.md#nftoken-flags)が無効になっており、このトランザクションでは`NFToken`を発行者に転送したり発行者から転送したりすることはできません。 | +| `tefNFTOKEN_IS_NOT_TRANSFERABLE` | `NFToken`は[`lsfTransferable`フラグ](../../data-types/nftoken.md#nftoken-flags)が無効になっており、このトランザクションでは`NFToken`を発行者に転送したり発行者から転送したりすることはできません。 | {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/transactions/types/nftokenmint.md b/@l10n/ja/docs/references/protocol/transactions/types/nftokenmint.md index 59769b201e..06bf81c044 100644 --- a/@l10n/ja/docs/references/protocol/transactions/types/nftokenmint.md +++ b/@l10n/ja/docs/references/protocol/transactions/types/nftokenmint.md @@ -1,20 +1,20 @@ --- seo: - description: NFTokenMintを使用して新規NFTを発行する。 + description: NFTokenMintを使用して新規NFTを発行する。 labels: - 非代替性トークン, NFT --- + # NFTokenMint + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/NFTokenMint.cpp "Source") `NFTokenMint`トランザクションは非代替性トークンを作成し、`NFTokenMinter`に紐付く[NFTokenPageオブジェクト][]に[NFToken][]オブジェクトとして追加します。このトランザクションは`NFTokenMinter`にとって、不変と定義されているトークンフィールド(例えば`Flags`)を設定することができる唯一の方法です。 {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} - ## {% $frontmatter.seo.title %} JSONの例 - ```json { "TransactionType": "NFTokenMint", @@ -25,14 +25,13 @@ labels: "Fee": "10", "URI": "697066733A2F2F62616679626569676479727A74357366703775646D37687537367568377932366E6634646675796C71616266336F636C67747179353566627A6469", "Memos": [ - { - "Memo": { - "MemoType": - "687474703A2F2F6578616D706C652E636F6D2F6D656D6F2F67656E65726963", - "MemoData": "72656E74" - } - } - ] + { + "Memo": { + "MemoType": "687474703A2F2F6578616D706C652E636F6D2F6D656D6F2F67656E65726963", + "MemoData": "72656E74" + } + } + ] } ``` @@ -40,28 +39,27 @@ labels: {% raw-partial file="/@l10n/ja/docs/_snippets/tx-fields-intro.md" /%} -| フィールド | JSONの型 | [内部の型][] | 説明 | -| :------------- | :------------------ | :----------- | ---- | -| `NFTokenTaxon` | 数値 | UInt32 | トークンに関連する分類群。Taxonは通常、トークンの発行者が選択した値です。1つのTaxonは複数のトークンに使用することができます。`0xFFFFFFFF`より大きいTaxonの識別子は使用できません。 | -| `Issuer` | 文字列 | AccountID | _(省略可)_ 送信元アカウントが他のアカウントの代理としてトークンを発行する場合における、トークンの発行者。トランザクションを送信するアカウントが `NFToken` の発行者である場合、このフィールドは指定してはいけません。指定される場合、発行者の[AccountRootオブジェクト][]には `NFTokenMinter` フィールドが、このトランザクションの送信者(このトランザクションの`Account`フィールド)に設定されていなければなりません。 | -| `TransferFee` | 数値 | UInt16 | _(省略可)_ この値は、`NFToken`の二次販売が許可されている場合に、発行者が徴収する手数料を指定します。このフィールドの有効な値は0から50000の間で、0.001刻みで0.00%から50.00%の送金手数料を設定することができます。このフィールドが設定されている場合、トランザクションは[`tfTransferable`フラグ](#nftokenmintのフラグ) を有効にしなければなりません。 | -| `URI` | 文字列 | Blob | _(省略可)_ 最大256バイトの任意のデータ。JSONでは、16進数の文字列としてエンコードされる必要があります。URIを16進数に変換するために、[`xrpl.convertStringToHex`](https://js.xrpl.org/modules.html#convertStringToHex)ユーティリティを使用することができます。これは、NFTに関連するデータまたはメタデータを指し示すURIであることを想定しています。コンテンツは、HTTPまたはHTTPS URL、IPFS URI、マグネットリンク、[RFC2379 "data" URL](https://datatracker.ietf.org/doc/html/rfc2397) としてエンコードされた即値データ、あるいは発行者固有のエンコーディングにデコードされていることがあります。URIの有効性はチェックされません。 | -| `Amount` | [通貨額][] | Amount | _(省略可)_ 対応する`NFToken`の売却オファー金額を示します。資産がXRPの場合を除き、金額はゼロ以外でなければなりません。ゼロの場合、トークンの現在の所有者が、誰に対しても、または `Destination` フィールドで指定されたアカウントに対して、無償でトークンを譲渡することを意味します。 | -| `Expiration` | 数値 | UInt32 | _(省略可)_ オファーが有効でなくなるまでの時間([Rippleエポック以降の経過秒数][])。Amountフィールドが指定されていない場合、エラーが発生します。 | -| `Destination` | 文字列 | AccountID | _(省略可)_ 存在する場合、このオファーは指定されたアカウントからのみ受け入れられることを示します。他のアカウントでこのオファーを受け入れようとしても、必ず失敗します。`Amount`フィールドが指定されていない場合、エラーが発生します。 | +| フィールド | JSONの型 | [内部の型][] | 説明 | +| :------------- | :--------- | :----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `NFTokenTaxon` | 数値 | UInt32 | トークンに関連する分類群。Taxonは通常、トークンの発行者が選択した値です。1つのTaxonは複数のトークンに使用することができます。`0xFFFFFFFF`より大きいTaxonの識別子は使用できません。 | +| `Issuer` | 文字列 | AccountID | _(省略可)_ 送信元アカウントが他のアカウントの代理としてトークンを発行する場合における、トークンの発行者。トランザクションを送信するアカウントが `NFToken` の発行者である場合、このフィールドは指定してはいけません。指定される場合、発行者の[AccountRootオブジェクト][]には `NFTokenMinter` フィールドが、このトランザクションの送信者(このトランザクションの`Account`フィールド)に設定されていなければなりません。 | +| `TransferFee` | 数値 | UInt16 | _(省略可)_ この値は、`NFToken`の二次販売が許可されている場合に、発行者が徴収する手数料を指定します。このフィールドの有効な値は0から50000の間で、0.001刻みで0.00%から50.00%の送金手数料を設定することができます。このフィールドが設定されている場合、トランザクションは[`tfTransferable`フラグ](#nftokenmintのフラグ) を有効にしなければなりません。 | +| `URI` | 文字列 | Blob | _(省略可)_ 最大256バイトの任意のデータ。JSONでは、16進数の文字列としてエンコードされる必要があります。URIを16進数に変換するために、[`xrpl.convertStringToHex`](https://js.xrpl.org/modules.html#convertStringToHex)ユーティリティを使用することができます。これは、NFTに関連するデータまたはメタデータを指し示すURIであることを想定しています。コンテンツは、HTTPまたはHTTPS URL、IPFS URI、マグネットリンク、[RFC2379 "data" URL](https://datatracker.ietf.org/doc/html/rfc2397) としてエンコードされた即値データ、あるいは発行者固有のエンコーディングにデコードされていることがあります。URIの有効性はチェックされません。 | +| `Amount` | [通貨額][] | Amount | _(省略可)_ 対応する`NFToken`の売却オファー金額を示します。資産がXRPの場合を除き、金額はゼロ以外でなければなりません。ゼロの場合、トークンの現在の所有者が、誰に対しても、または `Destination` フィールドで指定されたアカウントに対して、無償でトークンを譲渡することを意味します。 | +| `Expiration` | 数値 | UInt32 | _(省略可)_ オファーが有効でなくなるまでの時間([Rippleエポック以降の経過秒数][])。Amountフィールドが指定されていない場合、エラーが発生します。 | +| `Destination` | 文字列 | AccountID | _(省略可)_ 存在する場合、このオファーは指定されたアカウントからのみ受け入れられることを示します。他のアカウントでこのオファーを受け入れようとしても、必ず失敗します。`Amount`フィールドが指定されていない場合、エラーが発生します。 | ## NFTokenMintのフラグ NFTokenMint型のトランザクションでは、以下のように[`Flags`フィールド](../common-fields.md#flagsフィールド)に追加の値を設定することが可能です。 -| フラグ名 | 16進数値 | 整数値 | 説明 | -| :--------------- | :----------- | :----- | ---- | -| `tfBurnable` | `0x00000001` | 1 | 発行者(または発行者が許可した者)が`NFToken`を破棄できるようにします。(`NFToken`の所有者は常に破棄することができます)。 | -| `tfOnlyXRP` | `0x00000002` | 2 | 発行された`NFToken`はXRPでのみ売買が可能です。これは、トークンに送金手数料がかかり、発行者がXRP以外のトークンで手数料を受け取りたくない場合に望ましいでしょう。 | +| フラグ名 | 16進数値 | 整数値 | 説明 | +| :--------------- | :----------- | :----- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `tfBurnable` | `0x00000001` | 1 | 発行者(または発行者が許可した者)が`NFToken`を破棄できるようにします。(`NFToken`の所有者は常に破棄することができます)。 | +| `tfOnlyXRP` | `0x00000002` | 2 | 発行された`NFToken`はXRPでのみ売買が可能です。これは、トークンに送金手数料がかかり、発行者がXRP以外のトークンで手数料を受け取りたくない場合に望ましいでしょう。 | | `tfTrustLine` | `0x00000004` | 4 | **非推奨** 発行者が、発行した`NFToken`を転送する際に受け取る手数料を保有するために、自動的に[トラストライン](../../../../concepts/tokens/fungible-tokens/index.md) を作成します。[fixRemoveNFTokenAutoTrustLine Amendment][]により、このフラグの設定は無効となります。 | -| `tfTransferable` | `0x00000008` | 8 | 発行された`NFToken`は他の人に譲渡することができます。このフラグが _有効でない_ 場合、トークンは _発行者から_ 、または _発行者へ_ のみ転送することができます。 | -| `tfMutable` | `0x00000010` | 16 | 発行された`NFToken`の`URI`フィールドは、`NFTokenModify`トランザクションを使用して更新することができます。 | - +| `tfTransferable` | `0x00000008` | 8 | 発行された`NFToken`は他の人に譲渡することができます。このフラグが _有効でない_ 場合、トークンは _発行者から_ 、または _発行者へ_ のみ転送することができます。 | +| `tfMutable` | `0x00000010` | 16 | 発行された`NFToken`の`URI`フィールドは、`NFTokenModify`トランザクションを使用して更新することができます。 | ## 追加情報の埋め込み @@ -87,33 +85,31 @@ NFTokenMint型のトランザクションでは、以下のように[`Flags`フ "Fee": "10", "URI": "697066733A2F2F62616679626569676479727A74357366703775646D37687537367568377932366E6634646675796C71616266336F636C67747179353566627A6469", "Memos": [ - { - "Memo": { - "MemoType": - "687474703A2F2F6578616D706C652E636F6D2F6D656D6F2F67656E65726963", - "MemoData": "72656E74" - } - } - ] + { + "Memo": { + "MemoType": "687474703A2F2F6578616D706C652E636F6D2F6D656D6F2F67656E65726963", + "MemoData": "72656E74" + } + } + ] } ``` - このトランザクションは、発行者である`rNCFjv8Ek5oDrNiMJ3pw6eLFtMjZLJnf2`がその`AccountRoot`の`NFTokenMinter`フィールド `rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B`と設定して、そのアカウントが自身に代わってトークンを発行する権限を与えていると想定したものです。 ## エラーケース すべてのトランザクションで発生する可能性のあるエラーに加えて、{% $frontmatter.seo.title %}トランザクションでは、次の[トランザクション結果コード](../transaction-results/index.md)が発生する可能性があります。 -| エラーコード | 説明 | -| :---------------------------- | ---- | -| `temDISABLED` | [NonFungibleTokensV1 Amendment][]は有効ではありません。 | -| `temBAD_NFTOKEN_TRANSFER_FEE` | `TransferFee`が許容範囲外です。 | -| `temINVALID_FLAG` | `Flags`値には、許可されていない、または有効なフラグでないビットが有効になっています。[fixRemoveNFTokenAutoTrustLine amendment][]が有効になっている場合、`tfTrustLine`フラグはこのエラーを発生させます。 | -| `temMALFORMED` | トランザクションが正しく指定されていません。例えば、`URI`フィールドが256バイトより長い場合です。 | -| `tecNO_ISSUER` | `Issuer`は、レジャーに存在しないアカウントを指定しています。 | -| `tecNO_PERMISSION` | `Issuer`フィールドで参照されるアカウントは、このトランザクションの送信者(`NFTokenMinter`設定を使用)が自身の代わりに発行することを承認していません。 | +| エラーコード | 説明 | +| :---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `temDISABLED` | [NonFungibleTokensV1 Amendment][]は有効ではありません。 | +| `temBAD_NFTOKEN_TRANSFER_FEE` | `TransferFee`が許容範囲外です。 | +| `temINVALID_FLAG` | `Flags`値には、許可されていない、または有効なフラグでないビットが有効になっています。[fixRemoveNFTokenAutoTrustLine amendment][]が有効になっている場合、`tfTrustLine`フラグはこのエラーを発生させます。 | +| `temMALFORMED` | トランザクションが正しく指定されていません。例えば、`URI`フィールドが256バイトより長い場合です。 | +| `tecNO_ISSUER` | `Issuer`は、レジャーに存在しないアカウントを指定しています。 | +| `tecNO_PERMISSION` | `Issuer`フィールドで参照されるアカウントは、このトランザクションの送信者(`NFTokenMinter`設定を使用)が自身の代わりに発行することを承認していません。 | | `tecINSUFFICIENT_RESERVE` | トークンを発行した後、オーナーは更新された[準備金要件](../../../../concepts/accounts/reserves.md)を満たせなくなります。新しい`NFToken`は、新しい[NFTokenPageオブジェクト][]を必要とする場合にのみ、オーナーの準備金を増加させることに注意する必要があり、それぞれ最大32NFTを格納することができます。 | -| `tecMAX_SEQUENCE_REACHED` | `Issuer`の`MintedNFTokens`フィールドはすでに最大値になっています。これは、発行者またはその代理人が合計で232-1つの`NFToken`を発行した場合にのみ発生します。 | +| `tecMAX_SEQUENCE_REACHED` | `Issuer`の`MintedNFTokens`フィールドはすでに最大値になっています。これは、発行者またはその代理人が合計で232-1つの`NFToken`を発行した場合にのみ発生します。 | {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/transactions/types/nftokenmodify.md b/@l10n/ja/docs/references/protocol/transactions/types/nftokenmodify.md index 253e545d87..76f58f81c2 100644 --- a/@l10n/ja/docs/references/protocol/transactions/types/nftokenmodify.md +++ b/@l10n/ja/docs/references/protocol/transactions/types/nftokenmodify.md @@ -1,19 +1,20 @@ --- seo: - description: ダイナミックNFTを変更します。 + description: ダイナミックNFTを変更します。 labels: - 非代替性トークン, トークン, NFT title: - NFTokenModify --- + # NFTokenModify + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/NFTokenModify.cpp "ソース") `NFTokenModify`は、NFTの`URI`フィールドを別のURIに変更し、NFTのサポートデータを更新するために使用されます。NFTは、`tfMutable`フラグが設定された状態でミントされている必要があります。[ダイナミックNFT](../../../../concepts/tokens/nfts/dynamic-nfts.md)をご覧ください。 ## {% $frontmatter.seo.title %} JSONの例 - ```json { "TransactionType": "NFTokenModify", @@ -28,20 +29,20 @@ title: {% raw-partial file="/@l10n/ja/docs/_snippets/tx-fields-intro.md" /%} -| フィールド | JSONの型 | [内部の型][] | 説明 | -|:------------------|:---------|:-------------|:-------------------| -| `TransactionType` | 文字列 | UINT16 | `NFTokenModify` | -| `Account` | 文字列 | AccountID | NFTの発行者または許可されたアカウントの一意のアドレス。 | -| `Owner` | 文字列 | AccountID | _(任意)_ NFTの所有者のアドレス。`Account`と`Owner`が同じアドレスの場合、このフィールドは省略します。 | -| `NFTokenID` | 文字列 | UInt256 | NFTを識別する一意のID。 | +| フィールド | JSONの型 | [内部の型][] | 説明 | +| :---------------- | :------- | :----------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `TransactionType` | 文字列 | UINT16 | `NFTokenModify` | +| `Account` | 文字列 | AccountID | NFTの発行者または許可されたアカウントの一意のアドレス。 | +| `Owner` | 文字列 | AccountID | _(任意)_ NFTの所有者のアドレス。`Account`と`Owner`が同じアドレスの場合、このフィールドは省略します。 | +| `NFTokenID` | 文字列 | UInt256 | NFTを識別する一意のID。 | | `URI` | 文字列 | Blob | _(任意)_ 最大256バイトの任意のデータ。JSONでは、16進数の文字列としてエンコードされます。[`xrpl.convertStringToHex`](https://js.xrpl.org/modules.html#convertStringToHex)ユーティリティメソッドを使用してURIを16進数に変換できます。これは、NFTに関連するデータまたはメタデータを指すURIです。URIはHTTPまたはHTTPS URL、IPFS URI、マグネットリンク、[RFC 2379 "data" URL](https://datatracker.ietf.org/doc/html/rfc2397)としてエンコードされた即値データ、または発行者固有のエンコードをデコードできます。URIは検証されません。URIを指定しない場合、既存のURIは削除されます。 | ## エラーケース すべてのトランザクションで発生する可能性のあるエラーに加えて、{% $frontmatter.seo.title %}トランザクションでは、次の[トランザクション結果コード](../transaction-results/index.md)が発生する可能性があります。 -| エラーコード | 説明 | -|:-------------------|:-----------| +| エラーコード | 説明 | +| :----------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `tecNO_PERMISSION` | `tfMutable`フラグが有効になっていないため、`URI`フィールドを更新できません。また、`Account`フィールドがNFTの発行者または許可された発行者でない場合、このエラーを受け取ることがあります。 | {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/transactions/types/offercancel.md b/@l10n/ja/docs/references/protocol/transactions/types/offercancel.md index ac0d094029..668a19a128 100644 --- a/@l10n/ja/docs/references/protocol/transactions/types/offercancel.md +++ b/@l10n/ja/docs/references/protocol/transactions/types/offercancel.md @@ -2,10 +2,11 @@ html: offercancel.html parent: transaction-types.html seo: - description: XRP LedgerからOfferオブジェクトを削除します。 + description: XRP LedgerからOfferオブジェクトを削除します。 labels: - 分散型取引所 --- + # OfferCancel [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/CancelOffer.cpp "Source") @@ -16,13 +17,13 @@ OfferCancelトランザクションは、XRP LedgerからOfferオブジェクト ```json { - "TransactionType":"OfferCancel", - "Account":"ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "Fee":"12", - "Flags":0, - "LastLedgerSequence":7108629, - "OfferSequence":6, - "Sequence":7 + "TransactionType": "OfferCancel", + "Account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "Fee": "12", + "Flags": 0, + "LastLedgerSequence": 7108629, + "OfferSequence": 6, + "Sequence": 7 } ``` @@ -30,9 +31,9 @@ OfferCancelトランザクションは、XRP LedgerからOfferオブジェクト {% raw-partial file="/@l10n/ja/docs/_snippets/tx-fields-intro.md" /%} -| フィールド | JSONの型 | [内部の型][] | 説明 | -|:--------------|:----------|:------------------|:-----------------------------| -| OfferSequence | 数値 | UInt32 | 前のOfferCreateトランザクションのシーケンス番号。指定されている場合は、レジャーでそのトランザクションにより作成されたOfferオブジェクトがすべて取り消されます。指定されたオファーが存在しない場合はエラーと見なされません。 | +| フィールド | JSONの型 | [内部の型][] | 説明 | +| :------------ | :------- | :----------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| OfferSequence | 数値 | UInt32 | 前のOfferCreateトランザクションのシーケンス番号。指定されている場合は、レジャーでそのトランザクションにより作成されたOfferオブジェクトがすべて取り消されます。指定されたオファーが存在しない場合はエラーと見なされません。 | {% admonition type="success" name="ヒント" %}古いオファーを削除して新しいオファーに置き換えるには、OfferCancelとOfferCreateを使用する代わりに、`OfferSequence`パラメーターを指定した[OfferCreateトランザクション][]を使用できます。{% /admonition %} diff --git a/@l10n/ja/docs/references/protocol/transactions/types/offercreate.md b/@l10n/ja/docs/references/protocol/transactions/types/offercreate.md index f59b8c24c1..a172fdc87e 100644 --- a/@l10n/ja/docs/references/protocol/transactions/types/offercreate.md +++ b/@l10n/ja/docs/references/protocol/transactions/types/offercreate.md @@ -1,9 +1,10 @@ --- seo: - description: 通貨交換の注文を作成します。 + description: 通貨交換の注文を作成します。 labels: - 分散型取引所 --- + # OfferCreate [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/CreateOffer.cpp "ソース") @@ -14,18 +15,18 @@ OfferCreateトランザクションは[分散型取引所](../../../../concepts/ ```json { - "TransactionType": "OfferCreate", - "Account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "Fee": "12", - "Flags": 0, - "LastLedgerSequence": 7108682, - "Sequence": 8, - "TakerGets": "6000000", - "TakerPays": { - "currency": "GKO", - "issuer": "ruazs5h1qEsqpke88pcqnaseXdm6od2xc", - "value": "2" - } + "TransactionType": "OfferCreate", + "Account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "Fee": "12", + "Flags": 0, + "LastLedgerSequence": 7108682, + "Sequence": 8, + "TakerGets": "6000000", + "TakerPays": { + "currency": "GKO", + "issuer": "ruazs5h1qEsqpke88pcqnaseXdm6od2xc", + "value": "2" + } } ``` @@ -33,47 +34,46 @@ OfferCreateトランザクションは[分散型取引所](../../../../concepts/ {% raw-partial file="/@l10n/ja/docs/_snippets/tx-fields-intro.md" /%} - -| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | -|:-----------------|:----------------------|:-------------|:---------|:-----------| -| `DomainID` | 文字列 - [ハッシュ][] | Hash256 | いいえ | 許可型DEXのレジャーエントリID。指定された場合、対応する[許可型DEX](../../../../concepts/tokens/decentralized-exchange/permissioned-dexes.md)のみを使用するパスを返します。([PermissionedDEX amendment][] {% not-enabled /%}が必要です。) | -| [`Expiration`](../../../../concepts/tokens/decentralized-exchange/offers.md#オファーの有効期限) | 整数 | UInt32 | いいえ | オファーがアクティブでなくなるまでの時間([Rippleエポック以降の経過秒数][])。 | -| `OfferSequence` | 整数 | UInt32 | いいえ | 最初に削除されるオファー([OfferCancel][]と同様に指定されます)。 | -| `TakerGets` | [通貨額][] | Amount | はい | オファーの作成者によって作成される金額および通貨の種類。 | -| `TakerPays` | [通貨額][] | Amount | はい | オファーの作成者によってリクエストされる金額および通貨の種類。 | +| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | +| :---------------------------------------------------------------------------------------------- | :-------------------- | :----------- | :----- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `DomainID` | 文字列 - [ハッシュ][] | Hash256 | いいえ | 許可型DEXのレジャーエントリID。指定された場合、対応する[許可型DEX](../../../../concepts/tokens/decentralized-exchange/permissioned-dexes.md)のみを使用するパスを返します。([PermissionedDEX amendment][] {% not-enabled /%}が必要です。) | +| [`Expiration`](../../../../concepts/tokens/decentralized-exchange/offers.md#オファーの有効期限) | 整数 | UInt32 | いいえ | オファーがアクティブでなくなるまでの時間([Rippleエポック以降の経過秒数][])。 | +| `OfferSequence` | 整数 | UInt32 | いいえ | 最初に削除されるオファー([OfferCancel][]と同様に指定されます)。 | +| `TakerGets` | [通貨額][] | Amount | はい | オファーの作成者によって作成される金額および通貨の種類。 | +| `TakerPays` | [通貨額][] | Amount | はい | オファーの作成者によってリクエストされる金額および通貨の種類。 | ## OfferCreateフラグ OfferCreate型のトランザクションについては、[`Flags`フィールド](../common-fields.md#flagsフィールド)で以下の値が追加でサポートされます。 -| フラグ名 | 16進数 | 10進数 | 説明 | -|:----------------------|:-------------|:--------------|:-------------------| -| `tfPassive` | `0x00010000` | 65536 | このオファーと完全に一致するオファーを約定しません。これにより、特定の値で交換レートを固定するオファーを台帳に設定できます。 | -| `tfImmediateOrCancel` | `0x00020000` | 131072 | オファーを[即時またはキャンセル注文](http://en.wikipedia.org/wiki/Immediate_or_cancel)として扱い、[Offerエントリ][]をオーダーブックに配置しません。トランザクションは、処理時に既存のオファーを約定し、可能な限り多くの取引を行います。 | -| `tfFillOrKill` | `0x00040000` | 262144 | オファーを[即時またはキャンセル注文](http://en.wikipedia.org/wiki/Fill_or_kill)として扱い、[Offerエントリ][]をオーダーブックに配置しません。実行時に完全に約定できない場合、オファーをキャンセルします。デフォルトでは、所有者は完全な`TakerPays`の金額を受け取る必要があります。`tfSell`フラグが有効な場合、所有者は代わりに完全な`TakerGets`の金額を約定できる必要があります。 | -| `tfSell` | `0x00080000` | 524288 | 取引所で`TakerPays`の金額よりも多く取得することになっても、`TakerGets`の金額を約定します。 | -| `tfHybrid` | `0x00100000` | 1048576 | 許可型DEXとオープンDEXの両方を使用できるハイブリッドオファーにします。このフラグを使用する場合、`DomainID`フィールドを指定する必要があります。 | +| フラグ名 | 16進数 | 10進数 | 説明 | +| :-------------------- | :----------- | :------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `tfPassive` | `0x00010000` | 65536 | このオファーと完全に一致するオファーを約定しません。これにより、特定の値で交換レートを固定するオファーを台帳に設定できます。 | +| `tfImmediateOrCancel` | `0x00020000` | 131072 | オファーを[即時またはキャンセル注文](http://en.wikipedia.org/wiki/Immediate_or_cancel)として扱い、[Offerエントリ][]をオーダーブックに配置しません。トランザクションは、処理時に既存のオファーを約定し、可能な限り多くの取引を行います。 | +| `tfFillOrKill` | `0x00040000` | 262144 | オファーを[即時またはキャンセル注文](http://en.wikipedia.org/wiki/Fill_or_kill)として扱い、[Offerエントリ][]をオーダーブックに配置しません。実行時に完全に約定できない場合、オファーをキャンセルします。デフォルトでは、所有者は完全な`TakerPays`の金額を受け取る必要があります。`tfSell`フラグが有効な場合、所有者は代わりに完全な`TakerGets`の金額を約定できる必要があります。 | +| `tfSell` | `0x00080000` | 524288 | 取引所で`TakerPays`の金額よりも多く取得することになっても、`TakerGets`の金額を約定します。 | +| `tfHybrid` | `0x00100000` | 1048576 | 許可型DEXとオープンDEXの両方を使用できるハイブリッドオファーにします。このフラグを使用する場合、`DomainID`フィールドを指定する必要があります。 | ## エラーケース -| エラーコード | 説明 | -|:-------------------------|:--------------------------------------------------| -| `tecDIR_FULL` | トランザクションの送信者が台帳で多くのアイテムを所有している場合、またはオーダーブックに同じ取引レートのオファーがすでに多く含まれている場合に発生します。 | -| `tecEXPIRED` | トランザクションが指定した`Expiration`の時間が既に経過している場合に発生します。 | -| `tecFROZEN` | [フリーズ](../../../../concepts/tokens/fungible-tokens/freezes.md)されたトラストライン(ローカルおよびグローバルのフリーズを含む)上のトークンを含むトランザクションの場合に発生します。`TakerPays`(購入額)トークンが発行者によってディープフリーズされている場合に発生します。 | +| エラーコード | 説明 | +| :----------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `tecDIR_FULL` | トランザクションの送信者が台帳で多くのアイテムを所有している場合、またはオーダーブックに同じ取引レートのオファーがすでに多く含まれている場合に発生します。 | +| `tecEXPIRED` | トランザクションが指定した`Expiration`の時間が既に経過している場合に発生します。 | +| `tecFROZEN` | [フリーズ](../../../../concepts/tokens/fungible-tokens/freezes.md)されたトラストライン(ローカルおよびグローバルのフリーズを含む)上のトークンを含むトランザクションの場合に発生します。`TakerPays`(購入額)トークンが発行者によってディープフリーズされている場合に発生します。 | | `tecINSUF_RESERVE_OFFER` | 所有者が台帳に新しいOfferオブジェクトを追加するための準備要件を満たすのに十分なXRPを持っておらず、トランザクションがどの通貨も変換しなかった場合に発生します。(トランザクションが何らかの金額のトレードに成功した場合、トランザクションは結果コード`tesSUCCESS`で成功しますが、残りは台帳にOfferオブジェクトを作成しません)。 | -| `tecKILLED` | トランザクションが`tfFillOrKill`を指定し、全額を約定できない場合に発生します。_[ImmediateOfferKilled amendment][]_ が有効な場合、この結果コードは、トランザクションが`tfImmediateOrCancel`を指定して資金が移動せずに実行された場合にも発生します(これまでは、これは`tesSUCCESS`を返していました)。 | -| `tecNO_AUTH` | 発行者が[Authorized Trust Lines](../../../../concepts/tokens/fungible-tokens/authorized-trust-lines.md)を使用しているトークンを含むトランザクションで、トークンを受け取るトラストラインが存在するが認証されていない場合に発生します。 | -| `tecNO_ISSUER` | トランザクションで、`issuer`の値が台帳の有効化されたアカウントでないトークンを指定した場合に発生します。| -| `tecNO_LINE` | 発行者が[Authorized Trust Lines](../../../../concepts/tokens/fungible-tokens/authorized-trust-lines.md)を使用しているトークンを含むトランザクションで、必要なトラストラインが存在しない場合に発生します。 | -| `tecNO_PERMISSION` | トランザクションが`DomainID`を使用しているが、送信者がそのドメインのメンバーではない場合に発生します。([PermissionedDEX amendment][] {% not-enabled /%}) | -| `tecUNFUNDED_OFFER` | トランザクションの送信者が`TakerGets`の通貨を正の値で保有していない場合に発生する。(例外: `TakerGets`にトランザクションの送信者が発行するトークンを指定した場合、トランザクションは成功します)。 | -| `temBAD_CURRENCY` | トランザクションで通貨コードが"XRP"のトークンが指定された場合に発生します。 | -| `temBAD_EXPIRATION` | トランザクションの`Expiration`フィールドの値が無効なフォーマットの場合に発生します。 | -| `temBAD_ISSUER` | トランザクションが無効な`issuer`値を持つトークンを指定した場合に発生します。 | -| `temBAD_OFFER` | OfferがXRPとXRPを交換しようとした場合、またはトークンの無効な量やマイナスの量を交換しようとした場合に発生します。 | -| `temBAD_SEQUENCE` | トランザクションの`OfferSequence`フィールドの値が無効なフォーマットであるか、トランザクション自身の`Sequence`番号より大きい場合に発生します。 | -| `temINVALID_FLAG` | トランザクションが`tfImmediateOrCancel`と`tfFillOrKill`両方を指定した場合に発生します。| -| `temREDUNDANT` | トランザクションが同じトークン(同じ発行者、通貨コード)を指定した場合に発生します。 | +| `tecKILLED` | トランザクションが`tfFillOrKill`を指定し、全額を約定できない場合に発生します。_[ImmediateOfferKilled amendment][]_ が有効な場合、この結果コードは、トランザクションが`tfImmediateOrCancel`を指定して資金が移動せずに実行された場合にも発生します(これまでは、これは`tesSUCCESS`を返していました)。 | +| `tecNO_AUTH` | 発行者が[Authorized Trust Lines](../../../../concepts/tokens/fungible-tokens/authorized-trust-lines.md)を使用しているトークンを含むトランザクションで、トークンを受け取るトラストラインが存在するが認証されていない場合に発生します。 | +| `tecNO_ISSUER` | トランザクションで、`issuer`の値が台帳の有効化されたアカウントでないトークンを指定した場合に発生します。 | +| `tecNO_LINE` | 発行者が[Authorized Trust Lines](../../../../concepts/tokens/fungible-tokens/authorized-trust-lines.md)を使用しているトークンを含むトランザクションで、必要なトラストラインが存在しない場合に発生します。 | +| `tecNO_PERMISSION` | トランザクションが`DomainID`を使用しているが、送信者がそのドメインのメンバーではない場合に発生します。([PermissionedDEX amendment][] {% not-enabled /%}) | +| `tecUNFUNDED_OFFER` | トランザクションの送信者が`TakerGets`の通貨を正の値で保有していない場合に発生する。(例外: `TakerGets`にトランザクションの送信者が発行するトークンを指定した場合、トランザクションは成功します)。 | +| `temBAD_CURRENCY` | トランザクションで通貨コードが"XRP"のトークンが指定された場合に発生します。 | +| `temBAD_EXPIRATION` | トランザクションの`Expiration`フィールドの値が無効なフォーマットの場合に発生します。 | +| `temBAD_ISSUER` | トランザクションが無効な`issuer`値を持つトークンを指定した場合に発生します。 | +| `temBAD_OFFER` | OfferがXRPとXRPを交換しようとした場合、またはトークンの無効な量やマイナスの量を交換しようとした場合に発生します。 | +| `temBAD_SEQUENCE` | トランザクションの`OfferSequence`フィールドの値が無効なフォーマットであるか、トランザクション自身の`Sequence`番号より大きい場合に発生します。 | +| `temINVALID_FLAG` | トランザクションが`tfImmediateOrCancel`と`tfFillOrKill`両方を指定した場合に発生します。 | +| `temREDUNDANT` | トランザクションが同じトークン(同じ発行者、通貨コード)を指定した場合に発生します。 | {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/transactions/types/oracledelete.md b/@l10n/ja/docs/references/protocol/transactions/types/oracledelete.md index aa0d54d18c..9279032a3c 100644 --- a/@l10n/ja/docs/references/protocol/transactions/types/oracledelete.md +++ b/@l10n/ja/docs/references/protocol/transactions/types/oracledelete.md @@ -1,17 +1,18 @@ --- seo: - description: 既存の価格オラクルを削除します。 + description: 既存の価格オラクルを削除します。 labels: - オラクル --- + # OracleDelete + _([PriceOracle Amendment][])_ [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/DeleteOracle.cpp "ソース") 既存の`Oracle`レジャーエントリを削除します。 - ## OracleDeleteのJSONの例 ```json @@ -22,21 +23,19 @@ _([PriceOracle Amendment][])_ } ``` - ## OracleDeleteのフィールド -| フィールド | JSONの型 | 内部の型 | 必須? | 説明 | -|--------------------|-----------|---------------|-----------|-------------| -| `Account` | 文字列 | AccountID | はい | このアカウントは、`Oracle`オブジェクトの`Owner`フィールドのアカウントと一致する必要があります。 | -| `OracleDocumentID` | 文字列 | UInt32 | はい | `Account`の価格オラクルの一意の識別子。 | - +| フィールド | JSONの型 | 内部の型 | 必須? | 説明 | +| ------------------ | -------- | --------- | ----- | ----------------------------------------------------------------------------------------------- | +| `Account` | 文字列 | AccountID | はい | このアカウントは、`Oracle`オブジェクトの`Owner`フィールドのアカウントと一致する必要があります。 | +| `OracleDocumentID` | 文字列 | UInt32 | はい | `Account`の価格オラクルの一意の識別子。 | ## エラーのケース すべてのトランザクションで発生するエラーに加えて、`OracleDelete`トランザクションでは次のトランザクション結果コードが発生する可能性があります。 -| エラーコード | 説明 | -|---------------|-------------| +| エラーコード | 説明 | +| ------------- | ------------------------------------ | | `tecNO_ENTRY` | `Oracle`オブジェクトが存在しません。 | {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/transactions/types/oracleset.md b/@l10n/ja/docs/references/protocol/transactions/types/oracleset.md index 802e2b015e..165954e71c 100644 --- a/@l10n/ja/docs/references/protocol/transactions/types/oracleset.md +++ b/@l10n/ja/docs/references/protocol/transactions/types/oracleset.md @@ -1,17 +1,18 @@ --- seo: - description: 価格オラクルを作成または更新します。 + description: 価格オラクルを作成または更新します。 labels: - オラクル --- + # OracleSet + _([PriceOracle Amendment][])_ [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/SetOracle.cpp "ソース") Oracle Document ID を使用して、新しい`Oracle`レジャーエントリを作成するか、既存のフィールドを更新します。 - ## OracleSetのJSONの例 ```json @@ -35,28 +36,26 @@ Oracle Document ID を使用して、新しい`Oracle`レジャーエントリ } ``` - ## OracleSetのフィールド -| フィールド | JSONの型 | 内部の型 | 必須? | 説明 | -|--------------------|-----------|---------------|--------|-------------| -| `Account` | 文字列 | AccountID | はい | このアカウントは、`Oracle`オブジェクトの`Owner`フィールドのアカウントと一致する必要があります。 | -| `OracleDocumentID` | Number | UInt32 | はい | `Account`の価格オラクルのユニークな識別子。 | -| `Provider` | 文字列 | Blob | 可変 | Oracleプロバイダを識別する任意の値、例えばChainlink、Band、またはDIAなど。このフィールドは文字列で、ASCII 16進コード化文字(0x20~0x7E)を最大256文字まで使用できます。このフィールドは、新しい`Oracle`レジャーエントリを作成する際に必須ですが、更新の場合は任意です。 | -| `URI` | 文字列 | Blob | いいえ | 任意で指定可能なユニバーサルリソース識別子で、チェーン外の価格データを参照します。このフィールドは256バイトに制限されています。 | -| `LastUpdateTime` | Number | UInt32 | はい | データが最後に更新された時刻を、Unix時間で表します。 | -| `AssetClass` | 文字列 | Blob | 可変 | 「通貨」、「商品」、「指数」などの資産の種類を指定します。このフィールドは、最大16文字のASCII 16進コード文字(0x20~0x7E)の文字列です。このフィールドは、新しい`Oracle`レジャーエントリを新規作成する際に必須ですが、更新の場合は任意です。 | -| `PriceDataSeries` | Array | Array | はい | トークンペアの価格情報を表す、最大10個の`PriceData`オブジェクトの配列。`PriceData`が5個を超える場合は、2つの所有者準備金が必要です。 | - +| フィールド | JSONの型 | 内部の型 | 必須? | 説明 | +| ------------------ | -------- | --------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Account` | 文字列 | AccountID | はい | このアカウントは、`Oracle`オブジェクトの`Owner`フィールドのアカウントと一致する必要があります。 | +| `OracleDocumentID` | Number | UInt32 | はい | `Account`の価格オラクルのユニークな識別子。 | +| `Provider` | 文字列 | Blob | 可変 | Oracleプロバイダを識別する任意の値、例えばChainlink、Band、またはDIAなど。このフィールドは文字列で、ASCII 16進コード化文字(0x20~0x7E)を最大256文字まで使用できます。このフィールドは、新しい`Oracle`レジャーエントリを作成する際に必須ですが、更新の場合は任意です。 | +| `URI` | 文字列 | Blob | いいえ | 任意で指定可能なユニバーサルリソース識別子で、チェーン外の価格データを参照します。このフィールドは256バイトに制限されています。 | +| `LastUpdateTime` | Number | UInt32 | はい | データが最後に更新された時刻を、Unix時間で表します。 | +| `AssetClass` | 文字列 | Blob | 可変 | 「通貨」、「商品」、「指数」などの資産の種類を指定します。このフィールドは、最大16文字のASCII 16進コード文字(0x20~0x7E)の文字列です。このフィールドは、新しい`Oracle`レジャーエントリを新規作成する際に必須ですが、更新の場合は任意です。 | +| `PriceDataSeries` | Array | Array | はい | トークンペアの価格情報を表す、最大10個の`PriceData`オブジェクトの配列。`PriceData`が5個を超える場合は、2つの所有者準備金が必要です。 | ### PriceDataのフィールド -| フィールド | JSONの型 | 内部の型 | 必須? | 説明 | -|---------------------|-----------|---------------|--------|-------------| -| `BaseAsset` | 文字列 | Currency | はい | 取引ペアにおける基軸資産。 株式シンボル、債券CUSIP、通貨コードなど、有効な識別子であれば何でも使用できます。 例えば、BTC/USDペアではBTCが基軸資産であり、912810RR9/BTCでは912810RR9が基軸資産です。 | -| `QuoteAsset` | 文字列 | Currency | はい | 取引ペアにおける見積資産。見積資産は、ベース資産の1単位の価格を示します。例えば、BTC/USDペアでは、USDが見積資産です。912810RR9/BTCでは、BTCが見積資産です。 | -| `AssetPrice` | 数値 | UInt64 | いいえ | `Scale`レベルを適用した後の資産価格。含まれていない場合、対応するPriceDataは削除されます。 | -| `Scale` | 数値 | UInt8 | いいえ | 資産価格に適用するスケーリング値。例えば、`Scale`が6で元の価格が 0.155 の場合、スケーリング後の価格は155000となります。有効なスケール範囲は0~10です。デフォルト値は0です。 | +| フィールド | JSONの型 | 内部の型 | 必須? | 説明 | +| ------------ | -------- | -------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `BaseAsset` | 文字列 | Currency | はい | 取引ペアにおける基軸資産。 株式シンボル、債券CUSIP、通貨コードなど、有効な識別子であれば何でも使用できます。 例えば、BTC/USDペアではBTCが基軸資産であり、912810RR9/BTCでは912810RR9が基軸資産です。 | +| `QuoteAsset` | 文字列 | Currency | はい | 取引ペアにおける見積資産。見積資産は、ベース資産の1単位の価格を示します。例えば、BTC/USDペアでは、USDが見積資産です。912810RR9/BTCでは、BTCが見積資産です。 | +| `AssetPrice` | 数値 | UInt64 | いいえ | `Scale`レベルを適用した後の資産価格。含まれていない場合、対応するPriceDataは削除されます。 | +| `Scale` | 数値 | UInt8 | いいえ | 資産価格に適用するスケーリング値。例えば、`Scale`が6で元の価格が 0.155 の場合、スケーリング後の価格は155000となります。有効なスケール範囲は0~10です。デフォルト値は0です。 | `PriceData`は、以下のルールに従って作成または更新されます。 @@ -69,18 +68,17 @@ Oracle Document ID を使用して、新しい`Oracle`レジャーエントリ トランザクション内のトークンペアの順序は重要ではありません。なぜなら、各トークンペアは`PriceDataSeries`内の`PriceData`オブジェクトの場所を一意に識別するからです。 {% /admonition %} - ## エラーケース すべてのトランザクションで発生しうるエラーの他に、`OracleSet`トランザクションでは以下のトランザクション結果コードが発生する可能性があります。 -| エラーコード | 説明 | -|---------------------------|-------------| -| `temARRAY_EMPTY` | `PriceDataSeries`に`PriceData`オブジェクトがありません。 | +| エラーコード | 説明 | +| ------------------------- | ---------------------------------------------------------------------- | +| `temARRAY_EMPTY` | `PriceDataSeries`に`PriceData`オブジェクトがありません。 | | `tecARRAY_TOO_LARGE` | `PriceDataSeries`が10個の`PriceData`オブジェクトの制限を超えています。 | -| `tecINVALID_UPDATE_TIME` | `Oracle`オブジェクトに有効な`LastUpdateTime`値がありません。 | +| `tecINVALID_UPDATE_TIME` | `Oracle`オブジェクトに有効な`LastUpdateTime`値がありません。 | | `tecTOKEN_PAIR_NOT_FOUND` | 削除しようとしているトークンペアが`Oracle`オブジェクトに存在しません。 | -| `tecARRAY_EMPTY` | `PriceDataSeries`に`PriceData`オブジェクトがありません。 | +| `tecARRAY_EMPTY` | `PriceDataSeries`に`PriceData`オブジェクトがありません。 | | `temARRAY_TOO_LARGE` | `PriceDataSeries`が10個の`PriceData`オブジェクトの制限を超えています。 | {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/transactions/types/payment.md b/@l10n/ja/docs/references/protocol/transactions/types/payment.md index 9031178256..f0353e7c23 100644 --- a/@l10n/ja/docs/references/protocol/transactions/types/payment.md +++ b/@l10n/ja/docs/references/protocol/transactions/types/payment.md @@ -1,13 +1,15 @@ --- seo: - description: アカウント間での価値の移動します。 + description: アカウント間での価値の移動します。 labels: - 支払い - XRP - クロスカレンシー - トークン --- + # Payment + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/Payment.cpp "ソース") Paymentトランザクションは、アカウント間での価値の移動を表現するものです(通過するパスによっては、非可分的に発生する追加的な価値交換を伴うことがあります)。このトランザクションタイプはいくつかの[支払いの種類](#paymentの種類)に使用することがでできます。 @@ -18,17 +20,17 @@ Paymentは、[アカウントを作成](#アカウントの作成)する唯一 ```json { - "TransactionType" : "Payment", - "Account" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "Destination" : "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "DeliverMax" : { - "currency" : "USD", - "value" : "1", - "issuer" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn" + "TransactionType": "Payment", + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "DeliverMax": { + "currency": "USD", + "value": "1", + "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn" }, "Fee": "12", "Flags": 2147483648, - "Sequence": 2, + "Sequence": 2 } ``` @@ -36,18 +38,17 @@ Paymentは、[アカウントを作成](#アカウントの作成)する唯一 {% raw-partial file="/@l10n/ja/docs/_snippets/tx-fields-intro.md" /%} - -| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | -| :--------------- | :-------------------- | :----------- | :---------- | :---- | -| `Amount` | [通貨額][] | Amount | APIv1: はい | `DeliverMax`のエイリアス | -| `CredentialIDs` | 文字列の配列 | Vector256 | いいえ | このトランザクションによって作成される入金を承認するための、受取人によって事前承認された資格証明のセット。配列の各メンバは、レジャーのCredentialエントリのレジャーエントリIDでなければなりません。(_[**Credentials** amendment](../../../../../resources/known-amendments.md#credentials)が必要です。_ {% not-enabled /%}) | -| `DeliverMax` | [通貨額][] | Amount | はい | [API v2][]: 送金する通貨額。XRP以外の金額の場合、入れ子フィールドの名前では、アルファベットの小文字のみ使用してください。[**tfPartialPayment**フラグ](#paymentのフラグ)が設定されている場合は、この金額を _上限_ とする金額を送金します。 {% badge href="https://github.com/XRPLF/rippled/releases/tag/2.0.0" %}新規: rippled 2.0.0{% /badge %} | -| `DeliverMin` | [通貨額][] | Amount | いいえ | _(省略可)_ このトランザクションで送金する、宛先通貨での最少金額。[Partial Payments](#partial-payments)の場合のみ有効になります。XRP以外の金額の場合、入れ子フィールドの名前では、アルファベットの小文字のみ使用してください。 | -| `Destination` | 文字列 - [アドレス][] | AccountID | はい | 支払いを受取るアカウントの一意アドレス。 | -| `DestinationTag` | 数値 | UInt32 | いいえ | 宛先(支払先となる、ホスティングされている受取人)への支払い理由を明確にするための任意のタグ。 | -| `DomainID` | String - [Hash][] | Hash256 | いいえ | 許可されたドメインのレジャーエントリID。クロスカレンシー支払いの場合は、通貨を変換するために、対応する[許可されたDEX](../../../../concepts/tokens/decentralized-exchange/permissioned-dexes.md)のみを使用してください。送信者と受取人の両方が、指定されたドメインへのアクセスを許可する有効な資格証明を持っている必要があります。このフィールドは、クロスカレンシー支払いではない場合は効果がありません。(_[**PermissionedDEX** amendment][]が必要です。_ {% not-enabled /%}) | -| `InvoiceID` | 文字列 - 16進文字 | UInt256 | いいえ | この支払いの具体的な理由または識別子を表現する任意の256ビットハッシュ。 | -| `Paths` | パス配列の配列 | PathSet | いいえ | _(自動入力可能)_ このトランザクションに使用される[支払いパス](../../../../concepts/tokens/fungible-tokens/paths.md)の配列。XRP間のトランザクションでは省略する必要があります。 | +| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | +| :--------------- | :-------------------- | :----------- | :---------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Amount` | [通貨額][] | Amount | APIv1: はい | `DeliverMax`のエイリアス | +| `CredentialIDs` | 文字列の配列 | Vector256 | いいえ | このトランザクションによって作成される入金を承認するための、受取人によって事前承認された資格証明のセット。配列の各メンバは、レジャーのCredentialエントリのレジャーエントリIDでなければなりません。(_[**Credentials** amendment](../../../../../resources/known-amendments.md#credentials)が必要です。_ {% not-enabled /%}) | +| `DeliverMax` | [通貨額][] | Amount | はい | [API v2][]: 送金する通貨額。XRP以外の金額の場合、入れ子フィールドの名前では、アルファベットの小文字のみ使用してください。[**tfPartialPayment**フラグ](#paymentのフラグ)が設定されている場合は、この金額を _上限_ とする金額を送金します。 {% badge href="https://github.com/XRPLF/rippled/releases/tag/2.0.0" %}新規: rippled 2.0.0{% /badge %} | +| `DeliverMin` | [通貨額][] | Amount | いいえ | _(省略可)_ このトランザクションで送金する、宛先通貨での最少金額。[Partial Payments](#partial-payments)の場合のみ有効になります。XRP以外の金額の場合、入れ子フィールドの名前では、アルファベットの小文字のみ使用してください。 | +| `Destination` | 文字列 - [アドレス][] | AccountID | はい | 支払いを受取るアカウントの一意アドレス。 | +| `DestinationTag` | 数値 | UInt32 | いいえ | 宛先(支払先となる、ホスティングされている受取人)への支払い理由を明確にするための任意のタグ。 | +| `DomainID` | String - [Hash][] | Hash256 | いいえ | 許可されたドメインのレジャーエントリID。クロスカレンシー支払いの場合は、通貨を変換するために、対応する[許可されたDEX](../../../../concepts/tokens/decentralized-exchange/permissioned-dexes.md)のみを使用してください。送信者と受取人の両方が、指定されたドメインへのアクセスを許可する有効な資格証明を持っている必要があります。このフィールドは、クロスカレンシー支払いではない場合は効果がありません。(_[**PermissionedDEX** amendment][]が必要です。_ {% not-enabled /%}) | +| `InvoiceID` | 文字列 - 16進文字 | UInt256 | いいえ | この支払いの具体的な理由または識別子を表現する任意の256ビットハッシュ。 | +| `Paths` | パス配列の配列 | PathSet | いいえ | _(自動入力可能)_ このトランザクションに使用される[支払いパス](../../../../concepts/tokens/fungible-tokens/paths.md)の配列。XRP間のトランザクションでは省略する必要があります。 | | `SendMax` | [通貨額][] | Amount | いいえ | [送金手数料](../../../../concepts/tokens/fungible-tokens/transfer-fees.md)、為替レート、[スリッページ](http://en.wikipedia.org/wiki/Slippage_%28finance%29)を含め、このトランザクションに関して支払い元通貨での負担を許容する上限額。[トランザクションの送信コストとしてバーンされるXRP](../../../../concepts/transactions/transaction-cost.md)は含めないでください。XRP以外の金額の場合、入れ子フィールドの名前では、アルファベットの小文字のみ使用してください。クロスカレンシー支払いまたは複数のトークンを伴う支払いについては、このフィールドを入力する必要があります。XRP間の支払いでは省略する必要があります。 | トランザクションを指定する際は、`Amount`または`DeliverMax`のいずれかを指定する必要がありますが、両方を指定することはできません。JSONでトランザクションを表示する場合、API v1では常に`Amount`を使用し、API v2(以降)では常に`DeliverMax`を使用します。 @@ -56,30 +57,27 @@ Paymentは、[アカウントを作成](#アカウントの作成)する唯一 Paymentトランザクションタイプは、いくつかの異なるタイプの抽象的なアクションを表現することができる汎用ツールです。下の表で説明するように、トランザクションのフィールドに基づいてトランザクションタイプを識別することができます。 -| Paymentの種類 | `Amount` | `SendMax` | `Paths` | `Address` = `Destination`? | 説明 | -| :--------------------------------- | :---------------------------------- | :---------------------------------- | :--------- | :------------------------- | ---- | -| [XRP同士の直接支払い][] | 文字列 (XRP) | 省略 | 省略 | いいえ | アカウント間でへ直接XRPを送金します。常に正確な金額を送信します。基本的な[取引コスト](../../../../concepts/transactions/transaction-cost.md)以外の手数料は適用されません。 | -| [発行通貨の作成・償還][] | オブジェクト | オブジェクト (任意) | 任意 | いいえ | XRP Ledgerに追跡されているXRP以外の通貨や資産の量を増減させます。[送金手数料](../../../../concepts/tokens/fungible-tokens/transfer-fees.md)と[フリーズ](../../../../concepts/tokens/fungible-tokens/freezes.md)は、直接送金・換金する際には適用されません。 | +| Paymentの種類 | `Amount` | `SendMax` | `Paths` | `Address` = `Destination`? | 説明 | +| :--------------------------------- | :---------------------------------- | :---------------------------------- | :--------- | :------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [XRP同士の直接支払い][] | 文字列 (XRP) | 省略 | 省略 | いいえ | アカウント間でへ直接XRPを送金します。常に正確な金額を送信します。基本的な[取引コスト](../../../../concepts/transactions/transaction-cost.md)以外の手数料は適用されません。 | +| [発行通貨の作成・償還][] | オブジェクト | オブジェクト (任意) | 任意 | いいえ | XRP Ledgerに追跡されているXRP以外の通貨や資産の量を増減させます。[送金手数料](../../../../concepts/tokens/fungible-tokens/transfer-fees.md)と[フリーズ](../../../../concepts/tokens/fungible-tokens/freezes.md)は、直接送金・換金する際には適用されません。 | | [クロスカレンシー(通貨間)決済][] | オブジェクト (非XRP) / 文字列 (XRP) | オブジェクト (非XRP) / 文字列 (XRP) | 通常は必須 | いいえ | 発行された通貨を保有者から別の保有者に送信します。`Amount`と`SendMax`の両方をXRPにすることはできません。これらの支払いは、発行者を介して[リップリング](../../../../concepts/tokens/fungible-tokens/rippling.md)し、トランザクションがパスセットを指定した場合、複数の仲介者を介してより長い[パス](../../../../concepts/tokens/fungible-tokens/paths.md)を取ることができます。トランザクション形式には、発行者が設定した[送金手数料](../../../../concepts/tokens/fungible-tokens/transfer-fees.md) が適用されます。これらのトランザクションは、異なる通貨間や、場合によっては同じ通貨コードで異なる発行者の通貨間を接続するために、[分散型取引所](../../../../concepts/tokens/decentralized-exchange/index.md)のオファーを利用します。 | -| [Partial payment][] | オブジェクト (非XRP) / 文字列 (XRP) | オブジェクト (非XRP) / 文字列 (XRP) | 通常は必須 | いいえ | 任意の通貨を特定の金額まで送ります。[`tfPartialPayment` フラグ](#paymentのフラグ)を使用します。トランザクションが成功するための最小値を指定する `DeliverMin` 値を含めることができます。トランザクションが `DeliverMin` を指定しない場合、_任意の正の値_ を指定して成功させることができる。 | -| 通貨変換 | オブジェクト (非XRP) / 文字列 (XRP) | オブジェクト (非XRP) / 文字列 (XRP) | 必須 | はい | [分散型取引所](../../../../concepts/tokens/decentralized-exchange/index.md)のオファーを消費して、ある通貨を別の通貨に交換し、[裁定取引](https://ja.wikipedia.org/wiki/%E8%A3%81%E5%AE%9A%E5%8F%96%E5%BC%95)の機会を得ることが出来ます。`Amount`と `SendMax` の両方を XRP にすることはできません。[Data API](../../../data-api.md) は、このタイプの取引を "payment" ではなく、"exchange" として追跡しています。 | -| MPTの支払い | オブジェクト | 省略 | 省略 | いいえ | MPTを保有者に送信します。[MPTの支払い](#mpt-payments)をご覧ください。 | +| [Partial payment][] | オブジェクト (非XRP) / 文字列 (XRP) | オブジェクト (非XRP) / 文字列 (XRP) | 通常は必須 | いいえ | 任意の通貨を特定の金額まで送ります。[`tfPartialPayment` フラグ](#paymentのフラグ)を使用します。トランザクションが成功するための最小値を指定する `DeliverMin` 値を含めることができます。トランザクションが `DeliverMin` を指定しない場合、_任意の正の値_ を指定して成功させることができる。 | +| 通貨変換 | オブジェクト (非XRP) / 文字列 (XRP) | オブジェクト (非XRP) / 文字列 (XRP) | 必須 | はい | [分散型取引所](../../../../concepts/tokens/decentralized-exchange/index.md)のオファーを消費して、ある通貨を別の通貨に交換し、[裁定取引](https://ja.wikipedia.org/wiki/%E8%A3%81%E5%AE%9A%E5%8F%96%E5%BC%95)の機会を得ることが出来ます。`Amount`と `SendMax` の両方を XRP にすることはできません。[Data API](../../../data-api.md) は、このタイプの取引を "payment" ではなく、"exchange" として追跡しています。 | +| MPTの支払い | オブジェクト | 省略 | 省略 | いいえ | MPTを保有者に送信します。[MPTの支払い](#mpt-payments)をご覧ください。 | [XRP同士の直接支払い]: ../../../../concepts/payment-types/direct-xrp-payments.md [発行通貨の作成・償還]: ../../../../concepts/tokens/index.md [クロスカレンシー(通貨間)決済]: ../../../../concepts/payment-types/cross-currency-payments.md [Partial payment]: ../../../../concepts/payment-types/partial-payments.md - ## SendMaxおよびAmountで使用する特殊なissuerの値 - - ほとんどの場合、XRP以外の[通貨額][]の`issuer`フィールドは、金融機関の[発行アドレス](../../../../concepts/accounts/account-types.md)を示しています。ただし、支払いを記述するにあたって、支払いの`DeliverMax`(または`Amount`)フィールドと`SendMax`フィールドにある`issuer`フィールドについては、特殊なルールが存在します。 -* 2つのアドレス間で、同一の通貨に関して存在する残高は常に1つです。つまり、金額の`issuer`フィールドが実際に表しているのは、イシュアンスを作成したアドレスではなく、イシュアンスを換金する相手方であることがあります。 -* 宛先`DeliverMax`フィールドの`issuer`フィールドが`Destination`アドレスと一致している場合、「宛先が受け入れるあらゆるイシュアー」を意味する特殊なケースとして取り扱われます。これには、他のトラストラインで保持されている宛先によって作成されたイシュアンスに加え、宛先が当該アドレスまでトラストラインを延長しているすべてのアドレスが含まれます。 -* `SendMax`フィールドの`issuer`フィールドが送信元アカウントのアドレスと一致している場合、「送信元が使用できるあらゆるイシュアー」を意味する特殊なケースとして取り扱われます。送信元アカウントが既に保有しているトークンを送信するか、送信元アカウントと信頼関係にある他のユーザーに対して新しいトークンを発行することができます。 +- 2つのアドレス間で、同一の通貨に関して存在する残高は常に1つです。つまり、金額の`issuer`フィールドが実際に表しているのは、イシュアンスを作成したアドレスではなく、イシュアンスを換金する相手方であることがあります。 +- 宛先`DeliverMax`フィールドの`issuer`フィールドが`Destination`アドレスと一致している場合、「宛先が受け入れるあらゆるイシュアー」を意味する特殊なケースとして取り扱われます。これには、他のトラストラインで保持されている宛先によって作成されたイシュアンスに加え、宛先が当該アドレスまでトラストラインを延長しているすべてのアドレスが含まれます。 +- `SendMax`フィールドの`issuer`フィールドが送信元アカウントのアドレスと一致している場合、「送信元が使用できるあらゆるイシュアー」を意味する特殊なケースとして取り扱われます。送信元アカウントが既に保有しているトークンを送信するか、送信元アカウントと信頼関係にある他のユーザーに対して新しいトークンを発行することができます。 ## アカウントの作成 @@ -93,8 +91,8 @@ Payment型のトランザクションでは、資金供給のないアドレス 以下の場合を含め、直接の支払いでは`Paths`フィールドを省略する必要があります。 -* XRP間の送金。 -* 送信者と受信者を接続するトラストライン上での直接送金。 +- XRP間の送金。 +- 送信者と受信者を接続するトラストライン上での直接送金。 `Paths`フィールドを指定すると、サーバは、提供されたセットと _デフォルトパス_ の中から、使用するパス(指定されたアカウントに接続する上で、最も直行となる経路)をトランザクション処理時に判別します。このように決定された判別は、コストを最小化しようとするものですが、完璧であることは保証されません。 @@ -106,11 +104,11 @@ Payment型のトランザクションでは、資金供給のないアドレス Payment型のトランザクションについては、[`Flags`フィールド](../common-fields.md#flagsフィールド)で以下の値が追加でサポートされます。 -| フラグの名前 | 16進値 | 10進値 | 説明 | -| :----------------- | :----------- | :----- | ---- | +| フラグの名前 | 16進値 | 10進値 | 説明 | +| :----------------- | :----------- | :----- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `tfNoRippleDirect` | `0x00010000` | 65536 | デフォルトパスを使用せず、`Paths`フィールドに含まれているパスのみ使用します。これによりトランザクションは強制的に裁定機会を活用することになります。ほとんどのクライアントでは、これは必要ありません。 | -| `tfPartialPayment` | `0x00020000` | 131072 | `SendMax`を超えていないのに指定された`Amount`を送金できない場合、即座に失敗とするのではなく、受取られる額を減額します。詳細は、[Partial Payments](#partial-payments)をご覧ください。 | -| `tfLimitQuality` | `0x00040000` | 262144 | すべての変換で、入力と出力との比率が`Amount`と`SendMax`との比率と同一であるか、さらに有利となるパスのみを採用します。詳細は、[クオリティの制限](#クオリティの制限)をご覧ください。 | +| `tfPartialPayment` | `0x00020000` | 131072 | `SendMax`を超えていないのに指定された`Amount`を送金できない場合、即座に失敗とするのではなく、受取られる額を減額します。詳細は、[Partial Payments](#partial-payments)をご覧ください。 | +| `tfLimitQuality` | `0x00040000` | 262144 | すべての変換で、入力と出力との比率が`Amount`と`SendMax`との比率と同一であるか、さらに有利となるパスのみを採用します。詳細は、[クオリティの制限](#クオリティの制限)をご覧ください。 | ## Partial Payments @@ -122,7 +120,6 @@ Partial Paymentsとは、**tfPartialPayment**フラグが有効になってい 詳細は、[Partial Payments](../../../../concepts/payment-types/partial-payments.md)の全文をご覧ください。 - ## クオリティの制限 XRP Ledgerでは、ある通貨での入金額と別の通貨での出金額の比率として、通貨取引の「クオリティ」を定義します。例えば、2米ドルと引き換えに1イギリスポンドを受け取る場合、その交換の「クオリティ」は`0.5`です。 @@ -151,22 +148,22 @@ MPTokenのバージョン1では、アカウント間の直接支払いのみを ```json { - "Account": "rLWSJKbwYSzG32JuGissYd66MFTvfMk4Bt", - "Amount": { - "mpt_issuance_id": "006419063CEBEB49FC20032206CE0F203138BFC59F1AC578", - "value": "100" - }, - "DeliverMax": { - "mpt_issuance_id": "006419063CEBEB49FC20032206CE0F203138BFC59F1AC578", - "value": "100" - }, - "SendMax": { - "mpt_issuance_id": "006419063CEBEB49FC20032206CE0F203138BFC59F1AC578", - "value": "100" - }, - "Destination": "raZ3wTTKiMHn3BiStvz4ET9rbCHfU1DMak", - "Fee": "120", - "Flags": 0, + "Account": "rLWSJKbwYSzG32JuGissYd66MFTvfMk4Bt", + "Amount": { + "mpt_issuance_id": "006419063CEBEB49FC20032206CE0F203138BFC59F1AC578", + "value": "100" + }, + "DeliverMax": { + "mpt_issuance_id": "006419063CEBEB49FC20032206CE0F203138BFC59F1AC578", + "value": "100" + }, + "SendMax": { + "mpt_issuance_id": "006419063CEBEB49FC20032206CE0F203138BFC59F1AC578", + "value": "100" + }, + "Destination": "raZ3wTTKiMHn3BiStvz4ET9rbCHfU1DMak", + "Fee": "120", + "Flags": 0 } ``` @@ -189,10 +186,8 @@ _([Credentials amendment][]が必要です。 {% not-enabled /%})_ `CredentialIDs`フィールドは、デポジットの承認処理にのみ使用され、[許可型DEX](../../../../concepts/tokens/decentralized-exchange/permissioned-dexes.md)での取引には使用されません。ただし、許可型DEXでもアクセス権限を付与するために認証情報が使用されます。許可型DEXで取引を行うには、`DomainID`フィールドを使用して、有効な資格情報を保持しているドメインを指定する必要があります。 {% /admonition %} - ## 準備金を下回るアカウントに対する特別な送金のケース Deposit Authorizationを使用しているアカウントが、そのアカウントの現在のXRP残高が[準備金要件](../../../../concepts/accounts/reserves.md)よりも少ない場合、Deposit Authorizationには、誰でもPaymentトランザクションを送信できる特別な例外があります。これは、アカウントが「取引できない」状態になるのを防ぐための緊急措置です。この特別なケースに該当するには、`CredentialIDs`フィールドを使用してはいけません。 - {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/transactions/types/paymentchannelclaim.md b/@l10n/ja/docs/references/protocol/transactions/types/paymentchannelclaim.md index d2fecbebed..1b89f35186 100644 --- a/@l10n/ja/docs/references/protocol/transactions/types/paymentchannelclaim.md +++ b/@l10n/ja/docs/references/protocol/transactions/types/paymentchannelclaim.md @@ -1,10 +1,12 @@ --- seo: - description: Payment Channelに対しXRPを請求します。 + description: Payment Channelに対しXRPを請求します。 labels: - - Payment Channel + - Payment Channel --- + # PaymentChannelClaim + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/PayChan.cpp "Source") Payment Channelに対しXRPを請求するか、Payment Channelの有効期限を調整するか、またはこの両方の操作を行います。このトランザクションは、指定されたChannelでのトランザクション送信者の役割に応じてさまざまに利用できます。 @@ -27,7 +29,6 @@ Channelの**宛先アドレス**は以下の操作を実行できます。 {% amendment-disclaimer name="PayChan" /%} - ## {% $frontmatter.seo.title %} JSONの例 ```json @@ -44,26 +45,24 @@ Channelの**宛先アドレス**は以下の操作を実行できます。 {% raw-partial file="/@l10n/ja/docs/_snippets/tx-fields-intro.md" /%} - -| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | -| :-------------- | :----------- | :----------- | :----- | ---- | -| `Amount` | 文字列 | Amount | いいえ | `Signature`により承認された[XRPのdrop数][]の額。これは、署名済みメッセージの額に一致している必要があります。これは、Channelが利用できるXRPの累計額であり、以前に精算されたXRPを含みます。 | -| `Balance` | 文字列 | Amount | いいえ | このクレームの処理後にこのChannelから送金される[XRPのdrop数][]。XRPを送金する場合に必須です。Channelからこれまでに送金された総額よりも大きく、署名済みクレームの`Amount`よりも少ない額である必要があります。Channelを閉鎖する場合を除き、指定する必要があります。 | -| `Channel` | 文字列 | UInt256 | はい | Channelの一意のID(64文字の16進文字列) | -| `CredentialIDs` | 文字列の配列 | Vector256 | いいえ | このトランザクションによる入金を承認するための資格情報のセット。配列の各要素は、レジャーのCredentialエントリのレジャエントリIDでなければなりません。詳細は、[Credential ID](./payment.md#credential-id)をご覧ください。 | +| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | +| :-------------- | :----------- | :----------- | :----- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Amount` | 文字列 | Amount | いいえ | `Signature`により承認された[XRPのdrop数][]の額。これは、署名済みメッセージの額に一致している必要があります。これは、Channelが利用できるXRPの累計額であり、以前に精算されたXRPを含みます。 | +| `Balance` | 文字列 | Amount | いいえ | このクレームの処理後にこのChannelから送金される[XRPのdrop数][]。XRPを送金する場合に必須です。Channelからこれまでに送金された総額よりも大きく、署名済みクレームの`Amount`よりも少ない額である必要があります。Channelを閉鎖する場合を除き、指定する必要があります。 | +| `Channel` | 文字列 | UInt256 | はい | Channelの一意のID(64文字の16進文字列) | +| `CredentialIDs` | 文字列の配列 | Vector256 | いいえ | このトランザクションによる入金を承認するための資格情報のセット。配列の各要素は、レジャーのCredentialエントリのレジャエントリIDでなければなりません。詳細は、[Credential ID](./payment.md#credential-id)をご覧ください。 | | `PublicKey` | 文字列 | Blob | いいえ | 署名に使用する公開鍵(16進数)。公開鍵はレジャーに保管されているこのChannelの`PublicKey`と一致している必要があります。トランザクションの送信者がChannelの支払元アドレスでない場合には必須です。また`Signature`フィールドは省略されます。(`rippled`がトランザクションをレジャーに適用する前に署名の有効性をチェックできるように、トランザクションにPubKeyが指定されています。) | -| `Signature` | 文字列 | Blob | いいえ | クレームの署名(16進数)。署名付きメッセージには、Channel IDとクレームの額が含まれています。トランザクションの送信者がChannelの支払元アドレスでない場合には必須です。 | +| `Signature` | 文字列 | Blob | いいえ | クレームの署名(16進数)。署名付きメッセージには、Channel IDとクレームの額が含まれています。トランザクションの送信者がChannelの支払元アドレスでない場合には必須です。 | [DeletableAccounts Amendment](/resources/known-amendments.md#deletableaccounts)が有効であり、 _かつ_ Payment Channelの作成時に[fixPayChanRecipientOwnerDir Amendment](/resources/known-amendments.md#fixpaychanrecipientownerdir)が有効でなかった場合は、Payment Channelの送金先が[削除](../../../../concepts/accounts/deleting-accounts.md)され、現在レジャーに存在しない可能性があります。宛先が削除されている場合、支払元アカウントはチャネルから宛先にXRPを送金できません。トランザクションは`tecNO_DST`で失敗します。宛先アカウントが削除されている場合に、このトランザクションタイプを他の用途(チャネルの有効期限の調整、XRPのないチャネルのクローズ、有効期限を過ぎたチャネルの削除など)で使用しても影響はありません。 - ## PaymentChannelClaimフラグ PaymentChannelClaimタイプのトランザクションについては、[`Flags`フィールド](../common-fields.md#flagsフィールド)で以下の値が追加でサポートされます。 -| フラグ名 | 16進数値 | 10進数値 | 説明 | -| :-------- | :----------- | :------- | ---- | -| `tfRenew` | `0x00010000` | 65536 | Channelの`Expiration`時刻をクリアします。(`Expiration`は、Channelの変更できない`CancelAfter`時刻とは異なります。)このフラグは、Payment Channelの支払元アドレスだけが使用できます。 | +| フラグ名 | 16進数値 | 10進数値 | 説明 | +| :-------- | :----------- | :------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `tfRenew` | `0x00010000` | 65536 | Channelの`Expiration`時刻をクリアします。(`Expiration`は、Channelの変更できない`CancelAfter`時刻とは異なります。)このフラグは、Payment Channelの支払元アドレスだけが使用できます。 | | `tfClose` | `0x00020000` | 131072 | Channelの閉鎖を要求します。このフラグは、Channelの支払元アドレスと宛先アドレスだけが使用できます。このフラグにより、現在のクレームの処理後にChannelにこれ以上のXRPが割り当てられない場合、または宛先アドレスが使用している場合に、Channelが即時に閉鎖されます。XRPがまだChannelに保有されているときに、支払元アドレスがこのフラグを使用した場合、`SettleDelay`秒の経過後にChannelが閉鎖するようにスケジュールされます。(具体的には、Channelの`Expiration`は、前のレジャーの閉鎖時刻にChannelの`SettleDelay`の時間を加算した時刻に設定されます。ただし、Channelにこの時刻よりも早い`Expiration`時刻がすでに設定されている場合を除きます。) XRPがまだChannelに保有されているときに、宛先アドレスがこのフラグを使用した場合、クレーム処理後に残っているXRPはすべて支払元アドレスに返金されます。 | {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/transactions/types/paymentchannelcreate.md b/@l10n/ja/docs/references/protocol/transactions/types/paymentchannelcreate.md index 11db801361..182d347330 100644 --- a/@l10n/ja/docs/references/protocol/transactions/types/paymentchannelcreate.md +++ b/@l10n/ja/docs/references/protocol/transactions/types/paymentchannelcreate.md @@ -1,10 +1,12 @@ --- seo: - description: 新しいペイメントチャネルを作成します。 + description: 新しいペイメントチャネルを作成します。 labels: - - Payment Channel + - Payment Channel --- + # PaymentChannelCreate + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/PayChan.cpp "ソース") [ペイメントチャンネル](../../../../concepts/payment-types/payment-channels.md)を作成し、XRPで資金を供給します。このトランザクションを送信するアドレスが、ペイメントチャネルの「送信元アドレス」となります。 @@ -15,15 +17,15 @@ labels: ```json { - "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "TransactionType": "PaymentChannelCreate", - "Amount": "10000", - "Destination": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", - "SettleDelay": 86400, - "PublicKey": "32D2471DB72B27E3310F355BB33E339BF26F8392D5A93D3BC0FC3B566612DA0F0A", - "CancelAfter": 533171558, - "DestinationTag": 23480, - "SourceTag": 11747 + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "TransactionType": "PaymentChannelCreate", + "Amount": "10000", + "Destination": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", + "SettleDelay": 86400, + "PublicKey": "32D2471DB72B27E3310F355BB33E339BF26F8392D5A93D3BC0FC3B566612DA0F0A", + "CancelAfter": 533171558, + "DestinationTag": 23480, + "SourceTag": 11747 } ``` @@ -31,15 +33,14 @@ labels: {% raw-partial file="/@l10n/ja/docs/_snippets/tx-fields-intro.md" /%} - -| フィールド | JSONの型 | [内部の型][] | 説明 | -|:-----------------|:----------|:------------------|:--------------------------| -| `Amount` | 文字列 | Amount | 送金元の残高から差し引いてこのChannelに留保する[XRPのdrop数][]の額。このChannelのオープン時には、XRPを`Destination`アドレスにのみ移動できます。Channelが閉鎖すると、未請求のXRPは支払元アドレスの残高に戻されます。 | -| `Destination` | 文字列 | AccountID | このChannelに対するXRPクレームを受け取るアドレス。Channelの「宛先アドレス」とも呼ばれます。送金元(`Account`)と同一にはできません。 | -| `SettleDelay` | 数値 | UInt32 | Channelに未請求のXRPがある場合に、支払元アドレスがそのChannelを閉鎖するまでに待機する時間。 | -| `PublicKey` | 文字列 | Blob | 送信元がこのチャネルに対する請求に使用する鍵ペアの33バイトの公開鍵を16進数で指定します。これはsecp256k1またはEd25519の公開鍵であることができます。キーペアの詳細については、[鍵の導出](../../../../concepts/accounts/cryptographic-keys.md#鍵導出) をご覧ください。 | -| `CancelAfter` | 数値 | UInt32 | _(省略可)_ このChannelの有効期限([Rippleエポック以降の経過秒数][])。この時刻の経過後にトランザクションがこのChannelを変更しようとすると、このChannelは閉鎖し、Channelは変更されません。この値は変更できません。Channelはこの時刻よりも早い時点で閉鎖できますが、この時刻の経過後にもオープンしたままにすることはできません。 | -| `DestinationTag` | 数値 | UInt32 | _(省略可)_ このPayment Channelの宛先(宛先アドレスのホスティングされている受取人など) を詳しく指定するための任意のタグ。 | +| フィールド | JSONの型 | [内部の型][] | 説明 | +| :--------------- | :------- | :----------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Amount` | 文字列 | Amount | 送金元の残高から差し引いてこのChannelに留保する[XRPのdrop数][]の額。このChannelのオープン時には、XRPを`Destination`アドレスにのみ移動できます。Channelが閉鎖すると、未請求のXRPは支払元アドレスの残高に戻されます。 | +| `Destination` | 文字列 | AccountID | このChannelに対するXRPクレームを受け取るアドレス。Channelの「宛先アドレス」とも呼ばれます。送金元(`Account`)と同一にはできません。 | +| `SettleDelay` | 数値 | UInt32 | Channelに未請求のXRPがある場合に、支払元アドレスがそのChannelを閉鎖するまでに待機する時間。 | +| `PublicKey` | 文字列 | Blob | 送信元がこのチャネルに対する請求に使用する鍵ペアの33バイトの公開鍵を16進数で指定します。これはsecp256k1またはEd25519の公開鍵であることができます。キーペアの詳細については、[鍵の導出](../../../../concepts/accounts/cryptographic-keys.md#鍵導出) をご覧ください。 | +| `CancelAfter` | 数値 | UInt32 | _(省略可)_ このChannelの有効期限([Rippleエポック以降の経過秒数][])。この時刻の経過後にトランザクションがこのChannelを変更しようとすると、このChannelは閉鎖し、Channelは変更されません。この値は変更できません。Channelはこの時刻よりも早い時点で閉鎖できますが、この時刻の経過後にもオープンしたままにすることはできません。 | +| `DestinationTag` | 数値 | UInt32 | _(省略可)_ このPayment Channelの宛先(宛先アドレスのホスティングされている受取人など) を詳しく指定するための任意のタグ。 | `Destination` アカウントがペイメントチャネルの着信をブロックしている場合、トランザクションは結果コード`tecNO_PERMISSION` 失敗します。{% amendment-disclaimer name="DisallowIncoming" /%} diff --git a/@l10n/ja/docs/references/protocol/transactions/types/paymentchannelfund.md b/@l10n/ja/docs/references/protocol/transactions/types/paymentchannelfund.md index bd1fb9b77f..fe74c913cc 100644 --- a/@l10n/ja/docs/references/protocol/transactions/types/paymentchannelfund.md +++ b/@l10n/ja/docs/references/protocol/transactions/types/paymentchannelfund.md @@ -1,10 +1,12 @@ --- seo: - description: Payment ChannelにXRPを追加します。 + description: Payment ChannelにXRPを追加します。 labels: - - Payment Channel + - Payment Channel --- + # PaymentChannelFund + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/PayChan.cpp "Source") Payment ChannelにXRPを追加する、有効期限の更新も可能。このトランザクションは、Channelの支払元アドレスだけが使用できます。 @@ -15,11 +17,11 @@ Payment ChannelにXRPを追加する、有効期限の更新も可能。この ```json { - "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "TransactionType": "PaymentChannelFund", - "Channel": "C1AE6DDDEEC05CF2978C0BAD6FE302948E9533691DC749DCDD3B9E5992CA6198", - "Amount": "200000", - "Expiration": 543171558 + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "TransactionType": "PaymentChannelFund", + "Channel": "C1AE6DDDEEC05CF2978C0BAD6FE302948E9533691DC749DCDD3B9E5992CA6198", + "Amount": "200000", + "Expiration": 543171558 } ``` @@ -27,24 +29,24 @@ Payment ChannelにXRPを追加する、有効期限の更新も可能。この {% raw-partial file="/@l10n/ja/docs/_snippets/tx-fields-intro.md" /%} -| フィールド | JSONの型 | [内部の型][] | 説明 | -|:-------------|:----------|:------------------|:------------------------------| -| `Channel` | 文字列 | UInt256 | 資金供給するChannelの一意のID(64文字の16進文字列)。 | -| `Amount` | 文字列 | Amount | Channelに追加する[XRPのdrop数][]の正の額。 | -| `Expiration` | 数値 | UInt32 | _(省略可)_ Channelに新たに設定する`Expiration`の時刻(Rippleエポック以降の経過秒数)。現行時刻にChannelの`SettleDelay`を加えた時刻よりも後であるか、またはChannelの既存の`Expiration`よりも後である必要があります。`Expiration`時刻の経過後には、トランザクションがそのChannelにアクセスするとChannelが閉鎖し、トランザクションの通常の処理は行われません。Channelの閉鎖時には未使用のXRPはすべて支払元アドレスに返金されます。(`Expiration`は、Channelの不変の`CancelAfter`時刻とは別のものです。)詳細は、[PayChannelレジャーオブジェクトタイプ](../../ledger-data/ledger-entry-types/paychannel.md)をご覧ください。 | +| フィールド | JSONの型 | [内部の型][] | 説明 | +| :----------- | :------- | :----------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `Channel` | 文字列 | UInt256 | 資金供給するChannelの一意のID(64文字の16進文字列)。 | +| `Amount` | 文字列 | Amount | Channelに追加する[XRPのdrop数][]の正の額。 | +| `Expiration` | 数値 | UInt32 | _(省略可)_ Channelに新たに設定する`Expiration`の時刻(Rippleエポック以降の経過秒数)。現行時刻にChannelの`SettleDelay`を加えた時刻よりも後であるか、またはChannelの既存の`Expiration`よりも後である必要があります。`Expiration`時刻の経過後には、トランザクションがそのChannelにアクセスするとChannelが閉鎖し、トランザクションの通常の処理は行われません。Channelの閉鎖時には未使用のXRPはすべて支払元アドレスに返金されます。(`Expiration`は、Channelの不変の`CancelAfter`時刻とは別のものです。)詳細は、[PayChannelレジャーオブジェクトタイプ](../../ledger-data/ledger-entry-types/paychannel.md)をご覧ください。 | ## エラーケース すべてのトランザクションで発生する可能性のあるエラーに加えて、{% $frontmatter.seo.title %}トランザクションでは、次の[トランザクション結果コード](../transaction-results/index.md)が発生する可能性があります。 -| エラーコード | 説明 | -|:-----------|:------------| -| `tecINSUFFICIENT_RESERVE` | 支払元アカウントが[必要準備金](../../../../concepts/accounts/reserves.md)のXRPを持っていません。| -| `tecNO_DST` | 送金先アカウントが削除されていました。 この可能性は、Payment Channelの作成時は[fixPayChanRecipientOwnerDir amendment](/resources/known-amendments.md#fixpaychanrecipientownerdir)が有効になった(2020-05-01)前の場合だけです。| -| `tecNO_ENTRY` | `Channel`フィールドに指定されたPayment Channelがありません。 | -| `tecNO_PERMISSION` | トランザクションの送金元アカウントはPayment Channelの支払元アカウントではありまっせん。| -| `tecUNFUNDED` | 送金元アカウントは[必要準備金](../../../../concepts/accounts/reserves.md)以上に指定されたXRPを持っていません。| -| `temBAD_AMOUNT` | トランザクションの`Amount`フィールドの指定が正しくない。負もゼロも無効です。| -| `temBAD_EXPIRATION` | `Expiration`フィールドの指定が正しくない。| +| エラーコード | 説明 | +| :------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `tecINSUFFICIENT_RESERVE` | 支払元アカウントが[必要準備金](../../../../concepts/accounts/reserves.md)のXRPを持っていません。 | +| `tecNO_DST` | 送金先アカウントが削除されていました。 この可能性は、Payment Channelの作成時は[fixPayChanRecipientOwnerDir amendment](/resources/known-amendments.md#fixpaychanrecipientownerdir)が有効になった(2020-05-01)前の場合だけです。 | +| `tecNO_ENTRY` | `Channel`フィールドに指定されたPayment Channelがありません。 | +| `tecNO_PERMISSION` | トランザクションの送金元アカウントはPayment Channelの支払元アカウントではありまっせん。 | +| `tecUNFUNDED` | 送金元アカウントは[必要準備金](../../../../concepts/accounts/reserves.md)以上に指定されたXRPを持っていません。 | +| `temBAD_AMOUNT` | トランザクションの`Amount`フィールドの指定が正しくない。負もゼロも無効です。 | +| `temBAD_EXPIRATION` | `Expiration`フィールドの指定が正しくない。 | {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/transactions/types/permissioneddomaindelete.md b/@l10n/ja/docs/references/protocol/transactions/types/permissioneddomaindelete.md index 6522c36832..7450546d99 100644 --- a/@l10n/ja/docs/references/protocol/transactions/types/permissioneddomaindelete.md +++ b/@l10n/ja/docs/references/protocol/transactions/types/permissioneddomaindelete.md @@ -1,11 +1,13 @@ --- seo: - description: 許可型ドメインのレジャーエントリを削除する + description: 許可型ドメインのレジャーエントリを削除する labels: - コンプライアンス - 許可型ドメイン --- + # PermissionedDomainDelete + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/PermissionedDomainDelete.cpp "ソース") 所有する[許可型ドメイン][]を削除します。 @@ -28,8 +30,8 @@ _([PermissionedDomains amendment][]が必要です {% not-enabled /%})_ {% raw-partial file="/@l10n/ja/docs/_snippets/tx-fields-intro.md" /%} -| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | -|:-----------|:----------------------|:-------------|:------|:-----| +| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | +| :--------- | :-------------------- | :----------- | :---- | :------------------------------------------- | | `DomainID` | 文字列 - [ハッシュ][] | Hash256 | はい | 削除する許可型ドメインのレジャーエントリID。 | ## {% $frontmatter.seo.title %}のフラグ @@ -40,9 +42,9 @@ _([PermissionedDomains amendment][]が必要です {% not-enabled /%})_ すべてのトランザクションで発生する可能性のあるエラーに加えて、{% $frontmatter.seo.title %}トランザクションでは、次の[トランザクション結果コード](../transaction-results/index.md)が発生する可能性があります。 -| エラーコード | 説明 | -|:--------------|:--------------------------------------| +| エラーコード | 説明 | +| :------------ | :----------------------------------------------------------------------- | | `tecNO_ENTRY` | `DomainID`フィールドで指定された許可型ドメインがレジャーに存在しません。 | -| `temDISABLED` | `PermissionedDomains` amendmentが有効ではありません。 | +| `temDISABLED` | `PermissionedDomains` amendmentが有効ではありません。 | {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/transactions/types/permissioneddomainset.md b/@l10n/ja/docs/references/protocol/transactions/types/permissioneddomainset.md index b9a401d90a..1e2264d4ed 100644 --- a/@l10n/ja/docs/references/protocol/transactions/types/permissioneddomainset.md +++ b/@l10n/ja/docs/references/protocol/transactions/types/permissioneddomainset.md @@ -1,11 +1,13 @@ --- seo: - description: 許可型ドメインを作成または更新する + description: 許可型ドメインを作成または更新する labels: - コンプライアンス - 許可型ドメイン --- + # PermissionedDomainSet + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/PermissionedDomainSet.cpp "ソース") [許可型ドメイン][]を作成するか、所有するドメインを変更します。 @@ -22,10 +24,10 @@ _([PermissionedDomains amendment][]が必要です {% not-enabled /%})_ "Sequence": 390, "AcceptedCredentials": [ { - "Credential": { - "Issuer": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "CredentialType": "6D795F63726564656E7469616C" - } + "Credential": { + "Issuer": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "CredentialType": "6D795F63726564656E7469616C" + } } ] } @@ -35,9 +37,9 @@ _([PermissionedDomains amendment][]が必要です {% not-enabled /%})_ {% raw-partial file="/@l10n/ja/docs/_snippets/tx-fields-intro.md" /%} -| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | -|:----------------------|:----------------------|:-------------|:-------|:------------| -| `DomainID` | 文字列 - [ハッシュ][] | Hash256 | いいえ | 変更する既存の許可型ドメインのレジャーエントリID。省略すると、新しい許可型ドメインが作成されます。 | +| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | +| :-------------------- | :-------------------- | :----------- | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `DomainID` | 文字列 - [ハッシュ][] | Hash256 | いいえ | 変更する既存の許可型ドメインのレジャーエントリID。省略すると、新しい許可型ドメインが作成されます。 | | `AcceptedCredentials` | 配列 | Array | はい | このドメインへのアクセスを許可する1から10個の[**Accepted Credentialsオブジェクト**](#accepted-credentials-objects)のリスト。リストはソートする必要はありませんが、重複ことはできません。既存のドメインを変更する場合、このリストは既存のリストを置き換えます。 | {% raw-partial file="/@l10n/ja/docs/_snippets/accepted-credentials-objects.md" /%} @@ -50,14 +52,13 @@ _([PermissionedDomains amendment][]が必要です {% not-enabled /%})_ すべてのトランザクションで発生する可能性のあるエラーに加えて、{% $frontmatter.seo.title %}トランザクションでは、次の[トランザクション結果コード](../transaction-results/index.md)が発生する可能性があります。 -| エラーコード | 説明 | -|:--------------------------|:-----| -| `tecDIR_FULL` | このトランザクションは、新しい許可型ドメインを作成しますが、送信者の所有者ディレクトリがいっぱいです。 | -| `tecINSUFFICIENT_RESERVE` | このトランザクションは、新しい許可型ドメインを作成しますが、送信者が増加分の所有者準備金を満たす十分なXRPを持っていません。 | -| `tecNO_ENTRY` | このトランザクションは、存在しないドメインを変更しようとしました。トランザクションの`DomainID`フィールドを確認してください。 | +| エラーコード | 説明 | +| :------------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------- | +| `tecDIR_FULL` | このトランザクションは、新しい許可型ドメインを作成しますが、送信者の所有者ディレクトリがいっぱいです。 | +| `tecINSUFFICIENT_RESERVE` | このトランザクションは、新しい許可型ドメインを作成しますが、送信者が増加分の所有者準備金を満たす十分なXRPを持っていません。 | +| `tecNO_ENTRY` | このトランザクションは、存在しないドメインを変更しようとしました。トランザクションの`DomainID`フィールドを確認してください。 | | `tecNO_ISSUER` | `AcceptedCredentials`フィールドで指定された発行者の少なくとも1つがXRP Ledgerに存在しません。配列の各メンバーの`Issuer`フィールドを確認してください。 | -| `tecNO_PERMISSION` | このトランザクションは、既存のドメインを変更しようとしましたが、トランザクションの送信者は指定されたドメインの所有者ではありません。 | -| `temDISABLED` | `PermissionedDomains` amendmentが有効ではないか、または`Credentials` amendmentが有効ではありません。 | - +| `tecNO_PERMISSION` | このトランザクションは、既存のドメインを変更しようとしましたが、トランザクションの送信者は指定されたドメインの所有者ではありません。 | +| `temDISABLED` | `PermissionedDomains` amendmentが有効ではないか、または`Credentials` amendmentが有効ではありません。 | {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/transactions/types/setregularkey.md b/@l10n/ja/docs/references/protocol/transactions/types/setregularkey.md index 02d21e2cac..512bcba504 100644 --- a/@l10n/ja/docs/references/protocol/transactions/types/setregularkey.md +++ b/@l10n/ja/docs/references/protocol/transactions/types/setregularkey.md @@ -2,10 +2,11 @@ html: setregularkey.html parent: transaction-types.html seo: - description: アカウントに関連付けられているレギュラーキーペアの割り当て、変更、削除を行います。 + description: アカウントに関連付けられているレギュラーキーペアの割り当て、変更、削除を行います。 labels: - セキュリティ --- + # SetRegularKey [[ソース]](https://github.com/XRPLF/rippled/blob/4239880acb5e559446d2067f00dabb31cf102a23/src/ripple/app/transactors/SetRegularKey.cpp "Source") @@ -18,22 +19,23 @@ labels: ```json { - "Flags": 0, - "TransactionType": "SetRegularKey", - "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "Fee": "12", - "RegularKey": "rAR8rR8sUkBoCZFawhkWzY4Y5YoyuznwD" + "Flags": 0, + "TransactionType": "SetRegularKey", + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "Fee": "12", + "RegularKey": "rAR8rR8sUkBoCZFawhkWzY4Y5YoyuznwD" } ``` {% tx-example txid="6AA6F6EAAAB56E65F7F738A9A2A8A7525439D65BA990E9BA08F6F4B1C2D349B4" /%} {% raw-partial file="/@l10n/ja/docs/_snippets/tx-fields-intro.md" /%} + -| フィールド | JSONの型 | [内部の型][] | 説明 | -|:-------------|:----------|:------------------|:------------------------------| -| `RegularKey` | 文字列 | AccountID | _(省略可)_ アカウントに割り当てるレギュラーキーペアを示すbase-58エンコード[アドレス][]。省略されている場合は、アカウントから既存のレギュラーキーペアが削除されます。アドレスのマスターキーペアと一致してはなりません。 | +| フィールド | JSONの型 | [内部の型][] | 説明 | +| :----------- | :------- | :----------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `RegularKey` | 文字列 | AccountID | _(省略可)_ アカウントに割り当てるレギュラーキーペアを示すbase-58エンコード[アドレス][]。省略されている場合は、アカウントから既存のレギュラーキーペアが削除されます。アドレスのマスターキーペアと一致してはなりません。 | ## 関連項目 diff --git a/@l10n/ja/docs/references/protocol/transactions/types/signerlistset.md b/@l10n/ja/docs/references/protocol/transactions/types/signerlistset.md index fba0e16ebf..e967833293 100644 --- a/@l10n/ja/docs/references/protocol/transactions/types/signerlistset.md +++ b/@l10n/ja/docs/references/protocol/transactions/types/signerlistset.md @@ -2,10 +2,11 @@ html: signerlistset.html parent: transaction-types.html seo: - description: トランザクションのマルチシグに使用できる署名者のリストを作成、置換、削除します。 + description: トランザクションのマルチシグに使用できる署名者のリストを作成、置換、削除します。 labels: - セキュリティ --- + # SignerListSet [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/SetSignerList.cpp "ソース") @@ -16,43 +17,44 @@ SignerListSetトランザクションは、トランザクションの[マルチ ```json { - "Flags":0, - "TransactionType":"SignerListSet", - "Account":"rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "Fee":"12", - "SignerQuorum":3, - "SignerEntries":[ - { - "SignerEntry":{ - "Account":"rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", - "SignerWeight":2 - } - }, - { - "SignerEntry":{ - "Account":"rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v", - "SignerWeight":1 - } - }, - { - "SignerEntry":{ - "Account":"raKEEVSGnKSD9Zyvxu4z6Pqpm4ABH8FS6n", - "SignerWeight":1 - } - } - ] + "Flags": 0, + "TransactionType": "SignerListSet", + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "Fee": "12", + "SignerQuorum": 3, + "SignerEntries": [ + { + "SignerEntry": { + "Account": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", + "SignerWeight": 2 + } + }, + { + "SignerEntry": { + "Account": "rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v", + "SignerWeight": 1 + } + }, + { + "SignerEntry": { + "Account": "raKEEVSGnKSD9Zyvxu4z6Pqpm4ABH8FS6n", + "SignerWeight": 1 + } + } + ] } ``` {% tx-example txid="09A9C86BF20695735AB03620EB1C32606635AC3DA0B70282F37C674FC889EFE7" /%} {% raw-partial file="/@l10n/ja/docs/_snippets/tx-fields-intro.md" /%} + -| フィールド | JSONの型 | [内部の型][] | 説明 | -|:--------------|:----------|:------------------|:-----------------------------| -| SignerQuorum | 数値 | UInt32 | 署名者の重みのターゲット数。このリストの署名者によるマルチシグは、付与された署名の重みの合計がこの値以上である場合に限り有効となります。SignerListを削除するには、`0`の値を使用します。 | -| SignerEntries | 配列 | 配列 | (削除する場合は省略)このリストの署名者のアドレスと重みを示す[SignerEntryオブジェクト](../../ledger-data/ledger-entry-types/signerlist.md#signerentryオブジェクト)の配列。SignerListには1~32人のメンバーが含まれている必要があります。リストに1つのアドレスが複数回表示されることはありません。また、トランザクションを送信する`Account`も表示されません。 | +| フィールド | JSONの型 | [内部の型][] | 説明 | +| :------------ | :------- | :----------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| SignerQuorum | 数値 | UInt32 | 署名者の重みのターゲット数。このリストの署名者によるマルチシグは、付与された署名の重みの合計がこの値以上である場合に限り有効となります。SignerListを削除するには、`0`の値を使用します。 | +| SignerEntries | 配列 | 配列 | (削除する場合は省略)このリストの署名者のアドレスと重みを示す[SignerEntryオブジェクト](../../ledger-data/ledger-entry-types/signerlist.md#signerentryオブジェクト)の配列。SignerListには1~32人のメンバーが含まれている必要があります。リストに1つのアドレスが複数回表示されることはありません。また、トランザクションを送信する`Account`も表示されません。 | アカウントは複数のSignerListを所有できません。既存のSignerListが存在する場合は、SignerListSetトランザクションが成功するとその既存のSignerListが置き換えられます。SignerListを削除するには、`SignerQuorum`を`0`に設定し、_かつ_`SignerEntries`フィールドを省略します。このようにしないと、トランザクションは[temMALFORMED](../transaction-results/tem-codes.md)エラーで失敗します。SignerListを削除するトランザクションは、削除するSignerListがない場合でも成功したとみなされます。 diff --git a/@l10n/ja/docs/references/protocol/transactions/types/ticketcreate.md b/@l10n/ja/docs/references/protocol/transactions/types/ticketcreate.md index c0bfdc596d..b0580d9110 100644 --- a/@l10n/ja/docs/references/protocol/transactions/types/ticketcreate.md +++ b/@l10n/ja/docs/references/protocol/transactions/types/ticketcreate.md @@ -2,10 +2,11 @@ html: ticketcreate.html parent: transaction-types.html seo: - description: チケットとして1つ以上のシーケンス番号を確保する。 + description: チケットとして1つ以上のシーケンス番号を確保する。 labels: - Transaction Sending --- + # TicketCreate [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/CreateTicket.cpp "Source") @@ -18,22 +19,23 @@ TicketCreateトランザクションは、1つまたは複数の[シーケンス ```json { - "TransactionType": "TicketCreate", - "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "Fee": "10", - "Sequence": 381, - "TicketCount": 10 + "TransactionType": "TicketCreate", + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "Fee": "10", + "Sequence": 381, + "TicketCount": 10 } ``` {% tx-example txid="738AEF36B48CA4A2D85C2B74910DC34DDBBCA4C83643F2DB84A58785ED5AD3E3" /%} {% raw-partial file="/@l10n/ja/docs/_snippets/tx-fields-intro.md" /%} + -| フィールド | JSONの型 | [内部の型][] | 説明 | -|:-----------------|:-----------------|:------------------|:-------------------| -| `TicketCount` | 数値 | UInt32 | 作成するチケットの枚数。これは正の数でなければならず、このトランザクションの実行の結果、アカウントが250枚以上のチケットを所有することはできません。 | +| フィールド | JSONの型 | [内部の型][] | 説明 | +| :------------ | :------- | :----------- | :-------------------------------------------------------------------------------------------------------------------------------------------------- | +| `TicketCount` | 数値 | UInt32 | 作成するチケットの枚数。これは正の数でなければならず、このトランザクションの実行の結果、アカウントが250枚以上のチケットを所有することはできません。 | トランザクションが要求されたチケット _全て_ を作成できない場合(250チケットの制限または[所有者準備金](../../../../concepts/accounts/reserves.md)のいずれかが原因)、失敗してチケットは作成されません。アカウントが現在所有しているチケットの数を調べるには、[account_infoメソッド][]を使用して、`account_data.TicketCount`フィールドを確認してください。 @@ -43,10 +45,10 @@ TicketCreateトランザクションは、1つまたは複数の[シーケンス すべてのトランザクションで発生する可能性のあるエラーに加えて、{% $frontmatter.seo.title %}トランザクションでは、次の[トランザクション結果コード](../transaction-results/index.md)が発生する可能性があります。 -| エラーコード | 説明 | -|:--------------------------|:-------------------------------------------------| -| `temINVALID_COUNT` | TicketCount`フィールドが無効です。1から250までの整数でなければなりません。| -| `tecDIR_FULL` | この取引により、アカウントが一度に所有するチケットの上限である250枚を超えたり、一般的なレジャーオブジェクトの上限数を超えたりすることになります。 | +| エラーコード | 説明 | +| :------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------- | +| `temINVALID_COUNT` | TicketCount`フィールドが無効です。1から250までの整数でなければなりません。 | +| `tecDIR_FULL` | この取引により、アカウントが一度に所有するチケットの上限である250枚を超えたり、一般的なレジャーオブジェクトの上限数を超えたりすることになります。 | | `tecINSUFFICIENT_RESERVE` | 送信側のアカウントには、リクエストされたすべてのチケットの[所有者準備金](../../../../concepts/accounts/reserves.md)を満たすだけのXRPがありません。 | {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/transactions/types/trustset.md b/@l10n/ja/docs/references/protocol/transactions/types/trustset.md index 930c52b0a1..a38d63aa44 100644 --- a/@l10n/ja/docs/references/protocol/transactions/types/trustset.md +++ b/@l10n/ja/docs/references/protocol/transactions/types/trustset.md @@ -2,10 +2,11 @@ html: trustset.html parent: transaction-types.html seo: - description: トラストラインを作成または変更します。 + description: トラストラインを作成または変更します。 labels: - トークン --- + # TrustSet [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/SetTrust.cpp "Source") @@ -16,50 +17,50 @@ labels: ```json { - "TransactionType": "TrustSet", - "Account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "Fee": "12", - "Flags": 262144, - "LastLedgerSequence": 8007750, - "LimitAmount": { - "currency": "USD", - "issuer": "rsP3mgGb2tcYUrxiLFiHJiQXhsziegtwBc", - "value": "100" - }, - "Sequence": 12 + "TransactionType": "TrustSet", + "Account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "Fee": "12", + "Flags": 262144, + "LastLedgerSequence": 8007750, + "LimitAmount": { + "currency": "USD", + "issuer": "rsP3mgGb2tcYUrxiLFiHJiQXhsziegtwBc", + "value": "100" + }, + "Sequence": 12 } ``` {% tx-example txid="8566673ECD0A9731C516906E5D2F47129C5C13713602140733831A56CEAE1A05" /%} {% raw-partial file="/@l10n/ja/docs/_snippets/tx-fields-intro.md" /%} + -| フィールド | JSONの型 | [内部の型][] | 説明 | -|:-------------------------|:----------|:------------------|:------------------| -| `LimitAmount` | オブジェクト | Amount | 作成または変更するトラストラインを定義する[通貨額][]フォーマットのオブジェクト。 | -| `LimitAmount`.`currency` | 文字列 | (Amount.currency) | このトラストラインが適用される通貨。3文字の[ISO 4217通貨コード](https://www.xe.com/iso4217.php)または[通貨フォーマット](../../data-types/currency-formats.md)に基づく160ビットの16進数値です。「XRP」は無効です。 | -| `LimitAmount`.`value` | 文字列 | (Amount.value) | このトラストラインに設定される限度を表す引用符で囲んだ10進数値。 | -| `LimitAmount`.`issuer` | 文字列 | (Amount.issuer) | 信頼したいアカウントのアドレス。 | -| `QualityIn` | 数値 | UInt32 | _(省略可)_ このトラストラインの受入額を、1,000,000,000単位当たりのこの数値の割合で評価。値`0`は、残高を額面価格で扱うことを示す省略表現です。 | -| `QualityOut` | 数値 | UInt32 | _(省略可)_ このトラストラインの払出額を、1,000,000,000単位当たりのこの数値の割合で評価。値`0`は、残高を額面価格で扱うことを示す省略表現です。 | +| フィールド | JSONの型 | [内部の型][] | 説明 | +| :----------------------- | :----------- | :------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `LimitAmount` | オブジェクト | Amount | 作成または変更するトラストラインを定義する[通貨額][]フォーマットのオブジェクト。 | +| `LimitAmount`.`currency` | 文字列 | (Amount.currency) | このトラストラインが適用される通貨。3文字の[ISO 4217通貨コード](https://www.xe.com/iso4217.php)または[通貨フォーマット](../../data-types/currency-formats.md)に基づく160ビットの16進数値です。「XRP」は無効です。 | +| `LimitAmount`.`value` | 文字列 | (Amount.value) | このトラストラインに設定される限度を表す引用符で囲んだ10進数値。 | +| `LimitAmount`.`issuer` | 文字列 | (Amount.issuer) | 信頼したいアカウントのアドレス。 | +| `QualityIn` | 数値 | UInt32 | _(省略可)_ このトラストラインの受入額を、1,000,000,000単位当たりのこの数値の割合で評価。値`0`は、残高を額面価格で扱うことを示す省略表現です。 | +| `QualityOut` | 数値 | UInt32 | _(省略可)_ このトラストラインの払出額を、1,000,000,000単位当たりのこの数値の割合で評価。値`0`は、残高を額面価格で扱うことを示す省略表現です。 | `LimitAmount.issuer`で指定されたアカウントがトラストラインの着信をブロックしている場合、結果コード`tecNO_PERMISSION`でトランザクションが失敗します。 {% amendment-disclaimer name="DisallowIncoming" /%} - ## TrustSetのフラグ TrustSetタイプのトランザクションについては、[`Flags`フィールド](../common-fields.md#flagsフィールド)で以下の値が追加でサポートされます。 -| フラグ名 | 16進数値 | 10進数値 | 説明 | -|:------------------|:-------------|:--------------|:----------------------| -| `tfSetfAuth` | `0x00010000` | 65536 | [このアカウントから発行された通貨](../../../../concepts/tokens/index.md)を相手方に保有させることを許可します。([*asfRequireAuth* AccountSet フラグ](accountset.md#accountsetのフラグ)を使用しない場合は効果がありません。)設定を解除できません。 | -| `tfSetNoRipple` | `0x00020000` | 131072 | 2つのトラストラインの両方でこのフラグが有効になっている場合、同じ通貨のトラストライン間の[リップリング](../../../../concepts/tokens/fungible-tokens/rippling.md)をブロックする No Ripple フラグを有効にします。 | -| `tfClearNoRipple` | `0x00040000` | 262144 | No Rippleフラグを無効にし、このトラストラインで[リップリング](../../../../concepts/tokens/fungible-tokens/rippling.md)を許可します。 | -| `tfSetFreeze` | `0x00100000` | 1048576 | トラストラインを[フリーズ](../../../../concepts/tokens/fungible-tokens/freezes.md)します。 | -| `tfClearFreeze` | `0x00200000` | 2097152 | トラストラインを[フリーズ解除](../../../../concepts/tokens/fungible-tokens/freezes.md)します。 | -| `tfSetDeepFreeze` | `0x00400000` | 4194304 | トラストラインを[ディープフリーズ](../../../../concepts/tokens/fungible-tokens/deep-freeze.md) します。 | -| `tfClearDeepFreeze` | `0x00800000` | 8388608 | トラストラインの[ディープフリーズ](../../../../concepts/tokens/fungible-tokens/deep-freeze.md) を解除します。 | +| フラグ名 | 16進数値 | 10進数値 | 説明 | +| :------------------ | :----------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `tfSetfAuth` | `0x00010000` | 65536 | [このアカウントから発行された通貨](../../../../concepts/tokens/index.md)を相手方に保有させることを許可します。([_asfRequireAuth_ AccountSet フラグ](accountset.md#accountsetのフラグ)を使用しない場合は効果がありません。)設定を解除できません。 | +| `tfSetNoRipple` | `0x00020000` | 131072 | 2つのトラストラインの両方でこのフラグが有効になっている場合、同じ通貨のトラストライン間の[リップリング](../../../../concepts/tokens/fungible-tokens/rippling.md)をブロックする No Ripple フラグを有効にします。 | +| `tfClearNoRipple` | `0x00040000` | 262144 | No Rippleフラグを無効にし、このトラストラインで[リップリング](../../../../concepts/tokens/fungible-tokens/rippling.md)を許可します。 | +| `tfSetFreeze` | `0x00100000` | 1048576 | トラストラインを[フリーズ](../../../../concepts/tokens/fungible-tokens/freezes.md)します。 | +| `tfClearFreeze` | `0x00200000` | 2097152 | トラストラインを[フリーズ解除](../../../../concepts/tokens/fungible-tokens/freezes.md)します。 | +| `tfSetDeepFreeze` | `0x00400000` | 4194304 | トラストラインを[ディープフリーズ](../../../../concepts/tokens/fungible-tokens/deep-freeze.md) します。 | +| `tfClearDeepFreeze` | `0x00800000` | 8388608 | トラストラインの[ディープフリーズ](../../../../concepts/tokens/fungible-tokens/deep-freeze.md) を解除します。 | トランザクションがNo Rippleを有効にしようとしたができない場合、結果コード `tecNO_PERMISSION` で失敗します。[fix1578 amendment][]が有効になる前は、このようなトランザクションは代わりに`tesSUCCESS`(可能な限りの他の変更を行う)という結果になりました。 diff --git a/@l10n/ja/docs/references/protocol/transactions/types/xchainaccountcreatecommit.md b/@l10n/ja/docs/references/protocol/transactions/types/xchainaccountcreatecommit.md index 86b7a8ee5a..34f2d62fbd 100644 --- a/@l10n/ja/docs/references/protocol/transactions/types/xchainaccountcreatecommit.md +++ b/@l10n/ja/docs/references/protocol/transactions/types/xchainaccountcreatecommit.md @@ -1,13 +1,15 @@ --- -html: xchainaccountcreatecommit.html +html: xchainaccountcreatecommit.html parent: transaction-types.html seo: - description: ブリッジが接続するチェーンの一つでアカウントを作成します。このアカウントがそのチェーンのブリッジの入り口となります。 + description: ブリッジが接続するチェーンの一つでアカウントを作成します。このアカウントがそのチェーンのブリッジの入り口となります。 labels: - 相互運用性 status: not_enabled --- + # XChainAccountCreateCommit + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/TxFormats.cpp#L466-L474 "ソース") _([XChainBridge Amendment][] {% not-enabled /%} が必要です)_ @@ -18,7 +20,6 @@ _([XChainBridge Amendment][] {% not-enabled /%} が必要です)_ {% admonition type="warning" name="注意" %}このトランザクションは、Witnessの証明書が送信先チェーンに確実に送信される場合にのみ実行されるべきです。署名が送信されない場合、証明書が受信されるまでアカウント作成はブロックされます。XRP-XRPブリッジでこのトランザクションを無効にするには、ブリッジの`MinAccountCreateAmount`フィールドを省略します。{% /admonition %} - ## XChainAccountCreateCommit JSONの例 ```json @@ -41,24 +42,22 @@ _([XChainBridge Amendment][] {% not-enabled /%} が必要です)_ } ``` - ## XChainAccountCreateCommitのフィールド -| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | -|:------------------|:-------------|:--------------|:-----| :-----------| -| `Amount` | [通貨額][] | Amount | はい | アカウント作成に使用するXRP単位の金額。これは`Bridge`レジャーオブジェクトで指定されている`MinAccountCreateAmount`以上でなければなりません。 | -| `Destination` | 文字列 | Account | はい | 送信先チェーンの送信先アカウント。 | -| `SignatureReward` | [通貨額][] | Amount | いいえ | 署名を提供したWitnessサーバへの報酬として使用する金額。これは`Bridge`レジャーオブジェクトの金額と一致しなければなりません。 | -| `XChainBridge` | XChainBridge | XChain_Bridge | はい | アカウントを作成するブリッジ。 | - +| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | +| :---------------- | :----------- | :------------ | :----- | :------------------------------------------------------------------------------------------------------------------------------------------ | +| `Amount` | [通貨額][] | Amount | はい | アカウント作成に使用するXRP単位の金額。これは`Bridge`レジャーオブジェクトで指定されている`MinAccountCreateAmount`以上でなければなりません。 | +| `Destination` | 文字列 | Account | はい | 送信先チェーンの送信先アカウント。 | +| `SignatureReward` | [通貨額][] | Amount | いいえ | 署名を提供したWitnessサーバへの報酬として使用する金額。これは`Bridge`レジャーオブジェクトの金額と一致しなければなりません。 | +| `XChainBridge` | XChainBridge | XChain_Bridge | はい | アカウントを作成するブリッジ。 | ### XChainBridgeのフィールド -| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | -|:--------------------|:---------|:-----------|:------|:----| -| `IssuingChainDoor` | 文字列 | Account | はい | 発行チェーンのドアアカウント。XRP-XRPブリッジの場合、これはジェネシスアカウント(ネットワークが最初に開始されたときに作成されるアカウントで、すべてのXRPを含む)でなければなりません。 | -| `IssuingChainIssue` | Issue | Issue | はい | 発行チェーン上で作成され、バーンされる資産。IOU-IOUブリッジの場合、供給量の問題を避けるため、資産の発行者は発行チェーンのドアアカウントでなければなりません。 | -| `LockingChainDoor` | 文字列 | Account | はい | ロックチェーンのドアアカウント。 | -| `LockingChainIssue` | Issue | Issue | はい | ロックチェーンでロック、アンロックされる資産。 | +| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | +| :------------------ | :------- | :----------- | :---- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `IssuingChainDoor` | 文字列 | Account | はい | 発行チェーンのドアアカウント。XRP-XRPブリッジの場合、これはジェネシスアカウント(ネットワークが最初に開始されたときに作成されるアカウントで、すべてのXRPを含む)でなければなりません。 | +| `IssuingChainIssue` | Issue | Issue | はい | 発行チェーン上で作成され、バーンされる資産。IOU-IOUブリッジの場合、供給量の問題を避けるため、資産の発行者は発行チェーンのドアアカウントでなければなりません。 | +| `LockingChainDoor` | 文字列 | Account | はい | ロックチェーンのドアアカウント。 | +| `LockingChainIssue` | Issue | Issue | はい | ロックチェーンでロック、アンロックされる資産。 | {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/transactions/types/xchainaddaccountcreateattestation.md b/@l10n/ja/docs/references/protocol/transactions/types/xchainaddaccountcreateattestation.md index 276c4aff7e..5361e82728 100644 --- a/@l10n/ja/docs/references/protocol/transactions/types/xchainaddaccountcreateattestation.md +++ b/@l10n/ja/docs/references/protocol/transactions/types/xchainaddaccountcreateattestation.md @@ -2,12 +2,14 @@ html: xchainaddaccountcreateattestation.html parent: transaction-types.html seo: - description: XChainAddAccountCreateAttestationトランザクションは他のチェーンでXChainAccountCreateCommitトランザクションが発生した証明をWitnessサーバから提示します。 + description: XChainAddAccountCreateAttestationトランザクションは他のチェーンでXChainAccountCreateCommitトランザクションが発生した証明をWitnessサーバから提示します。 labels: - 相互運用性 status: not_enabled --- + # XChainAddAccountCreateAttestation + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/TxFormats.cpp#L447-L464 "ソース") _([XChainBridge Amendment][] {% not-enabled /%} が必要です)_ @@ -20,7 +22,6 @@ _([XChainBridge Amendment][] {% not-enabled /%} が必要です)_ {% admonition type="info" name="注記" %}報酬は現在のリストにある鍵を持っているアカウントにのみ送られます。署名者の定足数は`SignatureReward`に一致する必要があります。より大きな報酬を得ようとして、一つのWitnessサーバがこの値に不正な値を指定することはできません。{% /admonition %} - ## XChainAddAccountCreateAttestation JSONの例 ```json @@ -51,31 +52,29 @@ _([XChainBridge Amendment][] {% not-enabled /%} が必要です)_ } ``` - ## XChainAddAccountCreateAttestationのフィールド -| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | -|:---------------------------|:-------------|:--------------|:------|:----| -| `Amount` | [通貨額][] | Amount | はい | `XChainAccountCreateCommit`トランザクションが送信元チェーンでCommitした金額。 | -| `AttestationRewardAccount` | 文字列 | Account | はい | この署名者の`SignatureReward`を受け取るアカウント。 | -| `AttestationSignerAccount` | 文字列 | Account | はい | ドアアカウントの署名者リストにある、トランザクションに署名したアカウント。 | -| `Destination` | 文字列 | Account | はい | 送信先チェーン上の資金の送金先アカウント。 | -| `OtherChainSource` | 文字列 | Account | はい | 証明に紐づくイベントをトリガーした`XChainAccountCreateCommit`トランザクションを送信した送信元チェーン上のアカウント。 | -| `PublicKey` | 文字列 | Blob | はい | 署名の検証に使用する公開鍵。 | -| `Signature` | 文字列 | Blob | はい | もう一方のチェーン上のイベントを証明する署名。 | -| `SignatureReward` | [通貨額][] | Amount | はい | `XChainAccountCreateCommit`トランザクションで支払われた署名の報酬。 | -| `WasLockingChainSend` | 数値 | UInt8 | はい | イベントが発生したチェーンを表す真偽値。 | -| `XChainAccountCreateCount` | 文字列 | UInt64 | はい | 請求(Claim)が処理される順序を表すカウンタ。 | -| `XChainBridge` | XChainBridge | XChain_Bridge | はい | 証明に紐づくブリッジ。 | - +| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | +| :------------------------- | :----------- | :------------ | :---- | :-------------------------------------------------------------------------------------------------------------------- | +| `Amount` | [通貨額][] | Amount | はい | `XChainAccountCreateCommit`トランザクションが送信元チェーンでCommitした金額。 | +| `AttestationRewardAccount` | 文字列 | Account | はい | この署名者の`SignatureReward`を受け取るアカウント。 | +| `AttestationSignerAccount` | 文字列 | Account | はい | ドアアカウントの署名者リストにある、トランザクションに署名したアカウント。 | +| `Destination` | 文字列 | Account | はい | 送信先チェーン上の資金の送金先アカウント。 | +| `OtherChainSource` | 文字列 | Account | はい | 証明に紐づくイベントをトリガーした`XChainAccountCreateCommit`トランザクションを送信した送信元チェーン上のアカウント。 | +| `PublicKey` | 文字列 | Blob | はい | 署名の検証に使用する公開鍵。 | +| `Signature` | 文字列 | Blob | はい | もう一方のチェーン上のイベントを証明する署名。 | +| `SignatureReward` | [通貨額][] | Amount | はい | `XChainAccountCreateCommit`トランザクションで支払われた署名の報酬。 | +| `WasLockingChainSend` | 数値 | UInt8 | はい | イベントが発生したチェーンを表す真偽値。 | +| `XChainAccountCreateCount` | 文字列 | UInt64 | はい | 請求(Claim)が処理される順序を表すカウンタ。 | +| `XChainBridge` | XChainBridge | XChain_Bridge | はい | 証明に紐づくブリッジ。 | ### XChainBridgeのフィールド -| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | -|:--------------------|:---------|:-----------|:------|:----| -| `IssuingChainDoor` | 文字列 | Account | はい | 発行チェーンのドアアカウント。XRP-XRPブリッジの場合、これはジェネシスアカウント(ネットワークが最初に開始されたときに作成されるアカウントで、すべてのXRPを含む)でなければなりません。 | -| `IssuingChainIssue` | Issue | Issue | はい | 発行チェーン上で作成され、バーンされる資産。IOU-IOUブリッジの場合、供給量の問題を避けるため、資産の発行者は発行チェーンのドアアカウントでなければなりません。 | -| `LockingChainDoor` | 文字列 | Account | はい | ロックチェーンのドアアカウント。 | -| `LockingChainIssue` | Issue | Issue | はい | ロックチェーンでロック、アンロックされる資産。 | +| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | +| :------------------ | :------- | :----------- | :---- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `IssuingChainDoor` | 文字列 | Account | はい | 発行チェーンのドアアカウント。XRP-XRPブリッジの場合、これはジェネシスアカウント(ネットワークが最初に開始されたときに作成されるアカウントで、すべてのXRPを含む)でなければなりません。 | +| `IssuingChainIssue` | Issue | Issue | はい | 発行チェーン上で作成され、バーンされる資産。IOU-IOUブリッジの場合、供給量の問題を避けるため、資産の発行者は発行チェーンのドアアカウントでなければなりません。 | +| `LockingChainDoor` | 文字列 | Account | はい | ロックチェーンのドアアカウント。 | +| `LockingChainIssue` | Issue | Issue | はい | ロックチェーンでロック、アンロックされる資産。 | {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/transactions/types/xchainaddclaimattestation.md b/@l10n/ja/docs/references/protocol/transactions/types/xchainaddclaimattestation.md index 56a34c16e2..ee87357f67 100644 --- a/@l10n/ja/docs/references/protocol/transactions/types/xchainaddclaimattestation.md +++ b/@l10n/ja/docs/references/protocol/transactions/types/xchainaddclaimattestation.md @@ -1,13 +1,15 @@ --- -html: xchainaddclaimattestation.html +html: xchainaddclaimattestation.html parent: transaction-types.html seo: - description: 送信元チェーンで発生したイベントを、送信先チェーンに証明(アテスト)します。 + description: 送信元チェーンで発生したイベントを、送信先チェーンに証明(アテスト)します。 labels: - 相互運用性 status: not_enabled --- + # XChainAddClaimAttestation + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/TxFormats.cpp#L429-L445 "ソース") _([XChainBridge Amendment][] {% not-enabled /%} が必要です)_ @@ -20,7 +22,6 @@ _([XChainBridge Amendment][] {% not-enabled /%} が必要です)_ {% admonition type="info" name="注記" %}報酬は現在のリストにある鍵を持っているアカウントにのみ送られます。署名者の定足数は`SignatureReward`に一致する必要があります。より大きな報酬を得ようとして、一つのWitnessサーバがこの値に不正な値を指定することはできません。{% /admonition %} - ## XChainAddClaimAttestation JSONの例 ```json @@ -38,17 +39,17 @@ _([XChainBridge Amendment][] {% not-enabled /%} が必要です)_ "currency": "XRP" } }, - "XChainClaimAttestationBatch" : [ + "XChainClaimAttestationBatch": [ { - "XChainClaimAttestationBatchElement" : { - "Account" : "rnJmYAiqEVngtnb5ckRroXLtCbWC7CRUBx", - "Amount" : "100000000", - "AttestationSignerAccount" : "rnJmYAiqEVngtnb5ckRroXLtCbWC7CRUBx", - "Destination" : "r9A8UyNpW3X46FUc6P7JZqgn6WgAPjBwPg", - "PublicKey" : "03DAB289CA36FF377F3F4304C7A7203FDE5EDCBFC209F430F6A4355361425526D0", - "Signature" : "616263", - "WasLockingChainSend" : 1, - "XChainClaimID" : "0000000000000000" + "XChainClaimAttestationBatchElement": { + "Account": "rnJmYAiqEVngtnb5ckRroXLtCbWC7CRUBx", + "Amount": "100000000", + "AttestationSignerAccount": "rnJmYAiqEVngtnb5ckRroXLtCbWC7CRUBx", + "Destination": "r9A8UyNpW3X46FUc6P7JZqgn6WgAPjBwPg", + "PublicKey": "03DAB289CA36FF377F3F4304C7A7203FDE5EDCBFC209F430F6A4355361425526D0", + "Signature": "616263", + "WasLockingChainSend": 1, + "XChainClaimID": "0000000000000000" } } ], @@ -71,30 +72,28 @@ _([XChainBridge Amendment][] {% not-enabled /%} が必要です)_ } ``` - ## XChainAddClaimAttestationのフィールド -| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | -|:---------------------------|:-------------|:--------------|:------|-----| -| `Amount` | [通貨額][] | Amount | はい | `XChainCommit`トランザクションが送信元チェーンでCommitした金額。 | -| `AttestationRewardAccount` | 文字列 | Account | はい | この署名者の`SignatureReward`を受け取るアカウント。 | -| `AttestationSignerAccount` | 文字列 | Account | はい | ドアアカウントの署名者リストにある、トランザクションに署名したアカウント。 | -| `Destination` | 文字列 | Account | いいえ | 送信先チェーン上の資金の送金先アカウント。 (`XChainCommit` トランザクションから取得)。 | -| `OtherChainSource` | 文字列 | Account | はい | 証明に紐づくイベントをトリガーした`XChainCommit`トランザクションを送信した送信元チェーン上のアカウント。 | -| `PublicKey` | 文字列 | Blob | はい | 署名の検証に使用する公開鍵。 | -| `Signature` | 文字列 | Blob | はい | もう一方のチェーン上のイベントを証明する署名。 | -| `WasLockingChainSend` | 数値 | UInt8 | はい | イベントが発生したチェーンを表す真偽値。 | -| `XChainBridge` | XChainBridge | XChain_Bridge | はい | 資金の移動に使用するブリッジ。 | -| `XChainClaimID` | 文字列 | UInt64 | はい | `XChainCommit` トランザクションに含まれる、送金に紐づく`XChainClaimID`。 | - +| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | +| :------------------------- | :----------- | :------------ | :----- | -------------------------------------------------------------------------------------------------------- | +| `Amount` | [通貨額][] | Amount | はい | `XChainCommit`トランザクションが送信元チェーンでCommitした金額。 | +| `AttestationRewardAccount` | 文字列 | Account | はい | この署名者の`SignatureReward`を受け取るアカウント。 | +| `AttestationSignerAccount` | 文字列 | Account | はい | ドアアカウントの署名者リストにある、トランザクションに署名したアカウント。 | +| `Destination` | 文字列 | Account | いいえ | 送信先チェーン上の資金の送金先アカウント。 (`XChainCommit` トランザクションから取得)。 | +| `OtherChainSource` | 文字列 | Account | はい | 証明に紐づくイベントをトリガーした`XChainCommit`トランザクションを送信した送信元チェーン上のアカウント。 | +| `PublicKey` | 文字列 | Blob | はい | 署名の検証に使用する公開鍵。 | +| `Signature` | 文字列 | Blob | はい | もう一方のチェーン上のイベントを証明する署名。 | +| `WasLockingChainSend` | 数値 | UInt8 | はい | イベントが発生したチェーンを表す真偽値。 | +| `XChainBridge` | XChainBridge | XChain_Bridge | はい | 資金の移動に使用するブリッジ。 | +| `XChainClaimID` | 文字列 | UInt64 | はい | `XChainCommit` トランザクションに含まれる、送金に紐づく`XChainClaimID`。 | ### XChainBridgeのフィールド -| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | -|:--------------------|:---------|:-----------|:------|:----| -| `IssuingChainDoor` | 文字列 | Account | はい | 発行チェーンのドアアカウント。XRP-XRPブリッジの場合、これはジェネシスアカウント(ネットワークが最初に開始されたときに作成されるアカウントで、すべてのXRPを含む)でなければなりません。 | -| `IssuingChainIssue` | Issue | Issue | はい | 発行チェーン上で作成され、バーンされる資産。IOU-IOUブリッジの場合、供給量の問題を避けるため、資産の発行者は発行チェーンのドアアカウントでなければなりません。 | -| `LockingChainDoor` | 文字列 | Account | はい | ロックチェーンのドアアカウント。 | -| `LockingChainIssue` | Issue | Issue | はい | ロックチェーンでロック、アンロックされる資産。 | +| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | +| :------------------ | :------- | :----------- | :---- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `IssuingChainDoor` | 文字列 | Account | はい | 発行チェーンのドアアカウント。XRP-XRPブリッジの場合、これはジェネシスアカウント(ネットワークが最初に開始されたときに作成されるアカウントで、すべてのXRPを含む)でなければなりません。 | +| `IssuingChainIssue` | Issue | Issue | はい | 発行チェーン上で作成され、バーンされる資産。IOU-IOUブリッジの場合、供給量の問題を避けるため、資産の発行者は発行チェーンのドアアカウントでなければなりません。 | +| `LockingChainDoor` | 文字列 | Account | はい | ロックチェーンのドアアカウント。 | +| `LockingChainIssue` | Issue | Issue | はい | ロックチェーンでロック、アンロックされる資産。 | {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/transactions/types/xchainclaim.md b/@l10n/ja/docs/references/protocol/transactions/types/xchainclaim.md index 7c1f022123..5f472d5706 100644 --- a/@l10n/ja/docs/references/protocol/transactions/types/xchainclaim.md +++ b/@l10n/ja/docs/references/protocol/transactions/types/xchainclaim.md @@ -1,13 +1,15 @@ --- -html: xchainclaim.html +html: xchainclaim.html parent: transaction-types.html seo: - description: 送信先チェーンで金額を請求することで、クロスチェーンでの価値移転を完了させます。 + description: 送信先チェーンで金額を請求することで、クロスチェーンでの価値移転を完了させます。 labels: - 相互運用性 status: not_enabled --- + # XChainClaim + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/TxFormats.cpp#L418-L427 "ソース") _([XChainBridge Amendment][] {% not-enabled /%} が必要です)_ @@ -16,7 +18,6 @@ _([XChainBridge Amendment][] {% not-enabled /%} が必要です)_ トランザクションによって送金に成功すると、対象の`XChainOwnedClaimID`レジャーオブジェクトは削除されます。これはトランザクションのリプレイを防ぎます。トランザクションが失敗した場合、`XChainOwnedClaimID`は削除されず、異なるパラメータでトランザクションを再実行できます。 - ## XChainClaim JSONの例 ```json @@ -39,25 +40,23 @@ _([XChainBridge Amendment][] {% not-enabled /%} が必要です)_ } ``` - ## XChainClaimのフィールド -| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | -|:------------------------|:-------------|:--------------|:------|-----| -| `Amount` | [通貨額][] | Amount | はい | 送信先チェーンで請求する金額。これは、この`XChainClaimID`に関連付けられた証明書で証明された金額と一致しなければなりません。 | -| `Destination` | 文字列 | Account | はい | 送信先チェーンの送信先アカウント。存在しなければトランザクションは失敗します。しかし、この場合トランザクションが失敗しても、シーケンス番号と収集された署名は破棄されないので、別の送信先でトランザクションを再実行することができます。 | -| `DestinationTag` | 数値 | UInt32 | いいえ | 整数値の宛先タグ。 | -| `XChainBridge` | XChainBridge | XChain_Bridge | はい | 送金に使用するブリッジ。 | -| `XChainClaimID` | 文字列 | UInt64 | はい | 対応する`XChainCommit`トランザクションで参照されたクロスチェーン送金の一意な整数ID。 | - +| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | +| :--------------- | :----------- | :------------ | :----- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Amount` | [通貨額][] | Amount | はい | 送信先チェーンで請求する金額。これは、この`XChainClaimID`に関連付けられた証明書で証明された金額と一致しなければなりません。 | +| `Destination` | 文字列 | Account | はい | 送信先チェーンの送信先アカウント。存在しなければトランザクションは失敗します。しかし、この場合トランザクションが失敗しても、シーケンス番号と収集された署名は破棄されないので、別の送信先でトランザクションを再実行することができます。 | +| `DestinationTag` | 数値 | UInt32 | いいえ | 整数値の宛先タグ。 | +| `XChainBridge` | XChainBridge | XChain_Bridge | はい | 送金に使用するブリッジ。 | +| `XChainClaimID` | 文字列 | UInt64 | はい | 対応する`XChainCommit`トランザクションで参照されたクロスチェーン送金の一意な整数ID。 | ### XChainBridgeのフィールド -| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | -|:--------------------|:---------|:-----------|:------|:----| -| `IssuingChainDoor` | 文字列 | Account | はい | 発行チェーンのドアアカウント。XRP-XRPブリッジの場合、これはジェネシスアカウント(ネットワークが最初に開始されたときに作成されるアカウントで、すべてのXRPを含む)でなければなりません。 | -| `IssuingChainIssue` | Issue | Issue | はい | 発行チェーン上で作成され、バーンされる資産。IOU-IOUブリッジの場合、供給量の問題を避けるため、資産の発行者は発行チェーンのドアアカウントでなければなりません。 | -| `LockingChainDoor` | 文字列 | Account | はい | ロックチェーンのドアアカウント。 | -| `LockingChainIssue` | Issue | Issue | はい | ロックチェーンでロック、アンロックされる資産。 | +| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | +| :------------------ | :------- | :----------- | :---- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `IssuingChainDoor` | 文字列 | Account | はい | 発行チェーンのドアアカウント。XRP-XRPブリッジの場合、これはジェネシスアカウント(ネットワークが最初に開始されたときに作成されるアカウントで、すべてのXRPを含む)でなければなりません。 | +| `IssuingChainIssue` | Issue | Issue | はい | 発行チェーン上で作成され、バーンされる資産。IOU-IOUブリッジの場合、供給量の問題を避けるため、資産の発行者は発行チェーンのドアアカウントでなければなりません。 | +| `LockingChainDoor` | 文字列 | Account | はい | ロックチェーンのドアアカウント。 | +| `LockingChainIssue` | Issue | Issue | はい | ロックチェーンでロック、アンロックされる資産。 | {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/transactions/types/xchaincommit.md b/@l10n/ja/docs/references/protocol/transactions/types/xchaincommit.md index 59dab922c6..aa82295d42 100644 --- a/@l10n/ja/docs/references/protocol/transactions/types/xchaincommit.md +++ b/@l10n/ja/docs/references/protocol/transactions/types/xchaincommit.md @@ -1,20 +1,21 @@ --- -html: xchaincommit.html +html: xchaincommit.html parent: transaction-types.html seo: - description: クロスチェーンでの価値移転を開始します。 + description: クロスチェーンでの価値移転を開始します。 labels: - 相互運用性 status: not_enabled --- + # XChainCommit + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/TxFormats.cpp#L408-L416 "ソース") _([XChainBridge Amendment][] {% not-enabled /%} が必要です)_ `XChainCommit`はクロスチェーン送金の2番目のステップです。`XChainCommit`は発行チェーンでラップできるようにロックチェーンで資産を保管したり、ロックチェーンで返却できるように発行チェーンでラップされた資産をバーンしたりします。 - ## XChainCommit JSONの例 ```json @@ -36,24 +37,22 @@ _([XChainBridge Amendment][] {% not-enabled /%} が必要です)_ } ``` - ## XChainCommitのフィールド -| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | -|:------------------------|:-------------|:--------------|:------|-----| -| `Amount` | [通貨額][] | Amount | はい | コミットする資産と数量。これはドアアカウントの`LockingChainIssue`(ロックチェーン上の場合)または`IssuingChainIssue`(発行チェーン上の場合)と一致しなければなりません。 | -| `OtherChainDestination` | 文字列 | Account | いいえ | 送信先チェーンの送信先アカウント。これが指定されていない場合、`XChainCreateClaimID`トランザクションを送信したアカウントは、資金を請求するために`XChainClaim`トランザクションを送信する必要があります。 | -| `XChainBridge` | XChainBridge | XChain_Bridge | はい | 送金に使用するブリッジ。 | -| `XChainClaimID` | 文字列 | UInt64 | はい | クロスチェーン送金の一意な整数ID。これは送信先のチェーンで(`XChainCreateClaimID`トランザクションによって)取得し、このトランザクションを送信する前に検証済みのレジャーからチェックする必要があります。不正なシーケンス番号が指定された場合、資金は失われます。 | - +| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | +| :---------------------- | :----------- | :------------ | :----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Amount` | [通貨額][] | Amount | はい | コミットする資産と数量。これはドアアカウントの`LockingChainIssue`(ロックチェーン上の場合)または`IssuingChainIssue`(発行チェーン上の場合)と一致しなければなりません。 | +| `OtherChainDestination` | 文字列 | Account | いいえ | 送信先チェーンの送信先アカウント。これが指定されていない場合、`XChainCreateClaimID`トランザクションを送信したアカウントは、資金を請求するために`XChainClaim`トランザクションを送信する必要があります。 | +| `XChainBridge` | XChainBridge | XChain_Bridge | はい | 送金に使用するブリッジ。 | +| `XChainClaimID` | 文字列 | UInt64 | はい | クロスチェーン送金の一意な整数ID。これは送信先のチェーンで(`XChainCreateClaimID`トランザクションによって)取得し、このトランザクションを送信する前に検証済みのレジャーからチェックする必要があります。不正なシーケンス番号が指定された場合、資金は失われます。 | ### XChainBridgeのフィールド -| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | -|:--------------------|:---------|:-----------|:------|:----| -| `IssuingChainDoor` | 文字列 | Account | はい | 発行チェーンのドアアカウント。XRP-XRPブリッジの場合、これはジェネシスアカウント(ネットワークが最初に開始されたときに作成されるアカウントで、すべてのXRPを含む)でなければなりません。 | -| `IssuingChainIssue` | Issue | Issue | はい | 発行チェーン上で作成され、バーンされる資産。IOU-IOUブリッジの場合、供給量の問題を避けるため、資産の発行者は発行チェーンのドアアカウントでなければなりません。 | -| `LockingChainDoor` | 文字列 | Account | はい | ロックチェーンのドアアカウント。 | -| `LockingChainIssue` | Issue | Issue | はい | ロックチェーンでロック、アンロックされる資産。 | +| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | +| :------------------ | :------- | :----------- | :---- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `IssuingChainDoor` | 文字列 | Account | はい | 発行チェーンのドアアカウント。XRP-XRPブリッジの場合、これはジェネシスアカウント(ネットワークが最初に開始されたときに作成されるアカウントで、すべてのXRPを含む)でなければなりません。 | +| `IssuingChainIssue` | Issue | Issue | はい | 発行チェーン上で作成され、バーンされる資産。IOU-IOUブリッジの場合、供給量の問題を避けるため、資産の発行者は発行チェーンのドアアカウントでなければなりません。 | +| `LockingChainDoor` | 文字列 | Account | はい | ロックチェーンのドアアカウント。 | +| `LockingChainIssue` | Issue | Issue | はい | ロックチェーンでロック、アンロックされる資産。 | {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/transactions/types/xchaincreatebridge.md b/@l10n/ja/docs/references/protocol/transactions/types/xchaincreatebridge.md index 8b1f8f7bf3..42606e07d2 100644 --- a/@l10n/ja/docs/references/protocol/transactions/types/xchaincreatebridge.md +++ b/@l10n/ja/docs/references/protocol/transactions/types/xchaincreatebridge.md @@ -1,13 +1,15 @@ --- -html: xchaincreatebridge.html +html: xchaincreatebridge.html parent: transaction-types.html seo: - description: 2つのチェーン間にブリッジを作成します。 + description: 2つのチェーン間にブリッジを作成します。 labels: - 相互運用性 status: not_enabled --- + # XChainCreateBridge + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/TxFormats.cpp#L381-L388 "ソース") _([XChainBridge Amendment][] {% not-enabled /%} が必要です)_ @@ -20,7 +22,6 @@ _([XChainBridge Amendment][] {% not-enabled /%} が必要です)_ {% admonition type="info" name="注記" %}各ドアアカウントは1つのブリッジしか持つことができません。これにより、同じ資産に対して複数のブリッジが作成され、いずれかのチェーンで資産が不一致となるのを防ぐことができます。{% /admonition %} - ## XChainCreateBridge JSONの例 ```json @@ -42,23 +43,21 @@ _([XChainBridge Amendment][] {% not-enabled /%} が必要です)_ } ``` - ## XChainCreateBridgeのフィールド -| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | -|:-------------------------|:-------------|:--------------|:----------|:------------| -| `MinAccountCreateAmount` | [通貨額][] | Amount | いいえ | `XChainAccountCreateCommit`トランザクションに必要な最小金額。このフィールドが存在しない場合、`XChainAccountCreateCommit`トランザクションは失敗します。このフィールドはXRP-XRPブリッジにのみ存在できます。 | -| `SignatureReward` | [通貨額][] | Amount | はい | Witnessサーバに支払う署名の報酬の合計額。この金額は署名者の間で分配されます。| -| `XChainBridge` | XChainBridge | XChain_Bridge | はい | 作成するブリッジ(ドアアカウントと資産)。 | - +| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | +| :----------------------- | :----------- | :------------ | :----- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `MinAccountCreateAmount` | [通貨額][] | Amount | いいえ | `XChainAccountCreateCommit`トランザクションに必要な最小金額。このフィールドが存在しない場合、`XChainAccountCreateCommit`トランザクションは失敗します。このフィールドはXRP-XRPブリッジにのみ存在できます。 | +| `SignatureReward` | [通貨額][] | Amount | はい | Witnessサーバに支払う署名の報酬の合計額。この金額は署名者の間で分配されます。 | +| `XChainBridge` | XChainBridge | XChain_Bridge | はい | 作成するブリッジ(ドアアカウントと資産)。 | ### XChainBridgeのフィールド -| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | -|:--------------------|:---------|:-----------|:------|:----| -| `IssuingChainDoor` | 文字列 | Account | はい | 発行チェーンのドアアカウント。XRP-XRPブリッジの場合、これはジェネシスアカウント(ネットワークが最初に開始されたときに作成されるアカウントで、すべてのXRPを含む)でなければなりません。 | -| `IssuingChainIssue` | Issue | Issue | はい | 発行チェーン上で作成され、バーンされる資産。IOU-IOUブリッジの場合、供給量の問題を避けるため、資産の発行者は発行チェーンのドアアカウントでなければなりません。 | -| `LockingChainDoor` | 文字列 | Account | はい | ロックチェーンのドアアカウント。 | -| `LockingChainIssue` | Issue | Issue | はい | ロックチェーンでロック、アンロックされる資産。 | +| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | +| :------------------ | :------- | :----------- | :---- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `IssuingChainDoor` | 文字列 | Account | はい | 発行チェーンのドアアカウント。XRP-XRPブリッジの場合、これはジェネシスアカウント(ネットワークが最初に開始されたときに作成されるアカウントで、すべてのXRPを含む)でなければなりません。 | +| `IssuingChainIssue` | Issue | Issue | はい | 発行チェーン上で作成され、バーンされる資産。IOU-IOUブリッジの場合、供給量の問題を避けるため、資産の発行者は発行チェーンのドアアカウントでなければなりません。 | +| `LockingChainDoor` | 文字列 | Account | はい | ロックチェーンのドアアカウント。 | +| `LockingChainIssue` | Issue | Issue | はい | ロックチェーンでロック、アンロックされる資産。 | {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/transactions/types/xchaincreateclaimid.md b/@l10n/ja/docs/references/protocol/transactions/types/xchaincreateclaimid.md index 2aee589361..29d4ee22b0 100644 --- a/@l10n/ja/docs/references/protocol/transactions/types/xchaincreateclaimid.md +++ b/@l10n/ja/docs/references/protocol/transactions/types/xchaincreateclaimid.md @@ -1,13 +1,15 @@ --- -html: xchaincreateclaimid.html +html: xchaincreateclaimid.html parent: transaction-types.html seo: - description: クロスチェーン送金に使用するクロスチェーン請求IDを作成します。 + description: クロスチェーン送金に使用するクロスチェーン請求IDを作成します。 labels: - 相互運用性 status: not_enabled --- + # XChainCreateClaimID + [[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/TxFormats.cpp#L399-L406 "ソース") _([XChainBridge Amendment][] {% not-enabled /%} が必要です)_ @@ -18,7 +20,6 @@ _([XChainBridge Amendment][] {% not-enabled /%} が必要です)_ また、送金元チェーン上の資金をロックまたはバーンする送金元チェーン上のアカウントも含まれます。 - ## XChainCreateClaimID JSONの例 ```json @@ -40,23 +41,21 @@ _([XChainBridge Amendment][] {% not-enabled /%} が必要です)_ } ``` - ## XChainCreateClaimIDのフィールド -| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | -|:-------------------|:-------------|:--------------|:------|-----| -| `OtherChainSource` | 文字列 | Account | はい | 送信元チェーンで`XChainCommit`トランザクションを送信するアカウント。 | -| `SignatureReward` | 文字列 | Account | はい | 署名を提供したWitnessサーバへの報酬額(XRP)。これは`Bridge`レジャーオブジェクトの金額と一致しなければなりません。 | -| `XChainBridge` | XChainBridge | XChain_Bridge | はい | 請求IDを作成するブリッジ。 | - +| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | +| :----------------- | :----------- | :------------ | :---- | ---------------------------------------------------------------------------------------------------------------- | +| `OtherChainSource` | 文字列 | Account | はい | 送信元チェーンで`XChainCommit`トランザクションを送信するアカウント。 | +| `SignatureReward` | 文字列 | Account | はい | 署名を提供したWitnessサーバへの報酬額(XRP)。これは`Bridge`レジャーオブジェクトの金額と一致しなければなりません。 | +| `XChainBridge` | XChainBridge | XChain_Bridge | はい | 請求IDを作成するブリッジ。 | ### XChainBridgeのフィールド -| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | -|:--------------------|:---------|:-----------|:------|:----| -| `IssuingChainDoor` | 文字列 | Account | はい | 発行チェーンのドアアカウント。XRP-XRPブリッジの場合、これはジェネシスアカウント(ネットワークが最初に開始されたときに作成されるアカウントで、すべてのXRPを含む)でなければなりません。 | -| `IssuingChainIssue` | Issue | Issue | はい | 発行チェーン上で作成され、バーンされる資産。IOU-IOUブリッジの場合、供給量の問題を避けるため、資産の発行者は発行チェーンのドアアカウントでなければなりません。 | -| `LockingChainDoor` | 文字列 | Account | はい | ロックチェーンのドアアカウント。 | -| `LockingChainIssue` | Issue | Issue | はい | ロックチェーンでロック、アンロックされる資産。 | +| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | +| :------------------ | :------- | :----------- | :---- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `IssuingChainDoor` | 文字列 | Account | はい | 発行チェーンのドアアカウント。XRP-XRPブリッジの場合、これはジェネシスアカウント(ネットワークが最初に開始されたときに作成されるアカウントで、すべてのXRPを含む)でなければなりません。 | +| `IssuingChainIssue` | Issue | Issue | はい | 発行チェーン上で作成され、バーンされる資産。IOU-IOUブリッジの場合、供給量の問題を避けるため、資産の発行者は発行チェーンのドアアカウントでなければなりません。 | +| `LockingChainDoor` | 文字列 | Account | はい | ロックチェーンのドアアカウント。 | +| `LockingChainIssue` | Issue | Issue | はい | ロックチェーンでロック、アンロックされる資産。 | {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/protocol/transactions/types/xchainmodifybridge.md b/@l10n/ja/docs/references/protocol/transactions/types/xchainmodifybridge.md index 86574fa60f..821c68d227 100644 --- a/@l10n/ja/docs/references/protocol/transactions/types/xchainmodifybridge.md +++ b/@l10n/ja/docs/references/protocol/transactions/types/xchainmodifybridge.md @@ -1,13 +1,15 @@ --- -html: xchainmodifybridge.html +html: xchainmodifybridge.html parent: transaction-types.html seo: - description: ブリッジの設定を変更します。 + description: ブリッジの設定を変更します。 labels: - 相互運用性 status: not_enabled --- + # XChainModifyBridge + [[ソース]](https://github.com/XRPLF/rippled/blob/develop/src/ripple/protocol/impl/TxFormats.cpp#L390-L397 "ソース") _([XChainBridge Amendment][] {% not-enabled /%} が必要です)_ @@ -18,7 +20,6 @@ _([XChainBridge Amendment][] {% not-enabled /%} が必要です)_ {% admonition type="info" name="注記" %}このトランザクションでブリッジの署名者リストを変更することはできません。署名者リストはドアアカウント自体にあり、署名者リストがアカウント上で変更されるのと同じ方法で変更されます(`SignerListSet`トランザクションを利用)。{% /admonition %} - ## XChainModifyBridge JSONの例 ```json @@ -40,33 +41,30 @@ _([XChainBridge Amendment][] {% not-enabled /%} が必要です)_ } ``` - ## XChainModifyBridgeのフィールド -| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | -|:-------------------------|:-------------|:--------------|:------|-----| -| `Flags` | 数値 | UInt32 | はい | このトランザクションのフラグを指定します。 | -| `MinAccountCreateAmount` | [通貨額][] | Amount | いいえ | `XChainAccountCreateCommit`トランザクションに必要な最小金額。このフィールドが存在しない場合、`XChainAccountCreateCommit`トランザクションは失敗します。このフィールドはXRP-XRPブリッジにのみ存在できます。 | -| `SignatureReward` | [通貨額][] | Amount | いいえ | Witnessサーバに支払う署名の報酬の合計額。この金額は署名者の間で分配されます。 | -| `XChainBridge` | XChainBridge | XChain_Bridge | はい | 変更するブリッジ。 | - +| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | +| :----------------------- | :----------- | :------------ | :----- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Flags` | 数値 | UInt32 | はい | このトランザクションのフラグを指定します。 | +| `MinAccountCreateAmount` | [通貨額][] | Amount | いいえ | `XChainAccountCreateCommit`トランザクションに必要な最小金額。このフィールドが存在しない場合、`XChainAccountCreateCommit`トランザクションは失敗します。このフィールドはXRP-XRPブリッジにのみ存在できます。 | +| `SignatureReward` | [通貨額][] | Amount | いいえ | Witnessサーバに支払う署名の報酬の合計額。この金額は署名者の間で分配されます。 | +| `XChainBridge` | XChainBridge | XChain_Bridge | はい | 変更するブリッジ。 | ### XChainBridgeのフィールド -| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | -|:--------------------|:---------|:-----------|:------|:----| -| `IssuingChainDoor` | 文字列 | Account | はい | 発行チェーンのドアアカウント。XRP-XRPブリッジの場合、これはジェネシスアカウント(ネットワークが最初に開始されたときに作成されるアカウントで、すべてのXRPを含む)でなければなりません。 | -| `IssuingChainIssue` | Issue | Issue | はい | 発行チェーン上で作成され、バーンされる資産。IOU-IOUブリッジの場合、供給量の問題を避けるため、資産の発行者は発行チェーンのドアアカウントでなければなりません。 | -| `LockingChainDoor` | 文字列 | Account | はい | ロックチェーンのドアアカウント。 | -| `LockingChainIssue` | Issue | Issue | はい | ロックチェーンでロック、アンロックされる資産。 | - +| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 | +| :------------------ | :------- | :----------- | :---- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `IssuingChainDoor` | 文字列 | Account | はい | 発行チェーンのドアアカウント。XRP-XRPブリッジの場合、これはジェネシスアカウント(ネットワークが最初に開始されたときに作成されるアカウントで、すべてのXRPを含む)でなければなりません。 | +| `IssuingChainIssue` | Issue | Issue | はい | 発行チェーン上で作成され、バーンされる資産。IOU-IOUブリッジの場合、供給量の問題を避けるため、資産の発行者は発行チェーンのドアアカウントでなければなりません。 | +| `LockingChainDoor` | 文字列 | Account | はい | ロックチェーンのドアアカウント。 | +| `LockingChainIssue` | Issue | Issue | はい | ロックチェーンでロック、アンロックされる資産。 | ## トランザクションのフラグ すべてのトランザクションで利用可能なグローバルフラグに加えて、このフラグを指定することができます。 -| フラグ名 | フラグ値 | 説明 | -|------------------------------|--------------|------| +| フラグ名 | フラグ値 | 説明 | +| ---------------------------- | ------------ | ----------------------------------------------- | | `tfClearAccountCreateAmount` | `0x00010000` | ブリッジの`MinAccountCreateAmount` 削除します。 | {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/references/xrp-api.md b/@l10n/ja/docs/references/xrp-api.md index ce540fae50..efd6547d34 100644 --- a/@l10n/ja/docs/references/xrp-api.md +++ b/@l10n/ja/docs/references/xrp-api.md @@ -2,13 +2,14 @@ html: xrp-api.html parent: references.html seo: - description: XRP LedgerにRESTライクのインターフェイスを提供するAPIサーバ + description: XRP LedgerにRESTライクのインターフェイスを提供するAPIサーバ #template: pagetype-redirect.html.jinja redirect_url: https://xpring-eng.github.io/xrp-api/ nav_omit: true filters: - - xrpapi_readme + - xrpapi_readme --- + # XRP-API XRP-API サーバは、XRP Ledger への REST ライクな代替インターフェースを提供しますが、現在安定したソフトウェアとは言えず、積極的なサポートは行っていません。 diff --git a/@l10n/ja/docs/references/xrp-ledger-toml.md b/@l10n/ja/docs/references/xrp-ledger-toml.md index cf6388310c..9defb5ac15 100644 --- a/@l10n/ja/docs/references/xrp-ledger-toml.md +++ b/@l10n/ja/docs/references/xrp-ledger-toml.md @@ -2,20 +2,21 @@ html: xrp-ledger-toml.html parent: references.html seo: - description: 機械が読み取れる、あなたに関する情報を他のXRP Ledgerユーザに提供します。 + description: 機械が読み取れる、あなたに関する情報を他のXRP Ledgerユーザに提供します。 curated_anchors: - - name: ファイルの提供方法 - anchor: "#ファイルの提供方法" - - name: 内容 - anchor: "#内容" - - name: CORSの設定 - anchor: "#corsの設定" - - name: ドメイン検証 - anchor: "#ドメイン検証" - - name: アカウント検証 - anchor: "#アカウント検証" + - name: ファイルの提供方法 + anchor: '#ファイルの提供方法' + - name: 内容 + anchor: '#内容' + - name: CORSの設定 + anchor: '#corsの設定' + - name: ドメイン検証 + anchor: '#ドメイン検証' + - name: アカウント検証 + anchor: '#アカウント検証' outdated_translation: true --- + # xrp-ledger.tomlファイル XRP Ledgerバリデータを実行するか、ビジネスにXRP Ledgerを使用する場合、機械が読み取れる形式の **`xrp-ledger.toml`** ファイルで自分のXRP Ledgerの使用状況に関する情報を世界中に提供することができます。スクリプトとアプリケーションで`xrp-ledger.toml`ファイルの情報を使用して、XRP Ledgerでの自分の情報を分かりやすく示すことができます。また、同じファイルを人間が読むことが便利な場合もあります。 @@ -158,14 +159,14 @@ symbol = "😆" # In practical situations, it may be unwise to use emoji メタデータセクションには、`xrp-ledger.toml`ファイル自体に関する情報が表示されます。このセクションは、(存在する場合) _単一_ 角括弧を使用した`[METADATA]`行で開始する単一のテーブルでなければなりません。(`xrp-ledger.toml`ファイルの他のほとんどのセクションでは、情報の配列のために二重括弧を使用していますが、`[METADATA]`セクションは最大で1つしかありません。)以下から任意のフィールドを指定できます(大文字と小文字は区別されます)。 -| フィールド | 型 | 説明 | -|:-----------|:-----------------|:---------------------------------------------| -| `modified` | オフセット日時 | `xrp-leder.toml`ファイルが最後に変更された時間。 | +| フィールド | 型 | 説明 | +| :--------- | :------------- | :---------------------------------------------------------------------------------------------- | +| `modified` | オフセット日時 | `xrp-leder.toml`ファイルが最後に変更された時間。 | | `expires` | オフセット日時 | 現在の時間がこの時間と同じか以降である場合、`xrp-ledger.toml`ファイルは期限切れと見なされます。 | 本仕様では`domain`フィールドは定義していません。このフィールドは、ファイルを提供するサイトから決定する必要があります。 -{% admonition type="success" name="ヒント" %}Rippleでは、オフセット日時の値についてオフセット`Z`を使用し、ミリ秒単位まで精度を高めることを推奨しています。(例: `2019-01-22T22:26:58.027Z`)ファイルを手動で編集する場合は、時間、分、秒、ミリ秒にゼロを指定して、時間を概算で示すことができます。(例: `2019-01-22T00:00:00.000Z`){% /admonition %} +{% admonition type="success" name="ヒント" %}Rippleでは、オフセット日時の値についてオフセット`Z`を使用し、ミリ秒単位まで精度を高めることを推奨しています。(例: `2019-01-22T22:26:58.027Z`)ファイルを手動で編集する場合は、時間、分、秒、ミリ秒にゼロを指定して、時間を概算で示すことができます。(例: `2019-01-22T00:00:00.000Z`){% /admonition %} ### バリデータ @@ -175,23 +176,23 @@ symbol = "😆" # In practical situations, it may be unwise to use emoji _各_`[[VALIDATORS]]`エントリごとに、以下から任意のフィールドを指定することができます。 -| フィールド | 型 | 説明 | -|:-------------|:-------|:-----------------------------------------------------| -| `public_key` | 文字列 | XRP Ledgerのbase58形式でエンコードされた、プライマリバリデータのマスター公開鍵(通常、先頭は`n`)。 | -| `network` | 文字列 | このバリデータがフォローするネットワークチェーン。省略された場合、クライアントはバリデータが本番環境のXRP Ledgerをフォローすると想定する必要があります。本番環境のXRP Ledgerを明示的に指定するには`main`を使用します。RippleのXRP Ledger Test Netには`testnet`を使用します。他の値を指定して、他のTest Netまたは非標準のネットワークチェーンを表すことができます。 -| `owner_country` | 文字列 | ISO-3166-2形式の国コード(2桁)。あなた(バリデータの所有者)が属する主な法的管轄域を表します。 | -| `server_country` | 文字列 | ISO-3166-2形式の国コード(2桁)。この検証サーバがある物理的な場所を表します。 | -| `unl` | 文字列 | HTTPS URL。このバリデータが信頼する、他のバリデータのリストを確認できます。バリデータがUNL推奨のバリデータリストサイトを使用するように構成されている場合は、サーバの構成と一致しなければなりません。本番環境のXRP Ledgerネットワークの場合は、`https://vl.ripple.com`(末尾のスラッシュは省略可)を使用します。 | +| フィールド | 型 | 説明 | +| :--------------- | :----- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `public_key` | 文字列 | XRP Ledgerのbase58形式でエンコードされた、プライマリバリデータのマスター公開鍵(通常、先頭は`n`)。 | +| `network` | 文字列 | このバリデータがフォローするネットワークチェーン。省略された場合、クライアントはバリデータが本番環境のXRP Ledgerをフォローすると想定する必要があります。本番環境のXRP Ledgerを明示的に指定するには`main`を使用します。RippleのXRP Ledger Test Netには`testnet`を使用します。他の値を指定して、他のTest Netまたは非標準のネットワークチェーンを表すことができます。 | +| `owner_country` | 文字列 | ISO-3166-2形式の国コード(2桁)。あなた(バリデータの所有者)が属する主な法的管轄域を表します。 | +| `server_country` | 文字列 | ISO-3166-2形式の国コード(2桁)。この検証サーバがある物理的な場所を表します。 | +| `unl` | 文字列 | HTTPS URL。このバリデータが信頼する、他のバリデータのリストを確認できます。バリデータがUNL推奨のバリデータリストサイトを使用するように構成されている場合は、サーバの構成と一致しなければなりません。本番環境のXRP Ledgerネットワークの場合は、`https://vl.ripple.com`(末尾のスラッシュは省略可)を使用します。 | ### アカウント アカウントリストには、所有するXRP Ledgerアカウントに関する情報が表示されます。アカウントリストは、(存在する場合)各エントリが二重角括弧を含んだヘッダー`[[ACCOUNTS]]`を使用する複数のテーブルの配列でなければなりません。各エントリで、個別のアカウントが示されます。 _各_`[[ACCOUNTS]]`エントリごとに、以下から任意のフィールドを指定することができます。 -| フィールド | 型 | 説明 | -|:----------|:-------|:--------------------------------------------------------| -| `address` | 文字列 | XRP Ledgerのbase58フォーマットでエンコードされた、アカウントの公開アドレス(通常、先頭は`r`)。 | -| `network` | 文字列 | このアカウントが主に使用されるネットワークチェーン。省略された場合、クライアントはアカウントが本番環境のXRP Ledger _と_ 、場合によっては他のネットワークチェーンでもリクエストされていると想定する必要があります。本番環境のXRP Ledgerでは`main`を使用します。RippleのXRP Ledger Test Netには`testnet`を使用します。他の値を指定して、他のTest Netまたは非標準のネットワークチェーンを表すことができます。 | -| `desc` | 文字列 | 人間が読める形式での、このアカウントの目的または使用方法に関する説明。 | +| フィールド | 型 | 説明 | +| :--------- | :----- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `address` | 文字列 | XRP Ledgerのbase58フォーマットでエンコードされた、アカウントの公開アドレス(通常、先頭は`r`)。 | +| `network` | 文字列 | このアカウントが主に使用されるネットワークチェーン。省略された場合、クライアントはアカウントが本番環境のXRP Ledger _と_ 、場合によっては他のネットワークチェーンでもリクエストされていると想定する必要があります。本番環境のXRP Ledgerでは`main`を使用します。RippleのXRP Ledger Test Netには`testnet`を使用します。他の値を指定して、他のTest Netまたは非標準のネットワークチェーンを表すことができます。 | +| `desc` | 文字列 | 人間が読める形式での、このアカウントの目的または使用方法に関する説明。 | {% admonition type="warning" name="注意" %}`xrp-ledger.toml`ファイルをホストすることで、誰でもアカウントの所有権を主張できるため、ここでのアカウントの存在が正式であると見なすべきではありません。ただし、[XRP Ledgerの当該アカウントの`Domain`フィールド](protocol/transactions/types/accountset.md#domain)が、この`xrp-ledger.toml`ファイルの提供元のドメインとも一致している場合は除きます。詳細は、[アカウントの検証](#アカウント検証)を確認してください。{% /admonition %} @@ -199,10 +200,10 @@ _各_`[[VALIDATORS]]`エントリごとに、以下から任意のフィール 責任者リストには、XRP Ledgerのビジネスおよびサービスに関係するユーザ(または企業)に関する情報が表示されます。責任者リストは、(存在する場合)各エントリが二重角括弧を含んだヘッダー`[[PRINCIPALS]]`を使用する複数のテーブルの配列でなければなりません。各エントリは異なる連絡先を示します。 _各_`[[PRINCIPALS]]`エントリごとに、以下から任意のフィールドを指定することができます。 -| フィールド | 型 | 説明 | -|:--------|:-------|:-----------------------------------------------------| -| `name` | 文字列 | この責任者の名前。 | -| `email` | 文字列 | この責任者の連絡先メールアドレス。 | +| フィールド | 型 | 説明 | +| :--------- | :----- | :--------------------------------- | +| `name` | 文字列 | この責任者の名前。 | +| `email` | 文字列 | この責任者の連絡先メールアドレス。 | 必要に応じて、他の連絡先情報を指定することができます。(カスタムフィールドについては、[カスタムフィールド](#カスタムフィールド)をご覧ください。) @@ -210,12 +211,12 @@ _各_`[[VALIDATORS]]`エントリごとに、以下から任意のフィール サーバリストには、パブリックアクセスで実行するXRP Ledgerサーバ(`rippled`)に関する情報が表示されます。サーバリストは、(存在する場合)各エントリが二重角括弧を含んだヘッダー`[[SERVERS]]`を使用する複数のテーブルの配列でなければなりません。各エントリは、異なるサーバまたはサーバクラスターを示します。 _各_`[[SERVERS]]`エントリごとに、以下から任意のフィールドを指定することができます。 -| フィールド | 型 | 説明 | -|:--------|:-------|:-----------------------------------------------------| -| `json_rpc` | 文字列(URL) | 公開JSON-RPC APIを提供するURL。先頭は`http://`または`https://`である必要があります。公開APIに対してはHTTPSが推奨されます。 | -| `ws` | 文字列(URL) | 公開WebSocket APIを提供するURL。先頭は`ws://`または`wss://`である必要があります。公開APIに対してはWSSが推奨されます。 | -| `peer` | 文字列(URL) | サーバがXRP LedgerのピアプロトコルをリッスンしているURL。他のXRP Ledgerサーバは、このURLで接続できます。サーバよりピアクローラーレスポンスが提供される場合は、このURLに`crawl`が付加されて提供されます。 | -| `network` | 文字列 | このサーバがフォローするネットワークチェーン。省略された場合、クライアントはサーバが本番環境のXRP Ledgerをフォローすると想定する必要があります。本番環境のXRP Ledgerを明示的に指定するには`main`を使用します。RippleのXRP Ledger Test Netには`testnet`を使用します。他の値を指定して、他のTest Netまたは非標準のネットワークチェーンを表すことができます。 | +| フィールド | 型 | 説明 | +| :--------- | :------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `json_rpc` | 文字列(URL) | 公開JSON-RPC APIを提供するURL。先頭は`http://`または`https://`である必要があります。公開APIに対してはHTTPSが推奨されます。 | +| `ws` | 文字列(URL) | 公開WebSocket APIを提供するURL。先頭は`ws://`または`wss://`である必要があります。公開APIに対してはWSSが推奨されます。 | +| `peer` | 文字列(URL) | サーバがXRP LedgerのピアプロトコルをリッスンしているURL。他のXRP Ledgerサーバは、このURLで接続できます。サーバよりピアクローラーレスポンスが提供される場合は、このURLに`crawl`が付加されて提供されます。 | +| `network` | 文字列 | このサーバがフォローするネットワークチェーン。省略された場合、クライアントはサーバが本番環境のXRP Ledgerをフォローすると想定する必要があります。本番環境のXRP Ledgerを明示的に指定するには`main`を使用します。RippleのXRP Ledger Test Netには`testnet`を使用します。他の値を指定して、他のTest Netまたは非標準のネットワークチェーンを表すことができます。 | このセクションのすべてのURLの末尾にスラッシュを付けることが推奨されます。省略された場合、クライアントアプリケーションでは、末尾にスラッシュが含まれていると想定します。 @@ -223,13 +224,13 @@ _各_`[[VALIDATORS]]`エントリごとに、以下から任意のフィール XRP Ledgerで資産、トークン、または通貨を発行する場合は、`[[CURRENCIES]]`リストでそれらに関する情報を提供できます。通貨リストは、(存在する場合)各エントリが二重角括弧を含んだヘッダー`[[CURRENCIES]]`を使用する複数のテーブルの配列でなければなりません。各エントリは、個別のまたは資産を示します。 _各_`[[CURRENCIES]]`エントリごと _に_ 、以下から任意のフィールドを指定することができます。 -| フィールド | 型 | 説明 | -|:--------|:-------|:------------------------------------------------------| -| `code` | 文字列 | XRP Ledgerでのこの通貨の(大文字と小文字を区別する)ティッカーシンボル。例えば、3桁のコード、40文字の16進コード、またはカスタム形式(XRP Ledgerで非標準コードの表記を把握しているクライアント用)があります。XRP Ledgerの通貨コードフォーマットの詳細は、[通貨コードリファレンス](protocol/data-types/currency-formats.md#通貨コード)をご覧ください。 | -| `display_decimals` | 数値 | クライアントアプリケーションがこの通貨の金額を表示するために使用する十進数。 | -| `issuer` | 文字列 | この通貨を発行するXRP Ledgerアカウントのアドレス。XRP Ledgerのbase58形式でエンコードされます(通常、先頭は`r`)。また、このアドレスは`[[ACCOUNTS]]`リストに表示する必要があります。(留意事項: ここにアドレスが存在することは、それ自体では権限を持ちません。詳細は、[アカウントの検証](#アカウント検証)をご覧ください。) | -| `network` | 文字列 | この通貨を発行するネットワークチェーン。本番環境のXRP Ledgerを明示的に指定するには`main`を使用します。省略された場合、クライアントは通貨が本番環境のXRP Ledgerで発行されていると想定する必要があります。RippleのXRP Ledger Test Netには`testnet`を使用します。他の値を指定して、他のTest Netまたは非標準のネットワークチェーンを表すことができます。 | -| `symbol` | 文字列 | 「$」や「€」などのテキスト記号。Unicode規格の記号がある場合に、資産または通貨の金額で使用されます。 | +| フィールド | 型 | 説明 | +| :----------------- | :----- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `code` | 文字列 | XRP Ledgerでのこの通貨の(大文字と小文字を区別する)ティッカーシンボル。例えば、3桁のコード、40文字の16進コード、またはカスタム形式(XRP Ledgerで非標準コードの表記を把握しているクライアント用)があります。XRP Ledgerの通貨コードフォーマットの詳細は、[通貨コードリファレンス](protocol/data-types/currency-formats.md#通貨コード)をご覧ください。 | +| `display_decimals` | 数値 | クライアントアプリケーションがこの通貨の金額を表示するために使用する十進数。 | +| `issuer` | 文字列 | この通貨を発行するXRP Ledgerアカウントのアドレス。XRP Ledgerのbase58形式でエンコードされます(通常、先頭は`r`)。また、このアドレスは`[[ACCOUNTS]]`リストに表示する必要があります。(留意事項: ここにアドレスが存在することは、それ自体では権限を持ちません。詳細は、[アカウントの検証](#アカウント検証)をご覧ください。) | +| `network` | 文字列 | この通貨を発行するネットワークチェーン。本番環境のXRP Ledgerを明示的に指定するには`main`を使用します。省略された場合、クライアントは通貨が本番環境のXRP Ledgerで発行されていると想定する必要があります。RippleのXRP Ledger Test Netには`testnet`を使用します。他の値を指定して、他のTest Netまたは非標準のネットワークチェーンを表すことができます。 | +| `symbol` | 文字列 | 「$」や「€」などのテキスト記号。Unicode規格の記号がある場合に、資産または通貨の金額で使用されます。 | ### カスタムフィールド @@ -280,7 +281,6 @@ location /.well-known/xrp-ledger.toml { ドメイン検証では、ドメインオペレーターとバリデータの間に双方向リンクを確立する必要があります。 1. ドメインはバリデータの所有権を主張します。 - - [本書に記載されているすべての要件](#ファイルの提供方法)に従って、当該ドメインから`xrp-ledger.toml`ファイルを提供します。 - その`xrp-ledger.toml`ファイルで、`[[VALIDATORS]]`エントリの`public_key`フィールドにバリデータのマスター公開鍵を入力します。 @@ -294,7 +294,6 @@ location /.well-known/xrp-ledger.toml { アカウント検証では、ドメインオペレーターとアドレスの間に双方向リンクを確立する必要があります。 1. ドメインはアドレスの所有権を主張します。 - - [本書に記載されているすべての要件](#ファイルの提供方法)に従って、当該ドメインから`xrp-ledger.toml`ファイルを提供します。 - その`xrp-ledger.toml`ファイルで、検証するアカウントのアドレスを`[[ACCOUNTS]]`エントリに入力します。このアドレスから通貨を発行する場合は、`[[CURRENCIES]]`エントリの`issuer`フィールドでこのアカウントを指定することもできます。 diff --git a/@l10n/ja/docs/references/xrpljs2-migration-guide.md b/@l10n/ja/docs/references/xrpljs2-migration-guide.md index 6aa730035c..51f87e2180 100644 --- a/@l10n/ja/docs/references/xrpljs2-migration-guide.md +++ b/@l10n/ja/docs/references/xrpljs2-migration-guide.md @@ -1,9 +1,10 @@ --- html: xrpljs2-migration-guide.html seo: - description: JavaScriptコードをより新しいクライアントライブラリに移行する方法を学びましょう。 + description: JavaScriptコードをより新しいクライアントライブラリに移行する方法を学びましょう。 parent: https://js.xrpl.org/ --- + # ripple-lib 1.xからxrpl.js 2.xへの移行ガイド **ripple-lib** (1.x)ライブラリからJavaScript / TypeScriptコードを移行し、代わりにXRP Ledger用**xrpl.js** (2.x)ライブラリーを使用するためには、以下の手順に従ってください。 @@ -15,43 +16,43 @@ parent: https://js.xrpl.org/ xrpl.js v2.0では、多くのフィールドと機能に"新しい"名前があります。より正確には、xrpl.jsは現在、[HTTP / WebSocket APIs](http-websocket-apis/index.md)と同じ名前を使用しています。XRP Ledgerで実行可能な"OfferCancel"のような[トランザクションタイプ](protocol/transactions/types/index.md)をライブラリが使用する場所では、"orderCancellation"オブジェクトのようなripple-libに特有の構造はなくなりました。ripple-lib 1.xでこれらの構造をリターンする多くのAPIメソッドはなくなりました。2.0では、WebSocket APIと同じフォーマットでリクエスト、レスポンスを行います。 ripple-lib 1.xからの包括的な`RippleAPI`クラスもなくなりました。xrpl.js 2.xでは、ネットワーク運用のための`Client`クラスがあり、その他全ての運用は厳格にオフラインです。アドレスとキーのための新しい`Wallet`クラス、また、トップレベルの`xrpl`オブジェクトの下にその他のクラスとプロパティがあります。 + ## 定型文での比較 **ripple-lib 1.10.0:** ```js -const ripple = require('ripple-lib'); +const ripple = require('ripple-lib') -(async function() { +;(async function () { const api = new ripple.RippleAPI({ - server: 'wss://xrplcluster.com' - }); + server: 'wss://xrplcluster.com', + }) - await api.connect(); + await api.connect() // Your code here - api.disconnect(); -})(); + api.disconnect() +})() ``` **xrpl.js 2.0.0:** ```js -const xrpl = require("xrpl"); +const xrpl = require('xrpl') -(async function() { - const client = new xrpl.Client('wss://xrplcluster.com'); +;(async function () { + const client = new xrpl.Client('wss://xrplcluster.com') - await client.connect(); + await client.connect() // Your code here - client.disconnect(); -})(); + client.disconnect() +})() ``` - ## バリデーション結果 デフォルトでは、ripple-lib 1.xにおけるほとんどのメソッドは、[コンセンサスプロセス](../concepts/consensus-protocol/index.md)によって検証された最終結果をリターンするのみでした。xrpl.jsと同等の多くのメソッドは、WebSocket APIをコールするために[`Client.request()`メソッド](https://js.xrpl.org/classes/Client.html#request)を使用します。WebSocket APIにおいて、XRP Ledgerサーバのデフォルト設定では、検証済みデータだけはなく未検証のデータを含むことがあります。 @@ -63,7 +64,7 @@ xrpl.js 2.0が`Client.request()`を使用してAPIリクエストをする際、 **ripple-lib 1.x:** ```js -const trustlines = await api.getTrustlines("rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn") +const trustlines = await api.getTrustlines('rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn') console.log(trustlines) ``` @@ -71,14 +72,13 @@ console.log(trustlines) ```js const trustlines = await client.request({ - "command": "account_lines", - "account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "ledger_index": "validated" + command: 'account_lines', + account: 'rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn', + ledger_index: 'validated', }) console.log(trustlines.result) ``` - ## トランザクションの送信 xrpl.jsには、トランザクションの署名および送信のための、また、XRP Ledgerブロックチェーンのトランザクション最終結果の確認を待機するための特有の補助機能があります: @@ -90,18 +90,18 @@ xrpl.jsには、トランザクションの署名および送信のための、 ```js const tx_json = await client.autofill({ - "TransactionType": "AccountSet", - "Account": wallet.address, // "wallet"はWalletクラスのインスタンス - "SetFlag": xrpl.AccountSetAsfFlags.asfRequireDest + TransactionType: 'AccountSet', + Account: wallet.address, // "wallet"はWalletクラスのインスタンス + SetFlag: xrpl.AccountSetAsfFlags.asfRequireDest, }) try { const submit_result = await client.submitAndWait(tx_json, wallet) // submitAndWait() はトランザクションの結果が確定するまでreturnしません。 // トランザクションがネットワークに確認されなかった場合、XrplErrorが発生します。 // ディザスタリカバリには対応しません。 - console.log("Transaction result:", submit_result) -} catch(err) { - console.log("Error submitting transaction:", err) + console.log('Transaction result:', submit_result) +} catch (err) { + console.log('Error submitting transaction:', err) } ``` @@ -118,11 +118,11 @@ ripple-lib 1.xでは、トランザクションを準備し、準備済みトラ const vli = await client.getLedgerIndex() const prepared = await client.autofill({ - "TransactionType": "Payment", - "Account": sender, - "Amount": xrpl.xrpToDrops("50.2"), - "Destination": "rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe", - "LastLedgerSequence": vli+75 // デフォルトの1分以内ではなく5分以内 + TransactionType: 'Payment', + Account: sender, + Amount: xrpl.xrpToDrops('50.2'), + Destination: 'rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe', + LastLedgerSequence: vli + 75, // デフォルトの1分以内ではなく5分以内 }) ``` @@ -130,15 +130,14 @@ const prepared = await client.autofill({ ```js const prepared = await client.autofill({ - "TransactionType": "Payment", - "Account": sender, - "Amount": xrpl.xrpToDrops("50.2"), - "Destination": "rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe", - "LastLedgerSequence": null // トランザクションは有効期限切れになりません + TransactionType: 'Payment', + Account: sender, + Amount: xrpl.xrpToDrops('50.2'), + Destination: 'rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe', + LastLedgerSequence: null, // トランザクションは有効期限切れになりません }) ``` - ## キーおよびウォレット xrpl.js 2.0は、[暗号鍵](../concepts/accounts/cryptographic-keys.md)の管理およびトランザクションの署名のために、新しい[`Wallet`クラス](https://js.xrpl.org/classes/Wallet.html)を採用します。 @@ -150,7 +149,7 @@ xrpl.js 2.0は、[暗号鍵](../concepts/accounts/cryptographic-keys.md)の管 ```js const api = new RippleAPI() -const {address, secret} = api.generateAddress({algorithm: "ed25519"}) +const { address, secret } = api.generateAddress({ algorithm: 'ed25519' }) console.log(address, secret) // rJvMQ3cwtyrNpVJDTW4pZzLnGeovHcdE6E s████████████████████████████ ``` @@ -158,7 +157,7 @@ console.log(address, secret) **xrpl.js 2.0:** ```js -const wallet = xrpl.Wallet.generate("ed25519") +const wallet = xrpl.Wallet.generate('ed25519') console.log(wallet) // Wallet { // publicKey: 'ED872A4099B61B0C187C6A27258F49B421AC384FBAD23F31330E666A5F50E0ED7E', @@ -174,18 +173,18 @@ console.log(wallet) ```js const api = new RippleAPI() -const seed = 's████████████████████████████'; +const seed = 's████████████████████████████' const keypair = api.deriveKeypair(seed) const address = api.deriveAddress(keypair.publicKey) const tx_json = { - "Account": address, - "TransactionType":"Payment", - "Destination":"rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe", - "Amount":"13000000", - "Flags":2147483648, - "LastLedgerSequence":7835923, - "Fee":"13", - "Sequence":2 + Account: address, + TransactionType: 'Payment', + Destination: 'rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe', + Amount: '13000000', + Flags: 2147483648, + LastLedgerSequence: 7835923, + Fee: '13', + Sequence: 2, } const signed = api.sign(JSON.stringify(tx_json), seed) ``` @@ -195,19 +194,18 @@ const signed = api.sign(JSON.stringify(tx_json), seed) ```js const wallet = xrpl.Wallet.fromSeed('s████████████████████████████') const tx_json = { - "Account": wallet.address, - "TransactionType":"Payment", - "Destination":"rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe", - "Amount":"13000000", - "Flags":2147483648, - "LastLedgerSequence":7835923, - "Fee":"13", - "Sequence":2 + Account: wallet.address, + TransactionType: 'Payment', + Destination: 'rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe', + Amount: '13000000', + Flags: 2147483648, + LastLedgerSequence: 7835923, + Fee: '13', + Sequence: 2, } const signed = wallet.sign(tx_json) ``` - ## イベントおよびサブスクリプション 1.xでは、`RippleAPI`クラスの`.on()`メソッドを使用してレジャーイベントとAPIエラーにサブスクリプションできました。もしくは、`.connection.on()`を使用して特定のWebSocketメッセージタイプにサブスクリプションできました。これらは、[`Client.on()`メソッド](https://js.xrpl.org/classes/Client.html#on)に統合されました。さらに、XRP Ledgerサーバに接続する際、クライアントライブラリは、自動的にレジャークローズイベントにサブスクリプションしなくなったため、ハンドラを追加するだけでなく、レジャークローズイベントを取得するために **明確に台帳ストリームにサブスクリプションする必要があります** 。 @@ -221,11 +219,10 @@ const signed = wallet.sign(tx_json) **ripple-lib 1.x:** ```js -api.on("ledger", (ledger) => { +api.on('ledger', (ledger) => { console.log(`Ledger #${ledger.ledgerVersion} closed! It contains ${ledger.transactionCount} transaction(s) and has - the ledger_hash ${ledger.ledgerHash}.` - ) + the ledger_hash ${ledger.ledgerHash}.`) }) // "ledger"イベントはAPI接続が確立後自動的に開始します。 ``` @@ -233,104 +230,102 @@ api.on("ledger", (ledger) => { **xrpl.js 2.0:** ```js -client.on("ledgerClosed", (ledger) => { +client.on('ledgerClosed', (ledger) => { console.log(`Ledger #${ledger.ledger_index} closed! It contains ${ledger.txn_count} transaction(s) and has - the ledger_hash ${ledger.ledger_hash}.` - ) + the ledger_hash ${ledger.ledger_hash}.`) }) // ”ledgerClosed "イベントを取得するには、"ledger "ストリームを明示的にサブスクライブする必要があります。 client.request({ - "command": "subscribe", - "streams": ["ledger"] + command: 'subscribe', + streams: ['ledger'], }) ``` - ## 比較対照 ripple-lib 1.xでは、全てのメソッドとプロパティは、`RippleAPI`クラスのインスタンスでした。xrpl.js 2.xでは、ライブラリの静的メソッドと特定のクラスに属するメソッドがあります。以下のテーブルにおいて、`Client.method()`という表記方法は、`method()`が`Client`クラスのインスタンスに属することを意味します。 **注記: 以下のテーブルには、3カラムあります。縦にスクロールすると、全ての情報を確認できます。** -| RippleAPIインスタンスメソッド/プロパティ | xrpl.jsメソッド/プロパティ | 注記 | -|-------------------|----------------|---| -| `new ripple.RippleAPI({server: url})` | [`new xrpl.Client(url)`](https://js.xrpl.org/classes/Client.html#constructor) | 複数のサーバに接続するには`xrpl.BroadcastClient([url1, url2, ..])` を使用してください。 | -| `request(command, options)` | [`Client.request(options)`](https://js.xrpl.org/classes/Client.html#request) | WebSocket API との一貫性を保つために `command` フィールドを `options` オブジェクトに移動しました。1.x では、このメソッドの戻り値 (Promise がリゾルブしたとき) は `result` オブジェクトのみでした。現在は、[WebSocket レスポンスのフォーマット](http-websocket-apis/api-conventions/response-formatting.md) 全体が返されます。同様の値を得るには、戻り値の `result` フィールドを読み取ってください。 | -| `hasNextPage()` | [`xrpl.hasNextPage(response)`](https://js.xrpl.org/modules.html#hasNextPage) | こちらもご覧ください。 [`Client.requestNextPage()`](https://js.xrpl.org/classes/Client.html#requestNextPage) および [`Client.requestAll()`](https://js.xrpl.org/classes/Client.html#requestAll) | -| `requestNextPage()` | [`Client.requestNextPage()`](https://js.xrpl.org/classes/Client.html#requestNextPage) | | -| `computeBinaryTransactionHash()` | [`xrpl.hashes.hashTx()`](https://js.xrpl.org/modules.html#hashes) | | -| `classicAddressToXAddress()` | [`xrpl.classicAddressToXAddress()`](https://js.xrpl.org/modules.html#classicAddressToXAddress) | 現在は、モジュールの静的メソッドです。 | -| `xAddressToClassicAddress()` | [`xrpl.xAddressToClassicAddress()`](https://js.xrpl.org/modules.html#xAddressToClassicAddress) | 現在は、モジュールの静的メソッドです。 | -| `renameCounterpartyToIssuer(object)` | (削除済み - 注記カラムを参照) | xrpl.jsは常に`issuer`を既に使用しているので、今後は必要ありません。 | -| `formatBidsAndAsks()` | (削除済み - 注記カラムを参照) | No longer needed after changes to `getOrderbook()`. | -| `connect()` | [`Client.connect()`](https://js.xrpl.org/classes/Client.html#connect) | | -| `disconnect()` | [`Client.disconnect()`](https://js.xrpl.org/classes/Client.html#disconnect) | | -| `isConnected()` | [`Client.isConnected()`](https://js.xrpl.org/classes/Client.html#isConnected) | | -| `getServerInfo()` | (削除済み - 注記カラムを参照) | 代わりに [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) を使って [server_infoメソッド][] を呼び出してください。 | -| `getFee()` | (削除済み - 注記カラムを参照) | [トランザクションコスト][]を自動的に提供するには [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) を使ってください。または `Client.request({"command": "fee"})` を使って、現在のトランザクションコスト ( _XRPのdrops_ ) についての情報を調べることができます。 | -| `getLedgerVersion()` | [`Client.getLedgerIndex()`](https://js.xrpl.org/classes/Client.html#getLedgerIndex) | | -| `getTransaction()` | [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) | 代わりに [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) を使って [txメソッド][] を呼び出してください。**警告:** `getTransaction()` とは異なり、`tx` メソッドは [検証されていない最終結果](#バリデーション結果) を返すことがあります。トランザクションに対してアクションを起こす前に、レスポンスオブジェクトの中に `"validated": true` があるかどうかを必ず確認するようにしてください。 | -| `getTransactions()` | (削除済み - 注記カラムを参照) | 代わりに [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) を使って [account_txメソッド][] を呼び出してください。 | -| `getTrustlines()` | (削除済み - 注記カラムを参照) | 代わりに [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) を使って [account_linesメソッド][] を呼び出してください。**警告:** `getTrustlines()` とは異なり、`account_lines` は [検証されていない最終結果](#バリデーション結果) を返すことがあります。 | -| `getBalances()` | [`Client.getBalances()`](https://js.xrpl.org/classes/Client.html#getBalances) | | -| `getBalanceSheet()` | (削除済み - 注記カラムを参照) | 代わりに [`Client.getBalances()`](https://js.xrpl.org/classes/Client.html#getBalances) を使うか、 [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) を使って [gateway_balancesメソッド][] を呼び出してください。 | -| `getPaths()` | (削除済み - 注記カラムを参照) | 代わりに [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) を使って [ripple_path_findメソッド][] を呼び出してください。 | -| `getOrders()` | (削除済み - 注記カラムを参照) | 代わりに [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) を使って [account_offersメソッド][] を呼び出してください。 | -| `getOrderbook()` | [`Client.getOrderbook()`](https://js.xrpl.org/classes/Client.html#getOrderbook) | | -| `getSettings()` | (削除済み - 注記カラムを参照) | 代わりに [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) を使って [account_infoメソッド][] を呼び出してください。個々のフラグ設定のブール値を取得するには、 `Flags` フィールドで `xrpl.parseAccountRootFlags()` を使用します。**警告:** `getSettings()`とは異なり、`account_info` は [検証されていない最終結果](#バリデーション結果)を返すことがあります。 | -| `getAccountInfo(address, options)` | (削除済み - 注記カラムを参照) | 代わりに [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) を使って [account_infoメソッド][] を呼び出してください。**警告:** `getAccountInfo()` とは異なり、`account_info` は [検証されていない最終結果](#バリデーション結果) を返すことがあります。 | -| `getAccountObjects(address, options)` | (削除済み - 注記カラムを参照) | 代わりに [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) を使って [account_objectsメソッド][] を呼び出してください。**警告:** `getAccountObjects()` とは異なり、`account_objects` は [検証されていない最終結果](#バリデーション結果) を返すことがあります。 | -| `getPaymentChannel()` | (削除済み - 注記カラムを参照) | 代わりに [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) を使って [ledger_entryメソッド](http-websocket-apis/public-api-methods/ledger-methods/ledger_entry.md#get-paychannel-object) を呼び出してください。**警告:** `getPaymentChannel()`とは異なり、`ledger_entry` は [検証されていない最終結果](#バリデーション結果)を返す可能性があります。| -| `getLedger()` | (削除済み - 注記カラムを参照) | `Client.request()`](https://js.xrpl.org/classes/Client.html#request) を使って、正確に [ledgerメソッド][] を呼び出してください。**渓谷:** `getLedger()`とは異なり、`ledger` は [検証されていない最終的なレジャー](#バリデーション結果)を返すことがあります。 | -| `parseAccountFlags()` | [`xrpl.parseAccountRootFlags()`](https://js.xrpl.org/modules.html#parseAccountRootFlags) | 現在は、モジュールの静的メソッドです。 | -| `prepareTransaction()` | [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) | 詳しくは、[トランザクション送信](#トランザクションの送信)をご覧ください。 | -| `preparePayment()` | (削除済み - 注記カラムを参照) | [Paymentトランザクション][] を構築し、代わりに [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) を使用します。 | -| `prepareTrustline()` | (削除済み - 注記カラムを参照) | [TrustSetトランザクション][]を構築し、代わりに [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) を使用します。 | -| `prepareOrder()` | (削除済み - 注記カラムを参照) | [OfferCreateトランザクション][] を構築し、代わりに [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) を使用します。 | -| `prepareOrderCancellation()` | (削除済み - 注記カラムを参照) | [OfferCancelトランザクション][]を構築し、[`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill)を代わりに使用することができます。 | -| `prepareSettings()` | (削除済み - 注記カラムを参照) | ほとんどの設定には、代わりに [AccountSetトランザクション][]を構築します。通常キーをローテート変更するには、[SetRegularKeyトランザクション][]を作成します。マルチシグの設定を追加または更新するには、代わりに[SignerListSetトランザクション][]を構築してください。これら3つの場合とも、トランザクションを準備するために [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) を使用します。 | -| `prepareEscrowCreation()` | (削除済み - 注記カラムを参照) | [EscrowCreateトランザクション][]を構築し、代わりに [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) を使用します。 | -| `prepareEscrowCancellation()` | (削除済み - 注記カラムを参照) | [EscrowCancelトランザクション][]を構築し、代わりに [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) を使用します。 | -| `prepareEscrowExecution()` | (削除済み - 注記カラムを参照) | [EscrowFinishトランザクション][] を構築し、代わりに [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) を使用します。 | -| `preparePaymentChannelCreate()` | (削除済み - 注記カラムを参照) | [PaymentChannelCreateトランザクション][] を構築し、代わりに [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) を使用します。 | -| `preparePaymentChannelClaim()` | (削除済み - 注記カラムを参照) | [PaymentChannelClaimトランザクション][] を構築し、代わりに [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) を使用します。 | -| `preparePaymentChannelFund()` | (削除済み - 注記カラムを参照) | [PaymentChannelFundトランザクション][] を構築し、代わりに [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) を使用します。 | -| `prepareCheckCreate()` | (削除済み - 注記カラムを参照) | [CheckCreateトランザクション][] を構築し、代わりに [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) を使用します。 | -| `prepareCheckCancel()` | (削除済み - 注記カラムを参照) | [CheckCancelトランザクション][] を構築し、代わりに [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) を使用します。 | -| `prepareCheckCash()` | (削除済み - 注記カラムを参照) | [CheckCashトランザクション][] を構築し、代わりに [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) を使用します。 | -| `prepareTicketCreate()` | (削除済み - 注記カラムを参照) | [TicketCreateトランザクション][] を構築し、代わりに [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) を使用します。 | -| `sign()` | [`Wallet.sign()`](https://js.xrpl.org/classes/Wallet.html#sign) | 詳しくは、[キーおよびウォレット](#キーおよびウォレット)をご覧ください。 | -| `combine()` | [`xrpl.multisign()`](https://js.xrpl.org/modules.html#multisign) | | -| `submit()` | [`Client.submit()`](https://js.xrpl.org/classes/Client.html#submit) | また、信頼性の高いトランザクション送信も可能になりました。詳細は、[トランザクション送信](#トランザクションの送信)をご覧ください。 | -| `generateXAddress()` | [`xrpl.Wallet.generate()`](https://js.xrpl.org/classes/Wallet.html#generate) | `xrpl.Wallet.generate()` で [`Wallet` インスタンス](https://js.xrpl.org/classes/Wallet.html) を作成し、ウォレットのインスタンスで `.getXAddress()` を呼び出して X-address を取得します。 詳しくは、[キーおよびウォレット](#キーおよびウォレット)をご覧ください。 | -| `generateAddress()` | [`xrpl.Wallet.generate()`](https://js.xrpl.org/classes/Wallet.html#generate) | [`Wallet`インスタンス](https://js.xrpl.org/classes/Wallet.html)を作成します。詳しくは、[キーおよびウォレット](#キーおよびウォレット)をご覧ください。 | -| `isValidAddress()` | [`xrpl.isValidAddress()`](https://js.xrpl.org/modules.html#isValidAddress) | 現在は、モジュールの静的メソッドです。 | -| `isValidSecret()` | [`xrpl.isValidSecret()`](https://js.xrpl.org/modules.html#isValidSecret) | 現在は、モジュールの静的メソッドです。 | -| `deriveKeypair()` | [`xrpl.deriveKeypair()`](https://js.xrpl.org/modules.html#deriveKeypair) | 現在は、モジュールの静的メソッドです。 | -| `deriveAddress()` | (削除済み - 注記カラムを参照) | 公開鍵からX Addressを取得するために `xrpl.decodeXAddress()` を使用し、必要であれば `xAddressToClassicAddress()` を使用してクラシックアドレスを取得します。 | -| `generateFaucetWallet()` | [`Client.fundWallet()`](https://js.xrpl.org/classes/Client.html#fundWallet) | `on_testnet`ブール変数は削除されました。ライブラリは、接続しているネットワークに適したDevnetまたはTestnetのfaucetを自動的に選択します。オプションで [`Wallet` インスタンス](https://js.xrpl.org/classes/Wallet.html) を提供すると、faucetは関連するアドレスに資金を供給/補充します。そうでなければ、メソッドは新しいWalletインスタンスを作成します。そうでなければ、このメソッドは新しいウォレットインスタンスを作成します。戻り値は現在、`{wallet: , balance: }という形のオブジェクトになります。 | -| `signPaymentChannelClaim()` | [`xrpl.signPaymentChannelClaim()`](https://js.xrpl.org/modules.html#signPaymentChannelClaim) | 現在は、モジュールの静的メソッドです。 | -| `verifyPaymentChannelClaim()` | [`xrpl.verifyPaymentChannelClaim()`](https://js.xrpl.org/modules.html#verifyPaymentChannelClaim) | 現在は、モジュールの静的メソッドです。 | -| `computeLedgerHash()` | [`xrpl.hashes.hashLedger()`](https://js.xrpl.org/modules.html#hashes) | | -| `xrpToDrops()` | [`xrpl.xrpToDrops()`](https://js.xrpl.org/modules.html#xrpToDrops) | 現在は、モジュールの静的メソッドです。 | -| `dropsToXrp()` | [`xrpl.dropsToXrp()`](https://js.xrpl.org/modules.html#dropsToXrp) | 現在は、モジュールの静的メソッドです。 | -| `iso8601ToRippleTime()` | [`xrpl.isoTimeToRippleTime()`](https://js.xrpl.org/modules.html#isoTimeToRippleTime) | 現在は、モジュールの静的メソッドです。 | -| `rippleTimeToISO8601()` | [`xrpl.rippleTimeToISOTime()`](https://js.xrpl.org/modules.html#rippleTimeToISOTime) | 現在は、モジュールの静的メソッドです。 また、新しいメソッド [`rippleTimeToUnixTime()`](https://js.xrpl.org/modules.html#rippleTimeToUnixTime) を使うと、UNIXエポック 1970-01-01 00:00:00 UTC からのミリ秒単位のUNIXスタイルのタイムスタンプを取得することができます。 | -| `txFlags.Universal.FullyCanonicalSig` | (削除済み - 注記カラムを参照) | [RequireFullyCanonicalSig amendment][]に伴い、不要となりました。 | -| `txFlags.Payment.NoRippleDirect` | `xrpl.PaymentFlags.tfNoDirectRipple` | | -| `txFlags.Payment.PartialPayment` | `xrpl.PaymentFlags.tfPartialPayment` | | -| `txFlags.Payment.LimitQuality` | `xrpl.PaymentFlags.tfLimitQuality` | | -| `txFlags.OfferCreate.Passive` | `xrpl.OfferCreateFlags.tfPassive` | | -| `txFlags.OfferCreate.ImmediateOrCancel` | `xrpl.OfferCreateFlags.tfImmediateOrCancel` | | -| `txFlags.OfferCreate.FillOrKill` | `xrpl.OfferCreateFlags.tfFillOrKill` | | -| `txFlags.OfferCreate.Sell` | `xrpl.OfferCreateFlags.tfSell` | | -| `accountSetFlags` | `xrpl.AccountSetAsfFlags` | モジュールレベルでEnumになりました。 | -| `schemaValidator` | (削除済み - 注記カラムを参照) | TypeScriptを使用して、ほとんどの型を検証することができます。 | -| `schemaValidate()` | (削除済み - 注記カラムを参照) | TypeScriptを使用して、ほとんどの型を検証することができます。 トランザクションオブジェクトの検証を行うために `xrpl.validate(transaction)` を呼び出すこともできます。 | -| `.on("ledger", callback)` | [`Client.on("ledgerClosed", callback)`](https://js.xrpl.org/classes/Client.html#on) | **注意:** ledger streamもサブスクライブする必要があります。例と詳細については、[イベントとサブスクリプション](#イベントおよびサブスクリプション)をご覧ください。 | -| `.on("error", callback)` | [`Client.on("error", callback)`](https://js.xrpl.org/classes/Client.html#on) | | -| `.on("connected", callback)` | [`Client.on("connected", callback)`](https://js.xrpl.org/classes/Client.html#on) | | -| `.on("disconnected", callback)` | [`Client.on("connected", callback)`](https://js.xrpl.org/classes/Client.html#on) | | +| RippleAPIインスタンスメソッド/プロパティ | xrpl.jsメソッド/プロパティ | 注記 | +| ---------------------------------------- | ------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `new ripple.RippleAPI({server: url})` | [`new xrpl.Client(url)`](https://js.xrpl.org/classes/Client.html#constructor) | 複数のサーバに接続するには`xrpl.BroadcastClient([url1, url2, ..])` を使用してください。 | +| `request(command, options)` | [`Client.request(options)`](https://js.xrpl.org/classes/Client.html#request) | WebSocket API との一貫性を保つために `command` フィールドを `options` オブジェクトに移動しました。1.x では、このメソッドの戻り値 (Promise がリゾルブしたとき) は `result` オブジェクトのみでした。現在は、[WebSocket レスポンスのフォーマット](http-websocket-apis/api-conventions/response-formatting.md) 全体が返されます。同様の値を得るには、戻り値の `result` フィールドを読み取ってください。 | +| `hasNextPage()` | [`xrpl.hasNextPage(response)`](https://js.xrpl.org/modules.html#hasNextPage) | こちらもご覧ください。 [`Client.requestNextPage()`](https://js.xrpl.org/classes/Client.html#requestNextPage) および [`Client.requestAll()`](https://js.xrpl.org/classes/Client.html#requestAll) | +| `requestNextPage()` | [`Client.requestNextPage()`](https://js.xrpl.org/classes/Client.html#requestNextPage) | | +| `computeBinaryTransactionHash()` | [`xrpl.hashes.hashTx()`](https://js.xrpl.org/modules.html#hashes) | | +| `classicAddressToXAddress()` | [`xrpl.classicAddressToXAddress()`](https://js.xrpl.org/modules.html#classicAddressToXAddress) | 現在は、モジュールの静的メソッドです。 | +| `xAddressToClassicAddress()` | [`xrpl.xAddressToClassicAddress()`](https://js.xrpl.org/modules.html#xAddressToClassicAddress) | 現在は、モジュールの静的メソッドです。 | +| `renameCounterpartyToIssuer(object)` | (削除済み - 注記カラムを参照) | xrpl.jsは常に`issuer`を既に使用しているので、今後は必要ありません。 | +| `formatBidsAndAsks()` | (削除済み - 注記カラムを参照) | No longer needed after changes to `getOrderbook()`. | +| `connect()` | [`Client.connect()`](https://js.xrpl.org/classes/Client.html#connect) | | +| `disconnect()` | [`Client.disconnect()`](https://js.xrpl.org/classes/Client.html#disconnect) | | +| `isConnected()` | [`Client.isConnected()`](https://js.xrpl.org/classes/Client.html#isConnected) | | +| `getServerInfo()` | (削除済み - 注記カラムを参照) | 代わりに [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) を使って [server_infoメソッド][] を呼び出してください。 | +| `getFee()` | (削除済み - 注記カラムを参照) | [トランザクションコスト][]を自動的に提供するには [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) を使ってください。または `Client.request({"command": "fee"})` を使って、現在のトランザクションコスト ( _XRPのdrops_ ) についての情報を調べることができます。 | +| `getLedgerVersion()` | [`Client.getLedgerIndex()`](https://js.xrpl.org/classes/Client.html#getLedgerIndex) | | +| `getTransaction()` | [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) | 代わりに [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) を使って [txメソッド][] を呼び出してください。**警告:** `getTransaction()` とは異なり、`tx` メソッドは [検証されていない最終結果](#バリデーション結果) を返すことがあります。トランザクションに対してアクションを起こす前に、レスポンスオブジェクトの中に `"validated": true` があるかどうかを必ず確認するようにしてください。 | +| `getTransactions()` | (削除済み - 注記カラムを参照) | 代わりに [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) を使って [account_txメソッド][] を呼び出してください。 | +| `getTrustlines()` | (削除済み - 注記カラムを参照) | 代わりに [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) を使って [account_linesメソッド][] を呼び出してください。**警告:** `getTrustlines()` とは異なり、`account_lines` は [検証されていない最終結果](#バリデーション結果) を返すことがあります。 | +| `getBalances()` | [`Client.getBalances()`](https://js.xrpl.org/classes/Client.html#getBalances) | | +| `getBalanceSheet()` | (削除済み - 注記カラムを参照) | 代わりに [`Client.getBalances()`](https://js.xrpl.org/classes/Client.html#getBalances) を使うか、 [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) を使って [gateway_balancesメソッド][] を呼び出してください。 | +| `getPaths()` | (削除済み - 注記カラムを参照) | 代わりに [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) を使って [ripple_path_findメソッド][] を呼び出してください。 | +| `getOrders()` | (削除済み - 注記カラムを参照) | 代わりに [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) を使って [account_offersメソッド][] を呼び出してください。 | +| `getOrderbook()` | [`Client.getOrderbook()`](https://js.xrpl.org/classes/Client.html#getOrderbook) | | +| `getSettings()` | (削除済み - 注記カラムを参照) | 代わりに [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) を使って [account_infoメソッド][] を呼び出してください。個々のフラグ設定のブール値を取得するには、 `Flags` フィールドで `xrpl.parseAccountRootFlags()` を使用します。**警告:** `getSettings()`とは異なり、`account_info` は [検証されていない最終結果](#バリデーション結果)を返すことがあります。 | +| `getAccountInfo(address, options)` | (削除済み - 注記カラムを参照) | 代わりに [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) を使って [account_infoメソッド][] を呼び出してください。**警告:** `getAccountInfo()` とは異なり、`account_info` は [検証されていない最終結果](#バリデーション結果) を返すことがあります。 | +| `getAccountObjects(address, options)` | (削除済み - 注記カラムを参照) | 代わりに [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) を使って [account_objectsメソッド][] を呼び出してください。**警告:** `getAccountObjects()` とは異なり、`account_objects` は [検証されていない最終結果](#バリデーション結果) を返すことがあります。 | +| `getPaymentChannel()` | (削除済み - 注記カラムを参照) | 代わりに [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) を使って [ledger_entryメソッド](http-websocket-apis/public-api-methods/ledger-methods/ledger_entry.md#get-paychannel-object) を呼び出してください。**警告:** `getPaymentChannel()`とは異なり、`ledger_entry` は [検証されていない最終結果](#バリデーション結果)を返す可能性があります。 | +| `getLedger()` | (削除済み - 注記カラムを参照) | `Client.request()`](https://js.xrpl.org/classes/Client.html#request) を使って、正確に [ledgerメソッド][] を呼び出してください。**渓谷:** `getLedger()`とは異なり、`ledger` は [検証されていない最終的なレジャー](#バリデーション結果)を返すことがあります。 | +| `parseAccountFlags()` | [`xrpl.parseAccountRootFlags()`](https://js.xrpl.org/modules.html#parseAccountRootFlags) | 現在は、モジュールの静的メソッドです。 | +| `prepareTransaction()` | [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) | 詳しくは、[トランザクション送信](#トランザクションの送信)をご覧ください。 | +| `preparePayment()` | (削除済み - 注記カラムを参照) | [Paymentトランザクション][] を構築し、代わりに [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) を使用します。 | +| `prepareTrustline()` | (削除済み - 注記カラムを参照) | [TrustSetトランザクション][]を構築し、代わりに [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) を使用します。 | +| `prepareOrder()` | (削除済み - 注記カラムを参照) | [OfferCreateトランザクション][] を構築し、代わりに [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) を使用します。 | +| `prepareOrderCancellation()` | (削除済み - 注記カラムを参照) | [OfferCancelトランザクション][]を構築し、[`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill)を代わりに使用することができます。 | +| `prepareSettings()` | (削除済み - 注記カラムを参照) | ほとんどの設定には、代わりに [AccountSetトランザクション][]を構築します。通常キーをローテート変更するには、[SetRegularKeyトランザクション][]を作成します。マルチシグの設定を追加または更新するには、代わりに[SignerListSetトランザクション][]を構築してください。これら3つの場合とも、トランザクションを準備するために [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) を使用します。 | +| `prepareEscrowCreation()` | (削除済み - 注記カラムを参照) | [EscrowCreateトランザクション][]を構築し、代わりに [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) を使用します。 | +| `prepareEscrowCancellation()` | (削除済み - 注記カラムを参照) | [EscrowCancelトランザクション][]を構築し、代わりに [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) を使用します。 | +| `prepareEscrowExecution()` | (削除済み - 注記カラムを参照) | [EscrowFinishトランザクション][] を構築し、代わりに [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) を使用します。 | +| `preparePaymentChannelCreate()` | (削除済み - 注記カラムを参照) | [PaymentChannelCreateトランザクション][] を構築し、代わりに [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) を使用します。 | +| `preparePaymentChannelClaim()` | (削除済み - 注記カラムを参照) | [PaymentChannelClaimトランザクション][] を構築し、代わりに [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) を使用します。 | +| `preparePaymentChannelFund()` | (削除済み - 注記カラムを参照) | [PaymentChannelFundトランザクション][] を構築し、代わりに [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) を使用します。 | +| `prepareCheckCreate()` | (削除済み - 注記カラムを参照) | [CheckCreateトランザクション][] を構築し、代わりに [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) を使用します。 | +| `prepareCheckCancel()` | (削除済み - 注記カラムを参照) | [CheckCancelトランザクション][] を構築し、代わりに [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) を使用します。 | +| `prepareCheckCash()` | (削除済み - 注記カラムを参照) | [CheckCashトランザクション][] を構築し、代わりに [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) を使用します。 | +| `prepareTicketCreate()` | (削除済み - 注記カラムを参照) | [TicketCreateトランザクション][] を構築し、代わりに [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) を使用します。 | +| `sign()` | [`Wallet.sign()`](https://js.xrpl.org/classes/Wallet.html#sign) | 詳しくは、[キーおよびウォレット](#キーおよびウォレット)をご覧ください。 | +| `combine()` | [`xrpl.multisign()`](https://js.xrpl.org/modules.html#multisign) | | +| `submit()` | [`Client.submit()`](https://js.xrpl.org/classes/Client.html#submit) | また、信頼性の高いトランザクション送信も可能になりました。詳細は、[トランザクション送信](#トランザクションの送信)をご覧ください。 | +| `generateXAddress()` | [`xrpl.Wallet.generate()`](https://js.xrpl.org/classes/Wallet.html#generate) | `xrpl.Wallet.generate()` で [`Wallet` インスタンス](https://js.xrpl.org/classes/Wallet.html) を作成し、ウォレットのインスタンスで `.getXAddress()` を呼び出して X-address を取得します。 詳しくは、[キーおよびウォレット](#キーおよびウォレット)をご覧ください。 | +| `generateAddress()` | [`xrpl.Wallet.generate()`](https://js.xrpl.org/classes/Wallet.html#generate) | [`Wallet`インスタンス](https://js.xrpl.org/classes/Wallet.html)を作成します。詳しくは、[キーおよびウォレット](#キーおよびウォレット)をご覧ください。 | +| `isValidAddress()` | [`xrpl.isValidAddress()`](https://js.xrpl.org/modules.html#isValidAddress) | 現在は、モジュールの静的メソッドです。 | +| `isValidSecret()` | [`xrpl.isValidSecret()`](https://js.xrpl.org/modules.html#isValidSecret) | 現在は、モジュールの静的メソッドです。 | +| `deriveKeypair()` | [`xrpl.deriveKeypair()`](https://js.xrpl.org/modules.html#deriveKeypair) | 現在は、モジュールの静的メソッドです。 | +| `deriveAddress()` | (削除済み - 注記カラムを参照) | 公開鍵からX Addressを取得するために `xrpl.decodeXAddress()` を使用し、必要であれば `xAddressToClassicAddress()` を使用してクラシックアドレスを取得します。 | +| `generateFaucetWallet()` | [`Client.fundWallet()`](https://js.xrpl.org/classes/Client.html#fundWallet) | `on_testnet`ブール変数は削除されました。ライブラリは、接続しているネットワークに適したDevnetまたはTestnetのfaucetを自動的に選択します。オプションで [`Wallet` インスタンス](https://js.xrpl.org/classes/Wallet.html) を提供すると、faucetは関連するアドレスに資金を供給/補充します。そうでなければ、メソッドは新しいWalletインスタンスを作成します。そうでなければ、このメソッドは新しいウォレットインスタンスを作成します。戻り値は現在、`{wallet: , balance: }という形のオブジェクトになります。 | +| `signPaymentChannelClaim()` | [`xrpl.signPaymentChannelClaim()`](https://js.xrpl.org/modules.html#signPaymentChannelClaim) | 現在は、モジュールの静的メソッドです。 | +| `verifyPaymentChannelClaim()` | [`xrpl.verifyPaymentChannelClaim()`](https://js.xrpl.org/modules.html#verifyPaymentChannelClaim) | 現在は、モジュールの静的メソッドです。 | +| `computeLedgerHash()` | [`xrpl.hashes.hashLedger()`](https://js.xrpl.org/modules.html#hashes) | | +| `xrpToDrops()` | [`xrpl.xrpToDrops()`](https://js.xrpl.org/modules.html#xrpToDrops) | 現在は、モジュールの静的メソッドです。 | +| `dropsToXrp()` | [`xrpl.dropsToXrp()`](https://js.xrpl.org/modules.html#dropsToXrp) | 現在は、モジュールの静的メソッドです。 | +| `iso8601ToRippleTime()` | [`xrpl.isoTimeToRippleTime()`](https://js.xrpl.org/modules.html#isoTimeToRippleTime) | 現在は、モジュールの静的メソッドです。 | +| `rippleTimeToISO8601()` | [`xrpl.rippleTimeToISOTime()`](https://js.xrpl.org/modules.html#rippleTimeToISOTime) | 現在は、モジュールの静的メソッドです。 また、新しいメソッド [`rippleTimeToUnixTime()`](https://js.xrpl.org/modules.html#rippleTimeToUnixTime) を使うと、UNIXエポック 1970-01-01 00:00:00 UTC からのミリ秒単位のUNIXスタイルのタイムスタンプを取得することができます。 | +| `txFlags.Universal.FullyCanonicalSig` | (削除済み - 注記カラムを参照) | [RequireFullyCanonicalSig amendment][]に伴い、不要となりました。 | +| `txFlags.Payment.NoRippleDirect` | `xrpl.PaymentFlags.tfNoDirectRipple` | | +| `txFlags.Payment.PartialPayment` | `xrpl.PaymentFlags.tfPartialPayment` | | +| `txFlags.Payment.LimitQuality` | `xrpl.PaymentFlags.tfLimitQuality` | | +| `txFlags.OfferCreate.Passive` | `xrpl.OfferCreateFlags.tfPassive` | | +| `txFlags.OfferCreate.ImmediateOrCancel` | `xrpl.OfferCreateFlags.tfImmediateOrCancel` | | +| `txFlags.OfferCreate.FillOrKill` | `xrpl.OfferCreateFlags.tfFillOrKill` | | +| `txFlags.OfferCreate.Sell` | `xrpl.OfferCreateFlags.tfSell` | | +| `accountSetFlags` | `xrpl.AccountSetAsfFlags` | モジュールレベルでEnumになりました。 | +| `schemaValidator` | (削除済み - 注記カラムを参照) | TypeScriptを使用して、ほとんどの型を検証することができます。 | +| `schemaValidate()` | (削除済み - 注記カラムを参照) | TypeScriptを使用して、ほとんどの型を検証することができます。 トランザクションオブジェクトの検証を行うために `xrpl.validate(transaction)` を呼び出すこともできます。 | +| `.on("ledger", callback)` | [`Client.on("ledgerClosed", callback)`](https://js.xrpl.org/classes/Client.html#on) | **注意:** ledger streamもサブスクライブする必要があります。例と詳細については、[イベントとサブスクリプション](#イベントおよびサブスクリプション)をご覧ください。 | +| `.on("error", callback)` | [`Client.on("error", callback)`](https://js.xrpl.org/classes/Client.html#on) | | +| `.on("connected", callback)` | [`Client.on("connected", callback)`](https://js.xrpl.org/classes/Client.html#on) | | +| `.on("disconnected", callback)` | [`Client.on("connected", callback)`](https://js.xrpl.org/classes/Client.html#on) | | {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/tutorials/how-tos/index.md b/@l10n/ja/docs/tutorials/how-tos/index.md index 91ed4c55ab..10fa87bb52 100644 --- a/@l10n/ja/docs/tutorials/how-tos/index.md +++ b/@l10n/ja/docs/tutorials/how-tos/index.md @@ -5,9 +5,9 @@ top_nav_grouping: カテゴリ metadata: indexPage: true --- + # タスク XRP Ledgerの代表的なタスクです。 - {% child-pages /%} diff --git a/@l10n/ja/docs/tutorials/how-tos/manage-account-settings/assign-a-regular-key-pair.md b/@l10n/ja/docs/tutorials/how-tos/manage-account-settings/assign-a-regular-key-pair.md index 21a40785e4..2d4e752f72 100644 --- a/@l10n/ja/docs/tutorials/how-tos/manage-account-settings/assign-a-regular-key-pair.md +++ b/@l10n/ja/docs/tutorials/how-tos/manage-account-settings/assign-a-regular-key-pair.md @@ -2,11 +2,12 @@ html: assign-a-regular-key-pair.html parent: manage-account-settings.html seo: - description: アカウントからトランザクションに署名できるように第2キーペアを承認します。このキーペアは後から変更や削除が可能です。 + description: アカウントからトランザクションに署名できるように第2キーペアを承認します。このキーペアは後から変更や削除が可能です。 labels: - セキュリティ - アカウント --- + # レギュラーキーペアの割り当て XRP Ledgerでは、アカウントはその後のトランザクションには _レギュラーキーペア_ と呼ばれるセカンダリキーペアで署名することができます。レギュラーキーペアの秘密鍵が漏えいした場合は、秘密鍵を削除または交換できます。その際に、アカウントの秘密鍵以外の設定を変更したり、他のアカウントとの関係を再設定する必要はありません。レギュラーキーペアを積極的にローテーションすることも可能です。(アカウントのアドレスに固有に関連付けられているアカウントのマスターキーペアでは、このような操作は実行できません。) @@ -20,7 +21,6 @@ XRP Ledgerでは、アカウントはその後のトランザクションには 3. [レギュラーキーペアの検証](#3-レギュラーキーペアの検証) 4. [次のステップ](#4-次のステップ) - ## 1. キーペアの生成 [wallet_proposeメソッド][]を使用して、アカウントにレギュラーキーペアとして割り当てるキーペアを生成します。 @@ -32,31 +32,36 @@ XRP Ledgerでは、アカウントはその後のトランザクションには {% tabs %} {% tab label="WebSocket" %} + ```json { - "command":"wallet_propose" + "command": "wallet_propose" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method":"wallet_propose" + "method": "wallet_propose" } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh #Syntax: wallet_propose rippled wallet_propose ``` + {% /tab %} {% /tabs %} - ### レスポンスのフォーマット 処理が成功したレスポンスの例: @@ -64,24 +69,27 @@ rippled wallet_propose {% tabs %} {% tab label="WebSocket" %} + ```json { - "result":{ - "account_id":"rsprUqu6BHAffAeG4HpSdjBNvnA6gdnZV7", - "key_type":"secp256k1", - "master_key":"KNEW BENT LYNN LED GAD BEN KENT SHAM HOBO RINK WALT ALLY", - "master_seed":"sh8i92YRnEjJy3fpFkL8txQSCVo79", - "master_seed_hex":"966C0F68643EFBA50D58D191D4CA8AA7", - "public_key":"aBRNH5wUurfhZcoyR6nRwDSa95gMBkovBJ8V4cp1C1pM28H7EPL1", - "public_key_hex":"03AEEFE1E8ED4BBC009DE996AC03A8C6B5713B1554794056C66E5B8D1753C7DD0E" - }, - "status":"success", - "type":"response" + "result": { + "account_id": "rsprUqu6BHAffAeG4HpSdjBNvnA6gdnZV7", + "key_type": "secp256k1", + "master_key": "KNEW BENT LYNN LED GAD BEN KENT SHAM HOBO RINK WALT ALLY", + "master_seed": "sh8i92YRnEjJy3fpFkL8txQSCVo79", + "master_seed_hex": "966C0F68643EFBA50D58D191D4CA8AA7", + "public_key": "aBRNH5wUurfhZcoyR6nRwDSa95gMBkovBJ8V4cp1C1pM28H7EPL1", + "public_key_hex": "03AEEFE1E8ED4BBC009DE996AC03A8C6B5713B1554794056C66E5B8D1753C7DD0E" + }, + "status": "success", + "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { "result":{ @@ -96,30 +104,32 @@ rippled wallet_propose } } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```json { - "result" :{ - "account_id" :"rsprUqu6BHAffAeG4HpSdjBNvnA6gdnZV7", - "key_type" :"secp256k1", - "master_key" :"KNEW BENT LYNN LED GAD BEN KENT SHAM HOBO RINK WALT ALLY", - "master_seed" :"sh8i92YRnEjJy3fpFkL8txQSCVo79", - "master_seed_hex" :"966C0F68643EFBA50D58D191D4CA8AA7", - "public_key" :"aBRNH5wUurfhZcoyR6nRwDSa95gMBkovBJ8V4cp1C1pM28H7EPL1", - "public_key_hex" :"03AEEFE1E8ED4BBC009DE996AC03A8C6B5713B1554794056C66E5B8D1753C7DD0E", - "status" :"success" + "result": { + "account_id": "rsprUqu6BHAffAeG4HpSdjBNvnA6gdnZV7", + "key_type": "secp256k1", + "master_key": "KNEW BENT LYNN LED GAD BEN KENT SHAM HOBO RINK WALT ALLY", + "master_seed": "sh8i92YRnEjJy3fpFkL8txQSCVo79", + "master_seed_hex": "966C0F68643EFBA50D58D191D4CA8AA7", + "public_key": "aBRNH5wUurfhZcoyR6nRwDSa95gMBkovBJ8V4cp1C1pM28H7EPL1", + "public_key_hex": "03AEEFE1E8ED4BBC009DE996AC03A8C6B5713B1554794056C66E5B8D1753C7DD0E", + "status": "success" } } ``` + {% /tab %} {% /tabs %} 次のステップでは、このレスポンスの`account_id`を使用してキーペアをレギュラーキーペアとしてアカウントに割り当てます。また、`master_seed`値を安全な場所に保管してください。(この値以外は特に覚えておく必要はありません。) - ## 2. 生成したキーペアをレギュラーキーペアとしてアカウントに割り当てる [SetRegularKeyトランザクション][]を使用して、ステップ1で生成したキーペアをレギュラーキーペアとしてアカウントに割り当てます。 @@ -128,20 +138,17 @@ SetRegularKeyトランザクションでレギュラーキーペアを初めて それ以降のSetRegularKeyトランザクションの送信時には、既存のレギュラー秘密鍵で署名し、レギュラー秘密鍵自体を置換または[削除](change-or-remove-a-regular-key-pair.md)できます。ネットワーク上でレギュラー秘密鍵を送信してはならないことに注意してください。 - ### トランザクションの署名 {% partial file="/@l10n/ja/docs/_snippets/tutorial-sign-step.md" /%} - リクエストフィールドに以下の値を指定します。 -| リクエストフィールド | 値 | -|:--------------|:-------------------------------------------------------------| -| `Account` | アカウントのアドレス。 | -| `RegularKey` | ステップ1で生成された`account_id`。 | -| `secret` | アカウントの`master_key`、`master_seed`、または`master_seed_hex`(マスター秘密鍵)。| - +| リクエストフィールド | 値 | +| :------------------- | :----------------------------------------------------------------------------------- | +| `Account` | アカウントのアドレス。 | +| `RegularKey` | ステップ1で生成された`account_id`。 | +| `secret` | アカウントの`master_key`、`master_seed`、または`master_seed_hex`(マスター秘密鍵)。 | #### リクエストのフォーマット @@ -150,47 +157,52 @@ SetRegularKeyトランザクションでレギュラーキーペアを初めて {% tabs %} {% tab label="WebSocket" %} + ```json { - "command":"sign", - "tx_json":{ - "TransactionType":"SetRegularKey", - "Account":"rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93", - "RegularKey":"rsprUqu6BHAffAeG4HpSdjBNvnA6gdnZV7" - }, - "secret":"ssCATR7CBvn4GLd1UuU2bqqQffHki" + "command": "sign", + "tx_json": { + "TransactionType": "SetRegularKey", + "Account": "rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93", + "RegularKey": "rsprUqu6BHAffAeG4HpSdjBNvnA6gdnZV7" + }, + "secret": "ssCATR7CBvn4GLd1UuU2bqqQffHki" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method":"sign", - "params":[ - { - "tx_json":{ - "TransactionType":"SetRegularKey", - "Account":"rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93", - "RegularKey":"rsprUqu6BHAffAeG4HpSdjBNvnA6gdnZV7" - }, - "secret":"ssCATR7CBvn4GLd1UuU2bqqQffHki" - } + "method": "sign", + "params": [ + { + "tx_json": { + "TransactionType": "SetRegularKey", + "Account": "rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93", + "RegularKey": "rsprUqu6BHAffAeG4HpSdjBNvnA6gdnZV7" + }, + "secret": "ssCATR7CBvn4GLd1UuU2bqqQffHki" + } ] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh #Syntax: sign secret tx_json rippled sign ssCATR7CBvn4GLd1UuU2bqqQffHki '{"TransactionType":"SetRegularKey", "Account":"rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93", "RegularKey":"rsprUqu6BHAffAeG4HpSdjBNvnA6gdnZV7"}' ``` + {% /tab %} {% /tabs %} - #### レスポンスのフォーマット 処理が成功したレスポンスの例: @@ -198,70 +210,76 @@ rippled sign ssCATR7CBvn4GLd1UuU2bqqQffHki '{"TransactionType":"SetRegularKey", {% tabs %} {% tab label="WebSocket" %} + ```json { - "result":{ - "tx_blob":"1200052280000000240000000468400000000000000A73210384CA3C528F10C75F26E0917F001338BD3C9AA1A39B9FBD583DFFFD96CF2E2D7A7446304402204BCD5663F3A2BA02D2CE374439096EC6D27273522CD6E6E0BDBFB518730EAAE402200ECD02D8D2525D6FA4642613E71E395ECCEA01C42C35A668BF092A00EB649C268114830923439D307E642CED308FD91EF701A7BAA74788141620D685FB08D81A70D0B668749CF2E130EA7540", - "tx_json":{ - "Account":"rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93", - "Fee":"10", - "Flags":2147483648, - "RegularKey":"rsprUqu6BHAffAeG4HpSdjBNvnA6gdnZV7", - "Sequence":4, - "SigningPubKey":"0384CA3C528F10C75F26E0917F001338BD3C9AA1A39B9FBD583DFFFD96CF2E2D7A", - "TransactionType":"SetRegularKey", - "TxnSignature":"304402204BCD5663F3A2BA02D2CE374439096EC6D27273522CD6E6E0BDBFB518730EAAE402200ECD02D8D2525D6FA4642613E71E395ECCEA01C42C35A668BF092A00EB649C26", - "hash":"AB73BBF7C99061678B59FB48D72CA0F5FC6DD2815B6736C6E9EB94439EC236CE" - } - }, - "status":"success", - "type":"response" + "result": { + "tx_blob": "1200052280000000240000000468400000000000000A73210384CA3C528F10C75F26E0917F001338BD3C9AA1A39B9FBD583DFFFD96CF2E2D7A7446304402204BCD5663F3A2BA02D2CE374439096EC6D27273522CD6E6E0BDBFB518730EAAE402200ECD02D8D2525D6FA4642613E71E395ECCEA01C42C35A668BF092A00EB649C268114830923439D307E642CED308FD91EF701A7BAA74788141620D685FB08D81A70D0B668749CF2E130EA7540", + "tx_json": { + "Account": "rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93", + "Fee": "10", + "Flags": 2147483648, + "RegularKey": "rsprUqu6BHAffAeG4HpSdjBNvnA6gdnZV7", + "Sequence": 4, + "SigningPubKey": "0384CA3C528F10C75F26E0917F001338BD3C9AA1A39B9FBD583DFFFD96CF2E2D7A", + "TransactionType": "SetRegularKey", + "TxnSignature": "304402204BCD5663F3A2BA02D2CE374439096EC6D27273522CD6E6E0BDBFB518730EAAE402200ECD02D8D2525D6FA4642613E71E395ECCEA01C42C35A668BF092A00EB649C26", + "hash": "AB73BBF7C99061678B59FB48D72CA0F5FC6DD2815B6736C6E9EB94439EC236CE" + } + }, + "status": "success", + "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} -```json -{ - "result":{ - "status":"success", - "tx_blob":"1200052280000000240000000768400000000000000A73210384CA3C528F10C75F26E0917F001338BD3C9AA1A39B9FBD583DFFFD96CF2E2D7A7446304402201453CA3D4D17F0EE3828B9E3D6ACF65327F5D4FC2BA30953CACF6CBCB4145E3502202F2154BED1D7462CAC1E3DBB31864E48C3BA0B3133ACA5E37EC54F0D0C339E2D8114830923439D307E642CED308FD91EF701A7BAA74788141620D685FB08D81A70D0B668749CF2E130EA7540", - "tx_json":{ - "Account":"rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93", - "Fee":"10", - "Flags":2147483648, - "RegularKey":"rsprUqu6BHAffAeG4HpSdjBNvnA6gdnZV7", - "Sequence":4, - "SigningPubKey":"0384CA3C528F10C75F26E0917F001338BD3C9AA1A39B9FBD583DFFFD96CF2E2D7A", - "TransactionType":"SetRegularKey", - "TxnSignature":"304402201453CA3D4D17F0EE3828B9E3D6ACF65327F5D4FC2BA30953CACF6CBCB4145E3502202F2154BED1D7462CAC1E3DBB31864E48C3BA0B3133ACA5E37EC54F0D0C339E2D", - "hash":"AB73BBF7C99061678B59FB48D72CA0F5FC6DD2815B6736C6E9EB94439EC236CE" - } - } -} -``` -{% /tab %} -{% tab label="コマンドライン" %} ```json { - "result" :{ - "status" :"success", - "tx_blob" :"1200052280000000240000000768400000000000000A73210384CA3C528F10C75F26E0917F001338BD3C9AA1A39B9FBD583DFFFD96CF2E2D7A7446304402201453CA3D4D17F0EE3828B9E3D6ACF65327F5D4FC2BA30953CACF6CBCB4145E3502202F2154BED1D7462CAC1E3DBB31864E48C3BA0B3133ACA5E37EC54F0D0C339E2D8114830923439D307E642CED308FD91EF701A7BAA74788141620D685FB08D81A70D0B668749CF2E130EA7540", - "tx_json" :{ - "Account" :"rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93", - "Fee" :"10", - "Flags" :2147483648, - "RegularKey" :"rsprUqu6BHAffAeG4HpSdjBNvnA6gdnZV7", - "Sequence" :4, - "SigningPubKey" :"0384CA3C528F10C75F26E0917F001338BD3C9AA1A39B9FBD583DFFFD96CF2E2D7A", - "TransactionType" :"SetRegularKey", - "TxnSignature" :"304402201453CA3D4D17F0EE3828B9E3D6ACF65327F5D4FC2BA30953CACF6CBCB4145E3502202F2154BED1D7462CAC1E3DBB31864E48C3BA0B3133ACA5E37EC54F0D0C339E2D", - "hash" :"AB73BBF7C99061678B59FB48D72CA0F5FC6DD2815B6736C6E9EB94439EC236CE" - } + "result": { + "status": "success", + "tx_blob": "1200052280000000240000000768400000000000000A73210384CA3C528F10C75F26E0917F001338BD3C9AA1A39B9FBD583DFFFD96CF2E2D7A7446304402201453CA3D4D17F0EE3828B9E3D6ACF65327F5D4FC2BA30953CACF6CBCB4145E3502202F2154BED1D7462CAC1E3DBB31864E48C3BA0B3133ACA5E37EC54F0D0C339E2D8114830923439D307E642CED308FD91EF701A7BAA74788141620D685FB08D81A70D0B668749CF2E130EA7540", + "tx_json": { + "Account": "rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93", + "Fee": "10", + "Flags": 2147483648, + "RegularKey": "rsprUqu6BHAffAeG4HpSdjBNvnA6gdnZV7", + "Sequence": 4, + "SigningPubKey": "0384CA3C528F10C75F26E0917F001338BD3C9AA1A39B9FBD583DFFFD96CF2E2D7A", + "TransactionType": "SetRegularKey", + "TxnSignature": "304402201453CA3D4D17F0EE3828B9E3D6ACF65327F5D4FC2BA30953CACF6CBCB4145E3502202F2154BED1D7462CAC1E3DBB31864E48C3BA0B3133ACA5E37EC54F0D0C339E2D", + "hash": "AB73BBF7C99061678B59FB48D72CA0F5FC6DD2815B6736C6E9EB94439EC236CE" + } } } ``` + +{% /tab %} + +{% tab label="コマンドライン" %} + +```json +{ + "result": { + "status": "success", + "tx_blob": "1200052280000000240000000768400000000000000A73210384CA3C528F10C75F26E0917F001338BD3C9AA1A39B9FBD583DFFFD96CF2E2D7A7446304402201453CA3D4D17F0EE3828B9E3D6ACF65327F5D4FC2BA30953CACF6CBCB4145E3502202F2154BED1D7462CAC1E3DBB31864E48C3BA0B3133ACA5E37EC54F0D0C339E2D8114830923439D307E642CED308FD91EF701A7BAA74788141620D685FB08D81A70D0B668749CF2E130EA7540", + "tx_json": { + "Account": "rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93", + "Fee": "10", + "Flags": 2147483648, + "RegularKey": "rsprUqu6BHAffAeG4HpSdjBNvnA6gdnZV7", + "Sequence": 4, + "SigningPubKey": "0384CA3C528F10C75F26E0917F001338BD3C9AA1A39B9FBD583DFFFD96CF2E2D7A", + "TransactionType": "SetRegularKey", + "TxnSignature": "304402201453CA3D4D17F0EE3828B9E3D6ACF65327F5D4FC2BA30953CACF6CBCB4145E3502202F2154BED1D7462CAC1E3DBB31864E48C3BA0B3133ACA5E37EC54F0D0C339E2D", + "hash": "AB73BBF7C99061678B59FB48D72CA0F5FC6DD2815B6736C6E9EB94439EC236CE" + } + } +} +``` + {% /tab %} {% /tabs %} @@ -270,7 +288,6 @@ rippled sign ssCATR7CBvn4GLd1UuU2bqqQffHki '{"TransactionType":"SetRegularKey", 次に`submit`コマンドを使用して、トランザクションブロブ(`tx_blob`または`signedTransaction`)をネットワークに送信します。 - ### トランザクションの送信 オフライン署名レスポンスの`signedTransaction`値、または`sign`コマンドレスポンスの`tx_blob`値をとり、[submitメソッド][]を使用して`tx_blob`として値として送信します。 @@ -282,37 +299,42 @@ rippled sign ssCATR7CBvn4GLd1UuU2bqqQffHki '{"TransactionType":"SetRegularKey", {% tabs %} {% tab label="WebSocket" %} + ```json { - "command":"submit", - "tx_blob":"1200052280000000240000000468400000000000000A73210384CA3C528F10C75F26E0917F001338BD3C9AA1A39B9FBD583DFFFD96CF2E2D7A7446304402204BCD5663F3A2BA02D2CE374439096EC6D27273522CD6E6E0BDBFB518730EAAE402200ECD02D8D2525D6FA4642613E71E395ECCEA01C42C35A668BF092A00EB649C268114830923439D307E642CED308FD91EF701A7BAA74788141620D685FB08D81A70D0B668749CF2E130EA7540" + "command": "submit", + "tx_blob": "1200052280000000240000000468400000000000000A73210384CA3C528F10C75F26E0917F001338BD3C9AA1A39B9FBD583DFFFD96CF2E2D7A7446304402204BCD5663F3A2BA02D2CE374439096EC6D27273522CD6E6E0BDBFB518730EAAE402200ECD02D8D2525D6FA4642613E71E395ECCEA01C42C35A668BF092A00EB649C268114830923439D307E642CED308FD91EF701A7BAA74788141620D685FB08D81A70D0B668749CF2E130EA7540" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method":"submit", - "params":[ - { - "tx_blob":"1200052280000000240000000468400000000000000A73210384CA3C528F10C75F26E0917F001338BD3C9AA1A39B9FBD583DFFFD96CF2E2D7A7446304402204BCD5663F3A2BA02D2CE374439096EC6D27273522CD6E6E0BDBFB518730EAAE402200ECD02D8D2525D6FA4642613E71E395ECCEA01C42C35A668BF092A00EB649C268114830923439D307E642CED308FD91EF701A7BAA74788141620D685FB08D81A70D0B668749CF2E130EA7540" - } + "method": "submit", + "params": [ + { + "tx_blob": "1200052280000000240000000468400000000000000A73210384CA3C528F10C75F26E0917F001338BD3C9AA1A39B9FBD583DFFFD96CF2E2D7A7446304402204BCD5663F3A2BA02D2CE374439096EC6D27273522CD6E6E0BDBFB518730EAAE402200ECD02D8D2525D6FA4642613E71E395ECCEA01C42C35A668BF092A00EB649C268114830923439D307E642CED308FD91EF701A7BAA74788141620D685FB08D81A70D0B668749CF2E130EA7540" + } ] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh #Syntax: submit tx_blob rippled submit 1200052280000000240000000468400000000000000A73210384CA3C528F10C75F26E0917F001338BD3C9AA1A39B9FBD583DFFFD96CF2E2D7A7446304402204BCD5663F3A2BA02D2CE374439096EC6D27273522CD6E6E0BDBFB518730EAAE402200ECD02D8D2525D6FA4642613E71E395ECCEA01C42C35A668BF092A00EB649C268114830923439D307E642CED308FD91EF701A7BAA74788141620D685FB08D81A70D0B668749CF2E130EA7540 ``` + {% /tab %} {% /tabs %} - #### レスポンスのフォーマット 処理が成功したレスポンスの例: @@ -320,154 +342,159 @@ rippled submit 1200052280000000240000000468400000000000000A73210384CA3C528F10C75 {% tabs %} {% tab label="WebSocket" %} + ```json { - "result":{ - "engine_result":"tesSUCCESS", - "engine_result_code":0, - "engine_result_message":"The transaction was applied.Only final in a validated ledger.", - "tx_blob":"1200052280000000240000000468400000000000000A73210384CA3C528F10C75F26E0917F001338BD3C9AA1A39B9FBD583DFFFD96CF2E2D7A7446304402204BCD5663F3A2BA02D2CE374439096EC6D27273522CD6E6E0BDBFB518730EAAE402200ECD02D8D2525D6FA4642613E71E395ECCEA01C42C35A668BF092A00EB649C268114830923439D307E642CED308FD91EF701A7BAA74788141620D685FB08D81A70D0B668749CF2E130EA7540", - "tx_json":{ - "Account":"rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93", - "Fee":"10", - "Flags":2147483648, - "RegularKey":"rsprUqu6BHAffAeG4HpSdjBNvnA6gdnZV7", - "Sequence":4, - "SigningPubKey":"0384CA3C528F10C75F26E0917F001338BD3C9AA1A39B9FBD583DFFFD96CF2E2D7A", - "TransactionType":"SetRegularKey", - "TxnSignature":"304402204BCD5663F3A2BA02D2CE374439096EC6D27273522CD6E6E0BDBFB518730EAAE402200ECD02D8D2525D6FA4642613E71E395ECCEA01C42C35A668BF092A00EB649C26", - "hash":"AB73BBF7C99061678B59FB48D72CA0F5FC6DD2815B6736C6E9EB94439EC236CE" - } - }, - "status":"success", - "type":"response" + "result": { + "engine_result": "tesSUCCESS", + "engine_result_code": 0, + "engine_result_message": "The transaction was applied.Only final in a validated ledger.", + "tx_blob": "1200052280000000240000000468400000000000000A73210384CA3C528F10C75F26E0917F001338BD3C9AA1A39B9FBD583DFFFD96CF2E2D7A7446304402204BCD5663F3A2BA02D2CE374439096EC6D27273522CD6E6E0BDBFB518730EAAE402200ECD02D8D2525D6FA4642613E71E395ECCEA01C42C35A668BF092A00EB649C268114830923439D307E642CED308FD91EF701A7BAA74788141620D685FB08D81A70D0B668749CF2E130EA7540", + "tx_json": { + "Account": "rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93", + "Fee": "10", + "Flags": 2147483648, + "RegularKey": "rsprUqu6BHAffAeG4HpSdjBNvnA6gdnZV7", + "Sequence": 4, + "SigningPubKey": "0384CA3C528F10C75F26E0917F001338BD3C9AA1A39B9FBD583DFFFD96CF2E2D7A", + "TransactionType": "SetRegularKey", + "TxnSignature": "304402204BCD5663F3A2BA02D2CE374439096EC6D27273522CD6E6E0BDBFB518730EAAE402200ECD02D8D2525D6FA4642613E71E395ECCEA01C42C35A668BF092A00EB649C26", + "hash": "AB73BBF7C99061678B59FB48D72CA0F5FC6DD2815B6736C6E9EB94439EC236CE" + } + }, + "status": "success", + "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} -```json -{ - "result":{ - "engine_result":"tesSUCCESS", - "engine_result_code":0, - "engine_result_message":"The transaction was applied.Only final in a validated ledger.", - "status":"success", - "tx_blob":"1200052280000000240000000468400000000000000A73210384CA3C528F10C75F26E0917F001338BD3C9AA1A39B9FBD583DFFFD96CF2E2D7A7446304402204BCD5663F3A2BA02D2CE374439096EC6D27273522CD6E6E0BDBFB518730EAAE402200ECD02D8D2525D6FA4642613E71E395ECCEA01C42C35A668BF092A00EB649C268114830923439D307E642CED308FD91EF701A7BAA74788141620D685FB08D81A70D0B668749CF2E130EA7540", - "tx_json":{ - "Account":"rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93", - "Fee":"10", - "Flags":2147483648, - "RegularKey":"rsprUqu6BHAffAeG4HpSdjBNvnA6gdnZV7", - "Sequence":4, - "SigningPubKey":"0384CA3C528F10C75F26E0917F001338BD3C9AA1A39B9FBD583DFFFD96CF2E2D7A", - "TransactionType":"SetRegularKey", - "TxnSignature":"304402204BCD5663F3A2BA02D2CE374439096EC6D27273522CD6E6E0BDBFB518730EAAE402200ECD02D8D2525D6FA4642613E71E395ECCEA01C42C35A668BF092A00EB649C26", - "hash":"AB73BBF7C99061678B59FB48D72CA0F5FC6DD2815B6736C6E9EB94439EC236CE" - } - } -} -``` -{% /tab %} -{% tab label="コマンドライン" %} ```json { - "result" :{ - "engine_result" :"tesSUCCESS", - "engine_result_code" :0, - "engine_result_message" :"The transaction was applied.Only final in a validated ledger.", - "status" :"success", - "tx_blob" :"1200052280000000240000000468400000000000000A73210384CA3C528F10C75F26E0917F001338BD3C9AA1A39B9FBD583DFFFD96CF2E2D7A7446304402204BCD5663F3A2BA02D2CE374439096EC6D27273522CD6E6E0BDBFB518730EAAE402200ECD02D8D2525D6FA4642613E71E395ECCEA01C42C35A668BF092A00EB649C268114830923439D307E642CED308FD91EF701A7BAA74788141620D685FB08D81A70D0B668749CF2E130EA7540", - "tx_json" :{ - "Account" :"rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93", - "Fee" :"10", - "Flags" :2147483648, - "RegularKey" :"rsprUqu6BHAffAeG4HpSdjBNvnA6gdnZV7", - "Sequence" :4, - "SigningPubKey" :"0384CA3C528F10C75F26E0917F001338BD3C9AA1A39B9FBD583DFFFD96CF2E2D7A", - "TransactionType" :"SetRegularKey", - "TxnSignature" :"304402204BCD5663F3A2BA02D2CE374439096EC6D27273522CD6E6E0BDBFB518730EAAE402200ECD02D8D2525D6FA4642613E71E395ECCEA01C42C35A668BF092A00EB649C26", - "hash" :"AB73BBF7C99061678B59FB48D72CA0F5FC6DD2815B6736C6E9EB94439EC236CE" - } + "result": { + "engine_result": "tesSUCCESS", + "engine_result_code": 0, + "engine_result_message": "The transaction was applied.Only final in a validated ledger.", + "status": "success", + "tx_blob": "1200052280000000240000000468400000000000000A73210384CA3C528F10C75F26E0917F001338BD3C9AA1A39B9FBD583DFFFD96CF2E2D7A7446304402204BCD5663F3A2BA02D2CE374439096EC6D27273522CD6E6E0BDBFB518730EAAE402200ECD02D8D2525D6FA4642613E71E395ECCEA01C42C35A668BF092A00EB649C268114830923439D307E642CED308FD91EF701A7BAA74788141620D685FB08D81A70D0B668749CF2E130EA7540", + "tx_json": { + "Account": "rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93", + "Fee": "10", + "Flags": 2147483648, + "RegularKey": "rsprUqu6BHAffAeG4HpSdjBNvnA6gdnZV7", + "Sequence": 4, + "SigningPubKey": "0384CA3C528F10C75F26E0917F001338BD3C9AA1A39B9FBD583DFFFD96CF2E2D7A", + "TransactionType": "SetRegularKey", + "TxnSignature": "304402204BCD5663F3A2BA02D2CE374439096EC6D27273522CD6E6E0BDBFB518730EAAE402200ECD02D8D2525D6FA4642613E71E395ECCEA01C42C35A668BF092A00EB649C26", + "hash": "AB73BBF7C99061678B59FB48D72CA0F5FC6DD2815B6736C6E9EB94439EC236CE" + } } } ``` + +{% /tab %} + +{% tab label="コマンドライン" %} + +```json +{ + "result": { + "engine_result": "tesSUCCESS", + "engine_result_code": 0, + "engine_result_message": "The transaction was applied.Only final in a validated ledger.", + "status": "success", + "tx_blob": "1200052280000000240000000468400000000000000A73210384CA3C528F10C75F26E0917F001338BD3C9AA1A39B9FBD583DFFFD96CF2E2D7A7446304402204BCD5663F3A2BA02D2CE374439096EC6D27273522CD6E6E0BDBFB518730EAAE402200ECD02D8D2525D6FA4642613E71E395ECCEA01C42C35A668BF092A00EB649C268114830923439D307E642CED308FD91EF701A7BAA74788141620D685FB08D81A70D0B668749CF2E130EA7540", + "tx_json": { + "Account": "rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93", + "Fee": "10", + "Flags": 2147483648, + "RegularKey": "rsprUqu6BHAffAeG4HpSdjBNvnA6gdnZV7", + "Sequence": 4, + "SigningPubKey": "0384CA3C528F10C75F26E0917F001338BD3C9AA1A39B9FBD583DFFFD96CF2E2D7A", + "TransactionType": "SetRegularKey", + "TxnSignature": "304402204BCD5663F3A2BA02D2CE374439096EC6D27273522CD6E6E0BDBFB518730EAAE402200ECD02D8D2525D6FA4642613E71E395ECCEA01C42C35A668BF092A00EB649C26", + "hash": "AB73BBF7C99061678B59FB48D72CA0F5FC6DD2815B6736C6E9EB94439EC236CE" + } + } +} +``` + {% /tab %} {% /tabs %} - レスポンスに含まれるトランザクションの`hash`は、[トランザクションの最終結果を検索する](../../../references/http-websocket-apis/public-api-methods/transaction-methods/tx.md)ときに使用できることに注意してください。 - ## 3. レギュラーキーペアの検証 アカウントにレギュラーキーペアが正しく設定されていることを検証するため、ステップ2でアカウントに割り当てたレギュラー秘密鍵で[AccountSetトランザクション][]に署名し、アカウントからこのトランザクションを送信します。 ステップ2で説明したように、マスター秘密鍵の送信は危険です。レギュラー秘密鍵の送信も同様に危険です。そのため、トランザクションの署名とネットワークへのトランザクションの送信を切り離した2段階方式でこのトランザクションを実行します。 - ### トランザクションの署名 {% partial file="/@l10n/ja/docs/_snippets/tutorial-sign-step.md" /%} - リクエストフィールドに以下の値を指定します。 -| リクエストフィールド | 値 | -|:--------------|:-------------------------------------------------------------| -| `Account` | アカウントのアドレス。 | -| `secret` | ステップ1で生成し、ステップ2でアカウントに割り当てた`master_key`、`master_seed`、または`master_seed_hex`(レギュラー秘密鍵)。 | - +| リクエストフィールド | 値 | +| :------------------- | :----------------------------------------------------------------------------------------------------------------------------- | +| `Account` | アカウントのアドレス。 | +| `secret` | ステップ1で生成し、ステップ2でアカウントに割り当てた`master_key`、`master_seed`、または`master_seed_hex`(レギュラー秘密鍵)。 | #### リクエストのフォーマット リクエストのフォーマットの例を示します。このリクエストには`AccountSet`オプションが含まれていないことに注意してください。つまり、トランザクションの成功による影響は、アカウントのレギュラーキーペアが正しく設定されていることを確認する(およびトランザクションコストを消却する)こと以外に何もありません。 - {% tabs %} {% tab label="WebSocket" %} + ```json { - "command":"sign", - "tx_json":{ - "TransactionType":"AccountSet", - "Account":"rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93" - }, - "secret":"sh8i92YRnEjJy3fpFkL8txQSCVo79" + "command": "sign", + "tx_json": { + "TransactionType": "AccountSet", + "Account": "rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93" + }, + "secret": "sh8i92YRnEjJy3fpFkL8txQSCVo79" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method":"sign", - "params":[ - { - "tx_json":{ - "TransactionType":"AccountSet", - "Account":"rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93" - }, - "secret":"sh8i92YRnEjJy3fpFkL8txQSCVo79" - } + "method": "sign", + "params": [ + { + "tx_json": { + "TransactionType": "AccountSet", + "Account": "rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93" + }, + "secret": "sh8i92YRnEjJy3fpFkL8txQSCVo79" + } ] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh #Syntax: sign secret tx_json rippled sign sh8i92YRnEjJy3fpFkL8txQSCVo79 '{"TransactionType":"AccountSet", "Account":"rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93"}' ``` + {% /tab %} {% /tabs %} - #### レスポンスのフォーマット 処理が成功したレスポンスの例: @@ -475,67 +502,73 @@ rippled sign sh8i92YRnEjJy3fpFkL8txQSCVo79 '{"TransactionType":"AccountSet", "Ac {% tabs %} {% tab label="WebSocket" %} + ```json { - "result":{ - "tx_blob":"1200032280000000240000000468400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100A50E867D3B1B5A39F23F1ABCA5C7C3EC755442FDAA357EFD897B865ACA7686DB02206077BF459BCE39BCCBFE1A128DA986D1E00CBEC5F0D6B0E11710F60BE2976FB88114623B8DA4A0BFB3B61AB423391A182DC693DC159E", - "tx_json":{ - "Account":"rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93", - "Fee":"10", - "Flags":2147483648, - "Sequence":4, - "SigningPubKey":"0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020", - "TransactionType":"AccountSet", - "TxnSignature":"3045022100A50E867D3B1B5A39F23F1ABCA5C7C3EC755442FDAA357EFD897B865ACA7686DB02206077BF459BCE39BCCBFE1A128DA986D1E00CBEC5F0D6B0E11710F60BE2976FB8", - "hash":"D9B305CB6E861D0994A5CDD4726129D91AC4277111DC444DE4CEE44AD4674A9F" - } - }, - "status":"success", - "type":"response" + "result": { + "tx_blob": "1200032280000000240000000468400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100A50E867D3B1B5A39F23F1ABCA5C7C3EC755442FDAA357EFD897B865ACA7686DB02206077BF459BCE39BCCBFE1A128DA986D1E00CBEC5F0D6B0E11710F60BE2976FB88114623B8DA4A0BFB3B61AB423391A182DC693DC159E", + "tx_json": { + "Account": "rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93", + "Fee": "10", + "Flags": 2147483648, + "Sequence": 4, + "SigningPubKey": "0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020", + "TransactionType": "AccountSet", + "TxnSignature": "3045022100A50E867D3B1B5A39F23F1ABCA5C7C3EC755442FDAA357EFD897B865ACA7686DB02206077BF459BCE39BCCBFE1A128DA986D1E00CBEC5F0D6B0E11710F60BE2976FB8", + "hash": "D9B305CB6E861D0994A5CDD4726129D91AC4277111DC444DE4CEE44AD4674A9F" + } + }, + "status": "success", + "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} -```json -{ - "result":{ - "status":"success", - "tx_blob":"1200032280000000240000000468400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100A50E867D3B1B5A39F23F1ABCA5C7C3EC755442FDAA357EFD897B865ACA7686DB02206077BF459BCE39BCCBFE1A128DA986D1E00CBEC5F0D6B0E11710F60BE2976FB88114623B8DA4A0BFB3B61AB423391A182DC693DC159E", - "tx_json":{ - "Account":"rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93", - "Fee":"10", - "Flags":2147483648, - "Sequence":4, - "SigningPubKey":"0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020", - "TransactionType":"AccountSet", - "TxnSignature":"3045022100A50E867D3B1B5A39F23F1ABCA5C7C3EC755442FDAA357EFD897B865ACA7686DB02206077BF459BCE39BCCBFE1A128DA986D1E00CBEC5F0D6B0E11710F60BE2976FB8", - "hash":"D9B305CB6E861D0994A5CDD4726129D91AC4277111DC444DE4CEE44AD4674A9F" - } - } -} -``` -{% /tab %} -{% tab label="コマンドライン" %} ```json { - "result" :{ - "status" :"success", - "tx_blob" :"1200032280000000240000000468400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100A50E867D3B1B5A39F23F1ABCA5C7C3EC755442FDAA357EFD897B865ACA7686DB02206077BF459BCE39BCCBFE1A128DA986D1E00CBEC5F0D6B0E11710F60BE2976FB88114623B8DA4A0BFB3B61AB423391A182DC693DC159E", - "tx_json" :{ - "Account" :"rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93", - "Fee" :"10", - "Flags" :2147483648, - "Sequence" :4, - "SigningPubKey" :"0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020", - "TransactionType" :"AccountSet", - "TxnSignature" :"3045022100A50E867D3B1B5A39F23F1ABCA5C7C3EC755442FDAA357EFD897B865ACA7686DB02206077BF459BCE39BCCBFE1A128DA986D1E00CBEC5F0D6B0E11710F60BE2976FB8", - "hash" :"D9B305CB6E861D0994A5CDD4726129D91AC4277111DC444DE4CEE44AD4674A9F" - } + "result": { + "status": "success", + "tx_blob": "1200032280000000240000000468400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100A50E867D3B1B5A39F23F1ABCA5C7C3EC755442FDAA357EFD897B865ACA7686DB02206077BF459BCE39BCCBFE1A128DA986D1E00CBEC5F0D6B0E11710F60BE2976FB88114623B8DA4A0BFB3B61AB423391A182DC693DC159E", + "tx_json": { + "Account": "rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93", + "Fee": "10", + "Flags": 2147483648, + "Sequence": 4, + "SigningPubKey": "0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020", + "TransactionType": "AccountSet", + "TxnSignature": "3045022100A50E867D3B1B5A39F23F1ABCA5C7C3EC755442FDAA357EFD897B865ACA7686DB02206077BF459BCE39BCCBFE1A128DA986D1E00CBEC5F0D6B0E11710F60BE2976FB8", + "hash": "D9B305CB6E861D0994A5CDD4726129D91AC4277111DC444DE4CEE44AD4674A9F" + } } } ``` + +{% /tab %} + +{% tab label="コマンドライン" %} + +```json +{ + "result": { + "status": "success", + "tx_blob": "1200032280000000240000000468400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100A50E867D3B1B5A39F23F1ABCA5C7C3EC755442FDAA357EFD897B865ACA7686DB02206077BF459BCE39BCCBFE1A128DA986D1E00CBEC5F0D6B0E11710F60BE2976FB88114623B8DA4A0BFB3B61AB423391A182DC693DC159E", + "tx_json": { + "Account": "rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93", + "Fee": "10", + "Flags": 2147483648, + "Sequence": 4, + "SigningPubKey": "0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020", + "TransactionType": "AccountSet", + "TxnSignature": "3045022100A50E867D3B1B5A39F23F1ABCA5C7C3EC755442FDAA357EFD897B865ACA7686DB02206077BF459BCE39BCCBFE1A128DA986D1E00CBEC5F0D6B0E11710F60BE2976FB8", + "hash": "D9B305CB6E861D0994A5CDD4726129D91AC4277111DC444DE4CEE44AD4674A9F" + } + } +} +``` + {% /tab %} {% /tabs %} @@ -544,7 +577,6 @@ rippled sign sh8i92YRnEjJy3fpFkL8txQSCVo79 '{"TransactionType":"AccountSet", "Ac 次に`submit`コマンドを使用して、トランザクションブロブ(`tx_blob`または`signedTransaction`)をネットワークに送信します。 - ### トランザクションの送信 オフライン署名レスポンスの`signedTransaction`値、または`sign`コマンドレスポンスの`tx_blob`値をとり、[submitメソッド][]を使用して`tx_blob`値として送信します。 @@ -556,37 +588,42 @@ rippled sign sh8i92YRnEjJy3fpFkL8txQSCVo79 '{"TransactionType":"AccountSet", "Ac {% tabs %} {% tab label="WebSocket" %} + ```json { - "command":"submit", - "tx_blob":"1200032280000000240000000468400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100A50E867D3B1B5A39F23F1ABCA5C7C3EC755442FDAA357EFD897B865ACA7686DB02206077BF459BCE39BCCBFE1A128DA986D1E00CBEC5F0D6B0E11710F60BE2976FB88114623B8DA4A0BFB3B61AB423391A182DC693DC159E" + "command": "submit", + "tx_blob": "1200032280000000240000000468400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100A50E867D3B1B5A39F23F1ABCA5C7C3EC755442FDAA357EFD897B865ACA7686DB02206077BF459BCE39BCCBFE1A128DA986D1E00CBEC5F0D6B0E11710F60BE2976FB88114623B8DA4A0BFB3B61AB423391A182DC693DC159E" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method":"submit", - "params":[ - { - "tx_blob":"1200032280000000240000000468400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100A50E867D3B1B5A39F23F1ABCA5C7C3EC755442FDAA357EFD897B865ACA7686DB02206077BF459BCE39BCCBFE1A128DA986D1E00CBEC5F0D6B0E11710F60BE2976FB88114623B8DA4A0BFB3B61AB423391A182DC693DC159E" - } + "method": "submit", + "params": [ + { + "tx_blob": "1200032280000000240000000468400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100A50E867D3B1B5A39F23F1ABCA5C7C3EC755442FDAA357EFD897B865ACA7686DB02206077BF459BCE39BCCBFE1A128DA986D1E00CBEC5F0D6B0E11710F60BE2976FB88114623B8DA4A0BFB3B61AB423391A182DC693DC159E" + } ] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh #Syntax: submit tx_blob rippled submit 1200032280000000240000000468400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100A50E867D3B1B5A39F23F1ABCA5C7C3EC755442FDAA357EFD897B865ACA7686DB02206077BF459BCE39BCCBFE1A128DA986D1E00CBEC5F0D6B0E11710F60BE2976FB88114623B8DA4A0BFB3B61AB423391A182DC693DC159E ``` + {% /tab %} {% /tabs %} - #### レスポンスのフォーマット 処理が成功したレスポンスの例: @@ -594,81 +631,86 @@ rippled submit 1200032280000000240000000468400000000000000A73210330E7FC9D56BB25D {% tabs %} {% tab label="WebSocket" %} + ```json { - "result":{ - "engine_result":"tesSUCCESS", - "engine_result_code":0, - "engine_result_message":"The transaction was applied.Only final in a validated ledger.", - "tx_blob":"1200032280000000240000000468400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100A50E867D3B1B5A39F23F1ABCA5C7C3EC755442FDAA357EFD897B865ACA7686DB02206077BF459BCE39BCCBFE1A128DA986D1E00CBEC5F0D6B0E11710F60BE2976FB88114623B8DA4A0BFB3B61AB423391A182DC693DC159E", - "tx_json":{ - "Account":"rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93", - "Fee":"10", - "Flags":2147483648, - "Sequence":4, - "SigningPubKey":"0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020", - "TransactionType":"AccountSet", - "TxnSignature":"3045022100A50E867D3B1B5A39F23F1ABCA5C7C3EC755442FDAA357EFD897B865ACA7686DB02206077BF459BCE39BCCBFE1A128DA986D1E00CBEC5F0D6B0E11710F60BE2976FB8", - "hash":"D9B305CB6E861D0994A5CDD4726129D91AC4277111DC444DE4CEE44AD4674A9F" - } - }, - "status":"success", - "type":"response" + "result": { + "engine_result": "tesSUCCESS", + "engine_result_code": 0, + "engine_result_message": "The transaction was applied.Only final in a validated ledger.", + "tx_blob": "1200032280000000240000000468400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100A50E867D3B1B5A39F23F1ABCA5C7C3EC755442FDAA357EFD897B865ACA7686DB02206077BF459BCE39BCCBFE1A128DA986D1E00CBEC5F0D6B0E11710F60BE2976FB88114623B8DA4A0BFB3B61AB423391A182DC693DC159E", + "tx_json": { + "Account": "rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93", + "Fee": "10", + "Flags": 2147483648, + "Sequence": 4, + "SigningPubKey": "0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020", + "TransactionType": "AccountSet", + "TxnSignature": "3045022100A50E867D3B1B5A39F23F1ABCA5C7C3EC755442FDAA357EFD897B865ACA7686DB02206077BF459BCE39BCCBFE1A128DA986D1E00CBEC5F0D6B0E11710F60BE2976FB8", + "hash": "D9B305CB6E861D0994A5CDD4726129D91AC4277111DC444DE4CEE44AD4674A9F" + } + }, + "status": "success", + "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} -```json -{ - "result":{ - "engine_result":"tesSUCCESS", - "engine_result_code":0, - "engine_result_message":"The transaction was applied.Only final in a validated ledger.", - "status":"success", - "tx_blob":"1200032280000000240000000468400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100A50E867D3B1B5A39F23F1ABCA5C7C3EC755442FDAA357EFD897B865ACA7686DB02206077BF459BCE39BCCBFE1A128DA986D1E00CBEC5F0D6B0E11710F60BE2976FB88114623B8DA4A0BFB3B61AB423391A182DC693DC159E", - "tx_json":{ - "Account":"rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93", - "Fee":"10", - "Flags":2147483648, - "Sequence":4, - "SigningPubKey":"0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020", - "TransactionType":"AccountSet", - "TxnSignature":"3045022100A50E867D3B1B5A39F23F1ABCA5C7C3EC755442FDAA357EFD897B865ACA7686DB02206077BF459BCE39BCCBFE1A128DA986D1E00CBEC5F0D6B0E11710F60BE2976FB8", - "hash":"D9B305CB6E861D0994A5CDD4726129D91AC4277111DC444DE4CEE44AD4674A9F" - } - } -} -``` -{% /tab %} -{% tab label="コマンドライン" %} ```json { - "result" :{ - "engine_result" :"tesSUCCESS", - "engine_result_code" :0, - "engine_result_message" :"The transaction was applied.Only final in a validated ledger.", - "status" :"success", - "tx_blob" :"1200032280000000240000000468400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100A50E867D3B1B5A39F23F1ABCA5C7C3EC755442FDAA357EFD897B865ACA7686DB02206077BF459BCE39BCCBFE1A128DA986D1E00CBEC5F0D6B0E11710F60BE2976FB88114623B8DA4A0BFB3B61AB423391A182DC693DC159E", - "tx_json" :{ - "Account" :"rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93", - "Fee" :"10", - "Flags" :2147483648, - "Sequence" :4, - "SigningPubKey" :"0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020", - "TransactionType" :"AccountSet", - "TxnSignature" :"3045022100A50E867D3B1B5A39F23F1ABCA5C7C3EC755442FDAA357EFD897B865ACA7686DB02206077BF459BCE39BCCBFE1A128DA986D1E00CBEC5F0D6B0E11710F60BE2976FB8", - "hash" :"D9B305CB6E861D0994A5CDD4726129D91AC4277111DC444DE4CEE44AD4674A9F" - } + "result": { + "engine_result": "tesSUCCESS", + "engine_result_code": 0, + "engine_result_message": "The transaction was applied.Only final in a validated ledger.", + "status": "success", + "tx_blob": "1200032280000000240000000468400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100A50E867D3B1B5A39F23F1ABCA5C7C3EC755442FDAA357EFD897B865ACA7686DB02206077BF459BCE39BCCBFE1A128DA986D1E00CBEC5F0D6B0E11710F60BE2976FB88114623B8DA4A0BFB3B61AB423391A182DC693DC159E", + "tx_json": { + "Account": "rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93", + "Fee": "10", + "Flags": 2147483648, + "Sequence": 4, + "SigningPubKey": "0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020", + "TransactionType": "AccountSet", + "TxnSignature": "3045022100A50E867D3B1B5A39F23F1ABCA5C7C3EC755442FDAA357EFD897B865ACA7686DB02206077BF459BCE39BCCBFE1A128DA986D1E00CBEC5F0D6B0E11710F60BE2976FB8", + "hash": "D9B305CB6E861D0994A5CDD4726129D91AC4277111DC444DE4CEE44AD4674A9F" + } } } ``` + +{% /tab %} + +{% tab label="コマンドライン" %} + +```json +{ + "result": { + "engine_result": "tesSUCCESS", + "engine_result_code": 0, + "engine_result_message": "The transaction was applied.Only final in a validated ledger.", + "status": "success", + "tx_blob": "1200032280000000240000000468400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100A50E867D3B1B5A39F23F1ABCA5C7C3EC755442FDAA357EFD897B865ACA7686DB02206077BF459BCE39BCCBFE1A128DA986D1E00CBEC5F0D6B0E11710F60BE2976FB88114623B8DA4A0BFB3B61AB423391A182DC693DC159E", + "tx_json": { + "Account": "rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93", + "Fee": "10", + "Flags": 2147483648, + "Sequence": 4, + "SigningPubKey": "0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020", + "TransactionType": "AccountSet", + "TxnSignature": "3045022100A50E867D3B1B5A39F23F1ABCA5C7C3EC755442FDAA357EFD897B865ACA7686DB02206077BF459BCE39BCCBFE1A128DA986D1E00CBEC5F0D6B0E11710F60BE2976FB8", + "hash": "D9B305CB6E861D0994A5CDD4726129D91AC4277111DC444DE4CEE44AD4674A9F" + } + } +} +``` + {% /tab %} {% /tabs %} - ## 4. 次のステップ これで、レギュラーキーペアをアカウントに割り当てるメリットについて理解しました。次に以下の関連トピックとチュートリアルをご覧ください。 diff --git a/@l10n/ja/docs/tutorials/how-tos/manage-account-settings/change-or-remove-a-regular-key-pair.md b/@l10n/ja/docs/tutorials/how-tos/manage-account-settings/change-or-remove-a-regular-key-pair.md index abcd1ca45b..8e47dd8b68 100644 --- a/@l10n/ja/docs/tutorials/how-tos/manage-account-settings/change-or-remove-a-regular-key-pair.md +++ b/@l10n/ja/docs/tutorials/how-tos/manage-account-settings/change-or-remove-a-regular-key-pair.md @@ -2,44 +2,40 @@ html: change-or-remove-a-regular-key-pair.html parent: manage-account-settings.html seo: - description: アカウントですでに承認されているレギュラーキーペアを削除するか更新します。 + description: アカウントですでに承認されているレギュラーキーペアを削除するか更新します。 labels: - セキュリティ - アカウント --- + # レギュラーキーペアの変更または削除 XRP Ledgerでは、アカウントはその後のトランザクションには _レギュラーキーペア_ と呼ばれるセカンダリキーペアで署名することができます。アカウントのレギュラーキーペアが漏えいした場合、またはセキュリティ対策としてレギュラーキーペアを定期的に変更する必要がある場合は、[SetRegularKeyトランザクション][]を使用してアカウントレギュラーキーペアを削除または変更します。 マスターキーペアとレギュラーキーペアの詳細は、[暗号鍵](../../../concepts/accounts/cryptographic-keys.md)をご覧ください。 - ## レギュラーキーペアの変更 既存のレギュラーキーペアを変更する手順は、初めて[レギュラーキーを割り当てる](assign-a-regular-key-pair.md)手順とほぼ同じです。キーペアを生成し、レギュラーキーペアとしてアカウントに割り当てます。これにより既存のレギュラーキーペアが上書きされます。ただし大きく異なる点は、既存のレギュラーキーペアを変更するときには既存のレギュラー秘密鍵を使用して秘密鍵自体を置き換えることができますが、レギュラーキーペアをアカウントに初めて割り当てるときにはアカウントのマスター秘密鍵を使用する必要があることです。 マスターキーペアとレギュラーキーペアの詳細は、[暗号鍵](../../../concepts/accounts/cryptographic-keys.md)をご覧ください。 - ## レギュラーキーペアの削除 漏えいしたレギュラーキーペアを単にアカウントから削除する場合は、キーペアを最初に生成する必要はありません。`RegularKey`フィールドを省略した[SetRegularKeyトランザクション][]を使用します。アカウントの別の署名手段(マスターキーペアまたは[署名者リスト](../../../concepts/accounts/multi-signing.md))が現在有効になっていない場合は、トランザクションが失敗することに注意してください。 - アカウントのレギュラーキーペアを削除する場合、`SetRegularKey`トランザクションでは、アカウントのマスター秘密鍵(シークレット)または既存のレギュラーキーペアによる署名が必要です。マスター秘密鍵またはレギュラー秘密鍵の送信は危険であるため、トランザクションの署名とネットワークへのトランザクションの送信を切り離した2段階方式でこのトランザクションを実行します。 ### トランザクションの署名 {% partial file="/@l10n/ja/docs/_snippets/tutorial-sign-step.md" /%} - リクエストフィールドに以下の値を指定します。 -| リクエストフィールド | 値 | -|:--------------|:-------------------------------------------------------------| -| `Account` | アカウントのアドレス。 | -| `secret` | アカウントの`master_key`、`master_seed`、または`master_seed_hex`(マスター秘密鍵またはレギュラー秘密鍵) | - +| リクエストフィールド | 値 | +| :------------------- | :------------------------------------------------------------------------------------------------------- | +| `Account` | アカウントのアドレス。 | +| `secret` | アカウントの`master_key`、`master_seed`、または`master_seed_hex`(マスター秘密鍵またはレギュラー秘密鍵) | #### リクエストのフォーマット @@ -48,6 +44,7 @@ XRP Ledgerでは、アカウントはその後のトランザクションには {% tabs %} {% tab label="WebSocket" %} + ``` { "command":"sign", @@ -58,9 +55,11 @@ XRP Ledgerでは、アカウントはその後のトランザクションには "secret":"snoPBrXtMeMyMHUVTgbuqAfg1SUTb" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ``` { "method":"sign", @@ -75,18 +74,20 @@ XRP Ledgerでは、アカウントはその後のトランザクションには ] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ``` #Syntax: sign secret tx_json rippled sign snoPBrXtMeMyMHUVTgbuqAfg1SUTb '{"TransactionType":"SetRegularKey", "Account":"rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93"}' ``` + {% /tab %} {% /tabs %} - #### レスポンスのフォーマット 処理が成功したレスポンスの例: @@ -94,6 +95,7 @@ rippled sign snoPBrXtMeMyMHUVTgbuqAfg1SUTb '{"TransactionType":"SetRegularKey", {% tabs %} {% tab label="WebSocket" %} + ``` { "result":{ @@ -113,9 +115,11 @@ rippled sign snoPBrXtMeMyMHUVTgbuqAfg1SUTb '{"TransactionType":"SetRegularKey", "type":"response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ``` {NEWWWWWWWWWWWW "result":{ @@ -134,9 +138,11 @@ rippled sign snoPBrXtMeMyMHUVTgbuqAfg1SUTb '{"TransactionType":"SetRegularKey", } } ``` + {% /tab %} {% tab label="コマンドライン" %} + ``` { "result" :{ @@ -155,6 +161,7 @@ rippled sign snoPBrXtMeMyMHUVTgbuqAfg1SUTb '{"TransactionType":"SetRegularKey", } } ``` + {% /tab %} {% /tabs %} @@ -163,7 +170,6 @@ rippled sign snoPBrXtMeMyMHUVTgbuqAfg1SUTb '{"TransactionType":"SetRegularKey", 次に`submit`コマンドを使用して、トランザクションブロブ(`tx_blob`または`signedTransaction`)をネットワークに送信します。 - ### トランザクションの送信 オフライン署名レスポンスの`signedTransaction`値、または`sign`コマンドレスポンスの`tx_blob`値をとり、[submitメソッド][]を使用して`tx_blob`として送信します。 @@ -175,15 +181,18 @@ rippled sign snoPBrXtMeMyMHUVTgbuqAfg1SUTb '{"TransactionType":"SetRegularKey", {% tabs %} {% tab label="WebSocket" %} + ``` { "command":"submit", "tx_blob":"1200052280000000240000000268400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100CAB9A6F84026D57B05760D5E2395FB7BE86BF39F10DC6E2E69DC91238EE0970B022058EC36A8EF9EE65F5D0D8CAC4E88C8C19FEF39E40F53D4CCECBB59701D6D1E838114623B8DA4A0BFB3B61AB423391A182DC693DC159E" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ``` { "method":"submit", @@ -194,18 +203,20 @@ rippled sign snoPBrXtMeMyMHUVTgbuqAfg1SUTb '{"TransactionType":"SetRegularKey", ] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ``` #Syntax: submit tx_blob rippled submit 1200052280000000240000000268400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100CAB9A6F84026D57B05760D5E2395FB7BE86BF39F10DC6E2E69DC91238EE0970B022058EC36A8EF9EE65F5D0D8CAC4E88C8C19FEF39E40F53D4CCECBB59701D6D1E838114623B8DA4A0BFB3B61AB423391A182DC693DC159E ``` + {% /tab %} {% /tabs %} - #### レスポンスのフォーマット 処理が成功したレスポンスの例: @@ -213,6 +224,7 @@ rippled submit 1200052280000000240000000268400000000000000A73210330E7FC9D56BB25D {% tabs %} {% tab label="WebSocket" %} + ``` { "result":{ @@ -235,9 +247,11 @@ rippled submit 1200052280000000240000000268400000000000000A73210330E7FC9D56BB25D "type":"response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ``` { "result":{ @@ -259,9 +273,11 @@ rippled submit 1200052280000000240000000268400000000000000A73210330E7FC9D56BB25D } } ``` + {% /tab %} {% tab label="コマンドライン" %} + ``` { "result" :{ @@ -283,6 +299,7 @@ rippled submit 1200052280000000240000000268400000000000000A73210330E7FC9D56BB25D } } ``` + {% /tab %} {% /tabs %} @@ -291,7 +308,6 @@ rippled submit 1200052280000000240000000268400000000000000A73210330E7FC9D56BB25D 前述の`SetRegularKey`トランザクションにより削除されたレギュラー秘密鍵を使用して[AccountSetトランザクション][]に署名した際のエラーレスポンスの例を以下に示します。 - ### レスポンスのフォーマット 処理が成功したレスポンスの例: @@ -299,6 +315,7 @@ rippled submit 1200052280000000240000000268400000000000000A73210330E7FC9D56BB25D {% tabs %} {% tab label="WebSocket" %} + ``` { "error":"badSecret", @@ -316,9 +333,11 @@ rippled submit 1200052280000000240000000268400000000000000A73210330E7FC9D56BB25D "type":"response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ``` {NEWWWWWWWWWWWW "result":{ @@ -337,9 +356,11 @@ rippled submit 1200052280000000240000000268400000000000000A73210330E7FC9D56BB25D } } ``` + {% /tab %} {% tab label="コマンドライン" %} + ``` { "result" :{ @@ -358,6 +379,7 @@ rippled submit 1200052280000000240000000268400000000000000A73210330E7FC9D56BB25D } } ``` + {% /tab %} {% /tabs %} diff --git a/@l10n/ja/docs/tutorials/how-tos/manage-account-settings/disable-master-key-pair.md b/@l10n/ja/docs/tutorials/how-tos/manage-account-settings/disable-master-key-pair.md index 02ce3fb483..3a3b17357b 100644 --- a/@l10n/ja/docs/tutorials/how-tos/manage-account-settings/disable-master-key-pair.md +++ b/@l10n/ja/docs/tutorials/how-tos/manage-account-settings/disable-master-key-pair.md @@ -2,11 +2,12 @@ html: disable-master-key-pair.html parent: manage-account-settings.html seo: - description: アドレスに数学的に関連付けられたマスターキーを無効にする。 + description: アドレスに数学的に関連付けられたマスターキーを無効にする。 labels: - セキュリティ - アカウント --- + # マスターキーペアの無効化 このページでは、[アカウント](../../../concepts/accounts/index.md)のアドレスに数学的に関連付けられた[マスターキーペア](../../../concepts/accounts/cryptographic-keys.md)を無効化する方法について説明します。あなたのアカウントのマスターキーペアが漏洩した可能性がある場合、または[マルチシグ](../../../concepts/accounts/multi-signing.md)をあなたのアカウントからトランザクションを送信する _唯一_ の方法としたい場合、これを行う必要があります。 @@ -21,11 +22,11 @@ labels: アカウントのマスターキーペアを無効にするには、次の前提条件を満たしている必要があります。 - XRP Ledger[アカウント](../../../concepts/accounts/index.md)を持ち、そのアカウントからマスターキーペアを用いてトランザクションの署名と提出ができることが必要です。[安全な署名の設定](../../../concepts/transactions/secure-signing.md) をご覧ください。これには2つの一般的な方法があります。 - - アカウントのマスターシード値を知っている。シード値は一般的に `sn3nxiW7v8KXzPzAqzyHXbSSKNuN9`のような "s" で始まる [base58][] 値で表されます。 - - あるいは、シード値を知る必要がなく、安全に保存する[専用の署名デバイス](../../../concepts/transactions/secure-signing.md#専用の署名デバイスを使用する) を使用します + - アカウントのマスターシード値を知っている。シード値は一般的に `sn3nxiW7v8KXzPzAqzyHXbSSKNuN9`のような "s" で始まる [base58][] 値で表されます。 + - あるいは、シード値を知る必要がなく、安全に保存する[専用の署名デバイス](../../../concepts/transactions/secure-signing.md#専用の署名デバイスを使用する) を使用します - あなたのアカウントには、マスターキーペア以外のトランザクションを認証する方法が少なくとも1つ必要です。つまり、以下のいずれか、または両方を行う必要があります。 - - [レギュラーキーペアを割り当てる](assign-a-regular-key-pair.md). - - [マルチシグの設定](set-up-multi-signing.md). + - [レギュラーキーペアを割り当てる](assign-a-regular-key-pair.md). + - [マルチシグの設定](set-up-multi-signing.md). ## 手順 @@ -54,6 +55,7 @@ labels: {% tabs %} {% tab label="WebSocket" %} + ```json { "command": "sign", @@ -65,31 +67,36 @@ labels: "secret": "s████████████████████████████" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "sign", - "params": [ - { - "tx_json": { - "TransactionType": "AccountSet", - "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "SetFlag": 4 - }, - "secret": "s████████████████████████████" - } - ] + "method": "sign", + "params": [ + { + "tx_json": { + "TransactionType": "AccountSet", + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "SetFlag": 4 + }, + "secret": "s████████████████████████████" + } + ] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh $ rippled sign s████████████████████████████ '{"TransactionType":"AccountSet", "Account":"rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", "SetFlag":4}' ``` + {% /tab %} {% /tabs %} @@ -99,6 +106,7 @@ $ rippled sign s█████████████████████ {% tabs %} {% tab label="WebSocket" %} + ```json { "result": { @@ -120,33 +128,36 @@ $ rippled sign s█████████████████████ "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "result": { - "deprecated": "This command has been deprecated and will be removed in a future version of the server. Please migrate to a standalone signing tool.", - "status": "success", - "tx_blob": "1200032280000000240000017C20210000000468400000000000000A732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB7446304402204457A890BC06F48061F8D61042975702B57EBEF3EA2C7C484DFE38CFD42EA11102202505A7C62FF41E68FDE10271BADD75BD66D54B2F96A326BE487A2728A352442D81144B4E9C06F24296074F7BC48F92A97916C6DC5EA9", - "tx_json": { - "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "Fee": "10", - "Flags": 2147483648, - "Sequence": 380, - "SetFlag": 4, - "SigningPubKey": "03AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB", - "TransactionType": "AccountSet", - "TxnSignature": "304402204457A890BC06F48061F8D61042975702B57EBEF3EA2C7C484DFE38CFD42EA11102202505A7C62FF41E68FDE10271BADD75BD66D54B2F96A326BE487A2728A352442D", - "hash": "327FD263132A4D08170E1B01FE1BB2E21D0126CE58165C97A9173CA9551BCD70" - } + "result": { + "deprecated": "This command has been deprecated and will be removed in a future version of the server. Please migrate to a standalone signing tool.", + "status": "success", + "tx_blob": "1200032280000000240000017C20210000000468400000000000000A732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB7446304402204457A890BC06F48061F8D61042975702B57EBEF3EA2C7C484DFE38CFD42EA11102202505A7C62FF41E68FDE10271BADD75BD66D54B2F96A326BE487A2728A352442D81144B4E9C06F24296074F7BC48F92A97916C6DC5EA9", + "tx_json": { + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "Fee": "10", + "Flags": 2147483648, + "Sequence": 380, + "SetFlag": 4, + "SigningPubKey": "03AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB", + "TransactionType": "AccountSet", + "TxnSignature": "304402204457A890BC06F48061F8D61042975702B57EBEF3EA2C7C484DFE38CFD42EA11102202505A7C62FF41E68FDE10271BADD75BD66D54B2F96A326BE487A2728A352442D", + "hash": "327FD263132A4D08170E1B01FE1BB2E21D0126CE58165C97A9173CA9551BCD70" } + } } - ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh Loading: "/etc/opt/ripple/rippled.cfg" 2020-Feb-13 00:13:24.783570867 HTTPClient:NFO Connecting to 127.0.0.1:5005 @@ -170,6 +181,7 @@ Loading: "/etc/opt/ripple/rippled.cfg" } } ``` + {% /tab %} {% /tabs %} @@ -190,31 +202,37 @@ Loading: "/etc/opt/ripple/rippled.cfg" {% tabs %} {% tab label="WebSocket" %} + ```json { - "command": "submit", - "tx_blob": "1200032280000000240000017C20210000000468400000000000000A732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB7446304402204457A890BC06F48061F8D61042975702B57EBEF3EA2C7C484DFE38CFD42EA11102202505A7C62FF41E68FDE10271BADD75BD66D54B2F96A326BE487A2728A352442D81144B4E9C06F24296074F7BC48F92A97916C6DC5EA9" + "command": "submit", + "tx_blob": "1200032280000000240000017C20210000000468400000000000000A732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB7446304402204457A890BC06F48061F8D61042975702B57EBEF3EA2C7C484DFE38CFD42EA11102202505A7C62FF41E68FDE10271BADD75BD66D54B2F96A326BE487A2728A352442D81144B4E9C06F24296074F7BC48F92A97916C6DC5EA9" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method":"submit", - "params": [ - { - "tx_blob": "1200032280000000240000017C20210000000468400000000000000A732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB7446304402204457A890BC06F48061F8D61042975702B57EBEF3EA2C7C484DFE38CFD42EA11102202505A7C62FF41E68FDE10271BADD75BD66D54B2F96A326BE487A2728A352442D81144B4E9C06F24296074F7BC48F92A97916C6DC5EA9" - } - ] + "method": "submit", + "params": [ + { + "tx_blob": "1200032280000000240000017C20210000000468400000000000000A732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB7446304402204457A890BC06F48061F8D61042975702B57EBEF3EA2C7C484DFE38CFD42EA11102202505A7C62FF41E68FDE10271BADD75BD66D54B2F96A326BE487A2728A352442D81144B4E9C06F24296074F7BC48F92A97916C6DC5EA9" + } + ] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ``` $ rippled submit 1200032280000000240000017C20210000000468400000000000000A732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB7446304402204457A890BC06F48061F8D61042975702B57EBEF3EA2C7C484DFE38CFD42EA11102202505A7C62FF41E68FDE10271BADD75BD66D54B2F96A326BE487A2728A352442D81144B4E9C06F24296074F7BC48F92A97916C6DC5EA9 ``` + {% /tab %} {% /tabs %} @@ -224,57 +242,62 @@ $ rippled submit 1200032280000000240000017C20210000000468400000000000000A732103A {% tabs %} {% tab label="WebSocket" %} + ```json { "result": { - "engine_result" : "tesSUCCESS", - "engine_result_code" : 0, - "engine_result_message" : "The transaction was applied. Only final in a validated ledger.", - "tx_blob" : "1200032280000000240000017C20210000000468400000000000000A732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB7446304402204457A890BC06F48061F8D61042975702B57EBEF3EA2C7C484DFE38CFD42EA11102202505A7C62FF41E68FDE10271BADD75BD66D54B2F96A326BE487A2728A352442D81144B4E9C06F24296074F7BC48F92A97916C6DC5EA9", - "tx_json" : { - "Account" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "Fee" : "10", - "Flags" : 2147483648, - "Sequence" : 380, - "SetFlag" : 4, - "SigningPubKey" : "03AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB", - "TransactionType" : "AccountSet", - "TxnSignature" : "304402204457A890BC06F48061F8D61042975702B57EBEF3EA2C7C484DFE38CFD42EA11102202505A7C62FF41E68FDE10271BADD75BD66D54B2F96A326BE487A2728A352442D", - "hash" : "327FD263132A4D08170E1B01FE1BB2E21D0126CE58165C97A9173CA9551BCD70" + "engine_result": "tesSUCCESS", + "engine_result_code": 0, + "engine_result_message": "The transaction was applied. Only final in a validated ledger.", + "tx_blob": "1200032280000000240000017C20210000000468400000000000000A732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB7446304402204457A890BC06F48061F8D61042975702B57EBEF3EA2C7C484DFE38CFD42EA11102202505A7C62FF41E68FDE10271BADD75BD66D54B2F96A326BE487A2728A352442D81144B4E9C06F24296074F7BC48F92A97916C6DC5EA9", + "tx_json": { + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "Fee": "10", + "Flags": 2147483648, + "Sequence": 380, + "SetFlag": 4, + "SigningPubKey": "03AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB", + "TransactionType": "AccountSet", + "TxnSignature": "304402204457A890BC06F48061F8D61042975702B57EBEF3EA2C7C484DFE38CFD42EA11102202505A7C62FF41E68FDE10271BADD75BD66D54B2F96A326BE487A2728A352442D", + "hash": "327FD263132A4D08170E1B01FE1BB2E21D0126CE58165C97A9173CA9551BCD70" } }, "status": "success", "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "result" : { - "engine_result" : "tesSUCCESS", - "engine_result_code" : 0, - "engine_result_message" : "The transaction was applied. Only final in a validated ledger.", - "status" : "success", - "tx_blob" : "1200032280000000240000017C20210000000468400000000000000A732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB7446304402204457A890BC06F48061F8D61042975702B57EBEF3EA2C7C484DFE38CFD42EA11102202505A7C62FF41E68FDE10271BADD75BD66D54B2F96A326BE487A2728A352442D81144B4E9C06F24296074F7BC48F92A97916C6DC5EA9", - "tx_json" : { - "Account" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "Fee" : "10", - "Flags" : 2147483648, - "Sequence" : 380, - "SetFlag" : 4, - "SigningPubKey" : "03AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB", - "TransactionType" : "AccountSet", - "TxnSignature" : "304402204457A890BC06F48061F8D61042975702B57EBEF3EA2C7C484DFE38CFD42EA11102202505A7C62FF41E68FDE10271BADD75BD66D54B2F96A326BE487A2728A352442D", - "hash" : "327FD263132A4D08170E1B01FE1BB2E21D0126CE58165C97A9173CA9551BCD70" + "result": { + "engine_result": "tesSUCCESS", + "engine_result_code": 0, + "engine_result_message": "The transaction was applied. Only final in a validated ledger.", + "status": "success", + "tx_blob": "1200032280000000240000017C20210000000468400000000000000A732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB7446304402204457A890BC06F48061F8D61042975702B57EBEF3EA2C7C484DFE38CFD42EA11102202505A7C62FF41E68FDE10271BADD75BD66D54B2F96A326BE487A2728A352442D81144B4E9C06F24296074F7BC48F92A97916C6DC5EA9", + "tx_json": { + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "Fee": "10", + "Flags": 2147483648, + "Sequence": 380, + "SetFlag": 4, + "SigningPubKey": "03AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB", + "TransactionType": "AccountSet", + "TxnSignature": "304402204457A890BC06F48061F8D61042975702B57EBEF3EA2C7C484DFE38CFD42EA11102202505A7C62FF41E68FDE10271BADD75BD66D54B2F96A326BE487A2728A352442D", + "hash": "327FD263132A4D08170E1B01FE1BB2E21D0126CE58165C97A9173CA9551BCD70" } } } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh Loading: "/etc/opt/ripple/rippled.cfg" 2020-Feb-13 00:25:49.361743460 HTTPClient:NFO Connecting to 127.0.0.1:5005 @@ -300,24 +323,24 @@ Loading: "/etc/opt/ripple/rippled.cfg" } } ``` + {% /tab %} {% /tabs %} トランザクションが `tecNO_ALTERNATIVE_KEY` という結果で失敗した場合、あなたのアカウントでは現在トランザクションを認証するための別の方法が有効になっていません。[レギュラーキーペアを割り当てる](assign-a-regular-key-pair.md)か [マルチシグを設定](set-up-multi-signing.md) した後、再度マスターキーペアの無効化を試してみてください。 - ### 4. 検証の待機 -{% partial file="/@l10n/ja/docs/_snippets/wait-for-validation.md" /%} +{% partial file="/@l10n/ja/docs/_snippets/wait-for-validation.md" /%} ### 5. アカウントフラグの確認 [account_infoメソッド][]で、アカウントのマスターキーが無効になっていることを確認します。以下のパラメータを必ず指定してください。 -| フィールド | 値 | -|:---------------|:-----------------------------------------------------------------------------| -| `account` | アカウントのアドレス | +| フィールド | 値 | +| :------------- | :--------------------------------------------------------------------------------------- | +| `account` | アカウントのアドレス | | `ledger_index` | `"validated"` とすると、検証済みの最新バージョンのレジャーから結果を得ることができます。 | #### リクエストの例 @@ -325,6 +348,7 @@ Loading: "/etc/opt/ripple/rippled.cfg" {% tabs %} {% tab label="WebSocket" %} + ```json { "command": "account_info", @@ -332,34 +356,41 @@ Loading: "/etc/opt/ripple/rippled.cfg" "ledger_index": "validated" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "account_info", - "params": [{ - "account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "ledger_index": "validated" - }] + "method": "account_info", + "params": [ + { + "account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "ledger_index": "validated" + } + ] } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh rippled account_info rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn validated ``` + {% /tab %} {% /tabs %} - #### レスポンスの例 {% tabs %} {% tab label="WebSocket" %} + ```json { "result": { @@ -389,9 +420,11 @@ rippled account_info rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn validated "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { "result": { @@ -420,9 +453,11 @@ rippled account_info rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn validated } } ``` + {% /tab %} {% tab label="コマンドライン" %} + ```sh Loading: "/etc/opt/ripple/rippled.cfg" 2020-Feb-13 00:41:38.642710734 HTTPClient:NFO Connecting to 127.0.0.1:5005 @@ -454,11 +489,11 @@ Loading: "/etc/opt/ripple/rippled.cfg" } } ``` + {% /tab %} {% /tabs %} - レスポンスの `account_data` オブジェクトで、 `Flags` フィールドと `lsfDisableMaster` フラグの値 (16 進数では `0x00100000`、10 進数では `1048576`) を ビット論理積 (ほとんどのプログラミング言語では `&` オペレーター) で比較します。 コード例: @@ -466,19 +501,22 @@ Loading: "/etc/opt/ripple/rippled.cfg" {% tabs %} {% tab label="JavaScript" %} + ```js // 上記のJSON-RPCレスポンスがaccount_info_responseとして保存されていると仮定します。 -const lsfDisableMaster = 0x00100000; -let acct_flags = account_info_response.result.account_data.Flags; +const lsfDisableMaster = 0x00100000 +let acct_flags = account_info_response.result.account_data.Flags if ((lsfDisableMaster & acct_flags) === lsfDisableMaster) { - console.log("マスターキーペアが無効化されています"); + console.log('マスターキーペアが無効化されています') } else { - console.log("マスターキーペアが使用可能です"); + console.log('マスターキーペアが使用可能です') } ``` + {% /tab %} {% tab label="Python" %} + ```python # 上記のJSON-RPCレスポンスがJSONから解析され、 # 変数account_info_responseとして保存されたと仮定すると、以下のようになります。 @@ -489,6 +527,7 @@ if lsfDisableMaster & acct_flags == lsfDisableMaster: else: console.log("マスターキーペアが使用可能です"); ``` + {% /tab %} {% /tabs %} diff --git a/@l10n/ja/docs/tutorials/how-tos/manage-account-settings/index.md b/@l10n/ja/docs/tutorials/how-tos/manage-account-settings/index.md index 2f10789150..7365046874 100644 --- a/@l10n/ja/docs/tutorials/how-tos/manage-account-settings/index.md +++ b/@l10n/ja/docs/tutorials/how-tos/manage-account-settings/index.md @@ -4,9 +4,9 @@ parent: tasks.html metadata: indexPage: true --- + # アカウントの設定の利用 XRP Ledgerアカウントを設定して、思い通りの支払いをしましょう。 - {% child-pages /%} diff --git a/@l10n/ja/docs/tutorials/how-tos/manage-account-settings/offline-account-setup.md b/@l10n/ja/docs/tutorials/how-tos/manage-account-settings/offline-account-setup.md index 4bfc7c0574..c4f48e72a2 100644 --- a/@l10n/ja/docs/tutorials/how-tos/manage-account-settings/offline-account-setup.md +++ b/@l10n/ja/docs/tutorials/how-tos/manage-account-settings/offline-account-setup.md @@ -2,11 +2,12 @@ html: offline-account-setup.html parent: manage-account-settings.html seo: - description: 物理的に隔離されたオフラインのマシンを使用して暗号鍵を保管するXRP Ledgerアカウントを設定します。 + description: 物理的に隔離されたオフラインのマシンを使用して暗号鍵を保管するXRP Ledgerアカウントを設定します。 labels: - アカウント - セキュリティ --- + # オフラインでのアカウント設定のチュートリアル きわめて安全な[署名構成](../../../concepts/transactions/secure-signing.md)では、XRP Ledger[アカウント](../../../concepts/accounts/index.md)の[暗号鍵](../../../concepts/accounts/cryptographic-keys.md)をオフラインの物理的に隔離されたマシンに安全に保管します。この構成を設定すると、さまざまなトランザクションに署名して、署名済みトランザクションのみをオンラインコンピュータに転送し、秘密鍵をオンラインにいる不正使用者に見せることなくそれらのトランザクションをXRP Ledgerネットワークに送信できます。 @@ -24,7 +25,6 @@ labels: - 別の方法としては、物理メディアを使ってオフラインマシンからオンラインマシンにファイルをコピーします。この方法を使用する場合、オフラインマシンが悪意のあるソフトウェアに感染するおそれのある物理メディアは使用しないよう注意します。(例えば、オンラインマシンとオフラインマシンで同じUSBドライブを再利用しないようにします。) - オンラインマシンにデータを手動で入力することも _可能_ ですが、面倒でミスが発生しやすくなります。 - ## 手順 ### 1. オフラインマシンの設定 @@ -46,6 +46,7 @@ XRP Ledgerで署名するためのソフトウェアオプションは次のと {% tabs %} {% tab label="rippledコマンドライン" %} + ```sh $ ./rippled wallet_propose Loading: "/etc/opt/ripple/rippled.cfg" @@ -64,28 +65,25 @@ Loading: "/etc/opt/ripple/rippled.cfg" } } ``` + {% /tab %} {% /tabs %} 次の値をメモします。 -- **`account_id`**: これはキーペアに関連付けられているアドレスです。このアドレスは、XRPを供給(このプロセスの先で実行)した後に、XRP Ledgerでの **[アカウント](../../../concepts/accounts/index.md)アドレス**になります。`account_id`は公開しても安全です。 -- **`master_seed`**: これはキーペアの秘密シード値です。この値は、アカウントからのトランザクションに署名する際に使用します。最高レベルのセキュリティを実現するために、この値をオフラインマシンのディスクに書き込む前に暗号化してください。暗号化キーとして、人間のオペレーターが覚えやすい安全なパスフレーズや、物理的に安全な場所に書き留めたパスフレーズを使います。例えば、適切な重さのサイコロを使用して作成する[ダイスウェアパスフレーズ](https://theworld.com/~reinhold/diceware.html)などがあります。第2の要素として物理セキュリティキーを使用することもできます。この段階で取る対策の程度はご自身で決めてください。 -- **`key_type`**: これは、このキーペアに使用する暗号化アルゴリズムです。有効なトランザクションに署名するには、どのようなタイプのキーペアを所有しているかを知る必要があります。デフォルトは`secp256k1`です。 +- **`account_id`**: これはキーペアに関連付けられているアドレスです。このアドレスは、XRPを供給(このプロセスの先で実行)した後に、XRP Ledgerでの **[アカウント](../../../concepts/accounts/index.md)アドレス**になります。`account_id`は公開しても安全です。 +- **`master_seed`**: これはキーペアの秘密シード値です。この値は、アカウントからのトランザクションに署名する際に使用します。最高レベルのセキュリティを実現するために、この値をオフラインマシンのディスクに書き込む前に暗号化してください。暗号化キーとして、人間のオペレーターが覚えやすい安全なパスフレーズや、物理的に安全な場所に書き留めたパスフレーズを使います。例えば、適切な重さのサイコロを使用して作成する[ダイスウェアパスフレーズ](https://theworld.com/~reinhold/diceware.html)などがあります。第2の要素として物理セキュリティキーを使用することもできます。この段階で取る対策の程度はご自身で決めてください。 +- **`key_type`**: これは、このキーペアに使用する暗号化アルゴリズムです。有効なトランザクションに署名するには、どのようなタイプのキーペアを所有しているかを知る必要があります。デフォルトは`secp256k1`です。 `master_key`、`master_seed`、`master_seed_hex`の値はどこにも共有**しないでください**。これらはこのアドレスに関連付けられている秘密鍵を再作成するために使用できます。 - - ### 3.新しいアドレスへの資金の供給 オンラインマシンから、ステップ1でメモした**アカウントアドレス** に十分なXRPを送金します。詳細は、[アカウントの作成](../../../concepts/accounts/index.md#アカウントの作成)をご覧ください。 {% admonition type="success" name="ヒント" %}テストの目的で、[Testnet Faucet](/resources/dev-tools/xrp-faucets)を使用して、テスト用のXRPが入った新しいアカウントを取得できます。そのアカウントを使用して、オフラインで生成されたアドレスに資金を供給します。{% /admonition %} - - ### 4.アカウントの詳細の確認 前のステップからのトランザクションがコンセンサスにより検証されたら、アカウントが作成されたことになります。オンラインマシンから、[account_infoメソッド][]を使用して、アカウントのステータスを確認します。レスポンスに`"validated": true`が含まれていることを確認し、この結果が最終的なものであることを確認します。 @@ -97,6 +95,7 @@ Loading: "/etc/opt/ripple/rippled.cfg" {% tabs %} {% tab label="rippledコマンドライン" %} + ```sh $ ./rippled account_info rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn @@ -121,6 +120,7 @@ Loading: "/etc/opt/ripple/rippled.cfg" } } ``` + {% /tab %} {% /tabs %} @@ -133,8 +133,6 @@ Loading: "/etc/opt/ripple/rippled.cfg" 任意で、現在のレジャーインデックスをオフラインマシンに保存します。この値を使用して、今後のトランザクションに適切な`LastLedgerSequence`値を選択できます。 - - ### 6.初期設定トランザクションの署名(ある場合) オフラインマシンで、アカウントの設定用のトランザクションを準備して署名します。詳細は、アカウントを使用する目的によって異なります。例えば次のようなことができます。 @@ -155,6 +153,7 @@ Loading: "/etc/opt/ripple/rippled.cfg" {% tabs %} {% tab label="rippledコマンドライン" %} + ```sh $ rippled sign sn3nxiW7v8KXzPzAqzyHXbSSKNuN9 '{"Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", "Fee": "12", "Sequence": 1, "TransactionType": "AccountSet", "SetFlag": 2}' offline @@ -179,19 +178,17 @@ Loading: "/etc/opt/ripple/rippled.cfg" } } ``` + {% /tab %} {% /tabs %} 一定の時間内に _すべて_ のトランザクションで最終結果が得られるように、[`LastLedgerSequence`](../../../concepts/transactions/reliable-transaction-submission.md#lastledgersequence)フィールドに入力してください。この値は、現行のレジャーインデックス(オンラインマシンから検索する必要がある)と、トランザクションを有効に保つ時間に基づいたものである必要があります。オンラインマシンからオフラインマシンへ、オフラインマシンからオンラインマシンへ切り替える時間を取れるだけの十分に大きな`LastLedgerSequence`値を設定するようにしてください。例えば、現行のレジャーインデックスより256大きな値では、トランザクションは約15分間有効になります。詳細は、[結果のファイナリティー](../../../concepts/transactions/finality-of-results/index.md)と[信頼できるトランザクションの送信](../../../concepts/transactions/reliable-transaction-submission.md)をご覧ください。 - ### 7.オンラインマシンへのトランザクションのコピー トランザクションに署名したら、次のステップは署名済みのトランザクションデータをオンラインマシンに入れることです。その方法の例については、[前提条件](#前提条件)をご覧ください。 - - ### 8.設定したトランザクションの送信 次のステップはトランザクションの送信です。ほとんどのトランザクションは、送信後の次の検証済みレジャー(約4秒後)、またはキューに入っている場合はその後のレジャー(10秒未満)で最終結果が得られるはずです。トランザクションの最終結果を追跡する詳細な手順については、[信頼できるトランザクションの送信](../../../concepts/transactions/reliable-transaction-submission.md)をご覧ください。 @@ -201,6 +198,7 @@ Loading: "/etc/opt/ripple/rippled.cfg" {% tabs %} {% tab label="rippledコマンドライン" %} + ```sh $ rippled submit 1200032280000000240000000120210000000268400000000000000C7321039543A0D3004CDA0904A09FB3710251C652D69EA338589279BC849D47A7B019A174473045022100D5C92D7705036CD7EBB601C8DFCD90927FA591A62AF832C489E9C898EC8E2FA0022052F1819340EB73E9749B8930A6935727362B8E141D1B2E246B49F912223FFD4381144B4E9C06F24296074F7BC48F92A97916C6DC5EA9 @@ -229,6 +227,7 @@ Loading: "/etc/opt/ripple/rippled.cfg" } } ``` + {% /tab %} {% /tabs %} @@ -244,6 +243,7 @@ Loading: "/etc/opt/ripple/rippled.cfg" {% tabs %} {% tab label="rippledコマンドライン" %} + ```sh $ ./rippled tx F81C34E7F05423DC1C973CB5008CA41AE984DE142EAA3975A749FABF0D08FA63 @@ -294,6 +294,7 @@ Loading: "/etc/opt/ripple/rippled.cfg" } } ``` + {% /tab %} {% /tabs %} @@ -308,8 +309,6 @@ Loading: "/etc/opt/ripple/rippled.cfg" 調整や置き換えをするトランザクションについては、オフラインマシンに戻るタイミングについての詳細をメモします。 - - ### 10.オフラインマシンのステータスの調整 オフラインマシンに戻り、カスタムサーバに保存されている設定に必要な変更を加えます。例えば次のような変更です。 @@ -320,8 +319,6 @@ Loading: "/etc/opt/ripple/rippled.cfg" その後で、前のステップで失敗したトランザクションの置き換えとなるトランザクションを調整して署名します。以前の手順と同様に、オフラインマシンでトランザクションを生成し、オンラインマシンから送信します。 - - ## 関連項目 - **コンセプト:** diff --git a/@l10n/ja/docs/tutorials/how-tos/manage-account-settings/require-destination-tags.md b/@l10n/ja/docs/tutorials/how-tos/manage-account-settings/require-destination-tags.md index 4a880428bc..3955ce5ed0 100644 --- a/@l10n/ja/docs/tutorials/how-tos/manage-account-settings/require-destination-tags.md +++ b/@l10n/ja/docs/tutorials/how-tos/manage-account-settings/require-destination-tags.md @@ -2,10 +2,11 @@ html: require-destination-tags.html parent: manage-account-settings.html seo: - description: ユーザがあなたのアドレスに送金するときに宛先タグを必ず指定しなければならないようにします。 + description: ユーザがあなたのアドレスに送金するときに宛先タグを必ず指定しなければならないようにします。 labels: - アカウント --- + # 宛先タグの必須化 `RequireDest`設定は、送金先を識別する[宛先タグ](../../../concepts/transactions/source-and-destination-tags.md)を顧客が付け忘れている場合にあなたのアドレスに[送金](../../../concepts/payment-types/index.md)できないようにするためのものです。有効にすると、XRP Ledgerは宛先タグが付いていないあなたのアドレスへの送金を拒否します。 @@ -17,6 +18,7 @@ labels: {% tabs %} {% tab label="JSON-RPC" %} + ```json POST http://localhost:5005/ Content-Type: application/json @@ -37,6 +39,7 @@ Content-Type: application/json ] } ``` + {% /tab %} {% /tabs %} @@ -46,6 +49,7 @@ Content-Type: application/json {% tabs %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -71,11 +75,11 @@ Content-Type: application/json } } ``` + {% /tab %} {% /tabs %} - ## 関連項目 - **コンセプト:** diff --git a/@l10n/ja/docs/tutorials/how-tos/manage-account-settings/send-a-multi-signed-transaction.md b/@l10n/ja/docs/tutorials/how-tos/manage-account-settings/send-a-multi-signed-transaction.md index 0ef6ca905a..a4111fa34d 100644 --- a/@l10n/ja/docs/tutorials/how-tos/manage-account-settings/send-a-multi-signed-transaction.md +++ b/@l10n/ja/docs/tutorials/how-tos/manage-account-settings/send-a-multi-signed-transaction.md @@ -2,10 +2,11 @@ html: send-a-multi-signed-transaction.html parent: manage-account-settings.html seo: - description: マルチシグトランザクションを作成、署名、送信する。 + description: マルチシグトランザクションを作成、署名、送信する。 labels: - セキュリティ --- + # マルチシグトランザクションの送信 マルチシグトランザクションを作成、署名、送信する方法を以下で説明します。 @@ -16,7 +17,6 @@ labels: - マルチシグは使用可能である必要があります。マルチシグは、XRP Ledgerコンセンサスプロトコルに対する[**Amendment**](../../../concepts/networks-and-servers/amendments.md)により2016/06/27以降利用可能になりました。 - ## 1.トランザクションの作成 送信するトランザクションを表すJSONオブジェクトを作成します。`Fee`や`Sequence`をはじめ、このトランザクションに関する _すべての_ 情報を指定する必要があります。また、トランザクションがマルチシグトランザクションであることを示すため、`SigningPubKey`を空の文字列として指定します。 @@ -43,14 +43,12 @@ labels: (このトランザクションは、残高上限額が100 USDのrEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQCから rHb9CJAWyB4rj91VRWn96DkukG4bwdtyThへの会計上の関係を作成します。) - ## 2.1つの署名の取得 SlignerListのメンバーの1人のシークレットキーとアドレスを指定した[sign_forメソッド][]を使用して、そのメンバーの署名を取得します。 {% partial file="/@l10n/ja/docs/_snippets/secret-key-warning.md" /%} - ``` $ rippled sign_for rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW '{ > "TransactionType":"TrustSet", @@ -106,12 +104,11 @@ Connecting to 127.0.0.1:5005 追加の署名は平行して取得するか、または順次取得することができます。  -* 並行して取得する場合: トランザクションの元のJSONを指定した`sign_for`コマンドを使用します。各レスポンスの`Signers`配列に1つの署名が含まれています。 -* 順次取得する場合: 前の`sign_for`レスポンスの`tx_json`値を指定した`sign_for`コマンドを使用します。各レスポンスの既存の`Signers`配列に新しい署名が追加されます。 +- 並行して取得する場合: トランザクションの元のJSONを指定した`sign_for`コマンドを使用します。各レスポンスの`Signers`配列に1つの署名が含まれています。 +- 順次取得する場合: 前の`sign_for`レスポンスの`tx_json`値を指定した`sign_for`コマンドを使用します。各レスポンスの既存の`Signers`配列に新しい署名が追加されます。 {% partial file="/@l10n/ja/docs/_snippets/secret-key-warning.md" /%} - ``` $ rippled sign_for rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v '{ > "Account" :"rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", @@ -178,7 +175,6 @@ Connecting to 127.0.0.1:5005 構成したSignerListによっては、必要なすべての当事者からの署名を取得するためにこのステップを複数回繰り返す必要があります。 - ## 4.署名の結合と送信 署名を順次収集した場合、最後の`sign_for`レスポンスの`tx_json`ではすべての署名が結合されているので、これを[submit_multisignedメソッド][]の引数として使用できます。 @@ -256,10 +252,8 @@ Connecting to 127.0.0.1:5005 } ``` - レスポンスの`hash`値をメモしておきます。これにより、後でトランザクションの結果を確認できます。(この例ではハッシュは`BD636194C48FD7A100DE4C972336534C8E710FD008C0F3CF7BC5BF34DAF3C3E6`です。) - ## 5.レジャーの閉鎖 本番環境のネットワークを使用している場合は、レジャーが自動的に閉鎖するまで4~7秒待つことがあります。 @@ -278,7 +272,6 @@ Connecting to 127.0.0.1:5005 } ``` - ## 6.トランザクション結果の確認 `submit_multisigned`コマンドのレスポンスのハッシュ値を使用して、[txメソッド][]でトランザクションを検索します。特に`TransactionResult`が文字列`tesSUCCESS`であることを確認してください。 diff --git a/@l10n/ja/docs/tutorials/how-tos/manage-account-settings/set-up-multi-signing.md b/@l10n/ja/docs/tutorials/how-tos/manage-account-settings/set-up-multi-signing.md index 63dcc1afca..a4b2bc647a 100644 --- a/@l10n/ja/docs/tutorials/how-tos/manage-account-settings/set-up-multi-signing.md +++ b/@l10n/ja/docs/tutorials/how-tos/manage-account-settings/set-up-multi-signing.md @@ -2,27 +2,25 @@ html: set-up-multi-signing.html parent: manage-account-settings.html seo: - description: アカウントに署名者リストを追加して、マルチシグを有効にします。 + description: アカウントに署名者リストを追加して、マルチシグを有効にします。 labels: - セキュリティ --- + # マルチシグの設定 [マルチシグ](../../../concepts/accounts/multi-signing.md)は、XRP Ledgerの[トランザクション](../../../concepts/transactions/index.md)を承認する3種類の方法の1つです。マルチシグの他に[レギュラーキーとマスターキー](../../../concepts/accounts/cryptographic-keys.md)で署名する方法があります。3種類のトランザクション承認方法を自由に組み合わせて使用できるように[アドレス](../../../concepts/accounts/index.md)を設定できます。 このチュートリアルでは、アドレスのマルチシグを有効にする方法を説明します。 - ## 前提条件 - トランザクションを送信するための十分なXRPが供給されていて、新しい署名者リストの[必要準備金](../../../concepts/accounts/reserves.md)を満たしている資金供給のあるXRP Ledger[アドレス](../../../concepts/accounts/index.md)が必要です。 - - [MultiSignReserve Amendment][]が有効な場合、マルチシグを使用するには、使用する署名と署名者の数に関わらず、アカウントの準備金として2 XRPが必要です。(MultiSignReserve Amendmentは**2019年4月7日**以降、本番環境のXRP Ledgerで有効になっています。) - [MultiSignReserve Amendment][]が有効ではないテストネットワークでは、マルチシグを使用するには[アカウント準備金](../../../concepts/accounts/reserves.md)に通常よりも多くのXRPが必要となります。必要額は、リストの署名者の数に応じて増加します。 - XRP Ledgerフォーマットでキーペアを生成するツールを利用できる必要があります。この処理に`rippled`サーバを使用する場合は、[wallet_proposeメソッド][]が管理者専用であるため、管理者アクセス権限が必要です。 - - あるいは、すでにXRP Ledgerアドレスを持っている人をあなたのアドレスの署名者として承認するには、その人または組織のアカウントアドレスを知っている必要があります。 - マルチシグは使用可能である必要があります。(MultiSign Amendmentは**2016年6月27日**以降、本番環境のXRP Ledgerで有効になっています。) @@ -31,7 +29,6 @@ labels: 含めたい署名者の数を決定します(最大8)。特定のトランザクションに必要な署名の数に基づいて、署名者リストの定数と署名者の重みを選択します。シンプルな「M-of-N」の署名設定では、各署名者に重み **`1`** を割り当て、リストの定数が「M」になるように設定します。これが必要な署名の数です。 - ## 2. メンバーキーの準備 署名者リストにメンバーとして加える有効な形式のXRP Ledgerアドレスが1つ以上必要です。あなた、またはあなたが選択した署名者は、これらのアドレスに関連付けられた秘密鍵を知っておく必要があります。アドレスは、レジャーに存在する資金供給されたアカウントにすることもできますが、必ずしもそうである必要はありません。 @@ -58,7 +55,6 @@ Connecting to 127.0.0.1:5005 生成した各アドレスの`account_id`(XRP Ledgerアドレス)と`master_seed`(シークレットキー)をメモします。 - ## 3. SignerListSetトランザクションの送信 通常の方法(シングルシグネチャー)で[SignerListSetトランザクション][]に[署名して送信](../../../concepts/transactions/index.md#トランザクションへの署名とトランザクションの送信)します。これによりSignerListがXRP Ledgerのアドレスに関連付けられるので、これ以降はSignerListの複数メンバーがあなたの代わりにトランザクションに署名するマルチシグが可能となります。 @@ -67,7 +63,6 @@ Connecting to 127.0.0.1:5005 {% partial file="/@l10n/ja/docs/_snippets/secret-key-warning.md" /%} - ``` $ rippled submit shqZZy2Rzs9ZqWTCQAdqc3bKgxnYq '{ > "Flags": 0, @@ -144,11 +139,9 @@ Connecting to 127.0.0.1:5005 {% admonition type="info" name="注記" %}[MultiSignReserve Amendment][]が有効ではない場合は、SignerListのメンバーの増加に応じて、アドレスの[所有者準備金](../../../concepts/accounts/reserves.md#所有者準備金)のXRP額を増加する必要があります。アドレスに十分なXRPがないと、トランザクションは[tecINSUFFICIENT_RESERVE](../../../references/protocol/transactions/transaction-results/tec-codes.md)で失敗します。[MultiSignReserve Amendment][]が有効な場合は、SignerListの署名者の数に関係なく[所有者準備金](../../../concepts/accounts/reserves.md#所有者準備金)として必要なXRPは5 XRPです。関連項目: [SignerListと準備金](../../../references/protocol/ledger-data/ledger-entry-types/signerlist.md#signerlistと準備金){% /admonition %} - ## 4. 検証の待機 -{% partial file="/@l10n/ja/docs/_snippets/wait-for-validation.md" /%} - +{% partial file="/@l10n/ja/docs/_snippets/wait-for-validation.md" /%} ## 5. 新しい署名者リストの確認 @@ -209,8 +202,8 @@ SignerListが予期した内容で存在していれば、アドレスでマル これで、アドレスから[マルチシグトランザクションを送信](send-a-multi-signed-transaction.md)できます。次の操作も実行できます。 -* `asfDisableMaster`フラグを使用して[AccountSetトランザクション][]を送信し、アドレスのマスターキーペアを無効化。 -* [SetRegularKeyトランザクション][]を送信して[アドレスのレギュラーキーペアを削除](change-or-remove-a-regular-key-pair.md)(レギュラーキーペアをすでに設定している場合)。 +- `asfDisableMaster`フラグを使用して[AccountSetトランザクション][]を送信し、アドレスのマスターキーペアを無効化。 +- [SetRegularKeyトランザクション][]を送信して[アドレスのレギュラーキーペアを削除](change-or-remove-a-regular-key-pair.md)(レギュラーキーペアをすでに設定している場合)。 ## 関連項目 diff --git a/@l10n/ja/docs/tutorials/how-tos/manage-account-settings/use-tickets.md b/@l10n/ja/docs/tutorials/how-tos/manage-account-settings/use-tickets.md index fa2f1370ce..330ce75c12 100644 --- a/@l10n/ja/docs/tutorials/how-tos/manage-account-settings/use-tickets.md +++ b/@l10n/ja/docs/tutorials/how-tos/manage-account-settings/use-tickets.md @@ -2,14 +2,28 @@ html: use-tickets.html parent: manage-account-settings.html seo: - description: チケットは、通常のシーケンス順序以外でトランザクションを送信するために使用します。 + description: チケットは、通常のシーケンス順序以外でトランザクションを送信するために使用します。 embed_xrpl_js: true filters: - interactive_steps labels: - アカウント -steps: ['Generate', 'Connect', 'Check Sequence', 'Prepare & Sign', 'Submit', 'Wait', 'Intermission', 'Check Tickets', 'Prepare Ticketed Tx', 'Submit Ticketed Tx', 'Wait Again'] +steps: + [ + 'Generate', + 'Connect', + 'Check Sequence', + 'Prepare & Sign', + 'Submit', + 'Wait', + 'Intermission', + 'Check Tickets', + 'Prepare Ticketed Tx', + 'Submit Ticketed Tx', + 'Wait Again', + ] --- + # チケットの使用 [チケット](../../../references/protocol/ledger-data/ledger-entry-types/ticket.md)は、通常の順序ではないトランザクションを送信する方法を提供します。このチュートリアルでは、チケットを作成し、それを使って別のトランザクションを送信する手順を説明します。 @@ -24,8 +38,6 @@ steps: ['Generate', 'Connect', 'Check Sequence', 'Prepare & Sign', 'Submit', 'Wa JavaScriptはWebブラウザ上で動作するため、セットアップなしで読み進められ、インタラクティブな手順を利用することができます。 - - ## 手順 このチュートリアルはいくつかの段階に分かれています。 @@ -43,7 +55,6 @@ XRP Ledgerでトランザクションを送信するには、アドレスと秘 [本番環境のソフトウェアを作成する場合](/docs/tutorials)には、既存のアカウントを使用し、[安全な署名](../../../concepts/transactions/secure-signing.md)を使用して鍵を管理する必要があります。 - ### 2. ネットワークへの接続 トランザクションをネットワークに送信するには、ネットワークに接続している必要があります。チケットは今のところDevnetでしか利用できないので、Devnetサーバに接続する必要があります。例えば、以下のようになります。 @@ -62,7 +73,6 @@ XRP Ledgerでトランザクションを送信するには、アドレスと秘 {% partial file="/@l10n/ja/docs/_snippets/interactive-tutorials/connect-step.md" /%} - ### 3. シーケンス番号の確認 チケットを作成する前に、自分のアカウントの[シーケンス番号][]を確認しておきましょう。次のステップのために現在のシーケンス番号が必要であり、設定されるチケットのシーケンス番号はこの番号から始まります。 @@ -85,8 +95,6 @@ XRP Ledgerでトランザクションを送信するには、アドレスと秘 {% /interactive-block %} - - ### 4. TicketCreateの準備と署名 前のステップで決定したシーケンス番号を使用して、[TicketCreateトランザクション][]を構築します。`TicketCount`フィールドを使って、作成するチケットの枚数を指定します。例えば、10枚のチケットを作成するトランザクションを準備するには、次のようにします。 @@ -101,16 +109,14 @@ XRP Ledgerでトランザクションを送信するには、アドレスと秘 トランザクションのハッシュと`LastLedgerSequence`の値を記録しておけば、[後で検証されたかどうかを確認](../../../concepts/transactions/reliable-transaction-submission.md)することができます。 - {% interactive-block label="Prepare & Sign" steps=$frontmatter.steps %} +
{% /interactive-block %} - - ### 5. TicketCreateの提出 前のステップで作成した署名付きトランザクションBlobを送信します。例えば、以下のようになります。 @@ -133,7 +139,6 @@ XRP Ledgerでトランザクションを送信するには、アドレスと秘 {% /interactive-block %} - ### 6. 検証の待機 ほとんどのトランザクションは、送信された後に次の台帳のバージョンに受け入れられます。つまり、トランザクションの結果が確定するまでに4~7秒かかることがあります。XRP Ledgerが混雑している場合や、ネットワークの接続性が悪いためにトランザクションがネットワーク全体に中継されない場合は、トランザクションが確定するまでに時間がかかることがあります。(トランザクションの有効期限を設定する方法については、[信頼できるトランザクションの送信](../../../concepts/transactions/reliable-transaction-submission.md)をご覧ください)。 @@ -148,7 +153,6 @@ XRP Ledgerでトランザクションを送信するには、アドレスと秘 {% partial file="/@l10n/ja/docs/_snippets/interactive-tutorials/wait-step.md" /%} - ### (任意) 休憩 チケットの強みは、チケットを使ったトランザクションの準備をしている間も、アカウントの業務を通常通り行うことができる点にあります。チケットを使用してトランザクションを送信する場合、別のチケットを使用しているものも含め、他のトランザクションの送信と並行して行うことができ、いつでもチケット付きトランザクションを送信することができます。唯一の制約は、1つのチケットは1回しか使用できないということです。 @@ -160,12 +164,11 @@ XRP Ledgerでトランザクションを送信するには、アドレスと秘 +
{% /interactive-block %} - - ### 7. 有効なチケットの確認 チケット付きのトランザクションを送信したい場合、どのチケットシーケンス番号を使用するかを知る必要があります。アカウントを注意深く管理していれば、どのチケットを持っているかはすでにわかっていると思いますが、よくわからない場合は、[account_objectsメソッド][]を使って、利用可能なチケットを調べることができます。例えば、以下のようになります。 @@ -178,10 +181,10 @@ XRP Ledgerでトランザクションを送信するには、アドレスと秘 {% /tabs %} - {% interactive-block label="Check Tickets" steps=$frontmatter.steps %} +
{% /interactive-block %} @@ -207,7 +210,7 @@ TicketCreateトランザクションをすぐに送信する予定がない場 - **xrpl.js:** トランザクションの自動入力の際に、`"LastLedgerSequence": null`を指定する。 - **`rippled`:** 用意された指示から`LastLedgerSequence`を省略します。サーバはデフォルトでは値を提供しません。 -{% /admonition %} + {% /admonition %} {% interactive-block label="Prepare Ticketed Tx" steps=$frontmatter.steps %} @@ -220,7 +223,6 @@ TicketCreateトランザクションをすぐに送信する予定がない場 {% /interactive-block %} - ### 9. チケット付きトランザクションの送信 前のステップで作成した署名付きトランザクションBlobを送信します。例えば、以下のようになります。 @@ -236,11 +238,11 @@ TicketCreateトランザクションをすぐに送信する予定がない場 {% interactive-block label="Submit Ticketed Tx" steps=$frontmatter.steps %} +
{% /interactive-block %} - ### 10. 検証の待機 チケット付きトランザクションは、シーケンス付きトランザクションと同じようにコンセンサスプロセスを経ます。 @@ -255,20 +257,19 @@ TicketCreateトランザクションをすぐに送信する予定がない場 複数の異なるトランザクションを処理する場合、それぞれが異なるチケットを使用する限り、この作業を並行して行うことができます。 - ## 関連項目 - **Concepts:** - - [チケット](../../../concepts/accounts/tickets.md) - - [マルチシグ](../../../concepts/accounts/multi-signing.md) + - [チケット](../../../concepts/accounts/tickets.md) + - [マルチシグ](../../../concepts/accounts/multi-signing.md) - **Tutorials:** - - [マルチシグの設定](set-up-multi-signing.md) - - [信頼出来るトランザクションの送信](../../../concepts/transactions/reliable-transaction-submission.md) + - [マルチシグの設定](set-up-multi-signing.md) + - [信頼出来るトランザクションの送信](../../../concepts/transactions/reliable-transaction-submission.md) - **References:** - - [account_objectsメソッド][] - - [sign_forメソッド][] - - [submit_multisignedメソッド][] - - [TicketCreateトランザクション][] - - [トランザクションの共通フィールド](../../../references/protocol/transactions/common-fields.md) + - [account_objectsメソッド][] + - [sign_forメソッド][] + - [submit_multisignedメソッド][] + - [TicketCreateトランザクション][] + - [トランザクションの共通フィールド](../../../references/protocol/transactions/common-fields.md) {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/tutorials/how-tos/send-xrp.md b/@l10n/ja/docs/tutorials/how-tos/send-xrp.md index 9757b40cc8..46da6c2a6a 100644 --- a/@l10n/ja/docs/tutorials/how-tos/send-xrp.md +++ b/@l10n/ja/docs/tutorials/how-tos/send-xrp.md @@ -2,17 +2,18 @@ html: send-xrp.html parent: tasks.html seo: - description: Test Netを使用してXRPの送金をテストします。 + description: Test Netを使用してXRPの送金をテストします。 cta_text: XRPを送金しよう embed_xrpl_js: true filters: - - interactive_steps + - interactive_steps labels: - 支払い - XRP top_nav_grouping: 人気ページ steps: ['Generate', 'Connect', 'Prepare', 'Sign', 'Submit', 'Wait', 'Check'] --- + # XRPの送金 このチュートリアルでは、xrpl.jsを使用してシンプルなXRP送金を行う方法について説明します。まずは、XRP Testnetを使用してプロセスを順に進めます。次に、そのプロセスと、本番で同様の処理を行う場合に発生する追加要件とを比較します。 @@ -53,12 +54,10 @@ steps: ['Generate', 'Connect', 'Prepare', 'Sign', 'Submit', 'Wait', 'Check'] {% /tabs %} - このチュートリアルでは、以下のボタンをクリックすることでブラウザーから直接接続できます。 {% partial file="/@l10n/ja/docs/_snippets/interactive-tutorials/connect-step.md" /%} - ### 2. トランザクションの準備 通常は、XRP LedgerトランザクションをオブジェクトとしてJSON[トランザクションフォーマット](../../references/protocol/transactions/index.md)で作成します。以下の例に、必要最小限の送金仕様を示します。 @@ -135,7 +134,6 @@ xrpl.jsの[Wallet.sign()メソッド](https://js.xrpl.org/classes/Wallet.html#si {% /tabs %} - 署名処理の結果は、署名を含むトランザクションオブジェクトになります。通常、XRP Ledger APIは、署名済みトランザクションがトランザクションの正規の[バイナリーフォーマット](../../references/protocol/binary-format.md)(「ブロブ」と呼ばれる)の16進数表現になることを想定しています。 署名APIは、トランザクションのID、つまり識別用ハッシュを返します。この識別用ハッシュは、後でトランザクションを検索する際に使用します。識別用ハッシュは、このトランザクションに固有の64文字の16進文字列です。 @@ -143,11 +141,11 @@ xrpl.jsの[Wallet.sign()メソッド](https://js.xrpl.org/classes/Wallet.html#si {% interactive-block label="Sign" steps=$frontmatter.steps %} +
{% /interactive-block %} - ### 4. 署名済みブロブの送信 トランザクションをネットワークに送信します。 @@ -168,7 +166,7 @@ xrpl.jsの[Wallet.sign()メソッド](https://js.xrpl.org/classes/Wallet.html#si {% /tabs %} -このメソッドは、ローカルでトランザクションを適用しようと試みたときの**一時的な**結果を返します。この結果は、トランザクションが検証済みレジャーに含まれた時点で変わる_可能性があります_。当初は成功していたトランザクションが最終的に失敗となったり、当初失敗していたトランザクションが最終的に成功する場合があります。しかしながら、一時的な結果はほとんどの場合は最終結果と一致するため、ここで`tesSUCCESS`が表示されたらひとまず安心しても問題ありません。😁 +このメソッドは、ローカルでトランザクションを適用しようと試みたときの**一時的な**結果を返します。この結果は、トランザクションが検証済みレジャーに含まれた時点で変わる*可能性があります*。当初は成功していたトランザクションが最終的に失敗となったり、当初失敗していたトランザクションが最終的に成功する場合があります。しかしながら、一時的な結果はほとんどの場合は最終結果と一致するため、ここで`tesSUCCESS`が表示されたらひとまず安心しても問題ありません。😁 他の結果が表示された場合は、以下の点を確認します。 @@ -211,7 +209,6 @@ xrpl.jsの[Wallet.sign()メソッド](https://js.xrpl.org/classes/Wallet.html#si {% partial file="/@l10n/ja/docs/_snippets/interactive-tutorials/wait-step.md" /%} - ### 6. トランザクションステータスの確認 トランザクションが行った内容を正確に把握するために、トランザクションが検証済みレジャーバージョンに記録されたときにトランザクションの結果を調べる必要があります。例えば、[txメソッド][]を使用して、トランザクションのステータスを確認できます。 @@ -232,17 +229,16 @@ xrpl.jsの[Wallet.sign()メソッド](https://js.xrpl.org/classes/Wallet.html#si {% /tabs %} - {% admonition type="warning" name="注意" %}APIは、まだ検証されていないレジャーバージョンからの暫定的な結果を返す場合があります。例えば、`rippled` APIの[txメソッド][]を使用した場合は、レスポンス内の`"validated": true`を探して、データが検証済みレジャーバージョンからのものであることを確認してください。検証済みレジャーバージョンからのものではないトランザクション結果は、変わる可能性があります。詳細は、[結果のファイナリティー](../../concepts/transactions/finality-of-results/index.md)をご覧ください。{% /admonition %} {% interactive-block label="Check" steps=$frontmatter.steps %} +
{% /interactive-block %} - ## 本番環境の場合の相違点 本番XRP LedgerでXRPを送金する場合も、大部分の手順は同じです。ただし、必要なセットアップでは重要な相違点がいくつかあります。 @@ -257,23 +253,28 @@ xrpl.jsの[Wallet.sign()メソッド](https://js.xrpl.org/classes/Wallet.html#si {% tabs %} {% tab label="JavaScript" %} + ```js const wallet = new xrpl.Wallet() console.log(wallet.address) // Example: rGCkuB7PBr5tNy68tPEABEtcdno4hE6Y7f console.log(wallet.seed) // Example: sp6JS7f14BuwFY8Mw6bTtLKWauoUs ``` + {% /tab %} {% tab label="Python" %} + ```py from xrpl.wallet import Wallet my_wallet = Wallet.create() print(my_wallet.address) # Example: rGCkuB7PBr5tNy68tPEABEtcdno4hE6Y7f print(my_wallet.seed) # Example: sp6JS7f14BuwFY8Mw6bTtLKWauoUs ``` + {% /tab %} {% tab label="Java" %} + ```java WalletFactory walletFactory = DefaultWalletFactory.getInstance(); SeedWalletGenerationResult generationResult = walletFactory.randomWallet(false); @@ -281,6 +282,7 @@ Wallet wallet = generationResult.wallet(); System.out.println(wallet.classicAddress()); // Example: rGCkuB7PBr5tNy68tPEABEtcdno4hE6Y7f System.out.println(generationResult.seed()); // Example: sp6JS7f14BuwFY8Mw6bTtLKWauoUs ``` + {% /tab %} {% /tabs %} @@ -296,25 +298,31 @@ XRP Ledgerと同期しているサーバを指定する必要があります。 {% tabs %} {% tab label="JavaScript" %} + ```js const xrpl = require('xrpl') const api = new xrpl.Client('wss://xrplcluster.com') api.connect() ``` + {% /tab %} {% tab label="Python" %} + ```py from xrpl.clients import JsonRpcClient client = JsonRpcClient("https://xrplcluster.com") ``` + {% /tab %} {% tab label="Java" %} + ```java final HttpUrl rippledUrl = HttpUrl.get("https://xrplcluster.com"); XrplClient xrplClient = new XrplClient(rippledUrl); ``` + {% /tab %} {% /tabs %} diff --git a/@l10n/ja/docs/tutorials/how-tos/use-specialized-payment-types/index.md b/@l10n/ja/docs/tutorials/how-tos/use-specialized-payment-types/index.md index 629a7a89cc..ab3bde21de 100644 --- a/@l10n/ja/docs/tutorials/how-tos/use-specialized-payment-types/index.md +++ b/@l10n/ja/docs/tutorials/how-tos/use-specialized-payment-types/index.md @@ -4,9 +4,9 @@ parent: tasks.html metadata: indexPage: true --- + # 高度な支払い機能の利用 EscrowやPayment Channelなどの高度な機能を使用して、XRP Ledgerでスマートアプリケーションを構築しましょう。 - {% child-pages /%} diff --git a/@l10n/ja/docs/tutorials/how-tos/use-specialized-payment-types/use-checks/index.md b/@l10n/ja/docs/tutorials/how-tos/use-specialized-payment-types/use-checks/index.md index 3424cc704d..90816a559e 100644 --- a/@l10n/ja/docs/tutorials/how-tos/use-specialized-payment-types/use-checks/index.md +++ b/@l10n/ja/docs/tutorials/how-tos/use-specialized-payment-types/use-checks/index.md @@ -2,17 +2,17 @@ html: use-checks.html parent: use-specialized-payment-types.html seo: - description: XRP LedgerのCheckは、紙の小切手と同じように、別のアカウントに資金を振り込ませることができます。 + description: XRP LedgerのCheckは、紙の小切手と同じように、別のアカウントに資金を振り込ませることができます。 metadata: indexPage: true labels: - Checks --- + # Checkの使用 XRP LedgerのChecksでは、別のアカウントが後で支払いを請求することが認められていており、個人用の紙の小切手の仕組みと似ています。 {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} - {% child-pages /%} diff --git a/@l10n/ja/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/cancel-an-expired-escrow.md b/@l10n/ja/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/cancel-an-expired-escrow.md index fc730ee26d..deb26a031c 100644 --- a/@l10n/ja/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/cancel-an-expired-escrow.md +++ b/@l10n/ja/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/cancel-an-expired-escrow.md @@ -2,11 +2,12 @@ html: cancel-an-expired-escrow.html parent: use-escrows.html seo: - description: 有効期限切れのEscrowを取り消します。 + description: 有効期限切れのEscrowを取り消します。 labels: - Escrow - スマートコントラクト --- + # 有効期限切れEscrowの取消し ## 1.有効期限切れEscrowの確認 @@ -33,7 +34,6 @@ XRP LedgerのEscrowが有効期限切れとなるのは、その`CancelAfter`の {% /tabs %} - [account_objectsメソッド][]を使用してEscrowを検索し、`CancelAfter`の時刻と比較できます。 リクエスト: @@ -60,7 +60,7 @@ XRP LedgerのEscrowが有効期限切れとなるのは、その`CancelAfter`の XRP Ledgerでは、[EscrowCancelトランザクション][]に[署名して送信する](../../../../concepts/transactions/index.md#トランザクションへの署名とトランザクションの送信)ことで、***誰でも***有効期限切れのEscrowを取り消すことができます。トランザクションの`Owner`フィールドを、そのEscrowを作成した`EscrowCreate`トランザクションの`Account`に設定します。`OfferSequence`フィールドを、`EscrowCreate`トランザクションの`Sequence`に設定します。 -{% partial file="/@l10n/ja/docs/_snippets/secret-key-warning.md" /%} +{% partial file="/@l10n/ja/docs/_snippets/secret-key-warning.md" /%} リクエスト: @@ -86,7 +86,7 @@ XRP Ledgerでは、[EscrowCancelトランザクション][]に[署名して送 ## 3.検証の待機 -{% partial file="/@l10n/ja/docs/_snippets/wait-for-validation.md" /%} +{% partial file="/@l10n/ja/docs/_snippets/wait-for-validation.md" /%} ## 4.最終結果の確認 diff --git a/@l10n/ja/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/index.md b/@l10n/ja/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/index.md index 35d2105e8c..04e0c39f98 100644 --- a/@l10n/ja/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/index.md +++ b/@l10n/ja/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/index.md @@ -4,9 +4,9 @@ parent: use-specialized-payment-types.html metadata: indexPage: true --- + # Escrowの使用 XRP Ledgerは、一定時間の経過後か暗号条件が満たされた場合にのみ実行されるEscrowをサポートします。Escrowが送金できるのはXRPのみで、トークンは送金できません。 - {% child-pages /%} diff --git a/@l10n/ja/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/look-up-escrows.md b/@l10n/ja/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/look-up-escrows.md index a9979ef83d..0c18b29109 100644 --- a/@l10n/ja/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/look-up-escrows.md +++ b/@l10n/ja/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/look-up-escrows.md @@ -2,11 +2,12 @@ html: look-up-escrows.html parent: use-escrows.html seo: - description: 送金元または送金先のアドレスを使って保留中のEscrowを検索します。 + description: 送金元または送金先のアドレスを使って保留中のEscrowを検索します。 labels: - Escrow - スマートコントラクト --- + # Escrowの検索 保留中のEscrowはすべて[Escrowオブジェクト](../../../../concepts/payment-types/escrow.md)としてレジャーに保管されます。 @@ -29,7 +30,6 @@ Escrowオブジェクトを検索するには、[account_objectsメソッド][] {% /tabs %} - レスポンスは以下の例のようになります。このレスポンスには、送金元アドレスまたは送金先アドレスが`rfztBskAVszuS3s5Kq7zDS74QtHrw893fm`である保留中のEscrowオブジェクトがすべて含まれています。送金元アドレスは`Account`の値であり、送金先アドレスは`Destination`の値です。 この例では、2番目と4番目のEscrowオブジェクトが検索条件に一致しています。これは、これらのオブジェクトの`Account`(送金元のアドレス)の値が`rfztBskAVszuS3s5Kq7zDS74QtHrw893fm`に設定されているためです。 @@ -62,7 +62,6 @@ Escrowオブジェクトを検索するには、[account_objectsメソッド][] {% /tabs %} - レスポンスは以下の例のようになります。レスポンスには送金先アドレスまたは送金元アドレスが`rfztBskAVszuS3s5Kq7zDS74QtHrw893fm`である保留中のEscrowオブジェクトがすべて含まれています。送金先アドレスは`Destination`の値であり、送金元アドレスは`Account`の値です。 この例では、1番目と3番目のEscrowオブジェクトが検索条件に一致しています。これは、これらのオブジェクトの`Destination`(送金先のアドレス)の値が`rfztBskAVszuS3s5Kq7zDS74QtHrw893fm`に設定されているためです。 diff --git a/@l10n/ja/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/send-a-conditionally-held-escrow.md b/@l10n/ja/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/send-a-conditionally-held-escrow.md index eadd5853fa..9e462694b1 100644 --- a/@l10n/ja/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/send-a-conditionally-held-escrow.md +++ b/@l10n/ja/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/send-a-conditionally-held-escrow.md @@ -2,11 +2,12 @@ html: send-a-conditionally-held-escrow.html parent: use-escrows.html seo: - description: 満たされた条件に基づいてリリースとなるEscrowを作成します。 + description: 満たされた条件に基づいてリリースとなるEscrowを作成します。 labels: - Escrow - スマートコントラクト --- + # 条件に基づくEscrowの送信 ## 1.条件とフルフィルメントの生成 @@ -38,7 +39,6 @@ console.log('Fulfillment:', fulfillment) 後で使用できるように条件とフルフィルメントを保存します。保留中の支払いの実行が完了するまでは、フルフィルメントを公開しないでください。フルフィルメントを知っていれば誰でもEscrowを終了でき、保留中の資金を指定された送金先にリリースできます。 - ## 2.リリース時刻または取消し時刻の計算 条件付き`Escrow`トランザクションには、`CancelAfter`フィールドと`FinishAfter`フィールドのいずれか、または両方が含まれている必要があります。`CancelAfter`フィールドを使用すると、指定の時刻までに条件を満たすことができなかった場合に送金元へXRPを返金できます。`FinishAfter`フィールドに指定される時刻より前の時間は、正しいフルフィルメントが送信されてもEscrowを実行できません。いずれのフィールドでも、将来の時刻を指定する必要があります。 @@ -48,15 +48,18 @@ console.log('Fulfillment:', fulfillment) {% tabs %} {% tab label="JavaScript" %} + ```js const rippleOffset = 946684800 -const CancelAfter = Math.floor(Date.now() / 1000) + (24*60*60) - rippleOffset +const CancelAfter = Math.floor(Date.now() / 1000) + 24 * 60 * 60 - rippleOffset console.log(CancelAfter) // Example:556927412 ``` + {% /tab %} {% tab label="Python 2/3" %} + ```python from time import time ripple_offset = 946684800 @@ -64,6 +67,7 @@ cancel_after = int(time()) + (24*60*60) - 946684800 print(cancel_after) # Example: 556927412 ``` + {% /tab %} {% /tabs %} @@ -74,7 +78,7 @@ print(cancel_after) [EscrowCreateトランザクション][]に[署名して送信](../../../../concepts/transactions/index.md#トランザクションへの署名とトランザクションの送信)します。トランザクションの`Condition`フィールドを、保留中の支払いがリリースされる時刻に設定します。`Destination`を受取人に設定します。受取人と送金元のアドレスは同じでもかまいません。前の手順で算出した`CancelAfter`または`FinishAfter`の時刻も指定します。`Amount`を、Escrowする[XRPのdrop数][]の合計額に設定します。 -{% partial file="/@l10n/ja/docs/_snippets/secret-key-warning.md" /%} +{% partial file="/@l10n/ja/docs/_snippets/secret-key-warning.md" /%} リクエスト: @@ -98,7 +102,7 @@ print(cancel_after) ## 4.検証の待機 -{% partial file="/@l10n/ja/docs/_snippets/wait-for-validation.md" /%} +{% partial file="/@l10n/ja/docs/_snippets/wait-for-validation.md" /%} ## 5.Escrowが作成されたことの確認 @@ -132,7 +136,7 @@ print(cancel_after) Escrowが有効期限切れの場合は、[Escrowの取消し](cancel-an-expired-escrow.md)だけが可能です。 -{% partial file="/@l10n/ja/docs/_snippets/secret-key-warning.md" /%} +{% partial file="/@l10n/ja/docs/_snippets/secret-key-warning.md" /%} {% tabs %} @@ -156,7 +160,7 @@ Escrowが有効期限切れの場合は、[Escrowの取消し](cancel-an-expired ## 7.検証の待機 -{% partial file="/@l10n/ja/docs/_snippets/wait-for-validation.md" /%} +{% partial file="/@l10n/ja/docs/_snippets/wait-for-validation.md" /%} ## 8.最終結果の確認 diff --git a/@l10n/ja/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/send-a-time-held-escrow.md b/@l10n/ja/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/send-a-time-held-escrow.md index 35fa503625..515a9861fe 100644 --- a/@l10n/ja/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/send-a-time-held-escrow.md +++ b/@l10n/ja/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/send-a-time-held-escrow.md @@ -2,11 +2,12 @@ html: send-a-time-held-escrow.html parent: use-escrows.html seo: - description: 指定した時間が経過することがリリースの唯一の条件であるEscrowを作成します。 + description: 指定した時間が経過することがリリースの唯一の条件であるEscrowを作成します。 labels: - Escrow - スマートコントラクト --- + # 時間に基づくEscrowの送信 [EscrowCreateトランザクション][]タイプでは、リリースの唯一の条件が特定時刻を経過することであるEscrowを作成できます。このためには、`FinishAfter`フィールドを使用し、`Condition`フィールドを省略します。 @@ -18,16 +19,19 @@ labels: {% tabs %} {% tab label="JavaScript" %} + ```js // JavaScript Date() is natively expressed in milliseconds; convert to seconds -const release_date_unix = Math.floor( new Date("2017-11-13T00:00:00Z") / 1000 ); -const release_date_ripple = release_date_unix - 946684800; -console.log(release_date_ripple); +const release_date_unix = Math.floor(new Date('2017-11-13T00:00:00Z') / 1000) +const release_date_ripple = release_date_unix - 946684800 +console.log(release_date_ripple) // 563846400 ``` + {% /tab %} {% tab label="Python 3" %} + ```python import datetime release_date_utc = datetime.datetime(2017,11,13,0,0,0,tzinfo=datetime.timezone.utc) @@ -35,6 +39,7 @@ release_date_ripple = int(release_date_utc.timestamp()) - 946684800 print(release_date_ripple) # 563846400 ``` + {% /tab %} {% /tabs %} @@ -45,7 +50,7 @@ print(release_date_ripple) [EscrowCreateトランザクション][]に[署名して送信](../../../../concepts/transactions/index.md#トランザクションへの署名とトランザクションの送信)します。トランザクションの`FinishAfter`フィールドを、保留中の支払いがリリースされる時刻に設定します。`Condition`フィールドを省略して、時刻を保留中の支払いをリリースする唯一の条件とします。`Destination`を受取人に設定します。受取人と送金元のアドレスは同じでもかまいません。`Amount`を、Escrowする[XRPのdrop数][]の合計額に設定します。 -{% partial file="/@l10n/ja/docs/_snippets/secret-key-warning.md" /%} +{% partial file="/@l10n/ja/docs/_snippets/secret-key-warning.md" /%} リクエスト: @@ -67,12 +72,11 @@ print(release_date_ripple) {% /tabs %} - トランザクションの識別用`hash`値をメモしておきます。これにより、検証済みレジャーバージョンに記録されるときにその最終ステータスを確認できます。 ## 3.検証の待機 -{% partial file="/@l10n/ja/docs/_snippets/wait-for-validation.md" /%} +{% partial file="/@l10n/ja/docs/_snippets/wait-for-validation.md" /%} ## 4.Escrowが作成されたことの確認 @@ -124,7 +128,6 @@ print(release_date_ripple) {% /tabs %} - ## 6.EscrowFinishトランザクションの送信 `FinishAfter`の時刻が経過した後で資金のリリースを実行する[EscrowFinishトランザクション][]に[署名して送信](../../../../concepts/transactions/index.md#トランザクションへの署名とトランザクションの送信)します。トランザクションの`Owner`フィールドにEscrowCreateトランザクションの`Account`アドレスを設定し、`OfferSequence` にEscrowCreateトランザクションの`Sequence`番号を設定します。時刻のみに基づいて保留されているEscrowの場合は、`Condition`フィールドと`Fulfillment`フィールドを省略します。 @@ -133,7 +136,7 @@ print(release_date_ripple) Escrowが有効期限切れの場合は、[Escrowの取消し](cancel-an-expired-escrow.md)だけが可能です。 -{% partial file="/@l10n/ja/docs/_snippets/secret-key-warning.md" /%} +{% partial file="/@l10n/ja/docs/_snippets/secret-key-warning.md" /%} リクエスト: @@ -159,7 +162,7 @@ Escrowが有効期限切れの場合は、[Escrowの取消し](cancel-an-expired ## 7.検証の待機 -{% partial file="/@l10n/ja/docs/_snippets/wait-for-validation.md" /%} +{% partial file="/@l10n/ja/docs/_snippets/wait-for-validation.md" /%} ## 8.最終結果の確認 diff --git a/@l10n/ja/docs/tutorials/how-tos/use-specialized-payment-types/use-payment-channels/index.md b/@l10n/ja/docs/tutorials/how-tos/use-specialized-payment-types/use-payment-channels/index.md index 047f26e3b9..342eddab4b 100644 --- a/@l10n/ja/docs/tutorials/how-tos/use-specialized-payment-types/use-payment-channels/index.md +++ b/@l10n/ja/docs/tutorials/how-tos/use-specialized-payment-types/use-payment-channels/index.md @@ -2,11 +2,12 @@ html: use-payment-channels.html parent: use-specialized-payment-types.html seo: - description: Payment Channelは、少額の単位に分割可能な「非同期」のXRPペイメントを送信し、後日決済する高度な機能です。このチュートリアルでは、全体的なPayment Channelの使用方法を、ローカルのrippledサーバのJSON-RPC APIを使用する例を使って説明します。 + description: Payment Channelは、少額の単位に分割可能な「非同期」のXRPペイメントを送信し、後日決済する高度な機能です。このチュートリアルでは、全体的なPayment Channelの使用方法を、ローカルのrippledサーバのJSON-RPC APIを使用する例を使って説明します。 labels: - Payment Channel - スマートコントラクト --- + # Payment Channelの使用 Payment Channelは、少額の単位に分割可能な「非同期」のXRPペイメントを送信し、後日決済する高度な機能です。このチュートリアルでは、全体的な[Payment Channel](../../../../concepts/payment-types/payment-channels.md)の使用方法を、ローカル`rippled`サーバの[JSON-RPC API](../../../../references/http-websocket-apis/index.md)を使用する例を使って説明します。 @@ -17,12 +18,12 @@ Payment Channelは、少額の単位に分割可能な「非同期」のXRPペ このチュートリアルでは、例として以下のアドレスを使用します。 -| | | -|--|--| -| **支払人のアドレス** | rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH | -| **Channelに使用する公開鍵(XRP Ledgerの[base58][]エンコード文字列フォーマット)** | aB44YfzW24VDEJQ2UuLPV2PvqcPCSoLnL7y5M1EzhdW4LnK5xMS3 -| **Channelに使用する公開鍵(16進数)** | 023693F15967AE357D0327974AD46FE3C127113B1110D6044FD41E723689F81CC6 | -| **受取人のアドレス** | rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn | +| | | +| --------------------------------------------------------------------------------- | ------------------------------------------------------------------ | +| **支払人のアドレス** | rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH | +| **Channelに使用する公開鍵(XRP Ledgerの[base58][]エンコード文字列フォーマット)** | aB44YfzW24VDEJQ2UuLPV2PvqcPCSoLnL7y5M1EzhdW4LnK5xMS3 | +| **Channelに使用する公開鍵(16進数)** | 023693F15967AE357D0327974AD46FE3C127113B1110D6044FD41E723689F81CC6 | +| **受取人のアドレス** | rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn | {% admonition type="success" name="ヒント" %}この例では、Channelの公開鍵は支払人のマスターキーペアの公開鍵です。これは完全に安全であり有効です。また、支払人のみが異なるキーペアの公開鍵と秘密鍵を把握している場合に限り、そのキーペアを使用することも完全に安全であり有効です。 {% /admonition %} @@ -33,6 +34,7 @@ Payment Channelは、少額の単位に分割可能な「非同期」のXRPペ Payment Channelに使用できるXRPの額に制限はありません。このチュートリアルで使用されているサンプルの値では、Payment Channelで100 XRP(`100000000` drop)が少なくとも1日間は確保されます。 ## フローチャート + [フローチャート]: #フローチャート 次の図は、Payment Channelのライフサイクルの概要を示します。 @@ -106,7 +108,6 @@ Content-Type: application/json } ``` - `submit`リクエストに対する直接のレスポンスには、トランザクションを識別する`hash`値を含む _暫定的な_ 結果が含まれています。支払人は、検証済みレジャーでトランザクションの _最終_ 結果を確認し、メタデータからChannel IDを取得する必要があります。この処理は`tx`コマンドを使用して実行できます。 リクエスト: @@ -172,8 +173,7 @@ Content-Type: application/json - トランザクションの`meta`フィールドで、`TransactionResult`が`tesSUCCESS`であることを確認します。 - データが検証済みレジャーのデータであることを示す`"validated":true`がレスポンスに含まれていることを確認します。(結果`tesSUCCESS`は、検証済みレジャーバージョンに記録されている場合にのみ[最終的な](../../../../concepts/transactions/finality-of-results/index.md)結果です。) - トランザクションの`meta`フィールドの`AffectedNodes`配列で、`LedgerEntryType`が`PayChannel`である`CreatedNode`オブジェクトを検索します。`CreatedNode`オブジェクトの`LedgerIndex`フィールドはChannel IDを示します。(上記の例では、これは「5DB0...」で始まる16進文字列です。)Channel IDは、後でクレームに署名する際に必要です。 - PayChannelレジャーオブジェクトタイプの詳細については、[PayChannelレジャーオブジェクト](../../../../references/protocol/ledger-data/ledger-entry-types/paychannel.md)をご覧ください。 - + PayChannelレジャーオブジェクトタイプの詳細については、[PayChannelレジャーオブジェクト](../../../../references/protocol/ledger-data/ledger-entry-types/paychannel.md)をご覧ください。 ## 2. 受取人がPayment Channelの特性を確認します。 @@ -229,7 +229,6 @@ Content-Type: application/json 2名の当事者間に複数のChannelが存在している可能性があるため、受取人が正しいChannelのクオリティを確認することが重要です。混乱する場合は、使用するChannelのChannel ID(`channel_id`)を支払人が明確にする必要があります。 - ## 3. 支払人がChannelのXRPに対して1つ以上の署名付き _クレーム_ を作成します。 これらのクレームの額は、支払人が購入する具体的な商品またはサービスに応じて異なります。 @@ -265,18 +264,17 @@ Content-Type: application/json } ``` - ## 4. 支払人が、商品またはサービスに対する支払いとしてクレームを受取人に送信します。 この通信は、支払人と受取人が合意できる通信システムで「レジャー外」で行われます。これには安全な通信を使用する必要がありますが、必須ではありません。Channelの支払人または受取人がそのChannelに対するクレームを清算できます。 クレームで以下の情報が伝達される限り、クレームの厳密なフォーマットは重要ではありません。 -| フィールド | 例 | -|:------------------------|:---------------------------------------------------| -| Channel ID | `5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3` | -| XRPの額(drop単位) | `1000000` | -| 署名 | `304402204EF0AFB78AC23ED1C472E74F4299C0C21F1B21D07EFC0A3838A420F76D783A`
`400220154FB11B6F54320666E4C36CA7F686C16A3A0456800BBC43746F34AF50290064` _(注記: この長い文字列は1行に収まるように改行されています)_ | +| フィールド | 例 | +| :------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Channel ID | `5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3` | +| XRPの額(drop単位) | `1000000` | +| 署名 | `304402204EF0AFB78AC23ED1C472E74F4299C0C21F1B21D07EFC0A3838A420F76D783A`
`400220154FB11B6F54320666E4C36CA7F686C16A3A0456800BBC43746F34AF50290064` _(注記: この長い文字列は1行に収まるように改行されています)_ | 受取人は、Channelに関連付けられている公開鍵も把握する必要があります。この鍵は、Channelの存続期間中変更されることはありません。 @@ -364,23 +362,21 @@ Content-Type: application/json - Channelの`expiration`(変更可能な有効期限)がある場合は、この期限が早過ぎないことを確認します。受取人はこの期限の前にクレームを清算する必要があります。 - クレームの`amount`がChannelの`amount`以下であることを確認します。クレームの`amount`の方が大きい場合、支払人が[PaymentChannelFundトランザクション][]を使用してChannelで使用可能なXRPの合計額を増加しない限り、クレームを清算できません。 - Channelの`balance`が、受取人がすでにChannelから受領していると予測している額と一致していることを確認します。これらの金額が一致しない場合、受取人はChannelのトランザクション履歴を再度確認する必要があります。不一致の原因として以下のものが考えられます。 - - 支払人が[PaymentChannelClaim][]トランザクションを使用してChannelから受取人にXRPを送金したところ、受取人がこれに気付かず、着信トランザクションを記録していなかった。 - - 受取人のレコードに、「処理中」のトランザクションや、最新の検証済みレジャーバージョンにはまだ記録されていないトランザクションが含まれていた。受取人は[txメソッド][]を使用して個々のトランザクションの状態を調べ、この点を確認できます。 - - `account_channels`リクエストに正しいレジャーバージョンが指定されていなかった。(最新の検証済みバージョンを確認するには、`"ledger_index":"validated”`を使用します) - - 受取人は以前にXRPを清算したものの、記録し忘れていた。 - - 受取人がXRPの清算を試行し、暫定的な結果を記録したが、トランザクションの最終的な検証済みの結果がこれとは異なり、受取人はこの最終検証済み結果を記録し忘れていた。 - - 受取人が照会した`rippled`サーバが、ネットワークの他の部分と同期していない状態であったか、または不明なバグが発生した。サーバの状態を確認するには、[server_infoメソッド][]を使用します。(この状況を再現できる場合は、[問題を報告してください](https://github.com/XRPLF/rippled/issues/)。) + - 支払人が[PaymentChannelClaim][]トランザクションを使用してChannelから受取人にXRPを送金したところ、受取人がこれに気付かず、着信トランザクションを記録していなかった。 + - 受取人のレコードに、「処理中」のトランザクションや、最新の検証済みレジャーバージョンにはまだ記録されていないトランザクションが含まれていた。受取人は[txメソッド][]を使用して個々のトランザクションの状態を調べ、この点を確認できます。 + - `account_channels`リクエストに正しいレジャーバージョンが指定されていなかった。(最新の検証済みバージョンを確認するには、`"ledger_index":"validated”`を使用します) + - 受取人は以前にXRPを清算したものの、記録し忘れていた。 + - 受取人がXRPの清算を試行し、暫定的な結果を記録したが、トランザクションの最終的な検証済みの結果がこれとは異なり、受取人はこの最終検証済み結果を記録し忘れていた。 + - 受取人が照会した`rippled`サーバが、ネットワークの他の部分と同期していない状態であったか、または不明なバグが発生した。サーバの状態を確認するには、[server_infoメソッド][]を使用します。(この状況を再現できる場合は、[問題を報告してください](https://github.com/XRPLF/rippled/issues/)。) 受取人がPayment Channelの署名と現行状態の両方を確認した後で、XRPをまだ受領していない場合、XRPを清算するトランザクションがChannelの有効期限より前に処理される限り、XRPを確実に清算 _できます_ 。 - ## 6. 受取人が商品またはサービスを提供します。 この時点で受取人は支払がすでに保証されていることを把握しているので、商品またはサービスを支払人に提供できます。 このチュートリアルに関して、受取人は支払人に「商品およびサービス」としてハイタッチまたは同等のオンラインメッセージを送信できます。 - ## 7. 必要に応じてステップ3~6を繰り返します。 支払人と受取人はXRP Ledger自体を待つことなく、ステップ3~6(商品およびサービスと交換するクレームの作成、送信、検証)を必要な回数と間隔で繰り返すことができます。この処理に関する2つの主な制限を以下に示します。 @@ -389,7 +385,6 @@ Content-Type: application/json - Payment Channelの変更可能な有効期限(設定されている場合)。(これは[account_channelsメソッド][]に対するレスポンスの`cancel_after`フィールドに表示されます。) - ## 8. 準備が完了すれば、受取人は承認された額のクレームを清算します。 この時点で受取人は最終的にChannelからXRPを受領します。 @@ -639,7 +634,6 @@ Channelは期限切れ状態で永久にレジャーに残ることがありま これらのフィールドは、Payment Channelが閉鎖したことを示しています。 - ## 結論 これでPayment Channelの使用法のチュートリアルを終了します。ユーザが、Payment Channelのスピードと利便性を最大限に活用できる独特で興味深い用途を考えることが推奨されます。 diff --git a/@l10n/ja/docs/tutorials/how-tos/use-tokens/index.md b/@l10n/ja/docs/tutorials/how-tos/use-tokens/index.md index 291bd04584..be3eb9e41c 100644 --- a/@l10n/ja/docs/tutorials/how-tos/use-tokens/index.md +++ b/@l10n/ja/docs/tutorials/how-tos/use-tokens/index.md @@ -4,9 +4,9 @@ parent: tasks.html metadata: indexPage: true --- + # トークンの利用 XRP Ledgerでトークン(代替型やそれ以外)を発行し、取引しましょう - {% child-pages /%} diff --git a/@l10n/ja/docs/tutorials/http-websocket-apis/get-started.md b/@l10n/ja/docs/tutorials/http-websocket-apis/get-started.md index e141879c34..1fd50feb65 100644 --- a/@l10n/ja/docs/tutorials/http-websocket-apis/get-started.md +++ b/@l10n/ja/docs/tutorials/http-websocket-apis/get-started.md @@ -2,7 +2,7 @@ html: get-started-using-http-websocket-apis.html parent: http-websocket-apis-tutorials.html seo: - description: XRP Ledgerの操作に使用できるAPIとライブラリを使い始めましょう。 + description: XRP Ledgerの操作に使用できるAPIとライブラリを使い始めましょう。 cta_text: 開始しよう top_nav_name: HTTP / WebSocket top_nav_grouping: 始めましょう @@ -10,6 +10,7 @@ labels: - 開発 showcase_icon: assets/img/logos/globe.svg --- + # HTTP / WebSocket APIの使用開始 自分の好みのプログラミング言語の[クライアント・ライブラリ](../../references/client-libraries.md)を持っていなかったり、使いたくなかったりする場合は、XRP Ledgerのコアサーバソフトウェアである[`rippled`](../../concepts/networks-and-servers/index.md)のAPIを通して直接XRP Ledgerにアクセスすることができます。このサーバはJSON-RPCとWebSocketプロトコルでAPIを提供します。もし`rippled`(install-rippled.html)のインスタンスを実行しない場合でも、[公開サーバ][public servers]を利用することができます。 @@ -25,14 +26,12 @@ JSON-RPCとWebSocketはどちらもHTTPベースのプロトコルであり、 どちらのAPIも暗号化されていない接続(`http://`と`ws://`)とTLSを使って暗号化された接続(`https://`と`wss://`)があります。暗号化されていない接続はオープンネットワーク上で提供すべきではありませんが、クライアントがサーバと同じマシン上にある場合は使用できます。 - ## 管理者アクセス権限 `rippled`サーバの[管理メソッド](../../references/http-websocket-apis/admin-api-methods/index.md)を使用するには、次のように行います。この場合、サーバのバインド用として設定したIPアドレスとポートを使用する必要があります(例えば`127.0.0.1:54321`)。また、管理機能にアクセスするには、構成ファイルで**管理用としてマークされているポートおよびIPアドレス**から接続しなければなりません。 [構成ファイルの例](https://github.com/XRPLF/rippled/blob/8429dd67e60ba360da591bfa905b58a35638fda1/cfg/rippled-example.cfg#L1050-L1073)では、ローカルループバックネットワーク上(127.0.0.1)のポート5005でJSON-RPC(HTTP)、ポート6006でWebSocket(WS)の接続をリッスンし、接続されるすべてのクライアントを管理者として扱っています。 - ## WebSocket API いくつかのメソッドをXRP Ledgerで試すことを予定している場合は、独自のWebSocketコードを記述することなく、[WebSocket APIツール](/resources/dev-tools/websocket-api-tool)でAPIをすぐに使用できます。後ほど、独自の`rippled`サーバへの接続が必要となった時点で、Web Socket接続をサポートした[独自のクライアントを構築](monitor-incoming-payments-with-websocket.md)したり[クライアントライブラリ](../../references/client-libraries.md)を利用することが可能です。 @@ -96,7 +95,6 @@ APIメソッドの完全なリストについては、こちらをご覧くだ - [パブリックな`rippled`メソッド](../../references/http-websocket-apis/public-api-methods/index.md): レジャーからのデータの検索やトランザクションの送信など、パブリックサーバで利用可能なメソッドです。 - [管理用`rippled`メソッド](../../references/http-websocket-apis/admin-api-methods/index.md): [管理者向け](../../infrastructure/installation/install-rippled-on-ubuntu.md)の`rippled`サーバを管理するためのメソッドです。 - ## 関連項目 - **コンセプト:** diff --git a/@l10n/ja/docs/tutorials/http-websocket-apis/index.md b/@l10n/ja/docs/tutorials/http-websocket-apis/index.md index 40f0d8b410..45608e3841 100644 --- a/@l10n/ja/docs/tutorials/http-websocket-apis/index.md +++ b/@l10n/ja/docs/tutorials/http-websocket-apis/index.md @@ -5,9 +5,9 @@ top_nav_grouping: カテゴリ metadata: indexPage: true --- + # HTTP / Websocket API HTTP / Websocket APIのXRPLチュートリアルです。 - {% child-pages /%} diff --git a/@l10n/ja/docs/tutorials/http-websocket-apis/monitor-incoming-payments-with-websocket.md b/@l10n/ja/docs/tutorials/http-websocket-apis/monitor-incoming-payments-with-websocket.md index 2b4dc7b233..03350add1d 100644 --- a/@l10n/ja/docs/tutorials/http-websocket-apis/monitor-incoming-payments-with-websocket.md +++ b/@l10n/ja/docs/tutorials/http-websocket-apis/monitor-incoming-payments-with-websocket.md @@ -2,12 +2,13 @@ html: monitor-incoming-payments-with-websocket.html parent: http-websocket-apis-tutorials.html seo: - description: WebSocket APIを使用して、新しいXRPペイメントなどを積極的に監視します。 + description: WebSocket APIを使用して、新しいXRPペイメントなどを積極的に監視します。 filters: - interactive_steps labels: - 支払い --- + # WebSocketを使用した着信ペイメントの監視 このチュートリアルでは、[WebSocket `rippled` API](../../references/http-websocket-apis/index.md)を使用して、着信[ペイメント](../../concepts/payment-types/index.md)を監視する方法を説明します。すべてのXRP Ledgerトランザクションは公開されているため、誰もが任意のアドレスへの着信ペイメントを監視できます。 @@ -47,10 +48,10 @@ function writeToConsole(console_selector, message) { const socket = new WebSocket('wss://s.altnet.rippletest.net:51233') socket.addEventListener('open', (event) => { // This callback runs when the connection is open - console.log("Connected!") + console.log('Connected!') const command = { - "id": "on_open_ping_1", - "command": "ping" + id: 'on_open_ping_1', + command: 'ping', } socket.send(JSON.stringify(command)) }) @@ -79,6 +80,7 @@ const socket = new WebSocket('ws://localhost:6006') Connection status: Not connected +
Console:
(Log is empty)
@@ -113,13 +115,11 @@ $("#connect-socket-button").click((event) => { }) - ## 2. ハンドラーへの着信メッセージのディスパッチ WebSocket接続では、複数のメッセージをどちらの方向にも送信することが可能で、リクエストとレスポンスの間に厳密な1:1の相互関係がないため、各着信メッセージに対応する処理を識別する必要があります。この処理をコーディングする際の優れたモデルとして、「ディスパッチャー」関数の設定が挙げられます。この関数は着信メッセージを読み取り、各メッセージを正しいコードのパスに中継して処理します。メッセージを適切にディスパッチできるように、`rippled`サーバでは、すべてのWebSocketメッセージで`type`フィールドを使用できます。 - クライアント側からのリクエストへの直接のレスポンスとなるメッセージの場合、`type`は文字列の`response`です。この場合、サーバは以下も提供します。 - - このレスポンスに対するリクエストで指定された`id`に一致する`id`フィールド(レスポンスが順序どおりに到着しない可能性があるため、これは重要です)。 - APIがリクエストの処理に成功したかどうかを示す`status`フィールド。文字列値`success`は、[成功したレスポンス](../../references/http-websocket-apis/api-conventions/response-formatting.md)を示します。文字列値`error`は、[エラー](../../references/http-websocket-apis/api-conventions/error-formatting.md)を示します。 @@ -134,41 +134,41 @@ WebSocket接続では、複数のメッセージをどちらの方向にも送 ```js const AWAITING = {} -const handleResponse = function(data) { - if (!data.hasOwnProperty("id")) { - console.error("Got response event without ID:", data) +const handleResponse = function (data) { + if (!data.hasOwnProperty('id')) { + console.error('Got response event without ID:', data) return } if (AWAITING.hasOwnProperty(data.id)) { AWAITING[data.id].resolve(data) } else { - console.error("Response to un-awaited request w/ ID " + data.id) + console.error('Response to un-awaited request w/ ID ' + data.id) } } let autoid_n = 0 function api_request(options) { - if (!options.hasOwnProperty("id")) { - options.id = "autoid_" + (autoid_n++) + if (!options.hasOwnProperty('id')) { + options.id = 'autoid_' + autoid_n++ } - let resolveHolder; + let resolveHolder AWAITING[options.id] = new Promise((resolve, reject) => { // Save the resolve func to be called by the handleResponse function later resolveHolder = resolve try { // Use the socket opened in the previous example... socket.send(JSON.stringify(options)) - } catch(error) { + } catch (error) { reject(error) } }) - AWAITING[options.id].resolve = resolveHolder; + AWAITING[options.id].resolve = resolveHolder return AWAITING[options.id] } const WS_HANDLERS = { - "response": handleResponse + response: handleResponse, // Fill this out with your handlers in the following format: // "type": function(event) { /* handle event of this type */ } } @@ -178,15 +178,15 @@ socket.addEventListener('message', (event) => { // Call the mapped handler WS_HANDLERS[parsed_data.type](parsed_data) } else { - console.log("Unhandled message from server", event) + console.log('Unhandled message from server', event) } }) // Demonstrate api_request functionality async function pingpong() { - console.log("Ping...") - const response = await api_request({command: "ping"}) - console.log("Pong!", response) + console.log('Ping...') + const response = await api_request({ command: 'ping' }) + console.log('Pong!', response) } pingpong() ``` @@ -195,6 +195,7 @@ pingpong() +
Responses
(Log is empty)
@@ -273,25 +274,31 @@ $("#dispatch_ping").click((event) => { ```js async function do_subscribe() { const sub_response = await api_request({ - command:"subscribe", - accounts: ["rUCzEr6jrEyMpjhs4wSdQdz4g8Y382NxfM"] + command: 'subscribe', + accounts: ['rUCzEr6jrEyMpjhs4wSdQdz4g8Y382NxfM'], }) - if (sub_response.status === "success") { - console.log("Successfully subscribed!") + if (sub_response.status === 'success') { + console.log('Successfully subscribed!') } else { - console.error("Error subscribing: ", sub_response) + console.error('Error subscribing: ', sub_response) } } do_subscribe() -const log_tx = function(tx) { - console.log(tx.transaction.TransactionType + " transaction sent by " + - tx.transaction.Account + - "\n Result: " + tx.meta.TransactionResult + - " in ledger " + tx.ledger_index + - "\n Validated? " + tx.validated) +const log_tx = function (tx) { + console.log( + tx.transaction.TransactionType + + ' transaction sent by ' + + tx.transaction.Account + + '\n Result: ' + + tx.meta.TransactionResult + + ' in ledger ' + + tx.ledger_index + + '\n Validated? ' + + tx.validated, + ) } -WS_HANDLERS["transaction"] = log_tx +WS_HANDLERS['transaction'] = log_tx ``` 以下の例では、別のウィンドウまたは別のデバイスで[Transaction Sender](/resources/dev-tools/tx-sender)を開くことと、サブスクライブしているアドレスへのトランザクションの送信を試みます。 @@ -301,6 +308,7 @@ WS_HANDLERS["transaction"] = log_tx +
Transactions
(Log is empty)
@@ -348,7 +356,6 @@ WS_HANDLERS["transaction"] = log_tx - **`transaction.Account`** フィールドはトランザクションの送信元です。他の人が送信したトランザクションのみを探している場合は、このフィールドがあなたのアドレスと一致するトランザクションを無視できます(自身に対するクロスカレンシー支払いが _可能である_ 点に注意してください)。 - **`transaction.TransactionType`フィールド**はトランザクションのタイプです。アカウントに通貨を送金できる可能性があるトランザクションのタイプは以下のとおりです。 - - **[Paymentトランザクション][]** はXRPまたは[トークン](../../concepts/tokens/index.md)を送金できます。受取人のアドレスを含んでいる`transaction.Destination`フィールドによってこれらを絞り込み、必ず`meta.delivered_amount`を使用して実際に支払われた額を確認します。XRPの額は、[文字列のフォーマットで記述されます](../../references/protocol/data-types/basic-data-types.md#通貨額の指定)。 {% admonition type="danger" name="警告" %}代わりに`transaction.Amount`フィールドを使用すると、[Partial Paymentの悪用](../../concepts/payment-types/partial-payments.md#partial-paymentの悪用)に対して脆弱になる可能性があります。不正使用者はこの悪用を行ってあなたをだまし、あなたが支払ったよりも多くの金額を交換または引き出すことができます。{% /admonition %} @@ -372,6 +379,7 @@ WS_HANDLERS["transaction"] = log_tx {% interactive-block label="Read Payments" steps=$frontmatter.steps %} +
Transactions
(Log is empty)
diff --git a/@l10n/ja/docs/tutorials/index.md b/@l10n/ja/docs/tutorials/index.md index 2749f0156c..565857ccae 100644 --- a/@l10n/ja/docs/tutorials/index.md +++ b/@l10n/ja/docs/tutorials/index.md @@ -1,7 +1,8 @@ --- seo: - description: 開発者向けの暗号資産ウォレットやブロックチェーンのチュートリアルで、XRP Ledgerを使った開発方法を学びましょう。 + description: 開発者向けの暗号資産ウォレットやブロックチェーンのチュートリアルで、XRP Ledgerを使った開発方法を学びましょう。 --- + # 暗号資産ウォレットやブロックチェーン開発のチュートリアル XRP Ledgerを学び、使い始め、そして高度なユースケースで使用するための手順を説明します。 @@ -37,5 +38,4 @@ XRP Ledgerを学び、使い始め、そして高度なユースケースで使 {% xrpl-card title="トークンの利用" body="XRP Ledgerでトークン(代替可能またはそれ以外)を作成し、取引しましょう。" href="/docs/tutorials/how-tos/use-tokens/" /%} {% xrpl-card title="XRPLサイドチェーンの利用" body="メインネットからXRPLサイドチェーンにXRPやトークンをブリッジしましょう。" href="/docs/tutorials/how-tos/use-xrpl-sidechains/" /%} - {% /card-grid %} diff --git a/@l10n/ja/docs/tutorials/java/index.md b/@l10n/ja/docs/tutorials/java/index.md index 6db44f8c31..c64ac61c68 100644 --- a/@l10n/ja/docs/tutorials/java/index.md +++ b/@l10n/ja/docs/tutorials/java/index.md @@ -5,9 +5,9 @@ top_nav_grouping: カテゴリ metadata: indexPage: true --- + # Java JavaでのXRPLチュートリアルです。 - {% child-pages /%} diff --git a/@l10n/ja/docs/tutorials/javascript/get-started.md b/@l10n/ja/docs/tutorials/javascript/get-started.md index efd0aaa7b4..411645a547 100644 --- a/@l10n/ja/docs/tutorials/javascript/get-started.md +++ b/@l10n/ja/docs/tutorials/javascript/get-started.md @@ -2,36 +2,34 @@ html: get-started-using-javascript.html parent: javascript.html seo: - description: XRP Ledgerを参照するためのエントリレベルのJavaScriptアプリケーションを構築します。 + description: XRP Ledgerを参照するためのエントリレベルのJavaScriptアプリケーションを構築します。 top_nav_name: JavaScript top_nav_grouping: 始めましょう labels: - 開発 showcase_icon: assets/img/logos/javascript.svg --- + # JavaScriptを使ってみよう このチュートリアルでは、JavaScriptまたはTypeScript向けのクライアントライブラリである [`xrpl.js`](https://github.com/XRPLF/xrpl.js/) を使用して、Node.jsまたはウェブブラウザでXRP Ledgerに接続されたアプリケーションを構築するための基本的な手順を説明します。 本ガイドで使用しているスクリプトや設定ファイルは、{% repo-link path="_code-samples/get-started/js/" %}本サイトのGitHubリポジトリ{% /repo-link %}で公開されています。 - ## 学習目標 このチュートリアルでは、以下のことを学びます。 -* XRP Ledgerベースのアプリケーションの基本構成要素。 -* xrpl.jsを使ったXRP Ledgerへの接続方法。 -* xrpl.jsを使った[テストネット](/resources/dev-tools/xrp-faucets)でのウォレット生成方法。 -* `xrpl.js`ライブラリを使った、XRP Ledgerアカウント情報の検索方法。 -* How to put these steps together to create a simple JavaScript app or web-app. - +- XRP Ledgerベースのアプリケーションの基本構成要素。 +- xrpl.jsを使ったXRP Ledgerへの接続方法。 +- xrpl.jsを使った[テストネット](/resources/dev-tools/xrp-faucets)でのウォレット生成方法。 +- `xrpl.js`ライブラリを使った、XRP Ledgerアカウント情報の検索方法。 +- How to put these steps together to create a simple JavaScript app or web-app. ## 前提条件 このチュートリアルを実行するには、JavaScriptでコードを書き、小さなJavaScriptプロジェクトを管理することにある程度慣れている必要があります。ブラウザでは、JavaScriptをサポートする最新のWebブラウザであれば問題なく使用できます。Node.jsでは、**バージョン14**を推奨します。Node.jsのバージョン12と16も定期的にテストされています。 - ## npmを使用したインストール 空のフォルダを作成して新しいプロジェクトを開始し、そのフォルダに移動して[NPM](https://www.npmjs.com/)で最新版のxrpl.jsをインストールします。 @@ -40,7 +38,6 @@ showcase_icon: assets/img/logos/javascript.svg npm install xrpl ``` - ## 作り始めましょう XRP Ledgerを使用する際には、XRPを[ウォレット](../../introduction/crypto-wallets.md)に追加したり、[分散型取引所](../../concepts/tokens/decentralized-exchange/index.md)と統合したり、[トークンを発行](../../concepts/tokens/index.md)したりと、管理しなければならないことがいくつかあります。このチュートリアルでは、これらすべてのユースケースを始めるための共通の基本パターンを説明し、それらを実装するためのサンプルコードを提供します。 @@ -80,10 +77,9 @@ npm install xrpl その後、ライブラリをインポートします。 ```js -const xrpl = require("xrpl") +const xrpl = require('xrpl') ``` - ### 2. XRP Ledgerへの接続 参照や取引を行うには、XRP Ledgerへの接続を確立する必要があります。`xrpl.js`でこれを行うには、`Client`クラスのインスタンスを作成し、`connect()`メソッドを使用します。 @@ -96,24 +92,23 @@ const xrpl = require("xrpl") 前節のサンプルコードでは、利用可能な[並列ネットワーク](../../concepts/networks-and-servers/parallel-networks.md)の1つであるTestnetに接続する方法を紹介しました。本番環境に移行するには、XRP Ledger Mainnetに接続する必要があります。それには2つの方法があります。 -* [コアサーバをインストール](../../infrastructure/installation/index.md) (`rippled`)して、自分でノードを動かしてみましょう。コアサーバはデフォルトではMainnetに接続しますが、設定を変更してTestnetやDevnetを使うこともできます](connect-your-rippled-to-thexrp-test-net.html)。[独自のコアサーバを運用するのには良い理由があります](../../concepts/networks-and-servers/index.md#reasons-to-run-your-own-server)。独自のサーバを走らせた場合、次のようにして接続することができます。 +- [コアサーバをインストール](../../infrastructure/installation/index.md) (`rippled`)して、自分でノードを動かしてみましょう。コアサーバはデフォルトではMainnetに接続しますが、設定を変更してTestnetやDevnetを使うこともできます](connect-your-rippled-to-thexrp-test-net.html)。[独自のコアサーバを運用するのには良い理由があります](../../concepts/networks-and-servers/index.md#reasons-to-run-your-own-server)。独自のサーバを走らせた場合、次のようにして接続することができます。 - ``` - const MY_SERVER = "ws://localhost:6006/" - const client = new xrpl.Client(MY_SERVER) - await client.connect() - ``` + ``` + const MY_SERVER = "ws://localhost:6006/" + const client = new xrpl.Client(MY_SERVER) + await client.connect() + ``` - デフォルト値の詳細については、[コアサーバ設定ファイル](https://github.com/XRPLF/rippled/blob/c0a0b79d2d483b318ce1d82e526bd53df83a4a2c/cfg/rippled-example.cfg#L1562)の例をご覧ください。 + デフォルト値の詳細については、[コアサーバ設定ファイル](https://github.com/XRPLF/rippled/blob/c0a0b79d2d483b318ce1d82e526bd53df83a4a2c/cfg/rippled-example.cfg#L1562)の例をご覧ください。 -* 利用可能な[公開サーバ][]を利用する: - - ``` - const PUBLIC_SERVER = "wss://xrplcluster.com/" - const client = new xrpl.Client(PUBLIC_SERVER) - await client.connect() - ``` +- 利用可能な[公開サーバ][]を利用する: + ``` + const PUBLIC_SERVER = "wss://xrplcluster.com/" + const client = new xrpl.Client(PUBLIC_SERVER) + await client.connect() + ``` ### 3. ウォレットの作成 @@ -130,7 +125,7 @@ const test_wallet = xrpl.Wallet.generate() また、[base58][]でエンコードされたシードをすでに持っている場合は、次のようにしてそのシードからWalletをインスタンス化することができます。 ```js -const test_wallet = xrpl.Wallet.fromSeed("sn3nxiW7v8KXzPzAqzyHXbSSKNuN9") // テスト用シークレット、本番環境では使用しないでください +const test_wallet = xrpl.Wallet.fromSeed('sn3nxiW7v8KXzPzAqzyHXbSSKNuN9') // テスト用シークレット、本番環境では使用しないでください ``` ### 4. XRP Ledgerの参照 @@ -139,36 +134,33 @@ const test_wallet = xrpl.Wallet.fromSeed("sn3nxiW7v8KXzPzAqzyHXbSSKNuN9") // テ {% code-snippet file="/_code-samples/get-started/js/get-acct-info.js" from="// Get info" before="// Listen to ledger close events" language="js" /%} - ### 5. イベントのListen XRP Ledgerの[コンセンサス プロセス](../../concepts/consensus-protocol/index.md)が新しい[レジャーバージョン](../../concepts/ledgers/index.md)を生成したときなど、`xrpl.js`ではさまざまなタイプのイベントのハンドラを設定することができます。そのためには、まず[subscribeメソッド][]を呼び出して欲しいイベントの種類を取得し、クライアントの`on(eventType, callback)`メソッドを使ってイベントハンドラをアタッチします。 {% code-snippet file="/_code-samples/get-started/js/get-acct-info.js" from="// Listen to ledger close events" before="// Disconnect when done" language="js" /%} - ## 作り続けましょう これで、`xrpl.js`を使って、XRP Ledgerに接続したり、ウォレットを生成したり、アカウントの情報を調べたりする方法がわかりました。 次のようなことも可能です。 -* [XRPの送信](../how-tos/send-xrp.md). -* [代替可能トークンの発行](../how-tos/use-tokens/issue-a-fungible-token.md) -* アカウントに[安全な署名](../../concepts/transactions/secure-signing.md) を設定する。 - +- [XRPの送信](../how-tos/send-xrp.md). +- [代替可能トークンの発行](../how-tos/use-tokens/issue-a-fungible-token.md) +- アカウントに[安全な署名](../../concepts/transactions/secure-signing.md) を設定する。 ## 関連記事 - **概念:** - - [XRP Ledger Overview](/about/) - - [クライアントライブラリ](../../references/client-libraries.md) + - [XRP Ledger Overview](/about/) + - [クライアントライブラリ](../../references/client-libraries.md) - **Tutorials:** - - [XRPの送信](../how-tos/send-xrp.md) + - [XRPの送信](../how-tos/send-xrp.md) - **References:** - - [`xrpl.js` リファレンス](https://js.xrpl.org/) - - [Public API Methods](../../references/http-websocket-apis/public-api-methods/index.md) - - [API規約](../../references/http-websocket-apis/api-conventions/index.md) - - [base58 エンコード](../../references/protocol/data-types/base58-encodings.md) - - [トランザクションフォーマット](../../references/protocol/transactions/index.md) + - [`xrpl.js` リファレンス](https://js.xrpl.org/) + - [Public API Methods](../../references/http-websocket-apis/public-api-methods/index.md) + - [API規約](../../references/http-websocket-apis/api-conventions/index.md) + - [base58 エンコード](../../references/protocol/data-types/base58-encodings.md) + - [トランザクションフォーマット](../../references/protocol/transactions/index.md) {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/docs/tutorials/javascript/index.md b/@l10n/ja/docs/tutorials/javascript/index.md index 5ab303d25a..ec4fac29c3 100644 --- a/@l10n/ja/docs/tutorials/javascript/index.md +++ b/@l10n/ja/docs/tutorials/javascript/index.md @@ -5,9 +5,9 @@ top_nav_grouping: カテゴリ metadata: indexPage: true --- + # JavaScript JavaScriptでのXRPLチュートリアルです。 - {% child-pages /%} diff --git a/@l10n/ja/docs/tutorials/javascript/nfts/index.md b/@l10n/ja/docs/tutorials/javascript/nfts/index.md index 79438b3a7e..9f2318ef7f 100644 --- a/@l10n/ja/docs/tutorials/javascript/nfts/index.md +++ b/@l10n/ja/docs/tutorials/javascript/nfts/index.md @@ -5,9 +5,9 @@ top_nav_grouping: カテゴリ metadata: indexPage: true --- + # JavaScriptを使ったNFT XRP Ledger上でNFTのミントと販売を行います。 - {% child-pages /%} diff --git a/@l10n/ja/docs/tutorials/public-servers.md b/@l10n/ja/docs/tutorials/public-servers.md index 2861cf9e2f..8a276bcb97 100644 --- a/@l10n/ja/docs/tutorials/public-servers.md +++ b/@l10n/ja/docs/tutorials/public-servers.md @@ -2,31 +2,33 @@ html: public-servers.html parent: get-started.html seo: - description: これらの公開サーバを利用して、自社のインフラを必要とせずにXRP Ledgerにアクセスします。 + description: これらの公開サーバを利用して、自社のインフラを必要とせずにXRP Ledgerにアクセスします。 labels: - コアサーバ --- + # 公開サーバ [自分で`rippled`サーバを運営しない](../infrastructure/installation/index.md)場合は、以下の公開サーバを利用して、トランザクションを送信したり、レジャーからデータを取得したりすることができます。 # メインネット -| 運営者 | [ネットワーク][] | JSON-RPC URL | WebSocket URL | 備考 | -|:----------------|:-----------------|:-------------|:--------------|:---------------------| -| XRP Ledger 財団 | **Mainnet** | `https://xrplcluster.com/`
`https://xrpl.ws/` [²][] | `wss://xrplcluster.com/`
`wss://xrpl.ws/` [²][] | CORSをサポートする全履歴サーバクラスター | -| Ripple[¹][] | **Mainnet** | `https://s1.ripple.com:51234/` | `wss://s1.ripple.com/` | 汎用サーバクラスター | -| Ripple[¹][] | **Mainnet** | `https://s2.ripple.com:51234/` | `wss://s2.ripple.com/` | [全履歴サーバ](../concepts/networks-and-servers/ledger-history.md#すべての履歴) クラスター | +| 運営者 | [ネットワーク][] | JSON-RPC URL | WebSocket URL | 備考 | +| :-------------- | :--------------- | :------------------------------------------------------- | :--------------------------------------------------- | :----------------------------------------------------------------------------------------- | +| XRP Ledger 財団 | **Mainnet** | `https://xrplcluster.com/`
`https://xrpl.ws/` [²][] | `wss://xrplcluster.com/`
`wss://xrpl.ws/` [²][] | CORSをサポートする全履歴サーバクラスター | +| Ripple[¹][] | **Mainnet** | `https://s1.ripple.com:51234/` | `wss://s1.ripple.com/` | 汎用サーバクラスター | +| Ripple[¹][] | **Mainnet** | `https://s2.ripple.com:51234/` | `wss://s2.ripple.com/` | [全履歴サーバ](../concepts/networks-and-servers/ledger-history.md#すべての履歴) クラスター | # テスト用ネットワーク -| 運営者 | [ネットワーク][] | JSON-RPC URL | WebSocket URL | 備考 | -|:---------------|:-----------------|:-------------|:--------------|:---------------------| -| Ripple[¹][] | Testnet | `https://s.altnet.rippletest.net:51234/` | `wss://s.altnet.rippletest.net:51233/` | Testnet 公開サーバ | -| XRPL Labs | Testnet | `https://testnet.xrpl-labs.com/` | `wss://testnet.xrpl-labs.com/` | CORSをサポートする Testnet 公開サーバ | -| Ripple[¹][] | Testnet (Clio) | `https://clio.altnet.rippletest.net:51234/` | `wss://clio.altnet.rippletest.net:51233/` | Clioを使用したTestnet公開サーバ | -| Ripple[¹][] | Devnet | `https://s.devnet.rippletest.net:51234/` | `wss://s.devnet.rippletest.net:51233/` | Devnet 公開サーバ | -| Ripple[¹][] | Devnet (Clio) | `https://clio.devnet.rippletest.net:51234/` | `wss://clio.devnet.rippletest.net:51233/` | Clioを使用したDevnet公開サーバ | -| XRPL Labs | Xahau Testnet | `https://xahau-test.net/` | `wss://xahau-test.net/` | [Hooksが有効](https://hooks.xrpl.org/)なXahau Testnet | + +| 運営者 | [ネットワーク][] | JSON-RPC URL | WebSocket URL | 備考 | +| :---------- | :--------------- | :------------------------------------------ | :---------------------------------------- | :---------------------------------------------------- | +| Ripple[¹][] | Testnet | `https://s.altnet.rippletest.net:51234/` | `wss://s.altnet.rippletest.net:51233/` | Testnet 公開サーバ | +| XRPL Labs | Testnet | `https://testnet.xrpl-labs.com/` | `wss://testnet.xrpl-labs.com/` | CORSをサポートする Testnet 公開サーバ | +| Ripple[¹][] | Testnet (Clio) | `https://clio.altnet.rippletest.net:51234/` | `wss://clio.altnet.rippletest.net:51233/` | Clioを使用したTestnet公開サーバ | +| Ripple[¹][] | Devnet | `https://s.devnet.rippletest.net:51234/` | `wss://s.devnet.rippletest.net:51233/` | Devnet 公開サーバ | +| Ripple[¹][] | Devnet (Clio) | `https://clio.devnet.rippletest.net:51234/` | `wss://clio.devnet.rippletest.net:51233/` | Clioを使用したDevnet公開サーバ | +| XRPL Labs | Xahau Testnet | `https://xahau-test.net/` | `wss://xahau-test.net/` | [Hooksが有効](https://hooks.xrpl.org/)なXahau Testnet | [ネットワーク]: ../concepts/networks-and-servers/parallel-networks.md [¹]: #footnote-1 diff --git a/@l10n/ja/docs/tutorials/python/index.md b/@l10n/ja/docs/tutorials/python/index.md index ed8301f986..69deaac88a 100644 --- a/@l10n/ja/docs/tutorials/python/index.md +++ b/@l10n/ja/docs/tutorials/python/index.md @@ -5,9 +5,9 @@ top_nav_grouping: カテゴリ metadata: indexPage: true --- + # Python PythonでのXRPLチュートリアルです。 - {% child-pages /%} diff --git a/@l10n/ja/docs/use-cases/defi/algorithmic-trading.md b/@l10n/ja/docs/use-cases/defi/algorithmic-trading.md index 11807a0398..77e08893f0 100644 --- a/@l10n/ja/docs/use-cases/defi/algorithmic-trading.md +++ b/@l10n/ja/docs/use-cases/defi/algorithmic-trading.md @@ -2,10 +2,11 @@ html: algorithmic-trading.html parent: defi-uc.html seo: - description: XRP Ledgerの分散型取引所は、ユーザがトレードを行う際にオンデマンドで追跡される無制限の通貨ペアで構成されています。 + description: XRP Ledgerの分散型取引所は、ユーザがトレードを行う際にオンデマンドで追跡される無制限の通貨ペアで構成されています。 labels: - トランザクション --- + # アルゴリズムトレード XRP Ledgerの分散型取引所(DEX)には、「アルゴリズムトレード」によって収益を得る機会があります。アルゴリズムトレードでは通常、定量的な要因に基づいて多くのトレードを行い、安定した小さな利益を得ます。これは、市場のファンダメンタルズに基づいて少数の長期投資を行い、時間をかけて大きなリターンを得るのを待つ伝統的な手動トレードとは異なります。暗号通貨は一般的にボラティリティが高いため、伝統的な「バイ・アンド・ホールド」投資には適していませんので、ブロックチェーンは多くの場合、手動トレードよりもアルゴリズムトレードに適しています。 @@ -30,7 +31,6 @@ XRP Ledgerの分散型取引所(DEX)には、「アルゴリズムトレード 資産の価格が異なる複数の取引所(CEX)に口座を持っている場合、**取引所間の裁定取引**を行うことができます。例えば、ACME取引所でXRPを1XRPあたり0.45ドルで購入し、そのXRPをWayGate取引所に移動して1XRPあたり0.50ドルで売却した場合、XRPあたり0.05ドルの利益を得ることができます。より複雑な例として、ACME取引所でBTC:ETHの価格が変動し、BTCに対してETHが安くなった場合、ある取引所でETH→XRPを売却し、そのXRPをACME取引所に移動し、XRP→BTC→ETHを取引して利益を得ることで、この価格変動を利用できる可能性があります。XRP Ledgerの取引は数秒で決済されますが、イーサリアムの取引は数分、ビットコインの取引は数時間かかることがあるため、XRPをブリッジ通貨として使用することで、ACME取引所でETH→BTC→BTC→ETHと取引するよりも早くこの機会を利用できる可能性があります。(これはもちろん、XRPへの交換が利益以上のコストにならないだけの十分な流動性と狭いスプレッドがある場合にのみ機能します) - ## 背景 アルゴリズムトレードの一般的な知識については、以下のリソースをご覧ください。 @@ -45,7 +45,6 @@ XRP Ledgerの分散型取引所(DEX)には、「アルゴリズムトレード - [分散型取引所](../../concepts/tokens/decentralized-exchange/index.md) - [オファー](../../concepts/tokens/decentralized-exchange/offers.md) - ## テストとよくある間違い どのような取引でもそうですが、アルゴリズムトレー ドは確実に儲かる方法ではありません。手作業によるトレードと比べると、アルゴリズムトレードはエラーの余地が非常に少なくなります。小さなミスを犯しても、そのミスを大量のトレードで倍増させようとすれば、問題を修正する前に損失があっという間に膨らんでしまいます。したがって、自分のトレード戦略が実際に利益を上げるかどうかを確認するために、さまざまなテストを行うのが賢明です。戦略やその実際の実装(よく _ボット_ と呼ばれます)をテストするために、次のようなことを行うことができます。 @@ -57,8 +56,8 @@ XRP Ledgerの分散型取引所(DEX)には、「アルゴリズムトレード このような計算やボットの作成においては、よく次のような間違いが存在します。 - **丸め誤差**: 計算が適切でなかったり、ブロックチェーンが使用する精度と一致しなかったりすると、トレード結果を不正確に予測して損失を出したり、トレードが全く実行されなかったりする可能性があります。XRP Ledgerは、トークンとXRPの量に異なる精度を使用しているため、一方を他方に交換する際、予期せぬ場所で四捨五入される可能性があります。プロトコルで使用される精度の詳細については、[通貨フォーマット](../../references/protocol/data-types/currency-formats.md)をご覧ください。 - - トークンの発行者は、トークンに関わる取引レートの精度をより詳細に制限できることに注意してください。詳しくは[Tick Size](../../concepts/tokens/decentralized-exchange/ticksize.md)をご覧ください。 - - 通常、四捨五入の違いや、計算時と約定時の値動きの違いを考慮し、金額を調整する必要があります。この金額は「スリッページ」と呼ばれ、適切な金額を設定することが重要です。スリッページが低すぎると、トレードがまったく約定しない可能性があります。一方、スリッページが高すぎると、フロントランニングの影響を受けやすくなり、スリッページが高ければ高いほど、値動きによって利益が削られる可能性が高くなります。 + - トークンの発行者は、トークンに関わる取引レートの精度をより詳細に制限できることに注意してください。詳しくは[Tick Size](../../concepts/tokens/decentralized-exchange/ticksize.md)をご覧ください。 + - 通常、四捨五入の違いや、計算時と約定時の値動きの違いを考慮し、金額を調整する必要があります。この金額は「スリッページ」と呼ばれ、適切な金額を設定することが重要です。スリッページが低すぎると、トレードがまったく約定しない可能性があります。一方、スリッページが高すぎると、フロントランニングの影響を受けやすくなり、スリッページが高ければ高いほど、値動きによって利益が削られる可能性が高くなります。 - **余分なコストと遅延を考慮しないこと**: 例えば、2つのステーブルコインの裏付けが米ドルであるにもかかわらず、ある発行者が0.5%の送金手数料を請求し、別の発行者が0.25%の[送金手数料](../../concepts/tokens/fungible-tokens/transfer-fees.md)を請求した場合、そのステーブルコインの取引価格には約0.25%の差が生じます。トランザクションを送信するためのコストは、通常は少額ですが、その他の潜在的な遅延の影響も忘れないでください。例えば、オフレジャーの取引所が現時点で有利な価格を示していたとしても、その取引所の入金処理に数時間から数日かかる場合、その取引所で事前に流動性を持っていない限り、その価格を利用することはできません。 - **稀な事象を考慮していないこと**: 前例のない出来事(「ブラック・スワン」)はさておき、個々の異常値によって計算結果がゆがむことがあります。一例として(これは実話ですが)、あるトレーダーが、ある戦略の潜在的な利益を特定の時間帯で計算したところ、利益の80%以上が、他のユーザが誤って価格にゼロを追加してしまった1つの「入力ミス」の取引によるものであったと報じました。同じ戦略を、これらの異常値の取引を含まない時間範囲に対して計算すると、利益ははるかに少なくなりました。 - **トランザクションのフラグを確認しないこ**と: XRP Ledgerのトランザクションのフラグは、そのトランザクションの処理方法や、プロトコルがそれを「成功」とマークするタイミングに大きな影響を与える可能性があります。例えば、"Offer"トランザクションのフラグは、全額がすぐに得られる場合にのみトレードされる"Fill or Kill"注文にすることができます。"Payment"トランザクションのフラグは、意図した宛先に全額を届けることができなくても成功する[partial payments](../../concepts/payment-types/partial-payments.md)にすることができます。トランザクションの`Flags`フィールドを解析するためにビット演算をする必要がありますが、それをスキップしてしまうと、予想と結果が全く異なったものとなってしまう可能性があります。 @@ -67,7 +66,6 @@ XRP Ledgerの分散型取引所(DEX)には、「アルゴリズムトレード ブロックチェーン上でトレードを行うための法的要件は、法域によって異なります。多くの場合、ライセンスやその他の法的な障壁はありませんが、特に利益または損失がいくつかの基準値を超える場合、税務上の利益を報告する必要がある場合があります。米国では通常、トレードで得た利益(または損失)をキャピタルゲインとして報告します。つまり、購入した資産の取得時の原価を計算する必要があります。個々の状況に応じて、トレード活動を追跡したり、適切な納税申告書を作成するのに役立つ様々なツールがあります。トレードする資産やトレード戦略によって、詳細は異なります。アルゴリズムトレードを始める前に、必ず税務の専門家に相談するか、よく調べてください。 - ## 技術的な詳細 ### トレードの発注 diff --git a/@l10n/ja/docs/use-cases/defi/index.md b/@l10n/ja/docs/use-cases/defi/index.md index b9b6ace8c0..5837210f1a 100644 --- a/@l10n/ja/docs/use-cases/defi/index.md +++ b/@l10n/ja/docs/use-cases/defi/index.md @@ -5,11 +5,11 @@ top_nav_grouping: カテゴリ metadata: indexPage: true seo: - description: 中央機関を介さずに、高速で安全な金融トランザクションを可能にします。 + description: 中央機関を介さずに、高速で安全な金融トランザクションを可能にします。 --- + # DeFi 中央機関を介さずに、高速で安全な金融トランザクションを可能にします。 - {% child-pages /%} diff --git a/@l10n/ja/docs/use-cases/defi/list-xrp-as-an-exchange.md b/@l10n/ja/docs/use-cases/defi/list-xrp-as-an-exchange.md index c6b88f4653..7126ed26b9 100644 --- a/@l10n/ja/docs/use-cases/defi/list-xrp-as-an-exchange.md +++ b/@l10n/ja/docs/use-cases/defi/list-xrp-as-an-exchange.md @@ -2,10 +2,11 @@ html: list-xrp-as-an-exchange.html parent: defi-uc.html seo: - description: デジタルアセット取引所でXRPを上場するために必要な手順の概要を説明します。 + description: デジタルアセット取引所でXRPを上場するために必要な手順の概要を説明します。 labels: - XRP --- + # 取引所としてのXRPの上場 本書では、取引所がXRPを上場するために必要なステップを説明します。 @@ -14,41 +15,41 @@ labels: 本書での説明目的で、架空の企業である _Alpha Exchange_ を使用して、XRPを上場するために必要な手順の概要を説明します。本書では、Alpha Exchangeは以下のような取引所です。 -* 現在BTC/USDの上場を専門としています +- 現在BTC/USDの上場を専門としています -* BTC/XRPとXRP/USDの取引ペアの追加を希望しています +- BTC/XRPとXRP/USDの取引ペアの追加を希望しています -* すべての顧客の残高を保持しています +- すべての顧客の残高を保持しています -* サポートしている各通貨の残高を保持しています +- サポートしている各通貨の残高を保持しています ### ユーザの利益 Alpha Exchangeは、BTC/XRPおよびXRP/USDの取引ペアを上場することを希望しています。理由の1つとして、これらのペアがユーザにとって有用なものであることが挙げられます。特に、このサポートによりユーザは以下ができるようになります。 -* XRP Ledger _から_ Alpha Exchange _に_ XRPを入金できます +- XRP Ledger _から_ Alpha Exchange _に_ XRPを入金できます -* Alpha Exchange _から_ XRP Ledger _に_ XRPを送金できます +- Alpha Exchange _から_ XRP Ledger _に_ XRPを送金できます -* XRPをBTCやUSDなどの他の通貨と交換できます +- XRPをBTCやUSDなどの他の通貨と交換できます ## XRPをサポートするための前提条件 XRPをサポートするために、Alpha Exchangeでは以下を行う必要があります。 -* 新しい[アカウント](#アカウント)を作成して維持します +- 新しい[アカウント](#アカウント)を作成して維持します -* [バランスシート](#バランスシート)を作成して維持します +- [バランスシート](#バランスシート)を作成して維持します 関連項目: -* [コンプライアンス指針](../../concepts/tokens/fungible-tokens/stablecoins/compliance-guidelines.md) — ゲートウェイと取引所は異なりますが、取引所は地域の規制に準拠し、適切な当局の監督下になければなりません。 +- [コンプライアンス指針](../../concepts/tokens/fungible-tokens/stablecoins/compliance-guidelines.md) — ゲートウェイと取引所は異なりますが、取引所は地域の規制に準拠し、適切な当局の監督下になければなりません。 -* [注意事項](../../concepts/tokens/fungible-tokens/stablecoins/precautions.md) +- [注意事項](../../concepts/tokens/fungible-tokens/stablecoins/precautions.md) ### Partial Payments @@ -68,47 +69,42 @@ XRPは、XRP Ledgerの _アカウント_ ( _ウォレット_ や _アドレス Rippleが推奨するベストプラクティスに従い、Alpha Exchangeは、XRP Ledgerに最低2つのアカウントを作成する必要があります。シークレットキーが悪用された場合の危険を最小限にとどめるため、Rippleでは、[ _コールドアカウント_ 、 _ホットアカウント_ 、 _ウォームアカウント_ ](../../concepts/accounts/account-types.md)(それぞれコールドウォレット、ホットウォレット、ウォームウォレットとも呼ばれる)の作成をお勧めしています。コールド/ホット/ウォームのモデルは、セキュリティと利便性のバランスをとるためのものです。XRPを上場する取引所は、以下のアカウントを作成する必要があります。 -* 大部分のXRPと顧客の資金を維持する[ _コールドウォレット_ ](../../concepts/accounts/account-types.md#発行アドレス)。取引所にとって、これはユーザが[預入れ](#取引所へのxrpの入金)をするアドレスです。 セキュリティを最適化するため、このアカウントのシークレットキーはオフラインにする必要があります。 +- 大部分のXRPと顧客の資金を維持する[ _コールドウォレット_ ](../../concepts/accounts/account-types.md#発行アドレス)。取引所にとって、これはユーザが[預入れ](#取引所へのxrpの入金)をするアドレスです。 セキュリティを最適化するため、このアカウントのシークレットキーはオフラインにする必要があります。 - 取引所のコールドウォレットが悪用されると、以下のような結果が生じるおそれがあります。 + 取引所のコールドウォレットが悪用されると、以下のような結果が生じるおそれがあります。 + - 不正使用者が、コールドウォレットの全XRPにアクセスできます。 - * 不正使用者が、コールドウォレットの全XRPにアクセスできます。 + - マスターキーが悪用されると、不正使用者は(マスターキーを無効にし、新しいレギュラーキーや署名者リストを設定することにより)そのコールドウォレットを恒久的に制御できます。これにより、その不正使用者は今後そのコールドウォレットで受信するすべてのXRPも制御できるようになります。 + - このような事態が発生した場合には、取引所は新しいコールドウォレットアドレスを作成し、顧客にその新しいアドレスを伝える必要があります。 - * マスターキーが悪用されると、不正使用者は(マスターキーを無効にし、新しいレギュラーキーや署名者リストを設定することにより)そのコールドウォレットを恒久的に制御できます。これにより、その不正使用者は今後そのコールドウォレットで受信するすべてのXRPも制御できるようになります。 + - レギュラーキーや署名者リストが悪用された場合には、取引所はコールドウォレットの制御を取り戻すことができます。ただし、不正使用者の行為の中には、以下のように簡単に元に戻せないものもあります。 + - 不正使用者が、コールドウォレットを使用してXRP Ledgerで通貨を発行しても、その通貨の価値はだれにも認められません。(取引所が明示的にゲートウェイでもあると示した場合を除きます)。 - * このような事態が発生した場合には、取引所は新しいコールドウォレットアドレスを作成し、顧客にその新しいアドレスを伝える必要があります。 + - 不正使用者が、アカウントにasfRequireAuthフラグを設定した場合。この設定は解除できません。ただし、これは通貨の発行のみに関係し、ゲートウェイではない取引所には影響しません。不正使用者がマスターキーで設定または設定解除したその他の設定は、元に戻すことができます。 - * レギュラーキーや署名者リストが悪用された場合には、取引所はコールドウォレットの制御を取り戻すことができます。ただし、不正使用者の行為の中には、以下のように簡単に元に戻せないものもあります。 +- 顧客のXRP出金や入金を管理する、日常業務を遂行するための1つ以上の[ _ホットウォレット_ ](../../concepts/accounts/account-types.md#運用アドレス)。例えば、ホットウォレットがあれば、取引所はこの種のXRPの自動送金を安全にサポートできます。出金リクエストにただちに応じるため、ホットウォレットはオンラインである必要があります。 - * 不正使用者が、コールドウォレットを使用してXRP Ledgerで通貨を発行しても、その通貨の価値はだれにも認められません。(取引所が明示的にゲートウェイでもあると示した場合を除きます)。 + 不正使用されたホットウォレットによって発生するおそれのある結果についての詳細は、[Operational Account Compromise](../../concepts/accounts/account-types.md#運用アドレスの漏えい)をご覧ください。 - * 不正使用者が、アカウントにasfRequireAuthフラグを設定した場合。この設定は解除できません。ただし、これは通貨の発行のみに関係し、ゲートウェイではない取引所には影響しません。不正使用者がマスターキーで設定または設定解除したその他の設定は、元に戻すことができます。 - -* 顧客のXRP出金や入金を管理する、日常業務を遂行するための1つ以上の[ _ホットウォレット_ ](../../concepts/accounts/account-types.md#運用アドレス)。例えば、ホットウォレットがあれば、取引所はこの種のXRPの自動送金を安全にサポートできます。出金リクエストにただちに応じるため、ホットウォレットはオンラインである必要があります。 - - 不正使用されたホットウォレットによって発生するおそれのある結果についての詳細は、[Operational Account Compromise](../../concepts/accounts/account-types.md#運用アドレスの漏えい)をご覧ください。 - -* オプションとして、コールドウォレットとホットウォレットの間で追加のセキュリティ層を提供する、1つ以上のウォームウォレット。ホットウォレットとは異なり、ウォームウォレットのシークレットキーはオンラインである必要はありません。さらに、ウォームウォレットのシークレットキーを複数の人に分散し、[マルチシグ](../../concepts/accounts/multi-signing.md)を導入してセキュリティを強化することもできます。 - - 不正使用されたウォームウォレットによって発生するおそれのある結果についての詳細は、[待機アドレスの漏えい](../../concepts/accounts/account-types.md#待機アドレスの漏えい)をご覧ください。 +- オプションとして、コールドウォレットとホットウォレットの間で追加のセキュリティ層を提供する、1つ以上のウォームウォレット。ホットウォレットとは異なり、ウォームウォレットのシークレットキーはオンラインである必要はありません。さらに、ウォームウォレットのシークレットキーを複数の人に分散し、[マルチシグ](../../concepts/accounts/multi-signing.md)を導入してセキュリティを強化することもできます。 + 不正使用されたウォームウォレットによって発生するおそれのある結果についての詳細は、[待機アドレスの漏えい](../../concepts/accounts/account-types.md#待機アドレスの漏えい)をご覧ください。 関連項目: -* [発行アドレスと運用アドレス](../../concepts/accounts/account-types.md) +- [発行アドレスと運用アドレス](../../concepts/accounts/account-types.md) -* [アカウントの作成](../../concepts/accounts/index.md#アカウントの作成) +- [アカウントの作成](../../concepts/accounts/index.md#アカウントの作成) -* [準備金](../../concepts/accounts/reserves.md) +- [準備金](../../concepts/accounts/reserves.md) ### バランスシート 顧客のXRPを管理するため、Alpha Exchangeは各顧客のXRP残高と自身の保有残高を追跡する必要があります。このためには、Alpha Exchangeは別のバランスシートまたは会計システムを作成し、維持する必要があります。以下の表は、このバランスシートを説明するものです。 -新しいXRP Ledgerアカウント( _Alpha Hot_ 、 _Alpha Warm_ 、 _Alpha Cold_ )が、「*XRP LedgerのXRP残高*」表の*ユーザ*列に示されています。 - -「*Alpha ExchangeのXRP残高*」表は、新しい追加のバランスシートを表します。Alpha Exchangeのソフトウェアは、この会計システムでユーザのXRP残高を管理します。 +新しいXRP Ledgerアカウント( _Alpha Hot_ 、 _Alpha Warm_ 、 _Alpha Cold_ )が、「_XRP LedgerのXRP残高_」表の*ユーザ*列に示されています。 +「_Alpha ExchangeのXRP残高_」表は、新しい追加のバランスシートを表します。Alpha Exchangeのソフトウェアは、この会計システムでユーザのXRP残高を管理します。
設定 メリット デメリット
@@ -197,14 +193,13 @@ XRPの額は、XRP Ledgerで、符号なし整数の _drop_ として示され #### 台帳上と台帳外 - _Alpha Exchange_ のような取引所では、XRPは「台帳上」または「台帳外」に存在します。 +_Alpha Exchange_ のような取引所では、XRPは「台帳上」または「台帳外」に存在します。 -* **台帳上のXRP**: XRP保有者のパブリック[アドレス](../../concepts/accounts/addresses.md)を指定し、パブリックのXRP Ledgerを通じて照会できるXRP。これらの残高の取引相手はXRP Ledgerです。詳細については、[XRP](../../introduction/what-is-xrp.md)をご覧ください。 +- **台帳上のXRP**: XRP保有者のパブリック[アドレス](../../concepts/accounts/addresses.md)を指定し、パブリックのXRP Ledgerを通じて照会できるXRP。これらの残高の取引相手はXRP Ledgerです。詳細については、[XRP](../../introduction/what-is-xrp.md)をご覧ください。 -* **台帳外のXRP**: 取引所の会計システムに保持されている、取引所のインターフェイスで照会できるXRP。台帳外のXRP残高はクレジットペースです。取引相手は、XRPを保有している取引所です。 - - 台帳外のXRP残高は、取引所の参加者の間で取引されます。このような取引をサポートするため、取引所は取引で使用可能な、 _台帳外_ のXRP合計金額に等しい _台帳上_ のXRP残高を保持する必要があります。 +- **台帳外のXRP**: 取引所の会計システムに保持されている、取引所のインターフェイスで照会できるXRP。台帳外のXRP残高はクレジットペースです。取引相手は、XRPを保有している取引所です。 + 台帳外のXRP残高は、取引所の参加者の間で取引されます。このような取引をサポートするため、取引所は取引で使用可能な、 _台帳外_ のXRP合計金額に等しい _台帳上_ のXRP残高を保持する必要があります。 ## 資金の流れ @@ -220,12 +215,10 @@ XRPの額は、XRP Ledgerで、符号なし整数の _drop_ として示され 4. [取引所でのXRPの取引](#取引所でのxrpの取引) - このリストには、取引所の[前提条件](#xrpをサポートするための前提条件)が含まれていません。 この時点で、 _Alpha Exchange_ はXRP Ledgerの[ホットウォレット、ウォームウォレット、コールドウォレット](#アカウント)を作成し、それらをバランスシートに追加しましたが、ユーザからの入金はまだ受け付けていません。 -
XRP Ledgerの @@ -303,7 +296,6 @@ XRP残高
- ### 取引所へのXRPの入金 [台帳外のXRP残高](#台帳上と台帳外)を追跡するには、取引所は新しい[バランスシート](#バランスシート)(または類似の会計システム)を作成する必要があります。以下の表は、ユーザがXRPを入金するにつれ、Alpha Exchangeの新しいバランスシートで発生する残高の変化を示すものです。 @@ -312,13 +304,13 @@ CharlieというユーザがAlpha Exchangeに50,000XRPを入金したいと希 1. Charlieは50,000XRPの支払いを、Alpha Exchangeの[コールドウォレット](#アカウント)に送信します。 - a. Charlieは識別子(このケースでは`789`)を支払いに追加し、Alpha Exchangeにある自身のアカウントに関連付けます。これは、[ _宛先タグ_ ](../../concepts/transactions/source-and-destination-tags.md)と呼ばれます。(これを使用するには、Alpha Exchangeは、すべての入金でCharlieのような宛先タグを必要とするように、すべてのアカウントでasfRequireDestフラグをオンに設定している必要があります。詳細については、[AccountSet Flags](../../references/protocol/transactions/types/accountset.md#accountsetのフラグ)をご覧ください。) + a. Charlieは識別子(このケースでは`789`)を支払いに追加し、Alpha Exchangeにある自身のアカウントに関連付けます。これは、[ _宛先タグ_ ](../../concepts/transactions/source-and-destination-tags.md)と呼ばれます。(これを使用するには、Alpha Exchangeは、すべての入金でCharlieのような宛先タグを必要とするように、すべてのアカウントでasfRequireDestフラグをオンに設定している必要があります。詳細については、[AccountSet Flags](../../references/protocol/transactions/types/accountset.md#accountsetのフラグ)をご覧ください。) 2. Alpha Exchangeのソフトウェアは、受信される支払を検出し、`789`をチャーリーのアカウントの宛先タグとして認識します。 3. 受信される支払を検出すると、Alpha Exchangeのソフトウェアは、入金された50,000XRPがCharlieによって管理されるものであることを示すようにバランスシートを更新します。 - Charlieは、これで、取引所で最大50,000XRPまで使用できます。例えば、XRPをBTCやその他のAlpha Exchangeでサポートされている通貨と取引するオファー(注文)を作成できます。 + Charlieは、これで、取引所で最大50,000XRPまで使用できます。例えば、XRPをBTCやその他のAlpha Exchangeでサポートされている通貨と取引するオファー(注文)を作成できます。 @@ -408,21 +400,18 @@ XRP残高
- ### 取引所でのXRPの取引 Alpha Exchangeユーザ(Charlieなど)は、Alpha Exchangeでクレジットベースの残高を取引できます。Alpha Exchangeは、これらの取引の作成時に、新しいバランスシートでユーザの残高を追跡する必要があります。これらの取引は、 _台帳外_ であり、XRP Ledgerから独立しています。このため、この残高の変化はXRP Ledgerには記録されません。 XRPを自身のXRP Ledgerアカウントに保有している顧客は、XRP Ledgerに組み込まれた分散型取引所 を使用して、ゲートウェイによって発行された通貨を取引することもできます。XRP Ledger _上_ での取引の詳細は、[オファーのライフサイクル](../../concepts/tokens/decentralized-exchange/offers.md#オファーのライフサイクル)をご覧ください。 - ### XRPの保有高のリバランス 取引所は、いつでもホットウォレットとコールドウォレットの間で残高を調整できます。各残高調整には、[トランザクションコスト](../../concepts/transactions/transaction-cost.md)がかかりますが、それ以外にはすべてのアカウントの合計残高に影響はありません。台帳上の合計残高は、取引所で取引に使用できる合計残高を常に上回る必要があります。(XRP Ledgerのトランザクションコストをカバーできるだけの十分な余剰が必要です。) 以下の表は、(XRP Ledgerで[Paymentトランザクション][]を介した)Alpha Exchangeのコールドウォレットとホットウォレットの間での80,000XRPの残高調整を示すものです。コールドウォレットから引き落としが行われ、ホットウォレットに入金が行われました。この支払いを逆にすると(ホットウォレットから引き落としが行われ、コールドウォレットに入金が行われる)、ホットウォレットの残高は減少します。このような残高調整は、取引所がオンラインホットウォレットにXRPを保持することに関連するリスクを抑えるために役立ちます。 -
Alpha Exchangeの @@ -493,7 +482,6 @@ XRPを自身のXRP Ledgerアカウントに保有している顧客は、XRP Led
- ### 取引所からのXRPの出金 出金により、取引所のユーザは、取引所の台帳外バランスシートから、XRP LedgerのアカウントにXRPを移動できます。 @@ -504,10 +492,9 @@ XRPを自身のXRP Ledgerアカウントに保有している顧客は、XRP Led 2. Charlieの指示に対応し、Alpha Exchangeは以下の作業を実行します。 - A. その金額(25,000XRP)を台帳外バランスシートのCharlieのアカウントから引き出します。 - - B. XRP Ledgerで、Alpha ExchangeのホットウォレットからCharlieのXRP Ledgerアカウントに同じ金額(25,000XRP)の支払いを送信します。 + A. その金額(25,000XRP)を台帳外バランスシートのCharlieのアカウントから引き出します。 + B. XRP Ledgerで、Alpha ExchangeのホットウォレットからCharlieのXRP Ledgerアカウントに同じ金額(25,000XRP)の支払いを送信します。 diff --git a/@l10n/ja/docs/use-cases/index.md b/@l10n/ja/docs/use-cases/index.md index bb461f340d..fe9986331f 100644 --- a/@l10n/ja/docs/use-cases/index.md +++ b/@l10n/ja/docs/use-cases/index.md @@ -5,9 +5,9 @@ top_nav_grouping: カテゴリ metadata: indexPage: true --- + # ユースケース 実践的なユースケースに基づいたドキュメントをご覧ください。 - {% child-pages /%} diff --git a/@l10n/ja/docs/use-cases/payments/index.md b/@l10n/ja/docs/use-cases/payments/index.md index 00890cf90c..6bff0dc4fa 100644 --- a/@l10n/ja/docs/use-cases/payments/index.md +++ b/@l10n/ja/docs/use-cases/payments/index.md @@ -5,11 +5,11 @@ top_nav_grouping: カテゴリ metadata: indexPage: true seo: - description: XRP Ledgerで様々なタイプの支払いを利用するための実例を紹介します。 + description: XRP Ledgerで様々なタイプの支払いを利用するための実例を紹介します。 --- + # Payment XRP Ledgerで様々なタイプの支払いを利用するための実例を紹介します。 - {% child-pages /%} diff --git a/@l10n/ja/docs/use-cases/payments/peer-to-peer-payments-uc.md b/@l10n/ja/docs/use-cases/payments/peer-to-peer-payments-uc.md index c40cf40219..25db854c99 100644 --- a/@l10n/ja/docs/use-cases/payments/peer-to-peer-payments-uc.md +++ b/@l10n/ja/docs/use-cases/payments/peer-to-peer-payments-uc.md @@ -2,27 +2,25 @@ html: peer-to-peer-payments-uc.html parent: payments-uc.html seo: - description: XRP Ledgerを使用して、第三者の介入を受けずに日々の支払いを処理することができます。 + description: XRP Ledgerを使用して、第三者の介入を受けずに日々の支払いを処理することができます。 labels: - トランザクション --- + # 個人間取引 XRP Ledgerは、決済を処理するための効率的でボーダレスなサービスを提供します。従来の支払い方法とは異なり、資産を保有し価値を移転するために金融機関を必要としません。インターネットにアクセスできれば、誰かに現金を渡すのと同じくらい簡単に、XRP Ledger上で直接支払いを行うことができます。友人同士であれ、買い手と売り手であれ、XRP Ledgerは直接的な(ピアツーピアの)支払いを素早く、低いネットワーク手数料で処理することを可能にします。 - ## ウォレット XRP Ledgerを使用して直接支払いを処理する前に、使用するウォレットを決める必要があります。ウォレットは、レジャーとのやり取りや資金の管理を簡単にします。ニーズに応じて多くの中から選ぶことができ、自分で作成することも可能です。[暗号通貨のウォレット](../../introduction/crypto-wallets.md)をご覧ください。 - ## アカウントの作成 アカウントを作成する前に、XRP Ledgerのどのネットワークを使用するかを決定する必要があります。異なるユースケースのために複数のネットワークがありますが、ネイティブのXRPトランザクションは`Mainnet`でしか起こりません。[パラレルネットワーク](../../concepts/networks-and-servers/parallel-networks.md)をご覧ください。 一般に公開されているウォレットのほとんどは、アカウントを作成する機能を提供しており、公開鍵と秘密鍵を生成することができます。そうでない場合でも、数学的に有効である限り、自分でアカウントを作成することができます。[アカウントの作成](../../concepts/accounts/index.md#creating-accounts)をご覧ください。 - ## アカウントを探す アカウントは、資金が提供され、最低準備金を満たすまでは、XRP Ledger上でアクティブではありません。[準備金](../../concepts/accounts/reserves.md)をご覧ください。 @@ -31,20 +29,17 @@ XRP Ledgerを使用して直接支払いを処理する前に、使用するウ アカウントに資金を提供した後、XRP Ledger自体でアカウントが存在し、資金が提供されていることを確認する必要があります。次の方法などが利用できます。 - - [XRPLエクスプローラー](https://livenet.xrpl.org/) - - [`account_info`コマンド](../../references/http-websocket-apis/public-api-methods/account-methods/account_info.md) - +- [XRPLエクスプローラー](https://livenet.xrpl.org/) +- [`account_info`コマンド](../../references/http-websocket-apis/public-api-methods/account-methods/account_info.md) ## Paymentの利用 - ### XRPによる直接支払い XRP支払いは、XRP Ledger上で誰かに支払いをする最も簡単な方法です。Checkやエスクローを使うこともできますが、これらは複数回のトランザクションを必要とします。XRPの直接支払いは1回のトランザクションで済みますので、この方法は日々の取引に最適です。もしあなたが大量のトランザクションを扱う事業者であれば、迅速かつシンプルで、手数料が最も低いこの方法がぴったりかもしれません。[XRPによる直接支払い](../../concepts/payment-types/direct-xrp-payments.md)をご覧ください。 XRPの直接支払いを実現するためには、受取人のアドレスを知るだけで十分です。 - ### クロスカレンシー支払い XRP Ledgerは、XRPとトークンのクロスカレンシー決済を可能にします。XRP Ledger内のクロスカレンシー支払いは完全にアトミックで、支払いが完全に実行されるか、支払いの一部すら全く実行されないことを意味します。 diff --git a/@l10n/ja/docs/use-cases/payments/restricting-deposits-uc.md b/@l10n/ja/docs/use-cases/payments/restricting-deposits-uc.md index 78a1c0c9ef..4ba3db6cac 100644 --- a/@l10n/ja/docs/use-cases/payments/restricting-deposits-uc.md +++ b/@l10n/ja/docs/use-cases/payments/restricting-deposits-uc.md @@ -2,22 +2,22 @@ html: restricting-deposits-uc.html parent: payments-uc.html seo: - description: Checkは、紙の小切手と同じように後払い決済を行うことができます。 + description: Checkは、紙の小切手と同じように後払い決済を行うことができます。 labels: - トランザクション --- + # 入金の制限 銀行に関する規制を遵守するため、金融機関は受け取った資金の出所に関する書類を提出する必要があります。これらの規制は、金融機関が処理するすべての支払いの出所と行き先を追跡することを義務付け、不正な活動を防止することを目的としています。XRP Ledgerでは、支払いは受取人からのインタラクションなしに送受信することができます。このデフォルトの動作には問題がありますが、デポジット認可を有効にすることで、明示的に認可した資金のみを受け取ることができます。 デポジット認可が有効になっているアカウントでは、次のような場合のみ資金を受け取ることができます。 - - 事前認可されたアカウント - - チェック - - エスクロー +- 事前認可されたアカウント +- チェック +- エスクロー - ## デポジット認可のセットアップ デポジット認可を有効にするには、`AccountSet`トランザクションを使用して`asfDepositAuth`フラグを設定します。[デポジット認可](../../concepts/accounts/depositauth.md)をご覧ください。 @@ -30,12 +30,10 @@ labels: [デポジットの事前認可](../../references/protocol/transactions/types/depositpreauth.md)をご覧ください。 - ## 未認可のアカウントからの入金を許可する デポジット認可を有効にした後でも、未認可のアカウントから支払いを行うこととは可能です。それを可能にするいくつかの方法があります。 - ### Check Checkは、デポジット認可が有効な場合、シンプルで親しみやすく、柔軟な資金移動方法です。Checkは、2つの要素から構成される支払い方法です。送信者がCheckを作成し、受信者がそのCheckを現金化する必要があります。Checkを現金化するとは、入金を明示的に承認することです。 @@ -44,14 +42,12 @@ Checkは、デポジット認可が有効な場合、シンプルで親しみや [Checkの利用](../../tutorials/how-tos/use-specialized-payment-types/use-checks/index.md)をご覧ください。 - ### Escrow 入金時の資金保証が必要な場合は、エスクローで入金してもらう方法もあります。通常のエスクローと同様に、送金者はレジャーに資金を確保し、一定の条件が満たされるまで資金を効果的にロックします。これにより、エスクローを閉じて資金を放出するときに、資金が利用できることが保証されます。 [エスクローの利用](../../tutorials/how-tos/use-specialized-payment-types/use-escrows/index.md)をご覧ください。 - -* `TokenTaxon`フィールドを使用すると、NFTを論理的なコレクションとしてミントすることができます。[NFTをコレクションとしてミントする](../../concepts/tokens/nfts/collections.md)をご覧ください。 -* 発行者として将来的にトークンをバーンできるようにしたい場合は、`Flags`フィールドを _1_ に設定します。NFTを譲渡可能にするには、`Flags`フィールドを _8_ に設定します。NFTをバーン可能かつ譲渡可能にするには、`Flags`フィールドを _9_ に設定します。[Burnableフラグ](../../references/protocol/data-types/nftoken.md#nftoken-flags)および[Transferableフラグ](../../references/protocol/data-types/nftoken.md#nftoken-flags)をご覧ください。 +- `TokenTaxon`フィールドを使用すると、NFTを論理的なコレクションとしてミントすることができます。[NFTをコレクションとしてミントする](../../concepts/tokens/nfts/collections.md)をご覧ください。 +- 発行者として将来的にトークンをバーンできるようにしたい場合は、`Flags`フィールドを _1_ に設定します。NFTを譲渡可能にするには、`Flags`フィールドを _8_ に設定します。NFTをバーン可能かつ譲渡可能にするには、`Flags`フィールドを _9_ に設定します。[Burnableフラグ](../../references/protocol/data-types/nftoken.md#nftoken-flags)および[Transferableフラグ](../../references/protocol/data-types/nftoken.md#nftoken-flags)をご覧ください。 [NFTokenのミントとバーン](../../tutorials/javascript/nfts/mint-and-burn-nfts.md)をご覧ください。 @@ -76,7 +77,6 @@ NFTを出品する際、オブジェクトのメタデータを使って分類 - [XRPL Data API](https://api.xrpldata.com/docs/static/index.html#/) - [Bithomp](https://docs.bithomp.com/#nft-xls-20) - ## NFTのバーン ワークフローの中には、現在の所有者に関係なく、将来のある時点で発行者がトークンをバーンする権利を保持することが適切な場合があります。例えば、カーボンクレジットに使用されるNFTはミントして取引することができますが、二酸化炭素が排出されると、NFTをバーンして取引不能にすることが可能です。このようなシナリオでは、NFTをミントする際に`lsfBurnable`フラグを設定します。 diff --git a/@l10n/ja/docs/use-cases/tokenization/index.md b/@l10n/ja/docs/use-cases/tokenization/index.md index e0de2477b1..10adb7db5d 100644 --- a/@l10n/ja/docs/use-cases/tokenization/index.md +++ b/@l10n/ja/docs/use-cases/tokenization/index.md @@ -5,11 +5,11 @@ top_nav_grouping: カテゴリ metadata: indexPage: true seo: - description: XRP Ledgerが対応する様々なトークンを使用できます。 + description: XRP Ledgerが対応する様々なトークンを使用できます。 --- + # Tokenization XRP Ledgerが対応する様々なトークンを使用できます。 - {% child-pages /%} diff --git a/@l10n/ja/docs/use-cases/tokenization/nft-mkt-overview.md b/@l10n/ja/docs/use-cases/tokenization/nft-mkt-overview.md index e8b74830fe..ede9e53496 100644 --- a/@l10n/ja/docs/use-cases/tokenization/nft-mkt-overview.md +++ b/@l10n/ja/docs/use-cases/tokenization/nft-mkt-overview.md @@ -2,12 +2,12 @@ html: nft-mkt-overview.html parent: tokenization.html seo: - description: NFTマーケットプレイスのユースケースの概要。 + description: NFTマーケットプレイスのユースケースの概要。 labels: - Tokenization --- -# NFTマーケットプレイスの概要 +# NFTマーケットプレイスの概要 ## 主な特徴 @@ -36,7 +36,7 @@ NFTビジネスを始めるにあたって、必要不可欠な4つの準備項 3. 必要なNFT情報のインデックス作成 4. NFTをキャッシュするための永続的なストレージ戦略の決定 -[![NFTマーケットのフロー](/docs/img/nft-mkt-overview.png "NFTマーケットのフロー")](/docs/img/nft-mkt-overview.png) +[![NFTマーケットのフロー](/docs/img/nft-mkt-overview.png 'NFTマーケットのフロー')](/docs/img/nft-mkt-overview.png) ## XRPLへの接続 @@ -46,7 +46,7 @@ NFTビジネスを始めるにあたって、必要不可欠な4つの準備項 関連項目: -* [独自サーバ運用のメリットとデメリット](../../concepts/networks-and-servers/index.md#reasons-to-run-your-own-server). +- [独自サーバ運用のメリットとデメリット](../../concepts/networks-and-servers/index.md#reasons-to-run-your-own-server). ## ブロックチェーンの基本機能のセットアップ @@ -72,7 +72,6 @@ NFTokenのURLは、NFTのコンテンツが保存されている場所へのリ 各「NFTokenPage」は16~32個のNFTを保持します。大量のNFTをミントすると、あなたのXRPを大量に準備金としてロックすることになります。オンデマンドミント(または _遅延ミント_ )を行うことで、XRPを柔軟に維持することができます。[遅延ミント](../../concepts/tokens/nfts/batch-minting.md#mint-on-demand-lazy-minting)と[スクリプトミント](../../concepts/tokens/nfts/batch-minting.md#scripted-minting)をご覧下さい。 - ### ウォレットのセットアップ 新しいウォレットをセットアップします。[Xaman](https://xaman.app/)をご覧ください。 @@ -123,7 +122,6 @@ NFTを出品する際、オブジェクトのメタデータを使って分類 - [XRPL Data API](https://api.xrpldata.com/docs/static/index.html#/) - [Bithomp](https://docs.bithomp.com/#nft-xls-20) - ## NFTのキャッシュ + + クリプト分野で作成されるNFTは、メディアや属性などのメタデータを保存することが想定されています。現在は中央集権化を避けるため、ほとんどがIPFSやArweaveに保存されています。 - 詳しいガイドラインや例については、[ブログ記事を投稿する](https://xrpl.org/resources/contribute-blog/)をご覧ください。 NOTE: 現在、ブログ記事は英語のみで提供されており、翻訳はまだ行われていません。 @@ -29,15 +28,15 @@ NOTE: 現在、ブログ記事は英語のみで提供されており、翻訳 **タイトル** -ブログ記事のタイトルや見出しにはタイトルケース(英語の各単語の頭文字を大文字)を使用してください。 +ブログ記事のタイトルや見出しにはタイトルケース(英語の各単語の頭文字を大文字)を使用してください。 -SEOに最適化されたタイトルを選びましょう。 +SEOに最適化されたタイトルを選びましょう。 タイトルは50文字以内に収め、メタ情報の `seo -> title` フィールドと一致させることを推奨します。 **リンク** -内部リンクを含めるには、相対パスを使用します。 例えば、ドキュメントへの貢献 トピックへのリンクを作成するには以下の構文を使用します。 +内部リンクを含めるには、相対パスを使用します。 例えば、ドキュメントへの貢献 トピックへのリンクを作成するには以下の構文を使用します。 ``` [ドキュメントへの貢献](../resources/contribute-documentation/index.md). @@ -61,7 +60,6 @@ SEOに最適化されたタイトルを選びましょう。 1. リスト項目 1 2. リスト項目 2 - ### サブセクション: ブログ記事へ画像を埋め込む方法 画像を含めるには、以下の構文を使用してください。 diff --git a/@l10n/ja/resources/contribute-blog/index.md b/@l10n/ja/resources/contribute-blog/index.md index 1b227e6eee..dc327baefc 100644 --- a/@l10n/ja/resources/contribute-blog/index.md +++ b/@l10n/ja/resources/contribute-blog/index.md @@ -2,10 +2,11 @@ html: contribute-blog.html parent: resources.html seo: - description: XRPLブログへの投稿手順 + description: XRPLブログへの投稿手順 labels: - ブロックチェーン --- + # ブログ記事を投稿する XRP Ledger開発者ブログへの投稿をご検討いただきありがとうございます! @@ -14,7 +15,6 @@ XRP Ledger開発者ブログへの投稿をご検討いただきありがとう {% admonition type="info" name="Note" %}現在、ブログ記事は英語のみで提供されており、まだ翻訳は行われていません。{% /admonition %} - ## ブログ投稿用のディレクトリ構成 ソースファイルは、公開されている `xrpl-dev-portal` リポジトリの `blog` ディレクトリにあります。 diff --git a/@l10n/ja/resources/contribute-code/create-custom-transactors.md b/@l10n/ja/resources/contribute-code/create-custom-transactors.md index ac3a558990..12df4b1508 100644 --- a/@l10n/ja/resources/contribute-code/create-custom-transactors.md +++ b/@l10n/ja/resources/contribute-code/create-custom-transactors.md @@ -2,11 +2,12 @@ html: create-custom-transactors.html parent: contribute-code.html seo: - description: XRP Ledgerとやり取りするためのカスタムトランザクタを作成します。 + description: XRP Ledgerとやり取りするためのカスタムトランザクタを作成します。 labels: - 開発 - ブロックチェーン --- + # カスタムトランザクタの作成 _トランザクタ_ はトランザクションを処理し、XRP Ledgerを変更するコードです。カスタムトランザクタを作成することで、`rippled`に新しい機能を追加することができます。このチュートリアルではトランザクタのコーディングについて説明しますが、それをXRPLに追加するにはAmendmentプロセスを経る必要があります。 [XRP Ledgerのコードへの貢献](index.md)をご覧ください。 @@ -24,7 +25,6 @@ _トランザクタ_ はトランザクションを処理し、XRP Ledgerを変 - [ヘッダファイル](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/CreateCheck.h) - [CPPファイル](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/CreateCheck.cpp) - ## ヘッダファイル 次の形式でヘッダーファイルを作成します。 @@ -60,7 +60,6 @@ public: - SLEのビュー。 - エラーを記録するためのジャーナル。 - ## CPPファイル ### 1. `preflight`関数の追加 @@ -70,16 +69,16 @@ public: - `PreflightContext`はレジャーのビューを持っていません。 - レジャーやトランザクションからフィールドを取得するには、次のようにブラケット記法を使用します。 - ``` - auto const curExpiration = (*sle*)[~sfExpiration]; - (*sle)[sfBalance] = (*sle)[sfBalance] + reqDelta; - ``` + ``` + auto const curExpiration = (*sle*)[~sfExpiration]; + (*sle)[sfBalance] = (*sle)[sfBalance] + reqDelta; + ``` - {% admonition type="info" name="注記" %}`~`記号は optional型を返します。{% /admonition %} + {% admonition type="info" name="注記" %}`~`記号は optional型を返します。{% /admonition %} - レジャーとトランザクションのスキーマはこちらから確認できます。 - - [`LedgerFormats.cpp`](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/LedgerFormats.cpp) - - [`TxFormats.cpp`](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/TxFormats.cpp) + - [`LedgerFormats.cpp`](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/LedgerFormats.cpp) + - [`TxFormats.cpp`](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/TxFormats.cpp) -` rippled` はトランザクションの結果を結果コードで表します。[トランザクションの結果](../../docs/references/protocol/transactions/transaction-results/index.md)をご覧ください。 @@ -136,7 +135,6 @@ CreateCheck::preflight(PreflightContext const& ctx) } ``` - ### 2. `preclaim`関数の追加 `preclaim`関数は、現在のレジャーの情報を見る必要があるエラーをチェックします。 @@ -228,7 +226,6 @@ CreateCheck::preclaim(PreclaimContext const& ctx) } ``` - ### 3. Add a `doApply()` function. The `doApply()` function has read/write access, enabling you to modify the ledger. @@ -314,12 +311,10 @@ CreateCheck::doApply() } ``` - ## 追加の関数 必要に応じて、カスタムトランザクタにヘルパー関数を追加することができます。特殊な場合に役立つ特別な関数がいくつかあります。 - ### `calculateBaseFee` ほとんどのトランザクションはデフォルトの[Referenceトランザクションコスト](../../docs/concepts/transactions/transaction-cost.md)をそのまま引き継ぎます。しかし、トランザクションで通常以外のトランザクションコストを定義する必要がある場合、トランザクションの`calculateBaseFee`メソッドをカスタムメソッドに置き換えることができます。 @@ -341,7 +336,6 @@ EscrowFinish::calculateBaseFee(ReadView const& view, STTx const& tx) } ``` - ### `makeTxConsequences` `rippled`は[`TxConsequences`](https://github.com/XRPLF/rippled/blob/master/src/ripple/app/tx/applySteps.h#L41-L44)クラスを使用して、トランザクション適用時のアカウントへの結果を記述します。このクラスは手数料、使用可能な最大XRP、トランザクションによって消費されたシーケンス番号の数を追跡します。結果には次の3つのタイプがあります。 @@ -358,7 +352,6 @@ EscrowFinish::calculateBaseFee(ReadView const& view, STTx const& tx) {% admonition type="info" name="注記" %}`TxConsequences`は[トランザクションキュー](../../docs/concepts/transactions/transaction-queue.md)にのみ影響します。トランザクションがレジャーに適用されたときに手数料を請求する可能性が高い場合、それはピアに送信されます。手数料を請求する可能性がない場合、またはそれが判断できない場合は、送信されません。{% /admonition %} - ```c++ SetAccount::makeTxConsequences(PreflightContext const& ctx) { @@ -386,7 +379,6 @@ SetAccount::makeTxConsequences(PreflightContext const& ctx) } ``` - ## 次のステップ 新しいトランザクタでサーバを再コンパイルし、[スタンドアロンモード](../../docs/infrastructure/testing-and-auditing/index.md)でテストしてください。もしAmendmentの後ろにトランザクタをコーディングした場合、設定ファイルを使ってその機能を[強制的に有効にする](../../docs/infrastructure/testing-and-auditing/test-amendments.md)ことができます。 diff --git a/@l10n/ja/resources/contribute-code/index.md b/@l10n/ja/resources/contribute-code/index.md index 76b3fb6675..63f5aaea93 100644 --- a/@l10n/ja/resources/contribute-code/index.md +++ b/@l10n/ja/resources/contribute-code/index.md @@ -2,10 +2,11 @@ html: contribute-code.html parent: resources.html seo: - description: XRP Ledgerプロトコルにどのように機能を実装するかを学びます。 + description: XRP Ledgerプロトコルにどのように機能を実装するかを学びます。 labels: - ブロックチェーン --- + # コードへの貢献 XRP Ledgerを動かすソフトウェアはオープンソースです。誰でもダウンロードし、変更し、拡張し、調査することができます。もしあなたがコードに貢献したいのであれば、コミュニティと協力してあなたの変更の仕様を定義し、XRP Ledgerのプロトコルとブロックチェーンの一部になる前にコードをテストすることが重要です。 @@ -14,20 +15,19 @@ XRP Ledgerを動かすソフトウェアはオープンソースです。誰で XRP Ledgerを動かすソフトウェアはオープンソースです。コミュニティが参加することで、より良いものが生まれます。[ドキュメント](/docs/)内の"[Source]"リンクから関連するソースコードに直接ジャンプしたり、GitHubでソースコードを閲覧することができます: -| XRP Ledger ソースコード | | -|:-----------------------|:----------------------------------------------------| -| リポジトリ | | -| ライセンス | [Multiple; ISC (permissive)](https://github.com/XRPLF/rippled/blob/develop/LICENSE.md) | -| プログラム言語 | C++ | +| XRP Ledger ソースコード | | +| :---------------------- | :------------------------------------------------------------------------------------- | +| リポジトリ | | +| ライセンス | [Multiple; ISC (permissive)](https://github.com/XRPLF/rippled/blob/develop/LICENSE.md) | +| プログラム言語 | C++ | 何から始めたらいいか分からないという方のために、Dev Null Productionsは、XRP Ledgerサーバ(`rippled`)のコア実装の仕組みや機能を説明した、詳細かつ充実した[**ソースコード・ガイド**](https://xrpintel.com/source)を提供しています。 - ## XRP Ledgerの規格 `rippled`に対する変更はXRP Ledger Standard (XLS)、つまり変更の仕様を特定し詳細に記述した文書によって管理されます。開発にコミットする前に、[XRPL-Standardsリポジトリ](https://github.com/XRPLF/XRPL-Standards/discussions)で議論を始める必要があります。これにより、コミュニティはあなたの変更に関して議論し、フィードバックを提供する機会を得ることができます。 -**注記:*** バグ修正にはXLSは必要ありませんが、Amendmentが必要になる場合があります。 +**注記:\*** バグ修正にはXLSは必要ありませんが、Amendmentが必要になる場合があります。 XLSの作成には独自のプロセスがありますが、簡単にまとめると次のようになります: @@ -37,7 +37,6 @@ XLSの作成には独自のプロセスがありますが、簡単にまとめ 詳細については、[XLS貢献ガイド](https://github.com/XRPLF/XRPL-Standards/blob/master/CONTRIBUTING.md) をご覧ください。 - ## Amendmentの実装 XLSドラフトを作成した後、その変更にAmendmentが必要かどうかを判断する必要があります。特に次のような**トランザクション処理**に影響する変更にはAmendment が必要です。 @@ -58,38 +57,35 @@ XLSドラフトを作成した後、その変更にAmendmentが必要かどう - **Feature.h**: `numFeatures` カウンタを増やし、`extern uint256 const` 変数を宣言します。 - ## コーディングとデプロイ 一般的な開発プロセスは以下の通りです。 1. コードを開発するためにはまず、[`rippled` リポジトリ](https://github.com/XRPLF/rippled) をフォークまたはブランチを作成します。 - {% admonition type="success" name="ヒント" %}何から始めたらいいかわからない場合は、_Dev Null Productions_ が詳細かつ充実した [`rippled` ソースコードガイド](https://xrpintel.com/source) を提供しています。{% /admonition %} + {% admonition type="success" name="ヒント" %}何から始めたらいいかわからない場合は、_Dev Null Productions_ が詳細かつ充実した [`rippled` ソースコードガイド](https://xrpintel.com/source) を提供しています。{% /admonition %} 2. 単体テストと統合テストを実行します。独立した環境で作業をテストするにはスタンドアロンモードでサーバを実行するのが良いでしょう。 3. `XRPLF:develop`にプルリクエストを作成します。 - **Amendment向けの注記:** **Feature.cpp**の`Supported`パラメータを`yes`に更新します。 + **Amendment向けの注記:** **Feature.cpp**の`Supported`パラメータを`yes`に更新します。 4. プルリクエストがXRP Ledgerのメンテナによって承認されると、あなたのコードは`develop`にマージされ、Devnet上で追加のテストを行うことができます。 - **Amendment向けの注記:** - - `DefaultVote`パラメータはロックされます。 - - もしAmendmentに問題が見つかれば、Amendmentの修正と新しいPRの提出を再度行う必要があります。新しいPRでは`DefaultVote`を変更することができます。 + **Amendment向けの注記:** + - `DefaultVote`パラメータはロックされます。 + - もしAmendmentに問題が見つかれば、Amendmentの修正と新しいPRの提出を再度行う必要があります。新しいPRでは`DefaultVote`を変更することができます。 年に4回、`develop`で承認されたPRからリリース候補がビルドされます。このパッケージはTestnetとMainnet上のいくつかのノードにデプロイされます。リリース候補に問題がなければ、コードは`master`にマージされ、メインネット上のノードはこのビルドにアップグレードできます。 6. 新しいAmendmentは合意形成プロセスを経て、バリデータがそのAmendmentを有効にするかどうかを投票します。 - ## コードのフローチャート ![コードのフローチャート](/docs/img/contribute-code-flowchart.png) - ## 関連項目 - **コンセプト:** - - [Amendment](../../docs/concepts/networks-and-servers/amendments.md) + - [Amendment](../../docs/concepts/networks-and-servers/amendments.md) diff --git a/@l10n/ja/resources/contribute-documentation/creating-diagrams.md b/@l10n/ja/resources/contribute-documentation/creating-diagrams.md index c0f7d735b7..76b6cd9c65 100644 --- a/@l10n/ja/resources/contribute-documentation/creating-diagrams.md +++ b/@l10n/ja/resources/contribute-documentation/creating-diagrams.md @@ -2,8 +2,9 @@ html: creating-diagrams.html parent: contribute-documentation.html seo: - description: ライトモードとダークモードの設定で適切に動作する図を作成します。 + description: ライトモードとダークモードの設定で適切に動作する図を作成します。 --- + # 図の作成 このサイトには、SVGの図をライト・ダークモード用に自動的に再カラーリングするコードが含まれています。これは単に画像を反転させるだけではありません。再カラーリングは(ボトムライトに見えないように)グラデーションを同じ方向に保ち、色をその逆ではなくテーマに合った同等なものに置き換えます。例えば、"Ripple blue"は、その逆のオレンジではなく、XRPLグリーンに再カラーリングされます。 diff --git a/@l10n/ja/resources/contribute-documentation/documentation-translations.md b/@l10n/ja/resources/contribute-documentation/documentation-translations.md index 22a97d5a37..c86a2b9e03 100644 --- a/@l10n/ja/resources/contribute-documentation/documentation-translations.md +++ b/@l10n/ja/resources/contribute-documentation/documentation-translations.md @@ -2,8 +2,9 @@ html: documentation-translations.html parent: contribute-documentation.html seo: - description: このウェブサイトにある文書の翻訳に貢献し、維持する方法を学びましょう。 + description: このウェブサイトにある文書の翻訳に貢献し、維持する方法を学びましょう。 --- + # 翻訳 XRP Ledger Dev Portalは大部分が英語で書かれているため、一般的には英語版が最新かつ正確なバージョンです。しかしながら、XRP Ledgerのソフトウェアとコミュニティへのリーチを広げるために、このリポジトリには翻訳版のドキュメントも含まれています。私たちは、他の言語を理解するコミュニティのメンバーが、開発ポータルの内容を母国語で翻訳することを大いに歓迎します。 @@ -11,61 +12,61 @@ XRP Ledger Dev Portalは大部分が英語で書かれているため、一般 `dactyl-config.yml`には利用可能な言語ごとに"target"項目があります(現在、利用可能な言語は英語と日本語です)。このエントリには、次のようにテンプレートファイルで使用される文字列の定義が含まれます。 ```yaml -- name: en - lang: en - display_name: XRP Ledger Dev Portal - # These github_ fields are used by the template's "Edit on GitHub" link. - # Override them with --vars to change which fork/branch to edit. - github_forkurl: https://github.com/XRPLF/xrpl-dev-portal - github_branch: master - strings: - blog: "Blog" - search: "Search site with Google..." - bc_home: "Home" - # ... +- name: en + lang: en + display_name: XRP Ledger Dev Portal + # These github_ fields are used by the template's "Edit on GitHub" link. + # Override them with --vars to change which fork/branch to edit. + github_forkurl: https://github.com/XRPLF/xrpl-dev-portal + github_branch: master + strings: + blog: 'Blog' + search: 'Search site with Google...' + bc_home: 'Home' + # ... ``` また、トップレベルの`languages`リストもあり、サポートされている各言語が定義されています。各言語のショートコードは[IETF BCP47](https://tools.ietf.org/html/bcp47)に従ったショートコードでなければなりません。例えば、"en"は英語、"es"はスペイン語、"ja"は日本語、"zh-CN"は簡体字中国語、"zh-TW" は繁体字中国語 (台湾で使用) などです。`display_name`フィールドはその言語でネイティブに書かれた言語名を定義します。`prefix`フィールドはその言語のサイトへのハイパーリンクで使用する接頭辞を定義します。次に`languages`の定義例を示します。 ```yaml languages: - - code: en - display_name: English - prefix: "/" - - code: ja - display_name: 日本語 - prefix: "/ja/" + - code: en + display_name: English + prefix: '/' + - code: ja + display_name: 日本語 + prefix: '/ja/' ``` 同じ`dactyl-config.yml`ファイルには、XRP Ledger Dev Portalの各コンテンツページのエントリがあります。ページが翻訳されている場合、各翻訳ごとに個別の項目があり、その翻訳の“ターゲット"にリンクされています。ページがまだ翻訳されていない場合、すべてのターゲットで英語版が使用されます。(新しいページが英語のみ追加され、他の言語が提供されない場合、リンクチェッカーはそれをリンク切れとして報告します。) ページを翻訳するということは、そのページのエントリを他の言語と分割するということです。ページのメタデータは`dactyl-config.yml`ファイルか、ページのMarkdownファイルの先頭にあるfrontmatterに設定します。 -| フィールド | 備考 | -|----------|------| -| `html` | ページのHTMLファイル名。慣例により、これはすべての言語バージョンで同じであるべきです。 | -| `md` | ページのMarkdownソースファイル。翻訳されたMarkdownソースファイルは英語版と同じファイル名を使用してください。ただし、拡張子は英語版の`.md`ではなく、`.{言語コード}.md`を使用してください。例えば、日本語の翻訳ファイルの拡張子は `.ja.md` です。 | -| `blurb` | ページの簡単な要約。これは翻訳されるべきです。このテキストは、検索エンジン最適化のためのメタデータや、自動生成されるランディングページで使用されます。 | +| フィールド | 備考 | +| ---------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `html` | ページのHTMLファイル名。慣例により、これはすべての言語バージョンで同じであるべきです。 | +| `md` | ページのMarkdownソースファイル。翻訳されたMarkdownソースファイルは英語版と同じファイル名を使用してください。ただし、拡張子は英語版の`.md`ではなく、`.{言語コード}.md`を使用してください。例えば、日本語の翻訳ファイルの拡張子は `.ja.md` です。 | +| `blurb` | ページの簡単な要約。これは翻訳されるべきです。このテキストは、検索エンジン最適化のためのメタデータや、自動生成されるランディングページで使用されます。 | `server_info`メソッドページの英語と日本語の記入例: ```yaml - - md: references/http-websocket-apis/public-api-methods/server-info-methods/server_info.md - targets: - - en +- md: references/http-websocket-apis/public-api-methods/server-info-methods/server_info.md + targets: + - en - - md: references/http-websocket-apis/public-api-methods/server-info-methods/server_info.ja.md - targets: - - ja +- md: references/http-websocket-apis/public-api-methods/server-info-methods/server_info.ja.md + targets: + - ja ``` 翻訳されていないページの記入例: ```yaml - - md: concepts/payment-system-basics/transaction-basics/source-and-destination-tags.md - targets: - - en - - ja +- md: concepts/payment-system-basics/transaction-basics/source-and-destination-tags.md + targets: + - en + - ja ``` ## 始めるにあたって diff --git a/@l10n/ja/resources/contribute-documentation/index.md b/@l10n/ja/resources/contribute-documentation/index.md index c608b66f08..80caa78e56 100644 --- a/@l10n/ja/resources/contribute-documentation/index.md +++ b/@l10n/ja/resources/contribute-documentation/index.md @@ -2,13 +2,13 @@ html: contribute-documentation.html parent: resources.html seo: - description: XRP Ledgerドキュメントのコントリビューションガイドです。 + description: XRP Ledgerドキュメントのコントリビューションガイドです。 --- + # ドキュメントへの貢献 XRP Ledger開発者ポータルへの貢献を検討いただきありがとうございます! - 私たちは、あなたが興味を持ってくださっていることにとても感動しています。XRP Ledger(XRPL)へ貢献することは、XRPLついて学ぶ素晴らしい機会です。 私たちはあなたのプルリクエストを喜んでレビューします。プロセスをできるだけ円滑に進めるため、このドキュメントを読み、記載されているガイドラインに従ってください。 @@ -29,9 +29,9 @@ XRPL Dev Portalでは、開発者が開発を開始するためのサンプル - `blog/` - XRPL開発者ブログのソースファイル - `community/` - コミュニティセクションのソースファイル - `docs/` - ドキュメントをビルドするためのソースファイル(ほとんどがMarkdownファイル) - - `docs/_snippets/` - ドキュメント内で再利用可能なテキスト - - `docs/img/` - ドキュメント内で利用する図やその他の画像 - - `docs/img/_sources/` - ドキュメント内で利用する画像のソースファイル(存在する場合) + - `docs/_snippets/` - ドキュメント内で再利用可能なテキスト + - `docs/img/` - ドキュメント内で利用する図やその他の画像 + - `docs/img/_sources/` - ドキュメント内で利用する画像のソースファイル(存在する場合) - `locale/` - **廃止** 以前利用されていた翻訳用のファイル - `resources/` - リソースセクションのソースファイル - `shared/` - CodeMirrorなどの依存関係の設定ファイル @@ -42,7 +42,6 @@ XRPL Dev Portalでは、開発者が開発を開始するためのサンプル - `sidebars.yaml` - ドキュメントおよびリソースセクションのサイドバーの定義 - `top-nav.yaml` - ナビゲーションバーの定義 - ## プルリクエストが承認されるための条件 レビューやマージが承認される前に、それぞれのプルリクエストは以下の条件を満たしていなければなりません。 @@ -71,7 +70,6 @@ npm run start ブラウザでhttp://localhost:4000/にアクセスしてプレビューを表示できます。 - ## 設定ファイルのフォーマット Realmの設定ファイルは、サイト内のナビゲーション要素を生成するために使用されます。これには、ヘッダー、フッター、サイドバー、パンくずリストが含まれます。 @@ -89,7 +87,7 @@ Markdownファイルのページは、[frontmatterスタンザ](#frontmatterの ページを作成する際には、以下の規約に従ってください。 - HTMLのファイル名とMDのファイル名は、拡張子を除いて完全に一致していなければなりません。ファイル名は"and"や"the"のような単語を含め、ページのタイトルと密接に一致する必要がありますが、スペースや句読点の代わりにハイフンを使用し、すべて小文字にする必要があります。例えば、`cash-a-check-for-an-exact-amount.md`のようにします。ページのタイトルを変更した場合は、ファイル名も変更する必要があります。(すでに別のURLで公開されている場合は、古いURLからのリダイレクトを残してください) - - カテゴリ内のページは、そのカテゴリの名前のサブフォルダに配置されるべきですが、親ディレクトリにも同じ単語が含まれている場合は、より簡潔にすることができます。ファイル名は`index.md`で、タイトルはフォルダ名に似ている必要があります。例えば、"Protocol Reference"のインデックスページは`references/protocol/index.md`にあります。 + - カテゴリ内のページは、そのカテゴリの名前のサブフォルダに配置されるべきですが、親ディレクトリにも同じ単語が含まれている場合は、より簡潔にすることができます。ファイル名は`index.md`で、タイトルはフォルダ名に似ている必要があります。例えば、"Protocol Reference"のインデックスページは`references/protocol/index.md`にあります。 - 常にh1ヘッダーでページを始めます。 - ページの一番上のh1アンカーにはリンクせず、アンカーなしでページ自体にリンクしてください。これは翻訳時のリンク切れを防ぐのに役立ちます。以降のヘッダーへのリンクは問題ありません。 - ページのタイトルに書式( _斜体_ や`コード`など)を使わないでください。 @@ -129,31 +127,29 @@ Markdownファイルのページは、[frontmatterスタンザ](#frontmatterの 以下の単語やフレーズを説明通りに使用してください。 -| 用語 | 避けるべき用語 | 備考 | -|-------------------|----------------|-------| -| API, APIs | API's, RPC | Application Programming Interface (アプリケーション・プログラミング・インターフェース)、ソフトウェアが他のソフトウェアと接続するための機能と定義のセット。 | -| コアサーバ, XRP Ledgerのコアサーバ | `rippled` | `rippled`という名前は近い将来廃止される可能性が高いので、より一般的な名前で呼ぶことを推奨します。必要なときは、`rippled` をすべて小文字で、コードフォントで呼んでください。(発音は "リップルディー" で、"d" は UNIX の伝統に従って"daemon"を意味します)。 -| 金融機関 | 銀行, FI, PSP (決済サービスプロバイダ) | この用語は、_銀行_ や他の用語よりも幅広いビジネスを包含し、業界の専門用語の理解に依存しません。 | -| レジャーエントリ | レジャーオブジェクト, ノード | XRP Ledgerの状態データ内の単一のオブジェクト。_レジャーオブジェクト_ という用語は、これらの一つを指すこともあれば、レジャー全体を指すこともあります。レジャーの状態データはグラフとして想定できるため、_ノード_ という用語が使われることもありましたが、_ノード_ には他の用途もあるため、混乱を招きます。 | -| 流動性提供者 | マーケットメイカー | 2つの通貨または資産間の売買を提供し、多くの場合、取引間の価格差から利益を得る企業または個人。マーケットメーカーという用語は、法域によっては特定の法律上の定義があり、すべての同じ状況で適用されるとは限りません。 | -| 悪質業者 | ハッカー | 個人、組織、または自動化されたツールなどによる、機密情報の取得、暗号化の解除、サービスの拒否、その他の安全なリソースへの攻撃を試みる可能性のあるもの。 | -| PostgreSQL | Postgres | リレーショナルデータベース・ソフトウェアの特定のブランド。非公式な短いバージョンではなく、常に完全な名前を使用します。 | -| オーダーブック | オファーブック | マッチングされ約定されるのを待っているトレード注文のコレクション。通常は取引レートごとにソートされています。 | -| サーバ | ノード | サーバとは、ソフトウェアやハードウェアのことで、特にXRP Ledgerのピアツーピアネットワークに接続するものを指します。_ノード_ という用語はこの目的のために使われることもありますが、グラフのエントリやJavaScriptインタプリタであるNode.jsなど、他の意味でも多用されます。 | -| ステーブルコイン発行者 | ゲートウェイ | 発行者とは、XRP Ledgerにおいてトークンを発行する組織です。ステーブルコインとは、発行者が外部の資産(例えば不換紙幣)に完全に裏付けられていることを約束しているトークンのことで、ステーブルコインの発行者は、その2つの資産を(場合によっては手数料を払って)交換する入出金操作を提供します。以前は、このユースケースを表現するために(特にリップル社によって)_ゲートウェイ_ という用語が使用されていましたが、業界の他の部分は代わりに _ステーブルコイン発行者_ を採用しました。 | -| トランザクションコスト | トランザクション手数料 | XRP Ledgerでトランザクションを送信するために消費されるXRPの金額。これはトランザクションの`Fee`フィールドで指定されますが、_手数料_ という用語は誰かにお金を支払うことを意味するため、_コスト_ の方が望ましいです。 | -| トークン | IOU, issuances, issues, 発行済み通貨 | XRP Ledgerのトークンは、_IOU_ という名前から想像されるように、レジャーの外部にある価値を表すことはできません。必要であれば、_代替可能トークン_ を使用して、非代替性トークン(NFT)と区別してください。 | -| ウォレット | ウォレット | 文脈によっては、_ウォレット_ はハードウェア、ソフトウェア、暗号鍵ペア、またはオンラインサービスを指します。意味が明確になるように十分な文脈を提供するか、_キーペア_ や _クライアントアプリケーション_ などの別の表現を使用してください。 | -| WebSocket | web socket, Websockets | Web上での双方向プロトコル。常に単数形でCamelCaseで記述してください。 | -| XRP | Ripple, リップル | XRP Ledgerのネイティブデジタルアセットまたは暗号通貨。XRPはレジャーの外部の価値を表すトークンではありません。 | -| XRP Ledger | Ripple, リップル, Ripple Network, リップルネットワーク, RCL | XRP Ledgerは、過去に様々な場面で「リップルネットワーク」や「リップルコンセンサスレジャー」あるいは「RCL」と呼ばれていました。これらの名称は、コアサーバのリファレンス実装を開発しているRipple(Ripple Labs)の社名と類似しているため、紛らわしく、廃止されました。 | -| XRPL | XRPL | _XRP Ledger_ の略です。_XRPL_ は不明瞭で、_XRP_ のタイプミスのように見えることがあります。 | - - +| 用語 | 避けるべき用語 | 備考 | +| ---------------------------------- | ----------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| API, APIs | API's, RPC | Application Programming Interface (アプリケーション・プログラミング・インターフェース)、ソフトウェアが他のソフトウェアと接続するための機能と定義のセット。 | +| コアサーバ, XRP Ledgerのコアサーバ | `rippled` | `rippled`という名前は近い将来廃止される可能性が高いので、より一般的な名前で呼ぶことを推奨します。必要なときは、`rippled` をすべて小文字で、コードフォントで呼んでください。(発音は "リップルディー" で、"d" は UNIX の伝統に従って"daemon"を意味します)。 | +| 金融機関 | 銀行, FI, PSP (決済サービスプロバイダ) | この用語は、_銀行_ や他の用語よりも幅広いビジネスを包含し、業界の専門用語の理解に依存しません。 | +| レジャーエントリ | レジャーオブジェクト, ノード | XRP Ledgerの状態データ内の単一のオブジェクト。_レジャーオブジェクト_ という用語は、これらの一つを指すこともあれば、レジャー全体を指すこともあります。レジャーの状態データはグラフとして想定できるため、_ノード_ という用語が使われることもありましたが、_ノード_ には他の用途もあるため、混乱を招きます。 | +| 流動性提供者 | マーケットメイカー | 2つの通貨または資産間の売買を提供し、多くの場合、取引間の価格差から利益を得る企業または個人。マーケットメーカーという用語は、法域によっては特定の法律上の定義があり、すべての同じ状況で適用されるとは限りません。 | +| 悪質業者 | ハッカー | 個人、組織、または自動化されたツールなどによる、機密情報の取得、暗号化の解除、サービスの拒否、その他の安全なリソースへの攻撃を試みる可能性のあるもの。 | +| PostgreSQL | Postgres | リレーショナルデータベース・ソフトウェアの特定のブランド。非公式な短いバージョンではなく、常に完全な名前を使用します。 | +| オーダーブック | オファーブック | マッチングされ約定されるのを待っているトレード注文のコレクション。通常は取引レートごとにソートされています。 | +| サーバ | ノード | サーバとは、ソフトウェアやハードウェアのことで、特にXRP Ledgerのピアツーピアネットワークに接続するものを指します。_ノード_ という用語はこの目的のために使われることもありますが、グラフのエントリやJavaScriptインタプリタであるNode.jsなど、他の意味でも多用されます。 | +| ステーブルコイン発行者 | ゲートウェイ | 発行者とは、XRP Ledgerにおいてトークンを発行する組織です。ステーブルコインとは、発行者が外部の資産(例えば不換紙幣)に完全に裏付けられていることを約束しているトークンのことで、ステーブルコインの発行者は、その2つの資産を(場合によっては手数料を払って)交換する入出金操作を提供します。以前は、このユースケースを表現するために(特にリップル社によって)_ゲートウェイ_ という用語が使用されていましたが、業界の他の部分は代わりに _ステーブルコイン発行者_ を採用しました。 | +| トランザクションコスト | トランザクション手数料 | XRP Ledgerでトランザクションを送信するために消費されるXRPの金額。これはトランザクションの`Fee`フィールドで指定されますが、_手数料_ という用語は誰かにお金を支払うことを意味するため、_コスト_ の方が望ましいです。 | +| トークン | IOU, issuances, issues, 発行済み通貨 | XRP Ledgerのトークンは、_IOU_ という名前から想像されるように、レジャーの外部にある価値を表すことはできません。必要であれば、_代替可能トークン_ を使用して、非代替性トークン(NFT)と区別してください。 | +| ウォレット | ウォレット | 文脈によっては、_ウォレット_ はハードウェア、ソフトウェア、暗号鍵ペア、またはオンラインサービスを指します。意味が明確になるように十分な文脈を提供するか、_キーペア_ や _クライアントアプリケーション_ などの別の表現を使用してください。 | +| WebSocket | web socket, Websockets | Web上での双方向プロトコル。常に単数形でCamelCaseで記述してください。 | +| XRP | Ripple, リップル | XRP Ledgerのネイティブデジタルアセットまたは暗号通貨。XRPはレジャーの外部の価値を表すトークンではありません。 | +| XRP Ledger | Ripple, リップル, Ripple Network, リップルネットワーク, RCL | XRP Ledgerは、過去に様々な場面で「リップルネットワーク」や「リップルコンセンサスレジャー」あるいは「RCL」と呼ばれていました。これらの名称は、コアサーバのリファレンス実装を開発しているRipple(Ripple Labs)の社名と類似しているため、紛らわしく、廃止されました。 | +| XRPL | XRPL | _XRP Ledger_ の略です。_XRPL_ は不明瞭で、_XRP_ のタイプミスのように見えることがあります。 | ## Frontmatterのフィールド -***Note: Realmのfrontmatter仕様の詳細は完全には文書化されていません。Realmがクローズドベータを終了したら、リンクを更新する必要があります。*** +**_Note: Realmのfrontmatter仕様の詳細は完全には文書化されていません。Realmがクローズドベータを終了したら、リンクを更新する必要があります。_** MarkdownファイルのFrontmatterには、以下のような内容が含まれます。 @@ -232,9 +228,9 @@ Markdocは、テーブルを生成するための3つの異なる構文スタイ 次のように表示されます。 -| | Head 1 | -| ------- | ------ | -| Label 1 | Val 1 | +| | Head 1 | +| ------- | ------ | +| Label 1 | Val 1 | セルの幅は同じである必要はありません。自動的に列を整列し、必要に応じてテキストを折り返します。 @@ -246,10 +242,10 @@ Markdocは、テーブルを生成するための3つの異なる構文スタイ | Hyperbole | The greatest story ever told! No one has ever written anything more important than this Victorian era classic. Oh, how swells the heart to ponder the heady philosophies introduced therein! | ``` -| Key | Value | -| --- | ----- | -| Name | H. G. Wells | -| Genre | Science Fiction | +| Key | Value | +| --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Name | H. G. Wells | +| Genre | Science Fiction | | Hyperbole | The greatest story ever told! No one has ever written anything more important than this Victorian era classic. Oh, how swells the heart to ponder the heady philosophies introduced therein! | ヘッダ行にコロンを使用して、列を左寄せ(:--)、中央寄せ(:-:)、または右寄せ(--:)に配置します。 @@ -262,11 +258,11 @@ Markdocは、テーブルを生成するための3つの異なる構文スタイ | Zhanu | Neon Green | 234,000 XRP | ``` -| Model | Color | Price | -| :-: | :-- | --: | -| Protexra | Electric Blue | 50,000 XRP | -| Joatic | Hot Pink | 165,000 XRP | -| Zhanu | Impetuous Green | 1,728,000 XRP | +| Model | Color | Price | +| :------: | :-------------- | ------------: | +| Protexra | Electric Blue | 50,000 XRP | +| Joatic | Hot Pink | 165,000 XRP | +| Zhanu | Impetuous Green | 1,728,000 XRP | 左の列はデフォルトで太字になります。左の列に太字のラベルを表示したくない場合は、左の列を空にして、テーブルを1列目から始めてください。 @@ -278,11 +274,11 @@ Markdocは、テーブルを生成するための3つの異なる構文スタイ | | Cornichon | Pickle | Essiggurke | ``` -| | French | English | German | -| --- | --- | --- | --- | -| | Fromage | Cheese | Käse | +| | French | English | German | +| --- | -------------- | ------------ | -------------- | +| | Fromage | Cheese | Käse | | | Maux d'estomac | Stomach ache | Magenschmerzen | -| | Cornichon | Pickle | Essiggurke | +| | Cornichon | Pickle | Essiggurke | 可能な限り、これらの基本的なテーブルを使用してください。上記の例で提供されていない特別なフォーマットが本当に必要な場合は、HTML構文を使用してテーブルを作成できます。 @@ -330,12 +326,12 @@ const prepared = await client.autofill({ 次のように表示されます。 ```javascript - const prepared = await client.autofill({ - "TransactionType": "Payment", - "Account": standby_wallet.address, - "Amount": xrpl.xrpToDrops(sendAmount), - "Destination": standbyDestinationField.value - }) +const prepared = await client.autofill({ + TransactionType: 'Payment', + Account: standby_wallet.address, + Amount: xrpl.xrpToDrops(sendAmount), + Destination: standbyDestinationField.value, +}) ``` ## Markdocのコンポーネント @@ -348,7 +344,7 @@ const prepared = await client.autofill({ ### 部分的なコンテンツ -頻繁に使用するテキストや、ドキュメント内の複数の場所で定期的に更新が必要なテキストがある場合は、再利用のために_snippetファイルを作成できます。 +頻繁に使用するテキストや、ドキュメント内の複数の場所で定期的に更新が必要なテキストがある場合は、再利用のために\_snippetファイルを作成できます。 `_snippet`ディレクトリにファイルを保存します。部分的なコンテンツを挿入するには、`{% partial file="" /%}`構文を使用します。 @@ -368,9 +364,10 @@ Never submit a secret key to a server you do not control. Do not send a secret k There I was, happy as a lark, skipping through the daisies, when I shyly handed my secret key to my one true love. -{% partial file="/docs/_snippets/secret-key-warning.md" /%} +{% partial file="/docs/\_snippets/secret-key-warning.md" /%} Alas, if only I had heeded that sage advice, I would not rue the day as I do today. + 次のように表示されます。 @@ -381,6 +378,7 @@ There I was, happy as a lark, skipping through the daisies, when I shyly handed {% partial file="/docs/_snippets/secret-key-warning.md" /%} Alas, if only I had heeded that sage advice, I would not rue the day as I do today. + ### Not-Enabledバッジ @@ -401,7 +399,6 @@ Alas, if only I had heeded that sage advice, I would not rue the day as I do tod サイトのフォークやブランチで作業している場合、サイト設定の変更で一度にすべてのリンクを更新できます。 - ### 試してみる `{% try-it ... /%}` Markdocタグは、WebSocketツールへのリンクをボタンとして提供する便利なショートカットです。このタグは自己終了型です。 @@ -414,26 +411,25 @@ Alas, if only I had heeded that sage advice, I would not rue the day as I do tod {% try-it method="account_currencies" server="testnet" /%} - ボタンのテキストは英語では "Try it!" で、ローカライゼーションの`translations.yaml`ファイルの`component.tryit`キーを設定することで翻訳できます。 このタグは以下のパラメータを受け付けます: -| パラメータ | 必須? | 説明 | -| ---------- | ----- | ---- | -| `method` | はい | WebSocketツールページで使用するアンカーのID。ほとんどの WebSocket API メソッドでは、これはまさにその API メソッドですが、それ以上のものも含む可能性があります。例えば、異なる `ledger_entry` のバリエーションには、`ledger_entry-nft-page` のような接尾辞が使用されます。新しいメソッドを文書化する場合は、`/resources/dev-tools/components/websocket-api/data/command-list.json` を編集して、そのメソッドを WebSocket ツールに追加する必要があります。 | -| `server` | いいえ | リクエストに使用する特定のサーバ。Clio または `rippled` サーバに固有のメソッドを使用する場合、または、例で使用するデータやAmendmentが特定のテストネットワーク上のみにある場合、サーバを指定する必要があります。 | +| パラメータ | 必須? | 説明 | +| ---------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `method` | はい | WebSocketツールページで使用するアンカーのID。ほとんどの WebSocket API メソッドでは、これはまさにその API メソッドですが、それ以上のものも含む可能性があります。例えば、異なる `ledger_entry` のバリエーションには、`ledger_entry-nft-page` のような接尾辞が使用されます。新しいメソッドを文書化する場合は、`/resources/dev-tools/components/websocket-api/data/command-list.json` を編集して、そのメソッドを WebSocket ツールに追加する必要があります。 | +| `server` | いいえ | リクエストに使用する特定のサーバ。Clio または `rippled` サーバに固有のメソッドを使用する場合、または、例で使用するデータやAmendmentが特定のテストネットワーク上のみにある場合、サーバを指定する必要があります。 | `server`パラメータには以下の値を指定できます。 -| `server`値 | 使用するサーバ | -| -------------- | ------------- | -| (省略) | デフォルトのサーバ (現在は`s1.ripple.com`) | -| `s1` | RippleのMainnet公開クラスタ`s1.ripple.com`(通常Clioサーバーが提供) | -| `s2` | RippleのMainnetフルヒストリ公開クラスタ`s2.ripple.com`(通常Clioサーバーが提供) | -| `xrplcluster` | 軽量プロキシを前面に配置した`rippled`サーバーが提供する`xrplcluster.com`公開サーバークラスタ | -| `devnet` | テストネットサーバのクラスタ`s.altnet.rippletest.net` | -| `testnet` |開発ネットサーバのクラスタ`s.devnet.rippletest.net` | +| `server`値 | 使用するサーバ | +| ------------- | -------------------------------------------------------------------------------------------- | +| (省略) | デフォルトのサーバ (現在は`s1.ripple.com`) | +| `s1` | RippleのMainnet公開クラスタ`s1.ripple.com`(通常Clioサーバーが提供) | +| `s2` | RippleのMainnetフルヒストリ公開クラスタ`s2.ripple.com`(通常Clioサーバーが提供) | +| `xrplcluster` | 軽量プロキシを前面に配置した`rippled`サーバーが提供する`xrplcluster.com`公開サーバークラスタ | +| `devnet` | テストネットサーバのクラスタ`s.altnet.rippletest.net` | +| `testnet` | 開発ネットサーバのクラスタ`s.devnet.rippletest.net` | ### トランザクション例 @@ -451,10 +447,9 @@ Alas, if only I had heeded that sage advice, I would not rue the day as I do tod このタグは以下のパラメータを受け付けます。 -| パラメータ | 必須? | 説明 | -| ---------- | ------ | ---- | -| `txid` | はい | 検索するトランザクションの一意のハッシュ。 | +| パラメータ | 必須? | 説明 | +| ---------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `txid` | はい | 検索するトランザクションの一意のハッシュ。 | | `server` | いいえ | リクエストに使用する特定のサーバ。可能な値は上記の`{% try-it %}`で定義されているものと同じです。例えば、Mainnetでは有効になっていないAmendmentによって追加されたトランザクションを表示するためには`devnet`を指定する必要があります。 | - {% child-pages /%} diff --git a/@l10n/ja/resources/contribute-documentation/tutorial-guidelines.md b/@l10n/ja/resources/contribute-documentation/tutorial-guidelines.md index de7fa0fafb..3ca0a9dd93 100644 --- a/@l10n/ja/resources/contribute-documentation/tutorial-guidelines.md +++ b/@l10n/ja/resources/contribute-documentation/tutorial-guidelines.md @@ -2,13 +2,13 @@ html: tutorial-guidelines.html parent: contribute-documentation.html seo: - description: このサイトのチュートリアルの構成と、質の高いチュートリアルを投稿するためのガイドラインを学びましょう。 + description: このサイトのチュートリアルの構成と、質の高いチュートリアルを投稿するためのガイドラインを学びましょう。 --- + # チュートリアルガイドライン 私たちは、開発者がXRP Ledger上でのトランザクションやリクエストの仕組みを学ぶことができる、モジュール式のチュートリアルフレームワークを作成しています。開発者は、ビジネスソリューションについて学ぶためにモジュールを確認し、自身のアプリケーションでスクリプトを再利用することができます。 - # 根拠 開発者は次の2つのことを求めています。 @@ -29,48 +29,40 @@ seo: さらに、ラルフ・スメドレーの「人は楽しいときに最もよく学ぶ」という言葉も付け加えておきましょう。軽い気持ちで学ぶと、学習者をリラックスさせることができ、教材が抵抗なく頭に入ってくるのです。 - # サンプルコード vs タスク vs コンセプト vs チュートリアル これまで、異なるタイプのドキュメントが _チュートリアル_ として表示されたり、境界線が曖昧なことがありました。ここでは、その違いを定義するのに役立ついくつかの比較を紹介します。 - ## サンプルコード サンプルコードとは、APIの機能を実装するためのベストプラクティスを示す、適切にコメントされたスニペットやアプリケーションのことです。サンプルコードはモジュール化されており、カスタマイズをほとんど必要とせず、再利用可能です。 サンプルコードは理想的です。なぜなら、上級者は通常、正式なチュートリアルがなくても、サンプルをスキャンしてすぐに使うことができるからです。また、他の人がチュートリアルの基礎として使うこともできます。サンプルコードの開発者は、自分の得意なことに集中することができ、テクニカルライターやサポート担当者は、サンプルを使って質の高いトレーニング資料を作成することができます。 - ## タスク タスクは、特定の目的を達成するためのステップバイステップの指示です。例えば、"Red Hat Linux Serverにrippledをインストールする"などです。タスクドキュメントはあまり教育的なものではありません。実装ごとに一度だけ実行されるタスクや、常におなじみのパターンに従うメンテナンスタスクが頻繁に記述されています。タスクはトラブルシューティングのガイダンスを示します。 - ## コンセプト コンセプトでは、API の要素やそれらがどのように動作するか、どのような場合にそれらを使用するかについて説明します。もしチュートリアルがプログラミングのタスクの前や途中に長い説明を必要とする場合、説明を新しいトピックに分けるか、既存のトピックにリンクして適切なコンテキストを設定する方法を検討してください。 例えば、3段落のコンテキストと1行のコードは、チュートリアルではなく、コンセプトとして扱うべきでしょう。 - ## チュートリアル チュートリアルは、機能を実装するためのベストプラクティスを示すサンプルコードから始まります。チュートリアルでは、コードの各ブロックの目的を説明しながら、開発のプロセスを段階的に進めていきます。 チュートリアルではさらに、ビジネス上の問題を解決するために、いくつかの機能を組み合わせます。チュートリアルでは、あるタスクを完了するための簡単な手順を説明します。そして、開発者がいくつかの異なるシナリオを試せるように修正を提案するかもしれません。チュートリアルは、ある限られた範囲の動作に焦点を当てているため、広範なトラブルシューティング情報を必要としないようにすべきです。 - ## ユースケース ユースケースでは、複数の機能を組み合わせて、ビジネス上の問題を解決する実用的なアプリケーションを作成する方法を説明します。ユースケースは、コンテキストを提供し、意思決定プロセスを支援し、実装の各ステップに適切なトピックへのリンクを提供します。 - # チュートリアルの構成要素 このセクションでは、XRPL.orgで使用されているチュートリアルモジュールの要素について説明します。 - ## サンプルアプリケーション XRPLチュートリアルのサンプルコードはモジュール式になっています。例えば、スクリプト1はテストアカウントの作成方法、XRP Ledgerへのアクセス方法、アカウント間でのXRP送金方法を示しています。それ以降のサンプルはスクリプト1の機能を再利用することができます。 diff --git a/@l10n/ja/resources/index.md b/@l10n/ja/resources/index.md index 7264009c88..fcef2d85b0 100644 --- a/@l10n/ja/resources/index.md +++ b/@l10n/ja/resources/index.md @@ -4,9 +4,9 @@ parent: index.html metadata: indexPage: true --- + # リソース XRP Ledgerの理解や開発ためのリソース。Other resources to help understand the XRPL and develop on it. - {% child-pages /%} diff --git a/@l10n/ja/resources/known-amendments.md b/@l10n/ja/resources/known-amendments.md index 5d39ed5fd7..8fef94eadb 100644 --- a/@l10n/ja/resources/known-amendments.md +++ b/@l10n/ja/resources/known-amendments.md @@ -1,10 +1,12 @@ --- seo: - description: 本番環境のXRP Ledgerに関する既知のAmendmentのすべてとそのステータスをまとめた総合リストです。 + description: 本番環境のXRP Ledgerに関する既知のAmendmentのすべてとそのステータスをまとめた総合リストです。 labels: - ブロックチェーン --- + # 既知のAmendment + [[ソース]](https://github.com/XRPLF/rippled/blob/develop/include/xrpl/protocol/detail/features.macro "Source") 以下に示すのは、XRP Ledgerに関する既知のAmendmentのすべてとそのステータスをまとめた総合リストです。 @@ -19,44 +21,44 @@ labels: 以下は、現在開発中の[Amendment](../docs/concepts/networks-and-servers/amendments.md)のリストで、変更をテストするためのテストネットが利用可能です。 -| 名前 | ステータス | 追加情報 | -|:----------------------------------|:------------------------------------|:-------------------------------| - | [Hooks][] | {% badge %}開発中: 未定{% /badge %} | [XRPL Hooks](https://hooks.xrpl.org/) | - | [InvariantsV1_1][] | {% badge %}開発中: 未定{% /badge %} | | - | [OwnerPaysFee][] | {% badge %}開発中: 未定{% /badge %} | | - | [SingleAssetVault][] | {% badge %}開発中: 未定{% /badge %} | [Single Asset Vault (Ripple Opensource)](https://opensource.ripple.com/docs/xls-65d-single-asset-vault) | +| 名前 | ステータス | 追加情報 | +| :------------------- | :---------------------------------- | :------------------------------------------------------------------------------------------------------ | +| [Hooks][] | {% badge %}開発中: 未定{% /badge %} | [XRPL Hooks](https://hooks.xrpl.org/) | +| [InvariantsV1_1][] | {% badge %}開発中: 未定{% /badge %} | | +| [OwnerPaysFee][] | {% badge %}開発中: 未定{% /badge %} | | +| [SingleAssetVault][] | {% badge %}開発中: 未定{% /badge %} | [Single Asset Vault (Ripple Opensource)](https://opensource.ripple.com/docs/xls-65d-single-asset-vault) | {% admonition type="info" name="注記" %} このリストは手動で更新されています。もしあなたがAmendmentに取り組んでいて、その変更をテストするためのテストネットワークを持っているなら、このページを編集して開発中のamendmentをこのリストに追加することができます。XRP Ledgerへの貢献についての詳細は、[XRP Ledgerのコードへの貢献](contribute-code/index.md)をご覧ください。 {% /admonition %} - ## 廃止されたAmendment 以下は、以前のバージョンで廃止され削除された、あるいは撤回され削除のマークが付けられた、既知の[Amendment](../docs/concepts/networks-and-servers/amendments.md)の一覧です。 -| 名前 | 登場 | ステータス | -|:----------------------------------|:-----------|:------------------------------| - | [fixNFTokenNegOffer][] | v1.9.2 | {% badge %}廃止: 削除予定{% /badge %} | - | [fixNFTokenDirV1][] | v1.9.1 | {% badge %}廃止: 削除予定{% /badge %} | - | [NonFungibleTokensV1][] | v1.9.0 | {% badge %}廃止: 削除予定{% /badge %} | - | [CryptoConditionsSuite][] | v0.60.0 | {% badge %}廃止: 削除予定{% /badge %} | - | [SHAMapV2][] | v0.32.1 | {% badge href="https://xrpl.org/blog/2019/rippled-1.4.0.html" %}廃止: v1.4.0で削除済み{% /badge %} | - | [Tickets][] | v0.30.1 | {% badge href="https://xrpl.org/blog/2018/rippled-0.90.0.html" %}廃止: v0.90.0で削除済み{% /badge %} | - | [SusPay][] | v0.31.0 | {% badge href="https://xrpl.org/blog/2017/ticksize-voting.html#upcoming-features" %}廃止: v0.60.0で削除済み{% /badge %} | - | [FlowV2][] | v0.32.1 | {% badge href="https://xrpl.org/blog/2016/flowv2-vetoed.html" %}廃止: v0.33.0で削除済み{% /badge %} | +| 名前 | 登場 | ステータス | +| :------------------------ | :------ | :---------------------------------------------------------------------------------------------------------------------- | +| [fixNFTokenNegOffer][] | v1.9.2 | {% badge %}廃止: 削除予定{% /badge %} | +| [fixNFTokenDirV1][] | v1.9.1 | {% badge %}廃止: 削除予定{% /badge %} | +| [NonFungibleTokensV1][] | v1.9.0 | {% badge %}廃止: 削除予定{% /badge %} | +| [CryptoConditionsSuite][] | v0.60.0 | {% badge %}廃止: 削除予定{% /badge %} | +| [SHAMapV2][] | v0.32.1 | {% badge href="https://xrpl.org/blog/2019/rippled-1.4.0.html" %}廃止: v1.4.0で削除済み{% /badge %} | +| [Tickets][] | v0.30.1 | {% badge href="https://xrpl.org/blog/2018/rippled-0.90.0.html" %}廃止: v0.90.0で削除済み{% /badge %} | +| [SusPay][] | v0.31.0 | {% badge href="https://xrpl.org/blog/2017/ticksize-voting.html#upcoming-features" %}廃止: v0.60.0で削除済み{% /badge %} | +| [FlowV2][] | v0.32.1 | {% badge href="https://xrpl.org/blog/2016/flowv2-vetoed.html" %}廃止: v0.33.0で削除済み{% /badge %} | ## 既知のAmendmentsの詳細 ### AMM + [AMM]: #amm -| Amendment | AMM | -|:-------------|:----| -| Amendment ID | 8CC0774A3BF66D1D22E76BBDA8E8A232E6B6313834301B3B23E8601196AE6455 | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | いいえ | -| Amendment前の機能は廃止? | いいえ | +| Amendment | AMM | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 8CC0774A3BF66D1D22E76BBDA8E8A232E6B6313834301B3B23E8601196AE6455 | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | いいえ | +| Amendment前の機能は廃止? | いいえ | 既存の分散型取引所と統合された形で、自動マーケットメーカー(AMM)機能に追加します。各アセット(トークンまたはXRP)のペアは、Ledger上に最大1つのAMMプールを持つことができ、誰でも流動性を提供することで、収益と為替リスクを比例配分することができます。各AMMプールのインスタンスはその資産を保持するための特別なアカウントを持ち、流動性プロバイダーに対してその預入額に応じて"LPトークン"を発行します。流動性プロバイダーは、LPトークンのシェアに基づいてAMMプールの取引手数料に投票することができます。ユーザは、一定期間取引手数料が割引される権利にLPトークンを使って入札することができます。 @@ -78,16 +80,16 @@ labels: いくつかの新しい結果コードを追加します。 - ### AMMClawback + [AMMClawback]: #ammclawback -| Amendment | AMMClawback | -|:-------------|:------------| -| Amendment ID | 726F944886BCDF7433203787E93DD9AA87FAB74DFE3AF4785BA03BEFC97ADA1F | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | いいえ | -| Amendment前の機能は廃止? | いいえ | +| Amendment | AMMClawback | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 726F944886BCDF7433203787E93DD9AA87FAB74DFE3AF4785BA03BEFC97ADA1F | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | いいえ | +| Amendment前の機能は廃止? | いいえ | このAmendmentにより、Clawbackが有効になっているトークンが自動マーケットメーカー(AMM)で使用できるようになります。新しいトランザクションを追加します。 @@ -97,29 +99,29 @@ AMMDepositトランザクションタイプを修正し、AMMにフリーズさ 詳細については、[XLS-73: AMMClawback specification](https://github.com/XRPLF/XRPL-Standards/discussions/212)をご覧ください。 - ### Batch + [Batch]: #batch -| Amendment | Batch | -|:-------------|:------| -| Amendment ID | 894646DD5284E97DECFE6674A6D6152686791C4A95F8C132CCA9BAF9E5812FB6 | -| ステータス | 投票中 | -| デフォルトの投票(最新の安定版) | いいえ | -| Amendment前の機能は廃止? | いいえ | +| Amendment | Batch | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 894646DD5284E97DECFE6674A6D6152686791C4A95F8C132CCA9BAF9E5812FB6 | +| ステータス | 投票中 | +| デフォルトの投票(最新の安定版) | いいえ | +| Amendment前の機能は廃止? | いいえ | Allows multiple transactions to be bundled into a batch that's processed all together. Standard: [XLS-56d](https://github.com/XRPLF/XRPL-Standards/tree/master/XLS-0056d-batch) - ### CheckCashMakesTrustLine + [CheckCashMakesTrustLine]: #checkcashmakestrustline -| Amendment | CheckCashMakesTrustLine | -|:-------------|:------------------------| -| Amendment ID | 98DECF327BF79997AEC178323AD51A830E457BFC6D454DAF3E46E5EC42DC619F | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | いいえ | -| Amendment前の機能は廃止? | いいえ | +| Amendment | CheckCashMakesTrustLine | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 98DECF327BF79997AEC178323AD51A830E457BFC6D454DAF3E46E5EC42DC619F | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | いいえ | +| Amendment前の機能は廃止? | いいえ | [CheckCashトランザクション][]を修正し、[Check](../docs/concepts/payment-types/checks.md)を現金化して発行されたトークンを入手すると、トークンを保持する[トラストライン](../docs/concepts/tokens/fungible-tokens/index.md)を自動的に作成するようにしました。この新しい動作は、ユーザが分散型取引所でトークンを購入する際の[OfferCreateトランザクション][]の動作に似ています。自動的に作成されたトラストラインには限度額0が設定されています。これにより、Checkでトークンを受け取る前にトラストラインを設定するという設定ステップがなくなります。(XRPを送信するCheckは影響を受けません)。 @@ -127,16 +129,16 @@ Allows multiple transactions to be bundled into a batch that's processed all tog この修正は、XRP Ledgerにおいて不要なトークンを保持することを誰にも強制できないという原則を変えるものではありません。 - ### Checks + [Checks]: #checks -| Amendment | Checks | -|:-------------|:-------| -| Amendment ID | 157D2D480E006395B76F948E3E07A45A05FE10230D88A7993C71F97AE4B1F2D1 | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | はい | -| Amendment前の機能は廃止? | いいえ | +| Amendment | Checks | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 157D2D480E006395B76F948E3E07A45A05FE10230D88A7993C71F97AE4B1F2D1 | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | はい | +| Amendment前の機能は廃止? | いいえ | 「Checks」をXRP Ledgerに導入します。Checksは個人用の紙の小切手と同様の機能を持っています。送信者はトランザクションに署名して、具体的な最高額と受取人を入力したCheckを作成します。その後、受取人はCheckを換金して、指定された金額を上限として現金を受け取ることができます。金銭の移動が実際に発生するのはCheckが換金されるときなので、送信者の現在の残高と流動性の状況によっては、Checkを換金できない場合があります。Checkを換金できない場合、Checkオブジェクトはレジャーに残るため、後日換金できるようになる場合があります。 @@ -144,16 +146,16 @@ Allows multiple transactions to be bundled into a batch that's processed all tog 新たに導入するトランザクションタイプは次の3つです。CheckCreate、CheckCancel、CheckCash。また、新しいレジャーオブジェクトタイプはCheckです。新たに追加するトランザクション結果コード`tecEXPIRED`は、有効期限が過去の日時であるCheckを作成しようとすると発生します。 - ### Clawback + [Clawback]: #clawback -| Amendment | Clawback | -|:-------------|:---------| -| Amendment ID | 56B241D7A43D40354D02A9DC4C8DF5C7A1F930D92A9035C4E12291B3CA3E1C2B | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | いいえ | -| Amendment前の機能は廃止? | いいえ | +| Amendment | Clawback | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 56B241D7A43D40354D02A9DC4C8DF5C7A1F930D92A9035C4E12291B3CA3E1C2B | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | いいえ | +| Amendment前の機能は廃止? | いいえ | 規制上の目的から、発行者の中には、発行されたトークンがアカウントに配布された後に回収する能力を持たなければならない場合があります。例えば、トークンが違法行為で制裁を受けたアカウントに送られたことが発覚した場合、発行者はその資金を _回収(claw back)_ することができます。 @@ -161,16 +163,16 @@ Clawbackはデフォルトでは無効になっています。Clawbackを使用 この修正の詳細については、[Clawback](../docs/concepts/tokens/fungible-tokens/clawing-back-tokens.md)をご覧ください。 - ### Credentials + [Credentials]: #credentials -| Amendment | Credentials | -|:-------------|:------------| -| Amendment ID | 1CB67D082CF7D9102412D34258CEDB400E659352D3B207348889297A6D90F5EF | -| ステータス | 投票中 | -| デフォルトの投票(最新の安定版) | いいえ | -| Amendment前の機能は廃止? | いいえ | +| Amendment | Credentials | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 1CB67D082CF7D9102412D34258CEDB400E659352D3B207348889297A6D90F5EF | +| ステータス | 投票中 | +| デフォルトの投票(最新の安定版) | いいえ | +| Amendment前の機能は廃止? | いいえ | XRP Ledgerを使用して資格情報およびコンプライアンス要件を管理するためのツールセット、Credentialsを追加します。 Credentialsを管理するための3つの新しいトランザクションタイプを追加します。 @@ -198,44 +200,44 @@ XRP Ledgerを使用して資格情報およびコンプライアンス要件を 詳細については、[XLS-70: Credentials specification](https://github.com/XRPLF/XRPL-Standards/tree/master/XLS-0070d-credentials)をご覧ください。 - ### CryptoConditions + [CryptoConditions]: #cryptoconditions -| Amendment | CryptoConditions | -|:-------------|:-----------------| -| Amendment ID | 1562511F573A19AE9BD103B5D6B9E01B3B46805AEC5D3C4805C902B514399146 | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | はい | -| Amendment前の機能は廃止? | はい | +| Amendment | CryptoConditions | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 1562511F573A19AE9BD103B5D6B9E01B3B46805AEC5D3C4805C902B514399146 | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | はい | +| Amendment前の機能は廃止? | はい | この修正は有効ですが、[SusPay](#suspay) Amendmentも有効でない限り、何の影響も及ぼしません。SusPayの修正は、[Escrow](#escrow)の修正に置き換えられたため、CryptoConditionsの修正は効力を持ちません。 - ### CryptoConditionsSuite + [CryptoConditionsSuite]: #cryptoconditionssuite -| Amendment | CryptoConditionsSuite | -|:-------------|:----------------------| -| Amendment ID | 86E83A7D2ECE3AD5FA87AB2195AE015C950469ABF0B72EAACED318F74886AE90 | -| ステータス | 廃止 | -| デフォルトの投票(最新の安定版) | いいえ | -| Amendment前の機能は廃止? | いいえ | +| Amendment | CryptoConditionsSuite | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 86E83A7D2ECE3AD5FA87AB2195AE015C950469ABF0B72EAACED318F74886AE90 | +| ステータス | 廃止 | +| デフォルトの投票(最新の安定版) | いいえ | +| Amendment前の機能は廃止? | いいえ | [EscrowCreate][]トランザクションと[EscrowFinish][]トランザクションで使用するために、公式の[Crypto-Conditions仕様](https://tools.ietf.org/html/draft-thomas-crypto-conditions-03)から数種類のCrypto-Conditionsを導入するものでした。 しかし、この修正は実装が完了する前に`rippled` v0.60.0に追加されました。その結果、このAmendment IDは、ほとんど何もしない不完全なコードを参照することになりました。他のcrypto-conditionsのサポートを追加するために既存のAmendmentを変更すると、すでにリリースされたソフトウェアにある古いバージョンの修正案との衝突が発生します。将来のリリースで追加の暗号条件のサポートが追加される場合、新しい別のAmendment IDを使用する必要があります。 - ### DeepFreeze + [DeepFreeze]: #deepfreeze -| Amendment | DeepFreeze | -|:-------------|:-----------| -| Amendment ID | DAF3A6EB04FA5DC51E8E4F23E9B7022B693EFA636F23F22664746C77B5786B23 | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | いいえ | -| Amendment前の機能は廃止? | いいえ | +| Amendment | DeepFreeze | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | DAF3A6EB04FA5DC51E8E4F23E9B7022B693EFA636F23F22664746C77B5786B23 | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | いいえ | +| Amendment前の機能は廃止? | いいえ | This amendment enables issuers to deep freeze trustlines from interacting with payments, offers, AMMs, and the DEX. This prevents deep frozen accounts from sending and receiving frozen assets. With this amendment, four new flags are introduced: @@ -246,16 +248,16 @@ This amendment enables issuers to deep freeze trustlines from interacting with p - `tfSetDeepFreeze` - `tfClearDeepFreeze` - ### DeletableAccounts + [DeletableAccounts]: #deletableaccounts -| Amendment | DeletableAccounts | -|:-------------|:------------------| -| Amendment ID | 30CD365592B8EE40489BA01AE2F7555CAC9C983145871DC82A42A31CF5BAE7D9 | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | はい | -| Amendment前の機能は廃止? | いいえ | +| Amendment | DeletableAccounts | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 30CD365592B8EE40489BA01AE2F7555CAC9C983145871DC82A42A31CF5BAE7D9 | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | はい | +| Amendment前の機能は廃止? | いいえ | [アカウント](../docs/concepts/accounts/index.md)を削除できるようになります。 @@ -263,16 +265,16 @@ This amendment enables issuers to deep freeze trustlines from interacting with p この修正を適用した場合、新しいアカウントは、そのアカウントが作成された[レジャーのインデックス][レジャーインデックス]に一致する`Sequence`番号に等しい`Sequence`番号で始まります。この変更により、一度削除され、その後再作成されたアカウントが、古いトランザクションを再度実行しないように保護することができます。新しい`AccountDelete`トランザクションタイプを追加すると、アカウントと、そのアカウントがレジャーに所有する特定のオブジェクトが削除されます。ただし、特定の種類のオブジェクトはこの方法で削除できないため、そのようなオブジェクトに関連付けられているアカウントは削除できません。また、現行のレジャーインデックスから256を引いた値がアカウントの現行`Sequence`番号より低い場合も、アカウントは削除できません。この修正に関する詳しい解説については、[XRP Community Standards Draft 7](https://github.com/XRPLF/XRPL-Standards/issues/8)をご覧ください。 - ### DepositAuth + [DepositAuth]: #depositauth -| Amendment | DepositAuth | -|:-------------|:------------| -| Amendment ID | F64E1EABBE79D55B3BB82020516CEC2C582A98A6BFE20FBE9BB6A0D233418064 | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | はい | -| Amendment前の機能は廃止? | いいえ | +| Amendment | DepositAuth | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | F64E1EABBE79D55B3BB82020516CEC2C582A98A6BFE20FBE9BB6A0D233418064 | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | はい | +| Amendment前の機能は廃止? | いいえ | 新しいアカウントフラグ`DepositAuth`を追加します。これにより、他のアカウントから送信されたトランザクションに係る入金が厳密に拒否されます。企業はこのフラグを使用することで、あらゆる送金人からの送金を受け入れる前に規則に準拠して適切に対処することができます。 @@ -282,16 +284,16 @@ This amendment enables issuers to deep freeze trustlines from interacting with p また、EscrowCreateトランザクションとPaymentChannelCreateトランザクションで誤ってDisallowXRPフラグを適用してしまうバグも修正します。これは強制力のない勧告フラグとするものです。(レジャー自体にDisallowXRPフラグを適用しないことで、[アカウント準備金](../docs/concepts/accounts/reserves.md)を満たし[トランザクションコスト](../docs/concepts/transactions/transaction-cost.md)を支払うのに必要なXRPを、アカウントが引き続き受け取ることができます。) - ### DepositPreauth + [DepositPreauth]: #depositpreauth -| Amendment | DepositPreauth | -|:-------------|:---------------| -| Amendment ID | 3CBC5C4E630A1B82380295CDA84B32B49DD066602E74E39B85EF64137FA65194 | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | はい | -| Amendment前の機能は廃止? | いいえ | +| Amendment | DepositPreauth | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 3CBC5C4E630A1B82380295CDA84B32B49DD066602E74E39B85EF64137FA65194 | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | はい | +| Amendment前の機能は廃止? | いいえ | [Deposit Authorization](../docs/concepts/accounts/depositauth.md)のユーザに特定の送信者を事前承認する手段を提供して、承認された送信者が支払いを直接送信できるようにします。 @@ -301,16 +303,16 @@ This amendment enables issuers to deep freeze trustlines from interacting with p また、アカウントにDeposit Authorizationが必要な場合、アカウントから自身への異なる通貨間での支払いの動作も変更します。この修正を行わない場合、これらの支払いはコードtecNO_PERMISSIONにて常に失敗します。この修正を行う場合、これらの支払いはDeposit Authorization無効時と同様に成功します。 - ### DID + [DID]: #did -| Amendment | DID | -|:-------------|:----| -| Amendment ID | DB432C3A09D9D5DFC7859F39AE5FF767ABC59AED0A9FB441E83B814D8946C109 | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | いいえ | -| Amendment前の機能は廃止? | いいえ | +| Amendment | DID | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | DB432C3A09D9D5DFC7859F39AE5FF767ABC59AED0A9FB441E83B814D8946C109 | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | いいえ | +| Amendment前の機能は廃止? | いいえ | [World Wide Web Consortium](https://www.w3.org/press-releases/2022/did-rec/)標準に準拠した分散アイデンティティ(DID)機能を追加します。DIDは、中央集権的な機関に依存せず、DID主体によって管理されるデジタルIDを提供します。 @@ -323,16 +325,16 @@ This amendment enables issuers to deep freeze trustlines from interacting with p いくつかの新しいトランザクション結果コードを追加します。 - ### DisallowIncoming + [DisallowIncoming]: #disallowincoming -| Amendment | DisallowIncoming | -|:-------------|:-----------------| -| Amendment ID | 47C3002ABA31628447E8E9A8B315FAA935CE30183F9A9B86845E469CA2CDC3DF | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | いいえ | -| Amendment前の機能は廃止? | いいえ | +| Amendment | DisallowIncoming | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 47C3002ABA31628447E8E9A8B315FAA935CE30183F9A9B86845E469CA2CDC3DF | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | いいえ | +| Amendment前の機能は廃止? | いいえ | Checks、Payment Channels、NFTokenOffer、およびトラストラインを自分のアカウントが受信するのを個別にブロックするためのオプションを提供します。アカウントでこれらのオプションを有効にすると、他のアカウントは、そのアカウントを宛先としてその種類のオブジェクトを作成することができなくなります。 @@ -347,32 +349,32 @@ Checks、Payment Channels、NFTokenOffer、およびトラストラインを自 この修正が適用されない場合、どのアカウントでも、任意のオブジェクトの宛先としてこれらのオブジェクトを作成することができます。これは通常問題はないものの、後でアカウントを削除する際に妨げになったり、詐欺の一部として使用される可能性があります。 - ### DynamicNFT + [DynamicNFT]: #dynamicnft -| Amendment | DynamicNFT | -|:-------------|:-----------| -| Amendment ID | C1CE18F2A268E6A849C27B3DE485006771B4C01B2FCEC4F18356FE92ECD6BB74 | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | いいえ | -| Amendment前の機能は廃止? | いいえ | +| Amendment | DynamicNFT | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | C1CE18F2A268E6A849C27B3DE485006771B4C01B2FCEC4F18356FE92ECD6BB74 | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | いいえ | +| Amendment前の機能は廃止? | いいえ | Adds functionality to update the `URI` field of an `NFToken` ledger entry. This amendment introduces a new transaction type and `NFTokenMint` flag: 1. `NFTokenModify`: New transaction type that updates the `URI` field of an NFT. 2. `tfMutable`: New flag that enables authorized accounts to modify the `URI` of an NFT. This flag must be enabled when the NFT is initially minted. - ### EnforceInvariants + [EnforceInvariants]: #enforceinvariants -| Amendment | EnforceInvariants | -|:-------------|:------------------| -| Amendment ID | DC9CA96AEA1DCF83E527D1AFC916EFAF5D27388ECA4060A88817C1238CAEE0BF | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | はい | -| Amendment前の機能は廃止? | はい | +| Amendment | EnforceInvariants | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | DC9CA96AEA1DCF83E527D1AFC916EFAF5D27388ECA4060A88817C1238CAEE0BF | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | はい | +| Amendment前の機能は廃止? | はい | トランザクション処理にサニティーチェックを追加して、所定の条件が常に満たされるようにします。これにより、トランザクション処理時のバグを防ぐ独立した追加のレイヤーができます。このレイヤーがなければXRP Ledgerが脆弱なものとなり悪用される可能性が生じます。`rippled`の将来バージョンでは、Amendmentを追加せずに不変性チェックをさらに追加する予定です。 @@ -386,31 +388,31 @@ Adds functionality to update the `URI` field of an `NFToken` ledger entry. This - [レジャー内のオブジェクト](../docs/references/protocol/ledger-data/ledger-entry-types/index.md)のタイプは変更できません。(`LedgerEntryType`フィールドは変更できません。) - XRPにトラストラインはありません。 - ### Escrow + [Escrow]: #escrow -| Amendment | Escrow | -|:-------------|:-------| -| Amendment ID | 07D43DCE529B15A10827E5E04943B496762F9A88E3268269D69C44BE49E21104 | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | はい | -| Amendment前の機能は廃止? | はい | +| Amendment | Escrow | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 07D43DCE529B15A10827E5E04943B496762F9A88E3268269D69C44BE49E21104 | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | はい | +| Amendment前の機能は廃止? | はい | [SusPay](#suspay)および[CryptoConditions](#cryptoconditions) Amendmentを置き換えます。 XRP Ledger内のEscrowにXRPの「仮払い」機能を提供します。これには[Interledger Protocol Crypto-Conditions](https://tools.ietf.org/html/draft-thomas-crypto-conditions-02)のサポートが含まれます。仮払い用のレジャーオブジェクトタイプと、仮払いを作成、実行、取り消すためのトランザクションタイプを新規作成します。 - ### ExpandedSignerList + [ExpandedSignerList]: #expandedsignerlist -| Amendment | ExpandedSignerList | -|:-------------|:-------------------| -| Amendment ID | B2A4DB846F0891BF2C76AB2F2ACC8F5B4EC64437135C6E56F3F859DE5FFD5856 | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | いいえ | -| Amendment前の機能は廃止? | いいえ | +| Amendment | ExpandedSignerList | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | B2A4DB846F0891BF2C76AB2F2ACC8F5B4EC64437135C6E56F3F859DE5FFD5856 | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | いいえ | +| Amendment前の機能は廃止? | いいえ | この修正により、署名者リストの最大サイズが拡大され、各署名者にオプションのデータを関連付けることができるようになりました。追加データは署名者を特定するために使用でき、スマートコントラクトや、大規模な組織で誰が鍵を管理しているかを特定するのに便利です。例えば、IPv6アドレスやハードウェアセキュリティモジュール(HSM)の識別子を保存することができます。 @@ -418,16 +420,16 @@ XRP Ledger内のEscrowにXRPの「仮払い」機能を提供します。これ この修正により、[SignerListオブジェクト][]の最大サイズは32エントリになります。さらに、各`SignerEntry`オブジェクトは、任意のデータを含む256ビットの`WalletLocator`フィールドを含むことができます。この修正により、[SignerListSetトランザクション][]もそれに応じて変更されます。 - ### FeeEscalation + [FeeEscalation]: #feeescalation -| Amendment | FeeEscalation | -|:-------------|:--------------| -| Amendment ID | 42426C4D4F1009EE67080A9B7965B44656D7714D104A72F9B4369F97ABF044EE | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | はい | -| Amendment前の機能は廃止? | はい | +| Amendment | FeeEscalation | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 42426C4D4F1009EE67080A9B7965B44656D7714D104A72F9B4369F97ABF044EE | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | はい | +| Amendment前の機能は廃止? | はい | 提案されたトランザクションに[トランザクションコスト](../docs/concepts/transactions/transaction-cost.md)を適用する方法を変更します。トランザクションコストの高いトランザクションの優先順位が高くなるよう、コンセンサスプロセスを変更します。 @@ -437,93 +439,93 @@ XRP Ledger内のEscrowにXRPの「仮払い」機能を提供します。これ 1つのトランザクションは、以下のいずれかが発生するまでキュー内に残ります。 -* 検証済みレジャーに適用される(成功か失敗かには関係ありません) -* 無効になる(例えば、[`LastLedgerSequence`](../docs/references/protocol/transactions/common-fields.md)によって有効期限切れとなる) -* キュー内にトランザクションコストの高いトランザクションがたくさんあるため除外される - +- 検証済みレジャーに適用される(成功か失敗かには関係ありません) +- 無効になる(例えば、[`LastLedgerSequence`](../docs/references/protocol/transactions/common-fields.md)によって有効期限切れとなる) +- キュー内にトランザクションコストの高いトランザクションがたくさんあるため除外される ### fix1201 + [fix1201]: #fix1201 -| Amendment | fix1201 | -|:-------------|:--------| -| Amendment ID | B4D44CC3111ADD964E846FC57760C8B50FFCD5A82C86A72756F6B058DDDF96AD | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | はい | -| Amendment前の機能は廃止? | はい | +| Amendment | fix1201 | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | B4D44CC3111ADD964E846FC57760C8B50FFCD5A82C86A72756F6B058DDDF96AD | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | はい | +| Amendment前の機能は廃止? | はい | [送金手数料](../docs/concepts/tokens/fungible-tokens/transfer-fees.md)に限度を正しく導入し、100%の料金にします。これは、`TransferRate`値の最大値である`2000000000`を表します。(この場合の100%の料金とは、送信する1ユニットごとに2ユニットのトークンを送信する必要があることを意味します。)この修正を行わない場合、有効な限度は`TransferRate`値の232-1、つまり約329%の料金となります。 この修正を行う場合、[AccountSet][]トランザクションの`TransferRate`を`2000000000`より高く設定すると、トランザクションは結果コード`temBAD_TRANSFER_RATE`にて失敗します。以前のルールに従って高い値が設定されている既存のすべての`TransferRate`には、そのまま高い率が適用されます。 - ### fix1368 + [fix1368]: #fix1368 -| Amendment | fix1368 | -|:-------------|:--------| -| Amendment ID | E2E6F2866106419B88C50045ACE96368558C345566AC8F2BDF5A5B5587F0E6FA | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | はい | -| Amendment前の機能は廃止? | はい | +| Amendment | fix1368 | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | E2E6F2866106419B88C50045ACE96368558C345566AC8F2BDF5A5B5587F0E6FA | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | はい | +| Amendment前の機能は廃止? | はい | 有効であるべき一部の支払いが失敗となる、トランザクション処理の小さなバグを修正します。具体的には、支払い処理中に、特定金額の通貨を生成する支払いステップの一部で、浮動小数点の表示に関する精度の不良により、わずかに異なる金額が生成されてしまうことがあります。この状況が発生すると、正確な金額を送金できないため支払いが失敗します。fix1368 Amendmentにより、トランザクション処理が修正されれば、このような支払いの失敗はなくなります。 - ### fix1373 + [fix1373]: #fix1373 -| Amendment | fix1373 | -|:-------------|:--------| -| Amendment ID | 42EEA5E28A97824821D4EF97081FE36A54E9593C6E4F20CBAE098C69D2E072DC | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | はい | -| Amendment前の機能は廃止? | はい | +| Amendment | fix1373 | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 42EEA5E28A97824821D4EF97081FE36A54E9593C6E4F20CBAE098C69D2E072DC | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | はい | +| Amendment前の機能は廃止? | はい | 特定の[支払いパス](../docs/concepts/tokens/fungible-tokens/paths.md)を作成する際にエラーを引き起こすトランザクション処理の小さなバグを修正します。この結果、有効であっても正しく作成されていないパスを、支払いで使用できなくなりました。この修正を行わない場合、支払い時に好ましくないパスの使用を強制されたり、失敗したりする恐れがあります。 fix1373 Amendmenによりこの問題は修正されるため、正しく作成されたパスを使用して支払いを行えます。また、現在は許可されているものの適切ではない一部のパスが無効になります。これには、同じオブジェクトを2回以上ループしてコンフリクトを起こすフィールドやパスを含む[ステップ](../docs/concepts/tokens/fungible-tokens/paths.md#パスの仕様)を持つパスが含まれます。 - ### fix1512 + [fix1512]: #fix1512 -| Amendment | fix1512 | -|:-------------|:--------| -| Amendment ID | 6C92211186613F9647A89DFFBAB8F94C99D4C7E956D495270789128569177DA1 | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | はい | -| Amendment前の機能は廃止? | はい | +| Amendment | fix1512 | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 6C92211186613F9647A89DFFBAB8F94C99D4C7E956D495270789128569177DA1 | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | はい | +| Amendment前の機能は廃止? | はい | 一部の無効な[PaymentChannelClaim][]トランザクションが、不正確なエラーコードで失敗するトランザクション処理のバグを修正します。この修正を行わない場合、トランザクションの結果コードは`tec`クラスとなりますが、レジャーに入力されず、[トランザクションコスト](../docs/concepts/transactions/transaction-cost.md)は支払われません。 この修正により、トランザクションは適切な結果コード`temBAD_AMOUNT`にて失敗します。 - ### fix1513 + [fix1513]: #fix1513 -| Amendment | fix1513 | -|:-------------|:--------| -| Amendment ID | 67A34F2CF55BFC0F93AACD5B281413176FEE195269FA6D95219A2DF738671172 | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | はい | -| Amendment前の機能は廃止? | いいえ | +| Amendment | fix1513 | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 67A34F2CF55BFC0F93AACD5B281413176FEE195269FA6D95219A2DF738671172 | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | はい | +| Amendment前の機能は廃止? | いいえ | `FeeEscalation` Amendmentが行われると、新しい`STAmountCalcSwitchovers`コードが使用されないトランザクション処理のバグを修正します。 この修正により、新しい`STAmountCalcSwitchovers`コードが適用されるため、計算の違いによってトランザクション処理に若干の変更を生じる場合があります。金額の四捨五入のやり方が異なり、その結果、オファーが異なる順序で実行される場合があります。 - ### fix1515 + [fix1515]: #fix1515 -| Amendment | fix1515 | -|:-------------|:--------| -| Amendment ID | 5D08145F0A4983F23AFFFF514E83FAD355C5ABFBB6CAB76FB5BC8519FF5F33BE | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | はい | -| Amendment前の機能は廃止? | いいえ | +| Amendment | fix1515 | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 5D08145F0A4983F23AFFFF514E83FAD355C5ABFBB6CAB76FB5BC8519FF5F33BE | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | はい | +| Amendment前の機能は廃止? | いいえ | Paymentトランザクションがオファーを処理していく方法を変更して、支払処理とオファー処理における流動性の消費の仕方のわずかな違いをなくします。([FlowCross][]が有効の場合、オファーCreateトランザクションの処理方法にも影響します。) @@ -533,46 +535,46 @@ Paymentトランザクションがオファーを処理していく方法を変 どちらの場合でも、トランザクション処理は他のパスまたは為替レートからの流動性を使用して完了できます。 - ### fix1523 + [fix1523]: #fix1523 -| Amendment | fix1523 | -|:-------------|:--------| -| Amendment ID | B9E739B8296B4A1BB29BE990B17D66E21B62A300A909F25AC55C22D6C72E1F9D | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | はい | -| Amendment前の機能は廃止? | はい | +| Amendment | fix1523 | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | B9E739B8296B4A1BB29BE990B17D66E21B62A300A909F25AC55C22D6C72E1F9D | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | はい | +| Amendment前の機能は廃止? | はい | 支払先アカウント別の追跡機能を[Escrow](../docs/concepts/payment-types/escrow.md)に追加します。この修正を行わない場合、保留中のEscrowは送信者別にしか追跡できません。この修正により、[account_objectsメソッド][]を使用して支払先アドレスごとに保留中のEscrowを調べることができます。ただし、この修正が有効になる前に作成された保留中のEscrowを除きます。また、この修正では、[EscrowCreateトランザクション][]を支払先のトランザクション履歴に表示することができます。これは[account_txメソッド][]による表示と同様です。 この修正により、新しいEscrowが送信者と受信者両方の[所有者ディレクトリー](../docs/references/protocol/ledger-data/ledger-entry-types/directorynode.md)に追加されます。また、[Escrowレジャーオブジェクト](../docs/references/protocol/ledger-data/ledger-entry-types/escrow.md)に新しい`DestinationNode`フィールドも追加され、支払先の所有者ディレクトリのどのページにEscrowがあるかを表示します。 - ### fix1528 + [fix1528]: #fix1528 -| Amendment | fix1528 | -|:-------------|:--------| -| Amendment ID | 1D3463A5891F9E589C5AE839FFAC4A917CE96197098A1EF22304E1BC5B98A454 | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | はい | -| Amendment前の機能は廃止? | はい | +| Amendment | fix1528 | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 1D3463A5891F9E589C5AE839FFAC4A917CE96197098A1EF22304E1BC5B98A454 | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | はい | +| Amendment前の機能は廃止? | はい | バリデータがさまざまなタイムスタンプでコンセンサスレジャーを構築できることが原因で、検証済みレジャーの宣言プロセスに遅れをもたらす可能性があるバグを修正します。このような状況の発生は正確なタイミングを要するため、管理テスト環境の外部にいるバリデータがこのバグに遭遇することはあまりありません。 この修正は、バリデータがコンセンサスレジャーの終了時刻の交渉方法を変更して、レジャー内容について合意を得ることはできないが、異なるタイムスタンプでレジャーバージョンを構築できるようにします。 - ### fix1543 + [fix1543]: #fix1543 -| Amendment | fix1543 | -|:-------------|:--------| -| Amendment ID | CA7C02118BA27599528543DFE77BA6838D1B0F43B447D4D7F53523CE6A0E9AC2 | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | はい | -| Amendment前の機能は廃止? | いいえ | +| Amendment | fix1543 | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | CA7C02118BA27599528543DFE77BA6838D1B0F43B447D4D7F53523CE6A0E9AC2 | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | はい | +| Amendment前の機能は廃止? | いいえ | 予約済のフラグ範囲を、まだ正しく適用されていないトランザクションタイプに適用します。未定義または未知のフラグ、または予約された範囲のフラグが有効になっている場合、影響を受けるトランザクションタイプのトランザクションは無効と見なされるようになります。(この変更による影響を受けないトランザクションには、すでに同じルールが正しく適用されています。) @@ -583,48 +585,48 @@ Paymentトランザクションがオファーを処理していく方法を変 - Escrowトランザクション: [EscrowCancel][]、[EscrowCreate][]、[EscrowFinish][] - Payment Channelトランザクション: [PaymentChannelClaim][]、[PaymentChannelCreate][]、[PaymentChannelFund][] - ### fix1571 + [fix1571]: #fix1571 -| Amendment | fix1571 | -|:-------------|:--------| -| Amendment ID | 7117E2EC2DBF119CA55181D69819F1999ECEE1A0225A7FD2B9ED47940968479C | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | はい | -| Amendment前の機能は廃止? | いいえ | +| Amendment | fix1571 | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 7117E2EC2DBF119CA55181D69819F1999ECEE1A0225A7FD2B9ED47940968479C | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | はい | +| Amendment前の機能は廃止? | いいえ | 以下のようにEscrowの問題を修正します。 - [EscrowCreateトランザクション][]に`Condition`フィールドまたは`FinishAfter`フィールド(またはその両方)が必要となるように変更します。この修正以前に作成された、`Condition`や`FinishAfter`のいずれも持たないEscrowは、`CancelAfter`時間より前ならいつでも誰でも終了できます。 - 時間ベースのEscrowが特定の状況下で終了されるのを誤って妨げる欠陥を修正します。 - ### fix1578 + [fix1578]: #fix1578 -| Amendment | fix1578 | -|:-------------|:--------| -| Amendment ID | FBD513F1B893AC765B78F250E6FFA6A11B573209D1842ADC787C850696741288 | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | はい | -| Amendment前の機能は廃止? | いいえ | +| Amendment | fix1578 | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | FBD513F1B893AC765B78F250E6FFA6A11B573209D1842ADC787C850696741288 | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | はい | +| Amendment前の機能は廃止? | いいえ | 以下の2つのトランザクションタイプから返される結果コードを変更します。 - [OfferCreateトランザクション][]を変更して、オファーが`tfFillOrKill`フラグを使用していて中止された場合に、新しい結果コード`tecKILLED`が返されるようにします。この修正を行わない場合、オファーは中止されますが、トランザクション結果は`tesSUCCESS`になります。 - [TrustSetトランザクション][]を変更して、トラストラインがマイナス残高であるため、[NoRippleフラグ](../docs/concepts/tokens/fungible-tokens/rippling.md#norippleフラグ)を有効にしようとしてもできない場合に、`tecNO_PERMISSION`で失敗するようにします。この修正を行わない場合、トランザクションでNoRippleフラグを有効にできなくても、トランザクション結果は`tesSUCCESS`になります。 - ### fix1623 + [fix1623]: #fix1623 -| Amendment | fix1623 | -|:-------------|:--------| -| Amendment ID | 58BE9B5968C4DA7C59BA900961828B113E5490699B21877DEF9A31E9D0FE5D5F | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | はい | -| Amendment前の機能は廃止? | いいえ | +| Amendment | fix1623 | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 58BE9B5968C4DA7C59BA900961828B113E5490699B21877DEF9A31E9D0FE5D5F | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | はい | +| Amendment前の機能は廃止? | いいえ | 変動金額で換金されたCheckCashトランザクションのメタデータに送金額を追加します。([Checks](#checks) Amendmentが有効でないかぎり効果がありません。) @@ -632,16 +634,16 @@ Paymentトランザクションがオファーを処理していく方法を変 fix1623 Amendmentは、固定金額の[CheckCashトランザクション][](`Amount`フィールドを使用)またはその他のトランザクションタイプには影響しません。 - ### fix1781 + [fix1781]: #fix1781 -| Amendment | fix1781 | -|:-------------|:--------| -| Amendment ID | 25BA44241B3BD880770BFA4DA21C7180576831855368CBEC6A3154FDE4A7676E | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | はい | -| Amendment前の機能は廃止? | いいえ | +| Amendment | fix1781 | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 25BA44241B3BD880770BFA4DA21C7180576831855368CBEC6A3154FDE4A7676E | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | はい | +| Amendment前の機能は廃止? | いいえ | 循環パスの検出時に、特定のXRPエンドポイントがチェックされない不具合を修正します。 @@ -649,107 +651,107 @@ fix1623 Amendmentは、固定金額の[CheckCashトランザクション][](`A この修正が適用された場合、これらの支払いは、代わりに[結果コード`temBAD_PATH_LOOP`](../docs/references/protocol/transactions/transaction-results/tem-codes.md)で失敗します。 - ### fixAmendmentMajorityCalc + [fixAmendmentMajorityCalc]: #fixamendmentmajoritycalc -| Amendment | fixAmendmentMajorityCalc | -|:-------------|:-------------------------| -| Amendment ID | 4F46DF03559967AC60F2EB272FEFE3928A7594A45FF774B87A7E540DB0F8F068 | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | はい | -| Amendment前の機能は廃止? | いいえ | +| Amendment | fixAmendmentMajorityCalc | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 4F46DF03559967AC60F2EB272FEFE3928A7594A45FF774B87A7E540DB0F8F068 | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | はい | +| Amendment前の機能は廃止? | いいえ | 丸め処理の影響により、Amendmentが過半数を達成した後、信頼できるバリデータの80%にわずかに満たない賛成で有効になることがあるバグを修正しました。 この修正が適用されない場合、Amendmentが有効になるための最小閾値は、信頼できるバリデータの204/256を丸めた値であり、これはその時の信頼できるバリデータの数に依存します。例えば、36人中28人(約77.8%)のバリデータがあれば、補正は有効になりえます。この修正により、実際に必要な最小限のバリデータの数は、信頼できるバリデータの80%を下回ることはありません。 - ### fixAMMOverflowOffer + [fixAMMOverflowOffer]: #fixammoverflowoffer -| Amendment | fixAMMOverflowOffer | -|:-------------|:--------------------| -| Amendment ID | 12523DF04B553A0B1AD74F42DDB741DE8DC06A03FC089A0EF197E2A87F1D8107 | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | はい | -| Amendment前の機能は廃止? | いいえ | +| Amendment | fixAMMOverflowOffer | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 12523DF04B553A0B1AD74F42DDB741DE8DC06A03FC089A0EF197E2A87F1D8107 | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | はい | +| Amendment前の機能は廃止? | いいえ | このAmendmentにより、決済エンジンにおけるAMMの大規模な合成オファーの不適切な処理が修正されます。このAmendmentは重大な修正であるため、ソースコードのデフォルトの投票はYESに設定されています。 - ### fixAMMv1_1 + [fixAMMv1_1]: #fixammv1_1 -| Amendment | fixAMMv1_1 | -|:-------------|:-----------| -| Amendment ID | 35291ADD2D79EB6991343BDA0912269C817D0F094B02226C1C14AD2858962ED4 | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | いいえ | -| Amendment前の機能は廃止? | いいえ | +| Amendment | fixAMMv1_1 | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 35291ADD2D79EB6991343BDA0912269C817D0F094B02226C1C14AD2858962ED4 | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | いいえ | +| Amendment前の機能は廃止? | いいえ | AMMからのオファーの丸めと低品質なオーダーブックのオファーをAMMがブロックする問題を修正します。 - ### fixAMMv1_2 + [fixAMMv1_2]: #fixammv1_2 -| Amendment | fixAMMv1_2 | -|:-------------|:-----------| -| Amendment ID | 1E7ED950F2F13C4F8E2A54103B74D57D5D298FFDBD005936164EE9E6484C438C | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | いいえ | -| Amendment前の機能は廃止? | いいえ | +| Amendment | fixAMMv1_2 | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 1E7ED950F2F13C4F8E2A54103B74D57D5D298FFDBD005936164EE9E6484C438C | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | いいえ | +| Amendment前の機能は廃止? | いいえ | Automated Market Maker (AMM)トランザクション処理の2つのバグを修正します。 - AMMWithdrawが、特定の条件下においてトラストラインを作成する前に準備金チェックを適切に行わないバグを修正します。 - 特定の条件下においてAMMとオーダーブックの組み合わせから利用可能な流動性の全額を使用しない支払い処理のバグを修正します。 - ### fixAMMv1_3 + [fixAMMv1_3]: #fixammv1_3 -| Amendment | fixAMMv1_3 | -|:-------------|:-----------| -| Amendment ID | 7CA70A7674A26FA517412858659EBC7EDEEF7D2D608824464E6FDEFD06854E14 | -| ステータス | 投票中 | -| デフォルトの投票(最新の安定版) | いいえ | -| Amendment前の機能は廃止? | いいえ | +| Amendment | fixAMMv1_3 | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 7CA70A7674A26FA517412858659EBC7EDEEF7D2D608824464E6FDEFD06854E14 | +| ステータス | 投票中 | +| デフォルトの投票(最新の安定版) | いいえ | +| Amendment前の機能は廃止? | いいえ | Adds several fixes to Automated Market Maker code, specifically: - Add several invariant checks to ensure that AMMs function as designed. - Add rounding to AMM deposit and withdraw to ensure that the AMM's balance meets the invariant: - - On deposit, tokens out are rounded downward and deposit amount is rounded upward. - - On withdrawal, tokens in are rounded upward and withdrawal amount is rounded downward. + - On deposit, tokens out are rounded downward and deposit amount is rounded upward. + - On withdrawal, tokens in are rounded upward and withdrawal amount is rounded downward. - Fix validation of [AMMBid transactions][] to ensure that `AuthAccounts` cannot contain duplicates or the transaction sender. - ### fixCheckThreading + [fixCheckThreading]: #fixcheckthreading -| Amendment | fixCheckThreading | -|:-------------|:------------------| -| Amendment ID | 8F81B066ED20DAECA20DF57187767685EEF3980B228E0667A650BAF24426D3B4 | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | はい | -| Amendment前の機能は廃止? | いいえ | +| Amendment | fixCheckThreading | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 8F81B066ED20DAECA20DF57187767685EEF3980B228E0667A650BAF24426D3B4 | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | はい | +| Amendment前の機能は廃止? | いいえ | Checksトランザクションがアカウントのメタデータに影響を及ぼす方法を変更し、Checksが受信アカウントの[アカウント](../docs/concepts/accounts/index.md)履歴に適切に追加されるようにします。(具体的には、受信アカウントの[AccountRootオブジェクト](../docs/references/protocol/ledger-data/ledger-entry-types/accountroot.md)の`PreviousTxnID`フィールドと`PreviousTxnLedgerSeq`フィールドを更新します。これは、アカウントと、アカウントが所有するオブジェクトに影響を及ぼしたトランザクションの「スレッド」を追跡するために使用できます。) この修正を適用しない場合、Checksトランザクション([CheckCreate][]、[CheckCash][]、および[CheckCancel][])は送信者のアカウント履歴のみを更新します。この修正を適用した場合、これらのトランザクションは、送信アカウントにも受信アカウントにも影響します。この修正は、[Checks Amendment](#checks)も有効でないかぎり効果がありません。 - ### fixDisallowIncomingV1 + [fixDisallowIncomingV1]: #fixdisallowincomingv1 -| Amendment | fixDisallowIncomingV1 | -|:-------------|:----------------------| -| Amendment ID | 15D61F0C6DB6A2F86BCF96F1E2444FEC54E705923339EC175BD3E517C8B3FF91 | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | いいえ | -| Amendment前の機能は廃止? | いいえ | +| Amendment | fixDisallowIncomingV1 | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 15D61F0C6DB6A2F86BCF96F1E2444FEC54E705923339EC175BD3E517C8B3FF91 | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | いいえ | +| Amendment前の機能は廃止? | いいえ | このamendmentにより、ユーザが自分のアカウントで`lsfDisallowIncomingTrustline`フラグを有効にした後にトラストラインを承認する際の問題が修正されます。 @@ -764,16 +766,16 @@ Checksトランザクションがアカウントのメタデータに影響を このamendmentは、[DisallowIncoming][] amendmentが有効でない場合、影響はありません。 - ### fixEmptyDID + [fixEmptyDID]: #fixemptydid -| Amendment | fixEmptyDID | -|:-------------|:------------| -| Amendment ID | 755C971C29971C9F20C6F080F2ED96F87884E40AD19554A5EBECDCEC8A1F77FE | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | いいえ | -| Amendment前の機能は廃止? | いいえ | +| Amendment | fixEmptyDID | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 755C971C29971C9F20C6F080F2ED96F87884E40AD19554A5EBECDCEC8A1F77FE | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | いいえ | +| Amendment前の機能は廃止? | いいえ | このAmendmentにより、空の DID エントリが作成されないようにするためのチェックが追加されます。 @@ -783,32 +785,32 @@ Checksトランザクションがアカウントのメタデータに影響を この修正は、[DID][]Amendmentが有効になっていない限り、何の影響もありません。 - ### fixEnforceNFTokenTrustline + [fixEnforceNFTokenTrustline]: #fixenforcenftokentrustline -| Amendment | fixEnforceNFTokenTrustline | -|:-------------|:---------------------------| -| Amendment ID | 763C37B352BE8C7A04E810F8E462644C45AFEAD624BF3894A08E5C917CF9FF39 | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | いいえ | -| Amendment前の機能は廃止? | いいえ | +| Amendment | fixEnforceNFTokenTrustline | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 763C37B352BE8C7A04E810F8E462644C45AFEAD624BF3894A08E5C917CF9FF39 | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | いいえ | +| Amendment前の機能は廃止? | いいえ | NFTの転送手数料とトラストラインの処理に関する2つのバグを修正します。 - NFTの発行者が送金手数料を受け取るためのトラストラインを持っていることを確認するため、[NFTokenAcceptOfferトランザクション][]にチェックを追加します。このAmendmentがない場合、このチェックはNFT取引のオファーが作成されるときにのみ適用され、オファーが承認されるときには適用されません。その結果、オファーの作成と承認の間に必要なトラストラインが削除された場合、オファーが承認されるときに不適切にトラストラインが再作成されてしまいます。このAmendmentでは、ミンターが送金手数料を受け取るためのトラストラインを持っていない場合、NFT取引オファーを承認するトランザクションは失敗します。(詳細については、[issue #4925](https://github.com/XRPLF/rippled/issues/4925)をご覧ください。) - NFTの発行者が、送金手数料として支払われる代替可能トークンの発行者でもある場合のトラストラインの存在チェックを調整します。このAmendmentがない場合、対象のNFTに送金手数料が設定されており、オファー額が発行者が発行した代替可能トークンで指定され、オファーを出すアカウントがそれらのトークンのトラストラインを持っていない場合、[NFTokenCreateOfferトランザクション][]は結果コード`tecNO_LINE`で失敗します。このAmendmentでは、オファーは正常に作成できます。(詳細については、[issue #4941](https://github.com/XRPLF/rippled/issues/4941)をご覧ください。) - ### fixEnforceNFTokenTrustlineV2 + [fixEnforceNFTokenTrustlineV2]: #fixenforcenftokentrustlinev2 -| Amendment | fixEnforceNFTokenTrustlineV2 | -|:-------------|:-----------------------------| -| Amendment ID | B32752F7DCC41FB86534118FC4EEC8F56E7BD0A7DB60FD73F93F257233C08E3A | -| ステータス | 投票中 | -| デフォルトの投票(最新の安定版) | いいえ | -| Amendment前の機能は廃止? | いいえ | +| Amendment | fixEnforceNFTokenTrustlineV2 | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | B32752F7DCC41FB86534118FC4EEC8F56E7BD0A7DB60FD73F93F257233C08E3A | +| ステータス | 投票中 | +| デフォルトの投票(最新の安定版) | いいえ | +| Amendment前の機能は廃止? | いいえ | Fix a bug where NFT transfer fees could bypass certain limitations on receiving tokens, specifically: @@ -817,16 +819,16 @@ Fix a bug where NFT transfer fees could bypass certain limitations on receiving Without this amendment, NFT transfer fees could be paid to an NFT issuer circumventing these restrictions. - ### fixFillOrKill + [fixFillOrKill]: #fixfillorkill -| Amendment | fixFillOrKill | -|:-------------|:--------------| -| Amendment ID | 3318EA0CF0755AF15DAC19F2B5C5BCBFF4B78BDD57609ACCAABE2C41309B051A | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | いいえ | -| Amendment前の機能は廃止? | いいえ | +| Amendment | fixFillOrKill | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 3318EA0CF0755AF15DAC19F2B5C5BCBFF4B78BDD57609ACCAABE2C41309B051A | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | いいえ | +| Amendment前の機能は廃止? | いいえ | このamendmentは`FlowCross`amendmentで導入された問題を修正します。`tfFillOrKill`フラグが設定され、`tfSell`フラグが設定されていないオファーは、オファーの取引レートがオーダーブックのレートよりも良いが、完全に一致しない場合に失敗します。 @@ -834,16 +836,16 @@ Without this amendment, NFT transfer fees could be paid to an NFT issuer circumv このamendmentは、[FlowCross][] amendmentが有効でない場合、影響はありません。 - ### fixFrozenLPTokenTransfer + [fixFrozenLPTokenTransfer]: #fixfrozenlptokentransfer -| Amendment | fixFrozenLPTokenTransfer | -|:-------------|:-------------------------| -| Amendment ID | 83FD6594FF83C1D105BD2B41D7E242D86ECB4A8220BD9AF4DA35CB0F69E39B2A | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | いいえ | -| Amendment前の機能は廃止? | いいえ | +| Amendment | fixFrozenLPTokenTransfer | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 83FD6594FF83C1D105BD2B41D7E242D86ECB4A8220BD9AF4DA35CB0F69E39B2A | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | いいえ | +| Amendment前の機能は廃止? | いいえ | This amendment fixes a loophole that enabled blacklisted accounts to transfer frozen LP tokens through alternative mechanisms, such as such as payments, checks, offers, or NFTs. @@ -852,31 +854,31 @@ With this amendment enabled, if an LP token is associated with a liquidity pool 1. The holder can't send the frozen LP token to other accounts. 2. The holder can receive frozen LP tokens, but can't send them out (similar to frozen trust lines). - ### fixInnerObjTemplate + [fixInnerObjTemplate]: #fixinnerobjtemplate -| Amendment | fixInnerObjTemplate | -|:-------------|:--------------------| -| Amendment ID | C393B3AEEBF575E475F0C60D5E4241B2070CC4D0EB6C4846B1A07508FAEFC485 | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | いいえ | -| Amendment前の機能は廃止? | いいえ | +| Amendment | fixInnerObjTemplate | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | C393B3AEEBF575E475F0C60D5E4241B2070CC4D0EB6C4846B1A07508FAEFC485 | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | いいえ | +| Amendment前の機能は廃止? | いいえ | このamendmentにより、AMMの`sfVoteEntry`と`sfAuctionSlot`の内部オブジェクトの`sfTradingFee`フィールドと`sfDiscountedFee`フィールドにアクセスする際の問題が修正されました。 現在、内部オブジェクトのテンプレートはオブジェクトの生成時に設定されません。オブジェクトに`soeDEFAULT`フィールドがあり、初期値にデフォルト値が設定されている場合、そのフィールドにアクセスすると、状況によっては`tefEXCEPTION`エラーが発生します。このamendmentにより、内部オブジェクトテンプレートを設定するための追加の真偽値引数を含む`STObject`コンストラクタのオーバーロードが追加されます。 - ### fixInnerObjTemplate2 + [fixInnerObjTemplate2]: #fixinnerobjtemplate2 -| Amendment | fixInnerObjTemplate2 | -|:-------------|:---------------------| -| Amendment ID | 9196110C23EA879B4229E51C286180C7D02166DA712559F634372F5264D0EC59 | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | いいえ | -| Amendment前の機能は廃止? | いいえ | +| Amendment | fixInnerObjTemplate2 | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 9196110C23EA879B4229E51C286180C7D02166DA712559F634372F5264D0EC59 | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | いいえ | +| Amendment前の機能は廃止? | いいえ | このAmendmentは、内部オブジェクト([正規バイナリフォーマットのObject型フィールド](../docs/references/protocol/binary-format.md#object-fields))のフォーマットとデフォルト値の強制方法を標準化します。これは`fixInnerObjTemplate`がAMM関連フィールドに適用するのと同じタイプのチェックですが、このAmendmentは他のすべての種類の内部オブジェクトに適用されます。具体的には次の通りです。 @@ -885,83 +887,83 @@ With this amendment enabled, if an LP token is associated with a liquidity pool - マルチシグトランザクションの[`Signers`配列](../docs/references/protocol/transactions/common-fields.md#signers-field)のメンバー - [SignerListレジャーエントリ][]の`SignerEntries`配列のメンバー - [XChainBridge][] Amendment {% not-enabled /%}の複数の部分: - - [XChainOwnedClaimIDレジャーエントリ][]の`XChainClaimAttestations`配列のメンバー - - [XChainOwnedCreateAccountClaimIDレジャーエントリ][]の`XChainCreateAccountAttestations`配列のメンバー - - [XChainAddClaimAttestationトランザクション][]の`XChainClaimAttestationBatch`配列のメンバー - - [XChainAddClaimAttestationトランザクション][]の`XChainCreateAccountAttestationBatch`配列のメンバー + - [XChainOwnedClaimIDレジャーエントリ][]の`XChainClaimAttestations`配列のメンバー + - [XChainOwnedCreateAccountClaimIDレジャーエントリ][]の`XChainCreateAccountAttestations`配列のメンバー + - [XChainAddClaimAttestationトランザクション][]の`XChainClaimAttestationBatch`配列のメンバー + - [XChainAddClaimAttestationトランザクション][]の`XChainCreateAccountAttestationBatch`配列のメンバー この変更はトランザクション処理に影響を与えないと考えられていますが、不適切にフォーマットされたトランザクションが異なるエラーを受け取るエッジケースが存在する可能性があります。このAmendmentでは、そのようなトランザクションは`temMALFORMED`などの異なる結果コードで失敗します。このAmendmentがない場合、それらのトランザクションは代わりに`tefEXCEPTION`コードで失敗すると予想されます。 - ### fixInvalidTxFlags + [fixInvalidTxFlags]: #fixinvalidtxflags -| Amendment | fixInvalidTxFlags | -|:-------------|:------------------| -| Amendment ID | 8EC4304A06AF03BE953EA6EDA494864F6F3F30AA002BABA35869FBB8C6AE5D52 | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | いいえ | -| Amendment前の機能は廃止? | いいえ | +| Amendment | fixInvalidTxFlags | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 8EC4304A06AF03BE953EA6EDA494864F6F3F30AA002BABA35869FBB8C6AE5D52 | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | いいえ | +| Amendment前の機能は廃止? | いいえ | Adds flag checks for `CredentialCreate`, `CredentialAccept`, `CredentialDelete`, and `SignerListSet` transactions. With this amendment enabled, these transactions will return a `temINVALID_FLAG` error if they include a flag that doesn't exist, or a contradictory combination of flags. - ### fixMasterKeyAsRegularKey + [fixMasterKeyAsRegularKey]: #fixmasterkeyasregularkey -| Amendment | fixMasterKeyAsRegularKey | -|:-------------|:-------------------------| -| Amendment ID | C4483A1896170C66C098DEA5B0E024309C60DC960DE5F01CD7AF986AA3D9AD37 | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | はい | -| Amendment前の機能は廃止? | いいえ | +| Amendment | fixMasterKeyAsRegularKey | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | C4483A1896170C66C098DEA5B0E024309C60DC960DE5F01CD7AF986AA3D9AD37 | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | はい | +| Amendment前の機能は廃止? | いいえ | アカウントのレギュラーキーペアがマスターキーペアと一致するように設定できるものの、マスターキーが無効になった場合に、そのキーによって署名されたトランザクションを送信できなくなるバグを修正します。 この修正を適用しない場合、ユーザは、レギュラーキーがマスターキーと一致するように設定し、その後マスターキーを無効にすることで、意図せずアカウントを「ブラックホール」にしてしまうおそれがあります。ネットワークは、マスターキーペアとレギュラーキーペアの両方で署名されたトランザクションを拒否します。コードは、トランザクションが現在有効なレギュラーキーで署名されていると認識する前に、無効なマスターキーで署名されていると解釈するためです。 -この修正を有効にした場合、SetRegularKeyトランザクションはレギュラーキーがマスターキーに一致するよう設定できないため、そのようなトランザクションでは、トランザクションコードが`temBAD_REGKEY`になります。また、この修正により、署名検証コードが変更されるため、レギュラーキーがマスターキーに一致するよう_すでに_設定しているアカウントは、そのキーペアを使用して正常にトランザクションを送信できます。 - +この修正を有効にした場合、SetRegularKeyトランザクションはレギュラーキーがマスターキーに一致するよう設定できないため、そのようなトランザクションでは、トランザクションコードが`temBAD_REGKEY`になります。また、この修正により、署名検証コードが変更されるため、レギュラーキーがマスターキーに一致するよう*すでに*設定しているアカウントは、そのキーペアを使用して正常にトランザクションを送信できます。 ### fixNFTokenDirV1 + [fixNFTokenDirV1]: #fixnftokendirv1 -| Amendment | fixNFTokenDirV1 | -|:-------------|:----------------| -| Amendment ID | 0285B7E5E08E1A8E4C15636F0591D87F73CB6A7B6452A932AD72BBC8E5D1CBE3 | -| ステータス | 廃止 | -| デフォルトの投票(最新の安定版) | いいえ | -| Amendment前の機能は廃止? | いいえ | +| Amendment | fixNFTokenDirV1 | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 0285B7E5E08E1A8E4C15636F0591D87F73CB6A7B6452A932AD72BBC8E5D1CBE3 | +| ステータス | 廃止 | +| デフォルトの投票(最新の安定版) | いいえ | +| Amendment前の機能は廃止? | いいえ | この修正では、`NFToken`オブジェクトがどの`NFTokenPage`に属するかを判断する際に、いくつかの特定のケースで発生した境界値判定エラーが修正されました。また、`NFTokenPage`の不変性チェックの制約を調整し、特定のエラーケースが`tecINVARIANT_FAILED`エラーコードで失敗する代わりに、`tecNO_SUITABLE_TOKEN_PAGE`などの適切なエラーコードで失敗するようにしました。 この修正は、[NonFungibleTokensV1][] Amendmentが有効でない限り、何の効果もありません。この修正は、その効果が[NonFungibleTokensV1_1][]の一部として含まれているため、廃止されました。 - ### fixNFTokenNegOffer + [fixNFTokenNegOffer]: #fixnftokennegoffer -| Amendment | fixNFTokenNegOffer | -|:-------------|:-------------------| -| Amendment ID | 36799EA497B1369B170805C078AEFE6188345F9B3E324C21E9CA3FF574E3C3D6 | -| ステータス | 廃止 | -| デフォルトの投票(最新の安定版) | いいえ | -| Amendment前の機能は廃止? | いいえ | +| Amendment | fixNFTokenNegOffer | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 36799EA497B1369B170805C078AEFE6188345F9B3E324C21E9CA3FF574E3C3D6 | +| ステータス | 廃止 | +| デフォルトの投票(最新の安定版) | いいえ | +| Amendment前の機能は廃止? | いいえ | この修正は、[NonFungibleTokensV1][] Amendmentのコードにおいて、NFTが負の金額で取引されてしまうバグを修正したものです。この修正が適用されない場合、ユーザは負の金額でNFTの売買を申し込むことができ、その結果、NFTを「買う」人は「売る」人からお金も受け取ることになります。この修正により、マイナスの金額でのNFTのオファーは無効とみなされます。 この修正は、[NonFungibleTokensV1][] Amendmentが有効でない限り、何の影響もありません。この修正は、その効果が[NonFungibleTokensV1_1][]の一部として含まれているため、廃止されました。 - ### fixNFTokenPageLinks + [fixNFTokenPageLinks]: #fixnftokenpagelinks -| Amendment | fixNFTokenPageLinks | -|:-------------|:--------------------| -| Amendment ID | C7981B764EC4439123A86CC7CCBA436E9B3FF73B3F10A0AE51882E404522FC41 | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | いいえ | -| Amendment前の機能は廃止? | いいえ | +| Amendment | fixNFTokenPageLinks | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | C7981B764EC4439123A86CC7CCBA436E9B3FF73B3F10A0AE51882E404522FC41 | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | いいえ | +| Amendment前の機能は廃止? | いいえ | このAmendmentは、NFTディレクトリのチェーンの途中でリンクが欠落する可能性があるバグを修正します。また、将来同様の破損が発生するのを防ぐための不変性チェックを導入し、新しいトランザクションタイプも追加します。 @@ -969,16 +971,16 @@ Adds flag checks for `CredentialCreate`, `CredentialAccept`, `CredentialDelete`, このAmendmentがない場合、特定の状況下でNFTディレクトリの最後のページを削除し、その後、前のページへのリンクが欠落した新しい最後のページを作成することが可能です。この問題を引き起こす可能性のあるシナリオの詳細な説明については、[PR #4945](https://github.com/XRPLF/rippled/pull/4945)をご覧ください。このAmendmentにより、その破損を引き起こしたバグが修正されます。さらに、新しい不変性チェックにより、他のバグが不適切に最後のページを削除できないようになります。 - ### fixNFTokenRemint + [fixNFTokenRemint]: #fixnftokenremint -| Amendment | fixNFTokenRemint | -|:-------------|:-----------------| -| Amendment ID | AE35ABDEFBDE520372B31C957020B34A7A4A9DC3115A69803A44016477C84D6E | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | いいえ | -| Amendment前の機能は廃止? | いいえ | +| Amendment | fixNFTokenRemint | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | AE35ABDEFBDE520372B31C957020B34A7A4A9DC3115A69803A44016477C84D6E | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | いいえ | +| Amendment前の機能は廃止? | いいえ | `fixNFTokenRemint` Amendmentは、同じNFTが同じシーケンス番号で複数回鋳造され、衝突の可能性を生じさせる事態を防ぐため、NFTシーケンス番号の構成方法を変更するものです。このAmendmentにより、NFTシーケンス番号の構成が次のように変更されます。 @@ -990,29 +992,29 @@ Adds flag checks for `CredentialCreate`, `CredentialAccept`, `CredentialDelete`, {% admonition type="warning" name="注意" %}これは、トークンをミントするためにローカルでNFTokenIDを計算しているプロジェクトやツールにとっては **破壊的な変更** です。NFTokenIDを計算するコードがある場合は、新しい計算式に合わせて更新する必要があります。後方互換性を保ちながらこれを行う方法の例については、こちらをご覧ください。[JavaScriptでのよく知られたリファレンス実装](https://gist.github.com/N3TC4T/a20fb528931ed009ebdd708be4938748?permalink_comment_id=4738760#gistcomment-4738760).{% /admonition %} - ### fixNFTokenReserve + [fixNFTokenReserve]: #fixnftokenreserve -| Amendment | fixNFTokenReserve | -|:-------------|:------------------| -| Amendment ID | 03BDC0099C4E14163ADA272C1B6F6FABB448CC3E51F522F978041E4B57D9158C | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | いいえ | -| Amendment前の機能は廃止? | いいえ | +| Amendment | fixNFTokenReserve | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 03BDC0099C4E14163ADA272C1B6F6FABB448CC3E51F522F978041E4B57D9158C | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | いいえ | +| Amendment前の機能は廃止? | いいえ | このamendmentにより、`NFTokenAcceptOffer`トランザクタに`OwnerCount`が変更されたかどうかのチェックが追加されます。変更された場合、更新されたオブジェクト数に対して準備金要件が満たされているかどうかを追加でチェックします。 - ### fixNonFungibleTokensV1_2 + [fixNonFungibleTokensV1_2]: #fixnonfungibletokensv1_2 -| Amendment | fixNonFungibleTokensV1_2 | -|:-------------|:-------------------------| -| Amendment ID | 73761231F7F3D94EC3D8C63D91BDD0D89045C6F71B917D1925C01253515A6669 | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | いいえ | -| Amendment前の機能は廃止? | いいえ | +| Amendment | fixNonFungibleTokensV1_2 | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 73761231F7F3D94EC3D8C63D91BDD0D89045C6F71B917D1925C01253515A6669 | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | いいえ | +| Amendment前の機能は廃止? | いいえ | `fixNonFungibleTokensV1_2` Amendment は、プルリクエストプロセスを通じて個別に feature/nft-fixes にマージされたバグ修正の組み合わせです。 @@ -1044,46 +1046,46 @@ NFTオファーに宛先を設定した場合、その宛先のみが仲介で 参考: [Issue 4373](https://github.com/XRPLF/rippled/issues/4373). - ### fixPayChanCancelAfter + [fixPayChanCancelAfter]: #fixpaychancancelafter -| Amendment | fixPayChanCancelAfter | -|:-------------|:----------------------| -| Amendment ID | D3456A862DC07E382827981CA02E21946E641877F19B8889031CC57FDCAC83E2 | -| ステータス | 投票中 | -| デフォルトの投票(最新の安定版) | いいえ | -| Amendment前の機能は廃止? | いいえ | +| Amendment | fixPayChanCancelAfter | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | D3456A862DC07E382827981CA02E21946E641877F19B8889031CC57FDCAC83E2 | +| ステータス | 投票中 | +| デフォルトの投票(最新の安定版) | いいえ | +| Amendment前の機能は廃止? | いいえ | Prevents new payment channels from being created with a `CancelAfter` time that is before the current ledger. Instead, the [PaymentChannelCreate transaction][] fails with the result code `tecEXPIRED`. Without this amendment, transactions can create a payment channel whose `CancelAfter` time is in the past. This payment channel is automatically removed as expired by the next transaction to affect it. - ### fixPayChanRecipientOwnerDir + [fixPayChanRecipientOwnerDir]: #fixpaychanrecipientownerdir -| Amendment | fixPayChanRecipientOwnerDir | -|:-------------|:----------------------------| -| Amendment ID | 621A0B264970359869E3C0363A899909AAB7A887C8B73519E4ECF952D33258A8 | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | はい | -| Amendment前の機能は廃止? | いいえ | +| Amendment | fixPayChanRecipientOwnerDir | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 621A0B264970359869E3C0363A899909AAB7A887C8B73519E4ECF952D33258A8 | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | はい | +| Amendment前の機能は廃止? | いいえ | [PaymentChannelCreateトランザクション][]タイプを変更し、受取人の[所有者ディレクトリ](../docs/references/protocol/ledger-data/ledger-entry-types/directorynode.md)に新しい[Payment Channel](../docs/concepts/payment-types/payment-channels.md)が追加されるようにします。この修正を適用しない場合、新しいPayment Channelは送金者の所有者ディレクトリーにのみ追加されます。この修正を有効にする場合、新しく作成したPayment Channelは両者の所有者ディレクトリーに追加されます。既存のPayment Channelは変更されません。 この修正により、受取人によるPayment Channelの検索が容易になります。また、アカウントがオープンPayment Channelの受取人だった場合に、そのアカウントが削除されないようにします(ただし、この修正の前に作成されたチャンネルを除きます)。 - ### fixPreviousTxnID + [fixPreviousTxnID]: #fixprevioustxnid -| Amendment | fixPreviousTxnID | -|:-------------|:-----------------| -| Amendment ID | 7BB62DC13EC72B775091E9C71BF8CF97E122647693B50C5E87A80DFD6FCFAC50 | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | いいえ | -| Amendment前の機能は廃止? | いいえ | +| Amendment | fixPreviousTxnID | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 7BB62DC13EC72B775091E9C71BF8CF97E122647693B50C5E87A80DFD6FCFAC50 | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | いいえ | +| Amendment前の機能は廃止? | いいえ | このAmendmentにより、レジャーエントリ`DirectoryNode`、`Amendments`、`FeeSettings`、`NegativeUNL`、および`AMM`に`PreviousTxnID`および`PreviousTxnLgrSequence`フィールドが追加されます。 @@ -1091,31 +1093,31 @@ Without this amendment, transactions can create a payment channel whose `CancelA この修正がない場合、一部のレジャーエントリにこれら2つのフィールドがないため、それらのレジャーエントリの変更履歴を追跡することが難しくなります。 - ### fixQualityUpperBound + [fixQualityUpperBound]: #fixqualityupperbound -| Amendment | fixQualityUpperBound | -|:-------------|:---------------------| -| Amendment ID | 89308AF3B8B10B7192C4E613E1D2E4D9BA64B2EE2D5232402AE82A6A7220D953 | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | はい | -| Amendment前の機能は廃止? | いいえ | +| Amendment | fixQualityUpperBound | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 89308AF3B8B10B7192C4E613E1D2E4D9BA64B2EE2D5232402AE82A6A7220D953 | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | はい | +| Amendment前の機能は廃止? | いいえ | クロスカレンシー決済における個々のステップの入出力比を計算するための使用されていないコードのバグを修正する。 この修正は、取引処理に影響を及ぼさないことが確認されています。 - ### fixReducedOffersV1 + [fixReducedOffersV1]: #fixreducedoffersv1 -| Amendment | fixReducedOffersV1 | -|:-------------|:-------------------| -| Amendment ID | 27CD95EE8E1E5A537FF2F89B6CEB7C622E78E9374EBD7DCBEDFAE21CD6F16E0A | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | いいえ | -| Amendment前の機能は廃止? | いいえ | +| Amendment | fixReducedOffersV1 | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 27CD95EE8E1E5A537FF2F89B6CEB7C622E78E9374EBD7DCBEDFAE21CD6F16E0A | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | いいえ | +| Amendment前の機能は廃止? | いいえ | | Amendment前の機能は廃止? | No | @@ -1131,29 +1133,29 @@ Without this amendment, transactions can create a payment channel whose `CancelA このamendmentがない場合、残額が非常に少ないオファーは、四捨五入後の取引レートが当初よりも大幅に悪化する可能性があります。このため、非常に少額のオファーが、同じオーダーブック内のより良いオファーの取得を「ブロック」してしまう可能性があります。 - ### fixReducedOffersV2 + [fixReducedOffersV2]: #fixreducedoffersv2 -| Amendment | fixReducedOffersV2 | -|:-------------|:-------------------| -| Amendment ID | 31E0DA76FB8FB527CADCDF0E61CB9C94120966328EFA9DCA202135BAF319C0BA | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | いいえ | -| Amendment前の機能は廃止? | いいえ | +| Amendment | fixReducedOffersV2 | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 31E0DA76FB8FB527CADCDF0E61CB9C94120966328EFA9DCA202135BAF319C0BA | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | いいえ | +| Amendment前の機能は廃止? | いいえ | このAmendmentは、「減額された」オファーによってオーダーブックがブロックされる可能性がある特定のケースにおける丸め処理を調整します。これはfixReducedOffersV1 Amendmentと同じ症状に対処するものですが、そのAmendmentでカバーされていなかった追加のケースに対応します。 - ### fixRemoveNFTokenAutoTrustLine + [fixRemoveNFTokenAutoTrustLine]: #fixremovenftokenautotrustline -| Amendment | fixRemoveNFTokenAutoTrustLine | -|:-------------|:------------------------------| -| Amendment ID | DF8B4536989BDACE3F934F29423848B9F1D76D09BE6A1FCFE7E7F06AA26ABEAD | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | はい | -| Amendment前の機能は廃止? | いいえ | +| Amendment | fixRemoveNFTokenAutoTrustLine | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | DF8B4536989BDACE3F934F29423848B9F1D76D09BE6A1FCFE7E7F06AA26ABEAD | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | はい | +| Amendment前の機能は廃止? | いいえ | このフラグを使用した発行者に対するDoS攻撃から保護するために、[非代替性トークン](../docs/concepts/tokens/nfts/index.md)の`tfTrustLine`設定を削除します。このフラグを有効にすると、`tfTrustLine`フラグを有効にした[NFTokenMintトランザクション](../docs/references/protocol/transactions/types/nftokenmint.md)は無効とみなされ、コンセンサスによって検証されません。したがって、`NFToken`オブジェクトはこのフラグを使用してミントをすることができません。 @@ -1163,16 +1165,16 @@ Without this amendment, transactions can create a payment channel whose `CancelA この修正は、[NonFungibleTokensV1][]または [NonFungibleTokensV1_1][]が有効になっていない限り、影響を及ぼしません。発行者を保護するため、このamendmentは[NonFungibleTokensV1][]または[NonFungibleTokensV1_1][]の前に有効にする必要があります。 - ### fixRmSmallIncreasedQOffers + [fixRmSmallIncreasedQOffers]: #fixrmsmallincreasedqoffers -| Amendment | fixRmSmallIncreasedQOffers | -|:-------------|:---------------------------| -| Amendment ID | B6B3EEDC0267AB50491FDC450A398AF30DBCD977CECED8BEF2499CAB5DAC19E2 | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | はい | -| Amendment前の機能は廃止? | いいえ | +| Amendment | fixRmSmallIncreasedQOffers | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | B6B3EEDC0267AB50491FDC450A398AF30DBCD977CECED8BEF2499CAB5DAC19E2 | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | はい | +| Amendment前の機能は廃止? | いいえ | この修正は、特定のオファーがほとんど約定された状態で、そのオファーが最初に配置されたときよりも取引レートが大幅に悪化する問題を修正するものです。これは、片方または両方の資産の残額が非常に小さいため、オファーが置かれたときと同様の比率に丸めることができない場合に起こるものです。 @@ -1180,29 +1182,29 @@ Without this amendment, transactions can create a payment channel whose `CancelA この修正により、決済および取引は、通常、トランザクションが約定済みまたは未約定のオファーを削除するのと同じ方法で、これらのタイプのオファーを削除できるようになります。 - ### fixSTAmountCanonicalize + [fixSTAmountCanonicalize]: #fixstamountcanonicalize -| Amendment | fixSTAmountCanonicalize | -|:-------------|:------------------------| -| Amendment ID | 452F5906C46D46F407883344BFDD90E672B672C5E9943DB4891E3A34FEEEB9DB | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | はい | -| Amendment前の機能は廃止? | いいえ | +| Amendment | fixSTAmountCanonicalize | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 452F5906C46D46F407883344BFDD90E672B672C5E9943DB4891E3A34FEEEB9DB | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | はい | +| Amendment前の機能は廃止? | いいえ | Amount型フィールドの[デシリアライズ](../docs/references/protocol/binary-format.md)におけるエッジケースの問題を修正しました。この修正が適用されない場合、一部の稀なケースで、この操作により、デシリアライズ中に有効なシリアライズされた金額がオーバーフローしてしまう可能性がありました。この修正により、XRP Ledgerはより迅速にエラー状態を検出し、問題となるようなケースを排除します。 - ### fixTakerDryOfferRemoval + [fixTakerDryOfferRemoval]: #fixtakerdryofferremoval -| Amendment | fixTakerDryOfferRemoval | -|:-------------|:------------------------| -| Amendment ID | 2CD5286D8D687E98B41102BDD797198E81EA41DF7BD104E6561FEB104EFF2561 | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | はい | -| Amendment前の機能は廃止? | いいえ | +| Amendment | fixTakerDryOfferRemoval | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 2CD5286D8D687E98B41102BDD797198E81EA41DF7BD104E6561FEB104EFF2561 | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | はい | +| Amendment前の機能は廃止? | いいえ | XRP Ledger内にドライオファーを残す可能性がある[オートブリッジ](../docs/concepts/tokens/decentralized-exchange/autobridging.md)のバグを修正します。ドライオファーとは、オファーを掛け合わせても資金を調達できないオファーのことです。 @@ -1210,45 +1212,45 @@ XRP Ledger内にドライオファーを残す可能性がある[オートブリ この修正により、これらのドライオファーがオートブリッジで一致した場合に、XRP Ledgerによって除去されます。 - ### fixTrustLinesToSelf + [fixTrustLinesToSelf]: #fixtrustlinestoself -| Amendment | fixTrustLinesToSelf | -|:-------------|:--------------------| -| Amendment ID | F1ED6B4A411D8B872E65B9DCB4C8B100375B0DD3D62D07192E011D6D7F339013 | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | いいえ | -| Amendment前の機能は廃止? | いいえ | +| Amendment | fixTrustLinesToSelf | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | F1ED6B4A411D8B872E65B9DCB4C8B100375B0DD3D62D07192E011D6D7F339013 | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | いいえ | +| Amendment前の機能は廃止? | いいえ | この修正により、古いバグにより作成されたアカウントから自身へのトラストラインが2つ削除されます(いずれも2013-05-07のもの)。この修正が有効になると、IDが`2F8F21EFCAFD7ACFB07D5BB04F0D2E18587820C7611305BB674A64EAB0FA71E1`と`326035D5C0560A9DA8636545DD5A1B0DFCFF63E68D491B5522B767BB00564B1A`のトラストラインが存在していれば削除します。削除後、この修正は他に何もしません。 これらのトラストラインを持たないテストネットワークでは、この修正はは何の影響も及ぼしません。 - ### fixUniversalNumber + [fixUniversalNumber]: #fixuniversalnumber -| Amendment | fixUniversalNumber | -|:-------------|:-------------------| -| Amendment ID | 2E2FB9CF8A44EB80F4694D38AADAE9B8B7ADAFD2F092E10068E61C98C4F092B0 | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | いいえ | -| Amendment前の機能は廃止? | いいえ | +| Amendment | fixUniversalNumber | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 2E2FB9CF8A44EB80F4694D38AADAE9B8B7ADAFD2F092E10068E61C98C4F092B0 | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | いいえ | +| Amendment前の機能は廃止? | いいえ | 10進浮動小数点演算のコードを簡略化し、統合します。場合によっては、以前のコードよりも精度が若干向上し、最下位桁が以前のコードで計算したときと異なる計算結果になることがあります。この計算結果の違いにより、オファーのランキングや複数の異なるパスを使用する支払い処理など、精密な計算が使用される他のエッジケースにおいて違いが生じる場合があります。 この修正が適用されない場合、コードは引き続き`STAmount`と`IOUAmount`オブジェクトに対して別々の計算を使用し、[自動マーケットメーカー(XLS-30d)](https://github.com/XRPLF/XRPL-Standards/discussions/78)は計算のために新しい3つめの計算方法を使用します。 - ### fixXChainRewardRounding + [fixXChainRewardRounding]: #fixxchainrewardrounding -| Amendment | fixXChainRewardRounding | -|:-------------|:------------------------| -| Amendment ID | 2BF037D90E1B676B17592A8AF55E88DB465398B4B597AE46EECEE1399AB05699 | -| ステータス | 投票中 | -| デフォルトの投票(最新の安定版) | いいえ | -| Amendment前の機能は廃止? | いいえ | +| Amendment | fixXChainRewardRounding | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 2BF037D90E1B676B17592A8AF55E88DB465398B4B597AE46EECEE1399AB05699 | +| ステータス | 投票中 | +| デフォルトの投票(最新の安定版) | いいえ | +| Amendment前の機能は廃止? | いいえ | この修正により、クロスチェーン取引の報酬シェアは常に切り捨てられるようになります。これにより、当初意図された動作が維持されます。 @@ -1256,31 +1258,31 @@ XRP Ledger内にドライオファーを残す可能性がある[オートブリ このAmendmentにより、意図された丸め動作が復元されます。[XChainBridge][]と[fixUniversalNumber][]の両方のAmendmentも有効になっていない限り、このAmendmentは何も影響を及ぼしません。 - ### Flow + [Flow]: #flow -| Amendment | Flow | -|:-------------|:-----| -| Amendment ID | 740352F2412A9909880C23A559FCECEDA3BE2126FED62FC7660D628A06927F11 | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | はい | -| Amendment前の機能は廃止? | いいえ | +| Amendment | Flow | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 740352F2412A9909880C23A559FCECEDA3BE2126FED62FC7660D628A06927F11 | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | はい | +| Amendment前の機能は廃止? | いいえ | 支払い処理エンジンを、より堅固で効率的に作られたFlowエンジンに置き換えます。この新バージョンの支払い処理エンジンは、旧バージョンと同じルールを踏襲しますが、浮動小数点の丸め処理により異なる結果をもたらすことがあります。この修正は[FlowV2](https://xrpl.org/blog/2016/flowv2-vetoed.html) Amendmentに代わるものです。 また、Flowエンジンは、さらなるAmendmentを通じて、支払いエンジンの改善や拡張を容易にします。 - ### FlowCross + [FlowCross]: #flowcross -| Amendment | FlowCross | -|:-------------|:----------| -| Amendment ID | 3012E8230864E95A58C60FD61430D7E1B4D3353195F2981DC12B0C7C0950FFAC | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | はい | -| Amendment前の機能は廃止? | いいえ | +| Amendment | FlowCross | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 3012E8230864E95A58C60FD61430D7E1B4D3353195F2981DC12B0C7C0950FFAC | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | はい | +| Amendment前の機能は廃止? | いいえ | XRP Ledgerの分散型取引所において、オファーの掛け合わせのロジックを合理化します。[Flow](#flow) Amendmentから更新されたコードを使用してオファーの掛け合わせを行うため、[OfferCreateトランザクション][]と[Paymentトランザクション][]は多くのコードを共有します。オファーの処理方法には微妙な違いがあります。 @@ -1288,100 +1290,100 @@ XRP Ledgerの分散型取引所において、オファーの掛け合わせの - 丸め方の違いが原因で、一部のオファーの組み合わせのランク付けが以前のロジックより上下したり、優先されたりします。 - 新しいロジックによって、以前のロジックより多めまたは少なめにオファーが削除される場合があります。(これには、丸め方の違いによるケースや、以前のロジックによって資金供給なしとして不正に削除されたオファーが含まれます。) - ### FlowSortStrands + [FlowSortStrands]: #flowsortstrands -| Amendment | FlowSortStrands | -|:-------------|:----------------| -| Amendment ID | AF8DF7465C338AE64B1E937D6C8DA138C0D63AD5134A68792BBBE1F63356C422 | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | はい | -| Amendment前の機能は廃止? | いいえ | +| Amendment | FlowSortStrands | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | AF8DF7465C338AE64B1E937D6C8DA138C0D63AD5134A68792BBBE1F63356C422 | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | はい | +| Amendment前の機能は廃止? | いいえ | 決済エンジンの計算を改善し、最もコスト効率の良いクロスカレンシー取引の実行方法を見つけます。 この修正が適用されない場合、エンジンは可能な各パスを介して支払いをシミュレートし、各パスの品質(入力と出力の比率)を計算します。この修正により、エンジンは完全な支払いをシミュレートすることなく、各パスの理論的な品質を計算します。この変更により、決済エンジンは一部のクロスカレンシー決済をより速く実行し、より多くのケースで最も費用対効果の高いパスを見つけることができるようになり、従来の決済エンジンでは十分な流動性を見つけることができなかった特定の条件でも、一部の決済を成功させることができるようになります。 - ### FlowV2 + [FlowV2]: #flowv2 -| Amendment | FlowV2 | -|:-------------|:-------| -| Amendment ID | 5CC22CFF2864B020BD79E0E1F048F63EF3594F95E650E43B3F837EF1DF5F4B26 | -| ステータス | 廃止 | -| デフォルトの投票(最新の安定版) | いいえ | -| Amendment前の機能は廃止? | いいえ | +| Amendment | FlowV2 | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 5CC22CFF2864B020BD79E0E1F048F63EF3594F95E650E43B3F837EF1DF5F4B26 | +| ステータス | 廃止 | +| デフォルトの投票(最新の安定版) | いいえ | +| Amendment前の機能は廃止? | いいえ | これは[Flow](#flow) Amendmentの旧バージョンです。[バグが原因で不採用となり](https://xrpl.org/blog/2016/flowv2-vetoed.html)、バージョン0.33.0で除外されました。 - ### HardenedValidations + [HardenedValidations]: #hardenedvalidations -| Amendment | HardenedValidations | -|:-------------|:--------------------| -| Amendment ID | 1F4AFA8FA1BC8827AD4C0F682C03A8B671DCDF6B5C4DE36D44243A684103EF88 | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | はい | -| Amendment前の機能は廃止? | いいえ | +| Amendment | HardenedValidations | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 1F4AFA8FA1BC8827AD4C0F682C03A8B671DCDF6B5C4DE36D44243A684103EF88 | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | はい | +| Amendment前の機能は廃止? | いいえ | バリデータは、バリデータが完全に検証されたとみなす最新の台帳のハッシュを証明する新しいオプションフィールドをバリデーションに含めることができるようにします。コンセンサスプロセスでは、この情報を使用してコンセンサスの堅牢性を高めることができます。 - ### Hooks + [Hooks]: #hooks -| Amendment | Hooks | -|:-------------|:------| -| Amendment ID | ECE6819DBA5DB528F1A241695F5A9811EF99467CDE22510954FD357780BBD078 | -| ステータス | 開発中 | -| デフォルトの投票(最新の安定版) | いいえ | -| Amendment前の機能は廃止? | いいえ | +| Amendment | Hooks | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | ECE6819DBA5DB528F1A241695F5A9811EF99467CDE22510954FD357780BBD078 | +| ステータス | 開発中 | +| デフォルトの投票(最新の安定版) | いいえ | +| Amendment前の機能は廃止? | いいえ | トランザクションの前後にアカウント上で実行できる小さなコードという形式で、オンチェーンのスマートコントラクトを追加します。詳細は[Hooksドキュメント (英語のみ)](https://xrpl-hooks.readme.io/)をご覧ください。 - ### ImmediateOfferKilled + [ImmediateOfferKilled]: #immediateofferkilled -| Amendment | ImmediateOfferKilled | -|:-------------|:---------------------| -| Amendment ID | 75A7E01C505DD5A179DFE3E000A9B6F1EDDEB55A12F95579A23E15B15DC8BE5A | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | いいえ | -| Amendment前の機能は廃止? | いいえ | +| Amendment | ImmediateOfferKilled | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 75A7E01C505DD5A179DFE3E000A9B6F1EDDEB55A12F95579A23E15B15DC8BE5A | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | いいえ | +| Amendment前の機能は廃止? | いいえ | オファーが`tfImmediateOrCancel`を使用し、トランザクション処理で資金を移動せずにオファーを終了した場合、トランザクションは`tesSUCCESS`ではなく結果コード`tecKILLED`を使用するようにOfferCreateトランザクションを変更します。Offerが少額でも資金を交換した場合、トランザクションは引き続き`tesSUCCESS`を使用します。トランザクションの処理自体には変更はありません(例えば、トランザクション処理中に台帳に表示された期限切れのオファーや未入金のオファーをクリーンアップするかどうかという点など)。 この修正が適用されない場合、資金の移動に失敗した「Immediate or Cancel」注文は、結果コード「tesSUCCESS」を返し、そのトランザクションが事実上何もしなかったため、混乱する可能性を残します。 - ### InvariantsV1_1 + [InvariantsV1_1]: #invariantsv1_1 -| Amendment | InvariantsV1_1 | -|:-------------|:---------------| -| Amendment ID | D8ED3BE0B2673496CB49DE8B5588C8805DF7B1DE203F38FE0367ACE703D36C0F | -| ステータス | 開発中 | -| デフォルトの投票(最新の安定版) | いいえ | -| Amendment前の機能は廃止? | いいえ | +| Amendment | InvariantsV1_1 | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | D8ED3BE0B2673496CB49DE8B5588C8805DF7B1DE203F38FE0367ACE703D36C0F | +| ステータス | 開発中 | +| デフォルトの投票(最新の安定版) | いいえ | +| Amendment前の機能は廃止? | いいえ | このAmendmentは、トランザクション処理におけるバグからレジャーを保護するために、いくつかの新しい不変性チェックを追加します。開発者は、複数の不変性チェックが実装された後、投票のために開放することを意図しています。含まれる不変性は次の通りです。 - アカウントを削除する際、そのアカウントの`DirectoryNode`、`SignerList`、`NFTokenPage`、`AMM`ディレクトリなど、特定のタイプのレジャーエントリも一緒に削除されることを確認します。 - ### MPTokensV1 + [MPTokensV1]: #mptokensv1 -| Amendment | MPTokensV1 | -|:-------------|:-----------| -| Amendment ID | 950AE2EA4654E47F04AA8739C0B214E242097E802FD372D24047A89AB1F5EC38 | -| ステータス | 投票中 | -| デフォルトの投票(最新の安定版) | いいえ | -| Amendment前の機能は廃止? | いいえ | +| Amendment | MPTokensV1 | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 950AE2EA4654E47F04AA8739C0B214E242097E802FD372D24047A89AB1F5EC38 | +| ステータス | 投票中 | +| デフォルトの投票(最新の安定版) | いいえ | +| Amendment前の機能は廃止? | いいえ | _Multi-Purpose Token(MPT)_ と呼ばれる新しいタイプの代替可能トークンを実装します。このトークンタイプは、ステーブルコインなどの一般的なトークンのユースケースに最適化されており、双方向のトラストラインに保存されるXRP Ledgerの既存の代替可能トークンに固有の複雑さを回避することを目的としています。このAmendmentは次のものを追加します。 @@ -1404,16 +1406,16 @@ _Multi-Purpose Token(MPT)_ と呼ばれる新しいタイプの代替可能ト - (新規) `mpt_holders`メソッド - 特定のMPT発行を保有するアカウントのリストを返します。 - (更新) `ledger_entry`メソッド - MPTokenとMPTokenIssuanceのレジャーエントリタイプを検索できます。 - ### MultiSign + [MultiSign]: #multisign -| Amendment | MultiSign | -|:-------------|:----------| -| Amendment ID | 4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373 | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | はい | -| Amendment前の機能は廃止? | はい | +| Amendment | MultiSign | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373 | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | はい | +| Amendment前の機能は廃止? | はい | トランザクションの承認方法として[マルチシグ](../docs/concepts/accounts/multi-signing.md)を導入します。[`SignerList`レジャーオブジェクトタイプ](../docs/references/protocol/ledger-data/ledger-entry-types/signerlist.md)と[`SignerListSet`トランザクションタイプ](../docs/references/protocol/transactions/types/signerlistset.md)を作成します。省略可能な`Signers`フィールドをすべてのトランザクションタイプに追加します。一部のトランザクション結果コードを変更します。 @@ -1423,24 +1425,24 @@ _Multi-Purpose Token(MPT)_ と呼ばれる新しいタイプの代替可能ト SignerListを持つアドレスは、レギュラーキーが定義されていなくてもマスターキーを無効にすることができます。また、SignerListを持つアドレスは、マスターキーが無効な場合でもレギュラーキーを削除することができます。`tecMASTER_DISABLED`トランザクション結果コードは`tecNO_ALTERNATIVE_KEY`に名前が変更されます。`tecNO_REGULAR_KEY`トランザクション結果コードは廃止となり、`tecNO_ALTERNATIVE_KEY`に代わります。さらに、この修正は以下の新しい[トランザクション結果コード](../docs/references/protocol/transactions/transaction-results/index.md)を追加します。 -* `temBAD_SIGNER` -* `temBAD_QUORUM` -* `temBAD_WEIGHT` -* `tefBAD_SIGNATURE` -* `tefBAD_QUORUM` -* `tefNOT_MULTI_SIGNING` -* `tefBAD_AUTH_MASTER` - +- `temBAD_SIGNER` +- `temBAD_QUORUM` +- `temBAD_WEIGHT` +- `tefBAD_SIGNATURE` +- `tefBAD_QUORUM` +- `tefNOT_MULTI_SIGNING` +- `tefBAD_AUTH_MASTER` ### MultiSignReserve + [MultiSignReserve]: #multisignreserve -| Amendment | MultiSignReserve | -|:-------------|:-----------------| -| Amendment ID | 586480873651E106F1D6339B0C4A8945BA705A777F3F4524626FF1FC07EFE41D | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | はい | -| Amendment前の機能は廃止? | いいえ | +| Amendment | MultiSignReserve | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 586480873651E106F1D6339B0C4A8945BA705A777F3F4524626FF1FC07EFE41D | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | はい | +| Amendment前の機能は廃止? | いいえ | XRP Ledgerアカウントが[マルチシグ](../docs/concepts/accounts/multi-signing.md)SignerListを所有する場合、アカウントに加算される[所有者準備金](../docs/concepts/accounts/reserves.md#所有者準備金)を削減します。 @@ -1448,29 +1450,29 @@ XRP Ledgerアカウントが[マルチシグ](../docs/concepts/accounts/multi-si この修正により、新しいSignerListの所有者準備金は、署名者数に関係なく5XRPとなります。以前に作成されたSignerListオブジェクトの準備金は、そのまま変更されません。この修正の後に作成されたSignerListオブジェクトの準備金を削減するには、この修正実施後に、[SignerListSetトランザクション](../docs/references/protocol/transactions/types/signerlistset.md)を使用してSignerListを置き換えます。(この置き換えは、前のバージョンの場合とまったく同じです。) - ### NegativeUNL + [NegativeUNL]: #negativeunl -| Amendment | NegativeUNL | -|:-------------|:------------| -| Amendment ID | B4E4F5D2D6FB84DF7399960A732309C9FD530EAE5941838160042833625A6076 | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | はい | -| Amendment前の機能は廃止? | いいえ | +| Amendment | NegativeUNL | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | B4E4F5D2D6FB84DF7399960A732309C9FD530EAE5941838160042833625A6076 | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | はい | +| Amendment前の機能は廃止? | いいえ | ネットワークがどのバリデータが一時的にオフラインになったかを追跡し、定足数計算の際にそれらのバリデータを無視できる「ネガティブUNL」システムを実装します。これにより、ネットワークが不安定な状態でも、ネットワークを進展させる能力を高めることができます。 - ### NFTokenMintOffer + [NFTokenMintOffer]: #nftokenmintoffer -| Amendment | NFTokenMintOffer | -|:-------------|:-----------------| -| Amendment ID | EE3CF852F0506782D05E65D49E5DCC3D16D50898CD1B646BAE274863401CC3CE | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | いいえ | -| Amendment前の機能は廃止? | いいえ | +| Amendment | NFTokenMintOffer | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | EE3CF852F0506782D05E65D49E5DCC3D16D50898CD1B646BAE274863401CC3CE | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | いいえ | +| Amendment前の機能は廃止? | いいえ | NFTの発行処理を変更し、同時にトークンの売却オファーも作成できるようにします。 @@ -1482,16 +1484,16 @@ NFTの発行処理を変更し、同時にトークンの売却オファーも このAmendmentがない場合、NFTをミントした後に売却オファーを出すには、別途[NFTokenCreateOfferトランザクション][]を送信する必要があります。 - ### NonFungibleTokensV1 + [NonFungibleTokensV1]: #nonfungibletokensv1 -| Amendment | NonFungibleTokensV1 | -|:-------------|:--------------------| -| Amendment ID | 3C43D9A973AA4443EF3FC38E42DD306160FBFFDAB901CD8BAA15D09F2597EB87 | -| ステータス | 廃止 | -| デフォルトの投票(最新の安定版) | いいえ | -| Amendment前の機能は廃止? | いいえ | +| Amendment | NonFungibleTokensV1 | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 3C43D9A973AA4443EF3FC38E42DD306160FBFFDAB901CD8BAA15D09F2597EB87 | +| ステータス | 廃止 | +| デフォルトの投票(最新の安定版) | いいえ | +| Amendment前の機能は廃止? | いいえ | 非代替性トークンのネイティブサポートを追加します。標準規格案: [XLS-20d](https://github.com/XRPLF/XRPL-Standards/discussions/46)。 @@ -1514,16 +1516,16 @@ NFTの発行処理を変更し、同時にトークンの売却オファーも また、[AccountSetトランザクション][]を変更し、`NFTokenMinter`フィールドを設定できるようにしました。 - ### NonFungibleTokensV1_1 + [NonFungibleTokensV1_1]: #nonfungibletokensv1_1 -| Amendment | NonFungibleTokensV1_1 | -|:-------------|:----------------------| -| Amendment ID | 32A122F1352A4C7B3A6D790362CC34749C5E57FCE896377BFDC6CCD14F6CD627 | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | いいえ | -| Amendment前の機能は廃止? | いいえ | +| Amendment | NonFungibleTokensV1_1 | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 32A122F1352A4C7B3A6D790362CC34749C5E57FCE896377BFDC6CCD14F6CD627 | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | いいえ | +| Amendment前の機能は廃止? | いいえ | [NonFungibleTokensV1][]の後に発見されたいくつかの問題の修正を含む[非代替性トークン](../docs/concepts/tokens/nfts/index.md)のネイティブサポートを追加します。 @@ -1537,16 +1539,16 @@ NFTの発行処理を変更し、同時にトークンの売却オファーも {% admonition type="warning" name="注意" %}[fixRemoveNFTokenAutoTrustLine][]は、このAmendmentの既知の問題を修正します。新しいテストネットワークを作成する場合、これらの修正を一緒に有効にするか、またはAmendmentの修正を先に有効にする必要があります。{% /admonition %} - ### OwnerPaysFee + [OwnerPaysFee]: #ownerpaysfee -| Amendment | OwnerPaysFee | -|:-------------|:-------------| -| Amendment ID | 9178256A980A86CF3D70D0260A7DA6402AAFE43632FDBCB88037978404188871 | -| ステータス | 開発中 | -| デフォルトの投票(最新の安定版) | 非該当 | -| Amendment前の機能は廃止? | いいえ | +| Amendment | OwnerPaysFee | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 9178256A980A86CF3D70D0260A7DA6402AAFE43632FDBCB88037978404188871 | +| ステータス | 開発中 | +| デフォルトの投票(最新の安定版) | 非該当 | +| Amendment前の機能は廃止? | いいえ | [OfferCreate](../docs/references/protocol/transactions/types/offercreate.md)トランザクションタイプと[Payment](../docs/references/protocol/transactions/types/payment.md)トランザクションタイプで、[送金手数料](../docs/concepts/tokens/fungible-tokens/transfer-fees.md)の計算方法に相違があるのを修正します。この修正を行わない場合、オファーがオファープレースメントで実行される際にイシュアンスの保有者が送金手数料を支払いますが、トランザクションの最初の送信者は支払い処理の過程で実行されるオファーの送金手数料を支払います。この修正により、オファーがPaymentトランザクションまたはOfferCreateトランザクションの一部として実行されるかどうかにかかわらず、イシュアンスの保有者が常に送金手数料を支払います。支払い以外のオファー処理は影響を受けません。 @@ -1554,16 +1556,16 @@ NFTの発行処理を変更し、同時にトークンの売却オファーも {% admonition type="info" name="注記" %}不完全なバージョンのこのAmendmentについては、v0.33.0で導入され、v0.80.0で削除されました(有効となったことはありません)。{% /admonition %} - ### PayChan + [PayChan]: #paychan -| Amendment | PayChan | -|:-------------|:--------| -| Amendment ID | 08DE7D96082187F6E6578530258C77FAABABE4C20474BDB82F04B021F1A68647 | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | はい | -| Amendment前の機能は廃止? | はい | +| Amendment | PayChan | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 08DE7D96082187F6E6578530258C77FAABABE4C20474BDB82F04B021F1A68647 | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | はい | +| Amendment前の機能は廃止? | はい | XRPの「Payment Channel」を作成します。Payment Channelは、2名の当事者間で一方向の繰り返しの支払い、またはそれに伴う一時的な貸付を容易に行えるようにするツールです。Rippleは、この機能が[Interledger Protocol](https://interledger.org/)に役立つと期待しています。ある当事者がPayment Channelを作成し、そのチャンネル内に有効期限を事前に設定してXRPをいくらか確保します。次に、レジャー外部の安全な通信を介して、送信者は「クレーム」メッセージを受信者に送信できます。受信者は有効期限の終了前にクレームメッセージを清算することも、支払いが必要ない場合は清算しないことも選択できます。受信者は、クレームを実際にネットワークに分散させてコンセンサスプロセスで清算されるのを待たなくとも、請求を個々に確認してから、有効期限内であれば多数の少額クレームをまとめて後で清算することができます。 @@ -1571,76 +1573,76 @@ XRPの「Payment Channel」を作成します。Payment Channelは、2名の当 詳細は、[Payment Channelsのチュートリアル](../docs/tutorials/how-tos/use-specialized-payment-types/use-payment-channels/index.md)をご覧ください。 - ### PermissionDelegation + [PermissionDelegation]: #permissiondelegation -| Amendment | PermissionDelegation | -|:-------------|:---------------------| -| Amendment ID | AE6AB9028EEB7299EBB03C7CBCC3F2A4F5FBE00EA28B8223AA3118A0B436C1C5 | -| ステータス | 投票中 | -| デフォルトの投票(最新の安定版) | いいえ | -| Amendment前の機能は廃止? | いいえ | +| Amendment | PermissionDelegation | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | AE6AB9028EEB7299EBB03C7CBCC3F2A4F5FBE00EA28B8223AA3118A0B436C1C5 | +| ステータス | 投票中 | +| デフォルトの投票(最新の安定版) | いいえ | +| Amendment前の機能は廃止? | いいえ | Allows accounts to delegate some permissions to other accounts. Specification: [XLS-75](https://github.com/XRPLF/XRPL-Standards/tree/master/XLS-0075d-permission-delegation). - ### PermissionedDEX + [PermissionedDEX]: #permissioneddex -| Amendment | PermissionedDEX | -|:-------------|:----------------| -| Amendment ID | 677E401A423E3708363A36BA8B3A7D019D21AC5ABD00387BDBEA6BDE4C91247E | -| ステータス | 投票中 | -| デフォルトの投票(最新の安定版) | いいえ | -| Amendment前の機能は廃止? | いいえ | +| Amendment | PermissionedDEX | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 677E401A423E3708363A36BA8B3A7D019D21AC5ABD00387BDBEA6BDE4C91247E | +| ステータス | 投票中 | +| デフォルトの投票(最新の安定版) | いいえ | +| Amendment前の機能は廃止? | いいえ | Creates Permissioned DEXes, controlled environments for trading within the XRP Ledger's [decentralized exchange (DEX)](/docs/concepts/tokens/decentralized-exchange). Trading in a permissioned DEX works like trading in the open DEX, except that a permissioned domain controls who can place and accept offers. Specification: [XLS-81](https://github.com/XRPLF/XRPL-Standards/pull/281) - ### PermissionedDomains + [PermissionedDomains]: #permissioneddomains -| Amendment | PermissionedDomains | -|:-------------|:--------------------| -| Amendment ID | A730EB18A9D4BB52502C898589558B4CCEB4BE10044500EE5581137A2E80E849 | -| ステータス | 投票中 | -| デフォルトの投票(最新の安定版) | いいえ | -| Amendment前の機能は廃止? | いいえ | +| Amendment | PermissionedDomains | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | A730EB18A9D4BB52502C898589558B4CCEB4BE10044500EE5581137A2E80E849 | +| ステータス | 投票中 | +| デフォルトの投票(最新の安定版) | いいえ | +| Amendment前の機能は廃止? | いいえ | Permissioned domains are controlled environments within the broader ecosystem of the XRP Ledger blockchain. Domains do nothing on their own, but features such as Permissioned DEXes and Lending Protocols can use domains to restrict access, so that traditional financial institutions can offer services on chain while complying with various compliance rules. This amendment creates a new ledger entry type, `PermissionedDomain`, and new transactions, `PermissionedDomainSet` (creates or modifies permissioned domains) and `PermissionedDomainDelete` (deletes permissioned domains). - ### PriceOracle + [PriceOracle]: #priceoracle -| Amendment | PriceOracle | -|:-------------|:------------| -| Amendment ID | 96FD2F293A519AE1DB6F8BED23E4AD9119342DA7CB6BAFD00953D16C54205D8B | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | いいえ | -| Amendment前の機能は廃止? | いいえ | +| Amendment | PriceOracle | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 96FD2F293A519AE1DB6F8BED23E4AD9119342DA7CB6BAFD00953D16C54205D8B | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | いいえ | +| Amendment前の機能は廃止? | いいえ | この修正により、[XLS-47規格](https://github.com/XRPLF/XRPL-Standards/blob/master/XLS-0047-PriceOracles/README.md)で定義されているとおり、XRPLedgerに「価格オラクル」機能が追加されます。ブロックチェーン・オラクルとは、外部世界に関する情報をブロックチェーンに提供するサービスであり、主にブロックチェーン上で、またはブロックチェーンを使用して実行される分散型アプリケーション(dApps)が利用できるシステムです。この価格オラクルは、XRP Ledgerの外に存在する資産ペアの価格情報を保存し、XRP Ledgerに依存するスマートコントラクトがこの情報を利用できるようにすることを目的としています。 このAmendmentにより、新しいレジャーエントリタイプ`PriceOracle`と新しいトランザクション`OracleSet`(オラクルデータの作成または変更)および`OracleDelete`(指定されたオラクルの削除)が作成されます。 - ### RequireFullyCanonicalSig + [RequireFullyCanonicalSig]: #requirefullycanonicalsig -| Amendment | RequireFullyCanonicalSig | -|:-------------|:-------------------------| -| Amendment ID | 00C1FC4A53E60AB02C864641002B3172F38677E29C26C5406685179B37E1EDAC | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | はい | -| Amendment前の機能は廃止? | いいえ | +| Amendment | RequireFullyCanonicalSig | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 00C1FC4A53E60AB02C864641002B3172F38677E29C26C5406685179B37E1EDAC | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | はい | +| Amendment前の機能は廃止? | いいえ | XRP Ledgerプロトコルの署名要件を変更し、いかなる場合にも完全に正規でない署名は無効とします。これにより、[tfFullyCanonicalSigフラグ](../docs/references/protocol/transactions/common-fields.md#グローバルフラグ)を有効にしたトランザクションのみを保護することに代わって、_すべての_ トランザクションにおいて[トランザクションの展性](../docs/concepts/transactions/finality-of-results/transaction-malleability.md)から守られます。 @@ -1650,147 +1652,147 @@ XRP Ledgerプロトコルの署名要件を変更し、いかなる場合にも 詳しくは、[`rippled` issue #3042](https://github.com/XRPLF/rippled/issues/3042)をご覧ください。 - ### SHAMapV2 + [SHAMapV2]: #shamapv2 -| Amendment | SHAMapV2 | -|:-------------|:---------| -| Amendment ID | C6970A8B603D8778783B61C0D445C23D1633CCFAEF0D43E7DBCD1521D34BD7C3 | -| ステータス | 廃止 | -| デフォルトの投票(最新の安定版) | いいえ | -| Amendment前の機能は廃止? | いいえ | +| Amendment | SHAMapV2 | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | C6970A8B603D8778783B61C0D445C23D1633CCFAEF0D43E7DBCD1521D34BD7C3 | +| ステータス | 廃止 | +| デフォルトの投票(最新の安定版) | いいえ | +| Amendment前の機能は廃止? | いいえ | `rippled`がレジャーを表示する際に使用するハッシュツリー構造を変更します。新しい構造は以前のバージョンよりもコンパクトで効率的です。この修正はレジャーハッシュの計算方法が変わりますが、その他にユーザに与える影響はありません。 この修正が適用されると、ネットワークでハッシュツリー構造への変更を計算している間、XRP Ledgerはしばらく使用できなくなります。 - ### SingleAssetVault + [SingleAssetVault]: #singleassetvault -| Amendment | SingleAssetVault | -|:-------------|:-----------------| -| Amendment ID | 81BD2619B6B3C8625AC5D0BC01DE17F06C3F0AB95C7C87C93715B87A4FD240D8 | -| ステータス | 開発中 | -| デフォルトの投票(最新の安定版) | いいえ | -| Amendment前の機能は廃止? | いいえ | +| Amendment | SingleAssetVault | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 81BD2619B6B3C8625AC5D0BC01DE17F06C3F0AB95C7C87C93715B87A4FD240D8 | +| ステータス | 開発中 | +| デフォルトの投票(最新の安定版) | いいえ | +| Amendment前の機能は廃止? | いいえ | Creates a structure for aggregating assets from multiple depositors. This is intended to be used with the proposed on-chain Lending Protocol. Specification: [XLS-65](https://github.com/XRPLF/XRPL-Standards/tree/master/XLS-0065d-single-asset-vault). - ### SortedDirectories + [SortedDirectories]: #sorteddirectories -| Amendment | SortedDirectories | -|:-------------|:------------------| -| Amendment ID | CC5ABAE4F3EC92E94A59B1908C2BE82D2228B6485C00AFF8F22DF930D89C194E | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | はい | -| Amendment前の機能は廃止? | はい | +| Amendment | SortedDirectories | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | CC5ABAE4F3EC92E94A59B1908C2BE82D2228B6485C00AFF8F22DF930D89C194E | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | はい | +| Amendment前の機能は廃止? | はい | [DirectoryNodeレジャーオブジェクト](../docs/references/protocol/ledger-data/ledger-entry-types/directorynode.md)内の項目をソートして、削除されるべき所有者ディレクトリのページが場合によっては削除されないというバグを修正します。 {% admonition type="danger" name="警告" %}このが適用されていない旧バージョンの`rippled`は、新しいルールでソートされたDirectoryNodeによって機能が停止するおそれがあります。この問題を回避するには、`rippled`バージョン0.80.0以降に[アップグレード](../docs/infrastructure/installation/index.md)してください。{% /admonition %} - ### SusPay + [SusPay]: #suspay -| Amendment | SusPay | -|:-------------|:-------| -| Amendment ID | DA1BD556B42D85EA9C84066D028D355B52416734D3283F85E216EA5DA6DB7E13 | -| ステータス | 廃止 | -| デフォルトの投票(最新の安定版) | いいえ | -| Amendment前の機能は廃止? | いいえ | +| Amendment | SusPay | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | DA1BD556B42D85EA9C84066D028D355B52416734D3283F85E216EA5DA6DB7E13 | +| ステータス | 廃止 | +| デフォルトの投票(最新の安定版) | いいえ | +| Amendment前の機能は廃止? | いいえ | この修正は、[Escrow](../docs/references/protocol/ledger-data/ledger-entry-types/escrow.md) Amendmentに置き換えられました。 - ### TicketBatch + [TicketBatch]: #ticketbatch -| Amendment | TicketBatch | -|:-------------|:------------| -| Amendment ID | 955DF3FA5891195A9DAEFA1DDC6BB244B545DDE1BAA84CBB25D5F12A8DA68A0C | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | はい | -| Amendment前の機能は廃止? | いいえ | +| Amendment | TicketBatch | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 955DF3FA5891195A9DAEFA1DDC6BB244B545DDE1BAA84CBB25D5F12A8DA68A0C | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | はい | +| Amendment前の機能は廃止? | いいえ | この修正により、通常のシーケンス番号順ではないトランザクションを送信する方法として、[Tickets](../docs/references/protocol/ledger-data/ledger-entry-types/ticket.md)が追加されます。 標準規格案: [XLS-13d](https://github.com/XRPLF/XRPL-Standards/issues/16). - ### Tickets + [Tickets]: #tickets -| Amendment | Tickets | -|:-------------|:--------| -| Amendment ID | C1B8D934087225F509BEB5A8EC24447854713EE447D277F69545ABFA0E0FD490 | -| ステータス | 廃止 | -| デフォルトの投票(最新の安定版) | いいえ | -| Amendment前の機能は廃止? | いいえ | +| Amendment | Tickets | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | C1B8D934087225F509BEB5A8EC24447854713EE447D277F69545ABFA0E0FD490 | +| ステータス | 廃止 | +| デフォルトの投票(最新の安定版) | いいえ | +| Amendment前の機能は廃止? | いいえ | この修正は、[TicketBatch][] Amendmentに置き換えられました。 - ### TickSize + [TickSize]: #ticksize -| Amendment | TickSize | -|:-------------|:---------| -| Amendment ID | 532651B4FD58DF8922A49BA101AB3E996E5BFBF95A913B3E392504863E63B164 | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | はい | -| Amendment前の機能は廃止? | はい | +| Amendment | TickSize | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 532651B4FD58DF8922A49BA101AB3E996E5BFBF95A913B3E392504863E63B164 | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | はい | +| Amendment前の機能は廃止? | はい | オーダーブック内で[オファー](../docs/concepts/tokens/decentralized-exchange/offers.md#オファーのライフサイクル)をランク付けする方法を変更して、通貨発行者がオファーを為替レートでランク付けする際に考慮する有効桁数を設定できるようにします。この修正により、オファーの交換レートが設定された有効桁数に丸められるため、同じ交換レートを持つオファーが増加します。この修正の目的は、以前のオファーよりもランク付けを高くするには、価格面で意味のある改善をしなければならないようにすることです。主要な発行者がこれを採用すれば、既存のオファーよりわずかなパーセンテージだけ上回るオファーでレジャーを攻撃しようとするスパムが低減します。また、よりバラツキの少ない為替レートでオファーをグループ化できるため、レジャー内のオーダーブックを効率的に保管できます。 アカウントに`TickSize`フィールドを追加します。このフィールドは[AccountSetトランザクションタイプ](../docs/references/protocol/transactions/types/accountset.md)を使用して設定できます。通貨発行者が`TickSize`フィールドを設定すれば、発行者の通貨を取引するオファーの為替レート(資金の入出金率)がXRP Ledgerによって丸められ、丸められた為替レートに合わせてオファーの金額が調整されます。トランザクションにて1つの通貨にのみ`TickSize`が設定されていれば、その有効桁数が適用されます。異なる`TickSize`値が設定された2つの通貨を取引する場合は、有効桁数が最も小さい`TickSize`が適用されます。XRPに`TickSize`は設定されません。 - ### TokenEscrow + [TokenEscrow]: #tokenescrow -| Amendment | TokenEscrow | -|:-------------|:------------| -| Amendment ID | 138B968F25822EFBF54C00F97031221C47B1EAB8321D93C7C2AEAF85F04EC5DF | -| ステータス | 投票中 | -| デフォルトの投票(最新の安定版) | いいえ | -| Amendment前の機能は廃止? | いいえ | +| Amendment | TokenEscrow | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 138B968F25822EFBF54C00F97031221C47B1EAB8321D93C7C2AEAF85F04EC5DF | +| ステータス | 投票中 | +| デフォルトの投票(最新の安定版) | いいえ | +| Amendment前の機能は廃止? | いいえ | Extends the existing Escrow functionality to support escrowing issued tokens or MPTs. Specification: [XLS-85](https://github.com/XRPLF/XRPL-Standards/pull/272/) - ### TrustSetAuth + [TrustSetAuth]: #trustsetauth -| Amendment | TrustSetAuth | -|:-------------|:-------------| -| Amendment ID | 6781F8368C4771B83E8B821D88F580202BCB4228075297B19E4FDC5233F1EFDC | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | はい | -| Amendment前の機能は廃止? | はい | +| Amendment | TrustSetAuth | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 6781F8368C4771B83E8B821D88F580202BCB4228075297B19E4FDC5233F1EFDC | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | はい | +| Amendment前の機能は廃止? | はい | [承認されたトラストライン](../docs/concepts/tokens/fungible-tokens/authorized-trust-lines.md)を使用する場合に、会計関係の事前承認(ゼロバランストラストライン)を許可します。 この修正が適用されれば、[`tfSetfAuth`を有効にした](../docs/references/protocol/transactions/types/trustset.md#trustsetのフラグ)`TrustSet`トランザクションにおいて、`RippleState`ノードの他のすべての値をデフォルト状態にしたままでも、新しい[`RippleState`レジャーオブジェクト](../docs/references/protocol/ledger-data/ledger-entry-types/ripplestate.md)を作成できます。新しい`RippleState`ノードでは、トランザクションの送信者が低いノードと見なされるか高いノードと見なされるかに応じて、[`lsfLowAuth`フラグまたは`lsfHighAuth`フラグ](../docs/references/protocol/ledger-data/ledger-entry-types/ripplestate.md#ripplestateのフラグ)が有効になります。トランザクションの送信者は、[asfRequireAuthフラグを有効](../docs/references/protocol/transactions/types/accountset.md#accountsetのフラグ)にして[AccountSetトランザクション](../docs/references/protocol/transactions/types/accountset.md)を送信することで、事前に[`lsfRequireAuth`](../docs/references/protocol/ledger-data/ledger-entry-types/accountroot.md#accountrootのフラグ)を有効にしておく必要があります。 - ### XChainBridge + [XChainBridge]: #xchainbridge -| Amendment | XChainBridge | -|:-------------|:-------------| -| Amendment ID | C98D98EE9616ACD36E81FDEB8D41D349BF5F1B41DD64A0ABC1FE9AA5EA267E9C | -| ステータス | 投票中 | -| デフォルトの投票(最新の安定版) | いいえ | -| Amendment前の機能は廃止? | いいえ | +| Amendment | XChainBridge | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | C98D98EE9616ACD36E81FDEB8D41D349BF5F1B41DD64A0ABC1FE9AA5EA267E9C | +| ステータス | 投票中 | +| デフォルトの投票(最新の安定版) | いいえ | +| Amendment前の機能は廃止? | いいえ | クロスチェーンブリッジを追加し、メインネットとサイドチェーンなどのネットワーク間でのデジタル資産の移動を可能にします。 標準規格草案: [XLS-38 Cross-Chain Bridge](https://github.com/XRPLF/XRPL-Standards/blob/master/XLS-0038-cross-chain-bridge/README.md)。 @@ -1814,20 +1816,18 @@ Specification: [XLS-85](https://github.com/XRPLF/XRPL-Standards/pull/272/) いくつかの新しいトランザクション結果コードを追加します。 - - メインネットとサイドチェーンなど異なるネットワーク間でアセットを同期させるための「クロスチェーンブリッジ」を追加します。標準規格草案: [XLS-0038 Cross-Chain Bridge](https://github.com/XRPLF/XRPL-Standards/blob/master/XLS-0038-cross-chain-bridge/README.md)。 - ### XRPFees + [XRPFees]: #xrpfees -| Amendment | XRPFees | -|:-------------|:--------| -| Amendment ID | 93E516234E35E08CA689FA33A6D38E103881F8DCB53023F728C307AA89D515A7 | -| ステータス | 有効 | -| デフォルトの投票(最新の安定版) | いいえ | -| Amendment前の機能は廃止? | いいえ | +| Amendment | XRPFees | +| :----------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 93E516234E35E08CA689FA33A6D38E103881F8DCB53023F728C307AA89D515A7 | +| ステータス | 有効 | +| デフォルトの投票(最新の安定版) | いいえ | +| Amendment前の機能は廃止? | いいえ | トランザクションコストの計算を簡素化し、「手数料単位」で間接的に計算し、結果をXRPに変換するのではなく、直接XRPを使用するようにしました。プロトコルや台帳データにおける「手数料単位」のインスタンスを全て変更し、XRPの代わりにdropsを使用するように修正します。修正には以下を含みます。 @@ -1837,6 +1837,4 @@ Specification: [XLS-85](https://github.com/XRPLF/XRPL-Standards/pull/272/) このAmendmentがなければ、トランザクションの形式と台帳の項目は同一です。 - - {% raw-partial file="/@l10n/ja/docs/_snippets/common-links.md" /%} diff --git a/@l10n/ja/translations.yaml b/@l10n/ja/translations.yaml index 37be36ab77..6281e3cc88 100644 --- a/@l10n/ja/translations.yaml +++ b/@l10n/ja/translations.yaml @@ -1,6 +1,6 @@ -page.previousButton: "前のページ" -page.nextButton: "次のページ" -page.lastUpdated.timeago: "最終更新: " +page.previousButton: '前のページ' +page.nextButton: '次のページ' +page.lastUpdated.timeago: '最終更新: ' markdown.editPage.text: 編集 toc.header: 目次 search.label: ドキュメントの検索 @@ -22,19 +22,19 @@ footer.resources: リソース footer.community: コミュニティ time.past.second: 1秒前 -time.past.seconds: "{{value}}秒前" +time.past.seconds: '{{value}}秒前' time.past.minute: 1分前 -time.past.minutes: "{{value}}分前" +time.past.minutes: '{{value}}分前' time.past.hour: 1時間前 -time.past.hours: "{{value}}時間前" +time.past.hours: '{{value}}時間前' time.past.day: 1日前 -time.past.days: "{{value}}日前" +time.past.days: '{{value}}日前' time.past.week: 1週間前 -time.past.weeks: "{{value}}週間前" +time.past.weeks: '{{value}}週間前' time.past.month: 1ヶ月前 -time.past.months: "{{value}}ヶ月前" +time.past.months: '{{value}}ヶ月前' time.past.year: 1年前 -time.past.years: "{{value}}年前" +time.past.years: '{{value}}年前' sidebar.docs: ドキュメント sidebar.docs.introduction.what-is-xrp: XRPとは? @@ -139,11 +139,11 @@ footer.community.report-a-scam: 詐欺の報告 component.tryit: 試してみる component.queryexampletx: トランザクションの例を確認 -component.amendment-status.requires.1: " " +component.amendment-status.requires.1: ' ' component.amendment-status.requires.2: が必要です。 -component.amendment-status.added.1: " " +component.amendment-status.added.1: ' ' component.amendment-status.added.2: により追加されました。 -component.amendment-status.updated.1: " " +component.amendment-status.updated.1: ' ' component.amendment-status.updated.2: により更新されました。 # Amendment tracker translations @@ -209,8 +209,8 @@ Automated Market Makers: 自動マーケットメイカー Smart contracts to provide liquidity and earn passive income from facilitating currency exchange, complementary with the order-book DEX already built into the XRPL.: XRPLに組み込み済みのオーダーブックDEXと相互に補完する、流動性を提供し、通貨交換を促進することで受動的な収入を得るためのスマートコントラクト。 Enabled: 利用可能 Non-Fungible Tokens: 非代替性トークン -"Join the Community ": XRPL.orgの -" at XRPL.org": コミュニティに参加 +'Join the Community ': XRPL.orgの +' at XRPL.org': コミュニティに参加 'Connect at XRPL.org, a community by and for the developers ': XRPL.orgは、XRPLを利用する開発者と ' and entrepreneurs who rely on the XRPL.': 起業家のためのコミュニティです。 Get Involved: 参加する @@ -307,18 +307,18 @@ about.xrp.xrp-in-trading.ppart2: 裁定機会の獲得 about.xrp.xrp-in-trading.ppart3: 、マージンコールへの対応、一般的な取引在庫の管理をリアルタイムで行うことができます。 Because of the properties inherent to XRP and the ecosystem around it, traders worldwide are able to shift collateral, bridge currencies and switch from one crypto into another nearly instantly, across any exchange on the planet.: XRPの特性とその周辺のエコシステムにより、世界中のトレーダーは、担保を移動し、通貨をブリッジし、暗号通貨をほぼ瞬時に別の暗号通貨に交換することが、地球上のあらゆる取引所で可能となっています。 What Is the Relationship Between Ripple and XRP?: RippleとXRPの関係は? -" is a technology company that makes it easier to build a high-performance, global payments business. XRP is a digital asset independent of this.": は、高パフォーマンスのグローバル決済業務を構築するための技術会社です。XRPはこの技術会社とは独立したデジタル資産です。 +' is a technology company that makes it easier to build a high-performance, global payments business. XRP is a digital asset independent of this.': は、高パフォーマンスのグローバル決済業務を構築するための技術会社です。XRPはこの技術会社とは独立したデジタル資産です。 There is a finite amount of XRP. All XRP is already in existence today—no more than the original 100 billion can be created. The XRPL founders gifted 80 billion XRP, the platform’s native currency, to Ripple. To provide predictability to the XRP supply, Ripple has locked 55 billion XRP (55% of the total possible supply) into a series of escrows using the XRP Ledger itself. The XRPL's transaction processing rules, enforced by the consensus protocol, control the release of the XRP.: プラットフォームのネイティブ通貨であるXRPの総量はプロトコルにより一定量に設定されています。その上限は1000億枚であり、そのすべてが発行済みです。XRPLの発明者たちは、そのうち800億XRPをRipple社に寄付しました。XRPの供給量に予測可能性を持たせるため、Ripple社は550億XRP(総供給量の55%)をXRP Ledger自体を使用した一連のエスクローにロックしています。コンセンサスプロトコルによって強制されるXRPLのトランザクション処理ルールが、XRPの放出を管理しています。 -about.xrp.ripple-escrow.ppart1: " " +about.xrp.ripple-escrow.ppart1: ' ' about.xrp.ripple-escrow.ppart2: 2024年10月 about.xrp.ripple-escrow.ppart3: 時点で 38B: 380億 XRP remains in escrow: がエスクローに存在 What Wallets Support XRP?: XRPをサポートするウォレットは? -"Digital wallets are pieces of software that allow people to send, receive, and store cryptocurrencies, including XRP. There are two types of digital wallets: hardware and software.": デジタルウォレットは、XRPを含む暗号通貨を送信、受け取り、および保管できるソフトウェアのピースです。デジタルウォレットにはハードウェア型とソフトウェア型の2種類があります。 +'Digital wallets are pieces of software that allow people to send, receive, and store cryptocurrencies, including XRP. There are two types of digital wallets: hardware and software.': デジタルウォレットは、XRPを含む暗号通貨を送信、受け取り、および保管できるソフトウェアのピースです。デジタルウォレットにはハードウェア型とソフトウェア型の2種類があります。 Software Wallets: ソフトウェアウォレット Hardware Wallets: ハードウェアウォレット -"Disclaimer: This information is drawn from other sources on the internet. XRPL.org does not endorse or recommend any exchanges or make any representations with respect to exchanges or the purchase or sale of digital assets more generally. It’s advisable to conduct your own due diligence before relying on any third party or third-party technology, and providers may vary significantly in their compliance, data security, and privacy practices.": 免責事項:この情報はインターネット上の他の情報源から引用されています。XRPL.orgは、いかなる取引所も推奨または推薦せず、また、取引所またはデジタル資産の売買一般に関して表明を行なうものではありません。第三者の技術や第三者に依存する前に、ご自身でデューデリジェンスを実施されることをお勧めします。また、プロバイダーによってコンプライアンス、データセキュリティ、プライバシー慣行は大きく異なる場合があります。 +'Disclaimer: This information is drawn from other sources on the internet. XRPL.org does not endorse or recommend any exchanges or make any representations with respect to exchanges or the purchase or sale of digital assets more generally. It’s advisable to conduct your own due diligence before relying on any third party or third-party technology, and providers may vary significantly in their compliance, data security, and privacy practices.': 免責事項:この情報はインターネット上の他の情報源から引用されています。XRPL.orgは、いかなる取引所も推奨または推薦せず、また、取引所またはデジタル資産の売買一般に関して表明を行なうものではありません。第三者の技術や第三者に依存する前に、ご自身でデューデリジェンスを実施されることをお勧めします。また、プロバイダーによってコンプライアンス、データセキュリティ、プライバシー慣行は大きく異なる場合があります。 What Exchanges Support XRP?: XRPをサポートする取引所は? Exchanges are where people trade currencies. XRP is traded on more than 100 markets and exchanges worldwide.: 取引所は人々が通貨を取引する場所です。XRPは世界中の100以上の市場と取引所で取引されています。 There are different types of exchanges that vary depending on the type of market (spot, futures, options, swaps), and the type of security model (custodial, non-custodial).: 取引所の種類は、市場の種類(現物、先物、オプション、スワップ)やセキュリティモデルの種類(カストディアル、非カストディアル)によって異なります。 @@ -411,7 +411,7 @@ Building for the Future: 未来を見据えた開発 Consensus protocol is efficient and sustainable: 効率的で持続可能なコンセンサスプロトコル For more than 272 million migrants worldwide, sending and receiving money across borders is expensive, unreliable and complex.: 世界で2億7,200万人を超える移民にとって、国境を越えた送金は高額で不確実かつ複雑です。 about.impact.feature.ppart1: オープンで分散型のブロックチェーンと暗号資産は、リテールや機関投資家からCBDC、NFT、クロスボーダー決済などの -about.impact.feature.ppart2: 商業ユースケース +about.impact.feature.ppart2: 商業ユースケース about.impact.feature.ppart3: まで、金融サービス業界全体で導入が進んでいます。 A Sustainable Future: 持続可能な未来 What makes the XRPL sustainable?: XRPLが持続可能な理由は? @@ -421,18 +421,18 @@ Sustainable Projects: 持続可能なプロジェクト Learn more about companies and developers who are using the XRP Ledger to solve interesting problems efficiently and sustainably.: XRP Ledgerを利用して興味深い問題を効率的かつ持続的に解決している企業や開発者について、詳しくご紹介します。 See More: 利用例を見る How can businesses and developers connect and contribute?: 開発者はどのように繋がり、貢献できるのでしょうか? -"If you want to advance business with sustainable solutions to real-world problems, you’re invited to join the global, growing XRPL community. Here are some ways to get involved:": 現実世界の問題に対する持続可能なソリューションでビジネスを発展させたいと考える方は、グローバルに成長するXRPLコミュニティに参加しましょう。 +'If you want to advance business with sustainable solutions to real-world problems, you’re invited to join the global, growing XRPL community. Here are some ways to get involved:': 現実世界の問題に対する持続可能なソリューションでビジネスを発展させたいと考える方は、グローバルに成長するXRPLコミュニティに参加しましょう。 Join the Community: コミュニティに参加 Blog: ブログ -about.impact.blog.ppart1: " " +about.impact.blog.ppart1: ' ' about.impact.blog.ppart2: XRPL開発者ブログ about.impact.blog.ppart3: をチェックして、XRPLコミュニティのイノベーションと開発について最新情報を入手しましょう。 Events: イベント -about.impact.events.ppart1: " " +about.impact.events.ppart1: ' ' about.impact.events.ppart2: ミートアップ、ハッカソン、カンファレンス about.impact.events.ppart3: に参加して、コミュニティの他のメンバーと交流しましょう。 Code: コード -about.impact.code.ppart1: " " +about.impact.code.ppart1: ' ' about.impact.code.ppart2: Githubリポジトリ about.impact.code.ppart3: からブロックチェーンプロジェクトを見つけ、どのように貢献できるか見てみましょう。 Connect: 繋がる @@ -493,7 +493,7 @@ Run a Validator: バリデータを運用 Reserves: 準備金 Transaction Types: トランザクションの種類 Get Free Test XRP: テスト用XRPを入手 -Generate Testnet Credentials: テストネットのアカウントを作成 +Generate Testnet Credentials: テストネットのアカウントを作成 Connect to the XRP Ledger Testnet network to develop and test your apps built on the XRP Ledger, without risking real money or impacting production XRP Ledger users.: XRP Ledger Testnetに接続することで、現実の資産やMainnetユーザに影響を与えることなくXRP Ledger上に構築するアプリを開発・テストすることができます。 # docs/use-cases/tokenization/index.page.tsx @@ -513,7 +513,7 @@ Freeze & Clawbacks: フリーズとクローバック Freeze: フリーズ If you see signs of suspicious activity, you can suspend trading of your token while investigating the issue.: 不審な活動の兆候が見られた場合は、問題を調査する間、トークンの取引を停止することができます。 Clawback: クローバック -"Recover tokens distributed to accounts in error: for example, reclaim funds sent to an account sanctioned for illegal activity.": 誤ってアカウントに送信されたトークンを回収することができます。たとえば、違法行為に対して制裁を受けたアカウントに送金された資金を回収します。 +'Recover tokens distributed to accounts in error: for example, reclaim funds sent to an account sanctioned for illegal activity.': 誤ってアカウントに送信されたトークンを回収することができます。たとえば、違法行為に対して制裁を受けたアカウントに送金された資金を回収します。 Non-transferable Tokens: 譲渡不可トークン Transferable flag: 譲渡可能フラグ Native support for nontransferable items such as identity tokens, airline credits, and consumer rewards, honored by all on-chain participants.: 譲渡不可のアイテム(IDトークン、航空会社のクレジット、消費者向けリワードなど)に対するネイティブサポートがあり、すべてのオンチェーン参加者によって認識されます。 @@ -565,7 +565,7 @@ Streamline cross-currency transactions and trading with XRP Ledger's auto-bridgi Learn About Auto-bridging: オートブリッジについて Explore Pathfinding: パスファインディングについて Developer Resources: 開発者リソース -use-cases.rwa.dev-resources.p1: " " +use-cases.rwa.dev-resources.p1: ' ' use-cases.rwa.dev-resources.p2: 既存のインフラストラクチャ use-cases.rwa.dev-resources.p3: に簡単に統合し、開発の旅をサポートするリソースにアクセスできます。プロジェクトの資金調達にはXRPL Grantsを検討してみてください。または、Dev Advocateにご相談ください。 Apply for XRPL Grants: XRPL Grantsへ応募 @@ -579,7 +579,7 @@ Sign up for the Newsletter: ニュースレターに登録 XRPL Community: XRPLコミュニティ community.index.h1part1: 開発者とイノベーターによる community.index.h1part2: グローバルな -community.index.h1part3: " " +community.index.h1part3: ' ' community.index.h1part4: ブロックチェーンコミュニティ Join the Conversation: 参加する Hot Topics Happening Now: 今話題のトピック @@ -634,7 +634,7 @@ Find the XRPL Community Around the World: 世界中のXRPLコミュニティを # TODO: translate event details Register Now: いますぐ登録 Check out meetups, hackathons, and other events hosted by the XRPL Community: XRPLコミュニティが主催するミートアップ、ハッカソン、その他のイベントをチェックしましょう -"Filter By:": "絞り込み:" +'Filter By:': '絞り込み:' Conference: カンファレンス Meetups: ミートアップ Hackathons: ハッカソン @@ -695,7 +695,7 @@ Participate in personalized learning and training sessions for Ambassadors on th Join a global cohort of Student Ambassadors: 学生アンバサダーのグローバルなコミュニティに参加する Global Community: グローバルコミュニティ Stay connected to the XRPL Community: XRPLコミュニティとの繋がりを持つ -"To stay up-to-date on the latest activity, meetups, and events of the XRPL Community be sure to follow these channels:": XRPLコミュニティの最新の活動、ミートアップ、イベントに関する最新情報を得るには、次のチャンネルをフォローしましょう。 +'To stay up-to-date on the latest activity, meetups, and events of the XRPL Community be sure to follow these channels:': XRPLコミュニティの最新の活動、ミートアップ、イベントに関する最新情報を得るには、次のチャンネルをフォローしましょう。 MeetUp: ミートアップ Attend an XRPL Meetup in your local area: 近隣のXRPLミートアップに参加しましょう Dev.to Blog: Dev.to ブログ @@ -707,7 +707,7 @@ XRPL Developer Funding Programs: XRPL開発者向け資金提供プログラム Project Resources: プロジェクト資金 Explore funding opportunities for developers and teams: 開発者やチームのための資金調達の方法を見つけましょう Funding Overview: 資金調達の概要 -"If you’re a software developer or team looking to build your next project or venture on the XRP Ledger (XRPL), there are a number of opportunities to fund your next innovation.": "XRP Ledger(XRPL)上に次のプロジェクトやベンチャーを構築しようとしているソフトウェア開発者やチーム向けの資金を提供されるチャンスは数多く存在します。" +'If you’re a software developer or team looking to build your next project or venture on the XRP Ledger (XRPL), there are a number of opportunities to fund your next innovation.': 'XRP Ledger(XRPL)上に次のプロジェクトやベンチャーを構築しようとしているソフトウェア開発者やチーム向けの資金を提供されるチャンスは数多く存在します。' XRPL Hackathons: XRPLハッカソン Join an Event: イベントに参加 Hackathons are open to all developers to explore and invent a project on the XRP Ledger. Visit the events page for updates on upcoming hackathons.: XRP Ledgerのハッカソンはプロジェクトを調査・考案するために、すべての開発者に開放されています。今後のハッカソンに関する最新情報は、イベントページでご確認ください。 @@ -723,7 +723,7 @@ Prize money and awards: 賞金および賞品 XRPL Grants: XRPL Grants Fund Your Project: プロジェクトの資金調達 Developer grants for projects that contribute to the growing XRP Ledger community.: 成長するXRP Ledgerコミュニティに貢献するプロジェクトに開発者向けの助成金を提供します。 -"Past awardees include:": "過去の受賞者:" +'Past awardees include:': '過去の受賞者:' Visit XRPL Grants: XRPL Grantsを見る Software developers, teams, and start-ups building directly on the XRP Ledger: XRP Ledger上で直接開発を行うソフトウェア開発者やチーム、スタートアップ企業 Coding experience: コーディング経験 @@ -817,7 +817,7 @@ Connected: 接続済み Not Connected: 未接続 Failed to Connect: 接続に失敗 Responses: レスポンス -"Keep last:": 表示数 +'Keep last:': 表示数 Pause Subscriptions: サブスクリプション停止 Unpause Subscriptions: サブスクリプション停止を解除 Delete All Responses: 全レスポンスを削除 @@ -853,7 +853,7 @@ Wallet Address to check: チェックするウォレットアドレス # resources/dev-tools/domain-verifier.page.tsx This tool allows you to verify that domain verification is properly configured.: このツールを使用すると、ドメイン検証が正しく設定されているかどうかを確認できます。 Enter the manifest found in your validator-keys.json file. Do not confuse this with your validator's secret key.: validator-keys.jsonファイルにあるマニフェストを入力してください。これはバリデータの秘密鍵とは異なるものです。 -"To do this with the validator-keys-tool use the following command:": これをvalidator-keys-toolで行うには、次のコマンドを使用します。 +'To do this with the validator-keys-tool use the following command:': これをvalidator-keys-toolで行うには、次のコマンドを使用します。 Verify: 検証 Your Manifest Here: マニフェスト情報を入力してください Parsing TOML data...: TOMLデータを解析中... @@ -864,7 +864,7 @@ Domain Verification Succeeded: ドメイン検証に成功しました Domain Verification Failed: ドメイン検証に失敗しました The validator key for this manifest was not found in the TOML file: このマニフェストのバリデータキーがTOMLファイルに見つかりませんでした No Validators Found: バリデータが見つかりません -"Error decoding manifest:": マニフェストのデコードエラー +'Error decoding manifest:': マニフェストのデコードエラー Domain not found in manifest: マニフェストにドメインが見つかりません Checking: 確認中 resources.dev-tools.domain-verifier.checking.part1: ' ' @@ -880,8 +880,8 @@ resources.dev-tool.faucet.content.part4: これらの資金は resources.dev-tool.faucet.content.part5: テストのみ resources.dev-tool.faucet.content.part6: を目的としています。テストネットワークの履歴と残高は必要に応じてリセットされます。Devnetは警告なしにリセットされることがあります。 resources.dev-tool.faucet.content.part7: これらのネットワーク上のすべての残高とXRPは、メインネットとは別のものです。安全のため、テストネットやDevnetの認証情報をメインネットで使用しないでください。 -resources.dev-tool.faucet.content.part8: "以下のツールは、認証情報を生成して即座にチャージします。既存のアドレスにチャージしたい場合は、こちらで行えます:" -"Choose Network:": "ネットワークを選択:" +resources.dev-tool.faucet.content.part8: '以下のツールは、認証情報を生成して即座にチャージします。既存のアドレスにチャージしたい場合は、こちらで行えます:' +'Choose Network:': 'ネットワークを選択:' Mainnet-like network for testing applications.: アプリケーションのテスト用のメインネットに似たネットワーク。 Preview of upcoming amendments.: 今後のAmendmentのプレビューネットワーク。 Hooks (L1 smart contracts) enabled Xahau testnet.: Hooks(L1スマートコントラクト)が有効化されたXahau Networkのテストネット。 @@ -928,9 +928,9 @@ Create Payment Channel: Payment Channelを作成 Send Issued Currency: トークンを送信 Trust for: トラストラインの設定 # resources/dev-tools/components/StatusSidebar.tsx -"Sending Address:": 送信元アドレス +'Sending Address:': 送信元アドレス (None): (なし) -"Testnet XRP Available:": 利用可能なTestnet XRP +'Testnet XRP Available:': 利用可能なTestnet XRP Transaction History: トランザクション履歴 # blob/index.page.tsx @@ -939,8 +939,8 @@ blog.banner.date.part1: YYYY blog.banner.date.part2: / blog.banner.date.part3: MM/DD blog.card.date: YYYY/MM/DD -"Filter by Category:": カテゴリで絞り込む -"Filter by:": 絞り込む +'Filter by Category:': カテゴリで絞り込む +'Filter by:': 絞り込む Category: カテゴリ General: 一般 Release Notes: リリースノート @@ -963,7 +963,7 @@ Find the community on the platforms below: 以下のプラットフォームで Apply for funding to build your XRPL project: 将来のXRPLプロジェクトのための資金調達に応募する Awarded in a single grant: 1回のGrantでの助成金 Distributed to grant recipients: 助成対象者への配布 -Open-source projects funded : オープンソースプロジェクトへの資金提供 +Open-source projects funded: オープンソースプロジェクトへの資金提供 Learn More: もっと知る Showcase your XRPL project, application or product: XRPLプロジェクト、アプリケーション、製品の紹介 Read the Blog: ブログを読む diff --git a/@theme/components/Amendments.tsx b/@theme/components/Amendments.tsx index 53b5f4ae44..6947138c35 100644 --- a/@theme/components/Amendments.tsx +++ b/@theme/components/Amendments.tsx @@ -53,10 +53,10 @@ function writeAmendmentsCache(amendments: Amendment[]) { // Sort amendments table by status, then chronologically, then alphabetically function sortAmendments(list: Amendment[]): Amendment[] { const getStatusPriority = (amendment: Amendment): number => { - if (amendment.consensus) return 0 // Open for Voting - if (amendment.eta) return 1 // Expected - if (amendment.tx_hash) return 2 // Enabled - return 3 // Fallback + if (amendment.consensus) return 0 // Open for Voting + if (amendment.eta) return 1 // Expected + if (amendment.tx_hash) return 2 // Enabled + return 3 // Fallback } const getChronoKey = (amendment: Amendment): number => { @@ -102,7 +102,7 @@ export function AmendmentsTable() { } // 2. Fetch new data if cache is stale const response = await fetch(amendmentsEndpoint) - + if (!response.ok) { throw new Error(`HTTP error! status: ${response.status}`) } @@ -126,9 +126,9 @@ export function AmendmentsTable() { return (
- {translate("amendment.loading", "Loading amendments...")} + {translate('amendment.loading', 'Loading amendments...')}
-
{translate("amendment.loading", "Loading amendments...")}
+
{translate('amendment.loading', 'Loading amendments...')}
) } @@ -136,7 +136,7 @@ export function AmendmentsTable() { if (error) { return (
- {translate("amendment.error", "Error loading amendments:")}: {error} + {translate('amendment.error', 'Error loading amendments:')}: {error}
) } @@ -147,9 +147,15 @@ export function AmendmentsTable() {
- - - + + + @@ -177,20 +183,20 @@ function AmendmentBadge(props: { amendment: Amendment }) { const { useTranslate } = useThemeHooks() const { translate } = useTranslate() - const enabledLabel = translate("amendment.status.enabled", "Enabled") - const votingLabel = translate("amendment.status.openForVoting", "Open for Voting") - const etaLabel = translate("amendment.status.eta", "Expected") + const enabledLabel = translate('amendment.status.enabled', 'Enabled') + const votingLabel = translate('amendment.status.openForVoting', 'Open for Voting') + const etaLabel = translate('amendment.status.eta', 'Expected') React.useEffect(() => { const amendment = props.amendment - + // Check if amendment is enabled (has tx_hash) if (amendment.tx_hash) { const enabledDate = new Date(amendment.date).toISOString().split('T')[0] setStatus(`${enabledLabel}: ${enabledDate}`) setColor('green') setHref(`https://livenet.xrpl.org/transactions/${amendment.tx_hash}`) - } + } // Check if expected activation is provided (has eta field) else if (amendment.eta) { let etaDate = new Date(amendment.eta).toISOString().split('T')[0] @@ -210,7 +216,7 @@ function AmendmentBadge(props: { amendment: Amendment }) { const parts = status.split(':') const label = shieldsIoEscape(parts[0]) const message = shieldsIoEscape(parts.slice(1).join(':')) - + const badgeUrl = `https://img.shields.io/badge/${label}-${message}-${color}` if (href) { @@ -224,18 +230,19 @@ function AmendmentBadge(props: { amendment: Amendment }) { return {status} } -export function AmendmentDisclaimer(props: { - name: string, - compact: boolean, - mode: string -}) { +export function AmendmentDisclaimer(props: { name: string; compact: boolean; mode: string }) { const [amendmentStatus, setStatus] = React.useState(null) const [loading, setLoading] = React.useState(true) const [error, setError] = React.useState(null) const { useTranslate } = useThemeHooks() const { translate } = useTranslate() - const link = () => {props.name}{ props.compact ? "" : " amendment"} + const link = () => ( + + {props.name} + {props.compact ? '' : ' amendment'} + + ) React.useEffect(() => { const loadAmendment = async () => { @@ -245,13 +252,13 @@ export function AmendmentDisclaimer(props: { const cached = readAmendmentsCache() if (cached) { - const found = cached.find(a => a.name === props.name) - if (found) { - setStatus(found) - return // amendment successfully found in cache - } + const found = cached.find((a) => a.name === props.name) + if (found) { + setStatus(found) + return // amendment successfully found in cache + } } - // 2. New API request for stale/missing cache. + // 2. New API request for stale/missing cache. // Also catches edge case of new amendment appearing // on mainnet within cache TTL window. const response = await fetch(amendmentsEndpoint) @@ -263,7 +270,7 @@ export function AmendmentDisclaimer(props: { const data: AmendmentsResponse = await response.json() writeAmendmentsCache(data.amendments) - const found = data.amendments.find(a => a.name === props.name) + const found = data.amendments.find((a) => a.name === props.name) if (!found) { throw new Error(`Couldn't find ${props.name} amendment in status table.`) } @@ -274,155 +281,150 @@ export function AmendmentDisclaimer(props: { } finally { setLoading(false) } - }; + } loadAmendment() }, [props.name]) if (loading) { return ( -

- {translate("component.amendment-status.requires.1", "Requires the ")}{link()}{translate("component.amendment-status.requires.2", ".")} - {" "} - - {translate("amendment.loading_status", "Loading...")} - -

+

+ + {translate('component.amendment-status.requires.1', 'Requires the ')} + {link()} + {translate('component.amendment-status.requires.2', '.')}{' '} + + {translate('amendment.loading_status', 'Loading...')} + + +

) } - + if (error) { return ( -

- {translate("component.amendment-status.requires.1", "Requires the ")}{link()}{translate("component.amendment-status.requires.2", ".")} - {" "} - - {translate("amendment.error_status", "Error loading amendment status")}: {error} - -

+

+ + {translate('component.amendment-status.requires.1', 'Requires the ')} + {link()} + {translate('component.amendment-status.requires.2', '.')}{' '} + + {translate('amendment.error_status', 'Error loading amendment status')}: {error} + + +

) } if (props.compact) { return ( <> - {link()} - {" "} - + {link()} ) } - if (props.mode === "updated") { + if (props.mode === 'updated') { return ( -

( - { - amendmentStatus.date ? ( +

+ + ( + {amendmentStatus.date ? ( <> - {translate("component.amendment-status.updated.1", "Updated by the ")}{link()} - {translate("component.amendment-status.updated.2", ".")} - {" "} - + {translate('component.amendment-status.updated.1', 'Updated by the ')} + {link()} + {translate('component.amendment-status.updated.2', '.')} ) : ( <> - {translate("component.amendment-status.updates.1", "The ")}{link()} - {translate("component.amendment-status.updates.2", " updates this.")} - {" "} - + {translate('component.amendment-status.updates.1', 'The ')} + {link()} + {translate('component.amendment-status.updates.2', ' updates this.')} + )} ) - } - )

+ +

) } - + return ( -

( - { - amendmentStatus.date ? ( +

+ + ( + {amendmentStatus.date ? ( <> - {translate("component.amendment-status.added.1", "Added by the ")}{link()} - {translate("component.amendment-status.added.2", ".")} - {" "} - + {translate('component.amendment-status.added.1', 'Added by the ')} + {link()} + {translate('component.amendment-status.added.2', '.')} ) : ( <> - {translate("component.amendment-status.requires.1", "Requires the ")}{link()} - {translate("component.amendment-status.requires.2", ".")} - {" "} - + {translate('component.amendment-status.requires.1', 'Requires the ')} + {link()} + {translate('component.amendment-status.requires.2', '.')} + )} ) - } - )

+ +

) } function shieldsIoEscape(s: string) { - return s.trim() - .replace(/-/g, '--') - .replace(/_/g, '__') - .replace(/%/g, '%25') + return s.trim().replace(/-/g, '--').replace(/_/g, '__').replace(/%/g, '%25') } -export function Badge(props: { - children: React.ReactNode - color: string - href: string -}) { - const DEFAULT_COLORS = { - "open for voting": "80d0e0", - "投票中": "80d0e0", // ja: open for voting - "expected": "blue", - "予定": "blue", // ja: expected - "enabled": "green", - "有効": "green", // ja: enabled - "obsolete": "red", - "removed in": "red", - "削除": "red", // ja: removed in - "廃止": "red", // ja: obsolete - "撤回": "red", // ja: withdrawn/removed/vetoed - "new in": "blue", - "新規": "blue", // ja: new in - "updated in": "blue", - "更新": "blue", // ja: updated in - "in development": "lightgrey", - "開発中": "lightgrey", // ja: in development +export function Badge(props: { children: React.ReactNode; color: string; href: string }) { + const DEFAULT_COLORS = { + 'open for voting': '80d0e0', + 投票中: '80d0e0', // ja: open for voting + expected: 'blue', + 予定: 'blue', // ja: expected + enabled: 'green', + 有効: 'green', // ja: enabled + obsolete: 'red', + 'removed in': 'red', + 削除: 'red', // ja: removed in + 廃止: 'red', // ja: obsolete + 撤回: 'red', // ja: withdrawn/removed/vetoed + 'new in': 'blue', + 新規: 'blue', // ja: new in + 'updated in': 'blue', + 更新: 'blue', // ja: updated in + 'in development': 'lightgrey', + 開発中: 'lightgrey', // ja: in development + } + + let childstrings = '' + + React.Children.forEach(props.children, (child, index) => { + if (typeof child == 'string') { + childstrings += child } + }) - let childstrings = "" + const parts = childstrings.split(':') + const left: string = shieldsIoEscape(parts[0]) + const right: string = shieldsIoEscape(parts.slice(1).join(':')) - React.Children.forEach(props.children, (child, index) => { - if (typeof child == "string") { - childstrings += child - } - }) - - const parts = childstrings.split(":") - const left : string = shieldsIoEscape(parts[0]) - const right : string = shieldsIoEscape(parts.slice(1).join(":")) - - let color = props.color - if (!color) { - if (DEFAULT_COLORS.hasOwnProperty(left.toLowerCase())) { - color = DEFAULT_COLORS[left.toLowerCase()] - } else { - color = "lightgrey" - } - } - - let badge_url = `https://img.shields.io/badge/${left}-${right}-${color}.svg` - - if (props.href) { - return ( - - {childstrings} - - ) + let color = props.color + if (!color) { + if (DEFAULT_COLORS.hasOwnProperty(left.toLowerCase())) { + color = DEFAULT_COLORS[left.toLowerCase()] } else { - return ( - {childstrings} - ) + color = 'lightgrey' } + } + + let badge_url = `https://img.shields.io/badge/${left}-${right}-${color}.svg` + + if (props.href) { + return ( + + {childstrings} + + ) + } else { + return {childstrings} + } } diff --git a/@theme/components/LanguagePicker/LanguagePicker.tsx b/@theme/components/LanguagePicker/LanguagePicker.tsx index 307c5a8f8c..1fe1bbb946 100644 --- a/@theme/components/LanguagePicker/LanguagePicker.tsx +++ b/@theme/components/LanguagePicker/LanguagePicker.tsx @@ -1,59 +1,48 @@ -import React from 'react'; -import styled from 'styled-components'; +import React from 'react' +import styled from 'styled-components' -import { DropdownMenu } from '@redocly/theme/components/Dropdown/DropdownMenu'; -import { breakpoints } from '@redocly/theme/core/utils'; -import { useLanguagePicker, useThemeHooks } from '@redocly/theme/core/hooks'; -import { GlobalOutlinedIcon } from '@redocly/theme/icons/GlobalOutlinedIcon/GlobalOutlinedIcon'; -import { Button } from '@redocly/theme/components/Button/Button'; -import { Dropdown } from '@redocly/theme/components/Dropdown/Dropdown'; -import { CheckmarkIcon } from '@redocly/theme/icons/CheckmarkIcon/CheckmarkIcon'; +import { DropdownMenu } from '@redocly/theme/components/Dropdown/DropdownMenu' +import { breakpoints } from '@redocly/theme/core/utils' +import { useLanguagePicker, useThemeHooks } from '@redocly/theme/core/hooks' +import { GlobalOutlinedIcon } from '@redocly/theme/icons/GlobalOutlinedIcon/GlobalOutlinedIcon' +import { Button } from '@redocly/theme/components/Button/Button' +import { Dropdown } from '@redocly/theme/components/Dropdown/Dropdown' +import { CheckmarkIcon } from '@redocly/theme/icons/CheckmarkIcon/CheckmarkIcon' export type LanguagePickerProps = { - onChangeLanguage: (newLang: string) => void; - onlyIcon?: boolean; - placement?: 'top' | 'bottom'; - alignment?: 'start' | 'end'; -}; + onChangeLanguage: (newLang: string) => void + onlyIcon?: boolean + placement?: 'top' | 'bottom' + alignment?: 'start' | 'end' +} export function LanguagePicker(props: LanguagePickerProps): JSX.Element | null { - const { currentLocale, locales, setLocale } = useLanguagePicker(); - const { useTelemetry } = useThemeHooks(); - const telemetry = useTelemetry(); + const { currentLocale, locales, setLocale } = useLanguagePicker() + const { useTelemetry } = useThemeHooks() + const telemetry = useTelemetry() if (locales.length < 2 || !currentLocale) { - return null; + return null } - const languagePickerButton = ( - - ); + ) } export function MobileMenuIcon() { @@ -345,22 +311,18 @@ export function MobileMenuIcon() {
- ); + ) } export function GetStartedButton() { - const { useTranslate } = useThemeHooks(); - const { translate } = useTranslate(); + const { useTranslate } = useThemeHooks() + const { translate } = useTranslate() return ( - - {translate("Get Started")} + + {translate('Get Started')} - ); + ) } export function NavItems(props) { @@ -368,53 +330,48 @@ export function NavItems(props) {
    {props.children}
- ); + ) } export function NavItem(props) { - return
  • {props.children}
  • ; + return
  • {props.children}
  • } export function LogoBlock(props) { - const { to, img, altText } = props; + const { to, img, altText } = props return ( - {"XRP + {'XRP - ); + ) } export class ThemeToggle extends React.Component { auto_update_theme() { - const upc = window.localStorage.getItem("user-prefers-color"); - let theme = "dark"; // Default to dark theme + const upc = window.localStorage.getItem('user-prefers-color') + let theme = 'dark' // Default to dark theme if (!upc) { // User hasn't saved a preference specifically for this site; check // the browser-level preferences. - if ( - window.matchMedia && - window.matchMedia("(prefers-color-scheme: light)").matches - ) { - theme = "light"; + if (window.matchMedia && window.matchMedia('(prefers-color-scheme: light)').matches) { + theme = 'light' } } else { // Follow user's saved setting. - theme = upc == "light" ? "light" : "dark"; + theme = upc == 'light' ? 'light' : 'dark' } - const disable_theme = theme == "dark" ? "light" : "dark"; - document.documentElement.classList.add(theme); - document.documentElement.classList.remove(disable_theme); + const disable_theme = theme == 'dark' ? 'light' : 'dark' + document.documentElement.classList.add(theme) + document.documentElement.classList.remove(disable_theme) } user_choose_theme() { - const new_theme = document.documentElement.classList.contains("dark") - ? "light" - : "dark"; - window.localStorage.setItem("user-prefers-color", new_theme); - document.body.style.transition = "background-color .2s ease"; - const disable_theme = new_theme == "dark" ? "light" : "dark"; - document.documentElement.classList.add(new_theme); - document.documentElement.classList.remove(disable_theme); + const new_theme = document.documentElement.classList.contains('dark') ? 'light' : 'dark' + window.localStorage.setItem('user-prefers-color', new_theme) + document.body.style.transition = 'background-color .2s ease' + const disable_theme = new_theme == 'dark' ? 'light' : 'dark' + document.documentElement.classList.add(new_theme) + document.documentElement.classList.remove(disable_theme) } render() { @@ -428,22 +385,17 @@ export class ThemeToggle extends React.Component { data-placement="left" data-original-title="Toggle Dark Mode" > - + - ); + ) } componentDidMount() { - this.auto_update_theme(); + this.auto_update_theme() } } diff --git a/@theme/components/XRPLCard.tsx b/@theme/components/XRPLCard.tsx index 402fbb9705..bae469a017 100644 --- a/@theme/components/XRPLCard.tsx +++ b/@theme/components/XRPLCard.tsx @@ -1,38 +1,38 @@ -import * as React from 'react'; -import dynamicReact from '@markdoc/markdoc/dist/react'; -import { Link } from '@redocly/theme/components/Link/Link'; +import * as React from 'react' +import dynamicReact from '@markdoc/markdoc/dist/react' +import { Link } from '@redocly/theme/components/Link/Link' export interface XRPLCardProps { - title: string, - href: string, - body?: string, - image?: string, - imageAlt?: string, - external: boolean, + title: string + href: string + body?: string + image?: string + imageAlt?: string + external: boolean } export function XRPLCard(props: XRPLCardProps) { - return ( - -
    - { props.image && ( -
    - {props.imageAlt} -
    - )} -

    {props.title}

    - { props.body && ( -

    {props.body}

    - )} -
    -
     
    - - ) + return ( + +
    + {props.image && ( +
    + {props.imageAlt} +
    + )} +

    {props.title}

    + {props.body &&

    {props.body}

    } +
    +
     
    + + ) } export function CardGrid(props) { - const gridClass = `card-grid card-grid-${props.layout}` - return ( -
    {dynamicReact(props.children, React, {})}
    - ) + const gridClass = `card-grid card-grid-${props.layout}` + return ( +
    + {dynamicReact(props.children, React, {})} +
    + ) } diff --git a/@theme/components/XRPLoader.tsx b/@theme/components/XRPLoader.tsx index 25a535e8dc..4204a1b04f 100644 --- a/@theme/components/XRPLoader.tsx +++ b/@theme/components/XRPLoader.tsx @@ -1,12 +1,12 @@ -import * as React from 'react'; +import * as React from 'react' export interface XRPLoaderProps { - message?: string - show: boolean + message?: string + show: boolean } export default function XRPLoader(props: XRPLoaderProps) { - const classnames = props.show ? "loader" : "loader collapse" + const classnames = props.show ? 'loader' : 'loader collapse' return (
    (loading) diff --git a/@theme/helpers.ts b/@theme/helpers.ts index 12c2030d7b..42e5c51951 100644 --- a/@theme/helpers.ts +++ b/@theme/helpers.ts @@ -1,55 +1,55 @@ /** * Slugify function, has to match the formula used in interactive-tutorial.js */ -import { useEffect, useState } from 'react'; +import { useEffect, useState } from 'react' export const useThemeFromClassList = (classNames) => { - const [currentTheme, setCurrentTheme] = useState(null); + const [currentTheme, setCurrentTheme] = useState(null) useEffect(() => { // Function to update the theme based on the class list const updateTheme = () => { for (const className of classNames) { if (document.documentElement.classList.contains(className)) { - setCurrentTheme(className); - return; + setCurrentTheme(className) + return } } - }; + } // Initial update - updateTheme(); + updateTheme() // Create an observer instance linked to the callback function const observer = new MutationObserver(() => { - updateTheme(); - }); + updateTheme() + }) // Start observing the target node for configured mutations observer.observe(document.documentElement, { attributes: true, // Listen for attribute changes attributeFilter: ['class'], // Specifically, listen only to "class" attribute changes - }); + }) // Cleanup: Disconnect the observer return () => { - observer.disconnect(); - }; - }, [classNames]); + observer.disconnect() + } + }, [classNames]) - return currentTheme; -}; + return currentTheme +} export function slugify(s) { - const unacceptable_chars = /[^A-Za-z0-9._ ]+/g; - const whitespace_regex = /\s+/g; - s = s.replace(unacceptable_chars, ""); - s = s.replace(whitespace_regex, "_"); - s = s.toLowerCase(); + const unacceptable_chars = /[^A-Za-z0-9._ ]+/g + const whitespace_regex = /\s+/g + s = s.replace(unacceptable_chars, '') + s = s.replace(whitespace_regex, '_') + s = s.toLowerCase() if (!s) { - s = "_"; + s = '_' } - return s; + return s } export function idify(s: string) { @@ -58,10 +58,13 @@ export function idify(s: string) { // so it's disabled for now. With that fixed, we could use localized step names in interactive tutorials. //s = s.replace(/[^\p{Alphabetic}\p{Mark}\p{Decimal_Number}\p{Connector_Punctuation}\p{Join_Control}]/gu, '').trim().toLowerCase() //s = s.replace(/[^\w\s-]/gu, '').trim().toLowerCase() - s = s.replace(/([^\w]|[\s-])/gu, '').trim().toLowerCase() + s = s + .replace(/([^\w]|[\s-])/gu, '') + .trim() + .toLowerCase() s = s.replace(/[\s-]+/gu, '-') if (!s) { - s = "_"; + s = '_' } return s } diff --git a/@theme/markdoc/components.tsx b/@theme/markdoc/components.tsx index ea43f122bb..0b109fe3a4 100644 --- a/@theme/markdoc/components.tsx +++ b/@theme/markdoc/components.tsx @@ -20,9 +20,7 @@ export function IndexPageItems() { {data?.map((item: any) => (
  • {item.title} - { - item.status === "not_enabled" ? () : "" - } + {item.status === 'not_enabled' ? : ''}

    {item.seo?.description}

  • ))} @@ -31,25 +29,16 @@ export function IndexPageItems() { ) } -export function InteractiveBlock(props: { - children: React.ReactNode - label: string - steps: string[] -}) { +export function InteractiveBlock(props: { children: React.ReactNode; label: string; steps: string[] }) { const stepId = idify(props.label) const { pathname } = useLocation() return ( // add key={pathname} to ensure old step state gets rerendered on page navigation -
    +
    -
      +
        {props.steps?.map((step, idx) => { const iterStepId = idify(step).toLowerCase() let className = `breadcrumb-item bc-${iterStepId}` @@ -59,7 +48,7 @@ export function InteractiveBlock(props: {
      • {step}
      • - ) + ) })}
    @@ -69,82 +58,69 @@ export function InteractiveBlock(props: { ) } -export function RepoLink(props: { - children: React.ReactNode - path: string - github_fork: string - github_branch: string -}) { - const treeblob = props.path.indexOf(".") >= 0 ? "blob/" : "tree/" - const sep = props.github_fork[-1] == "/" ? "" : "/" - const href = props.github_fork+sep+treeblob+props.github_branch+"/"+props.path +export function RepoLink(props: { children: React.ReactNode; path: string; github_fork: string; github_branch: string }) { + const treeblob = props.path.indexOf('.') >= 0 ? 'blob/' : 'tree/' + const sep = props.github_fork[-1] == '/' ? '' : '/' + const href = props.github_fork + sep + treeblob + props.github_branch + '/' + props.path - return ( - {dynamicReact(props.children, React, {})} - ) + return {dynamicReact(props.children, React, {})} } -export function CodePageName(props: { - name: string -}) { - return ( - {props.name} - ) +export function CodePageName(props: { name: string }) { + return {props.name} } type TryItServer = 's1' | 's2' | 'xrplcluster' | 'testnet' | 'devnet' | 'testnet-clio' | 'devnet-clio' -export function TryIt(props: { - method: string, - server?: TryItServer -}) { +export function TryIt(props: { method: string; server?: TryItServer }) { const { useTranslate } = useThemeHooks() const { translate } = useTranslate() - let use_server = "" - if (props.server == "s1") { - use_server = "?server=wss%3A%2F%2Fs1.ripple.com%2F" - } else if (props.server == "s2") { - use_server = "?server=wss%3A%2F%2Fs2.ripple.com%2F" - } else if (props.server == "xrplcluster") { - use_server = "?server=wss%3A%2F%2Fxrplcluster.com%2F" + let use_server = '' + if (props.server == 's1') { + use_server = '?server=wss%3A%2F%2Fs1.ripple.com%2F' + } else if (props.server == 's2') { + use_server = '?server=wss%3A%2F%2Fs2.ripple.com%2F' + } else if (props.server == 'xrplcluster') { + use_server = '?server=wss%3A%2F%2Fxrplcluster.com%2F' } else if (props.server == 'devnet') { - use_server = "?server=wss%3A%2F%2Fs.devnet.rippletest.net%3A51233%2F" + use_server = '?server=wss%3A%2F%2Fs.devnet.rippletest.net%3A51233%2F' } else if (props.server == 'testnet') { - use_server = "?server=wss%3A%2F%2Fs.altnet.rippletest.net%3A51233%2F" + use_server = '?server=wss%3A%2F%2Fs.altnet.rippletest.net%3A51233%2F' } else if (props.server == 'testnet-clio') { - use_server = "?server=wss%3A%2F%2Fclio.altnet.rippletest.net%3A51233%2F" + use_server = '?server=wss%3A%2F%2Fclio.altnet.rippletest.net%3A51233%2F' } else if (props.server == 'devnet-clio') { - use_server = "?server=wss%3A%2F%2Fclio.devnet.rippletest.net%3A51233%2F" + use_server = '?server=wss%3A%2F%2Fclio.devnet.rippletest.net%3A51233%2F' } const to_path = `/resources/dev-tools/websocket-api-tool${use_server}#${props.method}` return ( - {translate("component.tryit", "Try it!")} + + {translate('component.tryit', 'Try it!')} + ) } -export function TxExample(props: { - txid: string, - server?: TryItServer -}) { +export function TxExample(props: { txid: string; server?: TryItServer }) { const { useTranslate } = useThemeHooks() const { translate } = useTranslate() - let use_server = "" - if (props.server == "s1") { - use_server = "&server=wss%3A%2F%2Fs1.ripple.com%2F" - } else if (props.server == "s2") { - use_server = "&server=wss%3A%2F%2Fs2.ripple.com%2F" - } else if (props.server == "xrplcluster") { - use_server = "&server=wss%3A%2F%2Fxrplcluster.com%2F" + let use_server = '' + if (props.server == 's1') { + use_server = '&server=wss%3A%2F%2Fs1.ripple.com%2F' + } else if (props.server == 's2') { + use_server = '&server=wss%3A%2F%2Fs2.ripple.com%2F' + } else if (props.server == 'xrplcluster') { + use_server = '&server=wss%3A%2F%2Fxrplcluster.com%2F' } else if (props.server == 'devnet') { - use_server = "&server=wss%3A%2F%2Fs.devnet.rippletest.net%3A51233%2F" + use_server = '&server=wss%3A%2F%2Fs.devnet.rippletest.net%3A51233%2F' } else if (props.server == 'testnet') { - use_server = "&server=wss%3A%2F%2Fs.altnet.rippletest.net%3A51233%2F" + use_server = '&server=wss%3A%2F%2Fs.altnet.rippletest.net%3A51233%2F' } - + const ws_req = `req=%7B%22id%22%3A%22example_tx_lookup%22%2C%22command%22%3A%22tx%22%2C%22transaction%22%3A%22${props.txid}%22%2C%22binary%22%3Afalse%2C%22api_version%22%3A2%7D` const to_path = `/resources/dev-tools/websocket-api-tool?${ws_req}${use_server}` return ( - {translate("component.queryexampletx", "Query example transaction")} + + {translate('component.queryexampletx', 'Query example transaction')} + ) } @@ -152,6 +128,8 @@ export function NotEnabled() { const { useTranslate } = useThemeHooks() const { translate } = useTranslate() return ( - + + + ) } diff --git a/@theme/markdoc/schema.ts b/@theme/markdoc/schema.ts index c053d8a2c5..3cc963a150 100644 --- a/@theme/markdoc/schema.ts +++ b/@theme/markdoc/schema.ts @@ -1,36 +1,36 @@ -import { Schema, Tag } from '@markdoc/markdoc'; +import { Schema, Tag } from '@markdoc/markdoc' export const indexPageList: Schema & { tagName: string } = { tagName: 'child-pages', render: 'IndexPageItems', selfClosing: true, -}; +} export const repoLink: Schema & { tagName: string } = { - tagName: 'repo-link', - attributes: { - path: { - type: 'String', - required: true, - }, - github_fork: { - type: 'String', - required: false, - }, - github_branch: { - type: 'String', - required: false, - }, + tagName: 'repo-link', + attributes: { + path: { + type: 'String', + required: true, }, - transform(node, config) { - const attributes = node.transformAttributes(config); - attributes["github_fork"] = attributes["github_fork"] || config.variables.env.PUBLIC_GITHUB_FORK; - attributes["github_branch"] = attributes["github_branch"] || config.variables.env.PUBLIC_GITHUB_BRANCH; - const children = node.transformChildren(config); - return new Tag(this.render, attributes, children); + github_fork: { + type: 'String', + required: false, }, - render: 'RepoLink', -}; + github_branch: { + type: 'String', + required: false, + }, + }, + transform(node, config) { + const attributes = node.transformAttributes(config) + attributes['github_fork'] = attributes['github_fork'] || config.variables.env.PUBLIC_GITHUB_FORK + attributes['github_branch'] = attributes['github_branch'] || config.variables.env.PUBLIC_GITHUB_BRANCH + const children = node.transformChildren(config) + return new Tag(this.render, attributes, children) + }, + render: 'RepoLink', +} export const codePageName: Schema & { tagName: string } = { tagName: 'code-page-name', @@ -41,13 +41,13 @@ export const codePageName: Schema & { tagName: string } = { }, }, transform(node, config) { - const attributes = node.transformAttributes(config); - attributes["name"] = config.variables.frontmatter.seo.title; - return new Tag(this.render, attributes); + const attributes = node.transformAttributes(config) + attributes['name'] = config.variables.frontmatter.seo.title + return new Tag(this.render, attributes) }, render: 'CodePageName', selfClosing: true, -}; +} export const interactiveBlock: Schema & { tagName: string } = { tagName: 'interactive-block', @@ -64,38 +64,38 @@ export const interactiveBlock: Schema & { tagName: string } = { type: 'Object', required: false, default: { - name: "Testnet", - websocket: "wss://s.altnet.rippletest.net:51233", - explorer: "https://testnet.xrpl.org", - faucet: "https://faucet.altnet.rippletest.net/accounts", - } - } + name: 'Testnet', + websocket: 'wss://s.altnet.rippletest.net:51233', + explorer: 'https://testnet.xrpl.org', + faucet: 'https://faucet.altnet.rippletest.net/accounts', + }, + }, }, transform(node, config) { - const attributes = node.transformAttributes(config); - const children = replaceHtmlAttributeValuesVariables(node.transformChildren(config), config.variables.env); - return new Tag(this.render, attributes, children); + const attributes = node.transformAttributes(config) + const children = replaceHtmlAttributeValuesVariables(node.transformChildren(config), config.variables.env) + return new Tag(this.render, attributes, children) }, render: 'InteractiveBlock', -}; +} function replaceHtmlAttributeValuesVariables(nodes, variables) { for (const n of nodes) { if (n.attributes) { for (const attribName of Object.keys(n.attributes)) { - const v = n.attributes[attribName]; - if (typeof v !== 'string') continue; + const v = n.attributes[attribName] + if (typeof v !== 'string') continue n.attributes[attribName] = v.replace(/{%\s*\$env.([\w_\d]+)\s*%}/g, (_, name) => { - return variables[name]; - }); + return variables[name] + }) } } if (n.children) { - replaceHtmlAttributeValuesVariables(n.children, variables); + replaceHtmlAttributeValuesVariables(n.children, variables) } } - return nodes; + return nodes } export const xrpLoader: Schema & { tagName: string } = { @@ -104,12 +104,12 @@ export const xrpLoader: Schema & { tagName: string } = { message: { type: 'String', required: false, - default: "...", + default: '...', }, }, render: 'XRPLoader', selfClosing: true, -}; +} export const badge: Schema & { tagName: string } = { tagName: 'badge', @@ -117,57 +117,59 @@ export const badge: Schema & { tagName: string } = { color: { type: 'String', required: false, - default: "" + default: '', }, href: { type: 'String', - required: false + required: false, }, - date: { // Not displayed, but useful for knowing how old an 'updated' badge is + date: { + // Not displayed, but useful for knowing how old an 'updated' badge is type: 'String', - required: false - } + required: false, + }, }, - render: 'Badge' -}; + render: 'Badge', +} export const notEnabled: Schema & { tagName: string } = { tagName: 'not-enabled', render: 'NotEnabled', selfClosing: true, -}; +} export const xrplCard: Schema & { tagName: string } = { tagName: 'xrpl-card', attributes: { title: { type: 'String', - required: true + required: true, }, href: { type: 'String', - required: true + required: true, }, body: { type: 'String', - required: false + required: false, }, image: { type: 'String', - required: false + required: false, }, imageAlt: { type: 'String', - required: false + required: false, }, - external: { // Not actually implemented (yet) + external: { + // Not actually implemented (yet) type: 'Boolean', required: false, - default: false - } + default: false, + }, }, render: 'XRPLCard', - selfClosing: true + selfClosing: true, } export const cardGrid: Schema & { tagName: string } = { @@ -176,70 +178,70 @@ export const cardGrid: Schema & { tagName: string } = { layout: { type: 'String', required: false, - default: '3xN' - } + default: '3xN', + }, }, - render: 'CardGrid' + render: 'CardGrid', } -export const tryIt: Schema & { tagName: string } = { +export const tryIt: Schema & { tagName: string } = { tagName: 'try-it', attributes: { method: { type: 'String', - required: true + required: true, }, server: { type: 'String', required: false, - default: "" - } + default: '', + }, }, render: 'TryIt', - selfClosing: true + selfClosing: true, } -export const txExample: Schema & { tagName: string } = { +export const txExample: Schema & { tagName: string } = { tagName: 'tx-example', attributes: { txid: { type: 'String', - required: true + required: true, }, server: { type: 'String', required: false, - default: "" - } + default: '', + }, }, render: 'TxExample', - selfClosing: true + selfClosing: true, } export const amendmentsTable: Schema & { tagName: string } = { tagName: 'amendments-table', render: 'AmendmentsTable', - selfClosing: true + selfClosing: true, } -export const amendmentDisclaimer: Schema & { tagName: string } = { +export const amendmentDisclaimer: Schema & { tagName: string } = { tagName: 'amendment-disclaimer', attributes: { name: { type: 'String', - required: true + required: true, }, compact: { type: 'Boolean', required: false, - default: false + default: false, }, mode: { type: 'String', required: false, - default: '' // empty string for "Requires ... / Added by ..." - } + default: '', // empty string for "Requires ... / Added by ..." + }, }, render: 'AmendmentDisclaimer', - selfClosing: true + selfClosing: true, } diff --git a/@theme/plugin.js b/@theme/plugin.js index 177373fdd9..b3a4491ae9 100644 --- a/@theme/plugin.js +++ b/@theme/plugin.js @@ -1,28 +1,26 @@ -import { indexPages } from './plugins/index-pages.js'; -import { codeSamples } from './plugins/code-samples.js'; -import { blogPosts } from './plugins/blog-posts.js'; +import { indexPages } from './plugins/index-pages.js' +import { codeSamples } from './plugins/code-samples.js' +import { blogPosts } from './plugins/blog-posts.js' export default function customPlugin() { - const indexPagesInst = indexPages(); - const codeSamplesInst = codeSamples(); - const blogPostsInst = blogPosts(); - - + const indexPagesInst = indexPages() + const codeSamplesInst = codeSamples() + const blogPostsInst = blogPosts() /** @type {import("@redocly/realm/dist/server/plugins/types").PluginInstance } */ const pluginInstance = { id: 'xrpl', processContent: async (content, actions) => { - await indexPagesInst.processContent?.(content, actions); - await codeSamplesInst.processContent?.(content, actions); - await blogPostsInst.processContent?.(content, actions); + await indexPagesInst.processContent?.(content, actions) + await codeSamplesInst.processContent?.(content, actions) + await blogPostsInst.processContent?.(content, actions) }, afterRoutesCreated: async (content, actions) => { - await indexPagesInst.afterRoutesCreated?.(content, actions); - await codeSamplesInst.afterRoutesCreated?.(content, actions); - await blogPostsInst.afterRoutesCreated?.(content, actions); + await indexPagesInst.afterRoutesCreated?.(content, actions) + await codeSamplesInst.afterRoutesCreated?.(content, actions) + await blogPostsInst.afterRoutesCreated?.(content, actions) }, - }; + } - return pluginInstance; + return pluginInstance } diff --git a/@theme/plugins/blog-posts.js b/@theme/plugins/blog-posts.js index 7932163e1e..57ac7b9699 100644 --- a/@theme/plugins/blog-posts.js +++ b/@theme/plugins/blog-posts.js @@ -1,134 +1,133 @@ // @ts-check -import { getInnerText } from '@redocly/realm/dist/server/plugins/markdown/markdoc/helpers/get-inner-text.js'; +import { getInnerText } from '@redocly/realm/dist/server/plugins/markdown/markdoc/helpers/get-inner-text.js' -import { dirname, relative, join as joinPath } from 'path'; -import markdoc from '@markdoc/markdoc'; -import moment from "moment"; +import { dirname, relative, join as joinPath } from 'path' +import markdoc from '@markdoc/markdoc' +import moment from 'moment' export function blogPosts() { /** @type {import("@redocly/realm/dist/server/plugins/types").PluginInstance } */ const instance = { processContent: async (actions, { fs, cache }) => { try { - const posts = []; + const posts = [] const allFiles = await fs.scan() - const markdownFiles = allFiles - .filter(file => file.relativePath - .match(/^blog[\/\\]([^\\\/]*)[\/\\].*\.md$/)); + const markdownFiles = allFiles.filter((file) => file.relativePath.match(/^blog[\/\\]([^\\\/]*)[\/\\].*\.md$/)) for (const { relativePath } of markdownFiles) { - const { data: { ast } } = await cache.load(relativePath, 'markdown-ast'); - const { data: { frontmatter } } = await cache.load(relativePath, 'markdown-frontmatter'); + const { + data: { ast }, + } = await cache.load(relativePath, 'markdown-ast') + const { + data: { frontmatter }, + } = await cache.load(relativePath, 'markdown-frontmatter') - const dirPath = dirname(relativePath); - const title = extractFirstHeading(ast) || ''; - const category = extractCategory(frontmatter.labels); - const year = `${relativePath.split("/")[1]}` + const dirPath = dirname(relativePath) + const title = extractFirstHeading(ast) || '' + const category = extractCategory(frontmatter.labels) + const year = `${relativePath.split('/')[1]}` posts.push({ path: dirPath, - author: frontmatter.author || "", + author: frontmatter.author || '', title: title || toTitleCase(dirname(dirPath)), description: getInnerText([ast.children[1]]).replace(title, '').trim(), year: year, - date: frontmatter.date - ? moment(frontmatter.date).format("YYYY-MM-DD") - : moment(year).format("YYYY-MM-DD"), - category: category || "General", - category_id: category ? category.toLowerCase().replace(/ /g, "_") : "general", - link: `${relativePath.replace('blog/', '').replace(".md", "")}`, - }); + date: frontmatter.date ? moment(frontmatter.date).format('YYYY-MM-DD') : moment(year).format('YYYY-MM-DD'), + category: category || 'General', + category_id: category ? category.toLowerCase().replace(/ /g, '_') : 'general', + link: `${relativePath.replace('blog/', '').replace('.md', '')}`, + }) } const sortedPosts = sortBlogPostsByDate(posts) - actions.createSharedData('blog-posts', { blogPosts: sortedPosts }); - actions.addRouteSharedData('/blog/', 'blog-posts', 'blog-posts'); - actions.addRouteSharedData('/ja/blog/', 'blog-posts', 'blog-posts'); - actions.addRouteSharedData('/es-es/blog/', 'blog-posts', 'blog-posts'); + actions.createSharedData('blog-posts', { blogPosts: sortedPosts }) + actions.addRouteSharedData('/blog/', 'blog-posts', 'blog-posts') + actions.addRouteSharedData('/ja/blog/', 'blog-posts', 'blog-posts') + actions.addRouteSharedData('/es-es/blog/', 'blog-posts', 'blog-posts') } catch (e) { - console.log(e); + console.log(e) } }, - }; - return instance; + } + return instance } function extractCategory(labelsFrontmatter) { - const categories = []; + const categories = [] for (const i in labelsFrontmatter) { - if (labelsFrontmatter[i].includes("Release")) { - labelsFrontmatter[i] = "Release Notes" + if (labelsFrontmatter[i].includes('Release')) { + labelsFrontmatter[i] = 'Release Notes' } - categories.push(labelsFrontmatter[i]); + categories.push(labelsFrontmatter[i]) } // We only need the first category from the frontmatter. - return categories[0]; + return categories[0] } function sortBlogPostsByDate(posts) { const sortedItems = posts.sort((a, b) => { - let dateA = new Date(a.date); - let dateB = new Date(b.date); + let dateA = new Date(a.date) + let dateB = new Date(b.date) // Sort in descending order - return dateB.getTime() - dateA.getTime(); - }); - return sortedItems; + return dateB.getTime() - dateA.getTime() + }) + return sortedItems } -const WORDS_TO_CAPS = ['xrp']; +const WORDS_TO_CAPS = ['xrp'] function toTitleCase(s) { - const words = s.split(/_|[^\w']/); + const words = s.split(/_|[^\w']/) return words - .filter(word => word) - .map(word => (WORDS_TO_CAPS.includes(word) ? word.toUpperCase() : word.charAt(0).toUpperCase() + word.slice(1))) + .filter((word) => word) + .map((word) => (WORDS_TO_CAPS.includes(word) ? word.toUpperCase() : word.charAt(0).toUpperCase() + word.slice(1))) .join(' ') .replace("'S", "'s") - .replace(' A ', ' a '); + .replace(' A ', ' a ') } function unique(array) { - return Array.from(new Set(array)); + return Array.from(new Set(array)) } function extractFirstHeading(ast) { - let heading; + let heading - visit(ast, node => { + visit(ast, (node) => { if (!isNode(node)) { - return; + return } if (node.type === 'heading') { - heading = getInnerText([node]); - return EXIT; + heading = getInnerText([node]) + return EXIT } - }); + }) - return heading; + return heading } function isNode(value) { - return !!(value?.$$mdtype === 'Node'); + return !!(value?.$$mdtype === 'Node') } -const EXIT = Symbol('Exit visitor'); +const EXIT = Symbol('Exit visitor') function visit(node, visitor) { - if (!node) return; + if (!node) return - const res = visitor(node); - if (res === EXIT) return res; + const res = visitor(node) + if (res === EXIT) return res for (const child of node.children) { if (!child || typeof child === 'string') { - continue; + continue } - const res = visit(child, visitor); - if (res === EXIT) return res; + const res = visit(child, visitor) + if (res === EXIT) return res } } - diff --git a/@theme/plugins/code-samples.js b/@theme/plugins/code-samples.js index 580a5e6806..c44960a37d 100644 --- a/@theme/plugins/code-samples.js +++ b/@theme/plugins/code-samples.js @@ -1,114 +1,114 @@ // @ts-check -import { getInnerText } from '@redocly/realm/dist/server/plugins/markdown/markdoc/helpers/get-inner-text.js'; +import { getInnerText } from '@redocly/realm/dist/server/plugins/markdown/markdoc/helpers/get-inner-text.js' -import { dirname, relative, join as joinPath } from 'path'; +import { dirname, relative, join as joinPath } from 'path' export function codeSamples() { /** @type {import("@redocly/realm/dist/server/plugins/types").PluginInstance } */ const instance = { processContent: async (actions, { fs, cache }) => { try { - const samples = []; - const allLands = new Set(); - const allCodeSampleFiles = await fs.scan(); + const samples = [] + const allLands = new Set() + const allCodeSampleFiles = await fs.scan() - const readmes = allCodeSampleFiles.filter((file) => file.relativePath.match(/^_code-samples[\/\\]([^\\\/]*)[\/\\]README\.md$/)); + const readmes = allCodeSampleFiles.filter((file) => file.relativePath.match(/^_code-samples[\/\\]([^\\\/]*)[\/\\]README\.md$/)) for (const { relativePath } of readmes) { - const { data } = await cache.load(relativePath, 'markdown-ast'); + const { data } = await cache.load(relativePath, 'markdown-ast') - const dirPath = dirname(relativePath); + const dirPath = dirname(relativePath) const langs = unique( allCodeSampleFiles .filter((file) => file.relativePath.startsWith(dirPath) && !file.relativePath.endsWith('README.md')) - .map((file) => relative(dirPath, file.relativePath).split('/')[0]) - ); - const title = extractFirstHeading(data.ast) || ''; + .map((file) => relative(dirPath, file.relativePath).split('/')[0]), + ) + const title = extractFirstHeading(data.ast) || '' samples.push({ path: dirPath, title: title || toTitleCase(dirname(dirPath)), description: getInnerText([data.ast.children[1]]).trim(), href: joinPath('content', dirPath), langs, - }); + }) - langs.forEach((l) => allLands.add(l)); + langs.forEach((l) => allLands.add(l)) } - const sortedSamples = samples.sort((a, b) => normalizeTitleForSort(a).localeCompare(normalizeTitleForSort(b))); + const sortedSamples = samples.sort((a, b) => normalizeTitleForSort(a).localeCompare(normalizeTitleForSort(b))) actions.createSharedData('code-samples', { codeSamples: sortedSamples, langs: Array.from(allLands), - }); - actions.addRouteSharedData('/resources/code-samples/', 'code-samples', 'code-samples'); - actions.addRouteSharedData('/ja/resources/code-samples/', 'code-samples', 'code-samples'); - actions.addRouteSharedData('/es-es/resources/code-samples/', 'code-samples', 'code-samples'); + }) + actions.addRouteSharedData('/resources/code-samples/', 'code-samples', 'code-samples') + actions.addRouteSharedData('/ja/resources/code-samples/', 'code-samples', 'code-samples') + actions.addRouteSharedData('/es-es/resources/code-samples/', 'code-samples', 'code-samples') } catch (e) { - console.log(e); + console.log(e) } }, - }; - return instance; + } + return instance } function normalizeTitleForSort(cs) { if (cs.title.includes('Intro') || cs.title.includes('Quickstart')) { - return ` ${cs.title}`; + return ` ${cs.title}` } - return cs.title; + return cs.title } -const WORDS_TO_CAPS = ['xrp']; +const WORDS_TO_CAPS = ['xrp'] function toTitleCase(s) { - const words = s.split(/_|[^\w']/); + const words = s.split(/_|[^\w']/) return words .filter((word) => word) .map((word) => (WORDS_TO_CAPS.includes(word) ? word.toUpperCase() : word.charAt(0).toUpperCase() + word.slice(1))) .join(' ') .replace("'S", "'s") - .replace(' A ', ' a '); + .replace(' A ', ' a ') } function unique(array) { - return Array.from(new Set(array)); + return Array.from(new Set(array)) } function extractFirstHeading(ast) { - let heading; + let heading visit(ast, (node) => { if (!isNode(node)) { - return; + return } if (node.type === 'heading') { - heading = getInnerText([node]); - return EXIT; + heading = getInnerText([node]) + return EXIT } - }); + }) - return heading; + return heading } function isNode(value) { - return !!(value?.$$mdtype === 'Node'); + return !!(value?.$$mdtype === 'Node') } -const EXIT = Symbol('Exit visitor'); +const EXIT = Symbol('Exit visitor') function visit(node, visitor) { - if (!node) return; + if (!node) return - const res = visitor(node); - if (res === EXIT) return res; + const res = visitor(node) + if (res === EXIT) return res for (const child of node.children) { if (!child || typeof child === 'string') { - continue; + continue } - const res = visit(child, visitor); - if (res === EXIT) return res; + const res = visit(child, visitor) + if (res === EXIT) return res } } diff --git a/@theme/plugins/index-pages.js b/@theme/plugins/index-pages.js index 38eb487757..55aa25b85b 100644 --- a/@theme/plugins/index-pages.js +++ b/@theme/plugins/index-pages.js @@ -1,6 +1,6 @@ // @ts-check -import { readSharedData } from '@redocly/realm/dist/server/utils/shared-data.js'; // TODO: export function from root package -const INDEX_PAGE_INFO_DATA_KEY = 'index-page-items'; +import { readSharedData } from '@redocly/realm/dist/server/utils/shared-data.js' // TODO: export function from root package +const INDEX_PAGE_INFO_DATA_KEY = 'index-page-items' export function indexPages() { /** @type {import("@redocly/realm/dist/server/plugins/types").PluginInstance } */ @@ -8,70 +8,54 @@ export function indexPages() { // hook that gets executed after all routes were created async afterRoutesCreated(actions, { cache }) { // get all the routes that are ind pages - const indexRoutes = actions - .getAllRoutes() - .filter((route) => route.metadata?.indexPage); + const indexRoutes = actions.getAllRoutes().filter((route) => route.metadata?.indexPage) for (const route of indexRoutes) { // @ts-ignore this uses some internals, we will expose them in nicer way in the future releases - const sidebarId = actions.routesSharedData.get(route.slug)?.['sidebar']; // TODO: implement a helper function for this + const sidebarId = actions.routesSharedData.get(route.slug)?.['sidebar'] // TODO: implement a helper function for this /** @type {any} */ - const sidebar = await readSharedData(sidebarId, actions.outdir); + const sidebar = await readSharedData(sidebarId, actions.outdir) if (!sidebar) { - console.log('[warn] Index route used with no sidebar', route.fsPath); - continue; + console.log('[warn] Index route used with no sidebar', route.fsPath) + continue } - const item = findItemDeep(sidebar.items, route.fsPath); - const childrenPaths = (item.items || []) - .map((item) => item.fsPath) - .filter(Boolean); + const item = findItemDeep(sidebar.items, route.fsPath) + const childrenPaths = (item.items || []).map((item) => item.fsPath).filter(Boolean) - const childRoutes = childrenPaths.map((fsPath) => - actions.getRouteByFsPath(fsPath), - ); + const childRoutes = childrenPaths.map((fsPath) => actions.getRouteByFsPath(fsPath)) const childRoutesData = await Promise.all( childRoutes.map(async (route) => { - const { data } = await cache.load( - route.fsPath, - 'markdown-frontmatter', - ); - const slug = route.slug; - const title = await route.getNavText(); + const { data } = await cache.load(route.fsPath, 'markdown-frontmatter') + const slug = route.slug + const title = await route.getNavText() return { ...data?.frontmatter, slug, title, - }; + } }), - ); + ) - const sharedDataId = await actions.createSharedData( - route.slug + '_' + INDEX_PAGE_INFO_DATA_KEY, - childRoutesData, - ); - actions.addRouteSharedData( - route.slug, - INDEX_PAGE_INFO_DATA_KEY, - sharedDataId, - ); + const sharedDataId = await actions.createSharedData(route.slug + '_' + INDEX_PAGE_INFO_DATA_KEY, childRoutesData) + actions.addRouteSharedData(route.slug, INDEX_PAGE_INFO_DATA_KEY, sharedDataId) } }, - }; - return instance; + } + return instance } function findItemDeep(items, fsPath) { for (const item of items) { if (item.fsPath === fsPath) { - return item; + return item } if (item.items) { - const found = findItemDeep(item.items, fsPath); + const found = findItemDeep(item.items, fsPath) if (found) { - return found; + return found } } } diff --git a/@theme/styles.css b/@theme/styles.css index adfacca469..e220f54e0f 100644 --- a/@theme/styles.css +++ b/@theme/styles.css @@ -12,13 +12,14 @@ ul.nav.navbar-nav { } .clio-only-notice { - background-color: var(--admonition-info-bg-color); - margin-left: var(--spacing-sm); - padding: var(--spacing-xs); - border-radius: var(--border-radius); + background-color: var(--admonition-info-bg-color); + margin-left: var(--spacing-sm); + padding: var(--spacing-xs); + border-radius: var(--border-radius); } -:root, :root.dark { +:root, +:root.dark { --navbar-height: 80px; /* XRPL color palette; match to styles/_colors.scss @@ -35,83 +36,83 @@ ul.nav.navbar-nav { --color-gray-3: #343437; --color-gray-4: #454549; --color-gray-5: #838386; - --color-gray-6: #A2A2A4; - --color-gray-7: #C1C1C2; - --color-gray-8: #E0E0E1; - --color-gray-9: #F5F5F7; + --color-gray-6: #a2a2a4; + --color-gray-7: #c1c1c2; + --color-gray-8: #e0e0e1; + --color-gray-9: #f5f5f7; --color-gray-10: var(--color-gray-9); /* color-red = XRPL $magenta */ - --color-red-1: #4C0026; - --color-red-2: #4C0026; - --color-red-3: #80003F; - --color-red-4: #B20058; - --color-red-5: #E50071; - --color-red-6: #FF198B; - --color-red-7: #FF4BA4; - --color-red-8: #FF80BF; - --color-red-9: #FFB2D8; - --color-red-10: #FFE5F2; + --color-red-1: #4c0026; + --color-red-2: #4c0026; + --color-red-3: #80003f; + --color-red-4: #b20058; + --color-red-5: #e50071; + --color-red-6: #ff198b; + --color-red-7: #ff4ba4; + --color-red-8: #ff80bf; + --color-red-9: #ffb2d8; + --color-red-10: #ffe5f2; /* color-green = XRPL $green */ - --color-green-1: #0A2E1B; - --color-green-2: #145C35; - --color-green-3: #1E8A50; - --color-green-4: #28B86A; - --color-green-5: #2DCF78; - --color-green-6: #32E685; - --color-green-7: #5BEB9D; - --color-green-8: #84F0B6; - --color-green-9: #ADF5CE; - --color-green-10: #D6FAE7; + --color-green-1: #0a2e1b; + --color-green-2: #145c35; + --color-green-3: #1e8a50; + --color-green-4: #28b86a; + --color-green-5: #2dcf78; + --color-green-6: #32e685; + --color-green-7: #5beb9d; + --color-green-8: #84f0b6; + --color-green-9: #adf5ce; + --color-green-10: #d6fae7; /* color-gold = XRPL $yellow */ - --color-gold-1: #4B4C00; - --color-gold-2: #4B4C00; - --color-gold-3: #7D8000; - --color-gold-4: #AEB200; - --color-gold-5: #E0E500; - --color-gold-6: #FAFF19; - --color-gold-7: #FBFF4C; - --color-gold-8: #FCFF80; - --color-gold-9: #FDFFB2; - --color-gold-10: #FEFFE5; + --color-gold-1: #4b4c00; + --color-gold-2: #4b4c00; + --color-gold-3: #7d8000; + --color-gold-4: #aeb200; + --color-gold-5: #e0e500; + --color-gold-6: #faff19; + --color-gold-7: #fbff4c; + --color-gold-8: #fcff80; + --color-gold-9: #fdffb2; + --color-gold-10: #feffe5; /* color-blue = XRPL $blue */ --color-blue-1: #001133; - --color-blue-2: #002E4C; - --color-blue-3: #004D80; - --color-blue-4: #006BB2; - --color-blue-5: #008AE5; - --color-blue-6: #19A3FF; - --color-blue-7: #4BB7FF; - --color-blue-8: #80CCFF; - --color-blue-9: #B2E0FF; - --color-blue-10: #E5F5FF; + --color-blue-2: #002e4c; + --color-blue-3: #004d80; + --color-blue-4: #006bb2; + --color-blue-5: #008ae5; + --color-blue-6: #19a3ff; + --color-blue-7: #4bb7ff; + --color-blue-8: #80ccff; + --color-blue-9: #b2e0ff; + --color-blue-10: #e5f5ff; /* color purple = XRPL $blue-purple */ - --color-purple-1: #20004C; - --color-purple-2: #20004C; + --color-purple-1: #20004c; + --color-purple-2: #20004c; --color-purple-3: #350080; - --color-purple-4: #4A00B2; - --color-purple-5: #5F00E5; - --color-purple-6: #7919FF; - --color-purple-7: #9A52FF; - --color-purple-8: #B480FF; - --color-purple-9: #D2B2FF; - --color-purple-10: #F0E5FF; + --color-purple-4: #4a00b2; + --color-purple-5: #5f00e5; + --color-purple-6: #7919ff; + --color-purple-7: #9a52ff; + --color-purple-8: #b480ff; + --color-purple-9: #d2b2ff; + --color-purple-10: #f0e5ff; /* color-magenta = XRPL $red-purple */ - --color-magenta-1: #40004C; - --color-magenta-2: #40004C; - --color-magenta-3: #6B0080; - --color-magenta-4: #9500B2; - --color-magenta-5: #C000E5; - --color-magenta-6: #D919FF; - --color-magenta-7: #E24CFF; - --color-magenta-8: #EA80FF; - --color-magenta-9: #F2B2FF; - --color-magenta-10: #FBE5FF; + --color-magenta-1: #40004c; + --color-magenta-2: #40004c; + --color-magenta-3: #6b0080; + --color-magenta-4: #9500b2; + --color-magenta-5: #c000e5; + --color-magenta-6: #d919ff; + --color-magenta-7: #e24cff; + --color-magenta-8: #ea80ff; + --color-magenta-9: #f2b2ff; + --color-magenta-10: #fbe5ff; /* XRPL doesn't have a color-cyan equivalent* --color-cyan-1: #002329;* @@ -126,16 +127,16 @@ ul.nav.navbar-nav { --color-cyan-10: #e6fffb; */ /* color-yellow = XRPL $yellow */ - --color-yellow-1: #4B4C00; - --color-yellow-2: #4B4C00; - --color-yellow-3: #7D8000; - --color-yellow-4: #AEB200; - --color-yellow-5: #E0E500; - --color-yellow-6: #FAFF19; - --color-yellow-7: #FBFF4C; - --color-yellow-8: #FCFF80; - --color-yellow-9: #FDFFB2; - --color-yellow-10: #FEFFE5; + --color-yellow-1: #4b4c00; + --color-yellow-2: #4b4c00; + --color-yellow-3: #7d8000; + --color-yellow-4: #aeb200; + --color-yellow-5: #e0e500; + --color-yellow-6: #faff19; + --color-yellow-7: #fbff4c; + --color-yellow-8: #fcff80; + --color-yellow-9: #fdffb2; + --color-yellow-10: #feffe5; /* XRPL doesn't have a color-lime equivalent* --color-lime-1: #254000;* @@ -163,7 +164,7 @@ ul.nav.navbar-nav { /* Dark mode colors by default */ --color-primary-bg: var(--color-gray-10); -/* --color-primary-bg-hover: #d6dfff; + /* --color-primary-bg-hover: #d6dfff; --color-primary-border: #adbcff; --color-primary-border-hover: #8a99ff; --color-primary-hover: #6678ff; @@ -177,8 +178,7 @@ ul.nav.navbar-nav { --link-decoration: underline; --link-font-weight: var(--font-weight-regular); - --link-color-primary-hover: var(--color-purple-7) - --link-decoration-hover: underline; + --link-color-primary-hover: var(--color-purple-7) --link-decoration-hover: underline; --link-color-visited: white; --link-visited-decoration: underline; @@ -187,10 +187,11 @@ ul.nav.navbar-nav { --bg-color-raised: var(--color-gray-2); --background-color: var(--bg-color); - --font-family-base: 'Work Sans', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; + --font-family-base: + 'Work Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif; --heading-font-family: var(--font-family-base); - --inline-code-font-family: "Space Mono", monospace; + --inline-code-font-family: 'Space Mono', monospace; --inline-code-text-color: var(--color-green-7); --inline-code-bg-color: var(--color-green-1); --inline-code-border-radius: 0; @@ -293,7 +294,7 @@ ul.nav.navbar-nav { --code-block-tokens-operator-color: black; --code-block-tokens-string-color: var(--color-green-3); - --bg-raised-gradient: ""; + --bg-raised-gradient: ''; --text-color-helper: var(--color-gray-4); --button-color-hover: black; @@ -320,7 +321,7 @@ ul.nav.navbar-nav { --code-panel-bg-color: var(--color-blue-3); --layer-color-hover: var(--color-gray-3); - --bg-raised-gradient: ""; + --bg-raised-gradient: ''; } :root .form-control-plaintext { @@ -328,36 +329,36 @@ ul.nav.navbar-nav { } /* Fix unnecessary horizontal scrolling of tables in Japanese */ -[lang="ja"] table.md { +[lang='ja'] table.md { word-break: break-word; } -[lang="ja"] table.md th { +[lang='ja'] table.md th { min-width: 7em; } -[data-component-name="Search/SearchTrigger"] > div { +[data-component-name='Search/SearchTrigger'] > div { justify-content: start; width: 100%; } -[data-component-name="Markdown/Markdown"] { +[data-component-name='Markdown/Markdown'] { --md-table-font-size: 14px; --md-table-line-height: 1.5; } -[data-component-name="Markdown/Markdown"] td p { +[data-component-name='Markdown/Markdown'] td p { font-size: var(--md-table-font-size); line-height: var(--md-table-line-height); } @media screen and (min-width: 990px) { - [data-component-name="LanguagePicker/LanguagePicker"] { + [data-component-name='LanguagePicker/LanguagePicker'] { display: block; } - [data-component-name="Search/SearchTrigger"] > button { + [data-component-name='Search/SearchTrigger'] > button { display: none; } - [data-component-name="Search/SearchTrigger"] > div { + [data-component-name='Search/SearchTrigger'] > div { display: inline-flex; } } diff --git a/@theme/templates/blogpost.tsx b/@theme/templates/blogpost.tsx index 89794c2566..e419a4fc0a 100644 --- a/@theme/templates/blogpost.tsx +++ b/@theme/templates/blogpost.tsx @@ -1,20 +1,16 @@ -import { Markdown } from '@redocly/theme/components/Markdown/Markdown'; -import { DocumentationLayout } from '@redocly/theme/layouts/DocumentationLayout'; -import { TableOfContent } from '@redocly/theme/components/TableOfContent/TableOfContent'; -import styled from 'styled-components'; +import { Markdown } from '@redocly/theme/components/Markdown/Markdown' +import { DocumentationLayout } from '@redocly/theme/layouts/DocumentationLayout' +import { TableOfContent } from '@redocly/theme/components/TableOfContent/TableOfContent' +import styled from 'styled-components' const LayoutWrapper = styled.div` -display: flex; -flex: 1; -width: 100%; -`; + display: flex; + flex: 1; + width: 100%; +` function PostInfo(data) { - return ( -
    - Publication date: {data.data.date} -
    - ) + return
    Publication date: {data.data.date}
    } export default function BlogPost({ pageProps, children }) { @@ -26,5 +22,5 @@ export default function BlogPost({ pageProps, children }) { - ); + ) } diff --git a/CODE-OF-CONDUCT.ja.md b/CODE-OF-CONDUCT.ja.md index 35532f8342..dcf3cd9046 100644 --- a/CODE-OF-CONDUCT.ja.md +++ b/CODE-OF-CONDUCT.ja.md @@ -8,19 +8,19 @@ 前向きな環境を作り上げることに貢献する行動の例: -* 友好的で差別のない言葉の使用 -* 異なる観点や経験の尊重 -* 建設的な批判の素直な受け入れ -* コミュニティーにとっての最善への注力 -* 他のコミュニティーメンバーへの共感の表示 +- 友好的で差別のない言葉の使用 +- 異なる観点や経験の尊重 +- 建設的な批判の素直な受け入れ +- コミュニティーにとっての最善への注力 +- 他のコミュニティーメンバーへの共感の表示 前向きな環境を作り上げることに貢献しない行動の例: -* 性的な意味を含む言葉や画像の使用、望まない性的注目や誘いかけ -* あおり、侮辱的または軽蔑的なコメント、個人攻撃や政治攻撃 -* 公的または私的な嫌がらせ -* 住所やメールアドレスなどの個人情報の、明確な許可なしでの公開 -* 職場において不適切であると合理的に考えられる、その他の行為 +- 性的な意味を含む言葉や画像の使用、望まない性的注目や誘いかけ +- あおり、侮辱的または軽蔑的なコメント、個人攻撃や政治攻撃 +- 公的または私的な嫌がらせ +- 住所やメールアドレスなどの個人情報の、明確な許可なしでの公開 +- 職場において不適切であると合理的に考えられる、その他の行為 ## 責任 @@ -43,4 +43,5 @@ この行動規範は、[コントリビューター行動規範][ホームページ]バージョン1.4(https://www.contributor-covenant.org/version/1/4/code-of-conduct.html)から抜粋したものです。 [ホームページ]: https://www.contributor-covenant.org + この行動規範に関するよくある質問と回答については、https://www.contributor-covenant.org/faq をご覧ください。 diff --git a/CODE-OF-CONDUCT.md b/CODE-OF-CONDUCT.md index 089f44649c..7c28045ce4 100644 --- a/CODE-OF-CONDUCT.md +++ b/CODE-OF-CONDUCT.md @@ -8,19 +8,19 @@ In the interest of fostering an open and welcoming environment, we as contributo Examples of behavior that contributes to creating a positive environment include: -* Using welcoming and inclusive language -* Being respectful of differing viewpoints and experiences -* Gracefully accepting constructive criticism -* Focusing on what is best for the community -* Showing empathy towards other community members +- Using welcoming and inclusive language +- Being respectful of differing viewpoints and experiences +- Gracefully accepting constructive criticism +- Focusing on what is best for the community +- Showing empathy towards other community members Examples of behavior that does not contribute to creating a positive environment include: -* Using sexualized language or imagery and unwelcome sexual attention or advances -* Trolling, insulting/derogatory comments, and personal or political attacks -* Public or private harassment -* Publishing others' private information, such as a physical or electronic address, without explicit permission -* Other conduct which could reasonably be considered inappropriate in a professional setting +- Using sexualized language or imagery and unwelcome sexual attention or advances +- Trolling, insulting/derogatory comments, and personal or political attacks +- Public or private harassment +- Publishing others' private information, such as a physical or electronic address, without explicit permission +- Other conduct which could reasonably be considered inappropriate in a professional setting ## Our Responsibilities diff --git a/CODE_OF_CONDUCT.es-ES.md b/CODE_OF_CONDUCT.es-ES.md index c8da32b3cf..ab368fcefa 100644 --- a/CODE_OF_CONDUCT.es-ES.md +++ b/CODE_OF_CONDUCT.es-ES.md @@ -8,19 +8,19 @@ Con el fin de fomentar un ambiente abierto y acogedor, nosotros, como contribuid Ejemplos de comportamiento que contribuyen a crear un ambiente positivo incluyen: -* Utilizar lenguaje acogedor e inclusivo -* Ser respetuoso con los diferentes puntos de vista y experiencias -* Saber aceptar las críticas constructivas -* Centrarse en lo que es lo mejor para la comunidad -* Mostrar empatía hacia otros miembros de la comunidad +- Utilizar lenguaje acogedor e inclusivo +- Ser respetuoso con los diferentes puntos de vista y experiencias +- Saber aceptar las críticas constructivas +- Centrarse en lo que es lo mejor para la comunidad +- Mostrar empatía hacia otros miembros de la comunidad Ejemplos de comportamiento que no contribuyen a crear un ambiente positivo incluyen: -* Utilizar un lenguaje o imágenes sexualizadas y atención o insinuaciones sexuales no deseadas -* Trolear, comentario insultantes/peyorativos y ataques personales o políticos -* Acoso público o en privado -* Publicar información privada de otras personas, así cómo direcciones físicas o electrónicas, sin permiso explícito -* Cualquier otra conducta que pueda ser razonablemente considerada inapropiada en un sentido profesional +- Utilizar un lenguaje o imágenes sexualizadas y atención o insinuaciones sexuales no deseadas +- Trolear, comentario insultantes/peyorativos y ataques personales o políticos +- Acoso público o en privado +- Publicar información privada de otras personas, así cómo direcciones físicas o electrónicas, sin permiso explícito +- Cualquier otra conducta que pueda ser razonablemente considerada inapropiada en un sentido profesional ## Nuestras responsabilidades diff --git a/CONTRIBUTING.es-ES.md b/CONTRIBUTING.es-ES.md index 4774d8e46e..48d5721c96 100644 --- a/CONTRIBUTING.es-ES.md +++ b/CONTRIBUTING.es-ES.md @@ -1,3 +1,3 @@ # Contribuir -Para obtener información sobre cómo contribuir a este repositorio, consulta [Contribute Documentation (XRPL.org)](https://xrpl.org/es_ES/contribute-documentation.html). \ No newline at end of file +Para obtener información sobre cómo contribuir a este repositorio, consulta [Contribute Documentation (XRPL.org)](https://xrpl.org/es_ES/contribute-documentation.html). diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 85fb84d060..1095b2b6db 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,3 +1,3 @@ # Contributing -For information about how to contribute to this repository, see [Contribute Documentation (XRPL.org)](https://xrpl.org/resources/contribute-documentation/). \ No newline at end of file +For information about how to contribute to this repository, see [Contribute Documentation (XRPL.org)](https://xrpl.org/resources/contribute-documentation/). diff --git a/README.md b/README.md index 63ef746e57..e69f2530ff 100644 --- a/README.md +++ b/README.md @@ -2,27 +2,27 @@ The [XRP Ledger Dev Portal](https://xrpl.org) is the authoritative source for XRP Ledger documentation, including the `rippled` server, client libraries, and other open-source XRP Ledger software. -The site is built and published using Redocly. +The site is built and published using Redocly. -NOTE: The toolchain used to build and publish the site has recently been migrated from Dactyl to Redocly. +NOTE: The toolchain used to build and publish the site has recently been migrated from Dactyl to Redocly. Before you proceed, make sure you have Node version >= 18 LTS. To build the site locally: -1. Clone the repo and change into its directory: +1. Clone the repo and change into its directory: git clone git@github.com:XRPLF/xrpl-dev-portal.git && cd xrpl-dev-portal -2. Install **Redocly Realm**: +2. Install **Redocly Realm**: npm install @redocly/realm -3. Switch to the `master` branch if you aren't on it already. - +3. Switch to the `master` branch if you aren't on it already. + git switch master -4. Build and start a local server: +4. Build and start a local server: npm start @@ -32,32 +32,31 @@ For more details, see the [contribution guidelines (EN)](CONTRIBUTING.md) ([日 If you make changes to the [Domain Verification Checker](https://xrpl.org/validator-domain-verifier.html) tool and edit the domain-verifier-checker.js file, you will need to do the following: -1. Install [webpack](https://webpack.js.org/) and required libraries via npm: +1. Install [webpack](https://webpack.js.org/) and required libraries via npm: npm install webpack webpack-cli --save-dev npm install ripple-binary-codec ripple-address-codec ripple-keypairs -2. From the project root directory (this step may be different depending on how you installed webpack) +2. From the project root directory (this step may be different depending on how you installed webpack) cd assets/js webpack-cli domain-verifier-checker.js --optimize-minimize -o domain-verifier-bundle.js -3. Build the site: +3. Build the site: npm start +### Internationalization -### Internationalization - -This repo includes English (en) and Japanese (ja) locales. +This repo includes English (en) and Japanese (ja) locales. This is done by setting up the internationalization (@l10n) folders, adding the `i18n` configuration to your `redocly.yaml` file, and adding the translated content in the respective language directory under the @l10n directory. To add support for a new language: -1. Create a new subdirectory in the @l10n directory of the portal. For example, to add support for Spanish, create a new subdirectory "es-ES". +1. Create a new subdirectory in the @l10n directory of the portal. For example, to add support for Spanish, create a new subdirectory "es-ES". -2. Update the i18n configuration in your `redocly.yaml` file defining the display labels for the different languages you support. +2. Update the i18n configuration in your `redocly.yaml` file defining the display labels for the different languages you support. l10n: defaultLocale: en-US @@ -69,17 +68,17 @@ To add support for a new language: - code: es-ES name: Spanish -3. Add the translated content in the respective language directory under the @l10n directory. +3. Add the translated content in the respective language directory under the @l10n directory. The relative path from the language directory to the translated file must be the same as the relative path from the root of the portal to the file in the default language. For example, if you originally had a file with path `path/to/my/markdown.md`, the file translated to Spanish must be /`@l10n/es-ES/path/to/my/markdown.md`. ## Issues, Projects, and Project Boards -Use GitHub Issues under the [`xrpl-dev-portal`](https://github.com/XRPLF/xrpl-dev-portal) repository to report bugs, feature requests, and suggestions for the XRP Ledger Documentation or the `xrpl.org` website. +Use GitHub Issues under the [`xrpl-dev-portal`](https://github.com/XRPLF/xrpl-dev-portal) repository to report bugs, feature requests, and suggestions for the XRP Ledger Documentation or the `xrpl.org` website. For issues related to `rippled` or client libraries (`xrpl.js`, `xrpl-py`, and others), use the respective source repository under [`https://github.com/XRPLF`](https://github.com/XRPLF). -If you are a contributor, use GitHub Projects and Project Boards to plan and track updates to xrpl.org. +If you are a contributor, use GitHub Projects and Project Boards to plan and track updates to xrpl.org. ### Project Board `xrpl-docs` @@ -87,15 +86,14 @@ The [`xrpl-docs`](https://github.com/orgs/XRPLF/projects/4) Kanban board is used The `xrpl-docs` board has six columns based on the status of issues in this repository: -* **No Status**: New or existing issues that no one has triaged yet. +- **No Status**: New or existing issues that no one has triaged yet. -* **Backlog**: Issues that represent tasks to be done eventually. They should contain actionable and helpful information for a contributor to work on addressing the issue. +- **Backlog**: Issues that represent tasks to be done eventually. They should contain actionable and helpful information for a contributor to work on addressing the issue. -* **Planned**: Issues with assignees who plan to address them in the near future, like 2-4 weeks. +- **Planned**: Issues with assignees who plan to address them in the near future, like 2-4 weeks. -* **In Progress**: Issues that a contributor is actively working on. +- **In Progress**: Issues that a contributor is actively working on. -* **In Review**: Issues with a proposed fix that is currently being reviewed. These should be associated with an open pull request. - -* **Done**: Issues that have been completed, whose related content updates have been merged. +- **In Review**: Issues with a proposed fix that is currently being reviewed. These should be associated with an open pull request. +- **Done**: Issues that have been completed, whose related content updates have been merged. diff --git a/_api-examples/account_lines/jsonrpc-response.json b/_api-examples/account_lines/jsonrpc-response.json index 7fa661bc95..f3211972d2 100644 --- a/_api-examples/account_lines/jsonrpc-response.json +++ b/_api-examples/account_lines/jsonrpc-response.json @@ -1,274 +1,274 @@ { - "result": { - "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "ledger_current_index": 95348091, - "lines": [ - { - "account": "r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z", - "balance": "0", - "currency": "ASP", - "limit": "0", - "limit_peer": "10", - "no_ripple": false, - "no_ripple_peer": false, - "quality_in": 0, - "quality_out": 0 - }, - { - "account": "r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z", - "balance": "0", - "currency": "XAU", - "limit": "0", - "limit_peer": "0", - "no_ripple": true, - "no_ripple_peer": true, - "quality_in": 0, - "quality_out": 0 - }, - { - "account": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "balance": "5", - "currency": "USD", - "limit": "5", - "limit_peer": "0", - "no_ripple": true, - "no_ripple_peer": false, - "quality_in": 0, - "quality_out": 0 - }, - { - "account": "rHpXfibHgSb64n8kK9QWDpdbfqSpYbM9a4", - "balance": "481.992867407479", - "currency": "MXN", - "limit": "1000", - "limit_peer": "0", - "no_ripple": false, - "no_ripple_peer": false, - "quality_in": 0, - "quality_out": 0 - }, - { - "account": "rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", - "balance": "0.793598266778297", - "currency": "EUR", - "limit": "1", - "limit_peer": "0", - "no_ripple": true, - "no_ripple_peer": false, - "quality_in": 0, - "quality_out": 0 - }, - { - "account": "rnuF96W4SZoCJmbHYBFoJZpR8eCaxNvekK", - "balance": "0", - "currency": "CNY", - "limit": "3", - "limit_peer": "0", - "no_ripple": true, - "no_ripple_peer": false, - "quality_in": 0, - "quality_out": 0 - }, - { - "account": "rGwUWgN5BEg3QGNY3RX2HfYowjUTZdid3E", - "balance": "1.336889190631542", - "currency": "DYM", - "limit": "3", - "limit_peer": "0", - "no_ripple": false, - "no_ripple_peer": false, - "quality_in": 0, - "quality_out": 0 - }, - { - "account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "balance": "0.3488146605801446", - "currency": "CHF", - "limit": "0", - "limit_peer": "0", - "no_ripple": false, - "no_ripple_peer": false, - "quality_in": 0, - "quality_out": 0 - }, - { - "account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "balance": "0", - "currency": "BTC", - "limit": "3", - "limit_peer": "0", - "no_ripple": false, - "no_ripple_peer": false, - "quality_in": 0, - "quality_out": 0 - }, - { - "account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "balance": "11.68225001668339", - "currency": "USD", - "limit": "5000", - "limit_peer": "0", - "no_ripple": false, - "no_ripple_peer": false, - "quality_in": 0, - "quality_out": 0 - }, - { - "account": "rpgKWEmNqSDAGFhy5WDnsyPqfQxbWxKeVd", - "balance": "-0.00111", - "currency": "BTC", - "limit": "0", - "limit_peer": "10", - "no_ripple": false, - "no_ripple_peer": false, - "quality_in": 0, - "quality_out": 0 - }, - { - "account": "rBJ3YjwXi2MGbg7GVLuTXUWQ8DjL7tDXh4", - "balance": "-0.0008744482690504699", - "currency": "BTC", - "limit": "0", - "limit_peer": "10", - "no_ripple": false, - "no_ripple_peer": false, - "quality_in": 0, - "quality_out": 0 - }, - { - "account": "rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", - "balance": "0", - "currency": "USD", - "limit": "1", - "limit_peer": "0", - "no_ripple": false, - "no_ripple_peer": false, - "quality_in": 0, - "quality_out": 0 - }, - { - "account": "razqQKzJRdB4UxFPWf5NEpEG3WMkmwgcXA", - "balance": "9.07619790068559", - "currency": "CNY", - "limit": "100", - "limit_peer": "0", - "no_ripple": true, - "no_ripple_peer": false, - "quality_in": 0, - "quality_out": 0 - }, - { - "account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "balance": "7.292695098901099", - "currency": "JPY", - "limit": "0", - "limit_peer": "0", - "no_ripple": true, - "no_ripple_peer": false, - "quality_in": 0, - "quality_out": 0 - }, - { - "account": "r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z", - "balance": "0", - "currency": "AUX", - "limit": "0", - "limit_peer": "0", - "no_ripple": true, - "no_ripple_peer": true, - "quality_in": 0, - "quality_out": 0 - }, - { - "account": "r9vbV3EHvXWjSkeQ6CAcYVPGeq7TuiXY2X", - "balance": "0.0004557360418801623", - "currency": "USD", - "limit": "1", - "limit_peer": "0", - "no_ripple": true, - "no_ripple_peer": false, - "quality_in": 0, - "quality_out": 0 - }, - { - "account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "balance": "12.41688780720394", - "currency": "EUR", - "limit": "100", - "limit_peer": "0", - "no_ripple": true, - "no_ripple_peer": false, - "quality_in": 0, - "quality_out": 0 - }, - { - "account": "rfF3PNkwkq1DygW2wum2HK3RGfgkJjdPVD", - "balance": "35", - "currency": "USD", - "limit": "500", - "limit_peer": "0", - "no_ripple": true, - "no_ripple_peer": false, - "quality_in": 0, - "quality_out": 0 - }, - { - "account": "rwUVoVMSURqNyvocPCcvLu3ygJzZyw8qwp", - "balance": "-5", - "currency": "JOE", - "limit": "0", - "limit_peer": "50", - "no_ripple": false, - "no_ripple_peer": true, - "quality_in": 0, - "quality_out": 0 - }, - { - "account": "rE6R3DWF9fBD7CyiQciePF9SqK58Ubp8o2", - "balance": "0", - "currency": "USD", - "limit": "0", - "limit_peer": "100", - "no_ripple": false, - "no_ripple_peer": true, - "quality_in": 0, - "quality_out": 0 - }, - { - "account": "rE6R3DWF9fBD7CyiQciePF9SqK58Ubp8o2", - "balance": "0", - "currency": "JOE", - "limit": "0", - "limit_peer": "100", - "no_ripple": false, - "no_ripple_peer": true, - "quality_in": 0, - "quality_out": 0 - }, - { - "account": "rs9M85karFkCRjvc6KMWn8Coigm9cbcgcx", - "balance": "0", - "currency": "015841551A748AD2C1F76FF6ECB0CCCD00000000", - "limit": "10.01037626125837", - "limit_peer": "0", - "no_ripple": true, - "no_ripple_peer": false, - "quality_in": 0, - "quality_out": 0 - }, - { - "account": "rEhDDUUNxpXgEHVJtC2cjXAgyx5VCFxdMF", - "balance": "0", - "currency": "USD", - "limit": "0", - "limit_peer": "1", - "no_ripple": false, - "no_ripple_peer": false, - "quality_in": 0, - "quality_out": 0 - } - ], - "status": "success", - "validated": false - } + "result": { + "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "ledger_current_index": 95348091, + "lines": [ + { + "account": "r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z", + "balance": "0", + "currency": "ASP", + "limit": "0", + "limit_peer": "10", + "no_ripple": false, + "no_ripple_peer": false, + "quality_in": 0, + "quality_out": 0 + }, + { + "account": "r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z", + "balance": "0", + "currency": "XAU", + "limit": "0", + "limit_peer": "0", + "no_ripple": true, + "no_ripple_peer": true, + "quality_in": 0, + "quality_out": 0 + }, + { + "account": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "balance": "5", + "currency": "USD", + "limit": "5", + "limit_peer": "0", + "no_ripple": true, + "no_ripple_peer": false, + "quality_in": 0, + "quality_out": 0 + }, + { + "account": "rHpXfibHgSb64n8kK9QWDpdbfqSpYbM9a4", + "balance": "481.992867407479", + "currency": "MXN", + "limit": "1000", + "limit_peer": "0", + "no_ripple": false, + "no_ripple_peer": false, + "quality_in": 0, + "quality_out": 0 + }, + { + "account": "rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", + "balance": "0.793598266778297", + "currency": "EUR", + "limit": "1", + "limit_peer": "0", + "no_ripple": true, + "no_ripple_peer": false, + "quality_in": 0, + "quality_out": 0 + }, + { + "account": "rnuF96W4SZoCJmbHYBFoJZpR8eCaxNvekK", + "balance": "0", + "currency": "CNY", + "limit": "3", + "limit_peer": "0", + "no_ripple": true, + "no_ripple_peer": false, + "quality_in": 0, + "quality_out": 0 + }, + { + "account": "rGwUWgN5BEg3QGNY3RX2HfYowjUTZdid3E", + "balance": "1.336889190631542", + "currency": "DYM", + "limit": "3", + "limit_peer": "0", + "no_ripple": false, + "no_ripple_peer": false, + "quality_in": 0, + "quality_out": 0 + }, + { + "account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "balance": "0.3488146605801446", + "currency": "CHF", + "limit": "0", + "limit_peer": "0", + "no_ripple": false, + "no_ripple_peer": false, + "quality_in": 0, + "quality_out": 0 + }, + { + "account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "balance": "0", + "currency": "BTC", + "limit": "3", + "limit_peer": "0", + "no_ripple": false, + "no_ripple_peer": false, + "quality_in": 0, + "quality_out": 0 + }, + { + "account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "balance": "11.68225001668339", + "currency": "USD", + "limit": "5000", + "limit_peer": "0", + "no_ripple": false, + "no_ripple_peer": false, + "quality_in": 0, + "quality_out": 0 + }, + { + "account": "rpgKWEmNqSDAGFhy5WDnsyPqfQxbWxKeVd", + "balance": "-0.00111", + "currency": "BTC", + "limit": "0", + "limit_peer": "10", + "no_ripple": false, + "no_ripple_peer": false, + "quality_in": 0, + "quality_out": 0 + }, + { + "account": "rBJ3YjwXi2MGbg7GVLuTXUWQ8DjL7tDXh4", + "balance": "-0.0008744482690504699", + "currency": "BTC", + "limit": "0", + "limit_peer": "10", + "no_ripple": false, + "no_ripple_peer": false, + "quality_in": 0, + "quality_out": 0 + }, + { + "account": "rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", + "balance": "0", + "currency": "USD", + "limit": "1", + "limit_peer": "0", + "no_ripple": false, + "no_ripple_peer": false, + "quality_in": 0, + "quality_out": 0 + }, + { + "account": "razqQKzJRdB4UxFPWf5NEpEG3WMkmwgcXA", + "balance": "9.07619790068559", + "currency": "CNY", + "limit": "100", + "limit_peer": "0", + "no_ripple": true, + "no_ripple_peer": false, + "quality_in": 0, + "quality_out": 0 + }, + { + "account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "balance": "7.292695098901099", + "currency": "JPY", + "limit": "0", + "limit_peer": "0", + "no_ripple": true, + "no_ripple_peer": false, + "quality_in": 0, + "quality_out": 0 + }, + { + "account": "r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z", + "balance": "0", + "currency": "AUX", + "limit": "0", + "limit_peer": "0", + "no_ripple": true, + "no_ripple_peer": true, + "quality_in": 0, + "quality_out": 0 + }, + { + "account": "r9vbV3EHvXWjSkeQ6CAcYVPGeq7TuiXY2X", + "balance": "0.0004557360418801623", + "currency": "USD", + "limit": "1", + "limit_peer": "0", + "no_ripple": true, + "no_ripple_peer": false, + "quality_in": 0, + "quality_out": 0 + }, + { + "account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "balance": "12.41688780720394", + "currency": "EUR", + "limit": "100", + "limit_peer": "0", + "no_ripple": true, + "no_ripple_peer": false, + "quality_in": 0, + "quality_out": 0 + }, + { + "account": "rfF3PNkwkq1DygW2wum2HK3RGfgkJjdPVD", + "balance": "35", + "currency": "USD", + "limit": "500", + "limit_peer": "0", + "no_ripple": true, + "no_ripple_peer": false, + "quality_in": 0, + "quality_out": 0 + }, + { + "account": "rwUVoVMSURqNyvocPCcvLu3ygJzZyw8qwp", + "balance": "-5", + "currency": "JOE", + "limit": "0", + "limit_peer": "50", + "no_ripple": false, + "no_ripple_peer": true, + "quality_in": 0, + "quality_out": 0 + }, + { + "account": "rE6R3DWF9fBD7CyiQciePF9SqK58Ubp8o2", + "balance": "0", + "currency": "USD", + "limit": "0", + "limit_peer": "100", + "no_ripple": false, + "no_ripple_peer": true, + "quality_in": 0, + "quality_out": 0 + }, + { + "account": "rE6R3DWF9fBD7CyiQciePF9SqK58Ubp8o2", + "balance": "0", + "currency": "JOE", + "limit": "0", + "limit_peer": "100", + "no_ripple": false, + "no_ripple_peer": true, + "quality_in": 0, + "quality_out": 0 + }, + { + "account": "rs9M85karFkCRjvc6KMWn8Coigm9cbcgcx", + "balance": "0", + "currency": "015841551A748AD2C1F76FF6ECB0CCCD00000000", + "limit": "10.01037626125837", + "limit_peer": "0", + "no_ripple": true, + "no_ripple_peer": false, + "quality_in": 0, + "quality_out": 0 + }, + { + "account": "rEhDDUUNxpXgEHVJtC2cjXAgyx5VCFxdMF", + "balance": "0", + "currency": "USD", + "limit": "0", + "limit_peer": "1", + "no_ripple": false, + "no_ripple_peer": false, + "quality_in": 0, + "quality_out": 0 + } + ], + "status": "success", + "validated": false + } } diff --git a/_api-examples/book_changes/jsonrpc-response.json b/_api-examples/book_changes/jsonrpc-response.json index 00d4a8dd4e..7dd17e02b5 100644 --- a/_api-examples/book_changes/jsonrpc-response.json +++ b/_api-examples/book_changes/jsonrpc-response.json @@ -1,71 +1,71 @@ { - "result" : { - "changes" : [ - { - "close" : "277777.7777777778", - "currency_a" : "XRP_drops", - "currency_b" : "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y/CNY", - "high" : "277777.7777777778", - "low" : "277777.7777777778", - "open" : "277777.7777777778", - "volume_a" : "44082741", - "volume_b" : "158.6978676" - }, - { - "close" : "202999.9948135647", - "currency_a" : "XRP_drops", - "currency_b" : "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y/XLM", - "high" : "202999.9948135647", - "low" : "202999.9948135647", - "open" : "202999.9948135647", - "volume_a" : "44191586", - "volume_b" : "217.6925474337355" - }, - { - "close" : "80475.34586323083", - "currency_a" : "XRP_drops", - "currency_b" : "rf5YPb9y9P3fTjhxNaZqmrwaj5ar8PG1gM/47414C4100000000000000000000000000000000", - "high" : "80475.34586323083", - "low" : "80475.34586323083", - "open" : "80475.34586323083", - "volume_a" : "100000000", - "volume_b" : "1242.61659179386" - }, - { - "close" : "231974.7481608686", - "currency_a" : "XRP_drops", - "currency_b" : "rsoLo2S1kiGeCcn6hCUXVrCpGMWLrRrLZz/534F4C4F00000000000000000000000000000000", - "high" : "231974.7481608686", - "low" : "231974.7481608686", - "open" : "231974.7481608686", - "volume_a" : "33734", - "volume_b" : "0.1454210006367" - }, - { - "close" : "7.290000000001503", - "currency_a" : "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y/CNY", - "currency_b" : "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y/USD", - "high" : "7.290000000001503", - "low" : "7.290000000001503", - "open" : "7.290000000001503", - "volume_a" : "158.6978670792", - "volume_b" : "21.76925474337" - }, - { - "close" : "0.1", - "currency_a" : "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y/USD", - "currency_b" : "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y/XLM", - "high" : "0.1", - "low" : "0.1", - "open" : "0.1", - "volume_a" : "21.76925474337355", - "volume_b" : "217.6925474337355" - } - ], - "ledger_hash" : "7AB08A2415C10E07201521F3260F77ADFF4902A528EA66378E259A07767A24B9", - "ledger_index" : 88530953, - "ledger_time" : 771100891, - "status" : "success", - "type" : "bookChanges" - } + "result": { + "changes": [ + { + "close": "277777.7777777778", + "currency_a": "XRP_drops", + "currency_b": "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y/CNY", + "high": "277777.7777777778", + "low": "277777.7777777778", + "open": "277777.7777777778", + "volume_a": "44082741", + "volume_b": "158.6978676" + }, + { + "close": "202999.9948135647", + "currency_a": "XRP_drops", + "currency_b": "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y/XLM", + "high": "202999.9948135647", + "low": "202999.9948135647", + "open": "202999.9948135647", + "volume_a": "44191586", + "volume_b": "217.6925474337355" + }, + { + "close": "80475.34586323083", + "currency_a": "XRP_drops", + "currency_b": "rf5YPb9y9P3fTjhxNaZqmrwaj5ar8PG1gM/47414C4100000000000000000000000000000000", + "high": "80475.34586323083", + "low": "80475.34586323083", + "open": "80475.34586323083", + "volume_a": "100000000", + "volume_b": "1242.61659179386" + }, + { + "close": "231974.7481608686", + "currency_a": "XRP_drops", + "currency_b": "rsoLo2S1kiGeCcn6hCUXVrCpGMWLrRrLZz/534F4C4F00000000000000000000000000000000", + "high": "231974.7481608686", + "low": "231974.7481608686", + "open": "231974.7481608686", + "volume_a": "33734", + "volume_b": "0.1454210006367" + }, + { + "close": "7.290000000001503", + "currency_a": "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y/CNY", + "currency_b": "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y/USD", + "high": "7.290000000001503", + "low": "7.290000000001503", + "open": "7.290000000001503", + "volume_a": "158.6978670792", + "volume_b": "21.76925474337" + }, + { + "close": "0.1", + "currency_a": "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y/USD", + "currency_b": "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y/XLM", + "high": "0.1", + "low": "0.1", + "open": "0.1", + "volume_a": "21.76925474337355", + "volume_b": "217.6925474337355" + } + ], + "ledger_hash": "7AB08A2415C10E07201521F3260F77ADFF4902A528EA66378E259A07767A24B9", + "ledger_index": 88530953, + "ledger_time": 771100891, + "status": "success", + "type": "bookChanges" + } } diff --git a/_api-examples/book_changes/ws-response.json b/_api-examples/book_changes/ws-response.json index c50d1c3ea5..cb46edf15e 100644 --- a/_api-examples/book_changes/ws-response.json +++ b/_api-examples/book_changes/ws-response.json @@ -1,80 +1,80 @@ { - "result": { - "type": "bookChanges", - "ledger_hash": "7AB08A2415C10E07201521F3260F77ADFF4902A528EA66378E259A07767A24B9", - "ledger_index": 88530953, - "ledger_time": 771100891, - "validated": true, - "changes": [ - { - "currency_a": "XRP_drops", - "currency_b": "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y/CNY", - "volume_a": "44082741", - "volume_b": "158.6978676", - "high": "277777.7777777778", - "low": "277777.7777777778", - "open": "277777.7777777778", - "close": "277777.7777777778" - }, - { - "currency_a": "XRP_drops", - "currency_b": "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y/XLM", - "volume_a": "44191586", - "volume_b": "217.6925474337355", - "high": "202999.9948135647", - "low": "202999.9948135647", - "open": "202999.9948135647", - "close": "202999.9948135647" - }, - { - "currency_a": "XRP_drops", - "currency_b": "rf5YPb9y9P3fTjhxNaZqmrwaj5ar8PG1gM/47414C4100000000000000000000000000000000", - "volume_a": "100000000", - "volume_b": "1242.61659179386", - "high": "80475.34586323083", - "low": "80475.34586323083", - "open": "80475.34586323083", - "close": "80475.34586323083" - }, - { - "currency_a": "XRP_drops", - "currency_b": "rsoLo2S1kiGeCcn6hCUXVrCpGMWLrRrLZz/534F4C4F00000000000000000000000000000000", - "volume_a": "33734", - "volume_b": "0.1454210006367", - "high": "231974.7481608686", - "low": "231974.7481608686", - "open": "231974.7481608686", - "close": "231974.7481608686" - }, - { - "currency_a": "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y/CNY", - "currency_b": "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y/USD", - "volume_a": "158.6978670792", - "volume_b": "21.76925474337", - "high": "7.290000000001503", - "low": "7.290000000001503", - "open": "7.290000000001503", - "close": "7.290000000001503" - }, - { - "currency_a": "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y/USD", - "currency_b": "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y/XLM", - "volume_a": "21.76925474337355", - "volume_b": "217.6925474337355", - "high": "0.1", - "low": "0.1", - "open": "0.1", - "close": "0.1" - } - ] - }, - "id": "example_book_changes", - "status": "success", - "type": "response", - "warnings": [ + "result": { + "type": "bookChanges", + "ledger_hash": "7AB08A2415C10E07201521F3260F77ADFF4902A528EA66378E259A07767A24B9", + "ledger_index": 88530953, + "ledger_time": 771100891, + "validated": true, + "changes": [ { - "id": 2001, - "message": "This is a clio server. clio only serves validated data. If you want to talk to rippled, include 'ledger_index':'current' in your request" + "currency_a": "XRP_drops", + "currency_b": "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y/CNY", + "volume_a": "44082741", + "volume_b": "158.6978676", + "high": "277777.7777777778", + "low": "277777.7777777778", + "open": "277777.7777777778", + "close": "277777.7777777778" + }, + { + "currency_a": "XRP_drops", + "currency_b": "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y/XLM", + "volume_a": "44191586", + "volume_b": "217.6925474337355", + "high": "202999.9948135647", + "low": "202999.9948135647", + "open": "202999.9948135647", + "close": "202999.9948135647" + }, + { + "currency_a": "XRP_drops", + "currency_b": "rf5YPb9y9P3fTjhxNaZqmrwaj5ar8PG1gM/47414C4100000000000000000000000000000000", + "volume_a": "100000000", + "volume_b": "1242.61659179386", + "high": "80475.34586323083", + "low": "80475.34586323083", + "open": "80475.34586323083", + "close": "80475.34586323083" + }, + { + "currency_a": "XRP_drops", + "currency_b": "rsoLo2S1kiGeCcn6hCUXVrCpGMWLrRrLZz/534F4C4F00000000000000000000000000000000", + "volume_a": "33734", + "volume_b": "0.1454210006367", + "high": "231974.7481608686", + "low": "231974.7481608686", + "open": "231974.7481608686", + "close": "231974.7481608686" + }, + { + "currency_a": "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y/CNY", + "currency_b": "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y/USD", + "volume_a": "158.6978670792", + "volume_b": "21.76925474337", + "high": "7.290000000001503", + "low": "7.290000000001503", + "open": "7.290000000001503", + "close": "7.290000000001503" + }, + { + "currency_a": "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y/USD", + "currency_b": "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y/XLM", + "volume_a": "21.76925474337355", + "volume_b": "217.6925474337355", + "high": "0.1", + "low": "0.1", + "open": "0.1", + "close": "0.1" } ] - } + }, + "id": "example_book_changes", + "status": "success", + "type": "response", + "warnings": [ + { + "id": 2001, + "message": "This is a clio server. clio only serves validated data. If you want to talk to rippled, include 'ledger_index':'current' in your request" + } + ] +} diff --git a/_api-examples/escrow/websocket/account_objects-response.json b/_api-examples/escrow/websocket/account_objects-response.json index 55abd09bc1..5ad60eae20 100644 --- a/_api-examples/escrow/websocket/account_objects-response.json +++ b/_api-examples/escrow/websocket/account_objects-response.json @@ -2,55 +2,60 @@ "id": 5, "result": { "account": "rfztBskAVszuS3s5Kq7zDS74QtHrw893fm", - "account_objects": [{ - "Account": "rafD3taonqdnVpaxCCT6sjnScZUeFGf1JG", - "Amount": "250", - "Destination": "rfztBskAVszuS3s5Kq7zDS74QtHrw893fm", - "DestinationNode": "0000000000000000", - "FinishAfter": 570672000, - "Flags": 0, - "LedgerEntryType": "Escrow", - "OwnerNode": "0000000000000000", - "PreviousTxnID": "A0951691DF3BCBEEB3108F2229A702D078BBBF848268BC601E59B68A2E390AAC", - "PreviousTxnLgrSeq": 4602906, - "index": "2BF3226ACCA8FF7ACB7201F20A701F51D8666A2FA2FBFBE6A05C9161F9228A18" - }, { - "Account": "rfztBskAVszuS3s5Kq7zDS74QtHrw893fm", - "Amount": "250", - "Destination": "r9gyNNzhMtfwZara61u3ycfMLdkTpKJZHX", - "DestinationNode": "0000000000000000", - "FinishAfter": 570672000, - "Flags": 0, - "LedgerEntryType": "Escrow", - "OwnerNode": "0000000000000000", - "PreviousTxnID": "463D5A3CF09F4890B8471027F80414B3B438E6907425B71DC324D7118E90A107", - "PreviousTxnLgrSeq": 4603003, - "index": "35462CDC28AD830B29D101E8307AF5B6BFBC262F1BDCCA7EB45D1CA3F8B44F53" - }, { - "Account": "r9gyNNzhMtfwZara61u3ycfMLdkTpKJZHX", - "Amount": "250", - "Destination": "rfztBskAVszuS3s5Kq7zDS74QtHrw893fm", - "DestinationNode": "0000000000000000", - "FinishAfter": 570672000, - "Flags": 0, - "LedgerEntryType": "Escrow", - "OwnerNode": "0000000000000000", - "PreviousTxnID": "08C9B20AC9EB191238038A108CC4CBBC0243672484B466FB42DED0A7DF6A31A1", - "PreviousTxnLgrSeq": 4602954, - "index": "A7B0983A1B53D92278E21499064A4F8BBE08CB8D14DB6BBBA8F688AB1D3FDA45" - }, { - "Account": "rfztBskAVszuS3s5Kq7zDS74QtHrw893fm", - "Amount": "250", - "Destination": "rafD3taonqdnVpaxCCT6sjnScZUeFGf1JG", - "DestinationNode": "0000000000000000", - "FinishAfter": 570672000, - "Flags": 0, - "LedgerEntryType": "Escrow", - "OwnerNode": "0000000000000000", - "PreviousTxnID": "F4778F528AB3CB945BDB88036EF9FE6C0E899F1629D9E51129E3B93CD488395A", - "PreviousTxnLgrSeq": 4602977, - "index": "F99A4DDADDDF623908C9A048170AB107AFF78684AB8F3110E9F00BBBC606ABD2" - }], + "account_objects": [ + { + "Account": "rafD3taonqdnVpaxCCT6sjnScZUeFGf1JG", + "Amount": "250", + "Destination": "rfztBskAVszuS3s5Kq7zDS74QtHrw893fm", + "DestinationNode": "0000000000000000", + "FinishAfter": 570672000, + "Flags": 0, + "LedgerEntryType": "Escrow", + "OwnerNode": "0000000000000000", + "PreviousTxnID": "A0951691DF3BCBEEB3108F2229A702D078BBBF848268BC601E59B68A2E390AAC", + "PreviousTxnLgrSeq": 4602906, + "index": "2BF3226ACCA8FF7ACB7201F20A701F51D8666A2FA2FBFBE6A05C9161F9228A18" + }, + { + "Account": "rfztBskAVszuS3s5Kq7zDS74QtHrw893fm", + "Amount": "250", + "Destination": "r9gyNNzhMtfwZara61u3ycfMLdkTpKJZHX", + "DestinationNode": "0000000000000000", + "FinishAfter": 570672000, + "Flags": 0, + "LedgerEntryType": "Escrow", + "OwnerNode": "0000000000000000", + "PreviousTxnID": "463D5A3CF09F4890B8471027F80414B3B438E6907425B71DC324D7118E90A107", + "PreviousTxnLgrSeq": 4603003, + "index": "35462CDC28AD830B29D101E8307AF5B6BFBC262F1BDCCA7EB45D1CA3F8B44F53" + }, + { + "Account": "r9gyNNzhMtfwZara61u3ycfMLdkTpKJZHX", + "Amount": "250", + "Destination": "rfztBskAVszuS3s5Kq7zDS74QtHrw893fm", + "DestinationNode": "0000000000000000", + "FinishAfter": 570672000, + "Flags": 0, + "LedgerEntryType": "Escrow", + "OwnerNode": "0000000000000000", + "PreviousTxnID": "08C9B20AC9EB191238038A108CC4CBBC0243672484B466FB42DED0A7DF6A31A1", + "PreviousTxnLgrSeq": 4602954, + "index": "A7B0983A1B53D92278E21499064A4F8BBE08CB8D14DB6BBBA8F688AB1D3FDA45" + }, + { + "Account": "rfztBskAVszuS3s5Kq7zDS74QtHrw893fm", + "Amount": "250", + "Destination": "rafD3taonqdnVpaxCCT6sjnScZUeFGf1JG", + "DestinationNode": "0000000000000000", + "FinishAfter": 570672000, + "Flags": 0, + "LedgerEntryType": "Escrow", + "OwnerNode": "0000000000000000", + "PreviousTxnID": "F4778F528AB3CB945BDB88036EF9FE6C0E899F1629D9E51129E3B93CD488395A", + "PreviousTxnLgrSeq": 4602977, + "index": "F99A4DDADDDF623908C9A048170AB107AFF78684AB8F3110E9F00BBBC606ABD2" + } + ], "ledger_hash": "1D4850035F175CA6F1CD5CE3B53C01AA83E4F086C13085E4FBC1EEFCCB345A9B", "ledger_index": 4603176, "validated": true diff --git a/_api-examples/escrow/websocket/submit-request-escrowcreate-time.json b/_api-examples/escrow/websocket/submit-request-escrowcreate-time.json index b85ddd1de5..c2417c0285 100644 --- a/_api-examples/escrow/websocket/submit-request-escrowcreate-time.json +++ b/_api-examples/escrow/websocket/submit-request-escrowcreate-time.json @@ -3,10 +3,10 @@ "command": "submit", "secret": "s████████████████████████████", "tx_json": { - "Account": "rajgkBmMxmz161r8bWYH7CQAFZP5bA9oSG", - "TransactionType": "EscrowCreate", - "Amount": "10000", - "Destination": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "FinishAfter": 557020800 + "Account": "rajgkBmMxmz161r8bWYH7CQAFZP5bA9oSG", + "TransactionType": "EscrowCreate", + "Amount": "10000", + "Destination": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "FinishAfter": 557020800 } } diff --git a/_api-examples/ledger-clio/jsonrpc-request.json b/_api-examples/ledger-clio/jsonrpc-request.json index cd0def019a..2f5ebb20af 100644 --- a/_api-examples/ledger-clio/jsonrpc-request.json +++ b/_api-examples/ledger-clio/jsonrpc-request.json @@ -1,13 +1,13 @@ { - "method": "ledger", - "params": [ - { - "ledger_index": "validated", - "transactions": false, - "expand": false, - "owner_funds": false, - "diff": false, - "api_version": 2 - } - ] -} \ No newline at end of file + "method": "ledger", + "params": [ + { + "ledger_index": "validated", + "transactions": false, + "expand": false, + "owner_funds": false, + "diff": false, + "api_version": 2 + } + ] +} diff --git a/_api-examples/ledger-clio/jsonrpc-response.json b/_api-examples/ledger-clio/jsonrpc-response.json index 08ad9bfd0e..6bf1010a86 100644 --- a/_api-examples/ledger-clio/jsonrpc-response.json +++ b/_api-examples/ledger-clio/jsonrpc-response.json @@ -26,4 +26,4 @@ "message": "This is a clio server. clio only serves validated data. If you want to talk to rippled, include 'ledger_index':'current' in your request" } ] -} \ No newline at end of file +} diff --git a/_api-examples/ledger-clio/wsrpc-request.json b/_api-examples/ledger-clio/wsrpc-request.json index 1598695ab3..248ab09818 100644 --- a/_api-examples/ledger-clio/wsrpc-request.json +++ b/_api-examples/ledger-clio/wsrpc-request.json @@ -1,9 +1,9 @@ { - "id": "example_ledger_req", - "command": "ledger", - "ledger_index": "validated", - "transactions": false, - "expand": false, - "owner_funds": false, - "api_version": 2 -} \ No newline at end of file + "id": "example_ledger_req", + "command": "ledger", + "ledger_index": "validated", + "transactions": false, + "expand": false, + "owner_funds": false, + "api_version": 2 +} diff --git a/_api-examples/ledger-clio/wsrpc-response.json b/_api-examples/ledger-clio/wsrpc-response.json index f1375a59ba..fed332046b 100644 --- a/_api-examples/ledger-clio/wsrpc-response.json +++ b/_api-examples/ledger-clio/wsrpc-response.json @@ -29,4 +29,4 @@ "message": "This is a clio server. clio only serves validated data. If you want to talk to rippled, include 'ledger_index':'current' in your request" } ] -} \ No newline at end of file +} diff --git a/_api-examples/ledger/jsonrpc-response.json b/_api-examples/ledger/jsonrpc-response.json index 0cdd239bc6..a56e71da90 100644 --- a/_api-examples/ledger/jsonrpc-response.json +++ b/_api-examples/ledger/jsonrpc-response.json @@ -20,4 +20,4 @@ }, "status": "success" } -} \ No newline at end of file +} diff --git a/_api-examples/ledger/ws-response.json b/_api-examples/ledger/ws-response.json index 44b28f8bc3..9e16c43516 100644 --- a/_api-examples/ledger/ws-response.json +++ b/_api-examples/ledger/ws-response.json @@ -23,4 +23,4 @@ "api_version": 2, "status": "success", "type": "response" -} \ No newline at end of file +} diff --git a/_api-examples/ledger_index/ws-response.json b/_api-examples/ledger_index/ws-response.json index 293a248a31..a10591ba4e 100644 --- a/_api-examples/ledger_index/ws-response.json +++ b/_api-examples/ledger_index/ws-response.json @@ -13,5 +13,5 @@ "id": 2001, "message": "This is a clio server. clio only serves validated data. If you want to talk to rippled, include 'ledger_index':'current' in your request" } - ] + ] } diff --git a/_api-examples/peer-crawler/crawl.json b/_api-examples/peer-crawler/crawl.json index 01260d6366..7c22e5805c 100644 --- a/_api-examples/peer-crawler/crawl.json +++ b/_api-examples/peer-crawler/crawl.json @@ -1,176 +1,176 @@ { - "overlay": { - "active": [ - { - "complete_ledgers": "45498918-45500918", - "ip": "88.99.137.170", - "port": "51235", - "public_key": "AkU+AY9FWh8AXMc43fAUM69SzfAMGat0d/N+qx3kD6Dg", - "type": "out", - "uptime": 208, - "version": "rippled-1.2.1" - }, - { - "complete_ledgers": "45500790-45500918", - "ip": "198.13.58.221", - "port": "51235", - "public_key": "AlQvJAlNDYtoBSaZCXM0pT5RWvdOW9QhMW5++mHswkej", - "type": "out", - "uptime": 208, - "version": "rippled-1.2.0" - }, - { - "complete_ledgers": "45500662-45500918", - "ip": "52.90.101.104", - "port": "51235", - "public_key": "AkA04ujnwMn8mRyfJg4K7vzcQSOG7FHq4wUg60OQWnCY", - "type": "out", - "uptime": 209, - "version": "rippled-1.2.1" - }, - { - "complete_ledgers": "45500662-45500918", - "ip": "54.202.12.93", - "port": "51235", - "public_key": "AxoekFvFYzELGty9cqiXZB+NsOWTZ0Qs9mFIw69CGb3d", - "type": "out", - "uptime": 209, - "version": "rippled-1.2.1" - }, - { - "complete_ledgers": "45498918-45500918", - "ip": "173.255.240.113", - "port": "51235", - "public_key": "A4lWBMIDEQrO8Eerp9Hj3rFacbV0FiID3wTIx8Aoplq2", - "type": "out", - "uptime": 209, - "version": "rippled-1.1.0" - }, - { - "complete_ledgers": "45499894-45500918", - "ip": "54.186.73.52", - "port": "51235", - "public_key": "AjikFnq0P2XybCyREr2KPiqXqJteqwPwVRVbVK+93+3o", - "type": "out", - "uptime": 209, - "version": "rippled-1.2.1" - }, - { - "complete_ledgers": "45499894-45500918", - "ip": "54.186.248.91", - "port": "51235", - "public_key": "A4A4TPA17KlUjstp7fcL0qaWd4X+fvZ5MTxG5P5AggHW", - "type": "out", - "uptime": 209, - "version": "rippled-1.2.1" - }, - { - "complete_ledgers": "45490918-45500918", - "ip": "162.243.114.118", - "port": "51235", - "public_key": "AufDkW4E1DOxjzRPj46Eu+AyJdsakUeJTz3xklv1kCfp", - "type": "out", - "uptime": 209, - "version": "rippled-1.2.1" - }, - { - "complete_ledgers": "45498918-45500918", - "ip": "::ffff:45.56.78.201", - "port": "51235", - "public_key": "AmsXz4UUqjlz6iy8HHhZdHmBHteEBwYZLOHCHA4puCwj", - "type": "out", - "uptime": 209, - "version": "rippled-1.1.0" - }, - { - "complete_ledgers": "32570-45500918", - "ip": "169.55.164.30", - "port": "51235", - "public_key": "Aw7J0CVhFKt0h6PDEpqu6t4LbPY0PsX8jCFbvSQFDOkW", - "type": "out", - "uptime": 209, - "version": "rippled-1.2.1" - } - ] + "overlay": { + "active": [ + { + "complete_ledgers": "45498918-45500918", + "ip": "88.99.137.170", + "port": "51235", + "public_key": "AkU+AY9FWh8AXMc43fAUM69SzfAMGat0d/N+qx3kD6Dg", + "type": "out", + "uptime": 208, + "version": "rippled-1.2.1" + }, + { + "complete_ledgers": "45500790-45500918", + "ip": "198.13.58.221", + "port": "51235", + "public_key": "AlQvJAlNDYtoBSaZCXM0pT5RWvdOW9QhMW5++mHswkej", + "type": "out", + "uptime": 208, + "version": "rippled-1.2.0" + }, + { + "complete_ledgers": "45500662-45500918", + "ip": "52.90.101.104", + "port": "51235", + "public_key": "AkA04ujnwMn8mRyfJg4K7vzcQSOG7FHq4wUg60OQWnCY", + "type": "out", + "uptime": 209, + "version": "rippled-1.2.1" + }, + { + "complete_ledgers": "45500662-45500918", + "ip": "54.202.12.93", + "port": "51235", + "public_key": "AxoekFvFYzELGty9cqiXZB+NsOWTZ0Qs9mFIw69CGb3d", + "type": "out", + "uptime": 209, + "version": "rippled-1.2.1" + }, + { + "complete_ledgers": "45498918-45500918", + "ip": "173.255.240.113", + "port": "51235", + "public_key": "A4lWBMIDEQrO8Eerp9Hj3rFacbV0FiID3wTIx8Aoplq2", + "type": "out", + "uptime": 209, + "version": "rippled-1.1.0" + }, + { + "complete_ledgers": "45499894-45500918", + "ip": "54.186.73.52", + "port": "51235", + "public_key": "AjikFnq0P2XybCyREr2KPiqXqJteqwPwVRVbVK+93+3o", + "type": "out", + "uptime": 209, + "version": "rippled-1.2.1" + }, + { + "complete_ledgers": "45499894-45500918", + "ip": "54.186.248.91", + "port": "51235", + "public_key": "A4A4TPA17KlUjstp7fcL0qaWd4X+fvZ5MTxG5P5AggHW", + "type": "out", + "uptime": 209, + "version": "rippled-1.2.1" + }, + { + "complete_ledgers": "45490918-45500918", + "ip": "162.243.114.118", + "port": "51235", + "public_key": "AufDkW4E1DOxjzRPj46Eu+AyJdsakUeJTz3xklv1kCfp", + "type": "out", + "uptime": 209, + "version": "rippled-1.2.1" + }, + { + "complete_ledgers": "45498918-45500918", + "ip": "::ffff:45.56.78.201", + "port": "51235", + "public_key": "AmsXz4UUqjlz6iy8HHhZdHmBHteEBwYZLOHCHA4puCwj", + "type": "out", + "uptime": 209, + "version": "rippled-1.1.0" + }, + { + "complete_ledgers": "32570-45500918", + "ip": "169.55.164.30", + "port": "51235", + "public_key": "Aw7J0CVhFKt0h6PDEpqu6t4LbPY0PsX8jCFbvSQFDOkW", + "type": "out", + "uptime": 209, + "version": "rippled-1.2.1" + } + ] + }, + "server": { + "build_version": "1.2.1", + "complete_ledgers": "45500881-45500888", + "io_latency_ms": 1, + "jq_trans_overflow": "0", + "last_close": { + "converge_time": 3002, + "proposers": 25 }, - "server": { - "build_version": "1.2.1", - "complete_ledgers": "45500881-45500888", - "io_latency_ms": 1, - "jq_trans_overflow": "0", - "last_close": { - "converge_time": 3002, - "proposers": 25 - }, - "load_base": 256, - "load_factor": 256, - "load_factor_fee_reference": 256, - "load_factor_server": 256, - "peer_disconnects": "0", - "peer_disconnects_resources": "0", - "peers": 10, - "pubkey_node": "n9MJZBu5HyxyEq8xPGBxXFTfT3uzdnNsvR6R1NyXxbEzt79SrZJE", - "published_ledger": 45500888, - "server_state": "full", - "server_state_duration_us": "40756665", - "state_accounting": { - "connected": { - "duration_us": "163459544", - "transitions": 1 - }, - "disconnected": { - "duration_us": "2539592", - "transitions": 1 - }, - "full": { - "duration_us": "40756665", - "transitions": 1 - }, - "syncing": { - "duration_us": "5071794", - "transitions": 1 - }, - "tracking": { - "duration_us": "1", - "transitions": 1 - } - }, - "time": "2019-Mar-02 01:48:50.912360", - "uptime": 213, - "validated_ledger": { - "close_time": 604806530, - "hash": "00415B0ECF1D31E8DC9A7DCB04CAF1FD47E61D4D9D047743C1508CDBD36576CE", - "reserve_base": 20000000, - "reserve_inc": 5000000, - "seq": 45500918 - } + "load_base": 256, + "load_factor": 256, + "load_factor_fee_reference": 256, + "load_factor_server": 256, + "peer_disconnects": "0", + "peer_disconnects_resources": "0", + "peers": 10, + "pubkey_node": "n9MJZBu5HyxyEq8xPGBxXFTfT3uzdnNsvR6R1NyXxbEzt79SrZJE", + "published_ledger": 45500888, + "server_state": "full", + "server_state_duration_us": "40756665", + "state_accounting": { + "connected": { + "duration_us": "163459544", + "transitions": 1 + }, + "disconnected": { + "duration_us": "2539592", + "transitions": 1 + }, + "full": { + "duration_us": "40756665", + "transitions": 1 + }, + "syncing": { + "duration_us": "5071794", + "transitions": 1 + }, + "tracking": { + "duration_us": "1", + "transitions": 1 + } }, - "unl": { - "local_static_keys": [], - "publisher_lists": [ - { - "available": true, - "expiration": "2019-Mar-06 00:00:00.000000000", - "pubkey_publisher": "ED2677ABFFD1B33AC6FBC3062B71F1E8397C1505E1C42C64D11AD1B28FF73F4734", - "seq": 47, - "uri": "https://vl.ripple.com", - "version": 1 - } - ], - "validator_list": { - "count": 1, - "expiration": "2019-Mar-06 00:00:00.000000000", - "status": "active" - }, - "validator_sites": [ - { - "last_refresh_status": "accepted", - "last_refresh_time": "2019-Mar-02 01:45:19.940242379", - "next_refresh_time": "2019-Mar-02 01:50:19.568004480", - "refresh_interval_min": 5, - "uri": "https://vl.ripple.com" - } - ] + "time": "2019-Mar-02 01:48:50.912360", + "uptime": 213, + "validated_ledger": { + "close_time": 604806530, + "hash": "00415B0ECF1D31E8DC9A7DCB04CAF1FD47E61D4D9D047743C1508CDBD36576CE", + "reserve_base": 20000000, + "reserve_inc": 5000000, + "seq": 45500918 + } + }, + "unl": { + "local_static_keys": [], + "publisher_lists": [ + { + "available": true, + "expiration": "2019-Mar-06 00:00:00.000000000", + "pubkey_publisher": "ED2677ABFFD1B33AC6FBC3062B71F1E8397C1505E1C42C64D11AD1B28FF73F4734", + "seq": 47, + "uri": "https://vl.ripple.com", + "version": 1 + } + ], + "validator_list": { + "count": 1, + "expiration": "2019-Mar-06 00:00:00.000000000", + "status": "active" }, - "version": 2 + "validator_sites": [ + { + "last_refresh_status": "accepted", + "last_refresh_time": "2019-Mar-02 01:45:19.940242379", + "next_refresh_time": "2019-Mar-02 01:50:19.568004480", + "refresh_interval_min": 5, + "uri": "https://vl.ripple.com" + } + ] + }, + "version": 2 } diff --git a/_api-examples/rippled-cli/ledger-file.json b/_api-examples/rippled-cli/ledger-file.json index 191d53bf55..febe9bacd6 100644 --- a/_api-examples/rippled-cli/ledger-file.json +++ b/_api-examples/rippled-cli/ledger-file.json @@ -1,1599 +1,1599 @@ { - "ledger" : { - "accepted" : false, - "accountState" : [ - { - "Flags" : 0, - "Indexes" : [ - "2C368DD90B4B39EC70A08269FEBB94A146B4914CECA2B0B90BB120807CEAECB3", - "6BFD99B17EAB515504CC44B9D0D34E8BE8337B09331606BF1B06B48AE0B17A36", - "DC369C92374347633572CFC81B53524E67C171378EBDA0E22C06301AADEEE8C1" - ], - "LedgerEntryType" : "DirectoryNode", - "Owner" : "rGWYwGaczQWiduWkccFZKXfp5nDRPqNBNS", - "RootIndex" : "0201C8CFB77E5BE1953CDD837E0C4E885884D0BA3DAA7971180A8C66DAEB418F", - "index" : "0201C8CFB77E5BE1953CDD837E0C4E885884D0BA3DAA7971180A8C66DAEB418F" - }, - { - "ExchangeRate" : "5D038D7EA4C68000", - "Flags" : 0, - "Indexes" : [ "4EF85AF7B21979CEC759A6D79F0044E215DC741CC864E24F3490854504227351" ], - "LedgerEntryType" : "DirectoryNode", - "RootIndex" : "0ACB50271202955CF899A07561FE4B147706D9FF0903EB035D038D7EA4C68000", - "TakerGetsCurrency" : "0000000000000000000000005553440000000000", - "TakerGetsIssuer" : "0208F1F6D6B2A3DD38847BD38F55982C880DAD5B", - "TakerPaysCurrency" : "0000000000000000000000000000000000000000", - "TakerPaysIssuer" : "0000000000000000000000000000000000000000", - "index" : "0ACB50271202955CF899A07561FE4B147706D9FF0903EB035D038D7EA4C68000" - }, - { - "ExchangeRate" : "5D038D7EA4C68000", - "Flags" : 0, - "Indexes" : [ "541F9429E46DCE2ECE0A8251FE3940C6AF2992F144ECAF7FB1A8A8ED15C5B52E" ], - "LedgerEntryType" : "DirectoryNode", - "RootIndex" : "0C16A756942D8A24BEACDFDE731610356EC746673C6F62615D038D7EA4C68000", - "TakerGetsCurrency" : "0000000000000000000000005553440000000000", - "TakerGetsIssuer" : "A4D988B2FEBECB9FF7717187F0C6531080CBC988", - "TakerPaysCurrency" : "0000000000000000000000000000000000000000", - "TakerPaysIssuer" : "0000000000000000000000000000000000000000", - "index" : "0C16A756942D8A24BEACDFDE731610356EC746673C6F62615D038D7EA4C68000" - }, - { - "Account" : "rBU1EP5oMwKxWr1gZnNe7K8GouQTBhzUKs", - "Balance" : "9999999980", - "Flags" : 8388608, - "LedgerEntryType" : "AccountRoot", - "OwnerCount" : 2, - "PreviousTxnID" : "20D81B86F6114FCB355AD5288722A105AF156FD2D0E2C1ABAAF6E7B1BD61301B", - "PreviousTxnLgrSeq" : 28, - "Sequence" : 5, - "index" : "0C6DCE43D13EC29D72157BDC31DA73AB985E44225EB1F635B0958EFB3D8D5F0A" - }, - { - "Account" : "rwiTxuknPNeLDYHHLgajRVetKEEwkYhTaQ", - "BookDirectory" : "4B83A9AFB33C10BBA4DA7E71E7615F5F44D7E042BB6050DC5D038D7EA4C68000", - "BookNode" : "0000000000000000", - "Flags" : 0, - "LedgerEntryType" : "Offer", - "OwnerNode" : "0000000000000000", - "PreviousTxnID" : "0B089EC2D5CBB6F514C5965853474D40D10C0E839A539480DC84D273E3584A4D", - "PreviousTxnLgrSeq" : 28, - "Sequence" : 3, - "TakerGets" : { - "currency" : "USD", - "issuer" : "rwiTxuknPNeLDYHHLgajRVetKEEwkYhTaQ", - "value" : "1" - }, - "TakerPays" : "100000000", - "index" : "0E9DE48BAB27A40AD816C70569E9C284F1838CB6ADDE6740BB5A2F675CF47D12" - }, - { - "Account" : "rEbq9pWn2knXFTjjuoNNrKgQeGxhmispMi", - "BookDirectory" : "1EB78C840A9AEF0E937A1344FCE1A4E9C7EB5B1112B347D35D038D7EA4C68000", - "BookNode" : "0000000000000000", - "Flags" : 0, - "LedgerEntryType" : "Offer", - "OwnerNode" : "0000000000000000", - "PreviousTxnID" : "71A4CA1626DD8F5F68ADB1A87E33D6255E2CBC3E4E14AC89A44E31AD888FD671", - "PreviousTxnLgrSeq" : 30, - "Sequence" : 3, - "TakerGets" : { - "currency" : "USD", - "issuer" : "rEbq9pWn2knXFTjjuoNNrKgQeGxhmispMi", - "value" : "1" - }, - "TakerPays" : "100000000", - "index" : "1228AC065977AC74F9115AD2A324B3BE3C1145907DED87789ADCBFE6113D1692" - }, - { - "Account" : "rND1XyLAU9G2ydhUgmRo4i2kdrSKgYZc31", - "Balance" : "9999999980", - "Flags" : 8388608, - "LedgerEntryType" : "AccountRoot", - "OwnerCount" : 2, - "PreviousTxnID" : "D4468A781F4633DFA1FB5965E3F2A519F2ADCEC4451FD774BF4C8F31C29BE453", - "PreviousTxnLgrSeq" : 42, - "Sequence" : 5, - "index" : "13E1D22839979F2562BEB35115903190CDF7FF955382F74991955B0391FDD6BF" - }, - { - "Flags" : 0, - "Indexes" : [ - "A8AF8212474E3A74913765F5DA1D78A60EA9DC101624509C002A602A14C6FF4F", - "B3B0095E3F89235FBF93FA177CB39F22BB94BD0A680E0768486D7A367C45F321", - "B4FDB0503DCD82862122618F257A4C279AA3A1B22F036B8516B7A1C2CF4E7EE3" - ], - "LedgerEntryType" : "DirectoryNode", - "Owner" : "rrnsYgWn13Z28GtRgznrSUsLfMkvsXCZSu", - "RootIndex" : "13F1EDB77D58547E8F856D298A85DE0A2310ED375BB7F424EE764F07AC123626", - "index" : "13F1EDB77D58547E8F856D298A85DE0A2310ED375BB7F424EE764F07AC123626" - }, - { - "Flags" : 0, - "Indexes" : [ - "A1E72F5EDF478908AA5AFD5268CC5D185611D2E7D4E201FE01A71E45AE2E7612", - "B4EE24F900CFE2E898972BD36FCCB8A58D3AC534962EE06EF0974ED2D09AE716", - "CC07E55B7114FAD14663E5BDD16458E3EFA300C2C139E4E0FC9E2635E3D8099E" - ], - "LedgerEntryType" : "DirectoryNode", - "Owner" : "rnYDWQaRdMb5neCGgvFfhw3MBoxmv5LtfH", - "RootIndex" : "148E5AC452BC6967CD8DA9DA2D77D317698848D6E751060E552DE1A3D7131795", - "index" : "148E5AC452BC6967CD8DA9DA2D77D317698848D6E751060E552DE1A3D7131795" - }, - { - "Account" : "r9MB1RNWZChfV3YdLrB3Rm5AoMULewDtiu", - "Balance" : "9999999980", - "Flags" : 8388608, - "LedgerEntryType" : "AccountRoot", - "OwnerCount" : 2, - "PreviousTxnID" : "5ABD9989449EB580B55159A9A81D8A67AAFAFD072A2B8DA3903FC7E0B19F7E09", - "PreviousTxnLgrSeq" : 22, - "Sequence" : 5, - "index" : "1AF089EE3B5D5C2E5B4FB0BF3D4EEEA94A01DA221B37057CB148350B696F4047" - }, - { - "ExchangeRate" : "5D038D7EA4C68000", - "Flags" : 0, - "Indexes" : [ "452934A1A7AE45B98B523F39882EBAEC77CE42A123A21932B2BB17FFDFC2FF01" ], - "LedgerEntryType" : "DirectoryNode", - "RootIndex" : "1B2F86B6225665FCED00952D092E36209BC4C30DB3975C595D038D7EA4C68000", - "TakerGetsCurrency" : "0000000000000000000000005553440000000000", - "TakerGetsIssuer" : "9108CF7527F51DB516FA4E58C5BE3A012E4DD754", - "TakerPaysCurrency" : "0000000000000000000000000000000000000000", - "TakerPaysIssuer" : "0000000000000000000000000000000000000000", - "index" : "1B2F86B6225665FCED00952D092E36209BC4C30DB3975C595D038D7EA4C68000" - }, - { - "ExchangeRate" : "5D038D7EA4C68000", - "Flags" : 0, - "Indexes" : [ "B3B0095E3F89235FBF93FA177CB39F22BB94BD0A680E0768486D7A367C45F321" ], - "LedgerEntryType" : "DirectoryNode", - "RootIndex" : "1E789859BD3DDA735F4209B728C9FCBB1C754E53AA36E5685D038D7EA4C68000", - "TakerGetsCurrency" : "0000000000000000000000005553440000000000", - "TakerGetsIssuer" : "00C3CA11752ED36E804D437EE7DDEFEEA5D7A0B6", - "TakerPaysCurrency" : "0000000000000000000000000000000000000000", - "TakerPaysIssuer" : "0000000000000000000000000000000000000000", - "index" : "1E789859BD3DDA735F4209B728C9FCBB1C754E53AA36E5685D038D7EA4C68000" - }, - { - "ExchangeRate" : "5D038D7EA4C68000", - "Flags" : 0, - "Indexes" : [ "1228AC065977AC74F9115AD2A324B3BE3C1145907DED87789ADCBFE6113D1692" ], - "LedgerEntryType" : "DirectoryNode", - "RootIndex" : "1EB78C840A9AEF0E937A1344FCE1A4E9C7EB5B1112B347D35D038D7EA4C68000", - "TakerGetsCurrency" : "0000000000000000000000005553440000000000", - "TakerGetsIssuer" : "A028166AD2763543B962715D5102602A2A8771B3", - "TakerPaysCurrency" : "0000000000000000000000000000000000000000", - "TakerPaysIssuer" : "0000000000000000000000000000000000000000", - "index" : "1EB78C840A9AEF0E937A1344FCE1A4E9C7EB5B1112B347D35D038D7EA4C68000" - }, - { - "Account" : "rJfBCsnwSHXjTJ4GH5Ax6Kyw48X977hqyq", - "BookDirectory" : "814B0A9165776156803974961E7CE52262E4D8099B96E42F5D038D7EA4C68000", - "BookNode" : "0000000000000000", - "Flags" : 0, - "LedgerEntryType" : "Offer", - "OwnerNode" : "0000000000000000", - "PreviousTxnID" : "5F7F3D46D9ED260224FDD4026A8058EC8AE3E92A50F2D74DC203440FAC17C058", - "PreviousTxnLgrSeq" : 32, - "Sequence" : 3, - "TakerGets" : { - "currency" : "USD", - "issuer" : "rJfBCsnwSHXjTJ4GH5Ax6Kyw48X977hqyq", - "value" : "1" - }, - "TakerPays" : "100000000", - "index" : "201A37D8499DD67061017513698849C120C37947833A14C57897048646A77B86" - }, - { - "Account" : "rwiTxuknPNeLDYHHLgajRVetKEEwkYhTaQ", - "Balance" : "9999999980", - "Flags" : 8388608, - "LedgerEntryType" : "AccountRoot", - "OwnerCount" : 2, - "PreviousTxnID" : "9F72A7D9456E15D4A9D22A24322E1235A663C93D37D715F9992F953431D87D4C", - "PreviousTxnLgrSeq" : 30, - "Sequence" : 5, - "index" : "25F6E8B8CCCDDE660EC2CD6258AC3D61F663268B064F69C1B570A16378B7E557" - }, - { - "Flags" : 0, - "Indexes" : [ - "387A729A2F8BFB97655F4C4E5AE5E8ACFF326B11AE3E533004F708CBA7CFD43F", - "B4FDB0503DCD82862122618F257A4C279AA3A1B22F036B8516B7A1C2CF4E7EE3", - "CC07E55B7114FAD14663E5BDD16458E3EFA300C2C139E4E0FC9E2635E3D8099E" - ], - "LedgerEntryType" : "DirectoryNode", - "Owner" : "rJsaPnGdeo7BhMnHjuc3n44Mf7Ra1qkSVJ", - "RootIndex" : "27F7DCDF5855E0F2A9DCDEF6017DA729B8B1F2455A75E470A92A6A29BC697EE5", - "index" : "27F7DCDF5855E0F2A9DCDEF6017DA729B8B1F2455A75E470A92A6A29BC697EE5" - }, - { - "Account" : "rHd21p9Gb834Ri4pzRzGFJ7PjRzymWuBWu", - "Balance" : "9999999980", - "Flags" : 8388608, - "LedgerEntryType" : "AccountRoot", - "OwnerCount" : 1, - "PreviousTxnID" : "998C6B84C5B508683FFE552E427DAEEE320FE25B60B9C2048A9507A350DD8A37", - "PreviousTxnLgrSeq" : 42, - "Sequence" : 4, - "index" : "285CB2470C519229C9D3CFD6975C3C682B1464429D4275ED0002C2AED0CC19F0" - }, - { - "Account" : "rado7qRcvPpS8ZL8SNg4SG8kBNksHyqoRa", - "BookDirectory" : "CB0BAC4A118A33819C7FBBA67ED7D0DB6C4C18DB8BF001495D038D7EA4C68000", - "BookNode" : "0000000000000000", - "Flags" : 0, - "LedgerEntryType" : "Offer", - "OwnerNode" : "0000000000000000", - "PreviousTxnID" : "7D2D9B5403CE40877337CA5AD5C5AD42D61A6E36EF946F17A622E65613138279", - "PreviousTxnLgrSeq" : 34, - "Sequence" : 3, - "TakerGets" : { - "currency" : "USD", - "issuer" : "rado7qRcvPpS8ZL8SNg4SG8kBNksHyqoRa", - "value" : "1" - }, - "TakerPays" : "100000000", - "index" : "2927B356D4FEB9824F302372EC64B65A83A7288337FE111F980337709D1AEB78" - }, - { - "Account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "Balance" : "99999799999999220", - "Flags" : 0, - "LedgerEntryType" : "AccountRoot", - "OwnerCount" : 0, - "PreviousTxnID" : "A92EF82C3C68F771927E3892A2F708F12CBD492EF68A860F042E4053C8EC6C8D", - "PreviousTxnLgrSeq" : 42, - "Sequence" : 40, - "index" : "2B6AC232AA4C4BE41BF49D2459FA4A0347E1B543A4C92FCEE0821C0201E2E9A8" - }, - { - "Balance" : { - "currency" : "USD", - "issuer" : "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value" : "-5" - }, - "Flags" : 131072, - "HighLimit" : { - "currency" : "USD", - "issuer" : "rH15iZg9KFSi7d1usvcsPerUtg7dhpMbk4", - "value" : "1000" - }, - "HighNode" : "0000000000000000", - "LedgerEntryType" : "RippleState", - "LowLimit" : { - "currency" : "USD", - "issuer" : "rGWYwGaczQWiduWkccFZKXfp5nDRPqNBNS", - "value" : "0" - }, - "LowNode" : "0000000000000000", - "PreviousTxnID" : "986A0673D9DD3EAEE05D1AD740787B2E9AA1E4474E0CD16AA1281A943D5050D1", - "PreviousTxnLgrSeq" : 24, - "index" : "2C368DD90B4B39EC70A08269FEBB94A146B4914CECA2B0B90BB120807CEAECB3" - }, - { - "Account" : "rfM5xD2CY6XB8o1WsWoJ3ZHGkbHU4NYXr", - "Balance" : "9999999980", - "Flags" : 8388608, - "LedgerEntryType" : "AccountRoot", - "OwnerCount" : 2, - "PreviousTxnID" : "2602E66499D394317A0C88F1D6A6BE3285CA691342E01D7888BC414FA56CF198", - "PreviousTxnLgrSeq" : 20, - "Sequence" : 5, - "index" : "2CBEF746189EB4077DAA7A07E427424F5EDDC9D64B77B1005D45C4984696A2E5" - }, - { - "Account" : "rH15iZg9KFSi7d1usvcsPerUtg7dhpMbk4", - "Balance" : "9999999980", - "Flags" : 8388608, - "LedgerEntryType" : "AccountRoot", - "OwnerCount" : 2, - "PreviousTxnID" : "EEA35959440792F34176CD8D0C775792CE5D5243DF7100A89ED64C9D585D6EE6", - "PreviousTxnLgrSeq" : 24, - "Sequence" : 5, - "index" : "305B967C9EA193B8159E0E32E355609FF4112DB8C936A0EF4DF79F91D4E1E446" - }, - { - "Account" : "rJsaPnGdeo7BhMnHjuc3n44Mf7Ra1qkSVJ", - "BookDirectory" : "C7E412DB071D9E43461808CE76039E5C5BF7854E274DDB9D5D038D7EA4C68000", - "BookNode" : "0000000000000000", - "Flags" : 0, - "LedgerEntryType" : "Offer", - "OwnerNode" : "0000000000000000", - "PreviousTxnID" : "C6D7319F653C06B0CD81753463D8D95C511C4EC82EA9A53F95C4C49ED8C97C95", - "PreviousTxnLgrSeq" : 12, - "Sequence" : 3, - "TakerGets" : { - "currency" : "USD", - "issuer" : "rJsaPnGdeo7BhMnHjuc3n44Mf7Ra1qkSVJ", - "value" : "1" - }, - "TakerPays" : "100000000", - "index" : "387A729A2F8BFB97655F4C4E5AE5E8ACFF326B11AE3E533004F708CBA7CFD43F" - }, - { - "Account" : "rJsaPnGdeo7BhMnHjuc3n44Mf7Ra1qkSVJ", - "Balance" : "9999999980", - "Flags" : 8388608, - "LedgerEntryType" : "AccountRoot", - "OwnerCount" : 2, - "PreviousTxnID" : "D28873A798B138DA1EFDCF14D0613BD7CA8B6B268D4A478C37FD14E77EEBCB97", - "PreviousTxnLgrSeq" : 14, - "Sequence" : 5, - "index" : "3949E45F6FA9403CB49EE6B34A03621AB5CBAD95142E4B0F58821BCE11B77FAF" - }, - { - "Account" : "rfM5xD2CY6XB8o1WsWoJ3ZHGkbHU4NYXr", - "BookDirectory" : "E3264B348B8B0E8B605B414C82DFE77DEE340751834E11975D038D7EA4C68000", - "BookNode" : "0000000000000000", - "Flags" : 0, - "LedgerEntryType" : "Offer", - "OwnerNode" : "0000000000000000", - "PreviousTxnID" : "E2CD023B0DF539A2AD39120633F2FF32BF7B0AFBFB06BA374234EE64CA61E71E", - "PreviousTxnLgrSeq" : 18, - "Sequence" : 3, - "TakerGets" : { - "currency" : "USD", - "issuer" : "rfM5xD2CY6XB8o1WsWoJ3ZHGkbHU4NYXr", - "value" : "1" - }, - "TakerPays" : "100000000", - "index" : "3AF6F0694BAC73098A2B39D44C39DDD1CCA08322C21B7A1AAFA9DD5C77612786" - }, - { - "ExchangeRate" : "5D038D7EA4C68000", - "Flags" : 0, - "Indexes" : [ "98D2CF1B63B8223241DBB2E65AF8EB806C1943D00A1A95BD765719DC05BD7CD0" ], - "LedgerEntryType" : "DirectoryNode", - "RootIndex" : "3E163C81A24D9D90351341B442A28A4374844ADC73684D3E5D038D7EA4C68000", - "TakerGetsCurrency" : "0000000000000000000000005553440000000000", - "TakerGetsIssuer" : "565041C98030E20F46CCA045B0B24E9A39BF2825", - "TakerPaysCurrency" : "0000000000000000000000000000000000000000", - "TakerPaysIssuer" : "0000000000000000000000000000000000000000", - "index" : "3E163C81A24D9D90351341B442A28A4374844ADC73684D3E5D038D7EA4C68000" - }, - { - "ExchangeRate" : "5D038D7EA4C68000", - "Flags" : 0, - "Indexes" : [ "9B53EE6A8C2C5B5451B62D3C87D002283072FD3BDC1F88A01AD8D469A231A830" ], - "LedgerEntryType" : "DirectoryNode", - "RootIndex" : "41683E61E61B3C831CFA02CF490BB69BD888BA6F84545D695D038D7EA4C68000", - "TakerGetsCurrency" : "0000000000000000000000005553440000000000", - "TakerGetsIssuer" : "B919BFC12677AB265208B33431783D0E607A12CB", - "TakerPaysCurrency" : "0000000000000000000000000000000000000000", - "TakerPaysIssuer" : "0000000000000000000000000000000000000000", - "index" : "41683E61E61B3C831CFA02CF490BB69BD888BA6F84545D695D038D7EA4C68000" - }, - { - "Account" : "rBU1EP5oMwKxWr1gZnNe7K8GouQTBhzUKs", - "BookDirectory" : "4F670BB7452C88D6DBEAF81E7DE57FDC3020C14DF32F7BB45D038D7EA4C68000", - "BookNode" : "0000000000000000", - "Flags" : 0, - "LedgerEntryType" : "Offer", - "OwnerNode" : "0000000000000000", - "PreviousTxnID" : "2AE8DEE58105717C122AC23BB5CD67059AE7D458F46FC3D868C1A3F5F56E8274", - "PreviousTxnLgrSeq" : 26, - "Sequence" : 3, - "TakerGets" : { - "currency" : "USD", - "issuer" : "rBU1EP5oMwKxWr1gZnNe7K8GouQTBhzUKs", - "value" : "1" - }, - "TakerPays" : "100000000", - "index" : "419F49361B31414099A650A649A0DD42C4FBCDCD8C9473C12D64C1FEB9CDD593" - }, - { - "Flags" : 0, - "Indexes" : [ - "541F9429E46DCE2ECE0A8251FE3940C6AF2992F144ECAF7FB1A8A8ED15C5B52E", - "A8AF8212474E3A74913765F5DA1D78A60EA9DC101624509C002A602A14C6FF4F", - "C5F104A35DB835AF4A4C4664BCDA57A88873DCEF23DF567485654FAEE5645949" - ], - "LedgerEntryType" : "DirectoryNode", - "Owner" : "rGpeQzUWFu4fMhJHZ1Via5aqFC3A5twZUD", - "RootIndex" : "43AC9D96AC71CAB6775045A5571C0CD1515B201D0859F890E8CAF3D9F70FDEAD", - "index" : "43AC9D96AC71CAB6775045A5571C0CD1515B201D0859F890E8CAF3D9F70FDEAD" - }, - { - "Flags" : 0, - "Indexes" : [ - "B43B6611C9E172A742829AD42A8F999636C256AB62C76657F57CAB05D914FFC8", - "C55C2E06D350E31F0E9FA1E6C1934962E9DFB7EEFC01A2B0AF7DA7FB76439FC7", - "C8BC8B52B7F8BC724C843D280AA26F579FD0220FAC8BCE491386B8E12C25A99D" - ], - "LedgerEntryType" : "DirectoryNode", - "Owner" : "r9MB1RNWZChfV3YdLrB3Rm5AoMULewDtiu", - "RootIndex" : "448F107DA3038A6EEFD147F2D5E1E5D303597DCCA395112BC5C230A106747D3F", - "index" : "448F107DA3038A6EEFD147F2D5E1E5D303597DCCA395112BC5C230A106747D3F" - }, - { - "Account" : "rND1XyLAU9G2ydhUgmRo4i2kdrSKgYZc31", - "BookDirectory" : "1B2F86B6225665FCED00952D092E36209BC4C30DB3975C595D038D7EA4C68000", - "BookNode" : "0000000000000000", - "Flags" : 0, - "LedgerEntryType" : "Offer", - "OwnerNode" : "0000000000000000", - "PreviousTxnID" : "E948C17052A792D730F37A221BDCB0B7052CB3C26BC726F7A3CB568DC6FB65E4", - "PreviousTxnLgrSeq" : 40, - "Sequence" : 3, - "TakerGets" : { - "currency" : "USD", - "issuer" : "rND1XyLAU9G2ydhUgmRo4i2kdrSKgYZc31", - "value" : "1" - }, - "TakerPays" : "100000000", - "index" : "452934A1A7AE45B98B523F39882EBAEC77CE42A123A21932B2BB17FFDFC2FF01" - }, - { - "Account" : "r4nmQNH4Fhjfh6cHDbvVSsBv7KySbj4cBf", - "BookDirectory" : "AE9AC31E476582E339418E925C4C77544D30978E6DCBD3F85D038D7EA4C68000", - "BookNode" : "0000000000000000", - "Flags" : 0, - "LedgerEntryType" : "Offer", - "OwnerNode" : "0000000000000000", - "PreviousTxnID" : "69F5DC3FD991BD082841188A7B135CAE7F09D8A108C47D8F76FD8A92C17A8737", - "PreviousTxnLgrSeq" : 6, - "Sequence" : 3, - "TakerGets" : { - "currency" : "USD", - "issuer" : "r4nmQNH4Fhjfh6cHDbvVSsBv7KySbj4cBf", - "value" : "1" - }, - "TakerPays" : "100000000", - "index" : "45BC687C87B26FC68922EEFBC0BB25589BF3BD601C39DB0446C59F2AC8AA7754" - }, - { - "Account" : "rnYDWQaRdMb5neCGgvFfhw3MBoxmv5LtfH", - "Balance" : "9999999980", - "Flags" : 8388608, - "LedgerEntryType" : "AccountRoot", - "OwnerCount" : 2, - "PreviousTxnID" : "2182A9E514E257D64E6196AA8A34F0034CB597F93CEE3CFC2F9382AC7E25FF1D", - "PreviousTxnLgrSeq" : 16, - "Sequence" : 5, - "index" : "497C78293A0A9677FF974C0A59AE3EE103C80048332DD98642C6C147038B7A4F" - }, - { - "ExchangeRate" : "5D038D7EA4C68000", - "Flags" : 0, - "Indexes" : [ "0E9DE48BAB27A40AD816C70569E9C284F1838CB6ADDE6740BB5A2F675CF47D12" ], - "LedgerEntryType" : "DirectoryNode", - "RootIndex" : "4B83A9AFB33C10BBA4DA7E71E7615F5F44D7E042BB6050DC5D038D7EA4C68000", - "TakerGetsCurrency" : "0000000000000000000000005553440000000000", - "TakerGetsIssuer" : "6C1405C650E5A5B9DC60B4F1E256596CB322AEB4", - "TakerPaysCurrency" : "0000000000000000000000000000000000000000", - "TakerPaysIssuer" : "0000000000000000000000000000000000000000", - "index" : "4B83A9AFB33C10BBA4DA7E71E7615F5F44D7E042BB6050DC5D038D7EA4C68000" - }, - { - "Account" : "rBmhuVAvi372AerwzwERGjhLjqkMmAwxX", - "BookDirectory" : "0ACB50271202955CF899A07561FE4B147706D9FF0903EB035D038D7EA4C68000", - "BookNode" : "0000000000000000", - "Flags" : 0, - "LedgerEntryType" : "Offer", - "OwnerNode" : "0000000000000000", - "PreviousTxnID" : "B0B7E3956C9EF26BA9C432D5F0AB306DD9ED03DA4459E17C247286926B37E051", - "PreviousTxnLgrSeq" : 4, - "Sequence" : 2, - "TakerGets" : { - "currency" : "USD", - "issuer" : "rBmhuVAvi372AerwzwERGjhLjqkMmAwxX", - "value" : "1" - }, - "TakerPays" : "100000000", - "index" : "4EF85AF7B21979CEC759A6D79F0044E215DC741CC864E24F3490854504227351" - }, - { - "ExchangeRate" : "5D038D7EA4C68000", - "Flags" : 0, - "Indexes" : [ "419F49361B31414099A650A649A0DD42C4FBCDCD8C9473C12D64C1FEB9CDD593" ], - "LedgerEntryType" : "DirectoryNode", - "RootIndex" : "4F670BB7452C88D6DBEAF81E7DE57FDC3020C14DF32F7BB45D038D7EA4C68000", - "TakerGetsCurrency" : "0000000000000000000000005553440000000000", - "TakerGetsIssuer" : "6FEFC7484B29C1D49A6CA3F84CD380E79B32AA59", - "TakerPaysCurrency" : "0000000000000000000000000000000000000000", - "TakerPaysIssuer" : "0000000000000000000000000000000000000000", - "index" : "4F670BB7452C88D6DBEAF81E7DE57FDC3020C14DF32F7BB45D038D7EA4C68000" - }, - { - "Account" : "rHd21p9Gb834Ri4pzRzGFJ7PjRzymWuBWu", - "BookDirectory" : "6AECAE2697C99F417D86CC5650323E68BD4D00CA06FE627F5D038D7EA4C68000", - "BookNode" : "0000000000000000", - "Flags" : 0, - "LedgerEntryType" : "Offer", - "OwnerNode" : "0000000000000000", - "PreviousTxnID" : "998C6B84C5B508683FFE552E427DAEEE320FE25B60B9C2048A9507A350DD8A37", - "PreviousTxnLgrSeq" : 42, - "Sequence" : 3, - "TakerGets" : { - "currency" : "USD", - "issuer" : "rHd21p9Gb834Ri4pzRzGFJ7PjRzymWuBWu", - "value" : "1" - }, - "TakerPays" : "100000000", - "index" : "51F488F106AD3C4752C1690A92154D0059083BF5B7F0512125BA31C073DC2FB9" - }, - { - "Account" : "r4nmQNH4Fhjfh6cHDbvVSsBv7KySbj4cBf", - "Balance" : "9999999980", - "Flags" : 8388608, - "LedgerEntryType" : "AccountRoot", - "OwnerCount" : 2, - "PreviousTxnID" : "DB644E7A63F27B11A716B4941F7B2907D46DA88F29B50409C3E3514B66EA81B2", - "PreviousTxnLgrSeq" : 8, - "Sequence" : 5, - "index" : "5302F37F1D9290D8D92A31651FF71531504183695C2C43EC136B1CF4AC7E08FA" - }, - { - "Balance" : { - "currency" : "USD", - "issuer" : "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value" : "-5" - }, - "Flags" : 131072, - "HighLimit" : { - "currency" : "USD", - "issuer" : "r31PEiKfa3y6xTi7uBcSp7F3nDLvVMmqyi", - "value" : "1000" - }, - "HighNode" : "0000000000000000", - "LedgerEntryType" : "RippleState", - "LowLimit" : { - "currency" : "USD", - "issuer" : "rfM5xD2CY6XB8o1WsWoJ3ZHGkbHU4NYXr", - "value" : "0" - }, - "LowNode" : "0000000000000000", - "PreviousTxnID" : "817467940B1D7B638382841EFC62E74C46B06FA1F6E3BEA3809D4DAA6E3954F4", - "PreviousTxnLgrSeq" : 18, - "index" : "5377F79829B9FDCBB7D5E77CCD9A97D6B9C2F9602F2606561ADE64BFB62C7E4E" - }, - { - "Account" : "rGpeQzUWFu4fMhJHZ1Via5aqFC3A5twZUD", - "BookDirectory" : "0C16A756942D8A24BEACDFDE731610356EC746673C6F62615D038D7EA4C68000", - "BookNode" : "0000000000000000", - "Flags" : 0, - "LedgerEntryType" : "Offer", - "OwnerNode" : "0000000000000000", - "PreviousTxnID" : "ED7E69FA8AA1AD09301BB20DA19AA62EAFB57082BD5164454F29E662BC532416", - "PreviousTxnLgrSeq" : 8, - "Sequence" : 3, - "TakerGets" : { - "currency" : "USD", - "issuer" : "rGpeQzUWFu4fMhJHZ1Via5aqFC3A5twZUD", - "value" : "1" - }, - "TakerPays" : "100000000", - "index" : "541F9429E46DCE2ECE0A8251FE3940C6AF2992F144ECAF7FB1A8A8ED15C5B52E" - }, - { - "Account" : "rJfBCsnwSHXjTJ4GH5Ax6Kyw48X977hqyq", - "Balance" : "9999999980", - "Flags" : 8388608, - "LedgerEntryType" : "AccountRoot", - "OwnerCount" : 2, - "PreviousTxnID" : "154221ACDC7F4422C9103164113EC5C3B146B4867F492537080BC6C664C3B2A0", - "PreviousTxnLgrSeq" : 34, - "Sequence" : 5, - "index" : "556C32C3D575A99FDA1586DF6A45B82379425645DCE3F86664B16F0D7894B006" - }, - { - "Account" : "rBtVTnNgX3uR3kyfVyaQ6hjZTdk42ay9Z3", - "Balance" : "9999999980", - "Flags" : 8388608, - "LedgerEntryType" : "AccountRoot", - "OwnerCount" : 2, - "PreviousTxnID" : "20CC630BE0A1CE09B04139088A1597290BB08921861533E01241BB5829C8C242", - "PreviousTxnLgrSeq" : 40, - "Sequence" : 5, - "index" : "57309D9CB13B5AF3CDA06A5D2537FCDDC3BFC66C97BFD85CADD7D976C03E3B7C" - }, - { - "Account" : "rNgfurDhqvfsVzLr5ZGB3dJysJhRkvJ79F", - "Balance" : "9999999980", - "Flags" : 8388608, - "LedgerEntryType" : "AccountRoot", - "OwnerCount" : 2, - "PreviousTxnID" : "776B941CFABDB0C2590559AD1857CB3D7B744513EAE4F0C69FD573EA6D5521B3", - "PreviousTxnLgrSeq" : 38, - "Sequence" : 5, - "index" : "587812FF6EC3CB57A2C15F22ECD572F575F7069DDEDA139C3A881B065170C1D3" - }, - { - "ExchangeRate" : "5D038D7EA4C68000", - "Flags" : 0, - "Indexes" : [ "C55C2E06D350E31F0E9FA1E6C1934962E9DFB7EEFC01A2B0AF7DA7FB76439FC7" ], - "LedgerEntryType" : "DirectoryNode", - "RootIndex" : "631E572638B141B43F9E6795B73B3CB1B75C37740D6F39D75D038D7EA4C68000", - "TakerGetsCurrency" : "0000000000000000000000005553440000000000", - "TakerGetsIssuer" : "5B9266125F0F1805EA4F541D1283E95609B32DF4", - "TakerPaysCurrency" : "0000000000000000000000000000000000000000", - "TakerPaysIssuer" : "0000000000000000000000000000000000000000", - "index" : "631E572638B141B43F9E6795B73B3CB1B75C37740D6F39D75D038D7EA4C68000" - }, - { - "Flags" : 0, - "Indexes" : [ - "74BBA15EE0FCE694C44C3A822BC236F7F86EF4B164088CCEBA40792B463D23D5", - "E2E37CFB8ABCEEAC7A51BBC15CD32B068573463CAC0F7548E98B0AA8E0EA138F", - "E710D6B27BC9DA64F27942F40ADB7A799D4D50B42F4864377E49AEF0FDBCDF94" - ], - "LedgerEntryType" : "DirectoryNode", - "Owner" : "rNgfurDhqvfsVzLr5ZGB3dJysJhRkvJ79F", - "RootIndex" : "65F2F53AE72DF1A306128685954696ED3338DEC5CCFD4DF57E5B6A8827BC6913", - "index" : "65F2F53AE72DF1A306128685954696ED3338DEC5CCFD4DF57E5B6A8827BC6913" - }, - { - "Balance" : { - "currency" : "USD", - "issuer" : "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value" : "-5" - }, - "Flags" : 131072, - "HighLimit" : { - "currency" : "USD", - "issuer" : "rBU1EP5oMwKxWr1gZnNe7K8GouQTBhzUKs", - "value" : "1000" - }, - "HighNode" : "0000000000000000", - "LedgerEntryType" : "RippleState", - "LowLimit" : { - "currency" : "USD", - "issuer" : "rwiTxuknPNeLDYHHLgajRVetKEEwkYhTaQ", - "value" : "0" - }, - "LowNode" : "0000000000000000", - "PreviousTxnID" : "5F020C40620E25A6C0D9AC4472D4AAFB6D82EFBC1949BEC90194D4E960476C7E", - "PreviousTxnLgrSeq" : 28, - "index" : "6AA90FBD168B55CBF413F189A8B54FA06D3530F4D88AD290827567CFEBF3FC1F" - }, - { - "ExchangeRate" : "5D038D7EA4C68000", - "Flags" : 0, - "Indexes" : [ "51F488F106AD3C4752C1690A92154D0059083BF5B7F0512125BA31C073DC2FB9" ], - "LedgerEntryType" : "DirectoryNode", - "RootIndex" : "6AECAE2697C99F417D86CC5650323E68BD4D00CA06FE627F5D038D7EA4C68000", - "TakerGetsCurrency" : "0000000000000000000000005553440000000000", - "TakerGetsIssuer" : "B66D410B63EBAA3D9DBCC3FAE07DA420BFA78CD9", - "TakerPaysCurrency" : "0000000000000000000000000000000000000000", - "TakerPaysIssuer" : "0000000000000000000000000000000000000000", - "index" : "6AECAE2697C99F417D86CC5650323E68BD4D00CA06FE627F5D038D7EA4C68000" - }, - { - "Account" : "rGWYwGaczQWiduWkccFZKXfp5nDRPqNBNS", - "BookDirectory" : "9FA8E49AA632FBD07883E676449FA5C05B2CACB4E5BB5B9E5D038D7EA4C68000", - "BookNode" : "0000000000000000", - "Flags" : 0, - "LedgerEntryType" : "Offer", - "OwnerNode" : "0000000000000000", - "PreviousTxnID" : "42A861F35179890A92FD302DDEDC136178E8623A19CAA23DC88251EF3A13FB28", - "PreviousTxnLgrSeq" : 24, - "Sequence" : 3, - "TakerGets" : { - "currency" : "USD", - "issuer" : "rGWYwGaczQWiduWkccFZKXfp5nDRPqNBNS", - "value" : "1" - }, - "TakerPays" : "100000000", - "index" : "6BFD99B17EAB515504CC44B9D0D34E8BE8337B09331606BF1B06B48AE0B17A36" - }, - { - "Account" : "r31PEiKfa3y6xTi7uBcSp7F3nDLvVMmqyi", - "Balance" : "9999999980", - "Flags" : 8388608, - "LedgerEntryType" : "AccountRoot", - "OwnerCount" : 2, - "PreviousTxnID" : "F2E9A232B97D95069B8FF94B4471C85E74F297238825A5C2712D0A06532C4767", - "PreviousTxnLgrSeq" : 18, - "Sequence" : 5, - "index" : "6C8755215E6BDA3C6B9CC5E65ADA8A10E1A571D8D7ADD7A56CCB39B9D3379924" - }, - { - "Flags" : 0, - "Indexes" : [ - "4EF85AF7B21979CEC759A6D79F0044E215DC741CC864E24F3490854504227351", - "9F27C2C9ED945516FD557C1BFAD852049B4D54D9F1524C6CC356A41F11216FD0" - ], - "LedgerEntryType" : "DirectoryNode", - "Owner" : "rBmhuVAvi372AerwzwERGjhLjqkMmAwxX", - "RootIndex" : "6C9CF08398809728A658544C300B8A25746D60140D4FB8D5DB2E448408D64A29", - "index" : "6C9CF08398809728A658544C300B8A25746D60140D4FB8D5DB2E448408D64A29" - }, - { - "Flags" : 0, - "Indexes" : [ - "45BC687C87B26FC68922EEFBC0BB25589BF3BD601C39DB0446C59F2AC8AA7754", - "9F27C2C9ED945516FD557C1BFAD852049B4D54D9F1524C6CC356A41F11216FD0", - "C5F104A35DB835AF4A4C4664BCDA57A88873DCEF23DF567485654FAEE5645949" - ], - "LedgerEntryType" : "DirectoryNode", - "Owner" : "r4nmQNH4Fhjfh6cHDbvVSsBv7KySbj4cBf", - "RootIndex" : "6F5B6CE2ADD81A143A3B5491DF1C201BD9693A5D3300D39B56560D88BBC5C34F", - "index" : "6F5B6CE2ADD81A143A3B5491DF1C201BD9693A5D3300D39B56560D88BBC5C34F" - }, - { - "Account" : "rEbq9pWn2knXFTjjuoNNrKgQeGxhmispMi", - "Balance" : "9999999980", - "Flags" : 8388608, - "LedgerEntryType" : "AccountRoot", - "OwnerCount" : 2, - "PreviousTxnID" : "960E3AEADE4C6821268EF0915E2B85ACCFF34620BE52C95243BB7A7FFD45ED33", - "PreviousTxnLgrSeq" : 32, - "Sequence" : 5, - "index" : "70C348D536CA1E102066CCB19A24784712C66FD27D55B336DCEAB7A2067B84BF" - }, - { - "Account" : "rNgfurDhqvfsVzLr5ZGB3dJysJhRkvJ79F", - "BookDirectory" : "8594645222376B2B579DBB5FE5A763B0F4FF806ECF30389B5D038D7EA4C68000", - "BookNode" : "0000000000000000", - "Flags" : 0, - "LedgerEntryType" : "Offer", - "OwnerNode" : "0000000000000000", - "PreviousTxnID" : "E1F65322D951799C02E13731D5F8A6AB16558D56807F081956C0AE577E500951", - "PreviousTxnLgrSeq" : 36, - "Sequence" : 3, - "TakerGets" : { - "currency" : "USD", - "issuer" : "rNgfurDhqvfsVzLr5ZGB3dJysJhRkvJ79F", - "value" : "1" - }, - "TakerPays" : "100000000", - "index" : "74BBA15EE0FCE694C44C3A822BC236F7F86EF4B164088CCEBA40792B463D23D5" - }, - { - "Account" : "rBtVTnNgX3uR3kyfVyaQ6hjZTdk42ay9Z3", - "BookDirectory" : "A844B95B517BCD7DD9DB9895233DF1995CF4B5B6F82E01AF5D038D7EA4C68000", - "BookNode" : "0000000000000000", - "Flags" : 0, - "LedgerEntryType" : "Offer", - "OwnerNode" : "0000000000000000", - "PreviousTxnID" : "6C97D021B347A4978FF24239C1AA6E972ECF07A468F89B21D420D4461CD4EA7B", - "PreviousTxnLgrSeq" : 38, - "Sequence" : 3, - "TakerGets" : { - "currency" : "USD", - "issuer" : "rBtVTnNgX3uR3kyfVyaQ6hjZTdk42ay9Z3", - "value" : "1" - }, - "TakerPays" : "100000000", - "index" : "775FBAA50396E1635187D2B699B4367BBF766D28033E199C270D655024DE5FD5" - }, - { - "ExchangeRate" : "5D038D7EA4C68000", - "Flags" : 0, - "Indexes" : [ "201A37D8499DD67061017513698849C120C37947833A14C57897048646A77B86" ], - "LedgerEntryType" : "DirectoryNode", - "RootIndex" : "814B0A9165776156803974961E7CE52262E4D8099B96E42F5D038D7EA4C68000", - "TakerGetsCurrency" : "0000000000000000000000005553440000000000", - "TakerGetsIssuer" : "BBA58773093C0F4DEB1F763FC1AAAA49D6706E6A", - "TakerPaysCurrency" : "0000000000000000000000000000000000000000", - "TakerPaysIssuer" : "0000000000000000000000000000000000000000", - "index" : "814B0A9165776156803974961E7CE52262E4D8099B96E42F5D038D7EA4C68000" - }, - { - "ExchangeRate" : "5D038D7EA4C68000", - "Flags" : 0, - "Indexes" : [ "74BBA15EE0FCE694C44C3A822BC236F7F86EF4B164088CCEBA40792B463D23D5" ], - "LedgerEntryType" : "DirectoryNode", - "RootIndex" : "8594645222376B2B579DBB5FE5A763B0F4FF806ECF30389B5D038D7EA4C68000", - "TakerGetsCurrency" : "0000000000000000000000005553440000000000", - "TakerGetsIssuer" : "95FF9D5D1BD1CC17A4EC199F4C57DBF21A0C97FA", - "TakerPaysCurrency" : "0000000000000000000000000000000000000000", - "TakerPaysIssuer" : "0000000000000000000000000000000000000000", - "index" : "8594645222376B2B579DBB5FE5A763B0F4FF806ECF30389B5D038D7EA4C68000" - }, - { - "Account" : "rado7qRcvPpS8ZL8SNg4SG8kBNksHyqoRa", - "Balance" : "9999999980", - "Flags" : 8388608, - "LedgerEntryType" : "AccountRoot", - "OwnerCount" : 2, - "PreviousTxnID" : "0CA268202436941272E7633407937A27DB7AD5EF54CAC700873827C633FC4043", - "PreviousTxnLgrSeq" : 36, - "Sequence" : 5, - "index" : "869C10C86D2BDEC3FB45A0F918E3F6738CB41E85060E250EF59F155831D467B5" - }, - { - "Flags" : 0, - "Indexes" : [ - "419F49361B31414099A650A649A0DD42C4FBCDCD8C9473C12D64C1FEB9CDD593", - "6AA90FBD168B55CBF413F189A8B54FA06D3530F4D88AD290827567CFEBF3FC1F", - "DC369C92374347633572CFC81B53524E67C171378EBDA0E22C06301AADEEE8C1" - ], - "LedgerEntryType" : "DirectoryNode", - "Owner" : "rBU1EP5oMwKxWr1gZnNe7K8GouQTBhzUKs", - "RootIndex" : "883D325DBA76F962449DAC3C69C746DB6626ED41E2E1A4C8C09931EB0A00375B", - "index" : "883D325DBA76F962449DAC3C69C746DB6626ED41E2E1A4C8C09931EB0A00375B" - }, - { - "Flags" : 0, - "Indexes" : [ - "452934A1A7AE45B98B523F39882EBAEC77CE42A123A21932B2BB17FFDFC2FF01", - "B0027E20A13C6C8158B59370609D9726652171FC3D6B98033C8F37B30ECD5225", - "D73C42A1C24D7DD3E18989E4AD89B7CFACDC712FA3B00FBA9B412F50B4325EB5" - ], - "LedgerEntryType" : "DirectoryNode", - "Owner" : "rND1XyLAU9G2ydhUgmRo4i2kdrSKgYZc31", - "RootIndex" : "93EB7D824357779E0FE5DC0769F8CF761F00F87CF59CB26F74BCD04A574450F9", - "index" : "93EB7D824357779E0FE5DC0769F8CF761F00F87CF59CB26F74BCD04A574450F9" - }, - { - "Balance" : { - "currency" : "USD", - "issuer" : "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value" : "5" - }, - "Flags" : 65536, - "HighLimit" : { - "currency" : "USD", - "issuer" : "rEbq9pWn2knXFTjjuoNNrKgQeGxhmispMi", - "value" : "0" - }, - "HighNode" : "0000000000000000", - "LedgerEntryType" : "RippleState", - "LowLimit" : { - "currency" : "USD", - "issuer" : "rwiTxuknPNeLDYHHLgajRVetKEEwkYhTaQ", - "value" : "1000" - }, - "LowNode" : "0000000000000000", - "PreviousTxnID" : "7F848B38705A55E6E17D6F5ED6A90FC0D5C9C1402716022453861C948FE1A7D8", - "PreviousTxnLgrSeq" : 30, - "index" : "94BA467A169DD916C2052B88E1903ACF6399AE1334EA3C74D3DE1A863DCBC675" - }, - { - "Account" : "r31PEiKfa3y6xTi7uBcSp7F3nDLvVMmqyi", - "BookDirectory" : "3E163C81A24D9D90351341B442A28A4374844ADC73684D3E5D038D7EA4C68000", - "BookNode" : "0000000000000000", - "Flags" : 0, - "LedgerEntryType" : "Offer", - "OwnerNode" : "0000000000000000", - "PreviousTxnID" : "B5F4C3E1A1965DE70B2F99476B623686EB6012EFB255D91A8286FDA3C4810B26", - "PreviousTxnLgrSeq" : 16, - "Sequence" : 3, - "TakerGets" : { - "currency" : "USD", - "issuer" : "r31PEiKfa3y6xTi7uBcSp7F3nDLvVMmqyi", - "value" : "1" - }, - "TakerPays" : "100000000", - "index" : "98D2CF1B63B8223241DBB2E65AF8EB806C1943D00A1A95BD765719DC05BD7CD0" - }, - { - "Account" : "rH15iZg9KFSi7d1usvcsPerUtg7dhpMbk4", - "BookDirectory" : "41683E61E61B3C831CFA02CF490BB69BD888BA6F84545D695D038D7EA4C68000", - "BookNode" : "0000000000000000", - "Flags" : 0, - "LedgerEntryType" : "Offer", - "OwnerNode" : "0000000000000000", - "PreviousTxnID" : "654582EE05C96FBA84EB0F9D6663A040AE17C9ECDA2FE7BE7EC3C5118809CCCA", - "PreviousTxnLgrSeq" : 22, - "Sequence" : 3, - "TakerGets" : { - "currency" : "USD", - "issuer" : "rH15iZg9KFSi7d1usvcsPerUtg7dhpMbk4", - "value" : "1" - }, - "TakerPays" : "100000000", - "index" : "9B53EE6A8C2C5B5451B62D3C87D002283072FD3BDC1F88A01AD8D469A231A830" - }, - { - "Balance" : { - "currency" : "USD", - "issuer" : "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value" : "5" - }, - "Flags" : 65536, - "HighLimit" : { - "currency" : "USD", - "issuer" : "r4nmQNH4Fhjfh6cHDbvVSsBv7KySbj4cBf", - "value" : "0" - }, - "HighNode" : "0000000000000000", - "LedgerEntryType" : "RippleState", - "LowLimit" : { - "currency" : "USD", - "issuer" : "rBmhuVAvi372AerwzwERGjhLjqkMmAwxX", - "value" : "1000" - }, - "LowNode" : "0000000000000000", - "PreviousTxnID" : "2F422A8BBD6FF0932CE9B5C426FFD475A5F4822C70D015A7FAF3C8E1DE840779", - "PreviousTxnLgrSeq" : 6, - "index" : "9F27C2C9ED945516FD557C1BFAD852049B4D54D9F1524C6CC356A41F11216FD0" - }, - { - "ExchangeRate" : "5D038D7EA4C68000", - "Flags" : 0, - "Indexes" : [ "6BFD99B17EAB515504CC44B9D0D34E8BE8337B09331606BF1B06B48AE0B17A36" ], - "LedgerEntryType" : "DirectoryNode", - "RootIndex" : "9FA8E49AA632FBD07883E676449FA5C05B2CACB4E5BB5B9E5D038D7EA4C68000", - "TakerGetsCurrency" : "0000000000000000000000005553440000000000", - "TakerGetsIssuer" : "AA1FF5DE48006C0BC4DDD5C89133D828F061EA58", - "TakerPaysCurrency" : "0000000000000000000000000000000000000000", - "TakerPaysIssuer" : "0000000000000000000000000000000000000000", - "index" : "9FA8E49AA632FBD07883E676449FA5C05B2CACB4E5BB5B9E5D038D7EA4C68000" - }, - { - "Balance" : { - "currency" : "USD", - "issuer" : "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value" : "5" - }, - "Flags" : 65536, - "HighLimit" : { - "currency" : "USD", - "issuer" : "r31PEiKfa3y6xTi7uBcSp7F3nDLvVMmqyi", - "value" : "0" - }, - "HighNode" : "0000000000000000", - "LedgerEntryType" : "RippleState", - "LowLimit" : { - "currency" : "USD", - "issuer" : "rnYDWQaRdMb5neCGgvFfhw3MBoxmv5LtfH", - "value" : "1000" - }, - "LowNode" : "0000000000000000", - "PreviousTxnID" : "6FEF9FC6CE362B634386C9F1C3485DC91715D9FA0B118A730466C976F4A15217", - "PreviousTxnLgrSeq" : 16, - "index" : "A1E72F5EDF478908AA5AFD5268CC5D185611D2E7D4E201FE01A71E45AE2E7612" - }, - { - "ExchangeRate" : "5D038D7EA4C68000", - "Flags" : 0, - "Indexes" : [ "775FBAA50396E1635187D2B699B4367BBF766D28033E199C270D655024DE5FD5" ], - "LedgerEntryType" : "DirectoryNode", - "RootIndex" : "A844B95B517BCD7DD9DB9895233DF1995CF4B5B6F82E01AF5D038D7EA4C68000", - "TakerGetsCurrency" : "0000000000000000000000005553440000000000", - "TakerGetsIssuer" : "776E3869D5D4FD1E7F90EF560C5D7BF803EDE1BD", - "TakerPaysCurrency" : "0000000000000000000000000000000000000000", - "TakerPaysIssuer" : "0000000000000000000000000000000000000000", - "index" : "A844B95B517BCD7DD9DB9895233DF1995CF4B5B6F82E01AF5D038D7EA4C68000" - }, - { - "Balance" : { - "currency" : "USD", - "issuer" : "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value" : "-5" - }, - "Flags" : 131072, - "HighLimit" : { - "currency" : "USD", - "issuer" : "rGpeQzUWFu4fMhJHZ1Via5aqFC3A5twZUD", - "value" : "1000" - }, - "HighNode" : "0000000000000000", - "LedgerEntryType" : "RippleState", - "LowLimit" : { - "currency" : "USD", - "issuer" : "rrnsYgWn13Z28GtRgznrSUsLfMkvsXCZSu", - "value" : "0" - }, - "LowNode" : "0000000000000000", - "PreviousTxnID" : "9F7DB6226453B14C647E902F789083F90E43E42AE2E3FB3A612602756CC150F8", - "PreviousTxnLgrSeq" : 10, - "index" : "A8AF8212474E3A74913765F5DA1D78A60EA9DC101624509C002A602A14C6FF4F" - }, - { - "Balance" : { - "currency" : "USD", - "issuer" : "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value" : "-5" - }, - "Flags" : 131072, - "HighLimit" : { - "currency" : "USD", - "issuer" : "rJfBCsnwSHXjTJ4GH5Ax6Kyw48X977hqyq", - "value" : "1000" - }, - "HighNode" : "0000000000000000", - "LedgerEntryType" : "RippleState", - "LowLimit" : { - "currency" : "USD", - "issuer" : "rado7qRcvPpS8ZL8SNg4SG8kBNksHyqoRa", - "value" : "0" - }, - "LowNode" : "0000000000000000", - "PreviousTxnID" : "FEF0C28CA82A738EB027F39E370E4CEB4693545FA207422039921B56FB5F69A1", - "PreviousTxnLgrSeq" : 34, - "index" : "AA6C7719315BB87A89C1A02FA51D3313E1A6A12C0BDF6AD846FDF8AD28E1E231" - }, - { - "ExchangeRate" : "5D038D7EA4C68000", - "Flags" : 0, - "Indexes" : [ "45BC687C87B26FC68922EEFBC0BB25589BF3BD601C39DB0446C59F2AC8AA7754" ], - "LedgerEntryType" : "DirectoryNode", - "RootIndex" : "AE9AC31E476582E339418E925C4C77544D30978E6DCBD3F85D038D7EA4C68000", - "TakerGetsCurrency" : "0000000000000000000000005553440000000000", - "TakerGetsIssuer" : "E7415E754E899F0D7F2A185679E71E00DE2A0CF3", - "TakerPaysCurrency" : "0000000000000000000000000000000000000000", - "TakerPaysIssuer" : "0000000000000000000000000000000000000000", - "index" : "AE9AC31E476582E339418E925C4C77544D30978E6DCBD3F85D038D7EA4C68000" - }, - { - "Balance" : { - "currency" : "USD", - "issuer" : "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value" : "5" - }, - "Flags" : 65536, - "HighLimit" : { - "currency" : "USD", - "issuer" : "rND1XyLAU9G2ydhUgmRo4i2kdrSKgYZc31", - "value" : "0" - }, - "HighNode" : "0000000000000000", - "LedgerEntryType" : "RippleState", - "LowLimit" : { - "currency" : "USD", - "issuer" : "rBtVTnNgX3uR3kyfVyaQ6hjZTdk42ay9Z3", - "value" : "1000" - }, - "LowNode" : "0000000000000000", - "PreviousTxnID" : "630582582A2F1698B97BFA62559288A13C8B7B565580E2C14F8A15AAF15E654F", - "PreviousTxnLgrSeq" : 40, - "index" : "B0027E20A13C6C8158B59370609D9726652171FC3D6B98033C8F37B30ECD5225" - }, - { - "Account" : "rrnsYgWn13Z28GtRgznrSUsLfMkvsXCZSu", - "BookDirectory" : "1E789859BD3DDA735F4209B728C9FCBB1C754E53AA36E5685D038D7EA4C68000", - "BookNode" : "0000000000000000", - "Flags" : 0, - "LedgerEntryType" : "Offer", - "OwnerNode" : "0000000000000000", - "PreviousTxnID" : "B3D65C0F1E0531437F35B18B502ED151E37901DF0FB7576B3BF5027595499831", - "PreviousTxnLgrSeq" : 10, - "Sequence" : 3, - "TakerGets" : { - "currency" : "USD", - "issuer" : "rrnsYgWn13Z28GtRgznrSUsLfMkvsXCZSu", - "value" : "1" - }, - "TakerPays" : "100000000", - "index" : "B3B0095E3F89235FBF93FA177CB39F22BB94BD0A680E0768486D7A367C45F321" - }, - { - "Balance" : { - "currency" : "USD", - "issuer" : "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value" : "5" - }, - "Flags" : 65536, - "HighLimit" : { - "currency" : "USD", - "issuer" : "rH15iZg9KFSi7d1usvcsPerUtg7dhpMbk4", - "value" : "0" - }, - "HighNode" : "0000000000000000", - "LedgerEntryType" : "RippleState", - "LowLimit" : { - "currency" : "USD", - "issuer" : "r9MB1RNWZChfV3YdLrB3Rm5AoMULewDtiu", - "value" : "1000" - }, - "LowNode" : "0000000000000000", - "PreviousTxnID" : "B2B6DD81D4FA72355E205936B660D3B7D8CEAF885C7A664FAE4D80AEEAA9CC78", - "PreviousTxnLgrSeq" : 22, - "index" : "B43B6611C9E172A742829AD42A8F999636C256AB62C76657F57CAB05D914FFC8" - }, - { - "Flags" : 0, - "Hashes" : [ - "AB868A6CFEEC779C2FF845C0AF00A642259986AF40C01976A7F842B6918936C7", - "8AEDBB96643962F1D40F01E25632ABB3C56C9F04B0231EE4B18248B90173D189", - "2DE03686614122E75AF52B952F49766AE1E4835B2115E9D6ABE082756C2E3A16", - "97FF625741330CF7854147AF1DE0644955E59AA7C467BE2C395667E05E1C8454", - "0D46E2FE9E2E85394D9ED4D015878CB819DC2C7C66E3DA1E8056772EC35819C9", - "C2F9920C435744BA027D97F4008E70E5371474BA35E0B428B9925FFE87A29B13", - "2E82B2636DB7A27BD8B25D1FE83AF816679DD37D20EEE3E2EAE76B22FCD4D198", - "5F2A314577A32DDBAF4B3F2257D0DA4E1F0C312F78D8A928EF4BDF7395789034", - "D83760C4F1C7FD80146FBEEDE802517BECD7989E87ED109C3067D3C6E7734C23", - "65697ECF5E6F04AD690A0CD853452A602F1211AAE8B69874E23A259F5E0598CE", - "C34FB6E1ABB13277AC2EC0776F84817EB714FC23915FC1E94322480392CC1111", - "B0DB864955A369D691355210F07E80089C13931AF405A7ECD6046ED13916B029", - "D7E7B50EAD28881E71E225CF0C02F87CFA3AFAEC78C490D08842C5D72EC9F7E4", - "453594F07C2068211C4FF6FBCF812CD0F25276608337445E4AD6762A4A609C53", - "DFB4394EF9E199944887043214F72762D78B1E3D20F2FDFA98C3855A92DD203E", - "CBE64F15AF5769D6D4DB0C163692F2531A60301211EAD228E3E93BC4A7307F43", - "FDADAEB1FDDFF86A3674DF2F1D220D03FF58D49601F7BB0621591F890D4065FD", - "018B6DD350DE00514755D041A03DA68B17922D999120D720548EE852828E8857", - "68D8CD154E056F47EC404BC581CFD1BCE826FBDCC7EEF919A0AF203C1FC3B3F0", - "5C659803EE2E78CC2DF2668246357DA47E96FA89D550FB23DA234DA0815A1DCD", - "1064F9FB691084773B1419328345A229841AC91D9F9EE3D2B100C46CC08BB795", - "71F3BB197DF675573C258DF95C93A76114657041256EF1E66863443BDC393F82", - "363FA76F53707BB55989B3492C4B4BFFF9A65A0987F3798F90D8F5F1CF4E91AE", - "78ADB63B1822B3109AC45E48D7B669A02091CC0B630CC4735745E82B7D48CEE6", - "BCFC3B2CAA4EA8487540DBBDED987F0220B16D5D30A6198D23A97030CE51C774", - "21DA9DD0F1DE732B3A4934EA13481F016B07C994C1E90D922BB257D4C3D1A5EA", - "A8B718E2240DD8EB6F378C711D5FE0C3557F121930CD2536AA823E93EFF061DC", - "423659AE78E0E6B0BB924E84DF5BFFDE16A7286ADC24F23DBF9E37B5102AAB56", - "0EC948965996A9A14D130F328E2227469D84F9852499316597E9CF702AC91632", - "449D226E7CE332AF58D530005411A748B24807D028B6CDAFC86A001CBAFF14EF", - "277AE5A3C62904184D13229520D8485EF51673D726BD0527F9D9D44FF1EDEBDD", - "59C10DFB826898F30B6DD09CE4D528946B096B44F80F6963AFA875FBD39A8A21", - "54A076BB61B7FC872FB889B0CCAD7227B0921A1E5D46CC3A8BC9F1750B90CFB1", - "867E5CCCD369C3F144801B5B195267F88570F61DDE7988EEFA3080B452C35947", - "F425E2FD49B14E759DA3120B0BE30371FA45A34BA12B5012EAA4339BC0CE2B3A", - "52A16084C5D60B95B66B51B98331057A525FC53EC0E20AAB441C0929DDE5E2FA", - "B0506CE7FBF91D9F51E5B70E14A1D8226B1E1F8F23402645A4A5663BB9C634AF", - "C8359AC016515C92DB80FFFFB00AF9AC87CBE9DB96984DF6FB251CAA8C5B6059", - "703F05B92BFFFA86B2787B7247555F06AC390252BE7D22A2A4B4459A0EFB9CDC", - "B0354B3CC3FB22BA41F91402A99699C97D10B8EC35BE088196913D05820CA99E", - "5E3DC8EE9C02CB2A311DF666FFB1F904E56F987DCBBECBB2F4F4EC43254789FB" - ], - "LastLedgerSequence" : 41, - "LedgerEntryType" : "LedgerHashes", - "index" : "B4979A36CDC7F3D3D5C31A4EAE2AC7D7209DDA877588B9AFC66799692AB0D66B" - }, - { - "Account" : "rnYDWQaRdMb5neCGgvFfhw3MBoxmv5LtfH", - "BookDirectory" : "EE32C75AA92C3B9CE069B54D3757A2555EDA1459FF800FBE5D038D7EA4C68000", - "BookNode" : "0000000000000000", - "Flags" : 0, - "LedgerEntryType" : "Offer", - "OwnerNode" : "0000000000000000", - "PreviousTxnID" : "EAC17D4FBFFC094A2966526ADD097106F61EBE3C30D95AAA0414F5166285A8B7", - "PreviousTxnLgrSeq" : 14, - "Sequence" : 3, - "TakerGets" : { - "currency" : "USD", - "issuer" : "rnYDWQaRdMb5neCGgvFfhw3MBoxmv5LtfH", - "value" : "1" - }, - "TakerPays" : "100000000", - "index" : "B4EE24F900CFE2E898972BD36FCCB8A58D3AC534962EE06EF0974ED2D09AE716" - }, - { - "Flags" : 0, - "Indexes" : [ - "2927B356D4FEB9824F302372EC64B65A83A7288337FE111F980337709D1AEB78", - "AA6C7719315BB87A89C1A02FA51D3313E1A6A12C0BDF6AD846FDF8AD28E1E231", - "E710D6B27BC9DA64F27942F40ADB7A799D4D50B42F4864377E49AEF0FDBCDF94" - ], - "LedgerEntryType" : "DirectoryNode", - "Owner" : "rado7qRcvPpS8ZL8SNg4SG8kBNksHyqoRa", - "RootIndex" : "B4FADD381FFA8E8154132B8E97DADA97F3A60F971A97D24B28B981093FEE3E3C", - "index" : "B4FADD381FFA8E8154132B8E97DADA97F3A60F971A97D24B28B981093FEE3E3C" - }, - { - "Balance" : { - "currency" : "USD", - "issuer" : "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value" : "5" - }, - "Flags" : 65536, - "HighLimit" : { - "currency" : "USD", - "issuer" : "rJsaPnGdeo7BhMnHjuc3n44Mf7Ra1qkSVJ", - "value" : "0" - }, - "HighNode" : "0000000000000000", - "LedgerEntryType" : "RippleState", - "LowLimit" : { - "currency" : "USD", - "issuer" : "rrnsYgWn13Z28GtRgznrSUsLfMkvsXCZSu", - "value" : "1000" - }, - "LowNode" : "0000000000000000", - "PreviousTxnID" : "6793BC1FAB568465327C53EC2CD224524DC678EF3256EA22033F5F89D56AB584", - "PreviousTxnLgrSeq" : 12, - "index" : "B4FDB0503DCD82862122618F257A4C279AA3A1B22F036B8516B7A1C2CF4E7EE3" - }, - { - "Account" : "rGpeQzUWFu4fMhJHZ1Via5aqFC3A5twZUD", - "Balance" : "9999999980", - "Flags" : 8388608, - "LedgerEntryType" : "AccountRoot", - "OwnerCount" : 2, - "PreviousTxnID" : "8C6B63E92016F088807F822148919CD320ACF3934B832AC787A2FE8C0D35DF2E", - "PreviousTxnLgrSeq" : 10, - "Sequence" : 5, - "index" : "B7B6A2E2494AF66AE5FAFF88CA37F9F93B762ADD55DB68A4B457B2C51BE4A705" - }, - { - "Account" : "r9MB1RNWZChfV3YdLrB3Rm5AoMULewDtiu", - "BookDirectory" : "631E572638B141B43F9E6795B73B3CB1B75C37740D6F39D75D038D7EA4C68000", - "BookNode" : "0000000000000000", - "Flags" : 0, - "LedgerEntryType" : "Offer", - "OwnerNode" : "0000000000000000", - "PreviousTxnID" : "9C9EC9375DFB1700FFC846DEC2A6160AB86D3FE1D2B7823C0EA5F8525A910B08", - "PreviousTxnLgrSeq" : 20, - "Sequence" : 3, - "TakerGets" : { - "currency" : "USD", - "issuer" : "r9MB1RNWZChfV3YdLrB3Rm5AoMULewDtiu", - "value" : "1" - }, - "TakerPays" : "100000000", - "index" : "C55C2E06D350E31F0E9FA1E6C1934962E9DFB7EEFC01A2B0AF7DA7FB76439FC7" - }, - { - "Balance" : { - "currency" : "USD", - "issuer" : "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value" : "-5" - }, - "Flags" : 131072, - "HighLimit" : { - "currency" : "USD", - "issuer" : "r4nmQNH4Fhjfh6cHDbvVSsBv7KySbj4cBf", - "value" : "1000" - }, - "HighNode" : "0000000000000000", - "LedgerEntryType" : "RippleState", - "LowLimit" : { - "currency" : "USD", - "issuer" : "rGpeQzUWFu4fMhJHZ1Via5aqFC3A5twZUD", - "value" : "0" - }, - "LowNode" : "0000000000000000", - "PreviousTxnID" : "1093FF666E6CD58273F7C71FFF7CDA2483523D221AC95B755892F405E3B80934", - "PreviousTxnLgrSeq" : 8, - "index" : "C5F104A35DB835AF4A4C4664BCDA57A88873DCEF23DF567485654FAEE5645949" - }, - { - "Flags" : 0, - "Indexes" : [ - "51F488F106AD3C4752C1690A92154D0059083BF5B7F0512125BA31C073DC2FB9", - "D73C42A1C24D7DD3E18989E4AD89B7CFACDC712FA3B00FBA9B412F50B4325EB5" - ], - "LedgerEntryType" : "DirectoryNode", - "Owner" : "rHd21p9Gb834Ri4pzRzGFJ7PjRzymWuBWu", - "RootIndex" : "C674C1B72BC0BDC9B90C2A9F1294F5189D00DC101E165127A393A74ADA709B3C", - "index" : "C674C1B72BC0BDC9B90C2A9F1294F5189D00DC101E165127A393A74ADA709B3C" - }, - { - "ExchangeRate" : "5D038D7EA4C68000", - "Flags" : 0, - "Indexes" : [ "387A729A2F8BFB97655F4C4E5AE5E8ACFF326B11AE3E533004F708CBA7CFD43F" ], - "LedgerEntryType" : "DirectoryNode", - "RootIndex" : "C7E412DB071D9E43461808CE76039E5C5BF7854E274DDB9D5D038D7EA4C68000", - "TakerGetsCurrency" : "0000000000000000000000005553440000000000", - "TakerGetsIssuer" : "BADF7633E5C957A65E8911FBC392B4BEA4B65780", - "TakerPaysCurrency" : "0000000000000000000000000000000000000000", - "TakerPaysIssuer" : "0000000000000000000000000000000000000000", - "index" : "C7E412DB071D9E43461808CE76039E5C5BF7854E274DDB9D5D038D7EA4C68000" - }, - { - "Balance" : { - "currency" : "USD", - "issuer" : "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value" : "5" - }, - "Flags" : 65536, - "HighLimit" : { - "currency" : "USD", - "issuer" : "r9MB1RNWZChfV3YdLrB3Rm5AoMULewDtiu", - "value" : "0" - }, - "HighNode" : "0000000000000000", - "LedgerEntryType" : "RippleState", - "LowLimit" : { - "currency" : "USD", - "issuer" : "rfM5xD2CY6XB8o1WsWoJ3ZHGkbHU4NYXr", - "value" : "1000" - }, - "LowNode" : "0000000000000000", - "PreviousTxnID" : "77B0C007E185D8196F385C12075A98DE59C59824BA8D52EC7400C724FD888A68", - "PreviousTxnLgrSeq" : 20, - "index" : "C8BC8B52B7F8BC724C843D280AA26F579FD0220FAC8BCE491386B8E12C25A99D" - }, - { - "ExchangeRate" : "5D038D7EA4C68000", - "Flags" : 0, - "Indexes" : [ "2927B356D4FEB9824F302372EC64B65A83A7288337FE111F980337709D1AEB78" ], - "LedgerEntryType" : "DirectoryNode", - "RootIndex" : "CB0BAC4A118A33819C7FBBA67ED7D0DB6C4C18DB8BF001495D038D7EA4C68000", - "TakerGetsCurrency" : "0000000000000000000000005553440000000000", - "TakerGetsIssuer" : "3DCE672C523362ABC5DFB4ADB2428802D11190C3", - "TakerPaysCurrency" : "0000000000000000000000000000000000000000", - "TakerPaysIssuer" : "0000000000000000000000000000000000000000", - "index" : "CB0BAC4A118A33819C7FBBA67ED7D0DB6C4C18DB8BF001495D038D7EA4C68000" - }, - { - "Balance" : { - "currency" : "USD", - "issuer" : "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value" : "-5" - }, - "Flags" : 131072, - "HighLimit" : { - "currency" : "USD", - "issuer" : "rJsaPnGdeo7BhMnHjuc3n44Mf7Ra1qkSVJ", - "value" : "1000" - }, - "HighNode" : "0000000000000000", - "LedgerEntryType" : "RippleState", - "LowLimit" : { - "currency" : "USD", - "issuer" : "rnYDWQaRdMb5neCGgvFfhw3MBoxmv5LtfH", - "value" : "0" - }, - "LowNode" : "0000000000000000", - "PreviousTxnID" : "4044AF3B8EC655188A96AF7FDF788D8B3D2756C52F49AA8D18BDAF3133F56844", - "PreviousTxnLgrSeq" : 14, - "index" : "CC07E55B7114FAD14663E5BDD16458E3EFA300C2C139E4E0FC9E2635E3D8099E" - }, - { - "Flags" : 0, - "Indexes" : [ - "1228AC065977AC74F9115AD2A324B3BE3C1145907DED87789ADCBFE6113D1692", - "94BA467A169DD916C2052B88E1903ACF6399AE1334EA3C74D3DE1A863DCBC675", - "E800FC42348E30D7957E66BB3AF6729E54FD0063D865C375E0EBE0E00108A932" - ], - "LedgerEntryType" : "DirectoryNode", - "Owner" : "rEbq9pWn2knXFTjjuoNNrKgQeGxhmispMi", - "RootIndex" : "CDB6DCEC9DDEF2020CBB0706B1CA0A9D3BC61A7ED6F6ADFC6802F767A9C5009F", - "index" : "CDB6DCEC9DDEF2020CBB0706B1CA0A9D3BC61A7ED6F6ADFC6802F767A9C5009F" - }, - { - "Account" : "rBmhuVAvi372AerwzwERGjhLjqkMmAwxX", - "Balance" : "9999999990", - "Flags" : 8388608, - "LedgerEntryType" : "AccountRoot", - "OwnerCount" : 2, - "PreviousTxnID" : "06CFD8E92F1C13D346BC8E0A1C9AD8FF78B4D18C3C30ACE96E551A8289919406", - "PreviousTxnLgrSeq" : 6, - "Sequence" : 4, - "index" : "D5F3E175EBEC74788F1D45E9014DBD8343EA6E9A3546E4D23133145010C70FF5" - }, - { - "Balance" : { - "currency" : "USD", - "issuer" : "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value" : "5" - }, - "Flags" : 65536, - "HighLimit" : { - "currency" : "USD", - "issuer" : "rHd21p9Gb834Ri4pzRzGFJ7PjRzymWuBWu", - "value" : "0" - }, - "HighNode" : "0000000000000000", - "LedgerEntryType" : "RippleState", - "LowLimit" : { - "currency" : "USD", - "issuer" : "rND1XyLAU9G2ydhUgmRo4i2kdrSKgYZc31", - "value" : "1000" - }, - "LowNode" : "0000000000000000", - "PreviousTxnID" : "6E3259FEAF5E0AD82F4E449776A2EFF15D031FA5C28AFCBFBA063B844842DC4E", - "PreviousTxnLgrSeq" : 42, - "index" : "D73C42A1C24D7DD3E18989E4AD89B7CFACDC712FA3B00FBA9B412F50B4325EB5" - }, - { - "Balance" : { - "currency" : "USD", - "issuer" : "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value" : "-5" - }, - "Flags" : 131072, - "HighLimit" : { - "currency" : "USD", - "issuer" : "rGWYwGaczQWiduWkccFZKXfp5nDRPqNBNS", - "value" : "1000" - }, - "HighNode" : "0000000000000000", - "LedgerEntryType" : "RippleState", - "LowLimit" : { - "currency" : "USD", - "issuer" : "rBU1EP5oMwKxWr1gZnNe7K8GouQTBhzUKs", - "value" : "0" - }, - "LowNode" : "0000000000000000", - "PreviousTxnID" : "536A62A1E87FD9569DC4480F3F56637679A74320BD44C0B7A453A54DF579828F", - "PreviousTxnLgrSeq" : 26, - "index" : "DC369C92374347633572CFC81B53524E67C171378EBDA0E22C06301AADEEE8C1" - }, - { - "Flags" : 0, - "Indexes" : [ - "3AF6F0694BAC73098A2B39D44C39DDD1CCA08322C21B7A1AAFA9DD5C77612786", - "5377F79829B9FDCBB7D5E77CCD9A97D6B9C2F9602F2606561ADE64BFB62C7E4E", - "C8BC8B52B7F8BC724C843D280AA26F579FD0220FAC8BCE491386B8E12C25A99D" - ], - "LedgerEntryType" : "DirectoryNode", - "Owner" : "rfM5xD2CY6XB8o1WsWoJ3ZHGkbHU4NYXr", - "RootIndex" : "DCA8C37E87CAF68E1485FD32ADBEDB6E735DCAF985A93E8F37CC870B18C88EE6", - "index" : "DCA8C37E87CAF68E1485FD32ADBEDB6E735DCAF985A93E8F37CC870B18C88EE6" - }, - { - "Balance" : { - "currency" : "USD", - "issuer" : "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value" : "-5" - }, - "Flags" : 131072, - "HighLimit" : { - "currency" : "USD", - "issuer" : "rNgfurDhqvfsVzLr5ZGB3dJysJhRkvJ79F", - "value" : "1000" - }, - "HighNode" : "0000000000000000", - "LedgerEntryType" : "RippleState", - "LowLimit" : { - "currency" : "USD", - "issuer" : "rBtVTnNgX3uR3kyfVyaQ6hjZTdk42ay9Z3", - "value" : "0" - }, - "LowNode" : "0000000000000000", - "PreviousTxnID" : "C2427249F9F4C8E1F3F8D5D00003C2A47D3A05D7DFB8083E45D08935B4CDF432", - "PreviousTxnLgrSeq" : 38, - "index" : "E2E37CFB8ABCEEAC7A51BBC15CD32B068573463CAC0F7548E98B0AA8E0EA138F" - }, - { - "ExchangeRate" : "5D038D7EA4C68000", - "Flags" : 0, - "Indexes" : [ "3AF6F0694BAC73098A2B39D44C39DDD1CCA08322C21B7A1AAFA9DD5C77612786" ], - "LedgerEntryType" : "DirectoryNode", - "RootIndex" : "E3264B348B8B0E8B605B414C82DFE77DEE340751834E11975D038D7EA4C68000", - "TakerGetsCurrency" : "0000000000000000000000005553440000000000", - "TakerGetsIssuer" : "0133CB72B8CC959BA602C4A427D43F921594BEDF", - "TakerPaysCurrency" : "0000000000000000000000000000000000000000", - "TakerPaysIssuer" : "0000000000000000000000000000000000000000", - "index" : "E3264B348B8B0E8B605B414C82DFE77DEE340751834E11975D038D7EA4C68000" - }, - { - "Flags" : 0, - "Indexes" : [ - "0E9DE48BAB27A40AD816C70569E9C284F1838CB6ADDE6740BB5A2F675CF47D12", - "6AA90FBD168B55CBF413F189A8B54FA06D3530F4D88AD290827567CFEBF3FC1F", - "94BA467A169DD916C2052B88E1903ACF6399AE1334EA3C74D3DE1A863DCBC675" - ], - "LedgerEntryType" : "DirectoryNode", - "Owner" : "rwiTxuknPNeLDYHHLgajRVetKEEwkYhTaQ", - "RootIndex" : "E57469942822BDB2AE6588D2B5B73D0853F3EAAF2E8C38C2B01044EC68E26F82", - "index" : "E57469942822BDB2AE6588D2B5B73D0853F3EAAF2E8C38C2B01044EC68E26F82" - }, - { - "Account" : "rrnsYgWn13Z28GtRgznrSUsLfMkvsXCZSu", - "Balance" : "9999999980", - "Flags" : 8388608, - "LedgerEntryType" : "AccountRoot", - "OwnerCount" : 2, - "PreviousTxnID" : "AD1CFD44D89D9B15E2C2655A320F432743220878E3C1FCC96E2CD29F222F9350", - "PreviousTxnLgrSeq" : 12, - "Sequence" : 5, - "index" : "E616B629A304F27317ED68DF90FE7D75CEB19A3BDCF62A98DB4EF794BB044B4A" - }, - { - "Flags" : 0, - "Indexes" : [ - "201A37D8499DD67061017513698849C120C37947833A14C57897048646A77B86", - "AA6C7719315BB87A89C1A02FA51D3313E1A6A12C0BDF6AD846FDF8AD28E1E231", - "E800FC42348E30D7957E66BB3AF6729E54FD0063D865C375E0EBE0E00108A932" - ], - "LedgerEntryType" : "DirectoryNode", - "Owner" : "rJfBCsnwSHXjTJ4GH5Ax6Kyw48X977hqyq", - "RootIndex" : "E6F0CEAB2AA64B6FBD0C1EA0B6D108ED82E53EC68FDD289413856F83F67BBFD3", - "index" : "E6F0CEAB2AA64B6FBD0C1EA0B6D108ED82E53EC68FDD289413856F83F67BBFD3" - }, - { - "Balance" : { - "currency" : "USD", - "issuer" : "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value" : "5" - }, - "Flags" : 65536, - "HighLimit" : { - "currency" : "USD", - "issuer" : "rNgfurDhqvfsVzLr5ZGB3dJysJhRkvJ79F", - "value" : "0" - }, - "HighNode" : "0000000000000000", - "LedgerEntryType" : "RippleState", - "LowLimit" : { - "currency" : "USD", - "issuer" : "rado7qRcvPpS8ZL8SNg4SG8kBNksHyqoRa", - "value" : "1000" - }, - "LowNode" : "0000000000000000", - "PreviousTxnID" : "D921E5F544400DED307AB03724E9036EDEE9A88B9CACBDF56169FAD0F0592D1E", - "PreviousTxnLgrSeq" : 36, - "index" : "E710D6B27BC9DA64F27942F40ADB7A799D4D50B42F4864377E49AEF0FDBCDF94" - }, - { - "Balance" : { - "currency" : "USD", - "issuer" : "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value" : "5" - }, - "Flags" : 65536, - "HighLimit" : { - "currency" : "USD", - "issuer" : "rJfBCsnwSHXjTJ4GH5Ax6Kyw48X977hqyq", - "value" : "0" - }, - "HighNode" : "0000000000000000", - "LedgerEntryType" : "RippleState", - "LowLimit" : { - "currency" : "USD", - "issuer" : "rEbq9pWn2knXFTjjuoNNrKgQeGxhmispMi", - "value" : "1000" - }, - "LowNode" : "0000000000000000", - "PreviousTxnID" : "3987B5D843E8C619BD8EFB3D73CD593444E2BD59005DEFBE829BD3595160938B", - "PreviousTxnLgrSeq" : 32, - "index" : "E800FC42348E30D7957E66BB3AF6729E54FD0063D865C375E0EBE0E00108A932" - }, - { - "ExchangeRate" : "5D038D7EA4C68000", - "Flags" : 0, - "Indexes" : [ "B4EE24F900CFE2E898972BD36FCCB8A58D3AC534962EE06EF0974ED2D09AE716" ], - "LedgerEntryType" : "DirectoryNode", - "RootIndex" : "EE32C75AA92C3B9CE069B54D3757A2555EDA1459FF800FBE5D038D7EA4C68000", - "TakerGetsCurrency" : "0000000000000000000000005553440000000000", - "TakerGetsIssuer" : "31C7D6915E15AB3EFDC9D45D202D6B285B225B68", - "TakerPaysCurrency" : "0000000000000000000000000000000000000000", - "TakerPaysIssuer" : "0000000000000000000000000000000000000000", - "index" : "EE32C75AA92C3B9CE069B54D3757A2555EDA1459FF800FBE5D038D7EA4C68000" - }, - { - "Flags" : 0, - "Indexes" : [ - "5377F79829B9FDCBB7D5E77CCD9A97D6B9C2F9602F2606561ADE64BFB62C7E4E", - "98D2CF1B63B8223241DBB2E65AF8EB806C1943D00A1A95BD765719DC05BD7CD0", - "A1E72F5EDF478908AA5AFD5268CC5D185611D2E7D4E201FE01A71E45AE2E7612" - ], - "LedgerEntryType" : "DirectoryNode", - "Owner" : "r31PEiKfa3y6xTi7uBcSp7F3nDLvVMmqyi", - "RootIndex" : "EF7CDCEF0965B7ABB189AA123F73BD47A735B9EC8915D52737D085090AC4E6A4", - "index" : "EF7CDCEF0965B7ABB189AA123F73BD47A735B9EC8915D52737D085090AC4E6A4" - }, - { - "Account" : "rGWYwGaczQWiduWkccFZKXfp5nDRPqNBNS", - "Balance" : "9999999980", - "Flags" : 8388608, - "LedgerEntryType" : "AccountRoot", - "OwnerCount" : 2, - "PreviousTxnID" : "35A1C7A888A20BEB03F204BE3BEC53C53821A04C38FEB1F296A6CE45C6DD62A0", - "PreviousTxnLgrSeq" : 26, - "Sequence" : 5, - "index" : "F61B7A4808AAFDF25F400A358367888F50F656DA220997F8BDDE698B0B9D0455" - }, - { - "Flags" : 0, - "Indexes" : [ - "2C368DD90B4B39EC70A08269FEBB94A146B4914CECA2B0B90BB120807CEAECB3", - "9B53EE6A8C2C5B5451B62D3C87D002283072FD3BDC1F88A01AD8D469A231A830", - "B43B6611C9E172A742829AD42A8F999636C256AB62C76657F57CAB05D914FFC8" - ], - "LedgerEntryType" : "DirectoryNode", - "Owner" : "rH15iZg9KFSi7d1usvcsPerUtg7dhpMbk4", - "RootIndex" : "F91FBC39C3964209D996FDF615E17C9AF89DA36198A98CDF4D1F90AC9F263E05", - "index" : "F91FBC39C3964209D996FDF615E17C9AF89DA36198A98CDF4D1F90AC9F263E05" - }, - { - "Flags" : 0, - "Indexes" : [ - "775FBAA50396E1635187D2B699B4367BBF766D28033E199C270D655024DE5FD5", - "B0027E20A13C6C8158B59370609D9726652171FC3D6B98033C8F37B30ECD5225", - "E2E37CFB8ABCEEAC7A51BBC15CD32B068573463CAC0F7548E98B0AA8E0EA138F" - ], - "LedgerEntryType" : "DirectoryNode", - "Owner" : "rBtVTnNgX3uR3kyfVyaQ6hjZTdk42ay9Z3", - "RootIndex" : "FF5482154F313F9DA81C39647E7612FFD2B237219BB0E9A0263C4FB1FCAC4BEC", - "index" : "FF5482154F313F9DA81C39647E7612FFD2B237219BB0E9A0263C4FB1FCAC4BEC" - } - ], - "account_hash" : "5DF3A98772FB73E782B8740E87885C6BAD9BA486422E3626DEF968AD2CB2C514", - "close_flags" : 0, - "close_time" : 600, - "close_time_human" : "2000-Jan-01 00:10:00.000000", - "close_time_resolution" : 10, - "hash" : "56DA0940767AC2F17F0E384F04816002403D0756432B9D503DDA20128A2AAF11", - "ledger_hash" : "56DA0940767AC2F17F0E384F04816002403D0756432B9D503DDA20128A2AAF11", - "ledger_index" : "43", - "parent_close_time" : 600, - "parent_hash" : "56DA0940767AC2F17F0E384F04816002403D0756432B9D503DDA20128A2AAF11", - "seqNum" : "43", - "totalCoins" : "99999999999998830", - "total_coins" : "99999999999998830", - "transaction_hash" : "9A77D1D1A4B36DA77B9C4DC63FDEB8F821741D157802F9C42A6ED86003D8B4A0", - "transactions" : [] - }, - "ledger_current_index" : 43, - "status" : "success", - "validated" : false + "ledger": { + "accepted": false, + "accountState": [ + { + "Flags": 0, + "Indexes": [ + "2C368DD90B4B39EC70A08269FEBB94A146B4914CECA2B0B90BB120807CEAECB3", + "6BFD99B17EAB515504CC44B9D0D34E8BE8337B09331606BF1B06B48AE0B17A36", + "DC369C92374347633572CFC81B53524E67C171378EBDA0E22C06301AADEEE8C1" + ], + "LedgerEntryType": "DirectoryNode", + "Owner": "rGWYwGaczQWiduWkccFZKXfp5nDRPqNBNS", + "RootIndex": "0201C8CFB77E5BE1953CDD837E0C4E885884D0BA3DAA7971180A8C66DAEB418F", + "index": "0201C8CFB77E5BE1953CDD837E0C4E885884D0BA3DAA7971180A8C66DAEB418F" + }, + { + "ExchangeRate": "5D038D7EA4C68000", + "Flags": 0, + "Indexes": ["4EF85AF7B21979CEC759A6D79F0044E215DC741CC864E24F3490854504227351"], + "LedgerEntryType": "DirectoryNode", + "RootIndex": "0ACB50271202955CF899A07561FE4B147706D9FF0903EB035D038D7EA4C68000", + "TakerGetsCurrency": "0000000000000000000000005553440000000000", + "TakerGetsIssuer": "0208F1F6D6B2A3DD38847BD38F55982C880DAD5B", + "TakerPaysCurrency": "0000000000000000000000000000000000000000", + "TakerPaysIssuer": "0000000000000000000000000000000000000000", + "index": "0ACB50271202955CF899A07561FE4B147706D9FF0903EB035D038D7EA4C68000" + }, + { + "ExchangeRate": "5D038D7EA4C68000", + "Flags": 0, + "Indexes": ["541F9429E46DCE2ECE0A8251FE3940C6AF2992F144ECAF7FB1A8A8ED15C5B52E"], + "LedgerEntryType": "DirectoryNode", + "RootIndex": "0C16A756942D8A24BEACDFDE731610356EC746673C6F62615D038D7EA4C68000", + "TakerGetsCurrency": "0000000000000000000000005553440000000000", + "TakerGetsIssuer": "A4D988B2FEBECB9FF7717187F0C6531080CBC988", + "TakerPaysCurrency": "0000000000000000000000000000000000000000", + "TakerPaysIssuer": "0000000000000000000000000000000000000000", + "index": "0C16A756942D8A24BEACDFDE731610356EC746673C6F62615D038D7EA4C68000" + }, + { + "Account": "rBU1EP5oMwKxWr1gZnNe7K8GouQTBhzUKs", + "Balance": "9999999980", + "Flags": 8388608, + "LedgerEntryType": "AccountRoot", + "OwnerCount": 2, + "PreviousTxnID": "20D81B86F6114FCB355AD5288722A105AF156FD2D0E2C1ABAAF6E7B1BD61301B", + "PreviousTxnLgrSeq": 28, + "Sequence": 5, + "index": "0C6DCE43D13EC29D72157BDC31DA73AB985E44225EB1F635B0958EFB3D8D5F0A" + }, + { + "Account": "rwiTxuknPNeLDYHHLgajRVetKEEwkYhTaQ", + "BookDirectory": "4B83A9AFB33C10BBA4DA7E71E7615F5F44D7E042BB6050DC5D038D7EA4C68000", + "BookNode": "0000000000000000", + "Flags": 0, + "LedgerEntryType": "Offer", + "OwnerNode": "0000000000000000", + "PreviousTxnID": "0B089EC2D5CBB6F514C5965853474D40D10C0E839A539480DC84D273E3584A4D", + "PreviousTxnLgrSeq": 28, + "Sequence": 3, + "TakerGets": { + "currency": "USD", + "issuer": "rwiTxuknPNeLDYHHLgajRVetKEEwkYhTaQ", + "value": "1" + }, + "TakerPays": "100000000", + "index": "0E9DE48BAB27A40AD816C70569E9C284F1838CB6ADDE6740BB5A2F675CF47D12" + }, + { + "Account": "rEbq9pWn2knXFTjjuoNNrKgQeGxhmispMi", + "BookDirectory": "1EB78C840A9AEF0E937A1344FCE1A4E9C7EB5B1112B347D35D038D7EA4C68000", + "BookNode": "0000000000000000", + "Flags": 0, + "LedgerEntryType": "Offer", + "OwnerNode": "0000000000000000", + "PreviousTxnID": "71A4CA1626DD8F5F68ADB1A87E33D6255E2CBC3E4E14AC89A44E31AD888FD671", + "PreviousTxnLgrSeq": 30, + "Sequence": 3, + "TakerGets": { + "currency": "USD", + "issuer": "rEbq9pWn2knXFTjjuoNNrKgQeGxhmispMi", + "value": "1" + }, + "TakerPays": "100000000", + "index": "1228AC065977AC74F9115AD2A324B3BE3C1145907DED87789ADCBFE6113D1692" + }, + { + "Account": "rND1XyLAU9G2ydhUgmRo4i2kdrSKgYZc31", + "Balance": "9999999980", + "Flags": 8388608, + "LedgerEntryType": "AccountRoot", + "OwnerCount": 2, + "PreviousTxnID": "D4468A781F4633DFA1FB5965E3F2A519F2ADCEC4451FD774BF4C8F31C29BE453", + "PreviousTxnLgrSeq": 42, + "Sequence": 5, + "index": "13E1D22839979F2562BEB35115903190CDF7FF955382F74991955B0391FDD6BF" + }, + { + "Flags": 0, + "Indexes": [ + "A8AF8212474E3A74913765F5DA1D78A60EA9DC101624509C002A602A14C6FF4F", + "B3B0095E3F89235FBF93FA177CB39F22BB94BD0A680E0768486D7A367C45F321", + "B4FDB0503DCD82862122618F257A4C279AA3A1B22F036B8516B7A1C2CF4E7EE3" + ], + "LedgerEntryType": "DirectoryNode", + "Owner": "rrnsYgWn13Z28GtRgznrSUsLfMkvsXCZSu", + "RootIndex": "13F1EDB77D58547E8F856D298A85DE0A2310ED375BB7F424EE764F07AC123626", + "index": "13F1EDB77D58547E8F856D298A85DE0A2310ED375BB7F424EE764F07AC123626" + }, + { + "Flags": 0, + "Indexes": [ + "A1E72F5EDF478908AA5AFD5268CC5D185611D2E7D4E201FE01A71E45AE2E7612", + "B4EE24F900CFE2E898972BD36FCCB8A58D3AC534962EE06EF0974ED2D09AE716", + "CC07E55B7114FAD14663E5BDD16458E3EFA300C2C139E4E0FC9E2635E3D8099E" + ], + "LedgerEntryType": "DirectoryNode", + "Owner": "rnYDWQaRdMb5neCGgvFfhw3MBoxmv5LtfH", + "RootIndex": "148E5AC452BC6967CD8DA9DA2D77D317698848D6E751060E552DE1A3D7131795", + "index": "148E5AC452BC6967CD8DA9DA2D77D317698848D6E751060E552DE1A3D7131795" + }, + { + "Account": "r9MB1RNWZChfV3YdLrB3Rm5AoMULewDtiu", + "Balance": "9999999980", + "Flags": 8388608, + "LedgerEntryType": "AccountRoot", + "OwnerCount": 2, + "PreviousTxnID": "5ABD9989449EB580B55159A9A81D8A67AAFAFD072A2B8DA3903FC7E0B19F7E09", + "PreviousTxnLgrSeq": 22, + "Sequence": 5, + "index": "1AF089EE3B5D5C2E5B4FB0BF3D4EEEA94A01DA221B37057CB148350B696F4047" + }, + { + "ExchangeRate": "5D038D7EA4C68000", + "Flags": 0, + "Indexes": ["452934A1A7AE45B98B523F39882EBAEC77CE42A123A21932B2BB17FFDFC2FF01"], + "LedgerEntryType": "DirectoryNode", + "RootIndex": "1B2F86B6225665FCED00952D092E36209BC4C30DB3975C595D038D7EA4C68000", + "TakerGetsCurrency": "0000000000000000000000005553440000000000", + "TakerGetsIssuer": "9108CF7527F51DB516FA4E58C5BE3A012E4DD754", + "TakerPaysCurrency": "0000000000000000000000000000000000000000", + "TakerPaysIssuer": "0000000000000000000000000000000000000000", + "index": "1B2F86B6225665FCED00952D092E36209BC4C30DB3975C595D038D7EA4C68000" + }, + { + "ExchangeRate": "5D038D7EA4C68000", + "Flags": 0, + "Indexes": ["B3B0095E3F89235FBF93FA177CB39F22BB94BD0A680E0768486D7A367C45F321"], + "LedgerEntryType": "DirectoryNode", + "RootIndex": "1E789859BD3DDA735F4209B728C9FCBB1C754E53AA36E5685D038D7EA4C68000", + "TakerGetsCurrency": "0000000000000000000000005553440000000000", + "TakerGetsIssuer": "00C3CA11752ED36E804D437EE7DDEFEEA5D7A0B6", + "TakerPaysCurrency": "0000000000000000000000000000000000000000", + "TakerPaysIssuer": "0000000000000000000000000000000000000000", + "index": "1E789859BD3DDA735F4209B728C9FCBB1C754E53AA36E5685D038D7EA4C68000" + }, + { + "ExchangeRate": "5D038D7EA4C68000", + "Flags": 0, + "Indexes": ["1228AC065977AC74F9115AD2A324B3BE3C1145907DED87789ADCBFE6113D1692"], + "LedgerEntryType": "DirectoryNode", + "RootIndex": "1EB78C840A9AEF0E937A1344FCE1A4E9C7EB5B1112B347D35D038D7EA4C68000", + "TakerGetsCurrency": "0000000000000000000000005553440000000000", + "TakerGetsIssuer": "A028166AD2763543B962715D5102602A2A8771B3", + "TakerPaysCurrency": "0000000000000000000000000000000000000000", + "TakerPaysIssuer": "0000000000000000000000000000000000000000", + "index": "1EB78C840A9AEF0E937A1344FCE1A4E9C7EB5B1112B347D35D038D7EA4C68000" + }, + { + "Account": "rJfBCsnwSHXjTJ4GH5Ax6Kyw48X977hqyq", + "BookDirectory": "814B0A9165776156803974961E7CE52262E4D8099B96E42F5D038D7EA4C68000", + "BookNode": "0000000000000000", + "Flags": 0, + "LedgerEntryType": "Offer", + "OwnerNode": "0000000000000000", + "PreviousTxnID": "5F7F3D46D9ED260224FDD4026A8058EC8AE3E92A50F2D74DC203440FAC17C058", + "PreviousTxnLgrSeq": 32, + "Sequence": 3, + "TakerGets": { + "currency": "USD", + "issuer": "rJfBCsnwSHXjTJ4GH5Ax6Kyw48X977hqyq", + "value": "1" + }, + "TakerPays": "100000000", + "index": "201A37D8499DD67061017513698849C120C37947833A14C57897048646A77B86" + }, + { + "Account": "rwiTxuknPNeLDYHHLgajRVetKEEwkYhTaQ", + "Balance": "9999999980", + "Flags": 8388608, + "LedgerEntryType": "AccountRoot", + "OwnerCount": 2, + "PreviousTxnID": "9F72A7D9456E15D4A9D22A24322E1235A663C93D37D715F9992F953431D87D4C", + "PreviousTxnLgrSeq": 30, + "Sequence": 5, + "index": "25F6E8B8CCCDDE660EC2CD6258AC3D61F663268B064F69C1B570A16378B7E557" + }, + { + "Flags": 0, + "Indexes": [ + "387A729A2F8BFB97655F4C4E5AE5E8ACFF326B11AE3E533004F708CBA7CFD43F", + "B4FDB0503DCD82862122618F257A4C279AA3A1B22F036B8516B7A1C2CF4E7EE3", + "CC07E55B7114FAD14663E5BDD16458E3EFA300C2C139E4E0FC9E2635E3D8099E" + ], + "LedgerEntryType": "DirectoryNode", + "Owner": "rJsaPnGdeo7BhMnHjuc3n44Mf7Ra1qkSVJ", + "RootIndex": "27F7DCDF5855E0F2A9DCDEF6017DA729B8B1F2455A75E470A92A6A29BC697EE5", + "index": "27F7DCDF5855E0F2A9DCDEF6017DA729B8B1F2455A75E470A92A6A29BC697EE5" + }, + { + "Account": "rHd21p9Gb834Ri4pzRzGFJ7PjRzymWuBWu", + "Balance": "9999999980", + "Flags": 8388608, + "LedgerEntryType": "AccountRoot", + "OwnerCount": 1, + "PreviousTxnID": "998C6B84C5B508683FFE552E427DAEEE320FE25B60B9C2048A9507A350DD8A37", + "PreviousTxnLgrSeq": 42, + "Sequence": 4, + "index": "285CB2470C519229C9D3CFD6975C3C682B1464429D4275ED0002C2AED0CC19F0" + }, + { + "Account": "rado7qRcvPpS8ZL8SNg4SG8kBNksHyqoRa", + "BookDirectory": "CB0BAC4A118A33819C7FBBA67ED7D0DB6C4C18DB8BF001495D038D7EA4C68000", + "BookNode": "0000000000000000", + "Flags": 0, + "LedgerEntryType": "Offer", + "OwnerNode": "0000000000000000", + "PreviousTxnID": "7D2D9B5403CE40877337CA5AD5C5AD42D61A6E36EF946F17A622E65613138279", + "PreviousTxnLgrSeq": 34, + "Sequence": 3, + "TakerGets": { + "currency": "USD", + "issuer": "rado7qRcvPpS8ZL8SNg4SG8kBNksHyqoRa", + "value": "1" + }, + "TakerPays": "100000000", + "index": "2927B356D4FEB9824F302372EC64B65A83A7288337FE111F980337709D1AEB78" + }, + { + "Account": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "Balance": "99999799999999220", + "Flags": 0, + "LedgerEntryType": "AccountRoot", + "OwnerCount": 0, + "PreviousTxnID": "A92EF82C3C68F771927E3892A2F708F12CBD492EF68A860F042E4053C8EC6C8D", + "PreviousTxnLgrSeq": 42, + "Sequence": 40, + "index": "2B6AC232AA4C4BE41BF49D2459FA4A0347E1B543A4C92FCEE0821C0201E2E9A8" + }, + { + "Balance": { + "currency": "USD", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "-5" + }, + "Flags": 131072, + "HighLimit": { + "currency": "USD", + "issuer": "rH15iZg9KFSi7d1usvcsPerUtg7dhpMbk4", + "value": "1000" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "USD", + "issuer": "rGWYwGaczQWiduWkccFZKXfp5nDRPqNBNS", + "value": "0" + }, + "LowNode": "0000000000000000", + "PreviousTxnID": "986A0673D9DD3EAEE05D1AD740787B2E9AA1E4474E0CD16AA1281A943D5050D1", + "PreviousTxnLgrSeq": 24, + "index": "2C368DD90B4B39EC70A08269FEBB94A146B4914CECA2B0B90BB120807CEAECB3" + }, + { + "Account": "rfM5xD2CY6XB8o1WsWoJ3ZHGkbHU4NYXr", + "Balance": "9999999980", + "Flags": 8388608, + "LedgerEntryType": "AccountRoot", + "OwnerCount": 2, + "PreviousTxnID": "2602E66499D394317A0C88F1D6A6BE3285CA691342E01D7888BC414FA56CF198", + "PreviousTxnLgrSeq": 20, + "Sequence": 5, + "index": "2CBEF746189EB4077DAA7A07E427424F5EDDC9D64B77B1005D45C4984696A2E5" + }, + { + "Account": "rH15iZg9KFSi7d1usvcsPerUtg7dhpMbk4", + "Balance": "9999999980", + "Flags": 8388608, + "LedgerEntryType": "AccountRoot", + "OwnerCount": 2, + "PreviousTxnID": "EEA35959440792F34176CD8D0C775792CE5D5243DF7100A89ED64C9D585D6EE6", + "PreviousTxnLgrSeq": 24, + "Sequence": 5, + "index": "305B967C9EA193B8159E0E32E355609FF4112DB8C936A0EF4DF79F91D4E1E446" + }, + { + "Account": "rJsaPnGdeo7BhMnHjuc3n44Mf7Ra1qkSVJ", + "BookDirectory": "C7E412DB071D9E43461808CE76039E5C5BF7854E274DDB9D5D038D7EA4C68000", + "BookNode": "0000000000000000", + "Flags": 0, + "LedgerEntryType": "Offer", + "OwnerNode": "0000000000000000", + "PreviousTxnID": "C6D7319F653C06B0CD81753463D8D95C511C4EC82EA9A53F95C4C49ED8C97C95", + "PreviousTxnLgrSeq": 12, + "Sequence": 3, + "TakerGets": { + "currency": "USD", + "issuer": "rJsaPnGdeo7BhMnHjuc3n44Mf7Ra1qkSVJ", + "value": "1" + }, + "TakerPays": "100000000", + "index": "387A729A2F8BFB97655F4C4E5AE5E8ACFF326B11AE3E533004F708CBA7CFD43F" + }, + { + "Account": "rJsaPnGdeo7BhMnHjuc3n44Mf7Ra1qkSVJ", + "Balance": "9999999980", + "Flags": 8388608, + "LedgerEntryType": "AccountRoot", + "OwnerCount": 2, + "PreviousTxnID": "D28873A798B138DA1EFDCF14D0613BD7CA8B6B268D4A478C37FD14E77EEBCB97", + "PreviousTxnLgrSeq": 14, + "Sequence": 5, + "index": "3949E45F6FA9403CB49EE6B34A03621AB5CBAD95142E4B0F58821BCE11B77FAF" + }, + { + "Account": "rfM5xD2CY6XB8o1WsWoJ3ZHGkbHU4NYXr", + "BookDirectory": "E3264B348B8B0E8B605B414C82DFE77DEE340751834E11975D038D7EA4C68000", + "BookNode": "0000000000000000", + "Flags": 0, + "LedgerEntryType": "Offer", + "OwnerNode": "0000000000000000", + "PreviousTxnID": "E2CD023B0DF539A2AD39120633F2FF32BF7B0AFBFB06BA374234EE64CA61E71E", + "PreviousTxnLgrSeq": 18, + "Sequence": 3, + "TakerGets": { + "currency": "USD", + "issuer": "rfM5xD2CY6XB8o1WsWoJ3ZHGkbHU4NYXr", + "value": "1" + }, + "TakerPays": "100000000", + "index": "3AF6F0694BAC73098A2B39D44C39DDD1CCA08322C21B7A1AAFA9DD5C77612786" + }, + { + "ExchangeRate": "5D038D7EA4C68000", + "Flags": 0, + "Indexes": ["98D2CF1B63B8223241DBB2E65AF8EB806C1943D00A1A95BD765719DC05BD7CD0"], + "LedgerEntryType": "DirectoryNode", + "RootIndex": "3E163C81A24D9D90351341B442A28A4374844ADC73684D3E5D038D7EA4C68000", + "TakerGetsCurrency": "0000000000000000000000005553440000000000", + "TakerGetsIssuer": "565041C98030E20F46CCA045B0B24E9A39BF2825", + "TakerPaysCurrency": "0000000000000000000000000000000000000000", + "TakerPaysIssuer": "0000000000000000000000000000000000000000", + "index": "3E163C81A24D9D90351341B442A28A4374844ADC73684D3E5D038D7EA4C68000" + }, + { + "ExchangeRate": "5D038D7EA4C68000", + "Flags": 0, + "Indexes": ["9B53EE6A8C2C5B5451B62D3C87D002283072FD3BDC1F88A01AD8D469A231A830"], + "LedgerEntryType": "DirectoryNode", + "RootIndex": "41683E61E61B3C831CFA02CF490BB69BD888BA6F84545D695D038D7EA4C68000", + "TakerGetsCurrency": "0000000000000000000000005553440000000000", + "TakerGetsIssuer": "B919BFC12677AB265208B33431783D0E607A12CB", + "TakerPaysCurrency": "0000000000000000000000000000000000000000", + "TakerPaysIssuer": "0000000000000000000000000000000000000000", + "index": "41683E61E61B3C831CFA02CF490BB69BD888BA6F84545D695D038D7EA4C68000" + }, + { + "Account": "rBU1EP5oMwKxWr1gZnNe7K8GouQTBhzUKs", + "BookDirectory": "4F670BB7452C88D6DBEAF81E7DE57FDC3020C14DF32F7BB45D038D7EA4C68000", + "BookNode": "0000000000000000", + "Flags": 0, + "LedgerEntryType": "Offer", + "OwnerNode": "0000000000000000", + "PreviousTxnID": "2AE8DEE58105717C122AC23BB5CD67059AE7D458F46FC3D868C1A3F5F56E8274", + "PreviousTxnLgrSeq": 26, + "Sequence": 3, + "TakerGets": { + "currency": "USD", + "issuer": "rBU1EP5oMwKxWr1gZnNe7K8GouQTBhzUKs", + "value": "1" + }, + "TakerPays": "100000000", + "index": "419F49361B31414099A650A649A0DD42C4FBCDCD8C9473C12D64C1FEB9CDD593" + }, + { + "Flags": 0, + "Indexes": [ + "541F9429E46DCE2ECE0A8251FE3940C6AF2992F144ECAF7FB1A8A8ED15C5B52E", + "A8AF8212474E3A74913765F5DA1D78A60EA9DC101624509C002A602A14C6FF4F", + "C5F104A35DB835AF4A4C4664BCDA57A88873DCEF23DF567485654FAEE5645949" + ], + "LedgerEntryType": "DirectoryNode", + "Owner": "rGpeQzUWFu4fMhJHZ1Via5aqFC3A5twZUD", + "RootIndex": "43AC9D96AC71CAB6775045A5571C0CD1515B201D0859F890E8CAF3D9F70FDEAD", + "index": "43AC9D96AC71CAB6775045A5571C0CD1515B201D0859F890E8CAF3D9F70FDEAD" + }, + { + "Flags": 0, + "Indexes": [ + "B43B6611C9E172A742829AD42A8F999636C256AB62C76657F57CAB05D914FFC8", + "C55C2E06D350E31F0E9FA1E6C1934962E9DFB7EEFC01A2B0AF7DA7FB76439FC7", + "C8BC8B52B7F8BC724C843D280AA26F579FD0220FAC8BCE491386B8E12C25A99D" + ], + "LedgerEntryType": "DirectoryNode", + "Owner": "r9MB1RNWZChfV3YdLrB3Rm5AoMULewDtiu", + "RootIndex": "448F107DA3038A6EEFD147F2D5E1E5D303597DCCA395112BC5C230A106747D3F", + "index": "448F107DA3038A6EEFD147F2D5E1E5D303597DCCA395112BC5C230A106747D3F" + }, + { + "Account": "rND1XyLAU9G2ydhUgmRo4i2kdrSKgYZc31", + "BookDirectory": "1B2F86B6225665FCED00952D092E36209BC4C30DB3975C595D038D7EA4C68000", + "BookNode": "0000000000000000", + "Flags": 0, + "LedgerEntryType": "Offer", + "OwnerNode": "0000000000000000", + "PreviousTxnID": "E948C17052A792D730F37A221BDCB0B7052CB3C26BC726F7A3CB568DC6FB65E4", + "PreviousTxnLgrSeq": 40, + "Sequence": 3, + "TakerGets": { + "currency": "USD", + "issuer": "rND1XyLAU9G2ydhUgmRo4i2kdrSKgYZc31", + "value": "1" + }, + "TakerPays": "100000000", + "index": "452934A1A7AE45B98B523F39882EBAEC77CE42A123A21932B2BB17FFDFC2FF01" + }, + { + "Account": "r4nmQNH4Fhjfh6cHDbvVSsBv7KySbj4cBf", + "BookDirectory": "AE9AC31E476582E339418E925C4C77544D30978E6DCBD3F85D038D7EA4C68000", + "BookNode": "0000000000000000", + "Flags": 0, + "LedgerEntryType": "Offer", + "OwnerNode": "0000000000000000", + "PreviousTxnID": "69F5DC3FD991BD082841188A7B135CAE7F09D8A108C47D8F76FD8A92C17A8737", + "PreviousTxnLgrSeq": 6, + "Sequence": 3, + "TakerGets": { + "currency": "USD", + "issuer": "r4nmQNH4Fhjfh6cHDbvVSsBv7KySbj4cBf", + "value": "1" + }, + "TakerPays": "100000000", + "index": "45BC687C87B26FC68922EEFBC0BB25589BF3BD601C39DB0446C59F2AC8AA7754" + }, + { + "Account": "rnYDWQaRdMb5neCGgvFfhw3MBoxmv5LtfH", + "Balance": "9999999980", + "Flags": 8388608, + "LedgerEntryType": "AccountRoot", + "OwnerCount": 2, + "PreviousTxnID": "2182A9E514E257D64E6196AA8A34F0034CB597F93CEE3CFC2F9382AC7E25FF1D", + "PreviousTxnLgrSeq": 16, + "Sequence": 5, + "index": "497C78293A0A9677FF974C0A59AE3EE103C80048332DD98642C6C147038B7A4F" + }, + { + "ExchangeRate": "5D038D7EA4C68000", + "Flags": 0, + "Indexes": ["0E9DE48BAB27A40AD816C70569E9C284F1838CB6ADDE6740BB5A2F675CF47D12"], + "LedgerEntryType": "DirectoryNode", + "RootIndex": "4B83A9AFB33C10BBA4DA7E71E7615F5F44D7E042BB6050DC5D038D7EA4C68000", + "TakerGetsCurrency": "0000000000000000000000005553440000000000", + "TakerGetsIssuer": "6C1405C650E5A5B9DC60B4F1E256596CB322AEB4", + "TakerPaysCurrency": "0000000000000000000000000000000000000000", + "TakerPaysIssuer": "0000000000000000000000000000000000000000", + "index": "4B83A9AFB33C10BBA4DA7E71E7615F5F44D7E042BB6050DC5D038D7EA4C68000" + }, + { + "Account": "rBmhuVAvi372AerwzwERGjhLjqkMmAwxX", + "BookDirectory": "0ACB50271202955CF899A07561FE4B147706D9FF0903EB035D038D7EA4C68000", + "BookNode": "0000000000000000", + "Flags": 0, + "LedgerEntryType": "Offer", + "OwnerNode": "0000000000000000", + "PreviousTxnID": "B0B7E3956C9EF26BA9C432D5F0AB306DD9ED03DA4459E17C247286926B37E051", + "PreviousTxnLgrSeq": 4, + "Sequence": 2, + "TakerGets": { + "currency": "USD", + "issuer": "rBmhuVAvi372AerwzwERGjhLjqkMmAwxX", + "value": "1" + }, + "TakerPays": "100000000", + "index": "4EF85AF7B21979CEC759A6D79F0044E215DC741CC864E24F3490854504227351" + }, + { + "ExchangeRate": "5D038D7EA4C68000", + "Flags": 0, + "Indexes": ["419F49361B31414099A650A649A0DD42C4FBCDCD8C9473C12D64C1FEB9CDD593"], + "LedgerEntryType": "DirectoryNode", + "RootIndex": "4F670BB7452C88D6DBEAF81E7DE57FDC3020C14DF32F7BB45D038D7EA4C68000", + "TakerGetsCurrency": "0000000000000000000000005553440000000000", + "TakerGetsIssuer": "6FEFC7484B29C1D49A6CA3F84CD380E79B32AA59", + "TakerPaysCurrency": "0000000000000000000000000000000000000000", + "TakerPaysIssuer": "0000000000000000000000000000000000000000", + "index": "4F670BB7452C88D6DBEAF81E7DE57FDC3020C14DF32F7BB45D038D7EA4C68000" + }, + { + "Account": "rHd21p9Gb834Ri4pzRzGFJ7PjRzymWuBWu", + "BookDirectory": "6AECAE2697C99F417D86CC5650323E68BD4D00CA06FE627F5D038D7EA4C68000", + "BookNode": "0000000000000000", + "Flags": 0, + "LedgerEntryType": "Offer", + "OwnerNode": "0000000000000000", + "PreviousTxnID": "998C6B84C5B508683FFE552E427DAEEE320FE25B60B9C2048A9507A350DD8A37", + "PreviousTxnLgrSeq": 42, + "Sequence": 3, + "TakerGets": { + "currency": "USD", + "issuer": "rHd21p9Gb834Ri4pzRzGFJ7PjRzymWuBWu", + "value": "1" + }, + "TakerPays": "100000000", + "index": "51F488F106AD3C4752C1690A92154D0059083BF5B7F0512125BA31C073DC2FB9" + }, + { + "Account": "r4nmQNH4Fhjfh6cHDbvVSsBv7KySbj4cBf", + "Balance": "9999999980", + "Flags": 8388608, + "LedgerEntryType": "AccountRoot", + "OwnerCount": 2, + "PreviousTxnID": "DB644E7A63F27B11A716B4941F7B2907D46DA88F29B50409C3E3514B66EA81B2", + "PreviousTxnLgrSeq": 8, + "Sequence": 5, + "index": "5302F37F1D9290D8D92A31651FF71531504183695C2C43EC136B1CF4AC7E08FA" + }, + { + "Balance": { + "currency": "USD", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "-5" + }, + "Flags": 131072, + "HighLimit": { + "currency": "USD", + "issuer": "r31PEiKfa3y6xTi7uBcSp7F3nDLvVMmqyi", + "value": "1000" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "USD", + "issuer": "rfM5xD2CY6XB8o1WsWoJ3ZHGkbHU4NYXr", + "value": "0" + }, + "LowNode": "0000000000000000", + "PreviousTxnID": "817467940B1D7B638382841EFC62E74C46B06FA1F6E3BEA3809D4DAA6E3954F4", + "PreviousTxnLgrSeq": 18, + "index": "5377F79829B9FDCBB7D5E77CCD9A97D6B9C2F9602F2606561ADE64BFB62C7E4E" + }, + { + "Account": "rGpeQzUWFu4fMhJHZ1Via5aqFC3A5twZUD", + "BookDirectory": "0C16A756942D8A24BEACDFDE731610356EC746673C6F62615D038D7EA4C68000", + "BookNode": "0000000000000000", + "Flags": 0, + "LedgerEntryType": "Offer", + "OwnerNode": "0000000000000000", + "PreviousTxnID": "ED7E69FA8AA1AD09301BB20DA19AA62EAFB57082BD5164454F29E662BC532416", + "PreviousTxnLgrSeq": 8, + "Sequence": 3, + "TakerGets": { + "currency": "USD", + "issuer": "rGpeQzUWFu4fMhJHZ1Via5aqFC3A5twZUD", + "value": "1" + }, + "TakerPays": "100000000", + "index": "541F9429E46DCE2ECE0A8251FE3940C6AF2992F144ECAF7FB1A8A8ED15C5B52E" + }, + { + "Account": "rJfBCsnwSHXjTJ4GH5Ax6Kyw48X977hqyq", + "Balance": "9999999980", + "Flags": 8388608, + "LedgerEntryType": "AccountRoot", + "OwnerCount": 2, + "PreviousTxnID": "154221ACDC7F4422C9103164113EC5C3B146B4867F492537080BC6C664C3B2A0", + "PreviousTxnLgrSeq": 34, + "Sequence": 5, + "index": "556C32C3D575A99FDA1586DF6A45B82379425645DCE3F86664B16F0D7894B006" + }, + { + "Account": "rBtVTnNgX3uR3kyfVyaQ6hjZTdk42ay9Z3", + "Balance": "9999999980", + "Flags": 8388608, + "LedgerEntryType": "AccountRoot", + "OwnerCount": 2, + "PreviousTxnID": "20CC630BE0A1CE09B04139088A1597290BB08921861533E01241BB5829C8C242", + "PreviousTxnLgrSeq": 40, + "Sequence": 5, + "index": "57309D9CB13B5AF3CDA06A5D2537FCDDC3BFC66C97BFD85CADD7D976C03E3B7C" + }, + { + "Account": "rNgfurDhqvfsVzLr5ZGB3dJysJhRkvJ79F", + "Balance": "9999999980", + "Flags": 8388608, + "LedgerEntryType": "AccountRoot", + "OwnerCount": 2, + "PreviousTxnID": "776B941CFABDB0C2590559AD1857CB3D7B744513EAE4F0C69FD573EA6D5521B3", + "PreviousTxnLgrSeq": 38, + "Sequence": 5, + "index": "587812FF6EC3CB57A2C15F22ECD572F575F7069DDEDA139C3A881B065170C1D3" + }, + { + "ExchangeRate": "5D038D7EA4C68000", + "Flags": 0, + "Indexes": ["C55C2E06D350E31F0E9FA1E6C1934962E9DFB7EEFC01A2B0AF7DA7FB76439FC7"], + "LedgerEntryType": "DirectoryNode", + "RootIndex": "631E572638B141B43F9E6795B73B3CB1B75C37740D6F39D75D038D7EA4C68000", + "TakerGetsCurrency": "0000000000000000000000005553440000000000", + "TakerGetsIssuer": "5B9266125F0F1805EA4F541D1283E95609B32DF4", + "TakerPaysCurrency": "0000000000000000000000000000000000000000", + "TakerPaysIssuer": "0000000000000000000000000000000000000000", + "index": "631E572638B141B43F9E6795B73B3CB1B75C37740D6F39D75D038D7EA4C68000" + }, + { + "Flags": 0, + "Indexes": [ + "74BBA15EE0FCE694C44C3A822BC236F7F86EF4B164088CCEBA40792B463D23D5", + "E2E37CFB8ABCEEAC7A51BBC15CD32B068573463CAC0F7548E98B0AA8E0EA138F", + "E710D6B27BC9DA64F27942F40ADB7A799D4D50B42F4864377E49AEF0FDBCDF94" + ], + "LedgerEntryType": "DirectoryNode", + "Owner": "rNgfurDhqvfsVzLr5ZGB3dJysJhRkvJ79F", + "RootIndex": "65F2F53AE72DF1A306128685954696ED3338DEC5CCFD4DF57E5B6A8827BC6913", + "index": "65F2F53AE72DF1A306128685954696ED3338DEC5CCFD4DF57E5B6A8827BC6913" + }, + { + "Balance": { + "currency": "USD", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "-5" + }, + "Flags": 131072, + "HighLimit": { + "currency": "USD", + "issuer": "rBU1EP5oMwKxWr1gZnNe7K8GouQTBhzUKs", + "value": "1000" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "USD", + "issuer": "rwiTxuknPNeLDYHHLgajRVetKEEwkYhTaQ", + "value": "0" + }, + "LowNode": "0000000000000000", + "PreviousTxnID": "5F020C40620E25A6C0D9AC4472D4AAFB6D82EFBC1949BEC90194D4E960476C7E", + "PreviousTxnLgrSeq": 28, + "index": "6AA90FBD168B55CBF413F189A8B54FA06D3530F4D88AD290827567CFEBF3FC1F" + }, + { + "ExchangeRate": "5D038D7EA4C68000", + "Flags": 0, + "Indexes": ["51F488F106AD3C4752C1690A92154D0059083BF5B7F0512125BA31C073DC2FB9"], + "LedgerEntryType": "DirectoryNode", + "RootIndex": "6AECAE2697C99F417D86CC5650323E68BD4D00CA06FE627F5D038D7EA4C68000", + "TakerGetsCurrency": "0000000000000000000000005553440000000000", + "TakerGetsIssuer": "B66D410B63EBAA3D9DBCC3FAE07DA420BFA78CD9", + "TakerPaysCurrency": "0000000000000000000000000000000000000000", + "TakerPaysIssuer": "0000000000000000000000000000000000000000", + "index": "6AECAE2697C99F417D86CC5650323E68BD4D00CA06FE627F5D038D7EA4C68000" + }, + { + "Account": "rGWYwGaczQWiduWkccFZKXfp5nDRPqNBNS", + "BookDirectory": "9FA8E49AA632FBD07883E676449FA5C05B2CACB4E5BB5B9E5D038D7EA4C68000", + "BookNode": "0000000000000000", + "Flags": 0, + "LedgerEntryType": "Offer", + "OwnerNode": "0000000000000000", + "PreviousTxnID": "42A861F35179890A92FD302DDEDC136178E8623A19CAA23DC88251EF3A13FB28", + "PreviousTxnLgrSeq": 24, + "Sequence": 3, + "TakerGets": { + "currency": "USD", + "issuer": "rGWYwGaczQWiduWkccFZKXfp5nDRPqNBNS", + "value": "1" + }, + "TakerPays": "100000000", + "index": "6BFD99B17EAB515504CC44B9D0D34E8BE8337B09331606BF1B06B48AE0B17A36" + }, + { + "Account": "r31PEiKfa3y6xTi7uBcSp7F3nDLvVMmqyi", + "Balance": "9999999980", + "Flags": 8388608, + "LedgerEntryType": "AccountRoot", + "OwnerCount": 2, + "PreviousTxnID": "F2E9A232B97D95069B8FF94B4471C85E74F297238825A5C2712D0A06532C4767", + "PreviousTxnLgrSeq": 18, + "Sequence": 5, + "index": "6C8755215E6BDA3C6B9CC5E65ADA8A10E1A571D8D7ADD7A56CCB39B9D3379924" + }, + { + "Flags": 0, + "Indexes": [ + "4EF85AF7B21979CEC759A6D79F0044E215DC741CC864E24F3490854504227351", + "9F27C2C9ED945516FD557C1BFAD852049B4D54D9F1524C6CC356A41F11216FD0" + ], + "LedgerEntryType": "DirectoryNode", + "Owner": "rBmhuVAvi372AerwzwERGjhLjqkMmAwxX", + "RootIndex": "6C9CF08398809728A658544C300B8A25746D60140D4FB8D5DB2E448408D64A29", + "index": "6C9CF08398809728A658544C300B8A25746D60140D4FB8D5DB2E448408D64A29" + }, + { + "Flags": 0, + "Indexes": [ + "45BC687C87B26FC68922EEFBC0BB25589BF3BD601C39DB0446C59F2AC8AA7754", + "9F27C2C9ED945516FD557C1BFAD852049B4D54D9F1524C6CC356A41F11216FD0", + "C5F104A35DB835AF4A4C4664BCDA57A88873DCEF23DF567485654FAEE5645949" + ], + "LedgerEntryType": "DirectoryNode", + "Owner": "r4nmQNH4Fhjfh6cHDbvVSsBv7KySbj4cBf", + "RootIndex": "6F5B6CE2ADD81A143A3B5491DF1C201BD9693A5D3300D39B56560D88BBC5C34F", + "index": "6F5B6CE2ADD81A143A3B5491DF1C201BD9693A5D3300D39B56560D88BBC5C34F" + }, + { + "Account": "rEbq9pWn2knXFTjjuoNNrKgQeGxhmispMi", + "Balance": "9999999980", + "Flags": 8388608, + "LedgerEntryType": "AccountRoot", + "OwnerCount": 2, + "PreviousTxnID": "960E3AEADE4C6821268EF0915E2B85ACCFF34620BE52C95243BB7A7FFD45ED33", + "PreviousTxnLgrSeq": 32, + "Sequence": 5, + "index": "70C348D536CA1E102066CCB19A24784712C66FD27D55B336DCEAB7A2067B84BF" + }, + { + "Account": "rNgfurDhqvfsVzLr5ZGB3dJysJhRkvJ79F", + "BookDirectory": "8594645222376B2B579DBB5FE5A763B0F4FF806ECF30389B5D038D7EA4C68000", + "BookNode": "0000000000000000", + "Flags": 0, + "LedgerEntryType": "Offer", + "OwnerNode": "0000000000000000", + "PreviousTxnID": "E1F65322D951799C02E13731D5F8A6AB16558D56807F081956C0AE577E500951", + "PreviousTxnLgrSeq": 36, + "Sequence": 3, + "TakerGets": { + "currency": "USD", + "issuer": "rNgfurDhqvfsVzLr5ZGB3dJysJhRkvJ79F", + "value": "1" + }, + "TakerPays": "100000000", + "index": "74BBA15EE0FCE694C44C3A822BC236F7F86EF4B164088CCEBA40792B463D23D5" + }, + { + "Account": "rBtVTnNgX3uR3kyfVyaQ6hjZTdk42ay9Z3", + "BookDirectory": "A844B95B517BCD7DD9DB9895233DF1995CF4B5B6F82E01AF5D038D7EA4C68000", + "BookNode": "0000000000000000", + "Flags": 0, + "LedgerEntryType": "Offer", + "OwnerNode": "0000000000000000", + "PreviousTxnID": "6C97D021B347A4978FF24239C1AA6E972ECF07A468F89B21D420D4461CD4EA7B", + "PreviousTxnLgrSeq": 38, + "Sequence": 3, + "TakerGets": { + "currency": "USD", + "issuer": "rBtVTnNgX3uR3kyfVyaQ6hjZTdk42ay9Z3", + "value": "1" + }, + "TakerPays": "100000000", + "index": "775FBAA50396E1635187D2B699B4367BBF766D28033E199C270D655024DE5FD5" + }, + { + "ExchangeRate": "5D038D7EA4C68000", + "Flags": 0, + "Indexes": ["201A37D8499DD67061017513698849C120C37947833A14C57897048646A77B86"], + "LedgerEntryType": "DirectoryNode", + "RootIndex": "814B0A9165776156803974961E7CE52262E4D8099B96E42F5D038D7EA4C68000", + "TakerGetsCurrency": "0000000000000000000000005553440000000000", + "TakerGetsIssuer": "BBA58773093C0F4DEB1F763FC1AAAA49D6706E6A", + "TakerPaysCurrency": "0000000000000000000000000000000000000000", + "TakerPaysIssuer": "0000000000000000000000000000000000000000", + "index": "814B0A9165776156803974961E7CE52262E4D8099B96E42F5D038D7EA4C68000" + }, + { + "ExchangeRate": "5D038D7EA4C68000", + "Flags": 0, + "Indexes": ["74BBA15EE0FCE694C44C3A822BC236F7F86EF4B164088CCEBA40792B463D23D5"], + "LedgerEntryType": "DirectoryNode", + "RootIndex": "8594645222376B2B579DBB5FE5A763B0F4FF806ECF30389B5D038D7EA4C68000", + "TakerGetsCurrency": "0000000000000000000000005553440000000000", + "TakerGetsIssuer": "95FF9D5D1BD1CC17A4EC199F4C57DBF21A0C97FA", + "TakerPaysCurrency": "0000000000000000000000000000000000000000", + "TakerPaysIssuer": "0000000000000000000000000000000000000000", + "index": "8594645222376B2B579DBB5FE5A763B0F4FF806ECF30389B5D038D7EA4C68000" + }, + { + "Account": "rado7qRcvPpS8ZL8SNg4SG8kBNksHyqoRa", + "Balance": "9999999980", + "Flags": 8388608, + "LedgerEntryType": "AccountRoot", + "OwnerCount": 2, + "PreviousTxnID": "0CA268202436941272E7633407937A27DB7AD5EF54CAC700873827C633FC4043", + "PreviousTxnLgrSeq": 36, + "Sequence": 5, + "index": "869C10C86D2BDEC3FB45A0F918E3F6738CB41E85060E250EF59F155831D467B5" + }, + { + "Flags": 0, + "Indexes": [ + "419F49361B31414099A650A649A0DD42C4FBCDCD8C9473C12D64C1FEB9CDD593", + "6AA90FBD168B55CBF413F189A8B54FA06D3530F4D88AD290827567CFEBF3FC1F", + "DC369C92374347633572CFC81B53524E67C171378EBDA0E22C06301AADEEE8C1" + ], + "LedgerEntryType": "DirectoryNode", + "Owner": "rBU1EP5oMwKxWr1gZnNe7K8GouQTBhzUKs", + "RootIndex": "883D325DBA76F962449DAC3C69C746DB6626ED41E2E1A4C8C09931EB0A00375B", + "index": "883D325DBA76F962449DAC3C69C746DB6626ED41E2E1A4C8C09931EB0A00375B" + }, + { + "Flags": 0, + "Indexes": [ + "452934A1A7AE45B98B523F39882EBAEC77CE42A123A21932B2BB17FFDFC2FF01", + "B0027E20A13C6C8158B59370609D9726652171FC3D6B98033C8F37B30ECD5225", + "D73C42A1C24D7DD3E18989E4AD89B7CFACDC712FA3B00FBA9B412F50B4325EB5" + ], + "LedgerEntryType": "DirectoryNode", + "Owner": "rND1XyLAU9G2ydhUgmRo4i2kdrSKgYZc31", + "RootIndex": "93EB7D824357779E0FE5DC0769F8CF761F00F87CF59CB26F74BCD04A574450F9", + "index": "93EB7D824357779E0FE5DC0769F8CF761F00F87CF59CB26F74BCD04A574450F9" + }, + { + "Balance": { + "currency": "USD", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "5" + }, + "Flags": 65536, + "HighLimit": { + "currency": "USD", + "issuer": "rEbq9pWn2knXFTjjuoNNrKgQeGxhmispMi", + "value": "0" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "USD", + "issuer": "rwiTxuknPNeLDYHHLgajRVetKEEwkYhTaQ", + "value": "1000" + }, + "LowNode": "0000000000000000", + "PreviousTxnID": "7F848B38705A55E6E17D6F5ED6A90FC0D5C9C1402716022453861C948FE1A7D8", + "PreviousTxnLgrSeq": 30, + "index": "94BA467A169DD916C2052B88E1903ACF6399AE1334EA3C74D3DE1A863DCBC675" + }, + { + "Account": "r31PEiKfa3y6xTi7uBcSp7F3nDLvVMmqyi", + "BookDirectory": "3E163C81A24D9D90351341B442A28A4374844ADC73684D3E5D038D7EA4C68000", + "BookNode": "0000000000000000", + "Flags": 0, + "LedgerEntryType": "Offer", + "OwnerNode": "0000000000000000", + "PreviousTxnID": "B5F4C3E1A1965DE70B2F99476B623686EB6012EFB255D91A8286FDA3C4810B26", + "PreviousTxnLgrSeq": 16, + "Sequence": 3, + "TakerGets": { + "currency": "USD", + "issuer": "r31PEiKfa3y6xTi7uBcSp7F3nDLvVMmqyi", + "value": "1" + }, + "TakerPays": "100000000", + "index": "98D2CF1B63B8223241DBB2E65AF8EB806C1943D00A1A95BD765719DC05BD7CD0" + }, + { + "Account": "rH15iZg9KFSi7d1usvcsPerUtg7dhpMbk4", + "BookDirectory": "41683E61E61B3C831CFA02CF490BB69BD888BA6F84545D695D038D7EA4C68000", + "BookNode": "0000000000000000", + "Flags": 0, + "LedgerEntryType": "Offer", + "OwnerNode": "0000000000000000", + "PreviousTxnID": "654582EE05C96FBA84EB0F9D6663A040AE17C9ECDA2FE7BE7EC3C5118809CCCA", + "PreviousTxnLgrSeq": 22, + "Sequence": 3, + "TakerGets": { + "currency": "USD", + "issuer": "rH15iZg9KFSi7d1usvcsPerUtg7dhpMbk4", + "value": "1" + }, + "TakerPays": "100000000", + "index": "9B53EE6A8C2C5B5451B62D3C87D002283072FD3BDC1F88A01AD8D469A231A830" + }, + { + "Balance": { + "currency": "USD", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "5" + }, + "Flags": 65536, + "HighLimit": { + "currency": "USD", + "issuer": "r4nmQNH4Fhjfh6cHDbvVSsBv7KySbj4cBf", + "value": "0" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "USD", + "issuer": "rBmhuVAvi372AerwzwERGjhLjqkMmAwxX", + "value": "1000" + }, + "LowNode": "0000000000000000", + "PreviousTxnID": "2F422A8BBD6FF0932CE9B5C426FFD475A5F4822C70D015A7FAF3C8E1DE840779", + "PreviousTxnLgrSeq": 6, + "index": "9F27C2C9ED945516FD557C1BFAD852049B4D54D9F1524C6CC356A41F11216FD0" + }, + { + "ExchangeRate": "5D038D7EA4C68000", + "Flags": 0, + "Indexes": ["6BFD99B17EAB515504CC44B9D0D34E8BE8337B09331606BF1B06B48AE0B17A36"], + "LedgerEntryType": "DirectoryNode", + "RootIndex": "9FA8E49AA632FBD07883E676449FA5C05B2CACB4E5BB5B9E5D038D7EA4C68000", + "TakerGetsCurrency": "0000000000000000000000005553440000000000", + "TakerGetsIssuer": "AA1FF5DE48006C0BC4DDD5C89133D828F061EA58", + "TakerPaysCurrency": "0000000000000000000000000000000000000000", + "TakerPaysIssuer": "0000000000000000000000000000000000000000", + "index": "9FA8E49AA632FBD07883E676449FA5C05B2CACB4E5BB5B9E5D038D7EA4C68000" + }, + { + "Balance": { + "currency": "USD", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "5" + }, + "Flags": 65536, + "HighLimit": { + "currency": "USD", + "issuer": "r31PEiKfa3y6xTi7uBcSp7F3nDLvVMmqyi", + "value": "0" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "USD", + "issuer": "rnYDWQaRdMb5neCGgvFfhw3MBoxmv5LtfH", + "value": "1000" + }, + "LowNode": "0000000000000000", + "PreviousTxnID": "6FEF9FC6CE362B634386C9F1C3485DC91715D9FA0B118A730466C976F4A15217", + "PreviousTxnLgrSeq": 16, + "index": "A1E72F5EDF478908AA5AFD5268CC5D185611D2E7D4E201FE01A71E45AE2E7612" + }, + { + "ExchangeRate": "5D038D7EA4C68000", + "Flags": 0, + "Indexes": ["775FBAA50396E1635187D2B699B4367BBF766D28033E199C270D655024DE5FD5"], + "LedgerEntryType": "DirectoryNode", + "RootIndex": "A844B95B517BCD7DD9DB9895233DF1995CF4B5B6F82E01AF5D038D7EA4C68000", + "TakerGetsCurrency": "0000000000000000000000005553440000000000", + "TakerGetsIssuer": "776E3869D5D4FD1E7F90EF560C5D7BF803EDE1BD", + "TakerPaysCurrency": "0000000000000000000000000000000000000000", + "TakerPaysIssuer": "0000000000000000000000000000000000000000", + "index": "A844B95B517BCD7DD9DB9895233DF1995CF4B5B6F82E01AF5D038D7EA4C68000" + }, + { + "Balance": { + "currency": "USD", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "-5" + }, + "Flags": 131072, + "HighLimit": { + "currency": "USD", + "issuer": "rGpeQzUWFu4fMhJHZ1Via5aqFC3A5twZUD", + "value": "1000" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "USD", + "issuer": "rrnsYgWn13Z28GtRgznrSUsLfMkvsXCZSu", + "value": "0" + }, + "LowNode": "0000000000000000", + "PreviousTxnID": "9F7DB6226453B14C647E902F789083F90E43E42AE2E3FB3A612602756CC150F8", + "PreviousTxnLgrSeq": 10, + "index": "A8AF8212474E3A74913765F5DA1D78A60EA9DC101624509C002A602A14C6FF4F" + }, + { + "Balance": { + "currency": "USD", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "-5" + }, + "Flags": 131072, + "HighLimit": { + "currency": "USD", + "issuer": "rJfBCsnwSHXjTJ4GH5Ax6Kyw48X977hqyq", + "value": "1000" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "USD", + "issuer": "rado7qRcvPpS8ZL8SNg4SG8kBNksHyqoRa", + "value": "0" + }, + "LowNode": "0000000000000000", + "PreviousTxnID": "FEF0C28CA82A738EB027F39E370E4CEB4693545FA207422039921B56FB5F69A1", + "PreviousTxnLgrSeq": 34, + "index": "AA6C7719315BB87A89C1A02FA51D3313E1A6A12C0BDF6AD846FDF8AD28E1E231" + }, + { + "ExchangeRate": "5D038D7EA4C68000", + "Flags": 0, + "Indexes": ["45BC687C87B26FC68922EEFBC0BB25589BF3BD601C39DB0446C59F2AC8AA7754"], + "LedgerEntryType": "DirectoryNode", + "RootIndex": "AE9AC31E476582E339418E925C4C77544D30978E6DCBD3F85D038D7EA4C68000", + "TakerGetsCurrency": "0000000000000000000000005553440000000000", + "TakerGetsIssuer": "E7415E754E899F0D7F2A185679E71E00DE2A0CF3", + "TakerPaysCurrency": "0000000000000000000000000000000000000000", + "TakerPaysIssuer": "0000000000000000000000000000000000000000", + "index": "AE9AC31E476582E339418E925C4C77544D30978E6DCBD3F85D038D7EA4C68000" + }, + { + "Balance": { + "currency": "USD", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "5" + }, + "Flags": 65536, + "HighLimit": { + "currency": "USD", + "issuer": "rND1XyLAU9G2ydhUgmRo4i2kdrSKgYZc31", + "value": "0" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "USD", + "issuer": "rBtVTnNgX3uR3kyfVyaQ6hjZTdk42ay9Z3", + "value": "1000" + }, + "LowNode": "0000000000000000", + "PreviousTxnID": "630582582A2F1698B97BFA62559288A13C8B7B565580E2C14F8A15AAF15E654F", + "PreviousTxnLgrSeq": 40, + "index": "B0027E20A13C6C8158B59370609D9726652171FC3D6B98033C8F37B30ECD5225" + }, + { + "Account": "rrnsYgWn13Z28GtRgznrSUsLfMkvsXCZSu", + "BookDirectory": "1E789859BD3DDA735F4209B728C9FCBB1C754E53AA36E5685D038D7EA4C68000", + "BookNode": "0000000000000000", + "Flags": 0, + "LedgerEntryType": "Offer", + "OwnerNode": "0000000000000000", + "PreviousTxnID": "B3D65C0F1E0531437F35B18B502ED151E37901DF0FB7576B3BF5027595499831", + "PreviousTxnLgrSeq": 10, + "Sequence": 3, + "TakerGets": { + "currency": "USD", + "issuer": "rrnsYgWn13Z28GtRgznrSUsLfMkvsXCZSu", + "value": "1" + }, + "TakerPays": "100000000", + "index": "B3B0095E3F89235FBF93FA177CB39F22BB94BD0A680E0768486D7A367C45F321" + }, + { + "Balance": { + "currency": "USD", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "5" + }, + "Flags": 65536, + "HighLimit": { + "currency": "USD", + "issuer": "rH15iZg9KFSi7d1usvcsPerUtg7dhpMbk4", + "value": "0" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "USD", + "issuer": "r9MB1RNWZChfV3YdLrB3Rm5AoMULewDtiu", + "value": "1000" + }, + "LowNode": "0000000000000000", + "PreviousTxnID": "B2B6DD81D4FA72355E205936B660D3B7D8CEAF885C7A664FAE4D80AEEAA9CC78", + "PreviousTxnLgrSeq": 22, + "index": "B43B6611C9E172A742829AD42A8F999636C256AB62C76657F57CAB05D914FFC8" + }, + { + "Flags": 0, + "Hashes": [ + "AB868A6CFEEC779C2FF845C0AF00A642259986AF40C01976A7F842B6918936C7", + "8AEDBB96643962F1D40F01E25632ABB3C56C9F04B0231EE4B18248B90173D189", + "2DE03686614122E75AF52B952F49766AE1E4835B2115E9D6ABE082756C2E3A16", + "97FF625741330CF7854147AF1DE0644955E59AA7C467BE2C395667E05E1C8454", + "0D46E2FE9E2E85394D9ED4D015878CB819DC2C7C66E3DA1E8056772EC35819C9", + "C2F9920C435744BA027D97F4008E70E5371474BA35E0B428B9925FFE87A29B13", + "2E82B2636DB7A27BD8B25D1FE83AF816679DD37D20EEE3E2EAE76B22FCD4D198", + "5F2A314577A32DDBAF4B3F2257D0DA4E1F0C312F78D8A928EF4BDF7395789034", + "D83760C4F1C7FD80146FBEEDE802517BECD7989E87ED109C3067D3C6E7734C23", + "65697ECF5E6F04AD690A0CD853452A602F1211AAE8B69874E23A259F5E0598CE", + "C34FB6E1ABB13277AC2EC0776F84817EB714FC23915FC1E94322480392CC1111", + "B0DB864955A369D691355210F07E80089C13931AF405A7ECD6046ED13916B029", + "D7E7B50EAD28881E71E225CF0C02F87CFA3AFAEC78C490D08842C5D72EC9F7E4", + "453594F07C2068211C4FF6FBCF812CD0F25276608337445E4AD6762A4A609C53", + "DFB4394EF9E199944887043214F72762D78B1E3D20F2FDFA98C3855A92DD203E", + "CBE64F15AF5769D6D4DB0C163692F2531A60301211EAD228E3E93BC4A7307F43", + "FDADAEB1FDDFF86A3674DF2F1D220D03FF58D49601F7BB0621591F890D4065FD", + "018B6DD350DE00514755D041A03DA68B17922D999120D720548EE852828E8857", + "68D8CD154E056F47EC404BC581CFD1BCE826FBDCC7EEF919A0AF203C1FC3B3F0", + "5C659803EE2E78CC2DF2668246357DA47E96FA89D550FB23DA234DA0815A1DCD", + "1064F9FB691084773B1419328345A229841AC91D9F9EE3D2B100C46CC08BB795", + "71F3BB197DF675573C258DF95C93A76114657041256EF1E66863443BDC393F82", + "363FA76F53707BB55989B3492C4B4BFFF9A65A0987F3798F90D8F5F1CF4E91AE", + "78ADB63B1822B3109AC45E48D7B669A02091CC0B630CC4735745E82B7D48CEE6", + "BCFC3B2CAA4EA8487540DBBDED987F0220B16D5D30A6198D23A97030CE51C774", + "21DA9DD0F1DE732B3A4934EA13481F016B07C994C1E90D922BB257D4C3D1A5EA", + "A8B718E2240DD8EB6F378C711D5FE0C3557F121930CD2536AA823E93EFF061DC", + "423659AE78E0E6B0BB924E84DF5BFFDE16A7286ADC24F23DBF9E37B5102AAB56", + "0EC948965996A9A14D130F328E2227469D84F9852499316597E9CF702AC91632", + "449D226E7CE332AF58D530005411A748B24807D028B6CDAFC86A001CBAFF14EF", + "277AE5A3C62904184D13229520D8485EF51673D726BD0527F9D9D44FF1EDEBDD", + "59C10DFB826898F30B6DD09CE4D528946B096B44F80F6963AFA875FBD39A8A21", + "54A076BB61B7FC872FB889B0CCAD7227B0921A1E5D46CC3A8BC9F1750B90CFB1", + "867E5CCCD369C3F144801B5B195267F88570F61DDE7988EEFA3080B452C35947", + "F425E2FD49B14E759DA3120B0BE30371FA45A34BA12B5012EAA4339BC0CE2B3A", + "52A16084C5D60B95B66B51B98331057A525FC53EC0E20AAB441C0929DDE5E2FA", + "B0506CE7FBF91D9F51E5B70E14A1D8226B1E1F8F23402645A4A5663BB9C634AF", + "C8359AC016515C92DB80FFFFB00AF9AC87CBE9DB96984DF6FB251CAA8C5B6059", + "703F05B92BFFFA86B2787B7247555F06AC390252BE7D22A2A4B4459A0EFB9CDC", + "B0354B3CC3FB22BA41F91402A99699C97D10B8EC35BE088196913D05820CA99E", + "5E3DC8EE9C02CB2A311DF666FFB1F904E56F987DCBBECBB2F4F4EC43254789FB" + ], + "LastLedgerSequence": 41, + "LedgerEntryType": "LedgerHashes", + "index": "B4979A36CDC7F3D3D5C31A4EAE2AC7D7209DDA877588B9AFC66799692AB0D66B" + }, + { + "Account": "rnYDWQaRdMb5neCGgvFfhw3MBoxmv5LtfH", + "BookDirectory": "EE32C75AA92C3B9CE069B54D3757A2555EDA1459FF800FBE5D038D7EA4C68000", + "BookNode": "0000000000000000", + "Flags": 0, + "LedgerEntryType": "Offer", + "OwnerNode": "0000000000000000", + "PreviousTxnID": "EAC17D4FBFFC094A2966526ADD097106F61EBE3C30D95AAA0414F5166285A8B7", + "PreviousTxnLgrSeq": 14, + "Sequence": 3, + "TakerGets": { + "currency": "USD", + "issuer": "rnYDWQaRdMb5neCGgvFfhw3MBoxmv5LtfH", + "value": "1" + }, + "TakerPays": "100000000", + "index": "B4EE24F900CFE2E898972BD36FCCB8A58D3AC534962EE06EF0974ED2D09AE716" + }, + { + "Flags": 0, + "Indexes": [ + "2927B356D4FEB9824F302372EC64B65A83A7288337FE111F980337709D1AEB78", + "AA6C7719315BB87A89C1A02FA51D3313E1A6A12C0BDF6AD846FDF8AD28E1E231", + "E710D6B27BC9DA64F27942F40ADB7A799D4D50B42F4864377E49AEF0FDBCDF94" + ], + "LedgerEntryType": "DirectoryNode", + "Owner": "rado7qRcvPpS8ZL8SNg4SG8kBNksHyqoRa", + "RootIndex": "B4FADD381FFA8E8154132B8E97DADA97F3A60F971A97D24B28B981093FEE3E3C", + "index": "B4FADD381FFA8E8154132B8E97DADA97F3A60F971A97D24B28B981093FEE3E3C" + }, + { + "Balance": { + "currency": "USD", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "5" + }, + "Flags": 65536, + "HighLimit": { + "currency": "USD", + "issuer": "rJsaPnGdeo7BhMnHjuc3n44Mf7Ra1qkSVJ", + "value": "0" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "USD", + "issuer": "rrnsYgWn13Z28GtRgznrSUsLfMkvsXCZSu", + "value": "1000" + }, + "LowNode": "0000000000000000", + "PreviousTxnID": "6793BC1FAB568465327C53EC2CD224524DC678EF3256EA22033F5F89D56AB584", + "PreviousTxnLgrSeq": 12, + "index": "B4FDB0503DCD82862122618F257A4C279AA3A1B22F036B8516B7A1C2CF4E7EE3" + }, + { + "Account": "rGpeQzUWFu4fMhJHZ1Via5aqFC3A5twZUD", + "Balance": "9999999980", + "Flags": 8388608, + "LedgerEntryType": "AccountRoot", + "OwnerCount": 2, + "PreviousTxnID": "8C6B63E92016F088807F822148919CD320ACF3934B832AC787A2FE8C0D35DF2E", + "PreviousTxnLgrSeq": 10, + "Sequence": 5, + "index": "B7B6A2E2494AF66AE5FAFF88CA37F9F93B762ADD55DB68A4B457B2C51BE4A705" + }, + { + "Account": "r9MB1RNWZChfV3YdLrB3Rm5AoMULewDtiu", + "BookDirectory": "631E572638B141B43F9E6795B73B3CB1B75C37740D6F39D75D038D7EA4C68000", + "BookNode": "0000000000000000", + "Flags": 0, + "LedgerEntryType": "Offer", + "OwnerNode": "0000000000000000", + "PreviousTxnID": "9C9EC9375DFB1700FFC846DEC2A6160AB86D3FE1D2B7823C0EA5F8525A910B08", + "PreviousTxnLgrSeq": 20, + "Sequence": 3, + "TakerGets": { + "currency": "USD", + "issuer": "r9MB1RNWZChfV3YdLrB3Rm5AoMULewDtiu", + "value": "1" + }, + "TakerPays": "100000000", + "index": "C55C2E06D350E31F0E9FA1E6C1934962E9DFB7EEFC01A2B0AF7DA7FB76439FC7" + }, + { + "Balance": { + "currency": "USD", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "-5" + }, + "Flags": 131072, + "HighLimit": { + "currency": "USD", + "issuer": "r4nmQNH4Fhjfh6cHDbvVSsBv7KySbj4cBf", + "value": "1000" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "USD", + "issuer": "rGpeQzUWFu4fMhJHZ1Via5aqFC3A5twZUD", + "value": "0" + }, + "LowNode": "0000000000000000", + "PreviousTxnID": "1093FF666E6CD58273F7C71FFF7CDA2483523D221AC95B755892F405E3B80934", + "PreviousTxnLgrSeq": 8, + "index": "C5F104A35DB835AF4A4C4664BCDA57A88873DCEF23DF567485654FAEE5645949" + }, + { + "Flags": 0, + "Indexes": [ + "51F488F106AD3C4752C1690A92154D0059083BF5B7F0512125BA31C073DC2FB9", + "D73C42A1C24D7DD3E18989E4AD89B7CFACDC712FA3B00FBA9B412F50B4325EB5" + ], + "LedgerEntryType": "DirectoryNode", + "Owner": "rHd21p9Gb834Ri4pzRzGFJ7PjRzymWuBWu", + "RootIndex": "C674C1B72BC0BDC9B90C2A9F1294F5189D00DC101E165127A393A74ADA709B3C", + "index": "C674C1B72BC0BDC9B90C2A9F1294F5189D00DC101E165127A393A74ADA709B3C" + }, + { + "ExchangeRate": "5D038D7EA4C68000", + "Flags": 0, + "Indexes": ["387A729A2F8BFB97655F4C4E5AE5E8ACFF326B11AE3E533004F708CBA7CFD43F"], + "LedgerEntryType": "DirectoryNode", + "RootIndex": "C7E412DB071D9E43461808CE76039E5C5BF7854E274DDB9D5D038D7EA4C68000", + "TakerGetsCurrency": "0000000000000000000000005553440000000000", + "TakerGetsIssuer": "BADF7633E5C957A65E8911FBC392B4BEA4B65780", + "TakerPaysCurrency": "0000000000000000000000000000000000000000", + "TakerPaysIssuer": "0000000000000000000000000000000000000000", + "index": "C7E412DB071D9E43461808CE76039E5C5BF7854E274DDB9D5D038D7EA4C68000" + }, + { + "Balance": { + "currency": "USD", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "5" + }, + "Flags": 65536, + "HighLimit": { + "currency": "USD", + "issuer": "r9MB1RNWZChfV3YdLrB3Rm5AoMULewDtiu", + "value": "0" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "USD", + "issuer": "rfM5xD2CY6XB8o1WsWoJ3ZHGkbHU4NYXr", + "value": "1000" + }, + "LowNode": "0000000000000000", + "PreviousTxnID": "77B0C007E185D8196F385C12075A98DE59C59824BA8D52EC7400C724FD888A68", + "PreviousTxnLgrSeq": 20, + "index": "C8BC8B52B7F8BC724C843D280AA26F579FD0220FAC8BCE491386B8E12C25A99D" + }, + { + "ExchangeRate": "5D038D7EA4C68000", + "Flags": 0, + "Indexes": ["2927B356D4FEB9824F302372EC64B65A83A7288337FE111F980337709D1AEB78"], + "LedgerEntryType": "DirectoryNode", + "RootIndex": "CB0BAC4A118A33819C7FBBA67ED7D0DB6C4C18DB8BF001495D038D7EA4C68000", + "TakerGetsCurrency": "0000000000000000000000005553440000000000", + "TakerGetsIssuer": "3DCE672C523362ABC5DFB4ADB2428802D11190C3", + "TakerPaysCurrency": "0000000000000000000000000000000000000000", + "TakerPaysIssuer": "0000000000000000000000000000000000000000", + "index": "CB0BAC4A118A33819C7FBBA67ED7D0DB6C4C18DB8BF001495D038D7EA4C68000" + }, + { + "Balance": { + "currency": "USD", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "-5" + }, + "Flags": 131072, + "HighLimit": { + "currency": "USD", + "issuer": "rJsaPnGdeo7BhMnHjuc3n44Mf7Ra1qkSVJ", + "value": "1000" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "USD", + "issuer": "rnYDWQaRdMb5neCGgvFfhw3MBoxmv5LtfH", + "value": "0" + }, + "LowNode": "0000000000000000", + "PreviousTxnID": "4044AF3B8EC655188A96AF7FDF788D8B3D2756C52F49AA8D18BDAF3133F56844", + "PreviousTxnLgrSeq": 14, + "index": "CC07E55B7114FAD14663E5BDD16458E3EFA300C2C139E4E0FC9E2635E3D8099E" + }, + { + "Flags": 0, + "Indexes": [ + "1228AC065977AC74F9115AD2A324B3BE3C1145907DED87789ADCBFE6113D1692", + "94BA467A169DD916C2052B88E1903ACF6399AE1334EA3C74D3DE1A863DCBC675", + "E800FC42348E30D7957E66BB3AF6729E54FD0063D865C375E0EBE0E00108A932" + ], + "LedgerEntryType": "DirectoryNode", + "Owner": "rEbq9pWn2knXFTjjuoNNrKgQeGxhmispMi", + "RootIndex": "CDB6DCEC9DDEF2020CBB0706B1CA0A9D3BC61A7ED6F6ADFC6802F767A9C5009F", + "index": "CDB6DCEC9DDEF2020CBB0706B1CA0A9D3BC61A7ED6F6ADFC6802F767A9C5009F" + }, + { + "Account": "rBmhuVAvi372AerwzwERGjhLjqkMmAwxX", + "Balance": "9999999990", + "Flags": 8388608, + "LedgerEntryType": "AccountRoot", + "OwnerCount": 2, + "PreviousTxnID": "06CFD8E92F1C13D346BC8E0A1C9AD8FF78B4D18C3C30ACE96E551A8289919406", + "PreviousTxnLgrSeq": 6, + "Sequence": 4, + "index": "D5F3E175EBEC74788F1D45E9014DBD8343EA6E9A3546E4D23133145010C70FF5" + }, + { + "Balance": { + "currency": "USD", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "5" + }, + "Flags": 65536, + "HighLimit": { + "currency": "USD", + "issuer": "rHd21p9Gb834Ri4pzRzGFJ7PjRzymWuBWu", + "value": "0" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "USD", + "issuer": "rND1XyLAU9G2ydhUgmRo4i2kdrSKgYZc31", + "value": "1000" + }, + "LowNode": "0000000000000000", + "PreviousTxnID": "6E3259FEAF5E0AD82F4E449776A2EFF15D031FA5C28AFCBFBA063B844842DC4E", + "PreviousTxnLgrSeq": 42, + "index": "D73C42A1C24D7DD3E18989E4AD89B7CFACDC712FA3B00FBA9B412F50B4325EB5" + }, + { + "Balance": { + "currency": "USD", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "-5" + }, + "Flags": 131072, + "HighLimit": { + "currency": "USD", + "issuer": "rGWYwGaczQWiduWkccFZKXfp5nDRPqNBNS", + "value": "1000" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "USD", + "issuer": "rBU1EP5oMwKxWr1gZnNe7K8GouQTBhzUKs", + "value": "0" + }, + "LowNode": "0000000000000000", + "PreviousTxnID": "536A62A1E87FD9569DC4480F3F56637679A74320BD44C0B7A453A54DF579828F", + "PreviousTxnLgrSeq": 26, + "index": "DC369C92374347633572CFC81B53524E67C171378EBDA0E22C06301AADEEE8C1" + }, + { + "Flags": 0, + "Indexes": [ + "3AF6F0694BAC73098A2B39D44C39DDD1CCA08322C21B7A1AAFA9DD5C77612786", + "5377F79829B9FDCBB7D5E77CCD9A97D6B9C2F9602F2606561ADE64BFB62C7E4E", + "C8BC8B52B7F8BC724C843D280AA26F579FD0220FAC8BCE491386B8E12C25A99D" + ], + "LedgerEntryType": "DirectoryNode", + "Owner": "rfM5xD2CY6XB8o1WsWoJ3ZHGkbHU4NYXr", + "RootIndex": "DCA8C37E87CAF68E1485FD32ADBEDB6E735DCAF985A93E8F37CC870B18C88EE6", + "index": "DCA8C37E87CAF68E1485FD32ADBEDB6E735DCAF985A93E8F37CC870B18C88EE6" + }, + { + "Balance": { + "currency": "USD", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "-5" + }, + "Flags": 131072, + "HighLimit": { + "currency": "USD", + "issuer": "rNgfurDhqvfsVzLr5ZGB3dJysJhRkvJ79F", + "value": "1000" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "USD", + "issuer": "rBtVTnNgX3uR3kyfVyaQ6hjZTdk42ay9Z3", + "value": "0" + }, + "LowNode": "0000000000000000", + "PreviousTxnID": "C2427249F9F4C8E1F3F8D5D00003C2A47D3A05D7DFB8083E45D08935B4CDF432", + "PreviousTxnLgrSeq": 38, + "index": "E2E37CFB8ABCEEAC7A51BBC15CD32B068573463CAC0F7548E98B0AA8E0EA138F" + }, + { + "ExchangeRate": "5D038D7EA4C68000", + "Flags": 0, + "Indexes": ["3AF6F0694BAC73098A2B39D44C39DDD1CCA08322C21B7A1AAFA9DD5C77612786"], + "LedgerEntryType": "DirectoryNode", + "RootIndex": "E3264B348B8B0E8B605B414C82DFE77DEE340751834E11975D038D7EA4C68000", + "TakerGetsCurrency": "0000000000000000000000005553440000000000", + "TakerGetsIssuer": "0133CB72B8CC959BA602C4A427D43F921594BEDF", + "TakerPaysCurrency": "0000000000000000000000000000000000000000", + "TakerPaysIssuer": "0000000000000000000000000000000000000000", + "index": "E3264B348B8B0E8B605B414C82DFE77DEE340751834E11975D038D7EA4C68000" + }, + { + "Flags": 0, + "Indexes": [ + "0E9DE48BAB27A40AD816C70569E9C284F1838CB6ADDE6740BB5A2F675CF47D12", + "6AA90FBD168B55CBF413F189A8B54FA06D3530F4D88AD290827567CFEBF3FC1F", + "94BA467A169DD916C2052B88E1903ACF6399AE1334EA3C74D3DE1A863DCBC675" + ], + "LedgerEntryType": "DirectoryNode", + "Owner": "rwiTxuknPNeLDYHHLgajRVetKEEwkYhTaQ", + "RootIndex": "E57469942822BDB2AE6588D2B5B73D0853F3EAAF2E8C38C2B01044EC68E26F82", + "index": "E57469942822BDB2AE6588D2B5B73D0853F3EAAF2E8C38C2B01044EC68E26F82" + }, + { + "Account": "rrnsYgWn13Z28GtRgznrSUsLfMkvsXCZSu", + "Balance": "9999999980", + "Flags": 8388608, + "LedgerEntryType": "AccountRoot", + "OwnerCount": 2, + "PreviousTxnID": "AD1CFD44D89D9B15E2C2655A320F432743220878E3C1FCC96E2CD29F222F9350", + "PreviousTxnLgrSeq": 12, + "Sequence": 5, + "index": "E616B629A304F27317ED68DF90FE7D75CEB19A3BDCF62A98DB4EF794BB044B4A" + }, + { + "Flags": 0, + "Indexes": [ + "201A37D8499DD67061017513698849C120C37947833A14C57897048646A77B86", + "AA6C7719315BB87A89C1A02FA51D3313E1A6A12C0BDF6AD846FDF8AD28E1E231", + "E800FC42348E30D7957E66BB3AF6729E54FD0063D865C375E0EBE0E00108A932" + ], + "LedgerEntryType": "DirectoryNode", + "Owner": "rJfBCsnwSHXjTJ4GH5Ax6Kyw48X977hqyq", + "RootIndex": "E6F0CEAB2AA64B6FBD0C1EA0B6D108ED82E53EC68FDD289413856F83F67BBFD3", + "index": "E6F0CEAB2AA64B6FBD0C1EA0B6D108ED82E53EC68FDD289413856F83F67BBFD3" + }, + { + "Balance": { + "currency": "USD", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "5" + }, + "Flags": 65536, + "HighLimit": { + "currency": "USD", + "issuer": "rNgfurDhqvfsVzLr5ZGB3dJysJhRkvJ79F", + "value": "0" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "USD", + "issuer": "rado7qRcvPpS8ZL8SNg4SG8kBNksHyqoRa", + "value": "1000" + }, + "LowNode": "0000000000000000", + "PreviousTxnID": "D921E5F544400DED307AB03724E9036EDEE9A88B9CACBDF56169FAD0F0592D1E", + "PreviousTxnLgrSeq": 36, + "index": "E710D6B27BC9DA64F27942F40ADB7A799D4D50B42F4864377E49AEF0FDBCDF94" + }, + { + "Balance": { + "currency": "USD", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "5" + }, + "Flags": 65536, + "HighLimit": { + "currency": "USD", + "issuer": "rJfBCsnwSHXjTJ4GH5Ax6Kyw48X977hqyq", + "value": "0" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "USD", + "issuer": "rEbq9pWn2knXFTjjuoNNrKgQeGxhmispMi", + "value": "1000" + }, + "LowNode": "0000000000000000", + "PreviousTxnID": "3987B5D843E8C619BD8EFB3D73CD593444E2BD59005DEFBE829BD3595160938B", + "PreviousTxnLgrSeq": 32, + "index": "E800FC42348E30D7957E66BB3AF6729E54FD0063D865C375E0EBE0E00108A932" + }, + { + "ExchangeRate": "5D038D7EA4C68000", + "Flags": 0, + "Indexes": ["B4EE24F900CFE2E898972BD36FCCB8A58D3AC534962EE06EF0974ED2D09AE716"], + "LedgerEntryType": "DirectoryNode", + "RootIndex": "EE32C75AA92C3B9CE069B54D3757A2555EDA1459FF800FBE5D038D7EA4C68000", + "TakerGetsCurrency": "0000000000000000000000005553440000000000", + "TakerGetsIssuer": "31C7D6915E15AB3EFDC9D45D202D6B285B225B68", + "TakerPaysCurrency": "0000000000000000000000000000000000000000", + "TakerPaysIssuer": "0000000000000000000000000000000000000000", + "index": "EE32C75AA92C3B9CE069B54D3757A2555EDA1459FF800FBE5D038D7EA4C68000" + }, + { + "Flags": 0, + "Indexes": [ + "5377F79829B9FDCBB7D5E77CCD9A97D6B9C2F9602F2606561ADE64BFB62C7E4E", + "98D2CF1B63B8223241DBB2E65AF8EB806C1943D00A1A95BD765719DC05BD7CD0", + "A1E72F5EDF478908AA5AFD5268CC5D185611D2E7D4E201FE01A71E45AE2E7612" + ], + "LedgerEntryType": "DirectoryNode", + "Owner": "r31PEiKfa3y6xTi7uBcSp7F3nDLvVMmqyi", + "RootIndex": "EF7CDCEF0965B7ABB189AA123F73BD47A735B9EC8915D52737D085090AC4E6A4", + "index": "EF7CDCEF0965B7ABB189AA123F73BD47A735B9EC8915D52737D085090AC4E6A4" + }, + { + "Account": "rGWYwGaczQWiduWkccFZKXfp5nDRPqNBNS", + "Balance": "9999999980", + "Flags": 8388608, + "LedgerEntryType": "AccountRoot", + "OwnerCount": 2, + "PreviousTxnID": "35A1C7A888A20BEB03F204BE3BEC53C53821A04C38FEB1F296A6CE45C6DD62A0", + "PreviousTxnLgrSeq": 26, + "Sequence": 5, + "index": "F61B7A4808AAFDF25F400A358367888F50F656DA220997F8BDDE698B0B9D0455" + }, + { + "Flags": 0, + "Indexes": [ + "2C368DD90B4B39EC70A08269FEBB94A146B4914CECA2B0B90BB120807CEAECB3", + "9B53EE6A8C2C5B5451B62D3C87D002283072FD3BDC1F88A01AD8D469A231A830", + "B43B6611C9E172A742829AD42A8F999636C256AB62C76657F57CAB05D914FFC8" + ], + "LedgerEntryType": "DirectoryNode", + "Owner": "rH15iZg9KFSi7d1usvcsPerUtg7dhpMbk4", + "RootIndex": "F91FBC39C3964209D996FDF615E17C9AF89DA36198A98CDF4D1F90AC9F263E05", + "index": "F91FBC39C3964209D996FDF615E17C9AF89DA36198A98CDF4D1F90AC9F263E05" + }, + { + "Flags": 0, + "Indexes": [ + "775FBAA50396E1635187D2B699B4367BBF766D28033E199C270D655024DE5FD5", + "B0027E20A13C6C8158B59370609D9726652171FC3D6B98033C8F37B30ECD5225", + "E2E37CFB8ABCEEAC7A51BBC15CD32B068573463CAC0F7548E98B0AA8E0EA138F" + ], + "LedgerEntryType": "DirectoryNode", + "Owner": "rBtVTnNgX3uR3kyfVyaQ6hjZTdk42ay9Z3", + "RootIndex": "FF5482154F313F9DA81C39647E7612FFD2B237219BB0E9A0263C4FB1FCAC4BEC", + "index": "FF5482154F313F9DA81C39647E7612FFD2B237219BB0E9A0263C4FB1FCAC4BEC" + } + ], + "account_hash": "5DF3A98772FB73E782B8740E87885C6BAD9BA486422E3626DEF968AD2CB2C514", + "close_flags": 0, + "close_time": 600, + "close_time_human": "2000-Jan-01 00:10:00.000000", + "close_time_resolution": 10, + "hash": "56DA0940767AC2F17F0E384F04816002403D0756432B9D503DDA20128A2AAF11", + "ledger_hash": "56DA0940767AC2F17F0E384F04816002403D0756432B9D503DDA20128A2AAF11", + "ledger_index": "43", + "parent_close_time": 600, + "parent_hash": "56DA0940767AC2F17F0E384F04816002403D0756432B9D503DDA20128A2AAF11", + "seqNum": "43", + "totalCoins": "99999999999998830", + "total_coins": "99999999999998830", + "transaction_hash": "9A77D1D1A4B36DA77B9C4DC63FDEB8F821741D157802F9C42A6ED86003D8B4A0", + "transactions": [] + }, + "ledger_current_index": 43, + "status": "success", + "validated": false } diff --git a/_api-examples/server_info/jsonrpc-response.json b/_api-examples/server_info/jsonrpc-response.json index 17090e9ba6..3e72f9a3eb 100644 --- a/_api-examples/server_info/jsonrpc-response.json +++ b/_api-examples/server_info/jsonrpc-response.json @@ -1,84 +1,76 @@ { - "result": { - "info": { - "build_version": "1.12.0", - "complete_ledgers": "32570-82521761", - "hostid": "LEST", - "initial_sync_duration_us": "190181187", - "io_latency_ms": 1, - "jq_trans_overflow": "0", - "last_close": { - "converge_time_s": 3, - "proposers": 35 - }, - "load_factor": 1, - "network_id": 0, - "peer_disconnects": "5", - "peer_disconnects_resources": "0", - "peers": 22, - "ports": [ - { - "port": "7777", - "protocol": [ - "ws" - ] - }, - { - "port": "8080", - "protocol": [ - "ws" - ] - }, - { - "port": "80", - "protocol": [ - "http" - ] - }, - { - "port": "51235", - "protocol": [ - "peer" - ] - } - ], - "pubkey_node": "n9KQK8yvTDcZdGyhu2EGdDnFPEBSsY5wEgpU5GgpygTgLFsjQyPt", - "server_state": "full", - "server_state_duration_us": "91758491912", - "state_accounting": { - "connected": { - "duration_us": "83091928", - "transitions": "2" - }, - "disconnected": { - "duration_us": "104836801", - "transitions": "2" - }, - "full": { - "duration_us": "91758491912", - "transitions": "1" - }, - "syncing": { - "duration_us": "2252409", - "transitions": "1" - }, - "tracking": { - "duration_us": "48", - "transitions": "1" - } - }, - "time": "2023-Sep-13 22:12:31.377492 UTC", - "uptime": 91948, - "validated_ledger": { - "age": 1, - "base_fee_xrp": 0.00001, - "hash": "6872A6612DCEBCFC717FEBC66EB8CC2A4D5EEB2B0F15FC3DCD060049FCA47F31", - "reserve_base_xrp": 10, - "reserve_inc_xrp": 2, - "seq": 82521761 - }, - "validation_quorum": 28 + "result": { + "info": { + "build_version": "1.12.0", + "complete_ledgers": "32570-82521761", + "hostid": "LEST", + "initial_sync_duration_us": "190181187", + "io_latency_ms": 1, + "jq_trans_overflow": "0", + "last_close": { + "converge_time_s": 3, + "proposers": 35 }, - "status": "success" - } + "load_factor": 1, + "network_id": 0, + "peer_disconnects": "5", + "peer_disconnects_resources": "0", + "peers": 22, + "ports": [ + { + "port": "7777", + "protocol": ["ws"] + }, + { + "port": "8080", + "protocol": ["ws"] + }, + { + "port": "80", + "protocol": ["http"] + }, + { + "port": "51235", + "protocol": ["peer"] + } + ], + "pubkey_node": "n9KQK8yvTDcZdGyhu2EGdDnFPEBSsY5wEgpU5GgpygTgLFsjQyPt", + "server_state": "full", + "server_state_duration_us": "91758491912", + "state_accounting": { + "connected": { + "duration_us": "83091928", + "transitions": "2" + }, + "disconnected": { + "duration_us": "104836801", + "transitions": "2" + }, + "full": { + "duration_us": "91758491912", + "transitions": "1" + }, + "syncing": { + "duration_us": "2252409", + "transitions": "1" + }, + "tracking": { + "duration_us": "48", + "transitions": "1" + } + }, + "time": "2023-Sep-13 22:12:31.377492 UTC", + "uptime": 91948, + "validated_ledger": { + "age": 1, + "base_fee_xrp": 0.00001, + "hash": "6872A6612DCEBCFC717FEBC66EB8CC2A4D5EEB2B0F15FC3DCD060049FCA47F31", + "reserve_base_xrp": 10, + "reserve_inc_xrp": 2, + "seq": 82521761 + }, + "validation_quorum": 28 + }, + "status": "success" + } } diff --git a/_api-examples/server_info/ws-response.json b/_api-examples/server_info/ws-response.json index e02cfdb5f8..fa05fcae8a 100644 --- a/_api-examples/server_info/ws-response.json +++ b/_api-examples/server_info/ws-response.json @@ -1,86 +1,78 @@ { - "id": 1, - "result": { - "info": { - "build_version": "1.12.0", - "complete_ledgers": "32570-82521701", - "hostid": "LEST", - "initial_sync_duration_us": "190181187", - "io_latency_ms": 1, - "jq_trans_overflow": "0", - "last_close": { - "converge_time_s": 3.001, - "proposers": 35 + "id": 1, + "result": { + "info": { + "build_version": "1.12.0", + "complete_ledgers": "32570-82521701", + "hostid": "LEST", + "initial_sync_duration_us": "190181187", + "io_latency_ms": 1, + "jq_trans_overflow": "0", + "last_close": { + "converge_time_s": 3.001, + "proposers": 35 + }, + "load_factor": 1, + "network_id": 0, + "peer_disconnects": "5", + "peer_disconnects_resources": "0", + "peers": 22, + "ports": [ + { + "port": "7777", + "protocol": ["ws"] }, - "load_factor": 1, - "network_id": 0, - "peer_disconnects": "5", - "peer_disconnects_resources": "0", - "peers": 22, - "ports": [ - { - "port": "7777", - "protocol": [ - "ws" - ] - }, - { - "port": "8080", - "protocol": [ - "ws" - ] - }, - { - "port": "80", - "protocol": [ - "http" - ] - }, - { - "port": "51235", - "protocol": [ - "peer" - ] - } - ], - "pubkey_node": "n9KQK8yvTDcZdGyhu2EGdDnFPEBSsY5wEgpU5GgpygTgLFsjQyPt", - "server_state": "full", - "server_state_duration_us": "91535211664", - "state_accounting": { - "connected": { - "duration_us": "83091928", - "transitions": "2" - }, - "disconnected": { - "duration_us": "104836801", - "transitions": "2" - }, - "full": { - "duration_us": "91535211664", - "transitions": "1" - }, - "syncing": { - "duration_us": "2252409", - "transitions": "1" - }, - "tracking": { - "duration_us": "48", - "transitions": "1" - } + { + "port": "8080", + "protocol": ["ws"] }, - "time": "2023-Sep-13 22:08:48.097189 UTC", - "uptime": 91725, - "validated_ledger": { - "age": 4, - "base_fee_xrp": 0.00001, - "hash": "5825332DC66029ECCD896CACB3BBB79E4F5372A8DCA91AA2874A1A1A87B79F84", - "reserve_base_xrp": 10, - "reserve_inc_xrp": 2, - "seq": 82521701 + { + "port": "80", + "protocol": ["http"] }, - "validation_quorum": 28 - } - }, - "status": "success", - "type": "response" + { + "port": "51235", + "protocol": ["peer"] + } + ], + "pubkey_node": "n9KQK8yvTDcZdGyhu2EGdDnFPEBSsY5wEgpU5GgpygTgLFsjQyPt", + "server_state": "full", + "server_state_duration_us": "91535211664", + "state_accounting": { + "connected": { + "duration_us": "83091928", + "transitions": "2" + }, + "disconnected": { + "duration_us": "104836801", + "transitions": "2" + }, + "full": { + "duration_us": "91535211664", + "transitions": "1" + }, + "syncing": { + "duration_us": "2252409", + "transitions": "1" + }, + "tracking": { + "duration_us": "48", + "transitions": "1" + } + }, + "time": "2023-Sep-13 22:08:48.097189 UTC", + "uptime": 91725, + "validated_ledger": { + "age": 4, + "base_fee_xrp": 0.00001, + "hash": "5825332DC66029ECCD896CACB3BBB79E4F5372A8DCA91AA2874A1A1A87B79F84", + "reserve_base_xrp": 10, + "reserve_inc_xrp": 2, + "seq": 82521701 + }, + "validation_quorum": 28 + } + }, + "status": "success", + "type": "response" } diff --git a/_api-examples/tx/jsonrpc-response.json b/_api-examples/tx/jsonrpc-response.json index 19ff13bad3..48de6d3725 100644 --- a/_api-examples/tx/jsonrpc-response.json +++ b/_api-examples/tx/jsonrpc-response.json @@ -120,4 +120,4 @@ "ctid": "C363B1DD00000000", "status": "success" } -} \ No newline at end of file +} diff --git a/_api-examples/tx/ws-response.json b/_api-examples/tx/ws-response.json index dd15e9327f..df701713ba 100644 --- a/_api-examples/tx/ws-response.json +++ b/_api-examples/tx/ws-response.json @@ -123,4 +123,4 @@ "api_version": 2, "status": "success", "type": "response" -} \ No newline at end of file +} diff --git a/_api-examples/vl/vl-blob.json b/_api-examples/vl/vl-blob.json index 6c47e02f7d..0234d2db63 100644 --- a/_api-examples/vl/vl-blob.json +++ b/_api-examples/vl/vl-blob.json @@ -1,150 +1,150 @@ { - "sequence": 60, - "expiration": 644371200, - "validators": [ - { - "validation_public_key": "ED45E80A04D79CB9DF00AEBD86DCDC1686D6419EA9E5E0E71F1A817E08B5076A55", - "manifest": "JAAAAAFxIe1F6AoE15y53wCuvYbc3BaG1kGeqeXg5x8agX4ItQdqVXMhAxZo157pcB9de6Smk7hoK3wNCAr4aFZtfAPi7CE4mNJldkcwRQIhALlVjXCfiy/mtXBWsNt77t4jKcNEBpRV8zv+SpU5lCh0AiBa8vo8xxpviYlf4zdG+nQhB2OgfkQZZPMHOt7CaXzXgXASQL8O5p083mg4KKL8uZfMaUqdgzuJ0Gta1lyUWPctTPCxY135XwK+nJAdFsIUFNJ9MPjnpCmSjYVzVa6M5/nAcAI=" - }, - { - "validation_public_key": "EDD8C88642795CE69C5B780E01702C370F9507D0B64433F17EFE70F2637A40ADB7", - "manifest": "JAAAAAFxIe3YyIZCeVzmnFt4DgFwLDcPlQfQtkQz8X7+cPJjekCtt3MhAnFfr+r9BXdsXE/cBlJMyd/XsO1A5XEYCctrsvLEX+DmdkcwRQIhANRcRMg9SAXoaOvHDZ2av9RzEaZaVENfQiVgsi+Ox3F0AiB2snSIOm6c4/inbtU0UmWLQTzuwkOdUFPIB8Ax8dmGuHASQMUIfXMj96kcFTSJnMFC/mW/AQ8bKXkFrrk0CUTFFKweEjTq+STrFi6qLL2MT7nveGxsXBCgztjc0qGas9KFWgM=" - }, - { - "validation_public_key": "EDBDEB901F7C75D0E20C6C42AF03BE0DA40377AF1939A18B3CB3679661DD5F9F74", - "manifest": "JAAAAAFxIe2965AffHXQ4gxsQq8Dvg2kA3evGTmhizyzZ5Zh3V+fdHMhAg3cyKNPMPqKgR7kIi7c/8GL/YgdBtg4mSAWvwmaevVGdkYwRAIgWzG8GqYg3YpwDs8xXa9XqLHss76KT2uAHRhUXFVUqCQCIG2EvbFKnxezRd9cpPHSt32HXK+P4+aL3p2+vqlCxRR9cBJAboXTmYTayocA3zf9dWEXtyaeOGC1k5WdYURzPleevvalR4xVoXzs38iGPxFr/pA9nL+M4duu0GKCHlVir+fBAg==" - }, - { - "validation_public_key": "EDA17871E72B0C570AC4345C60CF02AFBBB740A631B7AD0E1E573216574D9AEA02", - "manifest": "JAAAAAFxIe2heHHnKwxXCsQ0XGDPAq+7t0CmMbetDh5XMhZXTZrqAnMhAojyuzgtreQkxQj8prHxOsbDcF5fu4XXb0KxEL/Pq5HhdkcwRQIhANfPDLZP47aCWwt5kBnp75BuuCgp9c4BfJPd66SFCw61AiAJvegBvvPIrec+XOSzKRfi5uuXWxtl9Eyr2aPBYXvbRHASQMULYEo7beRfoUCnjk1sTYyY91tLIGLgnnaWXhUm80+zs5IGegk8qijKAtBOMuBC71lAB4KhJc+dB2rpMOFc5gw=" - }, - { - "validation_public_key": "EDF46EE27AD0E1A714AFECDA816EAB7114614FCB92D0CB4D97B6A88ED43434AFC9", - "manifest": "JAAAAAFxIe30buJ60OGnFK/s2oFuq3EUYU/LktDLTZe2qI7UNDSvyXMhAw0ATWjVTt4FfeKO7kv6fFgd/go2+d5BSyUcURmRWnTtdkcwRQIhAMwOgDec7QYYNngspg90wEvVbsoh2ux14RPTw+GHaXNlAiALgfEsz+AF4eyX/Y5i44VrFjFFIMWUfOZaQJtsxteM1XASQLOaF0t2ZpqVKd8JESQVY+zU567iAAG2amTPZx95875S9A6Pl+kH5TGHMAeWjgWSqfh3m2HBJX7NIcXb98vy9AA=" - }, - { - "validation_public_key": "ED6E4C41E59FFBEB51726E54468502FE6437238FA78EA51634E7BF0D09171AEE8F", - "manifest": "JAAAAAFxIe1uTEHln/vrUXJuVEaFAv5kNyOPp46lFjTnvw0JFxruj3MhAuztGWb/Oi1/V5m5dujWr9HmbKRyK4XYk+kmuFPSgAFrdkYwRAIgfQ+BgXX6QblZy4H05o7GPSIwqS7QQRUW7dqF54IAiiMCIH4XfLw956iEaoxZOk7Kctin2X9hMfaLN7wys9yAUFoZcBJAueEi84XR3Ll1GLJWanW1g1MdUj/0PAxJbw6EEQRuG3zdnuRHNXld6UZAbIkVcP0ztfqulBzjbcsLDOKFEicSBg==" - }, - { - "validation_public_key": "EDB6FC8E803EE8EDC2793F1EC917B2EE41D35255618DEB91D3F9B1FC89B75D4539", - "manifest": "JAAAAAFxIe22/I6APujtwnk/HskXsu5B01JVYY3rkdP5sfyJt11FOXMhA8VdvHFyScByQGTYNGeOvB0+67gWaqefcfvRk5+KwgV1dkYwRAIgZFulO/AiMoczng6i/4BkfzT7j9lxF4PP1ufgrOQaJ8sCIBX/E8Zbpn7tWqgAyNyWpVPkhFmaUMqEry8WoUT1fdGQcBJAv51RqJxgg/VrnrZwiLK2Dc0CKbiLPO5HJ4ZMsjdPT2gRc97rWkAXuV2L6PNFO59xyuoaZmSMlZYvqSGPpfF7Bw==" - }, - { - "validation_public_key": "ED691303992FEC64E6BC4BACD36AE6E5AEDC23F2861B6D8EFB9FD77EE3EADE3435", - "manifest": "JAAAAAFxIe1pEwOZL+xk5rxLrNNq5uWu3CPyhhttjvuf137j6t40NXMhAi2AXJQgo/JuW3r7f/6CcVsGN1YmIj11GiIESHBnQSk8dkcwRQIhANCDEQymrd6veT3ouacF6fhBr5wLw3GmXg1rMCLVvBzZAiA8uWQ+tqd46WmfBexjSBQ2Jd6UAGdrHvjcCQ2ZgSooCnASQFkHl+D7/U3WByYP384+pcFDf2Gi4WIRHVTo58cqdk5CDiwc1T0rDoLhmo41a3f+dsftfwR4aMmwFcPXLnrjrAI=" - }, - { - "validation_public_key": "EDAD16667F0185DDBB7FA65B22F4B7D310BF5C3E2D9B823FB06A3A41AF8AC83BC1", - "manifest": "JAAAAAFxIe2tFmZ/AYXdu3+mWyL0t9MQv1w+LZuCP7BqOkGvisg7wXMhAqweE3PIS3E44KhMqKjKtbkBe8H8GbiuoAXAYDRoVRHodkYwRAIgagGkXtowUybdltKojv0lvvflrlQ9IRnPOjekF60iHzgCICg6ZocIMzkUuvO91BEormIWmX4G/MGT2zro6I/PvB8XcBJAcJLXkt/w/kcwEvNiZmi2i2nMn1wiP3LS9NJjBPju8KFLAMg0O9ydQT67U/ALYOeTPTO2/i2Yw9OSlibtqhgzDA==" - }, - { - "validation_public_key": "EDC245027A52EE5318095598EC3AB65FF4A3B9F9428E10B2F3C6F39DE15A15C90A", - "manifest": "JAAAAAFxIe3CRQJ6Uu5TGAlVmOw6tl/0o7n5Qo4QsvPG853hWhXJCnMhA/8/9rKUdA61j/fIEP/cqLpxBlmIhP2rg1d7NaEPyKV+dkcwRQIhAIxE0M/FJ50vfZW6fPpy4yCZumY9n0obrOojUkjm55a0AiBj56O0MpopGoY9HxC/+4wNO36Ho7E9CQeHsnKreDdsAXASQIYUd81jbiVUlET4dGoG2p+cf+2GqEXX5fJMSSyX/qe0XfR4cO+4qlgmjMQdCRDBWABHVvdN/yZyi/rL2c+WrQc=" - }, - { - "validation_public_key": "ED4246AA3AE9D29863944800CCA91829E4447498A20CD9C3973A6B59346C75AB95", - "manifest": "JAAAAAFxIe1CRqo66dKYY5RIAMypGCnkRHSYogzZw5c6a1k0bHWrlXMhAkm1lz0c8QXWfJ9b1vB72dLabw8wYId8MtnpsHHBEC8pdkYwRAIgQlb6HJ53hsTAfVid+AOdBVvMF7rahIKNLBHUgn52zBECIGLUqFu8a1AAHRJcVonKYEnmhJwbCXLn+je7na1WD1/ocBJAE4vfvrGSmZC2uAUGmM5dIBtoSgEUey+2VleDYEsce94txYcjR8Z7QLNaliD8w/bD5/hvYQ8meV1Wg1jJFNe0CA==" - }, - { - "validation_public_key": "ED2C1468B4A11D281F93EF337C95E4A08DF0000FDEFB6D0EA9BC05FBD5D61A1F5A", - "manifest": "JAAAAAFxIe0sFGi0oR0oH5PvM3yV5KCN8AAP3vttDqm8BfvV1hofWnMhAkMUmCD2aPmgFDDRmimvSicSIScw6YNr42Dw4RAdwrOAdkcwRQIhAJFOHMg6qTG8v60dhrenYYk6cwOaRXq0RNmLjyyCiz5lAiAdU0YkDUJQhnN8Ry8s+6zTJLiNLbtM8oO/cLnurVpRM3ASQGALarHAsJkSZQtGdM2AaR/joFK/jhDU57+l+RSYjri/ydE20DaKanwkMEoVlBTg7lX4hYjEnmkqo73wIthLOAQ=" - }, - { - "validation_public_key": "EDA54C85F91219FD259134B6B126AD64AE7204B81DD4052510657E1A5697246AD2", - "manifest": "JAAAAHlxIe2lTIX5Ehn9JZE0trEmrWSucgS4HdQFJRBlfhpWlyRq0nMhAuAm/kLuTHmcOaDruJBjKjWOp1UtGuO8CICtRp4vo4HGdkcwRQIhAP1SPcKuMlGGDe5rcQAf1x/BmnVtBIG4Hv9US5b/GyZCAiA+03cZu9+EBqSZueF5lAUSPY/HRfL7pqxwn89fS4AFA3ASQJq+QRUP+aXB2iMxZrEajySxGs7CNpucyptWV0bnaq7ilnfUCvMlfszq5mV0rahB89C2zAnf7FjH0Cx0BML29QA=" - }, - { - "validation_public_key": "ED9AE4F5887BA029EB7C0884486D23CF281975F773F44BD213054219882C411CC7", - "manifest": "JAAAAAFxIe2a5PWIe6Ap63wIhEhtI88oGXX3c/RL0hMFQhmILEEcx3MhAmG2zgv8FBZsZJU8aPapwo9cIqQv4/MSS1oVA5eVMiwLdkYwRAIgF+LOe4eY0gp9ttqh2gnv+z75OqLyOQMpGPALgm+NtOsCICDXBZVPtprmBDkBJkPFSnE55D9eKYRH8z/iY1EtpNplcBJAADEWGVT80Owhd1lh2JsU/oZlmeNF5WN7YvlB8llExaRKEVC+GW9Wg+iNIQ3rmV7P8aNaVuaabG00fOgkgzNhDw==" - }, - { - "validation_public_key": "EDA8D29F40CEB28995617641A3BC42692E1DE883214F612FBB62087A148E5F6F9A", - "manifest": "JAAAAAFxIe2o0p9AzrKJlWF2QaO8QmkuHeiDIU9hL7tiCHoUjl9vmnMhAnYnP7Eg6VgNnEUTRE29d64jQT/iBcWTQtNrUzyD6MJ+dkcwRQIhAOEsV5anTkloSmTZRbimMyBKqHoJYXcBBe8lLiPYC7mUAiAz2aNOpfQ/1LycWloIMvdhxzinq5X7Uas/uOSb9wh8d3ASQLVkfpW/GO6wdT6AuuSJ56TtM343pDNH+iSzxltIfdrPiUxT5rf4k21lQQuPClXm9+SfKrCiUXZK7dj0/GWTYQg=" - }, - { - "validation_public_key": "ED38B0288EA240B4CDEC18A1A6289EB49007E4EBC0DE944803EB7EF141C5664073", - "manifest": "JAAAAAFxIe04sCiOokC0zewYoaYonrSQB+TrwN6USAPrfvFBxWZAc3MhAgOKcvIuchalrZw/glTuOxV3IOCcporxMB7JqAVupk1edkcwRQIhAOvRzpe+IYZK1MyInIQZ87JvP2J8SIXCXZMPBCdITBamAiASavJXi9pws8rDDJSxhGMlmE7zI5bSA8ivtRC9Lgq+UXASQDl3eoqLID+ETJNM+zbMuvwvcHEIxeBZkZ9fp5jJv6OCTPwlj4TJSuy1avEWqUYS2riv5Dvl2haFUoCHf4yawAA=" - }, - { - "validation_public_key": "EDEE10DC36ACD995C8E0E86E3CD2FBF8301A4AC2B8847B61A1935DE4973B407C0E", - "manifest": "JAAAAAFxIe3uENw2rNmVyODobjzS+/gwGkrCuIR7YaGTXeSXO0B8DnMhAmX0vb7j+lgBjFjbN9RlA86J7AO2Vn6HLquO3aisK4mwdkYwRAIgfxBLn7i4jg/di0U25q6kIbVfTzqbA0SCpQ0I57TOFkcCIFMtJQpENjB2K2EmvBHPvNcwuSPc3vsEeqE2rNJ/cT5DcBJAf68XPFu5RjCeLgpFJM7PKFLgoV8e1nxO5ewjq9Q+TAEGnFyS0IOwf6pOOtIVMdVeXu1v6p4fhXQkdihHt1x6Ag==" - }, - { - "validation_public_key": "ED583ECD06C3B7369980E65C78C440A529300F557ED81256283F7DD5AA3513A334", - "manifest": "JAAAAAFxIe1YPs0Gw7c2mYDmXHjEQKUpMA9VftgSVig/fdWqNROjNHMhAyuUnzZZ1n2/GaTmE1m7H/v9YlZyDEwHY3gSHUA3ICL9dkYwRAIgHx2PHvidoN+5yG9WeAS2k7nwIM8ajxQW6wjvt8kBenACIDNxQPQkDyDJH9seS5C62mAarQmgiN89YS3jhNtnvEIqcBJAj7Jh0Kac+aJdpoepu/+eJKnnFQ7YByZB8eMZ+SS1zLhE+lip/49qqVNcpAxEqfaGtxJzoDDD1/QbuU7NOSPkCg==" - }, - { - "validation_public_key": "ED95C5172B2AD7D39434EEBC436B65B3BB7E58D5C1CEFC820B6972ACAD776E286A", - "manifest": "JAAAAAFxIe2VxRcrKtfTlDTuvENrZbO7fljVwc78ggtpcqytd24oanMhAiqcRde3MQZ075fa4ZNNyRaYJGMdBNkBnn3bQrKseBDQdkYwRAIgU+LfcE71DPVrO+KtUBjQ9D2u0k/Pr7lukO1nPRj6hSACIDNLYC/JFgobCsIa0BGw+6bUnOw9meU3FdXgR7Q7SoqJcBJAXQakOoQnPp3pcLL7zdKCPUX4b+/FC9Unhqp+O9xQFnRaCWVGmk5MJOIMs4WOQdpM1j3OgSsABmRuCXYvwo/nDw==" - }, - { - "validation_public_key": "ED91EA1E0845DCA1F2E1963BA0D45F30C943DF28F3BFB0A10174365137C7F6E9C4", - "manifest": "JAAAAAFxIe2R6h4IRdyh8uGWO6DUXzDJQ98o87+woQF0NlE3x/bpxHMhAy0y9dGPsh3zyCOznqVlLDQ38u4K2G/6wgvJDMUuQg+sdkYwRAIgNEZc1LDaxyIUxrJDP0euBtNjIQnrZjRPOtlVgGymcD0CIAXHIkub5DVkmoKdOPGYPZPNs7qjCTVG/NgL4IhZCcdpcBJAqnAtvvQcyaUf9aW6AsE2szW6hlqDiJ5SBri9i0BAlUVGQCFugQpp1kZJ8MrReR5lU4N0Wfu3W8whCIJ4zYSpCw==" - }, - { - "validation_public_key": "ED30604DA11EBAB73C4A2830F014D6F84BD4B1C260BB1A4E2F9063C1A7B4384A96", - "manifest": "JAAAAAFxIe0wYE2hHrq3PEooMPAU1vhL1LHCYLsaTi+QY8GntDhKlnMhA7mC0y8JZUmLThVLWXk1G3yoBhvC2DWpkPQ7nSeZZIaVdkcwRQIhAO8aT3z7GFPNyfICuVKO0axMdm63itv9x04DEA9LIBe7AiA61aG/rh/7V9SriNqqTVnJg7jQ/ZoXSfUZNr4XHcGtIHASQOX/AIJXEeeO0zI+ysNcpMIdX7iFuse+ox09SrfFy8KsYb6e3TA+TVUXNu/OZKRv+VZlwO79+d/RH0pzWZBqegM=" - }, - { - "validation_public_key": "ED8252C2F91523126EEF9A21964C7E487A10D6D63D459139700DBC70D9F7BAD542", - "manifest": "JAAAAAFxIe2CUsL5FSMSbu+aIZZMfkh6ENbWPUWROXANvHDZ97rVQnMhA41LoGG44d9TZqT0bakr9dpFCqL+fgXCINmAYCeXf4acdkYwRAIgdMgcVlVPIffb1ITBaWjSJ+Asy7P98GO9WDmiBm42epsCIADSZmxluN/NPn7nwKZ6G3xfeF8lH5ecItPWNrWWOuW4cBJAtstv8IUUMnTZdUzjm8YQDAGqooWCik5ttjYmk46qq2TsWRTIL73Kp9VLHbGrEvNdkn5YLBmdwfTwhWmBriQvAw==" - }, - { - "validation_public_key": "ED63CF929BE85B266A66584B3FE2EB97FC248203F0271DC9C833563E60418E7818", - "manifest": "JAAAAANxIe1jz5Kb6FsmamZYSz/i65f8JIID8CcdycgzVj5gQY54GHMhA46ynkiiAAEUGZgMrCHUD6h1zWEbxiA91M16I54uxnO/dkYwRAIgEUJiZ2yqot1XrVU6M/claeRAK5Tx0BGTtykon8JIJCkCIF70vgQpeXpV0v2eqPT8DOqcp1N2CxgBkDn/ylsqOBilcBJAFQJx4jfZaD11nw02L74IYzVtyaRNKVCr4kdHNoyLdmWL9xWCCTwVhUf8nh2YfIpJcFnFp0jaSPUQr6Gwltq9AA==" - }, - { - "validation_public_key": "ED0AD0609BCC0226962BE6A1F1E3976D4984CEAAD3B928A03DCA28EB7BB7A12377", - "manifest": "JAAAAAFxIe0K0GCbzAImlivmofHjl21JhM6q07kooD3KKOt7t6Ejd3MhA13G4BaLsQc0ZuqMWdl2mIVLSVORKg8EPU338wIDtKpJdkYwRAIgEO5sVMxiiZ02E5PRPhTOXRpDSJdU4WhwWZ1LcAIhDNECICnhUtqDwvlWDN2G1a9CxBWsXDyz/tHdpl++CpmR4bOFcBJA8cKga06ByHoATejVsVEUF7LK1PyOS0DRXoLr5YsNPbF+nq+uxi7yBMbDQU+2PbCERxYncpeZPD2V2m6xD8uCAg==" - }, - { - "validation_public_key": "EDC090980ECAAB37CBE52E880236EC57F732B7DBB7C7BB9A3768D3A6E7184A795E", - "manifest": "JAAAAAFxIe3AkJgOyqs3y+UuiAI27Ff3Mrfbt8e7mjdo06bnGEp5XnMhAhRmvCZmWZXlwShVE9qXs2AVCvhVuA/WGYkTX/vVGBGwdkYwRAIgGnYpIGufURojN2cTXakAM7Vwa0GR7o3osdVlZShroXQCIH9R/Lx1v9rdb4YY2n5nrxdnhSSof3U6V/wIHJmeao5ucBJA9D1iAMo7YFCpb245N3Czc0L1R2Xac0YwQ6XdGT+cZ7yw2n8JbdC3hH8Xu9OUqc867Ee6JmlXtyDHzBdY/hdJCQ==" - }, - { - "validation_public_key": "EDC1897CE83B6DCF58858574EC9FE027D4B1538A0F20823800A5529E121E87A93B", - "manifest": "JAAAAAFxIe3BiXzoO23PWIWFdOyf4CfUsVOKDyCCOAClUp4SHoepO3MhAyzghN7DPPb6DQk+C8jD6VxnAtvrMP3wb4dUWvikOyb6dkcwRQIhANmpvnJnNABmsVVTgZGG9/gJ2gO10+reIvj1RmCN27kuAiBqG5TMjHKdSHDo2kRX/yIc6ZbzMxCeQNg0p/VQYHB70HASQEEWeQ3EJKifr/rFQRGYTATKtK/KmSyR246DAYGDkMwmqZ9MUhjAalWPdSks+q8E8lmxnkElmJ9IRL80efslCAQ=" - }, - { - "validation_public_key": "ED5E82276BCC278499E4285399789F5A93196166B552957997A61599D4F8613959", - "manifest": "JAAAAAFxIe1egidrzCeEmeQoU5l4n1qTGWFmtVKVeZemFZnU+GE5WXMhAw2OjN7E3AfWx4sAN7k+8SdHypV6PKv/LdnCt1OiCf+RdkYwRAIgf5hIqlhCsDXUmJqdrU6CaM+tl34yqRo7QzOYB2JEyo8CIFfMBva7js/PM9yyJo95jxE+VTpWCxXd9o7c7qjyituTcBJA+biCZchkbricoQKMSbtUFRih10Khob4lva+SMz6ldA8c5wXWUnOlqZ7WWyG1y+FaM7CzDAx4iEg3KMQm44nUCQ==" - }, - { - "validation_public_key": "EDF10074F5FBBB975A8EA8E9C42306854E6A49C71B7D33B0293AB1830FECF2C400", - "manifest": "JAAAAAFxIe3xAHT1+7uXWo6o6cQjBoVOaknHG30zsCk6sYMP7PLEAHMhA/50gU8eWLqwVPKzk0Nj5bAc+xJ1mFevzP4eN7GIFs53dkcwRQIhANeYigL33Z1iQ4yq++CaiSy3AHLwE9yuSJ+2z84s9ypJAiBZPg/KKOXZpusZwXhrHvwOzWDSeDJ0W/V1iEQnMhw+vHASQLW0r5r+nG+x+F5b3Y8aAJQhkX1CBOhgFFeuAmCvUO2f6vlEx455hDtJqI8N84a0Kg5Y+gmzpsESNFXEJBH1xwE=" - }, - { - "validation_public_key": "EDFE65FB385B6BB16951153D2A0F32BD6D8CC4532C87BB3E1900913A7BE34F5EF7", - "manifest": "JAAAAAFxIe3+Zfs4W2uxaVEVPSoPMr1tjMRTLIe7PhkAkTp7409e93MhA31gXDB4wVF06XPQM3fScxfWHkoRE5kggC/SEwXCYSHDdkcwRQIhAMSEv7ka1d70zTe3ctwBb9d+hx+wZjveZbcVuphfzRg/AiBOjyeTN0fvbjmur+lV/ovG1A9Zfkn7HmO7nbrFiorLwXASQLAHLgKpleHyaSQv0O4dCI0rSuvPR4Svw9FkMCorVZKG7ywAmKN2hRW8UraUfqm2HpQCq4AASgRoR2/YhBQCEgo=" - }, - { - "validation_public_key": "ED58F6770DB5DD77E59D28CB650EC3816E2FC95021BB56E720C9A12DA79C58A3AB", - "manifest": "JAAAAAFxIe1Y9ncNtd135Z0oy2UOw4FuL8lQIbtW5yDJoS2nnFijq3MhA+QZVFEvfIH4IlclPsVfTcaKgR3XNrXNk97GxtKYBR3jdkcwRQIhAOgnllsWVvhWHfvVOsdXGsQjrRZp2buWISeq6GSYiz7FAiAcCO8OmHivZjwAl+dN1J/9FJ+cElxcpr/M+CaHkUBt6HASQDTO+yf+h1naBQgQmY32ajTvpPLsp4gQUxaYlTl0vdkeXHyAntECezgoxWBlo9IrEzBFzWOfXFTx4bwTrEMuBAk=" - }, - { - "validation_public_key": "ED5784A43AA84B5BDAFD0AFEF64ADA5583A3129182C6A7464950FD6BF2D9FAE5B0", - "manifest": "JAAAAAFxIe1XhKQ6qEtb2v0K/vZK2lWDoxKRgsanRklQ/Wvy2frlsHMhArdbSEl/Oha4I5VI0qVxmc1zBWoRb5YnutciOC0l+OYddkcwRQIhAIqluIgtzGJZJG9s7t2558ipnGfgXOZxOBN+VXey4iSmAiAWJzzanXjXImMB/VtHHrqs1V4xnlg8uF+y7Ms+1vMGZnASQCZYnNR3aSlwdYpRkP5v1V9a5BesJUZD6UJ1nMr5b5VoOml+DjVtDUZysrCIx00a+gLz+th86gTey7UnCrqgQgk=" - }, - { - "validation_public_key": "ED75940EC09130F9C553D8AF0FE354A112CC27251472AF1A90917597489192135F", - "manifest": "JAAAAAFxIe11lA7AkTD5xVPYrw/jVKESzCclFHKvGpCRdZdIkZITX3MhAozHf//RpGgNExPNP8S2HDLH5NQErqjPSZy99Kn8G31mdkcwRQIhAKJW0DjI1xeTYBlDE9qY9t32suLV3hsQo0SW4cvGm0DcAiA7AKg7SSHAVnJnG7HkJU6jxTj9qPRg6/o6lAxyWFRsenASQPP5nJBFTluxZ1CJ+MlHAQXOn4HjReHkNfD0JF2EFkKXRcd/1HrnE9uGPt31EWWhPU1+s6tsbIx7wy9mq5XcHQ0=" - }, - { - "validation_public_key": "EDF4CC5AB784DC569D9BBD46982B1CF80A79BB4C0AD1CA1270F1D8B5EA4A5B950B", - "manifest": "JAAAAAFxIe30zFq3hNxWnZu9RpgrHPgKebtMCtHKEnDx2LXqSluVC3MhAoH3kciMcuyYxaV7xox0PG/DKuzF1T7u/RmUtGkBf0UNdkcwRQIhALnQ0rBlGS/PrNNVKjkhyJnQqzelRztgA4kC0xewQhXoAiBYvLfFq14UNYVy8ffGec0VRcTm7ZZR1qx+jDo4CFPyyHASQDW7A9Nulxybe/IK5QhXBp71uGi7FQ2RCww/WvK4kVidmxlTh+MjHIOid8VxNmATmDfpgXMi8R8ZC6TSVEA3ygI=" - }, - { - "validation_public_key": "EDCFE65121E39A2955F04D6D784E3B021791E88D1393DA4AFAB89F99A929A72924", - "manifest": "JAAAAAFxIe3P5lEh45opVfBNbXhOOwIXkeiNE5PaSvq4n5mpKacpJHMhAltq4c6NJj0hvl47bShHCNZCda5jKSb5Q8UKoHagJKVndkYwRAIgKNsTb54BtOL/nKTuLqFJ2RQTLV1QuVJpBCjmCgiW0csCIC/49bK6J420PF3lLRULAiJctYGAIavqxLSsHDki+KvfcBJAkcOaWwuQ0DpyV/zjBfcdjLYC5YbMy0NKGn+8Iy1gLcXUkYtU40hW78wcJzYPZPSfSP+JBVTVsCXRs8wrdqsWAw==" - }, - { - "validation_public_key": "EDA5AAE0DB134B809F8D664888F7EC4FCE98DC4D00B33301032424941C16C2F0F7", - "manifest": "JAAAAANxIe2lquDbE0uAn41mSIj37E/OmNxNALMzAQMkJJQcFsLw93MhAgbEaxgObrbcqWdV+e73GPAXIShqbsqfKHM9Yzvke3DUdkcwRQIhANcZkOl7HGXO1vp9Zbu0AecBgsfTjVEMn0ADiIxGrsisAiAsyvbeMaiUoaflFDJPVZQjZ0eV3eVGlzjQHhg9vJv4MXASQD+zcPFXd+7umjy/G6BNRDHEUmC5Cq2ypAYbMxTszDB948dj93OoLSNXBUAov2lndDzuyJCXXtXAF0Q8Fj/6sQI=" - }, - { - "validation_public_key": "ED760E58A14E57C91F74C6864E279C0000F3ED2D868BA6812197DF1348D3F7A4D7", - "manifest": "JAAAAAJxIe12DlihTlfJH3TGhk4nnAAA8+0thoumgSGX3xNI0/ek13MhApXxQyFRip+9NdEt7qedWZfLF6vOmBoYR/Xar232RP3rdkcwRQIhAMBhxraztWb7erMijAarunSRk/pJqr/d0Cumg+OYuT3+AiAUxqvumErWO0n+KSY6PA6o9n5nBk5z33E1AQdBlpd7FXASQDK4ooXG4fhGxLB7i9h43dnzUid29+3kD/vTUir3T0cjC2+FLLzZj8A085gC1EBicfLjduvjxhCV1RpM3eJVGQE=" - } - ] + "sequence": 60, + "expiration": 644371200, + "validators": [ + { + "validation_public_key": "ED45E80A04D79CB9DF00AEBD86DCDC1686D6419EA9E5E0E71F1A817E08B5076A55", + "manifest": "JAAAAAFxIe1F6AoE15y53wCuvYbc3BaG1kGeqeXg5x8agX4ItQdqVXMhAxZo157pcB9de6Smk7hoK3wNCAr4aFZtfAPi7CE4mNJldkcwRQIhALlVjXCfiy/mtXBWsNt77t4jKcNEBpRV8zv+SpU5lCh0AiBa8vo8xxpviYlf4zdG+nQhB2OgfkQZZPMHOt7CaXzXgXASQL8O5p083mg4KKL8uZfMaUqdgzuJ0Gta1lyUWPctTPCxY135XwK+nJAdFsIUFNJ9MPjnpCmSjYVzVa6M5/nAcAI=" + }, + { + "validation_public_key": "EDD8C88642795CE69C5B780E01702C370F9507D0B64433F17EFE70F2637A40ADB7", + "manifest": "JAAAAAFxIe3YyIZCeVzmnFt4DgFwLDcPlQfQtkQz8X7+cPJjekCtt3MhAnFfr+r9BXdsXE/cBlJMyd/XsO1A5XEYCctrsvLEX+DmdkcwRQIhANRcRMg9SAXoaOvHDZ2av9RzEaZaVENfQiVgsi+Ox3F0AiB2snSIOm6c4/inbtU0UmWLQTzuwkOdUFPIB8Ax8dmGuHASQMUIfXMj96kcFTSJnMFC/mW/AQ8bKXkFrrk0CUTFFKweEjTq+STrFi6qLL2MT7nveGxsXBCgztjc0qGas9KFWgM=" + }, + { + "validation_public_key": "EDBDEB901F7C75D0E20C6C42AF03BE0DA40377AF1939A18B3CB3679661DD5F9F74", + "manifest": "JAAAAAFxIe2965AffHXQ4gxsQq8Dvg2kA3evGTmhizyzZ5Zh3V+fdHMhAg3cyKNPMPqKgR7kIi7c/8GL/YgdBtg4mSAWvwmaevVGdkYwRAIgWzG8GqYg3YpwDs8xXa9XqLHss76KT2uAHRhUXFVUqCQCIG2EvbFKnxezRd9cpPHSt32HXK+P4+aL3p2+vqlCxRR9cBJAboXTmYTayocA3zf9dWEXtyaeOGC1k5WdYURzPleevvalR4xVoXzs38iGPxFr/pA9nL+M4duu0GKCHlVir+fBAg==" + }, + { + "validation_public_key": "EDA17871E72B0C570AC4345C60CF02AFBBB740A631B7AD0E1E573216574D9AEA02", + "manifest": "JAAAAAFxIe2heHHnKwxXCsQ0XGDPAq+7t0CmMbetDh5XMhZXTZrqAnMhAojyuzgtreQkxQj8prHxOsbDcF5fu4XXb0KxEL/Pq5HhdkcwRQIhANfPDLZP47aCWwt5kBnp75BuuCgp9c4BfJPd66SFCw61AiAJvegBvvPIrec+XOSzKRfi5uuXWxtl9Eyr2aPBYXvbRHASQMULYEo7beRfoUCnjk1sTYyY91tLIGLgnnaWXhUm80+zs5IGegk8qijKAtBOMuBC71lAB4KhJc+dB2rpMOFc5gw=" + }, + { + "validation_public_key": "EDF46EE27AD0E1A714AFECDA816EAB7114614FCB92D0CB4D97B6A88ED43434AFC9", + "manifest": "JAAAAAFxIe30buJ60OGnFK/s2oFuq3EUYU/LktDLTZe2qI7UNDSvyXMhAw0ATWjVTt4FfeKO7kv6fFgd/go2+d5BSyUcURmRWnTtdkcwRQIhAMwOgDec7QYYNngspg90wEvVbsoh2ux14RPTw+GHaXNlAiALgfEsz+AF4eyX/Y5i44VrFjFFIMWUfOZaQJtsxteM1XASQLOaF0t2ZpqVKd8JESQVY+zU567iAAG2amTPZx95875S9A6Pl+kH5TGHMAeWjgWSqfh3m2HBJX7NIcXb98vy9AA=" + }, + { + "validation_public_key": "ED6E4C41E59FFBEB51726E54468502FE6437238FA78EA51634E7BF0D09171AEE8F", + "manifest": "JAAAAAFxIe1uTEHln/vrUXJuVEaFAv5kNyOPp46lFjTnvw0JFxruj3MhAuztGWb/Oi1/V5m5dujWr9HmbKRyK4XYk+kmuFPSgAFrdkYwRAIgfQ+BgXX6QblZy4H05o7GPSIwqS7QQRUW7dqF54IAiiMCIH4XfLw956iEaoxZOk7Kctin2X9hMfaLN7wys9yAUFoZcBJAueEi84XR3Ll1GLJWanW1g1MdUj/0PAxJbw6EEQRuG3zdnuRHNXld6UZAbIkVcP0ztfqulBzjbcsLDOKFEicSBg==" + }, + { + "validation_public_key": "EDB6FC8E803EE8EDC2793F1EC917B2EE41D35255618DEB91D3F9B1FC89B75D4539", + "manifest": "JAAAAAFxIe22/I6APujtwnk/HskXsu5B01JVYY3rkdP5sfyJt11FOXMhA8VdvHFyScByQGTYNGeOvB0+67gWaqefcfvRk5+KwgV1dkYwRAIgZFulO/AiMoczng6i/4BkfzT7j9lxF4PP1ufgrOQaJ8sCIBX/E8Zbpn7tWqgAyNyWpVPkhFmaUMqEry8WoUT1fdGQcBJAv51RqJxgg/VrnrZwiLK2Dc0CKbiLPO5HJ4ZMsjdPT2gRc97rWkAXuV2L6PNFO59xyuoaZmSMlZYvqSGPpfF7Bw==" + }, + { + "validation_public_key": "ED691303992FEC64E6BC4BACD36AE6E5AEDC23F2861B6D8EFB9FD77EE3EADE3435", + "manifest": "JAAAAAFxIe1pEwOZL+xk5rxLrNNq5uWu3CPyhhttjvuf137j6t40NXMhAi2AXJQgo/JuW3r7f/6CcVsGN1YmIj11GiIESHBnQSk8dkcwRQIhANCDEQymrd6veT3ouacF6fhBr5wLw3GmXg1rMCLVvBzZAiA8uWQ+tqd46WmfBexjSBQ2Jd6UAGdrHvjcCQ2ZgSooCnASQFkHl+D7/U3WByYP384+pcFDf2Gi4WIRHVTo58cqdk5CDiwc1T0rDoLhmo41a3f+dsftfwR4aMmwFcPXLnrjrAI=" + }, + { + "validation_public_key": "EDAD16667F0185DDBB7FA65B22F4B7D310BF5C3E2D9B823FB06A3A41AF8AC83BC1", + "manifest": "JAAAAAFxIe2tFmZ/AYXdu3+mWyL0t9MQv1w+LZuCP7BqOkGvisg7wXMhAqweE3PIS3E44KhMqKjKtbkBe8H8GbiuoAXAYDRoVRHodkYwRAIgagGkXtowUybdltKojv0lvvflrlQ9IRnPOjekF60iHzgCICg6ZocIMzkUuvO91BEormIWmX4G/MGT2zro6I/PvB8XcBJAcJLXkt/w/kcwEvNiZmi2i2nMn1wiP3LS9NJjBPju8KFLAMg0O9ydQT67U/ALYOeTPTO2/i2Yw9OSlibtqhgzDA==" + }, + { + "validation_public_key": "EDC245027A52EE5318095598EC3AB65FF4A3B9F9428E10B2F3C6F39DE15A15C90A", + "manifest": "JAAAAAFxIe3CRQJ6Uu5TGAlVmOw6tl/0o7n5Qo4QsvPG853hWhXJCnMhA/8/9rKUdA61j/fIEP/cqLpxBlmIhP2rg1d7NaEPyKV+dkcwRQIhAIxE0M/FJ50vfZW6fPpy4yCZumY9n0obrOojUkjm55a0AiBj56O0MpopGoY9HxC/+4wNO36Ho7E9CQeHsnKreDdsAXASQIYUd81jbiVUlET4dGoG2p+cf+2GqEXX5fJMSSyX/qe0XfR4cO+4qlgmjMQdCRDBWABHVvdN/yZyi/rL2c+WrQc=" + }, + { + "validation_public_key": "ED4246AA3AE9D29863944800CCA91829E4447498A20CD9C3973A6B59346C75AB95", + "manifest": "JAAAAAFxIe1CRqo66dKYY5RIAMypGCnkRHSYogzZw5c6a1k0bHWrlXMhAkm1lz0c8QXWfJ9b1vB72dLabw8wYId8MtnpsHHBEC8pdkYwRAIgQlb6HJ53hsTAfVid+AOdBVvMF7rahIKNLBHUgn52zBECIGLUqFu8a1AAHRJcVonKYEnmhJwbCXLn+je7na1WD1/ocBJAE4vfvrGSmZC2uAUGmM5dIBtoSgEUey+2VleDYEsce94txYcjR8Z7QLNaliD8w/bD5/hvYQ8meV1Wg1jJFNe0CA==" + }, + { + "validation_public_key": "ED2C1468B4A11D281F93EF337C95E4A08DF0000FDEFB6D0EA9BC05FBD5D61A1F5A", + "manifest": "JAAAAAFxIe0sFGi0oR0oH5PvM3yV5KCN8AAP3vttDqm8BfvV1hofWnMhAkMUmCD2aPmgFDDRmimvSicSIScw6YNr42Dw4RAdwrOAdkcwRQIhAJFOHMg6qTG8v60dhrenYYk6cwOaRXq0RNmLjyyCiz5lAiAdU0YkDUJQhnN8Ry8s+6zTJLiNLbtM8oO/cLnurVpRM3ASQGALarHAsJkSZQtGdM2AaR/joFK/jhDU57+l+RSYjri/ydE20DaKanwkMEoVlBTg7lX4hYjEnmkqo73wIthLOAQ=" + }, + { + "validation_public_key": "EDA54C85F91219FD259134B6B126AD64AE7204B81DD4052510657E1A5697246AD2", + "manifest": "JAAAAHlxIe2lTIX5Ehn9JZE0trEmrWSucgS4HdQFJRBlfhpWlyRq0nMhAuAm/kLuTHmcOaDruJBjKjWOp1UtGuO8CICtRp4vo4HGdkcwRQIhAP1SPcKuMlGGDe5rcQAf1x/BmnVtBIG4Hv9US5b/GyZCAiA+03cZu9+EBqSZueF5lAUSPY/HRfL7pqxwn89fS4AFA3ASQJq+QRUP+aXB2iMxZrEajySxGs7CNpucyptWV0bnaq7ilnfUCvMlfszq5mV0rahB89C2zAnf7FjH0Cx0BML29QA=" + }, + { + "validation_public_key": "ED9AE4F5887BA029EB7C0884486D23CF281975F773F44BD213054219882C411CC7", + "manifest": "JAAAAAFxIe2a5PWIe6Ap63wIhEhtI88oGXX3c/RL0hMFQhmILEEcx3MhAmG2zgv8FBZsZJU8aPapwo9cIqQv4/MSS1oVA5eVMiwLdkYwRAIgF+LOe4eY0gp9ttqh2gnv+z75OqLyOQMpGPALgm+NtOsCICDXBZVPtprmBDkBJkPFSnE55D9eKYRH8z/iY1EtpNplcBJAADEWGVT80Owhd1lh2JsU/oZlmeNF5WN7YvlB8llExaRKEVC+GW9Wg+iNIQ3rmV7P8aNaVuaabG00fOgkgzNhDw==" + }, + { + "validation_public_key": "EDA8D29F40CEB28995617641A3BC42692E1DE883214F612FBB62087A148E5F6F9A", + "manifest": "JAAAAAFxIe2o0p9AzrKJlWF2QaO8QmkuHeiDIU9hL7tiCHoUjl9vmnMhAnYnP7Eg6VgNnEUTRE29d64jQT/iBcWTQtNrUzyD6MJ+dkcwRQIhAOEsV5anTkloSmTZRbimMyBKqHoJYXcBBe8lLiPYC7mUAiAz2aNOpfQ/1LycWloIMvdhxzinq5X7Uas/uOSb9wh8d3ASQLVkfpW/GO6wdT6AuuSJ56TtM343pDNH+iSzxltIfdrPiUxT5rf4k21lQQuPClXm9+SfKrCiUXZK7dj0/GWTYQg=" + }, + { + "validation_public_key": "ED38B0288EA240B4CDEC18A1A6289EB49007E4EBC0DE944803EB7EF141C5664073", + "manifest": "JAAAAAFxIe04sCiOokC0zewYoaYonrSQB+TrwN6USAPrfvFBxWZAc3MhAgOKcvIuchalrZw/glTuOxV3IOCcporxMB7JqAVupk1edkcwRQIhAOvRzpe+IYZK1MyInIQZ87JvP2J8SIXCXZMPBCdITBamAiASavJXi9pws8rDDJSxhGMlmE7zI5bSA8ivtRC9Lgq+UXASQDl3eoqLID+ETJNM+zbMuvwvcHEIxeBZkZ9fp5jJv6OCTPwlj4TJSuy1avEWqUYS2riv5Dvl2haFUoCHf4yawAA=" + }, + { + "validation_public_key": "EDEE10DC36ACD995C8E0E86E3CD2FBF8301A4AC2B8847B61A1935DE4973B407C0E", + "manifest": "JAAAAAFxIe3uENw2rNmVyODobjzS+/gwGkrCuIR7YaGTXeSXO0B8DnMhAmX0vb7j+lgBjFjbN9RlA86J7AO2Vn6HLquO3aisK4mwdkYwRAIgfxBLn7i4jg/di0U25q6kIbVfTzqbA0SCpQ0I57TOFkcCIFMtJQpENjB2K2EmvBHPvNcwuSPc3vsEeqE2rNJ/cT5DcBJAf68XPFu5RjCeLgpFJM7PKFLgoV8e1nxO5ewjq9Q+TAEGnFyS0IOwf6pOOtIVMdVeXu1v6p4fhXQkdihHt1x6Ag==" + }, + { + "validation_public_key": "ED583ECD06C3B7369980E65C78C440A529300F557ED81256283F7DD5AA3513A334", + "manifest": "JAAAAAFxIe1YPs0Gw7c2mYDmXHjEQKUpMA9VftgSVig/fdWqNROjNHMhAyuUnzZZ1n2/GaTmE1m7H/v9YlZyDEwHY3gSHUA3ICL9dkYwRAIgHx2PHvidoN+5yG9WeAS2k7nwIM8ajxQW6wjvt8kBenACIDNxQPQkDyDJH9seS5C62mAarQmgiN89YS3jhNtnvEIqcBJAj7Jh0Kac+aJdpoepu/+eJKnnFQ7YByZB8eMZ+SS1zLhE+lip/49qqVNcpAxEqfaGtxJzoDDD1/QbuU7NOSPkCg==" + }, + { + "validation_public_key": "ED95C5172B2AD7D39434EEBC436B65B3BB7E58D5C1CEFC820B6972ACAD776E286A", + "manifest": "JAAAAAFxIe2VxRcrKtfTlDTuvENrZbO7fljVwc78ggtpcqytd24oanMhAiqcRde3MQZ075fa4ZNNyRaYJGMdBNkBnn3bQrKseBDQdkYwRAIgU+LfcE71DPVrO+KtUBjQ9D2u0k/Pr7lukO1nPRj6hSACIDNLYC/JFgobCsIa0BGw+6bUnOw9meU3FdXgR7Q7SoqJcBJAXQakOoQnPp3pcLL7zdKCPUX4b+/FC9Unhqp+O9xQFnRaCWVGmk5MJOIMs4WOQdpM1j3OgSsABmRuCXYvwo/nDw==" + }, + { + "validation_public_key": "ED91EA1E0845DCA1F2E1963BA0D45F30C943DF28F3BFB0A10174365137C7F6E9C4", + "manifest": "JAAAAAFxIe2R6h4IRdyh8uGWO6DUXzDJQ98o87+woQF0NlE3x/bpxHMhAy0y9dGPsh3zyCOznqVlLDQ38u4K2G/6wgvJDMUuQg+sdkYwRAIgNEZc1LDaxyIUxrJDP0euBtNjIQnrZjRPOtlVgGymcD0CIAXHIkub5DVkmoKdOPGYPZPNs7qjCTVG/NgL4IhZCcdpcBJAqnAtvvQcyaUf9aW6AsE2szW6hlqDiJ5SBri9i0BAlUVGQCFugQpp1kZJ8MrReR5lU4N0Wfu3W8whCIJ4zYSpCw==" + }, + { + "validation_public_key": "ED30604DA11EBAB73C4A2830F014D6F84BD4B1C260BB1A4E2F9063C1A7B4384A96", + "manifest": "JAAAAAFxIe0wYE2hHrq3PEooMPAU1vhL1LHCYLsaTi+QY8GntDhKlnMhA7mC0y8JZUmLThVLWXk1G3yoBhvC2DWpkPQ7nSeZZIaVdkcwRQIhAO8aT3z7GFPNyfICuVKO0axMdm63itv9x04DEA9LIBe7AiA61aG/rh/7V9SriNqqTVnJg7jQ/ZoXSfUZNr4XHcGtIHASQOX/AIJXEeeO0zI+ysNcpMIdX7iFuse+ox09SrfFy8KsYb6e3TA+TVUXNu/OZKRv+VZlwO79+d/RH0pzWZBqegM=" + }, + { + "validation_public_key": "ED8252C2F91523126EEF9A21964C7E487A10D6D63D459139700DBC70D9F7BAD542", + "manifest": "JAAAAAFxIe2CUsL5FSMSbu+aIZZMfkh6ENbWPUWROXANvHDZ97rVQnMhA41LoGG44d9TZqT0bakr9dpFCqL+fgXCINmAYCeXf4acdkYwRAIgdMgcVlVPIffb1ITBaWjSJ+Asy7P98GO9WDmiBm42epsCIADSZmxluN/NPn7nwKZ6G3xfeF8lH5ecItPWNrWWOuW4cBJAtstv8IUUMnTZdUzjm8YQDAGqooWCik5ttjYmk46qq2TsWRTIL73Kp9VLHbGrEvNdkn5YLBmdwfTwhWmBriQvAw==" + }, + { + "validation_public_key": "ED63CF929BE85B266A66584B3FE2EB97FC248203F0271DC9C833563E60418E7818", + "manifest": "JAAAAANxIe1jz5Kb6FsmamZYSz/i65f8JIID8CcdycgzVj5gQY54GHMhA46ynkiiAAEUGZgMrCHUD6h1zWEbxiA91M16I54uxnO/dkYwRAIgEUJiZ2yqot1XrVU6M/claeRAK5Tx0BGTtykon8JIJCkCIF70vgQpeXpV0v2eqPT8DOqcp1N2CxgBkDn/ylsqOBilcBJAFQJx4jfZaD11nw02L74IYzVtyaRNKVCr4kdHNoyLdmWL9xWCCTwVhUf8nh2YfIpJcFnFp0jaSPUQr6Gwltq9AA==" + }, + { + "validation_public_key": "ED0AD0609BCC0226962BE6A1F1E3976D4984CEAAD3B928A03DCA28EB7BB7A12377", + "manifest": "JAAAAAFxIe0K0GCbzAImlivmofHjl21JhM6q07kooD3KKOt7t6Ejd3MhA13G4BaLsQc0ZuqMWdl2mIVLSVORKg8EPU338wIDtKpJdkYwRAIgEO5sVMxiiZ02E5PRPhTOXRpDSJdU4WhwWZ1LcAIhDNECICnhUtqDwvlWDN2G1a9CxBWsXDyz/tHdpl++CpmR4bOFcBJA8cKga06ByHoATejVsVEUF7LK1PyOS0DRXoLr5YsNPbF+nq+uxi7yBMbDQU+2PbCERxYncpeZPD2V2m6xD8uCAg==" + }, + { + "validation_public_key": "EDC090980ECAAB37CBE52E880236EC57F732B7DBB7C7BB9A3768D3A6E7184A795E", + "manifest": "JAAAAAFxIe3AkJgOyqs3y+UuiAI27Ff3Mrfbt8e7mjdo06bnGEp5XnMhAhRmvCZmWZXlwShVE9qXs2AVCvhVuA/WGYkTX/vVGBGwdkYwRAIgGnYpIGufURojN2cTXakAM7Vwa0GR7o3osdVlZShroXQCIH9R/Lx1v9rdb4YY2n5nrxdnhSSof3U6V/wIHJmeao5ucBJA9D1iAMo7YFCpb245N3Czc0L1R2Xac0YwQ6XdGT+cZ7yw2n8JbdC3hH8Xu9OUqc867Ee6JmlXtyDHzBdY/hdJCQ==" + }, + { + "validation_public_key": "EDC1897CE83B6DCF58858574EC9FE027D4B1538A0F20823800A5529E121E87A93B", + "manifest": "JAAAAAFxIe3BiXzoO23PWIWFdOyf4CfUsVOKDyCCOAClUp4SHoepO3MhAyzghN7DPPb6DQk+C8jD6VxnAtvrMP3wb4dUWvikOyb6dkcwRQIhANmpvnJnNABmsVVTgZGG9/gJ2gO10+reIvj1RmCN27kuAiBqG5TMjHKdSHDo2kRX/yIc6ZbzMxCeQNg0p/VQYHB70HASQEEWeQ3EJKifr/rFQRGYTATKtK/KmSyR246DAYGDkMwmqZ9MUhjAalWPdSks+q8E8lmxnkElmJ9IRL80efslCAQ=" + }, + { + "validation_public_key": "ED5E82276BCC278499E4285399789F5A93196166B552957997A61599D4F8613959", + "manifest": "JAAAAAFxIe1egidrzCeEmeQoU5l4n1qTGWFmtVKVeZemFZnU+GE5WXMhAw2OjN7E3AfWx4sAN7k+8SdHypV6PKv/LdnCt1OiCf+RdkYwRAIgf5hIqlhCsDXUmJqdrU6CaM+tl34yqRo7QzOYB2JEyo8CIFfMBva7js/PM9yyJo95jxE+VTpWCxXd9o7c7qjyituTcBJA+biCZchkbricoQKMSbtUFRih10Khob4lva+SMz6ldA8c5wXWUnOlqZ7WWyG1y+FaM7CzDAx4iEg3KMQm44nUCQ==" + }, + { + "validation_public_key": "EDF10074F5FBBB975A8EA8E9C42306854E6A49C71B7D33B0293AB1830FECF2C400", + "manifest": "JAAAAAFxIe3xAHT1+7uXWo6o6cQjBoVOaknHG30zsCk6sYMP7PLEAHMhA/50gU8eWLqwVPKzk0Nj5bAc+xJ1mFevzP4eN7GIFs53dkcwRQIhANeYigL33Z1iQ4yq++CaiSy3AHLwE9yuSJ+2z84s9ypJAiBZPg/KKOXZpusZwXhrHvwOzWDSeDJ0W/V1iEQnMhw+vHASQLW0r5r+nG+x+F5b3Y8aAJQhkX1CBOhgFFeuAmCvUO2f6vlEx455hDtJqI8N84a0Kg5Y+gmzpsESNFXEJBH1xwE=" + }, + { + "validation_public_key": "EDFE65FB385B6BB16951153D2A0F32BD6D8CC4532C87BB3E1900913A7BE34F5EF7", + "manifest": "JAAAAAFxIe3+Zfs4W2uxaVEVPSoPMr1tjMRTLIe7PhkAkTp7409e93MhA31gXDB4wVF06XPQM3fScxfWHkoRE5kggC/SEwXCYSHDdkcwRQIhAMSEv7ka1d70zTe3ctwBb9d+hx+wZjveZbcVuphfzRg/AiBOjyeTN0fvbjmur+lV/ovG1A9Zfkn7HmO7nbrFiorLwXASQLAHLgKpleHyaSQv0O4dCI0rSuvPR4Svw9FkMCorVZKG7ywAmKN2hRW8UraUfqm2HpQCq4AASgRoR2/YhBQCEgo=" + }, + { + "validation_public_key": "ED58F6770DB5DD77E59D28CB650EC3816E2FC95021BB56E720C9A12DA79C58A3AB", + "manifest": "JAAAAAFxIe1Y9ncNtd135Z0oy2UOw4FuL8lQIbtW5yDJoS2nnFijq3MhA+QZVFEvfIH4IlclPsVfTcaKgR3XNrXNk97GxtKYBR3jdkcwRQIhAOgnllsWVvhWHfvVOsdXGsQjrRZp2buWISeq6GSYiz7FAiAcCO8OmHivZjwAl+dN1J/9FJ+cElxcpr/M+CaHkUBt6HASQDTO+yf+h1naBQgQmY32ajTvpPLsp4gQUxaYlTl0vdkeXHyAntECezgoxWBlo9IrEzBFzWOfXFTx4bwTrEMuBAk=" + }, + { + "validation_public_key": "ED5784A43AA84B5BDAFD0AFEF64ADA5583A3129182C6A7464950FD6BF2D9FAE5B0", + "manifest": "JAAAAAFxIe1XhKQ6qEtb2v0K/vZK2lWDoxKRgsanRklQ/Wvy2frlsHMhArdbSEl/Oha4I5VI0qVxmc1zBWoRb5YnutciOC0l+OYddkcwRQIhAIqluIgtzGJZJG9s7t2558ipnGfgXOZxOBN+VXey4iSmAiAWJzzanXjXImMB/VtHHrqs1V4xnlg8uF+y7Ms+1vMGZnASQCZYnNR3aSlwdYpRkP5v1V9a5BesJUZD6UJ1nMr5b5VoOml+DjVtDUZysrCIx00a+gLz+th86gTey7UnCrqgQgk=" + }, + { + "validation_public_key": "ED75940EC09130F9C553D8AF0FE354A112CC27251472AF1A90917597489192135F", + "manifest": "JAAAAAFxIe11lA7AkTD5xVPYrw/jVKESzCclFHKvGpCRdZdIkZITX3MhAozHf//RpGgNExPNP8S2HDLH5NQErqjPSZy99Kn8G31mdkcwRQIhAKJW0DjI1xeTYBlDE9qY9t32suLV3hsQo0SW4cvGm0DcAiA7AKg7SSHAVnJnG7HkJU6jxTj9qPRg6/o6lAxyWFRsenASQPP5nJBFTluxZ1CJ+MlHAQXOn4HjReHkNfD0JF2EFkKXRcd/1HrnE9uGPt31EWWhPU1+s6tsbIx7wy9mq5XcHQ0=" + }, + { + "validation_public_key": "EDF4CC5AB784DC569D9BBD46982B1CF80A79BB4C0AD1CA1270F1D8B5EA4A5B950B", + "manifest": "JAAAAAFxIe30zFq3hNxWnZu9RpgrHPgKebtMCtHKEnDx2LXqSluVC3MhAoH3kciMcuyYxaV7xox0PG/DKuzF1T7u/RmUtGkBf0UNdkcwRQIhALnQ0rBlGS/PrNNVKjkhyJnQqzelRztgA4kC0xewQhXoAiBYvLfFq14UNYVy8ffGec0VRcTm7ZZR1qx+jDo4CFPyyHASQDW7A9Nulxybe/IK5QhXBp71uGi7FQ2RCww/WvK4kVidmxlTh+MjHIOid8VxNmATmDfpgXMi8R8ZC6TSVEA3ygI=" + }, + { + "validation_public_key": "EDCFE65121E39A2955F04D6D784E3B021791E88D1393DA4AFAB89F99A929A72924", + "manifest": "JAAAAAFxIe3P5lEh45opVfBNbXhOOwIXkeiNE5PaSvq4n5mpKacpJHMhAltq4c6NJj0hvl47bShHCNZCda5jKSb5Q8UKoHagJKVndkYwRAIgKNsTb54BtOL/nKTuLqFJ2RQTLV1QuVJpBCjmCgiW0csCIC/49bK6J420PF3lLRULAiJctYGAIavqxLSsHDki+KvfcBJAkcOaWwuQ0DpyV/zjBfcdjLYC5YbMy0NKGn+8Iy1gLcXUkYtU40hW78wcJzYPZPSfSP+JBVTVsCXRs8wrdqsWAw==" + }, + { + "validation_public_key": "EDA5AAE0DB134B809F8D664888F7EC4FCE98DC4D00B33301032424941C16C2F0F7", + "manifest": "JAAAAANxIe2lquDbE0uAn41mSIj37E/OmNxNALMzAQMkJJQcFsLw93MhAgbEaxgObrbcqWdV+e73GPAXIShqbsqfKHM9Yzvke3DUdkcwRQIhANcZkOl7HGXO1vp9Zbu0AecBgsfTjVEMn0ADiIxGrsisAiAsyvbeMaiUoaflFDJPVZQjZ0eV3eVGlzjQHhg9vJv4MXASQD+zcPFXd+7umjy/G6BNRDHEUmC5Cq2ypAYbMxTszDB948dj93OoLSNXBUAov2lndDzuyJCXXtXAF0Q8Fj/6sQI=" + }, + { + "validation_public_key": "ED760E58A14E57C91F74C6864E279C0000F3ED2D868BA6812197DF1348D3F7A4D7", + "manifest": "JAAAAAJxIe12DlihTlfJH3TGhk4nnAAA8+0thoumgSGX3xNI0/ek13MhApXxQyFRip+9NdEt7qedWZfLF6vOmBoYR/Xar232RP3rdkcwRQIhAMBhxraztWb7erMijAarunSRk/pJqr/d0Cumg+OYuT3+AiAUxqvumErWO0n+KSY6PA6o9n5nBk5z33E1AQdBlpd7FXASQDK4ooXG4fhGxLB7i9h43dnzUid29+3kD/vTUir3T0cjC2+FLLzZj8A085gC1EBicfLjduvjxhCV1RpM3eJVGQE=" + } + ] } diff --git a/_api-examples/vl/vl.json b/_api-examples/vl/vl.json index 00033459a5..831868eeaf 100644 --- a/_api-examples/vl/vl.json +++ b/_api-examples/vl/vl.json @@ -1,7 +1,7 @@ { - "blob" : "eyJzZXF1ZW5jZSI6NjAsImV4cGlyYXRpb24iOjY0NDM3MTIwMCwidmFsaWRhdG9ycyI6W3sidmFsaWRhdGlvbl9wdWJsaWNfa2V5IjoiRUQ0NUU4MEEwNEQ3OUNCOURGMDBBRUJEODZEQ0RDMTY4NkQ2NDE5RUE5RTVFMEU3MUYxQTgxN0UwOEI1MDc2QTU1IiwibWFuaWZlc3QiOiJKQUFBQUFGeEllMUY2QW9FMTV5NTN3Q3V2WWJjM0JhRzFrR2VxZVhnNXg4YWdYNEl0UWRxVlhNaEF4Wm8xNTdwY0I5ZGU2U21rN2hvSzN3TkNBcjRhRlp0ZkFQaTdDRTRtTkpsZGtjd1JRSWhBTGxWalhDZml5L210WEJXc050Nzd0NGpLY05FQnBSVjh6ditTcFU1bENoMEFpQmE4dm84eHhwdmlZbGY0emRHK25RaEIyT2dma1FaWlBNSE90N0NhWHpYZ1hBU1FMOE81cDA4M21nNEtLTDh1WmZNYVVxZGd6dUowR3RhMWx5VVdQY3RUUEN4WTEzNVh3SytuSkFkRnNJVUZOSjlNUGpucENtU2pZVnpWYTZNNS9uQWNBST0ifSx7InZhbGlkYXRpb25fcHVibGljX2tleSI6IkVERDhDODg2NDI3OTVDRTY5QzVCNzgwRTAxNzAyQzM3MEY5NTA3RDBCNjQ0MzNGMTdFRkU3MEYyNjM3QTQwQURCNyIsIm1hbmlmZXN0IjoiSkFBQUFBRnhJZTNZeUlaQ2VWem1uRnQ0RGdGd0xEY1BsUWZRdGtRejhYNytjUEpqZWtDdHQzTWhBbkZmcityOUJYZHNYRS9jQmxKTXlkL1hzTzFBNVhFWUNjdHJzdkxFWCtEbWRrY3dSUUloQU5SY1JNZzlTQVhvYU92SERaMmF2OVJ6RWFaYVZFTmZRaVZnc2krT3gzRjBBaUIyc25TSU9tNmM0L2luYnRVMFVtV0xRVHp1d2tPZFVGUElCOEF4OGRtR3VIQVNRTVVJZlhNajk2a2NGVFNKbk1GQy9tVy9BUThiS1hrRnJyazBDVVRGRkt3ZUVqVHErU1RyRmk2cUxMMk1UN252ZUd4c1hCQ2d6dGpjMHFHYXM5S0ZXZ009In0seyJ2YWxpZGF0aW9uX3B1YmxpY19rZXkiOiJFREJERUI5MDFGN0M3NUQwRTIwQzZDNDJBRjAzQkUwREE0MDM3N0FGMTkzOUExOEIzQ0IzNjc5NjYxREQ1RjlGNzQiLCJtYW5pZmVzdCI6IkpBQUFBQUZ4SWUyOTY1QWZmSFhRNGd4c1FxOER2ZzJrQTNldkdUbWhpenl6WjVaaDNWK2ZkSE1oQWczY3lLTlBNUHFLZ1I3a0lpN2MvOEdML1lnZEJ0ZzRtU0FXdndtYWV2Vkdka1l3UkFJZ1d6RzhHcVlnM1lwd0RzOHhYYTlYcUxIc3M3NktUMnVBSFJoVVhGVlVxQ1FDSUcyRXZiRktueGV6UmQ5Y3BQSFN0MzJIWEsrUDQrYUwzcDIrdnFsQ3hSUjljQkpBYm9YVG1ZVGF5b2NBM3pmOWRXRVh0eWFlT0dDMWs1V2RZVVJ6UGxlZXZ2YWxSNHhWb1h6czM4aUdQeEZyL3BBOW5MK000ZHV1MEdLQ0hsVmlyK2ZCQWc9PSJ9LHsidmFsaWRhdGlvbl9wdWJsaWNfa2V5IjoiRURBMTc4NzFFNzJCMEM1NzBBQzQzNDVDNjBDRjAyQUZCQkI3NDBBNjMxQjdBRDBFMUU1NzMyMTY1NzREOUFFQTAyIiwibWFuaWZlc3QiOiJKQUFBQUFGeEllMmhlSEhuS3d4WENzUTBYR0RQQXErN3QwQ21NYmV0RGg1WE1oWlhUWnJxQW5NaEFvanl1emd0cmVRa3hRajhwckh4T3NiRGNGNWZ1NFhYYjBLeEVML1BxNUhoZGtjd1JRSWhBTmZQRExaUDQ3YUNXd3Q1a0JucDc1QnV1Q2dwOWM0QmZKUGQ2NlNGQ3c2MUFpQUp2ZWdCdnZQSXJlYytYT1N6S1JmaTV1dVhXeHRsOUV5cjJhUEJZWHZiUkhBU1FNVUxZRW83YmVSZm9VQ25qazFzVFl5WTkxdExJR0xnbm5hV1hoVW04MCt6czVJR2VnazhxaWpLQXRCT011QkM3MWxBQjRLaEpjK2RCMnJwTU9GYzVndz0ifSx7InZhbGlkYXRpb25fcHVibGljX2tleSI6IkVERjQ2RUUyN0FEMEUxQTcxNEFGRUNEQTgxNkVBQjcxMTQ2MTRGQ0I5MkQwQ0I0RDk3QjZBODhFRDQzNDM0QUZDOSIsIm1hbmlmZXN0IjoiSkFBQUFBRnhJZTMwYnVKNjBPR25GSy9zMm9GdXEzRVVZVS9Ma3RETFRaZTJxSTdVTkRTdnlYTWhBdzBBVFdqVlR0NEZmZUtPN2t2NmZGZ2QvZ28yK2Q1QlN5VWNVUm1SV25UdGRrY3dSUUloQU13T2dEZWM3UVlZTm5nc3BnOTB3RXZWYnNvaDJ1eDE0UlBUdytHSGFYTmxBaUFMZ2ZFc3orQUY0ZXlYL1k1aTQ0VnJGakZGSU1XVWZPWmFRSnRzeHRlTTFYQVNRTE9hRjB0MlpwcVZLZDhKRVNRVlkrelU1NjdpQUFHMmFtVFBaeDk1ODc1UzlBNlBsK2tINVRHSE1BZVdqZ1dTcWZoM20ySEJKWDdOSWNYYjk4dnk5QUE9In0seyJ2YWxpZGF0aW9uX3B1YmxpY19rZXkiOiJFRDZFNEM0MUU1OUZGQkVCNTE3MjZFNTQ0Njg1MDJGRTY0MzcyMzhGQTc4RUE1MTYzNEU3QkYwRDA5MTcxQUVFOEYiLCJtYW5pZmVzdCI6IkpBQUFBQUZ4SWUxdVRFSGxuL3ZyVVhKdVZFYUZBdjVrTnlPUHA0NmxGalRudncwSkZ4cnVqM01oQXV6dEdXYi9PaTEvVjVtNWR1aldyOUhtYktSeUs0WFlrK2ttdUZQU2dBRnJka1l3UkFJZ2ZRK0JnWFg2UWJsWnk0SDA1bzdHUFNJd3FTN1FRUlVXN2RxRjU0SUFpaU1DSUg0WGZMdzk1NmlFYW94Wk9rN0tjdGluMlg5aE1mYUxON3d5czl5QVVGb1pjQkpBdWVFaTg0WFIzTGwxR0xKV2FuVzFnMU1kVWovMFBBeEpidzZFRVFSdUczemRudVJITlhsZDZVWkFiSWtWY1AwenRmcXVsQnpqYmNzTERPS0ZFaWNTQmc9PSJ9LHsidmFsaWRhdGlvbl9wdWJsaWNfa2V5IjoiRURCNkZDOEU4MDNFRThFREMyNzkzRjFFQzkxN0IyRUU0MUQzNTI1NTYxOERFQjkxRDNGOUIxRkM4OUI3NUQ0NTM5IiwibWFuaWZlc3QiOiJKQUFBQUFGeEllMjIvSTZBUHVqdHduay9Ic2tYc3U1QjAxSlZZWTNya2RQNXNmeUp0MTFGT1hNaEE4VmR2SEZ5U2NCeVFHVFlOR2VPdkIwKzY3Z1dhcWVmY2Z2Ums1K0t3Z1YxZGtZd1JBSWdaRnVsTy9BaU1vY3puZzZpLzRCa2Z6VDdqOWx4RjRQUDF1ZmdyT1FhSjhzQ0lCWC9FOFpicG43dFdxZ0F5TnlXcFZQa2hGbWFVTXFFcnk4V29VVDFmZEdRY0JKQXY1MVJxSnhnZy9Wcm5yWndpTEsyRGMwQ0tiaUxQTzVISjRaTXNqZFBUMmdSYzk3cldrQVh1VjJMNlBORk81OXh5dW9hWm1TTWxaWXZxU0dQcGZGN0J3PT0ifSx7InZhbGlkYXRpb25fcHVibGljX2tleSI6IkVENjkxMzAzOTkyRkVDNjRFNkJDNEJBQ0QzNkFFNkU1QUVEQzIzRjI4NjFCNkQ4RUZCOUZENzdFRTNFQURFMzQzNSIsIm1hbmlmZXN0IjoiSkFBQUFBRnhJZTFwRXdPWkwreGs1cnhMck5OcTV1V3UzQ1B5aGh0dGp2dWYxMzdqNnQ0ME5YTWhBaTJBWEpRZ28vSnVXM3I3Zi82Q2NWc0dOMVltSWoxMUdpSUVTSEJuUVNrOGRrY3dSUUloQU5DREVReW1yZDZ2ZVQzb3VhY0Y2ZmhCcjV3THczR21YZzFyTUNMVnZCelpBaUE4dVdRK3RxZDQ2V21mQmV4alNCUTJKZDZVQUdkckh2amNDUTJaZ1Nvb0NuQVNRRmtIbCtENy9VM1dCeVlQMzg0K3BjRkRmMkdpNFdJUkhWVG81OGNxZGs1Q0Rpd2MxVDByRG9MaG1vNDFhM2YrZHNmdGZ3UjRhTW13RmNQWExucmpyQUk9In0seyJ2YWxpZGF0aW9uX3B1YmxpY19rZXkiOiJFREFEMTY2NjdGMDE4NUREQkI3RkE2NUIyMkY0QjdEMzEwQkY1QzNFMkQ5QjgyM0ZCMDZBM0E0MUFGOEFDODNCQzEiLCJtYW5pZmVzdCI6IkpBQUFBQUZ4SWUydEZtWi9BWVhkdTMrbVd5TDB0OU1RdjF3K0xadUNQN0JxT2tHdmlzZzd3WE1oQXF3ZUUzUElTM0U0NEtoTXFLakt0YmtCZThIOEdiaXVvQVhBWURSb1ZSSG9ka1l3UkFJZ2FnR2tYdG93VXliZGx0S29qdjBsdnZmbHJsUTlJUm5QT2pla0Y2MGlIemdDSUNnNlpvY0lNemtVdXZPOTFCRW9ybUlXbVg0Ry9NR1QyenJvNkkvUHZCOFhjQkpBY0pMWGt0L3cva2N3RXZOaVptaTJpMm5NbjF3aVAzTFM5TkpqQlBqdThLRkxBTWcwTzl5ZFFUNjdVL0FMWU9lVFBUTzIvaTJZdzlPU2xpYnRxaGd6REE9PSJ9LHsidmFsaWRhdGlvbl9wdWJsaWNfa2V5IjoiRURDMjQ1MDI3QTUyRUU1MzE4MDk1NTk4RUMzQUI2NUZGNEEzQjlGOTQyOEUxMEIyRjNDNkYzOURFMTVBMTVDOTBBIiwibWFuaWZlc3QiOiJKQUFBQUFGeEllM0NSUUo2VXU1VEdBbFZtT3c2dGwvMG83bjVRbzRRc3ZQRzg1M2hXaFhKQ25NaEEvOC85cktVZEE2MWovZklFUC9jcUxweEJsbUloUDJyZzFkN05hRVB5S1YrZGtjd1JRSWhBSXhFME0vRko1MHZmWlc2ZlBweTR5Q1p1bVk5bjBvYnJPb2pVa2ptNTVhMEFpQmo1Nk8wTXBvcEdvWTlIeEMvKzR3Tk8zNkhvN0U5Q1FlSHNuS3JlRGRzQVhBU1FJWVVkODFqYmlWVWxFVDRkR29HMnArY2YrMkdxRVhYNWZKTVNTeVgvcWUwWGZSNGNPKzRxbGdtak1RZENSREJXQUJIVnZkTi95WnlpL3JMMmMrV3JRYz0ifSx7InZhbGlkYXRpb25fcHVibGljX2tleSI6IkVENDI0NkFBM0FFOUQyOTg2Mzk0NDgwMENDQTkxODI5RTQ0NDc0OThBMjBDRDlDMzk3M0E2QjU5MzQ2Qzc1QUI5NSIsIm1hbmlmZXN0IjoiSkFBQUFBRnhJZTFDUnFvNjZkS1lZNVJJQU15cEdDbmtSSFNZb2d6Wnc1YzZhMWswYkhXcmxYTWhBa20xbHowYzhRWFdmSjliMXZCNzJkTGFidzh3WUlkOE10bnBzSEhCRUM4cGRrWXdSQUlnUWxiNkhKNTNoc1RBZlZpZCtBT2RCVnZNRjdyYWhJS05MQkhVZ241MnpCRUNJR0xVcUZ1OGExQUFIUkpjVm9uS1lFbm1oSndiQ1hMbitqZTduYTFXRDEvb2NCSkFFNHZmdnJHU21aQzJ1QVVHbU01ZElCdG9TZ0VVZXkrMlZsZURZRXNjZTk0dHhZY2pSOFo3UUxOYWxpRDh3L2JENS9odllROG1lVjFXZzFqSkZOZTBDQT09In0seyJ2YWxpZGF0aW9uX3B1YmxpY19rZXkiOiJFRDJDMTQ2OEI0QTExRDI4MUY5M0VGMzM3Qzk1RTRBMDhERjAwMDBGREVGQjZEMEVBOUJDMDVGQkQ1RDYxQTFGNUEiLCJtYW5pZmVzdCI6IkpBQUFBQUZ4SWUwc0ZHaTBvUjBvSDVQdk0zeVY1S0NOOEFBUDN2dHREcW04QmZ2VjFob2ZXbk1oQWtNVW1DRDJhUG1nRkREUm1pbXZTaWNTSVNjdzZZTnI0MkR3NFJBZHdyT0Fka2N3UlFJaEFKRk9ITWc2cVRHOHY2MGRocmVuWVlrNmN3T2FSWHEwUk5tTGp5eUNpejVsQWlBZFUwWWtEVUpRaG5OOFJ5OHMrNnpUSkxpTkxidE04b08vY0xudXJWcFJNM0FTUUdBTGFySEFzSmtTWlF0R2RNMkFhUi9qb0ZLL2poRFU1NytsK1JTWWpyaS95ZEUyMERhS2Fud2tNRW9WbEJUZzdsWDRoWWpFbm1rcW83M3dJdGhMT0FRPSJ9LHsidmFsaWRhdGlvbl9wdWJsaWNfa2V5IjoiRURBNTRDODVGOTEyMTlGRDI1OTEzNEI2QjEyNkFENjRBRTcyMDRCODFERDQwNTI1MTA2NTdFMUE1Njk3MjQ2QUQyIiwibWFuaWZlc3QiOiJKQUFBQUhseEllMmxUSVg1RWhuOUpaRTB0ckVtcldTdWNnUzRIZFFGSlJCbGZocFdseVJxMG5NaEF1QW0va0x1VEhtY09hRHJ1SkJqS2pXT3AxVXRHdU84Q0lDdFJwNHZvNEhHZGtjd1JRSWhBUDFTUGNLdU1sR0dEZTVyY1FBZjF4L0JtblZ0QklHNEh2OVVTNWIvR3laQ0FpQSswM2NadTkrRUJxU1p1ZUY1bEFVU1BZL0hSZkw3cHF4d244OWZTNEFGQTNBU1FKcStRUlVQK2FYQjJpTXhackVhanlTeEdzN0NOcHVjeXB0V1YwYm5hcTdpbG5mVUN2TWxmc3pxNW1WMHJhaEI4OUMyekFuZjdGakgwQ3gwQk1MMjlRQT0ifSx7InZhbGlkYXRpb25fcHVibGljX2tleSI6IkVEOUFFNEY1ODg3QkEwMjlFQjdDMDg4NDQ4NkQyM0NGMjgxOTc1Rjc3M0Y0NEJEMjEzMDU0MjE5ODgyQzQxMUNDNyIsIm1hbmlmZXN0IjoiSkFBQUFBRnhJZTJhNVBXSWU2QXA2M3dJaEVodEk4OG9HWFgzYy9STDBoTUZRaG1JTEVFY3gzTWhBbUcyemd2OEZCWnNaSlU4YVBhcHdvOWNJcVF2NC9NU1Mxb1ZBNWVWTWl3TGRrWXdSQUlnRitMT2U0ZVkwZ3A5dHRxaDJnbnYrejc1T3FMeU9RTXBHUEFMZ20rTnRPc0NJQ0RYQlpWUHRwcm1CRGtCSmtQRlNuRTU1RDllS1lSSDh6L2lZMUV0cE5wbGNCSkFBREVXR1ZUODBPd2hkMWxoMkpzVS9vWmxtZU5GNVdON1l2bEI4bGxFeGFSS0VWQytHVzlXZytpTklRM3JtVjdQOGFOYVZ1YWFiRzAwZk9na2d6TmhEdz09In0seyJ2YWxpZGF0aW9uX3B1YmxpY19rZXkiOiJFREE4RDI5RjQwQ0VCMjg5OTU2MTc2NDFBM0JDNDI2OTJFMURFODgzMjE0RjYxMkZCQjYyMDg3QTE0OEU1RjZGOUEiLCJtYW5pZmVzdCI6IkpBQUFBQUZ4SWUybzBwOUF6cktKbFdGMlFhTzhRbWt1SGVpRElVOWhMN3RpQ0hvVWpsOXZtbk1oQW5ZblA3RWc2VmdObkVVVFJFMjlkNjRqUVQvaUJjV1RRdE5yVXp5RDZNSitka2N3UlFJaEFPRXNWNWFuVGtsb1NtVFpSYmltTXlCS3FIb0pZWGNCQmU4bExpUFlDN21VQWlBejJhTk9wZlEvMUx5Y1dsb0lNdmRoeHppbnE1WDdVYXMvdU9TYjl3aDhkM0FTUUxWa2ZwVy9HTzZ3ZFQ2QXV1U0o1NlR0TTM0M3BETkgraVN6eGx0SWZkclBpVXhUNXJmNGsyMWxRUXVQQ2xYbTkrU2ZLckNpVVhaSzdkajAvR1dUWVFnPSJ9LHsidmFsaWRhdGlvbl9wdWJsaWNfa2V5IjoiRUQzOEIwMjg4RUEyNDBCNENERUMxOEExQTYyODlFQjQ5MDA3RTRFQkMwREU5NDQ4MDNFQjdFRjE0MUM1NjY0MDczIiwibWFuaWZlc3QiOiJKQUFBQUFGeEllMDRzQ2lPb2tDMHpld1lvYVlvbnJTUUIrVHJ3TjZVU0FQcmZ2RkJ4V1pBYzNNaEFnT0tjdkl1Y2hhbHJady9nbFR1T3hWM0lPQ2Nwb3J4TUI3SnFBVnVwazFlZGtjd1JRSWhBT3ZSenBlK0lZWksxTXlJbklRWjg3SnZQMko4U0lYQ1haTVBCQ2RJVEJhbUFpQVNhdkpYaTlwd3M4ckRESlN4aEdNbG1FN3pJNWJTQThpdnRSQzlMZ3ErVVhBU1FEbDNlb3FMSUQrRVRKTk0remJNdXZ3dmNIRUl4ZUJaa1o5ZnA1akp2Nk9DVFB3bGo0VEpTdXkxYXZFV3FVWVMycml2NUR2bDJoYUZVb0NIZjR5YXdBQT0ifSx7InZhbGlkYXRpb25fcHVibGljX2tleSI6IkVERUUxMERDMzZBQ0Q5OTVDOEUwRTg2RTNDRDJGQkY4MzAxQTRBQzJCODg0N0I2MUExOTM1REU0OTczQjQwN0MwRSIsIm1hbmlmZXN0IjoiSkFBQUFBRnhJZTN1RU53MnJObVZ5T0RvYmp6UysvZ3dHa3JDdUlSN1lhR1RYZVNYTzBCOERuTWhBbVgwdmI3aitsZ0JqRmpiTjlSbEE4Nko3QU8yVm42SExxdU8zYWlzSzRtd2RrWXdSQUlnZnhCTG43aTRqZy9kaTBVMjVxNmtJYlZmVHpxYkEwU0NwUTBJNTdUT0ZrY0NJRk10SlFwRU5qQjJLMkVtdkJIUHZOY3d1U1BjM3ZzRWVxRTJyTkovY1Q1RGNCSkFmNjhYUEZ1NVJqQ2VMZ3BGSk03UEtGTGdvVjhlMW54TzVld2pxOVErVEFFR25GeVMwSU93ZjZwT090SVZNZFZlWHUxdjZwNGZoWFFrZGloSHQxeDZBZz09In0seyJ2YWxpZGF0aW9uX3B1YmxpY19rZXkiOiJFRDU4M0VDRDA2QzNCNzM2OTk4MEU2NUM3OEM0NDBBNTI5MzAwRjU1N0VEODEyNTYyODNGN0RENUFBMzUxM0EzMzQiLCJtYW5pZmVzdCI6IkpBQUFBQUZ4SWUxWVBzMEd3N2MybVlEbVhIakVRS1VwTUE5VmZ0Z1NWaWcvZmRXcU5ST2pOSE1oQXl1VW56WloxbjIvR2FUbUUxbTdIL3Y5WWxaeURFd0hZM2dTSFVBM0lDTDlka1l3UkFJZ0h4MlBIdmlkb04rNXlHOVdlQVMyazdud0lNOGFqeFFXNndqdnQ4a0JlbkFDSUROeFFQUWtEeURKSDlzZVM1QzYybUFhclFtZ2lOODlZUzNqaE50bnZFSXFjQkpBajdKaDBLYWMrYUpkcG9lcHUvK2VKS25uRlE3WUJ5WkI4ZU1aK1NTMXpMaEUrbGlwLzQ5cXFWTmNwQXhFcWZhR3R4SnpvREREMS9RYnVVN05PU1BrQ2c9PSJ9LHsidmFsaWRhdGlvbl9wdWJsaWNfa2V5IjoiRUQ5NUM1MTcyQjJBRDdEMzk0MzRFRUJDNDM2QjY1QjNCQjdFNThENUMxQ0VGQzgyMEI2OTcyQUNBRDc3NkUyODZBIiwibWFuaWZlc3QiOiJKQUFBQUFGeEllMlZ4UmNyS3RmVGxEVHV2RU5yWmJPN2ZsalZ3Yzc4Z2d0cGNxeXRkMjRvYW5NaEFpcWNSZGUzTVFaMDc1ZmE0Wk5OeVJhWUpHTWRCTmtCbm4zYlFyS3NlQkRRZGtZd1JBSWdVK0xmY0U3MURQVnJPK0t0VUJqUTlEMnUway9QcjdsdWtPMW5QUmo2aFNBQ0lETkxZQy9KRmdvYkNzSWEwQkd3KzZiVW5PdzltZVUzRmRYZ1I3UTdTb3FKY0JKQVhRYWtPb1FuUHAzcGNMTDd6ZEtDUFVYNGIrL0ZDOVVuaHFwK085eFFGblJhQ1dWR21rNU1KT0lNczRXT1FkcE0xajNPZ1NzQUJtUnVDWFl2d28vbkR3PT0ifSx7InZhbGlkYXRpb25fcHVibGljX2tleSI6IkVEOTFFQTFFMDg0NURDQTFGMkUxOTYzQkEwRDQ1RjMwQzk0M0RGMjhGM0JGQjBBMTAxNzQzNjUxMzdDN0Y2RTlDNCIsIm1hbmlmZXN0IjoiSkFBQUFBRnhJZTJSNmg0SVJkeWg4dUdXTzZEVVh6REpROThvODcrd29RRjBObEUzeC9icHhITWhBeTB5OWRHUHNoM3p5Q096bnFWbExEUTM4dTRLMkcvNndndkpETVV1UWcrc2RrWXdSQUlnTkVaYzFMRGF4eUlVeHJKRFAwZXVCdE5qSVFuclpqUlBPdGxWZ0d5bWNEMENJQVhISWt1YjVEVmttb0tkT1BHWVBaUE5zN3FqQ1RWRy9OZ0w0SWhaQ2NkcGNCSkFxbkF0dnZRY3lhVWY5YVc2QXNFMnN6VzZobHFEaUo1U0JyaTlpMEJBbFVWR1FDRnVnUXBwMWtaSjhNclJlUjVsVTROMFdmdTNXOHdoQ0lKNHpZU3BDdz09In0seyJ2YWxpZGF0aW9uX3B1YmxpY19rZXkiOiJFRDMwNjA0REExMUVCQUI3M0M0QTI4MzBGMDE0RDZGODRCRDRCMUMyNjBCQjFBNEUyRjkwNjNDMUE3QjQzODRBOTYiLCJtYW5pZmVzdCI6IkpBQUFBQUZ4SWUwd1lFMmhIcnEzUEVvb01QQVUxdmhMMUxIQ1lMc2FUaStRWThHbnREaEtsbk1oQTdtQzB5OEpaVW1MVGhWTFdYazFHM3lvQmh2QzJEV3BrUFE3blNlWlpJYVZka2N3UlFJaEFPOGFUM3o3R0ZQTnlmSUN1VktPMGF4TWRtNjNpdHY5eDA0REVBOUxJQmU3QWlBNjFhRy9yaC83VjlTcmlOcXFUVm5KZzdqUS9ab1hTZlVaTnI0WEhjR3RJSEFTUU9YL0FJSlhFZWVPMHpJK3lzTmNwTUlkWDdpRnVzZStveDA5U3JmRnk4S3NZYjZlM1RBK1RWVVhOdS9PWktSditWWmx3Tzc5K2QvUkgwcHpXWkJxZWdNPSJ9LHsidmFsaWRhdGlvbl9wdWJsaWNfa2V5IjoiRUQ4MjUyQzJGOTE1MjMxMjZFRUY5QTIxOTY0QzdFNDg3QTEwRDZENjNENDU5MTM5NzAwREJDNzBEOUY3QkFENTQyIiwibWFuaWZlc3QiOiJKQUFBQUFGeEllMkNVc0w1RlNNU2J1K2FJWlpNZmtoNkVOYldQVVdST1hBTnZIRFo5N3JWUW5NaEE0MUxvR0c0NGQ5VFpxVDBiYWtyOWRwRkNxTCtmZ1hDSU5tQVlDZVhmNGFjZGtZd1JBSWdkTWdjVmxWUElmZmIxSVRCYVdqU0orQXN5N1A5OEdPOVdEbWlCbTQyZXBzQ0lBRFNabXhsdU4vTlBuN253S1o2RzN4ZmVGOGxINWVjSXRQV05yV1dPdVc0Y0JKQXRzdHY4SVVVTW5UWmRVemptOFlRREFHcW9vV0NpazV0dGpZbWs0NnFxMlRzV1JUSUw3M0twOVZMSGJHckV2TmRrbjVZTEJtZHdmVHdoV21CcmlRdkF3PT0ifSx7InZhbGlkYXRpb25fcHVibGljX2tleSI6IkVENjNDRjkyOUJFODVCMjY2QTY2NTg0QjNGRTJFQjk3RkMyNDgyMDNGMDI3MURDOUM4MzM1NjNFNjA0MThFNzgxOCIsIm1hbmlmZXN0IjoiSkFBQUFBTnhJZTFqejVLYjZGc21hbVpZU3ovaTY1ZjhKSUlEOENjZHljZ3pWajVnUVk1NEdITWhBNDZ5bmtpaUFBRVVHWmdNckNIVUQ2aDF6V0VieGlBOTFNMTZJNTR1eG5PL2RrWXdSQUlnRVVKaVoyeXFvdDFYclZVNk0vY2xhZVJBSzVUeDBCR1R0eWtvbjhKSUpDa0NJRjcwdmdRcGVYcFYwdjJlcVBUOERPcWNwMU4yQ3hnQmtEbi95bHNxT0JpbGNCSkFGUUp4NGpmWmFEMTFudzAyTDc0SVl6VnR5YVJOS1ZDcjRrZEhOb3lMZG1XTDl4V0NDVHdWaFVmOG5oMllmSXBKY0ZuRnAwamFTUFVRcjZHd2x0cTlBQT09In0seyJ2YWxpZGF0aW9uX3B1YmxpY19rZXkiOiJFRDBBRDA2MDlCQ0MwMjI2OTYyQkU2QTFGMUUzOTc2RDQ5ODRDRUFBRDNCOTI4QTAzRENBMjhFQjdCQjdBMTIzNzciLCJtYW5pZmVzdCI6IkpBQUFBQUZ4SWUwSzBHQ2J6QUltbGl2bW9mSGpsMjFKaE02cTA3a29vRDNLS090N3Q2RWpkM01oQTEzRzRCYUxzUWMwWnVxTVdkbDJtSVZMU1ZPUktnOEVQVTMzOHdJRHRLcEpka1l3UkFJZ0VPNXNWTXhpaVowMkU1UFJQaFRPWFJwRFNKZFU0V2h3V1oxTGNBSWhETkVDSUNuaFV0cUR3dmxXRE4yRzFhOUN4QldzWER5ei90SGRwbCsrQ3BtUjRiT0ZjQkpBOGNLZ2EwNkJ5SG9BVGVqVnNWRVVGN0xLMVB5T1MwRFJYb0xyNVlzTlBiRitucSt1eGk3eUJNYkRRVSsyUGJDRVJ4WW5jcGVaUEQyVjJtNnhEOHVDQWc9PSJ9LHsidmFsaWRhdGlvbl9wdWJsaWNfa2V5IjoiRURDMDkwOTgwRUNBQUIzN0NCRTUyRTg4MDIzNkVDNTdGNzMyQjdEQkI3QzdCQjlBMzc2OEQzQTZFNzE4NEE3OTVFIiwibWFuaWZlc3QiOiJKQUFBQUFGeEllM0FrSmdPeXFzM3krVXVpQUkyN0ZmM01yZmJ0OGU3bWpkbzA2Ym5HRXA1WG5NaEFoUm12Q1ptV1pYbHdTaFZFOXFYczJBVkN2aFZ1QS9XR1lrVFgvdlZHQkd3ZGtZd1JBSWdHbllwSUd1ZlVSb2pOMmNUWGFrQU03VndhMEdSN28zb3NkVmxaU2hyb1hRQ0lIOVIvTHgxdjlyZGI0WVkybjVucnhkbmhTU29mM1U2Vi93SUhKbWVhbzV1Y0JKQTlEMWlBTW83WUZDcGIyNDVOM0N6YzBMMVIyWGFjMFl3UTZYZEdUK2NaN3l3Mm44SmJkQzNoSDhYdTlPVXFjODY3RWU2Sm1sWHR5REh6QmRZL2hkSkNRPT0ifSx7InZhbGlkYXRpb25fcHVibGljX2tleSI6IkVEQzE4OTdDRTgzQjZEQ0Y1ODg1ODU3NEVDOUZFMDI3RDRCMTUzOEEwRjIwODIzODAwQTU1MjlFMTIxRTg3QTkzQiIsIm1hbmlmZXN0IjoiSkFBQUFBRnhJZTNCaVh6b08yM1BXSVdGZE95ZjRDZlVzVk9LRHlDQ09BQ2xVcDRTSG9lcE8zTWhBeXpnaE43RFBQYjZEUWsrQzhqRDZWeG5BdHZyTVAzd2I0ZFVXdmlrT3liNmRrY3dSUUloQU5tcHZuSm5OQUJtc1ZWVGdaR0c5L2dKMmdPMTArcmVJdmoxUm1DTjI3a3VBaUJxRzVUTWpIS2RTSERvMmtSWC95SWM2WmJ6TXhDZVFOZzBwL1ZRWUhCNzBIQVNRRUVXZVEzRUpLaWZyL3JGUVJHWVRBVEt0Sy9LbVN5UjI0NkRBWUdEa013bXFaOU1VaGpBYWxXUGRTa3MrcThFOGxteG5rRWxtSjlJUkw4MGVmc2xDQVE9In0seyJ2YWxpZGF0aW9uX3B1YmxpY19rZXkiOiJFRDVFODIyNzZCQ0MyNzg0OTlFNDI4NTM5OTc4OUY1QTkzMTk2MTY2QjU1Mjk1Nzk5N0E2MTU5OUQ0Rjg2MTM5NTkiLCJtYW5pZmVzdCI6IkpBQUFBQUZ4SWUxZWdpZHJ6Q2VFbWVRb1U1bDRuMXFUR1dGbXRWS1ZlWmVtRlpuVStHRTVXWE1oQXcyT2pON0UzQWZXeDRzQU43ays4U2RIeXBWNlBLdi9MZG5DdDFPaUNmK1Jka1l3UkFJZ2Y1aElxbGhDc0RYVW1KcWRyVTZDYU0rdGwzNHlxUm83UXpPWUIySkV5bzhDSUZmTUJ2YTdqcy9QTTl5eUpvOTVqeEUrVlRwV0N4WGQ5bzdjN3FqeWl0dVRjQkpBK2JpQ1pjaGticmljb1FLTVNidFVGUmloMTBLaG9iNGx2YStTTXo2bGRBOGM1d1hXVW5PbHFaN1dXeUcxeStGYU03Q3pEQXg0aUVnM0tNUW00NG5VQ1E9PSJ9LHsidmFsaWRhdGlvbl9wdWJsaWNfa2V5IjoiRURGMTAwNzRGNUZCQkI5NzVBOEVBOEU5QzQyMzA2ODU0RTZBNDlDNzFCN0QzM0IwMjkzQUIxODMwRkVDRjJDNDAwIiwibWFuaWZlc3QiOiJKQUFBQUFGeEllM3hBSFQxKzd1WFdvNm82Y1FqQm9WT2FrbkhHMzB6c0NrNnNZTVA3UExFQUhNaEEvNTBnVThlV0xxd1ZQS3prME5qNWJBYyt4SjFtRmV2elA0ZU43R0lGczUzZGtjd1JRSWhBTmVZaWdMMzNaMWlRNHlxKytDYWlTeTNBSEx3RTl5dVNKKzJ6ODRzOXlwSkFpQlpQZy9LS09YWnB1c1p3WGhySHZ3T3pXRFNlREowVy9WMWlFUW5NaHcrdkhBU1FMVzByNXIrbkcreCtGNWIzWThhQUpRaGtYMUNCT2hnRkZldUFtQ3ZVTzJmNnZsRXg0NTVoRHRKcUk4Tjg0YTBLZzVZK2dtenBzRVNORlhFSkJIMXh3RT0ifSx7InZhbGlkYXRpb25fcHVibGljX2tleSI6IkVERkU2NUZCMzg1QjZCQjE2OTUxMTUzRDJBMEYzMkJENkQ4Q0M0NTMyQzg3QkIzRTE5MDA5MTNBN0JFMzRGNUVGNyIsIm1hbmlmZXN0IjoiSkFBQUFBRnhJZTMrWmZzNFcydXhhVkVWUFNvUE1yMXRqTVJUTEllN1Boa0FrVHA3NDA5ZTkzTWhBMzFnWERCNHdWRjA2WFBRTTNmU2N4ZldIa29SRTVrZ2dDL1NFd1hDWVNIRGRrY3dSUUloQU1TRXY3a2ExZDcwelRlM2N0d0JiOWQraHgrd1pqdmVaYmNWdXBoZnpSZy9BaUJPanllVE4wZnZiam11citsVi9vdkcxQTlaZmtuN0htTzduYnJGaW9yTHdYQVNRTEFITGdLcGxlSHlhU1F2ME80ZENJMHJTdXZQUjRTdnc5RmtNQ29yVlpLRzd5d0FtS04yaFJXOFVyYVVmcW0ySHBRQ3E0QUFTZ1JvUjIvWWhCUUNFZ289In0seyJ2YWxpZGF0aW9uX3B1YmxpY19rZXkiOiJFRDU4RjY3NzBEQjVERDc3RTU5RDI4Q0I2NTBFQzM4MTZFMkZDOTUwMjFCQjU2RTcyMEM5QTEyREE3OUM1OEEzQUIiLCJtYW5pZmVzdCI6IkpBQUFBQUZ4SWUxWTluY050ZDEzNVowb3kyVU93NEZ1TDhsUUlidFc1eURKb1Mybm5GaWpxM01oQStRWlZGRXZmSUg0SWxjbFBzVmZUY2FLZ1IzWE5yWE5rOTdHeHRLWUJSM2pka2N3UlFJaEFPZ25sbHNXVnZoV0hmdlZPc2RYR3NRanJSWnAyYnVXSVNlcTZHU1lpejdGQWlBY0NPOE9tSGl2Wmp3QWwrZE4xSi85RkorY0VseGNwci9NK0NhSGtVQnQ2SEFTUURUTyt5ZitoMW5hQlFnUW1ZMzJhalR2cFBMc3A0Z1FVeGFZbFRsMHZka2VYSHlBbnRFQ2V6Z294V0JsbzlJckV6QkZ6V09mWEZUeDRid1RyRU11QkFrPSJ9LHsidmFsaWRhdGlvbl9wdWJsaWNfa2V5IjoiRUQ1Nzg0QTQzQUE4NEI1QkRBRkQwQUZFRjY0QURBNTU4M0EzMTI5MTgyQzZBNzQ2NDk1MEZENkJGMkQ5RkFFNUIwIiwibWFuaWZlc3QiOiJKQUFBQUFGeEllMVhoS1E2cUV0YjJ2MEsvdlpLMmxXRG94S1Jnc2FuUmtsUS9XdnkyZnJsc0hNaEFyZGJTRWwvT2hhNEk1VkkwcVZ4bWMxekJXb1JiNVludXRjaU9DMGwrT1lkZGtjd1JRSWhBSXFsdUlndHpHSlpKRzlzN3QyNTU4aXBuR2ZnWE9aeE9CTitWWGV5NGlTbUFpQVdKenphblhqWEltTUIvVnRISHJxczFWNHhubGc4dUYreTdNcysxdk1HWm5BU1FDWlluTlIzYVNsd2RZcFJrUDV2MVY5YTVCZXNKVVpENlVKMW5NcjViNVZvT21sK0RqVnREVVp5c3JDSXgwMGErZ0x6K3RoODZnVGV5N1VuQ3JxZ1Fnaz0ifSx7InZhbGlkYXRpb25fcHVibGljX2tleSI6IkVENzU5NDBFQzA5MTMwRjlDNTUzRDhBRjBGRTM1NEExMTJDQzI3MjUxNDcyQUYxQTkwOTE3NTk3NDg5MTkyMTM1RiIsIm1hbmlmZXN0IjoiSkFBQUFBRnhJZTExbEE3QWtURDV4VlBZcncvalZLRVN6Q2NsRkhLdkdwQ1JkWmRJa1pJVFgzTWhBb3pIZi8vUnBHZ05FeFBOUDhTMkhETEg1TlFFcnFqUFNaeTk5S244RzMxbWRrY3dSUUloQUtKVzBEakkxeGVUWUJsREU5cVk5dDMyc3VMVjNoc1FvMFNXNGN2R20wRGNBaUE3QUtnN1NTSEFWbkpuRzdIa0pVNmp4VGo5cVBSZzYvbzZsQXh5V0ZSc2VuQVNRUFA1bkpCRlRsdXhaMUNKK01sSEFRWE9uNEhqUmVIa05mRDBKRjJFRmtLWFJjZC8xSHJuRTl1R1B0MzFFV1doUFUxK3M2dHNiSXg3d3k5bXE1WGNIUTA9In0seyJ2YWxpZGF0aW9uX3B1YmxpY19rZXkiOiJFREY0Q0M1QUI3ODREQzU2OUQ5QkJENDY5ODJCMUNGODBBNzlCQjRDMEFEMUNBMTI3MEYxRDhCNUVBNEE1Qjk1MEIiLCJtYW5pZmVzdCI6IkpBQUFBQUZ4SWUzMHpGcTNoTnhXblp1OVJwZ3JIUGdLZWJ0TUN0SEtFbkR4MkxYcVNsdVZDM01oQW9IM2tjaU1jdXlZeGFWN3hveDBQRy9ES3V6RjFUN3UvUm1VdEdrQmYwVU5ka2N3UlFJaEFMblEwckJsR1MvUHJOTlZLamtoeUpuUXF6ZWxSenRnQTRrQzB4ZXdRaFhvQWlCWXZMZkZxMTRVTllWeThmZkdlYzBWUmNUbTdaWlIxcXgrakRvNENGUHl5SEFTUURXN0E5TnVseHliZS9JSzVRaFhCcDcxdUdpN0ZRMlJDd3cvV3ZLNGtWaWRteGxUaCtNakhJT2lkOFZ4Tm1BVG1EZnBnWE1pOFI4WkM2VFNWRUEzeWdJPSJ9LHsidmFsaWRhdGlvbl9wdWJsaWNfa2V5IjoiRURDRkU2NTEyMUUzOUEyOTU1RjA0RDZENzg0RTNCMDIxNzkxRTg4RDEzOTNEQTRBRkFCODlGOTlBOTI5QTcyOTI0IiwibWFuaWZlc3QiOiJKQUFBQUFGeEllM1A1bEVoNDVvcFZmQk5iWGhPT3dJWGtlaU5FNVBhU3ZxNG41bXBLYWNwSkhNaEFsdHE0YzZOSmowaHZsNDdiU2hIQ05aQ2RhNWpLU2I1UThVS29IYWdKS1ZuZGtZd1JBSWdLTnNUYjU0QnRPTC9uS1R1THFGSjJSUVRMVjFRdVZKcEJDam1DZ2lXMGNzQ0lDLzQ5Yks2SjQyMFBGM2xMUlVMQWlKY3RZR0FJYXZxeExTc0hEa2krS3ZmY0JKQWtjT2FXd3VRMERweVYvempCZmNkakxZQzVZYk15ME5LR24rOEl5MWdMY1hVa1l0VTQwaFc3OHdjSnpZUFpQU2ZTUCtKQlZUVnNDWFJzOHdyZHFzV0F3PT0ifSx7InZhbGlkYXRpb25fcHVibGljX2tleSI6IkVEQTVBQUUwREIxMzRCODA5RjhENjY0ODg4RjdFQzRGQ0U5OERDNEQwMEIzMzMwMTAzMjQyNDk0MUMxNkMyRjBGNyIsIm1hbmlmZXN0IjoiSkFBQUFBTnhJZTJscXVEYkUwdUFuNDFtU0lqMzdFL09tTnhOQUxNekFRTWtKSlFjRnNMdzkzTWhBZ2JFYXhnT2JyYmNxV2RWK2U3M0dQQVhJU2hxYnNxZktITTlZenZrZTNEVWRrY3dSUUloQU5jWmtPbDdIR1hPMXZwOVpidTBBZWNCZ3NmVGpWRU1uMEFEaUl4R3JzaXNBaUFzeXZiZU1haVVvYWZsRkRKUFZaUWpaMGVWM2VWR2x6alFIaGc5dkp2NE1YQVNRRCt6Y1BGWGQrN3VtankvRzZCTlJESEVVbUM1Q3EyeXBBWWJNeFRzekRCOTQ4ZGo5M09vTFNOWEJVQW92MmxuZER6dXlKQ1hYdFhBRjBROEZqLzZzUUk9In0seyJ2YWxpZGF0aW9uX3B1YmxpY19rZXkiOiJFRDc2MEU1OEExNEU1N0M5MUY3NEM2ODY0RTI3OUMwMDAwRjNFRDJEODY4QkE2ODEyMTk3REYxMzQ4RDNGN0E0RDciLCJtYW5pZmVzdCI6IkpBQUFBQUp4SWUxMkRsaWhUbGZKSDNUR2hrNG5uQUFBOCswdGhvdW1nU0dYM3hOSTAvZWsxM01oQXBYeFF5RlJpcCs5TmRFdDdxZWRXWmZMRjZ2T21Cb1lSL1hhcjIzMlJQM3Jka2N3UlFJaEFNQmh4cmF6dFdiN2VyTWlqQWFydW5TUmsvcEpxci9kMEN1bWcrT1l1VDMrQWlBVXhxdnVtRXJXTzBuK0tTWTZQQTZvOW41bkJrNXozM0UxQVFkQmxwZDdGWEFTUURLNG9vWEc0ZmhHeExCN2k5aDQzZG56VWlkMjkrM2tEL3ZUVWlyM1QwY2pDMitGTEx6Wmo4QTA4NWdDMUVCaWNmTGpkdXZqeGhDVjFScE0zZUpWR1FFPSJ9XX0=", + "blob": "eyJzZXF1ZW5jZSI6NjAsImV4cGlyYXRpb24iOjY0NDM3MTIwMCwidmFsaWRhdG9ycyI6W3sidmFsaWRhdGlvbl9wdWJsaWNfa2V5IjoiRUQ0NUU4MEEwNEQ3OUNCOURGMDBBRUJEODZEQ0RDMTY4NkQ2NDE5RUE5RTVFMEU3MUYxQTgxN0UwOEI1MDc2QTU1IiwibWFuaWZlc3QiOiJKQUFBQUFGeEllMUY2QW9FMTV5NTN3Q3V2WWJjM0JhRzFrR2VxZVhnNXg4YWdYNEl0UWRxVlhNaEF4Wm8xNTdwY0I5ZGU2U21rN2hvSzN3TkNBcjRhRlp0ZkFQaTdDRTRtTkpsZGtjd1JRSWhBTGxWalhDZml5L210WEJXc050Nzd0NGpLY05FQnBSVjh6ditTcFU1bENoMEFpQmE4dm84eHhwdmlZbGY0emRHK25RaEIyT2dma1FaWlBNSE90N0NhWHpYZ1hBU1FMOE81cDA4M21nNEtLTDh1WmZNYVVxZGd6dUowR3RhMWx5VVdQY3RUUEN4WTEzNVh3SytuSkFkRnNJVUZOSjlNUGpucENtU2pZVnpWYTZNNS9uQWNBST0ifSx7InZhbGlkYXRpb25fcHVibGljX2tleSI6IkVERDhDODg2NDI3OTVDRTY5QzVCNzgwRTAxNzAyQzM3MEY5NTA3RDBCNjQ0MzNGMTdFRkU3MEYyNjM3QTQwQURCNyIsIm1hbmlmZXN0IjoiSkFBQUFBRnhJZTNZeUlaQ2VWem1uRnQ0RGdGd0xEY1BsUWZRdGtRejhYNytjUEpqZWtDdHQzTWhBbkZmcityOUJYZHNYRS9jQmxKTXlkL1hzTzFBNVhFWUNjdHJzdkxFWCtEbWRrY3dSUUloQU5SY1JNZzlTQVhvYU92SERaMmF2OVJ6RWFaYVZFTmZRaVZnc2krT3gzRjBBaUIyc25TSU9tNmM0L2luYnRVMFVtV0xRVHp1d2tPZFVGUElCOEF4OGRtR3VIQVNRTVVJZlhNajk2a2NGVFNKbk1GQy9tVy9BUThiS1hrRnJyazBDVVRGRkt3ZUVqVHErU1RyRmk2cUxMMk1UN252ZUd4c1hCQ2d6dGpjMHFHYXM5S0ZXZ009In0seyJ2YWxpZGF0aW9uX3B1YmxpY19rZXkiOiJFREJERUI5MDFGN0M3NUQwRTIwQzZDNDJBRjAzQkUwREE0MDM3N0FGMTkzOUExOEIzQ0IzNjc5NjYxREQ1RjlGNzQiLCJtYW5pZmVzdCI6IkpBQUFBQUZ4SWUyOTY1QWZmSFhRNGd4c1FxOER2ZzJrQTNldkdUbWhpenl6WjVaaDNWK2ZkSE1oQWczY3lLTlBNUHFLZ1I3a0lpN2MvOEdML1lnZEJ0ZzRtU0FXdndtYWV2Vkdka1l3UkFJZ1d6RzhHcVlnM1lwd0RzOHhYYTlYcUxIc3M3NktUMnVBSFJoVVhGVlVxQ1FDSUcyRXZiRktueGV6UmQ5Y3BQSFN0MzJIWEsrUDQrYUwzcDIrdnFsQ3hSUjljQkpBYm9YVG1ZVGF5b2NBM3pmOWRXRVh0eWFlT0dDMWs1V2RZVVJ6UGxlZXZ2YWxSNHhWb1h6czM4aUdQeEZyL3BBOW5MK000ZHV1MEdLQ0hsVmlyK2ZCQWc9PSJ9LHsidmFsaWRhdGlvbl9wdWJsaWNfa2V5IjoiRURBMTc4NzFFNzJCMEM1NzBBQzQzNDVDNjBDRjAyQUZCQkI3NDBBNjMxQjdBRDBFMUU1NzMyMTY1NzREOUFFQTAyIiwibWFuaWZlc3QiOiJKQUFBQUFGeEllMmhlSEhuS3d4WENzUTBYR0RQQXErN3QwQ21NYmV0RGg1WE1oWlhUWnJxQW5NaEFvanl1emd0cmVRa3hRajhwckh4T3NiRGNGNWZ1NFhYYjBLeEVML1BxNUhoZGtjd1JRSWhBTmZQRExaUDQ3YUNXd3Q1a0JucDc1QnV1Q2dwOWM0QmZKUGQ2NlNGQ3c2MUFpQUp2ZWdCdnZQSXJlYytYT1N6S1JmaTV1dVhXeHRsOUV5cjJhUEJZWHZiUkhBU1FNVUxZRW83YmVSZm9VQ25qazFzVFl5WTkxdExJR0xnbm5hV1hoVW04MCt6czVJR2VnazhxaWpLQXRCT011QkM3MWxBQjRLaEpjK2RCMnJwTU9GYzVndz0ifSx7InZhbGlkYXRpb25fcHVibGljX2tleSI6IkVERjQ2RUUyN0FEMEUxQTcxNEFGRUNEQTgxNkVBQjcxMTQ2MTRGQ0I5MkQwQ0I0RDk3QjZBODhFRDQzNDM0QUZDOSIsIm1hbmlmZXN0IjoiSkFBQUFBRnhJZTMwYnVKNjBPR25GSy9zMm9GdXEzRVVZVS9Ma3RETFRaZTJxSTdVTkRTdnlYTWhBdzBBVFdqVlR0NEZmZUtPN2t2NmZGZ2QvZ28yK2Q1QlN5VWNVUm1SV25UdGRrY3dSUUloQU13T2dEZWM3UVlZTm5nc3BnOTB3RXZWYnNvaDJ1eDE0UlBUdytHSGFYTmxBaUFMZ2ZFc3orQUY0ZXlYL1k1aTQ0VnJGakZGSU1XVWZPWmFRSnRzeHRlTTFYQVNRTE9hRjB0MlpwcVZLZDhKRVNRVlkrelU1NjdpQUFHMmFtVFBaeDk1ODc1UzlBNlBsK2tINVRHSE1BZVdqZ1dTcWZoM20ySEJKWDdOSWNYYjk4dnk5QUE9In0seyJ2YWxpZGF0aW9uX3B1YmxpY19rZXkiOiJFRDZFNEM0MUU1OUZGQkVCNTE3MjZFNTQ0Njg1MDJGRTY0MzcyMzhGQTc4RUE1MTYzNEU3QkYwRDA5MTcxQUVFOEYiLCJtYW5pZmVzdCI6IkpBQUFBQUZ4SWUxdVRFSGxuL3ZyVVhKdVZFYUZBdjVrTnlPUHA0NmxGalRudncwSkZ4cnVqM01oQXV6dEdXYi9PaTEvVjVtNWR1aldyOUhtYktSeUs0WFlrK2ttdUZQU2dBRnJka1l3UkFJZ2ZRK0JnWFg2UWJsWnk0SDA1bzdHUFNJd3FTN1FRUlVXN2RxRjU0SUFpaU1DSUg0WGZMdzk1NmlFYW94Wk9rN0tjdGluMlg5aE1mYUxON3d5czl5QVVGb1pjQkpBdWVFaTg0WFIzTGwxR0xKV2FuVzFnMU1kVWovMFBBeEpidzZFRVFSdUczemRudVJITlhsZDZVWkFiSWtWY1AwenRmcXVsQnpqYmNzTERPS0ZFaWNTQmc9PSJ9LHsidmFsaWRhdGlvbl9wdWJsaWNfa2V5IjoiRURCNkZDOEU4MDNFRThFREMyNzkzRjFFQzkxN0IyRUU0MUQzNTI1NTYxOERFQjkxRDNGOUIxRkM4OUI3NUQ0NTM5IiwibWFuaWZlc3QiOiJKQUFBQUFGeEllMjIvSTZBUHVqdHduay9Ic2tYc3U1QjAxSlZZWTNya2RQNXNmeUp0MTFGT1hNaEE4VmR2SEZ5U2NCeVFHVFlOR2VPdkIwKzY3Z1dhcWVmY2Z2Ums1K0t3Z1YxZGtZd1JBSWdaRnVsTy9BaU1vY3puZzZpLzRCa2Z6VDdqOWx4RjRQUDF1ZmdyT1FhSjhzQ0lCWC9FOFpicG43dFdxZ0F5TnlXcFZQa2hGbWFVTXFFcnk4V29VVDFmZEdRY0JKQXY1MVJxSnhnZy9Wcm5yWndpTEsyRGMwQ0tiaUxQTzVISjRaTXNqZFBUMmdSYzk3cldrQVh1VjJMNlBORk81OXh5dW9hWm1TTWxaWXZxU0dQcGZGN0J3PT0ifSx7InZhbGlkYXRpb25fcHVibGljX2tleSI6IkVENjkxMzAzOTkyRkVDNjRFNkJDNEJBQ0QzNkFFNkU1QUVEQzIzRjI4NjFCNkQ4RUZCOUZENzdFRTNFQURFMzQzNSIsIm1hbmlmZXN0IjoiSkFBQUFBRnhJZTFwRXdPWkwreGs1cnhMck5OcTV1V3UzQ1B5aGh0dGp2dWYxMzdqNnQ0ME5YTWhBaTJBWEpRZ28vSnVXM3I3Zi82Q2NWc0dOMVltSWoxMUdpSUVTSEJuUVNrOGRrY3dSUUloQU5DREVReW1yZDZ2ZVQzb3VhY0Y2ZmhCcjV3THczR21YZzFyTUNMVnZCelpBaUE4dVdRK3RxZDQ2V21mQmV4alNCUTJKZDZVQUdkckh2amNDUTJaZ1Nvb0NuQVNRRmtIbCtENy9VM1dCeVlQMzg0K3BjRkRmMkdpNFdJUkhWVG81OGNxZGs1Q0Rpd2MxVDByRG9MaG1vNDFhM2YrZHNmdGZ3UjRhTW13RmNQWExucmpyQUk9In0seyJ2YWxpZGF0aW9uX3B1YmxpY19rZXkiOiJFREFEMTY2NjdGMDE4NUREQkI3RkE2NUIyMkY0QjdEMzEwQkY1QzNFMkQ5QjgyM0ZCMDZBM0E0MUFGOEFDODNCQzEiLCJtYW5pZmVzdCI6IkpBQUFBQUZ4SWUydEZtWi9BWVhkdTMrbVd5TDB0OU1RdjF3K0xadUNQN0JxT2tHdmlzZzd3WE1oQXF3ZUUzUElTM0U0NEtoTXFLakt0YmtCZThIOEdiaXVvQVhBWURSb1ZSSG9ka1l3UkFJZ2FnR2tYdG93VXliZGx0S29qdjBsdnZmbHJsUTlJUm5QT2pla0Y2MGlIemdDSUNnNlpvY0lNemtVdXZPOTFCRW9ybUlXbVg0Ry9NR1QyenJvNkkvUHZCOFhjQkpBY0pMWGt0L3cva2N3RXZOaVptaTJpMm5NbjF3aVAzTFM5TkpqQlBqdThLRkxBTWcwTzl5ZFFUNjdVL0FMWU9lVFBUTzIvaTJZdzlPU2xpYnRxaGd6REE9PSJ9LHsidmFsaWRhdGlvbl9wdWJsaWNfa2V5IjoiRURDMjQ1MDI3QTUyRUU1MzE4MDk1NTk4RUMzQUI2NUZGNEEzQjlGOTQyOEUxMEIyRjNDNkYzOURFMTVBMTVDOTBBIiwibWFuaWZlc3QiOiJKQUFBQUFGeEllM0NSUUo2VXU1VEdBbFZtT3c2dGwvMG83bjVRbzRRc3ZQRzg1M2hXaFhKQ25NaEEvOC85cktVZEE2MWovZklFUC9jcUxweEJsbUloUDJyZzFkN05hRVB5S1YrZGtjd1JRSWhBSXhFME0vRko1MHZmWlc2ZlBweTR5Q1p1bVk5bjBvYnJPb2pVa2ptNTVhMEFpQmo1Nk8wTXBvcEdvWTlIeEMvKzR3Tk8zNkhvN0U5Q1FlSHNuS3JlRGRzQVhBU1FJWVVkODFqYmlWVWxFVDRkR29HMnArY2YrMkdxRVhYNWZKTVNTeVgvcWUwWGZSNGNPKzRxbGdtak1RZENSREJXQUJIVnZkTi95WnlpL3JMMmMrV3JRYz0ifSx7InZhbGlkYXRpb25fcHVibGljX2tleSI6IkVENDI0NkFBM0FFOUQyOTg2Mzk0NDgwMENDQTkxODI5RTQ0NDc0OThBMjBDRDlDMzk3M0E2QjU5MzQ2Qzc1QUI5NSIsIm1hbmlmZXN0IjoiSkFBQUFBRnhJZTFDUnFvNjZkS1lZNVJJQU15cEdDbmtSSFNZb2d6Wnc1YzZhMWswYkhXcmxYTWhBa20xbHowYzhRWFdmSjliMXZCNzJkTGFidzh3WUlkOE10bnBzSEhCRUM4cGRrWXdSQUlnUWxiNkhKNTNoc1RBZlZpZCtBT2RCVnZNRjdyYWhJS05MQkhVZ241MnpCRUNJR0xVcUZ1OGExQUFIUkpjVm9uS1lFbm1oSndiQ1hMbitqZTduYTFXRDEvb2NCSkFFNHZmdnJHU21aQzJ1QVVHbU01ZElCdG9TZ0VVZXkrMlZsZURZRXNjZTk0dHhZY2pSOFo3UUxOYWxpRDh3L2JENS9odllROG1lVjFXZzFqSkZOZTBDQT09In0seyJ2YWxpZGF0aW9uX3B1YmxpY19rZXkiOiJFRDJDMTQ2OEI0QTExRDI4MUY5M0VGMzM3Qzk1RTRBMDhERjAwMDBGREVGQjZEMEVBOUJDMDVGQkQ1RDYxQTFGNUEiLCJtYW5pZmVzdCI6IkpBQUFBQUZ4SWUwc0ZHaTBvUjBvSDVQdk0zeVY1S0NOOEFBUDN2dHREcW04QmZ2VjFob2ZXbk1oQWtNVW1DRDJhUG1nRkREUm1pbXZTaWNTSVNjdzZZTnI0MkR3NFJBZHdyT0Fka2N3UlFJaEFKRk9ITWc2cVRHOHY2MGRocmVuWVlrNmN3T2FSWHEwUk5tTGp5eUNpejVsQWlBZFUwWWtEVUpRaG5OOFJ5OHMrNnpUSkxpTkxidE04b08vY0xudXJWcFJNM0FTUUdBTGFySEFzSmtTWlF0R2RNMkFhUi9qb0ZLL2poRFU1NytsK1JTWWpyaS95ZEUyMERhS2Fud2tNRW9WbEJUZzdsWDRoWWpFbm1rcW83M3dJdGhMT0FRPSJ9LHsidmFsaWRhdGlvbl9wdWJsaWNfa2V5IjoiRURBNTRDODVGOTEyMTlGRDI1OTEzNEI2QjEyNkFENjRBRTcyMDRCODFERDQwNTI1MTA2NTdFMUE1Njk3MjQ2QUQyIiwibWFuaWZlc3QiOiJKQUFBQUhseEllMmxUSVg1RWhuOUpaRTB0ckVtcldTdWNnUzRIZFFGSlJCbGZocFdseVJxMG5NaEF1QW0va0x1VEhtY09hRHJ1SkJqS2pXT3AxVXRHdU84Q0lDdFJwNHZvNEhHZGtjd1JRSWhBUDFTUGNLdU1sR0dEZTVyY1FBZjF4L0JtblZ0QklHNEh2OVVTNWIvR3laQ0FpQSswM2NadTkrRUJxU1p1ZUY1bEFVU1BZL0hSZkw3cHF4d244OWZTNEFGQTNBU1FKcStRUlVQK2FYQjJpTXhackVhanlTeEdzN0NOcHVjeXB0V1YwYm5hcTdpbG5mVUN2TWxmc3pxNW1WMHJhaEI4OUMyekFuZjdGakgwQ3gwQk1MMjlRQT0ifSx7InZhbGlkYXRpb25fcHVibGljX2tleSI6IkVEOUFFNEY1ODg3QkEwMjlFQjdDMDg4NDQ4NkQyM0NGMjgxOTc1Rjc3M0Y0NEJEMjEzMDU0MjE5ODgyQzQxMUNDNyIsIm1hbmlmZXN0IjoiSkFBQUFBRnhJZTJhNVBXSWU2QXA2M3dJaEVodEk4OG9HWFgzYy9STDBoTUZRaG1JTEVFY3gzTWhBbUcyemd2OEZCWnNaSlU4YVBhcHdvOWNJcVF2NC9NU1Mxb1ZBNWVWTWl3TGRrWXdSQUlnRitMT2U0ZVkwZ3A5dHRxaDJnbnYrejc1T3FMeU9RTXBHUEFMZ20rTnRPc0NJQ0RYQlpWUHRwcm1CRGtCSmtQRlNuRTU1RDllS1lSSDh6L2lZMUV0cE5wbGNCSkFBREVXR1ZUODBPd2hkMWxoMkpzVS9vWmxtZU5GNVdON1l2bEI4bGxFeGFSS0VWQytHVzlXZytpTklRM3JtVjdQOGFOYVZ1YWFiRzAwZk9na2d6TmhEdz09In0seyJ2YWxpZGF0aW9uX3B1YmxpY19rZXkiOiJFREE4RDI5RjQwQ0VCMjg5OTU2MTc2NDFBM0JDNDI2OTJFMURFODgzMjE0RjYxMkZCQjYyMDg3QTE0OEU1RjZGOUEiLCJtYW5pZmVzdCI6IkpBQUFBQUZ4SWUybzBwOUF6cktKbFdGMlFhTzhRbWt1SGVpRElVOWhMN3RpQ0hvVWpsOXZtbk1oQW5ZblA3RWc2VmdObkVVVFJFMjlkNjRqUVQvaUJjV1RRdE5yVXp5RDZNSitka2N3UlFJaEFPRXNWNWFuVGtsb1NtVFpSYmltTXlCS3FIb0pZWGNCQmU4bExpUFlDN21VQWlBejJhTk9wZlEvMUx5Y1dsb0lNdmRoeHppbnE1WDdVYXMvdU9TYjl3aDhkM0FTUUxWa2ZwVy9HTzZ3ZFQ2QXV1U0o1NlR0TTM0M3BETkgraVN6eGx0SWZkclBpVXhUNXJmNGsyMWxRUXVQQ2xYbTkrU2ZLckNpVVhaSzdkajAvR1dUWVFnPSJ9LHsidmFsaWRhdGlvbl9wdWJsaWNfa2V5IjoiRUQzOEIwMjg4RUEyNDBCNENERUMxOEExQTYyODlFQjQ5MDA3RTRFQkMwREU5NDQ4MDNFQjdFRjE0MUM1NjY0MDczIiwibWFuaWZlc3QiOiJKQUFBQUFGeEllMDRzQ2lPb2tDMHpld1lvYVlvbnJTUUIrVHJ3TjZVU0FQcmZ2RkJ4V1pBYzNNaEFnT0tjdkl1Y2hhbHJady9nbFR1T3hWM0lPQ2Nwb3J4TUI3SnFBVnVwazFlZGtjd1JRSWhBT3ZSenBlK0lZWksxTXlJbklRWjg3SnZQMko4U0lYQ1haTVBCQ2RJVEJhbUFpQVNhdkpYaTlwd3M4ckRESlN4aEdNbG1FN3pJNWJTQThpdnRSQzlMZ3ErVVhBU1FEbDNlb3FMSUQrRVRKTk0remJNdXZ3dmNIRUl4ZUJaa1o5ZnA1akp2Nk9DVFB3bGo0VEpTdXkxYXZFV3FVWVMycml2NUR2bDJoYUZVb0NIZjR5YXdBQT0ifSx7InZhbGlkYXRpb25fcHVibGljX2tleSI6IkVERUUxMERDMzZBQ0Q5OTVDOEUwRTg2RTNDRDJGQkY4MzAxQTRBQzJCODg0N0I2MUExOTM1REU0OTczQjQwN0MwRSIsIm1hbmlmZXN0IjoiSkFBQUFBRnhJZTN1RU53MnJObVZ5T0RvYmp6UysvZ3dHa3JDdUlSN1lhR1RYZVNYTzBCOERuTWhBbVgwdmI3aitsZ0JqRmpiTjlSbEE4Nko3QU8yVm42SExxdU8zYWlzSzRtd2RrWXdSQUlnZnhCTG43aTRqZy9kaTBVMjVxNmtJYlZmVHpxYkEwU0NwUTBJNTdUT0ZrY0NJRk10SlFwRU5qQjJLMkVtdkJIUHZOY3d1U1BjM3ZzRWVxRTJyTkovY1Q1RGNCSkFmNjhYUEZ1NVJqQ2VMZ3BGSk03UEtGTGdvVjhlMW54TzVld2pxOVErVEFFR25GeVMwSU93ZjZwT090SVZNZFZlWHUxdjZwNGZoWFFrZGloSHQxeDZBZz09In0seyJ2YWxpZGF0aW9uX3B1YmxpY19rZXkiOiJFRDU4M0VDRDA2QzNCNzM2OTk4MEU2NUM3OEM0NDBBNTI5MzAwRjU1N0VEODEyNTYyODNGN0RENUFBMzUxM0EzMzQiLCJtYW5pZmVzdCI6IkpBQUFBQUZ4SWUxWVBzMEd3N2MybVlEbVhIakVRS1VwTUE5VmZ0Z1NWaWcvZmRXcU5ST2pOSE1oQXl1VW56WloxbjIvR2FUbUUxbTdIL3Y5WWxaeURFd0hZM2dTSFVBM0lDTDlka1l3UkFJZ0h4MlBIdmlkb04rNXlHOVdlQVMyazdud0lNOGFqeFFXNndqdnQ4a0JlbkFDSUROeFFQUWtEeURKSDlzZVM1QzYybUFhclFtZ2lOODlZUzNqaE50bnZFSXFjQkpBajdKaDBLYWMrYUpkcG9lcHUvK2VKS25uRlE3WUJ5WkI4ZU1aK1NTMXpMaEUrbGlwLzQ5cXFWTmNwQXhFcWZhR3R4SnpvREREMS9RYnVVN05PU1BrQ2c9PSJ9LHsidmFsaWRhdGlvbl9wdWJsaWNfa2V5IjoiRUQ5NUM1MTcyQjJBRDdEMzk0MzRFRUJDNDM2QjY1QjNCQjdFNThENUMxQ0VGQzgyMEI2OTcyQUNBRDc3NkUyODZBIiwibWFuaWZlc3QiOiJKQUFBQUFGeEllMlZ4UmNyS3RmVGxEVHV2RU5yWmJPN2ZsalZ3Yzc4Z2d0cGNxeXRkMjRvYW5NaEFpcWNSZGUzTVFaMDc1ZmE0Wk5OeVJhWUpHTWRCTmtCbm4zYlFyS3NlQkRRZGtZd1JBSWdVK0xmY0U3MURQVnJPK0t0VUJqUTlEMnUway9QcjdsdWtPMW5QUmo2aFNBQ0lETkxZQy9KRmdvYkNzSWEwQkd3KzZiVW5PdzltZVUzRmRYZ1I3UTdTb3FKY0JKQVhRYWtPb1FuUHAzcGNMTDd6ZEtDUFVYNGIrL0ZDOVVuaHFwK085eFFGblJhQ1dWR21rNU1KT0lNczRXT1FkcE0xajNPZ1NzQUJtUnVDWFl2d28vbkR3PT0ifSx7InZhbGlkYXRpb25fcHVibGljX2tleSI6IkVEOTFFQTFFMDg0NURDQTFGMkUxOTYzQkEwRDQ1RjMwQzk0M0RGMjhGM0JGQjBBMTAxNzQzNjUxMzdDN0Y2RTlDNCIsIm1hbmlmZXN0IjoiSkFBQUFBRnhJZTJSNmg0SVJkeWg4dUdXTzZEVVh6REpROThvODcrd29RRjBObEUzeC9icHhITWhBeTB5OWRHUHNoM3p5Q096bnFWbExEUTM4dTRLMkcvNndndkpETVV1UWcrc2RrWXdSQUlnTkVaYzFMRGF4eUlVeHJKRFAwZXVCdE5qSVFuclpqUlBPdGxWZ0d5bWNEMENJQVhISWt1YjVEVmttb0tkT1BHWVBaUE5zN3FqQ1RWRy9OZ0w0SWhaQ2NkcGNCSkFxbkF0dnZRY3lhVWY5YVc2QXNFMnN6VzZobHFEaUo1U0JyaTlpMEJBbFVWR1FDRnVnUXBwMWtaSjhNclJlUjVsVTROMFdmdTNXOHdoQ0lKNHpZU3BDdz09In0seyJ2YWxpZGF0aW9uX3B1YmxpY19rZXkiOiJFRDMwNjA0REExMUVCQUI3M0M0QTI4MzBGMDE0RDZGODRCRDRCMUMyNjBCQjFBNEUyRjkwNjNDMUE3QjQzODRBOTYiLCJtYW5pZmVzdCI6IkpBQUFBQUZ4SWUwd1lFMmhIcnEzUEVvb01QQVUxdmhMMUxIQ1lMc2FUaStRWThHbnREaEtsbk1oQTdtQzB5OEpaVW1MVGhWTFdYazFHM3lvQmh2QzJEV3BrUFE3blNlWlpJYVZka2N3UlFJaEFPOGFUM3o3R0ZQTnlmSUN1VktPMGF4TWRtNjNpdHY5eDA0REVBOUxJQmU3QWlBNjFhRy9yaC83VjlTcmlOcXFUVm5KZzdqUS9ab1hTZlVaTnI0WEhjR3RJSEFTUU9YL0FJSlhFZWVPMHpJK3lzTmNwTUlkWDdpRnVzZStveDA5U3JmRnk4S3NZYjZlM1RBK1RWVVhOdS9PWktSditWWmx3Tzc5K2QvUkgwcHpXWkJxZWdNPSJ9LHsidmFsaWRhdGlvbl9wdWJsaWNfa2V5IjoiRUQ4MjUyQzJGOTE1MjMxMjZFRUY5QTIxOTY0QzdFNDg3QTEwRDZENjNENDU5MTM5NzAwREJDNzBEOUY3QkFENTQyIiwibWFuaWZlc3QiOiJKQUFBQUFGeEllMkNVc0w1RlNNU2J1K2FJWlpNZmtoNkVOYldQVVdST1hBTnZIRFo5N3JWUW5NaEE0MUxvR0c0NGQ5VFpxVDBiYWtyOWRwRkNxTCtmZ1hDSU5tQVlDZVhmNGFjZGtZd1JBSWdkTWdjVmxWUElmZmIxSVRCYVdqU0orQXN5N1A5OEdPOVdEbWlCbTQyZXBzQ0lBRFNabXhsdU4vTlBuN253S1o2RzN4ZmVGOGxINWVjSXRQV05yV1dPdVc0Y0JKQXRzdHY4SVVVTW5UWmRVemptOFlRREFHcW9vV0NpazV0dGpZbWs0NnFxMlRzV1JUSUw3M0twOVZMSGJHckV2TmRrbjVZTEJtZHdmVHdoV21CcmlRdkF3PT0ifSx7InZhbGlkYXRpb25fcHVibGljX2tleSI6IkVENjNDRjkyOUJFODVCMjY2QTY2NTg0QjNGRTJFQjk3RkMyNDgyMDNGMDI3MURDOUM4MzM1NjNFNjA0MThFNzgxOCIsIm1hbmlmZXN0IjoiSkFBQUFBTnhJZTFqejVLYjZGc21hbVpZU3ovaTY1ZjhKSUlEOENjZHljZ3pWajVnUVk1NEdITWhBNDZ5bmtpaUFBRVVHWmdNckNIVUQ2aDF6V0VieGlBOTFNMTZJNTR1eG5PL2RrWXdSQUlnRVVKaVoyeXFvdDFYclZVNk0vY2xhZVJBSzVUeDBCR1R0eWtvbjhKSUpDa0NJRjcwdmdRcGVYcFYwdjJlcVBUOERPcWNwMU4yQ3hnQmtEbi95bHNxT0JpbGNCSkFGUUp4NGpmWmFEMTFudzAyTDc0SVl6VnR5YVJOS1ZDcjRrZEhOb3lMZG1XTDl4V0NDVHdWaFVmOG5oMllmSXBKY0ZuRnAwamFTUFVRcjZHd2x0cTlBQT09In0seyJ2YWxpZGF0aW9uX3B1YmxpY19rZXkiOiJFRDBBRDA2MDlCQ0MwMjI2OTYyQkU2QTFGMUUzOTc2RDQ5ODRDRUFBRDNCOTI4QTAzRENBMjhFQjdCQjdBMTIzNzciLCJtYW5pZmVzdCI6IkpBQUFBQUZ4SWUwSzBHQ2J6QUltbGl2bW9mSGpsMjFKaE02cTA3a29vRDNLS090N3Q2RWpkM01oQTEzRzRCYUxzUWMwWnVxTVdkbDJtSVZMU1ZPUktnOEVQVTMzOHdJRHRLcEpka1l3UkFJZ0VPNXNWTXhpaVowMkU1UFJQaFRPWFJwRFNKZFU0V2h3V1oxTGNBSWhETkVDSUNuaFV0cUR3dmxXRE4yRzFhOUN4QldzWER5ei90SGRwbCsrQ3BtUjRiT0ZjQkpBOGNLZ2EwNkJ5SG9BVGVqVnNWRVVGN0xLMVB5T1MwRFJYb0xyNVlzTlBiRitucSt1eGk3eUJNYkRRVSsyUGJDRVJ4WW5jcGVaUEQyVjJtNnhEOHVDQWc9PSJ9LHsidmFsaWRhdGlvbl9wdWJsaWNfa2V5IjoiRURDMDkwOTgwRUNBQUIzN0NCRTUyRTg4MDIzNkVDNTdGNzMyQjdEQkI3QzdCQjlBMzc2OEQzQTZFNzE4NEE3OTVFIiwibWFuaWZlc3QiOiJKQUFBQUFGeEllM0FrSmdPeXFzM3krVXVpQUkyN0ZmM01yZmJ0OGU3bWpkbzA2Ym5HRXA1WG5NaEFoUm12Q1ptV1pYbHdTaFZFOXFYczJBVkN2aFZ1QS9XR1lrVFgvdlZHQkd3ZGtZd1JBSWdHbllwSUd1ZlVSb2pOMmNUWGFrQU03VndhMEdSN28zb3NkVmxaU2hyb1hRQ0lIOVIvTHgxdjlyZGI0WVkybjVucnhkbmhTU29mM1U2Vi93SUhKbWVhbzV1Y0JKQTlEMWlBTW83WUZDcGIyNDVOM0N6YzBMMVIyWGFjMFl3UTZYZEdUK2NaN3l3Mm44SmJkQzNoSDhYdTlPVXFjODY3RWU2Sm1sWHR5REh6QmRZL2hkSkNRPT0ifSx7InZhbGlkYXRpb25fcHVibGljX2tleSI6IkVEQzE4OTdDRTgzQjZEQ0Y1ODg1ODU3NEVDOUZFMDI3RDRCMTUzOEEwRjIwODIzODAwQTU1MjlFMTIxRTg3QTkzQiIsIm1hbmlmZXN0IjoiSkFBQUFBRnhJZTNCaVh6b08yM1BXSVdGZE95ZjRDZlVzVk9LRHlDQ09BQ2xVcDRTSG9lcE8zTWhBeXpnaE43RFBQYjZEUWsrQzhqRDZWeG5BdHZyTVAzd2I0ZFVXdmlrT3liNmRrY3dSUUloQU5tcHZuSm5OQUJtc1ZWVGdaR0c5L2dKMmdPMTArcmVJdmoxUm1DTjI3a3VBaUJxRzVUTWpIS2RTSERvMmtSWC95SWM2WmJ6TXhDZVFOZzBwL1ZRWUhCNzBIQVNRRUVXZVEzRUpLaWZyL3JGUVJHWVRBVEt0Sy9LbVN5UjI0NkRBWUdEa013bXFaOU1VaGpBYWxXUGRTa3MrcThFOGxteG5rRWxtSjlJUkw4MGVmc2xDQVE9In0seyJ2YWxpZGF0aW9uX3B1YmxpY19rZXkiOiJFRDVFODIyNzZCQ0MyNzg0OTlFNDI4NTM5OTc4OUY1QTkzMTk2MTY2QjU1Mjk1Nzk5N0E2MTU5OUQ0Rjg2MTM5NTkiLCJtYW5pZmVzdCI6IkpBQUFBQUZ4SWUxZWdpZHJ6Q2VFbWVRb1U1bDRuMXFUR1dGbXRWS1ZlWmVtRlpuVStHRTVXWE1oQXcyT2pON0UzQWZXeDRzQU43ays4U2RIeXBWNlBLdi9MZG5DdDFPaUNmK1Jka1l3UkFJZ2Y1aElxbGhDc0RYVW1KcWRyVTZDYU0rdGwzNHlxUm83UXpPWUIySkV5bzhDSUZmTUJ2YTdqcy9QTTl5eUpvOTVqeEUrVlRwV0N4WGQ5bzdjN3FqeWl0dVRjQkpBK2JpQ1pjaGticmljb1FLTVNidFVGUmloMTBLaG9iNGx2YStTTXo2bGRBOGM1d1hXVW5PbHFaN1dXeUcxeStGYU03Q3pEQXg0aUVnM0tNUW00NG5VQ1E9PSJ9LHsidmFsaWRhdGlvbl9wdWJsaWNfa2V5IjoiRURGMTAwNzRGNUZCQkI5NzVBOEVBOEU5QzQyMzA2ODU0RTZBNDlDNzFCN0QzM0IwMjkzQUIxODMwRkVDRjJDNDAwIiwibWFuaWZlc3QiOiJKQUFBQUFGeEllM3hBSFQxKzd1WFdvNm82Y1FqQm9WT2FrbkhHMzB6c0NrNnNZTVA3UExFQUhNaEEvNTBnVThlV0xxd1ZQS3prME5qNWJBYyt4SjFtRmV2elA0ZU43R0lGczUzZGtjd1JRSWhBTmVZaWdMMzNaMWlRNHlxKytDYWlTeTNBSEx3RTl5dVNKKzJ6ODRzOXlwSkFpQlpQZy9LS09YWnB1c1p3WGhySHZ3T3pXRFNlREowVy9WMWlFUW5NaHcrdkhBU1FMVzByNXIrbkcreCtGNWIzWThhQUpRaGtYMUNCT2hnRkZldUFtQ3ZVTzJmNnZsRXg0NTVoRHRKcUk4Tjg0YTBLZzVZK2dtenBzRVNORlhFSkJIMXh3RT0ifSx7InZhbGlkYXRpb25fcHVibGljX2tleSI6IkVERkU2NUZCMzg1QjZCQjE2OTUxMTUzRDJBMEYzMkJENkQ4Q0M0NTMyQzg3QkIzRTE5MDA5MTNBN0JFMzRGNUVGNyIsIm1hbmlmZXN0IjoiSkFBQUFBRnhJZTMrWmZzNFcydXhhVkVWUFNvUE1yMXRqTVJUTEllN1Boa0FrVHA3NDA5ZTkzTWhBMzFnWERCNHdWRjA2WFBRTTNmU2N4ZldIa29SRTVrZ2dDL1NFd1hDWVNIRGRrY3dSUUloQU1TRXY3a2ExZDcwelRlM2N0d0JiOWQraHgrd1pqdmVaYmNWdXBoZnpSZy9BaUJPanllVE4wZnZiam11citsVi9vdkcxQTlaZmtuN0htTzduYnJGaW9yTHdYQVNRTEFITGdLcGxlSHlhU1F2ME80ZENJMHJTdXZQUjRTdnc5RmtNQ29yVlpLRzd5d0FtS04yaFJXOFVyYVVmcW0ySHBRQ3E0QUFTZ1JvUjIvWWhCUUNFZ289In0seyJ2YWxpZGF0aW9uX3B1YmxpY19rZXkiOiJFRDU4RjY3NzBEQjVERDc3RTU5RDI4Q0I2NTBFQzM4MTZFMkZDOTUwMjFCQjU2RTcyMEM5QTEyREE3OUM1OEEzQUIiLCJtYW5pZmVzdCI6IkpBQUFBQUZ4SWUxWTluY050ZDEzNVowb3kyVU93NEZ1TDhsUUlidFc1eURKb1Mybm5GaWpxM01oQStRWlZGRXZmSUg0SWxjbFBzVmZUY2FLZ1IzWE5yWE5rOTdHeHRLWUJSM2pka2N3UlFJaEFPZ25sbHNXVnZoV0hmdlZPc2RYR3NRanJSWnAyYnVXSVNlcTZHU1lpejdGQWlBY0NPOE9tSGl2Wmp3QWwrZE4xSi85RkorY0VseGNwci9NK0NhSGtVQnQ2SEFTUURUTyt5ZitoMW5hQlFnUW1ZMzJhalR2cFBMc3A0Z1FVeGFZbFRsMHZka2VYSHlBbnRFQ2V6Z294V0JsbzlJckV6QkZ6V09mWEZUeDRid1RyRU11QkFrPSJ9LHsidmFsaWRhdGlvbl9wdWJsaWNfa2V5IjoiRUQ1Nzg0QTQzQUE4NEI1QkRBRkQwQUZFRjY0QURBNTU4M0EzMTI5MTgyQzZBNzQ2NDk1MEZENkJGMkQ5RkFFNUIwIiwibWFuaWZlc3QiOiJKQUFBQUFGeEllMVhoS1E2cUV0YjJ2MEsvdlpLMmxXRG94S1Jnc2FuUmtsUS9XdnkyZnJsc0hNaEFyZGJTRWwvT2hhNEk1VkkwcVZ4bWMxekJXb1JiNVludXRjaU9DMGwrT1lkZGtjd1JRSWhBSXFsdUlndHpHSlpKRzlzN3QyNTU4aXBuR2ZnWE9aeE9CTitWWGV5NGlTbUFpQVdKenphblhqWEltTUIvVnRISHJxczFWNHhubGc4dUYreTdNcysxdk1HWm5BU1FDWlluTlIzYVNsd2RZcFJrUDV2MVY5YTVCZXNKVVpENlVKMW5NcjViNVZvT21sK0RqVnREVVp5c3JDSXgwMGErZ0x6K3RoODZnVGV5N1VuQ3JxZ1Fnaz0ifSx7InZhbGlkYXRpb25fcHVibGljX2tleSI6IkVENzU5NDBFQzA5MTMwRjlDNTUzRDhBRjBGRTM1NEExMTJDQzI3MjUxNDcyQUYxQTkwOTE3NTk3NDg5MTkyMTM1RiIsIm1hbmlmZXN0IjoiSkFBQUFBRnhJZTExbEE3QWtURDV4VlBZcncvalZLRVN6Q2NsRkhLdkdwQ1JkWmRJa1pJVFgzTWhBb3pIZi8vUnBHZ05FeFBOUDhTMkhETEg1TlFFcnFqUFNaeTk5S244RzMxbWRrY3dSUUloQUtKVzBEakkxeGVUWUJsREU5cVk5dDMyc3VMVjNoc1FvMFNXNGN2R20wRGNBaUE3QUtnN1NTSEFWbkpuRzdIa0pVNmp4VGo5cVBSZzYvbzZsQXh5V0ZSc2VuQVNRUFA1bkpCRlRsdXhaMUNKK01sSEFRWE9uNEhqUmVIa05mRDBKRjJFRmtLWFJjZC8xSHJuRTl1R1B0MzFFV1doUFUxK3M2dHNiSXg3d3k5bXE1WGNIUTA9In0seyJ2YWxpZGF0aW9uX3B1YmxpY19rZXkiOiJFREY0Q0M1QUI3ODREQzU2OUQ5QkJENDY5ODJCMUNGODBBNzlCQjRDMEFEMUNBMTI3MEYxRDhCNUVBNEE1Qjk1MEIiLCJtYW5pZmVzdCI6IkpBQUFBQUZ4SWUzMHpGcTNoTnhXblp1OVJwZ3JIUGdLZWJ0TUN0SEtFbkR4MkxYcVNsdVZDM01oQW9IM2tjaU1jdXlZeGFWN3hveDBQRy9ES3V6RjFUN3UvUm1VdEdrQmYwVU5ka2N3UlFJaEFMblEwckJsR1MvUHJOTlZLamtoeUpuUXF6ZWxSenRnQTRrQzB4ZXdRaFhvQWlCWXZMZkZxMTRVTllWeThmZkdlYzBWUmNUbTdaWlIxcXgrakRvNENGUHl5SEFTUURXN0E5TnVseHliZS9JSzVRaFhCcDcxdUdpN0ZRMlJDd3cvV3ZLNGtWaWRteGxUaCtNakhJT2lkOFZ4Tm1BVG1EZnBnWE1pOFI4WkM2VFNWRUEzeWdJPSJ9LHsidmFsaWRhdGlvbl9wdWJsaWNfa2V5IjoiRURDRkU2NTEyMUUzOUEyOTU1RjA0RDZENzg0RTNCMDIxNzkxRTg4RDEzOTNEQTRBRkFCODlGOTlBOTI5QTcyOTI0IiwibWFuaWZlc3QiOiJKQUFBQUFGeEllM1A1bEVoNDVvcFZmQk5iWGhPT3dJWGtlaU5FNVBhU3ZxNG41bXBLYWNwSkhNaEFsdHE0YzZOSmowaHZsNDdiU2hIQ05aQ2RhNWpLU2I1UThVS29IYWdKS1ZuZGtZd1JBSWdLTnNUYjU0QnRPTC9uS1R1THFGSjJSUVRMVjFRdVZKcEJDam1DZ2lXMGNzQ0lDLzQ5Yks2SjQyMFBGM2xMUlVMQWlKY3RZR0FJYXZxeExTc0hEa2krS3ZmY0JKQWtjT2FXd3VRMERweVYvempCZmNkakxZQzVZYk15ME5LR24rOEl5MWdMY1hVa1l0VTQwaFc3OHdjSnpZUFpQU2ZTUCtKQlZUVnNDWFJzOHdyZHFzV0F3PT0ifSx7InZhbGlkYXRpb25fcHVibGljX2tleSI6IkVEQTVBQUUwREIxMzRCODA5RjhENjY0ODg4RjdFQzRGQ0U5OERDNEQwMEIzMzMwMTAzMjQyNDk0MUMxNkMyRjBGNyIsIm1hbmlmZXN0IjoiSkFBQUFBTnhJZTJscXVEYkUwdUFuNDFtU0lqMzdFL09tTnhOQUxNekFRTWtKSlFjRnNMdzkzTWhBZ2JFYXhnT2JyYmNxV2RWK2U3M0dQQVhJU2hxYnNxZktITTlZenZrZTNEVWRrY3dSUUloQU5jWmtPbDdIR1hPMXZwOVpidTBBZWNCZ3NmVGpWRU1uMEFEaUl4R3JzaXNBaUFzeXZiZU1haVVvYWZsRkRKUFZaUWpaMGVWM2VWR2x6alFIaGc5dkp2NE1YQVNRRCt6Y1BGWGQrN3VtankvRzZCTlJESEVVbUM1Q3EyeXBBWWJNeFRzekRCOTQ4ZGo5M09vTFNOWEJVQW92MmxuZER6dXlKQ1hYdFhBRjBROEZqLzZzUUk9In0seyJ2YWxpZGF0aW9uX3B1YmxpY19rZXkiOiJFRDc2MEU1OEExNEU1N0M5MUY3NEM2ODY0RTI3OUMwMDAwRjNFRDJEODY4QkE2ODEyMTk3REYxMzQ4RDNGN0E0RDciLCJtYW5pZmVzdCI6IkpBQUFBQUp4SWUxMkRsaWhUbGZKSDNUR2hrNG5uQUFBOCswdGhvdW1nU0dYM3hOSTAvZWsxM01oQXBYeFF5RlJpcCs5TmRFdDdxZWRXWmZMRjZ2T21Cb1lSL1hhcjIzMlJQM3Jka2N3UlFJaEFNQmh4cmF6dFdiN2VyTWlqQWFydW5TUmsvcEpxci9kMEN1bWcrT1l1VDMrQWlBVXhxdnVtRXJXTzBuK0tTWTZQQTZvOW41bkJrNXozM0UxQVFkQmxwZDdGWEFTUURLNG9vWEc0ZmhHeExCN2k5aDQzZG56VWlkMjkrM2tEL3ZUVWlyM1QwY2pDMitGTEx6Wmo4QTA4NWdDMUVCaWNmTGpkdXZqeGhDVjFScE0zZUpWR1FFPSJ9XX0=", "manifest": "JAAAAAFxIe0md6v/0bM6xvvDBitx8eg5fBUF4cQsZNEa0bKP9z9HNHMh7V0AnEi5D4odY9X2sx+cY8B3OHNjJvMhARRPtTHmWnAhdkDFcg53dAQS1WDMQDLIs2wwwHpScrUnjp1iZwwTXVXXsaRxLztycioto3JgImGdukXubbrjeqCNU02f7Y/+6w0BcBJA3M0EOU+39hmB8vwfgernXZIDQ1+o0dnuXjX73oDLgsacwXzLBVOdBpSAsJwYD+nW8YaSacOHEsWaPlof05EsAg==", - "public_key" : "ED2677ABFFD1B33AC6FBC3062B71F1E8397C1505E1C42C64D11AD1B28FF73F4734", - "signature" : "6D4F8D020DC79A7866DF39B536AD5E85E2D6458BA7D002B8EAB7D2F492063993580E73F5A252E88C92DE26923573DA5707BA6A5693FA6D6082371FE03F96D304", + "public_key": "ED2677ABFFD1B33AC6FBC3062B71F1E8397C1505E1C42C64D11AD1B28FF73F4734", + "signature": "6D4F8D020DC79A7866DF39B536AD5E85E2D6458BA7D002B8EAB7D2F492063993580E73F5A252E88C92DE26923573DA5707BA6A5693FA6D6082371FE03F96D304", "version": 1 } diff --git a/_code-samples/account-configurator/js/account-configurator.css b/_code-samples/account-configurator/js/account-configurator.css index 58590c09f4..b1630a8881 100644 --- a/_code-samples/account-configurator/js/account-configurator.css +++ b/_code-samples/account-configurator/js/account-configurator.css @@ -1,5 +1,5 @@ body { - font-family: "Inter", sans-serif; + font-family: 'Inter', sans-serif; padding: 20px; background: #abe2ff; } @@ -17,12 +17,12 @@ input, button { padding: 6px; margin-bottom: 8px; - border: none + border: none; } button { font-weight: bold; - font-family: "Work Sans", sans-serif; + font-family: 'Work Sans', sans-serif; background-color: #006aff; -webkit-text-fill-color: white; } @@ -60,31 +60,31 @@ td { right: 0; bottom: 0; background-color: #ccc; - -webkit-transition: .4s; - transition: .4s; + -webkit-transition: 0.4s; + transition: 0.4s; } .slider:before { position: absolute; - content: ""; + content: ''; height: 13px; width: 13px; left: 4px; bottom: 2px; background-color: white; - -webkit-transition: .4s; - transition: .4s; + -webkit-transition: 0.4s; + transition: 0.4s; } -input:checked+.slider { - background-color: #2196F3; +input:checked + .slider { + background-color: #2196f3; } -input:focus+.slider { - box-shadow: 0 0 1px #2196F3; +input:focus + .slider { + box-shadow: 0 0 1px #2196f3; } -input:checked+.slider:before { +input:checked + .slider:before { -webkit-transform: translateX(13px); -ms-transform: translateX(13px); transform: translateX(13px); @@ -104,7 +104,7 @@ input:checked+.slider:before { } .tooltip:before { - content: attr(tooltip-data); + content: attr(tooltip-data); position: absolute; width: 250px; background-color: #006aff; @@ -115,16 +115,16 @@ input:checked+.slider:before { border-radius: 5px; z-index: 1; opacity: 0; - transition: opacity .5s; + transition: opacity 0.5s; bottom: 125%; left: 50%; margin-left: -60px; - font-size: 0.70em; + font-size: 0.7em; visibility: hidden; } .tooltip:after { - content: ""; + content: ''; position: absolute; bottom: 75%; left: 50%; @@ -132,13 +132,13 @@ input:checked+.slider:before { border-width: 5px; border-style: solid; opacity: 0; - transition: opacity .5s; + transition: opacity 0.5s; border-color: #000 transparent transparent transparent; visibility: hidden; } -.tooltip:hover:before, +.tooltip:hover:before, .tooltip:hover:after { opacity: 1; visibility: visible; -} \ No newline at end of file +} diff --git a/_code-samples/account-configurator/js/account-configurator.js b/_code-samples/account-configurator/js/account-configurator.js index b83d561909..823bd2a261 100644 --- a/_code-samples/account-configurator/js/account-configurator.js +++ b/_code-samples/account-configurator/js/account-configurator.js @@ -1,40 +1,39 @@ const allFlags = [ - "empty", - "asfRequireDest", - "asfRequireAuth", - "asfDisallowXRP", - "asfDisableMaster", - "asfAccountTxnID", - "asfNoFreeze", - "asfGlobalFreeze", - "asfDefaultRipple", - "asfDepositAuth", - "asfAuthorizedNFTokenMinter", - "hooksReserved", - "asfDisallowIncomingNFTokenOffer", - "asfDisallowIncomingCheck", - "asfDisallowIncomingPayChan", - "asfDisallowIncomingTrustline", - "asfAllowTrustLineClawback", - ] + 'empty', + 'asfRequireDest', + 'asfRequireAuth', + 'asfDisallowXRP', + 'asfDisableMaster', + 'asfAccountTxnID', + 'asfNoFreeze', + 'asfGlobalFreeze', + 'asfDefaultRipple', + 'asfDepositAuth', + 'asfAuthorizedNFTokenMinter', + 'hooksReserved', + 'asfDisallowIncomingNFTokenOffer', + 'asfDisallowIncomingCheck', + 'asfDisallowIncomingPayChan', + 'asfDisallowIncomingTrustline', + 'asfAllowTrustLineClawback', +] document.addEventListener('DOMContentLoaded', () => { - document.getElementById("issuer_additional_fields").style.display="none" -}); - + document.getElementById('issuer_additional_fields').style.display = 'none' +}) // ****************************************************** // ************* Get the Preferred Network ************** -// ****************************************************** +// ****************************************************** function getNet() { let net - if (document.getElementById("mn").checked) net = "wss://xrplcluster.com/" - if (document.getElementById("tn").checked) net = "wss://s.altnet.rippletest.net:51233" - if (document.getElementById("dn").checked) net = "wss://s.devnet.rippletest.net:51233" + if (document.getElementById('mn').checked) net = 'wss://xrplcluster.com/' + if (document.getElementById('tn').checked) net = 'wss://s.altnet.rippletest.net:51233' + if (document.getElementById('dn').checked) net = 'wss://s.devnet.rippletest.net:51233' return net } // End of getNet() - + // ******************************************************* // ************* Get Account ***************************** // ******************************************************* @@ -44,26 +43,26 @@ async function getAccount() { const client = new xrpl.Client(net) results = 'Connecting to ' + net + '....' -//-------------------------------This uses the default faucet for Testnet/Devnet. + //-------------------------------This uses the default faucet for Testnet/Devnet. let faucetHost = null resultField.value = results await client.connect() results += '\nConnected, funding wallet.' -// ----------------------------------------Create and fund a test account wallet. + // ----------------------------------------Create and fund a test account wallet. const my_wallet = (await client.fundWallet(null, { faucetHost })).wallet results += '\nGot a wallet.' -// ------------------------------------------------------Get the current balance. + // ------------------------------------------------------Get the current balance. accountField.value = my_wallet.address seedField.value = my_wallet.seed results += '\nAccount created.\n' client.disconnect() - results+=JSON.stringify(my_wallet) + results += JSON.stringify(my_wallet) resultField.value = results } // End of getAccount() - + // ******************************************************* -// ************ Get Account from Seed ******************** +// ************ Get Account from Seed ******************** // ******************************************************* async function getAccountFromSeed() { @@ -73,66 +72,64 @@ async function getAccountFromSeed() { await client.connect() results += '\nConnected, finding wallets.\n' resultField.value = results -// --------------------------------------------------Find the test account wallet. + // --------------------------------------------------Find the test account wallet. const my_wallet = xrpl.Wallet.fromSeed(seedField.value) - -// -------------------------------------------------------Get the current balance. + + // -------------------------------------------------------Get the current balance. accountField.value = my_wallet.address - seedField.value = my_wallet.seed + seedField.value = my_wallet.seed client.disconnect() getAccountInfo() } // End of getAccountFromSeed() // ******************************************************* -// ***************** Get Account Info ******************** +// ***************** Get Account Info ******************** // ******************************************************* async function getAccountInfo() { let net = getNet() const client = new xrpl.Client(net) results = 'Connecting to ' + getNet() + '....' - await client.connect() + await client.connect() results += '\nConnected.' - results+= "\nGetting account info...\n" + results += '\nGetting account info...\n' const my_acct_info = await client.request({ - command: "account_info", + command: 'account_info', account: accountField.value, - ledger_index: "validated", - signer_lists: true + ledger_index: 'validated', + signer_lists: true, }) results = JSON.stringify(my_acct_info, null, 2) resultField.value += results var parsedResults = JSON.parse(results) try { - document.getElementById("tickSizeField").value = parsedResults.result.account_data.TickSize - document.getElementById("transferRateField").value = parsedResults.result.account_data.TransferRate - document.getElementById("domainField").value = xrpl.convertHexToString(parsedResults.result.account_data.Domain) - } catch (error ) { - } - document.getElementById("defaultRipple").checked = parsedResults.result.account_flags.defaultRipple - document.getElementById("allowTrustLineClawback").checked = parsedResults.result.account_flags.allowTrustLineClawback - document.getElementById("depositAuth").checked = parsedResults.result.account_flags.depositAuth - document.getElementById("disableMasterKey").checked = parsedResults.result.account_flags.disableMasterKey - document.getElementById("disallowIncomingCheck").checked = parsedResults.result.account_flags.disallowIncomingCheck - document.getElementById("disallowIncomingNFTokenOffer").checked = parsedResults.result.account_flags.disallowIncomingNFTokenOffer - document.getElementById("disallowIncomingPayChan").checked = parsedResults.result.account_flags.disallowIncomingPayChan - document.getElementById("disallowIncomingTrustline").checked = parsedResults.result.account_flags.disallowIncomingTrustline - document.getElementById("disallowIncomingXRP").checked = parsedResults.result.account_flags.disallowIncomingXRP - document.getElementById("globalFreeze").checked = parsedResults.result.account_flags.globalFreeze - document.getElementById("noFreeze").checked = parsedResults.result.account_flags.noFreeze - document.getElementById("requireAuthorization").checked = parsedResults.result.account_flags.requireAuthorization - document.getElementById("requireDestinationTag").checked = parsedResults.result.account_flags.requireDestinationTag + document.getElementById('tickSizeField').value = parsedResults.result.account_data.TickSize + document.getElementById('transferRateField').value = parsedResults.result.account_data.TransferRate + document.getElementById('domainField').value = xrpl.convertHexToString(parsedResults.result.account_data.Domain) + } catch (error) {} + document.getElementById('defaultRipple').checked = parsedResults.result.account_flags.defaultRipple + document.getElementById('allowTrustLineClawback').checked = parsedResults.result.account_flags.allowTrustLineClawback + document.getElementById('depositAuth').checked = parsedResults.result.account_flags.depositAuth + document.getElementById('disableMasterKey').checked = parsedResults.result.account_flags.disableMasterKey + document.getElementById('disallowIncomingCheck').checked = parsedResults.result.account_flags.disallowIncomingCheck + document.getElementById('disallowIncomingNFTokenOffer').checked = parsedResults.result.account_flags.disallowIncomingNFTokenOffer + document.getElementById('disallowIncomingPayChan').checked = parsedResults.result.account_flags.disallowIncomingPayChan + document.getElementById('disallowIncomingTrustline').checked = parsedResults.result.account_flags.disallowIncomingTrustline + document.getElementById('disallowIncomingXRP').checked = parsedResults.result.account_flags.disallowIncomingXRP + document.getElementById('globalFreeze').checked = parsedResults.result.account_flags.globalFreeze + document.getElementById('noFreeze').checked = parsedResults.result.account_flags.noFreeze + document.getElementById('requireAuthorization').checked = parsedResults.result.account_flags.requireAuthorization + document.getElementById('requireDestinationTag').checked = parsedResults.result.account_flags.requireDestinationTag try { let signerEntries_variable = parsedResults.result.account_data.signer_lists[0].SignerEntries - document.getElementById("signer1AccountField").value = signerEntries_variable[0]["SignerEntry"]["Account"] - document.getElementById("signer1WeightField").value = signerEntries_variable[0]["SignerEntry"]["SignerWeight"] - document.getElementById("signer2AccountField").value = signerEntries_variable[1]["SignerEntry"]["Account"] - document.getElementById("signer2WeightField").value = signerEntries_variable[1]["SignerEntry"]["SignerWeight"] - document.getElementById("signer3AccountField").value = signerEntries_variable[2]["SignerEntry"]["Account"] - document.getElementById("signer3WeightField").value = signerEntries_variable[2]["SignerEntry"]["SignerWeight"] - document.getElementById("signerQuorumField").value = parsedResults.result.account_data.signer_lists[0].SignerQuorum - } catch (error) { - } + document.getElementById('signer1AccountField').value = signerEntries_variable[0]['SignerEntry']['Account'] + document.getElementById('signer1WeightField').value = signerEntries_variable[0]['SignerEntry']['SignerWeight'] + document.getElementById('signer2AccountField').value = signerEntries_variable[1]['SignerEntry']['Account'] + document.getElementById('signer2WeightField').value = signerEntries_variable[1]['SignerEntry']['SignerWeight'] + document.getElementById('signer3AccountField').value = signerEntries_variable[2]['SignerEntry']['Account'] + document.getElementById('signer3WeightField').value = signerEntries_variable[2]['SignerEntry']['SignerWeight'] + document.getElementById('signerQuorumField').value = parsedResults.result.account_data.signer_lists[0].SignerQuorum + } catch (error) {} client.disconnect() } // End of getAccountInfo() @@ -147,165 +144,155 @@ async function configureAccount() { await client.connect() my_wallet = xrpl.Wallet.fromSeed(seedField.value) const my_acct_info = await client.request({ - command: "account_info", + command: 'account_info', account: accountField.value, - ledger_index: "validated", + ledger_index: 'validated', }) json_results = JSON.stringify(my_acct_info, null, 2) var parsedResults = JSON.parse(json_results) - let defRipBool = document.getElementById("defaultRipple").checked + let defRipBool = document.getElementById('defaultRipple').checked if (defRipBool != parsedResults.result.account_flags.defaultRipple) { - if(defRipBool) { + if (defRipBool) { await setFlag(xrpl.AccountSetAsfFlags.asfDefaultRipple) } else { await clearFlag(xrpl.AccountSetAsfFlags.asfDefaultRipple) } } - if (document.getElementById("allowTrustLineClawback").checked != parsedResults.result.account_flags.allowTrustLineClawback) { - if(document.getElementById("allowTrustLineClawback").checked) { - await setFlag(16) + if (document.getElementById('allowTrustLineClawback').checked != parsedResults.result.account_flags.allowTrustLineClawback) { + if (document.getElementById('allowTrustLineClawback').checked) { + await setFlag(16) } else { await clearFlag(16) } } - if (document.getElementById("depositAuth").checked != parsedResults.result.account_flags.depositAuth) { - if(document.getElementById("depositAuth").checked) { + if (document.getElementById('depositAuth').checked != parsedResults.result.account_flags.depositAuth) { + if (document.getElementById('depositAuth').checked) { await setFlag(xrpl.AccountSetAsfFlags.asfDepositAuth) } else { await clearFlag(xrpl.AccountSetAsfFlags.asfDepositAuth) } } - - if (document.getElementById("disableMasterKey").checked != parsedResults.result.account_flags.disableMasterKey) { - if(document.getElementById("disableMasterKey").checked) { + + if (document.getElementById('disableMasterKey').checked != parsedResults.result.account_flags.disableMasterKey) { + if (document.getElementById('disableMasterKey').checked) { await setFlag(xrpl.AccountSetAsfFlags.asfDisableMaster) } else { await clearFlag(xrpl.AccountSetAsfFlags.asfDisableMaster) } } - - if (document.getElementById("disallowIncomingCheck").checked != parsedResults.result.account_flags.disallowIncomingCheck) { - if(document.getElementById("disallowIncomingCheck").checked) { + + if (document.getElementById('disallowIncomingCheck').checked != parsedResults.result.account_flags.disallowIncomingCheck) { + if (document.getElementById('disallowIncomingCheck').checked) { await setFlag(xrpl.AccountSetAsfFlags.asfDisallowIncomingCheck) } else { await clearFlag(xrpl.AccountSetAsfFlags.asfDisallowIncomingCheck) } } - - if (document.getElementById("disallowIncomingNFTokenOffer").checked != parsedResults.result.account_flags.disallowIncomingNFTokenOffer) { - if(document.getElementById("disallowIncomingNFTokenOffer").checked) { + + if (document.getElementById('disallowIncomingNFTokenOffer').checked != parsedResults.result.account_flags.disallowIncomingNFTokenOffer) { + if (document.getElementById('disallowIncomingNFTokenOffer').checked) { await setFlag(xrpl.AccountSetAsfFlags.asfDisallowIncomingNFTokenOffer) } else { await clearFlag(xrpl.AccountSetAsfFlags.asfDisallowIncomingNFTokenOffer) } } - if (document.getElementById("disallowIncomingPayChan").checked != parsedResults.result.account_flags.disallowIncomingPayChan) { - if(document.getElementById("disallowIncomingPayChan").checked) { + if (document.getElementById('disallowIncomingPayChan').checked != parsedResults.result.account_flags.disallowIncomingPayChan) { + if (document.getElementById('disallowIncomingPayChan').checked) { await setFlag(xrpl.AccountSetAsfFlags.asfDisallowIncomingPayChan) } else { await clearFlag(xrpl.AccountSetAsfFlags.asfDisallowIncomingPayChan) } } - if (document.getElementById("disallowIncomingTrustline").checked != parsedResults.result.account_flags.disallowIncomingTrustline) { - if(document.getElementById("disallowIncomingTrustline").checked) { + if (document.getElementById('disallowIncomingTrustline').checked != parsedResults.result.account_flags.disallowIncomingTrustline) { + if (document.getElementById('disallowIncomingTrustline').checked) { await setFlag(xrpl.AccountSetAsfFlags.asfDisallowIncomingTrustline) } else { await clearFlag(xrpl.AccountSetAsfFlags.asfDisallowIncomingTrustline) } } - if (document.getElementById("disallowIncomingXRP").checked != parsedResults.result.account_flags.disallowIncomingXRP) { - if(document.getElementById("disallowIncomingXRP").checked) { + if (document.getElementById('disallowIncomingXRP').checked != parsedResults.result.account_flags.disallowIncomingXRP) { + if (document.getElementById('disallowIncomingXRP').checked) { await setFlag(xrpl.AccountSetAsfFlags.asfDisallowXRP) } else { await clearFlag(xrpl.AccountSetAsfFlags.asfDisallowXRP) } } - if (document.getElementById("globalFreeze").checked != parsedResults.result.account_flags.globalFreeze) { - if(document.getElementById("globalFreeze").checked) { + if (document.getElementById('globalFreeze').checked != parsedResults.result.account_flags.globalFreeze) { + if (document.getElementById('globalFreeze').checked) { await setFlag(xrpl.AccountSetAsfFlags.asfGlobalFreeze) } else { await clearFlag(xrpl.AccountSetAsfFlags.asfGlobalFreeze) } } - if (document.getElementById("noFreeze").checked != parsedResults.result.account_flags.noFreeze) { - if(document.getElementById("noFreeze").checked) { + if (document.getElementById('noFreeze').checked != parsedResults.result.account_flags.noFreeze) { + if (document.getElementById('noFreeze').checked) { await setFlag(xrpl.AccountSetAsfFlags.asfNoFreeze) } else { await clearFlag(xrpl.AccountSetAsfFlags.asfNoFreeze) } } - if (document.getElementById("requireAuthorization").checked != parsedResults.result.account_flags.requireAuthorization) { - if(document.getElementById("requireAuthorization").checked) { + if (document.getElementById('requireAuthorization').checked != parsedResults.result.account_flags.requireAuthorization) { + if (document.getElementById('requireAuthorization').checked) { await setFlag(xrpl.AccountSetAsfFlags.asfRequireAuth) } else { await clearFlag(xrpl.AccountSetAsfFlags.asfRequireAuth) } } - if (document.getElementById("requireDestinationTag").checked != parsedResults.result.account_flags.requireDestinationTag) { - if(document.getElementById("requireDestinationTag").checked) { + if (document.getElementById('requireDestinationTag').checked != parsedResults.result.account_flags.requireDestinationTag) { + if (document.getElementById('requireDestinationTag').checked) { await setFlag(xrpl.AccountSetAsfFlags.asfRequireDest) } else { await clearFlag(xrpl.AccountSetAsfFlags.asfRequireDest) } } - if(!document.getElementById("is").checked) { + if (!document.getElementById('is').checked) { my_config = { - "TransactionType": "AccountSet", - "Account" : my_wallet.address, - "TickSize": 0, - "TransferRate": 1000000000, - "Domain": "" + TransactionType: 'AccountSet', + Account: my_wallet.address, + TickSize: 0, + TransferRate: 1000000000, + Domain: '', } const preparedAccount = await client.autofill(my_config) const signedAccount = my_wallet.sign(preparedAccount) const resultAccount = await client.submitAndWait(signedAccount.tx_blob) } else { my_config = { - "TransactionType": "AccountSet", - "Account" : my_wallet.address, - "TickSize": parseInt(document.getElementById("tickSizeField").value), - "TransferRate": parseInt(document.getElementById("transferRateField").value), - "Domain": xrpl.convertStringToHex(document.getElementById("domainField").value), + TransactionType: 'AccountSet', + Account: my_wallet.address, + TickSize: parseInt(document.getElementById('tickSizeField').value), + TransferRate: parseInt(document.getElementById('transferRateField').value), + Domain: xrpl.convertStringToHex(document.getElementById('domainField').value), } const preparedAccount = await client.autofill(my_config) const signedAccount = my_wallet.sign(preparedAccount) const resultAccount = await client.submitAndWait(signedAccount.tx_blob) resultField.value += JSON.stringify(resultAccount, null, 2) - if(signer1AccountField.value!=""){ - my_signers= { - "Flags": 0, - "TransactionType": "SignerListSet", - "Account": my_wallet.address, - "Fee": "12", - "SignerQuorum": parseInt(signerQuorumField.value), - "SignerEntries": [ - {"SignerEntry": - {"Account": signer1AccountField.value, - "SignerWeight": parseInt(signer1WeightField.value) - }}, - {"SignerEntry": - {"Account": signer2AccountField.value, - "SignerWeight": parseInt(signer2WeightField.value)} - }, - {"SignerEntry": - {"Account": signer3AccountField.value, - "SignerWeight": parseInt(signer3WeightField.value) - } - } - ] - } - + if (signer1AccountField.value != '') { + my_signers = { + Flags: 0, + TransactionType: 'SignerListSet', + Account: my_wallet.address, + Fee: '12', + SignerQuorum: parseInt(signerQuorumField.value), + SignerEntries: [ + { SignerEntry: { Account: signer1AccountField.value, SignerWeight: parseInt(signer1WeightField.value) } }, + { SignerEntry: { Account: signer2AccountField.value, SignerWeight: parseInt(signer2WeightField.value) } }, + { SignerEntry: { Account: signer3AccountField.value, SignerWeight: parseInt(signer3WeightField.value) } }, + ], + } + const preparedSigner = await client.autofill(my_signers) const signedSigner = my_wallet.sign(preparedSigner) const resultSigner = await client.submitAndWait(signedSigner.tx_blob) @@ -313,8 +300,8 @@ async function configureAccount() { } } client.disconnect() - if(!document.getElementById("is").checked) { - document.getElementById("issuer_additional_fields").style.display="none" + if (!document.getElementById('is').checked) { + document.getElementById('issuer_additional_fields').style.display = 'none' } getAccountInfo() } // End of configureAccount() @@ -323,127 +310,126 @@ async function configureAccount() { ************** Set Flag ***************** *****************************************/ - async function setFlag(my_flag) { +async function setFlag(my_flag) { let net = getNet() const client = new xrpl.Client(net) await client.connect() let my_wallet = xrpl.Wallet.fromSeed(seedField.value) settings_tx = { - "TransactionType": "AccountSet", - "Account": my_wallet.address, - "SetFlag": my_flag + TransactionType: 'AccountSet', + Account: my_wallet.address, + SetFlag: my_flag, } - resultField.value += '\nSetting flag ' + allFlags[my_flag] + "." + resultField.value += '\nSetting flag ' + allFlags[my_flag] + '.' const prepared = await client.autofill(settings_tx) const signed = my_wallet.sign(prepared) const result = await client.submitAndWait(signed.tx_blob) - if (result.result.meta.TransactionResult == "tesSUCCESS") { + if (result.result.meta.TransactionResult == 'tesSUCCESS') { resultField.value += '\nAccount setting succeeded.' } else { throw `Error sending transaction: ${result}` } client.disconnect() - } // End setFlag() +} // End setFlag() - /***************************************** +/***************************************** ************* Clear Flag ***************** *****************************************/ - async function clearFlag(my_flag) { +async function clearFlag(my_flag) { let net = getNet() const client = new xrpl.Client(net) await client.connect() let my_wallet = xrpl.Wallet.fromSeed(seedField.value) settings_tx = { - "TransactionType": "AccountSet", - "Account": my_wallet.address, - "ClearFlag": my_flag + TransactionType: 'AccountSet', + Account: my_wallet.address, + ClearFlag: my_flag, } - resultField.value += '\nClearing flag ' + allFlags[my_flag] + "." + resultField.value += '\nClearing flag ' + allFlags[my_flag] + '.' const prepared = await client.autofill(settings_tx) const signed = my_wallet.sign(prepared) - const result = await client.submitAndWait(signed.tx_blob) - if (result.result.meta.TransactionResult == "tesSUCCESS") { + const result = await client.submitAndWait(signed.tx_blob) + if (result.result.meta.TransactionResult == 'tesSUCCESS') { results += '\nAccount setting succeeded.' } else { throw `Error sending transaction: ${result}` - } + } client.disconnect() } - /***************************************** +/***************************************** ************* Set Issuer ***************** *****************************************/ - function setIssuer() { - document.getElementById("defaultRipple").checked = true - document.getElementById("allowTrustLineClawback").checked = false - document.getElementById("depositAuth").checked = true - document.getElementById("disableMasterKey").checked = false - document.getElementById("disallowIncomingCheck").checked = true - document.getElementById("disallowIncomingNFTokenOffer").checked = true - document.getElementById("disallowIncomingPayChan").checked = true - document.getElementById("disallowIncomingTrustline").checked = false - document.getElementById("disallowIncomingXRP").checked = true - document.getElementById("globalFreeze").checked = false - document.getElementById("noFreeze").checked = false - document.getElementById("requireAuthorization").checked = false - document.getElementById("requireDestinationTag").checked = false - document.getElementById("account_flags").style.display="block" - document.getElementById("issuer_additional_fields").style.display="block" +function setIssuer() { + document.getElementById('defaultRipple').checked = true + document.getElementById('allowTrustLineClawback').checked = false + document.getElementById('depositAuth').checked = true + document.getElementById('disableMasterKey').checked = false + document.getElementById('disallowIncomingCheck').checked = true + document.getElementById('disallowIncomingNFTokenOffer').checked = true + document.getElementById('disallowIncomingPayChan').checked = true + document.getElementById('disallowIncomingTrustline').checked = false + document.getElementById('disallowIncomingXRP').checked = true + document.getElementById('globalFreeze').checked = false + document.getElementById('noFreeze').checked = false + document.getElementById('requireAuthorization').checked = false + document.getElementById('requireDestinationTag').checked = false + document.getElementById('account_flags').style.display = 'block' + document.getElementById('issuer_additional_fields').style.display = 'block' } - /***************************************** +/***************************************** *********** Set Exchanger **************** *****************************************/ - function setExchanger() { - document.getElementById("defaultRipple").checked = true - document.getElementById("allowTrustLineClawback").checked = false - document.getElementById("depositAuth").checked = false - document.getElementById("disableMasterKey").checked = false - document.getElementById("disallowIncomingCheck").checked = false - document.getElementById("disallowIncomingNFTokenOffer").checked = true - document.getElementById("disallowIncomingPayChan").checked = true - document.getElementById("disallowIncomingTrustline").checked = false - document.getElementById("disallowIncomingXRP").checked = false - document.getElementById("globalFreeze").checked = false - document.getElementById("noFreeze").checked = false - document.getElementById("requireAuthorization").checked = false - document.getElementById("requireDestinationTag").checked = true - document.getElementById("account_flags").style.display="block" - document.getElementById("issuer_additional_fields").style.display="none" - document.getElementById("domainField").value = "" - document.getElementById("transferRateField").value = "" - document.getElementById("tickSizeField").value = "" +function setExchanger() { + document.getElementById('defaultRipple').checked = true + document.getElementById('allowTrustLineClawback').checked = false + document.getElementById('depositAuth').checked = false + document.getElementById('disableMasterKey').checked = false + document.getElementById('disallowIncomingCheck').checked = false + document.getElementById('disallowIncomingNFTokenOffer').checked = true + document.getElementById('disallowIncomingPayChan').checked = true + document.getElementById('disallowIncomingTrustline').checked = false + document.getElementById('disallowIncomingXRP').checked = false + document.getElementById('globalFreeze').checked = false + document.getElementById('noFreeze').checked = false + document.getElementById('requireAuthorization').checked = false + document.getElementById('requireDestinationTag').checked = true + document.getElementById('account_flags').style.display = 'block' + document.getElementById('issuer_additional_fields').style.display = 'none' + document.getElementById('domainField').value = '' + document.getElementById('transferRateField').value = '' + document.getElementById('tickSizeField').value = '' } - /***************************************** +/***************************************** ************* Set Holder ***************** *****************************************/ - function setHolder() - { - document.getElementById("defaultRipple").checked = false - document.getElementById("allowTrustLineClawback").checked = false - document.getElementById("depositAuth").checked = false - document.getElementById("disableMasterKey").checked = false - document.getElementById("disallowIncomingCheck").checked = false - document.getElementById("disallowIncomingNFTokenOffer").checked = false - document.getElementById("disallowIncomingPayChan").checked = false - document.getElementById("disallowIncomingTrustline").checked = false - document.getElementById("disallowIncomingXRP").checked = false - document.getElementById("globalFreeze").checked = false - document.getElementById("noFreeze").checked = false - document.getElementById("requireAuthorization").checked = false - document.getElementById("requireDestinationTag").checked = false - document.getElementById("domainField").value = "" - document.getElementById("transferRateField").value = "" - document.getElementById("tickSizeField").value = "" - document.getElementById("issuer_additional_fields").style.display="none" +function setHolder() { + document.getElementById('defaultRipple').checked = false + document.getElementById('allowTrustLineClawback').checked = false + document.getElementById('depositAuth').checked = false + document.getElementById('disableMasterKey').checked = false + document.getElementById('disallowIncomingCheck').checked = false + document.getElementById('disallowIncomingNFTokenOffer').checked = false + document.getElementById('disallowIncomingPayChan').checked = false + document.getElementById('disallowIncomingTrustline').checked = false + document.getElementById('disallowIncomingXRP').checked = false + document.getElementById('globalFreeze').checked = false + document.getElementById('noFreeze').checked = false + document.getElementById('requireAuthorization').checked = false + document.getElementById('requireDestinationTag').checked = false + document.getElementById('domainField').value = '' + document.getElementById('transferRateField').value = '' + document.getElementById('tickSizeField').value = '' + document.getElementById('issuer_additional_fields').style.display = 'none' } - /***************************************** +/***************************************** ************* Remove Signers ************* *****************************************/ @@ -454,23 +440,23 @@ async function removeSigners() { await client.connect() my_wallet = xrpl.Wallet.fromSeed(seedField.value) - signer1AccountField.value = "" - signer2AccountField.value = "" - signer3AccountField.value = "" - signer1WeightField.value = "" - signer2WeightField.value= "" - signer3WeightField.value = "" - signerQuorumField.value = "" - my_signers= { - "Flags": 0, - "TransactionType": "SignerListSet", - "Account": my_wallet.address, - "Fee": "12", - "SignerQuorum": 0 + signer1AccountField.value = '' + signer2AccountField.value = '' + signer3AccountField.value = '' + signer1WeightField.value = '' + signer2WeightField.value = '' + signer3WeightField.value = '' + signerQuorumField.value = '' + my_signers = { + Flags: 0, + TransactionType: 'SignerListSet', + Account: my_wallet.address, + Fee: '12', + SignerQuorum: 0, } -const preparedSigner = await client.autofill(my_signers) -const signedSigner = my_wallet.sign(preparedSigner) -const resultSigner = await client.submitAndWait(signedSigner.tx_blob) -resultField.value += JSON.stringify(resultSigner, null, 2) -client.disconnect() -} \ No newline at end of file + const preparedSigner = await client.autofill(my_signers) + const signedSigner = my_wallet.sign(preparedSigner) + const resultSigner = await client.submitAndWait(signedSigner.tx_blob) + resultField.value += JSON.stringify(resultSigner, null, 2) + client.disconnect() +} diff --git a/_code-samples/address_encoding/js/encode_address.js b/_code-samples/address_encoding/js/encode_address.js index 553c8b3663..1fce81b3a7 100644 --- a/_code-samples/address_encoding/js/encode_address.js +++ b/_code-samples/address_encoding/js/encode_address.js @@ -1,45 +1,44 @@ -'use strict'; -const assert = require('assert'); -const crypto = require('crypto'); -const R_B58_DICT = 'rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz'; -const base58 = require('base-x')(R_B58_DICT); +'use strict' +const assert = require('assert') +const crypto = require('crypto') +const R_B58_DICT = 'rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz' +const base58 = require('base-x')(R_B58_DICT) -assert(crypto.getHashes().includes('sha256')); -assert(crypto.getHashes().includes('ripemd160')); +assert(crypto.getHashes().includes('sha256')) +assert(crypto.getHashes().includes('ripemd160')) // Start with a public key. secp256k1 keys should be 33 bytes; // Ed25519 keys should be 32 bytes prefixed with 0xED (a total of 33 bytes). // Ed25519 key: -const pubkey_hex = - 'ED9434799226374926EDA3B54B1B461B4ABF7237962EAE18528FEA67595397FA32'; +const pubkey_hex = 'ED9434799226374926EDA3B54B1B461B4ABF7237962EAE18528FEA67595397FA32' //// secp256k1 key: // const pubkey_hex = // '0303E20EC6B4A39A629815AE02C0A1393B9225E3B890CAE45B59F42FA29BE9668D'; -const pubkey = Buffer.from(pubkey_hex, 'hex'); -assert(pubkey.length == 33); +const pubkey = Buffer.from(pubkey_hex, 'hex') +assert(pubkey.length == 33) // Calculate the RIPEMD160 hash of the SHA-256 hash of the public key // This is the "Account ID" -const pubkey_inner_hash = crypto.createHash('sha256').update(pubkey); -const pubkey_outer_hash = crypto.createHash('ripemd160'); -pubkey_outer_hash.update(pubkey_inner_hash.digest()); -const account_id = pubkey_outer_hash.digest(); +const pubkey_inner_hash = crypto.createHash('sha256').update(pubkey) +const pubkey_outer_hash = crypto.createHash('ripemd160') +pubkey_outer_hash.update(pubkey_inner_hash.digest()) +const account_id = pubkey_outer_hash.digest() // Prefix the Account ID with the type prefix for an XRPL Classic Address, then // calculate a checksum as the first 4 bytes of the SHA-256 of the SHA-256 // of the Account ID -const address_type_prefix = Buffer.from([0x00]); -const payload = Buffer.concat([address_type_prefix, account_id]); -const chksum_hash1 = crypto.createHash('sha256').update(payload).digest(); -const chksum_hash2 = crypto.createHash('sha256').update(chksum_hash1).digest(); -const checksum = chksum_hash2.slice(0,4); +const address_type_prefix = Buffer.from([0x00]) +const payload = Buffer.concat([address_type_prefix, account_id]) +const chksum_hash1 = crypto.createHash('sha256').update(payload).digest() +const chksum_hash2 = crypto.createHash('sha256').update(chksum_hash1).digest() +const checksum = chksum_hash2.slice(0, 4) // Concatenate the address type prefix, the payload, and the checksum. // Base-58 encode the encoded value to get the address. -const dataToEncode = Buffer.concat([payload, checksum]); -const address = base58.encode(dataToEncode); -console.log(address); +const dataToEncode = Buffer.concat([payload, checksum]) +const address = base58.encode(dataToEncode) +console.log(address) // rnBFvgZphmN39GWzUJeUitaP22Fr9be75H (secp256k1 example) // rDTXLQ7ZKZVKz33zJbHjgVShjsBnqMBhmN (Ed25519 example) diff --git a/_code-samples/airgapped-wallet/js/README.md b/_code-samples/airgapped-wallet/js/README.md index 93f4c798f3..9f4f5e584f 100644 --- a/_code-samples/airgapped-wallet/js/README.md +++ b/_code-samples/airgapped-wallet/js/README.md @@ -1,9 +1,10 @@ # Airgapped Wallet + Airgapped describes a state where a device or a system becomes fully disconnected from other devices and systems. It is the maximum protection for a system against unwanted visitors/viruses, this allows any sensitive data like a private key to be stored without worry of it being compromised as long as reasonable security practices are being practiced. This airgapped XRP wallet allows users to sign a Payment transaction in a secure environment without the private key being exposed to a machine connected to the internet. The private key and seed is encrypted by password and stored securely. -*Note*: You should not use this airgapped wallet in production, it should only be used for educational purposes only. +_Note_: You should not use this airgapped wallet in production, it should only be used for educational purposes only. This code sample consists of 2 parts: @@ -13,6 +14,7 @@ This code sample consists of 2 parts: Preferably, `airgapped-wallet.js` should be on a Linux machine while `relay-transaction.js` could be on any operating system. # Security Practices + Strongly note that an airgapped system's security is not determined by its code alone but the security practices that are being followed by an operator. There are channels that can be maliciously used by outside parties to infiltrate an airgapped system and steal sensitive information. @@ -29,7 +31,7 @@ The airgapped machine should have a few rules enforced to close any possible cha ### BlueTooth -- BlueTooth can be maliciously used by neighboring devices to steal data from an airgapped machine. It is recommended to remove or disable the BlueTooth hardware. +- BlueTooth can be maliciously used by neighboring devices to steal data from an airgapped machine. It is recommended to remove or disable the BlueTooth hardware. ### USB @@ -38,23 +40,27 @@ The airgapped machine should have a few rules enforced to close any possible cha Do not reconnect the airgapped machine to a network, even when you need to transfer files! An effective airgapped machine should only serve 1 purpose, which is to store data and never open up a gateway for hackers to abuse and steal data. # Tutorial + For testing purposes, you would need to have 2 machines and 1 phone in hand to scan the QR code. -1. 1st machine would be airgapped, following the security practices written [here](#security-practices). It stores and manages an XRPL Wallet. +1. 1st machine would be airgapped, following the security practices written [here](#security-practices). It stores and manages an XRPL Wallet. 2. 2nd machine would be a normal computer connected to the internet. It relays a signed transaction blob to a rippled node. 3. The phone would be used to scan a QR code, which contains a signed transaction blob. The phone would transmit it to the 2nd machine. The diagram below shows you the process of submitting a transaction to the XRPL: +

    # Setup + - Machine 1 - An airgapped computer (during setup, it must be connected to the internet to download the files) - Machine 2 - A normal computer connected to the internet - Phone - A normal phone with a working camera to scan a QR ## Machine 1 Setup + Since this machine will be airgapped, it is best to use Linux as the Operating System. 1. Clone all the files under the [`airgapped-wallet`](https://github.com/XRPLF/xrpl-dev-portal/tree/master/_code-samples/airgapped-wallet/js) directory @@ -65,24 +71,26 @@ Since this machine will be airgapped, it is best to use Linux as the Operating S 4. Run `node airgapped-wallet.js` -5. Scan the QR code and fund the account using the [testnet faucet](https://test.bithomp.com/faucet/) +5. Scan the QR code and fund the account using the [testnet faucet](https://test.bithomp.com/faucet/) 6. Re-run the script and input '1' to generate a new transaction by following the instructions. 7. Use your phone to scan the QR code, then to send the signed transaction to Machine 2 for submission ## Phone Setup + The phone requires a working camera that is able to scan a QR code and an internet connection for it to be able to transmit the signed transaction blob to Machine 2. Once you have signed a transaction in the airgapped machine, a QR code will be generated which will contain the signed transaction blob. Example: -Scan the QR code using the phone, copy it to the clipboard, and transmit it to Machine 2, which will then be sending it to a rippled node. +Scan the QR code using the phone, copy it to the clipboard, and transmit it to Machine 2, which will then be sending it to a rippled node. You can send a message to yourself using Discord, WhatsApp or even e-mail, then open up the message using Machine 2 to receive the signed transaction blob. ## Machine 2 Setup + This machine will be used to transmit a signed transaction blob from Machine 1, it would require internet access. 1. Clone all the files under the [`airgapped-wallet`](https://github.com/XRPLF/xrpl-dev-portal/tree/master/_code-samples/airgapped-wallet/js) directory diff --git a/_code-samples/airgapped-wallet/js/airgapped-wallet.js b/_code-samples/airgapped-wallet/js/airgapped-wallet.js index 22f8b623c5..3016662ecf 100644 --- a/_code-samples/airgapped-wallet/js/airgapped-wallet.js +++ b/_code-samples/airgapped-wallet/js/airgapped-wallet.js @@ -1,10 +1,10 @@ -const crypto = require("crypto") +const crypto = require('crypto') const fs = require('fs') -const fernet = require("fernet"); -const open = require('open'); +const fernet = require('fernet') +const open = require('open') const path = require('path') const prompt = require('prompt') -const { generateSeed, deriveAddress, deriveKeypair } = require("ripple-keypairs/dist/") +const { generateSeed, deriveAddress, deriveKeypair } = require('ripple-keypairs/dist/') const QRCode = require('qrcode') const xrpl = require('xrpl') @@ -24,17 +24,13 @@ const WALLET_DIR = 'Wallet' * @returns {{address: *, seed: *}} */ createWallet = function () { - const seed = generateSeed() - const {publicKey, privateKey} = deriveKeypair(seed) - const address = deriveAddress(publicKey) + const seed = generateSeed() + const { publicKey, privateKey } = deriveKeypair(seed) + const address = deriveAddress(publicKey) - console.log( - "XRP Wallet Credentials " + - "Wallet Address: " + address + - "Seed: " + seed - ) + console.log('XRP Wallet Credentials ' + 'Wallet Address: ' + address + 'Seed: ' + seed) - return {address, seed} + return { address, seed } } /** @@ -48,176 +44,178 @@ createWallet = function () { * @returns {Promise} */ signTransaction = async function (xrpAmount, destination, ledgerSequence, walletSequence, password) { + const salt = fs.readFileSync(path.join(__dirname, WALLET_DIR, 'salt.txt')).toString() - const salt = fs.readFileSync(path.join(__dirname, WALLET_DIR , 'salt.txt')).toString() + const encodedSeed = fs.readFileSync(path.join(__dirname, WALLET_DIR, 'seed.txt')).toString() - const encodedSeed = fs.readFileSync(path.join(__dirname, WALLET_DIR , 'seed.txt')).toString() + // Hashing salted password using Password-Based Key Derivation Function 2 + const derivedKey = crypto.pbkdf2Sync(password, salt, 1000, 32, 'sha256') + + // Generate a Fernet secret we can use for symmetric encryption + const secret = new fernet.Secret(derivedKey.toString('base64')) + + // Generate decryption token + const token = new fernet.Token({ + secret: secret, + token: encodedSeed, + ttl: 0, + }) + const seed = token.decode() + + const wallet = xrpl.Wallet.fromSeed(seed) + + const paymentTx = { + TransactionType: 'Payment', + Account: wallet.classicAddress, + Amount: xrpl.xrpToDrops(xrpAmount), + Destination: destination, + } + + // Normally we would fetch certain needed values like Fee, + // LastLedgerSequence snd programmatically, like so: + // + // const preparedTx = await client.autofill(paymentTx) + // + // But since this is an airgapped wallet without internet + // connection, we have to do it manually: + // + // paymentTx.Sequence is set in setNextValidSequenceNumber() via sugar/autofill + // paymentTx.LastLedgerSequence is set in setLatestValidatedLedgerSequence() via sugar/autofill + // paymentTx.Fee is set in getFeeXrp() via sugar/getFeeXrp + + paymentTx.Sequence = walletSequence + paymentTx.LastLedgerSequence = ledgerSequence + LEDGER_OFFSET + paymentTx.Fee = FEE + + const signedTx = wallet.sign(paymentTx) + + fs.writeFileSync(path.join(__dirname, WALLET_DIR, 'tx_blob.txt'), signedTx.tx_blob) + QRCode.toFile(path.join(__dirname, WALLET_DIR, 'tx_blob.png'), signedTx.tx_blob) + + open(path.join(__dirname, WALLET_DIR, 'tx_blob.png')) +} + +main = async function () { + if (!fs.existsSync(WALLET_DIR)) { + // Create Wallet directory in case it does not exist yet + fs.mkdirSync(path.join(__dirname, WALLET_DIR)) + } + + if (!fs.existsSync(path.join(__dirname, WALLET_DIR, 'address.txt'))) { + // Generate a new (unfunded) Wallet + const { address, seed } = createWallet() + + prompt.start() + + const { password } = await prompt.get([ + { + name: 'password', + description: 'Creating a brand new Wallet, please enter a new password \n Enter Password:', + type: 'string', + required: true, + }, + ]) + + prompt.stop() + + const salt = crypto.randomBytes(20).toString('hex') + + fs.writeFileSync(path.join(__dirname, WALLET_DIR, 'salt.txt'), salt) // Hashing salted password using Password-Based Key Derivation Function 2 const derivedKey = crypto.pbkdf2Sync(password, salt, 1000, 32, 'sha256') // Generate a Fernet secret we can use for symmetric encryption - const secret = new fernet.Secret(derivedKey.toString('base64')); + const secret = new fernet.Secret(derivedKey.toString('base64')) - // Generate decryption token + // Generate encryption token with secret, time and initialization vector + // In a real-world use case we would have current time and a random IV, + // but for demo purposes being deterministic is just fine const token = new fernet.Token({ - secret: secret, - token: encodedSeed, - ttl: 0 + secret: secret, + time: Date.parse(1), + iv: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], }) - const seed = token.decode(); - const wallet = xrpl.Wallet.fromSeed(seed) + const privateKey = token.encode(seed) - const paymentTx = { - 'TransactionType': 'Payment', - 'Account': wallet.classicAddress, - 'Amount': xrpl.xrpToDrops(xrpAmount), - 'Destination': destination - } + fs.writeFileSync(path.join(__dirname, WALLET_DIR, 'seed.txt'), privateKey) + fs.writeFileSync(path.join(__dirname, WALLET_DIR, 'address.txt'), address) + QRCode.toFile(path.join(__dirname, WALLET_DIR, 'address.png'), address) - // Normally we would fetch certain needed values like Fee, - // LastLedgerSequence snd programmatically, like so: - // - // const preparedTx = await client.autofill(paymentTx) - // - // But since this is an airgapped wallet without internet - // connection, we have to do it manually: - // - // paymentTx.Sequence is set in setNextValidSequenceNumber() via sugar/autofill - // paymentTx.LastLedgerSequence is set in setLatestValidatedLedgerSequence() via sugar/autofill - // paymentTx.Fee is set in getFeeXrp() via sugar/getFeeXrp + console.log( + '' + + 'Finished generating an account.\n' + + 'Wallet Address: ' + + address + + '\n' + + 'Please scan the QR code on your phone and use https://test.bithomp.com/faucet/ to fund the account.\n' + + "After that, you're able to sign transactions and transmit them to Machine 2 (online machine).", + ) - paymentTx.Sequence = walletSequence - paymentTx.LastLedgerSequence = ledgerSequence + LEDGER_OFFSET - paymentTx.Fee = FEE + return + } - const signedTx = wallet.sign(paymentTx) + prompt.start() - fs.writeFileSync(path.join(__dirname, WALLET_DIR , 'tx_blob.txt'), signedTx.tx_blob) - QRCode.toFile(path.join(__dirname, WALLET_DIR , 'tx_blob.png'), signedTx.tx_blob) + console.log('' + '1. Transact XRP.\n' + '2. Generate an XRP wallet (read only)\n' + '3. Showcase XRP Wallet Address (QR Code)\n' + '4. Exit') - open(path.join(__dirname, WALLET_DIR , 'tx_blob.png')) -} + const { menu } = await prompt.get([ + { + name: 'menu', + description: 'Enter Index:', + type: 'integer', + required: true, + }, + ]) -main = async function () { - - if (!fs.existsSync(WALLET_DIR )) { - // Create Wallet directory in case it does not exist yet - fs.mkdirSync(path.join(__dirname, WALLET_DIR )); - } - - if (!fs.existsSync(path.join(__dirname, WALLET_DIR , 'address.txt'))) { - // Generate a new (unfunded) Wallet - const {address, seed} = createWallet() - - prompt.start(); - - const {password} = await prompt.get([{ - name: 'password', - description: 'Creating a brand new Wallet, please enter a new password \n Enter Password:', - type: 'string', - required: true - }]) - - prompt.stop(); - - const salt = crypto.randomBytes(20).toString('hex') - - fs.writeFileSync(path.join(__dirname, WALLET_DIR , 'salt.txt'), salt); - - // Hashing salted password using Password-Based Key Derivation Function 2 - const derivedKey = crypto.pbkdf2Sync(password, salt, 1000, 32, 'sha256') - - // Generate a Fernet secret we can use for symmetric encryption - const secret = new fernet.Secret(derivedKey.toString('base64')); - - // Generate encryption token with secret, time and initialization vector - // In a real-world use case we would have current time and a random IV, - // but for demo purposes being deterministic is just fine - const token = new fernet.Token({ - secret: secret, - time: Date.parse(1), - iv: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] - }) - - const privateKey = token.encode(seed) - - fs.writeFileSync(path.join(__dirname, WALLET_DIR , 'seed.txt'), privateKey) - fs.writeFileSync(path.join(__dirname, WALLET_DIR , 'address.txt'), address) - QRCode.toFile(path.join(__dirname, WALLET_DIR , 'address.png'), address) - - console.log('' - + 'Finished generating an account.\n' - + 'Wallet Address: ' + address + '\n' - + 'Please scan the QR code on your phone and use https://test.bithomp.com/faucet/ to fund the account.\n' - + 'After that, you\'re able to sign transactions and transmit them to Machine 2 (online machine).') - - return - } - - prompt.start(); - - console.log('' - + '1. Transact XRP.\n' - + '2. Generate an XRP wallet (read only)\n' - + '3. Showcase XRP Wallet Address (QR Code)\n' - + '4. Exit') - - const {menu} = await prompt.get([{ - name: 'menu', - description: 'Enter Index:', + if (menu === 1) { + const { password, xrpAmount, destinationAddress, accountSequence, ledgerSequence } = await prompt.get([ + { + name: 'password', + description: 'Enter Password', + type: 'string', + required: true, + }, + { + name: 'xrpAmount', + description: 'Enter XRP To Send', + type: 'number', + required: true, + }, + { + name: 'destinationAddress', + description: 'If you just want to try it out, you can use the faucet account rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe. Enter Destination', + type: 'string', + required: true, + }, + { + name: 'accountSequence', + description: "Look up the 'Next Sequence' for the account using test.bithomp.com and enter it", type: 'integer', - required: true - }]) + required: true, + }, + { + name: 'ledgerSequence', + description: 'Look up the latest ledger sequence on testnet.xrpl.org and enter it below!', + type: 'integer', + required: true, + }, + ]) - if (menu === 1) { - const { - password, - xrpAmount, - destinationAddress, - accountSequence, - ledgerSequence - } = await prompt.get([{ - name: 'password', - description: 'Enter Password', - type: 'string', - required: true - }, { - name: 'xrpAmount', - description: 'Enter XRP To Send', - type: 'number', - required: true - }, { - name: 'destinationAddress', - description: 'If you just want to try it out, you can use the faucet account rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe. Enter Destination', - type: 'string', - required: true - }, { - name: 'accountSequence', - description: 'Look up the \'Next Sequence\' for the account using test.bithomp.com and enter it', - type: 'integer', - required: true - }, { - name: 'ledgerSequence', - description: 'Look up the latest ledger sequence on testnet.xrpl.org and enter it below!', - type: 'integer', - required: true - }]) + await signTransaction(xrpAmount, destinationAddress, ledgerSequence, accountSequence, password) + } else if (menu === 2) { + const { address, seed } = createWallet() + console.log('Generated readonly Wallet (address: ' + address + ' seed: ' + seed + ')') + } else if (menu === 3) { + const address = fs.readFileSync(path.join(__dirname, WALLET_DIR, 'address.txt')).toString() + console.log('Wallet Address: ' + address) + open(path.join(__dirname, WALLET_DIR, 'address.png')) + } else { + return + } - await signTransaction(xrpAmount, destinationAddress, ledgerSequence, accountSequence, password) - } else if (menu === 2) { - const {address, seed} = createWallet() - console.log('Generated readonly Wallet (address: ' + address + ' seed: ' + seed + ')') - } else if (menu === 3) { - const address = fs.readFileSync(path.join(__dirname, WALLET_DIR , 'address.txt')).toString() - console.log('Wallet Address: ' + address) - open(path.join(__dirname, WALLET_DIR , 'address.png')) - } else { - return - } - - prompt.stop(); + prompt.stop() } -main() \ No newline at end of file +main() diff --git a/_code-samples/airgapped-wallet/js/relay-transaction.js b/_code-samples/airgapped-wallet/js/relay-transaction.js index 4f5cfe3f1c..3fcce8af37 100644 --- a/_code-samples/airgapped-wallet/js/relay-transaction.js +++ b/_code-samples/airgapped-wallet/js/relay-transaction.js @@ -2,36 +2,38 @@ const prompt = require('prompt') const xrpl = require('xrpl') sendTransaction = async function (tx_blob) { - const client = new xrpl.Client('wss://s.altnet.rippletest.net:51233') - await client.connect() + const client = new xrpl.Client('wss://s.altnet.rippletest.net:51233') + await client.connect() - console.log("Connected to node") + console.log('Connected to node') - const tx = await client.submitAndWait(tx_blob) + const tx = await client.submitAndWait(tx_blob) - const txHash = tx.result.hash - const txDestination = tx.result.Destination - const txXrpAmount = xrpl.dropsToXrp(tx.result.Amount) - const txAccount = tx.result.Account + const txHash = tx.result.hash + const txDestination = tx.result.Destination + const txXrpAmount = xrpl.dropsToXrp(tx.result.Amount) + const txAccount = tx.result.Account - console.log("XRPL Explorer: https://testnet.xrpl.org/transactions/" + txHash) - console.log("Transaction Hash: " + txHash) - console.log("Transaction Destination: " + txDestination) - console.log("XRP sent: " + txXrpAmount) - console.log("Wallet used: " + txAccount) + console.log('XRPL Explorer: https://testnet.xrpl.org/transactions/' + txHash) + console.log('Transaction Hash: ' + txHash) + console.log('Transaction Destination: ' + txDestination) + console.log('XRP sent: ' + txXrpAmount) + console.log('Wallet used: ' + txAccount) - await client.disconnect() + await client.disconnect() } main = async function () { - const {tx_blob} = await prompt.get([{ - name: 'tx_blob', - description: 'Set tx to \'tx_blob\' received from scanning the QR code generated by the airgapped wallet', - type: 'string', - required: true - }]) + const { tx_blob } = await prompt.get([ + { + name: 'tx_blob', + description: "Set tx to 'tx_blob' received from scanning the QR code generated by the airgapped wallet", + type: 'string', + required: true, + }, + ]) - await sendTransaction(tx_blob) + await sendTransaction(tx_blob) } -main() \ No newline at end of file +main() diff --git a/_code-samples/airgapped-wallet/py/README.md b/_code-samples/airgapped-wallet/py/README.md index 524bb17d54..a4f0acf3fa 100644 --- a/_code-samples/airgapped-wallet/py/README.md +++ b/_code-samples/airgapped-wallet/py/README.md @@ -1,9 +1,10 @@ # Airgapped Wallet + Airgapped describes a state where a device or a system becomes fully disconnected from other devices and systems. It is the maximum protection for a system against unwanted visitors/viruses, this allows any sensitive data like a private key to be stored without worry of it being compromised as long as reasonable security practices are being practiced. This airgapped XRP wallet allows users to sign a Payment transaction in a secure environment without the private key being exposed to a machine connected to the internet. The private key and seed is encrypted by password and stored securely. -*Note*: You should not use this airgapped wallet in production, it should only be used for educational purposes only. +_Note_: You should not use this airgapped wallet in production, it should only be used for educational purposes only. This code sample consists of 2 parts: @@ -13,6 +14,7 @@ This code sample consists of 2 parts: Preferably, `airgapped-wallet.py` should be on a Linux machine while `relay-transaction.py` could be on any operating system. # Security Practices + Strongly note that an airgapped system's security is not determined by its code alone but the security practices that are being followed by an operator. There are channels that can be maliciously used by outside parties to infiltrate an airgapped system and steal sensitive information. @@ -22,13 +24,14 @@ There are other ways malware could interact across airgapped networks, but they This is why it is also recommended to encrypt sensitive information being stored in an airgapped machine. The airgapped machine should have a few rules enforced to close any possible channels getting abused to leak information outside of the machine: + ### Wifi - Disable any wireless networking hardware on the airgapped machine. For example, if you have a desktop PC with a Wifi card, open the PC and remove the Wifi hardware. If you cannot do that, you could go to the system’s BIOS or UEFI firmware and disable the Wifi hardware. ### BlueTooth -- BlueTooth can be maliciously used by neighboring devices to steal data from an airgapped machine. It is recommended to remove or disable the BlueTooth hardware. +- BlueTooth can be maliciously used by neighboring devices to steal data from an airgapped machine. It is recommended to remove or disable the BlueTooth hardware. ### USB @@ -37,37 +40,44 @@ The airgapped machine should have a few rules enforced to close any possible cha Do not reconnect the airgapped machine to a network, even when you need to transfer files! An effective airgapped machine should only serve 1 purpose, which is to store data and never open up a gateway for hackers to abuse and steal data. # Tutorial + For testing purposes, you would need to have 2 machines and 1 phone in hand to scan the QR code. -1. 1st machine would be airgapped, following the security practices written [here](#security-practices). It stores and manages an XRPL Wallet. +1. 1st machine would be airgapped, following the security practices written [here](#security-practices). It stores and manages an XRPL Wallet. 2. 2nd machine would be a normal computer connected to the internet. It relays a signed transaction blob to a rippled node. 3. The phone would be used to scan a QR code, which contains a signed transaction blob. The phone would transmit it to the 2nd machine. The diagram below shows you the process of submitting a transaction to the XRPL: +

    # Setup + - Machine 1 - An airgapped computer (during setup, it must be connected to the internet to download the files) - Machine 2 - A normal computer connected to the internet - Phone - A normal phone with a working camera to scan a QR ## Machine 1 Setup + Since this machine will be airgapped, it is best to use Linux as the Operating System. 1. Install Python 3.8: **Linux Command Line**: + ``` sudo apt-get update sudo apt-get install python3.8 python3-pip ``` + **Website**: https://www.python.org/downloads/source/ 2. Clone all the files under the [`airgapped-wallet`](https://github.com/XRPLF/xrpl-dev-portal/tree/master/_code-samples/airgapped-wallet/py) directory 3. Import all the modules required by running: + ``` pip install -r requirements.txt ``` @@ -76,27 +86,31 @@ pip install -r requirements.txt 5. Run `airgapped-wallet.py` -6. Scan the QR code and fund the account using the [testnet faucet](https://test.bithomp.com/faucet/) +6. Scan the QR code and fund the account using the [testnet faucet](https://test.bithomp.com/faucet/) 7. Re-run the script and input '1' to generate a new transaction by following the instructions. 8. Use your phone to scan the QR code, then to send the signed transaction to Machine 2 for submission ## Machine 2 Setup + This machine will be used to transmit a signed transaction blob from Machine 1, it would require internet access. 1. Install Python 3.8 **Linux Command Line**: + ``` sudo apt-get update sudo apt-get install python3.8 python3-pip ``` + **Website**: https://www.python.org/downloads/source/ 2. Clone all the files under the [`airgapped-wallet`](https://github.com/XRPLF/xrpl-dev-portal/tree/master/_code-samples/airgapped-wallet/py) directory 3. Import all the modules required by running: + ``` pip install -r requirements.txt ``` @@ -104,6 +118,7 @@ pip install -r requirements.txt 4. Run `relay-transaction.py` with one argument, the signed transaction blob to submit. ## Phone Setup + The phone requires a working camera that is able to scan a QR code and an internet connection for it to be able to transmit the signed transaction blob to Machine 2. Once you have signed a transaction in the airgapped machine, a QR code will be generated which will contain the signed transaction blob. Example: diff --git a/_code-samples/amm-clob/README.md b/_code-samples/amm-clob/README.md index 7abd5a44e8..c5dfb20888 100644 --- a/_code-samples/amm-clob/README.md +++ b/_code-samples/amm-clob/README.md @@ -1,3 +1,3 @@ # AMM CLOB Demo -Simulate how offers interact with each other and AMMs on the XRPL DEX. \ No newline at end of file +Simulate how offers interact with each other and AMMs on the XRPL DEX. diff --git a/_code-samples/amm-clob/js/amm-clob.js b/_code-samples/amm-clob/js/amm-clob.js index e39b249663..4d6ed45808 100644 --- a/_code-samples/amm-clob/js/amm-clob.js +++ b/_code-samples/amm-clob/js/amm-clob.js @@ -1,9 +1,9 @@ -if (typeof module !== "undefined") { - // Use var here because const/let are block-scoped to the if statement. - var xrpl = require('xrpl') - } +if (typeof module !== 'undefined') { + // Use var here because const/let are block-scoped to the if statement. + var xrpl = require('xrpl') +} -const client = new xrpl.Client("wss://s.devnet.rippletest.net:51233"); +const client = new xrpl.Client('wss://s.devnet.rippletest.net:51233') client.connect() let aliceWallet = null @@ -14,290 +14,313 @@ let aliceWalletBalance = null let bobWalletBalance = null // Add an event listener to the startButton -document.addEventListener("DOMContentLoaded", function() { - startButton.addEventListener("click", start) - aCreateOfferButton.addEventListener("click", aliceCreateOffer) - bCreateOfferButton.addEventListener("click", bobCreateOffer) -}); +document.addEventListener('DOMContentLoaded', function () { + startButton.addEventListener('click', start) + aCreateOfferButton.addEventListener('click', aliceCreateOffer) + bCreateOfferButton.addEventListener('click', bobCreateOffer) +}) // Function to get Alice and Bob balances async function getBalances() { - aliceWalletBalance = await client.getBalances(aliceWallet.address) - bobWalletBalance = await client.getBalances(bobWallet.address) + aliceWalletBalance = await client.getBalances(aliceWallet.address) + bobWalletBalance = await client.getBalances(bobWallet.address) - aliceWalletField.value = `${aliceWalletBalance[0].value} XRP / ${aliceWalletBalance[1].value} USD` - bobWalletField.value = `${bobWalletBalance[0].value} XRP / ${bobWalletBalance[1].value} USD` + aliceWalletField.value = `${aliceWalletBalance[0].value} XRP / ${aliceWalletBalance[1].value} USD` + bobWalletField.value = `${bobWalletBalance[0].value} XRP / ${bobWalletBalance[1].value} USD` } // Function to update AMM async function ammInfoUpdate() { - const ammInfo = await client.request({ - "command": "amm_info", - "asset": { - "currency": "XRP" - }, - "asset2": { - "currency": "USD", - "issuer": issuerWallet.address - }, - "ledger_index": "validated" - }) + const ammInfo = await client.request({ + command: 'amm_info', + asset: { + currency: 'XRP', + }, + asset2: { + currency: 'USD', + issuer: issuerWallet.address, + }, + ledger_index: 'validated', + }) - ammInfoField.value = JSON.stringify(ammInfo.result.amm, null, 2) + ammInfoField.value = JSON.stringify(ammInfo.result.amm, null, 2) } // Function to update Alice and Bobs offers async function updateOffers() { - const aliceOffers = await client.request({ - "command": "account_offers", - "account": aliceWallet.address - }) + const aliceOffers = await client.request({ + command: 'account_offers', + account: aliceWallet.address, + }) - if ( aliceOffers.result.offers == "" ) { - aliceOffersField.value = `No offers.` - } else { - aliceOffersField.value = `${JSON.stringify(aliceOffers.result.offers, null, 2)}` - } + if (aliceOffers.result.offers == '') { + aliceOffersField.value = `No offers.` + } else { + aliceOffersField.value = `${JSON.stringify(aliceOffers.result.offers, null, 2)}` + } - const bobOffers = await client.request({ - "command": "account_offers", - "account": bobWallet.address - }) - - if ( bobOffers.result.offers == "" ) { - bobOffersField.value = `No offers.` - } else { - bobOffersField.value = `${JSON.stringify(bobOffers.result.offers, null, 2)}` - } + const bobOffers = await client.request({ + command: 'account_offers', + account: bobWallet.address, + }) + + if (bobOffers.result.offers == '') { + bobOffersField.value = `No offers.` + } else { + bobOffersField.value = `${JSON.stringify(bobOffers.result.offers, null, 2)}` + } } // Function to set up test harness async function start() { - - // Fund wallets and wait for each to complete - startButton.textContent = "Loading wallets..."; - - const issuerStart = client.fundWallet() - const ammStart = client.fundWallet() - const aliceStart = client.fundWallet() - const bobStart = client.fundWallet() + // Fund wallets and wait for each to complete + startButton.textContent = 'Loading wallets...' - const [issuerResult, ammResult, aliceResult, bobResult] = await Promise.all([issuerStart, ammStart, aliceStart, bobStart]) + const issuerStart = client.fundWallet() + const ammStart = client.fundWallet() + const aliceStart = client.fundWallet() + const bobStart = client.fundWallet() - issuerWallet = issuerResult.wallet - const ammWallet = ammResult.wallet - aliceWallet = aliceResult.wallet - bobWallet = bobResult.wallet + const [issuerResult, ammResult, aliceResult, bobResult] = await Promise.all([issuerStart, ammStart, aliceStart, bobStart]) - // Set up account settings - startButton.textContent = "Setting up account settings..."; + issuerWallet = issuerResult.wallet + const ammWallet = ammResult.wallet + aliceWallet = aliceResult.wallet + bobWallet = bobResult.wallet - const issuerSetRipple = client.submitAndWait({ - "TransactionType": "AccountSet", - "Account": issuerWallet.address, - "SetFlag": xrpl.AccountSetAsfFlags.asfDefaultRipple - }, {autofill: true, wallet: issuerWallet}) + // Set up account settings + startButton.textContent = 'Setting up account settings...' - const ammSetTrust = client.submitAndWait({ - "TransactionType": "TrustSet", - "Account": ammWallet.address, - "LimitAmount": { - "currency": "USD", - "issuer": issuerWallet.address, - "value": "10000" - } - }, {autofill: true, wallet: ammWallet}) + const issuerSetRipple = client.submitAndWait( + { + TransactionType: 'AccountSet', + Account: issuerWallet.address, + SetFlag: xrpl.AccountSetAsfFlags.asfDefaultRipple, + }, + { autofill: true, wallet: issuerWallet }, + ) - const aliceSetTrust = client.submitAndWait({ - "TransactionType": "TrustSet", - "Account": aliceWallet.address, - "LimitAmount": { - "currency": "USD", - "issuer": issuerWallet.address, - "value": "10000" - } - }, {autofill: true, wallet: aliceWallet}) + const ammSetTrust = client.submitAndWait( + { + TransactionType: 'TrustSet', + Account: ammWallet.address, + LimitAmount: { + currency: 'USD', + issuer: issuerWallet.address, + value: '10000', + }, + }, + { autofill: true, wallet: ammWallet }, + ) - const bobSetTrust = client.submitAndWait({ - "TransactionType": "TrustSet", - "Account": bobWallet.address, - "LimitAmount": { - "currency": "USD", - "issuer": issuerWallet.address, - "value": "10000" - } - }, {autofill: true, wallet: bobWallet}) + const aliceSetTrust = client.submitAndWait( + { + TransactionType: 'TrustSet', + Account: aliceWallet.address, + LimitAmount: { + currency: 'USD', + issuer: issuerWallet.address, + value: '10000', + }, + }, + { autofill: true, wallet: aliceWallet }, + ) - await Promise.all([issuerSetRipple, ammSetTrust, aliceSetTrust, bobSetTrust]) + const bobSetTrust = client.submitAndWait( + { + TransactionType: 'TrustSet', + Account: bobWallet.address, + LimitAmount: { + currency: 'USD', + issuer: issuerWallet.address, + value: '10000', + }, + }, + { autofill: true, wallet: bobWallet }, + ) - // Send USD token - startButton.textContent = "Sending USD..."; + await Promise.all([issuerSetRipple, ammSetTrust, aliceSetTrust, bobSetTrust]) - const issuerAccountInfo = await client.request({ - "command": "account_info", - "account": issuerWallet.address - }) + // Send USD token + startButton.textContent = 'Sending USD...' - let sequence = issuerAccountInfo.result.account_data.Sequence + const issuerAccountInfo = await client.request({ + command: 'account_info', + account: issuerWallet.address, + }) - const ammUSD = client.submitAndWait({ - "TransactionType": "Payment", - "Account": issuerWallet.address, - "Amount": { - "currency": "USD", - "value": "1000", - "issuer": issuerWallet.address - }, - "Destination": ammWallet.address, - "Sequence": sequence ++ - }, {autofill: true, wallet: issuerWallet}) + let sequence = issuerAccountInfo.result.account_data.Sequence - const aliceUSD = client.submitAndWait({ - "TransactionType": "Payment", - "Account": issuerWallet.address, - "Amount": { - "currency": "USD", - "value": "1000", - "issuer": issuerWallet.address - }, - "Destination": aliceWallet.address, - "Sequence": sequence ++ - }, {autofill: true, wallet: issuerWallet}) + const ammUSD = client.submitAndWait( + { + TransactionType: 'Payment', + Account: issuerWallet.address, + Amount: { + currency: 'USD', + value: '1000', + issuer: issuerWallet.address, + }, + Destination: ammWallet.address, + Sequence: sequence++, + }, + { autofill: true, wallet: issuerWallet }, + ) - const bobUSD = client.submitAndWait({ - "TransactionType": "Payment", - "Account": issuerWallet.address, - "Amount": { - "currency": "USD", - "value": "1000", - "issuer": issuerWallet.address - }, - "Destination": bobWallet.address, - "Sequence": sequence ++ - }, {autofill: true, wallet: issuerWallet}) + const aliceUSD = client.submitAndWait( + { + TransactionType: 'Payment', + Account: issuerWallet.address, + Amount: { + currency: 'USD', + value: '1000', + issuer: issuerWallet.address, + }, + Destination: aliceWallet.address, + Sequence: sequence++, + }, + { autofill: true, wallet: issuerWallet }, + ) - await Promise.all([ammUSD, aliceUSD, bobUSD]) + const bobUSD = client.submitAndWait( + { + TransactionType: 'Payment', + Account: issuerWallet.address, + Amount: { + currency: 'USD', + value: '1000', + issuer: issuerWallet.address, + }, + Destination: bobWallet.address, + Sequence: sequence++, + }, + { autofill: true, wallet: issuerWallet }, + ) - // Update Alice and Bob's XRP and USD balances + await Promise.all([ammUSD, aliceUSD, bobUSD]) - getBalances() + // Update Alice and Bob's XRP and USD balances - // Set up AMM - startButton.textContent = "Creating AMM..."; + getBalances() - await client.submitAndWait({ - "TransactionType": "AMMCreate", - "Account": ammWallet.address, - "Amount": "50000000", // XRP as drops - "Amount2": { - "currency": "USD", - "issuer": issuerWallet.address, - "value": "500" - }, - "TradingFee": 500 // 0.5% - }, {autofill: true, wallet: ammWallet}) + // Set up AMM + startButton.textContent = 'Creating AMM...' - // Update AMM - ammInfoUpdate() + await client.submitAndWait( + { + TransactionType: 'AMMCreate', + Account: ammWallet.address, + Amount: '50000000', // XRP as drops + Amount2: { + currency: 'USD', + issuer: issuerWallet.address, + value: '500', + }, + TradingFee: 500, // 0.5% + }, + { autofill: true, wallet: ammWallet }, + ) - startButton.textContent = "Ready (Click to Restart)"; + // Update AMM + ammInfoUpdate() + startButton.textContent = 'Ready (Click to Restart)' } - // Submit Alice Offers async function aliceCreateOffer() { + aCreateOfferButton.textContent = 'Creating Offer...' - aCreateOfferButton.textContent = "Creating Offer..." + try { + let aliceTakerGets = null + let aliceTakerPays = null - try { - let aliceTakerGets = null - let aliceTakerPays = null - - if ( aliceTakerGetsCurrency.value == 'XRP' ) { - aliceTakerGets = xrpl.xrpToDrops(aliceTakerGetsAmount.value) - } else { - aliceTakerGets = { - "currency": "USD", - "issuer": issuerWallet.address, - "value": aliceTakerGetsAmount.value - } - } - - if ( aliceTakerPaysCurrency.value == 'XRP' ) { - aliceTakerPays = xrpl.xrpToDrops(aliceTakerPaysAmount.value) - } else { - aliceTakerPays = { - "currency": "USD", - "issuer": issuerWallet.address, - "value": aliceTakerPaysAmount.value - } - } - - await client.submitAndWait({ - "TransactionType": "OfferCreate", - "Account": aliceWallet.address, - "TakerGets": aliceTakerGets, - "TakerPays": aliceTakerPays - }, {autofill: true, wallet: aliceWallet}) - - updateOffers() - getBalances() - ammInfoUpdate() - - } catch (error) { - aliceOffersField.value = `${error.message}` + if (aliceTakerGetsCurrency.value == 'XRP') { + aliceTakerGets = xrpl.xrpToDrops(aliceTakerGetsAmount.value) + } else { + aliceTakerGets = { + currency: 'USD', + issuer: issuerWallet.address, + value: aliceTakerGetsAmount.value, + } } - aCreateOfferButton.textContent = "Create Another Offer" + if (aliceTakerPaysCurrency.value == 'XRP') { + aliceTakerPays = xrpl.xrpToDrops(aliceTakerPaysAmount.value) + } else { + aliceTakerPays = { + currency: 'USD', + issuer: issuerWallet.address, + value: aliceTakerPaysAmount.value, + } + } + + await client.submitAndWait( + { + TransactionType: 'OfferCreate', + Account: aliceWallet.address, + TakerGets: aliceTakerGets, + TakerPays: aliceTakerPays, + }, + { autofill: true, wallet: aliceWallet }, + ) + + updateOffers() + getBalances() + ammInfoUpdate() + } catch (error) { + aliceOffersField.value = `${error.message}` + } + + aCreateOfferButton.textContent = 'Create Another Offer' } // Submit Bob Offers async function bobCreateOffer() { + bCreateOfferButton.textContent = 'Creating Offer...' - bCreateOfferButton.textContent = "Creating Offer..." + try { + let bobTakerGets = null + let bobTakerPays = null - try { - let bobTakerGets = null - let bobTakerPays = null - - if ( bobTakerGetsCurrency.value == 'XRP' ) { - bobTakerGets = xrpl.xrpToDrops(bobTakerGetsAmount.value) - } else { - bobTakerGets = { - "currency": "USD", - "issuer": issuerWallet.address, - "value": bobTakerGetsAmount.value - } - } - - if ( bobTakerPaysCurrency.value == 'XRP' ) { - bobTakerPays = xrpl.xrpToDrops(bobTakerPaysAmount.value) - } else { - bobTakerPays = { - "currency": "USD", - "issuer": issuerWallet.address, - "value": bobTakerPaysAmount.value - } - } - - await client.submitAndWait({ - "TransactionType": "OfferCreate", - "Account": bobWallet.address, - "TakerGets": bobTakerGets, - "TakerPays": bobTakerPays - }, {autofill: true, wallet: bobWallet}) - - updateOffers() - getBalances() - ammInfoUpdate() - - } catch (error) { - bobOffersField.value = `${error.message}` + if (bobTakerGetsCurrency.value == 'XRP') { + bobTakerGets = xrpl.xrpToDrops(bobTakerGetsAmount.value) + } else { + bobTakerGets = { + currency: 'USD', + issuer: issuerWallet.address, + value: bobTakerGetsAmount.value, + } } - bCreateOfferButton.textContent = "Create Another Offer" -} \ No newline at end of file + if (bobTakerPaysCurrency.value == 'XRP') { + bobTakerPays = xrpl.xrpToDrops(bobTakerPaysAmount.value) + } else { + bobTakerPays = { + currency: 'USD', + issuer: issuerWallet.address, + value: bobTakerPaysAmount.value, + } + } + + await client.submitAndWait( + { + TransactionType: 'OfferCreate', + Account: bobWallet.address, + TakerGets: bobTakerGets, + TakerPays: bobTakerPays, + }, + { autofill: true, wallet: bobWallet }, + ) + + updateOffers() + getBalances() + ammInfoUpdate() + } catch (error) { + bobOffersField.value = `${error.message}` + } + + bCreateOfferButton.textContent = 'Create Another Offer' +} diff --git a/_code-samples/amm-clob/js/demo.html b/_code-samples/amm-clob/js/demo.html index 102b37d039..3860b1bdb7 100644 --- a/_code-samples/amm-clob/js/demo.html +++ b/_code-samples/amm-clob/js/demo.html @@ -6,36 +6,40 @@
    -

    XRP/USD AMM

    - +

    XRP/USD AMM

    +
    -
    +

    Alice's Wallet

    -
    -
    -
    @@ -43,21 +47,25 @@

    Bob's Wallet

    -
    -
    -
    -
    \ No newline at end of file +
    diff --git a/_code-samples/auction-slot/js/amm-formulas.js b/_code-samples/auction-slot/js/amm-formulas.js index 82c89923d0..65c2da946b 100644 --- a/_code-samples/auction-slot/js/amm-formulas.js +++ b/_code-samples/auction-slot/js/amm-formulas.js @@ -7,7 +7,7 @@ const BigNumber = require('bignumber.js') * @returns BigNumber (1 - fee) as a decimal */ function feeMult(tFee) { - return BigNumber(1).minus( feeDecimal(tFee) ) + return BigNumber(1).minus(feeDecimal(tFee)) } /* Same as feeMult, but with half the trading fee. Single-asset deposits and @@ -18,7 +18,7 @@ function feeMult(tFee) { * @returns BigNumber (1 - (fee/2)) as a decimal */ function feeMultHalf(tFee) { - return BigNumber(1).minus( feeDecimal(tFee).dividedBy(2) ) + return BigNumber(1).minus(feeDecimal(tFee).dividedBy(2)) } /* Convert a trading fee to a decimal BigNumber value, @@ -28,43 +28,38 @@ function feeMultHalf(tFee) { * @returns BigNumber(fee) as a decimal */ function feeDecimal(tFee) { - const AUCTION_SLOT_FEE_SCALE_FACTOR = 100000 - return BigNumber(tFee).dividedBy(AUCTION_SLOT_FEE_SCALE_FACTOR) + const AUCTION_SLOT_FEE_SCALE_FACTOR = 100000 + return BigNumber(tFee).dividedBy(AUCTION_SLOT_FEE_SCALE_FACTOR) } -/* Implement the AMM SwapOut formula, as defined in XLS-30 section 2.4 AMM - * Swap, formula 10. The asset weights WA/WB are currently always 1/1 so +/* Implement the AMM SwapOut formula, as defined in XLS-30 section 2.4 AMM + * Swap, formula 10. The asset weights WA/WB are currently always 1/1 so * they're canceled out. * C++ source: https://github.com/XRPLF/rippled/blob/2d1854f354ff8bb2b5671fd51252c5acd837c433/src/ripple/app/misc/AMMHelpers.h#L253-L258 * @param asset_out_bn BigNumber - The target amount to receive from the AMM. - * @param pool_in_bn BigNumber - The amount of the input asset in the AMM's + * @param pool_in_bn BigNumber - The amount of the input asset in the AMM's * pool before the swap. * @param pool_out_bn BigNumber - The amount of the output asset in the AMM's * pool before the swap. - * @param trading_fee int - The trading fee as an integer {0, 1000} where 1000 + * @param trading_fee int - The trading fee as an integer {0, 1000} where 1000 * represents a 1% fee. - * @returns BigNumber - The amount of the input asset that must be swapped in + * @returns BigNumber - The amount of the input asset that must be swapped in * to receive the target output amount. Unrounded, because - * the number of decimals depends on if this is drops of + * the number of decimals depends on if this is drops of * XRP or a decimal amount of a token; since this is a - * theoretical input to the pool, it should be rounded + * theoretical input to the pool, it should be rounded * up (ceiling) to preserve the pool's constant product. */ function swapOut(asset_out_bn, pool_in_bn, pool_out_bn, trading_fee) { - return ( ( pool_in_bn.multipliedBy(pool_out_bn) ).dividedBy( - pool_out_bn.minus(asset_out_bn) - ).minus(pool_in_bn) - ).dividedBy(feeMult(trading_fee)) + return pool_in_bn.multipliedBy(pool_out_bn).dividedBy(pool_out_bn.minus(asset_out_bn)).minus(pool_in_bn).dividedBy(feeMult(trading_fee)) } /* Compute the quadratic formula. Helper function for ammAssetIn. * Params and return value are BigNumber instances. */ -function solveQuadraticEq(a,b,c) { - const b2minus4ac = b.multipliedBy(b).minus( - a.multipliedBy(c).multipliedBy(4) - ) - return ( b.negated().plus(b2minus4ac.sqrt()) ).dividedBy(a.multipliedBy(2)) +function solveQuadraticEq(a, b, c) { + const b2minus4ac = b.multipliedBy(b).minus(a.multipliedBy(c).multipliedBy(4)) + return b.negated().plus(b2minus4ac.sqrt()).dividedBy(a.multipliedBy(2)) } /* Implement the AMM single-asset deposit formula to calculate how much to @@ -77,87 +72,78 @@ function solveQuadraticEq(a,b,c) { * represents a 1% fee. */ function ammAssetIn(pool_in, lpt_balance, desired_lpt, trading_fee) { - // convert inputs to BigNumber - const lpTokens = BigNumber(desired_lpt) - const lptAMMBalance = BigNumber(lpt_balance) - const asset1Balance = BigNumber(pool_in) + // convert inputs to BigNumber + const lpTokens = BigNumber(desired_lpt) + const lptAMMBalance = BigNumber(lpt_balance) + const asset1Balance = BigNumber(pool_in) - const f1 = feeMult(trading_fee) - const f2 = feeMultHalf(trading_fee).dividedBy(f1) - const t1 = lpTokens.dividedBy(lptAMMBalance) - const t2 = t1.plus(1) - const d = f2.minus( t1.dividedBy(t2) ) - const a = BigNumber(1).dividedBy( t2.multipliedBy(t2)) - const b = BigNumber(2).multipliedBy(d).dividedBy(t2).minus( - BigNumber(1).dividedBy(f1) - ) - const c = d.multipliedBy(d).minus( f2.multipliedBy(f2) ) - return asset1Balance.multipliedBy(solveQuadraticEq(a,b,c)) + const f1 = feeMult(trading_fee) + const f2 = feeMultHalf(trading_fee).dividedBy(f1) + const t1 = lpTokens.dividedBy(lptAMMBalance) + const t2 = t1.plus(1) + const d = f2.minus(t1.dividedBy(t2)) + const a = BigNumber(1).dividedBy(t2.multipliedBy(t2)) + const b = BigNumber(2).multipliedBy(d).dividedBy(t2).minus(BigNumber(1).dividedBy(f1)) + const c = d.multipliedBy(d).minus(f2.multipliedBy(f2)) + return asset1Balance.multipliedBy(solveQuadraticEq(a, b, c)) } /* Calculate how much to deposit, in terms of LP Tokens out, to be able to win - * the auction slot. This is based on the slot pricing algorithm defined in - * XLS-30 section 4.1.1, but factors in the increase in the minimum bid as a + * the auction slot. This is based on the slot pricing algorithm defined in + * XLS-30 section 4.1.1, but factors in the increase in the minimum bid as a * result of having new LP Tokens issued to you from your deposit. */ function auctionDeposit(old_bid, time_interval, trading_fee, lpt_balance) { - const tfee_decimal = feeDecimal(trading_fee) - const lptokens = BigNumber(lpt_balance) - const b = BigNumber(old_bid) - let outbidAmount = BigNumber(0) // This is the case if time_interval >= 20 - if (time_interval == 0) { - outbidAmount = b.multipliedBy("1.05") - } else if (time_interval <= 19) { - const t60 = BigNumber(time_interval).multipliedBy("0.05").exponentiatedBy(60) - outbidAmount = b.multipliedBy("1.05").multipliedBy(BigNumber(1).minus(t60)) - } + const tfee_decimal = feeDecimal(trading_fee) + const lptokens = BigNumber(lpt_balance) + const b = BigNumber(old_bid) + let outbidAmount = BigNumber(0) // This is the case if time_interval >= 20 + if (time_interval == 0) { + outbidAmount = b.multipliedBy('1.05') + } else if (time_interval <= 19) { + const t60 = BigNumber(time_interval).multipliedBy('0.05').exponentiatedBy(60) + outbidAmount = b.multipliedBy('1.05').multipliedBy(BigNumber(1).minus(t60)) + } - const new_bid = lptokens.plus(outbidAmount).dividedBy( - BigNumber(25).dividedBy(tfee_decimal).minus(1) - ).plus(outbidAmount) - - // Significant digits for the deposit are limited by total LPTokens issued - // so we calculate lptokens + deposit - lptokens to determine where the - // rounding occurs. We use ceiling/floor to make sure the amount we receive - // after rounding is still enough to win the auction slot. - const rounded_bid = new_bid.plus(lptokens).precision(15, BigNumber.CEILING - ).minus(lptokens).precision(15, BigNumber.FLOOR) - return rounded_bid + const new_bid = lptokens.plus(outbidAmount).dividedBy(BigNumber(25).dividedBy(tfee_decimal).minus(1)).plus(outbidAmount) + + // Significant digits for the deposit are limited by total LPTokens issued + // so we calculate lptokens + deposit - lptokens to determine where the + // rounding occurs. We use ceiling/floor to make sure the amount we receive + // after rounding is still enough to win the auction slot. + const rounded_bid = new_bid.plus(lptokens).precision(15, BigNumber.CEILING).minus(lptokens).precision(15, BigNumber.FLOOR) + return rounded_bid } /* Calculate the necessary bid to win the AMM Auction slot, per the pricing * algorithm defined in XLS-30 section 4.1.1, if you already hold LP Tokens. - * + * * NOT USED in the Auction Slot tutorial, which assumes the user does not hold * any LP Tokens. - * + * * @returns BigNumber - the minimum amount of LP tokens to win the auction slot */ function auctionPrice(old_bid, time_interval, trading_fee, lpt_balance) { - const tfee_decimal = feeDecimal(trading_fee) - const lptokens = BigNumber(lpt_balance) - const min_bid = lptokens.multipliedBy(tfee_decimal).dividedBy(25) - const b = BigNumber(old_bid) - let new_bid = min_bid - - if (time_interval == 0) { - new_bid = b.multipliedBy("1.05").plus(min_bid) - } else if (time_interval <= 19) { - const t60 = BigNumber(time_interval).multipliedBy("0.05" - ).exponentiatedBy(60) - new_bid = b.multipliedBy("1.05").multipliedBy( - BigNumber(1).minus(t60) - ).plus(min_bid) - } + const tfee_decimal = feeDecimal(trading_fee) + const lptokens = BigNumber(lpt_balance) + const min_bid = lptokens.multipliedBy(tfee_decimal).dividedBy(25) + const b = BigNumber(old_bid) + let new_bid = min_bid - const rounded_bid = new_bid.plus(lptokens).precision(15, BigNumber.CEILING - ).minus(lptokens).precision(15, BigNumber.FLOOR) - return rounded_bid + if (time_interval == 0) { + new_bid = b.multipliedBy('1.05').plus(min_bid) + } else if (time_interval <= 19) { + const t60 = BigNumber(time_interval).multipliedBy('0.05').exponentiatedBy(60) + new_bid = b.multipliedBy('1.05').multipliedBy(BigNumber(1).minus(t60)).plus(min_bid) + } + + const rounded_bid = new_bid.plus(lptokens).precision(15, BigNumber.CEILING).minus(lptokens).precision(15, BigNumber.FLOOR) + return rounded_bid } module.exports = { - "auctionDeposit": auctionDeposit, - "auctionPrice": auctionPrice, - "ammAssetIn": ammAssetIn, - "swapOut": swapOut, + auctionDeposit: auctionDeposit, + auctionPrice: auctionPrice, + ammAssetIn: ammAssetIn, + swapOut: swapOut, } diff --git a/_code-samples/auction-slot/js/auction-slot.js b/_code-samples/auction-slot/js/auction-slot.js index 5d1b0d2e7e..4bc9d88576 100644 --- a/_code-samples/auction-slot/js/auction-slot.js +++ b/_code-samples/auction-slot/js/auction-slot.js @@ -1,170 +1,161 @@ const xrpl = require('xrpl') const BigNumber = require('bignumber.js') -const {auctionDeposit, ammAssetIn, swapOut} = require("./amm-formulas.js") +const { auctionDeposit, ammAssetIn, swapOut } = require('./amm-formulas.js') async function main() { - // Connect ---------------------------------------------------------------- - const client = new xrpl.Client('wss://s.altnet.rippletest.net:51233') - console.log("Connecting to Testnet...") - await client.connect() - - // // Get credentials from the faucet ------------------------------------- - console.log("Requesting test XRP from the faucet...") - const wallet = (await client.fundWallet()).wallet - console.log(`Got address ${wallet.address} / seed ${wallet.seed}.`) + // Connect ---------------------------------------------------------------- + const client = new xrpl.Client('wss://s.altnet.rippletest.net:51233') + console.log('Connecting to Testnet...') + await client.connect() - // Look up AMM status ----------------------------------------------------- - const from_asset = { - "currency": "XRP" - } - const to_asset = { - "currency": "TST", - "issuer": "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd" - } - const amm_info = (await client.request({ - "command": "amm_info", - "asset": from_asset, - "asset2": to_asset - })) - console.dir(amm_info, {depth: null}) - const lpt = amm_info.result.amm.lp_token - // XRP is always first if the pool is token←→XRP. - // For a token←→token AMM, you'd need to figure out which asset is first. - const pool_drops = amm_info.result.amm.amount - const pool_tst = amm_info.result.amm.amount2 - const full_trading_fee = amm_info.result.amm.trading_fee - const discounted_fee = amm_info.result.amm.auction_slot.discounted_fee - const old_bid = amm_info.result.amm.auction_slot.price.value - const time_interval = amm_info.result.amm.auction_slot.time_interval + // // Get credentials from the faucet ------------------------------------- + console.log('Requesting test XRP from the faucet...') + const wallet = (await client.fundWallet()).wallet + console.log(`Got address ${wallet.address} / seed ${wallet.seed}.`) - // Calculate price in XRP to get 10 TST from the AMM ---------------------- - // Note, this ignores Offers from the non-AMM part of the DEX. - const to_amount = { - "currency": to_asset.currency, - "issuer": to_asset.issuer, - "value": "10.0" - } + // Look up AMM status ----------------------------------------------------- + const from_asset = { + currency: 'XRP', + } + const to_asset = { + currency: 'TST', + issuer: 'rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd', + } + const amm_info = await client.request({ + command: 'amm_info', + asset: from_asset, + asset2: to_asset, + }) + console.dir(amm_info, { depth: null }) + const lpt = amm_info.result.amm.lp_token + // XRP is always first if the pool is token←→XRP. + // For a token←→token AMM, you'd need to figure out which asset is first. + const pool_drops = amm_info.result.amm.amount + const pool_tst = amm_info.result.amm.amount2 + const full_trading_fee = amm_info.result.amm.trading_fee + const discounted_fee = amm_info.result.amm.auction_slot.discounted_fee + const old_bid = amm_info.result.amm.auction_slot.price.value + const time_interval = amm_info.result.amm.auction_slot.time_interval - // Convert values to BigNumbers with the appropriate precision. - // Tokens always have 15 significant digits; - // XRP is precise to integer drops, which can be as high as 10^17 - const asset_out_bn = BigNumber(to_amount.value).precision(15) - const pool_in_bn = BigNumber(pool_drops).precision(17) - const pool_out_bn = BigNumber(pool_tst.value).precision(15) + // Calculate price in XRP to get 10 TST from the AMM ---------------------- + // Note, this ignores Offers from the non-AMM part of the DEX. + const to_amount = { + currency: to_asset.currency, + issuer: to_asset.issuer, + value: '10.0', + } - if (to_amount.value > pool_out_bn) { - console.log(`Requested ${to_amount.value} ${to_amount.currency} ` + - `but AMM only holds ${pool_tst.value}. Quitting.`) - client.disconnect() - return - } + // Convert values to BigNumbers with the appropriate precision. + // Tokens always have 15 significant digits; + // XRP is precise to integer drops, which can be as high as 10^17 + const asset_out_bn = BigNumber(to_amount.value).precision(15) + const pool_in_bn = BigNumber(pool_drops).precision(17) + const pool_out_bn = BigNumber(pool_tst.value).precision(15) - // Use AMM's SwapOut formula to figure out how much XRP we have to pay - // to receive the target amount of TST, under the current trading fee. - const unrounded_amount = swapOut(asset_out_bn, pool_in_bn, - pool_out_bn, full_trading_fee) - // Round XRP to integer drops. Round ceiling to make you pay in enough. - const from_amount = unrounded_amount.dp(0, BigNumber.ROUND_CEIL) - console.log(`Expected cost of ${to_amount.value} ${to_amount.currency}: ` + - `${xrpl.dropsToXrp(from_amount)} XRP`) - - // Same calculation, but assume we have access to the discounted trading - // fee from the auction slot. - const raw_discounted = swapOut(asset_out_bn, pool_in_bn, pool_out_bn, - discounted_fee) - const discounted_from_amount = raw_discounted.dp(0, BigNumber.ROUND_CEIL) - console.log(`Expected cost with auction slot discount: `+ - `${xrpl.dropsToXrp(discounted_from_amount)} XRP`) - - // The potential savings is the difference between the necessary input - // amounts with the full vs discounted fee. - const potential_savings = from_amount.minus(discounted_from_amount) - console.log(`Potential savings: ${xrpl.dropsToXrp(potential_savings)} XRP`) - - // Calculate the cost of winning the auction slot, in LP Tokens ----------- - const auction_price = auctionDeposit(old_bid, time_interval, - full_trading_fee, lpt.value - ).precision(15) - console.log(`Auction price after deposit: ${auction_price} LP Tokens`) - - // Calculate how much XRP to deposit to receive that many LP Tokens ------- - const deposit_for_bid = ammAssetIn(pool_in_bn, lpt.value, auction_price, - full_trading_fee - ).dp(0, BigNumber.ROUND_CEIL) - console.log(`Auction price as XRP single-asset deposit amount: `+ - `${xrpl.dropsToXrp(deposit_for_bid)} XRP`) - - // Optional. Allow for costs to be 1% greater than estimated, in case other - // transactions affect the same AMM during this time. - const SLIPPAGE_MULT = BigNumber(1.01) - const deposit_max = deposit_for_bid.multipliedBy(SLIPPAGE_MULT).dp(0) - - // Compare price of deposit+bid with potential savings. ------------------- - // Don't forget XRP burned as transaction costs. - const fee_response = (await client.request({"command":"fee"})) - const tx_cost_drops = BigNumber(fee_response.result.drops.minimum_fee - ).multipliedBy(client.feeCushion).dp(0) - const net_savings = potential_savings.minus( - tx_cost_drops.multipliedBy(2).plus(deposit_max) - ) - if (net_savings > 0) { - console.log(`Estimated net savings from the auction slot: ` + - `${xrpl.dropsToXrp(net_savings)} XRP`) - } else { - console.log(`Estimated the auction slot to be MORE EXPENSIVE by `+ - `${xrpl.dropsToXrp(net_savings.negated())} XRP. Quitting.`) - client.disconnect() - return - } - - // Do a single-asset deposit to get LP Tokens to bid on the auction slot -- - const auction_bid = { - "currency": lpt.currency, - "issuer": lpt.issuer, - "value": auction_price.toString() - } - const deposit_result = await client.submitAndWait({ - "TransactionType": "AMMDeposit", - "Account": wallet.address, - "Asset": from_asset, - "Asset2": to_asset, - "Amount": deposit_max.toString(), - "LPTokenOut": auction_bid, - "Flags": xrpl.AMMDepositFlags.tfOneAssetLPToken - }, {autofill: true, wallet: wallet} - ) - console.log("Deposit result:") - console.dir(deposit_result, {depth: null}) - - // Actually bid on the auction slot --------------------------------------- - const bid_result = await client.submitAndWait({ - "TransactionType": "AMMBid", - "Account": wallet.address, - "Asset": from_asset, - "Asset2": to_asset, - "BidMax": auction_bid, - "BidMin": auction_bid, // So rounding doesn't leave dust amounts of LPT - }, {autofill: true, wallet: wallet} - ) - console.log("Bid result:") - console.dir(bid_result, {depth: null}) - - // Trade using the discount ----------------------------------------------- - const spend_drops = discounted_from_amount.multipliedBy(SLIPPAGE_MULT - ).dp(0).toString() - const offer_result = await client.submitAndWait({ - "TransactionType": "OfferCreate", - "Account": wallet.address, - "TakerPays": to_amount, - "TakerGets": spend_drops - }, {autofill: true, wallet: wallet}) - console.log("Offer result:") - console.dir(offer_result, {depth: null}) - console.log("Offer balance changes summary:") - console.dir(xrpl.getBalanceChanges(offer_result.result.meta), {depth:null}) - - // Done. + if (to_amount.value > pool_out_bn) { + console.log(`Requested ${to_amount.value} ${to_amount.currency} ` + `but AMM only holds ${pool_tst.value}. Quitting.`) client.disconnect() + return + } + + // Use AMM's SwapOut formula to figure out how much XRP we have to pay + // to receive the target amount of TST, under the current trading fee. + const unrounded_amount = swapOut(asset_out_bn, pool_in_bn, pool_out_bn, full_trading_fee) + // Round XRP to integer drops. Round ceiling to make you pay in enough. + const from_amount = unrounded_amount.dp(0, BigNumber.ROUND_CEIL) + console.log(`Expected cost of ${to_amount.value} ${to_amount.currency}: ` + `${xrpl.dropsToXrp(from_amount)} XRP`) + + // Same calculation, but assume we have access to the discounted trading + // fee from the auction slot. + const raw_discounted = swapOut(asset_out_bn, pool_in_bn, pool_out_bn, discounted_fee) + const discounted_from_amount = raw_discounted.dp(0, BigNumber.ROUND_CEIL) + console.log(`Expected cost with auction slot discount: ` + `${xrpl.dropsToXrp(discounted_from_amount)} XRP`) + + // The potential savings is the difference between the necessary input + // amounts with the full vs discounted fee. + const potential_savings = from_amount.minus(discounted_from_amount) + console.log(`Potential savings: ${xrpl.dropsToXrp(potential_savings)} XRP`) + + // Calculate the cost of winning the auction slot, in LP Tokens ----------- + const auction_price = auctionDeposit(old_bid, time_interval, full_trading_fee, lpt.value).precision(15) + console.log(`Auction price after deposit: ${auction_price} LP Tokens`) + + // Calculate how much XRP to deposit to receive that many LP Tokens ------- + const deposit_for_bid = ammAssetIn(pool_in_bn, lpt.value, auction_price, full_trading_fee).dp(0, BigNumber.ROUND_CEIL) + console.log(`Auction price as XRP single-asset deposit amount: ` + `${xrpl.dropsToXrp(deposit_for_bid)} XRP`) + + // Optional. Allow for costs to be 1% greater than estimated, in case other + // transactions affect the same AMM during this time. + const SLIPPAGE_MULT = BigNumber(1.01) + const deposit_max = deposit_for_bid.multipliedBy(SLIPPAGE_MULT).dp(0) + + // Compare price of deposit+bid with potential savings. ------------------- + // Don't forget XRP burned as transaction costs. + const fee_response = await client.request({ command: 'fee' }) + const tx_cost_drops = BigNumber(fee_response.result.drops.minimum_fee).multipliedBy(client.feeCushion).dp(0) + const net_savings = potential_savings.minus(tx_cost_drops.multipliedBy(2).plus(deposit_max)) + if (net_savings > 0) { + console.log(`Estimated net savings from the auction slot: ` + `${xrpl.dropsToXrp(net_savings)} XRP`) + } else { + console.log(`Estimated the auction slot to be MORE EXPENSIVE by ` + `${xrpl.dropsToXrp(net_savings.negated())} XRP. Quitting.`) + client.disconnect() + return + } + + // Do a single-asset deposit to get LP Tokens to bid on the auction slot -- + const auction_bid = { + currency: lpt.currency, + issuer: lpt.issuer, + value: auction_price.toString(), + } + const deposit_result = await client.submitAndWait( + { + TransactionType: 'AMMDeposit', + Account: wallet.address, + Asset: from_asset, + Asset2: to_asset, + Amount: deposit_max.toString(), + LPTokenOut: auction_bid, + Flags: xrpl.AMMDepositFlags.tfOneAssetLPToken, + }, + { autofill: true, wallet: wallet }, + ) + console.log('Deposit result:') + console.dir(deposit_result, { depth: null }) + + // Actually bid on the auction slot --------------------------------------- + const bid_result = await client.submitAndWait( + { + TransactionType: 'AMMBid', + Account: wallet.address, + Asset: from_asset, + Asset2: to_asset, + BidMax: auction_bid, + BidMin: auction_bid, // So rounding doesn't leave dust amounts of LPT + }, + { autofill: true, wallet: wallet }, + ) + console.log('Bid result:') + console.dir(bid_result, { depth: null }) + + // Trade using the discount ----------------------------------------------- + const spend_drops = discounted_from_amount.multipliedBy(SLIPPAGE_MULT).dp(0).toString() + const offer_result = await client.submitAndWait( + { + TransactionType: 'OfferCreate', + Account: wallet.address, + TakerPays: to_amount, + TakerGets: spend_drops, + }, + { autofill: true, wallet: wallet }, + ) + console.log('Offer result:') + console.dir(offer_result, { depth: null }) + console.log('Offer balance changes summary:') + console.dir(xrpl.getBalanceChanges(offer_result.result.meta), { depth: null }) + + // Done. + client.disconnect() } // End of main() main() diff --git a/_code-samples/batch/js/multiAccountBatch.js b/_code-samples/batch/js/multiAccountBatch.js index 25a8307f09..f18478f014 100644 --- a/_code-samples/batch/js/multiAccountBatch.js +++ b/_code-samples/batch/js/multiAccountBatch.js @@ -5,26 +5,21 @@ * to perform a multi-account batch transaction. * Concept doc: https://xrpl.org/docs/concepts/transactions/batch-transactions * Reference doc: https://xrpl.org/docs/references/protocol/transactions/types/batch -*/ + */ -import xrpl from "xrpl" +import xrpl from 'xrpl' -const client = new xrpl.Client("wss://s.devnet.rippletest.net:51233/") +const client = new xrpl.Client('wss://s.devnet.rippletest.net:51233/') await client.connect() // Create and fund wallets -console.log("=== Funding new wallets from faucet... ==="); -const [ - { wallet: alice }, - { wallet: bob }, - { wallet: charlie }, - { wallet: thirdPartyWallet }, -] = await Promise.all([ +console.log('=== Funding new wallets from faucet... ===') +const [{ wallet: alice }, { wallet: bob }, { wallet: charlie }, { wallet: thirdPartyWallet }] = await Promise.all([ client.fundWallet(), client.fundWallet(), client.fundWallet(), client.fundWallet(), -]); +]) console.log(`Alice: ${alice.address}, Balance: ${await client.getXrpBalance(alice.address)} XRP`) console.log(`Bob: ${bob.address}, Balance: ${await client.getXrpBalance(bob.address)} XRP`) @@ -37,40 +32,37 @@ console.log(`Third-party wallet: ${thirdPartyWallet.address}, Balance: ${await c // Transaction 1: Charlie pays Alice const charliePayment = { - TransactionType: "Payment", + TransactionType: 'Payment', Account: charlie.address, Destination: alice.address, Amount: xrpl.xrpToDrops(50), - Flags: xrpl.GlobalFlags.tfInnerBatchTxn // THIS IS REQUIRED + Flags: xrpl.GlobalFlags.tfInnerBatchTxn, // THIS IS REQUIRED } // Transaction 2: Bob pays Alice const bobPayment = { - TransactionType: "Payment", + TransactionType: 'Payment', Account: bob.address, Destination: alice.address, Amount: xrpl.xrpToDrops(50), - Flags: xrpl.GlobalFlags.tfInnerBatchTxn // THIS IS REQUIRED + Flags: xrpl.GlobalFlags.tfInnerBatchTxn, // THIS IS REQUIRED } // Send Batch transaction -------------------------------------------- -console.log("\n=== Creating Batch transaction... ===") +console.log('\n=== Creating Batch transaction... ===') const batchTx = { - TransactionType: "Batch", + TransactionType: 'Batch', Account: thirdPartyWallet.address, Flags: xrpl.BatchFlags.tfAllOrNothing, // tfAllOrNothing: All inner transactions must succeed // Must include a minimum of 2 transactions and a maximum of 8 transactions. - RawTransactions: [ - { RawTransaction: charliePayment }, - { RawTransaction: bobPayment }, - ] + RawTransactions: [{ RawTransaction: charliePayment }, { RawTransaction: bobPayment }], } console.log(JSON.stringify(batchTx, null, 2)) // Validate the transaction structure xrpl.validate(batchTx) -// Set the expected number of signers, which is 2 (Bob and Charlie) in this case, for this transaction. +// Set the expected number of signers, which is 2 (Bob and Charlie) in this case, for this transaction. // "autofill" will automatically add Fee: "0" and SigningPubKey: "" to inner transactions. const autofilledBatchTx = await client.autofill(batchTx, 2) @@ -89,26 +81,24 @@ xrpl.signMultiBatch(bob, bobBatch) const combinedSignedTx = xrpl.combineBatchSigners([charlieBatch, bobBatch]) // Submit the signed blob with the third-party's wallet -console.log("\n=== Submitting Batch transaction... ===") -const submitResponse = await client.submitAndWait(combinedSignedTx, - { wallet: thirdPartyWallet } -) +console.log('\n=== Submitting Batch transaction... ===') +const submitResponse = await client.submitAndWait(combinedSignedTx, { wallet: thirdPartyWallet }) // Check Batch transaction result -------------------------------- -if (submitResponse.result.meta.TransactionResult !== "tesSUCCESS") { +if (submitResponse.result.meta.TransactionResult !== 'tesSUCCESS') { const resultCode = submitResponse.result.meta.TransactionResult console.warn(`\nTransaction failed with result code ${resultCode}`) await client.disconnect() process.exit(1) } -console.log("\nBatch transaction submitted successfully!") -console.log("Result:\n", JSON.stringify(submitResponse.result, null, 2)) -// View the transaction on the XRPL Explorer +console.log('\nBatch transaction submitted successfully!') +console.log('Result:\n', JSON.stringify(submitResponse.result, null, 2)) +// View the transaction on the XRPL Explorer console.log(`\nBatch transaction URL:\nhttps://devnet.xrpl.org/transactions/${submitResponse.result.hash}`) // Calculate and verify inner transaction hashes -------------------------------------------- -console.log("\n=== Verifying inner transactions ===") +console.log('\n=== Verifying inner transactions ===') const rawTransactions = submitResponse.result.tx_json.RawTransactions let hasFailure = false @@ -128,13 +118,13 @@ for (let i = 0; i < rawTransactions.length; i++) { } } if (hasFailure) { - console.error("\n--- Error: One or more inner transactions failed. ---") + console.error('\n--- Error: One or more inner transactions failed. ---') await client.disconnect() process.exit(1) } // Verify balances after transaction -console.log("\n=== Final balances ===") +console.log('\n=== Final balances ===') console.log(`Alice: ${alice.address}, Balance: ${await client.getXrpBalance(alice.address)} XRP`) console.log(`Bob: ${bob.address}, Balance: ${await client.getXrpBalance(bob.address)} XRP`) console.log(`Charlie: ${charlie.address}, Balance: ${await client.getXrpBalance(charlie.address)} XRP`) diff --git a/_code-samples/batch/js/singleAccountBatch.js b/_code-samples/batch/js/singleAccountBatch.js index 6e8c9a7ebd..635a783fd1 100644 --- a/_code-samples/batch/js/singleAccountBatch.js +++ b/_code-samples/batch/js/singleAccountBatch.js @@ -6,21 +6,20 @@ * to multiple destinations in one atomic operation. * Concept doc: https://xrpl.org/docs/concepts/transactions/batch-transactions * Reference doc: https://xrpl.org/docs/references/protocol/transactions/types/batch -*/ + */ -import xrpl from "xrpl" +import xrpl from 'xrpl' -const client = new xrpl.Client("wss://s.devnet.rippletest.net:51233/") +const client = new xrpl.Client('wss://s.devnet.rippletest.net:51233/') await client.connect() // Create and fund wallets -console.log("=== Funding new wallets from faucet... ==="); -const [{ wallet: sender }, { wallet: wallet1 }, { wallet: wallet2 }] = - await Promise.all([ - client.fundWallet(), - client.fundWallet(), - client.fundWallet(), - ]); +console.log('=== Funding new wallets from faucet... ===') +const [{ wallet: sender }, { wallet: wallet1 }, { wallet: wallet2 }] = await Promise.all([ + client.fundWallet(), + client.fundWallet(), + client.fundWallet(), +]) console.log(`Sender: ${sender.address}, Balance: ${await client.getXrpBalance(sender.address)} XRP`) console.log(`Wallet1: ${wallet1.address}, Balance: ${await client.getXrpBalance(wallet1.address)} XRP`) @@ -32,33 +31,30 @@ console.log(`Wallet2: ${wallet2.address}, Balance: ${await client.getXrpBalance( // Transaction 1 const payment1 = { - TransactionType: "Payment", + TransactionType: 'Payment', Account: sender.address, Destination: wallet1.address, Amount: xrpl.xrpToDrops(2), - Flags: xrpl.GlobalFlags.tfInnerBatchTxn // THIS IS REQUIRED + Flags: xrpl.GlobalFlags.tfInnerBatchTxn, // THIS IS REQUIRED } // Transaction 2 const payment2 = { - TransactionType: "Payment", + TransactionType: 'Payment', Account: sender.address, Destination: wallet2.address, Amount: xrpl.xrpToDrops(5), - Flags: xrpl.GlobalFlags.tfInnerBatchTxn // THIS IS REQUIRED + Flags: xrpl.GlobalFlags.tfInnerBatchTxn, // THIS IS REQUIRED } // Send Batch transaction -------------------------------------------- -console.log("\n=== Creating Batch transaction... ===") +console.log('\n=== Creating Batch transaction... ===') const batchTx = { - TransactionType: "Batch", + TransactionType: 'Batch', Account: sender.address, Flags: xrpl.BatchFlags.tfAllOrNothing, // tfAllOrNothing: All inner transactions must succeed // Must include a minimum of 2 transactions and a maximum of 8 transactions. - RawTransactions: [ - { RawTransaction: payment1 }, - { RawTransaction: payment2 } - ] + RawTransactions: [{ RawTransaction: payment1 }, { RawTransaction: payment2 }], } console.log(JSON.stringify(batchTx, null, 2)) @@ -66,27 +62,27 @@ console.log(JSON.stringify(batchTx, null, 2)) xrpl.validate(batchTx) // Submit and wait for validation -console.log("\n=== Submitting Batch transaction... ===") +console.log('\n=== Submitting Batch transaction... ===') const submitResponse = await client.submitAndWait(batchTx, { wallet: sender, // "autofill" will automatically add Fee: "0" and SigningPubKey: "" to inner transactions. - autofill: true + autofill: true, }) // Check Batch transaction result -------------------------------- -if (submitResponse.result.meta.TransactionResult !== "tesSUCCESS") { +if (submitResponse.result.meta.TransactionResult !== 'tesSUCCESS') { const resultCode = submitResponse.result.meta.TransactionResult console.warn(`\nTransaction failed with result code ${resultCode}`) await client.disconnect() process.exit(1) } -console.log("\nBatch transaction submitted successfully!") -console.log("Result:\n", JSON.stringify(submitResponse.result, null, 2)) -// View the batch transaction on the XRPL Explorer +console.log('\nBatch transaction submitted successfully!') +console.log('Result:\n', JSON.stringify(submitResponse.result, null, 2)) +// View the batch transaction on the XRPL Explorer console.log(`\nBatch transaction URL:\nhttps://devnet.xrpl.org/transactions/${submitResponse.result.hash}`) // Calculate and verify inner transaction hashes -------------------------------------------- -console.log("\n=== Verifying inner transactions... ===") +console.log('\n=== Verifying inner transactions... ===') const rawTransactions = submitResponse.result.tx_json.RawTransactions let hasFailure = false @@ -106,13 +102,13 @@ for (let i = 0; i < rawTransactions.length; i++) { } } if (hasFailure) { - console.error("\n--- Error: One or more inner transactions failed. ---") + console.error('\n--- Error: One or more inner transactions failed. ---') await client.disconnect() process.exit(1) } // Verify balances after transaction -console.log("\n=== Final balances ===") +console.log('\n=== Final balances ===') console.log(`Sender: ${sender.address}, Balance: ${await client.getXrpBalance(sender.address)} XRP`) console.log(`Wallet1: ${wallet1.address}, Balance: ${await client.getXrpBalance(wallet1.address)} XRP`) console.log(`Wallet2: ${wallet2.address}, Balance: ${await client.getXrpBalance(wallet2.address)} XRP`) diff --git a/_code-samples/build-a-browser-wallet/js/README.md b/_code-samples/build-a-browser-wallet/js/README.md index 3e3fe233ba..0e99fd0768 100644 --- a/_code-samples/build-a-browser-wallet/js/README.md +++ b/_code-samples/build-a-browser-wallet/js/README.md @@ -16,9 +16,9 @@ At the end of this tutorial, you should be able to build a simple XRP wallet tha - Shows updates to the XRP Ledger in real-time. - Can view any XRP Ledger account's activity "read-only" including showing how much XRP was delivered by each transaction. -- Shows how much XRP is set aside for the account's reserve requirement. +- Shows how much XRP is set aside for the account's reserve requirement. - Can send direct XRP payments, and provides feedback about the intended destination address, including: - - Displays available balance in your account - - Verifies that the destination address is valid - - Validates amount input to ensure it is a valid number and that the account has enough XRP to send - - Allows addition of the destination tag \ No newline at end of file + - Displays available balance in your account + - Verifies that the destination address is valid + - Validates amount input to ensure it is a valid number and that the account has enough XRP to send + - Allows addition of the destination tag diff --git a/_code-samples/build-a-browser-wallet/js/index.css b/_code-samples/build-a-browser-wallet/js/index.css index c48a7b59e8..945c412efd 100644 --- a/_code-samples/build-a-browser-wallet/js/index.css +++ b/_code-samples/build-a-browser-wallet/js/index.css @@ -1,148 +1,150 @@ :root { - font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; - line-height: 1.5; - font-weight: 400; + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + line-height: 1.5; + font-weight: 400; - color-scheme: light dark; - color: rgba(255, 255, 255, 0.87); - background-color: #242424; + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; - font-synthesis: none; - text-rendering: optimizeLegibility; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - -webkit-text-size-adjust: 100%; + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-text-size-adjust: 100%; } a { - font-weight: 500; - color: white; - cursor: pointer; - text-decoration: inherit; + font-weight: 500; + color: white; + cursor: pointer; + text-decoration: inherit; } a:hover { - color: #535bf2; + color: #535bf2; } body { - margin: 0; - display: flex; - min-width: 320px; - min-height: 100vh; + margin: 0; + display: flex; + min-width: 320px; + min-height: 100vh; } #app { - max-width: 1280px; - margin: 0 auto; - padding: 2rem; + max-width: 1280px; + margin: 0 auto; + padding: 2rem; } .main_content { - display: flex; - flex-direction: column; - gap: 25px; + display: flex; + flex-direction: column; + gap: 25px; } .main_logo { - align-self: center; + align-self: center; } .logo_link { - align-self: center; + align-self: center; } .logo { - height: 6em; - padding: 1.5em; - will-change: filter; - transition: filter 300ms; + height: 6em; + padding: 1.5em; + will-change: filter; + transition: filter 300ms; } .logo:hover { - filter: drop-shadow(0 0 2em #646cffaa); + filter: drop-shadow(0 0 2em #646cffaa); } .logo.vanilla:hover { - filter: drop-shadow(0 0 2em #848080f5); + filter: drop-shadow(0 0 2em #848080f5); } .wallet_details { - display: flex; - flex-direction: column; - gap: 5px; - padding: 20px; - border: 1px solid white; - border-radius: 10px; + display: flex; + flex-direction: column; + gap: 5px; + padding: 20px; + border: 1px solid white; + border-radius: 10px; } -.ledger_details, .send_xrp_container, .tx_history_container { - display: flex; - flex-direction: column; - gap: 5px; - padding: 20px; - border: 1px solid white; - border-radius: 10px; +.ledger_details, +.send_xrp_container, +.tx_history_container { + display: flex; + flex-direction: column; + gap: 5px; + padding: 20px; + border: 1px solid white; + border-radius: 10px; } .send_xrp_container label { - padding: 10px 0 0 0; + padding: 10px 0 0 0; } .invalid { - border: 1px solid red !important; + border: 1px solid red !important; } .send_xrp_container input { - padding: 10px; - border-radius: 10px; - border: 1px solid black; - background: lightgray; - color: black; - outline: none; + padding: 10px; + border-radius: 10px; + border: 1px solid black; + background: lightgray; + color: black; + outline: none; } .heading_h3 { - font-size: 25px; - font-weight: bold; - padding: 0 0 10px 0; + font-size: 25px; + font-weight: bold; + padding: 0 0 10px 0; } .links { - display: flex; - gap: 12px; + display: flex; + gap: 12px; } button { - padding: 5px 12px; - background: inherit; - cursor: pointer; - border: 1px solid white; - border-radius: 10px; - font-size: 14px; + padding: 5px 12px; + background: inherit; + cursor: pointer; + border: 1px solid white; + border-radius: 10px; + font-size: 14px; } button:hover { - color: black; - background: white; + color: black; + background: white; } .submit_tx_button { - color: black; - background: white; - margin: 30px 0 0 0; + color: black; + background: white; + margin: 30px 0 0 0; } .submit_tx_button:disabled { - color: gray; - background: lightgray; - cursor: not-allowed; + color: gray; + background: lightgray; + cursor: not-allowed; } .tx_history_data { - display: table; - text-align: center; - border-spacing: 10px; + display: table; + text-align: center; + border-spacing: 10px; } .tx_history_data th { - border-bottom: 1px solid white; - padding: 0 0 5px 0; -} \ No newline at end of file + border-bottom: 1px solid white; + padding: 0 0 5px 0; +} diff --git a/_code-samples/build-a-browser-wallet/js/index.html b/_code-samples/build-a-browser-wallet/js/index.html index b5d5c8612b..b15f486552 100644 --- a/_code-samples/build-a-browser-wallet/js/index.html +++ b/_code-samples/build-a-browser-wallet/js/index.html @@ -1,41 +1,41 @@ - + - - - - - Simple XRPL Wallet - - - - - - -
    -
    - - -
    - - + + diff --git a/_code-samples/build-a-browser-wallet/js/index.js b/_code-samples/build-a-browser-wallet/js/index.js index 9fb9d21519..41c282521c 100644 --- a/_code-samples/build-a-browser-wallet/js/index.js +++ b/_code-samples/build-a-browser-wallet/js/index.js @@ -36,12 +36,12 @@ txHistoryButton.addEventListener('click', () => { }); // Fetch the wallet details - let wallet_details + let wallet_details; try { - wallet_details = await getWalletDetails({ client }) - } catch(error) { - alert(`Error loading wallet: ${error}.\n\nMake sure you set the SEED in your .env file.`) - return + wallet_details = await getWalletDetails({ client }); + } catch (error) { + alert(`Error loading wallet: ${error}.\n\nMake sure you set the SEED in your .env file.`); + return; } const { account_data, accountReserve, xAddress, address } = wallet_details; walletElement.querySelector('.wallet_address').textContent = `Wallet Address: ${account_data.Account}`; @@ -53,9 +53,8 @@ txHistoryButton.addEventListener('click', () => { walletElement.querySelector('#view_more_button').addEventListener('click', () => { window.open(`https://${process.env.EXPLORER_NETWORK}.xrpl.org/accounts/${address}`, '_blank'); }); - - walletLoadingDiv.style.display = 'none'; + walletLoadingDiv.style.display = 'none'; // Fetch the latest ledger details client.on('ledgerClosed', (ledger) => { @@ -67,7 +66,6 @@ txHistoryButton.addEventListener('click', () => { ledgerHash.textContent = `Ledger Hash: ${ledger.ledger_hash}`; closeTime.textContent = `Close Time: ${rippleTimeToISOTime(ledger.ledger_time)}`; }); - } catch (error) { await client.disconnect(); console.log(error); diff --git a/_code-samples/build-a-browser-wallet/js/src/helpers/get-wallet-details.js b/_code-samples/build-a-browser-wallet/js/src/helpers/get-wallet-details.js index d3d389612c..7dd37f5358 100644 --- a/_code-samples/build-a-browser-wallet/js/src/helpers/get-wallet-details.js +++ b/_code-samples/build-a-browser-wallet/js/src/helpers/get-wallet-details.js @@ -30,10 +30,10 @@ export default async function getWalletDetails({ client }) { console.log('Got wallet details!'); - return { - account_data, - accountReserve, + return { + account_data, + accountReserve, xAddress: classicAddressToXAddress(wallet.address, false, false), - address: wallet.address + address: wallet.address, }; } diff --git a/_code-samples/build-a-browser-wallet/js/src/send-xrp/send-xrp.html b/_code-samples/build-a-browser-wallet/js/src/send-xrp/send-xrp.html index 3192f4d531..6d88da6afd 100644 --- a/_code-samples/build-a-browser-wallet/js/src/send-xrp/send-xrp.html +++ b/_code-samples/build-a-browser-wallet/js/src/send-xrp/send-xrp.html @@ -1,35 +1,35 @@ - + Simple XRPL Wallet - - - - -
    -
    - - -
    -
    Send XRP
    -
    - - - - - - - - + + + + +
    +
    + + +
    +
    Send XRP
    +
    + + + + + + + + +
    +
    -
    -
    - - + + diff --git a/_code-samples/build-a-browser-wallet/js/src/send-xrp/send-xrp.js b/_code-samples/build-a-browser-wallet/js/src/send-xrp/send-xrp.js index ed34dbaa8a..7776f42455 100644 --- a/_code-samples/build-a-browser-wallet/js/src/send-xrp/send-xrp.js +++ b/_code-samples/build-a-browser-wallet/js/src/send-xrp/send-xrp.js @@ -7,14 +7,14 @@ import submitTransaction from '../helpers/submit-transaction'; // Optional: Render the XRPL logo renderXrplLogo(); - // Get the client from the environment variables +// Get the client from the environment variables const client = new Client(process.env.CLIENT); // Self-invoking function to connect to the client (async () => { try { await client.connect(); - + const wallet = Wallet.fromSeed(process.env.SEED); // Subscribe to account transaction stream @@ -24,12 +24,10 @@ const client = new Client(process.env.CLIENT); }); // Fetch the wallet details and show the available balance - await getWalletDetails({ client }).then(( - { accountReserve, account_data }) => { - const bal = dropsToXrp(account_data.Balance) - accountReserve; - availableBalanceElement.textContent = `Available Balance: ${bal} XRP`; + await getWalletDetails({ client }).then(({ accountReserve, account_data }) => { + const bal = dropsToXrp(account_data.Balance) - accountReserve; + availableBalanceElement.textContent = `Available Balance: ${bal} XRP`; }); - } catch (error) { await client.disconnect(); console.log(error); @@ -128,13 +126,13 @@ submitTxBtn.addEventListener('click', async () => { if (destinationTag?.value !== '') { txJson.DestinationTag = parseInt(destinationTag.value); } - console.log("Sending...", txJson); + console.log('Sending...', txJson); // Submit the transaction to the ledger const { result } = await submitTransaction({ client, tx: txJson }); const txResult = result?.meta?.TransactionResult || result?.engine_result || ''; - // Check if the transaction was successful or not + // Check if the transaction was successful or not // and show the appropriate message to the user if (txResult === 'tesSUCCESS') { alert('Transaction submitted successfully!'); @@ -146,7 +144,7 @@ submitTxBtn.addEventListener('click', async () => { console.error(error); submitTxBtn.disabled = false; } finally { - // Re-enable the submit button after the transaction is submitted + // Re-enable the submit button after the transaction is submitted // so the user can submit another transaction submitTxBtn.disabled = false; submitTxBtn.textContent = 'Submit Transaction'; diff --git a/_code-samples/build-a-browser-wallet/js/src/transaction-history/transaction-history.html b/_code-samples/build-a-browser-wallet/js/src/transaction-history/transaction-history.html index 74e9bdb2e3..5af9852450 100644 --- a/_code-samples/build-a-browser-wallet/js/src/transaction-history/transaction-history.html +++ b/_code-samples/build-a-browser-wallet/js/src/transaction-history/transaction-history.html @@ -1,28 +1,28 @@ - + Simple XRPL Wallet - - - - -
    -
    - - -
    -
    Transaction History
    -
    - + + + + +
    +
    + + +
    +
    Transaction History
    +
    + +
    +
    -
    -
    - - - \ No newline at end of file + + + diff --git a/_code-samples/build-a-browser-wallet/js/src/transaction-history/transaction-history.js b/_code-samples/build-a-browser-wallet/js/src/transaction-history/transaction-history.js index c1c8d933dd..a41f01ec3f 100644 --- a/_code-samples/build-a-browser-wallet/js/src/transaction-history/transaction-history.js +++ b/_code-samples/build-a-browser-wallet/js/src/transaction-history/transaction-history.js @@ -38,14 +38,14 @@ txHistoryElement.appendChild(header); // Converts the hex value to a string function getTokenName(currencyCode) { - if (!currencyCode) return ""; + if (!currencyCode) return ''; if (currencyCode.length === 3 && currencyCode.trim().toLowerCase() !== 'xrp') { // "Standard" currency code return currencyCode.trim(); } if (currencyCode.match(/^[a-fA-F0-9]{40}$/)) { // Hexadecimal currency code - const text_code = convertHexToString(value).replaceAll('\u0000', '') + const text_code = convertHexToString(value).replaceAll('\u0000', ''); if (text_code.match(/[a-zA-Z0-9]{3,}/) && text_code.trim().toLowerCase() !== 'xrp') { // ASCII or UTF-8 encoded alphanumeric code, 3+ characters long return text_code; @@ -54,7 +54,7 @@ function getTokenName(currencyCode) { // For parsing other rare formats, see https://github.com/XRPLF/xrpl-dev-portal/blob/master/content/_code-samples/normalize-currency-codes/js/normalize-currency-code.js return currencyCode; } - return ""; + return ''; } function renderAmount(delivered) { @@ -69,7 +69,7 @@ function renderAmount(delivered) { return `${delivered.value} ${getTokenName(delivered.currency)}.${delivered.issuer}`; } else { // Could be undefined -- not all transactions deliver value - return "-" + return '-'; } } @@ -110,7 +110,7 @@ async function fetchTxHistory() { Hash: hash, TransactionType: tx_json.TransactionType, result: meta?.TransactionResult, - delivered: meta?.delivered_amount + delivered: meta?.delivered_amount, }; }); diff --git a/_code-samples/build-a-desktop-wallet/js/0-hello/index.js b/_code-samples/build-a-desktop-wallet/js/0-hello/index.js index 06e0fba0c5..b6c3f16667 100644 --- a/_code-samples/build-a-desktop-wallet/js/0-hello/index.js +++ b/_code-samples/build-a-desktop-wallet/js/0-hello/index.js @@ -8,19 +8,19 @@ const path = require('path') * and perform the main logic. */ const createWindow = () => { - // Create the application window - const appWindow = new BrowserWindow({ - width: 1024, - height: 768 - }) + // Create the application window + const appWindow = new BrowserWindow({ + width: 1024, + height: 768, + }) - // Load a layout - appWindow.loadFile(path.join(__dirname, 'view', 'template.html')) - return appWindow + // Load a layout + appWindow.loadFile(path.join(__dirname, 'view', 'template.html')) + return appWindow } // Here we have to wait for the application to signal that it is ready // to execute our code. In this case we just create a main window. app.whenReady().then(() => { - createWindow() + createWindow() }) diff --git a/_code-samples/build-a-desktop-wallet/js/0-hello/view/template.html b/_code-samples/build-a-desktop-wallet/js/0-hello/view/template.html index 77528c1897..a95d35e220 100644 --- a/_code-samples/build-a-desktop-wallet/js/0-hello/view/template.html +++ b/_code-samples/build-a-desktop-wallet/js/0-hello/view/template.html @@ -1,18 +1,14 @@ - + + + + + + XRPL Wallet Tutorial (JavaScript / Electron) + - - - - - XRPL Wallet Tutorial (JavaScript / Electron) - - - - -

    Build a XRPL Wallet - Part 0/8

    - Hello world! - - - + +

    Build a XRPL Wallet - Part 0/8

    + Hello world! + diff --git a/_code-samples/build-a-desktop-wallet/js/1-ledger-index/index.js b/_code-samples/build-a-desktop-wallet/js/1-ledger-index/index.js index 3a3c41acfc..a012b79d64 100644 --- a/_code-samples/build-a-desktop-wallet/js/1-ledger-index/index.js +++ b/_code-samples/build-a-desktop-wallet/js/1-ledger-index/index.js @@ -12,16 +12,16 @@ const TESTNET_URL = 'wss://s.altnet.rippletest.net:51233' * @returns {Promise} */ const getValidatedLedgerIndex = async () => { - const client = new xrpl.Client(TESTNET_URL) - await client.connect() - // Reference: https://xrpl.org/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger - const ledgerRequest = { - "command": "ledger", - "ledger_index": "validated" - } - const ledgerResponse = await client.request(ledgerRequest) - await client.disconnect() - return ledgerResponse.result.ledger_index + const client = new xrpl.Client(TESTNET_URL) + await client.connect() + // Reference: https://xrpl.org/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger + const ledgerRequest = { + command: 'ledger', + ledger_index: 'validated', + } + const ledgerResponse = await client.request(ledgerRequest) + await client.disconnect() + return ledgerResponse.result.ledger_index } // Ledger index code additions - end @@ -31,18 +31,18 @@ const getValidatedLedgerIndex = async () => { * and perform the main logic. */ const createWindow = () => { - // Create the application window - const appWindow = new BrowserWindow({ - width: 1024, - height: 768, - webPreferences: { - preload: path.join(__dirname, 'view', 'preload.js'), - }, - }) + // Create the application window + const appWindow = new BrowserWindow({ + width: 1024, + height: 768, + webPreferences: { + preload: path.join(__dirname, 'view', 'preload.js'), + }, + }) - // Load a layout - appWindow.loadFile(path.join(__dirname, 'view', 'template.html')) - return appWindow + // Load a layout + appWindow.loadFile(path.join(__dirname, 'view', 'template.html')) + return appWindow } // Here we have to wait for the application to signal that it is ready @@ -50,10 +50,9 @@ const createWindow = () => { // the ledger for its latest index and submit the result to the main // window where it will be displayed app.whenReady().then(() => { + const appWindow = createWindow() - const appWindow = createWindow() - - getValidatedLedgerIndex().then((value) => { - appWindow.webContents.send('update-ledger-index', value) - }) + getValidatedLedgerIndex().then((value) => { + appWindow.webContents.send('update-ledger-index', value) + }) }) diff --git a/_code-samples/build-a-desktop-wallet/js/1-ledger-index/view/preload.js b/_code-samples/build-a-desktop-wallet/js/1-ledger-index/view/preload.js index 7f34dc3d30..a4dd39c33c 100644 --- a/_code-samples/build-a-desktop-wallet/js/1-ledger-index/view/preload.js +++ b/_code-samples/build-a-desktop-wallet/js/1-ledger-index/view/preload.js @@ -1,11 +1,11 @@ -const { contextBridge, ipcRenderer } = require('electron'); +const { contextBridge, ipcRenderer } = require('electron') // Expose functionality from main process (aka. "backend") to be used by the renderer process(aka. "backend") contextBridge.exposeInMainWorld('electronAPI', { - // By calling "onUpdateLedgerIndex" in the frontend process we can now attach a callback function to - // by making onUpdateLedgerIndex available at the window level. - // The subscribed function gets triggered whenever the backend process triggers the event 'update-ledger-index' - onUpdateLedgerIndex: (callback) => { - ipcRenderer.on('update-ledger-index', callback) - } + // By calling "onUpdateLedgerIndex" in the frontend process we can now attach a callback function to + // by making onUpdateLedgerIndex available at the window level. + // The subscribed function gets triggered whenever the backend process triggers the event 'update-ledger-index' + onUpdateLedgerIndex: (callback) => { + ipcRenderer.on('update-ledger-index', callback) + }, }) diff --git a/_code-samples/build-a-desktop-wallet/js/1-ledger-index/view/renderer.js b/_code-samples/build-a-desktop-wallet/js/1-ledger-index/view/renderer.js index a683264297..d0a4afa461 100644 --- a/_code-samples/build-a-desktop-wallet/js/1-ledger-index/view/renderer.js +++ b/_code-samples/build-a-desktop-wallet/js/1-ledger-index/view/renderer.js @@ -3,5 +3,5 @@ const ledgerIndexEl = document.getElementById('ledger-index') // Here we define the callback function that performs the content update // whenever 'update-ledger-index' is called by the main process window.electronAPI.onUpdateLedgerIndex((_event, value) => { - ledgerIndexEl.innerText = value + ledgerIndexEl.innerText = value }) diff --git a/_code-samples/build-a-desktop-wallet/js/1-ledger-index/view/template.html b/_code-samples/build-a-desktop-wallet/js/1-ledger-index/view/template.html index aa6482d0fe..721f7b4569 100644 --- a/_code-samples/build-a-desktop-wallet/js/1-ledger-index/view/template.html +++ b/_code-samples/build-a-desktop-wallet/js/1-ledger-index/view/template.html @@ -1,20 +1,16 @@ - + + + + + + XRPL Wallet Tutorial (JavaScript / Electron) + - - - - - XRPL Wallet Tutorial (JavaScript / Electron) - - - - -

    Build a XRPL Wallet - Part 1/8

    - Latest validated ledger index: - - - - + +

    Build a XRPL Wallet - Part 1/8

    + Latest validated ledger index: + + diff --git a/_code-samples/build-a-desktop-wallet/js/2-async/index.js b/_code-samples/build-a-desktop-wallet/js/2-async/index.js index 0c5d00bf6a..ee237d1539 100644 --- a/_code-samples/build-a-desktop-wallet/js/2-async/index.js +++ b/_code-samples/build-a-desktop-wallet/js/2-async/index.js @@ -1,8 +1,8 @@ const { app, BrowserWindow } = require('electron') const path = require('path') -const xrpl = require("xrpl") +const xrpl = require('xrpl') -const TESTNET_URL = "wss://s.altnet.rippletest.net:51233" +const TESTNET_URL = 'wss://s.altnet.rippletest.net:51233' /** * This function creates our application window @@ -10,18 +10,17 @@ const TESTNET_URL = "wss://s.altnet.rippletest.net:51233" * @returns {Electron.CrossProcessExports.BrowserWindow} */ const createWindow = () => { + const appWindow = new BrowserWindow({ + width: 1024, + height: 768, + webPreferences: { + preload: path.join(__dirname, 'view', 'preload.js'), + }, + }) - const appWindow = new BrowserWindow({ - width: 1024, - height: 768, - webPreferences: { - preload: path.join(__dirname, 'view', 'preload.js'), - }, - }) + appWindow.loadFile(path.join(__dirname, 'view', 'template.html')) - appWindow.loadFile(path.join(__dirname, 'view', 'template.html')) - - return appWindow + return appWindow } // Step 2 changes - main whenReady function - start @@ -32,23 +31,23 @@ const createWindow = () => { * @returns {Promise} */ const main = async () => { - const appWindow = createWindow() + const appWindow = createWindow() - const client = new xrpl.Client(TESTNET_URL) + const client = new xrpl.Client(TESTNET_URL) - await client.connect() + await client.connect() - // Subscribe client to 'ledger' events - // Reference: https://xrpl.org/docs/references/http-websocket-apis/public-api-methods/subscription-methods/subscribe - await client.request({ - "command": "subscribe", - "streams": ["ledger"] - }) + // Subscribe client to 'ledger' events + // Reference: https://xrpl.org/docs/references/http-websocket-apis/public-api-methods/subscription-methods/subscribe + await client.request({ + command: 'subscribe', + streams: ['ledger'], + }) - // Dispatch 'update-ledger-data' event - client.on("ledgerClosed", async (ledger) => { - appWindow.webContents.send('update-ledger-data', ledger) - }) + // Dispatch 'update-ledger-data' event + client.on('ledgerClosed', async (ledger) => { + appWindow.webContents.send('update-ledger-data', ledger) + }) } app.whenReady().then(main) diff --git a/_code-samples/build-a-desktop-wallet/js/2-async/view/preload.js b/_code-samples/build-a-desktop-wallet/js/2-async/view/preload.js index eb039b7b86..1de27ab9bb 100644 --- a/_code-samples/build-a-desktop-wallet/js/2-async/view/preload.js +++ b/_code-samples/build-a-desktop-wallet/js/2-async/view/preload.js @@ -1,7 +1,7 @@ -const { contextBridge, ipcRenderer } = require('electron'); +const { contextBridge, ipcRenderer } = require('electron') contextBridge.exposeInMainWorld('electronAPI', { - onUpdateLedgerData: (callback) => { - ipcRenderer.on('update-ledger-data', callback) - } + onUpdateLedgerData: (callback) => { + ipcRenderer.on('update-ledger-data', callback) + }, }) diff --git a/_code-samples/build-a-desktop-wallet/js/2-async/view/renderer.js b/_code-samples/build-a-desktop-wallet/js/2-async/view/renderer.js index 954446e60b..8802b8076d 100644 --- a/_code-samples/build-a-desktop-wallet/js/2-async/view/renderer.js +++ b/_code-samples/build-a-desktop-wallet/js/2-async/view/renderer.js @@ -6,10 +6,10 @@ const ledgerCloseTimeEl = document.getElementById('ledger-close-time') // Step 2 code additions - end window.electronAPI.onUpdateLedgerData((_event, value) => { - ledgerIndexEl.innerText = value.ledger_index + ledgerIndexEl.innerText = value.ledger_index - // Step 2 code additions - start - ledgerHashEl.innerText = value.ledger_hash - ledgerCloseTimeEl.innerText = value.ledger_time - // Step 2 code additions - end + // Step 2 code additions - start + ledgerHashEl.innerText = value.ledger_hash + ledgerCloseTimeEl.innerText = value.ledger_time + // Step 2 code additions - end }) diff --git a/_code-samples/build-a-desktop-wallet/js/2-async/view/template.html b/_code-samples/build-a-desktop-wallet/js/2-async/view/template.html index fb6cc76f22..65863eb248 100644 --- a/_code-samples/build-a-desktop-wallet/js/2-async/view/template.html +++ b/_code-samples/build-a-desktop-wallet/js/2-async/view/template.html @@ -1,21 +1,19 @@ - + + + + + + XRPL Wallet Tutorial (JavaScript / Electron) + - - - - - XRPL Wallet Tutorial (JavaScript / Electron) - - - -

    Build a XRPL Wallet - Part 2/8

    - Latest validated ledger stats
    - Ledger Index:
    - Ledger Hash:
    - Close Time:
    - - - + +

    Build a XRPL Wallet - Part 2/8

    + Latest validated ledger stats
    + Ledger Index:
    + Ledger Hash:
    + Close Time:
    + + diff --git a/_code-samples/build-a-desktop-wallet/js/3-account/index.js b/_code-samples/build-a-desktop-wallet/js/3-account/index.js index eb6e640d88..288173383c 100644 --- a/_code-samples/build-a-desktop-wallet/js/3-account/index.js +++ b/_code-samples/build-a-desktop-wallet/js/3-account/index.js @@ -1,78 +1,76 @@ -const { app, BrowserWindow, ipcMain} = require('electron') +const { app, BrowserWindow, ipcMain } = require('electron') const path = require('path') -const xrpl = require("xrpl") -const { prepareAccountData, prepareLedgerData} = require('../library/3_helpers') +const xrpl = require('xrpl') +const { prepareAccountData, prepareLedgerData } = require('../library/3_helpers') -const TESTNET_URL = "wss://s.altnet.rippletest.net:51233" +const TESTNET_URL = 'wss://s.altnet.rippletest.net:51233' const createWindow = () => { + const appWindow = new BrowserWindow({ + width: 1024, + height: 768, + webPreferences: { + preload: path.join(__dirname, 'view', 'preload.js'), + }, + }) - const appWindow = new BrowserWindow({ - width: 1024, - height: 768, - webPreferences: { - preload: path.join(__dirname, 'view', 'preload.js'), - }, - }) + appWindow.loadFile(path.join(__dirname, 'view', 'template.html')) - appWindow.loadFile(path.join(__dirname, 'view', 'template.html')) - - return appWindow + return appWindow } const main = async () => { - const appWindow = createWindow() + const appWindow = createWindow() - ipcMain.on('address-entered', async (event, address) => { + ipcMain.on('address-entered', async (event, address) => { + const client = new xrpl.Client(TESTNET_URL) - const client = new xrpl.Client(TESTNET_URL) + await client.connect() - await client.connect() - - // Reference: https://xrpl.org/docs/references/http-websocket-apis/public-api-methods/subscription-methods/subscribe - await client.request({ - "command": "subscribe", - "streams": ["ledger"], - "accounts": [address] - }) - - // Reference: https://xrpl.org/docs/references/http-websocket-apis/public-api-methods/subscription-methods/subscribe#ledger-stream - client.on("ledgerClosed", async (rawLedgerData) => { - const ledger = prepareLedgerData(rawLedgerData) - appWindow.webContents.send('update-ledger-data', ledger) - }) - - // Initial Ledger Request -> Get account details on startup - // Reference: https://xrpl.org/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger - const ledgerResponse = await client.request({ - "command": "ledger" - }) - const initialLedgerData = prepareLedgerData(ledgerResponse.result.closed.ledger) - appWindow.webContents.send('update-ledger-data', initialLedgerData) - - // Reference: https://xrpl.org/docs/references/http-websocket-apis/public-api-methods/subscription-methods/subscribe#transaction-streams - client.on("transaction", async (transaction) => { - // Reference: https://xrpl.org/docs/references/http-websocket-apis/public-api-methods/account-methods/account_info - const accountInfoRequest = { - "command": "account_info", - "account": address, - "ledger_index": transaction.ledger_index - } - const accountInfoResponse = await client.request(accountInfoRequest) - const accountData = prepareAccountData(accountInfoResponse.result.account_data) - appWindow.webContents.send('update-account-data', accountData) - }) - - // Initial Account Request -> Get account details on startup - // Reference: https://xrpl.org/docs/references/http-websocket-apis/public-api-methods/account-methods/account_info - const accountInfoResponse = await client.request({ - "command": "account_info", - "account": address, - "ledger_index": "current" - }) - const initialAccountData = prepareAccountData(accountInfoResponse.result.account_data) - appWindow.webContents.send('update-account-data', initialAccountData) + // Reference: https://xrpl.org/docs/references/http-websocket-apis/public-api-methods/subscription-methods/subscribe + await client.request({ + command: 'subscribe', + streams: ['ledger'], + accounts: [address], }) + + // Reference: https://xrpl.org/docs/references/http-websocket-apis/public-api-methods/subscription-methods/subscribe#ledger-stream + client.on('ledgerClosed', async (rawLedgerData) => { + const ledger = prepareLedgerData(rawLedgerData) + appWindow.webContents.send('update-ledger-data', ledger) + }) + + // Initial Ledger Request -> Get account details on startup + // Reference: https://xrpl.org/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger + const ledgerResponse = await client.request({ + command: 'ledger', + }) + const initialLedgerData = prepareLedgerData(ledgerResponse.result.closed.ledger) + appWindow.webContents.send('update-ledger-data', initialLedgerData) + + // Reference: https://xrpl.org/docs/references/http-websocket-apis/public-api-methods/subscription-methods/subscribe#transaction-streams + client.on('transaction', async (transaction) => { + // Reference: https://xrpl.org/docs/references/http-websocket-apis/public-api-methods/account-methods/account_info + const accountInfoRequest = { + command: 'account_info', + account: address, + ledger_index: transaction.ledger_index, + } + const accountInfoResponse = await client.request(accountInfoRequest) + const accountData = prepareAccountData(accountInfoResponse.result.account_data) + appWindow.webContents.send('update-account-data', accountData) + }) + + // Initial Account Request -> Get account details on startup + // Reference: https://xrpl.org/docs/references/http-websocket-apis/public-api-methods/account-methods/account_info + const accountInfoResponse = await client.request({ + command: 'account_info', + account: address, + ledger_index: 'current', + }) + const initialAccountData = prepareAccountData(accountInfoResponse.result.account_data) + appWindow.webContents.send('update-account-data', initialAccountData) + }) } app.whenReady().then(main) diff --git a/_code-samples/build-a-desktop-wallet/js/3-account/view/preload.js b/_code-samples/build-a-desktop-wallet/js/3-account/view/preload.js index d45e42aa29..ead6604c24 100644 --- a/_code-samples/build-a-desktop-wallet/js/3-account/view/preload.js +++ b/_code-samples/build-a-desktop-wallet/js/3-account/view/preload.js @@ -1,16 +1,16 @@ -const { contextBridge, ipcRenderer } = require('electron'); +const { contextBridge, ipcRenderer } = require('electron') contextBridge.exposeInMainWorld('electronAPI', { - onUpdateLedgerData: (callback) => { - ipcRenderer.on('update-ledger-data', callback) - }, + onUpdateLedgerData: (callback) => { + ipcRenderer.on('update-ledger-data', callback) + }, - // Step 3 code additions - start - onEnterAccountAddress: (address) => { - ipcRenderer.send('address-entered', address) - }, - onUpdateAccountData: (callback) => { - ipcRenderer.on('update-account-data', callback) - } - //Step 3 code additions - end + // Step 3 code additions - start + onEnterAccountAddress: (address) => { + ipcRenderer.send('address-entered', address) + }, + onUpdateAccountData: (callback) => { + ipcRenderer.on('update-account-data', callback) + }, + //Step 3 code additions - end }) diff --git a/_code-samples/build-a-desktop-wallet/js/3-account/view/renderer.js b/_code-samples/build-a-desktop-wallet/js/3-account/view/renderer.js index 6991dcf8df..c2f67b5d78 100644 --- a/_code-samples/build-a-desktop-wallet/js/3-account/view/renderer.js +++ b/_code-samples/build-a-desktop-wallet/js/3-account/view/renderer.js @@ -1,17 +1,17 @@ -document.addEventListener('DOMContentLoaded', openAccountAddressDialog); +document.addEventListener('DOMContentLoaded', openAccountAddressDialog) -function openAccountAddressDialog(){ - const accountAddressDialog = document.getElementById('account-address-dialog'); - const accountAddressInput = accountAddressDialog.querySelector('input'); - const submitButton = accountAddressDialog.querySelector('button[type="submit"]'); +function openAccountAddressDialog() { + const accountAddressDialog = document.getElementById('account-address-dialog') + const accountAddressInput = accountAddressDialog.querySelector('input') + const submitButton = accountAddressDialog.querySelector('button[type="submit"]') - submitButton.addEventListener('click', () => { - const address = accountAddressInput.value; - window.electronAPI.onEnterAccountAddress(address) - accountAddressDialog.close() - }); + submitButton.addEventListener('click', () => { + const address = accountAddressInput.value + window.electronAPI.onEnterAccountAddress(address) + accountAddressDialog.close() + }) - accountAddressDialog.showModal() + accountAddressDialog.showModal() } const ledgerIndexEl = document.getElementById('ledger-index') @@ -19,9 +19,9 @@ const ledgerHashEl = document.getElementById('ledger-hash') const ledgerCloseTimeEl = document.getElementById('ledger-close-time') window.electronAPI.onUpdateLedgerData((_event, ledger) => { - ledgerIndexEl.innerText = ledger.ledgerIndex - ledgerHashEl.innerText = ledger.ledgerHash - ledgerCloseTimeEl.innerText = ledger.ledgerCloseTime + ledgerIndexEl.innerText = ledger.ledgerIndex + ledgerHashEl.innerText = ledger.ledgerHash + ledgerCloseTimeEl.innerText = ledger.ledgerCloseTime }) const accountAddressClassicEl = document.getElementById('account-address-classic') @@ -29,7 +29,7 @@ const accountAddressXEl = document.getElementById('account-address-x') const accountBalanceEl = document.getElementById('account-balance') window.electronAPI.onUpdateAccountData((_event, value) => { - accountAddressClassicEl.innerText = value.classicAddress - accountAddressXEl.innerText = value.xAddress - accountBalanceEl.innerText = value.xrpBalance + accountAddressClassicEl.innerText = value.classicAddress + accountAddressXEl.innerText = value.xAddress + accountBalanceEl.innerText = value.xrpBalance }) diff --git a/_code-samples/build-a-desktop-wallet/js/3-account/view/template.html b/_code-samples/build-a-desktop-wallet/js/3-account/view/template.html index 5cc580a1cd..d029f9e709 100644 --- a/_code-samples/build-a-desktop-wallet/js/3-account/view/template.html +++ b/_code-samples/build-a-desktop-wallet/js/3-account/view/template.html @@ -1,45 +1,41 @@ - + - - - - - + + + + XRPL Wallet Tutorial (JavaScript / Electron) - - - + +

    Build a XRPL Wallet - Part 3/8

    - Account - Classic Address:
    - X-Address:
    - XRP Balance:
    + Account + Classic Address:
    + X-Address:
    + XRP Balance:
    - Latest validated ledger - Ledger Index:
    - Ledger Hash:
    - Close Time:
    + Latest validated ledger + Ledger Index:
    + Ledger Hash:
    + Close Time:
    -
    -
    - - -
    -
    - -
    - +
    +
    + + +
    +
    + +
    +
    + - - - - + diff --git a/_code-samples/build-a-desktop-wallet/js/4-tx-history/index.js b/_code-samples/build-a-desktop-wallet/js/4-tx-history/index.js index 8ea4400858..5587badac3 100644 --- a/_code-samples/build-a-desktop-wallet/js/4-tx-history/index.js +++ b/_code-samples/build-a-desktop-wallet/js/4-tx-history/index.js @@ -1,84 +1,82 @@ -const {app, BrowserWindow, ipcMain} = require('electron') +const { app, BrowserWindow, ipcMain } = require('electron') const path = require('path') -const xrpl = require("xrpl") -const { prepareAccountData, prepareLedgerData} = require('../library/3_helpers') +const xrpl = require('xrpl') +const { prepareAccountData, prepareLedgerData } = require('../library/3_helpers') const { prepareTxData } = require('../library/4_helpers') -const TESTNET_URL = "wss://s.altnet.rippletest.net:51233" +const TESTNET_URL = 'wss://s.altnet.rippletest.net:51233' const createWindow = () => { + const appWindow = new BrowserWindow({ + width: 1024, + height: 768, + webPreferences: { + preload: path.join(__dirname, 'view', 'preload.js'), + }, + }) - const appWindow = new BrowserWindow({ - width: 1024, - height: 768, - webPreferences: { - preload: path.join(__dirname, 'view', 'preload.js'), - }, - }) + appWindow.loadFile(path.join(__dirname, 'view', 'template.html')) - appWindow.loadFile(path.join(__dirname, 'view', 'template.html')) - - return appWindow + return appWindow } const main = async () => { - const appWindow = createWindow() + const appWindow = createWindow() - ipcMain.on('address-entered', async (event, address) => { + ipcMain.on('address-entered', async (event, address) => { + const client = new xrpl.Client(TESTNET_URL) - const client = new xrpl.Client(TESTNET_URL) + await client.connect() - await client.connect() - - // Reference: https://xrpl.org/docs/references/http-websocket-apis/public-api-methods/subscription-methods/subscribe - await client.request({ - "command": "subscribe", - "streams": ["ledger"], - "accounts": [address] - }) - - // Reference: https://xrpl.org/docs/references/http-websocket-apis/public-api-methods/subscription-methods/subscribe#ledger-stream - client.on("ledgerClosed", async (rawLedgerData) => { - const ledger = prepareLedgerData(rawLedgerData) - appWindow.webContents.send('update-ledger-data', ledger) - }) - - // Wait for transaction on subscribed account and re-request account data - client.on("transaction", async (transaction) => { - // Reference: https://xrpl.org/docs/references/http-websocket-apis/public-api-methods/account-methods/account_info - const accountInfoRequest = { - "command": "account_info", - "account": address, - "ledger_index": transaction.ledger_index - } - - const accountInfoResponse = await client.request(accountInfoRequest) - const accountData = prepareAccountData(accountInfoResponse.result.account_data) - appWindow.webContents.send('update-account-data', accountData) - - const transactions = prepareTxData([transaction]) - appWindow.webContents.send('update-transaction-data', transactions) - }) - - // Initial Account Request -> Get account details on startup - // Reference: https://xrpl.org/docs/references/http-websocket-apis/public-api-methods/account-methods/account_info - const accountInfoResponse = await client.request({ - "command": "account_info", - "account": address, - "ledger_index": "current" - }) - const accountData = prepareAccountData(accountInfoResponse.result.account_data) - appWindow.webContents.send('update-account-data', accountData) - - // Initial Transaction Request -> List account transactions on startup - // Reference: https://xrpl.org/docs/references/http-websocket-apis/public-api-methods/account-methods/account_tx - const txResponse = await client.request({ - "command": "account_tx", - "account": address - }) - const transactions = prepareTxData(txResponse.result.transactions) - appWindow.webContents.send('update-transaction-data', transactions) + // Reference: https://xrpl.org/docs/references/http-websocket-apis/public-api-methods/subscription-methods/subscribe + await client.request({ + command: 'subscribe', + streams: ['ledger'], + accounts: [address], }) + + // Reference: https://xrpl.org/docs/references/http-websocket-apis/public-api-methods/subscription-methods/subscribe#ledger-stream + client.on('ledgerClosed', async (rawLedgerData) => { + const ledger = prepareLedgerData(rawLedgerData) + appWindow.webContents.send('update-ledger-data', ledger) + }) + + // Wait for transaction on subscribed account and re-request account data + client.on('transaction', async (transaction) => { + // Reference: https://xrpl.org/docs/references/http-websocket-apis/public-api-methods/account-methods/account_info + const accountInfoRequest = { + command: 'account_info', + account: address, + ledger_index: transaction.ledger_index, + } + + const accountInfoResponse = await client.request(accountInfoRequest) + const accountData = prepareAccountData(accountInfoResponse.result.account_data) + appWindow.webContents.send('update-account-data', accountData) + + const transactions = prepareTxData([transaction]) + appWindow.webContents.send('update-transaction-data', transactions) + }) + + // Initial Account Request -> Get account details on startup + // Reference: https://xrpl.org/docs/references/http-websocket-apis/public-api-methods/account-methods/account_info + const accountInfoResponse = await client.request({ + command: 'account_info', + account: address, + ledger_index: 'current', + }) + const accountData = prepareAccountData(accountInfoResponse.result.account_data) + appWindow.webContents.send('update-account-data', accountData) + + // Initial Transaction Request -> List account transactions on startup + // Reference: https://xrpl.org/docs/references/http-websocket-apis/public-api-methods/account-methods/account_tx + const txResponse = await client.request({ + command: 'account_tx', + account: address, + }) + const transactions = prepareTxData(txResponse.result.transactions) + appWindow.webContents.send('update-transaction-data', transactions) + }) } app.whenReady().then(main) diff --git a/_code-samples/build-a-desktop-wallet/js/4-tx-history/view/preload.js b/_code-samples/build-a-desktop-wallet/js/4-tx-history/view/preload.js index 8e633d8b4d..fad6e4c654 100644 --- a/_code-samples/build-a-desktop-wallet/js/4-tx-history/view/preload.js +++ b/_code-samples/build-a-desktop-wallet/js/4-tx-history/view/preload.js @@ -1,19 +1,19 @@ -const { contextBridge, ipcRenderer } = require('electron'); +const { contextBridge, ipcRenderer } = require('electron') contextBridge.exposeInMainWorld('electronAPI', { - onUpdateLedgerData: (callback) => { - ipcRenderer.on('update-ledger-data', callback) - }, - onEnterAccountAddress: (address) => { - ipcRenderer.send('address-entered', address) - }, - onUpdateAccountData: (callback) => { - ipcRenderer.on('update-account-data', callback) - }, + onUpdateLedgerData: (callback) => { + ipcRenderer.on('update-ledger-data', callback) + }, + onEnterAccountAddress: (address) => { + ipcRenderer.send('address-entered', address) + }, + onUpdateAccountData: (callback) => { + ipcRenderer.on('update-account-data', callback) + }, - // Step 4 code additions - start - onUpdateTransactionData: (callback) => { - ipcRenderer.on('update-transaction-data', callback) - } - // Step 4 code additions - end + // Step 4 code additions - start + onUpdateTransactionData: (callback) => { + ipcRenderer.on('update-transaction-data', callback) + }, + // Step 4 code additions - end }) diff --git a/_code-samples/build-a-desktop-wallet/js/4-tx-history/view/renderer.js b/_code-samples/build-a-desktop-wallet/js/4-tx-history/view/renderer.js index 563bda03b7..7b8c89a4ae 100644 --- a/_code-samples/build-a-desktop-wallet/js/4-tx-history/view/renderer.js +++ b/_code-samples/build-a-desktop-wallet/js/4-tx-history/view/renderer.js @@ -1,17 +1,17 @@ -document.addEventListener('DOMContentLoaded', openAccountAddressDialog); +document.addEventListener('DOMContentLoaded', openAccountAddressDialog) -function openAccountAddressDialog(){ - const accountAddressDialog = document.getElementById('account-address-dialog'); - const accountAddressInput = accountAddressDialog.querySelector('input'); - const submitButton = accountAddressDialog.querySelector('button[type="submit"]'); +function openAccountAddressDialog() { + const accountAddressDialog = document.getElementById('account-address-dialog') + const accountAddressInput = accountAddressDialog.querySelector('input') + const submitButton = accountAddressDialog.querySelector('button[type="submit"]') - submitButton.addEventListener('click', () => { - const address = accountAddressInput.value; - window.electronAPI.onEnterAccountAddress(address) - accountAddressDialog.close() - }); + submitButton.addEventListener('click', () => { + const address = accountAddressInput.value + window.electronAPI.onEnterAccountAddress(address) + accountAddressDialog.close() + }) - accountAddressDialog.showModal() + accountAddressDialog.showModal() } const ledgerIndexEl = document.getElementById('ledger-index') @@ -19,9 +19,9 @@ const ledgerHashEl = document.getElementById('ledger-hash') const ledgerCloseTimeEl = document.getElementById('ledger-close-time') window.electronAPI.onUpdateLedgerData((_event, ledger) => { - ledgerIndexEl.innerText = ledger.ledgerIndex - ledgerHashEl.innerText = ledger.ledgerHash - ledgerCloseTimeEl.innerText = ledger.ledgerCloseTime + ledgerIndexEl.innerText = ledger.ledgerIndex + ledgerHashEl.innerText = ledger.ledgerHash + ledgerCloseTimeEl.innerText = ledger.ledgerCloseTime }) const accountAddressClassicEl = document.getElementById('account-address-classic') @@ -29,9 +29,9 @@ const accountAddressXEl = document.getElementById('account-address-x') const accountBalanceEl = document.getElementById('account-balance') window.electronAPI.onUpdateAccountData((_event, value) => { - accountAddressClassicEl.innerText = value.classicAddress - accountAddressXEl.innerText = value.xAddress - accountBalanceEl.innerText = value.xrpBalance + accountAddressClassicEl.innerText = value.classicAddress + accountAddressXEl.innerText = value.xAddress + accountBalanceEl.innerText = value.xrpBalance }) // Step 4 code additions - start @@ -39,17 +39,30 @@ const txTableBodyEl = document.getElementById('tx-table').tBodies[0] window.testEl = txTableBodyEl window.electronAPI.onUpdateTransactionData((_event, transactions) => { - for (let transaction of transactions) { - txTableBodyEl.insertAdjacentHTML( 'beforeend', - "
    " + - "" + - "" + - "" + - "" + - "" + - "" + - "" - ) - } + for (let transaction of transactions) { + txTableBodyEl.insertAdjacentHTML( + 'beforeend', + '' + + '' + + '' + + '' + + '' + + '' + + '' + + '', + ) + } }) // Step 4 code additions - end diff --git a/_code-samples/build-a-desktop-wallet/js/4-tx-history/view/template.html b/_code-samples/build-a-desktop-wallet/js/4-tx-history/view/template.html index de9c4ad163..1ae981f2dc 100644 --- a/_code-samples/build-a-desktop-wallet/js/4-tx-history/view/template.html +++ b/_code-samples/build-a-desktop-wallet/js/4-tx-history/view/template.html @@ -1,61 +1,58 @@ - + - - - - - + + + + XRPL Wallet Tutorial (JavaScript / Electron) - + - +

    Build a XRPL Wallet - Part 4/8

    - Account - Classic Address:
    - X-Address:
    - XRP Balance:
    + Account + Classic Address:
    + X-Address:
    + XRP Balance:
    - Latest validated ledger - Ledger Index:
    - Ledger Hash:
    - Close Time:
    + Latest validated ledger + Ledger Index:
    + Ledger Hash:
    + Close Time:
    - Transactions: -
    {translate("amendment.table.name", "Name")}{translate("amendment.table.introduced", "Introduced")}{translate("amendment.table.status", "Status")} + {translate('amendment.table.name', 'Name')} + + {translate('amendment.table.introduced', 'Introduced')} + + {translate('amendment.table.status', 'Status')} +
    " + transaction.confirmed + "" + transaction.type + "" + transaction.from + "" + transaction.to + "" + transaction.value + "" + transaction.hash + "
    ' + + transaction.confirmed + + '' + + transaction.type + + '' + + transaction.from + + '' + + transaction.to + + '' + + transaction.value + + '' + + transaction.hash + + '
    - - - - - - - - - - - -
    ConfirmedTypeFromToValue DeliveredHash
    + Transactions: + + + + + + + + + + + + +
    ConfirmedTypeFromToValue DeliveredHash
    -
    -
    - - -
    -
    - -
    -
    +
    +
    + + +
    +
    + +
    +
    + - - - - + diff --git a/_code-samples/build-a-desktop-wallet/js/5-password/index.js b/_code-samples/build-a-desktop-wallet/js/5-password/index.js index c0d78e0456..e197bce8dc 100644 --- a/_code-samples/build-a-desktop-wallet/js/5-password/index.js +++ b/_code-samples/build-a-desktop-wallet/js/5-password/index.js @@ -1,88 +1,87 @@ -const {app, BrowserWindow, ipcMain} = require('electron') +const { app, BrowserWindow, ipcMain } = require('electron') const fs = require('fs') const path = require('path') -const xrpl = require("xrpl") +const xrpl = require('xrpl') const { initialize, subscribe, saveSaltedSeed, loadSaltedSeed } = require('../library/5_helpers') -const TESTNET_URL = "wss://s.altnet.rippletest.net:51233" +const TESTNET_URL = 'wss://s.altnet.rippletest.net:51233' const WALLET_DIR = '../Wallet' const createWindow = () => { + const appWindow = new BrowserWindow({ + width: 1024, + height: 768, + webPreferences: { + preload: path.join(__dirname, 'view', 'preload.js'), + }, + }) - const appWindow = new BrowserWindow({ - width: 1024, - height: 768, - webPreferences: { - preload: path.join(__dirname, 'view', 'preload.js'), - }, - }) + appWindow.loadFile(path.join(__dirname, 'view', 'template.html')) - appWindow.loadFile(path.join(__dirname, 'view', 'template.html')) - - return appWindow + return appWindow } // Step 5 - new main function - start const main = async () => { - const appWindow = createWindow() + const appWindow = createWindow() - // Create Wallet directory in case it does not exist yet - if (!fs.existsSync(path.join(__dirname, WALLET_DIR))) { - fs.mkdirSync(path.join(__dirname, WALLET_DIR)); + // Create Wallet directory in case it does not exist yet + if (!fs.existsSync(path.join(__dirname, WALLET_DIR))) { + fs.mkdirSync(path.join(__dirname, WALLET_DIR)) + } + + let seed = null + + ipcMain.on('seed-entered', async (event, providedSeed) => { + seed = providedSeed + appWindow.webContents.send('open-password-dialog') + }) + + ipcMain.on('password-entered', async (event, password) => { + if (!fs.existsSync(path.join(__dirname, WALLET_DIR, 'seed.txt'))) { + saveSaltedSeed(WALLET_DIR, seed, password) + } else { + try { + seed = loadSaltedSeed(WALLET_DIR, password) + } catch (error) { + appWindow.webContents.send('open-password-dialog', true) + return + } } - let seed = null; + const wallet = xrpl.Wallet.fromSeed(seed) + // For compatibility with seeds generated using secp256k1 + // (the old default algorithm), use the following instead: + // const wallet = xrpl.Wallet.fromSeed(seed, {algorithm: "secp256k1"}) - ipcMain.on('seed-entered', async (event, providedSeed) => { - seed = providedSeed - appWindow.webContents.send('open-password-dialog') - }) + const client = new xrpl.Client(TESTNET_URL) - ipcMain.on('password-entered', async (event, password) => { - if (!fs.existsSync(path.join(__dirname, WALLET_DIR , 'seed.txt'))) { - saveSaltedSeed(WALLET_DIR, seed, password) - } else { - try { - seed = loadSaltedSeed(WALLET_DIR, password) - } catch (error) { - appWindow.webContents.send('open-password-dialog', true) - return - } - } + await client.connect() - const wallet = xrpl.Wallet.fromSeed(seed) - // For compatibility with seeds generated using secp256k1 - // (the old default algorithm), use the following instead: - // const wallet = xrpl.Wallet.fromSeed(seed, {algorithm: "secp256k1"}) + await subscribe(client, wallet, appWindow) - const client = new xrpl.Client(TESTNET_URL) + await initialize(client, wallet, appWindow) + }) - await client.connect() + ipcMain.on('request-seed-change', (event) => { + fs.rmSync(path.join(__dirname, WALLET_DIR, 'seed.txt')) + fs.rmSync(path.join(__dirname, WALLET_DIR, 'salt.txt')) + appWindow.webContents.send('open-seed-dialog') + }) - await subscribe(client, wallet, appWindow) - - await initialize(client, wallet, appWindow) - }) - - ipcMain.on('request-seed-change', (event) => { - fs.rmSync(path.join(__dirname, WALLET_DIR , 'seed.txt')) - fs.rmSync(path.join(__dirname, WALLET_DIR , 'salt.txt')) - appWindow.webContents.send('open-seed-dialog') - }) - - // We have to wait for the application frontend to be ready, otherwise - // we might run into a race condition and the open-dialog events - // get triggered before the callbacks are attached - appWindow.once('ready-to-show', () => { - // If there is no seed present yet, ask for it, otherwise query for the password - // for the seed that has been saved - if (!fs.existsSync(path.join(__dirname, WALLET_DIR, 'seed.txt'))) { - appWindow.webContents.send('open-seed-dialog') - } else { - appWindow.webContents.send('open-password-dialog') - } - }) + // We have to wait for the application frontend to be ready, otherwise + // we might run into a race condition and the open-dialog events + // get triggered before the callbacks are attached + appWindow.once('ready-to-show', () => { + // If there is no seed present yet, ask for it, otherwise query for the password + // for the seed that has been saved + if (!fs.existsSync(path.join(__dirname, WALLET_DIR, 'seed.txt'))) { + appWindow.webContents.send('open-seed-dialog') + } else { + appWindow.webContents.send('open-password-dialog') + } + }) } // Step 5 - new main function - end diff --git a/_code-samples/build-a-desktop-wallet/js/5-password/view/preload.js b/_code-samples/build-a-desktop-wallet/js/5-password/view/preload.js index a142ed5b08..36390a4f92 100644 --- a/_code-samples/build-a-desktop-wallet/js/5-password/view/preload.js +++ b/_code-samples/build-a-desktop-wallet/js/5-password/view/preload.js @@ -1,31 +1,31 @@ -const { contextBridge, ipcRenderer } = require('electron'); +const { contextBridge, ipcRenderer } = require('electron') contextBridge.exposeInMainWorld('electronAPI', { - // Step 5 code additions - start - onOpenSeedDialog: (callback) => { - ipcRenderer.on('open-seed-dialog', callback) - }, - onEnterSeed: (seed) => { - ipcRenderer.send('seed-entered', seed) - }, - onOpenPasswordDialog: (callback) => { - ipcRenderer.on('open-password-dialog', callback) - }, - onEnterPassword: (password) => { - ipcRenderer.send('password-entered', password) - }, - requestSeedChange: () => { - ipcRenderer.send('request-seed-change') - }, - // Step 5 code additions - end + // Step 5 code additions - start + onOpenSeedDialog: (callback) => { + ipcRenderer.on('open-seed-dialog', callback) + }, + onEnterSeed: (seed) => { + ipcRenderer.send('seed-entered', seed) + }, + onOpenPasswordDialog: (callback) => { + ipcRenderer.on('open-password-dialog', callback) + }, + onEnterPassword: (password) => { + ipcRenderer.send('password-entered', password) + }, + requestSeedChange: () => { + ipcRenderer.send('request-seed-change') + }, + // Step 5 code additions - end - onUpdateLedgerData: (callback) => { - ipcRenderer.on('update-ledger-data', callback) - }, - onUpdateAccountData: (callback) => { - ipcRenderer.on('update-account-data', callback) - }, - onUpdateTransactionData: (callback) => { - ipcRenderer.on('update-transaction-data', callback) - } + onUpdateLedgerData: (callback) => { + ipcRenderer.on('update-ledger-data', callback) + }, + onUpdateAccountData: (callback) => { + ipcRenderer.on('update-account-data', callback) + }, + onUpdateTransactionData: (callback) => { + ipcRenderer.on('update-transaction-data', callback) + }, }) diff --git a/_code-samples/build-a-desktop-wallet/js/5-password/view/renderer.js b/_code-samples/build-a-desktop-wallet/js/5-password/view/renderer.js index ea9dd7b682..18bd822a06 100644 --- a/_code-samples/build-a-desktop-wallet/js/5-password/view/renderer.js +++ b/_code-samples/build-a-desktop-wallet/js/5-password/view/renderer.js @@ -4,15 +4,15 @@ const seedInput = seedDialog.querySelector('input') const seedSubmitButton = seedDialog.querySelector('button[type="submit"]') const seedSubmitFn = () => { - const seed = seedInput.value - window.electronAPI.onEnterSeed(seed) - seedDialog.close() + const seed = seedInput.value + window.electronAPI.onEnterSeed(seed) + seedDialog.close() } window.electronAPI.onOpenSeedDialog((_event) => { - seedSubmitButton.addEventListener('click', seedSubmitFn, {once : true}); + seedSubmitButton.addEventListener('click', seedSubmitFn, { once: true }) - seedDialog.showModal() + seedDialog.showModal() }) const passwordDialog = document.getElementById('password-dialog') @@ -22,24 +22,24 @@ const passwordSubmitButton = passwordDialog.querySelector('button[type="submit"] const changeSeedButton = passwordDialog.querySelector('button[type="button"]') const handlePasswordSubmitFn = () => { - const password = passwordInput.value - window.electronAPI.onEnterPassword(password) - passwordDialog.close() + const password = passwordInput.value + window.electronAPI.onEnterPassword(password) + passwordDialog.close() } const handleChangeSeedFn = () => { - passwordDialog.close() - window.electronAPI.requestSeedChange() + passwordDialog.close() + window.electronAPI.requestSeedChange() } window.electronAPI.onOpenPasswordDialog((_event, showInvalidPassword = false) => { - if (showInvalidPassword) { - passwordError.innerHTML = 'INVALID PASSWORD' - } - passwordSubmitButton.addEventListener('click', handlePasswordSubmitFn, {once : true}); - changeSeedButton.addEventListener('click', handleChangeSeedFn, {once : true}); - passwordDialog.showModal() -}); + if (showInvalidPassword) { + passwordError.innerHTML = 'INVALID PASSWORD' + } + passwordSubmitButton.addEventListener('click', handlePasswordSubmitFn, { once: true }) + changeSeedButton.addEventListener('click', handleChangeSeedFn, { once: true }) + passwordDialog.showModal() +}) // Step 5 code additions - end const ledgerIndexEl = document.getElementById('ledger-index') @@ -47,9 +47,9 @@ const ledgerHashEl = document.getElementById('ledger-hash') const ledgerCloseTimeEl = document.getElementById('ledger-close-time') window.electronAPI.onUpdateLedgerData((_eventledger, ledger) => { - ledgerIndexEl.innerText = ledger.ledgerIndex - ledgerHashEl.innerText = ledger.ledgerHash - ledgerCloseTimeEl.innerText = ledger.ledgerCloseTime + ledgerIndexEl.innerText = ledger.ledgerIndex + ledgerHashEl.innerText = ledger.ledgerHash + ledgerCloseTimeEl.innerText = ledger.ledgerCloseTime }) const accountAddressClassicEl = document.getElementById('account-address-classic') @@ -57,25 +57,38 @@ const accountAddressXEl = document.getElementById('account-address-x') const accountBalanceEl = document.getElementById('account-balance') window.electronAPI.onUpdateAccountData((_event, value) => { - accountAddressClassicEl.innerText = value.classicAddress - accountAddressXEl.innerText = value.xAddress - accountBalanceEl.innerText = value.xrpBalance + accountAddressClassicEl.innerText = value.classicAddress + accountAddressXEl.innerText = value.xAddress + accountBalanceEl.innerText = value.xrpBalance }) const txTableBodyEl = document.getElementById('tx-table').tBodies[0] window.testEl = txTableBodyEl window.electronAPI.onUpdateTransactionData((_event, transactions) => { - for (let transaction of transactions) { - txTableBodyEl.insertAdjacentHTML( 'beforeend', - "" + - "" + transaction.confirmed + "" + - "" + transaction.type + "" + - "" + transaction.from + "" + - "" + transaction.to + "" + - "" + transaction.value + "" + - "" + transaction.hash + "" + - "" - ) - } + for (let transaction of transactions) { + txTableBodyEl.insertAdjacentHTML( + 'beforeend', + '' + + '' + + transaction.confirmed + + '' + + '' + + transaction.type + + '' + + '' + + transaction.from + + '' + + '' + + transaction.to + + '' + + '' + + transaction.value + + '' + + '' + + transaction.hash + + '' + + '', + ) + } }) diff --git a/_code-samples/build-a-desktop-wallet/js/5-password/view/template.html b/_code-samples/build-a-desktop-wallet/js/5-password/view/template.html index 2948859a89..10c3f39761 100644 --- a/_code-samples/build-a-desktop-wallet/js/5-password/view/template.html +++ b/_code-samples/build-a-desktop-wallet/js/5-password/view/template.html @@ -1,75 +1,72 @@ - + - - - - - + + + + XRPL Wallet Tutorial (JavaScript / Electron) - + - +

    Build a XRPL Wallet - Part 5/8

    - Account - Classic Address:
    - X-Address:
    - XRP Balance:
    + Account + Classic Address:
    + X-Address:
    + XRP Balance:
    - Latest validated ledger - Ledger Index:
    - Ledger Hash:
    - Close Time:
    + Latest validated ledger + Ledger Index:
    + Ledger Hash:
    + Close Time:
    - Transactions: - - - - - - - - - - - - -
    ConfirmedTypeFromToValue DeliveredHash
    + Transactions: + + + + + + + + + + + + +
    ConfirmedTypeFromToValue DeliveredHash
    -
    -
    - - -
    -
    - -
    -
    +
    +
    + + +
    +
    + +
    +
    -
    -
    -
    -
    - -
    -
    - - -
    -
    +
    +
    +
    +
    + +
    +
    + + +
    +
    + - - - - + diff --git a/_code-samples/build-a-desktop-wallet/js/6-styling/index.js b/_code-samples/build-a-desktop-wallet/js/6-styling/index.js index 95c640dc4a..c18c3c1d79 100644 --- a/_code-samples/build-a-desktop-wallet/js/6-styling/index.js +++ b/_code-samples/build-a-desktop-wallet/js/6-styling/index.js @@ -1,84 +1,83 @@ -const {app, BrowserWindow, ipcMain} = require('electron') +const { app, BrowserWindow, ipcMain } = require('electron') const fs = require('fs') const path = require('path') -const xrpl = require("xrpl") +const xrpl = require('xrpl') const { initialize, subscribe, saveSaltedSeed, loadSaltedSeed } = require('../library/5_helpers') -const TESTNET_URL = "wss://s.altnet.rippletest.net:51233" +const TESTNET_URL = 'wss://s.altnet.rippletest.net:51233' const WALLET_DIR = '../Wallet' const createWindow = () => { + const appWindow = new BrowserWindow({ + width: 1024, + height: 768, + webPreferences: { + preload: path.join(__dirname, 'view', 'preload.js'), + }, + }) - const appWindow = new BrowserWindow({ - width: 1024, - height: 768, - webPreferences: { - preload: path.join(__dirname, 'view', 'preload.js'), - }, - }) + appWindow.loadFile(path.join(__dirname, 'view', 'template.html')) - appWindow.loadFile(path.join(__dirname, 'view', 'template.html')) - - return appWindow + return appWindow } const main = async () => { - const appWindow = createWindow() + const appWindow = createWindow() - // Create Wallet directory in case it does not exist yet - if (!fs.existsSync(path.join(__dirname, WALLET_DIR))) { - fs.mkdirSync(path.join(__dirname, WALLET_DIR)); + // Create Wallet directory in case it does not exist yet + if (!fs.existsSync(path.join(__dirname, WALLET_DIR))) { + fs.mkdirSync(path.join(__dirname, WALLET_DIR)) + } + + let seed = null + + ipcMain.on('seed-entered', async (event, providedSeed) => { + seed = providedSeed + appWindow.webContents.send('open-password-dialog') + }) + + ipcMain.on('password-entered', async (event, password) => { + if (!fs.existsSync(path.join(__dirname, WALLET_DIR, 'seed.txt'))) { + saveSaltedSeed(WALLET_DIR, seed, password) + } else { + try { + seed = loadSaltedSeed(WALLET_DIR, password) + } catch (error) { + appWindow.webContents.send('open-password-dialog', true) + return + } } - let seed = null; + const wallet = xrpl.Wallet.fromSeed(seed) - ipcMain.on('seed-entered', async (event, providedSeed) => { - seed = providedSeed - appWindow.webContents.send('open-password-dialog') - }) + const client = new xrpl.Client(TESTNET_URL) - ipcMain.on('password-entered', async (event, password) => { - if (!fs.existsSync(path.join(__dirname, WALLET_DIR , 'seed.txt'))) { - saveSaltedSeed(WALLET_DIR, seed, password) - } else { - try { - seed = loadSaltedSeed(WALLET_DIR, password) - } catch (error) { - appWindow.webContents.send('open-password-dialog', true) - return - } - } + await client.connect() - const wallet = xrpl.Wallet.fromSeed(seed) + await subscribe(client, wallet, appWindow) - const client = new xrpl.Client(TESTNET_URL) + await initialize(client, wallet, appWindow) + }) - await client.connect() + ipcMain.on('request-seed-change', (event) => { + fs.rmSync(path.join(__dirname, WALLET_DIR, 'seed.txt')) + fs.rmSync(path.join(__dirname, WALLET_DIR, 'salt.txt')) + appWindow.webContents.send('open-seed-dialog') + }) - await subscribe(client, wallet, appWindow) - - await initialize(client, wallet, appWindow) - }) - - ipcMain.on('request-seed-change', (event) => { - fs.rmSync(path.join(__dirname, WALLET_DIR , 'seed.txt')) - fs.rmSync(path.join(__dirname, WALLET_DIR , 'salt.txt')) - appWindow.webContents.send('open-seed-dialog') - }) - - // We have to wait for the application frontend to be ready, otherwise - // we might run into a race condition and the ope-dialog events - // get triggered before the callbacks are attached - appWindow.once('ready-to-show', () => { - // If there is no seed present yet, ask for it, otherwise query for the password - // for the seed that has been saved - if (!fs.existsSync(path.join(__dirname, WALLET_DIR, 'seed.txt'))) { - appWindow.webContents.send('open-seed-dialog') - } else { - appWindow.webContents.send('open-password-dialog') - } - }) + // We have to wait for the application frontend to be ready, otherwise + // we might run into a race condition and the ope-dialog events + // get triggered before the callbacks are attached + appWindow.once('ready-to-show', () => { + // If there is no seed present yet, ask for it, otherwise query for the password + // for the seed that has been saved + if (!fs.existsSync(path.join(__dirname, WALLET_DIR, 'seed.txt'))) { + appWindow.webContents.send('open-seed-dialog') + } else { + appWindow.webContents.send('open-password-dialog') + } + }) } app.whenReady().then(main) diff --git a/_code-samples/build-a-desktop-wallet/js/6-styling/view/preload.js b/_code-samples/build-a-desktop-wallet/js/6-styling/view/preload.js index a142ed5b08..36390a4f92 100644 --- a/_code-samples/build-a-desktop-wallet/js/6-styling/view/preload.js +++ b/_code-samples/build-a-desktop-wallet/js/6-styling/view/preload.js @@ -1,31 +1,31 @@ -const { contextBridge, ipcRenderer } = require('electron'); +const { contextBridge, ipcRenderer } = require('electron') contextBridge.exposeInMainWorld('electronAPI', { - // Step 5 code additions - start - onOpenSeedDialog: (callback) => { - ipcRenderer.on('open-seed-dialog', callback) - }, - onEnterSeed: (seed) => { - ipcRenderer.send('seed-entered', seed) - }, - onOpenPasswordDialog: (callback) => { - ipcRenderer.on('open-password-dialog', callback) - }, - onEnterPassword: (password) => { - ipcRenderer.send('password-entered', password) - }, - requestSeedChange: () => { - ipcRenderer.send('request-seed-change') - }, - // Step 5 code additions - end + // Step 5 code additions - start + onOpenSeedDialog: (callback) => { + ipcRenderer.on('open-seed-dialog', callback) + }, + onEnterSeed: (seed) => { + ipcRenderer.send('seed-entered', seed) + }, + onOpenPasswordDialog: (callback) => { + ipcRenderer.on('open-password-dialog', callback) + }, + onEnterPassword: (password) => { + ipcRenderer.send('password-entered', password) + }, + requestSeedChange: () => { + ipcRenderer.send('request-seed-change') + }, + // Step 5 code additions - end - onUpdateLedgerData: (callback) => { - ipcRenderer.on('update-ledger-data', callback) - }, - onUpdateAccountData: (callback) => { - ipcRenderer.on('update-account-data', callback) - }, - onUpdateTransactionData: (callback) => { - ipcRenderer.on('update-transaction-data', callback) - } + onUpdateLedgerData: (callback) => { + ipcRenderer.on('update-ledger-data', callback) + }, + onUpdateAccountData: (callback) => { + ipcRenderer.on('update-account-data', callback) + }, + onUpdateTransactionData: (callback) => { + ipcRenderer.on('update-transaction-data', callback) + }, }) diff --git a/_code-samples/build-a-desktop-wallet/js/6-styling/view/renderer.js b/_code-samples/build-a-desktop-wallet/js/6-styling/view/renderer.js index 786d78ba64..43dc56c502 100644 --- a/_code-samples/build-a-desktop-wallet/js/6-styling/view/renderer.js +++ b/_code-samples/build-a-desktop-wallet/js/6-styling/view/renderer.js @@ -3,15 +3,15 @@ const seedInput = seedDialog.querySelector('input') const seedSubmitButton = seedDialog.querySelector('button[type="submit"]') const seedSubmitFn = () => { - const seed = seedInput.value - window.electronAPI.onEnterSeed(seed) - seedDialog.close() + const seed = seedInput.value + window.electronAPI.onEnterSeed(seed) + seedDialog.close() } window.electronAPI.onOpenSeedDialog((_event) => { - seedSubmitButton.addEventListener('click', seedSubmitFn, {once : true}); + seedSubmitButton.addEventListener('click', seedSubmitFn, { once: true }) - seedDialog.showModal() + seedDialog.showModal() }) const passwordDialog = document.getElementById('password-dialog') @@ -21,33 +21,33 @@ const passwordSubmitButton = passwordDialog.querySelector('button[type="submit"] const changeSeedButton = passwordDialog.querySelector('button[type="button"]') const handlePasswordSubmitFn = () => { - const password = passwordInput.value - window.electronAPI.onEnterPassword(password) - passwordDialog.close() + const password = passwordInput.value + window.electronAPI.onEnterPassword(password) + passwordDialog.close() } const handleChangeSeedFn = () => { - passwordDialog.close() - window.electronAPI.requestSeedChange() + passwordDialog.close() + window.electronAPI.requestSeedChange() } window.electronAPI.onOpenPasswordDialog((_event, showInvalidPassword = false) => { - if (showInvalidPassword) { - passwordError.innerHTML = 'INVALID PASSWORD' - } - passwordSubmitButton.addEventListener('click', handlePasswordSubmitFn, {once : true}); - changeSeedButton.addEventListener('click', handleChangeSeedFn, {once : true}); - passwordDialog.showModal() -}); + if (showInvalidPassword) { + passwordError.innerHTML = 'INVALID PASSWORD' + } + passwordSubmitButton.addEventListener('click', handlePasswordSubmitFn, { once: true }) + changeSeedButton.addEventListener('click', handleChangeSeedFn, { once: true }) + passwordDialog.showModal() +}) const ledgerIndexEl = document.getElementById('ledger-index') const ledgerHashEl = document.getElementById('ledger-hash') const ledgerCloseTimeEl = document.getElementById('ledger-close-time') window.electronAPI.onUpdateLedgerData((_eventledger, ledger) => { - ledgerIndexEl.innerText = ledger.ledgerIndex - ledgerHashEl.innerText = ledger.ledgerHash - ledgerCloseTimeEl.innerText = ledger.ledgerCloseTime + ledgerIndexEl.innerText = ledger.ledgerIndex + ledgerHashEl.innerText = ledger.ledgerHash + ledgerCloseTimeEl.innerText = ledger.ledgerCloseTime }) const accountAddressClassicEl = document.getElementById('account-address-classic') @@ -55,25 +55,38 @@ const accountAddressXEl = document.getElementById('account-address-x') const accountBalanceEl = document.getElementById('account-balance') window.electronAPI.onUpdateAccountData((_event, value) => { - accountAddressClassicEl.innerText = value.classicAddress - accountAddressXEl.innerText = value.xAddress - accountBalanceEl.innerText = value.xrpBalance + accountAddressClassicEl.innerText = value.classicAddress + accountAddressXEl.innerText = value.xAddress + accountBalanceEl.innerText = value.xrpBalance }) const txTableBodyEl = document.getElementById('tx-table').tBodies[0] window.testEl = txTableBodyEl window.electronAPI.onUpdateTransactionData((_event, transactions) => { - for (let transaction of transactions) { - txTableBodyEl.insertAdjacentHTML( 'beforeend', - "" + - "" + transaction.confirmed + "" + - "" + transaction.type + "" + - "" + transaction.from + "" + - "" + transaction.to + "" + - "" + transaction.value + "" + - "" + transaction.hash + "" + - "" - ) - } + for (let transaction of transactions) { + txTableBodyEl.insertAdjacentHTML( + 'beforeend', + '' + + '' + + transaction.confirmed + + '' + + '' + + transaction.type + + '' + + '' + + transaction.from + + '' + + '' + + transaction.to + + '' + + '' + + transaction.value + + '' + + '' + + transaction.hash + + '' + + '', + ) + } }) diff --git a/_code-samples/build-a-desktop-wallet/js/6-styling/view/template.html b/_code-samples/build-a-desktop-wallet/js/6-styling/view/template.html index 64894ca891..b8fd8a7ed3 100644 --- a/_code-samples/build-a-desktop-wallet/js/6-styling/view/template.html +++ b/_code-samples/build-a-desktop-wallet/js/6-styling/view/template.html @@ -1,120 +1,129 @@ - + - - - - + + + XRPL Wallet Tutorial (JavaScript / Electron) - - - - - + + + +
    -
    -
    -
    - - -
    -
    - -
    -
    +
    +
    + + +
    +
    + +
    +
    -
    -
    -
    -
    - -
    -
    - - -
    -
    +
    +
    +
    +
    + +
    +
    + + +
    +
    + - - - - - + + diff --git a/_code-samples/build-a-desktop-wallet/js/7-send-xrp/index.js b/_code-samples/build-a-desktop-wallet/js/7-send-xrp/index.js index 687030d5df..cebb6f190d 100644 --- a/_code-samples/build-a-desktop-wallet/js/7-send-xrp/index.js +++ b/_code-samples/build-a-desktop-wallet/js/7-send-xrp/index.js @@ -1,92 +1,90 @@ const { app, BrowserWindow, ipcMain } = require('electron') -const fs = require("fs"); +const fs = require('fs') const path = require('path') -const xrpl = require("xrpl") +const xrpl = require('xrpl') const { initialize, subscribe, saveSaltedSeed, loadSaltedSeed } = require('../library/5_helpers') const { sendXrp } = require('../library/7_helpers') -const TESTNET_URL = "wss://s.altnet.rippletest.net:51233" +const TESTNET_URL = 'wss://s.altnet.rippletest.net:51233' const WALLET_DIR = '../Wallet' const createWindow = () => { + const appWindow = new BrowserWindow({ + width: 1024, + height: 768, + webPreferences: { + preload: path.join(__dirname, 'view', 'preload.js'), + }, + }) - const appWindow = new BrowserWindow({ - width: 1024, - height: 768, - webPreferences: { - preload: path.join(__dirname, 'view', 'preload.js'), - }, - }) + appWindow.loadFile(path.join(__dirname, 'view', 'template.html')) - appWindow.loadFile(path.join(__dirname, 'view', 'template.html')) - - return appWindow + return appWindow } const main = async () => { - const appWindow = createWindow() + const appWindow = createWindow() - // Create Wallet directory in case it does not exist yet - if (!fs.existsSync(path.join(__dirname, WALLET_DIR))) { - fs.mkdirSync(path.join(__dirname, WALLET_DIR)); + // Create Wallet directory in case it does not exist yet + if (!fs.existsSync(path.join(__dirname, WALLET_DIR))) { + fs.mkdirSync(path.join(__dirname, WALLET_DIR)) + } + + let seed = null + + ipcMain.on('seed-entered', async (event, providedSeed) => { + seed = providedSeed + appWindow.webContents.send('open-password-dialog') + }) + + ipcMain.on('password-entered', async (event, password) => { + if (!fs.existsSync(path.join(__dirname, WALLET_DIR, 'seed.txt'))) { + saveSaltedSeed(WALLET_DIR, seed, password) + } else { + try { + seed = loadSaltedSeed(WALLET_DIR, password) + } catch (error) { + appWindow.webContents.send('open-password-dialog', true) + return + } } - let seed = null; + const wallet = xrpl.Wallet.fromSeed(seed) - ipcMain.on('seed-entered', async (event, providedSeed) => { - seed = providedSeed - appWindow.webContents.send('open-password-dialog') + const client = new xrpl.Client(TESTNET_URL) + + await client.connect() + + await subscribe(client, wallet, appWindow) + + await initialize(client, wallet, appWindow) + + ipcMain.on('send-xrp-action', (event, paymentData) => { + sendXrp(paymentData, client, wallet).then((result) => { + appWindow.webContents.send('send-xrp-transaction-finish', result) + }) }) + }) - ipcMain.on('password-entered', async (event, password) => { - if (!fs.existsSync(path.join(__dirname, WALLET_DIR , 'seed.txt'))) { - saveSaltedSeed(WALLET_DIR, seed, password) - } else { - try { - seed = loadSaltedSeed(WALLET_DIR, password) - } catch (error) { - appWindow.webContents.send('open-password-dialog', true) - return - } - } + ipcMain.on('request-seed-change', (event) => { + fs.rmSync(path.join(__dirname, WALLET_DIR, 'seed.txt')) + fs.rmSync(path.join(__dirname, WALLET_DIR, 'salt.txt')) + appWindow.webContents.send('open-seed-dialog') + }) - const wallet = xrpl.Wallet.fromSeed(seed) - - const client = new xrpl.Client(TESTNET_URL) - - await client.connect() - - await subscribe(client, wallet, appWindow) - - await initialize(client, wallet, appWindow) - - ipcMain.on('send-xrp-action', (event, paymentData) => { - sendXrp(paymentData, client, wallet).then((result) => { - appWindow.webContents.send('send-xrp-transaction-finish', result) - }) - }) - - }) - - ipcMain.on('request-seed-change', (event) => { - fs.rmSync(path.join(__dirname, WALLET_DIR , 'seed.txt')) - fs.rmSync(path.join(__dirname, WALLET_DIR , 'salt.txt')) - appWindow.webContents.send('open-seed-dialog') - }) - - // We have to wait for the application frontend to be ready, otherwise - // we might run into a race condition and the ope-dialog events - // get triggered before the callbacks are attached - appWindow.once('ready-to-show', () => { - // If there is no seed present yet, ask for it, otherwise query for the password - // for the seed that has been saved - if (!fs.existsSync(path.join(__dirname, WALLET_DIR, 'seed.txt'))) { - appWindow.webContents.send('open-seed-dialog') - } else { - appWindow.webContents.send('open-password-dialog') - } - }) + // We have to wait for the application frontend to be ready, otherwise + // we might run into a race condition and the ope-dialog events + // get triggered before the callbacks are attached + appWindow.once('ready-to-show', () => { + // If there is no seed present yet, ask for it, otherwise query for the password + // for the seed that has been saved + if (!fs.existsSync(path.join(__dirname, WALLET_DIR, 'seed.txt'))) { + appWindow.webContents.send('open-seed-dialog') + } else { + appWindow.webContents.send('open-password-dialog') + } + }) } app.whenReady().then(main) diff --git a/_code-samples/build-a-desktop-wallet/js/7-send-xrp/view/preload.js b/_code-samples/build-a-desktop-wallet/js/7-send-xrp/view/preload.js index 567609034f..83e8785833 100644 --- a/_code-samples/build-a-desktop-wallet/js/7-send-xrp/view/preload.js +++ b/_code-samples/build-a-desktop-wallet/js/7-send-xrp/view/preload.js @@ -1,37 +1,37 @@ -const { contextBridge, ipcRenderer } = require('electron'); +const { contextBridge, ipcRenderer } = require('electron') contextBridge.exposeInMainWorld('electronAPI', { - onOpenSeedDialog: (callback) => { - ipcRenderer.on('open-seed-dialog', callback) - }, - onEnterSeed: (seed) => { - ipcRenderer.send('seed-entered', seed) - }, - onOpenPasswordDialog: (callback) => { - ipcRenderer.on('open-password-dialog', callback) - }, - onEnterPassword: (password) => { - ipcRenderer.send('password-entered', password) - }, - requestSeedChange: () => { - ipcRenderer.send('request-seed-change') - }, - onUpdateLedgerData: (callback) => { - ipcRenderer.on('update-ledger-data', callback) - }, - onUpdateAccountData: (callback) => { - ipcRenderer.on('update-account-data', callback) - }, - onUpdateTransactionData: (callback) => { - ipcRenderer.on('update-transaction-data', callback) - }, + onOpenSeedDialog: (callback) => { + ipcRenderer.on('open-seed-dialog', callback) + }, + onEnterSeed: (seed) => { + ipcRenderer.send('seed-entered', seed) + }, + onOpenPasswordDialog: (callback) => { + ipcRenderer.on('open-password-dialog', callback) + }, + onEnterPassword: (password) => { + ipcRenderer.send('password-entered', password) + }, + requestSeedChange: () => { + ipcRenderer.send('request-seed-change') + }, + onUpdateLedgerData: (callback) => { + ipcRenderer.on('update-ledger-data', callback) + }, + onUpdateAccountData: (callback) => { + ipcRenderer.on('update-account-data', callback) + }, + onUpdateTransactionData: (callback) => { + ipcRenderer.on('update-transaction-data', callback) + }, - // Step 7 code additions - start - onClickSendXrp: (paymentData) => { - ipcRenderer.send('send-xrp-action', paymentData) - }, - onSendXrpTransactionFinish: (callback) => { - ipcRenderer.on('send-xrp-transaction-finish', callback) - } - // Step 7 code additions - start + // Step 7 code additions - start + onClickSendXrp: (paymentData) => { + ipcRenderer.send('send-xrp-action', paymentData) + }, + onSendXrpTransactionFinish: (callback) => { + ipcRenderer.on('send-xrp-transaction-finish', callback) + }, + // Step 7 code additions - start }) diff --git a/_code-samples/build-a-desktop-wallet/js/7-send-xrp/view/renderer.js b/_code-samples/build-a-desktop-wallet/js/7-send-xrp/view/renderer.js index 1ec60473a7..f17f4ed9f6 100644 --- a/_code-samples/build-a-desktop-wallet/js/7-send-xrp/view/renderer.js +++ b/_code-samples/build-a-desktop-wallet/js/7-send-xrp/view/renderer.js @@ -3,15 +3,15 @@ const seedInput = seedDialog.querySelector('input') const seedSubmitButton = seedDialog.querySelector('button[type="submit"]') const seedSubmitFn = () => { - const seed = seedInput.value - window.electronAPI.onEnterSeed(seed) - seedDialog.close() + const seed = seedInput.value + window.electronAPI.onEnterSeed(seed) + seedDialog.close() } window.electronAPI.onOpenSeedDialog((_event) => { - seedSubmitButton.addEventListener('click', seedSubmitFn, {once : true}); + seedSubmitButton.addEventListener('click', seedSubmitFn, { once: true }) - seedDialog.showModal() + seedDialog.showModal() }) const passwordDialog = document.getElementById('password-dialog') @@ -21,33 +21,33 @@ const passwordSubmitButton = passwordDialog.querySelector('button[type="submit"] const changeSeedButton = passwordDialog.querySelector('button[type="button"]') const handlePasswordSubmitFn = () => { - const password = passwordInput.value - window.electronAPI.onEnterPassword(password) - passwordDialog.close() + const password = passwordInput.value + window.electronAPI.onEnterPassword(password) + passwordDialog.close() } const handleChangeSeedFn = () => { - passwordDialog.close() - window.electronAPI.requestSeedChange() + passwordDialog.close() + window.electronAPI.requestSeedChange() } window.electronAPI.onOpenPasswordDialog((_event, showInvalidPassword = false) => { - if (showInvalidPassword) { - passwordError.innerHTML = 'INVALID PASSWORD' - } - passwordSubmitButton.addEventListener('click', handlePasswordSubmitFn, {once : true}); - changeSeedButton.addEventListener('click', handleChangeSeedFn, {once : true}); - passwordDialog.showModal() -}); + if (showInvalidPassword) { + passwordError.innerHTML = 'INVALID PASSWORD' + } + passwordSubmitButton.addEventListener('click', handlePasswordSubmitFn, { once: true }) + changeSeedButton.addEventListener('click', handleChangeSeedFn, { once: true }) + passwordDialog.showModal() +}) const ledgerIndexEl = document.getElementById('ledger-index') const ledgerHashEl = document.getElementById('ledger-hash') const ledgerCloseTimeEl = document.getElementById('ledger-close-time') window.electronAPI.onUpdateLedgerData((_event, ledger) => { - ledgerIndexEl.innerText = ledger.ledgerIndex - ledgerHashEl.innerText = ledger.ledgerHash - ledgerCloseTimeEl.innerText = ledger.ledgerCloseTime + ledgerIndexEl.innerText = ledger.ledgerIndex + ledgerHashEl.innerText = ledger.ledgerHash + ledgerCloseTimeEl.innerText = ledger.ledgerCloseTime }) const accountAddressClassicEl = document.getElementById('account-address-classic') @@ -55,33 +55,46 @@ const accountAddressXEl = document.getElementById('account-address-x') const accountBalanceEl = document.getElementById('account-balance') window.electronAPI.onUpdateAccountData((_event, value) => { - accountAddressClassicEl.innerText = value.classicAddress - accountAddressXEl.innerText = value.xAddress - accountBalanceEl.innerText = value.xrpBalance + accountAddressClassicEl.innerText = value.classicAddress + accountAddressXEl.innerText = value.xAddress + accountBalanceEl.innerText = value.xrpBalance }) const txTableBodyEl = document.getElementById('tx-table').tBodies[0] window.electronAPI.onUpdateTransactionData((_event, transactions) => { - for (let transaction of transactions) { - txTableBodyEl.insertAdjacentHTML( 'beforeend', - "" + - "" + transaction.confirmed + "" + - "" + transaction.type + "" + - "" + transaction.from + "" + - "" + transaction.to + "" + - "" + transaction.value + "" + - "" + transaction.hash + "" + - "" - ) - } + for (let transaction of transactions) { + txTableBodyEl.insertAdjacentHTML( + 'beforeend', + '' + + '' + + transaction.confirmed + + '' + + '' + + transaction.type + + '' + + '' + + transaction.from + + '' + + '' + + transaction.to + + '' + + '' + + transaction.value + + '' + + '' + + transaction.hash + + '' + + '', + ) + } }) // Step 7 code additions - start const modalButton = document.getElementById('send-xrp-modal-button') const modalDialog = new bootstrap.Modal(document.getElementById('send-xrp-modal')) modalButton.addEventListener('click', () => { - modalDialog.show() + modalDialog.show() }) const destinationAddressEl = document.getElementById('input-destination-address') @@ -90,18 +103,18 @@ const amountEl = document.getElementById('input-xrp-amount') const sendXrpButtonEl = document.getElementById('send-xrp-submit-button') sendXrpButtonEl.addEventListener('click', () => { - modalDialog.hide() - const destinationAddress = destinationAddressEl.value - const destinationTag = destinationTagEl.value - const amount = amountEl.value + modalDialog.hide() + const destinationAddress = destinationAddressEl.value + const destinationTag = destinationTagEl.value + const amount = amountEl.value - window.electronAPI.onClickSendXrp({destinationAddress, destinationTag, amount}) + window.electronAPI.onClickSendXrp({ destinationAddress, destinationTag, amount }) }) window.electronAPI.onSendXrpTransactionFinish((_event, result) => { - alert('Result: ' + result.result.meta.TransactionResult) - destinationAddressEl.value = '' - destinationTagEl.value = '' - amountEl.value = '' + alert('Result: ' + result.result.meta.TransactionResult) + destinationAddressEl.value = '' + destinationTagEl.value = '' + amountEl.value = '' }) // Step 7 code additions - end diff --git a/_code-samples/build-a-desktop-wallet/js/7-send-xrp/view/template.html b/_code-samples/build-a-desktop-wallet/js/7-send-xrp/view/template.html index b4af6637aa..2df92949a1 100644 --- a/_code-samples/build-a-desktop-wallet/js/7-send-xrp/view/template.html +++ b/_code-samples/build-a-desktop-wallet/js/7-send-xrp/view/template.html @@ -1,156 +1,159 @@ - + - - - - + + + XRPL Wallet Tutorial (JavaScript / Electron) - - - - - + + + +
    + -
    -
    -
    - - -
    -
    - -
    -
    +
    +
    + + +
    +
    + +
    +
    -
    -
    -
    -
    - -
    -
    - - -
    -
    +
    +
    +
    +
    + +
    +
    + + +
    +
    + - - - - - + + diff --git a/_code-samples/build-a-desktop-wallet/js/8-domain-verification/index.js b/_code-samples/build-a-desktop-wallet/js/8-domain-verification/index.js index 3aa11ce65e..1e4df0c2ec 100644 --- a/_code-samples/build-a-desktop-wallet/js/8-domain-verification/index.js +++ b/_code-samples/build-a-desktop-wallet/js/8-domain-verification/index.js @@ -1,99 +1,97 @@ const { app, BrowserWindow, ipcMain } = require('electron') -const fs = require("fs"); +const fs = require('fs') const path = require('path') -const xrpl = require("xrpl") +const xrpl = require('xrpl') const { initialize, subscribe, saveSaltedSeed, loadSaltedSeed } = require('../library/5_helpers') const { sendXrp } = require('../library/7_helpers') const { verify } = require('../library/8_helpers') -const TESTNET_URL = "wss://s.altnet.rippletest.net:51233" +const TESTNET_URL = 'wss://s.altnet.rippletest.net:51233' const WALLET_DIR = '../Wallet' const createWindow = () => { + const appWindow = new BrowserWindow({ + width: 1024, + height: 768, + webPreferences: { + preload: path.join(__dirname, 'view', 'preload.js'), + }, + }) - const appWindow = new BrowserWindow({ - width: 1024, - height: 768, - webPreferences: { - preload: path.join(__dirname, 'view', 'preload.js'), - }, - }) + appWindow.loadFile(path.join(__dirname, 'view', 'template.html')) - appWindow.loadFile(path.join(__dirname, 'view', 'template.html')) - - return appWindow + return appWindow } const main = async () => { - const appWindow = createWindow() + const appWindow = createWindow() - // Create Wallet directory in case it does not exist yet - if (!fs.existsSync(path.join(__dirname, WALLET_DIR))) { - fs.mkdirSync(path.join(__dirname, WALLET_DIR)); + // Create Wallet directory in case it does not exist yet + if (!fs.existsSync(path.join(__dirname, WALLET_DIR))) { + fs.mkdirSync(path.join(__dirname, WALLET_DIR)) + } + + let seed = null + + ipcMain.on('seed-entered', async (event, providedSeed) => { + seed = providedSeed + appWindow.webContents.send('open-password-dialog') + }) + + ipcMain.on('password-entered', async (event, password) => { + if (!fs.existsSync(path.join(__dirname, WALLET_DIR, 'seed.txt'))) { + saveSaltedSeed(WALLET_DIR, seed, password) + } else { + try { + seed = loadSaltedSeed(WALLET_DIR, password) + } catch (error) { + appWindow.webContents.send('open-password-dialog', true) + return + } } - let seed = null; + const wallet = xrpl.Wallet.fromSeed(seed) - ipcMain.on('seed-entered', async (event, providedSeed) => { - seed = providedSeed - appWindow.webContents.send('open-password-dialog') + const client = new xrpl.Client(TESTNET_URL) + + await client.connect() + + await subscribe(client, wallet, appWindow) + + await initialize(client, wallet, appWindow) + + ipcMain.on('send-xrp-action', (event, paymentData) => { + sendXrp(paymentData, client, wallet).then((result) => { + appWindow.webContents.send('send-xrp-transaction-finish', result) + }) }) - ipcMain.on('password-entered', async (event, password) => { - if (!fs.existsSync(path.join(__dirname, WALLET_DIR , 'seed.txt'))) { - saveSaltedSeed(WALLET_DIR, seed, password) - } else { - try { - seed = loadSaltedSeed(WALLET_DIR, password) - } catch (error) { - appWindow.webContents.send('open-password-dialog', true) - return - } - } - - const wallet = xrpl.Wallet.fromSeed(seed) - - const client = new xrpl.Client(TESTNET_URL) - - await client.connect() - - await subscribe(client, wallet, appWindow) - - await initialize(client, wallet, appWindow) - - ipcMain.on('send-xrp-action', (event, paymentData) => { - sendXrp(paymentData, client, wallet).then((result) => { - appWindow.webContents.send('send-xrp-transaction-finish', result) - }) - }) - - ipcMain.on('destination-account-change', (event, destinationAccount) => { - verify(destinationAccount, client).then((result) => { - appWindow.webContents.send('update-domain-verification-data', result) - }) - }) - + ipcMain.on('destination-account-change', (event, destinationAccount) => { + verify(destinationAccount, client).then((result) => { + appWindow.webContents.send('update-domain-verification-data', result) + }) }) + }) - ipcMain.on('request-seed-change', (event) => { - fs.rmSync(path.join(__dirname, WALLET_DIR , 'seed.txt')) - fs.rmSync(path.join(__dirname, WALLET_DIR , 'salt.txt')) - appWindow.webContents.send('open-seed-dialog') - }) + ipcMain.on('request-seed-change', (event) => { + fs.rmSync(path.join(__dirname, WALLET_DIR, 'seed.txt')) + fs.rmSync(path.join(__dirname, WALLET_DIR, 'salt.txt')) + appWindow.webContents.send('open-seed-dialog') + }) - // We have to wait for the application frontend to be ready, otherwise - // we might run into a race condition and the ope-dialog events - // get triggered before the callbacks are attached - appWindow.once('ready-to-show', () => { - // If there is no seed present yet, ask for it, otherwise query for the password - // for the seed that has been saved - if (!fs.existsSync(path.join(__dirname, WALLET_DIR, 'seed.txt'))) { - appWindow.webContents.send('open-seed-dialog') - } else { - appWindow.webContents.send('open-password-dialog') - } - }) + // We have to wait for the application frontend to be ready, otherwise + // we might run into a race condition and the ope-dialog events + // get triggered before the callbacks are attached + appWindow.once('ready-to-show', () => { + // If there is no seed present yet, ask for it, otherwise query for the password + // for the seed that has been saved + if (!fs.existsSync(path.join(__dirname, WALLET_DIR, 'seed.txt'))) { + appWindow.webContents.send('open-seed-dialog') + } else { + appWindow.webContents.send('open-password-dialog') + } + }) } app.whenReady().then(main) diff --git a/_code-samples/build-a-desktop-wallet/js/8-domain-verification/view/preload.js b/_code-samples/build-a-desktop-wallet/js/8-domain-verification/view/preload.js index 516b92a70d..05f333dd63 100644 --- a/_code-samples/build-a-desktop-wallet/js/8-domain-verification/view/preload.js +++ b/_code-samples/build-a-desktop-wallet/js/8-domain-verification/view/preload.js @@ -1,44 +1,43 @@ -const { contextBridge, ipcRenderer } = require('electron'); +const { contextBridge, ipcRenderer } = require('electron') contextBridge.exposeInMainWorld('electronAPI', { - onOpenSeedDialog: (callback) => { - ipcRenderer.on('open-seed-dialog', callback) - }, - onEnterSeed: (seed) => { - ipcRenderer.send('seed-entered', seed) - }, - onOpenPasswordDialog: (callback) => { - ipcRenderer.on('open-password-dialog', callback) - }, - onEnterPassword: (password) => { - ipcRenderer.send('password-entered', password) - }, - requestSeedChange: () => { - ipcRenderer.send('request-seed-change') - }, - onUpdateLedgerData: (callback) => { - ipcRenderer.on('update-ledger-data', callback) - }, - onUpdateAccountData: (callback) => { - ipcRenderer.on('update-account-data', callback) - }, - onUpdateTransactionData: (callback) => { - ipcRenderer.on('update-transaction-data', callback) - }, - onClickSendXrp: (paymentData) => { - ipcRenderer.send('send-xrp-action', paymentData) - }, - onSendXrpTransactionFinish: (callback) => { - ipcRenderer.on('send-xrp-transaction-finish', callback) - }, - - // Step 8 code additions - start - onDestinationAccountChange: (callback) => { - ipcRenderer.send('destination-account-change', callback) - }, - onUpdateDomainVerificationData: (callback) => { - ipcRenderer.on('update-domain-verification-data', callback) - }, - // Step 8 code additions - start + onOpenSeedDialog: (callback) => { + ipcRenderer.on('open-seed-dialog', callback) + }, + onEnterSeed: (seed) => { + ipcRenderer.send('seed-entered', seed) + }, + onOpenPasswordDialog: (callback) => { + ipcRenderer.on('open-password-dialog', callback) + }, + onEnterPassword: (password) => { + ipcRenderer.send('password-entered', password) + }, + requestSeedChange: () => { + ipcRenderer.send('request-seed-change') + }, + onUpdateLedgerData: (callback) => { + ipcRenderer.on('update-ledger-data', callback) + }, + onUpdateAccountData: (callback) => { + ipcRenderer.on('update-account-data', callback) + }, + onUpdateTransactionData: (callback) => { + ipcRenderer.on('update-transaction-data', callback) + }, + onClickSendXrp: (paymentData) => { + ipcRenderer.send('send-xrp-action', paymentData) + }, + onSendXrpTransactionFinish: (callback) => { + ipcRenderer.on('send-xrp-transaction-finish', callback) + }, + // Step 8 code additions - start + onDestinationAccountChange: (callback) => { + ipcRenderer.send('destination-account-change', callback) + }, + onUpdateDomainVerificationData: (callback) => { + ipcRenderer.on('update-domain-verification-data', callback) + }, + // Step 8 code additions - start }) diff --git a/_code-samples/build-a-desktop-wallet/js/8-domain-verification/view/renderer.js b/_code-samples/build-a-desktop-wallet/js/8-domain-verification/view/renderer.js index c3e3667994..188b2fb241 100644 --- a/_code-samples/build-a-desktop-wallet/js/8-domain-verification/view/renderer.js +++ b/_code-samples/build-a-desktop-wallet/js/8-domain-verification/view/renderer.js @@ -3,15 +3,15 @@ const seedInput = seedDialog.querySelector('input') const seedSubmitButton = seedDialog.querySelector('button[type="submit"]') const seedSubmitFn = () => { - const seed = seedInput.value - window.electronAPI.onEnterSeed(seed) - seedDialog.close() + const seed = seedInput.value + window.electronAPI.onEnterSeed(seed) + seedDialog.close() } window.electronAPI.onOpenSeedDialog((_event) => { - seedSubmitButton.addEventListener('click', seedSubmitFn, {once : true}); + seedSubmitButton.addEventListener('click', seedSubmitFn, { once: true }) - seedDialog.showModal() + seedDialog.showModal() }) const passwordDialog = document.getElementById('password-dialog') @@ -21,33 +21,33 @@ const passwordSubmitButton = passwordDialog.querySelector('button[type="submit"] const changeSeedButton = passwordDialog.querySelector('button[type="button"]') const handlePasswordSubmitFn = () => { - const password = passwordInput.value - window.electronAPI.onEnterPassword(password) - passwordDialog.close() + const password = passwordInput.value + window.electronAPI.onEnterPassword(password) + passwordDialog.close() } const handleChangeSeedFn = () => { - passwordDialog.close() - window.electronAPI.requestSeedChange() + passwordDialog.close() + window.electronAPI.requestSeedChange() } window.electronAPI.onOpenPasswordDialog((_event, showInvalidPassword = false) => { - if (showInvalidPassword) { - passwordError.innerHTML = 'INVALID PASSWORD' - } - passwordSubmitButton.addEventListener('click', handlePasswordSubmitFn, {once : true}); - changeSeedButton.addEventListener('click', handleChangeSeedFn, {once : true}); - passwordDialog.showModal() -}); + if (showInvalidPassword) { + passwordError.innerHTML = 'INVALID PASSWORD' + } + passwordSubmitButton.addEventListener('click', handlePasswordSubmitFn, { once: true }) + changeSeedButton.addEventListener('click', handleChangeSeedFn, { once: true }) + passwordDialog.showModal() +}) const ledgerIndexEl = document.getElementById('ledger-index') const ledgerHashEl = document.getElementById('ledger-hash') const ledgerCloseTimeEl = document.getElementById('ledger-close-time') window.electronAPI.onUpdateLedgerData((_event, ledger) => { - ledgerIndexEl.innerText = ledger.ledgerIndex - ledgerHashEl.innerText = ledger.ledgerHash - ledgerCloseTimeEl.innerText = ledger.ledgerCloseTime + ledgerIndexEl.innerText = ledger.ledgerIndex + ledgerHashEl.innerText = ledger.ledgerHash + ledgerCloseTimeEl.innerText = ledger.ledgerCloseTime }) const accountAddressClassicEl = document.getElementById('account-address-classic') @@ -55,32 +55,45 @@ const accountAddressXEl = document.getElementById('account-address-x') const accountBalanceEl = document.getElementById('account-balance') window.electronAPI.onUpdateAccountData((_event, value) => { - accountAddressClassicEl.innerText = value.classicAddress - accountAddressXEl.innerText = value.xAddress - accountBalanceEl.innerText = value.xrpBalance + accountAddressClassicEl.innerText = value.classicAddress + accountAddressXEl.innerText = value.xAddress + accountBalanceEl.innerText = value.xrpBalance }) const txTableBodyEl = document.getElementById('tx-table').tBodies[0] window.electronAPI.onUpdateTransactionData((_event, transactions) => { - for (let transaction of transactions) { - txTableBodyEl.insertAdjacentHTML( 'beforeend', - "" + - "" + transaction.confirmed + "" + - "" + transaction.type + "" + - "" + transaction.from + "" + - "" + transaction.to + "" + - "" + transaction.value + "" + - "" + transaction.hash + "" + - "" - ) - } + for (let transaction of transactions) { + txTableBodyEl.insertAdjacentHTML( + 'beforeend', + '' + + '' + + transaction.confirmed + + '' + + '' + + transaction.type + + '' + + '' + + transaction.from + + '' + + '' + + transaction.to + + '' + + '' + + transaction.value + + '' + + '' + + transaction.hash + + '' + + '', + ) + } }) const modalButton = document.getElementById('send-xrp-modal-button') const modalDialog = new bootstrap.Modal(document.getElementById('send-xrp-modal')) modalButton.addEventListener('click', () => { - modalDialog.show() + modalDialog.show() }) // Step 8 code additions - start @@ -94,26 +107,26 @@ const sendXrpButtonEl = document.getElementById('send-xrp-submit-button') // Step 8 code additions - start destinationAddressEl.addEventListener('input', (event) => { - window.electronAPI.onDestinationAccountChange(destinationAddressEl.value) + window.electronAPI.onDestinationAccountChange(destinationAddressEl.value) }) window.electronAPI.onUpdateDomainVerificationData((_event, result) => { - accountVerificationEl.textContent = `Domain: ${result.domain || 'n/a'} Verified: ${result.verified}` + accountVerificationEl.textContent = `Domain: ${result.domain || 'n/a'} Verified: ${result.verified}` }) // Step 8 code additions - end sendXrpButtonEl.addEventListener('click', () => { - modalDialog.hide() - const destinationAddress = destinationAddressEl.value - const destinationTag = destinationTagEl.value - const amount = amountEl.value + modalDialog.hide() + const destinationAddress = destinationAddressEl.value + const destinationTag = destinationTagEl.value + const amount = amountEl.value - window.electronAPI.onClickSendXrp({destinationAddress, destinationTag, amount}) + window.electronAPI.onClickSendXrp({ destinationAddress, destinationTag, amount }) }) window.electronAPI.onSendXrpTransactionFinish((_event, result) => { - alert('Result: ' + result.result.meta.TransactionResult) - destinationAddressEl.value = '' - destinationTagEl.value = '' - amountEl.value = '' + alert('Result: ' + result.result.meta.TransactionResult) + destinationAddressEl.value = '' + destinationTagEl.value = '' + amountEl.value = '' }) diff --git a/_code-samples/build-a-desktop-wallet/js/8-domain-verification/view/template.html b/_code-samples/build-a-desktop-wallet/js/8-domain-verification/view/template.html index 0e33077ae7..96e7a3bacf 100644 --- a/_code-samples/build-a-desktop-wallet/js/8-domain-verification/view/template.html +++ b/_code-samples/build-a-desktop-wallet/js/8-domain-verification/view/template.html @@ -1,159 +1,162 @@ - + - - - - + + + XRPL Wallet Tutorial (JavaScript / Electron) - - - - - + + + +
    + -
    -
    -
    - - -
    -
    - -
    -
    +
    +
    + + +
    +
    + +
    +
    -
    -
    -
    -
    - -
    -
    - - -
    -
    +
    +
    +
    +
    + +
    +
    + + +
    +
    + - - - - - + + diff --git a/_code-samples/build-a-desktop-wallet/js/bootstrap/bootstrap.bundle.min.js b/_code-samples/build-a-desktop-wallet/js/bootstrap/bootstrap.bundle.min.js index 68acb7a315..ec82c257d8 100644 --- a/_code-samples/build-a-desktop-wallet/js/bootstrap/bootstrap.bundle.min.js +++ b/_code-samples/build-a-desktop-wallet/js/bootstrap/bootstrap.bundle.min.js @@ -1,7 +1,3188 @@ /*! - * Bootstrap v5.0.2 (https://getbootstrap.com/) - * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - */ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).bootstrap=e()}(this,(function(){"use strict";const t={find:(t,e=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(e,t)),findOne:(t,e=document.documentElement)=>Element.prototype.querySelector.call(e,t),children:(t,e)=>[].concat(...t.children).filter(t=>t.matches(e)),parents(t,e){const i=[];let n=t.parentNode;for(;n&&n.nodeType===Node.ELEMENT_NODE&&3!==n.nodeType;)n.matches(e)&&i.push(n),n=n.parentNode;return i},prev(t,e){let i=t.previousElementSibling;for(;i;){if(i.matches(e))return[i];i=i.previousElementSibling}return[]},next(t,e){let i=t.nextElementSibling;for(;i;){if(i.matches(e))return[i];i=i.nextElementSibling}return[]}},e=t=>{do{t+=Math.floor(1e6*Math.random())}while(document.getElementById(t));return t},i=t=>{let e=t.getAttribute("data-bs-target");if(!e||"#"===e){let i=t.getAttribute("href");if(!i||!i.includes("#")&&!i.startsWith("."))return null;i.includes("#")&&!i.startsWith("#")&&(i="#"+i.split("#")[1]),e=i&&"#"!==i?i.trim():null}return e},n=t=>{const e=i(t);return e&&document.querySelector(e)?e:null},s=t=>{const e=i(t);return e?document.querySelector(e):null},o=t=>{t.dispatchEvent(new Event("transitionend"))},r=t=>!(!t||"object"!=typeof t)&&(void 0!==t.jquery&&(t=t[0]),void 0!==t.nodeType),a=e=>r(e)?e.jquery?e[0]:e:"string"==typeof e&&e.length>0?t.findOne(e):null,l=(t,e,i)=>{Object.keys(i).forEach(n=>{const s=i[n],o=e[n],a=o&&r(o)?"element":null==(l=o)?""+l:{}.toString.call(l).match(/\s([a-z]+)/i)[1].toLowerCase();var l;if(!new RegExp(s).test(a))throw new TypeError(`${t.toUpperCase()}: Option "${n}" provided type "${a}" but expected type "${s}".`)})},c=t=>!(!r(t)||0===t.getClientRects().length)&&"visible"===getComputedStyle(t).getPropertyValue("visibility"),h=t=>!t||t.nodeType!==Node.ELEMENT_NODE||!!t.classList.contains("disabled")||(void 0!==t.disabled?t.disabled:t.hasAttribute("disabled")&&"false"!==t.getAttribute("disabled")),d=t=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){const e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?d(t.parentNode):null},u=()=>{},f=t=>t.offsetHeight,p=()=>{const{jQuery:t}=window;return t&&!document.body.hasAttribute("data-bs-no-jquery")?t:null},m=[],g=()=>"rtl"===document.documentElement.dir,_=t=>{var e;e=()=>{const e=p();if(e){const i=t.NAME,n=e.fn[i];e.fn[i]=t.jQueryInterface,e.fn[i].Constructor=t,e.fn[i].noConflict=()=>(e.fn[i]=n,t.jQueryInterface)}},"loading"===document.readyState?(m.length||document.addEventListener("DOMContentLoaded",()=>{m.forEach(t=>t())}),m.push(e)):e()},b=t=>{"function"==typeof t&&t()},v=(t,e,i=!0)=>{if(!i)return void b(t);const n=(t=>{if(!t)return 0;let{transitionDuration:e,transitionDelay:i}=window.getComputedStyle(t);const n=Number.parseFloat(e),s=Number.parseFloat(i);return n||s?(e=e.split(",")[0],i=i.split(",")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(i))):0})(e)+5;let s=!1;const r=({target:i})=>{i===e&&(s=!0,e.removeEventListener("transitionend",r),b(t))};e.addEventListener("transitionend",r),setTimeout(()=>{s||o(e)},n)},y=(t,e,i,n)=>{let s=t.indexOf(e);if(-1===s)return t[!i&&n?t.length-1:0];const o=t.length;return s+=i?1:-1,n&&(s=(s+o)%o),t[Math.max(0,Math.min(s,o-1))]},w=/[^.]*(?=\..*)\.|.*/,E=/\..*/,A=/::\d+$/,T={};let O=1;const C={mouseenter:"mouseover",mouseleave:"mouseout"},k=/^(mouseenter|mouseleave)/i,L=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function x(t,e){return e&&`${e}::${O++}`||t.uidEvent||O++}function D(t){const e=x(t);return t.uidEvent=e,T[e]=T[e]||{},T[e]}function S(t,e,i=null){const n=Object.keys(t);for(let s=0,o=n.length;sfunction(e){if(!e.relatedTarget||e.relatedTarget!==e.delegateTarget&&!e.delegateTarget.contains(e.relatedTarget))return t.call(this,e)};n?n=t(n):i=t(i)}const[o,r,a]=I(e,i,n),l=D(t),c=l[a]||(l[a]={}),h=S(c,r,o?i:null);if(h)return void(h.oneOff=h.oneOff&&s);const d=x(r,e.replace(w,"")),u=o?function(t,e,i){return function n(s){const o=t.querySelectorAll(e);for(let{target:r}=s;r&&r!==this;r=r.parentNode)for(let a=o.length;a--;)if(o[a]===r)return s.delegateTarget=r,n.oneOff&&P.off(t,s.type,e,i),i.apply(r,[s]);return null}}(t,i,n):function(t,e){return function i(n){return n.delegateTarget=t,i.oneOff&&P.off(t,n.type,e),e.apply(t,[n])}}(t,i);u.delegationSelector=o?i:null,u.originalHandler=r,u.oneOff=s,u.uidEvent=d,c[d]=u,t.addEventListener(a,u,o)}function j(t,e,i,n,s){const o=S(e[i],n,s);o&&(t.removeEventListener(i,o,Boolean(s)),delete e[i][o.uidEvent])}function M(t){return t=t.replace(E,""),C[t]||t}const P={on(t,e,i,n){N(t,e,i,n,!1)},one(t,e,i,n){N(t,e,i,n,!0)},off(t,e,i,n){if("string"!=typeof e||!t)return;const[s,o,r]=I(e,i,n),a=r!==e,l=D(t),c=e.startsWith(".");if(void 0!==o){if(!l||!l[r])return;return void j(t,l,r,o,s?i:null)}c&&Object.keys(l).forEach(i=>{!function(t,e,i,n){const s=e[i]||{};Object.keys(s).forEach(o=>{if(o.includes(n)){const n=s[o];j(t,e,i,n.originalHandler,n.delegationSelector)}})}(t,l,i,e.slice(1))});const h=l[r]||{};Object.keys(h).forEach(i=>{const n=i.replace(A,"");if(!a||e.includes(n)){const e=h[i];j(t,l,r,e.originalHandler,e.delegationSelector)}})},trigger(t,e,i){if("string"!=typeof e||!t)return null;const n=p(),s=M(e),o=e!==s,r=L.has(s);let a,l=!0,c=!0,h=!1,d=null;return o&&n&&(a=n.Event(e,i),n(t).trigger(a),l=!a.isPropagationStopped(),c=!a.isImmediatePropagationStopped(),h=a.isDefaultPrevented()),r?(d=document.createEvent("HTMLEvents"),d.initEvent(s,l,!0)):d=new CustomEvent(e,{bubbles:l,cancelable:!0}),void 0!==i&&Object.keys(i).forEach(t=>{Object.defineProperty(d,t,{get:()=>i[t]})}),h&&d.preventDefault(),c&&t.dispatchEvent(d),d.defaultPrevented&&void 0!==a&&a.preventDefault(),d}},H=new Map;var R={set(t,e,i){H.has(t)||H.set(t,new Map);const n=H.get(t);n.has(e)||0===n.size?n.set(e,i):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(n.keys())[0]}.`)},get:(t,e)=>H.has(t)&&H.get(t).get(e)||null,remove(t,e){if(!H.has(t))return;const i=H.get(t);i.delete(e),0===i.size&&H.delete(t)}};class B{constructor(t){(t=a(t))&&(this._element=t,R.set(this._element,this.constructor.DATA_KEY,this))}dispose(){R.remove(this._element,this.constructor.DATA_KEY),P.off(this._element,this.constructor.EVENT_KEY),Object.getOwnPropertyNames(this).forEach(t=>{this[t]=null})}_queueCallback(t,e,i=!0){v(t,e,i)}static getInstance(t){return R.get(t,this.DATA_KEY)}static getOrCreateInstance(t,e={}){return this.getInstance(t)||new this(t,"object"==typeof e?e:null)}static get VERSION(){return"5.0.2"}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}static get DATA_KEY(){return"bs."+this.NAME}static get EVENT_KEY(){return"."+this.DATA_KEY}}class W extends B{static get NAME(){return"alert"}close(t){const e=t?this._getRootElement(t):this._element,i=this._triggerCloseEvent(e);null===i||i.defaultPrevented||this._removeElement(e)}_getRootElement(t){return s(t)||t.closest(".alert")}_triggerCloseEvent(t){return P.trigger(t,"close.bs.alert")}_removeElement(t){t.classList.remove("show");const e=t.classList.contains("fade");this._queueCallback(()=>this._destroyElement(t),t,e)}_destroyElement(t){t.remove(),P.trigger(t,"closed.bs.alert")}static jQueryInterface(t){return this.each((function(){const e=W.getOrCreateInstance(this);"close"===t&&e[t](this)}))}static handleDismiss(t){return function(e){e&&e.preventDefault(),t.close(this)}}}P.on(document,"click.bs.alert.data-api",'[data-bs-dismiss="alert"]',W.handleDismiss(new W)),_(W);class q extends B{static get NAME(){return"button"}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))}static jQueryInterface(t){return this.each((function(){const e=q.getOrCreateInstance(this);"toggle"===t&&e[t]()}))}}function z(t){return"true"===t||"false"!==t&&(t===Number(t).toString()?Number(t):""===t||"null"===t?null:t)}function $(t){return t.replace(/[A-Z]/g,t=>"-"+t.toLowerCase())}P.on(document,"click.bs.button.data-api",'[data-bs-toggle="button"]',t=>{t.preventDefault();const e=t.target.closest('[data-bs-toggle="button"]');q.getOrCreateInstance(e).toggle()}),_(q);const U={setDataAttribute(t,e,i){t.setAttribute("data-bs-"+$(e),i)},removeDataAttribute(t,e){t.removeAttribute("data-bs-"+$(e))},getDataAttributes(t){if(!t)return{};const e={};return Object.keys(t.dataset).filter(t=>t.startsWith("bs")).forEach(i=>{let n=i.replace(/^bs/,"");n=n.charAt(0).toLowerCase()+n.slice(1,n.length),e[n]=z(t.dataset[i])}),e},getDataAttribute:(t,e)=>z(t.getAttribute("data-bs-"+$(e))),offset(t){const e=t.getBoundingClientRect();return{top:e.top+document.body.scrollTop,left:e.left+document.body.scrollLeft}},position:t=>({top:t.offsetTop,left:t.offsetLeft})},F={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},V={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},K="next",X="prev",Y="left",Q="right",G={ArrowLeft:Q,ArrowRight:Y};class Z extends B{constructor(e,i){super(e),this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(i),this._indicatorsElement=t.findOne(".carousel-indicators",this._element),this._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,this._pointerEvent=Boolean(window.PointerEvent),this._addEventListeners()}static get Default(){return F}static get NAME(){return"carousel"}next(){this._slide(K)}nextWhenVisible(){!document.hidden&&c(this._element)&&this.next()}prev(){this._slide(X)}pause(e){e||(this._isPaused=!0),t.findOne(".carousel-item-next, .carousel-item-prev",this._element)&&(o(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null}cycle(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config&&this._config.interval&&!this._isPaused&&(this._updateInterval(),this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))}to(e){this._activeElement=t.findOne(".active.carousel-item",this._element);const i=this._getItemIndex(this._activeElement);if(e>this._items.length-1||e<0)return;if(this._isSliding)return void P.one(this._element,"slid.bs.carousel",()=>this.to(e));if(i===e)return this.pause(),void this.cycle();const n=e>i?K:X;this._slide(n,this._items[e])}_getConfig(t){return t={...F,...U.getDataAttributes(this._element),..."object"==typeof t?t:{}},l("carousel",t,V),t}_handleSwipe(){const t=Math.abs(this.touchDeltaX);if(t<=40)return;const e=t/this.touchDeltaX;this.touchDeltaX=0,e&&this._slide(e>0?Q:Y)}_addEventListeners(){this._config.keyboard&&P.on(this._element,"keydown.bs.carousel",t=>this._keydown(t)),"hover"===this._config.pause&&(P.on(this._element,"mouseenter.bs.carousel",t=>this.pause(t)),P.on(this._element,"mouseleave.bs.carousel",t=>this.cycle(t))),this._config.touch&&this._touchSupported&&this._addTouchEventListeners()}_addTouchEventListeners(){const e=t=>{!this._pointerEvent||"pen"!==t.pointerType&&"touch"!==t.pointerType?this._pointerEvent||(this.touchStartX=t.touches[0].clientX):this.touchStartX=t.clientX},i=t=>{this.touchDeltaX=t.touches&&t.touches.length>1?0:t.touches[0].clientX-this.touchStartX},n=t=>{!this._pointerEvent||"pen"!==t.pointerType&&"touch"!==t.pointerType||(this.touchDeltaX=t.clientX-this.touchStartX),this._handleSwipe(),"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout(t=>this.cycle(t),500+this._config.interval))};t.find(".carousel-item img",this._element).forEach(t=>{P.on(t,"dragstart.bs.carousel",t=>t.preventDefault())}),this._pointerEvent?(P.on(this._element,"pointerdown.bs.carousel",t=>e(t)),P.on(this._element,"pointerup.bs.carousel",t=>n(t)),this._element.classList.add("pointer-event")):(P.on(this._element,"touchstart.bs.carousel",t=>e(t)),P.on(this._element,"touchmove.bs.carousel",t=>i(t)),P.on(this._element,"touchend.bs.carousel",t=>n(t)))}_keydown(t){if(/input|textarea/i.test(t.target.tagName))return;const e=G[t.key];e&&(t.preventDefault(),this._slide(e))}_getItemIndex(e){return this._items=e&&e.parentNode?t.find(".carousel-item",e.parentNode):[],this._items.indexOf(e)}_getItemByOrder(t,e){const i=t===K;return y(this._items,e,i,this._config.wrap)}_triggerSlideEvent(e,i){const n=this._getItemIndex(e),s=this._getItemIndex(t.findOne(".active.carousel-item",this._element));return P.trigger(this._element,"slide.bs.carousel",{relatedTarget:e,direction:i,from:s,to:n})}_setActiveIndicatorElement(e){if(this._indicatorsElement){const i=t.findOne(".active",this._indicatorsElement);i.classList.remove("active"),i.removeAttribute("aria-current");const n=t.find("[data-bs-target]",this._indicatorsElement);for(let t=0;t{P.trigger(this._element,"slid.bs.carousel",{relatedTarget:r,direction:u,from:o,to:a})};if(this._element.classList.contains("slide")){r.classList.add(d),f(r),s.classList.add(h),r.classList.add(h);const t=()=>{r.classList.remove(h,d),r.classList.add("active"),s.classList.remove("active",d,h),this._isSliding=!1,setTimeout(p,0)};this._queueCallback(t,s,!0)}else s.classList.remove("active"),r.classList.add("active"),this._isSliding=!1,p();l&&this.cycle()}_directionToOrder(t){return[Q,Y].includes(t)?g()?t===Y?X:K:t===Y?K:X:t}_orderToDirection(t){return[K,X].includes(t)?g()?t===X?Y:Q:t===X?Q:Y:t}static carouselInterface(t,e){const i=Z.getOrCreateInstance(t,e);let{_config:n}=i;"object"==typeof e&&(n={...n,...e});const s="string"==typeof e?e:n.slide;if("number"==typeof e)i.to(e);else if("string"==typeof s){if(void 0===i[s])throw new TypeError(`No method named "${s}"`);i[s]()}else n.interval&&n.ride&&(i.pause(),i.cycle())}static jQueryInterface(t){return this.each((function(){Z.carouselInterface(this,t)}))}static dataApiClickHandler(t){const e=s(this);if(!e||!e.classList.contains("carousel"))return;const i={...U.getDataAttributes(e),...U.getDataAttributes(this)},n=this.getAttribute("data-bs-slide-to");n&&(i.interval=!1),Z.carouselInterface(e,i),n&&Z.getInstance(e).to(n),t.preventDefault()}}P.on(document,"click.bs.carousel.data-api","[data-bs-slide], [data-bs-slide-to]",Z.dataApiClickHandler),P.on(window,"load.bs.carousel.data-api",()=>{const e=t.find('[data-bs-ride="carousel"]');for(let t=0,i=e.length;tt===this._element);null!==o&&r.length&&(this._selector=o,this._triggerArray.push(i))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}static get Default(){return J}static get NAME(){return"collapse"}toggle(){this._element.classList.contains("show")?this.hide():this.show()}show(){if(this._isTransitioning||this._element.classList.contains("show"))return;let e,i;this._parent&&(e=t.find(".show, .collapsing",this._parent).filter(t=>"string"==typeof this._config.parent?t.getAttribute("data-bs-parent")===this._config.parent:t.classList.contains("collapse")),0===e.length&&(e=null));const n=t.findOne(this._selector);if(e){const t=e.find(t=>n!==t);if(i=t?et.getInstance(t):null,i&&i._isTransitioning)return}if(P.trigger(this._element,"show.bs.collapse").defaultPrevented)return;e&&e.forEach(t=>{n!==t&&et.collapseInterface(t,"hide"),i||R.set(t,"bs.collapse",null)});const s=this._getDimension();this._element.classList.remove("collapse"),this._element.classList.add("collapsing"),this._element.style[s]=0,this._triggerArray.length&&this._triggerArray.forEach(t=>{t.classList.remove("collapsed"),t.setAttribute("aria-expanded",!0)}),this.setTransitioning(!0);const o="scroll"+(s[0].toUpperCase()+s.slice(1));this._queueCallback(()=>{this._element.classList.remove("collapsing"),this._element.classList.add("collapse","show"),this._element.style[s]="",this.setTransitioning(!1),P.trigger(this._element,"shown.bs.collapse")},this._element,!0),this._element.style[s]=this._element[o]+"px"}hide(){if(this._isTransitioning||!this._element.classList.contains("show"))return;if(P.trigger(this._element,"hide.bs.collapse").defaultPrevented)return;const t=this._getDimension();this._element.style[t]=this._element.getBoundingClientRect()[t]+"px",f(this._element),this._element.classList.add("collapsing"),this._element.classList.remove("collapse","show");const e=this._triggerArray.length;if(e>0)for(let t=0;t{this.setTransitioning(!1),this._element.classList.remove("collapsing"),this._element.classList.add("collapse"),P.trigger(this._element,"hidden.bs.collapse")},this._element,!0)}setTransitioning(t){this._isTransitioning=t}_getConfig(t){return(t={...J,...t}).toggle=Boolean(t.toggle),l("collapse",t,tt),t}_getDimension(){return this._element.classList.contains("width")?"width":"height"}_getParent(){let{parent:e}=this._config;e=a(e);const i=`[data-bs-toggle="collapse"][data-bs-parent="${e}"]`;return t.find(i,e).forEach(t=>{const e=s(t);this._addAriaAndCollapsedClass(e,[t])}),e}_addAriaAndCollapsedClass(t,e){if(!t||!e.length)return;const i=t.classList.contains("show");e.forEach(t=>{i?t.classList.remove("collapsed"):t.classList.add("collapsed"),t.setAttribute("aria-expanded",i)})}static collapseInterface(t,e){let i=et.getInstance(t);const n={...J,...U.getDataAttributes(t),..."object"==typeof e&&e?e:{}};if(!i&&n.toggle&&"string"==typeof e&&/show|hide/.test(e)&&(n.toggle=!1),i||(i=new et(t,n)),"string"==typeof e){if(void 0===i[e])throw new TypeError(`No method named "${e}"`);i[e]()}}static jQueryInterface(t){return this.each((function(){et.collapseInterface(this,t)}))}}P.on(document,"click.bs.collapse.data-api",'[data-bs-toggle="collapse"]',(function(e){("A"===e.target.tagName||e.delegateTarget&&"A"===e.delegateTarget.tagName)&&e.preventDefault();const i=U.getDataAttributes(this),s=n(this);t.find(s).forEach(t=>{const e=et.getInstance(t);let n;e?(null===e._parent&&"string"==typeof i.parent&&(e._config.parent=i.parent,e._parent=e._getParent()),n="toggle"):n=i,et.collapseInterface(t,n)})})),_(et);var it="top",nt="bottom",st="right",ot="left",rt=[it,nt,st,ot],at=rt.reduce((function(t,e){return t.concat([e+"-start",e+"-end"])}),[]),lt=[].concat(rt,["auto"]).reduce((function(t,e){return t.concat([e,e+"-start",e+"-end"])}),[]),ct=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function ht(t){return t?(t.nodeName||"").toLowerCase():null}function dt(t){if(null==t)return window;if("[object Window]"!==t.toString()){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function ut(t){return t instanceof dt(t).Element||t instanceof Element}function ft(t){return t instanceof dt(t).HTMLElement||t instanceof HTMLElement}function pt(t){return"undefined"!=typeof ShadowRoot&&(t instanceof dt(t).ShadowRoot||t instanceof ShadowRoot)}var mt={name:"applyStyles",enabled:!0,phase:"write",fn:function(t){var e=t.state;Object.keys(e.elements).forEach((function(t){var i=e.styles[t]||{},n=e.attributes[t]||{},s=e.elements[t];ft(s)&&ht(s)&&(Object.assign(s.style,i),Object.keys(n).forEach((function(t){var e=n[t];!1===e?s.removeAttribute(t):s.setAttribute(t,!0===e?"":e)})))}))},effect:function(t){var e=t.state,i={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,i.popper),e.styles=i,e.elements.arrow&&Object.assign(e.elements.arrow.style,i.arrow),function(){Object.keys(e.elements).forEach((function(t){var n=e.elements[t],s=e.attributes[t]||{},o=Object.keys(e.styles.hasOwnProperty(t)?e.styles[t]:i[t]).reduce((function(t,e){return t[e]="",t}),{});ft(n)&&ht(n)&&(Object.assign(n.style,o),Object.keys(s).forEach((function(t){n.removeAttribute(t)})))}))}},requires:["computeStyles"]};function gt(t){return t.split("-")[0]}function _t(t){var e=t.getBoundingClientRect();return{width:e.width,height:e.height,top:e.top,right:e.right,bottom:e.bottom,left:e.left,x:e.left,y:e.top}}function bt(t){var e=_t(t),i=t.offsetWidth,n=t.offsetHeight;return Math.abs(e.width-i)<=1&&(i=e.width),Math.abs(e.height-n)<=1&&(n=e.height),{x:t.offsetLeft,y:t.offsetTop,width:i,height:n}}function vt(t,e){var i=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(i&&pt(i)){var n=e;do{if(n&&t.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function yt(t){return dt(t).getComputedStyle(t)}function wt(t){return["table","td","th"].indexOf(ht(t))>=0}function Et(t){return((ut(t)?t.ownerDocument:t.document)||window.document).documentElement}function At(t){return"html"===ht(t)?t:t.assignedSlot||t.parentNode||(pt(t)?t.host:null)||Et(t)}function Tt(t){return ft(t)&&"fixed"!==yt(t).position?t.offsetParent:null}function Ot(t){for(var e=dt(t),i=Tt(t);i&&wt(i)&&"static"===yt(i).position;)i=Tt(i);return i&&("html"===ht(i)||"body"===ht(i)&&"static"===yt(i).position)?e:i||function(t){var e=-1!==navigator.userAgent.toLowerCase().indexOf("firefox");if(-1!==navigator.userAgent.indexOf("Trident")&&ft(t)&&"fixed"===yt(t).position)return null;for(var i=At(t);ft(i)&&["html","body"].indexOf(ht(i))<0;){var n=yt(i);if("none"!==n.transform||"none"!==n.perspective||"paint"===n.contain||-1!==["transform","perspective"].indexOf(n.willChange)||e&&"filter"===n.willChange||e&&n.filter&&"none"!==n.filter)return i;i=i.parentNode}return null}(t)||e}function Ct(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}var kt=Math.max,Lt=Math.min,xt=Math.round;function Dt(t,e,i){return kt(t,Lt(e,i))}function St(t){return Object.assign({},{top:0,right:0,bottom:0,left:0},t)}function It(t,e){return e.reduce((function(e,i){return e[i]=t,e}),{})}var Nt={name:"arrow",enabled:!0,phase:"main",fn:function(t){var e,i=t.state,n=t.name,s=t.options,o=i.elements.arrow,r=i.modifiersData.popperOffsets,a=gt(i.placement),l=Ct(a),c=[ot,st].indexOf(a)>=0?"height":"width";if(o&&r){var h=function(t,e){return St("number"!=typeof(t="function"==typeof t?t(Object.assign({},e.rects,{placement:e.placement})):t)?t:It(t,rt))}(s.padding,i),d=bt(o),u="y"===l?it:ot,f="y"===l?nt:st,p=i.rects.reference[c]+i.rects.reference[l]-r[l]-i.rects.popper[c],m=r[l]-i.rects.reference[l],g=Ot(o),_=g?"y"===l?g.clientHeight||0:g.clientWidth||0:0,b=p/2-m/2,v=h[u],y=_-d[c]-h[f],w=_/2-d[c]/2+b,E=Dt(v,w,y),A=l;i.modifiersData[n]=((e={})[A]=E,e.centerOffset=E-w,e)}},effect:function(t){var e=t.state,i=t.options.element,n=void 0===i?"[data-popper-arrow]":i;null!=n&&("string"!=typeof n||(n=e.elements.popper.querySelector(n)))&&vt(e.elements.popper,n)&&(e.elements.arrow=n)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]},jt={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Mt(t){var e,i=t.popper,n=t.popperRect,s=t.placement,o=t.offsets,r=t.position,a=t.gpuAcceleration,l=t.adaptive,c=t.roundOffsets,h=!0===c?function(t){var e=t.x,i=t.y,n=window.devicePixelRatio||1;return{x:xt(xt(e*n)/n)||0,y:xt(xt(i*n)/n)||0}}(o):"function"==typeof c?c(o):o,d=h.x,u=void 0===d?0:d,f=h.y,p=void 0===f?0:f,m=o.hasOwnProperty("x"),g=o.hasOwnProperty("y"),_=ot,b=it,v=window;if(l){var y=Ot(i),w="clientHeight",E="clientWidth";y===dt(i)&&"static"!==yt(y=Et(i)).position&&(w="scrollHeight",E="scrollWidth"),y=y,s===it&&(b=nt,p-=y[w]-n.height,p*=a?1:-1),s===ot&&(_=st,u-=y[E]-n.width,u*=a?1:-1)}var A,T=Object.assign({position:r},l&&jt);return a?Object.assign({},T,((A={})[b]=g?"0":"",A[_]=m?"0":"",A.transform=(v.devicePixelRatio||1)<2?"translate("+u+"px, "+p+"px)":"translate3d("+u+"px, "+p+"px, 0)",A)):Object.assign({},T,((e={})[b]=g?p+"px":"",e[_]=m?u+"px":"",e.transform="",e))}var Pt={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(t){var e=t.state,i=t.options,n=i.gpuAcceleration,s=void 0===n||n,o=i.adaptive,r=void 0===o||o,a=i.roundOffsets,l=void 0===a||a,c={placement:gt(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:s};null!=e.modifiersData.popperOffsets&&(e.styles.popper=Object.assign({},e.styles.popper,Mt(Object.assign({},c,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:r,roundOffsets:l})))),null!=e.modifiersData.arrow&&(e.styles.arrow=Object.assign({},e.styles.arrow,Mt(Object.assign({},c,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})},data:{}},Ht={passive:!0},Rt={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(t){var e=t.state,i=t.instance,n=t.options,s=n.scroll,o=void 0===s||s,r=n.resize,a=void 0===r||r,l=dt(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return o&&c.forEach((function(t){t.addEventListener("scroll",i.update,Ht)})),a&&l.addEventListener("resize",i.update,Ht),function(){o&&c.forEach((function(t){t.removeEventListener("scroll",i.update,Ht)})),a&&l.removeEventListener("resize",i.update,Ht)}},data:{}},Bt={left:"right",right:"left",bottom:"top",top:"bottom"};function Wt(t){return t.replace(/left|right|bottom|top/g,(function(t){return Bt[t]}))}var qt={start:"end",end:"start"};function zt(t){return t.replace(/start|end/g,(function(t){return qt[t]}))}function $t(t){var e=dt(t);return{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function Ut(t){return _t(Et(t)).left+$t(t).scrollLeft}function Ft(t){var e=yt(t),i=e.overflow,n=e.overflowX,s=e.overflowY;return/auto|scroll|overlay|hidden/.test(i+s+n)}function Vt(t,e){var i;void 0===e&&(e=[]);var n=function t(e){return["html","body","#document"].indexOf(ht(e))>=0?e.ownerDocument.body:ft(e)&&Ft(e)?e:t(At(e))}(t),s=n===(null==(i=t.ownerDocument)?void 0:i.body),o=dt(n),r=s?[o].concat(o.visualViewport||[],Ft(n)?n:[]):n,a=e.concat(r);return s?a:a.concat(Vt(At(r)))}function Kt(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function Xt(t,e){return"viewport"===e?Kt(function(t){var e=dt(t),i=Et(t),n=e.visualViewport,s=i.clientWidth,o=i.clientHeight,r=0,a=0;return n&&(s=n.width,o=n.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(r=n.offsetLeft,a=n.offsetTop)),{width:s,height:o,x:r+Ut(t),y:a}}(t)):ft(e)?function(t){var e=_t(t);return e.top=e.top+t.clientTop,e.left=e.left+t.clientLeft,e.bottom=e.top+t.clientHeight,e.right=e.left+t.clientWidth,e.width=t.clientWidth,e.height=t.clientHeight,e.x=e.left,e.y=e.top,e}(e):Kt(function(t){var e,i=Et(t),n=$t(t),s=null==(e=t.ownerDocument)?void 0:e.body,o=kt(i.scrollWidth,i.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),r=kt(i.scrollHeight,i.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0),a=-n.scrollLeft+Ut(t),l=-n.scrollTop;return"rtl"===yt(s||i).direction&&(a+=kt(i.clientWidth,s?s.clientWidth:0)-o),{width:o,height:r,x:a,y:l}}(Et(t)))}function Yt(t){return t.split("-")[1]}function Qt(t){var e,i=t.reference,n=t.element,s=t.placement,o=s?gt(s):null,r=s?Yt(s):null,a=i.x+i.width/2-n.width/2,l=i.y+i.height/2-n.height/2;switch(o){case it:e={x:a,y:i.y-n.height};break;case nt:e={x:a,y:i.y+i.height};break;case st:e={x:i.x+i.width,y:l};break;case ot:e={x:i.x-n.width,y:l};break;default:e={x:i.x,y:i.y}}var c=o?Ct(o):null;if(null!=c){var h="y"===c?"height":"width";switch(r){case"start":e[c]=e[c]-(i[h]/2-n[h]/2);break;case"end":e[c]=e[c]+(i[h]/2-n[h]/2)}}return e}function Gt(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=void 0===n?t.placement:n,o=i.boundary,r=void 0===o?"clippingParents":o,a=i.rootBoundary,l=void 0===a?"viewport":a,c=i.elementContext,h=void 0===c?"popper":c,d=i.altBoundary,u=void 0!==d&&d,f=i.padding,p=void 0===f?0:f,m=St("number"!=typeof p?p:It(p,rt)),g="popper"===h?"reference":"popper",_=t.elements.reference,b=t.rects.popper,v=t.elements[u?g:h],y=function(t,e,i){var n="clippingParents"===e?function(t){var e=Vt(At(t)),i=["absolute","fixed"].indexOf(yt(t).position)>=0&&ft(t)?Ot(t):t;return ut(i)?e.filter((function(t){return ut(t)&&vt(t,i)&&"body"!==ht(t)})):[]}(t):[].concat(e),s=[].concat(n,[i]),o=s[0],r=s.reduce((function(e,i){var n=Xt(t,i);return e.top=kt(n.top,e.top),e.right=Lt(n.right,e.right),e.bottom=Lt(n.bottom,e.bottom),e.left=kt(n.left,e.left),e}),Xt(t,o));return r.width=r.right-r.left,r.height=r.bottom-r.top,r.x=r.left,r.y=r.top,r}(ut(v)?v:v.contextElement||Et(t.elements.popper),r,l),w=_t(_),E=Qt({reference:w,element:b,strategy:"absolute",placement:s}),A=Kt(Object.assign({},b,E)),T="popper"===h?A:w,O={top:y.top-T.top+m.top,bottom:T.bottom-y.bottom+m.bottom,left:y.left-T.left+m.left,right:T.right-y.right+m.right},C=t.modifiersData.offset;if("popper"===h&&C){var k=C[s];Object.keys(O).forEach((function(t){var e=[st,nt].indexOf(t)>=0?1:-1,i=[it,nt].indexOf(t)>=0?"y":"x";O[t]+=k[i]*e}))}return O}function Zt(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=i.boundary,o=i.rootBoundary,r=i.padding,a=i.flipVariations,l=i.allowedAutoPlacements,c=void 0===l?lt:l,h=Yt(n),d=h?a?at:at.filter((function(t){return Yt(t)===h})):rt,u=d.filter((function(t){return c.indexOf(t)>=0}));0===u.length&&(u=d);var f=u.reduce((function(e,i){return e[i]=Gt(t,{placement:i,boundary:s,rootBoundary:o,padding:r})[gt(i)],e}),{});return Object.keys(f).sort((function(t,e){return f[t]-f[e]}))}var Jt={name:"flip",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,n=t.name;if(!e.modifiersData[n]._skip){for(var s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0===r||r,l=i.fallbackPlacements,c=i.padding,h=i.boundary,d=i.rootBoundary,u=i.altBoundary,f=i.flipVariations,p=void 0===f||f,m=i.allowedAutoPlacements,g=e.options.placement,_=gt(g),b=l||(_!==g&&p?function(t){if("auto"===gt(t))return[];var e=Wt(t);return[zt(t),e,zt(e)]}(g):[Wt(g)]),v=[g].concat(b).reduce((function(t,i){return t.concat("auto"===gt(i)?Zt(e,{placement:i,boundary:h,rootBoundary:d,padding:c,flipVariations:p,allowedAutoPlacements:m}):i)}),[]),y=e.rects.reference,w=e.rects.popper,E=new Map,A=!0,T=v[0],O=0;O=0,D=x?"width":"height",S=Gt(e,{placement:C,boundary:h,rootBoundary:d,altBoundary:u,padding:c}),I=x?L?st:ot:L?nt:it;y[D]>w[D]&&(I=Wt(I));var N=Wt(I),j=[];if(o&&j.push(S[k]<=0),a&&j.push(S[I]<=0,S[N]<=0),j.every((function(t){return t}))){T=C,A=!1;break}E.set(C,j)}if(A)for(var M=function(t){var e=v.find((function(e){var i=E.get(e);if(i)return i.slice(0,t).every((function(t){return t}))}));if(e)return T=e,"break"},P=p?3:1;P>0&&"break"!==M(P);P--);e.placement!==T&&(e.modifiersData[n]._skip=!0,e.placement=T,e.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function te(t,e,i){return void 0===i&&(i={x:0,y:0}),{top:t.top-e.height-i.y,right:t.right-e.width+i.x,bottom:t.bottom-e.height+i.y,left:t.left-e.width-i.x}}function ee(t){return[it,st,nt,ot].some((function(e){return t[e]>=0}))}var ie={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(t){var e=t.state,i=t.name,n=e.rects.reference,s=e.rects.popper,o=e.modifiersData.preventOverflow,r=Gt(e,{elementContext:"reference"}),a=Gt(e,{altBoundary:!0}),l=te(r,n),c=te(a,s,o),h=ee(l),d=ee(c);e.modifiersData[i]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:h,hasPopperEscaped:d},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":h,"data-popper-escaped":d})}},ne={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.offset,o=void 0===s?[0,0]:s,r=lt.reduce((function(t,i){return t[i]=function(t,e,i){var n=gt(t),s=[ot,it].indexOf(n)>=0?-1:1,o="function"==typeof i?i(Object.assign({},e,{placement:t})):i,r=o[0],a=o[1];return r=r||0,a=(a||0)*s,[ot,st].indexOf(n)>=0?{x:a,y:r}:{x:r,y:a}}(i,e.rects,o),t}),{}),a=r[e.placement],l=a.x,c=a.y;null!=e.modifiersData.popperOffsets&&(e.modifiersData.popperOffsets.x+=l,e.modifiersData.popperOffsets.y+=c),e.modifiersData[n]=r}},se={name:"popperOffsets",enabled:!0,phase:"read",fn:function(t){var e=t.state,i=t.name;e.modifiersData[i]=Qt({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})},data:{}},oe={name:"preventOverflow",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0!==r&&r,l=i.boundary,c=i.rootBoundary,h=i.altBoundary,d=i.padding,u=i.tether,f=void 0===u||u,p=i.tetherOffset,m=void 0===p?0:p,g=Gt(e,{boundary:l,rootBoundary:c,padding:d,altBoundary:h}),_=gt(e.placement),b=Yt(e.placement),v=!b,y=Ct(_),w="x"===y?"y":"x",E=e.modifiersData.popperOffsets,A=e.rects.reference,T=e.rects.popper,O="function"==typeof m?m(Object.assign({},e.rects,{placement:e.placement})):m,C={x:0,y:0};if(E){if(o||a){var k="y"===y?it:ot,L="y"===y?nt:st,x="y"===y?"height":"width",D=E[y],S=E[y]+g[k],I=E[y]-g[L],N=f?-T[x]/2:0,j="start"===b?A[x]:T[x],M="start"===b?-T[x]:-A[x],P=e.elements.arrow,H=f&&P?bt(P):{width:0,height:0},R=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},B=R[k],W=R[L],q=Dt(0,A[x],H[x]),z=v?A[x]/2-N-q-B-O:j-q-B-O,$=v?-A[x]/2+N+q+W+O:M+q+W+O,U=e.elements.arrow&&Ot(e.elements.arrow),F=U?"y"===y?U.clientTop||0:U.clientLeft||0:0,V=e.modifiersData.offset?e.modifiersData.offset[e.placement][y]:0,K=E[y]+z-V-F,X=E[y]+$-V;if(o){var Y=Dt(f?Lt(S,K):S,D,f?kt(I,X):I);E[y]=Y,C[y]=Y-D}if(a){var Q="x"===y?it:ot,G="x"===y?nt:st,Z=E[w],J=Z+g[Q],tt=Z-g[G],et=Dt(f?Lt(J,K):J,Z,f?kt(tt,X):tt);E[w]=et,C[w]=et-Z}}e.modifiersData[n]=C}},requiresIfExists:["offset"]};function re(t,e,i){void 0===i&&(i=!1);var n,s,o=Et(e),r=_t(t),a=ft(e),l={scrollLeft:0,scrollTop:0},c={x:0,y:0};return(a||!a&&!i)&&(("body"!==ht(e)||Ft(o))&&(l=(n=e)!==dt(n)&&ft(n)?{scrollLeft:(s=n).scrollLeft,scrollTop:s.scrollTop}:$t(n)),ft(e)?((c=_t(e)).x+=e.clientLeft,c.y+=e.clientTop):o&&(c.x=Ut(o))),{x:r.left+l.scrollLeft-c.x,y:r.top+l.scrollTop-c.y,width:r.width,height:r.height}}var ae={placement:"bottom",modifiers:[],strategy:"absolute"};function le(){for(var t=arguments.length,e=new Array(t),i=0;i"applyStyles"===t.name&&!1===t.enabled);this._popper=ue(e,this._menu,i),n&&U.setDataAttribute(this._menu,"popper","static")}"ontouchstart"in document.documentElement&&!t.closest(".navbar-nav")&&[].concat(...document.body.children).forEach(t=>P.on(t,"mouseover",u)),this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.toggle("show"),this._element.classList.toggle("show"),P.trigger(this._element,"shown.bs.dropdown",e)}}hide(){if(h(this._element)||!this._menu.classList.contains("show"))return;const t={relatedTarget:this._element};this._completeHide(t)}dispose(){this._popper&&this._popper.destroy(),super.dispose()}update(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}_addEventListeners(){P.on(this._element,"click.bs.dropdown",t=>{t.preventDefault(),this.toggle()})}_completeHide(t){P.trigger(this._element,"hide.bs.dropdown",t).defaultPrevented||("ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach(t=>P.off(t,"mouseover",u)),this._popper&&this._popper.destroy(),this._menu.classList.remove("show"),this._element.classList.remove("show"),this._element.setAttribute("aria-expanded","false"),U.removeDataAttribute(this._menu,"popper"),P.trigger(this._element,"hidden.bs.dropdown",t))}_getConfig(t){if(t={...this.constructor.Default,...U.getDataAttributes(this._element),...t},l("dropdown",t,this.constructor.DefaultType),"object"==typeof t.reference&&!r(t.reference)&&"function"!=typeof t.reference.getBoundingClientRect)throw new TypeError("dropdown".toUpperCase()+': Option "reference" provided type "object" without a required "getBoundingClientRect" method.');return t}_getMenuElement(){return t.next(this._element,".dropdown-menu")[0]}_getPlacement(){const t=this._element.parentNode;if(t.classList.contains("dropend"))return ve;if(t.classList.contains("dropstart"))return ye;const e="end"===getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();return t.classList.contains("dropup")?e?ge:me:e?be:_e}_detectNavbar(){return null!==this._element.closest(".navbar")}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map(t=>Number.parseInt(t,10)):"function"==typeof t?e=>t(e,this._element):t}_getPopperConfig(){const t={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return"static"===this._config.display&&(t.modifiers=[{name:"applyStyles",enabled:!1}]),{...t,..."function"==typeof this._config.popperConfig?this._config.popperConfig(t):this._config.popperConfig}}_selectMenuItem({key:e,target:i}){const n=t.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",this._menu).filter(c);n.length&&y(n,i,"ArrowDown"===e,!n.includes(i)).focus()}static dropdownInterface(t,e){const i=Ae.getOrCreateInstance(t,e);if("string"==typeof e){if(void 0===i[e])throw new TypeError(`No method named "${e}"`);i[e]()}}static jQueryInterface(t){return this.each((function(){Ae.dropdownInterface(this,t)}))}static clearMenus(e){if(e&&(2===e.button||"keyup"===e.type&&"Tab"!==e.key))return;const i=t.find('[data-bs-toggle="dropdown"]');for(let t=0,n=i.length;tthis.matches('[data-bs-toggle="dropdown"]')?this:t.prev(this,'[data-bs-toggle="dropdown"]')[0];return"Escape"===e.key?(n().focus(),void Ae.clearMenus()):"ArrowUp"===e.key||"ArrowDown"===e.key?(i||n().click(),void Ae.getInstance(n())._selectMenuItem(e)):void(i&&"Space"!==e.key||Ae.clearMenus())}}P.on(document,"keydown.bs.dropdown.data-api",'[data-bs-toggle="dropdown"]',Ae.dataApiKeydownHandler),P.on(document,"keydown.bs.dropdown.data-api",".dropdown-menu",Ae.dataApiKeydownHandler),P.on(document,"click.bs.dropdown.data-api",Ae.clearMenus),P.on(document,"keyup.bs.dropdown.data-api",Ae.clearMenus),P.on(document,"click.bs.dropdown.data-api",'[data-bs-toggle="dropdown"]',(function(t){t.preventDefault(),Ae.dropdownInterface(this)})),_(Ae);class Te{constructor(){this._element=document.body}getWidth(){const t=document.documentElement.clientWidth;return Math.abs(window.innerWidth-t)}hide(){const t=this.getWidth();this._disableOverFlow(),this._setElementAttributes(this._element,"paddingRight",e=>e+t),this._setElementAttributes(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top","paddingRight",e=>e+t),this._setElementAttributes(".sticky-top","marginRight",e=>e-t)}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"}_setElementAttributes(t,e,i){const n=this.getWidth();this._applyManipulationCallback(t,t=>{if(t!==this._element&&window.innerWidth>t.clientWidth+n)return;this._saveInitialAttribute(t,e);const s=window.getComputedStyle(t)[e];t.style[e]=i(Number.parseFloat(s))+"px"})}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,"paddingRight"),this._resetElementAttributes(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top","paddingRight"),this._resetElementAttributes(".sticky-top","marginRight")}_saveInitialAttribute(t,e){const i=t.style[e];i&&U.setDataAttribute(t,e,i)}_resetElementAttributes(t,e){this._applyManipulationCallback(t,t=>{const i=U.getDataAttribute(t,e);void 0===i?t.style.removeProperty(e):(U.removeDataAttribute(t,e),t.style[e]=i)})}_applyManipulationCallback(e,i){r(e)?i(e):t.find(e,this._element).forEach(i)}isOverflowing(){return this.getWidth()>0}}const Oe={isVisible:!0,isAnimated:!1,rootElement:"body",clickCallback:null},Ce={isVisible:"boolean",isAnimated:"boolean",rootElement:"(element|string)",clickCallback:"(function|null)"};class ke{constructor(t){this._config=this._getConfig(t),this._isAppended=!1,this._element=null}show(t){this._config.isVisible?(this._append(),this._config.isAnimated&&f(this._getElement()),this._getElement().classList.add("show"),this._emulateAnimation(()=>{b(t)})):b(t)}hide(t){this._config.isVisible?(this._getElement().classList.remove("show"),this._emulateAnimation(()=>{this.dispose(),b(t)})):b(t)}_getElement(){if(!this._element){const t=document.createElement("div");t.className="modal-backdrop",this._config.isAnimated&&t.classList.add("fade"),this._element=t}return this._element}_getConfig(t){return(t={...Oe,..."object"==typeof t?t:{}}).rootElement=a(t.rootElement),l("backdrop",t,Ce),t}_append(){this._isAppended||(this._config.rootElement.appendChild(this._getElement()),P.on(this._getElement(),"mousedown.bs.backdrop",()=>{b(this._config.clickCallback)}),this._isAppended=!0)}dispose(){this._isAppended&&(P.off(this._element,"mousedown.bs.backdrop"),this._element.remove(),this._isAppended=!1)}_emulateAnimation(t){v(t,this._getElement(),this._config.isAnimated)}}const Le={backdrop:!0,keyboard:!0,focus:!0},xe={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean"};class De extends B{constructor(e,i){super(e),this._config=this._getConfig(i),this._dialog=t.findOne(".modal-dialog",this._element),this._backdrop=this._initializeBackDrop(),this._isShown=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollBar=new Te}static get Default(){return Le}static get NAME(){return"modal"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||this._isTransitioning||P.trigger(this._element,"show.bs.modal",{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._isAnimated()&&(this._isTransitioning=!0),this._scrollBar.hide(),document.body.classList.add("modal-open"),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),P.on(this._element,"click.dismiss.bs.modal",'[data-bs-dismiss="modal"]',t=>this.hide(t)),P.on(this._dialog,"mousedown.dismiss.bs.modal",()=>{P.one(this._element,"mouseup.dismiss.bs.modal",t=>{t.target===this._element&&(this._ignoreBackdropClick=!0)})}),this._showBackdrop(()=>this._showElement(t)))}hide(t){if(t&&["A","AREA"].includes(t.target.tagName)&&t.preventDefault(),!this._isShown||this._isTransitioning)return;if(P.trigger(this._element,"hide.bs.modal").defaultPrevented)return;this._isShown=!1;const e=this._isAnimated();e&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),P.off(document,"focusin.bs.modal"),this._element.classList.remove("show"),P.off(this._element,"click.dismiss.bs.modal"),P.off(this._dialog,"mousedown.dismiss.bs.modal"),this._queueCallback(()=>this._hideModal(),this._element,e)}dispose(){[window,this._dialog].forEach(t=>P.off(t,".bs.modal")),this._backdrop.dispose(),super.dispose(),P.off(document,"focusin.bs.modal")}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new ke({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_getConfig(t){return t={...Le,...U.getDataAttributes(this._element),..."object"==typeof t?t:{}},l("modal",t,xe),t}_showElement(e){const i=this._isAnimated(),n=t.findOne(".modal-body",this._dialog);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0,n&&(n.scrollTop=0),i&&f(this._element),this._element.classList.add("show"),this._config.focus&&this._enforceFocus(),this._queueCallback(()=>{this._config.focus&&this._element.focus(),this._isTransitioning=!1,P.trigger(this._element,"shown.bs.modal",{relatedTarget:e})},this._dialog,i)}_enforceFocus(){P.off(document,"focusin.bs.modal"),P.on(document,"focusin.bs.modal",t=>{document===t.target||this._element===t.target||this._element.contains(t.target)||this._element.focus()})}_setEscapeEvent(){this._isShown?P.on(this._element,"keydown.dismiss.bs.modal",t=>{this._config.keyboard&&"Escape"===t.key?(t.preventDefault(),this.hide()):this._config.keyboard||"Escape"!==t.key||this._triggerBackdropTransition()}):P.off(this._element,"keydown.dismiss.bs.modal")}_setResizeEvent(){this._isShown?P.on(window,"resize.bs.modal",()=>this._adjustDialog()):P.off(window,"resize.bs.modal")}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide(()=>{document.body.classList.remove("modal-open"),this._resetAdjustments(),this._scrollBar.reset(),P.trigger(this._element,"hidden.bs.modal")})}_showBackdrop(t){P.on(this._element,"click.dismiss.bs.modal",t=>{this._ignoreBackdropClick?this._ignoreBackdropClick=!1:t.target===t.currentTarget&&(!0===this._config.backdrop?this.hide():"static"===this._config.backdrop&&this._triggerBackdropTransition())}),this._backdrop.show(t)}_isAnimated(){return this._element.classList.contains("fade")}_triggerBackdropTransition(){if(P.trigger(this._element,"hidePrevented.bs.modal").defaultPrevented)return;const{classList:t,scrollHeight:e,style:i}=this._element,n=e>document.documentElement.clientHeight;!n&&"hidden"===i.overflowY||t.contains("modal-static")||(n||(i.overflowY="hidden"),t.add("modal-static"),this._queueCallback(()=>{t.remove("modal-static"),n||this._queueCallback(()=>{i.overflowY=""},this._dialog)},this._dialog),this._element.focus())}_adjustDialog(){const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._scrollBar.getWidth(),i=e>0;(!i&&t&&!g()||i&&!t&&g())&&(this._element.style.paddingLeft=e+"px"),(i&&!t&&!g()||!i&&t&&g())&&(this._element.style.paddingRight=e+"px")}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(t,e){return this.each((function(){const i=De.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t](e)}}))}}P.on(document,"click.bs.modal.data-api",'[data-bs-toggle="modal"]',(function(t){const e=s(this);["A","AREA"].includes(this.tagName)&&t.preventDefault(),P.one(e,"show.bs.modal",t=>{t.defaultPrevented||P.one(e,"hidden.bs.modal",()=>{c(this)&&this.focus()})}),De.getOrCreateInstance(e).toggle(this)})),_(De);const Se={backdrop:!0,keyboard:!0,scroll:!1},Ie={backdrop:"boolean",keyboard:"boolean",scroll:"boolean"};class Ne extends B{constructor(t,e){super(t),this._config=this._getConfig(e),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._addEventListeners()}static get NAME(){return"offcanvas"}static get Default(){return Se}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||P.trigger(this._element,"show.bs.offcanvas",{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._element.style.visibility="visible",this._backdrop.show(),this._config.scroll||((new Te).hide(),this._enforceFocusOnElement(this._element)),this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add("show"),this._queueCallback(()=>{P.trigger(this._element,"shown.bs.offcanvas",{relatedTarget:t})},this._element,!0))}hide(){this._isShown&&(P.trigger(this._element,"hide.bs.offcanvas").defaultPrevented||(P.off(document,"focusin.bs.offcanvas"),this._element.blur(),this._isShown=!1,this._element.classList.remove("show"),this._backdrop.hide(),this._queueCallback(()=>{this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._element.style.visibility="hidden",this._config.scroll||(new Te).reset(),P.trigger(this._element,"hidden.bs.offcanvas")},this._element,!0)))}dispose(){this._backdrop.dispose(),super.dispose(),P.off(document,"focusin.bs.offcanvas")}_getConfig(t){return t={...Se,...U.getDataAttributes(this._element),..."object"==typeof t?t:{}},l("offcanvas",t,Ie),t}_initializeBackDrop(){return new ke({isVisible:this._config.backdrop,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:()=>this.hide()})}_enforceFocusOnElement(t){P.off(document,"focusin.bs.offcanvas"),P.on(document,"focusin.bs.offcanvas",e=>{document===e.target||t===e.target||t.contains(e.target)||t.focus()}),t.focus()}_addEventListeners(){P.on(this._element,"click.dismiss.bs.offcanvas",'[data-bs-dismiss="offcanvas"]',()=>this.hide()),P.on(this._element,"keydown.dismiss.bs.offcanvas",t=>{this._config.keyboard&&"Escape"===t.key&&this.hide()})}static jQueryInterface(t){return this.each((function(){const e=Ne.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}P.on(document,"click.bs.offcanvas.data-api",'[data-bs-toggle="offcanvas"]',(function(e){const i=s(this);if(["A","AREA"].includes(this.tagName)&&e.preventDefault(),h(this))return;P.one(i,"hidden.bs.offcanvas",()=>{c(this)&&this.focus()});const n=t.findOne(".offcanvas.show");n&&n!==i&&Ne.getInstance(n).hide(),Ne.getOrCreateInstance(i).toggle(this)})),P.on(window,"load.bs.offcanvas.data-api",()=>t.find(".offcanvas.show").forEach(t=>Ne.getOrCreateInstance(t).show())),_(Ne);const je=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),Me=/^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/i,Pe=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i,He=(t,e)=>{const i=t.nodeName.toLowerCase();if(e.includes(i))return!je.has(i)||Boolean(Me.test(t.nodeValue)||Pe.test(t.nodeValue));const n=e.filter(t=>t instanceof RegExp);for(let t=0,e=n.length;t{He(t,a)||i.removeAttribute(t.nodeName)})}return n.body.innerHTML}const Be=new RegExp("(^|\\s)bs-tooltip\\S+","g"),We=new Set(["sanitize","allowList","sanitizeFn"]),qe={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(array|string|function)",container:"(string|element|boolean)",fallbackPlacements:"array",boundary:"(string|element)",customClass:"(string|function)",sanitize:"boolean",sanitizeFn:"(null|function)",allowList:"object",popperConfig:"(null|object|function)"},ze={AUTO:"auto",TOP:"top",RIGHT:g()?"left":"right",BOTTOM:"bottom",LEFT:g()?"right":"left"},$e={animation:!0,template:'',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:[0,0],container:!1,fallbackPlacements:["top","right","bottom","left"],boundary:"clippingParents",customClass:"",sanitize:!0,sanitizeFn:null,allowList:{"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},popperConfig:null},Ue={HIDE:"hide.bs.tooltip",HIDDEN:"hidden.bs.tooltip",SHOW:"show.bs.tooltip",SHOWN:"shown.bs.tooltip",INSERTED:"inserted.bs.tooltip",CLICK:"click.bs.tooltip",FOCUSIN:"focusin.bs.tooltip",FOCUSOUT:"focusout.bs.tooltip",MOUSEENTER:"mouseenter.bs.tooltip",MOUSELEAVE:"mouseleave.bs.tooltip"};class Fe extends B{constructor(t,e){if(void 0===fe)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(t),this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this._config=this._getConfig(e),this.tip=null,this._setListeners()}static get Default(){return $e}static get NAME(){return"tooltip"}static get Event(){return Ue}static get DefaultType(){return qe}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(t){if(this._isEnabled)if(t){const e=this._initializeOnDelegatedTarget(t);e._activeTrigger.click=!e._activeTrigger.click,e._isWithActiveTrigger()?e._enter(null,e):e._leave(null,e)}else{if(this.getTipElement().classList.contains("show"))return void this._leave(null,this);this._enter(null,this)}}dispose(){clearTimeout(this._timeout),P.off(this._element.closest(".modal"),"hide.bs.modal",this._hideModalHandler),this.tip&&this.tip.remove(),this._popper&&this._popper.destroy(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this.isWithContent()||!this._isEnabled)return;const t=P.trigger(this._element,this.constructor.Event.SHOW),i=d(this._element),n=null===i?this._element.ownerDocument.documentElement.contains(this._element):i.contains(this._element);if(t.defaultPrevented||!n)return;const s=this.getTipElement(),o=e(this.constructor.NAME);s.setAttribute("id",o),this._element.setAttribute("aria-describedby",o),this.setContent(),this._config.animation&&s.classList.add("fade");const r="function"==typeof this._config.placement?this._config.placement.call(this,s,this._element):this._config.placement,a=this._getAttachment(r);this._addAttachmentClass(a);const{container:l}=this._config;R.set(s,this.constructor.DATA_KEY,this),this._element.ownerDocument.documentElement.contains(this.tip)||(l.appendChild(s),P.trigger(this._element,this.constructor.Event.INSERTED)),this._popper?this._popper.update():this._popper=ue(this._element,s,this._getPopperConfig(a)),s.classList.add("show");const c="function"==typeof this._config.customClass?this._config.customClass():this._config.customClass;c&&s.classList.add(...c.split(" ")),"ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach(t=>{P.on(t,"mouseover",u)});const h=this.tip.classList.contains("fade");this._queueCallback(()=>{const t=this._hoverState;this._hoverState=null,P.trigger(this._element,this.constructor.Event.SHOWN),"out"===t&&this._leave(null,this)},this.tip,h)}hide(){if(!this._popper)return;const t=this.getTipElement();if(P.trigger(this._element,this.constructor.Event.HIDE).defaultPrevented)return;t.classList.remove("show"),"ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach(t=>P.off(t,"mouseover",u)),this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1;const e=this.tip.classList.contains("fade");this._queueCallback(()=>{this._isWithActiveTrigger()||("show"!==this._hoverState&&t.remove(),this._cleanTipClass(),this._element.removeAttribute("aria-describedby"),P.trigger(this._element,this.constructor.Event.HIDDEN),this._popper&&(this._popper.destroy(),this._popper=null))},this.tip,e),this._hoverState=""}update(){null!==this._popper&&this._popper.update()}isWithContent(){return Boolean(this.getTitle())}getTipElement(){if(this.tip)return this.tip;const t=document.createElement("div");return t.innerHTML=this._config.template,this.tip=t.children[0],this.tip}setContent(){const e=this.getTipElement();this.setElementContent(t.findOne(".tooltip-inner",e),this.getTitle()),e.classList.remove("fade","show")}setElementContent(t,e){if(null!==t)return r(e)?(e=a(e),void(this._config.html?e.parentNode!==t&&(t.innerHTML="",t.appendChild(e)):t.textContent=e.textContent)):void(this._config.html?(this._config.sanitize&&(e=Re(e,this._config.allowList,this._config.sanitizeFn)),t.innerHTML=e):t.textContent=e)}getTitle(){let t=this._element.getAttribute("data-bs-original-title");return t||(t="function"==typeof this._config.title?this._config.title.call(this._element):this._config.title),t}updateAttachment(t){return"right"===t?"end":"left"===t?"start":t}_initializeOnDelegatedTarget(t,e){const i=this.constructor.DATA_KEY;return(e=e||R.get(t.delegateTarget,i))||(e=new this.constructor(t.delegateTarget,this._getDelegateConfig()),R.set(t.delegateTarget,i,e)),e}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map(t=>Number.parseInt(t,10)):"function"==typeof t?e=>t(e,this._element):t}_getPopperConfig(t){const e={placement:t,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"onChange",enabled:!0,phase:"afterWrite",fn:t=>this._handlePopperPlacementChange(t)}],onFirstUpdate:t=>{t.options.placement!==t.placement&&this._handlePopperPlacementChange(t)}};return{...e,..."function"==typeof this._config.popperConfig?this._config.popperConfig(e):this._config.popperConfig}}_addAttachmentClass(t){this.getTipElement().classList.add("bs-tooltip-"+this.updateAttachment(t))}_getAttachment(t){return ze[t.toUpperCase()]}_setListeners(){this._config.trigger.split(" ").forEach(t=>{if("click"===t)P.on(this._element,this.constructor.Event.CLICK,this._config.selector,t=>this.toggle(t));else if("manual"!==t){const e="hover"===t?this.constructor.Event.MOUSEENTER:this.constructor.Event.FOCUSIN,i="hover"===t?this.constructor.Event.MOUSELEAVE:this.constructor.Event.FOCUSOUT;P.on(this._element,e,this._config.selector,t=>this._enter(t)),P.on(this._element,i,this._config.selector,t=>this._leave(t))}}),this._hideModalHandler=()=>{this._element&&this.hide()},P.on(this._element.closest(".modal"),"hide.bs.modal",this._hideModalHandler),this._config.selector?this._config={...this._config,trigger:"manual",selector:""}:this._fixTitle()}_fixTitle(){const t=this._element.getAttribute("title"),e=typeof this._element.getAttribute("data-bs-original-title");(t||"string"!==e)&&(this._element.setAttribute("data-bs-original-title",t||""),!t||this._element.getAttribute("aria-label")||this._element.textContent||this._element.setAttribute("aria-label",t),this._element.setAttribute("title",""))}_enter(t,e){e=this._initializeOnDelegatedTarget(t,e),t&&(e._activeTrigger["focusin"===t.type?"focus":"hover"]=!0),e.getTipElement().classList.contains("show")||"show"===e._hoverState?e._hoverState="show":(clearTimeout(e._timeout),e._hoverState="show",e._config.delay&&e._config.delay.show?e._timeout=setTimeout(()=>{"show"===e._hoverState&&e.show()},e._config.delay.show):e.show())}_leave(t,e){e=this._initializeOnDelegatedTarget(t,e),t&&(e._activeTrigger["focusout"===t.type?"focus":"hover"]=e._element.contains(t.relatedTarget)),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState="out",e._config.delay&&e._config.delay.hide?e._timeout=setTimeout(()=>{"out"===e._hoverState&&e.hide()},e._config.delay.hide):e.hide())}_isWithActiveTrigger(){for(const t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1}_getConfig(t){const e=U.getDataAttributes(this._element);return Object.keys(e).forEach(t=>{We.has(t)&&delete e[t]}),(t={...this.constructor.Default,...e,..."object"==typeof t&&t?t:{}}).container=!1===t.container?document.body:a(t.container),"number"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),l("tooltip",t,this.constructor.DefaultType),t.sanitize&&(t.template=Re(t.template,t.allowList,t.sanitizeFn)),t}_getDelegateConfig(){const t={};if(this._config)for(const e in this._config)this.constructor.Default[e]!==this._config[e]&&(t[e]=this._config[e]);return t}_cleanTipClass(){const t=this.getTipElement(),e=t.getAttribute("class").match(Be);null!==e&&e.length>0&&e.map(t=>t.trim()).forEach(e=>t.classList.remove(e))}_handlePopperPlacementChange(t){const{state:e}=t;e&&(this.tip=e.elements.popper,this._cleanTipClass(),this._addAttachmentClass(this._getAttachment(e.placement)))}static jQueryInterface(t){return this.each((function(){const e=Fe.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}_(Fe);const Ve=new RegExp("(^|\\s)bs-popover\\S+","g"),Ke={...Fe.Default,placement:"right",offset:[0,8],trigger:"click",content:"",template:''},Xe={...Fe.DefaultType,content:"(string|element|function)"},Ye={HIDE:"hide.bs.popover",HIDDEN:"hidden.bs.popover",SHOW:"show.bs.popover",SHOWN:"shown.bs.popover",INSERTED:"inserted.bs.popover",CLICK:"click.bs.popover",FOCUSIN:"focusin.bs.popover",FOCUSOUT:"focusout.bs.popover",MOUSEENTER:"mouseenter.bs.popover",MOUSELEAVE:"mouseleave.bs.popover"};class Qe extends Fe{static get Default(){return Ke}static get NAME(){return"popover"}static get Event(){return Ye}static get DefaultType(){return Xe}isWithContent(){return this.getTitle()||this._getContent()}getTipElement(){return this.tip||(this.tip=super.getTipElement(),this.getTitle()||t.findOne(".popover-header",this.tip).remove(),this._getContent()||t.findOne(".popover-body",this.tip).remove()),this.tip}setContent(){const e=this.getTipElement();this.setElementContent(t.findOne(".popover-header",e),this.getTitle());let i=this._getContent();"function"==typeof i&&(i=i.call(this._element)),this.setElementContent(t.findOne(".popover-body",e),i),e.classList.remove("fade","show")}_addAttachmentClass(t){this.getTipElement().classList.add("bs-popover-"+this.updateAttachment(t))}_getContent(){return this._element.getAttribute("data-bs-content")||this._config.content}_cleanTipClass(){const t=this.getTipElement(),e=t.getAttribute("class").match(Ve);null!==e&&e.length>0&&e.map(t=>t.trim()).forEach(e=>t.classList.remove(e))}static jQueryInterface(t){return this.each((function(){const e=Qe.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}_(Qe);const Ge={offset:10,method:"auto",target:""},Ze={offset:"number",method:"string",target:"(string|element)"};class Je extends B{constructor(t,e){super(t),this._scrollElement="BODY"===this._element.tagName?window:this._element,this._config=this._getConfig(e),this._selector=`${this._config.target} .nav-link, ${this._config.target} .list-group-item, ${this._config.target} .dropdown-item`,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,P.on(this._scrollElement,"scroll.bs.scrollspy",()=>this._process()),this.refresh(),this._process()}static get Default(){return Ge}static get NAME(){return"scrollspy"}refresh(){const e=this._scrollElement===this._scrollElement.window?"offset":"position",i="auto"===this._config.method?e:this._config.method,s="position"===i?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),t.find(this._selector).map(e=>{const o=n(e),r=o?t.findOne(o):null;if(r){const t=r.getBoundingClientRect();if(t.width||t.height)return[U[i](r).top+s,o]}return null}).filter(t=>t).sort((t,e)=>t[0]-e[0]).forEach(t=>{this._offsets.push(t[0]),this._targets.push(t[1])})}dispose(){P.off(this._scrollElement,".bs.scrollspy"),super.dispose()}_getConfig(t){if("string"!=typeof(t={...Ge,...U.getDataAttributes(this._element),..."object"==typeof t&&t?t:{}}).target&&r(t.target)){let{id:i}=t.target;i||(i=e("scrollspy"),t.target.id=i),t.target="#"+i}return l("scrollspy",t,Ze),t}_getScrollTop(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop}_getScrollHeight(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)}_getOffsetHeight(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height}_process(){const t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),i=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=i){const t=this._targets[this._targets.length-1];this._activeTarget!==t&&this._activate(t)}else{if(this._activeTarget&&t0)return this._activeTarget=null,void this._clear();for(let e=this._offsets.length;e--;)this._activeTarget!==this._targets[e]&&t>=this._offsets[e]&&(void 0===this._offsets[e+1]||t`${t}[data-bs-target="${e}"],${t}[href="${e}"]`),n=t.findOne(i.join(","));n.classList.contains("dropdown-item")?(t.findOne(".dropdown-toggle",n.closest(".dropdown")).classList.add("active"),n.classList.add("active")):(n.classList.add("active"),t.parents(n,".nav, .list-group").forEach(e=>{t.prev(e,".nav-link, .list-group-item").forEach(t=>t.classList.add("active")),t.prev(e,".nav-item").forEach(e=>{t.children(e,".nav-link").forEach(t=>t.classList.add("active"))})})),P.trigger(this._scrollElement,"activate.bs.scrollspy",{relatedTarget:e})}_clear(){t.find(this._selector).filter(t=>t.classList.contains("active")).forEach(t=>t.classList.remove("active"))}static jQueryInterface(t){return this.each((function(){const e=Je.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}P.on(window,"load.bs.scrollspy.data-api",()=>{t.find('[data-bs-spy="scroll"]').forEach(t=>new Je(t))}),_(Je);class ti extends B{static get NAME(){return"tab"}show(){if(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&this._element.classList.contains("active"))return;let e;const i=s(this._element),n=this._element.closest(".nav, .list-group");if(n){const i="UL"===n.nodeName||"OL"===n.nodeName?":scope > li > .active":".active";e=t.find(i,n),e=e[e.length-1]}const o=e?P.trigger(e,"hide.bs.tab",{relatedTarget:this._element}):null;if(P.trigger(this._element,"show.bs.tab",{relatedTarget:e}).defaultPrevented||null!==o&&o.defaultPrevented)return;this._activate(this._element,n);const r=()=>{P.trigger(e,"hidden.bs.tab",{relatedTarget:this._element}),P.trigger(this._element,"shown.bs.tab",{relatedTarget:e})};i?this._activate(i,i.parentNode,r):r()}_activate(e,i,n){const s=(!i||"UL"!==i.nodeName&&"OL"!==i.nodeName?t.children(i,".active"):t.find(":scope > li > .active",i))[0],o=n&&s&&s.classList.contains("fade"),r=()=>this._transitionComplete(e,s,n);s&&o?(s.classList.remove("show"),this._queueCallback(r,e,!0)):r()}_transitionComplete(e,i,n){if(i){i.classList.remove("active");const e=t.findOne(":scope > .dropdown-menu .active",i.parentNode);e&&e.classList.remove("active"),"tab"===i.getAttribute("role")&&i.setAttribute("aria-selected",!1)}e.classList.add("active"),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!0),f(e),e.classList.contains("fade")&&e.classList.add("show");let s=e.parentNode;if(s&&"LI"===s.nodeName&&(s=s.parentNode),s&&s.classList.contains("dropdown-menu")){const i=e.closest(".dropdown");i&&t.find(".dropdown-toggle",i).forEach(t=>t.classList.add("active")),e.setAttribute("aria-expanded",!0)}n&&n()}static jQueryInterface(t){return this.each((function(){const e=ti.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}P.on(document,"click.bs.tab.data-api",'[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',(function(t){["A","AREA"].includes(this.tagName)&&t.preventDefault(),h(this)||ti.getOrCreateInstance(this).show()})),_(ti);const ei={animation:"boolean",autohide:"boolean",delay:"number"},ii={animation:!0,autohide:!0,delay:5e3};class ni extends B{constructor(t,e){super(t),this._config=this._getConfig(e),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get DefaultType(){return ei}static get Default(){return ii}static get NAME(){return"toast"}show(){P.trigger(this._element,"show.bs.toast").defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add("fade"),this._element.classList.remove("hide"),f(this._element),this._element.classList.add("showing"),this._queueCallback(()=>{this._element.classList.remove("showing"),this._element.classList.add("show"),P.trigger(this._element,"shown.bs.toast"),this._maybeScheduleHide()},this._element,this._config.animation))}hide(){this._element.classList.contains("show")&&(P.trigger(this._element,"hide.bs.toast").defaultPrevented||(this._element.classList.remove("show"),this._queueCallback(()=>{this._element.classList.add("hide"),P.trigger(this._element,"hidden.bs.toast")},this._element,this._config.animation)))}dispose(){this._clearTimeout(),this._element.classList.contains("show")&&this._element.classList.remove("show"),super.dispose()}_getConfig(t){return t={...ii,...U.getDataAttributes(this._element),..."object"==typeof t&&t?t:{}},l("toast",t,this.constructor.DefaultType),t}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout(()=>{this.hide()},this._config.delay)))}_onInteraction(t,e){switch(t.type){case"mouseover":case"mouseout":this._hasMouseInteraction=e;break;case"focusin":case"focusout":this._hasKeyboardInteraction=e}if(e)return void this._clearTimeout();const i=t.relatedTarget;this._element===i||this._element.contains(i)||this._maybeScheduleHide()}_setListeners(){P.on(this._element,"click.dismiss.bs.toast",'[data-bs-dismiss="toast"]',()=>this.hide()),P.on(this._element,"mouseover.bs.toast",t=>this._onInteraction(t,!0)),P.on(this._element,"mouseout.bs.toast",t=>this._onInteraction(t,!1)),P.on(this._element,"focusin.bs.toast",t=>this._onInteraction(t,!0)),P.on(this._element,"focusout.bs.toast",t=>this._onInteraction(t,!1))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(t){return this.each((function(){const e=ni.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}return _(ni),{Alert:W,Button:q,Carousel:Z,Collapse:et,Dropdown:Ae,Modal:De,Offcanvas:Ne,Popover:Qe,ScrollSpy:Je,Tab:ti,Toast:ni,Tooltip:Fe}})); -//# sourceMappingURL=bootstrap.bundle.min.js.map \ No newline at end of file + * Bootstrap v5.0.2 (https://getbootstrap.com/) + * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ +!(function (t, e) { + 'object' == typeof exports && 'undefined' != typeof module + ? (module.exports = e()) + : 'function' == typeof define && define.amd + ? define(e) + : ((t = 'undefined' != typeof globalThis ? globalThis : t || self).bootstrap = e()) +})(this, function () { + 'use strict' + const t = { + find: (t, e = document.documentElement) => [].concat(...Element.prototype.querySelectorAll.call(e, t)), + findOne: (t, e = document.documentElement) => Element.prototype.querySelector.call(e, t), + children: (t, e) => [].concat(...t.children).filter((t) => t.matches(e)), + parents(t, e) { + const i = [] + let n = t.parentNode + for (; n && n.nodeType === Node.ELEMENT_NODE && 3 !== n.nodeType; ) (n.matches(e) && i.push(n), (n = n.parentNode)) + return i + }, + prev(t, e) { + let i = t.previousElementSibling + for (; i; ) { + if (i.matches(e)) return [i] + i = i.previousElementSibling + } + return [] + }, + next(t, e) { + let i = t.nextElementSibling + for (; i; ) { + if (i.matches(e)) return [i] + i = i.nextElementSibling + } + return [] + }, + }, + e = (t) => { + do { + t += Math.floor(1e6 * Math.random()) + } while (document.getElementById(t)) + return t + }, + i = (t) => { + let e = t.getAttribute('data-bs-target') + if (!e || '#' === e) { + let i = t.getAttribute('href') + if (!i || (!i.includes('#') && !i.startsWith('.'))) return null + ;(i.includes('#') && !i.startsWith('#') && (i = '#' + i.split('#')[1]), (e = i && '#' !== i ? i.trim() : null)) + } + return e + }, + n = (t) => { + const e = i(t) + return e && document.querySelector(e) ? e : null + }, + s = (t) => { + const e = i(t) + return e ? document.querySelector(e) : null + }, + o = (t) => { + t.dispatchEvent(new Event('transitionend')) + }, + r = (t) => !(!t || 'object' != typeof t) && (void 0 !== t.jquery && (t = t[0]), void 0 !== t.nodeType), + a = (e) => (r(e) ? (e.jquery ? e[0] : e) : 'string' == typeof e && e.length > 0 ? t.findOne(e) : null), + l = (t, e, i) => { + Object.keys(i).forEach((n) => { + const s = i[n], + o = e[n], + a = + o && r(o) + ? 'element' + : null == (l = o) + ? '' + l + : {}.toString + .call(l) + .match(/\s([a-z]+)/i)[1] + .toLowerCase() + var l + if (!new RegExp(s).test(a)) throw new TypeError(`${t.toUpperCase()}: Option "${n}" provided type "${a}" but expected type "${s}".`) + }) + }, + c = (t) => !(!r(t) || 0 === t.getClientRects().length) && 'visible' === getComputedStyle(t).getPropertyValue('visibility'), + h = (t) => + !t || + t.nodeType !== Node.ELEMENT_NODE || + !!t.classList.contains('disabled') || + (void 0 !== t.disabled ? t.disabled : t.hasAttribute('disabled') && 'false' !== t.getAttribute('disabled')), + d = (t) => { + if (!document.documentElement.attachShadow) return null + if ('function' == typeof t.getRootNode) { + const e = t.getRootNode() + return e instanceof ShadowRoot ? e : null + } + return t instanceof ShadowRoot ? t : t.parentNode ? d(t.parentNode) : null + }, + u = () => {}, + f = (t) => t.offsetHeight, + p = () => { + const { jQuery: t } = window + return t && !document.body.hasAttribute('data-bs-no-jquery') ? t : null + }, + m = [], + g = () => 'rtl' === document.documentElement.dir, + _ = (t) => { + var e + ;((e = () => { + const e = p() + if (e) { + const i = t.NAME, + n = e.fn[i] + ;((e.fn[i] = t.jQueryInterface), (e.fn[i].Constructor = t), (e.fn[i].noConflict = () => ((e.fn[i] = n), t.jQueryInterface))) + } + }), + 'loading' === document.readyState + ? (m.length || + document.addEventListener('DOMContentLoaded', () => { + m.forEach((t) => t()) + }), + m.push(e)) + : e()) + }, + b = (t) => { + 'function' == typeof t && t() + }, + v = (t, e, i = !0) => { + if (!i) return void b(t) + const n = + ((t) => { + if (!t) return 0 + let { transitionDuration: e, transitionDelay: i } = window.getComputedStyle(t) + const n = Number.parseFloat(e), + s = Number.parseFloat(i) + return n || s ? ((e = e.split(',')[0]), (i = i.split(',')[0]), 1e3 * (Number.parseFloat(e) + Number.parseFloat(i))) : 0 + })(e) + 5 + let s = !1 + const r = ({ target: i }) => { + i === e && ((s = !0), e.removeEventListener('transitionend', r), b(t)) + } + ;(e.addEventListener('transitionend', r), + setTimeout(() => { + s || o(e) + }, n)) + }, + y = (t, e, i, n) => { + let s = t.indexOf(e) + if (-1 === s) return t[!i && n ? t.length - 1 : 0] + const o = t.length + return ((s += i ? 1 : -1), n && (s = (s + o) % o), t[Math.max(0, Math.min(s, o - 1))]) + }, + w = /[^.]*(?=\..*)\.|.*/, + E = /\..*/, + A = /::\d+$/, + T = {} + let O = 1 + const C = { mouseenter: 'mouseover', mouseleave: 'mouseout' }, + k = /^(mouseenter|mouseleave)/i, + L = new Set([ + 'click', + 'dblclick', + 'mouseup', + 'mousedown', + 'contextmenu', + 'mousewheel', + 'DOMMouseScroll', + 'mouseover', + 'mouseout', + 'mousemove', + 'selectstart', + 'selectend', + 'keydown', + 'keypress', + 'keyup', + 'orientationchange', + 'touchstart', + 'touchmove', + 'touchend', + 'touchcancel', + 'pointerdown', + 'pointermove', + 'pointerup', + 'pointerleave', + 'pointercancel', + 'gesturestart', + 'gesturechange', + 'gestureend', + 'focus', + 'blur', + 'change', + 'reset', + 'select', + 'submit', + 'focusin', + 'focusout', + 'load', + 'unload', + 'beforeunload', + 'resize', + 'move', + 'DOMContentLoaded', + 'readystatechange', + 'error', + 'abort', + 'scroll', + ]) + function x(t, e) { + return (e && `${e}::${O++}`) || t.uidEvent || O++ + } + function D(t) { + const e = x(t) + return ((t.uidEvent = e), (T[e] = T[e] || {}), T[e]) + } + function S(t, e, i = null) { + const n = Object.keys(t) + for (let s = 0, o = n.length; s < o; s++) { + const o = t[n[s]] + if (o.originalHandler === e && o.delegationSelector === i) return o + } + return null + } + function I(t, e, i) { + const n = 'string' == typeof e, + s = n ? i : e + let o = M(t) + return (L.has(o) || (o = t), [n, s, o]) + } + function N(t, e, i, n, s) { + if ('string' != typeof e || !t) return + if ((i || ((i = n), (n = null)), k.test(e))) { + const t = (t) => + function (e) { + if (!e.relatedTarget || (e.relatedTarget !== e.delegateTarget && !e.delegateTarget.contains(e.relatedTarget))) return t.call(this, e) + } + n ? (n = t(n)) : (i = t(i)) + } + const [o, r, a] = I(e, i, n), + l = D(t), + c = l[a] || (l[a] = {}), + h = S(c, r, o ? i : null) + if (h) return void (h.oneOff = h.oneOff && s) + const d = x(r, e.replace(w, '')), + u = o + ? (function (t, e, i) { + return function n(s) { + const o = t.querySelectorAll(e) + for (let { target: r } = s; r && r !== this; r = r.parentNode) + for (let a = o.length; a--; ) if (o[a] === r) return ((s.delegateTarget = r), n.oneOff && P.off(t, s.type, e, i), i.apply(r, [s])) + return null + } + })(t, i, n) + : (function (t, e) { + return function i(n) { + return ((n.delegateTarget = t), i.oneOff && P.off(t, n.type, e), e.apply(t, [n])) + } + })(t, i) + ;((u.delegationSelector = o ? i : null), (u.originalHandler = r), (u.oneOff = s), (u.uidEvent = d), (c[d] = u), t.addEventListener(a, u, o)) + } + function j(t, e, i, n, s) { + const o = S(e[i], n, s) + o && (t.removeEventListener(i, o, Boolean(s)), delete e[i][o.uidEvent]) + } + function M(t) { + return ((t = t.replace(E, '')), C[t] || t) + } + const P = { + on(t, e, i, n) { + N(t, e, i, n, !1) + }, + one(t, e, i, n) { + N(t, e, i, n, !0) + }, + off(t, e, i, n) { + if ('string' != typeof e || !t) return + const [s, o, r] = I(e, i, n), + a = r !== e, + l = D(t), + c = e.startsWith('.') + if (void 0 !== o) { + if (!l || !l[r]) return + return void j(t, l, r, o, s ? i : null) + } + c && + Object.keys(l).forEach((i) => { + !(function (t, e, i, n) { + const s = e[i] || {} + Object.keys(s).forEach((o) => { + if (o.includes(n)) { + const n = s[o] + j(t, e, i, n.originalHandler, n.delegationSelector) + } + }) + })(t, l, i, e.slice(1)) + }) + const h = l[r] || {} + Object.keys(h).forEach((i) => { + const n = i.replace(A, '') + if (!a || e.includes(n)) { + const e = h[i] + j(t, l, r, e.originalHandler, e.delegationSelector) + } + }) + }, + trigger(t, e, i) { + if ('string' != typeof e || !t) return null + const n = p(), + s = M(e), + o = e !== s, + r = L.has(s) + let a, + l = !0, + c = !0, + h = !1, + d = null + return ( + o && + n && + ((a = n.Event(e, i)), + n(t).trigger(a), + (l = !a.isPropagationStopped()), + (c = !a.isImmediatePropagationStopped()), + (h = a.isDefaultPrevented())), + r ? ((d = document.createEvent('HTMLEvents')), d.initEvent(s, l, !0)) : (d = new CustomEvent(e, { bubbles: l, cancelable: !0 })), + void 0 !== i && + Object.keys(i).forEach((t) => { + Object.defineProperty(d, t, { get: () => i[t] }) + }), + h && d.preventDefault(), + c && t.dispatchEvent(d), + d.defaultPrevented && void 0 !== a && a.preventDefault(), + d + ) + }, + }, + H = new Map() + var R = { + set(t, e, i) { + H.has(t) || H.set(t, new Map()) + const n = H.get(t) + n.has(e) || 0 === n.size + ? n.set(e, i) + : console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(n.keys())[0]}.`) + }, + get: (t, e) => (H.has(t) && H.get(t).get(e)) || null, + remove(t, e) { + if (!H.has(t)) return + const i = H.get(t) + ;(i.delete(e), 0 === i.size && H.delete(t)) + }, + } + class B { + constructor(t) { + ;(t = a(t)) && ((this._element = t), R.set(this._element, this.constructor.DATA_KEY, this)) + } + dispose() { + ;(R.remove(this._element, this.constructor.DATA_KEY), + P.off(this._element, this.constructor.EVENT_KEY), + Object.getOwnPropertyNames(this).forEach((t) => { + this[t] = null + })) + } + _queueCallback(t, e, i = !0) { + v(t, e, i) + } + static getInstance(t) { + return R.get(t, this.DATA_KEY) + } + static getOrCreateInstance(t, e = {}) { + return this.getInstance(t) || new this(t, 'object' == typeof e ? e : null) + } + static get VERSION() { + return '5.0.2' + } + static get NAME() { + throw new Error('You have to implement the static method "NAME", for each component!') + } + static get DATA_KEY() { + return 'bs.' + this.NAME + } + static get EVENT_KEY() { + return '.' + this.DATA_KEY + } + } + class W extends B { + static get NAME() { + return 'alert' + } + close(t) { + const e = t ? this._getRootElement(t) : this._element, + i = this._triggerCloseEvent(e) + null === i || i.defaultPrevented || this._removeElement(e) + } + _getRootElement(t) { + return s(t) || t.closest('.alert') + } + _triggerCloseEvent(t) { + return P.trigger(t, 'close.bs.alert') + } + _removeElement(t) { + t.classList.remove('show') + const e = t.classList.contains('fade') + this._queueCallback(() => this._destroyElement(t), t, e) + } + _destroyElement(t) { + ;(t.remove(), P.trigger(t, 'closed.bs.alert')) + } + static jQueryInterface(t) { + return this.each(function () { + const e = W.getOrCreateInstance(this) + 'close' === t && e[t](this) + }) + } + static handleDismiss(t) { + return function (e) { + ;(e && e.preventDefault(), t.close(this)) + } + } + } + ;(P.on(document, 'click.bs.alert.data-api', '[data-bs-dismiss="alert"]', W.handleDismiss(new W())), _(W)) + class q extends B { + static get NAME() { + return 'button' + } + toggle() { + this._element.setAttribute('aria-pressed', this._element.classList.toggle('active')) + } + static jQueryInterface(t) { + return this.each(function () { + const e = q.getOrCreateInstance(this) + 'toggle' === t && e[t]() + }) + } + } + function z(t) { + return 'true' === t || ('false' !== t && (t === Number(t).toString() ? Number(t) : '' === t || 'null' === t ? null : t)) + } + function $(t) { + return t.replace(/[A-Z]/g, (t) => '-' + t.toLowerCase()) + } + ;(P.on(document, 'click.bs.button.data-api', '[data-bs-toggle="button"]', (t) => { + t.preventDefault() + const e = t.target.closest('[data-bs-toggle="button"]') + q.getOrCreateInstance(e).toggle() + }), + _(q)) + const U = { + setDataAttribute(t, e, i) { + t.setAttribute('data-bs-' + $(e), i) + }, + removeDataAttribute(t, e) { + t.removeAttribute('data-bs-' + $(e)) + }, + getDataAttributes(t) { + if (!t) return {} + const e = {} + return ( + Object.keys(t.dataset) + .filter((t) => t.startsWith('bs')) + .forEach((i) => { + let n = i.replace(/^bs/, '') + ;((n = n.charAt(0).toLowerCase() + n.slice(1, n.length)), (e[n] = z(t.dataset[i]))) + }), + e + ) + }, + getDataAttribute: (t, e) => z(t.getAttribute('data-bs-' + $(e))), + offset(t) { + const e = t.getBoundingClientRect() + return { top: e.top + document.body.scrollTop, left: e.left + document.body.scrollLeft } + }, + position: (t) => ({ top: t.offsetTop, left: t.offsetLeft }), + }, + F = { interval: 5e3, keyboard: !0, slide: !1, pause: 'hover', wrap: !0, touch: !0 }, + V = { + interval: '(number|boolean)', + keyboard: 'boolean', + slide: '(boolean|string)', + pause: '(string|boolean)', + wrap: 'boolean', + touch: 'boolean', + }, + K = 'next', + X = 'prev', + Y = 'left', + Q = 'right', + G = { ArrowLeft: Q, ArrowRight: Y } + class Z extends B { + constructor(e, i) { + ;(super(e), + (this._items = null), + (this._interval = null), + (this._activeElement = null), + (this._isPaused = !1), + (this._isSliding = !1), + (this.touchTimeout = null), + (this.touchStartX = 0), + (this.touchDeltaX = 0), + (this._config = this._getConfig(i)), + (this._indicatorsElement = t.findOne('.carousel-indicators', this._element)), + (this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0), + (this._pointerEvent = Boolean(window.PointerEvent)), + this._addEventListeners()) + } + static get Default() { + return F + } + static get NAME() { + return 'carousel' + } + next() { + this._slide(K) + } + nextWhenVisible() { + !document.hidden && c(this._element) && this.next() + } + prev() { + this._slide(X) + } + pause(e) { + ;(e || (this._isPaused = !0), + t.findOne('.carousel-item-next, .carousel-item-prev', this._element) && (o(this._element), this.cycle(!0)), + clearInterval(this._interval), + (this._interval = null)) + } + cycle(t) { + ;(t || (this._isPaused = !1), + this._interval && (clearInterval(this._interval), (this._interval = null)), + this._config && + this._config.interval && + !this._isPaused && + (this._updateInterval(), + (this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval)))) + } + to(e) { + this._activeElement = t.findOne('.active.carousel-item', this._element) + const i = this._getItemIndex(this._activeElement) + if (e > this._items.length - 1 || e < 0) return + if (this._isSliding) return void P.one(this._element, 'slid.bs.carousel', () => this.to(e)) + if (i === e) return (this.pause(), void this.cycle()) + const n = e > i ? K : X + this._slide(n, this._items[e]) + } + _getConfig(t) { + return ((t = { ...F, ...U.getDataAttributes(this._element), ...('object' == typeof t ? t : {}) }), l('carousel', t, V), t) + } + _handleSwipe() { + const t = Math.abs(this.touchDeltaX) + if (t <= 40) return + const e = t / this.touchDeltaX + ;((this.touchDeltaX = 0), e && this._slide(e > 0 ? Q : Y)) + } + _addEventListeners() { + ;(this._config.keyboard && P.on(this._element, 'keydown.bs.carousel', (t) => this._keydown(t)), + 'hover' === this._config.pause && + (P.on(this._element, 'mouseenter.bs.carousel', (t) => this.pause(t)), P.on(this._element, 'mouseleave.bs.carousel', (t) => this.cycle(t))), + this._config.touch && this._touchSupported && this._addTouchEventListeners()) + } + _addTouchEventListeners() { + const e = (t) => { + !this._pointerEvent || ('pen' !== t.pointerType && 'touch' !== t.pointerType) + ? this._pointerEvent || (this.touchStartX = t.touches[0].clientX) + : (this.touchStartX = t.clientX) + }, + i = (t) => { + this.touchDeltaX = t.touches && t.touches.length > 1 ? 0 : t.touches[0].clientX - this.touchStartX + }, + n = (t) => { + ;(!this._pointerEvent || ('pen' !== t.pointerType && 'touch' !== t.pointerType) || (this.touchDeltaX = t.clientX - this.touchStartX), + this._handleSwipe(), + 'hover' === this._config.pause && + (this.pause(), + this.touchTimeout && clearTimeout(this.touchTimeout), + (this.touchTimeout = setTimeout((t) => this.cycle(t), 500 + this._config.interval)))) + } + ;(t.find('.carousel-item img', this._element).forEach((t) => { + P.on(t, 'dragstart.bs.carousel', (t) => t.preventDefault()) + }), + this._pointerEvent + ? (P.on(this._element, 'pointerdown.bs.carousel', (t) => e(t)), + P.on(this._element, 'pointerup.bs.carousel', (t) => n(t)), + this._element.classList.add('pointer-event')) + : (P.on(this._element, 'touchstart.bs.carousel', (t) => e(t)), + P.on(this._element, 'touchmove.bs.carousel', (t) => i(t)), + P.on(this._element, 'touchend.bs.carousel', (t) => n(t)))) + } + _keydown(t) { + if (/input|textarea/i.test(t.target.tagName)) return + const e = G[t.key] + e && (t.preventDefault(), this._slide(e)) + } + _getItemIndex(e) { + return ((this._items = e && e.parentNode ? t.find('.carousel-item', e.parentNode) : []), this._items.indexOf(e)) + } + _getItemByOrder(t, e) { + const i = t === K + return y(this._items, e, i, this._config.wrap) + } + _triggerSlideEvent(e, i) { + const n = this._getItemIndex(e), + s = this._getItemIndex(t.findOne('.active.carousel-item', this._element)) + return P.trigger(this._element, 'slide.bs.carousel', { relatedTarget: e, direction: i, from: s, to: n }) + } + _setActiveIndicatorElement(e) { + if (this._indicatorsElement) { + const i = t.findOne('.active', this._indicatorsElement) + ;(i.classList.remove('active'), i.removeAttribute('aria-current')) + const n = t.find('[data-bs-target]', this._indicatorsElement) + for (let t = 0; t < n.length; t++) + if (Number.parseInt(n[t].getAttribute('data-bs-slide-to'), 10) === this._getItemIndex(e)) { + ;(n[t].classList.add('active'), n[t].setAttribute('aria-current', 'true')) + break + } + } + } + _updateInterval() { + const e = this._activeElement || t.findOne('.active.carousel-item', this._element) + if (!e) return + const i = Number.parseInt(e.getAttribute('data-bs-interval'), 10) + i + ? ((this._config.defaultInterval = this._config.defaultInterval || this._config.interval), (this._config.interval = i)) + : (this._config.interval = this._config.defaultInterval || this._config.interval) + } + _slide(e, i) { + const n = this._directionToOrder(e), + s = t.findOne('.active.carousel-item', this._element), + o = this._getItemIndex(s), + r = i || this._getItemByOrder(n, s), + a = this._getItemIndex(r), + l = Boolean(this._interval), + c = n === K, + h = c ? 'carousel-item-start' : 'carousel-item-end', + d = c ? 'carousel-item-next' : 'carousel-item-prev', + u = this._orderToDirection(n) + if (r && r.classList.contains('active')) return void (this._isSliding = !1) + if (this._isSliding) return + if (this._triggerSlideEvent(r, u).defaultPrevented) return + if (!s || !r) return + ;((this._isSliding = !0), l && this.pause(), this._setActiveIndicatorElement(r), (this._activeElement = r)) + const p = () => { + P.trigger(this._element, 'slid.bs.carousel', { relatedTarget: r, direction: u, from: o, to: a }) + } + if (this._element.classList.contains('slide')) { + ;(r.classList.add(d), f(r), s.classList.add(h), r.classList.add(h)) + const t = () => { + ;(r.classList.remove(h, d), r.classList.add('active'), s.classList.remove('active', d, h), (this._isSliding = !1), setTimeout(p, 0)) + } + this._queueCallback(t, s, !0) + } else (s.classList.remove('active'), r.classList.add('active'), (this._isSliding = !1), p()) + l && this.cycle() + } + _directionToOrder(t) { + return [Q, Y].includes(t) ? (g() ? (t === Y ? X : K) : t === Y ? K : X) : t + } + _orderToDirection(t) { + return [K, X].includes(t) ? (g() ? (t === X ? Y : Q) : t === X ? Q : Y) : t + } + static carouselInterface(t, e) { + const i = Z.getOrCreateInstance(t, e) + let { _config: n } = i + 'object' == typeof e && (n = { ...n, ...e }) + const s = 'string' == typeof e ? e : n.slide + if ('number' == typeof e) i.to(e) + else if ('string' == typeof s) { + if (void 0 === i[s]) throw new TypeError(`No method named "${s}"`) + i[s]() + } else n.interval && n.ride && (i.pause(), i.cycle()) + } + static jQueryInterface(t) { + return this.each(function () { + Z.carouselInterface(this, t) + }) + } + static dataApiClickHandler(t) { + const e = s(this) + if (!e || !e.classList.contains('carousel')) return + const i = { ...U.getDataAttributes(e), ...U.getDataAttributes(this) }, + n = this.getAttribute('data-bs-slide-to') + ;(n && (i.interval = !1), Z.carouselInterface(e, i), n && Z.getInstance(e).to(n), t.preventDefault()) + } + } + ;(P.on(document, 'click.bs.carousel.data-api', '[data-bs-slide], [data-bs-slide-to]', Z.dataApiClickHandler), + P.on(window, 'load.bs.carousel.data-api', () => { + const e = t.find('[data-bs-ride="carousel"]') + for (let t = 0, i = e.length; t < i; t++) Z.carouselInterface(e[t], Z.getInstance(e[t])) + }), + _(Z)) + const J = { toggle: !0, parent: '' }, + tt = { toggle: 'boolean', parent: '(string|element)' } + class et extends B { + constructor(e, i) { + ;(super(e), + (this._isTransitioning = !1), + (this._config = this._getConfig(i)), + (this._triggerArray = t.find( + `[data-bs-toggle="collapse"][href="#${this._element.id}"],[data-bs-toggle="collapse"][data-bs-target="#${this._element.id}"]`, + ))) + const s = t.find('[data-bs-toggle="collapse"]') + for (let e = 0, i = s.length; e < i; e++) { + const i = s[e], + o = n(i), + r = t.find(o).filter((t) => t === this._element) + null !== o && r.length && ((this._selector = o), this._triggerArray.push(i)) + } + ;((this._parent = this._config.parent ? this._getParent() : null), + this._config.parent || this._addAriaAndCollapsedClass(this._element, this._triggerArray), + this._config.toggle && this.toggle()) + } + static get Default() { + return J + } + static get NAME() { + return 'collapse' + } + toggle() { + this._element.classList.contains('show') ? this.hide() : this.show() + } + show() { + if (this._isTransitioning || this._element.classList.contains('show')) return + let e, i + this._parent && + ((e = t + .find('.show, .collapsing', this._parent) + .filter((t) => + 'string' == typeof this._config.parent ? t.getAttribute('data-bs-parent') === this._config.parent : t.classList.contains('collapse'), + )), + 0 === e.length && (e = null)) + const n = t.findOne(this._selector) + if (e) { + const t = e.find((t) => n !== t) + if (((i = t ? et.getInstance(t) : null), i && i._isTransitioning)) return + } + if (P.trigger(this._element, 'show.bs.collapse').defaultPrevented) return + e && + e.forEach((t) => { + ;(n !== t && et.collapseInterface(t, 'hide'), i || R.set(t, 'bs.collapse', null)) + }) + const s = this._getDimension() + ;(this._element.classList.remove('collapse'), + this._element.classList.add('collapsing'), + (this._element.style[s] = 0), + this._triggerArray.length && + this._triggerArray.forEach((t) => { + ;(t.classList.remove('collapsed'), t.setAttribute('aria-expanded', !0)) + }), + this.setTransitioning(!0)) + const o = 'scroll' + (s[0].toUpperCase() + s.slice(1)) + ;(this._queueCallback( + () => { + ;(this._element.classList.remove('collapsing'), + this._element.classList.add('collapse', 'show'), + (this._element.style[s] = ''), + this.setTransitioning(!1), + P.trigger(this._element, 'shown.bs.collapse')) + }, + this._element, + !0, + ), + (this._element.style[s] = this._element[o] + 'px')) + } + hide() { + if (this._isTransitioning || !this._element.classList.contains('show')) return + if (P.trigger(this._element, 'hide.bs.collapse').defaultPrevented) return + const t = this._getDimension() + ;((this._element.style[t] = this._element.getBoundingClientRect()[t] + 'px'), + f(this._element), + this._element.classList.add('collapsing'), + this._element.classList.remove('collapse', 'show')) + const e = this._triggerArray.length + if (e > 0) + for (let t = 0; t < e; t++) { + const e = this._triggerArray[t], + i = s(e) + i && !i.classList.contains('show') && (e.classList.add('collapsed'), e.setAttribute('aria-expanded', !1)) + } + ;(this.setTransitioning(!0), + (this._element.style[t] = ''), + this._queueCallback( + () => { + ;(this.setTransitioning(!1), + this._element.classList.remove('collapsing'), + this._element.classList.add('collapse'), + P.trigger(this._element, 'hidden.bs.collapse')) + }, + this._element, + !0, + )) + } + setTransitioning(t) { + this._isTransitioning = t + } + _getConfig(t) { + return (((t = { ...J, ...t }).toggle = Boolean(t.toggle)), l('collapse', t, tt), t) + } + _getDimension() { + return this._element.classList.contains('width') ? 'width' : 'height' + } + _getParent() { + let { parent: e } = this._config + e = a(e) + const i = `[data-bs-toggle="collapse"][data-bs-parent="${e}"]` + return ( + t.find(i, e).forEach((t) => { + const e = s(t) + this._addAriaAndCollapsedClass(e, [t]) + }), + e + ) + } + _addAriaAndCollapsedClass(t, e) { + if (!t || !e.length) return + const i = t.classList.contains('show') + e.forEach((t) => { + ;(i ? t.classList.remove('collapsed') : t.classList.add('collapsed'), t.setAttribute('aria-expanded', i)) + }) + } + static collapseInterface(t, e) { + let i = et.getInstance(t) + const n = { ...J, ...U.getDataAttributes(t), ...('object' == typeof e && e ? e : {}) } + if ((!i && n.toggle && 'string' == typeof e && /show|hide/.test(e) && (n.toggle = !1), i || (i = new et(t, n)), 'string' == typeof e)) { + if (void 0 === i[e]) throw new TypeError(`No method named "${e}"`) + i[e]() + } + } + static jQueryInterface(t) { + return this.each(function () { + et.collapseInterface(this, t) + }) + } + } + ;(P.on(document, 'click.bs.collapse.data-api', '[data-bs-toggle="collapse"]', function (e) { + ;('A' === e.target.tagName || (e.delegateTarget && 'A' === e.delegateTarget.tagName)) && e.preventDefault() + const i = U.getDataAttributes(this), + s = n(this) + t.find(s).forEach((t) => { + const e = et.getInstance(t) + let n + ;(e + ? (null === e._parent && 'string' == typeof i.parent && ((e._config.parent = i.parent), (e._parent = e._getParent())), (n = 'toggle')) + : (n = i), + et.collapseInterface(t, n)) + }) + }), + _(et)) + var it = 'top', + nt = 'bottom', + st = 'right', + ot = 'left', + rt = [it, nt, st, ot], + at = rt.reduce(function (t, e) { + return t.concat([e + '-start', e + '-end']) + }, []), + lt = [].concat(rt, ['auto']).reduce(function (t, e) { + return t.concat([e, e + '-start', e + '-end']) + }, []), + ct = ['beforeRead', 'read', 'afterRead', 'beforeMain', 'main', 'afterMain', 'beforeWrite', 'write', 'afterWrite'] + function ht(t) { + return t ? (t.nodeName || '').toLowerCase() : null + } + function dt(t) { + if (null == t) return window + if ('[object Window]' !== t.toString()) { + var e = t.ownerDocument + return (e && e.defaultView) || window + } + return t + } + function ut(t) { + return t instanceof dt(t).Element || t instanceof Element + } + function ft(t) { + return t instanceof dt(t).HTMLElement || t instanceof HTMLElement + } + function pt(t) { + return 'undefined' != typeof ShadowRoot && (t instanceof dt(t).ShadowRoot || t instanceof ShadowRoot) + } + var mt = { + name: 'applyStyles', + enabled: !0, + phase: 'write', + fn: function (t) { + var e = t.state + Object.keys(e.elements).forEach(function (t) { + var i = e.styles[t] || {}, + n = e.attributes[t] || {}, + s = e.elements[t] + ft(s) && + ht(s) && + (Object.assign(s.style, i), + Object.keys(n).forEach(function (t) { + var e = n[t] + !1 === e ? s.removeAttribute(t) : s.setAttribute(t, !0 === e ? '' : e) + })) + }) + }, + effect: function (t) { + var e = t.state, + i = { popper: { position: e.options.strategy, left: '0', top: '0', margin: '0' }, arrow: { position: 'absolute' }, reference: {} } + return ( + Object.assign(e.elements.popper.style, i.popper), + (e.styles = i), + e.elements.arrow && Object.assign(e.elements.arrow.style, i.arrow), + function () { + Object.keys(e.elements).forEach(function (t) { + var n = e.elements[t], + s = e.attributes[t] || {}, + o = Object.keys(e.styles.hasOwnProperty(t) ? e.styles[t] : i[t]).reduce(function (t, e) { + return ((t[e] = ''), t) + }, {}) + ft(n) && + ht(n) && + (Object.assign(n.style, o), + Object.keys(s).forEach(function (t) { + n.removeAttribute(t) + })) + }) + } + ) + }, + requires: ['computeStyles'], + } + function gt(t) { + return t.split('-')[0] + } + function _t(t) { + var e = t.getBoundingClientRect() + return { width: e.width, height: e.height, top: e.top, right: e.right, bottom: e.bottom, left: e.left, x: e.left, y: e.top } + } + function bt(t) { + var e = _t(t), + i = t.offsetWidth, + n = t.offsetHeight + return ( + Math.abs(e.width - i) <= 1 && (i = e.width), + Math.abs(e.height - n) <= 1 && (n = e.height), + { x: t.offsetLeft, y: t.offsetTop, width: i, height: n } + ) + } + function vt(t, e) { + var i = e.getRootNode && e.getRootNode() + if (t.contains(e)) return !0 + if (i && pt(i)) { + var n = e + do { + if (n && t.isSameNode(n)) return !0 + n = n.parentNode || n.host + } while (n) + } + return !1 + } + function yt(t) { + return dt(t).getComputedStyle(t) + } + function wt(t) { + return ['table', 'td', 'th'].indexOf(ht(t)) >= 0 + } + function Et(t) { + return ((ut(t) ? t.ownerDocument : t.document) || window.document).documentElement + } + function At(t) { + return 'html' === ht(t) ? t : t.assignedSlot || t.parentNode || (pt(t) ? t.host : null) || Et(t) + } + function Tt(t) { + return ft(t) && 'fixed' !== yt(t).position ? t.offsetParent : null + } + function Ot(t) { + for (var e = dt(t), i = Tt(t); i && wt(i) && 'static' === yt(i).position; ) i = Tt(i) + return i && ('html' === ht(i) || ('body' === ht(i) && 'static' === yt(i).position)) + ? e + : i || + (function (t) { + var e = -1 !== navigator.userAgent.toLowerCase().indexOf('firefox') + if (-1 !== navigator.userAgent.indexOf('Trident') && ft(t) && 'fixed' === yt(t).position) return null + for (var i = At(t); ft(i) && ['html', 'body'].indexOf(ht(i)) < 0; ) { + var n = yt(i) + if ( + 'none' !== n.transform || + 'none' !== n.perspective || + 'paint' === n.contain || + -1 !== ['transform', 'perspective'].indexOf(n.willChange) || + (e && 'filter' === n.willChange) || + (e && n.filter && 'none' !== n.filter) + ) + return i + i = i.parentNode + } + return null + })(t) || + e + } + function Ct(t) { + return ['top', 'bottom'].indexOf(t) >= 0 ? 'x' : 'y' + } + var kt = Math.max, + Lt = Math.min, + xt = Math.round + function Dt(t, e, i) { + return kt(t, Lt(e, i)) + } + function St(t) { + return Object.assign({}, { top: 0, right: 0, bottom: 0, left: 0 }, t) + } + function It(t, e) { + return e.reduce(function (e, i) { + return ((e[i] = t), e) + }, {}) + } + var Nt = { + name: 'arrow', + enabled: !0, + phase: 'main', + fn: function (t) { + var e, + i = t.state, + n = t.name, + s = t.options, + o = i.elements.arrow, + r = i.modifiersData.popperOffsets, + a = gt(i.placement), + l = Ct(a), + c = [ot, st].indexOf(a) >= 0 ? 'height' : 'width' + if (o && r) { + var h = (function (t, e) { + return St( + 'number' != typeof (t = 'function' == typeof t ? t(Object.assign({}, e.rects, { placement: e.placement })) : t) ? t : It(t, rt), + ) + })(s.padding, i), + d = bt(o), + u = 'y' === l ? it : ot, + f = 'y' === l ? nt : st, + p = i.rects.reference[c] + i.rects.reference[l] - r[l] - i.rects.popper[c], + m = r[l] - i.rects.reference[l], + g = Ot(o), + _ = g ? ('y' === l ? g.clientHeight || 0 : g.clientWidth || 0) : 0, + b = p / 2 - m / 2, + v = h[u], + y = _ - d[c] - h[f], + w = _ / 2 - d[c] / 2 + b, + E = Dt(v, w, y), + A = l + i.modifiersData[n] = (((e = {})[A] = E), (e.centerOffset = E - w), e) + } + }, + effect: function (t) { + var e = t.state, + i = t.options.element, + n = void 0 === i ? '[data-popper-arrow]' : i + null != n && ('string' != typeof n || (n = e.elements.popper.querySelector(n))) && vt(e.elements.popper, n) && (e.elements.arrow = n) + }, + requires: ['popperOffsets'], + requiresIfExists: ['preventOverflow'], + }, + jt = { top: 'auto', right: 'auto', bottom: 'auto', left: 'auto' } + function Mt(t) { + var e, + i = t.popper, + n = t.popperRect, + s = t.placement, + o = t.offsets, + r = t.position, + a = t.gpuAcceleration, + l = t.adaptive, + c = t.roundOffsets, + h = + !0 === c + ? (function (t) { + var e = t.x, + i = t.y, + n = window.devicePixelRatio || 1 + return { x: xt(xt(e * n) / n) || 0, y: xt(xt(i * n) / n) || 0 } + })(o) + : 'function' == typeof c + ? c(o) + : o, + d = h.x, + u = void 0 === d ? 0 : d, + f = h.y, + p = void 0 === f ? 0 : f, + m = o.hasOwnProperty('x'), + g = o.hasOwnProperty('y'), + _ = ot, + b = it, + v = window + if (l) { + var y = Ot(i), + w = 'clientHeight', + E = 'clientWidth' + ;(y === dt(i) && 'static' !== yt((y = Et(i))).position && ((w = 'scrollHeight'), (E = 'scrollWidth')), + (y = y), + s === it && ((b = nt), (p -= y[w] - n.height), (p *= a ? 1 : -1)), + s === ot && ((_ = st), (u -= y[E] - n.width), (u *= a ? 1 : -1))) + } + var A, + T = Object.assign({ position: r }, l && jt) + return a + ? Object.assign( + {}, + T, + (((A = {})[b] = g ? '0' : ''), + (A[_] = m ? '0' : ''), + (A.transform = (v.devicePixelRatio || 1) < 2 ? 'translate(' + u + 'px, ' + p + 'px)' : 'translate3d(' + u + 'px, ' + p + 'px, 0)'), + A), + ) + : Object.assign({}, T, (((e = {})[b] = g ? p + 'px' : ''), (e[_] = m ? u + 'px' : ''), (e.transform = ''), e)) + } + var Pt = { + name: 'computeStyles', + enabled: !0, + phase: 'beforeWrite', + fn: function (t) { + var e = t.state, + i = t.options, + n = i.gpuAcceleration, + s = void 0 === n || n, + o = i.adaptive, + r = void 0 === o || o, + a = i.roundOffsets, + l = void 0 === a || a, + c = { placement: gt(e.placement), popper: e.elements.popper, popperRect: e.rects.popper, gpuAcceleration: s } + ;(null != e.modifiersData.popperOffsets && + (e.styles.popper = Object.assign( + {}, + e.styles.popper, + Mt(Object.assign({}, c, { offsets: e.modifiersData.popperOffsets, position: e.options.strategy, adaptive: r, roundOffsets: l })), + )), + null != e.modifiersData.arrow && + (e.styles.arrow = Object.assign( + {}, + e.styles.arrow, + Mt(Object.assign({}, c, { offsets: e.modifiersData.arrow, position: 'absolute', adaptive: !1, roundOffsets: l })), + )), + (e.attributes.popper = Object.assign({}, e.attributes.popper, { 'data-popper-placement': e.placement }))) + }, + data: {}, + }, + Ht = { passive: !0 }, + Rt = { + name: 'eventListeners', + enabled: !0, + phase: 'write', + fn: function () {}, + effect: function (t) { + var e = t.state, + i = t.instance, + n = t.options, + s = n.scroll, + o = void 0 === s || s, + r = n.resize, + a = void 0 === r || r, + l = dt(e.elements.popper), + c = [].concat(e.scrollParents.reference, e.scrollParents.popper) + return ( + o && + c.forEach(function (t) { + t.addEventListener('scroll', i.update, Ht) + }), + a && l.addEventListener('resize', i.update, Ht), + function () { + ;(o && + c.forEach(function (t) { + t.removeEventListener('scroll', i.update, Ht) + }), + a && l.removeEventListener('resize', i.update, Ht)) + } + ) + }, + data: {}, + }, + Bt = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' } + function Wt(t) { + return t.replace(/left|right|bottom|top/g, function (t) { + return Bt[t] + }) + } + var qt = { start: 'end', end: 'start' } + function zt(t) { + return t.replace(/start|end/g, function (t) { + return qt[t] + }) + } + function $t(t) { + var e = dt(t) + return { scrollLeft: e.pageXOffset, scrollTop: e.pageYOffset } + } + function Ut(t) { + return _t(Et(t)).left + $t(t).scrollLeft + } + function Ft(t) { + var e = yt(t), + i = e.overflow, + n = e.overflowX, + s = e.overflowY + return /auto|scroll|overlay|hidden/.test(i + s + n) + } + function Vt(t, e) { + var i + void 0 === e && (e = []) + var n = (function t(e) { + return ['html', 'body', '#document'].indexOf(ht(e)) >= 0 ? e.ownerDocument.body : ft(e) && Ft(e) ? e : t(At(e)) + })(t), + s = n === (null == (i = t.ownerDocument) ? void 0 : i.body), + o = dt(n), + r = s ? [o].concat(o.visualViewport || [], Ft(n) ? n : []) : n, + a = e.concat(r) + return s ? a : a.concat(Vt(At(r))) + } + function Kt(t) { + return Object.assign({}, t, { left: t.x, top: t.y, right: t.x + t.width, bottom: t.y + t.height }) + } + function Xt(t, e) { + return 'viewport' === e + ? Kt( + (function (t) { + var e = dt(t), + i = Et(t), + n = e.visualViewport, + s = i.clientWidth, + o = i.clientHeight, + r = 0, + a = 0 + return ( + n && + ((s = n.width), + (o = n.height), + /^((?!chrome|android).)*safari/i.test(navigator.userAgent) || ((r = n.offsetLeft), (a = n.offsetTop))), + { width: s, height: o, x: r + Ut(t), y: a } + ) + })(t), + ) + : ft(e) + ? (function (t) { + var e = _t(t) + return ( + (e.top = e.top + t.clientTop), + (e.left = e.left + t.clientLeft), + (e.bottom = e.top + t.clientHeight), + (e.right = e.left + t.clientWidth), + (e.width = t.clientWidth), + (e.height = t.clientHeight), + (e.x = e.left), + (e.y = e.top), + e + ) + })(e) + : Kt( + (function (t) { + var e, + i = Et(t), + n = $t(t), + s = null == (e = t.ownerDocument) ? void 0 : e.body, + o = kt(i.scrollWidth, i.clientWidth, s ? s.scrollWidth : 0, s ? s.clientWidth : 0), + r = kt(i.scrollHeight, i.clientHeight, s ? s.scrollHeight : 0, s ? s.clientHeight : 0), + a = -n.scrollLeft + Ut(t), + l = -n.scrollTop + return ('rtl' === yt(s || i).direction && (a += kt(i.clientWidth, s ? s.clientWidth : 0) - o), { width: o, height: r, x: a, y: l }) + })(Et(t)), + ) + } + function Yt(t) { + return t.split('-')[1] + } + function Qt(t) { + var e, + i = t.reference, + n = t.element, + s = t.placement, + o = s ? gt(s) : null, + r = s ? Yt(s) : null, + a = i.x + i.width / 2 - n.width / 2, + l = i.y + i.height / 2 - n.height / 2 + switch (o) { + case it: + e = { x: a, y: i.y - n.height } + break + case nt: + e = { x: a, y: i.y + i.height } + break + case st: + e = { x: i.x + i.width, y: l } + break + case ot: + e = { x: i.x - n.width, y: l } + break + default: + e = { x: i.x, y: i.y } + } + var c = o ? Ct(o) : null + if (null != c) { + var h = 'y' === c ? 'height' : 'width' + switch (r) { + case 'start': + e[c] = e[c] - (i[h] / 2 - n[h] / 2) + break + case 'end': + e[c] = e[c] + (i[h] / 2 - n[h] / 2) + } + } + return e + } + function Gt(t, e) { + void 0 === e && (e = {}) + var i = e, + n = i.placement, + s = void 0 === n ? t.placement : n, + o = i.boundary, + r = void 0 === o ? 'clippingParents' : o, + a = i.rootBoundary, + l = void 0 === a ? 'viewport' : a, + c = i.elementContext, + h = void 0 === c ? 'popper' : c, + d = i.altBoundary, + u = void 0 !== d && d, + f = i.padding, + p = void 0 === f ? 0 : f, + m = St('number' != typeof p ? p : It(p, rt)), + g = 'popper' === h ? 'reference' : 'popper', + _ = t.elements.reference, + b = t.rects.popper, + v = t.elements[u ? g : h], + y = (function (t, e, i) { + var n = + 'clippingParents' === e + ? (function (t) { + var e = Vt(At(t)), + i = ['absolute', 'fixed'].indexOf(yt(t).position) >= 0 && ft(t) ? Ot(t) : t + return ut(i) + ? e.filter(function (t) { + return ut(t) && vt(t, i) && 'body' !== ht(t) + }) + : [] + })(t) + : [].concat(e), + s = [].concat(n, [i]), + o = s[0], + r = s.reduce( + function (e, i) { + var n = Xt(t, i) + return ( + (e.top = kt(n.top, e.top)), + (e.right = Lt(n.right, e.right)), + (e.bottom = Lt(n.bottom, e.bottom)), + (e.left = kt(n.left, e.left)), + e + ) + }, + Xt(t, o), + ) + return ((r.width = r.right - r.left), (r.height = r.bottom - r.top), (r.x = r.left), (r.y = r.top), r) + })(ut(v) ? v : v.contextElement || Et(t.elements.popper), r, l), + w = _t(_), + E = Qt({ reference: w, element: b, strategy: 'absolute', placement: s }), + A = Kt(Object.assign({}, b, E)), + T = 'popper' === h ? A : w, + O = { top: y.top - T.top + m.top, bottom: T.bottom - y.bottom + m.bottom, left: y.left - T.left + m.left, right: T.right - y.right + m.right }, + C = t.modifiersData.offset + if ('popper' === h && C) { + var k = C[s] + Object.keys(O).forEach(function (t) { + var e = [st, nt].indexOf(t) >= 0 ? 1 : -1, + i = [it, nt].indexOf(t) >= 0 ? 'y' : 'x' + O[t] += k[i] * e + }) + } + return O + } + function Zt(t, e) { + void 0 === e && (e = {}) + var i = e, + n = i.placement, + s = i.boundary, + o = i.rootBoundary, + r = i.padding, + a = i.flipVariations, + l = i.allowedAutoPlacements, + c = void 0 === l ? lt : l, + h = Yt(n), + d = h + ? a + ? at + : at.filter(function (t) { + return Yt(t) === h + }) + : rt, + u = d.filter(function (t) { + return c.indexOf(t) >= 0 + }) + 0 === u.length && (u = d) + var f = u.reduce(function (e, i) { + return ((e[i] = Gt(t, { placement: i, boundary: s, rootBoundary: o, padding: r })[gt(i)]), e) + }, {}) + return Object.keys(f).sort(function (t, e) { + return f[t] - f[e] + }) + } + var Jt = { + name: 'flip', + enabled: !0, + phase: 'main', + fn: function (t) { + var e = t.state, + i = t.options, + n = t.name + if (!e.modifiersData[n]._skip) { + for ( + var s = i.mainAxis, + o = void 0 === s || s, + r = i.altAxis, + a = void 0 === r || r, + l = i.fallbackPlacements, + c = i.padding, + h = i.boundary, + d = i.rootBoundary, + u = i.altBoundary, + f = i.flipVariations, + p = void 0 === f || f, + m = i.allowedAutoPlacements, + g = e.options.placement, + _ = gt(g), + b = + l || + (_ !== g && p + ? (function (t) { + if ('auto' === gt(t)) return [] + var e = Wt(t) + return [zt(t), e, zt(e)] + })(g) + : [Wt(g)]), + v = [g].concat(b).reduce(function (t, i) { + return t.concat( + 'auto' === gt(i) ? Zt(e, { placement: i, boundary: h, rootBoundary: d, padding: c, flipVariations: p, allowedAutoPlacements: m }) : i, + ) + }, []), + y = e.rects.reference, + w = e.rects.popper, + E = new Map(), + A = !0, + T = v[0], + O = 0; + O < v.length; + O++ + ) { + var C = v[O], + k = gt(C), + L = 'start' === Yt(C), + x = [it, nt].indexOf(k) >= 0, + D = x ? 'width' : 'height', + S = Gt(e, { placement: C, boundary: h, rootBoundary: d, altBoundary: u, padding: c }), + I = x ? (L ? st : ot) : L ? nt : it + y[D] > w[D] && (I = Wt(I)) + var N = Wt(I), + j = [] + if ( + (o && j.push(S[k] <= 0), + a && j.push(S[I] <= 0, S[N] <= 0), + j.every(function (t) { + return t + })) + ) { + ;((T = C), (A = !1)) + break + } + E.set(C, j) + } + if (A) + for ( + var M = function (t) { + var e = v.find(function (e) { + var i = E.get(e) + if (i) + return i.slice(0, t).every(function (t) { + return t + }) + }) + if (e) return ((T = e), 'break') + }, + P = p ? 3 : 1; + P > 0 && 'break' !== M(P); + P-- + ); + e.placement !== T && ((e.modifiersData[n]._skip = !0), (e.placement = T), (e.reset = !0)) + } + }, + requiresIfExists: ['offset'], + data: { _skip: !1 }, + } + function te(t, e, i) { + return ( + void 0 === i && (i = { x: 0, y: 0 }), + { top: t.top - e.height - i.y, right: t.right - e.width + i.x, bottom: t.bottom - e.height + i.y, left: t.left - e.width - i.x } + ) + } + function ee(t) { + return [it, st, nt, ot].some(function (e) { + return t[e] >= 0 + }) + } + var ie = { + name: 'hide', + enabled: !0, + phase: 'main', + requiresIfExists: ['preventOverflow'], + fn: function (t) { + var e = t.state, + i = t.name, + n = e.rects.reference, + s = e.rects.popper, + o = e.modifiersData.preventOverflow, + r = Gt(e, { elementContext: 'reference' }), + a = Gt(e, { altBoundary: !0 }), + l = te(r, n), + c = te(a, s, o), + h = ee(l), + d = ee(c) + ;((e.modifiersData[i] = { referenceClippingOffsets: l, popperEscapeOffsets: c, isReferenceHidden: h, hasPopperEscaped: d }), + (e.attributes.popper = Object.assign({}, e.attributes.popper, { 'data-popper-reference-hidden': h, 'data-popper-escaped': d }))) + }, + }, + ne = { + name: 'offset', + enabled: !0, + phase: 'main', + requires: ['popperOffsets'], + fn: function (t) { + var e = t.state, + i = t.options, + n = t.name, + s = i.offset, + o = void 0 === s ? [0, 0] : s, + r = lt.reduce(function (t, i) { + return ( + (t[i] = (function (t, e, i) { + var n = gt(t), + s = [ot, it].indexOf(n) >= 0 ? -1 : 1, + o = 'function' == typeof i ? i(Object.assign({}, e, { placement: t })) : i, + r = o[0], + a = o[1] + return ((r = r || 0), (a = (a || 0) * s), [ot, st].indexOf(n) >= 0 ? { x: a, y: r } : { x: r, y: a }) + })(i, e.rects, o)), + t + ) + }, {}), + a = r[e.placement], + l = a.x, + c = a.y + ;(null != e.modifiersData.popperOffsets && ((e.modifiersData.popperOffsets.x += l), (e.modifiersData.popperOffsets.y += c)), + (e.modifiersData[n] = r)) + }, + }, + se = { + name: 'popperOffsets', + enabled: !0, + phase: 'read', + fn: function (t) { + var e = t.state, + i = t.name + e.modifiersData[i] = Qt({ reference: e.rects.reference, element: e.rects.popper, strategy: 'absolute', placement: e.placement }) + }, + data: {}, + }, + oe = { + name: 'preventOverflow', + enabled: !0, + phase: 'main', + fn: function (t) { + var e = t.state, + i = t.options, + n = t.name, + s = i.mainAxis, + o = void 0 === s || s, + r = i.altAxis, + a = void 0 !== r && r, + l = i.boundary, + c = i.rootBoundary, + h = i.altBoundary, + d = i.padding, + u = i.tether, + f = void 0 === u || u, + p = i.tetherOffset, + m = void 0 === p ? 0 : p, + g = Gt(e, { boundary: l, rootBoundary: c, padding: d, altBoundary: h }), + _ = gt(e.placement), + b = Yt(e.placement), + v = !b, + y = Ct(_), + w = 'x' === y ? 'y' : 'x', + E = e.modifiersData.popperOffsets, + A = e.rects.reference, + T = e.rects.popper, + O = 'function' == typeof m ? m(Object.assign({}, e.rects, { placement: e.placement })) : m, + C = { x: 0, y: 0 } + if (E) { + if (o || a) { + var k = 'y' === y ? it : ot, + L = 'y' === y ? nt : st, + x = 'y' === y ? 'height' : 'width', + D = E[y], + S = E[y] + g[k], + I = E[y] - g[L], + N = f ? -T[x] / 2 : 0, + j = 'start' === b ? A[x] : T[x], + M = 'start' === b ? -T[x] : -A[x], + P = e.elements.arrow, + H = f && P ? bt(P) : { width: 0, height: 0 }, + R = e.modifiersData['arrow#persistent'] ? e.modifiersData['arrow#persistent'].padding : { top: 0, right: 0, bottom: 0, left: 0 }, + B = R[k], + W = R[L], + q = Dt(0, A[x], H[x]), + z = v ? A[x] / 2 - N - q - B - O : j - q - B - O, + $ = v ? -A[x] / 2 + N + q + W + O : M + q + W + O, + U = e.elements.arrow && Ot(e.elements.arrow), + F = U ? ('y' === y ? U.clientTop || 0 : U.clientLeft || 0) : 0, + V = e.modifiersData.offset ? e.modifiersData.offset[e.placement][y] : 0, + K = E[y] + z - V - F, + X = E[y] + $ - V + if (o) { + var Y = Dt(f ? Lt(S, K) : S, D, f ? kt(I, X) : I) + ;((E[y] = Y), (C[y] = Y - D)) + } + if (a) { + var Q = 'x' === y ? it : ot, + G = 'x' === y ? nt : st, + Z = E[w], + J = Z + g[Q], + tt = Z - g[G], + et = Dt(f ? Lt(J, K) : J, Z, f ? kt(tt, X) : tt) + ;((E[w] = et), (C[w] = et - Z)) + } + } + e.modifiersData[n] = C + } + }, + requiresIfExists: ['offset'], + } + function re(t, e, i) { + void 0 === i && (i = !1) + var n, + s, + o = Et(e), + r = _t(t), + a = ft(e), + l = { scrollLeft: 0, scrollTop: 0 }, + c = { x: 0, y: 0 } + return ( + (a || (!a && !i)) && + (('body' !== ht(e) || Ft(o)) && (l = (n = e) !== dt(n) && ft(n) ? { scrollLeft: (s = n).scrollLeft, scrollTop: s.scrollTop } : $t(n)), + ft(e) ? (((c = _t(e)).x += e.clientLeft), (c.y += e.clientTop)) : o && (c.x = Ut(o))), + { x: r.left + l.scrollLeft - c.x, y: r.top + l.scrollTop - c.y, width: r.width, height: r.height } + ) + } + var ae = { placement: 'bottom', modifiers: [], strategy: 'absolute' } + function le() { + for (var t = arguments.length, e = new Array(t), i = 0; i < t; i++) e[i] = arguments[i] + return !e.some(function (t) { + return !(t && 'function' == typeof t.getBoundingClientRect) + }) + } + function ce(t) { + void 0 === t && (t = {}) + var e = t, + i = e.defaultModifiers, + n = void 0 === i ? [] : i, + s = e.defaultOptions, + o = void 0 === s ? ae : s + return function (t, e, i) { + void 0 === i && (i = o) + var s, + r, + a = { + placement: 'bottom', + orderedModifiers: [], + options: Object.assign({}, ae, o), + modifiersData: {}, + elements: { reference: t, popper: e }, + attributes: {}, + styles: {}, + }, + l = [], + c = !1, + h = { + state: a, + setOptions: function (i) { + ;(d(), + (a.options = Object.assign({}, o, a.options, i)), + (a.scrollParents = { reference: ut(t) ? Vt(t) : t.contextElement ? Vt(t.contextElement) : [], popper: Vt(e) })) + var s, + r, + c = (function (t) { + var e = (function (t) { + var e = new Map(), + i = new Set(), + n = [] + return ( + t.forEach(function (t) { + e.set(t.name, t) + }), + t.forEach(function (t) { + i.has(t.name) || + (function t(s) { + ;(i.add(s.name), + [].concat(s.requires || [], s.requiresIfExists || []).forEach(function (n) { + if (!i.has(n)) { + var s = e.get(n) + s && t(s) + } + }), + n.push(s)) + })(t) + }), + n + ) + })(t) + return ct.reduce(function (t, i) { + return t.concat( + e.filter(function (t) { + return t.phase === i + }), + ) + }, []) + })( + ((s = [].concat(n, a.options.modifiers)), + (r = s.reduce(function (t, e) { + var i = t[e.name] + return ( + (t[e.name] = i + ? Object.assign({}, i, e, { options: Object.assign({}, i.options, e.options), data: Object.assign({}, i.data, e.data) }) + : e), + t + ) + }, {})), + Object.keys(r).map(function (t) { + return r[t] + })), + ) + return ( + (a.orderedModifiers = c.filter(function (t) { + return t.enabled + })), + a.orderedModifiers.forEach(function (t) { + var e = t.name, + i = t.options, + n = void 0 === i ? {} : i, + s = t.effect + if ('function' == typeof s) { + var o = s({ state: a, name: e, instance: h, options: n }) + l.push(o || function () {}) + } + }), + h.update() + ) + }, + forceUpdate: function () { + if (!c) { + var t = a.elements, + e = t.reference, + i = t.popper + if (le(e, i)) { + ;((a.rects = { reference: re(e, Ot(i), 'fixed' === a.options.strategy), popper: bt(i) }), + (a.reset = !1), + (a.placement = a.options.placement), + a.orderedModifiers.forEach(function (t) { + return (a.modifiersData[t.name] = Object.assign({}, t.data)) + })) + for (var n = 0; n < a.orderedModifiers.length; n++) + if (!0 !== a.reset) { + var s = a.orderedModifiers[n], + o = s.fn, + r = s.options, + l = void 0 === r ? {} : r, + d = s.name + 'function' == typeof o && (a = o({ state: a, options: l, name: d, instance: h }) || a) + } else ((a.reset = !1), (n = -1)) + } + } + }, + update: + ((s = function () { + return new Promise(function (t) { + ;(h.forceUpdate(), t(a)) + }) + }), + function () { + return ( + r || + (r = new Promise(function (t) { + Promise.resolve().then(function () { + ;((r = void 0), t(s())) + }) + })), + r + ) + }), + destroy: function () { + ;(d(), (c = !0)) + }, + } + if (!le(t, e)) return h + function d() { + ;(l.forEach(function (t) { + return t() + }), + (l = [])) + } + return ( + h.setOptions(i).then(function (t) { + !c && i.onFirstUpdate && i.onFirstUpdate(t) + }), + h + ) + } + } + var he = ce(), + de = ce({ defaultModifiers: [Rt, se, Pt, mt] }), + ue = ce({ defaultModifiers: [Rt, se, Pt, mt, ne, Jt, oe, Nt, ie] }), + fe = Object.freeze({ + __proto__: null, + popperGenerator: ce, + detectOverflow: Gt, + createPopperBase: he, + createPopper: ue, + createPopperLite: de, + top: it, + bottom: nt, + right: st, + left: ot, + auto: 'auto', + basePlacements: rt, + start: 'start', + end: 'end', + clippingParents: 'clippingParents', + viewport: 'viewport', + popper: 'popper', + reference: 'reference', + variationPlacements: at, + placements: lt, + beforeRead: 'beforeRead', + read: 'read', + afterRead: 'afterRead', + beforeMain: 'beforeMain', + main: 'main', + afterMain: 'afterMain', + beforeWrite: 'beforeWrite', + write: 'write', + afterWrite: 'afterWrite', + modifierPhases: ct, + applyStyles: mt, + arrow: Nt, + computeStyles: Pt, + eventListeners: Rt, + flip: Jt, + hide: ie, + offset: ne, + popperOffsets: se, + preventOverflow: oe, + }) + const pe = new RegExp('ArrowUp|ArrowDown|Escape'), + me = g() ? 'top-end' : 'top-start', + ge = g() ? 'top-start' : 'top-end', + _e = g() ? 'bottom-end' : 'bottom-start', + be = g() ? 'bottom-start' : 'bottom-end', + ve = g() ? 'left-start' : 'right-start', + ye = g() ? 'right-start' : 'left-start', + we = { offset: [0, 2], boundary: 'clippingParents', reference: 'toggle', display: 'dynamic', popperConfig: null, autoClose: !0 }, + Ee = { + offset: '(array|string|function)', + boundary: '(string|element)', + reference: '(string|element|object)', + display: 'string', + popperConfig: '(null|object|function)', + autoClose: '(boolean|string)', + } + class Ae extends B { + constructor(t, e) { + ;(super(t), + (this._popper = null), + (this._config = this._getConfig(e)), + (this._menu = this._getMenuElement()), + (this._inNavbar = this._detectNavbar()), + this._addEventListeners()) + } + static get Default() { + return we + } + static get DefaultType() { + return Ee + } + static get NAME() { + return 'dropdown' + } + toggle() { + h(this._element) || (this._element.classList.contains('show') ? this.hide() : this.show()) + } + show() { + if (h(this._element) || this._menu.classList.contains('show')) return + const t = Ae.getParentFromElement(this._element), + e = { relatedTarget: this._element } + if (!P.trigger(this._element, 'show.bs.dropdown', e).defaultPrevented) { + if (this._inNavbar) U.setDataAttribute(this._menu, 'popper', 'none') + else { + if (void 0 === fe) throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)") + let e = this._element + 'parent' === this._config.reference + ? (e = t) + : r(this._config.reference) + ? (e = a(this._config.reference)) + : 'object' == typeof this._config.reference && (e = this._config.reference) + const i = this._getPopperConfig(), + n = i.modifiers.find((t) => 'applyStyles' === t.name && !1 === t.enabled) + ;((this._popper = ue(e, this._menu, i)), n && U.setDataAttribute(this._menu, 'popper', 'static')) + } + ;('ontouchstart' in document.documentElement && + !t.closest('.navbar-nav') && + [].concat(...document.body.children).forEach((t) => P.on(t, 'mouseover', u)), + this._element.focus(), + this._element.setAttribute('aria-expanded', !0), + this._menu.classList.toggle('show'), + this._element.classList.toggle('show'), + P.trigger(this._element, 'shown.bs.dropdown', e)) + } + } + hide() { + if (h(this._element) || !this._menu.classList.contains('show')) return + const t = { relatedTarget: this._element } + this._completeHide(t) + } + dispose() { + ;(this._popper && this._popper.destroy(), super.dispose()) + } + update() { + ;((this._inNavbar = this._detectNavbar()), this._popper && this._popper.update()) + } + _addEventListeners() { + P.on(this._element, 'click.bs.dropdown', (t) => { + ;(t.preventDefault(), this.toggle()) + }) + } + _completeHide(t) { + P.trigger(this._element, 'hide.bs.dropdown', t).defaultPrevented || + ('ontouchstart' in document.documentElement && [].concat(...document.body.children).forEach((t) => P.off(t, 'mouseover', u)), + this._popper && this._popper.destroy(), + this._menu.classList.remove('show'), + this._element.classList.remove('show'), + this._element.setAttribute('aria-expanded', 'false'), + U.removeDataAttribute(this._menu, 'popper'), + P.trigger(this._element, 'hidden.bs.dropdown', t)) + } + _getConfig(t) { + if ( + ((t = { ...this.constructor.Default, ...U.getDataAttributes(this._element), ...t }), + l('dropdown', t, this.constructor.DefaultType), + 'object' == typeof t.reference && !r(t.reference) && 'function' != typeof t.reference.getBoundingClientRect) + ) + throw new TypeError( + 'dropdown'.toUpperCase() + ': Option "reference" provided type "object" without a required "getBoundingClientRect" method.', + ) + return t + } + _getMenuElement() { + return t.next(this._element, '.dropdown-menu')[0] + } + _getPlacement() { + const t = this._element.parentNode + if (t.classList.contains('dropend')) return ve + if (t.classList.contains('dropstart')) return ye + const e = 'end' === getComputedStyle(this._menu).getPropertyValue('--bs-position').trim() + return t.classList.contains('dropup') ? (e ? ge : me) : e ? be : _e + } + _detectNavbar() { + return null !== this._element.closest('.navbar') + } + _getOffset() { + const { offset: t } = this._config + return 'string' == typeof t ? t.split(',').map((t) => Number.parseInt(t, 10)) : 'function' == typeof t ? (e) => t(e, this._element) : t + } + _getPopperConfig() { + const t = { + placement: this._getPlacement(), + modifiers: [ + { name: 'preventOverflow', options: { boundary: this._config.boundary } }, + { name: 'offset', options: { offset: this._getOffset() } }, + ], + } + return ( + 'static' === this._config.display && (t.modifiers = [{ name: 'applyStyles', enabled: !1 }]), + { ...t, ...('function' == typeof this._config.popperConfig ? this._config.popperConfig(t) : this._config.popperConfig) } + ) + } + _selectMenuItem({ key: e, target: i }) { + const n = t.find('.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)', this._menu).filter(c) + n.length && y(n, i, 'ArrowDown' === e, !n.includes(i)).focus() + } + static dropdownInterface(t, e) { + const i = Ae.getOrCreateInstance(t, e) + if ('string' == typeof e) { + if (void 0 === i[e]) throw new TypeError(`No method named "${e}"`) + i[e]() + } + } + static jQueryInterface(t) { + return this.each(function () { + Ae.dropdownInterface(this, t) + }) + } + static clearMenus(e) { + if (e && (2 === e.button || ('keyup' === e.type && 'Tab' !== e.key))) return + const i = t.find('[data-bs-toggle="dropdown"]') + for (let t = 0, n = i.length; t < n; t++) { + const n = Ae.getInstance(i[t]) + if (!n || !1 === n._config.autoClose) continue + if (!n._element.classList.contains('show')) continue + const s = { relatedTarget: n._element } + if (e) { + const t = e.composedPath(), + i = t.includes(n._menu) + if (t.includes(n._element) || ('inside' === n._config.autoClose && !i) || ('outside' === n._config.autoClose && i)) continue + if (n._menu.contains(e.target) && (('keyup' === e.type && 'Tab' === e.key) || /input|select|option|textarea|form/i.test(e.target.tagName))) + continue + 'click' === e.type && (s.clickEvent = e) + } + n._completeHide(s) + } + } + static getParentFromElement(t) { + return s(t) || t.parentNode + } + static dataApiKeydownHandler(e) { + if ( + /input|textarea/i.test(e.target.tagName) + ? 'Space' === e.key || ('Escape' !== e.key && (('ArrowDown' !== e.key && 'ArrowUp' !== e.key) || e.target.closest('.dropdown-menu'))) + : !pe.test(e.key) + ) + return + const i = this.classList.contains('show') + if (!i && 'Escape' === e.key) return + if ((e.preventDefault(), e.stopPropagation(), h(this))) return + const n = () => (this.matches('[data-bs-toggle="dropdown"]') ? this : t.prev(this, '[data-bs-toggle="dropdown"]')[0]) + return 'Escape' === e.key + ? (n().focus(), void Ae.clearMenus()) + : 'ArrowUp' === e.key || 'ArrowDown' === e.key + ? (i || n().click(), void Ae.getInstance(n())._selectMenuItem(e)) + : void ((i && 'Space' !== e.key) || Ae.clearMenus()) + } + } + ;(P.on(document, 'keydown.bs.dropdown.data-api', '[data-bs-toggle="dropdown"]', Ae.dataApiKeydownHandler), + P.on(document, 'keydown.bs.dropdown.data-api', '.dropdown-menu', Ae.dataApiKeydownHandler), + P.on(document, 'click.bs.dropdown.data-api', Ae.clearMenus), + P.on(document, 'keyup.bs.dropdown.data-api', Ae.clearMenus), + P.on(document, 'click.bs.dropdown.data-api', '[data-bs-toggle="dropdown"]', function (t) { + ;(t.preventDefault(), Ae.dropdownInterface(this)) + }), + _(Ae)) + class Te { + constructor() { + this._element = document.body + } + getWidth() { + const t = document.documentElement.clientWidth + return Math.abs(window.innerWidth - t) + } + hide() { + const t = this.getWidth() + ;(this._disableOverFlow(), + this._setElementAttributes(this._element, 'paddingRight', (e) => e + t), + this._setElementAttributes('.fixed-top, .fixed-bottom, .is-fixed, .sticky-top', 'paddingRight', (e) => e + t), + this._setElementAttributes('.sticky-top', 'marginRight', (e) => e - t)) + } + _disableOverFlow() { + ;(this._saveInitialAttribute(this._element, 'overflow'), (this._element.style.overflow = 'hidden')) + } + _setElementAttributes(t, e, i) { + const n = this.getWidth() + this._applyManipulationCallback(t, (t) => { + if (t !== this._element && window.innerWidth > t.clientWidth + n) return + this._saveInitialAttribute(t, e) + const s = window.getComputedStyle(t)[e] + t.style[e] = i(Number.parseFloat(s)) + 'px' + }) + } + reset() { + ;(this._resetElementAttributes(this._element, 'overflow'), + this._resetElementAttributes(this._element, 'paddingRight'), + this._resetElementAttributes('.fixed-top, .fixed-bottom, .is-fixed, .sticky-top', 'paddingRight'), + this._resetElementAttributes('.sticky-top', 'marginRight')) + } + _saveInitialAttribute(t, e) { + const i = t.style[e] + i && U.setDataAttribute(t, e, i) + } + _resetElementAttributes(t, e) { + this._applyManipulationCallback(t, (t) => { + const i = U.getDataAttribute(t, e) + void 0 === i ? t.style.removeProperty(e) : (U.removeDataAttribute(t, e), (t.style[e] = i)) + }) + } + _applyManipulationCallback(e, i) { + r(e) ? i(e) : t.find(e, this._element).forEach(i) + } + isOverflowing() { + return this.getWidth() > 0 + } + } + const Oe = { isVisible: !0, isAnimated: !1, rootElement: 'body', clickCallback: null }, + Ce = { isVisible: 'boolean', isAnimated: 'boolean', rootElement: '(element|string)', clickCallback: '(function|null)' } + class ke { + constructor(t) { + ;((this._config = this._getConfig(t)), (this._isAppended = !1), (this._element = null)) + } + show(t) { + this._config.isVisible + ? (this._append(), + this._config.isAnimated && f(this._getElement()), + this._getElement().classList.add('show'), + this._emulateAnimation(() => { + b(t) + })) + : b(t) + } + hide(t) { + this._config.isVisible + ? (this._getElement().classList.remove('show'), + this._emulateAnimation(() => { + ;(this.dispose(), b(t)) + })) + : b(t) + } + _getElement() { + if (!this._element) { + const t = document.createElement('div') + ;((t.className = 'modal-backdrop'), this._config.isAnimated && t.classList.add('fade'), (this._element = t)) + } + return this._element + } + _getConfig(t) { + return (((t = { ...Oe, ...('object' == typeof t ? t : {}) }).rootElement = a(t.rootElement)), l('backdrop', t, Ce), t) + } + _append() { + this._isAppended || + (this._config.rootElement.appendChild(this._getElement()), + P.on(this._getElement(), 'mousedown.bs.backdrop', () => { + b(this._config.clickCallback) + }), + (this._isAppended = !0)) + } + dispose() { + this._isAppended && (P.off(this._element, 'mousedown.bs.backdrop'), this._element.remove(), (this._isAppended = !1)) + } + _emulateAnimation(t) { + v(t, this._getElement(), this._config.isAnimated) + } + } + const Le = { backdrop: !0, keyboard: !0, focus: !0 }, + xe = { backdrop: '(boolean|string)', keyboard: 'boolean', focus: 'boolean' } + class De extends B { + constructor(e, i) { + ;(super(e), + (this._config = this._getConfig(i)), + (this._dialog = t.findOne('.modal-dialog', this._element)), + (this._backdrop = this._initializeBackDrop()), + (this._isShown = !1), + (this._ignoreBackdropClick = !1), + (this._isTransitioning = !1), + (this._scrollBar = new Te())) + } + static get Default() { + return Le + } + static get NAME() { + return 'modal' + } + toggle(t) { + return this._isShown ? this.hide() : this.show(t) + } + show(t) { + this._isShown || + this._isTransitioning || + P.trigger(this._element, 'show.bs.modal', { relatedTarget: t }).defaultPrevented || + ((this._isShown = !0), + this._isAnimated() && (this._isTransitioning = !0), + this._scrollBar.hide(), + document.body.classList.add('modal-open'), + this._adjustDialog(), + this._setEscapeEvent(), + this._setResizeEvent(), + P.on(this._element, 'click.dismiss.bs.modal', '[data-bs-dismiss="modal"]', (t) => this.hide(t)), + P.on(this._dialog, 'mousedown.dismiss.bs.modal', () => { + P.one(this._element, 'mouseup.dismiss.bs.modal', (t) => { + t.target === this._element && (this._ignoreBackdropClick = !0) + }) + }), + this._showBackdrop(() => this._showElement(t))) + } + hide(t) { + if ((t && ['A', 'AREA'].includes(t.target.tagName) && t.preventDefault(), !this._isShown || this._isTransitioning)) return + if (P.trigger(this._element, 'hide.bs.modal').defaultPrevented) return + this._isShown = !1 + const e = this._isAnimated() + ;(e && (this._isTransitioning = !0), + this._setEscapeEvent(), + this._setResizeEvent(), + P.off(document, 'focusin.bs.modal'), + this._element.classList.remove('show'), + P.off(this._element, 'click.dismiss.bs.modal'), + P.off(this._dialog, 'mousedown.dismiss.bs.modal'), + this._queueCallback(() => this._hideModal(), this._element, e)) + } + dispose() { + ;([window, this._dialog].forEach((t) => P.off(t, '.bs.modal')), this._backdrop.dispose(), super.dispose(), P.off(document, 'focusin.bs.modal')) + } + handleUpdate() { + this._adjustDialog() + } + _initializeBackDrop() { + return new ke({ isVisible: Boolean(this._config.backdrop), isAnimated: this._isAnimated() }) + } + _getConfig(t) { + return ((t = { ...Le, ...U.getDataAttributes(this._element), ...('object' == typeof t ? t : {}) }), l('modal', t, xe), t) + } + _showElement(e) { + const i = this._isAnimated(), + n = t.findOne('.modal-body', this._dialog) + ;((this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE) || document.body.appendChild(this._element), + (this._element.style.display = 'block'), + this._element.removeAttribute('aria-hidden'), + this._element.setAttribute('aria-modal', !0), + this._element.setAttribute('role', 'dialog'), + (this._element.scrollTop = 0), + n && (n.scrollTop = 0), + i && f(this._element), + this._element.classList.add('show'), + this._config.focus && this._enforceFocus(), + this._queueCallback( + () => { + ;(this._config.focus && this._element.focus(), + (this._isTransitioning = !1), + P.trigger(this._element, 'shown.bs.modal', { relatedTarget: e })) + }, + this._dialog, + i, + )) + } + _enforceFocus() { + ;(P.off(document, 'focusin.bs.modal'), + P.on(document, 'focusin.bs.modal', (t) => { + document === t.target || this._element === t.target || this._element.contains(t.target) || this._element.focus() + })) + } + _setEscapeEvent() { + this._isShown + ? P.on(this._element, 'keydown.dismiss.bs.modal', (t) => { + this._config.keyboard && 'Escape' === t.key + ? (t.preventDefault(), this.hide()) + : this._config.keyboard || 'Escape' !== t.key || this._triggerBackdropTransition() + }) + : P.off(this._element, 'keydown.dismiss.bs.modal') + } + _setResizeEvent() { + this._isShown ? P.on(window, 'resize.bs.modal', () => this._adjustDialog()) : P.off(window, 'resize.bs.modal') + } + _hideModal() { + ;((this._element.style.display = 'none'), + this._element.setAttribute('aria-hidden', !0), + this._element.removeAttribute('aria-modal'), + this._element.removeAttribute('role'), + (this._isTransitioning = !1), + this._backdrop.hide(() => { + ;(document.body.classList.remove('modal-open'), + this._resetAdjustments(), + this._scrollBar.reset(), + P.trigger(this._element, 'hidden.bs.modal')) + })) + } + _showBackdrop(t) { + ;(P.on(this._element, 'click.dismiss.bs.modal', (t) => { + this._ignoreBackdropClick + ? (this._ignoreBackdropClick = !1) + : t.target === t.currentTarget && + (!0 === this._config.backdrop ? this.hide() : 'static' === this._config.backdrop && this._triggerBackdropTransition()) + }), + this._backdrop.show(t)) + } + _isAnimated() { + return this._element.classList.contains('fade') + } + _triggerBackdropTransition() { + if (P.trigger(this._element, 'hidePrevented.bs.modal').defaultPrevented) return + const { classList: t, scrollHeight: e, style: i } = this._element, + n = e > document.documentElement.clientHeight + ;(!n && 'hidden' === i.overflowY) || + t.contains('modal-static') || + (n || (i.overflowY = 'hidden'), + t.add('modal-static'), + this._queueCallback(() => { + ;(t.remove('modal-static'), + n || + this._queueCallback(() => { + i.overflowY = '' + }, this._dialog)) + }, this._dialog), + this._element.focus()) + } + _adjustDialog() { + const t = this._element.scrollHeight > document.documentElement.clientHeight, + e = this._scrollBar.getWidth(), + i = e > 0 + ;(((!i && t && !g()) || (i && !t && g())) && (this._element.style.paddingLeft = e + 'px'), + ((i && !t && !g()) || (!i && t && g())) && (this._element.style.paddingRight = e + 'px')) + } + _resetAdjustments() { + ;((this._element.style.paddingLeft = ''), (this._element.style.paddingRight = '')) + } + static jQueryInterface(t, e) { + return this.each(function () { + const i = De.getOrCreateInstance(this, t) + if ('string' == typeof t) { + if (void 0 === i[t]) throw new TypeError(`No method named "${t}"`) + i[t](e) + } + }) + } + } + ;(P.on(document, 'click.bs.modal.data-api', '[data-bs-toggle="modal"]', function (t) { + const e = s(this) + ;(['A', 'AREA'].includes(this.tagName) && t.preventDefault(), + P.one(e, 'show.bs.modal', (t) => { + t.defaultPrevented || + P.one(e, 'hidden.bs.modal', () => { + c(this) && this.focus() + }) + }), + De.getOrCreateInstance(e).toggle(this)) + }), + _(De)) + const Se = { backdrop: !0, keyboard: !0, scroll: !1 }, + Ie = { backdrop: 'boolean', keyboard: 'boolean', scroll: 'boolean' } + class Ne extends B { + constructor(t, e) { + ;(super(t), (this._config = this._getConfig(e)), (this._isShown = !1), (this._backdrop = this._initializeBackDrop()), this._addEventListeners()) + } + static get NAME() { + return 'offcanvas' + } + static get Default() { + return Se + } + toggle(t) { + return this._isShown ? this.hide() : this.show(t) + } + show(t) { + this._isShown || + P.trigger(this._element, 'show.bs.offcanvas', { relatedTarget: t }).defaultPrevented || + ((this._isShown = !0), + (this._element.style.visibility = 'visible'), + this._backdrop.show(), + this._config.scroll || (new Te().hide(), this._enforceFocusOnElement(this._element)), + this._element.removeAttribute('aria-hidden'), + this._element.setAttribute('aria-modal', !0), + this._element.setAttribute('role', 'dialog'), + this._element.classList.add('show'), + this._queueCallback( + () => { + P.trigger(this._element, 'shown.bs.offcanvas', { relatedTarget: t }) + }, + this._element, + !0, + )) + } + hide() { + this._isShown && + (P.trigger(this._element, 'hide.bs.offcanvas').defaultPrevented || + (P.off(document, 'focusin.bs.offcanvas'), + this._element.blur(), + (this._isShown = !1), + this._element.classList.remove('show'), + this._backdrop.hide(), + this._queueCallback( + () => { + ;(this._element.setAttribute('aria-hidden', !0), + this._element.removeAttribute('aria-modal'), + this._element.removeAttribute('role'), + (this._element.style.visibility = 'hidden'), + this._config.scroll || new Te().reset(), + P.trigger(this._element, 'hidden.bs.offcanvas')) + }, + this._element, + !0, + ))) + } + dispose() { + ;(this._backdrop.dispose(), super.dispose(), P.off(document, 'focusin.bs.offcanvas')) + } + _getConfig(t) { + return ((t = { ...Se, ...U.getDataAttributes(this._element), ...('object' == typeof t ? t : {}) }), l('offcanvas', t, Ie), t) + } + _initializeBackDrop() { + return new ke({ isVisible: this._config.backdrop, isAnimated: !0, rootElement: this._element.parentNode, clickCallback: () => this.hide() }) + } + _enforceFocusOnElement(t) { + ;(P.off(document, 'focusin.bs.offcanvas'), + P.on(document, 'focusin.bs.offcanvas', (e) => { + document === e.target || t === e.target || t.contains(e.target) || t.focus() + }), + t.focus()) + } + _addEventListeners() { + ;(P.on(this._element, 'click.dismiss.bs.offcanvas', '[data-bs-dismiss="offcanvas"]', () => this.hide()), + P.on(this._element, 'keydown.dismiss.bs.offcanvas', (t) => { + this._config.keyboard && 'Escape' === t.key && this.hide() + })) + } + static jQueryInterface(t) { + return this.each(function () { + const e = Ne.getOrCreateInstance(this, t) + if ('string' == typeof t) { + if (void 0 === e[t] || t.startsWith('_') || 'constructor' === t) throw new TypeError(`No method named "${t}"`) + e[t](this) + } + }) + } + } + ;(P.on(document, 'click.bs.offcanvas.data-api', '[data-bs-toggle="offcanvas"]', function (e) { + const i = s(this) + if ((['A', 'AREA'].includes(this.tagName) && e.preventDefault(), h(this))) return + P.one(i, 'hidden.bs.offcanvas', () => { + c(this) && this.focus() + }) + const n = t.findOne('.offcanvas.show') + ;(n && n !== i && Ne.getInstance(n).hide(), Ne.getOrCreateInstance(i).toggle(this)) + }), + P.on(window, 'load.bs.offcanvas.data-api', () => t.find('.offcanvas.show').forEach((t) => Ne.getOrCreateInstance(t).show())), + _(Ne)) + const je = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']), + Me = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/i, + Pe = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i, + He = (t, e) => { + const i = t.nodeName.toLowerCase() + if (e.includes(i)) return !je.has(i) || Boolean(Me.test(t.nodeValue) || Pe.test(t.nodeValue)) + const n = e.filter((t) => t instanceof RegExp) + for (let t = 0, e = n.length; t < e; t++) if (n[t].test(i)) return !0 + return !1 + } + function Re(t, e, i) { + if (!t.length) return t + if (i && 'function' == typeof i) return i(t) + const n = new window.DOMParser().parseFromString(t, 'text/html'), + s = Object.keys(e), + o = [].concat(...n.body.querySelectorAll('*')) + for (let t = 0, i = o.length; t < i; t++) { + const i = o[t], + n = i.nodeName.toLowerCase() + if (!s.includes(n)) { + i.remove() + continue + } + const r = [].concat(...i.attributes), + a = [].concat(e['*'] || [], e[n] || []) + r.forEach((t) => { + He(t, a) || i.removeAttribute(t.nodeName) + }) + } + return n.body.innerHTML + } + const Be = new RegExp('(^|\\s)bs-tooltip\\S+', 'g'), + We = new Set(['sanitize', 'allowList', 'sanitizeFn']), + qe = { + animation: 'boolean', + template: 'string', + title: '(string|element|function)', + trigger: 'string', + delay: '(number|object)', + html: 'boolean', + selector: '(string|boolean)', + placement: '(string|function)', + offset: '(array|string|function)', + container: '(string|element|boolean)', + fallbackPlacements: 'array', + boundary: '(string|element)', + customClass: '(string|function)', + sanitize: 'boolean', + sanitizeFn: '(null|function)', + allowList: 'object', + popperConfig: '(null|object|function)', + }, + ze = { AUTO: 'auto', TOP: 'top', RIGHT: g() ? 'left' : 'right', BOTTOM: 'bottom', LEFT: g() ? 'right' : 'left' }, + $e = { + animation: !0, + template: '', + trigger: 'hover focus', + title: '', + delay: 0, + html: !1, + selector: !1, + placement: 'top', + offset: [0, 0], + container: !1, + fallbackPlacements: ['top', 'right', 'bottom', 'left'], + boundary: 'clippingParents', + customClass: '', + sanitize: !0, + sanitizeFn: null, + allowList: { + '*': ['class', 'dir', 'id', 'lang', 'role', /^aria-[\w-]*$/i], + a: ['target', 'href', 'title', 'rel'], + area: [], + b: [], + br: [], + col: [], + code: [], + div: [], + em: [], + hr: [], + h1: [], + h2: [], + h3: [], + h4: [], + h5: [], + h6: [], + i: [], + img: ['src', 'srcset', 'alt', 'title', 'width', 'height'], + li: [], + ol: [], + p: [], + pre: [], + s: [], + small: [], + span: [], + sub: [], + sup: [], + strong: [], + u: [], + ul: [], + }, + popperConfig: null, + }, + Ue = { + HIDE: 'hide.bs.tooltip', + HIDDEN: 'hidden.bs.tooltip', + SHOW: 'show.bs.tooltip', + SHOWN: 'shown.bs.tooltip', + INSERTED: 'inserted.bs.tooltip', + CLICK: 'click.bs.tooltip', + FOCUSIN: 'focusin.bs.tooltip', + FOCUSOUT: 'focusout.bs.tooltip', + MOUSEENTER: 'mouseenter.bs.tooltip', + MOUSELEAVE: 'mouseleave.bs.tooltip', + } + class Fe extends B { + constructor(t, e) { + if (void 0 === fe) throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)") + ;(super(t), + (this._isEnabled = !0), + (this._timeout = 0), + (this._hoverState = ''), + (this._activeTrigger = {}), + (this._popper = null), + (this._config = this._getConfig(e)), + (this.tip = null), + this._setListeners()) + } + static get Default() { + return $e + } + static get NAME() { + return 'tooltip' + } + static get Event() { + return Ue + } + static get DefaultType() { + return qe + } + enable() { + this._isEnabled = !0 + } + disable() { + this._isEnabled = !1 + } + toggleEnabled() { + this._isEnabled = !this._isEnabled + } + toggle(t) { + if (this._isEnabled) + if (t) { + const e = this._initializeOnDelegatedTarget(t) + ;((e._activeTrigger.click = !e._activeTrigger.click), e._isWithActiveTrigger() ? e._enter(null, e) : e._leave(null, e)) + } else { + if (this.getTipElement().classList.contains('show')) return void this._leave(null, this) + this._enter(null, this) + } + } + dispose() { + ;(clearTimeout(this._timeout), + P.off(this._element.closest('.modal'), 'hide.bs.modal', this._hideModalHandler), + this.tip && this.tip.remove(), + this._popper && this._popper.destroy(), + super.dispose()) + } + show() { + if ('none' === this._element.style.display) throw new Error('Please use show on visible elements') + if (!this.isWithContent() || !this._isEnabled) return + const t = P.trigger(this._element, this.constructor.Event.SHOW), + i = d(this._element), + n = null === i ? this._element.ownerDocument.documentElement.contains(this._element) : i.contains(this._element) + if (t.defaultPrevented || !n) return + const s = this.getTipElement(), + o = e(this.constructor.NAME) + ;(s.setAttribute('id', o), + this._element.setAttribute('aria-describedby', o), + this.setContent(), + this._config.animation && s.classList.add('fade')) + const r = 'function' == typeof this._config.placement ? this._config.placement.call(this, s, this._element) : this._config.placement, + a = this._getAttachment(r) + this._addAttachmentClass(a) + const { container: l } = this._config + ;(R.set(s, this.constructor.DATA_KEY, this), + this._element.ownerDocument.documentElement.contains(this.tip) || + (l.appendChild(s), P.trigger(this._element, this.constructor.Event.INSERTED)), + this._popper ? this._popper.update() : (this._popper = ue(this._element, s, this._getPopperConfig(a))), + s.classList.add('show')) + const c = 'function' == typeof this._config.customClass ? this._config.customClass() : this._config.customClass + ;(c && s.classList.add(...c.split(' ')), + 'ontouchstart' in document.documentElement && + [].concat(...document.body.children).forEach((t) => { + P.on(t, 'mouseover', u) + })) + const h = this.tip.classList.contains('fade') + this._queueCallback( + () => { + const t = this._hoverState + ;((this._hoverState = null), P.trigger(this._element, this.constructor.Event.SHOWN), 'out' === t && this._leave(null, this)) + }, + this.tip, + h, + ) + } + hide() { + if (!this._popper) return + const t = this.getTipElement() + if (P.trigger(this._element, this.constructor.Event.HIDE).defaultPrevented) return + ;(t.classList.remove('show'), + 'ontouchstart' in document.documentElement && [].concat(...document.body.children).forEach((t) => P.off(t, 'mouseover', u)), + (this._activeTrigger.click = !1), + (this._activeTrigger.focus = !1), + (this._activeTrigger.hover = !1)) + const e = this.tip.classList.contains('fade') + ;(this._queueCallback( + () => { + this._isWithActiveTrigger() || + ('show' !== this._hoverState && t.remove(), + this._cleanTipClass(), + this._element.removeAttribute('aria-describedby'), + P.trigger(this._element, this.constructor.Event.HIDDEN), + this._popper && (this._popper.destroy(), (this._popper = null))) + }, + this.tip, + e, + ), + (this._hoverState = '')) + } + update() { + null !== this._popper && this._popper.update() + } + isWithContent() { + return Boolean(this.getTitle()) + } + getTipElement() { + if (this.tip) return this.tip + const t = document.createElement('div') + return ((t.innerHTML = this._config.template), (this.tip = t.children[0]), this.tip) + } + setContent() { + const e = this.getTipElement() + ;(this.setElementContent(t.findOne('.tooltip-inner', e), this.getTitle()), e.classList.remove('fade', 'show')) + } + setElementContent(t, e) { + if (null !== t) + return r(e) + ? ((e = a(e)), void (this._config.html ? e.parentNode !== t && ((t.innerHTML = ''), t.appendChild(e)) : (t.textContent = e.textContent))) + : void (this._config.html + ? (this._config.sanitize && (e = Re(e, this._config.allowList, this._config.sanitizeFn)), (t.innerHTML = e)) + : (t.textContent = e)) + } + getTitle() { + let t = this._element.getAttribute('data-bs-original-title') + return (t || (t = 'function' == typeof this._config.title ? this._config.title.call(this._element) : this._config.title), t) + } + updateAttachment(t) { + return 'right' === t ? 'end' : 'left' === t ? 'start' : t + } + _initializeOnDelegatedTarget(t, e) { + const i = this.constructor.DATA_KEY + return ( + (e = e || R.get(t.delegateTarget, i)) || + ((e = new this.constructor(t.delegateTarget, this._getDelegateConfig())), R.set(t.delegateTarget, i, e)), + e + ) + } + _getOffset() { + const { offset: t } = this._config + return 'string' == typeof t ? t.split(',').map((t) => Number.parseInt(t, 10)) : 'function' == typeof t ? (e) => t(e, this._element) : t + } + _getPopperConfig(t) { + const e = { + placement: t, + modifiers: [ + { name: 'flip', options: { fallbackPlacements: this._config.fallbackPlacements } }, + { name: 'offset', options: { offset: this._getOffset() } }, + { name: 'preventOverflow', options: { boundary: this._config.boundary } }, + { name: 'arrow', options: { element: `.${this.constructor.NAME}-arrow` } }, + { name: 'onChange', enabled: !0, phase: 'afterWrite', fn: (t) => this._handlePopperPlacementChange(t) }, + ], + onFirstUpdate: (t) => { + t.options.placement !== t.placement && this._handlePopperPlacementChange(t) + }, + } + return { ...e, ...('function' == typeof this._config.popperConfig ? this._config.popperConfig(e) : this._config.popperConfig) } + } + _addAttachmentClass(t) { + this.getTipElement().classList.add('bs-tooltip-' + this.updateAttachment(t)) + } + _getAttachment(t) { + return ze[t.toUpperCase()] + } + _setListeners() { + ;(this._config.trigger.split(' ').forEach((t) => { + if ('click' === t) P.on(this._element, this.constructor.Event.CLICK, this._config.selector, (t) => this.toggle(t)) + else if ('manual' !== t) { + const e = 'hover' === t ? this.constructor.Event.MOUSEENTER : this.constructor.Event.FOCUSIN, + i = 'hover' === t ? this.constructor.Event.MOUSELEAVE : this.constructor.Event.FOCUSOUT + ;(P.on(this._element, e, this._config.selector, (t) => this._enter(t)), + P.on(this._element, i, this._config.selector, (t) => this._leave(t))) + } + }), + (this._hideModalHandler = () => { + this._element && this.hide() + }), + P.on(this._element.closest('.modal'), 'hide.bs.modal', this._hideModalHandler), + this._config.selector ? (this._config = { ...this._config, trigger: 'manual', selector: '' }) : this._fixTitle()) + } + _fixTitle() { + const t = this._element.getAttribute('title'), + e = typeof this._element.getAttribute('data-bs-original-title') + ;(t || 'string' !== e) && + (this._element.setAttribute('data-bs-original-title', t || ''), + !t || this._element.getAttribute('aria-label') || this._element.textContent || this._element.setAttribute('aria-label', t), + this._element.setAttribute('title', '')) + } + _enter(t, e) { + ;((e = this._initializeOnDelegatedTarget(t, e)), + t && (e._activeTrigger['focusin' === t.type ? 'focus' : 'hover'] = !0), + e.getTipElement().classList.contains('show') || 'show' === e._hoverState + ? (e._hoverState = 'show') + : (clearTimeout(e._timeout), + (e._hoverState = 'show'), + e._config.delay && e._config.delay.show + ? (e._timeout = setTimeout(() => { + 'show' === e._hoverState && e.show() + }, e._config.delay.show)) + : e.show())) + } + _leave(t, e) { + ;((e = this._initializeOnDelegatedTarget(t, e)), + t && (e._activeTrigger['focusout' === t.type ? 'focus' : 'hover'] = e._element.contains(t.relatedTarget)), + e._isWithActiveTrigger() || + (clearTimeout(e._timeout), + (e._hoverState = 'out'), + e._config.delay && e._config.delay.hide + ? (e._timeout = setTimeout(() => { + 'out' === e._hoverState && e.hide() + }, e._config.delay.hide)) + : e.hide())) + } + _isWithActiveTrigger() { + for (const t in this._activeTrigger) if (this._activeTrigger[t]) return !0 + return !1 + } + _getConfig(t) { + const e = U.getDataAttributes(this._element) + return ( + Object.keys(e).forEach((t) => { + We.has(t) && delete e[t] + }), + ((t = { ...this.constructor.Default, ...e, ...('object' == typeof t && t ? t : {}) }).container = + !1 === t.container ? document.body : a(t.container)), + 'number' == typeof t.delay && (t.delay = { show: t.delay, hide: t.delay }), + 'number' == typeof t.title && (t.title = t.title.toString()), + 'number' == typeof t.content && (t.content = t.content.toString()), + l('tooltip', t, this.constructor.DefaultType), + t.sanitize && (t.template = Re(t.template, t.allowList, t.sanitizeFn)), + t + ) + } + _getDelegateConfig() { + const t = {} + if (this._config) for (const e in this._config) this.constructor.Default[e] !== this._config[e] && (t[e] = this._config[e]) + return t + } + _cleanTipClass() { + const t = this.getTipElement(), + e = t.getAttribute('class').match(Be) + null !== e && e.length > 0 && e.map((t) => t.trim()).forEach((e) => t.classList.remove(e)) + } + _handlePopperPlacementChange(t) { + const { state: e } = t + e && ((this.tip = e.elements.popper), this._cleanTipClass(), this._addAttachmentClass(this._getAttachment(e.placement))) + } + static jQueryInterface(t) { + return this.each(function () { + const e = Fe.getOrCreateInstance(this, t) + if ('string' == typeof t) { + if (void 0 === e[t]) throw new TypeError(`No method named "${t}"`) + e[t]() + } + }) + } + } + _(Fe) + const Ve = new RegExp('(^|\\s)bs-popover\\S+', 'g'), + Ke = { + ...Fe.Default, + placement: 'right', + offset: [0, 8], + trigger: 'click', + content: '', + template: + '', + }, + Xe = { ...Fe.DefaultType, content: '(string|element|function)' }, + Ye = { + HIDE: 'hide.bs.popover', + HIDDEN: 'hidden.bs.popover', + SHOW: 'show.bs.popover', + SHOWN: 'shown.bs.popover', + INSERTED: 'inserted.bs.popover', + CLICK: 'click.bs.popover', + FOCUSIN: 'focusin.bs.popover', + FOCUSOUT: 'focusout.bs.popover', + MOUSEENTER: 'mouseenter.bs.popover', + MOUSELEAVE: 'mouseleave.bs.popover', + } + class Qe extends Fe { + static get Default() { + return Ke + } + static get NAME() { + return 'popover' + } + static get Event() { + return Ye + } + static get DefaultType() { + return Xe + } + isWithContent() { + return this.getTitle() || this._getContent() + } + getTipElement() { + return ( + this.tip || + ((this.tip = super.getTipElement()), + this.getTitle() || t.findOne('.popover-header', this.tip).remove(), + this._getContent() || t.findOne('.popover-body', this.tip).remove()), + this.tip + ) + } + setContent() { + const e = this.getTipElement() + this.setElementContent(t.findOne('.popover-header', e), this.getTitle()) + let i = this._getContent() + ;('function' == typeof i && (i = i.call(this._element)), + this.setElementContent(t.findOne('.popover-body', e), i), + e.classList.remove('fade', 'show')) + } + _addAttachmentClass(t) { + this.getTipElement().classList.add('bs-popover-' + this.updateAttachment(t)) + } + _getContent() { + return this._element.getAttribute('data-bs-content') || this._config.content + } + _cleanTipClass() { + const t = this.getTipElement(), + e = t.getAttribute('class').match(Ve) + null !== e && e.length > 0 && e.map((t) => t.trim()).forEach((e) => t.classList.remove(e)) + } + static jQueryInterface(t) { + return this.each(function () { + const e = Qe.getOrCreateInstance(this, t) + if ('string' == typeof t) { + if (void 0 === e[t]) throw new TypeError(`No method named "${t}"`) + e[t]() + } + }) + } + } + _(Qe) + const Ge = { offset: 10, method: 'auto', target: '' }, + Ze = { offset: 'number', method: 'string', target: '(string|element)' } + class Je extends B { + constructor(t, e) { + ;(super(t), + (this._scrollElement = 'BODY' === this._element.tagName ? window : this._element), + (this._config = this._getConfig(e)), + (this._selector = `${this._config.target} .nav-link, ${this._config.target} .list-group-item, ${this._config.target} .dropdown-item`), + (this._offsets = []), + (this._targets = []), + (this._activeTarget = null), + (this._scrollHeight = 0), + P.on(this._scrollElement, 'scroll.bs.scrollspy', () => this._process()), + this.refresh(), + this._process()) + } + static get Default() { + return Ge + } + static get NAME() { + return 'scrollspy' + } + refresh() { + const e = this._scrollElement === this._scrollElement.window ? 'offset' : 'position', + i = 'auto' === this._config.method ? e : this._config.method, + s = 'position' === i ? this._getScrollTop() : 0 + ;((this._offsets = []), + (this._targets = []), + (this._scrollHeight = this._getScrollHeight()), + t + .find(this._selector) + .map((e) => { + const o = n(e), + r = o ? t.findOne(o) : null + if (r) { + const t = r.getBoundingClientRect() + if (t.width || t.height) return [U[i](r).top + s, o] + } + return null + }) + .filter((t) => t) + .sort((t, e) => t[0] - e[0]) + .forEach((t) => { + ;(this._offsets.push(t[0]), this._targets.push(t[1])) + })) + } + dispose() { + ;(P.off(this._scrollElement, '.bs.scrollspy'), super.dispose()) + } + _getConfig(t) { + if ('string' != typeof (t = { ...Ge, ...U.getDataAttributes(this._element), ...('object' == typeof t && t ? t : {}) }).target && r(t.target)) { + let { id: i } = t.target + ;(i || ((i = e('scrollspy')), (t.target.id = i)), (t.target = '#' + i)) + } + return (l('scrollspy', t, Ze), t) + } + _getScrollTop() { + return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop + } + _getScrollHeight() { + return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight) + } + _getOffsetHeight() { + return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height + } + _process() { + const t = this._getScrollTop() + this._config.offset, + e = this._getScrollHeight(), + i = this._config.offset + e - this._getOffsetHeight() + if ((this._scrollHeight !== e && this.refresh(), t >= i)) { + const t = this._targets[this._targets.length - 1] + this._activeTarget !== t && this._activate(t) + } else { + if (this._activeTarget && t < this._offsets[0] && this._offsets[0] > 0) return ((this._activeTarget = null), void this._clear()) + for (let e = this._offsets.length; e--; ) + this._activeTarget !== this._targets[e] && + t >= this._offsets[e] && + (void 0 === this._offsets[e + 1] || t < this._offsets[e + 1]) && + this._activate(this._targets[e]) + } + } + _activate(e) { + ;((this._activeTarget = e), this._clear()) + const i = this._selector.split(',').map((t) => `${t}[data-bs-target="${e}"],${t}[href="${e}"]`), + n = t.findOne(i.join(',')) + ;(n.classList.contains('dropdown-item') + ? (t.findOne('.dropdown-toggle', n.closest('.dropdown')).classList.add('active'), n.classList.add('active')) + : (n.classList.add('active'), + t.parents(n, '.nav, .list-group').forEach((e) => { + ;(t.prev(e, '.nav-link, .list-group-item').forEach((t) => t.classList.add('active')), + t.prev(e, '.nav-item').forEach((e) => { + t.children(e, '.nav-link').forEach((t) => t.classList.add('active')) + })) + })), + P.trigger(this._scrollElement, 'activate.bs.scrollspy', { relatedTarget: e })) + } + _clear() { + t.find(this._selector) + .filter((t) => t.classList.contains('active')) + .forEach((t) => t.classList.remove('active')) + } + static jQueryInterface(t) { + return this.each(function () { + const e = Je.getOrCreateInstance(this, t) + if ('string' == typeof t) { + if (void 0 === e[t]) throw new TypeError(`No method named "${t}"`) + e[t]() + } + }) + } + } + ;(P.on(window, 'load.bs.scrollspy.data-api', () => { + t.find('[data-bs-spy="scroll"]').forEach((t) => new Je(t)) + }), + _(Je)) + class ti extends B { + static get NAME() { + return 'tab' + } + show() { + if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && this._element.classList.contains('active')) return + let e + const i = s(this._element), + n = this._element.closest('.nav, .list-group') + if (n) { + const i = 'UL' === n.nodeName || 'OL' === n.nodeName ? ':scope > li > .active' : '.active' + ;((e = t.find(i, n)), (e = e[e.length - 1])) + } + const o = e ? P.trigger(e, 'hide.bs.tab', { relatedTarget: this._element }) : null + if (P.trigger(this._element, 'show.bs.tab', { relatedTarget: e }).defaultPrevented || (null !== o && o.defaultPrevented)) return + this._activate(this._element, n) + const r = () => { + ;(P.trigger(e, 'hidden.bs.tab', { relatedTarget: this._element }), P.trigger(this._element, 'shown.bs.tab', { relatedTarget: e })) + } + i ? this._activate(i, i.parentNode, r) : r() + } + _activate(e, i, n) { + const s = (!i || ('UL' !== i.nodeName && 'OL' !== i.nodeName) ? t.children(i, '.active') : t.find(':scope > li > .active', i))[0], + o = n && s && s.classList.contains('fade'), + r = () => this._transitionComplete(e, s, n) + s && o ? (s.classList.remove('show'), this._queueCallback(r, e, !0)) : r() + } + _transitionComplete(e, i, n) { + if (i) { + i.classList.remove('active') + const e = t.findOne(':scope > .dropdown-menu .active', i.parentNode) + ;(e && e.classList.remove('active'), 'tab' === i.getAttribute('role') && i.setAttribute('aria-selected', !1)) + } + ;(e.classList.add('active'), + 'tab' === e.getAttribute('role') && e.setAttribute('aria-selected', !0), + f(e), + e.classList.contains('fade') && e.classList.add('show')) + let s = e.parentNode + if ((s && 'LI' === s.nodeName && (s = s.parentNode), s && s.classList.contains('dropdown-menu'))) { + const i = e.closest('.dropdown') + ;(i && t.find('.dropdown-toggle', i).forEach((t) => t.classList.add('active')), e.setAttribute('aria-expanded', !0)) + } + n && n() + } + static jQueryInterface(t) { + return this.each(function () { + const e = ti.getOrCreateInstance(this) + if ('string' == typeof t) { + if (void 0 === e[t]) throw new TypeError(`No method named "${t}"`) + e[t]() + } + }) + } + } + ;(P.on(document, 'click.bs.tab.data-api', '[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]', function (t) { + ;(['A', 'AREA'].includes(this.tagName) && t.preventDefault(), h(this) || ti.getOrCreateInstance(this).show()) + }), + _(ti)) + const ei = { animation: 'boolean', autohide: 'boolean', delay: 'number' }, + ii = { animation: !0, autohide: !0, delay: 5e3 } + class ni extends B { + constructor(t, e) { + ;(super(t), + (this._config = this._getConfig(e)), + (this._timeout = null), + (this._hasMouseInteraction = !1), + (this._hasKeyboardInteraction = !1), + this._setListeners()) + } + static get DefaultType() { + return ei + } + static get Default() { + return ii + } + static get NAME() { + return 'toast' + } + show() { + P.trigger(this._element, 'show.bs.toast').defaultPrevented || + (this._clearTimeout(), + this._config.animation && this._element.classList.add('fade'), + this._element.classList.remove('hide'), + f(this._element), + this._element.classList.add('showing'), + this._queueCallback( + () => { + ;(this._element.classList.remove('showing'), + this._element.classList.add('show'), + P.trigger(this._element, 'shown.bs.toast'), + this._maybeScheduleHide()) + }, + this._element, + this._config.animation, + )) + } + hide() { + this._element.classList.contains('show') && + (P.trigger(this._element, 'hide.bs.toast').defaultPrevented || + (this._element.classList.remove('show'), + this._queueCallback( + () => { + ;(this._element.classList.add('hide'), P.trigger(this._element, 'hidden.bs.toast')) + }, + this._element, + this._config.animation, + ))) + } + dispose() { + ;(this._clearTimeout(), this._element.classList.contains('show') && this._element.classList.remove('show'), super.dispose()) + } + _getConfig(t) { + return ( + (t = { ...ii, ...U.getDataAttributes(this._element), ...('object' == typeof t && t ? t : {}) }), + l('toast', t, this.constructor.DefaultType), + t + ) + } + _maybeScheduleHide() { + this._config.autohide && + (this._hasMouseInteraction || + this._hasKeyboardInteraction || + (this._timeout = setTimeout(() => { + this.hide() + }, this._config.delay))) + } + _onInteraction(t, e) { + switch (t.type) { + case 'mouseover': + case 'mouseout': + this._hasMouseInteraction = e + break + case 'focusin': + case 'focusout': + this._hasKeyboardInteraction = e + } + if (e) return void this._clearTimeout() + const i = t.relatedTarget + this._element === i || this._element.contains(i) || this._maybeScheduleHide() + } + _setListeners() { + ;(P.on(this._element, 'click.dismiss.bs.toast', '[data-bs-dismiss="toast"]', () => this.hide()), + P.on(this._element, 'mouseover.bs.toast', (t) => this._onInteraction(t, !0)), + P.on(this._element, 'mouseout.bs.toast', (t) => this._onInteraction(t, !1)), + P.on(this._element, 'focusin.bs.toast', (t) => this._onInteraction(t, !0)), + P.on(this._element, 'focusout.bs.toast', (t) => this._onInteraction(t, !1))) + } + _clearTimeout() { + ;(clearTimeout(this._timeout), (this._timeout = null)) + } + static jQueryInterface(t) { + return this.each(function () { + const e = ni.getOrCreateInstance(this, t) + if ('string' == typeof t) { + if (void 0 === e[t]) throw new TypeError(`No method named "${t}"`) + e[t](this) + } + }) + } + } + return ( + _(ni), + { + Alert: W, + Button: q, + Carousel: Z, + Collapse: et, + Dropdown: Ae, + Modal: De, + Offcanvas: Ne, + Popover: Qe, + ScrollSpy: Je, + Tab: ti, + Toast: ni, + Tooltip: Fe, + } + ) +}) +//# sourceMappingURL=bootstrap.bundle.min.js.map diff --git a/_code-samples/build-a-desktop-wallet/js/bootstrap/bootstrap.min.css b/_code-samples/build-a-desktop-wallet/js/bootstrap/bootstrap.min.css index edfbbb03b6..24725eb2ec 100644 --- a/_code-samples/build-a-desktop-wallet/js/bootstrap/bootstrap.min.css +++ b/_code-samples/build-a-desktop-wallet/js/bootstrap/bootstrap.min.css @@ -1,7 +1,9484 @@ -@charset "UTF-8";/*! +@charset "UTF-8"; /*! * Bootstrap v5.0.2 (https://getbootstrap.com/) * Copyright 2011-2021 The Bootstrap Authors * Copyright 2011-2021 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - */:root{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-primary:#0d6efd;--bs-secondary:#6c757d;--bs-success:#198754;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-font-sans-serif:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--bs-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--bs-gradient:linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0))}*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-font-sans-serif);font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}hr{margin:1rem 0;color:inherit;background-color:currentColor;border:0;opacity:.25}hr:not([size]){height:1px}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){.h1,h1{font-size:2.5rem}}.h2,h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){.h2,h2{font-size:2rem}}.h3,h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){.h3,h3{font-size:1.75rem}}.h4,h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){.h4,h4{font-size:1.5rem}}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[data-bs-original-title],abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}.small,small{font-size:.875em}.mark,mark{padding:.2em;background-color:#fcf8e3}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#0d6efd;text-decoration:underline}a:hover{color:#0a58ca}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:var(--bs-font-monospace);font-size:1em;direction:ltr;unicode-bidi:bidi-override}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:#d63384;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:.875em;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:1em;font-weight:700}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#6c757d;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]::-webkit-calendar-picker-indicator{display:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-6{font-size:2.5rem}}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:.875em;color:#6c757d}.blockquote-footer::before{content:"— "}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:.875em;color:#6c757d}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{width:100%;padding-right:var(--bs-gutter-x,.75rem);padding-left:var(--bs-gutter-x,.75rem);margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}@media (min-width:1400px){.container,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{max-width:1320px}}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;display:flex;flex-wrap:wrap;margin-top:calc(var(--bs-gutter-y) * -1);margin-right:calc(var(--bs-gutter-x) * -.5);margin-left:calc(var(--bs-gutter-x) * -.5)}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.6666666667%}@media (min-width:576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.6666666667%}}@media (min-width:768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.6666666667%}}@media (min-width:992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.6666666667%}}@media (min-width:1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.6666666667%}}@media (min-width:1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.6666666667%}}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--bs-gutter-x:0}.g-0,.gy-0{--bs-gutter-y:0}.g-1,.gx-1{--bs-gutter-x:0.25rem}.g-1,.gy-1{--bs-gutter-y:0.25rem}.g-2,.gx-2{--bs-gutter-x:0.5rem}.g-2,.gy-2{--bs-gutter-y:0.5rem}.g-3,.gx-3{--bs-gutter-x:1rem}.g-3,.gy-3{--bs-gutter-y:1rem}.g-4,.gx-4{--bs-gutter-x:1.5rem}.g-4,.gy-4{--bs-gutter-y:1.5rem}.g-5,.gx-5{--bs-gutter-x:3rem}.g-5,.gy-5{--bs-gutter-y:3rem}@media (min-width:576px){.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x:0}.g-sm-0,.gy-sm-0{--bs-gutter-y:0}.g-sm-1,.gx-sm-1{--bs-gutter-x:0.25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y:0.25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x:0.5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y:0.5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x:1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y:1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x:1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y:1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x:3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y:3rem}}@media (min-width:768px){.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x:0}.g-md-0,.gy-md-0{--bs-gutter-y:0}.g-md-1,.gx-md-1{--bs-gutter-x:0.25rem}.g-md-1,.gy-md-1{--bs-gutter-y:0.25rem}.g-md-2,.gx-md-2{--bs-gutter-x:0.5rem}.g-md-2,.gy-md-2{--bs-gutter-y:0.5rem}.g-md-3,.gx-md-3{--bs-gutter-x:1rem}.g-md-3,.gy-md-3{--bs-gutter-y:1rem}.g-md-4,.gx-md-4{--bs-gutter-x:1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y:1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x:3rem}.g-md-5,.gy-md-5{--bs-gutter-y:3rem}}@media (min-width:992px){.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x:0}.g-lg-0,.gy-lg-0{--bs-gutter-y:0}.g-lg-1,.gx-lg-1{--bs-gutter-x:0.25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y:0.25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x:0.5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y:0.5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x:1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y:1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x:1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y:1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x:3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y:3rem}}@media (min-width:1200px){.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x:0}.g-xl-0,.gy-xl-0{--bs-gutter-y:0}.g-xl-1,.gx-xl-1{--bs-gutter-x:0.25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y:0.25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x:0.5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y:0.5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x:1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y:1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x:1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y:1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x:3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y:3rem}}@media (min-width:1400px){.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x:0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y:0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x:0.25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y:0.25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x:0.5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y:0.5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x:1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y:1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x:1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y:1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x:3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y:3rem}}.table{--bs-table-bg:transparent;--bs-table-accent-bg:transparent;--bs-table-striped-color:#212529;--bs-table-striped-bg:rgba(0, 0, 0, 0.05);--bs-table-active-color:#212529;--bs-table-active-bg:rgba(0, 0, 0, 0.1);--bs-table-hover-color:#212529;--bs-table-hover-bg:rgba(0, 0, 0, 0.075);width:100%;margin-bottom:1rem;color:#212529;vertical-align:top;border-color:#dee2e6}.table>:not(caption)>*>*{padding:.5rem .5rem;background-color:var(--bs-table-bg);border-bottom-width:1px;box-shadow:inset 0 0 0 9999px var(--bs-table-accent-bg)}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table>:not(:last-child)>:last-child>*{border-bottom-color:currentColor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem .25rem}.table-bordered>:not(caption)>*{border-width:1px 0}.table-bordered>:not(caption)>*>*{border-width:0 1px}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-striped>tbody>tr:nth-of-type(odd){--bs-table-accent-bg:var(--bs-table-striped-bg);color:var(--bs-table-striped-color)}.table-active{--bs-table-accent-bg:var(--bs-table-active-bg);color:var(--bs-table-active-color)}.table-hover>tbody>tr:hover{--bs-table-accent-bg:var(--bs-table-hover-bg);color:var(--bs-table-hover-color)}.table-primary{--bs-table-bg:#cfe2ff;--bs-table-striped-bg:#c5d7f2;--bs-table-striped-color:#000;--bs-table-active-bg:#bacbe6;--bs-table-active-color:#000;--bs-table-hover-bg:#bfd1ec;--bs-table-hover-color:#000;color:#000;border-color:#bacbe6}.table-secondary{--bs-table-bg:#e2e3e5;--bs-table-striped-bg:#d7d8da;--bs-table-striped-color:#000;--bs-table-active-bg:#cbccce;--bs-table-active-color:#000;--bs-table-hover-bg:#d1d2d4;--bs-table-hover-color:#000;color:#000;border-color:#cbccce}.table-success{--bs-table-bg:#d1e7dd;--bs-table-striped-bg:#c7dbd2;--bs-table-striped-color:#000;--bs-table-active-bg:#bcd0c7;--bs-table-active-color:#000;--bs-table-hover-bg:#c1d6cc;--bs-table-hover-color:#000;color:#000;border-color:#bcd0c7}.table-info{--bs-table-bg:#cff4fc;--bs-table-striped-bg:#c5e8ef;--bs-table-striped-color:#000;--bs-table-active-bg:#badce3;--bs-table-active-color:#000;--bs-table-hover-bg:#bfe2e9;--bs-table-hover-color:#000;color:#000;border-color:#badce3}.table-warning{--bs-table-bg:#fff3cd;--bs-table-striped-bg:#f2e7c3;--bs-table-striped-color:#000;--bs-table-active-bg:#e6dbb9;--bs-table-active-color:#000;--bs-table-hover-bg:#ece1be;--bs-table-hover-color:#000;color:#000;border-color:#e6dbb9}.table-danger{--bs-table-bg:#f8d7da;--bs-table-striped-bg:#eccccf;--bs-table-striped-color:#000;--bs-table-active-bg:#dfc2c4;--bs-table-active-color:#000;--bs-table-hover-bg:#e5c7ca;--bs-table-hover-color:#000;color:#000;border-color:#dfc2c4}.table-light{--bs-table-bg:#f8f9fa;--bs-table-striped-bg:#ecedee;--bs-table-striped-color:#000;--bs-table-active-bg:#dfe0e1;--bs-table-active-color:#000;--bs-table-hover-bg:#e5e6e7;--bs-table-hover-color:#000;color:#000;border-color:#dfe0e1}.table-dark{--bs-table-bg:#212529;--bs-table-striped-bg:#2c3034;--bs-table-striped-color:#fff;--bs-table-active-bg:#373b3e;--bs-table-active-color:#fff;--bs-table-hover-bg:#323539;--bs-table-hover-color:#fff;color:#fff;border-color:#373b3e}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width:575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem}.form-text{margin-top:.25rem;font-size:.875em;color:#6c757d}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:#212529;background-color:#fff;border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-control::-webkit-date-and-time-value{height:1.5em}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}.form-control::file-selector-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:#212529;background-color:#e9ecef;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:#dde0e3}.form-control::-webkit-file-upload-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:#212529;background-color:#e9ecef;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::-webkit-file-upload-button{-webkit-transition:none;transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:#dde0e3}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + (.5rem + 2px));padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-sm::-webkit-file-upload-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + (1rem + 2px));padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}.form-control-lg::-webkit-file-upload-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + (.75rem + 2px))}textarea.form-control-sm{min-height:calc(1.5em + (.5rem + 2px))}textarea.form-control-lg{min-height:calc(1.5em + (1rem + 2px))}.form-control-color{max-width:3rem;height:auto;padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{height:1.5em;border-radius:.25rem}.form-control-color::-webkit-color-swatch{height:1.5em;border-radius:.25rem}.form-select{display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;-moz-padding-start:calc(0.75rem - 3px);font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-select{transition:none}}.form-select:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:#e9ecef}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #212529}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.form-check{display:block;min-height:1.5rem;padding-left:1.5em;margin-bottom:.125rem}.form-check .form-check-input{float:left;margin-left:-1.5em}.form-check-input{width:1em;height:1em;margin-top:.25em;vertical-align:top;background-color:#fff;background-repeat:no-repeat;background-position:center;background-size:contain;border:1px solid rgba(0,0,0,.25);-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact}.form-check-input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-check-input:checked{background-color:#0d6efd;border-color:#0d6efd}.form-check-input:checked[type=checkbox]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate{background-color:#0d6efd;border-color:#0d6efd;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{opacity:.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{width:2em;margin-left:-2.5em;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.btn-check:disabled+.btn,.btn-check[disabled]+.btn{pointer-events:none;filter:none;opacity:.65}.form-range{width:100%;height:1.5rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#0d6efd;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#b6d4fe}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#0d6efd;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-range::-moz-range-thumb{-moz-transition:none;transition:none}}.form-range::-moz-range-thumb:active{background-color:#b6d4fe}.form-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.form-range:disabled::-moz-range-thumb{background-color:#adb5bd}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-select{height:calc(3.5rem + 2px);line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;height:100%;padding:1rem .75rem;pointer-events:none;border:1px solid transparent;transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media (prefers-reduced-motion:reduce){.form-floating>label{transition:none}}.form-floating>.form-control{padding:1rem .75rem}.form-floating>.form-control::-moz-placeholder{color:transparent}.form-floating>.form-control::placeholder{color:transparent}.form-floating>.form-control:not(:-moz-placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:not(:-moz-placeholder-shown)~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:-webkit-autofill~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-select{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-select:focus{z-index:3}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:3}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-lg>.btn,.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.input-group-sm>.btn,.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text{padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu){border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#198754}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:rgba(25,135,84,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#198754;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#198754;box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-valid,.was-validated .form-select:valid{border-color:#198754}.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"],.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"]{padding-right:4.125rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-valid:focus,.was-validated .form-select:valid:focus{border-color:#198754;box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.form-check-input.is-valid,.was-validated .form-check-input:valid{border-color:#198754}.form-check-input.is-valid:checked,.was-validated .form-check-input:valid:checked{background-color:#198754}.form-check-input.is-valid:focus,.was-validated .form-check-input:valid:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#198754}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.input-group .form-control.is-valid,.input-group .form-select.is-valid,.was-validated .input-group .form-control:valid,.was-validated .input-group .form-select:valid{z-index:1}.input-group .form-control.is-valid:focus,.input-group .form-select.is-valid:focus,.was-validated .input-group .form-control:valid:focus,.was-validated .input-group .form-select:valid:focus{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-invalid,.was-validated .form-select:invalid{border-color:#dc3545}.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"],.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"]{padding-right:4.125rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-invalid:focus,.was-validated .form-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.form-check-input.is-invalid,.was-validated .form-check-input:invalid{border-color:#dc3545}.form-check-input.is-invalid:checked,.was-validated .form-check-input:invalid:checked{background-color:#dc3545}.form-check-input.is-invalid:focus,.was-validated .form-check-input:invalid:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.input-group .form-control.is-invalid,.input-group .form-select.is-invalid,.was-validated .input-group .form-control:invalid,.was-validated .input-group .form-select:invalid{z-index:2}.input-group .form-control.is-invalid:focus,.input-group .form-select.is-invalid:focus,.was-validated .input-group .form-control:invalid:focus,.was-validated .input-group .form-select:invalid:focus{z-index:3}.btn{display:inline-block;font-weight:400;line-height:1.5;color:#212529;text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529}.btn-check:focus+.btn,.btn:focus{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.btn.disabled,.btn:disabled,fieldset:disabled .btn{pointer-events:none;opacity:.65}.btn-primary{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-primary:hover{color:#fff;background-color:#0b5ed7;border-color:#0a58ca}.btn-check:focus+.btn-primary,.btn-primary:focus{color:#fff;background-color:#0b5ed7;border-color:#0a58ca;box-shadow:0 0 0 .25rem rgba(49,132,253,.5)}.btn-check:active+.btn-primary,.btn-check:checked+.btn-primary,.btn-primary.active,.btn-primary:active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0a58ca;border-color:#0a53be}.btn-check:active+.btn-primary:focus,.btn-check:checked+.btn-primary:focus,.btn-primary.active:focus,.btn-primary:active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(49,132,253,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5c636a;border-color:#565e64}.btn-check:focus+.btn-secondary,.btn-secondary:focus{color:#fff;background-color:#5c636a;border-color:#565e64;box-shadow:0 0 0 .25rem rgba(130,138,145,.5)}.btn-check:active+.btn-secondary,.btn-check:checked+.btn-secondary,.btn-secondary.active,.btn-secondary:active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#565e64;border-color:#51585e}.btn-check:active+.btn-secondary:focus,.btn-check:checked+.btn-secondary:focus,.btn-secondary.active:focus,.btn-secondary:active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-success{color:#fff;background-color:#198754;border-color:#198754}.btn-success:hover{color:#fff;background-color:#157347;border-color:#146c43}.btn-check:focus+.btn-success,.btn-success:focus{color:#fff;background-color:#157347;border-color:#146c43;box-shadow:0 0 0 .25rem rgba(60,153,110,.5)}.btn-check:active+.btn-success,.btn-check:checked+.btn-success,.btn-success.active,.btn-success:active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#146c43;border-color:#13653f}.btn-check:active+.btn-success:focus,.btn-check:checked+.btn-success:focus,.btn-success.active:focus,.btn-success:active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(60,153,110,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#198754;border-color:#198754}.btn-info{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-info:hover{color:#000;background-color:#31d2f2;border-color:#25cff2}.btn-check:focus+.btn-info,.btn-info:focus{color:#000;background-color:#31d2f2;border-color:#25cff2;box-shadow:0 0 0 .25rem rgba(11,172,204,.5)}.btn-check:active+.btn-info,.btn-check:checked+.btn-info,.btn-info.active,.btn-info:active,.show>.btn-info.dropdown-toggle{color:#000;background-color:#3dd5f3;border-color:#25cff2}.btn-check:active+.btn-info:focus,.btn-check:checked+.btn-info:focus,.btn-info.active:focus,.btn-info:active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(11,172,204,.5)}.btn-info.disabled,.btn-info:disabled{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-warning{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#000;background-color:#ffca2c;border-color:#ffc720}.btn-check:focus+.btn-warning,.btn-warning:focus{color:#000;background-color:#ffca2c;border-color:#ffc720;box-shadow:0 0 0 .25rem rgba(217,164,6,.5)}.btn-check:active+.btn-warning,.btn-check:checked+.btn-warning,.btn-warning.active,.btn-warning:active,.show>.btn-warning.dropdown-toggle{color:#000;background-color:#ffcd39;border-color:#ffc720}.btn-check:active+.btn-warning:focus,.btn-check:checked+.btn-warning:focus,.btn-warning.active:focus,.btn-warning:active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(217,164,6,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#bb2d3b;border-color:#b02a37}.btn-check:focus+.btn-danger,.btn-danger:focus{color:#fff;background-color:#bb2d3b;border-color:#b02a37;box-shadow:0 0 0 .25rem rgba(225,83,97,.5)}.btn-check:active+.btn-danger,.btn-check:checked+.btn-danger,.btn-danger.active,.btn-danger:active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#b02a37;border-color:#a52834}.btn-check:active+.btn-danger:focus,.btn-check:checked+.btn-danger:focus,.btn-danger.active:focus,.btn-danger:active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-light{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#000;background-color:#f9fafb;border-color:#f9fafb}.btn-check:focus+.btn-light,.btn-light:focus{color:#000;background-color:#f9fafb;border-color:#f9fafb;box-shadow:0 0 0 .25rem rgba(211,212,213,.5)}.btn-check:active+.btn-light,.btn-check:checked+.btn-light,.btn-light.active,.btn-light:active,.show>.btn-light.dropdown-toggle{color:#000;background-color:#f9fafb;border-color:#f9fafb}.btn-check:active+.btn-light:focus,.btn-check:checked+.btn-light:focus,.btn-light.active:focus,.btn-light:active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(211,212,213,.5)}.btn-light.disabled,.btn-light:disabled{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-dark{color:#fff;background-color:#212529;border-color:#212529}.btn-dark:hover{color:#fff;background-color:#1c1f23;border-color:#1a1e21}.btn-check:focus+.btn-dark,.btn-dark:focus{color:#fff;background-color:#1c1f23;border-color:#1a1e21;box-shadow:0 0 0 .25rem rgba(66,70,73,.5)}.btn-check:active+.btn-dark,.btn-check:checked+.btn-dark,.btn-dark.active,.btn-dark:active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1a1e21;border-color:#191c1f}.btn-check:active+.btn-dark:focus,.btn-check:checked+.btn-dark:focus,.btn-dark.active:focus,.btn-dark:active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(66,70,73,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#212529;border-color:#212529}.btn-outline-primary{color:#0d6efd;border-color:#0d6efd}.btn-outline-primary:hover{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-check:focus+.btn-outline-primary,.btn-outline-primary:focus{box-shadow:0 0 0 .25rem rgba(13,110,253,.5)}.btn-check:active+.btn-outline-primary,.btn-check:checked+.btn-outline-primary,.btn-outline-primary.active,.btn-outline-primary.dropdown-toggle.show,.btn-outline-primary:active{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-check:active+.btn-outline-primary:focus,.btn-check:checked+.btn-outline-primary:focus,.btn-outline-primary.active:focus,.btn-outline-primary.dropdown-toggle.show:focus,.btn-outline-primary:active:focus{box-shadow:0 0 0 .25rem rgba(13,110,253,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#0d6efd;background-color:transparent}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-check:focus+.btn-outline-secondary,.btn-outline-secondary:focus{box-shadow:0 0 0 .25rem rgba(108,117,125,.5)}.btn-check:active+.btn-outline-secondary,.btn-check:checked+.btn-outline-secondary,.btn-outline-secondary.active,.btn-outline-secondary.dropdown-toggle.show,.btn-outline-secondary:active{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-check:active+.btn-outline-secondary:focus,.btn-check:checked+.btn-outline-secondary:focus,.btn-outline-secondary.active:focus,.btn-outline-secondary.dropdown-toggle.show:focus,.btn-outline-secondary:active:focus{box-shadow:0 0 0 .25rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-success{color:#198754;border-color:#198754}.btn-outline-success:hover{color:#fff;background-color:#198754;border-color:#198754}.btn-check:focus+.btn-outline-success,.btn-outline-success:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.5)}.btn-check:active+.btn-outline-success,.btn-check:checked+.btn-outline-success,.btn-outline-success.active,.btn-outline-success.dropdown-toggle.show,.btn-outline-success:active{color:#fff;background-color:#198754;border-color:#198754}.btn-check:active+.btn-outline-success:focus,.btn-check:checked+.btn-outline-success:focus,.btn-outline-success.active:focus,.btn-outline-success.dropdown-toggle.show:focus,.btn-outline-success:active:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#198754;background-color:transparent}.btn-outline-info{color:#0dcaf0;border-color:#0dcaf0}.btn-outline-info:hover{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-check:focus+.btn-outline-info,.btn-outline-info:focus{box-shadow:0 0 0 .25rem rgba(13,202,240,.5)}.btn-check:active+.btn-outline-info,.btn-check:checked+.btn-outline-info,.btn-outline-info.active,.btn-outline-info.dropdown-toggle.show,.btn-outline-info:active{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-check:active+.btn-outline-info:focus,.btn-check:checked+.btn-outline-info:focus,.btn-outline-info.active:focus,.btn-outline-info.dropdown-toggle.show:focus,.btn-outline-info:active:focus{box-shadow:0 0 0 .25rem rgba(13,202,240,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#0dcaf0;background-color:transparent}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-check:focus+.btn-outline-warning,.btn-outline-warning:focus{box-shadow:0 0 0 .25rem rgba(255,193,7,.5)}.btn-check:active+.btn-outline-warning,.btn-check:checked+.btn-outline-warning,.btn-outline-warning.active,.btn-outline-warning.dropdown-toggle.show,.btn-outline-warning:active{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-check:active+.btn-outline-warning:focus,.btn-check:checked+.btn-outline-warning:focus,.btn-outline-warning.active:focus,.btn-outline-warning.dropdown-toggle.show:focus,.btn-outline-warning:active:focus{box-shadow:0 0 0 .25rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-check:focus+.btn-outline-danger,.btn-outline-danger:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.5)}.btn-check:active+.btn-outline-danger,.btn-check:checked+.btn-outline-danger,.btn-outline-danger.active,.btn-outline-danger.dropdown-toggle.show,.btn-outline-danger:active{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-check:active+.btn-outline-danger:focus,.btn-check:checked+.btn-outline-danger:focus,.btn-outline-danger.active:focus,.btn-outline-danger.dropdown-toggle.show:focus,.btn-outline-danger:active:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-check:focus+.btn-outline-light,.btn-outline-light:focus{box-shadow:0 0 0 .25rem rgba(248,249,250,.5)}.btn-check:active+.btn-outline-light,.btn-check:checked+.btn-outline-light,.btn-outline-light.active,.btn-outline-light.dropdown-toggle.show,.btn-outline-light:active{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-check:active+.btn-outline-light:focus,.btn-check:checked+.btn-outline-light:focus,.btn-outline-light.active:focus,.btn-outline-light.dropdown-toggle.show:focus,.btn-outline-light:active:focus{box-shadow:0 0 0 .25rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-dark{color:#212529;border-color:#212529}.btn-outline-dark:hover{color:#fff;background-color:#212529;border-color:#212529}.btn-check:focus+.btn-outline-dark,.btn-outline-dark:focus{box-shadow:0 0 0 .25rem rgba(33,37,41,.5)}.btn-check:active+.btn-outline-dark,.btn-check:checked+.btn-outline-dark,.btn-outline-dark.active,.btn-outline-dark.dropdown-toggle.show,.btn-outline-dark:active{color:#fff;background-color:#212529;border-color:#212529}.btn-check:active+.btn-outline-dark:focus,.btn-check:checked+.btn-outline-dark:focus,.btn-outline-dark.active:focus,.btn-outline-dark.dropdown-toggle.show:focus,.btn-outline-dark:active:focus{box-shadow:0 0 0 .25rem rgba(33,37,41,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#212529;background-color:transparent}.btn-link{font-weight:400;color:#0d6efd;text-decoration:underline}.btn-link:hover{color:#0a58ca}.btn-link.disabled,.btn-link:disabled{color:#6c757d}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropend,.dropstart,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;z-index:1000;display:none;min-width:10rem;padding:.5rem 0;margin:0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:.125rem}.dropdown-menu-start{--bs-position:start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position:end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-start{--bs-position:start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position:end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-start{--bs-position:start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position:end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-start{--bs-position:start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position:end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-start{--bs-position:start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position:end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1400px){.dropdown-menu-xxl-start{--bs-position:start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position:end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropend .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropend .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-toggle::after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropstart .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle::after{display:none}.dropstart .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropstart .dropdown-toggle:empty::after{margin-left:0}.dropstart .dropdown-toggle::before{vertical-align:0}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid rgba(0,0,0,.15)}.dropdown-item{display:block;width:100%;padding:.25rem 1rem;clear:both;font-weight:400;color:#212529;text-align:inherit;text-decoration:none;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#1e2125;background-color:#e9ecef}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#0d6efd}.dropdown-item.disabled,.dropdown-item:disabled{color:#adb5bd;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1rem;color:#212529}.dropdown-menu-dark{color:#dee2e6;background-color:#343a40;border-color:rgba(0,0,0,.15)}.dropdown-menu-dark .dropdown-item{color:#dee2e6}.dropdown-menu-dark .dropdown-item:focus,.dropdown-menu-dark .dropdown-item:hover{color:#fff;background-color:rgba(255,255,255,.15)}.dropdown-menu-dark .dropdown-item.active,.dropdown-menu-dark .dropdown-item:active{color:#fff;background-color:#0d6efd}.dropdown-menu-dark .dropdown-item.disabled,.dropdown-menu-dark .dropdown-item:disabled{color:#adb5bd}.dropdown-menu-dark .dropdown-divider{border-color:rgba(0,0,0,.15)}.dropdown-menu-dark .dropdown-item-text{color:#dee2e6}.dropdown-menu-dark .dropdown-header{color:#adb5bd}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropend .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropstart .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn~.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem;color:#0d6efd;text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion:reduce){.nav-link{transition:none}}.nav-link:focus,.nav-link:hover{color:#0a58ca}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-link{margin-bottom:-1px;background:0 0;border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6;isolation:isolate}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{background:0 0;border:0;border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#0d6efd}.nav-fill .nav-item,.nav-fill>.nav-link{flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{flex-basis:0;flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding-top:.5rem;padding-bottom:.5rem}.navbar>.container,.navbar>.container-fluid,.navbar>.container-lg,.navbar>.container-md,.navbar>.container-sm,.navbar>.container-xl,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;text-decoration:none;white-space:nowrap}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem;transition:box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 .25rem}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height,75vh);overflow-y:auto}@media (min-width:576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (min-width:768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (min-width:992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (min-width:1200px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}@media (min-width:1400px){.navbar-expand-xxl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.55)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.55);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(0,0,0,.55)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.55)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.55);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,.55)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;padding:1rem 1rem}.card-title{margin-bottom:.5rem}.card-subtitle{margin-top:-.25rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1rem}.card-header{padding:.5rem 1rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-footer{padding:.5rem 1rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.5rem;margin-bottom:-.5rem;margin-left:-.5rem;border-bottom:0}.card-header-pills{margin-right:-.5rem;margin-left:-.5rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1rem;border-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom,.card-img-top{width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-group>.card{margin-bottom:.75rem}@media (min-width:576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.accordion-button{position:relative;display:flex;align-items:center;width:100%;padding:1rem 1.25rem;font-size:1rem;color:#212529;text-align:left;background-color:#fff;border:0;border-radius:0;overflow-anchor:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,border-radius .15s ease}@media (prefers-reduced-motion:reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:#0c63e4;background-color:#e7f1ff;box-shadow:inset 0 -1px 0 rgba(0,0,0,.125)}.accordion-button:not(.collapsed)::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%230c63e4'%3e%3cpath fill-rule='evenodd' d='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'/%3e%3c/svg%3e");transform:rotate(-180deg)}.accordion-button::after{flex-shrink:0;width:1.25rem;height:1.25rem;margin-left:auto;content:"";background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='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'/%3e%3c/svg%3e");background-repeat:no-repeat;background-size:1.25rem;transition:transform .2s ease-in-out}@media (prefers-reduced-motion:reduce){.accordion-button::after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.accordion-header{margin-bottom:0}.accordion-item{background-color:#fff;border:1px solid rgba(0,0,0,.125)}.accordion-item:first-of-type{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.accordion-item:first-of-type .accordion-button{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.accordion-item:last-of-type .accordion-button.collapsed{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.accordion-item:last-of-type .accordion-collapse{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.accordion-body{padding:1rem 1.25rem}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush .accordion-item:first-child{border-top:0}.accordion-flush .accordion-item:last-child{border-bottom:0}.accordion-flush .accordion-item .accordion-button{border-radius:0}.breadcrumb{display:flex;flex-wrap:wrap;padding:0 0;margin-bottom:1rem;list-style:none}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:.5rem;color:#6c757d;content:var(--bs-breadcrumb-divider, "/")}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;color:#0d6efd;text-decoration:none;background-color:#fff;border:1px solid #dee2e6;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:#0a58ca;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;color:#0a58ca;background-color:#e9ecef;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.page-item:not(:first-child) .page-link{margin-left:-1px}.page-item.active .page-link{z-index:3;color:#fff;background-color:#0d6efd;border-color:#0d6efd}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;background-color:#fff;border-color:#dee2e6}.page-link{padding:.375rem .75rem}.page-item:first-child .page-link{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.35em .65em;font-size:.75em;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{position:relative;padding:1rem 1rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-primary{color:#084298;background-color:#cfe2ff;border-color:#b6d4fe}.alert-primary .alert-link{color:#06357a}.alert-secondary{color:#41464b;background-color:#e2e3e5;border-color:#d3d6d8}.alert-secondary .alert-link{color:#34383c}.alert-success{color:#0f5132;background-color:#d1e7dd;border-color:#badbcc}.alert-success .alert-link{color:#0c4128}.alert-info{color:#055160;background-color:#cff4fc;border-color:#b6effb}.alert-info .alert-link{color:#04414d}.alert-warning{color:#664d03;background-color:#fff3cd;border-color:#ffecb5}.alert-warning .alert-link{color:#523e02}.alert-danger{color:#842029;background-color:#f8d7da;border-color:#f5c2c7}.alert-danger .alert-link{color:#6a1a21}.alert-light{color:#636464;background-color:#fefefe;border-color:#fdfdfe}.alert-light .alert-link{color:#4f5050}.alert-dark{color:#141619;background-color:#d3d3d4;border-color:#bcbebf}.alert-dark .alert-link{color:#101214}@-webkit-keyframes progress-bar-stripes{0%{background-position-x:1rem}}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress{display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#0d6efd;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:1s linear infinite progress-bar-stripes;animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:.25rem}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>li::before{content:counters(section, ".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.5rem 1rem;color:#212529;text-decoration:none;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#0d6efd;border-color:#0d6efd}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1400px){.list-group-horizontal-xxl{flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#084298;background-color:#cfe2ff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#084298;background-color:#bacbe6}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#084298;border-color:#084298}.list-group-item-secondary{color:#41464b;background-color:#e2e3e5}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#41464b;background-color:#cbccce}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#41464b;border-color:#41464b}.list-group-item-success{color:#0f5132;background-color:#d1e7dd}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#0f5132;background-color:#bcd0c7}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#0f5132;border-color:#0f5132}.list-group-item-info{color:#055160;background-color:#cff4fc}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#055160;background-color:#badce3}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#055160;border-color:#055160}.list-group-item-warning{color:#664d03;background-color:#fff3cd}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#664d03;background-color:#e6dbb9}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#664d03;border-color:#664d03}.list-group-item-danger{color:#842029;background-color:#f8d7da}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#842029;background-color:#dfc2c4}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#842029;border-color:#842029}.list-group-item-light{color:#636464;background-color:#fefefe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#636464;background-color:#e5e5e5}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#636464;border-color:#636464}.list-group-item-dark{color:#141619;background-color:#d3d3d4}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#141619;background-color:#bebebf}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#141619;border-color:#141619}.btn-close{box-sizing:content-box;width:1em;height:1em;padding:.25em .25em;color:#000;background:transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat;border:0;border-radius:.25rem;opacity:.5}.btn-close:hover{color:#000;text-decoration:none;opacity:.75}.btn-close:focus{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25);opacity:1}.btn-close.disabled,.btn-close:disabled{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;opacity:.25}.btn-close-white{filter:invert(1) grayscale(100%) brightness(200%)}.toast{width:350px;max-width:100%;font-size:.875rem;pointer-events:auto;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .5rem 1rem rgba(0,0,0,.15);border-radius:.25rem}.toast:not(.showing):not(.show){opacity:0}.toast.hide{display:none}.toast-container{width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:.75rem}.toast-header{display:flex;align-items:center;padding:.5rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05);border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.toast-header .btn-close{margin-right:-.375rem;margin-left:.75rem}.toast-body{padding:.75rem;word-wrap:break-word}.modal{position:fixed;top:0;left:0;z-index:1060;display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .btn-close{padding:.5rem .5rem;margin:-.5rem -.5rem -.5rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;flex-wrap:wrap;flex-shrink:0;align-items:center;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{height:calc(100% - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-header{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}.modal-fullscreen .modal-footer{border-radius:0}@media (max-width:575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-header{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}.modal-fullscreen-sm-down .modal-footer{border-radius:0}}@media (max-width:767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-header{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}.modal-fullscreen-md-down .modal-footer{border-radius:0}}@media (max-width:991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-header{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}.modal-fullscreen-lg-down .modal-footer{border-radius:0}}@media (max-width:1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-header{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}.modal-fullscreen-xl-down .modal-footer{border-radius:0}}@media (max-width:1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-header{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}.modal-fullscreen-xxl-down .modal-footer{border-radius:0}}.tooltip{position:absolute;z-index:1080;display:block;margin:0;font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .tooltip-arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .tooltip-arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[data-popper-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow,.bs-tooltip-top .tooltip-arrow{bottom:0}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before,.bs-tooltip-top .tooltip-arrow::before{top:-1px;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[data-popper-placement^=right],.bs-tooltip-end{padding:0 .4rem}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow,.bs-tooltip-end .tooltip-arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before,.bs-tooltip-end .tooltip-arrow::before{right:-1px;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[data-popper-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow,.bs-tooltip-bottom .tooltip-arrow{top:0}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before,.bs-tooltip-bottom .tooltip-arrow::before{bottom:-1px;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[data-popper-placement^=left],.bs-tooltip-start{padding:0 .4rem}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow,.bs-tooltip-start .tooltip-arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before,.bs-tooltip-start .tooltip-arrow::before{left:-1px;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1070;display:block;max-width:276px;font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .popover-arrow{position:absolute;display:block;width:1rem;height:.5rem}.popover .popover-arrow::after,.popover .popover-arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow,.bs-popover-top>.popover-arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after,.bs-popover-top>.popover-arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow,.bs-popover-end>.popover-arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after,.bs-popover-end>.popover-arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow,.bs-popover-bottom>.popover-arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after,.bs-popover-bottom>.popover-arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[data-popper-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f0f0f0}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow,.bs-popover-start>.popover-arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after,.bs-popover-start>.popover-arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem 1rem;margin-bottom:0;font-size:1rem;background-color:#f0f0f0;border-bottom:1px solid rgba(0,0,0,.2);border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:1rem 1rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-end,.carousel-item-next:not(.carousel-item-start){transform:translateX(100%)}.active.carousel-item-start,.carousel-item-prev:not(.carousel-item-end){transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%;list-style:none}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-next-icon,.carousel-dark .carousel-control-prev-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}@-webkit-keyframes spinner-border{to{transform:rotate(360deg)}}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:-.125em;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:.75s linear infinite spinner-border;animation:.75s linear infinite spinner-border}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:-.125em;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:.75s linear infinite spinner-grow;animation:.75s linear infinite spinner-grow}.spinner-grow-sm{width:1rem;height:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{-webkit-animation-duration:1.5s;animation-duration:1.5s}}.offcanvas{position:fixed;bottom:0;z-index:1050;display:flex;flex-direction:column;max-width:100%;visibility:hidden;background-color:#fff;background-clip:padding-box;outline:0;transition:transform .3s ease-in-out}@media (prefers-reduced-motion:reduce){.offcanvas{transition:none}}.offcanvas-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1rem}.offcanvas-header .btn-close{padding:.5rem .5rem;margin-top:-.5rem;margin-right:-.5rem;margin-bottom:-.5rem}.offcanvas-title{margin-bottom:0;line-height:1.5}.offcanvas-body{flex-grow:1;padding:1rem 1rem;overflow-y:auto}.offcanvas-start{top:0;left:0;width:400px;border-right:1px solid rgba(0,0,0,.2);transform:translateX(-100%)}.offcanvas-end{top:0;right:0;width:400px;border-left:1px solid rgba(0,0,0,.2);transform:translateX(100%)}.offcanvas-top{top:0;right:0;left:0;height:30vh;max-height:100%;border-bottom:1px solid rgba(0,0,0,.2);transform:translateY(-100%)}.offcanvas-bottom{right:0;left:0;height:30vh;max-height:100%;border-top:1px solid rgba(0,0,0,.2);transform:translateY(100%)}.offcanvas.show{transform:none}.clearfix::after{display:block;clear:both;content:""}.link-primary{color:#0d6efd}.link-primary:focus,.link-primary:hover{color:#0a58ca}.link-secondary{color:#6c757d}.link-secondary:focus,.link-secondary:hover{color:#565e64}.link-success{color:#198754}.link-success:focus,.link-success:hover{color:#146c43}.link-info{color:#0dcaf0}.link-info:focus,.link-info:hover{color:#3dd5f3}.link-warning{color:#ffc107}.link-warning:focus,.link-warning:hover{color:#ffcd39}.link-danger{color:#dc3545}.link-danger:focus,.link-danger:hover{color:#b02a37}.link-light{color:#f8f9fa}.link-light:focus,.link-light:hover{color:#f9fafb}.link-dark{color:#212529}.link-dark:focus,.link-dark:hover{color:#1a1e21}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio:100%}.ratio-4x3{--bs-aspect-ratio:calc(3 / 4 * 100%)}.ratio-16x9{--bs-aspect-ratio:calc(9 / 16 * 100%)}.ratio-21x9{--bs-aspect-ratio:calc(9 / 21 * 100%)}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}@media (min-width:576px){.sticky-sm-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:768px){.sticky-md-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:992px){.sticky-lg-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:1200px){.sticky-xl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:1400px){.sticky-xxl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.float-start{float:left!important}.float-end{float:right!important}.float-none{float:none!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.top-0{top:0!important}.top-50{top:50%!important}.top-100{top:100%!important}.bottom-0{bottom:0!important}.bottom-50{bottom:50%!important}.bottom-100{bottom:100%!important}.start-0{left:0!important}.start-50{left:50%!important}.start-100{left:100%!important}.end-0{right:0!important}.end-50{right:50%!important}.end-100{right:100%!important}.translate-middle{transform:translate(-50%,-50%)!important}.translate-middle-x{transform:translateX(-50%)!important}.translate-middle-y{transform:translateY(-50%)!important}.border{border:1px solid #dee2e6!important}.border-0{border:0!important}.border-top{border-top:1px solid #dee2e6!important}.border-top-0{border-top:0!important}.border-end{border-right:1px solid #dee2e6!important}.border-end-0{border-right:0!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-bottom-0{border-bottom:0!important}.border-start{border-left:1px solid #dee2e6!important}.border-start-0{border-left:0!important}.border-primary{border-color:#0d6efd!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#198754!important}.border-info{border-color:#0dcaf0!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#212529!important}.border-white{border-color:#fff!important}.border-1{border-width:1px!important}.border-2{border-width:2px!important}.border-3{border-width:3px!important}.border-4{border-width:4px!important}.border-5{border-width:5px!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:1.5rem!important}.gap-5{gap:3rem!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-5{margin-right:3rem!important;margin-left:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}.font-monospace{font-family:var(--bs-font-monospace)!important}.fs-1{font-size:calc(1.375rem + 1.5vw)!important}.fs-2{font-size:calc(1.325rem + .9vw)!important}.fs-3{font-size:calc(1.3rem + .6vw)!important}.fs-4{font-size:calc(1.275rem + .3vw)!important}.fs-5{font-size:1.25rem!important}.fs-6{font-size:1rem!important}.fst-italic{font-style:italic!important}.fst-normal{font-style:normal!important}.fw-light{font-weight:300!important}.fw-lighter{font-weight:lighter!important}.fw-normal{font-weight:400!important}.fw-bold{font-weight:700!important}.fw-bolder{font-weight:bolder!important}.lh-1{line-height:1!important}.lh-sm{line-height:1.25!important}.lh-base{line-height:1.5!important}.lh-lg{line-height:2!important}.text-start{text-align:left!important}.text-end{text-align:right!important}.text-center{text-align:center!important}.text-decoration-none{text-decoration:none!important}.text-decoration-underline{text-decoration:underline!important}.text-decoration-line-through{text-decoration:line-through!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-break{word-wrap:break-word!important;word-break:break-word!important}.text-primary{color:#0d6efd!important}.text-secondary{color:#6c757d!important}.text-success{color:#198754!important}.text-info{color:#0dcaf0!important}.text-warning{color:#ffc107!important}.text-danger{color:#dc3545!important}.text-light{color:#f8f9fa!important}.text-dark{color:#212529!important}.text-white{color:#fff!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:rgba(255,255,255,.5)!important}.text-reset{color:inherit!important}.bg-primary{background-color:#0d6efd!important}.bg-secondary{background-color:#6c757d!important}.bg-success{background-color:#198754!important}.bg-info{background-color:#0dcaf0!important}.bg-warning{background-color:#ffc107!important}.bg-danger{background-color:#dc3545!important}.bg-light{background-color:#f8f9fa!important}.bg-dark{background-color:#212529!important}.bg-body{background-color:#fff!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.bg-gradient{background-image:var(--bs-gradient)!important}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}.pe-none{pointer-events:none!important}.pe-auto{pointer-events:auto!important}.rounded{border-radius:.25rem!important}.rounded-0{border-radius:0!important}.rounded-1{border-radius:.2rem!important}.rounded-2{border-radius:.25rem!important}.rounded-3{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-end{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-start{border-bottom-left-radius:.25rem!important;border-top-left-radius:.25rem!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media (min-width:576px){.float-sm-start{float:left!important}.float-sm-end{float:right!important}.float-sm-none{float:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-sm-0{gap:0!important}.gap-sm-1{gap:.25rem!important}.gap-sm-2{gap:.5rem!important}.gap-sm-3{gap:1rem!important}.gap-sm-4{gap:1.5rem!important}.gap-sm-5{gap:3rem!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-sm-5{padding-right:3rem!important;padding-left:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}.text-sm-start{text-align:left!important}.text-sm-end{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.float-md-start{float:left!important}.float-md-end{float:right!important}.float-md-none{float:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-md-0{gap:0!important}.gap-md-1{gap:.25rem!important}.gap-md-2{gap:.5rem!important}.gap-md-3{gap:1rem!important}.gap-md-4{gap:1.5rem!important}.gap-md-5{gap:3rem!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-md-5{margin-right:3rem!important;margin-left:3rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-md-5{padding-right:3rem!important;padding-left:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}.text-md-start{text-align:left!important}.text-md-end{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.float-lg-start{float:left!important}.float-lg-end{float:right!important}.float-lg-none{float:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-lg-0{gap:0!important}.gap-lg-1{gap:.25rem!important}.gap-lg-2{gap:.5rem!important}.gap-lg-3{gap:1rem!important}.gap-lg-4{gap:1.5rem!important}.gap-lg-5{gap:3rem!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-lg-5{padding-right:3rem!important;padding-left:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}.text-lg-start{text-align:left!important}.text-lg-end{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.float-xl-start{float:left!important}.float-xl-end{float:right!important}.float-xl-none{float:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-xl-0{gap:0!important}.gap-xl-1{gap:.25rem!important}.gap-xl-2{gap:.5rem!important}.gap-xl-3{gap:1rem!important}.gap-xl-4{gap:1.5rem!important}.gap-xl-5{gap:3rem!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}.text-xl-start{text-align:left!important}.text-xl-end{text-align:right!important}.text-xl-center{text-align:center!important}}@media (min-width:1400px){.float-xxl-start{float:left!important}.float-xxl-end{float:right!important}.float-xxl-none{float:none!important}.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-xxl-0{gap:0!important}.gap-xxl-1{gap:.25rem!important}.gap-xxl-2{gap:.5rem!important}.gap-xxl-3{gap:1rem!important}.gap-xxl-4{gap:1.5rem!important}.gap-xxl-5{gap:3rem!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-right:0!important;margin-left:0!important}.mx-xxl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xxl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xxl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xxl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xxl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xxl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-5{margin-right:3rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-5{margin-left:3rem!important}.ms-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-right:0!important;padding-left:0!important}.px-xxl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xxl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xxl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xxl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xxl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xxl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-5{padding-right:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-5{padding-left:3rem!important}.text-xxl-start{text-align:left!important}.text-xxl-end{text-align:right!important}.text-xxl-center{text-align:center!important}}@media (min-width:1200px){.fs-1{font-size:2.5rem!important}.fs-2{font-size:2rem!important}.fs-3{font-size:1.75rem!important}.fs-4{font-size:1.5rem!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}} -/*# sourceMappingURL=bootstrap.min.css.map */ \ No newline at end of file + */ +:root { + --bs-blue: #0d6efd; + --bs-indigo: #6610f2; + --bs-purple: #6f42c1; + --bs-pink: #d63384; + --bs-red: #dc3545; + --bs-orange: #fd7e14; + --bs-yellow: #ffc107; + --bs-green: #198754; + --bs-teal: #20c997; + --bs-cyan: #0dcaf0; + --bs-white: #fff; + --bs-gray: #6c757d; + --bs-gray-dark: #343a40; + --bs-primary: #0d6efd; + --bs-secondary: #6c757d; + --bs-success: #198754; + --bs-info: #0dcaf0; + --bs-warning: #ffc107; + --bs-danger: #dc3545; + --bs-light: #f8f9fa; + --bs-dark: #212529; + --bs-font-sans-serif: + system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', 'Liberation Sans', sans-serif, 'Apple Color Emoji', + 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; + --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace; + --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0)); +} +*, +::after, +::before { + box-sizing: border-box; +} +@media (prefers-reduced-motion: no-preference) { + :root { + scroll-behavior: smooth; + } +} +body { + margin: 0; + font-family: var(--bs-font-sans-serif); + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #212529; + background-color: #fff; + -webkit-text-size-adjust: 100%; + -webkit-tap-highlight-color: transparent; +} +hr { + margin: 1rem 0; + color: inherit; + background-color: currentColor; + border: 0; + opacity: 0.25; +} +hr:not([size]) { + height: 1px; +} +.h1, +.h2, +.h3, +.h4, +.h5, +.h6, +h1, +h2, +h3, +h4, +h5, +h6 { + margin-top: 0; + margin-bottom: 0.5rem; + font-weight: 500; + line-height: 1.2; +} +.h1, +h1 { + font-size: calc(1.375rem + 1.5vw); +} +@media (min-width: 1200px) { + .h1, + h1 { + font-size: 2.5rem; + } +} +.h2, +h2 { + font-size: calc(1.325rem + 0.9vw); +} +@media (min-width: 1200px) { + .h2, + h2 { + font-size: 2rem; + } +} +.h3, +h3 { + font-size: calc(1.3rem + 0.6vw); +} +@media (min-width: 1200px) { + .h3, + h3 { + font-size: 1.75rem; + } +} +.h4, +h4 { + font-size: calc(1.275rem + 0.3vw); +} +@media (min-width: 1200px) { + .h4, + h4 { + font-size: 1.5rem; + } +} +.h5, +h5 { + font-size: 1.25rem; +} +.h6, +h6 { + font-size: 1rem; +} +p { + margin-top: 0; + margin-bottom: 1rem; +} +abbr[data-bs-original-title], +abbr[title] { + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; + cursor: help; + -webkit-text-decoration-skip-ink: none; + text-decoration-skip-ink: none; +} +address { + margin-bottom: 1rem; + font-style: normal; + line-height: inherit; +} +ol, +ul { + padding-left: 2rem; +} +dl, +ol, +ul { + margin-top: 0; + margin-bottom: 1rem; +} +ol ol, +ol ul, +ul ol, +ul ul { + margin-bottom: 0; +} +dt { + font-weight: 700; +} +dd { + margin-bottom: 0.5rem; + margin-left: 0; +} +blockquote { + margin: 0 0 1rem; +} +b, +strong { + font-weight: bolder; +} +.small, +small { + font-size: 0.875em; +} +.mark, +mark { + padding: 0.2em; + background-color: #fcf8e3; +} +sub, +sup { + position: relative; + font-size: 0.75em; + line-height: 0; + vertical-align: baseline; +} +sub { + bottom: -0.25em; +} +sup { + top: -0.5em; +} +a { + color: #0d6efd; + text-decoration: underline; +} +a:hover { + color: #0a58ca; +} +a:not([href]):not([class]), +a:not([href]):not([class]):hover { + color: inherit; + text-decoration: none; +} +code, +kbd, +pre, +samp { + font-family: var(--bs-font-monospace); + font-size: 1em; + direction: ltr; + unicode-bidi: bidi-override; +} +pre { + display: block; + margin-top: 0; + margin-bottom: 1rem; + overflow: auto; + font-size: 0.875em; +} +pre code { + font-size: inherit; + color: inherit; + word-break: normal; +} +code { + font-size: 0.875em; + color: #d63384; + word-wrap: break-word; +} +a > code { + color: inherit; +} +kbd { + padding: 0.2rem 0.4rem; + font-size: 0.875em; + color: #fff; + background-color: #212529; + border-radius: 0.2rem; +} +kbd kbd { + padding: 0; + font-size: 1em; + font-weight: 700; +} +figure { + margin: 0 0 1rem; +} +img, +svg { + vertical-align: middle; +} +table { + caption-side: bottom; + border-collapse: collapse; +} +caption { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + color: #6c757d; + text-align: left; +} +th { + text-align: inherit; + text-align: -webkit-match-parent; +} +tbody, +td, +tfoot, +th, +thead, +tr { + border-color: inherit; + border-style: solid; + border-width: 0; +} +label { + display: inline-block; +} +button { + border-radius: 0; +} +button:focus:not(:focus-visible) { + outline: 0; +} +button, +input, +optgroup, +select, +textarea { + margin: 0; + font-family: inherit; + font-size: inherit; + line-height: inherit; +} +button, +select { + text-transform: none; +} +[role='button'] { + cursor: pointer; +} +select { + word-wrap: normal; +} +select:disabled { + opacity: 1; +} +[list]::-webkit-calendar-picker-indicator { + display: none; +} +[type='button'], +[type='reset'], +[type='submit'], +button { + -webkit-appearance: button; +} +[type='button']:not(:disabled), +[type='reset']:not(:disabled), +[type='submit']:not(:disabled), +button:not(:disabled) { + cursor: pointer; +} +::-moz-focus-inner { + padding: 0; + border-style: none; +} +textarea { + resize: vertical; +} +fieldset { + min-width: 0; + padding: 0; + margin: 0; + border: 0; +} +legend { + float: left; + width: 100%; + padding: 0; + margin-bottom: 0.5rem; + font-size: calc(1.275rem + 0.3vw); + line-height: inherit; +} +@media (min-width: 1200px) { + legend { + font-size: 1.5rem; + } +} +legend + * { + clear: left; +} +::-webkit-datetime-edit-day-field, +::-webkit-datetime-edit-fields-wrapper, +::-webkit-datetime-edit-hour-field, +::-webkit-datetime-edit-minute, +::-webkit-datetime-edit-month-field, +::-webkit-datetime-edit-text, +::-webkit-datetime-edit-year-field { + padding: 0; +} +::-webkit-inner-spin-button { + height: auto; +} +[type='search'] { + outline-offset: -2px; + -webkit-appearance: textfield; +} +::-webkit-search-decoration { + -webkit-appearance: none; +} +::-webkit-color-swatch-wrapper { + padding: 0; +} +::file-selector-button { + font: inherit; +} +::-webkit-file-upload-button { + font: inherit; + -webkit-appearance: button; +} +output { + display: inline-block; +} +iframe { + border: 0; +} +summary { + display: list-item; + cursor: pointer; +} +progress { + vertical-align: baseline; +} +[hidden] { + display: none !important; +} +.lead { + font-size: 1.25rem; + font-weight: 300; +} +.display-1 { + font-size: calc(1.625rem + 4.5vw); + font-weight: 300; + line-height: 1.2; +} +@media (min-width: 1200px) { + .display-1 { + font-size: 5rem; + } +} +.display-2 { + font-size: calc(1.575rem + 3.9vw); + font-weight: 300; + line-height: 1.2; +} +@media (min-width: 1200px) { + .display-2 { + font-size: 4.5rem; + } +} +.display-3 { + font-size: calc(1.525rem + 3.3vw); + font-weight: 300; + line-height: 1.2; +} +@media (min-width: 1200px) { + .display-3 { + font-size: 4rem; + } +} +.display-4 { + font-size: calc(1.475rem + 2.7vw); + font-weight: 300; + line-height: 1.2; +} +@media (min-width: 1200px) { + .display-4 { + font-size: 3.5rem; + } +} +.display-5 { + font-size: calc(1.425rem + 2.1vw); + font-weight: 300; + line-height: 1.2; +} +@media (min-width: 1200px) { + .display-5 { + font-size: 3rem; + } +} +.display-6 { + font-size: calc(1.375rem + 1.5vw); + font-weight: 300; + line-height: 1.2; +} +@media (min-width: 1200px) { + .display-6 { + font-size: 2.5rem; + } +} +.list-unstyled { + padding-left: 0; + list-style: none; +} +.list-inline { + padding-left: 0; + list-style: none; +} +.list-inline-item { + display: inline-block; +} +.list-inline-item:not(:last-child) { + margin-right: 0.5rem; +} +.initialism { + font-size: 0.875em; + text-transform: uppercase; +} +.blockquote { + margin-bottom: 1rem; + font-size: 1.25rem; +} +.blockquote > :last-child { + margin-bottom: 0; +} +.blockquote-footer { + margin-top: -1rem; + margin-bottom: 1rem; + font-size: 0.875em; + color: #6c757d; +} +.blockquote-footer::before { + content: '— '; +} +.img-fluid { + max-width: 100%; + height: auto; +} +.img-thumbnail { + padding: 0.25rem; + background-color: #fff; + border: 1px solid #dee2e6; + border-radius: 0.25rem; + max-width: 100%; + height: auto; +} +.figure { + display: inline-block; +} +.figure-img { + margin-bottom: 0.5rem; + line-height: 1; +} +.figure-caption { + font-size: 0.875em; + color: #6c757d; +} +.container, +.container-fluid, +.container-lg, +.container-md, +.container-sm, +.container-xl, +.container-xxl { + width: 100%; + padding-right: var(--bs-gutter-x, 0.75rem); + padding-left: var(--bs-gutter-x, 0.75rem); + margin-right: auto; + margin-left: auto; +} +@media (min-width: 576px) { + .container, + .container-sm { + max-width: 540px; + } +} +@media (min-width: 768px) { + .container, + .container-md, + .container-sm { + max-width: 720px; + } +} +@media (min-width: 992px) { + .container, + .container-lg, + .container-md, + .container-sm { + max-width: 960px; + } +} +@media (min-width: 1200px) { + .container, + .container-lg, + .container-md, + .container-sm, + .container-xl { + max-width: 1140px; + } +} +@media (min-width: 1400px) { + .container, + .container-lg, + .container-md, + .container-sm, + .container-xl, + .container-xxl { + max-width: 1320px; + } +} +.row { + --bs-gutter-x: 1.5rem; + --bs-gutter-y: 0; + display: flex; + flex-wrap: wrap; + margin-top: calc(var(--bs-gutter-y) * -1); + margin-right: calc(var(--bs-gutter-x) * -0.5); + margin-left: calc(var(--bs-gutter-x) * -0.5); +} +.row > * { + flex-shrink: 0; + width: 100%; + max-width: 100%; + padding-right: calc(var(--bs-gutter-x) * 0.5); + padding-left: calc(var(--bs-gutter-x) * 0.5); + margin-top: var(--bs-gutter-y); +} +.col { + flex: 1 0 0%; +} +.row-cols-auto > * { + flex: 0 0 auto; + width: auto; +} +.row-cols-1 > * { + flex: 0 0 auto; + width: 100%; +} +.row-cols-2 > * { + flex: 0 0 auto; + width: 50%; +} +.row-cols-3 > * { + flex: 0 0 auto; + width: 33.3333333333%; +} +.row-cols-4 > * { + flex: 0 0 auto; + width: 25%; +} +.row-cols-5 > * { + flex: 0 0 auto; + width: 20%; +} +.row-cols-6 > * { + flex: 0 0 auto; + width: 16.6666666667%; +} +@media (min-width: 576px) { + .col-sm { + flex: 1 0 0%; + } + .row-cols-sm-auto > * { + flex: 0 0 auto; + width: auto; + } + .row-cols-sm-1 > * { + flex: 0 0 auto; + width: 100%; + } + .row-cols-sm-2 > * { + flex: 0 0 auto; + width: 50%; + } + .row-cols-sm-3 > * { + flex: 0 0 auto; + width: 33.3333333333%; + } + .row-cols-sm-4 > * { + flex: 0 0 auto; + width: 25%; + } + .row-cols-sm-5 > * { + flex: 0 0 auto; + width: 20%; + } + .row-cols-sm-6 > * { + flex: 0 0 auto; + width: 16.6666666667%; + } +} +@media (min-width: 768px) { + .col-md { + flex: 1 0 0%; + } + .row-cols-md-auto > * { + flex: 0 0 auto; + width: auto; + } + .row-cols-md-1 > * { + flex: 0 0 auto; + width: 100%; + } + .row-cols-md-2 > * { + flex: 0 0 auto; + width: 50%; + } + .row-cols-md-3 > * { + flex: 0 0 auto; + width: 33.3333333333%; + } + .row-cols-md-4 > * { + flex: 0 0 auto; + width: 25%; + } + .row-cols-md-5 > * { + flex: 0 0 auto; + width: 20%; + } + .row-cols-md-6 > * { + flex: 0 0 auto; + width: 16.6666666667%; + } +} +@media (min-width: 992px) { + .col-lg { + flex: 1 0 0%; + } + .row-cols-lg-auto > * { + flex: 0 0 auto; + width: auto; + } + .row-cols-lg-1 > * { + flex: 0 0 auto; + width: 100%; + } + .row-cols-lg-2 > * { + flex: 0 0 auto; + width: 50%; + } + .row-cols-lg-3 > * { + flex: 0 0 auto; + width: 33.3333333333%; + } + .row-cols-lg-4 > * { + flex: 0 0 auto; + width: 25%; + } + .row-cols-lg-5 > * { + flex: 0 0 auto; + width: 20%; + } + .row-cols-lg-6 > * { + flex: 0 0 auto; + width: 16.6666666667%; + } +} +@media (min-width: 1200px) { + .col-xl { + flex: 1 0 0%; + } + .row-cols-xl-auto > * { + flex: 0 0 auto; + width: auto; + } + .row-cols-xl-1 > * { + flex: 0 0 auto; + width: 100%; + } + .row-cols-xl-2 > * { + flex: 0 0 auto; + width: 50%; + } + .row-cols-xl-3 > * { + flex: 0 0 auto; + width: 33.3333333333%; + } + .row-cols-xl-4 > * { + flex: 0 0 auto; + width: 25%; + } + .row-cols-xl-5 > * { + flex: 0 0 auto; + width: 20%; + } + .row-cols-xl-6 > * { + flex: 0 0 auto; + width: 16.6666666667%; + } +} +@media (min-width: 1400px) { + .col-xxl { + flex: 1 0 0%; + } + .row-cols-xxl-auto > * { + flex: 0 0 auto; + width: auto; + } + .row-cols-xxl-1 > * { + flex: 0 0 auto; + width: 100%; + } + .row-cols-xxl-2 > * { + flex: 0 0 auto; + width: 50%; + } + .row-cols-xxl-3 > * { + flex: 0 0 auto; + width: 33.3333333333%; + } + .row-cols-xxl-4 > * { + flex: 0 0 auto; + width: 25%; + } + .row-cols-xxl-5 > * { + flex: 0 0 auto; + width: 20%; + } + .row-cols-xxl-6 > * { + flex: 0 0 auto; + width: 16.6666666667%; + } +} +.col-auto { + flex: 0 0 auto; + width: auto; +} +.col-1 { + flex: 0 0 auto; + width: 8.33333333%; +} +.col-2 { + flex: 0 0 auto; + width: 16.66666667%; +} +.col-3 { + flex: 0 0 auto; + width: 25%; +} +.col-4 { + flex: 0 0 auto; + width: 33.33333333%; +} +.col-5 { + flex: 0 0 auto; + width: 41.66666667%; +} +.col-6 { + flex: 0 0 auto; + width: 50%; +} +.col-7 { + flex: 0 0 auto; + width: 58.33333333%; +} +.col-8 { + flex: 0 0 auto; + width: 66.66666667%; +} +.col-9 { + flex: 0 0 auto; + width: 75%; +} +.col-10 { + flex: 0 0 auto; + width: 83.33333333%; +} +.col-11 { + flex: 0 0 auto; + width: 91.66666667%; +} +.col-12 { + flex: 0 0 auto; + width: 100%; +} +.offset-1 { + margin-left: 8.33333333%; +} +.offset-2 { + margin-left: 16.66666667%; +} +.offset-3 { + margin-left: 25%; +} +.offset-4 { + margin-left: 33.33333333%; +} +.offset-5 { + margin-left: 41.66666667%; +} +.offset-6 { + margin-left: 50%; +} +.offset-7 { + margin-left: 58.33333333%; +} +.offset-8 { + margin-left: 66.66666667%; +} +.offset-9 { + margin-left: 75%; +} +.offset-10 { + margin-left: 83.33333333%; +} +.offset-11 { + margin-left: 91.66666667%; +} +.g-0, +.gx-0 { + --bs-gutter-x: 0; +} +.g-0, +.gy-0 { + --bs-gutter-y: 0; +} +.g-1, +.gx-1 { + --bs-gutter-x: 0.25rem; +} +.g-1, +.gy-1 { + --bs-gutter-y: 0.25rem; +} +.g-2, +.gx-2 { + --bs-gutter-x: 0.5rem; +} +.g-2, +.gy-2 { + --bs-gutter-y: 0.5rem; +} +.g-3, +.gx-3 { + --bs-gutter-x: 1rem; +} +.g-3, +.gy-3 { + --bs-gutter-y: 1rem; +} +.g-4, +.gx-4 { + --bs-gutter-x: 1.5rem; +} +.g-4, +.gy-4 { + --bs-gutter-y: 1.5rem; +} +.g-5, +.gx-5 { + --bs-gutter-x: 3rem; +} +.g-5, +.gy-5 { + --bs-gutter-y: 3rem; +} +@media (min-width: 576px) { + .col-sm-auto { + flex: 0 0 auto; + width: auto; + } + .col-sm-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + .col-sm-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-sm-3 { + flex: 0 0 auto; + width: 25%; + } + .col-sm-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-sm-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-sm-6 { + flex: 0 0 auto; + width: 50%; + } + .col-sm-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + .col-sm-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + .col-sm-9 { + flex: 0 0 auto; + width: 75%; + } + .col-sm-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + .col-sm-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + .col-sm-12 { + flex: 0 0 auto; + width: 100%; + } + .offset-sm-0 { + margin-left: 0; + } + .offset-sm-1 { + margin-left: 8.33333333%; + } + .offset-sm-2 { + margin-left: 16.66666667%; + } + .offset-sm-3 { + margin-left: 25%; + } + .offset-sm-4 { + margin-left: 33.33333333%; + } + .offset-sm-5 { + margin-left: 41.66666667%; + } + .offset-sm-6 { + margin-left: 50%; + } + .offset-sm-7 { + margin-left: 58.33333333%; + } + .offset-sm-8 { + margin-left: 66.66666667%; + } + .offset-sm-9 { + margin-left: 75%; + } + .offset-sm-10 { + margin-left: 83.33333333%; + } + .offset-sm-11 { + margin-left: 91.66666667%; + } + .g-sm-0, + .gx-sm-0 { + --bs-gutter-x: 0; + } + .g-sm-0, + .gy-sm-0 { + --bs-gutter-y: 0; + } + .g-sm-1, + .gx-sm-1 { + --bs-gutter-x: 0.25rem; + } + .g-sm-1, + .gy-sm-1 { + --bs-gutter-y: 0.25rem; + } + .g-sm-2, + .gx-sm-2 { + --bs-gutter-x: 0.5rem; + } + .g-sm-2, + .gy-sm-2 { + --bs-gutter-y: 0.5rem; + } + .g-sm-3, + .gx-sm-3 { + --bs-gutter-x: 1rem; + } + .g-sm-3, + .gy-sm-3 { + --bs-gutter-y: 1rem; + } + .g-sm-4, + .gx-sm-4 { + --bs-gutter-x: 1.5rem; + } + .g-sm-4, + .gy-sm-4 { + --bs-gutter-y: 1.5rem; + } + .g-sm-5, + .gx-sm-5 { + --bs-gutter-x: 3rem; + } + .g-sm-5, + .gy-sm-5 { + --bs-gutter-y: 3rem; + } +} +@media (min-width: 768px) { + .col-md-auto { + flex: 0 0 auto; + width: auto; + } + .col-md-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + .col-md-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-md-3 { + flex: 0 0 auto; + width: 25%; + } + .col-md-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-md-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-md-6 { + flex: 0 0 auto; + width: 50%; + } + .col-md-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + .col-md-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + .col-md-9 { + flex: 0 0 auto; + width: 75%; + } + .col-md-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + .col-md-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + .col-md-12 { + flex: 0 0 auto; + width: 100%; + } + .offset-md-0 { + margin-left: 0; + } + .offset-md-1 { + margin-left: 8.33333333%; + } + .offset-md-2 { + margin-left: 16.66666667%; + } + .offset-md-3 { + margin-left: 25%; + } + .offset-md-4 { + margin-left: 33.33333333%; + } + .offset-md-5 { + margin-left: 41.66666667%; + } + .offset-md-6 { + margin-left: 50%; + } + .offset-md-7 { + margin-left: 58.33333333%; + } + .offset-md-8 { + margin-left: 66.66666667%; + } + .offset-md-9 { + margin-left: 75%; + } + .offset-md-10 { + margin-left: 83.33333333%; + } + .offset-md-11 { + margin-left: 91.66666667%; + } + .g-md-0, + .gx-md-0 { + --bs-gutter-x: 0; + } + .g-md-0, + .gy-md-0 { + --bs-gutter-y: 0; + } + .g-md-1, + .gx-md-1 { + --bs-gutter-x: 0.25rem; + } + .g-md-1, + .gy-md-1 { + --bs-gutter-y: 0.25rem; + } + .g-md-2, + .gx-md-2 { + --bs-gutter-x: 0.5rem; + } + .g-md-2, + .gy-md-2 { + --bs-gutter-y: 0.5rem; + } + .g-md-3, + .gx-md-3 { + --bs-gutter-x: 1rem; + } + .g-md-3, + .gy-md-3 { + --bs-gutter-y: 1rem; + } + .g-md-4, + .gx-md-4 { + --bs-gutter-x: 1.5rem; + } + .g-md-4, + .gy-md-4 { + --bs-gutter-y: 1.5rem; + } + .g-md-5, + .gx-md-5 { + --bs-gutter-x: 3rem; + } + .g-md-5, + .gy-md-5 { + --bs-gutter-y: 3rem; + } +} +@media (min-width: 992px) { + .col-lg-auto { + flex: 0 0 auto; + width: auto; + } + .col-lg-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + .col-lg-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-lg-3 { + flex: 0 0 auto; + width: 25%; + } + .col-lg-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-lg-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-lg-6 { + flex: 0 0 auto; + width: 50%; + } + .col-lg-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + .col-lg-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + .col-lg-9 { + flex: 0 0 auto; + width: 75%; + } + .col-lg-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + .col-lg-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + .col-lg-12 { + flex: 0 0 auto; + width: 100%; + } + .offset-lg-0 { + margin-left: 0; + } + .offset-lg-1 { + margin-left: 8.33333333%; + } + .offset-lg-2 { + margin-left: 16.66666667%; + } + .offset-lg-3 { + margin-left: 25%; + } + .offset-lg-4 { + margin-left: 33.33333333%; + } + .offset-lg-5 { + margin-left: 41.66666667%; + } + .offset-lg-6 { + margin-left: 50%; + } + .offset-lg-7 { + margin-left: 58.33333333%; + } + .offset-lg-8 { + margin-left: 66.66666667%; + } + .offset-lg-9 { + margin-left: 75%; + } + .offset-lg-10 { + margin-left: 83.33333333%; + } + .offset-lg-11 { + margin-left: 91.66666667%; + } + .g-lg-0, + .gx-lg-0 { + --bs-gutter-x: 0; + } + .g-lg-0, + .gy-lg-0 { + --bs-gutter-y: 0; + } + .g-lg-1, + .gx-lg-1 { + --bs-gutter-x: 0.25rem; + } + .g-lg-1, + .gy-lg-1 { + --bs-gutter-y: 0.25rem; + } + .g-lg-2, + .gx-lg-2 { + --bs-gutter-x: 0.5rem; + } + .g-lg-2, + .gy-lg-2 { + --bs-gutter-y: 0.5rem; + } + .g-lg-3, + .gx-lg-3 { + --bs-gutter-x: 1rem; + } + .g-lg-3, + .gy-lg-3 { + --bs-gutter-y: 1rem; + } + .g-lg-4, + .gx-lg-4 { + --bs-gutter-x: 1.5rem; + } + .g-lg-4, + .gy-lg-4 { + --bs-gutter-y: 1.5rem; + } + .g-lg-5, + .gx-lg-5 { + --bs-gutter-x: 3rem; + } + .g-lg-5, + .gy-lg-5 { + --bs-gutter-y: 3rem; + } +} +@media (min-width: 1200px) { + .col-xl-auto { + flex: 0 0 auto; + width: auto; + } + .col-xl-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + .col-xl-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-xl-3 { + flex: 0 0 auto; + width: 25%; + } + .col-xl-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-xl-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-xl-6 { + flex: 0 0 auto; + width: 50%; + } + .col-xl-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + .col-xl-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + .col-xl-9 { + flex: 0 0 auto; + width: 75%; + } + .col-xl-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + .col-xl-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + .col-xl-12 { + flex: 0 0 auto; + width: 100%; + } + .offset-xl-0 { + margin-left: 0; + } + .offset-xl-1 { + margin-left: 8.33333333%; + } + .offset-xl-2 { + margin-left: 16.66666667%; + } + .offset-xl-3 { + margin-left: 25%; + } + .offset-xl-4 { + margin-left: 33.33333333%; + } + .offset-xl-5 { + margin-left: 41.66666667%; + } + .offset-xl-6 { + margin-left: 50%; + } + .offset-xl-7 { + margin-left: 58.33333333%; + } + .offset-xl-8 { + margin-left: 66.66666667%; + } + .offset-xl-9 { + margin-left: 75%; + } + .offset-xl-10 { + margin-left: 83.33333333%; + } + .offset-xl-11 { + margin-left: 91.66666667%; + } + .g-xl-0, + .gx-xl-0 { + --bs-gutter-x: 0; + } + .g-xl-0, + .gy-xl-0 { + --bs-gutter-y: 0; + } + .g-xl-1, + .gx-xl-1 { + --bs-gutter-x: 0.25rem; + } + .g-xl-1, + .gy-xl-1 { + --bs-gutter-y: 0.25rem; + } + .g-xl-2, + .gx-xl-2 { + --bs-gutter-x: 0.5rem; + } + .g-xl-2, + .gy-xl-2 { + --bs-gutter-y: 0.5rem; + } + .g-xl-3, + .gx-xl-3 { + --bs-gutter-x: 1rem; + } + .g-xl-3, + .gy-xl-3 { + --bs-gutter-y: 1rem; + } + .g-xl-4, + .gx-xl-4 { + --bs-gutter-x: 1.5rem; + } + .g-xl-4, + .gy-xl-4 { + --bs-gutter-y: 1.5rem; + } + .g-xl-5, + .gx-xl-5 { + --bs-gutter-x: 3rem; + } + .g-xl-5, + .gy-xl-5 { + --bs-gutter-y: 3rem; + } +} +@media (min-width: 1400px) { + .col-xxl-auto { + flex: 0 0 auto; + width: auto; + } + .col-xxl-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + .col-xxl-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-xxl-3 { + flex: 0 0 auto; + width: 25%; + } + .col-xxl-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-xxl-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-xxl-6 { + flex: 0 0 auto; + width: 50%; + } + .col-xxl-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + .col-xxl-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + .col-xxl-9 { + flex: 0 0 auto; + width: 75%; + } + .col-xxl-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + .col-xxl-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + .col-xxl-12 { + flex: 0 0 auto; + width: 100%; + } + .offset-xxl-0 { + margin-left: 0; + } + .offset-xxl-1 { + margin-left: 8.33333333%; + } + .offset-xxl-2 { + margin-left: 16.66666667%; + } + .offset-xxl-3 { + margin-left: 25%; + } + .offset-xxl-4 { + margin-left: 33.33333333%; + } + .offset-xxl-5 { + margin-left: 41.66666667%; + } + .offset-xxl-6 { + margin-left: 50%; + } + .offset-xxl-7 { + margin-left: 58.33333333%; + } + .offset-xxl-8 { + margin-left: 66.66666667%; + } + .offset-xxl-9 { + margin-left: 75%; + } + .offset-xxl-10 { + margin-left: 83.33333333%; + } + .offset-xxl-11 { + margin-left: 91.66666667%; + } + .g-xxl-0, + .gx-xxl-0 { + --bs-gutter-x: 0; + } + .g-xxl-0, + .gy-xxl-0 { + --bs-gutter-y: 0; + } + .g-xxl-1, + .gx-xxl-1 { + --bs-gutter-x: 0.25rem; + } + .g-xxl-1, + .gy-xxl-1 { + --bs-gutter-y: 0.25rem; + } + .g-xxl-2, + .gx-xxl-2 { + --bs-gutter-x: 0.5rem; + } + .g-xxl-2, + .gy-xxl-2 { + --bs-gutter-y: 0.5rem; + } + .g-xxl-3, + .gx-xxl-3 { + --bs-gutter-x: 1rem; + } + .g-xxl-3, + .gy-xxl-3 { + --bs-gutter-y: 1rem; + } + .g-xxl-4, + .gx-xxl-4 { + --bs-gutter-x: 1.5rem; + } + .g-xxl-4, + .gy-xxl-4 { + --bs-gutter-y: 1.5rem; + } + .g-xxl-5, + .gx-xxl-5 { + --bs-gutter-x: 3rem; + } + .g-xxl-5, + .gy-xxl-5 { + --bs-gutter-y: 3rem; + } +} +.table { + --bs-table-bg: transparent; + --bs-table-accent-bg: transparent; + --bs-table-striped-color: #212529; + --bs-table-striped-bg: rgba(0, 0, 0, 0.05); + --bs-table-active-color: #212529; + --bs-table-active-bg: rgba(0, 0, 0, 0.1); + --bs-table-hover-color: #212529; + --bs-table-hover-bg: rgba(0, 0, 0, 0.075); + width: 100%; + margin-bottom: 1rem; + color: #212529; + vertical-align: top; + border-color: #dee2e6; +} +.table > :not(caption) > * > * { + padding: 0.5rem 0.5rem; + background-color: var(--bs-table-bg); + border-bottom-width: 1px; + box-shadow: inset 0 0 0 9999px var(--bs-table-accent-bg); +} +.table > tbody { + vertical-align: inherit; +} +.table > thead { + vertical-align: bottom; +} +.table > :not(:last-child) > :last-child > * { + border-bottom-color: currentColor; +} +.caption-top { + caption-side: top; +} +.table-sm > :not(caption) > * > * { + padding: 0.25rem 0.25rem; +} +.table-bordered > :not(caption) > * { + border-width: 1px 0; +} +.table-bordered > :not(caption) > * > * { + border-width: 0 1px; +} +.table-borderless > :not(caption) > * > * { + border-bottom-width: 0; +} +.table-striped > tbody > tr:nth-of-type(odd) { + --bs-table-accent-bg: var(--bs-table-striped-bg); + color: var(--bs-table-striped-color); +} +.table-active { + --bs-table-accent-bg: var(--bs-table-active-bg); + color: var(--bs-table-active-color); +} +.table-hover > tbody > tr:hover { + --bs-table-accent-bg: var(--bs-table-hover-bg); + color: var(--bs-table-hover-color); +} +.table-primary { + --bs-table-bg: #cfe2ff; + --bs-table-striped-bg: #c5d7f2; + --bs-table-striped-color: #000; + --bs-table-active-bg: #bacbe6; + --bs-table-active-color: #000; + --bs-table-hover-bg: #bfd1ec; + --bs-table-hover-color: #000; + color: #000; + border-color: #bacbe6; +} +.table-secondary { + --bs-table-bg: #e2e3e5; + --bs-table-striped-bg: #d7d8da; + --bs-table-striped-color: #000; + --bs-table-active-bg: #cbccce; + --bs-table-active-color: #000; + --bs-table-hover-bg: #d1d2d4; + --bs-table-hover-color: #000; + color: #000; + border-color: #cbccce; +} +.table-success { + --bs-table-bg: #d1e7dd; + --bs-table-striped-bg: #c7dbd2; + --bs-table-striped-color: #000; + --bs-table-active-bg: #bcd0c7; + --bs-table-active-color: #000; + --bs-table-hover-bg: #c1d6cc; + --bs-table-hover-color: #000; + color: #000; + border-color: #bcd0c7; +} +.table-info { + --bs-table-bg: #cff4fc; + --bs-table-striped-bg: #c5e8ef; + --bs-table-striped-color: #000; + --bs-table-active-bg: #badce3; + --bs-table-active-color: #000; + --bs-table-hover-bg: #bfe2e9; + --bs-table-hover-color: #000; + color: #000; + border-color: #badce3; +} +.table-warning { + --bs-table-bg: #fff3cd; + --bs-table-striped-bg: #f2e7c3; + --bs-table-striped-color: #000; + --bs-table-active-bg: #e6dbb9; + --bs-table-active-color: #000; + --bs-table-hover-bg: #ece1be; + --bs-table-hover-color: #000; + color: #000; + border-color: #e6dbb9; +} +.table-danger { + --bs-table-bg: #f8d7da; + --bs-table-striped-bg: #eccccf; + --bs-table-striped-color: #000; + --bs-table-active-bg: #dfc2c4; + --bs-table-active-color: #000; + --bs-table-hover-bg: #e5c7ca; + --bs-table-hover-color: #000; + color: #000; + border-color: #dfc2c4; +} +.table-light { + --bs-table-bg: #f8f9fa; + --bs-table-striped-bg: #ecedee; + --bs-table-striped-color: #000; + --bs-table-active-bg: #dfe0e1; + --bs-table-active-color: #000; + --bs-table-hover-bg: #e5e6e7; + --bs-table-hover-color: #000; + color: #000; + border-color: #dfe0e1; +} +.table-dark { + --bs-table-bg: #212529; + --bs-table-striped-bg: #2c3034; + --bs-table-striped-color: #fff; + --bs-table-active-bg: #373b3e; + --bs-table-active-color: #fff; + --bs-table-hover-bg: #323539; + --bs-table-hover-color: #fff; + color: #fff; + border-color: #373b3e; +} +.table-responsive { + overflow-x: auto; + -webkit-overflow-scrolling: touch; +} +@media (max-width: 575.98px) { + .table-responsive-sm { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} +@media (max-width: 767.98px) { + .table-responsive-md { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} +@media (max-width: 991.98px) { + .table-responsive-lg { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} +@media (max-width: 1199.98px) { + .table-responsive-xl { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} +@media (max-width: 1399.98px) { + .table-responsive-xxl { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} +.form-label { + margin-bottom: 0.5rem; +} +.col-form-label { + padding-top: calc(0.375rem + 1px); + padding-bottom: calc(0.375rem + 1px); + margin-bottom: 0; + font-size: inherit; + line-height: 1.5; +} +.col-form-label-lg { + padding-top: calc(0.5rem + 1px); + padding-bottom: calc(0.5rem + 1px); + font-size: 1.25rem; +} +.col-form-label-sm { + padding-top: calc(0.25rem + 1px); + padding-bottom: calc(0.25rem + 1px); + font-size: 0.875rem; +} +.form-text { + margin-top: 0.25rem; + font-size: 0.875em; + color: #6c757d; +} +.form-control { + display: block; + width: 100%; + padding: 0.375rem 0.75rem; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #212529; + background-color: #fff; + background-clip: padding-box; + border: 1px solid #ced4da; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + border-radius: 0.25rem; + transition: + border-color 0.15s ease-in-out, + box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .form-control { + transition: none; + } +} +.form-control[type='file'] { + overflow: hidden; +} +.form-control[type='file']:not(:disabled):not([readonly]) { + cursor: pointer; +} +.form-control:focus { + color: #212529; + background-color: #fff; + border-color: #86b7fe; + outline: 0; + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} +.form-control::-webkit-date-and-time-value { + height: 1.5em; +} +.form-control::-moz-placeholder { + color: #6c757d; + opacity: 1; +} +.form-control::placeholder { + color: #6c757d; + opacity: 1; +} +.form-control:disabled, +.form-control[readonly] { + background-color: #e9ecef; + opacity: 1; +} +.form-control::file-selector-button { + padding: 0.375rem 0.75rem; + margin: -0.375rem -0.75rem; + -webkit-margin-end: 0.75rem; + margin-inline-end: 0.75rem; + color: #212529; + background-color: #e9ecef; + pointer-events: none; + border-color: inherit; + border-style: solid; + border-width: 0; + border-inline-end-width: 1px; + border-radius: 0; + transition: + color 0.15s ease-in-out, + background-color 0.15s ease-in-out, + border-color 0.15s ease-in-out, + box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .form-control::file-selector-button { + transition: none; + } +} +.form-control:hover:not(:disabled):not([readonly])::file-selector-button { + background-color: #dde0e3; +} +.form-control::-webkit-file-upload-button { + padding: 0.375rem 0.75rem; + margin: -0.375rem -0.75rem; + -webkit-margin-end: 0.75rem; + margin-inline-end: 0.75rem; + color: #212529; + background-color: #e9ecef; + pointer-events: none; + border-color: inherit; + border-style: solid; + border-width: 0; + border-inline-end-width: 1px; + border-radius: 0; + -webkit-transition: + color 0.15s ease-in-out, + background-color 0.15s ease-in-out, + border-color 0.15s ease-in-out, + box-shadow 0.15s ease-in-out; + transition: + color 0.15s ease-in-out, + background-color 0.15s ease-in-out, + border-color 0.15s ease-in-out, + box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .form-control::-webkit-file-upload-button { + -webkit-transition: none; + transition: none; + } +} +.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button { + background-color: #dde0e3; +} +.form-control-plaintext { + display: block; + width: 100%; + padding: 0.375rem 0; + margin-bottom: 0; + line-height: 1.5; + color: #212529; + background-color: transparent; + border: solid transparent; + border-width: 1px 0; +} +.form-control-plaintext.form-control-lg, +.form-control-plaintext.form-control-sm { + padding-right: 0; + padding-left: 0; +} +.form-control-sm { + min-height: calc(1.5em + (0.5rem + 2px)); + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + border-radius: 0.2rem; +} +.form-control-sm::file-selector-button { + padding: 0.25rem 0.5rem; + margin: -0.25rem -0.5rem; + -webkit-margin-end: 0.5rem; + margin-inline-end: 0.5rem; +} +.form-control-sm::-webkit-file-upload-button { + padding: 0.25rem 0.5rem; + margin: -0.25rem -0.5rem; + -webkit-margin-end: 0.5rem; + margin-inline-end: 0.5rem; +} +.form-control-lg { + min-height: calc(1.5em + (1rem + 2px)); + padding: 0.5rem 1rem; + font-size: 1.25rem; + border-radius: 0.3rem; +} +.form-control-lg::file-selector-button { + padding: 0.5rem 1rem; + margin: -0.5rem -1rem; + -webkit-margin-end: 1rem; + margin-inline-end: 1rem; +} +.form-control-lg::-webkit-file-upload-button { + padding: 0.5rem 1rem; + margin: -0.5rem -1rem; + -webkit-margin-end: 1rem; + margin-inline-end: 1rem; +} +textarea.form-control { + min-height: calc(1.5em + (0.75rem + 2px)); +} +textarea.form-control-sm { + min-height: calc(1.5em + (0.5rem + 2px)); +} +textarea.form-control-lg { + min-height: calc(1.5em + (1rem + 2px)); +} +.form-control-color { + max-width: 3rem; + height: auto; + padding: 0.375rem; +} +.form-control-color:not(:disabled):not([readonly]) { + cursor: pointer; +} +.form-control-color::-moz-color-swatch { + height: 1.5em; + border-radius: 0.25rem; +} +.form-control-color::-webkit-color-swatch { + height: 1.5em; + border-radius: 0.25rem; +} +.form-select { + display: block; + width: 100%; + padding: 0.375rem 2.25rem 0.375rem 0.75rem; + -moz-padding-start: calc(0.75rem - 3px); + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #212529; + background-color: #fff; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right 0.75rem center; + background-size: 16px 12px; + border: 1px solid #ced4da; + border-radius: 0.25rem; + transition: + border-color 0.15s ease-in-out, + box-shadow 0.15s ease-in-out; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} +@media (prefers-reduced-motion: reduce) { + .form-select { + transition: none; + } +} +.form-select:focus { + border-color: #86b7fe; + outline: 0; + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} +.form-select[multiple], +.form-select[size]:not([size='1']) { + padding-right: 0.75rem; + background-image: none; +} +.form-select:disabled { + background-color: #e9ecef; +} +.form-select:-moz-focusring { + color: transparent; + text-shadow: 0 0 0 #212529; +} +.form-select-sm { + padding-top: 0.25rem; + padding-bottom: 0.25rem; + padding-left: 0.5rem; + font-size: 0.875rem; +} +.form-select-lg { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + padding-left: 1rem; + font-size: 1.25rem; +} +.form-check { + display: block; + min-height: 1.5rem; + padding-left: 1.5em; + margin-bottom: 0.125rem; +} +.form-check .form-check-input { + float: left; + margin-left: -1.5em; +} +.form-check-input { + width: 1em; + height: 1em; + margin-top: 0.25em; + vertical-align: top; + background-color: #fff; + background-repeat: no-repeat; + background-position: center; + background-size: contain; + border: 1px solid rgba(0, 0, 0, 0.25); + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + -webkit-print-color-adjust: exact; + color-adjust: exact; +} +.form-check-input[type='checkbox'] { + border-radius: 0.25em; +} +.form-check-input[type='radio'] { + border-radius: 50%; +} +.form-check-input:active { + filter: brightness(90%); +} +.form-check-input:focus { + border-color: #86b7fe; + outline: 0; + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} +.form-check-input:checked { + background-color: #0d6efd; + border-color: #0d6efd; +} +.form-check-input:checked[type='checkbox'] { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/%3e%3c/svg%3e"); +} +.form-check-input:checked[type='radio'] { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e"); +} +.form-check-input[type='checkbox']:indeterminate { + background-color: #0d6efd; + border-color: #0d6efd; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e"); +} +.form-check-input:disabled { + pointer-events: none; + filter: none; + opacity: 0.5; +} +.form-check-input:disabled ~ .form-check-label, +.form-check-input[disabled] ~ .form-check-label { + opacity: 0.5; +} +.form-switch { + padding-left: 2.5em; +} +.form-switch .form-check-input { + width: 2em; + margin-left: -2.5em; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e"); + background-position: left center; + border-radius: 2em; + transition: background-position 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .form-switch .form-check-input { + transition: none; + } +} +.form-switch .form-check-input:focus { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e"); +} +.form-switch .form-check-input:checked { + background-position: right center; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e"); +} +.form-check-inline { + display: inline-block; + margin-right: 1rem; +} +.btn-check { + position: absolute; + clip: rect(0, 0, 0, 0); + pointer-events: none; +} +.btn-check:disabled + .btn, +.btn-check[disabled] + .btn { + pointer-events: none; + filter: none; + opacity: 0.65; +} +.form-range { + width: 100%; + height: 1.5rem; + padding: 0; + background-color: transparent; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} +.form-range:focus { + outline: 0; +} +.form-range:focus::-webkit-slider-thumb { + box-shadow: + 0 0 0 1px #fff, + 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} +.form-range:focus::-moz-range-thumb { + box-shadow: + 0 0 0 1px #fff, + 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} +.form-range::-moz-focus-outer { + border: 0; +} +.form-range::-webkit-slider-thumb { + width: 1rem; + height: 1rem; + margin-top: -0.25rem; + background-color: #0d6efd; + border: 0; + border-radius: 1rem; + -webkit-transition: + background-color 0.15s ease-in-out, + border-color 0.15s ease-in-out, + box-shadow 0.15s ease-in-out; + transition: + background-color 0.15s ease-in-out, + border-color 0.15s ease-in-out, + box-shadow 0.15s ease-in-out; + -webkit-appearance: none; + appearance: none; +} +@media (prefers-reduced-motion: reduce) { + .form-range::-webkit-slider-thumb { + -webkit-transition: none; + transition: none; + } +} +.form-range::-webkit-slider-thumb:active { + background-color: #b6d4fe; +} +.form-range::-webkit-slider-runnable-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: #dee2e6; + border-color: transparent; + border-radius: 1rem; +} +.form-range::-moz-range-thumb { + width: 1rem; + height: 1rem; + background-color: #0d6efd; + border: 0; + border-radius: 1rem; + -moz-transition: + background-color 0.15s ease-in-out, + border-color 0.15s ease-in-out, + box-shadow 0.15s ease-in-out; + transition: + background-color 0.15s ease-in-out, + border-color 0.15s ease-in-out, + box-shadow 0.15s ease-in-out; + -moz-appearance: none; + appearance: none; +} +@media (prefers-reduced-motion: reduce) { + .form-range::-moz-range-thumb { + -moz-transition: none; + transition: none; + } +} +.form-range::-moz-range-thumb:active { + background-color: #b6d4fe; +} +.form-range::-moz-range-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: #dee2e6; + border-color: transparent; + border-radius: 1rem; +} +.form-range:disabled { + pointer-events: none; +} +.form-range:disabled::-webkit-slider-thumb { + background-color: #adb5bd; +} +.form-range:disabled::-moz-range-thumb { + background-color: #adb5bd; +} +.form-floating { + position: relative; +} +.form-floating > .form-control, +.form-floating > .form-select { + height: calc(3.5rem + 2px); + line-height: 1.25; +} +.form-floating > label { + position: absolute; + top: 0; + left: 0; + height: 100%; + padding: 1rem 0.75rem; + pointer-events: none; + border: 1px solid transparent; + transform-origin: 0 0; + transition: + opacity 0.1s ease-in-out, + transform 0.1s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .form-floating > label { + transition: none; + } +} +.form-floating > .form-control { + padding: 1rem 0.75rem; +} +.form-floating > .form-control::-moz-placeholder { + color: transparent; +} +.form-floating > .form-control::placeholder { + color: transparent; +} +.form-floating > .form-control:not(:-moz-placeholder-shown) { + padding-top: 1.625rem; + padding-bottom: 0.625rem; +} +.form-floating > .form-control:focus, +.form-floating > .form-control:not(:placeholder-shown) { + padding-top: 1.625rem; + padding-bottom: 0.625rem; +} +.form-floating > .form-control:-webkit-autofill { + padding-top: 1.625rem; + padding-bottom: 0.625rem; +} +.form-floating > .form-select { + padding-top: 1.625rem; + padding-bottom: 0.625rem; +} +.form-floating > .form-control:not(:-moz-placeholder-shown) ~ label { + opacity: 0.65; + transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); +} +.form-floating > .form-control:focus ~ label, +.form-floating > .form-control:not(:placeholder-shown) ~ label, +.form-floating > .form-select ~ label { + opacity: 0.65; + transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); +} +.form-floating > .form-control:-webkit-autofill ~ label { + opacity: 0.65; + transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); +} +.input-group { + position: relative; + display: flex; + flex-wrap: wrap; + align-items: stretch; + width: 100%; +} +.input-group > .form-control, +.input-group > .form-select { + position: relative; + flex: 1 1 auto; + width: 1%; + min-width: 0; +} +.input-group > .form-control:focus, +.input-group > .form-select:focus { + z-index: 3; +} +.input-group .btn { + position: relative; + z-index: 2; +} +.input-group .btn:focus { + z-index: 3; +} +.input-group-text { + display: flex; + align-items: center; + padding: 0.375rem 0.75rem; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #212529; + text-align: center; + white-space: nowrap; + background-color: #e9ecef; + border: 1px solid #ced4da; + border-radius: 0.25rem; +} +.input-group-lg > .btn, +.input-group-lg > .form-control, +.input-group-lg > .form-select, +.input-group-lg > .input-group-text { + padding: 0.5rem 1rem; + font-size: 1.25rem; + border-radius: 0.3rem; +} +.input-group-sm > .btn, +.input-group-sm > .form-control, +.input-group-sm > .form-select, +.input-group-sm > .input-group-text { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + border-radius: 0.2rem; +} +.input-group-lg > .form-select, +.input-group-sm > .form-select { + padding-right: 3rem; +} +.input-group:not(.has-validation) > .dropdown-toggle:nth-last-child(n + 3), +.input-group:not(.has-validation) > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.input-group.has-validation > .dropdown-toggle:nth-last-child(n + 4), +.input-group.has-validation > :nth-last-child(n + 3):not(.dropdown-toggle):not(.dropdown-menu) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.input-group > :not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback) { + margin-left: -1px; + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.valid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 0.875em; + color: #198754; +} +.valid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: 0.25rem 0.5rem; + margin-top: 0.1rem; + font-size: 0.875rem; + color: #fff; + background-color: rgba(25, 135, 84, 0.9); + border-radius: 0.25rem; +} +.is-valid ~ .valid-feedback, +.is-valid ~ .valid-tooltip, +.was-validated :valid ~ .valid-feedback, +.was-validated :valid ~ .valid-tooltip { + display: block; +} +.form-control.is-valid, +.was-validated .form-control:valid { + border-color: #198754; + padding-right: calc(1.5em + 0.75rem); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right calc(0.375em + 0.1875rem) center; + background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} +.form-control.is-valid:focus, +.was-validated .form-control:valid:focus { + border-color: #198754; + box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.25); +} +.was-validated textarea.form-control:valid, +textarea.form-control.is-valid { + padding-right: calc(1.5em + 0.75rem); + background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); +} +.form-select.is-valid, +.was-validated .form-select:valid { + border-color: #198754; +} +.form-select.is-valid:not([multiple]):not([size]), +.form-select.is-valid:not([multiple])[size='1'], +.was-validated .form-select:valid:not([multiple]):not([size]), +.was-validated .form-select:valid:not([multiple])[size='1'] { + padding-right: 4.125rem; + background-image: + url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"), + url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e"); + background-position: + right 0.75rem center, + center right 2.25rem; + background-size: + 16px 12px, + calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} +.form-select.is-valid:focus, +.was-validated .form-select:valid:focus { + border-color: #198754; + box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.25); +} +.form-check-input.is-valid, +.was-validated .form-check-input:valid { + border-color: #198754; +} +.form-check-input.is-valid:checked, +.was-validated .form-check-input:valid:checked { + background-color: #198754; +} +.form-check-input.is-valid:focus, +.was-validated .form-check-input:valid:focus { + box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.25); +} +.form-check-input.is-valid ~ .form-check-label, +.was-validated .form-check-input:valid ~ .form-check-label { + color: #198754; +} +.form-check-inline .form-check-input ~ .valid-feedback { + margin-left: 0.5em; +} +.input-group .form-control.is-valid, +.input-group .form-select.is-valid, +.was-validated .input-group .form-control:valid, +.was-validated .input-group .form-select:valid { + z-index: 1; +} +.input-group .form-control.is-valid:focus, +.input-group .form-select.is-valid:focus, +.was-validated .input-group .form-control:valid:focus, +.was-validated .input-group .form-select:valid:focus { + z-index: 3; +} +.invalid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 0.875em; + color: #dc3545; +} +.invalid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: 0.25rem 0.5rem; + margin-top: 0.1rem; + font-size: 0.875rem; + color: #fff; + background-color: rgba(220, 53, 69, 0.9); + border-radius: 0.25rem; +} +.is-invalid ~ .invalid-feedback, +.is-invalid ~ .invalid-tooltip, +.was-validated :invalid ~ .invalid-feedback, +.was-validated :invalid ~ .invalid-tooltip { + display: block; +} +.form-control.is-invalid, +.was-validated .form-control:invalid { + border-color: #dc3545; + padding-right: calc(1.5em + 0.75rem); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right calc(0.375em + 0.1875rem) center; + background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} +.form-control.is-invalid:focus, +.was-validated .form-control:invalid:focus { + border-color: #dc3545; + box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.25); +} +.was-validated textarea.form-control:invalid, +textarea.form-control.is-invalid { + padding-right: calc(1.5em + 0.75rem); + background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); +} +.form-select.is-invalid, +.was-validated .form-select:invalid { + border-color: #dc3545; +} +.form-select.is-invalid:not([multiple]):not([size]), +.form-select.is-invalid:not([multiple])[size='1'], +.was-validated .form-select:invalid:not([multiple]):not([size]), +.was-validated .form-select:invalid:not([multiple])[size='1'] { + padding-right: 4.125rem; + background-image: + url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"), + url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e"); + background-position: + right 0.75rem center, + center right 2.25rem; + background-size: + 16px 12px, + calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} +.form-select.is-invalid:focus, +.was-validated .form-select:invalid:focus { + border-color: #dc3545; + box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.25); +} +.form-check-input.is-invalid, +.was-validated .form-check-input:invalid { + border-color: #dc3545; +} +.form-check-input.is-invalid:checked, +.was-validated .form-check-input:invalid:checked { + background-color: #dc3545; +} +.form-check-input.is-invalid:focus, +.was-validated .form-check-input:invalid:focus { + box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.25); +} +.form-check-input.is-invalid ~ .form-check-label, +.was-validated .form-check-input:invalid ~ .form-check-label { + color: #dc3545; +} +.form-check-inline .form-check-input ~ .invalid-feedback { + margin-left: 0.5em; +} +.input-group .form-control.is-invalid, +.input-group .form-select.is-invalid, +.was-validated .input-group .form-control:invalid, +.was-validated .input-group .form-select:invalid { + z-index: 2; +} +.input-group .form-control.is-invalid:focus, +.input-group .form-select.is-invalid:focus, +.was-validated .input-group .form-control:invalid:focus, +.was-validated .input-group .form-select:invalid:focus { + z-index: 3; +} +.btn { + display: inline-block; + font-weight: 400; + line-height: 1.5; + color: #212529; + text-align: center; + text-decoration: none; + vertical-align: middle; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + background-color: transparent; + border: 1px solid transparent; + padding: 0.375rem 0.75rem; + font-size: 1rem; + border-radius: 0.25rem; + transition: + color 0.15s ease-in-out, + background-color 0.15s ease-in-out, + border-color 0.15s ease-in-out, + box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .btn { + transition: none; + } +} +.btn:hover { + color: #212529; +} +.btn-check:focus + .btn, +.btn:focus { + outline: 0; + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} +.btn.disabled, +.btn:disabled, +fieldset:disabled .btn { + pointer-events: none; + opacity: 0.65; +} +.btn-primary { + color: #fff; + background-color: #0d6efd; + border-color: #0d6efd; +} +.btn-primary:hover { + color: #fff; + background-color: #0b5ed7; + border-color: #0a58ca; +} +.btn-check:focus + .btn-primary, +.btn-primary:focus { + color: #fff; + background-color: #0b5ed7; + border-color: #0a58ca; + box-shadow: 0 0 0 0.25rem rgba(49, 132, 253, 0.5); +} +.btn-check:active + .btn-primary, +.btn-check:checked + .btn-primary, +.btn-primary.active, +.btn-primary:active, +.show > .btn-primary.dropdown-toggle { + color: #fff; + background-color: #0a58ca; + border-color: #0a53be; +} +.btn-check:active + .btn-primary:focus, +.btn-check:checked + .btn-primary:focus, +.btn-primary.active:focus, +.btn-primary:active:focus, +.show > .btn-primary.dropdown-toggle:focus { + box-shadow: 0 0 0 0.25rem rgba(49, 132, 253, 0.5); +} +.btn-primary.disabled, +.btn-primary:disabled { + color: #fff; + background-color: #0d6efd; + border-color: #0d6efd; +} +.btn-secondary { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; +} +.btn-secondary:hover { + color: #fff; + background-color: #5c636a; + border-color: #565e64; +} +.btn-check:focus + .btn-secondary, +.btn-secondary:focus { + color: #fff; + background-color: #5c636a; + border-color: #565e64; + box-shadow: 0 0 0 0.25rem rgba(130, 138, 145, 0.5); +} +.btn-check:active + .btn-secondary, +.btn-check:checked + .btn-secondary, +.btn-secondary.active, +.btn-secondary:active, +.show > .btn-secondary.dropdown-toggle { + color: #fff; + background-color: #565e64; + border-color: #51585e; +} +.btn-check:active + .btn-secondary:focus, +.btn-check:checked + .btn-secondary:focus, +.btn-secondary.active:focus, +.btn-secondary:active:focus, +.show > .btn-secondary.dropdown-toggle:focus { + box-shadow: 0 0 0 0.25rem rgba(130, 138, 145, 0.5); +} +.btn-secondary.disabled, +.btn-secondary:disabled { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; +} +.btn-success { + color: #fff; + background-color: #198754; + border-color: #198754; +} +.btn-success:hover { + color: #fff; + background-color: #157347; + border-color: #146c43; +} +.btn-check:focus + .btn-success, +.btn-success:focus { + color: #fff; + background-color: #157347; + border-color: #146c43; + box-shadow: 0 0 0 0.25rem rgba(60, 153, 110, 0.5); +} +.btn-check:active + .btn-success, +.btn-check:checked + .btn-success, +.btn-success.active, +.btn-success:active, +.show > .btn-success.dropdown-toggle { + color: #fff; + background-color: #146c43; + border-color: #13653f; +} +.btn-check:active + .btn-success:focus, +.btn-check:checked + .btn-success:focus, +.btn-success.active:focus, +.btn-success:active:focus, +.show > .btn-success.dropdown-toggle:focus { + box-shadow: 0 0 0 0.25rem rgba(60, 153, 110, 0.5); +} +.btn-success.disabled, +.btn-success:disabled { + color: #fff; + background-color: #198754; + border-color: #198754; +} +.btn-info { + color: #000; + background-color: #0dcaf0; + border-color: #0dcaf0; +} +.btn-info:hover { + color: #000; + background-color: #31d2f2; + border-color: #25cff2; +} +.btn-check:focus + .btn-info, +.btn-info:focus { + color: #000; + background-color: #31d2f2; + border-color: #25cff2; + box-shadow: 0 0 0 0.25rem rgba(11, 172, 204, 0.5); +} +.btn-check:active + .btn-info, +.btn-check:checked + .btn-info, +.btn-info.active, +.btn-info:active, +.show > .btn-info.dropdown-toggle { + color: #000; + background-color: #3dd5f3; + border-color: #25cff2; +} +.btn-check:active + .btn-info:focus, +.btn-check:checked + .btn-info:focus, +.btn-info.active:focus, +.btn-info:active:focus, +.show > .btn-info.dropdown-toggle:focus { + box-shadow: 0 0 0 0.25rem rgba(11, 172, 204, 0.5); +} +.btn-info.disabled, +.btn-info:disabled { + color: #000; + background-color: #0dcaf0; + border-color: #0dcaf0; +} +.btn-warning { + color: #000; + background-color: #ffc107; + border-color: #ffc107; +} +.btn-warning:hover { + color: #000; + background-color: #ffca2c; + border-color: #ffc720; +} +.btn-check:focus + .btn-warning, +.btn-warning:focus { + color: #000; + background-color: #ffca2c; + border-color: #ffc720; + box-shadow: 0 0 0 0.25rem rgba(217, 164, 6, 0.5); +} +.btn-check:active + .btn-warning, +.btn-check:checked + .btn-warning, +.btn-warning.active, +.btn-warning:active, +.show > .btn-warning.dropdown-toggle { + color: #000; + background-color: #ffcd39; + border-color: #ffc720; +} +.btn-check:active + .btn-warning:focus, +.btn-check:checked + .btn-warning:focus, +.btn-warning.active:focus, +.btn-warning:active:focus, +.show > .btn-warning.dropdown-toggle:focus { + box-shadow: 0 0 0 0.25rem rgba(217, 164, 6, 0.5); +} +.btn-warning.disabled, +.btn-warning:disabled { + color: #000; + background-color: #ffc107; + border-color: #ffc107; +} +.btn-danger { + color: #fff; + background-color: #dc3545; + border-color: #dc3545; +} +.btn-danger:hover { + color: #fff; + background-color: #bb2d3b; + border-color: #b02a37; +} +.btn-check:focus + .btn-danger, +.btn-danger:focus { + color: #fff; + background-color: #bb2d3b; + border-color: #b02a37; + box-shadow: 0 0 0 0.25rem rgba(225, 83, 97, 0.5); +} +.btn-check:active + .btn-danger, +.btn-check:checked + .btn-danger, +.btn-danger.active, +.btn-danger:active, +.show > .btn-danger.dropdown-toggle { + color: #fff; + background-color: #b02a37; + border-color: #a52834; +} +.btn-check:active + .btn-danger:focus, +.btn-check:checked + .btn-danger:focus, +.btn-danger.active:focus, +.btn-danger:active:focus, +.show > .btn-danger.dropdown-toggle:focus { + box-shadow: 0 0 0 0.25rem rgba(225, 83, 97, 0.5); +} +.btn-danger.disabled, +.btn-danger:disabled { + color: #fff; + background-color: #dc3545; + border-color: #dc3545; +} +.btn-light { + color: #000; + background-color: #f8f9fa; + border-color: #f8f9fa; +} +.btn-light:hover { + color: #000; + background-color: #f9fafb; + border-color: #f9fafb; +} +.btn-check:focus + .btn-light, +.btn-light:focus { + color: #000; + background-color: #f9fafb; + border-color: #f9fafb; + box-shadow: 0 0 0 0.25rem rgba(211, 212, 213, 0.5); +} +.btn-check:active + .btn-light, +.btn-check:checked + .btn-light, +.btn-light.active, +.btn-light:active, +.show > .btn-light.dropdown-toggle { + color: #000; + background-color: #f9fafb; + border-color: #f9fafb; +} +.btn-check:active + .btn-light:focus, +.btn-check:checked + .btn-light:focus, +.btn-light.active:focus, +.btn-light:active:focus, +.show > .btn-light.dropdown-toggle:focus { + box-shadow: 0 0 0 0.25rem rgba(211, 212, 213, 0.5); +} +.btn-light.disabled, +.btn-light:disabled { + color: #000; + background-color: #f8f9fa; + border-color: #f8f9fa; +} +.btn-dark { + color: #fff; + background-color: #212529; + border-color: #212529; +} +.btn-dark:hover { + color: #fff; + background-color: #1c1f23; + border-color: #1a1e21; +} +.btn-check:focus + .btn-dark, +.btn-dark:focus { + color: #fff; + background-color: #1c1f23; + border-color: #1a1e21; + box-shadow: 0 0 0 0.25rem rgba(66, 70, 73, 0.5); +} +.btn-check:active + .btn-dark, +.btn-check:checked + .btn-dark, +.btn-dark.active, +.btn-dark:active, +.show > .btn-dark.dropdown-toggle { + color: #fff; + background-color: #1a1e21; + border-color: #191c1f; +} +.btn-check:active + .btn-dark:focus, +.btn-check:checked + .btn-dark:focus, +.btn-dark.active:focus, +.btn-dark:active:focus, +.show > .btn-dark.dropdown-toggle:focus { + box-shadow: 0 0 0 0.25rem rgba(66, 70, 73, 0.5); +} +.btn-dark.disabled, +.btn-dark:disabled { + color: #fff; + background-color: #212529; + border-color: #212529; +} +.btn-outline-primary { + color: #0d6efd; + border-color: #0d6efd; +} +.btn-outline-primary:hover { + color: #fff; + background-color: #0d6efd; + border-color: #0d6efd; +} +.btn-check:focus + .btn-outline-primary, +.btn-outline-primary:focus { + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.5); +} +.btn-check:active + .btn-outline-primary, +.btn-check:checked + .btn-outline-primary, +.btn-outline-primary.active, +.btn-outline-primary.dropdown-toggle.show, +.btn-outline-primary:active { + color: #fff; + background-color: #0d6efd; + border-color: #0d6efd; +} +.btn-check:active + .btn-outline-primary:focus, +.btn-check:checked + .btn-outline-primary:focus, +.btn-outline-primary.active:focus, +.btn-outline-primary.dropdown-toggle.show:focus, +.btn-outline-primary:active:focus { + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.5); +} +.btn-outline-primary.disabled, +.btn-outline-primary:disabled { + color: #0d6efd; + background-color: transparent; +} +.btn-outline-secondary { + color: #6c757d; + border-color: #6c757d; +} +.btn-outline-secondary:hover { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; +} +.btn-check:focus + .btn-outline-secondary, +.btn-outline-secondary:focus { + box-shadow: 0 0 0 0.25rem rgba(108, 117, 125, 0.5); +} +.btn-check:active + .btn-outline-secondary, +.btn-check:checked + .btn-outline-secondary, +.btn-outline-secondary.active, +.btn-outline-secondary.dropdown-toggle.show, +.btn-outline-secondary:active { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; +} +.btn-check:active + .btn-outline-secondary:focus, +.btn-check:checked + .btn-outline-secondary:focus, +.btn-outline-secondary.active:focus, +.btn-outline-secondary.dropdown-toggle.show:focus, +.btn-outline-secondary:active:focus { + box-shadow: 0 0 0 0.25rem rgba(108, 117, 125, 0.5); +} +.btn-outline-secondary.disabled, +.btn-outline-secondary:disabled { + color: #6c757d; + background-color: transparent; +} +.btn-outline-success { + color: #198754; + border-color: #198754; +} +.btn-outline-success:hover { + color: #fff; + background-color: #198754; + border-color: #198754; +} +.btn-check:focus + .btn-outline-success, +.btn-outline-success:focus { + box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.5); +} +.btn-check:active + .btn-outline-success, +.btn-check:checked + .btn-outline-success, +.btn-outline-success.active, +.btn-outline-success.dropdown-toggle.show, +.btn-outline-success:active { + color: #fff; + background-color: #198754; + border-color: #198754; +} +.btn-check:active + .btn-outline-success:focus, +.btn-check:checked + .btn-outline-success:focus, +.btn-outline-success.active:focus, +.btn-outline-success.dropdown-toggle.show:focus, +.btn-outline-success:active:focus { + box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.5); +} +.btn-outline-success.disabled, +.btn-outline-success:disabled { + color: #198754; + background-color: transparent; +} +.btn-outline-info { + color: #0dcaf0; + border-color: #0dcaf0; +} +.btn-outline-info:hover { + color: #000; + background-color: #0dcaf0; + border-color: #0dcaf0; +} +.btn-check:focus + .btn-outline-info, +.btn-outline-info:focus { + box-shadow: 0 0 0 0.25rem rgba(13, 202, 240, 0.5); +} +.btn-check:active + .btn-outline-info, +.btn-check:checked + .btn-outline-info, +.btn-outline-info.active, +.btn-outline-info.dropdown-toggle.show, +.btn-outline-info:active { + color: #000; + background-color: #0dcaf0; + border-color: #0dcaf0; +} +.btn-check:active + .btn-outline-info:focus, +.btn-check:checked + .btn-outline-info:focus, +.btn-outline-info.active:focus, +.btn-outline-info.dropdown-toggle.show:focus, +.btn-outline-info:active:focus { + box-shadow: 0 0 0 0.25rem rgba(13, 202, 240, 0.5); +} +.btn-outline-info.disabled, +.btn-outline-info:disabled { + color: #0dcaf0; + background-color: transparent; +} +.btn-outline-warning { + color: #ffc107; + border-color: #ffc107; +} +.btn-outline-warning:hover { + color: #000; + background-color: #ffc107; + border-color: #ffc107; +} +.btn-check:focus + .btn-outline-warning, +.btn-outline-warning:focus { + box-shadow: 0 0 0 0.25rem rgba(255, 193, 7, 0.5); +} +.btn-check:active + .btn-outline-warning, +.btn-check:checked + .btn-outline-warning, +.btn-outline-warning.active, +.btn-outline-warning.dropdown-toggle.show, +.btn-outline-warning:active { + color: #000; + background-color: #ffc107; + border-color: #ffc107; +} +.btn-check:active + .btn-outline-warning:focus, +.btn-check:checked + .btn-outline-warning:focus, +.btn-outline-warning.active:focus, +.btn-outline-warning.dropdown-toggle.show:focus, +.btn-outline-warning:active:focus { + box-shadow: 0 0 0 0.25rem rgba(255, 193, 7, 0.5); +} +.btn-outline-warning.disabled, +.btn-outline-warning:disabled { + color: #ffc107; + background-color: transparent; +} +.btn-outline-danger { + color: #dc3545; + border-color: #dc3545; +} +.btn-outline-danger:hover { + color: #fff; + background-color: #dc3545; + border-color: #dc3545; +} +.btn-check:focus + .btn-outline-danger, +.btn-outline-danger:focus { + box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.5); +} +.btn-check:active + .btn-outline-danger, +.btn-check:checked + .btn-outline-danger, +.btn-outline-danger.active, +.btn-outline-danger.dropdown-toggle.show, +.btn-outline-danger:active { + color: #fff; + background-color: #dc3545; + border-color: #dc3545; +} +.btn-check:active + .btn-outline-danger:focus, +.btn-check:checked + .btn-outline-danger:focus, +.btn-outline-danger.active:focus, +.btn-outline-danger.dropdown-toggle.show:focus, +.btn-outline-danger:active:focus { + box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.5); +} +.btn-outline-danger.disabled, +.btn-outline-danger:disabled { + color: #dc3545; + background-color: transparent; +} +.btn-outline-light { + color: #f8f9fa; + border-color: #f8f9fa; +} +.btn-outline-light:hover { + color: #000; + background-color: #f8f9fa; + border-color: #f8f9fa; +} +.btn-check:focus + .btn-outline-light, +.btn-outline-light:focus { + box-shadow: 0 0 0 0.25rem rgba(248, 249, 250, 0.5); +} +.btn-check:active + .btn-outline-light, +.btn-check:checked + .btn-outline-light, +.btn-outline-light.active, +.btn-outline-light.dropdown-toggle.show, +.btn-outline-light:active { + color: #000; + background-color: #f8f9fa; + border-color: #f8f9fa; +} +.btn-check:active + .btn-outline-light:focus, +.btn-check:checked + .btn-outline-light:focus, +.btn-outline-light.active:focus, +.btn-outline-light.dropdown-toggle.show:focus, +.btn-outline-light:active:focus { + box-shadow: 0 0 0 0.25rem rgba(248, 249, 250, 0.5); +} +.btn-outline-light.disabled, +.btn-outline-light:disabled { + color: #f8f9fa; + background-color: transparent; +} +.btn-outline-dark { + color: #212529; + border-color: #212529; +} +.btn-outline-dark:hover { + color: #fff; + background-color: #212529; + border-color: #212529; +} +.btn-check:focus + .btn-outline-dark, +.btn-outline-dark:focus { + box-shadow: 0 0 0 0.25rem rgba(33, 37, 41, 0.5); +} +.btn-check:active + .btn-outline-dark, +.btn-check:checked + .btn-outline-dark, +.btn-outline-dark.active, +.btn-outline-dark.dropdown-toggle.show, +.btn-outline-dark:active { + color: #fff; + background-color: #212529; + border-color: #212529; +} +.btn-check:active + .btn-outline-dark:focus, +.btn-check:checked + .btn-outline-dark:focus, +.btn-outline-dark.active:focus, +.btn-outline-dark.dropdown-toggle.show:focus, +.btn-outline-dark:active:focus { + box-shadow: 0 0 0 0.25rem rgba(33, 37, 41, 0.5); +} +.btn-outline-dark.disabled, +.btn-outline-dark:disabled { + color: #212529; + background-color: transparent; +} +.btn-link { + font-weight: 400; + color: #0d6efd; + text-decoration: underline; +} +.btn-link:hover { + color: #0a58ca; +} +.btn-link.disabled, +.btn-link:disabled { + color: #6c757d; +} +.btn-group-lg > .btn, +.btn-lg { + padding: 0.5rem 1rem; + font-size: 1.25rem; + border-radius: 0.3rem; +} +.btn-group-sm > .btn, +.btn-sm { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + border-radius: 0.2rem; +} +.fade { + transition: opacity 0.15s linear; +} +@media (prefers-reduced-motion: reduce) { + .fade { + transition: none; + } +} +.fade:not(.show) { + opacity: 0; +} +.collapse:not(.show) { + display: none; +} +.collapsing { + height: 0; + overflow: hidden; + transition: height 0.35s ease; +} +@media (prefers-reduced-motion: reduce) { + .collapsing { + transition: none; + } +} +.dropdown, +.dropend, +.dropstart, +.dropup { + position: relative; +} +.dropdown-toggle { + white-space: nowrap; +} +.dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ''; + border-top: 0.3em solid; + border-right: 0.3em solid transparent; + border-bottom: 0; + border-left: 0.3em solid transparent; +} +.dropdown-toggle:empty::after { + margin-left: 0; +} +.dropdown-menu { + position: absolute; + z-index: 1000; + display: none; + min-width: 10rem; + padding: 0.5rem 0; + margin: 0; + font-size: 1rem; + color: #212529; + text-align: left; + list-style: none; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 0.25rem; +} +.dropdown-menu[data-bs-popper] { + top: 100%; + left: 0; + margin-top: 0.125rem; +} +.dropdown-menu-start { + --bs-position: start; +} +.dropdown-menu-start[data-bs-popper] { + right: auto; + left: 0; +} +.dropdown-menu-end { + --bs-position: end; +} +.dropdown-menu-end[data-bs-popper] { + right: 0; + left: auto; +} +@media (min-width: 576px) { + .dropdown-menu-sm-start { + --bs-position: start; + } + .dropdown-menu-sm-start[data-bs-popper] { + right: auto; + left: 0; + } + .dropdown-menu-sm-end { + --bs-position: end; + } + .dropdown-menu-sm-end[data-bs-popper] { + right: 0; + left: auto; + } +} +@media (min-width: 768px) { + .dropdown-menu-md-start { + --bs-position: start; + } + .dropdown-menu-md-start[data-bs-popper] { + right: auto; + left: 0; + } + .dropdown-menu-md-end { + --bs-position: end; + } + .dropdown-menu-md-end[data-bs-popper] { + right: 0; + left: auto; + } +} +@media (min-width: 992px) { + .dropdown-menu-lg-start { + --bs-position: start; + } + .dropdown-menu-lg-start[data-bs-popper] { + right: auto; + left: 0; + } + .dropdown-menu-lg-end { + --bs-position: end; + } + .dropdown-menu-lg-end[data-bs-popper] { + right: 0; + left: auto; + } +} +@media (min-width: 1200px) { + .dropdown-menu-xl-start { + --bs-position: start; + } + .dropdown-menu-xl-start[data-bs-popper] { + right: auto; + left: 0; + } + .dropdown-menu-xl-end { + --bs-position: end; + } + .dropdown-menu-xl-end[data-bs-popper] { + right: 0; + left: auto; + } +} +@media (min-width: 1400px) { + .dropdown-menu-xxl-start { + --bs-position: start; + } + .dropdown-menu-xxl-start[data-bs-popper] { + right: auto; + left: 0; + } + .dropdown-menu-xxl-end { + --bs-position: end; + } + .dropdown-menu-xxl-end[data-bs-popper] { + right: 0; + left: auto; + } +} +.dropup .dropdown-menu[data-bs-popper] { + top: auto; + bottom: 100%; + margin-top: 0; + margin-bottom: 0.125rem; +} +.dropup .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ''; + border-top: 0; + border-right: 0.3em solid transparent; + border-bottom: 0.3em solid; + border-left: 0.3em solid transparent; +} +.dropup .dropdown-toggle:empty::after { + margin-left: 0; +} +.dropend .dropdown-menu[data-bs-popper] { + top: 0; + right: auto; + left: 100%; + margin-top: 0; + margin-left: 0.125rem; +} +.dropend .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ''; + border-top: 0.3em solid transparent; + border-right: 0; + border-bottom: 0.3em solid transparent; + border-left: 0.3em solid; +} +.dropend .dropdown-toggle:empty::after { + margin-left: 0; +} +.dropend .dropdown-toggle::after { + vertical-align: 0; +} +.dropstart .dropdown-menu[data-bs-popper] { + top: 0; + right: 100%; + left: auto; + margin-top: 0; + margin-right: 0.125rem; +} +.dropstart .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ''; +} +.dropstart .dropdown-toggle::after { + display: none; +} +.dropstart .dropdown-toggle::before { + display: inline-block; + margin-right: 0.255em; + vertical-align: 0.255em; + content: ''; + border-top: 0.3em solid transparent; + border-right: 0.3em solid; + border-bottom: 0.3em solid transparent; +} +.dropstart .dropdown-toggle:empty::after { + margin-left: 0; +} +.dropstart .dropdown-toggle::before { + vertical-align: 0; +} +.dropdown-divider { + height: 0; + margin: 0.5rem 0; + overflow: hidden; + border-top: 1px solid rgba(0, 0, 0, 0.15); +} +.dropdown-item { + display: block; + width: 100%; + padding: 0.25rem 1rem; + clear: both; + font-weight: 400; + color: #212529; + text-align: inherit; + text-decoration: none; + white-space: nowrap; + background-color: transparent; + border: 0; +} +.dropdown-item:focus, +.dropdown-item:hover { + color: #1e2125; + background-color: #e9ecef; +} +.dropdown-item.active, +.dropdown-item:active { + color: #fff; + text-decoration: none; + background-color: #0d6efd; +} +.dropdown-item.disabled, +.dropdown-item:disabled { + color: #adb5bd; + pointer-events: none; + background-color: transparent; +} +.dropdown-menu.show { + display: block; +} +.dropdown-header { + display: block; + padding: 0.5rem 1rem; + margin-bottom: 0; + font-size: 0.875rem; + color: #6c757d; + white-space: nowrap; +} +.dropdown-item-text { + display: block; + padding: 0.25rem 1rem; + color: #212529; +} +.dropdown-menu-dark { + color: #dee2e6; + background-color: #343a40; + border-color: rgba(0, 0, 0, 0.15); +} +.dropdown-menu-dark .dropdown-item { + color: #dee2e6; +} +.dropdown-menu-dark .dropdown-item:focus, +.dropdown-menu-dark .dropdown-item:hover { + color: #fff; + background-color: rgba(255, 255, 255, 0.15); +} +.dropdown-menu-dark .dropdown-item.active, +.dropdown-menu-dark .dropdown-item:active { + color: #fff; + background-color: #0d6efd; +} +.dropdown-menu-dark .dropdown-item.disabled, +.dropdown-menu-dark .dropdown-item:disabled { + color: #adb5bd; +} +.dropdown-menu-dark .dropdown-divider { + border-color: rgba(0, 0, 0, 0.15); +} +.dropdown-menu-dark .dropdown-item-text { + color: #dee2e6; +} +.dropdown-menu-dark .dropdown-header { + color: #adb5bd; +} +.btn-group, +.btn-group-vertical { + position: relative; + display: inline-flex; + vertical-align: middle; +} +.btn-group-vertical > .btn, +.btn-group > .btn { + position: relative; + flex: 1 1 auto; +} +.btn-group-vertical > .btn-check:checked + .btn, +.btn-group-vertical > .btn-check:focus + .btn, +.btn-group-vertical > .btn.active, +.btn-group-vertical > .btn:active, +.btn-group-vertical > .btn:focus, +.btn-group-vertical > .btn:hover, +.btn-group > .btn-check:checked + .btn, +.btn-group > .btn-check:focus + .btn, +.btn-group > .btn.active, +.btn-group > .btn:active, +.btn-group > .btn:focus, +.btn-group > .btn:hover { + z-index: 1; +} +.btn-toolbar { + display: flex; + flex-wrap: wrap; + justify-content: flex-start; +} +.btn-toolbar .input-group { + width: auto; +} +.btn-group > .btn-group:not(:first-child), +.btn-group > .btn:not(:first-child) { + margin-left: -1px; +} +.btn-group > .btn-group:not(:last-child) > .btn, +.btn-group > .btn:not(:last-child):not(.dropdown-toggle) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.btn-group > .btn-group:not(:first-child) > .btn, +.btn-group > .btn:nth-child(n + 3), +.btn-group > :not(.btn-check) + .btn { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.dropdown-toggle-split { + padding-right: 0.5625rem; + padding-left: 0.5625rem; +} +.dropdown-toggle-split::after, +.dropend .dropdown-toggle-split::after, +.dropup .dropdown-toggle-split::after { + margin-left: 0; +} +.dropstart .dropdown-toggle-split::before { + margin-right: 0; +} +.btn-group-sm > .btn + .dropdown-toggle-split, +.btn-sm + .dropdown-toggle-split { + padding-right: 0.375rem; + padding-left: 0.375rem; +} +.btn-group-lg > .btn + .dropdown-toggle-split, +.btn-lg + .dropdown-toggle-split { + padding-right: 0.75rem; + padding-left: 0.75rem; +} +.btn-group-vertical { + flex-direction: column; + align-items: flex-start; + justify-content: center; +} +.btn-group-vertical > .btn, +.btn-group-vertical > .btn-group { + width: 100%; +} +.btn-group-vertical > .btn-group:not(:first-child), +.btn-group-vertical > .btn:not(:first-child) { + margin-top: -1px; +} +.btn-group-vertical > .btn-group:not(:last-child) > .btn, +.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle) { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.btn-group-vertical > .btn-group:not(:first-child) > .btn, +.btn-group-vertical > .btn ~ .btn { + border-top-left-radius: 0; + border-top-right-radius: 0; +} +.nav { + display: flex; + flex-wrap: wrap; + padding-left: 0; + margin-bottom: 0; + list-style: none; +} +.nav-link { + display: block; + padding: 0.5rem 1rem; + color: #0d6efd; + text-decoration: none; + transition: + color 0.15s ease-in-out, + background-color 0.15s ease-in-out, + border-color 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .nav-link { + transition: none; + } +} +.nav-link:focus, +.nav-link:hover { + color: #0a58ca; +} +.nav-link.disabled { + color: #6c757d; + pointer-events: none; + cursor: default; +} +.nav-tabs { + border-bottom: 1px solid #dee2e6; +} +.nav-tabs .nav-link { + margin-bottom: -1px; + background: 0 0; + border: 1px solid transparent; + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem; +} +.nav-tabs .nav-link:focus, +.nav-tabs .nav-link:hover { + border-color: #e9ecef #e9ecef #dee2e6; + isolation: isolate; +} +.nav-tabs .nav-link.disabled { + color: #6c757d; + background-color: transparent; + border-color: transparent; +} +.nav-tabs .nav-item.show .nav-link, +.nav-tabs .nav-link.active { + color: #495057; + background-color: #fff; + border-color: #dee2e6 #dee2e6 #fff; +} +.nav-tabs .dropdown-menu { + margin-top: -1px; + border-top-left-radius: 0; + border-top-right-radius: 0; +} +.nav-pills .nav-link { + background: 0 0; + border: 0; + border-radius: 0.25rem; +} +.nav-pills .nav-link.active, +.nav-pills .show > .nav-link { + color: #fff; + background-color: #0d6efd; +} +.nav-fill .nav-item, +.nav-fill > .nav-link { + flex: 1 1 auto; + text-align: center; +} +.nav-justified .nav-item, +.nav-justified > .nav-link { + flex-basis: 0; + flex-grow: 1; + text-align: center; +} +.nav-fill .nav-item .nav-link, +.nav-justified .nav-item .nav-link { + width: 100%; +} +.tab-content > .tab-pane { + display: none; +} +.tab-content > .active { + display: block; +} +.navbar { + position: relative; + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: space-between; + padding-top: 0.5rem; + padding-bottom: 0.5rem; +} +.navbar > .container, +.navbar > .container-fluid, +.navbar > .container-lg, +.navbar > .container-md, +.navbar > .container-sm, +.navbar > .container-xl, +.navbar > .container-xxl { + display: flex; + flex-wrap: inherit; + align-items: center; + justify-content: space-between; +} +.navbar-brand { + padding-top: 0.3125rem; + padding-bottom: 0.3125rem; + margin-right: 1rem; + font-size: 1.25rem; + text-decoration: none; + white-space: nowrap; +} +.navbar-nav { + display: flex; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; + list-style: none; +} +.navbar-nav .nav-link { + padding-right: 0; + padding-left: 0; +} +.navbar-nav .dropdown-menu { + position: static; +} +.navbar-text { + padding-top: 0.5rem; + padding-bottom: 0.5rem; +} +.navbar-collapse { + flex-basis: 100%; + flex-grow: 1; + align-items: center; +} +.navbar-toggler { + padding: 0.25rem 0.75rem; + font-size: 1.25rem; + line-height: 1; + background-color: transparent; + border: 1px solid transparent; + border-radius: 0.25rem; + transition: box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .navbar-toggler { + transition: none; + } +} +.navbar-toggler:hover { + text-decoration: none; +} +.navbar-toggler:focus { + text-decoration: none; + outline: 0; + box-shadow: 0 0 0 0.25rem; +} +.navbar-toggler-icon { + display: inline-block; + width: 1.5em; + height: 1.5em; + vertical-align: middle; + background-repeat: no-repeat; + background-position: center; + background-size: 100%; +} +.navbar-nav-scroll { + max-height: var(--bs-scroll-height, 75vh); + overflow-y: auto; +} +@media (min-width: 576px) { + .navbar-expand-sm { + flex-wrap: nowrap; + justify-content: flex-start; + } + .navbar-expand-sm .navbar-nav { + flex-direction: row; + } + .navbar-expand-sm .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-sm .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; + } + .navbar-expand-sm .navbar-nav-scroll { + overflow: visible; + } + .navbar-expand-sm .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + .navbar-expand-sm .navbar-toggler { + display: none; + } +} +@media (min-width: 768px) { + .navbar-expand-md { + flex-wrap: nowrap; + justify-content: flex-start; + } + .navbar-expand-md .navbar-nav { + flex-direction: row; + } + .navbar-expand-md .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-md .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; + } + .navbar-expand-md .navbar-nav-scroll { + overflow: visible; + } + .navbar-expand-md .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + .navbar-expand-md .navbar-toggler { + display: none; + } +} +@media (min-width: 992px) { + .navbar-expand-lg { + flex-wrap: nowrap; + justify-content: flex-start; + } + .navbar-expand-lg .navbar-nav { + flex-direction: row; + } + .navbar-expand-lg .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-lg .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; + } + .navbar-expand-lg .navbar-nav-scroll { + overflow: visible; + } + .navbar-expand-lg .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + .navbar-expand-lg .navbar-toggler { + display: none; + } +} +@media (min-width: 1200px) { + .navbar-expand-xl { + flex-wrap: nowrap; + justify-content: flex-start; + } + .navbar-expand-xl .navbar-nav { + flex-direction: row; + } + .navbar-expand-xl .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-xl .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; + } + .navbar-expand-xl .navbar-nav-scroll { + overflow: visible; + } + .navbar-expand-xl .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + .navbar-expand-xl .navbar-toggler { + display: none; + } +} +@media (min-width: 1400px) { + .navbar-expand-xxl { + flex-wrap: nowrap; + justify-content: flex-start; + } + .navbar-expand-xxl .navbar-nav { + flex-direction: row; + } + .navbar-expand-xxl .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-xxl .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; + } + .navbar-expand-xxl .navbar-nav-scroll { + overflow: visible; + } + .navbar-expand-xxl .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + .navbar-expand-xxl .navbar-toggler { + display: none; + } +} +.navbar-expand { + flex-wrap: nowrap; + justify-content: flex-start; +} +.navbar-expand .navbar-nav { + flex-direction: row; +} +.navbar-expand .navbar-nav .dropdown-menu { + position: absolute; +} +.navbar-expand .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; +} +.navbar-expand .navbar-nav-scroll { + overflow: visible; +} +.navbar-expand .navbar-collapse { + display: flex !important; + flex-basis: auto; +} +.navbar-expand .navbar-toggler { + display: none; +} +.navbar-light .navbar-brand { + color: rgba(0, 0, 0, 0.9); +} +.navbar-light .navbar-brand:focus, +.navbar-light .navbar-brand:hover { + color: rgba(0, 0, 0, 0.9); +} +.navbar-light .navbar-nav .nav-link { + color: rgba(0, 0, 0, 0.55); +} +.navbar-light .navbar-nav .nav-link:focus, +.navbar-light .navbar-nav .nav-link:hover { + color: rgba(0, 0, 0, 0.7); +} +.navbar-light .navbar-nav .nav-link.disabled { + color: rgba(0, 0, 0, 0.3); +} +.navbar-light .navbar-nav .nav-link.active, +.navbar-light .navbar-nav .show > .nav-link { + color: rgba(0, 0, 0, 0.9); +} +.navbar-light .navbar-toggler { + color: rgba(0, 0, 0, 0.55); + border-color: rgba(0, 0, 0, 0.1); +} +.navbar-light .navbar-toggler-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); +} +.navbar-light .navbar-text { + color: rgba(0, 0, 0, 0.55); +} +.navbar-light .navbar-text a, +.navbar-light .navbar-text a:focus, +.navbar-light .navbar-text a:hover { + color: rgba(0, 0, 0, 0.9); +} +.navbar-dark .navbar-brand { + color: #fff; +} +.navbar-dark .navbar-brand:focus, +.navbar-dark .navbar-brand:hover { + color: #fff; +} +.navbar-dark .navbar-nav .nav-link { + color: rgba(255, 255, 255, 0.55); +} +.navbar-dark .navbar-nav .nav-link:focus, +.navbar-dark .navbar-nav .nav-link:hover { + color: rgba(255, 255, 255, 0.75); +} +.navbar-dark .navbar-nav .nav-link.disabled { + color: rgba(255, 255, 255, 0.25); +} +.navbar-dark .navbar-nav .nav-link.active, +.navbar-dark .navbar-nav .show > .nav-link { + color: #fff; +} +.navbar-dark .navbar-toggler { + color: rgba(255, 255, 255, 0.55); + border-color: rgba(255, 255, 255, 0.1); +} +.navbar-dark .navbar-toggler-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); +} +.navbar-dark .navbar-text { + color: rgba(255, 255, 255, 0.55); +} +.navbar-dark .navbar-text a, +.navbar-dark .navbar-text a:focus, +.navbar-dark .navbar-text a:hover { + color: #fff; +} +.card { + position: relative; + display: flex; + flex-direction: column; + min-width: 0; + word-wrap: break-word; + background-color: #fff; + background-clip: border-box; + border: 1px solid rgba(0, 0, 0, 0.125); + border-radius: 0.25rem; +} +.card > hr { + margin-right: 0; + margin-left: 0; +} +.card > .list-group { + border-top: inherit; + border-bottom: inherit; +} +.card > .list-group:first-child { + border-top-width: 0; + border-top-left-radius: calc(0.25rem - 1px); + border-top-right-radius: calc(0.25rem - 1px); +} +.card > .list-group:last-child { + border-bottom-width: 0; + border-bottom-right-radius: calc(0.25rem - 1px); + border-bottom-left-radius: calc(0.25rem - 1px); +} +.card > .card-header + .list-group, +.card > .list-group + .card-footer { + border-top: 0; +} +.card-body { + flex: 1 1 auto; + padding: 1rem 1rem; +} +.card-title { + margin-bottom: 0.5rem; +} +.card-subtitle { + margin-top: -0.25rem; + margin-bottom: 0; +} +.card-text:last-child { + margin-bottom: 0; +} +.card-link:hover { + text-decoration: none; +} +.card-link + .card-link { + margin-left: 1rem; +} +.card-header { + padding: 0.5rem 1rem; + margin-bottom: 0; + background-color: rgba(0, 0, 0, 0.03); + border-bottom: 1px solid rgba(0, 0, 0, 0.125); +} +.card-header:first-child { + border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0; +} +.card-footer { + padding: 0.5rem 1rem; + background-color: rgba(0, 0, 0, 0.03); + border-top: 1px solid rgba(0, 0, 0, 0.125); +} +.card-footer:last-child { + border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px); +} +.card-header-tabs { + margin-right: -0.5rem; + margin-bottom: -0.5rem; + margin-left: -0.5rem; + border-bottom: 0; +} +.card-header-pills { + margin-right: -0.5rem; + margin-left: -0.5rem; +} +.card-img-overlay { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + padding: 1rem; + border-radius: calc(0.25rem - 1px); +} +.card-img, +.card-img-bottom, +.card-img-top { + width: 100%; +} +.card-img, +.card-img-top { + border-top-left-radius: calc(0.25rem - 1px); + border-top-right-radius: calc(0.25rem - 1px); +} +.card-img, +.card-img-bottom { + border-bottom-right-radius: calc(0.25rem - 1px); + border-bottom-left-radius: calc(0.25rem - 1px); +} +.card-group > .card { + margin-bottom: 0.75rem; +} +@media (min-width: 576px) { + .card-group { + display: flex; + flex-flow: row wrap; + } + .card-group > .card { + flex: 1 0 0%; + margin-bottom: 0; + } + .card-group > .card + .card { + margin-left: 0; + border-left: 0; + } + .card-group > .card:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + } + .card-group > .card:not(:last-child) .card-header, + .card-group > .card:not(:last-child) .card-img-top { + border-top-right-radius: 0; + } + .card-group > .card:not(:last-child) .card-footer, + .card-group > .card:not(:last-child) .card-img-bottom { + border-bottom-right-radius: 0; + } + .card-group > .card:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + } + .card-group > .card:not(:first-child) .card-header, + .card-group > .card:not(:first-child) .card-img-top { + border-top-left-radius: 0; + } + .card-group > .card:not(:first-child) .card-footer, + .card-group > .card:not(:first-child) .card-img-bottom { + border-bottom-left-radius: 0; + } +} +.accordion-button { + position: relative; + display: flex; + align-items: center; + width: 100%; + padding: 1rem 1.25rem; + font-size: 1rem; + color: #212529; + text-align: left; + background-color: #fff; + border: 0; + border-radius: 0; + overflow-anchor: none; + transition: + color 0.15s ease-in-out, + background-color 0.15s ease-in-out, + border-color 0.15s ease-in-out, + box-shadow 0.15s ease-in-out, + border-radius 0.15s ease; +} +@media (prefers-reduced-motion: reduce) { + .accordion-button { + transition: none; + } +} +.accordion-button:not(.collapsed) { + color: #0c63e4; + background-color: #e7f1ff; + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.125); +} +.accordion-button:not(.collapsed)::after { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%230c63e4'%3e%3cpath fill-rule='evenodd' d='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'/%3e%3c/svg%3e"); + transform: rotate(-180deg); +} +.accordion-button::after { + flex-shrink: 0; + width: 1.25rem; + height: 1.25rem; + margin-left: auto; + content: ''; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='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'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-size: 1.25rem; + transition: transform 0.2s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .accordion-button::after { + transition: none; + } +} +.accordion-button:hover { + z-index: 2; +} +.accordion-button:focus { + z-index: 3; + border-color: #86b7fe; + outline: 0; + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} +.accordion-header { + margin-bottom: 0; +} +.accordion-item { + background-color: #fff; + border: 1px solid rgba(0, 0, 0, 0.125); +} +.accordion-item:first-of-type { + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem; +} +.accordion-item:first-of-type .accordion-button { + border-top-left-radius: calc(0.25rem - 1px); + border-top-right-radius: calc(0.25rem - 1px); +} +.accordion-item:not(:first-of-type) { + border-top: 0; +} +.accordion-item:last-of-type { + border-bottom-right-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; +} +.accordion-item:last-of-type .accordion-button.collapsed { + border-bottom-right-radius: calc(0.25rem - 1px); + border-bottom-left-radius: calc(0.25rem - 1px); +} +.accordion-item:last-of-type .accordion-collapse { + border-bottom-right-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; +} +.accordion-body { + padding: 1rem 1.25rem; +} +.accordion-flush .accordion-collapse { + border-width: 0; +} +.accordion-flush .accordion-item { + border-right: 0; + border-left: 0; + border-radius: 0; +} +.accordion-flush .accordion-item:first-child { + border-top: 0; +} +.accordion-flush .accordion-item:last-child { + border-bottom: 0; +} +.accordion-flush .accordion-item .accordion-button { + border-radius: 0; +} +.breadcrumb { + display: flex; + flex-wrap: wrap; + padding: 0 0; + margin-bottom: 1rem; + list-style: none; +} +.breadcrumb-item + .breadcrumb-item { + padding-left: 0.5rem; +} +.breadcrumb-item + .breadcrumb-item::before { + float: left; + padding-right: 0.5rem; + color: #6c757d; + content: var(--bs-breadcrumb-divider, '/'); +} +.breadcrumb-item.active { + color: #6c757d; +} +.pagination { + display: flex; + padding-left: 0; + list-style: none; +} +.page-link { + position: relative; + display: block; + color: #0d6efd; + text-decoration: none; + background-color: #fff; + border: 1px solid #dee2e6; + transition: + color 0.15s ease-in-out, + background-color 0.15s ease-in-out, + border-color 0.15s ease-in-out, + box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .page-link { + transition: none; + } +} +.page-link:hover { + z-index: 2; + color: #0a58ca; + background-color: #e9ecef; + border-color: #dee2e6; +} +.page-link:focus { + z-index: 3; + color: #0a58ca; + background-color: #e9ecef; + outline: 0; + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} +.page-item:not(:first-child) .page-link { + margin-left: -1px; +} +.page-item.active .page-link { + z-index: 3; + color: #fff; + background-color: #0d6efd; + border-color: #0d6efd; +} +.page-item.disabled .page-link { + color: #6c757d; + pointer-events: none; + background-color: #fff; + border-color: #dee2e6; +} +.page-link { + padding: 0.375rem 0.75rem; +} +.page-item:first-child .page-link { + border-top-left-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; +} +.page-item:last-child .page-link { + border-top-right-radius: 0.25rem; + border-bottom-right-radius: 0.25rem; +} +.pagination-lg .page-link { + padding: 0.75rem 1.5rem; + font-size: 1.25rem; +} +.pagination-lg .page-item:first-child .page-link { + border-top-left-radius: 0.3rem; + border-bottom-left-radius: 0.3rem; +} +.pagination-lg .page-item:last-child .page-link { + border-top-right-radius: 0.3rem; + border-bottom-right-radius: 0.3rem; +} +.pagination-sm .page-link { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; +} +.pagination-sm .page-item:first-child .page-link { + border-top-left-radius: 0.2rem; + border-bottom-left-radius: 0.2rem; +} +.pagination-sm .page-item:last-child .page-link { + border-top-right-radius: 0.2rem; + border-bottom-right-radius: 0.2rem; +} +.badge { + display: inline-block; + padding: 0.35em 0.65em; + font-size: 0.75em; + font-weight: 700; + line-height: 1; + color: #fff; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: 0.25rem; +} +.badge:empty { + display: none; +} +.btn .badge { + position: relative; + top: -1px; +} +.alert { + position: relative; + padding: 1rem 1rem; + margin-bottom: 1rem; + border: 1px solid transparent; + border-radius: 0.25rem; +} +.alert-heading { + color: inherit; +} +.alert-link { + font-weight: 700; +} +.alert-dismissible { + padding-right: 3rem; +} +.alert-dismissible .btn-close { + position: absolute; + top: 0; + right: 0; + z-index: 2; + padding: 1.25rem 1rem; +} +.alert-primary { + color: #084298; + background-color: #cfe2ff; + border-color: #b6d4fe; +} +.alert-primary .alert-link { + color: #06357a; +} +.alert-secondary { + color: #41464b; + background-color: #e2e3e5; + border-color: #d3d6d8; +} +.alert-secondary .alert-link { + color: #34383c; +} +.alert-success { + color: #0f5132; + background-color: #d1e7dd; + border-color: #badbcc; +} +.alert-success .alert-link { + color: #0c4128; +} +.alert-info { + color: #055160; + background-color: #cff4fc; + border-color: #b6effb; +} +.alert-info .alert-link { + color: #04414d; +} +.alert-warning { + color: #664d03; + background-color: #fff3cd; + border-color: #ffecb5; +} +.alert-warning .alert-link { + color: #523e02; +} +.alert-danger { + color: #842029; + background-color: #f8d7da; + border-color: #f5c2c7; +} +.alert-danger .alert-link { + color: #6a1a21; +} +.alert-light { + color: #636464; + background-color: #fefefe; + border-color: #fdfdfe; +} +.alert-light .alert-link { + color: #4f5050; +} +.alert-dark { + color: #141619; + background-color: #d3d3d4; + border-color: #bcbebf; +} +.alert-dark .alert-link { + color: #101214; +} +@-webkit-keyframes progress-bar-stripes { + 0% { + background-position-x: 1rem; + } +} +@keyframes progress-bar-stripes { + 0% { + background-position-x: 1rem; + } +} +.progress { + display: flex; + height: 1rem; + overflow: hidden; + font-size: 0.75rem; + background-color: #e9ecef; + border-radius: 0.25rem; +} +.progress-bar { + display: flex; + flex-direction: column; + justify-content: center; + overflow: hidden; + color: #fff; + text-align: center; + white-space: nowrap; + background-color: #0d6efd; + transition: width 0.6s ease; +} +@media (prefers-reduced-motion: reduce) { + .progress-bar { + transition: none; + } +} +.progress-bar-striped { + background-image: linear-gradient( + 45deg, + rgba(255, 255, 255, 0.15) 25%, + transparent 25%, + transparent 50%, + rgba(255, 255, 255, 0.15) 50%, + rgba(255, 255, 255, 0.15) 75%, + transparent 75%, + transparent + ); + background-size: 1rem 1rem; +} +.progress-bar-animated { + -webkit-animation: 1s linear infinite progress-bar-stripes; + animation: 1s linear infinite progress-bar-stripes; +} +@media (prefers-reduced-motion: reduce) { + .progress-bar-animated { + -webkit-animation: none; + animation: none; + } +} +.list-group { + display: flex; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; + border-radius: 0.25rem; +} +.list-group-numbered { + list-style-type: none; + counter-reset: section; +} +.list-group-numbered > li::before { + content: counters(section, '.') '. '; + counter-increment: section; +} +.list-group-item-action { + width: 100%; + color: #495057; + text-align: inherit; +} +.list-group-item-action:focus, +.list-group-item-action:hover { + z-index: 1; + color: #495057; + text-decoration: none; + background-color: #f8f9fa; +} +.list-group-item-action:active { + color: #212529; + background-color: #e9ecef; +} +.list-group-item { + position: relative; + display: block; + padding: 0.5rem 1rem; + color: #212529; + text-decoration: none; + background-color: #fff; + border: 1px solid rgba(0, 0, 0, 0.125); +} +.list-group-item:first-child { + border-top-left-radius: inherit; + border-top-right-radius: inherit; +} +.list-group-item:last-child { + border-bottom-right-radius: inherit; + border-bottom-left-radius: inherit; +} +.list-group-item.disabled, +.list-group-item:disabled { + color: #6c757d; + pointer-events: none; + background-color: #fff; +} +.list-group-item.active { + z-index: 2; + color: #fff; + background-color: #0d6efd; + border-color: #0d6efd; +} +.list-group-item + .list-group-item { + border-top-width: 0; +} +.list-group-item + .list-group-item.active { + margin-top: -1px; + border-top-width: 1px; +} +.list-group-horizontal { + flex-direction: row; +} +.list-group-horizontal > .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; +} +.list-group-horizontal > .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0; +} +.list-group-horizontal > .list-group-item.active { + margin-top: 0; +} +.list-group-horizontal > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; +} +.list-group-horizontal > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; +} +@media (min-width: 576px) { + .list-group-horizontal-sm { + flex-direction: row; + } + .list-group-horizontal-sm > .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; + } + .list-group-horizontal-sm > .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0; + } + .list-group-horizontal-sm > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-sm > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; + } + .list-group-horizontal-sm > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; + } +} +@media (min-width: 768px) { + .list-group-horizontal-md { + flex-direction: row; + } + .list-group-horizontal-md > .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; + } + .list-group-horizontal-md > .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0; + } + .list-group-horizontal-md > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-md > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; + } + .list-group-horizontal-md > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; + } +} +@media (min-width: 992px) { + .list-group-horizontal-lg { + flex-direction: row; + } + .list-group-horizontal-lg > .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; + } + .list-group-horizontal-lg > .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0; + } + .list-group-horizontal-lg > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-lg > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; + } + .list-group-horizontal-lg > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; + } +} +@media (min-width: 1200px) { + .list-group-horizontal-xl { + flex-direction: row; + } + .list-group-horizontal-xl > .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; + } + .list-group-horizontal-xl > .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0; + } + .list-group-horizontal-xl > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-xl > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; + } + .list-group-horizontal-xl > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; + } +} +@media (min-width: 1400px) { + .list-group-horizontal-xxl { + flex-direction: row; + } + .list-group-horizontal-xxl > .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; + } + .list-group-horizontal-xxl > .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0; + } + .list-group-horizontal-xxl > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-xxl > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; + } + .list-group-horizontal-xxl > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; + } +} +.list-group-flush { + border-radius: 0; +} +.list-group-flush > .list-group-item { + border-width: 0 0 1px; +} +.list-group-flush > .list-group-item:last-child { + border-bottom-width: 0; +} +.list-group-item-primary { + color: #084298; + background-color: #cfe2ff; +} +.list-group-item-primary.list-group-item-action:focus, +.list-group-item-primary.list-group-item-action:hover { + color: #084298; + background-color: #bacbe6; +} +.list-group-item-primary.list-group-item-action.active { + color: #fff; + background-color: #084298; + border-color: #084298; +} +.list-group-item-secondary { + color: #41464b; + background-color: #e2e3e5; +} +.list-group-item-secondary.list-group-item-action:focus, +.list-group-item-secondary.list-group-item-action:hover { + color: #41464b; + background-color: #cbccce; +} +.list-group-item-secondary.list-group-item-action.active { + color: #fff; + background-color: #41464b; + border-color: #41464b; +} +.list-group-item-success { + color: #0f5132; + background-color: #d1e7dd; +} +.list-group-item-success.list-group-item-action:focus, +.list-group-item-success.list-group-item-action:hover { + color: #0f5132; + background-color: #bcd0c7; +} +.list-group-item-success.list-group-item-action.active { + color: #fff; + background-color: #0f5132; + border-color: #0f5132; +} +.list-group-item-info { + color: #055160; + background-color: #cff4fc; +} +.list-group-item-info.list-group-item-action:focus, +.list-group-item-info.list-group-item-action:hover { + color: #055160; + background-color: #badce3; +} +.list-group-item-info.list-group-item-action.active { + color: #fff; + background-color: #055160; + border-color: #055160; +} +.list-group-item-warning { + color: #664d03; + background-color: #fff3cd; +} +.list-group-item-warning.list-group-item-action:focus, +.list-group-item-warning.list-group-item-action:hover { + color: #664d03; + background-color: #e6dbb9; +} +.list-group-item-warning.list-group-item-action.active { + color: #fff; + background-color: #664d03; + border-color: #664d03; +} +.list-group-item-danger { + color: #842029; + background-color: #f8d7da; +} +.list-group-item-danger.list-group-item-action:focus, +.list-group-item-danger.list-group-item-action:hover { + color: #842029; + background-color: #dfc2c4; +} +.list-group-item-danger.list-group-item-action.active { + color: #fff; + background-color: #842029; + border-color: #842029; +} +.list-group-item-light { + color: #636464; + background-color: #fefefe; +} +.list-group-item-light.list-group-item-action:focus, +.list-group-item-light.list-group-item-action:hover { + color: #636464; + background-color: #e5e5e5; +} +.list-group-item-light.list-group-item-action.active { + color: #fff; + background-color: #636464; + border-color: #636464; +} +.list-group-item-dark { + color: #141619; + background-color: #d3d3d4; +} +.list-group-item-dark.list-group-item-action:focus, +.list-group-item-dark.list-group-item-action:hover { + color: #141619; + background-color: #bebebf; +} +.list-group-item-dark.list-group-item-action.active { + color: #fff; + background-color: #141619; + border-color: #141619; +} +.btn-close { + box-sizing: content-box; + width: 1em; + height: 1em; + padding: 0.25em 0.25em; + color: #000; + background: transparent + url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") + center/1em auto no-repeat; + border: 0; + border-radius: 0.25rem; + opacity: 0.5; +} +.btn-close:hover { + color: #000; + text-decoration: none; + opacity: 0.75; +} +.btn-close:focus { + outline: 0; + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); + opacity: 1; +} +.btn-close.disabled, +.btn-close:disabled { + pointer-events: none; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + opacity: 0.25; +} +.btn-close-white { + filter: invert(1) grayscale(100%) brightness(200%); +} +.toast { + width: 350px; + max-width: 100%; + font-size: 0.875rem; + pointer-events: auto; + background-color: rgba(255, 255, 255, 0.85); + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.1); + box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); + border-radius: 0.25rem; +} +.toast:not(.showing):not(.show) { + opacity: 0; +} +.toast.hide { + display: none; +} +.toast-container { + width: -webkit-max-content; + width: -moz-max-content; + width: max-content; + max-width: 100%; + pointer-events: none; +} +.toast-container > :not(:last-child) { + margin-bottom: 0.75rem; +} +.toast-header { + display: flex; + align-items: center; + padding: 0.5rem 0.75rem; + color: #6c757d; + background-color: rgba(255, 255, 255, 0.85); + background-clip: padding-box; + border-bottom: 1px solid rgba(0, 0, 0, 0.05); + border-top-left-radius: calc(0.25rem - 1px); + border-top-right-radius: calc(0.25rem - 1px); +} +.toast-header .btn-close { + margin-right: -0.375rem; + margin-left: 0.75rem; +} +.toast-body { + padding: 0.75rem; + word-wrap: break-word; +} +.modal { + position: fixed; + top: 0; + left: 0; + z-index: 1060; + display: none; + width: 100%; + height: 100%; + overflow-x: hidden; + overflow-y: auto; + outline: 0; +} +.modal-dialog { + position: relative; + width: auto; + margin: 0.5rem; + pointer-events: none; +} +.modal.fade .modal-dialog { + transition: transform 0.3s ease-out; + transform: translate(0, -50px); +} +@media (prefers-reduced-motion: reduce) { + .modal.fade .modal-dialog { + transition: none; + } +} +.modal.show .modal-dialog { + transform: none; +} +.modal.modal-static .modal-dialog { + transform: scale(1.02); +} +.modal-dialog-scrollable { + height: calc(100% - 1rem); +} +.modal-dialog-scrollable .modal-content { + max-height: 100%; + overflow: hidden; +} +.modal-dialog-scrollable .modal-body { + overflow-y: auto; +} +.modal-dialog-centered { + display: flex; + align-items: center; + min-height: calc(100% - 1rem); +} +.modal-content { + position: relative; + display: flex; + flex-direction: column; + width: 100%; + pointer-events: auto; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 0.3rem; + outline: 0; +} +.modal-backdrop { + position: fixed; + top: 0; + left: 0; + z-index: 1040; + width: 100vw; + height: 100vh; + background-color: #000; +} +.modal-backdrop.fade { + opacity: 0; +} +.modal-backdrop.show { + opacity: 0.5; +} +.modal-header { + display: flex; + flex-shrink: 0; + align-items: center; + justify-content: space-between; + padding: 1rem 1rem; + border-bottom: 1px solid #dee2e6; + border-top-left-radius: calc(0.3rem - 1px); + border-top-right-radius: calc(0.3rem - 1px); +} +.modal-header .btn-close { + padding: 0.5rem 0.5rem; + margin: -0.5rem -0.5rem -0.5rem auto; +} +.modal-title { + margin-bottom: 0; + line-height: 1.5; +} +.modal-body { + position: relative; + flex: 1 1 auto; + padding: 1rem; +} +.modal-footer { + display: flex; + flex-wrap: wrap; + flex-shrink: 0; + align-items: center; + justify-content: flex-end; + padding: 0.75rem; + border-top: 1px solid #dee2e6; + border-bottom-right-radius: calc(0.3rem - 1px); + border-bottom-left-radius: calc(0.3rem - 1px); +} +.modal-footer > * { + margin: 0.25rem; +} +@media (min-width: 576px) { + .modal-dialog { + max-width: 500px; + margin: 1.75rem auto; + } + .modal-dialog-scrollable { + height: calc(100% - 3.5rem); + } + .modal-dialog-centered { + min-height: calc(100% - 3.5rem); + } + .modal-sm { + max-width: 300px; + } +} +@media (min-width: 992px) { + .modal-lg, + .modal-xl { + max-width: 800px; + } +} +@media (min-width: 1200px) { + .modal-xl { + max-width: 1140px; + } +} +.modal-fullscreen { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; +} +.modal-fullscreen .modal-content { + height: 100%; + border: 0; + border-radius: 0; +} +.modal-fullscreen .modal-header { + border-radius: 0; +} +.modal-fullscreen .modal-body { + overflow-y: auto; +} +.modal-fullscreen .modal-footer { + border-radius: 0; +} +@media (max-width: 575.98px) { + .modal-fullscreen-sm-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + .modal-fullscreen-sm-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + .modal-fullscreen-sm-down .modal-header { + border-radius: 0; + } + .modal-fullscreen-sm-down .modal-body { + overflow-y: auto; + } + .modal-fullscreen-sm-down .modal-footer { + border-radius: 0; + } +} +@media (max-width: 767.98px) { + .modal-fullscreen-md-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + .modal-fullscreen-md-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + .modal-fullscreen-md-down .modal-header { + border-radius: 0; + } + .modal-fullscreen-md-down .modal-body { + overflow-y: auto; + } + .modal-fullscreen-md-down .modal-footer { + border-radius: 0; + } +} +@media (max-width: 991.98px) { + .modal-fullscreen-lg-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + .modal-fullscreen-lg-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + .modal-fullscreen-lg-down .modal-header { + border-radius: 0; + } + .modal-fullscreen-lg-down .modal-body { + overflow-y: auto; + } + .modal-fullscreen-lg-down .modal-footer { + border-radius: 0; + } +} +@media (max-width: 1199.98px) { + .modal-fullscreen-xl-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + .modal-fullscreen-xl-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + .modal-fullscreen-xl-down .modal-header { + border-radius: 0; + } + .modal-fullscreen-xl-down .modal-body { + overflow-y: auto; + } + .modal-fullscreen-xl-down .modal-footer { + border-radius: 0; + } +} +@media (max-width: 1399.98px) { + .modal-fullscreen-xxl-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + .modal-fullscreen-xxl-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + .modal-fullscreen-xxl-down .modal-header { + border-radius: 0; + } + .modal-fullscreen-xxl-down .modal-body { + overflow-y: auto; + } + .modal-fullscreen-xxl-down .modal-footer { + border-radius: 0; + } +} +.tooltip { + position: absolute; + z-index: 1080; + display: block; + margin: 0; + font-family: var(--bs-font-sans-serif); + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + white-space: normal; + line-break: auto; + font-size: 0.875rem; + word-wrap: break-word; + opacity: 0; +} +.tooltip.show { + opacity: 0.9; +} +.tooltip .tooltip-arrow { + position: absolute; + display: block; + width: 0.8rem; + height: 0.4rem; +} +.tooltip .tooltip-arrow::before { + position: absolute; + content: ''; + border-color: transparent; + border-style: solid; +} +.bs-tooltip-auto[data-popper-placement^='top'], +.bs-tooltip-top { + padding: 0.4rem 0; +} +.bs-tooltip-auto[data-popper-placement^='top'] .tooltip-arrow, +.bs-tooltip-top .tooltip-arrow { + bottom: 0; +} +.bs-tooltip-auto[data-popper-placement^='top'] .tooltip-arrow::before, +.bs-tooltip-top .tooltip-arrow::before { + top: -1px; + border-width: 0.4rem 0.4rem 0; + border-top-color: #000; +} +.bs-tooltip-auto[data-popper-placement^='right'], +.bs-tooltip-end { + padding: 0 0.4rem; +} +.bs-tooltip-auto[data-popper-placement^='right'] .tooltip-arrow, +.bs-tooltip-end .tooltip-arrow { + left: 0; + width: 0.4rem; + height: 0.8rem; +} +.bs-tooltip-auto[data-popper-placement^='right'] .tooltip-arrow::before, +.bs-tooltip-end .tooltip-arrow::before { + right: -1px; + border-width: 0.4rem 0.4rem 0.4rem 0; + border-right-color: #000; +} +.bs-tooltip-auto[data-popper-placement^='bottom'], +.bs-tooltip-bottom { + padding: 0.4rem 0; +} +.bs-tooltip-auto[data-popper-placement^='bottom'] .tooltip-arrow, +.bs-tooltip-bottom .tooltip-arrow { + top: 0; +} +.bs-tooltip-auto[data-popper-placement^='bottom'] .tooltip-arrow::before, +.bs-tooltip-bottom .tooltip-arrow::before { + bottom: -1px; + border-width: 0 0.4rem 0.4rem; + border-bottom-color: #000; +} +.bs-tooltip-auto[data-popper-placement^='left'], +.bs-tooltip-start { + padding: 0 0.4rem; +} +.bs-tooltip-auto[data-popper-placement^='left'] .tooltip-arrow, +.bs-tooltip-start .tooltip-arrow { + right: 0; + width: 0.4rem; + height: 0.8rem; +} +.bs-tooltip-auto[data-popper-placement^='left'] .tooltip-arrow::before, +.bs-tooltip-start .tooltip-arrow::before { + left: -1px; + border-width: 0.4rem 0 0.4rem 0.4rem; + border-left-color: #000; +} +.tooltip-inner { + max-width: 200px; + padding: 0.25rem 0.5rem; + color: #fff; + text-align: center; + background-color: #000; + border-radius: 0.25rem; +} +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1070; + display: block; + max-width: 276px; + font-family: var(--bs-font-sans-serif); + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + white-space: normal; + line-break: auto; + font-size: 0.875rem; + word-wrap: break-word; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 0.3rem; +} +.popover .popover-arrow { + position: absolute; + display: block; + width: 1rem; + height: 0.5rem; +} +.popover .popover-arrow::after, +.popover .popover-arrow::before { + position: absolute; + display: block; + content: ''; + border-color: transparent; + border-style: solid; +} +.bs-popover-auto[data-popper-placement^='top'] > .popover-arrow, +.bs-popover-top > .popover-arrow { + bottom: calc(-0.5rem - 1px); +} +.bs-popover-auto[data-popper-placement^='top'] > .popover-arrow::before, +.bs-popover-top > .popover-arrow::before { + bottom: 0; + border-width: 0.5rem 0.5rem 0; + border-top-color: rgba(0, 0, 0, 0.25); +} +.bs-popover-auto[data-popper-placement^='top'] > .popover-arrow::after, +.bs-popover-top > .popover-arrow::after { + bottom: 1px; + border-width: 0.5rem 0.5rem 0; + border-top-color: #fff; +} +.bs-popover-auto[data-popper-placement^='right'] > .popover-arrow, +.bs-popover-end > .popover-arrow { + left: calc(-0.5rem - 1px); + width: 0.5rem; + height: 1rem; +} +.bs-popover-auto[data-popper-placement^='right'] > .popover-arrow::before, +.bs-popover-end > .popover-arrow::before { + left: 0; + border-width: 0.5rem 0.5rem 0.5rem 0; + border-right-color: rgba(0, 0, 0, 0.25); +} +.bs-popover-auto[data-popper-placement^='right'] > .popover-arrow::after, +.bs-popover-end > .popover-arrow::after { + left: 1px; + border-width: 0.5rem 0.5rem 0.5rem 0; + border-right-color: #fff; +} +.bs-popover-auto[data-popper-placement^='bottom'] > .popover-arrow, +.bs-popover-bottom > .popover-arrow { + top: calc(-0.5rem - 1px); +} +.bs-popover-auto[data-popper-placement^='bottom'] > .popover-arrow::before, +.bs-popover-bottom > .popover-arrow::before { + top: 0; + border-width: 0 0.5rem 0.5rem 0.5rem; + border-bottom-color: rgba(0, 0, 0, 0.25); +} +.bs-popover-auto[data-popper-placement^='bottom'] > .popover-arrow::after, +.bs-popover-bottom > .popover-arrow::after { + top: 1px; + border-width: 0 0.5rem 0.5rem 0.5rem; + border-bottom-color: #fff; +} +.bs-popover-auto[data-popper-placement^='bottom'] .popover-header::before, +.bs-popover-bottom .popover-header::before { + position: absolute; + top: 0; + left: 50%; + display: block; + width: 1rem; + margin-left: -0.5rem; + content: ''; + border-bottom: 1px solid #f0f0f0; +} +.bs-popover-auto[data-popper-placement^='left'] > .popover-arrow, +.bs-popover-start > .popover-arrow { + right: calc(-0.5rem - 1px); + width: 0.5rem; + height: 1rem; +} +.bs-popover-auto[data-popper-placement^='left'] > .popover-arrow::before, +.bs-popover-start > .popover-arrow::before { + right: 0; + border-width: 0.5rem 0 0.5rem 0.5rem; + border-left-color: rgba(0, 0, 0, 0.25); +} +.bs-popover-auto[data-popper-placement^='left'] > .popover-arrow::after, +.bs-popover-start > .popover-arrow::after { + right: 1px; + border-width: 0.5rem 0 0.5rem 0.5rem; + border-left-color: #fff; +} +.popover-header { + padding: 0.5rem 1rem; + margin-bottom: 0; + font-size: 1rem; + background-color: #f0f0f0; + border-bottom: 1px solid rgba(0, 0, 0, 0.2); + border-top-left-radius: calc(0.3rem - 1px); + border-top-right-radius: calc(0.3rem - 1px); +} +.popover-header:empty { + display: none; +} +.popover-body { + padding: 1rem 1rem; + color: #212529; +} +.carousel { + position: relative; +} +.carousel.pointer-event { + touch-action: pan-y; +} +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden; +} +.carousel-inner::after { + display: block; + clear: both; + content: ''; +} +.carousel-item { + position: relative; + display: none; + float: left; + width: 100%; + margin-right: -100%; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + transition: transform 0.6s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .carousel-item { + transition: none; + } +} +.carousel-item-next, +.carousel-item-prev, +.carousel-item.active { + display: block; +} +.active.carousel-item-end, +.carousel-item-next:not(.carousel-item-start) { + transform: translateX(100%); +} +.active.carousel-item-start, +.carousel-item-prev:not(.carousel-item-end) { + transform: translateX(-100%); +} +.carousel-fade .carousel-item { + opacity: 0; + transition-property: opacity; + transform: none; +} +.carousel-fade .carousel-item-next.carousel-item-start, +.carousel-fade .carousel-item-prev.carousel-item-end, +.carousel-fade .carousel-item.active { + z-index: 1; + opacity: 1; +} +.carousel-fade .active.carousel-item-end, +.carousel-fade .active.carousel-item-start { + z-index: 0; + opacity: 0; + transition: opacity 0s 0.6s; +} +@media (prefers-reduced-motion: reduce) { + .carousel-fade .active.carousel-item-end, + .carousel-fade .active.carousel-item-start { + transition: none; + } +} +.carousel-control-next, +.carousel-control-prev { + position: absolute; + top: 0; + bottom: 0; + z-index: 1; + display: flex; + align-items: center; + justify-content: center; + width: 15%; + padding: 0; + color: #fff; + text-align: center; + background: 0 0; + border: 0; + opacity: 0.5; + transition: opacity 0.15s ease; +} +@media (prefers-reduced-motion: reduce) { + .carousel-control-next, + .carousel-control-prev { + transition: none; + } +} +.carousel-control-next:focus, +.carousel-control-next:hover, +.carousel-control-prev:focus, +.carousel-control-prev:hover { + color: #fff; + text-decoration: none; + outline: 0; + opacity: 0.9; +} +.carousel-control-prev { + left: 0; +} +.carousel-control-next { + right: 0; +} +.carousel-control-next-icon, +.carousel-control-prev-icon { + display: inline-block; + width: 2rem; + height: 2rem; + background-repeat: no-repeat; + background-position: 50%; + background-size: 100% 100%; +} +.carousel-control-prev-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e"); +} +.carousel-control-next-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); +} +.carousel-indicators { + position: absolute; + right: 0; + bottom: 0; + left: 0; + z-index: 2; + display: flex; + justify-content: center; + padding: 0; + margin-right: 15%; + margin-bottom: 1rem; + margin-left: 15%; + list-style: none; +} +.carousel-indicators [data-bs-target] { + box-sizing: content-box; + flex: 0 1 auto; + width: 30px; + height: 3px; + padding: 0; + margin-right: 3px; + margin-left: 3px; + text-indent: -999px; + cursor: pointer; + background-color: #fff; + background-clip: padding-box; + border: 0; + border-top: 10px solid transparent; + border-bottom: 10px solid transparent; + opacity: 0.5; + transition: opacity 0.6s ease; +} +@media (prefers-reduced-motion: reduce) { + .carousel-indicators [data-bs-target] { + transition: none; + } +} +.carousel-indicators .active { + opacity: 1; +} +.carousel-caption { + position: absolute; + right: 15%; + bottom: 1.25rem; + left: 15%; + padding-top: 1.25rem; + padding-bottom: 1.25rem; + color: #fff; + text-align: center; +} +.carousel-dark .carousel-control-next-icon, +.carousel-dark .carousel-control-prev-icon { + filter: invert(1) grayscale(100); +} +.carousel-dark .carousel-indicators [data-bs-target] { + background-color: #000; +} +.carousel-dark .carousel-caption { + color: #000; +} +@-webkit-keyframes spinner-border { + to { + transform: rotate(360deg); + } +} +@keyframes spinner-border { + to { + transform: rotate(360deg); + } +} +.spinner-border { + display: inline-block; + width: 2rem; + height: 2rem; + vertical-align: -0.125em; + border: 0.25em solid currentColor; + border-right-color: transparent; + border-radius: 50%; + -webkit-animation: 0.75s linear infinite spinner-border; + animation: 0.75s linear infinite spinner-border; +} +.spinner-border-sm { + width: 1rem; + height: 1rem; + border-width: 0.2em; +} +@-webkit-keyframes spinner-grow { + 0% { + transform: scale(0); + } + 50% { + opacity: 1; + transform: none; + } +} +@keyframes spinner-grow { + 0% { + transform: scale(0); + } + 50% { + opacity: 1; + transform: none; + } +} +.spinner-grow { + display: inline-block; + width: 2rem; + height: 2rem; + vertical-align: -0.125em; + background-color: currentColor; + border-radius: 50%; + opacity: 0; + -webkit-animation: 0.75s linear infinite spinner-grow; + animation: 0.75s linear infinite spinner-grow; +} +.spinner-grow-sm { + width: 1rem; + height: 1rem; +} +@media (prefers-reduced-motion: reduce) { + .spinner-border, + .spinner-grow { + -webkit-animation-duration: 1.5s; + animation-duration: 1.5s; + } +} +.offcanvas { + position: fixed; + bottom: 0; + z-index: 1050; + display: flex; + flex-direction: column; + max-width: 100%; + visibility: hidden; + background-color: #fff; + background-clip: padding-box; + outline: 0; + transition: transform 0.3s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .offcanvas { + transition: none; + } +} +.offcanvas-header { + display: flex; + align-items: center; + justify-content: space-between; + padding: 1rem 1rem; +} +.offcanvas-header .btn-close { + padding: 0.5rem 0.5rem; + margin-top: -0.5rem; + margin-right: -0.5rem; + margin-bottom: -0.5rem; +} +.offcanvas-title { + margin-bottom: 0; + line-height: 1.5; +} +.offcanvas-body { + flex-grow: 1; + padding: 1rem 1rem; + overflow-y: auto; +} +.offcanvas-start { + top: 0; + left: 0; + width: 400px; + border-right: 1px solid rgba(0, 0, 0, 0.2); + transform: translateX(-100%); +} +.offcanvas-end { + top: 0; + right: 0; + width: 400px; + border-left: 1px solid rgba(0, 0, 0, 0.2); + transform: translateX(100%); +} +.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: 30vh; + max-height: 100%; + border-bottom: 1px solid rgba(0, 0, 0, 0.2); + transform: translateY(-100%); +} +.offcanvas-bottom { + right: 0; + left: 0; + height: 30vh; + max-height: 100%; + border-top: 1px solid rgba(0, 0, 0, 0.2); + transform: translateY(100%); +} +.offcanvas.show { + transform: none; +} +.clearfix::after { + display: block; + clear: both; + content: ''; +} +.link-primary { + color: #0d6efd; +} +.link-primary:focus, +.link-primary:hover { + color: #0a58ca; +} +.link-secondary { + color: #6c757d; +} +.link-secondary:focus, +.link-secondary:hover { + color: #565e64; +} +.link-success { + color: #198754; +} +.link-success:focus, +.link-success:hover { + color: #146c43; +} +.link-info { + color: #0dcaf0; +} +.link-info:focus, +.link-info:hover { + color: #3dd5f3; +} +.link-warning { + color: #ffc107; +} +.link-warning:focus, +.link-warning:hover { + color: #ffcd39; +} +.link-danger { + color: #dc3545; +} +.link-danger:focus, +.link-danger:hover { + color: #b02a37; +} +.link-light { + color: #f8f9fa; +} +.link-light:focus, +.link-light:hover { + color: #f9fafb; +} +.link-dark { + color: #212529; +} +.link-dark:focus, +.link-dark:hover { + color: #1a1e21; +} +.ratio { + position: relative; + width: 100%; +} +.ratio::before { + display: block; + padding-top: var(--bs-aspect-ratio); + content: ''; +} +.ratio > * { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} +.ratio-1x1 { + --bs-aspect-ratio: 100%; +} +.ratio-4x3 { + --bs-aspect-ratio: calc(3 / 4 * 100%); +} +.ratio-16x9 { + --bs-aspect-ratio: calc(9 / 16 * 100%); +} +.ratio-21x9 { + --bs-aspect-ratio: calc(9 / 21 * 100%); +} +.fixed-top { + position: fixed; + top: 0; + right: 0; + left: 0; + z-index: 1030; +} +.fixed-bottom { + position: fixed; + right: 0; + bottom: 0; + left: 0; + z-index: 1030; +} +.sticky-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; +} +@media (min-width: 576px) { + .sticky-sm-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; + } +} +@media (min-width: 768px) { + .sticky-md-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; + } +} +@media (min-width: 992px) { + .sticky-lg-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; + } +} +@media (min-width: 1200px) { + .sticky-xl-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; + } +} +@media (min-width: 1400px) { + .sticky-xxl-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; + } +} +.visually-hidden, +.visually-hidden-focusable:not(:focus):not(:focus-within) { + position: absolute !important; + width: 1px !important; + height: 1px !important; + padding: 0 !important; + margin: -1px !important; + overflow: hidden !important; + clip: rect(0, 0, 0, 0) !important; + white-space: nowrap !important; + border: 0 !important; +} +.stretched-link::after { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1; + content: ''; +} +.text-truncate { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.align-baseline { + vertical-align: baseline !important; +} +.align-top { + vertical-align: top !important; +} +.align-middle { + vertical-align: middle !important; +} +.align-bottom { + vertical-align: bottom !important; +} +.align-text-bottom { + vertical-align: text-bottom !important; +} +.align-text-top { + vertical-align: text-top !important; +} +.float-start { + float: left !important; +} +.float-end { + float: right !important; +} +.float-none { + float: none !important; +} +.overflow-auto { + overflow: auto !important; +} +.overflow-hidden { + overflow: hidden !important; +} +.overflow-visible { + overflow: visible !important; +} +.overflow-scroll { + overflow: scroll !important; +} +.d-inline { + display: inline !important; +} +.d-inline-block { + display: inline-block !important; +} +.d-block { + display: block !important; +} +.d-grid { + display: grid !important; +} +.d-table { + display: table !important; +} +.d-table-row { + display: table-row !important; +} +.d-table-cell { + display: table-cell !important; +} +.d-flex { + display: flex !important; +} +.d-inline-flex { + display: inline-flex !important; +} +.d-none { + display: none !important; +} +.shadow { + box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important; +} +.shadow-sm { + box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important; +} +.shadow-lg { + box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important; +} +.shadow-none { + box-shadow: none !important; +} +.position-static { + position: static !important; +} +.position-relative { + position: relative !important; +} +.position-absolute { + position: absolute !important; +} +.position-fixed { + position: fixed !important; +} +.position-sticky { + position: -webkit-sticky !important; + position: sticky !important; +} +.top-0 { + top: 0 !important; +} +.top-50 { + top: 50% !important; +} +.top-100 { + top: 100% !important; +} +.bottom-0 { + bottom: 0 !important; +} +.bottom-50 { + bottom: 50% !important; +} +.bottom-100 { + bottom: 100% !important; +} +.start-0 { + left: 0 !important; +} +.start-50 { + left: 50% !important; +} +.start-100 { + left: 100% !important; +} +.end-0 { + right: 0 !important; +} +.end-50 { + right: 50% !important; +} +.end-100 { + right: 100% !important; +} +.translate-middle { + transform: translate(-50%, -50%) !important; +} +.translate-middle-x { + transform: translateX(-50%) !important; +} +.translate-middle-y { + transform: translateY(-50%) !important; +} +.border { + border: 1px solid #dee2e6 !important; +} +.border-0 { + border: 0 !important; +} +.border-top { + border-top: 1px solid #dee2e6 !important; +} +.border-top-0 { + border-top: 0 !important; +} +.border-end { + border-right: 1px solid #dee2e6 !important; +} +.border-end-0 { + border-right: 0 !important; +} +.border-bottom { + border-bottom: 1px solid #dee2e6 !important; +} +.border-bottom-0 { + border-bottom: 0 !important; +} +.border-start { + border-left: 1px solid #dee2e6 !important; +} +.border-start-0 { + border-left: 0 !important; +} +.border-primary { + border-color: #0d6efd !important; +} +.border-secondary { + border-color: #6c757d !important; +} +.border-success { + border-color: #198754 !important; +} +.border-info { + border-color: #0dcaf0 !important; +} +.border-warning { + border-color: #ffc107 !important; +} +.border-danger { + border-color: #dc3545 !important; +} +.border-light { + border-color: #f8f9fa !important; +} +.border-dark { + border-color: #212529 !important; +} +.border-white { + border-color: #fff !important; +} +.border-1 { + border-width: 1px !important; +} +.border-2 { + border-width: 2px !important; +} +.border-3 { + border-width: 3px !important; +} +.border-4 { + border-width: 4px !important; +} +.border-5 { + border-width: 5px !important; +} +.w-25 { + width: 25% !important; +} +.w-50 { + width: 50% !important; +} +.w-75 { + width: 75% !important; +} +.w-100 { + width: 100% !important; +} +.w-auto { + width: auto !important; +} +.mw-100 { + max-width: 100% !important; +} +.vw-100 { + width: 100vw !important; +} +.min-vw-100 { + min-width: 100vw !important; +} +.h-25 { + height: 25% !important; +} +.h-50 { + height: 50% !important; +} +.h-75 { + height: 75% !important; +} +.h-100 { + height: 100% !important; +} +.h-auto { + height: auto !important; +} +.mh-100 { + max-height: 100% !important; +} +.vh-100 { + height: 100vh !important; +} +.min-vh-100 { + min-height: 100vh !important; +} +.flex-fill { + flex: 1 1 auto !important; +} +.flex-row { + flex-direction: row !important; +} +.flex-column { + flex-direction: column !important; +} +.flex-row-reverse { + flex-direction: row-reverse !important; +} +.flex-column-reverse { + flex-direction: column-reverse !important; +} +.flex-grow-0 { + flex-grow: 0 !important; +} +.flex-grow-1 { + flex-grow: 1 !important; +} +.flex-shrink-0 { + flex-shrink: 0 !important; +} +.flex-shrink-1 { + flex-shrink: 1 !important; +} +.flex-wrap { + flex-wrap: wrap !important; +} +.flex-nowrap { + flex-wrap: nowrap !important; +} +.flex-wrap-reverse { + flex-wrap: wrap-reverse !important; +} +.gap-0 { + gap: 0 !important; +} +.gap-1 { + gap: 0.25rem !important; +} +.gap-2 { + gap: 0.5rem !important; +} +.gap-3 { + gap: 1rem !important; +} +.gap-4 { + gap: 1.5rem !important; +} +.gap-5 { + gap: 3rem !important; +} +.justify-content-start { + justify-content: flex-start !important; +} +.justify-content-end { + justify-content: flex-end !important; +} +.justify-content-center { + justify-content: center !important; +} +.justify-content-between { + justify-content: space-between !important; +} +.justify-content-around { + justify-content: space-around !important; +} +.justify-content-evenly { + justify-content: space-evenly !important; +} +.align-items-start { + align-items: flex-start !important; +} +.align-items-end { + align-items: flex-end !important; +} +.align-items-center { + align-items: center !important; +} +.align-items-baseline { + align-items: baseline !important; +} +.align-items-stretch { + align-items: stretch !important; +} +.align-content-start { + align-content: flex-start !important; +} +.align-content-end { + align-content: flex-end !important; +} +.align-content-center { + align-content: center !important; +} +.align-content-between { + align-content: space-between !important; +} +.align-content-around { + align-content: space-around !important; +} +.align-content-stretch { + align-content: stretch !important; +} +.align-self-auto { + align-self: auto !important; +} +.align-self-start { + align-self: flex-start !important; +} +.align-self-end { + align-self: flex-end !important; +} +.align-self-center { + align-self: center !important; +} +.align-self-baseline { + align-self: baseline !important; +} +.align-self-stretch { + align-self: stretch !important; +} +.order-first { + order: -1 !important; +} +.order-0 { + order: 0 !important; +} +.order-1 { + order: 1 !important; +} +.order-2 { + order: 2 !important; +} +.order-3 { + order: 3 !important; +} +.order-4 { + order: 4 !important; +} +.order-5 { + order: 5 !important; +} +.order-last { + order: 6 !important; +} +.m-0 { + margin: 0 !important; +} +.m-1 { + margin: 0.25rem !important; +} +.m-2 { + margin: 0.5rem !important; +} +.m-3 { + margin: 1rem !important; +} +.m-4 { + margin: 1.5rem !important; +} +.m-5 { + margin: 3rem !important; +} +.m-auto { + margin: auto !important; +} +.mx-0 { + margin-right: 0 !important; + margin-left: 0 !important; +} +.mx-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; +} +.mx-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; +} +.mx-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; +} +.mx-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; +} +.mx-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; +} +.mx-auto { + margin-right: auto !important; + margin-left: auto !important; +} +.my-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; +} +.my-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; +} +.my-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; +} +.my-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; +} +.my-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; +} +.my-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; +} +.my-auto { + margin-top: auto !important; + margin-bottom: auto !important; +} +.mt-0 { + margin-top: 0 !important; +} +.mt-1 { + margin-top: 0.25rem !important; +} +.mt-2 { + margin-top: 0.5rem !important; +} +.mt-3 { + margin-top: 1rem !important; +} +.mt-4 { + margin-top: 1.5rem !important; +} +.mt-5 { + margin-top: 3rem !important; +} +.mt-auto { + margin-top: auto !important; +} +.me-0 { + margin-right: 0 !important; +} +.me-1 { + margin-right: 0.25rem !important; +} +.me-2 { + margin-right: 0.5rem !important; +} +.me-3 { + margin-right: 1rem !important; +} +.me-4 { + margin-right: 1.5rem !important; +} +.me-5 { + margin-right: 3rem !important; +} +.me-auto { + margin-right: auto !important; +} +.mb-0 { + margin-bottom: 0 !important; +} +.mb-1 { + margin-bottom: 0.25rem !important; +} +.mb-2 { + margin-bottom: 0.5rem !important; +} +.mb-3 { + margin-bottom: 1rem !important; +} +.mb-4 { + margin-bottom: 1.5rem !important; +} +.mb-5 { + margin-bottom: 3rem !important; +} +.mb-auto { + margin-bottom: auto !important; +} +.ms-0 { + margin-left: 0 !important; +} +.ms-1 { + margin-left: 0.25rem !important; +} +.ms-2 { + margin-left: 0.5rem !important; +} +.ms-3 { + margin-left: 1rem !important; +} +.ms-4 { + margin-left: 1.5rem !important; +} +.ms-5 { + margin-left: 3rem !important; +} +.ms-auto { + margin-left: auto !important; +} +.p-0 { + padding: 0 !important; +} +.p-1 { + padding: 0.25rem !important; +} +.p-2 { + padding: 0.5rem !important; +} +.p-3 { + padding: 1rem !important; +} +.p-4 { + padding: 1.5rem !important; +} +.p-5 { + padding: 3rem !important; +} +.px-0 { + padding-right: 0 !important; + padding-left: 0 !important; +} +.px-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; +} +.px-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; +} +.px-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; +} +.px-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; +} +.px-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; +} +.py-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; +} +.py-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; +} +.py-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; +} +.py-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; +} +.py-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; +} +.py-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; +} +.pt-0 { + padding-top: 0 !important; +} +.pt-1 { + padding-top: 0.25rem !important; +} +.pt-2 { + padding-top: 0.5rem !important; +} +.pt-3 { + padding-top: 1rem !important; +} +.pt-4 { + padding-top: 1.5rem !important; +} +.pt-5 { + padding-top: 3rem !important; +} +.pe-0 { + padding-right: 0 !important; +} +.pe-1 { + padding-right: 0.25rem !important; +} +.pe-2 { + padding-right: 0.5rem !important; +} +.pe-3 { + padding-right: 1rem !important; +} +.pe-4 { + padding-right: 1.5rem !important; +} +.pe-5 { + padding-right: 3rem !important; +} +.pb-0 { + padding-bottom: 0 !important; +} +.pb-1 { + padding-bottom: 0.25rem !important; +} +.pb-2 { + padding-bottom: 0.5rem !important; +} +.pb-3 { + padding-bottom: 1rem !important; +} +.pb-4 { + padding-bottom: 1.5rem !important; +} +.pb-5 { + padding-bottom: 3rem !important; +} +.ps-0 { + padding-left: 0 !important; +} +.ps-1 { + padding-left: 0.25rem !important; +} +.ps-2 { + padding-left: 0.5rem !important; +} +.ps-3 { + padding-left: 1rem !important; +} +.ps-4 { + padding-left: 1.5rem !important; +} +.ps-5 { + padding-left: 3rem !important; +} +.font-monospace { + font-family: var(--bs-font-monospace) !important; +} +.fs-1 { + font-size: calc(1.375rem + 1.5vw) !important; +} +.fs-2 { + font-size: calc(1.325rem + 0.9vw) !important; +} +.fs-3 { + font-size: calc(1.3rem + 0.6vw) !important; +} +.fs-4 { + font-size: calc(1.275rem + 0.3vw) !important; +} +.fs-5 { + font-size: 1.25rem !important; +} +.fs-6 { + font-size: 1rem !important; +} +.fst-italic { + font-style: italic !important; +} +.fst-normal { + font-style: normal !important; +} +.fw-light { + font-weight: 300 !important; +} +.fw-lighter { + font-weight: lighter !important; +} +.fw-normal { + font-weight: 400 !important; +} +.fw-bold { + font-weight: 700 !important; +} +.fw-bolder { + font-weight: bolder !important; +} +.lh-1 { + line-height: 1 !important; +} +.lh-sm { + line-height: 1.25 !important; +} +.lh-base { + line-height: 1.5 !important; +} +.lh-lg { + line-height: 2 !important; +} +.text-start { + text-align: left !important; +} +.text-end { + text-align: right !important; +} +.text-center { + text-align: center !important; +} +.text-decoration-none { + text-decoration: none !important; +} +.text-decoration-underline { + text-decoration: underline !important; +} +.text-decoration-line-through { + text-decoration: line-through !important; +} +.text-lowercase { + text-transform: lowercase !important; +} +.text-uppercase { + text-transform: uppercase !important; +} +.text-capitalize { + text-transform: capitalize !important; +} +.text-wrap { + white-space: normal !important; +} +.text-nowrap { + white-space: nowrap !important; +} +.text-break { + word-wrap: break-word !important; + word-break: break-word !important; +} +.text-primary { + color: #0d6efd !important; +} +.text-secondary { + color: #6c757d !important; +} +.text-success { + color: #198754 !important; +} +.text-info { + color: #0dcaf0 !important; +} +.text-warning { + color: #ffc107 !important; +} +.text-danger { + color: #dc3545 !important; +} +.text-light { + color: #f8f9fa !important; +} +.text-dark { + color: #212529 !important; +} +.text-white { + color: #fff !important; +} +.text-body { + color: #212529 !important; +} +.text-muted { + color: #6c757d !important; +} +.text-black-50 { + color: rgba(0, 0, 0, 0.5) !important; +} +.text-white-50 { + color: rgba(255, 255, 255, 0.5) !important; +} +.text-reset { + color: inherit !important; +} +.bg-primary { + background-color: #0d6efd !important; +} +.bg-secondary { + background-color: #6c757d !important; +} +.bg-success { + background-color: #198754 !important; +} +.bg-info { + background-color: #0dcaf0 !important; +} +.bg-warning { + background-color: #ffc107 !important; +} +.bg-danger { + background-color: #dc3545 !important; +} +.bg-light { + background-color: #f8f9fa !important; +} +.bg-dark { + background-color: #212529 !important; +} +.bg-body { + background-color: #fff !important; +} +.bg-white { + background-color: #fff !important; +} +.bg-transparent { + background-color: transparent !important; +} +.bg-gradient { + background-image: var(--bs-gradient) !important; +} +.user-select-all { + -webkit-user-select: all !important; + -moz-user-select: all !important; + user-select: all !important; +} +.user-select-auto { + -webkit-user-select: auto !important; + -moz-user-select: auto !important; + user-select: auto !important; +} +.user-select-none { + -webkit-user-select: none !important; + -moz-user-select: none !important; + user-select: none !important; +} +.pe-none { + pointer-events: none !important; +} +.pe-auto { + pointer-events: auto !important; +} +.rounded { + border-radius: 0.25rem !important; +} +.rounded-0 { + border-radius: 0 !important; +} +.rounded-1 { + border-radius: 0.2rem !important; +} +.rounded-2 { + border-radius: 0.25rem !important; +} +.rounded-3 { + border-radius: 0.3rem !important; +} +.rounded-circle { + border-radius: 50% !important; +} +.rounded-pill { + border-radius: 50rem !important; +} +.rounded-top { + border-top-left-radius: 0.25rem !important; + border-top-right-radius: 0.25rem !important; +} +.rounded-end { + border-top-right-radius: 0.25rem !important; + border-bottom-right-radius: 0.25rem !important; +} +.rounded-bottom { + border-bottom-right-radius: 0.25rem !important; + border-bottom-left-radius: 0.25rem !important; +} +.rounded-start { + border-bottom-left-radius: 0.25rem !important; + border-top-left-radius: 0.25rem !important; +} +.visible { + visibility: visible !important; +} +.invisible { + visibility: hidden !important; +} +@media (min-width: 576px) { + .float-sm-start { + float: left !important; + } + .float-sm-end { + float: right !important; + } + .float-sm-none { + float: none !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-block { + display: block !important; + } + .d-sm-grid { + display: grid !important; + } + .d-sm-table { + display: table !important; + } + .d-sm-table-row { + display: table-row !important; + } + .d-sm-table-cell { + display: table-cell !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline-flex { + display: inline-flex !important; + } + .d-sm-none { + display: none !important; + } + .flex-sm-fill { + flex: 1 1 auto !important; + } + .flex-sm-row { + flex-direction: row !important; + } + .flex-sm-column { + flex-direction: column !important; + } + .flex-sm-row-reverse { + flex-direction: row-reverse !important; + } + .flex-sm-column-reverse { + flex-direction: column-reverse !important; + } + .flex-sm-grow-0 { + flex-grow: 0 !important; + } + .flex-sm-grow-1 { + flex-grow: 1 !important; + } + .flex-sm-shrink-0 { + flex-shrink: 0 !important; + } + .flex-sm-shrink-1 { + flex-shrink: 1 !important; + } + .flex-sm-wrap { + flex-wrap: wrap !important; + } + .flex-sm-nowrap { + flex-wrap: nowrap !important; + } + .flex-sm-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .gap-sm-0 { + gap: 0 !important; + } + .gap-sm-1 { + gap: 0.25rem !important; + } + .gap-sm-2 { + gap: 0.5rem !important; + } + .gap-sm-3 { + gap: 1rem !important; + } + .gap-sm-4 { + gap: 1.5rem !important; + } + .gap-sm-5 { + gap: 3rem !important; + } + .justify-content-sm-start { + justify-content: flex-start !important; + } + .justify-content-sm-end { + justify-content: flex-end !important; + } + .justify-content-sm-center { + justify-content: center !important; + } + .justify-content-sm-between { + justify-content: space-between !important; + } + .justify-content-sm-around { + justify-content: space-around !important; + } + .justify-content-sm-evenly { + justify-content: space-evenly !important; + } + .align-items-sm-start { + align-items: flex-start !important; + } + .align-items-sm-end { + align-items: flex-end !important; + } + .align-items-sm-center { + align-items: center !important; + } + .align-items-sm-baseline { + align-items: baseline !important; + } + .align-items-sm-stretch { + align-items: stretch !important; + } + .align-content-sm-start { + align-content: flex-start !important; + } + .align-content-sm-end { + align-content: flex-end !important; + } + .align-content-sm-center { + align-content: center !important; + } + .align-content-sm-between { + align-content: space-between !important; + } + .align-content-sm-around { + align-content: space-around !important; + } + .align-content-sm-stretch { + align-content: stretch !important; + } + .align-self-sm-auto { + align-self: auto !important; + } + .align-self-sm-start { + align-self: flex-start !important; + } + .align-self-sm-end { + align-self: flex-end !important; + } + .align-self-sm-center { + align-self: center !important; + } + .align-self-sm-baseline { + align-self: baseline !important; + } + .align-self-sm-stretch { + align-self: stretch !important; + } + .order-sm-first { + order: -1 !important; + } + .order-sm-0 { + order: 0 !important; + } + .order-sm-1 { + order: 1 !important; + } + .order-sm-2 { + order: 2 !important; + } + .order-sm-3 { + order: 3 !important; + } + .order-sm-4 { + order: 4 !important; + } + .order-sm-5 { + order: 5 !important; + } + .order-sm-last { + order: 6 !important; + } + .m-sm-0 { + margin: 0 !important; + } + .m-sm-1 { + margin: 0.25rem !important; + } + .m-sm-2 { + margin: 0.5rem !important; + } + .m-sm-3 { + margin: 1rem !important; + } + .m-sm-4 { + margin: 1.5rem !important; + } + .m-sm-5 { + margin: 3rem !important; + } + .m-sm-auto { + margin: auto !important; + } + .mx-sm-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .mx-sm-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-sm-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .mx-sm-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .mx-sm-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .mx-sm-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .mx-sm-auto { + margin-right: auto !important; + margin-left: auto !important; + } + .my-sm-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-sm-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-sm-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-sm-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-sm-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-sm-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-sm-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-sm-0 { + margin-top: 0 !important; + } + .mt-sm-1 { + margin-top: 0.25rem !important; + } + .mt-sm-2 { + margin-top: 0.5rem !important; + } + .mt-sm-3 { + margin-top: 1rem !important; + } + .mt-sm-4 { + margin-top: 1.5rem !important; + } + .mt-sm-5 { + margin-top: 3rem !important; + } + .mt-sm-auto { + margin-top: auto !important; + } + .me-sm-0 { + margin-right: 0 !important; + } + .me-sm-1 { + margin-right: 0.25rem !important; + } + .me-sm-2 { + margin-right: 0.5rem !important; + } + .me-sm-3 { + margin-right: 1rem !important; + } + .me-sm-4 { + margin-right: 1.5rem !important; + } + .me-sm-5 { + margin-right: 3rem !important; + } + .me-sm-auto { + margin-right: auto !important; + } + .mb-sm-0 { + margin-bottom: 0 !important; + } + .mb-sm-1 { + margin-bottom: 0.25rem !important; + } + .mb-sm-2 { + margin-bottom: 0.5rem !important; + } + .mb-sm-3 { + margin-bottom: 1rem !important; + } + .mb-sm-4 { + margin-bottom: 1.5rem !important; + } + .mb-sm-5 { + margin-bottom: 3rem !important; + } + .mb-sm-auto { + margin-bottom: auto !important; + } + .ms-sm-0 { + margin-left: 0 !important; + } + .ms-sm-1 { + margin-left: 0.25rem !important; + } + .ms-sm-2 { + margin-left: 0.5rem !important; + } + .ms-sm-3 { + margin-left: 1rem !important; + } + .ms-sm-4 { + margin-left: 1.5rem !important; + } + .ms-sm-5 { + margin-left: 3rem !important; + } + .ms-sm-auto { + margin-left: auto !important; + } + .p-sm-0 { + padding: 0 !important; + } + .p-sm-1 { + padding: 0.25rem !important; + } + .p-sm-2 { + padding: 0.5rem !important; + } + .p-sm-3 { + padding: 1rem !important; + } + .p-sm-4 { + padding: 1.5rem !important; + } + .p-sm-5 { + padding: 3rem !important; + } + .px-sm-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .px-sm-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-sm-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .px-sm-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .px-sm-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .px-sm-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-sm-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-sm-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-sm-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-sm-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-sm-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-sm-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-sm-0 { + padding-top: 0 !important; + } + .pt-sm-1 { + padding-top: 0.25rem !important; + } + .pt-sm-2 { + padding-top: 0.5rem !important; + } + .pt-sm-3 { + padding-top: 1rem !important; + } + .pt-sm-4 { + padding-top: 1.5rem !important; + } + .pt-sm-5 { + padding-top: 3rem !important; + } + .pe-sm-0 { + padding-right: 0 !important; + } + .pe-sm-1 { + padding-right: 0.25rem !important; + } + .pe-sm-2 { + padding-right: 0.5rem !important; + } + .pe-sm-3 { + padding-right: 1rem !important; + } + .pe-sm-4 { + padding-right: 1.5rem !important; + } + .pe-sm-5 { + padding-right: 3rem !important; + } + .pb-sm-0 { + padding-bottom: 0 !important; + } + .pb-sm-1 { + padding-bottom: 0.25rem !important; + } + .pb-sm-2 { + padding-bottom: 0.5rem !important; + } + .pb-sm-3 { + padding-bottom: 1rem !important; + } + .pb-sm-4 { + padding-bottom: 1.5rem !important; + } + .pb-sm-5 { + padding-bottom: 3rem !important; + } + .ps-sm-0 { + padding-left: 0 !important; + } + .ps-sm-1 { + padding-left: 0.25rem !important; + } + .ps-sm-2 { + padding-left: 0.5rem !important; + } + .ps-sm-3 { + padding-left: 1rem !important; + } + .ps-sm-4 { + padding-left: 1.5rem !important; + } + .ps-sm-5 { + padding-left: 3rem !important; + } + .text-sm-start { + text-align: left !important; + } + .text-sm-end { + text-align: right !important; + } + .text-sm-center { + text-align: center !important; + } +} +@media (min-width: 768px) { + .float-md-start { + float: left !important; + } + .float-md-end { + float: right !important; + } + .float-md-none { + float: none !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-block { + display: block !important; + } + .d-md-grid { + display: grid !important; + } + .d-md-table { + display: table !important; + } + .d-md-table-row { + display: table-row !important; + } + .d-md-table-cell { + display: table-cell !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline-flex { + display: inline-flex !important; + } + .d-md-none { + display: none !important; + } + .flex-md-fill { + flex: 1 1 auto !important; + } + .flex-md-row { + flex-direction: row !important; + } + .flex-md-column { + flex-direction: column !important; + } + .flex-md-row-reverse { + flex-direction: row-reverse !important; + } + .flex-md-column-reverse { + flex-direction: column-reverse !important; + } + .flex-md-grow-0 { + flex-grow: 0 !important; + } + .flex-md-grow-1 { + flex-grow: 1 !important; + } + .flex-md-shrink-0 { + flex-shrink: 0 !important; + } + .flex-md-shrink-1 { + flex-shrink: 1 !important; + } + .flex-md-wrap { + flex-wrap: wrap !important; + } + .flex-md-nowrap { + flex-wrap: nowrap !important; + } + .flex-md-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .gap-md-0 { + gap: 0 !important; + } + .gap-md-1 { + gap: 0.25rem !important; + } + .gap-md-2 { + gap: 0.5rem !important; + } + .gap-md-3 { + gap: 1rem !important; + } + .gap-md-4 { + gap: 1.5rem !important; + } + .gap-md-5 { + gap: 3rem !important; + } + .justify-content-md-start { + justify-content: flex-start !important; + } + .justify-content-md-end { + justify-content: flex-end !important; + } + .justify-content-md-center { + justify-content: center !important; + } + .justify-content-md-between { + justify-content: space-between !important; + } + .justify-content-md-around { + justify-content: space-around !important; + } + .justify-content-md-evenly { + justify-content: space-evenly !important; + } + .align-items-md-start { + align-items: flex-start !important; + } + .align-items-md-end { + align-items: flex-end !important; + } + .align-items-md-center { + align-items: center !important; + } + .align-items-md-baseline { + align-items: baseline !important; + } + .align-items-md-stretch { + align-items: stretch !important; + } + .align-content-md-start { + align-content: flex-start !important; + } + .align-content-md-end { + align-content: flex-end !important; + } + .align-content-md-center { + align-content: center !important; + } + .align-content-md-between { + align-content: space-between !important; + } + .align-content-md-around { + align-content: space-around !important; + } + .align-content-md-stretch { + align-content: stretch !important; + } + .align-self-md-auto { + align-self: auto !important; + } + .align-self-md-start { + align-self: flex-start !important; + } + .align-self-md-end { + align-self: flex-end !important; + } + .align-self-md-center { + align-self: center !important; + } + .align-self-md-baseline { + align-self: baseline !important; + } + .align-self-md-stretch { + align-self: stretch !important; + } + .order-md-first { + order: -1 !important; + } + .order-md-0 { + order: 0 !important; + } + .order-md-1 { + order: 1 !important; + } + .order-md-2 { + order: 2 !important; + } + .order-md-3 { + order: 3 !important; + } + .order-md-4 { + order: 4 !important; + } + .order-md-5 { + order: 5 !important; + } + .order-md-last { + order: 6 !important; + } + .m-md-0 { + margin: 0 !important; + } + .m-md-1 { + margin: 0.25rem !important; + } + .m-md-2 { + margin: 0.5rem !important; + } + .m-md-3 { + margin: 1rem !important; + } + .m-md-4 { + margin: 1.5rem !important; + } + .m-md-5 { + margin: 3rem !important; + } + .m-md-auto { + margin: auto !important; + } + .mx-md-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .mx-md-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-md-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .mx-md-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .mx-md-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .mx-md-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .mx-md-auto { + margin-right: auto !important; + margin-left: auto !important; + } + .my-md-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-md-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-md-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-md-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-md-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-md-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-md-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-md-0 { + margin-top: 0 !important; + } + .mt-md-1 { + margin-top: 0.25rem !important; + } + .mt-md-2 { + margin-top: 0.5rem !important; + } + .mt-md-3 { + margin-top: 1rem !important; + } + .mt-md-4 { + margin-top: 1.5rem !important; + } + .mt-md-5 { + margin-top: 3rem !important; + } + .mt-md-auto { + margin-top: auto !important; + } + .me-md-0 { + margin-right: 0 !important; + } + .me-md-1 { + margin-right: 0.25rem !important; + } + .me-md-2 { + margin-right: 0.5rem !important; + } + .me-md-3 { + margin-right: 1rem !important; + } + .me-md-4 { + margin-right: 1.5rem !important; + } + .me-md-5 { + margin-right: 3rem !important; + } + .me-md-auto { + margin-right: auto !important; + } + .mb-md-0 { + margin-bottom: 0 !important; + } + .mb-md-1 { + margin-bottom: 0.25rem !important; + } + .mb-md-2 { + margin-bottom: 0.5rem !important; + } + .mb-md-3 { + margin-bottom: 1rem !important; + } + .mb-md-4 { + margin-bottom: 1.5rem !important; + } + .mb-md-5 { + margin-bottom: 3rem !important; + } + .mb-md-auto { + margin-bottom: auto !important; + } + .ms-md-0 { + margin-left: 0 !important; + } + .ms-md-1 { + margin-left: 0.25rem !important; + } + .ms-md-2 { + margin-left: 0.5rem !important; + } + .ms-md-3 { + margin-left: 1rem !important; + } + .ms-md-4 { + margin-left: 1.5rem !important; + } + .ms-md-5 { + margin-left: 3rem !important; + } + .ms-md-auto { + margin-left: auto !important; + } + .p-md-0 { + padding: 0 !important; + } + .p-md-1 { + padding: 0.25rem !important; + } + .p-md-2 { + padding: 0.5rem !important; + } + .p-md-3 { + padding: 1rem !important; + } + .p-md-4 { + padding: 1.5rem !important; + } + .p-md-5 { + padding: 3rem !important; + } + .px-md-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .px-md-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-md-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .px-md-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .px-md-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .px-md-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-md-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-md-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-md-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-md-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-md-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-md-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-md-0 { + padding-top: 0 !important; + } + .pt-md-1 { + padding-top: 0.25rem !important; + } + .pt-md-2 { + padding-top: 0.5rem !important; + } + .pt-md-3 { + padding-top: 1rem !important; + } + .pt-md-4 { + padding-top: 1.5rem !important; + } + .pt-md-5 { + padding-top: 3rem !important; + } + .pe-md-0 { + padding-right: 0 !important; + } + .pe-md-1 { + padding-right: 0.25rem !important; + } + .pe-md-2 { + padding-right: 0.5rem !important; + } + .pe-md-3 { + padding-right: 1rem !important; + } + .pe-md-4 { + padding-right: 1.5rem !important; + } + .pe-md-5 { + padding-right: 3rem !important; + } + .pb-md-0 { + padding-bottom: 0 !important; + } + .pb-md-1 { + padding-bottom: 0.25rem !important; + } + .pb-md-2 { + padding-bottom: 0.5rem !important; + } + .pb-md-3 { + padding-bottom: 1rem !important; + } + .pb-md-4 { + padding-bottom: 1.5rem !important; + } + .pb-md-5 { + padding-bottom: 3rem !important; + } + .ps-md-0 { + padding-left: 0 !important; + } + .ps-md-1 { + padding-left: 0.25rem !important; + } + .ps-md-2 { + padding-left: 0.5rem !important; + } + .ps-md-3 { + padding-left: 1rem !important; + } + .ps-md-4 { + padding-left: 1.5rem !important; + } + .ps-md-5 { + padding-left: 3rem !important; + } + .text-md-start { + text-align: left !important; + } + .text-md-end { + text-align: right !important; + } + .text-md-center { + text-align: center !important; + } +} +@media (min-width: 992px) { + .float-lg-start { + float: left !important; + } + .float-lg-end { + float: right !important; + } + .float-lg-none { + float: none !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-block { + display: block !important; + } + .d-lg-grid { + display: grid !important; + } + .d-lg-table { + display: table !important; + } + .d-lg-table-row { + display: table-row !important; + } + .d-lg-table-cell { + display: table-cell !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline-flex { + display: inline-flex !important; + } + .d-lg-none { + display: none !important; + } + .flex-lg-fill { + flex: 1 1 auto !important; + } + .flex-lg-row { + flex-direction: row !important; + } + .flex-lg-column { + flex-direction: column !important; + } + .flex-lg-row-reverse { + flex-direction: row-reverse !important; + } + .flex-lg-column-reverse { + flex-direction: column-reverse !important; + } + .flex-lg-grow-0 { + flex-grow: 0 !important; + } + .flex-lg-grow-1 { + flex-grow: 1 !important; + } + .flex-lg-shrink-0 { + flex-shrink: 0 !important; + } + .flex-lg-shrink-1 { + flex-shrink: 1 !important; + } + .flex-lg-wrap { + flex-wrap: wrap !important; + } + .flex-lg-nowrap { + flex-wrap: nowrap !important; + } + .flex-lg-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .gap-lg-0 { + gap: 0 !important; + } + .gap-lg-1 { + gap: 0.25rem !important; + } + .gap-lg-2 { + gap: 0.5rem !important; + } + .gap-lg-3 { + gap: 1rem !important; + } + .gap-lg-4 { + gap: 1.5rem !important; + } + .gap-lg-5 { + gap: 3rem !important; + } + .justify-content-lg-start { + justify-content: flex-start !important; + } + .justify-content-lg-end { + justify-content: flex-end !important; + } + .justify-content-lg-center { + justify-content: center !important; + } + .justify-content-lg-between { + justify-content: space-between !important; + } + .justify-content-lg-around { + justify-content: space-around !important; + } + .justify-content-lg-evenly { + justify-content: space-evenly !important; + } + .align-items-lg-start { + align-items: flex-start !important; + } + .align-items-lg-end { + align-items: flex-end !important; + } + .align-items-lg-center { + align-items: center !important; + } + .align-items-lg-baseline { + align-items: baseline !important; + } + .align-items-lg-stretch { + align-items: stretch !important; + } + .align-content-lg-start { + align-content: flex-start !important; + } + .align-content-lg-end { + align-content: flex-end !important; + } + .align-content-lg-center { + align-content: center !important; + } + .align-content-lg-between { + align-content: space-between !important; + } + .align-content-lg-around { + align-content: space-around !important; + } + .align-content-lg-stretch { + align-content: stretch !important; + } + .align-self-lg-auto { + align-self: auto !important; + } + .align-self-lg-start { + align-self: flex-start !important; + } + .align-self-lg-end { + align-self: flex-end !important; + } + .align-self-lg-center { + align-self: center !important; + } + .align-self-lg-baseline { + align-self: baseline !important; + } + .align-self-lg-stretch { + align-self: stretch !important; + } + .order-lg-first { + order: -1 !important; + } + .order-lg-0 { + order: 0 !important; + } + .order-lg-1 { + order: 1 !important; + } + .order-lg-2 { + order: 2 !important; + } + .order-lg-3 { + order: 3 !important; + } + .order-lg-4 { + order: 4 !important; + } + .order-lg-5 { + order: 5 !important; + } + .order-lg-last { + order: 6 !important; + } + .m-lg-0 { + margin: 0 !important; + } + .m-lg-1 { + margin: 0.25rem !important; + } + .m-lg-2 { + margin: 0.5rem !important; + } + .m-lg-3 { + margin: 1rem !important; + } + .m-lg-4 { + margin: 1.5rem !important; + } + .m-lg-5 { + margin: 3rem !important; + } + .m-lg-auto { + margin: auto !important; + } + .mx-lg-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .mx-lg-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-lg-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .mx-lg-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .mx-lg-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .mx-lg-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .mx-lg-auto { + margin-right: auto !important; + margin-left: auto !important; + } + .my-lg-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-lg-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-lg-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-lg-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-lg-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-lg-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-lg-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-lg-0 { + margin-top: 0 !important; + } + .mt-lg-1 { + margin-top: 0.25rem !important; + } + .mt-lg-2 { + margin-top: 0.5rem !important; + } + .mt-lg-3 { + margin-top: 1rem !important; + } + .mt-lg-4 { + margin-top: 1.5rem !important; + } + .mt-lg-5 { + margin-top: 3rem !important; + } + .mt-lg-auto { + margin-top: auto !important; + } + .me-lg-0 { + margin-right: 0 !important; + } + .me-lg-1 { + margin-right: 0.25rem !important; + } + .me-lg-2 { + margin-right: 0.5rem !important; + } + .me-lg-3 { + margin-right: 1rem !important; + } + .me-lg-4 { + margin-right: 1.5rem !important; + } + .me-lg-5 { + margin-right: 3rem !important; + } + .me-lg-auto { + margin-right: auto !important; + } + .mb-lg-0 { + margin-bottom: 0 !important; + } + .mb-lg-1 { + margin-bottom: 0.25rem !important; + } + .mb-lg-2 { + margin-bottom: 0.5rem !important; + } + .mb-lg-3 { + margin-bottom: 1rem !important; + } + .mb-lg-4 { + margin-bottom: 1.5rem !important; + } + .mb-lg-5 { + margin-bottom: 3rem !important; + } + .mb-lg-auto { + margin-bottom: auto !important; + } + .ms-lg-0 { + margin-left: 0 !important; + } + .ms-lg-1 { + margin-left: 0.25rem !important; + } + .ms-lg-2 { + margin-left: 0.5rem !important; + } + .ms-lg-3 { + margin-left: 1rem !important; + } + .ms-lg-4 { + margin-left: 1.5rem !important; + } + .ms-lg-5 { + margin-left: 3rem !important; + } + .ms-lg-auto { + margin-left: auto !important; + } + .p-lg-0 { + padding: 0 !important; + } + .p-lg-1 { + padding: 0.25rem !important; + } + .p-lg-2 { + padding: 0.5rem !important; + } + .p-lg-3 { + padding: 1rem !important; + } + .p-lg-4 { + padding: 1.5rem !important; + } + .p-lg-5 { + padding: 3rem !important; + } + .px-lg-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .px-lg-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-lg-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .px-lg-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .px-lg-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .px-lg-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-lg-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-lg-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-lg-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-lg-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-lg-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-lg-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-lg-0 { + padding-top: 0 !important; + } + .pt-lg-1 { + padding-top: 0.25rem !important; + } + .pt-lg-2 { + padding-top: 0.5rem !important; + } + .pt-lg-3 { + padding-top: 1rem !important; + } + .pt-lg-4 { + padding-top: 1.5rem !important; + } + .pt-lg-5 { + padding-top: 3rem !important; + } + .pe-lg-0 { + padding-right: 0 !important; + } + .pe-lg-1 { + padding-right: 0.25rem !important; + } + .pe-lg-2 { + padding-right: 0.5rem !important; + } + .pe-lg-3 { + padding-right: 1rem !important; + } + .pe-lg-4 { + padding-right: 1.5rem !important; + } + .pe-lg-5 { + padding-right: 3rem !important; + } + .pb-lg-0 { + padding-bottom: 0 !important; + } + .pb-lg-1 { + padding-bottom: 0.25rem !important; + } + .pb-lg-2 { + padding-bottom: 0.5rem !important; + } + .pb-lg-3 { + padding-bottom: 1rem !important; + } + .pb-lg-4 { + padding-bottom: 1.5rem !important; + } + .pb-lg-5 { + padding-bottom: 3rem !important; + } + .ps-lg-0 { + padding-left: 0 !important; + } + .ps-lg-1 { + padding-left: 0.25rem !important; + } + .ps-lg-2 { + padding-left: 0.5rem !important; + } + .ps-lg-3 { + padding-left: 1rem !important; + } + .ps-lg-4 { + padding-left: 1.5rem !important; + } + .ps-lg-5 { + padding-left: 3rem !important; + } + .text-lg-start { + text-align: left !important; + } + .text-lg-end { + text-align: right !important; + } + .text-lg-center { + text-align: center !important; + } +} +@media (min-width: 1200px) { + .float-xl-start { + float: left !important; + } + .float-xl-end { + float: right !important; + } + .float-xl-none { + float: none !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-block { + display: block !important; + } + .d-xl-grid { + display: grid !important; + } + .d-xl-table { + display: table !important; + } + .d-xl-table-row { + display: table-row !important; + } + .d-xl-table-cell { + display: table-cell !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline-flex { + display: inline-flex !important; + } + .d-xl-none { + display: none !important; + } + .flex-xl-fill { + flex: 1 1 auto !important; + } + .flex-xl-row { + flex-direction: row !important; + } + .flex-xl-column { + flex-direction: column !important; + } + .flex-xl-row-reverse { + flex-direction: row-reverse !important; + } + .flex-xl-column-reverse { + flex-direction: column-reverse !important; + } + .flex-xl-grow-0 { + flex-grow: 0 !important; + } + .flex-xl-grow-1 { + flex-grow: 1 !important; + } + .flex-xl-shrink-0 { + flex-shrink: 0 !important; + } + .flex-xl-shrink-1 { + flex-shrink: 1 !important; + } + .flex-xl-wrap { + flex-wrap: wrap !important; + } + .flex-xl-nowrap { + flex-wrap: nowrap !important; + } + .flex-xl-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .gap-xl-0 { + gap: 0 !important; + } + .gap-xl-1 { + gap: 0.25rem !important; + } + .gap-xl-2 { + gap: 0.5rem !important; + } + .gap-xl-3 { + gap: 1rem !important; + } + .gap-xl-4 { + gap: 1.5rem !important; + } + .gap-xl-5 { + gap: 3rem !important; + } + .justify-content-xl-start { + justify-content: flex-start !important; + } + .justify-content-xl-end { + justify-content: flex-end !important; + } + .justify-content-xl-center { + justify-content: center !important; + } + .justify-content-xl-between { + justify-content: space-between !important; + } + .justify-content-xl-around { + justify-content: space-around !important; + } + .justify-content-xl-evenly { + justify-content: space-evenly !important; + } + .align-items-xl-start { + align-items: flex-start !important; + } + .align-items-xl-end { + align-items: flex-end !important; + } + .align-items-xl-center { + align-items: center !important; + } + .align-items-xl-baseline { + align-items: baseline !important; + } + .align-items-xl-stretch { + align-items: stretch !important; + } + .align-content-xl-start { + align-content: flex-start !important; + } + .align-content-xl-end { + align-content: flex-end !important; + } + .align-content-xl-center { + align-content: center !important; + } + .align-content-xl-between { + align-content: space-between !important; + } + .align-content-xl-around { + align-content: space-around !important; + } + .align-content-xl-stretch { + align-content: stretch !important; + } + .align-self-xl-auto { + align-self: auto !important; + } + .align-self-xl-start { + align-self: flex-start !important; + } + .align-self-xl-end { + align-self: flex-end !important; + } + .align-self-xl-center { + align-self: center !important; + } + .align-self-xl-baseline { + align-self: baseline !important; + } + .align-self-xl-stretch { + align-self: stretch !important; + } + .order-xl-first { + order: -1 !important; + } + .order-xl-0 { + order: 0 !important; + } + .order-xl-1 { + order: 1 !important; + } + .order-xl-2 { + order: 2 !important; + } + .order-xl-3 { + order: 3 !important; + } + .order-xl-4 { + order: 4 !important; + } + .order-xl-5 { + order: 5 !important; + } + .order-xl-last { + order: 6 !important; + } + .m-xl-0 { + margin: 0 !important; + } + .m-xl-1 { + margin: 0.25rem !important; + } + .m-xl-2 { + margin: 0.5rem !important; + } + .m-xl-3 { + margin: 1rem !important; + } + .m-xl-4 { + margin: 1.5rem !important; + } + .m-xl-5 { + margin: 3rem !important; + } + .m-xl-auto { + margin: auto !important; + } + .mx-xl-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .mx-xl-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-xl-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .mx-xl-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .mx-xl-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .mx-xl-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .mx-xl-auto { + margin-right: auto !important; + margin-left: auto !important; + } + .my-xl-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-xl-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-xl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-xl-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-xl-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-xl-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-xl-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-xl-0 { + margin-top: 0 !important; + } + .mt-xl-1 { + margin-top: 0.25rem !important; + } + .mt-xl-2 { + margin-top: 0.5rem !important; + } + .mt-xl-3 { + margin-top: 1rem !important; + } + .mt-xl-4 { + margin-top: 1.5rem !important; + } + .mt-xl-5 { + margin-top: 3rem !important; + } + .mt-xl-auto { + margin-top: auto !important; + } + .me-xl-0 { + margin-right: 0 !important; + } + .me-xl-1 { + margin-right: 0.25rem !important; + } + .me-xl-2 { + margin-right: 0.5rem !important; + } + .me-xl-3 { + margin-right: 1rem !important; + } + .me-xl-4 { + margin-right: 1.5rem !important; + } + .me-xl-5 { + margin-right: 3rem !important; + } + .me-xl-auto { + margin-right: auto !important; + } + .mb-xl-0 { + margin-bottom: 0 !important; + } + .mb-xl-1 { + margin-bottom: 0.25rem !important; + } + .mb-xl-2 { + margin-bottom: 0.5rem !important; + } + .mb-xl-3 { + margin-bottom: 1rem !important; + } + .mb-xl-4 { + margin-bottom: 1.5rem !important; + } + .mb-xl-5 { + margin-bottom: 3rem !important; + } + .mb-xl-auto { + margin-bottom: auto !important; + } + .ms-xl-0 { + margin-left: 0 !important; + } + .ms-xl-1 { + margin-left: 0.25rem !important; + } + .ms-xl-2 { + margin-left: 0.5rem !important; + } + .ms-xl-3 { + margin-left: 1rem !important; + } + .ms-xl-4 { + margin-left: 1.5rem !important; + } + .ms-xl-5 { + margin-left: 3rem !important; + } + .ms-xl-auto { + margin-left: auto !important; + } + .p-xl-0 { + padding: 0 !important; + } + .p-xl-1 { + padding: 0.25rem !important; + } + .p-xl-2 { + padding: 0.5rem !important; + } + .p-xl-3 { + padding: 1rem !important; + } + .p-xl-4 { + padding: 1.5rem !important; + } + .p-xl-5 { + padding: 3rem !important; + } + .px-xl-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .px-xl-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-xl-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .px-xl-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .px-xl-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .px-xl-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-xl-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-xl-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-xl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-xl-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-xl-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-xl-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-xl-0 { + padding-top: 0 !important; + } + .pt-xl-1 { + padding-top: 0.25rem !important; + } + .pt-xl-2 { + padding-top: 0.5rem !important; + } + .pt-xl-3 { + padding-top: 1rem !important; + } + .pt-xl-4 { + padding-top: 1.5rem !important; + } + .pt-xl-5 { + padding-top: 3rem !important; + } + .pe-xl-0 { + padding-right: 0 !important; + } + .pe-xl-1 { + padding-right: 0.25rem !important; + } + .pe-xl-2 { + padding-right: 0.5rem !important; + } + .pe-xl-3 { + padding-right: 1rem !important; + } + .pe-xl-4 { + padding-right: 1.5rem !important; + } + .pe-xl-5 { + padding-right: 3rem !important; + } + .pb-xl-0 { + padding-bottom: 0 !important; + } + .pb-xl-1 { + padding-bottom: 0.25rem !important; + } + .pb-xl-2 { + padding-bottom: 0.5rem !important; + } + .pb-xl-3 { + padding-bottom: 1rem !important; + } + .pb-xl-4 { + padding-bottom: 1.5rem !important; + } + .pb-xl-5 { + padding-bottom: 3rem !important; + } + .ps-xl-0 { + padding-left: 0 !important; + } + .ps-xl-1 { + padding-left: 0.25rem !important; + } + .ps-xl-2 { + padding-left: 0.5rem !important; + } + .ps-xl-3 { + padding-left: 1rem !important; + } + .ps-xl-4 { + padding-left: 1.5rem !important; + } + .ps-xl-5 { + padding-left: 3rem !important; + } + .text-xl-start { + text-align: left !important; + } + .text-xl-end { + text-align: right !important; + } + .text-xl-center { + text-align: center !important; + } +} +@media (min-width: 1400px) { + .float-xxl-start { + float: left !important; + } + .float-xxl-end { + float: right !important; + } + .float-xxl-none { + float: none !important; + } + .d-xxl-inline { + display: inline !important; + } + .d-xxl-inline-block { + display: inline-block !important; + } + .d-xxl-block { + display: block !important; + } + .d-xxl-grid { + display: grid !important; + } + .d-xxl-table { + display: table !important; + } + .d-xxl-table-row { + display: table-row !important; + } + .d-xxl-table-cell { + display: table-cell !important; + } + .d-xxl-flex { + display: flex !important; + } + .d-xxl-inline-flex { + display: inline-flex !important; + } + .d-xxl-none { + display: none !important; + } + .flex-xxl-fill { + flex: 1 1 auto !important; + } + .flex-xxl-row { + flex-direction: row !important; + } + .flex-xxl-column { + flex-direction: column !important; + } + .flex-xxl-row-reverse { + flex-direction: row-reverse !important; + } + .flex-xxl-column-reverse { + flex-direction: column-reverse !important; + } + .flex-xxl-grow-0 { + flex-grow: 0 !important; + } + .flex-xxl-grow-1 { + flex-grow: 1 !important; + } + .flex-xxl-shrink-0 { + flex-shrink: 0 !important; + } + .flex-xxl-shrink-1 { + flex-shrink: 1 !important; + } + .flex-xxl-wrap { + flex-wrap: wrap !important; + } + .flex-xxl-nowrap { + flex-wrap: nowrap !important; + } + .flex-xxl-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .gap-xxl-0 { + gap: 0 !important; + } + .gap-xxl-1 { + gap: 0.25rem !important; + } + .gap-xxl-2 { + gap: 0.5rem !important; + } + .gap-xxl-3 { + gap: 1rem !important; + } + .gap-xxl-4 { + gap: 1.5rem !important; + } + .gap-xxl-5 { + gap: 3rem !important; + } + .justify-content-xxl-start { + justify-content: flex-start !important; + } + .justify-content-xxl-end { + justify-content: flex-end !important; + } + .justify-content-xxl-center { + justify-content: center !important; + } + .justify-content-xxl-between { + justify-content: space-between !important; + } + .justify-content-xxl-around { + justify-content: space-around !important; + } + .justify-content-xxl-evenly { + justify-content: space-evenly !important; + } + .align-items-xxl-start { + align-items: flex-start !important; + } + .align-items-xxl-end { + align-items: flex-end !important; + } + .align-items-xxl-center { + align-items: center !important; + } + .align-items-xxl-baseline { + align-items: baseline !important; + } + .align-items-xxl-stretch { + align-items: stretch !important; + } + .align-content-xxl-start { + align-content: flex-start !important; + } + .align-content-xxl-end { + align-content: flex-end !important; + } + .align-content-xxl-center { + align-content: center !important; + } + .align-content-xxl-between { + align-content: space-between !important; + } + .align-content-xxl-around { + align-content: space-around !important; + } + .align-content-xxl-stretch { + align-content: stretch !important; + } + .align-self-xxl-auto { + align-self: auto !important; + } + .align-self-xxl-start { + align-self: flex-start !important; + } + .align-self-xxl-end { + align-self: flex-end !important; + } + .align-self-xxl-center { + align-self: center !important; + } + .align-self-xxl-baseline { + align-self: baseline !important; + } + .align-self-xxl-stretch { + align-self: stretch !important; + } + .order-xxl-first { + order: -1 !important; + } + .order-xxl-0 { + order: 0 !important; + } + .order-xxl-1 { + order: 1 !important; + } + .order-xxl-2 { + order: 2 !important; + } + .order-xxl-3 { + order: 3 !important; + } + .order-xxl-4 { + order: 4 !important; + } + .order-xxl-5 { + order: 5 !important; + } + .order-xxl-last { + order: 6 !important; + } + .m-xxl-0 { + margin: 0 !important; + } + .m-xxl-1 { + margin: 0.25rem !important; + } + .m-xxl-2 { + margin: 0.5rem !important; + } + .m-xxl-3 { + margin: 1rem !important; + } + .m-xxl-4 { + margin: 1.5rem !important; + } + .m-xxl-5 { + margin: 3rem !important; + } + .m-xxl-auto { + margin: auto !important; + } + .mx-xxl-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .mx-xxl-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-xxl-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .mx-xxl-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .mx-xxl-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .mx-xxl-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .mx-xxl-auto { + margin-right: auto !important; + margin-left: auto !important; + } + .my-xxl-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-xxl-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-xxl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-xxl-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-xxl-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-xxl-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-xxl-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-xxl-0 { + margin-top: 0 !important; + } + .mt-xxl-1 { + margin-top: 0.25rem !important; + } + .mt-xxl-2 { + margin-top: 0.5rem !important; + } + .mt-xxl-3 { + margin-top: 1rem !important; + } + .mt-xxl-4 { + margin-top: 1.5rem !important; + } + .mt-xxl-5 { + margin-top: 3rem !important; + } + .mt-xxl-auto { + margin-top: auto !important; + } + .me-xxl-0 { + margin-right: 0 !important; + } + .me-xxl-1 { + margin-right: 0.25rem !important; + } + .me-xxl-2 { + margin-right: 0.5rem !important; + } + .me-xxl-3 { + margin-right: 1rem !important; + } + .me-xxl-4 { + margin-right: 1.5rem !important; + } + .me-xxl-5 { + margin-right: 3rem !important; + } + .me-xxl-auto { + margin-right: auto !important; + } + .mb-xxl-0 { + margin-bottom: 0 !important; + } + .mb-xxl-1 { + margin-bottom: 0.25rem !important; + } + .mb-xxl-2 { + margin-bottom: 0.5rem !important; + } + .mb-xxl-3 { + margin-bottom: 1rem !important; + } + .mb-xxl-4 { + margin-bottom: 1.5rem !important; + } + .mb-xxl-5 { + margin-bottom: 3rem !important; + } + .mb-xxl-auto { + margin-bottom: auto !important; + } + .ms-xxl-0 { + margin-left: 0 !important; + } + .ms-xxl-1 { + margin-left: 0.25rem !important; + } + .ms-xxl-2 { + margin-left: 0.5rem !important; + } + .ms-xxl-3 { + margin-left: 1rem !important; + } + .ms-xxl-4 { + margin-left: 1.5rem !important; + } + .ms-xxl-5 { + margin-left: 3rem !important; + } + .ms-xxl-auto { + margin-left: auto !important; + } + .p-xxl-0 { + padding: 0 !important; + } + .p-xxl-1 { + padding: 0.25rem !important; + } + .p-xxl-2 { + padding: 0.5rem !important; + } + .p-xxl-3 { + padding: 1rem !important; + } + .p-xxl-4 { + padding: 1.5rem !important; + } + .p-xxl-5 { + padding: 3rem !important; + } + .px-xxl-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .px-xxl-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-xxl-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .px-xxl-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .px-xxl-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .px-xxl-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-xxl-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-xxl-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-xxl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-xxl-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-xxl-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-xxl-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-xxl-0 { + padding-top: 0 !important; + } + .pt-xxl-1 { + padding-top: 0.25rem !important; + } + .pt-xxl-2 { + padding-top: 0.5rem !important; + } + .pt-xxl-3 { + padding-top: 1rem !important; + } + .pt-xxl-4 { + padding-top: 1.5rem !important; + } + .pt-xxl-5 { + padding-top: 3rem !important; + } + .pe-xxl-0 { + padding-right: 0 !important; + } + .pe-xxl-1 { + padding-right: 0.25rem !important; + } + .pe-xxl-2 { + padding-right: 0.5rem !important; + } + .pe-xxl-3 { + padding-right: 1rem !important; + } + .pe-xxl-4 { + padding-right: 1.5rem !important; + } + .pe-xxl-5 { + padding-right: 3rem !important; + } + .pb-xxl-0 { + padding-bottom: 0 !important; + } + .pb-xxl-1 { + padding-bottom: 0.25rem !important; + } + .pb-xxl-2 { + padding-bottom: 0.5rem !important; + } + .pb-xxl-3 { + padding-bottom: 1rem !important; + } + .pb-xxl-4 { + padding-bottom: 1.5rem !important; + } + .pb-xxl-5 { + padding-bottom: 3rem !important; + } + .ps-xxl-0 { + padding-left: 0 !important; + } + .ps-xxl-1 { + padding-left: 0.25rem !important; + } + .ps-xxl-2 { + padding-left: 0.5rem !important; + } + .ps-xxl-3 { + padding-left: 1rem !important; + } + .ps-xxl-4 { + padding-left: 1.5rem !important; + } + .ps-xxl-5 { + padding-left: 3rem !important; + } + .text-xxl-start { + text-align: left !important; + } + .text-xxl-end { + text-align: right !important; + } + .text-xxl-center { + text-align: center !important; + } +} +@media (min-width: 1200px) { + .fs-1 { + font-size: 2.5rem !important; + } + .fs-2 { + font-size: 2rem !important; + } + .fs-3 { + font-size: 1.75rem !important; + } + .fs-4 { + font-size: 1.5rem !important; + } +} +@media print { + .d-print-inline { + display: inline !important; + } + .d-print-inline-block { + display: inline-block !important; + } + .d-print-block { + display: block !important; + } + .d-print-grid { + display: grid !important; + } + .d-print-table { + display: table !important; + } + .d-print-table-row { + display: table-row !important; + } + .d-print-table-cell { + display: table-cell !important; + } + .d-print-flex { + display: flex !important; + } + .d-print-inline-flex { + display: inline-flex !important; + } + .d-print-none { + display: none !important; + } +} +/*# sourceMappingURL=bootstrap.min.css.map */ diff --git a/_code-samples/build-a-desktop-wallet/js/bootstrap/custom.css b/_code-samples/build-a-desktop-wallet/js/bootstrap/custom.css index 975be118c5..750e6047e2 100644 --- a/_code-samples/build-a-desktop-wallet/js/bootstrap/custom.css +++ b/_code-samples/build-a-desktop-wallet/js/bootstrap/custom.css @@ -1,78 +1,80 @@ body { - min-height: 100vh; - min-height: -webkit-fill-available; + min-height: 100vh; + min-height: -webkit-fill-available; } html { - height: -webkit-fill-available; + height: -webkit-fill-available; } main { - display: flex; - flex-wrap: nowrap; - height: 100vh; - height: -webkit-fill-available; - max-height: 100vh; - overflow-x: auto; - overflow-y: hidden; + display: flex; + flex-wrap: nowrap; + height: 100vh; + height: -webkit-fill-available; + max-height: 100vh; + overflow-x: auto; + overflow-y: hidden; } .sidebar { - width: 200px; + width: 200px; } .logo { - margin-left: 0; - content: url(XRPLedger_DevPortal-white.svg); - width: 162px; - height: 40px; - display: block; + margin-left: 0; + content: url(XRPLedger_DevPortal-white.svg); + width: 162px; + height: 40px; + display: block; } - .divider { - flex-shrink: 0; - width: 20px; - height: 100vh; - background-color: rgba(0, 0, 0, .1); - border: solid rgba(0, 0, 0, .15); - border-width: 1px 0; - box-shadow: inset 0 .5em 1.5em rgba(0, 0, 0, .1), inset 0 .125em .5em rgba(0, 0, 0, .15); + flex-shrink: 0; + width: 20px; + height: 100vh; + background-color: rgba(0, 0, 0, 0.1); + border: solid rgba(0, 0, 0, 0.15); + border-width: 1px 0; + box-shadow: + inset 0 0.5em 1.5em rgba(0, 0, 0, 0.1), + inset 0 0.125em 0.5em rgba(0, 0, 0, 0.15); } .main-content { - width: 808px; + width: 808px; } -.nav-link, .nav-link:hover { - color: white; - width: 100%; +.nav-link, +.nav-link:hover { + color: white; + width: 100%; } .header { - position: relative; - margin-bottom: 20px; + position: relative; + margin-bottom: 20px; } .header button { - position: absolute; - right: 0; - top: -4px; + position: absolute; + right: 0; + top: -4px; } .spacer { - height: 20px; + height: 20px; } .invalid-password { - color: #dc3545; + color: #dc3545; } -.accountVerificationIndicator{ - width: 100%; +.accountVerificationIndicator { + width: 100%; } .accountVerificationIndicator span { - font-size: 9px; - color: grey; + font-size: 9px; + color: grey; } diff --git a/_code-samples/build-a-desktop-wallet/js/library/3_helpers.js b/_code-samples/build-a-desktop-wallet/js/library/3_helpers.js index 9ea3cd763e..d45dded386 100644 --- a/_code-samples/build-a-desktop-wallet/js/library/3_helpers.js +++ b/_code-samples/build-a-desktop-wallet/js/library/3_helpers.js @@ -1,29 +1,29 @@ -const xrpl = require("xrpl"); +const xrpl = require('xrpl') // The rippled server and its APIs represent time as an unsigned integer. // This number measures the number of seconds since the "Ripple Epoch" of // January 1, 2000 (00:00 UTC). This is like the way the Unix epoch works, // Reference: https://xrpl.org/docs/references/protocol/data-types/basic-data-types#specifying-time -const RIPPLE_EPOCH = 946684800; +const RIPPLE_EPOCH = 946684800 const prepareAccountData = (rawAccountData) => { - return { - classicAddress: rawAccountData.Account, - xAddress: xrpl.classicAddressToXAddress(rawAccountData.Account, false, true), - xrpBalance: xrpl.dropsToXrp(rawAccountData.Balance) - } + return { + classicAddress: rawAccountData.Account, + xAddress: xrpl.classicAddressToXAddress(rawAccountData.Account, false, true), + xrpBalance: xrpl.dropsToXrp(rawAccountData.Balance), + } } const prepareLedgerData = (rawLedgerData) => { - const timestamp = RIPPLE_EPOCH + (rawLedgerData.ledger_time ?? rawLedgerData.close_time) - const dateTime = new Date(timestamp * 1000) - const dateTimeString = dateTime.toLocaleDateString() + ' ' + dateTime.toLocaleTimeString() + const timestamp = RIPPLE_EPOCH + (rawLedgerData.ledger_time ?? rawLedgerData.close_time) + const dateTime = new Date(timestamp * 1000) + const dateTimeString = dateTime.toLocaleDateString() + ' ' + dateTime.toLocaleTimeString() - return { - ledgerIndex: rawLedgerData.ledger_index, - ledgerHash: rawLedgerData.ledger_hash, - ledgerCloseTime: dateTimeString - } + return { + ledgerIndex: rawLedgerData.ledger_index, + ledgerHash: rawLedgerData.ledger_hash, + ledgerCloseTime: dateTimeString, + } } module.exports = { prepareAccountData, prepareLedgerData } diff --git a/_code-samples/build-a-desktop-wallet/js/library/4_helpers.js b/_code-samples/build-a-desktop-wallet/js/library/4_helpers.js index 04a65a5f9f..dc2becd04b 100644 --- a/_code-samples/build-a-desktop-wallet/js/library/4_helpers.js +++ b/_code-samples/build-a-desktop-wallet/js/library/4_helpers.js @@ -1,34 +1,34 @@ -const xrpl = require("xrpl"); +const xrpl = require('xrpl') const prepareTxData = (transactions) => { - return transactions.map(transaction => { - let tx_value = "-" - if (transaction.meta !== undefined && transaction.meta.delivered_amount !== undefined) { - tx_value = getDisplayableAmount(transaction.meta.delivered_amount) - } + return transactions.map((transaction) => { + let tx_value = '-' + if (transaction.meta !== undefined && transaction.meta.delivered_amount !== undefined) { + tx_value = getDisplayableAmount(transaction.meta.delivered_amount) + } - return { - confirmed: transaction.close_time_iso, - type: transaction.tx_json.TransactionType, - from: transaction.tx_json.Account, - to: transaction.tx_json.Destination ?? "-", - value: tx_value, - hash: transaction.hash - } - }) + return { + confirmed: transaction.close_time_iso, + type: transaction.tx_json.TransactionType, + from: transaction.tx_json.Account, + to: transaction.tx_json.Destination ?? '-', + value: tx_value, + hash: transaction.hash, + } + }) } const getDisplayableAmount = (rawAmount) => { - if (rawAmount === 'unavailable') { - // Special case for pre-2014 partial payments. - return rawAmount - } else if (typeof rawAmount === 'string') { - // It's an XRP amount in drops. Convert to decimal. - return xrpl.dropsToXrp(rawAmount) + ' XRP' - } else { - //It's a token (IOU) amount. - return rawAmount.value + ' ' + rawAmount.currency - } + if (rawAmount === 'unavailable') { + // Special case for pre-2014 partial payments. + return rawAmount + } else if (typeof rawAmount === 'string') { + // It's an XRP amount in drops. Convert to decimal. + return xrpl.dropsToXrp(rawAmount) + ' XRP' + } else { + //It's a token (IOU) amount. + return rawAmount.value + ' ' + rawAmount.currency + } } module.exports = { prepareTxData } diff --git a/_code-samples/build-a-desktop-wallet/js/library/5_helpers.js b/_code-samples/build-a-desktop-wallet/js/library/5_helpers.js index 08872175f3..798254bbb4 100644 --- a/_code-samples/build-a-desktop-wallet/js/library/5_helpers.js +++ b/_code-samples/build-a-desktop-wallet/js/library/5_helpers.js @@ -1,9 +1,9 @@ -const {prepareAccountData, prepareLedgerData} = require("./3_helpers"); -const {prepareTxData} = require("./4_helpers"); -const crypto = require("crypto"); -const fs = require("fs"); -const path = require("path"); -const fernet = require("fernet"); +const { prepareAccountData, prepareLedgerData } = require('./3_helpers') +const { prepareTxData } = require('./4_helpers') +const crypto = require('crypto') +const fs = require('fs') +const path = require('path') +const fernet = require('fernet') /** * Fetches some initial data to be displayed on application startup @@ -14,22 +14,22 @@ const fernet = require("fernet"); * @returns {Promise} */ const initialize = async (client, wallet, appWindow) => { - // Reference: https://xrpl.org/docs/references/http-websocket-apis/public-api-methods/account-methods/account_info - const accountInfoResponse = await client.request({ - "command": "account_info", - "account": wallet.address, - "ledger_index": "current" - }) - const accountData = prepareAccountData(accountInfoResponse.result.account_data) - appWindow.webContents.send('update-account-data', accountData) + // Reference: https://xrpl.org/docs/references/http-websocket-apis/public-api-methods/account-methods/account_info + const accountInfoResponse = await client.request({ + command: 'account_info', + account: wallet.address, + ledger_index: 'current', + }) + const accountData = prepareAccountData(accountInfoResponse.result.account_data) + appWindow.webContents.send('update-account-data', accountData) - // Reference: https://xrpl.org/docs/references/http-websocket-apis/public-api-methods/account-methods/account_tx - const txResponse = await client.request({ - "command": "account_tx", - "account": wallet.address - }) - const transactions = prepareTxData(txResponse.result.transactions) - appWindow.webContents.send('update-transaction-data', transactions) + // Reference: https://xrpl.org/docs/references/http-websocket-apis/public-api-methods/account-methods/account_tx + const txResponse = await client.request({ + command: 'account_tx', + account: wallet.address, + }) + const transactions = prepareTxData(txResponse.result.transactions) + appWindow.webContents.send('update-transaction-data', transactions) } /** @@ -41,36 +41,35 @@ const initialize = async (client, wallet, appWindow) => { * @returns {Promise} */ const subscribe = async (client, wallet, appWindow) => { + // Reference: https://xrpl.org/docs/references/http-websocket-apis/public-api-methods/subscription-methods/subscribe + await client.request({ + command: 'subscribe', + streams: ['ledger'], + accounts: [wallet.address], + }) - // Reference: https://xrpl.org/docs/references/http-websocket-apis/public-api-methods/subscription-methods/subscribe - await client.request({ - "command": "subscribe", - "streams": ["ledger"], - "accounts": [wallet.address] - }) + // Reference: https://xrpl.org/docs/references/http-websocket-apis/public-api-methods/subscription-methods/subscribe#ledger-stream + client.on('ledgerClosed', async (rawLedgerData) => { + const ledger = prepareLedgerData(rawLedgerData) + appWindow.webContents.send('update-ledger-data', ledger) + }) - // Reference: https://xrpl.org/docs/references/http-websocket-apis/public-api-methods/subscription-methods/subscribe#ledger-stream - client.on("ledgerClosed", async (rawLedgerData) => { - const ledger = prepareLedgerData(rawLedgerData) - appWindow.webContents.send('update-ledger-data', ledger) - }) + // Wait for transaction on subscribed account and re-request account data + client.on('transaction', async (transaction) => { + // Reference: https://xrpl.org/docs/references/http-websocket-apis/public-api-methods/account-methods/account_info + const accountInfoRequest = { + command: 'account_info', + account: wallet.address, + ledger_index: transaction.ledger_index, + } - // Wait for transaction on subscribed account and re-request account data - client.on("transaction", async (transaction) => { - // Reference: https://xrpl.org/docs/references/http-websocket-apis/public-api-methods/account-methods/account_info - const accountInfoRequest = { - "command": "account_info", - "account": wallet.address, - "ledger_index": transaction.ledger_index - } + const accountInfoResponse = await client.request(accountInfoRequest) + const accountData = prepareAccountData(accountInfoResponse.result.account_data) + appWindow.webContents.send('update-account-data', accountData) - const accountInfoResponse = await client.request(accountInfoRequest) - const accountData = prepareAccountData(accountInfoResponse.result.account_data) - appWindow.webContents.send('update-account-data', accountData) - - const transactions = prepareTxData([transaction]) - appWindow.webContents.send('update-transaction-data', transactions) - }) + const transactions = prepareTxData([transaction]) + appWindow.webContents.send('update-transaction-data', transactions) + }) } /** @@ -80,29 +79,29 @@ const subscribe = async (client, wallet, appWindow) => { * @param seed * @param password */ -const saveSaltedSeed = (WALLET_DIR, seed, password)=> { - const salt = crypto.randomBytes(20).toString('hex') +const saveSaltedSeed = (WALLET_DIR, seed, password) => { + const salt = crypto.randomBytes(20).toString('hex') - fs.writeFileSync(path.join(__dirname, WALLET_DIR, 'salt.txt'), salt); + fs.writeFileSync(path.join(__dirname, WALLET_DIR, 'salt.txt'), salt) - // Hashing salted password using Password-Based Key Derivation Function 2 - const derivedKey = crypto.pbkdf2Sync(password, salt, 1000, 32, 'sha256') + // Hashing salted password using Password-Based Key Derivation Function 2 + const derivedKey = crypto.pbkdf2Sync(password, salt, 1000, 32, 'sha256') - // Generate a Fernet secret we can use for symmetric encryption - const secret = new fernet.Secret(derivedKey.toString('base64')); + // Generate a Fernet secret we can use for symmetric encryption + const secret = new fernet.Secret(derivedKey.toString('base64')) - // Generate encryption token with secret, time and initialization vector - // In a real-world use case we would have current time and a random IV, - // but for demo purposes being deterministic is just fine - const token = new fernet.Token({ - secret: secret, - time: Date.parse(1), - iv: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] - }) + // Generate encryption token with secret, time and initialization vector + // In a real-world use case we would have current time and a random IV, + // but for demo purposes being deterministic is just fine + const token = new fernet.Token({ + secret: secret, + time: Date.parse(1), + iv: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], + }) - const privateKey = token.encode(seed) + const privateKey = token.encode(seed) - fs.writeFileSync(path.join(__dirname, WALLET_DIR, 'seed.txt'), privateKey) + fs.writeFileSync(path.join(__dirname, WALLET_DIR, 'seed.txt'), privateKey) } /** @@ -113,24 +112,24 @@ const saveSaltedSeed = (WALLET_DIR, seed, password)=> { * @returns {*} */ const loadSaltedSeed = (WALLET_DIR, password) => { - const salt = fs.readFileSync(path.join(__dirname, WALLET_DIR, 'salt.txt')).toString() + const salt = fs.readFileSync(path.join(__dirname, WALLET_DIR, 'salt.txt')).toString() - const encodedSeed = fs.readFileSync(path.join(__dirname, WALLET_DIR, 'seed.txt')).toString() + const encodedSeed = fs.readFileSync(path.join(__dirname, WALLET_DIR, 'seed.txt')).toString() - // Hashing salted password using Password-Based Key Derivation Function 2 - const derivedKey = crypto.pbkdf2Sync(password, salt, 1000, 32, 'sha256') + // Hashing salted password using Password-Based Key Derivation Function 2 + const derivedKey = crypto.pbkdf2Sync(password, salt, 1000, 32, 'sha256') - // Generate a Fernet secret we can use for symmetric encryption - const secret = new fernet.Secret(derivedKey.toString('base64')); + // Generate a Fernet secret we can use for symmetric encryption + const secret = new fernet.Secret(derivedKey.toString('base64')) - // Generate decryption token - const token = new fernet.Token({ - secret: secret, - token: encodedSeed, - ttl: 0 - }) + // Generate decryption token + const token = new fernet.Token({ + secret: secret, + token: encodedSeed, + ttl: 0, + }) - return token.decode(); + return token.decode() } module.exports = { initialize, subscribe, saveSaltedSeed, loadSaltedSeed } diff --git a/_code-samples/build-a-desktop-wallet/js/library/7_helpers.js b/_code-samples/build-a-desktop-wallet/js/library/7_helpers.js index 2372583c38..9dbd09f589 100644 --- a/_code-samples/build-a-desktop-wallet/js/library/7_helpers.js +++ b/_code-samples/build-a-desktop-wallet/js/library/7_helpers.js @@ -1,4 +1,4 @@ -const xrpl = require("xrpl"); +const xrpl = require('xrpl') /** * Prepares, signs and submits a payment transaction @@ -9,20 +9,20 @@ const xrpl = require("xrpl"); * @returns {Promise<*>} */ const sendXrp = async (paymentData, client, wallet) => { - // Reference: https://xrpl.org/docs/references/protocol/transactions/types/payment - const paymentTx = { - "TransactionType": "Payment", - "Account": wallet.address, - "Amount": xrpl.xrpToDrops(paymentData.amount), - "Destination": paymentData.destinationAddress, - "DestinationTag": parseInt(paymentData.destinationTag) - } + // Reference: https://xrpl.org/docs/references/protocol/transactions/types/payment + const paymentTx = { + TransactionType: 'Payment', + Account: wallet.address, + Amount: xrpl.xrpToDrops(paymentData.amount), + Destination: paymentData.destinationAddress, + DestinationTag: parseInt(paymentData.destinationTag), + } - const preparedTx = await client.autofill(paymentTx) + const preparedTx = await client.autofill(paymentTx) - const signedTx = wallet.sign(preparedTx) + const signedTx = wallet.sign(preparedTx) - return await client.submitAndWait(signedTx.tx_blob) + return await client.submitAndWait(signedTx.tx_blob) } module.exports = { sendXrp } diff --git a/_code-samples/build-a-desktop-wallet/js/library/8_helpers.js b/_code-samples/build-a-desktop-wallet/js/library/8_helpers.js index 4441a2014d..9e716b523e 100644 --- a/_code-samples/build-a-desktop-wallet/js/library/8_helpers.js +++ b/_code-samples/build-a-desktop-wallet/js/library/8_helpers.js @@ -1,8 +1,8 @@ const fetch = require('node-fetch') -const toml = require('toml'); -const { convertHexToString } = require("xrpl/dist/npm/utils/stringConversion"); +const toml = require('toml') +const { convertHexToString } = require('xrpl/dist/npm/utils/stringConversion') -const lsfDisallowXRP = 0x00080000; +const lsfDisallowXRP = 0x00080000 /* Example lookups @@ -25,16 +25,16 @@ const lsfDisallowXRP = 0x00080000; * @returns {Promise<{domain: string, verified: boolean}|{domain: string, verified: boolean}>} */ async function checkDestination(accountData) { - const accountStatus = { - "funded": null, - "disallow_xrp": null, - "domain_verified": null, - "domain_str": "" // the decoded domain, regardless of verification - } + const accountStatus = { + funded: null, + disallow_xrp: null, + domain_verified: null, + domain_str: '', // the decoded domain, regardless of verification + } - accountStatus["disallow_xrp"] = !!(accountData & lsfDisallowXRP); + accountStatus['disallow_xrp'] = !!(accountData & lsfDisallowXRP) - return verifyAccountDomain(accountData) + return verifyAccountDomain(accountData) } /** @@ -45,40 +45,40 @@ async function checkDestination(accountData) { * @returns {Promise<{domain: string, verified: boolean}>} */ async function verifyAccountDomain(accountData) { - const domainHex = accountData["Domain"] - if (!domainHex) { - return { - domain:"", - verified: false - } - } - - let verified = false - const domain = convertHexToString(domainHex) - const tomlUrl = `https://${domain}/.well-known/xrp-ledger.toml` - const tomlResponse = await fetch(tomlUrl) - - if (!tomlResponse.ok) { - return { - domain: domain, - verified: false - } - } - - const tomlData = await tomlResponse.text() - const parsedToml = toml.parse(tomlData) - const tomlAccounts = parsedToml["ACCOUNTS"] - - for (const tomlAccount of tomlAccounts) { - if (tomlAccount["address"] === accountData["Account"]) { - verified = true - } - } - + const domainHex = accountData['Domain'] + if (!domainHex) { return { - domain: domain, - verified: verified + domain: '', + verified: false, } + } + + let verified = false + const domain = convertHexToString(domainHex) + const tomlUrl = `https://${domain}/.well-known/xrp-ledger.toml` + const tomlResponse = await fetch(tomlUrl) + + if (!tomlResponse.ok) { + return { + domain: domain, + verified: false, + } + } + + const tomlData = await tomlResponse.text() + const parsedToml = toml.parse(tomlData) + const tomlAccounts = parsedToml['ACCOUNTS'] + + for (const tomlAccount of tomlAccounts) { + if (tomlAccount['address'] === accountData['Account']) { + verified = true + } + } + + return { + domain: domain, + verified: verified, + } } /** @@ -89,22 +89,22 @@ async function verifyAccountDomain(accountData) { * @returns {Promise<{domain: string, verified: boolean}>} */ async function verify(accountAddress, client) { - // Reference: https://xrpl.org/docs/references/http-websocket-apis/public-api-methods/account-methods/account_info - const request = { - "command": "account_info", - "account": accountAddress, - "ledger_index": "validated" - } + // Reference: https://xrpl.org/docs/references/http-websocket-apis/public-api-methods/account-methods/account_info + const request = { + command: 'account_info', + account: accountAddress, + ledger_index: 'validated', + } - try { - const response = await client.request(request) - return await checkDestination(response.result.account_data) - } catch (err) { - return { - domain: '', - verified: false - } + try { + const response = await client.request(request) + return await checkDestination(response.result.account_data) + } catch (err) { + return { + domain: '', + verified: false, } + } } module.exports = { verify } diff --git a/_code-samples/checks/js/cancel-check.js b/_code-samples/checks/js/cancel-check.js index 434d23c1f1..b1b9390bf9 100644 --- a/_code-samples/checks/js/cancel-check.js +++ b/_code-samples/checks/js/cancel-check.js @@ -2,54 +2,48 @@ const xrpl = require('xrpl') // Define parameters. Edit this snippet with your values before running it. -const secret = "s████████████████████████████" // Replace with your secret -const check_id = "" // Replace with your Check ID +const secret = 's████████████████████████████' // Replace with your secret +const check_id = '' // Replace with your Check ID async function main() { try { - // Connect ---------------------------------------------------------------- - const client = new xrpl.Client('wss://s.altnet.rippletest.net:51233'); - await client.connect(); + const client = new xrpl.Client('wss://s.altnet.rippletest.net:51233') + await client.connect() // Instantiate wallet from secret. ---------------------------------------- const wallet = await xrpl.Wallet.fromSeed(secret) - console.log("Wallet address: ", wallet.address) + console.log('Wallet address: ', wallet.address) // Check if the check ID is provided -------------------------------------- if (check_id.length === 0) { - console.log("Please edit this snippet to provide a check ID. You can get a check ID by running create-check.js."); - return; + console.log('Please edit this snippet to provide a check ID. You can get a check ID by running create-check.js.') + return } - + // Prepare the transaction ------------------------------------------------ const checkcancel = { - "TransactionType": "CheckCancel", - "Account": wallet.address, - "CheckID": check_id - }; + TransactionType: 'CheckCancel', + Account: wallet.address, + CheckID: check_id, + } // Submit the transaction ------------------------------------------------- - const tx = await client.submitAndWait( - checkcancel, - { autofill: true, - wallet: wallet } - ) - + const tx = await client.submitAndWait(checkcancel, { autofill: true, wallet: wallet }) + // Confirm results -------------------------------------------------------- console.log(`Transaction result: ${JSON.stringify(tx, null, 2)}`) - if (tx.result.meta.TransactionResult === "tesSUCCESS") { + if (tx.result.meta.TransactionResult === 'tesSUCCESS') { // submitAndWait() only returns when the transaction's outcome is final, // so you don't also have to check for validated: true. - console.log("Transaction was successful.") + console.log('Transaction was successful.') } // Disconnect ------------------------------------------------------------- await client.disconnect() - } catch (error) { - console.error(`Error: ${error}`) + console.error(`Error: ${error}`) } } diff --git a/_code-samples/checks/js/cash-check-exact.js b/_code-samples/checks/js/cash-check-exact.js index fafcf8b844..9af3486517 100644 --- a/_code-samples/checks/js/cash-check-exact.js +++ b/_code-samples/checks/js/cash-check-exact.js @@ -2,60 +2,54 @@ const xrpl = require('xrpl') // Define parameters. Edit this code with your values before running it. -const secret = "s████████████████████████████" // Replace with your secret -const check_id = "49D339B76FAB3FE3C9DFAD32EB7DB9269FD07B07E165DD7BAFDF68D14CE6CAB8" -const amount = "30000000" // Replace with the amount you want to cash - // String for XRP in drops - // {currency, issuer, value} object for token amount +const secret = 's████████████████████████████' // Replace with your secret +const check_id = '49D339B76FAB3FE3C9DFAD32EB7DB9269FD07B07E165DD7BAFDF68D14CE6CAB8' +const amount = '30000000' // Replace with the amount you want to cash +// String for XRP in drops +// {currency, issuer, value} object for token amount async function main() { try { // Connect to Testnet - const client = new xrpl.Client("wss://s.altnet.rippletest.net:51233") + const client = new xrpl.Client('wss://s.altnet.rippletest.net:51233') await client.connect() // Instantiate a wallet ----------------------------------------------- const wallet = xrpl.Wallet.fromSeed(secret) - console.log("Wallet address: ", wallet.address) + console.log('Wallet address: ', wallet.address) // Check if the check ID is provided ---------------------------------- - if (check_id == "49D339B76FAB3FE3C9DFAD32EB7DB9269FD07B07E165DD7BAFDF68D14CE6CAB8") { - console.log("Please edit this snippet to provide your own check ID. You can get a check ID by running create-check.js.") - return + if (check_id == '49D339B76FAB3FE3C9DFAD32EB7DB9269FD07B07E165DD7BAFDF68D14CE6CAB8') { + console.log('Please edit this snippet to provide your own check ID. You can get a check ID by running create-check.js.') + return } // Prepare the transaction ------------------------------------------------ const checkcash = { - TransactionType: "CheckCash", - Account: wallet.address, - CheckID: check_id, - Amount: amount + TransactionType: 'CheckCash', + Account: wallet.address, + CheckID: check_id, + Amount: amount, } // Submit the transaction ------------------------------------------------- - const tx = await client.submitAndWait( - checkcash, - { autofill: true, - wallet: wallet } - ) + const tx = await client.submitAndWait(checkcash, { autofill: true, wallet: wallet }) // Confirm transaction results -------------------------------------------- console.log(`Transaction result: ${JSON.stringify(tx, null, 2)}`) - if (tx.result.meta.TransactionResult === "tesSUCCESS") { + if (tx.result.meta.TransactionResult === 'tesSUCCESS') { // submitAndWait() only returns when the transaction's outcome is final, // so you don't also have to check for validated: true. - console.log("Transaction was successful.") + console.log('Transaction was successful.') - console.log("Balance changes:", - JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) - ) + console.log('Balance changes:', JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2)) } // Disconnect ------------------------------------------------------------- await client.disconnect() } catch (error) { - console.log("Error: ", error) + console.log('Error: ', error) } } diff --git a/_code-samples/checks/js/cash-check-flexible.js b/_code-samples/checks/js/cash-check-flexible.js index 3456aada39..0d6325f39d 100644 --- a/_code-samples/checks/js/cash-check-flexible.js +++ b/_code-samples/checks/js/cash-check-flexible.js @@ -2,60 +2,54 @@ const xrpl = require('xrpl') // Define parameters. Edit this code with your values before running it. -const secret = "s████████████████████████████" // Replace with your secret -const check_id = "5C5E9F39A92908BBA7B85AECD9457E9616AD36DF1895074723253B767A380D14" -const deliver_min = "20000000" // Replace with the minimum amount to receive - // String for XRP in drops - // {currency, issuer, value} object for token amount +const secret = 's████████████████████████████' // Replace with your secret +const check_id = '5C5E9F39A92908BBA7B85AECD9457E9616AD36DF1895074723253B767A380D14' +const deliver_min = '20000000' // Replace with the minimum amount to receive +// String for XRP in drops +// {currency, issuer, value} object for token amount async function main() { try { // Connect to Testnet - const client = new xrpl.Client("wss://s.altnet.rippletest.net:51233") + const client = new xrpl.Client('wss://s.altnet.rippletest.net:51233') await client.connect() // Instantiate a wallet ----------------------------------------------- const wallet = xrpl.Wallet.fromSeed(secret) - console.log("Wallet address: ", wallet.address) + console.log('Wallet address: ', wallet.address) // Check if the check ID is provided ---------------------------------- if (check_id.length === 0) { - console.log("Please edit this snippet to provide a check ID. You can get a check ID by running create-check.js.") - return + console.log('Please edit this snippet to provide a check ID. You can get a check ID by running create-check.js.') + return } // Prepare the transaction ------------------------------------------------ const checkcash = { - TransactionType: "CheckCash", - Account: wallet.address, - CheckID: check_id, - DeliverMin: deliver_min + TransactionType: 'CheckCash', + Account: wallet.address, + CheckID: check_id, + DeliverMin: deliver_min, } // Submit the transaction ------------------------------------------------- - const tx = await client.submitAndWait( - checkcash, - { autofill: true, - wallet: wallet } - ) + const tx = await client.submitAndWait(checkcash, { autofill: true, wallet: wallet }) // Confirm transaction results -------------------------------------------- console.log(`Transaction result: ${JSON.stringify(tx, null, 2)}`) - if (tx.result.meta.TransactionResult === "tesSUCCESS") { + if (tx.result.meta.TransactionResult === 'tesSUCCESS') { // submitAndWait() only returns when the transaction's outcome is final, // so you don't also have to check for validated: true. - console.log("Transaction was successful.") + console.log('Transaction was successful.') - console.log("Balance changes:", - JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) - ) + console.log('Balance changes:', JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2)) } // Disconnect ------------------------------------------------------------- await client.disconnect() } catch (error) { - console.log("Error: ", error) + console.log('Error: ', error) } } diff --git a/_code-samples/checks/js/create-check.js b/_code-samples/checks/js/create-check.js index cd3a6aaf9e..3bc94b46f5 100644 --- a/_code-samples/checks/js/create-check.js +++ b/_code-samples/checks/js/create-check.js @@ -2,64 +2,58 @@ const xrpl = require('xrpl') async function main() { - try { - // Connect to the XRP Ledger Test Net ------------------------------------- - console.log("Connecting to Testnet...") - const client = new xrpl.Client('wss://s.altnet.rippletest.net:51233') - await client.connect() - console.log("Connected.") + try { + // Connect to the XRP Ledger Test Net ------------------------------------- + console.log('Connecting to Testnet...') + const client = new xrpl.Client('wss://s.altnet.rippletest.net:51233') + await client.connect() + console.log('Connected.') - // Get a new wallet --------------------------------------------------- - console.log("Generating new wallet...") - const wallet = (await client.fundWallet()).wallet - console.log(" Address:", wallet.address) - console.log(" Seed:", wallet.seed) + // Get a new wallet --------------------------------------------------- + console.log('Generating new wallet...') + const wallet = (await client.fundWallet()).wallet + console.log(' Address:', wallet.address) + console.log(' Seed:', wallet.seed) - // Prepare the transaction -------------------------------------------- - const checkcreate = { - "TransactionType": "CheckCreate", - "Account": wallet.address, - "Destination": "rGPnRH1EBpHeTF2QG8DCAgM7z5pb75LAis", - "SendMax": xrpl.xrpToDrops(120), // Can be more than you have - "InvoiceID": "46060241FABCF692D4D934BA2A6C4427CD4279083E38C77CBE642243E43BE291" - } - - // Submit the transaction --------------------------------------------- - console.log("Submitting transaction...") - const tx = await client.submitAndWait( - checkcreate, - { autofill: true, - wallet: wallet } - ) - - // Get transaction result and Check ID--------------------------------- - console.log(`Transaction: ${JSON.stringify(tx, null, 2)}`) - - if (tx.result.meta.TransactionResult === "tesSUCCESS") { - let checkID = null - for (const node of tx.result.meta.AffectedNodes) { - if (node?.CreatedNode && - node.CreatedNode?.LedgerEntryType == "Check") { - checkID = node.CreatedNode.LedgerIndex - break - } - } - - if (checkID) { - console.log(`Check ID: ${checkID}`) - } else { - console.log("Unable to find the CheckID from parsing the metadata. Look for the LedgerIndex of the 'Check' object within 'meta'.") - } - } else { - console.log("Transaction failed with result code "+ - tx.result.meta.TransactionResult) - } - - // Disconnect --------------------------------------------------------- - await client.disconnect() - } catch (error) { - console.error(`Error: ${error}`) + // Prepare the transaction -------------------------------------------- + const checkcreate = { + TransactionType: 'CheckCreate', + Account: wallet.address, + Destination: 'rGPnRH1EBpHeTF2QG8DCAgM7z5pb75LAis', + SendMax: xrpl.xrpToDrops(120), // Can be more than you have + InvoiceID: '46060241FABCF692D4D934BA2A6C4427CD4279083E38C77CBE642243E43BE291', } + + // Submit the transaction --------------------------------------------- + console.log('Submitting transaction...') + const tx = await client.submitAndWait(checkcreate, { autofill: true, wallet: wallet }) + + // Get transaction result and Check ID--------------------------------- + console.log(`Transaction: ${JSON.stringify(tx, null, 2)}`) + + if (tx.result.meta.TransactionResult === 'tesSUCCESS') { + let checkID = null + for (const node of tx.result.meta.AffectedNodes) { + if (node?.CreatedNode && node.CreatedNode?.LedgerEntryType == 'Check') { + checkID = node.CreatedNode.LedgerIndex + break + } + } + + if (checkID) { + console.log(`Check ID: ${checkID}`) + } else { + console.log("Unable to find the CheckID from parsing the metadata. Look for the LedgerIndex of the 'Check' object within 'meta'.") + } + } else { + console.log('Transaction failed with result code ' + tx.result.meta.TransactionResult) + } + + // Disconnect --------------------------------------------------------- + await client.disconnect() + } catch (error) { + console.error(`Error: ${error}`) + } } main() diff --git a/_code-samples/checks/js/get-checks.js b/_code-samples/checks/js/get-checks.js index 45a08afe95..fd8f4437de 100644 --- a/_code-samples/checks/js/get-checks.js +++ b/_code-samples/checks/js/get-checks.js @@ -12,10 +12,10 @@ async function main() { let checks_found = [] do { const request = { - "command": "account_objects", - "account": "rGPnRH1EBpHeTF2QG8DCAgM7z5pb75LAis", - "ledger_index": "validated", - "type": "check" + command: 'account_objects', + account: 'rGPnRH1EBpHeTF2QG8DCAgM7z5pb75LAis', + ledger_index: 'validated', + type: 'check', } if (current_marker) { @@ -23,31 +23,29 @@ async function main() { } const response = await client.request(request) - + checks_found = checks_found.concat(response.result.account_objects) current_marker = response.result.marker - } while (current_marker) // Filter results by recipient -------------------------------------------- // To filter by sender, check Account field instead of Destination const checks_by_recipient = [] for (const check of checks_found) { - if (check.Destination == "rGPnRH1EBpHeTF2QG8DCAgM7z5pb75LAis") { + if (check.Destination == 'rGPnRH1EBpHeTF2QG8DCAgM7z5pb75LAis') { checks_by_recipient.push(check) } } - + // Print results ---------------------------------------------------------- if (checks_by_recipient.length === 0) { - console.log("No checks found.") + console.log('No checks found.') } else { - console.log("Checks: \n", JSON.stringify(checks_by_recipient, null, 2)) + console.log('Checks: \n', JSON.stringify(checks_by_recipient, null, 2)) } // Disconnect ------------------------------------------------------------- await client.disconnect() - } catch (error) { console.log(error) process.exit(1) diff --git a/_code-samples/claim-payment-channel/js/claimPayChannel.ts b/_code-samples/claim-payment-channel/js/claimPayChannel.ts index 15f7763b29..74479f7a66 100644 --- a/_code-samples/claim-payment-channel/js/claimPayChannel.ts +++ b/_code-samples/claim-payment-channel/js/claimPayChannel.ts @@ -2,13 +2,7 @@ * Create, claim and verify a Payment Channel. * Reference: https://xrpl.org/docs/references/protocol/ledger-data/ledger-entry-types/paychannel */ -import { - AccountObjectsRequest, - Client, - PaymentChannelCreate, - PaymentChannelClaim, - hashes, -} from 'xrpl' +import { AccountObjectsRequest, Client, PaymentChannelCreate, PaymentChannelClaim, hashes } from 'xrpl' const client = new Client('wss://s.altnet.rippletest.net:51233') @@ -30,16 +24,13 @@ async function claimPayChannel(): Promise { Account: wallet1.classicAddress, Amount: '100', // 10 XRP Destination: wallet2.classicAddress, - SettleDelay: 86400, // 1 day in seconds + SettleDelay: 86400, // 1 day in seconds PublicKey: wallet1.publicKey, } - - console.log("Submitting a PaymentChannelCreate transaction...") - const paymentChannelResponse = await client.submitAndWait( - paymentChannelCreate, - { wallet: wallet1 }, - ) - console.log("PaymentChannelCreate transaction response:") + + console.log('Submitting a PaymentChannelCreate transaction...') + const paymentChannelResponse = await client.submitAndWait(paymentChannelCreate, { wallet: wallet1 }) + console.log('PaymentChannelCreate transaction response:') console.log(paymentChannelResponse) // Check that the object was actually created @@ -48,27 +39,22 @@ async function claimPayChannel(): Promise { account: wallet1.classicAddress, } - const accountObjects = (await client.request(accountObjectsRequest)).result - .account_objects - console.log("Account Objects:", accountObjects) + const accountObjects = (await client.request(accountObjectsRequest)).result.account_objects + console.log('Account Objects:', accountObjects) // Destination claims the Payment Channel and we see the balances to verify. const paymentChannelClaim: PaymentChannelClaim = { Account: wallet2.classicAddress, TransactionType: 'PaymentChannelClaim', - Channel: hashes.hashPaymentChannel( - wallet1.classicAddress, - wallet2.classicAddress, - paymentChannelResponse.result.tx_json.Sequence ?? 0, - ), + Channel: hashes.hashPaymentChannel(wallet1.classicAddress, wallet2.classicAddress, paymentChannelResponse.result.tx_json.Sequence ?? 0), Amount: '100', } - console.log("Submitting a PaymentChannelClaim transaction...") + console.log('Submitting a PaymentChannelClaim transaction...') const channelClaimResponse = await client.submit(paymentChannelClaim, { wallet: wallet2, }) - console.log("PaymentChannelClaim transaction response:") + console.log('PaymentChannelClaim transaction response:') console.log(channelClaimResponse) console.log('Balances of wallets after Payment Channel is claimed:') diff --git a/_code-samples/create-amm/js/create-amm.js b/_code-samples/create-amm/js/create-amm.js index ebd322a477..5b6d3001cd 100644 --- a/_code-samples/create-amm/js/create-amm.js +++ b/_code-samples/create-amm/js/create-amm.js @@ -5,7 +5,7 @@ // Dependencies for Node.js; this if statement lets the code run unmodified // in browsers, as long as you provide a diff --git a/_code-samples/get-started/py/README.md b/_code-samples/get-started/py/README.md index 87cd34f499..794cd47804 100644 --- a/_code-samples/get-started/py/README.md +++ b/_code-samples/get-started/py/README.md @@ -22,7 +22,7 @@ Creating a new wallet and funding it with Testnet XRP... Attempting to fund address ravbHNootpSNQkxyEFCWevSkHsFGDHfyop Faucet fund successful. Wallet: ravbHNootpSNQkxyEFCWevSkHsFGDHfyop -Account Testnet Explorer URL: +Account Testnet Explorer URL: https://testnet.xrpl.org/accounts/ravbHNootpSNQkxyEFCWevSkHsFGDHfyop Getting account info... diff --git a/_code-samples/get-tx/js/getTransaction.ts b/_code-samples/get-tx/js/getTransaction.ts index ade7707003..f6d75f5745 100644 --- a/_code-samples/get-tx/js/getTransaction.ts +++ b/_code-samples/get-tx/js/getTransaction.ts @@ -13,7 +13,7 @@ async function getTransaction(): Promise { transactions: true, ledger_index: 'validated', }) - console.log("Latest validated ledger:", ledger) + console.log('Latest validated ledger:', ledger) const transactions = ledger.result.ledger.transactions if (transactions) { @@ -21,7 +21,7 @@ async function getTransaction(): Promise { command: 'tx', transaction: transactions[0], }) - console.log("First transaction in the ledger:") + console.log('First transaction in the ledger:') console.log(tx) // The meta field would be a string(hex) when the `binary` parameter is `true` for the `tx` request. diff --git a/_code-samples/issue-a-token/js/demo.html b/_code-samples/issue-a-token/js/demo.html index cb32312dfa..fa8abc66ed 100644 --- a/_code-samples/issue-a-token/js/demo.html +++ b/_code-samples/issue-a-token/js/demo.html @@ -1,10 +1,12 @@ - + - - -Code Sample - Issue a Token - - - -Open your browser's console (F12) to see the logs. + + + Code Sample - Issue a Token + + + + + Open your browser's console (F12) to see the logs. + diff --git a/_code-samples/issue-a-token/js/issue-a-token.js b/_code-samples/issue-a-token/js/issue-a-token.js index c8cebcd527..2dcb49ef09 100644 --- a/_code-samples/issue-a-token/js/issue-a-token.js +++ b/_code-samples/issue-a-token/js/issue-a-token.js @@ -3,7 +3,7 @@ // Dependencies for Node.js. // In browsers, use - - -

    (Open your browser's console with F12 and check the logs.)

    - + + + + + +

    (Open your browser's console with F12 and check the logs.)

    + diff --git a/_code-samples/monitor-payments-websocket/js/monitor-payments.js b/_code-samples/monitor-payments-websocket/js/monitor-payments.js index 5e4e537e40..fce37f1db9 100644 --- a/_code-samples/monitor-payments-websocket/js/monitor-payments.js +++ b/_code-samples/monitor-payments-websocket/js/monitor-payments.js @@ -10,45 +10,45 @@ socket.addEventListener('close', (event) => { }) const AWAITING = {} -const handleResponse = function(data) { - if (!data.hasOwnProperty("id")) { - console.error("Got response event without ID:", data) +const handleResponse = function (data) { + if (!data.hasOwnProperty('id')) { + console.error('Got response event without ID:', data) return } if (AWAITING.hasOwnProperty(data.id)) { AWAITING[data.id].resolve(data) } else { - console.warn("Response to un-awaited request w/ ID " + data.id) + console.warn('Response to un-awaited request w/ ID ' + data.id) } } let autoid_n = 0 function api_request(options) { if (socket.readyState === 0) { - console.error("Socket is not connected yet") + console.error('Socket is not connected yet') return } - if (!options.hasOwnProperty("id")) { - options.id = "autoid_" + (autoid_n++) + if (!options.hasOwnProperty('id')) { + options.id = 'autoid_' + autoid_n++ } - let resolveHolder; + let resolveHolder AWAITING[options.id] = new Promise((resolve, reject) => { // Save the resolve func to be called by the handleResponse function later resolveHolder = resolve try { // Use the socket opened in the previous example... socket.send(JSON.stringify(options)) - } catch(error) { + } catch (error) { reject(error) } }) - AWAITING[options.id].resolve = resolveHolder; + AWAITING[options.id].resolve = resolveHolder return AWAITING[options.id] } const WS_HANDLERS = { - "response": handleResponse + response: handleResponse, // Fill this out with your handlers in the following format: // "type": function(event) { /* handle event of this type */ } } @@ -58,41 +58,47 @@ socket.addEventListener('message', (event) => { // Call the mapped handler WS_HANDLERS[parsed_data.type](parsed_data) } else { - console.log("Unhandled message from server", event) + console.log('Unhandled message from server', event) } }) // Demonstrate api_request functionality async function pingpong() { - console.log("Ping...") - const response = await api_request({command: "ping"}) - console.log("Pong!", response) + console.log('Ping...') + const response = await api_request({ command: 'ping' }) + console.log('Pong!', response) } async function do_subscribe() { const sub_response = await api_request({ - command:"subscribe", - accounts: ["rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe"] + command: 'subscribe', + accounts: ['rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe'], }) - if (sub_response.status === "success") { - console.log("Successfully subscribed!") + if (sub_response.status === 'success') { + console.log('Successfully subscribed!') } else { - console.error("Error subscribing: ", sub_response) + console.error('Error subscribing: ', sub_response) } } -const log_tx = function(tx) { - console.log(tx.tx_json.TransactionType + " transaction sent by " + - tx.tx_json.Account + - "\n Result: " + tx.meta.TransactionResult + - " in ledger " + tx.ledger_index + - "\n Validated? " + tx.validated) +const log_tx = function (tx) { + console.log( + tx.tx_json.TransactionType + + ' transaction sent by ' + + tx.tx_json.Account + + '\n Result: ' + + tx.meta.TransactionResult + + ' in ledger ' + + tx.ledger_index + + '\n Validated? ' + + tx.validated, + ) } -WS_HANDLERS["transaction"] = log_tx +WS_HANDLERS['transaction'] = log_tx socket.addEventListener('open', (event) => { // This callback runs when the connection is open - console.log("Connected!") + console.log('Connected!') pingpong() do_subscribe() }) diff --git a/_code-samples/monitor-payments-websocket/js/read-amount-received.js b/_code-samples/monitor-payments-websocket/js/read-amount-received.js index ae253100ea..a3e2b0c8d0 100644 --- a/_code-samples/monitor-payments-websocket/js/read-amount-received.js +++ b/_code-samples/monitor-payments-websocket/js/read-amount-received.js @@ -6,14 +6,13 @@ function CountXRPDifference(affected_nodes, address) { // Note: this reports the net balance change. If the address is the sender, // the transaction cost is deducted and combined with XRP sent/received - for (let i=0; i { const { tx_blob: tx_blob2 } = wallet2.sign(accountSetTx, true) const multisignedTx = multisign([tx_blob1, tx_blob2]) - console.log("Successfully multisigned the transaction") + console.log('Successfully multisigned the transaction') console.log(multisignedTx) const submitResponse = await client.submit(multisignedTx) @@ -71,14 +65,10 @@ async function multisigning(): Promise { console.log('The multisigned transaction was accepted by the ledger:') console.log(submitResponse) if (submitResponse.result.tx_json.Signers) { - console.log( - `The transaction had ${submitResponse.result.tx_json.Signers.length} signatures`, - ) + console.log(`The transaction had ${submitResponse.result.tx_json.Signers.length} signatures`) } } else { - console.log( - "The multisigned transaction was rejected by rippled. Here's the response from rippled:", - ) + console.log("The multisigned transaction was rejected by rippled. Here's the response from rippled:") console.log(submitResponse) } diff --git a/_code-samples/nft-modular-tutorials/account-support.js b/_code-samples/nft-modular-tutorials/account-support.js index 025a1b2def..a30adb985e 100644 --- a/_code-samples/nft-modular-tutorials/account-support.js +++ b/_code-samples/nft-modular-tutorials/account-support.js @@ -1,11 +1,11 @@ // ****************************************************** // ************* Get the Preferred Network ************** -// ****************************************************** +// ****************************************************** function getNet() { let net - if (document.getElementById("tn").checked) net = "wss://s.altnet.rippletest.net:51233/" - if (document.getElementById("dn").checked) net = "wss://s.devnet.rippletest.net:51233/" + if (document.getElementById('tn').checked) net = 'wss://s.altnet.rippletest.net:51233/' + if (document.getElementById('dn').checked) net = 'wss://s.devnet.rippletest.net:51233/' return net } // End of getNet() @@ -20,42 +20,40 @@ async function getAccount() { resultField.value = `===Getting Account===\n\nConnected to ${net}.` try { let faucetHost = null - const my_wallet = (await client.fundWallet(null, { faucetHost})).wallet + const my_wallet = (await client.fundWallet(null, { faucetHost })).wallet const newAccount = [my_wallet.address, my_wallet.seed] return newAccount - } - catch (error) { - console.error('===Error getting account:', error); + } catch (error) { + console.error('===Error getting account:', error) results += `\nError: ${error.message}\n` resultField.value = results - throw error; // Re-throw the error to be handled by the caller - } - finally { + throw error // Re-throw the error to be handled by the caller + } finally { // Disconnect from the client if (client && client.isConnected()) { - await client.disconnect(); + await client.disconnect() } } } // End of getAccount() async function getNewAccount1() { - account1address.value = "=== Getting new account. ===\n\n" - account1seed.value = "" - const accountInfo= await getAccount() + account1address.value = '=== Getting new account. ===\n\n' + account1seed.value = '' + const accountInfo = await getAccount() account1address.value = accountInfo[0] account1seed.value = accountInfo[1] } async function getNewAccount2() { - account2address.value = "=== Getting new account. ===\n\n" - account2seed.value = "" - const accountInfo= await getAccount() + account2address.value = '=== Getting new account. ===\n\n' + account2seed.value = '' + const accountInfo = await getAccount() account2address.value = accountInfo[0] account2seed.value = accountInfo[1] } // ***************************************************** -// ********** Get Account from Seed ******************** +// ********** Get Account from Seed ******************** // ***************************************************** async function getAccountFromSeed(my_seed) { @@ -67,25 +65,23 @@ async function getAccountFromSeed(my_seed) { try { const wallet = xrpl.Wallet.fromSeed(my_seed) const address = wallet.address - results += "===Wallet found.===\n\n" - results += "Account address: " + address + "\n\n" + results += '===Wallet found.===\n\n' + results += 'Account address: ' + address + '\n\n' resultField.value = results - return (address) - } - catch (error) { - console.error('===Error getting account from seed:', error); + return address + } catch (error) { + console.error('===Error getting account from seed:', error) results += `\nError: ${error.message}\n` resultField.value = results - throw error; // Re-throw the error to be handled by the caller - } - finally { + throw error // Re-throw the error to be handled by the caller + } finally { // Disconnect from the client - await client.disconnect(); + await client.disconnect() } } // End of getAccountFromSeed() // ***************************************************** -// ********** Get Account from Seed1 ******************* +// ********** Get Account from Seed1 ******************* // ***************************************************** async function getAccountFromSeed1() { @@ -93,7 +89,7 @@ async function getAccountFromSeed1() { } // ***************************************************** -// ********** Get Account from Seed2 ******************* +// ********** Get Account from Seed2 ******************* // ***************************************************** async function getAccountFromSeed2() { @@ -105,8 +101,8 @@ async function getAccountFromSeed2() { // ***************************************************** function gatherAccountInfo() { - let accountData = account1name.value + "\n" + account1address.value + "\n" + account1seed.value + "\n" - accountData += account2name.value + "\n" + account2address.value + "\n" + account2seed.value + let accountData = account1name.value + '\n' + account1address.value + '\n' + account1seed.value + '\n' + accountData += account2name.value + '\n' + account2address.value + '\n' + account2seed.value resultField.value = accountData } @@ -115,7 +111,7 @@ function gatherAccountInfo() { // ***************************************************** function distributeAccountInfo() { - let accountInfo = resultField.value.split("\n") + let accountInfo = resultField.value.split('\n') account1name.value = accountInfo[0] account1address.value = accountInfo[1] account1seed.value = accountInfo[2] @@ -159,19 +155,17 @@ async function getXrpBalance() { try { const wallet = xrpl.Wallet.fromSeed(accountSeedField.value) const balance = await client.getXrpBalance(wallet.address) - results += accountNameField.value + " current XRP balance: " + balance + "\n\n" + results += accountNameField.value + ' current XRP balance: ' + balance + '\n\n' xrpBalanceField.value = await client.getXrpBalance(accountAddressField.value) resultField.value = results - } - catch (error) { - console.error('Error getting XRP balance:', error); + } catch (error) { + console.error('Error getting XRP balance:', error) results += `\nError: ${error.message}\n` resultField.value = results - throw error; // Re-throw the error to be handled by the caller - } - finally { + throw error // Re-throw the error to be handled by the caller + } finally { // Disconnect from the client - await client.disconnect(); + await client.disconnect() } } // End of getXrpBalance() @@ -182,28 +176,26 @@ async function getXrpBalance() { async function getTokenBalance() { let net = getNet() const client = new xrpl.Client(net) - await client.connect() + await client.connect() let results = `===Connected to ${net}.===\n===Getting account token balance...===\n\n` resultField.value += results try { const wallet = xrpl.Wallet.fromSeed(accountSeedField.value) const balance = await client.request({ - command: "gateway_balances", + command: 'gateway_balances', account: wallet.address, - ledger_index: "validated", + ledger_index: 'validated', }) - results = accountNameField.value + "\'s token balance(s): " + JSON.stringify(balance.result, null, 2) + "\n" + results = accountNameField.value + "\'s token balance(s): " + JSON.stringify(balance.result, null, 2) + '\n' resultField.value += results - xrpBalanceField.value = (await client.getXrpBalance(wallet.address)) - } - catch (error) { - console.error('Error getting token balance:', error); + xrpBalanceField.value = await client.getXrpBalance(wallet.address) + } catch (error) { + console.error('Error getting token balance:', error) results = `\nError: ${error.message}\n` resultField.value += results - throw error; // Re-throw the error to be handled by the caller - } - finally { + throw error // Re-throw the error to be handled by the caller + } finally { // Disconnect from the client - await client.disconnect(); + await client.disconnect() } } // End of getTokenBalance() diff --git a/_code-samples/nft-modular-tutorials/authorized-minter.js b/_code-samples/nft-modular-tutorials/authorized-minter.js index b33b70b9e8..690cf60ea2 100644 --- a/_code-samples/nft-modular-tutorials/authorized-minter.js +++ b/_code-samples/nft-modular-tutorials/authorized-minter.js @@ -3,19 +3,19 @@ // ******************************************************* async function authorizeMinter() { - const wallet = xrpl.Wallet.fromSeed(accountSeedField.value); - const net = getNet(); - const client = new xrpl.Client(net); - let results = `\n=== Connected. Authorizing Minter. ===`; - resultField.value = results; + const wallet = xrpl.Wallet.fromSeed(accountSeedField.value) + const net = getNet() + const client = new xrpl.Client(net) + let results = `\n=== Connected. Authorizing Minter. ===` + resultField.value = results try { - await client.connect(); + await client.connect() tx_json = { - "TransactionType": "AccountSet", - "Account": wallet.address, - "NFTokenMinter": authorizedMinterField.value, - "SetFlag": xrpl.AccountSetAsfFlags.asfAuthorizedNFTokenMinter + TransactionType: 'AccountSet', + Account: wallet.address, + NFTokenMinter: authorizedMinterField.value, + SetFlag: xrpl.AccountSetAsfFlags.asfAuthorizedNFTokenMinter, } const prepared = await client.autofill(tx_json) @@ -25,12 +25,12 @@ async function authorizeMinter() { results += JSON.stringify(result, null, 2) resultField.value = results } catch (error) { - console.error("Error setting minter:", error); - results = `\n\n=== Error setting minter: ${error.message}`; - resultField.value += results; + console.error('Error setting minter:', error) + results = `\n\n=== Error setting minter: ${error.message}` + resultField.value += results } finally { if (client && client.isConnected()) { - await client.disconnect(); + await client.disconnect() } } } // End of authorizeMinter() @@ -53,30 +53,30 @@ async function mintOther() { // ------------------------------------------------------------------------ const tx_json = { - "TransactionType": "NFTokenMint", - "Account": wallet.classicAddress, - "URI": xrpl.convertStringToHex(nftURLfield.value), - "Flags": parseInt(flagsField.value), - "TransferFee": parseInt(transferFeeField.value), - "Issuer": nftIssuerField.value, - "NFTokenTaxon": nftTaxonField.value //Required, but if you have no use for it, set to zero. + TransactionType: 'NFTokenMint', + Account: wallet.classicAddress, + URI: xrpl.convertStringToHex(nftURLfield.value), + Flags: parseInt(flagsField.value), + TransferFee: parseInt(transferFeeField.value), + Issuer: nftIssuerField.value, + NFTokenTaxon: nftTaxonField.value, //Required, but if you have no use for it, set to zero. } if (amountField.value) { - tx_json.Amount = configureAmount(amountField.value); + tx_json.Amount = configureAmount(amountField.value) } if (expirationField.value) { - tx_json.Expiration = configureExpiration(expirationField.value); + tx_json.Expiration = configureExpiration(expirationField.value) } if (destinationField.value) { - tx_json.Destination = destinationField.value; + tx_json.Destination = destinationField.value } // ----------------------------------------------------- Submit transaction const tx = await client.submitAndWait(tx_json, { wallet: wallet }) const nfts = await client.request({ - method: "account_nfts", - account: wallet.classicAddress + method: 'account_nfts', + account: wallet.classicAddress, }) // ------------------------------------------------------- Report results results += '\n\n=== Transaction result: ' + tx.result.meta.TransactionResult @@ -87,11 +87,11 @@ async function mintOther() { console.error(error) // Log the error for debugging resultField.value = results } finally { - if (client.isConnected()) { // Check if the client is connected before attempting to disconnect + if (client.isConnected()) { + // Check if the client is connected before attempting to disconnect client.disconnect() results += '\nDisconnected from XRPL.' resultField.value = results } } } //End of mintOther() - diff --git a/_code-samples/nft-modular-tutorials/batch-minting.js b/_code-samples/nft-modular-tutorials/batch-minting.js index 8f0a324768..9a000fef0a 100644 --- a/_code-samples/nft-modular-tutorials/batch-minting.js +++ b/_code-samples/nft-modular-tutorials/batch-minting.js @@ -3,43 +3,43 @@ // ******************************************************* async function batchMintNFTs() { - let client; // Declare client here so it's accessible in finally block + let client // Declare client here so it's accessible in finally block try { //--------------------- Connect to the XRP Ledger and get the account wallet. - let net = getNet(); - client = new xrpl.Client(net); // Assign client - results = 'Connecting to ' + getNet() + '....'; - resultField.value = results; - await client.connect(); - results += '\nConnected, finding wallet.'; - resultField.value = results; + let net = getNet() + client = new xrpl.Client(net) // Assign client + results = 'Connecting to ' + getNet() + '....' + resultField.value = results + await client.connect() + results += '\nConnected, finding wallet.' + resultField.value = results - let wallet; + let wallet try { - wallet = xrpl.Wallet.fromSeed(accountSeedField.value); + wallet = xrpl.Wallet.fromSeed(accountSeedField.value) } catch (error) { - results += '\nError: Invalid account seed. Please check your seed.'; - resultField.value = results; - return; // Stop execution if wallet cannot be derived + results += '\nError: Invalid account seed. Please check your seed.' + resultField.value = results + return // Stop execution if wallet cannot be derived } - resultField.value = results; + resultField.value = results //----------------- Get account information, particularly the Sequence number. - let account_info; + let account_info try { account_info = await client.request({ - "command": "account_info", - "account": wallet.address - }); + command: 'account_info', + account: wallet.address, + }) } catch (error) { - results += `\nError retrieving account info for ${wallet.address}: ${error.message}`; - resultField.value = results; - return; + results += `\nError retrieving account info for ${wallet.address}: ${error.message}` + resultField.value = results + return } - let my_sequence = account_info.result.account_data.Sequence; - results += "\n\nSequence Number: " + my_sequence + "\n\n"; - resultField.value = results; + let my_sequence = account_info.result.account_data.Sequence + results += '\n\nSequence Number: ' + my_sequence + '\n\n' + resultField.value = results /* ################################### Create ticket numbers for the batch @@ -50,223 +50,219 @@ async function batchMintNFTs() { */ //---------------------- Parse the requested number from nftCountField. - const nftCount = parseInt(nftCountField.value); + const nftCount = parseInt(nftCountField.value) if (isNaN(nftCount) || nftCount <= 0) { - results += '\nError: Please enter a valid number of NFTs to mint.'; - resultField.value = results; - return; + results += '\nError: Please enter a valid number of NFTs to mint.' + resultField.value = results + return } //-------------------------------------------- Create the transaction hash. - let ticketTransaction; + let ticketTransaction try { ticketTransaction = await client.autofill({ - "TransactionType": "TicketCreate", - "Account": wallet.address, - "TicketCount": nftCount, - "Sequence": my_sequence - }); + TransactionType: 'TicketCreate', + Account: wallet.address, + TicketCount: nftCount, + Sequence: my_sequence, + }) } catch (error) { - results += `\nError autofilling ticket creation transaction: ${error.message}`; - resultField.value = results; - return; + results += `\nError autofilling ticket creation transaction: ${error.message}` + resultField.value = results + return } - //---------------------------------------------------- Sign the transaction. - const signedTransaction = wallet.sign(ticketTransaction); + const signedTransaction = wallet.sign(ticketTransaction) //-------------------------- Submit the transaction and wait for the result. - let tx; + let tx try { - tx = await client.submitAndWait(signedTransaction.tx_blob); + tx = await client.submitAndWait(signedTransaction.tx_blob) } catch (error) { - results += `\nError submitting ticket creation transaction: ${error.message}`; - resultField.value = results; - return; + results += `\nError submitting ticket creation transaction: ${error.message}` + resultField.value = results + return } if (tx.result.meta.TransactionResult !== 'tesSUCCESS') { - results += `\nError creating tickets. Transaction failed with result: ${tx.result.meta.TransactionResult}`; - resultField.value = results; - return; + results += `\nError creating tickets. Transaction failed with result: ${tx.result.meta.TransactionResult}` + resultField.value = results + return } - results += `\nTickets created successfully. Transaction result: ${tx.result.meta.TransactionResult}\n\n`; - resultField.value = results; + results += `\nTickets created successfully. Transaction result: ${tx.result.meta.TransactionResult}\n\n` + resultField.value = results - let response; + let response try { response = await client.request({ - "command": "account_objects", - "account": wallet.address, - "type": "ticket" - }); + command: 'account_objects', + account: wallet.address, + type: 'ticket', + }) } catch (error) { - results += `\nError retrieving account tickets: ${error.message}`; - resultField.value = results; - return; + results += `\nError retrieving account tickets: ${error.message}` + resultField.value = results + return } //------------------------------------ Populate the tickets array variable. - let tickets = []; + let tickets = [] if (response.result.account_objects && response.result.account_objects.length > 0) { for (let i = 0; i < nftCount; i++) { if (response.result.account_objects[i]) { - tickets[i] = response.result.account_objects[i].TicketSequence; + tickets[i] = response.result.account_objects[i].TicketSequence } else { - results += `\nWarning: Fewer tickets found than requested. Expected ${nftCount}, found ${response.result.account_objects.length}.`; - resultField.value = results; - break; // Exit loop if tickets run out + results += `\nWarning: Fewer tickets found than requested. Expected ${nftCount}, found ${response.result.account_objects.length}.` + resultField.value = results + break // Exit loop if tickets run out } } } else { - results += '\nError: No tickets found for the account.'; - resultField.value = results; - return; + results += '\nError: No tickets found for the account.' + resultField.value = results + return } //-------------------------------------------------------- Report progress. - results += "Tickets generated, minting NFTs.\n\n"; - resultField.value = results; + results += 'Tickets generated, minting NFTs.\n\n' + resultField.value = results // ################################### // Mint NFTs - let mintedNFTsCount = 0; + let mintedNFTsCount = 0 for (let i = 0; i < tickets.length; i++) { const transactionParams = { - "TransactionType": "NFTokenMint", - "Account": wallet.classicAddress, - "URI": xrpl.convertStringToHex(nftURLfield.value), - "Flags": parseInt(flagsField.value), - "TransferFee": parseInt(transferFeeField.value), - "Sequence": 0, // Sequence is 0 when using TicketSequence - "TicketSequence": tickets[i], - "LastLedgerSequence": null, // Optional, can be used for time limits - "NFTokenTaxon": nftTaxonField.value, - }; + TransactionType: 'NFTokenMint', + Account: wallet.classicAddress, + URI: xrpl.convertStringToHex(nftURLfield.value), + Flags: parseInt(flagsField.value), + TransferFee: parseInt(transferFeeField.value), + Sequence: 0, // Sequence is 0 when using TicketSequence + TicketSequence: tickets[i], + LastLedgerSequence: null, // Optional, can be used for time limits + NFTokenTaxon: nftTaxonField.value, + } - // Add optional fields - if (amountField.value) { - transactionParams.Amount = configureAmount(amountField.value); - } + // Add optional fields + if (amountField.value) { + transactionParams.Amount = configureAmount(amountField.value) + } - if (expirationField.value) { - transactionParams.Expiration = configureExpiration(expirationField.value); - } + if (expirationField.value) { + transactionParams.Expiration = configureExpiration(expirationField.value) + } - if (destinationField.value) { - transactionParams.Destination = destinationField.value; - } + if (destinationField.value) { + transactionParams.Destination = destinationField.value + } try { const mintTx = await client.submit(transactionParams, { - wallet: wallet - }); - results += `\nNFT ${i+1} minted successfully.`; - mintedNFTsCount++; - resultField.value = results; + wallet: wallet, + }) + results += `\nNFT ${i + 1} minted successfully.` + mintedNFTsCount++ + resultField.value = results } catch (error) { - console.log(error); + console.log(error) } // Add a small delay to avoid hitting rate limits if many NFTs are being minted - await new Promise(resolve => setTimeout(resolve, 500)); + await new Promise((resolve) => setTimeout(resolve, 500)) } - results += `\n\nAttempted to mint ${nftCount} NFTs. Successfully minted ${mintedNFTsCount} NFTs.`; + results += `\n\nAttempted to mint ${nftCount} NFTs. Successfully minted ${mintedNFTsCount} NFTs.` - results += "\n\nFetching minted NFTs...\n"; - let nfts; + results += '\n\nFetching minted NFTs...\n' + let nfts try { nfts = await client.request({ - method: "account_nfts", + method: 'account_nfts', account: wallet.classicAddress, - limit: 400 - }); - results += JSON.stringify(nfts, null, 2); + limit: 400, + }) + results += JSON.stringify(nfts, null, 2) while (nfts.result.marker) { nfts = await client.request({ - method: "account_nfts", + method: 'account_nfts', account: wallet.classicAddress, limit: 400, - marker: nfts.result.marker - }); - results += '\n' + JSON.stringify(nfts, null, 2); + marker: nfts.result.marker, + }) + results += '\n' + JSON.stringify(nfts, null, 2) } } catch (error) { - results += `\nError fetching account NFTs: ${error.message}`; + results += `\nError fetching account NFTs: ${error.message}` } try { - xrpBalanceField.value = (await client.getXrpBalance(wallet.address)); + xrpBalanceField.value = await client.getXrpBalance(wallet.address) } catch (error) { - results += `\nError fetching XRP balance: ${error.message}`; + results += `\nError fetching XRP balance: ${error.message}` } - resultField.value = results; - + resultField.value = results } catch (error) { - results += `\nAn unexpected error occurred during batch minting: ${error.message}`; - resultField.value = results; + results += `\nAn unexpected error occurred during batch minting: ${error.message}` + resultField.value = results } finally { if (client && client.isConnected()) { - client.disconnect(); - results += '\nDisconnected from XRP Ledger.'; - resultField.value = results; + client.disconnect() + results += '\nDisconnected from XRP Ledger.' + resultField.value = results } } } // End of batchMint() - // ******************************************************* // **************** Get Batch Tokens ********************* // ******************************************************* async function getBatchNFTs() { - let client; // Declare client here for finally block access + let client // Declare client here for finally block access try { - const wallet = xrpl.Wallet.fromSeed(accountSeedField.value); - let net = getNet(); - client = new xrpl.Client(net); // Assign client - results = 'Connecting to ' + net + '...'; - resultField.value = results; - await client.connect(); - results += '\nConnected. Getting NFTs...'; - resultField.value = results; + const wallet = xrpl.Wallet.fromSeed(accountSeedField.value) + let net = getNet() + client = new xrpl.Client(net) // Assign client + results = 'Connecting to ' + net + '...' + resultField.value = results + await client.connect() + results += '\nConnected. Getting NFTs...' + resultField.value = results - results += "\n\nNFTs:\n"; - let nfts; + results += '\n\nNFTs:\n' + let nfts try { nfts = await client.request({ - method: "account_nfts", + method: 'account_nfts', account: wallet.classicAddress, - limit: 400 - }); + limit: 400, + }) - results += JSON.stringify(nfts, null, 2); + results += JSON.stringify(nfts, null, 2) while (nfts.result.marker) { nfts = await client.request({ - method: "account_nfts", + method: 'account_nfts', account: wallet.classicAddress, limit: 400, - marker: nfts.result.marker - }); - results += '\n' + JSON.stringify(nfts, null, 2); + marker: nfts.result.marker, + }) + results += '\n' + JSON.stringify(nfts, null, 2) } } catch (error) { - results += `\nError fetching account NFTs: ${error.message}`; + results += `\nError fetching account NFTs: ${error.message}` } - resultField.value = results; - + resultField.value = results } catch (error) { - results += `\nAn unexpected error occurred while getting batch NFTs: ${error.message}`; - resultField.value = results; + results += `\nAn unexpected error occurred while getting batch NFTs: ${error.message}` + resultField.value = results } finally { if (client && client.isConnected()) { - client.disconnect(); - results += '\nDisconnected from XRP Ledger.'; - resultField.value = results; + client.disconnect() + results += '\nDisconnected from XRP Ledger.' + resultField.value = results } } } //End of getBatchNFTs() diff --git a/_code-samples/nft-modular-tutorials/broker-nfts.js b/_code-samples/nft-modular-tutorials/broker-nfts.js index 7fa4932511..d5afb0191a 100644 --- a/_code-samples/nft-modular-tutorials/broker-nfts.js +++ b/_code-samples/nft-modular-tutorials/broker-nfts.js @@ -3,42 +3,39 @@ // ******************************************************* async function brokerSale() { - const wallet = xrpl.Wallet.fromSeed(accountSeedField.value); - const net = getNet(); - const client = new xrpl.Client(net); - let results = `\n=== Connected. Brokering the sale. ===`; - resultField.value = results; + const wallet = xrpl.Wallet.fromSeed(accountSeedField.value) + const net = getNet() + const client = new xrpl.Client(net) + let results = `\n=== Connected. Brokering the sale. ===` + resultField.value = results try { - await client.connect(); + await client.connect() // Prepare transaction ------------------------------------------------------- const brokerTx = { - "TransactionType": "NFTokenAcceptOffer", - "Account": wallet.classicAddress, - "NFTokenSellOffer": nftSellOfferIndexField.value, - "NFTokenBuyOffer": nftBuyOfferIndexField.value, - "NFTokenBrokerFee": brokerFeeField.value + TransactionType: 'NFTokenAcceptOffer', + Account: wallet.classicAddress, + NFTokenSellOffer: nftSellOfferIndexField.value, + NFTokenBuyOffer: nftBuyOfferIndexField.value, + NFTokenBrokerFee: brokerFeeField.value, } - console.log(JSON.stringify(brokerTx, null, 2)); + console.log(JSON.stringify(brokerTx, null, 2)) // Submit transaction -------------------------------------------------------- const tx = await client.submitAndWait(brokerTx, { wallet: wallet }) // Check transaction results ------------------------------------------------- - results += "\n\nTransaction result:\n" + - JSON.stringify(tx.result.meta.TransactionResult, null, 2) - results += "\nBalance changes:\n" + - JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) - xrpBalanceField.value = (await client.getXrpBalance(wallet.address)) + results += '\n\nTransaction result:\n' + JSON.stringify(tx.result.meta.TransactionResult, null, 2) + results += '\nBalance changes:\n' + JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) + xrpBalanceField.value = await client.getXrpBalance(wallet.address) resultField.value += results } catch (error) { - console.error("Error in broker sale:", error); - results = `\n\n=== Error in broker sale: ${error.message} ===`; // User friendly - resultField.value += results; - } - finally { + console.error('Error in broker sale:', error) + results = `\n\n=== Error in broker sale: ${error.message} ===` // User friendly + resultField.value += results + } finally { if (client && client.isConnected()) { - await client.disconnect(); + await client.disconnect() } } -}// End of brokerSale() \ No newline at end of file +} // End of brokerSale() diff --git a/_code-samples/nft-modular-tutorials/mint-nfts.js b/_code-samples/nft-modular-tutorials/mint-nfts.js index 3f319eaa44..8ec03084a8 100644 --- a/_code-samples/nft-modular-tutorials/mint-nfts.js +++ b/_code-samples/nft-modular-tutorials/mint-nfts.js @@ -3,62 +3,62 @@ // ******************************************************* async function mintNFT() { - const wallet = xrpl.Wallet.fromSeed(accountSeedField.value); - const net = getNet(); - const client = new xrpl.Client(net); - let results = `\n=== Connected. Minting NFT ===`; - resultField.value = results; + const wallet = xrpl.Wallet.fromSeed(accountSeedField.value) + const net = getNet() + const client = new xrpl.Client(net) + let results = `\n=== Connected. Minting NFT ===` + resultField.value = results try { - await client.connect(); + await client.connect() // Prepare transaction parameters const transactionParams = { - TransactionType: "NFTokenMint", + TransactionType: 'NFTokenMint', Account: wallet.classicAddress, URI: xrpl.convertStringToHex(nftURLfield.value), Flags: parseInt(flagsField.value, 10), // Parse to integer TransferFee: parseInt(transferFeeField.value, 10), // Parse to integer NFTokenTaxon: parseInt(nftTaxonField.value, 10), // Parse to integer - }; + } // Add optional fields if (amountField.value) { - transactionParams.Amount = configureAmount(amountField.value); + transactionParams.Amount = configureAmount(amountField.value) } if (expirationField.value) { - transactionParams.Expiration = configureExpiration(expirationField.value); + transactionParams.Expiration = configureExpiration(expirationField.value) } if (destinationField.value) { - transactionParams.Destination = destinationField.value; + transactionParams.Destination = destinationField.value } - console.log("Mint NFT Transaction Parameters:", transactionParams); // Log before submitting + console.log('Mint NFT Transaction Parameters:', transactionParams) // Log before submitting // Submit transaction - const tx = await client.submitAndWait(transactionParams, { wallet }); + const tx = await client.submitAndWait(transactionParams, { wallet }) // Get minted NFTs const nfts = await client.request({ - method: "account_nfts", + method: 'account_nfts', account: wallet.classicAddress, - }); + }) // Report results - results += `\n\n=== Transaction result: ${tx.result.meta.TransactionResult} ===`; - results += `\n\n=== NFTs: ${JSON.stringify(nfts, null, 2)} ===`; - results += `\n\n=== XRP Balance: ${await client.getXrpBalance(wallet.address)} ===`; // Await here - resultField.value = results; - + results += `\n\n=== Transaction result: ${tx.result.meta.TransactionResult} ===` + results += `\n\n=== NFTs: ${JSON.stringify(nfts, null, 2)} ===` + results += `\n\n=== XRP Balance: ${await client.getXrpBalance(wallet.address)} ===` // Await here + resultField.value = results } catch (error) { - console.error("Error minting NFT:", error); - results += `\n\n=== Error minting NFT: ${error.message} ===`; // Use error.message - resultField.value = results; + console.error('Error minting NFT:', error) + results += `\n\n=== Error minting NFT: ${error.message} ===` // Use error.message + resultField.value = results } finally { - if (client && client.isConnected()) { // Check if connected before disconnecting - await client.disconnect(); + if (client && client.isConnected()) { + // Check if connected before disconnecting + await client.disconnect() } } } // End of mintToken() @@ -68,27 +68,27 @@ async function mintNFT() { // ******************************************************* async function getNFTs() { - const wallet = xrpl.Wallet.fromSeed(accountSeedField.value); - const net = getNet(); - const client = new xrpl.Client(net); - let results = '\n=== Connected. Getting NFTs. ==='; - resultField.value = results; + const wallet = xrpl.Wallet.fromSeed(accountSeedField.value) + const net = getNet() + const client = new xrpl.Client(net) + let results = '\n=== Connected. Getting NFTs. ===' + resultField.value = results try { - await client.connect(); + await client.connect() const nfts = await client.request({ - method: "account_nfts", + method: 'account_nfts', account: wallet.classicAddress, - }); - results = '\n=== NFTs:\n ' + JSON.stringify(nfts, null, 2) + ' ==='; // Consistent formatting - resultField.value = results; + }) + results = '\n=== NFTs:\n ' + JSON.stringify(nfts, null, 2) + ' ===' // Consistent formatting + resultField.value = results } catch (error) { - console.error("Error getting NFTs:", error); - results += `\n\n=== Error getting NFTs: ${error.message} ===`; // User-friendly - resultField.value = results; + console.error('Error getting NFTs:', error) + results += `\n\n=== Error getting NFTs: ${error.message} ===` // User-friendly + resultField.value = results } finally { if (client && client.isConnected()) { - await client.disconnect(); + await client.disconnect() } } } // End of getNFTs() @@ -98,44 +98,43 @@ async function getNFTs() { // ******************************************************* async function burnNFT() { - const wallet = xrpl.Wallet.fromSeed(accountSeedField.value); - const net = getNet(); - const client = new xrpl.Client(net); - let results = '\n=== Connected. Burning NFT. ==='; - resultField.value = results; + const wallet = xrpl.Wallet.fromSeed(accountSeedField.value) + const net = getNet() + const client = new xrpl.Client(net) + let results = '\n=== Connected. Burning NFT. ===' + resultField.value = results try { - await client.connect(); + await client.connect() // Prepare transaction const transactionBlob = { - TransactionType: "NFTokenBurn", + TransactionType: 'NFTokenBurn', Account: wallet.classicAddress, NFTokenID: nftIdField.value, - }; + } - console.log("Burn NFT Transaction Parameters:", transactionBlob); // Log before submit + console.log('Burn NFT Transaction Parameters:', transactionBlob) // Log before submit // Submit transaction and wait for the results - const tx = await client.submitAndWait(transactionBlob, { wallet }); - const nfts = await client.request({ // Get nfts after burning. - method: "account_nfts", + const tx = await client.submitAndWait(transactionBlob, { wallet }) + const nfts = await client.request({ + // Get nfts after burning. + method: 'account_nfts', account: wallet.classicAddress, - }); - - results = `\n=== Transaction result: ${tx.result.meta.TransactionResult} ===`; - results += '\n\n=== Balance changes: ' + - JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) + ' ==='; - results += '\n\n=== NFTs: \n' + JSON.stringify(nfts, null, 2) + ' ==='; - resultField.value = results; - xrpBalanceField.value = (await client.getXrpBalance(wallet.address)); // Await + }) + results = `\n=== Transaction result: ${tx.result.meta.TransactionResult} ===` + results += '\n\n=== Balance changes: ' + JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) + ' ===' + results += '\n\n=== NFTs: \n' + JSON.stringify(nfts, null, 2) + ' ===' + resultField.value = results + xrpBalanceField.value = await client.getXrpBalance(wallet.address) // Await } catch (error) { - console.error("Error burning NFT:", error); - results = `\n\n=== Error burning NFT: ${error.message} ===`; // User friendly - resultField.value = results; + console.error('Error burning NFT:', error) + results = `\n\n=== Error burning NFT: ${error.message} ===` // User friendly + resultField.value = results } finally { if (client && client.isConnected()) { - await client.disconnect(); + await client.disconnect() } } } // End of burnNFT() diff --git a/_code-samples/nft-modular-tutorials/modular-tutorials.css b/_code-samples/nft-modular-tutorials/modular-tutorials.css index 1361142238..0699b863b5 100644 --- a/_code-samples/nft-modular-tutorials/modular-tutorials.css +++ b/_code-samples/nft-modular-tutorials/modular-tutorials.css @@ -1,5 +1,5 @@ body { - font-family: "Inter", sans-serif; + font-family: 'Inter', sans-serif; padding: 20px; background: #abe2ff; } @@ -17,18 +17,18 @@ input, button { padding: 6px; margin-bottom: 8px; - border: none + border: none; } input:read-only { - background-color:rgb(11, 96, 132); - color:white; + background-color: rgb(11, 96, 132); + color: white; border: 0; } button { font-weight: bold; - font-family: "Work Sans", sans-serif; + font-family: 'Work Sans', sans-serif; background-color: #006aff; -webkit-text-fill-color: white; width: 144px; @@ -69,31 +69,31 @@ td { right: 0; bottom: 0; background-color: #ccc; - -webkit-transition: .4s; - transition: .4s; + -webkit-transition: 0.4s; + transition: 0.4s; } .slider:before { position: absolute; - content: ""; + content: ''; height: 13px; width: 13px; left: 4px; bottom: 2px; background-color: white; - -webkit-transition: .4s; - transition: .4s; + -webkit-transition: 0.4s; + transition: 0.4s; } -input:checked+.slider { - background-color: #2196F3; +input:checked + .slider { + background-color: #2196f3; } -input:focus+.slider { - box-shadow: 0 0 1px #2196F3; +input:focus + .slider { + box-shadow: 0 0 1px #2196f3; } -input:checked+.slider:before { +input:checked + .slider:before { -webkit-transform: translateX(13px); -ms-transform: translateX(13px); transform: translateX(13px); @@ -113,7 +113,7 @@ input:checked+.slider:before { } .tooltip:before { - content: attr(tooltip-data); + content: attr(tooltip-data); position: absolute; width: 250px; background-color: #006aff; @@ -124,16 +124,16 @@ input:checked+.slider:before { border-radius: 5px; z-index: 1; opacity: 0; - transition: opacity .5s; + transition: opacity 0.5s; bottom: 125%; left: 50%; margin-left: -60px; - font-size: 0.70em; + font-size: 0.7em; visibility: hidden; } .tooltip:after { - content: ""; + content: ''; position: absolute; bottom: 75%; left: 50%; @@ -141,13 +141,13 @@ input:checked+.slider:before { border-width: 5px; border-style: solid; opacity: 0; - transition: opacity .5s; + transition: opacity 0.5s; border-color: #000 transparent transparent transparent; visibility: hidden; } -.tooltip:hover:before, +.tooltip:hover:before, .tooltip:hover:after { opacity: 1; visibility: visible; -} \ No newline at end of file +} diff --git a/_code-samples/nft-modular-tutorials/transaction-support.js b/_code-samples/nft-modular-tutorials/transaction-support.js index 7838dfa88b..67249dab31 100644 --- a/_code-samples/nft-modular-tutorials/transaction-support.js +++ b/_code-samples/nft-modular-tutorials/transaction-support.js @@ -3,23 +3,23 @@ // **************************************** function configureAmount() { - let amount = ''; - if (currencyField.value === "XRP" || currencyField.value === "") { + let amount = '' + if (currencyField.value === 'XRP' || currencyField.value === '') { if (amountField.value !== '') { - amount = amountField.value; // XRP amount should be a string of drops + amount = amountField.value // XRP amount should be a string of drops } else { - amount = undefined; + amount = undefined } - } else if (currencyField.value !== "") { + } else if (currencyField.value !== '') { amount = { currency: currencyField.value, issuer: issuerField.value, value: amountField.value, - }; + } } else { - amount = undefined; // Or handle the case where no currency is provided + amount = undefined // Or handle the case where no currency is provided } - return amount; + return amount } // **************************************** @@ -27,7 +27,7 @@ function configureAmount() { // **************************************** function configureExpiration() { - let expiration = "" + let expiration = '' var days = expirationField.value let d = new Date() d.setDate(d.getDate() + parseInt(days)) diff --git a/_code-samples/nft-modular-tutorials/transfer-nfts.js b/_code-samples/nft-modular-tutorials/transfer-nfts.js index 5286e6e671..22118d7962 100644 --- a/_code-samples/nft-modular-tutorials/transfer-nfts.js +++ b/_code-samples/nft-modular-tutorials/transfer-nfts.js @@ -1,142 +1,138 @@ - // ********************************************************* // *************** Create Sell Offer *********************** // ********************************************************* async function createSellOffer() { - const wallet = xrpl.Wallet.fromSeed(accountSeedField.value); - let results = '\nCreating sell offer...'; - resultField.value = results; + const wallet = xrpl.Wallet.fromSeed(accountSeedField.value) + let results = '\nCreating sell offer...' + resultField.value = results try { - const client = new xrpl.Client(getNet()); - await client.connect(); + const client = new xrpl.Client(getNet()) + await client.connect() try { - const destination = destinationField.value || undefined; - const expiration = expirationField.value ? configureExpiration() : undefined; + const destination = destinationField.value || undefined + const expiration = expirationField.value ? configureExpiration() : undefined const transactionJson = { - TransactionType: "NFTokenCreateOffer", + TransactionType: 'NFTokenCreateOffer', Account: wallet.classicAddress, NFTokenID: nftIdField.value, Flags: 1, - }; + } - const amount = configureAmount(); - if (amount) { // Only add Amount if it's defined - transactionJson.Amount = amount; + const amount = configureAmount() + if (amount) { + // Only add Amount if it's defined + transactionJson.Amount = amount } else { - console.warn("Amount is undefined. Sell offer might be invalid."); - results += "\nWarning: Amount is undefined. Sell offer might be invalid, unless you plan to give away the NFT."; - resultField.value = results; + console.warn('Amount is undefined. Sell offer might be invalid.') + results += '\nWarning: Amount is undefined. Sell offer might be invalid, unless you plan to give away the NFT.' + resultField.value = results } if (expiration) { - transactionJson.Expiration = expiration; + transactionJson.Expiration = expiration } if (destination) { - transactionJson.Destination = destination; + transactionJson.Destination = destination } - const tx = await client.submitAndWait(transactionJson, { wallet }); - results += `\nSell offer created successfully!\nTransaction Hash: ${tx.result.hash}\nEngine Result: ${tx.result.engine_result}`; - resultField.value = results; - + const tx = await client.submitAndWait(transactionJson, { wallet }) + results += `\nSell offer created successfully!\nTransaction Hash: ${tx.result.hash}\nEngine Result: ${tx.result.engine_result}` + resultField.value = results } finally { - client.disconnect(); + client.disconnect() } } catch (error) { - console.error("Error creating sell offer:", error); - results = `\nError: ${error.message || error}`; - resultField.value = results; + console.error('Error creating sell offer:', error) + results = `\nError: ${error.message || error}` + resultField.value = results } -}// End of createSellOffer() +} // End of createSellOffer() // ******************************************************* // ***************** Create Buy Offer ******************** // ******************************************************* async function createBuyOffer() { - const wallet = xrpl.Wallet.fromSeed(accountSeedField.value); - let net = getNet(); - const client = new xrpl.Client(net); - await client.connect(); - let results = '\n=== Connected. Creating buy offer. ==='; - resultField.value = results; + const wallet = xrpl.Wallet.fromSeed(accountSeedField.value) + let net = getNet() + const client = new xrpl.Client(net) + await client.connect() + let results = '\n=== Connected. Creating buy offer. ===' + resultField.value = results try { // Use the external configureAmount() function - let amount = configureAmount(); + let amount = configureAmount() // Use the external configureExpiration() function - let expiration = configureExpiration(); // This will return a number or an empty string from the original logic + let expiration = configureExpiration() // This will return a number or an empty string from the original logic let transactionJson = { - "TransactionType": "NFTokenCreateOffer", - "Account": wallet.classicAddress, - "Owner": nftOwnerField.value, - "NFTokenID": nftIdField.value, - "Flags": 0, // Ensure no tfSellNFToken flag for a buy offer - }; + TransactionType: 'NFTokenCreateOffer', + Account: wallet.classicAddress, + Owner: nftOwnerField.value, + NFTokenID: nftIdField.value, + Flags: 0, // Ensure no tfSellNFToken flag for a buy offer + } // Only add Amount if it's defined (not undefined or an empty string) if (amount !== undefined && amount !== '') { - transactionJson.Amount = amount; + transactionJson.Amount = amount } else { - results += "\nError: Amount field is required for a buy offer."; - resultField.value = results; - client.disconnect(); - return; + results += '\nError: Amount field is required for a buy offer.' + resultField.value = results + client.disconnect() + return } if (destinationField.value !== '') { - transactionJson.Destination = destinationField.value; + transactionJson.Destination = destinationField.value } // Only add Expiration if it's not an empty string if (expiration > 0) { - transactionJson.Expiration = expiration; + transactionJson.Expiration = expiration } - const tx = await client.submitAndWait(transactionJson, { wallet: wallet }); + const tx = await client.submitAndWait(transactionJson, { wallet: wallet }) - results += "\n\n=== Sell Offers ===\n"; - let nftSellOffers; + results += '\n\n=== Sell Offers ===\n' + let nftSellOffers try { nftSellOffers = await client.request({ - method: "nft_sell_offers", - nft_id: nftIdField.value - }); + method: 'nft_sell_offers', + nft_id: nftIdField.value, + }) } catch (err) { - nftSellOffers = "=== No sell offers. ==="; + nftSellOffers = '=== No sell offers. ===' } - results += JSON.stringify(nftSellOffers, null, 2); - results += "\n\n=== Buy Offers ===\n"; - let nftBuyOffers; + results += JSON.stringify(nftSellOffers, null, 2) + results += '\n\n=== Buy Offers ===\n' + let nftBuyOffers try { nftBuyOffers = await client.request({ - method: "nft_buy_offers", - nft_id: nftIdField.value - }); - results += JSON.stringify(nftBuyOffers, null, 2); + method: 'nft_buy_offers', + nft_id: nftIdField.value, + }) + results += JSON.stringify(nftBuyOffers, null, 2) } catch (err) { - results += "=== No buy offers. ==="; + results += '=== No buy offers. ===' } // Check transaction results ------------------------------------------------- - results += "\n\n=== Transaction result:\n" + - JSON.stringify(tx.result.meta.TransactionResult, null, 2); - results += "\n\n=== Balance changes:\n" + - JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2); - resultField.value = results; - + results += '\n\n=== Transaction result:\n' + JSON.stringify(tx.result.meta.TransactionResult, null, 2) + results += '\n\n=== Balance changes:\n' + JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) + resultField.value = results } catch (error) { - console.error('Error creating buy offer:', error); - results += "\n\n=== Error: " + error; - resultField.value = results; + console.error('Error creating buy offer:', error) + results += '\n\n=== Error: ' + error + resultField.value = results } finally { - client.disconnect(); + client.disconnect() } -}// End of createBuyOffer() +} // End of createBuyOffer() // ******************************************************* // ******************** Cancel Offer ********************* @@ -147,39 +143,38 @@ async function cancelOffer() { let net = getNet() const client = new xrpl.Client(net) await client.connect() - let results = "\n=== Connected. Cancelling offer. ===" + let results = '\n=== Connected. Cancelling offer. ===' resultField.value = results const tokenOfferIDs = [nftOfferIdField.value] // Prepare transaction ------------------------------------------------------- const transactionJson = { - "TransactionType": "NFTokenCancelOffer", - "Account": wallet.classicAddress, - "NFTokenOffers": tokenOfferIDs + TransactionType: 'NFTokenCancelOffer', + Account: wallet.classicAddress, + NFTokenOffers: tokenOfferIDs, } // Submit transaction -------------------------------------------------------- const tx = await client.submitAndWait(transactionJson, { wallet }) - results = "\n\n=== Sell Offers===\n" + results = '\n\n=== Sell Offers===\n' let nftSellOffers try { nftSellOffers = await client.request({ - method: "nft_sell_offers", - nft_id: nftIdField.value + method: 'nft_sell_offers', + nft_id: nftIdField.value, }) } catch (err) { nftSellOffers = '=== No sell offers. ===\n' } results += JSON.stringify(nftSellOffers, null, 2) - results += "\n\n=== Buy Offers ===\n" + results += '\n\n=== Buy Offers ===\n' let nftBuyOffers try { nftBuyOffers = await client.request({ - method: "nft_buy_offers", - nft_id: nftIdField.value + method: 'nft_buy_offers', + nft_id: nftIdField.value, }) - } catch (err) { nftBuyOffers = '=== No buy offers. ===' } @@ -188,10 +183,8 @@ async function cancelOffer() { // Check transaction results ------------------------------------------------- - results = "\n=== Transaction result:\n" + - JSON.stringify(tx.result.meta.TransactionResult, null, 2) - results += "\n\n=== Balance changes:\n" + - JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) + results = '\n=== Transaction result:\n' + JSON.stringify(tx.result.meta.TransactionResult, null, 2) + results += '\n\n=== Balance changes:\n' + JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) resultField.value += results client.disconnect() // End of cancelOffer() @@ -215,8 +208,8 @@ async function getOffers() { let nftSellOffers try { nftSellOffers = await client.request({ - method: "nft_sell_offers", - nft_id: nftIdField.value + method: 'nft_sell_offers', + nft_id: nftIdField.value, }) } catch (err) { nftSellOffers = 'No sell offers found for this NFT ID.' @@ -229,8 +222,8 @@ async function getOffers() { let nftBuyOffers try { nftBuyOffers = await client.request({ - method: "nft_buy_offers", - nft_id: nftIdField.value + method: 'nft_buy_offers', + nft_id: nftIdField.value, }) } catch (err) { // Log the actual error for debugging @@ -240,7 +233,7 @@ async function getOffers() { resultField.value += results // Update the display with buy offers client.disconnect() -}// End of getOffers() +} // End of getOffers() // ******************************************************* // ****************** Accept Sell Offer ****************** @@ -257,21 +250,20 @@ async function acceptSellOffer() { // Prepare transaction ------------------------------------------------------- const transactionJson = { - "TransactionType": "NFTokenAcceptOffer", - "Account": wallet.classicAddress, - "NFTokenSellOffer": nftOfferIdField.value, + TransactionType: 'NFTokenAcceptOffer', + Account: wallet.classicAddress, + NFTokenSellOffer: nftOfferIdField.value, } // Submit transaction -------------------------------------------------------- const tx = await client.submitAndWait(transactionJson, { wallet: wallet }) const nfts = await client.request({ - method: "account_nfts", - account: wallet.classicAddress + method: 'account_nfts', + account: wallet.classicAddress, }) // Check transaction results ------------------------------------------------- - xrpBalanceField.value = (await client.getXrpBalance(wallet.address)) - + xrpBalanceField.value = await client.getXrpBalance(wallet.address) results += '=== Transaction result:\n' results += JSON.stringify(tx.result.meta.TransactionResult, null, 2) @@ -285,55 +277,52 @@ async function acceptSellOffer() { } finally { client.disconnect() } -}// End of acceptSellOffer() +} // End of acceptSellOffer() // ******************************************************* // ******************* Accept Buy Offer ****************** // ******************************************************* async function acceptBuyOffer() { - const wallet = xrpl.Wallet.fromSeed(accountSeedField.value); - let net = getNet(); - const client = new xrpl.Client(net); - let results = '\n=== Connected. Accepting buy offer. ==='; // Declare results locally + const wallet = xrpl.Wallet.fromSeed(accountSeedField.value) + let net = getNet() + const client = new xrpl.Client(net) + let results = '\n=== Connected. Accepting buy offer. ===' // Declare results locally try { - await client.connect(); - resultField.value = results; // Update UI after connection + await client.connect() + resultField.value = results // Update UI after connection // Prepare transaction ------------------------------------------------------- const transactionJson = { - "TransactionType": "NFTokenAcceptOffer", - "Account": wallet.classicAddress, - "NFTokenBuyOffer": nftOfferIdField.value - }; + TransactionType: 'NFTokenAcceptOffer', + Account: wallet.classicAddress, + NFTokenBuyOffer: nftOfferIdField.value, + } // Submit transaction -------------------------------------------------------- - const tx = await client.submitAndWait(transactionJson, { wallet: wallet }); + const tx = await client.submitAndWait(transactionJson, { wallet: wallet }) const nfts = await client.request({ - method: "account_nfts", - account: wallet.classicAddress - }); + method: 'account_nfts', + account: wallet.classicAddress, + }) - results += JSON.stringify(nfts, null, 2); - resultField.value = results; + results += JSON.stringify(nfts, null, 2) + resultField.value = results // Check transaction results ------------------------------------------------- - results += "\n\nTransaction result:\n" + - JSON.stringify(tx.result.meta.TransactionResult, null, 2); - results += "\nBalance changes:\n" + - JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2); - xrpBalanceField.value = (await client.getXrpBalance(wallet.address)); - resultField.value = results; - + results += '\n\nTransaction result:\n' + JSON.stringify(tx.result.meta.TransactionResult, null, 2) + results += '\nBalance changes:\n' + JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) + xrpBalanceField.value = await client.getXrpBalance(wallet.address) + resultField.value = results } catch (error) { - console.error('Error in acceptBuyOffer:', error); // Log the full error - results = `\n=== Error accepting buy offer: ${error.message || 'Unknown error'} ===`; - resultField.value = results; + console.error('Error in acceptBuyOffer:', error) // Log the full error + results = `\n=== Error accepting buy offer: ${error.message || 'Unknown error'} ===` + resultField.value = results } finally { if (client && client.isConnected()) { - client.disconnect(); + client.disconnect() } } -} // End of acceptBuyOffer() \ No newline at end of file +} // End of acceptBuyOffer() diff --git a/_code-samples/non-fungible-token/js/list-nft-pages-and-buy-offers.js b/_code-samples/non-fungible-token/js/list-nft-pages-and-buy-offers.js index 128e6145c3..1763f4b7e7 100644 --- a/_code-samples/non-fungible-token/js/list-nft-pages-and-buy-offers.js +++ b/_code-samples/non-fungible-token/js/list-nft-pages-and-buy-offers.js @@ -5,50 +5,50 @@ const xrpl = require('xrpl') async function main() { - const account = "rP7aApVAyf3bjtRVVTixVSHBbU4kpd742k" + const account = 'rP7aApVAyf3bjtRVVTixVSHBbU4kpd742k' - // Connect to a testnet node - console.log("Connecting to testnet...") - const client = new xrpl.Client('wss://s.altnet.rippletest.net:51233') - await client.connect() + // Connect to a testnet node + console.log('Connecting to testnet...') + const client = new xrpl.Client('wss://s.altnet.rippletest.net:51233') + await client.connect() - const response = await client.request({ - "command": "account_nfts", - "account": account, - "ledger_index": "validated" - }) + const response = await client.request({ + command: 'account_nfts', + account: account, + ledger_index: 'validated', + }) - // Only append the NFTs' NFT ID onto the nft_keylets list, other fields aren't needed - const nft_keylets = [] - for (let i = 0; i < response.result.account_nfts.length; i++) { - nft_keylets.push(response.result.account_nfts[i].NFTokenID) + // Only append the NFTs' NFT ID onto the nft_keylets list, other fields aren't needed + const nft_keylets = [] + for (let i = 0; i < response.result.account_nfts.length; i++) { + nft_keylets.push(response.result.account_nfts[i].NFTokenID) + } + + // Query through the NFTs' buy Offers + // For each NFT owned by the account (on nft_keylets[]), go through all their respective buy Offers on the DEX + for (let i = 0; i < nft_keylets.length; i++) { + let response_1 + try { + response_1 = await client.request({ + command: 'nft_buy_offers', + nft_id: nft_keylets[i], + ledger_index: 'validated', + }) + } catch (e) { + console.log(`Couldn't get buy offers for NFT ${nft_keylets[i]}. Maybe there aren't any.`) + continue } - // Query through the NFTs' buy Offers - // For each NFT owned by the account (on nft_keylets[]), go through all their respective buy Offers on the DEX - for (let i = 0; i < nft_keylets.length; i++) { - let response_1; - try { - response_1 = await client.request({ - "command": "nft_buy_offers", - "nft_id": nft_keylets[i], - "ledger_index": "validated" - }) - } catch (e) { - console.log(`Couldn't get buy offers for NFT ${nft_keylets[i]}. Maybe there aren't any.`) - continue - } - - console.log(`\nBuy Offers for NFT ${nft_keylets[i]}:`) - for (let j = 0; j < response_1.result.offers.length; j++) { - console.log(`\n${j + 1}.`) - console.log(` NFT Offer Index: ${response_1.result.offers[j].nft_offer_index}`) - console.log(` Offer Amount: ${response_1.result.offers[j].amount} drops`) - console.log(` Offer Owner: ${response_1.result.offers[j].owner}`) - } + console.log(`\nBuy Offers for NFT ${nft_keylets[i]}:`) + for (let j = 0; j < response_1.result.offers.length; j++) { + console.log(`\n${j + 1}.`) + console.log(` NFT Offer Index: ${response_1.result.offers[j].nft_offer_index}`) + console.log(` Offer Amount: ${response_1.result.offers[j].amount} drops`) + console.log(` Offer Owner: ${response_1.result.offers[j].owner}`) } - await client.disconnect() - // End main() + } + await client.disconnect() + // End main() } main() diff --git a/_code-samples/non-fungible-token/js/package.json b/_code-samples/non-fungible-token/js/package.json index 12db570f5a..58e2ddda32 100644 --- a/_code-samples/non-fungible-token/js/package.json +++ b/_code-samples/non-fungible-token/js/package.json @@ -1,5 +1,5 @@ { - "dependencies": { - "xrpl": "^4.0.0" - } + "dependencies": { + "xrpl": "^4.0.0" + } } diff --git a/_code-samples/normalize-currency-codes/js/normalize-currency-code.js b/_code-samples/normalize-currency-codes/js/normalize-currency-code.js index da5592980a..c36698947e 100644 --- a/_code-samples/normalize-currency-codes/js/normalize-currency-code.js +++ b/_code-samples/normalize-currency-codes/js/normalize-currency-code.js @@ -11,61 +11,60 @@ //////////////////////////////////////////////////////////////////////////////// function normalizeCurrencyCode(currencyCode, maxLength = 20) { - if(!currencyCode) return ""; + if (!currencyCode) return '' - if(currencyCode.length === 3 && currencyCode.trim().toLowerCase() !== 'xrp') { - // "Standard" currency code - return currencyCode.trim() - } + if (currencyCode.length === 3 && currencyCode.trim().toLowerCase() !== 'xrp') { + // "Standard" currency code + return currencyCode.trim() + } - if(currencyCode.match(/^[a-fA-F0-9]{40}$/) && !isNaN(parseInt(currencyCode, 16))) { - // Hexadecimal currency code - const hex = currencyCode.toString().replace(/(00)+$/g, '') - if (hex.startsWith('01')) { - // Old demurrage code. https://xrpl.org/demurrage.html - return convertDemurrageToUTF8(currencyCode); - } - if (hex.startsWith('02')) { - // XLS-16d NFT Metadata using XLS-15d Concise Transaction Identifier - // https://github.com/XRPLF/XRPL-Standards/discussions/37 - const xlf15d = Buffer.from(hex, 'hex').slice(8).toString('utf-8').slice(0, maxLength).trim() - if (xlf15d.match(/[a-zA-Z0-9]{3,}/) && xlf15d.toLowerCase() !== 'xrp') { - return xlf15d - } - } - const decodedHex = Buffer.from(hex, 'hex').toString('utf-8').slice(0, maxLength).trim() - if (decodedHex.match(/[a-zA-Z0-9]{3,}/) && decodedHex.toLowerCase() !== 'xrp') { - // ASCII or UTF-8 encoded alphanumeric code, 3+ characters long - return decodedHex - } + if (currencyCode.match(/^[a-fA-F0-9]{40}$/) && !isNaN(parseInt(currencyCode, 16))) { + // Hexadecimal currency code + const hex = currencyCode.toString().replace(/(00)+$/g, '') + if (hex.startsWith('01')) { + // Old demurrage code. https://xrpl.org/demurrage.html + return convertDemurrageToUTF8(currencyCode) } - return ""; + if (hex.startsWith('02')) { + // XLS-16d NFT Metadata using XLS-15d Concise Transaction Identifier + // https://github.com/XRPLF/XRPL-Standards/discussions/37 + const xlf15d = Buffer.from(hex, 'hex').slice(8).toString('utf-8').slice(0, maxLength).trim() + if (xlf15d.match(/[a-zA-Z0-9]{3,}/) && xlf15d.toLowerCase() !== 'xrp') { + return xlf15d + } + } + const decodedHex = Buffer.from(hex, 'hex').toString('utf-8').slice(0, maxLength).trim() + if (decodedHex.match(/[a-zA-Z0-9]{3,}/) && decodedHex.toLowerCase() !== 'xrp') { + // ASCII or UTF-8 encoded alphanumeric code, 3+ characters long + return decodedHex + } + } + return '' } function convertDemurrageToUTF8(demurrageCode) { + let bytes = Buffer.from(demurrageCode, 'hex') + let code = String.fromCharCode(bytes[1]) + String.fromCharCode(bytes[2]) + String.fromCharCode(bytes[3]) + let interest_start = (bytes[4] << 24) + (bytes[5] << 16) + (bytes[6] << 8) + bytes[7] + let interest_period = bytes.readDoubleBE(8) + const year_seconds = 31536000 // By convention, the XRP Ledger's interest/demurrage rules use a fixed number of seconds per year (31536000), which is not adjusted for leap days or leap seconds + let interest_after_year = Math.pow(Math.E, (interest_start + year_seconds - interest_start) / interest_period) + let interest = interest_after_year * 100 - 100 - let bytes = Buffer.from(demurrageCode, "hex") - let code = String.fromCharCode(bytes[1]) + String.fromCharCode(bytes[2]) + String.fromCharCode(bytes[3]); - let interest_start = (bytes[4] << 24) + (bytes[5] << 16) + (bytes[6] << 8) + (bytes[7]); - let interest_period = bytes.readDoubleBE(8); - const year_seconds = 31536000; // By convention, the XRP Ledger's interest/demurrage rules use a fixed number of seconds per year (31536000), which is not adjusted for leap days or leap seconds - let interest_after_year = Math.pow(Math.E, (interest_start+year_seconds - interest_start) / interest_period) - let interest = (interest_after_year * 100) - 100; - - return(`${code} (${interest}% pa)`) + return `${code} (${interest}% pa)` } console.log("Standard 3-character code (should be 'USD')") -console.log(normalizeCurrencyCode("USD")) +console.log(normalizeCurrencyCode('USD')) -console.log("Currency code that decodes to XRP, case-insensitive (should be empty string)") -console.log(normalizeCurrencyCode("xRp")) +console.log('Currency code that decodes to XRP, case-insensitive (should be empty string)') +console.log(normalizeCurrencyCode('xRp')) console.log("Demurrage code (should be 'XAU (-0.5% pa)')...") -console.log(normalizeCurrencyCode("0158415500000000C1F76FF6ECB0BAC600000000")) +console.log(normalizeCurrencyCode('0158415500000000C1F76FF6ECB0BAC600000000')) console.log("XLS-16d code (should be 'Purple moon')") -console.log(normalizeCurrencyCode("0252000B03B6296F507572706C65206D6F6F6E00")) +console.log(normalizeCurrencyCode('0252000B03B6296F507572706C65206D6F6F6E00')) console.log("Long-alphanumeric code (should be 'XWORKS')...") -console.log(normalizeCurrencyCode("58574F524B530000000000000000000000000000")) +console.log(normalizeCurrencyCode('58574F524B530000000000000000000000000000')) diff --git a/_code-samples/partial-payment/js/partialPayment.ts b/_code-samples/partial-payment/js/partialPayment.ts index ff8a7f4df1..e0acfa9bd3 100644 --- a/_code-samples/partial-payment/js/partialPayment.ts +++ b/_code-samples/partial-payment/js/partialPayment.ts @@ -22,13 +22,13 @@ async function partialPayment(): Promise { value: '10000000000', }, } - console.log("Submitting a TrustSet transaction...") + console.log('Submitting a TrustSet transaction...') const trust_set_res = await client.submitAndWait(trust_set_tx, { wallet: wallet2, }) - console.log("TrustSet transaction response:") + console.log('TrustSet transaction response:') console.log(trust_set_res) console.log('Balances after trustline is created') @@ -52,7 +52,7 @@ async function partialPayment(): Promise { const initialPayment = await client.submitAndWait(payment, { wallet: wallet1, }) - console.log("Initial payment response:", initialPayment) + console.log('Initial payment response:', initialPayment) console.log('Balances after issuer(wallet1) sends IOU("FOO") to wallet2') console.log(`Balance of ${wallet1.classicAddress} is ${await client.getBalances(wallet1.classicAddress)}`) @@ -80,15 +80,13 @@ async function partialPayment(): Promise { } // submit payment - console.log("Submitting a Partial Payment transaction...") + console.log('Submitting a Partial Payment transaction...') const submitResponse = await client.submitAndWait(partialPaymentTx, { wallet: wallet2, }) - console.log("Partial Payment response: ", submitResponse) + console.log('Partial Payment response: ', submitResponse) - console.log( - "Balances after Partial Payment, when wallet2 tried to send 4000 FOO's", - ) + console.log("Balances after Partial Payment, when wallet2 tried to send 4000 FOO's") console.log(`Balance of ${wallet1.classicAddress} is ${await client.getBalances(wallet1.classicAddress)}`) console.log(`Balance of ${wallet2.classicAddress} is ${await client.getBalances(wallet2.classicAddress)}`) diff --git a/_code-samples/paths/js/paths.ts b/_code-samples/paths/js/paths.ts index 3916901172..a2b9e947db 100644 --- a/_code-samples/paths/js/paths.ts +++ b/_code-samples/paths/js/paths.ts @@ -30,10 +30,10 @@ async function createTxWithPaths(): Promise { } const resp: RipplePathFindResponse = await client.request(request) - console.log("Ripple Path Find response: ", resp) + console.log('Ripple Path Find response: ', resp) const paths = resp.result.alternatives[0].paths_computed - console.log("Computed paths: ", paths) + console.log('Computed paths: ', paths) const tx: Payment = { TransactionType: 'Payment', diff --git a/_code-samples/quickstart/js/getConditionAndFulfillment.js b/_code-samples/quickstart/js/getConditionAndFulfillment.js index 3032187d62..a884d2151a 100644 --- a/_code-samples/quickstart/js/getConditionAndFulfillment.js +++ b/_code-samples/quickstart/js/getConditionAndFulfillment.js @@ -1,5 +1,4 @@ function getConditionAndFulfillment() { - const cc = require('five-bells-condition') const crypto = require('crypto') @@ -9,9 +8,9 @@ function getConditionAndFulfillment() { const condition = fulfillment.getConditionBinary().toString('hex').toUpperCase() console.log('Condition:', condition) - + // Keep secret until you want to finish the escrow const fulfillment_hex = fulfillment.serializeBinary().toString('hex').toUpperCase() console.log('Fulfillment:', fulfillment_hex) } -getConditionAndFulfillment() \ No newline at end of file +getConditionAndFulfillment() diff --git a/_code-samples/quickstart/js/ripplex1-send-xrp.js b/_code-samples/quickstart/js/ripplex1-send-xrp.js index 6e1bf3b93c..4fe1c4bb56 100644 --- a/_code-samples/quickstart/js/ripplex1-send-xrp.js +++ b/_code-samples/quickstart/js/ripplex1-send-xrp.js @@ -1,25 +1,25 @@ // ****************************************************** // ************* Get the Preferred Network ************** -// ****************************************************** +// ****************************************************** function getNet() { let net - if (document.getElementById("tn").checked) net = "wss://s.altnet.rippletest.net:51233" - if (document.getElementById("dn").checked) net = "wss://s.devnet.rippletest.net:51233" + if (document.getElementById('tn').checked) net = 'wss://s.altnet.rippletest.net:51233' + if (document.getElementById('dn').checked) net = 'wss://s.devnet.rippletest.net:51233' return net } // End of getNet() - + // ******************************************************* // ************* Get Account ***************************** // ******************************************************* async function getAccount(type) { let net = getNet() - + const client = new xrpl.Client(net) results = 'Connecting to ' + net + '....' - -// This uses the default faucet for Testnet/Devnet + + // This uses the default faucet for Testnet/Devnet let faucetHost = null if (type == 'standby') { @@ -28,7 +28,7 @@ async function getAccount(type) { operationalResultField.value = results } await client.connect() - + results += '\nConnected, funding wallet.' if (type == 'standby') { standbyResultField.value = results @@ -36,39 +36,39 @@ async function getAccount(type) { operationalResultField.value = results } -// -----------------------------------Create and fund a test account wallet + // -----------------------------------Create and fund a test account wallet const my_wallet = (await client.fundWallet(null, { faucetHost })).wallet - + results += '\nGot a wallet.' if (type == 'standby') { standbyResultField.value = results } else { operationalResultField.value = results - } - -// ------------------------------------------------------Get the current balance. - const my_balance = (await client.getXrpBalance(my_wallet.address)) - + } + + // ------------------------------------------------------Get the current balance. + const my_balance = await client.getXrpBalance(my_wallet.address) + if (type == 'standby') { standbyAccountField.value = my_wallet.address - standbyBalanceField.value = (await client.getXrpBalance(my_wallet.address)) + standbyBalanceField.value = await client.getXrpBalance(my_wallet.address) standbySeedField.value = my_wallet.seed results += '\nStandby account created.' standbyResultField.value = results } else { operationalAccountField.value = my_wallet.address operationalSeedField.value = my_wallet.seed - operationalBalanceField.value = (await client.getXrpBalance(my_wallet.address)) + operationalBalanceField.value = await client.getXrpBalance(my_wallet.address) results += '\nOperational account created.' operationalResultField.value = results } -// --------------- Capture the seeds for both accounts for ease of reload. + // --------------- Capture the seeds for both accounts for ease of reload. seeds.value = standbySeedField.value + '\n' + operationalSeedField.value client.disconnect() } // End of getAccount() - + // ******************************************************* -// ********** Get Accounts from Seeds ******************** +// ********** Get Accounts from Seeds ******************** // ******************************************************* async function getAccountsFromSeeds() { @@ -79,121 +79,116 @@ async function getAccountsFromSeeds() { await client.connect() results += '\nConnected, finding wallets.\n' standbyResultField.value = results - -// -------------------------------------------------Find the test account wallets. + + // -------------------------------------------------Find the test account wallets. var lines = seeds.value.split('\n') const standby_wallet = xrpl.Wallet.fromSeed(lines[0]) const operational_wallet = xrpl.Wallet.fromSeed(lines[1]) - -// -------------------------------------------------------Get the current balance. - const standby_balance = (await client.getXrpBalance(standby_wallet.address)) - const operational_balance = (await client.getXrpBalance(operational_wallet.address)) - -// ----------------------Populate the fields for Standby and Operational accounts. + + // -------------------------------------------------------Get the current balance. + const standby_balance = await client.getXrpBalance(standby_wallet.address) + const operational_balance = await client.getXrpBalance(operational_wallet.address) + + // ----------------------Populate the fields for Standby and Operational accounts. standbyAccountField.value = standby_wallet.address standbySeedField.value = standby_wallet.seed - standbyBalanceField.value = (await client.getXrpBalance(standby_wallet.address)) - + standbyBalanceField.value = await client.getXrpBalance(standby_wallet.address) + operationalAccountField.value = operational_wallet.address operationalSeedField.value = operational_wallet.seed - operationalBalanceField.value = (await client.getXrpBalance(operational_wallet.address)) - + operationalBalanceField.value = await client.getXrpBalance(operational_wallet.address) + client.disconnect() - } // End of getAccountsFromSeeds() // ******************************************************* // ******************** Send XRP ************************* // ******************************************************* -async function sendXRP() { - results = "Connecting to the selected ledger.\n" +async function sendXRP() { + results = 'Connecting to the selected ledger.\n' standbyResultField.value = results let net = getNet() results = 'Connecting to ' + getNet() + '....' const client = new xrpl.Client(net) await client.connect() - - results += "\nConnected. Sending XRP.\n" + + results += '\nConnected. Sending XRP.\n' standbyResultField.value = results - + const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) const operational_wallet = xrpl.Wallet.fromSeed(operationalSeedField.value) const sendAmount = standbyAmountField.value - - results += "\nstandby_wallet.address: = " + standby_wallet.address - standbyResultField.value = results - -// -------------------------------------------------------- Prepare transaction - const prepared = await client.autofill({ - "TransactionType": "Payment", - "Account": standby_wallet.address, - "DeliverMax": xrpl.xrpToDrops(sendAmount), - "Destination": standbyDestinationField.value - }) - -// ------------------------------------------------- Sign prepared instructions - const signed = standby_wallet.sign(prepared) - -// -------------------------------------------------------- Submit signed blob - const tx = await client.submitAndWait(signed.tx_blob) - - results += "\nBalance changes: " + - JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) + + results += '\nstandby_wallet.address: = ' + standby_wallet.address standbyResultField.value = results - standbyBalanceField.value = (await client.getXrpBalance(standby_wallet.address)) - operationalBalanceField.value = (await client.getXrpBalance(operational_wallet.address)) - client.disconnect() + // -------------------------------------------------------- Prepare transaction + const prepared = await client.autofill({ + TransactionType: 'Payment', + Account: standby_wallet.address, + DeliverMax: xrpl.xrpToDrops(sendAmount), + Destination: standbyDestinationField.value, + }) + + // ------------------------------------------------- Sign prepared instructions + const signed = standby_wallet.sign(prepared) + + // -------------------------------------------------------- Submit signed blob + const tx = await client.submitAndWait(signed.tx_blob) + + results += '\nBalance changes: ' + JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) + standbyResultField.value = results + + standbyBalanceField.value = await client.getXrpBalance(standby_wallet.address) + operationalBalanceField.value = await client.getXrpBalance(operational_wallet.address) + client.disconnect() } // End of sendXRP() - + // ********************************************************************** // ****** Reciprocal Transactions *************************************** // ********************************************************************** - + // ******************************************************* // ********* Send XRP from Operational account *********** // ******************************************************* - -async function oPsendXRP() { - results = "Connecting to the selected ledger.\n" +async function oPsendXRP() { + results = 'Connecting to the selected ledger.\n' operationalResultField.value = results let net = getNet() results = 'Connecting to ' + getNet() + '....' const client = new xrpl.Client(net) await client.connect() - - results += "\nConnected. Sending XRP.\n" + + results += '\nConnected. Sending XRP.\n' operationalResultField.value = results - + const operational_wallet = xrpl.Wallet.fromSeed(operationalSeedField.value) const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) const sendAmount = operationalAmountField.value - - results += "\noperational_wallet.address: = " + operational_wallet.address + + results += '\noperational_wallet.address: = ' + operational_wallet.address operationalResultField.value = results - -// ---------------------------------------------------------- Prepare transaction + + // ---------------------------------------------------------- Prepare transaction const prepared = await client.autofill({ - "TransactionType": "Payment", - "Account": operational_wallet.address, - "DeliverMax": xrpl.xrpToDrops(operationalAmountField.value), - "Destination": operationalDestinationField.value + TransactionType: 'Payment', + Account: operational_wallet.address, + DeliverMax: xrpl.xrpToDrops(operationalAmountField.value), + Destination: operationalDestinationField.value, }) -// ---------------------------------------------------- Sign prepared instructions + // ---------------------------------------------------- Sign prepared instructions const signed = operational_wallet.sign(prepared) -// ------------------------------------------------------------ Submit signed blob + // ------------------------------------------------------------ Submit signed blob const tx = await client.submitAndWait(signed.tx_blob) - - results += "\nBalance changes: " + - JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) + + results += '\nBalance changes: ' + JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) operationalResultField.value = results - standbyBalanceField.value = (await client.getXrpBalance(standby_wallet.address)) - operationalBalanceField.value = (await client.getXrpBalance(operational_wallet.address)) - + standbyBalanceField.value = await client.getXrpBalance(standby_wallet.address) + operationalBalanceField.value = await client.getXrpBalance(operational_wallet.address) + client.disconnect() - -} // End of oPsendXRP() \ No newline at end of file +} // End of oPsendXRP() diff --git a/_code-samples/quickstart/js/ripplex10-check.js b/_code-samples/quickstart/js/ripplex10-check.js index b036cd44ab..8bd3d0c90f 100644 --- a/_code-samples/quickstart/js/ripplex10-check.js +++ b/_code-samples/quickstart/js/ripplex10-check.js @@ -9,32 +9,31 @@ async function sendCheck() { await client.connect() results += '\nConnected.' standbyResultField.value = results - + const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) const operational_wallet = xrpl.Wallet.fromSeed(operationalSeedField.value) var check_amount = standbyAmountField.value - - if (standbyCurrencyField.value != "XRP") { - check_amount = { - "currency": standbyCurrencyField.value, - "value": standbyAmountField.value, - "issuer": standby_wallet.address - } + + if (standbyCurrencyField.value != 'XRP') { + check_amount = { + currency: standbyCurrencyField.value, + value: standbyAmountField.value, + issuer: standby_wallet.address, + } } - + const send_check_tx = { - "TransactionType": "CheckCreate", - "Account": standby_wallet.address, - "SendMax": check_amount, - "Destination": standbyDestinationField.value + TransactionType: 'CheckCreate', + Account: standby_wallet.address, + SendMax: check_amount, + Destination: standbyDestinationField.value, } const check_prepared = await client.autofill(send_check_tx) const check_signed = standby_wallet.sign(check_prepared) - results += 'Sending ' + check_amount + ' ' + standbyCurrencyField + ' to ' + - standbyDestinationField.value + '...' + results += 'Sending ' + check_amount + ' ' + standbyCurrencyField + ' to ' + standbyDestinationField.value + '...' standbyResultField.value = results const check_result = await client.submitAndWait(check_signed.tx_blob) - if (check_result.result.meta.TransactionResult == "tesSUCCESS") { + if (check_result.result.meta.TransactionResult == 'tesSUCCESS') { results += 'Transaction succeeded: https://testnet.xrpl.org/transactions/${check_signed.hash}' standbyResultField.value = JSON.stringify(check_result.result, null, 2) } else { @@ -42,8 +41,8 @@ async function sendCheck() { standbyResultField.value = results throw 'Error sending transaction: ${check_result.result.meta.TransactionResult}' } - standbyBalanceField.value = (await client.getXrpBalance(standby_wallet.address)) - operationalBalanceField.value = (await client.getXrpBalance(operational_wallet.address)) + standbyBalanceField.value = await client.getXrpBalance(standby_wallet.address) + operationalBalanceField.value = await client.getXrpBalance(operational_wallet.address) client.disconnect() } // end of sendCheck() @@ -57,17 +56,17 @@ async function getChecks() { const client = new xrpl.Client(net) results = 'Connecting to ' + getNet() + '....' standbyResultField.value = results - await client.connect() + await client.connect() results += '\nConnected.' standbyResultField.value = results - results= "\nGetting standby account checks...\n" + results = '\nGetting standby account checks...\n' const check_objects = await client.request({ - "id": 5, - "command": "account_objects", - "account": standbyAccountField.value, - "ledger_index": "validated", - "type": "check" + id: 5, + command: 'account_objects', + account: standbyAccountField.value, + ledger_index: 'validated', + type: 'check', }) standbyResultField.value = JSON.stringify(check_objects.result, null, 2) client.disconnect() @@ -76,7 +75,7 @@ async function getChecks() { // ******************************************************* // ************* Standby Cash Check ********************** // ******************************************************* - + async function cashCheck() { let net = getNet() const client = new xrpl.Client(net) @@ -85,31 +84,31 @@ async function cashCheck() { await client.connect() results += '\nConnected.' standbyResultField.value = results - + const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) const operational_wallet = xrpl.Wallet.fromSeed(operationalSeedField.value) var check_amount = standbyAmountField.value - - if (standbyCurrencyField.value != "XRP") { - check_amount = { - "value": standbyAmountField.value, - "currency": standbyCurrencyField.value, - "issuer": standbyIssuerField.value - } + + if (standbyCurrencyField.value != 'XRP') { + check_amount = { + value: standbyAmountField.value, + currency: standbyCurrencyField.value, + issuer: standbyIssuerField.value, + } } const cash_check_tx = { - "TransactionType": "CheckCash", - "Account": standby_wallet.address, - "Amount": check_amount, - "CheckID": standbyCheckID.value + TransactionType: 'CheckCash', + Account: standby_wallet.address, + Amount: check_amount, + CheckID: standbyCheckID.value, } const cash_prepared = await client.autofill(cash_check_tx) const cash_signed = standby_wallet.sign(cash_prepared) results += ' Receiving ' + standbyAmountField.value + ' ' + standbyCurrencyField.value + '.\n' standbyResultField.value = results const check_result = await client.submitAndWait(cash_signed.tx_blob) - if (check_result.result.meta.TransactionResult == "tesSUCCESS") { + if (check_result.result.meta.TransactionResult == 'tesSUCCESS') { results += 'Transaction succeeded: https://testnet.xrpl.org/transactions/${cash_signed.hash}' standbyResultField.value = results } else { @@ -117,8 +116,8 @@ async function cashCheck() { standbyResultField.value = results throw 'Error sending transaction: ${check_result.result.meta.TransactionResult}' } - standbyBalanceField.value = (await client.getXrpBalance(standby_wallet.address)) - operationalBalanceField.value = (await client.getXrpBalance(operational_wallet.address)) + standbyBalanceField.value = await client.getXrpBalance(standby_wallet.address) + operationalBalanceField.value = await client.getXrpBalance(operational_wallet.address) client.disconnect() } // end of cashCheck() @@ -135,21 +134,21 @@ async function cancelCheck() { await client.connect() results += '\nConnected.' standbyResultField.value = results - + const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) const operational_wallet = xrpl.Wallet.fromSeed(operationalSeedField.value) - + const cancel_check_tx = { - "TransactionType": "CheckCancel", - "Account": standby_wallet.address, - "CheckID": standbyCheckID.value + TransactionType: 'CheckCancel', + Account: standby_wallet.address, + CheckID: standbyCheckID.value, } const cancel_prepared = await client.autofill(cancel_check_tx) const cancel_signed = standby_wallet.sign(cancel_prepared) results += ' Cancelling check.\n' standbyResultField.value = results const check_result = await client.submitAndWait(cancel_signed.tx_blob) - if (check_result.result.meta.TransactionResult == "tesSUCCESS") { + if (check_result.result.meta.TransactionResult == 'tesSUCCESS') { results += 'Transaction succeeded: https://testnet.xrpl.org/transactions/${cash_signed.hash}' standbyResultField.value = results } else { @@ -157,8 +156,8 @@ async function cancelCheck() { standbyResultField.value = results throw 'Error sending transaction: ${check_result.result.meta.TransactionResult}' } - standbyBalanceField.value = (await client.getXrpBalance(standby_wallet.address)) - operationalBalanceField.value = (await client.getXrpBalance(operational_wallet.address)) + standbyBalanceField.value = await client.getXrpBalance(standby_wallet.address) + operationalBalanceField.value = await client.getXrpBalance(operational_wallet.address) client.disconnect() } // end of cancelCheck() @@ -173,33 +172,32 @@ async function opSendCheck() { await client.connect() results += '\nConnected.' operationalResultField.value = results - + const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) const operational_wallet = xrpl.Wallet.fromSeed(operationalSeedField.value) const issue_quantity = operationalAmountField.value var check_amount = operationalAmountField.value - - if (operationalCurrencyField.value != "XRP") { - check_amount = { - "currency": operationalCurrencyField.value, - "value": operationalAmountField.value, - "issuer": operational_wallet.address - } - } + + if (operationalCurrencyField.value != 'XRP') { + check_amount = { + currency: operationalCurrencyField.value, + value: operationalAmountField.value, + issuer: operational_wallet.address, + } + } const send_check_tx = { - "TransactionType": "CheckCreate", - "Account": operational_wallet.address, - "SendMax": check_amount, - "Destination": operationalDestinationField.value + TransactionType: 'CheckCreate', + Account: operational_wallet.address, + SendMax: check_amount, + Destination: operationalDestinationField.value, } const check_prepared = await client.autofill(send_check_tx) const check_signed = operational_wallet.sign(check_prepared) - results += '\nSending check to ' + - operationalDestinationField.value + '...' + results += '\nSending check to ' + operationalDestinationField.value + '...' operationalResultField.value = results const check_result = await client.submitAndWait(check_signed.tx_blob) - if (check_result.result.meta.TransactionResult == "tesSUCCESS") { + if (check_result.result.meta.TransactionResult == 'tesSUCCESS') { results += 'Transaction succeeded: https://testnet.xrpl.org/transactions/${check_signed.hash}' operationalResultField.value = JSON.stringify(check_result.result, null, 2) } else { @@ -207,8 +205,8 @@ async function opSendCheck() { operationalResultField.value = results throw 'Error sending transaction: ${check_result.result.meta.TransactionResult}' } - standbyBalanceField.value = (await client.getXrpBalance(standby_wallet.address)) - operationalBalanceField.value = (await client.getXrpBalance(operational_wallet.address)) + standbyBalanceField.value = await client.getXrpBalance(standby_wallet.address) + operationalBalanceField.value = await client.getXrpBalance(operational_wallet.address) client.disconnect() } // end of opSendCheck() @@ -221,27 +219,26 @@ async function opGetChecks() { const client = new xrpl.Client(net) results = 'Connecting to ' + getNet() + '....' operationalResultField.value = results - await client.connect() + await client.connect() results += '\nConnected.' operationalResultField.value = results - results= "\nGetting standby account checks...\n" + results = '\nGetting standby account checks...\n' const check_objects = await client.request({ - "id": 5, - "command": "account_objects", - "account": operationalAccountField.value, - "ledger_index": "validated", - "type": "check" + id: 5, + command: 'account_objects', + account: operationalAccountField.value, + ledger_index: 'validated', + type: 'check', }) operationalResultField.value = JSON.stringify(check_objects.result, null, 2) client.disconnect() } // End of opGetChecks() - // ******************************************************* // ************* Operational Cash Check ****************** // ******************************************************* - + async function opCashCheck() { let net = getNet() const client = new xrpl.Client(net) @@ -250,31 +247,31 @@ async function opCashCheck() { await client.connect() results += '\nConnected.' operationalResultField.value = results - + const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) const operational_wallet = xrpl.Wallet.fromSeed(operationalSeedField.value) var check_amount = operationalAmountField.value - - if (operationalCurrencyField.value != "XRP") { - check_amount = { - "value": operationalAmountField.value, - "currency": operationalCurrencyField.value, - "issuer": operationalIssuerField.value - } + + if (operationalCurrencyField.value != 'XRP') { + check_amount = { + value: operationalAmountField.value, + currency: operationalCurrencyField.value, + issuer: operationalIssuerField.value, + } } const cash_check_tx = { - "TransactionType": "CheckCash", - "Account": operational_wallet.address, - "Amount": check_amount, - "CheckID": operationalCheckIDField.value + TransactionType: 'CheckCash', + Account: operational_wallet.address, + Amount: check_amount, + CheckID: operationalCheckIDField.value, } const cash_prepared = await client.autofill(cash_check_tx) const cash_signed = operational_wallet.sign(cash_prepared) results += ' Receiving ' + operationalAmountField.value + ' ' + operationalCurrencyField.value + '.\n' operationalResultField.value = results const check_result = await client.submitAndWait(cash_signed.tx_blob) - if (check_result.result.meta.TransactionResult == "tesSUCCESS") { + if (check_result.result.meta.TransactionResult == 'tesSUCCESS') { results += 'Transaction succeeded: https://testnet.xrpl.org/transactions/${cash_signed.hash}' operationalResultField.value = results } else { @@ -282,8 +279,8 @@ async function opCashCheck() { operationalResultField.value = results throw 'Error sending transaction: ${check_result.result.meta.TransactionResult}' } - standbyBalanceField.value = (await client.getXrpBalance(standby_wallet.address)) - operationalBalanceField.value = (await client.getXrpBalance(operational_wallet.address)) + standbyBalanceField.value = await client.getXrpBalance(standby_wallet.address) + operationalBalanceField.value = await client.getXrpBalance(operational_wallet.address) client.disconnect() } // end of opCashCheck() @@ -300,14 +297,14 @@ async function opCancelCheck() { await client.connect() results += '\nConnected.' operationalResultField.value = results - + const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) const operational_wallet = xrpl.Wallet.fromSeed(operationalSeedField.value) - + const cancel_check_tx = { - "TransactionType": "CheckCancel", - "Account": operational_wallet.address, - "CheckID": operationalCheckIDField.value + TransactionType: 'CheckCancel', + Account: operational_wallet.address, + CheckID: operationalCheckIDField.value, } const cancel_prepared = await client.autofill(cancel_check_tx) @@ -315,7 +312,7 @@ async function opCancelCheck() { results += ' Cancelling check.\n' operationalResultField.value = results const check_result = await client.submitAndWait(cancel_signed.tx_blob) - if (check_result.result.meta.TransactionResult == "tesSUCCESS") { + if (check_result.result.meta.TransactionResult == 'tesSUCCESS') { results += 'Transaction succeeded: https://testnet.xrpl.org/transactions/${cash_signed.hash}' operationalResultField.value = results } else { @@ -323,7 +320,7 @@ async function opCancelCheck() { operationalResultField.value = results throw 'Error sending transaction: ${check_result.result.meta.TransactionResult}' } - standbyBalanceField.value = (await client.getXrpBalance(standby_wallet.address)) - operationalBalanceField.value = (await client.getXrpBalance(operational_wallet.address)) + standbyBalanceField.value = await client.getXrpBalance(standby_wallet.address) + operationalBalanceField.value = await client.getXrpBalance(operational_wallet.address) client.disconnect() -} // end of cancelCheck() \ No newline at end of file +} // end of cancelCheck() diff --git a/_code-samples/quickstart/js/ripplex11-create-amm.js b/_code-samples/quickstart/js/ripplex11-create-amm.js index c68d79925b..c8caf7756d 100644 --- a/_code-samples/quickstart/js/ripplex11-create-amm.js +++ b/_code-samples/quickstart/js/ripplex11-create-amm.js @@ -1,7 +1,6 @@ // Create AMM function async function createAMM() { - let net = getNet() const client = new xrpl.Client(net) @@ -11,7 +10,7 @@ async function createAMM() { await client.connect() results += '\n\nConnected.' standbyResultField.value = results - + const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) const asset1_currency = asset1CurrencyField.value @@ -23,107 +22,97 @@ async function createAMM() { const asset2_amount = asset2AmountField.value let ammCreate = null - + results += '\n\nCreating AMM ...' standbyResultField.value = results - + // AMMCreate requires burning one owner reserve. We can look up that amount // (in drops) on the current network using server_state: - const ss = await client.request({"command": "server_state"}) + const ss = await client.request({ command: 'server_state' }) const amm_fee_drops = ss.result.state.validated_ledger.reserve_inc.toString() if (asset1_currency == 'XRP') { - ammCreate = { - "TransactionType": "AMMCreate", - "Account": standby_wallet.address, - "Amount": JSON.stringify(asset1_amount * 1000000), // convert XRP to drops - "Amount2": { - "currency": asset2_currency, - "issuer": asset2_issuer, - "value": asset2_amount + TransactionType: 'AMMCreate', + Account: standby_wallet.address, + Amount: JSON.stringify(asset1_amount * 1000000), // convert XRP to drops + Amount2: { + currency: asset2_currency, + issuer: asset2_issuer, + value: asset2_amount, }, - "TradingFee": 500, // 500 = 0.5% - "Fee": amm_fee_drops + TradingFee: 500, // 500 = 0.5% + Fee: amm_fee_drops, } - - } else if (asset2_currency =='XRP') { - + } else if (asset2_currency == 'XRP') { ammCreate = { - "TransactionType": "AMMCreate", - "Account": standby_wallet.address, - "Amount": { - "currency": asset1_currency, - "issuer": asset1_issuer, - "value": asset1_amount + TransactionType: 'AMMCreate', + Account: standby_wallet.address, + Amount: { + currency: asset1_currency, + issuer: asset1_issuer, + value: asset1_amount, }, - "Amount2": JSON.stringify(asset2_amount * 1000000), // convert XRP to drops - "TradingFee": 500, // 500 = 0.5% - "Fee": amm_fee_drops + Amount2: JSON.stringify(asset2_amount * 1000000), // convert XRP to drops + TradingFee: 500, // 500 = 0.5% + Fee: amm_fee_drops, } - } else { - ammCreate = { - "TransactionType": "AMMCreate", - "Account": standby_wallet.address, - "Amount": { - "currency": asset1_currency, - "issuer": asset1_issuer, - "value": asset1_amount + TransactionType: 'AMMCreate', + Account: standby_wallet.address, + Amount: { + currency: asset1_currency, + issuer: asset1_issuer, + value: asset1_amount, }, - "Amount2": { - "currency": asset2_currency, - "issuer": asset2_issuer, - "value": asset2_amount + Amount2: { + currency: asset2_currency, + issuer: asset2_issuer, + value: asset2_amount, }, - "TradingFee": 500, // 500 = 0.5% - "Fee": amm_fee_drops + TradingFee: 500, // 500 = 0.5% + Fee: amm_fee_drops, } - } try { - const prepared_create = await client.autofill(ammCreate) results += `\n\nPrepared transaction:\n${JSON.stringify(prepared_create, null, 2)}` standbyResultField.value = results - standbyResultField.scrollTop = standbyResultField.scrollHeight - + standbyResultField.scrollTop = standbyResultField.scrollHeight + const signed_create = standby_wallet.sign(prepared_create) results += `\n\nSending AMMCreate transaction ...` standbyResultField.value = results standbyResultField.scrollTop = standbyResultField.scrollHeight - + const amm_create = await client.submitAndWait(signed_create.tx_blob) - - if (amm_create.result.meta.TransactionResult == "tesSUCCESS") { + + if (amm_create.result.meta.TransactionResult == 'tesSUCCESS') { results += `\n\nTransaction succeeded.` } else { results += `\n\nError sending transaction: ${JSON.stringify(amm_create.result.meta.TransactionResult, null, 2)}` } - } catch (error) { results += `\n\n${error.message}` } - + standbyResultField.value = results standbyResultField.scrollTop = standbyResultField.scrollHeight checkAMM() - + client.disconnect() - } // Check AMM function async function checkAMM() { - let net = getNet() const client = new xrpl.Client(net) await client.connect() - + // Gets the issuer and currency code const asset1_currency = asset1CurrencyField.value const asset1_issuer = asset1IssuerField.value @@ -136,59 +125,52 @@ async function checkAMM() { // Get AMM info transaction if (asset1_currency == 'XRP') { - amm_info_request = { - "command": "amm_info", - "asset": { - "currency": "XRP" + command: 'amm_info', + asset: { + currency: 'XRP', }, - "asset2": { - "currency": asset2_currency, - "issuer": asset2_issuer + asset2: { + currency: asset2_currency, + issuer: asset2_issuer, }, - "ledger_index": "validated" + ledger_index: 'validated', } - - } else if (asset2_currency =='XRP') { - + } else if (asset2_currency == 'XRP') { amm_info_request = { - "command": "amm_info", - "asset": { - "currency": asset1_currency, - "issuer": asset1_issuer + command: 'amm_info', + asset: { + currency: asset1_currency, + issuer: asset1_issuer, }, - "asset2": { - "currency": "XRP" + asset2: { + currency: 'XRP', }, - "ledger_index": "validated" + ledger_index: 'validated', } - } else { - amm_info_request = { - "command": "amm_info", - "asset": { - "currency": asset1_currency, - "issuer": asset1_issuer + command: 'amm_info', + asset: { + currency: asset1_currency, + issuer: asset1_issuer, }, - "asset2": { - "currency": asset2_currency, - "issuer": asset2_issuer + asset2: { + currency: asset2_currency, + issuer: asset2_issuer, }, - "ledger_index": "validated" + ledger_index: 'validated', } - } try { const amm_info_result = await client.request(amm_info_request) ammInfo = `AMM Info:\n\n${JSON.stringify(amm_info_result.result.amm, null, 2)}` - } catch(error) { + } catch (error) { ammInfo = `AMM Info:\n\n${error}` } - + ammInfoField.value = ammInfo - + client.disconnect() - -} \ No newline at end of file +} diff --git a/_code-samples/quickstart/js/ripplex12-add-to-amm.js b/_code-samples/quickstart/js/ripplex12-add-to-amm.js index fa1a34630d..7acb1b5007 100644 --- a/_code-samples/quickstart/js/ripplex12-add-to-amm.js +++ b/_code-samples/quickstart/js/ripplex12-add-to-amm.js @@ -1,7 +1,6 @@ // Deposit assets to existing AMM. async function addAssets() { - let net = getNet() const client = new xrpl.Client(net) @@ -11,7 +10,7 @@ async function addAssets() { await client.connect() results += '\n\nConnected.' standbyResultField.value = results - + const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) const asset1_currency = asset1CurrencyField.value @@ -25,202 +24,182 @@ async function addAssets() { // Check for all combinations of asset deposits. let ammdeposit = null - if (asset1_currency == "XRP" && asset2_currency && asset1_amount && asset2_amount ) { - + if (asset1_currency == 'XRP' && asset2_currency && asset1_amount && asset2_amount) { ammdeposit = { - "TransactionType": "AMMDeposit", - "Asset": { - currency: "XRP" + TransactionType: 'AMMDeposit', + Asset: { + currency: 'XRP', }, - "Asset2": { - currency: asset2_currency, - issuer: asset2_issuer - }, - "Account": standby_wallet.address, - "Amount": xrpl.xrpToDrops(asset1_amount), - "Amount2": { + Asset2: { currency: asset2_currency, issuer: asset2_issuer, - value: asset2_amount }, - "Flags": 0x00100000 - } - - } else if ( asset1_currency && asset2_currency == "XRP" && asset1_amount && asset2_amount ) { - - ammdeposit = { - "TransactionType": "AMMDeposit", - "Asset": { - currency: asset1_currency, - issuer: asset1_issuer - }, - "Asset2": { - currency: "XRP" - }, - "Account": standby_wallet.address, - "Amount": { - currency: asset1_currency, - issuer: asset1_issuer, - value: asset1_amount - }, - "Amount2": xrpl.xrpToDrops(asset2_amount), - "Flags": 0x00100000 - } - - } else if ( asset1_currency && asset2_currency && asset1_amount && asset2_amount ) { - - ammdeposit = { - "TransactionType": "AMMDeposit", - "Asset": { - currency: asset1_currency, - issuer: asset1_issuer - }, - "Asset2": { - currency: asset2_currency, - issuer: asset2_issuer - }, - "Account": standby_wallet.address, - "Amount": { - currency: asset1_currency, - issuer: asset1_issuer, - value: asset1_amount - }, - "Amount2": { + Account: standby_wallet.address, + Amount: xrpl.xrpToDrops(asset1_amount), + Amount2: { currency: asset2_currency, issuer: asset2_issuer, - value: asset2_amount + value: asset2_amount, }, - "Flags": 0x00100000 + Flags: 0x00100000, } - - } else if ( asset1_currency == "XRP" && asset2_currency && asset1_amount ) { - + } else if (asset1_currency && asset2_currency == 'XRP' && asset1_amount && asset2_amount) { ammdeposit = { - "TransactionType": "AMMDeposit", - "Asset": { - currency: "XRP" - }, - "Asset2": { - currency: asset2_currency, - issuer: asset2_issuer - }, - "Account": standby_wallet.address, - "Amount": xrpl.xrpToDrops(asset1_amount), - "Flags": 0x00080000 - } - - } else if ( asset1_currency && asset2_currency == "XRP" && asset1_amount ) { - - ammdeposit = { - "TransactionType": "AMMDeposit", - "Asset": { - currency: asset1_currency, - issuer: asset1_issuer - }, - "Asset2": { - currency: "XRP" - }, - "Account": standby_wallet.address, - "Amount": { + TransactionType: 'AMMDeposit', + Asset: { currency: asset1_currency, issuer: asset1_issuer, - value: asset1_amount }, - "Flags": 0x00080000 - } - - } else if ( asset1_currency == "XRP" && asset2_currency && asset2_amount ) { - - ammdeposit = { - "TransactionType": "AMMDeposit", - "Asset": { - currency: "XRP" + Asset2: { + currency: 'XRP', }, - "Asset2": { - currency: asset2_currency, - issuer: asset2_issuer - }, - "Account": standby_wallet.address, - "Amount": { - currency: asset2_currency, - issuer: asset2_issuer, - value: asset2_amount - }, - "Flags": 0x00080000 - } - - } else if ( asset1_currency && asset2_currency && asset1_amount ) { - - ammdeposit = { - "TransactionType": "AMMDeposit", - "Asset": { - currency: asset1_currency, - issuer: asset1_issuer - }, - "Asset2": { - currency: asset2_currency, - issuer: asset2_issuer - }, - "Account": standby_wallet.address, - "Amount": { + Account: standby_wallet.address, + Amount: { currency: asset1_currency, issuer: asset1_issuer, - value: asset1_amount + value: asset1_amount, }, - "Flags": 0x00080000 + Amount2: xrpl.xrpToDrops(asset2_amount), + Flags: 0x00100000, } - - } else if ( asset1_currency && asset2_currency && asset2_amount ) { - + } else if (asset1_currency && asset2_currency && asset1_amount && asset2_amount) { ammdeposit = { - "TransactionType": "AMMDeposit", - "Asset": { + TransactionType: 'AMMDeposit', + Asset: { currency: asset1_currency, - issuer: asset1_issuer + issuer: asset1_issuer, }, - "Asset2": { - currency: asset2_currency, - issuer: asset2_issuer - }, - "Account": standby_wallet.address, - "Amount": { + Asset2: { currency: asset2_currency, issuer: asset2_issuer, - value: asset2_amount }, - "Flags": 0x00080000 + Account: standby_wallet.address, + Amount: { + currency: asset1_currency, + issuer: asset1_issuer, + value: asset1_amount, + }, + Amount2: { + currency: asset2_currency, + issuer: asset2_issuer, + value: asset2_amount, + }, + Flags: 0x00100000, + } + } else if (asset1_currency == 'XRP' && asset2_currency && asset1_amount) { + ammdeposit = { + TransactionType: 'AMMDeposit', + Asset: { + currency: 'XRP', + }, + Asset2: { + currency: asset2_currency, + issuer: asset2_issuer, + }, + Account: standby_wallet.address, + Amount: xrpl.xrpToDrops(asset1_amount), + Flags: 0x00080000, + } + } else if (asset1_currency && asset2_currency == 'XRP' && asset1_amount) { + ammdeposit = { + TransactionType: 'AMMDeposit', + Asset: { + currency: asset1_currency, + issuer: asset1_issuer, + }, + Asset2: { + currency: 'XRP', + }, + Account: standby_wallet.address, + Amount: { + currency: asset1_currency, + issuer: asset1_issuer, + value: asset1_amount, + }, + Flags: 0x00080000, + } + } else if (asset1_currency == 'XRP' && asset2_currency && asset2_amount) { + ammdeposit = { + TransactionType: 'AMMDeposit', + Asset: { + currency: 'XRP', + }, + Asset2: { + currency: asset2_currency, + issuer: asset2_issuer, + }, + Account: standby_wallet.address, + Amount: { + currency: asset2_currency, + issuer: asset2_issuer, + value: asset2_amount, + }, + Flags: 0x00080000, + } + } else if (asset1_currency && asset2_currency && asset1_amount) { + ammdeposit = { + TransactionType: 'AMMDeposit', + Asset: { + currency: asset1_currency, + issuer: asset1_issuer, + }, + Asset2: { + currency: asset2_currency, + issuer: asset2_issuer, + }, + Account: standby_wallet.address, + Amount: { + currency: asset1_currency, + issuer: asset1_issuer, + value: asset1_amount, + }, + Flags: 0x00080000, + } + } else if (asset1_currency && asset2_currency && asset2_amount) { + ammdeposit = { + TransactionType: 'AMMDeposit', + Asset: { + currency: asset1_currency, + issuer: asset1_issuer, + }, + Asset2: { + currency: asset2_currency, + issuer: asset2_issuer, + }, + Account: standby_wallet.address, + Amount: { + currency: asset2_currency, + issuer: asset2_issuer, + value: asset2_amount, + }, + Flags: 0x00080000, } - } else { - results += `\n\nNo assets selected to add ...` standbyResultField.value = results standbyResultField.scrollTop = standbyResultField.scrollHeight return - } try { - - const prepared_deposit = await client.autofill(ammdeposit) - results += `\n\nPrepared transaction:\n${JSON.stringify(prepared_deposit, null, 2)}` - standbyResultField.value = results - standbyResultField.scrollTop = standbyResultField.scrollHeight + const prepared_deposit = await client.autofill(ammdeposit) + results += `\n\nPrepared transaction:\n${JSON.stringify(prepared_deposit, null, 2)}` + standbyResultField.value = results + standbyResultField.scrollTop = standbyResultField.scrollHeight - const signed_deposit = standby_wallet.sign(prepared_deposit) - results += `\n\nSending AMMDeposit transaction ...` - standbyResultField.value = results - standbyResultField.scrollTop = standbyResultField.scrollHeight - - const lp_deposit = await client.submitAndWait(signed_deposit.tx_blob) - - if (lp_deposit.result.meta.TransactionResult == "tesSUCCESS") { - results += `\n\nTransaction succeeded.` - checkAMM() - } else { - results += `\n\nError sending transaction: ${JSON.stringify(lp_deposit.result.meta.TransactionResult, null, 2)}` - } + const signed_deposit = standby_wallet.sign(prepared_deposit) + results += `\n\nSending AMMDeposit transaction ...` + standbyResultField.value = results + standbyResultField.scrollTop = standbyResultField.scrollHeight + const lp_deposit = await client.submitAndWait(signed_deposit.tx_blob) + + if (lp_deposit.result.meta.TransactionResult == 'tesSUCCESS') { + results += `\n\nTransaction succeeded.` + checkAMM() + } else { + results += `\n\nError sending transaction: ${JSON.stringify(lp_deposit.result.meta.TransactionResult, null, 2)}` + } } catch (error) { results += `\n\n${error.message}` } @@ -229,12 +208,10 @@ async function addAssets() { standbyResultField.scrollTop = standbyResultField.scrollHeight client.disconnect() - } // Vote on AMM trading fees async function voteFees() { - let net = getNet() const client = new xrpl.Client(net) @@ -244,7 +221,7 @@ async function voteFees() { await client.connect() results += '\n\nConnected.' standbyResultField.value = results - + const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) const voteFee = standbyFeeField.value @@ -256,87 +233,78 @@ async function voteFees() { let ammvote = null - if ( asset1_currency == "XRP" ) { - + if (asset1_currency == 'XRP') { ammvote = { - "TransactionType": "AMMVote", - "Asset": { - "currency": "XRP" + TransactionType: 'AMMVote', + Asset: { + currency: 'XRP', }, - "Asset2": { - "currency": asset2_currency, - "issuer": asset2_issuer + Asset2: { + currency: asset2_currency, + issuer: asset2_issuer, }, - "Account": standby_wallet.address, - "TradingFee": Number(voteFee) + Account: standby_wallet.address, + TradingFee: Number(voteFee), } - - } else if ( asset2_currency == "XRP" ) { - + } else if (asset2_currency == 'XRP') { ammvote = { - "TransactionType": "AMMVote", - "Asset": { - "currency": asset1_currency, - "issuer": asset1_issuer + TransactionType: 'AMMVote', + Asset: { + currency: asset1_currency, + issuer: asset1_issuer, }, - "Asset2": { - "currency": "XRP" + Asset2: { + currency: 'XRP', }, - "Account": standby_wallet.address, - "TradingFee": Number(voteFee) + Account: standby_wallet.address, + TradingFee: Number(voteFee), } } else { - ammvote = { - "TransactionType": "AMMVote", - "Asset": { - "currency": asset1_currency, - "issuer": asset1_issuer + TransactionType: 'AMMVote', + Asset: { + currency: asset1_currency, + issuer: asset1_issuer, }, - "Asset2": { - "currency": asset2_currency, - "issuer": asset2_issuer + Asset2: { + currency: asset2_currency, + issuer: asset2_issuer, }, - "Account": standby_wallet.address, - "TradingFee": Number(voteFee) + Account: standby_wallet.address, + TradingFee: Number(voteFee), } - } try { - - const prepared_vote = await client.autofill(ammvote) - results += `\n\nPrepared transaction:\n${JSON.stringify(prepared_vote, null, 2)}` + const prepared_vote = await client.autofill(ammvote) + results += `\n\nPrepared transaction:\n${JSON.stringify(prepared_vote, null, 2)}` + standbyResultField.value = results + standbyResultField.scrollTop = standbyResultField.scrollHeight + + const signed_vote = standby_wallet.sign(prepared_vote) + results += `\n\nSending AMMVote transaction ...` + standbyResultField.value = results + standbyResultField.scrollTop = standbyResultField.scrollHeight + + const response_vote = await client.submitAndWait(signed_vote.tx_blob) + if (response_vote.result.meta.TransactionResult == 'tesSUCCESS') { + results += `\n\nTransaction succeeded.` + checkAMM() + } else { + results += `\n\nError sending transaction: ${JSON.stringify(response_vote.result.meta.TransactionResult, null, 2)}` + } + } catch (error) { + results += `\n\n${error.message}` + } + standbyResultField.value = results standbyResultField.scrollTop = standbyResultField.scrollHeight - const signed_vote = standby_wallet.sign(prepared_vote) - results += `\n\nSending AMMVote transaction ...` - standbyResultField.value = results - standbyResultField.scrollTop = standbyResultField.scrollHeight - - const response_vote = await client.submitAndWait(signed_vote.tx_blob) - if (response_vote.result.meta.TransactionResult == "tesSUCCESS") { - results += `\n\nTransaction succeeded.` - checkAMM() - } else { - results += `\n\nError sending transaction: ${JSON.stringify(response_vote.result.meta.TransactionResult, null, 2)}` - } - -} catch (error) { - results += `\n\n${error.message}` -} - - standbyResultField.value = results - standbyResultField.scrollTop = standbyResultField.scrollHeight - client.disconnect() - } // Calculate the value of your LP tokens. async function calculateLP() { - let net = getNet() const client = new xrpl.Client(net) @@ -357,96 +325,82 @@ async function calculateLP() { let amm_info = null - if ( asset1_currency == "XRP" ) { - + if (asset1_currency == 'XRP') { amm_info = { - "command": "amm_info", - "asset": { - "currency": "XRP" + command: 'amm_info', + asset: { + currency: 'XRP', + }, + asset2: { + currency: asset2_currency, + issuer: asset2_issuer, }, - "asset2": { - "currency": asset2_currency, - "issuer": asset2_issuer - } } - - } else if ( asset2_currency == "XRP" ) { - + } else if (asset2_currency == 'XRP') { amm_info = { - "command": "amm_info", - "asset": { - "currency": asset1_currency, - "issuer": asset1_issuer + command: 'amm_info', + asset: { + currency: asset1_currency, + issuer: asset1_issuer, + }, + asset2: { + currency: 'XRP', }, - "asset2": { - "currency": "XRP" - } } - } else { - amm_info = { - "command": "amm_info", - "asset": { - "currency": asset1_currency, - "issuer": asset1_issuer + command: 'amm_info', + asset: { + currency: asset1_currency, + issuer: asset1_issuer, + }, + asset2: { + currency: asset2_currency, + issuer: asset2_issuer, }, - "asset2": { - "currency": asset2_currency, - "issuer": asset2_issuer - } } - } try { - - // Get LP token balance. - standbyWalletBalances = await client.getBalances(standby_wallet) + // Get LP token balance. + standbyWalletBalances = await client.getBalances(standby_wallet) - const amm_info_result = await client.request(amm_info) + const amm_info_result = await client.request(amm_info) - // Get the AMM account address that issues LP tokens to depositors - ammAccount = amm_info_result.result.amm.account + // Get the AMM account address that issues LP tokens to depositors + ammAccount = amm_info_result.result.amm.account - const lpCurrency = standbyWalletBalances.find(item => item.issuer === ammAccount); + const lpCurrency = standbyWalletBalances.find((item) => item.issuer === ammAccount) - const lpBalance = lpCurrency ? lpCurrency.value : 'Currency not found'; + const lpBalance = lpCurrency ? lpCurrency.value : 'Currency not found' - const my_share = lpBalance / amm_info_result.result.amm.lp_token.value - - let my_asset1 = null - let my_asset2 = null + const my_share = lpBalance / amm_info_result.result.amm.lp_token.value - if ( amm_info_result.result.amm.amount.value && amm_info_result.result.amm.amount2.value ) { + let my_asset1 = null + let my_asset2 = null - my_asset1 = amm_info_result.result.amm.amount.value * my_share - my_asset2 = amm_info_result.result.amm.amount2.value * my_share + if (amm_info_result.result.amm.amount.value && amm_info_result.result.amm.amount2.value) { + my_asset1 = amm_info_result.result.amm.amount.value * my_share + my_asset2 = amm_info_result.result.amm.amount2.value * my_share - results += `\n\nI have a total of ${lpBalance} LP tokens that are worth:\n + results += `\n\nI have a total of ${lpBalance} LP tokens that are worth:\n ${amm_info_result.result.amm.amount.currency}: ${my_asset1} ${amm_info_result.result.amm.amount2.currency}: ${my_asset2}` + } else if (amm_info_result.result.amm.amount.value == undefined) { + my_asset1 = (amm_info_result.result.amm.amount * my_share) / 1000000 + my_asset2 = amm_info_result.result.amm.amount2.value * my_share - } else if ( amm_info_result.result.amm.amount.value == undefined ) { - - my_asset1 = (amm_info_result.result.amm.amount * my_share) / 1000000 - my_asset2 = amm_info_result.result.amm.amount2.value * my_share - - results += `\n\nI have a total of ${lpBalance} LP tokens that are worth:\n + results += `\n\nI have a total of ${lpBalance} LP tokens that are worth:\n XRP: ${my_asset1} ${amm_info_result.result.amm.amount2.currency}: ${my_asset2}` + } else { + my_asset1 = amm_info_result.result.amm.amount.value * my_share + my_asset2 = (amm_info_result.result.amm.amount2 * my_share) / 1000000 - } else { - - my_asset1 = amm_info_result.result.amm.amount.value * my_share - my_asset2 = (amm_info_result.result.amm.amount2 * my_share) / 1000000 - - results += `\n\nI have a total of ${lpBalance} LP tokens that are worth:\n + results += `\n\nI have a total of ${lpBalance} LP tokens that are worth:\n ${amm_info_result.result.amm.amount.currency}: ${my_asset1} XRP: ${my_asset2}` - - } - + } } catch (error) { results += `\n\n${error.message}` } @@ -455,12 +409,10 @@ async function calculateLP() { standbyResultField.scrollTop = standbyResultField.scrollHeight client.disconnect() - } // Redeem LP tokens. async function redeemLP() { - let net = getNet() const client = new xrpl.Client(net) @@ -470,7 +422,7 @@ async function redeemLP() { await client.connect() results += '\n\nConnected.' standbyResultField.value = results - + const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) const asset1_currency = asset1CurrencyField.value @@ -482,46 +434,40 @@ async function redeemLP() { // Structure "amm_info" command based on asset combo. let amm_info = null - if ( asset1_currency == "XRP" ) { - + if (asset1_currency == 'XRP') { amm_info = { - "command": "amm_info", - "asset": { - "currency": "XRP" + command: 'amm_info', + asset: { + currency: 'XRP', + }, + asset2: { + currency: asset2_currency, + issuer: asset2_issuer, }, - "asset2": { - "currency": asset2_currency, - "issuer": asset2_issuer - } } - - } else if ( asset2_currency == "XRP" ) { - + } else if (asset2_currency == 'XRP') { amm_info = { - "command": "amm_info", - "asset": { - "currency": asset1_currency, - "issuer": asset1_issuer + command: 'amm_info', + asset: { + currency: asset1_currency, + issuer: asset1_issuer, + }, + asset2: { + currency: 'XRP', }, - "asset2": { - "currency": "XRP" - } } - } else { - amm_info = { - "command": "amm_info", - "asset": { - "currency": asset1_currency, - "issuer": asset1_issuer + command: 'amm_info', + asset: { + currency: asset1_currency, + issuer: asset1_issuer, + }, + asset2: { + currency: asset2_currency, + issuer: asset2_issuer, }, - "asset2": { - "currency": asset2_currency, - "issuer": asset2_issuer - } } - } // Get LP token info. @@ -531,9 +477,9 @@ async function redeemLP() { const LPTokens = standbyLPField.value try { - const amm_info_result = await client.request(amm_info) - ammIssuer = amm_info_result.result.amm.lp_token.issuer - ammCurrency = amm_info_result.result.amm.lp_token.currency + const amm_info_result = await client.request(amm_info) + ammIssuer = amm_info_result.result.amm.lp_token.issuer + ammCurrency = amm_info_result.result.amm.lp_token.currency } catch (error) { results += `\n\n${error.message}` standbyResultField.value = results @@ -544,91 +490,83 @@ async function redeemLP() { // Structure ammwithdraw transaction based on asset combo. let ammwithdraw = null - if ( asset1_currency == "XRP" ) { - + if (asset1_currency == 'XRP') { ammwithdraw = { - "TransactionType": "AMMWithdraw", - "Asset": { - "currency": "XRP" + TransactionType: 'AMMWithdraw', + Asset: { + currency: 'XRP', }, - "Asset2": { - "currency": asset2_currency, - "issuer": asset2_issuer + Asset2: { + currency: asset2_currency, + issuer: asset2_issuer, }, - "Account": standby_wallet.address, - "LPTokenIn": { + Account: standby_wallet.address, + LPTokenIn: { currency: ammCurrency, issuer: ammIssuer, - value: LPTokens + value: LPTokens, }, - "Flags": 0x00010000 + Flags: 0x00010000, } - - } else if ( asset2_currency == "XRP" ) { - + } else if (asset2_currency == 'XRP') { ammwithdraw = { - "TransactionType": "AMMWithdraw", - "Asset": { - "currency": asset1_currency, - "issuer": asset1_issuer + TransactionType: 'AMMWithdraw', + Asset: { + currency: asset1_currency, + issuer: asset1_issuer, }, - "Asset2": { - "currency": "XRP" + Asset2: { + currency: 'XRP', }, - "Account": standby_wallet.address, - "LPTokenIn": { + Account: standby_wallet.address, + LPTokenIn: { currency: ammCurrency, issuer: ammIssuer, - value: LPTokens + value: LPTokens, }, - "Flags": 0x00010000 + Flags: 0x00010000, } - } else { - ammwithdraw = { - "TransactionType": "AMMWithdraw", - "Asset": { - "currency": asset1_currency, - "issuer": asset1_issuer + TransactionType: 'AMMWithdraw', + Asset: { + currency: asset1_currency, + issuer: asset1_issuer, }, - "Asset2": { - "currency": asset2_currency, - "issuer": asset2_issuer + Asset2: { + currency: asset2_currency, + issuer: asset2_issuer, }, - "Account": standby_wallet.address, - "LPTokenIn": { + Account: standby_wallet.address, + LPTokenIn: { currency: ammCurrency, issuer: ammIssuer, - value: LPTokens + value: LPTokens, }, - "Flags": 0x00010000 + Flags: 0x00010000, } - } - + try { + const prepared_withdraw = await client.autofill(ammwithdraw) + results += `\n\nPrepared transaction:\n${JSON.stringify(prepared_withdraw, null, 2)}` + standbyResultField.value = results + standbyResultField.scrollTop = standbyResultField.scrollHeight - const prepared_withdraw = await client.autofill(ammwithdraw) - results += `\n\nPrepared transaction:\n${JSON.stringify(prepared_withdraw, null, 2)}` - standbyResultField.value = results - standbyResultField.scrollTop = standbyResultField.scrollHeight + const signed_withdraw = standby_wallet.sign(prepared_withdraw) + results += `\n\nSending AMMWithdraw transaction ...` + standbyResultField.value = results + standbyResultField.scrollTop = standbyResultField.scrollHeight - const signed_withdraw = standby_wallet.sign(prepared_withdraw) - results += `\n\nSending AMMWithdraw transaction ...` - standbyResultField.value = results - standbyResultField.scrollTop = standbyResultField.scrollHeight - - const response_withdraw = await client.submitAndWait(signed_withdraw.tx_blob) - - if (response_withdraw.result.meta.TransactionResult == "tesSUCCESS") { - results += `\n\nTransaction succeeded.` - checkAMM() - getBalances() - } else { - results += `\n\nError sending transaction: ${JSON.stringify(response_withdraw.result.meta.TransactionResult, null, 2)}` - } + const response_withdraw = await client.submitAndWait(signed_withdraw.tx_blob) + if (response_withdraw.result.meta.TransactionResult == 'tesSUCCESS') { + results += `\n\nTransaction succeeded.` + checkAMM() + getBalances() + } else { + results += `\n\nError sending transaction: ${JSON.stringify(response_withdraw.result.meta.TransactionResult, null, 2)}` + } } catch (error) { results += `\n\n${error.message}` } @@ -637,5 +575,4 @@ async function redeemLP() { standbyResultField.scrollTop = standbyResultField.scrollHeight client.disconnect() - -} \ No newline at end of file +} diff --git a/_code-samples/quickstart/js/ripplex13a-trade-with-auction-slot.js b/_code-samples/quickstart/js/ripplex13a-trade-with-auction-slot.js index 10175ad149..b7c1d61aad 100644 --- a/_code-samples/quickstart/js/ripplex13a-trade-with-auction-slot.js +++ b/_code-samples/quickstart/js/ripplex13a-trade-with-auction-slot.js @@ -1,365 +1,362 @@ // Function to estimate cost to swap for specified token value. async function estimateCost() { + let net = getNet() - let net = getNet() + const client = new xrpl.Client(net) + results = `\n\nConnecting to ${getNet()} ...` + standbyResultField.value = results - const client = new xrpl.Client(net) - results = `\n\nConnecting to ${getNet()} ...` - standbyResultField.value = results + await client.connect() + results += '\n\nConnected.' + standbyResultField.value = results - await client.connect() - results += '\n\nConnected.' - standbyResultField.value = results + try { + const asset1_currency = asset1CurrencyField.value + const asset1_issuer = asset1IssuerField.value - try { + const asset2_currency = asset2CurrencyField.value + const asset2_issuer = asset2IssuerField.value - const asset1_currency = asset1CurrencyField.value - const asset1_issuer = asset1IssuerField.value + // Look up AMM info - const asset2_currency = asset2CurrencyField.value - const asset2_issuer = asset2IssuerField.value + let asset1_info = null + let asset2_info = null - - // Look up AMM info - - let asset1_info = null - let asset2_info = null - - if ( asset1_currency == 'XRP' ) { - asset1_info = { - "currency": "XRP" - } - } else { - asset1_info = { - "currency": asset1_currency, - "issuer": asset1_issuer - } - } - - if ( asset2_currency == 'XRP' ) { - asset2_info = { - "currency": "XRP" - } - } else { - asset2_info = { - "currency": asset2_currency, - "issuer": asset2_issuer - } - } - - const amm_info = (await client.request({ - "command": "amm_info", - "asset": asset1_info, - "asset2": asset2_info - })) - - // Save relevant AMM info for calculations - - const lpt = amm_info.result.amm.lp_token - const pool_asset1 = amm_info.result.amm.amount - const pool_asset2 = amm_info.result.amm.amount2 - const full_trading_fee = amm_info.result.amm.trading_fee - const discounted_fee = amm_info.result.amm.auction_slot.discounted_fee - const old_bid = amm_info.result.amm.auction_slot.price.value - const time_interval = amm_info.result.amm.auction_slot.time_interval - - results += `\n\nTrading Fee: ${full_trading_fee/1000}%\nDiscounted Fee: ${discounted_fee/1000}%` - - // Save taker pays and gets values. - - const takerPays = { - "currency": standbyTakerPaysCurrencyField.value, - "issuer": standbyTakerPaysIssuerField.value, - "amount": standbyTakerPaysAmountField.value - } - - const takerGets = { - "currency": standbyTakerGetsCurrencyField.value, - "issuer": standbyTakerGetsIssuerField.value, - "amount": standbyTakerGetsAmountField.value - } - - // Get amount of assets in the pool. - // Convert values to BigNumbers with the appropriate precision. - // Tokens always have 15 significant digits; - // XRP is precise to integer drops, which can be as high as 10^17 - - let asset_out_bn = null - let pool_in_bn = null - let pool_out_bn = null - let isAmmAsset1Xrp = false - let isAmmAsset2Xrp = false - - if ( takerPays.currency == 'XRP' ) { - asset_out_bn = BigNumber(xrpl.xrpToDrops(takerPays.amount)).precision(17) - } else { - asset_out_bn = BigNumber(takerPays.amount).precision(15) - } - - if ( takerGets.currency == 'XRP' && asset1_currency == 'XRP' ) { - pool_in_bn = BigNumber(pool_asset1).precision(17) - isAmmAsset1Xrp = true - } else if ( takerGets.currency == 'XRP' && asset2_currency == 'XRP' ) { - pool_in_bn = BigNumber(pool_asset2).precision(17) - isAmmAsset2Xrp = true - } else if ( takerGets.currency == asset1_currency ) { - pool_in_bn = BigNumber(pool_asset1.value).precision(15) - } else { - pool_in_bn = BigNumber(pool_asset2.value).precision(15) - } - - if (takerPays.currency == 'XRP' && asset1_currency == 'XRP' ) { - pool_out_bn = BigNumber(pool_asset1).precision(17) - } else if ( takerPays.currency == 'XRP' && asset2_currency == 'XRP' ) { - pool_out_bn = BigNumber(pool_asset2).precision(17) - } else if ( takerPays.currency == asset1_currency ) { - pool_out_bn = BigNumber(pool_asset1.value).precision(15) - } else { - pool_out_bn = BigNumber(pool_asset2.value).precision(15) - } - - if ( takerPays.currency == 'XRP' && parseFloat(takerPays.amount) > parseFloat(xrpl.dropsToXrp(pool_out_bn)) ) { - results += `\n\nRequested ${takerPays.amount} ${takerPays.currency}, but AMM only holds ${xrpl.dropsToXrp(pool_out_bn)}. Quitting.` - standbyResultField.value = results - client.disconnect() - return - } else if ( parseFloat(takerPays.amount) > parseFloat(pool_out_bn) ) { - results += `\n\nRequested ${takerPays.amount} ${takerPays.currency}, but AMM only holds ${pool_out_bn}. Quitting.` - standbyResultField.value = results - client.disconnect() - return - } - - // Use AMM's SwapOut formula to figure out how much of the takerGets asset - // you have to pay to receive the target amount of takerPays asset - const unrounded_amount = swapOut(asset_out_bn, pool_in_bn, pool_out_bn, full_trading_fee) - // Drop decimal places and round ceiling to ensure you pay in enough. - const swap_amount = unrounded_amount.dp(0, BigNumber.ROUND_CEIL) - - // Helper function to convert drops to XRP in log window - function convert(currency, amount) { - if ( currency == 'XRP' ) { - amount = xrpl.dropsToXrp(amount) - } - return amount - } - - results += `\n\nExpected cost for ${takerPays.amount} ${takerPays.currency}: ${convert(takerGets.currency, swap_amount)} ${takerGets.currency}` - - // Use SwapOut to calculate discounted swap amount with auction slot - const raw_discounted = swapOut(asset_out_bn, pool_in_bn, pool_out_bn, discounted_fee) - const discounted_swap_amount = raw_discounted.dp(0, BigNumber.ROUND_CEIL) - results += `\n\nExpected cost with auction slot for ${takerPays.amount} ${takerPays.currency}: ${convert(takerGets.currency, discounted_swap_amount)} ${takerGets.currency}` - - // Calculate savings by using auction slot - const potential_savings = swap_amount.minus(discounted_swap_amount) - results += `\nPotential savings: ${convert(takerGets.currency, potential_savings)} ${takerGets.currency}` - - // Calculate the cost of winning the auction slot, in LP Tokens. - const auction_price = auctionDeposit(old_bid, time_interval, full_trading_fee, lpt.value).dp(3, BigNumber.ROUND_CEIL) - results += `\n\nYou can win the current auction slot by bidding ${auction_price} LP Tokens.` - - // Calculate how much to add for a single-asset deposit to receive the target LP Token amount - let deposit_for_bid_asset1 = null - let deposit_for_bid_asset2 = null - - if ( isAmmAsset1Xrp == true ) { - deposit_for_bid_asset1 = xrpl.dropsToXrp(ammAssetIn(pool_asset1, lpt.value, auction_price, full_trading_fee).dp(0, BigNumber.ROUND_CEIL)) - } else { - deposit_for_bid_asset1 = ammAssetIn(pool_asset1.value, lpt.value, auction_price, full_trading_fee).dp(15, BigNumber.ROUND_CEIL) - } - - if ( isAmmAsset2Xrp == true ) { - deposit_for_bid_asset2 = xrpl.dropsToXrp(ammAssetIn(pool_asset2, lpt.value, auction_price, full_trading_fee).dp(0, BigNumber.ROUND_CEIL)) - } else { - deposit_for_bid_asset2 = ammAssetIn(pool_asset2.value, lpt.value, auction_price, full_trading_fee).dp(15, BigNumber.ROUND_CEIL) - } - - if ( isAmmAsset1Xrp == true ) { - results += `\n\nMake a single-asset deposit to the AMM of ${deposit_for_bid_asset1} XRP or ${deposit_for_bid_asset2} ${pool_asset2.currency} to get the required LP Tokens.` - } else if ( isAmmAsset2Xrp == true ) { - results += `\n\nMake a single-asset deposit to the AMM of ${deposit_for_bid_asset1} ${pool_asset1.currency} or ${deposit_for_bid_asset2} XRP to get the required LP Tokens.` - } else { - results += `\n\nMake a single-asset deposit to the AMM of ${deposit_for_bid_asset1} ${pool_asset1.currency} or ${deposit_for_bid_asset2} ${pool_asset2.currency} to get the required LP Tokens.` - } - - } catch (error) { - results += `\n\n${error.message}` + if (asset1_currency == 'XRP') { + asset1_info = { + currency: 'XRP', + } + } else { + asset1_info = { + currency: asset1_currency, + issuer: asset1_issuer, + } } - standbyResultField.value = results + if (asset2_currency == 'XRP') { + asset2_info = { + currency: 'XRP', + } + } else { + asset2_info = { + currency: asset2_currency, + issuer: asset2_issuer, + } + } - client.disconnect() + const amm_info = await client.request({ + command: 'amm_info', + asset: asset1_info, + asset2: asset2_info, + }) + // Save relevant AMM info for calculations + + const lpt = amm_info.result.amm.lp_token + const pool_asset1 = amm_info.result.amm.amount + const pool_asset2 = amm_info.result.amm.amount2 + const full_trading_fee = amm_info.result.amm.trading_fee + const discounted_fee = amm_info.result.amm.auction_slot.discounted_fee + const old_bid = amm_info.result.amm.auction_slot.price.value + const time_interval = amm_info.result.amm.auction_slot.time_interval + + results += `\n\nTrading Fee: ${full_trading_fee / 1000}%\nDiscounted Fee: ${discounted_fee / 1000}%` + + // Save taker pays and gets values. + + const takerPays = { + currency: standbyTakerPaysCurrencyField.value, + issuer: standbyTakerPaysIssuerField.value, + amount: standbyTakerPaysAmountField.value, + } + + const takerGets = { + currency: standbyTakerGetsCurrencyField.value, + issuer: standbyTakerGetsIssuerField.value, + amount: standbyTakerGetsAmountField.value, + } + + // Get amount of assets in the pool. + // Convert values to BigNumbers with the appropriate precision. + // Tokens always have 15 significant digits; + // XRP is precise to integer drops, which can be as high as 10^17 + + let asset_out_bn = null + let pool_in_bn = null + let pool_out_bn = null + let isAmmAsset1Xrp = false + let isAmmAsset2Xrp = false + + if (takerPays.currency == 'XRP') { + asset_out_bn = BigNumber(xrpl.xrpToDrops(takerPays.amount)).precision(17) + } else { + asset_out_bn = BigNumber(takerPays.amount).precision(15) + } + + if (takerGets.currency == 'XRP' && asset1_currency == 'XRP') { + pool_in_bn = BigNumber(pool_asset1).precision(17) + isAmmAsset1Xrp = true + } else if (takerGets.currency == 'XRP' && asset2_currency == 'XRP') { + pool_in_bn = BigNumber(pool_asset2).precision(17) + isAmmAsset2Xrp = true + } else if (takerGets.currency == asset1_currency) { + pool_in_bn = BigNumber(pool_asset1.value).precision(15) + } else { + pool_in_bn = BigNumber(pool_asset2.value).precision(15) + } + + if (takerPays.currency == 'XRP' && asset1_currency == 'XRP') { + pool_out_bn = BigNumber(pool_asset1).precision(17) + } else if (takerPays.currency == 'XRP' && asset2_currency == 'XRP') { + pool_out_bn = BigNumber(pool_asset2).precision(17) + } else if (takerPays.currency == asset1_currency) { + pool_out_bn = BigNumber(pool_asset1.value).precision(15) + } else { + pool_out_bn = BigNumber(pool_asset2.value).precision(15) + } + + if (takerPays.currency == 'XRP' && parseFloat(takerPays.amount) > parseFloat(xrpl.dropsToXrp(pool_out_bn))) { + results += `\n\nRequested ${takerPays.amount} ${takerPays.currency}, but AMM only holds ${xrpl.dropsToXrp(pool_out_bn)}. Quitting.` + standbyResultField.value = results + client.disconnect() + return + } else if (parseFloat(takerPays.amount) > parseFloat(pool_out_bn)) { + results += `\n\nRequested ${takerPays.amount} ${takerPays.currency}, but AMM only holds ${pool_out_bn}. Quitting.` + standbyResultField.value = results + client.disconnect() + return + } + + // Use AMM's SwapOut formula to figure out how much of the takerGets asset + // you have to pay to receive the target amount of takerPays asset + const unrounded_amount = swapOut(asset_out_bn, pool_in_bn, pool_out_bn, full_trading_fee) + // Drop decimal places and round ceiling to ensure you pay in enough. + const swap_amount = unrounded_amount.dp(0, BigNumber.ROUND_CEIL) + + // Helper function to convert drops to XRP in log window + function convert(currency, amount) { + if (currency == 'XRP') { + amount = xrpl.dropsToXrp(amount) + } + return amount + } + + results += `\n\nExpected cost for ${takerPays.amount} ${takerPays.currency}: ${convert(takerGets.currency, swap_amount)} ${takerGets.currency}` + + // Use SwapOut to calculate discounted swap amount with auction slot + const raw_discounted = swapOut(asset_out_bn, pool_in_bn, pool_out_bn, discounted_fee) + const discounted_swap_amount = raw_discounted.dp(0, BigNumber.ROUND_CEIL) + results += `\n\nExpected cost with auction slot for ${takerPays.amount} ${takerPays.currency}: ${convert(takerGets.currency, discounted_swap_amount)} ${takerGets.currency}` + + // Calculate savings by using auction slot + const potential_savings = swap_amount.minus(discounted_swap_amount) + results += `\nPotential savings: ${convert(takerGets.currency, potential_savings)} ${takerGets.currency}` + + // Calculate the cost of winning the auction slot, in LP Tokens. + const auction_price = auctionDeposit(old_bid, time_interval, full_trading_fee, lpt.value).dp(3, BigNumber.ROUND_CEIL) + results += `\n\nYou can win the current auction slot by bidding ${auction_price} LP Tokens.` + + // Calculate how much to add for a single-asset deposit to receive the target LP Token amount + let deposit_for_bid_asset1 = null + let deposit_for_bid_asset2 = null + + if (isAmmAsset1Xrp == true) { + deposit_for_bid_asset1 = xrpl.dropsToXrp(ammAssetIn(pool_asset1, lpt.value, auction_price, full_trading_fee).dp(0, BigNumber.ROUND_CEIL)) + } else { + deposit_for_bid_asset1 = ammAssetIn(pool_asset1.value, lpt.value, auction_price, full_trading_fee).dp(15, BigNumber.ROUND_CEIL) + } + + if (isAmmAsset2Xrp == true) { + deposit_for_bid_asset2 = xrpl.dropsToXrp(ammAssetIn(pool_asset2, lpt.value, auction_price, full_trading_fee).dp(0, BigNumber.ROUND_CEIL)) + } else { + deposit_for_bid_asset2 = ammAssetIn(pool_asset2.value, lpt.value, auction_price, full_trading_fee).dp(15, BigNumber.ROUND_CEIL) + } + + if (isAmmAsset1Xrp == true) { + results += `\n\nMake a single-asset deposit to the AMM of ${deposit_for_bid_asset1} XRP or ${deposit_for_bid_asset2} ${pool_asset2.currency} to get the required LP Tokens.` + } else if (isAmmAsset2Xrp == true) { + results += `\n\nMake a single-asset deposit to the AMM of ${deposit_for_bid_asset1} ${pool_asset1.currency} or ${deposit_for_bid_asset2} XRP to get the required LP Tokens.` + } else { + results += `\n\nMake a single-asset deposit to the AMM of ${deposit_for_bid_asset1} ${pool_asset1.currency} or ${deposit_for_bid_asset2} ${pool_asset2.currency} to get the required LP Tokens.` + } + } catch (error) { + results += `\n\n${error.message}` + } + + standbyResultField.value = results + + client.disconnect() } // Bid on the auction slot async function bidAuction() { - let net = getNet() + let net = getNet() - const client = new xrpl.Client(net) - results = `\n\nConnecting to ${getNet()} ...` - standbyResultField.value = results + const client = new xrpl.Client(net) + results = `\n\nConnecting to ${getNet()} ...` + standbyResultField.value = results - await client.connect() - results += '\n\nConnected.' - standbyResultField.value = results + await client.connect() + results += '\n\nConnected.' + standbyResultField.value = results - try { + try { + const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) - const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) + const asset1_currency = asset1CurrencyField.value + const asset1_issuer = asset1IssuerField.value - const asset1_currency = asset1CurrencyField.value - const asset1_issuer = asset1IssuerField.value + const asset2_currency = asset2CurrencyField.value + const asset2_issuer = asset2IssuerField.value + const valueLPT = standbyLPField.value - const asset2_currency = asset2CurrencyField.value - const asset2_issuer = asset2IssuerField.value - const valueLPT = standbyLPField.value + // Look up AMM info - // Look up AMM info + let asset1_info = null + let asset2_info = null - let asset1_info = null - let asset2_info = null - - if ( asset1_currency == 'XRP' ) { - asset1_info = { - "currency": "XRP" - } - } else { - asset1_info = { - "currency": asset1_currency, - "issuer": asset1_issuer - } - } - - if ( asset2_currency == 'XRP' ) { - asset2_info = { - "currency": "XRP" - } - } else { - asset2_info = { - "currency": asset2_currency, - "issuer": asset2_issuer - } - } - - const amm_info = (await client.request({ - "command": "amm_info", - "asset": asset1_info, - "asset2": asset2_info - })) - - // Save relevant AMM info for calculations - - const lpt = amm_info.result.amm.lp_token - - results += '\n\nBidding on auction slot ...' - standbyResultField.value = results - - const bid_result = await client.submitAndWait({ - "TransactionType": "AMMBid", - "Account": standby_wallet.address, - "Asset": asset1_info, - "Asset2": asset2_info, - "BidMax": { - "currency": lpt.currency, - "issuer": lpt.issuer, - "value": valueLPT - }, - "BidMin": { - "currency": lpt.currency, - "issuer": lpt.issuer, - "value": valueLPT - } // So rounding doesn't leave dust amounts of LPT - }, {autofill: true, wallet: standby_wallet}) - - if (bid_result.result.meta.TransactionResult == "tesSUCCESS") { - results += `\n\nTransaction succeeded.` - checkAMM() - } else { - results += `\n\nError sending transaction: ${JSON.stringify(bid_result.result.meta.TransactionResult, null, 2)}` - } - } catch (error) { - results += `\n\n${error.message}` + if (asset1_currency == 'XRP') { + asset1_info = { + currency: 'XRP', + } + } else { + asset1_info = { + currency: asset1_currency, + issuer: asset1_issuer, + } } + if (asset2_currency == 'XRP') { + asset2_info = { + currency: 'XRP', + } + } else { + asset2_info = { + currency: asset2_currency, + issuer: asset2_issuer, + } + } + + const amm_info = await client.request({ + command: 'amm_info', + asset: asset1_info, + asset2: asset2_info, + }) + + // Save relevant AMM info for calculations + + const lpt = amm_info.result.amm.lp_token + + results += '\n\nBidding on auction slot ...' standbyResultField.value = results - client.disconnect() + const bid_result = await client.submitAndWait( + { + TransactionType: 'AMMBid', + Account: standby_wallet.address, + Asset: asset1_info, + Asset2: asset2_info, + BidMax: { + currency: lpt.currency, + issuer: lpt.issuer, + value: valueLPT, + }, + BidMin: { + currency: lpt.currency, + issuer: lpt.issuer, + value: valueLPT, + }, // So rounding doesn't leave dust amounts of LPT + }, + { autofill: true, wallet: standby_wallet }, + ) + if (bid_result.result.meta.TransactionResult == 'tesSUCCESS') { + results += `\n\nTransaction succeeded.` + checkAMM() + } else { + results += `\n\nError sending transaction: ${JSON.stringify(bid_result.result.meta.TransactionResult, null, 2)}` + } + } catch (error) { + results += `\n\n${error.message}` + } + + standbyResultField.value = results + + client.disconnect() } // Swap tokens with AMM async function swapTokens() { - let net = getNet() + let net = getNet() - const client = new xrpl.Client(net) - results = `\n\nConnecting to ${getNet()} ...` - standbyResultField.value = results + const client = new xrpl.Client(net) + results = `\n\nConnecting to ${getNet()} ...` + standbyResultField.value = results - await client.connect() - results += '\n\nConnected.' - standbyResultField.value = results + await client.connect() + results += '\n\nConnected.' + standbyResultField.value = results - try { + try { + const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) - const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) + const takerPaysCurrency = standbyTakerPaysCurrencyField.value + const takerPaysIssuer = standbyTakerPaysIssuerField.value + const takerPaysAmount = standbyTakerPaysAmountField.value - const takerPaysCurrency = standbyTakerPaysCurrencyField.value - const takerPaysIssuer = standbyTakerPaysIssuerField.value - const takerPaysAmount = standbyTakerPaysAmountField.value + const takerGetsCurrency = standbyTakerGetsCurrencyField.value + const takerGetsIssuer = standbyTakerGetsIssuerField.value + const takerGetsAmount = standbyTakerGetsAmountField.value - const takerGetsCurrency = standbyTakerGetsCurrencyField.value - const takerGetsIssuer = standbyTakerGetsIssuerField.value - const takerGetsAmount = standbyTakerGetsAmountField.value + let takerPays = null + let takerGets = null - let takerPays = null - let takerGets = null - - if ( takerPaysCurrency == 'XRP' ) { - takerPays = xrpl.xrpToDrops(takerPaysAmount) - } else { - takerPays = { - "currency": takerPaysCurrency, - "issuer": takerPaysIssuer, - "value": takerPaysAmount - } - } - - if ( takerGetsCurrency == 'XRP' ) { - takerGets = xrpl.xrpToDrops(takerGetsAmount) - } else { - takerGets = { - "currency": takerGetsCurrency, - "issuer": takerGetsIssuer, - "value": takerGetsAmount - } - } - - results += '\n\nSwapping tokens ...' - standbyResultField.value = results - - const offer_result = await client.submitAndWait({ - "TransactionType": "OfferCreate", - "Account": standby_wallet.address, - "TakerPays": takerPays, - "TakerGets": takerGets - }, {autofill: true, wallet: standby_wallet}) - - if (offer_result.result.meta.TransactionResult == "tesSUCCESS") { - results += `\n\nTransaction succeeded.` - checkAMM() - } else { - results += `\n\nError sending transaction: ${JSON.stringify(offer_result.result.meta.TransactionResult, null, 2)}` - } - } catch (error) { - results += `\n\n${error.message}` + if (takerPaysCurrency == 'XRP') { + takerPays = xrpl.xrpToDrops(takerPaysAmount) + } else { + takerPays = { + currency: takerPaysCurrency, + issuer: takerPaysIssuer, + value: takerPaysAmount, + } } + if (takerGetsCurrency == 'XRP') { + takerGets = xrpl.xrpToDrops(takerGetsAmount) + } else { + takerGets = { + currency: takerGetsCurrency, + issuer: takerGetsIssuer, + value: takerGetsAmount, + } + } + + results += '\n\nSwapping tokens ...' standbyResultField.value = results - client.disconnect() + const offer_result = await client.submitAndWait( + { + TransactionType: 'OfferCreate', + Account: standby_wallet.address, + TakerPays: takerPays, + TakerGets: takerGets, + }, + { autofill: true, wallet: standby_wallet }, + ) + if (offer_result.result.meta.TransactionResult == 'tesSUCCESS') { + results += `\n\nTransaction succeeded.` + checkAMM() + } else { + results += `\n\nError sending transaction: ${JSON.stringify(offer_result.result.meta.TransactionResult, null, 2)}` + } + } catch (error) { + results += `\n\n${error.message}` + } + + standbyResultField.value = results + + client.disconnect() } diff --git a/_code-samples/quickstart/js/ripplex13b-amm-formulas.js b/_code-samples/quickstart/js/ripplex13b-amm-formulas.js index 282dc750f7..cfe8bc3e73 100644 --- a/_code-samples/quickstart/js/ripplex13b-amm-formulas.js +++ b/_code-samples/quickstart/js/ripplex13b-amm-formulas.js @@ -5,7 +5,7 @@ * @returns BigNumber (1 - fee) as a decimal */ function feeMult(tFee) { - return BigNumber(1).minus( feeDecimal(tFee) ) + return BigNumber(1).minus(feeDecimal(tFee)) } /* Same as feeMult, but with half the trading fee. Single-asset deposits and @@ -16,7 +16,7 @@ function feeMult(tFee) { * @returns BigNumber (1 - (fee/2)) as a decimal */ function feeMultHalf(tFee) { - return BigNumber(1).minus( feeDecimal(tFee).dividedBy(2) ) + return BigNumber(1).minus(feeDecimal(tFee).dividedBy(2)) } /* Convert a trading fee to a decimal BigNumber value, @@ -26,43 +26,38 @@ function feeMultHalf(tFee) { * @returns BigNumber(fee) as a decimal */ function feeDecimal(tFee) { - const AUCTION_SLOT_FEE_SCALE_FACTOR = 100000 - return BigNumber(tFee).dividedBy(AUCTION_SLOT_FEE_SCALE_FACTOR) + const AUCTION_SLOT_FEE_SCALE_FACTOR = 100000 + return BigNumber(tFee).dividedBy(AUCTION_SLOT_FEE_SCALE_FACTOR) } -/* Implement the AMM SwapOut formula, as defined in XLS-30 section 2.4 AMM - * Swap, formula 10. The asset weights WA/WB are currently always 1/1 so +/* Implement the AMM SwapOut formula, as defined in XLS-30 section 2.4 AMM + * Swap, formula 10. The asset weights WA/WB are currently always 1/1 so * they're canceled out. * C++ source: https://github.com/XRPLF/rippled/blob/2d1854f354ff8bb2b5671fd51252c5acd837c433/src/ripple/app/misc/AMMHelpers.h#L253-L258 * @param asset_out_bn BigNumber - The target amount to receive from the AMM. - * @param pool_in_bn BigNumber - The amount of the input asset in the AMM's + * @param pool_in_bn BigNumber - The amount of the input asset in the AMM's * pool before the swap. * @param pool_out_bn BigNumber - The amount of the output asset in the AMM's * pool before the swap. - * @param trading_fee int - The trading fee as an integer {0, 1000} where 1000 + * @param trading_fee int - The trading fee as an integer {0, 1000} where 1000 * represents a 1% fee. - * @returns BigNumber - The amount of the input asset that must be swapped in + * @returns BigNumber - The amount of the input asset that must be swapped in * to receive the target output amount. Unrounded, because - * the number of decimals depends on if this is drops of + * the number of decimals depends on if this is drops of * XRP or a decimal amount of a token; since this is a - * theoretical input to the pool, it should be rounded + * theoretical input to the pool, it should be rounded * up (ceiling) to preserve the pool's constant product. */ function swapOut(asset_out_bn, pool_in_bn, pool_out_bn, trading_fee) { - return ( ( pool_in_bn.multipliedBy(pool_out_bn) ).dividedBy( - pool_out_bn.minus(asset_out_bn) - ).minus(pool_in_bn) - ).dividedBy(feeMult(trading_fee)) + return pool_in_bn.multipliedBy(pool_out_bn).dividedBy(pool_out_bn.minus(asset_out_bn)).minus(pool_in_bn).dividedBy(feeMult(trading_fee)) } /* Compute the quadratic formula. Helper function for ammAssetIn. * Params and return value are BigNumber instances. */ -function solveQuadraticEq(a,b,c) { - const b2minus4ac = b.multipliedBy(b).minus( - a.multipliedBy(c).multipliedBy(4) - ) - return ( b.negated().plus(b2minus4ac.sqrt()) ).dividedBy(a.multipliedBy(2)) +function solveQuadraticEq(a, b, c) { + const b2minus4ac = b.multipliedBy(b).minus(a.multipliedBy(c).multipliedBy(4)) + return b.negated().plus(b2minus4ac.sqrt()).dividedBy(a.multipliedBy(2)) } /* Implement the AMM single-asset deposit formula to calculate how much to @@ -75,80 +70,71 @@ function solveQuadraticEq(a,b,c) { * represents a 1% fee. */ function ammAssetIn(pool_in, lpt_balance, desired_lpt, trading_fee) { - // convert inputs to BigNumber - const lpTokens = BigNumber(desired_lpt) - const lptAMMBalance = BigNumber(lpt_balance) - const asset1Balance = BigNumber(pool_in) + // convert inputs to BigNumber + const lpTokens = BigNumber(desired_lpt) + const lptAMMBalance = BigNumber(lpt_balance) + const asset1Balance = BigNumber(pool_in) - const f1 = feeMult(trading_fee) - const f2 = feeMultHalf(trading_fee).dividedBy(f1) - const t1 = lpTokens.dividedBy(lptAMMBalance) - const t2 = t1.plus(1) - const d = f2.minus( t1.dividedBy(t2) ) - const a = BigNumber(1).dividedBy( t2.multipliedBy(t2)) - const b = BigNumber(2).multipliedBy(d).dividedBy(t2).minus( - BigNumber(1).dividedBy(f1) - ) - const c = d.multipliedBy(d).minus( f2.multipliedBy(f2) ) - return asset1Balance.multipliedBy(solveQuadraticEq(a,b,c)) + const f1 = feeMult(trading_fee) + const f2 = feeMultHalf(trading_fee).dividedBy(f1) + const t1 = lpTokens.dividedBy(lptAMMBalance) + const t2 = t1.plus(1) + const d = f2.minus(t1.dividedBy(t2)) + const a = BigNumber(1).dividedBy(t2.multipliedBy(t2)) + const b = BigNumber(2).multipliedBy(d).dividedBy(t2).minus(BigNumber(1).dividedBy(f1)) + const c = d.multipliedBy(d).minus(f2.multipliedBy(f2)) + return asset1Balance.multipliedBy(solveQuadraticEq(a, b, c)) } /* Calculate how much to deposit, in terms of LP Tokens out, to be able to win - * the auction slot. This is based on the slot pricing algorithm defined in - * XLS-30 section 4.1.1, but factors in the increase in the minimum bid as a + * the auction slot. This is based on the slot pricing algorithm defined in + * XLS-30 section 4.1.1, but factors in the increase in the minimum bid as a * result of having new LP Tokens issued to you from your deposit. */ function auctionDeposit(old_bid, time_interval, trading_fee, lpt_balance) { - const tfee_decimal = feeDecimal(trading_fee) - const lptokens = BigNumber(lpt_balance) - const b = BigNumber(old_bid) - let outbidAmount = BigNumber(0) // This is the case if time_interval >= 20 - if (time_interval == 0) { - outbidAmount = b.multipliedBy("1.05") - } else if (time_interval <= 19) { - const t60 = BigNumber(time_interval).multipliedBy("0.05").exponentiatedBy(60) - outbidAmount = b.multipliedBy("1.05").multipliedBy(BigNumber(1).minus(t60)) - } + const tfee_decimal = feeDecimal(trading_fee) + const lptokens = BigNumber(lpt_balance) + const b = BigNumber(old_bid) + let outbidAmount = BigNumber(0) // This is the case if time_interval >= 20 + if (time_interval == 0) { + outbidAmount = b.multipliedBy('1.05') + } else if (time_interval <= 19) { + const t60 = BigNumber(time_interval).multipliedBy('0.05').exponentiatedBy(60) + outbidAmount = b.multipliedBy('1.05').multipliedBy(BigNumber(1).minus(t60)) + } - const new_bid = lptokens.plus(outbidAmount).dividedBy( - BigNumber(25).dividedBy(tfee_decimal).minus(1) - ).plus(outbidAmount) - - // Significant digits for the deposit are limited by total LPTokens issued - // so we calculate lptokens + deposit - lptokens to determine where the - // rounding occurs. We use ceiling/floor to make sure the amount we receive - // after rounding is still enough to win the auction slot. - const rounded_bid = new_bid.plus(lptokens).precision(15, BigNumber.CEILING - ).minus(lptokens).precision(15, BigNumber.FLOOR) - return rounded_bid + const new_bid = lptokens.plus(outbidAmount).dividedBy(BigNumber(25).dividedBy(tfee_decimal).minus(1)).plus(outbidAmount) + + // Significant digits for the deposit are limited by total LPTokens issued + // so we calculate lptokens + deposit - lptokens to determine where the + // rounding occurs. We use ceiling/floor to make sure the amount we receive + // after rounding is still enough to win the auction slot. + const rounded_bid = new_bid.plus(lptokens).precision(15, BigNumber.CEILING).minus(lptokens).precision(15, BigNumber.FLOOR) + return rounded_bid } /* Calculate the necessary bid to win the AMM Auction slot, per the pricing * algorithm defined in XLS-30 section 4.1.1, if you already hold LP Tokens. - * + * * NOT USED in the Auction Slot tutorial, which assumes the user does not hold * any LP Tokens. - * + * * @returns BigNumber - the minimum amount of LP tokens to win the auction slot */ function auctionPrice(old_bid, time_interval, trading_fee, lpt_balance) { - const tfee_decimal = feeDecimal(trading_fee) - const lptokens = BigNumber(lpt_balance) - const min_bid = lptokens.multipliedBy(tfee_decimal).dividedBy(25) - const b = BigNumber(old_bid) - let new_bid = min_bid - - if (time_interval == 0) { - new_bid = b.multipliedBy("1.05").plus(min_bid) - } else if (time_interval <= 19) { - const t60 = BigNumber(time_interval).multipliedBy("0.05" - ).exponentiatedBy(60) - new_bid = b.multipliedBy("1.05").multipliedBy( - BigNumber(1).minus(t60) - ).plus(min_bid) - } + const tfee_decimal = feeDecimal(trading_fee) + const lptokens = BigNumber(lpt_balance) + const min_bid = lptokens.multipliedBy(tfee_decimal).dividedBy(25) + const b = BigNumber(old_bid) + let new_bid = min_bid - const rounded_bid = new_bid.plus(lptokens).precision(15, BigNumber.CEILING - ).minus(lptokens).precision(15, BigNumber.FLOOR) - return rounded_bid -} \ No newline at end of file + if (time_interval == 0) { + new_bid = b.multipliedBy('1.05').plus(min_bid) + } else if (time_interval <= 19) { + const t60 = BigNumber(time_interval).multipliedBy('0.05').exponentiatedBy(60) + new_bid = b.multipliedBy('1.05').multipliedBy(BigNumber(1).minus(t60)).plus(min_bid) + } + + const rounded_bid = new_bid.plus(lptokens).precision(15, BigNumber.CEILING).minus(lptokens).precision(15, BigNumber.FLOOR) + return rounded_bid +} diff --git a/_code-samples/quickstart/js/ripplex2-send-currency.js b/_code-samples/quickstart/js/ripplex2-send-currency.js index 03b961a2bf..ed4f5ad0a4 100644 --- a/_code-samples/quickstart/js/ripplex2-send-currency.js +++ b/_code-samples/quickstart/js/ripplex2-send-currency.js @@ -1,7 +1,7 @@ // ******************************************************* // **************** Configure Account ******************** // ******************************************************* - + async function configureAccount(type, defaultRippleSetting) { let net = getNet() let resultField = 'standbyResultField' @@ -9,7 +9,7 @@ async function configureAccount(type, defaultRippleSetting) { results = 'Connecting to ' + net + '....' await client.connect() results += '\nConnected, finding wallet.' - if (type=='standby') { + if (type == 'standby') { my_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) } else { my_wallet = xrpl.Wallet.fromSeed(operationalSeedField.value) @@ -21,40 +21,40 @@ async function configureAccount(type, defaultRippleSetting) { let settings_tx = {} if (defaultRippleSetting) { settings_tx = { - "TransactionType": "AccountSet", - "Account": my_wallet.address, - "SetFlag": xrpl.AccountSetAsfFlags.asfDefaultRipple - } - results += '\n Set Default Ripple flag.' - } else { - settings_tx = { - "TransactionType": "AccountSet", - "Account": my_wallet.address, - "ClearFlag": xrpl.AccountSetAsfFlags.asfDefaultRipple + TransactionType: 'AccountSet', + Account: my_wallet.address, + SetFlag: xrpl.AccountSetAsfFlags.asfDefaultRipple, } - results += '\n Clear Default Ripple flag.' + results += '\n Set Default Ripple flag.' + } else { + settings_tx = { + TransactionType: 'AccountSet', + Account: my_wallet.address, + ClearFlag: xrpl.AccountSetAsfFlags.asfDefaultRipple, + } + results += '\n Clear Default Ripple flag.' } - results += '\nSending account setting.' - resultField.value = results + results += '\nSending account setting.' + resultField.value = results const prepared = await client.autofill(settings_tx) const signed = my_wallet.sign(prepared) const result = await client.submitAndWait(signed.tx_blob) - if (result.result.meta.TransactionResult == "tesSUCCESS") { + if (result.result.meta.TransactionResult == 'tesSUCCESS') { results += '\nAccount setting succeeded.' document.getElementById(resultField).value = results } else { throw `Error sending transaction: ${result}` results += '\nAccount setting failed.' resultField.value = results - } + } client.disconnect() } // End of configureAccount() - + // ******************************************************* // ***************** Create TrustLine ******************** // ******************************************************* - + async function createTrustline() { let net = getNet() const client = new xrpl.Client(net) @@ -64,39 +64,38 @@ async function createTrustline() { await client.connect() results += '\nConnected.' standbyResultField.value = results - + const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) const operational_wallet = xrpl.Wallet.fromSeed(operationalSeedField.value) const currency_code = standbyCurrencyField.value const trustSet_tx = { - "TransactionType": "TrustSet", - "Account": standbyAccountField.value, - "LimitAmount": { - "currency": standbyCurrencyField.value, - "issuer": standbyDestinationField.value, - "value": standbyAmountField.value - } + TransactionType: 'TrustSet', + Account: standbyAccountField.value, + LimitAmount: { + currency: standbyCurrencyField.value, + issuer: standbyDestinationField.value, + value: standbyAmountField.value, + }, } const ts_prepared = await client.autofill(trustSet_tx) const ts_signed = standby_wallet.sign(ts_prepared) results += '\nCreating trust line from operational account to standby account...' standbyResultField.value = results const ts_result = await client.submitAndWait(ts_signed.tx_blob) - if (ts_result.result.meta.TransactionResult == "tesSUCCESS") { - results += '\nTrustline established between account \n' + - standbyDestinationField.value + ' \n and account\n' + standby_wallet.address + '.' + if (ts_result.result.meta.TransactionResult == 'tesSUCCESS') { + results += '\nTrustline established between account \n' + standbyDestinationField.value + ' \n and account\n' + standby_wallet.address + '.' standbyResultField.value = results } else { results += '\nTrustLine failed. See JavaScript console for details.' - document.getElementById('standbyResultField').value = results + document.getElementById('standbyResultField').value = results throw `Error sending transaction: ${ts_result.result.meta.TransactionResult}` } } //End of createTrustline() - + // ******************************************************* // *************** Send Issued Currency ****************** // ******************************************************* - + async function sendCurrency() { let net = getNet() const client = new xrpl.Client(net) @@ -107,29 +106,29 @@ async function sendCurrency() { results += '\nConnected.' standbyResultField.value = results - + const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) const operational_wallet = xrpl.Wallet.fromSeed(operationalSeedField.value) const currency_code = standbyCurrencyField.value const issue_quantity = standbyAmountField.value - + const send_token_tx = { - "TransactionType": "Payment", - "Account": standby_wallet.address, - "DeliverMax": { - "currency": standbyCurrencyField.value, - "value": standbyAmountField.value, - "issuer": standby_wallet.address + TransactionType: 'Payment', + Account: standby_wallet.address, + DeliverMax: { + currency: standbyCurrencyField.value, + value: standbyAmountField.value, + issuer: standby_wallet.address, }, - "Destination": standbyDestinationField.value + Destination: standbyDestinationField.value, } - + const pay_prepared = await client.autofill(send_token_tx) const pay_signed = standby_wallet.sign(pay_prepared) results += `\n\nSending ${issue_quantity} ${currency_code} to ${standbyDestinationField.value} ...` standbyResultField.value = results const pay_result = await client.submitAndWait(pay_signed.tx_blob) - if (pay_result.result.meta.TransactionResult == "tesSUCCESS") { + if (pay_result.result.meta.TransactionResult == 'tesSUCCESS') { results += `Transaction succeeded: https://testnet.xrpl.org/transactions/${pay_signed.hash}` standbyResultField.value = results } else { @@ -137,12 +136,12 @@ async function sendCurrency() { standbyResultField.value = results throw `Error sending transaction: ${pay_result.result.meta.TransactionResult}` } - standbyBalanceField.value = (await client.getXrpBalance(standby_wallet.address)) - operationalBalanceField.value = (await client.getXrpBalance(operational_wallet.address)) + standbyBalanceField.value = await client.getXrpBalance(standby_wallet.address) + operationalBalanceField.value = await client.getXrpBalance(operational_wallet.address) getBalances() client.disconnect() } // end of sendCurrency() - + // ******************************************************* // ****************** Get Balances *********************** // ******************************************************* @@ -152,117 +151,116 @@ async function getBalances() { const client = new xrpl.Client(net) results = 'Connecting to ' + getNet() + '....' standbyResultField.value = results - await client.connect() + await client.connect() results += '\nConnected.' standbyResultField.value = results const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) - const operational_wallet = xrpl.Wallet.fromSeed(operationalSeedField.value) - results= "\nGetting standby account balances...\n" + const operational_wallet = xrpl.Wallet.fromSeed(operationalSeedField.value) + results = '\nGetting standby account balances...\n' const standby_balances = await client.request({ - command: "gateway_balances", + command: 'gateway_balances', account: standby_wallet.address, - ledger_index: "validated", + ledger_index: 'validated', }) results += JSON.stringify(standby_balances.result, null, 2) standbyResultField.value = results - - results = "\nGetting operational account balances...\n" + + results = '\nGetting operational account balances...\n' const operational_balances = await client.request({ - command: "gateway_balances", + command: 'gateway_balances', account: operational_wallet.address, - ledger_index: "validated" + ledger_index: 'validated', }) results += JSON.stringify(operational_balances.result, null, 2) operationalResultField.value = results - operationalBalanceField.value = (await client.getXrpBalance(operational_wallet.address)) - standbyBalanceField.value = (await client.getXrpBalance(standby_wallet.address)) + operationalBalanceField.value = await client.getXrpBalance(operational_wallet.address) + standbyBalanceField.value = await client.getXrpBalance(standby_wallet.address) client.disconnect() } // End of getBalances() - + // ********************************************************************** // ****** Reciprocal Transactions *************************************** // ********************************************************************** - + // ******************************************************* // ************ Create Operational TrustLine ************* // ******************************************************* - + async function oPcreateTrustline() { let net = getNet() const client = new xrpl.Client(net) results = 'Connecting to ' + getNet() + '....' operationalResultField.value = results - + await client.connect() results += '\nConnected.' operationalResultField.value = results - + const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) const operational_wallet = xrpl.Wallet.fromSeed(operationalSeedField.value) const trustSet_tx = { - "TransactionType": "TrustSet", - "Account": operationalAccountField.value, - "LimitAmount": { - "currency": operationalCurrencyField.value, - "issuer": operationalDestinationField.value, - "value": operationalAmountField.value - } + TransactionType: 'TrustSet', + Account: operationalAccountField.value, + LimitAmount: { + currency: operationalCurrencyField.value, + issuer: operationalDestinationField.value, + value: operationalAmountField.value, + }, } const ts_prepared = await client.autofill(trustSet_tx) const ts_signed = operational_wallet.sign(ts_prepared) - results += '\nCreating trust line from operational account to ' + - operationalDestinationField.value + ' account...' + results += '\nCreating trust line from operational account to ' + operationalDestinationField.value + ' account...' operationalResultField.value = results const ts_result = await client.submitAndWait(ts_signed.tx_blob) - if (ts_result.result.meta.TransactionResult == "tesSUCCESS") { - results += '\nTrustline established between account \n' + operational_wallet.address + - ' \n and account\n' + operationalDestinationField.value + '.' + if (ts_result.result.meta.TransactionResult == 'tesSUCCESS') { + results += + '\nTrustline established between account \n' + operational_wallet.address + ' \n and account\n' + operationalDestinationField.value + '.' operationalResultField.value = results } else { results += '\nTrustLine failed. See JavaScript console for details.' - operationalResultField.value = results + operationalResultField.value = results throw `Error sending transaction: ${ts_result.result.meta.TransactionResult}` } } //End of oPcreateTrustline - + // ******************************************************* // ************* Operational Send Issued Currency ******** // ******************************************************* - + async function oPsendCurrency() { let net = getNet() const client = new xrpl.Client(net) results = 'Connecting to ' + getNet() + '....' operationalResultField.value = results - - await client.connect() + + await client.connect() results += '\nConnected.' operationalResultField.value = results - + const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) const operational_wallet = xrpl.Wallet.fromSeed(operationalSeedField.value) const currency_code = operationalCurrencyField.value const issue_quantity = operationalAmountField.value - + const send_token_tx = { - "TransactionType": "Payment", - "Account": operational_wallet.address, - "DeliverMax": { - "currency": currency_code, - "value": issue_quantity, - "issuer": operational_wallet.address + TransactionType: 'Payment', + Account: operational_wallet.address, + DeliverMax: { + currency: currency_code, + value: issue_quantity, + issuer: operational_wallet.address, }, - "Destination": operationalDestinationField.value + Destination: operationalDestinationField.value, } - + const pay_prepared = await client.autofill(send_token_tx) const pay_signed = operational_wallet.sign(pay_prepared) results += `\n\nSending ${issue_quantity} ${currency_code} to ${operationalDestinationField.value} ...` operationalResultField.value = results const pay_result = await client.submitAndWait(pay_signed.tx_blob) - if (pay_result.result.meta.TransactionResult == "tesSUCCESS") { + if (pay_result.result.meta.TransactionResult == 'tesSUCCESS') { results += `Transaction succeeded: https://testnet.xrpl.org/transactions/${pay_signed.hash}` operationalResultField.value = results } else { @@ -270,9 +268,8 @@ async function oPsendCurrency() { operationalResultField.value = results throw `Error sending transaction: ${pay_result.result.meta.TransactionResult}` } - standbyBalanceField.value = (await client.getXrpBalance(standby_wallet.address)) - operationalBalanceField.value = (await client.getXrpBalance(operational_wallet.address)) + standbyBalanceField.value = await client.getXrpBalance(standby_wallet.address) + operationalBalanceField.value = await client.getXrpBalance(operational_wallet.address) getBalances() client.disconnect() } // end of oPsendCurrency() - \ No newline at end of file diff --git a/_code-samples/quickstart/js/ripplex3-mint-nfts.js b/_code-samples/quickstart/js/ripplex3-mint-nfts.js index 0d5ae107c8..6062337491 100644 --- a/_code-samples/quickstart/js/ripplex3-mint-nfts.js +++ b/_code-samples/quickstart/js/ripplex3-mint-nfts.js @@ -1,7 +1,7 @@ // ******************************************************* // ********************** Mint Token ********************* // ******************************************************* - + async function mintToken() { results = 'Connecting to ' + getNet() + '....' standbyResultField.value = results @@ -11,38 +11,38 @@ async function mintToken() { await client.connect() results += '\nConnected. Minting NFT.' standbyResultField.value = results - - // Note that you must convert the token URL to a hexadecimal + + // Note that you must convert the token URL to a hexadecimal // value for this transaction. // ------------------------------------------------------------------------ const transactionJson = { - "TransactionType": "NFTokenMint", - "Account": standby_wallet.classicAddress, - "URI": xrpl.convertStringToHex(standbyTokenUrlField.value), - "Flags": parseInt(standbyFlagsField.value), - "TransferFee": parseInt(standbyTransferFeeField.value), - "NFTokenTaxon": 0 //Required, but if you have no use for it, set to zero. + TransactionType: 'NFTokenMint', + Account: standby_wallet.classicAddress, + URI: xrpl.convertStringToHex(standbyTokenUrlField.value), + Flags: parseInt(standbyFlagsField.value), + TransferFee: parseInt(standbyTransferFeeField.value), + NFTokenTaxon: 0, //Required, but if you have no use for it, set to zero. } - // ----------------------------------------------------- Submit signed blob - const tx = await client.submitAndWait(transactionJson, { wallet: standby_wallet} ) + // ----------------------------------------------------- Submit signed blob + const tx = await client.submitAndWait(transactionJson, { wallet: standby_wallet }) const nfts = await client.request({ - "method": "account_nfts", - "account": standby_wallet.classicAddress + method: 'account_nfts', + account: standby_wallet.classicAddress, }) // ------------------------------------------------------- Report results - results += '\n\nTransaction result: '+ tx.result.meta.TransactionResult + results += '\n\nTransaction result: ' + tx.result.meta.TransactionResult results += '\n\nnfts: ' + JSON.stringify(nfts, null, 2) - standbyBalanceField.value = (await client.getXrpBalance(standby_wallet.address)) - standbyResultField.value = results + standbyBalanceField.value = await client.getXrpBalance(standby_wallet.address) + standbyResultField.value = results client.disconnect() } //End of mintToken() // ******************************************************* // ******************* Get Tokens ************************ // ******************************************************* - + async function getTokens() { const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) let net = getNet() @@ -53,18 +53,18 @@ async function getTokens() { results += '\nConnected. Getting NFTs...' standbyResultField.value = results const nfts = await client.request({ - method: "account_nfts", - account: standby_wallet.classicAddress + method: 'account_nfts', + account: standby_wallet.classicAddress, }) - results += '\nNFTs:\n ' + JSON.stringify(nfts,null,2) + results += '\nNFTs:\n ' + JSON.stringify(nfts, null, 2) standbyResultField.value = results client.disconnect() } //End of getTokens() - + // ******************************************************* // ********************* Burn Token ********************** // ******************************************************* - + async function burnToken() { const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) let net = getNet() @@ -77,35 +77,34 @@ async function burnToken() { // ------------------------------------------------------- Prepare transaction const transactionBlob = { - "TransactionType": "NFTokenBurn", - "Account": standby_wallet.classicAddress, - "NFTokenID": standbyTokenIdField.value + TransactionType: 'NFTokenBurn', + Account: standby_wallet.classicAddress, + NFTokenID: standbyTokenIdField.value, } //---------------------------------- Submit transaction and wait for the results - const tx = await client.submitAndWait(transactionBlob,{wallet: standby_wallet}) + const tx = await client.submitAndWait(transactionBlob, { wallet: standby_wallet }) const nfts = await client.request({ - method: "account_nfts", - account: standby_wallet.classicAddress + method: 'account_nfts', + account: standby_wallet.classicAddress, }) - results += '\nTransaction result: '+ tx.result.meta.TransactionResult - results += '\nBalance changes: ' + - JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) + results += '\nTransaction result: ' + tx.result.meta.TransactionResult + results += '\nBalance changes: ' + JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) standbyResultField.value = results - standbyBalanceField.value = (await client.getXrpBalance(standby_wallet.address)) - results += '\nNFTs: \n' + JSON.stringify(nfts,null,2) + standbyBalanceField.value = await client.getXrpBalance(standby_wallet.address) + results += '\nNFTs: \n' + JSON.stringify(nfts, null, 2) standbyResultField.value = results client.disconnect() -}// End of burnToken() +} // End of burnToken() // ********************************************************************** // ****** Reciprocal Transactions *************************************** // ********************************************************************** - + // ******************************************************* // ************** Operational Mint Token ***************** // ******************************************************* - + async function oPmintToken() { results = 'Connecting to ' + getNet() + '....' operationalResultField.value = results @@ -116,33 +115,33 @@ async function oPmintToken() { results += '\nConnected. Minting NFT.' operationalResultField.value = results - // Note that you must convert the token URL to a hexadecimal + // Note that you must convert the token URL to a hexadecimal // value for this transaction. // ------------------------------------------------------------------------ const transactionBlob = { - "TransactionType": 'NFTokenMint', - "Account": operational_wallet.classicAddress, - "URI": xrpl.convertStringToHex(operationalTokenUrlField.value), - "Flags": parseInt(operationalFlagsField.value), - "TransferFee": parseInt(operationalTransferFeeField.value), - "NFTokenTaxon": 0 //Required, but if you have no use for it, set to zero. + TransactionType: 'NFTokenMint', + Account: operational_wallet.classicAddress, + URI: xrpl.convertStringToHex(operationalTokenUrlField.value), + Flags: parseInt(operationalFlagsField.value), + TransferFee: parseInt(operationalTransferFeeField.value), + NFTokenTaxon: 0, //Required, but if you have no use for it, set to zero. } - - // ----------------------------------------------------- Submit signed blob - const tx = await client.submitAndWait(transactionBlob, { wallet: operational_wallet} ) + + // ----------------------------------------------------- Submit signed blob + const tx = await client.submitAndWait(transactionBlob, { wallet: operational_wallet }) const nfts = await client.request({ - method: "account_nfts", - account: operational_wallet.classicAddress + method: 'account_nfts', + account: operational_wallet.classicAddress, }) - + // ------------------------------------------------------- Report results - results += '\n\nTransaction result: '+ tx.result.meta.TransactionResult + results += '\n\nTransaction result: ' + tx.result.meta.TransactionResult results += '\n\nnfts: ' + JSON.stringify(nfts, null, 2) - operationalBalanceField.value = (await client.getXrpBalance(operational_wallet.address)) + operationalBalanceField.value = await client.getXrpBalance(operational_wallet.address) operationalResultField.value = results client.disconnect() } //End of oPmintToken - + // ******************************************************* // ************** Operational Get Tokens ***************** // ******************************************************* @@ -157,18 +156,18 @@ async function oPgetTokens() { results += '\nConnected. Getting NFTs...' operationalResultField.value = results const nfts = await client.request({ - method: "account_nfts", - account: operational_wallet.classicAddress + method: 'account_nfts', + account: operational_wallet.classicAddress, }) - results += '\nNFTs:\n ' + JSON.stringify(nfts,null,2) + results += '\nNFTs:\n ' + JSON.stringify(nfts, null, 2) operationalResultField.value = results client.disconnect() } //End of oPgetTokens - + // ******************************************************* // ************* Operational Burn Token ****************** // ******************************************************* - + async function oPburnToken() { const operational_wallet = xrpl.Wallet.fromSeed(operationalSeedField.value) let net = getNet() @@ -178,28 +177,27 @@ async function oPburnToken() { await client.connect() results += '\nConnected. Burning NFT...' operationalResultField.value = results - + // ------------------------------------------------------- Prepare transaction const transactionBlob = { - "TransactionType": "NFTokenBurn", - "Account": operational_wallet.classicAddress, - "NFTokenID": operationalTokenIdField.value + TransactionType: 'NFTokenBurn', + Account: operational_wallet.classicAddress, + NFTokenID: operationalTokenIdField.value, } - + //-------------------------------------------------------- Submit signed blob - const tx = await client.submitAndWait(transactionBlob,{wallet: operational_wallet}) + const tx = await client.submitAndWait(transactionBlob, { wallet: operational_wallet }) const nfts = await client.request({ - method: "account_nfts", - account: operational_wallet.classicAddress + method: 'account_nfts', + account: operational_wallet.classicAddress, }) - results += '\nTransaction result: '+ tx.result.meta.TransactionResult - results += '\nBalance changes: ' + - JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) + results += '\nTransaction result: ' + tx.result.meta.TransactionResult + results += '\nBalance changes: ' + JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) operationalResultField.value = results - operationalBalanceField.value = (await client.getXrpBalance(operational_wallet.address)) - operationalBalanceField.value = (await client.getXrpBalance(operational_wallet.address)) - results += '\nNFTs: \n' + JSON.stringify(nfts,null,2) + operationalBalanceField.value = await client.getXrpBalance(operational_wallet.address) + operationalBalanceField.value = await client.getXrpBalance(operational_wallet.address) + results += '\nNFTs: \n' + JSON.stringify(nfts, null, 2) operationalResultField.value = results client.disconnect() } -// End of oPburnToken() \ No newline at end of file +// End of oPburnToken() diff --git a/_code-samples/quickstart/js/ripplex3a-create-offers.js b/_code-samples/quickstart/js/ripplex3a-create-offers.js index 5ced05f041..2f1990259d 100644 --- a/_code-samples/quickstart/js/ripplex3a-create-offers.js +++ b/_code-samples/quickstart/js/ripplex3a-create-offers.js @@ -2,60 +2,72 @@ *********** Create Offer ********** **********************************/ - async function createOffer() { +async function createOffer() { let takerGets = '' let takerPays = '' let net = getNet() let results = 'Connecting to ' + net + '....\n' const client = new xrpl.Client(net) await client.connect() - - results += "Connected. Getting wallets.\n" + + results += 'Connected. Getting wallets.\n' standbyResultField.value = results const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) const operational_wallet = xrpl.Wallet.fromSeed(operationalSeedField.value) - results += standbyNameField.value + " account address: " + standby_wallet.address + "\n" + results += standbyNameField.value + ' account address: ' + standby_wallet.address + '\n' standbyResultField.value = results - if (standbyTakerGetsCurrencyField.value == 'XRP') { takerGets = standbyTakerGetsValueField.value } else { - takerGetsString = '{"currency": "' + standbyTakerGetsCurrencyField.value +'",\n' + - '"issuer": "' + standbyTakerGetsIssuerField.value + '",\n' + - '"value": "' + standbyTakerGetsValueField.value + '"}' + takerGetsString = + '{"currency": "' + + standbyTakerGetsCurrencyField.value + + '",\n' + + '"issuer": "' + + standbyTakerGetsIssuerField.value + + '",\n' + + '"value": "' + + standbyTakerGetsValueField.value + + '"}' takerGets = JSON.parse(takerGetsString) } if (standbyTakerPaysCurrencyField.value == 'XRP') { takerPays = standbyTakerPaysValueField.value } else { - takerPaysString = '{"currency": "' + standbyTakerPaysCurrencyField.value + '",\n' + - '"issuer": "' + standbyTakerPaysIssuerField.value + '",\n' + - '"value": "' + standbyTakerPaysValueField.value + '"}' + takerPaysString = + '{"currency": "' + + standbyTakerPaysCurrencyField.value + + '",\n' + + '"issuer": "' + + standbyTakerPaysIssuerField.value + + '",\n' + + '"value": "' + + standbyTakerPaysValueField.value + + '"}' takerPays = JSON.parse(takerPaysString) } - - // -------------------------------------------------------- Prepare transaction + + // -------------------------------------------------------- Prepare transaction const prepared = await client.autofill({ - "TransactionType": "OfferCreate", - "Account": standby_wallet.address, - "TakerGets": takerGets, - "TakerPays": takerPays - }) + TransactionType: 'OfferCreate', + Account: standby_wallet.address, + TakerGets: takerGets, + TakerPays: takerPays, + }) // ------------------------------------------------- Sign prepared instructions const signed = standby_wallet.sign(prepared) - results += "\nSubmitting transaction...." + results += '\nSubmitting transaction....' // -------------------------------------------------------- Submit signed blob const tx = await client.submitAndWait(signed.tx_blob) - results += "\nBalance changes: " + - JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) + results += '\nBalance changes: ' + JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) standbyResultField.value = results - standbyBalanceField.value = (await client.getXrpBalance(standby_wallet.address)) - operationalBalanceField.value = (await client.getXrpBalance(operational_wallet.address)) - getOffers() - client.disconnect() + standbyBalanceField.value = await client.getXrpBalance(standby_wallet.address) + operationalBalanceField.value = await client.getXrpBalance(operational_wallet.address) + getOffers() + client.disconnect() } // End of createOffer() /*********************************** @@ -67,53 +79,53 @@ async function getOffers() { let results = 'Connecting to ' + net + '....\n' const client = new xrpl.Client(net) await client.connect() - results += "Connected.\n" + results += 'Connected.\n' const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) - results += standbyNameField.value + " account: " + standby_wallet.address -// -------------------------------------------------------- Prepare request + results += standbyNameField.value + ' account: ' + standby_wallet.address + // -------------------------------------------------------- Prepare request results += '\n\n*** Offers ***\n' let offers try { const offers = await client.request({ - method: "account_offers", + method: 'account_offers', account: standby_wallet.address, - ledger_index: "validated" + ledger_index: 'validated', }) - results += JSON.stringify(offers,null,2) + results += JSON.stringify(offers, null, 2) } catch (err) { - results += err + results += err } standbyResultField.value = results client.disconnect() -}// End of getOffers() +} // End of getOffers() /*********************************** -*********** Cancel Offer ********** -**********************************/ + *********** Cancel Offer ********** + **********************************/ - async function cancelOffer() { - let results = "Connecting to the selected ledger.\n" - standbyResultField.value = results - let net = getNet() - results += 'Connecting to ' + net + '....\n' - const client = new xrpl.Client(net) - await client.connect() - - results += "Connected.\n" - standbyResultField.value = results - const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) - const operational_wallet = xrpl.Wallet.fromSeed(operationalSeedField.value) - results += "standby_wallet.address: = " + standby_wallet.address - standbyResultField.value = results +async function cancelOffer() { + let results = 'Connecting to the selected ledger.\n' + standbyResultField.value = results + let net = getNet() + results += 'Connecting to ' + net + '....\n' + const client = new xrpl.Client(net) + await client.connect() + + results += 'Connected.\n' + standbyResultField.value = results + const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) + const operational_wallet = xrpl.Wallet.fromSeed(operationalSeedField.value) + results += 'standby_wallet.address: = ' + standby_wallet.address + standbyResultField.value = results // -------------------------------------------------------- Prepare transaction - /* OfferSequence is the Seq value when you getOffers. */ + /* OfferSequence is the Seq value when you getOffers. */ const prepared = await client.autofill({ - "TransactionType": "OfferCancel", - "Account": standby_wallet.address, - "OfferSequence": parseInt(standbyOfferSequenceField.value) + TransactionType: 'OfferCancel', + Account: standby_wallet.address, + OfferSequence: parseInt(standbyOfferSequenceField.value), }) // ------------------------------------------------- Sign prepared instructions @@ -121,97 +133,108 @@ async function getOffers() { // -------------------------------------------------------- Submit signed blob const tx = await client.submitAndWait(signed.tx_blob) - - results += "\nBalance changes: \n" + - JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) + + results += '\nBalance changes: \n' + JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) standbyResultField.value = results - standbyBalanceField.value = (await client.getXrpBalance(standby_wallet.address)) - client.disconnect() - } // End of cancelOffer() + standbyBalanceField.value = await client.getXrpBalance(standby_wallet.address) + client.disconnect() +} // End of cancelOffer() - /********************************************* - ************* Reciprocal Functions ********** - ********************************************/ +/********************************************* + ************* Reciprocal Functions ********** + ********************************************/ - /*********************************** - ********* OP Create Offer ********* - **********************************/ +/*********************************** + ********* OP Create Offer ********* + **********************************/ - async function oPcreateOffer() { - let takerGets = '' - let takerPays = '' +async function oPcreateOffer() { + let takerGets = '' + let takerPays = '' - operationalResultField.value = '' - let net = getNet() - let results = 'Connecting to ' + net + '....\n' - const client = new xrpl.Client(net) - await client.connect() - - results += "Connected. Getting wallets.\n" - operationalResultField.value = results - const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) - const operational_wallet = xrpl.Wallet.fromSeed(operationalSeedField.value) - results += operationalNameField.value + " account address: " + operational_wallet.address + "\n" - operationalResultField.value = results + operationalResultField.value = '' + let net = getNet() + let results = 'Connecting to ' + net + '....\n' + const client = new xrpl.Client(net) + await client.connect() + results += 'Connected. Getting wallets.\n' + operationalResultField.value = results + const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) + const operational_wallet = xrpl.Wallet.fromSeed(operationalSeedField.value) + results += operationalNameField.value + ' account address: ' + operational_wallet.address + '\n' + operationalResultField.value = results - if (operationalTakerGetsCurrencyField.value == 'XRP') { - takerGets = operationalTakerGetsValueField.value - } else { - takerGetsString = '{"currency": "' + operationalTakerGetsCurrencyField.value +'",\n' + - '"issuer": "' + operationalTakerGetsIssuerField.value + '",\n' + - '"value": "' + operationalTakerGetsValueField.value + '"}' - takerGets = JSON.parse(takerGetsString) - } + if (operationalTakerGetsCurrencyField.value == 'XRP') { + takerGets = operationalTakerGetsValueField.value + } else { + takerGetsString = + '{"currency": "' + + operationalTakerGetsCurrencyField.value + + '",\n' + + '"issuer": "' + + operationalTakerGetsIssuerField.value + + '",\n' + + '"value": "' + + operationalTakerGetsValueField.value + + '"}' + takerGets = JSON.parse(takerGetsString) + } - if (operationalTakerPaysCurrencyField.value == 'XRP') { - takerPays = operationalTakerPaysValueField.value - } else { - takerPaysString = '{"currency": "' + operationalTakerPaysCurrencyField.value + '",\n' + - '"issuer": "' + operationalTakerPaysIssuerField.value + '",\n' + - '"value": "' + operationalTakerPaysValueField.value + '"}' - takerPays = JSON.parse(takerPaysString) - } - - // -------------------------------------------------------- Prepare transaction - const prepared = await client.autofill({ - "TransactionType": "OfferCreate", - "Account": operational_wallet.address, - "TakerGets": takerGets, - "TakerPays": takerPays - }) - // ------------------------------------------------- Sign prepared instructions - const signed = operational_wallet.sign(prepared) - results += "\nSubmitting transaction...." - // -------------------------------------------------------- Submit signed blob - const tx = await client.submitAndWait(signed.tx_blob) - - results += "\nBalance changes: " + - JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) - operationalResultField.value = results + if (operationalTakerPaysCurrencyField.value == 'XRP') { + takerPays = operationalTakerPaysValueField.value + } else { + takerPaysString = + '{"currency": "' + + operationalTakerPaysCurrencyField.value + + '",\n' + + '"issuer": "' + + operationalTakerPaysIssuerField.value + + '",\n' + + '"value": "' + + operationalTakerPaysValueField.value + + '"}' + takerPays = JSON.parse(takerPaysString) + } - standbyBalanceField.value = (await client.getXrpBalance(standby_wallet.address)) - operationalBalanceField.value = (await client.getXrpBalance(operational_wallet.address)) - getOffers() - client.disconnect() - } // End of oPcreateOffer() + // -------------------------------------------------------- Prepare transaction + const prepared = await client.autofill({ + TransactionType: 'OfferCreate', + Account: operational_wallet.address, + TakerGets: takerGets, + TakerPays: takerPays, + }) + // ------------------------------------------------- Sign prepared instructions + const signed = operational_wallet.sign(prepared) + results += '\nSubmitting transaction....' + // -------------------------------------------------------- Submit signed blob + const tx = await client.submitAndWait(signed.tx_blob) - /*********************************** - ********** OP Get Offers *********** - ***********************************/ + results += '\nBalance changes: ' + JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) + operationalResultField.value = results + + standbyBalanceField.value = await client.getXrpBalance(standby_wallet.address) + operationalBalanceField.value = await client.getXrpBalance(operational_wallet.address) + getOffers() + client.disconnect() +} // End of oPcreateOffer() + +/*********************************** + ********** OP Get Offers *********** + ***********************************/ async function oPgetOffers() { - let results = "Connecting to the selected ledger.\n" + let results = 'Connecting to the selected ledger.\n' operationalResultField.value = results let net = getNet() results = 'Connecting to ' + net + '....\n' const client = new xrpl.Client(net) await client.connect() - - results += "Connected.\n" + + results += 'Connected.\n' const operational_wallet = xrpl.Wallet.fromSeed(operationalSeedField.value) - results += operationalNameField.value + " account: " + operational_wallet.address - operationalResultField.value = results + results += operationalNameField.value + ' account: ' + operational_wallet.address + operationalResultField.value = results // -------------------------------------------------------- Prepare request @@ -219,52 +242,51 @@ async function oPgetOffers() { let offers try { const offers = await client.request({ - method: "account_offers", + method: 'account_offers', account: operational_wallet.address, - ledger_index: "validated" + ledger_index: 'validated', }) - results += JSON.stringify(offers,null,2) + results += JSON.stringify(offers, null, 2) } catch (err) { - results += err + results += err } operationalResultField.value = results client.disconnect() -}// End of oPgetOffers() +} // End of oPgetOffers() /************************************ ********** Op Cancel Offer ********* ***********************************/ async function oPcancelOffer() { - let net = getNet() - let results = 'Connecting to ' + net + '....\n' - const client = new xrpl.Client(net) - await client.connect() - - results += "Connected.\n" - const operational_wallet = xrpl.Wallet.fromSeed(operationalSeedField.value) - results += "wallet.address: = " + operational_wallet.address - operationalResultField.value = results - - // -------------------------------------------------------- Prepare transaction - - /* OfferSequence is the Seq value when you getOffers. */ - const prepared = await client.autofill({ - "TransactionType": "OfferCancel", - "Account": operational_wallet.address, - "OfferSequence": parseInt(operationalOfferSequenceField.value) -}) - -// ------------------------------------------------- Sign prepared instructions - const signed = operational_wallet.sign(prepared) - -// -------------------------------------------------------- Submit signed blob - const tx = await client.submitAndWait(signed.tx_blob) - - results += "\nBalance changes: \n" + tx.result + "\n" + - JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) + let net = getNet() + let results = 'Connecting to ' + net + '....\n' + const client = new xrpl.Client(net) + await client.connect() + + results += 'Connected.\n' + const operational_wallet = xrpl.Wallet.fromSeed(operationalSeedField.value) + results += 'wallet.address: = ' + operational_wallet.address operationalResultField.value = results - operationalBalanceField.value = (await client.getXrpBalance(operational_wallet.address)) - client.disconnect() -} // End of oPcancelOffer() \ No newline at end of file + // -------------------------------------------------------- Prepare transaction + + /* OfferSequence is the Seq value when you getOffers. */ + const prepared = await client.autofill({ + TransactionType: 'OfferCancel', + Account: operational_wallet.address, + OfferSequence: parseInt(operationalOfferSequenceField.value), + }) + + // ------------------------------------------------- Sign prepared instructions + const signed = operational_wallet.sign(prepared) + + // -------------------------------------------------------- Submit signed blob + const tx = await client.submitAndWait(signed.tx_blob) + + results += '\nBalance changes: \n' + tx.result + '\n' + JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) + operationalResultField.value = results + + operationalBalanceField.value = await client.getXrpBalance(operational_wallet.address) + client.disconnect() +} // End of oPcancelOffer() diff --git a/_code-samples/quickstart/js/ripplex3b-NameFieldSupport.js b/_code-samples/quickstart/js/ripplex3b-NameFieldSupport.js index 89e613ce63..9591666919 100644 --- a/_code-samples/quickstart/js/ripplex3b-NameFieldSupport.js +++ b/_code-samples/quickstart/js/ripplex3b-NameFieldSupport.js @@ -1,14 +1,14 @@ // ****************************************************** // ************* Get the Preferred Network ************** -// ****************************************************** +// ****************************************************** function getNet() { let net - if (document.getElementById("tn").checked) net = "wss://s.altnet.rippletest.net:51233/" - if (document.getElementById("dn").checked) net = "wss://s.devnet.rippletest.net:51233/" + if (document.getElementById('tn').checked) net = 'wss://s.altnet.rippletest.net:51233/' + if (document.getElementById('dn').checked) net = 'wss://s.devnet.rippletest.net:51233/' return net } // End of getNet() - + // ******************************************************* // ************* Get Account ***************************** // ******************************************************* @@ -17,9 +17,9 @@ async function getAccount(type) { let net = getNet() const client = new xrpl.Client(net) results = 'Connecting to ' + net + '....' - -// This uses the default faucet for Testnet/Devnet -// let faucetHost = 'batch.faucet.nerdnest.xyz' + + // This uses the default faucet for Testnet/Devnet + // let faucetHost = 'batch.faucet.nerdnest.xyz' let faucetHost = null if (type == 'standby') { @@ -28,7 +28,7 @@ async function getAccount(type) { operationalResultField.value = results } await client.connect() - + results += '\nConnected, funding wallet.' if (type == 'standby') { standbyResultField.value = results @@ -36,41 +36,39 @@ async function getAccount(type) { operationalResultField.value = results } -// -----------------------------------Create and fund a test account wallet - const my_wallet = (await client.fundWallet(null, { faucetHost})).wallet - + // -----------------------------------Create and fund a test account wallet + const my_wallet = (await client.fundWallet(null, { faucetHost })).wallet + results += '\nGot a wallet.' if (type == 'standby') { standbyResultField.value = results } else { operationalResultField.value = results - } - -// ------------------------------------------------------Get the current balance. - // const my_balance = (await client.getXrpBalance(my_wallet.address)) - + } + + // ------------------------------------------------------Get the current balance. + // const my_balance = (await client.getXrpBalance(my_wallet.address)) + if (type == 'standby') { standbyAccountField.value = my_wallet.address - standbyBalanceField.value = (await client.getXrpBalance(my_wallet.address)) + standbyBalanceField.value = await client.getXrpBalance(my_wallet.address) standbySeedField.value = my_wallet.seed results += '\nAccount created named ' + standbyNameField.value + '.' standbyResultField.value = results } else { operationalAccountField.value = my_wallet.address operationalSeedField.value = my_wallet.seed - operationalBalanceField.value = (await client.getXrpBalance(my_wallet.address)) - results += '\nAccount created named ' + operationalNameField.value + '.' + operationalBalanceField.value = await client.getXrpBalance(my_wallet.address) + results += '\nAccount created named ' + operationalNameField.value + '.' operationalResultField.value = results } -// --------------- Capture the seeds for both accounts for ease of reload. - seeds.value = standbySeedField.value + "." + standbyNameField.value + '\n' + - operationalSeedField.value + "." + operationalNameField.value + // --------------- Capture the seeds for both accounts for ease of reload. + seeds.value = standbySeedField.value + '.' + standbyNameField.value + '\n' + operationalSeedField.value + '.' + operationalNameField.value client.disconnect() } // End of getAccount() - // ******************************************************* -// ********** Get Accounts from Seeds ******************** +// ********** Get Accounts from Seeds ******************** // ******************************************************* async function getAccountsFromSeeds() { @@ -95,113 +93,108 @@ async function getAccountsFromSeeds() { const standby_wallet = xrpl.Wallet.fromSeed(first_seed) const operational_wallet = xrpl.Wallet.fromSeed(second_seed) - -// ----------------------Populate the fields for Standby and Operational accounts. + + // ----------------------Populate the fields for Standby and Operational accounts. standbyAccountField.value = standby_wallet.address standbyNameField.value = first_name standbySeedField.value = first_seed - standbyBalanceField.value = (await client.getXrpBalance(standby_wallet.address)) - + standbyBalanceField.value = await client.getXrpBalance(standby_wallet.address) + operationalAccountField.value = operational_wallet.address operationalNameField.value = second_name operationalSeedField.value = second_seed - operationalBalanceField.value = (await client.getXrpBalance(operational_wallet.address)) + operationalBalanceField.value = await client.getXrpBalance(operational_wallet.address) client.disconnect() - } // End of getAccountsFromSeeds() // ******************************************************* // ******************** Send XRP ************************* // ******************************************************* -async function sendXRP() { - results = "Connecting to the selected ledger.\n" +async function sendXRP() { + results = 'Connecting to the selected ledger.\n' standbyResultField.value = results let net = getNet() results = 'Connecting to ' + getNet() + '....' const client = new xrpl.Client(net) await client.connect() - - results += "\nConnected. Sending XRP.\n" + + results += '\nConnected. Sending XRP.\n' standbyResultField.value = results - + const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) const operational_wallet = xrpl.Wallet.fromSeed(operationalSeedField.value) const sendAmount = standbyAmountField.value - - results += "\nstandby_wallet.address: = " + standby_wallet.address - standbyResultField.value = results - -// -------------------------------------------------------- Prepare transaction - const prepared = await client.autofill({ - "TransactionType": "Payment", - "Account": standby_wallet.address, - "DeliverMax": xrpl.xrpToDrops(sendAmount), - "Destination": standbyDestinationField.value - }) - -// ------------------------------------------------- Sign prepared instructions - const signed = standby_wallet.sign(prepared) - -// -------------------------------------------------------- Submit signed blob - const tx = await client.submitAndWait(signed.tx_blob) - - results += "\nBalance changes: " + - JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) + + results += '\nstandby_wallet.address: = ' + standby_wallet.address standbyResultField.value = results - standbyBalanceField.value = (await client.getXrpBalance(standby_wallet.address)) - operationalBalanceField.value = (await client.getXrpBalance(operational_wallet.address)) - client.disconnect() + // -------------------------------------------------------- Prepare transaction + const prepared = await client.autofill({ + TransactionType: 'Payment', + Account: standby_wallet.address, + DeliverMax: xrpl.xrpToDrops(sendAmount), + Destination: standbyDestinationField.value, + }) + + // ------------------------------------------------- Sign prepared instructions + const signed = standby_wallet.sign(prepared) + + // -------------------------------------------------------- Submit signed blob + const tx = await client.submitAndWait(signed.tx_blob) + + results += '\nBalance changes: ' + JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) + standbyResultField.value = results + + standbyBalanceField.value = await client.getXrpBalance(standby_wallet.address) + operationalBalanceField.value = await client.getXrpBalance(operational_wallet.address) + client.disconnect() } // End of sendXRP() - + // ********************************************************************** // ****** Reciprocal Transactions *************************************** // ********************************************************************** - + // ******************************************************* // ********* Send XRP from Operational account *********** // ******************************************************* - -async function oPsendXRP() { - results = "Connecting to the selected ledger.\n" +async function oPsendXRP() { + results = 'Connecting to the selected ledger.\n' operationalResultField.value = results let net = getNet() results = 'Connecting to ' + getNet() + '....' const client = new xrpl.Client(net) await client.connect() - - results += "\nConnected. Sending XRP.\n" + + results += '\nConnected. Sending XRP.\n' operationalResultField.value = results - + const operational_wallet = xrpl.Wallet.fromSeed(operationalSeedField.value) const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) const sendAmount = operationalAmountField.value - - results += "\noperational_wallet.address: = " + operational_wallet.address + + results += '\noperational_wallet.address: = ' + operational_wallet.address operationalResultField.value = results - -// ---------------------------------------------------------- Prepare transaction + + // ---------------------------------------------------------- Prepare transaction const prepared = await client.autofill({ - "TransactionType": "Payment", - "Account": operational_wallet.address, - "DeliverMax": xrpl.xrpToDrops(sendAmount), - "Destination": operationalDestinationField.value + TransactionType: 'Payment', + Account: operational_wallet.address, + DeliverMax: xrpl.xrpToDrops(sendAmount), + Destination: operationalDestinationField.value, }) -// ---------------------------------------------------- Sign prepared instructions + // ---------------------------------------------------- Sign prepared instructions const signed = operational_wallet.sign(prepared) -// ------------------------------------------------------------ Submit signed blob + // ------------------------------------------------------------ Submit signed blob const tx = await client.submitAndWait(signed.tx_blob) - - results += "\nBalance changes: " + - JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) + + results += '\nBalance changes: ' + JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) operationalResultField.value = results - standbyBalanceField.value = (await client.getXrpBalance(standby_wallet.address)) - operationalBalanceField.value = (await client.getXrpBalance(operational_wallet.address)) - + standbyBalanceField.value = await client.getXrpBalance(standby_wallet.address) + operationalBalanceField.value = await client.getXrpBalance(operational_wallet.address) + client.disconnect() - -} // End of oPsendXRP() \ No newline at end of file +} // End of oPsendXRP() diff --git a/_code-samples/quickstart/js/ripplex4-transfer-nfts.js b/_code-samples/quickstart/js/ripplex4-transfer-nfts.js index 3392a86aad..18545fd49f 100644 --- a/_code-samples/quickstart/js/ripplex4-transfer-nfts.js +++ b/_code-samples/quickstart/js/ripplex4-transfer-nfts.js @@ -1,7 +1,7 @@ // ******************************************************* // ****************** Create Sell Offer ****************** // ******************************************************* - + async function createSellOffer() { const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) const operational_wallet = xrpl.Wallet.fromSeed(operationalSeedField.value) @@ -12,10 +12,10 @@ async function createSellOffer() { await client.connect() results += '\nConnected. Creating sell offer...' standbyResultField.value = results - + //------------------------------------- Prepare Expiration Date var expirationDate = null - if (standbyExpirationField.value !="") { + if (standbyExpirationField.value != '') { var days = standbyExpirationField.value let d = new Date() d.setDate(d.getDate() + parseInt(days)) @@ -23,62 +23,61 @@ async function createSellOffer() { } // Prepare transaction ------------------------------------------------------- let transactionBlob = { - "TransactionType": "NFTokenCreateOffer", - "Account": standby_wallet.classicAddress, - "NFTokenID": standbyTokenIdField.value, - "Amount": standbyAmountField.value, - "Flags": parseInt(standbyFlagsField.value), + TransactionType: 'NFTokenCreateOffer', + Account: standby_wallet.classicAddress, + NFTokenID: standbyTokenIdField.value, + Amount: standbyAmountField.value, + Flags: parseInt(standbyFlagsField.value), } if (expirationDate != null) { transactionBlob.Expiration = expirationDate } - if(standbyDestinationField.value !== '') { + if (standbyDestinationField.value !== '') { transactionBlob.Destination = standbyDestinationField.value } -// Submit transaction -------------------------------------------------------- + // Submit transaction -------------------------------------------------------- - const tx = await client.submitAndWait(transactionBlob,{wallet: standby_wallet}) + const tx = await client.submitAndWait(transactionBlob, { wallet: standby_wallet }) results += '\n\n***Sell Offers***\n' let nftSellOffers try { nftSellOffers = await client.request({ - method: "nft_sell_offers", - nft_id: standbyTokenIdField.value}) + method: 'nft_sell_offers', + nft_id: standbyTokenIdField.value, + }) } catch (err) { - nftSellOffers = "No sell offers." + nftSellOffers = 'No sell offers.' } - results += JSON.stringify(nftSellOffers,null,2) + results += JSON.stringify(nftSellOffers, null, 2) results += '\n\n***Buy Offers***\n' let nftBuyOffers try { nftBuyOffers = await client.request({ - method: "nft_buy_offers", - nft_id: standbyTokenIdField.value }) - results += JSON.stringify(nftBuyOffers,null,2) + method: 'nft_buy_offers', + nft_id: standbyTokenIdField.value, + }) + results += JSON.stringify(nftBuyOffers, null, 2) } catch (err) { results += 'No buy offers.' } -// Check transaction results ------------------------------------------------- - results += '\n\nTransaction result:\n' + - JSON.stringify(tx.result.meta.TransactionResult, null, 2) - results += '\n\nBalance changes:\n' + - JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) - operationalBalanceField.value = (await client.getXrpBalance(operational_wallet.address)) - standbyBalanceField.value = (await client.getXrpBalance(standby_wallet.address)) + // Check transaction results ------------------------------------------------- + results += '\n\nTransaction result:\n' + JSON.stringify(tx.result.meta.TransactionResult, null, 2) + results += '\n\nBalance changes:\n' + JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) + operationalBalanceField.value = await client.getXrpBalance(operational_wallet.address) + standbyBalanceField.value = await client.getXrpBalance(standby_wallet.address) standbyResultField.value = results client.disconnect() -}// End of createSellOffer() - +} // End of createSellOffer() + // ******************************************************* // ***************** Create Buy Offer ******************** // ******************************************************* async function createBuyOffer() { - const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) const operational_wallet = xrpl.Wallet.fromSeed(operationalSeedField.value) let net = getNet() @@ -91,7 +90,7 @@ async function createBuyOffer() { //------------------------------------- Prepare Expiration Date var expirationDate = null - if (standbyExpirationField.value !="") { + if (standbyExpirationField.value != '') { var days = standbyExpirationField.value let d = new Date() d.setDate(d.getDate() + parseInt(days)) @@ -100,104 +99,102 @@ async function createBuyOffer() { // Prepare transaction ------------------------------------------------------- const transactionBlob = { - "TransactionType": "NFTokenCreateOffer", - "Account": standby_wallet.classicAddress, - "Owner": standbyOwnerField.value, - "NFTokenID": standbyTokenIdField.value, - "Amount": standbyAmountField.value, - "Flags": null + TransactionType: 'NFTokenCreateOffer', + Account: standby_wallet.classicAddress, + Owner: standbyOwnerField.value, + NFTokenID: standbyTokenIdField.value, + Amount: standbyAmountField.value, + Flags: null, } if (expirationDate != null) { transactionBlob.Expiration = expirationDate } // Submit transaction -------------------------------------------------------- - const tx = await client.submitAndWait(transactionBlob,{wallet: standby_wallet}) + const tx = await client.submitAndWait(transactionBlob, { wallet: standby_wallet }) - results += "\n\n***Sell Offers***\n" + results += '\n\n***Sell Offers***\n' let nftSellOffers try { nftSellOffers = await client.request({ - method: "nft_sell_offers", - nft_id: standbyTokenIdField.value }) + method: 'nft_sell_offers', + nft_id: standbyTokenIdField.value, + }) } catch (err) { - nftSellOffers = "No sell offers." + nftSellOffers = 'No sell offers.' } - results += JSON.stringify(nftSellOffers,null,2) - results += "\n\n***Buy Offers***\n" + results += JSON.stringify(nftSellOffers, null, 2) + results += '\n\n***Buy Offers***\n' let nftBuyOffers try { nftBuyOffers = await client.request({ - method: "nft_buy_offers", - nft_id: standbyTokenIdField.value }) - results += JSON.stringify(nftBuyOffers,null,2) + method: 'nft_buy_offers', + nft_id: standbyTokenIdField.value, + }) + results += JSON.stringify(nftBuyOffers, null, 2) } catch (err) { - results += "No buy offers." + results += 'No buy offers.' } // Check transaction results ------------------------------------------------- - results += "\n\nTransaction result:\n" + - JSON.stringify(tx.result.meta.TransactionResult, null, 2) - results += "\n\nBalance changes:\n" + - JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) + results += '\n\nTransaction result:\n' + JSON.stringify(tx.result.meta.TransactionResult, null, 2) + results += '\n\nBalance changes:\n' + JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) standbyResultField.value = results client.disconnect() -}// End of createBuyOffer() - +} // End of createBuyOffer() + // ******************************************************* // ******************** Cancel Offer ********************* // ******************************************************* -async function cancelOffer() { +async function cancelOffer() { const wallet = xrpl.Wallet.fromSeed(standbySeedField.value) let net = getNet() const client = new xrpl.Client(net) results = 'Connecting to ' + net + '...' + standbyResultField.value await client.connect() - results += "\nConnected. Cancelling offer..." + results += '\nConnected. Cancelling offer...' standbyResultField.value = results const tokenOfferIDs = [standbyTokenOfferIndexField.value] // Prepare transaction ------------------------------------------------------- const transactionBlob = { - "TransactionType": "NFTokenCancelOffer", - "Account": wallet.classicAddress, - "NFTokenOffers": tokenOfferIDs + TransactionType: 'NFTokenCancelOffer', + Account: wallet.classicAddress, + NFTokenOffers: tokenOfferIDs, } // Submit transaction -------------------------------------------------------- - const tx = await client.submitAndWait(transactionBlob,{wallet}) + const tx = await client.submitAndWait(transactionBlob, { wallet }) - results += "\n\n***Sell Offers***\n" + results += '\n\n***Sell Offers***\n' let nftSellOffers try { nftSellOffers = await client.request({ - method: "nft_sell_offers", - nft_id: standbyTokenIdField.value + method: 'nft_sell_offers', + nft_id: standbyTokenIdField.value, }) } catch (err) { - nftSellOffers = "No sell offers." + nftSellOffers = 'No sell offers.' } - results += JSON.stringify(nftSellOffers,null,2) - results += "\n\n***Buy Offers***\n" + results += JSON.stringify(nftSellOffers, null, 2) + results += '\n\n***Buy Offers***\n' let nftBuyOffers try { nftBuyOffers = await client.request({ - method: "nft_buy_offers", - nft_id: standbyTokenIdField.value + method: 'nft_buy_offers', + nft_id: standbyTokenIdField.value, }) - results += JSON.stringify(nftBuyOffers,null,2) + results += JSON.stringify(nftBuyOffers, null, 2) } catch (err) { - nftBuyOffers = "No buy offers." + nftBuyOffers = 'No buy offers.' } // Check transaction results ------------------------------------------------- - results += "\nTransaction result:\n" + - JSON.stringify(tx.result.meta.TransactionResult, null, 2) - results += "\nBalance changes:\n" + - JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) + results += '\nTransaction result:\n' + JSON.stringify(tx.result.meta.TransactionResult, null, 2) + results += '\nBalance changes:\n' + JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) standbyResultField.value = results client.disconnect() // End of cancelOffer() @@ -221,31 +218,31 @@ async function getOffers() { let nftSellOffers try { nftSellOffers = await client.request({ - method: "nft_sell_offers", - nft_id: standbyTokenIdField.value + method: 'nft_sell_offers', + nft_id: standbyTokenIdField.value, }) } catch (err) { - nftSellOffers = 'No sell offers.' + nftSellOffers = 'No sell offers.' } - results += JSON.stringify(nftSellOffers,null,2) + results += JSON.stringify(nftSellOffers, null, 2) standbyResultField.value = results results += '\n\n***Buy Offers***\n' let nftBuyOffers try { nftBuyOffers = await client.request({ - method: "nft_buy_offers", - nft_id: standbyTokenIdField.value + method: 'nft_buy_offers', + nft_id: standbyTokenIdField.value, }) } catch (err) { - nftBuyOffers = 'No buy offers.' + nftBuyOffers = 'No buy offers.' } - results += JSON.stringify(nftBuyOffers,null,2) + results += JSON.stringify(nftBuyOffers, null, 2) standbyResultField.value = results client.disconnect() -}// End of getOffers() - +} // End of getOffers() + // ******************************************************* // ****************** Accept Sell Offer ****************** // ******************************************************* @@ -263,31 +260,31 @@ async function acceptSellOffer() { // Prepare transaction ------------------------------------------------------- const transactionBlob = { - "TransactionType": "NFTokenAcceptOffer", - "Account": standby_wallet.classicAddress, - "NFTokenSellOffer": standbyTokenOfferIndexField.value, + TransactionType: 'NFTokenAcceptOffer', + Account: standby_wallet.classicAddress, + NFTokenSellOffer: standbyTokenOfferIndexField.value, } // Submit transaction -------------------------------------------------------- - const tx = await client.submitAndWait(transactionBlob,{wallet: standby_wallet}) + const tx = await client.submitAndWait(transactionBlob, { wallet: standby_wallet }) const nfts = await client.request({ - method: "account_nfts", - account: standby_wallet.classicAddress + method: 'account_nfts', + account: standby_wallet.classicAddress, }) // Check transaction results ------------------------------------------------- - standbyBalanceField.value = (await client.getXrpBalance(standby_wallet.address)) - operationalBalanceField.value = (await client.getXrpBalance(operational_wallet.address)) + standbyBalanceField.value = await client.getXrpBalance(standby_wallet.address) + operationalBalanceField.value = await client.getXrpBalance(operational_wallet.address) results += 'Transaction result:\n' - results += JSON.stringify(tx.result.meta.TransactionResult, null, 2) + results += JSON.stringify(tx.result.meta.TransactionResult, null, 2) results += '\nBalance changes:' - results += JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) - results += JSON.stringify(nfts,null,2) + results += JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) + results += JSON.stringify(nfts, null, 2) standbyResultField.value = results client.disconnect() -}// End of acceptSellOffer() +} // End of acceptSellOffer() // ******************************************************* // ******************* Accept Buy Offer ****************** @@ -306,36 +303,32 @@ async function acceptBuyOffer() { // Prepare transaction ------------------------------------------------------- const transactionBlob = { - "TransactionType": "NFTokenAcceptOffer", - "Account": standby_wallet.classicAddress, - "NFTokenBuyOffer": standbyTokenOfferIndexField.value + TransactionType: 'NFTokenAcceptOffer', + Account: standby_wallet.classicAddress, + NFTokenBuyOffer: standbyTokenOfferIndexField.value, } // Submit transaction -------------------------------------------------------- - const tx = await client.submitAndWait(transactionBlob,{wallet: standby_wallet}) + const tx = await client.submitAndWait(transactionBlob, { wallet: standby_wallet }) const nfts = await client.request({ - method: "account_nfts", - account: standby_wallet.classicAddress + method: 'account_nfts', + account: standby_wallet.classicAddress, }) - results += JSON.stringify(nfts,null,2) + results += JSON.stringify(nfts, null, 2) standbyResultField.value = results // Check transaction results ------------------------------------------------- - results += "\n\nTransaction result:\n" + - JSON.stringify(tx.result.meta.TransactionResult, null, 2) - results += "\nBalance changes:\n" + - JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) - operationalBalanceField.value = - (await client.getXrpBalance(operational_wallet.address)) - standbyBalanceField.value = - (await client.getXrpBalance(standby_wallet.address)) + results += '\n\nTransaction result:\n' + JSON.stringify(tx.result.meta.TransactionResult, null, 2) + results += '\nBalance changes:\n' + JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) + operationalBalanceField.value = await client.getXrpBalance(operational_wallet.address) + standbyBalanceField.value = await client.getXrpBalance(standby_wallet.address) standbyResultField.value = results client.disconnect() -}// End of acceptBuyOffer() +} // End of acceptBuyOffer() // ********************************************************************** // ****** Reciprocal Transactions *************************************** // ********************************************************************** - + // ******************************************************* // *********** Operational Create Sell Offer ************* // ******************************************************* @@ -347,13 +340,13 @@ async function oPcreateSellOffer() { const client = new xrpl.Client(net) results = 'Connecting to ' + net + '...' operationalResultField.value = results - await client.connect() + await client.connect() results += '\nConnected. Creating sell offer...' operationalResultField.value = results //------------------------------------- Prepare Expiration Date var expirationDate = null - if (operationalExpirationField.value !="") { + if (operationalExpirationField.value != '') { var days = operationalExpirationField.value let d = new Date() d.setDate(d.getDate() + parseInt(days)) @@ -361,67 +354,62 @@ async function oPcreateSellOffer() { } // Prepare transaction ------------------------------------------------------- let transactionBlob = { - "TransactionType": "NFTokenCreateOffer", - "Account": operational_wallet.classicAddress, - "NFTokenID": operationalTokenIdField.value, - "Amount": operationalAmountField.value, - "Flags": parseInt(operationalFlagsField.value) + TransactionType: 'NFTokenCreateOffer', + Account: operational_wallet.classicAddress, + NFTokenID: operationalTokenIdField.value, + Amount: operationalAmountField.value, + Flags: parseInt(operationalFlagsField.value), } if (expirationDate != null) { transactionBlob.Expiration = expirationDate } - if(standbyDestinationField.value !== '') { + if (standbyDestinationField.value !== '') { transactionBlob.Destination = operationalDestinationField.value } // Submit transaction -------------------------------------------------------- - const tx = await client.submitAndWait(transactionBlob,{wallet: operational_wallet}) + const tx = await client.submitAndWait(transactionBlob, { wallet: operational_wallet }) results += '\n\n***Sell Offers***\n' let nftSellOffers try { nftSellOffers = await client.request({ - method: "nft_sell_offers", - nft_id: operationalTokenIdField.value + method: 'nft_sell_offers', + nft_id: operationalTokenIdField.value, }) } catch (err) { - nftSellOffers = "No sell offers." + nftSellOffers = 'No sell offers.' } - results += JSON.stringify(nftSellOffers,null,2) + results += JSON.stringify(nftSellOffers, null, 2) results += '\n\n***Buy Offers***\n' let nftBuyOffers try { nftBuyOffers = await client.request({ - method: "nft_buy_offers", - nft_id: operationalTokenIdField.value + method: 'nft_buy_offers', + nft_id: operationalTokenIdField.value, }) - results += JSON.stringify(nftBuyOffers,null,2) + results += JSON.stringify(nftBuyOffers, null, 2) } catch (err) { results += 'No buy offers.' } // Check transaction results ------------------------------------------------- - results += '\n\nTransaction result:\n' + - JSON.stringify(tx.result.meta.TransactionResult, null, 2) - results += '\n\nBalance changes:\n' + - JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) - operationalBalanceField.value = - (await client.getXrpBalance(operational_wallet.address)) - standbyBalanceField.value = - (await client.getXrpBalance(standby_wallet.address)) + results += '\n\nTransaction result:\n' + JSON.stringify(tx.result.meta.TransactionResult, null, 2) + results += '\n\nBalance changes:\n' + JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) + operationalBalanceField.value = await client.getXrpBalance(operational_wallet.address) + standbyBalanceField.value = await client.getXrpBalance(standby_wallet.address) operationalResultField.value = results client.disconnect() -} // End of oPcreateSellOffer() +} // End of oPcreateSellOffer() // ******************************************************* // ************** Operational Create Buy Offer *********** // ******************************************************* async function oPcreateBuyOffer() { - const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) const operational_wallet = xrpl.Wallet.fromSeed(operationalSeedField.value) let net = getNet() @@ -434,7 +422,7 @@ async function oPcreateBuyOffer() { //------------------------------------- Prepare Expiration Date var expirationDate = null - if (operationalExpirationField.value !="") { + if (operationalExpirationField.value != '') { var days = operationalExpirationField.value let d = new Date() d.setDate(d.getDate() + parseInt(days)) @@ -443,118 +431,113 @@ async function oPcreateBuyOffer() { // Prepare transaction ------------------------------------------------------- const transactionBlob = { - "TransactionType": "NFTokenCreateOffer", - "Account": operational_wallet.classicAddress, - "Owner": operationalOwnerField.value, - "NFTokenID": operationalTokenIdField.value, - "Amount": operationalAmountField.value, - "Flags": null, + TransactionType: 'NFTokenCreateOffer', + Account: operational_wallet.classicAddress, + Owner: operationalOwnerField.value, + NFTokenID: operationalTokenIdField.value, + Amount: operationalAmountField.value, + Flags: null, } if (expirationDate != null) { transactionBlob.Expiration = expirationDate } // Submit transaction -------------------------------------------------------- - const tx = await client.submitAndWait(transactionBlob,{wallet: operational_wallet}) + const tx = await client.submitAndWait(transactionBlob, { wallet: operational_wallet }) - results += "\n\n***Sell Offers***\n" + results += '\n\n***Sell Offers***\n' let nftSellOffers try { nftSellOffers = await client.request({ - method: "nft_sell_offers", - nft_id: operationalTokenIdField.value + method: 'nft_sell_offers', + nft_id: operationalTokenIdField.value, }) } catch (err) { - nftSellOffers = "No sell offers." + nftSellOffers = 'No sell offers.' } - results += JSON.stringify(nftSellOffers,null,2) - results += "\n\n***Buy Offers***\n" + results += JSON.stringify(nftSellOffers, null, 2) + results += '\n\n***Buy Offers***\n' let nftBuyOffers try { nftBuyOffers = await client.request({ - method: "nft_buy_offers", - nft_id: operationalTokenIdField.value + method: 'nft_buy_offers', + nft_id: operationalTokenIdField.value, }) } catch (err) { - results += "No buy offers." + results += 'No buy offers.' } - results += JSON.stringify(nftBuyOffers,null,2) + results += JSON.stringify(nftBuyOffers, null, 2) // Check transaction results ------------------------------------------------- - results += "\n\nTransaction result:\n" + - JSON.stringify(tx.result.meta.TransactionResult, null, 2) - results += "\n\nBalance changes:\n" + - JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) + results += '\n\nTransaction result:\n' + JSON.stringify(tx.result.meta.TransactionResult, null, 2) + results += '\n\nBalance changes:\n' + JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) operationalResultField.value = results client.disconnect() -}// End of oPcreateBuyOffer() +} // End of oPcreateBuyOffer() // ******************************************************* // ************* Operational Cancel Offer **************** // ******************************************************* async function oPcancelOffer() { - const wallet = xrpl.Wallet.fromSeed(operationalSeedField.value) let net = getNet() const client = new xrpl.Client(net) results = 'Connecting to ' + net + '...' operationalResultField.value = results await client.connect() - results += "\nConnected. Cancelling offer..." + results += '\nConnected. Cancelling offer...' operationalResultField.value = results const tokenOfferIDs = [operationalTokenOfferIndexField.value] // Prepare transaction ------------------------------------------------------- const transactionBlob = { - "TransactionType": "NFTokenCancelOffer", - "Account": wallet.classicAddress, - "NFTokenOffers": tokenOfferIDs + TransactionType: 'NFTokenCancelOffer', + Account: wallet.classicAddress, + NFTokenOffers: tokenOfferIDs, } // Submit transaction -------------------------------------------------------- - const tx = await client.submitAndWait(transactionBlob,{wallet}) + const tx = await client.submitAndWait(transactionBlob, { wallet }) - results += "\n\n***Sell Offers***\n" + results += '\n\n***Sell Offers***\n' let nftSellOffers try { nftSellOffers = await client.request({ - method: "nft_sell_offers", - nft_id: operationalTokenIdField.value + method: 'nft_sell_offers', + nft_id: operationalTokenIdField.value, }) } catch (err) { - nftSellOffers = "No sell offers." + nftSellOffers = 'No sell offers.' } - results += JSON.stringify(nftSellOffers,null,2) - results += "\n\n***Buy Offers***\n" + results += JSON.stringify(nftSellOffers, null, 2) + results += '\n\n***Buy Offers***\n' let nftBuyOffers try { nftBuyOffers = await client.request({ - method: "nft_buy_offers", - nft_id: operationalTokenIdField.value + method: 'nft_buy_offers', + nft_id: operationalTokenIdField.value, }) } catch (err) { - nftBuyOffers = "No buy offers." + nftBuyOffers = 'No buy offers.' } - results += JSON.stringify(nftBuyOffers,null,2) + results += JSON.stringify(nftBuyOffers, null, 2) // Check transaction results ------------------------------------------------- - results += "\nTransaction result:\n" + - JSON.stringify(tx.result.meta.TransactionResult, null, 2) - results += "\nBalance changes:\n" + - JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) + results += '\nTransaction result:\n' + JSON.stringify(tx.result.meta.TransactionResult, null, 2) + results += '\nBalance changes:\n' + JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) operationalResultField.value = results client.disconnect() -}// End of oPcancelOffer() +} // End of oPcancelOffer() // ******************************************************* // **************** Operational Get Offers *************** // ******************************************************* async function oPgetOffers() { -// const standby_wallet = xrpl.Wallet.fromSeed(operationalSeedField.value) + // const standby_wallet = xrpl.Wallet.fromSeed(operationalSeedField.value) let net = getNet() const client = new xrpl.Client(net) results = 'Connecting to ' + net + '...' @@ -567,29 +550,29 @@ async function oPgetOffers() { let nftSellOffers try { nftSellOffers = await client.request({ - method: "nft_sell_offers", - nft_id: operationalTokenIdField.value + method: 'nft_sell_offers', + nft_id: operationalTokenIdField.value, }) } catch (err) { nftSellOffers = 'No sell offers.' } - results += JSON.stringify(nftSellOffers,null,2) + results += JSON.stringify(nftSellOffers, null, 2) results += '\n\n***Buy Offers***\n' let nftBuyOffers try { nftBuyOffers = await client.request({ - method: "nft_buy_offers", - nft_id: operationalTokenIdField.value + method: 'nft_buy_offers', + nft_id: operationalTokenIdField.value, }) } catch (err) { - nftBuyOffers = 'No buy offers.' + nftBuyOffers = 'No buy offers.' } - results += JSON.stringify(nftBuyOffers,null,2) + results += JSON.stringify(nftBuyOffers, null, 2) operationalResultField.value = results client.disconnect() -}// End of oPgetOffers() +} // End of oPgetOffers() // ******************************************************* // *************** Operational Accept Sell Offer ********* @@ -608,30 +591,30 @@ async function oPacceptSellOffer() { // Prepare transaction ------------------------------------------------------- const transactionBlob = { - "TransactionType": "NFTokenAcceptOffer", - "Account": operational_wallet.classicAddress, - "NFTokenSellOffer": operationalTokenOfferIndexField.value, + TransactionType: 'NFTokenAcceptOffer', + Account: operational_wallet.classicAddress, + NFTokenSellOffer: operationalTokenOfferIndexField.value, } // Submit transaction -------------------------------------------------------- - const tx = await client.submitAndWait(transactionBlob,{wallet: operational_wallet}) + const tx = await client.submitAndWait(transactionBlob, { wallet: operational_wallet }) const nfts = await client.request({ - method: "account_nfts", - account: operational_wallet.classicAddress + method: 'account_nfts', + account: operational_wallet.classicAddress, }) // Check transaction results ------------------------------------------------- - standbyBalanceField.value = (await client.getXrpBalance(standby_wallet.address)) - operationalBalanceField.value = (await client.getXrpBalance(operational_wallet.address)) + standbyBalanceField.value = await client.getXrpBalance(standby_wallet.address) + operationalBalanceField.value = await client.getXrpBalance(operational_wallet.address) results += 'Transaction result:\n' - results += JSON.stringify(tx.result.meta.TransactionResult, null, 2) + results += JSON.stringify(tx.result.meta.TransactionResult, null, 2) results += '\nBalance changes:' - results += JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) - results += JSON.stringify(nfts,null,2) - operationalResultField.value = results + results += JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) + results += JSON.stringify(nfts, null, 2) + operationalResultField.value = results client.disconnect() -}// End of acceptSellOffer() +} // End of acceptSellOffer() // ******************************************************* // ********* Operational Accept Buy Offer **************** @@ -650,28 +633,24 @@ async function oPacceptBuyOffer() { // Prepare transaction ------------------------------------------------------- const transactionBlob = { - "TransactionType": "NFTokenAcceptOffer", - "Account": operational_wallet.classicAddress, - "NFTokenBuyOffer": operationalTokenOfferIndexField.value + TransactionType: 'NFTokenAcceptOffer', + Account: operational_wallet.classicAddress, + NFTokenBuyOffer: operationalTokenOfferIndexField.value, } // Submit transaction -------------------------------------------------------- - const tx = await client.submitAndWait(transactionBlob,{wallet: operational_wallet}) + const tx = await client.submitAndWait(transactionBlob, { wallet: operational_wallet }) const nfts = await client.request({ - method: "account_nfts", - account: operational_wallet.classicAddress + method: 'account_nfts', + account: operational_wallet.classicAddress, }) - results += JSON.stringify(nfts,null,2) + results += JSON.stringify(nfts, null, 2) operationalResultField.value = results // Check transaction results ------------------------------------------------- - results += "\n\nTransaction result:\n" + - JSON.stringify(tx.result.meta.TransactionResult, null, 2) - results += "\nBalance changes:\n" + - JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) - operationalBalanceField.value = - (await client.getXrpBalance(operational_wallet.address)) - operationalBalanceField.value = - (await client.getXrpBalance(standby_wallet.address)) + results += '\n\nTransaction result:\n' + JSON.stringify(tx.result.meta.TransactionResult, null, 2) + results += '\nBalance changes:\n' + JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) + operationalBalanceField.value = await client.getXrpBalance(operational_wallet.address) + operationalBalanceField.value = await client.getXrpBalance(standby_wallet.address) operationalResultField.value = results client.disconnect() -}// End of acceptBuyOffer() \ No newline at end of file +} // End of acceptBuyOffer() diff --git a/_code-samples/quickstart/js/ripplex5-broker-nfts.js b/_code-samples/quickstart/js/ripplex5-broker-nfts.js index aaa1790a73..6a41c529b3 100644 --- a/_code-samples/quickstart/js/ripplex5-broker-nfts.js +++ b/_code-samples/quickstart/js/ripplex5-broker-nfts.js @@ -7,7 +7,7 @@ // ******************************************************* // *************** Broker Get Offers ********************* // ******************************************************* - + async function brGetOffers() { let net = getNet() const client = new xrpl.Client(net) @@ -15,74 +15,72 @@ async function brGetOffers() { brokerResultField.value = results await client.connect() results += '\nConnected. Getting offers...' - brokerResultField.value = results + brokerResultField.value = results - results += '\n\n***Sell Offers***\n' + results += '\n\n***Sell Offers***\n' let nftSellOffers try { nftSellOffers = await client.request({ - method: "nft_sell_offers", - nft_id: brokerTokenIdField.value + method: 'nft_sell_offers', + nft_id: brokerTokenIdField.value, }) } catch (err) { nftSellOffers = 'No sell offers.' } - results += JSON.stringify(nftSellOffers,null,2) - brokerResultField.value = results + results += JSON.stringify(nftSellOffers, null, 2) + brokerResultField.value = results results += '\n\n***Buy Offers***\n' let nftBuyOffers try { nftBuyOffers = await client.request({ - method: "nft_buy_offers", - nft_id: brokerTokenIdField.value + method: 'nft_buy_offers', + nft_id: brokerTokenIdField.value, }) } catch (err) { - nftBuyOffers = 'No buy offers.' + nftBuyOffers = 'No buy offers.' } - results += JSON.stringify(nftBuyOffers,null,2) - brokerResultField.value = results + results += JSON.stringify(nftBuyOffers, null, 2) + brokerResultField.value = results client.disconnect() -}// End of brGetOffers() - +} // End of brGetOffers() + // ******************************************************* // ******************* Broker Sale *********************** // ******************************************************* - + async function brokerSale() { - const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) - const operational_wallet = xrpl.Wallet.fromSeed(operationalSeedField.value) - const broker_wallet = xrpl.Wallet.fromSeed (brokerSeedField.value) - let net = getNet() - const client = new xrpl.Client(net) - results = 'Connecting to ' + getNet() + '...' - brokerResultField.value = results - await client.connect() - results += '\nConnected. Brokering sale...' - brokerResultField.value = results + const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) + const operational_wallet = xrpl.Wallet.fromSeed(operationalSeedField.value) + const broker_wallet = xrpl.Wallet.fromSeed(brokerSeedField.value) + let net = getNet() + const client = new xrpl.Client(net) + results = 'Connecting to ' + getNet() + '...' + brokerResultField.value = results + await client.connect() + results += '\nConnected. Brokering sale...' + brokerResultField.value = results - // Prepare transaction ------------------------------------------------------- + // Prepare transaction ------------------------------------------------------- const transactionBlob = { - "TransactionType": "NFTokenAcceptOffer", - "Account": broker_wallet.classicAddress, - "NFTokenSellOffer": brokerTokenSellOfferIndexField.value, - "NFTokenBuyOffer": brokerTokenBuyOfferIndexField.value, - "NFTokenBrokerFee": brokerBrokerFeeField.value + TransactionType: 'NFTokenAcceptOffer', + Account: broker_wallet.classicAddress, + NFTokenSellOffer: brokerTokenSellOfferIndexField.value, + NFTokenBuyOffer: brokerTokenBuyOfferIndexField.value, + NFTokenBrokerFee: brokerBrokerFeeField.value, } - // Submit transaction -------------------------------------------------------- - const tx = await client.submitAndWait(transactionBlob,{wallet: broker_wallet}) + // Submit transaction -------------------------------------------------------- + const tx = await client.submitAndWait(transactionBlob, { wallet: broker_wallet }) - // Check transaction results ------------------------------------------------- - results += "\n\nTransaction result:\n" + - JSON.stringify(tx.result.meta.TransactionResult, null, 2) - results += "\nBalance changes:\n" + - JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) - operationalBalanceField.value = (await client.getXrpBalance(operational_wallet.address)) - standbyBalanceField.value = (await client.getXrpBalance(standby_wallet.address)) - brokerBalanceField.value = (await client.getXrpBalance(broker_wallet.address)) - brokerResultField.value = results - client.disconnect() -}// End of brokerSale() + // Check transaction results ------------------------------------------------- + results += '\n\nTransaction result:\n' + JSON.stringify(tx.result.meta.TransactionResult, null, 2) + results += '\nBalance changes:\n' + JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) + operationalBalanceField.value = await client.getXrpBalance(operational_wallet.address) + standbyBalanceField.value = await client.getXrpBalance(standby_wallet.address) + brokerBalanceField.value = await client.getXrpBalance(broker_wallet.address) + brokerResultField.value = results + client.disconnect() +} // End of brokerSale() // ******************************************************* // ************* Broker Cancel Offer **************** @@ -90,56 +88,55 @@ async function brokerSale() { async function brCancelOffer() { const wallet = xrpl.Wallet.fromSeed(brokerSeedField.value) - let net = getNet() - const client = new xrpl.Client(net) - results = 'Connecting to ' + getNet() + '...' + let net = getNet() + const client = new xrpl.Client(net) + results = 'Connecting to ' + getNet() + '...' brokerResultField.value = results await client.connect() - results += "\nConnected. Cancelling offer..." + results += '\nConnected. Cancelling offer...' brokerResultField.value = results const tokenOfferIDs = [brokerTokenBuyOfferIndexField.value] // Prepare transaction ------------------------------------------------------- const transactionBlob = { - "TransactionType": "NFTokenCancelOffer", - "Account": wallet.classicAddress, - "NFTokenOffers": tokenOfferIDs + TransactionType: 'NFTokenCancelOffer', + Account: wallet.classicAddress, + NFTokenOffers: tokenOfferIDs, } // Submit transaction -------------------------------------------------------- - const tx = await client.submitAndWait(transactionBlob,{wallet}) + const tx = await client.submitAndWait(transactionBlob, { wallet }) - results += "\n\n***Sell Offers***\n" + results += '\n\n***Sell Offers***\n' let nftSellOffers try { nftSellOffers = await client.request({ - method: "nft_sell_offers", - nft_id: brokerTokenBuyOfferIndexField.value + method: 'nft_sell_offers', + nft_id: brokerTokenBuyOfferIndexField.value, }) } catch (err) { - nftSellOffers = "No sell offers." + nftSellOffers = 'No sell offers.' } - results += JSON.stringify(nftSellOffers,null,2) - results += "\n\n***Buy Offers***\n" + results += JSON.stringify(nftSellOffers, null, 2) + results += '\n\n***Buy Offers***\n' let nftBuyOffers try { nftBuyOffers = await client.request({ - method: "nft_buy_offers", - nft_id: brokerTokenBuyOfferIndexField.value }) + method: 'nft_buy_offers', + nft_id: brokerTokenBuyOfferIndexField.value, + }) } catch (err) { - nftBuyOffers = "No buy offers." + nftBuyOffers = 'No buy offers.' } - results += JSON.stringify(nftBuyOffers,null,2) + results += JSON.stringify(nftBuyOffers, null, 2) // Check transaction results ------------------------------------------------- - results += "\nTransaction result:\n" + - JSON.stringify(tx.result.meta.TransactionResult, null, 2) - results += "\nBalance changes:\n" + - JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) + results += '\nTransaction result:\n' + JSON.stringify(tx.result.meta.TransactionResult, null, 2) + results += '\nBalance changes:\n' + JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) brokerResultField.value = results client.disconnect() -}// End of brCancelOffer() +} // End of brCancelOffer() // *************************************************************************** // ************** Revised Functions ****************************************** @@ -149,7 +146,6 @@ async function brCancelOffer() { // ************* Get Account ***************************** // ******************************************************* - async function getAccount(type) { let net = getNet() const client = new xrpl.Client(net) @@ -160,7 +156,7 @@ async function getAccount(type) { if (type == 'standby') { standbyResultField.value = results - } + } if (type == 'operational') { operationalResultField.value = results } @@ -172,7 +168,7 @@ async function getAccount(type) { results += '\nConnected, funding wallet.' if (type == 'standby') { standbyResultField.value = results - } + } if (type == 'operational') { operationalResultField.value = results } @@ -180,13 +176,13 @@ async function getAccount(type) { brokerResultField.value = results } -// -----------------------------------Create and fund a test account wallet + // -----------------------------------Create and fund a test account wallet const my_wallet = (await client.fundWallet(null, { faucetHost })).wallet results += '\nGot a wallet.' if (type == 'standby') { standbyResultField.value = results - } + } if (type == 'operational') { operationalResultField.value = results } @@ -194,12 +190,12 @@ async function getAccount(type) { brokerResultField.value = results } -// -----------------------------------Get the current balance. - const my_balance = (await client.getXrpBalance(my_wallet.address)) - + // -----------------------------------Get the current balance. + const my_balance = await client.getXrpBalance(my_wallet.address) + if (type == 'standby') { standbyAccountField.value = my_wallet.address - standbyBalanceField.value = (await client.getXrpBalance(my_wallet.address)) + standbyBalanceField.value = await client.getXrpBalance(my_wallet.address) standbySeedField.value = my_wallet.seed results += '\nStandby account created.' standbyResultField.value = results @@ -207,66 +203,65 @@ async function getAccount(type) { if (type == 'operational') { operationalAccountField.value = my_wallet.address operationalSeedField.value = my_wallet.seed - operationalBalanceField.value = (await client.getXrpBalance(my_wallet.address)) + operationalBalanceField.value = await client.getXrpBalance(my_wallet.address) results += '\nOperational account created.' operationalResultField.value = results } if (type == 'broker') { brokerAccountField.value = my_wallet.address brokerSeedField.value = my_wallet.seed - brokerBalanceField.value = (await client.getXrpBalance(my_wallet.address)) + brokerBalanceField.value = await client.getXrpBalance(my_wallet.address) results += '\nBroker account created.' brokerResultField.value = results } // --------------- Capture the seeds for accounts for ease of reload. - seeds.value = standbySeedField.value + '\n' + operationalSeedField.value + "\n" + - brokerSeedField.value + seeds.value = standbySeedField.value + '\n' + operationalSeedField.value + '\n' + brokerSeedField.value client.disconnect() } // End of getAccount() // ******************************************************* -// ********** Get Accounts from Seeds ******************** +// ********** Get Accounts from Seeds ******************** // ******************************************************* async function getAccountsFromSeeds() { - let net = getNet() - const client = new xrpl.Client(net) - results = 'Connecting to ' + getNet() + '....' - standbyResultField.value = results - await client.connect() - results += '\nConnected, finding wallets.\n' - standbyResultField.value = results + let net = getNet() + const client = new xrpl.Client(net) + results = 'Connecting to ' + getNet() + '....' + standbyResultField.value = results + await client.connect() + results += '\nConnected, finding wallets.\n' + standbyResultField.value = results - // -----------------------------------Find the test account wallets - var lines = seeds.value.split('\n'); - const standby_wallet = xrpl.Wallet.fromSeed(lines[0]) - const operational_wallet = xrpl.Wallet.fromSeed(lines[1]) - const broker_wallet = xrpl.Wallet.fromSeed(lines[2]) + // -----------------------------------Find the test account wallets + var lines = seeds.value.split('\n') + const standby_wallet = xrpl.Wallet.fromSeed(lines[0]) + const operational_wallet = xrpl.Wallet.fromSeed(lines[1]) + const broker_wallet = xrpl.Wallet.fromSeed(lines[2]) - // -----------------------------------Get the current balance. - const standby_balance = (await client.getXrpBalance(standby_wallet.address)) - const operational_balance = (await client.getXrpBalance(operational_wallet.address)) - const broker_balance = (await client.getXrpBalance(broker_wallet.address)) - - standbyAccountField.value = standby_wallet.address - standbyPubKeyField.value = standby_wallet.publicKey - standbyPrivKeyField.value = standby_wallet.privateKey - standbySeedField.value = standby_wallet.seed - standbyBalanceField.value = (await client.getXrpBalance(standby_wallet.address)) + // -----------------------------------Get the current balance. + const standby_balance = await client.getXrpBalance(standby_wallet.address) + const operational_balance = await client.getXrpBalance(operational_wallet.address) + const broker_balance = await client.getXrpBalance(broker_wallet.address) - operationalAccountField.value = operational_wallet.address - operationalPubKeyField.value = operational_wallet.publicKey - operationalPrivKeyField.value = operational_wallet.privateKey - operationalSeedField.value = operational_wallet.seed - operationalBalanceField.value = (await client.getXrpBalance(operational_wallet.address)) + standbyAccountField.value = standby_wallet.address + standbyPubKeyField.value = standby_wallet.publicKey + standbyPrivKeyField.value = standby_wallet.privateKey + standbySeedField.value = standby_wallet.seed + standbyBalanceField.value = await client.getXrpBalance(standby_wallet.address) - brokerAccountField.value = broker_wallet.address - brokerPubKeyField.value = broker_wallet.publicKey - brokerPrivKeyField.value = broker_wallet.privateKey - brokerSeedField.value = broker_wallet.seed - brokerBalanceField.value = (await client.getXrpBalance(broker_wallet.address)) + operationalAccountField.value = operational_wallet.address + operationalPubKeyField.value = operational_wallet.publicKey + operationalPrivKeyField.value = operational_wallet.privateKey + operationalSeedField.value = operational_wallet.seed + operationalBalanceField.value = await client.getXrpBalance(operational_wallet.address) - client.disconnect() + brokerAccountField.value = broker_wallet.address + brokerPubKeyField.value = broker_wallet.publicKey + brokerPrivKeyField.value = broker_wallet.privateKey + brokerSeedField.value = broker_wallet.seed + brokerBalanceField.value = await client.getXrpBalance(broker_wallet.address) + + client.disconnect() getBalances() } // End of getAccountsFromSeeds() @@ -289,37 +284,37 @@ async function getBalances() { const operational_wallet = xrpl.Wallet.fromSeed(operationalSeedField.value) const broker_wallet = xrpl.Wallet.fromSeed(brokerSeedField.value) - results = "\nGetting standby account balances...\n" + results = '\nGetting standby account balances...\n' const standby_balances = await client.request({ - command: "gateway_balances", + command: 'gateway_balances', account: standby_wallet.address, - ledger_index: "validated", - hotwallet: [operational_wallet.address] + ledger_index: 'validated', + hotwallet: [operational_wallet.address], }) results += JSON.stringify(standby_balances.result, null, 2) standbyResultField.value = results - results= "\nGetting operational account balances...\n" + results = '\nGetting operational account balances...\n' const operational_balances = await client.request({ - command: "account_lines", + command: 'account_lines', account: operational_wallet.address, - ledger_index: "validated" + ledger_index: 'validated', }) results += JSON.stringify(operational_balances.result, null, 2) operationalResultField.value = results - results= "\nGetting broker account balances...\n" + results = '\nGetting broker account balances...\n' const broker_balances = await client.request({ - command: "account_lines", + command: 'account_lines', account: broker_wallet.address, - ledger_index: "validated" + ledger_index: 'validated', }) results += JSON.stringify(broker_balances.result, null, 2) brokerResultField.value = results - operationalBalanceField.value = (await client.getXrpBalance(operational_wallet.address)) - standbyBalanceField.value = (await client.getXrpBalance(standby_wallet.address)) - brokerBalanceField.value = (await client.getXrpBalance(broker_wallet.address)) + operationalBalanceField.value = await client.getXrpBalance(operational_wallet.address) + standbyBalanceField.value = await client.getXrpBalance(standby_wallet.address) + brokerBalanceField.value = await client.getXrpBalance(broker_wallet.address) client.disconnect() -} // End of getBalances() \ No newline at end of file +} // End of getBalances() diff --git a/_code-samples/quickstart/js/ripplex6-authorized-minter.js b/_code-samples/quickstart/js/ripplex6-authorized-minter.js index 0f78729310..54e5909afb 100644 --- a/_code-samples/quickstart/js/ripplex6-authorized-minter.js +++ b/_code-samples/quickstart/js/ripplex6-authorized-minter.js @@ -2,37 +2,37 @@ // **************** Set Minter ************************* // ******************************************************* -async function setMinter() { +async function setMinter() { let net = getNet() const client = new xrpl.Client(net) results = 'Connecting to ' + getNet() + '....' - standbyResultField.value = results + standbyResultField.value = results await client.connect() results += '\nConnected, finding wallet.' - standbyResultField.value = results + standbyResultField.value = results my_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) - standbyResultField.value = results + standbyResultField.value = results tx_json = { - "TransactionType": "AccountSet", - "Account": my_wallet.address, - "NFTokenMinter": standbyMinterField.value, - "SetFlag": xrpl.AccountSetAsfFlags.asfAuthorizedNFTokenMinter - } - results += '\nSet Minter.' - standbyResultField.value = results - + TransactionType: 'AccountSet', + Account: my_wallet.address, + NFTokenMinter: standbyMinterField.value, + SetFlag: xrpl.AccountSetAsfFlags.asfAuthorizedNFTokenMinter, + } + results += '\nSet Minter.' + standbyResultField.value = results + const prepared = await client.autofill(tx_json) const signed = my_wallet.sign(prepared) const result = await client.submitAndWait(signed.tx_blob) - if (result.result.meta.TransactionResult == "tesSUCCESS") { + if (result.result.meta.TransactionResult == 'tesSUCCESS') { results += '\nAccount setting succeeded.\n' - results += JSON.stringify(result,null,2) - standbyResultField.value = results + results += JSON.stringify(result, null, 2) + standbyResultField.value = results } else { throw 'Error sending transaction: ${result}' results += '\nAccount setting failed.' - standbyResultField.value = results + standbyResultField.value = results } client.disconnect() } // End of configureAccount() @@ -43,39 +43,38 @@ async function setMinter() { async function mintOther() { results = 'Connecting to ' + getNet() + '....' - standbyResultField.value = results + standbyResultField.value = results let net = getNet() const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) const client = new xrpl.Client(net) await client.connect() results += '\nConnected. Minting NFT.' - standbyResultField.value = results - + standbyResultField.value = results + // This version adds the "Issuer" field. // ------------------------------------------------------------------------ const tx_json = { - "TransactionType": "NFTokenMint", - "Account": standby_wallet.classicAddress, - "URI": xrpl.convertStringToHex(standbyTokenUrlField.value), - "Flags": parseInt(standbyFlagsField.value), - "TransferFee": parseInt(standbyTransferFeeField.value), - "Issuer": standbyIssuerField.value, - "NFTokenTaxon": 0 //Required, but if you have no use for it, set to zero. + TransactionType: 'NFTokenMint', + Account: standby_wallet.classicAddress, + URI: xrpl.convertStringToHex(standbyTokenUrlField.value), + Flags: parseInt(standbyFlagsField.value), + TransferFee: parseInt(standbyTransferFeeField.value), + Issuer: standbyIssuerField.value, + NFTokenTaxon: 0, //Required, but if you have no use for it, set to zero. } - // ----------------------------------------------------- Submit transaction - const tx = await client.submitAndWait(tx_json, { wallet: standby_wallet} ) + // ----------------------------------------------------- Submit transaction + const tx = await client.submitAndWait(tx_json, { wallet: standby_wallet }) const nfts = await client.request({ - method: "account_nfts", - account: standby_wallet.classicAddress + method: 'account_nfts', + account: standby_wallet.classicAddress, }) - + // ------------------------------------------------------- Report results - results += '\n\nTransaction result: '+ tx.result.meta.TransactionResult + results += '\n\nTransaction result: ' + tx.result.meta.TransactionResult results += '\n\nnfts: ' + JSON.stringify(nfts, null, 2) - standbyResultField.value = results + (await - client.getXrpBalance(standby_wallet.address)) - standbyResultField.value = results + standbyResultField.value = results + (await client.getXrpBalance(standby_wallet.address)) + standbyResultField.value = results client.disconnect() } //End of mintToken() @@ -83,7 +82,7 @@ async function mintOther() { // **************** Set Operational Minter ************** // ******************************************************** -async function oPsetMinter() { +async function oPsetMinter() { let net = getNet() const client = new xrpl.Client(net) results = 'Connecting to ' + getNet() + '....' @@ -95,35 +94,34 @@ async function oPsetMinter() { operationalResultField.value = results tx_json = { - "TransactionType": "AccountSet", - "Account": my_wallet.address, - "NFTokenMinter": operationalMinterField.value, - "SetFlag": xrpl.AccountSetAsfFlags.asfAuthorizedNFTokenMinter - } - results += '\nSet Minter.' + TransactionType: 'AccountSet', + Account: my_wallet.address, + NFTokenMinter: operationalMinterField.value, + SetFlag: xrpl.AccountSetAsfFlags.asfAuthorizedNFTokenMinter, + } + results += '\nSet Minter.' operationalResultField.value = results - + const prepared = await client.autofill(tx_json) const signed = my_wallet.sign(prepared) const result = await client.submitAndWait(signed.tx_blob) - if (result.result.meta.TransactionResult == "tesSUCCESS") { + if (result.result.meta.TransactionResult == 'tesSUCCESS') { results += '\nAccount setting succeeded.\n' - results += JSON.stringify(result,null,2) + results += JSON.stringify(result, null, 2) operationalResultField.value = results } else { throw 'Error sending transaction: ${result}' results += '\nAccount setting failed.' operationalResultField.value = results } - + client.disconnect() } // End of oPsetMinter() - // ******************************************************* // ************** Operational Mint Other ***************** // ******************************************************* - + async function oPmintOther() { results = 'Connecting to ' + getNet() + '....' operationalResultField.value = results @@ -137,27 +135,26 @@ async function oPmintOther() { // This version adds the "Issuer" field. // ------------------------------------------------------------------------ const tx_json = { - "TransactionType": 'NFTokenMint', - "Account": operational_wallet.classicAddress, - "URI": xrpl.convertStringToHex(operationalTokenUrlField.value), - "Flags": parseInt(operationalFlagsField.value), - "Issuer": operationalIssuerField.value, - "TransferFee": parseInt(operationalTransferFeeField.value), - "NFTokenTaxon": 0 //Required, but if you have no use for it, set to zero. + TransactionType: 'NFTokenMint', + Account: operational_wallet.classicAddress, + URI: xrpl.convertStringToHex(operationalTokenUrlField.value), + Flags: parseInt(operationalFlagsField.value), + Issuer: operationalIssuerField.value, + TransferFee: parseInt(operationalTransferFeeField.value), + NFTokenTaxon: 0, //Required, but if you have no use for it, set to zero. } - - // ----------------------------------------------------- Submit signed blob - const tx = await client.submitAndWait(tx_json, { wallet: operational_wallet} ) + + // ----------------------------------------------------- Submit signed blob + const tx = await client.submitAndWait(tx_json, { wallet: operational_wallet }) const nfts = await client.request({ - method: "account_nfts", - account: operational_wallet.classicAddress + method: 'account_nfts', + account: operational_wallet.classicAddress, }) - + // ------------------------------------------------------- Report results - results += '\n\nTransaction result: '+ tx.result.meta.TransactionResult + results += '\n\nTransaction result: ' + tx.result.meta.TransactionResult results += '\n\nnfts: ' + JSON.stringify(nfts, null, 2) results += await client.getXrpBalance(operational_wallet.address) operationalResultField.value = results client.disconnect() } //End of oPmintToken - diff --git a/_code-samples/quickstart/js/ripplex7-batch-minting.js b/_code-samples/quickstart/js/ripplex7-batch-minting.js index aa87eb3fd3..1608ecc828 100644 --- a/_code-samples/quickstart/js/ripplex7-batch-minting.js +++ b/_code-samples/quickstart/js/ripplex7-batch-minting.js @@ -3,36 +3,35 @@ // ******************************************************* async function getAccountFromSeed() { - let net = getNet() - const client = new xrpl.Client(net) - results = 'Connecting to ' + getNet() + '....' - standbyResultField.value = results - await client.connect() - results += '\nConnected, finding wallets.\n' - standbyResultField.value = results + let net = getNet() + const client = new xrpl.Client(net) + results = 'Connecting to ' + getNet() + '....' + standbyResultField.value = results + await client.connect() + results += '\nConnected, finding wallets.\n' + standbyResultField.value = results - // -------------------------------------------- Find the test account wallet. - var theSeed = seeds.value - const standby_wallet = xrpl.Wallet.fromSeed(theSeed) + // -------------------------------------------- Find the test account wallet. + var theSeed = seeds.value + const standby_wallet = xrpl.Wallet.fromSeed(theSeed) - // ------------------------------------------------- Get the current balance. - const standby_balance = (await client.getXrpBalance(standby_wallet.address)) - - // --------------------------------- Populate the fields for Standby account. - standbyAccountField.value = standby_wallet.address - standbyPubKeyField.value = standby_wallet.publicKey - standbyPrivKeyField.value = standby_wallet.privateKey - standbySeedField.value = standby_wallet.seed - standbyBalanceField.value = (await client.getXrpBalance(standby_wallet.address)) + // ------------------------------------------------- Get the current balance. + const standby_balance = await client.getXrpBalance(standby_wallet.address) - client.disconnect() - + // --------------------------------- Populate the fields for Standby account. + standbyAccountField.value = standby_wallet.address + standbyPubKeyField.value = standby_wallet.publicKey + standbyPrivKeyField.value = standby_wallet.privateKey + standbySeedField.value = standby_wallet.seed + standbyBalanceField.value = await client.getXrpBalance(standby_wallet.address) + + client.disconnect() } // End of getAccountsFromSeeds() // ******************************************************* // **************** Get Batch Tokens ********************* // ******************************************************* - + async function getBatchNFTs() { const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) let net = getNet() @@ -42,24 +41,23 @@ async function getBatchNFTs() { await client.connect() results += '\nConnected. Getting NFTs...' standbyResultField.value = results - - results += "\n\nNFTs:\n" - let nfts = await client.request({ - method: "account_nfts", - account: standby_wallet.classicAddress, - limit: 400 - }) - results += JSON.stringify(nfts,null,2) - while (nfts.result.marker) - { - nfts = await client.request({ - method: "account_nfts", + results += '\n\nNFTs:\n' + let nfts = await client.request({ + method: 'account_nfts', account: standby_wallet.classicAddress, limit: 400, - marker: nfts.result.marker }) - results += '\n' + JSON.stringify(nfts,null,2) + + results += JSON.stringify(nfts, null, 2) + while (nfts.result.marker) { + nfts = await client.request({ + method: 'account_nfts', + account: standby_wallet.classicAddress, + limit: 400, + marker: nfts.result.marker, + }) + results += '\n' + JSON.stringify(nfts, null, 2) } standbyResultField.value = results client.disconnect() @@ -69,32 +67,31 @@ async function getBatchNFTs() { // ****************** Batch Mint *********************** // ******************************************************* -async function batchMint() { - -//--------------------- Connect to the XRP Ledger and get the account wallet. +async function batchMint() { + //--------------------- Connect to the XRP Ledger and get the account wallet. let net = getNet() const client = new xrpl.Client(net) results = 'Connecting to ' + getNet() + '....' standbyResultField.value = results - await client.connect() + await client.connect() results += '\nConnected, finding wallet.' standbyResultField.value = results standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) standbyResultField.value = results -//----------------- Get account information, particularly the Sequence number. + //----------------- Get account information, particularly the Sequence number. const account_info = await client.request({ - "command": "account_info", - "account": standby_wallet.address + command: 'account_info', + account: standby_wallet.address, }) - + my_sequence = account_info.result.account_data.Sequence - results += "\n\nSequence Number: " + my_sequence + "\n\n" + results += '\n\nSequence Number: ' + my_sequence + '\n\n' standbyResultField.value = results -/* ################################### + /* ################################### Create ticket numbers for the batch Without tickets, if one transaction fails, all others in the batch fail. @@ -107,76 +104,75 @@ async function batchMint() { //-------------------------------------------- Create the transaction hash. const ticketTransaction = await client.autofill({ - "TransactionType": "TicketCreate", - "Account": standby_wallet.address, - "TicketCount": nftokenCount, - "Sequence": my_sequence + TransactionType: 'TicketCreate', + Account: standby_wallet.address, + TicketCount: nftokenCount, + Sequence: my_sequence, }) //---------------------------------------------------- Sign the transaction. const signedTransaction = standby_wallet.sign(ticketTransaction) - + //-------------------------- Submit the transaction and wait for the result. const tx = await client.submitAndWait(signedTransaction.tx_blob) let response = await client.request({ - "command": "account_objects", - "account": standby_wallet.address, - "type": "ticket" + command: 'account_objects', + account: standby_wallet.address, + type: 'ticket', }) - + //------------------------------------ Populate the tickets array variable. let tickets = [] - for (let i=0; i < nftokenCount; i++) { + for (let i = 0; i < nftokenCount; i++) { tickets[i] = response.result.account_objects[i].TicketSequence } //-------------------------------------------------------- Report progress. - results += "Tickets generated, minting NFTs.\n\n" + results += 'Tickets generated, minting NFTs.\n\n' standbyResultField.value = results -// ################################### -// Mint NFTs - - for (let i=0; i < nftokenCount; i++) { - const transactionBlob = { - "TransactionType": "NFTokenMint", - "Account": standby_wallet.classicAddress, - "URI": xrpl.convertStringToHex(standbyTokenUrlField.value), - "Flags": parseInt(standbyFlagsField.value), - "TransferFee": parseInt(standbyTransferFeeField.value), - "Sequence": 0, - "TicketSequence": tickets[i], - "LastLedgerSequence": null, - "NFTokenTaxon": 0 - } + // ################################### + // Mint NFTs - //------------------------------------------------------ Submit signed blob. - const tx = client.submit(transactionBlob, { wallet: standby_wallet} ) + for (let i = 0; i < nftokenCount; i++) { + const transactionBlob = { + TransactionType: 'NFTokenMint', + Account: standby_wallet.classicAddress, + URI: xrpl.convertStringToHex(standbyTokenUrlField.value), + Flags: parseInt(standbyFlagsField.value), + TransferFee: parseInt(standbyTransferFeeField.value), + Sequence: 0, + TicketSequence: tickets[i], + LastLedgerSequence: null, + NFTokenTaxon: 0, + } + + //------------------------------------------------------ Submit signed blob. + const tx = client.submit(transactionBlob, { wallet: standby_wallet }) } - results += "\n\nNFTs:\n" + results += '\n\nNFTs:\n' let nfts = await client.request({ - method: "account_nfts", + method: 'account_nfts', account: standby_wallet.classicAddress, - limit: 400 + limit: 400, }) - results += JSON.stringify(nfts,null,2) - while (nfts.result.marker) - { - nfts = await client.request({ - method: "account_nfts", - account: standby_wallet.classicAddress, - limit: 400, - marker: nfts.result.marker - }) - results += '\n' + JSON.stringify(nfts,null,2) + results += JSON.stringify(nfts, null, 2) + while (nfts.result.marker) { + nfts = await client.request({ + method: 'account_nfts', + account: standby_wallet.classicAddress, + limit: 400, + marker: nfts.result.marker, + }) + results += '\n' + JSON.stringify(nfts, null, 2) } - results += '\n\nTransaction result: '+ tx.result.meta.TransactionResult - results += '\n\nNFTs: ' + JSON.stringify(nfts, null, 2) - standbyBalanceField.value = (await client.getXrpBalance(standby_wallet.address)) - standbyResultField.value = results + results += '\n\nTransaction result: ' + tx.result.meta.TransactionResult + results += '\n\nNFTs: ' + JSON.stringify(nfts, null, 2) + standbyBalanceField.value = await client.getXrpBalance(standby_wallet.address) + standbyResultField.value = results client.disconnect() -} // End of batchMint() \ No newline at end of file +} // End of batchMint() diff --git a/_code-samples/quickstart/js/ripplex8-escrow.js b/_code-samples/quickstart/js/ripplex8-escrow.js index 0066b6c5d9..49dc016b69 100644 --- a/_code-samples/quickstart/js/ripplex8-escrow.js +++ b/_code-samples/quickstart/js/ripplex8-escrow.js @@ -3,11 +3,11 @@ // ******************************************************* function addSeconds(numOfSeconds, date = new Date()) { - date.setSeconds(date.getSeconds() + numOfSeconds); + date.setSeconds(date.getSeconds() + numOfSeconds) date = Math.floor(date / 1000) date = date - 946684800 - return date; + return date } // ******************************************************* @@ -15,7 +15,6 @@ function addSeconds(numOfSeconds, date = new Date()) { // ******************************************************* async function createTimeEscrow() { - //-------------------------------------------- Prepare Finish and Cancel Dates let escrow_finish_date = new Date() @@ -24,32 +23,32 @@ async function createTimeEscrow() { escrow_cancel_date = addSeconds(parseInt(standbyEscrowCancelDateField.value)) //------------------------------------------------------Connect to the Ledger - results = "Connecting to the selected ledger.\n" + results = 'Connecting to the selected ledger.\n' standbyResultField.value = results let net = getNet() - results = "Connecting to " + net + "....\n" + results = 'Connecting to ' + net + '....\n' const client = new xrpl.Client(net) await client.connect() - results += "Connected. Creating time-based escrow.\n" + results += 'Connected. Creating time-based escrow.\n' standbyResultField.value = results const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) const operational_wallet = xrpl.Wallet.fromSeed(operationalSeedField.value) const sendAmount = standbyAmountField.value - - results += "\nstandby_wallet.address: = " + standby_wallet.address + + results += '\nstandby_wallet.address: = ' + standby_wallet.address standbyResultField.value = results // ------------------------------------------------------- Prepare transaction const escrowTx = await client.autofill({ - "TransactionType": "EscrowCreate", - "Account": standby_wallet.address, - "Amount": xrpl.xrpToDrops(sendAmount), - "Destination": standbyDestinationField.value, - "FinishAfter": escrow_finish_date, - "CancelAfter": escrow_cancel_date + TransactionType: 'EscrowCreate', + Account: standby_wallet.address, + Amount: xrpl.xrpToDrops(sendAmount), + Destination: standbyDestinationField.value, + FinishAfter: escrow_finish_date, + CancelAfter: escrow_cancel_date, }) // ------------------------------------------------ Sign prepared instructions @@ -57,16 +56,14 @@ async function createTimeEscrow() { // -------------------------------------------------------- Submit signed blob const tx = await client.submitAndWait(signed.tx_blob) - results += "\nSequence Number (Save!): " + JSON.stringify(tx.result.Sequence) - results += "\n\nBalance changes: " + - JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) - standbyBalanceField.value = (await client.getXrpBalance(standby_wallet.address)) - operationalBalanceField.value = (await client.getXrpBalance(operational_wallet.address)) + results += '\nSequence Number (Save!): ' + JSON.stringify(tx.result.Sequence) + results += '\n\nBalance changes: ' + JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) + standbyBalanceField.value = await client.getXrpBalance(standby_wallet.address) + operationalBalanceField.value = await client.getXrpBalance(operational_wallet.address) standbyResultField.value = results // ----------------------------------------------Disconnect from the XRP Ledger client.disconnect() - } // End of createTimeEscrow() // ******************************************************* @@ -74,31 +71,30 @@ async function createTimeEscrow() { // ******************************************************* async function finishEscrow() { - - results = "Connecting to the selected ledger.\n" + results = 'Connecting to the selected ledger.\n' operationalResultField.value = results let net = getNet() results = 'Connecting to ' + getNet() + '....' const client = new xrpl.Client(net) await client.connect() - results += "\nConnected. Finishing escrow.\n" + results += '\nConnected. Finishing escrow.\n' operationalResultField.value = results const operational_wallet = xrpl.Wallet.fromSeed(operationalSeedField.value) const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) const sendAmount = operationalAmountField.value - - results += "\noperational_wallet.address: = " + operational_wallet.address + + results += '\noperational_wallet.address: = ' + operational_wallet.address operationalResultField.value = results // ------------------------------------------------------- Prepare transaction // Note that the destination is hard coded. const prepared = await client.autofill({ - "TransactionType": "EscrowFinish", - "Account": operationalAccountField.value, - "Owner": standbyAccountField.value, - "OfferSequence": parseInt(operationalEscrowSequenceField.value) + TransactionType: 'EscrowFinish', + Account: operationalAccountField.value, + Owner: standbyAccountField.value, + OfferSequence: parseInt(operationalEscrowSequenceField.value), }) // ------------------------------------------------ Sign prepared instructions @@ -106,11 +102,10 @@ async function finishEscrow() { // -------------------------------------------------------- Submit signed blob const tx = await client.submitAndWait(signed.tx_blob) - results += "\nBalance changes: " + - JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) + results += '\nBalance changes: ' + JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) operationalResultField.value = results - standbyBalanceField.value = (await client.getXrpBalance(standby_wallet.address)) - operationalBalanceField.value = (await client.getXrpBalance(operational_wallet.address)) + standbyBalanceField.value = await client.getXrpBalance(standby_wallet.address) + operationalBalanceField.value = await client.getXrpBalance(operational_wallet.address) client.disconnect() } // End of finishEscrow() @@ -124,18 +119,18 @@ async function getStandbyEscrows() { const client = new xrpl.Client(net) results = 'Connecting to ' + getNet() + '....' standbyResultField.value = results - - await client.connect() + + await client.connect() results += '\nConnected.' standbyResultField.value = results - results= "\nGetting standby account escrows...\n" + results = '\nGetting standby account escrows...\n' const escrow_objects = await client.request({ - "id": 5, - "command": "account_objects", - "account": standbyAccountField.value, - "ledger_index": "validated", - "type": "escrow" + id: 5, + command: 'account_objects', + account: standbyAccountField.value, + ledger_index: 'validated', + type: 'escrow', }) results += JSON.stringify(escrow_objects.result, null, 2) standbyResultField.value = results @@ -152,23 +147,22 @@ async function getOperationalEscrows() { const client = new xrpl.Client(net) results = 'Connecting to ' + getNet() + '....' operationalResultField.value = results - - await client.connect() + + await client.connect() results += '\nConnected.' operationalResultField.value = results - results= "\nGetting operational account escrows...\n" + results = '\nGetting operational account escrows...\n' const escrow_objects = await client.request({ - "id": 5, - "command": "account_objects", - "account": operationalAccountField.value, - "ledger_index": "validated", - "type": "escrow" + id: 5, + command: 'account_objects', + account: operationalAccountField.value, + ledger_index: 'validated', + type: 'escrow', }) results += JSON.stringify(escrow_objects.result, null, 2) operationalResultField.value = results client.disconnect() - } // End of getOperationalEscrows() // ******************************************************* @@ -180,21 +174,20 @@ async function getTransaction() { const client = new xrpl.Client(net) results = 'Connecting to ' + getNet() + '....' operationalResultField.value = results - - await client.connect() + + await client.connect() results += '\nConnected.' operationalResultField.value = results - results= "\nGetting transaction information...\n" + results = '\nGetting transaction information...\n' const tx_info = await client.request({ - "id": 1, - "command": "tx", - "transaction": operationalTransactionField.value, + id: 1, + command: 'tx', + transaction: operationalTransactionField.value, }) results += JSON.stringify(tx_info.result, null, 2) operationalResultField.value = results client.disconnect() - } // End of getTransaction() // ******************************************************* @@ -206,8 +199,8 @@ async function cancelEscrow() { const client = new xrpl.Client(net) results = 'Connecting to ' + getNet() + '....' standbyResultField.value = results - - await client.connect() + + await client.connect() results += '\nConnected.' standbyResultField.value = results @@ -217,10 +210,10 @@ async function cancelEscrow() { // ------------------------------------------------------- Prepare transaction const prepared = await client.autofill({ - "TransactionType": "EscrowCancel", - "Account": standby_wallet.address, - "Owner": standbyAccountField.value, - "OfferSequence": parseInt(standbyEscrowSequenceNumberField.value) + TransactionType: 'EscrowCancel', + Account: standby_wallet.address, + Owner: standbyAccountField.value, + OfferSequence: parseInt(standbyEscrowSequenceNumberField.value), }) // ------------------------------------------------ Sign prepared instructions @@ -229,12 +222,11 @@ async function cancelEscrow() { // -------------------------------------------------------- Submit signed blob const tx = await client.submitAndWait(signed.tx_blob) - results += "\nBalance changes: " + - JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) - standbyResultField.value = results - - standbyBalanceField.value = (await client.getXrpBalance(standby_wallet.address)) - operationalBalanceField.value = (await client.getXrpBalance(operational_wallet.address)) + results += '\nBalance changes: ' + JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) + standbyResultField.value = results + + standbyBalanceField.value = await client.getXrpBalance(standby_wallet.address) + operationalBalanceField.value = await client.getXrpBalance(operational_wallet.address) client.disconnect() -} \ No newline at end of file +} diff --git a/_code-samples/quickstart/js/ripplex9-escrow-condition.js b/_code-samples/quickstart/js/ripplex9-escrow-condition.js index 8b12dbb905..011e95c5e6 100644 --- a/_code-samples/quickstart/js/ripplex9-escrow-condition.js +++ b/_code-samples/quickstart/js/ripplex9-escrow-condition.js @@ -3,37 +3,36 @@ // ******************************************************* async function createConditionalEscrow() { - //------------------------------------------------------Connect to the Ledger - results = "Connecting to the selected ledger.\n" + results = 'Connecting to the selected ledger.\n' standbyResultField.value = results let net = getNet() - results = "Connecting to " + net + "....\n" + results = 'Connecting to ' + net + '....\n' const client = new xrpl.Client(net) await client.connect() - results += "Connected. Creating conditional escrow.\n" + results += 'Connected. Creating conditional escrow.\n' standbyResultField.value = results const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) const operational_wallet = xrpl.Wallet.fromSeed(operationalSeedField.value) const sendAmount = standbyAmountField.value - - results += "\nstandby_wallet.address: = " + standby_wallet.address + + results += '\nstandby_wallet.address: = ' + standby_wallet.address standbyResultField.value = results - + let escrow_cancel_date = new Date() escrow_cancel_date = addSeconds(parseInt(standbyEscrowCancelDateField.value)) // ------------------------------------------------------- Prepare transaction const escrowTx = await client.autofill({ - "TransactionType": "EscrowCreate", - "Account": standby_wallet.address, - "Amount": xrpl.xrpToDrops(sendAmount), - "Destination": standbyDestinationField.value, - "CancelAfter": escrow_cancel_date, - "Condition": standbyEscrowConditionField.value + TransactionType: 'EscrowCreate', + Account: standby_wallet.address, + Amount: xrpl.xrpToDrops(sendAmount), + Destination: standbyDestinationField.value, + CancelAfter: escrow_cancel_date, + Condition: standbyEscrowConditionField.value, }) // ------------------------------------------------ Sign prepared instructions @@ -41,16 +40,14 @@ async function createConditionalEscrow() { // -------------------------------------------------------- Submit signed blob const tx = await client.submitAndWait(signed.tx_blob) - results += "\nSequence Number (Save!): " + JSON.stringify(tx.result.Sequence) - results += "\n\nBalance changes: " + - JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) - standbyBalanceField.value = (await client.getXrpBalance(standby_wallet.address)) - operationalBalanceField.value = (await client.getXrpBalance(operational_wallet.address)) + results += '\nSequence Number (Save!): ' + JSON.stringify(tx.result.Sequence) + results += '\n\nBalance changes: ' + JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) + standbyBalanceField.value = await client.getXrpBalance(standby_wallet.address) + operationalBalanceField.value = await client.getXrpBalance(operational_wallet.address) standbyResultField.value = results // ----------------------------------------------Disconnect from the XRP Ledger client.disconnect() - } // End of createTimeEscrow() // ******************************************************* @@ -58,31 +55,31 @@ async function createConditionalEscrow() { // ******************************************************* async function finishConditionalEscrow() { - results = "Connecting to the selected ledger.\n" + results = 'Connecting to the selected ledger.\n' operationalResultField.value = results let net = getNet() results += 'Connecting to ' + getNet() + '....' const client = new xrpl.Client(net) await client.connect() - results += "\nConnected. Finishing escrow.\n" + results += '\nConnected. Finishing escrow.\n' operationalResultField.value = results const operational_wallet = xrpl.Wallet.fromSeed(operationalSeedField.value) const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) const sendAmount = operationalAmountField.value - - results += "\noperational_wallet.address: = " + operational_wallet.address + + results += '\noperational_wallet.address: = ' + operational_wallet.address operationalResultField.value = results // ------------------------------------------------------- Prepare transaction const prepared = await client.autofill({ - "TransactionType": "EscrowFinish", - "Account": operationalAccountField.value, - "Owner": standbyAccountField.value, - "OfferSequence": parseInt(operationalEscrowSequenceField.value), - "Condition": standbyEscrowConditionField.value, - "Fulfillment": operationalFulfillmentField.value + TransactionType: 'EscrowFinish', + Account: operationalAccountField.value, + Owner: standbyAccountField.value, + OfferSequence: parseInt(operationalEscrowSequenceField.value), + Condition: standbyEscrowConditionField.value, + Fulfillment: operationalFulfillmentField.value, }) // ------------------------------------------------ Sign prepared instructions @@ -90,12 +87,10 @@ async function finishConditionalEscrow() { // -------------------------------------------------------- Submit signed blob const tx = await client.submitAndWait(signed.tx_blob) - results += "\nBalance changes: " + - JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) + results += '\nBalance changes: ' + JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2) operationalResultField.value = results - standbyBalanceField.value = (await client.getXrpBalance(standby_wallet.address)) - operationalBalanceField.value = (await client.getXrpBalance(operational_wallet.address)) + standbyBalanceField.value = await client.getXrpBalance(standby_wallet.address) + operationalBalanceField.value = await client.getXrpBalance(operational_wallet.address) client.disconnect() - -} // End of finishEscrow()`` \ No newline at end of file +} // End of finishEscrow()`` diff --git a/_code-samples/reliable-tx-submission/js/reliableTransactionSubmission.ts b/_code-samples/reliable-tx-submission/js/reliableTransactionSubmission.ts index bfd63d4404..5e2552e082 100644 --- a/_code-samples/reliable-tx-submission/js/reliableTransactionSubmission.ts +++ b/_code-samples/reliable-tx-submission/js/reliableTransactionSubmission.ts @@ -1,4 +1,4 @@ -import { Client, Payment } from 'xrpl'; +import { Client, Payment } from 'xrpl' /** * When implementing Reliable Transaction Submission, there are many potential solutions, each with different trade-offs. @@ -37,45 +37,45 @@ import { Client, Payment } from 'xrpl'; * and cannot "succeed" in an unexpected way. */ -const client = new Client("wss://s.altnet.rippletest.net:51233"); +const client = new Client('wss://s.altnet.rippletest.net:51233') -void sendReliableTx(); +void sendReliableTx() async function sendReliableTx(): Promise { - await client.connect(); + await client.connect() // creating wallets as prerequisite - const { wallet: wallet1 } = await client.fundWallet(); - const { wallet: wallet2 } = await client.fundWallet(); + const { wallet: wallet1 } = await client.fundWallet() + const { wallet: wallet2 } = await client.fundWallet() - console.log("Balances of wallets before Payment tx"); + console.log('Balances of wallets before Payment tx') - console.log(`Balance of ${wallet1.classicAddress} is ${await client.getXrpBalance(wallet1.classicAddress)}XRP`); - console.log(`Balance of ${wallet2.classicAddress} is ${await client.getXrpBalance(wallet2.classicAddress)}XRP`); + console.log(`Balance of ${wallet1.classicAddress} is ${await client.getXrpBalance(wallet1.classicAddress)}XRP`) + console.log(`Balance of ${wallet2.classicAddress} is ${await client.getXrpBalance(wallet2.classicAddress)}XRP`) // create a Payment tx and submit and wait for tx to be validated const payment: Payment = { - TransactionType: "Payment", + TransactionType: 'Payment', Account: wallet1.classicAddress, - Amount: "1000", + Amount: '1000', Destination: wallet2.classicAddress, - }; + } - console.log("Submitting a Payment transaction...") + console.log('Submitting a Payment transaction...') const paymentResponse = await client.submitAndWait(payment, { wallet: wallet1, - }); - console.log("\nTransaction was submitted.\n"); + }) + console.log('\nTransaction was submitted.\n') const txResponse = await client.request({ - command: "tx", + command: 'tx', transaction: paymentResponse.result.hash, - }); + }) // With the following reponse we are able to see that the tx was indeed validated. - console.log("Validated:", txResponse.result.validated); + console.log('Validated:', txResponse.result.validated) - console.log("Balances of wallets after Payment tx:"); - console.log(`Balance of ${wallet1.classicAddress} is ${await client.getXrpBalance(wallet1.classicAddress)}XRP`); - console.log(`Balance of ${wallet2.classicAddress} is ${await client.getXrpBalance(wallet2.classicAddress)}XRP`); + console.log('Balances of wallets after Payment tx:') + console.log(`Balance of ${wallet1.classicAddress} is ${await client.getXrpBalance(wallet1.classicAddress)}XRP`) + console.log(`Balance of ${wallet2.classicAddress} is ${await client.getXrpBalance(wallet2.classicAddress)}XRP`) - await client.disconnect(); + await client.disconnect() } diff --git a/_code-samples/require-destination-tags/js/demo.html b/_code-samples/require-destination-tags/js/demo.html index 0af0c400dd..ac65a6a1df 100644 --- a/_code-samples/require-destination-tags/js/demo.html +++ b/_code-samples/require-destination-tags/js/demo.html @@ -1,9 +1,11 @@ - + - - - - - -Open your browser's console (F12) to see the logs. + + + + + + + Open your browser's console (F12) to see the logs. + diff --git a/_code-samples/require-destination-tags/js/require-destination-tags.js b/_code-samples/require-destination-tags/js/require-destination-tags.js index 89a68a57a9..86886d7a95 100644 --- a/_code-samples/require-destination-tags/js/require-destination-tags.js +++ b/_code-samples/require-destination-tags/js/require-destination-tags.js @@ -3,48 +3,47 @@ // Dependencies for Node.js. // In browsers, use - - -Open your browser's console (F12) to see the logs. + + + Code Sample - Send XRP + + + + + Open your browser's console (F12) to see the logs. + diff --git a/_code-samples/send-xrp/js/send-xrp.js b/_code-samples/send-xrp/js/send-xrp.js index 1a7e64a889..5546d90e55 100644 --- a/_code-samples/send-xrp/js/send-xrp.js +++ b/_code-samples/send-xrp/js/send-xrp.js @@ -1,40 +1,40 @@ // Dependencies for Node.js. // In browsers, use a - - - -Open your browser's console (F12) to see the logs. + + + Code Sample - Trade in the Decentralized Exchange + + + + + + Open your browser's console (F12) to see the logs. + diff --git a/_code-samples/trade-in-the-decentralized-exchange/js/trade-in-the-dex.js b/_code-samples/trade-in-the-decentralized-exchange/js/trade-in-the-dex.js index 7f808f3fc6..f0fce15bf4 100644 --- a/_code-samples/trade-in-the-decentralized-exchange/js/trade-in-the-dex.js +++ b/_code-samples/trade-in-the-decentralized-exchange/js/trade-in-the-dex.js @@ -3,7 +3,7 @@ // Dependencies for Node.js. // In browsers, use - - -Open your browser's console (F12) to see the logs. + + + Code Sample - Use Tickets + + + + + Open your browser's console (F12) to see the logs. + diff --git a/_code-samples/use-tickets/js/use-tickets-multisig.js b/_code-samples/use-tickets/js/use-tickets-multisig.js index 5f8eab07f1..f1352cdce8 100644 --- a/_code-samples/use-tickets/js/use-tickets-multisig.js +++ b/_code-samples/use-tickets/js/use-tickets-multisig.js @@ -1,129 +1,129 @@ -if (typeof module !== "undefined") { - // Use var here because const/let are block-scoped to the if statement. - var xrpl = require('xrpl') +if (typeof module !== 'undefined') { + // Use var here because const/let are block-scoped to the if statement. + var xrpl = require('xrpl') } - // List which Tickets are outstanding against one’s own account and use Tickets to collect signatures for multisign transactions +// List which Tickets are outstanding against one’s own account and use Tickets to collect signatures for multisign transactions // https://xrpl.org/use-tickets.html // https://xrpl.org/signerlistset.html#signerlistset // https://xrpl.org/multi-signing.html#multi-signing async function main() { // Connect to a testnet node - console.log("Connecting to Testnet...") + console.log('Connecting to Testnet...') const client = new xrpl.Client('wss://s.altnet.rippletest.net:51233') await client.connect() - - // Get account credentials from the Testnet Faucet - console.log("Requesting account credentials from the Testnet faucet, this may take awhile...") - const { wallet: main_wallet } = await client.fundWallet() - // Signer keys don't need to be funded on the ledger, it only needs to be cryptographically valid - // Thus, we could generate keys and set them as signers without the need to fund their accounts - // But we'll still fund them for testing purposes... - const { wallet: wallet_1 } = await client.fundWallet() - const { wallet: wallet_2 } = await client.fundWallet() - const { wallet: wallet_3 } = await client.fundWallet() + // Get account credentials from the Testnet Faucet + console.log('Requesting account credentials from the Testnet faucet, this may take awhile...') + const { wallet: main_wallet } = await client.fundWallet() - console.log(" Main Account: ", main_wallet.address) - console.log(" Seed: ", main_wallet.seed) + // Signer keys don't need to be funded on the ledger, it only needs to be cryptographically valid + // Thus, we could generate keys and set them as signers without the need to fund their accounts + // But we'll still fund them for testing purposes... + const { wallet: wallet_1 } = await client.fundWallet() + const { wallet: wallet_2 } = await client.fundWallet() + const { wallet: wallet_3 } = await client.fundWallet() - console.log("\n Signer 1: ", wallet_1.address) - console.log(" Signer 2: ", wallet_2.address) - console.log(" Signer 3: ", wallet_3.address) + console.log(' Main Account: ', main_wallet.address) + console.log(' Seed: ', main_wallet.seed) - // Send SignerListSet transaction - // Since each signer is given a signer weight of 1 and there are 3 signers, the maximum quorom would be 3 - // SignerQuorom is a target number for the signer weights - // A multisig from this list is valid only if the sum weights of the signatures provided is greater than or equal to the SignerQuorom - const signerLiSetSignerList_tx = { - TransactionType: "SignerListSet", - Account: main_wallet.classicAddress, - SignerEntries: [ - { - SignerEntry: { - Account: wallet_1.classicAddress, - SignerWeight: 1, - }, - }, - { - SignerEntry: { - Account: wallet_2.classicAddress, - SignerWeight: 1, - }, - }, - { - SignerEntry: { - Account: wallet_3.classicAddress, - SignerWeight: 1, - }, - } - ], - SignerQuorum: 2, - } + console.log('\n Signer 1: ', wallet_1.address) + console.log(' Signer 2: ', wallet_2.address) + console.log(' Signer 3: ', wallet_3.address) - const signerLiSetSignerList_tx_prepared = await client.autofill(signerLiSetSignerList_tx) - const SetSignerList_tx_signed = main_wallet.sign(signerLiSetSignerList_tx_prepared) - console.log(`\n SignerListSet Tx hash: ${SetSignerList_tx_signed.hash}`) - - const setsignerlist_submit = await client.submitAndWait(SetSignerList_tx_signed.tx_blob) - console.log(`\t Submit result: ${setsignerlist_submit.result.meta.TransactionResult}`) - - const CreateTicket_tx = await client.autofill({ - TransactionType: "TicketCreate", - Account: main_wallet.address, - TicketCount: 3 - }) - - const CreateTicket_tx_signed = main_wallet.sign(CreateTicket_tx) - console.log("\n CreateTicket Tx hash:", CreateTicket_tx_signed.hash) - - const ticket_submit = await client.submitAndWait(CreateTicket_tx_signed.tx_blob) - console.log(" Submit result:", ticket_submit.result.meta.TransactionResult) - - const ticket_response = await client.request({ - command: "account_objects", - account: main_wallet.address, - ledger_index: "validated", - type: "ticket" - }) - - console.log(`\n- Tickets issued by ${main_wallet.address}:\n`) - for (let i = 0; i < ticket_response.result.account_objects.length; i++) { - console.log(`Ticket ${i+1}: ${ticket_response.result.account_objects[i].TicketSequence}`) - } - - // We'll use this ticket on our tx - const ticket_1 = ticket_response.result.account_objects[0].TicketSequence - - console.log(`\n Ticket sequence ${ticket_1} will be used for our multi-sig transaction`) - - const Payment_tx = { - "TransactionType": "AccountSet", - "Account": main_wallet.address, - "TicketSequence": ticket_1, - "LastLedgerSequence": null, - "Sequence": 0 - } - - const Payment_tx_prepared = await client.autofill(Payment_tx, signersCount=3) - - // Each signer will sign the prepared tx (AccountSet_tx) and their signatures will be combines into 1 multi-sig transaction - const { tx_blob: Payment_tx_signed_1 } = wallet_1.sign(Payment_tx_prepared, multisign=true) - const { tx_blob: Payment_tx_signed_2 } = wallet_2.sign(Payment_tx_prepared, multisign=true) - const { tx_blob: Payment_tx_signed_3 } = wallet_3.sign(Payment_tx_prepared, multisign=true) - - console.log("\n All signers have signed the transaction with their corresponding keys") - - // Combine 3 of the signers' signatures to form a multi-sig transaction - const multisignedTx = xrpl.multisign([Payment_tx_signed_1, Payment_tx_signed_2, Payment_tx_signed_3]) - - const multisig_submit = await client.submitAndWait(multisignedTx) - console.log("\n Multi-sig Submit result:", multisig_submit.result.meta.TransactionResult) - console.log("\n Multi-sig Tx Binary:", multisignedTx) - - client.disconnect() - - // End main() + // Send SignerListSet transaction + // Since each signer is given a signer weight of 1 and there are 3 signers, the maximum quorom would be 3 + // SignerQuorom is a target number for the signer weights + // A multisig from this list is valid only if the sum weights of the signatures provided is greater than or equal to the SignerQuorom + const signerLiSetSignerList_tx = { + TransactionType: 'SignerListSet', + Account: main_wallet.classicAddress, + SignerEntries: [ + { + SignerEntry: { + Account: wallet_1.classicAddress, + SignerWeight: 1, + }, + }, + { + SignerEntry: { + Account: wallet_2.classicAddress, + SignerWeight: 1, + }, + }, + { + SignerEntry: { + Account: wallet_3.classicAddress, + SignerWeight: 1, + }, + }, + ], + SignerQuorum: 2, } - - main() + + const signerLiSetSignerList_tx_prepared = await client.autofill(signerLiSetSignerList_tx) + const SetSignerList_tx_signed = main_wallet.sign(signerLiSetSignerList_tx_prepared) + console.log(`\n SignerListSet Tx hash: ${SetSignerList_tx_signed.hash}`) + + const setsignerlist_submit = await client.submitAndWait(SetSignerList_tx_signed.tx_blob) + console.log(`\t Submit result: ${setsignerlist_submit.result.meta.TransactionResult}`) + + const CreateTicket_tx = await client.autofill({ + TransactionType: 'TicketCreate', + Account: main_wallet.address, + TicketCount: 3, + }) + + const CreateTicket_tx_signed = main_wallet.sign(CreateTicket_tx) + console.log('\n CreateTicket Tx hash:', CreateTicket_tx_signed.hash) + + const ticket_submit = await client.submitAndWait(CreateTicket_tx_signed.tx_blob) + console.log(' Submit result:', ticket_submit.result.meta.TransactionResult) + + const ticket_response = await client.request({ + command: 'account_objects', + account: main_wallet.address, + ledger_index: 'validated', + type: 'ticket', + }) + + console.log(`\n- Tickets issued by ${main_wallet.address}:\n`) + for (let i = 0; i < ticket_response.result.account_objects.length; i++) { + console.log(`Ticket ${i + 1}: ${ticket_response.result.account_objects[i].TicketSequence}`) + } + + // We'll use this ticket on our tx + const ticket_1 = ticket_response.result.account_objects[0].TicketSequence + + console.log(`\n Ticket sequence ${ticket_1} will be used for our multi-sig transaction`) + + const Payment_tx = { + TransactionType: 'AccountSet', + Account: main_wallet.address, + TicketSequence: ticket_1, + LastLedgerSequence: null, + Sequence: 0, + } + + const Payment_tx_prepared = await client.autofill(Payment_tx, (signersCount = 3)) + + // Each signer will sign the prepared tx (AccountSet_tx) and their signatures will be combines into 1 multi-sig transaction + const { tx_blob: Payment_tx_signed_1 } = wallet_1.sign(Payment_tx_prepared, (multisign = true)) + const { tx_blob: Payment_tx_signed_2 } = wallet_2.sign(Payment_tx_prepared, (multisign = true)) + const { tx_blob: Payment_tx_signed_3 } = wallet_3.sign(Payment_tx_prepared, (multisign = true)) + + console.log('\n All signers have signed the transaction with their corresponding keys') + + // Combine 3 of the signers' signatures to form a multi-sig transaction + const multisignedTx = xrpl.multisign([Payment_tx_signed_1, Payment_tx_signed_2, Payment_tx_signed_3]) + + const multisig_submit = await client.submitAndWait(multisignedTx) + console.log('\n Multi-sig Submit result:', multisig_submit.result.meta.TransactionResult) + console.log('\n Multi-sig Tx Binary:', multisignedTx) + + client.disconnect() + + // End main() +} + +main() diff --git a/_code-samples/use-tickets/js/use-tickets.js b/_code-samples/use-tickets/js/use-tickets.js index 2d618f4d28..45ab239e5f 100644 --- a/_code-samples/use-tickets/js/use-tickets.js +++ b/_code-samples/use-tickets/js/use-tickets.js @@ -1,35 +1,35 @@ // Dependencies for Node.js. // In browsers, use a ## DEX Structure The XRP Ledger's decentralized exchange consists of an unlimited number of currency pairs, tracked on-demand when users make trades. A currency pair can consist of XRP and a token or two different tokens; tokens are always identified by the combination of an issuer and a currency code. It is possible to trade between two tokens with the same currency code and different issuers, or the same issuer and different currency codes. -As with all changes to the XRP Ledger, you need to send a [transaction](../../transactions/index.md) to make a trade. A trade in the XRP Ledger is called an [Offer](offers.md). An Offer is effectively a [_limit order_](https://en.wikipedia.org/wiki/Order_(exchange)#Limit_order) to buy or sell a specific amount of one currency (XRP or a token) for a specific amount of another. When the network executes an Offer, if there are any matching Offers for the same currency pair, they are consumed starting with the best exchange rate first. +As with all changes to the XRP Ledger, you need to send a [transaction](../../transactions/index.md) to make a trade. A trade in the XRP Ledger is called an [Offer](offers.md). An Offer is effectively a [_limit order_]() to buy or sell a specific amount of one currency (XRP or a token) for a specific amount of another. When the network executes an Offer, if there are any matching Offers for the same currency pair, they are consumed starting with the best exchange rate first. An Offer can be fully or partially filled; if it's not fully filled right away, it becomes a passive Offer object in the ledger for the remaining amount. Later on, other Offers or [Cross-currency payments](../../payment-types/cross-currency-payments.md) can match and consume the Offer. Because of this, Offers can execute at better than their requested exchange rate when initially placed, or at exactly their stated exchange rate later on (aside from minor differences to account for rounding). @@ -55,23 +56,22 @@ When trading two tokens, [auto-bridging](autobridging.md) improves exchange rate ### Example Trade -[{% inline-svg file="/docs/img/decentralized-exchange-example-trade.svg" /%}](/docs/img/decentralized-exchange-example-trade.svg "Diagram: Partially filled offer to buy a token for XRP.") +[{% inline-svg file="/docs/img/decentralized-exchange-example-trade.svg" /%}](/docs/img/decentralized-exchange-example-trade.svg 'Diagram: Partially filled offer to buy a token for XRP.') The above diagram shows an example trade in the decentralized exchange. In this example, a trader named Tran places an Offer to buy 100 tokens with the currency code FOO issued by a fictional business called WayGate. (For brevity, "FOO.WayGate" refers to these tokens.) Tran specifies that he is willing to spend up to 1000 XRP for the full total. When Tran's transaction is processed, the following things happen: 1. The network calculates the exchange rate of Tran's Offer, by dividing the amount to buy by the amount to pay. -0. The network finds the order book for the reverse of Tran's Offer: in this case, that means the order book for selling FOO.WayGate and buying XRP. This order book already has several existing Offers from other traders for varying amounts and exchange rates. -0. Tran's Offer "consumes" matching Offers, starting with the best exchange rate and working its way down, until either Tran's Offer has been fully filled, or there are no more Offers whose exchange rate is equal or better than the rate specified in Tran's Offer. In this example, only 22 FOO.WayGate are available at the requested rate or better. The consumed Offers are removed from the order book. -0. Tran receives the amount of FOO.WayGate that the trade was able to acquire, from the various traders who had previous placed orders to sell it. These tokens go to Tran's [trust line](../fungible-tokens/index.md) to WayGate for FOO. (If Tran did not already have that trust line, one is automatically created.) -0. In return, those traders receive XRP from Tran according to their stated exchange rates. -0. The network calculates the remainder of Tran's Offer: since the original Offer was to buy 100 FOO.WayGate and so far Tran has received 22, the remainder is 78 FOO.WayGate. Using the original exchange rate, that means that the rest of Tran's Offer is now to buy 78 FOO.WayGate for 780 XRP. -0. The resulting "remainder" gets placed onto the order book for trades going the same direction as Tran's: selling XRP and buying FOO.WayGate. +2. The network finds the order book for the reverse of Tran's Offer: in this case, that means the order book for selling FOO.WayGate and buying XRP. This order book already has several existing Offers from other traders for varying amounts and exchange rates. +3. Tran's Offer "consumes" matching Offers, starting with the best exchange rate and working its way down, until either Tran's Offer has been fully filled, or there are no more Offers whose exchange rate is equal or better than the rate specified in Tran's Offer. In this example, only 22 FOO.WayGate are available at the requested rate or better. The consumed Offers are removed from the order book. +4. Tran receives the amount of FOO.WayGate that the trade was able to acquire, from the various traders who had previous placed orders to sell it. These tokens go to Tran's [trust line](../fungible-tokens/index.md) to WayGate for FOO. (If Tran did not already have that trust line, one is automatically created.) +5. In return, those traders receive XRP from Tran according to their stated exchange rates. +6. The network calculates the remainder of Tran's Offer: since the original Offer was to buy 100 FOO.WayGate and so far Tran has received 22, the remainder is 78 FOO.WayGate. Using the original exchange rate, that means that the rest of Tran's Offer is now to buy 78 FOO.WayGate for 780 XRP. +7. The resulting "remainder" gets placed onto the order book for trades going the same direction as Tran's: selling XRP and buying FOO.WayGate. Later transactions, including ones executed immediately after Tran's in the _same_ ledger, use the updated order books for their trades, so they can consume part or all of Tran's Offer until it's fully filled or Tran cancels it. {% admonition type="info" name="Note" %}The canonical order transactions execute in when a ledger is closed and validated is not the same as the order those transactions were sent. When multiple transactions affect the same order book in the same ledger, the final results of those transactions may be very different than the tentative results calculated at the time of transaction submission. For more details on when transactions' results are or are not final, see [Finality of Results](../../transactions/finality-of-results/index.md).{% /admonition %} - ## DEX Limitations The decentralized exchange is designed with the following limitations: @@ -85,17 +85,16 @@ As a decentralized system, the XRP Ledger does not have any personal information ## See Also - **Concepts:** - - See [Offers](offers.md) for details on how trades work in the XRP Ledger. - - See [Tokens](../index.md) for an overview of how various types of value can be represented in the XRP Ledger. + - See [Offers](offers.md) for details on how trades work in the XRP Ledger. + - See [Tokens](../index.md) for an overview of how various types of value can be represented in the XRP Ledger. - **References:** - - [account_offers method][] to look up Offers placed by an account - - [book_offers method][] to look up Offers to buy or sell a given currency pair - - [OfferCreate transaction][] to place a new Offer or replace an existing Offer - - [OfferCancel transaction][] to cancel an existing Offer - - [Offer object][] for the data structure of passive Offers in the ledger - - [DirectoryNode object][] for the data structure that tracks all the Offers for a given currency pair and exchange rate. + - [account_offers method][] to look up Offers placed by an account + - [book_offers method][] to look up Offers to buy or sell a given currency pair + - [OfferCreate transaction][] to place a new Offer or replace an existing Offer + - [OfferCancel transaction][] to cancel an existing Offer + - [Offer object][] for the data structure of passive Offers in the ledger + - [DirectoryNode object][] for the data structure that tracks all the Offers for a given currency pair and exchange rate. {% raw-partial file="/docs/_snippets/common-links.md" /%} - {% child-pages /%} diff --git a/docs/concepts/tokens/decentralized-exchange/offers.md b/docs/concepts/tokens/decentralized-exchange/offers.md index 79b1789000..f680c0c579 100644 --- a/docs/concepts/tokens/decentralized-exchange/offers.md +++ b/docs/concepts/tokens/decentralized-exchange/offers.md @@ -2,10 +2,11 @@ html: offers.html parent: decentralized-exchange.html seo: - description: Offers are the XRP Ledger's form of currency trading orders. Understand their lifecycle and properties. + description: Offers are the XRP Ledger's form of currency trading orders. Understand their lifecycle and properties. labels: - Decentralized Exchange --- + # Offers In the XRP Ledger's [decentralized exchange](index.md), trade orders are called "Offers". Offers can trade XRP with [tokens](../index.md), or tokens for other tokens, including tokens with the same currency code but different issuers. (Tokens with the same code but different issuers can also sometimes be exchanged through [rippling](../fungible-tokens/rippling.md).) @@ -29,7 +30,6 @@ While you have an Offer in the ledger, it sets aside some of your XRP toward the - A **Fill or Kill** Offer is not placed into the ledger, _and_ it is canceled if the full amount is not filled when it initially executes. This is similar to "Immediate or Cancel" except it _cannot_ be partially filled. - A **Passive** Offer does not consume matching Offers that have the exact same exchange rate (going the other direction), and instead is placed directly into the ledger. You can use this to create an exact peg between two assets. Passive Offers still consume other Offers that have a _better_ exchange rate going the other way. - ### Funding Requirements When you try to place an Offer, the transaction is rejected as "unfunded" if you don't have at least some of the asset that the trade would sell. More specifically: @@ -50,11 +50,11 @@ If you place an Offer that crosses any of your own Offers that exist in the ledg It is possible for an Offer to become temporarily or permanently _unfunded_ in the following cases: - If the owner no longer has any of the sell asset. - - The Offer becomes funded again when the owner obtains more of that asset. + - The Offer becomes funded again when the owner obtains more of that asset. - If the sell asset is a token in a [frozen trust line](../fungible-tokens/freezes.md). - - The Offer becomes funded again when the trust line is no longer frozen. + - The Offer becomes funded again when the trust line is no longer frozen. - If the Offer needs to create a new trust line, but the owner does not have enough XRP for the increased [reserve](../../accounts/reserves.md). (See [Offers and Trust](#offers-and-trust).) - - The offer becomes funded again when the owner obtains more XRP, or the reserve requirements decrease. + - The offer becomes funded again when the owner obtains more XRP, or the reserve requirements decrease. - If the Offer is expired. (See [Offer Expiration](#offer-expiration).) An unfunded Offer stays on the ledger until a transaction removes it. Ways that an Offer can be removed from the ledger include: @@ -63,7 +63,7 @@ An unfunded Offer stays on the ledger until a transaction removes it. Ways that - The owner explicitly cancels the Offer. - The owner implicitly cancels the Offer by sending a new Offer that crosses it. - The Offer is found to be unfunded or expired during transaction processing. Typically this means that another Offer tried to consume it and could not. - - This includes cases where the remaining amount that can be paid out by the Offer rounds down to zero. + - This includes cases where the remaining amount that can be paid out by the Offer rounds down to zero. ### Tracking Unfunded Offers @@ -71,7 +71,6 @@ Tracking the funding status of all Offers can be computationally taxing. In part A client application can locally track the funding status of Offers. To do this, first retrieve an order book using the [book_offers method][] and check the `taker_gets_funded` field of Offers. Then, [subscribe](../../../references/http-websocket-apis/public-api-methods/subscription-methods/subscribe.md) to the `transactions` stream and watch the transaction metadata to see which Offers are modified. - ## Offers and Trust The limit values of [trust lines](../fungible-tokens/index.md) do not affect Offers. In other words, you can use an Offer to acquire more than the maximum amount you trust an issuer for. @@ -80,13 +79,11 @@ However, holding tokens still requires a trust line to the issuer. When an Offer Trust line limits protect you from receiving more of a token as payment than you want. Offers can go beyond those limits because they are an explicit statement of how much of the token you want. - ## Offer Preference Existing Offers are grouped by exchange rate, which is measured as the ratio between `TakerGets` and `TakerPays`. Offers with a higher exchange rate are taken preferentially. (That is, the person accepting the offer receives as much as possible for the amount of currency they pay out.) Offers with the same exchange rate are taken on the basis of which offer was placed first. -When Offers execute in the same ledger block, the order in which they execute is determined by the [canonical order](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/misc/CanonicalTXSet.cpp "Source code: Transaction ordering") in which transactions were applied to the ledger. Transactions that fail initially can be pushed back and retried at the end of the ledger. This behavior is designed to be deterministic, efficient, and hard to game. - +When Offers execute in the same ledger block, the order in which they execute is determined by the [canonical order](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/misc/CanonicalTXSet.cpp 'Source code: Transaction ordering') in which transactions were applied to the ledger. Transactions that fail initially can be pushed back and retried at the end of the ledger. This behavior is designed to be deterministic, efficient, and hard to game. ## Offer Expiration @@ -108,17 +105,16 @@ For more information, see [Permissioned DEXes](./permissioned-dexes.md). {% amendment-disclaimer name="PermissionedDEX" /%} - ## See Also - **Concepts:** - - [Tokens](../index.md) - - [Paths](../fungible-tokens/paths.md) + - [Tokens](../index.md) + - [Paths](../fungible-tokens/paths.md) - **References:** - - [account_offers method][] - - [book_offers method][] - - [OfferCreate transaction][] - - [OfferCancel transaction][] - - [Offer object](../../../references/protocol/ledger-data/ledger-entry-types/offer.md) + - [account_offers method][] + - [book_offers method][] + - [OfferCreate transaction][] + - [OfferCancel transaction][] + - [Offer object](../../../references/protocol/ledger-data/ledger-entry-types/offer.md) {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/concepts/tokens/decentralized-exchange/permissioned-dexes.md b/docs/concepts/tokens/decentralized-exchange/permissioned-dexes.md index dd3e996dcf..3a3a29d751 100644 --- a/docs/concepts/tokens/decentralized-exchange/permissioned-dexes.md +++ b/docs/concepts/tokens/decentralized-exchange/permissioned-dexes.md @@ -1,10 +1,11 @@ --- seo: - description: The definition and details of a Permissioned Domain instance. + description: The definition and details of a Permissioned Domain instance. labels: - Compliance - Decentralized Exchange --- + # Permissioned DEXes Permissioned DEXes are controlled environments for trading within the XRP Ledger's [decentralized exchange (DEX)](./index.md). Trading in a permissioned DEX works like trading in the open DEX, except that a [_permissioned domain_](./permissioned-domains.md) controls who can place and accept offers. By relying on permissioned DEXes, regulated businesses can participate in trading on the XRP Ledger while ensuring that all the counterparties they deal with have been properly vetted. @@ -13,10 +14,9 @@ There can be multiple permissioned DEXes within the XRP Ledger blockchain. Each {% amendment-disclaimer name="PermissionedDEX" /%} - ## Background: The Need for Permissioned DEXes -The XRP Ledger has had a single, _open DEX_ since it launched. Anyone with an XRPL account can trade in this DEX, and the system automatically executes matching orders, also called offers, with no regard for who placed them. Orders also provide liquidity to cross-currency payments, which can potentially execute several trades as part of one atomic transaction. +The XRP Ledger has had a single, _open DEX_ since it launched. Anyone with an XRPL account can trade in this DEX, and the system automatically executes matching orders, also called offers, with no regard for who placed them. Orders also provide liquidity to cross-currency payments, which can potentially execute several trades as part of one atomic transaction. Since the system inherently knows nothing about the people and organizations behind the accounts, there is no certainty who the counterparties are for any given trade. However, economic sanctions and financial regulations often place strict rules against transacting with criminals, terrorists, or specific countries. Given these limitations, regulated financial institutions may not be willing to take the risk of trading in the open DEX. @@ -26,7 +26,6 @@ More background reading: - [Offers](./offers.md) - [Permissioned Domains](./permissioned-domains.md) - ## Key Roles in a Permissioned DEX To use a permissioned DEX, parties with the following roles and responsibilities need to exist: @@ -41,10 +40,9 @@ It is possible for a single account to play more than one of these roles. For ex _Figure: A permissioned order book, linked to a permissioned domain. Owen is both the domain owner and the issuer of one of the domain's accepted credentials. Tracy is able to trade in the permissioned order book because she holds an appropriate credential issued by Owen._ - ## Understanding the Permissioned DEX Structure: Offer Types and Interaction -With the permissioned DEXes feature, a trade offer can be _open_, _permissioned_, or _hybrid_. +With the permissioned DEXes feature, a trade offer can be _open_, _permissioned_, or _hybrid_. ### Open Offers @@ -52,28 +50,27 @@ An open offer uses the open DEX and can be matched by anyone else's open offer, ### Permissioned Offers -A permissioned offer specifies a domain ID and is only valid if a permissioned domain with the matching ID exists and the account placing the offer has access to that domain because they hold the correct credentials. Permissioned offers are placed into an order book for the given domain and currency pair, separate from the open DEX's order book for that currency pair. +A permissioned offer specifies a domain ID and is only valid if a permissioned domain with the matching ID exists and the account placing the offer has access to that domain because they hold the correct credentials. Permissioned offers are placed into an order book for the given domain and currency pair, separate from the open DEX's order book for that currency pair. Permissioned offers can only execute by matching other permissioned offers that specify the same domain ID. [Cross-currency payments](../../payment-types/cross-currency-payments.md) can also specify a domain ID, in which case they are restricted to only consuming offers from the corresponding permissioned DEX. Trades in a permissioned DEX can still use [auto-bridging](./autobridging.md) as long as the necessary orders all exist in the same permissioned DEX. ### Hybrid Offers -A hybrid offer specifies a domain ID and a flag marking it as hybrid. Like a permissioned offer, it is only valid if the specified permissioned domain exists and the account placing the offer has access to that domain. However, a hybrid offer can match offers in both the specified DEX and the open DEX. +A hybrid offer specifies a domain ID and a flag marking it as hybrid. Like a permissioned offer, it is only valid if the specified permissioned domain exists and the account placing the offer has access to that domain. However, a hybrid offer can match offers in both the specified DEX and the open DEX. Hybrid offers are tracked in both the open DEX order book and the domain-specific order book for their currency pair, and can be consumed by matching offers from either. When placed, they preferentially match offers from the permissioned DEX. - ### How Open, Hybrid, and Permissioned Offers Match In summary, see the following table summarizing what offers can match: | Offer/Payment Type | Open Offer | Hybrid Offer | Permissioned Offer | AMM | -|--------------------|------------|--------------|--------------------|-----| +| ------------------ | ---------- | ------------ | ------------------ | --- | | Open | ✅ | ✅ | ❌ | ✅ | | Hybrid | ✅ | ✅ | ✅ (same domain) | ✅ | | Permissioned | ❌ | ❌ | ✅ (same domain) | ❌ | -There is no single ledger entry to represent a given permissioned DEX: it implicitly exists as all the order books with the same domain ID. Order books with a given domain ID are created when valid offers are placed using that domain ID, and those order books are automatically deleted when they are empty. +There is no single ledger entry to represent a given permissioned DEX: it implicitly exists as all the order books with the same domain ID. Order books with a given domain ID are created when valid offers are placed using that domain ID, and those order books are automatically deleted when they are empty. A single transaction can use multiple order books with the same domain ID—in other words, different currency pairs in the same permissioned DEX—either as part of a longer [cross-currency payment](../../payment-types/cross-currency-payments.md) or through auto-bridging. A hybrid offer can match a mix of permissioned and open offers, but a transaction cannot use multiple different domains. @@ -83,10 +80,9 @@ The amount of liquidity and the best exchange rate available in any given DEX ma _Figure: The open DEX, and two different permissioned DEXes, each containing order books for a subset of possible currency pairs._ - ### Invalid Permissioned Offers -In addition to the ways offers can be unfunded in the open DEX, offers in a permissioned DEX can become _invalid_. Invalid offers are treated the same way as unfunded offers and are automatically removed whenever a transaction modifies the order book containing them. They can remain in the ledger data indefinitely until a transaction removes them, but they cannot be executed if they are invalid. +In addition to the ways offers can be unfunded in the open DEX, offers in a permissioned DEX can become _invalid_. Invalid offers are treated the same way as unfunded offers and are automatically removed whenever a transaction modifies the order book containing them. They can remain in the ledger data indefinitely until a transaction removes them, but they cannot be executed if they are invalid. Reasons a permissioned offer can become invalid include: @@ -110,6 +106,6 @@ Each permissioned DEX is separate, with its own order books and offers. A single #### Security Considerations for Permissioned DEXes -The security and fairness of a permissioned DEX depend on the owner of the permissioned domain and the issuers of credentials that grant access to it. At a baseline, the definition of each credential and the requirements for getting that credential are defined and enforced by the credential issuer, so the existence of a permissioned domain does not inherently mean anything about who is able to use it in practice. +The security and fairness of a permissioned DEX depend on the owner of the permissioned domain and the issuers of credentials that grant access to it. At a baseline, the definition of each credential and the requirements for getting that credential are defined and enforced by the credential issuer, so the existence of a permissioned domain does not inherently mean anything about who is able to use it in practice. A credential issuer can issue or revoke credentials at their discretion. If they are unreliable or compromised, so is any permissioned domain that accepts their credentials. Similarly, the domain owner can modify the domain's list of accepted credentials to grant or deny access to the domain arbitrarily, so if they are untrustworthy or compromised, the domain is as well. diff --git a/docs/concepts/tokens/decentralized-exchange/permissioned-domains.md b/docs/concepts/tokens/decentralized-exchange/permissioned-domains.md index 1f694429b5..d210209b76 100644 --- a/docs/concepts/tokens/decentralized-exchange/permissioned-domains.md +++ b/docs/concepts/tokens/decentralized-exchange/permissioned-domains.md @@ -1,11 +1,12 @@ --- seo: - description: Learn how Permissioned Domains on the XRP Ledger enable controlled, secure blockchain environments. Explore their role in decentralized exchanges (DEXes) and lending protocols. + description: Learn how Permissioned Domains on the XRP Ledger enable controlled, secure blockchain environments. Explore their role in decentralized exchanges (DEXes) and lending protocols. labels: - - Compliance - - Permissioned Domains + - Compliance + - Permissioned Domains status: not_enabled --- + # Permissioned Domains Permissioned domains are controlled environments within the broader ecosystem of the XRP Ledger blockchain. Domains do nothing on their own, but features such as [Permissioned DEXes][] and Lending Protocols can use domains to restrict and manage access, so traditional financial institutions can offer services on chain while complying with various compliance rules. diff --git a/docs/concepts/tokens/decentralized-exchange/ticksize.md b/docs/concepts/tokens/decentralized-exchange/ticksize.md index 688a11f94c..4cc3524001 100644 --- a/docs/concepts/tokens/decentralized-exchange/ticksize.md +++ b/docs/concepts/tokens/decentralized-exchange/ticksize.md @@ -2,11 +2,12 @@ html: ticksize.html parent: decentralized-exchange.html seo: - description: Issuers can set custom tick sizes for currencies to reduce churn in order books over miniscule differences in exchange rates. + description: Issuers can set custom tick sizes for currencies to reduce churn in order books over miniscule differences in exchange rates. labels: - Decentralized Exchange - Tokens --- + # Tick Size When an Offer is placed into an order book, its exchange rate is truncated based on the `TickSize` values set by the issuers of the currencies involved in the Offer. When trading XRP and a token, the `TickSize` from the token's issuer applies. When trading two tokens, the Offer uses the smaller `TickSize` value (that is, the one with fewer significant digits). If neither token has a `TickSize` set, the default behavior applies. @@ -21,8 +22,8 @@ When an issuer enables, disables, or changes the `TickSize`, Offers that were pl - [Dev Blog: Introducing the TickSize Amendment](https://xrpl.org/blog/2017/ticksize-voting.html#ticksize-amendment-overview) - **References:** - - [AccountSet transaction][] - - [book_offers method][] - - [OfferCreate transaction][] + - [AccountSet transaction][] + - [book_offers method][] + - [OfferCreate transaction][] {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/concepts/tokens/fungible-tokens/authorized-trust-lines.md b/docs/concepts/tokens/fungible-tokens/authorized-trust-lines.md index 4de7adfe9e..d69f81f453 100644 --- a/docs/concepts/tokens/fungible-tokens/authorized-trust-lines.md +++ b/docs/concepts/tokens/fungible-tokens/authorized-trust-lines.md @@ -2,11 +2,12 @@ html: authorized-trust-lines.html parent: trust-lines-and-issuing.html seo: - description: Authorized trust lines is a setting to limit who can hold a token. + description: Authorized trust lines is a setting to limit who can hold a token. labels: - Tokens - Security --- + # Authorized Trust Lines The Authorized Trust Lines feature enables issuers to create [trust line tokens](./trust-line-tokens.md) that can only be held by accounts that the issuer specifically authorizes—in other words, allow-listing access to all of an issuer's tokens. This page describes the feature as it applies to trust line tokens, but [multi-purpose tokens](./multi-purpose-tokens.md) have a similar setting on a per-token basis. Allow-listing does not apply to XRP. @@ -38,7 +39,6 @@ With a stablecoin on the XRP Ledger and the use of Authorized Trust Lines, the p Even if you don't intend to use Authorized Trust Lines, you can enable the Require Auth setting on [operational and standby accounts](../../accounts/account-types.md), and then never have those accounts approve any trust lines. This prevents those accounts from issuing tokens by accident (for example, if a user accidentally trusts the wrong address). This is only a precaution, and does not stop the operational and standby accounts from transferring the _issuer's_ tokens, as intended. - ## Technical Details ### Enabling Require Auth @@ -68,7 +68,6 @@ POST http://localhost:5005/ {% partial file="/docs/_snippets/secret-key-warning.md" /%} - ## Checking Whether an Account Has Require Auth Enabled To see whether an account has the Require Auth setting enabled, use the [account_info method][] to look up the account. Compare the value of the `Flags` field (in the `result.account_data` object) with the [bitwise flags defined for an AccountRoot ledger object](../../../references/protocol/ledger-data/ledger-entry-types/accountroot.md). @@ -111,25 +110,23 @@ POST http://localhost:8088/ {% partial file="/docs/_snippets/secret-key-warning.md" /%} - ## Checking Whether Trust Lines Are Authorized To see whether a trust line has been authorized, use the [account_lines method][] to look up the trust line. In the request, provide the customer's address in the `account` field and the issuer's address in the `peer` field. In the response's `result.lines` array, find the object whose `currency` field indicates that it represents a trust line for the currency you want. If that object has a `peer_authorized` field with the value `true`, then the issuer (the address you used as the request's `peer` field) has authorized the trust line. - ## See Also - **Concepts:** - - [Deposit Authorization](../../accounts/depositauth.md) - - [Freezing Issued Currencies](freezes.md) + - [Deposit Authorization](../../accounts/depositauth.md) + - [Freezing Issued Currencies](freezes.md) - **References:** - - [account_lines method][] - - [account_info method][] - - [AccountSet transaction][] - - [TrustSet transaction][] - - [AccountRoot Flags](../../../references/protocol/ledger-data/ledger-entry-types/accountroot.md#accountroot-flags) - - [RippleState (trust line) Flags](../../../references/protocol/ledger-data/ledger-entry-types/ripplestate.md#ripplestate-flags) + - [account_lines method][] + - [account_info method][] + - [AccountSet transaction][] + - [TrustSet transaction][] + - [AccountRoot Flags](../../../references/protocol/ledger-data/ledger-entry-types/accountroot.md#accountroot-flags) + - [RippleState (trust line) Flags](../../../references/protocol/ledger-data/ledger-entry-types/ripplestate.md#ripplestate-flags) {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/concepts/tokens/fungible-tokens/clawing-back-tokens.md b/docs/concepts/tokens/fungible-tokens/clawing-back-tokens.md index bac98b9196..13cb236ac0 100644 --- a/docs/concepts/tokens/fungible-tokens/clawing-back-tokens.md +++ b/docs/concepts/tokens/fungible-tokens/clawing-back-tokens.md @@ -1,18 +1,18 @@ --- seo: - description: Issuers can claw back their tokens for compliance purposes if they enable the Clawback feature before issuing tokens. + description: Issuers can claw back their tokens for compliance purposes if they enable the Clawback feature before issuing tokens. labels: - Tokens --- + # Clawing Back Tokens -For regulatory purposes, some issuers need the ability to recover tokens after they are distributed to accounts. For example, if an issuer were to discover that tokens were sent to an account sanctioned for illegal activity, the issuer could recover, or *claw back*, the funds. The ability to claw back funds is controlled differently for different types of tokens: +For regulatory purposes, some issuers need the ability to recover tokens after they are distributed to accounts. For example, if an issuer were to discover that tokens were sent to an account sanctioned for illegal activity, the issuer could recover, or _claw back_, the funds. The ability to claw back funds is controlled differently for different types of tokens: - Issuers can gain the ability to claw back any of their [trust line tokens](./trust-line-tokens.md) by enabling the **Allow Clawback** flag on their issuing account. This flag cannot be enabled if the issuer has already issued trust line tokens. {% amendment-disclaimer name="Clawback" /%} - [MPTs](./multi-purpose-tokens.md) can be clawed back by the issuer if the **Can Clawback** flag is enabled for the MPT issuance. {% amendment-disclaimer name="MPTokensV1" /%} - XRP is not a token and cannot be clawed back. - ## Allow Clawback for Trust Line Tokens Clawback is disabled by default. To use clawback, you must send an [AccountSet transaction][] to enable the **Allow Trust Line Clawback** setting. **An issuer with any existing tokens cannot enable Clawback.** You can only enable **Allow Trust Line Clawback** if you have a completely empty owner directory, meaning you must do so before you set up any trust lines, offers, escrows, payment channels, checks, or signer lists. @@ -31,10 +31,10 @@ Clawback is disabled by default. To use clawback, the MPT must be configured wit "TransactionType": "Clawback", "Account": "rp6abvbTbjoce8ZDJkT6snvxTZSYMBCC9S", "Amount": { - "currency": "FOO", - "issuer": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", - "value": "314.159" - } + "currency": "FOO", + "issuer": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", + "value": "314.159" + } } ``` diff --git a/docs/concepts/tokens/fungible-tokens/common-misconceptions-about-freezes.md b/docs/concepts/tokens/fungible-tokens/common-misconceptions-about-freezes.md index 7569e1d37b..f2668c91a9 100644 --- a/docs/concepts/tokens/fungible-tokens/common-misconceptions-about-freezes.md +++ b/docs/concepts/tokens/fungible-tokens/common-misconceptions-about-freezes.md @@ -2,10 +2,11 @@ parent: freezes.html html: common-misconceptions-about-freezes.html seo: - description: Clarify common misunderstandings about the XRP Ledger's freeze feature. + description: Clarify common misunderstandings about the XRP Ledger's freeze feature. labels: - Tokens --- + # Common Misunderstandings about Freezes It is a common misconception that Ripple or others can freeze XRP, similar to how centralized services like PayPal can suspend your account and prevent you from accessing your funds. In reality, while the XRP Ledger does have a [freeze feature](freezes.md), it can only be used on issued tokens, not on XRP. **No one can freeze XRP.** @@ -24,7 +25,6 @@ The _issuer_ of a token can freeze your trust line for _that token specifically_ Furthermore, token issuers can voluntarily and permanently _give up_ their ability to freeze tokens. This ["No Freeze"](freezes.md#no-freeze) setting is intended to allow tokens to behave more like physical cash, in that third parties can't stop you from using it. - ## But I Heard Ripple Froze Jed McCaleb's XRP? This is a misrepresentation of events that actually happened in 2015–2016. Jed McCaleb, a Ripple founder who left the company in 2013, attempted to sell over $1 million US worth of XRP on Bitstamp, a custodial exchange. Ripple representatives argued that this sale would breach an agreement that Jed and Ripple made in 2014. At Ripple's request, [Bitstamp froze Jed's Bitstamp account](https://www.coindesk.com/markets/2015/04/02/1-million-legal-fight-ensnares-ripple-bitstamp-and-jed-mccaleb/) and took the dispute to court. The case was [eventually settled](https://www.coindesk.com/markets/2016/02/12/ripple-settles-1-million-lawsuit-with-former-executive-and-founder/) with both sides declaring they were happy with the outcome. diff --git a/docs/concepts/tokens/fungible-tokens/deep-freeze.md b/docs/concepts/tokens/fungible-tokens/deep-freeze.md index a486fc3b01..6b00e81fa1 100644 --- a/docs/concepts/tokens/fungible-tokens/deep-freeze.md +++ b/docs/concepts/tokens/fungible-tokens/deep-freeze.md @@ -1,11 +1,12 @@ --- seo: - description: Deep Freeze ensures that frozen token holders can neither send nor receive frozen funds until their trust line is unfrozen. + description: Deep Freeze ensures that frozen token holders can neither send nor receive frozen funds until their trust line is unfrozen. labels: - Tokens - Freeze - Deep Freeze --- + # Deep Freeze Deep Freeze lets token issuers on the XRP Ledger prevent token misuse by frozen account holders. It enhances interactions between frozen assets and payments, ensuring that frozen token holders cannot receive funds until or unless their trust line is unfrozen. These changes enable token issuers to more easily comply with regulations on the XRPL. For example, it prevents tokens from flowing to wallets identified on sanctions lists, thereby enhancing regulatory compliance for use cases such as regulated stablecoins and real-world assets (RWA). @@ -34,10 +35,10 @@ An individual address can deep freeze its trust line to an issuer or financial i Deep Freeze introduces two flags, `lsfLowDeepFreeze` and `lsfHighDeepFreeze`, in the `RippleState` (trust line) object. -| Flag Name | Flag Value | Description | -|-----------|-------------|-------------| -| `lsfLowDeepFreeze` | `0x02000000` | The low account has deep-frozen the trust line, preventing the high account from sending and receiving the asset. | -| `lsfHighDeepFreeze` | `0x04000000` | The high account has deep-frozen the trust line, preventing the low account from sending and receiving the asset. | +| Flag Name | Flag Value | Description | +| ------------------- | ------------ | ----------------------------------------------------------------------------------------------------------------- | +| `lsfLowDeepFreeze` | `0x02000000` | The low account has deep-frozen the trust line, preventing the high account from sending and receiving the asset. | +| `lsfHighDeepFreeze` | `0x04000000` | The high account has deep-frozen the trust line, preventing the low account from sending and receiving the asset. | See [High vs. Low Account](../../../references/protocol/ledger-data/ledger-entry-types/ripplestate.md#high-vs-low-account). @@ -45,10 +46,10 @@ See [High vs. Low Account](../../../references/protocol/ledger-data/ledger-entry Deep Freeze introduces two flags, `tfSetDeepFreeze` and `tfClearDeepFreeze`, in the `TrustSet` transaction. -| Flag Name | Flag Value | Description | -|-----------|-------------|-------------| -| `tfSetDeepFreeze` | `0x00400000` | Deep freeze the trust line. | -| `tfClearDeepFreeze` | `0x00800000` | Clear a deep-freeze on the trust line. | +| Flag Name | Flag Value | Description | +| ------------------- | ------------ | -------------------------------------- | +| `tfSetDeepFreeze` | `0x00400000` | Deep freeze the trust line. | +| `tfClearDeepFreeze` | `0x00800000` | Clear a deep-freeze on the trust line. | A `TrustSet` transaction trying to set `tfSetDeepFreeze` succeeds if and only if one of the following is true: diff --git a/docs/concepts/tokens/fungible-tokens/demurrage.md b/docs/concepts/tokens/fungible-tokens/demurrage.md index 5bc8e8e3b2..14aec220fc 100644 --- a/docs/concepts/tokens/fungible-tokens/demurrage.md +++ b/docs/concepts/tokens/fungible-tokens/demurrage.md @@ -2,9 +2,10 @@ html: demurrage.html parent: trust-lines-and-issuing.html seo: - description: (Obsolete) Some older XRP Ledger tools used to support currency codes with built-in interest and negative interest rates. + description: (Obsolete) Some older XRP Ledger tools used to support currency codes with built-in interest and negative interest rates. status: removed --- + # Demurrage {% admonition type="danger" name="Warning" %}Demurrage is a deprecated feature with no ongoing support. This page describes historical behavior of older versions of XRP Ledger software.{% /admonition %} @@ -40,11 +41,10 @@ To convert between display amounts and ledger amounts, you can use the following 1. Calculate the value of `( e ^ (t ÷ τ) )`. We call this number the "demurrage coefficient". The demurrage coefficient is always relative to a specific time, such as the current time. 2. Apply it to the amount to convert: - - To convert ledger values to display values, multiply by the demurrage coefficient. - - To convert display values to ledger values, divide by the demurrage coefficient. + - To convert ledger values to display values, multiply by the demurrage coefficient. + - To convert display values to ledger values, divide by the demurrage coefficient. 3. If necessary, adjust the resulting value so that it can be represented to the desired accuracy. Ledger values are limited to 15 decimal digits of precision, according to the XRP Ledger's [token format](../../../references/protocol/data-types/currency-formats.md#token-precision). - ## Interest-Bearing Currency Code Format Rather than using the [standard currency code format](../../../references/protocol/data-types/currency-formats.md#currency-codes), tokens that have positive interest or negative interest (demurrage) use a 160-bit currency code in the following format: @@ -53,7 +53,7 @@ Rather than using the [standard currency code format](../../../references/protoc 1. The first 8 bits must be `0x01`. 2. The next 24 bits represent 3 characters of ASCII. - This is expected to be an ISO 4217 code. It supports the same characters as the standard format's ASCII characters. + This is expected to be an ISO 4217 code. It supports the same characters as the standard format's ASCII characters. 3. The next 24 bits MUST be all `0`s. 4. The next 64 bits are the interest rate of the currency, represented as "[e-folding time](http://en.wikipedia.org/wiki/E-folding)" in an IEEE 754 double format. 5. The next 24 bits are reserved and should be all `0`s. @@ -83,7 +83,7 @@ To support interest-bearing and demurraging tokens, client applications must imp ### ripple-lib Support -Demurrage was supported in ripple-lib versions **0.7.37** through **0.12.9**. Demurrage is ***not supported*** in most modern libraries. +Demurrage was supported in ripple-lib versions **0.7.37** through **0.12.9**. Demurrage is **_not supported_** in most modern libraries. The following code samples show how to use compatible versions of ripple-lib to convert between ledger values and display values. Also see the [Ripple Demurrage Calculator](https://ripple.github.io/ripple-demurrage-tool/). @@ -94,14 +94,13 @@ To convert from a display value to a ledger value, use `Amount.from_human()`: // and pass in a reference_date that represents the current date // (in this case, ledger value 10 XAU with 0.5% annual demurrage, // at 2017-11-04T00:07:50Z.) -var demAmount = ripple.Amount.from_human('10 0158415500000000C1F76FF6ECB0BAC600000000', - {reference_date:563069270}); +var demAmount = ripple.Amount.from_human('10 0158415500000000C1F76FF6ECB0BAC600000000', { reference_date: 563069270 }) // set the issuer -demAmount.set_issuer("rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh"); +demAmount.set_issuer('rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh') // get the JSON format for the ledger amount -console.log(demAmount.to_json()); +console.log(demAmount.to_json()) // { "value": "10.93625123082769", // "currency": "0158415500000000C1F76FF6ECB0BAC600000000", @@ -113,14 +112,15 @@ To convert from a ledger value to a display value: ```js // create an Amount object with the ledger value, ledgerAmount = ripple.Amount.from_json({ - "currency": "015841551A748AD2C1F76FF6ECB0CCCD00000000", - "issuer": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "value": "10.93625123082769"}) + currency: '015841551A748AD2C1F76FF6ECB0CCCD00000000', + issuer: 'rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh', + value: '10.93625123082769', +}) // apply interest up to the current time to get the display amount -var displayAmount = demAmount.applyInterest(new Date()); +var displayAmount = demAmount.applyInterest(new Date()) -console.log(displayAmount.to_json()); +console.log(displayAmount.to_json()) // { "value": "9.999998874657716", // "currency": "0158415500000000C1F76FF6ECB0BAC600000000", diff --git a/docs/concepts/tokens/fungible-tokens/freezes.md b/docs/concepts/tokens/fungible-tokens/freezes.md index 27bae7f773..4c9ae59d22 100644 --- a/docs/concepts/tokens/fungible-tokens/freezes.md +++ b/docs/concepts/tokens/fungible-tokens/freezes.md @@ -1,9 +1,10 @@ --- seo: - description: Issuers can freeze their issued tokens for compliance purposes. + description: Issuers can freeze their issued tokens for compliance purposes. labels: - Tokens --- + # Freezing Tokens Issuers can freeze the tokens they issue in the XRP Ledger. **This does not apply to XRP,** which is the native asset of the XRP Ledger, not an issued token. @@ -14,24 +15,23 @@ In certain cases, to meet regulatory requirements, or while investigating suspic Trust line tokens have these settings related to freezes: -* [**Individual Freeze**](#individual-freeze) - Freeze one counterparty, so they cannot spend tokens. -* [**Deep Freeze**](./deep-freeze.md) - Further freeze one counterparty, so that they cannot receive those tokens, either. -* [**Global Freeze**](#global-freeze) - Freeze all counterparties. -* [**No Freeze**](#no-freeze) - Permanently give up the ability to freeze individual counterparties, as well as the ability to end a global freeze. +- [**Individual Freeze**](#individual-freeze) - Freeze one counterparty, so they cannot spend tokens. +- [**Deep Freeze**](./deep-freeze.md) - Further freeze one counterparty, so that they cannot receive those tokens, either. +- [**Global Freeze**](#global-freeze) - Freeze all counterparties. +- [**No Freeze**](#no-freeze) - Permanently give up the ability to freeze individual counterparties, as well as the ability to end a global freeze. All freeze settings can be enacted regardless of whether the balance(s) to be frozen are positive or negative. Either the token issuer or the currency holder can freeze a trust line; however, the effect is minimal when a currency holder enacts a freeze. [MPTs](./multi-purpose-tokens.md) have similar functionality, but it is called "locking" and individual freezes always function like deep freeze. - ## Individual Freeze The **Individual Freeze** feature is a setting on a [trust line](index.md). When an issuer enables the Individual Freeze setting, the following rules apply to the tokens in that trust line: -* Payments can still occur directly between the two parties of the frozen trust line. -* The counterparty of that trust line can no longer decrease its balance on the frozen trust line, except in direct payments to the issuer. The counterparty can only send the frozen currencies directly to the issuer. -* The counterparty can still receive payments from others on the frozen trust line. -* The counterparty's offers to sell the tokens in the frozen trust line are [considered unfunded](../decentralized-exchange/offers.md#lifecycle-of-an-offer). +- Payments can still occur directly between the two parties of the frozen trust line. +- The counterparty of that trust line can no longer decrease its balance on the frozen trust line, except in direct payments to the issuer. The counterparty can only send the frozen currencies directly to the issuer. +- The counterparty can still receive payments from others on the frozen trust line. +- The counterparty's offers to sell the tokens in the frozen trust line are [considered unfunded](../decentralized-exchange/offers.md#lifecycle-of-an-offer). Reminder: Trust lines do not hold XRP. XRP cannot be frozen. @@ -43,14 +43,13 @@ The Individual Freeze applies to a single trust line. To freeze multiple tokens An address cannot enable the Individual Freeze setting if it has enabled the [No Freeze](#no-freeze) setting. - ## Global Freeze The **Global Freeze** feature is a setting on an account. An account can enable a global freeze only on itself. When an issuer enables the Global Freeze feature, the following rules apply to all tokens they issue: -* All counterparties of the frozen issuer can no longer decrease the balances in their trust lines to the frozen account, except in direct payments to the issuer. (This also affects the issuer's own [operational addresses](../../accounts/account-types.md).) -* Counterparties of the frozen issuer can still send and receive payments directly to and from the issuing address. -* All offers to sell tokens issued by the frozen address are [considered unfunded](../decentralized-exchange/offers.md#lifecycle-of-an-offer). +- All counterparties of the frozen issuer can no longer decrease the balances in their trust lines to the frozen account, except in direct payments to the issuer. (This also affects the issuer's own [operational addresses](../../accounts/account-types.md).) +- Counterparties of the frozen issuer can still send and receive payments directly to and from the issuing address. +- All offers to sell tokens issued by the frozen address are [considered unfunded](../decentralized-exchange/offers.md#lifecycle-of-an-offer). Reminder: addresses cannot issue XRP. Global freezes do not apply to XRP. @@ -62,7 +61,6 @@ Global Freeze applies to _all_ tokens issued and held by the address. You cannot An address can always enable the Global Freeze setting. However, if the address has enabled the [No Freeze](#no-freeze) setting, it can never _disable_ Global Freeze. - ## No Freeze The **No Freeze** feature is a setting on an address that permanently gives up the ability to freeze tokens arbitrarily. An issuer can use this feature to make its tokens as "more like physical money" in the sense that the issuer cannot interfere with counterparties trading the tokens among themselves. @@ -71,8 +69,8 @@ Reminder: XRP already cannot be frozen. The No Freeze feature only applies to ot The No Freeze setting has two effects: -* The issuer can no longer enable Individual Freeze on trust lines to any counterparty. -* The issuer can still enact a Global Freeze, but cannot _disable_ the Global Freeze. +- The issuer can no longer enable Individual Freeze on trust lines to any counterparty. +- The issuer can still enact a Global Freeze, but cannot _disable_ the Global Freeze. The XRP Ledger cannot force an issuer to honor the obligations that its issued funds represent, so No Freeze does stop a stablecoin issuer from defaulting on its obligations. However, No Freeze ensures that an issuer does not use the Global Freeze feature unfairly against specific users. @@ -80,23 +78,21 @@ The No Freeze setting applies to all tokens issued to and from an address. If yo You can only enable the No Freeze setting with a transaction signed by your address's master key secret. You cannot use a [Regular Key](../../../references/protocol/transactions/types/setregularkey.md) or a [multi-signed transaction](../../accounts/multi-signing.md) to enable No Freeze. - - # See Also - [Freeze Code Samples](https://github.com/XRPLF/xrpl-dev-portal/tree/master/_code-samples/freeze) - **Concepts:** - - [Trust Lines and Issuing](index.md) + - [Trust Lines and Issuing](index.md) - **Tutorials:** - - [Enable No Freeze](../../../tutorials/how-tos/use-tokens/enable-no-freeze.md) - - [Enact Global Freeze](../../../tutorials/how-tos/use-tokens/enact-global-freeze.md) - - [Freeze a Trust Line](../../../tutorials/how-tos/use-tokens/freeze-a-trust-line.md) + - [Enable No Freeze](../../../tutorials/how-tos/use-tokens/enable-no-freeze.md) + - [Enact Global Freeze](../../../tutorials/how-tos/use-tokens/enact-global-freeze.md) + - [Freeze a Trust Line](../../../tutorials/how-tos/use-tokens/freeze-a-trust-line.md) - **References:** - - [account_lines method][] - - [account_info method][] - - [AccountSet transaction][] - - [TrustSet transaction][] - - [AccountRoot Flags](../../../references/protocol/ledger-data/ledger-entry-types/accountroot.md#accountroot-flags) - - [RippleState (trust line) Flags](../../../references/protocol/ledger-data/ledger-entry-types/ripplestate.md#ripplestate-flags) + - [account_lines method][] + - [account_info method][] + - [AccountSet transaction][] + - [TrustSet transaction][] + - [AccountRoot Flags](../../../references/protocol/ledger-data/ledger-entry-types/accountroot.md#accountroot-flags) + - [RippleState (trust line) Flags](../../../references/protocol/ledger-data/ledger-entry-types/ripplestate.md#ripplestate-flags) {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/concepts/tokens/fungible-tokens/index.md b/docs/concepts/tokens/fungible-tokens/index.md index 25fef49b8f..08f6e722f2 100644 --- a/docs/concepts/tokens/fungible-tokens/index.md +++ b/docs/concepts/tokens/fungible-tokens/index.md @@ -1,8 +1,10 @@ --- seo: - description: Fungible tokens are a way of representing currency or assets on the blockchain where each unit can be swapped for each other. Learn about the different fungible token standards on the XRP Ledger and which one to use. + description: Fungible tokens are a way of representing currency or assets on the blockchain where each unit can be swapped for each other. Learn about the different fungible token standards on the XRP Ledger and which one to use. --- + # Fungible Tokens + Fungible tokens represent some sort of value, often a representation of assets that exist outside of the blockchain. Unlike [NFTs](../nfts/index.md), all units of a fungible token are interchangable for all other units of that token, just like how any US dollar is worth the same as another US dollar (even if one of them is a crisp, newly-printed dollar bill and the other is a number in a payment app on your phone). There are two standards for fungible tokens in the XRP Ledger, representing an evolution based on how tokens have been used over time: @@ -40,13 +42,13 @@ Functionality relating to MPTs is being added by a series of amendments to the X Some notable features and their status: -| MPT Feature | Amendment / Standard | -|-------------|----------------------| -| Issuing and direct payments | {% amendment-disclaimer name="MPTokensV1" compact=true /%} | -| Escrow | {% amendment-disclaimer name="TokenEscrow" compact=true /%} (implements escrow for both trust line tokens and MPTs) | -| Mutable token properties | In development: [XLS-94](https://github.com/XRPLF/XRPL-Standards/tree/master/XLS-0094-dynamic-MPT) | -| Confidentiality | [Proposed XLS](https://github.com/XRPLF/XRPL-Standards/discussions/372) | -| Decentralized exchange (DEX), trading, cross-currency payments, and AMM compatibility | [Proposed XLS](https://github.com/XRPLF/XRPL-Standards/discussions/231) | +| MPT Feature | Amendment / Standard | +| ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | +| Issuing and direct payments | {% amendment-disclaimer name="MPTokensV1" compact=true /%} | +| Escrow | {% amendment-disclaimer name="TokenEscrow" compact=true /%} (implements escrow for both trust line tokens and MPTs) | +| Mutable token properties | In development: [XLS-94](https://github.com/XRPLF/XRPL-Standards/tree/master/XLS-0094-dynamic-MPT) | +| Confidentiality | [Proposed XLS](https://github.com/XRPLF/XRPL-Standards/discussions/372) | +| Decentralized exchange (DEX), trading, cross-currency payments, and AMM compatibility | [Proposed XLS](https://github.com/XRPLF/XRPL-Standards/discussions/231) | ## Which Fungible Token Type to Use @@ -54,9 +56,9 @@ If you are creating a new token on the XRP Ledger, it may be confusing that ther - For most new tokens, MPTs are preferred. - Specific cases where you might prefer trust line tokens include: - - If you need **compatibility with the DEX**. - - Your use case is **community credit**. - - You need compatibility with legacy software, such as an integration that already works with trust line tokens. - - You need to be able to represent very large and very small quantities of the same token (20 orders of magnitude apart). + - If you need **compatibility with the DEX**. + - Your use case is **community credit**. + - You need compatibility with legacy software, such as an integration that already works with trust line tokens. + - You need to be able to represent very large and very small quantities of the same token (20 orders of magnitude apart). This is not an exhaustive list of strengths and weaknesses of each format. If you aren't sure, you can read more about the specific properties of [trust line tokens](trust-line-tokens.md) and [MPTs](multi-purpose-tokens.md) before making a decision. diff --git a/docs/concepts/tokens/fungible-tokens/multi-purpose-tokens.md b/docs/concepts/tokens/fungible-tokens/multi-purpose-tokens.md index e73e8a2cae..2ce5000842 100644 --- a/docs/concepts/tokens/fungible-tokens/multi-purpose-tokens.md +++ b/docs/concepts/tokens/fungible-tokens/multi-purpose-tokens.md @@ -1,12 +1,13 @@ --- seo: - description: Learn about multi-purpose tokens (MPTs) on XRP Ledger. MPTs are a flexible way to issue fungible tokens with built-in metadata, compliance, and transfer controls. + description: Learn about multi-purpose tokens (MPTs) on XRP Ledger. MPTs are a flexible way to issue fungible tokens with built-in metadata, compliance, and transfer controls. labels: - Tokens - MPTs - Multi-purpose Tokens status: not_enabled --- + # Multi-Purpose Tokens Multi-Purpose Tokens (MPTs) are a form of [fungible token](./index.md) on the XRP Ledger. They have been designed for greater efficiency and ease of use based on lessons learned from [trust line tokens](./trust-line-tokens.md) on the XRP Ledger. @@ -49,54 +50,54 @@ After the MPT is issued, the on-chain data cannot be changed. However, the propo To fit within the 1024-byte limit, MPT metadata must use compressed JSON keys. The following table describes these keys and their corresponding fields: -| Field Name | Key | Type | Required? | Description | -|:--------------- |:---- |:---------------- |---------- |-------------| -| ticker | `t` | String | Yes | The ticker symbol used to represent the token. Must be uppercase letters (A-Z) and digits (0-9) only. A maximum of 6 characters is recommended. | -| name | `n` | String | Yes | The display name of the token. Any UTF-8 string is permitted. | -| desc | `d` | String | No | A short description of the token. Any UTF-8 string is permitted. | -| icon | `i` | String | Yes | The URI to the token icon. Can be `hostname/path` (HTTPS is assumed), or full URI for other protocols. | -| asset_class | `ac` | String | Yes️ | Categorizes tokens by their primary purpose and backing. See [Asset Class](#asset-class) for more details. | -| asset_subclass | `as` | String | No | An optional subcategory that is only required if the `asset_class` is `rwa`. See [Asset Subclass](#asset-subclass) for more details. | -| issuer_name | `in` | String | Yes | Name of the entity issuing the token. Any UTF-8 string is permitted. | -| uris | `us` | Array | No | The list of related URIs such as website, documentation, and social media. See [URIs](#uris) for more details.| +| Field Name | Key | Type | Required? | Description | +| :-------------- | :--- | :--------------- | --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | +| ticker | `t` | String | Yes | The ticker symbol used to represent the token. Must be uppercase letters (A-Z) and digits (0-9) only. A maximum of 6 characters is recommended. | +| name | `n` | String | Yes | The display name of the token. Any UTF-8 string is permitted. | +| desc | `d` | String | No | A short description of the token. Any UTF-8 string is permitted. | +| icon | `i` | String | Yes | The URI to the token icon. Can be `hostname/path` (HTTPS is assumed), or full URI for other protocols. | +| asset_class | `ac` | String | Yes️ | Categorizes tokens by their primary purpose and backing. See [Asset Class](#asset-class) for more details. | +| asset_subclass | `as` | String | No | An optional subcategory that is only required if the `asset_class` is `rwa`. See [Asset Subclass](#asset-subclass) for more details. | +| issuer_name | `in` | String | Yes | Name of the entity issuing the token. Any UTF-8 string is permitted. | +| uris | `us` | Array | No | The list of related URIs such as website, documentation, and social media. See [URIs](#uris) for more details. | | additional_info | `ai` | Object or String | No | Freeform field for key token details like interest rate, maturity date, term, or other relevant info. Any valid JSON object or UTF-8 string is permitted. | ##### Asset Class The `asset_class` field categorizes tokens by their primary purpose and backing. These categories help applications understand the nature of the token and its intended use case. -| Category | Definition | -|----------|------------| -| `rwa` | Tokens representing real-world assets (RWAs), which derive value from legally enforceable claims on physical or off-chain financial assets. | -| `memes` | Community-driven tokens without intrinsic backing or utility claims, primarily driven by internet culture or speculation. | -| `wrapped` | Tokens representing assets from other blockchains, typically backed 1:1 by bridges or custodians. | -| `gaming` | Tokens used in games or virtual worlds, often representing in-game currency, assets, or rewards. | -| `defi` | Tokens native to or used within DeFi protocols, including governance tokens, DEX tokens, and lending assets. | -| `other` | Tokens that do not clearly fit into the defined categories. This may include experimental, test, or tokens with unique use cases not covered elsewhere. | +| Category | Definition | +| --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `rwa` | Tokens representing real-world assets (RWAs), which derive value from legally enforceable claims on physical or off-chain financial assets. | +| `memes` | Community-driven tokens without intrinsic backing or utility claims, primarily driven by internet culture or speculation. | +| `wrapped` | Tokens representing assets from other blockchains, typically backed 1:1 by bridges or custodians. | +| `gaming` | Tokens used in games or virtual worlds, often representing in-game currency, assets, or rewards. | +| `defi` | Tokens native to or used within DeFi protocols, including governance tokens, DEX tokens, and lending assets. | +| `other` | Tokens that do not clearly fit into the defined categories. This may include experimental, test, or tokens with unique use cases not covered elsewhere. | ##### Asset Subclass When `asset_class` is set to `rwa`, an `asset_subclass` can be specified to provide more granular categorization. This describes what type of real-world asset backs the token and what legal or regulatory framework might apply. -| Subclass | Definition | -|----------|------------| -| `stablecoin` | Tokens pegged to a stable value, typically fiat currencies like USD, which are backed by reserves like cash, treasuries, or crypto collateral. | -| `commodity` | Tokens that represent physical commodities like gold, silver, or oil, often redeemable or legally linked to off-chain reserves. | -| `real_estate` | Tokens representing ownership or claims on real estate, including fractionalized property shares or REIT-like instruments. | -| `private_credit` | Tokens representing debt obligations from private entities, such as loans, invoices, or receivables. | -| `equity` | Tokens representing ownership shares in companies, similar to traditional stock or equity instruments. | -| `treasury` | Tokens backed by government debt instruments, such as U.S. Treasury bills or bonds. | -| `other` | Tokens that do not fit into the predefined categories, including experimental, hybrid, or emerging real-world asset types. | +| Subclass | Definition | +| ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | +| `stablecoin` | Tokens pegged to a stable value, typically fiat currencies like USD, which are backed by reserves like cash, treasuries, or crypto collateral. | +| `commodity` | Tokens that represent physical commodities like gold, silver, or oil, often redeemable or legally linked to off-chain reserves. | +| `real_estate` | Tokens representing ownership or claims on real estate, including fractionalized property shares or REIT-like instruments. | +| `private_credit` | Tokens representing debt obligations from private entities, such as loans, invoices, or receivables. | +| `equity` | Tokens representing ownership shares in companies, similar to traditional stock or equity instruments. | +| `treasury` | Tokens backed by government debt instruments, such as U.S. Treasury bills or bonds. | +| `other` | Tokens that do not fit into the predefined categories, including experimental, hybrid, or emerging real-world asset types. | ##### URIs The `us` array contains a list of URI objects, each with a URI link, category, and human-readable title. -| Field Name | Key | Type | Required? | Description | -|:---------- |:--- |:------ |:--------- |:-------------| -| uri | `u` | String | Yes️ |`hostname/path` or full URI link to the related resource. | +| Field Name | Key | Type | Required? | Description | +| :--------- | :-- | :----- | :-------- | :------------------------------------------------------------------------------------------- | +| uri | `u` | String | Yes️ | `hostname/path` or full URI link to the related resource. | | category | `c` | String | Yes | The category of the link provided. Allowed values are: `website`, `social`, `docs`, `other`. | -| title | `t` | String | Yes | Human-readable label for the link. | +| title | `t` | String | Yes | Human-readable label for the link. | #### Example JSON Metadata @@ -177,7 +178,6 @@ Each MPT issuance is totally separate and there is no rippling between tokens, o MPTs _do_ still support [partial payments](../../payment-types/partial-payments.md), so it is still necessary to avoid the related pitfalls when processing MPT payments. - ## Limits on Issuing There is not intended to be a limit on how many MPT issuances you can create, but the technology does impose some hard and soft limits indirectly: @@ -187,23 +187,20 @@ There is not intended to be a limit on how many MPT issuances you can create, bu The data type that holds MPT balances has a valid range of **0** to **263-1** (inclusive) in integer increments, so no more than that amount can exist in any one place. However, it is possible for multiple holders to each hold up to that amount at the same time, so that the total amount in circulation is higher. An MPT issuance's supply cap, if configured, is also limited by this range. - ## See Also - -- **Use Case** - - [Creating an Asset-backed Multi-purpose Token](../../../use-cases/tokenization/creating-an-asset-backed-multi-purpose-token.md) +- **Use Case** + - [Creating an Asset-backed Multi-purpose Token](../../../use-cases/tokenization/creating-an-asset-backed-multi-purpose-token.md) - **Tutorial** - - - [Sending MPTs](../../../tutorials/javascript/send-payments/sending-mpts.md) + - [Sending MPTs](../../../tutorials/javascript/send-payments/sending-mpts.md) - **References:** - - [MPToken](../../../references/protocol/ledger-data/ledger-entry-types/mptoken.md) - - [MPTokenIssuance](../../../references/protocol/ledger-data/ledger-entry-types/mptokenissuance.md) - - [MPTokenAuthorize](../../../references/protocol/transactions/types/mptokenauthorize.md) - - [MPTokenIssuanceCreate](../../../references/protocol/transactions/types/mptokenissuancecreate.md) - - [MPTokenIssuanceDestroy](../../../references/protocol/transactions/types/mptokenissuancedestroy.md) - - [MPTokenIssuanceSet](../../../references/protocol/transactions/types/mptokenissuanceset.md) + - [MPToken](../../../references/protocol/ledger-data/ledger-entry-types/mptoken.md) + - [MPTokenIssuance](../../../references/protocol/ledger-data/ledger-entry-types/mptokenissuance.md) + - [MPTokenAuthorize](../../../references/protocol/transactions/types/mptokenauthorize.md) + - [MPTokenIssuanceCreate](../../../references/protocol/transactions/types/mptokenissuancecreate.md) + - [MPTokenIssuanceDestroy](../../../references/protocol/transactions/types/mptokenissuancedestroy.md) + - [MPTokenIssuanceSet](../../../references/protocol/transactions/types/mptokenissuanceset.md) {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/concepts/tokens/fungible-tokens/paths.md b/docs/concepts/tokens/fungible-tokens/paths.md index 920dfbf765..932032819a 100644 --- a/docs/concepts/tokens/fungible-tokens/paths.md +++ b/docs/concepts/tokens/fungible-tokens/paths.md @@ -1,10 +1,11 @@ --- seo: - description: Payments of tokens must traverse paths of connected users and order books. + description: Payments of tokens must traverse paths of connected users and order books. labels: - Payments - Cross-Currency --- + # Paths In the XRP Ledger, paths define a way for [trust line tokens](trust-line-tokens.md) to flow through intermediary steps as part of a payment. Paths enable [cross-currency payments](../../payment-types/cross-currency-payments.md) by connecting sender and receiver through orders and [automated market makers (AMM)](../../../concepts/tokens/decentralized-exchange/automated-market-makers.md) in the XRP Ledger's [decentralized exchange](../decentralized-exchange/index.md). Paths also enable complex settlement of offsetting debts. @@ -17,8 +18,8 @@ A single Payment transaction in the XRP Ledger can use multiple paths, combining A path is made of steps that connect the sender to the receiver of the payment. Every step is either: -* Rippling through another address with the same currency. -* Trading tokens or XRP using an order book or AMM. +- Rippling through another address with the same currency. +- Trading tokens or XRP using an order book or AMM. [Rippling](rippling.md) is the process of exchanging equivalent tokens using the same currency code. In the typical case, rippling through an issuer involves reducing the tokens issued to one party and increasing the tokens issued to another party by an equal amount. The path step specifies which account to ripple through. @@ -26,9 +27,7 @@ A path is made of steps that connect the sender to the receiver of the payment. In both types of steps, each intermediate address gains and loses approximately equal value: either a balance ripples from a trust line to another trust line in the same currency, or they exchange currencies according to a previously-placed order. In some cases, the amounts gained and lost may not be exactly equivalent, due to [transfer fees](transfer-fees.md), AMM fees, trust line quality settings, or rounding. -[{% inline-svg file="/docs/img/paths-examples.svg" /%}](/docs/img/paths-examples.svg "Diagram of three example paths") - - +[{% inline-svg file="/docs/img/paths-examples.svg" /%}](/docs/img/paths-examples.svg 'Diagram of three example paths') # Technical Details @@ -42,17 +41,15 @@ You can have `rippled` automatically fill in paths when you sign it, by includin Finding paths is a very challenging problem that changes slightly every few seconds as new ledgers are validated, so `rippled` is not designed to find the absolute best path. Still, you can find several possible paths and estimate the cost of delivering a particular amount. - ## Implied Steps By convention, several steps of a path are implied by the [fields of the Payment transaction](../../../references/protocol/transactions/types/payment.md): specifically, the `Account` (sender), `Destination` (receiver), `Amount` (currency and amount to be delivered) and `SendMax` (currency and amount to be sent, if specified). The implied steps are as follows: -* The first step of a path is always implied to be the sender of the transaction, as defined by the transaction's `Account` field. -* If the transaction includes a `SendMax` field with an `issuer` that is not the sender of the transaction, that issuer is implied to be the second step of the path. - * If `issuer` of the `SendMax` _is_ the sending address, then the path starts at the sending address, and may use any of that address's trust lines for the given currency code. See [special values for `SendMax` and `Amount`](../../../references/protocol/transactions/types/payment.md#special-issuer-values-for-sendmax-and-amount) for details. -* If the `Amount` field of the transaction includes an `issuer` that is not the same as the `Destination` of the transaction, that issuer is implied to be the second-to-last step of the path. -* Finally, last step of a path is always implied to be the receiver of a transaction, as defined by the transaction's `Destination` field. - +- The first step of a path is always implied to be the sender of the transaction, as defined by the transaction's `Account` field. +- If the transaction includes a `SendMax` field with an `issuer` that is not the sender of the transaction, that issuer is implied to be the second step of the path. + - If `issuer` of the `SendMax` _is_ the sending address, then the path starts at the sending address, and may use any of that address's trust lines for the given currency code. See [special values for `SendMax` and `Amount`](../../../references/protocol/transactions/types/payment.md#special-issuer-values-for-sendmax-and-amount) for details. +- If the `Amount` field of the transaction includes an `issuer` that is not the same as the `Destination` of the transaction, that issuer is implied to be the second-to-last step of the path. +- Finally, last step of a path is always implied to be the receiver of a transaction, as defined by the transaction's `Destination` field. ## Default Paths @@ -60,29 +57,28 @@ In addition to explicitly specified paths, a transaction can execute along the _ The default path could be any of the following: -* If the transaction uses only one token (regardless of issuer), then the default path assumes the payment should ripple through the addresses involved. This path only works if those addresses are connected by trust lines. - * If `SendMax` is omitted, or the `issuer` of the `SendMax` is the sender, the default path needs a trust line from the sending `Account` to the `issuer` of the destination `Amount` to work. - * If the `SendMax` and `Amount` have different `issuer` values, and neither are the sender or receiver, the default path is probably not useful because it would need to ripple across a trust line between the two issuers. Ripple (the company) typically discourages issuers from trusting one another directly. -* For cross-currency transactions, the default path uses the order book or AMM between the source currency (as specified in the `SendMax` field) and the destination currency (as specified in the `Amount` field). +- If the transaction uses only one token (regardless of issuer), then the default path assumes the payment should ripple through the addresses involved. This path only works if those addresses are connected by trust lines. + - If `SendMax` is omitted, or the `issuer` of the `SendMax` is the sender, the default path needs a trust line from the sending `Account` to the `issuer` of the destination `Amount` to work. + - If the `SendMax` and `Amount` have different `issuer` values, and neither are the sender or receiver, the default path is probably not useful because it would need to ripple across a trust line between the two issuers. Ripple (the company) typically discourages issuers from trusting one another directly. +- For cross-currency transactions, the default path uses the order book or AMM between the source currency (as specified in the `SendMax` field) and the destination currency (as specified in the `Amount` field). The following diagram enumerates all possible default paths: -[{% inline-svg file="/docs/img/default-paths.svg" /%}](/docs/img/default-paths.svg "Diagram of default paths") +[{% inline-svg file="/docs/img/default-paths.svg" /%}](/docs/img/default-paths.svg 'Diagram of default paths') You can use the [`tfNoDirectRipple` flag](../../../references/protocol/transactions/types/payment.md#payment-flags) to disable the default path. In this case, the transaction can only execute using the paths explicitly included in the transaction. Traders can use this option to take arbitrage opportunities. - ## Path Specifications A path set is an array. Each member of the path set is another array that represents an individual _path_. Each member of a path is an object that specifies the step. A step has the following fields: -| Field | Value | Description | -|:-----------|:-----------------------|:---------------------------------------| -| `account` | String - Address | _(Optional)_ If present, this path step represents rippling through the specified address. MUST NOT be provided if this step specifies the `currency` or `issuer` fields. | -| `currency` | String - Currency Code | _(Optional)_ If present, this path step represents changing currencies through an order book or AMM. The currency specified indicates the new currency. MUST NOT be provided if this step specifies the `account` field. | +| Field | Value | Description | +| :--------- | :--------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `account` | String - Address | _(Optional)_ If present, this path step represents rippling through the specified address. MUST NOT be provided if this step specifies the `currency` or `issuer` fields. | +| `currency` | String - Currency Code | _(Optional)_ If present, this path step represents changing currencies through an order book or AMM. The currency specified indicates the new currency. MUST NOT be provided if this step specifies the `account` field. | | `issuer` | String - Address | _(Optional)_ If present, this path step represents changing currencies and this address defines the issuer of the new currency. If omitted in a step with a non-XRP `currency`, a previous step of the path defines the issuer. If present when `currency` is omitted, indicates a path step that uses an order book or AMM between same-named currencies with different issuers. MUST be omitted if the `currency` is XRP. MUST NOT be provided if this step specifies the `account` field. | -| `type` | Integer | **DEPRECATED** _(Optional)_ An indicator of which other fields are present. | -| `type_hex` | String | **DEPRECATED**: _(Optional)_ A hexadecimal representation of the `type` field. | +| `type` | Integer | **DEPRECATED** _(Optional)_ An indicator of which other fields are present. | +| `type_hex` | String | **DEPRECATED**: _(Optional)_ A hexadecimal representation of the `type` field. | In summary, the following combination of fields are valid, optionally with `type`, `type_hex`, or both: @@ -95,22 +91,21 @@ Any other use of `account`, `currency`, and `issuer` fields in a path step is in The `type` field, used for the binary serialization of a path set, is actually constructed through bitwise operations on a single integer. The bits are defined as follows: -| Value (Hex) | Value (Decimal) | Description | -|-------------|-----------------|-------------| +| Value (Hex) | Value (Decimal) | Description | +| ----------- | --------------- | --------------------------------------------------------------- | | `0x01` | 1 | A change of address (rippling): the `account` field is present. | -| `0x10` | 16 | A change of currency: the `currency` field is present. | -| `0x20` | 32 | A change of issuer: the `issuer` field is present. | - +| `0x10` | 16 | A change of currency: the `currency` field is present. | +| `0x20` | 32 | A change of issuer: the `issuer` field is present. | ## See Also - **Concepts:** - - [Cross-Currency Payments](../../payment-types/cross-currency-payments.md) - - [Decentralized Exchange](../decentralized-exchange/index.md) - - [Partial Payments](../../payment-types/partial-payments.md) + - [Cross-Currency Payments](../../payment-types/cross-currency-payments.md) + - [Decentralized Exchange](../decentralized-exchange/index.md) + - [Partial Payments](../../payment-types/partial-payments.md) - **References:** - - [Payment transaction][] - - [path_find method][] (WebSocket only) - - [ripple_path_find method][] + - [Payment transaction][] + - [path_find method][] (WebSocket only) + - [ripple_path_find method][] {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/concepts/tokens/fungible-tokens/rippling.md b/docs/concepts/tokens/fungible-tokens/rippling.md index 365017beb3..5b1883bf72 100644 --- a/docs/concepts/tokens/fungible-tokens/rippling.md +++ b/docs/concepts/tokens/fungible-tokens/rippling.md @@ -1,10 +1,11 @@ --- seo: - description: Rippling is automatic multi-party net settlement of token balances. + description: Rippling is automatic multi-party net settlement of token balances. labels: - Tokens - Cross-Currency --- + # Rippling Rippling is the _indirect movement_ of funds that occurs for any payment of [trust line tokens](./trust-line-tokens.md) (except when an issuing account exchanges tokens directly with another account). This includes when one holder sends tokens to another holder of the same token. @@ -17,29 +18,29 @@ Rippling can automatically exchange tokens that have the same currency code, eve Issuers distribute currency to holders over trust lines. When a holder creates a trust line to an issuer for a specific token, they are willing to accept payments of that token. For example, in the chart below, Holder A and Holder B both have trust lines to the Issuer of the token USD. -[![Issuer with trust lines to two holders.](/docs/img/cpt-rippling1.png "Issuer with trust lines to two holders.")](/docs/img/cpt-rippling1.png) +[![Issuer with trust lines to two holders.](/docs/img/cpt-rippling1.png 'Issuer with trust lines to two holders.')](/docs/img/cpt-rippling1.png) The Issuer transfers 50 USD to Holder A, and 10 USD to Holder B. For these trust lines, the Issuer has a net balance of -60 USD. -[![Issuer sends tokens to holders.](/docs/img/cpt-rippling2.png "Issuer sends tokens to holders.")](/docs/img/cpt-rippling2.png) +[![Issuer sends tokens to holders.](/docs/img/cpt-rippling2.png 'Issuer sends tokens to holders.')](/docs/img/cpt-rippling2.png) Since both accounts are willing to accept payments in USD tokens, Holder A can send a payment of 20 USD to Holder B. This appears to be a single transaction, but it actually involves two steps. Holder A sees their balance go down by 20 USD, Holder B sees their balance go up by 20 USD. Behind the scenes, though, Holder A’s side of the trust line to the Issuer is reduced by 20 USD. The Issuer’s side of the trust line is increased by 20 USD, bringing its net balance to -40 USD. -[![Holder A sends currency through the Issuer.](/docs/img/cpt-rippling3.png "Holder A sends currency through the Issuer.")](/docs/img/cpt-rippling3.png) +[![Holder A sends currency through the Issuer.](/docs/img/cpt-rippling3.png 'Holder A sends currency through the Issuer.')](/docs/img/cpt-rippling3.png) Then the Issuer side of the trust line to Holder B is reduced by 20 USD, and the account of Holder B is increased by 20 USD. -[![Holder B receives tokens through the Issuer.](/docs/img/cpt-rippling4.png "Holder B receives tokens through the Issuer.")](/docs/img/cpt-rippling4.png) +[![Holder B receives tokens through the Issuer.](/docs/img/cpt-rippling4.png 'Holder B receives tokens through the Issuer.')](/docs/img/cpt-rippling4.png) -The tokens are transferred through the Issuer, but ultimately the Issuer’s balance doesn’t change. This flow of tokens is known as _rippling_. Issuing accounts must allow rippling so that their holders can transfer tokens to one another. +The tokens are transferred through the Issuer, but ultimately the Issuer’s balance doesn’t change. This flow of tokens is known as _rippling_. Issuing accounts must allow rippling so that their holders can transfer tokens to one another. Rippling can involve several accounts as the XRP Ledger finds a path to transfer the tokens. For example, the tokens might flow between two issuer accounts that have a trust line between them. -[![Holder A transfers tokens through Issuers A and B to get to Holder B.](/docs/img/cpt-rippling5.png "Holder A transfers tokens through Issuers A and B to get to Holder B.")](/docs/img/cpt-rippling5.png) +[![Holder A transfers tokens through Issuers A and B to get to Holder B.](/docs/img/cpt-rippling5.png 'Holder A transfers tokens through Issuers A and B to get to Holder B.')](/docs/img/cpt-rippling5.png) Tokens might also flow through intermediary exchanger accounts to reach a holder. -[![Holder A transfers tokens through Issuers A and B and Exchanger X to get to Holder B.](/docs/img/cpt-rippling6.png "Holder A transfers tokens through Issuers A and B and Exchanger X to get to Holder B.")](/docs/img/cpt-rippling6.png) +[![Holder A transfers tokens through Issuers A and B and Exchanger X to get to Holder B.](/docs/img/cpt-rippling6.png 'Holder A transfers tokens through Issuers A and B and Exchanger X to get to Holder B.')](/docs/img/cpt-rippling6.png) Other accounts, such as liquidity providers and normal holders, should not allow rippling. Rippling can lead to exploits where balances shift unexpectedly, tokens are allocated at higher rates, and the holder ends up losing value on a transaction where they played no part. @@ -68,15 +69,15 @@ Using the HTTP / WebSocket APIs or your preferred client library, look up trust ## See Also - **Concepts:** - - [Paths](paths.md) + - [Paths](paths.md) - **Use Cases:** - - [Stablecoin Issuer](../../../use-cases/tokenization/stablecoin-issuer.md) + - [Stablecoin Issuer](../../../use-cases/tokenization/stablecoin-issuer.md) - **References:** - - [account_lines method][] - - [account_info method][] - - [AccountSet transaction][] - - [TrustSet transaction][] - - [AccountRoot Flags](../../../references/protocol/ledger-data/ledger-entry-types/accountroot.md#accountroot-flags) - - [RippleState (trust line) Flags](../../../references/protocol/ledger-data/ledger-entry-types/ripplestate.md#ripplestate-flags) + - [account_lines method][] + - [account_info method][] + - [AccountSet transaction][] + - [TrustSet transaction][] + - [AccountRoot Flags](../../../references/protocol/ledger-data/ledger-entry-types/accountroot.md#accountroot-flags) + - [RippleState (trust line) Flags](../../../references/protocol/ledger-data/ledger-entry-types/ripplestate.md#ripplestate-flags) {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/concepts/tokens/fungible-tokens/stablecoins/compliance-guidelines.md b/docs/concepts/tokens/fungible-tokens/stablecoins/compliance-guidelines.md index 81fd3a2d62..6299c3961d 100644 --- a/docs/concepts/tokens/fungible-tokens/stablecoins/compliance-guidelines.md +++ b/docs/concepts/tokens/fungible-tokens/stablecoins/compliance-guidelines.md @@ -2,10 +2,11 @@ html: stablecoin-compliance-guidelines.html parent: stablecoins.html seo: - description: Stablecoin issuers are responsible for complying with local regulations and reporting to appropriate agencies. + description: Stablecoin issuers are responsible for complying with local regulations and reporting to appropriate agencies. labels: - Tokens --- + # Stablecoin Compliance Guidelines Stablecoin issuers are responsible for complying with local regulations and reporting to the appropriate agencies. Regulations vary by country and state, but may include the reporting and compliance requirements described in the following sections. Before issuing a token, you should seek professional legal advice on the requirements for your jurisdiction and use case. The following resources may be useful background reading. @@ -86,17 +87,15 @@ See also: - In the United States, Dodd Frank 1073 Electronic Fund Transfer Act (Regulation E) requires banks to provide information on cost and delivery terms for international payments originating in the US including exchange rate, fees, and the amount to be received by the designated recipient in the foreign country. "Pre-payment disclosure" is provided to a consumer when requesting an international electronic payment and “receipt disclosure” is provided to a consumer at the time consumer authorizes the transfer. - See also: - - - [The Consumer Financial Protection Bureau description of the regulation and extensions for banks](https://www.consumerfinance.gov/rules-policy/final-rules/electronic-fund-transfers-regulation-e/#rule) + See also: + - [The Consumer Financial Protection Bureau description of the regulation and extensions for banks](https://www.consumerfinance.gov/rules-policy/final-rules/electronic-fund-transfers-regulation-e/#rule) - In the European Union, EU Funds Transfer Regulation requires that the originator’s bank, the beneficiary’s bank, and any intermediary banks include certain details of the payer and payee in transaction details to detect, investigate, and prevent money laundering and terrorist financing. - See also: + See also: + - [EU Regulation (EC) No 1781/2006 description](http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=OJ:L:2006:345:0001:0009:EN:PDF) - - [EU Regulation (EC) No 1781/2006 description](http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=OJ:L:2006:345:0001:0009:EN:PDF) - - - [Effective June 26, 2017: Regulation 2015/847 on information accompanying transfers of funds](http://eur-lex.europa.eu/legal-content/EN/ALL/?uri=CELEX%3A32015R0847) + - [Effective June 26, 2017: Regulation 2015/847 on information accompanying transfers of funds](http://eur-lex.europa.eu/legal-content/EN/ALL/?uri=CELEX%3A32015R0847) ### Office of Foreign Assets Control (OFAC) @@ -111,15 +110,12 @@ See also: ### Guidance on Virtual Currency and Money Service Business - United States: + - [FinCEN Guidance and Definitions around Virtual Currency, March 18, 2013](https://www.fincen.gov/resources/statutes-regulations/guidance/application-fincens-regulations-persons-administering) - - [FinCEN Guidance and Definitions around Virtual Currency, March 18, 2013](https://www.fincen.gov/resources/statutes-regulations/guidance/application-fincens-regulations-persons-administering) - - - [FinCEN Publishes Two Rulings on Virtual Currency Miners and Investors, January 30, 2014](https://www.fincen.gov/news/news-releases/fincen-publishes-two-rulings-virtual-currency-miners-and-investors) + - [FinCEN Publishes Two Rulings on Virtual Currency Miners and Investors, January 30, 2014](https://www.fincen.gov/news/news-releases/fincen-publishes-two-rulings-virtual-currency-miners-and-investors) - Europe: - - - [European Banking Authority Opinion on Virtual Currencies, July 4, 2014](http://www.eba.europa.eu/documents/10180/657547/EBA-Op-2014-08+Opinion+on+Virtual+Currencies.pdf) + - [European Banking Authority Opinion on Virtual Currencies, July 4, 2014](http://www.eba.europa.eu/documents/10180/657547/EBA-Op-2014-08+Opinion+on+Virtual+Currencies.pdf) - FATF Guidance for Money Service Businesses: - - - [Financial Action Task Force, July 2009](http://www.fatf-gafi.org/media/fatf/documents/reports/Guidance-RBA-money-value-transfer-services.pdf) + - [Financial Action Task Force, July 2009](http://www.fatf-gafi.org/media/fatf/documents/reports/Guidance-RBA-money-value-transfer-services.pdf) diff --git a/docs/concepts/tokens/fungible-tokens/stablecoins/configuration.md b/docs/concepts/tokens/fungible-tokens/stablecoins/configuration.md index 6aff2c79bc..11f05885b9 100644 --- a/docs/concepts/tokens/fungible-tokens/stablecoins/configuration.md +++ b/docs/concepts/tokens/fungible-tokens/stablecoins/configuration.md @@ -2,24 +2,24 @@ html: stablecoin-configuration.html parent: stablecoins.html seo: - description: Configure your stablecoin to fine tune its capabilities. + description: Configure your stablecoin to fine tune its capabilities. labels: - Tokens --- + # Stablecoin Configuration There are some settings you must configure on your XRP Ledger account before you start issuing tokens. For examples of how to configure these settings, see [Issue a Fungible Token](../../../../tutorials/how-tos/use-tokens/issue-a-fungible-token.md). Settings you might want to configure include: -| Setting | Notes | -|---------|-------| -| Default Ripple | Issuers must enable this field. | -| Deposit Authorization | Block all incoming payments from users you haven't explicitly approved. | -| Require Auth | Restrict your tokens to being held by users you've explicitly approved. | -| Tick Size | Round off exchange rates in the decentralized exchange to facilitate faster price discovery. | -| Transfer Fee | Charge a percentage fee when users send your token to each other. | - +| Setting | Notes | +| --------------------- | -------------------------------------------------------------------------------------------- | +| Default Ripple | Issuers must enable this field. | +| Deposit Authorization | Block all incoming payments from users you haven't explicitly approved. | +| Require Auth | Restrict your tokens to being held by users you've explicitly approved. | +| Tick Size | Round off exchange rates in the decentralized exchange to facilitate faster price discovery. | +| Transfer Fee | Charge a percentage fee when users send your token to each other. | ## Default Ripple @@ -29,7 +29,6 @@ Before asking customers to create trust lines to its issuing address, an issuer You should _not_ enable the Default Ripple flag on other addresses, such as your operational or standby wallets. - ## Deposit Authorization The Deposit Authorization setting blocks all incoming payments to your account, unless either: @@ -43,21 +42,18 @@ Therefore, Deposit Authorization is not recommended for stablecoin issuers unles For more information, see [Deposit Authorization](../../../accounts/depositauth.md). - ## Disallow Incoming Trust Line The Disallow Incoming Trust Line setting prevents other users from opening trust lines to an address. As a precaution, you should enable this setting on your operational and standby addresses so that those addresses cannot issue tokens even inadvertently. Do not enable this setting on your issuing address. To enable this setting, send an [AccountSet transaction](../../../../references/protocol/transactions/types/accountset.md) with `"SetFlag": 15` (`asfDisallowIncomingTrustline`). - ## Disallow XRP The Disallow XRP setting is designed to discourage XRP Ledger users from sending XRP to an address by accident. This reduces the costs and effort of bouncing undesired payments from addresses that aren't intended to receive and hold XRP. The Disallow XRP flag is not enforced at the protocol level, because doing so could allow addresses to become permanently unusable if they run out of XRP. Client applications should honor the Disallow XRP flag by default, but may allow users to ignore it. The Disallow XRP flag is optional, but if you don't intend to receive XRP from customers you may want to enable it on your issuing address and all your operational addresses. - ## Require Auth The Require Auth setting blocks users from holding the tokens you issue unless you explicitly approve their trust lines first. You can use this setting to meet regulatory requirements if it matters who holds your tokens within the XRP Ledger. However, this can reduce the utility of your tokens since your approval becomes a bottleneck for users to use them. @@ -66,7 +62,6 @@ Also, you must use your issuing address each time you authorize a trust line; if For more information, see [Authorized Trust Lines](../authorized-trust-lines.md). - ## Tick Size The Tick Size setting controls how many decimal places are used when calculating exchange rates in the [Decentralized Exchange](../../decentralized-exchange/index.md). A higher Tick Size means more precision and less rounding in the amounts of various trades. Too much precision can be inconvenient because trades are ranked primarily based on exchange rate, so a trader can offer a minuscule amount more to the top of the list. A smaller Tick Size works similar to the minimum bid increment at an auction, saving everyone the time and effort of gradually bidding up a price by irrelevantly small amounts. However, a smaller Tick Size results in more rounding, which can increase the costs of trading, and sometimes has surprising results because two Offers that seemed like an exact match before rounding no longer match after rounding. @@ -77,7 +72,6 @@ Tick Size only controls the precision of _exchange rates_, not the precision of For more information, see [Tick Size](../../decentralized-exchange/ticksize.md). - ## Transfer Fees A transfer fee setting charges users a percentage fee when sending your tokens to each other. The transfer fee does not apply when issuing tokens or redeeming them directly with the issuing address. (It _does_ apply when users send payments to your hot wallet.) If you issue multiple tokens from the same address, the same transfer fee applies to all of them. @@ -88,7 +82,6 @@ At a protocol level, the transfer fee is defined by the `TransferRate` account s For more information, see [Transfer Fees](../transfer-fees.md). - ### Transfer Fees with Operational and Standby Addresses All XRP Ledger addresses, including operational and standby addresses, are subject to the issuer's transfer fees when sending tokens. If you set a nonzero transfer fee, then you must send extra (to pay the transfer fee) when making payments from your operational address or standby address. In other words, your addresses must pay back a little of the balance your issuing address created, each time you make a payment. diff --git a/docs/concepts/tokens/fungible-tokens/stablecoins/index.md b/docs/concepts/tokens/fungible-tokens/stablecoins/index.md index 723a5ba56c..a702700e98 100644 --- a/docs/concepts/tokens/fungible-tokens/stablecoins/index.md +++ b/docs/concepts/tokens/fungible-tokens/stablecoins/index.md @@ -1,10 +1,11 @@ --- seo: - description: Stablecoins are a type of fungible token that are backed by various assets. + description: Stablecoins are a type of fungible token that are backed by various assets. labels: - XRP - Stablecoin --- + # Stablecoins A stablecoin is a type of fungible token that is backed by assets of value outside of the blockchain in which is issued. Typically, the stablecoin's issuer holds backing assets representing the equivalent value of the tokens issued on the XRP ledger. A stablecoin issuer is sometimes called a _gateway_, because currency can move into and out of the XRP Ledger through their service. If the assets that back a token use the same amounts and denomination as the tokens in the ledger, that token can be considered a "stablecoin" because—in theory—the exchange rate between that token and its off-ledger representation should be stable at 1:1. @@ -25,7 +26,7 @@ Crypto-backed stablecoins are similar to fiat-backed stablecoins, but using cryp ## Commodity Backed -Commodity-backed stablecoins are based on a fungible asset such as gold, real estate, oil, or electricity. Commodities are relatively stable and liquid, but are centralized and require regular audits to verify their value. +Commodity-backed stablecoins are based on a fungible asset such as gold, real estate, oil, or electricity. Commodities are relatively stable and liquid, but are centralized and require regular audits to verify their value. ## Financial Instrument Backed diff --git a/docs/concepts/tokens/fungible-tokens/stablecoins/precautions.md b/docs/concepts/tokens/fungible-tokens/stablecoins/precautions.md index 8e5088903b..01457d916f 100644 --- a/docs/concepts/tokens/fungible-tokens/stablecoins/precautions.md +++ b/docs/concepts/tokens/fungible-tokens/stablecoins/precautions.md @@ -2,20 +2,19 @@ html: stablecoin-precautions.html parent: stablecoins.html seo: - description: Precautions to consider when transferring stablecoin funds in and out of the XRPL. + description: Precautions to consider when transferring stablecoin funds in and out of the XRPL. labels: - Tokens --- + # Stablecoin Precautions Processing payments to and from the XRP Ledger naturally comes with some risks, so an issuer should be sure to take care in implementing these processes. As a stablecoin issuer, you should consider the following precautions. - ## Infrastructure For your own security as well as the stability of the network, each XRP Ledger business should [run its own XRP Ledger servers](../../../../infrastructure/installation/index.md), including one [validator](../../../networks-and-servers/rippled-server-modes.md#validators). - ## Tool Security Any time you submit an XRP Ledger transaction, it must be signed using your secret key. The secret key gives full control over your XRP Ledger address. Never send your secret key to a server run by someone else. Either use your own server, or sign the transactions locally using a client library. For instructions and examples of secure configurations, see [Set Up Secure Signing](../../../transactions/secure-signing.md). @@ -29,7 +28,6 @@ There are several interfaces you can use to connect to the XRP Ledger, depending However, take care to only use reputable tools from their official distribution channels. Malicious servers, libraries, or apps could be configured to leak secret keys to an attacker. - ## Payments from the XRP Ledger When receiving payments from the XRP Ledger, it's important to recognize when a payment is final or not, and to credit the customer for the correct amount, so that your processes and integration software can't be exploited. For details and common pitfalls, see [Robustly Monitoring for Payments](../../../payment-types/robustly-monitoring-for-payments.md). @@ -38,7 +36,6 @@ If you receive an unexpected or unwanted payment, the standard practice is to re Before processing a payment out of the XRP Ledger, make sure you know the customer's identity. This makes it harder for anonymous attackers to scam you. Most anti-money-laundering regulations require this anyway. This is especially important because the users sending money from the XRP Ledger could be different than the ones that initially received the money in the XRP Ledger. For more context, see [Stablecoin Compliance Guidelines](compliance-guidelines.md). - ## Payments into the XRP Ledger When sending payments into the XRP Ledger, follow best practices to avoid overpaying on fees and roundabout paths. For details, see [Sending Payments to Customers](../../../payment-types/sending-payments-to-customers.md). @@ -47,7 +44,6 @@ If you accept payments from in external systems, such as bank deposits or credit Additionally, follow the [Reliable Transaction Submission guidelines](../../../transactions/reliable-transaction-submission.md) to ensure that you know the final outcome of your XRP Ledger transactions even in rare circumstances like power failures or network outages. - ## Other Precautions - Track your obligations and balances within the XRP Ledger, and compare with the assets in your collateral account. If they do not match up, stop processing withdrawals and deposits until you resolve the discrepancy. diff --git a/docs/concepts/tokens/fungible-tokens/stablecoins/settings.md b/docs/concepts/tokens/fungible-tokens/stablecoins/settings.md index fcbd1354fd..272e6a59a8 100644 --- a/docs/concepts/tokens/fungible-tokens/stablecoins/settings.md +++ b/docs/concepts/tokens/fungible-tokens/stablecoins/settings.md @@ -2,11 +2,12 @@ html: stablecoin-settings.html parent: stablecoins.html seo: - description: Settings to configure before issuing your stablecoin. + description: Settings to configure before issuing your stablecoin. labels: - XRP - Stablecoin --- + # Stablecoin Settings Before you mint your new stablecoin, you need to configure settings, some of which are immutable once you issue the first coin. @@ -17,13 +18,12 @@ Create a new account that you designate as the _issuer_, sometimes called the "c Many implementations use a _standby_ account as a "warm" wallet. Trusted human operators use the standby account to distribute stablecoins to _operational_ accounts. -![Stablecoin distribution flow](/docs/img/uc-stablecoin-distribution-flow.png "Stablecoin Distribution Flow") +![Stablecoin distribution flow](/docs/img/uc-stablecoin-distribution-flow.png 'Stablecoin Distribution Flow') Operational accounts, or "hot" wallets, trade with other accounts on the XRPL. Automated, internet-connected systems use the secret keys to these addresses to conduct day-to-day business like transfers to customers and partners. Using standby and operational accounts helps to insulate the issuing account against hacking attacks, and also makes it easier to monitor the creation and destruction of your stablecoins. - ## Set Your Transfer Fee A transfer fee setting charges users a percentage fee when transferring tokens between accounts. @@ -32,7 +32,6 @@ When users send a token with a transfer fee, the amount of the transfer fee is d For more information, see [Transfer Fees](../transfer-fees.md). - ## Set Your Tick Size The Tick Size setting controls how many decimal places are used when calculating exchange rates in the [Decentralized Exchange](../../decentralized-exchange/index.md). A higher Tick Size (more decimal places) means more precision and less rounding in the amounts of various trades. A smaller Tick Size works similar to the minimum bid increment at an auction, saving everyone the time and effort of gradually bidding up a price by unreasonably small amounts. @@ -41,7 +40,6 @@ The Tick Size is an account-level setting and applies to all tokens issued by th See [Tick Size](../../decentralized-exchange/ticksize.md). - ## Set the Default Ripple Flag The Default Ripple flag controls whether the balances on a trust line are allowed to _ripple_ by default. Rippling is what allows customers to send and trade tokens among themselves. An issuer MUST allow rippling on all the trust lines to its issuing address. @@ -50,7 +48,6 @@ Before asking customers to create trust lines to your issuing address, enable th See [Rippling](../rippling.md). - ## Enable Destination Tags If your stablecoin application handles transactions on behalf of several customers, it might not be immediately obvious to which account you should credit. Destination tags help to avoid this situation by requiring the sender to specify the beneficiary or destination for a payment. To enable the `RequireDest` flag, set the `asfRequireDest` value (1) in the `SetFlag` field of an `AccountSet` transaction. @@ -61,14 +58,12 @@ See [Source and Destination Tags](../../../transactions/source-and-destination-t You have several options for controlling the creation and distribution of your stablecoins. - ### Authorized Trust Lines When you need to follow compliance rules such as Know Your Customer (KYC) and Anti-Money Laundering (AML), you can use trust lines to create permissioned pools for the distribution of your stablecoin. This allows you to be certain to whom the funds are transferred. See [Authorized Trust Lines](../authorized-trust-lines.md). - ### Freeze Flags You have the ability to freeze your stablecoins in your holder accounts. You might do this when you suspect fraudulent activity, or to enforce holds. You can freeze individual trust lines, or enact a global freeze of all activity. @@ -77,7 +72,6 @@ Conversely, you can set the No Freeze feature, which permanently gives up the ab See [Freezing Tokens](../freezes.md). - ### Clawback Flags Clawback allows you to retrieve, or _clawback_, stablecoins from a trust line under specific circumstances. This gives you added ability to respond to challenges such as lost account access or malicious activity. diff --git a/docs/concepts/tokens/fungible-tokens/transfer-fees.md b/docs/concepts/tokens/fungible-tokens/transfer-fees.md index 00c339a2df..28e41b57c9 100644 --- a/docs/concepts/tokens/fungible-tokens/transfer-fees.md +++ b/docs/concepts/tokens/fungible-tokens/transfer-fees.md @@ -2,11 +2,12 @@ html: transfer-fees.html parent: tokens.html seo: - description: Token issuers can charge a fee for transferring their tokens. + description: Token issuers can charge a fee for transferring their tokens. labels: - Fees - Tokens --- + # Transfer Fees [Token](index.md) issuers can charge a _transfer fee_ that applies when users transfer those tokens among themselves. The sender of the transfer is debited an extra percentage based on the transfer fee, while the recipient of the transfer is credited the intended amount. The difference is the transfer fee. @@ -25,27 +26,25 @@ In this example, ACME Bank issues a EUR stablecoin on the XRP Ledger. ACME Bank The following diagram shows an XRP Ledger payment of 2 EUR.ACME from Alice to Charlie with a transfer fee of 1%: -[{% inline-svg file="/docs/img/transfer-fees.svg" /%}](/docs/img/transfer-fees.svg "Alice sends 2,02€, Charlie receives 2,00€, and ACME owes 0,02€ less in the XRP Ledger") +[{% inline-svg file="/docs/img/transfer-fees.svg" /%}](/docs/img/transfer-fees.svg 'Alice sends 2,02€, Charlie receives 2,00€, and ACME owes 0,02€ less in the XRP Ledger') In accounting terms, Alice's, ACME's, and Charlie's balance sheets may have changed like this: [{% inline-svg file="/docs/img/transfer-fees-balance-sheets.svg" /%}](/docs/img/transfer-fees-balance-sheets.svg "Alice's assets are down 2,02€, Charlie's are up 2,00€, and ACME's liabilities are down 0,02€") - - ## Transfer Fees in Payment Paths A transfer fee applies whenever an individual transfer would move tokens from one party to another (except when going to/from the issuing account directly). In more complex transactions, this can occur multiple times. Transfer fees apply starting from the end and working backwards, so that ultimately the sender of a payment must send enough to account for all fees. For example: -[{% inline-svg file="/docs/img/transfer-fees-in-paths.svg" /%}](/docs/img/transfer-fees-in-paths.svg "Diagram of cross-currency payment with transfer fees") +[{% inline-svg file="/docs/img/transfer-fees-in-paths.svg" /%}](/docs/img/transfer-fees-in-paths.svg 'Diagram of cross-currency payment with transfer fees') In this scenario, Salazar (the sender) holds EUR issued by ACME, and wants to deliver 100 USD issued by WayGate to Rosa (the recipient). FXMaker is a trader with the best offer in the order book, at a rate of 1 USD.WayGate for every 0.9 EUR.ACME. If there were no transfer fees, Salazar could deliver 100 USD to Rosa by sending 90 EUR. However, ACME has a transfer fee of 1% and WayGate has a transfer fee of 0.2%. This means: -* FXMaker must send 100.20 USD.WayGate for Rosa to receive 100 USD.WayGate. -* FXMaker's current ask is 90.18 EUR.ACME to send 100.20 USD.WayGate. -* For FXMaker to receive 90.18 EUR.ACME, Salazar must send 91.0818 EUR.ACME. +- FXMaker must send 100.20 USD.WayGate for Rosa to receive 100 USD.WayGate. +- FXMaker's current ask is 90.18 EUR.ACME to send 100.20 USD.WayGate. +- For FXMaker to receive 90.18 EUR.ACME, Salazar must send 91.0818 EUR.ACME. @@ -70,13 +69,13 @@ Some [client libraries](../../../references/client-libraries.md) have convenienc ## See Also - **Concepts:** - - [Fees (Disambiguation)](../../transactions/fees.md) - - [Transaction Cost](../../transactions/transaction-cost.md) - - [Paths](paths.md) + - [Fees (Disambiguation)](../../transactions/fees.md) + - [Transaction Cost](../../transactions/transaction-cost.md) + - [Paths](paths.md) - **References:** - - [account_lines method][] - - [account_info method][] - - [AccountSet transaction][] - - [AccountRoot Flags](../../../references/protocol/ledger-data/ledger-entry-types/accountroot.md#accountroot-flags) + - [account_lines method][] + - [account_info method][] + - [AccountSet transaction][] + - [AccountRoot Flags](../../../references/protocol/ledger-data/ledger-entry-types/accountroot.md#accountroot-flags) {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/concepts/tokens/fungible-tokens/trust-line-tokens.md b/docs/concepts/tokens/fungible-tokens/trust-line-tokens.md index 9362129170..bec5138405 100644 --- a/docs/concepts/tokens/fungible-tokens/trust-line-tokens.md +++ b/docs/concepts/tokens/fungible-tokens/trust-line-tokens.md @@ -1,36 +1,34 @@ --- seo: - description: Learn about the properties and rationale of trust lines and fungible tokens. + description: Learn about the properties and rationale of trust lines and fungible tokens. labels: - Tokens --- + # Trust Line Tokens Trust lines tokens are a type of [fungible token](../index.md) in the XRP Ledger. They are tracked in trust lines, which enforce the rule that you cannot cause someone else to hold a token they don't want. This is the original token standard of the XRP Ledger, in contrast to [Multi-Purpose Tokens](./multi-purpose-tokens.md). - ## Structure A trust line is recorded in the ledger as a [RippleState entry][]. Each trust line is a _bidirectional_ relationship consisting of: - The identifiers for the two [accounts](../../accounts/index.md) that the trust line connects. - A single, shared balance, which is positive from the perspective of one account and negative from the other perspective. - - The account with a negative balance is generally considered the "issuer" of the tokens. However, in the [APIs](../../../references/http-websocket-apis/index.md), the name `issuer` can refer to either side. + - The account with a negative balance is generally considered the "issuer" of the tokens. However, in the [APIs](../../../references/http-websocket-apis/index.md), the name `issuer` can refer to either side. - Various settings and metadata. _Each_ of the two accounts can control its own settings on the trust line. - - Most importantly, each side sets a limit on the trust line, which is 0 by default. Each account's balance (from its perspective on the trust line) can't go above that account's limit, except [through that account's own actions](#going-above-the-limit). + - Most importantly, each side sets a limit on the trust line, which is 0 by default. Each account's balance (from its perspective on the trust line) can't go above that account's limit, except [through that account's own actions](#going-above-the-limit). Each trust line is specific to a given [currency code][]. Two accounts can have any number of trust lines between them for different currency codes, but only one shared trust line for any particular currency code. The balance on a trust line is negative or positive depending on which side you view it from. The side with the negative balance is called the "issuer" and can control some properties of how those tokens behave. When you send tokens to another account that isn't the issuer, those tokens "ripple" through the issuer and possibly other accounts using the same currency code. This is useful in some cases, but can cause unexpected and undesirable behavior in others. You can use the [No Ripple flag](rippling.md) on trust lines to prevent those trust lines from rippling. - ## Creation Any account can unilaterally "trust" another account to issue a token by sending a [TrustSet transaction][] with a nonzero limit and their own settings. This creates a line with a zero balance, and sets the other side's settings to the default. Trust lines can be implicitly created by some transactions, such as when you buy a token in the [decentralized exchange](../decentralized-exchange/index.md). In this case, the trust line uses entirely default settings. - ## Going Above the Limit There are three cases where you can hold a balance that is _greater_ than your limit on that trust line: @@ -39,7 +37,6 @@ There are three cases where you can hold a balance that is _greater_ than your l 2. When you decrease the limit on a trust line that has a positive balance. 3. When you acquire more of that token by [cashing a Check](../../payment-types/checks.md). {% amendment-disclaimer name="CheckCashMakesTrustLine" /%} - ## Trust Line Settings In addition to the shared balance, each account has its own settings on the trust line, which consist of the following: @@ -51,7 +48,6 @@ In addition to the shared balance, each account has its own settings on the trus - **DeepFreeze**: A true/false value indicating whether a [deep freeze](deep-freeze.md) is in effect on this trust line. The default is `false`. - **Quality In** and **Quality Out** settings, which allow the account to value tokens issued by the other account on this trust line at less (or more) than face value. For example, if a stablecoin issuer charges a 3% fee for withdrawing tokens for the equivalent off-ledger assets, you could use these settings to value those tokens at 97% of face value. The default, `0`, represents face value. - ## Properties Unlike XRP or MPTs, trust line tokens always exist in _trust lines_, and all transfers move along trust lines. You cannot cause someone else's account to hold more of a token than the _limit_ configured on their trust line. (You _can_ cause your own trust line to go over the limit, for example by buying more of it in the decentralized exchange or by decreasing the limit after you already have a positive balance.) @@ -80,6 +76,7 @@ If your balance is negative (you are the issuer) or the other side's settings ar Since the **Authorized** setting cannot be turned off after it has been turned on, it does not count toward the trust line's default state. ### Free Trust Lines + [[Source]](https://github.com/XRPLF/rippled/blob/2df7dcfdebcb0cdbd030c1f4b09ac748af95659c/src/xrpld/app/tx/detail/SetTrust.cpp#L387-L407 "Source") Since trust lines are a powerful feature of the XRP Ledger, there is a special feature to make an account's first two trust lines "free". @@ -88,16 +85,15 @@ When an account creates a new trust line, if the account owns at most 2 items in When an account owns 3 or more objects in the ledger, the full owner reserve applies. - ## See Also - **Concepts:** - - [Decentralized Exchange](../decentralized-exchange/index.md) - - [Rippling](rippling.md) + - [Decentralized Exchange](../decentralized-exchange/index.md) + - [Rippling](rippling.md) - **References:** - - [account_lines method][] - Look up trust lines attached to a given account - - [gateway_balances method][] - Look up an issuer's total balance issued - - [RippleState object](../../../references/protocol/ledger-data/ledger-entry-types/ripplestate.md) - The data format for trust lines in the ledger's state data. - - [TrustSet transaction][] - The transaction to create or modify trust lines. + - [account_lines method][] - Look up trust lines attached to a given account + - [gateway_balances method][] - Look up an issuer's total balance issued + - [RippleState object](../../../references/protocol/ledger-data/ledger-entry-types/ripplestate.md) - The data format for trust lines in the ledger's state data. + - [TrustSet transaction][] - The transaction to create or modify trust lines. {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/concepts/tokens/index.md b/docs/concepts/tokens/index.md index 70e80f5120..90c94516eb 100644 --- a/docs/concepts/tokens/index.md +++ b/docs/concepts/tokens/index.md @@ -1,15 +1,16 @@ --- seo: - description: Anyone can make tokens representing digital value on the XRP Ledger. Learn about types of tokens and how they are used. + description: Anyone can make tokens representing digital value on the XRP Ledger. Learn about types of tokens and how they are used. labels: - Tokens --- + # Tokens All assets other than XRP can be represented in the XRP Ledger as _tokens_. Tokens can be fungible, meaning all units of that token are interchangeable and indistinguishable; or non-fungible, meaning each token is unique and indivisible. The XRP has three token standards to choose from, depending on the type of asset you need: - **Trust line tokens** are the "version 1" fungible token standard. They are fully available in production on the XRP Ledger, and can be used for [cross-currency payments](../payment-types/cross-currency-payments.md) or traded in the [decentralized exchange](decentralized-exchange/index.md). However, they have some edge cases that are important to know about before using them. - {% admonition type="info" name="Note" %}Trust line tokens on the XRP Ledger have also been called "IOUs" (as in [I-owe-you](https://en.wikipedia.org/wiki/IOU)) and "issued currencies" in the past. However, these terms are not preferred because they do not cover the full range of digital assets that these tokens can represent. {% /admonition %} + {% admonition type="info" name="Note" %}Trust line tokens on the XRP Ledger have also been called "IOUs" (as in [I-owe-you](https://en.wikipedia.org/wiki/IOU)) and "issued currencies" in the past. However, these terms are not preferred because they do not cover the full range of digital assets that these tokens can represent. {% /admonition %} - **Multi-Purpose Tokens (MPTs)** are the "version 2" fungible token standard. They are in active development, but do not have full feature parity with trust line tokens. They have been designed for greater efficiency and ease of use based on lessons learned from trust line tokens on the XRP Ledger. {% amendment-disclaimer name="MPTokensV1" /%} - **[Non-fungible tokens (NFTs)](nfts/index.md)** encode ownership of unique and indivisible tokens, which could represent physical, non-physical, or purely digital goods, such as works of art or in-game items. @@ -17,7 +18,7 @@ Anyone can issue any of these types of tokens on the XRP Ledger, for any use cas ## Stablecoins -Stablecoins are a common model for tokens in the XRP Ledger. The issuer holds assets of value outside of the XRP Ledger, and issues tokens representing the equivalent value on the ledger. +Stablecoins are a common model for tokens in the XRP Ledger. The issuer holds assets of value outside of the XRP Ledger, and issues tokens representing the equivalent value on the ledger. See [Stablecoins](fungible-tokens/stablecoins/index.md). diff --git a/docs/concepts/tokens/nfts/authorizing-another-minter.md b/docs/concepts/tokens/nfts/authorizing-another-minter.md index ff285cd593..b804e381f0 100644 --- a/docs/concepts/tokens/nfts/authorizing-another-minter.md +++ b/docs/concepts/tokens/nfts/authorizing-another-minter.md @@ -2,10 +2,11 @@ html: nftoken-authorized-minting.html parent: non-fungible-tokens.html seo: - description: You can assign another account to mint NFTs in your stead. + description: You can assign another account to mint NFTs in your stead. labels: - - Non-fungible Tokens, NFTs + - Non-fungible Tokens, NFTs --- + # Authorizing Another Minter Each account can have 0 or 1 authorized minter that can mint NFTs on its behalf. By authorizing a minter, a creator can allow a different account to mint NFTs for them, which allows them to focus on making more NFTs. @@ -16,16 +17,16 @@ You set the authorized minter with an `AccountSet` transaction. ```js tx_json = { - "TransactionType": "AccountSet", - "Account": "rrE5EgHN4DfjXhR9USecudHm7UyhTYq6m", - "NFTokenMinter": "r3riWB2TDWRmwmT7FRKdRHjqm6efYu4s9C", - "SetFlag": xrpl.AccountSetAsfFlags.asfAuthorizedNFTokenMinter + TransactionType: 'AccountSet', + Account: 'rrE5EgHN4DfjXhR9USecudHm7UyhTYq6m', + NFTokenMinter: 'r3riWB2TDWRmwmT7FRKdRHjqm6efYu4s9C', + SetFlag: xrpl.AccountSetAsfFlags.asfAuthorizedNFTokenMinter, } ``` `NFTokenMinter` is an account ID of an account on the same XRP Ledger instance. The `asfAuthorizedNFTokenMinter` flag authorizes the `NFTokenMinter` account to mint NFTs on behalf of the `Account`. -*Note*: The `asfAuthorizedNFTokenMinter` flag is used only in the `AccountSet` transaction. It indicates whether the transaction affects the presence or value of the NFTokenMinter field on an account root. Specifically, there is no corresponding flag on the AccountRoot. +_Note_: The `asfAuthorizedNFTokenMinter` flag is used only in the `AccountSet` transaction. It indicates whether the transaction affects the presence or value of the NFTokenMinter field on an account root. Specifically, there is no corresponding flag on the AccountRoot. ## Unassigning an Authorized Minter @@ -33,9 +34,9 @@ To remove an authorized minter, use the `AccountSet` transaction and clear the ` ```js tx_json = { - "TransactionType": "AccountSet", - "Account": "rrE5EgHN4DfjXhR9USecudHm7UyhTYq6m", - "ClearFlag": xrpl.AccountSetAsfFlags.asfAuthorizedNFTokenMinter + TransactionType: 'AccountSet', + Account: 'rrE5EgHN4DfjXhR9USecudHm7UyhTYq6m', + ClearFlag: xrpl.AccountSetAsfFlags.asfAuthorizedNFTokenMinter, } ``` @@ -45,14 +46,14 @@ You mint tokens for another account using the standard `NFTokenMint` transaction ```js const transactionBlob = { - "TransactionType": "NFTokenMint", - "Account": "r3riWB2TDWRmwmT7FRKdRHjqm6efYu4s9C", - "URI": xrpl.convertStringToHex("ipfs://bafybeigdyrzt5sfp7udm7hu76uh7y26nf4dfuylqabf3oclgtqy55fbzdi"), - "Flags": 8, - "TransferFee": 5000, - "NFTokenTaxon": 0, - "Issuer": "rrE5EgHN4DfjXhR9USecudHm7UyhTYq6m", // Needed when minting for another - // account. + TransactionType: 'NFTokenMint', + Account: 'r3riWB2TDWRmwmT7FRKdRHjqm6efYu4s9C', + URI: xrpl.convertStringToHex('ipfs://bafybeigdyrzt5sfp7udm7hu76uh7y26nf4dfuylqabf3oclgtqy55fbzdi'), + Flags: 8, + TransferFee: 5000, + NFTokenTaxon: 0, + Issuer: 'rrE5EgHN4DfjXhR9USecudHm7UyhTYq6m', // Needed when minting for another + // account. } ``` diff --git a/docs/concepts/tokens/nfts/batch-minting.md b/docs/concepts/tokens/nfts/batch-minting.md index cc50d9f490..0d3c728d36 100644 --- a/docs/concepts/tokens/nfts/batch-minting.md +++ b/docs/concepts/tokens/nfts/batch-minting.md @@ -2,9 +2,9 @@ html: nftoken-batch-minting.html parent: non-fungible-tokens.html seo: - description: Minting NFTs in batches. + description: Minting NFTs in batches. labels: - - Non-fungible Tokens, NFTs + - Non-fungible Tokens, NFTs --- # Batch Minting @@ -17,8 +17,8 @@ When using a mint on demand model, you and potential customers make buy or sell ### Benefits -* There is no reserve requirement for holding unsold NFTs. -* You mint NFTs in real time when you know that it will sell. +- There is no reserve requirement for holding unsold NFTs. +- You mint NFTs in real time when you know that it will sell. ### Downside @@ -32,8 +32,8 @@ For a practical example, see the [Batch Mint NFTs Using JavaScript](../../../tut ### Benefits -* NFTs are minted ahead of time. -* Market activity for the initial sale of the NFT is captured on the ledger. +- NFTs are minted ahead of time. +- Market activity for the initial sale of the NFT is captured on the ledger. ### Downside diff --git a/docs/concepts/tokens/nfts/collections.md b/docs/concepts/tokens/nfts/collections.md index e56f83d4d9..11f2facf6b 100644 --- a/docs/concepts/tokens/nfts/collections.md +++ b/docs/concepts/tokens/nfts/collections.md @@ -2,10 +2,11 @@ html: nft-collections.html parent: non-fungible-tokens.html seo: - description: You can mint NFTs as collections using the NFT Taxon field. + description: You can mint NFTs as collections using the NFT Taxon field. labels: - - Non-fungible Tokens, NFTs + - Non-fungible Tokens, NFTs --- + # Minting NFTs into Collections You can use the `NFTokenTaxon` field to group NFTs into collections. As the minter, you can choose any numeric value from `0x0` to `0xFFFFFFFF`and assign it to NFTs as you create them. The significance of the taxon is entirely up to you. diff --git a/docs/concepts/tokens/nfts/dynamic-nfts.md b/docs/concepts/tokens/nfts/dynamic-nfts.md index fa09f551bc..c2f4447aae 100644 --- a/docs/concepts/tokens/nfts/dynamic-nfts.md +++ b/docs/concepts/tokens/nfts/dynamic-nfts.md @@ -1,9 +1,10 @@ --- seo: - description: Create NFTs with the option of changing the URI to update its referenced data object. + description: Create NFTs with the option of changing the URI to update its referenced data object. labels: - Non-fungible Tokens, NFTs --- + # Dynamic Non-Fungible Tokens (dNFTs) Standard NFTs are immutable. In some use cases, you need to update the referenced data object after the initial minting of an NFT. For example, a concert ticket for a postponed event could be updated with an alternate date, or a virtual trading card for an athlete could be periodically updated with current statistics. Dynamic Non-Fungible Tokens (dNFTs) provide the flexibility required for these use cases. diff --git a/docs/concepts/tokens/nfts/guaranteeing-a-fixed-supply.md b/docs/concepts/tokens/nfts/guaranteeing-a-fixed-supply.md index 245b4c6832..862bd60c63 100644 --- a/docs/concepts/tokens/nfts/guaranteeing-a-fixed-supply.md +++ b/docs/concepts/tokens/nfts/guaranteeing-a-fixed-supply.md @@ -2,10 +2,11 @@ html: nft-fixed-supply.html parent: non-fungible-tokens.html seo: - description: Use a new account to mint a fixed number of NFTs, then black hole the account. + description: Use a new account to mint a fixed number of NFTs, then black hole the account. labels: - Non-fungible Tokens, NFTs --- + # Guaranteeing a Fixed Supply of NFTs For some projects, you might want to guarantee that no more than a fixed number of NFTs are minted from an issuing account. @@ -15,7 +16,7 @@ To guarantee a fixed number of NFTs: 1. Create and fund a new account, the _Issuer_. This account is the issuer of the tokens within the collection. See [Creating Accounts](../../accounts/index.md#creating-accounts). 1. Use `AccountSet` to assign your operational wallet as an authorized minter for the issuer. See [Authorizing Another Account to Mint Your NFTs](authorizing-another-minter.md). 1. Use your operational account to mint the tokens using `NFTokenMint`. The operational wallet holds all of the tokens minted for the Issuer. See [Batch Minting](batch-minting.md). -1. Use `AccountSet` to remove your operational wallet as an authorized minter for the Issuer. +1. Use `AccountSet` to remove your operational wallet as an authorized minter for the Issuer. 1. “Blackhole” the Issuer account. See [Disable Master Key Pair](../../../tutorials/how-tos/manage-account-settings/disable-master-key-pair.md). At this point, it is impossible for any new tokens to be minted with the issuer’s address as the issuing account. diff --git a/docs/concepts/tokens/nfts/index.md b/docs/concepts/tokens/nfts/index.md index 525254f8a2..e5399d9383 100644 --- a/docs/concepts/tokens/nfts/index.md +++ b/docs/concepts/tokens/nfts/index.md @@ -2,14 +2,14 @@ html: non-fungible-tokens.html parent: tokens.html seo: - description: Introduction to XRPL NFTs. + description: Introduction to XRPL NFTs. labels: - - Non-fungible Tokens, NFTs + - Non-fungible Tokens, NFTs --- # Non-Fungible Tokens -The XRP Ledger natively supports non-fungible tokens (NFTs, or “nifties” in the vernacular). Non-fungible tokens serve to encode ownership of unique physical, non-physical, or purely digital goods, such as works of art or in-game items. +The XRP Ledger natively supports non-fungible tokens (NFTs, or “nifties” in the vernacular). Non-fungible tokens serve to encode ownership of unique physical, non-physical, or purely digital goods, such as works of art or in-game items. {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} @@ -37,7 +37,7 @@ Anyone can create a new NFT using the [NFTokenMint transaction][]. The NFT lives You can destroy an NFT you own using the [NFTokenBurn transaction][]. If the issuer minted the token with the `tfBurnable` flag enabled, the issuer can also burn the token, regardless of the current owner. (This could be useful, for example, for a token that represents a ticket to an event that is used up at some point.) -![The NFT Lifecycle](/docs/img/nft-lifecycle.png "NFT Lifecycle Image") +![The NFT Lifecycle](/docs/img/nft-lifecycle.png 'NFT Lifecycle Image') For more info about transferring NFTs, see [Trading NFTs on the XRP Ledger](trading.md). diff --git a/docs/concepts/tokens/nfts/nft-apis.md b/docs/concepts/tokens/nfts/nft-apis.md index 86b6d3abff..29bf3a14d5 100644 --- a/docs/concepts/tokens/nfts/nft-apis.md +++ b/docs/concepts/tokens/nfts/nft-apis.md @@ -2,10 +2,11 @@ html: nft-apis.html parent: non-fungible-tokens.html seo: - description: Specialized APIs let you access useful NFT metadata. + description: Specialized APIs let you access useful NFT metadata. labels: - - Non-fungible Tokens, NFTs + - Non-fungible Tokens, NFTs --- + # NFT APIs This page lists the transactions and requests associated with NFTs as a handy reference. @@ -14,8 +15,8 @@ This page lists the transactions and requests associated with NFTs as a handy re - [NFToken][] data type - The NFT object stored on the ledger. - Ledger Entries - - [NFTokenOffer entry][] - An offer to buy or sell an NFT. - - [NFTokenPage entry][] - An NFT page holds a maximum of 32 NFTs. In practice, each NFT page typically holds 16-24 NFTs. + - [NFTokenOffer entry][] - An offer to buy or sell an NFT. + - [NFTokenPage entry][] - An NFT page holds a maximum of 32 NFTs. In practice, each NFT page typically holds 16-24 NFTs. ## NFT Transactions diff --git a/docs/concepts/tokens/nfts/non-transferable-tokens.md b/docs/concepts/tokens/nfts/non-transferable-tokens.md index 60f04051b1..d16524cf23 100644 --- a/docs/concepts/tokens/nfts/non-transferable-tokens.md +++ b/docs/concepts/tokens/nfts/non-transferable-tokens.md @@ -1,9 +1,10 @@ --- seo: - description: Create NFTs that can't be traded among users. + description: Create NFTs that can't be traded among users. labels: - Non-fungible Tokens, NFTs --- + # Non-Transferable Tokens The XRP Ledger supports non-transferable tokens (NTTs), sometimes called soulbound tokens, as a specific class of [non-fungible tokens](./index.md). Non-transferable tokens may be used for certifications and identity tokens, achievements in games, or other cases where the purpose of the token is limited to one person specifically. diff --git a/docs/concepts/tokens/nfts/payload-storage.md b/docs/concepts/tokens/nfts/payload-storage.md index 9940782dc7..f8eaca7f36 100644 --- a/docs/concepts/tokens/nfts/payload-storage.md +++ b/docs/concepts/tokens/nfts/payload-storage.md @@ -2,10 +2,11 @@ html: nft-storage.html parent: non-fungible-tokens.html seo: - description: Storage options for the payload of your NFT. + description: Storage options for the payload of your NFT. labels: - Non-fungible Tokens, NFTs --- + # NFT Payload Storage NFTs are created on the blockchain. But the payload of the NFT, including media, metadata, and attributes can be stored in a variety of ways, including on the XRP Ledger; decentralized, off the XRP Ledger; and centralized, off the XRP Ledger. diff --git a/docs/concepts/tokens/nfts/reserve-requirements.md b/docs/concepts/tokens/nfts/reserve-requirements.md index 0dc7a9e978..196570985c 100644 --- a/docs/concepts/tokens/nfts/reserve-requirements.md +++ b/docs/concepts/tokens/nfts/reserve-requirements.md @@ -2,10 +2,11 @@ html: nft-reserve-requirements.html parent: non-fungible-tokens.html seo: - description: Understand reserve requirements for minting and holding NFTs. + description: Understand reserve requirements for minting and holding NFTs. labels: - - Non-fungible Tokens, NFTs + - Non-fungible Tokens, NFTs --- + # NFT Reserve Requirements Minting, holding, and offering NFTs for sale require XRP held in reserve. The reserve charges can add up quickly. Understanding the reserve requirements can help you choose the best approach for your business case. @@ -28,7 +29,7 @@ Therefore, you can estimate the reserve requirements for minting or owning _N_ N The following table provides examples of how much the total owner reserve might be, depending on the number of NFTs owned and the number of pages holding them. | NFTs Owned | Best Case | Typical Case | Worst Case | -|:------------|:----------|:-------------|:-----------| +| :---------- | :-------- | :----------- | :--------- | | 32 or fewer | 0.2 XRP | 0.2 XRP | 0.2 XRP | | 50 | 0.4 XRP | 0.6 XRP | 0.8 XRP | | 200 | 1.4 XRP | 1.8 XRP | 2.6 XRP | @@ -48,22 +49,22 @@ When minting, holding, and offering to buy and sell NFTs, the reserve requiremen If you create a new account, mint an NFT, and create an `NFTokenSellOffer` on the XRP Ledger, that requires a minimum reserve of 1.4 XRP. -| Reserve Type | Amount | -|:--------------------|--------:| -| Base | 1 XRP | -| NFToken Page | 0.2 XRP | -| NFToken Offers | 0.2 XRP | -| Total | 1.4 XRP | +| Reserve Type | Amount | +| :------------- | ------: | +| Base | 1 XRP | +| NFToken Page | 0.2 XRP | +| NFToken Offers | 0.2 XRP | +| Total | 1.4 XRP | {% admonition type="info" name="Note" %}While not a reserve requirement, keep in mind that you would want to have at least 1 XRP above your reserves to cover the trivial fee for each transaction in the mint and sell process (typically 12 drops, or .000012 XRP).{% /admonition %} If you were to mint 200 NFTs and create an `NFTokenSellOffer`for each, that would require as much as 43.6 XRP held in reserve. -| Reserve Type | Amount | -|:--------------------|--------:| -| Base | 1 XRP | -| NFToken Pages | 2.6 XRP | -| NFToken Offers | 40 XRP | -| Total | 43.6 XRP | +| Reserve Type | Amount | +| :------------- | -------: | +| Base | 1 XRP | +| NFToken Pages | 2.6 XRP | +| NFToken Offers | 40 XRP | +| Total | 43.6 XRP | If the required reserves exceed the amount you are comfortable setting aside, consider using the mint-on-demand model to reduce the number of NFTs and offers you hold at any one time. For details, see [Batch Minting](batch-minting.md). diff --git a/docs/concepts/tokens/nfts/running-an-nft-auction.md b/docs/concepts/tokens/nfts/running-an-nft-auction.md index 099c8a5556..14f7651658 100644 --- a/docs/concepts/tokens/nfts/running-an-nft-auction.md +++ b/docs/concepts/tokens/nfts/running-an-nft-auction.md @@ -2,10 +2,11 @@ html: nftoken-auctions.html parent: non-fungible-tokens.html seo: - description: You can assign another account to mint NFTs in your stead. + description: You can assign another account to mint NFTs in your stead. labels: - - Non-fungible Tokens, NFTs + - Non-fungible Tokens, NFTs --- + # Running an NFT Auction There are several ways to run an auction, each with advantages and disadvantages. @@ -22,7 +23,7 @@ This flow is the most straightforward. Note that the `NFTokenOffer` objects can Run the auction in brokered mode, as an auction with a reserve. -![Auction in Brokered Mode with a Reserve](/docs/img/nft-auction1.png "Auction in Brokered Mode with a Reserve") +![Auction in Brokered Mode with a Reserve](/docs/img/nft-auction1.png 'Auction in Brokered Mode with a Reserve') 1. The seller creates the NFT, then sets the auction reserve price using `NFTokenCreateOffer`, specifying the broker account as the destination. 1. The bidders make offers using `NFTokenCreateOffer`, setting the broker account as the destination. @@ -44,7 +45,7 @@ A major mitigating factor of this downside is that if this behavior were to happ This is the most complex workflow of the three. -![Auction in Brokered Mode without a Reserve](/docs/img/nft-auction2.png "Auction in Brokered Mode without a Reserve") +![Auction in Brokered Mode without a Reserve](/docs/img/nft-auction2.png 'Auction in Brokered Mode without a Reserve') 1. The seller creates an NFT using `NFTokenMint`. 1. The bidders make offers using `NFTokenCreateOffer`, setting the broker as the destination. diff --git a/docs/concepts/tokens/nfts/trading.md b/docs/concepts/tokens/nfts/trading.md index 193f0f7d6d..f72e32e899 100644 --- a/docs/concepts/tokens/nfts/trading.md +++ b/docs/concepts/tokens/nfts/trading.md @@ -2,14 +2,14 @@ html: non-fungible-token-transfers.html parent: non-fungible-tokens.html seo: - description: Trading NFTs in direct or brokered mode. + description: Trading NFTs in direct or brokered mode. labels: - - Non-fungible Tokens, NFTs + - Non-fungible Tokens, NFTs --- # Trading NFTs -You can transfer NFTs between accounts on the XRP Ledger. You can offer to buy or sell an NFT, or accept offers from other accounts to buy an NFT you own. You can even give away an NFT by offering to sell it at a price of 0. All offers are created using [NFTokenCreateOffer transaction][]. +You can transfer NFTs between accounts on the XRP Ledger. You can offer to buy or sell an NFT, or accept offers from other accounts to buy an NFT you own. You can even give away an NFT by offering to sell it at a price of 0. All offers are created using [NFTokenCreateOffer transaction][]. {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} @@ -59,9 +59,9 @@ On the other hand, creators might not want to spend their time selling their cre Using a broker offers several advantages. For example: -* The broker can act as an agent, working to maximize the selling price of the NFT. If the broker is paid a percentage of the sale price, the higher the price, the more the broker earns. -* The broker can act as a curator, organizing NFTs based on a niche market, price point, or other criteria. This can attract groups of buyers who might not otherwise discover a creator’s work. -* The broker can act as a marketplace, similar to Opensea.io, to handle the auction process at the application layer. +- The broker can act as an agent, working to maximize the selling price of the NFT. If the broker is paid a percentage of the sale price, the higher the price, the more the broker earns. +- The broker can act as a curator, organizing NFTs based on a niche market, price point, or other criteria. This can attract groups of buyers who might not otherwise discover a creator’s work. +- The broker can act as a marketplace, similar to Opensea.io, to handle the auction process at the application layer. ### Brokered Sale Workflows diff --git a/docs/concepts/transactions/batch-transactions.md b/docs/concepts/transactions/batch-transactions.md index 1dd1701c70..e83429646b 100644 --- a/docs/concepts/transactions/batch-transactions.md +++ b/docs/concepts/transactions/batch-transactions.md @@ -1,11 +1,12 @@ --- seo: - description: Discover how XRPL Batch Transactions streamline multiple blockchain operations into a single secure transaction. Learn about batch modes, execution details, and security considerations. + description: Discover how XRPL Batch Transactions streamline multiple blockchain operations into a single secure transaction. Learn about batch modes, execution details, and security considerations. labels: - Batch - Transactions status: not_enabled --- + # Batch Transactions XRPL Batch Transactions let you package multiple [transactions](/docs/concepts/transactions) together and execute them as a single unit. It eliminates the risk of partial completion and unexpected outcomes, giving you a more reliable and predictable experience for complex operations. Up to eight transactions can be submitted in a single batch. @@ -13,6 +14,7 @@ XRPL Batch Transactions let you package multiple [transactions](/docs/concepts/t ## XRPL Batch Use Cases Some potential uses for `Batch` include the following. + - All or nothing: You can mint an NFT and create an offer for it in one transaction. If the offer creation fails, the NFT mint is reverted as well. - Trying out a few offers: Submit multiple offers with different amounts of slippage, but only one will succeed. - Platform fees: Package platform fees within the transaction itself, simplifying the process. @@ -61,9 +63,9 @@ A transaction is considered a failure if it receives any result that is not `tes `Batch` adds a global transaction flag. -| Flag Name | Value | -|-------------------|------------| -| `tfInnerBatchTxn` | 0x40000000 | +| Flag Name | Value | +| ----------------- | ---------- | +| `tfInnerBatchTxn` | 0x40000000 | This flag is only used if a transaction is an inner transaction in a Batch transaction. This signifies that the transaction isn't signed. Any normal transaction that includes this flag is rejected. @@ -77,12 +79,12 @@ This field must be provided if more than one account has inner transactions incl Each object in this array contains the following fields: -| Field Name | Required? | JSON Type | Internal Type | -|---------------|-----------|-----------|---------------| -| Account | yes | string | STAccount | -| SigningPubKey | no | string | STBlob | +| Field Name | Required? | JSON Type | Internal Type | +| ------------- | --------- | --------- | ------------- | +| Account | yes | string | STAccount | +| SigningPubKey | no | string | STBlob | | TxnSignature | no | string | STBlob | -| Signers | no | array | STArray | +| Signers | no | array | STArray | Either the `SigningPubKey` and `TxnSignature` fields must be included, or the `Signers` field. @@ -102,7 +104,7 @@ This field is included if the account is signing with multi-sign (as opposed to The fee for the outer transaction is twice the base fee (a total of 20 drops when there is no fee escalation), plus the sum of the transaction fees of all the inner transactions (which incorporates factors like higher fees for `multisign` or `AMMCreate`), plus an additional base fee amount for each additional signature in the transaction (for example, from `BatchSigners`). Expressed as an equation: -2 * (Base Fee) + SUM(Inner Transaction Fees) + An additional Base Fee for each additional signature +2 \* (Base Fee) + SUM(Inner Transaction Fees) + An additional Base Fee for each additional signature The fees for the individual inner transactions are paid in the outer transaction rather than the inner transactions themselves, to ensure that fee escalation is calculated on the total cost of the batch transaction and not just the overhead. @@ -134,9 +136,9 @@ There is also a pointer back to the parent outer transaction (`ParentBatchID`). This standard doesn't add any new fields to the [transaction common fields](/docs/references/protocol/transactions/common-fields.md), but it does add another global transaction flag: -| Flag Name | Value | -|-----------------|------------| -| tfInnerBatchTxn | 0x40000000 | +| Flag Name | Value | +| --------------- | ---------- | +| tfInnerBatchTxn | 0x40000000 | This flag should be used only if a transaction is an inner transaction in a `Batch` transaction. This signifies that the transaction shouldn't be signed. Any normal transaction that includes this flag should be rejected. @@ -154,7 +156,7 @@ In the single account case, the single account must approve all of the transacti #### Multi Account -The multi-account case is a bit more complicated and is best illustrated with an example. +The multi-account case is a bit more complicated and is best illustrated with an example. Alice and Bob are conducting a trustless swap via a multi-account `Batch`, with Alice providing 1000 XRP and Bob providing 1000 USD. Bob submits the `Batch` transaction, so Alice must provide her part of the swap to him. @@ -163,6 +165,7 @@ If Alice provides a fully autofilled and signed transaction to Bob, Bob can subm If Alice just signs her part of the Batch transaction, Bob can modify his transaction to only provide 1 USD instead, thereby getting his 1000 XRP at a much cheaper rate. Therefore, the entire Batch transaction (and all its inner transactions) must be signed by all parties. ### Inner Transaction Safety + An inner batch transaction is a special case. It doesn't include a signature or a fee (since those are both included in the outer transaction). Therefore, they must be handled carefully to ensure that someone can't somehow directly submit an inner `Batch` transaction without it being included in an outer transaction. Inner transactions cannot be broadcast (and won't be accepted if they happen to be broadcast, for example, from a malicious node). They must be generated from the `Batch` outer transaction instead. Inner transactions cannot be directly submitted via the submit RPC. diff --git a/docs/concepts/transactions/fees.md b/docs/concepts/transactions/fees.md index b9fdd36c67..be46905d15 100644 --- a/docs/concepts/transactions/fees.md +++ b/docs/concepts/transactions/fees.md @@ -2,17 +2,17 @@ html: fees.html parent: transactions.html seo: - description: Learn about the types of fees allowed by the XRP Ledger, including neutral fees (payable to no one) that protect the ledger against abuse, as well as fees that users can collect from each other. + description: Learn about the types of fees allowed by the XRP Ledger, including neutral fees (payable to no one) that protect the ledger against abuse, as well as fees that users can collect from each other. labels: - Fees --- + # Fees (Disambiguation) The XRP Ledger is a decentralized ledger, secured by cryptography and powered by a distributed peer-to-peer network of servers. This means that no one party, not even Ripple, can require a fee for access to the network. However, the rules of the XRP Ledger include several types of fees, including neutral fees which protect the ledger against abuse. These neutral fees are not paid to anyone. There are also several optional ways that users can collect fees from each other, both inside and outside the XRP Ledger. - ## In the Ledger ### Neutral Fees @@ -27,7 +27,6 @@ _**Transfer fees**_ are optional percentage fees that issuers can charge to tran _**Trust line quality**_ is a setting that allows an account to value balances on a trust line at higher or lower than face value. This can lead to situations that are like charging a fee. Trust line quality does not apply to XRP, which is not tied to a trust line. - ## Outside the Ledger Although the fees described above are the only fees built into the XRP Ledger, people can still invent ways to charge fees associated with the ledger. For example, financial institutions commonly charge their customers to send money into and out of the XRP Ledger. diff --git a/docs/concepts/transactions/finality-of-results/canceling-a-transaction.md b/docs/concepts/transactions/finality-of-results/canceling-a-transaction.md index e3b22694d4..701969b262 100644 --- a/docs/concepts/transactions/finality-of-results/canceling-a-transaction.md +++ b/docs/concepts/transactions/finality-of-results/canceling-a-transaction.md @@ -2,10 +2,11 @@ html: canceling-a-transaction.html parent: finality-of-results.html seo: - description: Understand when and how it's possible to cancel a transaction that has already been sent. + description: Understand when and how it's possible to cancel a transaction that has already been sent. labels: - Transaction Sending --- + # Canceling a Transaction An important and intentional feature of the XRP Ledger is that a [transaction](../index.md)'s outcome is [final](index.md) as soon as it has been incorporated in a [ledger version](../../ledgers/index.md) that is validated by the [consensus process](../../consensus-protocol/index.md). diff --git a/docs/concepts/transactions/finality-of-results/index.md b/docs/concepts/transactions/finality-of-results/index.md index 8c8a23c3ac..c7e8f11f6b 100644 --- a/docs/concepts/transactions/finality-of-results/index.md +++ b/docs/concepts/transactions/finality-of-results/index.md @@ -2,11 +2,12 @@ html: finality-of-results.html parent: transactions.html seo: - description: Learn when the outcome of a transaction is final and immutable. + description: Learn when the outcome of a transaction is final and immutable. labels: - Transaction Sending - Blockchain --- + # Finality of Results The order in which transactions apply to the consensus [ledger](../../ledgers/index.md) is not final until a ledger is closed and the exact transaction set is approved by the [consensus process](../../consensus-protocol/index.md). A transaction that succeeded initially could still fail, and a transaction that failed initially could still succeed. Additionally, a transaction that was rejected by the consensus process in one round could achieve consensus in a later round. @@ -15,12 +16,12 @@ A validated ledger can include successful transactions (`tes` result codes) as w For any other result code, it can be difficult to determine if the result is final. The following table summarizes when a transaction's outcome is final, based on the result code from submitting the transaction: -| Result Code | Finality | -|:----------------|:-----------------------------------------------------------| -| `tesSUCCESS` | Final when included in a validated ledger | -| Any `tec` code | Final when included in a validated ledger | -| Any `tem` code | Final unless the protocol changes to make the transaction valid | -| `tefPAST_SEQ` | Final when another transaction with the same sequence number is included in a validated ledger | +| Result Code | Finality | +| :-------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `tesSUCCESS` | Final when included in a validated ledger | +| Any `tec` code | Final when included in a validated ledger | +| Any `tem` code | Final unless the protocol changes to make the transaction valid | +| `tefPAST_SEQ` | Final when another transaction with the same sequence number is included in a validated ledger | | `tefMAX_LEDGER` | Final when a validated ledger has a [ledger index][Ledger Index] higher than the transaction's `LastLedgerSequence` field, and no validated ledger includes the transaction | Any other transaction result is potentially not final. In that case, the transaction could still succeed or fail later, especially if conditions change such that the transaction is no longer prevented from applying. For example, trying to send a non-XRP currency to an account that does not exist yet would fail, but it could succeed if another transaction sends enough XRP to create the destination account. A server might even store a temporarily-failed, signed transaction and then successfully apply it later without asking first. @@ -30,27 +31,24 @@ Any other transaction result is potentially not final. In that case, the transac When you initially submit a transaction, the `rippled` server tentatively applies that transaction to its current open ledger, then returns the tentative [transaction results](../../../references/protocol/transactions/transaction-results/index.md) from doing so. However, the transaction's final result may be very different than its tentative results, for several reasons: - The transaction may be delayed until a later ledger version, or may never be included in a validated ledger. For the most part, the XRP Ledger follows a principle that all valid transactions should be processed as soon as possible. However, there are exceptions, including: + - If a proposed transaction has not been relayed to a majority of validators by the time a [consensus round](../../consensus-protocol/index.md) begins, it may be postponed until the next ledger version, to give the remaining validators time to fetch the transaction and confirm that it is valid. - - If a proposed transaction has not been relayed to a majority of validators by the time a [consensus round](../../consensus-protocol/index.md) begins, it may be postponed until the next ledger version, to give the remaining validators time to fetch the transaction and confirm that it is valid. + - If an address sends two different transactions using the same sequence number, at most one of those transactions can become validated. If those transactions are relayed through the network in different paths, a tentatively-successful transaction that some servers saw first may end up failing because the other, conflicting transaction reached a majority of servers first. - - If an address sends two different transactions using the same sequence number, at most one of those transactions can become validated. If those transactions are relayed through the network in different paths, a tentatively-successful transaction that some servers saw first may end up failing because the other, conflicting transaction reached a majority of servers first. + - To protect the network from spam, all transactions must destroy a [transaction cost](../transaction-cost.md) in XRP to be relayed throughout the XRP Ledger peer-to-peer network. If heavy load on the peer-to-peer network causes the transaction cost to increase, a transaction that tentatively succeeded may not get relayed to enough servers to achieve a consensus, or may be [queued](../transaction-queue.md) for later. - - To protect the network from spam, all transactions must destroy a [transaction cost](../transaction-cost.md) in XRP to be relayed throughout the XRP Ledger peer-to-peer network. If heavy load on the peer-to-peer network causes the transaction cost to increase, a transaction that tentatively succeeded may not get relayed to enough servers to achieve a consensus, or may be [queued](../transaction-queue.md) for later. + - Temporary internet outages or delays may prevent a proposed transaction from being successfully relayed before the transaction's intended expiration, as set by the `LastLedgerSequence` field. (If the transaction does not have an expiration, then it remains valid and could succeed any amount of time later, which can be undesirable in its own way. See [Reliable Transaction Submission](../reliable-transaction-submission.md) for details.) - - Temporary internet outages or delays may prevent a proposed transaction from being successfully relayed before the transaction's intended expiration, as set by the `LastLedgerSequence` field. (If the transaction does not have an expiration, then it remains valid and could succeed any amount of time later, which can be undesirable in its own way. See [Reliable Transaction Submission](../reliable-transaction-submission.md) for details.) - - - Combinations of two or more of these factors can also occur. + - Combinations of two or more of these factors can also occur. - The [order transactions apply in a closed ledger](../../ledgers/open-closed-validated-ledgers.md) is usually different than the order those transactions were tentatively applied to a current open ledger; depending on the transactions involved, this can cause a tentatively-successful transaction to fail or a tentatively-failed transaction to succeed. Some examples include: + - If two transactions would each fully consume the same Offer in the [decentralized exchange](../../tokens/decentralized-exchange/index.md), whichever one comes first succeeds, and the other fails. Since the order in which those transactions apply may change, the one that succeeded can fail and the one that failed can succeed. Since oOffers can be partially executed, they could also still succeed, but to a greater or lesser extent. - - If two transactions would each fully consume the same Offer in the [decentralized exchange](../../tokens/decentralized-exchange/index.md), whichever one comes first succeeds, and the other fails. Since the order in which those transactions apply may change, the one that succeeded can fail and the one that failed can succeed. Since oOffers can be partially executed, they could also still succeed, but to a greater or lesser extent. + - If a [cross-currency payment](../../payment-types/cross-currency-payments.md) succeeds by consuming an Offer in the decentralized exchange, but a different transaction consumes or creates offers in the same order book, the cross-currency payment may succeed with a different exchange rate than it had when it executed tentatively. If it was a [partial payment](../../payment-types/partial-payments.md), it could also deliver a different amount. - - If a [cross-currency payment](../../payment-types/cross-currency-payments.md) succeeds by consuming an Offer in the decentralized exchange, but a different transaction consumes or creates offers in the same order book, the cross-currency payment may succeed with a different exchange rate than it had when it executed tentatively. If it was a [partial payment](../../payment-types/partial-payments.md), it could also deliver a different amount. - - - A [Payment transaction][] that tentatively failed because the sender did not have enough funds may later succeed because another transaction delivering the necessary funds came first in the canonical order. The reverse is also possible: a transaction that tentatively succeeded may fail because a transaction delivering the necessary funds did not come first after being put into canonical order. - - {% admonition type="success" name="Tip" %}For this reason, when running tests against the XRP Ledger, be sure to wait for a ledger close in between transactions if you have several accounts affecting the same data. If you are testing against a server in [stand-alone mode][], you must [manually close the ledger](../../../infrastructure/testing-and-auditing/advance-the-ledger-in-stand-alone-mode.md) in such cases.{% /admonition %} + - A [Payment transaction][] that tentatively failed because the sender did not have enough funds may later succeed because another transaction delivering the necessary funds came first in the canonical order. The reverse is also possible: a transaction that tentatively succeeded may fail because a transaction delivering the necessary funds did not come first after being put into canonical order. + {% admonition type="success" name="Tip" %}For this reason, when running tests against the XRP Ledger, be sure to wait for a ledger close in between transactions if you have several accounts affecting the same data. If you are testing against a server in [stand-alone mode][], you must [manually close the ledger](../../../infrastructure/testing-and-auditing/advance-the-ledger-in-stand-alone-mode.md) in such cases.{% /admonition %} ## See Also diff --git a/docs/concepts/transactions/finality-of-results/look-up-transaction-results.md b/docs/concepts/transactions/finality-of-results/look-up-transaction-results.md index f799eaac33..bb2d3680ab 100644 --- a/docs/concepts/transactions/finality-of-results/look-up-transaction-results.md +++ b/docs/concepts/transactions/finality-of-results/look-up-transaction-results.md @@ -2,11 +2,12 @@ html: look-up-transaction-results.html parent: finality-of-results.html seo: - description: Find the results of previously-submitted transactions. + description: Find the results of previously-submitted transactions. labels: - Payments - Development --- + # Look Up Transaction Results To use the XRP Ledger effectively, you need to be able to understand [transaction](../index.md) outcomes: did the transaction succeed? What did it do? If it failed, why? @@ -21,12 +22,11 @@ To understand the outcome of a transaction as described in these instructions, y - Know which transaction you want to understand. If you know the transaction's [identifying hash][], you can look it up that way. You can also look at transactions that executed in a recent ledger or the transactions that most recently affected a given account. - Have access to a `rippled` server that provides reliable information and has the necessary history for when the transaction was submitted. - - For looking up the outcomes of transactions you've recently submitted, the server you submitted through should be enough, as long as it maintains sync with the network during that time. - - For outcomes of older transactions, you may want to use a [full-history server](../../networks-and-servers/ledger-history.md#full-history). + - For looking up the outcomes of transactions you've recently submitted, the server you submitted through should be enough, as long as it maintains sync with the network during that time. + - For outcomes of older transactions, you may want to use a [full-history server](../../networks-and-servers/ledger-history.md#full-history). {% admonition type="success" name="Tip" %}There are other ways of querying for data on transactions from the XRP Ledger, including the [Data API](../../../references/data-api.md) and other exported databases, but those interfaces are non-authoritative. This document describes how to look up data using the `rippled` API directly, for the most direct and authoritative results possible.{% /admonition %} - ## 1. Get Transaction Status Knowing whether a transaction succeeded or failed is a two-part question: @@ -38,8 +38,8 @@ To know whether a transaction was included in a validated ledger, you usually ne - If the result does not have `"validated": true`, then the result may be tentative and you must wait for the ledger to be validated to know if the transaction's outcome is final. - If the result does not contain the transaction in question, or returns the error `txnNotFound`, then the transaction is not in any ledger that the server has in its available history. This may or may not mean that the transaction failed, depending on whether the transaction could be in a validated ledger version that the server does not have and whether it could be included in a future validated ledger. You can constrain the range of ledgers a transaction can be in by knowing: - - The earliest ledger the transaction could be in, which is the **first ledger to be validated _after_ the transaction was first submitted**. - - The last ledger the transaction could be in, which is defined by the transaction's `LastLedgerSequence` field. + - The earliest ledger the transaction could be in, which is the **first ledger to be validated _after_ the transaction was first submitted**. + - The last ledger the transaction could be in, which is defined by the transaction's `LastLedgerSequence` field. The following example shows a successful transaction, as returned by the [tx method][], which is in a validated ledger version. The order of the fields in the JSON response has been rearranged, with some parts omitted, to make it easier to understand: @@ -65,14 +65,12 @@ The following example shows a successful transaction, as returned by the [tx met This example shows an [AccountSet transaction][] sent by the [account](../../accounts/index.md) with address `rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn`, using [Sequence number][] 376. The transaction's [identifying hash][] is `017DED8F5E20F0335C6F56E3D5EE7EF5F7E83FB81D2904072E665EEA69402567` and its [result](../../../references/protocol/transactions/transaction-results/index.md) is `tesSUCCESS`. The transaction was included in ledger version 46447423, which has been validated, so these results are final. - ### Case: Not Included in a Validated Ledger **If a transaction is not included in a validated ledger, it cannot possibly have had _any_ effect on the shared XRP Ledger state.** If the transaction's failure to be included in a ledger is [_final_](index.md), then it cannot have any future effect, either. If the transaction's failure is not final, it may still become included in a _future_ validated ledger. You can use the provisional results of applying the transaction to the current open ledger as a preview of the likely effects the transaction may have in a final ledger, but those results can change due to [many factors](index.md#how-can-non-final-results-change). - ### Case: Included in a Validated Ledger If the transaction _is_ included in a validated ledger, then the [transaction metadata](../../../references/protocol/transactions/metadata.md) contains a full report of all changes that were made to the ledger state as a result of processing the transaction. The metadata's `TransactionResult` field contains a [transaction result code](../../../references/protocol/transactions/transaction-results/index.md) that summarizes the outcome: @@ -83,12 +81,11 @@ If the transaction _is_ included in a validated ledger, then the [transaction me The result code is only a summary of the transaction's outcome. To understand in more detail what the transaction did, you must read the rest of the metadata in context of the transaction's instructions and the ledger state before the transaction executed. - ## 2. Interpret Metadata Transaction metadata describes _exactly_ how the transaction was applied to the ledger, including the following fields: -{% partial file="/docs/_snippets/tx-metadata-field-table.md" /%} +{% partial file="/docs/_snippets/tx-metadata-field-table.md" /%} Most of the metadata is contained in [the `AffectedNodes` array](../../../references/protocol/transactions/metadata.md#affectednodes). What to look for in this array depends on the type of transaction. Almost every transaction modifies the sender's [AccountRoot object][] to destroy the XRP [transaction cost](../transaction-cost.md) and increase the [account's Sequence number](../../../references/protocol/data-types/basic-data-types.md#account-sequence). @@ -155,7 +152,7 @@ The _only_ changes made by this [no-op transaction](canceling-a-transaction.md) - The previous transaction to affect this account was the transaction `E710CADE7FE9C26C51E8630138322D80926BE91E46D69BF2F36E6E4598D6D0CF`, which executed in ledger version 46447387, as specified in the `PreviousTxnID` and `PreviousTxnLgrSeq` fields. (This may be useful if you want to walk backwards through the account's transaction history.) - {% admonition type="info" name="Note" %}Although the metadata does not explicitly show it, any time a transaction modifies a ledger object, it updates that object's `PreviousTxnID` and `PreviousTxnLgrSeq` fields with the current transaction's information. If the same sender has multiple transactions in a single ledger version, each one after the first provides a `PreviousTxnLgrSeq` whose value is the [ledger index](../../../references/protocol/data-types/basic-data-types.md#ledger-index) of the ledger version that included all those transactions.{% /admonition %} + {% admonition type="info" name="Note" %}Although the metadata does not explicitly show it, any time a transaction modifies a ledger object, it updates that object's `PreviousTxnID` and `PreviousTxnLgrSeq` fields with the current transaction's information. If the same sender has multiple transactions in a single ledger version, each one after the first provides a `PreviousTxnLgrSeq` whose value is the [ledger index](../../../references/protocol/data-types/basic-data-types.md#ledger-index) of the ledger version that included all those transactions.{% /admonition %} Since the `ModifiedNode` entry for `rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn`'s account is the only object in the `AffectedNodes` array, no other changes were made to the ledger as a result of this transaction. @@ -372,7 +369,7 @@ Look for a `CreatedNode` of type `PayChannel` when creating a payment channel. Y The metadata also lists the newly-created payment channel in the destination's [owner directory](../../../references/protocol/ledger-data/ledger-entry-types/directorynode.md). This prevents an account from [being deleted](../../accounts/deleting-accounts.md) if it is the destination of an open payment channel. (This behavior was added by the [fixPayChanRecipientOwnerDir amendment](/resources/known-amendments.md#fixpaychanrecipientownerdir).) -There are several ways to request to close a payment channel, aside from the immutable `CancelAfter` time of the channel (which is only set on creation). If a transaction schedules a channel to close, there is a `ModifiedNode` entry of type `PayChannel` for the channel, with the newly-added close time in the `Expiration` field of the `FinalFields`. The following example shows the changes to a `PayChannel` in a case where the sender requested to close the channel without redeeming a claim: +There are several ways to request to close a payment channel, aside from the immutable `CancelAfter` time of the channel (which is only set on creation). If a transaction schedules a channel to close, there is a `ModifiedNode` entry of type `PayChannel` for the channel, with the newly-added close time in the `Expiration` field of the `FinalFields`. The following example shows the changes to a `PayChannel` in a case where the sender requested to close the channel without redeeming a claim: ```json { @@ -405,7 +402,7 @@ TrustSet transactions create, modify, or delete [trust lines](../../tokens/fungi The following example shows a new trust line, where **`rf1BiG...`** is willing to hold up to 110 USD issued by **`rsA2Lp...`**: ```json - { +{ "CreatedNode": { "LedgerEntryType": "RippleState", "LedgerIndex": "9CA88CDEDFF9252B3DE183CE35B038F57282BC9503CDFA1923EF9A95DF0D6F7B", @@ -431,7 +428,6 @@ The following example shows a new trust line, where **`rf1BiG...`** is willing t } ``` - ### Other Transactions Most other transactions create a specific type of ledger entry and [adjust the sender's owner reserve and owner directory](#general-purpose-bookkeeping): @@ -451,13 +447,13 @@ Most other transactions create a specific type of ledger entry and [adjust the s ## See Also - **Concepts:** - - [Finality of Results](index.md) - - [Reliable Transaction Submission](../reliable-transaction-submission.md) + - [Finality of Results](index.md) + - [Reliable Transaction Submission](../reliable-transaction-submission.md) - **Tutorials:** - - [Monitor Incoming Payments with WebSocket](../../../tutorials/http-websocket-apis/build-apps/monitor-incoming-payments-with-websocket.md) + - [Monitor Incoming Payments with WebSocket](../../../tutorials/http-websocket-apis/build-apps/monitor-incoming-payments-with-websocket.md) - **References:** - - [Ledger Entry Types Reference](../../../references/protocol/ledger-data/ledger-entry-types/index.md) - All possible fields of all types of ledger entries - - [Transaction Metadata](../../../references/protocol/transactions/metadata.md) - Summary of the metadata format and fields that appear in metadata - - [Transaction Results](../../../references/protocol/transactions/transaction-results/index.md) - Tables of all possible result codes for transactions. + - [Ledger Entry Types Reference](../../../references/protocol/ledger-data/ledger-entry-types/index.md) - All possible fields of all types of ledger entries + - [Transaction Metadata](../../../references/protocol/transactions/metadata.md) - Summary of the metadata format and fields that appear in metadata + - [Transaction Results](../../../references/protocol/transactions/transaction-results/index.md) - Tables of all possible result codes for transactions. {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/concepts/transactions/finality-of-results/transaction-malleability.md b/docs/concepts/transactions/finality-of-results/transaction-malleability.md index e321d891c8..0761491f89 100644 --- a/docs/concepts/transactions/finality-of-results/transaction-malleability.md +++ b/docs/concepts/transactions/finality-of-results/transaction-malleability.md @@ -2,11 +2,12 @@ html: transaction-malleability.html parent: finality-of-results.html seo: - description: Be aware of ways transactions could be changed to have a different hash than expected. + description: Be aware of ways transactions could be changed to have a different hash than expected. labels: - Security - Transaction Sending --- + # Transaction Malleability A transaction is "malleable" if it can be changed in any way after being signed, without the keys to sign it. In the XRP Ledger, the **functionality** of a signed transaction cannot change, but in some circumstances a third party _could_ change the signature and identifying hash of a transaction. @@ -17,8 +18,6 @@ On the XRP Ledger mainnet, only **multi-signed transactions** can be malleable, Before 2014, single-signed transactions could be malleable due to properties of the default signing algorithm, ECDSA with the secp256k1 curve. For compatibility with legacy signing tools, it was possible to create and submit malleable single-signed transactions until the [RequireFullyCanonicalSig amendment][] became enabled on 2020-07-03. (Transactions [signed with Ed25519 keys](../../accounts/cryptographic-keys.md#signing-algorithms) were never vulnerable to this problem.) - - ## Background In the XRP Ledger, a transaction cannot execute unless: @@ -49,7 +48,6 @@ With the [RequireFullyCanonicalSig amendment][] (enabled in 2020), all transacti Between 2014 and 2020, the XRP Ledger was compatible with legacy software that did not always generate fully canonical signatures, but used a flag on transactions called [**`tfFullyCanonicalSig`**](../../../references/protocol/transactions/common-fields.md#global-flags) to protect compatible software from transaction malleability. This flag, which compatible signing software enables by default, required that the transaction use a _fully-canonical_ signature to be valid. Now that the [RequireFullyCanonicalSig amendment][] is enabled, the flag is no longer necessary, but there is no harm in enabling it anyway. - ### Malleability with Multi-Signatures An important, explicit feature of multi-signing is that multiple different possible configurations can make a transaction valid. For example, an account can be configured so that signatures from any three of five signers could authorize a transaction. However, this inherently means that there can be several different variations of a valid transaction, each with a different identifying hash. @@ -76,7 +74,6 @@ Even if your authorized signers are not intentionally malicious, confusion or po For greater security, these guidelines provide multiple layers of protection. - ## Exploit With Malleable Transactions If the software you use to interface with the XRP Ledger sends malleable transactions, a malicious actor may be able to trick your software into losing track of a transaction's final outcome and potentially (in the worst case) sending equivalent payments multiple times. @@ -89,7 +86,7 @@ The process to exploit a vulnerable system follows a series of steps like the fo 1. The vulnerable system constructs a multi-signed transaction and collects more than the necessary number of signatures. - If an authorized signer is malicious or irresponsible, the transaction could also be vulnerable if that signer's signature is not included but could be added. + If an authorized signer is malicious or irresponsible, the transaction could also be vulnerable if that signer's signature is not included but could be added. 2. The system notes the identifying hash of the vulnerable transaction, submits it to the XRP Ledger network, then begins monitoring for that hash to be included in a validated ledger version. @@ -97,53 +94,52 @@ The process to exploit a vulnerable system follows a series of steps like the fo 4. The malicious actor removes an extra signature from the vulnerable transaction. - Unlike creating a signature for different transaction instructions, this does not require a large amount of computational work. It can be done in much less time than it takes to generate a signature in the first place. + Unlike creating a signature for different transaction instructions, this does not require a large amount of computational work. It can be done in much less time than it takes to generate a signature in the first place. - Alternatively, an authorized signer whose signature is not already part of the transaction could add their signature to the vulnerable transaction's list of signatures. Depending on the sender's multi-signing settings, this can be instead of or in addition to removing other signatures from the transaction. + Alternatively, an authorized signer whose signature is not already part of the transaction could add their signature to the vulnerable transaction's list of signatures. Depending on the sender's multi-signing settings, this can be instead of or in addition to removing other signatures from the transaction. - The modified list of signatures results in a different identifying hash. (You do not have to calculate the hash before you submit to the network, but knowing the hash makes it easier to check the transaction's status later.) + The modified list of signatures results in a different identifying hash. (You do not have to calculate the hash before you submit to the network, but knowing the hash makes it easier to check the transaction's status later.) 5. The malicious actor submits the modified transaction to the network. - This creates a "race" between the transaction as originally submitted and the modified version submitted by the malicious actor. The two transactions are mutually exclusive. Both are valid, but they have the same exact transaction data, including the `Sequence` number, so at most one of them can ever be included in a validated ledger. + This creates a "race" between the transaction as originally submitted and the modified version submitted by the malicious actor. The two transactions are mutually exclusive. Both are valid, but they have the same exact transaction data, including the `Sequence` number, so at most one of them can ever be included in a validated ledger. - Servers in the peer-to-peer network have no way of knowing which one "came first" or was intended by its original sender. Delays or other coincidences in network connectivity could result in validators seeing only one or the other by the time they finalize their consensus proposals, so either one could "win the race". + Servers in the peer-to-peer network have no way of knowing which one "came first" or was intended by its original sender. Delays or other coincidences in network connectivity could result in validators seeing only one or the other by the time they finalize their consensus proposals, so either one could "win the race". - A malicious actor could increase the chances of getting non-canonical transactions confirmed if they controlled some number of well-connected servers in the peer-to-peer network, even if those servers are not trusted as validators. + A malicious actor could increase the chances of getting non-canonical transactions confirmed if they controlled some number of well-connected servers in the peer-to-peer network, even if those servers are not trusted as validators. - If the malicious actor controls the only server to which the vulnerable system submitted the transaction, the malicious actor can easily control which version is distributed to the rest of the network. + If the malicious actor controls the only server to which the vulnerable system submitted the transaction, the malicious actor can easily control which version is distributed to the rest of the network. 6. The malicious actor's version of the transaction achieves consensus and becomes included in a validated ledger. - At this point, the transaction has executed and cannot be reversed. Its effects (such as sending XRP) are final. The original version of the transaction is no longer valid because its `Sequence` number has been used. + At this point, the transaction has executed and cannot be reversed. Its effects (such as sending XRP) are final. The original version of the transaction is no longer valid because its `Sequence` number has been used. - The effects of the transaction in the XRP Ledger are exactly the same as if the original version had executed. + The effects of the transaction in the XRP Ledger are exactly the same as if the original version had executed. 7. The vulnerable system does not see the transaction hash it is expecting, and erroneously concludes that the transaction did not execute. - If the transaction included the `LastLedgerSequence` field, this would occur after the specified ledger index has passed. + If the transaction included the `LastLedgerSequence` field, this would occur after the specified ledger index has passed. - If the transaction omitted the `LastLedgerSequence` field, this could be wrong in another way: if no other transaction from the same sender uses the same `Sequence` number, then the transaction could theoretically succeed later regardless of how much time has passed. (See [Reliable Transaction Submission](../reliable-transaction-submission.md) for details.) + If the transaction omitted the `LastLedgerSequence` field, this could be wrong in another way: if no other transaction from the same sender uses the same `Sequence` number, then the transaction could theoretically succeed later regardless of how much time has passed. (See [Reliable Transaction Submission](../reliable-transaction-submission.md) for details.) 8. The vulnerable system takes action assuming that the transaction has failed. - For example, it may refund (or not debit) a customer's balance in its own system, to account for the funds that it thinks have not been sent in the XRP Ledger. - - Worse, the vulnerable system might construct a new transaction to replace the transaction, picking new `Sequence`, `LastLedgerSequence`, and `Fee` parameters based on the current state of the network, but keeping the rest of the transaction the same as the original. If this new transaction is also malleable, the system could be exploited in the same way an indefinite number of times. + For example, it may refund (or not debit) a customer's balance in its own system, to account for the funds that it thinks have not been sent in the XRP Ledger. + Worse, the vulnerable system might construct a new transaction to replace the transaction, picking new `Sequence`, `LastLedgerSequence`, and `Fee` parameters based on the current state of the network, but keeping the rest of the transaction the same as the original. If this new transaction is also malleable, the system could be exploited in the same way an indefinite number of times. ## See Also - **Concepts:** - - [Transactions](../index.md) - - [Finality of Results](index.md) + - [Transactions](../index.md) + - [Finality of Results](index.md) - **Tutorials:** - - [Look Up Transaction Results](look-up-transaction-results.md) - - [Reliable Transaction Submission](../reliable-transaction-submission.md) + - [Look Up Transaction Results](look-up-transaction-results.md) + - [Reliable Transaction Submission](../reliable-transaction-submission.md) - **References:** - - [Basic Data Types - Hashes](../../../references/protocol/data-types/basic-data-types.md#hashes) - - [Transaction Common Fields - Global Flags](../../../references/protocol/transactions/common-fields.md#global-flags) - - [Transaction Results](../../../references/protocol/transactions/transaction-results/index.md) - - [Serialization Format](../../../references/protocol/binary-format.md) + - [Basic Data Types - Hashes](../../../references/protocol/data-types/basic-data-types.md#hashes) + - [Transaction Common Fields - Global Flags](../../../references/protocol/transactions/common-fields.md#global-flags) + - [Transaction Results](../../../references/protocol/transactions/transaction-results/index.md) + - [Serialization Format](../../../references/protocol/binary-format.md) {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/concepts/transactions/index.md b/docs/concepts/transactions/index.md index d78f23aa91..19153a374a 100644 --- a/docs/concepts/transactions/index.md +++ b/docs/concepts/transactions/index.md @@ -2,18 +2,18 @@ html: transactions.html parent: concepts.html seo: - description: Transactions are the only way to change the XRP Ledger. Understand what forms they take and how to use them. + description: Transactions are the only way to change the XRP Ledger. Understand what forms they take and how to use them. labels: - Payments - Transaction Sending --- + # Transactions A _Transaction_ is the only way to modify the XRP Ledger. Transactions are only final if signed, submitted, and accepted into a validated ledger version following the [consensus process](../consensus-protocol/index.md). Some ledger rules also generate _[pseudo-transactions](../../references/protocol/transactions/pseudo-transaction-types/index.md)_, which aren't signed or submitted, but still must be accepted by consensus. Transactions that fail are also included in ledgers because they modify balances of XRP to pay for the anti-spam [transaction cost][]. Transactions can do more than send money. In addition to supporting various [Payment Types](../payment-types/index.md), transactions in the XRP Ledger are also used to rotate [cryptographic keys](../accounts/cryptographic-keys.md), manage other settings, and trade in the XRP Ledger's [decentralized exchange](../tokens/decentralized-exchange/index.md). The [`rippled` API reference](../../references/http-websocket-apis/index.md) has a complete [list of transaction types](../../references/protocol/transactions/types/index.md). - ### Identifying Transactions Every signed transaction has a unique `"hash"` that identifies it. The server provides the hash in the response when you submit the transaction; you can also look up a transaction in an account's transaction history with the [account_tx command](../../references/http-websocket-apis/public-api-methods/account-methods/account_tx.md). @@ -22,16 +22,13 @@ The transaction hash can be used as a "proof of payment" since anyone can [look {% raw-partial file="/docs/_snippets/setfee_uniqueness_note.md" /%} - - ## Claimed Cost Justification Although it may seem unfair to charge a [transaction cost](transaction-cost.md) for a failed transaction, the `tec` class of errors exists for good reasons: -* Transactions submitted after the failed one do not have to have their Sequence values renumbered. Incorporating the failed transaction into a ledger uses up the transaction's sequence number, preserving the expected sequence. -* Distributing the transaction throughout the network increases network load. Enforcing a cost makes it harder for attackers to abuse the network with failed transactions. -* The transaction cost is generally very small in real-world value, so it should not harm users unless they are sending large quantities of transactions. - +- Transactions submitted after the failed one do not have to have their Sequence values renumbered. Incorporating the failed transaction into a ledger uses up the transaction's sequence number, preserving the expected sequence. +- Distributing the transaction throughout the network increases network load. Enforcing a cost makes it harder for attackers to abuse the network with failed transactions. +- The transaction cost is generally very small in real-world value, so it should not harm users unless they are sending large quantities of transactions. ## Authorizing Transactions @@ -39,21 +36,20 @@ In the decentralized XRP Ledger, a digital signature proves that a transaction i A transaction can be authorized by any of the following types of signatures: -* A single signature from the master private key that is mathematically associated with the sending address. You can disable or enable the master key pair using an [AccountSet transaction][]. -* A single signature that matches the regular private key associated with the address. You can add, remove, or replace a regular key pair using a [SetRegularKey transaction][]. -* A [multi-signature](../accounts/multi-signing.md) that matches a list of signers owned by the address. You can add, remove, or replace a list of signers using a [SignerListSet transaction][]. +- A single signature from the master private key that is mathematically associated with the sending address. You can disable or enable the master key pair using an [AccountSet transaction][]. +- A single signature that matches the regular private key associated with the address. You can add, remove, or replace a regular key pair using a [SetRegularKey transaction][]. +- A [multi-signature](../accounts/multi-signing.md) that matches a list of signers owned by the address. You can add, remove, or replace a list of signers using a [SignerListSet transaction][]. Any signature type can authorize any type of transaction, with the following exceptions: -* Only the master private key can [disable the master public key](../../references/protocol/transactions/types/accountset.md). -* Only the master private key can [permanently give up the ability to freeze](../tokens/fungible-tokens/freezes.md#no-freeze). -* You can never remove the last method of signing transactions from an address. +- Only the master private key can [disable the master public key](../../references/protocol/transactions/types/accountset.md). +- Only the master private key can [permanently give up the ability to freeze](../tokens/fungible-tokens/freezes.md#no-freeze). +- You can never remove the last method of signing transactions from an address. For more information about master and regular key pairs, see [Cryptographic Keys](../accounts/cryptographic-keys.md). - ## Signing and Submitting Transactions Sending a transaction to the XRP Ledger involves several steps: @@ -67,24 +63,23 @@ Sending a transaction to the XRP Ledger involves several steps: See [Send XRP](../../tutorials/how-tos/send-xrp.md) for an interactive tutorial in sending XRP payments. - ### Example Unsigned Transaction Here is an example of an unsigned [Payment transaction][] in JSON: ```json { - "TransactionType" : "Payment", - "Account" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "Destination" : "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "Amount" : { - "currency" : "USD", - "value" : "1", - "issuer" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn" + "TransactionType": "Payment", + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "Amount": { + "currency": "USD", + "value": "1", + "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn" }, "Fee": "12", "Flags": 2147483648, - "Sequence": 2, + "Sequence": 2 } ``` @@ -98,7 +93,7 @@ Signing a transaction results in a chunk of binary data, called a "blob", that c { "id": 2, "command": "submit", - "tx_blob" : "120000240000000461D4838D7EA4C6800000000000000000000000000055534400000000004B4E9C06F24296074F7BC48F92A97916C6DC5EA968400000000000000F732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB74483046022100982064CDD3F052D22788DB30B52EEA8956A32A51375E72274E417328EBA31E480221008F522C9DB4B0F31E695AA013843958A10DE8F6BA7D6759BEE645F71A7EB240BE81144B4E9C06F24296074F7BC48F92A97916C6DC5EA983143E9D4A2B8AA0780F682D136F7A56D6724EF53754" + "tx_blob": "120000240000000461D4838D7EA4C6800000000000000000000000000055534400000000004B4E9C06F24296074F7BC48F92A97916C6DC5EA968400000000000000F732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB74483046022100982064CDD3F052D22788DB30B52EEA8956A32A51375E72274E417328EBA31E480221008F522C9DB4B0F31E695AA013843958A10DE8F6BA7D6759BEE645F71A7EB240BE81144B4E9C06F24296074F7BC48F92A97916C6DC5EA983143E9D4A2B8AA0780F682D136F7A56D6724EF53754" } ``` @@ -200,25 +195,24 @@ Example response from the `tx` command: } ``` - ## See Also - **Concepts:** - - [Payment Types](../payment-types/index.md) + - [Payment Types](../payment-types/index.md) - **Tutorials:** - - [Set Up Secure Signing](secure-signing.md) - - [Send XRP](../../tutorials/how-tos/send-xrp.md) - - [Look Up Transaction Results](finality-of-results/look-up-transaction-results.md) - - [Monitor Incoming Payments with WebSocket](../../tutorials/http-websocket-apis/build-apps/monitor-incoming-payments-with-websocket.md) - - [Cancel or Skip a Transaction](finality-of-results/canceling-a-transaction.md) - - [Reliable Transaction Submission](reliable-transaction-submission.md) + - [Set Up Secure Signing](secure-signing.md) + - [Send XRP](../../tutorials/how-tos/send-xrp.md) + - [Look Up Transaction Results](finality-of-results/look-up-transaction-results.md) + - [Monitor Incoming Payments with WebSocket](../../tutorials/http-websocket-apis/build-apps/monitor-incoming-payments-with-websocket.md) + - [Cancel or Skip a Transaction](finality-of-results/canceling-a-transaction.md) + - [Reliable Transaction Submission](reliable-transaction-submission.md) - **References:** - - [Transaction Common Fields](../../references/protocol/transactions/common-fields.md) - - [Transaction Types](../../references/protocol/transactions/types/index.md) - - [Transaction Metadata](../../references/protocol/transactions/metadata.md) - - [account_tx method][] - - [tx method][] - - [submit method][] - - [submit_multisigned method][] + - [Transaction Common Fields](../../references/protocol/transactions/common-fields.md) + - [Transaction Types](../../references/protocol/transactions/types/index.md) + - [Transaction Metadata](../../references/protocol/transactions/metadata.md) + - [account_tx method][] + - [tx method][] + - [submit method][] + - [submit_multisigned method][] {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/concepts/transactions/reliable-transaction-submission.md b/docs/concepts/transactions/reliable-transaction-submission.md index 3a6b3a81c7..39239cccce 100644 --- a/docs/concepts/transactions/reliable-transaction-submission.md +++ b/docs/concepts/transactions/reliable-transaction-submission.md @@ -2,14 +2,15 @@ html: reliable-transaction-submission.html parent: transactions.html seo: - description: Build a system that can submit transactions to the XRP Ledger and get their final results safely and quickly. + description: Build a system that can submit transactions to the XRP Ledger and get their final results safely and quickly. labels: - Transaction Sending - Development --- + # Reliable Transaction Submission -Financial institutions and other services using the XRP Ledger should use the best practices described here to make sure that transactions are validated or rejected in a verifiable and prompt way. You should submit transactions to trusted `rippled` servers. +Financial institutions and other services using the XRP Ledger should use the best practices described here to make sure that transactions are validated or rejected in a verifiable and prompt way. You should submit transactions to trusted `rippled` servers. The best practices detailed in this document allow applications to submit transactions to the XRP Ledger while achieving: @@ -22,95 +23,84 @@ Applications which fail to implement best practices are at risk of the following 2. Mistaking provisional transaction results for their final, immutable results. 3. Failing to find authoritative results of transactions previously applied to the ledger. -These types of errors can potentially lead to serious problems. For example, an application that fails to find a prior successful payment transaction might erroneously submit another transaction, duplicating the original payment. This underscores the importance that applications base their actions on authoritative transaction results, using the techniques described in this document. +These types of errors can potentially lead to serious problems. For example, an application that fails to find a prior successful payment transaction might erroneously submit another transaction, duplicating the original payment. This underscores the importance that applications base their actions on authoritative transaction results, using the techniques described in this document. ## Background -The XRP Ledger protocol provides a ledger shared across all servers in the network. Through a [process of consensus and validation](../consensus-protocol/index.md), the network agrees on the order in which transactions are applied to (or omitted from) the ledger. +The XRP Ledger protocol provides a ledger shared across all servers in the network. Through a [process of consensus and validation](../consensus-protocol/index.md), the network agrees on the order in which transactions are applied to (or omitted from) the ledger. -Well-formed transactions submitted to trusted XRP Ledger servers are usually validated or rejected in a matter of seconds. There are cases, however, in which a well-formed transaction is neither validated nor rejected this quickly. One specific case can occur if the global [transaction cost](transaction-cost.md) increases after an application sends a transaction. If the transaction cost increases above what has been specified in the transaction, the transaction is not included in the next validated ledger. If at some later date the global transaction cost decreases, the transaction could be included in a later ledger. If the transaction does not specify an expiration, there is no limit to how much later this can occur. +Well-formed transactions submitted to trusted XRP Ledger servers are usually validated or rejected in a matter of seconds. There are cases, however, in which a well-formed transaction is neither validated nor rejected this quickly. One specific case can occur if the global [transaction cost](transaction-cost.md) increases after an application sends a transaction. If the transaction cost increases above what has been specified in the transaction, the transaction is not included in the next validated ledger. If at some later date the global transaction cost decreases, the transaction could be included in a later ledger. If the transaction does not specify an expiration, there is no limit to how much later this can occur. If a power or network outage occurs, applications face more challenges finding the status of submitted transactions. Applications must take care both to properly submit a transaction and later to properly get authoritative results. - - - ### Transaction Timeline When you submit a transaction to the XRP Ledger, regardless of whether you used [HTTP API](../../references/http-websocket-apis/index.md), a [client library](../../references/client-libraries.md), or some other app, process of applying the transaction to the ledger is the same. That process goes like this: 1. An account owner creates and signs a transaction. 2. The owner submits the transaction to the network as a candidate transaction. - - Malformed or nonsensical transactions are rejected immediately. - - Well-formed transactions may provisionally succeed, then later fail. - - Well-formed transactions may provisionally fail, then later succeed. - - Well-formed transactions may provisionally succeed, and then later succeed in a slightly different way. (For example, the exchange rate when [trading currencies](../tokens/decentralized-exchange/index.md) may vary.) + - Malformed or nonsensical transactions are rejected immediately. + - Well-formed transactions may provisionally succeed, then later fail. + - Well-formed transactions may provisionally fail, then later succeed. + - Well-formed transactions may provisionally succeed, and then later succeed in a slightly different way. (For example, the exchange rate when [trading currencies](../tokens/decentralized-exchange/index.md) may vary.) 3. Through consensus and validation, the transaction is applied to the ledger. Even some failed transactions are applied, to enforce a cost for being propagated through the network. 4. The validated ledger includes the transaction, and its effects are reflected in the ledger state. - - Transaction results are no longer provisional, success or failure is now final and immutable. + - Transaction results are no longer provisional, success or failure is now final and immutable. {% admonition type="info" name="Note" %}A successful status code returned from a [submit method][] indicates the server has received the candidate transaction. The transaction may or may not be applied to a validated ledger.{% /admonition %} -APIs may return provisional results based on the result of applying candidate transactions to the current, in-progress ledger. Applications must not confuse these with the final, *immutable*, results of a transaction. Immutable results are found only in validated ledgers. Applications may need to query the status of a transaction repeatedly, until the ledger containing the transaction results is validated. +APIs may return provisional results based on the result of applying candidate transactions to the current, in-progress ledger. Applications must not confuse these with the final, _immutable_, results of a transaction. Immutable results are found only in validated ledgers. Applications may need to query the status of a transaction repeatedly, until the ledger containing the transaction results is validated. -While applying transactions, `rippled` servers use the *last validated ledger*, a snapshot of the ledger state based on transactions the entire network has validated. The process of consensus and validation apply a set of new transactions to the last validated ledger in canonical order, resulting in a new validated ledger. This new validated ledger version and the ones that preceded it form the ledger history. +While applying transactions, `rippled` servers use the _last validated ledger_, a snapshot of the ledger state based on transactions the entire network has validated. The process of consensus and validation apply a set of new transactions to the last validated ledger in canonical order, resulting in a new validated ledger. This new validated ledger version and the ones that preceded it form the ledger history. Each validated ledger version has a ledger index, which is 1 greater than the ledger index of the previous ledger version. Each ledger also has an identifying hash value, which is uniquely determined from its contents. There may be many different versions of in-progress ledgers, which have the same ledger index but different hash values. Only one version can ever be validated. Each validated ledger has a canonical order in which transactions apply. This order is deterministic based on the final transaction set of the ledger. In contrast, each `rippled` server's in-progress ledger is calculated incrementally, as transactions are received. The order in which transactions execute provisionally is usually not the same as the order in which transactions execute to build a new validated ledger. This is one reason why the provisional outcome of a transaction may be different than the final result. For example, a payment may achieve a different final exchange rate depending on whether it executes before or after another payment that would consume the same offer. - - ### LastLedgerSequence -`LastLedgerSequence` is an optional [parameter of all transactions](../../references/protocol/transactions/common-fields.md). This instructs the XRP Ledger that a transaction must be validated on or before a specific ledger version. The XRP Ledger never includes a transaction in a ledger version whose ledger index is higher than the transaction's `LastLedgerSequence` parameter. +`LastLedgerSequence` is an optional [parameter of all transactions](../../references/protocol/transactions/common-fields.md). This instructs the XRP Ledger that a transaction must be validated on or before a specific ledger version. The XRP Ledger never includes a transaction in a ledger version whose ledger index is higher than the transaction's `LastLedgerSequence` parameter. -Use the `LastLedgerSequence` parameter to prevent undesirable cases where a transaction is not confirmed promptly but could be included in a future ledger. You should specify the `LastLedgerSequence` parameter on every transaction. Automated processes should use a value of 4 greater than the last validated ledger index to make sure that a transaction is validated or rejected in a predictable and prompt way. +Use the `LastLedgerSequence` parameter to prevent undesirable cases where a transaction is not confirmed promptly but could be included in a future ledger. You should specify the `LastLedgerSequence` parameter on every transaction. Automated processes should use a value of 4 greater than the last validated ledger index to make sure that a transaction is validated or rejected in a predictable and prompt way. Applications using the [HTTP / WebSocket APIs](../../references/http-websocket-apis/index.md) should explicitly specify a `LastLedgerSequence` when submitting transactions. Some [client libraries](../../references/client-libraries.md) can also [auto-fill](../../references/protocol/transactions/common-fields.md#auto-fillable-fields) a reasonable value for `LastLedgerSequence`; the details vary by library. - - ## Best Practices The following diagram summarizes the recommended flow for submitting a transaction and determining its outcome: -[{% inline-svg file="/docs/img/reliable-tx-submission.svg" /%}](/docs/img/reliable-tx-submission.svg "Reliable transaction submission flowchart") - +[{% inline-svg file="/docs/img/reliable-tx-submission.svg" /%}](/docs/img/reliable-tx-submission.svg 'Reliable transaction submission flowchart') ### Reliable Transactions Submission -Applications submitting transactions should use the following practices to submit reliably even in the event that a process dies or other failure occurs. Application transaction results must be verified so that applications can act on the final, validated results. +Applications submitting transactions should use the following practices to submit reliably even in the event that a process dies or other failure occurs. Application transaction results must be verified so that applications can act on the final, validated results. Submission and verification are two separate procedures which may be implemented using the logic described in this document. 1. Submission - The transaction is submitted to the network and a provisional result is returned. 2. Verification - The authoritative result is determined by examining validated ledgers. - ### Submission -[Persist](https://en.wikipedia.org/wiki/Persistence_%28computer_science%29) details of the transaction before submission, in case of power failure or network failure before submission completes. On restart, the persisted values make it possible to verify the status of the transaction. +[Persist](https://en.wikipedia.org/wiki/Persistence_%28computer_science%29) details of the transaction before submission, in case of power failure or network failure before submission completes. On restart, the persisted values make it possible to verify the status of the transaction. The submission process: 1. Construct and sign the transaction - - Include `LastLedgerSequence` parameter + - Include `LastLedgerSequence` parameter 2. Persist the transaction details, saving: - - Transaction hash - - `LastLedgerSequence` - - Sender address and sequence number - - Latest validated ledger index at the time of submission - - Application-specific data, as needed + - Transaction hash + - `LastLedgerSequence` + - Sender address and sequence number + - Latest validated ledger index at the time of submission + - Application-specific data, as needed 3. Submit the transaction - - ### Verification -During normal operation, applications may check the status of submitted transactions by their hashes; or, depending on the API used, receive notifications when transactions have been validated (or failed). This normal operation may be interrupted, for example by network failures or power failures. In case of such interruption applications need to reliably verify the status of transactions which may or may not have been submitted to the network before the interruption. +During normal operation, applications may check the status of submitted transactions by their hashes; or, depending on the API used, receive notifications when transactions have been validated (or failed). This normal operation may be interrupted, for example by network failures or power failures. In case of such interruption applications need to reliably verify the status of transactions which may or may not have been submitted to the network before the interruption. On restart, or the determination of a new last validated ledger (pseudocode): @@ -155,23 +145,20 @@ The difference between the two transaction failure cases (labeled (1) and (2) in - In failure case (1), the transaction was included in a ledger and destroyed the [XRP transaction cost](transaction-cost.md), but did nothing else. This could be caused by a lack of liquidity, improperly specified [paths](../tokens/fungible-tokens/paths.md), or other circumstances. For many such failures, immediately retrying with a similar transaction is likely to have the same result. You may get different results if you wait for circumstances to change. - In failure case (2), the transaction was not included in a validated ledger, so it did nothing at all, not even destroy the transaction cost. This could be the result of the transaction cost being too low for the current load on the XRP Ledger, the `LastLedgerSequence` being too soon, or it could be due to other conditions such as an unstable network connection. + - In contrast to failure case (1), it is more likely that a new transaction is likely to succeed if you change only the `LastLedgerSequence` and possibly the `Fee` and submit again. Use the same `Sequence` number as the original transaction. - - In contrast to failure case (1), it is more likely that a new transaction is likely to succeed if you change only the `LastLedgerSequence` and possibly the `Fee` and submit again. Use the same `Sequence` number as the original transaction. + - It is also possible that the transaction could not succeed due to the state of the ledger, for example because the sending address disabled the key pair used to sign the transaction. If the transaction's provisional result was a [`tef`-class code](../../references/protocol/transactions/transaction-results/tef-codes.md), the transaction is less likely to succeed without further modification. - - It is also possible that the transaction could not succeed due to the state of the ledger, for example because the sending address disabled the key pair used to sign the transaction. If the transaction's provisional result was a [`tef`-class code](../../references/protocol/transactions/transaction-results/tef-codes.md), the transaction is less likely to succeed without further modification. +- Failure case (3) represents an unexpected state. When a transaction is not processed, you should check the `Sequence` number of the sending account in the most recent validated ledger. (You can use the [account_info method][] to do so.) If the account's `Sequence` value in the latest validated ledger is higher than the transaction's `Sequence` value, then a different transaction with the same `Sequence` value has been included in a validated ledger. If your system is not aware of the other transaction, you are in an unexpected state and should stop processing until you have determined why that has happened; otherwise, your system might send multiple transactions trying to do the same thing. The steps you should take depend on specifically what caused it. Some possibilities include: + - The previously-sent transaction was [malleable](finality-of-results/transaction-malleability.md) and it actually was included in a validated ledger, but with a different hash than you expected. This can happen if you specify a set of flags that do not include the `tfFullyCanonicalSig` flag or if the transaction is multi-signed by more signers than necessary. If this is the case, save the different hash and the final outcome of the transaction, then resume normal activities. -- Failure case (3) represents an unexpected state. When a transaction is not processed, you should check the `Sequence` number of the sending account in the most recent validated ledger. (You can use the [account_info method][] to do so.) If the account's `Sequence` value in the latest validated ledger is higher than the transaction's `Sequence` value, then a different transaction with the same `Sequence` value has been included in a validated ledger. If your system is not aware of the other transaction, you are in an unexpected state and should stop processing until you have determined why that has happened; otherwise, your system might send multiple transactions trying to do the same thing. The steps you should take depend on specifically what caused it. Some possibilities include: + - You [canceled](finality-of-results/canceling-a-transaction.md) and replaced the transaction, and the replacement transaction was processed instead. If you are recovering from an outage, it's possible you may have lost record of the replacement transaction. If this is the case, the transaction you were originally looking up has failed permanently, and the final outcome of the replacement transaction is recorded in a validated ledger version. Save both final outcomes, check for any other missing or replaced transactions, then resume normal activities. - - The previously-sent transaction was [malleable](finality-of-results/transaction-malleability.md) and it actually was included in a validated ledger, but with a different hash than you expected. This can happen if you specify a set of flags that do not include the `tfFullyCanonicalSig` flag or if the transaction is multi-signed by more signers than necessary. If this is the case, save the different hash and the final outcome of the transaction, then resume normal activities. + - If you have two or more transaction-sending systems in an active/passive failover configuration, it's possible that the passive system mistakenly believes the active system has failed, and has become active while the original active system is still also sending transactions. Check the connectivity between the systems and ensure that at most one of them is active. Check your account's transaction history (for example, with the [account_tx method][]) and record the final outcome of all transactions that were included in validated ledgers. Any different transactions with the same `Sequence` numbers have failed permanently; save those final outcomes as well. When you have finished reconciling the differences from all the systems and have resolved the issues that made the systems activate simultaneously, resume normal activities. - - You [canceled](finality-of-results/canceling-a-transaction.md) and replaced the transaction, and the replacement transaction was processed instead. If you are recovering from an outage, it's possible you may have lost record of the replacement transaction. If this is the case, the transaction you were originally looking up has failed permanently, and the final outcome of the replacement transaction is recorded in a validated ledger version. Save both final outcomes, check for any other missing or replaced transactions, then resume normal activities. - - - If you have two or more transaction-sending systems in an active/passive failover configuration, it's possible that the passive system mistakenly believes the active system has failed, and has become active while the original active system is still also sending transactions. Check the connectivity between the systems and ensure that at most one of them is active. Check your account's transaction history (for example, with the [account_tx method][]) and record the final outcome of all transactions that were included in validated ledgers. Any different transactions with the same `Sequence` numbers have failed permanently; save those final outcomes as well. When you have finished reconciling the differences from all the systems and have resolved the issues that made the systems activate simultaneously, resume normal activities. - - {% admonition type="success" name="Tip" %}The [`AccountTxnID` field](../../references/protocol/transactions/common-fields.md#accounttxnid) can help prevent redundant transactions from succeeding in this situation.{% /admonition %} - - - A malicious actor may have used your secret key to send a transaction. If this is the case, [rotate your key pair](../../tutorials/how-tos/manage-account-settings/change-or-remove-a-regular-key-pair.md) if you can, and check for other transactions sent. You should also audit your network to determine if the secret key was part of a larger intrusion or security leak. When you successfully rotate your key pair and are certain that the malicious actor no longer has access to your accounts and systems, you can resume normal activities. + {% admonition type="success" name="Tip" %}The [`AccountTxnID` field](../../references/protocol/transactions/common-fields.md#accounttxnid) can help prevent redundant transactions from succeeding in this situation.{% /admonition %} + - A malicious actor may have used your secret key to send a transaction. If this is the case, [rotate your key pair](../../tutorials/how-tos/manage-account-settings/change-or-remove-a-regular-key-pair.md) if you can, and check for other transactions sent. You should also audit your network to determine if the secret key was part of a larger intrusion or security leak. When you successfully rotate your key pair and are certain that the malicious actor no longer has access to your accounts and systems, you can resume normal activities. #### Ledger Gaps @@ -181,29 +168,27 @@ Your `rippled` server should automatically acquire the missing ledger versions w Alternatively, you can look up the status of the transaction using a different `rippled` server that already has the needed ledger history, such as Ripple's full-history servers at `s2.ripple.com`. Only use a server you trust for this purpose. A malicious server could be programmed to provide false information about the status and outcome of a transaction. - ## Technical Application To implement the transaction submission and verification best practices, applications need to do the following: 1. Determine the signing account's next sequence number - * Each transaction has an account-specific [sequence number](../../references/protocol/data-types/basic-data-types.md#account-sequence). This guarantees the order in which transactions signed by an account are executed and makes it safe to resubmit a transaction without danger of the transaction being applied to the ledger more than once. -3. Decide on a `LastLedgerSequence` - * A transaction's `LastLedgerSequence` is calculated from the last validated ledger index. + - Each transaction has an account-specific [sequence number](../../references/protocol/data-types/basic-data-types.md#account-sequence). This guarantees the order in which transactions signed by an account are executed and makes it safe to resubmit a transaction without danger of the transaction being applied to the ledger more than once. +2. Decide on a `LastLedgerSequence` + - A transaction's `LastLedgerSequence` is calculated from the last validated ledger index. 3. Construct and sign the transaction - * Persist the details of a signed transaction before submission. + - Persist the details of a signed transaction before submission. 4. Submit the transaction - * Initial results are provisional and subject to change. + - Initial results are provisional and subject to change. 5. Determine the final result of a transaction - * Final results are an immutable part of the ledger history. + - Final results are an immutable part of the ledger history. -How the application does these actions depends on the API the application uses. An application may use any of the following interfaces: +How the application does these actions depends on the API the application uses. An application may use any of the following interfaces: - The [HTTP / WebSocket APIs](../../references/http-websocket-apis/index.md) provided directly by XRP Ledger servers - A [client library](../../references/client-libraries.md) - Other middleware or APIs layered on top of the above APIs - ### rippled - Submitting and Verifying Transactions #### Determine the Account Sequence @@ -228,29 +213,28 @@ Response body: ```json { - "result": { - "validated": true, - "status": "success", - "ledger_index": 10266396, - "account_data": { - "index": "96AB97A1BBC37F4F8A22CE28109E0D39D709689BDF412FE8EDAFB57A55E37F38", - "Sequence": 4, - "PreviousTxnLgrSeq": 9905632, - "PreviousTxnID": "CAEE0E34B3DB50A7A0CA486E3A236513531DE9E52EAC47CE4C26332CC847DE26", - "OwnerCount": 2, - "LedgerEntryType": "AccountRoot", - "Flags": 0, - "Balance": "49975988", - "Account": "rG5Ro9e3uGEZVCh3zu5gB9ydKUskCs221W" - } + "result": { + "validated": true, + "status": "success", + "ledger_index": 10266396, + "account_data": { + "index": "96AB97A1BBC37F4F8A22CE28109E0D39D709689BDF412FE8EDAFB57A55E37F38", + "Sequence": 4, + "PreviousTxnLgrSeq": 9905632, + "PreviousTxnID": "CAEE0E34B3DB50A7A0CA486E3A236513531DE9E52EAC47CE4C26332CC847DE26", + "OwnerCount": 2, + "LedgerEntryType": "AccountRoot", + "Flags": 0, + "Balance": "49975988", + "Account": "rG5Ro9e3uGEZVCh3zu5gB9ydKUskCs221W" } + } } ``` In this example, the account's sequence is **4** (note `"Sequence": 4`, in `"account_data"`) as of the last validated ledger (note `"ledger_index": "validated"` in the request, and `"validated": "true"` in the response). -If an application were to submit three transactions signed by this account, they would use sequence numbers 4, 5, and 6. To submit multiple transactions without waiting for validation of each, an application should keep a running account sequence number. - +If an application were to submit three transactions signed by this account, they would use sequence numbers 4, 5, and 6. To submit multiple transactions without waiting for validation of each, an application should keep a running account sequence number. #### Determine the Last Validated Ledger @@ -269,121 +253,118 @@ Response: ```json { - "result": { - "status": "success", - "state": { - "validation_quorum": 3, - "validated_ledger": { - "seq": 10268596, - "reserve_inc": 5000000, - "reserve_base": 20000000, - "hash": "0E0901DA980251B8A4CCA17AB4CA6C3168FE83FA1D3F781AFC5B9B097FD209EF", - "close_time": 470798600, - "base_fee": 10 - }, - "server_state": "full", - "published_ledger": 10268596, - "pubkey_node": "n9LGg37Ya2SS9TdJ4XEuictrJmHaicdgTKiPJYi8QRSdvQd3xMnK", - "peers": 58, - "load_factor": 256000, - "load_base": 256, - "last_close": { - "proposers": 5, - "converge_time": 3004 - }, - "io_latency_ms": 2, - "fetch_pack": 10121, - "complete_ledgers": "10256331-10256382,10256412-10268596", - "build_version": "0.26.4-sp3-private" - } + "result": { + "status": "success", + "state": { + "validation_quorum": 3, + "validated_ledger": { + "seq": 10268596, + "reserve_inc": 5000000, + "reserve_base": 20000000, + "hash": "0E0901DA980251B8A4CCA17AB4CA6C3168FE83FA1D3F781AFC5B9B097FD209EF", + "close_time": 470798600, + "base_fee": 10 + }, + "server_state": "full", + "published_ledger": 10268596, + "pubkey_node": "n9LGg37Ya2SS9TdJ4XEuictrJmHaicdgTKiPJYi8QRSdvQd3xMnK", + "peers": 58, + "load_factor": 256000, + "load_base": 256, + "last_close": { + "proposers": 5, + "converge_time": 3004 + }, + "io_latency_ms": 2, + "fetch_pack": 10121, + "complete_ledgers": "10256331-10256382,10256412-10268596", + "build_version": "0.26.4-sp3-private" } + } } ``` -In this example the last validated ledger index is 10268596 (found under `result.state.validated_ledger` in the response). Note also this example indicates a gap in ledger history. The server used here would not be able to provide information about the transactions applied during that gap (ledgers 10256383 through 10256411). If configured to do so, the server eventually retrieves that part of the ledger history. - +In this example the last validated ledger index is 10268596 (found under `result.state.validated_ledger` in the response). Note also this example indicates a gap in ledger history. The server used here would not be able to provide information about the transactions applied during that gap (ledgers 10256383 through 10256411). If configured to do so, the server eventually retrieves that part of the ledger history. #### Construct the Transaction -`rippled` provides the [sign method][] to prepare a transaction for submission. This method requires an account secret, which should only be passed to trusted `rippled` instances. This example issues 10 FOO (a made-up currency) to another XRP Ledger address. +`rippled` provides the [sign method][] to prepare a transaction for submission. This method requires an account secret, which should only be passed to trusted `rippled` instances. This example issues 10 FOO (a made-up currency) to another XRP Ledger address. Request: ```json { - "method": "sign", - "params": [ - { - "offline": true, - "secret": "s████████████████████████████", - "tx_json": { - "Account": "rG5Ro9e3uGEZVCh3zu5gB9ydKUskCs221W", - "Sequence": 4, - "LastLedgerSequence": 10268600, - "Fee": "10000", - "Amount": { - "currency": "FOO", - "issuer": "rG5Ro9e3uGEZVCh3zu5gB9ydKUskCs221W", - "value": "10" - }, - "Destination": "rawz2WQ8i9FdTHp4KSNpBdyxgFqNpKe8fM", - "TransactionType": "Payment" - } - } - ] + "method": "sign", + "params": [ + { + "offline": true, + "secret": "s████████████████████████████", + "tx_json": { + "Account": "rG5Ro9e3uGEZVCh3zu5gB9ydKUskCs221W", + "Sequence": 4, + "LastLedgerSequence": 10268600, + "Fee": "10000", + "Amount": { + "currency": "FOO", + "issuer": "rG5Ro9e3uGEZVCh3zu5gB9ydKUskCs221W", + "value": "10" + }, + "Destination": "rawz2WQ8i9FdTHp4KSNpBdyxgFqNpKe8fM", + "TransactionType": "Payment" + } + } + ] } ``` Notice the application specifies the account sequence `"Sequence": 4`, learned from an earlier call to `account_info`, to avoid `tefPAST_SEQ` errors. -Notice also the `LastLedgerSequence` based on the last validated ledger our application learned from `server_state`. The recommendation for backend applications is to use *(last validated ledger index + 4)*. Alternately, use a value of *(current ledger + 3)*. If `LastLedgerSequence` is miscalculated and less than the last validated ledger, the transaction fails with `tefMAX_LEDGER` error. +Notice also the `LastLedgerSequence` based on the last validated ledger our application learned from `server_state`. The recommendation for backend applications is to use _(last validated ledger index + 4)_. Alternately, use a value of _(current ledger + 3)_. If `LastLedgerSequence` is miscalculated and less than the last validated ledger, the transaction fails with `tefMAX_LEDGER` error. Response: ```json { - "result": { - "tx_json": { - "hash": "395C313F6F11F70FEBAF3785529A6D6DE3F44C7AF679515A7EAE22B30146DE57", - "TxnSignature": "304402202646962A21EC0516FCE62DC9280F79E7265778C571E9410D795E67BB72A2D8E402202FF4AF7B2E2160F5BCA93011CB548014626CAC7FCBEBDB81FE8193CEFF69C753", - "TransactionType": "Payment", - "SigningPubKey": "0267268EE0DDDEE6A862C9FF9DDAF898CF17060A673AF771B565AA2F4AE24E3FC5", - "Sequence": 4, - "LastLedgerSequence": 10268600, - "Flags": 2147483648, - "Fee": "10000", - "Destination": "rawz2WQ8i9FdTHp4KSNpBdyxgFqNpKe8fM", - "Amount": { - "value": "10", - "issuer": "rG5Ro9e3uGEZVCh3zu5gB9ydKUskCs221W", - "currency": "FOO" - }, - "Account": "rG5Ro9e3uGEZVCh3zu5gB9ydKUskCs221W" - }, - "tx_blob": "12000022800000002400000004201B009CAFB861D4C38D7EA4C68000000000000000000000000000464F4F0000000000AC5FA3BB28A09BD2EC1AE0EED2315060E83D796A68400000000000271073210267268EE0DDDEE6A862C9FF9DDAF898CF17060A673AF771B565AA2F4AE24E3FC57446304402202646962A21EC0516FCE62DC9280F79E7265778C571E9410D795E67BB72A2D8E402202FF4AF7B2E2160F5BCA93011CB548014626CAC7FCBEBDB81FE8193CEFF69C7538114AC5FA3BB28A09BD2EC1AE0EED2315060E83D796A831438BC6F9F5A6F6C4E474DB0D59892E90C2C7CED5C", - "status": "success" - } + "result": { + "tx_json": { + "hash": "395C313F6F11F70FEBAF3785529A6D6DE3F44C7AF679515A7EAE22B30146DE57", + "TxnSignature": "304402202646962A21EC0516FCE62DC9280F79E7265778C571E9410D795E67BB72A2D8E402202FF4AF7B2E2160F5BCA93011CB548014626CAC7FCBEBDB81FE8193CEFF69C753", + "TransactionType": "Payment", + "SigningPubKey": "0267268EE0DDDEE6A862C9FF9DDAF898CF17060A673AF771B565AA2F4AE24E3FC5", + "Sequence": 4, + "LastLedgerSequence": 10268600, + "Flags": 2147483648, + "Fee": "10000", + "Destination": "rawz2WQ8i9FdTHp4KSNpBdyxgFqNpKe8fM", + "Amount": { + "value": "10", + "issuer": "rG5Ro9e3uGEZVCh3zu5gB9ydKUskCs221W", + "currency": "FOO" + }, + "Account": "rG5Ro9e3uGEZVCh3zu5gB9ydKUskCs221W" + }, + "tx_blob": "12000022800000002400000004201B009CAFB861D4C38D7EA4C68000000000000000000000000000464F4F0000000000AC5FA3BB28A09BD2EC1AE0EED2315060E83D796A68400000000000271073210267268EE0DDDEE6A862C9FF9DDAF898CF17060A673AF771B565AA2F4AE24E3FC57446304402202646962A21EC0516FCE62DC9280F79E7265778C571E9410D795E67BB72A2D8E402202FF4AF7B2E2160F5BCA93011CB548014626CAC7FCBEBDB81FE8193CEFF69C7538114AC5FA3BB28A09BD2EC1AE0EED2315060E83D796A831438BC6F9F5A6F6C4E474DB0D59892E90C2C7CED5C", + "status": "success" + } } ``` -Applications should persist the transaction's hash before submitting. The result of the `sign` method includes the hash under `tx_json`. - - +Applications should persist the transaction's hash before submitting. The result of the `sign` method includes the hash under `tx_json`. #### Submit the transaction -`rippled` provides the [submit method][], allowing us to submit the signed transaction. This uses the `tx_blob` parameter that was returned by the `sign` method. +`rippled` provides the [submit method][], allowing us to submit the signed transaction. This uses the `tx_blob` parameter that was returned by the `sign` method. Request: ```json { - "method": "submit", - "params": [ - { - "tx_blob": "12000022800000002400000004201B009CAFB861D4C38D7EA4C68000000000000000000000000000464F4F0000000000AC5FA3BB28A09BD2EC1AE0EED2315060E83D796A68400000000000271073210267268EE0DDDEE6A862C9FF9DDAF898CF17060A673AF771B565AA2F4AE24E3FC57446304402202646962A21EC0516FCE62DC9280F79E7265778C571E9410D795E67BB72A2D8E402202FF4AF7B2E2160F5BCA93011CB548014626CAC7FCBEBDB81FE8193CEFF69C7538114AC5FA3BB28A09BD2EC1AE0EED2315060E83D796A831438BC6F9F5A6F6C4E474DB0D59892E90C2C7CED5C" - } - ] + "method": "submit", + "params": [ + { + "tx_blob": "12000022800000002400000004201B009CAFB861D4C38D7EA4C68000000000000000000000000000464F4F0000000000AC5FA3BB28A09BD2EC1AE0EED2315060E83D796A68400000000000271073210267268EE0DDDEE6A862C9FF9DDAF898CF17060A673AF771B565AA2F4AE24E3FC57446304402202646962A21EC0516FCE62DC9280F79E7265778C571E9410D795E67BB72A2D8E402202FF4AF7B2E2160F5BCA93011CB548014626CAC7FCBEBDB81FE8193CEFF69C7538114AC5FA3BB28A09BD2EC1AE0EED2315060E83D796A831438BC6F9F5A6F6C4E474DB0D59892E90C2C7CED5C" + } + ] } ``` @@ -391,35 +372,34 @@ Response: ```json { - "result": { - "tx_json": { - "hash": "395C313F6F11F70FEBAF3785529A6D6DE3F44C7AF679515A7EAE22B30146DE57", - "TxnSignature": "304402202646962A21EC0516FCE62DC9280F79E7265778C571E9410D795E67BB72A2D8E402202FF4AF7B2E2160F5BCA93011CB548014626CAC7FCBEBDB81FE8193CEFF69C753", - "TransactionType": "Payment", - "SigningPubKey": "0267268EE0DDDEE6A862C9FF9DDAF898CF17060A673AF771B565AA2F4AE24E3FC5", - "Sequence": 4, - "LastLedgerSequence": 10268600, - "Flags": 2147483648, - "Fee": "10000", - "Destination": "rawz2WQ8i9FdTHp4KSNpBdyxgFqNpKe8fM", - "Amount": { - "value": "10", - "issuer": "rG5Ro9e3uGEZVCh3zu5gB9ydKUskCs221W", - "currency": "FOO" - }, - "Account": "rG5Ro9e3uGEZVCh3zu5gB9ydKUskCs221W" - }, - "tx_blob": "12000022800000002400000004201B009CAFB861D4C38D7EA4C68000000000000000000000000000464F4F0000000000AC5FA3BB28A09BD2EC1AE0EED2315060E83D796A68400000000000271073210267268EE0DDDEE6A862C9FF9DDAF898CF17060A673AF771B565AA2F4AE24E3FC57446304402202646962A21EC0516FCE62DC9280F79E7265778C571E9410D795E67BB72A2D8E402202FF4AF7B2E2160F5BCA93011CB548014626CAC7FCBEBDB81FE8193CEFF69C7538114AC5FA3BB28A09BD2EC1AE0EED2315060E83D796A831438BC6F9F5A6F6C4E474DB0D59892E90C2C7CED5C", - "status": "success", - "engine_result_message": "The transaction was applied.", - "engine_result_code": 0, - "engine_result": "tesSUCCESS" - } + "result": { + "tx_json": { + "hash": "395C313F6F11F70FEBAF3785529A6D6DE3F44C7AF679515A7EAE22B30146DE57", + "TxnSignature": "304402202646962A21EC0516FCE62DC9280F79E7265778C571E9410D795E67BB72A2D8E402202FF4AF7B2E2160F5BCA93011CB548014626CAC7FCBEBDB81FE8193CEFF69C753", + "TransactionType": "Payment", + "SigningPubKey": "0267268EE0DDDEE6A862C9FF9DDAF898CF17060A673AF771B565AA2F4AE24E3FC5", + "Sequence": 4, + "LastLedgerSequence": 10268600, + "Flags": 2147483648, + "Fee": "10000", + "Destination": "rawz2WQ8i9FdTHp4KSNpBdyxgFqNpKe8fM", + "Amount": { + "value": "10", + "issuer": "rG5Ro9e3uGEZVCh3zu5gB9ydKUskCs221W", + "currency": "FOO" + }, + "Account": "rG5Ro9e3uGEZVCh3zu5gB9ydKUskCs221W" + }, + "tx_blob": "12000022800000002400000004201B009CAFB861D4C38D7EA4C68000000000000000000000000000464F4F0000000000AC5FA3BB28A09BD2EC1AE0EED2315060E83D796A68400000000000271073210267268EE0DDDEE6A862C9FF9DDAF898CF17060A673AF771B565AA2F4AE24E3FC57446304402202646962A21EC0516FCE62DC9280F79E7265778C571E9410D795E67BB72A2D8E402202FF4AF7B2E2160F5BCA93011CB548014626CAC7FCBEBDB81FE8193CEFF69C7538114AC5FA3BB28A09BD2EC1AE0EED2315060E83D796A831438BC6F9F5A6F6C4E474DB0D59892E90C2C7CED5C", + "status": "success", + "engine_result_message": "The transaction was applied.", + "engine_result_code": 0, + "engine_result": "tesSUCCESS" + } } ``` -This a **preliminary** result. Final results are only available from validated ledgers. The lack of a `"validated": true` field indicates that this is **not an immutable result**. - +This a **preliminary** result. Final results are only available from validated ledgers. The lack of a `"validated": true` field indicates that this is **not an immutable result**. #### Verify the Transaction @@ -429,13 +409,13 @@ Request: ```json { - "method": "tx", - "params": [ - { - "transaction": "395C313F6F11F70FEBAF3785529A6D6DE3F44C7AF679515A7EAE22B30146DE57", - "binary": false - } - ] + "method": "tx", + "params": [ + { + "transaction": "395C313F6F11F70FEBAF3785529A6D6DE3F44C7AF679515A7EAE22B30146DE57", + "binary": false + } + ] } ``` @@ -473,10 +453,9 @@ Response: } ``` -This example response shows `"validated": true`, indicating the transaction has been included in a validated ledger, so the result of the transaction is immutable. Further, the metadata includes `"TransactionResult": "tesSUCCESS"`, indicating the transaction was applied to the ledger. - -If the response does not include `"validated": true`, the result is provisional and subject to change. To retrieve a final result, applications must invoke the `tx` method again, allowing enough time for the network to validate more ledger versions. It may be necessary to wait for the ledger specified in `LastLedgerSequence` to be validated, although if the transaction is included in an earlier validated ledger the result becomes immutable at that time. +This example response shows `"validated": true`, indicating the transaction has been included in a validated ledger, so the result of the transaction is immutable. Further, the metadata includes `"TransactionResult": "tesSUCCESS"`, indicating the transaction was applied to the ledger. +If the response does not include `"validated": true`, the result is provisional and subject to change. To retrieve a final result, applications must invoke the `tx` method again, allowing enough time for the network to validate more ledger versions. It may be necessary to wait for the ledger specified in `LastLedgerSequence` to be validated, although if the transaction is included in an earlier validated ledger the result becomes immutable at that time. #### Verify Missing Transaction @@ -484,61 +463,60 @@ Applications must handle cases where a call to the [tx method][] returns a `txnN ```json { - "result": { - "status": "error", - "request": { - "transaction": "395C313F6F11F70FEBAF3785529A6D6DE3F44C7AF679515A7EAE22B30146DE56", - "command": "tx", - "binary": false - }, - "error_message": "Transaction not found.", - "error_code": 24, - "error": "txnNotFound" - } + "result": { + "status": "error", + "request": { + "transaction": "395C313F6F11F70FEBAF3785529A6D6DE3F44C7AF679515A7EAE22B30146DE56", + "command": "tx", + "binary": false + }, + "error_message": "Transaction not found.", + "error_code": 24, + "error": "txnNotFound" + } } ``` -The `txnNotFound` result code occurs in cases where the transaction is not included in any ledger. However, it could also occur when a `rippled` instance does not have a complete ledger history, or if the transaction has not yet propagated to the `rippled` instance. Applications should make further queries to determine how to react. +The `txnNotFound` result code occurs in cases where the transaction is not included in any ledger. However, it could also occur when a `rippled` instance does not have a complete ledger history, or if the transaction has not yet propagated to the `rippled` instance. Applications should make further queries to determine how to react. The [server_state method][] (used earlier to determine the last validated ledger) indicates how complete the ledger history is, under `result.state.complete_ledgers`. ```json { - "result": { - "status": "success", - "state": { - "validation_quorum": 3, - "validated_ledger": { - "seq": 10269447, - "reserve_inc": 5000000, - "reserve_base": 20000000, - "hash": "D05C7ECC66DD6F4FEA3A6394F209EB5D6824A76C16438F562A1749CCCE7EAFC2", - "close_time": 470802340, - "base_fee": 10 - }, - "server_state": "full", - "pubkey_node": "n9LJ5eCNjeUXQpNXHCcLv9PQ8LMFYy4W8R1BdVNcpjc1oDwe6XZF", - "peers": 84, - "load_factor": 256000, - "load_base": 256, - "last_close": { - "proposers": 5, - "converge_time": 2002 - }, - "io_latency_ms": 1, - "complete_ledgers": "10256331-10256382,10256412-10269447", - "build_version": "0.26.4-sp3-private" - } + "result": { + "status": "success", + "state": { + "validation_quorum": 3, + "validated_ledger": { + "seq": 10269447, + "reserve_inc": 5000000, + "reserve_base": 20000000, + "hash": "D05C7ECC66DD6F4FEA3A6394F209EB5D6824A76C16438F562A1749CCCE7EAFC2", + "close_time": 470802340, + "base_fee": 10 + }, + "server_state": "full", + "pubkey_node": "n9LJ5eCNjeUXQpNXHCcLv9PQ8LMFYy4W8R1BdVNcpjc1oDwe6XZF", + "peers": 84, + "load_factor": 256000, + "load_base": 256, + "last_close": { + "proposers": 5, + "converge_time": 2002 + }, + "io_latency_ms": 1, + "complete_ledgers": "10256331-10256382,10256412-10269447", + "build_version": "0.26.4-sp3-private" } + } } ``` -Our example transaction specified `LastLedgerSequence` 10268600, based on the last validated ledger at the time, plus four. To determine whether our missing transaction has permanently failed, our `rippled` server must have ledgers 10268597 through 10268600. If the server has those validated ledgers in its history, **and** `tx` returns `txnNotFound`, then the transaction has failed and cannot be included in any future ledger. In this case, application logic may dictate building and submitting a replacement transaction with the same account sequence and updated `LastLedgerSequence`. +Our example transaction specified `LastLedgerSequence` 10268600, based on the last validated ledger at the time, plus four. To determine whether our missing transaction has permanently failed, our `rippled` server must have ledgers 10268597 through 10268600. If the server has those validated ledgers in its history, **and** `tx` returns `txnNotFound`, then the transaction has failed and cannot be included in any future ledger. In this case, application logic may dictate building and submitting a replacement transaction with the same account sequence and updated `LastLedgerSequence`. -The server may report a last validated ledger index less than the specified `LastLedgerSequence`. If so, the `txnNotFound` indicates either (a) the submitted transaction has not been distributed to the network, or (b) the transaction has been distributed to the network but has not yet been processed. To handle the former case, applications may submit again the same signed transaction. Because the transaction has a unique account sequence number, it can be processed at most once. - -Finally the server may show one or more gaps in the transaction history. The `completed_ledgers` field shown in the response above indicates that ledgers 10256383 through 10256411 are missing from this rippled instance. Our example transaction can only appear in ledgers 10268597 - 10268600 (based on when it was submitted and `LastLedgerSequence`), so the gap shown here is not relevant. However, if the gap indicated a ledger in that range was missing, then an application would need to query another rippled server (or wait for this one to retrieve the missing ledgers) to determine that a `txnNotFound` result is immutable. +The server may report a last validated ledger index less than the specified `LastLedgerSequence`. If so, the `txnNotFound` indicates either (a) the submitted transaction has not been distributed to the network, or (b) the transaction has been distributed to the network but has not yet been processed. To handle the former case, applications may submit again the same signed transaction. Because the transaction has a unique account sequence number, it can be processed at most once. +Finally the server may show one or more gaps in the transaction history. The `completed_ledgers` field shown in the response above indicates that ledgers 10256383 through 10256411 are missing from this rippled instance. Our example transaction can only appear in ledgers 10268597 - 10268600 (based on when it was submitted and `LastLedgerSequence`), so the gap shown here is not relevant. However, if the gap indicated a ledger in that range was missing, then an application would need to query another rippled server (or wait for this one to retrieve the missing ledgers) to determine that a `txnNotFound` result is immutable. ## See Also diff --git a/docs/concepts/transactions/secure-signing.md b/docs/concepts/transactions/secure-signing.md index 4b258a4893..b11d52f6bb 100644 --- a/docs/concepts/transactions/secure-signing.md +++ b/docs/concepts/transactions/secure-signing.md @@ -2,11 +2,12 @@ html: secure-signing.html parent: transactions.html seo: - description: Set up an environment where you can submit transactions securely. + description: Set up an environment where you can submit transactions securely. labels: - Security - Development --- + # Secure Signing To submit [transactions](index.md) to the XRP Ledger, you need a way to digitally sign them without compromising the security of your [secret keys](../accounts/cryptographic-keys.md). (If others gain access to your secret keys, they have as much control over your accounts as you do, and can steal or destroy all your money.) This page summarizes how to set up such an environment so you can sign transactions securely. @@ -24,7 +25,7 @@ There are several configurations with varying levels of security that may be acc ## Insecure Configurations -[{% inline-svg file="/docs/img/insecure-signing-options.svg" /%}](/docs/img/insecure-signing-options.svg "Diagram of insecure configurations") +[{% inline-svg file="/docs/img/insecure-signing-options.svg" /%}](/docs/img/insecure-signing-options.svg 'Diagram of insecure configurations') Any configuration in which outside sources may gain access to your secret key is dangerous, and is likely to result in a malicious user stealing all your XRP (and anything else your XRP Ledger address has). Examples of such configurations include ones where you use the [sign method][] of someone else's `rippled` server over the internet, or you send your secret key in plain text over the internet to your own server. @@ -32,31 +33,29 @@ You should maintain the secrecy of your secret keys at all times, which includes - ## Run rippled Locally -[{% inline-svg file="/docs/img/secure-signing-local-rippled.svg" /%}](/docs/img/secure-signing-local-rippled.svg "Diagram of using a local rippled server for signing") +[{% inline-svg file="/docs/img/secure-signing-local-rippled.svg" /%}](/docs/img/secure-signing-local-rippled.svg 'Diagram of using a local rippled server for signing') -In this configuration, you run `rippled` on the machine that generates the transactions. Since the secret key never leaves your machine, no one without access to your machine can get access to the secret key. You should, of course, follow industry-standard practices for securing your machine. To use this configuration: +In this configuration, you run `rippled` on the machine that generates the transactions. Since the secret key never leaves your machine, no one without access to your machine can get access to the secret key. You should, of course, follow industry-standard practices for securing your machine. To use this configuration: 1. [Install `rippled`](../../infrastructure/installation/index.md). - Be sure that your local machine meets the minimum [system requirements for `rippled`](../../infrastructure/installation/system-requirements.md). + Be sure that your local machine meets the minimum [system requirements for `rippled`](../../infrastructure/installation/system-requirements.md). 2. When you need to sign transactions, connect to your server on `localhost` or `127.0.0.1`. Use the [sign method][] (for single signatures) or [sign_for method][] (for multi-signatures). - The [example config file](https://github.com/XRPLF/rippled/blob/8429dd67e60ba360da591bfa905b58a35638fda1/cfg/rippled-example.cfg#L1050-L1073) listens for connections on the local loopback network (127.0.0.1), with JSON-RPC (HTTP) on port 5005 and WebSocket (WS) on port 6006, and treats all connected clients as admin. + The [example config file](https://github.com/XRPLF/rippled/blob/8429dd67e60ba360da591bfa905b58a35638fda1/cfg/rippled-example.cfg#L1050-L1073) listens for connections on the local loopback network (127.0.0.1), with JSON-RPC (HTTP) on port 5005 and WebSocket (WS) on port 6006, and treats all connected clients as admin. - {% admonition type="warning" name="Caution" %}Using the [commandline API](../../references/http-websocket-apis/api-conventions/request-formatting.md#commandline-format) for signatures is less secure than [using the Websocket or JSON-RPC APIs](../../tutorials/http-websocket-apis/build-apps/get-started.md) through non-commandline clients. When using the commandline syntax, your secret key may be visible to other users in the system's process listing, and your shell history may save the key in plain text.{% /admonition %} + {% admonition type="warning" name="Caution" %}Using the [commandline API](../../references/http-websocket-apis/api-conventions/request-formatting.md#commandline-format) for signatures is less secure than [using the Websocket or JSON-RPC APIs](../../tutorials/http-websocket-apis/build-apps/get-started.md) through non-commandline clients. When using the commandline syntax, your secret key may be visible to other users in the system's process listing, and your shell history may save the key in plain text.{% /admonition %} 3. Maintain the server to keep it running, updated, and in sync with the network while you're using it. - {% admonition type="info" name="Note" %}You _can_ turn off your `rippled` server when you're not sending transactions, but it can take up to 15 minutes to sync with the network when you start it up again.{% /admonition %} - + {% admonition type="info" name="Note" %}You _can_ turn off your `rippled` server when you're not sending transactions, but it can take up to 15 minutes to sync with the network when you start it up again.{% /admonition %} ## Run rippled on the same LAN -[{% inline-svg file="/docs/img/secure-signing-lan-rippled.svg" /%}](/docs/img/secure-signing-lan-rippled.svg "Diagram of using a rippled server over LAN for signing") +[{% inline-svg file="/docs/img/secure-signing-lan-rippled.svg" /%}](/docs/img/secure-signing-lan-rippled.svg 'Diagram of using a rippled server over LAN for signing') In this configuration, you run a `rippled` server on a dedicated machine in the same private local area network (LAN) as the machine that generates the transactions to be signed. This configuration lets you assemble transaction instructions on one or more machines with very modest system specs, while using a single dedicated machine for running `rippled`. This may appeal to you if you run your own datacenter or server room. @@ -66,37 +65,33 @@ To use this configuration, set the `rippled` server to accept `wss` and `https` As always, follow industry-standard practices for securing your machines, such as using a firewall, anti-virus, appropriate user permissions, and so on. - ## Use a Client Library with Local Signing -[{% inline-svg file="/docs/img/secure-signing-client-library.svg" /%}](/docs/img/secure-signing-client-library.svg "Diagram of using a client library with local signing") +[{% inline-svg file="/docs/img/secure-signing-client-library.svg" /%}](/docs/img/secure-signing-client-library.svg 'Diagram of using a client library with local signing') This configuration uses a client library with built-in signing, in the programming language you use. For a list of libraries that can perform local signing, see [Client Libraries](../../references/client-libraries.md). - ### Security Best Practices for Signing Libraries To optimize the security of your signing library: -* Make sure the signing library you use has properly and securely implemented its signing algorithm(s). For example, if the library uses the default ECDSA algorithm, it should also use deterministic nonces as described in [RFC-6979](https://tools.ietf.org/html/rfc6979). +- Make sure the signing library you use has properly and securely implemented its signing algorithm(s). For example, if the library uses the default ECDSA algorithm, it should also use deterministic nonces as described in [RFC-6979](https://tools.ietf.org/html/rfc6979). - All of the published libraries listed above follow industry best practices. + All of the published libraries listed above follow industry best practices. +- Keep your client library updated to the latest stable version. -* Keep your client library updated to the latest stable version. - -* For enhanced security, you can load your secret keys from a management tool such as [Vault](https://www.vaultproject.io/). - +- For enhanced security, you can load your secret keys from a management tool such as [Vault](https://www.vaultproject.io/). ### Local Signing Example Here are examples of how to sign transaction instructions locally using the following languages and libraries: -* **JavaScript** / **TypeScript** - [`xrpl.js`](https://github.com/XRPLF/xrpl.js) +- **JavaScript** / **TypeScript** - [`xrpl.js`](https://github.com/XRPLF/xrpl.js) -* **Python** - [`xrpl-py`](https://github.com/XRPLF/xrpl-py) +- **Python** - [`xrpl-py`](https://github.com/XRPLF/xrpl-py) -* **Java** - [`xrpl4j`](https://github.com/XRPLF/xrpl4j) +- **Java** - [`xrpl4j`](https://github.com/XRPLF/xrpl4j) {% tabs %} @@ -114,40 +109,37 @@ Here are examples of how to sign transaction instructions locally using the foll {% /tabs %} - ## Use a Dedicated Signing Device -[{% inline-svg file="/docs/img/secure-signing-dedicated-hardware.svg" /%}](/docs/img/secure-signing-dedicated-hardware.svg "Diagram of using dedicated signing hardware") +[{% inline-svg file="/docs/img/secure-signing-dedicated-hardware.svg" /%}](/docs/img/secure-signing-dedicated-hardware.svg 'Diagram of using dedicated signing hardware') Some companies sell dedicated signing devices, such as the [Ledger Nano S](https://www.ledger.com/products/ledger-nano-s), which are capable of signing XRP Ledger transactions using a secret key that never leaves the device. Some devices may not support all types of transactions. Setting up this configuration depends on the specific device. You may need to run a "manager" application on your machine to interact with the signing device. See the manufacturer's instructions for how to set up and use such a device. - ## Use a Secure VPN with a Remote rippled Server -[{% inline-svg file="/docs/img/secure-signing-over-vpn.svg" /%}](/docs/img/secure-signing-over-vpn.svg "Diagram of connecting securely to a remote rippled over VPN") +[{% inline-svg file="/docs/img/secure-signing-over-vpn.svg" /%}](/docs/img/secure-signing-over-vpn.svg 'Diagram of connecting securely to a remote rippled over VPN') This configuration uses a `rippled` server hosted remotely, such as in a colocation facility or a distant datacenter, but connects to it securely using an encrypted VPN. To use this configuration, follow the steps for [running `rippled` on a private LAN](#run-rippled-on-the-same-lan), but use a VPN to connect to the LAN of the remote `rippled` server. Instructions for setting up the VPN are specific to your environment and are not described in this guide. - ## See Also - **Concepts:** - - [Cryptographic Keys](../accounts/cryptographic-keys.md) - - [Multi-Signing](../accounts/multi-signing.md) + - [Cryptographic Keys](../accounts/cryptographic-keys.md) + - [Multi-Signing](../accounts/multi-signing.md) - **Tutorials:** - - [Install rippled](../../infrastructure/installation/index.md) - - [Assign a Regular Key Pair](../../tutorials/how-tos/manage-account-settings/assign-a-regular-key-pair.md) - - [Reliable Transaction Submission](reliable-transaction-submission.md) - - [Enable Public Signing](../../infrastructure/configuration/enable-public-signing.md) + - [Install rippled](../../infrastructure/installation/index.md) + - [Assign a Regular Key Pair](../../tutorials/how-tos/manage-account-settings/assign-a-regular-key-pair.md) + - [Reliable Transaction Submission](reliable-transaction-submission.md) + - [Enable Public Signing](../../infrastructure/configuration/enable-public-signing.md) - **References:** - - [sign method][] - - [submit method][] - - [xrpl.js Reference](https://js.xrpl.org/) - - [`xrpl-py` Reference](https://xrpl-py.readthedocs.io/en/latest/index.html) - - [`xrpl4j` Reference](https://javadoc.io/doc/org.xrpl/) + - [sign method][] + - [submit method][] + - [xrpl.js Reference](https://js.xrpl.org/) + - [`xrpl-py` Reference](https://xrpl-py.readthedocs.io/en/latest/index.html) + - [`xrpl4j` Reference](https://javadoc.io/doc/org.xrpl/) {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/concepts/transactions/source-and-destination-tags.md b/docs/concepts/transactions/source-and-destination-tags.md index a13853b27c..92d5ccf5e6 100644 --- a/docs/concepts/transactions/source-and-destination-tags.md +++ b/docs/concepts/transactions/source-and-destination-tags.md @@ -2,12 +2,13 @@ html: source-and-destination-tags.html parent: transactions.html seo: - description: Use source and destination tags to indicate specific purposes for payments from and to multi-purpose addresses. + description: Use source and destination tags to indicate specific purposes for payments from and to multi-purpose addresses. labels: - Payments - Accounts - Security --- + # Source and Destination Tags _Source tags_ and _destination tags_ are a feature of XRP Ledger [payments](../payment-types/index.md) that can indicate specific purposes for payments from and to multi-purpose addresses. Source and destination tags do not have direct on-ledger functionality; source and destination tags merely provide information about how off-ledger systems should process a payment. In transactions, both source and destination tags are formatted as 32-bit unsigned integers. @@ -39,12 +40,10 @@ To prevent overlap while protecting privacy, a business can divide the total ran Assigning tags in numerical order provides less privacy to customers. Since all XRP Ledger transactions are public, assigning tags in this way can make it possible to guess which tags correspond to various users' addresses or to derive information about users' accounts based on the tags used. - ## Requiring Tags For an XRP Ledger address that may receive payments intended for several customer accounts, receiving a payment _without_ a destination tag can be a problem: it is not immediately obvious which customer to credit, which can require a manual intervention and a discussion with the sender to figure out who was the intended recipient. To reduce cases like this, you can [enable the `RequireDest` setting](../../tutorials/how-tos/manage-account-settings/require-destination-tags.md). That way, if a user forgets to include a destination tag in a payment, the XRP Ledger rejects their payment instead of giving you money you don't know what to do with. The user can then send the payment again, using the tag as they should have. - ## See Also - [Require Destination Tags](../../tutorials/how-tos/manage-account-settings/require-destination-tags.md) diff --git a/docs/concepts/transactions/transaction-cost.md b/docs/concepts/transactions/transaction-cost.md index 0700a320fe..6319218466 100644 --- a/docs/concepts/transactions/transaction-cost.md +++ b/docs/concepts/transactions/transaction-cost.md @@ -2,18 +2,18 @@ html: transaction-cost.html parent: transactions.html seo: - description: The transaction cost is a small amount of XRP destroyed to send a transaction, which protects the ledger from spam. Learn how the transaction cost applies. + description: The transaction cost is a small amount of XRP destroyed to send a transaction, which protects the ledger from spam. Learn how the transaction cost applies. labels: - Fees - Transaction Sending --- + # Transaction Cost To protect the XRP Ledger from being disrupted by spam and denial-of-service attacks, each transaction must destroy a small amount of [XRP](../../introduction/what-is-xrp.md). This _transaction cost_ is designed to increase along with the load on the network, making it very expensive to deliberately or inadvertently overload the network. Every transaction must [specify how much XRP to destroy](#specifying-the-transaction-cost) to pay the transaction cost. - ## Current Transaction Cost The current minimum transaction cost required by the network for a standard transaction is **0.00001 XRP** (10 drops). It sometimes increases due to higher than usual load. @@ -24,15 +24,14 @@ You can also [query `rippled` for the current transaction cost](#querying-the-tr Some transactions have different transaction costs: -| Transaction | Cost Before Load Scaling | -|-----------------------|--------------------------| -| [Reference Transaction](#reference-transaction-cost) (Most transactions) | 10 drops | -| [Key Reset Transaction](#key-reset-transaction) | 0 | -| [Multi-signed Transaction](../accounts/multi-signing.md) | 10 drops × (1 + Number of Signatures Provided) | +| Transaction | Cost Before Load Scaling | +| --------------------------------------------------------------------------------------------------------- | -------------------------------------------------- | +| [Reference Transaction](#reference-transaction-cost) (Most transactions) | 10 drops | +| [Key Reset Transaction](#key-reset-transaction) | 0 | +| [Multi-signed Transaction](../accounts/multi-signing.md) | 10 drops × (1 + Number of Signatures Provided) | | [EscrowFinish Transaction with Fulfillment](../../references/protocol/transactions/types/escrowfinish.md) | 10 drops × (33 + (Fulfillment size in bytes ÷ 16)) | -| [AccountDelete Transaction](../accounts/deleting-accounts.md) | 2,000,000 drops | -| [AMMCreate Transaction](../tokens/decentralized-exchange/automated-market-makers.md) | 2,000,000 drops | - +| [AccountDelete Transaction](../accounts/deleting-accounts.md) | 2,000,000 drops | +| [AMMCreate Transaction](../tokens/decentralized-exchange/automated-market-makers.md) | 2,000,000 drops | ## Beneficiaries of the Transaction Cost @@ -42,15 +41,14 @@ The transaction cost is not paid to any party: the XRP is irrevocably destroyed. There are two thresholds for the transaction cost: -* If the transaction cost does not meet a `rippled` server's [load-based transaction cost threshold](#local-load-cost), the server ignores the transaction completely. -* If the transaction cost does not meet a `rippled` server's [open ledger cost threshold](#open-ledger-cost), the server queues the transaction for a later ledger. +- If the transaction cost does not meet a `rippled` server's [load-based transaction cost threshold](#local-load-cost), the server ignores the transaction completely. +- If the transaction cost does not meet a `rippled` server's [open ledger cost threshold](#open-ledger-cost), the server queues the transaction for a later ledger. This divides transactions into roughly three categories: -* Transactions that specify a transaction cost so low that they get rejected by the load-based transaction cost. -* Transactions that specify a transaction cost high enough to be included in the current open ledger. -* Transactions in between, which get [queued for a later ledger version](#queued-transactions). - +- Transactions that specify a transaction cost so low that they get rejected by the load-based transaction cost. +- Transactions that specify a transaction cost high enough to be included in the current open ledger. +- Transactions in between, which get [queued for a later ledger version](#queued-transactions). ## Local Load Cost @@ -74,18 +72,18 @@ For more information on queued transactions, see [Transaction Queue](transaction ## Reference Transaction Cost -The "Reference Transaction" is the cheapest (non-free) transaction, in terms of the necessary [transaction cost](transaction-cost.md) before load scaling. Most transactions have the same cost as the reference transaction. Some transactions, such as [multi-signed transactions](../accounts/multi-signing.md), require a multiple of this cost instead. When the open ledger cost escalates, the requirement is proportional to the basic cost of the transaction. +The "Reference Transaction" is the cheapest (non-free) transaction, in terms of the necessary [transaction cost](transaction-cost.md) before load scaling. Most transactions have the same cost as the reference transaction. Some transactions, such as [multi-signed transactions](../accounts/multi-signing.md), require a multiple of this cost instead. When the open ledger cost escalates, the requirement is proportional to the basic cost of the transaction. ### Fee Levels _Fee levels_ represent the proportional difference between the minimum cost and the actual cost of a transaction. The [Open Ledger Cost](#open-ledger-cost) is measured in fee levels instead of absolute cost. See the following table for a comparison: -| Transaction | Minimum cost in drops | Minimum cost in Fee levels | Double cost in drops | Double cost in fee levels | -|-------------|-----------------------|----------------------------|----------------------|---------------------------| -| Reference transaction (most transactions) | 10 | 256 | 20 | 512 | -| [Multi-signed transaction](../accounts/multi-signing.md) with 4 signatures | 50 | 256 | 100 | 512 | -| [Key reset transaction](transaction-cost.md#key-reset-transaction) | 0 | (Effectively infinite) | N/A | (Effectively infinite) | -| [EscrowFinish transaction](../../references/protocol/transactions/types/escrowfinish.md) with 32-byte preimage. | 350 | 256 | 700 | 512 | +| Transaction | Minimum cost in drops | Minimum cost in Fee levels | Double cost in drops | Double cost in fee levels | +| --------------------------------------------------------------------------------------------------------------- | --------------------- | -------------------------- | -------------------- | ------------------------- | +| Reference transaction (most transactions) | 10 | 256 | 20 | 512 | +| [Multi-signed transaction](../accounts/multi-signing.md) with 4 signatures | 50 | 256 | 100 | 512 | +| [Key reset transaction](transaction-cost.md#key-reset-transaction) | 0 | (Effectively infinite) | N/A | (Effectively infinite) | +| [EscrowFinish transaction](../../references/protocol/transactions/types/escrowfinish.md) with 32-byte preimage. | 350 | 256 | 700 | 512 | {% admonition type="info" name="Note" %}The standard ledger base fee is typically 10 drops, occasionally increased due to high volume. Should the validators vote to increase or lower the base fee, costs based on the standard fee (for example, the EscrowFinish transaction with Fulfillment) are adjusted accordingly.{% /admonition %} @@ -101,15 +99,12 @@ The [server_info method][] reports the unscaled minimum XRP cost, as of the prev **Current Transaction Cost in XRP = `base_fee_xrp` × `load_factor`** - ### server_state The [server_state method][] returns a direct representation of `rippled`'s internal load calculations. In this case, the effective load rate is the ratio of the current `load_factor` to the `load_base`. The `validated_ledger.base_fee` parameter reports the minimum transaction cost in [drops of XRP](../../references/protocol/data-types/basic-data-types.md#specifying-currency-amounts). This design enables `rippled` to calculate the transaction cost using only integer math, while still allowing a reasonable amount of fine-tuning for server load. The actual calculation of the transaction cost is as follows: **Current Transaction Cost in Drops = (`base_fee` × `load_factor`) ÷ `load_base`** - - ## Specifying the Transaction Cost Every signed transaction must include the transaction cost in the [`Fee` field](../../references/protocol/transactions/common-fields.md). Like all fields of a signed transaction, this field cannot be changed without invalidating the signature. @@ -118,19 +113,17 @@ As a rule, the XRP Ledger executes transactions _exactly_ as they are signed. (T Before signing a transaction, we recommend [looking up the current load-based transaction cost](#querying-the-transaction-cost). If the transaction cost is high due to load scaling, you may want to wait for it to decrease. If you do not plan on submitting the transaction immediately, we recommend specifying a slightly higher transaction cost to account for future load-based fluctuations in the transaction cost. - ### Automatically Specifying the Transaction Cost The `Fee` field is one of the things that can be [auto-filled](../../references/protocol/transactions/common-fields.md#auto-fillable-fields) when creating a transaction. In this case, the auto-filling software provides a suitable `Fee` value based on the current load in the peer-to-peer network. However, there are several drawbacks and limitations to automatically filling in the transaction cost in this manner: - If the network's transaction cost goes up between auto-filling and submitting the transaction, the transaction may not be confirmed. - - To prevent a transaction from getting stuck in a state of being neither definitively confirmed or rejected, be sure to provide a `LastLedgerSequence` parameter so it eventually expires. Alternatively, you can try to [cancel a stuck transaction](finality-of-results/canceling-a-transaction.md) by reusing the same `Sequence` number. See [reliable transaction submission](reliable-transaction-submission.md) for best practices. + - To prevent a transaction from getting stuck in a state of being neither definitively confirmed or rejected, be sure to provide a `LastLedgerSequence` parameter so it eventually expires. Alternatively, you can try to [cancel a stuck transaction](finality-of-results/canceling-a-transaction.md) by reusing the same `Sequence` number. See [reliable transaction submission](reliable-transaction-submission.md) for best practices. - You have to be careful that the automatically provided value isn't too high. You don't want to burn a large fee to send a small transaction. - - If you are using `rippled`, you can also use the `fee_mult_max` and `fee_div_max` parameters of the [sign method][] to set a limit to the load scaling you are willing to sign. - - Some client libraries (like [xrpl.js](https://js.xrpl.org/) and [xrpl-py](https://xrpl-py.readthedocs.io/)) have configurable maximum `Fee` values, and raise an error instead of signing a transaction whose `Fee` value is higher than the maximum. + - If you are using `rippled`, you can also use the `fee_mult_max` and `fee_div_max` parameters of the [sign method][] to set a limit to the load scaling you are willing to sign. + - Some client libraries (like [xrpl.js](https://js.xrpl.org/) and [xrpl-py](https://xrpl-py.readthedocs.io/)) have configurable maximum `Fee` values, and raise an error instead of signing a transaction whose `Fee` value is higher than the maximum. - You cannot auto-fill from an offline machine nor when [multi-signing](../accounts/multi-signing.md). - ## Transaction Costs and Failed Transactions Since the purpose of the transaction cost is to protect the XRP Ledger peer-to-peer network from excessive load, it should apply to any transaction that gets distributed to the network, regardless of whether or not that transaction succeeds. However, to affect the shared global ledger, a transaction must be included in a validated ledger. Thus, `rippled` servers try to include failed transactions in ledgers, with [`tec` status codes](../../references/protocol/transactions/transaction-results/index.md) ("tec" stands for "Transaction Engine - Claimed fee only"). @@ -145,7 +138,6 @@ When a `rippled` server initially evaluates a transaction, it rejects the transa When a transaction has already been distributed to the network, but the account does not have enough XRP to pay the transaction cost, the result code `tecINSUFF_FEE` occurs instead. In this case, the account pays all the XRP it can, ending with 0 XRP. This can occur because `rippled` decides whether to relay the transaction to the network based on its in-progress ledger, but transactions may be dropped or reordered when building the consensus ledger. - ## Key Reset Transaction As a special case, an account can send a [SetRegularKey](../../references/protocol/transactions/types/setregularkey.md) transaction with a transaction cost of `0`, as long as the account's [`lsfPasswordSpent` flag](../../references/protocol/ledger-data/ledger-entry-types/accountroot.md) is disabled. This transaction must be signed by the account's _master key pair_. Sending this transaction enables the `lsfPasswordSpent` flag. @@ -156,24 +148,22 @@ The [`lsfPasswordSpent` flag](../../references/protocol/ledger-data/ledger-entry `rippled` prioritizes key reset transactions above other transactions even though the nominal transaction cost of a key reset transaction is zero. - ## Changing the Transaction Cost The XRP Ledger has a mechanism for changing the minimum transaction cost to account for long-term changes in the value of XRP. Any changes have to be approved by the consensus process. See [Fee Voting](../consensus-protocol/fee-voting.md) for more information. - ## See Also - **Concepts:** - - [Reserves](../accounts/reserves.md) - - [Fee Voting](../consensus-protocol/fee-voting.md) - - [Transaction Queue](transaction-queue.md) + - [Reserves](../accounts/reserves.md) + - [Fee Voting](../consensus-protocol/fee-voting.md) + - [Transaction Queue](transaction-queue.md) - **Tutorials:** - - [Reliable Transaction Submission](reliable-transaction-submission.md) + - [Reliable Transaction Submission](reliable-transaction-submission.md) - **References:** - - [fee method][] - - [server_info method][] - - [FeeSettings object](../../references/protocol/ledger-data/ledger-entry-types/feesettings.md) - - [SetFee pseudo-transaction][] + - [fee method][] + - [server_info method][] + - [FeeSettings object](../../references/protocol/ledger-data/ledger-entry-types/feesettings.md) + - [SetFee pseudo-transaction][] {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/concepts/transactions/transaction-queue.md b/docs/concepts/transactions/transaction-queue.md index 520a1300df..6555e52a7e 100644 --- a/docs/concepts/transactions/transaction-queue.md +++ b/docs/concepts/transactions/transaction-queue.md @@ -2,10 +2,11 @@ html: transaction-queue.html parent: transactions.html seo: - description: Transactions can be queued before being processed. + description: Transactions can be queued before being processed. labels: - Transaction Sending --- + # Transaction Queue The `rippled` server uses a transaction queue to help enforce the [open ledger cost](transaction-cost.md#open-ledger-cost). The open ledger cost sets a target number of transactions in a given ledger, and escalates the required transaction cost very quickly when the open ledger surpasses this size. Rather than discarding transactions that cannot pay the escalated transaction cost, `rippled` tries to put them in a transaction queue, which it uses to build the next ledger. @@ -14,7 +15,7 @@ The `rippled` server uses a transaction queue to help enforce the [open ledger c The transaction queue plays an important role in selecting the transactions that are included or excluded from a given ledger version in the consensus process. The following steps describe how the transaction queue relates to the [consensus process](../consensus-protocol/index.md). -[{% inline-svg file="/docs/img/consensus-with-queue.svg" /%}](/docs/img/consensus-with-queue.svg "Transaction queue and consensus diagram") +[{% inline-svg file="/docs/img/consensus-with-queue.svg" /%}](/docs/img/consensus-with-queue.svg 'Transaction queue and consensus diagram') 1. **Consensus Round 1** - Each validator proposes a set of transactions to be included in the next ledger version. Each also keeps a queue of candidate transactions not currently proposed. @@ -28,7 +29,7 @@ The transaction queue plays an important role in selecting the transactions that 6. **Adding to the Queue** - If the next proposed ledger is already full, incoming transactions are queued for a later ledger version. (Transactions that pay the [open ledger cost](transaction-cost.md#open-ledger-cost) can still get into the next proposed ledger even if it's "full", but the open ledger cost grows exponentially with each transaction added this way.) - After this step, the process repeats from the beginning. + After this step, the process repeats from the beginning. {% admonition type="info" name="Note" %}Technically, several of the steps described in the above process occur in parallel, because each server is always listening for new transactions, and starts preparing its next ledger proposal while the consensus process for the previous ledger version is ongoing.{% /admonition %} @@ -40,9 +41,9 @@ The `rippled` server uses a variety of heuristics to estimate which transactions - Transactions with an `AccountTxnID` field cannot be queued. - A single sending address can have at most 10 transactions queued at the same time. - To queue a transaction, the sender must have enough XRP for all of the following: - - Destroying the XRP [transaction cost](transaction-cost.md) as specified in the `Fee` fields of all the sender's queued transactions. The total amount among queued transactions cannot be more than the base account reserve (currently {% $env.PUBLIC_BASE_RESERVE %}). (Transactions paying significantly more than the minimum transaction cost of 0.00001 XRP typically skip the queue and go straight into the open ledger.) - - Sending the maximum sum of XRP that all the sender's queued transactions could send. - - Keeping enough XRP to meet the account's [reserve requirements](../accounts/reserves.md). + - Destroying the XRP [transaction cost](transaction-cost.md) as specified in the `Fee` fields of all the sender's queued transactions. The total amount among queued transactions cannot be more than the base account reserve (currently {% $env.PUBLIC_BASE_RESERVE %}). (Transactions paying significantly more than the minimum transaction cost of 0.00001 XRP typically skip the queue and go straight into the open ledger.) + - Sending the maximum sum of XRP that all the sender's queued transactions could send. + - Keeping enough XRP to meet the account's [reserve requirements](../accounts/reserves.md). - If a transaction affects how the sending address authorizes transactions, no other transactions from the same address can be queued behind it. - If a transaction includes a `LastLedgerSequence` field, the value of that field must be at least **the current ledger index + 2**. @@ -52,21 +53,20 @@ If a sending address has one or more transactions queued, that sender can "push" This feature helps you work around a particular situation. If you submitted one or more transactions with a low cost that were queued, you cannot send new transactions from the same address unless you do one of the following: -* Wait for the queued transactions to be included in a validated ledger, _or_ -* Wait for the queued transactions to be permanently invalidated if the transactions have the [`LastLedgerSequence` field](reliable-transaction-submission.md#lastledgersequence) set, _or_ -* [Cancel the queued transactions](finality-of-results/canceling-a-transaction.md) by submitting a new transaction with the same sequence number and a higher transaction cost. +- Wait for the queued transactions to be included in a validated ledger, _or_ +- Wait for the queued transactions to be permanently invalidated if the transactions have the [`LastLedgerSequence` field](reliable-transaction-submission.md#lastledgersequence) set, _or_ +- [Cancel the queued transactions](finality-of-results/canceling-a-transaction.md) by submitting a new transaction with the same sequence number and a higher transaction cost. If none of the above occur, transactions can stay in the queue for a theoretically unlimited amount of time, while other senders can "cut in line" by submitting transactions with higher transaction costs. Since signed transactions are immutable, you cannot increase the transaction cost of the queued transactions to increase their priority. If you do not want to invalidate the previously submitted transactions, fee averaging provides a workaround. If you increase the transaction cost of your new transaction to compensate, you can ensure the queued transactions are included in an open ledger right away. ## Order Within the Queue -Transactions that were previously proposed in the consensus process but did not achieve the threshold to be validated are the first ones to be added to the next open ledger. After that, transactions are pulled from the queue to be proposed in a normalized order so that, during periods of high traffic, different servers propose similar sets of transactions. Within the transaction queue, transactions are ranked so that transactions paying a higher transaction cost come first. This ranking is not by the transactions' _absolute_ XRP cost, but by costs _relative to the [minimum cost for that type of transaction](transaction-cost.md#special-transaction-costs)_. Transactions that pay the same transaction cost are ranked in ascending order by hash. Other factors may also affect the order of transactions in the queue; for example, transactions from the same sender are sorted by their `Sequence` numbers so that they are submitted in order. +Transactions that were previously proposed in the consensus process but did not achieve the threshold to be validated are the first ones to be added to the next open ledger. After that, transactions are pulled from the queue to be proposed in a normalized order so that, during periods of high traffic, different servers propose similar sets of transactions. Within the transaction queue, transactions are ranked so that transactions paying a higher transaction cost come first. This ranking is not by the transactions' _absolute_ XRP cost, but by costs _relative to the [minimum cost for that type of transaction](transaction-cost.md#special-transaction-costs)_. Transactions that pay the same transaction cost are ranked in ascending order by hash. Other factors may also affect the order of transactions in the queue; for example, transactions from the same sender are sorted by their `Sequence` numbers so that they are submitted in order. The precise order of transactions in the queue decides which transactions get added to the next in-progress ledger version in cases where there are more transactions in the queue than the expected size of the next ledger version. The order of the transactions **does not affect the order the transactions are executed within a validated ledger**. In each validated ledger version, the transaction set for that version executes in [canonical order](../consensus-protocol/consensus-structure.md#calculate-and-share-validations). {% admonition type="info" name="Note" %}When `rippled` queues a transaction, the provisional [transaction response code](../../references/protocol/transactions/transaction-results/index.md) is `terQUEUED`. This means that the transaction is likely to succeed in a future ledger version. As with all provisional response codes, the outcome of the transaction is not final until the transaction is either included in a validated ledger, or [rendered permanently invalid](finality-of-results/index.md).{% /admonition %} - ## See Also - [Transaction Cost](transaction-cost.md) for information on why the transaction cost exists and how the XRP Ledger enforces it. diff --git a/docs/concepts/xrpl-sidechains/cross-chain-bridges.md b/docs/concepts/xrpl-sidechains/cross-chain-bridges.md index e0c9162bf2..a7212e767c 100644 --- a/docs/concepts/xrpl-sidechains/cross-chain-bridges.md +++ b/docs/concepts/xrpl-sidechains/cross-chain-bridges.md @@ -1,11 +1,12 @@ --- seo: - description: Cross-chain bridges for the XRP Ledger enable value in the form of XRP and other tokens (IOUs) to move efficiently between blockchains. + description: Cross-chain bridges for the XRP Ledger enable value in the form of XRP and other tokens (IOUs) to move efficiently between blockchains. status: not_enabled labels: - - Blockchain - - Interoperability + - Blockchain + - Interoperability --- + # Cross-Chain Bridges Cross-chain bridges enable you to move XRP and tokens between the XRP Ledger and other blockchains. When referring to the blockchains connected by a bridge, one is the locking chain and the other the issuing chain. @@ -20,7 +21,6 @@ Both the locking and issuing chains operate as parallel networks with independen {% amendment-disclaimer name="XChainBridge" /%} - ## How Do Bridges Work? At a high-level, bridges enable cross-chain transactions through these steps: @@ -28,12 +28,12 @@ At a high-level, bridges enable cross-chain transactions through these steps: 1. Create a cross-chain claim ID on the issuing chain. A cross-chain claim ID represents one transfer of value between blockchains. 2. Submit a commit transaction on the locking chain, putting the assets in a trust. The transaction includes the cross-chain claim ID and reward for witness servers. - {% admonition type="info" name="Note" %}Witness servers monitor transactions on both chains. They provide attestations, or signed messages, to verify a transaction occurred. There are attestations for `XChainCommit` and `XChainAccountCreateCommit` transactions.{% /admonition %} + {% admonition type="info" name="Note" %}Witness servers monitor transactions on both chains. They provide attestations, or signed messages, to verify a transaction occurred. There are attestations for `XChainCommit` and `XChainAccountCreateCommit` transactions.{% /admonition %} 3. Witness servers provide attestations to the issuing chain, saying the assets were locked on the locking chain. 4. When there are enough signatures to reach quorum, the assets are released on the issuing chain to the destination account. - {% admonition type="info" name="Note" %}In some cases, such as deposit authorization being enabled, you'll need to submit a transaction claim for the transferred assets on the issuing chain.{% /admonition %} + {% admonition type="info" name="Note" %}In some cases, such as deposit authorization being enabled, you'll need to submit a transaction claim for the transferred assets on the issuing chain.{% /admonition %} 5. Rewards are distributed to the witness servers' accounts on the issuing chain. diff --git a/docs/concepts/xrpl-sidechains/index.md b/docs/concepts/xrpl-sidechains/index.md index a78865e107..46aeee269d 100644 --- a/docs/concepts/xrpl-sidechains/index.md +++ b/docs/concepts/xrpl-sidechains/index.md @@ -1,27 +1,27 @@ --- seo: - description: An XRPL sidechain is an independent ledger with its own consensus algorithm, transaction types, and rules. + description: An XRPL sidechain is an independent ledger with its own consensus algorithm, transaction types, and rules. labels: - - Blockchain - - Interoperability + - Blockchain + - Interoperability --- + # XRPL Sidechains A sidechain is an independent ledger with its own consensus algorithm, transaction types, rules, and nodes. It acts as its own blockchain, running parallel to the mainchain (XRP Ledger), enabling value to move between the two without compromising the speed, efficiency, and throughput of the mainchain. Sidechains can customize the XRP Ledger protocol to the needs of a specific use case or project and run it as its own blockchain. Some examples include: -* Adding a smart contract layer. See: [Xahau](https://xahau.network/) -* Adding Ethereum Virtual Machine (EVM) compatibility. See: [EVM Sidechain](https://opensource.ripple.com/docs/evm-sidechain/intro-to-evm-sidechain/). -* Building your own algorithmic stable coin with customised ledger types and transaction rules. -* Building permissioned or nearly permissionless, centralized or largely decentralized ledgers whose assets can be traded on the Mainnet [decentralized exchange](../tokens/decentralized-exchange/index.md). +- Adding a smart contract layer. See: [Xahau](https://xahau.network/) +- Adding Ethereum Virtual Machine (EVM) compatibility. See: [EVM Sidechain](https://opensource.ripple.com/docs/evm-sidechain/intro-to-evm-sidechain/). +- Building your own algorithmic stable coin with customised ledger types and transaction rules. +- Building permissioned or nearly permissionless, centralized or largely decentralized ledgers whose assets can be traded on the Mainnet [decentralized exchange](../tokens/decentralized-exchange/index.md). {% amendment-disclaimer name="XChainBridge" /%} - **Notes:** - - Sidechains use their own validators and require a separate UNL from the mainchain `rippled` UNL. - - Nodes on the mainchain and sidechain have no knowledge of each other. +- Sidechains use their own validators and require a separate UNL from the mainchain `rippled` UNL. +- Nodes on the mainchain and sidechain have no knowledge of each other. {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/concepts/xrpl-sidechains/witness-servers.md b/docs/concepts/xrpl-sidechains/witness-servers.md index 9539c8ef80..591100c124 100644 --- a/docs/concepts/xrpl-sidechains/witness-servers.md +++ b/docs/concepts/xrpl-sidechains/witness-servers.md @@ -1,20 +1,22 @@ --- seo: - description: A witness server is a light-weight server that witnesses and signs transactions between the XRP Ledger and another chain. + description: A witness server is a light-weight server that witnesses and signs transactions between the XRP Ledger and another chain. status: not_enabled labels: - - Blockchain - - Interoperability + - Blockchain + - Interoperability --- + # Witness Servers + [[Source]](https://github.com/seelabs/xbridge_witness "Source") A _witness server_ acts as a neutral witness for transactions between a locking chain and an issuing chain. It listens to the door accounts on both sides of a bridge and signs attestations that confirm a transaction occurred. They are essentially acting as an oracle to “prove” that value was locked or burned on a source account, which allows the recipient to then claim (via minting or unlocking) the equivalent funds on the destination account. -The bridge between the locking chain and the issuing chain includes the following information in its configuration: +The bridge between the locking chain and the issuing chain includes the following information in its configuration: -* Witness servers that monitor transactions on the bridge. You can choose one or more witness servers. -* Fee for witness servers for their service. +- Witness servers that monitor transactions on the bridge. You can choose one or more witness servers. +- Fee for witness servers for their service. Anyone can run a witness server. However, the burden is on the participants of the issuing chain to evaluate the reliability of witness servers. If you run a witness server, you must also run a `rippled` node and sync it to the chain the witness server needs access to. @@ -22,12 +24,10 @@ Anyone can run a witness server. However, the burden is on the participants of t {% amendment-disclaimer name="XChainBridge" /%} - ## Witness Server Configuration The witness server takes a JSON configuration file, specified using the `--conf` command-line argument. - ### Example Configuration JSON ```json @@ -83,67 +83,60 @@ The witness server takes a JSON configuration file, specified using the `--conf` } ``` - ### Configuration Fields -| Field Name | JSON Type | Required? | Description | -|------------------|----------------|-----------|-------------| -| `Admin` | Object | No | The `Username` and `Password` fields (as strings) for privileged requests to the witness server. **Note:** Both or none of the admin fields must be set. | -| [`IssuingChain`](#issuingchain-and-lockingchain-fields) | Object | Yes | The parameters for interacting with the issuing chain. | -| [`LockingChain`](#issuingchain-and-lockingchain-fields) | Object | Yes | The parameters for interacting with the locking chain. | -| `RPCEndpoint` | Object | Yes | The endpoint for RPC requests to the witness server. | -| `LogFile` | String | Yes | The location of the log file. | -| `LogLevel` | String | Yes | The level of logs to store in the log file. The options are `All`, `Trace`, `Debug`, `Info`, `Warning`, `Error`, `Fatal`, `Disabled`, and `None`. | -| `DBDir` | String | Yes | The location of the directory where the databases are stored. | -| `SigningKeySeed` | String | Yes | The seed that the witness server should use to sign its attestations. | -| `SigningKeyType` | String | Yes | The algorithm used to encode the `SigningKeySeed`. The options are `secp256k1` and `ed25519`. | -| [`XChainBridge`](#xchainbridge-fields) | XChainBridge | Yes | The bridge that the witness server is monitoring. | - +| Field Name | JSON Type | Required? | Description | +| ------------------------------------------------------- | ------------ | --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Admin` | Object | No | The `Username` and `Password` fields (as strings) for privileged requests to the witness server. **Note:** Both or none of the admin fields must be set. | +| [`IssuingChain`](#issuingchain-and-lockingchain-fields) | Object | Yes | The parameters for interacting with the issuing chain. | +| [`LockingChain`](#issuingchain-and-lockingchain-fields) | Object | Yes | The parameters for interacting with the locking chain. | +| `RPCEndpoint` | Object | Yes | The endpoint for RPC requests to the witness server. | +| `LogFile` | String | Yes | The location of the log file. | +| `LogLevel` | String | Yes | The level of logs to store in the log file. The options are `All`, `Trace`, `Debug`, `Info`, `Warning`, `Error`, `Fatal`, `Disabled`, and `None`. | +| `DBDir` | String | Yes | The location of the directory where the databases are stored. | +| `SigningKeySeed` | String | Yes | The seed that the witness server should use to sign its attestations. | +| `SigningKeyType` | String | Yes | The algorithm used to encode the `SigningKeySeed`. The options are `secp256k1` and `ed25519`. | +| [`XChainBridge`](#xchainbridge-fields) | XChainBridge | Yes | The bridge that the witness server is monitoring. | #### IssuingChain and LockingChain Fields -| Field Name | JSON Type | Required? | Description | -|-----------------|-----------|-----------|-------------| +| Field Name | JSON Type | Required? | Description | +| --------------- | --------- | --------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | | `Endpoint` | Object | Yes | The websocket endpoint of a `rippled` node synced with the chain. **Note:** The same person needs to control the `rippled` node and witness server. | -| `TxnSubmit` | Object | Yes | The parameters for transaction submission on the chain. | -| `RewardAccount` | String | Yes | The account that should receive the witness's share of the `SignatureReward` on the chain. | - +| `TxnSubmit` | Object | Yes | The parameters for transaction submission on the chain. | +| `RewardAccount` | String | Yes | The account that should receive the witness's share of the `SignatureReward` on the chain. | #### Endpoint Fields -| Field Name | JSON Type | Required? | Description | -|------------|-----------|-----------|-------------| +| Field Name | JSON Type | Required? | Description | +| ---------- | --------- | --------- | ------------------------------------------------------------------------------------ | | `Host` | String | Yes | The IP address of the `rippled` node. **Note:** This accepts an IPv4 address or URL. | -| `Port` | String | Yes | The port used for the websocket endpoint. | - +| `Port` | String | Yes | The port used for the websocket endpoint. | #### RPCEndpoint Fields -| Field Name | JSON Type | Required? | Description | -|------------|-----------|-----------|-------------| +| Field Name | JSON Type | Required? | Description | +| ---------- | --------- | --------- | ----------------------------------------------------------------------------------------------------- | | `Host` | String | Yes | The IP address of the witness server for RPC requests. **Note:** This accepts an IPv4 address or URL. | -| `Port` | String | Yes | The port used for the websocket endpoint. | - +| `Port` | String | Yes | The port used for the websocket endpoint. | #### TxnSubmit Fields -| Field Name | JSON Type | Required? | Description | -|---------------------|-----------|-----------|-------------| -| `ShouldSubmit` | Boolean | Yes | A boolean indicating whether or not the witness server should submit transactions on the locking chain. | -| `SigningKeySeed` | String | No | The seed that the witness server should use to sign its transactions on the locking chain. This is required if `ShouldSubmit` is `true`. | -| `SigningKeyType` | String | No | The algorithm used to encode the `SigningKeySeed`. The options are `secp256k1` and `ed25519`. This is required if `ShouldSubmit` is `true`. | +| Field Name | JSON Type | Required? | Description | +| ------------------- | --------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `ShouldSubmit` | Boolean | Yes | A boolean indicating whether or not the witness server should submit transactions on the locking chain. | +| `SigningKeySeed` | String | No | The seed that the witness server should use to sign its transactions on the locking chain. This is required if `ShouldSubmit` is `true`. | +| `SigningKeyType` | String | No | The algorithm used to encode the `SigningKeySeed`. The options are `secp256k1` and `ed25519`. This is required if `ShouldSubmit` is `true`. | | `SubmittingAccount` | String | No | The account from which the `XChainAddClaimAttestation` and `XChainAddAccountCreateAttestation` transactions should be sent. This is required if `ShouldSubmit` is `true`. | - #### XChainBridge Fields -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:--------------------|:----------|:------------------|:----------|:----------------| +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :------------------ | :-------- | :---------------- | :-------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `IssuingChainDoor` | String | Account | Yes | The door account on the issuing chain. For an XRP-XRP bridge, this must be the genesis account (the account that is created when the network is first started, which contains all of the XRP). | -| `IssuingChainIssue` | Issue | Issue | Yes | The asset that is minted and burned on the issuing chain. For an IOU-IOU bridge, the issuer of the asset must be the door account on the issuing chain, to avoid supply issues. | -| `LockingChainDoor` | String | Account | Yes | The door account on the locking chain. | -| `LockingChainIssue` | Issue | Issue | Yes | The asset that is locked and unlocked on the locking chain. | - +| `IssuingChainIssue` | Issue | Issue | Yes | The asset that is minted and burned on the issuing chain. For an IOU-IOU bridge, the issuer of the asset must be the door account on the issuing chain, to avoid supply issues. | +| `LockingChainDoor` | String | Account | Yes | The door account on the locking chain. | +| `LockingChainIssue` | Issue | Issue | Yes | The asset that is locked and unlocked on the locking chain. | ## Witness Server FAQs @@ -151,29 +144,26 @@ The witness server takes a JSON configuration file, specified using the `--conf` There are certain risks associated with operating a Witness Server for a Sidechain, including the following: -_Regulatory Considerations_: Operating a Witness Server carries some regulatory risk. A few risks are identified below, some of which pertain to regulatory regimes that only apply to projects that serve those located in the U.S. U.S. regimes are identified here because they are commonly considered some of the strictest regulatory regimes in the world. +_Regulatory Considerations_: Operating a Witness Server carries some regulatory risk. A few risks are identified below, some of which pertain to regulatory regimes that only apply to projects that serve those located in the U.S. U.S. regimes are identified here because they are commonly considered some of the strictest regulatory regimes in the world. -The regulatory regime in the U.S. concerning the operation of a “money transmitting business” requiring federal registration as a money service business (“MSB”) and state money transmitter licenses (“MTLs”) is unclear as it pertains to operating Witness Servers. The Witness Servers are intended to be operated by a series of decentralized entities and persons. Despite this intention, if a regulator determined that there was “centralized” control of the Witness Servers by a particular entity or coordinated group, it may deem such activity to be money transmission. The U.S. Treasury Department recently issued a report identifying a series of factors it would consider when determining whether a particular project is “decentralized.” See [2023 DeFi Illicit Finance Risk Assessment](https://home.treasury.gov/news/press-releases/jy1391). This recent regulatory guidance is important because it indicates that the U.S. Treasury recognizes that certain projects may be “decentralized” and if the operation of the Witness Servers is “decentralized” it may not be considered a “money transmitting business.” +The regulatory regime in the U.S. concerning the operation of a “money transmitting business” requiring federal registration as a money service business (“MSB”) and state money transmitter licenses (“MTLs”) is unclear as it pertains to operating Witness Servers. The Witness Servers are intended to be operated by a series of decentralized entities and persons. Despite this intention, if a regulator determined that there was “centralized” control of the Witness Servers by a particular entity or coordinated group, it may deem such activity to be money transmission. The U.S. Treasury Department recently issued a report identifying a series of factors it would consider when determining whether a particular project is “decentralized.” See [2023 DeFi Illicit Finance Risk Assessment](https://home.treasury.gov/news/press-releases/jy1391). This recent regulatory guidance is important because it indicates that the U.S. Treasury recognizes that certain projects may be “decentralized” and if the operation of the Witness Servers is “decentralized” it may not be considered a “money transmitting business.” -While U.S. crypto regulations have consistently remained among the most stringent and aggressively enforced, other jurisdictions also have regulation and laws relating to the transfer of “money” and other value. For example, in March of 2022, U.K. regulatory authorities published a series of documentary guidance regarding crypto and decentralized finance. See [Financial Stability in Focus: Cryptoassets and Decentralized Finance](https://www.bankofengland.co.uk/financial-stability-in-focus/2022/march-2022). More recently, in June of 2023, the E.U. formally adopted a regulatory framework which in part imposes codified rules and regulations pertaining to decentralized crypto platforms. See [Markets in Crypto-Assets Regulation](https://www.esma.europa.eu/esmas-activities/digital-finance-and-innovation/markets-crypto-assets-regulation-mica). For those considering operating a Witness Server, it is critical to stay informed and compliant with the specific requirements of each jurisdiction involved to effectively manage associated risks. +While U.S. crypto regulations have consistently remained among the most stringent and aggressively enforced, other jurisdictions also have regulation and laws relating to the transfer of “money” and other value. For example, in March of 2022, U.K. regulatory authorities published a series of documentary guidance regarding crypto and decentralized finance. See [Financial Stability in Focus: Cryptoassets and Decentralized Finance](https://www.bankofengland.co.uk/financial-stability-in-focus/2022/march-2022). More recently, in June of 2023, the E.U. formally adopted a regulatory framework which in part imposes codified rules and regulations pertaining to decentralized crypto platforms. See [Markets in Crypto-Assets Regulation](https://www.esma.europa.eu/esmas-activities/digital-finance-and-innovation/markets-crypto-assets-regulation-mica). For those considering operating a Witness Server, it is critical to stay informed and compliant with the specific requirements of each jurisdiction involved to effectively manage associated risks. -_Technology and Network Security_: Those intending to run a Witness Server should be familiar with the technical and security aspects of doing so. Before agreeing to run a Witness Server, one should fully understand the functionality, potential vulnerabilities, and necessary technological and security measures involved. - -_Civil Liability_: Operating a Witness Server, like participating in any blockchain project, carries an unspecified level of civil liability risk. There has been an influx of plaintiffs’ lawsuits in the U.S. and other jurisdictions, and it is difficult to evaluate what theories a particular plaintiffs’ attorney may implement in a civil lawsuit. Regardless of any real or perceived civil liability risk, it should be noted that even a frivolous lawsuit could take time and money to respond. +_Technology and Network Security_: Those intending to run a Witness Server should be familiar with the technical and security aspects of doing so. Before agreeing to run a Witness Server, one should fully understand the functionality, potential vulnerabilities, and necessary technological and security measures involved. +_Civil Liability_: Operating a Witness Server, like participating in any blockchain project, carries an unspecified level of civil liability risk. There has been an influx of plaintiffs’ lawsuits in the U.S. and other jurisdictions, and it is difficult to evaluate what theories a particular plaintiffs’ attorney may implement in a civil lawsuit. Regardless of any real or perceived civil liability risk, it should be noted that even a frivolous lawsuit could take time and money to respond. ### Should I seek independent advice before agreeing to operate a Witness Server? -Yes. Any party considering running a Witness Server should seek independent legal and tax advice from experienced professionals. Please note, that as the Witness Servers must mutually attest to confirm cross-chain transfers, they may be understood to operate as a common enterprise - as it is defined by US regulators. In a common enterprise, joint and several liability may apply, meaning that each Witness Server could be held individually responsible for all liability or damages incurred. Given the evolving regulatory landscape, it’s critical to consult with a legal professional who can help navigate the complex and changing global regulatory landscape associated with the expectations and obligations of running a Witness Server. As with any blockchain project, please do your own research. These FAQs are just general guidance and are not legal or tax advice. - +Yes. Any party considering running a Witness Server should seek independent legal and tax advice from experienced professionals. Please note, that as the Witness Servers must mutually attest to confirm cross-chain transfers, they may be understood to operate as a common enterprise - as it is defined by US regulators. In a common enterprise, joint and several liability may apply, meaning that each Witness Server could be held individually responsible for all liability or damages incurred. Given the evolving regulatory landscape, it’s critical to consult with a legal professional who can help navigate the complex and changing global regulatory landscape associated with the expectations and obligations of running a Witness Server. As with any blockchain project, please do your own research. These FAQs are just general guidance and are not legal or tax advice. ### Who should not run a Witness Server? -You should not run a Witness Server if you are not experienced (or do not have access to experienced support) in blockchain, MSB and MTL regulations, and other applicable regulations and laws. You should also not operate a Witness Server if you are not an experienced person or entity with technical and compliance expertise. Few individuals are qualified and experienced enough to operate Witness Servers on their own. You should also not operate a Witness Server if you have not sought and obtained independent legal and tax advice. - +You should not run a Witness Server if you are not experienced (or do not have access to experienced support) in blockchain, MSB and MTL regulations, and other applicable regulations and laws. You should also not operate a Witness Server if you are not an experienced person or entity with technical and compliance expertise. Few individuals are qualified and experienced enough to operate Witness Servers on their own. You should also not operate a Witness Server if you have not sought and obtained independent legal and tax advice. ### Are these FAQs comprehensive and conclusive advice? -No. These FAQs are intended to provide general guidance and do not constitute technical, financial, or legal advice. These FAQs should not be used as a substitute for professional advice tailored to one’s specific circumstances. The blockchain and digital asset landscape is complex and constantly changing, which necessitates staying updated and seeking expert advice. It is recommended that those engaging with a Sidechain regularly check official resources such as governmental and regulatory body websites. Nonetheless, consulting with legal professionals who specialize in blockchain, and cryptocurrency is the most reliable way to get accurate and personalized advice. +No. These FAQs are intended to provide general guidance and do not constitute technical, financial, or legal advice. These FAQs should not be used as a substitute for professional advice tailored to one’s specific circumstances. The blockchain and digital asset landscape is complex and constantly changing, which necessitates staying updated and seeking expert advice. It is recommended that those engaging with a Sidechain regularly check official resources such as governmental and regulatory body websites. Nonetheless, consulting with legal professionals who specialize in blockchain, and cryptocurrency is the most reliable way to get accurate and personalized advice. {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/img/_sources/README.md b/docs/img/_sources/README.md index 80f7a04f89..64610fa239 100644 --- a/docs/img/_sources/README.md +++ b/docs/img/_sources/README.md @@ -13,7 +13,6 @@ Some tips to using it correctly: - The [`_diagrams.scss` file](../../styles/_diagrams.scss) defines the remapped colorings for the diagrams. If you use a color that isn't remapped, and it looks bad, you need to edit this file and [re-build the CSS](../../styles/README.md). - The recoloring may not be capable of handling text on top of several different background colors, because it doesn't have a way of recognizing what text is on top of what else. Use with care. - This error happens if you try to include a file that isn't text-based (for example, if you try to `include_svg()` on a PNG file instead of SVG): ``` diff --git a/docs/img/ripplex10-check.js b/docs/img/ripplex10-check.js index b036cd44ab..8bd3d0c90f 100644 --- a/docs/img/ripplex10-check.js +++ b/docs/img/ripplex10-check.js @@ -9,32 +9,31 @@ async function sendCheck() { await client.connect() results += '\nConnected.' standbyResultField.value = results - + const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) const operational_wallet = xrpl.Wallet.fromSeed(operationalSeedField.value) var check_amount = standbyAmountField.value - - if (standbyCurrencyField.value != "XRP") { - check_amount = { - "currency": standbyCurrencyField.value, - "value": standbyAmountField.value, - "issuer": standby_wallet.address - } + + if (standbyCurrencyField.value != 'XRP') { + check_amount = { + currency: standbyCurrencyField.value, + value: standbyAmountField.value, + issuer: standby_wallet.address, + } } - + const send_check_tx = { - "TransactionType": "CheckCreate", - "Account": standby_wallet.address, - "SendMax": check_amount, - "Destination": standbyDestinationField.value + TransactionType: 'CheckCreate', + Account: standby_wallet.address, + SendMax: check_amount, + Destination: standbyDestinationField.value, } const check_prepared = await client.autofill(send_check_tx) const check_signed = standby_wallet.sign(check_prepared) - results += 'Sending ' + check_amount + ' ' + standbyCurrencyField + ' to ' + - standbyDestinationField.value + '...' + results += 'Sending ' + check_amount + ' ' + standbyCurrencyField + ' to ' + standbyDestinationField.value + '...' standbyResultField.value = results const check_result = await client.submitAndWait(check_signed.tx_blob) - if (check_result.result.meta.TransactionResult == "tesSUCCESS") { + if (check_result.result.meta.TransactionResult == 'tesSUCCESS') { results += 'Transaction succeeded: https://testnet.xrpl.org/transactions/${check_signed.hash}' standbyResultField.value = JSON.stringify(check_result.result, null, 2) } else { @@ -42,8 +41,8 @@ async function sendCheck() { standbyResultField.value = results throw 'Error sending transaction: ${check_result.result.meta.TransactionResult}' } - standbyBalanceField.value = (await client.getXrpBalance(standby_wallet.address)) - operationalBalanceField.value = (await client.getXrpBalance(operational_wallet.address)) + standbyBalanceField.value = await client.getXrpBalance(standby_wallet.address) + operationalBalanceField.value = await client.getXrpBalance(operational_wallet.address) client.disconnect() } // end of sendCheck() @@ -57,17 +56,17 @@ async function getChecks() { const client = new xrpl.Client(net) results = 'Connecting to ' + getNet() + '....' standbyResultField.value = results - await client.connect() + await client.connect() results += '\nConnected.' standbyResultField.value = results - results= "\nGetting standby account checks...\n" + results = '\nGetting standby account checks...\n' const check_objects = await client.request({ - "id": 5, - "command": "account_objects", - "account": standbyAccountField.value, - "ledger_index": "validated", - "type": "check" + id: 5, + command: 'account_objects', + account: standbyAccountField.value, + ledger_index: 'validated', + type: 'check', }) standbyResultField.value = JSON.stringify(check_objects.result, null, 2) client.disconnect() @@ -76,7 +75,7 @@ async function getChecks() { // ******************************************************* // ************* Standby Cash Check ********************** // ******************************************************* - + async function cashCheck() { let net = getNet() const client = new xrpl.Client(net) @@ -85,31 +84,31 @@ async function cashCheck() { await client.connect() results += '\nConnected.' standbyResultField.value = results - + const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) const operational_wallet = xrpl.Wallet.fromSeed(operationalSeedField.value) var check_amount = standbyAmountField.value - - if (standbyCurrencyField.value != "XRP") { - check_amount = { - "value": standbyAmountField.value, - "currency": standbyCurrencyField.value, - "issuer": standbyIssuerField.value - } + + if (standbyCurrencyField.value != 'XRP') { + check_amount = { + value: standbyAmountField.value, + currency: standbyCurrencyField.value, + issuer: standbyIssuerField.value, + } } const cash_check_tx = { - "TransactionType": "CheckCash", - "Account": standby_wallet.address, - "Amount": check_amount, - "CheckID": standbyCheckID.value + TransactionType: 'CheckCash', + Account: standby_wallet.address, + Amount: check_amount, + CheckID: standbyCheckID.value, } const cash_prepared = await client.autofill(cash_check_tx) const cash_signed = standby_wallet.sign(cash_prepared) results += ' Receiving ' + standbyAmountField.value + ' ' + standbyCurrencyField.value + '.\n' standbyResultField.value = results const check_result = await client.submitAndWait(cash_signed.tx_blob) - if (check_result.result.meta.TransactionResult == "tesSUCCESS") { + if (check_result.result.meta.TransactionResult == 'tesSUCCESS') { results += 'Transaction succeeded: https://testnet.xrpl.org/transactions/${cash_signed.hash}' standbyResultField.value = results } else { @@ -117,8 +116,8 @@ async function cashCheck() { standbyResultField.value = results throw 'Error sending transaction: ${check_result.result.meta.TransactionResult}' } - standbyBalanceField.value = (await client.getXrpBalance(standby_wallet.address)) - operationalBalanceField.value = (await client.getXrpBalance(operational_wallet.address)) + standbyBalanceField.value = await client.getXrpBalance(standby_wallet.address) + operationalBalanceField.value = await client.getXrpBalance(operational_wallet.address) client.disconnect() } // end of cashCheck() @@ -135,21 +134,21 @@ async function cancelCheck() { await client.connect() results += '\nConnected.' standbyResultField.value = results - + const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) const operational_wallet = xrpl.Wallet.fromSeed(operationalSeedField.value) - + const cancel_check_tx = { - "TransactionType": "CheckCancel", - "Account": standby_wallet.address, - "CheckID": standbyCheckID.value + TransactionType: 'CheckCancel', + Account: standby_wallet.address, + CheckID: standbyCheckID.value, } const cancel_prepared = await client.autofill(cancel_check_tx) const cancel_signed = standby_wallet.sign(cancel_prepared) results += ' Cancelling check.\n' standbyResultField.value = results const check_result = await client.submitAndWait(cancel_signed.tx_blob) - if (check_result.result.meta.TransactionResult == "tesSUCCESS") { + if (check_result.result.meta.TransactionResult == 'tesSUCCESS') { results += 'Transaction succeeded: https://testnet.xrpl.org/transactions/${cash_signed.hash}' standbyResultField.value = results } else { @@ -157,8 +156,8 @@ async function cancelCheck() { standbyResultField.value = results throw 'Error sending transaction: ${check_result.result.meta.TransactionResult}' } - standbyBalanceField.value = (await client.getXrpBalance(standby_wallet.address)) - operationalBalanceField.value = (await client.getXrpBalance(operational_wallet.address)) + standbyBalanceField.value = await client.getXrpBalance(standby_wallet.address) + operationalBalanceField.value = await client.getXrpBalance(operational_wallet.address) client.disconnect() } // end of cancelCheck() @@ -173,33 +172,32 @@ async function opSendCheck() { await client.connect() results += '\nConnected.' operationalResultField.value = results - + const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) const operational_wallet = xrpl.Wallet.fromSeed(operationalSeedField.value) const issue_quantity = operationalAmountField.value var check_amount = operationalAmountField.value - - if (operationalCurrencyField.value != "XRP") { - check_amount = { - "currency": operationalCurrencyField.value, - "value": operationalAmountField.value, - "issuer": operational_wallet.address - } - } + + if (operationalCurrencyField.value != 'XRP') { + check_amount = { + currency: operationalCurrencyField.value, + value: operationalAmountField.value, + issuer: operational_wallet.address, + } + } const send_check_tx = { - "TransactionType": "CheckCreate", - "Account": operational_wallet.address, - "SendMax": check_amount, - "Destination": operationalDestinationField.value + TransactionType: 'CheckCreate', + Account: operational_wallet.address, + SendMax: check_amount, + Destination: operationalDestinationField.value, } const check_prepared = await client.autofill(send_check_tx) const check_signed = operational_wallet.sign(check_prepared) - results += '\nSending check to ' + - operationalDestinationField.value + '...' + results += '\nSending check to ' + operationalDestinationField.value + '...' operationalResultField.value = results const check_result = await client.submitAndWait(check_signed.tx_blob) - if (check_result.result.meta.TransactionResult == "tesSUCCESS") { + if (check_result.result.meta.TransactionResult == 'tesSUCCESS') { results += 'Transaction succeeded: https://testnet.xrpl.org/transactions/${check_signed.hash}' operationalResultField.value = JSON.stringify(check_result.result, null, 2) } else { @@ -207,8 +205,8 @@ async function opSendCheck() { operationalResultField.value = results throw 'Error sending transaction: ${check_result.result.meta.TransactionResult}' } - standbyBalanceField.value = (await client.getXrpBalance(standby_wallet.address)) - operationalBalanceField.value = (await client.getXrpBalance(operational_wallet.address)) + standbyBalanceField.value = await client.getXrpBalance(standby_wallet.address) + operationalBalanceField.value = await client.getXrpBalance(operational_wallet.address) client.disconnect() } // end of opSendCheck() @@ -221,27 +219,26 @@ async function opGetChecks() { const client = new xrpl.Client(net) results = 'Connecting to ' + getNet() + '....' operationalResultField.value = results - await client.connect() + await client.connect() results += '\nConnected.' operationalResultField.value = results - results= "\nGetting standby account checks...\n" + results = '\nGetting standby account checks...\n' const check_objects = await client.request({ - "id": 5, - "command": "account_objects", - "account": operationalAccountField.value, - "ledger_index": "validated", - "type": "check" + id: 5, + command: 'account_objects', + account: operationalAccountField.value, + ledger_index: 'validated', + type: 'check', }) operationalResultField.value = JSON.stringify(check_objects.result, null, 2) client.disconnect() } // End of opGetChecks() - // ******************************************************* // ************* Operational Cash Check ****************** // ******************************************************* - + async function opCashCheck() { let net = getNet() const client = new xrpl.Client(net) @@ -250,31 +247,31 @@ async function opCashCheck() { await client.connect() results += '\nConnected.' operationalResultField.value = results - + const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) const operational_wallet = xrpl.Wallet.fromSeed(operationalSeedField.value) var check_amount = operationalAmountField.value - - if (operationalCurrencyField.value != "XRP") { - check_amount = { - "value": operationalAmountField.value, - "currency": operationalCurrencyField.value, - "issuer": operationalIssuerField.value - } + + if (operationalCurrencyField.value != 'XRP') { + check_amount = { + value: operationalAmountField.value, + currency: operationalCurrencyField.value, + issuer: operationalIssuerField.value, + } } const cash_check_tx = { - "TransactionType": "CheckCash", - "Account": operational_wallet.address, - "Amount": check_amount, - "CheckID": operationalCheckIDField.value + TransactionType: 'CheckCash', + Account: operational_wallet.address, + Amount: check_amount, + CheckID: operationalCheckIDField.value, } const cash_prepared = await client.autofill(cash_check_tx) const cash_signed = operational_wallet.sign(cash_prepared) results += ' Receiving ' + operationalAmountField.value + ' ' + operationalCurrencyField.value + '.\n' operationalResultField.value = results const check_result = await client.submitAndWait(cash_signed.tx_blob) - if (check_result.result.meta.TransactionResult == "tesSUCCESS") { + if (check_result.result.meta.TransactionResult == 'tesSUCCESS') { results += 'Transaction succeeded: https://testnet.xrpl.org/transactions/${cash_signed.hash}' operationalResultField.value = results } else { @@ -282,8 +279,8 @@ async function opCashCheck() { operationalResultField.value = results throw 'Error sending transaction: ${check_result.result.meta.TransactionResult}' } - standbyBalanceField.value = (await client.getXrpBalance(standby_wallet.address)) - operationalBalanceField.value = (await client.getXrpBalance(operational_wallet.address)) + standbyBalanceField.value = await client.getXrpBalance(standby_wallet.address) + operationalBalanceField.value = await client.getXrpBalance(operational_wallet.address) client.disconnect() } // end of opCashCheck() @@ -300,14 +297,14 @@ async function opCancelCheck() { await client.connect() results += '\nConnected.' operationalResultField.value = results - + const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) const operational_wallet = xrpl.Wallet.fromSeed(operationalSeedField.value) - + const cancel_check_tx = { - "TransactionType": "CheckCancel", - "Account": operational_wallet.address, - "CheckID": operationalCheckIDField.value + TransactionType: 'CheckCancel', + Account: operational_wallet.address, + CheckID: operationalCheckIDField.value, } const cancel_prepared = await client.autofill(cancel_check_tx) @@ -315,7 +312,7 @@ async function opCancelCheck() { results += ' Cancelling check.\n' operationalResultField.value = results const check_result = await client.submitAndWait(cancel_signed.tx_blob) - if (check_result.result.meta.TransactionResult == "tesSUCCESS") { + if (check_result.result.meta.TransactionResult == 'tesSUCCESS') { results += 'Transaction succeeded: https://testnet.xrpl.org/transactions/${cash_signed.hash}' operationalResultField.value = results } else { @@ -323,7 +320,7 @@ async function opCancelCheck() { operationalResultField.value = results throw 'Error sending transaction: ${check_result.result.meta.TransactionResult}' } - standbyBalanceField.value = (await client.getXrpBalance(standby_wallet.address)) - operationalBalanceField.value = (await client.getXrpBalance(operational_wallet.address)) + standbyBalanceField.value = await client.getXrpBalance(standby_wallet.address) + operationalBalanceField.value = await client.getXrpBalance(operational_wallet.address) client.disconnect() -} // end of cancelCheck() \ No newline at end of file +} // end of cancelCheck() diff --git a/docs/index.page.tsx b/docs/index.page.tsx index 7632e5e6d8..4ab345f0ca 100644 --- a/docs/index.page.tsx +++ b/docs/index.page.tsx @@ -1,14 +1,15 @@ -import * as React from 'react'; -import { useThemeHooks } from '@redocly/theme/core/hooks'; -import { NavList } from "shared/components/nav-list"; -import { Link } from "@redocly/theme/components/Link/Link"; +import * as React from 'react' +import { useThemeHooks } from '@redocly/theme/core/hooks' +import { NavList } from 'shared/components/nav-list' +import { Link } from '@redocly/theme/components/Link/Link' export const frontmatter = { seo: { title: 'XRP Ledger Documentation & Developer Resources', - description: "Explore XRP Ledger documentation and other blockchain developer resources needed to start building and integrating with the ledger.", - } -}; + description: + 'Explore XRP Ledger documentation and other blockchain developer resources needed to start building and integrating with the ledger.', + }, +} const recommendedPages = [ { @@ -26,8 +27,8 @@ const recommendedPages = [ { description: 'Transaction Types', link: '/docs/references/protocol/transactions/types/', - } -]; + }, +] const useCases = [ { @@ -87,7 +88,7 @@ const useCases = [ }, ], }, -]; +] const intermediateVideos = [ { src: require('../static/img/backgrounds/docs-advanced-payment-features@2x.png'), @@ -104,7 +105,7 @@ const intermediateVideos = [ title: 'Federated Sidechains', url: 'https://www.youtube.com/embed/NhH4LM8NxgY?rel=0&showinfo=0&autoplay=1', }, -]; +] const getStartedVideos = [ { src: require('../static/img/backgrounds/docs-intro-to-XRP-ledger@2x.png'), @@ -126,7 +127,7 @@ const getStartedVideos = [ title: 'Tokenization', url: 'https://www.youtube.com/embed/Oj4cWOiWf4A?rel=0&showinfo=0&autoplay=1', }, -]; +] const devTools = [ { @@ -142,39 +143,37 @@ const devTools = [ { title: 'XRP Ledger Explorer', link: 'https://livenet.xrpl.org', - description: - 'View validations of new ledger versions in real-time, chart the location of servers in the XRP Ledger.', + description: 'View validations of new ledger versions in real-time, chart the location of servers in the XRP Ledger.', }, { title: 'Transaction Sender', link: '/resources/dev-tools/tx-sender', - description: - 'Test how your code handles various XRP Ledger transactions by sending them over the Testnet to the address.', + description: 'Test how your code handles various XRP Ledger transactions by sending them over the Testnet to the address.', }, -]; +] function UseCasesCard(props: { useCase: { - id: string; - title: string; - imgClass: string; - subItems: { description: string; link: string }[]; - }; + id: string + title: string + imgClass: string + subItems: { description: string; link: string }[] + } }) { - const { useCase } = props; - const { useTranslate } = useThemeHooks(); - const { translate } = useTranslate(); + const { useCase } = props + const { useTranslate } = useThemeHooks() + const { translate } = useTranslate() return (
    {useCase.title}
    {translate(useCase.title)}
    - ); + ) } function FlatCard(props: { href: string; title: string; description: string; linkText: string; imgClass }) { - const { title, description, linkText, href, imgClass } = props; + const { title, description, linkText, href, imgClass } = props return ( {title} @@ -188,11 +187,11 @@ function FlatCard(props: { href: string; title: string; description: string; lin - ); + ) } function VideoCard(props: { url: string; title: string; src: string }) { - const { url, title, src } = props; + const { url, title, src } = props return ( - ); + ) } function DevToolCard(props: { link: string; title: string; description: string }) { - const { link, title, description } = props; + const { link, title, description } = props return (
    {title}

    {description}

    - ); + ) } function PrimaryButton(props: { href: string; text: string; isArrowUp: boolean }) { - const { href, text, isArrowUp } = props; + const { href, text, isArrowUp } = props return ( {text} - ); + ) } export default function Docs() { - const { useTranslate } = useThemeHooks(); - const { translate } = useTranslate(); + const { useTranslate } = useThemeHooks() + const { translate } = useTranslate() return (
    @@ -262,9 +261,7 @@ export default function Docs() { @@ -274,7 +271,7 @@ export default function Docs() {

    {translate('Use Cases')}

    - {useCases.map(useCase => ( + {useCases.map((useCase) => ( ))}
    @@ -294,7 +291,7 @@ export default function Docs() {
    - {getStartedVideos.map(video => ( + {getStartedVideos.map((video) => ( ))}
    @@ -336,12 +333,8 @@ export default function Docs() {
    - Go Logo -
    {translate("GoLang")}
    + Go Logo +
    {translate('GoLang')}
    @@ -354,7 +347,7 @@ export default function Docs() {

    {translate('Intermediate Learning Sources')}

    - {intermediateVideos.map(video => ( + {intermediateVideos.map((video) => ( ))}
    @@ -371,17 +364,12 @@ export default function Docs() {

    {translate( - 'Use these web-based tools to assist during all stages of development, from getting your first payment to testing your implementation for best practices.' + 'Use these web-based tools to assist during all stages of development, from getting your first payment to testing your implementation for best practices.', )}

    - {devTools.map(card => ( - + {devTools.map((card) => ( + ))}
    @@ -402,7 +390,7 @@ export default function Docs() {

    {translate('Get Free Test XRP')}

    {translate( - 'Connect to the XRP Ledger Testnet network to develop and test your apps built on the XRP Ledger, without risking real money or impacting production XRP Ledger users.' + 'Connect to the XRP Ledger Testnet network to develop and test your apps built on the XRP Ledger, without risking real money or impacting production XRP Ledger users.', )}

    @@ -422,5 +410,5 @@ export default function Docs() { */} - ); + ) } diff --git a/docs/infrastructure/commandline-usage.md b/docs/infrastructure/commandline-usage.md index ccf999e6fb..9f53857d0c 100644 --- a/docs/infrastructure/commandline-usage.md +++ b/docs/infrastructure/commandline-usage.md @@ -1,9 +1,10 @@ --- seo: - description: Commandline usage options for the rippled server. + description: Commandline usage options for the rippled server. labels: - Core Server --- + # Commandline Usage The `rippled` executable usually runs as a daemon that powers the XRP Ledger, although it can also run in other modes. This page describes all the options you can pass to `rippled` when running it from the command line. @@ -14,29 +15,27 @@ The `rippled` executable usually runs as a daemon that powers the XRP Ledger, al - **Stand-Alone Mode** - Use the `-a` or `--standalone` option. Like daemon mode, except it does not connect to other servers. You can use this mode to test transaction processing or other features. - **Client Mode** - Specify an API method name to connect to another `rippled` server as a JSON-RPC client, then exit. You can use this to look up server status and ledger data if the executable is already running in another process. - **Other Usage** - Each of the following commands causes the `rippled` executable to print some information, then exit: - - **Help** - Use `-h` or `--help` to print a usage statement. - - **Unit Tests** - Use `-u` or `--unittest` to run unit tests and print a summary of results. This can be helpful to confirm that you have compiled `rippled` successfully. - - **Version statement** - Use `--version` to have `rippled` print its version number, Git commit hash, and Git build branch. + - **Help** - Use `-h` or `--help` to print a usage statement. + - **Unit Tests** - Use `-u` or `--unittest` to run unit tests and print a summary of results. This can be helpful to confirm that you have compiled `rippled` successfully. + - **Version statement** - Use `--version` to have `rippled` print its version number, Git commit hash, and Git build branch. ## Generic Options These options apply to most modes: -| Option | Description | -|:----------------|:-----------------------------------------------------------| +| Option | Description | +| :-------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `--conf {FILE}` | Use `{FILE}` as the config file instead of looking for config files in the default locations. If not specified, `rippled` first checks the local working directory for a `rippled.cfg` file. On Linux, if that file is not found, `rippled` next checks for `$XDG_CONFIG_HOME/ripple/ripple.cfg`. (Typically, `$XDG_CONFIG_HOME` maps to `$HOME/.config`.) | ### Verbosity Options The following generic options affect the amount of information written to standard output and log files: -| Option | Short Version | Description | -|:------------|:--------------|:-----------------------------------------------| -| `--debug` | | **DEPRECATED** Enables trace-level debugging (alias for `--verbose`). Use the [log_level method][] instead. | +| Option | Short Version | Description | +| :---------- | :------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------- | +| `--debug` | | **DEPRECATED** Enables trace-level debugging (alias for `--verbose`). Use the [log_level method][] instead. | | `--silent` | | Don't write logs to standard out and standard error during startup. Recommended when starting `rippled` as a systemd unit to reduce redundant logging. | -| `--verbose` | `-v` | **DEPRECATED** Enables trace-level debugging. Use the [log_level method][] instead. | - - +| `--verbose` | `-v` | **DEPRECATED** Enables trace-level debugging. Use the [log_level method][] instead. | ## Daemon Mode Options @@ -46,12 +45,12 @@ rippled [OPTIONS] Daemon mode is the default mode of operation for `rippled`. In addition to the [Generic Options](#generic-options), you can provide any of the following: -| Option | Description | -|:--------------------|:-------------------------------------------------------| -| `--fg` | Run the daemon as a single process in the foreground. Otherwise, `rippled` forks a second process for the daemon while the first process runs as a monitor. | -| `--import` | Before fully starting, import ledger data from another `rippled` server's ledger store. Requires a valid `[import_db]` stanza in the config file. | -| `--newnodeid` | Generate a random node identity for the server. | -| `--nodeid {VALUE}` | Specify a node identity. `{VALUE}` can also be a parameter associated with the container or hardware running the server, such as `$HOSTNAME`. | +| Option | Description | +| :------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `--fg` | Run the daemon as a single process in the foreground. Otherwise, `rippled` forks a second process for the daemon while the first process runs as a monitor. | +| `--import` | Before fully starting, import ledger data from another `rippled` server's ledger store. Requires a valid `[import_db]` stanza in the config file. | +| `--newnodeid` | Generate a random node identity for the server. | +| `--nodeid {VALUE}` | Specify a node identity. `{VALUE}` can also be a parameter associated with the container or hardware running the server, such as `$HOSTNAME`. | | `--quorum {QUORUM}` | This option is intended for starting [test networks](../concepts/networks-and-servers/parallel-networks.md). Override the minimum quorum for validation by requiring an agreement of `{QUORUM}` trusted validators. By default, the quorum for validation is automatically set to a safe number of trusted validators based on how many there are. If some validators are not online, this option can allow progress with a lower than normal quorum. {% admonition type="danger" name="Warning" %}If you set the quorum manually, it may be too low to prevent your server from diverging from the rest of the network. Only use this option if you have a deep understanding of consensus and have a need to use a non-standard configuration.{% /admonition %} | The following options have been removed: `--validateShards` {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.7.0" %}Removed in: rippled 1.7.0{% /badge %} and `--nodetoshard` {% badge href="https://github.com/XRPLF/rippled/releases/tag/2.3.0" %}Removed in: rippled 2.3.0{% /badge %}. @@ -62,21 +61,22 @@ The following options have been removed: `--validateShards` {% badge href="https rippled --standalone [OPTIONS] rippled -a [OPTIONS] ``` + Run in [stand-alone mode](../concepts/networks-and-servers/rippled-server-modes.md). In this mode, `rippled` does not connect to the network or perform consensus. (Otherwise, `rippled` runs in daemon mode.) ## Initial Ledger Options The following options determine which ledger to load first when starting up. These options are intended for debugging and for starting networks. These options work with both stand-alone mode and network mode. By default, the server loads its initial ledger using a combination of saved local data and data downloaded from the peer-to-peer network based on what ledger has been most recently validated by the network. -| Option | Description | -|:----------------------|:-----------------------------------------------------| -| `--ledger {LEDGER}` | Load the ledger version identified by `{LEDGER}` (either a ledger hash or a ledger index) as the initial ledger. The specified ledger version must be in the server's ledger store. | -| `--ledgerfile {FILE}` | Load the ledger version from the specified `{FILE}`, which must contain a complete ledger in JSON format. For an example of such a file, see the provided {% repo-link path="_api-examples/rippled-cli/ledger-file.json" %}`ledger-file.json`{% /repo-link %}. | -| `--load` | Use only the ledger store on disk when loading the initial ledger. | -| `--net` | Use only data from the network when loading the initial ledger. | -| `--replay` | Use with `--ledger` to replay a specific ledger. Your server must have the ledger in question and its direct ancestor already in the ledger store. Using the previous ledger as a base, the server processes all the transactions in the specified ledger, resulting in a re-creation of the specified ledger. With a debugger, you can add breakpoints to analyze specific transaction processing logic. | +| Option | Description | +| :-------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `--ledger {LEDGER}` | Load the ledger version identified by `{LEDGER}` (either a ledger hash or a ledger index) as the initial ledger. The specified ledger version must be in the server's ledger store. | +| `--ledgerfile {FILE}` | Load the ledger version from the specified `{FILE}`, which must contain a complete ledger in JSON format. For an example of such a file, see the provided {% repo-link path="_api-examples/rippled-cli/ledger-file.json" %}`ledger-file.json`{% /repo-link %}. | +| `--load` | Use only the ledger store on disk when loading the initial ledger. | +| `--net` | Use only data from the network when loading the initial ledger. | +| `--replay` | Use with `--ledger` to replay a specific ledger. Your server must have the ledger in question and its direct ancestor already in the ledger store. Using the previous ledger as a base, the server processes all the transactions in the specified ledger, resulting in a re-creation of the specified ledger. With a debugger, you can add breakpoints to analyze specific transaction processing logic. | | `--start` | Start with a new genesis ledger that has known amendments enabled, based on their default votes. This makes the functionality of those amendments available right away, instead of needing to wait two weeks for the [Amendment Process](../concepts/networks-and-servers/amendments.md). See also: [Start a New Genesis Ledger in Stand-Alone Mode](testing-and-auditing/start-a-new-genesis-ledger-in-stand-alone-mode.md). | -| `--valid` | Consider the initial ledger a valid network ledger even before fully syncing with the network. This can be used for starting networks or rolling back an entire network to a known previous state, as long as 80% of that network's validators load the same ledger at around the same time. | +| `--valid` | Consider the initial ledger a valid network ledger even before fully syncing with the network. This can be used for starting networks or rolling back an entire network to a known previous state, as long as 80% of that network's validators load the same ledger at around the same time. | ## Client Mode Options @@ -90,10 +90,10 @@ To run in client mode, provide the [commandline syntax](../references/http-webso Besides the individual commands, client mode accepts the [Generic Options](#generic-options) and the following options: -| Option | Description | -|:------------------------|:---------------------------------------------------| -| `--rpc` | Explicitly specify that the server should run in client mode. Not required. | -| `--rpc_ip {IP_ADDRESS}` | Connect to the `rippled` server at the specified IP Address, optionally including a port number. | +| Option | Description | +| :---------------------- | :---------------------------------------------------------------------------------------------------------------------------------------- | +| `--rpc` | Explicitly specify that the server should run in client mode. Not required. | +| `--rpc_ip {IP_ADDRESS}` | Connect to the `rippled` server at the specified IP Address, optionally including a port number. | | `--rpc_port {PORT}` | **DEPRECATED** Connect to the `rippled` server on the specified port. Specify the port alongside the IP address using `--rpc_ip` instead. | {% admonition type="success" name="Tip" %}Some arguments accept negative numbers as values. To ensure that arguments to API commands are not interpreted as options instead, pass the `--` argument before the command name.{% /admonition %} @@ -104,7 +104,6 @@ Example usage (get account transaction history from the earliest available to la rippled -- account_tx r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 -1 -1 ``` - ## Unit Tests ```bash @@ -122,13 +121,12 @@ If unit testing reports a failure, that generally indicates one of the following While running unit tests, you can specify the [Generic Options](#generic-options) and any of the following options: -| Option | Short Version | Description | -|:-----------------------------------|:--------------|:------------------------| -| `--unittest-ipv6` | | Use [IPv6](https://en.wikipedia.org/wiki/IPv6) to connect to the local server when running unit tests. If not provided, unit tests use IPv4 instead. | +| Option | Short Version | Description | +| :--------------------------------- | :------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `--unittest-ipv6` | | Use [IPv6](https://en.wikipedia.org/wiki/IPv6) to connect to the local server when running unit tests. If not provided, unit tests use IPv4 instead. | | `--unittest-jobs {NUMBER_OF_JOBS}` | | Use the specified number of processes to run unit tests. This can finish running tests faster on multi-core systems. The `{NUMBER_OF_JOBS}` should be a positive integer indicating the number of processes to use. | -| `--unittest-log` | | Allow unit tests to write to logs even if `--quiet` is specified. (No effect otherwise.) | -| `--quiet` | `-q` | Print fewer diagnostic messages when running unit tests. | - +| `--unittest-log` | | Allow unit tests to write to logs even if `--quiet` is specified. (No effect otherwise.) | +| `--quiet` | `-q` | Print fewer diagnostic messages when running unit tests. | ### Specific Unit Tests @@ -164,8 +162,8 @@ Longest suite times: Certain manual unit tests accept an argument. You can provide the argument with the following option: -| Option | Description | -|:------------------------|:---------------------------------------------------| -| `--unittest-arg {ARG}` | Provide the argument `{ARG}` to the unit test(s) currently being run. Each unit test that accepts arguments defines its own argument format. | +| Option | Description | +| :--------------------- | :------------------------------------------------------------------------------------------------------------------------------------------- | +| `--unittest-arg {ARG}` | Provide the argument `{ARG}` to the unit test(s) currently being run. Each unit test that accepts arguments defines its own argument format. | {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/infrastructure/configuration/configure-amendment-voting.md b/docs/infrastructure/configuration/configure-amendment-voting.md index d257b75421..6327eadd86 100644 --- a/docs/infrastructure/configuration/configure-amendment-voting.md +++ b/docs/infrastructure/configuration/configure-amendment-voting.md @@ -2,11 +2,12 @@ html: configure-amendment-voting.html parent: configure-rippled.html seo: - description: Set your server's votes on protocol amendments. + description: Set your server's votes on protocol amendments. labels: - Core Server - Blockchain --- + # Configure Amendment Voting Servers configured as validators can vote on [amendments](../../concepts/networks-and-servers/amendments.md) to the XRP Ledger protocol using the [feature method][]. (This method requires [admin access](../../tutorials/http-websocket-apis/build-apps/get-started.md#admin-access).) @@ -16,6 +17,7 @@ For example, to vote against the "SHAMapV2" amendment, run the following command {% tabs %} {% tab label="WebSocket" %} + ```json { "id": "any_id_here", @@ -24,26 +26,31 @@ For example, to vote against the "SHAMapV2" amendment, run the following command "vetoed": true } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "feature", - "params": [ - { - "feature": "SHAMapV2", - "vetoed": true - } - ] + "method": "feature", + "params": [ + { + "feature": "SHAMapV2", + "vetoed": true + } + ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh rippled feature SHAMapV2 reject ``` + {% /tab %} {% /tabs %} @@ -66,7 +73,7 @@ Be sure to restart your server for changes to take effect. ## See Also - [Amendments](../../concepts/networks-and-servers/amendments.md) - - [Known Amendments](/resources/known-amendments.md) + - [Known Amendments](/resources/known-amendments.md) - [feature method][] {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/infrastructure/configuration/configure-grpc.md b/docs/infrastructure/configuration/configure-grpc.md index 7b27f6491a..86156dd9bb 100644 --- a/docs/infrastructure/configuration/configure-grpc.md +++ b/docs/infrastructure/configuration/configure-grpc.md @@ -1,9 +1,10 @@ --- seo: - description: Enable and configure the gRPC API. + description: Enable and configure the gRPC API. labels: - Core Server --- + # Configure gRPC The `rippled` server has a limited [gRPC API](https://grpc.io/) it can provide. Clio servers use this API to retrieve data about the latest validated ledgers and transactions. You can enable the gRPC API on your server with a new configuration stanza. @@ -24,33 +25,33 @@ To enable gRPC on your server, complete the following steps: 1. Ensure the `[port_grpc]` stanza is in your `rippled` config file. - ``` - [port_grpc] - port = 50051 - ip = 127.0.0.1 - ``` + ``` + [port_grpc] + port = 50051 + ip = 127.0.0.1 + ``` - - `port` defines the port the server listens on for gRPC connections from client applications. The recommended port is `50051`. - - `ip` defines which interfaces the server listens on. `127.0.0.1` limits connections to the local loopback network (same machine) and is enabled by default. Changing the value to `0.0.0.0` listens on all available network interfaces. + - `port` defines the port the server listens on for gRPC connections from client applications. The recommended port is `50051`. + - `ip` defines which interfaces the server listens on. `127.0.0.1` limits connections to the local loopback network (same machine) and is enabled by default. Changing the value to `0.0.0.0` listens on all available network interfaces. - {% partial file="/docs/_snippets/conf-file-location.md" /%} + {% partial file="/docs/_snippets/conf-file-location.md" /%} 2. Start (or restart) the `rippled` service. - ``` - sudo systemctl restart rippled - ``` + ``` + sudo systemctl restart rippled + ``` ## See Also - **Concepts:** - - [XRP Ledger Overview](/about/) - - [`rippled` Server Modes](../../concepts/networks-and-servers/rippled-server-modes.md) + - [XRP Ledger Overview](/about/) + - [`rippled` Server Modes](../../concepts/networks-and-servers/rippled-server-modes.md) - **Tutorials:** - - [Get Started Using HTTP / WebSocket APIs](../../tutorials/http-websocket-apis/build-apps/get-started.md) - - [Reliable Transaction Submission](../../concepts/transactions/reliable-transaction-submission.md) - - [Manage the rippled Server](../installation/install-rippled-on-ubuntu.md) + - [Get Started Using HTTP / WebSocket APIs](../../tutorials/http-websocket-apis/build-apps/get-started.md) + - [Reliable Transaction Submission](../../concepts/transactions/reliable-transaction-submission.md) + - [Manage the rippled Server](../installation/install-rippled-on-ubuntu.md) - **References:** - - [HTTP / WebSocket API Reference](../../references/http-websocket-apis/index.md) + - [HTTP / WebSocket API Reference](../../references/http-websocket-apis/index.md) {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/infrastructure/configuration/configure-statsd.md b/docs/infrastructure/configuration/configure-statsd.md index f1ab4b5c0b..f5bb579bb9 100644 --- a/docs/infrastructure/configuration/configure-statsd.md +++ b/docs/infrastructure/configuration/configure-statsd.md @@ -2,10 +2,11 @@ html: configure-statsd.html parent: configure-rippled.html seo: - description: Monitor your rippled server with StatsD metrics. + description: Monitor your rippled server with StatsD metrics. labels: - Core Server --- + # Configure StatsD `rippled` can export health and behavioral information about itself in [StatsD](https://github.com/statsd/statsd) format. Those metrics can be consumed and visualized through [`rippledmon`](https://github.com/ripple/rippledmon) or any other collector that accepts StatsD formatted metrics. @@ -16,62 +17,60 @@ To enable StatsD on your `rippled` server, perform the following steps: 1. Set up a `rippledmon` instance on another machine to receive and aggregate stats. - ``` - $ git clone https://github.com/ripple/rippledmon.git - $ cd rippledmon - $ docker-compose up - ``` + ``` + $ git clone https://github.com/ripple/rippledmon.git + $ cd rippledmon + $ docker-compose up + ``` - Make sure [Docker](https://docs.docker.com/) and [Docker Compose](https://docs.docker.com/compose/install/) are installed on your machine when performing the steps above. For more information about configuring `rippledmon`, see the [`rippledmon` repository](https://github.com/ripple/rippledmon). + Make sure [Docker](https://docs.docker.com/) and [Docker Compose](https://docs.docker.com/compose/install/) are installed on your machine when performing the steps above. For more information about configuring `rippledmon`, see the [`rippledmon` repository](https://github.com/ripple/rippledmon). -0. Add the `[insight]` stanza to your `rippled`'s config file. +2. Add the `[insight]` stanza to your `rippled`'s config file. - ``` - [insight] - server=statsd - address=192.0.2.0:8125 - prefix=my_rippled - ``` + ``` + [insight] + server=statsd + address=192.0.2.0:8125 + prefix=my_rippled + ``` - - For the `address`, use the IP address and port where `rippledmon` is listening. By default, this port is 8125. - - For the `prefix`, choose a name that identifies the `rippled` server you are configuring. The prefix must not include whitespace, colons ":", or the vertical bar "|". The prefix appears on all of the StatsD metrics exported from this server. + - For the `address`, use the IP address and port where `rippledmon` is listening. By default, this port is 8125. + - For the `prefix`, choose a name that identifies the `rippled` server you are configuring. The prefix must not include whitespace, colons ":", or the vertical bar "|". The prefix appears on all of the StatsD metrics exported from this server. - {% partial file="/docs/_snippets/conf-file-location.md" /%} + {% partial file="/docs/_snippets/conf-file-location.md" /%} -0. Restart the `rippled` service. +3. Restart the `rippled` service. - ``` - $ sudo systemctl restart rippled - ``` + ``` + $ sudo systemctl restart rippled + ``` -0. Check that the metrics are being exported: +4. Check that the metrics are being exported: - ``` - $ tcpdump -i en0 | grep UDP - ``` + ``` + $ tcpdump -i en0 | grep UDP + ``` - Replace `en0` with the appropriate network interface for your machine. For a complete list of the interfaces on your machine use `$ tcpdump -D`. + Replace `en0` with the appropriate network interface for your machine. For a complete list of the interfaces on your machine use `$ tcpdump -D`. - Sample Output: + Sample Output: - ``` - 00:41:53.066333 IP 192.0.2.2.63409 > 192.0.2.0.8125: UDP, length 196 - ``` + ``` + 00:41:53.066333 IP 192.0.2.2.63409 > 192.0.2.0.8125: UDP, length 196 + ``` - You should periodically see messages indicating outbound traffic to the configured address and port of your `rippledmon` instance. + You should periodically see messages indicating outbound traffic to the configured address and port of your `rippledmon` instance. For descriptions of each StatsD metric, see the [`rippledmon` repository](https://github.com/ripple/rippledmon). - - ## See Also - **Concepts:** - - [XRP Ledger Overview](/about/) - - [The `rippled` Server](../../concepts/networks-and-servers/index.md) + - [XRP Ledger Overview](/about/) + - [The `rippled` Server](../../concepts/networks-and-servers/index.md) - **Tutorials:** - - [Install `rippled`](../installation/index.md) - - [Capacity Planning](../installation/capacity-planning.md) + - [Install `rippled`](../installation/index.md) + - [Capacity Planning](../installation/capacity-planning.md) - **References:** - - [server_info method](../../references/http-websocket-apis/public-api-methods/server-info-methods/server_info.md) - - [print method](../../references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/print.md) + - [server_info method](../../references/http-websocket-apis/public-api-methods/server-info-methods/server_info.md) + - [print method](../../references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/print.md) diff --git a/docs/infrastructure/configuration/configure-validator-list-threshold.md b/docs/infrastructure/configuration/configure-validator-list-threshold.md index 4d80b3b531..94f47469c0 100644 --- a/docs/infrastructure/configuration/configure-validator-list-threshold.md +++ b/docs/infrastructure/configuration/configure-validator-list-threshold.md @@ -1,10 +1,11 @@ --- seo: - description: Set the minimum number of UNL publisher lists a validator must be on for your server to use it. + description: Set the minimum number of UNL publisher lists a validator must be on for your server to use it. labels: - Core Server - Blockchain --- + # Configure Validator List Threshold A `rippled` server uses validators that meet a minimum intersection threshold between UNL publishers. This means a server only uses validators that exist on a number of validator lists, as defined by the server owner. {% badge href="https://github.com/XRPLF/rippled/releases/tag/2.4.0" %}New in: rippled 2.4.0{% /badge %} @@ -14,20 +15,20 @@ By default, the minimum threshold is calculated as follows: - floor(`validator_list_keys` / 2) + 1 - If there are only 1 or 2 `validator_list_keys`, the threshold is `1`. - ## Modify the Validators File 1. Edit the `validators.txt` file. The recommended installation places this file at: - ``` - /etc/opt/ripple/validators.txt - ``` + + ``` + /etc/opt/ripple/validators.txt + ``` 2. Add the following stanza and a valid threshold number. - ``` - [validator_list_threshold] - 0 - ``` + ``` + [validator_list_threshold] + 0 + ``` Be sure to save the changes and restart your server. diff --git a/docs/infrastructure/configuration/connect-your-rippled-to-the-xrp-test-net.md b/docs/infrastructure/configuration/connect-your-rippled-to-the-xrp-test-net.md index 6300b4e4e8..43ef9ab3f0 100644 --- a/docs/infrastructure/configuration/connect-your-rippled-to-the-xrp-test-net.md +++ b/docs/infrastructure/configuration/connect-your-rippled-to-the-xrp-test-net.md @@ -2,12 +2,13 @@ html: connect-your-rippled-to-the-xrp-test-net.html parent: configure-rippled.html seo: - description: Connect your rippled server to the test net to try out new features or test functionality with fake money. + description: Connect your rippled server to the test net to try out new features or test functionality with fake money. labels: - Core Server - Blockchain - Development --- + # Connect Your rippled to a Parallel Network Various [alternative test and development networks](../../concepts/networks-and-servers/parallel-networks.md) exist for developers to test their apps or experiment with features without risking real money. **The funds used on these networks are not real funds and are intended for testing only.** You can connect your [`rippled` server](../../concepts/networks-and-servers/index.md) to any of these test networks. @@ -23,60 +24,61 @@ To connect your `rippled` server to the XRP Testnet or Devnet, complete these st Edit your `rippled.cfg` file. {% partial file="/docs/_snippets/conf-file-location.md" /%} + 1. Set an `[ips]` stanza with the hub for the network you want to connect to: - {% tabs %} + {% tabs %} - ```{% label="Testnet" %} - [ips] - s.altnet.rippletest.net 51235 - ``` + ```{% label="Testnet" %} + [ips] + s.altnet.rippletest.net 51235 + ``` - ```{% label="Devnet" %} - [ips] - s.devnet.rippletest.net 51235 - ``` + ```{% label="Devnet" %} + [ips] + s.devnet.rippletest.net 51235 + ``` - ```{% label="Mainnet" %} - # No [ips] stanza. Use the default hubs to connect to Mainnet. - ``` + ```{% label="Mainnet" %} + # No [ips] stanza. Use the default hubs to connect to Mainnet. + ``` - {% /tabs %} + {% /tabs %} 2. Comment out the previous `[ips]` stanza, if there is one: - ``` - # [ips] - # r.ripple.com 51235 - # sahyadri.isrdc.in 51235 - ``` + ``` + # [ips] + # r.ripple.com 51235 + # sahyadri.isrdc.in 51235 + ``` 3. Add a `[network_id]` stanza with the appropriate value: - {% tabs %} + {% tabs %} - ```{% label="Testnet" %} - [network_id] - testnet - ``` + ```{% label="Testnet" %} + [network_id] + testnet + ``` - ```{% label="Devnet" %} - [network_id] - devnet - ``` + ```{% label="Devnet" %} + [network_id] + devnet + ``` - ```{% label="Mainnet" %} - [network_id] - main - ``` + ```{% label="Mainnet" %} + [network_id] + main + ``` - {% /tabs %} + {% /tabs %} - For custom networks, everyone who connects to the network should use a value unique to that network. When creating a new network, choose a network ID at random from the integers 11 to 4,294,967,295. + For custom networks, everyone who connects to the network should use a value unique to that network. When creating a new network, choose a network ID at random from the integers 11 to 4,294,967,295. - {% admonition type="info" name="Note" %}This setting helps your server find peers who are on the same network, but it is not a hard control on what network your server follows. The UNL / trusted validator settings (in the next step) are what actually define what network the server follows.{% /admonition %} + {% admonition type="info" name="Note" %}This setting helps your server find peers who are on the same network, but it is not a hard control on what network your server follows. The UNL / trusted validator settings (in the next step) are what actually define what network the server follows.{% /admonition %} ## 2. Set your trusted validator list. @@ -84,57 +86,57 @@ Edit your `validators.txt` file. This file is located in the same folder as your 1. Uncomment or add the `[validator_list_sites]` and `[validator_list_keys]` stanzas for the network you want to connect to: - {% tabs %} + {% tabs %} - ```{% label="Testnet" %} - [validator_list_sites] - https://vl.altnet.rippletest.net + ```{% label="Testnet" %} + [validator_list_sites] + https://vl.altnet.rippletest.net - [validator_list_keys] - ED264807102805220DA0F312E71FC2C69E1552C9C5790F6C25E3729DEB573D5860 - ``` + [validator_list_keys] + ED264807102805220DA0F312E71FC2C69E1552C9C5790F6C25E3729DEB573D5860 + ``` - ```{% label="Devnet" %} - [validator_list_sites] - https://vl.devnet.rippletest.net + ```{% label="Devnet" %} + [validator_list_sites] + https://vl.devnet.rippletest.net - [validator_list_keys] - EDBB54B0D9AEE071BB37784AF5A9E7CC49AC7A0EFCE868C54532BCB966B9CFC13B - ``` + [validator_list_keys] + EDBB54B0D9AEE071BB37784AF5A9E7CC49AC7A0EFCE868C54532BCB966B9CFC13B + ``` - ```{% label="Mainnet" %} - [validator_list_sites] - https://vl.ripple.com + ```{% label="Mainnet" %} + [validator_list_sites] + https://vl.ripple.com - [validator_list_keys] - ED2677ABFFD1B33AC6FBC3062B71F1E8397C1505E1C42C64D11AD1B28FF73F4734 - ``` + [validator_list_keys] + ED2677ABFFD1B33AC6FBC3062B71F1E8397C1505E1C42C64D11AD1B28FF73F4734 + ``` - {% /tabs %} + {% /tabs %} - {% admonition type="success" name="Tip" %}Preview packages might come with the necessary stanzas pre-configured, but check them just in case.{% /admonition %} + {% admonition type="success" name="Tip" %}Preview packages might come with the necessary stanzas pre-configured, but check them just in case.{% /admonition %} 2. Comment out any previous `[validator_list_sites]`, `[validator_list_keys]`, or `[validators]` stanzas. - For example: + For example: - ``` - # [validator_list_sites] - # https://vl.ripple.com - # - # [validator_list_keys] - # ED2677ABFFD1B33AC6FBC3062B71F1E8397C1505E1C42C64D11AD1B28FF73F4734 + ``` + # [validator_list_sites] + # https://vl.ripple.com + # + # [validator_list_keys] + # ED2677ABFFD1B33AC6FBC3062B71F1E8397C1505E1C42C64D11AD1B28FF73F4734 - # Old hard-coded List of Devnet Validators - # [validators] - # n9Mo4QVGnMrRN9jhAxdUFxwvyM4aeE1RvCuEGvMYt31hPspb1E2c - # n9MEwP4LSSikUnhZJNQVQxoMCgoRrGm6GGbG46AumH2KrRrdmr6B - # n9M1pogKUmueZ2r3E3JnZyM3g6AxkxWPr8Vr3zWtuRLqB7bHETFD - # n9MX7LbfHvPkFYgGrJmCyLh8Reu38wsnnxA4TKhxGTZBuxRz3w1U - # n94aw2fof4xxd8g3swN2qJCmooHdGv1ajY8Ae42T77nAQhZeYGdd - # n9LiE1gpUGws1kFGKCM9rVFNYPVS4QziwkQn281EFXX7TViCp2RC - # n9Jq9w1R8UrvV1u2SQqGhSXLroeWNmPNc3AVszRXhpUr1fmbLyhS - ``` + # Old hard-coded List of Devnet Validators + # [validators] + # n9Mo4QVGnMrRN9jhAxdUFxwvyM4aeE1RvCuEGvMYt31hPspb1E2c + # n9MEwP4LSSikUnhZJNQVQxoMCgoRrGm6GGbG46AumH2KrRrdmr6B + # n9M1pogKUmueZ2r3E3JnZyM3g6AxkxWPr8Vr3zWtuRLqB7bHETFD + # n9MX7LbfHvPkFYgGrJmCyLh8Reu38wsnnxA4TKhxGTZBuxRz3w1U + # n94aw2fof4xxd8g3swN2qJCmooHdGv1ajY8Ae42T77nAQhZeYGdd + # n9LiE1gpUGws1kFGKCM9rVFNYPVS4QziwkQn281EFXX7TViCp2RC + # n9Jq9w1R8UrvV1u2SQqGhSXLroeWNmPNc3AVszRXhpUr1fmbLyhS + ``` ## 3. Enable (or Disable) Features @@ -143,24 +145,30 @@ For some test networks using experimental features, you must also forcefully ena {% tabs %} {% tab label="Testnet" %} + ``` # [features] # Delete or comment out. Don't force-enable features on Testnet. ``` + {% /tab %} {% tab label="Devnet" %} + ``` # [features] # Delete or comment out. Don't force-enable features on Devnet. ``` + {% /tab %} {% tab label="Mainnet" %} + ``` # [features] # Delete or comment out. Don't force-enable features on Mainnet. ``` + {% /tab %} {% /tabs %} @@ -187,21 +195,19 @@ rippled server_info | grep seq You can use [server_info in the WebSocket Tool](/resources/dev-tools/websocket-api-tool#server_info) to look up the latest ledger index (`seq`) on the intended network. - - ## See Also - **Tools:** - - [XRP Faucets](/resources/dev-tools/xrp-faucets) - - [WebSocket API Tool](/resources/dev-tools/websocket-api-tool) - Select 'Testnet Public Server' or 'Devnet Public Server' in the connection options. + - [XRP Faucets](/resources/dev-tools/xrp-faucets) + - [WebSocket API Tool](/resources/dev-tools/websocket-api-tool) - Select 'Testnet Public Server' or 'Devnet Public Server' in the connection options. - **Concepts:** - - [Parallel Networks](../../concepts/networks-and-servers/parallel-networks.md) - - [Consensus](../../concepts/consensus-protocol/index.md) + - [Parallel Networks](../../concepts/networks-and-servers/parallel-networks.md) + - [Consensus](../../concepts/consensus-protocol/index.md) - **Tutorials:** - - [Run rippled as a Validator](server-modes/run-rippled-as-a-validator.md) - - [Test `rippled` Offline in Stand-Alone Mode](../testing-and-auditing/index.md) - - [Troubleshooting `rippled`](../troubleshooting/index.md) + - [Run rippled as a Validator](server-modes/run-rippled-as-a-validator.md) + - [Test `rippled` Offline in Stand-Alone Mode](../testing-and-auditing/index.md) + - [Troubleshooting `rippled`](../troubleshooting/index.md) - **References:** - - [server_info method][] + - [server_info method][] {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/infrastructure/configuration/data-retention/configure-advisory-deletion.md b/docs/infrastructure/configuration/data-retention/configure-advisory-deletion.md index 152195405b..b1181eb4c1 100644 --- a/docs/infrastructure/configuration/data-retention/configure-advisory-deletion.md +++ b/docs/infrastructure/configuration/data-retention/configure-advisory-deletion.md @@ -2,11 +2,12 @@ html: configure-advisory-deletion.html parent: data-retention.html seo: - description: Use advisory deletion to delete older ledger history on a schedule rather than as new history becomes available. + description: Use advisory deletion to delete older ledger history on a schedule rather than as new history becomes available. labels: - Core Server - Data Retention --- + # Configure Advisory Deletion The default config file sets [`rippled`](../../../concepts/networks-and-servers/index.md) to automatically delete outdated [history](../../../concepts/networks-and-servers/ledger-history.md) of XRP Ledger state and transactions as new ledger versions become available. If your server uses most of its hardware resources during peak hours, you can configure the server to delete ledgers only when prompted by a command scheduled to run during off-peak hours, so that online deletion is less likely to impact [server performance](../../installation/capacity-planning.md). @@ -19,21 +20,21 @@ This tutorial assumes your server meets the following prerequisites: - The `rippled` server is already [installed](../../installation/index.md) and [online deletion](online-deletion.md) is enabled. - The default config file enables online deletion after 2000 ledger versions. + The default config file enables online deletion after 2000 ledger versions. - A `cron` daemon is installed and running. - Ubuntu Linux runs a `cron` daemon by default. + Ubuntu Linux runs a `cron` daemon by default. - On RHEL or CentOS, you can install the `cronie` package: + On RHEL or CentOS, you can install the `cronie` package: - ``` - $ sudo yum install cronie - ``` + ``` + $ sudo yum install cronie + ``` - Your server has enough disk space to store your chosen amount of history in its ledger store. - See [Capacity Planning](../../installation/capacity-planning.md) for details of how much storage is required for different configurations. With advisory deletion enabled, the maximum history a server may accumulate before deletion is equal to the number of ledger versions configured in the `online_delete` setting **plus** the amount of time between online deletion prompts. + See [Capacity Planning](../../installation/capacity-planning.md) for details of how much storage is required for different configurations. With advisory deletion enabled, the maximum history a server may accumulate before deletion is equal to the number of ledger versions configured in the `online_delete` setting **plus** the amount of time between online deletion prompts. - You know which hours are least busy for your server. @@ -43,68 +44,68 @@ To configure advisory deletion with a daily schedule, perform the following step 1. Enable `advisory_delete` in the `[node_db]` stanza of your `rippled`'s config file. - ``` - [node_db] - # Other settings unchanged ... - online_delete=300000 - advisory_delete=1 - ``` + ``` + [node_db] + # Other settings unchanged ... + online_delete=300000 + advisory_delete=1 + ``` - - Set `advisory_delete` to `1` to run online deletion only when prompted. (Set it to `0` to run online deletion automatically as new ledger versions become available.) - - Set `online_delete` to the minimum number of ledger versions to keep after running online deletion. The server accumulates more history than this until online deletion runs. + - Set `advisory_delete` to `1` to run online deletion only when prompted. (Set it to `0` to run online deletion automatically as new ledger versions become available.) + - Set `online_delete` to the minimum number of ledger versions to keep after running online deletion. The server accumulates more history than this until online deletion runs. - {% partial file="/docs/_snippets/conf-file-location.md" /%} + {% partial file="/docs/_snippets/conf-file-location.md" /%} 2. Test running the [can_delete method][] to prompt the server to run online deletion. - You can use the [`rippled` commandline interface](../../../tutorials/http-websocket-apis/build-apps/get-started.md#commandline) to run this command. For example: + You can use the [`rippled` commandline interface](../../../tutorials/http-websocket-apis/build-apps/get-started.md#commandline) to run this command. For example: - ``` - $ rippled --conf=/etc/opt/ripple/rippled.cfg can_delete now - ``` + ``` + $ rippled --conf=/etc/opt/ripple/rippled.cfg can_delete now + ``` - The response indicates the maximum ledger index that the server may delete from its ledger store. For example, the following message indicates that ledger versions up to and including ledger index 43633667 can be deleted: + The response indicates the maximum ledger index that the server may delete from its ledger store. For example, the following message indicates that ledger versions up to and including ledger index 43633667 can be deleted: - ``` - { - "result": { - "can_delete": 43633667, - "status": "success" - } - } - ``` + ``` + { + "result": { + "can_delete": 43633667, + "status": "success" + } + } + ``` - The server only deletes those ledger versions if the number of _newer_ validated ledger versions it has is equal to or greater than the `online_delete` setting. + The server only deletes those ledger versions if the number of _newer_ validated ledger versions it has is equal to or greater than the `online_delete` setting. 3. Configure your `cron` daemon to run the `can_delete` method you tested in the previous step at a scheduled time. - Edit your `cron` configuration: + Edit your `cron` configuration: - ``` - $ crontab -e - ``` + ``` + $ crontab -e + ``` - The following example sets the server to run deletion at 1:05 AM server time daily: + The following example sets the server to run deletion at 1:05 AM server time daily: - ``` - 5 1 * * * rippled --conf /etc/opt/ripple/rippled.cfg can_delete now - ``` + ``` + 5 1 * * * rippled --conf /etc/opt/ripple/rippled.cfg can_delete now + ``` - Be sure that you schedule the command to run based on your server's configured time zone. + Be sure that you schedule the command to run based on your server's configured time zone. - {% admonition type="success" name="Tip" %}You do not need to schedule a `cron` job to run online deletion if you have `advisory_delete` disabled. In that case, `rippled` runs online deletion automatically when the difference between the server's oldest and current validated ledger versions is at least the value of `online_delete`.{% /admonition %} + {% admonition type="success" name="Tip" %}You do not need to schedule a `cron` job to run online deletion if you have `advisory_delete` disabled. In that case, `rippled` runs online deletion automatically when the difference between the server's oldest and current validated ledger versions is at least the value of `online_delete`.{% /admonition %} 4. Start (or restart) the `rippled` service. - ``` - $ sudo systemctl restart rippled - ``` + ``` + $ sudo systemctl restart rippled + ``` 5. Periodically check your server's `complete_ledgers` range using the [server_info method][] to confirm that ledgers are being deleted as scheduled. - The lowest ledger index in `complete_ledgers` should increase after online deletion. + The lowest ledger index in `complete_ledgers` should increase after online deletion. - Deletion may take several minutes to complete when it runs, depending on how busy your server is and how much history you delete at a time. + Deletion may take several minutes to complete when it runs, depending on how busy your server is and how much history you delete at a time. ## Troubleshooting @@ -118,16 +119,16 @@ If online deletion does not seem to be running after configuring it, try the fol ## See Also - **Concepts:** - - [Ledger History](../../../concepts/networks-and-servers/ledger-history.md) - - [Online Deletion](online-deletion.md) + - [Ledger History](../../../concepts/networks-and-servers/ledger-history.md) + - [Online Deletion](online-deletion.md) - **Tutorials:** - - [Configure Online Deletion](configure-online-deletion.md) - - [Diagnosing Problems with rippled](../../troubleshooting/diagnosing-problems.md) - - [Understanding Log Messages](../../troubleshooting/understanding-log-messages.md) + - [Configure Online Deletion](configure-online-deletion.md) + - [Diagnosing Problems with rippled](../../troubleshooting/diagnosing-problems.md) + - [Understanding Log Messages](../../troubleshooting/understanding-log-messages.md) - **References:** - - [server_info method][] - - [can_delete method][] - - [logrotate method][] - - [Ledger Data Formats](../../../references/protocol/ledger-data/index.md) + - [server_info method][] + - [can_delete method][] + - [logrotate method][] + - [Ledger Data Formats](../../../references/protocol/ledger-data/index.md) {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/infrastructure/configuration/data-retention/configure-full-history.md b/docs/infrastructure/configuration/data-retention/configure-full-history.md index f2976ff4bd..165152004a 100644 --- a/docs/infrastructure/configuration/data-retention/configure-full-history.md +++ b/docs/infrastructure/configuration/data-retention/configure-full-history.md @@ -2,11 +2,12 @@ html: configure-full-history.html parent: data-retention.html seo: - description: Full history servers provide a record of every transaction ever to occur in the XRP Ledger, although they are expensive to run. + description: Full history servers provide a record of every transaction ever to occur in the XRP Ledger, although they are expensive to run. labels: - Core Server - Data Retention --- + # Configure Full History In its default configuration, the `rippled` server automatically deletes outdated history of XRP Ledger state and transactions as new ledger versions become available. This is enough for most servers, which do not need older history to know the current state and process transactions. However, it can be useful for the network if some servers provide as much history of the XRP Ledger as possible. @@ -21,110 +22,109 @@ Acquiring full history from the peer-to-peer network takes a long time (several You do not need a full history server to participate in the network, validate transactions, or know the current state of the network. Full history is only useful for knowing the outcome of transactions that occurred in the past, or the state of the ledger at a given time in the past. To get such information, you must rely on other servers having the history you need. - ## Configuration Steps To configure your server to acquire and store full history, complete the following steps: 1. Stop the `rippled` server if it is running. - ``` - $ sudo systemctl stop rippled - ``` + ``` + $ sudo systemctl stop rippled + ``` -0. Remove (or comment out) the `online_delete` and `advisory_delete` settings from the `[node_db]` stanza of your server's config file, and change the type to `NuDB` if you haven't already: +2. Remove (or comment out) the `online_delete` and `advisory_delete` settings from the `[node_db]` stanza of your server's config file, and change the type to `NuDB` if you haven't already: - ``` - [node_db] - type=NuDB - path=/var/lib/rippled/db/nudb - #online_delete=300000 - #advisory_delete=0 - ``` + ``` + [node_db] + type=NuDB + path=/var/lib/rippled/db/nudb + #online_delete=300000 + #advisory_delete=0 + ``` - On a full-history server, you should use NuDB for the ledger store, because RocksDB requires too much RAM when the database is that large. For more information, see [Capacity Planning](../../installation/capacity-planning.md). You can remove the following performance-related configuration options from the default `[node_db]` stanza, because they only apply to RocksDB: `open_files`, `filter_bits`, `cache_mb`, `file_size_mb`, and `file_size_mult.` + On a full-history server, you should use NuDB for the ledger store, because RocksDB requires too much RAM when the database is that large. For more information, see [Capacity Planning](../../installation/capacity-planning.md). You can remove the following performance-related configuration options from the default `[node_db]` stanza, because they only apply to RocksDB: `open_files`, `filter_bits`, `cache_mb`, `file_size_mb`, and `file_size_mult.` - {% admonition type="warning" name="Caution" %}If you have any history already downloaded with RocksDB, you must either delete that data or change the paths to the databases in the config file when you switch to NuDB. You must change both the `path` field of the `[node_db]` stanza **and** the `[database_path]` (SQLite database) setting. Otherwise, the server may [fail to start](../../troubleshooting/server-wont-start.md#state-db-error).{% /admonition %} + {% admonition type="warning" name="Caution" %}If you have any history already downloaded with RocksDB, you must either delete that data or change the paths to the databases in the config file when you switch to NuDB. You must change both the `path` field of the `[node_db]` stanza **and** the `[database_path]` (SQLite database) setting. Otherwise, the server may [fail to start](../../troubleshooting/server-wont-start.md#state-db-error).{% /admonition %} - {% partial file="/docs/_snippets/conf-file-location.md" /%} + {% partial file="/docs/_snippets/conf-file-location.md" /%} -0. Set the `[ledger_history]` stanza of your server's config file to `full`: +3. Set the `[ledger_history]` stanza of your server's config file to `full`: - ``` - [ledger_history] - full - ``` + ``` + [ledger_history] + full + ``` -0. Set the `[ips_fixed]` stanza of your server's config file to explicitly peer with at least one server that has full history available. +4. Set the `[ips_fixed]` stanza of your server's config file to explicitly peer with at least one server that has full history available. - ``` - [ips_fixed] - 169.55.164.20 51235 - 50.22.123.215 51235 - ``` + ``` + [ips_fixed] + 169.55.164.20 51235 + 50.22.123.215 51235 + ``` - Your server can only download historical data from the peer-to-peer network if one its direct peers has the data available. The easiest way to ensure you can download full history is to peer with a server that already has full history. + Your server can only download historical data from the peer-to-peer network if one its direct peers has the data available. The easiest way to ensure you can download full history is to peer with a server that already has full history. - {% admonition type="success" name="Tip" %}Ripple makes a pool of full history servers publicly available. You can resolve the domain `s2.ripple.com` a few times to get the IP addresses of these servers. Ripple offers these servers as a public service, so be aware that their availability to peer with other servers is limited and you may be blocked if you abuse them.{% /admonition %} + {% admonition type="success" name="Tip" %}Ripple makes a pool of full history servers publicly available. You can resolve the domain `s2.ripple.com` a few times to get the IP addresses of these servers. Ripple offers these servers as a public service, so be aware that their availability to peer with other servers is limited and you may be blocked if you abuse them.{% /admonition %} -0. If you have a database dump from another full-history server to use as a basis, set the `[import_db]` stanza of your server's config file to point to the data to be imported. (Otherwise, skip this step.) +5. If you have a database dump from another full-history server to use as a basis, set the `[import_db]` stanza of your server's config file to point to the data to be imported. (Otherwise, skip this step.) - ``` - [import_db] - type=NuDB - path=/tmp/full_history_dump/ - ``` + ``` + [import_db] + type=NuDB + path=/tmp/full_history_dump/ + ``` -0. Remove your server's existing database files, if you have any from previously running `rippled`. +6. Remove your server's existing database files, if you have any from previously running `rippled`. - After disabling online deletion, the server ignores any data that was downloaded while online deletion was enabled, so you may as well clear up the disk space. For example: + After disabling online deletion, the server ignores any data that was downloaded while online deletion was enabled, so you may as well clear up the disk space. For example: - ``` - rm -r /var/lib/rippled/db/* - ``` + ``` + rm -r /var/lib/rippled/db/* + ``` - {% admonition type="danger" name="Warning" %}Be sure that you have not put any files you want to keep in the folder before you delete it. It is generally safe to delete all of a `rippled` server's database files, but you should only do this if the configured database folder is not used for anything other than `rippled`'s databases.{% /admonition %} + {% admonition type="danger" name="Warning" %}Be sure that you have not put any files you want to keep in the folder before you delete it. It is generally safe to delete all of a `rippled` server's database files, but you should only do this if the configured database folder is not used for anything other than `rippled`'s databases.{% /admonition %} -0. Start the `rippled` server, importing the database dump if you have one available: +7. Start the `rippled` server, importing the database dump if you have one available: - If you have a database dump to load configured in `[import_db]`, start the server explicitly and include the `--import` [commandline option](../../commandline-usage.md#daemon-mode-options): + If you have a database dump to load configured in `[import_db]`, start the server explicitly and include the `--import` [commandline option](../../commandline-usage.md#daemon-mode-options): - ``` - $ /opt/ripple/bin/rippled --conf /etc/opt/ripple/rippled.cfg --import - ``` + ``` + $ /opt/ripple/bin/rippled --conf /etc/opt/ripple/rippled.cfg --import + ``` - Importing a large database dump may take several minutes or even hours. During this time, the server is not fully started and synced with the network. Watch the server logs to see the status of the import. + Importing a large database dump may take several minutes or even hours. During this time, the server is not fully started and synced with the network. Watch the server logs to see the status of the import. - If you are not importing a database dump, start the server normally: + If you are not importing a database dump, start the server normally: - ``` - $ sudo systemctl start rippled - ``` + ``` + $ sudo systemctl start rippled + ``` -0. If you added an `[import_db]` stanza to your server's config file, remove it after the import completes. +8. If you added an `[import_db]` stanza to your server's config file, remove it after the import completes. - Otherwise, your server may try to import the same data again the next time it is restarted. + Otherwise, your server may try to import the same data again the next time it is restarted. -0. Monitor your server's available history with the [server_info method][]. +9. Monitor your server's available history with the [server_info method][]. - The range of available ledgers reported in the `complete_ledgers` field should increase over time. + The range of available ledgers reported in the `complete_ledgers` field should increase over time. - The earliest available ledger version in the production XRP Ledger's history is ledger index **32570**. The first two weeks or so of ledger history was lost due to a bug in the server at the time. [Test nets and other chains](../../../concepts/networks-and-servers/parallel-networks.md) generally have history going back to ledger index **1**. + The earliest available ledger version in the production XRP Ledger's history is ledger index **32570**. The first two weeks or so of ledger history was lost due to a bug in the server at the time. [Test nets and other chains](../../../concepts/networks-and-servers/parallel-networks.md) generally have history going back to ledger index **1**. ## See Also - **Concepts:** - - [Ledger History](../../../concepts/networks-and-servers/ledger-history.md) - - [rippled Server Modes](../../../concepts/networks-and-servers/rippled-server-modes.md) + - [Ledger History](../../../concepts/networks-and-servers/ledger-history.md) + - [rippled Server Modes](../../../concepts/networks-and-servers/rippled-server-modes.md) - **Tutorials:** - - [Capacity Planning](../../installation/capacity-planning.md), particularly [Disk Space](../../installation/capacity-planning.md#disk-space) - - [Configure Online Deletion](configure-online-deletion.md) - - [Diagnosing Problems with rippled](../../troubleshooting/diagnosing-problems.md) - - [Understanding Log Messages](../../troubleshooting/understanding-log-messages.md) + - [Capacity Planning](../../installation/capacity-planning.md), particularly [Disk Space](../../installation/capacity-planning.md#disk-space) + - [Configure Online Deletion](configure-online-deletion.md) + - [Diagnosing Problems with rippled](../../troubleshooting/diagnosing-problems.md) + - [Understanding Log Messages](../../troubleshooting/understanding-log-messages.md) - **References:** - - [server_info method][] - - [can_delete method][] - - [Ledger Data Formats](../../../references/protocol/ledger-data/index.md) - - [rippled Commandline Usage Reference](../../commandline-usage.md) + - [server_info method][] + - [can_delete method][] + - [Ledger Data Formats](../../../references/protocol/ledger-data/index.md) + - [rippled Commandline Usage Reference](../../commandline-usage.md) {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/infrastructure/configuration/data-retention/configure-online-deletion.md b/docs/infrastructure/configuration/data-retention/configure-online-deletion.md index f4916bbe68..8600b81303 100644 --- a/docs/infrastructure/configuration/data-retention/configure-online-deletion.md +++ b/docs/infrastructure/configuration/data-retention/configure-online-deletion.md @@ -2,11 +2,12 @@ html: configure-online-deletion.html parent: data-retention.html seo: - description: Configure how far back your server should store transaction history. + description: Configure how far back your server should store transaction history. labels: - Core Server - Data Retention --- + # Configure Online Deletion In its default configuration, [the `rippled` server](../../../concepts/networks-and-servers/index.md) [deletes history](online-deletion.md) older than the most recent 2000 [ledger versions](../../../concepts/ledgers/index.md), keeping approximately 15 minutes of [ledger history](../../../concepts/networks-and-servers/ledger-history.md) (based on the current rate between ledgers). This page describes how to configure the amount of history your `rippled` server stores before deleting. @@ -19,71 +20,68 @@ This tutorial assumes your server meets the following prerequisites: - The `rippled` server is already [installed](../../installation/index.md) and [online deletion](online-deletion.md) is enabled. - If you followed the installation instructions for a recommended platform, online deletion is enabled by default. + If you followed the installation instructions for a recommended platform, online deletion is enabled by default. - Your server has [enough disk space](../../installation/capacity-planning.md#disk-space) to store your chosen amount of history in its ledger store. - ## Configuration Steps To change the amount of history your server stores, perform the following steps: 1. Decide how many ledger versions' worth of history to store. - New ledger versions are usually validated 3 to 4 seconds apart, so the number of ledger versions corresponds roughly to the amount of time you want to store. See [Capacity Planning](../../installation/capacity-planning.md) for details of how much storage is required for different configurations. + New ledger versions are usually validated 3 to 4 seconds apart, so the number of ledger versions corresponds roughly to the amount of time you want to store. See [Capacity Planning](../../installation/capacity-planning.md) for details of how much storage is required for different configurations. - Online deletion is based on how many ledger versions to keep _after_ deleting history, so you should have enough disk space to store twice as many ledgers as you set it to keep. + Online deletion is based on how many ledger versions to keep _after_ deleting history, so you should have enough disk space to store twice as many ledgers as you set it to keep. -0. In your `rippled`'s config file, edit the `online_delete` field of the `[node_db]` stanza. +2. In your `rippled`'s config file, edit the `online_delete` field of the `[node_db]` stanza. - ``` - [node_db] - # Other settings unchanged ... - online_delete=300000 - advisory_delete=0 - ``` + ``` + [node_db] + # Other settings unchanged ... + online_delete=300000 + advisory_delete=0 + ``` - Set `online_delete` to the minimum number of ledger versions to keep after running online deletion. With automatic deletion (the default), the server typically runs deletion when it has accumulated about twice this many ledger versions. + Set `online_delete` to the minimum number of ledger versions to keep after running online deletion. With automatic deletion (the default), the server typically runs deletion when it has accumulated about twice this many ledger versions. - {% partial file="/docs/_snippets/conf-file-location.md" /%} + {% partial file="/docs/_snippets/conf-file-location.md" /%} -0. Start (or restart) the `rippled` service. +3. Start (or restart) the `rippled` service. - ``` - $ sudo systemctl restart rippled - ``` + ``` + $ sudo systemctl restart rippled + ``` -0. Wait for your server to sync to the network. +4. Wait for your server to sync to the network. - Depending on your network and system capabilities and how long your server was offline, it may take between 5 and 15 minutes to fully sync. + Depending on your network and system capabilities and how long your server was offline, it may take between 5 and 15 minutes to fully sync. - When your server is synced with the network, the [server_info method][] reports a `server_state` value of `"full"`, `"proposing"`, or `"validating"`. + When your server is synced with the network, the [server_info method][] reports a `server_state` value of `"full"`, `"proposing"`, or `"validating"`. -0. Periodically check your server's `complete_ledgers` range using the [server_info method][] to confirm that ledgers are being deleted. +5. Periodically check your server's `complete_ledgers` range using the [server_info method][] to confirm that ledgers are being deleted. - After online deletion runs, the `complete_ledgers` range reflects that older ledgers are no longer available. As your server accumulates history, the total number of ledgers available should slowly increase to twice the `online_delete` value you configured, then decrease when online deletion runs. + After online deletion runs, the `complete_ledgers` range reflects that older ledgers are no longer available. As your server accumulates history, the total number of ledgers available should slowly increase to twice the `online_delete` value you configured, then decrease when online deletion runs. -0. Monitor your `rippled` logs for messages that begin with `SHAMapStore::WRN`. This can indicate that [online deletion is being interrupted](online-deletion.md#interrupting-online-deletion) because your server fell out of sync with the network. - - If this happens regularly, your server may not have sufficient specifications to keep up with the ledger while running online deletion. Check that other services on the same hardware (such as scheduled backups or security scans) aren't competing with the `rippled` server for resources. You may want to try any of the following: - - - Increase your system specs. See [System Requirements](../../installation/system-requirements.md) for recommendations. - - Change your configuration to store less history. (Step 2 of this tutorial) - - Change your server's [`node_size` parameter](../../installation/capacity-planning.md). - - Use [NuDB instead of RocksDB](../../installation/capacity-planning.md) for the ledger store. - - [Schedule online deletion using Advisory Deletion](configure-advisory-deletion.md). +6. Monitor your `rippled` logs for messages that begin with `SHAMapStore::WRN`. This can indicate that [online deletion is being interrupted](online-deletion.md#interrupting-online-deletion) because your server fell out of sync with the network. + If this happens regularly, your server may not have sufficient specifications to keep up with the ledger while running online deletion. Check that other services on the same hardware (such as scheduled backups or security scans) aren't competing with the `rippled` server for resources. You may want to try any of the following: + - Increase your system specs. See [System Requirements](../../installation/system-requirements.md) for recommendations. + - Change your configuration to store less history. (Step 2 of this tutorial) + - Change your server's [`node_size` parameter](../../installation/capacity-planning.md). + - Use [NuDB instead of RocksDB](../../installation/capacity-planning.md) for the ledger store. + - [Schedule online deletion using Advisory Deletion](configure-advisory-deletion.md). ## See Also - **Concepts:** - - [Ledger History](../../../concepts/networks-and-servers/ledger-history.md) - - [Online Deletion](online-deletion.md) + - [Ledger History](../../../concepts/networks-and-servers/ledger-history.md) + - [Online Deletion](online-deletion.md) - **Tutorials:** - - [Configure Advisory Deletion](configure-advisory-deletion.md) - - [Capacity Planning](../../installation/capacity-planning.md) + - [Configure Advisory Deletion](configure-advisory-deletion.md) + - [Capacity Planning](../../installation/capacity-planning.md) - **References:** - - [server_info method][] - - [Ledger Data Formats](../../../references/protocol/ledger-data/index.md) + - [server_info method][] + - [Ledger Data Formats](../../../references/protocol/ledger-data/index.md) {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/infrastructure/configuration/data-retention/index.md b/docs/infrastructure/configuration/data-retention/index.md index 2294a7d7d3..7cb1ec8dc4 100644 --- a/docs/infrastructure/configuration/data-retention/index.md +++ b/docs/infrastructure/configuration/data-retention/index.md @@ -4,11 +4,11 @@ parent: configure-rippled.html metadata: indexPage: true seo: - description: Control how much data your server should keep and when it should remove old data. + description: Control how much data your server should keep and when it should remove old data. --- + # Data Retention Control how much data your server should keep and when it should remove old data, including old versions of the ledger state and past transactions. - {% child-pages /%} diff --git a/docs/infrastructure/configuration/data-retention/online-deletion.md b/docs/infrastructure/configuration/data-retention/online-deletion.md index c03a927352..abae29f684 100644 --- a/docs/infrastructure/configuration/data-retention/online-deletion.md +++ b/docs/infrastructure/configuration/data-retention/online-deletion.md @@ -2,12 +2,14 @@ html: online-deletion.html parent: data-retention.html seo: - description: Online deletion purges outdated transaction and state history. + description: Online deletion purges outdated transaction and state history. labels: - Data Retention - Core Server --- + # Online Deletion + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/misc/SHAMapStoreImp.cpp "Source") The online deletion feature lets the `rippled` server delete the server's local copy of old ledger versions to keep disk usage from rapidly growing over time. The default config file sets online deletion to run automatically, but online deletion can also be configured to run only when prompted. @@ -18,14 +20,12 @@ The default config file sets the `rippled` server to keep the most recent 2000 l {% admonition type="success" name="Tip" %}Even with online deletion, the amount of disk space required to store the same time span's worth of ledger data increases over time, because the size of individual ledger versions tends to grow over time. This growth is very slow in comparison to the accumulation of data that occurs without deleting old ledgers. For more information on disk space needs, see [Capacity Planning](../../installation/capacity-planning.md).{% /admonition %} - ## Background The `rippled` server stores [ledger history](../../../concepts/networks-and-servers/ledger-history.md) in its _ledger store_. This data accumulates over time. Inside the ledger store, ledger data is "de-duplicated". In other words, data that doesn't change from version to version is only stored once. The records themselves in the ledger store do not indicate which ledger version(s) contain them; part of the work of online deletion is identifying which records are only used by outdated ledger versions. This process is time consuming and affects the disk I/O and application cache, so the server cannot delete old data every time it closes a new ledger. - ## Online Deletion Behavior The online deletion settings configure how many ledger versions the `rippled` server should keep available in the ledger store at a time. However, the specified number is a guideline, not a hard rule: @@ -33,20 +33,18 @@ The online deletion settings configure how many ledger versions the `rippled` se - The server never deletes data more recent than the configured number of ledger versions, but it may have less than that amount available if it has not been running for long enough or if it lost sync with the network at any time. (The server attempts to backfill at least some history; see [fetching history](../../../concepts/networks-and-servers/ledger-history.md#fetching-history) for details.) - The server may store up to slightly over twice the configured number of ledger versions if online deletion is set to run automatically. (Each time it runs, it reduces the number of stored ledger versions to approximately the configured number.) - If online deletion is delayed because the server is busy, ledger versions can continue to accumulate. When functioning normally, online deletion begins when the server has twice the configured number of ledger versions, but it may not complete until after several more ledger versions have accumulated. + If online deletion is delayed because the server is busy, ledger versions can continue to accumulate. When functioning normally, online deletion begins when the server has twice the configured number of ledger versions, but it may not complete until after several more ledger versions have accumulated. - If advisory deletion is enabled, the server stores all the ledger versions that it has acquired and built until its administrator calls the [can_delete method][]. - The amount of data the server stores depends on how often you call [can_delete][can_delete method] and how big an interval of time your `online_delete` setting represents: + The amount of data the server stores depends on how often you call [can_delete][can_delete method] and how big an interval of time your `online_delete` setting represents: + - If you call `can_delete` _more often_ than your `online_delete` interval, the server stores **up to twice the `online_delete` number** of ledger versions. (After deletion, this is reduced to approximately the `online_delete` value.) - - If you call `can_delete` _more often_ than your `online_delete` interval, the server stores **up to twice the `online_delete` number** of ledger versions. (After deletion, this is reduced to approximately the `online_delete` value.) + For example, if you call `can_delete` with a value of `now` once per day and an `online_delete` value of 50,000, the server typically stores up to 100,000 ledger versions before running deletion. After running deletion, the server keeps at least 50,000 ledger versions (about two days' worth). With this configuration, approximately every other `can_delete` call results in no change because the server does not have enough ledger versions to delete. - For example, if you call `can_delete` with a value of `now` once per day and an `online_delete` value of 50,000, the server typically stores up to 100,000 ledger versions before running deletion. After running deletion, the server keeps at least 50,000 ledger versions (about two days' worth). With this configuration, approximately every other `can_delete` call results in no change because the server does not have enough ledger versions to delete. - - - If you call `can_delete` _less often_ than your `online_delete` interval, the server stores at most ledger versions spanning an amount of time that is approximately **twice the interval between `can_delete` calls**. (After deletion, this is reduced to approximately one interval's worth of data.) - - For example, if you call `can_delete` with a value of `now` once per day and an `online_delete` value of 2000, the server typically stores up to two full days' worth of ledger versions before running deletion. After running deletion, the server keeps approximately one day's worth (about 25,000 ledger versions), but never fewer than 2000 ledger versions. + - If you call `can_delete` _less often_ than your `online_delete` interval, the server stores at most ledger versions spanning an amount of time that is approximately **twice the interval between `can_delete` calls**. (After deletion, this is reduced to approximately one interval's worth of data.) + For example, if you call `can_delete` with a value of `now` once per day and an `online_delete` value of 2000, the server typically stores up to two full days' worth of ledger versions before running deletion. After running deletion, the server keeps approximately one day's worth (about 25,000 ledger versions), but never fewer than 2000 ledger versions. With online deletion enabled and running automatically (that is, with advisory delete disabled), the total amount of ledger data stored should remain at minimum equal to the number of ledger versions the server is configured to keep, with the maximum being roughly twice that many. @@ -62,38 +60,37 @@ If you stop the server or it crashes while online deletion is running, online de To temporarily disable online deletion, you can use the [can_delete method][] with an argument of `never`. This change persists until you re-enable online deletion by calling [can_delete][can_delete method] again. For more information on controlling when online deletion happens, see [Advisory Deletion](#advisory-deletion). - ## Configuration The following settings relate to online deletion: - **`online_delete`** - Specify how many validated ledger versions to keep. The server periodically deletes any ledger versions that are older than this number. If not specified, no ledgers are deleted. - The default config file specifies 2000 for this value. This cannot be less than 256, because some events like [Fee Voting](../../../concepts/consensus-protocol/fee-voting.md) and the [Amendment Process](../../../concepts/networks-and-servers/amendments.md#amendment-process) update only every 256 ledgers. + The default config file specifies 2000 for this value. This cannot be less than 256, because some events like [Fee Voting](../../../concepts/consensus-protocol/fee-voting.md) and the [Amendment Process](../../../concepts/networks-and-servers/amendments.md#amendment-process) update only every 256 ledgers. - {% admonition type="warning" name="Caution" %}If you run `rippled` with `online_delete` disabled, then later enable `online_delete` and restart the server, the server disregards but does not delete existing ledger history that your server already downloaded while `online_delete` was disabled. To save disk space, delete your existing history before re-starting the server after changing the `online_delete` setting.{% /admonition %} + {% admonition type="warning" name="Caution" %}If you run `rippled` with `online_delete` disabled, then later enable `online_delete` and restart the server, the server disregards but does not delete existing ledger history that your server already downloaded while `online_delete` was disabled. To save disk space, delete your existing history before re-starting the server after changing the `online_delete` setting.{% /admonition %} - **`[ledger_history]`** - Specify how many validated ledgers to backfill. Must be equal to or less than `online_delete`. If the server does not have at least this many validated ledger versions, it attempts to fetch the data from peers when it can. - The default for this setting is 256 ledgers. + The default for this setting is 256 ledgers. - The following diagram shows the relationship between `online_delete` and `ledger_history` settings: + The following diagram shows the relationship between `online_delete` and `ledger_history` settings: - [{% inline-svg file="/docs/img/online_delete-vs-ledger_history.svg" /%}](/docs/img/online_delete-vs-ledger_history.svg "Ledgers older than `online_delete` are automatically deleted. Ledgers newer than `ledger_history` are backfilled. Ledgers in between are kept if available but not backfilled") + [{% inline-svg file="/docs/img/online_delete-vs-ledger_history.svg" /%}](/docs/img/online_delete-vs-ledger_history.svg 'Ledgers older than `online_delete` are automatically deleted. Ledgers newer than `ledger_history` are backfilled. Ledgers in between are kept if available but not backfilled') - **`advisory_delete`** - If enabled, online deletion is not scheduled automatically. Instead, an administrator must manually trigger online deletion. Use the value `0` for disabled or `1` for enabled. - This setting is disabled by default. + This setting is disabled by default. - **`[fetch_depth]`** - Specify how many ledger versions to serve to peers. The server does not accept fetch requests from peers for historical data that is older than the specified number of ledger versions. Specify the value `full` to serve any available data to peers. - The default for `fetch_depth` is `full` (serve all available data). + The default for `fetch_depth` is `full` (serve all available data). - The `fetch_depth` setting cannot be higher than `online_delete` if both are specified. If `fetch_depth` is set higher, the server treats it as equal to `online_delete` instead. + The `fetch_depth` setting cannot be higher than `online_delete` if both are specified. If `fetch_depth` is set higher, the server treats it as equal to `online_delete` instead. - The following diagram shows how `fetch_depth` works: + The following diagram shows how `fetch_depth` works: - [{% inline-svg file="/docs/img/fetch_depth.svg" /%}](/docs/img/fetch_depth.svg "Ledger versions older than fetch_depth are not served to peers") + [{% inline-svg file="/docs/img/fetch_depth.svg" /%}](/docs/img/fetch_depth.svg 'Ledger versions older than fetch_depth are not served to peers') For estimates of how much disk space is required to store different amounts of history, see [Capacity Planning](../../installation/capacity-planning.md#disk-space). @@ -107,7 +104,6 @@ You can use advisory deletion for other reasons. For example, you may want to ma The `can_delete` API method can enable or disable automatic deletion, in general or up to a specific ledger version, as long as `advisory_delete` is enabled in the config file. These settings changes persist even if you restart the `rippled` server, unless you disable `advisory_delete` in the config file before restarting. - ## How It Works Online deletion works by creating two databases: at any given time, there is an "old" database, which is read-only, and a "current" database, which is writable. The `rippled` server can read objects from either database, so current ledger versions may contain objects in either one. If an object in a ledger does not change from ledger version to ledger version, only one copy of that object remains in the database, so the server does not store redundant copies of that object. When a new ledger version modifies an object, the server stores the modified object in the "new" database, while the previous version of the object (which is still used by previous ledger versions) remains in the "old" database. @@ -119,19 +115,19 @@ When it comes time for online deletion, the server first walks through the oldes ## See Also - **Concepts:** - - [Ledgers](../../../concepts/ledgers/index.md) - - [Consensus](../../../concepts/consensus-protocol/index.md) + - [Ledgers](../../../concepts/ledgers/index.md) + - [Consensus](../../../concepts/consensus-protocol/index.md) - **Tutorials:** - - [Capacity Planning](../../installation/capacity-planning.md) - - [Configure `rippled`](../index.md) - - [Configure Online Deletion](configure-online-deletion.md) - - [Configure Advisory Deletion](configure-advisory-deletion.md) - - [Configure Full History](configure-full-history.md) + - [Capacity Planning](../../installation/capacity-planning.md) + - [Configure `rippled`](../index.md) + - [Configure Online Deletion](configure-online-deletion.md) + - [Configure Advisory Deletion](configure-advisory-deletion.md) + - [Configure Full History](configure-full-history.md) - **References:** - - [ledger method][] - - [server_info method][] - - [ledger_request method][] - - [can_delete method][] - - [ledger_cleaner method][] + - [ledger method][] + - [server_info method][] + - [ledger_request method][] + - [can_delete method][] + - [ledger_cleaner method][] {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/infrastructure/configuration/enable-public-signing.md b/docs/infrastructure/configuration/enable-public-signing.md index 0ffd8244c0..e24f86fe79 100644 --- a/docs/infrastructure/configuration/enable-public-signing.md +++ b/docs/infrastructure/configuration/enable-public-signing.md @@ -2,11 +2,12 @@ html: enable-public-signing.html parent: configure-rippled.html seo: - description: Allow others to use your server to sign transactions. (Not recommended) + description: Allow others to use your server to sign transactions. (Not recommended) labels: - Core Server - Security --- + # Enable Public Signing By default, the signing methods for [`rippled`](../../concepts/networks-and-servers/index.md) are limited to [administrative connections](../../references/http-websocket-apis/admin-api-methods/index.md). If you want to allow signing methods to be used as public API methods (like with versions of `rippled` before v1.1.0), you can enable it with a configuration change. @@ -25,37 +26,37 @@ To enable public signing, perform the following steps: 1. Edit your `rippled`'s config file. - ``` - vim /etc/opt/ripple/rippled.cfg - ``` + ``` + vim /etc/opt/ripple/rippled.cfg + ``` - {% partial file="/docs/_snippets/conf-file-location.md" /%} + {% partial file="/docs/_snippets/conf-file-location.md" /%} 2. Add the following stanza to your config file, and save the changes: - ``` - [signing_support] - true - ``` + ``` + [signing_support] + true + ``` 3. Restart your `rippled` server: - ``` - systemctl restart rippled - ``` + ``` + systemctl restart rippled + ``` ## See Also - **Concepts:** - - [Transactions](../../concepts/transactions/index.md) - - [Cryptographic Keys](../../concepts/accounts/cryptographic-keys.md) + - [Transactions](../../concepts/transactions/index.md) + - [Cryptographic Keys](../../concepts/accounts/cryptographic-keys.md) - **Tutorials:** - - [Set Up Secure Signing](../../concepts/transactions/secure-signing.md) - - [Get Started Using HTTP / WebSocket APIs](../../tutorials/http-websocket-apis/build-apps/get-started.md) - - [Get Started Using JavaScript](../../tutorials/javascript/build-apps/get-started.md) + - [Set Up Secure Signing](../../concepts/transactions/secure-signing.md) + - [Get Started Using HTTP / WebSocket APIs](../../tutorials/http-websocket-apis/build-apps/get-started.md) + - [Get Started Using JavaScript](../../tutorials/javascript/build-apps/get-started.md) - **References:** - - [sign method][] - - [sign_for method][] - - [submit method][] + - [sign method][] + - [sign_for method][] + - [submit method][] {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/infrastructure/configuration/index.md b/docs/infrastructure/configuration/index.md index 10b4253789..c3e99c12c9 100644 --- a/docs/infrastructure/configuration/index.md +++ b/docs/infrastructure/configuration/index.md @@ -4,11 +4,11 @@ parent: infrastructure.html metadata: indexPage: true seo: - description: Customize the configuration of an XRP Ledger server. + description: Customize the configuration of an XRP Ledger server. --- + # Configuration Customize the configuration of an XRP Ledger server. - {% child-pages /%} diff --git a/docs/infrastructure/configuration/peering/cluster-rippled-servers.md b/docs/infrastructure/configuration/peering/cluster-rippled-servers.md index 75c9e698c4..b7d574565f 100644 --- a/docs/infrastructure/configuration/peering/cluster-rippled-servers.md +++ b/docs/infrastructure/configuration/peering/cluster-rippled-servers.md @@ -2,10 +2,11 @@ html: cluster-rippled-servers.html parent: configure-peering.html seo: - description: Set up a group of servers that share work for higher efficiency. + description: Set up a group of servers that share work for higher efficiency. labels: - Core Server --- + # Cluster rippled Servers If you run multiple [`rippled` servers](../../../concepts/networks-and-servers/index.md) in the same data center, you can configure them in a [cluster](../../../concepts/networks-and-servers/clustering.md) to maximize efficiency. To configure clustering: @@ -14,101 +15,100 @@ If you run multiple [`rippled` servers](../../../concepts/networks-and-servers/i 2. For each of your servers, generate a unique seed using the [validation_create method][]. - For example, using the commandline interface: + For example, using the commandline interface: - ``` - $ rippled validation_create + ``` + $ rippled validation_create - Loading: "/etc/rippled.cfg" - Connecting to 127.0.0.1:5005 - { - "result" : { - "status" : "success", - "validation_key" : "FAWN JAVA JADE HEAL VARY HER REEL SHAW GAIL ARCH BEN IRMA", - "validation_public_key" : "n9Mxf6qD4J55XeLSCEpqaePW4GjoCR5U1ZeGZGJUCNe3bQa4yQbG", - "validation_seed" : "ssZkdwURFMBXenJPbrpE14b6noJSu" - } - } - ``` + Loading: "/etc/rippled.cfg" + Connecting to 127.0.0.1:5005 + { + "result" : { + "status" : "success", + "validation_key" : "FAWN JAVA JADE HEAL VARY HER REEL SHAW GAIL ARCH BEN IRMA", + "validation_public_key" : "n9Mxf6qD4J55XeLSCEpqaePW4GjoCR5U1ZeGZGJUCNe3bQa4yQbG", + "validation_seed" : "ssZkdwURFMBXenJPbrpE14b6noJSu" + } + } + ``` - Save the `validation_seed` and `validation_public_key` parameters from each response somewhere secure. + Save the `validation_seed` and `validation_public_key` parameters from each response somewhere secure. 3. On each server, edit the [config file](https://github.com/XRPLF/rippled/blob/master/cfg/rippled-example.cfg), modifying the following sections: + 1. In the `[ips_fixed]` section, list the IP address and port of each _other_ member of the cluster. For each of those servers, the port number should match the `protocol = peer` port (usually 51235) from that server's `rippled.cfg`. For example: - 1. In the `[ips_fixed]` section, list the IP address and port of each _other_ member of the cluster. For each of those servers, the port number should match the `protocol = peer` port (usually 51235) from that server's `rippled.cfg`. For example: + ``` + [ips_fixed] + 192.168.0.1 51235 + 192.168.0.2 51235 + ``` - ``` - [ips_fixed] - 192.168.0.1 51235 - 192.168.0.2 51235 - ``` + This defines specific peer servers to which this server should always attempt to maintain a direct peer-to-peer connection. - This defines specific peer servers to which this server should always attempt to maintain a direct peer-to-peer connection. + {% admonition type="info" name="Note" %}If you omit the port number, the server uses port 2459, the IANA-assigned port for the XRP Ledger protocol.{% /admonition %} - {% admonition type="info" name="Note" %}If you omit the port number, the server uses port 2459, the IANA-assigned port for the XRP Ledger protocol.{% /admonition %} + 2. In the `[node_seed]` section, set the server's node seed to one of the `validation_seed` values you generated using the [validation_create method][] in step 2. Each server must use a unique node seed. For example: - 2. In the `[node_seed]` section, set the server's node seed to one of the `validation_seed` values you generated using the [validation_create method][] in step 2. Each server must use a unique node seed. For example: + ``` + [node_seed] + ssZkdwURFMBXenJPbrpE14b6noJSu + ``` - ``` - [node_seed] - ssZkdwURFMBXenJPbrpE14b6noJSu - ``` + This defines the key pair the server uses to sign peer-to-peer communications, excluding validation messages. - This defines the key pair the server uses to sign peer-to-peer communications, excluding validation messages. + 3. In the `[cluster_nodes]` section, set the members of the server's cluster, identified by their `validation_public_key` values. Each server should list the public keys of all _other_ members of the cluster here. Optionally, add a custom name for each server. For example: - 3. In the `[cluster_nodes]` section, set the members of the server's cluster, identified by their `validation_public_key` values. Each server should list the public keys of all _other_ members of the cluster here. Optionally, add a custom name for each server. For example: + ``` + [cluster_nodes] + n9McNsnzzXQPbg96PEUrrQ6z3wrvgtU4M7c97tncMpSoDzaQvPar keynes + n94UE1ukbq6pfZY9j54sv2A1UrEeHZXLbns3xK5CzU9NbNREytaa friedman + ``` - ``` - [cluster_nodes] - n9McNsnzzXQPbg96PEUrrQ6z3wrvgtU4M7c97tncMpSoDzaQvPar keynes - n94UE1ukbq6pfZY9j54sv2A1UrEeHZXLbns3xK5CzU9NbNREytaa friedman - ``` - - This defines the key pairs the server uses to recognize members of its cluster. + This defines the key pairs the server uses to recognize members of its cluster. 4. After saving the config file, restart `rippled` on each server. - ``` - # systemctl restart rippled - ``` + ``` + # systemctl restart rippled + ``` 5. To confirm that each server is now a member of the cluster, use the [peers method][]. The `cluster` field should list the public keys and (if configured) the custom names for each server. - For example, using the commandline interface: + For example, using the commandline interface: - ``` - $ rippled peers + ``` + $ rippled peers - Loading: "/etc/rippled.cfg" - Connecting to 127.0.0.1:5005 - { - "result" : { - "cluster" : { - "n9McNsnzzXQPbg96PEUrrQ6z3wrvgtU4M7c97tncMpSoDzaQvPar": { - "tag": "keynes", - "age": 1 - }, - "n94UE1ukbq6pfZY9j54sv2A1UrEeHZXLbns3xK5CzU9NbNREytaa": { - "tag": "friedman", - "age": 1 - } - }, - "peers" : [ - ... (omitted) ... - ], - "status" : "success" - } - } - ``` + Loading: "/etc/rippled.cfg" + Connecting to 127.0.0.1:5005 + { + "result" : { + "cluster" : { + "n9McNsnzzXQPbg96PEUrrQ6z3wrvgtU4M7c97tncMpSoDzaQvPar": { + "tag": "keynes", + "age": 1 + }, + "n94UE1ukbq6pfZY9j54sv2A1UrEeHZXLbns3xK5CzU9NbNREytaa": { + "tag": "friedman", + "age": 1 + } + }, + "peers" : [ + ... (omitted) ... + ], + "status" : "success" + } + } + ``` ## See Also - **Concepts:** - - [Peer Protocol](../../../concepts/networks-and-servers/peer-protocol.md) + - [Peer Protocol](../../../concepts/networks-and-servers/peer-protocol.md) - **Tutorials:** - - [Install rippled](../../installation/index.md) + - [Install rippled](../../installation/index.md) - **References:** - - [validation_create method][] - - [peers method][] + - [validation_create method][] + - [peers method][] {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/infrastructure/configuration/peering/configure-a-private-server.md b/docs/infrastructure/configuration/peering/configure-a-private-server.md index f941490091..209634fc1b 100644 --- a/docs/infrastructure/configuration/peering/configure-a-private-server.md +++ b/docs/infrastructure/configuration/peering/configure-a-private-server.md @@ -2,11 +2,12 @@ html: configure-a-private-server.html parent: configure-peering.html seo: - description: Set up a server to connect only to specific, trusted peers. + description: Set up a server to connect only to specific, trusted peers. labels: - Core Server - Security --- + # Configure a Private Server A [private server](../../../concepts/networks-and-servers/peer-protocol.md#private-peers) is a `rippled` server that connects to the network only through specific, trusted peers instead of connecting directly to discovered peers in the open peer-to-peer network. This kind of configuration is an optional precaution most commonly recommended for [validators](../server-modes/run-rippled-as-a-validator.md), but it can be useful for other specific purposes. @@ -17,8 +18,8 @@ To use a private server, you must meet the following requirements: - You must have [`rippled` installed](../../installation/index.md) and updated to the latest version, but not running yet. - You must decide whether to connect through **proxies** you run yourself, or through **public hubs**. For a comparison of these options, see [Pros and Cons of Peering Configurations](../../../concepts/networks-and-servers/peer-protocol.md#pros-and-cons-of-peering-configurations). - - If you are using proxies, you must have additional machines with `rippled` installed and running to use as the proxies. These servers must be able to connect to the outside network and to your private server. - - For either configuration, you must know the IP addresses and ports of the peers you intend to connect to. + - If you are using proxies, you must have additional machines with `rippled` installed and running to use as the proxies. These servers must be able to connect to the outside network and to your private server. + - For either configuration, you must know the IP addresses and ports of the peers you intend to connect to. ## Steps @@ -26,64 +27,63 @@ To set up a specific server as a private peer, complete the following steps: 1. Edit your `rippled`'s config file. - ``` - vim /etc/opt/ripple/rippled.cfg - ``` + ``` + vim /etc/opt/ripple/rippled.cfg + ``` - {% partial file="/docs/_snippets/conf-file-location.md" /%} + {% partial file="/docs/_snippets/conf-file-location.md" /%} 2. Enable private peering. - Add or uncomment the following stanza in your config file: + Add or uncomment the following stanza in your config file: - ``` - [peer_private] - 1 - ``` + ``` + [peer_private] + 1 + ``` 3. Add fixed peers. - Add or uncomment an `[ips_fixed]` stanza in your config file. Each line in this stanza should be the hostname or IP address of a peer to connect to, followed by a space and the port where this peer accepts peer protocol connections. + Add or uncomment an `[ips_fixed]` stanza in your config file. Each line in this stanza should be the hostname or IP address of a peer to connect to, followed by a space and the port where this peer accepts peer protocol connections. - For example, to connect using **public hubs**, you could use the following stanza: + For example, to connect using **public hubs**, you could use the following stanza: - ``` - [ips_fixed] - r.ripple.com 51235 - ``` + ``` + [ips_fixed] + r.ripple.com 51235 + ``` - If your server connects using **proxies**, the IP addresses and ports should match the configurations of the `rippled` servers you are using as proxies. For each of those servers, the port number should match the `protocol = peer` port in that server's config file (usually 51235). For example, your configuration might look like this: + If your server connects using **proxies**, the IP addresses and ports should match the configurations of the `rippled` servers you are using as proxies. For each of those servers, the port number should match the `protocol = peer` port in that server's config file (usually 51235). For example, your configuration might look like this: - ``` - [ips_fixed] - 192.168.0.1 51235 - 192.168.0.2 51235 - ``` + ``` + [ips_fixed] + 192.168.0.1 51235 + 192.168.0.2 51235 + ``` - {% admonition type="info" name="Note" %}If you omit the port number, the server uses port 2459, the IANA-assigned port for the XRP Ledger protocol.{% /admonition %} + {% admonition type="info" name="Note" %}If you omit the port number, the server uses port 2459, the IANA-assigned port for the XRP Ledger protocol.{% /admonition %} 4. If using proxies, cluster them with your private peer and each other. - If you are using public hubs, skip this step. + If you are using public hubs, skip this step. - If you are using proxies, [configure the proxies as a cluster](cluster-rippled-servers.md) that includes your private peer. Each member of the cluster should have an `[ips_fixed]` stanza that lists each _other_ member of the cluster. However, **only the private server** should have a `[peer_private]` stanza. + If you are using proxies, [configure the proxies as a cluster](cluster-rippled-servers.md) that includes your private peer. Each member of the cluster should have an `[ips_fixed]` stanza that lists each _other_ member of the cluster. However, **only the private server** should have a `[peer_private]` stanza. - Restart `rippled` on the proxies one-by-one. On each proxy server: + Restart `rippled` on the proxies one-by-one. On each proxy server: - ``` - sudo service systemctl restart rippled - ``` + ``` + sudo service systemctl restart rippled + ``` 5. Start `rippled` on the private server. - ``` - sudo service systemctl start rippled - ``` + ``` + sudo service systemctl start rippled + ``` 6. Use the [peers method][] to confirm that your private server is connected _only_ to its peers. - The `peers` array in the response should not contain any objects whose `address` is not one of your configured peers. If this is not the case, double-check your config file and restart the private server. - + The `peers` array in the response should not contain any objects whose `address` is not one of your configured peers. If this is not the case, double-check your config file and restart the private server. ## Next Steps @@ -94,15 +94,15 @@ Be sure the firewall **does not block** outgoing HTTP connections on port 80. Th ## See Also - **Concepts:** - - [Peer Protocol](../../../concepts/networks-and-servers/peer-protocol.md) - - [Consensus](../../../concepts/consensus-protocol/index.md) - - [Parallel Networks](../../../concepts/networks-and-servers/parallel-networks.md) + - [Peer Protocol](../../../concepts/networks-and-servers/peer-protocol.md) + - [Consensus](../../../concepts/consensus-protocol/index.md) + - [Parallel Networks](../../../concepts/networks-and-servers/parallel-networks.md) - **Tutorials:** - - [Configure the Peer Crawler](configure-the-peer-crawler.md) + - [Configure the Peer Crawler](configure-the-peer-crawler.md) - **References:** - - [peers method][] - - [connect method][] - - [fetch_info method][] - - [Peer Crawler](../../../references/http-websocket-apis/peer-port-methods/peer-crawler.md) + - [peers method][] + - [connect method][] + - [fetch_info method][] + - [Peer Crawler](../../../references/http-websocket-apis/peer-port-methods/peer-crawler.md) {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/infrastructure/configuration/peering/configure-the-peer-crawler.md b/docs/infrastructure/configuration/peering/configure-the-peer-crawler.md index 286bc8dcc8..d66a6c9684 100644 --- a/docs/infrastructure/configuration/peering/configure-the-peer-crawler.md +++ b/docs/infrastructure/configuration/peering/configure-the-peer-crawler.md @@ -2,11 +2,12 @@ html: configure-the-peer-crawler.html parent: configure-peering.html seo: - description: Configure how much information your rippled server reports publicly about its status and peers. + description: Configure how much information your rippled server reports publicly about its status and peers. labels: - Core Server - Security --- + # Configure the Peer Crawler By default, [`rippled` servers](../../../concepts/networks-and-servers/index.md) provide statistics publicly to anyone who asks using the [peer crawler API](../../../references/http-websocket-apis/peer-port-methods/peer-crawler.md), to make it easier to track the health and topology of [the XRP Ledger's peer-to-peer network](../../../concepts/networks-and-servers/peer-protocol.md). You can configure your server to provide more or less information, or to reject peer crawler requests entirely. @@ -22,30 +23,29 @@ To configure how much information your server provides in response to peer crawl 1. Edit your `rippled`'s config file. - ``` - vim /etc/opt/ripple/rippled.cfg - ``` + ``` + vim /etc/opt/ripple/rippled.cfg + ``` - {% partial file="/docs/_snippets/conf-file-location.md" /%} + {% partial file="/docs/_snippets/conf-file-location.md" /%} 2. Add or update the `[crawl]` stanza in your config file, and save the changes: - ``` - [crawl] - overlay = 1 - server = 1 - counts = 0 - unl = 1 - ``` + ``` + [crawl] + overlay = 1 + server = 1 + counts = 0 + unl = 1 + ``` - The fields in this stanza control which fields the server returns in the [peer crawler response](../../../references/http-websocket-apis/peer-port-methods/peer-crawler.md#response-format). The names of the config fields match the fields of the API response. A setting with a value of `1` means to include the field in the response. A value of `0` means to omit that field from the response. This example shows the default values for each setting. + The fields in this stanza control which fields the server returns in the [peer crawler response](../../../references/http-websocket-apis/peer-port-methods/peer-crawler.md#response-format). The names of the config fields match the fields of the API response. A setting with a value of `1` means to include the field in the response. A value of `0` means to omit that field from the response. This example shows the default values for each setting. 3. After saving the changes to the config file, restart your `rippled` server to apply the updated configuration: - ``` - systemctl restart rippled - ``` - + ``` + systemctl restart rippled + ``` ## Disable the Peer Crawler @@ -53,37 +53,36 @@ To disable the peer crawler API on your server, so it does not respond to peer c 1. Edit your `rippled`'s config file. - ``` - vim /etc/opt/ripple/rippled.cfg - ``` + ``` + vim /etc/opt/ripple/rippled.cfg + ``` - {% partial file="/docs/_snippets/conf-file-location.md" /%} + {% partial file="/docs/_snippets/conf-file-location.md" /%} 2. Add or update the `[crawl]` stanza in your config file, and save the changes: - ``` - [crawl] - 0 - ``` + ``` + [crawl] + 0 + ``` - Remove or comment out all other contents of the crawl stanza. + Remove or comment out all other contents of the crawl stanza. 3. After saving the changes to the config file, restart your `rippled` server to apply the updated configuration: - ``` - systemctl restart rippled - ``` - + ``` + systemctl restart rippled + ``` ## See Also - **Concepts:** - - [Peer Protocol](../../../concepts/networks-and-servers/peer-protocol.md) + - [Peer Protocol](../../../concepts/networks-and-servers/peer-protocol.md) - **Tutorials:** - - [Manage the rippled Server](../../installation/install-rippled-on-ubuntu.md) + - [Manage the rippled Server](../../installation/install-rippled-on-ubuntu.md) - **References:** - - [server_info method][] - - [peers method][] - - [Peer Crawler](../../../references/http-websocket-apis/peer-port-methods/peer-crawler.md) + - [server_info method][] + - [peers method][] + - [Peer Crawler](../../../references/http-websocket-apis/peer-port-methods/peer-crawler.md) {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/infrastructure/configuration/peering/enable-link-compression.md b/docs/infrastructure/configuration/peering/enable-link-compression.md index acef0bb79e..d359fce4fe 100644 --- a/docs/infrastructure/configuration/peering/enable-link-compression.md +++ b/docs/infrastructure/configuration/peering/enable-link-compression.md @@ -2,10 +2,11 @@ html: enable-link-compression.html parent: configure-peering.html seo: - description: Save bandwidth by compressing peer-to-peer communications. + description: Save bandwidth by compressing peer-to-peer communications. labels: - Core Server --- + # Enable Link Compression The `rippled` server can save bandwidth by compressing its [peer-to-peer communications](../../../concepts/networks-and-servers/peer-protocol.md), at a cost of greater CPU usage. If you enable link compression, the server automatically compresses communications with peer servers that also have link compression enabled. diff --git a/docs/infrastructure/configuration/peering/forward-ports-for-peering.md b/docs/infrastructure/configuration/peering/forward-ports-for-peering.md index d7284f0462..9ff90d1802 100644 --- a/docs/infrastructure/configuration/peering/forward-ports-for-peering.md +++ b/docs/infrastructure/configuration/peering/forward-ports-for-peering.md @@ -2,10 +2,11 @@ html: forward-ports-for-peering.html parent: configure-peering.html seo: - description: Configure your firewall to allow incoming peers to your rippled server. + description: Configure your firewall to allow incoming peers to your rippled server. labels: - Core Server --- + # Forward Ports for Peering Servers in the XRP Ledger peer-to-peer network communicate over the [peer protocol](../../../concepts/networks-and-servers/peer-protocol.md). For the best combination of security and connectivity to the rest of the network, you should use a firewall to protect your server from most ports, but open or forward the peer protocol port. @@ -64,19 +65,18 @@ For other software and hardware firewalls, see the manufacturer's official docum If you are using a hosting service with a virtual firewall (for example, [AWS Security Groups](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html)), you do not need to use `firewalld`, but you still need to allow inbound traffic from the open internet on the peer port. Make sure you apply the relevant rules to your host or virtual machine. - ## See Also - **Concepts:** - - [Peer Protocol](../../../concepts/networks-and-servers/peer-protocol.md) - - [The `rippled` Server](../../../concepts/networks-and-servers/index.md) + - [Peer Protocol](../../../concepts/networks-and-servers/peer-protocol.md) + - [The `rippled` Server](../../../concepts/networks-and-servers/index.md) - **Tutorials:** - - [Capacity Planning](../../installation/capacity-planning.md) - - [Troubleshoot the `rippled` Server](../../troubleshooting/index.md) + - [Capacity Planning](../../installation/capacity-planning.md) + - [Troubleshoot the `rippled` Server](../../troubleshooting/index.md) - **References:** - - [connect method][] - - [peers method][] - - [print method][] - - [server_info method][] + - [connect method][] + - [peers method][] + - [print method][] + - [server_info method][] {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/infrastructure/configuration/peering/index.md b/docs/infrastructure/configuration/peering/index.md index d814f71036..4c627506aa 100644 --- a/docs/infrastructure/configuration/peering/index.md +++ b/docs/infrastructure/configuration/peering/index.md @@ -5,15 +5,15 @@ parent: configure-rippled.html metadata: indexPage: true seo: - description: Configure how your server connects to the peer-to-peer network. + description: Configure how your server connects to the peer-to-peer network. labels: - Core Server --- + # Configure Peering The XRP Ledger's peer-to-peer protocol automatically manages peer connections in most cases. In some cases, you may want to manually adjust which peers your server connects to, to maximize your server's availability and connectivity with the rest of the network. If you run multiple servers in the same datacenter, you may want [to cluster them](cluster-rippled-servers.md) to improve efficiency. You can use reserved peer slots for servers you don't run but want to stay connected to, such as important hubs in the topology of the peer-to-peer network. For other peers, the server can automatically find peers and manage its connections, although you may occasionally want to intervene to block a peer that's behaving undesirably. - {% child-pages /%} diff --git a/docs/infrastructure/configuration/peering/manually-connect-to-a-specific-peer.md b/docs/infrastructure/configuration/peering/manually-connect-to-a-specific-peer.md index 82b41c4f5c..ffcf78a15e 100644 --- a/docs/infrastructure/configuration/peering/manually-connect-to-a-specific-peer.md +++ b/docs/infrastructure/configuration/peering/manually-connect-to-a-specific-peer.md @@ -2,17 +2,17 @@ html: manually-connect-to-a-specific-peer.html parent: configure-peering.html seo: - description: Connect your rippled server to a specific peer. + description: Connect your rippled server to a specific peer. labels: - Core Server --- + # Manually Connect to a Specific Peer Use these steps to manually connect your server to a specific [peer](../../../concepts/networks-and-servers/peer-protocol.md) in the XRP Ledger network. {% admonition type="success" name="Tip" %}If you want to make sure your server automatically connects to this server on startup and remains connected later, you may want to configure a [peer reservation](use-a-peer-reservation.md) for that peer.{% /admonition %} - ## Prerequisites - You must know the IP address of the peer you want to connect to. @@ -27,6 +27,7 @@ To connect, use the [connect method][]. For example: {% tabs %} {% tab label="WebSocket" %} + ``` { "command": "connect", @@ -34,9 +35,11 @@ To connect, use the [connect method][]. For example: "port": 51235 } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ``` { "method": "connect", @@ -48,29 +51,31 @@ To connect, use the [connect method][]. For example: ] } ``` + {% /tab %} {% tab label="Commandline" %} + ``` rippled connect 169.54.2.151 51235 ``` + {% /tab %} {% /tabs %} - ## See Also - **Concepts:** - - [Peer Protocol](../../../concepts/networks-and-servers/peer-protocol.md) - - [The `rippled` Server](../../../concepts/networks-and-servers/index.md) + - [Peer Protocol](../../../concepts/networks-and-servers/peer-protocol.md) + - [The `rippled` Server](../../../concepts/networks-and-servers/index.md) - **Tutorials:** - - [Capacity Planning](../../installation/capacity-planning.md) - - [Troubleshoot the `rippled` Server](../../troubleshooting/index.md) + - [Capacity Planning](../../installation/capacity-planning.md) + - [Troubleshoot the `rippled` Server](../../troubleshooting/index.md) - **References:** - - [connect method][] - - [peers method][] - - [print method][] - - [server_info method][] + - [connect method][] + - [peers method][] + - [print method][] + - [server_info method][] {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/infrastructure/configuration/peering/set-max-number-of-peers.md b/docs/infrastructure/configuration/peering/set-max-number-of-peers.md index 0fab9000a8..0e75137345 100644 --- a/docs/infrastructure/configuration/peering/set-max-number-of-peers.md +++ b/docs/infrastructure/configuration/peering/set-max-number-of-peers.md @@ -2,10 +2,11 @@ html: set-max-number-of-peers.html parent: configure-peering.html seo: - description: Set the maximum number of peers your rippled server connects to. + description: Set the maximum number of peers your rippled server connects to. labels: - Core Server --- + # Set Maximum Number of Peers The `rippled` server has a configurable soft maximum number of [peers](../../../concepts/networks-and-servers/peer-protocol.md) to connect to. The default maximum number of peers is **21**. @@ -16,44 +17,43 @@ To change the maximum number of peers your server allows, complete the following 1. Edit your `rippled`'s config file. - ``` - $ vim /etc/opt/ripple/rippled.cfg - ``` + ``` + $ vim /etc/opt/ripple/rippled.cfg + ``` - {% partial file="/docs/_snippets/conf-file-location.md" /%} + {% partial file="/docs/_snippets/conf-file-location.md" /%} 2. In the config file, uncomment and edit the `[peers_max]` stanza, or add one if you don't have one already: - ``` - [peers_max] - 30 - ``` + ``` + [peers_max] + 30 + ``` - The only content of the stanza should be an integer indicating the total number of peers to allow. By default, the server attempts to maintain a ratio of about 85% incoming and 15% outgoing peers, but with a minimum of 10 outgoing peers, so any value less than 68 won't increase the number of outgoing peer connections your server makes. + The only content of the stanza should be an integer indicating the total number of peers to allow. By default, the server attempts to maintain a ratio of about 85% incoming and 15% outgoing peers, but with a minimum of 10 outgoing peers, so any value less than 68 won't increase the number of outgoing peer connections your server makes. - If the `[peers_max]` value is less than 10, the server still allows a hardcoded minimum of 10 outgoing peers so that it can maintain connectivity with the network. To block all outgoing peer connections, [configure the server as a private peer](../server-modes/run-rippled-as-a-validator.md#connect-using-proxies) instead. + If the `[peers_max]` value is less than 10, the server still allows a hardcoded minimum of 10 outgoing peers so that it can maintain connectivity with the network. To block all outgoing peer connections, [configure the server as a private peer](../server-modes/run-rippled-as-a-validator.md#connect-using-proxies) instead. - {% admonition type="warning" name="Caution" %}The more peer servers you are connected to, the more network bandwidth your `rippled` server uses. You should only configure large numbers of peer servers if your `rippled` server has a good network connection and you can afford the costs you may incur for the bandwidth it uses.{% /admonition %} + {% admonition type="warning" name="Caution" %}The more peer servers you are connected to, the more network bandwidth your `rippled` server uses. You should only configure large numbers of peer servers if your `rippled` server has a good network connection and you can afford the costs you may incur for the bandwidth it uses.{% /admonition %} 3. Restart the `rippled` server. - ``` - $ sudo systemctl restart rippled.service - ``` - + ``` + $ sudo systemctl restart rippled.service + ``` ## See Also - **Concepts:** - - [Peer Protocol](../../../concepts/networks-and-servers/peer-protocol.md) - - [The `rippled` Server](../../../concepts/networks-and-servers/index.md) + - [Peer Protocol](../../../concepts/networks-and-servers/peer-protocol.md) + - [The `rippled` Server](../../../concepts/networks-and-servers/index.md) - **Tutorials:** - - [Capacity Planning](../../installation/capacity-planning.md) - - [Troubleshoot the `rippled` Server](../../troubleshooting/index.md) + - [Capacity Planning](../../installation/capacity-planning.md) + - [Troubleshoot the `rippled` Server](../../troubleshooting/index.md) - **References:** - - [connect method][] - - [peers method][] - - [print method][] - - [server_info method][] + - [connect method][] + - [peers method][] + - [print method][] + - [server_info method][] {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/infrastructure/configuration/peering/use-a-peer-reservation.md b/docs/infrastructure/configuration/peering/use-a-peer-reservation.md index 2d80202527..fe507e6352 100644 --- a/docs/infrastructure/configuration/peering/use-a-peer-reservation.md +++ b/docs/infrastructure/configuration/peering/use-a-peer-reservation.md @@ -2,10 +2,11 @@ html: use-a-peer-reservation.html parent: configure-peering.html seo: - description: Set up a more reliable connection to a specific peer using a peer reservation. + description: Set up a more reliable connection to a specific peer using a peer reservation. labels: - Core Server --- + # Use a Peer Reservation A [peer reservation][] is a setting that makes a `rippled` server always accept connections from a peer matching the reservation. This page describes how to use peer reservations to keep a consistent peer-to-peer connection between two servers, with the cooperation of the administrators of both servers. @@ -40,49 +41,49 @@ If you have already configured your server with a permanent node key pair value, 1. Generate a new, random key pair using the [validation_create method][]. (Omit the `secret` value.) - For example: + For example: - ``` - rippled validation_create + ``` + rippled validation_create - Loading: "/etc/rippled.cfg" - Connecting to 127.0.0.1:5005 - { - "result" : { - "status" : "success", - "validation_key" : "FAWN JAVA JADE HEAL VARY HER REEL SHAW GAIL ARCH BEN IRMA", - "validation_public_key" : "n9Mxf6qD4J55XeLSCEpqaePW4GjoCR5U1ZeGZGJUCNe3bQa4yQbG", - "validation_seed" : "ssZkdwURFMBXenJPbrpE14b6noJSu" - } - } - ``` + Loading: "/etc/rippled.cfg" + Connecting to 127.0.0.1:5005 + { + "result" : { + "status" : "success", + "validation_key" : "FAWN JAVA JADE HEAL VARY HER REEL SHAW GAIL ARCH BEN IRMA", + "validation_public_key" : "n9Mxf6qD4J55XeLSCEpqaePW4GjoCR5U1ZeGZGJUCNe3bQa4yQbG", + "validation_seed" : "ssZkdwURFMBXenJPbrpE14b6noJSu" + } + } + ``` - Save the `validation_seed` (your node seed value) and the `validation_public_key` value (your node public key ) + Save the `validation_seed` (your node seed value) and the `validation_public_key` value (your node public key ) 2. Edit your `rippled`'s config file. - ``` - vim /etc/opt/ripple/rippled.cfg - ``` + ``` + vim /etc/opt/ripple/rippled.cfg + ``` - {% partial file="/docs/_snippets/conf-file-location.md" /%} + {% partial file="/docs/_snippets/conf-file-location.md" /%} 3. Add a `[node_seed]` stanza using the `validation_seed` value you generated earlier. - For example: + For example: - ``` - [node_seed] - ssZkdwURFMBXenJPbrpE14b6noJSu - ``` + ``` + [node_seed] + ssZkdwURFMBXenJPbrpE14b6noJSu + ``` - {% admonition type="danger" name="Warning" %}All servers should have unique `[node_seed]` values. If you copy your config file to another server, be sure to remove or change the `[node_seed]` value. Keep your `[node_seed]` secret; if a malicious actor gains access to this value, they could use it to impersonate your server in XRP Ledger peer-to-peer communications.{% /admonition %} + {% admonition type="danger" name="Warning" %}All servers should have unique `[node_seed]` values. If you copy your config file to another server, be sure to remove or change the `[node_seed]` value. Keep your `[node_seed]` secret; if a malicious actor gains access to this value, they could use it to impersonate your server in XRP Ledger peer-to-peer communications.{% /admonition %} 4. Restart your `rippled` server: - ``` - systemctl restart rippled - ``` + ``` + systemctl restart rippled + ``` ### 2. Communicate the stock server's node public key @@ -122,6 +123,7 @@ Use the [connect method][] to connect your server to the hub server. For example {% tabs %} {% tab label="WebSocket" %} + ``` { "command": "connect", @@ -129,9 +131,11 @@ Use the [connect method][] to connect your server to the hub server. For example "port": 51235 } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ``` { "method": "connect", @@ -143,19 +147,21 @@ Use the [connect method][] to connect your server to the hub server. For example ] } ``` + {% /tab %} {% tab label="Commandline" %} + ``` rippled connect 169.54.2.151 51235 ``` + {% /tab %} {% /tabs %} If the hub server's administrator has set up the peer reservation as described in the previous steps, this should automatically connect and remain connected as long as possible. - ## Next Steps As a server administrator, you can manage the reservations your server has for other peers. (It is not possible to check which other servers have reservations for yours.) You can: @@ -167,23 +173,22 @@ As a server administrator, you can manage the reservations your server has for o {% admonition type="success" name="Tip" %}Although there is no API method to immediately disconnect from an unwanted peer, you can use a software firewall such as `firewalld` to block an unwanted peer from connecting to your server. For examples, see the community-contributed [rbh script](https://github.com/gnanderson/rbh). {% /admonition %} - ## See Also - **Concepts:** - - [Peer Protocol](../../../concepts/networks-and-servers/peer-protocol.md) - - [Consensus](../../../concepts/consensus-protocol/index.md) - - [Parallel Networks](../../../concepts/networks-and-servers/parallel-networks.md) + - [Peer Protocol](../../../concepts/networks-and-servers/peer-protocol.md) + - [Consensus](../../../concepts/consensus-protocol/index.md) + - [Parallel Networks](../../../concepts/networks-and-servers/parallel-networks.md) - **Tutorials:** - - [Capacity Planning](../../installation/capacity-planning.md) - - [Troubleshooting `rippled`](../../troubleshooting/index.md) + - [Capacity Planning](../../installation/capacity-planning.md) + - [Troubleshooting `rippled`](../../troubleshooting/index.md) - **References:** - - [peers method][] - - [peer_reservations_add method][] - - [peer_reservations_del method][] - - [peer_reservations_list method][] - - [connect method][] - - [fetch_info method][] - - [Peer Crawler](../../../references/http-websocket-apis/peer-port-methods/peer-crawler.md) + - [peers method][] + - [peer_reservations_add method][] + - [peer_reservations_del method][] + - [peer_reservations_list method][] + - [connect method][] + - [fetch_info method][] + - [Peer Crawler](../../../references/http-websocket-apis/peer-port-methods/peer-crawler.md) {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/infrastructure/configuration/server-modes/index.md b/docs/infrastructure/configuration/server-modes/index.md index dec182405d..3a9a779ba4 100644 --- a/docs/infrastructure/configuration/server-modes/index.md +++ b/docs/infrastructure/configuration/server-modes/index.md @@ -4,11 +4,11 @@ parent: configure-rippled.html metadata: indexPage: true seo: - description: Information on how to run a core server in different modes specialized for different purposes. + description: Information on how to run a core server in different modes specialized for different purposes. --- + # Server Modes The core XRP Ledger server can run in different modes specialized for different purposes. - {% child-pages /%} diff --git a/docs/infrastructure/configuration/server-modes/run-rippled-as-a-stock-server.md b/docs/infrastructure/configuration/server-modes/run-rippled-as-a-stock-server.md index 6248f0d6aa..af97effc0c 100644 --- a/docs/infrastructure/configuration/server-modes/run-rippled-as-a-stock-server.md +++ b/docs/infrastructure/configuration/server-modes/run-rippled-as-a-stock-server.md @@ -2,15 +2,15 @@ html: run-rippled-as-a-stock-server.html parent: server-modes.html seo: - description: A multipurpose configuration for anyone integrating XRP. + description: A multipurpose configuration for anyone integrating XRP. labels: - Core Server --- + # Run rippled as a Stock Server A stock server is a multipurpose configuration for `rippled`. With a stock server, you can submit transactions to the XRP Ledger, access ledger history, and use the latest [tools](../../../introduction/software-ecosystem.md) to integrate with XRP and the XRP Ledger. You can connect client applications to the XRP Ledger using this server. - A stock server does all of the following: - Connects to a [network of peers](../../../concepts/networks-and-servers/peer-protocol.md) @@ -19,10 +19,8 @@ A stock server does all of the following: - Maintains a local copy of the complete shared global [ledger](../../../concepts/ledgers/index.md) - To participate in the [consensus process](../../../concepts/consensus-protocol/index.md) as a validator, [run rippled as a validator](run-rippled-as-a-validator.md) instead. - ## Install and run `rippled` The default package installation installs a stock server with a small amount of transaction history. For installation steps, see [Install `rippled`](../../installation/index.md). @@ -33,20 +31,19 @@ After installation, you can adjust how much history your server stores at a time For more information, see [Troubleshooting `rippled`](../../troubleshooting/index.md) - ## See Also - **Concepts:** - - [XRP Ledger Overview](/about/) - - [The `rippled` Server](../../../concepts/networks-and-servers/index.md) + - [XRP Ledger Overview](/about/) + - [The `rippled` Server](../../../concepts/networks-and-servers/index.md) - **Tutorials:** - - [Cluster rippled Servers](../peering/cluster-rippled-servers.md) - - [Install `rippled`](../../installation/index.md) - - [Capacity Planning](../../installation/capacity-planning.md) + - [Cluster rippled Servers](../peering/cluster-rippled-servers.md) + - [Install `rippled`](../../installation/index.md) + - [Capacity Planning](../../installation/capacity-planning.md) - **References:** - - [Validator Keys Tool Guide](https://github.com/ripple/validator-keys-tool/blob/master/doc/validator-keys-tool-guide.md) - - [consensus_info method][] - - [validator_list_sites method][] - - [validators method][] + - [Validator Keys Tool Guide](https://github.com/ripple/validator-keys-tool/blob/master/doc/validator-keys-tool-guide.md) + - [consensus_info method][] + - [validator_list_sites method][] + - [validators method][] {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/infrastructure/configuration/server-modes/run-rippled-as-a-validator.md b/docs/infrastructure/configuration/server-modes/run-rippled-as-a-validator.md index 3f57208c4e..8a2112cf20 100644 --- a/docs/infrastructure/configuration/server-modes/run-rippled-as-a-validator.md +++ b/docs/infrastructure/configuration/server-modes/run-rippled-as-a-validator.md @@ -2,13 +2,14 @@ html: run-rippled-as-a-validator.html parent: server-modes.html seo: - description: Have your server vote on the consensus ledger. + description: Have your server vote on the consensus ledger. labels: - Core Server - Blockchain top_nav_grouping: Popular Pages top_nav_name: Join UNL --- + # Run rippled as a Validator A [`rippled` server](../../../concepts/networks-and-servers/index.md) running in [validator mode](../../../concepts/networks-and-servers/rippled-server-modes.md) does everything a stock server does: @@ -27,40 +28,34 @@ Even if your validator isn't a _trusted_ validator, it still plays an important {% admonition type="danger" name="Warning" %}Validators should not be accessible to the public. Do not allow public WebSocket access to your validator server or any other form of public access.{% /admonition %} - - ## 1. Understand the traits of a good validator Strive to have your validator embody the following properties. Being a good validator helps `rippled` server operators and validator list publishers (such as https://vl.ripple.com and https://vl.xrplf.org) trust your validator before adding it to their UNLs. - **Available** - A good validator is always running and submitting validation votes for every proposed ledger. Strive for 100% uptime. + A good validator is always running and submitting validation votes for every proposed ledger. Strive for 100% uptime. - **In agreement** - A good validator's votes match the outcome of the consensus process as often as possible. To do otherwise could indicate that your validator's software is outdated, buggy, or intentionally biased. Always run the [latest `rippled` release](https://github.com/XRPLF/rippled/tree/release) without modifications. [Watch `rippled` releases](https://github.com/XRPLF/rippled/releases) and subscribe to the [Google Group](https://groups.google.com/g/ripple-server) to be notified of new releases. + A good validator's votes match the outcome of the consensus process as often as possible. To do otherwise could indicate that your validator's software is outdated, buggy, or intentionally biased. Always run the [latest `rippled` release](https://github.com/XRPLF/rippled/tree/release) without modifications. [Watch `rippled` releases](https://github.com/XRPLF/rippled/releases) and subscribe to the [Google Group](https://groups.google.com/g/ripple-server) to be notified of new releases. - **Issuing prompt votes** - A good validator's votes arrive quickly and not after a consensus round has already finished. To keep your votes on time, make sure your validator meets the recommended [system requirements](../../installation/system-requirements.md), which include a fast internet connection. + A good validator's votes arrive quickly and not after a consensus round has already finished. To keep your votes on time, make sure your validator meets the recommended [system requirements](../../installation/system-requirements.md), which include a fast internet connection. - It is possible to submit new transactions and query data using a validator, but heavy loads of API queries may make the validator less reliable at keeping up with consensus. If your API needs are light enough, then you can use a server for both purposes. Ideally, a validator should be dedicated to participating in consensus. + It is possible to submit new transactions and query data using a validator, but heavy loads of API queries may make the validator less reliable at keeping up with consensus. If your API needs are light enough, then you can use a server for both purposes. Ideally, a validator should be dedicated to participating in consensus. - **Identified** - A good validator has a clearly identified owner. Providing [domain verification](#6-provide-domain-verification) is a good start. Ideally, XRP Ledger network UNLs include validators run by different owners in multiple legal jurisdictions and geographic areas. This reduces the chance that any localized events could interfere with the impartial operations of trusted validators. + A good validator has a clearly identified owner. Providing [domain verification](#6-provide-domain-verification) is a good start. Ideally, XRP Ledger network UNLs include validators run by different owners in multiple legal jurisdictions and geographic areas. This reduces the chance that any localized events could interfere with the impartial operations of trusted validators. It is strongly recommended that operators use the list providers that are present in this [example file](https://github.com/XRPLF/rippled/blob/develop/cfg/validators-example.txt). - - ## 2. Install a `rippled` server For more information, see [Install `rippled`](../../installation/index.md). - - ## 3. Enable validation on your `rippled` server Enabling validation on your `rippled` server means providing a validator token in your server's `rippled.cfg` file. You can use the `validator-keys` tool (included in `rippled` packages) to securely generate and manage your validator keys and tokens. @@ -69,80 +64,81 @@ In a secure location **not** on your validator: 1. Generate a validator key pair using the `validator-keys` tool, which is included in the `rippled` package: - ``` - $ cd /opt/ripple/bin/ - ``` - Then run: + ``` + $ cd /opt/ripple/bin/ + ``` - ``` - $ ./validator-keys create_keys - ``` + Then run: - Sample output on Ubuntu: + ``` + $ ./validator-keys create_keys + ``` - ``` - Validator keys stored in /home/my-user/.ripple/validator-keys.json + Sample output on Ubuntu: - This file should be stored securely and not shared. - ``` + ``` + Validator keys stored in /home/my-user/.ripple/validator-keys.json - Sample output on macOS: + This file should be stored securely and not shared. + ``` - ``` - Validator keys stored in /Users/my-user/.ripple/validator-keys.json + Sample output on macOS: - This file should be stored securely and not shared. - ``` + ``` + Validator keys stored in /Users/my-user/.ripple/validator-keys.json - {% admonition type="danger" name="Warning" %}Store the generated `validator-keys.json` key file in a secure, offline, and recoverable location, such as an encrypted USB flash drive. Do not store keys on the validator where you intend to use the keys. If your `secret_key` is compromised, [revoke the key](https://github.com/ripple/validator-keys-tool/blob/master/doc/validator-keys-tool-guide.md#key-revocation) immediately. Do not modify the contents of `validator-keys.json`, except to update the backup after generating a new token. If you generate more than one token from the same backup without updating, the network ignores the later tokens because they use the same `token_sequence` number.{% /admonition %} + This file should be stored securely and not shared. + ``` - For more information about the `validator-keys` tool and the key pairs it generates, see the [Validator Keys Tool Guide](https://github.com/ripple/validator-keys-tool/blob/master/doc/validator-keys-tool-guide.md). + {% admonition type="danger" name="Warning" %}Store the generated `validator-keys.json` key file in a secure, offline, and recoverable location, such as an encrypted USB flash drive. Do not store keys on the validator where you intend to use the keys. If your `secret_key` is compromised, [revoke the key](https://github.com/ripple/validator-keys-tool/blob/master/doc/validator-keys-tool-guide.md#key-revocation) immediately. Do not modify the contents of `validator-keys.json`, except to update the backup after generating a new token. If you generate more than one token from the same backup without updating, the network ignores the later tokens because they use the same `token_sequence` number.{% /admonition %} + + For more information about the `validator-keys` tool and the key pairs it generates, see the [Validator Keys Tool Guide](https://github.com/ripple/validator-keys-tool/blob/master/doc/validator-keys-tool-guide.md). 2. Generate a validator token using the `create_token` command. [Make sure you are at `/opt/ripple/bin/`] - ``` - $ ./validator-keys create_token --keyfile /PATH/TO/YOUR/validator-keys.json - ``` + ``` + $ ./validator-keys create_token --keyfile /PATH/TO/YOUR/validator-keys.json + ``` - Sample output: + Sample output: - ``` - Update rippled.cfg file with these values: + ``` + Update rippled.cfg file with these values: - # validator public key: nHUtNnLVx7odrz5dnfb2xpIgbEeJPbzJWfdicSkGyVw1eE5GpjQr + # validator public key: nHUtNnLVx7odrz5dnfb2xpIgbEeJPbzJWfdicSkGyVw1eE5GpjQr - [validator_token] - eyJ2YWxpZGF0aW9uX3NlY3J|dF9rZXkiOiI5ZWQ0NWY4NjYyNDFjYzE4YTI3NDdiNT - QzODdjMDYyNTkwNzk3MmY0ZTcxOTAyMzFmYWE5Mzc0NTdmYT|kYWY2IiwibWFuaWZl - c3QiOiJKQUFBQUFGeEllMUZ0d21pbXZHdEgyaUNjTUpxQzlnVkZLaWxHZncxL3ZDeE - hYWExwbGMyR25NaEFrRTFhZ3FYeEJ3RHdEYklENk9NU1l1TTBGREFscEFnTms4U0tG - bjdNTzJmZGtjd1JRSWhBT25ndTlzQUtxWFlvdUorbDJWMFcrc0FPa1ZCK1pSUzZQU2 - hsSkFmVXNYZkFpQnNWSkdlc2FhZE9KYy9hQVpva1MxdnltR21WcmxIUEtXWDNZeXd1 - NmluOEhBU1FLUHVnQkQ2N2tNYVJGR3ZtcEFUSGxHS0pkdkRGbFdQWXk1QXFEZWRGdj - VUSmEydzBpMjFlcTNNWXl3TFZKWm5GT3I3QzBrdzJBaVR6U0NqSXpkaXRROD0ifQ== - ``` + [validator_token] + eyJ2YWxpZGF0aW9uX3NlY3J|dF9rZXkiOiI5ZWQ0NWY4NjYyNDFjYzE4YTI3NDdiNT + QzODdjMDYyNTkwNzk3MmY0ZTcxOTAyMzFmYWE5Mzc0NTdmYT|kYWY2IiwibWFuaWZl + c3QiOiJKQUFBQUFGeEllMUZ0d21pbXZHdEgyaUNjTUpxQzlnVkZLaWxHZncxL3ZDeE + hYWExwbGMyR25NaEFrRTFhZ3FYeEJ3RHdEYklENk9NU1l1TTBGREFscEFnTms4U0tG + bjdNTzJmZGtjd1JRSWhBT25ndTlzQUtxWFlvdUorbDJWMFcrc0FPa1ZCK1pSUzZQU2 + hsSkFmVXNYZkFpQnNWSkdlc2FhZE9KYy9hQVpva1MxdnltR21WcmxIUEtXWDNZeXd1 + NmluOEhBU1FLUHVnQkQ2N2tNYVJGR3ZtcEFUSGxHS0pkdkRGbFdQWXk1QXFEZWRGdj + VUSmEydzBpMjFlcTNNWXl3TFZKWm5GT3I3QzBrdzJBaVR6U0NqSXpkaXRROD0ifQ== + ``` On your validator: 1. Add `[validator_token]` and its value to your validator's `rippled.cfg` file. - If you previously configured your validator without the `validator-keys` tool, delete `[validation_seed]` and its value from your `rippled.cfg` file. This changes your validator public key. + If you previously configured your validator without the `validator-keys` tool, delete `[validation_seed]` and its value from your `rippled.cfg` file. This changes your validator public key. 2. Restart `rippled`. - ``` - $ sudo systemctl restart rippled.service - ``` + ``` + $ sudo systemctl restart rippled.service + ``` 3. Use the `server_info` command to get information about your validator to verify that it is running as a validator. - ``` - $ rippled server_info - ``` + ``` + $ rippled server_info + ``` - - The `pubkey_validator` value in the response should match the `public_key` in the `validator-keys.json` file that you generated for use with your validator. + - The `pubkey_validator` value in the response should match the `public_key` in the `validator-keys.json` file that you generated for use with your validator. - - The `server_state` value should be _**proposing**_. + - The `server_state` value should be _**proposing**_. **Security Tip:** Change the permissions on your `rippled.cfg` file to be more restrictive. On Linux it is recommended to be `0600`. You can do this with `chmod 0600 rippled.cfg` @@ -158,14 +154,12 @@ This section describes three different configurations you can use to connect you For a comparison of these approaches, see [Pros and Cons of Peering Configurations](../../../concepts/networks-and-servers/peer-protocol.md#pros-and-cons-of-peering-configurations). - ### Connect using discovered peers This configuration connects your validator to the XRP Ledger network using [discovered peers](../../../concepts/networks-and-servers/peer-protocol.md#peer-discovery). This is the default behavior for `rippled` servers. _**To connect your validator to the XRP Ledger network using discovered peers,**_ omit the `[peer_private]` stanza or set it to `0` in your validator's `rippled.cfg` file. The [example `rippled.cfg` file](https://github.com/XRPLF/rippled/blob/develop/cfg/rippled-example.cfg) is delivered with this configuration. - ### Connect using proxies This configuration connects your validator to the network through stock `rippled` servers that you run yourself. These proxy servers sit between your validator and inbound and outbound network traffic. @@ -178,50 +172,47 @@ _**To connect your validator to the XRP Ledger network using proxies:**_ 3. In your validator's `rippled.cfg` file, set `[peer_private]` to `1`. This prevents your validator's IP address from being forwarded. For more information, see [Private Peers](../../../concepts/networks-and-servers/peer-protocol.md#private-peers). It also prevents your validator from connecting to servers other than those defined in the `[ips_fixed]` stanza you defined to run your validator in a cluster. - {% admonition type="danger" name="Warning" %}Be sure that you don't publish your validator's IP address in other ways.{% /admonition %} + {% admonition type="danger" name="Warning" %}Be sure that you don't publish your validator's IP address in other ways.{% /admonition %} 4. Configure your validator host machine's firewall to allow the following traffic only: + - Inbound traffic: Only from IP addresses of the stock `rippled` servers in the cluster you configured. - - Inbound traffic: Only from IP addresses of the stock `rippled` servers in the cluster you configured. - - - Outbound traffic: Only to the IP addresses of the stock `rippled` servers in the cluster you configured and to your UNL list providers through port 443. + - Outbound traffic: Only to the IP addresses of the stock `rippled` servers in the cluster you configured and to your UNL list providers through port 443. 5. Restart `rippled`. - ``` - $ sudo systemctl restart rippled.service - ``` + ``` + $ sudo systemctl restart rippled.service + ``` 6. Use the [Peer Crawler](../../../references/http-websocket-apis/peer-port-methods/peer-crawler.md) endpoint on one of your stock `rippled` servers. The response should not include your validator. This verifies that your validator's `[peer_private]` configuration is working. One of the effects of enabling `[peer_private]` on your validator is that your validator's peers do not include it in their Peer Crawler results. - ``` - $ curl --insecure https://STOCK_SERVER_IP_ADDRESS_HERE:51235/crawl | python3 -m json.tool - ``` + ``` + $ curl --insecure https://STOCK_SERVER_IP_ADDRESS_HERE:51235/crawl | python3 -m json.tool + ``` - ### Connect using public hubs This configuration connects your validator to the network using three [public hubs](../../../concepts/networks-and-servers/rippled-server-modes.md#public-hubs). This configuration is similar to [connecting using proxies you run yourself](#connect-using-proxies), but instead you connect through public hubs. _**To connect your validator to the network using public hubs:**_ -1. In your validator's `rippled.cfg` file, include the following `[ips_fixed]` stanza. This stanza tells `rippled` to always attempt to maintain peer connections with these public hubs. +1. In your validator's `rippled.cfg` file, include the following `[ips_fixed]` stanza. This stanza tells `rippled` to always attempt to maintain peer connections with these public hubs. - ``` - [ips_fixed] - r.ripple.com 51235 - sahyadri.isrdc.in 51235 - hubs.xrpkuwait.com 51235 - hub.xrpl-commons.org 51235 - ``` + ``` + [ips_fixed] + r.ripple.com 51235 + sahyadri.isrdc.in 51235 + hubs.xrpkuwait.com 51235 + hub.xrpl-commons.org 51235 + ``` {% admonition type="info" name="Note" %} The above list may evolve over time. To ensure you're using the most current set of public hubs, refer to the official [`rippled-example.cfg`](https://github.com/XRPLF/rippled/blob/develop/cfg/rippled-example.cfg) maintained by XRPLF. {% /admonition %} - {% admonition type="warning" name="Caution" %}This configuration connects your validator to the network using default public hubs. Because these are the _default_ public hubs, they may sometimes be too busy to provide your validator with a connection to the network. To help avoid this issue, connect to more public hubs and, even better, connect to non-default public hubs.{% /admonition %} You can include the IP addresses of other `rippled` servers here, but _**only**_ if you can expect them to: @@ -234,22 +225,20 @@ The above list may evolve over time. To ensure you're using the most current set 2. Also in your validator's `rippled.cfg` file, include the following `[peer_private]` stanza and set it to `1`. This instructs your validator’s peers not to broadcast your validator’s IP address. This setting also instructs your validator to connect to only the peers configured in your `[ips_fixed]` stanza. This ensures that your validator connects to and shares its IP with only peer `rippled` servers you know and trust. - ``` - [peer_private] - 1 - ``` + ``` + [peer_private] + 1 + ``` - {% admonition type="danger" name="Warning" %}Be sure that you don't publish your validator's IP address in other ways.{% /admonition %} + {% admonition type="danger" name="Warning" %}Be sure that you don't publish your validator's IP address in other ways.{% /admonition %} - With `[peer_private]` enabled, `rippled` ignores any connections suggested by the `[ips]` stanza. If you need to connect to an IP currently in your `[ips]` stanza, put it in the `[ips_fixed]` stanza instead, but _**only**_ if you can expect them to behave responsibly as described in step 1. + With `[peer_private]` enabled, `rippled` ignores any connections suggested by the `[ips]` stanza. If you need to connect to an IP currently in your `[ips]` stanza, put it in the `[ips_fixed]` stanza instead, but _**only**_ if you can expect them to behave responsibly as described in step 1. 3. Restart `rippled`. - ``` - $ sudo systemctl restart rippled.service - ``` - - + ``` + $ sudo systemctl restart rippled.service + ``` ## 5. Verify your network connection @@ -257,18 +246,16 @@ Here are some methods you can use to verify that your validator has a healthy co - Use the [`peers`](../../../references/http-websocket-apis/admin-api-methods/peer-management-methods/peers.md) command to return a list of all `rippled` servers currently connected to your validator. If the `peers` array is `null`, you don’t have a healthy connection to the network. If you've set up your validator using the instructions in this document, the `peers` array should include the same number of objects as the number of peers defined in your `[ips_fixed]` stanza. - If you listed a public hub in your `[ips_fixed]` stanza and it is busy, it may reject your validator's connection. In this case, you may end up with fewer connections than configured in your `[ips_fixed]` stanza. Your validator retries the connection if it's initially rejected. + If you listed a public hub in your `[ips_fixed]` stanza and it is busy, it may reject your validator's connection. In this case, you may end up with fewer connections than configured in your `[ips_fixed]` stanza. Your validator retries the connection if it's initially rejected. - If you are having trouble maintaining a reliable and safe connection to the network and haven't set up connections using public hubs or proxies, see [4. Connect to the network](#4-connect-to-the-network). Using one of the methods described in the section may help your validator remain healthily connected to the network. + If you are having trouble maintaining a reliable and safe connection to the network and haven't set up connections using public hubs or proxies, see [4. Connect to the network](#4-connect-to-the-network). Using one of the methods described in the section may help your validator remain healthily connected to the network. - Use the [`server_info`](../../../references/http-websocket-apis/public-api-methods/server-info-methods/server_info.md) command to return some basic information about your validator. The `server_state` should be set to `proposing`. It may also be set to `full` or `validating`, but only for a few minutes before moving into `proposing`. - If the `server_state` does not spend the majority of its time set to `proposing`, it may be a sign that your validator is unable to fully participate in the XRP Ledger network. For more information about server states and using the `server_info` endpoint to diagnose issues with your validator, see [`rippled` Server States](../../../references/http-websocket-apis/api-conventions/rippled-server-states.md) and [Get the `server_info`](../../troubleshooting/diagnosing-problems.md#get-the-server_info). + If the `server_state` does not spend the majority of its time set to `proposing`, it may be a sign that your validator is unable to fully participate in the XRP Ledger network. For more information about server states and using the `server_info` endpoint to diagnose issues with your validator, see [`rippled` Server States](../../../references/http-websocket-apis/api-conventions/rippled-server-states.md) and [Get the `server_info`](../../troubleshooting/diagnosing-problems.md#get-the-server_info). - Use the [`validators`](../../../references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validators.md) command to return the current list of published and trusted validators used by the validator. Ensure that the `validator_list_expires` value is either `never` or not expired or about to expire. - - ## 6. Provide domain verification To help validation list publishers and other participants in the XRP Ledger network understand who runs your validator, provide domain verification for your validator. At a high level, domain verification is a two-way link: @@ -287,27 +274,25 @@ To provide domain verification: 3. Share your validator's public key with the public, especially other `rippled` operators. For example, you can share your validator's public key on your website, on social media, in the [XRPChat community forum](https://www.xrpchat.com/), or in a press release. - ## Revoke validator keys If your validator's master private key is compromised, you must revoke it immediately and permanently. For information about how to revoke a master key pair you generated for your validator using the `validator-keys` tool, see [Key Revocation](https://github.com/ripple/validator-keys-tool/blob/master/doc/validator-keys-tool-guide.md#key-revocation). - ## See Also - **Concepts:** - - [XRP Ledger Overview](/about/) - - [The `rippled` Server](../../../concepts/networks-and-servers/index.md) + - [XRP Ledger Overview](/about/) + - [The `rippled` Server](../../../concepts/networks-and-servers/index.md) - **Tutorials:** - - [Cluster rippled Servers](../peering/cluster-rippled-servers.md) - - [Install `rippled`](../../installation/index.md) - - [Capacity Planning](../../installation/capacity-planning.md) + - [Cluster rippled Servers](../peering/cluster-rippled-servers.md) + - [Install `rippled`](../../installation/index.md) + - [Capacity Planning](../../installation/capacity-planning.md) - **References:** - - [Validator Keys Tool Guide](https://github.com/ripple/validator-keys-tool/blob/master/doc/validator-keys-tool-guide.md) - - [consensus_info method][] - - [validator_list_sites method][] - - [validators method][] + - [Validator Keys Tool Guide](https://github.com/ripple/validator-keys-tool/blob/master/doc/validator-keys-tool-guide.md) + - [consensus_info method][] + - [validator_list_sites method][] + - [validators method][] {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/infrastructure/index.md b/docs/infrastructure/index.md index ada50283c8..eefd595f87 100644 --- a/docs/infrastructure/index.md +++ b/docs/infrastructure/index.md @@ -5,9 +5,9 @@ metadata: indexPage: true top_nav_grouping: Article Types --- + # Infrastructure Install, configure, and manage the software that powers the XRP Ledger. - {% child-pages /%} diff --git a/docs/infrastructure/installation/build-on-linux-mac-windows.md b/docs/infrastructure/installation/build-on-linux-mac-windows.md index 40c9685750..0883290abf 100644 --- a/docs/infrastructure/installation/build-on-linux-mac-windows.md +++ b/docs/infrastructure/installation/build-on-linux-mac-windows.md @@ -2,12 +2,13 @@ html: build-on-linux-mac-windows.html parent: install-rippled.html seo: - description: Build rippled on Linux, Mac (macOS), or Windows + description: Build rippled on Linux, Mac (macOS), or Windows labels: - Core Server - Blockchain top_nav_grouping: Popular Pages --- + # Build rippled on Linux, Mac, or Windows Building `rippled` across various platforms such as Windows, Linux, or macOS requires a C++ development environment. You will need tools like Git, Python, Conan, CMake, and a suitable C++ compiler. diff --git a/docs/infrastructure/installation/build-run-rippled-in-reporting-mode.md b/docs/infrastructure/installation/build-run-rippled-in-reporting-mode.md index 173690570e..4ba1d779ed 100644 --- a/docs/infrastructure/installation/build-run-rippled-in-reporting-mode.md +++ b/docs/infrastructure/installation/build-run-rippled-in-reporting-mode.md @@ -1,8 +1,9 @@ --- seo: - description: Reporting mode was a rippled server build specialized for for API usage. It has been deprecated in favor of the Clio server. + description: Reporting mode was a rippled server build specialized for for API usage. It has been deprecated in favor of the Clio server. status: removed --- + # Build and Run `rippled` in Reporting Mode **Reporting mode** was a build option of the `rippled` server, specialized for serving [HTTP and WebSocket APIs](../../references/http-websocket-apis/index.md). It has been removed in favor of the [Clio server](../../concepts/networks-and-servers/the-clio-server.md). diff --git a/docs/infrastructure/installation/capacity-planning.md b/docs/infrastructure/installation/capacity-planning.md index aa3944099c..6cc4fc1a8c 100644 --- a/docs/infrastructure/installation/capacity-planning.md +++ b/docs/infrastructure/installation/capacity-planning.md @@ -1,10 +1,11 @@ --- seo: - description: Plan system specs and tune configuration for rippled in production environments. + description: Plan system specs and tune configuration for rippled in production environments. labels: - Core Server - Data Retention --- + # Capacity Planning This document describes configuration, network, and hardware recommendations that you can use to tune and optimize the performance of an XRP Ledger server. @@ -13,15 +14,12 @@ The load on an XRP Ledger server varies based on multiple factors. One is the ac You should consider these factors to ensure that your server has the capacity to handle XRP Ledger network activity today and in the future. - - ## Configuration Settings The default configuration file contains settings for a broad range of common use cases. You can get better performance by customizing the settings for your specific hardware and intended usage pattern. The settings in this section are parameters in the `rippled.cfg` file. You can access an example config file, `rippled-example.cfg`, in the [`cfg` directory](https://github.com/XRPLF/rippled/blob/develop/cfg/rippled-example.cfg) in the `rippled` GitHub repo. The settings in the example config file match the default config installed alongside the server. - ### Node Size The `[node_size]` parameter should match the overall hardware capacity of your server. You can omit this parameter to have the server automatically choose an appropriate setting based on the system's total RAM and number of CPU threads. You can set this value explicitly if the automatic setting is wrong for your system, for example if some of the system's RAM or threads need to be set aside for other software, or the amounts reported by the operating system are inaccurate. (This can occur in some containers.) {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.8.1" %}Updated in: rippled 1.8.1{% /badge %} @@ -34,17 +32,16 @@ Each `[node_size]` has a corresponding requirement for available RAM. For exampl To tune your server, it may be useful to start with `tiny` and increase the size to `small`, `medium`, and so on as you refine the requirements for your use case. -| RAM available | `node_size` value | Notes | -|:--------------|:------------------|:-----------------------------------------| -| < 8 GB | `tiny` | **Not recommended.** A server with this setting may not sync to a busy network. | -| 8 GB | `small` | Recommended for test servers that only need to run occasionally. | -| 16 GB | `medium` | The `rippled-example.cfg` file uses this value. | +| RAM available | `node_size` value | Notes | +| :------------ | :---------------- | :---------------------------------------------------------------------------------------------------------------------------------------- | +| < 8 GB | `tiny` | **Not recommended.** A server with this setting may not sync to a busy network. | +| 8 GB | `small` | Recommended for test servers that only need to run occasionally. | +| 16 GB | `medium` | The `rippled-example.cfg` file uses this value. | | 32 GB | `large` | **Not recommended.** In practice, this setting performs worse than `huge` in most circumstances. Always use `huge` if you want stability. | -| 64 GB | `huge` | Recommended for production servers. | +| 64 GB | `huge` | Recommended for production servers. | If you set the `[node_size]` parameter to an invalid value, the [server fails to start](../troubleshooting/server-wont-start.md#bad-node_size-value). - ### Node DB Type The `type` field in the `[node_db]` stanza of the `rippled.cfg` file sets the type of key-value store that `rippled` uses to hold the ledger store. @@ -98,14 +95,12 @@ advisory_delete=0 Adjust the `path` to the directory where you want to keep the ledger store on disk. Adjust the `online_delete` and `advisory_delete` settings as desired for your configuration. For more details about these settings, see [Configure Online Deletion](../configuration/data-retention/configure-online-deletion.md) and [Configure Advisory Deletion](../configuration/data-retention/configure-advisory-deletion.md). - ### Log Level The example `rippled-example.cfg` file sets the logging verbosity to `warning` in the `[rpc_startup]` stanza. This setting greatly reduces disk space and I/O requirements over more verbose logging. However, more verbose logging provides increased visibility for troubleshooting. {% admonition type="warning" name="Caution" %}If you omit the `log_level` command from the `[rpc_startup]` stanza, the server writes logs to disk at the `debug` level and outputs `warning` level logs to the console. Logging at the `debug` level requires several more GB of disk space per day than `warning` level, depending on transaction volumes and client activity.{% /admonition %} - ## Network and Hardware Each server in the XRP Ledger network performs all of the transaction processing work of the network. Total activity on the network varies but has mostly increased over time, so you should choose hardware with greater capacity than you need for the current network activity. @@ -115,6 +110,7 @@ Each server in the XRP Ledger network performs all of the transaction processing See [System Requirements](system-requirements.md) for a summary of the recommended hardware specs. #### CPU Utilization and Virtualization + You'll get the best performance on bare metal, but virtual machines can perform nearly as well as long as the host hardware has high enough specs. @@ -137,15 +133,15 @@ You can control how much data you keep with [online deletion](../configuration/d The following table approximates the requirements for different amounts of history, at the time of writing (2023-07-19): | Real Time Amount | Number of Ledger Versions | Disk Space Required (NuDB) | -|:-----------------|:--------------------------|:---------------------------| -| 2 hours | 2,000 | 450 MB | -| 1 day | 25,000 | 12 GB | -| 14 days | 350,000 | 168 GB | -| 30 days | 750,000 | 360 GB | -| 90 days | 2,250,000 | 1 TB | -| 1 year | 10,000,000 | 4.5 TB | -| 2 years | 20,000,000 | 9 TB | -| Full history | 81,000,000+ | ~26 TB | +| :--------------- | :------------------------ | :------------------------- | +| 2 hours | 2,000 | 450 MB | +| 1 day | 25,000 | 12 GB | +| 14 days | 350,000 | 168 GB | +| 30 days | 750,000 | 360 GB | +| 90 days | 2,250,000 | 1 TB | +| 1 year | 10,000,000 | 4.5 TB | +| 2 years | 20,000,000 | 9 TB | +| Full history | 81,000,000+ | ~26 TB | These numbers are estimates. They depend on several factors, most importantly the volume of transactions in the network. As transaction volume increases, each ledger version stores more unique data. You should provision extra storage capacity to prepare for future growth. @@ -159,7 +155,6 @@ As a general rule, you can safely delete the database files (both the ledger sto If your config file has a `[shard_db]` stanza, you can safely remove it. This section is obsolete and has no effect. {% badge href="https://github.com/XRPLF/rippled/releases/tag/2.3.0" %}Removed in: rippled 2.3.0{% /badge %} - ##### Amazon Web Services Amazon Web Services (AWS) is a popular virtualized hosting environment. You can run `rippled` in AWS, but do not use Elastic Block Storage (EBS). See [System Requirements](system-requirements.md). @@ -181,7 +176,7 @@ During exceptionally high periods of transaction volume, some operators have rep Here are examples of observed uncompressed network bandwidth use for common tasks: | Task | Send/Receive | -|:------------------------------------------------|:-----------------------| +| :---------------------------------------------- | :--------------------- | | Process average transaction volumes | 2 Mbps up, 2 Mbps down | | Process peak transaction volumes | >100 Mbps up | | Serve historical ledger and transaction reports | 100 Mbps up | @@ -189,21 +184,20 @@ Here are examples of observed uncompressed network bandwidth use for common task You can save bandwidth by [enabling compression on peer-to-peer communications](../configuration/peering/enable-link-compression.md), at a cost of higher CPU. Many hardware configurations have spare CPU capacity during normal use, so this can be an economical option if your network bandwidth is limited. - ## See Also - **Concepts:** - - [The `rippled` Server](../../concepts/networks-and-servers/index.md) - - [Consensus](../../concepts/consensus-protocol/index.md) + - [The `rippled` Server](../../concepts/networks-and-servers/index.md) + - [Consensus](../../concepts/consensus-protocol/index.md) - **Tutorials:** - - [Configure rippled](../configuration/index.md) - - [Configure Online Deletion](../configuration/data-retention/configure-online-deletion.md) - Adjust how many historical ledger versions your server should keep at a time. - - [Troubleshoot rippled](../troubleshooting/index.md) + - [Configure rippled](../configuration/index.md) + - [Configure Online Deletion](../configuration/data-retention/configure-online-deletion.md) - Adjust how many historical ledger versions your server should keep at a time. + - [Troubleshoot rippled](../troubleshooting/index.md) - **References:** - - [rippled API Reference](../../references/http-websocket-apis/index.md) - - [`rippled` Commandline Usage](../commandline-usage.md) - - [logrotate method][] - Closes and reopens the server's debug log so you can rotate it with standard tools. - - [server_info method][] - General information about the server including sync status and how many historical ledger versions it has available on disk. - - [get_counts method][] - Additional health information, especially how many objects of various types it holds in RAM. + - [rippled API Reference](../../references/http-websocket-apis/index.md) + - [`rippled` Commandline Usage](../commandline-usage.md) + - [logrotate method][] - Closes and reopens the server's debug log so you can rotate it with standard tools. + - [server_info method][] - General information about the server including sync status and how many historical ledger versions it has available on disk. + - [get_counts method][] - Additional health information, especially how many objects of various types it holds in RAM. {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/infrastructure/installation/index.md b/docs/infrastructure/installation/index.md index b2362a22e9..f8a808581e 100644 --- a/docs/infrastructure/installation/index.md +++ b/docs/infrastructure/installation/index.md @@ -5,8 +5,9 @@ top_nav_name: Install & Configure metadata: indexPage: true seo: - description: Install and update XRP Ledger servers including the core server, rippled, and API server, Clio. + description: Install and update XRP Ledger servers including the core server, rippled, and API server, Clio. --- + # Installation Install and update the core XRP Ledger server (`rippled`) or the API server (Clio). diff --git a/docs/infrastructure/installation/install-clio-on-ubuntu.md b/docs/infrastructure/installation/install-clio-on-ubuntu.md index 318dac3685..09449683bd 100644 --- a/docs/infrastructure/installation/install-clio-on-ubuntu.md +++ b/docs/infrastructure/installation/install-clio-on-ubuntu.md @@ -2,10 +2,11 @@ html: install-clio-on-ubuntu.html parent: install-rippled.html seo: - description: Install a precompiled Clio binary on Ubuntu Linux. + description: Install a precompiled Clio binary on Ubuntu Linux. labels: - Clio Server --- + # Install Clio on Ubuntu Linux This page describes the recommended instructions for installing the latest stable version of Clio on **Ubuntu Linux 22.04 or higher** using the [`apt`](https://ubuntu.com/server/docs) utility. @@ -16,168 +17,161 @@ These instructions install an Ubuntu package that has been compiled and publishe - [Build Clio from source](https://github.com/XRPLF/clio/blob/develop/docs/build-clio.md). - Use a [Clio Docker Image](https://hub.docker.com/r/rippleci/clio). - ## Prerequisites Before you install Clio, you must meet the following requirements. - Ensure that your system meets the [system requirements](system-requirements.md). - {% admonition type="info" name="Note" %} - Clio has the same system requirements as the `rippled` server, except Clio needs less disk space to store the same amount of ledger history. - {% /admonition %} + {% admonition type="info" name="Note" %} + Clio has the same system requirements as the `rippled` server, except Clio needs less disk space to store the same amount of ledger history. + {% /admonition %} - Access to a Cassandra cluster that is running locally or remote. You can choose to install and configure a Cassandra cluster manually by following the [Cassandra installation instructions](https://cassandra.apache.org/doc/latest/cassandra/getting_started/installing.html), or run Cassandra on a Docker container using one of the following commands. + - If you choose to persist Clio data, run Cassandra in a Docker container and specify an empty directory to store Clio data: - - If you choose to persist Clio data, run Cassandra in a Docker container and specify an empty directory to store Clio data: + ``` + docker run --rm -it --network=host --name cassandra -v $PWD/cassandra_data:/var/lib/ + cassandra cassandra:4.0.4 + ``` - ``` - docker run --rm -it --network=host --name cassandra -v $PWD/cassandra_data:/var/lib/ - cassandra cassandra:4.0.4 - ``` + - If you do not wish to persist Clio data, run the following command: - - If you do not wish to persist Clio data, run the following command: - - ``` - docker run --rm -it --network=host --name cassandra cassandra:4.0.4 - ``` + ``` + docker run --rm -it --network=host --name cassandra cassandra:4.0.4 + ``` - You need gRPC access to one or more `rippled` servers in P2P mode. The `rippled` servers can either be local or remote, but you must trust them. The most reliable way to do this is to [install `rippled` yourself](index.md). - ## Installation Steps 1. Update repositories: - ``` - sudo apt -y update - ``` + ``` + sudo apt -y update + ``` - {% admonition type="success" name="Tip" %} - If you have already installed an up-to-date version of `rippled` on the same machine, you can skip the following steps for adding Ripple's package repository and signing key, which are the same as in the `rippled` install process. Resume from step 6, "Fetch the Ripple repository." - {% /admonition %} + {% admonition type="success" name="Tip" %} + If you have already installed an up-to-date version of `rippled` on the same machine, you can skip the following steps for adding Ripple's package repository and signing key, which are the same as in the `rippled` install process. Resume from step 6, "Fetch the Ripple repository." + {% /admonition %} 2. Install utilities: - ``` - sudo apt -y install apt-transport-https ca-certificates wget gnupg - ``` + ``` + sudo apt -y install apt-transport-https ca-certificates wget gnupg + ``` 3. Add Ripple's package-signing GPG key to your list of trusted keys: - ``` - sudo mkdir /usr/local/share/keyrings/ - wget -q -O - "https://repos.ripple.com/repos/api/gpg/key/public" | gpg --dearmor > ripple-key.gpg - sudo mv ripple-key.gpg /usr/local/share/keyrings - ``` + ``` + sudo mkdir /usr/local/share/keyrings/ + wget -q -O - "https://repos.ripple.com/repos/api/gpg/key/public" | gpg --dearmor > ripple-key.gpg + sudo mv ripple-key.gpg /usr/local/share/keyrings + ``` 4. Check the fingerprint of the newly-added key: - ``` - gpg /usr/local/share/keyrings/ripple-key.gpg - ``` + ``` + gpg /usr/local/share/keyrings/ripple-key.gpg + ``` - The output should include an entry for Ripple such as the following: + The output should include an entry for Ripple such as the following: - ``` - gpg: WARNING: no command supplied. Trying to guess what you mean ... - pub rsa3072 2019-02-14 [SC] [expires: 2026-02-17] - C0010EC205B35A3310DC90DE395F97FFCCAFD9A2 - uid TechOps Team at Ripple - sub rsa3072 2019-02-14 [E] [expires: 2026-02-17] - ``` + ``` + gpg: WARNING: no command supplied. Trying to guess what you mean ... + pub rsa3072 2019-02-14 [SC] [expires: 2026-02-17] + C0010EC205B35A3310DC90DE395F97FFCCAFD9A2 + uid TechOps Team at Ripple + sub rsa3072 2019-02-14 [E] [expires: 2026-02-17] + ``` - - In particular, make sure that the fingerprint matches. (In the above example, the fingerprint is on the third line, starting with `C001`.) + In particular, make sure that the fingerprint matches. (In the above example, the fingerprint is on the third line, starting with `C001`.) 5. Add the appropriate Ripple repository for your operating system version: - ``` - echo "deb [signed-by=/usr/local/share/keyrings/ripple-key.gpg] https://repos.ripple.com/repos/rippled-deb noble stable" | \ - sudo tee -a /etc/apt/sources.list.d/ripple.list - ``` + ``` + echo "deb [signed-by=/usr/local/share/keyrings/ripple-key.gpg] https://repos.ripple.com/repos/rippled-deb noble stable" | \ + sudo tee -a /etc/apt/sources.list.d/ripple.list + ``` - The above example is appropriate for **Ubuntu 24.04 Noble Numbat**. + The above example is appropriate for **Ubuntu 24.04 Noble Numbat**. - If you want access to development or pre-release versions, use one of the following instead of `stable`: - - - `unstable` - Pre-release builds such as betas or release candidates - - `nightly` - Nightly development builds based on the [`develop` branch](https://github.com/XRPLF/Clio/tree/develop)) + If you want access to development or pre-release versions, use one of the following instead of `stable`: + - `unstable` - Pre-release builds such as betas or release candidates + - `nightly` - Nightly development builds based on the [`develop` branch](https://github.com/XRPLF/Clio/tree/develop)) 6. Fetch the Ripple repository. - ``` - sudo apt -y update - ``` + ``` + sudo apt -y update + ``` 7. Install the Clio software package. - ``` - sudo apt -y install clio - ``` + ``` + sudo apt -y install clio + ``` 8. Modify your config files so that Clio can connect to your `rippled` server(s). + 1. Edit the Clio server's config file to modify the connection information for the `rippled` server. The package installs this file at `/opt/clio/etc/config.json`. - 1. Edit the Clio server's config file to modify the connection information for the `rippled` server. The package installs this file at `/opt/clio/etc/config.json`. + ``` + "etl_sources": + [ + { + "ip":"127.0.0.1", + "ws_port":"6005", + "grpc_port":"50051" + } + ] + ``` + + Each entry in the `etl_sources` JSON array should contain the following fields: + + | Field | Type | Description | + | ----------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------- | + | `ip` | String | The IP address of the `rippled` server. | + | `ws_port` | String | The port where `rippled` accepts unencrypted (non-admin) WebSocket connections. The Clio server forwards some types of API requests to this port. | + | `grpc_port` | String | The port where `rippled` accepts gRPC requests. | + + {% admonition type="info" name="Note" %} + You can use multiple `rippled` servers as a data source by adding more entries to the `etl_sources` section. If you do, Clio load balances requests across all the servers in the list, and can keep up with the network as long as at least one of the `rippled` servers is synced. + {% /admonition %} + + The [example config file](https://github.com/XRPLF/clio/blob/develop/docs/examples/config/example-config.json) accesses the `rippled` server running on the local loopback network (127.0.0.1), with the WebSocket (WS) on port 6005 and gRPC on port 50051. + + 2. Update the `rippled` server's config file to allow the Clio server to connect to it. The package installs this file at `/etc/opt/ripple/rippled.cfg`. + - Open a port to accept unencrypted, non-admin WebSocket connections. ``` - "etl_sources": - [ - { - "ip":"127.0.0.1", - "ws_port":"6005", - "grpc_port":"50051" - } - ] + [port_ws_public] + port = 6005 + ip = 0.0.0.0 + protocol = ws ``` - Each entry in the `etl_sources` JSON array should contain the following fields: - - | Field | Type | Description | - |-------------|--------|-------------| - | `ip` | String | The IP address of the `rippled` server. | - | `ws_port` | String | The port where `rippled` accepts unencrypted (non-admin) WebSocket connections. The Clio server forwards some types of API requests to this port. | - | `grpc_port` | String | The port where `rippled` accepts gRPC requests. | - - {% admonition type="info" name="Note" %} - You can use multiple `rippled` servers as a data source by adding more entries to the `etl_sources` section. If you do, Clio load balances requests across all the servers in the list, and can keep up with the network as long as at least one of the `rippled` servers is synced. + {% admonition type="warning" name="Caution" %} + Make sure your network firewall is configured not to forward outside requests on this port to your `rippled` server unless you intend to serve API requests to the general public. {% /admonition %} - The [example config file](https://github.com/XRPLF/clio/blob/develop/docs/examples/config/example-config.json) accesses the `rippled` server running on the local loopback network (127.0.0.1), with the WebSocket (WS) on port 6005 and gRPC on port 50051. + - Open a port to handle gRPC requests and specify the IP(s) of Clio server(s) in the `secure_gateway` entry. - 2. Update the `rippled` server's config file to allow the Clio server to connect to it. The package installs this file at `/etc/opt/ripple/rippled.cfg`. + ``` + [port_grpc] + port = 50051 + ip = 0.0.0.0 + secure_gateway = 127.0.0.1 + ``` - * Open a port to accept unencrypted, non-admin WebSocket connections. - - ``` - [port_ws_public] - port = 6005 - ip = 0.0.0.0 - protocol = ws - ``` - - {% admonition type="warning" name="Caution" %} - Make sure your network firewall is configured not to forward outside requests on this port to your `rippled` server unless you intend to serve API requests to the general public. - {% /admonition %} - - * Open a port to handle gRPC requests and specify the IP(s) of Clio server(s) in the `secure_gateway` entry. - - ``` - [port_grpc] - port = 50051 - ip = 0.0.0.0 - secure_gateway = 127.0.0.1 - ``` - - {% admonition type="warning" name="Caution" %} - If you are not running Clio on the same machine as `rippled`, change the `secure_gateway` in the example stanza to use the IP address of the Clio server. - {% /admonition %} + {% admonition type="warning" name="Caution" %} + If you are not running Clio on the same machine as `rippled`, change the `secure_gateway` in the example stanza to use the IP address of the Clio server. + {% /admonition %} 9. Enable and start the Clio systemd service. - ``` - sudo systemctl enable clio - ``` + ``` + sudo systemctl enable clio + ``` 10. Start the `rippled` and Clio servers. @@ -188,11 +182,7 @@ Before you install Clio, you must meet the following requirements. If you are starting with a fresh database, Clio needs to download the full ledger. This can take some time. If you are starting both servers for the first time, it can take even longer because Clio waits for `rippled` to sync before extracting ledgers. - - - - ## See Also - **Concepts:** - - [The Clio Server](../../concepts/networks-and-servers/the-clio-server.md) + - [The Clio Server](../../concepts/networks-and-servers/the-clio-server.md) diff --git a/docs/infrastructure/installation/install-rippled-on-rhel.md b/docs/infrastructure/installation/install-rippled-on-rhel.md index 10a5df1c14..abd1b3b001 100644 --- a/docs/infrastructure/installation/install-rippled-on-rhel.md +++ b/docs/infrastructure/installation/install-rippled-on-rhel.md @@ -1,9 +1,10 @@ --- seo: - description: Install a precompiled rippled binary on Red Hat Enterprise Linux. + description: Install a precompiled rippled binary on Red Hat Enterprise Linux. labels: - Core Server --- + # Install on Red Hat Enterprise Linux This page describes the recommended instructions for installing the latest stable version of `rippled` on **Red Hat Enterprise Linux**, using a binary that has been compiled and published by Ripple as an `rpm` package. @@ -14,105 +15,101 @@ Currently, **Red Hat Enterprise Linux (RHEL) 9.6 is supported on x86_64 processo Before you install `rippled`, you must meet the [System Requirements](system-requirements.md). - ## Installation Steps 1. Install the Ripple RPM repository: - Choose the appropriate RPM repository for the stability of releases you want: + Choose the appropriate RPM repository for the stability of releases you want: + - `stable` for the latest production release (`master` branch) + - `unstable` for pre-release builds (`release` branch) + - `nightly` for experimental/development builds (`develop` branch) - - `stable` for the latest production release (`master` branch) - - `unstable` for pre-release builds (`release` branch) - - `nightly` for experimental/development builds (`develop` branch) + {% tabs %} - {% tabs %} + ```{% label="Stable" %} + cat << REPOFILE | sudo tee /etc/yum.repos.d/ripple.repo + [ripple-stable] + name=XRP Ledger Packages + enabled=1 + gpgcheck=0 + repo_gpgcheck=1 + baseurl=https://repos.ripple.com/repos/rippled-rpm/stable/ + gpgkey=https://repos.ripple.com/repos/rippled-rpm/stable/repodata/repomd.xml.key + REPOFILE + ``` - ```{% label="Stable" %} - cat << REPOFILE | sudo tee /etc/yum.repos.d/ripple.repo - [ripple-stable] - name=XRP Ledger Packages - enabled=1 - gpgcheck=0 - repo_gpgcheck=1 - baseurl=https://repos.ripple.com/repos/rippled-rpm/stable/ - gpgkey=https://repos.ripple.com/repos/rippled-rpm/stable/repodata/repomd.xml.key - REPOFILE - ``` + ```{% label="Pre-release" %} + cat << REPOFILE | sudo tee /etc/yum.repos.d/ripple.repo + [ripple-unstable] + name=XRP Ledger Packages + enabled=1 + gpgcheck=0 + repo_gpgcheck=1 + baseurl=https://repos.ripple.com/repos/rippled-rpm/unstable/ + gpgkey=https://repos.ripple.com/repos/rippled-rpm/unstable/repodata/repomd.xml.key + REPOFILE + ``` - ```{% label="Pre-release" %} - cat << REPOFILE | sudo tee /etc/yum.repos.d/ripple.repo - [ripple-unstable] - name=XRP Ledger Packages - enabled=1 - gpgcheck=0 - repo_gpgcheck=1 - baseurl=https://repos.ripple.com/repos/rippled-rpm/unstable/ - gpgkey=https://repos.ripple.com/repos/rippled-rpm/unstable/repodata/repomd.xml.key - REPOFILE - ``` + ```{% label="Development" %} + cat << REPOFILE | sudo tee /etc/yum.repos.d/ripple.repo + [ripple-nightly] + name=XRP Ledger Packages + enabled=1 + gpgcheck=0 + repo_gpgcheck=1 + baseurl=https://repos.ripple.com/repos/rippled-rpm/nightly/ + gpgkey=https://repos.ripple.com/repos/rippled-rpm/nightly/repodata/repomd.xml.key + REPOFILE + ``` - ```{% label="Development" %} - cat << REPOFILE | sudo tee /etc/yum.repos.d/ripple.repo - [ripple-nightly] - name=XRP Ledger Packages - enabled=1 - gpgcheck=0 - repo_gpgcheck=1 - baseurl=https://repos.ripple.com/repos/rippled-rpm/nightly/ - gpgkey=https://repos.ripple.com/repos/rippled-rpm/nightly/repodata/repomd.xml.key - REPOFILE - ``` - - {% /tabs %} + {% /tabs %} 2. Fetch the latest repo updates: - ``` - sudo yum -y update - ``` + ``` + sudo yum -y update + ``` 3. Install the new `rippled` package: - ``` - sudo yum install rippled - ``` + ``` + sudo yum install rippled + ``` 4. Reload systemd unit files: - ``` - sudo systemctl daemon-reload - ``` + ``` + sudo systemctl daemon-reload + ``` 5. Configure the `rippled` service to start on boot: - ``` - sudo systemctl enable rippled.service - ``` + ``` + sudo systemctl enable rippled.service + ``` 6. Start the `rippled` service: - ``` - sudo systemctl start rippled.service - ``` - + ``` + sudo systemctl start rippled.service + ``` ## Next Steps {% partial file="/docs/_snippets/post-rippled-install.md" /%} - ## See Also - **Concepts:** - - [The `rippled` Server](../../concepts/networks-and-servers/index.md) - - [Consensus](../../concepts/consensus-protocol/index.md) + - [The `rippled` Server](../../concepts/networks-and-servers/index.md) + - [Consensus](../../concepts/consensus-protocol/index.md) - **Tutorials:** - - [Configure rippled](../configuration/index.md) - - [Troubleshoot rippled](../troubleshooting/index.md) - - [Get Started with the rippled API](../../tutorials/http-websocket-apis/build-apps/get-started.md) + - [Configure rippled](../configuration/index.md) + - [Troubleshoot rippled](../troubleshooting/index.md) + - [Get Started with the rippled API](../../tutorials/http-websocket-apis/build-apps/get-started.md) - **References:** - - [rippled API Reference](../../references/http-websocket-apis/index.md) - - [`rippled` Commandline Usage](../commandline-usage.md) - - [server_info method][] + - [rippled API Reference](../../references/http-websocket-apis/index.md) + - [`rippled` Commandline Usage](../commandline-usage.md) + - [server_info method][] {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/infrastructure/installation/install-rippled-on-ubuntu.md b/docs/infrastructure/installation/install-rippled-on-ubuntu.md index 8eedc0de3d..d917af99b2 100644 --- a/docs/infrastructure/installation/install-rippled-on-ubuntu.md +++ b/docs/infrastructure/installation/install-rippled-on-ubuntu.md @@ -2,151 +2,145 @@ html: install-rippled-on-ubuntu.html parent: install-rippled.html seo: - description: Install a precompiled rippled binary on Ubuntu Linux. + description: Install a precompiled rippled binary on Ubuntu Linux. labels: - Core Server --- + # Install on Ubuntu or Debian Linux This page describes the recommended instructions for installing the latest stable version of `rippled` on **Ubuntu Linux**, using a binary that has been compiled and published by Ripple as a `deb` package. Currently, **Ubuntu 22.04 and Ubuntu 24.04 on x86_64 processors** have received the highest level of support and testing. Packages are also available for **Debian Linux 12 Bookworm**. You may be able to adapt these instructions to other Linux distributions that also use the `apt` package manager, but other configurations are not officially supported. - ## Prerequisites Before you install `rippled`, you must meet the [System Requirements](system-requirements.md). - ## Installation Steps 1. Update repositories: - ``` - sudo apt -y update - ``` + ``` + sudo apt -y update + ``` 2. Install utilities: - ``` - sudo apt -y install apt-transport-https ca-certificates wget gnupg - ``` + ``` + sudo apt -y install apt-transport-https ca-certificates wget gnupg + ``` 3. Add Ripple's package-signing GPG key to your list of trusted keys: - ``` - sudo install -m 0755 -d /etc/apt/keyrings && \ - wget -qO- https://repos.ripple.com/repos/api/gpg/key/public | \ - sudo gpg --dearmor -o /etc/apt/keyrings/ripple.gpg - ``` + ``` + sudo install -m 0755 -d /etc/apt/keyrings && \ + wget -qO- https://repos.ripple.com/repos/api/gpg/key/public | \ + sudo gpg --dearmor -o /etc/apt/keyrings/ripple.gpg + ``` 4. Check the fingerprint of the newly-added key: - ``` - gpg --show-keys /etc/apt/keyrings/ripple.gpg - ``` + ``` + gpg --show-keys /etc/apt/keyrings/ripple.gpg + ``` - The output should include an entry for Ripple such as the following: + The output should include an entry for Ripple such as the following: - ``` - pub rsa3072 2019-02-14 [SC] [expires: 2026-02-17] - C0010EC205B35A3310DC90DE395F97FFCCAFD9A2 - uid TechOps Team at Ripple - sub rsa3072 2019-02-14 [E] [expires: 2026-02-17] - ``` + ``` + pub rsa3072 2019-02-14 [SC] [expires: 2026-02-17] + C0010EC205B35A3310DC90DE395F97FFCCAFD9A2 + uid TechOps Team at Ripple + sub rsa3072 2019-02-14 [E] [expires: 2026-02-17] + ``` - In particular, make sure that the fingerprint matches. (In the above example, the fingerprint is on the second line, starting with `C001`.) + In particular, make sure that the fingerprint matches. (In the above example, the fingerprint is on the second line, starting with `C001`.) 5. Add the appropriate Ripple repository for your operating system version: - ``` - echo "deb [signed-by=/etc/apt/keyrings/ripple.gpg] https://repos.ripple.com/repos/rippled-deb noble stable" | \ - sudo tee -a /etc/apt/sources.list.d/ripple.list - ``` + ``` + echo "deb [signed-by=/etc/apt/keyrings/ripple.gpg] https://repos.ripple.com/repos/rippled-deb noble stable" | \ + sudo tee -a /etc/apt/sources.list.d/ripple.list + ``` - The above example is appropriate for **Ubuntu 24.04 Noble Numbat**. For other operating systems, replace the word `noble` with one of the following: + The above example is appropriate for **Ubuntu 24.04 Noble Numbat**. For other operating systems, replace the word `noble` with one of the following: + - `bullseye` for **Debian 11 Bullseye** + - `bookworm` for **Debian 12 Bookworm** + - `jammy` for **Ubuntu 22.04 Jammy Jellyfish** + - `noble` for **Ubuntu 24.04 Noble Numbat** - - `bullseye` for **Debian 11 Bullseye** - - `bookworm` for **Debian 12 Bookworm** - - `jammy` for **Ubuntu 22.04 Jammy Jellyfish** - - `noble` for **Ubuntu 24.04 Noble Numbat** + If you want access to development or pre-release versions of `rippled`, use one of the following instead of `stable`: + - `unstable` - Pre-release builds ([`release` branch](https://github.com/XRPLF/rippled/tree/release)) + - `nightly` - Experimental/development builds ([`develop` branch](https://github.com/XRPLF/rippled/tree/develop)) - If you want access to development or pre-release versions of `rippled`, use one of the following instead of `stable`: - - - `unstable` - Pre-release builds ([`release` branch](https://github.com/XRPLF/rippled/tree/release)) - - `nightly` - Experimental/development builds ([`develop` branch](https://github.com/XRPLF/rippled/tree/develop)) - - {% admonition type="danger" name="Warning" %}Unstable and nightly builds may be broken at any time. Do not use these builds for production servers.{% /admonition %} + {% admonition type="danger" name="Warning" %}Unstable and nightly builds may be broken at any time. Do not use these builds for production servers.{% /admonition %} 6. Update the package index to include Ripple's repo and install `rippled`. - ``` - sudo apt -y update && sudo apt -y install rippled - ``` + ``` + sudo apt -y update && sudo apt -y install rippled + ``` 7. Check the status of the `rippled` service: - ``` - systemctl status rippled.service - ``` + ``` + systemctl status rippled.service + ``` - The `rippled` service should start automatically. If not, you can start it manually: + The `rippled` service should start automatically. If not, you can start it manually: - ``` - sudo systemctl start rippled.service - ``` + ``` + sudo systemctl start rippled.service + ``` 8. Optional: allow `rippled` to bind to privileged ports. - This allows you to serve incoming API requests on port 80 or 443. (If you want to do so, you must also update the config file's port settings.) + This allows you to serve incoming API requests on port 80 or 443. (If you want to do so, you must also update the config file's port settings.) - ``` - sudo setcap 'cap_net_bind_service=+ep' /opt/ripple/bin/rippled - ``` + ``` + sudo setcap 'cap_net_bind_service=+ep' /opt/ripple/bin/rippled + ``` 9. Optional: configure core dumps - By default Ubuntu is not configured to produce core files useful for debugging crashes. - First run: - - ``` - ulimit -c unlimited - ``` - - Now run `sudo systemctl edit rippled`. The default editor should open and add + By default Ubuntu is not configured to produce core files useful for debugging crashes. + First run: - ``` - [Service] - LimitCORE=infinity - ``` + ``` + ulimit -c unlimited + ``` - This creates the file `/etc/systemd/system/rippled.service.d/override.conf` and configures the OS to save core dumps, without changing the service file provided by the `rippled` package. If your server crashes, you can find the core dump in `/var/lib/apport/coredump/`. To load the core dump for inspection, use a command such as the following: + Now run `sudo systemctl edit rippled`. The default editor should open and add - ``` - gdb /opt/ripple/bin/rippled /var/lib/apport/coredump/core - ``` + ``` + [Service] + LimitCORE=infinity + ``` - {% admonition type="info" name="Note" %}To debug a core file this way, you must have the `rippled-dbgsym` package installed, and you need permission to read files in the core dump directory.{% /admonition %} + This creates the file `/etc/systemd/system/rippled.service.d/override.conf` and configures the OS to save core dumps, without changing the service file provided by the `rippled` package. If your server crashes, you can find the core dump in `/var/lib/apport/coredump/`. To load the core dump for inspection, use a command such as the following: + ``` + gdb /opt/ripple/bin/rippled /var/lib/apport/coredump/core + ``` + + {% admonition type="info" name="Note" %}To debug a core file this way, you must have the `rippled-dbgsym` package installed, and you need permission to read files in the core dump directory.{% /admonition %} ## Next Steps {% partial file="/docs/_snippets/post-rippled-install.md" /%} - - ## See Also - **Concepts:** - - [The `rippled` Server](../../concepts/networks-and-servers/index.md) - - [Consensus](../../concepts/consensus-protocol/index.md) + - [The `rippled` Server](../../concepts/networks-and-servers/index.md) + - [Consensus](../../concepts/consensus-protocol/index.md) - **Tutorials:** - - [Configure rippled](../configuration/index.md) - - [Troubleshoot rippled](../troubleshooting/index.md) - - [Get Started with the rippled API](../../tutorials/http-websocket-apis/build-apps/get-started.md) + - [Configure rippled](../configuration/index.md) + - [Troubleshoot rippled](../troubleshooting/index.md) + - [Get Started with the rippled API](../../tutorials/http-websocket-apis/build-apps/get-started.md) - **References:** - - [rippled API Reference](../../references/http-websocket-apis/index.md) - - [`rippled` Commandline Usage](../commandline-usage.md) - - [server_info method][] + - [rippled API Reference](../../references/http-websocket-apis/index.md) + - [`rippled` Commandline Usage](../commandline-usage.md) + - [server_info method][] {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/infrastructure/installation/system-requirements.md b/docs/infrastructure/installation/system-requirements.md index 27a89826f5..fa87c0be8c 100644 --- a/docs/infrastructure/installation/system-requirements.md +++ b/docs/infrastructure/installation/system-requirements.md @@ -1,9 +1,10 @@ --- seo: - description: Hardware and software requirements for running rippled or Clio. + description: Hardware and software requirements for running rippled or Clio. labels: - Core Server --- + # System Requirements The following system requirements apply to both the core XRP Ledger server, `rippled`, and the Clio server for API access. @@ -28,7 +29,7 @@ For testing purposes, you can run an XRP Ledger server on commodity hardware wit - Operating System: macOS, Windows (64-bit), or most Linux distributions (Red Hat, Ubuntu, and Debian supported). - CPU: 64-bit x86_64, 4+ cores. - - For development purposes, it is also possible to compile `rippled` for some Apple Silicon or ARM processors. See the [Build instructions](https://github.com/XRPLF/rippled/blob/develop/BUILD.md) for guidance. However, architectures other than x86_64 are not officially supported and are not recommended for production. + - For development purposes, it is also possible to compile `rippled` for some Apple Silicon or ARM processors. See the [Build instructions](https://github.com/XRPLF/rippled/blob/develop/BUILD.md) for guidance. However, architectures other than x86_64 are not officially supported and are not recommended for production. - Disk: SSD / NVMe (10,000 IOPS sustained - not burst or peak - or better). Minimum 50 GB for the database partition. Do not use Amazon Elastic Block Store (AWS EBS) because its latency is too high to sync reliably. - RAM: 16 GB+. @@ -36,24 +37,22 @@ For testing purposes, you can run an XRP Ledger server on commodity hardware wit Amazon EC2's `i3.2xlarge` VM size may be appropriate depending on your workload. A fast network connection is preferable. Any increase in a server's client-handling load increases resources needs. - ## System Time A `rippled` server relies on maintaining the correct time. It is recommended that the system synchronize time using the Network Time Protocol (NTP) with daemons such as `ntpd` or `chrony`. - ## See Also - **Concepts:** - - [The `rippled` Server](../../concepts/networks-and-servers/index.md) - - [Consensus](../../concepts/consensus-protocol/index.md) + - [The `rippled` Server](../../concepts/networks-and-servers/index.md) + - [Consensus](../../concepts/consensus-protocol/index.md) - **Tutorials:** - - [Capacity Planning](capacity-planning.md) - More information on the recommended specifications and planning for production needs - - [Install `rippled`](index.md) - - [Troubleshoot rippled](../troubleshooting/index.md) + - [Capacity Planning](capacity-planning.md) - More information on the recommended specifications and planning for production needs + - [Install `rippled`](index.md) + - [Troubleshoot rippled](../troubleshooting/index.md) - **References:** - - [rippled API Reference](../../references/http-websocket-apis/index.md) - - [`rippled` Commandline Usage](../commandline-usage.md) - - [server_info method][] + - [rippled API Reference](../../references/http-websocket-apis/index.md) + - [`rippled` Commandline Usage](../commandline-usage.md) + - [server_info method][] {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/infrastructure/installation/update-rippled-automatically-on-linux.md b/docs/infrastructure/installation/update-rippled-automatically-on-linux.md index 4b54d09b4d..d43426ae96 100644 --- a/docs/infrastructure/installation/update-rippled-automatically-on-linux.md +++ b/docs/infrastructure/installation/update-rippled-automatically-on-linux.md @@ -1,10 +1,11 @@ --- seo: - description: Set up automatic updates for rippled on Linux. + description: Set up automatic updates for rippled on Linux. labels: - Core Server - Security --- + # Update Automatically on Linux On Linux, you can set up `rippled` to automatically upgrade to the latest version with a one-time `cron` configuration. @@ -17,32 +18,31 @@ To set up automatic updates, complete the following steps: 2. Create a symlink in your `cron.d` folder to the `/opt/ripple/etc/update-rippled-cron` config file: - ``` - sudo ln -s /opt/ripple/etc/update-rippled-cron /etc/cron.d/ - ``` + ``` + sudo ln -s /opt/ripple/etc/update-rippled-cron /etc/cron.d/ + ``` - This configuration runs a script to update the installed `rippled` package within an hour of each new release. To avoid network instability from too many servers updating at the same time, this script does not automatically restart the server, so it continues to run the old version until it restarts. + This configuration runs a script to update the installed `rippled` package within an hour of each new release. To avoid network instability from too many servers updating at the same time, this script does not automatically restart the server, so it continues to run the old version until it restarts. 3. **Whenever a new release comes out,** you must manually restart the `rippled` service to switch to the updated software. - ``` - sudo systemctl restart rippled.service - ``` + ``` + sudo systemctl restart rippled.service + ``` {% admonition type="warning" name="Caution" %}In the future, it is possible that changes to Ripple's repositories may require manual intervention to update the URLs where your script searches for updates. Stay tuned to the [XRP Ledger Blog](/blog/) or the [ripple-server mailing list](https://groups.google.com/forum/#!forum/ripple-server) for announcements on any required changes.{% /admonition %} - ## See Also - **Concepts:** - - [The `rippled` Server](../../concepts/networks-and-servers/index.md) - - [Consensus](../../concepts/consensus-protocol/index.md) + - [The `rippled` Server](../../concepts/networks-and-servers/index.md) + - [Consensus](../../concepts/consensus-protocol/index.md) - **Tutorials:** - - [Capacity Planning](capacity-planning.md) - - [Troubleshoot rippled](../troubleshooting/index.md) + - [Capacity Planning](capacity-planning.md) + - [Troubleshoot rippled](../troubleshooting/index.md) - **References:** - - [rippled API Reference](../../references/http-websocket-apis/index.md) - - [`rippled` Commandline Usage](../commandline-usage.md) - - [server_info method][] + - [rippled API Reference](../../references/http-websocket-apis/index.md) + - [`rippled` Commandline Usage](../commandline-usage.md) + - [server_info method][] {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/infrastructure/installation/update-rippled-manually-on-rhel.md b/docs/infrastructure/installation/update-rippled-manually-on-rhel.md index 700cc45399..2790107d92 100644 --- a/docs/infrastructure/installation/update-rippled-manually-on-rhel.md +++ b/docs/infrastructure/installation/update-rippled-manually-on-rhel.md @@ -1,10 +1,11 @@ --- seo: - description: Manually update rippled on CentOS or Red Hat Enterprise Linux. + description: Manually update rippled on CentOS or Red Hat Enterprise Linux. labels: - Core Server - Security --- + # Update Manually on Red Hat Enterprise Linux This page describes how to update manually to the latest release of `rippled` on Red Hat Enterprise Linux. You can also set up [automatic updates](update-rippled-automatically-on-linux.md). @@ -17,35 +18,34 @@ To update manually, complete the following steps: 1. Download and install the latest `rippled` package: - ``` - sudo yum update rippled - ``` + ``` + sudo yum update rippled + ``` - This update procedure leaves your existing config files in place. + This update procedure leaves your existing config files in place. 2. Reload the `systemd` unit files: - ``` - sudo systemctl daemon-reload - ``` + ``` + sudo systemctl daemon-reload + ``` 3. Restart the `rippled` service: - ``` - sudo service rippled restart - ``` - + ``` + sudo service rippled restart + ``` ## See Also - **Concepts:** - - [The `rippled` Server](../../concepts/networks-and-servers/index.md) - - [Consensus](../../concepts/consensus-protocol/index.md) + - [The `rippled` Server](../../concepts/networks-and-servers/index.md) + - [Consensus](../../concepts/consensus-protocol/index.md) - **Tutorials:** - - [Troubleshoot rippled](../troubleshooting/index.md) + - [Troubleshoot rippled](../troubleshooting/index.md) - **References:** - - [rippled API Reference](../../references/http-websocket-apis/index.md) - - [`rippled` Commandline Usage](../commandline-usage.md) - - [server_info method][] + - [rippled API Reference](../../references/http-websocket-apis/index.md) + - [`rippled` Commandline Usage](../commandline-usage.md) + - [server_info method][] {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/infrastructure/installation/update-rippled-manually-on-ubuntu.md b/docs/infrastructure/installation/update-rippled-manually-on-ubuntu.md index e9ec1af9fb..b4b4fe2b47 100644 --- a/docs/infrastructure/installation/update-rippled-manually-on-ubuntu.md +++ b/docs/infrastructure/installation/update-rippled-manually-on-ubuntu.md @@ -1,10 +1,11 @@ --- seo: - description: Manually update rippled on Ubuntu Linux. + description: Manually update rippled on Ubuntu Linux. labels: - Core Server - Security --- + # Update Manually on Ubuntu or Debian This page describes how to manually update to the latest release of `rippled` on Ubuntu Linux. You can also set up [automatic updates](update-rippled-automatically-on-linux.md). @@ -17,39 +18,38 @@ To update manually, complete the following steps: 1. Update repositories: - ``` - sudo apt -y update - ``` + ``` + sudo apt -y update + ``` 2. Upgrade the `rippled` package: - ``` - sudo apt -y upgrade rippled - ``` + ``` + sudo apt -y upgrade rippled + ``` 3. Reload the `systemd` unit files: - ``` - sudo systemctl daemon-reload - ``` + ``` + sudo systemctl daemon-reload + ``` 4. Restart the `rippled` service: - ``` - sudo systemctl restart rippled - ``` - + ``` + sudo systemctl restart rippled + ``` ## See Also - **Concepts:** - - [The `rippled` Server](../../concepts/networks-and-servers/index.md) - - [Consensus](../../concepts/consensus-protocol/index.md) + - [The `rippled` Server](../../concepts/networks-and-servers/index.md) + - [Consensus](../../concepts/consensus-protocol/index.md) - **Tutorials:** - - [Troubleshoot rippled](../troubleshooting/index.md) + - [Troubleshoot rippled](../troubleshooting/index.md) - **References:** - - [rippled API Reference](../../references/http-websocket-apis/index.md) - - [`rippled` Commandline Usage](../commandline-usage.md) - - [server_info method][] + - [rippled API Reference](../../references/http-websocket-apis/index.md) + - [`rippled` Commandline Usage](../commandline-usage.md) + - [server_info method][] {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/infrastructure/testing-and-auditing/advance-the-ledger-in-stand-alone-mode.md b/docs/infrastructure/testing-and-auditing/advance-the-ledger-in-stand-alone-mode.md index 2d4b953636..7844ae497f 100644 --- a/docs/infrastructure/testing-and-auditing/advance-the-ledger-in-stand-alone-mode.md +++ b/docs/infrastructure/testing-and-auditing/advance-the-ledger-in-stand-alone-mode.md @@ -2,10 +2,11 @@ html: advance-the-ledger-in-stand-alone-mode.html parent: use-stand-alone-mode.html seo: - description: Make progress in stand-alone mode by manually closing the ledger. + description: Make progress in stand-alone mode by manually closing the ledger. labels: - Core Server --- + # Advance the Ledger in Stand-Alone Mode In [stand-alone mode][], `rippled` does not communicate to other members of the peer-to-peer network or participate in a consensus process. Since there is no consensus process in this mode, you must manually advance the ledger index using the [ledger_accept method][]: @@ -16,16 +17,15 @@ rippled ledger_accept --conf=/path/to/rippled.cfg In stand-alone mode, `rippled` makes no distinction between a "closed" ledger version and a "validated" ledger version. (For more information about the difference, see [The XRP Ledger Consensus Process](../../concepts/consensus-protocol/index.md).) -Whenever `rippled` closes a ledger, it reorders the transactions according to a deterministic but hard-to-game algorithm. (This is an important part of consensus, since transactions may arrive at different parts of the network in different order.) When using `rippled` in stand-alone mode, you should manually advance the ledger before submitting a transaction that depends on the result of a transaction from a different address. Otherwise, the two transactions might be executed in reverse order when the ledger is closed. +Whenever `rippled` closes a ledger, it reorders the transactions according to a deterministic but hard-to-game algorithm. (This is an important part of consensus, since transactions may arrive at different parts of the network in different order.) When using `rippled` in stand-alone mode, you should manually advance the ledger before submitting a transaction that depends on the result of a transaction from a different address. Otherwise, the two transactions might be executed in reverse order when the ledger is closed. {% admonition type="info" name="Note" %}You can safely submit multiple transactions from a single address to a single ledger, because `rippled` sorts transactions from the same address in ascending order by [`Sequence` number](../../references/protocol/transactions/common-fields.md).{% /admonition %} - ## See Also - **References:** - - [ledger_accept method][] - - [server_info method][] - - [`rippled` Commandline Usage](../commandline-usage.md) + - [ledger_accept method][] + - [server_info method][] + - [`rippled` Commandline Usage](../commandline-usage.md) {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/infrastructure/testing-and-auditing/index.md b/docs/infrastructure/testing-and-auditing/index.md index b373db9e0f..48252bcfdb 100644 --- a/docs/infrastructure/testing-and-auditing/index.md +++ b/docs/infrastructure/testing-and-auditing/index.md @@ -4,11 +4,11 @@ parent: infrastructure.html metadata: indexPage: true seo: - description: For new features and experiments, you can use Stand-Alone Mode to test features with a full network. + description: For new features and experiments, you can use Stand-Alone Mode to test features with a full network. --- + # Testing and Auditing For new features and experiments, you can use Stand-Alone Mode to test features with a full network. - {% child-pages /%} diff --git a/docs/infrastructure/testing-and-auditing/load-a-saved-ledger-in-stand-alone-mode.md b/docs/infrastructure/testing-and-auditing/load-a-saved-ledger-in-stand-alone-mode.md index 2a493abafe..53207e0641 100644 --- a/docs/infrastructure/testing-and-auditing/load-a-saved-ledger-in-stand-alone-mode.md +++ b/docs/infrastructure/testing-and-auditing/load-a-saved-ledger-in-stand-alone-mode.md @@ -2,10 +2,11 @@ html: load-a-saved-ledger-in-stand-alone-mode.html parent: use-stand-alone-mode.html seo: - description: Start in stand-alone mode from a specific saved ledger to test or replay transactions. + description: Start in stand-alone mode from a specific saved ledger to test or replay transactions. labels: - Core Server --- + # Load a Saved Ledger in Stand-Alone Mode You can start a `rippled` server in [Stand-Alone Mode](../../concepts/networks-and-servers/rippled-server-modes.md) using a [historical ledger version](../../concepts/ledgers/index.md) that was previously saved to disk. For example, if your `rippled` server was previously synced with any XRP Ledger peer-to-peer network including [the production Mainnet, the Testnet, or the Devnet](../../concepts/networks-and-servers/parallel-networks.md), you can load any ledger version your server had available. @@ -26,9 +27,9 @@ rippled --conf=/path/to/rippled.cfg Use the [server_info method][] to check the state of your server relative to the network. Your server is synced when the `server_state` value shows any of the following values: -* `full` -* `proposing` -* `validating` +- `full` +- `proposing` +- `validating` For more information, see [Possible Server States](../../references/http-websocket-apis/api-conventions/rippled-server-states.md). @@ -76,14 +77,13 @@ rippled ledger_accept --conf=/path/to/rippled.cfg This puts the transactions in canonical order and processes them to make a closed ledger. - ## See Also - **References:** - - [ledger_accept method][] - - [server_info method][] - - [`rippled` Commandline Usage](../commandline-usage.md) + - [ledger_accept method][] + - [server_info method][] + - [`rippled` Commandline Usage](../commandline-usage.md) - **Use Cases:** - - [Contribute Code to the XRP Ledger](/resources/contribute-code/index.md) + - [Contribute Code to the XRP Ledger](/resources/contribute-code/index.md) {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/infrastructure/testing-and-auditing/run-private-network-with-docker.md b/docs/infrastructure/testing-and-auditing/run-private-network-with-docker.md index b1cb366373..1cc442cbe9 100644 --- a/docs/infrastructure/testing-and-auditing/run-private-network-with-docker.md +++ b/docs/infrastructure/testing-and-auditing/run-private-network-with-docker.md @@ -3,7 +3,7 @@ html: private-network-with-docker.html name: Run a Private Network with Docker parent: use-stand-alone-mode.html seo: - description: Learn how to set up your own XRP private ledger network with Docker and Docker Compose. + description: Learn how to set up your own XRP private ledger network with Docker and Docker Compose. labels: - Core Server --- @@ -28,7 +28,7 @@ In this tutorial, you will learn: The following diagram shows a high-level overview of the containerized private network that you will set up. -[{% inline-svg file="/docs/img/xrp-ledger-private-network-docker.svg" /%}](/docs/img/xrp-ledger-private-network-docker.svg "Figure 1: Diagram of a three node containerized private ledger network") +[{% inline-svg file="/docs/img/xrp-ledger-private-network-docker.svg" /%}](/docs/img/xrp-ledger-private-network-docker.svg 'Figure 1: Diagram of a three node containerized private ledger network') ## Prerequisites @@ -40,72 +40,72 @@ Generate the keys for **each** of your validator nodes by using the `validator-k 1. In your terminal, run the following to execute commands within the `rippled` Docker container shell: - ``` - docker run -it --entrypoint /bin/bash xrpllabsofficial/xrpld:latest - ``` + ``` + docker run -it --entrypoint /bin/bash xrpllabsofficial/xrpld:latest + ``` - {% admonition type="info" name="Note" %}For Apple M1 or M2 chips, run `docker run -it --platform linux/amd64 --entrypoint /bin/bash xrpllabsofficial/xrpld:latest` instead.{% /admonition %} + {% admonition type="info" name="Note" %}For Apple M1 or M2 chips, run `docker run -it --platform linux/amd64 --entrypoint /bin/bash xrpllabsofficial/xrpld:latest` instead.{% /admonition %} - Sample output: + Sample output: - ``` - root@7732bd585b14:/# - ``` + ``` + root@7732bd585b14:/# + ``` 2. Generate a validator keypair using the `create_keys` command. - ``` - cd /opt/ripple/bin && - ./validator-keys create_keys --keyfile /PATH/TO/YOUR/validator--keys.json - ``` + ``` + cd /opt/ripple/bin && + ./validator-keys create_keys --keyfile /PATH/TO/YOUR/validator--keys.json + ``` - Sample output: + Sample output: - ``` - Validator keys stored in /PATH/TO/YOUR/validator--keys.json + ``` + Validator keys stored in /PATH/TO/YOUR/validator--keys.json - This file should be stored securely and not shared. - ``` + This file should be stored securely and not shared. + ``` - {% admonition type="danger" name="Warning" %}In a production or test environment you should follow best practices always and store the generated keys in a secure, offline, and recoverable location, such as an encrypted USB flash drive. However, as this tutorial is an example of a local development setup, storing the keys on your computer is sufficient.{% /admonition %} + {% admonition type="danger" name="Warning" %}In a production or test environment you should follow best practices always and store the generated keys in a secure, offline, and recoverable location, such as an encrypted USB flash drive. However, as this tutorial is an example of a local development setup, storing the keys on your computer is sufficient.{% /admonition %} 3. Copy the **public_key** value from the JSON output, and store it in a text file on your computer. - ``` - cat /PATH/TO/YOUR/validator--keys.json - ``` + ``` + cat /PATH/TO/YOUR/validator--keys.json + ``` - Sample output: + Sample output: - ``` - { - "key_type" : "ed25519", - "public_key" : "nHD9jtA9y1nWC2Fs1HeRkEisqV3iFpk12wHmHi3mQxQwUP1ywUKs", - "revoked" : false, - "secret_key" : "paLsUUm9bRrvNBPpvJQ4nF7vdRTZyDNofGMMYs9EDeEKeNJa99q", - "token_sequence" : 0 - } - ``` + ``` + { + "key_type" : "ed25519", + "public_key" : "nHD9jtA9y1nWC2Fs1HeRkEisqV3iFpk12wHmHi3mQxQwUP1ywUKs", + "revoked" : false, + "secret_key" : "paLsUUm9bRrvNBPpvJQ4nF7vdRTZyDNofGMMYs9EDeEKeNJa99q", + "token_sequence" : 0 + } + ``` 4. Create a validator token using the `create_token` command. - ``` - ./validator-keys create_token --keyfile /PATH/TO/YOUR/validator--keys.json - ``` + ``` + ./validator-keys create_token --keyfile /PATH/TO/YOUR/validator--keys.json + ``` - Copy the token value from the output and save it in a text file on your computer. For example: + Copy the token value from the output and save it in a text file on your computer. For example: - ``` - [validator_token] - eyJ2YWxpZGF0aW9uX3NlY3J|dF9rZXkiOiI5ZWQ0NWY4NjYyNDFjYzE4YTI3NDdiNT - QzODdjMDYyNTkwNzk3MmY0ZTcxOTAyMzFmYWE5Mzc0NTdmYT|kYWY2IiwibWFuaWZl - c3QiOiJKQUFBQUFGeEllMUZ0d21pbXZHdEgyaUNjTUpxQzlnVkZLaWxHZncxL3ZDeE - hYWExwbGMyR25NaEFrRTFhZ3FYeEJ3RHdEYklENk9NU1l1TTBGREFscEFnTms4U0tG - bjdNTzJmZGtjd1JRSWhBT25ndTlzQUtxWFlvdUorbDJWMFcrc0FPa1ZCK1pSUzZQU2 - hsSkFmVXNYZkFpQnNWSkdlc2FhZE9KYy9hQVpva1MxdnltR21WcmxIUEtXWDNZeXd1 - NmluOEhBU1FLUHVnQkQ2N2tNYVJGR3ZtcEFUSGxHS0pkdkRGbFdQWXk1QXFEZWRGdj - VUSmEydzBpMjFlcTNNWXl3TFZKWm5GT3I3QzBrdzJBaVR6U0NqSXpkaXRROD0ifQ== - ``` + ``` + [validator_token] + eyJ2YWxpZGF0aW9uX3NlY3J|dF9rZXkiOiI5ZWQ0NWY4NjYyNDFjYzE4YTI3NDdiNT + QzODdjMDYyNTkwNzk3MmY0ZTcxOTAyMzFmYWE5Mzc0NTdmYT|kYWY2IiwibWFuaWZl + c3QiOiJKQUFBQUFGeEllMUZ0d21pbXZHdEgyaUNjTUpxQzlnVkZLaWxHZncxL3ZDeE + hYWExwbGMyR25NaEFrRTFhZ3FYeEJ3RHdEYklENk9NU1l1TTBGREFscEFnTms4U0tG + bjdNTzJmZGtjd1JRSWhBT25ndTlzQUtxWFlvdUorbDJWMFcrc0FPa1ZCK1pSUzZQU2 + hsSkFmVXNYZkFpQnNWSkdlc2FhZE9KYy9hQVpva1MxdnltR21WcmxIUEtXWDNZeXd1 + NmluOEhBU1FLUHVnQkQ2N2tNYVJGR3ZtcEFUSGxHS0pkdkRGbFdQWXk1QXFEZWRGdj + VUSmEydzBpMjFlcTNNWXl3TFZKWm5GT3I3QzBrdzJBaVR6U0NqSXpkaXRROD0ifQ== + ``` 5. Repeat steps **2-4** for the remaining validator nodes. Once you have generated the keys and tokens for _all_ validators, enter `exit` in your terminal to exit the Docker container. @@ -143,119 +143,119 @@ For each validator node, follow these steps: 2. Copy the information from the `rippled.cfg` template below into the file. - ``` - [server] - port_rpc_admin_local - port_rpc - port_ws_admin_local - port_ws_public - port_peer - # ssl_key = /etc/ssl/private/server.key - # ssl_cert = /etc/ssl/certs/server.crt + ``` + [server] + port_rpc_admin_local + port_rpc + port_ws_admin_local + port_ws_public + port_peer + # ssl_key = /etc/ssl/private/server.key + # ssl_cert = /etc/ssl/certs/server.crt - [port_rpc_admin_local] - port = 5005 - ip = 127.0.0.1 - admin = 127.0.0.1 - protocol = http + [port_rpc_admin_local] + port = 5005 + ip = 127.0.0.1 + admin = 127.0.0.1 + protocol = http - [port_ws_admin_local] - port = 6006 - ip = 127.0.0.1 - admin = 127.0.0.1 - protocol = ws + [port_ws_admin_local] + port = 6006 + ip = 127.0.0.1 + admin = 127.0.0.1 + protocol = ws - [port_ws_public] - port = 80 - ip = 0.0.0.0 - protocol = ws + [port_ws_public] + port = 80 + ip = 0.0.0.0 + protocol = ws - [port_peer] - port = 51235 - ip = 0.0.0.0 - protocol = peer + [port_peer] + port = 51235 + ip = 0.0.0.0 + protocol = peer - [port_rpc] - port = 51234 - ip = 0.0.0.0 - admin = 127.0.0.1 - protocol = https, http + [port_rpc] + port = 51234 + ip = 0.0.0.0 + admin = 127.0.0.1 + protocol = https, http - [node_size] - small - # tiny - # small - # medium - # large - # huge + [node_size] + small + # tiny + # small + # medium + # large + # huge - [node_db] - type=NuDB - path=/var/lib/rippled/db/nudb - advisory_delete=0 + [node_db] + type=NuDB + path=/var/lib/rippled/db/nudb + advisory_delete=0 - # How many ledgers do we want to keep (history)? - # Integer value that defines the number of ledgers - # between online deletion events - online_delete=256 + # How many ledgers do we want to keep (history)? + # Integer value that defines the number of ledgers + # between online deletion events + online_delete=256 - [ledger_history] - # How many ledgers do we want to keep (history)? - # Integer value (ledger count) - # or (if you have lots of TB SSD storage): 'full' - 256 + [ledger_history] + # How many ledgers do we want to keep (history)? + # Integer value (ledger count) + # or (if you have lots of TB SSD storage): 'full' + 256 - [database_path] - /var/lib/rippled/db + [database_path] + /var/lib/rippled/db - [debug_logfile] - /var/log/rippled/debug.log + [debug_logfile] + /var/log/rippled/debug.log - [sntp_servers] - time.windows.com - time.apple.com - time.nist.gov - pool.ntp.org + [sntp_servers] + time.windows.com + time.apple.com + time.nist.gov + pool.ntp.org - [ips_fixed] - validator_1 51235 - validator_2 51235 - validator_3 51235 + [ips_fixed] + validator_1 51235 + validator_2 51235 + validator_3 51235 - [validators_file] - validators.txt + [validators_file] + validators.txt - [rpc_startup] - { "command": "log_level", "severity": "warning" } - # severity (order: lots of information .. only errors) - # debug - # info - # warn - # error - # fatal + [rpc_startup] + { "command": "log_level", "severity": "warning" } + # severity (order: lots of information .. only errors) + # debug + # info + # warn + # error + # fatal - [ssl_verify] - 0 + [ssl_verify] + 0 - [validator_token] - - ``` + [validator_token] + + ``` 3. Add the generated validator token that you created at the [beginning](#generate-the-validator-keys) of the tutorial. For example: - ``` - [validator_token] - eyJtYW5pZmVzdCI6IkpBQUFBQUZ4SWUwcVd3ZnpLZ2tacWJTL01QVGxHVXlOeTVJZ2kzYzlG - V1JvTDFIMGoydkNobk1oQTBOc2RHeFNXbWF6b0xkdU5NeDVmaVVZU2h3bjk2SnpSaUFReFJz - cENuR2dka1l3UkFJZ1dLazV4cklSN3FNRWd1UmJwOTRrN0E0QnBOZmwrT2VYUm92bTNIOGtS - YkVDSUZXYmVocHd5ZS9UWFpZRGYwUEgwTkxjN2I1cWNEOXUvbzVYUjA4YW1pUEJjQkpBYjEw - NE95bG5IS0JSZTJmRW1qSVVjT24vZ2ZacE44bXdhZ1dGbUxlemc2RFRLL0hpTVkyektNQ3l0 - aksreHpHNWpjc3JlS3k5Q29sRGtpKzk3V0JHQ2c9PSIsInZhbGlkYXRpb25fc2VjcmV0X2tl - eSI6IjZFNTNFQjA1M0IwNEM1RTczNDc4M0VCMEU0RTBFOTg1NDVDNDQ0QzI3OTBFQjdBMzA2 - NUQzMUVBOTU1QjQyMTIifQ== - ``` + ``` + [validator_token] + eyJtYW5pZmVzdCI6IkpBQUFBQUZ4SWUwcVd3ZnpLZ2tacWJTL01QVGxHVXlOeTVJZ2kzYzlG + V1JvTDFIMGoydkNobk1oQTBOc2RHeFNXbWF6b0xkdU5NeDVmaVVZU2h3bjk2SnpSaUFReFJz + cENuR2dka1l3UkFJZ1dLazV4cklSN3FNRWd1UmJwOTRrN0E0QnBOZmwrT2VYUm92bTNIOGtS + YkVDSUZXYmVocHd5ZS9UWFpZRGYwUEgwTkxjN2I1cWNEOXUvbzVYUjA4YW1pUEJjQkpBYjEw + NE95bG5IS0JSZTJmRW1qSVVjT24vZ2ZacE44bXdhZ1dGbUxlemc2RFRLL0hpTVkyektNQ3l0 + aksreHpHNWpjc3JlS3k5Q29sRGtpKzk3V0JHQ2c9PSIsInZhbGlkYXRpb25fc2VjcmV0X2tl + eSI6IjZFNTNFQjA1M0IwNEM1RTczNDc4M0VCMEU0RTBFOTg1NDVDNDQ0QzI3OTBFQjdBMzA2 + NUQzMUVBOTU1QjQyMTIifQ== + ``` - Each validator node must have its own unique token. + Each validator node must have its own unique token. ### Create the validators.txt files @@ -267,12 +267,12 @@ For each node, follow these steps: 2. Copy the public keys from the `validator-keys.json` files that you generated at the [beginning](#generate-the-validator-keys) of the tutorial. 3. Add the public keys of _all_ the validators. For example: - ``` - [validators] - nHBgaEDL8buUECuk4Rck4QBYtmUgbAoeYJLpWLzG9iXsznTRYrQu - nHBCHX7iLDTyap3LumqBNuKgG7JLA5tc6MSJxpLs3gjkwpu836mY - nHU5STUKTgWdreVqJDx6TopLUymzRUZshTSGcWNtjfByJkYdiiRc - ``` + ``` + [validators] + nHBgaEDL8buUECuk4Rck4QBYtmUgbAoeYJLpWLzG9iXsznTRYrQu + nHBCHX7iLDTyap3LumqBNuKgG7JLA5tc6MSJxpLs3gjkwpu836mY + nHU5STUKTgWdreVqJDx6TopLUymzRUZshTSGcWNtjfByJkYdiiRc + ``` ## Start the Network @@ -284,55 +284,55 @@ To start running your private network, follow these steps: 1. Create a `docker-compose.yml` file in the root of the private network directory, `xrpl-private-network`, and add the following content: - ``` - version: "3.9" - services: - validator_1: - platform: linux/amd64 - container_name: validator_1 - image: "xrpllabsofficial/xrpld" - ports: - - "8001:80" - - "5006:5005" - - "4001:6006" - - "9001:51235" - volumes: - - ./validator_1/config:/config/ - validator_2: - platform: linux/amd64 - container_name: validator_2 - image: "xrpllabsofficial/xrpld" - ports: - - "8002:80" - - "5007:5005" - - "4002:6006" - - "9002:51235" - volumes: - - ./validator_2/config:/config/ - validator_3: - platform: linux/amd64 - container_name: validator_3 - image: "xrpllabsofficial/xrpld" - ports: - - "8003:80" - - "5008:5005" - - "4003:6006" - - "9003:51235" - volumes: - - ./validator_3/config:/config/ - ``` + ``` + version: "3.9" + services: + validator_1: + platform: linux/amd64 + container_name: validator_1 + image: "xrpllabsofficial/xrpld" + ports: + - "8001:80" + - "5006:5005" + - "4001:6006" + - "9001:51235" + volumes: + - ./validator_1/config:/config/ + validator_2: + platform: linux/amd64 + container_name: validator_2 + image: "xrpllabsofficial/xrpld" + ports: + - "8002:80" + - "5007:5005" + - "4002:6006" + - "9002:51235" + volumes: + - ./validator_2/config:/config/ + validator_3: + platform: linux/amd64 + container_name: validator_3 + image: "xrpllabsofficial/xrpld" + ports: + - "8003:80" + - "5008:5005" + - "4003:6006" + - "9003:51235" + volumes: + - ./validator_3/config:/config/ + ``` - The `volumes` key in each `service` represents the location where your config files are stored. For example, `./validator_1/config:/config/` maps the `/validator_1/config` directory on your host computer to `/config/` in the Docker container. Any changes made in the host directory will be reflected in the container automatically. + The `volumes` key in each `service` represents the location where your config files are stored. For example, `./validator_1/config:/config/` maps the `/validator_1/config` directory on your host computer to `/config/` in the Docker container. Any changes made in the host directory will be reflected in the container automatically. 2. From your terminal, in the location where you created the `docker-compose.yml` file, run `docker-compose up -d`. You should see a similar output to the one below: - ``` - [+] Running 4/4 - ✔ Network xrpl-private-network_default Created 0.0s - ✔ Container validator_3 Started 0.5s - ✔ Container validator_1 Started 0.5s - ✔ Container validator_2 Started 0.5s - ``` + ``` + [+] Running 4/4 + ✔ Network xrpl-private-network_default Created 0.0s + ✔ Container validator_3 Started 0.5s + ✔ Container validator_1 Started 0.5s + ✔ Container validator_2 Started 0.5s + ``` ## Verify the Network @@ -342,59 +342,59 @@ Now that the private ledger network is up, you need to verify that **each** vali 2. Run the `rippled server_info` command to check the state of the validator: - ``` - rippled server_info | grep server_state - ``` + ``` + rippled server_info | grep server_state + ``` - Sample Output: + Sample Output: - ``` - "server_state" : "proposing" - ``` + ``` + "server_state" : "proposing" + ``` - {% admonition type="info" name="Note" %}If the state is not updated to **proposing**, repeat step **2** after a few minutes as the ledger can take some time to update.{% /admonition %} + {% admonition type="info" name="Note" %}If the state is not updated to **proposing**, repeat step **2** after a few minutes as the ledger can take some time to update.{% /admonition %} 3. Verify the number of peers connected to the validator. - ``` - rippled server_info | grep peers - ``` + ``` + rippled server_info | grep peers + ``` - Sample Output: + Sample Output: - ``` - "peers" : 2 - ``` + ``` + "peers" : 2 + ``` 4. Run the following command to check the genesis account information: - ``` - rippled account_info rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh validated strict - ``` + ``` + rippled account_info rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh validated strict + ``` - Sample Output: + Sample Output: - ``` - { - "result" : { - "account_data" : { - "Account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "Balance" : "100000000000000000", - "Flags" : 0, - "LedgerEntryType" : "AccountRoot", - "OwnerCount" : 0, - "PreviousTxnID" : "0000000000000000000000000000000000000000000000000000000000000000", - "PreviousTxnLgrSeq" : 0, - "Sequence" : 1, - "index" : "2B6AC232AA4C4BE41BF49D2459FA4A0347E1B543A4C92FCEE0821C0201E2E9A8" - }, - "ledger_hash" : "CFCEFB049A71E26DE812529ABB212F330FAF583A98FE073F14713B0644D7CEE9", - "ledger_index" : 10181, - "status" : "success", - "validated" : true - } - } - ``` + ``` + { + "result" : { + "account_data" : { + "Account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "Balance" : "100000000000000000", + "Flags" : 0, + "LedgerEntryType" : "AccountRoot", + "OwnerCount" : 0, + "PreviousTxnID" : "0000000000000000000000000000000000000000000000000000000000000000", + "PreviousTxnLgrSeq" : 0, + "Sequence" : 1, + "index" : "2B6AC232AA4C4BE41BF49D2459FA4A0347E1B543A4C92FCEE0821C0201E2E9A8" + }, + "ledger_hash" : "CFCEFB049A71E26DE812529ABB212F330FAF583A98FE073F14713B0644D7CEE9", + "ledger_index" : 10181, + "status" : "success", + "validated" : true + } + } + ``` 5. To leave the Docker container shell, enter `exit` in the terminal. @@ -404,69 +404,70 @@ Perform a **test** transaction to ensure you can send money to an account. 1. In your terminal, run the the following command to submit a transaction: - ``` - docker exec -it validator_1 \ - rippled submit 'snoPBrXtMeMyMHUVTgbuqAfg1SUTb' '{ "Account": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "Amount": "1000000000", "Destination": "r9wRwVgL2vWVnKhTPdtxva5vdH7FNw1zPs", "TransactionType": "Payment", "Fee": "10" }' - ``` + ``` + docker exec -it validator_1 \ + rippled submit 'snoPBrXtMeMyMHUVTgbuqAfg1SUTb' '{ "Account": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "Amount": "1000000000", "Destination": "r9wRwVgL2vWVnKhTPdtxva5vdH7FNw1zPs", "TransactionType": "Payment", "Fee": "10" }' + ``` - Sample Output: + Sample Output: - ``` - { - "result" : { - "engine_result" : "tesSUCCESS", - "engine_result_code" : 0, - "engine_result_message" : "The transaction was applied. Only final in a validated ledger.", - "status" : "success", - "tx_blob" : "1200002280000000240000000161400000003B9ACA0068400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074463044022057CCEED351A4278F35C13FD104A55338DC8F48C1F9902D58045A4CD0CE89C92A0220184026BD3B1E2C21239017CAF1BBF683 35EDC57F6F98D952E263763DE449561B8114B5F762798A53D543A014CAF8B297CFF8F2F937E883145988EBB744055F4E8BDC7F67FD53EB9FCF961DC0", - "tx_json" : { - "Account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "Amount" : "1000000000", - "Destination" : "r9wRwVgL2vWVnKhTPdtxva5vdH7FNw1zPs", - "Fee" : "10", - "Flags" : 2147483648, - "Sequence" : 1, - "SigningPubKey" : "0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020", - "TransactionType" : "Payment", - "TxnSignature" : "3044022057CCEED351A4278F35C13FD104A55338DC8F48C1F9902D58045A4CD0CE89C92A0220184026BD3B1E2C21239017CAF1BBF68335EDC57F6F98D952E263763DE449561B", - "hash" : "EB516738841794B24819C68273E0F853A3D234350E6534F7F2841F620CE99437" - } - } - } - ``` + ``` + { + "result" : { + "engine_result" : "tesSUCCESS", + "engine_result_code" : 0, + "engine_result_message" : "The transaction was applied. Only final in a validated ledger.", + "status" : "success", + "tx_blob" : "1200002280000000240000000161400000003B9ACA0068400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074463044022057CCEED351A4278F35C13FD104A55338DC8F48C1F9902D58045A4CD0CE89C92A0220184026BD3B1E2C21239017CAF1BBF683 35EDC57F6F98D952E263763DE449561B8114B5F762798A53D543A014CAF8B297CFF8F2F937E883145988EBB744055F4E8BDC7F67FD53EB9FCF961DC0", + "tx_json" : { + "Account" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "Amount" : "1000000000", + "Destination" : "r9wRwVgL2vWVnKhTPdtxva5vdH7FNw1zPs", + "Fee" : "10", + "Flags" : 2147483648, + "Sequence" : 1, + "SigningPubKey" : "0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020", + "TransactionType" : "Payment", + "TxnSignature" : "3044022057CCEED351A4278F35C13FD104A55338DC8F48C1F9902D58045A4CD0CE89C92A0220184026BD3B1E2C21239017CAF1BBF68335EDC57F6F98D952E263763DE449561B", + "hash" : "EB516738841794B24819C68273E0F853A3D234350E6534F7F2841F620CE99437" + } + } + } + ``` 2. For each validator, verify that the destination account `r9wRwVgL2vWVnKhTPdtxva5vdH7FNw1zPs` has 1000000000 XRP. For example: - ``` - docker exec -it validator_1 \ - rippled account_info r9wRwVgL2vWVnKhTPdtxva5vdH7FNw1zPs validated strict - ``` + ``` + docker exec -it validator_1 \ + rippled account_info r9wRwVgL2vWVnKhTPdtxva5vdH7FNw1zPs validated strict + ``` - Sample Output: + Sample Output: - ``` - { - "result" : { - "account_data" : { - "Account" : "r9wRwVgL2vWVnKhTPdtxva5vdH7FNw1zPs", - "Balance" : "1000000000", - "Flags" : 0, - "LedgerEntryType" : "AccountRoot", - "OwnerCount" : 0, - "PreviousTxnID" : "EB516738841794B24819C68273E0F853A3D234350E6534F7F2841F620CE99437", - "PreviousTxnLgrSeq" : 36, - "Sequence" : 1, - "index" : "0F2E4615AE24EEF58EE82BD1E67D237234ED41BFC8B7885630B7AC05082E97AA" - }, - "ledger_hash" : "6F9F54903CC4546F7A426CD78AFD68D907F5DC40B1780DF31A662CF65920E49C", - "ledger_index" : 51, - "status" : "success", - "validated" : true - } - } + ``` + { + "result" : { + "account_data" : { + "Account" : "r9wRwVgL2vWVnKhTPdtxva5vdH7FNw1zPs", + "Balance" : "1000000000", + "Flags" : 0, + "LedgerEntryType" : "AccountRoot", + "OwnerCount" : 0, + "PreviousTxnID" : "EB516738841794B24819C68273E0F853A3D234350E6534F7F2841F620CE99437", + "PreviousTxnLgrSeq" : 36, + "Sequence" : 1, + "index" : "0F2E4615AE24EEF58EE82BD1E67D237234ED41BFC8B7885630B7AC05082E97AA" + }, + "ledger_hash" : "6F9F54903CC4546F7A426CD78AFD68D907F5DC40B1780DF31A662CF65920E49C", + "ledger_index" : 51, + "status" : "success", + "validated" : true + } + } - ``` - All validator nodes should respond with the same balance of 1000000000 XRP for the `r9wRwVgL2vWVnKhTPdtxva5vdH7FNw1zPs` account. + ``` + + All validator nodes should respond with the same balance of 1000000000 XRP for the `r9wRwVgL2vWVnKhTPdtxva5vdH7FNw1zPs` account. ## Stop the Network @@ -475,24 +476,23 @@ If you wish to stop running the private network: 1. In your terminal, go to the `xrpl-private-network` directory. 2. Run the following command to shut down the network: - ``` - docker-compose down - ``` + ``` + docker-compose down + ``` - Sample Output: + Sample Output: - ``` - [+] Running 4/4 - ✔ Container validator_3 Removed 1.7s - ✔ Container validator_1 Removed 1.6s - ✔ Container validator_2 Removed 1.6s - ✔ Network xrpl-private-network_default Removed 0.0s - ``` + ``` + [+] Running 4/4 + ✔ Container validator_3 Removed 1.7s + ✔ Container validator_1 Removed 1.6s + ✔ Container validator_2 Removed 1.6s + ✔ Network xrpl-private-network_default Removed 0.0s + ``` ## See Also - **Networks and Servers:** - - [Peer Protocol](../../concepts/networks-and-servers/peer-protocol.md) - + - [Peer Protocol](../../concepts/networks-and-servers/peer-protocol.md) - **References:** - - [XRPL Testnet Setup Scripts for Docker](https://github.com/UNIC-IFF/xrpl-docker-testnet) + - [XRPL Testnet Setup Scripts for Docker](https://github.com/UNIC-IFF/xrpl-docker-testnet) diff --git a/docs/infrastructure/testing-and-auditing/start-a-new-genesis-ledger-in-stand-alone-mode.md b/docs/infrastructure/testing-and-auditing/start-a-new-genesis-ledger-in-stand-alone-mode.md index 7c924e76d7..1164527d69 100644 --- a/docs/infrastructure/testing-and-auditing/start-a-new-genesis-ledger-in-stand-alone-mode.md +++ b/docs/infrastructure/testing-and-auditing/start-a-new-genesis-ledger-in-stand-alone-mode.md @@ -2,15 +2,16 @@ html: start-a-new-genesis-ledger-in-stand-alone-mode.html parent: use-stand-alone-mode.html seo: - description: Start from a fresh genesis ledger in stand-alone mode. + description: Start from a fresh genesis ledger in stand-alone mode. labels: - Core Server --- + # Start a New Genesis Ledger in Stand-Alone Mode In stand-alone mode, you can have `rippled` create a new genesis ledger. This provides a known state, with none of the ledger history from the production XRP Ledger. (This is very useful for unit tests, among other things.) -* To start `rippled` in stand-alone mode with a new genesis ledger, use the `-a` and `--start` options: +- To start `rippled` in stand-alone mode with a new genesis ledger, use the `-a` and `--start` options: ``` rippled -a --start --conf=/path/to/rippled.cfg @@ -33,16 +34,16 @@ By default, a new genesis ledger has no [amendments](../../concepts/networks-and ## See Also - **Concepts:** - - [The `rippled` Server](../../concepts/networks-and-servers/index.md) - - [`rippled` Server Modes](../../concepts/networks-and-servers/rippled-server-modes.md) - - [Parallel Networks](../../concepts/networks-and-servers/parallel-networks.md) - - [Amendments](../../concepts/networks-and-servers/amendments.md) - - [Fee Voting](../../concepts/consensus-protocol/fee-voting.md) + - [The `rippled` Server](../../concepts/networks-and-servers/index.md) + - [`rippled` Server Modes](../../concepts/networks-and-servers/rippled-server-modes.md) + - [Parallel Networks](../../concepts/networks-and-servers/parallel-networks.md) + - [Amendments](../../concepts/networks-and-servers/amendments.md) + - [Fee Voting](../../concepts/consensus-protocol/fee-voting.md) - **References:** - - [ledger_accept method][] - - [server_info method][] - - [`rippled` Commandline Usage](../commandline-usage.md) + - [ledger_accept method][] + - [server_info method][] + - [`rippled` Commandline Usage](../commandline-usage.md) - **Use Cases:** - - [Contribute Code to the XRP Ledger](/resources/contribute-code/index.md) + - [Contribute Code to the XRP Ledger](/resources/contribute-code/index.md) {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/infrastructure/testing-and-auditing/test-amendments.md b/docs/infrastructure/testing-and-auditing/test-amendments.md index b0fab21b12..b63dca21b9 100644 --- a/docs/infrastructure/testing-and-auditing/test-amendments.md +++ b/docs/infrastructure/testing-and-auditing/test-amendments.md @@ -2,12 +2,12 @@ html: test-amendments.html parent: use-stand-alone-mode.html # "Testing and Auditing" seo: - description: You can test proposed amendments before they're enabled on the network. + description: You can test proposed amendments before they're enabled on the network. labels: - Blockchain --- -# Test Amendments +# Test Amendments You can test how `rippled` behaves before proposed amendments are fully enabled on the production network. Since other members of the consensus network won't have the feature enabled, run your server in stand-alone mode. @@ -18,11 +18,13 @@ To forcibly enable a feature, add a `[features]` stanza with amendment short nam {% tabs %} {% tab label="Example" %} + ``` [features] MultiSign TrustSetAuth ``` + {% /tab %} {% /tabs %} diff --git a/docs/infrastructure/troubleshooting/diagnosing-problems.md b/docs/infrastructure/troubleshooting/diagnosing-problems.md index ba69a2b4ff..0078021315 100644 --- a/docs/infrastructure/troubleshooting/diagnosing-problems.md +++ b/docs/infrastructure/troubleshooting/diagnosing-problems.md @@ -2,10 +2,11 @@ html: diagnosing-problems.html parent: troubleshoot-the-rippled-server.html seo: - description: Collect information to identify the cause of problems. + description: Collect information to identify the cause of problems. labels: - Core Server --- + # Diagnosing Problems with rippled If you are having problems with `rippled`, the first step is to collect more information to accurately characterize the problem. From there, it can be easier to figure out a root cause and a fix. @@ -29,72 +30,69 @@ The response to this command has a lot of information, which is documented along For troubleshooting purposes, the most important fields are (from most commonly used to least): - **`server_state`** - Most of the time, this field should show `proposing` for a server that is [configured as a validator](../configuration/server-modes/run-rippled-as-a-validator.md), or `full` for a non-validating server. The value `connected` means that the server can communicate with the rest of the peer-to-peer network, but it does not yet have enough data to track progress of the shared ledger state. Normally, syncing to the state of the rest of the ledger takes about 5-15 minutes after starting. + - If your server remains in the `connected` state for hours, or returns to the `connected` state after being in the `full` or `proposing` states, that usually indicates that your server cannot keep up with the rest of the network. The most common bottlenecks are disk I/O, network bandwidth, and RAM. - - If your server remains in the `connected` state for hours, or returns to the `connected` state after being in the `full` or `proposing` states, that usually indicates that your server cannot keep up with the rest of the network. The most common bottlenecks are disk I/O, network bandwidth, and RAM. + - For example, the following server state information shows a healthy server that took less than 3 minutes to sync (split between the `disconnected`, `connected`, and `syncing` states), and is currently in the fully-synced `proposing` state, where it has remained for approximately 90 minutes: - - For example, the following server state information shows a healthy server that took less than 3 minutes to sync (split between the `disconnected`, `connected`, and `syncing` states), and is currently in the fully-synced `proposing` state, where it has remained for approximately 90 minutes: + ``` + $ ./rippled server_info + Loading: "/etc/opt/ripple/rippled.cfg" + 2020-Jan-03 22:49:32.834134358 HTTPClient:NFO Connecting to 127.0.0.1:5005 - ``` - $ ./rippled server_info - Loading: "/etc/opt/ripple/rippled.cfg" - 2020-Jan-03 22:49:32.834134358 HTTPClient:NFO Connecting to 127.0.0.1:5005 - - { - "result" : { - "info" : { - ... (trimmed) ... - "server_state" : "proposing", - "server_state_duration_us" : "5183282365", - "state_accounting" : { - "connected" : { - "duration_us" : "126164786", - "transitions" : 1 - }, - "disconnected" : { - "duration_us" : "2111321", - "transitions" : 1 - }, - "full" : { - "duration_us" : "5183282365", - "transitions" : 1 - }, - "syncing" : { - "duration_us" : "5545604", - "transitions" : 1 - }, - "tracking" : { - "duration_us" : "0", - "transitions" : 1 - } - }, - ... (trimmed) ... + { + "result" : { + "info" : { + ... (trimmed) ... + "server_state" : "proposing", + "server_state_duration_us" : "5183282365", + "state_accounting" : { + "connected" : { + "duration_us" : "126164786", + "transitions" : 1 + }, + "disconnected" : { + "duration_us" : "2111321", + "transitions" : 1 + }, + "full" : { + "duration_us" : "5183282365", + "transitions" : 1 + }, + "syncing" : { + "duration_us" : "5545604", + "transitions" : 1 + }, + "tracking" : { + "duration_us" : "0", + "transitions" : 1 } - } + }, + ... (trimmed) ... } - ``` + } + } + ``` - If you do not have a `full` or `proposing` state, then your server has not yet synced to the network. If your server shows multiple transitions between the same states (`transitions` is 2 or more), that indicates that your server lost sync with the network. It's a problem if you have many transitions in a short period of time; it's OK if you have a few transitions over a long period of time, because some fluctuations in internet connectivity are unavoidable. The amount of time in individual states (`duration_us`) compared with total uptime (`server_state_duration_us`) can also tell you how well your server is staying synced. After about 24 hours of uptime, if less than 99% of your server's total runtime is spent in the `full` or `proposing` states, you may want to investigate possible sources of instability. + If you do not have a `full` or `proposing` state, then your server has not yet synced to the network. If your server shows multiple transitions between the same states (`transitions` is 2 or more), that indicates that your server lost sync with the network. It's a problem if you have many transitions in a short period of time; it's OK if you have a few transitions over a long period of time, because some fluctuations in internet connectivity are unavoidable. The amount of time in individual states (`duration_us`) compared with total uptime (`server_state_duration_us`) can also tell you how well your server is staying synced. After about 24 hours of uptime, if less than 99% of your server's total runtime is spent in the `full` or `proposing` states, you may want to investigate possible sources of instability. - - For help debugging syncing issues, see [Server Doesn't Sync](server-doesnt-sync.md). + - For help debugging syncing issues, see [Server Doesn't Sync](server-doesnt-sync.md). - **`complete_ledgers`** - This field shows which [ledger indexes](../../references/protocol/data-types/basic-data-types.md#ledger-index) your server has complete ledger data for. Healthy servers usually have a single range of recent ledgers, such as `"12133424-12133858"`. + - If you have a disjoint set of complete ledgers such as `"11845721-12133420,12133424-12133858"`, that could indicate that your server has had intermittent outages or has temporarily fallen out of sync with the rest of the network. The most common causes for this are insufficient disk I/O or network bandwidth. - - If you have a disjoint set of complete ledgers such as `"11845721-12133420,12133424-12133858"`, that could indicate that your server has had intermittent outages or has temporarily fallen out of sync with the rest of the network. The most common causes for this are insufficient disk I/O or network bandwidth. + - Normally, a `rippled` server downloads recent ledger history from its peers. If gaps in your ledger history persist for more than a few hours, you may not be connected to any peers who have the missing data. If this occurs, you can force your server to try and peer with one of Ripple's full-history public servers by adding the following stanza to your config file and restarting: - - Normally, a `rippled` server downloads recent ledger history from its peers. If gaps in your ledger history persist for more than a few hours, you may not be connected to any peers who have the missing data. If this occurs, you can force your server to try and peer with one of Ripple's full-history public servers by adding the following stanza to your config file and restarting: - - ``` - [ips_fixed] - s2.ripple.com 51235 - ``` + ``` + [ips_fixed] + s2.ripple.com 51235 + ``` - **`amendment_blocked`** - This field is normally omitted from the `server_info` response. If this field appears with the value `true`, then the network has approved an [amendment](../../concepts/networks-and-servers/amendments.md) for which your server doesn't have an implementation. Most likely, you can fix this by [updating rippled](../installation/index.md) to the latest version. You can also use the [feature method][] to see what amendment IDs are currently enabled and which one(s) your server does and does not support. - **`peers`** - This field indicates how many other servers in the XRP Ledger peer-to-peer network your server is connected to. Healthy servers typically show between 5 and 50 peers, unless explicitly configured to connect only to certain peers. + - If you have 0 peers, your server may be unable to contact the network, or your system clock may be wrong. (Ripple recommends running an [NTP](http://www.ntp.org/) daemon on all servers to keep their clocks synced.) - - If you have 0 peers, your server may be unable to contact the network, or your system clock may be wrong. (Ripple recommends running an [NTP](http://www.ntp.org/) daemon on all servers to keep their clocks synced.) - - - If you have exactly 10 peers, that may indicate that your `rippled` is unable to receive incoming connections through a router using [NAT](https://en.wikipedia.org/wiki/Network_address_translation). You can improve connectivity by configuring your router's firewall to forward the port used for peer-to-peer connections (port 51235 [by default](https://github.com/XRPLF/rippled/blob/8429dd67e60ba360da591bfa905b58a35638fda1/cfg/rippled-example.cfg#L1065)). + - If you have exactly 10 peers, that may indicate that your `rippled` is unable to receive incoming connections through a router using [NAT](https://en.wikipedia.org/wiki/Network_address_translation). You can improve connectivity by configuring your router's firewall to forward the port used for peer-to-peer connections (port 51235 [by default](https://github.com/XRPLF/rippled/blob/8429dd67e60ba360da591bfa905b58a35638fda1/cfg/rippled-example.cfg#L1065)). ### No Response from Server @@ -102,10 +100,10 @@ The `rippled` executable returns the following message if it wasn't able to conn ```json { - "error" : "internal", - "error_code" : 71, - "error_message" : "Internal error.", - "error_what" : "no response from server" + "error": "internal", + "error_code": 71, + "error_message": "Internal error.", + "error_what": "no response from server" } ``` @@ -115,7 +113,6 @@ This generally indicates one of several problems: - You may need to pass different [parameters to the `rippled` commandline client](../commandline-usage.md#client-mode-options) to connect to your server. - The `rippled` server may be configured not to accept JSON-RPC connections. - ## Check the server log [By default,](https://github.com/XRPLF/rippled/blob/master/cfg/rippled-example.cfg#L1139-L1142) `rippled` writes the server's debug log to the file `/var/log/rippled/debug.log`. The location of the debug log can differ based on your server's config file. If you start the `rippled` service directly (instead of using `systemctl` or `service` to start it), it also prints log messages to the console by default. @@ -126,7 +123,6 @@ It is normal for a `rippled` the server to print many warning-level (`WRN`) mess For a more thorough explanation of various types of log messages, see [Understanding Log Messages](understanding-log-messages.md). - ## Info Collection Script If you have problems diagnosing the problem, or you are unable to resolve the problem with any of the common fixes, you may want to ask for help in a support forum or the [GitHub issues](https://github.com/XRPLF/rippled/issues). When asking for help, you can use an info collection script to gather information about your system to help others diagnose the issue. @@ -137,49 +133,47 @@ To use the script: 1. Run the script while `rippled` is running. - ``` - $ /opt/ripple/bin/getRippledInfo + ``` + $ /opt/ripple/bin/getRippledInfo - #################################################### - rippled info has been gathered. Please copy the - contents of /tmp/ripple_info.Xo8Xr/rippled_info.md - to a github gist at https://gist.github.com/ + #################################################### + rippled info has been gathered. Please copy the + contents of /tmp/ripple_info.Xo8Xr/rippled_info.md + to a github gist at https://gist.github.com/ - PLEASE REVIEW THIS FILE FOR ANY SENSITIVE DATA - BEFORE POSTING! We have tried our best to omit - any sensitive information from this file, but you - should verify before posting. - #################################################### - ``` - - The script collects the output of many commands and writes them to a temporary file. The filename is randomized with a string of letters and numbers (case-sensitive), for example: `/tmp/ripple_info.Xo8Xr/rippled_info.md` + PLEASE REVIEW THIS FILE FOR ANY SENSITIVE DATA + BEFORE POSTING! We have tried our best to omit + any sensitive information from this file, but you + should verify before posting. + #################################################### + ``` + The script collects the output of many commands and writes them to a temporary file. The filename is randomized with a string of letters and numbers (case-sensitive), for example: `/tmp/ripple_info.Xo8Xr/rippled_info.md` 2. Look over the output file for sensitive information. - The script attempts to scrub sensitive information from the output, such as validator keys or tokens. However, you should still check the output before posting publicly, as a precaution. For example, the script outputs detailed information about your server hardware, and you may want to remove some sections for privacy reasons. Use a text editor to read the output file and to remove anything you don't want to post. + The script attempts to scrub sensitive information from the output, such as validator keys or tokens. However, you should still check the output before posting publicly, as a precaution. For example, the script outputs detailed information about your server hardware, and you may want to remove some sections for privacy reasons. Use a text editor to read the output file and to remove anything you don't want to post. - ``` - nano /tmp/ripple_info.Xo8Xr/rippled_info.md - ``` + ``` + nano /tmp/ripple_info.Xo8Xr/rippled_info.md + ``` 3. Upload the output file where others can see it. - You can upload the file directly to [GitHub Gist](https://gist.github.com/), [Pastebin](https://pastebin.com/), or a similar service. If you are running `rippled` on a remote server, you may find it easier to first transfer the file to a machine with a web browser, using `scp` or a similar tool. - + You can upload the file directly to [GitHub Gist](https://gist.github.com/), [Pastebin](https://pastebin.com/), or a similar service. If you are running `rippled` on a remote server, you may find it easier to first transfer the file to a machine with a web browser, using `scp` or a similar tool. ## See Also - **Concepts:** - - [The `rippled` Server](../../concepts/networks-and-servers/index.md) - - [Amendments](../../concepts/networks-and-servers/amendments.md) + - [The `rippled` Server](../../concepts/networks-and-servers/index.md) + - [Amendments](../../concepts/networks-and-servers/amendments.md) - **Tutorials:** - - [Capacity Planning](../installation/capacity-planning.md) - - [Configure rippled](../configuration/index.md) + - [Capacity Planning](../installation/capacity-planning.md) + - [Configure rippled](../configuration/index.md) - **References:** - - [rippled API Reference](../../references/http-websocket-apis/index.md) - - [`rippled` Commandline Usage](../commandline-usage.md) - - [log_level method][] - - [server_info method][] + - [rippled API Reference](../../references/http-websocket-apis/index.md) + - [`rippled` Commandline Usage](../commandline-usage.md) + - [log_level method][] + - [server_info method][] {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/infrastructure/troubleshooting/fix-sqlite-tx-db-page-size-issue.md b/docs/infrastructure/troubleshooting/fix-sqlite-tx-db-page-size-issue.md index 8df5bf905d..d3e191bfbe 100644 --- a/docs/infrastructure/troubleshooting/fix-sqlite-tx-db-page-size-issue.md +++ b/docs/infrastructure/troubleshooting/fix-sqlite-tx-db-page-size-issue.md @@ -2,9 +2,10 @@ html: fix-sqlite-tx-db-page-size-issue.html parent: troubleshoot-the-rippled-server.html seo: - description: Fix a problem with the SQLite page size on full-history servers started on rippled version 0.40.0 or earlier. + description: Fix a problem with the SQLite page size on full-history servers started on rippled version 0.40.0 or earlier. status: removed --- + # Fix SQLite Transaction Database Page Size Issue `rippled` servers with full [ledger history](../../concepts/networks-and-servers/ledger-history.md) (or a very large amount of transaction history) and a database that was initially created with a `rippled` version earlier than 0.40.0 (released January 2017) may encounter a problem with their SQLite database page size that stops the server from operating properly. Servers that store only recent transaction history (the default configuration) and servers whose database files were created with `rippled` version 0.40.0 and later are not likely to have this problem. @@ -19,7 +20,6 @@ The capacity of the SQLite database is a result of the database's _page size_ pa {% admonition type="success" name="Tip" %}Full history is not necessary for most use cases. Servers with full transaction history may be useful for long-term analysis and archive purposes or as a precaution against disasters.{% /admonition %} - ## Detection If your server is vulnerable to this problem, you can detect it two ways: @@ -69,7 +69,6 @@ Terminating thread doJob: AcquisitionDone: unhandled disk is full while executing "INSERT INTO [...] ``` - ## Fix You can fix this issue using `rippled` on supported Linux systems according to the steps described in this document. In the case of a full-history server with system specs approximately matching the [recommended hardware configuration](../installation/capacity-planning.md#recommendation-1), the process may take more than two full days. @@ -77,22 +76,21 @@ You can fix this issue using `rippled` on supported Linux systems according to t ### Prerequisites - You must be running **`rippled` version 1.1.0 or later**. + - [Upgrade rippled](../installation/index.md) to the latest stable version before starting this process. - - [Upgrade rippled](../installation/index.md) to the latest stable version before starting this process. + - You can check what version of `rippled` you have installed locally by running the following command: - - You can check what version of `rippled` you have installed locally by running the following command: - - ``` - rippled --version - ``` + ``` + rippled --version + ``` - You must have enough free space to temporarily store a second copy of the transaction database, in a directory that is writable by the `rippled` user. This free space does not need to be in the same filesystem as the existing transaction database. - The transaction database is stored in the `transaction.db` file in the folder specified by your configuration's `[database_path]` setting. You can check the size of this file to see how much free space you need. For example: + The transaction database is stored in the `transaction.db` file in the folder specified by your configuration's `[database_path]` setting. You can check the size of this file to see how much free space you need. For example: - ``` - ls -l /var/lib/rippled/db/transaction.db - ``` + ``` + ls -l /var/lib/rippled/db/transaction.db + ``` ### Migration Process @@ -102,78 +100,78 @@ To migrate your transaction database to a larger page size, perform the followin 2. Create a folder to store temporary files during the migration process. - ``` - mkdir /tmp/rippled_txdb_migration - ``` + ``` + mkdir /tmp/rippled_txdb_migration + ``` 3. Grant the `rippled` user ownership of the temporary folder so it can write files there. (This is not necessary if your temporary folder is somewhere the `rippled` user already has write access to.) - ``` - chown rippled /tmp/rippled_txdb_migration - ``` + ``` + chown rippled /tmp/rippled_txdb_migration + ``` 4. Confirm that your temporary folder has enough free space to store a copy of the transaction database. - For example, compare the `Avail` output from the `df` command to the [size of your `transaction.db` file](#prerequisites). + For example, compare the `Avail` output from the `df` command to the [size of your `transaction.db` file](#prerequisites). - ``` - df -h /tmp/rippled_txdb_migration + ``` + df -h /tmp/rippled_txdb_migration - Filesystem Size Used Avail Use% Mounted on - /dev/sda2 5.4T 2.6T 2.6T 50% /tmp - ``` + Filesystem Size Used Avail Use% Mounted on + /dev/sda2 5.4T 2.6T 2.6T 50% /tmp + ``` 5. If `rippled` is still running, stop it: - ``` - sudo systemctl stop rippled - ``` + ``` + sudo systemctl stop rippled + ``` 6. Open a `screen` session (or other similar tool) so that the process does not stop when you log out: - ``` - screen - ``` + ``` + screen + ``` 7. Become the `rippled` user: - ``` - sudo su - rippled - ``` + ``` + sudo su - rippled + ``` 8. Run `rippled` executable directly, providing the `--vacuum` command with the path to the temporary directory: - ``` - /opt/ripple/bin/rippled -q --vacuum /tmp/rippled_txdb_migration - ``` + ``` + /opt/ripple/bin/rippled -q --vacuum /tmp/rippled_txdb_migration + ``` - The `rippled` executable immediately displays the following message: + The `rippled` executable immediately displays the following message: - ``` - VACUUM beginning. page_size: 1024 - ``` + ``` + VACUUM beginning. page_size: 1024 + ``` 9. Wait for the process to complete. This can take more than two full days. - When the process is complete, the `rippled` executable displays the following message, then exits: + When the process is complete, the `rippled` executable displays the following message, then exits: - ``` - VACUUM finished. page_size: 4096 - ``` + ``` + VACUUM finished. page_size: 4096 + ``` - While you wait, you can detach your `screen` session by pressing **CTRL-A**, then **D**. Later, you can reattach your screen session with a command such as the following: + While you wait, you can detach your `screen` session by pressing **CTRL-A**, then **D**. Later, you can reattach your screen session with a command such as the following: - ``` - screen -x -r - ``` + ``` + screen -x -r + ``` - When the process is over, exit the screen session: + When the process is over, exit the screen session: - ``` - exit - ``` + ``` + exit + ``` - For more information on the `screen` command, see [the official Screen User's Manual](https://www.gnu.org/software/screen/manual/screen.html) or any of the other many resources available online. + For more information on the `screen` command, see [the official Screen User's Manual](https://www.gnu.org/software/screen/manual/screen.html) or any of the other many resources available online. 10. Restart the `rippled` service. @@ -207,18 +205,17 @@ To migrate your transaction database to a larger page size, perform the followin If you mounted additional storage to hold the temporary copy of the transaction database, you can unmount and remove it now. - ## See Also - **Concepts:** - - [The `rippled` Server](../../concepts/networks-and-servers/index.md) - - [Ledger History](../../concepts/networks-and-servers/ledger-history.md) + - [The `rippled` Server](../../concepts/networks-and-servers/index.md) + - [Ledger History](../../concepts/networks-and-servers/ledger-history.md) - **Tutorials:** - - [Understanding Log Messages](understanding-log-messages.md) - - [Configure Full History](../configuration/data-retention/configure-full-history.md) + - [Understanding Log Messages](understanding-log-messages.md) + - [Configure Full History](../configuration/data-retention/configure-full-history.md) - **References:** - - [rippled API Reference](../../references/http-websocket-apis/index.md) - - [`rippled` Commandline Usage](../commandline-usage.md) - - [server_info method][] + - [rippled API Reference](../../references/http-websocket-apis/index.md) + - [`rippled` Commandline Usage](../commandline-usage.md) + - [server_info method][] {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/infrastructure/troubleshooting/health-check-interventions.md b/docs/infrastructure/troubleshooting/health-check-interventions.md index 52529b4411..ad11fe4afe 100644 --- a/docs/infrastructure/troubleshooting/health-check-interventions.md +++ b/docs/infrastructure/troubleshooting/health-check-interventions.md @@ -2,10 +2,11 @@ html: health-check-interventions.html parent: troubleshoot-the-rippled-server.html seo: - description: Use the rippled server's health check as part of automated infrastructure monitoring. + description: Use the rippled server's health check as part of automated infrastructure monitoring. labels: - Core Server --- + # Health Check Interventions The [Health Check method](../../references/http-websocket-apis/peer-port-methods/health-check.md) can be used by automated monitoring to recognize when a `rippled` server is not healthy and prompt interventions such as restarting the server or alerting a human administrator. @@ -41,14 +42,12 @@ The following sections suggest some common interventions you may want to attempt - [Investigate network](#investigate-network) in case the problem originates elsewhere - [Replace hardware](#replace-hardware) - ### Redirect Traffic A common reliability technique is to run a pool of redundant servers through one or more load-balancing proxies. You can do this with `rippled` servers, but should not do this with [validators](../../concepts/networks-and-servers/rippled-server-modes.md). In some cases, the load balancers can monitor the health of servers in their pools and direct traffic only to the servers that are currently reporting themselves as healthy. This allows servers to recover from being temporarily overloaded and automatically rejoin the pool of active servers. Redirecting traffic away from a server that is unhealthy is an appropriate response, especially for servers that report a `health` status of `warning`. Servers in the `critical` range may need more significant interventions. - ### Restart The most straightforward intervention is to restart the server. This can resolve temporary issues with several types of failures, including any of the following [metrics][]: @@ -68,7 +67,6 @@ A stronger intervention is to restart the entire machine. {% admonition type="warning" name="Caution" %}After a server starts, it typically needs up to 15 minutes to sync to the network. During this time, the health check is likely to report a critical or warning status. You should be sure your automated systems give servers enough time to sync before restarting them again.{% /admonition %} - ### Upgrade If the server reports `"amendment_blocked": true` in the health check, this indicates that the XRP Ledger has enabled a [protocol amendment](../../concepts/networks-and-servers/amendments.md) that your server does not understand. As a precaution against misinterpreting the revised rules of the network in a way that causes you to lose money, such servers become "amendment blocked" instead of operating normally. @@ -77,7 +75,6 @@ To resolve being amendment blocked, [update your server](../installation/index.m Also, software bugs can cause a server to get [stuck not syncing](server-doesnt-sync.md). In this case, the `server_state` metric is likely to be in a warning or critical state. If you are not using the latest stable release, you should upgrade to get the latest fixes for any known issues that could cause this. - ### Investigate Network An unreliable or insufficient network connection can cause a server to report outages. Warning or critical values in the following [metrics][] can indicate network problems: @@ -92,8 +89,6 @@ In this case, the necessary interventions may involve changes to other systems, - Restarting or replacing network interfaces, switches, routers, or cabling - Contacting other network service providers to resolve an issue on their end - - ### Replace Hardware If the outage is caused by a hardware failure or by higher load than the hardware is capable of handling, you may need to replace some components or even the entire server. @@ -106,12 +101,6 @@ Warning or critical values for the following [metrics][] may indicate insufficie - `server_state` - `validated_ledger` - - - - - - [metrics]: ../../references/http-websocket-apis/peer-port-methods/health-check.md#response-format {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/infrastructure/troubleshooting/index.md b/docs/infrastructure/troubleshooting/index.md index 782a2fb4c9..358da33bc9 100644 --- a/docs/infrastructure/troubleshooting/index.md +++ b/docs/infrastructure/troubleshooting/index.md @@ -4,11 +4,11 @@ parent: infrastructure.html metadata: indexPage: true seo: - description: Troubleshoot all kinds of problems with the rippled server. + description: Troubleshoot all kinds of problems with the rippled server. --- + # Troubleshooting Troubleshoot all kinds of problems with the rippled server. - {% child-pages /%} diff --git a/docs/infrastructure/troubleshooting/server-doesnt-sync.md b/docs/infrastructure/troubleshooting/server-doesnt-sync.md index d3abc62872..622b226091 100644 --- a/docs/infrastructure/troubleshooting/server-doesnt-sync.md +++ b/docs/infrastructure/troubleshooting/server-doesnt-sync.md @@ -2,17 +2,17 @@ html: server-doesnt-sync.html parent: troubleshoot-the-rippled-server.html seo: - description: Troubleshoot problems that make a rippled server unable to sync with the rest of the XRP Ledger. + description: Troubleshoot problems that make a rippled server unable to sync with the rest of the XRP Ledger. labels: - Core Server --- + # rippled Server Doesn't Sync This page explains possible reasons [a `rippled` server](../../concepts/networks-and-servers/index.md) may start successfully, but get stuck in a ["connected" state](../../references/http-websocket-apis/api-conventions/rippled-server-states.md) without ever fully connecting to the network. (If the server crashes during or shortly after startup, see [Server Won't Start](server-wont-start.md) instead.) These instructions assume you have [installed `rippled`](../installation/index.md) on a supported platform. - ## Normal Syncing Behavior Syncing with the network normally takes about 5 to 15 minutes. During that time, the server does several things: @@ -25,7 +25,6 @@ Syncing with the network normally takes about 5 to 15 minutes. During that time, If the server is unable to keep up with the network while doing these tasks, the server does not sync to the network. - ## First Step: Restart Many syncing issues can be resolved by restarting the server. No matter why it didn't sync the first time, it may succeed on the second try. @@ -34,7 +33,6 @@ If the [server_info method][] shows a [`server_state`](../../references/http-web If the problem persists, check the other possibilities listed on this page. If none of them seem to apply, [open an issue in the `rippled` repository](https://github.com/XRPLF/rippled/issues) and add the "Syncing issue" label. - ## Usual Causes of Syncing Issues The most common cause of syncing issues is not meeting the [system requirements](../installation/system-requirements.md). The three most common shortfalls are: @@ -45,7 +43,6 @@ The most common cause of syncing issues is not meeting the [system requirements] If you are having trouble remaining synced, double-check that your server meets the system requirements. Depending on how you use your server, you may need to meet the higher "Recommended" requirements. If you meet the "Recommended" requirements and still cannot sync, try the other possibilities on this page. - ## Couldn't Load Validator List The default configuration uses a recommended list of validators retrieved from `vl.ripple.com`. This list is signed by Ripple's cryptographic key pair and has a built-in expiration date. If your server cannot download the list from `vl.ripple.com` for some reason, your server does not choose a set of trusted validators and cannot determine which possible ledgers to declare as valid. (If you are connected to [the testnet or another parallel network](../../concepts/networks-and-servers/parallel-networks.md), your server uses a list of trusted validators for that network instead.) @@ -56,14 +53,12 @@ You can also use the [validator_list_sites method][] to get more detailed inform - ## Not Enough Peers If your server does not connect to enough [peer servers](../../concepts/networks-and-servers/peer-protocol.md), it may not be able to download enough data to remain synced with the network as the network continues processing new transactions. This can happen if your network connection is unreliable, or if you configure your server as a [private server](../../concepts/networks-and-servers/peer-protocol.md#private-peers) without adding enough reliable fixed peers. Use the [peers method][] to get information about your server's current peers. If you have exactly 10 or 11 peers, that may indicate that your firewall is blocking incoming peer connections. [Set up port forwarding](../configuration/peering/forward-ports-for-peering.md) to allow more incoming connections. If your server is configured as a private server, double-check the contents and syntax of the `[ips_fixed]` stanza in your config file, and add more proxies or public hubs if possible. - ## Corrupt Databases In rare cases, corrupt data saved in your `rippled` server's internal databases could cause it to fail to sync. You can safely delete your server's databases in most circumstances as long as the server is not running. Corrupt data can be the result of a momentary hardware failure when copying or writing to disk, a more serious disk failure, a different process crashing and writing to the wrong part of the disk, or other issues. @@ -74,53 +69,52 @@ As a test, you can temporarily change the paths to your server's databases as lo 1. Stop the `rippled` server if it is running. - ``` - $ sudo systemctl stop rippled - ``` + ``` + $ sudo systemctl stop rippled + ``` 2. Create new empty folders to hold the fresh databases. - ``` - $ mkdir /var/lib/rippled/db_new/ - $ mkdir /var/lib/rippled/db_new/nudb - ``` + ``` + $ mkdir /var/lib/rippled/db_new/ + $ mkdir /var/lib/rippled/db_new/nudb + ``` 3. Edit the config file to use the new paths. Be sure to change the `path` field of the `[node_db]` stanza **and** the value of the `[database_path]` stanza. - ``` - [node_db] - type=NuDB - path=/var/lib/rippled/db_new/nudb + ``` + [node_db] + type=NuDB + path=/var/lib/rippled/db_new/nudb - [database_path] - /var/lib/rippled/db_new - ``` + [database_path] + /var/lib/rippled/db_new + ``` - {% partial file="/docs/_snippets/conf-file-location.md" /%} + {% partial file="/docs/_snippets/conf-file-location.md" /%} 4. Start the `rippled` server again. - ``` - $ sudo systemctl start rippled - ``` - - If the server successfully syncs using the fresh databases, you can delete the folders that hold the old databases. You may also want to check for hardware failures, especially to your disk and RAM. + ``` + $ sudo systemctl start rippled + ``` + If the server successfully syncs using the fresh databases, you can delete the folders that hold the old databases. You may also want to check for hardware failures, especially to your disk and RAM. ## See Also - **Concepts:** - - [The `rippled` Server](../../concepts/networks-and-servers/index.md) - - [Peer Protocol](../../concepts/networks-and-servers/peer-protocol.md) - - [Technical FAQ](/about/faq.md) + - [The `rippled` Server](../../concepts/networks-and-servers/index.md) + - [Peer Protocol](../../concepts/networks-and-servers/peer-protocol.md) + - [Technical FAQ](/about/faq.md) - **Tutorials:** - - [Understanding Log Messages](understanding-log-messages.md) - - [Capacity Planning](../installation/capacity-planning.md) + - [Understanding Log Messages](understanding-log-messages.md) + - [Capacity Planning](../installation/capacity-planning.md) - **References:** - - [rippled API Reference](../../references/http-websocket-apis/index.md) - - [peers method][] - - [server_info method][] - - [validator_list_sites method][] + - [rippled API Reference](../../references/http-websocket-apis/index.md) + - [peers method][] + - [server_info method][] + - [validator_list_sites method][] diff --git a/docs/infrastructure/troubleshooting/server-is-amendment-blocked.md b/docs/infrastructure/troubleshooting/server-is-amendment-blocked.md index c737dccc17..67122aa3fd 100644 --- a/docs/infrastructure/troubleshooting/server-is-amendment-blocked.md +++ b/docs/infrastructure/troubleshooting/server-is-amendment-blocked.md @@ -2,10 +2,11 @@ html: server-is-amendment-blocked.html parent: troubleshoot-the-rippled-server.html seo: - description: Troubleshoot a server that can't implement amendment changes. + description: Troubleshoot a server that can't implement amendment changes. labels: - Core Server --- + # rippled Server is Amendment Blocked Servers which are amendment blocked can't determine the validity of a ledger, submit or process transactions, or participate in the consensus process. @@ -14,16 +15,16 @@ One of the first signs that your `rippled` server is [amendment blocked](../../c ```json { - "result":{ - "error":"amendmentBlocked", - "error_code":14, - "error_message":"Amendment blocked, need upgrade.", - "request":{ - "command":"submit", - "tx_blob":"479H0KQ4LUUXIHL48WCVN0C9VD7HWSX0MG1UPYNXK6PI9HLGBU2U10K3HPFJSROFEG5VD749WDPHWSHXXO72BOSY2G8TWUDOJNLRTR9LTT8PSOB9NNZ485EY2RD9D80FLDFRBVMP1RKMELILD7I922D6TBCAZK30CSV6KDEDUMYABE0XB9EH8C4LE98LMU91I9ZV2APETJD4AYFEN0VNMIT1XQ122Y2OOXO45GJ737HHM5XX88RY7CXHVWJ5JJ7NYW6T1EEBW9UE0NLB2497YBP9V1XVAEK8JJYVRVW0L03ZDXFY8BBHP6UBU7ZNR0JU9GJQPNHG0DK86S4LLYDN0BTCF4KWV2J4DEB6DAX4BDLNPT87MM75G70DFE9W0R6HRNWCH0X075WHAXPSH7S3CSNXPPA6PDO6UA1RCCZOVZ99H7968Q37HACMD8EZ8SU81V4KNRXM46N520S4FVZNSJHA" - }, - "status":"error" - } + "result": { + "error": "amendmentBlocked", + "error_code": 14, + "error_message": "Amendment blocked, need upgrade.", + "request": { + "command": "submit", + "tx_blob": "479H0KQ4LUUXIHL48WCVN0C9VD7HWSX0MG1UPYNXK6PI9HLGBU2U10K3HPFJSROFEG5VD749WDPHWSHXXO72BOSY2G8TWUDOJNLRTR9LTT8PSOB9NNZ485EY2RD9D80FLDFRBVMP1RKMELILD7I922D6TBCAZK30CSV6KDEDUMYABE0XB9EH8C4LE98LMU91I9ZV2APETJD4AYFEN0VNMIT1XQ122Y2OOXO45GJ737HHM5XX88RY7CXHVWJ5JJ7NYW6T1EEBW9UE0NLB2497YBP9V1XVAEK8JJYVRVW0L03ZDXFY8BBHP6UBU7ZNR0JU9GJQPNHG0DK86S4LLYDN0BTCF4KWV2J4DEB6DAX4BDLNPT87MM75G70DFE9W0R6HRNWCH0X075WHAXPSH7S3CSNXPPA6PDO6UA1RCCZOVZ99H7968Q37HACMD8EZ8SU81V4KNRXM46N520S4FVZNSJHA" + }, + "status": "error" + } } ``` @@ -57,7 +58,6 @@ You can verify that your `rippled` server is amendment blocked using the `server } ``` - ## Unblock Servers The easiest solution is to update to the latest version of `rippled`, but depending on the scenario, you may want to update to an older version with the amendment blocking your server. @@ -124,10 +124,10 @@ These values mean the amendment is required in the latest ledger, but your serve In this example, conflicts with the following features are causing your `rippled` server to be amendment blocked: -* `157D2D480E006395B76F948E3E07A45A05FE10230D88A7993C71F97AE4B1F2D1` +- `157D2D480E006395B76F948E3E07A45A05FE10230D88A7993C71F97AE4B1F2D1` -* `67A34F2CF55BFC0F93AACD5B281413176FEE195269FA6D95219A2DF738671172` +- `67A34F2CF55BFC0F93AACD5B281413176FEE195269FA6D95219A2DF738671172` -* `F64E1EABBE79D55B3BB82020516CEC2C582A98A6BFE20FBE9BB6A0D233418064` +- `F64E1EABBE79D55B3BB82020516CEC2C582A98A6BFE20FBE9BB6A0D233418064` To look up which `rippled` version supports these features, see [Known Amendments](/resources/known-amendments.md). diff --git a/docs/infrastructure/troubleshooting/server-wont-start.md b/docs/infrastructure/troubleshooting/server-wont-start.md index dbc8d96c07..be0dd699ff 100644 --- a/docs/infrastructure/troubleshooting/server-wont-start.md +++ b/docs/infrastructure/troubleshooting/server-wont-start.md @@ -2,17 +2,17 @@ html: server-wont-start.html parent: troubleshoot-the-rippled-server.html seo: - description: A collection of problems that would cause a rippled server not to start, and how to fix them. + description: A collection of problems that would cause a rippled server not to start, and how to fix them. labels: - Core Server --- + # rippled Server Won't Start This page explains possible reasons [the `rippled` server](../../concepts/networks-and-servers/index.md) does not start and how to fix them. These instructions assume you have [installed `rippled`](../installation/index.md) on a supported platform. - ## File Descriptors Limit On some Linux variants, you may get an error message such as the following when trying to run `rippled`: @@ -26,31 +26,30 @@ This occurs because the system has a security limit on the number of files a sin 1. Add the following lines to the end of your `/etc/security/limits.conf` file: - ``` - * soft nofile 65536 - * hard nofile 65536 - ``` + ``` + * soft nofile 65536 + * hard nofile 65536 + ``` 2. Check that the [hard limit on number of files that can be opened](https://ss64.com/bash/ulimit.html) is now `65536`: - ``` - ulimit -Hn - ``` + ``` + ulimit -Hn + ``` - The command should output `65536`. + The command should output `65536`. 3. Try starting `rippled` again. - ``` - systemctl start rippled - ``` + ``` + systemctl start rippled + ``` 4. If `rippled` still does not start, open `/etc/sysctl.conf` and append the following kernel-level setting: - ``` - fs.file-max = 65536 - ``` - + ``` + fs.file-max = 65536 + ``` ## Failed to open /etc/opt/ripple/rippled.cfg @@ -69,7 +68,7 @@ Possible solutions: - Create a config file that can be read by the `rippled` user at `$HOME/.config/ripple/rippled.cfg` (where `$HOME` points to the `rippled` user's home directory). - {% admonition type="success" name="Tip" %}The `rippled` repository contains [an example `rippled.cfg` file](https://github.com/XRPLF/rippled/blob/master/cfg/rippled-example.cfg) which is provided as the default config when you do an installation from a binary package. If you do not have the file, you can copy it from there.{% /admonition %} + {% admonition type="success" name="Tip" %}The `rippled` repository contains [an example `rippled.cfg` file](https://github.com/XRPLF/rippled/blob/master/cfg/rippled-example.cfg) which is provided as the default config when you do an installation from a binary package. If you do not have the file, you can copy it from there.{% /admonition %} - Specify the path to your preferred config file using the `--conf` [commandline option](../commandline-usage.md). @@ -87,20 +86,19 @@ Possible solutions: - Check that the `validators.txt` file exists and the `rippled` user has permissions to read it. - {% admonition type="success" name="Tip" %}The `rippled` repository contains [an example `validators.txt` file](https://github.com/XRPLF/rippled/blob/master/cfg/validators-example.txt) which is provided as the default config when you do an installation from a binary package. If you do not have the file, you can copy it from there.{% /admonition %} + {% admonition type="success" name="Tip" %}The `rippled` repository contains [an example `validators.txt` file](https://github.com/XRPLF/rippled/blob/master/cfg/validators-example.txt) which is provided as the default config when you do an installation from a binary package. If you do not have the file, you can copy it from there.{% /admonition %} - Edit your `rippled.cfg` file and modify the `[validators_file]` setting to have the correct path to your `validators.txt` (or equivalent) file. Check for extra whitespace before or after the filename. - Edit your `rippled.cfg` file and remove the `[validators_file]` setting. Add validator settings directly to your `rippled.cfg` file. For example: - ``` - [validator_list_sites] - https://vl.ripple.com - - [validator_list_keys] - ED2677ABFFD1B33AC6FBC3062B71F1E8397C1505E1C42C64D11AD1B28FF73F4734 - ``` + ``` + [validator_list_sites] + https://vl.ripple.com + [validator_list_keys] + ED2677ABFFD1B33AC6FBC3062B71F1E8397C1505E1C42C64D11AD1B28FF73F4734 + ``` ## Cannot create database path @@ -122,7 +120,6 @@ Possible solutions: - Grant the `rippled` user write permissions to the configured database path. - ## State DB Error The following error can occur if the `rippled` server's state database is corrupted. This can occur as the result of being shutdown unexpectedly, or if you change the type of database from RocksDB to NuDB without changing the `path` and `[database_path]` settings in the config file. @@ -162,7 +159,6 @@ path=/var/lib/rippled/custom_nudb_path /var/lib/rippled/custom_sqlite_db_path ``` - ## Online Delete is Less Than Ledger History An error message such as the following indicates that the `rippled.cfg` file has contradictory values for `[ledger_history]` and `online_delete`. @@ -175,7 +171,6 @@ The `[ledger_history]` setting represents how many ledgers of history the server To fix the problem, edit the `rippled.cfg` file and change or remove either the `[ledger_history]` or `online_delete` options. (If you omit `[ledger_history]`, it uses a default of 256 ledger versions. If you specify the `online_delete` field, it must be larger than 256. If you omit `online_delete`, it disables automatic deletion of old ledger versions.) - ## Bad node_size value An error such as the following indicates that the `rippled.cfg` file has an improper value for the `node_size` setting: @@ -186,19 +181,18 @@ Terminating thread rippled: main: unhandled N5beast14BadLexicalCastE 'std::bad_c Valid parameters for the `node_size` field are `tiny`, `small`, `medium`, `large`, or `huge`. For more information see [Node Size](../installation/capacity-planning.md#node-size). - ## See Also - **Concepts:** - - [The `rippled` Server](../../concepts/networks-and-servers/index.md) - - [Technical FAQ](/about/faq.md) + - [The `rippled` Server](../../concepts/networks-and-servers/index.md) + - [Technical FAQ](/about/faq.md) - **Tutorials:** - - [Understanding Log Messages](understanding-log-messages.md) - - [Capacity Planning](../installation/capacity-planning.md) + - [Understanding Log Messages](understanding-log-messages.md) + - [Capacity Planning](../installation/capacity-planning.md) - **References:** - - [rippled API Reference](../../references/http-websocket-apis/index.md) - - [`rippled` Commandline Usage](../commandline-usage.md) - - [server_info method][] + - [rippled API Reference](../../references/http-websocket-apis/index.md) + - [`rippled` Commandline Usage](../commandline-usage.md) + - [server_info method][] diff --git a/docs/infrastructure/troubleshooting/understanding-log-messages.md b/docs/infrastructure/troubleshooting/understanding-log-messages.md index 4d3bee9ca8..4e95e53e6e 100644 --- a/docs/infrastructure/troubleshooting/understanding-log-messages.md +++ b/docs/infrastructure/troubleshooting/understanding-log-messages.md @@ -1,9 +1,10 @@ --- seo: - description: Interpret and respond to warning and error messages in the debug log. + description: Interpret and respond to warning and error messages in the debug log. labels: - - Core Server + - Core Server --- + # Understanding Log Messages The following sections describe some of the most common types of log messages that can appear in a [`rippled` server's](../../concepts/networks-and-servers/index.md) debug log and how to interpret them. @@ -31,7 +32,6 @@ Each line represents one log entry, with the following parts in order, separated For simplicity, the examples in this page omit the date, time, and time zone indicator. - ## Crashes Messages in the log that mention runtime errors can indicate that the server crashed. These messages usually start with a message such as one of the following examples: @@ -54,7 +54,6 @@ If your server crashes randomly during operation or as a result of particular co If none of the above apply, please report the issue to Ripple as a security-sensitive bug. If Ripple can reproduce the crash, you may be eligible for a bounty. See for details. - ## Already validated sequence at or past Log messages such as the following indicate that a server received validations for different ledger indexes out of order. @@ -69,7 +68,6 @@ Occasional messages of this type do not usually indicate a problem. If this type - The validator described in the message is having network issues. - The validator described in the message is behaving maliciously. - ## async_send failed The following log message indicates that [StatsD export](../configuration/configure-statsd.md) failed: @@ -87,7 +85,6 @@ Check the `[insight]` stanza in your `rippled`'s config file and confirm that yo This error has no other impact on the `rippled` server, which should continue to work as normal except for the sending of StatsD metrics. - ## Check for upgrade The following message indicates that the server has detected that it is running an older software version than at least 60% of its trusted validators: @@ -98,7 +95,6 @@ LedgerMaster:ERR Check for upgrade: A majority of trusted validators are running This is not strictly a problem, but an old server version is likely to become [amendment blocked](../../concepts/networks-and-servers/amendments.md#amendment-blocked-servers). You should [update `rippled`](../installation/index.md) to the latest stable version. (If you are connected to [devnet](../../concepts/networks-and-servers/parallel-networks.md), update to the latest nightly version instead.) - ## Connection reset by peer The following log message indicates that a peer `rippled` server closed a connection: @@ -114,7 +110,6 @@ A large number of these messages around the same time may indicate a problem, su - Your internet connection to one or more specific peers was cut off. - Your server may have been overloading the peer with requests, causing the peer to disconnect your server. - ## Consumer entry dropped with balance at or above drop threshold The following log message indicates that a client to the server's public API has been dropped as a result of [rate limiting](../../references/http-websocket-apis/api-conventions/rate-limiting.md): @@ -144,7 +139,6 @@ This is not strictly a problem, but if you want to acquire ledger history faster s2.ripple.com 51235 ``` - ## InboundLedger Want hash Log messages such as the following indicate that the server is requesting ledger data from other servers: @@ -155,7 +149,6 @@ InboundLedger:WRN Want: 5AE53B5E39E6388DBACD0959E5F5A0FCAF0E0DCBA45D9AB15120E8CD This is normal if your server is syncing or backfilling. - ## LoadMonitor Job Messages such as the following occur when a function takes a long time to run (over 11 seconds in this example): @@ -199,7 +192,6 @@ The `state` indicates the [server state](../../references/http-websocket-apis/ap During startup, these messages are normal and can be safely ignored. At other times, messages like this usually indicate that the server does not meet the [system requirements](../installation/system-requirements.md), especially disk I/O, to run online deletion at the same time as everything else the server is doing. - ## Potential Censorship Log messages such as the following are issued when the XRP Ledger detects potential transaction censorship. For more information about these log messages and the transaction censorship detector, see [Transaction Censorship Detection](../../concepts/networks-and-servers/transaction-censorship-detection.md). @@ -216,7 +208,6 @@ LedgerConsensus:WRN Potential Censorship: Eligible tx E08D6E9754025BA2534A787076 LedgerConsensus:ERR Potential Censorship: Eligible tx E08D6E9754025BA2534A78707605E0601F03ACE063687A0CA1BDDACFCD1698C7, which we are tracking since ledger 18851530 has not been included as of ledger 18851605. Additional warnings suppressed. ``` - ## rotating validatedSeq This message indicates that [online deletion](../configuration/data-retention/online-deletion.md) has started running: @@ -229,11 +220,11 @@ This log message is normal and indicates that online deletion is operating as ex The log message contains values describing the current online deletion run. Each keyword corresponds to the value immediately following it: -| Keyword | Value | Description | -|:-----------------|:-----------------|:---------------------------------------| -| `validatedSeq` | [Ledger Index][] | The current validated ledger version. | -| `lastRotated` | [Ledger Index][] | The end of the ledger range in the ["old" (read-only) database](../configuration/data-retention/online-deletion.md#how-it-works). Online deletion deletes this ledger version and earlier. | -| `deleteInterval` | Number | How many ledger versions to keep after online deletion. The [`online_delete` setting](../configuration/data-retention/online-deletion.md#configuration) controls this value. | +| Keyword | Value | Description | +| :--------------- | :--------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `validatedSeq` | [Ledger Index][] | The current validated ledger version. | +| `lastRotated` | [Ledger Index][] | The end of the ledger range in the ["old" (read-only) database](../configuration/data-retention/online-deletion.md#how-it-works). Online deletion deletes this ledger version and earlier. | +| `deleteInterval` | Number | How many ledger versions to keep after online deletion. The [`online_delete` setting](../configuration/data-retention/online-deletion.md#configuration) controls this value. | | `canDelete_` | [Ledger Index][] | The newest ledger version that the server is allowed to delete, if using [advisory deletion](../configuration/data-retention/online-deletion.md#advisory-deletion). If not using advisory deletion, this value is ignored. | When online deletion finishes, it writes the following log message: @@ -246,7 +237,6 @@ The number at the end of the message is the [ledger index][] of the validated le If the server falls out of sync while running online deletion, it interrupts online deletion and writes a ["Not deleting" log message](#not-deleting) instead of a "finished rotation" message. - ## Unable to determine hash of ancestor Log messages such as the following occur when the server sees a validation message from a peer and it does not know the parent ledger version that server is building on. This can occur when the server is not in sync with the rest of the network: @@ -257,12 +247,11 @@ Validations:WRN Unable to determine hash of ancestor seq=3 from ledger hash=00B1 {% partial file="/docs/_snippets/unsynced_warning_logs.md" /%} - - ## [veto_amendments] section in config file ignored + -Log messages such as the following occur when your `rippled.cfg` file contains a legacy `[veto_amendments]` stanza. The first time the server starts on version 1.7.0 or higher, it reads the stanza to set amendment votes; on later restarts, it ignores the `[amendments]` and `[veto_amendments]` stanzas and prints this message instead. +Log messages such as the following occur when your `rippled.cfg` file contains a legacy `[veto_amendments]` stanza. The first time the server starts on version 1.7.0 or higher, it reads the stanza to set amendment votes; on later restarts, it ignores the `[amendments]` and `[veto_amendments]` stanzas and prints this message instead. ```text Amendments:WRN [veto_amendments] section in config file ignored in favor of data in db/wallet.db. @@ -270,7 +259,6 @@ Amendments:WRN [veto_amendments] section in config file ignored in favor of data To resolve this error, remove the `[amendments]` and `[veto_amendments]` stanzas from your config file. For more information, see [Amendment Voting](../../concepts/networks-and-servers/amendments.md#amendment-voting). - ## View of consensus changed during open Log messages such as the following occur when a server is not in sync with the rest of the network: @@ -283,8 +271,6 @@ LedgerConsensus:WRN {"accepted":true,"account_hash":"89A821400087101F1BF2D2B912C {% partial file="/docs/_snippets/unsynced_warning_logs.md" /%} - - ## We are not running on the consensus ledger ```text @@ -293,20 +279,18 @@ NetworkOPs:WRN We are not running on the consensus ledger {% partial file="/docs/_snippets/unsynced_warning_logs.md" /%} - - ## See Also - **Concepts:** - - [The `rippled` Server](../../concepts/networks-and-servers/index.md) - - [Technical FAQ](/about/faq.md) + - [The `rippled` Server](../../concepts/networks-and-servers/index.md) + - [Technical FAQ](/about/faq.md) - **Tutorials:** - - [Diagnosing Problems](diagnosing-problems.md) - - [Capacity Planning](../installation/capacity-planning.md) + - [Diagnosing Problems](diagnosing-problems.md) + - [Capacity Planning](../installation/capacity-planning.md) - **References:** - - [rippled API Reference](../../references/http-websocket-apis/index.md) - - [`rippled` Commandline Usage](../commandline-usage.md) - - [server_info method][] + - [rippled API Reference](../../references/http-websocket-apis/index.md) + - [`rippled` Commandline Usage](../commandline-usage.md) + - [server_info method][] diff --git a/docs/introduction/crypto-wallets.md b/docs/introduction/crypto-wallets.md index 7ebe5d9af6..1897b40b35 100644 --- a/docs/introduction/crypto-wallets.md +++ b/docs/introduction/crypto-wallets.md @@ -2,15 +2,15 @@ html: crypto-wallets.html parent: intro-to-xrpl.html seo: - description: Wallets provide a convenient way of managing your XRP on the XRP Ledger. + description: Wallets provide a convenient way of managing your XRP on the XRP Ledger. labels: - Blockchain --- + # Crypto Wallets Crypto wallets provide a way to manage your account and funds on the XRP Ledger. There are many wallets to choose from. Choosing the right wallet ultimately comes down to your needs and comfort working with XRP. - ## Custodial vs Non-custodial Wallets A major factor when choosing a wallet is if you want a custodial or non-custodial wallet. @@ -29,7 +29,6 @@ Non-custodial wallets allow more freedom. Since you're interacting directly with Users of both custodial and non-custodial wallets have to protect themselves from malicious users who might try to steal their funds. With a custodial wallet, you have to manage your login and password to the app or site; with a non-custodial wallet, you have to manage your secret keys to your on-ledger account. In both cases, the wallet provider's own security practices are also important to protect you from vulnerabilities like supply-chain attacks, where an attacker loads malicious code into the wallet through software updates or dependencies. However, custodial wallets can be a bigger target for attackers since they have immediate access to multiple customers' funds. - ## Hardware vs Software Wallets Another deciding factor when choosing a wallet is picking between a hardware or software wallet. @@ -40,12 +39,10 @@ Hardware wallets are physical devices that store your private/secret keys. The m Software wallets on the other hand, are entirely digital. While this makes them easier to use, it also makes them the less secure method of the two, but they usually come with additional features to enhance your experience. Ultimately, the decision between the two will come down to your comfort level and how important ease-of-use is to you. - ## Creating Your Own Wallet The XRP Ledger is an opensource project with publicly available client libraries and API methods. While you can technically interact with the ledger using HTTP/WebSocket tools, it isn't practical for day-to-day use. You can create your own wallet to interact with the ledger, but you'll need to understand exactly how accounts, transactions, and the ledger work together before committing to this option. - Next: [Transactions and Requests](transactions-and-requests.md) ## See Also diff --git a/docs/introduction/index.md b/docs/introduction/index.md index 9c51cbe03b..3ae2089606 100644 --- a/docs/introduction/index.md +++ b/docs/introduction/index.md @@ -5,8 +5,9 @@ metadata: indexPage: true top_nav_grouping: Article Types --- + # Introduction -The XRP Ledger is a blockchain that permanently records digital transactions of tokens between accounts. The sections below expand on the concepts introduced in that sentence. +The XRP Ledger is a blockchain that permanently records digital transactions of tokens between accounts. The sections below expand on the concepts introduced in that sentence. {% child-pages /%} diff --git a/docs/introduction/software-ecosystem.md b/docs/introduction/software-ecosystem.md index 156d0ae59a..a4a3cc830f 100644 --- a/docs/introduction/software-ecosystem.md +++ b/docs/introduction/software-ecosystem.md @@ -2,10 +2,11 @@ html: software-ecosystem.html parent: introduction.html seo: - description: Get an overview of what XRP Ledger software is out there and how it fits together. + description: Get an overview of what XRP Ledger software is out there and how it fits together. labels: - Core Server --- + # Software Ecosystem The XRP Ledger is home to a deep, layered ecosystem of software projects powering and enabling an Internet of Value. It's impossible to list every project, tool, and business that interacts with the XRP Ledger, so this page only lists a few categories and highlights some central projects that are documented on this website. @@ -21,7 +22,6 @@ The XRP Ledger is home to a deep, layered ecosystem of software projects powerin - [_Apps and Services_](#apps-and-services) provide user-level interaction with the XRP Ledger, or provide a basis for even higher-level apps and services. - ### Core Servers The peer-to-peer network at the heart of the XRP Ledger requires a highly-reliable, efficient server to enforce the rules of consensus and transaction processing. The XRP Ledger Foundation publishes a reference implementation of this server software, called [**`rippled`**](../concepts/networks-and-servers/index.md) (pronounced "ripple-dee"). The server is available under [a permissive open-source license](https://github.com/XRPLF/rippled/blob/develop/LICENSE.md), so anyone can inspect and modify their own instance of the server, and re-publish with few restrictions. @@ -32,10 +32,9 @@ Every core server syncs to the same network (unless it's configured to follow a Core servers expose [HTTP / WebSocket APIs](../references/http-websocket-apis/index.md) for users to look up data, administer the server, and submit transactions. Clio servers also serve HTTP / WebSocket APIs but they don't connect directly to the peer-to-peer network and don't process transactions or participate in consensus. These servers rely on a core server in P2P mode to process transactions. - ### Client Libraries -Libraries simplify some of the common work of accessing the XRP Ledger, usually through the HTTP / WebSocket APIs. They convert the data into forms that are more familiar and convenient for various programming languages, and include implementations of common operations. +Libraries simplify some of the common work of accessing the XRP Ledger, usually through the HTTP / WebSocket APIs. They convert the data into forms that are more familiar and convenient for various programming languages, and include implementations of common operations. ![Client Libraries](/docs/img/ecosystem-client-libraries.svg) @@ -45,7 +44,6 @@ Many middleware services use client libraries internally. See [Client Libraries](../references/client-libraries.md) for some information about currently available client libraries. - ### Middleware Middleware services are programs that consume the XRP Ledger APIs on one side and provide their own APIs on the other side. They provide a layer of abstraction to make it easier to build higher-level applications by providing some common functionality as a service. @@ -54,7 +52,6 @@ Middleware services are programs that consume the XRP Ledger APIs on one side an Unlike client libraries, which are instantiated fresh and shut down with the program that imports them, middleware services typically stay running indefinitely, and may have their own databases (relational SQL databases or otherwise) and configuration files. Some are available as cloud services with various pricing or usage limitations. - ### Apps and Services Atop the stack is where the truly exciting things happen. Apps and services provide a way for users and devices to connect to the XRP Ledger. Services like private exchanges, token issuers, marketplaces, interfaces to the decentralized exchange, and wallets provide user interfaces for buying, selling, and trading various assets including XRP and tokens of all kinds. Many other possibilities exist, including additional services layered even higher. diff --git a/docs/introduction/transactions-and-requests.md b/docs/introduction/transactions-and-requests.md index 0ee72a69fc..c66f222691 100644 --- a/docs/introduction/transactions-and-requests.md +++ b/docs/introduction/transactions-and-requests.md @@ -2,7 +2,7 @@ html: txn-and-requests.html parent: intro-to-xrpl.html seo: - description: All interactions with the ledger are either transactions or requests. + description: All interactions with the ledger are either transactions or requests. labels: - Blockchain --- @@ -34,7 +34,7 @@ Here is a sample transaction in JSON format. This transaction transfers 1 XRP fr Optional fields are available for all transactions, with additional fields available for specific transactions. You can include as many optional fields as you need, but do not have to include every field in every transaction. -You send the transaction to the ledger as a command from JavaScript, Python, the command line, or any compatible service. The rippled servers propose transactions to the XRPL. +You send the transaction to the ledger as a command from JavaScript, Python, the command line, or any compatible service. The rippled servers propose transactions to the XRPL. ![Proposed Transacations](/docs/img/introduction17-gather-txns.png) @@ -110,6 +110,7 @@ The request returns a wealth of information. Here is an example response for an } } ``` + For information on the fields in an Account record, see [Accounts](../concepts/accounts/index.md). Next: [Software Ecosystem](software-ecosystem.md) diff --git a/docs/introduction/what-is-the-xrp-ledger.md b/docs/introduction/what-is-the-xrp-ledger.md index 4ffa9f3048..3b68f5804d 100644 --- a/docs/introduction/what-is-the-xrp-ledger.md +++ b/docs/introduction/what-is-the-xrp-ledger.md @@ -2,15 +2,15 @@ html: what-is-the-xrp-ledger.html parent: introduction.html seo: - description: Learn about the XRP Ledger (XRPL) blockchain. + description: Learn about the XRP Ledger (XRPL) blockchain. labels: - Blockchain --- + # What is the XRP Ledger? The XRP Ledger is a decentralized blockchain that uses its own digital currency to process and record financial transactions. - ## What Is a Blockchain? A blockchain is a continuously growing list of records. The blockchain starts with a block of data. diff --git a/docs/introduction/what-is-xrp.md b/docs/introduction/what-is-xrp.md index 3db1302e9f..2283c7a7ae 100644 --- a/docs/introduction/what-is-xrp.md +++ b/docs/introduction/what-is-xrp.md @@ -2,11 +2,12 @@ html: what-is-xrp.html parent: introduction.html seo: - title: What is XRP and Why Is It Valuable? - description: XRP, the cryptocurrency supported by the XRP Ledger (XRPL), allows faster cost-effective transactions. See how XRP operates on an open-source blockchain. + title: What is XRP and Why Is It Valuable? + description: XRP, the cryptocurrency supported by the XRP Ledger (XRPL), allows faster cost-effective transactions. See how XRP operates on an open-source blockchain. labels: - Blockchain --- + # What is XRP? XRP is the cryptocurrency supported by the XRP Ledger. @@ -45,31 +46,28 @@ While it might seem safer to have something “real” in your hand, many people The value of cryptocurrency comes from the faith that holders place in the currency. Given the distributed nature of the records and the cryptographic safeguards to secure the funds, cryptocurrency could be considered a much more robust, secure, and convenient form of currency than traditional fiat currencies. - ## XRP is Cryptocurrency The XRP Ledger was built over 2011 – early 2012 by Jed McCaleb, Arthur Britto and David Schwartz. At the time of its creation, there were 100 billion XRP. In September 2012, Jed and Arthur, along with Chris Larsen formed Ripple (the company, called OpenCoin Inc. at the time) and decided to gift 80 billion XRP to Ripple in exchange for Ripple developing on the XRP Ledger. ![One Hundred Billion with a "B"](/docs/img/introduction14-hundred-billion.png) -Since then, the company has regularly sold XRP, used it to strengthen XRP markets and improve network liquidity, and incentivized development of the greater ecosystem. In 2017, the company placed [55 billion XRP in escrow](https://ripple.com/insights/ripple-escrows-55-billion-xrp-for-supply-predictability/?__hstc=78174987.8aa695b6d0420a940041f1842edfd8a6.1692378128025.1692644550213.1692652561840.8&__hssc=78174987.3.1692652561840&__hsfp=3379522993) to ensure that the amount entering the general supply [grows predictably](https://ripple.com/insights/ripple-to-place-55-billion-xrp-in-escrow-to-ensure-certainty-into-total-xrp-supply/?__hstc=78174987.8aa695b6d0420a940041f1842edfd8a6.1692378128025.1692644550213.1692652561840.8&__hssc=78174987.3.1692652561840&__hsfp=3379522993) for the foreseeable future. Ripple's [XRP Market Performance site](https://ripple.com/xrp/?__hstc=78174987.8aa695b6d0420a940041f1842edfd8a6.1692378128025.1692644550213.1692652561840.8&__hssc=78174987.3.1692652561840&__hsfp=3379522993) reports how much XRP the company has available and locked in escrow at present. +Since then, the company has regularly sold XRP, used it to strengthen XRP markets and improve network liquidity, and incentivized development of the greater ecosystem. In 2017, the company placed [55 billion XRP in escrow](https://ripple.com/insights/ripple-escrows-55-billion-xrp-for-supply-predictability/?__hstc=78174987.8aa695b6d0420a940041f1842edfd8a6.1692378128025.1692644550213.1692652561840.8&__hssc=78174987.3.1692652561840&__hsfp=3379522993) to ensure that the amount entering the general supply [grows predictably](https://ripple.com/insights/ripple-to-place-55-billion-xrp-in-escrow-to-ensure-certainty-into-total-xrp-supply/?__hstc=78174987.8aa695b6d0420a940041f1842edfd8a6.1692378128025.1692644550213.1692652561840.8&__hssc=78174987.3.1692652561840&__hsfp=3379522993) for the foreseeable future. Ripple's [XRP Market Performance site](https://ripple.com/xrp/?__hstc=78174987.8aa695b6d0420a940041f1842edfd8a6.1692378128025.1692644550213.1692652561840.8&__hssc=78174987.3.1692652561840&__hsfp=3379522993) reports how much XRP the company has available and locked in escrow at present. ![Man with one XRP](/docs/img/introduction13-x-prefix.png) - ### Naming Originally, the XRP Ledger was called "Ripple" for the way the technology allowed payments [to ripple through multiple hops and currencies](../concepts/tokens/fungible-tokens/rippling.md). For the native asset built into the ledger, the creators chose the ticker symbol "XRP" from the term "ripple credits" or "ripples" and the X prefix for non-national currencies in the [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html) standard. The company registered itself as "Ripple Labs". The name "XRP" came to be used to refer to the asset in all contexts, to avoid confusion with the similar names for the technology and company, and eventually the company shortened its own name to "Ripple". In May 2018, [the community selected a new "X" symbol](https://twitter.com/xrpsymbol/status/1006925937571713025) to represent XRP to differentiate it from the triskelion logo that had previously been used for both the company and the digital asset. -| XRP "X" Logo | Ripple triskelion | -|:---------------------------------------|:------------------------------------| +| XRP "X" Logo | Ripple triskelion | +| :------------------------------- | :--------------------------------------------- | | !["X" logo](/img/xrp-x-logo.png) | ![Triskelion](/docs/img/ripple-triskelion.png) | - ### Trademark "XRP" is a registered trademark of the XRPL Foundation in the U.S.A. and other countries like China and Estonia. The trademark application was registered with the United States Patent and Trademark Office (USPTO) in 2013 with OpenCoin Inc and Ripple Labs Inc as assignees. In 2022, the trademark assignment was updated and is now assigned to the MITTETULUNDUSÜHING XRP LEDGER TRUST (“XRPLF”). - + Next: [Crypto Wallets](crypto-wallets.md) diff --git a/docs/references/client-libraries.md b/docs/references/client-libraries.md index 139b0bda2c..57a0cb2435 100644 --- a/docs/references/client-libraries.md +++ b/docs/references/client-libraries.md @@ -2,8 +2,9 @@ html: client-libraries.html parent: references.html seo: - description: Use these libraries to access the XRP Ledger from your programming language of choice. + description: Use these libraries to access the XRP Ledger from your programming language of choice. --- + # Client Libraries These client libraries simplify some of the common work of accessing and processing XRP Ledger data, and present it in a form that matches with the native conventions of their respective programming languages. @@ -11,14 +12,14 @@ These client libraries simplify some of the common work of accessing and process - To stay up-to-date on JavaScript/TypeScript and Python library updates, join the [xrpl-announce mailing list](https://groups.google.com/g/xrpl-announce). - For other programming languages, you can access the XRP Ledger through the [HTTP APIs](http-websocket-apis/index.md). -| Language | Library Name | Get Started | API Reference | Source Code | -|---------------------------------|---------------------------|-------------|--------------|-------------| -| **Python** | `xrpl-py` | [Get Started Using Python](../tutorials/python/build-apps/get-started.md) | [API Reference](https://xrpl-py.readthedocs.io/) | [Repo](https://github.com/XRPLF/xrpl-py) | -| **Go** | `xrpl-go` | [Get Started Using Go](../tutorials/go/build-apps/get-started.md) | [API Reference](https://pkg.go.dev/github.com/Peersyst/xrpl-go) | [Repo](https://github.com/Peersyst/xrpl-go) | -| **JavaScript** / **TypeScript** | `xrpl.js` | [Get Started](../tutorials/javascript/build-apps/get-started.md) | [API Reference](https://js.xrpl.org/) | [Repo](https://github.com/XRPLF/xrpl.js) | -| **JavaScript** / **TypeScript** | `xrpl-client` | [Get Started](https://jsfiddle.net/WietseWind/35az6p1b/) | [NPM Reference](https://www.npmjs.com/package/xrpl-client) | [Repo](https://github.com/XRPL-Labs/xrpl-client) | -| **JavaScript** / **TypeScript** | `xrpl-accountlib` | [Get Started](https://jsfiddle.net/WietseWind/gkefpnu0/) | [NPM Reference](https://www.npmjs.com/package/xrpl-accountlib) | [Repo](https://github.com/WietseWind/xrpl-accountlib) | -| **C++** | `rippled` Signing Library | [Get Started](https://github.com/XRPLF/rippled/tree/develop/Builds/linux#signing-library) | | (Part of [`rippled`](https://github.com/XRPLF/rippled/)) | -| **Java** | `xrpl4j` | [Get Started Using Java](../tutorials/java/build-apps/get-started.md) | [API Reference](https://javadoc.io/doc/org.xrpl/) | [Repo](https://github.com/XRPLF/xrpl4j) | -| **PHP** | `XRPL_PHP` | [Get Started Using PHP](../tutorials/php/build-apps/get-started.md) | [XRPL_PHP Docs](https://alexanderbuzz.github.io/xrpl-php-docs/) | [Repo](https://github.com/AlexanderBuzz/xrpl-php) | -| **Ruby** | `XRPB` | | [XRPB Docs](https://www.rubydoc.info/gems/xrbp) | [Repo](https://github.com/DevNullProd/XRBP) | +| Language | Library Name | Get Started | API Reference | Source Code | +| ------------------------------- | ------------------------- | ----------------------------------------------------------------------------------------- | --------------------------------------------------------------- | -------------------------------------------------------- | +| **Python** | `xrpl-py` | [Get Started Using Python](../tutorials/python/build-apps/get-started.md) | [API Reference](https://xrpl-py.readthedocs.io/) | [Repo](https://github.com/XRPLF/xrpl-py) | +| **Go** | `xrpl-go` | [Get Started Using Go](../tutorials/go/build-apps/get-started.md) | [API Reference](https://pkg.go.dev/github.com/Peersyst/xrpl-go) | [Repo](https://github.com/Peersyst/xrpl-go) | +| **JavaScript** / **TypeScript** | `xrpl.js` | [Get Started](../tutorials/javascript/build-apps/get-started.md) | [API Reference](https://js.xrpl.org/) | [Repo](https://github.com/XRPLF/xrpl.js) | +| **JavaScript** / **TypeScript** | `xrpl-client` | [Get Started](https://jsfiddle.net/WietseWind/35az6p1b/) | [NPM Reference](https://www.npmjs.com/package/xrpl-client) | [Repo](https://github.com/XRPL-Labs/xrpl-client) | +| **JavaScript** / **TypeScript** | `xrpl-accountlib` | [Get Started](https://jsfiddle.net/WietseWind/gkefpnu0/) | [NPM Reference](https://www.npmjs.com/package/xrpl-accountlib) | [Repo](https://github.com/WietseWind/xrpl-accountlib) | +| **C++** | `rippled` Signing Library | [Get Started](https://github.com/XRPLF/rippled/tree/develop/Builds/linux#signing-library) | | (Part of [`rippled`](https://github.com/XRPLF/rippled/)) | +| **Java** | `xrpl4j` | [Get Started Using Java](../tutorials/java/build-apps/get-started.md) | [API Reference](https://javadoc.io/doc/org.xrpl/) | [Repo](https://github.com/XRPLF/xrpl4j) | +| **PHP** | `XRPL_PHP` | [Get Started Using PHP](../tutorials/php/build-apps/get-started.md) | [XRPL_PHP Docs](https://alexanderbuzz.github.io/xrpl-php-docs/) | [Repo](https://github.com/AlexanderBuzz/xrpl-php) | +| **Ruby** | `XRPB` | | [XRPB Docs](https://www.rubydoc.info/gems/xrbp) | [Repo](https://github.com/DevNullProd/XRBP) | diff --git a/docs/references/data-api.md b/docs/references/data-api.md index 44dcac4c97..9aad3e8804 100644 --- a/docs/references/data-api.md +++ b/docs/references/data-api.md @@ -2,12 +2,13 @@ html: data-api.html parent: references.html seo: - description: (DEPRECATED) RESTful interface to XRP Ledger analytics and historical data. + description: (DEPRECATED) RESTful interface to XRP Ledger analytics and historical data. status: removed nav_omit: true -sidebar: - path: ../../sidebars.yaml +sidebar: + path: ../../sidebars.yaml --- + # Ripple Data API v2 {% admonition type="danger" name="Warning" %}The Ripple Data API v2 is deprecated with no ongoing support. Please use the native [XRP Ledger HTTP APIs](http-websocket-apis/index.md) instead.{% /admonition %} diff --git a/docs/references/http-websocket-apis/admin-api-methods/_template-admin-method.md b/docs/references/http-websocket-apis/admin-api-methods/_template-admin-method.md index e5e50b4ea7..7696b83d5d 100644 --- a/docs/references/http-websocket-apis/admin-api-methods/_template-admin-method.md +++ b/docs/references/http-websocket-apis/admin-api-methods/_template-admin-method.md @@ -2,25 +2,26 @@ html: TODO_PAGE_NAME.html parent: TODO_CATEGORY_FILENAME.html seo: - description: TODO BLURB + description: TODO BLURB labels: # TODO At least one label --- + # TODO_method_name + [[Source]](TODO_URL "Source") The `{{currentpage.name}}` method TODO_description. _The `{{currentpage.name}}` method is an [admin method](admin-api-methods.html) that cannot be run by unprivileged users._ - ### Request Format An example of the request format: -*WebSocket* +_WebSocket_ ```json { @@ -28,7 +29,7 @@ An example of the request format: } ``` -*JSON-RPC* +_JSON-RPC_ ```json { @@ -39,7 +40,7 @@ An example of the request format: } ``` -*Commandline* +_Commandline_ ```sh #Syntax: {{currentpage.name}} TODO @@ -50,10 +51,10 @@ rippled {{currentpage.name}} The request includes the following parameters: -| `Field` | Type | Description | -|:------------|:--------------------------|:-----------------------------------| -TODO_request_params +| `Field` | Type | Description | +| :------ | :--- | :---------- | +TODO_request_params ### Response Format @@ -61,7 +62,7 @@ An example of a successful response: -*WebSocket* +_WebSocket_ ```json { @@ -69,7 +70,7 @@ An example of a successful response: } ``` -*JSON-RPC* +_JSON-RPC_ ```json { @@ -77,7 +78,7 @@ An example of a successful response: } ``` -*Commandline* +_Commandline_ ```json Loading: "/etc/rippled.cfg" @@ -92,10 +93,10 @@ Connecting to 127.0.0.1:5005 The response follows the [standard format][], with a successful result containing the following fields: -| `Field` | Type | Description | -|:--------|:-------|:----------------------------------------------------------| -TODO_response_params +| `Field` | Type | Description | +| :------ | :--- | :---------- | +TODO_response_params ### Possible Errors @@ -104,6 +105,7 @@ TODO_response_params - `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. + {% include '_snippets/rippled-api-links.md' %} {% include '_snippets/tx-type-links.md' %} {% include '_snippets/rippled_versions.md' %} diff --git a/docs/references/http-websocket-apis/admin-api-methods/index.md b/docs/references/http-websocket-apis/admin-api-methods/index.md index b433fb44d2..10299a9e40 100644 --- a/docs/references/http-websocket-apis/admin-api-methods/index.md +++ b/docs/references/http-websocket-apis/admin-api-methods/index.md @@ -1,49 +1,47 @@ --- seo: - description: Administer an XRP Ledger server with these API methods. + description: Administer an XRP Ledger server with these API methods. labels: - Core Server --- + # Admin API Methods Administer a `rippled` server using these admin API methods. Admin methods are meant only for trusted personnel in charge of keeping the server operational. Admin methods include commands for managing, monitoring, and debugging the server. Admin commands are available only if you connect to `rippled` on a host and port that the `rippled.cfg` file identifies as admin. By default, the commandline client uses an admin connection. For more information on connecting to `rippled`, see [Getting Started with the `rippled` API](../../../tutorials/http-websocket-apis/build-apps/get-started.md). - ## [Key Generation Methods](key-generation-methods/index.md) Use these methods to generate and manage keys. -* **[`validation_create`](key-generation-methods/validation_create.md)** - Generate formatted for `rippled` node key pair. (Validators should use [tokens](../../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md) instead of keys generated by this method.) -* **[`wallet_propose`](key-generation-methods/wallet_propose.md)** - Generate keys for a new account. - +- **[`validation_create`](key-generation-methods/validation_create.md)** - Generate formatted for `rippled` node key pair. (Validators should use [tokens](../../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md) instead of keys generated by this method.) +- **[`wallet_propose`](key-generation-methods/wallet_propose.md)** - Generate keys for a new account. ## [Logging and Data Management Methods](logging-and-data-management-methods/index.md) Use these methods to manage log levels and other data, such as ledgers. -* **[`can_delete`](logging-and-data-management-methods/can_delete.md)** - Allow online deletion of ledgers up to a specific ledger. -* **[`ledger_cleaner`](logging-and-data-management-methods/ledger_cleaner.md)** - Configure the ledger cleaner service to check for corrupted data. -* **[`ledger_request`](logging-and-data-management-methods/ledger_request.md)** - Query a peer server for a specific ledger version. -* **[`log_level`](logging-and-data-management-methods/log_level.md)** - Get or modify log verbosity. -* **[`logrotate`](logging-and-data-management-methods/logrotate.md)** - Reopen the log file. - +- **[`can_delete`](logging-and-data-management-methods/can_delete.md)** - Allow online deletion of ledgers up to a specific ledger. +- **[`ledger_cleaner`](logging-and-data-management-methods/ledger_cleaner.md)** - Configure the ledger cleaner service to check for corrupted data. +- **[`ledger_request`](logging-and-data-management-methods/ledger_request.md)** - Query a peer server for a specific ledger version. +- **[`log_level`](logging-and-data-management-methods/log_level.md)** - Get or modify log verbosity. +- **[`logrotate`](logging-and-data-management-methods/logrotate.md)** - Reopen the log file. ## [Server Control Methods](server-control-methods/index.md) Use these methods to manage the `rippled` server. -* **[`ledger_accept`](server-control-methods/ledger_accept.md)** - Close and advance the ledger in stand-alone mode. -* **[`stop`](server-control-methods/stop.md)** - Shut down the `rippled` server. +- **[`ledger_accept`](server-control-methods/ledger_accept.md)** - Close and advance the ledger in stand-alone mode. +- **[`stop`](server-control-methods/stop.md)** - Shut down the `rippled` server. ## [Signing Methods](signing-methods/index.md) Use these methods to sign transactions. -* **[`sign`](signing-methods/sign.md)** - Cryptographically sign a transaction. -* **[`sign_for`](signing-methods/sign_for.md)** - Contribute to a multi-signature. -* **[`channel_authorize`](../public-api-methods/payment-channel-methods/channel_authorize.md)** - Sign a claim for money from a payment channel. +- **[`sign`](signing-methods/sign.md)** - Cryptographically sign a transaction. +- **[`sign_for`](signing-methods/sign_for.md)** - Contribute to a multi-signature. +- **[`channel_authorize`](../public-api-methods/payment-channel-methods/channel_authorize.md)** - Sign a claim for money from a payment channel. By default, these methods are [admin-only](../../../tutorials/http-websocket-apis/build-apps/get-started.md#admin-access). They can be used as public methods if the server admin has [enabled public signing](../../../infrastructure/configuration/enable-public-signing.md). @@ -51,34 +49,33 @@ By default, these methods are [admin-only](../../../tutorials/http-websocket-api Use these methods to manage the server's connections in the peer-to-peer XRP Ledger network. -* **[`connect`](peer-management-methods/connect.md)** - Force the `rippled` server to connect to a specific peer. -* **[`peer_reservations_add`](peer-management-methods/peer_reservations_add.md)** - Add or update a reserved slot for a specific peer. -* **[`peer_reservations_del`](peer-management-methods/peer_reservations_del.md)** - Remove a reserved slot for a specific peer. -* **[`peer_reservations_list`](peer-management-methods/peer_reservations_list.md)** - List reserved slots for specific peers. -* **[`peers`](peer-management-methods/peers.md)** - Get information about the peer servers connected. +- **[`connect`](peer-management-methods/connect.md)** - Force the `rippled` server to connect to a specific peer. +- **[`peer_reservations_add`](peer-management-methods/peer_reservations_add.md)** - Add or update a reserved slot for a specific peer. +- **[`peer_reservations_del`](peer-management-methods/peer_reservations_del.md)** - Remove a reserved slot for a specific peer. +- **[`peer_reservations_list`](peer-management-methods/peer_reservations_list.md)** - List reserved slots for specific peers. +- **[`peers`](peer-management-methods/peers.md)** - Get information about the peer servers connected. ## [Status and Debugging Methods](status-and-debugging-methods/index.md) Use these methods to check the status of the network and server. -* **[`consensus_info`](status-and-debugging-methods/consensus_info.md)** - Get information about the state of consensus as it happens. -* **[`feature`](status-and-debugging-methods/feature.md)** - Get information about protocol amendments. -* **[`fetch_info`](status-and-debugging-methods/fetch_info.md)** - Get information about the server's sync with the network. -* **[`get_counts`](status-and-debugging-methods/get_counts.md)** - Get statistics about the server's internals and memory usage. -* **[`manifest`](../public-api-methods/server-info-methods/manifest.md)** - Get the latest public key information about a known validator. -* **[`print`](status-and-debugging-methods/print.md)** - Get information about internal subsystems. -* **[`validator_info`](status-and-debugging-methods/validator_info.md)** - Get information about the server's validator settings, if configured as a validator. -* **[`validator_list_sites`](status-and-debugging-methods/validator_list_sites.md)** - Get information about sites that publish validator lists. -* **[`validators`](status-and-debugging-methods/validators.md)** - Get information about the current validators. - +- **[`consensus_info`](status-and-debugging-methods/consensus_info.md)** - Get information about the state of consensus as it happens. +- **[`feature`](status-and-debugging-methods/feature.md)** - Get information about protocol amendments. +- **[`fetch_info`](status-and-debugging-methods/fetch_info.md)** - Get information about the server's sync with the network. +- **[`get_counts`](status-and-debugging-methods/get_counts.md)** - Get statistics about the server's internals and memory usage. +- **[`manifest`](../public-api-methods/server-info-methods/manifest.md)** - Get the latest public key information about a known validator. +- **[`print`](status-and-debugging-methods/print.md)** - Get information about internal subsystems. +- **[`validator_info`](status-and-debugging-methods/validator_info.md)** - Get information about the server's validator settings, if configured as a validator. +- **[`validator_list_sites`](status-and-debugging-methods/validator_list_sites.md)** - Get information about sites that publish validator lists. +- **[`validators`](status-and-debugging-methods/validators.md)** - Get information about the current validators. ## Deprecated Methods The following admin commands are deprecated and either have been removed, or may be removed without further notice: -* `ledger_header` - Use the [ledger method][] instead. -* `unl_add`, `unl_delete`, `unl_list`, `unl_load`, `unl_network`, `unl_reset`, `unl_score` - Use the `validators.txt` config file for UNL management instead. -* `wallet_seed` - Use the [wallet_propose method][] instead. -* `validation_seed` - Use the config file and `validator-keys-tool` for managing your seed instead. +- `ledger_header` - Use the [ledger method][] instead. +- `unl_add`, `unl_delete`, `unl_list`, `unl_load`, `unl_network`, `unl_reset`, `unl_score` - Use the `validators.txt` config file for UNL management instead. +- `wallet_seed` - Use the [wallet_propose method][] instead. +- `validation_seed` - Use the config file and `validator-keys-tool` for managing your seed instead. {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/http-websocket-apis/admin-api-methods/key-generation-methods/index.md b/docs/references/http-websocket-apis/admin-api-methods/key-generation-methods/index.md index b18a22680c..247a8a7708 100644 --- a/docs/references/http-websocket-apis/admin-api-methods/key-generation-methods/index.md +++ b/docs/references/http-websocket-apis/admin-api-methods/key-generation-methods/index.md @@ -4,9 +4,9 @@ parent: admin-api-methods.html metadata: indexPage: true --- + # Key Generation Methods Use these methods to generate and manage keys. - {% child-pages /%} diff --git a/docs/references/http-websocket-apis/admin-api-methods/key-generation-methods/validation_create.md b/docs/references/http-websocket-apis/admin-api-methods/key-generation-methods/validation_create.md index ff85d2b14e..aaf0a00fee 100644 --- a/docs/references/http-websocket-apis/admin-api-methods/key-generation-methods/validation_create.md +++ b/docs/references/http-websocket-apis/admin-api-methods/key-generation-methods/validation_create.md @@ -1,11 +1,13 @@ --- seo: - description: Generate keys for a rippled server to identify itself to the network. + description: Generate keys for a rippled server to identify itself to the network. labels: - - Security - - Core Server + - Security + - Core Server --- + # validation_create + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/ValidationCreate.cpp "Source") Use the `validation_create` command to generate [cryptographic keys a `rippled` server can use to identify itself to the network](../../../../concepts/networks-and-servers/peer-protocol.md#node-key-pair). Similar to the [wallet_propose method][], this method only generates a set of keys in the proper format. It does not any makes changes to the XRP Ledger data or server configuration. @@ -16,48 +18,54 @@ You can configure your server to use the generated key pair to sign validations {% admonition type="success" name="Tip" %}For configuring a robust validator, you should use the `validator-keys` tool (included in the `rippled` package build) to generate validator tokens (which can be rotated) with an offline master key. For more information, see [Validator Setup](../../../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md#3-enable-validation-on-your-rippled-server).{% /admonition %} - ### Request Format + An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": 0, - "command": "validation_create", - "secret": "BAWL MAN JADE MOON DOVE GEM SON NOW HAD ADEN GLOW TIRE" + "id": 0, + "command": "validation_create", + "secret": "BAWL MAN JADE MOON DOVE GEM SON NOW HAD ADEN GLOW TIRE" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "validation_create", - "params": [ - { - "secret": "BAWL MAN JADE MOON DOVE GEM SON NOW HAD ADEN GLOW TIRE" - } - ] + "method": "validation_create", + "params": [ + { + "secret": "BAWL MAN JADE MOON DOVE GEM SON NOW HAD ADEN GLOW TIRE" + } + ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh #Syntax: validation_create [secret] rippled validation_create "BAWL MAN JADE MOON DOVE GEM SON NOW HAD ADEN GLOW TIRE" ``` + {% /tab %} {% /tabs %} The request includes the following parameters: -| `Field` | Type | Description | -|:---------|:-------|:---------------------------------------------------------| +| `Field` | Type | Description | +| :------- | :----- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `secret` | String | _(Optional)_ Use this value as a seed to generate the credentials. The same secret always generates the same credentials. You can provide the seed in [RFC-1751](https://tools.ietf.org/html/rfc1751) format or the XRP Ledger's [base58][] format. If omitted, generate a random seed. | {% admonition type="info" name="Note" %}The security of your validator depends on the entropy of your seed. Do not use a secret value for real business purposes unless it is generated with a strong source of randomness. Ripple recommends omitting the `secret` when generating new credentials for the first time.{% /admonition %} @@ -69,19 +77,22 @@ An example of a successful response: {% tabs %} {% tab label="JSON-RPC" %} + ```json { - "result" : { - "status" : "success", - "validation_key" : "FAWN JAVA JADE HEAL VARY HER REEL SHAW GAIL ARCH BEN IRMA", - "validation_public_key" : "n9Mxf6qD4J55XeLSCEpqaePW4GjoCR5U1ZeGZGJUCNe3bQa4yQbG", - "validation_seed" : "ssZkdwURFMBXenJPbrpE14b6noJSu" - } + "result": { + "status": "success", + "validation_key": "FAWN JAVA JADE HEAL VARY HER REEL SHAW GAIL ARCH BEN IRMA", + "validation_public_key": "n9Mxf6qD4J55XeLSCEpqaePW4GjoCR5U1ZeGZGJUCNe3bQa4yQbG", + "validation_seed": "ssZkdwURFMBXenJPbrpE14b6noJSu" + } } ``` + {% /tab %} {% tab label="Commandline" %} + ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -95,21 +106,22 @@ Connecting to 127.0.0.1:5005 } } ``` + {% /tab %} {% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: -| `Field` | Type | Description | -|:------------------------|:-------|:------------------------------------------| +| `Field` | Type | Description | +| :---------------------- | :----- | :---------------------------------------------------------------------------------------------------------- | | `validation_key` | String | The secret key for these validation credentials, in [RFC-1751](https://tools.ietf.org/html/rfc1751) format. | -| `validation_public_key` | String | The public key for these validation credentials, in the XRP Ledger's [base58][] encoded string format. | -| `validation_seed` | String | The secret key for these validation credentials, in the XRP Ledger's [base58][] encoded string format. | +| `validation_public_key` | String | The public key for these validation credentials, in the XRP Ledger's [base58][] encoded string format. | +| `validation_seed` | String | The secret key for these validation credentials, in the XRP Ledger's [base58][] encoded string format. | ### Possible Errors -* Any of the [universal error types][]. -* `badSeed` - The request provided an invalid seed value. This usually means that the seed value appears to be a valid string of a different format, such as an account address or validation public key. +- Any of the [universal error types][]. +- `badSeed` - The request provided an invalid seed value. This usually means that the seed value appears to be a valid string of a different format, such as an account address or validation public key. {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/http-websocket-apis/admin-api-methods/key-generation-methods/wallet_propose.md b/docs/references/http-websocket-apis/admin-api-methods/key-generation-methods/wallet_propose.md index 9f981692d4..eb3f890e64 100644 --- a/docs/references/http-websocket-apis/admin-api-methods/key-generation-methods/wallet_propose.md +++ b/docs/references/http-websocket-apis/admin-api-methods/key-generation-methods/wallet_propose.md @@ -1,16 +1,18 @@ --- seo: - description: Generate keys for a new account. + description: Generate keys for a new account. labels: - - Security - - Accounts + - Security + - Accounts --- + # wallet_propose + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/WalletPropose.cpp "Source") Use the `wallet_propose` method to generate a key pair and XRP Ledger address. This command only generates key and address values, and does not affect the XRP Ledger itself in any way. To become a funded account in the ledger, the address must [receive a Payment transaction](../../../../concepts/accounts/index.md#creating-accounts) that provides enough XRP to meet the [reserve requirement](../../../../concepts/accounts/reserves.md). -*The `wallet_propose` method is an [admin method](../index.md) that cannot be run by unprivileged users!* (This command is restricted to protect against people sniffing network traffic for account secrets, since admin commands are not usually transmitted over the outside network.) +_The `wallet_propose` method is an [admin method](../index.md) that cannot be run by unprivileged users!_ (This command is restricted to protect against people sniffing network traffic for account secrets, since admin commands are not usually transmitted over the outside network.) ### Request Format @@ -19,68 +21,78 @@ An example of the request format: {% tabs %} {% tab label="WebSocket (with key type)" %} + ```json { - "command": "wallet_propose", - "seed": "snoPBrXtMeMyMHUVTgbuqAfg1SUTb", - "key_type": "secp256k1" + "command": "wallet_propose", + "seed": "snoPBrXtMeMyMHUVTgbuqAfg1SUTb", + "key_type": "secp256k1" } ``` + {% /tab %} {% tab label="WebSocket (no key type)" %} + ```json { - "command": "wallet_propose", - "passphrase": "masterpassphrase" + "command": "wallet_propose", + "passphrase": "masterpassphrase" } ``` + {% /tab %} {% tab label="JSON-RPC (with key type)" %} + ```json { - "method": "wallet_propose", - "params": [ - { - "seed": "snoPBrXtMeMyMHUVTgbuqAfg1SUTb", - "key_type": "secp256k1" - } - ] + "method": "wallet_propose", + "params": [ + { + "seed": "snoPBrXtMeMyMHUVTgbuqAfg1SUTb", + "key_type": "secp256k1" + } + ] } ``` + {% /tab %} {% tab label="JSON-RPC (no key type)" %} + ```json { - "method": "wallet_propose", - "params": [ - { - "passphrase": "snoPBrXtMeMyMHUVTgbuqAfg1SUTb" - } - ] + "method": "wallet_propose", + "params": [ + { + "passphrase": "snoPBrXtMeMyMHUVTgbuqAfg1SUTb" + } + ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh #Syntax: wallet_propose [passphrase] rippled wallet_propose masterpassphrase ``` + {% /tab %} {% /tabs %} The request can contain the following parameters: -| `Field` | Type | Description | -|:-------------|:-------|:-----------------------------------------------------| -| `key_type` | String |Which [signing algorithm](../../../../concepts/accounts/cryptographic-keys.md#signing-algorithms) to use to derive this key pair. Valid values are `ed25519` and `secp256k1` (all lower case). The default is `secp256k1`. | +| `Field` | Type | Description | +| :----------- | :----- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `key_type` | String | Which [signing algorithm](../../../../concepts/accounts/cryptographic-keys.md#signing-algorithms) to use to derive this key pair. Valid values are `ed25519` and `secp256k1` (all lower case). The default is `secp256k1`. | | `passphrase` | String | _(Optional)_ Generate a key pair and address from this seed value. This value can be formatted in [hexadecimal][], the XRP Ledger's [base58][] format, [RFC-1751][], or as an arbitrary string. Cannot be used with `seed` or `seed_hex`. | -| `seed` | String | _(Optional)_ Generate the key pair and address from this seed value in the XRP Ledger's [base58][]-encoded format. Cannot be used with `passphrase` or `seed_hex`. | -| `seed_hex` | String | _(Optional)_ Generate the key pair and address from this seed value in [hexadecimal][] format. Cannot be used with `passphrase` or `seed`. | +| `seed` | String | _(Optional)_ Generate the key pair and address from this seed value in the XRP Ledger's [base58][]-encoded format. Cannot be used with `passphrase` or `seed_hex`. | +| `seed_hex` | String | _(Optional)_ Generate the key pair and address from this seed value in [hexadecimal][] format. Cannot be used with `passphrase` or `seed`. | You must provide **at most one** of the following fields: `passphrase`, `seed`, or `seed_hex`. If you omit all three, `rippled` uses a random seed. @@ -92,15 +104,15 @@ For most cases, you should use a seed value generated from a strong source of ra Cases where you would specify a known seed include: -* Re-calculating your address when you only know the seed associated with that address -* Testing `rippled` functionality +- Re-calculating your address when you only know the seed associated with that address +- Testing `rippled` functionality If you do specify a seed, you can specify it in any of the following formats: -* As a secret key string in the XRP Ledger's [base58][] format. Example: `snoPBrXtMeMyMHUVTgbuqAfg1SUTb`. -* As an [RFC-1751][] format string (secp256k1 key pairs only). Example: `I IRE BOND BOW TRIO LAID SEAT GOAL HEN IBIS IBIS DARE`. -* As a 128-bit [hexadecimal][] string. Example: `DEDCE9CE67B451D852FD4E846FCDE31C`. -* An arbitrary string to use as a seed value. For example: `masterpassphrase`. +- As a secret key string in the XRP Ledger's [base58][] format. Example: `snoPBrXtMeMyMHUVTgbuqAfg1SUTb`. +- As an [RFC-1751][] format string (secp256k1 key pairs only). Example: `I IRE BOND BOW TRIO LAID SEAT GOAL HEN IBIS IBIS DARE`. +- As a 128-bit [hexadecimal][] string. Example: `DEDCE9CE67B451D852FD4E846FCDE31C`. +- An arbitrary string to use as a seed value. For example: `masterpassphrase`. [RFC-1751]: https://tools.ietf.org/html/rfc1751 [hexadecimal]: https://en.wikipedia.org/wiki/Hexadecimal @@ -112,6 +124,7 @@ An example of a successful response: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 2, @@ -128,26 +141,30 @@ An example of a successful response: } } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "result": { - "account_id": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "key_type": "secp256k1", - "master_key": "I IRE BOND BOW TRIO LAID SEAT GOAL HEN IBIS IBIS DARE", - "master_seed": "snoPBrXtMeMyMHUVTgbuqAfg1SUTb", - "master_seed_hex": "DEDCE9CE67B451D852FD4E846FCDE31C", - "public_key": "aBQG8RQAzjs1eTKFEAQXr2gS4utcDiEC9wmi7pfUPTi27VCahwgw", - "public_key_hex": "0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020", - "status": "success" - } + "result": { + "account_id": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "key_type": "secp256k1", + "master_key": "I IRE BOND BOW TRIO LAID SEAT GOAL HEN IBIS IBIS DARE", + "master_seed": "snoPBrXtMeMyMHUVTgbuqAfg1SUTb", + "master_seed_hex": "DEDCE9CE67B451D852FD4E846FCDE31C", + "public_key": "aBQG8RQAzjs1eTKFEAQXr2gS4utcDiEC9wmi7pfUPTi27VCahwgw", + "public_key_hex": "0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020", + "status": "success" + } } ``` + {% /tab %} {% tab label="Commandline" %} + ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -165,22 +182,23 @@ Connecting to 127.0.0.1:5005 } } ``` + {% /tab %} {% /tabs %} The response follows the [standard format][], with a successful result containing various important information about the new (potential) account, including the following fields: -| `Field` | Type | Description | -|:------------------|:-------|:------------------------------------------------| -| `key_type` | String | Which [signing algorithm](../../../../concepts/accounts/cryptographic-keys.md#signing-algorithms) was used to derive this key pair. Valid values are `ed25519` and `secp256k1` (all lower case). | -| `master_seed` | String | The [master seed](../../../../concepts/accounts/cryptographic-keys.md#key-components), in the XRP Ledger's [base58][] encoded string format. Typically, you use the key in this format to sign transactions. | -| `master_seed_hex` | String | The master seed, in hex format. | -| `master_key` | String | **DEPRECATED** The master seed, in [RFC-1751][] format. **Note:** The `rippled` implementation reverses the byte order of the key after decoding from RFC-1751 and before encoding to RFC-1751; if you read or write keys for use with the XRP Ledger using a different RFC-1751 implementation, you must do the same to be compatible with `rippled`'s RFC-1751 encoding. | +| `Field` | Type | Description | +| :---------------- | :----- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `key_type` | String | Which [signing algorithm](../../../../concepts/accounts/cryptographic-keys.md#signing-algorithms) was used to derive this key pair. Valid values are `ed25519` and `secp256k1` (all lower case). | +| `master_seed` | String | The [master seed](../../../../concepts/accounts/cryptographic-keys.md#key-components), in the XRP Ledger's [base58][] encoded string format. Typically, you use the key in this format to sign transactions. | +| `master_seed_hex` | String | The master seed, in hex format. | +| `master_key` | String | **DEPRECATED** The master seed, in [RFC-1751][] format. **Note:** The `rippled` implementation reverses the byte order of the key after decoding from RFC-1751 and before encoding to RFC-1751; if you read or write keys for use with the XRP Ledger using a different RFC-1751 implementation, you must do the same to be compatible with `rippled`'s RFC-1751 encoding. | | `account_id` | String | The [Address][] of the account in the XRP Ledger's [base58][] format. This is not the public key, but a hash-of-a-hash of it. It also has a checksum so a typo almost certainly results in an invalid address rather than a valid, but different address. This is the primary identifier of an account in the XRP Ledger. You tell people this to get paid, and use it in transactions to indicate who you are and who you're paying, trusting, and so forth. [Multi-signing lists](../../../../concepts/accounts/multi-signing.md) also use these to identify other signers. | -| `public_key` | String | The public key of the key pair, in the XRP Ledger's [base58][] encoded string format. Derived from the `master_seed`. | -| `public_key_hex` | String | This is the public key of the key pair, in hexadecimal. Derived from the `master_seed`. To validate the signature on a transaction, `rippled` needs this public key. That's why the format for a signed transaction includes the public key in the `SigningPubKey` field. | -| `warning` | String | (May be omitted) If the request specified a seed value, this field provides a warning that it may be insecure. | +| `public_key` | String | The public key of the key pair, in the XRP Ledger's [base58][] encoded string format. Derived from the `master_seed`. | +| `public_key_hex` | String | This is the public key of the key pair, in hexadecimal. Derived from the `master_seed`. To validate the signature on a transaction, `rippled` needs this public key. That's why the format for a signed transaction includes the public key in the `SigningPubKey` field. | +| `warning` | String | (May be omitted) If the request specified a seed value, this field provides a warning that it may be insecure. | You can also use this method to generate a key pair to use as a regular key pair for an account. You assign a regular key pair to an account to be able to sign most transactions with it, while keeping your master key pair offline whenever possible. @@ -190,11 +208,10 @@ For more information about master and regular key pairs, see [Cryptographic Keys For more information about multi-signing and signer lists, see [Multi-Signing](../../../../concepts/accounts/multi-signing.md). - ### Possible Errors -* Any of the [universal error types][]. -* `invalidParams` - One or more fields are specified incorrectly. -* `badSeed` - The request specified a disallowed seed value (in the `passphrase`, `seed`, or `seed_hex` fields), such as an empty string, or a string resembling a XRP Ledger address. +- Any of the [universal error types][]. +- `invalidParams` - One or more fields are specified incorrectly. +- `badSeed` - The request specified a disallowed seed value (in the `passphrase`, `seed`, or `seed_hex` fields), such as an empty string, or a string resembling a XRP Ledger address. {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/can_delete.md b/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/can_delete.md index 08a27594aa..eb4ad95f57 100644 --- a/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/can_delete.md +++ b/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/can_delete.md @@ -1,10 +1,12 @@ --- seo: - description: Allow online deletion of ledgers up to a specific ledger. + description: Allow online deletion of ledgers up to a specific ledger. labels: - - Data Retention + - Data Retention --- + # can_delete + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/CanDelete.cpp "Source") The `can_delete` method informs the `rippled` server of the latest ledger version which may be deleted when using [online deletion with advisory deletion enabled](../../../../infrastructure/configuration/data-retention/online-deletion.md#advisory-deletion). If advisory deletion is not enabled, this method does nothing. @@ -18,6 +20,7 @@ An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 2, @@ -25,42 +28,47 @@ An example of the request format: "can_delete": 11320417 } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "can_delete", - "params": [ - { - "can_delete": 11320417 - } - ] + "method": "can_delete", + "params": [ + { + "can_delete": 11320417 + } + ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh #Syntax: can_delete [||now|always|never] rippled can_delete 11320417 ``` + {% /tab %} {% /tabs %} The request accepts the following parameter: -| `Field` | Type | Description | -|:-------------|:------------------|:------------------------------------------| +| `Field` | Type | Description | +| :----------- | :---------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `can_delete` | String or Integer | _(Optional)_ The [Ledger Index][] of the maximum ledger version to allow to be deleted. The special case `never` disables online deletion. The special case `always` enables automatic online deletion as if advisory deletion was disabled. The special case `now` allows online deletion one time at the next validated ledger that meets or exceeds the configured `online_delete` value. If omitted, the server makes no changes (but still replies with the current `can_delete` value). | ### Response Format The response follows the [standard format][], with a successful result containing the following fields: -| `Field` | Type | Description | -|:-------------|:--------|:----------------------------------------------------| +| `Field` | Type | Description | +| :----------- | :------ | :--------------------------------------------------------------------------- | | `can_delete` | Integer | The maximum ledger index that may be removed by the online deletion routine. | Use this command with no parameter to query the existing `can_delete` setting. diff --git a/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/index.md b/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/index.md index 895f2440fa..c8f88e70e3 100644 --- a/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/index.md +++ b/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/index.md @@ -4,9 +4,9 @@ parent: admin-api-methods.html metadata: indexPage: true --- + # Logging and Data Management Methods Use these methods to manage log levels and other data, such as ledgers. - {% child-pages /%} diff --git a/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ledger_cleaner.md b/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ledger_cleaner.md index 00bb10cfb9..51039f4b96 100644 --- a/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ledger_cleaner.md +++ b/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ledger_cleaner.md @@ -1,10 +1,12 @@ --- seo: - description: Configure the ledger cleaner service to check for corrupted data. + description: Configure the ledger cleaner service to check for corrupted data. labels: - - Data Retention + - Data Retention --- + # ledger_cleaner + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/LedgerCleanerHandler.cpp "Source") The `ledger_cleaner` command controls the [Ledger Cleaner](https://github.com/XRPLF/rippled/tree/master/src/xrpld/app/ledger#the-ledger-cleaner), an asynchronous maintenance process that can find and repair corruption in `rippled`'s database of ledgers. @@ -12,34 +14,37 @@ The `ledger_cleaner` command controls the [Ledger Cleaner](https://github.com/XR _The `ledger_cleaner` method is an [admin method](../index.md) that cannot be run by unprivileged users._ ### Request Format + An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { - "command": "ledger_cleaner", - "max_ledger": 13818756, - "min_ledger": 13818000, - "stop": false + "command": "ledger_cleaner", + "max_ledger": 13818756, + "min_ledger": 13818000, + "stop": false } ``` + {% /tab %} {% /tabs %} The request includes the following parameters: -| `Field` | Type | Description | -|:--------------|:--------------------------|:---------------------------------| -| `ledger` | Number - [Ledger Index][] | _(Optional)_ If provided, check and correct the specified ledger only. | -| `max_ledger` | Number - [Ledger Index][] | _(Optional)_ Configure the ledger cleaner to check ledgers with ledger indexes equal or lower than this. | -| `min_ledger` | Number - [Ledger Index][] | _(Optional)_ Configure the ledger cleaner to check ledgers with ledger indexes equal or higher than this. | +| `Field` | Type | Description | +| :------------ | :------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `ledger` | Number - [Ledger Index][] | _(Optional)_ If provided, check and correct the specified ledger only. | +| `max_ledger` | Number - [Ledger Index][] | _(Optional)_ Configure the ledger cleaner to check ledgers with ledger indexes equal or lower than this. | +| `min_ledger` | Number - [Ledger Index][] | _(Optional)_ Configure the ledger cleaner to check ledgers with ledger indexes equal or higher than this. | | `full` | Boolean | _(Optional)_ If true, fix ledger state objects and transactions in the specified ledger(s). Defaults to false. Automatically set to `true` if `ledger` is provided. | -| `fix_txns` | Boolean | _(Optional)_ If true, correct transaction in the specified ledger(s). Overrides `full` if provided. | -| `check_nodes` | Boolean | _(Optional)_ If true, correct ledger state objects in the specified ledger(s). Overrides `full` if provided. | -| `stop` | Boolean | _(Optional)_ If true, disable the ledger cleaner. | +| `fix_txns` | Boolean | _(Optional)_ If true, correct transaction in the specified ledger(s). Overrides `full` if provided. | +| `check_nodes` | Boolean | _(Optional)_ If true, correct ledger state objects in the specified ledger(s). Overrides `full` if provided. | +| `stop` | Boolean | _(Optional)_ If true, disable the ledger cleaner. | ### Response Format @@ -48,6 +53,7 @@ An example of a successful response: {% tabs %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -59,6 +65,7 @@ An example of a successful response: } ``` + {% /tab %} {% /tabs %} @@ -66,12 +73,12 @@ An example of a successful response: The response follows the [standard format][], with a successful result containing the following fields: | `Field` | Type | Description | -|:----------|:-------|:---------------------------------| +| :-------- | :----- | :------------------------------- | | `message` | String | `Cleaner configured` on success. | ### Possible Errors -* Any of the [universal error types][]. -* `internal` if one the parameters is specified incorrectly. (This is a bug; the intended error code is `invalidParams`.) +- Any of the [universal error types][]. +- `internal` if one the parameters is specified incorrectly. (This is a bug; the intended error code is `invalidParams`.) {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ledger_request.md b/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ledger_request.md index 5af86066f0..f5458d8dd3 100644 --- a/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ledger_request.md +++ b/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ledger_request.md @@ -1,44 +1,51 @@ --- seo: - description: Query peer servers for a specific ledger version. + description: Query peer servers for a specific ledger version. labels: - - Data Retention + - Data Retention --- + # ledger_request + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/LedgerRequest.cpp "Source") The `ledger_request` command tells server to fetch a specific ledger version from its connected peers. This only works if one of the server's immediately-connected peers has that ledger. You may need to run the command several times to completely fetch a ledger. -*The `ledger_request` method is an [admin method](../index.md) that cannot be run by unprivileged users!* +_The `ledger_request` method is an [admin method](../index.md) that cannot be run by unprivileged users!_ ### Request Format + An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": 102, - "command": "ledger_request", - "ledger_index": 13800000 + "id": 102, + "command": "ledger_request", + "ledger_index": 13800000 } ``` + {% /tab %} {% tab label="Commandline" %} + ``` rippled ledger_request 13800000 ``` + {% /tab %} {% /tabs %} The request includes the following parameters: -| `Field` | Type | Description | -|:---------------|:-------|:---------------------------------------------------| -| `ledger_index` | Number | _(Optional)_ Retrieve the specified ledger by its [Ledger Index][]. | +| `Field` | Type | Description | +| :------------- | :----- | :---------------------------------------------------------------------- | +| `ledger_index` | Number | _(Optional)_ Retrieve the specified ledger by its [Ledger Index][]. | | `ledger_hash` | String | _(Optional)_ Retrieve the specified ledger by its identifying [Hash][]. | You must provide either `ledger_index` or `ledger_hash` but not both. @@ -54,6 +61,7 @@ A failure response indicates the status of fetching the ledger. A successful res {% tabs %} {% tab label="Commandline (failure)" %} + ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -77,9 +85,11 @@ Connecting to 127.0.0.1:5005 } } ``` + {% /tab %} {% tab label="Commandline (in-progress)" %} + ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -124,9 +134,11 @@ Connecting to 127.0.0.1:5005 } } ``` + {% /tab %} {% tab label="Commandline (success)" %} + ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -155,6 +167,7 @@ Connecting to 127.0.0.1:5005 } ``` + {% /tab %} {% /tabs %} @@ -169,16 +182,16 @@ The three possible response formats are as follows: When the server is in the progress of fetching a ledger, but has not yet finished, the `rippled` server returns a ledger request object indicating its progress towards fetching the ledger. This object has the following fields: -| `Field` | Type | Description | -|:----------------------------|:-----------------|:----------------------------| -| `hash` | String | (May be omitted) The [Hash][] of the requested ledger, if the server knows it. | -| `have_header` | Boolean | Whether the server has the header section of the requested ledger. | -| `have_state` | Boolean | (May be omitted) Whether the server has the full state data of the requested ledger. | -| `have_transactions` | Boolean | (May be omitted) Whether the server has the full transaction set of the requested ledger. | -| `needed_state_hashes` | Array of Strings | (May be omitted) Up to 16 hashes of objects in the state data that the server still needs to retrieve. | +| `Field` | Type | Description | +| :-------------------------- | :--------------- | :---------------------------------------------------------------------------------------------------------- | +| `hash` | String | (May be omitted) The [Hash][] of the requested ledger, if the server knows it. | +| `have_header` | Boolean | Whether the server has the header section of the requested ledger. | +| `have_state` | Boolean | (May be omitted) Whether the server has the full state data of the requested ledger. | +| `have_transactions` | Boolean | (May be omitted) Whether the server has the full transaction set of the requested ledger. | +| `needed_state_hashes` | Array of Strings | (May be omitted) Up to 16 hashes of objects in the state data that the server still needs to retrieve. | | `needed_transaction_hashes` | Array of Strings | (May be omitted) Up to 16 hashes of objects in the transaction set that the server still needs to retrieve. | -| `peers` | Number | How many peers the server is querying to find this ledger. | -| `timeouts` | Number | Number of times fetching this ledger has timed out so far. | +| `peers` | Number | How many peers the server is querying to find this ledger. | +| `timeouts` | Number | Number of times fetching this ledger has timed out so far. | ### Possible Errors diff --git a/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/log_level.md b/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/log_level.md index e26eea7058..6acf2fe1c5 100644 --- a/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/log_level.md +++ b/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/log_level.md @@ -1,10 +1,12 @@ --- seo: - description: Get or modify log verbosity. + description: Get or modify log verbosity. labels: - - Data Retention + - Data Retention --- + # log_level + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/LogLevel.cpp "Source") The `log_level` command changes the `rippled` server's logging verbosity, or returns the current logging level for each category (called a _partition_) of log messages. @@ -12,36 +14,41 @@ The `log_level` command changes the `rippled` server's logging verbosity, or ret _The `log_level` method is an [admin method](../index.md) that cannot be run by unprivileged users._ ### Request Format + An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": "ll1", - "command": "log_level", - "severity": "debug", - "partition": "PathRequest" + "id": "ll1", + "command": "log_level", + "severity": "debug", + "partition": "PathRequest" } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh #Syntax: log_level [[partition] severity] rippled log_level PathRequest debug ``` + {% /tab %} {% /tabs %} The request includes the following parameters: -| `Field` | Type | Description | -|:------------|:-------|:------------------------------------------------------| +| `Field` | Type | Description | +| :---------- | :----- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `severity` | String | _(Optional)_ What level of verbosity to set logging at. Valid values are, in order from least to most verbose: `fatal`, `error`, `warn`, `info`, `debug`, and `trace`. If omitted, return current log verbosity for all categories. | -| `partition` | String | _(Optional)_ Ignored unless `severity` is provided. Which logging category to modify. If omitted, or if provided with the value `base`, set logging level for all categories. | +| `partition` | String | _(Optional)_ Ignored unless `severity` is provided. Which logging category to modify. If omitted, or if provided with the value `base`, set logging level for all categories. | ### Response Format @@ -50,6 +57,7 @@ Examples of successful responses: {% tabs %} {% tab label="Commandline (set log level)" %} + ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -60,9 +68,11 @@ Connecting to 127.0.0.1:5005 } } ``` + {% /tab %} {% tab label="Commandline (check log levels)" %} + ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -125,6 +135,7 @@ Connecting to 127.0.0.1:5005 } } ``` + {% /tab %} {% /tabs %} @@ -133,13 +144,13 @@ The response follows the [standard format][]. The response format depends on whe Otherwise, the response contains the following field: -| `Field` | Type | Description | -|:--------|:-------|:----------------------------------------------------------| +| `Field` | Type | Description | +| :------ | :----- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `level` | Object | The current log levels of each category. This list of categories is subject to change without notice in future releases. You can use the field names as values to `partition` in requests to this command. | ### Possible Errors -* Any of the [universal error types][]. -* `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. +- Any of the [universal error types][]. +- `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/logrotate.md b/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/logrotate.md index cb72ac2dd8..cc9c1e8e7e 100644 --- a/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/logrotate.md +++ b/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/logrotate.md @@ -1,10 +1,12 @@ --- seo: - description: Reopen the log file. + description: Reopen the log file. labels: - - Data Retention + - Data Retention --- + # logrotate + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/LogRotate.cpp "Source") The `logrotate` command closes and reopens the log file. This is intended to help with log rotation on Linux file systems. @@ -40,24 +42,29 @@ The official packages [for CentOS/Red Hat](../../../../infrastructure/installati _The `logrotate` method is an [admin method](../index.md) that cannot be run by unprivileged users._ ### Request Format + An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": "lr1", - "command": "logrotate" + "id": "lr1", + "command": "logrotate" } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh #Syntax: logrotate rippled logrotate ``` + {% /tab %} {% /tabs %} @@ -71,6 +78,7 @@ An example of a successful response: {% tabs %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -82,9 +90,11 @@ An example of a successful response: } ``` + {% /tab %} {% tab label="Commandline" %} + ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -97,18 +107,19 @@ Connecting to 127.0.0.1:5005 } ``` + {% /tab %} {% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: -| `Field` | Type | Description | -|:----------|:-------|:--------------------------------------------------------| +| `Field` | Type | Description | +| :-------- | :----- | :----------------------------------------------------------------------- | | `message` | String | On success, contains the message `The log file was closed and reopened.` | ### Possible Errors -* Any of the [universal error types][]. +- Any of the [universal error types][]. {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/connect.md b/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/connect.md index 9bd3dbd3a4..c352480176 100644 --- a/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/connect.md +++ b/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/connect.md @@ -1,59 +1,68 @@ --- seo: - description: Force the rippled server to connect to a specific peer. + description: Force the rippled server to connect to a specific peer. labels: - - Core Server + - Core Server --- + # connect + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/Connect.cpp "Source") The `connect` command forces the `rippled` server to connect to a specific peer server. -*The `connect` method is an [admin method](../index.md) that cannot be run by unprivileged users!* +_The `connect` method is an [admin method](../index.md) that cannot be run by unprivileged users!_ ### Request Format + An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { - "command": "connect", - "ip": "192.170.145.88", - "port": 51235 + "command": "connect", + "ip": "192.170.145.88", + "port": 51235 } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "connect", - "params": [ - { - "ip": "192.170.145.88", - "port": 51235 - } - ] + "method": "connect", + "params": [ + { + "ip": "192.170.145.88", + "port": 51235 + } + ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh #Syntax: connect ip [port] rippled connect 192.170.145.88 51235 ``` + {% /tab %} {% /tabs %} The request includes the following parameters: -| `Field` | Type | Description | -|:--------|:-------|:----------------------------------------------------------| -| `ip` | String | IP address of the server to connect to | +| `Field` | Type | Description | +| :------ | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `ip` | String | IP address of the server to connect to | | `port` | Number | _(Optional)_ Port number to use when connecting. The default is **2459**. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.6.0" %}Updated in: rippled 1.6.0{% /badge %} | ### Response Format @@ -63,17 +72,20 @@ An example of a successful response: {% tabs %} {% tab label="JSON-RPC" %} + ```json { - "result" : { - "message" : "connecting", - "status" : "success" - } + "result": { + "message": "connecting", + "status": "success" + } } ``` + {% /tab %} {% tab label="Commandline" %} + ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -85,6 +97,7 @@ Connecting to 127.0.0.1:5005 } } ``` + {% /tab %} {% /tabs %} @@ -92,7 +105,7 @@ Connecting to 127.0.0.1:5005 The response follows the [standard format][], with a successful result containing the following fields: | `Field` | Type | Description | -|:----------|:-------|:-------------------------------------------------------| +| :-------- | :----- | :----------------------------------------------------- | | `message` | String | The value `connecting`, if the command was successful. | ### Possible Errors diff --git a/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/index.md b/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/index.md index 530b550e2c..b887b94472 100644 --- a/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/index.md +++ b/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/index.md @@ -4,9 +4,9 @@ parent: admin-api-methods.html metadata: indexPage: true --- + # Peer Management Methods Use these methods to manage your server's peer-to-peer connections. - {% child-pages /%} diff --git a/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_add.md b/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_add.md index 3a1ff0e9ac..ab7b5bd24f 100644 --- a/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_add.md +++ b/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_add.md @@ -1,17 +1,18 @@ --- seo: - description: Add a reserved slot for a specific peer server. + description: Add a reserved slot for a specific peer server. labels: - - Core Server + - Core Server --- + # peer_reservations_add + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/Reservations.cpp "Source") The {% code-page-name /%} method adds or updates a reserved slot for a specific peer server in the XRP Ledger [peer-to-peer network](../../../../concepts/networks-and-servers/peer-protocol.md). _The {% code-page-name /%} method is an [admin method](../index.md) that cannot be run by unprivileged users._ - ### Request Format An example of the request format: @@ -19,46 +20,52 @@ An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": "peer_reservations_add_example_1", - "command": "{% $frontmatter.seo.title %}", - "public_key": "n9Jt8awsPzWLjBCNKVEEDQnw4bQEPjezfcQ4gttD1UzbLT1FoG99", - "description": "Ripple s1 server 'WOOL'" + "id": "peer_reservations_add_example_1", + "command": "{% $frontmatter.seo.title %}", + "public_key": "n9Jt8awsPzWLjBCNKVEEDQnw4bQEPjezfcQ4gttD1UzbLT1FoG99", + "description": "Ripple s1 server 'WOOL'" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "{% $frontmatter.seo.title %}", - "params": [{ + "method": "{% $frontmatter.seo.title %}", + "params": [ + { "public_key": "n9Jt8awsPzWLjBCNKVEEDQnw4bQEPjezfcQ4gttD1UzbLT1FoG99", "description": "Ripple s1 server 'WOOL'" - }] + } + ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh #Syntax: {% $frontmatter.seo.title %} [] rippled {% $frontmatter.seo.title %} n9Jt8awsPzWLjBCNKVEEDQnw4bQEPjezfcQ4gttD1UzbLT1FoG99 "Ripple s1 server 'WOOL'" ``` + {% /tab %} {% /tabs %} The request includes the following parameters: -| `Field` | Type | Description | -|:--------------|:-------|:----------------------------------------------------| -| `public_key` | String | The [node public key][] of the peer reservation to add a reservation for, in [base58][]. | +| `Field` | Type | Description | +| :------------ | :----- | :---------------------------------------------------------------------------------------------------------------------------------------- | +| `public_key` | String | The [node public key][] of the peer reservation to add a reservation for, in [base58][]. | | `description` | String | _(Optional)_ A custom description for the peer reservation. The server truncates descriptions longer than 64 characters when it restarts. | - - ### Response Format An example of a successful response: @@ -66,6 +73,7 @@ An example of a successful response: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": "peer_reservations_add_example_1", @@ -79,9 +87,11 @@ An example of a successful response: "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { "result": { @@ -93,9 +103,11 @@ An example of a successful response: } } ``` + {% /tab %} {% tab label="Commandline" %} + ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -110,14 +122,15 @@ Connecting to 127.0.0.1:5005 } } ``` + {% /tab %} {% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: -| `Field` | Type | Description | -|:-----------|:-------|:-------------------------------------------------------| +| `Field` | Type | Description | +| :--------- | :----- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `previous` | Object | _(May be omitted)_ The previous entry for the same [node public key][], if there was already a reservation with the same node public key. This object is formatted as a **Peer Reservation Object**, as described below. | If there was not a previous entry for the same [node public key][], the `result` object is empty. @@ -128,8 +141,6 @@ If the `previous` field is provided, it shows the previous status of this peer r {% partial file="/docs/_snippets/peer_reservation_object.md" /%} - - ### Possible Errors - Any of the [universal error types][]. diff --git a/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_del.md b/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_del.md index 96d1aff521..935010965b 100644 --- a/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_del.md +++ b/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_del.md @@ -1,10 +1,12 @@ --- seo: - description: Remove a reserved slot for a specific peer server. + description: Remove a reserved slot for a specific peer server. labels: - - Core Server + - Core Server --- + # peer_reservations_del + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/Reservations.cpp "Source") The {% code-page-name /%} method removes a specific [peer reservation][], if one exists. @@ -20,42 +22,49 @@ An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": "peer_reservations_del_example_1", - "command": "{% $frontmatter.seo.title %}", - "public_key": "n9Jt8awsPzWLjBCNKVEEDQnw4bQEPjezfcQ4gttD1UzbLT1FoG99" + "id": "peer_reservations_del_example_1", + "command": "{% $frontmatter.seo.title %}", + "public_key": "n9Jt8awsPzWLjBCNKVEEDQnw4bQEPjezfcQ4gttD1UzbLT1FoG99" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "{% $frontmatter.seo.title %}", - "params": [{ + "method": "{% $frontmatter.seo.title %}", + "params": [ + { "public_key": "n9Jt8awsPzWLjBCNKVEEDQnw4bQEPjezfcQ4gttD1UzbLT1FoG99" - }] + } + ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh #Syntax: {% $frontmatter.seo.title %} rippled {% $frontmatter.seo.title %} n9Jt8awsPzWLjBCNKVEEDQnw4bQEPjezfcQ4gttD1UzbLT1FoG99 ``` + {% /tab %} {% /tabs %} The request includes the following parameter: -| `Field` | Type | Description | -|:------------|:--------------------------|:-----------------------------------| +| `Field` | Type | Description | +| :----------- | :----- | :----------------------------------------------------------------------------------- | | `public_key` | String | The [node public key][] of the [peer reservation][] to remove, in [base58][] format. | - ### Response Format An example of a successful response: @@ -63,6 +72,7 @@ An example of a successful response: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": "peer_reservations_del_example_1", @@ -76,23 +86,27 @@ An example of a successful response: "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "result" : { - "previous" : { - "description" : "Ripple s1 server 'WOOL'", - "node" : "n9Jt8awsPzWLjBCNKVEEDQnw4bQEPjezfcQ4gttD1UzbLT1FoG99" + "result": { + "previous": { + "description": "Ripple s1 server 'WOOL'", + "node": "n9Jt8awsPzWLjBCNKVEEDQnw4bQEPjezfcQ4gttD1UzbLT1FoG99" }, - "status" : "success" + "status": "success" } } ``` + {% /tab %} {% tab label="Commandline" %} + ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -107,14 +121,15 @@ Connecting to 127.0.0.1:5005 } } ``` + {% /tab %} {% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: -| `Field` | Type | Description | -|:--------|:-------|:----------------------------------------------------------| +| `Field` | Type | Description | +| :--------- | :----- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `previous` | Object | _(May be omitted)_ A **peer reservation object** with the last state of the peer reservation before deleting it. This field is always provided if a peer reservation was successfully deleted. | {% admonition type="info" name="Note" %}If the specified reservation did not exist, this command returns success with an empty result object. In this case, the `previous` field is omitted.{% /admonition %} @@ -125,7 +140,6 @@ If the `previous` field is provided, it shows the previous status of this peer r {% partial file="/docs/_snippets/peer_reservation_object.md" /%} - ### Possible Errors - Any of the [universal error types][]. diff --git a/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_list.md b/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_list.md index b425d86a94..cc61ad2e9b 100644 --- a/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_list.md +++ b/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_list.md @@ -1,17 +1,18 @@ --- seo: - description: List reserved slots for specific peer servers. + description: List reserved slots for specific peer servers. labels: - - Core Server + - Core Server --- + # peer_reservations_list + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/Reservations.cpp "Source") The {% code-page-name /%} method lists [peer reservations][]. _The {% code-page-name /%} method is an [admin method](../index.md) that cannot be run by unprivileged users._ - ### Request Format An example of the request format: @@ -19,34 +20,39 @@ An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": "peer_reservations_list_example_1", "command": "{% $frontmatter.seo.title %}" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { "method": "{% $frontmatter.seo.title %}" } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh #Syntax: {% $frontmatter.seo.title %} rippled {% $frontmatter.seo.title %} ``` + {% /tab %} {% /tabs %} This request does not take any parameters. - ### Response Format An example of a successful response: @@ -54,6 +60,7 @@ An example of a successful response: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": "peer_reservations_list_example_1", @@ -72,28 +79,32 @@ An example of a successful response: "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "result" : { - "reservations" : [ - { - "description" : "Ripple s1 server 'WOOL'", - "node" : "n9Jt8awsPzWLjBCNKVEEDQnw4bQEPjezfcQ4gttD1UzbLT1FoG99" - }, - { - "node" : "n9MZRo92mzYjjsa5XcqnPC7GFYAnENo9VfJzKmpcS9EFZvw5fgwz" - } + "result": { + "reservations": [ + { + "description": "Ripple s1 server 'WOOL'", + "node": "n9Jt8awsPzWLjBCNKVEEDQnw4bQEPjezfcQ4gttD1UzbLT1FoG99" + }, + { + "node": "n9MZRo92mzYjjsa5XcqnPC7GFYAnENo9VfJzKmpcS9EFZvw5fgwz" + } ], - "status" : "success" + "status": "success" } } ``` + {% /tab %} {% tab label="Commandline" %} + ```json Loading: "/etc/rippled.cfg" 2019-Dec-27 21:56:07.253260422 HTTPClient:NFO Connecting to 127.0.0.1:5005 @@ -113,14 +124,15 @@ Loading: "/etc/rippled.cfg" } } ``` + {% /tab %} {% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: -| `Field` | Type | Description | -|:---------------|:------|:----------------------------------------------------| +| `Field` | Type | Description | +| :------------- | :---- | :---------------------------------------------------------------------------------------------------- | | `reservations` | Array | List of existing [peer reservations][]. Each member is a peer reservation object, as described below. | #### Peer Reservation Object @@ -129,7 +141,6 @@ Each member of the `reservations` array is a JSON object describing one [peer re {% partial file="/docs/_snippets/peer_reservation_object.md" /%} - ### Possible Errors - Any of the [universal error types][]. diff --git a/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peers.md b/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peers.md index a730eb57c6..b6283f921f 100644 --- a/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peers.md +++ b/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peers.md @@ -1,34 +1,41 @@ --- seo: - description: Get information about the peer servers connected. + description: Get information about the peer servers connected. labels: - - Core Server + - Core Server --- + # peers + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/Peers.cpp "Source") The `peers` command returns a list of all other `rippled` servers currently connected to this one over the [Peer Protocol](../../../../concepts/networks-and-servers/peer-protocol.md), including information on their connection and sync status. -*The `peers` method is an [admin method](../index.md) that cannot be run by unprivileged users!* +_The `peers` method is an [admin method](../index.md) that cannot be run by unprivileged users!_ ### Request Format + An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": 2, - "command": "peers" + "id": 2, + "command": "peers" } ``` + {% /tab %} {% tab label="Commandline" %} + ``` rippled peers ``` + {% /tab %} {% /tabs %} @@ -42,6 +49,7 @@ An example of a successful response: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": "peers_example", @@ -176,101 +184,104 @@ An example of a successful response: "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "result" : { - "cluster" : {}, - "peers" : [ - { - "address" : "50.22.123.222:51235", - "complete_ledgers" : "32570 - 51815097", - "ledger" : "223DB74FE021AB1A4AA9E1CC588E0DBCC3FC7C080B93C01C30C246D89F951EA2", - "load" : 7, - "metrics" : { - "avg_bps_recv" : "1152", - "avg_bps_sent" : "332", - "total_bytes_recv" : "96601", - "total_bytes_sent" : "45322" - }, - "public_key" : "n9LbkoB9ReSbaA9SGL317fm6CvjLcFG8hGoierLYfwiCDsEXHcP3", - "uptime" : 1, - "version" : "rippled-1.3.1" + "result": { + "cluster": {}, + "peers": [ + { + "address": "50.22.123.222:51235", + "complete_ledgers": "32570 - 51815097", + "ledger": "223DB74FE021AB1A4AA9E1CC588E0DBCC3FC7C080B93C01C30C246D89F951EA2", + "load": 7, + "metrics": { + "avg_bps_recv": "1152", + "avg_bps_sent": "332", + "total_bytes_recv": "96601", + "total_bytes_sent": "45322" }, - { - "address" : "212.83.147.67:51235", - "complete_ledgers" : "51815014 - 51815040", - "ledger" : "223DB74FE021AB1A4AA9E1CC588E0DBCC3FC7C080B93C01C30C246D89F951EA2", - "load" : 1, - "metrics" : { - "avg_bps_recv" : "0", - "avg_bps_sent" : "1490", - "total_bytes_recv" : "18348", - "total_bytes_sent" : "46013" - }, - "public_key" : "n94s5V53w1g4HdEdHdUU1FVrqHTVDbcb7bt44ib9JcM3c281LoDr", - "sanity" : "unknown", - "uptime" : 2, - "version" : "rippled-1.3.1" + "public_key": "n9LbkoB9ReSbaA9SGL317fm6CvjLcFG8hGoierLYfwiCDsEXHcP3", + "uptime": 1, + "version": "rippled-1.3.1" + }, + { + "address": "212.83.147.67:51235", + "complete_ledgers": "51815014 - 51815040", + "ledger": "223DB74FE021AB1A4AA9E1CC588E0DBCC3FC7C080B93C01C30C246D89F951EA2", + "load": 1, + "metrics": { + "avg_bps_recv": "0", + "avg_bps_sent": "1490", + "total_bytes_recv": "18348", + "total_bytes_sent": "46013" }, - { - "address" : "158.69.24.50:51235", - "complete_ledgers" : "51478098 - 51815098", - "ledger" : "223DB74FE021AB1A4AA9E1CC588E0DBCC3FC7C080B93C01C30C246D89F951EA2", - "load" : 55, - "metrics" : { - "avg_bps_recv" : "88080", - "avg_bps_sent" : "2703", - "total_bytes_recv" : "2786780", - "total_bytes_sent" : "89368" - }, - "public_key" : "n9KfEhmmdxmjJdpbpRHGJ9ezoNzdyUepA11cT71jmq1fMDsZAcSh", - "uptime" : 3, - "version" : "rippled-1.3.1" + "public_key": "n94s5V53w1g4HdEdHdUU1FVrqHTVDbcb7bt44ib9JcM3c281LoDr", + "sanity": "unknown", + "uptime": 2, + "version": "rippled-1.3.1" + }, + { + "address": "158.69.24.50:51235", + "complete_ledgers": "51478098 - 51815098", + "ledger": "223DB74FE021AB1A4AA9E1CC588E0DBCC3FC7C080B93C01C30C246D89F951EA2", + "load": 55, + "metrics": { + "avg_bps_recv": "88080", + "avg_bps_sent": "2703", + "total_bytes_recv": "2786780", + "total_bytes_sent": "89368" }, - { - "address" : "[::ffff:174.64.99.193]:51235", - "complete_ledgers" : "51813091 - 51815091", - "latency" : 16000, - "ledger" : "CF72319DC762355C92BDD29E4CE066CEB03FF2A077A511D586B9FD7B74F55D94", - "load" : 325, - "metrics" : { - "avg_bps_recv" : "19012", - "avg_bps_sent" : "52053", - "total_bytes_recv" : "586809", - "total_bytes_sent" : "1678192" - }, - "public_key" : "n9MH4Xu8FYPPoUFs679NQp7F6epFznM7x6bF4sAJWQvKkPBUHgd3", - "uptime" : 26, - "version" : "rippled-1.4.0-b8" + "public_key": "n9KfEhmmdxmjJdpbpRHGJ9ezoNzdyUepA11cT71jmq1fMDsZAcSh", + "uptime": 3, + "version": "rippled-1.3.1" + }, + { + "address": "[::ffff:174.64.99.193]:51235", + "complete_ledgers": "51813091 - 51815091", + "latency": 16000, + "ledger": "CF72319DC762355C92BDD29E4CE066CEB03FF2A077A511D586B9FD7B74F55D94", + "load": 325, + "metrics": { + "avg_bps_recv": "19012", + "avg_bps_sent": "52053", + "total_bytes_recv": "586809", + "total_bytes_sent": "1678192" }, - { - "address" : "[::ffff:94.237.45.66]:51235", - "complete_ledgers" : "51814966 - 51815093", - "latency" : 8773, - "ledger" : "61CF015A709122917B001367EE81E5E0D56E485A0BCAB53785A1CB830E0F9589", - "load" : 3522, - "metrics" : { - "avg_bps_recv" : "368875", - "avg_bps_sent" : "59308", - "total_bytes_recv" : "11558753", - "total_bytes_sent" : "2257872" - }, - "public_key" : "n9Lg83FYh8YDivG9TcgXhq5Y3PwunmRqVfvibd19Ko9uu3DtqLBM", - "uptime" : 37, - "version" : "rippled-1.3.1" - } + "public_key": "n9MH4Xu8FYPPoUFs679NQp7F6epFznM7x6bF4sAJWQvKkPBUHgd3", + "uptime": 26, + "version": "rippled-1.4.0-b8" + }, + { + "address": "[::ffff:94.237.45.66]:51235", + "complete_ledgers": "51814966 - 51815093", + "latency": 8773, + "ledger": "61CF015A709122917B001367EE81E5E0D56E485A0BCAB53785A1CB830E0F9589", + "load": 3522, + "metrics": { + "avg_bps_recv": "368875", + "avg_bps_sent": "59308", + "total_bytes_recv": "11558753", + "total_bytes_sent": "2257872" + }, + "public_key": "n9Lg83FYh8YDivG9TcgXhq5Y3PwunmRqVfvibd19Ko9uu3DtqLBM", + "uptime": 37, + "version": "rippled-1.3.1" + } ], - "status" : "success" + "status": "success" } } - ``` + {% /tab %} {% tab label="Commandline" %} + ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -362,53 +373,54 @@ Connecting to 127.0.0.1:5005 } } ``` + {% /tab %} {% /tabs %} The response follows the [standard format][], with a successful result containing a JSON object with the following fields: -| `Field` | Type | Description | -|:----------|:-------|:--------------------------------------------------------| +| `Field` | Type | Description | +| :-------- | :----- | :--------------------------------------------------------------------------------------------------------------------------------------------- | | `cluster` | Object | Summary of other `rippled` servers in the same cluster, if [configured as a cluster](../../../../concepts/networks-and-servers/clustering.md). | -| `peers` | Array | Array of peer objects. | +| `peers` | Array | Array of peer objects. | Each field of the `cluster` object is the public key of that `rippled` server's identifying key pair. (This is the same value that that server returns as `pubkey_node` in the [server_info method][].) The contents of that field are an object with the following fields: -| `Field` | Type | Description | -|:--------|:-------|:----------------------------------------------------------| -| `tag` | String | The display name for this cluster member as defined in the config file. | +| `Field` | Type | Description | +| :------ | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `tag` | String | The display name for this cluster member as defined in the config file. | | `fee` | Number | _(May be omitted)_ The load multiplier this cluster member is applying to the [transaction cost](../../../../concepts/transactions/transaction-cost.md) | -| `age` | Number | The number of seconds since the last cluster report from this cluster member. | +| `age` | Number | The number of seconds since the last cluster report from this cluster member. | Each member of the `peers` array is a peer object with the following fields: -| `Field` | Type | Description | -|:-------------------|:--------|:----------------------------------------------| -| `address` | String | The IP address and port where this peer is connected | -| `cluster` | Boolean | _(May be omitted)_ If `true`, the current server and the peer server are part of the same `rippled` cluster. | -| `name` | String | _(May be omitted)_ If the peer is part of the same cluster, this is the display name for that server as defined in the config file. | -| `complete_ledgers` | String | Range expression indicating the [ledger indexes][ledger index] of the ledger versions the peer `rippled` server has available | -| `inbound` | Boolean | _(May be omitted)_ If `true`, the peer is connecting to the local server. | -| `latency` | Number | The network latency to the peer (in milliseconds) | -| `ledger` | String | The identifying [hash][Hash] of the peer's most recently closed ledger | -| `load` | Number | A measure of the amount of load the peer server is putting on the local server. Larger numbers indicate more load. (The units by which load is measured are not formally defined.) | -| `protocol` | String | _(May be omitted)_ The protocol version that the peer is using, if not the same as the local server. | -| `metrics` | Object | Details on the amount of data sent to and received from this peer. See the description of the `metrics` object below for details. | -| `public_key` | String | _(May be omitted)_ A public key that can be used to verify the integrity of the peer's messages. This is not the same key that is used for validations, but it follows the same format. | +| `Field` | Type | Description | +| :----------------- | :------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `address` | String | The IP address and port where this peer is connected | +| `cluster` | Boolean | _(May be omitted)_ If `true`, the current server and the peer server are part of the same `rippled` cluster. | +| `name` | String | _(May be omitted)_ If the peer is part of the same cluster, this is the display name for that server as defined in the config file. | +| `complete_ledgers` | String | Range expression indicating the [ledger indexes][ledger index] of the ledger versions the peer `rippled` server has available | +| `inbound` | Boolean | _(May be omitted)_ If `true`, the peer is connecting to the local server. | +| `latency` | Number | The network latency to the peer (in milliseconds) | +| `ledger` | String | The identifying [hash][Hash] of the peer's most recently closed ledger | +| `load` | Number | A measure of the amount of load the peer server is putting on the local server. Larger numbers indicate more load. (The units by which load is measured are not formally defined.) | +| `protocol` | String | _(May be omitted)_ The protocol version that the peer is using, if not the same as the local server. | +| `metrics` | Object | Details on the amount of data sent to and received from this peer. See the description of the `metrics` object below for details. | +| `public_key` | String | _(May be omitted)_ A public key that can be used to verify the integrity of the peer's messages. This is not the same key that is used for validations, but it follows the same format. | | `sanity` | String | _(May be omitted)_ Whether this peer is following the same rules and ledger history as the current server. A value of `insane` probably indicates that the peer is part of a [parallel network](../../../../concepts/networks-and-servers/parallel-networks.md). The value `unknown` indicates that the current server is unsure whether the peer is compatible. | -| `status` | String | _(May be omitted)_ The most recent status message from the peer. Could be `connecting`, `connected`, `monitoring`, `validating`, or `shutting`. | -| `uptime` | Number | The number of seconds that your `rippled` server has been continuously connected to this peer. | -| `version` | string | _(May be omitted)_ The `rippled` version number of the peer server | +| `status` | String | _(May be omitted)_ The most recent status message from the peer. Could be `connecting`, `connected`, `monitoring`, `validating`, or `shutting`. | +| `uptime` | Number | The number of seconds that your `rippled` server has been continuously connected to this peer. | +| `version` | string | _(May be omitted)_ The `rippled` version number of the peer server | The `metrics` object contains the following fields: -| `Field` | Type | Description | -|:-------------------|:--------|:----------------------------------------------| -| `avg_bps_recv` | String | The average bytes per second of data received from this peer. | -| `avg_bps_sent` | String | The average bytes per second of data sent to this peer. | -| `total_bytes_recv` | String | The total number of bytes of data received from this peer. | -| `total_bytes_sent` | String | The total number of bytes of data sent to this peer. | +| `Field` | Type | Description | +| :----------------- | :----- | :------------------------------------------------------------ | +| `avg_bps_recv` | String | The average bytes per second of data received from this peer. | +| `avg_bps_sent` | String | The average bytes per second of data sent to this peer. | +| `total_bytes_recv` | String | The total number of bytes of data received from this peer. | +| `total_bytes_sent` | String | The total number of bytes of data sent to this peer. | {% admonition type="info" name="Note" %}All of the fields in the `metrics` object are 64-bit unsigned integers serialized to string format so that they do not lose precision in JSON encoding/decoding.{% /admonition %} diff --git a/docs/references/http-websocket-apis/admin-api-methods/server-control-methods/index.md b/docs/references/http-websocket-apis/admin-api-methods/server-control-methods/index.md index bf6c4ddc4f..5907e4f5b7 100644 --- a/docs/references/http-websocket-apis/admin-api-methods/server-control-methods/index.md +++ b/docs/references/http-websocket-apis/admin-api-methods/server-control-methods/index.md @@ -4,9 +4,9 @@ parent: admin-api-methods.html metadata: indexPage: true --- + # Server Control Methods Use these methods to manage the rippled server. - {% child-pages /%} diff --git a/docs/references/http-websocket-apis/admin-api-methods/server-control-methods/ledger_accept.md b/docs/references/http-websocket-apis/admin-api-methods/server-control-methods/ledger_accept.md index 043d134cbc..de5e81e286 100644 --- a/docs/references/http-websocket-apis/admin-api-methods/server-control-methods/ledger_accept.md +++ b/docs/references/http-websocket-apis/admin-api-methods/server-control-methods/ledger_accept.md @@ -1,15 +1,17 @@ --- seo: - description: Close and advance the ledger in stand-alone mode. + description: Close and advance the ledger in stand-alone mode. labels: - - Core Server + - Core Server --- + # ledger_accept + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/LedgerAccept.cpp "Source") The `ledger_accept` method forces the server to close the current-working ledger and move to the next ledger number. This method is intended for testing purposes only, and is only available when the `rippled` server is running stand-alone mode. -*The `ledger_accept` method is an [admin method](../index.md) that cannot be run by unprivileged users!* +_The `ledger_accept` method is an [admin method](../index.md) that cannot be run by unprivileged users!_ ### Request Format @@ -18,19 +20,23 @@ An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": "Accept my ledger!", "command": "ledger_accept" } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh #Syntax: ledger_accept rippled ledger_accept ``` + {% /tab %} {% /tabs %} @@ -40,6 +46,7 @@ The request accepts no parameters. ### Response Format An example of a successful response: + ```js { "id": "Accept my ledger!", @@ -53,15 +60,15 @@ An example of a successful response: The response follows the [standard format][], with a successful result containing the following field: -| `Field` | Type | Description | -|:-----------------------|:-----------------|:---------------------------------| +| `Field` | Type | Description | +| :--------------------- | :---------------------------------- | :------------------------------------------------- | | `ledger_current_index` | Unsigned Integer - [Ledger Index][] | Ledger index of the newly created 'current' ledger | {% admonition type="info" name="Note" %}When you close a ledger, `rippled` determines the canonical order of transactions in that ledger and replays them. This can change the outcome of transactions that were provisionally applied to the current ledger.{% /admonition %} ### Possible Errors -* Any of the [universal error types][]. -* `notStandAlone` - If the `rippled` server is not currently running in stand-alone mode. +- Any of the [universal error types][]. +- `notStandAlone` - If the `rippled` server is not currently running in stand-alone mode. {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/http-websocket-apis/admin-api-methods/server-control-methods/stop.md b/docs/references/http-websocket-apis/admin-api-methods/server-control-methods/stop.md index 70e0218bf7..bc485642c1 100644 --- a/docs/references/http-websocket-apis/admin-api-methods/server-control-methods/stop.md +++ b/docs/references/http-websocket-apis/admin-api-methods/server-control-methods/stop.md @@ -1,46 +1,53 @@ --- seo: - description: Shut down the rippled server. + description: Shut down the rippled server. labels: - - Core Server + - Core Server --- + # stop + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/Stop.cpp "Source") Gracefully shuts down the server. -*The `stop` method is an [admin method](../index.md) that cannot be run by unprivileged users!* +_The `stop` method is an [admin method](../index.md) that cannot be run by unprivileged users!_ ### Request Format + An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": 0, - "command": "stop" + "id": 0, + "command": "stop" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "stop", - "params": [ - {} - ] + "method": "stop", + "params": [{}] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh #Syntax: stop rippled stop ``` + {% /tab %} {% /tabs %} @@ -54,17 +61,20 @@ An example of a successful response: {% tabs %} {% tab label="JSON-RPC" %} + ```json { - "result" : { - "message" : "ripple server stopping", - "status" : "success" - } + "result": { + "message": "ripple server stopping", + "status": "success" + } } ``` + {% /tab %} {% tab label="Commandline" %} + ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -76,6 +86,7 @@ Connecting to 127.0.0.1:5005 } } ``` + {% /tab %} {% /tabs %} @@ -83,11 +94,11 @@ Connecting to 127.0.0.1:5005 The response follows the [standard format][], with a successful result containing the following fields: | `Field` | Type | Description | -|:----------|:-------|:-------------------------------------| +| :-------- | :----- | :----------------------------------- | | `message` | String | `ripple server stopping` on success. | ### Possible Errors -* Any of the [universal error types][]. +- Any of the [universal error types][]. {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/http-websocket-apis/admin-api-methods/signing-methods/index.md b/docs/references/http-websocket-apis/admin-api-methods/signing-methods/index.md index 5ec2501748..ad88fdf239 100644 --- a/docs/references/http-websocket-apis/admin-api-methods/signing-methods/index.md +++ b/docs/references/http-websocket-apis/admin-api-methods/signing-methods/index.md @@ -4,9 +4,9 @@ parent: admin-api-methods.html metadata: indexPage: true --- + # Signing Methods Use these methods to work with transactions. - {% child-pages /%} diff --git a/docs/references/http-websocket-apis/admin-api-methods/signing-methods/sign.md b/docs/references/http-websocket-apis/admin-api-methods/signing-methods/sign.md index 767e47f20b..d64d23e317 100644 --- a/docs/references/http-websocket-apis/admin-api-methods/signing-methods/sign.md +++ b/docs/references/http-websocket-apis/admin-api-methods/signing-methods/sign.md @@ -1,113 +1,121 @@ --- seo: - description: Cryptographically sign a transaction. + description: Cryptographically sign a transaction. labels: - - Transaction Sending + - Transaction Sending --- + # sign + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/SignHandler.cpp "Source") The `sign` method takes a [transaction in JSON format](../../../protocol/transactions/index.md) and a [seed value](../../../../concepts/accounts/cryptographic-keys.md), and returns a signed binary representation of the transaction. To contribute one signature to a [multi-signed transaction](../../../../concepts/accounts/multi-signing.md), use the [sign_for method][] instead. {% partial file="/docs/_snippets/public-signing-note.md" /%} - {% admonition type="warning" name="Caution" %}Unless you run the `rippled` server yourself, you should do local signing using a [client library](../../../client-libraries.md) instead of using this command. For more information, see [Set Up Secure Signing](../../../../concepts/transactions/secure-signing.md).{% /admonition %} ## Request Format + An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 2, "api_version": 2, "command": "sign", - "tx_json" : { - "TransactionType" : "Payment", - "Account" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "Destination" : "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "DeliverMax" : { - "currency" : "USD", - "value" : "1", - "issuer" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn" - } - }, - "secret" : "s████████████████████████████", - "offline": false, - "fee_mult_max": 1000 + "tx_json": { + "TransactionType": "Payment", + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "DeliverMax": { + "currency": "USD", + "value": "1", + "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn" + } + }, + "secret": "s████████████████████████████", + "offline": false, + "fee_mult_max": 1000 } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "sign", - "params": [ - { - "offline": false, - "api_version": 2, - "secret": "s████████████████████████████", - "tx_json": { - "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "DeliverMax": { - "currency": "USD", - "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "value": "1" - }, - "Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "TransactionType": "Payment" - }, - "fee_mult_max": 1000 - } - ] + "method": "sign", + "params": [ + { + "offline": false, + "api_version": 2, + "secret": "s████████████████████████████", + "tx_json": { + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "DeliverMax": { + "currency": "USD", + "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "value": "1" + }, + "Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "TransactionType": "Payment" + }, + "fee_mult_max": 1000 + } + ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh #Syntax: sign secret tx_json [offline] rippled sign s████████████████████████████ '{"TransactionType": "Payment", "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", "Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", "DeliverMax": { "currency": "USD", "value": "1", "issuer" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn" }, "Sequence": 360, "Fee": "10000"}' offline ``` + {% /tab %} {% /tabs %} To sign a transaction, you must provide a secret key that can [authorize the transaction](../../../../concepts/transactions/index.md#authorizing-transactions). Typically you provide a seed value that the server derives the secret key from. You can do this in a few ways: -* Provide the seed in the `secret` field and omit the `key_type` field. This value can be formatted as an XRP Ledger [base58][] seed, RFC-1751, hexadecimal, or as a string passphrase. (secp256k1 keys only) -* Provide a `key_type` value and exactly one of `seed`, `seed_hex`, or `passphrase`. Omit the `secret` field. (Not supported by the commandline syntax.) +- Provide the seed in the `secret` field and omit the `key_type` field. This value can be formatted as an XRP Ledger [base58][] seed, RFC-1751, hexadecimal, or as a string passphrase. (secp256k1 keys only) +- Provide a `key_type` value and exactly one of `seed`, `seed_hex`, or `passphrase`. Omit the `secret` field. (Not supported by the commandline syntax.) The request includes the following parameters: -| `Field` | Type | Description | -|:---------------|:--------|:--------------------------------------------------| -| `tx_json` | Object | [Transaction definition](../../../protocol/transactions/index.md) in JSON format | -| `secret` | String | _(Optional)_ The secret seed of the account supplying the transaction, used to sign it. Do not send your secret to untrusted servers or through unsecured network connections. Cannot be used with `key_type`, `seed`, `seed_hex`, or `passphrase`. | -| `seed` | String | _(Optional)_ The secret seed of the account supplying the transaction, used to sign it. Must be in the XRP Ledger's [base58][] format. If provided, you must also specify the `key_type`. Cannot be used with `secret`, `seed_hex`, or `passphrase`. | -| `seed_hex` | String | _(Optional)_ The secret seed of the account supplying the transaction, used to sign it. Must be in hexadecimal format. If provided, you must also specify the `key_type`. Cannot be used with `secret`, `seed`, or `passphrase`. | -| `passphrase` | String | _(Optional)_ The secret seed of the account supplying the transaction, used to sign it, as a string passphrase. If provided, you must also specify the `key_type`. Cannot be used with `secret`, `seed`, or `seed_hex`. | -| `key_type` | String | _(Optional)_ The [signing algorithm](../../../../concepts/accounts/cryptographic-keys.md#signing-algorithms) of the cryptographic key pair provided. Valid types are `secp256k1` or `ed25519`. Defaults to `secp256k1`. Cannot be used with `secret`. | -| `offline` | Boolean | _(Optional)_ If `true`, when constructing the transaction, do not try to [automatically fill](#auto-fillable-fields) any transaction details. The default is `false`. | +| `Field` | Type | Description | +| :------------- | :------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `tx_json` | Object | [Transaction definition](../../../protocol/transactions/index.md) in JSON format | +| `secret` | String | _(Optional)_ The secret seed of the account supplying the transaction, used to sign it. Do not send your secret to untrusted servers or through unsecured network connections. Cannot be used with `key_type`, `seed`, `seed_hex`, or `passphrase`. | +| `seed` | String | _(Optional)_ The secret seed of the account supplying the transaction, used to sign it. Must be in the XRP Ledger's [base58][] format. If provided, you must also specify the `key_type`. Cannot be used with `secret`, `seed_hex`, or `passphrase`. | +| `seed_hex` | String | _(Optional)_ The secret seed of the account supplying the transaction, used to sign it. Must be in hexadecimal format. If provided, you must also specify the `key_type`. Cannot be used with `secret`, `seed`, or `passphrase`. | +| `passphrase` | String | _(Optional)_ The secret seed of the account supplying the transaction, used to sign it, as a string passphrase. If provided, you must also specify the `key_type`. Cannot be used with `secret`, `seed`, or `seed_hex`. | +| `key_type` | String | _(Optional)_ The [signing algorithm](../../../../concepts/accounts/cryptographic-keys.md#signing-algorithms) of the cryptographic key pair provided. Valid types are `secp256k1` or `ed25519`. Defaults to `secp256k1`. Cannot be used with `secret`. | +| `offline` | Boolean | _(Optional)_ If `true`, when constructing the transaction, do not try to [automatically fill](#auto-fillable-fields) any transaction details. The default is `false`. | | `build_path` | Boolean | _(Optional)_ If this field is provided, the server [auto-fills](../../../protocol/transactions/common-fields.md#auto-fillable-fields) the `Paths` field of a [Payment transaction][] before signing. You must omit this field if the transaction is a [direct XRP payment](../../../../concepts/payment-types/direct-xrp-payments.md) or if it is not a Payment-type transaction. **Caution:** The server looks for the presence or absence of this field, not its value. This behavior may change. ([Issue #3272](https://github.com/XRPLF/rippled/issues/3272)) | -| `fee_mult_max` | Integer | _(Optional)_ Signing fails with the error `rpcHIGH_FEE` if the [auto-filled `Fee` value](../../../protocol/transactions/common-fields.md#auto-fillable-fields) would be greater than the [reference transaction cost](../../../../concepts/transactions/transaction-cost.md#special-transaction-costs) × `fee_mult_max` ÷ `fee_div_max`. This field has no effect if you explicitly specify the `Fee` field of the transaction. The default is `10`. | -| `fee_div_max` | Integer | _(Optional)_ Signing fails with the error `rpcHIGH_FEE` if the [auto-filled `Fee` value](../../../protocol/transactions/common-fields.md#auto-fillable-fields) would be greater than the [reference transaction cost](../../../../concepts/transactions/transaction-cost.md#special-transaction-costs) × `fee_mult_max` ÷ `fee_div_max`. This field has no effect if you explicitly specify the `Fee` field of the transaction. The default is `1`. | +| `fee_mult_max` | Integer | _(Optional)_ Signing fails with the error `rpcHIGH_FEE` if the [auto-filled `Fee` value](../../../protocol/transactions/common-fields.md#auto-fillable-fields) would be greater than the [reference transaction cost](../../../../concepts/transactions/transaction-cost.md#special-transaction-costs) × `fee_mult_max` ÷ `fee_div_max`. This field has no effect if you explicitly specify the `Fee` field of the transaction. The default is `10`. | +| `fee_div_max` | Integer | _(Optional)_ Signing fails with the error `rpcHIGH_FEE` if the [auto-filled `Fee` value](../../../protocol/transactions/common-fields.md#auto-fillable-fields) would be greater than the [reference transaction cost](../../../../concepts/transactions/transaction-cost.md#special-transaction-costs) × `fee_mult_max` ÷ `fee_div_max`. This field has no effect if you explicitly specify the `Fee` field of the transaction. The default is `1`. | ### Auto-Fillable Fields The server automatically tries to fill in certain fields in `tx_json` (the [Transaction object](../../../protocol/transactions/index.md)) automatically if you omit them. The server provides the following fields before signing, unless the request specified `offline` as `true`: -* `Sequence` - The server automatically uses the next Sequence number from the sender's account information. - * **Caution:** The next sequence number for the account is not incremented until this transaction is applied. If you sign multiple transactions without submitting and waiting for the response to each one, you must manually provide the correct sequence numbers for each transaction after the first. -* `Fee` - If you omit the `Fee` parameter, the server tries to fill in an appropriate transaction cost automatically. On the production XRP Ledger, this fails with `rpcHIGH_FEE` unless you provide an appropriate `fee_mult_max` value. - * The `fee_mult_max` and `fee_div_max` parameters limit how high the automatically-provided transaction cost can be, in terms of the load-scaling multiplier that gets applied to the [reference transaction cost](../../../../concepts/transactions/transaction-cost.md#reference-transaction-cost). The default settings return an error if the automatically-provided value would use greater than a 10× multiplier. However, the production XRP Ledger [typically has a 1000× load multiplier](../../../../concepts/transactions/transaction-cost.md#current-transaction-cost). - * The commandline syntax does not support `fee_mult_max` and `fee_div_max`. For the production XRP Ledger, you must provide a `Fee` value. - * **Caution:** A malicious server can specify an excessively high transaction cost, ignoring the values of `fee_mult_max` and `fee_div_max`. -* `Paths` - For Payment-type transactions (excluding XRP-to-XRP transfers), the Paths field can be automatically filled, as if you used the [ripple_path_find method][]. Only filled if `build_path` is provided. +- `Sequence` - The server automatically uses the next Sequence number from the sender's account information. + - **Caution:** The next sequence number for the account is not incremented until this transaction is applied. If you sign multiple transactions without submitting and waiting for the response to each one, you must manually provide the correct sequence numbers for each transaction after the first. +- `Fee` - If you omit the `Fee` parameter, the server tries to fill in an appropriate transaction cost automatically. On the production XRP Ledger, this fails with `rpcHIGH_FEE` unless you provide an appropriate `fee_mult_max` value. + - The `fee_mult_max` and `fee_div_max` parameters limit how high the automatically-provided transaction cost can be, in terms of the load-scaling multiplier that gets applied to the [reference transaction cost](../../../../concepts/transactions/transaction-cost.md#reference-transaction-cost). The default settings return an error if the automatically-provided value would use greater than a 10× multiplier. However, the production XRP Ledger [typically has a 1000× load multiplier](../../../../concepts/transactions/transaction-cost.md#current-transaction-cost). + - The commandline syntax does not support `fee_mult_max` and `fee_div_max`. For the production XRP Ledger, you must provide a `Fee` value. + - **Caution:** A malicious server can specify an excessively high transaction cost, ignoring the values of `fee_mult_max` and `fee_div_max`. +- `Paths` - For Payment-type transactions (excluding XRP-to-XRP transfers), the Paths field can be automatically filled, as if you used the [ripple_path_find method][]. Only filled if `build_path` is provided. ## Response Format @@ -116,6 +124,7 @@ An example of a successful response: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 2, @@ -143,9 +152,11 @@ An example of a successful response: } } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -172,9 +183,11 @@ An example of a successful response: } } ``` + {% /tab %} {% tab label="Commandline" %} + ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -202,29 +215,30 @@ Connecting to 127.0.0.1:5005 } } ``` + {% /tab %} {% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: -| `Field` | Type | Description | -|:----------|:-------|:--------------------------------------------------------| -| `tx_blob` | String | Binary representation of the fully-qualified, signed transaction, as hex | +| `Field` | Type | Description | +| :-------- | :----- | :---------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `tx_blob` | String | Binary representation of the fully-qualified, signed transaction, as hex | | `tx_json` | Object | JSON specification of the [complete transaction](../../../protocol/transactions/index.md) as signed, including any fields that were automatically filled in | {% admonition type="warning" name="Caution" %}If this command results in an error messages, the message can contain a secret value provided in the request. Make sure that these errors are not visible to others.{% /admonition %} -* Do not write this error to a log file that can be seen by multiple people. -* Do not paste this error to a public place for debugging. -* Do not display the error message on a website, even by accident. +- Do not write this error to a log file that can be seen by multiple people. +- Do not paste this error to a public place for debugging. +- Do not display the error message on a website, even by accident. ## Possible Errors -* Any of the [universal error types][]. -* `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. -* `highFee` - The current load-based multiplier to the transaction cost exceeds the limit for an automatically-provided transaction cost. Either specify a higher `fee_mult_max` (at least 1000) in the request or manually provide a value in the `Fee` field of the `tx_json`. -* `tooBusy` - The transaction did not include paths, but the server is too busy to do pathfinding right now. Does not occur if you are connected as an admin. -* `noPath` - The transaction did not include paths, and the server was unable to find a path by which this payment can occur. +- Any of the [universal error types][]. +- `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. +- `highFee` - The current load-based multiplier to the transaction cost exceeds the limit for an automatically-provided transaction cost. Either specify a higher `fee_mult_max` (at least 1000) in the request or manually provide a value in the `Fee` field of the `tx_json`. +- `tooBusy` - The transaction did not include paths, but the server is too busy to do pathfinding right now. Does not occur if you are connected as an admin. +- `noPath` - The transaction did not include paths, and the server was unable to find a path by which this payment can occur. {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/http-websocket-apis/admin-api-methods/signing-methods/sign_for.md b/docs/references/http-websocket-apis/admin-api-methods/signing-methods/sign_for.md index 0eaaa3952e..4e398c3ba1 100644 --- a/docs/references/http-websocket-apis/admin-api-methods/signing-methods/sign_for.md +++ b/docs/references/http-websocket-apis/admin-api-methods/signing-methods/sign_for.md @@ -1,10 +1,12 @@ --- seo: - description: Contribute to a multi-signature. + description: Contribute to a multi-signature. labels: - - Transaction Sending + - Transaction Sending --- + # sign_for + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/SignFor.cpp "Source") The `sign_for` command provides one signature for a [multi-signed transaction](../../../../concepts/accounts/multi-signing.md). @@ -12,62 +14,70 @@ The `sign_for` command provides one signature for a [multi-signed transaction](. {% partial file="/docs/_snippets/public-signing-note.md" /%} ## Request Format + An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": "sign_for_example", - "command": "sign_for", - "account": "rLFd1FzHMScFhLsXeaxStzv3UC97QHGAbM", - "seed": "s████████████████████████████", - "key_type": "ed25519", - "tx_json": { + "id": "sign_for_example", + "command": "sign_for", + "account": "rLFd1FzHMScFhLsXeaxStzv3UC97QHGAbM", + "seed": "s████████████████████████████", + "key_type": "ed25519", + "tx_json": { + "TransactionType": "TrustSet", + "Account": "rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", + "Flags": 262144, + "LimitAmount": { + "currency": "USD", + "issuer": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "value": "100" + }, + "Sequence": 2, + "SigningPubKey": "", + "Fee": "30000" + } +} +``` + +{% /tab %} + +{% tab label="JSON-RPC" %} + +```json +{ + "method": "sign_for", + "params": [ + { + "account": "rLFd1FzHMScFhLsXeaxStzv3UC97QHGAbM", + "seed": "s████████████████████████████", + "key_type": "ed25519", + "tx_json": { "TransactionType": "TrustSet", "Account": "rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", "Flags": 262144, "LimitAmount": { - "currency": "USD", - "issuer": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "value": "100" + "currency": "USD", + "issuer": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "value": "100" }, "Sequence": 2, "SigningPubKey": "", "Fee": "30000" + } } + ] } ``` -{% /tab %} -{% tab label="JSON-RPC" %} -```json -{ - "method": "sign_for", - "params": [{ - "account": "rLFd1FzHMScFhLsXeaxStzv3UC97QHGAbM", - "seed": "s████████████████████████████", - "key_type": "ed25519", - "tx_json": { - "TransactionType": "TrustSet", - "Account": "rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", - "Flags": 262144, - "LimitAmount": { - "currency": "USD", - "issuer": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "value": "100" - }, - "Sequence": 2, - "SigningPubKey": "", - "Fee": "30000" - } - }] -} -``` {% /tab %} {% tab label="Commandline" %} + ```sh #Syntax: rippled sign_for [offline] rippled sign_for rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW s████████████████████████████ '{ @@ -84,26 +94,27 @@ rippled sign_for rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW s█████████ "Fee": "30000" }' ``` + {% /tab %} {% /tabs %} The request includes the following parameters: -| `Field` | Type | Description | -|:-------------|:---------------------|:---------------------------------------| -| `account` | String - [Address][] | The address which is providing the signature. | +| `Field` | Type | Description | +| :----------- | :------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `account` | String - [Address][] | The address which is providing the signature. | | `tx_json` | Object | The [Transaction](../../../protocol/transactions/index.md) to sign. Unlike using the [sign method][], all fields of the transaction must be provided, including `Fee` and `Sequence`. The transaction must include the field `SigningPubKey` with an empty string as the value. The object may optionally contain a `Signers` array with previously-collected signatures. | -| `secret` | String | _(Optional)_ Secret key of the account supplying the transaction, used to sign it. Do not send your secret to untrusted servers or through unsecured network connections. Cannot be used with `key_type`, `seed`, `seed_hex`, or `passphrase`. | -| `seed` | String | _(Optional)_ Secret key of the account supplying the transaction, used to sign it. Must be in the XRP Ledger's [base58][] format. If provided, you must also specify the `key_type`. Cannot be used with `secret`, `seed_hex`, or `passphrase`. | -| `seed_hex` | String | _(Optional)_ Secret key of the account supplying the transaction, used to sign it. Must be in hexadecimal format. If provided, you must also specify the `key_type`. Cannot be used with `secret`, `seed`, or `passphrase`. | -| `passphrase` | String | _(Optional)_ Secret key of the account supplying the transaction, used to sign it, as a string passphrase. If provided, you must also specify the `key_type`. Cannot be used with `secret`, `seed`, or `seed_hex`. | -| `key_type` | String | _(Optional)_ Type of cryptographic key provided in this request. Valid types are `secp256k1` or `ed25519`. Defaults to `secp256k1`. Cannot be used with `secret`. **Caution:** Ed25519 support is experimental. | +| `secret` | String | _(Optional)_ Secret key of the account supplying the transaction, used to sign it. Do not send your secret to untrusted servers or through unsecured network connections. Cannot be used with `key_type`, `seed`, `seed_hex`, or `passphrase`. | +| `seed` | String | _(Optional)_ Secret key of the account supplying the transaction, used to sign it. Must be in the XRP Ledger's [base58][] format. If provided, you must also specify the `key_type`. Cannot be used with `secret`, `seed_hex`, or `passphrase`. | +| `seed_hex` | String | _(Optional)_ Secret key of the account supplying the transaction, used to sign it. Must be in hexadecimal format. If provided, you must also specify the `key_type`. Cannot be used with `secret`, `seed`, or `passphrase`. | +| `passphrase` | String | _(Optional)_ Secret key of the account supplying the transaction, used to sign it, as a string passphrase. If provided, you must also specify the `key_type`. Cannot be used with `secret`, `seed`, or `seed_hex`. | +| `key_type` | String | _(Optional)_ Type of cryptographic key provided in this request. Valid types are `secp256k1` or `ed25519`. Defaults to `secp256k1`. Cannot be used with `secret`. **Caution:** Ed25519 support is experimental. | You must provide **exactly 1 field** with the secret key, which can be either of the following: -* Provide a `secret` value and omit the `key_type` field. This value can be formatted as an XRP Ledger [base58][] seed, RFC-1751, hexadecimal, or as a string passphrase. (secp256k1 keys only) -* Provide a `key_type` value and exactly one of `seed`, `seed_hex`, or `passphrase`. Omit the `secret` field. (Not supported by the commandline syntax.) +- Provide a `secret` value and omit the `key_type` field. This value can be formatted as an XRP Ledger [base58][] seed, RFC-1751, hexadecimal, or as a string passphrase. (secp256k1 keys only) +- Provide a `key_type` value and exactly one of `seed`, `seed_hex`, or `passphrase`. Omit the `secret` field. (Not supported by the commandline syntax.) ## Response Format @@ -112,6 +123,7 @@ An example of a successful response: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": "sign_for_example", @@ -145,9 +157,11 @@ An example of a successful response: } } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -181,9 +195,11 @@ An example of a successful response: } } ``` + {% /tab %} {% tab label="Commandline" %} + ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -218,24 +234,25 @@ Connecting to 127.0.0.1:5005 } } ``` + {% /tab %} {% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: -| `Field` | Type | Description | -|:----------|:-------|:--------------------------------------------------------| +| `Field` | Type | Description | +| :-------- | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `tx_blob` | String | Hexadecimal representation of the signed transaction, including the newly-added signature. If it has enough signatures, you can [submit this string using the `submit` method](../../public-api-methods/transaction-methods/submit.md#submit-only-mode). | -| `tx_json` | Object | The [transaction specification](../../../protocol/transactions/index.md) in JSON format, with the newly-added signature in the `Signers` array. If it has enough signatures, you can submit this object using the [submit_multisigned method][]. | +| `tx_json` | Object | The [transaction specification](../../../protocol/transactions/index.md) in JSON format, with the newly-added signature in the `Signers` array. If it has enough signatures, you can submit this object using the [submit_multisigned method][]. | ## Possible Errors -* Any of the [universal error types][]. -* `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. -* `srcActNotFound` - If the `Account` from the transaction is not a funded address in the ledger. -* `srcActMalformed` - If the signing address (`account` field) from the request is not validly formed. -* `badSeed` - The seed value supplied was invalidly-formatted. -* `badSecret` - The secret value supplied was invalidly-formatted. +- Any of the [universal error types][]. +- `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. +- `srcActNotFound` - If the `Account` from the transaction is not a funded address in the ledger. +- `srcActMalformed` - If the signing address (`account` field) from the request is not validly formed. +- `badSeed` - The seed value supplied was invalidly-formatted. +- `badSecret` - The secret value supplied was invalidly-formatted. {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/consensus_info.md b/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/consensus_info.md index d4041d25d3..a764790e6d 100644 --- a/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/consensus_info.md +++ b/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/consensus_info.md @@ -1,11 +1,13 @@ --- seo: - description: Get information about the state of consensus as it happens. + description: Get information about the state of consensus as it happens. labels: - - Blockchain - - Core Server + - Blockchain + - Core Server --- + # consensus_info + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/ConsensusInfo.cpp "Source") The `consensus_info` command provides information about the [consensus process](../../../../concepts/consensus-protocol/index.md) for debugging purposes. @@ -13,35 +15,40 @@ The `consensus_info` command provides information about the [consensus process]( _The `consensus_info` method is an [admin method](../index.md) that cannot be run by unprivileged users._ ### Request Format + An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": 99, - "command": "consensus_info" + "id": 99, + "command": "consensus_info" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "consensus_info", - "params": [ - {} - ] + "method": "consensus_info", + "params": [{}] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh #Syntax: consensus_info rippled consensus_info ``` + {% /tab %} {% /tabs %} @@ -55,81 +62,84 @@ An example of a successful response: {% tabs %} {% tab label="JSON-RPC" %} + ```json { - "result" : { - "info" : { - "acquired" : { - "4BC2CE596CBD1321775320E2067F9C06D3862826212C16EF42ABB6A2B0414306" : "acquired" + "result": { + "info": { + "acquired": { + "4BC2CE596CBD1321775320E2067F9C06D3862826212C16EF42ABB6A2B0414306": "acquired" + }, + "close_granularity": 10, + "close_percent": 50, + "close_resolution": 10, + "close_times": { + "486082972": 1, + "486082973": 4 + }, + "current_ms": 1003, + "have_time_consensus": false, + "ledger_seq": 13701086, + "our_position": { + "close_time": 486082973, + "previous_ledger": "0BB01379B51234BAAF501A71C7AB147F595460B689BB9E8252A0B87B5A483623", + "propose_seq": 0, + "transaction_hash": "4BC2CE596CBD1321775320E2067F9C06D3862826212C16EF42ABB6A2B0414306" + }, + "peer_positions": { + "0A2EAF919033A036D363D4E5610A66209DDBE8EE": { + "close_time": 486082972, + "peer_id": "n9KiYM9CgngLvtRCQHZwgC2gjpdaZcCcbt3VboxiNFcKuwFVujzS", + "previous_ledger": "0BB01379B51234BAAF501A71C7AB147F595460B689BB9E8252A0B87B5A483623", + "propose_seq": 0, + "transaction_hash": "4BC2CE596CBD1321775320E2067F9C06D3862826212C16EF42ABB6A2B0414306" }, - "close_granularity" : 10, - "close_percent" : 50, - "close_resolution" : 10, - "close_times" : { - "486082972" : 1, - "486082973" : 4 + "1567A8C953A86F8428C7B01641D79BBF2FD508F3": { + "close_time": 486082973, + "peer_id": "n9LdgEtkmGB9E2h3K4Vp7iGUaKuq23Zr32ehxiU8FWY7xoxbWTSA", + "previous_ledger": "0BB01379B51234BAAF501A71C7AB147F595460B689BB9E8252A0B87B5A483623", + "propose_seq": 0, + "transaction_hash": "4BC2CE596CBD1321775320E2067F9C06D3862826212C16EF42ABB6A2B0414306" }, - "current_ms" : 1003, - "have_time_consensus" : false, - "ledger_seq" : 13701086, - "our_position" : { - "close_time" : 486082973, - "previous_ledger" : "0BB01379B51234BAAF501A71C7AB147F595460B689BB9E8252A0B87B5A483623", - "propose_seq" : 0, - "transaction_hash" : "4BC2CE596CBD1321775320E2067F9C06D3862826212C16EF42ABB6A2B0414306" + "202397A81F20B44CF44EA99AF761295E5A8397D2": { + "close_time": 486082973, + "peer_id": "n9MD5h24qrQqiyBC8aeqqCWvpiBiYQ3jxSr91uiDvmrkyHRdYLUj", + "previous_ledger": "0BB01379B51234BAAF501A71C7AB147F595460B689BB9E8252A0B87B5A483623", + "propose_seq": 0, + "transaction_hash": "4BC2CE596CBD1321775320E2067F9C06D3862826212C16EF42ABB6A2B0414306" }, - "peer_positions" : { - "0A2EAF919033A036D363D4E5610A66209DDBE8EE" : { - "close_time" : 486082972, - "peer_id" : "n9KiYM9CgngLvtRCQHZwgC2gjpdaZcCcbt3VboxiNFcKuwFVujzS", - "previous_ledger" : "0BB01379B51234BAAF501A71C7AB147F595460B689BB9E8252A0B87B5A483623", - "propose_seq" : 0, - "transaction_hash" : "4BC2CE596CBD1321775320E2067F9C06D3862826212C16EF42ABB6A2B0414306" - }, - "1567A8C953A86F8428C7B01641D79BBF2FD508F3" : { - "close_time" : 486082973, - "peer_id" : "n9LdgEtkmGB9E2h3K4Vp7iGUaKuq23Zr32ehxiU8FWY7xoxbWTSA", - "previous_ledger" : "0BB01379B51234BAAF501A71C7AB147F595460B689BB9E8252A0B87B5A483623", - "propose_seq" : 0, - "transaction_hash" : "4BC2CE596CBD1321775320E2067F9C06D3862826212C16EF42ABB6A2B0414306" - }, - "202397A81F20B44CF44EA99AF761295E5A8397D2" : { - "close_time" : 486082973, - "peer_id" : "n9MD5h24qrQqiyBC8aeqqCWvpiBiYQ3jxSr91uiDvmrkyHRdYLUj", - "previous_ledger" : "0BB01379B51234BAAF501A71C7AB147F595460B689BB9E8252A0B87B5A483623", - "propose_seq" : 0, - "transaction_hash" : "4BC2CE596CBD1321775320E2067F9C06D3862826212C16EF42ABB6A2B0414306" - }, - "5C29005CF4FB479FC49EEFB4A5B075C86DD963CC" : { - "close_time" : 486082973, - "peer_id" : "n9L81uNCaPgtUJfaHh89gmdvXKAmSt5Gdsw2g1iPWaPkAHW5Nm4C", - "previous_ledger" : "0BB01379B51234BAAF501A71C7AB147F595460B689BB9E8252A0B87B5A483623", - "propose_seq" : 0, - "transaction_hash" : "4BC2CE596CBD1321775320E2067F9C06D3862826212C16EF42ABB6A2B0414306" - }, - "EFC49EB648E557CC50A72D715249B80E071F7705" : { - "close_time" : 486082973, - "peer_id" : "n949f75evCHwgyP4fPVgaHqNHxUVN15PsJEZ3B3HnXPcPjcZAoy7", - "previous_ledger" : "0BB01379B51234BAAF501A71C7AB147F595460B689BB9E8252A0B87B5A483623", - "propose_seq" : 0, - "transaction_hash" : "4BC2CE596CBD1321775320E2067F9C06D3862826212C16EF42ABB6A2B0414306" - } + "5C29005CF4FB479FC49EEFB4A5B075C86DD963CC": { + "close_time": 486082973, + "peer_id": "n9L81uNCaPgtUJfaHh89gmdvXKAmSt5Gdsw2g1iPWaPkAHW5Nm4C", + "previous_ledger": "0BB01379B51234BAAF501A71C7AB147F595460B689BB9E8252A0B87B5A483623", + "propose_seq": 0, + "transaction_hash": "4BC2CE596CBD1321775320E2067F9C06D3862826212C16EF42ABB6A2B0414306" }, - "previous_mseconds" : 2005, - "previous_proposers" : 5, - "proposers" : 5, - "proposing" : false, - "state" : "consensus", - "synched" : true, - "validating" : false + "EFC49EB648E557CC50A72D715249B80E071F7705": { + "close_time": 486082973, + "peer_id": "n949f75evCHwgyP4fPVgaHqNHxUVN15PsJEZ3B3HnXPcPjcZAoy7", + "previous_ledger": "0BB01379B51234BAAF501A71C7AB147F595460B689BB9E8252A0B87B5A483623", + "propose_seq": 0, + "transaction_hash": "4BC2CE596CBD1321775320E2067F9C06D3862826212C16EF42ABB6A2B0414306" + } + }, + "previous_mseconds": 2005, + "previous_proposers": 5, + "proposers": 5, + "proposing": false, + "state": "consensus", + "synched": true, + "validating": false }, - "status" : "success" + "status": "success" } } ``` + {% /tab %} {% tab label="Commandline" %} + ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -205,32 +215,32 @@ Connecting to 127.0.0.1:5005 } } ``` + {% /tab %} {% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: -| `Field` | Type | Description | -|:--------|:-------|:----------------------------------------------------------| +| `Field` | Type | Description | +| :------ | :----- | :------------------------------------------------------------------------------------------------------- | | `info` | Object | Information that may be useful for debugging consensus. This output is subject to change without notice. | The following is an incomplete summary of fields that may be contained in the `info` object: -| `Field` | Type | Description | -|:-----------------|:--------|:------------------------------------------------| -| `ledger_seq` | Number | The [ledger index][Ledger Index] of the [ledger](../../../../concepts/ledgers/index.md) currently in the consensus process | -| `our_position` | Object | This server's expectation for the ledger in the consensus process. | -| `peer_positions` | Object | Map of peers and their proposed versions of the ledger in the consensus process. | +| `Field` | Type | Description | +| :--------------- | :------ | :--------------------------------------------------------------------------------------------------------------------------------------------- | +| `ledger_seq` | Number | The [ledger index][Ledger Index] of the [ledger](../../../../concepts/ledgers/index.md) currently in the consensus process | +| `our_position` | Object | This server's expectation for the ledger in the consensus process. | +| `peer_positions` | Object | Map of peers and their proposed versions of the ledger in the consensus process. | | `proposers` | Number | The number of trusted validators participating in this consensus process. Which validators are trusted depends on this server's configuration. | -| `synched` | Boolean | Whether this server considers itself in sync with the network. | -| `state` | String | What part of the consensus process is currently in progress: `open`, `consensus`, `finished`, or `accepted`. | +| `synched` | Boolean | Whether this server considers itself in sync with the network. | +| `state` | String | What part of the consensus process is currently in progress: `open`, `consensus`, `finished`, or `accepted`. | It is also normal to get a minimal result where the only field in `info` is `"consensus": "none"`. This indicates that the server is in between consensus rounds. The results of the `consensus_info` command can vary dramatically if you run it several times, even in short succession. - ### Possible Errors - Any of the [universal error types][]. diff --git a/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/feature.md b/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/feature.md index 301cca78bc..c1eda9115f 100644 --- a/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/feature.md +++ b/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/feature.md @@ -1,11 +1,13 @@ --- seo: - description: Get information about protocol amendments. + description: Get information about protocol amendments. labels: - - Blockchain - - Core Server + - Blockchain + - Core Server --- + # feature + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/Feature1.cpp "Source") The `feature` command returns information about [amendments](../../../../concepts/networks-and-servers/amendments.md) this server knows about, including whether they are enabled and whether the server is voting in favor of those amendments in the [amendment process](../../../../concepts/networks-and-servers/amendments.md#amendment-process). @@ -15,20 +17,24 @@ You can use the `feature` command to configure the server to vote against or in _The `feature` method documented on this page is an [admin method](../index.md). For the non-admin version, see the [`feature` public API method](../../public-api-methods/server-info-methods/feature.md)._ ### Request Format + An example of the request format: {% tabs %} {% tab label="WebSocket - list all" %} + ```json { "id": "list_all_features", "command": "feature" } ``` + {% /tab %} {% tab label="WebSocket - reject" %} + ```json { "id": "reject_multi_sign", @@ -37,36 +43,41 @@ An example of the request format: "vetoed": true } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "feature", - "params": [ - { - "feature": "4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373", - "vetoed": false - } - ] + "method": "feature", + "params": [ + { + "feature": "4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373", + "vetoed": false + } + ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh #Syntax: feature [ [accept|reject]] rippled feature 4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373 accept ``` + {% /tab %} {% /tabs %} The request includes the following parameters: -| `Field` | Type | Description | -|:----------|:--------|:-------------------------------------------------------| -| `feature` | String | _(Optional)_ The unique ID of an amendment, as hexadecimal; or the short name of the amendment. If provided, limits the response to one amendment. Otherwise, the response lists all amendments. | +| `Field` | Type | Description | +| :-------- | :------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `feature` | String | _(Optional)_ The unique ID of an amendment, as hexadecimal; or the short name of the amendment. If provided, limits the response to one amendment. Otherwise, the response lists all amendments. | | `vetoed` | Boolean | _(Optional; ignored unless `feature` also specified)_ If `true`, instructs the server to vote against the amendment specified by `feature`. If false, instructs the server to vote in favor of the amendment. On the commandline, use 'accept' or 'reject rather than 'true' or 'false'. You cannot vote in favor of an amendment that is marked as _obsolete_ in the server's source code. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.11.0" %}Updated in: rippled 1.11.0{% /badge %} | {% admonition type="info" name="Note" %}You can configure your server to vote in favor of a new amendment, even if the server does not currently know how to apply that amendment, by specifying the amendment ID in the `feature` field. For example, you might want to do this if you plan to upgrade soon to a new `rippled` version that _does_ support the amendment.{% /admonition %} @@ -78,6 +89,7 @@ An example of a successful response: {% tabs %} {% tab label="WebSocket - list all" %} + ```json { "id": "list_all_features", @@ -119,29 +131,33 @@ An example of a successful response: } } ``` + {% /tab %} {% tab label="WebSocket - reject" %} + ```json { - "id": "reject_multi_sign", - "status": "success", - "type": "response", - "result": { - "features": { - "4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373": { - "enabled": false, - "name": "MultiSign", - "supported": true, - "vetoed": true - } - } + "id": "reject_multi_sign", + "status": "success", + "type": "response", + "result": { + "features": { + "4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373": { + "enabled": false, + "name": "MultiSign", + "supported": true, + "vetoed": true + } } + } } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -157,9 +173,11 @@ An example of a successful response: } } ``` + {% /tab %} {% tab label="Commandline" %} + ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -176,18 +194,19 @@ Connecting to 127.0.0.1:5005 } } ``` + {% /tab %} {% /tabs %} The response follows the [standard format][], with a successful result containing **a map of amendments** as a JSON object. The keys of the object are amendment IDs. The values for each key are _amendment objects_ that describe the status of the amendment with that ID. If the request specified a `feature`, the map contains only the requested amendment object, after applying any changes from the request. Each amendment object has the following fields: -| `Field` | Type | Description | -|:------------|:--------|:-----------------------------------------------------| -| `enabled` | Boolean | Whether this amendment is currently enabled in the latest ledger. | -| `name` | String | (May be omitted) The human-readable name for this amendment, if known. | -| `supported` | Boolean | Whether the server knows how to apply this amendment. If this field is set to `false` (the server does not know how to apply this amendment) and `enabled` is set to `true` (this amendment is enabled in the latest ledger), this amendment may cause your server to be [amendment blocked](../../../../concepts/networks-and-servers/amendments.md#amendment-blocked-servers). | -| `vetoed` | Boolean or String | For most amendments, this is a boolean value indicating whether the server has been instructed to vote against this amendment. For amendments that are marked as obsolete in the code, this is the string `Obsolete` instead. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.11.0" %}Updated in: rippled 1.11.0{% /badge %} | +| `Field` | Type | Description | +| :---------- | :---------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `enabled` | Boolean | Whether this amendment is currently enabled in the latest ledger. | +| `name` | String | (May be omitted) The human-readable name for this amendment, if known. | +| `supported` | Boolean | Whether the server knows how to apply this amendment. If this field is set to `false` (the server does not know how to apply this amendment) and `enabled` is set to `true` (this amendment is enabled in the latest ledger), this amendment may cause your server to be [amendment blocked](../../../../concepts/networks-and-servers/amendments.md#amendment-blocked-servers). | +| `vetoed` | Boolean or String | For most amendments, this is a boolean value indicating whether the server has been instructed to vote against this amendment. For amendments that are marked as obsolete in the code, this is the string `Obsolete` instead. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.11.0" %}Updated in: rippled 1.11.0{% /badge %} | {% admonition type="warning" name="Caution" %}The `name` for an amendment does not strictly indicate what that amendment does. The name is not guaranteed to be unique or consistent across servers.{% /admonition %} diff --git a/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/fetch_info.md b/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/fetch_info.md index 2133905382..e89201282e 100644 --- a/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/fetch_info.md +++ b/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/fetch_info.md @@ -1,10 +1,12 @@ --- seo: - description: Get information about the server's sync with the network. + description: Get information about the server's sync with the network. labels: - - Core Server + - Core Server --- + # fetch_info + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/FetchInfo.cpp "Source") The `fetch_info` command returns information about objects that this server is currently fetching from the network, and how many peers have that information. It can also be used to reset current fetches. @@ -12,46 +14,53 @@ The `fetch_info` command returns information about objects that this server is c _The `fetch_info` method is an [admin method](../index.md) that cannot be run by unprivileged users._ ### Request Format + An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": 91, - "command": "fetch_info", - "clear": false + "id": 91, + "command": "fetch_info", + "clear": false } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "fetch_info", - "params": [ - { - "clear": false - } - ] + "method": "fetch_info", + "params": [ + { + "clear": false + } + ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh #Syntax: fetch_info [clear] rippled fetch_info ``` + {% /tab %} {% /tabs %} The request includes the following parameters: -| `Field` | Type | Description | -|:--------|:--------|:---------------------------------------------------------| +| `Field` | Type | Description | +| :------ | :------ | :----------------------------------------------------------------------------------- | | `clear` | Boolean | If `true`, reset current fetches. Otherwise, only get status of fetches in progress. | ### Response Format @@ -61,44 +70,47 @@ An example of a successful response: {% tabs %} {% tab label="JSON-RPC" %} + ```json { - "result" : { - "info" : { - "348928" : { - "hash" : "C26D432B06F84861BCACD7942EDC3FE0B2E1DEB966A9E516A0FD275A375C2010", - "have_header" : true, - "have_state" : false, - "have_transactions" : true, - "needed_state_hashes" : [ - "BF8DC6B1E10D1D3565BF0649075D22EBFD34F751AFCC0E53E81D74786BC88922", - "34E37A71CB51A12C73A435250E6A6349F7884C7EEBA6B88FA31F0244E967E88F", - "BFB7D3008A7D61FD6A0538D1C2E70CFB94CE8DC66606319C372F278A48629765", - "41C0C61D701FB1EA586F0EF1FC7A91FEC476D979589DA60507F05C13F7C21975", - "6DDE8840A2C3C7FF05E5FFEE4D06408694C16A8357338FE0C4581DC3D8A00BBA", - "6C69D833B582C849917806FA009518832BB50E900E43716FD7CC1966428DD0CF", - "1EDC020CFC4AF19B625C52E20B66D6AE672821CCC461E8A9C457A3B2955657F7", - "FC0616A66A2B0589CA513F3341D4EA51E782C4601E5072308478E3CC19264640", - "19FC607B5DE1B64681A676EC1ED5507B9555B0E098CD9D898320297DE1A64033", - "5E128D3FC990074E35687387A14AA12D9FD287E5AB57CB9B2FD83DE635DF5CA9", - "DE72820F3981770F2AA8770BC233B80661F1A452819D8529008875FF8DED87A9", - "3ACB84BEE2C45556351FF60FD787D235C9CF5623FB8A35B01446B773598E7CC0", - "0DD3A8DF69874148057F1F2BF305442FF2E89A76A08B4CC8C051E2ED69B874F3", - "4AE9A9C4F12A5BD0355037DA40A0B145420A2168A9FEDE43E643BD13062F8ECE", - "08CBF8CFFEC207F5AC4E4F24BC447011FD8C79D25B344281FBFB4732D7058ED4", - "779B2577C5C4BAED6657421448EA506BBF50F86BE363E0924127C4EA17A58BBE" - ], - "peers" : 2, - "timeouts" : 0 - } + "result": { + "info": { + "348928": { + "hash": "C26D432B06F84861BCACD7942EDC3FE0B2E1DEB966A9E516A0FD275A375C2010", + "have_header": true, + "have_state": false, + "have_transactions": true, + "needed_state_hashes": [ + "BF8DC6B1E10D1D3565BF0649075D22EBFD34F751AFCC0E53E81D74786BC88922", + "34E37A71CB51A12C73A435250E6A6349F7884C7EEBA6B88FA31F0244E967E88F", + "BFB7D3008A7D61FD6A0538D1C2E70CFB94CE8DC66606319C372F278A48629765", + "41C0C61D701FB1EA586F0EF1FC7A91FEC476D979589DA60507F05C13F7C21975", + "6DDE8840A2C3C7FF05E5FFEE4D06408694C16A8357338FE0C4581DC3D8A00BBA", + "6C69D833B582C849917806FA009518832BB50E900E43716FD7CC1966428DD0CF", + "1EDC020CFC4AF19B625C52E20B66D6AE672821CCC461E8A9C457A3B2955657F7", + "FC0616A66A2B0589CA513F3341D4EA51E782C4601E5072308478E3CC19264640", + "19FC607B5DE1B64681A676EC1ED5507B9555B0E098CD9D898320297DE1A64033", + "5E128D3FC990074E35687387A14AA12D9FD287E5AB57CB9B2FD83DE635DF5CA9", + "DE72820F3981770F2AA8770BC233B80661F1A452819D8529008875FF8DED87A9", + "3ACB84BEE2C45556351FF60FD787D235C9CF5623FB8A35B01446B773598E7CC0", + "0DD3A8DF69874148057F1F2BF305442FF2E89A76A08B4CC8C051E2ED69B874F3", + "4AE9A9C4F12A5BD0355037DA40A0B145420A2168A9FEDE43E643BD13062F8ECE", + "08CBF8CFFEC207F5AC4E4F24BC447011FD8C79D25B344281FBFB4732D7058ED4", + "779B2577C5C4BAED6657421448EA506BBF50F86BE363E0924127C4EA17A58BBE" + ], + "peers": 2, + "timeouts": 0 + } }, - "status" : "success" + "status": "success" } } ``` + {% /tab %} {% tab label="Commandline" %} + ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -137,26 +149,27 @@ Connecting to 127.0.0.1:5005 } } ``` + {% /tab %} {% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: -| `Field` | Type | Description | -|:--------|:-------|:----------------------------------------------------------| +| `Field` | Type | Description | +| :------ | :----- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `info` | Object | Map of objects being fetched and the status of that object being fetched. A ledger being fetched may be identified by its [ledger index][]; ledgers and other objects being fetched may also be identified by their hashes. | The fields describing a fetch in progress are subject to change without notice. The following fields may be included: -| `Field` | Type | Description | -|:----------------------|:------------------------|:---------------------------| -| `hash` | String | The hash of the item being fetched. | -| `have_header` | Boolean | For a ledger, whether this server has already obtained the ledger's header section. | -| `have_transactions` | Boolean | For a ledger, whether this server has already obtained the transaction section of that ledger. | +| `Field` | Type | Description | +| :-------------------- | :---------------------- | :--------------------------------------------------------------------------------------------------------------------------------- | +| `hash` | String | The hash of the item being fetched. | +| `have_header` | Boolean | For a ledger, whether this server has already obtained the ledger's header section. | +| `have_transactions` | Boolean | For a ledger, whether this server has already obtained the transaction section of that ledger. | | `needed_state_hashes` | Array of (Hash) Strings | The hash values of state objects still needed from this item. If more than 16 are needed, the response contains only the first 16. | -| `peers` | Number | The number of peers who have this item available. | -| `timeouts` | Number | The number of times that fetching this item has resulted in a timeout (2.5 seconds). | +| `peers` | Number | The number of peers who have this item available. | +| `timeouts` | Number | The number of times that fetching this item has resulted in a timeout (2.5 seconds). | ### Possible Errors diff --git a/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/get_counts.md b/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/get_counts.md index 263f7fd430..1429c794bc 100644 --- a/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/get_counts.md +++ b/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/get_counts.md @@ -1,10 +1,12 @@ --- seo: - description: Get statistics about the server's internals and memory usage. + description: Get statistics about the server's internals and memory usage. labels: - - Core Server + - Core Server --- + # get_counts + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/GetCounts.cpp "Source") The `get_counts` command provides various stats about the health of the server, mostly the number of objects of different types that it currently holds in memory. @@ -12,46 +14,53 @@ The `get_counts` command provides various stats about the health of the server, _The `get_counts` method is an [admin method](../index.md) that cannot be run by unprivileged users._ ### Request Format + An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": 90, - "command": "get_counts", - "min_count": 100 + "id": 90, + "command": "get_counts", + "min_count": 100 } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "get_counts", - "params": [ - { - "min_count": 100 - } - ] + "method": "get_counts", + "params": [ + { + "min_count": 100 + } + ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh #Syntax: get_counts [min_count] rippled get_counts 100 ``` + {% /tab %} {% /tabs %} The request includes the following parameters: -| `Field` | Type | Description | -|:------------|:--------------------------|:-----------------------------------| +| `Field` | Type | Description | +| :---------- | :------------------------ | :-------------------------------------------------- | | `min_count` | Number (Unsigned Integer) | Only return fields with a value at least this high. | ### Response Format @@ -61,43 +70,46 @@ An example of a successful response: {% tabs %} {% tab label="JSON-RPC" %} + ```json { - "result" : { - "AL_hit_rate" : 48.36725616455078, - "HashRouterEntry" : 3048, - "Ledger" : 46, - "NodeObject" : 10417, - "SLE_hit_rate" : 64.62035369873047, - "STArray" : 1299, - "STLedgerEntry" : 646, - "STObject" : 6987, - "STTx" : 4104, - "STValidation" : 610, - "Transaction" : 4069, - "dbKBLedger" : 10733, - "dbKBTotal" : 39069, - "dbKBTransaction" : 26982, - "fullbelow_size" : 0, - "historical_perminute" : 0, - "ledger_hit_rate" : 71.0565185546875, - "node_hit_rate" : 3.808214902877808, - "node_read_bytes" : 393611911, - "node_reads_hit" : 1283098, - "node_reads_total" : 679410, - "node_writes" : 1744285, - "node_written_bytes" : 794368909, - "status" : "success", - "treenode_cache_size" : 6650, - "treenode_track_size" : 598631, - "uptime" : "3 hours, 50 minutes, 27 seconds", - "write_load" : 0 - } + "result": { + "AL_hit_rate": 48.36725616455078, + "HashRouterEntry": 3048, + "Ledger": 46, + "NodeObject": 10417, + "SLE_hit_rate": 64.62035369873047, + "STArray": 1299, + "STLedgerEntry": 646, + "STObject": 6987, + "STTx": 4104, + "STValidation": 610, + "Transaction": 4069, + "dbKBLedger": 10733, + "dbKBTotal": 39069, + "dbKBTransaction": 26982, + "fullbelow_size": 0, + "historical_perminute": 0, + "ledger_hit_rate": 71.0565185546875, + "node_hit_rate": 3.808214902877808, + "node_read_bytes": 393611911, + "node_reads_hit": 1283098, + "node_reads_total": 679410, + "node_writes": 1744285, + "node_written_bytes": 794368909, + "status": "success", + "treenode_cache_size": 6650, + "treenode_track_size": 598631, + "uptime": "3 hours, 50 minutes, 27 seconds", + "write_load": 0 + } } ``` + {% /tab %} {% tab label="Commandline" %} + ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -135,23 +147,24 @@ Connecting to 127.0.0.1:5005 } } ``` + {% /tab %} {% /tabs %} The response follows the [standard format][]. The list of fields contained in the result is subject to change without notice, but it may contain any of the following (among others): -| `Field` | Type | Description | -|:--------------|:-------|:----------------------------------------------------| -| `Transaction` | Number | The number of `Transaction` objects in memory | -| `Ledger` | Number | The number of ledgers in memory | +| `Field` | Type | Description | +| :------------ | :----- | :------------------------------------------------------------- | +| `Transaction` | Number | The number of `Transaction` objects in memory | +| `Ledger` | Number | The number of ledgers in memory | | `uptime` | String | The amount of time this server has been running uninterrupted. | For most other entries, the value indicates the number of objects of that type currently in memory. ### Possible Errors -* Any of the [universal error types][]. -* `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. +- Any of the [universal error types][]. +- `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/index.md b/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/index.md index afebdfc473..5a59dceef5 100644 --- a/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/index.md +++ b/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/index.md @@ -4,9 +4,9 @@ parent: admin-api-methods.html metadata: indexPage: true --- + # Status and Debugging Methods Use these methods to check the status of the network and server. - {% child-pages /%} diff --git a/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/print.md b/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/print.md index eaee5cda3d..59bb0750de 100644 --- a/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/print.md +++ b/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/print.md @@ -1,34 +1,41 @@ --- seo: - description: Get information about internal subsystems. + description: Get information about internal subsystems. labels: - - Core Server + - Core Server --- + # print + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/Print.cpp "Source") The `print` command returns the current status of various internal subsystems, including peers, the ledger cleaner, and the resource manager. -*The `print` method is an [admin method](../index.md) that cannot be run by unprivileged users!* +_The `print` method is an [admin method](../index.md) that cannot be run by unprivileged users!_ ### Request Format + An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": "print_req_1", - "command": "print" + "id": "print_req_1", + "command": "print" } ``` + {% /tab %} {% tab label="Commandline" %} + ``` rippled print ``` + {% /tab %} {% /tabs %} @@ -42,6 +49,7 @@ An example of a successful response: {% tabs %} {% tab label="Commandline" %} + ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -227,6 +235,7 @@ Connecting to 127.0.0.1:5005 } ``` + {% /tab %} {% /tabs %} @@ -235,6 +244,6 @@ The response follows the [standard format][]. Additional fields in the result de ### Possible Errors -* Any of the [universal error types][]. +- Any of the [universal error types][]. {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_info.md b/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_info.md index c3ac1a3497..997c8f91e4 100644 --- a/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_info.md +++ b/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_info.md @@ -1,18 +1,19 @@ --- seo: - description: Get the server's validation settings, if configured as a validator. + description: Get the server's validation settings, if configured as a validator. labels: - - Core Server - - Blockchain + - Core Server + - Blockchain --- + # validator_info + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/ValidatorInfo.cpp "Source") The {% code-page-name /%} method returns the current validator settings of the server, if it is configured as a validator. _The {% code-page-name /%} method is an [admin method](../index.md) that cannot be run by unprivileged users._ - ### Request Format An example of the request format: @@ -20,33 +21,38 @@ An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { - "command": "{% $frontmatter.seo.title %}" + "command": "{% $frontmatter.seo.title %}" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "{% $frontmatter.seo.title %}" + "method": "{% $frontmatter.seo.title %}" } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh #Syntax: {% $frontmatter.seo.title %} rippled {% $frontmatter.seo.title %} ``` + {% /tab %} {% /tabs %} The request does not accept any parameters. - ### Response Format An example of a successful response: @@ -54,6 +60,7 @@ An example of a successful response: {% tabs %} {% tab label="WebSocket" %} + ```json { "result": { @@ -67,9 +74,11 @@ An example of a successful response: "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -84,9 +93,11 @@ An example of a successful response: } } ``` + {% /tab %} {% tab label="Commandline" %} + ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -102,23 +113,23 @@ Connecting to 127.0.0.1:5005 } } ``` + {% /tab %} {% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: -| `Field` | Type | Description | -|:--------|:-------|:----------------------------------------------------------| -| `domain` | String | _(May be omitted)_ The domain name associated with this validator, if one has been configured. -| `ephemeral_key` | String | _(May be omitted)_ The public key of the ephemeral key pair this server uses to sign validation messages, in [base58][]. This key changes if the validator's configured token changes. | -| `manifest` | String | _(May be omitted)_ The public "manifest" corresponding to this validator's configured token, [serialized to binary](../../../protocol/binary-format.md) and then encoded in base64. This field does not contain any private information. | -| `master_key` | String | The public key of this validator's master key pair, in [base58][]. This key uniquely identifies the validator and remains the same if the validator rotates ephemeral keys. If the server is configured using a `[validation_seed]` instead of a `[validator_token]`, this is the only field in the response. | -| `seq` | Number | _(May be omitted)_ A sequence number for this validator's configured validation token and settings. This number increases whenever the validator operator updates the validator's token to rotate ephemeral keys or change settings. | +| `Field` | Type | Description | +| :-------------- | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `domain` | String | _(May be omitted)_ The domain name associated with this validator, if one has been configured. | +| `ephemeral_key` | String | _(May be omitted)_ The public key of the ephemeral key pair this server uses to sign validation messages, in [base58][]. This key changes if the validator's configured token changes. | +| `manifest` | String | _(May be omitted)_ The public "manifest" corresponding to this validator's configured token, [serialized to binary](../../../protocol/binary-format.md) and then encoded in base64. This field does not contain any private information. | +| `master_key` | String | The public key of this validator's master key pair, in [base58][]. This key uniquely identifies the validator and remains the same if the validator rotates ephemeral keys. If the server is configured using a `[validation_seed]` instead of a `[validator_token]`, this is the only field in the response. | +| `seq` | Number | _(May be omitted)_ A sequence number for this validator's configured validation token and settings. This number increases whenever the validator operator updates the validator's token to rotate ephemeral keys or change settings. | For more information on validator tokens and key rotation, see the [validator-keys-tool Guide](https://github.com/ripple/validator-keys-tool/blob/master/doc/validator-keys-tool-guide.md). - ### Possible Errors - Any of the [universal error types][]. diff --git a/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_list_sites.md b/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_list_sites.md index 838ef29a86..6111929ca3 100644 --- a/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_list_sites.md +++ b/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_list_sites.md @@ -1,47 +1,54 @@ --- seo: - description: Get information about sites that publish validator lists. + description: Get information about sites that publish validator lists. labels: - - Core Server - - Blockchain + - Core Server + - Blockchain --- + # validator_list_sites + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/ValidatorListSites.cpp "Source") The `validator_list_sites` command returns status information of sites serving validator lists. -*The `validator_list_sites` method is an [admin method](../index.md) that cannot be run by unprivileged users!* +_The `validator_list_sites` method is an [admin method](../index.md) that cannot be run by unprivileged users!_ ### Request Format + An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": 1, - "command": "validator_list_sites" + "id": 1, + "command": "validator_list_sites" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "validator_list_sites", - "params": [ - {} - ] + "method": "validator_list_sites", + "params": [{}] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh #Syntax: validator_list_sites rippled validator_list_sites ``` + {% /tab %} {% /tabs %} @@ -55,6 +62,7 @@ An example of a successful response: {% tabs %} {% tab label="WebSocket" %} + ```json { "id":5, @@ -73,9 +81,11 @@ An example of a successful response: } } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -93,9 +103,11 @@ An example of a successful response: } } ``` + {% /tab %} {% tab label="Commandline" %} + ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -114,6 +126,7 @@ Connecting to 127.0.0.1:5005 } } ``` + {% /tab %} {% /tabs %} @@ -121,30 +134,30 @@ Connecting to 127.0.0.1:5005 The response follows the [standard format][], with a successful result containing the following field: | `Field` | Type | Description | -|:------------------|:------|----------------------------------| +| :---------------- | :---- | -------------------------------- | | `validator_sites` | Array | Array of validator site objects. | Each member of the `validator_sites` field array is an object with the following fields: -| `Field` | Type | Description | -|:-----------------------|:-----------------|:--------------------------------| +| `Field` | Type | Description | +| :--------------------- | :--------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `last_refresh_status` | String | If present, shows the status of the most recent refresh of the site. If missing, the site has not yet been successfully queried. See **Site Status Values** below for possible states and their meanings. | -| `last_refresh_time` | String | Human readable time when the site was last queried. If missing, the site has not yet been successfully queried. | -| `refresh_interval_min` | Unsigned Integer | The number of minutes between refresh attempts. | -| `uri` | String | The URI of the site. | +| `last_refresh_time` | String | Human readable time when the site was last queried. If missing, the site has not yet been successfully queried. | +| `refresh_interval_min` | Unsigned Integer | The number of minutes between refresh attempts. | +| `uri` | String | The URI of the site. | #### Site Status Values The `last_refresh_status` field can have the following values: -| Value | Meaning | -|:----------------------|:-----------------------------------------------------| -| `accepted` | The site provided a valid list, which your server is now using. | -| `same_sequence` | The site provided a list with the same sequence number as your existing list, so your server continued using its existing list. | -| `unsupported_version` | The site provided a list, but your server does not support the list format version number in the list. You might need to [update `rippled`](../../../../infrastructure/installation/index.md) to a newer software version. | +| Value | Meaning | +| :-------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `accepted` | The site provided a valid list, which your server is now using. | +| `same_sequence` | The site provided a list with the same sequence number as your existing list, so your server continued using its existing list. | +| `unsupported_version` | The site provided a list, but your server does not support the list format version number in the list. You might need to [update `rippled`](../../../../infrastructure/installation/index.md) to a newer software version. | | `untrusted` | The site provided a list from the site that is signed by a cryptographic key pair your server is not configured to trust. You may want to check for typos in your `validators.txt` file and check to see if the list publisher changed their cryptographic keys. | -| `stale` | The site provided a list with a lower sequence number than the list your server is already using. | -| `invalid` | The site provided a list or signature that was not validly formed. | +| `stale` | The site provided a list with a lower sequence number than the list your server is already using. | +| `invalid` | The site provided a list or signature that was not validly formed. | ### Possible Errors diff --git a/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validators.md b/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validators.md index c23bcba26e..330aef8ef3 100644 --- a/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validators.md +++ b/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validators.md @@ -1,47 +1,54 @@ --- seo: - description: Get information about the current validators. + description: Get information about the current validators. labels: - - Core Server - - Blockchain + - Core Server + - Blockchain --- + # validators + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/Validators.cpp "Source") The `validators` command returns human readable information about the current list of published and [trusted validators](../../../../concepts/consensus-protocol/index.md#trust-based-validation) used by the server. -*The `validators` method is an [admin method](../index.md) that cannot be run by unprivileged users!* +_The `validators` method is an [admin method](../index.md) that cannot be run by unprivileged users!_ ### Request Format + An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": "validators_example", "command": "validators" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "validators", - "params": [ - {} - ] + "method": "validators", + "params": [{}] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh #Syntax: validators rippled validators ``` + {% /tab %} {% /tabs %} @@ -55,6 +62,7 @@ An example of a successful response: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": "validators_example", @@ -192,9 +200,11 @@ An example of a successful response: "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -332,9 +342,11 @@ An example of a successful response: } } ``` + {% /tab %} {% tab label="Commandline" %} + ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -473,32 +485,33 @@ Connecting to 127.0.0.1:5005 } } ``` + {% /tab %} {% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: -| `Field` | Type | Description | -|:-------------------------|:-------|:-----------------------------------------| -| `local_static_keys` | Array | Array of public keys for validators explicitly trusted in the config file. | -| `publisher_lists` | Array | Array of **Publisher List** objects. (See below for details.) | -| `signing_keys` | Object | Mapping from master public key to current ephemeral public key for all currently-trusted validators. Excludes validators that don't use an ephemeral signing key. | -| `trusted_validator_keys` | Array | Array of master public keys of all currently trusted validators. | -| `validation_quorum` | Number | Minimum number of trusted validations required to validate a ledger version. Some circumstances may cause the server to require more validations. | -| `validator_list.expiration` | String | The human readable time when the current validator list expires. There are two special cases: the string `unknown` if the server has not yet loaded a published validator list, or the string `never` if the server uses a static validator list. | -| `validator_list.validator_list_threshold` | Number | The threshold number of UNL publisher lists a validator must be one for the server to use it. {% badge href="https://github.com/XRPLF/rippled/releases/tag/2.4.0" %}New in: rippled 2.4.0{% /badge %} | +| `Field` | Type | Description | +| :---------------------------------------- | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `local_static_keys` | Array | Array of public keys for validators explicitly trusted in the config file. | +| `publisher_lists` | Array | Array of **Publisher List** objects. (See below for details.) | +| `signing_keys` | Object | Mapping from master public key to current ephemeral public key for all currently-trusted validators. Excludes validators that don't use an ephemeral signing key. | +| `trusted_validator_keys` | Array | Array of master public keys of all currently trusted validators. | +| `validation_quorum` | Number | Minimum number of trusted validations required to validate a ledger version. Some circumstances may cause the server to require more validations. | +| `validator_list.expiration` | String | The human readable time when the current validator list expires. There are two special cases: the string `unknown` if the server has not yet loaded a published validator list, or the string `never` if the server uses a static validator list. | +| `validator_list.validator_list_threshold` | Number | The threshold number of UNL publisher lists a validator must be one for the server to use it. {% badge href="https://github.com/XRPLF/rippled/releases/tag/2.4.0" %}New in: rippled 2.4.0{% /badge %} | Each member of the `publisher_lists` array is a **Publisher List** object with the following fields: -| `Field` | Type | Description | -|:-------------------|:-----------------|:-------------------------------------| +| `Field` | Type | Description | +| :----------------- | :--------------- | :------------------------------------------------------------------------------------- | | `available` | Boolean | If `false`, the validator keys in `list` may no longer be supported by this publisher. | -| `expiration` | String | The human readable time when this published list is scheduled to expire. | -| `list` | Array | Array of published validator keys in the list. | -| `pubkey_publisher` | String | Ed25519 or ECDSA public key of the list publisher, as hexadecimal. | -| `seq` | Unsigned Integer | The sequence number of this published list. | -| `version` | Unsigned Integer | The version of the list format. | +| `expiration` | String | The human readable time when this published list is scheduled to expire. | +| `list` | Array | Array of published validator keys in the list. | +| `pubkey_publisher` | String | Ed25519 or ECDSA public key of the list publisher, as hexadecimal. | +| `seq` | Unsigned Integer | The sequence number of this published list. | +| `version` | Unsigned Integer | The version of the list format. | ### Possible Errors diff --git a/docs/references/http-websocket-apis/api-conventions/ctid.md b/docs/references/http-websocket-apis/api-conventions/ctid.md index 1169656ed7..0807293796 100644 --- a/docs/references/http-websocket-apis/api-conventions/ctid.md +++ b/docs/references/http-websocket-apis/api-conventions/ctid.md @@ -2,10 +2,11 @@ html: ctid.html parent: api-conventions.html seo: - description: A Compact Transaction Identifier (CTID) is a short string that uniquely identifies a validated transaction across any chain. + description: A Compact Transaction Identifier (CTID) is a short string that uniquely identifies a validated transaction across any chain. labels: - Development --- + # Compact Transaction Identifier A Compact Transaction Identifier (CTID) is a unique identifier for a validated transaction that applies across any [network](../../../concepts/networks-and-servers/parallel-networks.md), not just the XRP Ledger Mainnet. diff --git a/docs/references/http-websocket-apis/api-conventions/error-formatting.md b/docs/references/http-websocket-apis/api-conventions/error-formatting.md index a3da409d30..3b568d2ead 100644 --- a/docs/references/http-websocket-apis/api-conventions/error-formatting.md +++ b/docs/references/http-websocket-apis/api-conventions/error-formatting.md @@ -2,22 +2,23 @@ html: error-formatting.html parent: api-conventions.html seo: - description: Error formats and common error codes for WebSocket, JSON-RPC, and Commandline interfaces. + description: Error formats and common error codes for WebSocket, JSON-RPC, and Commandline interfaces. labels: - Development --- + # Error Formatting It is impossible to list all the possible ways an error can occur. Some may occur in the transport layer (for example, loss of network connectivity), in which case the results vary depending on what client and transport you are using. However, if the `rippled` server successfully receives your request, it tries to respond in a standardized error format. {% admonition type="warning" name="Caution" %}When your request results in an error, the entire request is copied back as part of the response, so that you can try to debug the error. However, this also includes any secrets that were passed as part of the request. When sharing error messages, be very careful not to accidentally expose important account secrets to others.{% /admonition %} - Some example errors: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 3, @@ -33,9 +34,11 @@ Some example errors: } } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json HTTP Status: 200 OK @@ -52,39 +55,40 @@ HTTP Status: 200 OK } } ``` + {% /tab %} {% tab label="Commandline" %} + ```json { - "result": { - "error": "ledgerIndexMalformed", - "request": { - "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "command": "account_info", - "ledger_index": "-", - "strict": true - }, - "status": "error" - } + "result": { + "error": "ledgerIndexMalformed", + "request": { + "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "command": "account_info", + "ledger_index": "-", + "strict": true + }, + "status": "error" + } } ``` + {% /tab %} {% /tabs %} - ## WebSocket Format -| `Field` | Type | Description | -|:----------|:---------|:------------------------------------------------------| -| `id` | (Varies) | ID provided in the Web Socket request that prompted this response | -| `status` | String | `"error"` if the request caused an error | -| `type` | String | Typically `"response"`, which indicates a successful response to a command. | -| `error` | String | A unique code for the type of error that occurred | -| `request` | Object | A copy of the request that prompted this error, in JSON format. **Caution:** If the request contained any secrets, they are copied here! | -| `api_version` | Number | _(May be omitted)_ The `api_version` specified in the request, if any. | - +| `Field` | Type | Description | +| :------------ | :------- | :--------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | (Varies) | ID provided in the Web Socket request that prompted this response | +| `status` | String | `"error"` if the request caused an error | +| `type` | String | Typically `"response"`, which indicates a successful response to a command. | +| `error` | String | A unique code for the type of error that occurred | +| `request` | Object | A copy of the request that prompted this error, in JSON format. **Caution:** If the request contained any secrets, they are copied here! | +| `api_version` | Number | _(May be omitted)_ The `api_version` specified in the request, if any. | ## JSON-RPC Format @@ -97,14 +101,13 @@ Null method For other errors that returned with HTTP status code 200 OK, the responses are formatted in JSON, with the following fields: -| `Field` | Type | Description | -|:-----------------|:-------|:-------------------------------------------------| -| `result` | Object | Object containing the response to the query | -| `result.error` | String | A unique code for the type of error that occurred | -| `result.status` | String | `"error"` if the request caused an error | +| `Field` | Type | Description | +| :--------------- | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `result` | Object | Object containing the response to the query | +| `result.error` | String | A unique code for the type of error that occurred | +| `result.status` | String | `"error"` if the request caused an error | | `result.request` | Object | A copy of the request that prompted this error, in JSON format. **Caution:** If the request contained any account secrets, they are copied here! **Note:** The request is re-formatted in WebSocket format, regardless of the request made. | - ## Universal Errors All methods can potentially return any of the following values for the `error` code: @@ -113,9 +116,9 @@ All methods can potentially return any of the following values for the `error` c - `failedToForward` - (Clio servers only) The server tried to forward this request to a `rippled` server, but the connection failed. - `invalid_API_version` - The server does not support the [API version number](request-formatting.md#api-versioning) from the request. - `jsonInvalid` - (WebSocket only) The request is not a proper JSON object. - - JSON-RPC returns a 400 Bad Request HTTP error in this case instead. + - JSON-RPC returns a 400 Bad Request HTTP error in this case instead. - `missingCommand` - (WebSocket only) The request did not specify a `command` field. - - JSON-RPC returns a 400 Bad Request HTTP error in this case instead. + - JSON-RPC returns a 400 Bad Request HTTP error in this case instead. - `noClosed` - The server does not have a closed ledger, typically because it has not finished starting up. - `noCurrent` - The server does not know what the current ledger is, due to high load, network problems, validator failures, incorrect configuration, or some other problem. - `noNetwork` - The server is having trouble connecting to the rest of the XRP Ledger peer-to-peer network (and is not running in stand-alone mode). diff --git a/docs/references/http-websocket-apis/api-conventions/index.md b/docs/references/http-websocket-apis/api-conventions/index.md index 07d0161e58..3dc5f40ff9 100644 --- a/docs/references/http-websocket-apis/api-conventions/index.md +++ b/docs/references/http-websocket-apis/api-conventions/index.md @@ -2,15 +2,15 @@ html: api-conventions.html parent: http-websocket-apis.html seo: - description: Common conventions used across the XRP Ledger's HTTP APIs. + description: Common conventions used across the XRP Ledger's HTTP APIs. metadata: indexPage: true --- + # API Conventions This section describes data types and formats of the HTTP APIs (JSON-RPC and WebSocket) as implemented in [the `rippled` server](../../../concepts/networks-and-servers/index.md). For information on the XRP Ledger protocol that applies to all APIs, see [Protocol Reference](../../protocol/index.md). - {% child-pages /%} diff --git a/docs/references/http-websocket-apis/api-conventions/ledger-entry-short-names.md b/docs/references/http-websocket-apis/api-conventions/ledger-entry-short-names.md index 0aa266f05b..9c3020958f 100644 --- a/docs/references/http-websocket-apis/api-conventions/ledger-entry-short-names.md +++ b/docs/references/http-websocket-apis/api-conventions/ledger-entry-short-names.md @@ -4,35 +4,35 @@ Some API methods, specifically the [account_objects method][] and [ledger_data m The "Ownable" column indicates whether the ledger entry type can appear in owner directories. Ledger entries that are not ownable cannot appear in `account_objects` responses and cannot be used as a `type` filter in that method. -| Canonical Name | Short Name | Ownable | Related Amendment | -| -------------------- | --------------------- | ------- |---| -| `AccountRoot` | `account` | No | | -| `Amendments` | `amendments` | No | | -| `AMM` | `amm` | No | {% amendment-disclaimer name="AMM" compact=true /%} | -| `Bridge` | `bridge` | Yes | {% amendment-disclaimer name="XChainBridge" compact=true /%} | -| `Check` | `check` | Yes | {% amendment-disclaimer name="Checks" compact=true /%} | -| `Credential` | `credential` | Yes | {% amendment-disclaimer name="Credentials" compact=true /%} | -| `Delegate` | `delegate` | Yes | {% amendment-disclaimer name="PermissionDelegation" compact=true /%} | -| `DepositPreauth` | `deposit_preauth` | Yes | {% amendment-disclaimer name="DepositPreauth" compact=true /%} | -| `DID` | `did` | Yes | {% amendment-disclaimer name="DID" compact=true /%} | -| `DirectoryNode` | `directory` | No | | -| `Escrow` | `escrow` | Yes | | -| `FeeSettings` | `fee` | No | | -| `LedgerHashes` | `hashes` | No | | -| `MPToken` | `mptoken` | Yes | {% amendment-disclaimer name="MPTokensV1" compact=true /%} | -| `MPTokenIssuance` | `mpt_issuance` | Yes | {% amendment-disclaimer name="MPTokensV1" compact=true /%} | -| `NegativeUNL` | `nunl` | No | {% amendment-disclaimer name="NegativeUNL" compact=true /%} | -| `NFTokenOffer` | `nft_offer` | Yes | {% amendment-disclaimer name="NonFungibleTokensV1_1" compact=true /%} | -| `NFTokenPage` | `nft_page` | Yes | {% amendment-disclaimer name="NonFungibleTokensV1_1" compact=true /%} | -| `Offer` | `offer` | Yes | | -| `Oracle` | `oracle` | Yes | {% amendment-disclaimer name="PriceOracle" compact=true /%} | -| `PayChannel` | `payment_channel` | Yes | | -| `PermissionedDomain` | `permissioned_domain` | Yes | {% amendment-disclaimer name="PermissionedDomains" compact=true /%} | -| `RippleState` | `state` | Yes | | -| `SignerList` | `signer_list` | Yes | | -| `Ticket` | `ticket` | Yes | {% amendment-disclaimer name="TicketBatch" compact=true /%} | -| `XChainOwnedClaimID` | `xchain_owned_claim_id` | Yes | {% amendment-disclaimer name="XChainBridge" compact=true /%} | -| `XChainOwnedCreate``AccountClaimID` | `xchain_owned_``create_account_claim_id` | Yes | {% amendment-disclaimer name="XChainBridge" compact=true /%} | +| Canonical Name | Short Name | Ownable | Related Amendment | +| ---------------------------------------- | --------------------------------------------- | ------- | --------------------------------------------------------------------- | +| `AccountRoot` | `account` | No | | +| `Amendments` | `amendments` | No | | +| `AMM` | `amm` | No | {% amendment-disclaimer name="AMM" compact=true /%} | +| `Bridge` | `bridge` | Yes | {% amendment-disclaimer name="XChainBridge" compact=true /%} | +| `Check` | `check` | Yes | {% amendment-disclaimer name="Checks" compact=true /%} | +| `Credential` | `credential` | Yes | {% amendment-disclaimer name="Credentials" compact=true /%} | +| `Delegate` | `delegate` | Yes | {% amendment-disclaimer name="PermissionDelegation" compact=true /%} | +| `DepositPreauth` | `deposit_preauth` | Yes | {% amendment-disclaimer name="DepositPreauth" compact=true /%} | +| `DID` | `did` | Yes | {% amendment-disclaimer name="DID" compact=true /%} | +| `DirectoryNode` | `directory` | No | | +| `Escrow` | `escrow` | Yes | | +| `FeeSettings` | `fee` | No | | +| `LedgerHashes` | `hashes` | No | | +| `MPToken` | `mptoken` | Yes | {% amendment-disclaimer name="MPTokensV1" compact=true /%} | +| `MPTokenIssuance` | `mpt_issuance` | Yes | {% amendment-disclaimer name="MPTokensV1" compact=true /%} | +| `NegativeUNL` | `nunl` | No | {% amendment-disclaimer name="NegativeUNL" compact=true /%} | +| `NFTokenOffer` | `nft_offer` | Yes | {% amendment-disclaimer name="NonFungibleTokensV1_1" compact=true /%} | +| `NFTokenPage` | `nft_page` | Yes | {% amendment-disclaimer name="NonFungibleTokensV1_1" compact=true /%} | +| `Offer` | `offer` | Yes | | +| `Oracle` | `oracle` | Yes | {% amendment-disclaimer name="PriceOracle" compact=true /%} | +| `PayChannel` | `payment_channel` | Yes | | +| `PermissionedDomain` | `permissioned_domain` | Yes | {% amendment-disclaimer name="PermissionedDomains" compact=true /%} | +| `RippleState` | `state` | Yes | | +| `SignerList` | `signer_list` | Yes | | +| `Ticket` | `ticket` | Yes | {% amendment-disclaimer name="TicketBatch" compact=true /%} | +| `XChainOwnedClaimID` | `xchain_owned_claim_id` | Yes | {% amendment-disclaimer name="XChainBridge" compact=true /%} | +| `XChainOwnedCreate``AccountClaimID` | `xchain_owned_``create_account_claim_id` | Yes | {% amendment-disclaimer name="XChainBridge" compact=true /%} | diff --git a/docs/references/http-websocket-apis/api-conventions/markers-and-pagination.md b/docs/references/http-websocket-apis/api-conventions/markers-and-pagination.md index da6c057784..bf7df5a004 100644 --- a/docs/references/http-websocket-apis/api-conventions/markers-and-pagination.md +++ b/docs/references/http-websocket-apis/api-conventions/markers-and-pagination.md @@ -2,8 +2,9 @@ html: markers-and-pagination.html parent: api-conventions.html seo: - description: Convention for paginating large queries into multiple responses. + description: Convention for paginating large queries into multiple responses. --- + # Markers and Pagination Some methods return more data than can efficiently fit into one response. When there are more results than contained, the response includes a `marker` field. You can use this to retrieve more pages of data across multiple calls. In each request, pass the `marker` value from the previous response to resume from the point where you left off. If the `marker` is omitted from a response, then you have reached the end of the data set. diff --git a/docs/references/http-websocket-apis/api-conventions/rate-limiting.md b/docs/references/http-websocket-apis/api-conventions/rate-limiting.md index 48e81ad812..b01173ece3 100644 --- a/docs/references/http-websocket-apis/api-conventions/rate-limiting.md +++ b/docs/references/http-websocket-apis/api-conventions/rate-limiting.md @@ -2,10 +2,11 @@ html: rate-limiting.html parent: api-conventions.html seo: - description: Information on how public APIs limit clients from making too many requests. + description: Information on how public APIs limit clients from making too many requests. labels: - Core Server --- + # Rate Limiting The `rippled` server limits the rate at which API clients can make requests on public APIs. Rate limiting is based on the IP address of the client, so clients behind [network address translation](https://en.wikipedia.org/wiki/Network_address_translation) share a limit based on their public IP address. @@ -23,8 +24,8 @@ For the WebSocket API, the server closes the connection and provides a close mes ```js const WebSocket = require('ws') const ws = new WebSocket('ws://localhost:6007/') -ws.on('close', (code,reason) => { - console.log("Disconnected. \ncode: ", code, "\nreason: ", reason) +ws.on('close', (code, reason) => { + console.log('Disconnected. \ncode: ', code, '\nreason: ', reason) }) // If rate limited, prints: @@ -46,6 +47,7 @@ Server is overloaded ``` ## Rate Per Request + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/libxrpl/resource/Fees.cpp "Source") The server calculates a client's usage rate based on the number of requests made over time, and weighs different types of requests based on approximately how much work the server must do to serve them. Follow-up messages from the server for the [subscribe method][] and [path_find method][] also count towards a client's usage rate. @@ -55,13 +57,13 @@ The usage rate drops off exponentially over time, so a client that does not make ## See Also - **Concepts:** - - [The `rippled` Server](../../../concepts/networks-and-servers/index.md) - - [Software Ecosystem](../../../introduction/software-ecosystem.md) + - [The `rippled` Server](../../../concepts/networks-and-servers/index.md) + - [Software Ecosystem](../../../introduction/software-ecosystem.md) - **Tutorials:** - - [Getting Started with XRP Ledger APIs](../../../tutorials/http-websocket-apis/build-apps/get-started.md) - - [Troubleshooting rippled](../../../infrastructure/troubleshooting/index.md) + - [Getting Started with XRP Ledger APIs](../../../tutorials/http-websocket-apis/build-apps/get-started.md) + - [Troubleshooting rippled](../../../infrastructure/troubleshooting/index.md) - **References:** - - [rippled API Reference](../index.md) - - [Error Formatting](error-formatting.md) + - [rippled API Reference](../index.md) + - [Error Formatting](error-formatting.md) {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/http-websocket-apis/api-conventions/request-formatting.md b/docs/references/http-websocket-apis/api-conventions/request-formatting.md index e9d2ff0cf2..1f9e867f54 100644 --- a/docs/references/http-websocket-apis/api-conventions/request-formatting.md +++ b/docs/references/http-websocket-apis/api-conventions/request-formatting.md @@ -1,7 +1,8 @@ --- seo: - description: Standard request format, with examples, for the WebSocket, JSON-RPC, and Commandline interfaces. + description: Standard request format, with examples, for the WebSocket, JSON-RPC, and Commandline interfaces. --- + # Request Formatting ## Example Request @@ -9,6 +10,7 @@ seo: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": "example_ws_request_1", @@ -18,9 +20,11 @@ seo: "api_version": 2 } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json POST http://s1.ripple.com:51234/ Content-Type: application/json @@ -36,27 +40,29 @@ Content-Type: application/json ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh rippled account_info r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 validated ``` + {% /tab %} {% /tabs %} - -## WebSocket Format +## WebSocket Format After you open a WebSocket to the `rippled` server, you can send commands as a [JSON](https://en.wikipedia.org/wiki/JSON) object with the following fields: -| Field | Type | Description | -|:--------------------|:----------|:-------------------------------------------| -| `command` | String | The name of the [API method](../public-api-methods/index.md). | +| Field | Type | Description | +| :------------------ | :-------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `command` | String | The name of the [API method](../public-api-methods/index.md). | | `id` | (Various) | _(Optional)_ A unique value to identify this request. The response to this request uses the same `id` field. This way, even if responses arrive out of order, you know which request prompted which response. | -| `api_version` | Number | _(Optional)_ The API version to use. For details, see [API Versioning](../index.md#api-versioning). | -| (Method Parameters) | (Various) | Provide any parameters to the method at the top level. | +| `api_version` | Number | _(Optional)_ The API version to use. For details, see [API Versioning](../index.md#api-versioning). | +| (Method Parameters) | (Various) | Provide any parameters to the method at the top level. | See [Response Formatting](response-formatting.md) for the response from the server. @@ -70,18 +76,17 @@ If you plan on making multiple requests, use [Keep-Alives](http://tools.ietf.org Send request body as a [JSON](https://en.wikipedia.org/wiki/JSON) object with the following fields: - -| Field | Type | Description | -|:--------------------|:----------|:-------------------------------------------| -| `method` | String | The name of the [API method](../public-api-methods/index.md). | -| `params` | Array | _(Optional)_ A **one-item array** containing a nested JSON object with the parameters to this method. You may omit this field if the method does not require any parameters. | +| Field | Type | Description | +| :------- | :----- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `method` | String | The name of the [API method](../public-api-methods/index.md). | +| `params` | Array | _(Optional)_ A **one-item array** containing a nested JSON object with the parameters to this method. You may omit this field if the method does not require any parameters. | The object inside the `params` array can contain the following fields: -| Field | Type | Description | -|:--------------------|:----------|:-------------------------------------------| +| Field | Type | Description | +| :------------------ | :-------- | :--------------------------------------------------------------------------------------- | | `api_version` | Number | _(Optional)_ The API version to use. For details, see [API Versioning](#api-versioning). | -| (Method Parameters) | (Various) | Provide any parameters to the method here. | +| (Method Parameters) | (Various) | Provide any parameters to the method here. | See [Response Formatting](response-formatting.md) for the response from the server. diff --git a/docs/references/http-websocket-apis/api-conventions/response-formatting.md b/docs/references/http-websocket-apis/api-conventions/response-formatting.md index df89cfee59..ecc3533480 100644 --- a/docs/references/http-websocket-apis/api-conventions/response-formatting.md +++ b/docs/references/http-websocket-apis/api-conventions/response-formatting.md @@ -1,7 +1,8 @@ --- seo: - description: Standard response format, with examples, for the WebSocket, JSON-RPC, and Commandline interfaces. + description: Standard response format, with examples, for the WebSocket, JSON-RPC, and Commandline interfaces. --- + # Response Formatting Responses are formatted slightly differently based on whether the method is called with the WebSocket, JSON-RPC, or Commandline interfaces. The Commandline and JSON-RPC interfaces use the same format because the Commandline interface calls JSON-RPC. @@ -10,33 +11,33 @@ The fields of a successful response include: {% tabs %} {% tab label="WebSocket" %} -| Field | Type | Required? | Description | +| Field | Type | Required? | Description | |:----------------|:---------|:----------|-------------| -| `status` | String | Yes | The value `success` indicates the request was successfully received and understood by the server. Some [client libraries](../../client-libraries.md) omit this field on success. | -| `type` | String | Yes | The value `response` indicates a direct response to an API request. [Asynchronous notifications](../public-api-methods/subscription-methods/subscribe.md) use a different value such as `ledgerClosed` or `transaction`. | -| `result` | Object | Yes | The result of the query; contents vary depending on the API method. | -| `id` | (Varies) | No | Arbitrary ID provided by the request that prompted this response. Omitted if the request didn't specify an ID. | -| `warning` | String | No | If this field is provided, the value is the string `load`. This means the client is approaching the [rate limiting](rate-limiting.md) threshold where the server will disconnect this client. | -| `warnings` | Array | No | If this field is provided, it contains one or more **Warnings Objects** with important warnings. For details, see [API Warnings](#api-warnings). | -| `forwarded` | Boolean | No | If `true`, this request and response have been forwarded from a Clio server to a P2P Mode server (and back) because the request requires data that is not available from Clio. The default is `false`. | +| `status` | String | Yes | The value `success` indicates the request was successfully received and understood by the server. Some [client libraries](../../client-libraries.md) omit this field on success. | +| `type` | String | Yes | The value `response` indicates a direct response to an API request. [Asynchronous notifications](../public-api-methods/subscription-methods/subscribe.md) use a different value such as `ledgerClosed` or `transaction`. | +| `result` | Object | Yes | The result of the query; contents vary depending on the API method. | +| `id` | (Varies) | No | Arbitrary ID provided by the request that prompted this response. Omitted if the request didn't specify an ID. | +| `warning` | String | No | If this field is provided, the value is the string `load`. This means the client is approaching the [rate limiting](rate-limiting.md) threshold where the server will disconnect this client. | +| `warnings` | Array | No | If this field is provided, it contains one or more **Warnings Objects** with important warnings. For details, see [API Warnings](#api-warnings). | +| `forwarded` | Boolean | No | If `true`, this request and response have been forwarded from a Clio server to a P2P Mode server (and back) because the request requires data that is not available from Clio. The default is `false`. | {% /tab %} {% tab label="JSON-RPC" %} -| Field | Type | Required? | Description | +| Field | Type | Required? | Description | |:----------------|:---------|:----------|-------------| -| `result` | Object | Yes | The result of the query; contents vary depending on the command. | -| `result.status` | String | Yes | The value `success` indicates the request was successfully received and understood by the server. Some [client libraries](../../client-libraries.md) omit this field on success. | -| `warning` | String | No | If this field is provided, the value is the string `load`. This means the client is approaching the [rate limiting](rate-limiting.md) threshold where the server will disconnect this client. | -| `warnings` | Array | No | If this field is provided, it contains one or more **Warnings Objects** with important warnings. For details, see [API Warnings](#api-warnings). | -| `forwarded` | Boolean | No | If `true`, this request and response have been forwarded from a Clio server to a P2P Mode server (and back) because the request requires data that is not available from Clio. The default is `false`. | +| `result` | Object | Yes | The result of the query; contents vary depending on the command. | +| `result.status` | String | Yes | The value `success` indicates the request was successfully received and understood by the server. Some [client libraries](../../client-libraries.md) omit this field on success. | +| `warning` | String | No | If this field is provided, the value is the string `load`. This means the client is approaching the [rate limiting](rate-limiting.md) threshold where the server will disconnect this client. | +| `warnings` | Array | No | If this field is provided, it contains one or more **Warnings Objects** with important warnings. For details, see [API Warnings](#api-warnings). | +| `forwarded` | Boolean | No | If `true`, this request and response have been forwarded from a Clio server to a P2P Mode server (and back) because the request requires data that is not available from Clio. The default is `false`. | {% /tab %} {% /tabs %} - ## Example Successful Response {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 2, @@ -58,9 +59,11 @@ The fields of a successful response include: } } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json HTTP Status: 200 OK @@ -82,42 +85,44 @@ HTTP Status: 200 OK } } ``` + {% /tab %} {% tab label="Commandline" %} + ```json { - "result": { - "account_data": { - "Account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "Balance": "27389517749", - "Flags": 0, - "LedgerEntryType": "AccountRoot", - "OwnerCount": 18, - "PreviousTxnID": "B6B410172C0B65575D89E464AF5B99937CC568822929ABF87DA75CBD11911932", - "PreviousTxnLgrSeq": 6592159, - "Sequence": 1400, - "index": "4F83A2CF7E70F77F79A307E6A472BFC2585B806A70833CCD1C26105BAE0D6E05" - }, - "ledger_index": 6761012, - "status": "success" - } + "result": { + "account_data": { + "Account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "Balance": "27389517749", + "Flags": 0, + "LedgerEntryType": "AccountRoot", + "OwnerCount": 18, + "PreviousTxnID": "B6B410172C0B65575D89E464AF5B99937CC568822929ABF87DA75CBD11911932", + "PreviousTxnLgrSeq": 6592159, + "Sequence": 1400, + "index": "4F83A2CF7E70F77F79A307E6A472BFC2585B806A70833CCD1C26105BAE0D6E05" + }, + "ledger_index": 6761012, + "status": "success" + } } ``` + {% /tab %} {% /tabs %} - ## API Warnings When the response contains a `warnings` array, each member of the array represents a separate warning from the server. Each such **Warning Object** contains the following fields: -| Field | Type | Description | -|:----------|:-------|:--------------------------------------------------------| -| `id` | Number | A unique numeric code for this warning message. | +| Field | Type | Description | +| :-------- | :----- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | Number | A unique numeric code for this warning message. | | `message` | String | A human-readable string describing the cause of this message. Do not write software that relies the contents of this message; use the `id` (and `details`, if applicable) to identify the warning instead. | -| `details` | Object | _(May be omitted)_ Additional information about this warning. The contents vary depending on the type of warning. | +| `details` | Object | _(May be omitted)_ Additional information about this warning. The contents vary depending on the type of warning. | The following reference describes all possible warnings. @@ -144,14 +149,13 @@ The server only sends this warning if the client is [connected as an admin](../. This warning includes a `details` field with the following fields: -| Field | Type | Description | -|:--------------------|:-------|:----------------------------------------------| +| Field | Type | Description | +| :------------------ | :----- | :------------------------------------------------------------------------------------------------------------------ | | `expected_date` | Number | The time that the first unsupported amendment is expected to become enabled, in [seconds since the Ripple Epoch][]. | -| `expected_date_UTC` | String | The timestamp, in UTC, when the first unsupported amendment is expected to become enabled. | +| `expected_date_UTC` | String | The timestamp, in UTC, when the first unsupported amendment is expected to become enabled. | Due to the variation in ledger close times, these times are approximate. It is also possible that the amendment fails to maintain support from >80% of validators until the specified time, and does not become enabled at the expected time. The server will not become amendment blocked so long as the unsupported amendments do not become enabled. - ### 1002. This server is amendment blocked Example warning: @@ -188,21 +192,20 @@ It is generally safe to ignore this warning. {% admonition type="warning" name="Caution" %}If you request ledger data without explicitly [specifying a ledger version][Specifying Ledgers], Clio uses the latest validated ledger by default instead of the current in-progress ledger.{% /admonition %} - ## See Also - [Request Formatting](request-formatting.md) - [Error Formatting](error-formatting.md) for unsuccessful API responses. - **Concepts:** - - [The `rippled` Server](../../../concepts/networks-and-servers/index.md) - - [Consensus](../../../concepts/consensus-protocol/index.md) - - [Amendments](../../../concepts/networks-and-servers/amendments.md) - - [Known Amendments](/resources/known-amendments.md) + - [The `rippled` Server](../../../concepts/networks-and-servers/index.md) + - [Consensus](../../../concepts/consensus-protocol/index.md) + - [Amendments](../../../concepts/networks-and-servers/amendments.md) + - [Known Amendments](/resources/known-amendments.md) - **Tutorials:** - - [Get Started with XRP Ledger APIs](../../../tutorials/http-websocket-apis/build-apps/get-started.md) - - [Install and Update `rippled`](../../../infrastructure/installation/index.md) + - [Get Started with XRP Ledger APIs](../../../tutorials/http-websocket-apis/build-apps/get-started.md) + - [Install and Update `rippled`](../../../infrastructure/installation/index.md) - **References:** - - [feature method][] - - [server_info method][] + - [feature method][] + - [server_info method][] {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/http-websocket-apis/api-conventions/rippled-server-states.md b/docs/references/http-websocket-apis/api-conventions/rippled-server-states.md index abe0271004..972f997462 100644 --- a/docs/references/http-websocket-apis/api-conventions/rippled-server-states.md +++ b/docs/references/http-websocket-apis/api-conventions/rippled-server-states.md @@ -2,23 +2,24 @@ html: rippled-server-states.html parent: api-conventions.html seo: - description: Definitions of state information reported in some API methods. + description: Definitions of state information reported in some API methods. labels: - Core Server --- + # rippled Server States Depending on how the `rippled` server is configured, how long it has been running, and other factors, a server may be participating in the global XRP Ledger peer-to-peer network to different degrees. This is represented as the `server_state` field in the responses to the [server_info method][] and [server_state method][]. The possible responses follow a range of ascending interaction, with each later value superseding the previous one. Their definitions are as follows (in order of increasing priority): -| `Value` | Description | -|:---------------|:------------------------------------------------------------| +| `Value` | Description | +| :------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `disconnected` | The server is not connected to the XRP Ledger peer-to-peer network whatsoever. It may be running in offline mode, or it may not be able to access the network for whatever reason. | -| `connected` | The server believes it is connected to the network. | -| `syncing` | The server is currently behind on ledger versions. (It is normal for a server to spend a few minutes catching up after you start it.) | -| `tracking` | The server is in agreement with the network | -| `full` | The server is fully caught-up with the network and could participate in validation, but is not doing so (possibly because it has not been configured as a validator). | -| `validating` | The server is currently participating in validation of the ledger | -| `proposing` | The server is participating in validation of the ledger and currently proposing its own version. | +| `connected` | The server believes it is connected to the network. | +| `syncing` | The server is currently behind on ledger versions. (It is normal for a server to spend a few minutes catching up after you start it.) | +| `tracking` | The server is in agreement with the network | +| `full` | The server is fully caught-up with the network and could participate in validation, but is not doing so (possibly because it has not been configured as a validator). | +| `validating` | The server is currently participating in validation of the ledger | +| `proposing` | The server is participating in validation of the ledger and currently proposing its own version. | {% admonition type="info" name="Note" %}The distinction between `full`, `validating`, and `proposing` is based on synchronization with the rest of the global network, and it is normal for a server to fluctuate between these states as a course of general operation.{% /admonition %} diff --git a/docs/references/http-websocket-apis/index.md b/docs/references/http-websocket-apis/index.md index f96c04040d..249b9c1c25 100644 --- a/docs/references/http-websocket-apis/index.md +++ b/docs/references/http-websocket-apis/index.md @@ -4,11 +4,12 @@ parent: references.html metadata: indexPage: true --- + # HTTP / WebSocket APIs You can communicate directly with the XRP Ledger through HTTP-based APIs provided by the core `rippled` server as well as the Clio server. Both types of server provide JSON-RPC and WebSocket APIs with mostly the same functionality. JSON-RPC uses a strict request-response paradigm similar to a REST API, but WebSocket uses a single persistent connection where the server can push messages to the client asynchronously. For more information, see [Get Started Using HTTP / WebSocket APIs](../../tutorials/http-websocket-apis/build-apps/get-started.md). -[{% inline-svg file="/docs/img/api-functionality-venn-diagram.svg" /%}](/docs/img/api-functionality-venn-diagram.svg "Diagram: Most API methods are provided by both rippled and Clio servers. The rippled server provides admin methods, provides pending/unvalidated data including transaction queue, and has a live view of consensus and peer-to-peer network. The Clio server scales efficiently, provides additional methods nft_history, nft_info, nfts_by_issuer, and mpt_holders, and serves rippled-exclusive API requests by forwarding.") +[{% inline-svg file="/docs/img/api-functionality-venn-diagram.svg" /%}](/docs/img/api-functionality-venn-diagram.svg 'Diagram: Most API methods are provided by both rippled and Clio servers. The rippled server provides admin methods, provides pending/unvalidated data including transaction queue, and has a live view of consensus and peer-to-peer network. The Clio server scales efficiently, provides additional methods nft_history, nft_info, nfts_by_issuer, and mpt_holders, and serves rippled-exclusive API requests by forwarding.') ## API Versioning @@ -27,13 +28,12 @@ Separate API requests can use different API versions even on the same persistent If you do not specify an API version when making a request directly to the server, the server uses API v1. However, some [client libraries](../client-libraries.md) automatically use a different API version if you do not specify one. The following table shows which API version each library uses when you don't specify which API version to use: -| Client Library | API Version | Additional Notes | -|-----------------------------------------------|-------------|------------------| -| None - direct WebSocket / JSON-RPC connection | 1 | | +| Client Library | API Version | Additional Notes | +| --------------------------------------------- | ----------- | ------------------------------------------------- | +| None - direct WebSocket / JSON-RPC connection | 1 | | | None - `rippled` Commandline | 2 | The commandline only uses the latest API version. | -| [xrpl.js](https://github.com/XRPLF/xrpl.js) | 2 | Versions 3.x and older use API v1 by default. | -| [xrpl-py](https://github.com/XRPLF/xrpl-py) | 2 | Versions 2.x and older use API v1 by default. | - +| [xrpl.js](https://github.com/XRPLF/xrpl.js) | 2 | Versions 3.x and older use API v1 by default. | +| [xrpl-py](https://github.com/XRPLF/xrpl-py) | 2 | Versions 2.x and older use API v1 by default. | ### Breaking Changes @@ -62,5 +62,4 @@ The following types of changes are **non-breaking changes** and may occur withou {% child-pages /%} - {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/http-websocket-apis/peer-port-methods/health-check.md b/docs/references/http-websocket-apis/peer-port-methods/health-check.md index 2ac80627e1..19a1e1bf4c 100644 --- a/docs/references/http-websocket-apis/peer-port-methods/health-check.md +++ b/docs/references/http-websocket-apis/peer-port-methods/health-check.md @@ -1,10 +1,12 @@ --- seo: - description: Special API method for reporting server health. + description: Special API method for reporting server health. labels: - - Core Server + - Core Server --- + # Health Check + [[Source]](https://github.com/XRPLF/rippled/blob/70d5c624e8cf732a362335642b2f5125ce4b43c1/src/xrpld/overlay/detail/OverlayImpl.cpp#L943-L1038 "Source") The Health Check is a special [peer port method](index.md) for reporting on the health of an individual `rippled` server. This method is intended for use in automated monitoring to recognize outages and prompt automated or manual interventions such as restarting the server. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.6.0" %}New in: rippled 1.6.0{% /badge %} @@ -13,7 +15,6 @@ This method checks several metrics to see if they are in ranges generally consid {% admonition type="info" name="Note" %}Since the health check is a [peer port method](index.md), it is not available when testing the server in [stand-alone mode][].{% /admonition %} - ## Request Format To request the Health Check information, make the following HTTP request: @@ -32,6 +33,7 @@ To request the Health Check information, make the following HTTP request: {% tabs %} {% tab label="Healthy" %} + ```json HTTP/1.1 200 OK Server: rippled-1.6.0-b8 @@ -43,9 +45,11 @@ Transfer-Encoding: chunked "info": {} } ``` + {% /tab %} {% tab label="Warning" %} + ```json HTTP/1.1 503 Service Unavailable Server: rippled-1.6.0 @@ -60,9 +64,11 @@ Transfer-Encoding: chunked } } ``` + {% /tab %} {% tab label="Critical" %} + ```json HTTP/1.1 500 Internal Server Error Server: rippled-1.6.0 @@ -78,6 +84,7 @@ Transfer-Encoding: chunked } } ``` + {% /tab %} {% /tabs %} @@ -86,23 +93,23 @@ Transfer-Encoding: chunked The response's HTTP status code indicates the health of the server: -| Status Code | Health Status | Description | -|:------------------------------|:--------------|:-----------------------------| -| **200 OK** | Healthy | All health metrics are within acceptable ranges. | -| **503 Service Unavailable** | Warning | One or more metrics are in the warning range. Manual intervention may or may not be necessary. | +| Status Code | Health Status | Description | +| :---------------------------- | :------------ | :------------------------------------------------------------------------------------------------------------------------ | +| **200 OK** | Healthy | All health metrics are within acceptable ranges. | +| **503 Service Unavailable** | Warning | One or more metrics are in the warning range. Manual intervention may or may not be necessary. | | **500 Internal Server Error** | Critical | One or more metrics are in the critical range. There is a serious problem that probably needs manual intervention to fix. | The response body is a JSON object with a single `info` object at the top level. The `info` object contains values for each metric that is in a warning or critical range. The response omits metrics that are in a healthy range, so a fully healthy server has an empty object. The `info` object may contain the following fields: -| `Field` | Value | Description | -|:--------------------|:--------|:---------------------------------------------| -| `amendment_blocked` | Boolean | _(May be omitted)_ If `true`, the server is [amendment blocked](../../../concepts/networks-and-servers/amendments.md#amendment-blocked-servers) and must be upgraded to remain synced with the network; this state is critical. If the server is not amendment blocked, this field is omitted. | -| `load_factor` | Number | _(May be omitted)_ A measure of the overall load the server is under. This reflects I/O, CPU, and memory limitations. This is a warning if the load factor is over 100, or critical if the load factor is 1000 or higher. | -| `peers` | Number | _(May be omitted)_ The number of [peer servers](../../../concepts/networks-and-servers/peer-protocol.md) this server is connected to. This is a warning if connected to 7 or fewer peers, and critical if connected to zero peers. | -| `server_state` | String | _(May be omitted)_ The current [server state](../api-conventions/rippled-server-states.md). This is a warning if the server is in the `tracking`, `syncing`, or `connected` states. This is critical if the server is in the `disconnected` state. | -| `validated_ledger` | Number | _(May be omitted)_ The number of seconds since the last time a ledger was validated by [consensus](../../../concepts/consensus-protocol/index.md). If there is no validated ledger available ([as during the initial sync period when starting the server](../../../infrastructure/troubleshooting/server-doesnt-sync.md#normal-syncing-behavior)), this is the value `-1` and is considered a warning. This metric is also a warning if the last validated ledger was at least 7 seconds ago, or critical if the last validated ledger was at least 20 seconds ago. | +| `Field` | Value | Description | +| :------------------ | :------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `amendment_blocked` | Boolean | _(May be omitted)_ If `true`, the server is [amendment blocked](../../../concepts/networks-and-servers/amendments.md#amendment-blocked-servers) and must be upgraded to remain synced with the network; this state is critical. If the server is not amendment blocked, this field is omitted. | +| `load_factor` | Number | _(May be omitted)_ A measure of the overall load the server is under. This reflects I/O, CPU, and memory limitations. This is a warning if the load factor is over 100, or critical if the load factor is 1000 or higher. | +| `peers` | Number | _(May be omitted)_ The number of [peer servers](../../../concepts/networks-and-servers/peer-protocol.md) this server is connected to. This is a warning if connected to 7 or fewer peers, and critical if connected to zero peers. | +| `server_state` | String | _(May be omitted)_ The current [server state](../api-conventions/rippled-server-states.md). This is a warning if the server is in the `tracking`, `syncing`, or `connected` states. This is critical if the server is in the `disconnected` state. | +| `validated_ledger` | Number | _(May be omitted)_ The number of seconds since the last time a ledger was validated by [consensus](../../../concepts/consensus-protocol/index.md). If there is no validated ledger available ([as during the initial sync period when starting the server](../../../infrastructure/troubleshooting/server-doesnt-sync.md#normal-syncing-behavior)), this is the value `-1` and is considered a warning. This metric is also a warning if the last validated ledger was at least 7 seconds ago, or critical if the last validated ledger was at least 20 seconds ago. | ## See Also diff --git a/docs/references/http-websocket-apis/peer-port-methods/index.md b/docs/references/http-websocket-apis/peer-port-methods/index.md index aa8862861d..b4f0a75acd 100644 --- a/docs/references/http-websocket-apis/peer-port-methods/index.md +++ b/docs/references/http-websocket-apis/peer-port-methods/index.md @@ -4,13 +4,13 @@ parent: http-websocket-apis.html metadata: indexPage: true seo: - description: Special API methods for sharing network topology and status metrics, served on the XRPL Peer Protocol port. + description: Special API methods for sharing network topology and status metrics, served on the XRPL Peer Protocol port. --- + # Peer Port Methods Separate from the [WebSocket / HTTP APIs](../index.md), `rippled` servers provide a few special API methods from the same port they use for XRP Ledger [peer protocol](../../../concepts/networks-and-servers/peer-protocol.md) communications. These methods provide status information about the server itself and its connectivity to the peer-to-peer network, and are intended mainly for monitoring and administration. **Security:** Most `rippled` servers use a self-signed TLS certificate to respond to peer port requests. By default, most tools (including web browsers) flag or block such responses for being untrusted. You must ignore the certificate checking (for example, if using cURL, add the `--insecure` flag) to display a response from those servers, or configure the server with a TLS certificate signed by a known Certificate Authority. - {% child-pages /%} diff --git a/docs/references/http-websocket-apis/peer-port-methods/peer-crawler.md b/docs/references/http-websocket-apis/peer-port-methods/peer-crawler.md index 62f6717ef2..c5447679b5 100644 --- a/docs/references/http-websocket-apis/peer-port-methods/peer-crawler.md +++ b/docs/references/http-websocket-apis/peer-port-methods/peer-crawler.md @@ -1,10 +1,11 @@ --- seo: - description: Special API method for sharing network topology and status metrics. + description: Special API method for sharing network topology and status metrics. labels: - Core Server - Blockchain --- + # Peer Crawler The Peer Crawler is a special [peer port method](index.md) for reporting on the health and topology of the peer-to-peer network. This API method is available by default on a non-privileged basis through the [Peer Protocol](../../../concepts/networks-and-servers/peer-protocol.md) port, which is also used for `rippled` servers' peer-to-peer communications about consensus, ledger history, and other necessary information. @@ -22,32 +23,31 @@ To request the Peer Crawler information, make the following HTTP request: - **Path:** `/crawl` - **Security:** Most `rippled` servers use a self-signed certificate to respond to the request. By default, most tools (including web browsers) flag or block such responses for being untrusted. You must ignore the certificate checking (for example, if using cURL, add the `--insecure` flag) to display a response from those servers. - ## Response Format The response has the status code **200 OK** and a JSON object in the message body. The JSON object has the following fields: -| `Field` | Value | Description | -|:-----------------|:-------|:-------------------------------------------------| -| `counts` | Object | _(May be omitted)_ Stats about this server's health, similar to the response from the [get_counts method][]. The default configuration does not report this field. Information reported includes: how large the ledger and transaction databases are, the cache hit rate for the in-application caches, and how many objects of various types are cached in memory. Types of objects that may be stored in memory include ledgers (`Ledger`), transactions (`STTx`), validation messages (`STValidation`), and more. | -| `overlay` | Object | _(May be omitted)_ Information about the peer servers currently connected to this one, similar to the response from the [peers method][]. Contains one field, `active`, which is an array of objects (see below). | -| `server` | Object | _(May be omitted)_ Information about this server. Contains public fields from the [server_state method][], including what `rippled` version you are running (`build_version`), which [ledger versions](../../../concepts/networks-and-servers/ledger-history.md) your server has available (`complete_ledgers`), and the amount of load your server is experiencing. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.1" %}Updated in: rippled 1.2.1{% /badge %} | -| `unl` | Object | _(May be omitted)_ Information about the validators and validator list sites this server is configured to trust, similar to the response from the [validators method][] and [validator_list_sites method][]. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.1" %}Updated in: rippled 1.2.1{% /badge %} | -| `version` | Number | Indicates the version of this peer crawler response format. The current peer crawler version number is `2`. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.1" %}Updated in: rippled 1.2.1{% /badge %} | +| `Field` | Value | Description | +| :-------- | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `counts` | Object | _(May be omitted)_ Stats about this server's health, similar to the response from the [get_counts method][]. The default configuration does not report this field. Information reported includes: how large the ledger and transaction databases are, the cache hit rate for the in-application caches, and how many objects of various types are cached in memory. Types of objects that may be stored in memory include ledgers (`Ledger`), transactions (`STTx`), validation messages (`STValidation`), and more. | +| `overlay` | Object | _(May be omitted)_ Information about the peer servers currently connected to this one, similar to the response from the [peers method][]. Contains one field, `active`, which is an array of objects (see below). | +| `server` | Object | _(May be omitted)_ Information about this server. Contains public fields from the [server_state method][], including what `rippled` version you are running (`build_version`), which [ledger versions](../../../concepts/networks-and-servers/ledger-history.md) your server has available (`complete_ledgers`), and the amount of load your server is experiencing. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.1" %}Updated in: rippled 1.2.1{% /badge %} | +| `unl` | Object | _(May be omitted)_ Information about the validators and validator list sites this server is configured to trust, similar to the response from the [validators method][] and [validator_list_sites method][]. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.1" %}Updated in: rippled 1.2.1{% /badge %} | +| `version` | Number | Indicates the version of this peer crawler response format. The current peer crawler version number is `2`. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.1" %}Updated in: rippled 1.2.1{% /badge %} | Each member of the `overlay.active` array is an object with the following fields: -| `Field` | Value | Description | -|:-------------|:-------------------------|:-----------------------------------| -| `complete_ledgers` | String | The range of [ledger versions](../../../concepts/networks-and-servers/ledger-history.md) this peer has available. | -| `ip` | String (IPv4 Address) | _(May be omitted)_ The IP address of this connected peer. Omitted if the peer is configured as a validator or a [private peer](../../../concepts/networks-and-servers/peer-protocol.md#private-peers). {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.1" %}Updated in: rippled 1.2.1{% /badge %} | -| `port` | String or Number | _(May be omitted)_ The port number on the peer server that serves RTXP. This will be a string if outbound and a number otherwise. Typically `51235`. Omitted if the peer is configured as a validator or a [private peer](../../../concepts/networks-and-servers/peer-protocol.md#private-peers). {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.1" %}Updated in: rippled 1.2.1{% /badge %} | -| `public_key` | String (Base-64 Encoded) | The public key of the ECDSA key pair used by this peer to sign RTXP messages. (This is the same data as the `pubkey_node` reported by the peer server's [server_info method][].) | -| `type` | String | The value `in` or `out`, indicating whether the TCP connection to the peer is incoming or outgoing. | -| `uptime` | Number | The number of seconds the server has been connected to this peer. | -| `version` | String | The `rippled` version number the peer reports to be using. | +| `Field` | Value | Description | +| :----------------- | :----------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `complete_ledgers` | String | The range of [ledger versions](../../../concepts/networks-and-servers/ledger-history.md) this peer has available. | +| `ip` | String (IPv4 Address) | _(May be omitted)_ The IP address of this connected peer. Omitted if the peer is configured as a validator or a [private peer](../../../concepts/networks-and-servers/peer-protocol.md#private-peers). {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.1" %}Updated in: rippled 1.2.1{% /badge %} | +| `port` | String or Number | _(May be omitted)_ The port number on the peer server that serves RTXP. This will be a string if outbound and a number otherwise. Typically `51235`. Omitted if the peer is configured as a validator or a [private peer](../../../concepts/networks-and-servers/peer-protocol.md#private-peers). {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.1" %}Updated in: rippled 1.2.1{% /badge %} | +| `public_key` | String (Base-64 Encoded) | The public key of the ECDSA key pair used by this peer to sign RTXP messages. (This is the same data as the `pubkey_node` reported by the peer server's [server_info method][].) | +| `type` | String | The value `in` or `out`, indicating whether the TCP connection to the peer is incoming or outgoing. | +| `uptime` | Number | The number of seconds the server has been connected to this peer. | +| `version` | String | The `rippled` version number the peer reports to be using. | #### Example @@ -56,15 +56,19 @@ Request: {% tabs %} {% tab label="HTTP" %} + ``` GET https://localhost:51235/crawl ``` + {% /tab %} {% tab label="cURL" %} + ``` curl --insecure https://localhost:51235/crawl ``` + {% /tab %} {% /tabs %} @@ -73,7 +77,6 @@ Response: {% code-snippet file="/_api-examples/peer-crawler/crawl.json" language="json" prefix="200 OK\n\n" /%} - ## See Also - [Peer Protocol](../../../concepts/networks-and-servers/peer-protocol.md) diff --git a/docs/references/http-websocket-apis/peer-port-methods/validator-list.md b/docs/references/http-websocket-apis/peer-port-methods/validator-list.md index a43ead6fc9..a61012d637 100644 --- a/docs/references/http-websocket-apis/peer-port-methods/validator-list.md +++ b/docs/references/http-websocket-apis/peer-port-methods/validator-list.md @@ -1,11 +1,13 @@ --- seo: - description: Special API method for sharing recommended validator lists. + description: Special API method for sharing recommended validator lists. labels: - - Core Server - - Blockchain + - Core Server + - Blockchain --- + # Validator List Method + [[Source]](https://github.com/XRPLF/rippled/blob/70d5c624e8cf732a362335642b2f5125ce4b43c1/src/xrpld/overlay/detail/OverlayImpl.cpp#L875-L940 "Source") The validator list method is a special API endpoint that fetches a current, trusted validator list a `rippled` server is using. This often represents the exact list of validators a server trusts. @@ -22,12 +24,11 @@ To request the Validator List information, make the following HTTP request: - **Port:** (the port number where the `rippled` server uses the Peer Protocol, typically 51235) - **Path:** `/vl/{public_key}` - The `{public_key}` is the list publisher's public key, in hexadecimal. This key identifies the publisher and is also used to verify that the contents of the list are authentic and complete. + The `{public_key}` is the list publisher's public key, in hexadecimal. This key identifies the publisher and is also used to verify that the contents of the list are authentic and complete. - **Security:** Most `rippled` servers use a self-signed TLS certificate to respond to the request. By default, most tools (including web browsers) flag or block such responses for being untrusted. You must ignore the certificate checking (for example, if using cURL, add the `--insecure` flag) to display a response from those servers. - The validator list contents are signed with a separate cryptographic key, so you can verify their integrity regardless of the TLS certificate used. - + The validator list contents are signed with a separate cryptographic key, so you can verify their integrity regardless of the TLS certificate used. ## Response Format @@ -35,15 +36,16 @@ The response has the status code **200 OK** and a JSON object in the message bod The JSON object has the following fields: -| `Field` | Value | Description | -|:-----------------|:-------|:-------------------------------------------------| -| `manifest` | String | The list publisher's [manifest data](#manifest-data), in either base64 or hexadecimal. | -| `blob` | String | Base64-encoded JSON data representing the validator list. | -| `signature` | String | The signature of the `blob` data, in hexadecimal. | -| `version` | Number | The version of the validator list protocol this object uses. The current version is **1**. A higher version number indicates backwards-incompatible changes with a previous version of the validator list protocol. | -| `public_key` | String | The public key used to verify this validator list data, in hexadecimal. This is a 32-byte Ed25519 public key prefixed with the byte `0xED`. | +| `Field` | Value | Description | +| :----------- | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `manifest` | String | The list publisher's [manifest data](#manifest-data), in either base64 or hexadecimal. | +| `blob` | String | Base64-encoded JSON data representing the validator list. | +| `signature` | String | The signature of the `blob` data, in hexadecimal. | +| `version` | Number | The version of the validator list protocol this object uses. The current version is **1**. A higher version number indicates backwards-incompatible changes with a previous version of the validator list protocol. | +| `public_key` | String | The public key used to verify this validator list data, in hexadecimal. This is a 32-byte Ed25519 public key prefixed with the byte `0xED`. | ### Manifest Data + [[Source]](https://github.com/XRPLF/rippled/blob/8d1b3b39940eca2735a0e9279bdd92b0748fd84c/src/xrpld/app/misc/detail/Manifest.cpp#L54-L82 "Source") A "manifest" contains information uniquely identifying a person or organization involved in the consensus process, either a **validator** or a **list publisher**. A validator's manifest contains the _public_ information from that [validator's token](../../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md#3-enable-validation-on-your-rippled-server). A list publisher's manifest provides information about the list publisher. Both are typically encoded to binary in the XRP Ledger's standard [binary serialization format](../../protocol/binary-format.md). (There is no standard JSON representation of a manifest.) @@ -52,37 +54,35 @@ One of the main purposes of manifests relates to rotating validator keys. When a The data encoded in a manifest is as follows: -| Field | Internal Type | Description | -|:--------------------|:--------------|:-----------------------------------------| +| Field | Internal Type | Description | +| :------------------ | :------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `sfPublicKey` | Blob | The master public key that uniquely identifies this person or organization. This can be a 33-byte secp256k1 public key, or a 32-byte Ed25519 public key prefixed with the byte `0xED`. | -| `sfMasterSignature` | Blob | A signature of this manifest data from the master key pair. This proves the authenticity of the manifest. | -| `sfSequence` | UInt32 | A sequence number for this manifest. A higher number indicates a newer manifest that invalidates all older manifests from the same master public key. | -| `sfVersion` | UInt16 | A version number indicating the manifest format used. A higher number indicates a newer manifest format, including breaking changes compared to the previous manifest format. | -| `sfDomain` | Blob | _(Optional)_ A domain name owned by this person or organization, ASCII-encoded. | -| `sfSigningPubKey` | Blob | _(Optional)_ The ephemeral public key of the key pair that this person or organization is currently using. This must be a 33-byte secp256k1 public key. | -| `sfSignature` | Blob | _(Optional)_ A signature of this manifest data from the ephemeral key pair. | +| `sfMasterSignature` | Blob | A signature of this manifest data from the master key pair. This proves the authenticity of the manifest. | +| `sfSequence` | UInt32 | A sequence number for this manifest. A higher number indicates a newer manifest that invalidates all older manifests from the same master public key. | +| `sfVersion` | UInt16 | A version number indicating the manifest format used. A higher number indicates a newer manifest format, including breaking changes compared to the previous manifest format. | +| `sfDomain` | Blob | _(Optional)_ A domain name owned by this person or organization, ASCII-encoded. | +| `sfSigningPubKey` | Blob | _(Optional)_ The ephemeral public key of the key pair that this person or organization is currently using. This must be a 33-byte secp256k1 public key. | +| `sfSignature` | Blob | _(Optional)_ A signature of this manifest data from the ephemeral key pair. | The `sfMasterSignature` and `sfSignature` signatures are created from signing the [serialized](../../protocol/binary-format.md) binary data of the manifest, excluding the signature fields (`sfMasterSignature` and `sfSignature`) themselves. - ### Blob Data If you decode the `blob` from base64, the result is a JSON object with the following fields: -| `Field` | Value | Description | -|:-------------|:-------|:-----------------------------------------------------| +| `Field` | Value | Description | +| :----------- | :----- | :------------------------------------------------------------------------------------------------------------------------------ | | `sequence` | Number | Unique sequence number for this list. A larger sequence number indicates a newer list; only the newest list is valid at a time. | -| `expiration` | Number | The time this list expires, in [seconds since the Ripple Epoch][]. | -| `validators` | Array | A list of recommended validators. | +| `expiration` | Number | The time this list expires, in [seconds since the Ripple Epoch][]. | +| `validators` | Array | A list of recommended validators. | Each member of the `validators` array has the following fields: -| `Field` | Value | Description | -|:------------------------|:-------|:------------------------------------------| -| `validation_public_key` | String | The master public key that uniquely identifies this validator. | +| `Field` | Value | Description | +| :---------------------- | :----- | :--------------------------------------------------------------------------------- | +| `validation_public_key` | String | The master public key that uniquely identifies this validator. | | `manifest` | String | This validator's [manifest data](#manifest-data), in either base64 or hexadecimal. | - #### Example Decoded Blob {% code-snippet file="/_api-examples/vl/vl-blob.json" language="json" /%} @@ -94,15 +94,19 @@ Request: {% tabs %} {% tab label="HTTP" %} + ``` GET https://localhost:51235/vl/ED2677ABFFD1B33AC6FBC3062B71F1E8397C1505E1C42C64D11AD1B28FF73F4734 ``` + {% /tab %} {% tab label="cURL" %} + ``` curl --insecure https://localhost:51235/vl/ED2677ABFFD1B33AC6FBC3062B71F1E8397C1505E1C42C64D11AD1B28FF73F4734 ``` + {% /tab %} {% /tabs %} @@ -111,7 +115,6 @@ Response: {% code-snippet file="/_api-examples/vl/vl.json" language="json" prefix="200 OK\n\n" /%} - ## See Also - [Peer Protocol](../../../concepts/networks-and-servers/peer-protocol.md) diff --git a/docs/references/http-websocket-apis/public-api-methods/account-methods/account_channels.md b/docs/references/http-websocket-apis/public-api-methods/account-methods/account_channels.md index 5a19f9ea36..8af2ffaca8 100644 --- a/docs/references/http-websocket-apis/public-api-methods/account-methods/account_channels.md +++ b/docs/references/http-websocket-apis/public-api-methods/account-methods/account_channels.md @@ -1,10 +1,12 @@ --- seo: - description: Get a list of payment channels where the account is the source of the channel. + description: Get a list of payment channels where the account is the source of the channel. labels: - - Payment Channels + - Payment Channels --- + # account_channels + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/AccountChannels.cpp "Source") The `account_channels` method returns information about an account's Payment Channels. This includes only channels where the specified account is the channel's source, not the destination. (A channel's "source" and "owner" are the same.) All information retrieved is relative to a particular version of the ledger. @@ -12,11 +14,13 @@ The `account_channels` method returns information about an account's Payment Cha {% amendment-disclaimer name="PayChan" /%} ## Request Format + An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 1, @@ -26,26 +30,33 @@ An example of the request format: "ledger_index": "validated" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "account_channels", - "params": [{ - "account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "destination_account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "ledger_index": "validated" - }] + "method": "account_channels", + "params": [ + { + "account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "destination_account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "ledger_index": "validated" + } + ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```bash #Syntax: account_channels [] [] rippled account_channels rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn ra5nK24KXen9AHvsdFTKHSANinZseWnPcX validated ``` + {% /tab %} {% /tabs %} @@ -54,14 +65,14 @@ rippled account_channels rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn ra5nK24KXen9AHvsdFTK The request includes the following parameters: -| Field | Type | Required? | Description | -|:----------------------|:---------------------|:----------|-------------| -| `account` | String - [Address][] | Yes | Look up channels where this account is the channel's owner/source. | -| `destination_account` | String - [Address][] | No | A second account; if provided, filter results to payment channels whose destination is this account. | -| `ledger_hash` | String | No | The unique hash of the ledger version to use. (See [Specifying Ledgers][]) | -| `ledger_index` | Number or String | No | The [ledger index][] of the ledger to use, or a shortcut string to choose a ledger automatically. (See [Specifying Ledgers][]) | +| Field | Type | Required? | Description | +| :-------------------- | :------------------- | :-------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `account` | String - [Address][] | Yes | Look up channels where this account is the channel's owner/source. | +| `destination_account` | String - [Address][] | No | A second account; if provided, filter results to payment channels whose destination is this account. | +| `ledger_hash` | String | No | The unique hash of the ledger version to use. (See [Specifying Ledgers][]) | +| `ledger_index` | Number or String | No | The [ledger index][] of the ledger to use, or a shortcut string to choose a ledger automatically. (See [Specifying Ledgers][]) | | `limit` | Number | No | Limit the number of transactions to retrieve. Cannot be less than 10 or more than 400. Positive values outside this range are replaced with the closest valid option. The default is 200. | -| `marker` | [Marker][] | No | Value from a previous paginated response. Resume retrieving data where that response left off. | +| `marker` | [Marker][] | No | Value from a previous paginated response. Resume retrieving data where that response left off. | ## Response Format @@ -70,6 +81,7 @@ An example of a successful response: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 1, @@ -95,9 +107,11 @@ An example of a successful response: "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -123,9 +137,11 @@ An example of a successful response: } } ``` + {% /tab %} {% tab label="Commandline" %} + ```json 200 OK @@ -151,42 +167,43 @@ An example of a successful response: } } ``` + {% /tab %} {% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: -| Field | Type | Description | -|:---------------|:-------------------------|:---------------------------------| -| `account` | String | The address of the source/owner of the payment channels. This corresponds to the `account` field of the request. | -| `channels` | Array of Channel Objects | Payment channels owned by this `account`. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.5.0" %}Updated in: rippled 1.5.0{% /badge %} | -| `ledger_hash` | String | _(May be omitted)_ The identifying [Hash][] of the ledger version used to generate this response. | -| `ledger_index` | Number | The [Ledger Index][] of the ledger version used to generate this response. | -| `validated` | Boolean | _(May be omitted)_ If `true`, the information in this response comes from a validated ledger version. Otherwise, the information is subject to change. | -| `limit` | Number | _(May be omitted)_ The limit to how many channel objects were actually returned by this request. | +| Field | Type | Description | +| :------------- | :----------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `account` | String | The address of the source/owner of the payment channels. This corresponds to the `account` field of the request. | +| `channels` | Array of Channel Objects | Payment channels owned by this `account`. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.5.0" %}Updated in: rippled 1.5.0{% /badge %} | +| `ledger_hash` | String | _(May be omitted)_ The identifying [Hash][] of the ledger version used to generate this response. | +| `ledger_index` | Number | The [Ledger Index][] of the ledger version used to generate this response. | +| `validated` | Boolean | _(May be omitted)_ If `true`, the information in this response comes from a validated ledger version. Otherwise, the information is subject to change. | +| `limit` | Number | _(May be omitted)_ The limit to how many channel objects were actually returned by this request. | | `marker` | [Marker][] | _(May be omitted)_ Server-defined value for pagination. Pass this to the next call to resume getting results where this call left off. Omitted when there are no additional pages after this one. | Each Channel Object has the following fields: -| Field | Type | Description | -|:----------------------|:-----------------|:----------------------------------| -| `account` | String | The owner of the channel, as an [Address][]. | -| `channel_id` | String | A unique ID for this channel, as a 64-character hexadecimal string. This is also the [ID of the channel object](../../../protocol/ledger-data/ledger-entry-types/paychannel.md#paychannel-id-format) in the ledger's state data. | -| `destination_account` | String | The destination account of the channel, as an [Address][]. Only this account can receive the `amount` in the channel while it is open. | -| `settle_delay` | Unsigned Integer | The number of seconds the payment channel must stay open after the owner of the channel requests to close it. | -| `public_key` | String | _(May be omitted)_ The public key for the payment channel in the XRP Ledger's [base58][] format. Signed claims against this channel must be redeemed with the matching key pair. | -| `public_key_hex` | String | _(May be omitted)_ The public key for the payment channel in hexadecimal format, if one was specified at channel creation. Signed claims against this channel must be redeemed with the matching key pair. | -| `expiration` | Unsigned Integer | _(May be omitted)_ Time, in [seconds since the Ripple Epoch][], when this channel is set to expire. This expiration date is mutable. If this is before the close time of the most recent validated ledger, the channel is expired. | -| `cancel_after` | Unsigned Integer | _(May be omitted)_ Time, in [seconds since the Ripple Epoch][], of this channel's immutable expiration, if one was specified at channel creation. If this is before the close time of the most recent validated ledger, the channel is expired. | +| Field | Type | Description | +| :-------------------- | :--------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `account` | String | The owner of the channel, as an [Address][]. | +| `channel_id` | String | A unique ID for this channel, as a 64-character hexadecimal string. This is also the [ID of the channel object](../../../protocol/ledger-data/ledger-entry-types/paychannel.md#paychannel-id-format) in the ledger's state data. | +| `destination_account` | String | The destination account of the channel, as an [Address][]. Only this account can receive the `amount` in the channel while it is open. | +| `settle_delay` | Unsigned Integer | The number of seconds the payment channel must stay open after the owner of the channel requests to close it. | +| `public_key` | String | _(May be omitted)_ The public key for the payment channel in the XRP Ledger's [base58][] format. Signed claims against this channel must be redeemed with the matching key pair. | +| `public_key_hex` | String | _(May be omitted)_ The public key for the payment channel in hexadecimal format, if one was specified at channel creation. Signed claims against this channel must be redeemed with the matching key pair. | +| `expiration` | Unsigned Integer | _(May be omitted)_ Time, in [seconds since the Ripple Epoch][], when this channel is set to expire. This expiration date is mutable. If this is before the close time of the most recent validated ledger, the channel is expired. | +| `cancel_after` | Unsigned Integer | _(May be omitted)_ Time, in [seconds since the Ripple Epoch][], of this channel's immutable expiration, if one was specified at channel creation. If this is before the close time of the most recent validated ledger, the channel is expired. | | `source_tag` | Unsigned Integer | _(May be omitted)_ A 32-bit unsigned integer to use as a [source tag](../../../../concepts/transactions/source-and-destination-tags.md) for payments through this payment channel, if one was specified at channel creation. This indicates the payment channel's originator or other purpose at the source account. Conventionally, if you bounce payments from this channel, you should specify this value in the `DestinationTag` of the return payment. | -| `destination_tag` | Unsigned Integer | _(May be omitted)_ A 32-bit unsigned integer to use as a [destination tag](../../../../concepts/transactions/source-and-destination-tags.md) for payments through this channel, if one was specified at channel creation. This indicates the payment channel's beneficiary or other purpose at the destination account. | +| `destination_tag` | Unsigned Integer | _(May be omitted)_ A 32-bit unsigned integer to use as a [destination tag](../../../../concepts/transactions/source-and-destination-tags.md) for payments through this channel, if one was specified at channel creation. This indicates the payment channel's beneficiary or other purpose at the destination account. | ## Possible Errors -* Any of the [universal error types][]. -* `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. -* `actNotFound` - The address specified in the `account` field of the request does not correspond to an account in the ledger. -* `lgrNotFound` - The ledger specified by the `ledger_hash` or `ledger_index` does not exist, or it does exist but the server does not have it. +- Any of the [universal error types][]. +- `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. +- `actNotFound` - The address specified in the `account` field of the request does not correspond to an account in the ledger. +- `lgrNotFound` - The ledger specified by the `ledger_hash` or `ledger_index` does not exist, or it does exist but the server does not have it. {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/http-websocket-apis/public-api-methods/account-methods/account_currencies.md b/docs/references/http-websocket-apis/public-api-methods/account-methods/account_currencies.md index 7d00b236bf..ee45aea4e7 100644 --- a/docs/references/http-websocket-apis/public-api-methods/account-methods/account_currencies.md +++ b/docs/references/http-websocket-apis/public-api-methods/account-methods/account_currencies.md @@ -2,50 +2,59 @@ html: account_currencies.html parent: account-methods.html seo: - description: Get a list of currencies an account can send or receive. + description: Get a list of currencies an account can send or receive. labels: - Tokens --- + # account_currencies + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/AccountCurrenciesHandler.cpp "Source") The `account_currencies` command retrieves a list of currencies that an account can send or receive, based on its trust lines. (This is not a thoroughly confirmed list, but it can be used to populate user interfaces.) ## Request Format + An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { - "command": "account_currencies", - "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "ledger_index": "validated" + "command": "account_currencies", + "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "ledger_index": "validated" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "account_currencies", - "params": [ - { - "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "account_index": 0, - "ledger_index": "validated" - } - ] + "method": "account_currencies", + "params": [ + { + "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "account_index": 0, + "ledger_index": "validated" + } + ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh #Syntax: account_currencies account [ledger_index|ledger_hash] rippled account_currencies rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn validated ``` + {% /tab %} {% /tabs %} @@ -54,11 +63,11 @@ rippled account_currencies rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn validated The request includes the following parameters: -| `Field` | Type | Required? | Description | -|:---------------|:---------------------|:----------|-------------| +| `Field` | Type | Required? | Description | +| :------------- | :------------------- | :-------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `account` | String - [Address][] | Yes | Look up currencies this account can send or receive. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.11.0" %}Updated in: rippled 1.11.0{% /badge %} | -| `ledger_hash` | String | No | The unique hash of the ledger version to use. (See [Specifying Ledgers][]) | -| `ledger_index` | Number or String | No | The [ledger index][] of the ledger to use, or a shortcut string to choose a ledger automatically. (See [Specifying Ledgers][]) | +| `ledger_hash` | String | No | The unique hash of the ledger version to use. (See [Specifying Ledgers][]) | +| `ledger_index` | Number or String | No | The [ledger index][] of the ledger to use, or a shortcut string to choose a ledger automatically. (See [Specifying Ledgers][]) | The following fields are deprecated and should not be provided: `account_index`, `strict`. @@ -69,41 +78,24 @@ An example of a successful response: {% tabs %} {% tab label="WebSocket" %} + ```json { - "result": { - "ledger_index": 11775844, - "receive_currencies": [ - "BTC", - "CNY", - "DYM", - "EUR", - "JOE", - "MXN", - "USD", - "015841551A748AD2C1F76FF6ECB0CCCD00000000" - ], - "send_currencies": [ - "ASP", - "BTC", - "CHF", - "CNY", - "DYM", - "EUR", - "JOE", - "JPY", - "MXN", - "USD" - ], - "validated": true - }, - "status": "success", - "type": "response" + "result": { + "ledger_index": 11775844, + "receive_currencies": ["BTC", "CNY", "DYM", "EUR", "JOE", "MXN", "USD", "015841551A748AD2C1F76FF6ECB0CCCD00000000"], + "send_currencies": ["ASP", "BTC", "CHF", "CNY", "DYM", "EUR", "JOE", "JPY", "MXN", "USD"], + "validated": true + }, + "status": "success", + "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK { @@ -136,42 +128,45 @@ An example of a successful response: } } ``` + {% /tab %} {% tab label="Commandline" %} + ```json { - "result" : { - "ledger_hash" : "F43A801ED4562FA744A35755B86BE898D91C5643BF499924EA3C69491B8C28D1", - "ledger_index" : 56843649, - "receive_currencies" : [ "USD" ], - "send_currencies" : [ "NGN", "TRC" ], - "status" : "success", - "validated" : true - } + "result": { + "ledger_hash": "F43A801ED4562FA744A35755B86BE898D91C5643BF499924EA3C69491B8C28D1", + "ledger_index": 56843649, + "receive_currencies": ["USD"], + "send_currencies": ["NGN", "TRC"], + "status": "success", + "validated": true + } } ``` + {% /tab %} {% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: -| `Field` | Type | Description | -|:---------------------|:---------------------------|:-------------------------| +| `Field` | Type | Description | +| :------------------- | :------------------------- | :---------------------------------------------------------------------------------------------- | | `ledger_hash` | String - [Hash][] | (May be omitted) The identifying hash of the ledger version used to retrieve this data, as hex. | -| `ledger_index` | Integer - [Ledger Index][] | The ledger index of the ledger version used to retrieve this data. | -| `receive_currencies` | Array of Strings | Array of [Currency Code][]s for currencies that this account can receive. | -| `send_currencies` | Array of Strings | Array of [Currency Code][]s for currencies that this account can send. | -| `validated` | Boolean | If `true`, this data comes from a validated ledger. | +| `ledger_index` | Integer - [Ledger Index][] | The ledger index of the ledger version used to retrieve this data. | +| `receive_currencies` | Array of Strings | Array of [Currency Code][]s for currencies that this account can receive. | +| `send_currencies` | Array of Strings | Array of [Currency Code][]s for currencies that this account can send. | +| `validated` | Boolean | If `true`, this data comes from a validated ledger. | {% admonition type="info" name="Note" %}The currencies that an account can send or receive are defined based on a check of its trust lines. If an account has a trust line for a currency and enough room to increase its balance, it can receive that currency. If the trust line's balance can go down, the account can send that currency. This method _doesn't_ check whether the trust line is [frozen](../../../../concepts/tokens/fungible-tokens/freezes.md) or authorized.{% /admonition %} ## Possible Errors -* Any of the [universal error types][]. -* `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. -* `actNotFound` - The address specified in the `account` field of the request does not correspond to an account in the ledger. -* `lgrNotFound` - The ledger specified by the `ledger_hash` or `ledger_index` does not exist, or it does exist but the server does not have it. +- Any of the [universal error types][]. +- `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. +- `actNotFound` - The address specified in the `account` field of the request does not correspond to an account in the ledger. +- `lgrNotFound` - The ledger specified by the `ledger_hash` or `ledger_index` does not exist, or it does exist but the server does not have it. {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/http-websocket-apis/public-api-methods/account-methods/account_info.md b/docs/references/http-websocket-apis/public-api-methods/account-methods/account_info.md index 7d24e35ddc..b5c14e446b 100644 --- a/docs/references/http-websocket-apis/public-api-methods/account-methods/account_info.md +++ b/docs/references/http-websocket-apis/public-api-methods/account-methods/account_info.md @@ -1,11 +1,13 @@ --- seo: - description: Get basic data about an account. + description: Get basic data about an account. labels: - Accounts - XRP --- + # account_info + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/AccountInfo.cpp "Source") The `account_info` command retrieves information about an account, its activity, and its XRP balance. All information retrieved is relative to a particular version of the ledger. @@ -17,6 +19,7 @@ An example of an account_info request: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 2, @@ -26,28 +29,33 @@ An example of an account_info request: "queue": true } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "account_info", - "params": [ - { - "account": "rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn", - "ledger_index": "current", - "queue": true - } - ] + "method": "account_info", + "params": [ + { + "account": "rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn", + "ledger_index": "current", + "queue": true + } + ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh #Syntax: account_info account [ledger_index|ledger_hash] rippled account_info rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn validated ``` + {% /tab %} {% /tabs %} @@ -56,13 +64,13 @@ rippled account_info rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn validated The request contains the following parameters: -| `Field` | Type | Required? | Description | -|:---------------|:---------------------|:----------|-------------| -| `account` | String - [Address][] | Yes | The account to look up. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.11.0" %}Updated in: rippled 1.11.0{% /badge %} | -| `ledger_hash` | String | No | The unique hash of the ledger version to use. (See [Specifying Ledgers][]) | -| `ledger_index` | Number or String | No | The [ledger index][] of the ledger to use, or a shortcut string to choose a ledger automatically. (See [Specifying Ledgers][]) | +| `Field` | Type | Required? | Description | +| :------------- | :------------------- | :-------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `account` | String - [Address][] | Yes | The account to look up. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.11.0" %}Updated in: rippled 1.11.0{% /badge %} | +| `ledger_hash` | String | No | The unique hash of the ledger version to use. (See [Specifying Ledgers][]) | +| `ledger_index` | Number or String | No | The [ledger index][] of the ledger to use, or a shortcut string to choose a ledger automatically. (See [Specifying Ledgers][]) | | `queue` | Boolean | No | If `true`, return stats about [queued transactions](../../../../concepts/transactions/transaction-queue.md) sent by this account. Can only be used when querying for the data from the current open ledger. | -| `signer_lists` | Boolean | No | If `true`, return any [SignerList objects](../../../protocol/ledger-data/ledger-entry-types/signerlist.md) associated with this account. | +| `signer_lists` | Boolean | No | If `true`, return any [SignerList objects](../../../protocol/ledger-data/ledger-entry-types/signerlist.md) associated with this account. | The following fields are deprecated and should not be provided: `ident`, `ledger`, `strict`. @@ -73,6 +81,7 @@ An example of a successful response: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 5, @@ -120,9 +129,11 @@ An example of a successful response: } } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { "result": { @@ -168,92 +179,95 @@ An example of a successful response: } } ``` + {% /tab %} {% tab label="Commandline" %} + ```json { - "result" : { - "account_data" : { - "Account" : "rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn", - "Balance" : "9986", - "Flags" : 1114112, - "LedgerEntryType" : "AccountRoot", - "OwnerCount" : 0, - "PreviousTxnID" : "0705FE3F52057924C288296EF0EBF668E0C1A3646FBA8FAF9B73DCC0A797B4B2", - "PreviousTxnLgrSeq" : 51948740, - "RegularKey" : "rhLkGGNZdjSpnHJw4XAFw1Jy7PD8TqxoET", - "Sequence" : 192220, - "index" : "92FA6A9FC8EA6018D5D16532D7795C91BFB0831355BDFDA177E86C8BF997985F" - }, - "ledger_hash" : "8169428EDF7F046F817CE44F5F1DF23AD9FAEFFA2CBA7645C3254D66AA79B46E", - "ledger_index" : 56843712, - "status" : "success", - "validated" : true - } + "result": { + "account_data": { + "Account": "rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn", + "Balance": "9986", + "Flags": 1114112, + "LedgerEntryType": "AccountRoot", + "OwnerCount": 0, + "PreviousTxnID": "0705FE3F52057924C288296EF0EBF668E0C1A3646FBA8FAF9B73DCC0A797B4B2", + "PreviousTxnLgrSeq": 51948740, + "RegularKey": "rhLkGGNZdjSpnHJw4XAFw1Jy7PD8TqxoET", + "Sequence": 192220, + "index": "92FA6A9FC8EA6018D5D16532D7795C91BFB0831355BDFDA177E86C8BF997985F" + }, + "ledger_hash": "8169428EDF7F046F817CE44F5F1DF23AD9FAEFFA2CBA7645C3254D66AA79B46E", + "ledger_index": 56843712, + "status": "success", + "validated": true + } } ``` + {% /tab %} {% /tabs %} The response follows the [standard format][], with the result containing the requested account, its data, and a ledger to which it applies, as the following fields: -| `Field` | Type | Description | -|:-----------------------|:--------|:------------------------------------------| -| `account_data` | Object | The [AccountRoot ledger object](../../../protocol/ledger-data/ledger-entry-types/accountroot.md) with this account's information, as stored in the ledger. | -| `account_flags` | Object | The account's flag statuses (see below), based on the `Flags` field of the account. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.11.0" %}New in: rippled 1.11.0{% /badge %} | +| `Field` | Type | Description | +| :--------------------- | :------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `account_data` | Object | The [AccountRoot ledger object](../../../protocol/ledger-data/ledger-entry-types/accountroot.md) with this account's information, as stored in the ledger. | +| `account_flags` | Object | The account's flag statuses (see below), based on the `Flags` field of the account. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.11.0" %}New in: rippled 1.11.0{% /badge %} | | `signer_lists` | Array | [API v1][]: _(Omitted unless the request specified `signer_lists` and at least one SignerList is associated with the account.)_ Array of [SignerList ledger objects](../../../protocol/ledger-data/ledger-entry-types/signerlist.md) associated with this account for [Multi-Signing](../../../../concepts/accounts/multi-signing.md). Since an account can own at most one SignerList, this array must have exactly one member if it is present. The field is nested under `account_data`.
    [API v2][]: Identical to API v1, but the field is returned in the root response instead. [Clio](https://github.com/XRPLF/clio) implements the API v2 behavior in all cases. | -| `ledger_current_index` | Integer | _(Omitted if `ledger_index` is provided instead)_ The [ledger index][] of the current in-progress ledger, which was used when retrieving this information. | -| `ledger_index` | Integer | _(Omitted if `ledger_current_index` is provided instead)_ The [ledger index][] of the ledger version used when retrieving this information. The information does not contain any changes from ledger versions newer than this one. | -| `queue_data` | Object | _(Omitted unless `queue` specified as `true` and querying the current open ledger.)_ Information about [queued transactions](../../../../concepts/transactions/transaction-cost.md#queued-transactions) sent by this account. This information describes the state of the local `rippled` server, which may be different from other servers in the [peer-to-peer XRP Ledger network](../../../../concepts/networks-and-servers/peer-protocol.md). Some fields may be omitted because the values are calculated "lazily" by the queuing mechanism. | -| `validated` | Boolean | True if this data is from a validated ledger version; if omitted or set to false, this data is not final. | +| `ledger_current_index` | Integer | _(Omitted if `ledger_index` is provided instead)_ The [ledger index][] of the current in-progress ledger, which was used when retrieving this information. | +| `ledger_index` | Integer | _(Omitted if `ledger_current_index` is provided instead)_ The [ledger index][] of the ledger version used when retrieving this information. The information does not contain any changes from ledger versions newer than this one. | +| `queue_data` | Object | _(Omitted unless `queue` specified as `true` and querying the current open ledger.)_ Information about [queued transactions](../../../../concepts/transactions/transaction-cost.md#queued-transactions) sent by this account. This information describes the state of the local `rippled` server, which may be different from other servers in the [peer-to-peer XRP Ledger network](../../../../concepts/networks-and-servers/peer-protocol.md). Some fields may be omitted because the values are calculated "lazily" by the queuing mechanism. | +| `validated` | Boolean | True if this data is from a validated ledger version; if omitted or set to false, this data is not final. | The `account_flags` field contains the following nested fields: -| `Field` | Type | Description | -|:-----------------------|:--------|:------------------------------------------| -| `defaultRipple` | Boolean | If `true`, the account allows [rippling](../../../../concepts/tokens/fungible-tokens/rippling.md) on its trust lines by default. | -| `depositAuth` | Boolean | If `true`, the account is using [Deposit Authorization](../../../../concepts/accounts/depositauth.md) and does not accept any payments from unknown parties. | -| `disableMasterKey` | Boolean | If `true`, the account's [master key pair](../../../../concepts/accounts/cryptographic-keys.md) is disabled. | -| `disallowIncomingCheck` | Boolean | If `true`, the account does not allow others to send [Checks](../../../../concepts/payment-types/checks.md) to it. {% amendment-disclaimer name="DisallowIncoming" /%} | -| `disallowIncomingNFTokenOffer` | Boolean | If `true`, the account does not allow others to make [NFT buy or sell offers](../../../../concepts/tokens/nfts/trading.md) to it. {% amendment-disclaimer name="DisallowIncoming" /%} | -| `disallowIncomingPayChan` | Boolean | If `true`, the account does not allow others to make [Payment Channels](../../../../concepts/payment-types/payment-channels.md) to it. {% amendment-disclaimer name="DisallowIncoming" /%} | -| `disallowIncomingTrustline` | Boolean | If `true`, the account does not allow others to make [trust lines](../../../../concepts/tokens/fungible-tokens/index.md) to it. {% amendment-disclaimer name="DisallowIncoming" /%} | -| `disallowIncomingXRP` | Boolean | If `true`, the account does not want to receive XRP from others. (This is advisory, and not enforced at a protocol level.) | -| `globalFreeze` | Boolean | If `true`, all tokens issued by the account are currently frozen. | -| `noFreeze` | Boolean | If `true`, the account has permanently given up the abilities to freeze individual trust lines or end a global freeze. See [No Freeze](../../../../concepts/tokens/fungible-tokens/freezes.md#no-freeze) for details. | -| `passwordSpent` | Boolean | If `false`, the account can send a special [key reset transaction](../../../../concepts/transactions/transaction-cost.md#key-reset-transaction) with a transaction cost of 0. The protocol turns this flag on and off automatically; it is not controlled by a user-facing setting. | -| `requireAuthorization` | Boolean | If `true`, the account is using [Authorized Trust Lines](../../../../concepts/tokens/fungible-tokens/authorized-trust-lines.md) to limit who can hold the tokens it issues. | -| `requireDestinationTag` | Boolean | If `true`, the account [requires a destination tag](../../../../tutorials/how-tos/manage-account-settings/require-destination-tags.md) on all payments it receives. | +| `Field` | Type | Description | +| :----------------------------- | :------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `defaultRipple` | Boolean | If `true`, the account allows [rippling](../../../../concepts/tokens/fungible-tokens/rippling.md) on its trust lines by default. | +| `depositAuth` | Boolean | If `true`, the account is using [Deposit Authorization](../../../../concepts/accounts/depositauth.md) and does not accept any payments from unknown parties. | +| `disableMasterKey` | Boolean | If `true`, the account's [master key pair](../../../../concepts/accounts/cryptographic-keys.md) is disabled. | +| `disallowIncomingCheck` | Boolean | If `true`, the account does not allow others to send [Checks](../../../../concepts/payment-types/checks.md) to it. {% amendment-disclaimer name="DisallowIncoming" /%} | +| `disallowIncomingNFTokenOffer` | Boolean | If `true`, the account does not allow others to make [NFT buy or sell offers](../../../../concepts/tokens/nfts/trading.md) to it. {% amendment-disclaimer name="DisallowIncoming" /%} | +| `disallowIncomingPayChan` | Boolean | If `true`, the account does not allow others to make [Payment Channels](../../../../concepts/payment-types/payment-channels.md) to it. {% amendment-disclaimer name="DisallowIncoming" /%} | +| `disallowIncomingTrustline` | Boolean | If `true`, the account does not allow others to make [trust lines](../../../../concepts/tokens/fungible-tokens/index.md) to it. {% amendment-disclaimer name="DisallowIncoming" /%} | +| `disallowIncomingXRP` | Boolean | If `true`, the account does not want to receive XRP from others. (This is advisory, and not enforced at a protocol level.) | +| `globalFreeze` | Boolean | If `true`, all tokens issued by the account are currently frozen. | +| `noFreeze` | Boolean | If `true`, the account has permanently given up the abilities to freeze individual trust lines or end a global freeze. See [No Freeze](../../../../concepts/tokens/fungible-tokens/freezes.md#no-freeze) for details. | +| `passwordSpent` | Boolean | If `false`, the account can send a special [key reset transaction](../../../../concepts/transactions/transaction-cost.md#key-reset-transaction) with a transaction cost of 0. The protocol turns this flag on and off automatically; it is not controlled by a user-facing setting. | +| `requireAuthorization` | Boolean | If `true`, the account is using [Authorized Trust Lines](../../../../concepts/tokens/fungible-tokens/authorized-trust-lines.md) to limit who can hold the tokens it issues. | +| `requireDestinationTag` | Boolean | If `true`, the account [requires a destination tag](../../../../tutorials/how-tos/manage-account-settings/require-destination-tags.md) on all payments it receives. | The `queue_data` field, if present, contains the following nested fields: -| `Field` | Type | Description | -|:------------------------|:--------|:-----------------------------------------| -| `txn_count` | Integer | Number of queued transactions from this address. | +| `Field` | Type | Description | +| :---------------------- | :------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `txn_count` | Integer | Number of queued transactions from this address. | | `auth_change_queued` | Boolean | (May be omitted) Whether a transaction in the queue changes this address's [ways of authorizing transactions](../../../../concepts/transactions/index.md#authorizing-transactions). If `true`, this address can queue no further transactions until that transaction has been executed or dropped from the queue. | -| `lowest_sequence` | Integer | (May be omitted) The lowest [Sequence Number][] among transactions queued by this address. | -| `highest_sequence` | Integer | (May be omitted) The highest [Sequence Number][] among transactions queued by this address. | -| `max_spend_drops_total` | String | (May be omitted) Integer amount of [drops of XRP][] that could be debited from this address if every transaction in the queue consumes the maximum amount of XRP possible. | -| `transactions` | Array | (May be omitted) Information about each queued transaction from this address. | +| `lowest_sequence` | Integer | (May be omitted) The lowest [Sequence Number][] among transactions queued by this address. | +| `highest_sequence` | Integer | (May be omitted) The highest [Sequence Number][] among transactions queued by this address. | +| `max_spend_drops_total` | String | (May be omitted) Integer amount of [drops of XRP][] that could be debited from this address if every transaction in the queue consumes the maximum amount of XRP possible. | +| `transactions` | Array | (May be omitted) Information about each queued transaction from this address. | Each object in the `transactions` array of `queue_data`, if present, may contain any or all of the following fields: -| `Field` | Type | Description | -|:------------------|:--------|:-----------------------------------------------| +| `Field` | Type | Description | +| :---------------- | :------ | :------------------------------------------------------------------------------------------------------------------------------------------------------- | | `auth_change` | Boolean | Whether this transaction changes this address's [ways of authorizing transactions](../../../../concepts/transactions/index.md#authorizing-transactions). | -| `fee` | String | The [Transaction Cost](../../../../concepts/transactions/transaction-cost.md) of this transaction, in [drops of XRP][]. | -| `fee_level` | String | The transaction cost of this transaction, relative to the minimum cost for this type of transaction, in [fee levels][]. | -| `max_spend_drops` | String | The maximum amount of [XRP, in drops][], this transaction could send or destroy. | -| `seq` | Integer | The [Sequence Number][] of this transaction. | +| `fee` | String | The [Transaction Cost](../../../../concepts/transactions/transaction-cost.md) of this transaction, in [drops of XRP][]. | +| `fee_level` | String | The transaction cost of this transaction, relative to the minimum cost for this type of transaction, in [fee levels][]. | +| `max_spend_drops` | String | The maximum amount of [XRP, in drops][], this transaction could send or destroy. | +| `seq` | Integer | The [Sequence Number][] of this transaction. | ## Possible Errors -* Any of the [universal error types][]. -* `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. For example, the request specified `queue` as `true` but specified a `ledger_index` that is not the current open ledger. In [API v1][], you won't receive this error when specifying a non-boolean value for `signer_lists`. -* `actNotFound` - The address specified in the `account` field of the request does not correspond to an account in the ledger. -* `lgrNotFound` - The ledger specified by the `ledger_hash` or `ledger_index` does not exist, or it does exist but the server does not have it. +- Any of the [universal error types][]. +- `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. For example, the request specified `queue` as `true` but specified a `ledger_index` that is not the current open ledger. In [API v1][], you won't receive this error when specifying a non-boolean value for `signer_lists`. +- `actNotFound` - The address specified in the `account` field of the request does not correspond to an account in the ledger. +- `lgrNotFound` - The ledger specified by the `ledger_hash` or `ledger_index` does not exist, or it does exist but the server does not have it. [fee levels]: ../../../../concepts/transactions/transaction-cost.md#fee-levels diff --git a/docs/references/http-websocket-apis/public-api-methods/account-methods/account_lines.md b/docs/references/http-websocket-apis/public-api-methods/account-methods/account_lines.md index ff7f7458f2..11574cb048 100644 --- a/docs/references/http-websocket-apis/public-api-methods/account-methods/account_lines.md +++ b/docs/references/http-websocket-apis/public-api-methods/account-methods/account_lines.md @@ -2,10 +2,11 @@ html: account_lines.html parent: account-methods.html seo: - description: Get info about an account's trust lines. + description: Get info about an account's trust lines. labels: - Tokens --- + # account_lines [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/AccountLines.cpp "Source") @@ -19,6 +20,7 @@ An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": "example_account_lines", @@ -27,27 +29,32 @@ An example of the request format: "api_version": 2 } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "account_lines", - "params": [ - { - "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "api_version": 2 - } - ] + "method": "account_lines", + "params": [ + { + "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "api_version": 2 + } + ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh #Syntax: account_lines [] [|] rippled account_lines r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 ``` + {% /tab %} {% /tabs %} @@ -56,15 +63,15 @@ rippled account_lines r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 The request accepts the following parameters: -| Field | Type | Required? | Description | -|:-----------------|:---------------------|:----------|:------------| -| `account` | String - [Address][] | Yes | Look up trust lines connected to this account, from this account's perspective. | -| `ignore_default` | Boolean | No | If `true`, don't return trust lines where this account's side is in the default state. The default is `false`. | -| `ledger_hash` | String - [Hash][] | No | The unique hash of the ledger version to use. (See [Specifying Ledgers][]) | -| `ledger_index` | [Ledger Index][] | No | The [ledger index][] of the ledger to use, or a shortcut string to choose a ledger automatically. (See [Specifying Ledgers][]) | -| `limit` | Number | No | Limit the number of trust lines to retrieve. The server may return less than the specified limit, even if there are more pages of results. Must be within the inclusive range 10 to 400. Positive values outside this range are replaced with the closest valid option. The default is 200. | -| `marker` | [Marker][] | No | Value from a previous paginated response. Resume retrieving data where that response left off. | -| `peer` | String - [Address][] | No | A second account; if provided, filter results to trust lines connecting the two accounts. | +| Field | Type | Required? | Description | +| :--------------- | :------------------- | :-------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `account` | String - [Address][] | Yes | Look up trust lines connected to this account, from this account's perspective. | +| `ignore_default` | Boolean | No | If `true`, don't return trust lines where this account's side is in the default state. The default is `false`. | +| `ledger_hash` | String - [Hash][] | No | The unique hash of the ledger version to use. (See [Specifying Ledgers][]) | +| `ledger_index` | [Ledger Index][] | No | The [ledger index][] of the ledger to use, or a shortcut string to choose a ledger automatically. (See [Specifying Ledgers][]) | +| `limit` | Number | No | Limit the number of trust lines to retrieve. The server may return less than the specified limit, even if there are more pages of results. Must be within the inclusive range 10 to 400. Positive values outside this range are replaced with the closest valid option. The default is 200. | +| `marker` | [Marker][] | No | Value from a previous paginated response. Resume retrieving data where that response left off. | +| `peer` | String - [Address][] | No | A second account; if provided, filter results to trust lines connecting the two accounts. | The following parameters are deprecated and may be removed without further notice: `ledger` and `peer_index`. @@ -90,40 +97,40 @@ An example of a successful response: The response follows the [standard format][], with a successful result containing the address of the account and an array of trust line objects. Specifically, the result object contains the following fields: -| Field | Type | Required? | Description | -|:-----------------------|:------------------|:----------|:------------| -| `account` | String | Yes | Unique [Address][] of the account this request corresponds to. This is the "perspective account" for purpose of the trust lines. | -| `lines` | Array | Yes | Array of trust line objects, as described below. If the number of trust lines is large, only returns up to the `limit` at a time. | -| `ledger_current_index` | [Ledger Index][] | No | The ledger index that was used when retrieving this data. This field is only provided when using an open ledger version. | -| `ledger_index` | [Ledger Index][] | No | The ledger index that was used when retrieving this data. This field is only provided when using a closed ledger version. | -| `ledger_hash` | String - [Hash][] | No | The identifying hash the ledger version that was used when retrieving this data. This field is only provided when using a closed ledger version. | -| `marker` | [Marker][] | No | Server-defined value indicating the response is paginated. Pass this to the next call to resume where this call left off. Omitted when there are no additional pages after this one. | -|`limit` | Number | No | The maximum number of trust lines retrieved. The server may return fewer than the specified limit, even if more results are available. If no limit was specified in the request, use a default limit of 200. | +| Field | Type | Required? | Description | +| :--------------------- | :---------------- | :-------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `account` | String | Yes | Unique [Address][] of the account this request corresponds to. This is the "perspective account" for purpose of the trust lines. | +| `lines` | Array | Yes | Array of trust line objects, as described below. If the number of trust lines is large, only returns up to the `limit` at a time. | +| `ledger_current_index` | [Ledger Index][] | No | The ledger index that was used when retrieving this data. This field is only provided when using an open ledger version. | +| `ledger_index` | [Ledger Index][] | No | The ledger index that was used when retrieving this data. This field is only provided when using a closed ledger version. | +| `ledger_hash` | String - [Hash][] | No | The identifying hash the ledger version that was used when retrieving this data. This field is only provided when using a closed ledger version. | +| `marker` | [Marker][] | No | Server-defined value indicating the response is paginated. Pass this to the next call to resume where this call left off. Omitted when there are no additional pages after this one. | +| `limit` | Number | No | The maximum number of trust lines retrieved. The server may return fewer than the specified limit, even if more results are available. If no limit was specified in the request, use a default limit of 200. | Each trust line object has some combination of the following fields: -| Field | Type | Required? | Description | -|:-----------------|:---------------------------|:----------|:------------| -| `account` | String - [Address][] | Yes | The counterparty to this trust line. | -| `balance` | [String Number][] | Yes | Representation of the numeric balance currently held against this line. A positive balance means that the perspective account holds value; a negative balance means that the perspective account owes value. | -| `currency` | String - [Currency Code][] | Yes | The currency code of the token this trust line can hold. | -| `limit` | [String Number][] | Yes | The maximum amount of the given currency that this account is willing to owe the peer account | -| `limit_peer` | [String Number][] | Yes | The maximum amount of currency that the counterparty account is willing to owe the perspective account | -| `quality_in` | Number | Yes | Rate at which the account values incoming balances on this trust line, as a ratio of this value per 1 billion units. (For example, a value of 500 million represents a 0.5:1 ratio.) As a special case, 0 is treated as a 1:1 ratio. | -| `quality_out` | Number | Yes | Rate at which the account values outgoing balances on this trust line, as a ratio of this value per 1 billion units. (For example, a value of 500 million represents a 0.5:1 ratio.) As a special case, 0 is treated as a 1:1 ratio. | -| `no_ripple` | Boolean | No | If `true`, this account has enabled the [No Ripple flag](../../../../concepts/tokens/fungible-tokens/rippling.md) for this trust line. If present and `false`, this account has disabled the No Ripple flag, but, because the account also has the Default Ripple flag disabled, that is not considered [the default state](../../../protocol/ledger-data/ledger-entry-types/ripplestate.md#contributing-to-the-owner-reserve). If omitted, the account has the No Ripple flag disabled for this trust line and Default Ripple enabled. | -| `no_ripple_peer` | Boolean | No | If `true`, the peer account has enabled the [No Ripple flag](../../../../concepts/tokens/fungible-tokens/rippling.md) for this trust line. If present and `false`, this account has disabled the No Ripple flag, but, because the account also has the Default Ripple flag disabled, that is not considered [the default state](../../../protocol/ledger-data/ledger-entry-types/ripplestate.md#contributing-to-the-owner-reserve). If omitted, the account has the No Ripple flag disabled for this trust line and Default Ripple enabled. | -| `authorized` | Boolean | No | If `true`, the perspective account has [authorized this trust line](../../../../concepts/tokens/fungible-tokens/authorized-trust-lines.md). The default is `false`. | -| `peer_authorized`| Boolean | No | If `true`, the counterparty has [authorized this trust line](../../../../concepts/tokens/fungible-tokens/authorized-trust-lines.md). The default is `false`. | -| `freeze` | Boolean | No | If `true`, the perspective account has [frozen](../../../../concepts/tokens/fungible-tokens/freezes.md) this trust line. The default is `false`. | -| `freeze_peer` | Boolean | No | If `true`, the counterparty has [frozen](../../../../concepts/tokens/fungible-tokens/freezes.md) this trust line. The default is `false`. | +| Field | Type | Required? | Description | +| :---------------- | :------------------------- | :-------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `account` | String - [Address][] | Yes | The counterparty to this trust line. | +| `balance` | [String Number][] | Yes | Representation of the numeric balance currently held against this line. A positive balance means that the perspective account holds value; a negative balance means that the perspective account owes value. | +| `currency` | String - [Currency Code][] | Yes | The currency code of the token this trust line can hold. | +| `limit` | [String Number][] | Yes | The maximum amount of the given currency that this account is willing to owe the peer account | +| `limit_peer` | [String Number][] | Yes | The maximum amount of currency that the counterparty account is willing to owe the perspective account | +| `quality_in` | Number | Yes | Rate at which the account values incoming balances on this trust line, as a ratio of this value per 1 billion units. (For example, a value of 500 million represents a 0.5:1 ratio.) As a special case, 0 is treated as a 1:1 ratio. | +| `quality_out` | Number | Yes | Rate at which the account values outgoing balances on this trust line, as a ratio of this value per 1 billion units. (For example, a value of 500 million represents a 0.5:1 ratio.) As a special case, 0 is treated as a 1:1 ratio. | +| `no_ripple` | Boolean | No | If `true`, this account has enabled the [No Ripple flag](../../../../concepts/tokens/fungible-tokens/rippling.md) for this trust line. If present and `false`, this account has disabled the No Ripple flag, but, because the account also has the Default Ripple flag disabled, that is not considered [the default state](../../../protocol/ledger-data/ledger-entry-types/ripplestate.md#contributing-to-the-owner-reserve). If omitted, the account has the No Ripple flag disabled for this trust line and Default Ripple enabled. | +| `no_ripple_peer` | Boolean | No | If `true`, the peer account has enabled the [No Ripple flag](../../../../concepts/tokens/fungible-tokens/rippling.md) for this trust line. If present and `false`, this account has disabled the No Ripple flag, but, because the account also has the Default Ripple flag disabled, that is not considered [the default state](../../../protocol/ledger-data/ledger-entry-types/ripplestate.md#contributing-to-the-owner-reserve). If omitted, the account has the No Ripple flag disabled for this trust line and Default Ripple enabled. | +| `authorized` | Boolean | No | If `true`, the perspective account has [authorized this trust line](../../../../concepts/tokens/fungible-tokens/authorized-trust-lines.md). The default is `false`. | +| `peer_authorized` | Boolean | No | If `true`, the counterparty has [authorized this trust line](../../../../concepts/tokens/fungible-tokens/authorized-trust-lines.md). The default is `false`. | +| `freeze` | Boolean | No | If `true`, the perspective account has [frozen](../../../../concepts/tokens/fungible-tokens/freezes.md) this trust line. The default is `false`. | +| `freeze_peer` | Boolean | No | If `true`, the counterparty has [frozen](../../../../concepts/tokens/fungible-tokens/freezes.md) this trust line. The default is `false`. | ## Possible Errors -* Any of the [universal error types][]. -* `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. -* `actNotFound` - The [Address][] specified in the `account` field of the request does not correspond to an account in the ledger. -* `lgrNotFound` - The ledger specified by the `ledger_hash` or `ledger_index` does not exist, or it does exist but the server does not have it. -* `actMalformed` - If the `marker` field provided is not acceptable. +- Any of the [universal error types][]. +- `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. +- `actNotFound` - The [Address][] specified in the `account` field of the request does not correspond to an account in the ledger. +- `lgrNotFound` - The ledger specified by the `ledger_hash` or `ledger_index` does not exist, or it does exist but the server does not have it. +- `actMalformed` - If the `marker` field provided is not acceptable. {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/http-websocket-apis/public-api-methods/account-methods/account_nfts.md b/docs/references/http-websocket-apis/public-api-methods/account-methods/account_nfts.md index cdfa9bfde0..76f3aee7d2 100644 --- a/docs/references/http-websocket-apis/public-api-methods/account-methods/account_nfts.md +++ b/docs/references/http-websocket-apis/public-api-methods/account-methods/account_nfts.md @@ -1,10 +1,12 @@ --- seo: - description: Get a list of all NFTs for an account. + description: Get a list of all NFTs for an account. labels: - - Non-fungible Tokens, NFTs + - Non-fungible Tokens, NFTs --- + # account_nfts + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/AccountObjects.cpp "Source") The `account_nfts` method returns a list of `NFToken` objects for the specified account. @@ -12,6 +14,7 @@ The `account_nfts` method returns a list of `NFToken` objects for the specified {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} ## Request Format + An example of the request format: {% raw-partial file="/docs/_snippets/no-cli-syntax.md" /%} @@ -19,6 +22,7 @@ An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { "command": "account_nfts", @@ -26,18 +30,23 @@ An example of the request format: "ledger_index": "validated" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { "method": "account_nfts", - "params": [{ - "account": "rsuHaTvJh1bDmDoxX9QcKP7HEBSBt4XsHx", - "ledger_index": "validated" - }] + "params": [ + { + "account": "rsuHaTvJh1bDmDoxX9QcKP7HEBSBt4XsHx", + "ledger_index": "validated" + } + ] } ``` + {% /tab %} {% /tabs %} @@ -46,21 +55,22 @@ An example of the request format: The request includes the following parameters: -| Field | Type | Description | -|:---------------|:-----------------|:-----------------------------------------| -| `account` | String | The unique identifier of an account, typically the account's [Address][]. The request returns a list of NFTs owned by this account. | -| `ledger_hash` | String | _(Optional)_ The unique hash of the ledger version to use. (See [Specifying Ledgers][]) | -| `ledger_index` | String or Number | _(Optional)_ The [ledger index][] of the ledger to use, or a shortcut string to choose a ledger automatically. (See [Specifying Ledgers][]) | +| Field | Type | Description | +| :------------- | :--------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `account` | String | The unique identifier of an account, typically the account's [Address][]. The request returns a list of NFTs owned by this account. | +| `ledger_hash` | String | _(Optional)_ The unique hash of the ledger version to use. (See [Specifying Ledgers][]) | +| `ledger_index` | String or Number | _(Optional)_ The [ledger index][] of the ledger to use, or a shortcut string to choose a ledger automatically. (See [Specifying Ledgers][]) | | `limit` | Integer | _(Optional)_ Limit the number of [token pages][NFTokenPage object] to retrieve. Each page can contain up to 32 NFTs. The `limit` value cannot be lower than 20 or more than 400. Positive values outside this range are replaced with the closest valid option. The default is 100. | -| `marker` | [Marker][] | _(Optional)_ Value from a previous paginated response. Resume retrieving data where that response left off. | - +| `marker` | [Marker][] | _(Optional)_ Value from a previous paginated response. Resume retrieving data where that response left off. | ## Response Format + An example of a successful response: {% tabs %} {% tab label="WebSocket" %} + ```json { "result": { @@ -91,9 +101,11 @@ An example of a successful response: "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { "result": { @@ -123,41 +135,41 @@ An example of a successful response: } } ``` + {% /tab %} {% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: -| `Field` | Type | Description | -|:---------------|:-----------------|:-----------------------------------------| -| `account` | String | The account that owns the list of NFTs. | -| `account_nfts` | Array | A list of NFTs owned by the account, formatted as **NFT Objects** (see below). | -| `ledger_hash` | String | _(May be omitted)_ The identifying hash of the ledger that was used to generate this response. | -| `ledger_index` | Number - [Ledger Index][] | _(May be omitted)_ The ledger index of the ledger that was used to generate this response. | -| `ledger_current_index` | Number - [Ledger Index][] | _(May be omitted)_ The ledger index of the current in-progress ledger version, which was used to generate this response. | -| `validated` | Boolean | If included and set to `true`, the information in this response comes from a validated ledger version. Otherwise, the information is subject to change. | -| `marker` | [Marker][] | _(May be omitted)_ Server-defined value indicating the response is paginated. Pass this to the next call to resume where this call left off. Omitted when there are no additional pages after this one. | +| `Field` | Type | Description | +| :--------------------- | :------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `account` | String | The account that owns the list of NFTs. | +| `account_nfts` | Array | A list of NFTs owned by the account, formatted as **NFT Objects** (see below). | +| `ledger_hash` | String | _(May be omitted)_ The identifying hash of the ledger that was used to generate this response. | +| `ledger_index` | Number - [Ledger Index][] | _(May be omitted)_ The ledger index of the ledger that was used to generate this response. | +| `ledger_current_index` | Number - [Ledger Index][] | _(May be omitted)_ The ledger index of the current in-progress ledger version, which was used to generate this response. | +| `validated` | Boolean | If included and set to `true`, the information in this response comes from a validated ledger version. Otherwise, the information is subject to change. | +| `marker` | [Marker][] | _(May be omitted)_ Server-defined value indicating the response is paginated. Pass this to the next call to resume where this call left off. Omitted when there are no additional pages after this one. | ### NFT Objects Each object in the `account_nfts` array represents one [NFToken][] and has the following fields: -| `Field` | Type | Description | -|:---------------|:---------------------|:-------------------------------------| -| `Flags` | Number | A bit-map of boolean flags enabled for this NFToken. See [NFToken Flags](../../../protocol/data-types/nftoken.md#nftoken-flags) for possible values. | -| `Issuer` | String - [Address][] | The account that issued this NFToken. | -| `NFTokenID` | String | The unique identifier of this NFToken, in hexadecimal. | +| `Field` | Type | Description | +| :------------- | :------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Flags` | Number | A bit-map of boolean flags enabled for this NFToken. See [NFToken Flags](../../../protocol/data-types/nftoken.md#nftoken-flags) for possible values. | +| `Issuer` | String - [Address][] | The account that issued this NFToken. | +| `NFTokenID` | String | The unique identifier of this NFToken, in hexadecimal. | | `NFTokenTaxon` | Number | The unscrambled version of this token's [taxon](../../../protocol/data-types/nftoken.md#nftokentaxon). Several tokens with the same taxon might represent instances of a limited series. | -| `URI` | String | The URI data associated with this NFToken, in hexadecimal. | -| `nft_serial` | Number | The token sequence number of this NFToken, which is unique for its issuer. | - +| `URI` | String | The URI data associated with this NFToken, in hexadecimal. | +| `nft_serial` | Number | The token sequence number of this NFToken, which is unique for its issuer. | ## Possible Errors -* Any of the [universal error types][]. -* `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. -* `actNotFound` - The [Address][] specified in the `account` field of the request does not correspond to an account in the ledger. -* `lgrNotFound` - The ledger specified by the `ledger_hash` or `ledger_index` does not exist, or it does exist but the server does not have it. +- Any of the [universal error types][]. +- `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. +- `actNotFound` - The [Address][] specified in the `account` field of the request does not correspond to an account in the ledger. +- `lgrNotFound` - The ledger specified by the `ledger_hash` or `ledger_index` does not exist, or it does exist but the server does not have it. {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/http-websocket-apis/public-api-methods/account-methods/account_objects.md b/docs/references/http-websocket-apis/public-api-methods/account-methods/account_objects.md index f266f04007..0fd8dc13bb 100644 --- a/docs/references/http-websocket-apis/public-api-methods/account-methods/account_objects.md +++ b/docs/references/http-websocket-apis/public-api-methods/account-methods/account_objects.md @@ -1,24 +1,27 @@ --- seo: - description: Get all ledger objects owned by an account. + description: Get all ledger objects owned by an account. labels: - Accounts - Data Retention --- + # account_objects + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/AccountObjects.cpp "Source") The `account_objects` command returns _all_ ledger entries owned by an account, in their raw [ledger format][]. There are other API methods that are specialized for getting certain types of ledger entry, such as the [account_lines method][] for trust lines, or [account_offers method][] for offers. These methods provide a processed view of the data that is more suitable for typical use cases. Use `account_objects` if you want to get ledger entries of types that don't have a specialized method, or if you want to get the entries in their canonical format. - ## Request Format + An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": "example_account_objects", @@ -30,30 +33,35 @@ An example of the request format: "limit": 10 } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "account_objects", - "params": [ - { - "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "ledger_index": "validated", - "type": "state", - "deletion_blockers_only": false, - "limit": 10 - } - ] + "method": "account_objects", + "params": [ + { + "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "ledger_index": "validated", + "type": "state", + "deletion_blockers_only": false, + "limit": 10 + } + ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh #Syntax: account_objects [] rippled account_objects r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 validated ``` + {% /tab %} {% /tabs %} @@ -62,14 +70,14 @@ rippled account_objects r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 validated The request includes the following parameters: -| `Field` | Type | Required? | Description | -|:-------------------------|:---------------------|:----------|-------------| -| `account` | String - [Address][] | Yes | Get ledger entries associated with this account. | -| `deletion_blockers_only` | Boolean | No | If `true`, only return ledger entries that would block this account from [being deleted](../../../../concepts/accounts/deleting-accounts.md). The default is `false`. | -| `ledger_hash` | [Hash][] | No | The unique hash of the ledger version to use. (See [Specifying Ledgers][]) | -| `ledger_index` | [Ledger Index][] | No | The [ledger index][] of the ledger to use, or a shortcut string to choose a ledger automatically. (See [Specifying Ledgers][]) | -| `limit` | Number | No | The maximum number of ledger entries to include in the results. Must be within the inclusive range `10` to `400` on non-admin connections. The default is `200`. | -| `marker` | [Marker][] | No | Value from a previous paginated response. Resume retrieving data where that response left off. | +| `Field` | Type | Required? | Description | +| :----------------------- | :------------------- | :-------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `account` | String - [Address][] | Yes | Get ledger entries associated with this account. | +| `deletion_blockers_only` | Boolean | No | If `true`, only return ledger entries that would block this account from [being deleted](../../../../concepts/accounts/deleting-accounts.md). The default is `false`. | +| `ledger_hash` | [Hash][] | No | The unique hash of the ledger version to use. (See [Specifying Ledgers][]) | +| `ledger_index` | [Ledger Index][] | No | The [ledger index][] of the ledger to use, or a shortcut string to choose a ledger automatically. (See [Specifying Ledgers][]) | +| `limit` | Number | No | The maximum number of ledger entries to include in the results. Must be within the inclusive range `10` to `400` on non-admin connections. The default is `200`. | +| `marker` | [Marker][] | No | Value from a previous paginated response. Resume retrieving data where that response left off. | | `type` | String | No | Filter results to a specific type of ledger entry. This field accepts canonical names of [ledger entry types](../../../protocol/ledger-data/ledger-entry-types/index.md) (case insensitive) or [short names](../../api-conventions/ledger-entry-short-names.md). Ledger entry types that can't appear in an owner directory are not allowed. If omitted, return ledger entries of all types. | {% admonition type="info" name="Note" %}The commandline interface to the `account_objects` command doesn't accept the `type` field. Use the [json method][] to send the JSON-RPC format request on the commandline instead.{% /admonition %} @@ -96,16 +104,16 @@ An example of a successful response: The response follows the [standard format][], with a successful result containing the following fields: -| `Field` | Type | Description | -|:-----------------------|:--------------------------|:------------------------| -| `account` | String - [Address][] | The account this request corresponds to. | +| `Field` | Type | Description | +| :--------------------- | :------------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `account` | String - [Address][] | The account this request corresponds to. | | `account_objects` | Array | Array of ledger entries in this account's owner directory. This includes entries that are owned by this account and entries that are linked to this account but owned by someone else, such as escrows where this account is the destination. Each member is a ledger entry in its raw [ledger format][]. This may contain fewer entries than the maximum specified in the `limit` field. | -| `ledger_hash` | String | _(May be omitted)_ The identifying hash of the ledger that was used to generate this response. | -| `ledger_index` | Number - [Ledger Index][] | _(May be omitted)_ The ledger index of the ledger that was used to generate this response. | -| `ledger_current_index` | Number - [Ledger Index][] | _(May be omitted)_ The ledger index of the open ledger that was used to generate this response. | -| `limit` | Number | _(May be omitted)_ The limit that was used in this request, if any. | -| `marker` | [Marker][] | _(May be omitted)_ Server-defined value indicating the response is paginated. Pass this to the next call to resume where this call left off. Omitted when there are no additional pages after this one. | -| `validated` | Boolean | _(May be omitted)_ If `true`, the information in this response comes from a validated ledger version. Otherwise, the information is subject to change. | +| `ledger_hash` | String | _(May be omitted)_ The identifying hash of the ledger that was used to generate this response. | +| `ledger_index` | Number - [Ledger Index][] | _(May be omitted)_ The ledger index of the ledger that was used to generate this response. | +| `ledger_current_index` | Number - [Ledger Index][] | _(May be omitted)_ The ledger index of the open ledger that was used to generate this response. | +| `limit` | Number | _(May be omitted)_ The limit that was used in this request, if any. | +| `marker` | [Marker][] | _(May be omitted)_ Server-defined value indicating the response is paginated. Pass this to the next call to resume where this call left off. Omitted when there are no additional pages after this one. | +| `validated` | Boolean | _(May be omitted)_ If `true`, the information in this response comes from a validated ledger version. Otherwise, the information is subject to change. | {% admonition type="warning" name="Caution" %} The `account_objects` array may be empty even if there are additional ledger entries to retrieve. This is especially likely when using `type` to filter ledger entry types. If the response includes a `marker` field, there are additional pages of data; if the response does not include a `marker`, then this is the end of the data. This behavior is a consequence of how the API method iterates through the account's owner directory, and a precaution against requests putting excessive load on the server. @@ -113,9 +121,9 @@ The `account_objects` array may be empty even if there are additional ledger ent ## Possible Errors -* Any of the [universal error types][]. -* `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. -* `actNotFound` - The [Address][] specified in the `account` field of the request does not correspond to an account in the ledger. -* `lgrNotFound` - The ledger specified by the `ledger_hash` or `ledger_index` does not exist, or it does exist but the server does not have it. +- Any of the [universal error types][]. +- `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. +- `actNotFound` - The [Address][] specified in the `account` field of the request does not correspond to an account in the ledger. +- `lgrNotFound` - The ledger specified by the `ledger_hash` or `ledger_index` does not exist, or it does exist but the server does not have it. {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/http-websocket-apis/public-api-methods/account-methods/account_offers.md b/docs/references/http-websocket-apis/public-api-methods/account-methods/account_offers.md index 5157ef191a..1ee077318e 100644 --- a/docs/references/http-websocket-apis/public-api-methods/account-methods/account_offers.md +++ b/docs/references/http-websocket-apis/public-api-methods/account-methods/account_offers.md @@ -2,11 +2,13 @@ html: account_offers.html parent: account-methods.html seo: - description: Get info about an account's currency exchange offers. + description: Get info about an account's currency exchange offers. labels: - Decentralized Exchange --- + # account_offers + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/AccountOffers.cpp "Source") The `account_offers` method retrieves a list of [offers](../../../../concepts/tokens/decentralized-exchange/offers.md) made by a given [account](../../../../concepts/accounts/index.md) that are outstanding as of a particular [ledger version](../../../../concepts/ledgers/index.md). @@ -18,6 +20,7 @@ An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 9, @@ -25,26 +28,31 @@ An example of the request format: "account": "rpP2JgiMyTF5jR5hLG3xHCPi1knBb1v9cM" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "account_offers", - "params": [ - { - "account": "rpP2JgiMyTF5jR5hLG3xHCPi1knBb1v9cM" - } - ] + "method": "account_offers", + "params": [ + { + "account": "rpP2JgiMyTF5jR5hLG3xHCPi1knBb1v9cM" + } + ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh #Syntax: account_offers account [ledger_index] rippled account_offers rpP2JgiMyTF5jR5hLG3xHCPi1knBb1v9cM current ``` + {% /tab %} {% /tabs %} @@ -53,13 +61,13 @@ rippled account_offers rpP2JgiMyTF5jR5hLG3xHCPi1knBb1v9cM current A request can include the following parameters: -| Field | Type | Required? | Description | -|:---------------|:---------------------|:----------|-------------| -| `account` | String - [Address][] | Yes | Look up Offers placed by this account. | -| `ledger_hash` | [Hash][] | No | The unique hash of the ledger version to use. (See [Specifying Ledgers][]) | -| `ledger_index` | [Ledger Index][] | No | The [ledger index][] of the ledger to use, or a shortcut string to choose a ledger automatically. (See [Specifying Ledgers][]) | +| Field | Type | Required? | Description | +| :------------- | :------------------- | :-------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `account` | String - [Address][] | Yes | Look up Offers placed by this account. | +| `ledger_hash` | [Hash][] | No | The unique hash of the ledger version to use. (See [Specifying Ledgers][]) | +| `ledger_index` | [Ledger Index][] | No | The [ledger index][] of the ledger to use, or a shortcut string to choose a ledger automatically. (See [Specifying Ledgers][]) | | `limit` | Number | No | Limit the number of Offers to retrieve. The server may return fewer than this number of results. Must be within the inclusive range 10 to 400. Positive values outside this range are replaced with the closest valid option.The default is 200. | -| `marker` | [Marker][] | No | Value from a previous paginated response. Resume retrieving data where that response left off. | +| `marker` | [Marker][] | No | Value from a previous paginated response. Resume retrieving data where that response left off. | The following parameters are deprecated should not be provided: `ledger`, `strict`. @@ -70,6 +78,7 @@ An example of a successful response: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 9, @@ -107,9 +116,11 @@ An example of a successful response: } } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -157,65 +168,67 @@ An example of a successful response: } } ``` + {% /tab %} {% tab label="Commandline" %} + ```json { - "result" : { - "account" : "rpP2JgiMyTF5jR5hLG3xHCPi1knBb1v9cM", - "ledger_current_index" : 57110969, - "offers" : [ - { - "flags" : 0, - "quality" : "1499850014.892974", - "seq" : 7916201, - "taker_gets" : { - "currency" : "BCH", - "issuer" : "rcyS4CeCZVYvTiKcxj6Sx32ibKwcDHLds", - "value" : "0.5268598580881351" - }, - "taker_pays" : "790210766" - } - ], - "status" : "success", - "validated" : false - } + "result": { + "account": "rpP2JgiMyTF5jR5hLG3xHCPi1knBb1v9cM", + "ledger_current_index": 57110969, + "offers": [ + { + "flags": 0, + "quality": "1499850014.892974", + "seq": 7916201, + "taker_gets": { + "currency": "BCH", + "issuer": "rcyS4CeCZVYvTiKcxj6Sx32ibKwcDHLds", + "value": "0.5268598580881351" + }, + "taker_pays": "790210766" + } + ], + "status": "success", + "validated": false + } } ``` + {% /tab %} {% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: -| `Field` | Type | Description | -|:-----------------------|:--------------------------|:------------------------| -| `account` | String | Unique [Address][] identifying the account that made the offers | +| `Field` | Type | Description | +| :--------------------- | :------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `account` | String | Unique [Address][] identifying the account that made the offers | | `offers` | Array | Array of objects, where each object represents an offer made by this account that is outstanding as of the requested ledger version. If the number of offers is large, only returns up to `limit` at a time. | -| `ledger_current_index` | Number - [Ledger Index][] | _(Omitted if `ledger_hash` or `ledger_index` provided)_ The ledger index of the current in-progress ledger version, which was used when retrieving this data. | -| `ledger_index` | Number - [Ledger Index][] | _(Omitted if `ledger_current_index` provided instead)_ The ledger index of the ledger version that was used when retrieving this data, as requested. | -| `ledger_hash` | String - [Hash][] | _(May be omitted)_ The identifying hash of the ledger version that was used when retrieving this data. | -| `marker` | [Marker][] | _(May be omitted)_ Server-defined value indicating the response is paginated. Pass this to the next call to resume where this call left off. Omitted when there are no pages of information after this one. | - +| `ledger_current_index` | Number - [Ledger Index][] | _(Omitted if `ledger_hash` or `ledger_index` provided)_ The ledger index of the current in-progress ledger version, which was used when retrieving this data. | +| `ledger_index` | Number - [Ledger Index][] | _(Omitted if `ledger_current_index` provided instead)_ The ledger index of the ledger version that was used when retrieving this data, as requested. | +| `ledger_hash` | String - [Hash][] | _(May be omitted)_ The identifying hash of the ledger version that was used when retrieving this data. | +| `marker` | [Marker][] | _(May be omitted)_ Server-defined value indicating the response is paginated. Pass this to the next call to resume where this call left off. Omitted when there are no pages of information after this one. | Each offer object contains the following fields: -| `Field` | Type | Description | -|:-------------|:-----------------|:-------------------------------------------| -| `flags` | Unsigned integer | Options set for this offer entry as bit-flags. | -| `seq` | Unsigned integer | Sequence number of the transaction that created this entry. (Transaction [sequence numbers](../../../protocol/data-types/basic-data-types.md#account-sequence) are relative to accounts.) | -| `taker_gets` | String or Object | The amount the account accepting the offer receives, as a String representing an amount in XRP, or a currency specification object. (See [Specifying Currency Amounts][Currency Amount]) | -| `taker_pays` | String or Object | The amount the account accepting the offer provides, as a String representing an amount in XRP, or a currency specification object. (See [Specifying Currency Amounts][Currency Amount]) | +| `Field` | Type | Description | +| :----------- | :--------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `flags` | Unsigned integer | Options set for this offer entry as bit-flags. | +| `seq` | Unsigned integer | Sequence number of the transaction that created this entry. (Transaction [sequence numbers](../../../protocol/data-types/basic-data-types.md#account-sequence) are relative to accounts.) | +| `taker_gets` | String or Object | The amount the account accepting the offer receives, as a String representing an amount in XRP, or a currency specification object. (See [Specifying Currency Amounts][Currency Amount]) | +| `taker_pays` | String or Object | The amount the account accepting the offer provides, as a String representing an amount in XRP, or a currency specification object. (See [Specifying Currency Amounts][Currency Amount]) | | `quality` | String | The exchange rate of the offer, as the ratio of the original `taker_pays` divided by the original `taker_gets`. When executing offers, the offer with the most favorable (lowest) quality is consumed first; offers with the same quality are executed from oldest to newest. | -| `expiration` | Unsigned integer | (May be omitted) A time after which this offer is considered unfunded, as the number of [seconds since the Ripple Epoch][]. See also: [Offer Expiration](../../../../concepts/tokens/decentralized-exchange/offers.md#offer-expiration). | +| `expiration` | Unsigned integer | (May be omitted) A time after which this offer is considered unfunded, as the number of [seconds since the Ripple Epoch][]. See also: [Offer Expiration](../../../../concepts/tokens/decentralized-exchange/offers.md#offer-expiration). | ## Possible Errors -* Any of the [universal error types][]. -* `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. -* `actNotFound` - The [Address][] specified in the `account` field of the request does not correspond to an account in the ledger. -* `lgrNotFound` - The ledger specified by the `ledger_hash` or `ledger_index` does not exist, or it does exist but the server does not have it. -* `actMalformed` - The `marker` field provided is incorrect. +- Any of the [universal error types][]. +- `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. +- `actNotFound` - The [Address][] specified in the `account` field of the request does not correspond to an account in the ledger. +- `lgrNotFound` - The ledger specified by the `ledger_hash` or `ledger_index` does not exist, or it does exist but the server does not have it. +- `actMalformed` - The `marker` field provided is incorrect. {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/http-websocket-apis/public-api-methods/account-methods/account_tx.md b/docs/references/http-websocket-apis/public-api-methods/account-methods/account_tx.md index c1f81f3274..855bb957c0 100644 --- a/docs/references/http-websocket-apis/public-api-methods/account-methods/account_tx.md +++ b/docs/references/http-websocket-apis/public-api-methods/account-methods/account_tx.md @@ -1,11 +1,13 @@ --- seo: - description: Get a list of transactions affecting an account. + description: Get a list of transactions affecting an account. labels: - - Payments - - Accounts + - Payments + - Accounts --- + # account_tx + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/AccountTx.cpp "Source") The `account_tx` method retrieves a list of validated transactions that involve a given account. @@ -17,6 +19,7 @@ An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": "example_account_tx", @@ -30,33 +33,38 @@ An example of the request format: "api_version": 2 } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "account_tx", - "params": [ - { - "account": "rLNaPoKeeBjZe2qs6x52yVPZpZ8td4dc6w", - "binary": false, - "forward": false, - "ledger_index_max": -1, - "ledger_index_min": -1, - "limit": 2, - "api_version": 2 - } - ] + "method": "account_tx", + "params": [ + { + "account": "rLNaPoKeeBjZe2qs6x52yVPZpZ8td4dc6w", + "binary": false, + "forward": false, + "ledger_index_max": -1, + "ledger_index_min": -1, + "limit": 2, + "api_version": 2 + } + ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh # Syntax: account_tx account [ledger_index_min [ledger_index_max]] [limit] [offset] [binary] [count] [descending] # For binary/count/descending, use the parameter name for true and omit for false. rippled -- account_tx rLNaPoKeeBjZe2qs6x52yVPZpZ8td4dc6w -1 -1 2 0 binary descending ``` + {% /tab %} {% /tabs %} @@ -65,22 +73,21 @@ rippled -- account_tx rLNaPoKeeBjZe2qs6x52yVPZpZ8td4dc6w -1 -1 2 0 binary descen The request includes the following parameters: -| `Field` | Type | Description | -|:-------------------|:-------------------------------------------|:-----------| -| `account` | String | A unique identifier for the account, most commonly the account's address. | -| `tx_type` | String | _(Optional)_ **Clio Only** Return only transactions of a specific type, such as "Clawback", "AccountSet", "AccountDelete", et al. Case-insensitive. See [Transaction Types](../../../../references//protocol/transactions/types/index.md#transaction-types). [New in: Clio v2.0](https://github.com/XRPLF/clio/releases/tag/2.0.0 "BADGE_BLUE") [AMM support since: Clio v2.1.0](https://github.com/XRPLF/clio/releases/tag/2.1.0 "BADGE_GREEN") | -| `ledger_index_min` | Integer | _(Optional)_ Use to specify the earliest ledger to include transactions from. A value of `-1` instructs the server to use the earliest validated ledger version available. | -| `ledger_index_max` | Integer | _(Optional)_ Use to specify the most recent ledger to include transactions from. A value of `-1` instructs the server to use the most recent validated ledger version available. | -| `ledger_hash` | String | _(Optional)_ Use to look for transactions from a single ledger only. (See [Specifying Ledgers][].) | -| `ledger_index` | String or Unsigned Integer | _(Optional)_ Use to look for transactions from a single ledger only. (See [Specifying Ledgers][].) | -| `binary` | Boolean | _(Optional)_ Defaults to `false`. If set to `true`, returns transactions as hex strings instead of JSON. | -| `forward` | Boolean | _(Optional)_ Defaults to `false`. If set to `true`, returns values indexed with the oldest ledger first. Otherwise, the results are indexed with the newest ledger first. (Each page of results may not be internally ordered, but the pages are overall ordered.) | -| `limit` | Integer | _(Optional)_ Default varies. Limit the number of transactions to retrieve. The server is not required to honor this value. | -| `marker` | [Marker][] | Value from a previous paginated response. Resume retrieving data where that response left off. This value is stable even if there is a change in the server's range of available ledgers. | +| `Field` | Type | Description | +| :----------------- | :------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `account` | String | A unique identifier for the account, most commonly the account's address. | +| `tx_type` | String | _(Optional)_ **Clio Only** Return only transactions of a specific type, such as "Clawback", "AccountSet", "AccountDelete", et al. Case-insensitive. See [Transaction Types](../../../../references//protocol/transactions/types/index.md#transaction-types). [New in: Clio v2.0](https://github.com/XRPLF/clio/releases/tag/2.0.0 'BADGE_BLUE') [AMM support since: Clio v2.1.0](https://github.com/XRPLF/clio/releases/tag/2.1.0 'BADGE_GREEN') | +| `ledger_index_min` | Integer | _(Optional)_ Use to specify the earliest ledger to include transactions from. A value of `-1` instructs the server to use the earliest validated ledger version available. | +| `ledger_index_max` | Integer | _(Optional)_ Use to specify the most recent ledger to include transactions from. A value of `-1` instructs the server to use the most recent validated ledger version available. | +| `ledger_hash` | String | _(Optional)_ Use to look for transactions from a single ledger only. (See [Specifying Ledgers][].) | +| `ledger_index` | String or Unsigned Integer | _(Optional)_ Use to look for transactions from a single ledger only. (See [Specifying Ledgers][].) | +| `binary` | Boolean | _(Optional)_ Defaults to `false`. If set to `true`, returns transactions as hex strings instead of JSON. | +| `forward` | Boolean | _(Optional)_ Defaults to `false`. If set to `true`, returns values indexed with the oldest ledger first. Otherwise, the results are indexed with the newest ledger first. (Each page of results may not be internally ordered, but the pages are overall ordered.) | +| `limit` | Integer | _(Optional)_ Default varies. Limit the number of transactions to retrieve. The server is not required to honor this value. | +| `marker` | [Marker][] | Value from a previous paginated response. Resume retrieving data where that response left off. This value is stable even if there is a change in the server's range of available ledgers. | - [API v2]: If you specify either `ledger_index` or `ledger_hash`, including `ledger_index_min` and `ledger_index_max` returns an `invalidParams` error. - ### Iterating over queried data As with other paginated methods, you can use the `marker` field to return multiple pages of data. @@ -94,6 +101,7 @@ An example of a successful response: {% tabs %} {% tab label="WebSocket" %} + ```json { "result": { @@ -326,9 +334,11 @@ An example of a successful response: "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -560,9 +570,11 @@ An example of a successful response: } } ``` + {% /tab %} {% tab label="Commandline" %} + ```json Loading: "/etc/opt/ripple/rippled.cfg" 2025-Dec-19 03:16:00.638871262 UTC HTTPClient:NFO Connecting to 127.0.0.1:5005 @@ -795,6 +807,7 @@ Loading: "/etc/opt/ripple/rippled.cfg" } } ``` + {% /tab %} {% /tabs %} @@ -805,57 +818,57 @@ The response follows the [standard format][], with a successful result containin {% tab label="API v2" %} -| `Field` | Type | Description | -|:-------------------|:---------------------------|:---------------------------| -| `account` | String | Unique [Address][] identifying the related account | -| `ledger_index_min` | Integer - [Ledger Index][] | The ledger index of the earliest ledger actually searched for transactions. | -| `ledger_index_max` | Integer - [Ledger Index][] | The ledger index of the most recent ledger actually searched for transactions. | -| `limit` | Integer | The `limit` value used in the request. (This may differ from the actual limit value enforced by the server.) | -| `marker` | [Marker][] | Server-defined value indicating the response is paginated. Pass this to the next call to resume where this call left off. | -| `transactions` | Array | Array of transactions matching the request's criteria, as explained below. | +| `Field` | Type | Description | +| :----------------- | :------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `account` | String | Unique [Address][] identifying the related account | +| `ledger_index_min` | Integer - [Ledger Index][] | The ledger index of the earliest ledger actually searched for transactions. | +| `ledger_index_max` | Integer - [Ledger Index][] | The ledger index of the most recent ledger actually searched for transactions. | +| `limit` | Integer | The `limit` value used in the request. (This may differ from the actual limit value enforced by the server.) | +| `marker` | [Marker][] | Server-defined value indicating the response is paginated. Pass this to the next call to resume where this call left off. | +| `transactions` | Array | Array of transactions matching the request's criteria, as explained below. | | `validated` | Boolean | If included and set to `true`, the information in this response comes from a validated ledger version. Otherwise, the information is subject to change. | {% admonition type="info" name="Note" %}The server may respond with different values of `ledger_index_min` and `ledger_index_max` than you provided in the request, for example if it did not have the versions you specified on hand.{% /admonition %} Each transaction object includes the following fields, depending on whether it was requested in JSON or hex string (`"binary":true`) format. -| `Field` | Type | Description | -|:-----------------|:----------------|:-------------------------| -| `close_time_iso` | String | The time the ledger containing this transaction was closed, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format. | -| `hash` | String | The unique hash identifier of the transaction. | -| `ledger_hash` | String | A hex string of the ledger version that included this transaction. | -| `ledger_index` | Integer | The [ledger index][] of the ledger version that included this transaction. | -| `tx_json` | Object (JSON) | (JSON mode) JSON object defining the transaction. | -| `tx_blob` | String (Binary) | (Binary mode) A unique hex string defining the transaction. | -| `meta` | Object (JSON) | (JSON mode) The transaction results metadata in JSON. | -| `meta_blob` | String (Binary) | (Binary mode) The transaction results metadata as a hex string. | +| `Field` | Type | Description | +| :--------------- | :-------------- | :------------------------------------------------------------------------------------------------------------------------------------ | +| `close_time_iso` | String | The time the ledger containing this transaction was closed, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format. | +| `hash` | String | The unique hash identifier of the transaction. | +| `ledger_hash` | String | A hex string of the ledger version that included this transaction. | +| `ledger_index` | Integer | The [ledger index][] of the ledger version that included this transaction. | +| `tx_json` | Object (JSON) | (JSON mode) JSON object defining the transaction. | +| `tx_blob` | String (Binary) | (Binary mode) A unique hex string defining the transaction. | +| `meta` | Object (JSON) | (JSON mode) The transaction results metadata in JSON. | +| `meta_blob` | String (Binary) | (Binary mode) The transaction results metadata as a hex string. | | `validated` | Boolean | Whether or not the transaction is included in a validated ledger. Any transaction not yet in a validated ledger is subject to change. | {% /tab %} {% tab label="API v1" %} -| `Field` | Type | Description | -|:-------------------|:---------------------------|:---------------------------| -| `account` | String | Unique [Address][] identifying the related account | -| `ledger_index_min` | Integer - [Ledger Index][] | The ledger index of the earliest ledger actually searched for transactions. | -| `ledger_index_max` | Integer - [Ledger Index][] | The ledger index of the most recent ledger actually searched for transactions. | -| `limit` | Integer | The `limit` value used in the request. (This may differ from the actual limit value enforced by the server.) | -| `marker` | [Marker][] | Server-defined value indicating the response is paginated. Pass this to the next call to resume where this call left off. | -| `transactions` | Array | Array of transactions matching the request's criteria, as explained below. | +| `Field` | Type | Description | +| :----------------- | :------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `account` | String | Unique [Address][] identifying the related account | +| `ledger_index_min` | Integer - [Ledger Index][] | The ledger index of the earliest ledger actually searched for transactions. | +| `ledger_index_max` | Integer - [Ledger Index][] | The ledger index of the most recent ledger actually searched for transactions. | +| `limit` | Integer | The `limit` value used in the request. (This may differ from the actual limit value enforced by the server.) | +| `marker` | [Marker][] | Server-defined value indicating the response is paginated. Pass this to the next call to resume where this call left off. | +| `transactions` | Array | Array of transactions matching the request's criteria, as explained below. | | `validated` | Boolean | If included and set to `true`, the information in this response comes from a validated ledger version. Otherwise, the information is subject to change. | {% admonition type="info" name="Note" %}The server may respond with different values of `ledger_index_min` and `ledger_index_max` than you provided in the request, for example if it did not have the versions you specified on hand.{% /admonition %} Each transaction object includes the following fields, depending on whether it was requested in JSON or hex string (`"binary":true`) format. -| `Field` | Type | Description | -|:---------------|:---------------------------------|:-------------------------| -| `ledger_index` | Integer | The [ledger index][] of the ledger version that included this transaction. | -| `tx` | Object | (JSON mode) JSON object defining the transaction. | -| `tx_blob` | String | (Binary mode) Hex string representing the transaction. | +| `Field` | Type | Description | +| :------------- | :------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `ledger_index` | Integer | The [ledger index][] of the ledger version that included this transaction. | +| `tx` | Object | (JSON mode) JSON object defining the transaction. | +| `tx_blob` | String | (Binary mode) Hex string representing the transaction. | | `meta` | Object (JSON) or String (Binary) | If `binary` is `true`, then this is a hex string of the transaction results metadata. Otherwise, the transaction results metadata is included in JSON format. | -| `validated` | Boolean | Whether or not the transaction is included in a validated ledger. Any transaction not yet in a validated ledger is subject to change. | +| `validated` | Boolean | Whether or not the transaction is included in a validated ledger. Any transaction not yet in a validated ledger is subject to change. | {% /tab %} @@ -863,12 +876,12 @@ Each transaction object includes the following fields, depending on whether it w ## Possible Errors -* Any of the [universal error types][]. -* `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. In [API v1][], you won't receive this error if you specify: - * `ledger_index_min` or `ledger_index_max`, but also try to specify `ledger_index` or `ledger_hash`. - * A non-boolean value for the `binary` or `forward` fields. -* `actMalformed` - The [Address][] specified in the `account` field of the request is not formatted properly. -* `lgrIdxMalformed` - The ledger specified by the `ledger_index_min` or `ledger_index_max` does not exist, or if it does exist the server does not have it. In [API v1][], you won't receive this error if you specify a `ledger_index_min` or `ledger_index_max` value beyond the range of ledgers that the server has. -* `lgrIdxsInvalid` - Either the request specifies a `ledger_index_max` that is before the `ledger_index_min`, or the server does not have a validated ledger range because it is [not synced with the network](../../../../infrastructure/troubleshooting/server-doesnt-sync.md). +- Any of the [universal error types][]. +- `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. In [API v1][], you won't receive this error if you specify: + - `ledger_index_min` or `ledger_index_max`, but also try to specify `ledger_index` or `ledger_hash`. + - A non-boolean value for the `binary` or `forward` fields. +- `actMalformed` - The [Address][] specified in the `account` field of the request is not formatted properly. +- `lgrIdxMalformed` - The ledger specified by the `ledger_index_min` or `ledger_index_max` does not exist, or if it does exist the server does not have it. In [API v1][], you won't receive this error if you specify a `ledger_index_min` or `ledger_index_max` value beyond the range of ledgers that the server has. +- `lgrIdxsInvalid` - Either the request specifies a `ledger_index_max` that is before the `ledger_index_min`, or the server does not have a validated ledger range because it is [not synced with the network](../../../../infrastructure/troubleshooting/server-doesnt-sync.md). {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/http-websocket-apis/public-api-methods/account-methods/gateway_balances.md b/docs/references/http-websocket-apis/public-api-methods/account-methods/gateway_balances.md index a989c87ac5..6096fdf7cf 100644 --- a/docs/references/http-websocket-apis/public-api-methods/account-methods/gateway_balances.md +++ b/docs/references/http-websocket-apis/public-api-methods/account-methods/gateway_balances.md @@ -1,11 +1,13 @@ --- seo: - description: Calculate total amounts issued by an account. + description: Calculate total amounts issued by an account. labels: - Tokens - Accounts --- + # gateway_balances + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/GatewayBalances.cpp "Source") The `gateway_balances` command calculates the total balances issued by a given account, optionally excluding amounts held by [operational addresses](../../../../concepts/accounts/account-types.md). @@ -13,6 +15,7 @@ The `gateway_balances` command calculates the total balances issued by a given a {% admonition type="warning" name="Caution" %}Some public servers disable this API method because it can require a large amount of processing.{% /admonition %} ## Request Format + An example of the request format: {% raw-partial file="/docs/_snippets/no-cli-syntax.md" /%} @@ -20,41 +23,44 @@ An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": "example_gateway_balances_1", - "command": "gateway_balances", - "account": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "strict": true, - "hotwallet": ["rKm4uWpg9tfwbVSeATv4KxDe6mpE9yPkgJ","ra7JkEzrgeKHdzKgo4EUUVBnxggY4z37kt"], - "ledger_index": "validated" + "id": "example_gateway_balances_1", + "command": "gateway_balances", + "account": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "strict": true, + "hotwallet": ["rKm4uWpg9tfwbVSeATv4KxDe6mpE9yPkgJ", "ra7JkEzrgeKHdzKgo4EUUVBnxggY4z37kt"], + "ledger_index": "validated" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "gateway_balances", - "params": [ - { - "account": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "hotwallet": [ - "rKm4uWpg9tfwbVSeATv4KxDe6mpE9yPkgJ", - "ra7JkEzrgeKHdzKgo4EUUVBnxggY4z37kt" - ], - "ledger_index": "validated", - "strict": true - } - ] + "method": "gateway_balances", + "params": [ + { + "account": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "hotwallet": ["rKm4uWpg9tfwbVSeATv4KxDe6mpE9yPkgJ", "ra7JkEzrgeKHdzKgo4EUUVBnxggY4z37kt"], + "ledger_index": "validated", + "strict": true + } + ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh rippled json gateway_balances ' {"account": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", "hotwallet": ["rKm4uWpg9tfwbVSeATv4KxDe6mpE9yPkgJ", "ra7JkEzrgeKHdzKgo4EUUVBnxggY4z37kt"],"ledger_index": "validated","strict": true} ' ``` + {% /tab %} {% /tabs %} @@ -63,13 +69,13 @@ rippled json gateway_balances ' {"account": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q" The request includes the following parameters: -| `Field` | Type | Description | -|:---------------|:---------------------------|:-------------------------------| -| `account` | String | The [Address][] to check. This should be the [issuing address](../../../../concepts/accounts/account-types.md) | -| `strict` | Boolean | _(Optional)_ If true, only accept an address or public key for the account parameter. Defaults to false. | +| `Field` | Type | Description | +| :------------- | :------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `account` | String | The [Address][] to check. This should be the [issuing address](../../../../concepts/accounts/account-types.md) | +| `strict` | Boolean | _(Optional)_ If true, only accept an address or public key for the account parameter. Defaults to false. | | `hotwallet` | String or Array | _(Optional)_ An [operational address](../../../../concepts/accounts/account-types.md) to exclude from the balances issued, or an array of such addresses. | -| `ledger_hash` | String | _(Optional)_ The unique hash of the ledger version to use. (See [Specifying Ledgers][]) | -| `ledger_index` | String or Unsigned Integer | _(Optional)_ The [ledger index][] of the ledger version to use, or a shortcut string to choose a ledger automatically. (See [Specifying Ledgers][]) | +| `ledger_hash` | String | _(Optional)_ The unique hash of the ledger version to use. (See [Specifying Ledgers][]) | +| `ledger_index` | String or Unsigned Integer | _(Optional)_ The [ledger index][] of the ledger version to use, or a shortcut string to choose a ledger automatically. (See [Specifying Ledgers][]) | ## Response Format @@ -78,6 +84,7 @@ An example of a successful response: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 3, @@ -143,9 +150,11 @@ An example of a successful response: } } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK { @@ -210,97 +219,100 @@ An example of a successful response: } } ``` + {% /tab %} {% tab label="Commandline" %} + ```json { - "result" : { - "account" : "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "assets" : { - "r9F6wk8HkXrgYWoJ7fsv4VrUBVoqDVtzkH" : [ - { - "currency" : "BTC", - "value" : "5444166510000000e-26" - } - ], - "rPU6VbckqCLW4kb51CWqZdxvYyQrQVsnSj" : [ - { - "currency" : "BTC", - "value" : "1029900000000000e-26" - } - ], - "rpR95n1iFkTqpoy1e878f4Z1pVHVtWKMNQ" : [ - { - "currency" : "BTC", - "value" : "4000000000000000e-30" - } - ], - "rwmUaXsWtXU4Z843xSYwgt1is97bgY8yj6" : [ - { - "currency" : "BTC", - "value" : "8700000000000000e-30" - } - ] - }, - "balances" : { - "rKm4uWpg9tfwbVSeATv4KxDe6mpE9yPkgJ" : [ - { - "currency" : "EUR", - "value" : "144816.1965999999" - } - ], - "ra7JkEzrgeKHdzKgo4EUUVBnxggY4z37kt" : [ - { - "currency" : "USD", - "value" : "6677.38614" - } - ] - }, - "frozen_balances" : { - "r4keXr5myiU4iTLh68ZqZ2CgsJ8dM9FSW6" : [ - { - "currency" : "BTC", - "value" : "0.091207822800868" - } - ] - }, - "ledger_hash" : "6C789EAF25A931565E5936042EED037F287F3348B61A70777649552E0385B0E4", - "ledger_index" : 57111383, - "obligations" : { - "BTC" : "1762.700511879441", - "EUR" : "813792.4267005104", - "GBP" : "4974.337212333351", - "USD" : "6739710.218284974" - }, - "status" : "success", - "validated" : true - } + "result": { + "account": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "assets": { + "r9F6wk8HkXrgYWoJ7fsv4VrUBVoqDVtzkH": [ + { + "currency": "BTC", + "value": "5444166510000000e-26" + } + ], + "rPU6VbckqCLW4kb51CWqZdxvYyQrQVsnSj": [ + { + "currency": "BTC", + "value": "1029900000000000e-26" + } + ], + "rpR95n1iFkTqpoy1e878f4Z1pVHVtWKMNQ": [ + { + "currency": "BTC", + "value": "4000000000000000e-30" + } + ], + "rwmUaXsWtXU4Z843xSYwgt1is97bgY8yj6": [ + { + "currency": "BTC", + "value": "8700000000000000e-30" + } + ] + }, + "balances": { + "rKm4uWpg9tfwbVSeATv4KxDe6mpE9yPkgJ": [ + { + "currency": "EUR", + "value": "144816.1965999999" + } + ], + "ra7JkEzrgeKHdzKgo4EUUVBnxggY4z37kt": [ + { + "currency": "USD", + "value": "6677.38614" + } + ] + }, + "frozen_balances": { + "r4keXr5myiU4iTLh68ZqZ2CgsJ8dM9FSW6": [ + { + "currency": "BTC", + "value": "0.091207822800868" + } + ] + }, + "ledger_hash": "6C789EAF25A931565E5936042EED037F287F3348B61A70777649552E0385B0E4", + "ledger_index": 57111383, + "obligations": { + "BTC": "1762.700511879441", + "EUR": "813792.4267005104", + "GBP": "4974.337212333351", + "USD": "6739710.218284974" + }, + "status": "success", + "validated": true + } } ``` + {% /tab %} {% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: -| `Field` | Type | Description | -|:-----------------------|:--------------------------|:------------------------| -| `account` | String - [Address][] | The address of the account that issued the balances. | -| `obligations` | Object | (Omitted if empty) Total amounts issued to addresses not excluded, as a map of currencies to the total value issued. | -| `balances` | Object | _(Omitted if empty)_ Amounts issued to the `hotwallet` addresses from the request. The keys are addresses and the values are arrays of currency amounts they hold. | +| `Field` | Type | Description | +| :--------------------- | :------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `account` | String - [Address][] | The address of the account that issued the balances. | +| `obligations` | Object | (Omitted if empty) Total amounts issued to addresses not excluded, as a map of currencies to the total value issued. | +| `balances` | Object | _(Omitted if empty)_ Amounts issued to the `hotwallet` addresses from the request. The keys are addresses and the values are arrays of currency amounts they hold. | | `assets` | Object | _(Omitted if empty)_ Total amounts held that are issued by others. In the recommended configuration, the [issuing address](../../../../concepts/accounts/account-types.md) should have none. | -| `ledger_hash` | String - [Hash][] | _(May be omitted)_ The identifying hash of the ledger version that was used to generate this response. | -| `ledger_index` | Number - [Ledger Index][] | _(May be omitted)_ The ledger index of the ledger version that was used to generate this response. | -| `ledger_current_index` | Number - [Ledger Index][] | _(Omitted if `ledger_current_index` is provided)_ The [ledger index][] of the current in-progress ledger version, which was used to retrieve this information. | +| `ledger_hash` | String - [Hash][] | _(May be omitted)_ The identifying hash of the ledger version that was used to generate this response. | +| `ledger_index` | Number - [Ledger Index][] | _(May be omitted)_ The ledger index of the ledger version that was used to generate this response. | +| `ledger_current_index` | Number - [Ledger Index][] | _(Omitted if `ledger_current_index` is provided)_ The [ledger index][] of the current in-progress ledger version, which was used to retrieve this information. | ## Possible Errors -* Any of the [universal error types][]. -* `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. -* `invalidHotWallet` - One or more of the addresses specified in the `hotwallet` field is not the [Address][] of an account holding currency issued by the account from the request. -* `actNotFound` - The [Address][] specified in the `account` field of the request does not correspond to an account in the ledger. -* `lgrNotFound` - The ledger specified by the `ledger_hash` or `ledger_index` does not exist, or it does exist but the server does not have it. +- Any of the [universal error types][]. +- `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. +- `invalidHotWallet` - One or more of the addresses specified in the `hotwallet` field is not the [Address][] of an account holding currency issued by the account from the request. +- `actNotFound` - The [Address][] specified in the `account` field of the request does not correspond to an account in the ledger. +- `lgrNotFound` - The ledger specified by the `ledger_hash` or `ledger_index` does not exist, or it does exist but the server does not have it. {% admonition type="info" name="Note" %} Due to a discrepancy in behavior between the Clio server and `rippled`, which was fixed in [Clio version 2.3.1](../../../../../blog/2025/clio-2.3.1.md#bug-fixes), the Clio server returns the `invalidParams` error in API v2 instead of `invalidHotWallet` when the `hotwallet` field is invalid. API v1 returns the `invalidHotWallet` error. diff --git a/docs/references/http-websocket-apis/public-api-methods/account-methods/index.md b/docs/references/http-websocket-apis/public-api-methods/account-methods/index.md index 62028170ec..4e537f9b4c 100644 --- a/docs/references/http-websocket-apis/public-api-methods/account-methods/index.md +++ b/docs/references/http-websocket-apis/public-api-methods/account-methods/index.md @@ -4,9 +4,9 @@ parent: public-api-methods.html metadata: indexPage: true --- + # Account Methods An account in the XRP Ledger represents a holder of XRP and a sender of transactions. Use these methods to work with account info. - {% child-pages /%} diff --git a/docs/references/http-websocket-apis/public-api-methods/account-methods/noripple_check.md b/docs/references/http-websocket-apis/public-api-methods/account-methods/noripple_check.md index e275b0029b..da43a434a6 100644 --- a/docs/references/http-websocket-apis/public-api-methods/account-methods/noripple_check.md +++ b/docs/references/http-websocket-apis/public-api-methods/account-methods/noripple_check.md @@ -1,16 +1,18 @@ --- seo: - description: Get recommended changes to an account's Default Ripple and No Ripple settings. + description: Get recommended changes to an account's Default Ripple and No Ripple settings. labels: - - Tokens + - Tokens --- + # noripple_check + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/NoRippleCheck.cpp "Source") The `noripple_check` command provides a quick way to check the status of [the Default Ripple field for an account and the No Ripple flag of its trust lines](../../../../concepts/tokens/fungible-tokens/rippling.md), compared with the recommended settings. - ## Request Format + An example of the request format: {% raw-partial file="/docs/_snippets/no-cli-syntax.md" /%} @@ -18,51 +20,54 @@ An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": 0, - "command": "noripple_check", - "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "role": "gateway", - "ledger_index": "current", - "limit": 2, - "transactions": true + "id": 0, + "command": "noripple_check", + "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "role": "gateway", + "ledger_index": "current", + "limit": 2, + "transactions": true } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "noripple_check", - "params": [ - { - "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "ledger_index": "current", - "limit": 2, - "role": "gateway", - "transactions": true - } - ] + "method": "noripple_check", + "params": [ + { + "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "ledger_index": "current", + "limit": 2, + "role": "gateway", + "transactions": true + } + ] } ``` + {% /tab %} {% /tabs %} {% try-it method="noripple_check" /%} - The request includes the following parameters: -| `Field` | Type | Description | -|:---------------|:---------------------------|:-------------------------------| -| `account` | String | A unique identifier for the account, most commonly the account's address. | +| `Field` | Type | Description | +| :------------- | :------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `account` | String | A unique identifier for the account, most commonly the account's address. | | `role` | String | Whether the address refers to a `gateway` or `user`. Recommendations depend on the role of the account. Issuers must have Default Ripple enabled and must disable No Ripple on all trust lines. Users should have Default Ripple disabled, and should enable No Ripple on all trust lines. | -| `transactions` | Boolean | _(Optional)_ If `true`, include an array of suggested [transactions](../../../protocol/transactions/index.md), as JSON objects, that you can sign and submit to fix the problems. The default is `false`. | -| `limit` | Unsigned Integer | _(Optional)_ The maximum number of trust line problems to include in the results. Defaults to 300. | -| `ledger_hash` | String | _(Optional)_ The unique hash of the ledger version to use. (See [Specifying Ledgers][]) | -| `ledger_index` | String or Unsigned Integer | _(Optional)_ The [ledger index][] of the ledger to use, or a shortcut string to choose a ledger automatically. (See [Specifying Ledgers][]) | +| `transactions` | Boolean | _(Optional)_ If `true`, include an array of suggested [transactions](../../../protocol/transactions/index.md), as JSON objects, that you can sign and submit to fix the problems. The default is `false`. | +| `limit` | Unsigned Integer | _(Optional)_ The maximum number of trust line problems to include in the results. Defaults to 300. | +| `ledger_hash` | String | _(Optional)_ The unique hash of the ledger version to use. (See [Specifying Ledgers][]) | +| `ledger_index` | String or Unsigned Integer | _(Optional)_ The [ledger index][] of the ledger to use, or a shortcut string to choose a ledger automatically. (See [Specifying Ledgers][]) | ## Response Format @@ -71,6 +76,7 @@ An example of a successful response: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 0, @@ -120,9 +126,11 @@ An example of a successful response: } } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -172,23 +180,24 @@ An example of a successful response: } } ``` + {% /tab %} {% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: -| `Field` | Type | Description | -|:-----------------------|:-------|:-------------------------------------------| -| `ledger_current_index` | Number | The [ledger index][] of the ledger used to calculate these results. | -| `problems` | Array | Array of strings with human-readable descriptions of the problems. This includes up to one entry if the account's Default Ripple setting is not as recommended, plus up to `limit` entries for trust lines whose No Ripple setting is not as recommended. | +| `Field` | Type | Description | +| :--------------------- | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `ledger_current_index` | Number | The [ledger index][] of the ledger used to calculate these results. | +| `problems` | Array | Array of strings with human-readable descriptions of the problems. This includes up to one entry if the account's Default Ripple setting is not as recommended, plus up to `limit` entries for trust lines whose No Ripple setting is not as recommended. | | `transactions` | Array | (May be omitted) If the request specified `transactions` as `true`, this is an array of JSON objects, each of which is the JSON form of a [transaction](../../../protocol/transactions/index.md) that should fix one of the described problems. The length of this array is the same as the `problems` array, and each entry is intended to fix the problem described at the same index into that array. | ## Possible Errors -* Any of the [universal error types][]. -* `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. In [API v1][], you won't receive this error if you specify a non-boolean value for the `transactions` field. -* `actNotFound` - The [Address][] specified in the `account` field of the request does not correspond to an account in the ledger. -* `lgrNotFound` - The ledger specified by the `ledger_hash` or `ledger_index` does not exist, or it does exist but the server does not have it. +- Any of the [universal error types][]. +- `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. In [API v1][], you won't receive this error if you specify a non-boolean value for the `transactions` field. +- `actNotFound` - The [Address][] specified in the `account` field of the request does not correspond to an account in the ledger. +- `lgrNotFound` - The ledger specified by the `ledger_hash` or `ledger_index` does not exist, or it does exist but the server does not have it. {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/http-websocket-apis/public-api-methods/clio-methods/index.md b/docs/references/http-websocket-apis/public-api-methods/clio-methods/index.md index ec46932c8f..7c2f682b36 100644 --- a/docs/references/http-websocket-apis/public-api-methods/clio-methods/index.md +++ b/docs/references/http-websocket-apis/public-api-methods/clio-methods/index.md @@ -2,6 +2,7 @@ metadata: indexPage: true --- + # Clio Methods These API methods are provided only by the Clio server, not `rippled`. diff --git a/docs/references/http-websocket-apis/public-api-methods/clio-methods/ledger-clio.md b/docs/references/http-websocket-apis/public-api-methods/clio-methods/ledger-clio.md index da87a0c630..dd6cee96a1 100644 --- a/docs/references/http-websocket-apis/public-api-methods/clio-methods/ledger-clio.md +++ b/docs/references/http-websocket-apis/public-api-methods/clio-methods/ledger-clio.md @@ -2,11 +2,13 @@ html: ledger-clio.html # Watch carefully for clashes w/ this filename parent: clio-methods.html seo: - description: Get info about a ledger version. + description: Get info about a ledger version. labels: - Blockchain --- + # ledger + [[Source]](https://github.com/XRPLF/clio/blob/master/src/rpc/handlers/Ledger.cpp "Source") The `ledger` command retrieves information about the public [ledger](../../../../concepts/ledgers/index.md). {% badge href="https://github.com/XRPLF/clio/releases/tag/1.0.0" %}New in: Clio v1.0.0{% /badge %} @@ -14,6 +16,7 @@ The `ledger` command retrieves information about the public [ledger](../../../.. Note that the Clio server returns validated ledger data by default. ## Request Format + An example of the request format: {% tabs %} @@ -32,24 +35,24 @@ An example of the request format: The request can contain the following parameters: -| `Field` | Type | Description | -|:---------------|:---------------------------|:-------------------------------| -| `ledger_hash` | [Hash][] | _(Optional)_ The unique hash of the ledger version to use. (See [Specifying Ledgers][]). | -| `ledger_index` | [Ledger Index][] | _(Optional)_ The [ledger index][] of the ledger to use, or a shortcut string to choose a ledger automatically. (See [Specifying Ledgers][]) | -| `transactions` | Boolean | _(Optional)_ If `true`, return information on transactions in the specified ledger version. Defaults to `false`. Ignored if you did not specify a ledger version. | -| `expand` | Boolean | _(Optional)_ Provide full JSON-formatted information for transaction/account information instead of only hashes. Defaults to `false`. Ignored unless you request transactions. | -| `owner_funds` | Boolean | _(Optional)_ If `true`, include `owner_funds` field in the metadata of OfferCreate transactions in the response. Defaults to `false`. Ignored unless transactions are included and `expand` is true. | -| `binary` | Boolean | _(Optional)_ If `true`, and `transactions` and `expand` are both also `true`, return transaction information in binary format (hexadecimal string) instead of JSON format. | -| `diff` | Boolean | _(Optional)_ If `true`, returns all objects that were added, modified, or deleted as part of applying transactions in the specified ledger. | +| `Field` | Type | Description | +| :------------- | :--------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `ledger_hash` | [Hash][] | _(Optional)_ The unique hash of the ledger version to use. (See [Specifying Ledgers][]). | +| `ledger_index` | [Ledger Index][] | _(Optional)_ The [ledger index][] of the ledger to use, or a shortcut string to choose a ledger automatically. (See [Specifying Ledgers][]) | +| `transactions` | Boolean | _(Optional)_ If `true`, return information on transactions in the specified ledger version. Defaults to `false`. Ignored if you did not specify a ledger version. | +| `expand` | Boolean | _(Optional)_ Provide full JSON-formatted information for transaction/account information instead of only hashes. Defaults to `false`. Ignored unless you request transactions. | +| `owner_funds` | Boolean | _(Optional)_ If `true`, include `owner_funds` field in the metadata of OfferCreate transactions in the response. Defaults to `false`. Ignored unless transactions are included and `expand` is true. | +| `binary` | Boolean | _(Optional)_ If `true`, and `transactions` and `expand` are both also `true`, return transaction information in binary format (hexadecimal string) instead of JSON format. | +| `diff` | Boolean | _(Optional)_ If `true`, returns all objects that were added, modified, or deleted as part of applying transactions in the specified ledger. | The `ledger` field is deprecated and may be removed without further notice. {% admonition type="info" name="Note" %} The `ledger` command in Clio does not support the following fields: -* `accounts` -* `full` -* `queue` +- `accounts` +- `full` +- `queue` Clio returns an error when any of the above fields is set to `true`. (It is OK to include the fields in the request as long as the provided value is `false`.) {% badge href="https://github.com/XRPLF/clio/releases/tag/2.2.2" %}Updated in: Clio 2.2.2{% /badge %} {% /admonition %} @@ -76,47 +79,46 @@ An example of a successful response: The response follows the [standard format][], with a successful result containing information about the ledger, including the following fields: -| `Field` | Type | Description | -|:-------------------------------|:--------|:----------------------------------| -| `ledger` | Object | The complete header data of this ledger. | -| `ledger.account_hash` | String | Hash of all account state information in this ledger, as hex | -| `ledger.accountState` | Array | (Omitted unless requested) All the [account-state information](../../../protocol/ledger-data/index.md) in this ledger. | -| `ledger.close_flags` | Integer | A bit-map of [flags relating to the closing of this ledger](../../../protocol/ledger-data/ledger-header.md#close-flags). | -| `ledger.close_time` | Integer | The time this ledger was closed, in [seconds since the Ripple Epoch][]. | -| `ledger.close_time_human` | String | The time this ledger was closed, in human-readable format. Always uses the UTC time zone. | -| `ledger.close_time_iso` | String | The time this ledger was closed, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format. | -| `ledger.close_time_resolution` | Integer | Ledger close times are rounded to within this many seconds. | -| `ledger.closed` | Boolean | Whether or not this ledger has been closed. | -| `ledger.ledger_hash` | String | Unique identifying hash of the entire ledger. | -| `ledger.ledger_index` | String | The [Ledger Index][] of this ledger, as a quoted integer. | -| `ledger.parent_close_time` | Integer | The time at which the previous ledger was closed. | -| `ledger.parent_hash` | String | Unique identifying hash of the ledger that came immediately before this one. | -| `ledger.total_coins` | String | Total number of XRP drops in the network, as a quoted integer. (This decreases as transaction costs destroy XRP.) | -| `ledger.transaction_hash` | String | Hash of the transaction information included in this ledger, as hex. | +| `Field` | Type | Description | +| :----------------------------- | :------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `ledger` | Object | The complete header data of this ledger. | +| `ledger.account_hash` | String | Hash of all account state information in this ledger, as hex | +| `ledger.accountState` | Array | (Omitted unless requested) All the [account-state information](../../../protocol/ledger-data/index.md) in this ledger. | +| `ledger.close_flags` | Integer | A bit-map of [flags relating to the closing of this ledger](../../../protocol/ledger-data/ledger-header.md#close-flags). | +| `ledger.close_time` | Integer | The time this ledger was closed, in [seconds since the Ripple Epoch][]. | +| `ledger.close_time_human` | String | The time this ledger was closed, in human-readable format. Always uses the UTC time zone. | +| `ledger.close_time_iso` | String | The time this ledger was closed, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format. | +| `ledger.close_time_resolution` | Integer | Ledger close times are rounded to within this many seconds. | +| `ledger.closed` | Boolean | Whether or not this ledger has been closed. | +| `ledger.ledger_hash` | String | Unique identifying hash of the entire ledger. | +| `ledger.ledger_index` | String | The [Ledger Index][] of this ledger, as a quoted integer. | +| `ledger.parent_close_time` | Integer | The time at which the previous ledger was closed. | +| `ledger.parent_hash` | String | Unique identifying hash of the ledger that came immediately before this one. | +| `ledger.total_coins` | String | Total number of XRP drops in the network, as a quoted integer. (This decreases as transaction costs destroy XRP.) | +| `ledger.transaction_hash` | String | Hash of the transaction information included in this ledger, as hex. | | `ledger.transactions` | Array | (Omitted unless requested) Transactions applied in this ledger version. By default, members are the transactions' identifying [Hash][] strings. If the request specified `expand` as true, members are full representations of the transactions instead, in either JSON or binary depending on whether the request specified `binary` as true. | -| `ledger_hash` | String | Unique identifying hash of the entire ledger. | -| `ledger_index` | Number | The [Ledger Index][] of this ledger. | -| `validated` | Boolean | _(May be omitted)_ If `true`, this is a validated ledger version. If omitted or set to `false`, this ledger's data is not final. | -| `diff` | Object | _(Omitted unless requested with the `diff` parameter)_ Object containing an array of hashes that were added, modified, or deleted as part of applying transactions for the ledger. | +| `ledger_hash` | String | Unique identifying hash of the entire ledger. | +| `ledger_index` | Number | The [Ledger Index][] of this ledger. | +| `validated` | Boolean | _(May be omitted)_ If `true`, this is a validated ledger version. If omitted or set to `false`, this ledger's data is not final. | +| `diff` | Object | _(Omitted unless requested with the `diff` parameter)_ Object containing an array of hashes that were added, modified, or deleted as part of applying transactions for the ledger. | If the request specified `"owner_funds": true` and expanded transactions, the response has a field `owner_funds` in the `metaData` object of each [OfferCreate transaction][]. The purpose of this field is to make it easier to track the [funding status of offers](../../../../concepts/tokens/decentralized-exchange/offers.md#lifecycle-of-an-offer) with each new validated ledger. This field is defined slightly differently than the version of this field in [Order Book subscription streams](../subscription-methods/subscribe.md#order-book-streams): -| `Field` | Value | Description | -|:--------------|:-------|:----------------------------------------------------| +| `Field` | Value | Description | +| :------------ | :----- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `owner_funds` | String | Numeric amount of the `TakerGets` currency that the `Account` sending this OfferCreate transaction has after the execution of all transactions in this ledger. This does not check whether the currency amount is [frozen](../../../../concepts/tokens/fungible-tokens/freezes.md). | If the request specified `"diff": true`, the response has an object `diff`. The fields of this object are as follows: -| `Field` | Value | Description | -|:--------------|:-------|:----------------------------------------------------| -| `object_id` | String | The object identifier. | -| `Hashes` | Object or Hex String | Depending on whether the request set `binary` to true or false, this field returns the contents of the object that was created, the new value of an object that was modified, or an empty string if the object was deleted. | - +| `Field` | Value | Description | +| :---------- | :------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `object_id` | String | The object identifier. | +| `Hashes` | Object or Hex String | Depending on whether the request set `binary` to true or false, this field returns the contents of the object that was created, the new value of an object that was modified, or an empty string if the object was deleted. | ## Possible Errors -* Any of the [universal error types][]. -* `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. -* `lgrNotFound` - The ledger specified by the `ledger_hash` or `ledger_index` does not exist, or it does exist but the server does not have it. +- Any of the [universal error types][]. +- `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. +- `lgrNotFound` - The ledger specified by the `ledger_hash` or `ledger_index` does not exist, or it does exist but the server does not have it. {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/http-websocket-apis/public-api-methods/clio-methods/ledger_index.md b/docs/references/http-websocket-apis/public-api-methods/clio-methods/ledger_index.md index f51b231018..5ce8098b95 100644 --- a/docs/references/http-websocket-apis/public-api-methods/clio-methods/ledger_index.md +++ b/docs/references/http-websocket-apis/public-api-methods/clio-methods/ledger_index.md @@ -1,10 +1,12 @@ --- seo: - description: Look up a ledger by its close time. + description: Look up a ledger by its close time. labels: - Blockchain --- + # ledger_index + [[Source]](https://github.com/XRPLF/clio/blob/develop/src/rpc/handlers/LedgerIndex.cpp "Source") The `ledger_index` command looks up information about the last closed ledger at a given real-world time. This may be useful for correlating events that happened off-chain with historical data in the XRP Ledger. {% badge href="https://github.com/XRPLF/clio/releases/tag/2.3.0" date="TBD" %}New in: Clio v2.3.0{% /badge %} @@ -12,31 +14,36 @@ The `ledger_index` command looks up information about the last closed ledger at This method is only available from the Clio server, not `rippled`. ## Request Format + An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": "example_ledger_index", - "command": "ledger_index", - "date": "2024-08-28T22:59:00Z" + "id": "example_ledger_index", + "command": "ledger_index", + "date": "2024-08-28T22:59:00Z" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "ledger_index", - "params": [ - { - "date": "2024-08-28T22:59:00Z" - } - ] + "method": "ledger_index", + "params": [ + { + "date": "2024-08-28T22:59:00Z" + } + ] } ``` + {% /tab %} {% /tabs %} @@ -45,8 +52,8 @@ An example of the request format: The request can contain the following parameters: -| `Field` | Type | Required? | Description | -|:--------|:-------|:----------|-------------| +| `Field` | Type | Required? | Description | +| :------ | :----- | :-------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `date` | String | No | An ISO 8601 timestamp of the time to look up. Must be formatted without microseconds, and using `Z` as the time zone marker. For example, `2024-08-28T22:59:00Z`. If omitted, use the current time. | ## Response Format @@ -67,11 +74,11 @@ An example of a successful response: The response follows the [standard format][], with a successful result containing information about the most recently closed ledger at the requested time, including the following fields: -| Field | Type | Description | -|:---------------|:--------|:------------------------------------| -| `ledger_index` | Number | The [Ledger Index][] of the most recently closed ledger at the specified time. | -| `ledger_hash` | String | The identifying [Hash][] of the most recently closed ledger at the specified time. | -| `closed` | String | The official close time of the most recently closed ledger at the specified time. | +| Field | Type | Description | +| :------------- | :------ | :------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `ledger_index` | Number | The [Ledger Index][] of the most recently closed ledger at the specified time. | +| `ledger_hash` | String | The identifying [Hash][] of the most recently closed ledger at the specified time. | +| `closed` | String | The official close time of the most recently closed ledger at the specified time. | | `validated` | Boolean | If `true`, the ledger has been validated by the consensus process and is immutable. Otherwise, the contents of the ledger are not final and may change. | {% admonition type="info" name="Note" %} @@ -80,9 +87,9 @@ Due to the rounding on ledger close times, there may be a difference of up to 10 ## Possible Errors -* Any of the [universal error types][]. -* `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. - * For example, this can occur if the specified `date` included a microseconds component. -* `lgrNotFound` - The server does not have ledger history for the specified point in time. +- Any of the [universal error types][]. +- `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. + - For example, this can occur if the specified `date` included a microseconds component. +- `lgrNotFound` - The server does not have ledger history for the specified point in time. {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/http-websocket-apis/public-api-methods/clio-methods/mpt_holders.md b/docs/references/http-websocket-apis/public-api-methods/clio-methods/mpt_holders.md index 58a02a153e..28c0de99e4 100644 --- a/docs/references/http-websocket-apis/public-api-methods/clio-methods/mpt_holders.md +++ b/docs/references/http-websocket-apis/public-api-methods/clio-methods/mpt_holders.md @@ -1,6 +1,6 @@ --- seo: - description: Get the holders of a given MPT issuance as of a given ledger. + description: Get the holders of a given MPT issuance as of a given ledger. labels: - Accounts - XRP @@ -21,6 +21,7 @@ For a given `MPTokenIssuanceID` and ledger sequence, `mpt_holders` returns all h {% tabs %} {% tab label="WebSocket" %} + ```json { "command": "mpt_holders", @@ -28,9 +29,11 @@ For a given `MPTokenIssuanceID` and ledger sequence, `mpt_holders` returns all h "ledger_index": "validated" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { "method": "mpt_holders", @@ -42,6 +45,7 @@ For a given `MPTokenIssuanceID` and ledger sequence, `mpt_holders` returns all h ] } ``` + {% /tab %} {% /tabs %} @@ -50,18 +54,19 @@ For a given `MPTokenIssuanceID` and ledger sequence, `mpt_holders` returns all h The request contains the following parameters: -| Field | Type | Required? | Description | -|:------------------|:---------------------------|:----------|-------------| -| `mpt_issuance_id` | String | Yes | The `MPTokenIssuance` to query. | -| `ledger_index` | [Ledger Index][] | No | The [Ledger Index][] of the max ledger to use, or a shortcut string to choose a ledger automatically. You must specify either `ledger_index` or `ledger_hash`. See [Specifying Ledgers][].| -| `ledger_hash` | String | No | A 32-byte hex string for the ledger version to use. You must specify either `ledger_index` or ledger_hash. See [Specifying Ledgers][]. | -| `marker` | [Marker][] | No | Used to continue your query where it left off in paginating. | -| `limit` | Number (positive integer) | No | Specify a limit to the number of MPTs returned. | +| Field | Type | Required? | Description | +| :---------------- | :------------------------ | :-------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `mpt_issuance_id` | String | Yes | The `MPTokenIssuance` to query. | +| `ledger_index` | [Ledger Index][] | No | The [Ledger Index][] of the max ledger to use, or a shortcut string to choose a ledger automatically. You must specify either `ledger_index` or `ledger_hash`. See [Specifying Ledgers][]. | +| `ledger_hash` | String | No | A 32-byte hex string for the ledger version to use. You must specify either `ledger_index` or ledger_hash. See [Specifying Ledgers][]. | +| `marker` | [Marker][] | No | Used to continue your query where it left off in paginating. | +| `limit` | Number (positive integer) | No | Specify a limit to the number of MPTs returned. | ## Response Format {% tabs %} {% tab label="WebSocket" %} + ```json { "result": { @@ -89,9 +94,11 @@ The request contains the following parameters: ] } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -119,6 +126,7 @@ The request contains the following parameters: ] } ``` + {% /tab %} {% /tabs %} @@ -127,25 +135,25 @@ The request contains the following parameters: The response follows the [standard format][], with the result containing the following fields: -| Field | Type | Description | -|:-----------------------|:-----------------|:------------------------------------------| -| `mpt_issuance_id` | String | The `MPTokenIssuance` queried. | -| `mptokens` | Array | An array of [MPTokens](#mptoken). Includes all relevant fields in the underlying `MPToken` object. | -| `marker` | [Marker][] | Used to continue querying where we left off when paginating. Omitted if there are no more entries after this result. | -| `limit` | Number | The limit, as specified in the request. | -| `ledger_index` | [Ledger Index][] | The index of the ledger used. | -| `validated` | Boolean | If `true`, the ledger has been validated by the consensus process and is immutable. Otherwise, the contents of the ledger are not final and may change. In Clio, this is _always_ true as Clio stores and returns validated ledger data. | +| Field | Type | Description | +| :---------------- | :--------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `mpt_issuance_id` | String | The `MPTokenIssuance` queried. | +| `mptokens` | Array | An array of [MPTokens](#mptoken). Includes all relevant fields in the underlying `MPToken` object. | +| `marker` | [Marker][] | Used to continue querying where we left off when paginating. Omitted if there are no more entries after this result. | +| `limit` | Number | The limit, as specified in the request. | +| `ledger_index` | [Ledger Index][] | The index of the ledger used. | +| `validated` | Boolean | If `true`, the ledger has been validated by the consensus process and is immutable. Otherwise, the contents of the ledger are not final and may change. In Clio, this is _always_ true as Clio stores and returns validated ledger data. | #### MPToken An `MPToken` object has the following parameters: -| Field | Type | Description | -|:-----------------------|:------------------|:------------------------------------------| -| `account` | String | The account address of the holder who owns the `MPToken`. | -| `flags` | Number | The flags assigned to the`MPToken` object. | -| `mpt_amount` | [String Number][] | Specifies a positive amount of tokens currently held by the owner. | -| `mptoken_index` | String | Key of the `MPToken` object. | +| Field | Type | Description | +| :-------------- | :---------------- | :----------------------------------------------------------------- | +| `account` | String | The account address of the holder who owns the `MPToken`. | +| `flags` | Number | The flags assigned to the`MPToken` object. | +| `mpt_amount` | [String Number][] | Specifies a positive amount of tokens currently held by the owner. | +| `mptoken_index` | String | Key of the `MPToken` object. | ## Possible Errors diff --git a/docs/references/http-websocket-apis/public-api-methods/clio-methods/nft_history.md b/docs/references/http-websocket-apis/public-api-methods/clio-methods/nft_history.md index 9b4228cbe4..3ecf7fd8dd 100644 --- a/docs/references/http-websocket-apis/public-api-methods/clio-methods/nft_history.md +++ b/docs/references/http-websocket-apis/public-api-methods/clio-methods/nft_history.md @@ -2,10 +2,11 @@ html: nft_history.html parent: clio-methods.html seo: - description: Retrieve the history of ownership and transfers for the specified NFT using Clio server's `nft_history` API. + description: Retrieve the history of ownership and transfers for the specified NFT using Clio server's `nft_history` API. labels: - Non-fungible Tokens, NFTs --- + # nft_history [[Source]](https://github.com/XRPLF/clio/blob/develop/src/rpc/handlers/NFTHistory.cpp "Source") @@ -15,11 +16,13 @@ The `nft_history` command asks the Clio server for past transaction metadata for {% admonition type="info" name="Note" %}`nft_history` returns only _successful_ transactions associated with the NFT.{% /admonition %} ## Request Format + An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 1, @@ -27,19 +30,22 @@ An example of the request format: "nft_id": "000827106807BF848FACD972F2F617E27003D75B2CAAC9816CEE14840521D1E9" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "nft_history", - "params": [ - { - "nft_id": "000827106807BF848FACD972F2F617E27003D75B2CAAC9816CEE14840521D1E9" - } - ] + "method": "nft_history", + "params": [ + { + "nft_id": "000827106807BF848FACD972F2F617E27003D75B2CAAC9816CEE14840521D1E9" + } + ] } ``` + {% /tab %} {% /tabs %} @@ -48,17 +54,17 @@ An example of the request format: The request contains the following parameters: -| `Field` | Type | Description | -|:-------------------|:---------------------------|:------------| -| `nft_id` | String | A unique identifier for the non-fungible token (NFT). | -| `ledger_index_min` | Integer | _(Optional)_ Use to specify the earliest ledger from which to include NFTs. A value of `-1` instructs the server to use the earliest validated ledger version available. | -| `ledger_index_max` | Integer | _(Optional)_ Use to specify the most recent ledger to include NFTs from. A value of `-1` instructs the server to use the most recent validated ledger version available. | -| `ledger_hash` | String | _(Optional)_ The unique hash of the ledger version to use. (See [Specifying Ledgers][]) | +| `Field` | Type | Description | +| :----------------- | :------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `nft_id` | String | A unique identifier for the non-fungible token (NFT). | +| `ledger_index_min` | Integer | _(Optional)_ Use to specify the earliest ledger from which to include NFTs. A value of `-1` instructs the server to use the earliest validated ledger version available. | +| `ledger_index_max` | Integer | _(Optional)_ Use to specify the most recent ledger to include NFTs from. A value of `-1` instructs the server to use the most recent validated ledger version available. | +| `ledger_hash` | String | _(Optional)_ The unique hash of the ledger version to use. (See [Specifying Ledgers][]) | | `ledger_index` | String or Unsigned Integer | _(Optional)_ The [ledger index][] of the ledger to use, or a shortcut string to choose a ledger automatically. Do not specify the `ledger_index` as `closed` or `current`; doing so forwards the request to the P2P `rippled` server and the `nft_history` API is not available on `rippled`. (See [Specifying Ledgers][]) | -| `binary` | Boolean | _(Optional)_ Defaults to `false`. If set to `true`, returns transactions as hex strings instead of JSON. | -| `forward` | Boolean | _(Optional)_ Defaults to `false`. If set to `true`, returns values indexed with the oldest ledger first. Otherwise, the results are indexed with the newest ledger first. (Each page of results might not be internally ordered, but the pages are ordered overall.) | -| `limit` | UInt32 | _(Optional)_ Limit the number of NFTs to retrieve. The server is not required to honor this value. | -| `marker` | Marker | Value from a previous paginated response. Resume retrieving data where that response left off. This value is NOT stable if there is a change in the server's range of available ledgers. If you are querying the “validated” ledger, it is possible that new NFTs are created during your paging. | +| `binary` | Boolean | _(Optional)_ Defaults to `false`. If set to `true`, returns transactions as hex strings instead of JSON. | +| `forward` | Boolean | _(Optional)_ Defaults to `false`. If set to `true`, returns values indexed with the oldest ledger first. Otherwise, the results are indexed with the newest ledger first. (Each page of results might not be internally ordered, but the pages are ordered overall.) | +| `limit` | UInt32 | _(Optional)_ Limit the number of NFTs to retrieve. The server is not required to honor this value. | +| `marker` | Marker | Value from a previous paginated response. Resume retrieving data where that response left off. This value is NOT stable if there is a change in the server's range of available ledgers. If you are querying the “validated” ledger, it is possible that new NFTs are created during your paging. | {% admonition type="info" name="Note" %}If you do not specify a ledger version, Clio uses the latest validated ledger.{% /admonition %} @@ -69,6 +75,7 @@ An example of a successful response: {% tabs %} {% tab label="WebSocket" %} + ```json { "result": { @@ -294,9 +301,11 @@ An example of a successful response: ] } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { "result": { @@ -519,6 +528,7 @@ An example of a successful response: ] } ``` + {% /tab %} {% /tabs %} @@ -532,6 +542,7 @@ The example response below uses `api_version: 2`. {% tabs %} {% tab label="WebSocket" %} + ```json { "result": { @@ -583,9 +594,11 @@ The example response below uses `api_version: 2`. ] } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { "result": { @@ -634,43 +647,44 @@ The example response below uses `api_version: 2`. ] } ``` + {% /tab %} {% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: -| `Field` | Type | Description | -|:-------------------|:---------------------------|:---------------------------| -| `nft_id` | String | A unique identifier for the non-fungible token (NFT). | -| `ledger_index_min` | Integer - [Ledger Index][] | The ledger index of the earliest ledger actually searched for transactions. | -| `ledger_index_max` | Integer - [Ledger Index][] | The ledger index of the most recent ledger actually searched for transactions. | -| `limit` | Integer | The `limit` value used in the request. (This may differ from the actual limit value enforced by the server.) | -| `marker` | [Marker][] | Server-defined value indicating the response is paginated. Pass this to the next call to resume where this call left off. | -| `transactions` | Array | Array of transactions matching the request's criteria, as explained below. | +| `Field` | Type | Description | +| :----------------- | :------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `nft_id` | String | A unique identifier for the non-fungible token (NFT). | +| `ledger_index_min` | Integer - [Ledger Index][] | The ledger index of the earliest ledger actually searched for transactions. | +| `ledger_index_max` | Integer - [Ledger Index][] | The ledger index of the most recent ledger actually searched for transactions. | +| `limit` | Integer | The `limit` value used in the request. (This may differ from the actual limit value enforced by the server.) | +| `marker` | [Marker][] | Server-defined value indicating the response is paginated. Pass this to the next call to resume where this call left off. | +| `transactions` | Array | Array of transactions matching the request's criteria, as explained below. | | `validated` | Boolean | If included and set to `true`, the information in this response comes from a validated ledger version. Otherwise, the information is subject to change. | {% admonition type="info" name="Note" %}The server may respond with different values of `ledger_index_min` and `ledger_index_max` than you provided in the request, for example if it did not have the versions you specified on hand.{% /admonition %} Each transaction object includes the following fields, depending on whether it was requested in JSON or hex string (`"binary":true`) format. -| `Field` | Type | Description | -|:----------------|:---------------------------------|:-------------------------| -| `ledger_index` | Integer | The [ledger index][] of the ledger version that included this transaction. | -| `meta` (API v1) | Object (JSON) or String (Binary) | If `binary` is true, then this is a hex string of the transaction metadata. Otherwise, the transaction metadata is included in JSON format. | -| `meta_blob` (API v2) | String (Binary) | If `binary` is true, then this is a hex string of the transaction metadata. Otherwise, the transaction metadata is included as `meta` in JSON format. | -| `tx` | Object | (JSON mode only) JSON object defining the transaction | -| `tx_blob` | String | (Binary mode only) Unique hashed String representing the transaction. | -| `validated` | Boolean | Whether or not the transaction is included in a validated ledger. Any transaction not yet in a validated ledger is subject to change. | +| `Field` | Type | Description | +| :------------------- | :------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------- | +| `ledger_index` | Integer | The [ledger index][] of the ledger version that included this transaction. | +| `meta` (API v1) | Object (JSON) or String (Binary) | If `binary` is true, then this is a hex string of the transaction metadata. Otherwise, the transaction metadata is included in JSON format. | +| `meta_blob` (API v2) | String (Binary) | If `binary` is true, then this is a hex string of the transaction metadata. Otherwise, the transaction metadata is included as `meta` in JSON format. | +| `tx` | Object | (JSON mode only) JSON object defining the transaction | +| `tx_blob` | String | (Binary mode only) Unique hashed String representing the transaction. | +| `validated` | Boolean | Whether or not the transaction is included in a validated ledger. Any transaction not yet in a validated ledger is subject to change. | For definitions of the fields returned in the `tx` object, see [Transaction Metadata](../../../protocol/transactions/metadata.md). ## Possible Errors -* Any of the [universal error types][]. -* `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. -* `actMalformed` - The [Address][] specified in the `account` field of the request is not formatted properly. -* `lgrIdxMalformed` - The ledger specified by the `ledger_index_min` or `ledger_index_max` does not exist, or if it does exist but the server does not have it. -* `lgrIdxsInvalid` - Either the request specifies a `ledger_index_max` that is before the `ledger_index_min`, or the server does not have a validated ledger range because it is [not synced with the network](../../../../infrastructure/troubleshooting/server-doesnt-sync.md). +- Any of the [universal error types][]. +- `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. +- `actMalformed` - The [Address][] specified in the `account` field of the request is not formatted properly. +- `lgrIdxMalformed` - The ledger specified by the `ledger_index_min` or `ledger_index_max` does not exist, or if it does exist but the server does not have it. +- `lgrIdxsInvalid` - Either the request specifies a `ledger_index_max` that is before the `ledger_index_min`, or the server does not have a validated ledger range because it is [not synced with the network](../../../../infrastructure/troubleshooting/server-doesnt-sync.md). {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/http-websocket-apis/public-api-methods/clio-methods/nft_info.md b/docs/references/http-websocket-apis/public-api-methods/clio-methods/nft_info.md index 896ff224ab..cb5cdf7037 100644 --- a/docs/references/http-websocket-apis/public-api-methods/clio-methods/nft_info.md +++ b/docs/references/http-websocket-apis/public-api-methods/clio-methods/nft_info.md @@ -2,21 +2,25 @@ html: nft_info.html parent: clio-methods.html seo: - description: Retrieve information about the specified NFT using Clio server's `nft_info` API. + description: Retrieve information about the specified NFT using Clio server's `nft_info` API. labels: - Non-fungible Tokens, NFTs --- + # nft_info + [[Source]](https://github.com/XRPLF/clio/blob/4a5cb962b6971872d150777881801ce27ae9ed1a/src/rpc/handlers/NFTInfo.cpp "Source") The `nft_info` command asks the Clio server for information about the [NFT](../../../../concepts/tokens/nfts/index.md) being queried. {% badge href="https://github.com/XRPLF/clio/releases/tag/2.0.0" %}New in: Clio v2.0.0{% /badge %} ## Request Format + An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 1, @@ -24,19 +28,22 @@ An example of the request format: "nft_id": "00080000B4F4AFC5FBCBD76873F18006173D2193467D3EE70000099B00000000" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "nft_info", - "params": [ - { - "nft_id": "00080000B4F4AFC5FBCBD76873F18006173D2193467D3EE70000099B00000000" - } - ] + "method": "nft_info", + "params": [ + { + "nft_id": "00080000B4F4AFC5FBCBD76873F18006173D2193467D3EE70000099B00000000" + } + ] } ``` + {% /tab %} {% /tabs %} @@ -45,11 +52,11 @@ An example of the request format: The request contains the following parameters: -| `Field` | Type | Description | -|:---------------|:---------------------------|:-------------------------------| -| `nft_id` | String | A unique identifier for the non-fungible token (NFT). | -| `ledger_hash` | String | _(Optional)_ The unique hash of the ledger version to use. (See [Specifying Ledgers][]) | -| `ledger_index` | String or Unsigned Integer | _(Optional)_ The [ledger index][] of the ledger to use, or a shortcut string to choose a ledger automatically. Do not specify the `ledger_index` as `closed` or `current`; doing so forwards the request to the P2P `rippled` server and the `nft_info` API is not available on `rippled`. (See [Specifying Ledgers][]) | +| `Field` | Type | Description | +| :------------- | :------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `nft_id` | String | A unique identifier for the non-fungible token (NFT). | +| `ledger_hash` | String | _(Optional)_ The unique hash of the ledger version to use. (See [Specifying Ledgers][]) | +| `ledger_index` | String or Unsigned Integer | _(Optional)_ The [ledger index][] of the ledger to use, or a shortcut string to choose a ledger automatically. Do not specify the `ledger_index` as `closed` or `current`; doing so forwards the request to the P2P `rippled` server and the `nft_info` API is not available on `rippled`. (See [Specifying Ledgers][]) | If you do not specify a ledger version, Clio uses the latest validated ledger. @@ -60,6 +67,7 @@ An example of a successful response: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 1, @@ -89,9 +97,11 @@ An example of a successful response: ] } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { "result": { @@ -120,29 +130,28 @@ An example of a successful response: ] } ``` + {% /tab %} {% /tabs %} The response follows the [standard format][], with a successful result containing an `nft_info` response object with some arrangement of the following fields: -| `Field` | Type | Description | -|:----------------------------------|:----------------|:---------------------| -| `nft_id` | String | A unique identifier for the non-fungible token (NFT). | -| `ledger_index` | Integer | The [ledger index][] of the most recent ledger version where the state of this NFT was modified, as in the NFT was minted (created), changed ownership (traded), or burned (destroyed). The information returned contains whatever happened most recently compared to the requested ledger. | -| `owner` | String | The account ID of this NFT's owner at this ledger index. | -| `is_burned` | Boolean | Returns `true` if the NFT is burned at this ledger, or `false` otherwise. | -| `flags ` | Integer | The flag set of this NFT. | -| `transfer_fee` | Integer | The transfer fee of this NFT. See [NFTokenMint Fields](../../../protocol/transactions/types/nftokenmint.md#nftokenmint-fields) for more information on transfer fees. | -| `issuer` | String | The account ID which denotes the issuer of this NFT. | -| `nft_taxon` | Integer | The NFT’s taxon. | -| `nft_serial` | Integer | The NFT’s sequence number. | -| `uri` | String | The NFT's URI, or an empty string if the NFT does not have a URI. {% badge href="https://github.com/XRPLF/clio/releases/tag/2.0.0" %}Updated in: Clio v2.0.0{% /badge %} | - +| `Field` | Type | Description | +| :------------- | :------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `nft_id` | String | A unique identifier for the non-fungible token (NFT). | +| `ledger_index` | Integer | The [ledger index][] of the most recent ledger version where the state of this NFT was modified, as in the NFT was minted (created), changed ownership (traded), or burned (destroyed). The information returned contains whatever happened most recently compared to the requested ledger. | +| `owner` | String | The account ID of this NFT's owner at this ledger index. | +| `is_burned` | Boolean | Returns `true` if the NFT is burned at this ledger, or `false` otherwise. | +| `flags ` | Integer | The flag set of this NFT. | +| `transfer_fee` | Integer | The transfer fee of this NFT. See [NFTokenMint Fields](../../../protocol/transactions/types/nftokenmint.md#nftokenmint-fields) for more information on transfer fees. | +| `issuer` | String | The account ID which denotes the issuer of this NFT. | +| `nft_taxon` | Integer | The NFT’s taxon. | +| `nft_serial` | Integer | The NFT’s sequence number. | +| `uri` | String | The NFT's URI, or an empty string if the NFT does not have a URI. {% badge href="https://github.com/XRPLF/clio/releases/tag/2.0.0" %}Updated in: Clio v2.0.0{% /badge %} | ## Possible Errors -* Any of the [universal error types][]. +- Any of the [universal error types][]. {% raw-partial file="/docs/_snippets/common-links.md" /%} - diff --git a/docs/references/http-websocket-apis/public-api-methods/clio-methods/nfts_by_issuer.md b/docs/references/http-websocket-apis/public-api-methods/clio-methods/nfts_by_issuer.md index 8215757099..705f903692 100644 --- a/docs/references/http-websocket-apis/public-api-methods/clio-methods/nfts_by_issuer.md +++ b/docs/references/http-websocket-apis/public-api-methods/clio-methods/nfts_by_issuer.md @@ -2,10 +2,11 @@ html: nfts_by_issuer.html parent: clio-methods.html seo: - description: Retrieve the history of ownership and transfers for the specified NFT using Clio server's `nft_history` API. + description: Retrieve the history of ownership and transfers for the specified NFT using Clio server's `nft_history` API. labels: - Non-fungible Tokens, NFTs --- + # nfts_by_issuer [[Source]](https://github.com/XRPLF/clio/blob/develop/src/rpc/handlers/NFTsByIssuer.cpp "Source") @@ -13,6 +14,7 @@ labels: `nfts_by_issuer` returns a list of NFTokens that are issued by the specified account. It can optionally filter by taxon. {% badge href="https://github.com/XRPLF/clio/releases/tag/2.1.0" %}New in: Clio v2.1.0{% /badge %} ## Request Format + An example of the request format: ```json @@ -26,15 +28,14 @@ An example of the request format: The request contains the following parameters: -| `Field` | Type | Description | -|:---------------|:--------|:-------------------------------| -| `issuer` | String | A unique identifier for the account, most commonly the account's address. | -| `marker` | Marker | _(Optional)_ Value from a previous paginated response. Resume retrieving data where that response left off. This value is NOT stable if there is a change in the server's range of available ledgers; meaning if you are querying the “validated” ledger it is possible that new NFTs are created during your paging. | -| `nft_taxon` | Integer | _(Optional)_ Use to filter NFTs issued by this issuer that have this taxon. | -| `ledger_hash` | String | _(Optional)_ Use to look for NFTs issued up to the provided ledger. If not provided, the server uses the current ledger. | -| `ledger_index` | String or Integer | _(Optional)_ Use to look for NFTs issued up to the provided ledger. If not provided, the server uses the current ledger. | -| `limit` | Integer | _(Optional)_ Limit the number of NFTs to retrieve. The server is not required to honor this value.| - +| `Field` | Type | Description | +| :------------- | :---------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `issuer` | String | A unique identifier for the account, most commonly the account's address. | +| `marker` | Marker | _(Optional)_ Value from a previous paginated response. Resume retrieving data where that response left off. This value is NOT stable if there is a change in the server's range of available ledgers; meaning if you are querying the “validated” ledger it is possible that new NFTs are created during your paging. | +| `nft_taxon` | Integer | _(Optional)_ Use to filter NFTs issued by this issuer that have this taxon. | +| `ledger_hash` | String | _(Optional)_ Use to look for NFTs issued up to the provided ledger. If not provided, the server uses the current ledger. | +| `ledger_index` | String or Integer | _(Optional)_ Use to look for NFTs issued up to the provided ledger. If not provided, the server uses the current ledger. | +| `limit` | Integer | _(Optional)_ Limit the number of NFTs to retrieve. The server is not required to honor this value. | {% admonition type="info" name="Note" %}If you do not specify a ledger version, Clio uses the latest validated ledger.{% /admonition %} @@ -44,45 +45,45 @@ An example of a successful response: ```json { - "result": { - "issuer": "rfXeQv31yWMrhhPxMHZRzQqhw5mQrcuici", - "limit": 50, - "ledger_index": 1534, - "nfts": [ - { - "nft_id": "00080000479C76BC5174816A938ABF667E67D851140BFE03F068FA97000005FB", - "ledger_index": 1533, - "owner": "rfXeQv31yWMrhhPxMHZRzQqhw5mQrcuici", - "is_burned": false, - "uri": "", - "flags": 8, - "transfer_fee": 0, - "issuer": "rfXeQv31yWMrhhPxMHZRzQqhw5mQrcuici", - "nft_taxon": 1, - "nft_serial": 1531 - } - ], - "validated": true, - "status": "success" - }, - "warnings": [ + "result": { + "issuer": "rfXeQv31yWMrhhPxMHZRzQqhw5mQrcuici", + "limit": 50, + "ledger_index": 1534, + "nfts": [ { - "id": 2001, - "message": "This is a clio server. clio only serves validated data. If you want to talk to rippled, include 'ledger_index':'current' in your request" + "nft_id": "00080000479C76BC5174816A938ABF667E67D851140BFE03F068FA97000005FB", + "ledger_index": 1533, + "owner": "rfXeQv31yWMrhhPxMHZRzQqhw5mQrcuici", + "is_burned": false, + "uri": "", + "flags": 8, + "transfer_fee": 0, + "issuer": "rfXeQv31yWMrhhPxMHZRzQqhw5mQrcuici", + "nft_taxon": 1, + "nft_serial": 1531 } - ] + ], + "validated": true, + "status": "success" + }, + "warnings": [ + { + "id": 2001, + "message": "This is a clio server. clio only serves validated data. If you want to talk to rippled, include 'ledger_index':'current' in your request" + } + ] } ``` The response follows the [standard format][], with a successful result containing the following fields: -| `Field` | Type | Description | -|:-------------------|:---------------------------|:---------------------------| -| `issuer` | String | Issuer's account ID. | -| `nfts` | Array<Object> | A list of NFTs issued by the account. The order of the NFTs is not associated with the date the NFTs were minted. | -| `marker` | Marker | _(Optional)_ Server-defined value indicating the response is paginated. Pass this to the next call to resume where this call left off. If this field is not returned, you know that you no longer need to make calls to this API. | -| `limit` | Integer | The `limit`, as specified in the request. | -| `nft_taxon` | Integer | _(Optional)_ The `nft_taxon` as specified in the request. | +| `Field` | Type | Description | +| :---------- | :------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `issuer` | String | Issuer's account ID. | +| `nfts` | Array<Object> | A list of NFTs issued by the account. The order of the NFTs is not associated with the date the NFTs were minted. | +| `marker` | Marker | _(Optional)_ Server-defined value indicating the response is paginated. Pass this to the next call to resume where this call left off. If this field is not returned, you know that you no longer need to make calls to this API. | +| `limit` | Integer | The `limit`, as specified in the request. | +| `nft_taxon` | Integer | _(Optional)_ The `nft_taxon` as specified in the request. | The format of each NFT in the `nfts` array is the same as the response to an [`nft_info`](nft_info.md) request. @@ -91,4 +92,3 @@ For definitions of the fields returned in the `tx` object, see [Transaction Meta Note:You might get back a response where the `nfts` field is empty but a marker is defined. You need to repeatedly request with the new markers until you receive a response that no longer has a marker. This can happen if you specify a specific ledger and there are tokens that were minted by the account after the specified ledger. {% raw-partial file="/docs/_snippets/common-links.md" /%} - diff --git a/docs/references/http-websocket-apis/public-api-methods/clio-methods/server_info-clio.md b/docs/references/http-websocket-apis/public-api-methods/clio-methods/server_info-clio.md index 64b23c4466..846a57f0b7 100644 --- a/docs/references/http-websocket-apis/public-api-methods/clio-methods/server_info-clio.md +++ b/docs/references/http-websocket-apis/public-api-methods/clio-methods/server_info-clio.md @@ -2,10 +2,11 @@ html: server_info-clio.html parent: clio-methods.html seo: - description: Retrieve status of the Clio server in human-readable format. + description: Retrieve status of the Clio server in human-readable format. labels: - Core Server --- + # server_info [[Source]](https://github.com/XRPLF/clio/blob/master/src/rpc/handlers/ServerInfo.cpp "Source") @@ -19,23 +20,25 @@ An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 1, "command": "server_info" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "server_info", - "params": [ - {} - ] + "method": "server_info", + "params": [{}] } ``` + {% /tab %} {% /tabs %} @@ -53,218 +56,221 @@ An example of a successful response when client connects over `localhost`: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": 1, - "result": { - "info": { - "complete_ledgers": "19499132-19977628", - "counters": { - "rpc": { - "account_objects": { - "started": "1", - "finished": "1", - "errored": "0", - "forwarded": "0", - "duration_us": "991" - }, - "account_tx": { - "started": "1", - "finished": "1", - "errored": "0", - "forwarded": "0", - "duration_us": "91633" - }, - "account_lines": { - "started": "5", - "finished": "5", - "errored": "0", - "forwarded": "0", - "duration_us": "4915159" - }, - "submit_multisigned": { - "started": "2", - "finished": "2", - "errored": "0", - "forwarded": "2", - "duration_us": "4823" - }, - "ledger_entry": { - "started": "1", - "finished": "1", - "errored": "0", - "forwarded": "0", - "duration_us": "17806" - }, - "server_info": { - "started": "5", - "finished": "5", - "errored": "0", - "forwarded": "0", - "duration_us": "2375580" - }, - "account_info": { - "started": "5", - "finished": "5", - "errored": "0", - "forwarded": "5", - "duration_us": "9256" - }, - "account_currencies": { - "started": "4", - "finished": "4", - "errored": "0", - "forwarded": "0", - "duration_us": "517302" - }, - "noripple_check": { - "started": "1", - "finished": "1", - "errored": "0", - "forwarded": "1", - "duration_us": "2218" - }, - "tx": { - "started": "1", - "finished": "1", - "errored": "0", - "forwarded": "0", - "duration_us": "562" - }, - "gateway_balances": { - "started": "6", - "finished": "6", - "errored": "0", - "forwarded": "0", - "duration_us": "1395156" - }, - "channel_authorize": { - "started": "1", - "finished": "1", - "errored": "0", - "forwarded": "1", - "duration_us": "2017" - }, - "manifest": { - "started": "1", - "finished": "1", - "errored": "0", - "forwarded": "1", - "duration_us": "1707" - }, - "subscribe": { - "started": "6", - "finished": "6", - "errored": "0", - "forwarded": "0", - "duration_us": "116" - }, - "random": { - "started": "1", - "finished": "1", - "errored": "0", - "forwarded": "0", - "duration_us": "111" - }, - "ledger_data": { - "started": "14", - "finished": "3", - "errored": "11", - "forwarded": "0", - "duration_us": "6179145" - }, - "ripple_path_find": { - "started": "1", - "finished": "1", - "errored": "0", - "forwarded": "1", - "duration_us": "1409563" - }, - "account_channels": { - "started": "14", - "finished": "14", - "errored": "0", - "forwarded": "0", - "duration_us": "1062692" - }, - "submit": { - "started": "6", - "finished": "6", - "errored": "0", - "forwarded": "6", - "duration_us": "11383" - }, - "transaction_entry": { - "started": "8", - "finished": "5", - "errored": "3", - "forwarded": "0", - "duration_us": "494131" - } - }, - "subscriptions": { - "ledger": 0, - "transactions": 0, - "transactions_proposed": 0, - "manifests": 2, - "validations": 2, - "account": 0, - "accounts_proposed": 0, - "books": 0 - } - }, - "load_factor": 1, - "clio_version": "0.3.0-b2", - "validation_quorum": 8, - "rippled_version": "1.9.1-rc1", - "validated_ledger": { - "age": 4, - "hash": "4CD25FB70D45646EE5822E76E58B66D39D5AE6BA0F70491FA803DA0DA218F434", - "seq": 19977628, - "base_fee_xrp": 1E-5, - "reserve_base_xrp": 1E1, - "reserve_inc_xrp": 2E0 - } + "id": 1, + "result": { + "info": { + "complete_ledgers": "19499132-19977628", + "counters": { + "rpc": { + "account_objects": { + "started": "1", + "finished": "1", + "errored": "0", + "forwarded": "0", + "duration_us": "991" + }, + "account_tx": { + "started": "1", + "finished": "1", + "errored": "0", + "forwarded": "0", + "duration_us": "91633" + }, + "account_lines": { + "started": "5", + "finished": "5", + "errored": "0", + "forwarded": "0", + "duration_us": "4915159" + }, + "submit_multisigned": { + "started": "2", + "finished": "2", + "errored": "0", + "forwarded": "2", + "duration_us": "4823" + }, + "ledger_entry": { + "started": "1", + "finished": "1", + "errored": "0", + "forwarded": "0", + "duration_us": "17806" + }, + "server_info": { + "started": "5", + "finished": "5", + "errored": "0", + "forwarded": "0", + "duration_us": "2375580" + }, + "account_info": { + "started": "5", + "finished": "5", + "errored": "0", + "forwarded": "5", + "duration_us": "9256" + }, + "account_currencies": { + "started": "4", + "finished": "4", + "errored": "0", + "forwarded": "0", + "duration_us": "517302" + }, + "noripple_check": { + "started": "1", + "finished": "1", + "errored": "0", + "forwarded": "1", + "duration_us": "2218" + }, + "tx": { + "started": "1", + "finished": "1", + "errored": "0", + "forwarded": "0", + "duration_us": "562" + }, + "gateway_balances": { + "started": "6", + "finished": "6", + "errored": "0", + "forwarded": "0", + "duration_us": "1395156" + }, + "channel_authorize": { + "started": "1", + "finished": "1", + "errored": "0", + "forwarded": "1", + "duration_us": "2017" + }, + "manifest": { + "started": "1", + "finished": "1", + "errored": "0", + "forwarded": "1", + "duration_us": "1707" + }, + "subscribe": { + "started": "6", + "finished": "6", + "errored": "0", + "forwarded": "0", + "duration_us": "116" + }, + "random": { + "started": "1", + "finished": "1", + "errored": "0", + "forwarded": "0", + "duration_us": "111" + }, + "ledger_data": { + "started": "14", + "finished": "3", + "errored": "11", + "forwarded": "0", + "duration_us": "6179145" + }, + "ripple_path_find": { + "started": "1", + "finished": "1", + "errored": "0", + "forwarded": "1", + "duration_us": "1409563" + }, + "account_channels": { + "started": "14", + "finished": "14", + "errored": "0", + "forwarded": "0", + "duration_us": "1062692" + }, + "submit": { + "started": "6", + "finished": "6", + "errored": "0", + "forwarded": "6", + "duration_us": "11383" + }, + "transaction_entry": { + "started": "8", + "finished": "5", + "errored": "3", + "forwarded": "0", + "duration_us": "494131" + } }, - "cache": { - "size": 8812733, - "is_full": true, - "latest_ledger_seq": 19977629 - }, - "etl": { - "etl_sources": [ - { - "validated_range": "19405538-19977629", - "is_connected": "1", - "ip": "52.36.182.38", - "ws_port": "6005", - "grpc_port": "50051", - "last_msg_age_seconds": "0" - } - ], - "is_writer": true, - "read_only": false, - "last_publish_age_seconds": "2" - }, - "validated": true - }, - "status": "success", - "type": "response", - "warnings": [ - { - "id": 2001, - "message": "This is a clio server. clio only serves validated data. If you want to talk to rippled, include ledger_index:current in your request" - }, - { - "id": 2002, - "message": "This server may be out of date" + "subscriptions": { + "ledger": 0, + "transactions": 0, + "transactions_proposed": 0, + "manifests": 2, + "validations": 2, + "account": 0, + "accounts_proposed": 0, + "books": 0 } - ] + }, + "load_factor": 1, + "clio_version": "0.3.0-b2", + "validation_quorum": 8, + "rippled_version": "1.9.1-rc1", + "validated_ledger": { + "age": 4, + "hash": "4CD25FB70D45646EE5822E76E58B66D39D5AE6BA0F70491FA803DA0DA218F434", + "seq": 19977628, + "base_fee_xrp": 1e-5, + "reserve_base_xrp": 1e1, + "reserve_inc_xrp": 2 + } + }, + "cache": { + "size": 8812733, + "is_full": true, + "latest_ledger_seq": 19977629 + }, + "etl": { + "etl_sources": [ + { + "validated_range": "19405538-19977629", + "is_connected": "1", + "ip": "52.36.182.38", + "ws_port": "6005", + "grpc_port": "50051", + "last_msg_age_seconds": "0" + } + ], + "is_writer": true, + "read_only": false, + "last_publish_age_seconds": "2" + }, + "validated": true + }, + "status": "success", + "type": "response", + "warnings": [ + { + "id": 2001, + "message": "This is a clio server. clio only serves validated data. If you want to talk to rippled, include ledger_index:current in your request" + }, + { + "id": 2002, + "message": "This server may be out of date" + } + ] } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -475,6 +481,7 @@ An example of a successful response when client connects over `localhost`: ] } ``` + {% /tab %} {% /tabs %} @@ -484,44 +491,47 @@ An example of a successful response when client does not connect over `localhost {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": 1, - "result": { - "info": { - "complete_ledgers":"32570-73737719", - "load_factor":1, - "clio_version":"1.0.2", - "validation_quorum":28, - "rippled_version":"1.9.1", - "validated_ledger": { - "age":7, - "hash":"4ECDEAF9E6F8B37EFDE297953168AAB42DEED1082A565639EBB2D29E047341B4", - "seq":73737719, - "base_fee_xrp":1E-5, - "reserve_base_xrp":1E1, - "reserve_inc_xrp":2E0 - }, - "cache": { - "size":15258947, - "is_full":true, - "latest_ledger_seq":73737719 - } - }, - "validated":true, - "status":"success" + "id": 1, + "result": { + "info": { + "complete_ledgers": "32570-73737719", + "load_factor": 1, + "clio_version": "1.0.2", + "validation_quorum": 28, + "rippled_version": "1.9.1", + "validated_ledger": { + "age": 7, + "hash": "4ECDEAF9E6F8B37EFDE297953168AAB42DEED1082A565639EBB2D29E047341B4", + "seq": 73737719, + "base_fee_xrp": 1e-5, + "reserve_base_xrp": 1e1, + "reserve_inc_xrp": 2 + }, + "cache": { + "size": 15258947, + "is_full": true, + "latest_ledger_seq": 73737719 + } }, - "warnings": [ - { - "id":2001, - "message":"This is a clio server. clio only serves validated data. If you want to talk to rippled, include 'ledger_index':'current' in your request" - } - ] + "validated": true, + "status": "success" + }, + "warnings": [ + { + "id": 2001, + "message": "This is a clio server. clio only serves validated data. If you want to talk to rippled, include 'ledger_index':'current' in your request" + } + ] } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -558,6 +568,7 @@ An example of a successful response when client does not connect over `localhost ] } ``` + {% /tab %} {% /tabs %} @@ -566,54 +577,54 @@ The response follows the [standard format][], with a successful result containin The `info` object may have some arrangement of the following fields: -| `Field` | Type | Description | -|:------------------------------------|:----------------|:---------------------| -| `complete_ledgers` | String | Range expression indicating the sequence numbers of the ledger versions the local `rippled` has in its database. This may be a disjoint sequence such as `24900901-24900984,24901116-24901158`. If the server does not have any complete ledgers (for example, it recently started syncing with the network), this is the string `empty`. | -| `counters` | Object | _(May be omitted)_ Stats on API calls handled since server startup. This is present only if the client connects to the Clio server over `localhost`. -| `rpc` | Object | _(May be omitted)_ Stats on each API call handled by the Clio server since startup. Since this is nested within the `counters` object, this is also present only if the client connects to the Clio server over `localhost`. The rpc object is a map of API method names to [API Stats Objects](#api-stats-objects). | -| `subscriptions` | Object | _(May be omitted)_ Number of current subscribers for each stream type. Since this is nested within the `counters` object, this is also present only if the client connects to the Clio server over `localhost`. | -| `subscriptions.ledger` | | | -| `subscriptions.transactions` | | | -| `subscriptions.transactions_proposed` | | | -| `subscriptions.manifests` | | | -| `subscriptions.validations` | | | -| `subscriptions.account` | | | -| `subscriptions.accounts_proposed` | | | -| `subscriptions.books` | | | -| `time` | String | The current time in UTC, according to the server's clock. {% badge href="https://github.com/XRPLF/clio/releases/tag/2.0.0" %}New in: Clio v2.0{% /badge %} | -| `uptime` | Number | Number of consecutive seconds that the server has been operational. {% badge href="https://github.com/XRPLF/clio/releases/tag/2.0.0" %}New in: Clio v2.0{% /badge %} | -| `amendment_blocked` | Boolean | _(May be omitted)_ Whether the Clio server is [Amendment Blocked](../../../../concepts/networks-and-servers/amendments.md#amendment-blocked-clio-servers) {% badge href="https://github.com/XRPLF/clio/releases/tag/2.0.0" %}New in: Clio v2.0{% /badge %} | -| `load_factor` | Number | The load-scaled open ledger transaction cost the server is currently enforcing, as a multiplier on the base transaction cost. For example, at `1000` load factor and a reference transaction cost of 10 drops of XRP, the load-scaled transaction cost is 10,000 drops (0.01 XRP). The load factor is determined by the highest of the [individual server's load factor](../../../../concepts/transactions/transaction-cost.md#local-load-cost), the cluster's load factor, the [open ledger cost](../../../../concepts/transactions/transaction-cost.md#open-ledger-cost) and the overall network's load factor. | -| `clio_version` | String | The version number of the running Clio server. | -| `libxrpl_version` | String | The version number of the `libxrpl` library this Clio server was built against. {% badge href="https://github.com/XRPLF/clio/releases/tag/2.0.0" %}New in: Clio v2.0{% /badge %} | -| `validation_quorum` | Number | _(May be omitted)_ Minimum number of trusted validations required to validate a ledger version. Some circumstances may cause the server to require more validations. This value is obtained from `rippled`. This field may be omitted from the response if the Clio server is unable to connect to `rippled` for some reason. | -| `rippled_version` | String | _(May be omitted)_ The version number of the running `rippled` server that the Clio server is connected to. This field may be omitted from the response if the Clio server is unable to connect to `rippled` for some reason. | -| `network_id` | String | _(May be omitted)_ The network ID of the network that the `rippled` this Clio server is connected to is operating on. This field may be omitted from the response if the Clio server is unable to connect to `rippled` for some reason. {% badge href="https://github.com/XRPLF/clio/releases/tag/2.0.0" %}New in: Clio v2.0{% /badge %} | -| `validated_ledger` | Object | _(May be omitted)_ Information about the most recent fully-validated ledger. If the most recent validated ledger is not available, the response omits this field and includes `closed_ledger` instead. | -| `validated_ledger.age` | Number | The time since the ledger was closed, in seconds. | -| `validated_ledger.base_fee_xrp` | Number | Base fee, in XRP. This may be represented in scientific notation such as `1e-05` for 0.00001. | -| `validated_ledger.hash` | String | Unique hash for the ledger, as hexadecimal. | -| `validated_ledger.reserve_base_xrp` | Number | Minimum amount of XRP (not drops) necessary for every account to keep in reserve. This may be represented in scientific notation such as `1e-05` for 0.00001. | -| `validated_ledger.reserve_inc_xrp` | Number | Amount of XRP (not drops) added to the account reserve for each object an account owns in the ledger. This may be represented in scientific notation such as `1e-05` for 0.00001. | -| `validated_ledger.seq` | Number | The [ledger index][] of the latest validated ledger. | -| `validator_list_expires` | String | _(Admin only)_ Either the human readable time, in UTC, when the current validator list expires, the string `unknown` if the server has yet to load a published validator list or the string `never` if the server uses a static validator list. | -| `cache` | Object | Information on Clio's state data cache. | -| `cache.size` | Number | Number of state data objects currently in the cache. | -| `cache.is_full` | Boolean | True if cache contains all state data for a specific ledger, false otherwise. Some API calls, such as the [book_offers method][], process much faster when the cache is full. | -| `cache.latest_ledger_seq` | Number | The [ledger index][] of the latest validated ledger stored in the cache. | -| `etl` | Object | The `rippled` sources (ETL sources) that the Clio server is connected to. This is present only if the client connects to the Clio server over `localhost`. | -| `etl.etl_sources` | Object Array | List the `rippled` sources (ETL sources) that the Clio server is connected to and extracts data from. | -| `etl.etl_sources.validated_range` | String | The validated ledger range retrieved by the P2P `rippled` server. | -| `etl.etl_sources.is_connected` | Boolean | True if Clio is connected to this source via websocket, false otherwise. A value of false here could indicate a networking issue, or that `rippled` is not running, amongst other things. | -| `etl.etl_sources.ip` | Number | IP of the `rippled` server. | -| `etl.etl_sources.ws_port` | Number | Websocket port of the `rippled` server. | -| `etl.etl_sources.grpc_port` | Number | The gRPC connection port of the P2P `rippled` server that the Clio server is connected to. | -| `etl.etl_sources.last_msg_age_seconds` | Number | Total seconds that have elapsed since Clio last heard anything from `rippled`. This should not be higher than 8. | -| `etl.is_writer` | Boolean | True if this Clio server is currently writing data to the database, false otherwise. | -| `etl.read_only` | Boolean | True if this Clio server is configured in read-only mode, false otherwise. | -| `etl.last_publish_age_seconds` | Number | Time in seconds that have elapsed since this Clio server last published a ledger. This should not be more than 8. | -| `validated` | Boolean | When true, this indicates that the response uses a ledger version that has been validated by consensus. In Clio, this is always true as Clio stores and returns validated ledger data. If a request was forwarded to `rippled` and the server returns current data, a missing or false value indicates that this ledger's data is not final. | -| `status` | String | Returns the status of the API request: `success` when the request completes successfully. | +| `Field` | Type | Description | +| :------------------------------------- | :----------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `complete_ledgers` | String | Range expression indicating the sequence numbers of the ledger versions the local `rippled` has in its database. This may be a disjoint sequence such as `24900901-24900984,24901116-24901158`. If the server does not have any complete ledgers (for example, it recently started syncing with the network), this is the string `empty`. | +| `counters` | Object | _(May be omitted)_ Stats on API calls handled since server startup. This is present only if the client connects to the Clio server over `localhost`. | +| `rpc` | Object | _(May be omitted)_ Stats on each API call handled by the Clio server since startup. Since this is nested within the `counters` object, this is also present only if the client connects to the Clio server over `localhost`. The rpc object is a map of API method names to [API Stats Objects](#api-stats-objects). | +| `subscriptions` | Object | _(May be omitted)_ Number of current subscribers for each stream type. Since this is nested within the `counters` object, this is also present only if the client connects to the Clio server over `localhost`. | +| `subscriptions.ledger` | | | +| `subscriptions.transactions` | | | +| `subscriptions.transactions_proposed` | | | +| `subscriptions.manifests` | | | +| `subscriptions.validations` | | | +| `subscriptions.account` | | | +| `subscriptions.accounts_proposed` | | | +| `subscriptions.books` | | | +| `time` | String | The current time in UTC, according to the server's clock. {% badge href="https://github.com/XRPLF/clio/releases/tag/2.0.0" %}New in: Clio v2.0{% /badge %} | +| `uptime` | Number | Number of consecutive seconds that the server has been operational. {% badge href="https://github.com/XRPLF/clio/releases/tag/2.0.0" %}New in: Clio v2.0{% /badge %} | +| `amendment_blocked` | Boolean | _(May be omitted)_ Whether the Clio server is [Amendment Blocked](../../../../concepts/networks-and-servers/amendments.md#amendment-blocked-clio-servers) {% badge href="https://github.com/XRPLF/clio/releases/tag/2.0.0" %}New in: Clio v2.0{% /badge %} | +| `load_factor` | Number | The load-scaled open ledger transaction cost the server is currently enforcing, as a multiplier on the base transaction cost. For example, at `1000` load factor and a reference transaction cost of 10 drops of XRP, the load-scaled transaction cost is 10,000 drops (0.01 XRP). The load factor is determined by the highest of the [individual server's load factor](../../../../concepts/transactions/transaction-cost.md#local-load-cost), the cluster's load factor, the [open ledger cost](../../../../concepts/transactions/transaction-cost.md#open-ledger-cost) and the overall network's load factor. | +| `clio_version` | String | The version number of the running Clio server. | +| `libxrpl_version` | String | The version number of the `libxrpl` library this Clio server was built against. {% badge href="https://github.com/XRPLF/clio/releases/tag/2.0.0" %}New in: Clio v2.0{% /badge %} | +| `validation_quorum` | Number | _(May be omitted)_ Minimum number of trusted validations required to validate a ledger version. Some circumstances may cause the server to require more validations. This value is obtained from `rippled`. This field may be omitted from the response if the Clio server is unable to connect to `rippled` for some reason. | +| `rippled_version` | String | _(May be omitted)_ The version number of the running `rippled` server that the Clio server is connected to. This field may be omitted from the response if the Clio server is unable to connect to `rippled` for some reason. | +| `network_id` | String | _(May be omitted)_ The network ID of the network that the `rippled` this Clio server is connected to is operating on. This field may be omitted from the response if the Clio server is unable to connect to `rippled` for some reason. {% badge href="https://github.com/XRPLF/clio/releases/tag/2.0.0" %}New in: Clio v2.0{% /badge %} | +| `validated_ledger` | Object | _(May be omitted)_ Information about the most recent fully-validated ledger. If the most recent validated ledger is not available, the response omits this field and includes `closed_ledger` instead. | +| `validated_ledger.age` | Number | The time since the ledger was closed, in seconds. | +| `validated_ledger.base_fee_xrp` | Number | Base fee, in XRP. This may be represented in scientific notation such as `1e-05` for 0.00001. | +| `validated_ledger.hash` | String | Unique hash for the ledger, as hexadecimal. | +| `validated_ledger.reserve_base_xrp` | Number | Minimum amount of XRP (not drops) necessary for every account to keep in reserve. This may be represented in scientific notation such as `1e-05` for 0.00001. | +| `validated_ledger.reserve_inc_xrp` | Number | Amount of XRP (not drops) added to the account reserve for each object an account owns in the ledger. This may be represented in scientific notation such as `1e-05` for 0.00001. | +| `validated_ledger.seq` | Number | The [ledger index][] of the latest validated ledger. | +| `validator_list_expires` | String | _(Admin only)_ Either the human readable time, in UTC, when the current validator list expires, the string `unknown` if the server has yet to load a published validator list or the string `never` if the server uses a static validator list. | +| `cache` | Object | Information on Clio's state data cache. | +| `cache.size` | Number | Number of state data objects currently in the cache. | +| `cache.is_full` | Boolean | True if cache contains all state data for a specific ledger, false otherwise. Some API calls, such as the [book_offers method][], process much faster when the cache is full. | +| `cache.latest_ledger_seq` | Number | The [ledger index][] of the latest validated ledger stored in the cache. | +| `etl` | Object | The `rippled` sources (ETL sources) that the Clio server is connected to. This is present only if the client connects to the Clio server over `localhost`. | +| `etl.etl_sources` | Object Array | List the `rippled` sources (ETL sources) that the Clio server is connected to and extracts data from. | +| `etl.etl_sources.validated_range` | String | The validated ledger range retrieved by the P2P `rippled` server. | +| `etl.etl_sources.is_connected` | Boolean | True if Clio is connected to this source via websocket, false otherwise. A value of false here could indicate a networking issue, or that `rippled` is not running, amongst other things. | +| `etl.etl_sources.ip` | Number | IP of the `rippled` server. | +| `etl.etl_sources.ws_port` | Number | Websocket port of the `rippled` server. | +| `etl.etl_sources.grpc_port` | Number | The gRPC connection port of the P2P `rippled` server that the Clio server is connected to. | +| `etl.etl_sources.last_msg_age_seconds` | Number | Total seconds that have elapsed since Clio last heard anything from `rippled`. This should not be higher than 8. | +| `etl.is_writer` | Boolean | True if this Clio server is currently writing data to the database, false otherwise. | +| `etl.read_only` | Boolean | True if this Clio server is configured in read-only mode, false otherwise. | +| `etl.last_publish_age_seconds` | Number | Time in seconds that have elapsed since this Clio server last published a ledger. This should not be more than 8. | +| `validated` | Boolean | When true, this indicates that the response uses a ledger version that has been validated by consensus. In Clio, this is always true as Clio stores and returns validated ledger data. If a request was forwarded to `rippled` and the server returns current data, a missing or false value indicates that this ledger's data is not final. | +| `status` | String | Returns the status of the API request: `success` when the request completes successfully. | ### API Stats Objects @@ -629,6 +640,6 @@ An API Stats object provides key metrics for every API call handled by the Clio ## Possible Errors -* Any of the [universal error types][]. +- Any of the [universal error types][]. {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/http-websocket-apis/public-api-methods/clio-methods/version.md b/docs/references/http-websocket-apis/public-api-methods/clio-methods/version.md index b9b4eb5da5..bc5c0c46b1 100644 --- a/docs/references/http-websocket-apis/public-api-methods/clio-methods/version.md +++ b/docs/references/http-websocket-apis/public-api-methods/clio-methods/version.md @@ -1,37 +1,41 @@ --- seo: - description: Retrieve API version information. + description: Retrieve API version information. labels: - Core Server --- + # version + [[Source]](https://github.com/XRPLF/clio/blob/develop/src/rpc/handlers/VersionHandler.hpp "Source") The `version` command retrieves the API version information of the [Clio server](../../../../concepts/networks-and-servers/the-clio-server.md). For `rippled` servers, see [`version` (`rippled`)](../server-info-methods/version.md) instead. {% badge href="https://github.com/XRPLF/clio/releases/tag/1.0.0" %}New in: Clio v2.0.0{% /badge %} - ## Request Format + An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { - "command": "version" + "command": "version" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "version", - "params": [ - {} - ] + "method": "version", + "params": [{}] } ``` + {% /tab %} {% /tabs %} @@ -47,6 +51,7 @@ An example of a successful response: {% tabs %} {% tab label="WebSocket" %} + ```json { "result": { @@ -66,9 +71,11 @@ An example of a successful response: ] } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -90,6 +97,7 @@ An example of a successful response: ] } ``` + {% /tab %} {% /tabs %} @@ -98,14 +106,14 @@ The response follows the [standard format][], with a successful result containin The `version` object returns some arrangement of the following fields: -| `Field` | Type | Description | -|:---------|:--------|:------------------------------| -| `first` | Integer | Lowest supported API release | -| `last` | Integer | Highest supported API release | -| `good` | Integer | Default API if none specified | +| `Field` | Type | Description | +| :------ | :------ | :---------------------------- | +| `first` | Integer | Lowest supported API release | +| `last` | Integer | Highest supported API release | +| `good` | Integer | Default API if none specified | ## Possible Errors -* Any of the [universal error types][]. +- Any of the [universal error types][]. {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/http-websocket-apis/public-api-methods/index.md b/docs/references/http-websocket-apis/public-api-methods/index.md index 6cc167d216..84123283f3 100644 --- a/docs/references/http-websocket-apis/public-api-methods/index.md +++ b/docs/references/http-websocket-apis/public-api-methods/index.md @@ -2,125 +2,119 @@ html: public-api-methods.html parent: http-websocket-apis.html seo: - description: Get data from the XRP Ledger and submit transactions using these public API methods. + description: Get data from the XRP Ledger and submit transactions using these public API methods. top_nav_name: API Methods top_nav_grouping: Popular Pages labels: - Core Server --- + # Public API Methods Communicate directly with an [XRP Ledger server](../../../concepts/networks-and-servers/index.md) using the public API methods. Public methods are not necessarily meant for the general public, but they are used by any client attached to the server. Think of public methods as being for members or customers of the organization running the server. - ## [Account Methods](account-methods/index.md) An account in the XRP Ledger represents a holder of XRP and a sender of transactions. Use these methods to work with account info. -* **[`account_channels`](account-methods/account_channels.md)** - Get a list of payment channels where the account is the source of the channel. -* **[`account_currencies`](account-methods/account_currencies.md)** - Get a list of currencies an account can send or receive. -* **[`account_info`](account-methods/account_info.md)** - Get basic data about an account. -* **[`account_lines`](account-methods/account_lines.md)** - Get info about an account's trust lines. -* **[`account_nfts`](account-methods/account_nfts.md)** - Get a list of non-fungible tokens owned by an account. -* **[`account_objects`](account-methods/account_objects.md)** - Get all ledger objects owned by an account. -* **[`account_offers`](account-methods/account_offers.md)** - Get info about an account's currency exchange offers. -* **[`account_tx`](account-methods/account_tx.md)** - Get info about an account's transactions. -* **[`gateway_balances`](account-methods/gateway_balances.md)** - Calculate total amounts issued by an account. -* **[`noripple_check`](account-methods/noripple_check.md)** - Get recommended changes to an account's Default Ripple and No Ripple settings. - +- **[`account_channels`](account-methods/account_channels.md)** - Get a list of payment channels where the account is the source of the channel. +- **[`account_currencies`](account-methods/account_currencies.md)** - Get a list of currencies an account can send or receive. +- **[`account_info`](account-methods/account_info.md)** - Get basic data about an account. +- **[`account_lines`](account-methods/account_lines.md)** - Get info about an account's trust lines. +- **[`account_nfts`](account-methods/account_nfts.md)** - Get a list of non-fungible tokens owned by an account. +- **[`account_objects`](account-methods/account_objects.md)** - Get all ledger objects owned by an account. +- **[`account_offers`](account-methods/account_offers.md)** - Get info about an account's currency exchange offers. +- **[`account_tx`](account-methods/account_tx.md)** - Get info about an account's transactions. +- **[`gateway_balances`](account-methods/gateway_balances.md)** - Calculate total amounts issued by an account. +- **[`noripple_check`](account-methods/noripple_check.md)** - Get recommended changes to an account's Default Ripple and No Ripple settings. ## [Ledger Methods](ledger-methods/index.md) A ledger version contains a header, a transaction tree, and a state tree, which contain account settings, trust lines, balances, transactions, and other data. Use these methods to retrieve ledger info. -* **[`ledger`](ledger-methods/ledger.md)** - Get info about a ledger version. -* **[`ledger_closed`](ledger-methods/ledger_closed.md)** - Get the latest closed ledger version. -* **[`ledger_current`](ledger-methods/ledger_current.md)** - Get the current working ledger version. -* **[`ledger_data`](ledger-methods/ledger_data.md)** - Get the raw contents of a ledger version. -* **[`ledger_entry`](ledger-methods/ledger_entry.md)** - Get one element from a ledger version. - +- **[`ledger`](ledger-methods/ledger.md)** - Get info about a ledger version. +- **[`ledger_closed`](ledger-methods/ledger_closed.md)** - Get the latest closed ledger version. +- **[`ledger_current`](ledger-methods/ledger_current.md)** - Get the current working ledger version. +- **[`ledger_data`](ledger-methods/ledger_data.md)** - Get the raw contents of a ledger version. +- **[`ledger_entry`](ledger-methods/ledger_entry.md)** - Get one element from a ledger version. ## [Transaction Methods](transaction-methods/index.md) Transactions are the only thing that can modify the shared state of the XRP Ledger. All business on the XRP Ledger takes the form of transactions. Use these methods to work with transactions. -* **[`submit`](transaction-methods/submit.md)** - Send a transaction to the network. -* **[`submit_multisigned`](transaction-methods/submit_multisigned.md)** - Send a multi-signed transaction to the network. -* **[`transaction_entry`](transaction-methods/transaction_entry.md)** - Retrieve info about a transaction from a particular ledger version. -* **[`tx`](transaction-methods/tx.md)** - Retrieve info about a transaction from all the ledgers on hand. +- **[`submit`](transaction-methods/submit.md)** - Send a transaction to the network. +- **[`submit_multisigned`](transaction-methods/submit_multisigned.md)** - Send a multi-signed transaction to the network. +- **[`transaction_entry`](transaction-methods/transaction_entry.md)** - Retrieve info about a transaction from a particular ledger version. +- **[`tx`](transaction-methods/tx.md)** - Retrieve info about a transaction from all the ledgers on hand. By default, the following methods are [admin-only](../admin-api-methods/index.md). They can be used as public methods if the server admin has [enabled public signing](../../../infrastructure/configuration/enable-public-signing.md). -* **[`sign`](../admin-api-methods/signing-methods/sign.md)** - Cryptographically sign a transaction. -* **[`sign_for`](../admin-api-methods/signing-methods/sign_for.md)** - Contribute to a multi-signature. - +- **[`sign`](../admin-api-methods/signing-methods/sign.md)** - Cryptographically sign a transaction. +- **[`sign_for`](../admin-api-methods/signing-methods/sign_for.md)** - Contribute to a multi-signature. ## [Path and Order Book Methods](path-and-order-book-methods/index.md) Paths define a way for payments to flow through intermediary steps on their way from sender to receiver. Paths enable cross-currency payments by connecting sender and receiver through order books. Use these methods to work with paths and other books. -* **[`amm_info`](path-and-order-book-methods/amm_info.md)** - Get info about an Automated Market Maker (AMM). -* **[`book_offers`](path-and-order-book-methods/book_offers.md)** - Get info about offers to exchange two currencies. -* **[`deposit_authorized`](path-and-order-book-methods/deposit_authorized.md)** - Look up whether one account is authorized to send payments directly to another. -* **[`nft_buy_offers`](path-and-order-book-methods/nft_buy_offers.md)** - Retrieve a list of buy offers for a specified NFToken object. -* **[`nft_sell_offers`](path-and-order-book-methods/nft_sell_offers.md)** - Retrieve a list of sell offers for a specified NFToken object. -* **[`path_find`](path-and-order-book-methods/path_find.md)** - Find a path for a payment between two accounts and receive updates. -* **[`ripple_path_find`](path-and-order-book-methods/ripple_path_find.md)** - Find a path for payment between two accounts, once. - +- **[`amm_info`](path-and-order-book-methods/amm_info.md)** - Get info about an Automated Market Maker (AMM). +- **[`book_offers`](path-and-order-book-methods/book_offers.md)** - Get info about offers to exchange two currencies. +- **[`deposit_authorized`](path-and-order-book-methods/deposit_authorized.md)** - Look up whether one account is authorized to send payments directly to another. +- **[`nft_buy_offers`](path-and-order-book-methods/nft_buy_offers.md)** - Retrieve a list of buy offers for a specified NFToken object. +- **[`nft_sell_offers`](path-and-order-book-methods/nft_sell_offers.md)** - Retrieve a list of sell offers for a specified NFToken object. +- **[`path_find`](path-and-order-book-methods/path_find.md)** - Find a path for a payment between two accounts and receive updates. +- **[`ripple_path_find`](path-and-order-book-methods/ripple_path_find.md)** - Find a path for payment between two accounts, once. ## [Payment Channel Methods](payment-channel-methods/index.md) Payment channels are a tool for facilitating repeated, unidirectional payments, or temporary credit between two parties. Use these methods to work with payment channels. -* **[`channel_verify`](payment-channel-methods/channel_verify.md)** - Check a payment channel claim's signature. +- **[`channel_verify`](payment-channel-methods/channel_verify.md)** - Check a payment channel claim's signature. By default, the following method is [admin-only](../admin-api-methods/index.md). It can be used as a public method if the server admin has [enabled public signing](../../../infrastructure/configuration/enable-public-signing.md). -* **[`channel_authorize`](payment-channel-methods/channel_authorize.md)** - Sign a claim for money from a payment channel. +- **[`channel_authorize`](payment-channel-methods/channel_authorize.md)** - Sign a claim for money from a payment channel. ## [Subscription Methods](subscription-methods/index.md) Use these methods to enable the server to push updates to your client when various events happen, so that you can know and react right away. _WebSocket API only._ -* **[`subscribe`](subscription-methods/subscribe.md)** - Listen for updates about a particular subject. -* **[`unsubscribe`](subscription-methods/unsubscribe.md)** - Stop listening for updates about a particular subject. - +- **[`subscribe`](subscription-methods/subscribe.md)** - Listen for updates about a particular subject. +- **[`unsubscribe`](subscription-methods/unsubscribe.md)** - Stop listening for updates about a particular subject. ## [Server Info Methods](server-info-methods/index.md) Use these methods to retrieve information about the current state of the `rippled` server. -* **[`fee`](server-info-methods/fee.md)** - Get information about transaction cost. -* **[`feature`](server-info-methods/feature.md)** - Returns information about amendments this server knows about. -* **[`server_info`](server-info-methods/server_info.md)** - Retrieve status of the server in human-readable format. -* **[`server_state`](server-info-methods/server_state.md)** - Retrieve status of the server in machine-readable format. -* **[`server_definitions`](server-info-methods/server_definitions.md)** - Retrieve a list of types and fields used for the XRPL's canonical binary format. -* **[`manifest`](server-info-methods/manifest.md)** - Retrieve the latest ephemeral public key information about a known validator. +- **[`fee`](server-info-methods/fee.md)** - Get information about transaction cost. +- **[`feature`](server-info-methods/feature.md)** - Returns information about amendments this server knows about. +- **[`server_info`](server-info-methods/server_info.md)** - Retrieve status of the server in human-readable format. +- **[`server_state`](server-info-methods/server_state.md)** - Retrieve status of the server in machine-readable format. +- **[`server_definitions`](server-info-methods/server_definitions.md)** - Retrieve a list of types and fields used for the XRPL's canonical binary format. +- **[`manifest`](server-info-methods/manifest.md)** - Retrieve the latest ephemeral public key information about a known validator. ## [Clio Methods](clio-methods/index.md) Use these methods to retrieve information using Clio server APIs. -* **[`server_info`](clio-methods/server_info-clio.md)** - Retrieve status of the Clio server. -* **[`ledger`](clio-methods/ledger-clio.md)** - Get info about a ledger version using Clio server's `ledger` API. -* **[`nft_info`](clio-methods/nft_info.md)** - Retrieve information about the specified NFT using Clio server's `nft_info` API. -* **[`nft_history`](clio-methods/nft_history.md)** - Retrieve the history of ownership and transfers for the specified NFT. -* **[`nfts_by_issuer`](clio-methods/nfts_by_issuer.md)** - Returns a list of NFTokens that are issued by the specified account. +- **[`server_info`](clio-methods/server_info-clio.md)** - Retrieve status of the Clio server. +- **[`ledger`](clio-methods/ledger-clio.md)** - Get info about a ledger version using Clio server's `ledger` API. +- **[`nft_info`](clio-methods/nft_info.md)** - Retrieve information about the specified NFT using Clio server's `nft_info` API. +- **[`nft_history`](clio-methods/nft_history.md)** - Retrieve the history of ownership and transfers for the specified NFT. +- **[`nfts_by_issuer`](clio-methods/nfts_by_issuer.md)** - Returns a list of NFTokens that are issued by the specified account. ## [Utility Methods](utility-methods/index.md) Use these methods to perform convenient tasks, such as ping and random number generation. -* **[`json`](utility-methods/json.md)** - Use as a proxy to running other commands. Accepts the parameters for the command as a JSON value. _Commandline only._ -* **[`ping`](utility-methods/ping.md)** - Confirm connectivity with the server. -* **[`random`](utility-methods/random.md)** - Generate a random number. - +- **[`json`](utility-methods/json.md)** - Use as a proxy to running other commands. Accepts the parameters for the command as a JSON value. _Commandline only._ +- **[`ping`](utility-methods/ping.md)** - Confirm connectivity with the server. +- **[`random`](utility-methods/random.md)** - Generate a random number. ## Deprecated Methods The following methods are deprecated and either have been removed, or may be removed without further notice: -* **`owner_info`** - Use [`account_objects`](account-methods/account_objects.md) instead. -* **[`tx_history`](transaction-methods/tx_history.md)** - Use either the [account_tx method][], or the [ledger method][] with the `transactions` field set to `true`. +- **`owner_info`** - Use [`account_objects`](account-methods/account_objects.md) instead. +- **[`tx_history`](transaction-methods/tx_history.md)** - Use either the [account_tx method][], or the [ledger method][] with the `transactions` field set to `true`. {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/http-websocket-apis/public-api-methods/ledger-methods/index.md b/docs/references/http-websocket-apis/public-api-methods/ledger-methods/index.md index ab87dc63fc..b22acfad2e 100644 --- a/docs/references/http-websocket-apis/public-api-methods/ledger-methods/index.md +++ b/docs/references/http-websocket-apis/public-api-methods/ledger-methods/index.md @@ -4,9 +4,9 @@ parent: public-api-methods.html metadata: indexPage: true --- + # Ledger Methods A ledger version contains a header, a transaction tree, and a state tree, which contain account settings, trustlines, balances, transactions, and other data. Use these methods to retrieve ledger info. - {% child-pages /%} diff --git a/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger.md b/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger.md index c506c4bd30..5552f9e921 100644 --- a/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger.md +++ b/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger.md @@ -1,57 +1,66 @@ --- seo: - description: Get info about a ledger version. + description: Get info about a ledger version. labels: - - Blockchain + - Blockchain --- + # ledger + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/LedgerHandler.cpp "Source") Retrieve information about the public [ledger](../../../../concepts/ledgers/index.md). ## Request Format + An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": "example_ledger_req", - "command": "ledger", - "ledger_index": "validated", - "transactions": false, - "expand": false, - "owner_funds": false, - "api_version": 2 + "id": "example_ledger_req", + "command": "ledger", + "ledger_index": "validated", + "transactions": false, + "expand": false, + "owner_funds": false, + "api_version": 2 } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "ledger", - "params": [ - { - "ledger_index": "validated", - "transactions": false, - "expand": false, - "owner_funds": false, - "api_version": 2 - } - ] + "method": "ledger", + "params": [ + { + "ledger_index": "validated", + "transactions": false, + "expand": false, + "owner_funds": false, + "api_version": 2 + } + ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh #Syntax: ledger ledger_index|ledger_hash [full|tx] # "full" is equivalent to "full": true # "tx" is equivalent to "transactions": true rippled ledger validated ``` + {% /tab %} {% /tabs %} @@ -60,17 +69,16 @@ rippled ledger validated The request can contain the following parameters: -| `Field` | Type | Required? | Description | -|:---------------|:-----------------|:----------|-------------| -| `ledger_hash` | [Hash][] | No | A 32-byte hex string for the ledger version to use. (See [Specifying Ledgers][]). | -| `ledger_index` | [Ledger Index][] | No | The [ledger index][] of the ledger to use, or a shortcut string to choose a ledger automatically. (See [Specifying Ledgers][]) | -| `transactions` | Boolean | No | If `true`, return information on transactions in the specified ledger version. The default is `false`. Ignored if you did not specify a ledger version. | -| `expand` | Boolean | No | Provide full JSON-formatted information for transaction/account information instead of only hashes. The default is `false`. Ignored unless you request transactions, accounts, or both. | -| `owner_funds` | Boolean | No | If `true`, include `owner_funds` field in the metadata of OfferCreate transactions in the response. The default is `false`. Ignored unless transactions are included and `expand` is true. | -| `binary` | Boolean | No | If `true`, and `transactions` and `expand` are both also `true`, return transaction information in binary format (hexadecimal string) instead of JSON format. | +| `Field` | Type | Required? | Description | +| :------------- | :--------------- | :-------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `ledger_hash` | [Hash][] | No | A 32-byte hex string for the ledger version to use. (See [Specifying Ledgers][]). | +| `ledger_index` | [Ledger Index][] | No | The [ledger index][] of the ledger to use, or a shortcut string to choose a ledger automatically. (See [Specifying Ledgers][]) | +| `transactions` | Boolean | No | If `true`, return information on transactions in the specified ledger version. The default is `false`. Ignored if you did not specify a ledger version. | +| `expand` | Boolean | No | Provide full JSON-formatted information for transaction/account information instead of only hashes. The default is `false`. Ignored unless you request transactions, accounts, or both. | +| `owner_funds` | Boolean | No | If `true`, include `owner_funds` field in the metadata of OfferCreate transactions in the response. The default is `false`. Ignored unless transactions are included and `expand` is true. | +| `binary` | Boolean | No | If `true`, and `transactions` and `expand` are both also `true`, return transaction information in binary format (hexadecimal string) instead of JSON format. | | `queue` | Boolean | No | If `true`, and the command is requesting the `current` ledger, includes an array of [queued transactions](../../../../concepts/transactions/transaction-cost.md#queued-transactions) in the results. | - The `ledger` field is deprecated and may be removed without further notice. The `full`, `accounts`, and `type` fields (admin-only) are also deprecated; the Clio server does not implement these parameters. ## Response Format @@ -95,27 +103,27 @@ An example of a successful response: The response follows the [standard format][], with a successful result containing information about the ledger, including the following fields: -| `Field` | Type | Description | -|:-------------------------------|:--------|:----------------------------------| -| `ledger` | Object | The complete [ledger header data](../../../protocol/ledger-data/ledger-header.md) of this ledger, with some additional fields added for convenience. | -| `ledger.account_hash` | String | [Hash](../../../protocol/data-types/basic-data-types.md#hashes) of all account state information in this ledger, as hexadecimal. | -| `ledger.close_flags` | Number | A bit-map of [flags relating to the closing of this ledger](../../../protocol/ledger-data/ledger-header.md#close-flags). | -| `ledger.close_time` | Number | The time this ledger was closed, in [seconds since the Ripple Epoch][]. | -| `ledger.close_time_human` | String | The time this ledger was closed, in human-readable format. Always uses the UTC time zone. | -| `ledger.close_time_iso` | String | The time this ledger was closed, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format. | -| `ledger.close_time_resolution` | Number | Ledger close times are rounded to within this many seconds. | -| `ledger.closed` | Boolean | Whether or not this ledger has been closed. | -| `ledger.ledger_hash` | String | Unique identifying hash of the entire ledger. | -| `ledger.ledger_index` | [API v1][]: String
    [API v2][]: Number | The [Ledger Index][] of this ledger. | -| `ledger.parent_close_time` | Number | The time at which the previous ledger was closed. | -| `ledger.parent_hash` | String | The unique identifying hash of the ledger that came immediately before this one, as hexadecimal. | -| `ledger.total_coins` | String | Total number of XRP drops in the network, as a quoted integer. (This decreases as transaction costs destroy XRP.) | -| `ledger.transaction_hash` | String | [Hash](../../../protocol/data-types/basic-data-types.md#hashes) of the transaction information included in this ledger. | -| `ledger.transactions` | Array | _(Omitted unless requested)_ Transactions applied in this ledger version. By default, members are the transactions' identifying [Hash][] strings. If the request specified `expand` as true, members are full representations of the transactions instead, in either JSON or binary depending on whether the request specified `binary` as true. | -| `ledger_hash` | String | The unique identifying hash of the entire ledger, as hexadecimal. | -| `ledger_index` | Number | The [Ledger Index][] of this ledger. | -| `validated` | Boolean | _(May be omitted)_ If `true`, this is a validated ledger version. If omitted or set to `false`, this ledger's data is not final. | -| `queue_data` | Array | _(Omitted unless requested with the `queue` parameter)_ Array of objects describing queued transactions, in the same order as the queue. If the request specified `expand` as true, members contain full representations of the transactions, in either JSON or binary depending on whether the request specified `binary` as true. | +| `Field` | Type | Description | +| :----------------------------- | :----------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `ledger` | Object | The complete [ledger header data](../../../protocol/ledger-data/ledger-header.md) of this ledger, with some additional fields added for convenience. | +| `ledger.account_hash` | String | [Hash](../../../protocol/data-types/basic-data-types.md#hashes) of all account state information in this ledger, as hexadecimal. | +| `ledger.close_flags` | Number | A bit-map of [flags relating to the closing of this ledger](../../../protocol/ledger-data/ledger-header.md#close-flags). | +| `ledger.close_time` | Number | The time this ledger was closed, in [seconds since the Ripple Epoch][]. | +| `ledger.close_time_human` | String | The time this ledger was closed, in human-readable format. Always uses the UTC time zone. | +| `ledger.close_time_iso` | String | The time this ledger was closed, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format. | +| `ledger.close_time_resolution` | Number | Ledger close times are rounded to within this many seconds. | +| `ledger.closed` | Boolean | Whether or not this ledger has been closed. | +| `ledger.ledger_hash` | String | Unique identifying hash of the entire ledger. | +| `ledger.ledger_index` | [API v1][]: String
    [API v2][]: Number | The [Ledger Index][] of this ledger. | +| `ledger.parent_close_time` | Number | The time at which the previous ledger was closed. | +| `ledger.parent_hash` | String | The unique identifying hash of the ledger that came immediately before this one, as hexadecimal. | +| `ledger.total_coins` | String | Total number of XRP drops in the network, as a quoted integer. (This decreases as transaction costs destroy XRP.) | +| `ledger.transaction_hash` | String | [Hash](../../../protocol/data-types/basic-data-types.md#hashes) of the transaction information included in this ledger. | +| `ledger.transactions` | Array | _(Omitted unless requested)_ Transactions applied in this ledger version. By default, members are the transactions' identifying [Hash][] strings. If the request specified `expand` as true, members are full representations of the transactions instead, in either JSON or binary depending on whether the request specified `binary` as true. | +| `ledger_hash` | String | The unique identifying hash of the entire ledger, as hexadecimal. | +| `ledger_index` | Number | The [Ledger Index][] of this ledger. | +| `validated` | Boolean | _(May be omitted)_ If `true`, this is a validated ledger version. If omitted or set to `false`, this ledger's data is not final. | +| `queue_data` | Array | _(Omitted unless requested with the `queue` parameter)_ Array of objects describing queued transactions, in the same order as the queue. If the request specified `expand` as true, members contain full representations of the transactions, in either JSON or binary depending on whether the request specified `binary` as true. | The `ledger.accountState` field (omitted unless requested with `"full": true` or `"accounts": true`) is deprecated. @@ -123,29 +131,29 @@ The following deprecated fields have been removed: `accepted`, `hash` (use `ledg Each member of the `queue_data` array represents one transaction in the queue. Some fields of this object may be omitted because they have not yet been calculated. The fields of this object are as follows: -| Field | Value | Description | -|:--------------------|:-----------------|:------------------------------------| -| `account` | String | The [Address][] of the sender for this queued transaction. | +| Field | Value | Description | +| :------------------ | :--------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `account` | String | The [Address][] of the sender for this queued transaction. | | `tx` | String or Object | By default, this is a String containing the [identifying hash](../../../protocol/data-types/basic-data-types.md#hashes) of the transaction. If transactions are expanded in binary format, this is an object whose only field is `tx_blob`, containing the binary form of the transaction as a decimal string. If transactions are expanded in JSON format, this is an object containing the [transaction object](../../../protocol/transactions/index.md) including the transaction's identifying hash in the `hash` field. | -| `retries_remaining` | Number | How many times this transaction can be retried before being dropped. | -| `preflight_result` | String | The tentative result from preliminary transaction checking. This is always `tesSUCCESS`. | -| `last_result` | String | _(May be omitted)_ If this transaction was left in the queue after getting a [retriable (`ter`) result](../../../protocol/transactions/transaction-results/ter-codes.md), this is the exact `ter` result code it got. | -| `auth_change` | Boolean | _(May be omitted)_ Whether this transaction changes this address's [ways of authorizing transactions](../../../../concepts/transactions/index.md#authorizing-transactions). | -| `fee` | String | _(May be omitted)_ The [Transaction Cost](../../../../concepts/transactions/transaction-cost.md) of this transaction, in [drops of XRP][]. | -| `fee_level` | String | _(May be omitted)_ The transaction cost of this transaction, relative to the minimum cost for this type of transaction, in [fee levels][]. | -| `max_spend_drops` | String | _(May be omitted)_ The maximum amount of [XRP, in drops][], this transaction could potentially send or destroy. | +| `retries_remaining` | Number | How many times this transaction can be retried before being dropped. | +| `preflight_result` | String | The tentative result from preliminary transaction checking. This is always `tesSUCCESS`. | +| `last_result` | String | _(May be omitted)_ If this transaction was left in the queue after getting a [retriable (`ter`) result](../../../protocol/transactions/transaction-results/ter-codes.md), this is the exact `ter` result code it got. | +| `auth_change` | Boolean | _(May be omitted)_ Whether this transaction changes this address's [ways of authorizing transactions](../../../../concepts/transactions/index.md#authorizing-transactions). | +| `fee` | String | _(May be omitted)_ The [Transaction Cost](../../../../concepts/transactions/transaction-cost.md) of this transaction, in [drops of XRP][]. | +| `fee_level` | String | _(May be omitted)_ The transaction cost of this transaction, relative to the minimum cost for this type of transaction, in [fee levels][]. | +| `max_spend_drops` | String | _(May be omitted)_ The maximum amount of [XRP, in drops][], this transaction could potentially send or destroy. | If the request specified `"owner_funds": true` and expanded transactions, the response has a field `owner_funds` in the `metaData` object of each [OfferCreate transaction][]. The purpose of this field is to make it easier to track the [funding status of offers](../../../../concepts/tokens/decentralized-exchange/offers.md#lifecycle-of-an-offer) with each new validated ledger. This field is defined slightly differently than the version of this field in [Order Book subscription streams](../subscription-methods/subscribe.md#order-book-streams): -| `Field` | Value | Description | -|:--------------|:-------|:----------------------------------------------------| +| `Field` | Value | Description | +| :------------ | :----- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `owner_funds` | String | Numeric amount of the `TakerGets` currency that the `Account` sending this OfferCreate transaction has after the execution of all transactions in this ledger. This does not check whether the currency amount is [frozen](../../../../concepts/tokens/fungible-tokens/freezes.md). | ## Possible Errors -* Any of the [universal error types][]. -* `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. -* `lgrNotFound` - The ledger specified by the `ledger_hash` or `ledger_index` does not exist, or it does exist but the server does not have it. -* `noPermission` - If you specified `full` or `accounts` as true, but are not connected to the server as an admin (usually, admin requires connecting on localhost). +- Any of the [universal error types][]. +- `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. +- `lgrNotFound` - The ledger specified by the `ledger_hash` or `ledger_index` does not exist, or it does exist but the server does not have it. +- `noPermission` - If you specified `full` or `accounts` as true, but are not connected to the server as an admin (usually, admin requires connecting on localhost). {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_closed.md b/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_closed.md index 508710343f..291e8a84b8 100644 --- a/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_closed.md +++ b/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_closed.md @@ -1,44 +1,51 @@ --- seo: - description: Get the latest closed ledger version. + description: Get the latest closed ledger version. labels: - - Blockchain + - Blockchain --- + # ledger_closed + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/LedgerClosed.cpp "Source") The `ledger_closed` method returns the unique identifiers of the most recently closed ledger. (This ledger is not necessarily validated and immutable yet.) ## Request Format + An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": 2, - "command": "ledger_closed" + "id": 2, + "command": "ledger_closed" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "ledger_closed", - "params": [ - {} - ] + "method": "ledger_closed", + "params": [{}] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh #Syntax: ledger_closed rippled ledger_closed ``` + {% /tab %} {% /tabs %} @@ -48,11 +55,13 @@ rippled ledger_closed This method accepts no parameters. ## Response Format + An example of a successful response: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 1, @@ -64,9 +73,11 @@ An example of a successful response: } } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -78,31 +89,34 @@ An example of a successful response: } } ``` + {% /tab %} {% tab label="Commandline" %} + ```json { - "result" : { - "ledger_hash" : "6F5D3B97F1CAA8440AFCED3CA10FB9DC6472F64DEBC2EFAE7CAE7FC0123F32DA", - "ledger_index" : 56843991, - "status" : "success" - } + "result": { + "ledger_hash": "6F5D3B97F1CAA8440AFCED3CA10FB9DC6472F64DEBC2EFAE7CAE7FC0123F32DA", + "ledger_index": 56843991, + "status": "success" + } } ``` + {% /tab %} {% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: -| `Field` | Type | Description | -|:---------------|:-----------------|:-----------------------------------------| +| `Field` | Type | Description | +| :------------- | :--------------- | :---------------------------------------------------------- | | `ledger_hash` | String | The unique [Hash][] of this ledger version, in hexadecimal. | -| `ledger_index` | Unsigned Integer | The [ledger index][] of this ledger version. | +| `ledger_index` | Unsigned Integer | The [ledger index][] of this ledger version. | ## Possible Errors -* Any of the [universal error types][]. +- Any of the [universal error types][]. {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_current.md b/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_current.md index 29a6a1bde1..0e5a048f09 100644 --- a/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_current.md +++ b/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_current.md @@ -1,10 +1,12 @@ --- seo: - description: Get the current working ledger version. + description: Get the current working ledger version. labels: - - Blockchain + - Blockchain --- + # ledger_current + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/LedgerCurrent.cpp "Source") The `ledger_current` method returns the unique identifiers of the current in-progress [ledger](../../../../concepts/ledgers/index.md). This command is mostly useful for testing, because the ledger returned is still in flux. @@ -16,30 +18,34 @@ An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": 2, - "command": "ledger_current" + "id": 2, + "command": "ledger_current" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "ledger_current", - "params": [ - {} - ] + "method": "ledger_current", + "params": [{}] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh #Syntax: ledger_current rippled ledger_current ``` + {% /tab %} {% /tabs %} @@ -48,13 +54,14 @@ rippled ledger_current The request contains no parameters. - ## Response Format + An example of a successful response: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 2, @@ -65,9 +72,11 @@ An example of a successful response: } } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -78,31 +87,34 @@ An example of a successful response: } } ``` + {% /tab %} {% tab label="Commandline" %} + ```json { - "result" : { - "ledger_current_index" : 56844050, - "status" : "success" - } + "result": { + "ledger_current_index": 56844050, + "status": "success" + } } ``` + {% /tab %} {% /tabs %} The response follows the [standard format][], with a successful result containing the following field: -| `Field` | Type | Description | -|:-----------------------|:------------------------------------|:--------------| +| `Field` | Type | Description | +| :--------------------- | :---------------------------------- | :--------------------------------------- | | `ledger_current_index` | Unsigned Integer - [Ledger Index][] | The ledger index of this ledger version. | A `ledger_hash` field is not provided, because the hash of the current ledger is constantly changing along with its contents. ## Possible Errors -* Any of the [universal error types][]. +- Any of the [universal error types][]. {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_data.md b/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_data.md index 7619ba3514..6f7b51cb03 100644 --- a/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_data.md +++ b/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_data.md @@ -1,16 +1,19 @@ --- seo: - description: Get the raw contents of a ledger version. + description: Get the raw contents of a ledger version. labels: - - Blockchain - - Data Retention + - Blockchain + - Data Retention --- + # ledger_data + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/LedgerData.cpp "Source") The `ledger_data` method retrieves contents of the specified ledger. You can iterate through several calls to retrieve the entire contents of a single ledger version. ## Request Format + An example of the request format: {% raw-partial file="/docs/_snippets/no-cli-syntax.md" /%} @@ -18,30 +21,34 @@ An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": "example_ledger_data", - "command": "ledger_data", - "ledger_hash": "842B57C1CC0613299A686D3E9F310EC0422C84D3911E5056389AA7E5808A93C8", - "limit": 5, - "api_version": 2 + "id": "example_ledger_data", + "command": "ledger_data", + "ledger_hash": "842B57C1CC0613299A686D3E9F310EC0422C84D3911E5056389AA7E5808A93C8", + "limit": 5, + "api_version": 2 } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "ledger_data", - "params": [ - { - "ledger_hash": "842B57C1CC0613299A686D3E9F310EC0422C84D3911E5056389AA7E5808A93C8", - "limit": 5, - "api_version": 2 - } - ] + "method": "ledger_data", + "params": [ + { + "ledger_hash": "842B57C1CC0613299A686D3E9F310EC0422C84D3911E5056389AA7E5808A93C8", + "limit": 5, + "api_version": 2 + } + ] } ``` + {% /tab %} {% /tabs %} @@ -50,20 +57,19 @@ An example of the request format: A request can include the following fields: -| `Field` | Type | Required? | Description | -|:---------------|:-----------------|:----------|----------------| -| `ledger_hash` | [Hash][] | No | A 20-byte hex string identifying the ledger version to use. | -| `ledger_index` | [Ledger Index][] | No | The [ledger index][] of the ledger to use, or a shortcut string to choose a ledger automatically. (See [Specifying Ledgers][]) | -| `binary` | Boolean | No | If `true`, return ledger entries as hexadecimal strings instead of JSON. The default is `false`. | -| `limit` | Number | No | Limit the number of ledger entries to retrieve. The server may return fewer than this number of entries. Cannot be more than 2048 (when requesting binary) or 256 (when requesting JSON). Positive values outside this range are replaced with the closest valid option. The default is the maximum. | -| `marker` | [Marker][] | No | Value from a previous paginated response. Resume retrieving data where that response left off. | +| `Field` | Type | Required? | Description | +| :------------- | :--------------- | :-------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `ledger_hash` | [Hash][] | No | A 20-byte hex string identifying the ledger version to use. | +| `ledger_index` | [Ledger Index][] | No | The [ledger index][] of the ledger to use, or a shortcut string to choose a ledger automatically. (See [Specifying Ledgers][]) | +| `binary` | Boolean | No | If `true`, return ledger entries as hexadecimal strings instead of JSON. The default is `false`. | +| `limit` | Number | No | Limit the number of ledger entries to retrieve. The server may return fewer than this number of entries. Cannot be more than 2048 (when requesting binary) or 256 (when requesting JSON). Positive values outside this range are replaced with the closest valid option. The default is the maximum. | +| `marker` | [Marker][] | No | Value from a previous paginated response. Resume retrieving data where that response left off. | | `type` | String | No | Filter results to a specific type of ledger entry. This field accepts canonical names of [ledger entry types](../../../protocol/ledger-data/ledger-entry-types/index.md) (case insensitive) or [short names](../../api-conventions/ledger-entry-short-names.md). If omitted, return ledger entries of all types. | {% admonition type="warning" name="Caution" %} The `ledger` request parameter is deprecated and may be removed without further notice. Use `ledger_hash` or `ledger_index` instead. {% /admonition %} - ## Response Format An example of a successful response: @@ -71,6 +77,7 @@ An example of a successful response: {% tabs %} {% tab label="WebSocket (binary:false)" %} + ```json { "result": { @@ -184,9 +191,11 @@ An example of a successful response: "type": "response" } ``` + {% /tab %} {% tab label="WebSocket (binary:true)" %} + ```json { "result": { @@ -227,9 +236,11 @@ An example of a successful response: "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC (binary:true)" %} + ```json 200 OK @@ -269,35 +280,36 @@ An example of a successful response: } } ``` + {% /tab %} {% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: -| `Field` | Type | Description | -|:---------------|:------------------------------------|:----------------------| -| `ledger` | Object | The complete [ledger header data](../../../protocol/ledger-data/ledger-header.md) for this ledger version. | -| `ledger_index` | Unsigned Integer - [Ledger Index][] | The ledger index of this ledger version. | -| `ledger_hash` | String - [Hash][] | Unique identifying hash of this ledger version. | -| `state` | Array | Array of JSON objects containing data from the ledger's state tree, as defined below. | +| `Field` | Type | Description | +| :------------- | :---------------------------------- | :------------------------------------------------------------------------------------------------------------------------ | +| `ledger` | Object | The complete [ledger header data](../../../protocol/ledger-data/ledger-header.md) for this ledger version. | +| `ledger_index` | Unsigned Integer - [Ledger Index][] | The ledger index of this ledger version. | +| `ledger_hash` | String - [Hash][] | Unique identifying hash of this ledger version. | +| `state` | Array | Array of JSON objects containing data from the ledger's state tree, as defined below. | | `marker` | [Marker][] | Server-defined value indicating the response is paginated. Pass this to the next call to resume where this call left off. | If a `type` field is mentioned in the request, the `state` array will be empty if the first set of array objects does not match the type requested. In such cases, you can use the `marker` from this response to paginate and retrieve further data. The format of each object in the `state` array depends on whether `binary` was set to true or not in the request. Each `state` object may include the following fields: -| `Field` | Type | Description | -|:--------------------|:----------|:-------------------------------------------| -| `data` | String | _(Only included if `"binary":true`)_ Hex representation of the requested data | +| `Field` | Type | Description | +| :------------------ | :-------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `data` | String | _(Only included if `"binary":true`)_ Hex representation of the requested data | | `LedgerEntryType` | String | _(Only included if `"binary":false`)_ String indicating what type of ledger object this object represents. See [ledger object types](../../../protocol/ledger-data/ledger-entry-types/index.md) for the full list. | -| (Additional fields) | (Various) | _(Only included if `"binary":false`)_ Additional fields describing this object, depending on which [ledger object type](../../../protocol/ledger-data/ledger-entry-types/index.md) it is. | -| `index` | String | Unique identifier for this ledger entry, as hex. | +| (Additional fields) | (Various) | _(Only included if `"binary":false`)_ Additional fields describing this object, depending on which [ledger object type](../../../protocol/ledger-data/ledger-entry-types/index.md) it is. | +| `index` | String | Unique identifier for this ledger entry, as hex. | ## Possible Errors -* Any of the [universal error types][] -* `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. -* `lgrNotFound` - The ledger specified by the `ledger_hash` or `ledger_index` does not exist, or it does exist but the server does not have it. +- Any of the [universal error types][] +- `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. +- `lgrNotFound` - The ledger specified by the `ledger_hash` or `ledger_index` does not exist, or it does exist but the server does not have it. {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_entry.md b/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_entry.md index d7bc13b3f9..52233f0055 100644 --- a/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_entry.md +++ b/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_entry.md @@ -1,11 +1,13 @@ --- seo: - description: Get one element from a ledger version. + description: Get one element from a ledger version. labels: - - Blockchain - - Data Retention + - Blockchain + - Data Retention --- + # ledger_entry + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/LedgerEntry.cpp "Source") The `ledger_entry` method returns a single ledger entry from the XRP Ledger in its raw format. See [ledger format][] for information on the different types of entries you can retrieve. @@ -18,18 +20,18 @@ This method can retrieve several different types of data. You can select which t ### General Fields -| Field | Type | Description | -|:------------------------|:---------------------------|:----------------------| -| `binary` | Boolean | _(Optional)_ If `true`, return the requested ledger entry's contents as a hex string in the XRP Ledger's [binary format](../../../protocol/binary-format.md). Otherwise, return data in JSON format. The default is `false`. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.0" %}Updated in: rippled 1.2.0{% /badge %} | -| `ledger_hash` | String | _(Optional)_ The unique hash of the ledger version to use. (See [Specifying Ledgers][]) | -| `ledger_index` | String or Unsigned Integer | _(Optional)_ The [ledger index][] of the ledger to use, or a shortcut string (e.g. "validated" or "closed" or "current") to choose a ledger automatically. (See [Specifying Ledgers][]) | -| `include_deleted` | Boolean | _(Optional, Clio servers only)_ If set to _true_ and the queried object has been deleted, return its complete data as it was prior to its deletion. If set to _false_ or not provided, and the queried object has been deleted, return `objectNotFound` (current behavior). | +| Field | Type | Description | +| :---------------- | :------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `binary` | Boolean | _(Optional)_ If `true`, return the requested ledger entry's contents as a hex string in the XRP Ledger's [binary format](../../../protocol/binary-format.md). Otherwise, return data in JSON format. The default is `false`. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.2.0" %}Updated in: rippled 1.2.0{% /badge %} | +| `ledger_hash` | String | _(Optional)_ The unique hash of the ledger version to use. (See [Specifying Ledgers][]) | +| `ledger_index` | String or Unsigned Integer | _(Optional)_ The [ledger index][] of the ledger to use, or a shortcut string (e.g. "validated" or "closed" or "current") to choose a ledger automatically. (See [Specifying Ledgers][]) | +| `include_deleted` | Boolean | _(Optional, Clio servers only)_ If set to _true_ and the queried object has been deleted, return its complete data as it was prior to its deletion. If set to _false_ or not provided, and the queried object has been deleted, return `objectNotFound` (current behavior). | The `generator` and `ledger` parameters are deprecated and may be removed without further notice. -In addition to the general fields above, you must specify *exactly 1* of the following fields to indicate what type of entry to retrieve, along with its sub-fields as appropriate. The valid fields are: +In addition to the general fields above, you must specify _exactly 1_ of the following fields to indicate what type of entry to retrieve, along with its sub-fields as appropriate. The valid fields are: -- [ledger\_entry](#ledger_entry) +- [ledger_entry](#ledger_entry) - [Request Format](#request-format) - [General Fields](#general-fields) - [Get Ledger Entry by ID](#get-ledger-entry-by-id) @@ -52,19 +54,20 @@ In addition to the general fields above, you must specify *exactly 1* of the fol - [Response Format](#response-format) - [Possible Errors](#possible-errors) - ### Get Ledger Entry by ID + Retrieve any type of ledger entry by its unique ID. -| Field | Type | Description | -|:--------|:-------|:----------------------------------------------------------| +| Field | Type | Description | +| :------ | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `index` | String | The [ledger entry ID](../../../protocol/ledger-data/common-fields.md) of a single entry to retrieve from the ledger, as a 64-character (256-bit) hexadecimal string. | {% tabs %} {% tab label="WebSocket" %} + ```json { "command": "ledger_entry", @@ -72,26 +75,31 @@ Retrieve any type of ledger entry by its unique ID. "ledger_index": "validated" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "ledger_entry", - "params": [ - { - "index": "7DB0788C020F02780A673DC74757F23823FA3014C1866E72CC4CD8B226CD6EF4", - "ledger_index": "validated" - } - ] + "method": "ledger_entry", + "params": [ + { + "index": "7DB0788C020F02780A673DC74757F23823FA3014C1866E72CC4CD8B226CD6EF4", + "ledger_index": "validated" + } + ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh rippled json ledger_entry '{ "index": "7DB0788C020F02780A673DC74757F23823FA3014C1866E72CC4CD8B226CD6EF4", "ledger_index": "validated" }' ``` + {% /tab %} {% /tabs %} @@ -105,22 +113,22 @@ You can use this type of request to get any singleton ledger entry, if it exists - [`FeeSettings`](../../../protocol/ledger-data/ledger-entry-types/feesettings.md) - `4BC50C9B0D8515D3EAAE1E74B29A95804346C491EE1A95BF25E4AAB854A6A651` - [Recent History `LedgerHashes`](../../../protocol/ledger-data/ledger-entry-types/ledgerhashes.md) - `B4979A36CDC7F3D3D5C31A4EAE2AC7D7209DDA877588B9AFC66799692AB0D66B` - [`NegativeUNL`](../../../protocol/ledger-data/ledger-entry-types/negativeunl.md) - `2E8A59AA9D3B5B186B0B9E0F62E6C02587CA74A4D778938E957B6357D364B244` -{% /admonition %} - - + {% /admonition %} ### Get AccountRoot Entry + Retrieve an [AccountRoot entry](../../../protocol/ledger-data/ledger-entry-types/accountroot.md) by its address. This is roughly equivalent to the [account_info method][]. -| Field | Type | Description | -|:------------------------|:---------------------------|:----------------------| -| `account_root` | String - [Address][] | The classic address of the [AccountRoot entry](../../../protocol/ledger-data/ledger-entry-types/accountroot.md) to retrieve. | +| Field | Type | Description | +| :------------- | :------------------- | :--------------------------------------------------------------------------------------------------------------------------- | +| `account_root` | String - [Address][] | The classic address of the [AccountRoot entry](../../../protocol/ledger-data/ledger-entry-types/accountroot.md) to retrieve. | {% tabs %} {% tab label="WebSocket" %} + ```json { "id": "example_get_accountroot", @@ -129,50 +137,55 @@ Retrieve an [AccountRoot entry](../../../protocol/ledger-data/ledger-entry-types "ledger_index": "validated" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "ledger_entry", - "params": [ - { - "account_root": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "ledger_index": "validated" - } - ] + "method": "ledger_entry", + "params": [ + { + "account_root": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "ledger_index": "validated" + } + ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh rippled json ledger_entry '{ "account_root": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", "ledger_index": "validated" }' ``` + {% /tab %} {% /tabs %} {% try-it method="ledger_entry-accountroot" /%} - - ### Get AMM Entry + {% amendment-disclaimer name="AMM" /%} Retrieve an Automated Market-Maker (AMM) object from the ledger. This is similar to [amm_info method][], but the `ledger_entry` version returns only the ledger entry as stored. -| Field | Type | Description | -|:-------------|:-----------------|:----------------------| +| Field | Type | Description | +| :----------- | :--------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `amm` | Object or String | The [AMM](../../../protocol/ledger-data/ledger-entry-types/amm.md) to retrieve. If you specify a string, it must be the [object ID](../../../protocol/ledger-data/common-fields.md) of the AMM, as hexadecimal. If you specify an object, it must contain `asset` and `asset2` sub-fields. | -| `amm.asset` | Object | One of the two assets in this AMM's pool, as a [currency object without an amount](../../../protocol/data-types/currency-formats.md#specifying-without-amounts). | -| `amm.asset2` | Object | The other of the two assets in this AMM's pool, as a [currency object without an amount](../../../protocol/data-types/currency-formats.md#specifying-without-amounts). | +| `amm.asset` | Object | One of the two assets in this AMM's pool, as a [currency object without an amount](../../../protocol/data-types/currency-formats.md#specifying-without-amounts). | +| `amm.asset2` | Object | The other of the two assets in this AMM's pool, as a [currency object without an amount](../../../protocol/data-types/currency-formats.md#specifying-without-amounts). | {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 3, @@ -182,64 +195,69 @@ Retrieve an Automated Market-Maker (AMM) object from the ledger. This is similar "currency": "XRP" }, "asset2": { - "currency" : "TST", - "issuer" : "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd" + "currency": "TST", + "issuer": "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd" } }, "ledger_index": "validated" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "ledger_entry", - "params": [ - { - "amm": { - "asset": { - "currency": "XRP" - }, - "asset2": { - "currency" : "TST", - "issuer" : "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd" - } - }, - "ledger_index": "validated" + "method": "ledger_entry", + "params": [ + { + "amm": { + "asset": { + "currency": "XRP" + }, + "asset2": { + "currency": "TST", + "issuer": "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd" } - ] + }, + "ledger_index": "validated" + } + ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh rippled json ledger_entry '{ "amm": { "asset": { "currency": "XRP" }, "asset2": { "currency" : "TST", "issuer" : "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd" } }, "ledger_index": "validated" }' ``` + {% /tab %} {% /tabs %} {% try-it method="ledger_entry-amm" server="testnet" /%} - ### Get Bridge Entry + {% amendment-disclaimer name="XChainBridge" /%} Retrieve a [Bridge entry](../../../protocol/ledger-data/ledger-entry-types/bridge.md), which represents a single cross-chain bridge that connects the XRP Ledger with another blockchain. -| Field | Type | Description | -|:-----------------|:-------|:----------------------| -| `bridge_account` | String | The account that submitted the `XChainCreateBridge` transaction on the blockchain. | +| Field | Type | Description | +| :--------------- | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `bridge_account` | String | The account that submitted the `XChainCreateBridge` transaction on the blockchain. | | `bridge` | Object | The [Bridge](../../../protocol/ledger-data/ledger-entry-types/bridge.md) to retrieve. Includes the door accounts and assets on the issuing and locking chain. | - {% tabs %} {% tab label="WebSocket" %} + ```json { "id": "example_get_bridge", @@ -258,53 +276,57 @@ Retrieve a [Bridge entry](../../../protocol/ledger-data/ledger-entry-types/bridg "ledger_index": "validated" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "ledger_entry", - "params": [ - { - "bridge_account": "rnQAXXWoFNN6PEqwqsdTngCtFPCrmfuqFJ", - "bridge": { - "IssuingChainDoor": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "IssuingChainIssue": { - "currency": "XRP" - }, - "LockingChainDoor": "rnQAXXWoFNN6PEqwqsdTngCtFPCrmfuqFJ", - "LockingChainIssue": { - "currency": "XRP" - } - }, - "ledger_index": "validated" + "method": "ledger_entry", + "params": [ + { + "bridge_account": "rnQAXXWoFNN6PEqwqsdTngCtFPCrmfuqFJ", + "bridge": { + "IssuingChainDoor": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "IssuingChainIssue": { + "currency": "XRP" + }, + "LockingChainDoor": "rnQAXXWoFNN6PEqwqsdTngCtFPCrmfuqFJ", + "LockingChainIssue": { + "currency": "XRP" } - ] + }, + "ledger_index": "validated" + } + ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh rippled json ledger_entry '{ "bridge_account": "rnQAXXWoFNN6PEqwqsdTngCtFPCrmfuqFJ", "bridge": { "IssuingChainDoor": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "IssuingChainIssue": { "currency": "XRP" }, "LockingChainDoor": "rnQAXXWoFNN6PEqwqsdTngCtFPCrmfuqFJ", "LockingChainIssue": { "currency": "XRP" } }, "ledger_index": "validated" }' ``` + {% /tab %} {% /tabs %} {% try-it method="ledger_entry-bridge" server="devnet" /%} - ### Get Credential Entry -Retrieve a [Credential entry][], which represents an attestation by one account about another account. +Retrieve a [Credential entry][], which represents an attestation by one account about another account. -| Field | Type | Required? | Description | -|:-----------------------------|:---------------------|:----------|-------------| -| `credential` | Object or String | Yes | Specify the Credential to retrieve. If a string, must be the [ledger entry ID][] of the entry, as hexadecimal. If an object, requires `subject`, `issuer`, and `credential_type` sub-fields. | -| `credential.subject` | String - [Address][] | Yes | The account that is the subject of the credential. | -| `credential.issuer` | String - [Address][] | Yes | The account that issued the credential. | -| `credential.credential_type` | String - Hexadecimal | Yes | The type of the credential, as issued. | +| Field | Type | Required? | Description | +| :--------------------------- | :------------------- | :-------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `credential` | Object or String | Yes | Specify the Credential to retrieve. If a string, must be the [ledger entry ID][] of the entry, as hexadecimal. If an object, requires `subject`, `issuer`, and `credential_type` sub-fields. | +| `credential.subject` | String - [Address][] | Yes | The account that is the subject of the credential. | +| `credential.issuer` | String - [Address][] | Yes | The account that issued the credential. | +| `credential.credential_type` | String - Hexadecimal | Yes | The type of the credential, as issued. | WebSocket: @@ -326,14 +348,16 @@ JSON-RPC: ```json { "method": "ledger_entry", - "params": [{ - "credential": { - "subject": "rsUiUMpnrgxQp24dJYZDhmV4bE3aBtQyt8", - "issuer": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "credential_type": "6D795F63726564656E7469616C" - }, - "ledger_index": "validated" - }] + "params": [ + { + "credential": { + "subject": "rsUiUMpnrgxQp24dJYZDhmV4bE3aBtQyt8", + "issuer": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "credential_type": "6D795F63726564656E7469616C" + }, + "ledger_index": "validated" + } + ] } ``` @@ -347,22 +371,23 @@ rippled json ledger_entry '{ "credential": {"subject": "rsUiUMpnrgxQp24dJYZDhmV4 {% try-it method="ledger_entry-credential" /%} --> - ### Get DirectoryNode Entry + Retrieve a [DirectoryNode](../../../protocol/ledger-data/ledger-entry-types/directorynode.md), which contains a list of other ledger objects. Can be provided as string (object ID of the Directory) or as an object. -| Field | Type | Description | -|:------------------------|:---------------------------|:----------------------| -| `directory` | Object or String | The [DirectoryNode](../../../protocol/ledger-data/ledger-entry-types/directorynode.md) to retrieve. If a string, must be the [object ID](../../../protocol/ledger-data/common-fields.md) of the directory, as hexadecimal. If an object, requires either `dir_root` or `owner` as a sub-field, plus optionally a `sub_index` sub-field. | -| `directory.sub_index` | Unsigned Integer | _(Optional)_ If provided, jumps to a later "page" of the [DirectoryNode](../../../protocol/ledger-data/ledger-entry-types/directorynode.md). | -| `directory.dir_root` | String | _(Optional)_ Unique index identifying the directory to retrieve, as a hex string. | -| `directory.owner` | String | _(Optional)_ Unique address of the account associated with this directory. | +| Field | Type | Description | +| :-------------------- | :--------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `directory` | Object or String | The [DirectoryNode](../../../protocol/ledger-data/ledger-entry-types/directorynode.md) to retrieve. If a string, must be the [object ID](../../../protocol/ledger-data/common-fields.md) of the directory, as hexadecimal. If an object, requires either `dir_root` or `owner` as a sub-field, plus optionally a `sub_index` sub-field. | +| `directory.sub_index` | Unsigned Integer | _(Optional)_ If provided, jumps to a later "page" of the [DirectoryNode](../../../protocol/ledger-data/ledger-entry-types/directorynode.md). | +| `directory.dir_root` | String | _(Optional)_ Unique index identifying the directory to retrieve, as a hex string. | +| `directory.owner` | String | _(Optional)_ Unique address of the account associated with this directory. | {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 3, @@ -374,51 +399,56 @@ Retrieve a [DirectoryNode](../../../protocol/ledger-data/ledger-entry-types/dire "ledger_index": "validated" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "ledger_entry", - "params": [ - { - "directory": { - "owner": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "sub_index": 0 - }, - "ledger_index": "validated" - } - ] + "method": "ledger_entry", + "params": [ + { + "directory": { + "owner": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "sub_index": 0 + }, + "ledger_index": "validated" + } + ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh rippled json ledger_entry '{ "directory": { "owner": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", "sub_index": 0 }, "ledger_index": "validated" }' ``` + {% /tab %} {% /tabs %} {% try-it method="ledger_entry-directorynode" /%} - - ### Get Offer Entry + Retrieve an [Offer entry](../../../protocol/ledger-data/ledger-entry-types/offer.md), which defines an offer to exchange currency. Can be provided as string (unique index of the Offer) or as an object. -| Field | Type | Description | -|:------------------------|:---------------------------|:----------------------| -| `offer` | Object or String | If a string, interpret as [ledger entry ID](../../../protocol/ledger-data/common-fields.md) of the Offer to retrieve. If an object, requires the sub-fields `account` and `seq` to uniquely identify the offer. | -| `offer.account` | String - [Address][] | _(Required if `offer` is specified as an object)_ The account that placed the offer. | -| `offer.seq` | Unsigned Integer | _(Required if `offer` is specified as an object)_ The [Sequence Number][] of the transaction that created the Offer entry. | +| Field | Type | Description | +| :-------------- | :------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `offer` | Object or String | If a string, interpret as [ledger entry ID](../../../protocol/ledger-data/common-fields.md) of the Offer to retrieve. If an object, requires the sub-fields `account` and `seq` to uniquely identify the offer. | +| `offer.account` | String - [Address][] | _(Required if `offer` is specified as an object)_ The account that placed the offer. | +| `offer.seq` | Unsigned Integer | _(Required if `offer` is specified as an object)_ The [Sequence Number][] of the transaction that created the Offer entry. | {% tabs %} {% tab label="WebSocket" %} + ```json { "id": "example_get_offer", @@ -430,9 +460,11 @@ Retrieve an [Offer entry](../../../protocol/ledger-data/ledger-entry-types/offer "ledger_index": "validated" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { "method": "ledger_entry", @@ -447,150 +479,161 @@ Retrieve an [Offer entry](../../../protocol/ledger-data/ledger-entry-types/offer ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh rippled json ledger_entry '{ "offer": { "account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", "seq": 359}, "ledger_index": "validated" }' ``` + {% /tab %} {% /tabs %} {% try-it method="ledger_entry-offer" /%} - ### Get Oracle Entry + {% amendment-disclaimer name="PriceOracle" /%} Retrieve an [Oracle entry](../../../protocol/ledger-data/ledger-entry-types/oracle.md), which represents a single price oracle that can store token prices. -| Field | Type | Required? | Description | -|-----------------------------|----------------------|-----------|-------------| -| `oracle` | Object | Yes | The oracle identifier. | -| `oracle.account` | String - [Address][] | Yes | The account that controls the `Oracle` object. | +| Field | Type | Required? | Description | +| --------------------------- | -------------------- | --------- | --------------------------------------------------------- | +| `oracle` | Object | Yes | The oracle identifier. | +| `oracle.account` | String - [Address][] | Yes | The account that controls the `Oracle` object. | | `oracle.oracle_document_id` | Number | Yes | A unique identifier of the price oracle for the `Account` | {% tabs %} {% tab label="WebSocket" %} + ```json { "id": "example_get_oracle", "command": "ledger_entry", - "oracle" : { + "oracle": { "account": "rNZ9m6AP9K7z3EVg6GhPMx36V4QmZKeWds", - "oracle_document_id": 34 + "oracle_document_id": 34 }, "ledger_index": "validated" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { "method": "ledger_entry", - "params" : [ + "params": [ { - "oracle" : { + "oracle": { "account": "rNZ9m6AP9K7z3EVg6GhPMx36V4QmZKeWds", - "oracle_document_id": 34 + "oracle_document_id": 34 }, "ledger_index": "validated" } ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh rippled json ledger_entry '{ "oracle": { "account": "rNZ9m6AP9K7z3EVg6GhPMx36V4QmZKeWds", "oracle_document_id": 34 }, "ledger_index": "validated" }' ``` + {% /tab %} {% /tabs %} {% try-it method="ledger_entry-oracle" server="devnet" /%} - ### Get RippleState Entry + Retrieve a [RippleState entry][], which tracks a (non-XRP) currency balance between two accounts. -| Field | Type | Description | -|:------------------------|:---------------------------|:----------------------| -| `state` | Object | Alias to `ripple_state`. | -| `ripple_state` | Object | Object specifying the RippleState (trust line) object to retrieve. The `accounts` and `currency` sub-fields are required to uniquely specify the RippleState entry to retrieve. | -| `ripple_state.accounts` | Array | _(Required if `ripple_state` is specified)_ 2-length array of account [Address][]es, defining the two accounts linked by this RippleState entry. | -| `ripple_state.currency` | String | _(Required if `ripple_state` is specified)_ [Currency Code][] of the RippleState entry to retrieve. | -| `state` | Object | Alias to `ripple_state`. | +| Field | Type | Description | +| :---------------------- | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `state` | Object | Alias to `ripple_state`. | +| `ripple_state` | Object | Object specifying the RippleState (trust line) object to retrieve. The `accounts` and `currency` sub-fields are required to uniquely specify the RippleState entry to retrieve. | +| `ripple_state.accounts` | Array | _(Required if `ripple_state` is specified)_ 2-length array of account [Address][]es, defining the two accounts linked by this RippleState entry. | +| `ripple_state.currency` | String | _(Required if `ripple_state` is specified)_ [Currency Code][] of the RippleState entry to retrieve. | +| `state` | Object | Alias to `ripple_state`. | {% tabs %} {% tab label="WebSocket" %} + ```json { "id": "example_get_ripplestate", "command": "ledger_entry", "ripple_state": { - "accounts": [ - "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW" - ], + "accounts": ["rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW"], "currency": "USD" }, "ledger_index": "validated" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { "method": "ledger_entry", - "params": [{ - "ripple_state": { - "accounts": [ - "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW" - ], - "currency": "USD" - }, - "ledger_index": "validated" - }] + "params": [ + { + "ripple_state": { + "accounts": ["rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW"], + "currency": "USD" + }, + "ledger_index": "validated" + } + ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh rippled json ledger_entry '{ "ripple_state": { "accounts": ["rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW"], "currency": "USD"}, "ledger_index": "validated" }' ``` + {% /tab %} {% /tabs %} {% try-it method="ledger_entry-ripplestate" /%} - - ### Get Check Entry + Retrieve a [Check entry](../../../protocol/ledger-data/ledger-entry-types/check.md), which is a potential payment that can be cashed by its recipient. -| Field | Type | Description | -|:--------|:-------|:----------------------------------------------------------| +| Field | Type | Description | +| :------ | :----- | :--------------------------------------------------------------------------------------------------------------------------------------------------------- | | `check` | String | The [object ID](../../../protocol/ledger-data/common-fields.md) of a [Check entry](../../../protocol/ledger-data/ledger-entry-types/check.md) to retrieve. | {% tabs %} {% tab label="WebSocket" %} + ```json { "id": "example_get_check", @@ -599,46 +642,53 @@ Retrieve a [Check entry](../../../protocol/ledger-data/ledger-entry-types/check. "ledger_index": "validated" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { "method": "ledger_entry", - "params": [{ - "check": "C4A46CCD8F096E994C4B0DEAB6CE98E722FC17D7944C28B95127C2659C47CBEB", - "ledger_index": "validated" - }] + "params": [ + { + "check": "C4A46CCD8F096E994C4B0DEAB6CE98E722FC17D7944C28B95127C2659C47CBEB", + "ledger_index": "validated" + } + ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh rippled json ledger_entry '{ "check": "C4A46CCD8F096E994C4B0DEAB6CE98E722FC17D7944C28B95127C2659C47CBEB", "ledger_index": "validated" }' ``` + {% /tab %} {% /tabs %} {% try-it method="ledger_entry-check" /%} - - ### Get Escrow Entry + Retrieve an [Escrow entry](../../../protocol/ledger-data/ledger-entry-types/escrow.md), which holds XRP until a specific time or condition is met. Can be provided as string (object ID of the Escrow) or as an object. -| Field | Type | Description | -|:------------------------|:---------------------------|:----------------------| -| `escrow` | Object or String | The Escrow to retrieve. If a string, must be the [object ID](../../../protocol/ledger-data/common-fields.md) of the Escrow, as hexadecimal. If an object, requires `owner` and `seq` sub-fields. | -| `escrow.owner` | String - [Address][] | _(Required if `escrow` is specified as an object)_ The owner (sender) of the Escrow object. | -| `escrow.seq` | Unsigned Integer | _(Required if `escrow` is specified as an object)_ The [Sequence Number][] of the transaction that created the Escrow object. | +| Field | Type | Description | +| :------------- | :------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `escrow` | Object or String | The Escrow to retrieve. If a string, must be the [object ID](../../../protocol/ledger-data/common-fields.md) of the Escrow, as hexadecimal. If an object, requires `owner` and `seq` sub-fields. | +| `escrow.owner` | String - [Address][] | _(Required if `escrow` is specified as an object)_ The owner (sender) of the Escrow object. | +| `escrow.seq` | Unsigned Integer | _(Required if `escrow` is specified as an object)_ The [Sequence Number][] of the transaction that created the Escrow object. | {% tabs %} {% tab label="WebSocket" %} + ```json { "id": "example_get_escrow", @@ -650,47 +700,54 @@ Retrieve an [Escrow entry](../../../protocol/ledger-data/ledger-entry-types/escr "ledger_index": "validated" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { "method": "ledger_entry", - "params": [{ - "escrow": { - "owner": "rL4fPHi2FWGwRGRQSH7gBcxkuo2b9NTjKK", - "seq": 126 - }, - "ledger_index": "validated" - }] + "params": [ + { + "escrow": { + "owner": "rL4fPHi2FWGwRGRQSH7gBcxkuo2b9NTjKK", + "seq": 126 + }, + "ledger_index": "validated" + } + ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh rippled json ledger_entry '{ "escrow": { "owner": "rL4fPHi2FWGwRGRQSH7gBcxkuo2b9NTjKK", "seq": 126 }, "ledger_index": "validated" }' ``` + {% /tab %} {% /tabs %} {% try-it method="ledger_entry-escrow" /%} - - ### Get PayChannel Entry + Retrieve a [PayChannel entry](../../../protocol/ledger-data/ledger-entry-types/paychannel.md), which holds XRP for asynchronous payments. -| Field | Type | Description | -|:------------------|:-------|:------------------------------------------------| +| Field | Type | Description | +| :---------------- | :----- | :--------------------------------------------------------------------------------------------- | | `payment_channel` | String | The [object ID](../../../protocol/ledger-data/common-fields.md) of the PayChannel to retrieve. | {% tabs %} {% tab label="WebSocket" %} + ```json { "id": "example_get_paychannel", @@ -699,53 +756,61 @@ Retrieve a [PayChannel entry](../../../protocol/ledger-data/ledger-entry-types/p "ledger_index": "validated" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { "method": "ledger_entry", - "params": [{ - "payment_channel": "C7F634794B79DB40E87179A9D1BF05D05797AE7E92DF8E93FD6656E8C4BE3AE7", - "ledger_index": "validated" - }] + "params": [ + { + "payment_channel": "C7F634794B79DB40E87179A9D1BF05D05797AE7E92DF8E93FD6656E8C4BE3AE7", + "ledger_index": "validated" + } + ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh rippled json ledger_entry '{ "payment_channel": "C7F634794B79DB40E87179A9D1BF05D05797AE7E92DF8E93FD6656E8C4BE3AE7", "ledger_index": "validated" }' ``` + {% /tab %} {% /tabs %} {% try-it method="ledger_entry-paychannel" /%} - ### Get DepositPreauth Entry + Retrieve a [DepositPreauth entry](../../../protocol/ledger-data/ledger-entry-types/depositpreauth.md), which tracks preauthorization for payments to accounts requiring [Deposit Authorization](../../../../concepts/accounts/depositauth.md). -| Field | Type | Required? | Description | -|:-----------------------------|:---------------------|:----------|-------------| -| `deposit_preauth` | Object or String | Yes | Specify the DepositPreauth to retrieve. If a string, must be the [ledger entry ID][] of the DepositPreauth entry, as hexadecimal. If an object, requires `owner` sub-field and either `authorized` or `authorize_credentials` sub-field. | -| `deposit_preauth.owner` | String - [Address][] | Yes | The account that provided the preauthorization. | -| `deposit_preauth.authorized` | String - [Address][] | No | The account that received the preauthorization. | -| `deposit_preauth.authorized_credentials` | Array | No | A set of credentials that received the preauthorization. | +| Field | Type | Required? | Description | +| :--------------------------------------- | :------------------- | :-------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `deposit_preauth` | Object or String | Yes | Specify the DepositPreauth to retrieve. If a string, must be the [ledger entry ID][] of the DepositPreauth entry, as hexadecimal. If an object, requires `owner` sub-field and either `authorized` or `authorize_credentials` sub-field. | +| `deposit_preauth.owner` | String - [Address][] | Yes | The account that provided the preauthorization. | +| `deposit_preauth.authorized` | String - [Address][] | No | The account that received the preauthorization. | +| `deposit_preauth.authorized_credentials` | Array | No | A set of credentials that received the preauthorization. | Each member of the `deposit_preauth.authorized_credentials` array, if provided, must include the following nested fields: -| Field | Type | Required? | Description | -|:------------------|:---------------------|:----------|:------------| +| Field | Type | Required? | Description | +| :---------------- | :------------------- | :-------- | :----------------------------------------------------- | | `issuer` | String - [Address][] | Yes | The address of the account that issued the credential. | -| `credential_type` | String - Hexadecimal | Yes | The type of the credential, as issued. | +| `credential_type` | String - Hexadecimal | Yes | The type of the credential, as issued. | {% tabs %} {% tab label="WebSocket" %} + ```json { "id": "example_get_deposit_preauth", @@ -757,48 +822,56 @@ Each member of the `deposit_preauth.authorized_credentials` array, if provided, "ledger_index": "validated" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { "method": "ledger_entry", - "params": [{ - "deposit_preauth": { - "owner": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "authorized": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX" - }, - "ledger_index": "validated" - }] + "params": [ + { + "deposit_preauth": { + "owner": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "authorized": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX" + }, + "ledger_index": "validated" + } + ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh rippled json ledger_entry '{ "deposit_preauth": { "owner": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", "authorized": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX" }, "ledger_index": "validated" }' ``` + {% /tab %} {% /tabs %} {% try-it method="ledger_entry-depositpreauth" /%} - ### Get Ticket Entry + Retrieve a [Ticket entry](../../../protocol/ledger-data/ledger-entry-types/ticket.md), which represents a [sequence number][] set aside for future use. {% amendment-disclaimer name="TicketBatch" /%} -| Field | Type | Description | -|:--------------------|:---------------------|:----------------------| +| Field | Type | Description | +| :------------------ | :------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `ticket` | Object or String | The Ticket to retrieve. If a string, must be the [ledger entry ID](../../../protocol/ledger-data/common-fields.md) of the Ticket, as hexadecimal. If an object, the `account` and `ticket_seq` sub-fields are required to uniquely specify the Ticket entry. | -| `ticket.account` | String - [Address][] | _(Required if `ticket` is specified as an object)_ The owner of the Ticket. | -| `ticket.ticket_seq` | Number | _(Required if `ticket` is specified as an object)_ The Ticket Sequence number of the Ticket to retrieve. | +| `ticket.account` | String - [Address][] | _(Required if `ticket` is specified as an object)_ The owner of the Ticket. | +| `ticket.ticket_seq` | Number | _(Required if `ticket` is specified as an object)_ The Ticket Sequence number of the Ticket to retrieve. | {% tabs %} {% tab label="WebSocket" %} + ```json { "id": "example_get_ticket", @@ -810,71 +883,85 @@ Retrieve a [Ticket entry](../../../protocol/ledger-data/ledger-entry-types/ticke "ledger_index": "validated" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { "method": "ledger_entry", - "params": [{ - "ticket": { - "account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "ticket_seq": 389 - }, - "ledger_index": "validated" - }] + "params": [ + { + "ticket": { + "account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "ticket_seq": 389 + }, + "ledger_index": "validated" + } + ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh rippled json ledger_entry '{ "ticket": { "account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", "ticket_seq: 389 }, "ledger_index": "validated" }' ``` + {% /tab %} {% /tabs %} {% try-it method="ledger_entry-ticket" /%} - ### Get NFT Page Return an NFT Page in its raw ledger format. -| Field | Type | Description | -|:------------------------|:---------------------------|:----------------------| -| `nft_page` | String | The [ledger entry ID](../../../protocol/ledger-data/common-fields.md) of an [NFT Page](../../../protocol/ledger-data/ledger-entry-types/nftokenpage.md) to retrieve. | +| Field | Type | Description | +| :--------- | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `nft_page` | String | The [ledger entry ID](../../../protocol/ledger-data/common-fields.md) of an [NFT Page](../../../protocol/ledger-data/ledger-entry-types/nftokenpage.md) to retrieve. | {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": "example_get_nft_page", - "command": "ledger_entry", - "nft_page": "255DD86DDF59D778081A06D02701E9B2C9F4F01DFFFFFFFFFFFFFFFFFFFFFFFF", - "ledger_index": "validated" + "id": "example_get_nft_page", + "command": "ledger_entry", + "nft_page": "255DD86DDF59D778081A06D02701E9B2C9F4F01DFFFFFFFFFFFFFFFFFFFFFFFF", + "ledger_index": "validated" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { "method": "ledger_entry", - "params": [{ - "nft_page": "255DD86DDF59D778081A06D02701E9B2C9F4F01DFFFFFFFFFFFFFFFFFFFFFFFF", - "ledger_index": "validated" - }] + "params": [ + { + "nft_page": "255DD86DDF59D778081A06D02701E9B2C9F4F01DFFFFFFFFFFFFFFFFFFFFFFFF", + "ledger_index": "validated" + } + ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh rippled json ledger_entry '{ "nft_page": "255DD86DDF59D778081A06D02701E9B2C9F4F01DFFFFFFFFFFFFFFFFFFFFFFFF", "ledger_index": "validated" }' ``` + {% /tab %} {% /tabs %} @@ -887,39 +974,47 @@ Return an `MPTokenIssuance` object. {% amendment-disclaimer name="MPTokensV1" /%} -| Field | Type | Description | -|:---------------|:-------|:----------------------| +| Field | Type | Description | +| :------------- | :----- | :------------------------------------------------------------------------------------------ | | `mpt_issuance` | String | The 192-bit `MPTokenIssuanceID` that's associated with the MPTokenIssuance, as hexadecimal. | {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": "example_get_mpt_issuance", - "command": "ledger_entry", - "mpt_issuance": "05EECEBE97A7D635DE2393068691A015FED5A89AD203F5AA", - "ledger_index": "validated" + "id": "example_get_mpt_issuance", + "command": "ledger_entry", + "mpt_issuance": "05EECEBE97A7D635DE2393068691A015FED5A89AD203F5AA", + "ledger_index": "validated" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { "method": "ledger_entry", - "params": [{ - "mpt_issuance": "05EECEBE97A7D635DE2393068691A015FED5A89AD203F5AA", - "ledger_index": "validated" - }] + "params": [ + { + "mpt_issuance": "05EECEBE97A7D635DE2393068691A015FED5A89AD203F5AA", + "ledger_index": "validated" + } + ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh rippled json ledger_entry '{ "mpt_issuance": "05EECEBE97A7D635DE2393068691A015FED5A89AD203F5AA", "ledger_index": "validated" }' ``` + {% /tab %} {% /tabs %} @@ -931,47 +1026,53 @@ Return an `MPToken` object. {% amendment-disclaimer name="MPTokensV1" /%} -| Field | Type | Description | -|:--------------------------|:-----------------|:------------| +| Field | Type | Description | +| :------------------------ | :--------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `mptoken` | ️Object or String | If a string, interpret as ledger entry ID of the MPToken to retrieve. If an object, requires the sub-fields `account` and `mpt_issuance_id` to uniquely identify the MPToken. | -| `mptoken.mpt_issuance_id` | String | (Required if the `MPToken` is specified as an object) The 192-bit MPTokenIssuanceID that's associated with the MPTokenIssuance. | -| `mptoken.account` ️ | String | (Required if the `MPToken` is specified as an object) The account that owns the MPToken. | +| `mptoken.mpt_issuance_id` | String | (Required if the `MPToken` is specified as an object) The 192-bit MPTokenIssuanceID that's associated with the MPTokenIssuance. | +| `mptoken.account` ️ | String | (Required if the `MPToken` is specified as an object) The account that owns the MPToken. | {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": "example_get_mpt", - "command": "ledger_entry", - "mptoken": { - "mpt_issuance_id": "05EECEBE97A7D635DE2393068691A015FED5A89AD203F5AA", - "account":"rsNw23ygZatXv7h8QVSgAE4jktY2uW1iZP" - } + "id": "example_get_mpt", + "command": "ledger_entry", + "mptoken": { + "mpt_issuance_id": "05EECEBE97A7D635DE2393068691A015FED5A89AD203F5AA", + "account": "rsNw23ygZatXv7h8QVSgAE4jktY2uW1iZP" + } } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "ledger_entry", - "params": [ - { - "mptoken":{ - "mpt_issuance_id": "05EECEBE97A7D635DE2393068691A015FED5A89AD203F5AA", - "account":"rsNw23ygZatXv7h8QVSgAE4jktY2uW1iZP" - } - } - ] + "method": "ledger_entry", + "params": [ + { + "mptoken": { + "mpt_issuance_id": "05EECEBE97A7D635DE2393068691A015FED5A89AD203F5AA", + "account": "rsNw23ygZatXv7h8QVSgAE4jktY2uW1iZP" + } + } + ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh rippled json ledger_entry '{ "mptoken": {"mpt_issuance_id": "05EECEBE97A7D635DE2393068691A015FED5A89AD203F5AA", "account":"rsNw23ygZatXv7h8QVSgAE4jktY2uW1iZP"} }' ``` + {% /tab %} {% /tabs %} @@ -981,19 +1082,20 @@ rippled json ledger_entry '{ "mptoken": {"mpt_issuance_id": "05EECEBE97A7D635DE2 The response follows the [standard format][], with a successful result containing the following fields: -| Field | Type | Description | -|:---------------|:-----------------|:-----------------------------------------| -| `index` | String | The unique ID of this [ledger entry](../../../protocol/ledger-data/ledger-entry-types/index.md). | -| `ledger_index` | Unsigned Integer | The [ledger index][] of the ledger that was used when retrieving this data. | -| `node` | Object | _(Omitted if `"binary": true` specified.)_ Object containing the data of this ledger entry, according to the [ledger format][]. | -| `node_binary` | String | _(Omitted unless `"binary":true` specified)_ The [binary representation](../../../protocol/binary-format.md) of the ledger object, as hexadecimal. | -| `deleted_ledger_index` | String | _(Clio server only, returned if `include_deleted` parameter is set.)_ The [ledger index][] where the ledger entry object was deleted. | +| Field | Type | Description | +| :--------------------- | :--------------- | :------------------------------------------------------------------------------------------------------------------------------------------------- | +| `index` | String | The unique ID of this [ledger entry](../../../protocol/ledger-data/ledger-entry-types/index.md). | +| `ledger_index` | Unsigned Integer | The [ledger index][] of the ledger that was used when retrieving this data. | +| `node` | Object | _(Omitted if `"binary": true` specified.)_ Object containing the data of this ledger entry, according to the [ledger format][]. | +| `node_binary` | String | _(Omitted unless `"binary":true` specified)_ The [binary representation](../../../protocol/binary-format.md) of the ledger object, as hexadecimal. | +| `deleted_ledger_index` | String | _(Clio server only, returned if `include_deleted` parameter is set.)_ The [ledger index][] where the ledger entry object was deleted. | An example of a successful response: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": "example_get_accountroot", @@ -1024,9 +1126,11 @@ An example of a successful response: "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -1057,9 +1161,11 @@ An example of a successful response: } } ``` + {% /tab %} {% tab label="Commandline" %} + ```json { "result": { @@ -1088,24 +1194,24 @@ An example of a successful response: } } ``` + {% /tab %} {% /tabs %} - ## Possible Errors -* Any of the [universal error types][]. -* `deprecatedFeature` - The request specified a removed field, such as `generator`. -* `entryNotFound` - The requested ledger entry does not exist in the ledger. -* `invalidParams` +- Any of the [universal error types][]. +- `deprecatedFeature` - The request specified a removed field, such as `generator`. +- `entryNotFound` - The requested ledger entry does not exist in the ledger. +- `invalidParams` - One or more fields are specified incorrectly or missing. - The request specified more than one ledger entry. {% badge href="https://github.com/XRPLF/rippled/releases/tag/3.0.0" %}New in: rippled 3.0.0{% /badge %} -* `lgrNotFound` - The ledger specified by the `ledger_hash` or `ledger_index` does not exist, or it does exist but the server does not have it. -* `malformedAddress` - The request improperly specified an [Address][] field. -* `malformedCurrency` - The request improperly specified a [Currency Code][] field. -* `malformedOwner` - The request improperly specified the `escrow.owner` sub-field. -* `malformedRequest` - The request provided an invalid combination of fields, or provided the wrong type for one or more fields. -* `unknownOption` - The fields provided in the request did not match any of the expected request formats. +- `lgrNotFound` - The ledger specified by the `ledger_hash` or `ledger_index` does not exist, or it does exist but the server does not have it. +- `malformedAddress` - The request improperly specified an [Address][] field. +- `malformedCurrency` - The request improperly specified a [Currency Code][] field. +- `malformedOwner` - The request improperly specified the `escrow.owner` sub-field. +- `malformedRequest` - The request provided an invalid combination of fields, or provided the wrong type for one or more fields. +- `unknownOption` - The fields provided in the request did not match any of the expected request formats. {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/amm_info.md b/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/amm_info.md index 77e2b1e584..1fa837701e 100644 --- a/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/amm_info.md +++ b/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/amm_info.md @@ -1,19 +1,20 @@ --- seo: - description: Get info about an Automated Market Maker (AMM) instance. + description: Get info about an Automated Market Maker (AMM) instance. labels: - - Decentralized Exchange - - Cross-Currency - - AMM + - Decentralized Exchange + - Cross-Currency + - AMM --- + # amm_info + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/AMMInfo.cpp "Source") The {% code-page-name /%} method gets information about an [Automated Market Maker (AMM)](/docs/concepts/tokens/decentralized-exchange/automated-market-makers) instance. {% amendment-disclaimer name="AMM" /%} - ### Request Format An example of the request format: @@ -23,25 +24,29 @@ An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { - "command": "{% $frontmatter.seo.title %}", - "asset": { - "currency": "XRP" - }, - "asset2": { - "currency": "TST", - "issuer": "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd" - } + "command": "{% $frontmatter.seo.title %}", + "asset": { + "currency": "XRP" + }, + "asset2": { + "currency": "TST", + "issuer": "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd" + } } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "{% $frontmatter.seo.title %}", - "params": [{ + "method": "{% $frontmatter.seo.title %}", + "params": [ + { "asset": { "currency": "XRP" }, @@ -49,9 +54,11 @@ An example of the request format: "currency": "TST", "issuer": "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd" } - }] + } + ] } ``` + {% /tab %} {% /tabs %} @@ -60,12 +67,12 @@ An example of the request format: The request includes the following parameters: -| `Field` | Type | Required? | Description | -|:--------------|:-----------------|:----------|-------------| -| `account` | String - [Address][] | No | Show only LP Tokens held by this liquidity provider. | -| `amm_account` | String - [Address][] | No | The address of the AMM's special AccountRoot. (This is the `issuer` of the AMM's LP Tokens.) | -| `asset` | Object | No | One of the assets of the AMM to look up, as an object with `currency` and `issuer` fields (omit `issuer` for XRP), like [currency amounts][Currency Amount]. | -| `asset2` | Object | No | The other of the assets of the AMM, as an object with `currency` and `issuer` fields (omit `issuer` for XRP), like [currency amounts][Currency Amount]. | +| `Field` | Type | Required? | Description | +| :------------ | :------------------- | :-------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `account` | String - [Address][] | No | Show only LP Tokens held by this liquidity provider. | +| `amm_account` | String - [Address][] | No | The address of the AMM's special AccountRoot. (This is the `issuer` of the AMM's LP Tokens.) | +| `asset` | Object | No | One of the assets of the AMM to look up, as an object with `currency` and `issuer` fields (omit `issuer` for XRP), like [currency amounts][Currency Amount]. | +| `asset2` | Object | No | The other of the assets of the AMM, as an object with `currency` and `issuer` fields (omit `issuer` for XRP), like [currency amounts][Currency Amount]. | You must specify _either_ `amm_account` or both `asset` and `asset2`. @@ -76,6 +83,7 @@ An example of a successful response: {% tabs %} {% tab label="WebSocket" %} + ```json { "result": { @@ -128,9 +136,11 @@ An example of a successful response: "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -184,74 +194,70 @@ An example of a successful response: } } ``` + {% /tab %} {% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: -| Field | Type | Description | -|:-----------------------|:-----------------|:----------------------------------------------------------| -| `amm` | Object | An [**AMM Description Object**](#amm-description-object) for the requested asset pair. | +| Field | Type | Description | +| :--------------------- | :--------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `amm` | Object | An [**AMM Description Object**](#amm-description-object) for the requested asset pair. | | `ledger_current_index` | [Ledger Index][] | _(Omitted if `ledger_index` is provided instead)_ The [ledger index][] of the current in-progress ledger, which was used when retrieving this information. | -| `ledger_hash` | [Hash][] | _(Omitted if `ledger_current_index` is provided instead)_ The identifying hash of the ledger version that was used when retrieving this data. | -| `ledger_index` | [Ledger Index][] | _(Omitted if `ledger_current_index` is provided instead)_ The [ledger index][] of the ledger version used when retrieving this information. | -| `validated` | Boolean | If `true`, the ledger used for this request is validated and these results are final; if omitted or set to `false`, the data is pending and may change. | - +| `ledger_hash` | [Hash][] | _(Omitted if `ledger_current_index` is provided instead)_ The identifying hash of the ledger version that was used when retrieving this data. | +| `ledger_index` | [Ledger Index][] | _(Omitted if `ledger_current_index` is provided instead)_ The [ledger index][] of the ledger version used when retrieving this information. | +| `validated` | Boolean | If `true`, the ledger used for this request is validated and these results are final; if omitted or set to `false`, the data is pending and may change. | ### AMM Description Object The `amm` field is an object describing the current status of an Automated Market Maker (AMM) in the ledger, and contains the following fields: -| Field | Type | Description | -|-----------------|---------------------|-------------| -| `account` | String | The [Address][] of the AMM Account. | -| `amount` | [Currency Amount][] | The total amount of one asset in the AMM's pool. (Note: This could be `asset` _or_ `asset2` from the request.) | -| `amount2` | [Currency Amount][] | The total amount of the other asset in the AMM's pool. (Note: This could be `asset` _or_ `asset2` from the request.) | -| `asset_frozen` | Boolean | _(Omitted for XRP)_ If `true`, the `amount` currency is currently [frozen](../../../../concepts/tokens/fungible-tokens/freezes.md). | -| `asset2_frozen` | Boolean | _(Omitted for XRP)_ If `true`, the `amount2` currency is currently [frozen](../../../../concepts/tokens/fungible-tokens/freezes.md). | -| `auction_slot` | Object | _(May be omitted)_ An [Auction Slot Object](#auction-slot-object) describing the current auction slot holder, if there is one. | +| Field | Type | Description | +| --------------- | ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `account` | String | The [Address][] of the AMM Account. | +| `amount` | [Currency Amount][] | The total amount of one asset in the AMM's pool. (Note: This could be `asset` _or_ `asset2` from the request.) | +| `amount2` | [Currency Amount][] | The total amount of the other asset in the AMM's pool. (Note: This could be `asset` _or_ `asset2` from the request.) | +| `asset_frozen` | Boolean | _(Omitted for XRP)_ If `true`, the `amount` currency is currently [frozen](../../../../concepts/tokens/fungible-tokens/freezes.md). | +| `asset2_frozen` | Boolean | _(Omitted for XRP)_ If `true`, the `amount2` currency is currently [frozen](../../../../concepts/tokens/fungible-tokens/freezes.md). | +| `auction_slot` | Object | _(May be omitted)_ An [Auction Slot Object](#auction-slot-object) describing the current auction slot holder, if there is one. | | `lp_token` | [Currency Amount][] | The total amount of this AMM's LP Tokens outstanding. If the request specified a liquidity provider in the `account` field, instead, this is the amount of this AMM's LP Tokens held by that liquidity provider. | -| `trading_fee` | Number | The AMM's current trading fee, in units of 1/100,000; a value of 1 is equivalent to a 0.001% fee. | -| `vote_slots` | Array | _(May be omitted)_ The current votes for the AMM's trading fee, as [Vote Slot Objects](#vote-slot-objects). | - +| `trading_fee` | Number | The AMM's current trading fee, in units of 1/100,000; a value of 1 is equivalent to a 0.001% fee. | +| `vote_slots` | Array | _(May be omitted)_ The current votes for the AMM's trading fee, as [Vote Slot Objects](#vote-slot-objects). | ### Auction Slot Object The `auction_slot` field of the `amm` object describes the current auction slot holder of the AMM, and contains the following fields: -| Field | Type | Description | -|------------------|---------------------|-------------| -| `account` | String | The [Address][] of the account that owns the auction slot. | -| `auth_accounts` | Array | A list of additional accounts that the auction slot holder has designated as being eligible of the discounted trading fee. Each member of this array is an object with one field, `account`, containing the address of the designated account. | -| `discounted_fee` | Number | The discounted trading fee that applies to the auction slot holder, and any eligible accounts, when trading against this AMM. This is 1/10 of the AMM's normal trading fee. | -| `expiration` | String | The ISO 8601 UTC timestamp after which this auction slot expires. After expired, the auction slot does not apply (but the data can remain in the ledger until another transaction replaces it or cleans it up). | -| `price` | [Currency Amount][] | The amount, in LP Tokens, that the auction slot holder paid to win the auction slot. This affects the price to outbid the current slot holder. | +| Field | Type | Description | +| ---------------- | ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `account` | String | The [Address][] of the account that owns the auction slot. | +| `auth_accounts` | Array | A list of additional accounts that the auction slot holder has designated as being eligible of the discounted trading fee. Each member of this array is an object with one field, `account`, containing the address of the designated account. | +| `discounted_fee` | Number | The discounted trading fee that applies to the auction slot holder, and any eligible accounts, when trading against this AMM. This is 1/10 of the AMM's normal trading fee. | +| `expiration` | String | The ISO 8601 UTC timestamp after which this auction slot expires. After expired, the auction slot does not apply (but the data can remain in the ledger until another transaction replaces it or cleans it up). | +| `price` | [Currency Amount][] | The amount, in LP Tokens, that the auction slot holder paid to win the auction slot. This affects the price to outbid the current slot holder. | | `time_interval` | Number | The current 72-minute time interval this auction slot is in, from 0 to 19. The auction slot expires after 24 hours (20 intervals of 72 minutes) and affects the cost to outbid the current holder and how much the current holder is refunded if someone outbids them. | - ### Vote Slot Objects Each entry in the `vote_slots` array represents one liquidity provider's vote to set the trading fee, and contains the following fields: -| Field | Type | Description | -|---------------|--------|-------------| -| `account` | String | The [Address][] of this liquidity provider. | -| `trading_fee` | Number | The trading fee this liquidity provider voted for, in units of 1/100,000. | +| Field | Type | Description | +| ------------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `account` | String | The [Address][] of this liquidity provider. | +| `trading_fee` | Number | The trading fee this liquidity provider voted for, in units of 1/100,000. | | `vote_weight` | Number | How much this liquidity provider's vote counts towards the final trading fee. This is proportional to how much of the AMM's LP Tokens this liquidity provider holds. The value is equal to 100,000 times the number of this LP Tokens this liquidity provider holds, divided by the total number of LP Tokens outstanding. For example, a value of 1000 means that the liquidity provider holds 1% of this AMM's LP Tokens. | - ### Possible Errors - Any of the [universal error types][]. - `actNotFound` - The AMM for this asset pair does not exist, or an account specified in the request does not exist. - `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. - ## See Also - - [AMM object](../../../protocol/ledger-data/ledger-entry-types/amm.md) - The canonical storage format of the AMM object - - [AMMBid][] - More info on the auction slot and bidding mechanism - - [AMMVote][] - More info on the trading fee voting mechanism +- [AMM object](../../../protocol/ledger-data/ledger-entry-types/amm.md) - The canonical storage format of the AMM object +- [AMMBid][] - More info on the auction slot and bidding mechanism +- [AMMVote][] - More info on the trading fee voting mechanism {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/book_changes.md b/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/book_changes.md index c6fbbb5dd5..6bbe0f6241 100644 --- a/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/book_changes.md +++ b/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/book_changes.md @@ -1,11 +1,13 @@ --- seo: - description: Get information on order book changes + description: Get information on order book changes labels: - - Decentralized Exchange - - Cross-Currency + - Decentralized Exchange + - Cross-Currency --- + # book_changes + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/BookChanges.h "Source") The {% code-page-name /%} method reports information about changes to the order books in the [decentralized exchange (DEX)](../../../../concepts/tokens/decentralized-exchange/index.md) compared with the previous ledger version. This may be useful for building "candlestick" charts. @@ -17,31 +19,39 @@ An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": "example_book_changes", - "command": "{% $frontmatter.seo.title %}", - "ledger_index": 88530953 + "id": "example_book_changes", + "command": "{% $frontmatter.seo.title %}", + "ledger_index": 88530953 } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "{% $frontmatter.seo.title %}", - "params": [{ + "method": "{% $frontmatter.seo.title %}", + "params": [ + { "ledger_index": 88530953 - }] + } + ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh #Syntax: book_changes [] rippled book_changes 88530953 ``` + {% /tab %} {% /tabs %} @@ -50,9 +60,9 @@ rippled book_changes 88530953 The request includes the following parameters: -| Field | Type | Required? | Description | -|:---------------|:-----------------|:----------|-------------| -| `ledger_hash` | [Hash][] | No | A 32-byte hex string for the ledger version to use. (See [Specifying Ledgers][]) | +| Field | Type | Required? | Description | +| :------------- | :--------------- | :-------- | ------------------------------------------------------------------------------------------------------------------------------ | +| `ledger_hash` | [Hash][] | No | A 32-byte hex string for the ledger version to use. (See [Specifying Ledgers][]) | | `ledger_index` | [Ledger Index][] | No | The [ledger index][] of the ledger to use, or a shortcut string to choose a ledger automatically. (See [Specifying Ledgers][]) | ## Response Format @@ -77,29 +87,29 @@ An example of a successful response: The response follows the [standard format][], with a successful result containing the following fields: -| Field | Type | Description | -|:---------------|:-----------------|:------------------------| +| Field | Type | Description | +| :------------- | :--------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `changes` | Array | List of [Book Update Objects](#book-update-objects), containing one entry for each order book that was updated in this ledger version. The array is empty if no order books were updated. | -| `ledger_hash` | [Hash][] | The identifying hash of the ledger version that was used when retrieving this data. | -| `ledger_index` | [Ledger Index][] | The ledger index of the ledger version that was used when retrieving this data. | -| `ledger_time` | Number | The official close time of the ledger that was used when retrieving this data, in [seconds since the Ripple Epoch][]. | -| `type` | String | The string `bookChanges`, which indicates that this is an order book update message. | -| `validated` | Boolean | _(May be omitted)_ If `true`, the information comes from a validated ledger version. | +| `ledger_hash` | [Hash][] | The identifying hash of the ledger version that was used when retrieving this data. | +| `ledger_index` | [Ledger Index][] | The ledger index of the ledger version that was used when retrieving this data. | +| `ledger_time` | Number | The official close time of the ledger that was used when retrieving this data, in [seconds since the Ripple Epoch][]. | +| `type` | String | The string `bookChanges`, which indicates that this is an order book update message. | +| `validated` | Boolean | _(May be omitted)_ If `true`, the information comes from a validated ledger version. | ### Book Update Objects A Book Update Object represents the changes to a single order book in a single ledger version, and contains the following fields: -| Field | Type | Description | -|:---------------|:-----------------|:------------------------| -| `currency_a` | String | An identifier for the first of the two currencies in the order book. For XRP, this is the string `XRP_drops`. For [tokens](../../../../concepts/tokens/index.md), this is formatted as the address of the issuer in [base58][], followed by a forward-slash (`/`), followed by the [Currency Code][] for the token, which can be a 3-character standard code or a 20-character hexadecimal code. | -| `currency_b` | String | An identifier for the second of two currencies in the order book. This is in the same format as `currency_a`, except `currency_b` can never be XRP. -| `volume_a` | String - Number | The total amount, or _volume_, of the first currency (that is, `currency_a`) that moved as a result of trades through this order book in this ledger. | -| `volume_b` | String - Number | The volume of the second currency (that is, `currency_b`) that moved as a result of trades through this order book in this ledger. | -| `high` | String - Number | The highest exchange rate among all offers matched in this ledger, as a ratio of the first currency to the second currency. (In other words, `currency_a : currency_b`.) | -| `low` | String - Number | The lowest exchange rate among all offers matched in this ledger, as a ratio of the first currency to the second currency. | -| `open` | String - Number | The exchange rate at the top of this order book before processing the transactions in this ledger, as a ratio of the first currency to the second currency. | -| `close` | String - Number | The exchange rate at the top of this order book after processing the transactions in this ledger, as a ratio of the first currency to the second currency. | +| Field | Type | Description | +| :----------- | :-------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `currency_a` | String | An identifier for the first of the two currencies in the order book. For XRP, this is the string `XRP_drops`. For [tokens](../../../../concepts/tokens/index.md), this is formatted as the address of the issuer in [base58][], followed by a forward-slash (`/`), followed by the [Currency Code][] for the token, which can be a 3-character standard code or a 20-character hexadecimal code. | +| `currency_b` | String | An identifier for the second of two currencies in the order book. This is in the same format as `currency_a`, except `currency_b` can never be XRP. | +| `volume_a` | String - Number | The total amount, or _volume_, of the first currency (that is, `currency_a`) that moved as a result of trades through this order book in this ledger. | +| `volume_b` | String - Number | The volume of the second currency (that is, `currency_b`) that moved as a result of trades through this order book in this ledger. | +| `high` | String - Number | The highest exchange rate among all offers matched in this ledger, as a ratio of the first currency to the second currency. (In other words, `currency_a : currency_b`.) | +| `low` | String - Number | The lowest exchange rate among all offers matched in this ledger, as a ratio of the first currency to the second currency. | +| `open` | String - Number | The exchange rate at the top of this order book before processing the transactions in this ledger, as a ratio of the first currency to the second currency. | +| `close` | String - Number | The exchange rate at the top of this order book after processing the transactions in this ledger, as a ratio of the first currency to the second currency. | For XRP-token order books, XRP is always `currency_a`. For token-token order books, the currencies are sorted alphabetically by the issuer and then currency code. @@ -107,8 +117,8 @@ Exchange rates involving XRP are always calculated using [drops of XRP][]. For e ## Possible Errors -* Any of the [universal error types][]. -* `lgrNotFound` - The ledger specified by the `ledger_hash` or `ledger_index` does not exist, or it does exist but the server does not have it. -* `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. +- Any of the [universal error types][]. +- `lgrNotFound` - The ledger specified by the `ledger_hash` or `ledger_index` does not exist, or it does exist but the server does not have it. +- `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/book_offers.md b/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/book_offers.md index 71bd5b879b..3c8893e4d8 100644 --- a/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/book_offers.md +++ b/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/book_offers.md @@ -1,21 +1,25 @@ --- seo: - description: Get info about offers to exchange two currencies. + description: Get info about offers to exchange two currencies. labels: - - Decentralized Exchange - - Cross-Currency + - Decentralized Exchange + - Cross-Currency --- + # book_offers + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/BookOffers.cpp "Source") The `book_offers` method retrieves a list of [offers](../../../../concepts/tokens/decentralized-exchange/offers.md) between two currencies, also known as an _order book_. The response omits [unfunded offers](../../../../concepts/tokens/decentralized-exchange/offers.md#lifecycle-of-an-offer) and reports how much of each remaining offer's total is currently funded. ## Request Format + An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 4, @@ -31,34 +35,39 @@ An example of the request format: "limit": 10 } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "book_offers", - "params": [ - { - "taker": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "taker_gets": { - "currency": "XRP" - }, - "taker_pays": { - "currency": "USD", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - }, - "limit": 10 - } - ] + "method": "book_offers", + "params": [ + { + "taker": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "taker_gets": { + "currency": "XRP" + }, + "taker_pays": { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" + }, + "limit": 10 + } + ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh #Syntax: book_offers taker_pays taker_gets [taker [ledger [limit] ] ] rippled book_offers 'USD/rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B' 'EUR/rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B' ``` + {% /tab %} {% /tabs %} @@ -67,16 +76,15 @@ rippled book_offers 'USD/rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B' 'EUR/rvYAfWj5gh67oV6 The request includes the following parameters: -| `Field` | Type | Required? | Description | -|:---------------|:-----------------|:----------|-------------| -| `taker_gets` | Object | Yes | The asset the account taking the offer would receive, as a [currency without an amount](../../../protocol/data-types/currency-formats.md#specifying-without-amounts). | -| `taker_pays` | Object | Yes | The asset the account taking the offer would pay, as a [currency without an amount](../../../protocol/data-types/currency-formats.md#specifying-without-amounts). | +| `Field` | Type | Required? | Description | +| :------------- | :--------------- | :-------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `taker_gets` | Object | Yes | The asset the account taking the offer would receive, as a [currency without an amount](../../../protocol/data-types/currency-formats.md#specifying-without-amounts). | +| `taker_pays` | Object | Yes | The asset the account taking the offer would pay, as a [currency without an amount](../../../protocol/data-types/currency-formats.md#specifying-without-amounts). | | `domain` | [Hash][] | No | The ledger entry ID of a permissioned domain. If provided, return offers from the corresponding [permissioned DEX](../../../../concepts/tokens/decentralized-exchange/permissioned-dexes.md) instead of using the open DEX. {% amendment-disclaimer name="PermissionedDEX" /%} | -| `ledger_hash` | [Hash][] | No | The unique hash of the ledger version to use. (See [Specifying Ledgers][]) | -| `ledger_index` | [Ledger Index][] | No | The [ledger index][] of the ledger to use, or a shortcut string to choose a ledger automatically. (See [Specifying Ledgers][]) | -| `limit` | Number | No | The maximum number of offers to return. The response may include fewer results. | -| `taker` | String | No | The [Address][] of an account to use as a perspective. The response includes this account's Offers even if they are unfunded. (You can use this to see what Offers are above or below yours in the order book.) | - +| `ledger_hash` | [Hash][] | No | The unique hash of the ledger version to use. (See [Specifying Ledgers][]) | +| `ledger_index` | [Ledger Index][] | No | The [ledger index][] of the ledger to use, or a shortcut string to choose a ledger automatically. (See [Specifying Ledgers][]) | +| `limit` | Number | No | The maximum number of offers to return. The response may include fewer results. | +| `taker` | String | No | The [Address][] of an account to use as a perspective. The response includes this account's Offers even if they are unfunded. (You can use this to see what Offers are above or below yours in the order book.) | ## Response Format @@ -85,6 +93,7 @@ An example of a successful response: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 11, @@ -143,9 +152,11 @@ An example of a successful response: } } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -158,109 +169,112 @@ An example of a successful response: } } ``` + {% /tab %} {% tab label="Commandline" %} + ```json { - "result" : { - "ledger_current_index" : 56867201, - "offers" : [ - { - "Account" : "rnixnrMHHvR7ejMpJMRCWkaNrq3qREwMDu", - "BookDirectory" : "7E5F614417C2D0A7CEFEB73C4AA773ED5B078DE2B5771F6D56038D7EA4C68000", - "BookNode" : "0000000000000000", - "Flags" : 131072, - "LedgerEntryType" : "Offer", - "OwnerNode" : "0000000000000000", - "PreviousTxnID" : "E43ADD1BD4AC2049E0D9DE6BC279B7FD95A99C8DE2C4694A4A7623F6D9AAAE29", - "PreviousTxnLgrSeq" : 47926685, - "Sequence" : 219, - "TakerGets" : { - "currency" : "EUR", - "issuer" : "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value" : "2.459108753792364" - }, - "TakerPays" : { - "currency" : "USD", - "issuer" : "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value" : "24.59108753792364" - }, - "index" : "3087B4828C6B5D8595EA325D69C0F396C57452893647799493A38F2C164990AB", - "owner_funds" : "2.872409153061363", - "quality" : "10" - }, - { - "Account" : "rKwjWCKBaASEvtHCxtvReNd2i9n8DxSihk", - "BookDirectory" : "7E5F614417C2D0A7CEFEB73C4AA773ED5B078DE2B5771F6D56038D7EA4C68000", - "BookNode" : "0000000000000000", - "Flags" : 131072, - "LedgerEntryType" : "Offer", - "OwnerNode" : "0000000000000000", - "PreviousTxnID" : "B63B2ECD124FE6B02BC2998929517266BD221A02FEE51DDE4992C1BCB7E86CD3", - "PreviousTxnLgrSeq" : 43166305, - "Sequence" : 19, - "TakerGets" : { - "currency" : "EUR", - "issuer" : "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value" : "3.52" - }, - "TakerPays" : { - "currency" : "USD", - "issuer" : "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value" : "35.2" - }, - "index" : "89865F2C70D1140796D9D249AC2ED765AE2D007A52DEC6D6D64CCB1A77A6EB7F", - "owner_funds" : "3.523192614770459", - "quality" : "10", - "taker_gets_funded" : { - "currency" : "EUR", - "issuer" : "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value" : "3.516160294182094" - }, - "taker_pays_funded" : { - "currency" : "USD", - "issuer" : "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value" : "35.16160294182094" - } - } - ], - "status" : "success", - "validated" : false - } + "result": { + "ledger_current_index": 56867201, + "offers": [ + { + "Account": "rnixnrMHHvR7ejMpJMRCWkaNrq3qREwMDu", + "BookDirectory": "7E5F614417C2D0A7CEFEB73C4AA773ED5B078DE2B5771F6D56038D7EA4C68000", + "BookNode": "0000000000000000", + "Flags": 131072, + "LedgerEntryType": "Offer", + "OwnerNode": "0000000000000000", + "PreviousTxnID": "E43ADD1BD4AC2049E0D9DE6BC279B7FD95A99C8DE2C4694A4A7623F6D9AAAE29", + "PreviousTxnLgrSeq": 47926685, + "Sequence": 219, + "TakerGets": { + "currency": "EUR", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "2.459108753792364" + }, + "TakerPays": { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "24.59108753792364" + }, + "index": "3087B4828C6B5D8595EA325D69C0F396C57452893647799493A38F2C164990AB", + "owner_funds": "2.872409153061363", + "quality": "10" + }, + { + "Account": "rKwjWCKBaASEvtHCxtvReNd2i9n8DxSihk", + "BookDirectory": "7E5F614417C2D0A7CEFEB73C4AA773ED5B078DE2B5771F6D56038D7EA4C68000", + "BookNode": "0000000000000000", + "Flags": 131072, + "LedgerEntryType": "Offer", + "OwnerNode": "0000000000000000", + "PreviousTxnID": "B63B2ECD124FE6B02BC2998929517266BD221A02FEE51DDE4992C1BCB7E86CD3", + "PreviousTxnLgrSeq": 43166305, + "Sequence": 19, + "TakerGets": { + "currency": "EUR", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "3.52" + }, + "TakerPays": { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "35.2" + }, + "index": "89865F2C70D1140796D9D249AC2ED765AE2D007A52DEC6D6D64CCB1A77A6EB7F", + "owner_funds": "3.523192614770459", + "quality": "10", + "taker_gets_funded": { + "currency": "EUR", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "3.516160294182094" + }, + "taker_pays_funded": { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "35.16160294182094" + } + } + ], + "status": "success", + "validated": false + } } ``` + {% /tab %} {% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: -| `Field` | Type | Description | -|:-----------------------|:-----------------|:------------------------| +| `Field` | Type | Description | +| :--------------------- | :--------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `ledger_current_index` | [Ledger Index][] | _(Omitted if `ledger_current_index` is provided)_ The [ledger index][] of the current in-progress ledger version, which was used to retrieve this information. | -| `ledger_index` | [Ledger Index][] | _(Omitted if `ledger_current_index` provided)_ The ledger index of the ledger version that was used when retrieving this data, as requested. | -| `ledger_hash` | [Hash][] | _(May be omitted)_ The identifying hash of the ledger version that was used when retrieving this data, as requested. | -| `offers` | Array | Array of offer objects, as described below: | +| `ledger_index` | [Ledger Index][] | _(Omitted if `ledger_current_index` provided)_ The ledger index of the ledger version that was used when retrieving this data, as requested. | +| `ledger_hash` | [Hash][] | _(May be omitted)_ The identifying hash of the ledger version that was used when retrieving this data, as requested. | +| `offers` | Array | Array of offer objects, as described below: | Each member of the `offers` array contains canonical fields of an [Offer entry][] and can also contain the following additional fields: -| `Field` | Type | Description | -|:--------------------|:--------------------|:--------------------| -| `owner_funds` | String | Amount of the `TakerGets` currency the side placing the offer has available to be traded. (XRP is represented as drops; any other currency is represented as a decimal value.) If a trader has multiple offers in the same book, only the highest-ranked offer includes this field. | -| `taker_gets_funded` | [Currency Amount][] | _(Only included in partially-funded offers)_ The maximum amount of currency that the taker can get, given the funding status of the offer. | -| `taker_pays_funded` | [Currency Amount][] | _(Only included in partially-funded offers)_ The maximum amount of currency that the taker would pay, given the funding status of the offer. | +| `Field` | Type | Description | +| :------------------ | :------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `owner_funds` | String | Amount of the `TakerGets` currency the side placing the offer has available to be traded. (XRP is represented as drops; any other currency is represented as a decimal value.) If a trader has multiple offers in the same book, only the highest-ranked offer includes this field. | +| `taker_gets_funded` | [Currency Amount][] | _(Only included in partially-funded offers)_ The maximum amount of currency that the taker can get, given the funding status of the offer. | +| `taker_pays_funded` | [Currency Amount][] | _(Only included in partially-funded offers)_ The maximum amount of currency that the taker would pay, given the funding status of the offer. | | `quality` | String | The exchange rate, as the ratio `taker_pays` divided by `taker_gets`. For fairness, offers that have the same quality are automatically taken first-in, first-out. (In other words, if multiple people offer to exchange currency at the same rate, the oldest offer is taken first.) | ## Possible Errors -* Any of the [universal error types][]. -* `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. -* `lgrNotFound` - The ledger specified by the `ledger_hash` or `ledger_index` does not exist, or it does exist but the server does not have it. -* `srcCurMalformed` - The `taker_pays` field in the request is not formatted properly. -* `dstAmtMalformed` - The `taker_gets` field in the request is not formatted properly. -* `srcIsrMalformed` - The `issuer` field of the `taker_pays` field in the request is not valid. -* `dstIsrMalformed` - The `issuer` field of the `taker_gets` field in the request is not valid. -* `badMarket` - The desired order book does not exist; for example, offers to exchange a currency for itself. +- Any of the [universal error types][]. +- `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. +- `lgrNotFound` - The ledger specified by the `ledger_hash` or `ledger_index` does not exist, or it does exist but the server does not have it. +- `srcCurMalformed` - The `taker_pays` field in the request is not formatted properly. +- `dstAmtMalformed` - The `taker_gets` field in the request is not formatted properly. +- `srcIsrMalformed` - The `issuer` field of the `taker_pays` field in the request is not valid. +- `dstIsrMalformed` - The `issuer` field of the `taker_gets` field in the request is not valid. +- `badMarket` - The desired order book does not exist; for example, offers to exchange a currency for itself. {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/deposit_authorized.md b/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/deposit_authorized.md index d84d998d73..cec3696daa 100644 --- a/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/deposit_authorized.md +++ b/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/deposit_authorized.md @@ -1,21 +1,25 @@ --- seo: - description: Check whether an account is authorized to send money directly to another. + description: Check whether an account is authorized to send money directly to another. labels: - - Accounts - - Security + - Accounts + - Security --- + # deposit_authorized + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/DepositAuthorized.cpp "Source") The `deposit_authorized` command indicates whether one account is authorized to send payments directly to another. See [Deposit Authorization](../../../../concepts/accounts/depositauth.md) for information on how to require authorization to deliver money to your account. ## Request Format + An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 1, @@ -29,9 +33,11 @@ An example of the request format: "ledger_index": "validated" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { "method": "deposit_authorized", @@ -48,6 +54,7 @@ An example of the request format: ] } ``` + {% /tab %} {% tab label="Commandline" %} @@ -56,17 +63,18 @@ An example of the request format: #Syntax: deposit_authorized [] rippled deposit_authorized rEhxGqkqPPSxQ3P25J66ft5TwpzV14k2de rsUiUMpnrgxQp24dJYZDhmV4bE3aBtQyt8 validated ``` + {% /tab %} {% /tabs %} The request includes the following parameters: -| Field | Type | Required? | Description | -|:----------------------|:---------------------|:----------|-------------| -| `source_account` | String - [Address][] | Yes | The sender of a possible payment. | -| `destination_account` | String - [Address][] | Yes | The recipient of a possible payment. | -| `ledger_hash` | [Hash][] | No | A 32-byte hex string for the ledger version to use. (See [Specifying Ledgers][]) | -| `ledger_index` | [Ledger Index][] | No | The [ledger index][] of the ledger to use, or a shortcut string to choose a ledger automatically. (See [Specifying Ledgers][]) | +| Field | Type | Required? | Description | +| :-------------------- | :------------------- | :-------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `source_account` | String - [Address][] | Yes | The sender of a possible payment. | +| `destination_account` | String - [Address][] | Yes | The recipient of a possible payment. | +| `ledger_hash` | [Hash][] | No | A 32-byte hex string for the ledger version to use. (See [Specifying Ledgers][]) | +| `ledger_index` | [Ledger Index][] | No | The [ledger index][] of the ledger to use, or a shortcut string to choose a ledger automatically. (See [Specifying Ledgers][]) | | `credentials` | Array | No | A set of credentials to take into account when checking if the sender can send funds to the destination. Each member of the array must be the unique ID of a [Credential entry][] in the ledger. Cannot be an empty array. | {% admonition type="info" name="Note" %} @@ -80,6 +88,7 @@ An example of a successful response: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 1, @@ -99,9 +108,11 @@ An example of a successful response: "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { "result": { @@ -119,9 +130,11 @@ An example of a successful response: } } ``` + {% /tab %} {% tab label="Commandline" %} + ```json Loading: "/etc/rippled.cfg" 2018-Jul-30 20:07:38.771658157 HTTPClient:NFO Connecting to 127.0.0.1:5005 @@ -142,21 +155,22 @@ Loading: "/etc/rippled.cfg" } } ``` + {% /tab %} {% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: -| Field | Type | Required? | Description | -|:-----------------------|:--------------------------|:----------|:--------------| -| `credentials` | Array of [Hash][] | No | The credentials specified in the request, if any. | +| Field | Type | Required? | Description | +| :--------------------- | :------------------------ | :-------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `credentials` | Array of [Hash][] | No | The credentials specified in the request, if any. | | `deposit_authorized` | Boolean | Yes | Whether the specified source account is authorized to send payments directly to the destination account. If `true`, either the destination account does not require [deposit authorization](../../../../concepts/accounts/depositauth.md) or the source account is preauthorized. | -| `destination_account` | String - [Address][] | Yes | The destination account specified in the request. | -| `ledger_hash` | String | No | The identifying hash of the ledger that was used to generate this response. | -| `ledger_index` | Number - [Ledger Index][] | No | The ledger index of the ledger version that was used to generate this response. | -| `ledger_current_index` | Number - [Ledger Index][] | No | The ledger index of the current in-progress ledger version, which was used to generate this response. | -| `source_account` | String - [Address][] | Yes | The source account specified in the request. | -| `validated` | Boolean | No | If `true`, the information comes from a validated ledger version. | +| `destination_account` | String - [Address][] | Yes | The destination account specified in the request. | +| `ledger_hash` | String | No | The identifying hash of the ledger that was used to generate this response. | +| `ledger_index` | Number - [Ledger Index][] | No | The ledger index of the ledger version that was used to generate this response. | +| `ledger_current_index` | Number - [Ledger Index][] | No | The ledger index of the current in-progress ledger version, which was used to generate this response. | +| `source_account` | String - [Address][] | Yes | The source account specified in the request. | +| `validated` | Boolean | No | If `true`, the information comes from a validated ledger version. | {% admonition type="info" name="Note" %} A `deposit_authorized` status of `true` does not guarantee that a payment can be sent from the specified source to the specified destination. For example, the destination account may not have a [trust line](../../../../concepts/tokens/fungible-tokens/index.md) for the specified currency, or there may not be enough liquidity to deliver a payment. @@ -164,13 +178,12 @@ A `deposit_authorized` status of `true` does not guarantee that a payment can be ## Possible Errors -* Any of the [universal error types][]. -* `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. -* `actMalformed` - An [Address][] specified in the `source_account` or `destination_account` field of the request was not properly formatted. (It may contain a typo or be the wrong length, causing a failed checksum.) -* `badCredentials` - At least one of the supplied credentials does not exist, is expired, or has not been accepted. -* `dstActNotFound` - The `destination_account` field of the request does not correspond to an account in the ledger. -* `lgrNotFound` - The ledger specified by the `ledger_hash` or `ledger_index` does not exist, or it does exist but the server does not have it. -* `srcActNotFound` - The `source_account` field of the request does not correspond to an account in the ledger. - +- Any of the [universal error types][]. +- `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. +- `actMalformed` - An [Address][] specified in the `source_account` or `destination_account` field of the request was not properly formatted. (It may contain a typo or be the wrong length, causing a failed checksum.) +- `badCredentials` - At least one of the supplied credentials does not exist, is expired, or has not been accepted. +- `dstActNotFound` - The `destination_account` field of the request does not correspond to an account in the ledger. +- `lgrNotFound` - The ledger specified by the `ledger_hash` or `ledger_index` does not exist, or it does exist but the server does not have it. +- `srcActNotFound` - The `source_account` field of the request does not correspond to an account in the ledger. {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/get_aggregate_price.md b/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/get_aggregate_price.md index 2b9fc23fc8..3794de2b6e 100644 --- a/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/get_aggregate_price.md +++ b/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/get_aggregate_price.md @@ -1,10 +1,12 @@ --- seo: - description: Calculate the aggregate price of specified Oracle instances. + description: Calculate the aggregate price of specified Oracle instances. labels: - - Oracle + - Oracle --- + # get_aggregate_price + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/GetAggregatePrice.cpp "Source") The `get_aggregate_price` method retrieves the aggregate price of specified `Oracle` objects, returning three price statistics: mean, median, and trimmed mean. @@ -18,6 +20,7 @@ An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { "command": "get_aggregate_price", @@ -49,9 +52,11 @@ An example of the request format: ] } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { "method": "get_aggregate_price", @@ -79,6 +84,7 @@ An example of the request format: ] } ``` + {% /tab %} {% /tabs %} @@ -87,22 +93,21 @@ An example of the request format: The request contains the following parameters: -| Field | Type | Required? | Description | -|------------------------------|--------|-----------|-------------| -| `base_asset` | String | Yes | The currency code of the asset to be priced. | -| `quote_asset` | String | Yes | The currency code of the asset to quote the price of the base asset. | -| `trim` | Number | No | The percentage of outliers to trim. Valid trim range is 1-25. If included, the API returns statistics for the `trimmed mean`. | -| `trim_threshold` | Number | No | Defines a time range in seconds for filtering out older price data. Default value is 0, which doesn't filter any data. | -| `oracles` | Array | Yes | An array of oracle identifier objects. You must list between 1 and 200 oracle identifiers. | +| Field | Type | Required? | Description | +| ---------------- | ------ | --------- | ----------------------------------------------------------------------------------------------------------------------------- | +| `base_asset` | String | Yes | The currency code of the asset to be priced. | +| `quote_asset` | String | Yes | The currency code of the asset to quote the price of the base asset. | +| `trim` | Number | No | The percentage of outliers to trim. Valid trim range is 1-25. If included, the API returns statistics for the `trimmed mean`. | +| `trim_threshold` | Number | No | Defines a time range in seconds for filtering out older price data. Default value is 0, which doesn't filter any data. | +| `oracles` | Array | Yes | An array of oracle identifier objects. You must list between 1 and 200 oracle identifiers. | Each member of the `oracles` array is an oracle identifier object with the following fields: -| Field | Type | Required? | Description | -|----------------------|--------|-----------|-------------| -| `account` | String | Yes | The XRPL account that controls the `Oracle` object. | +| Field | Type | Required? | Description | +| -------------------- | ------ | --------- | --------------------------------------------------------- | +| `account` | String | Yes | The XRPL account that controls the `Oracle` object. | | `oracle_document_id` | Number | Yes | A unique identifier of the price oracle for the `Account` | - ## Response Format An example of the response format: @@ -130,17 +135,17 @@ An example of the response format: } ``` -| Field | Type | Description | -|----------------------------------|-----------------|-------------| -| `entire_set` | Object | The statistics from the collected oracle prices. | -| `entire_set.mean` | String - Number | The simple mean. | -| `entire_set.size` | Number | The size of the data set to calculate the mean. | -| `entire_set.standard_deviation` | String - Number | The standard deviation. | +| Field | Type | Description | +| -------------------------------- | --------------- | ----------------------------------------------------------------------------------------------------------------------- | +| `entire_set` | Object | The statistics from the collected oracle prices. | +| `entire_set.mean` | String - Number | The simple mean. | +| `entire_set.size` | Number | The size of the data set to calculate the mean. | +| `entire_set.standard_deviation` | String - Number | The standard deviation. | | `trimmed_set` | Object | The trimmed statistics from the collected oracle prices. Only appears if the `trim` field was specified in the request. | -| `trimmed_set.mean` | String - Number | The simple mean of the trimmed data. | -| `trimmed_set.size` | Number | The size of the data to calculate the trimmed mean. | -| `trimmed_set.standard_deviation` | String - Number | The standard deviation of the trimmed data. | -| `time` | Number | The most recent timestamp out of all `LastUpdateTime` values, represented in Unix time. | +| `trimmed_set.mean` | String - Number | The simple mean of the trimmed data. | +| `trimmed_set.size` | Number | The size of the data to calculate the trimmed mean. | +| `trimmed_set.standard_deviation` | String - Number | The standard deviation of the trimmed data. | +| `time` | Number | The most recent timestamp out of all `LastUpdateTime` values, represented in Unix time. | {% admonition type="info" name="Notes" %} @@ -151,7 +156,6 @@ An example of the response format: {% /admonition %} - ## Possible Errors - Any of the [universal error types][]. diff --git a/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/index.md b/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/index.md index 78387a1674..9c0afadd5e 100644 --- a/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/index.md +++ b/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/index.md @@ -4,9 +4,9 @@ parent: public-api-methods.html metadata: indexPage: true --- + # Path and Order Book Methods Paths define a way for payments to flow through intermediary steps on their way from sender to receiver. Paths enable cross-currency payments by connecting sender and receiver through order books. Use these methods to work with paths and other books. - {% child-pages /%} diff --git a/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_buy_offers.md b/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_buy_offers.md index ba241611a9..f19490eb3a 100644 --- a/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_buy_offers.md +++ b/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_buy_offers.md @@ -1,10 +1,12 @@ --- seo: - description: Get a list of all buy offers for a NFToken. + description: Get a list of all buy offers for a NFToken. labels: - - NFTs + - NFTs --- + # nft_buy_offers + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/NFTOffers.cpp "Source") The `nft_buy_offers` method returns a list of buy offers for a given [NFToken][] object. @@ -12,6 +14,7 @@ The `nft_buy_offers` method returns a list of buy offers for a given [NFToken][] {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} ## Request Format + An example of the request format: {% raw-partial file="/docs/_snippets/no-cli-syntax.md" /%} @@ -19,6 +22,7 @@ An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { "command": "nft_buy_offers", @@ -26,18 +30,23 @@ An example of the request format: "ledger_index": "validated" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { "method": "nft_buy_offers", - "params": [{ - "nft_id": "00090000D0B007439B080E9B05BF62403911301A7B1F0CFAA048C0A200000007", - "ledger_index": "validated" - }] + "params": [ + { + "nft_id": "00090000D0B007439B080E9B05BF62403911301A7B1F0CFAA048C0A200000007", + "ledger_index": "validated" + } + ] } ``` + {% /tab %} {% /tabs %} @@ -46,21 +55,22 @@ An example of the request format: The request includes the following parameters: -| Field | Type | Description | -|:---------------|:-----------------|:-----------------------------------------| -| `nft_id` | String | The unique identifier of a [NFToken][] object. | -| `ledger_hash` | String | _(Optional)_ The unique hash of the ledger version to use. (See [Specifying Ledgers][]) | -| `ledger_index` | String or Number | _(Optional)_ The [ledger index][] of the ledger to use, or a shortcut string to choose a ledger automatically. (See [Specifying Ledgers][]) | +| Field | Type | Description | +| :------------- | :--------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `nft_id` | String | The unique identifier of a [NFToken][] object. | +| `ledger_hash` | String | _(Optional)_ The unique hash of the ledger version to use. (See [Specifying Ledgers][]) | +| `ledger_index` | String or Number | _(Optional)_ The [ledger index][] of the ledger to use, or a shortcut string to choose a ledger automatically. (See [Specifying Ledgers][]) | | `limit` | Integer | _(Optional)_ Limit the number of NFT buy offers to retrieve. This value cannot be lower than 50 or more than 500. Positive values outside this range are replaced with the closest valid option. The default is 250. | -| `marker` | [Marker][] | _(Optional)_ Value from a previous paginated response. Resume retrieving data where that response left off. | - +| `marker` | [Marker][] | _(Optional)_ Value from a previous paginated response. Resume retrieving data where that response left off. | ## Response Format + An example of a successful response: {% tabs %} {% tab label="WebSocket" %} + ```json { "result": { @@ -78,9 +88,11 @@ An example of a successful response: "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { "result": { @@ -97,36 +109,37 @@ An example of a successful response: } } ``` + {% /tab %} {% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: -| `Field` | Type | Description | -|:---------|:-----------|:-----------------------------------------------------| -| `nft_id` | String | The NFToken these offers are for, as specified in the request. | -| `offers` | Array | A list of buy offers for the token. Each of these is formatted as a **Buy Offer** (see below). | -| `limit` | Number | _(May be omitted)_ The `limit`, as specified in the request. | +| `Field` | Type | Description | +| :------- | :--------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `nft_id` | String | The NFToken these offers are for, as specified in the request. | +| `offers` | Array | A list of buy offers for the token. Each of these is formatted as a **Buy Offer** (see below). | +| `limit` | Number | _(May be omitted)_ The `limit`, as specified in the request. | | `marker` | [Marker][] | _(May be omitted)_ Server-defined value indicating the response is paginated. Pass this to the next call to resume where this call left off. Omitted when there are no pages of information after this one. | ### Buy Offers Each member of the `offers` array represents one [NFTokenOffer object][] to buy the NFT in question and has the following fields: -| `Field` | Type | Description | -|:------------------|:-----------------|:--------------------------------------| +| `Field` | Type | Description | +| :---------------- | :--------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `amount` | String or Object | The amount offered to buy the NFT for, as a String representing an amount in drops of XRP, or an object representing an amount of a fungible token. (See [Specifying Currency Amounts][Currency Amount]) | -| `flags` | Number | A set of bit-flags for this offer. See [NFTokenOffer flags](../../../protocol/ledger-data/ledger-entry-types/nftokenoffer.md#nftokenoffer-flags) for possible values. | -| `nft_offer_index` | String | The [ledger object ID](../../../protocol/ledger-data/common-fields.md) of this offer. | -| `owner` | String | The account that placed this offer. | +| `flags` | Number | A set of bit-flags for this offer. See [NFTokenOffer flags](../../../protocol/ledger-data/ledger-entry-types/nftokenoffer.md#nftokenoffer-flags) for possible values. | +| `nft_offer_index` | String | The [ledger object ID](../../../protocol/ledger-data/common-fields.md) of this offer. | +| `owner` | String | The account that placed this offer. | ## Possible Errors -* Any of the [universal error types][]. -* `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. -* `actNotFound` - The [Address][] specified in the `account` field of the request does not correspond to an account in the ledger. -* `lgrNotFound` - The ledger specified by the `ledger_hash` or `ledger_index` does not exist, or it does exist but the server does not have it. -* `objectNotFound` - The NFT does not have any buy offers (note that _object_ refers to the buy offer rather than the NFT itself). +- Any of the [universal error types][]. +- `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. +- `actNotFound` - The [Address][] specified in the `account` field of the request does not correspond to an account in the ledger. +- `lgrNotFound` - The ledger specified by the `ledger_hash` or `ledger_index` does not exist, or it does exist but the server does not have it. +- `objectNotFound` - The NFT does not have any buy offers (note that _object_ refers to the buy offer rather than the NFT itself). {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_sell_offers.md b/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_sell_offers.md index bae010520b..056ee583fb 100644 --- a/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_sell_offers.md +++ b/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_sell_offers.md @@ -1,10 +1,12 @@ --- seo: - description: Get a list of all sell offers for a NFToken. + description: Get a list of all sell offers for a NFToken. labels: - - NFTs + - NFTs --- + # nft_sell_offers + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/NFTOffers.cpp "Source") The `nft_sell_offers` method returns a list of sell offers for a given [NFToken][] object. @@ -12,6 +14,7 @@ The `nft_sell_offers` method returns a list of sell offers for a given [NFToken] {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} ## Request Format + An example of the request format: {% raw-partial file="/docs/_snippets/no-cli-syntax.md" /%} @@ -19,6 +22,7 @@ An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { "command": "nft_sell_offers", @@ -26,19 +30,22 @@ An example of the request format: "ledger_index": "validated" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "nft_sell_offers", - "params": [ - { - "nft_id": "00090000D0B007439B080E9B05BF62403911301A7B1F0CFAA048C0A200000007" - } - ] + "method": "nft_sell_offers", + "params": [ + { + "nft_id": "00090000D0B007439B080E9B05BF62403911301A7B1F0CFAA048C0A200000007" + } + ] } ``` + {% /tab %} {% /tabs %} @@ -47,20 +54,22 @@ An example of the request format: The request includes the following parameters: -| Field | Type | Description | -|:---------------|:-----------------|:-----------------------------------------| -| `nft_id` | String | The unique identifier of a [NFToken][] object. | -| `ledger_hash` | String | _(Optional)_ The unique hash of the ledger version to use. (See [Specifying Ledgers][]) | -| `ledger_index` | String or Number | _(Optional)_ The [ledger index][] of the ledger to use, or a shortcut string to choose a ledger automatically. (See [Specifying Ledgers][]) | +| Field | Type | Description | +| :------------- | :--------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `nft_id` | String | The unique identifier of a [NFToken][] object. | +| `ledger_hash` | String | _(Optional)_ The unique hash of the ledger version to use. (See [Specifying Ledgers][]) | +| `ledger_index` | String or Number | _(Optional)_ The [ledger index][] of the ledger to use, or a shortcut string to choose a ledger automatically. (See [Specifying Ledgers][]) | | `limit` | Integer | _(Optional)_ Limit the number of NFT sell offers to retrieve. This value cannot be lower than 50 or more than 500. Positive values outside this range are replaced with the closest valid option. The default is 250. | -| `marker` | [Marker][] | _(Optional)_ Value from a previous paginated response. Resume retrieving data where that response left off. | +| `marker` | [Marker][] | _(Optional)_ Value from a previous paginated response. Resume retrieving data where that response left off. | ## Response Format + An example of a successful response: {% tabs %} {% tab label="WebSocket" %} + ```json { "result": { @@ -78,9 +87,11 @@ An example of a successful response: "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { "result": { @@ -97,37 +108,37 @@ An example of a successful response: } } ``` + {% /tab %} {% /tabs %} - The response follows the [standard format][], with a successful result containing the following fields: -| `Field` | Type | Description | -|:---------|:-----------|:-----------------------------------------------------| -| `nft_id` | String | The NFToken these offers are for, as specified in the request. | -| `offers` | Array | A list of buy offers for the token. Each of these is formatted as a **Sell Offer** (see below). | -| `limit` | Number | _(May be omitted)_ The `limit`, as specified in the request. | +| `Field` | Type | Description | +| :------- | :--------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `nft_id` | String | The NFToken these offers are for, as specified in the request. | +| `offers` | Array | A list of buy offers for the token. Each of these is formatted as a **Sell Offer** (see below). | +| `limit` | Number | _(May be omitted)_ The `limit`, as specified in the request. | | `marker` | [Marker][] | _(May be omitted)_ Server-defined value indicating the response is paginated. Pass this to the next call to resume where this call left off. Omitted when there are no pages of information after this one. | ### Sell Offers Each member of the `offers` array represents one [NFTokenOffer object][] to buy the NFT in question and has the following fields: -| `Field` | Type | Description | -|:------------------|:-----------------|:--------------------------------------| +| `Field` | Type | Description | +| :---------------- | :--------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `amount` | String or Object | The amount offered to sell the NFT for, as a String representing an amount in drops of XRP, or an object representing an amount of a fungible token. (See [Specifying Currency Amounts][Currency Amount]) | -| `flags` | Number | A set of bit-flags for this offer. See [NFTokenOffer flags](../../../protocol/ledger-data/ledger-entry-types/nftokenoffer.md#nftokenoffer-flags) for possible values. | -| `nft_offer_index` | String | The [ledger object ID](../../../protocol/ledger-data/common-fields.md) of this offer. | -| `owner` | String | The account that placed this offer. | +| `flags` | Number | A set of bit-flags for this offer. See [NFTokenOffer flags](../../../protocol/ledger-data/ledger-entry-types/nftokenoffer.md#nftokenoffer-flags) for possible values. | +| `nft_offer_index` | String | The [ledger object ID](../../../protocol/ledger-data/common-fields.md) of this offer. | +| `owner` | String | The account that placed this offer. | ## Possible Errors -* Any of the [universal error types][]. -* `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. -* `actNotFound` - The [Address][] specified in the `account` field of the request does not correspond to an account in the ledger. -* `lgrNotFound` - The ledger specified by the `ledger_hash` or `ledger_index` does not exist, or it does exist but the server does not have it. -* `objectNotFound` - The NFT does not have any sell offers (note that _object_ refers to the sell offer rather than the NFT itself). +- Any of the [universal error types][]. +- `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. +- `actNotFound` - The [Address][] specified in the `account` field of the request does not correspond to an account in the ledger. +- `lgrNotFound` - The ledger specified by the `ledger_hash` or `ledger_index` does not exist, or it does exist but the server does not have it. +- `objectNotFound` - The NFT does not have any sell offers (note that _object_ refers to the sell offer rather than the NFT itself). {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/path_find.md b/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/path_find.md index 7a3baabdf9..b7e85d0bb4 100644 --- a/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/path_find.md +++ b/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/path_find.md @@ -1,11 +1,13 @@ --- seo: - description: Find a path for a payment between two accounts and receive updates. + description: Find a path for a payment between two accounts and receive updates. labels: - - Cross-Currency - - Tokens + - Cross-Currency + - Tokens --- + # path_find + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/PathFind.cpp "Source") {% admonition type="warning" name="Caution" %} @@ -16,9 +18,9 @@ The `path_find` method searches for a [path](../../../../concepts/tokens/fungibl There are three different modes, or sub-commands, of the path_find command. Specify which one you want with the `subcommand` parameter: -* `create` - Start sending pathfinding information -* `close` - Stop sending pathfinding information -* `status` - Get the information of the currently-open pathfinding request +- `create` - Start sending pathfinding information +- `close` - Stop sending pathfinding information +- `status` - Get the information of the currently-open pathfinding request Although the `rippled` server tries to find the cheapest path or combination of paths for making a payment, it is not guaranteed that the paths returned by this method are, in fact, the best paths. Due to server load, pathfinding may not find the best results. Additionally, you should be careful with the pathfinding results from untrusted servers. A server could be modified to return less-than-optimal paths to earn money for its operators. If you do not have your own server that you can trust with pathfinding, you should compare the results of pathfinding from multiple servers run by different parties, to minimize the risk of a single server returning poor results. (**Note:** A server returning less-than-optimal results is not necessarily proof of malicious behavior; it could also be a symptom of heavy server load.) @@ -29,25 +31,28 @@ The `create` sub-command of `path_find` creates an ongoing request to find possi A client can only have one pathfinding request open at a time. If another pathfinding request is already open on the same connection, the old request is automatically closed and replaced with the new request. ### Request Format + An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": 8, - "command": "path_find", - "subcommand": "create", - "source_account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "destination_account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "destination_amount": { - "value": "0.001", - "currency": "USD", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - } + "id": 8, + "command": "path_find", + "subcommand": "create", + "source_account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "destination_account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "destination_amount": { + "value": "0.001", + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" + } } ``` + {% /tab %} {% /tabs %} @@ -56,15 +61,15 @@ An example of the request format: The request includes the following parameters: -| Field | Type | Required? | Description | -|:----------------------|:---------------------|:----------|:------------| -| `subcommand` | String | Yes | Use `"create"` to send the create sub-command | -| `source_account` | String - [Address][] | Yes | The account to find a path from. (In other words, the account that would be sending a payment.) | -| `destination_account` | String - [Address][] | Yes | The account to find a path to. (In other words, the account that would receive a payment.) | +| Field | Type | Required? | Description | +| :-------------------- | :------------------- | :-------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `subcommand` | String | Yes | Use `"create"` to send the create sub-command | +| `source_account` | String - [Address][] | Yes | The account to find a path from. (In other words, the account that would be sending a payment.) | +| `destination_account` | String - [Address][] | Yes | The account to find a path to. (In other words, the account that would receive a payment.) | | `destination_amount` | [Currency Amount][] | Yes | How much the destination account would receive. **Special case:** You can specify `"-1"` (for XRP) or provide -1 as the contents of the `value` field (for tokens). This requests a path to deliver as much as possible, while spending no more than the amount specified in `send_max` (if provided). | -| `domain` | String - [Hash][] | No | The ledger entry ID of a permissioned domain. If provided, only return paths that use the corresponding [permissioned DEX](../../../../concepts/tokens/decentralized-exchange/permissioned-dexes.md). {% amendment-disclaimer name="PermissionedDEX" /%} | -| `paths` | Array | No | Array of arrays of objects, representing [payment paths](../../../../concepts/tokens/fungible-tokens/paths.md) to check. You can use this to keep updated on changes to particular paths you already know about, or to check the overall cost to make a payment along a certain path. | -| `send_max` | [Currency Amount][] | No | Maximum amount that would be spent. Not compatible with `source_currencies`. | +| `domain` | String - [Hash][] | No | The ledger entry ID of a permissioned domain. If provided, only return paths that use the corresponding [permissioned DEX](../../../../concepts/tokens/decentralized-exchange/permissioned-dexes.md). {% amendment-disclaimer name="PermissionedDEX" /%} | +| `paths` | Array | No | Array of arrays of objects, representing [payment paths](../../../../concepts/tokens/fungible-tokens/paths.md) to check. You can use this to keep updated on changes to particular paths you already know about, or to check the overall cost to make a payment along a certain path. | +| `send_max` | [Currency Amount][] | No | Maximum amount that would be spent. Not compatible with `source_currencies`. | The server also recognizes the following fields, but the results of using them are not guaranteed: `source_currencies`, `bridges`. These fields should be considered reserved for future use. @@ -82,27 +87,27 @@ An example of a successful response: The initial response follows the [standard format](../../api-conventions/response-formatting.md), with a successful result containing the following fields: -| Field | Type | Description | -|:----------------------|:---------------------|:----------------------------------| -| `alternatives` | Array | Array of objects with suggested [paths](../../../../concepts/tokens/fungible-tokens/paths.md) to take, as described below. If empty, then no paths were found connecting the source and destination accounts. | -| `destination_account` | String - [Address][] | The account that would receive a transaction. | -| `destination_amount` | [Currency Amount][] | How much the destination would receive in a transaction. | -| `source_account` | String - [Address][] | The account that would send a transaction. | +| Field | Type | Description | +| :-------------------- | :------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `alternatives` | Array | Array of objects with suggested [paths](../../../../concepts/tokens/fungible-tokens/paths.md) to take, as described below. If empty, then no paths were found connecting the source and destination accounts. | +| `destination_account` | String - [Address][] | The account that would receive a transaction. | +| `destination_amount` | [Currency Amount][] | How much the destination would receive in a transaction. | +| `source_account` | String - [Address][] | The account that would send a transaction. | | `full_reply` | Boolean | If `false`, this is the result of an incomplete search. A later reply may have a better path. If `true`, then this is the best path found. (It is still theoretically possible that a better path could exist, but `rippled` won't find it.) Until you close the pathfinding request, `rippled` continues to send updates each time a new ledger closes. | Each element in the `alternatives` array is an object that represents a path from one possible source currency (held by the initiating account) to the destination account and currency. This object has the following fields: -| Field | Type | Description | -|:---------------------|:--------------------|:---------------------------------------| -| `paths_computed` | Array | Array of arrays of objects defining [payment paths](../../../../concepts/tokens/fungible-tokens/paths.md) | -| `source_amount` | [Currency Amount][] | How much the source would have to send along this path for the destination to receive the desired amount. | +| Field | Type | Description | +| :------------------- | :------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `paths_computed` | Array | Array of arrays of objects defining [payment paths](../../../../concepts/tokens/fungible-tokens/paths.md) | +| `source_amount` | [Currency Amount][] | How much the source would have to send along this path for the destination to receive the desired amount. | | `destination_amount` | [Currency Amount][] | _(May be omitted)_ How much the destination would receive along this path. Only included if the `destination_amount` from the request was the "-1" special case. | ### Possible Errors -* Any of the [universal error types][]. -* `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. -* `noEvents` - You are using a protocol that does not support asynchronous callbacks, for example JSON-RPC. (See the [ripple_path_find method][] for a pathfinding method that _is_ compatible with JSON-RPC.) +- Any of the [universal error types][]. +- `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. +- `noEvents` - You are using a protocol that does not support asynchronous callbacks, for example JSON-RPC. (See the [ripple_path_find method][] for a pathfinding method that _is_ compatible with JSON-RPC.) ### Asynchronous Follow-ups @@ -125,11 +130,13 @@ Here is an example of an asynchronous follow-up from a path_find create request: The `close` sub-command of `path_find` instructs the server to stop sending information about the current open pathfinding request. ### Request Format + An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 57, @@ -137,43 +144,46 @@ An example of the request format: "subcommand": "close" } ``` + {% /tab %} {% /tabs %} The request includes the following parameters: -| Field | Type | Description | -|:-------------|:-------|:-------------------------------------------| +| Field | Type | Description | +| :----------- | :----- | :------------------------------------------ | | `subcommand` | String | Use `"close"` to send the close sub-command | ### Response Format If a pathfinding request was successfully closed, the response follows the same format as the initial response to [`path_find create`](#path_find-create), plus the following field: -| Field | Type | Description | -|:---------|:--------|:--------------------------------------------------------| +| Field | Type | Description | +| :------- | :------ | :----------------------------------------------------------------------------------- | | `closed` | Boolean | The value `true` indicates this reply is in response to a `path_find close` command. | If there was no outstanding pathfinding request, an error is returned instead. ### Possible Errors -* Any of the [universal error types][]. -* `invalidParams` - If any fields are specified incorrectly, or any required fields are missing. -* `noEvents` - If you tried to use this method on a protocol that does not support asynchronous callbacks, for example JSON-RPC. (See the [ripple_path_find method][] for a pathfinding method that _is_ compatible with JSON-RPC.) -* `noPathRequest` - You tried to close a pathfinding request when there is not an open one. +- Any of the [universal error types][]. +- `invalidParams` - If any fields are specified incorrectly, or any required fields are missing. +- `noEvents` - If you tried to use this method on a protocol that does not support asynchronous callbacks, for example JSON-RPC. (See the [ripple_path_find method][] for a pathfinding method that _is_ compatible with JSON-RPC.) +- `noPathRequest` - You tried to close a pathfinding request when there is not an open one. ## path_find status The `status` sub-command of `path_find` requests an immediate update about the client's currently-open pathfinding request. ### Request Format + An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 58, @@ -181,31 +191,32 @@ An example of the request format: "subcommand": "status" } ``` + {% /tab %} {% /tabs %} The request includes the following parameters: -| Field | Type | Description | -|:-------------|:-------|:---------------------------------------------| +| Field | Type | Description | +| :----------- | :----- | :-------------------------------------------- | | `subcommand` | String | Use `"status"` to send the status sub-command | ### Response Format If a pathfinding request is open, the response follows the same format as the initial response to [`path_find create`](#path_find-create), plus the following field: -| Field | Type | Description | -|:---------|:--------|:--------------------------------------------------------| +| Field | Type | Description | +| :------- | :------ | :------------------------------------------------------------------------------------ | | `status` | Boolean | The value `true` indicates this reply is in response to a `path_find status` command. | If there was no outstanding pathfinding request, an error is returned instead. ### Possible Errors -* Any of the [universal error types][]. -* `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. -* `noEvents` - You are using a protocol that does not support asynchronous callbacks, for example JSON-RPC. (See the [ripple_path_find method][] for a pathfinding method that _is_ compatible with JSON-RPC.) -* `noPathRequest` - You tried to check the status of a pathfinding request when there is not an open one. +- Any of the [universal error types][]. +- `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. +- `noEvents` - You are using a protocol that does not support asynchronous callbacks, for example JSON-RPC. (See the [ripple_path_find method][] for a pathfinding method that _is_ compatible with JSON-RPC.) +- `noPathRequest` - You tried to check the status of a pathfinding request when there is not an open one. {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/ripple_path_find.md b/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/ripple_path_find.md index df709995c6..90f3fc8605 100644 --- a/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/ripple_path_find.md +++ b/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/ripple_path_find.md @@ -1,11 +1,13 @@ --- seo: - description: Find a path for payment between two accounts, once. + description: Find a path for payment between two accounts, once. labels: - - Cross-Currency - - Tokens + - Cross-Currency + - Tokens --- + # ripple_path_find + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/RipplePathFind.cpp "Source") The `ripple_path_find` method is a simplified version of the [path_find method][] that provides a single response with a [payment path](../../../../concepts/tokens/fungible-tokens/paths.md) you can use right away. It is available in both the WebSocket and JSON-RPC APIs. However, the results tend to become outdated as time passes. Instead of making multiple calls to stay updated, you should instead use the [path_find method][] to subscribe to continued updates where possible. @@ -15,66 +17,73 @@ Although the `rippled` server tries to find the cheapest path or combination of {% admonition type="warning" name="Caution" %}Be careful with the pathfinding results from untrusted servers. A server could be modified to return less-than-optimal paths to earn money for its operators. A server may also return poor results when under heavy load. If you do not have your own server that you can trust with pathfinding, you should compare the results of pathfinding from multiple servers run by different parties, to minimize the risk of a single server returning poor results.{% /admonition %} ## Request Format + An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": 8, - "command": "ripple_path_find", - "source_account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "source_currencies": [ - { - "currency": "XRP" - }, - { - "currency": "USD" - } - ], - "destination_account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "destination_amount": { - "value": "0.001", - "currency": "USD", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" + "id": 8, + "command": "ripple_path_find", + "source_account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "source_currencies": [ + { + "currency": "XRP" + }, + { + "currency": "USD" } + ], + "destination_account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "destination_amount": { + "value": "0.001", + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" + } } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "ripple_path_find", - "params": [ + "method": "ripple_path_find", + "params": [ + { + "destination_account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "destination_amount": { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "0.001" + }, + "source_account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "source_currencies": [ { - "destination_account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "destination_amount": { - "currency": "USD", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "0.001" - }, - "source_account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "source_currencies": [ - { - "currency": "XRP" - }, - { - "currency": "USD" - } - ] + "currency": "XRP" + }, + { + "currency": "USD" } - ] + ] + } + ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh #Syntax ripple_path_find json ledger_index|ledger_hash rippled ripple_path_find '{"source_account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", "source_currencies": [ { "currency": "XRP" }, { "currency": "USD" } ], "destination_account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", "destination_amount": { "value": "0.001", "currency": "USD", "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" } }' ``` + {% /tab %} {% /tabs %} @@ -83,15 +92,15 @@ rippled ripple_path_find '{"source_account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 The request includes the following parameters: -| Field | Type | Required? | Description | -|:----------------------|:---------------------|:----------|:------------| -| `source_account` | String - [Address][] | Yes | The account that would send funds | -| `destination_account` | String - [Address][] | Yes | The account that would receive funds | -| `destination_amount` | [Currency Amount][] | Yes | How much the destination account would receive. **Special case:** You can specify `"-1"` (for XRP) or provide -1 as the contents of the `value` field (for tokens). This requests a path to deliver as much as possible, while spending no more than the amount specified in `send_max` (if provided). | -| `domain` | String - [Hash][] | No | The ledger entry ID of a permissioned domain. If provided, only return paths that use the corresponding [permissioned DEX](../../../../concepts/tokens/decentralized-exchange/permissioned-dexes.md). {% amendment-disclaimer name="PermissionedDEX" /%} | -| `ledger_hash` | String - [Hash][] | No | The unique hash of the ledger version to use. (See [Specifying Ledgers][]) | -| `ledger_index` | [Ledger Index][] | No | The ledger index of the ledger to use, or a shortcut string to choose a ledger automatically. (See [Specifying Ledgers][]) | -| `send_max` | [Currency Amount][] | No | Maximum amount that would be spent. Cannot be used with `source_currencies`. | +| Field | Type | Required? | Description | +| :-------------------- | :------------------- | :-------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `source_account` | String - [Address][] | Yes | The account that would send funds | +| `destination_account` | String - [Address][] | Yes | The account that would receive funds | +| `destination_amount` | [Currency Amount][] | Yes | How much the destination account would receive. **Special case:** You can specify `"-1"` (for XRP) or provide -1 as the contents of the `value` field (for tokens). This requests a path to deliver as much as possible, while spending no more than the amount specified in `send_max` (if provided). | +| `domain` | String - [Hash][] | No | The ledger entry ID of a permissioned domain. If provided, only return paths that use the corresponding [permissioned DEX](../../../../concepts/tokens/decentralized-exchange/permissioned-dexes.md). {% amendment-disclaimer name="PermissionedDEX" /%} | +| `ledger_hash` | String - [Hash][] | No | The unique hash of the ledger version to use. (See [Specifying Ledgers][]) | +| `ledger_index` | [Ledger Index][] | No | The ledger index of the ledger to use, or a shortcut string to choose a ledger automatically. (See [Specifying Ledgers][]) | +| `send_max` | [Currency Amount][] | No | Maximum amount that would be spent. Cannot be used with `source_currencies`. | | `source_currencies` | Array | No | Array of currencies that the source account might want to spend. Each entry in the array should be a JSON object with a mandatory `currency` field and optional `issuer` field, like how [currency amounts][Currency Amount] are specified. Cannot contain more than **18** source currencies. By default, uses all source currencies available up to a maximum of **88** different currency/issuer pairs. | ## Response Format @@ -101,115 +110,108 @@ An example of a successful response: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": 8, - "status": "success", - "type": "response", - "result": { - "alternatives": [ + "id": 8, + "status": "success", + "type": "response", + "result": { + "alternatives": [ + { + "paths_canonical": [], + "paths_computed": [ + [ { - "paths_canonical": [], - "paths_computed": [ - [ - { - "currency": "USD", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type": 48, - "type_hex": "0000000000000030" - }, - { - "account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type": 1, - "type_hex": "0000000000000001" - } - ], - [ - { - "currency": "USD", - "issuer": "rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1", - "type": 48, - "type_hex": "0000000000000030" - }, - { - "account": "rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1", - "type": 1, - "type_hex": "0000000000000001" - }, - { - "account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type": 1, - "type_hex": "0000000000000001" - } - ], - [ - { - "currency": "USD", - "issuer": "rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1", - "type": 48, - "type_hex": "0000000000000030" - }, - { - "account": "rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1", - "type": 1, - "type_hex": "0000000000000001" - }, - { - "account": "rLpq4LgabRfm1xEX5dpWfJovYBH6g7z99q", - "type": 1, - "type_hex": "0000000000000001" - }, - { - "account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type": 1, - "type_hex": "0000000000000001" - } - ], - [ - { - "currency": "USD", - "issuer": "rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1", - "type": 48, - "type_hex": "0000000000000030" - }, - { - "account": "rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1", - "type": 1, - "type_hex": "0000000000000001" - }, - { - "account": "rPuBoajMjFoDjweJBrtZEBwUMkyruxpwwV", - "type": 1, - "type_hex": "0000000000000001" - }, - { - "account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type": 1, - "type_hex": "0000000000000001" - } - ] - ], - "source_amount": "256987" + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type": 48, + "type_hex": "0000000000000030" + }, + { + "account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type": 1, + "type_hex": "0000000000000001" } + ], + [ + { + "currency": "USD", + "issuer": "rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1", + "type": 48, + "type_hex": "0000000000000030" + }, + { + "account": "rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1", + "type": 1, + "type_hex": "0000000000000001" + }, + { + "account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type": 1, + "type_hex": "0000000000000001" + } + ], + [ + { + "currency": "USD", + "issuer": "rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1", + "type": 48, + "type_hex": "0000000000000030" + }, + { + "account": "rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1", + "type": 1, + "type_hex": "0000000000000001" + }, + { + "account": "rLpq4LgabRfm1xEX5dpWfJovYBH6g7z99q", + "type": 1, + "type_hex": "0000000000000001" + }, + { + "account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type": 1, + "type_hex": "0000000000000001" + } + ], + [ + { + "currency": "USD", + "issuer": "rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1", + "type": 48, + "type_hex": "0000000000000030" + }, + { + "account": "rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1", + "type": 1, + "type_hex": "0000000000000001" + }, + { + "account": "rPuBoajMjFoDjweJBrtZEBwUMkyruxpwwV", + "type": 1, + "type_hex": "0000000000000001" + }, + { + "account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type": 1, + "type_hex": "0000000000000001" + } + ] ], - "destination_account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "destination_currencies": [ - "015841551A748AD2C1F76FF6ECB0CCCD00000000", - "JOE", - "DYM", - "EUR", - "CNY", - "MXN", - "BTC", - "USD", - "XRP" - ] - } + "source_amount": "256987" + } + ], + "destination_account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "destination_currencies": ["015841551A748AD2C1F76FF6ECB0CCCD00000000", "JOE", "DYM", "EUR", "CNY", "MXN", "BTC", "USD", "XRP"] + } } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -316,140 +318,133 @@ An example of a successful response: } } ``` + {% /tab %} {% tab label="Commandline" %} + ```json { - "result" : { - "alternatives" : [ - { - "paths_canonical" : [], - "paths_computed" : [ - [ - { - "currency" : "USD", - "issuer" : "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type" : 48, - "type_hex" : "0000000000000030" - } - ] - ], - "source_amount" : "5212" - }, - { - "paths_canonical" : [], - "paths_computed" : [ - [ - { - "account" : "r9vbV3EHvXWjSkeQ6CAcYVPGeq7TuiXY2X", - "type" : 1, - "type_hex" : "0000000000000001" - }, - { - "account" : "rnx1RNE5cJbYzMsJbF3XzyQMxZNBPqdCVd", - "type" : 1, - "type_hex" : "0000000000000001" - } - ], - [ - { - "account" : "r9vbV3EHvXWjSkeQ6CAcYVPGeq7TuiXY2X", - "type" : 1, - "type_hex" : "0000000000000001" - }, - { - "account" : "ragizZ31TmpachYAuG3n56XCb1R5vc3cTQ", - "type" : 1, - "type_hex" : "0000000000000001" - } - ], - [ - { - "account" : "r9vbV3EHvXWjSkeQ6CAcYVPGeq7TuiXY2X", - "type" : 1, - "type_hex" : "0000000000000001" - }, - { - "account" : "r9JS9fLbtLzgBCdFCnS3LpVPUBJAmg7PnM", - "type" : 1, - "type_hex" : "0000000000000001" - } - ], - [ - { - "account" : "r9vbV3EHvXWjSkeQ6CAcYVPGeq7TuiXY2X", - "type" : 1, - "type_hex" : "0000000000000001" - }, - { - "account" : "rDc9zKqfxm43S9LwpNkwV9KgW6PKUPrT5u", - "type" : 1, - "type_hex" : "0000000000000001" - } - ] - ], - "source_amount" : { - "currency" : "USD", - "issuer" : "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value" : "0.001002" + "result": { + "alternatives": [ + { + "paths_canonical": [], + "paths_computed": [ + [ + { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type": 48, + "type_hex": "0000000000000030" } - } - ], - "destination_account" : "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "destination_amount" : { - "currency" : "USD", - "issuer" : "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value" : "0.001" + ] + ], + "source_amount": "5212" }, - "destination_currencies" : [ - "USD", - "015841551A748AD2C1F76FF6ECB0CCCD00000000", - "BTC", - "DYM", - "CNY", - "EUR", - "JOE", - "MXN", - "XRP" - ], - "full_reply" : true, - "source_account" : "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "status" : "success" - } + { + "paths_canonical": [], + "paths_computed": [ + [ + { + "account": "r9vbV3EHvXWjSkeQ6CAcYVPGeq7TuiXY2X", + "type": 1, + "type_hex": "0000000000000001" + }, + { + "account": "rnx1RNE5cJbYzMsJbF3XzyQMxZNBPqdCVd", + "type": 1, + "type_hex": "0000000000000001" + } + ], + [ + { + "account": "r9vbV3EHvXWjSkeQ6CAcYVPGeq7TuiXY2X", + "type": 1, + "type_hex": "0000000000000001" + }, + { + "account": "ragizZ31TmpachYAuG3n56XCb1R5vc3cTQ", + "type": 1, + "type_hex": "0000000000000001" + } + ], + [ + { + "account": "r9vbV3EHvXWjSkeQ6CAcYVPGeq7TuiXY2X", + "type": 1, + "type_hex": "0000000000000001" + }, + { + "account": "r9JS9fLbtLzgBCdFCnS3LpVPUBJAmg7PnM", + "type": 1, + "type_hex": "0000000000000001" + } + ], + [ + { + "account": "r9vbV3EHvXWjSkeQ6CAcYVPGeq7TuiXY2X", + "type": 1, + "type_hex": "0000000000000001" + }, + { + "account": "rDc9zKqfxm43S9LwpNkwV9KgW6PKUPrT5u", + "type": 1, + "type_hex": "0000000000000001" + } + ] + ], + "source_amount": { + "currency": "USD", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "0.001002" + } + } + ], + "destination_account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "destination_amount": { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "0.001" + }, + "destination_currencies": ["USD", "015841551A748AD2C1F76FF6ECB0CCCD00000000", "BTC", "DYM", "CNY", "EUR", "JOE", "MXN", "XRP"], + "full_reply": true, + "source_account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "status": "success" + } } ``` + {% /tab %} {% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: -| `Field` | Type | Description | -|:-------------------------|:-------|:-----------------------------------------| -| `alternatives` | Array | Array of objects with possible paths to take, as described below. If empty, then there are no paths connecting the source and destination accounts. | -| `destination_account` | String | Unique address of the account that would receive a payment transaction | +| `Field` | Type | Description | +| :----------------------- | :----- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `alternatives` | Array | Array of objects with possible paths to take, as described below. If empty, then there are no paths connecting the source and destination accounts. | +| `destination_account` | String | Unique address of the account that would receive a payment transaction | | `destination_currencies` | Array | Array of strings representing the currencies that the destination accepts, as 3-letter codes like `"USD"` or as 40-character hex like `"015841551A748AD2C1F76FF6ECB0CCCD00000000"` | Each element in the `alternatives` array is an object that represents a path from one possible source currency (held by the initiating account) to the destination account and currency. This object has the following fields: -| `Field` | Type | Description | -|:-----------------|:-----------------|:---------------------------------------| -| `paths_computed` | Array | Array of arrays of objects defining [payment paths](../../../../concepts/tokens/fungible-tokens/paths.md) | +| `Field` | Type | Description | +| :--------------- | :--------------- | :----------------------------------------------------------------------------------------------------------------------- | +| `paths_computed` | Array | Array of arrays of objects defining [payment paths](../../../../concepts/tokens/fungible-tokens/paths.md) | | `source_amount` | String or Object | [Currency Amount][] that the source would have to send along this path for the destination to receive the desired amount | The following fields are deprecated, and may be omitted: `paths_canonical`, and `paths_expanded`. If they appear, you should disregard them. ## Possible Errors -* Any of the [universal error types][]. -* `tooBusy` - The server is under too much load to calculate paths. Not returned if you are connected as an admin. -* `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. -* `srcActMissing` - The `source_account` field is omitted from the request. -* `srcActMalformed` - The `source_account` field in the request is not formatted properly. -* `dstActMissing` - The `destination_account` field is omitted from the request. -* `dstActMalformed` - The `destination_account` field in the request is not formatted properly. -* `srcCurMalformed` - The `source_currencies` field is not formatted properly. -* `srcIsrMalformed` - The `issuer` field of one or more of the currency objects in the request is not valid. +- Any of the [universal error types][]. +- `tooBusy` - The server is under too much load to calculate paths. Not returned if you are connected as an admin. +- `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. +- `srcActMissing` - The `source_account` field is omitted from the request. +- `srcActMalformed` - The `source_account` field in the request is not formatted properly. +- `dstActMissing` - The `destination_account` field is omitted from the request. +- `dstActMalformed` - The `destination_account` field in the request is not formatted properly. +- `srcCurMalformed` - The `source_currencies` field is not formatted properly. +- `srcIsrMalformed` - The `issuer` field of one or more of the currency objects in the request is not valid. {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_authorize.md b/docs/references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_authorize.md index 99d9d5d678..f4a7fd8e02 100644 --- a/docs/references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_authorize.md +++ b/docs/references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_authorize.md @@ -1,10 +1,12 @@ --- seo: - description: Sign a claim for money from a payment channel. + description: Sign a claim for money from a payment channel. labels: - - Payment Channels + - Payment Channels --- + # channel_authorize + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/PayChanClaim.cpp "Source") The `channel_authorize` method creates a signature that can be used to redeem a specific amount of XRP from a payment channel. @@ -14,24 +16,28 @@ The `channel_authorize` method creates a signature that can be used to redeem a {% amendment-disclaimer name="PayChan" /%} ## Request Format + An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": "channel_authorize_example_id1", - "command": "channel_authorize", - "channel_id": "5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3", - "seed": "s████████████████████████████", - "key_type": "secp256k1", - "amount": "1000000", + "id": "channel_authorize_example_id1", + "command": "channel_authorize", + "channel_id": "5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3", + "seed": "s████████████████████████████", + "key_type": "secp256k1", + "amount": "1000000" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json POST http://localhost:5005/ Content-Type: application/json @@ -46,28 +52,31 @@ Content-Type: application/json }] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh #Syntax: channel_authorize [] rippled channel_authorize s████████████████████████████ secp256k1 5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3 1000000 ``` + {% /tab %} {% /tabs %} The request includes the following parameters: -| Field | Type | Description | -|-------|------|-------------| -| `channel_id` | String | The unique ID of the payment channel to use. -| `secret` | String | _(Optional)_ The secret key to use to sign the claim. This must be the same key pair as the public key specified in the channel. Cannot be used with `seed`, `seed_hex`, or `passphrase`. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.4.0" %}Updated in: rippled 1.4.0{% /badge %} | -| `seed` | String | _(Optional)_ The secret seed to use to sign the claim. This must be the same key pair as the public key specified in the channel. Must be in the XRP Ledger's [base58][] format. If provided, you must also specify the `key_type`. Cannot be used with `secret`, `seed_hex`, or `passphrase`. | -| `seed_hex` | String | _(Optional)_ The secret seed to use to sign the claim. This must be the same key pair as the public key specified in the channel. Must be in hexadecimal format. If provided, you must also specify the `key_type`. Cannot be used with `secret`, `seed`, or `passphrase`. | -| `passphrase` | String | _(Optional)_ A string passphrase to use to sign the claim. This must be the same key pair as the public key specified in the channel. The [key derived from this passphrase](../../../../concepts/accounts/cryptographic-keys.md#key-derivation) must match the public key specified in the channel. If provided, you must also specify the `key_type`. Cannot be used with `secret`, `seed`, or `seed_hex`. | -| `key_type` | String | _(Optional)_ The [signing algorithm](../../../../concepts/accounts/cryptographic-keys.md#signing-algorithms) of the cryptographic key pair provided. Valid types are `secp256k1` or `ed25519`. The default is `secp256k1`. | -| `amount` | String | Cumulative amount of XRP, in drops, to authorize. If the destination has already received a lesser amount from this channel, the signature created by this method can be redeemed for the difference. | +| Field | Type | Description | +| ------------ | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `channel_id` | String | The unique ID of the payment channel to use. | +| `secret` | String | _(Optional)_ The secret key to use to sign the claim. This must be the same key pair as the public key specified in the channel. Cannot be used with `seed`, `seed_hex`, or `passphrase`. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.4.0" %}Updated in: rippled 1.4.0{% /badge %} | +| `seed` | String | _(Optional)_ The secret seed to use to sign the claim. This must be the same key pair as the public key specified in the channel. Must be in the XRP Ledger's [base58][] format. If provided, you must also specify the `key_type`. Cannot be used with `secret`, `seed_hex`, or `passphrase`. | +| `seed_hex` | String | _(Optional)_ The secret seed to use to sign the claim. This must be the same key pair as the public key specified in the channel. Must be in hexadecimal format. If provided, you must also specify the `key_type`. Cannot be used with `secret`, `seed`, or `passphrase`. | +| `passphrase` | String | _(Optional)_ A string passphrase to use to sign the claim. This must be the same key pair as the public key specified in the channel. The [key derived from this passphrase](../../../../concepts/accounts/cryptographic-keys.md#key-derivation) must match the public key specified in the channel. If provided, you must also specify the `key_type`. Cannot be used with `secret`, `seed`, or `seed_hex`. | +| `key_type` | String | _(Optional)_ The [signing algorithm](../../../../concepts/accounts/cryptographic-keys.md#signing-algorithms) of the cryptographic key pair provided. Valid types are `secp256k1` or `ed25519`. The default is `secp256k1`. | +| `amount` | String | Cumulative amount of XRP, in drops, to authorize. If the destination has already received a lesser amount from this channel, the signature created by this method can be redeemed for the difference. | The request **must** specify exactly one of `secret`, `seed`, `seed_hex`, or `passphrase`. @@ -80,6 +89,7 @@ An example of a successful response: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": "channel_authorize_example_id1", @@ -89,9 +99,11 @@ An example of a successful response: } } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -102,33 +114,36 @@ An example of a successful response: } } ``` + {% /tab %} {% tab label="Commandline" %} + ```json { - "result": { - "signature": "304402204EF0AFB78AC23ED1C472E74F4299C0C21F1B21D07EFC0A3838A420F76D783A400220154FB11B6F54320666E4C36CA7F686C16A3A0456800BBC43746F34AF50290064", - "status": "success" - } + "result": { + "signature": "304402204EF0AFB78AC23ED1C472E74F4299C0C21F1B21D07EFC0A3838A420F76D783A400220154FB11B6F54320666E4C36CA7F686C16A3A0456800BBC43746F34AF50290064", + "status": "success" + } } ``` + {% /tab %} {% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: -| Field | Type | Description | -|-------|------|-------------| +| Field | Type | Description | +| ----------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `signature` | String | The signature for this claim, as a hexadecimal value. To process the claim, the destination account of the payment channel must send a [PaymentChannelClaim transaction][] with this signature, the exact Channel ID, amount, and public key of the channel. | ## Possible Errors -* Any of the [universal error types][]. -* `badKeyType` - The `key_type` parameter in the request is not a valid key type. (Valid types are `secp256k1` or `ed25519`.) -* `badSeed` - The `secret` in the request is not a valid secret key. -* `channelAmtMalformed` - The `amount` in the request is not a valid amount. -* `channelMalformed` - The `channel_id` in the request is not a valid Channel ID. The Channel ID should be a 256-bit (64-character) hexadecimal string. +- Any of the [universal error types][]. +- `badKeyType` - The `key_type` parameter in the request is not a valid key type. (Valid types are `secp256k1` or `ed25519`.) +- `badSeed` - The `secret` in the request is not a valid secret key. +- `channelAmtMalformed` - The `amount` in the request is not a valid amount. +- `channelMalformed` - The `channel_id` in the request is not a valid Channel ID. The Channel ID should be a 256-bit (64-character) hexadecimal string. {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_verify.md b/docs/references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_verify.md index 0393aaae36..1125b233e1 100644 --- a/docs/references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_verify.md +++ b/docs/references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_verify.md @@ -1,10 +1,12 @@ --- seo: - description: Check a payment channel claim's signature. + description: Check a payment channel claim's signature. labels: - - Payment Channels + - Payment Channels --- + # channel_verify + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/PayChanClaim.cpp "Source") The `channel_verify` method checks the validity of a signature that can be used to redeem a specific amount of XRP from a payment channel. @@ -12,54 +14,63 @@ The `channel_verify` method checks the validity of a signature that can be used {% amendment-disclaimer name="PayChan" /%} ## Request Format + An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": 1, - "command": "channel_verify", - "channel_id": "5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3", - "signature": "304402204EF0AFB78AC23ED1C472E74F4299C0C21F1B21D07EFC0A3838A420F76D783A400220154FB11B6F54320666E4C36CA7F686C16A3A0456800BBC43746F34AF50290064", - "public_key": "aB44YfzW24VDEJQ2UuLPV2PvqcPCSoLnL7y5M1EzhdW4LnK5xMS3", - "amount": "1000000" + "id": 1, + "command": "channel_verify", + "channel_id": "5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3", + "signature": "304402204EF0AFB78AC23ED1C472E74F4299C0C21F1B21D07EFC0A3838A420F76D783A400220154FB11B6F54320666E4C36CA7F686C16A3A0456800BBC43746F34AF50290064", + "public_key": "aB44YfzW24VDEJQ2UuLPV2PvqcPCSoLnL7y5M1EzhdW4LnK5xMS3", + "amount": "1000000" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "channel_verify", - "params": [{ - "channel_id": "5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3", - "signature": "304402204EF0AFB78AC23ED1C472E74F4299C0C21F1B21D07EFC0A3838A420F76D783A400220154FB11B6F54320666E4C36CA7F686C16A3A0456800BBC43746F34AF50290064", - "public_key": "aB44YfzW24VDEJQ2UuLPV2PvqcPCSoLnL7y5M1EzhdW4LnK5xMS3", - "amount": "1000000" - }] + "method": "channel_verify", + "params": [ + { + "channel_id": "5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3", + "signature": "304402204EF0AFB78AC23ED1C472E74F4299C0C21F1B21D07EFC0A3838A420F76D783A400220154FB11B6F54320666E4C36CA7F686C16A3A0456800BBC43746F34AF50290064", + "public_key": "aB44YfzW24VDEJQ2UuLPV2PvqcPCSoLnL7y5M1EzhdW4LnK5xMS3", + "amount": "1000000" + } + ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh #Syntax: channel_verify rippled channel_verify aB44YfzW24VDEJQ2UuLPV2PvqcPCSoLnL7y5M1EzhdW4LnK5xMS3 5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3 1000000 304402204EF0AFB78AC23ED1C472E74F4299C0C21F1B21D07EFC0A3838A420F76D783A400220154FB11B6F54320666E4C36CA7F686C16A3A0456800BBC43746F34AF50290064 ``` + {% /tab %} {% /tabs %} The request includes the following parameters: -| Field | Type | Description | -|-------|------|-------------| -| `amount` | String | The amount of [XRP, in drops][], that the provided `signature` authorizes. | -| `channel_id` | String | The Channel ID of the channel that provides the amount. This is a 64-character hexadecimal string. | +| Field | Type | Description | +| ------------ | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `amount` | String | The amount of [XRP, in drops][], that the provided `signature` authorizes. | +| `channel_id` | String | The Channel ID of the channel that provides the amount. This is a 64-character hexadecimal string. | | `public_key` | String | The public key of the channel and the key pair that was used to create the signature, in hexadecimal or the XRP Ledger's [base58][] format. {% badge href="https://github.com/XRPLF/rippled/releases/tag/0.90.0" %}Updated in: rippled 0.90.0{% /badge %} | -| `signature` | String | The signature to verify, in hexadecimal. | +| `signature` | String | The signature to verify, in hexadecimal. | ## Response Format @@ -68,19 +79,22 @@ An example of a successful response: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": 1, - "status": "success", - "type": "response", - "result": { - "signature_verified":true - } + "id": 1, + "status": "success", + "type": "response", + "result": { + "signature_verified": true + } } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -91,35 +105,38 @@ An example of a successful response: } } ``` + {% /tab %} {% tab label="Commandline" %} + ```json { - "result": { - "signature_verified":true, - "status":"success" - } + "result": { + "signature_verified": true, + "status": "success" + } } ``` + {% /tab %} {% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: -| Field | Type | Description | -|-------|------|-------------| +| Field | Type | Description | +| -------------------- | ------- | --------------------------------------------------------------------------------- | | `signature_verified` | Boolean | If `true`, the signature is valid for the stated amount, channel, and public key. | {% admonition type="warning" name="Caution" %}This does not check whether the channel has enough XRP allocated to it. Before considering a claim valid, you should look up the channel in the latest validated ledger and confirm that the channel is open and its `amount` value is equal or greater than the `amount` of the claim. To do so, use the [account_channels method][].{% /admonition %} ## Possible Errors -* Any of the [universal error types][]. -* `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. -* `publicMalformed` - The `public_key` field of the request is not a valid public key in the correct format. Public keys are 33 bytes and must be represented in base58 or hexadecimal. The [base58 representation of account public keys starts with the letter `a`](../../../protocol/data-types/base58-encodings.md). The hexadecimal representation is 66 characters long. -* `channelMalformed` - The `channel_id` field of the request is not a valid Channel ID. The Channel ID must be a 256-bit (64-character) hexadecimal string. -* `channelAmtMalformed` - The value specified in the `amount` field was not a valid [XRP amount][XRP, in drops]. +- Any of the [universal error types][]. +- `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. +- `publicMalformed` - The `public_key` field of the request is not a valid public key in the correct format. Public keys are 33 bytes and must be represented in base58 or hexadecimal. The [base58 representation of account public keys starts with the letter `a`](../../../protocol/data-types/base58-encodings.md). The hexadecimal representation is 66 characters long. +- `channelMalformed` - The `channel_id` field of the request is not a valid Channel ID. The Channel ID must be a 256-bit (64-character) hexadecimal string. +- `channelAmtMalformed` - The value specified in the `amount` field was not a valid [XRP amount][XRP, in drops]. {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/http-websocket-apis/public-api-methods/payment-channel-methods/index.md b/docs/references/http-websocket-apis/public-api-methods/payment-channel-methods/index.md index ef52fd3a16..153064753e 100644 --- a/docs/references/http-websocket-apis/public-api-methods/payment-channel-methods/index.md +++ b/docs/references/http-websocket-apis/public-api-methods/payment-channel-methods/index.md @@ -4,9 +4,9 @@ parent: public-api-methods.html metadata: indexPage: true --- + # Payment Channel Methods Payment channels are a tool for facilitating repeated, unidirectional payments, or temporary credit between two parties. Use these methods to work with payment channels. - {% child-pages /%} diff --git a/docs/references/http-websocket-apis/public-api-methods/server-info-methods/feature.md b/docs/references/http-websocket-apis/public-api-methods/server-info-methods/feature.md index ee430168ea..c73c89bf06 100644 --- a/docs/references/http-websocket-apis/public-api-methods/server-info-methods/feature.md +++ b/docs/references/http-websocket-apis/public-api-methods/server-info-methods/feature.md @@ -1,6 +1,6 @@ --- seo: - description: Get information about protocol amendments. + description: Get information about protocol amendments. labels: - Blockchain - Core Server @@ -23,32 +23,38 @@ An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { "command": "feature", "feature": "4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "feature", - "params": [ - { - "feature": "4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373" - } - ] + "method": "feature", + "params": [ + { + "feature": "4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373" + } + ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh #Syntax: feature [] rippled feature 4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373 ``` + {% /tab %} {% /tabs %} @@ -57,9 +63,9 @@ rippled feature 4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373 The request includes the following parameters: -| `Field` | Type | Description | -|:----------|:--------|:-------------------------------------------------------| -| `feature` | String | _(Optional)_ The unique ID of an amendment, as hexadecimal; or the short name of the amendment. If provided, limits the response to one amendment. Otherwise, the response lists all amendments. | +| `Field` | Type | Description | +| :-------- | :----- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `feature` | String | _(Optional)_ The unique ID of an amendment, as hexadecimal; or the short name of the amendment. If provided, limits the response to one amendment. Otherwise, the response lists all amendments. | ## Response Format @@ -68,6 +74,7 @@ An example of a successful response: {% tabs %} {% tab label="WebSocket" %} + ```json { "result": { @@ -81,9 +88,11 @@ An example of a successful response: "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -98,9 +107,11 @@ An example of a successful response: } } ``` + {% /tab %} {% tab label="Commandline" %} + ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -116,16 +127,17 @@ Connecting to 127.0.0.1:5005 } } ``` + {% /tab %} {% /tabs %} The response follows the [standard format][], with a successful result containing **a map of amendments** as a JSON object. The keys of the object are amendment IDs. The values for each key are _amendment objects_ that describe the status of the amendment with that ID. If the request specified a `feature`, the map contains only the requested amendment object, after applying any changes from the request. Each amendment object has the following fields: -| `Field` | Type | Description | -|:------------|:--------|:-----------------------------------------------------| -| `enabled` | Boolean | Whether this amendment is currently enabled in the latest ledger. | -| `name` | String | (May be omitted) The human-readable name for this amendment, if known. | +| `Field` | Type | Description | +| :---------- | :------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `enabled` | Boolean | Whether this amendment is currently enabled in the latest ledger. | +| `name` | String | (May be omitted) The human-readable name for this amendment, if known. | | `supported` | Boolean | Whether the server knows how to apply this amendment. If this field is set to `false` (the server does not know how to apply this amendment) and `enabled` is set to `true` (this amendment is enabled in the latest ledger), this amendment may cause your server to be [amendment blocked](../../../../concepts/networks-and-servers/amendments.md#amendment-blocked-servers). | {% admonition type="warning" name="Caution" %}The `name` for an amendment does not strictly indicate what that amendment does. The name is not guaranteed to be unique or consistent across servers.{% /admonition %} diff --git a/docs/references/http-websocket-apis/public-api-methods/server-info-methods/fee.md b/docs/references/http-websocket-apis/public-api-methods/server-info-methods/fee.md index 1ed12fc9da..9567104e73 100644 --- a/docs/references/http-websocket-apis/public-api-methods/server-info-methods/fee.md +++ b/docs/references/http-websocket-apis/public-api-methods/server-info-methods/fee.md @@ -1,10 +1,12 @@ --- seo: - description: Get information about transaction cost. + description: Get information about transaction cost. labels: - - Fees + - Fees --- + # fee + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/Fee1.cpp "Source") The `fee` command reports the current state of the open-ledger requirements for the [transaction cost](../../../../concepts/transactions/transaction-cost.md). This requires the [FeeEscalation amendment][] to be enabled. @@ -12,33 +14,40 @@ The `fee` command reports the current state of the open-ledger requirements for This is a public command available to unprivileged users. {% badge href="https://github.com/XRPLF/rippled/releases/tag/0.32.0" %}Updated in: rippled 0.32.0{% /badge %} ## Request Format + An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": "fee_websocket_example", "command": "fee" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "fee", - "params": [{}] + "method": "fee", + "params": [{}] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh #Syntax: fee rippled fee ``` + {% /tab %} {% /tabs %} @@ -54,6 +63,7 @@ An example of a successful response: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": "fee_websocket_example", @@ -80,9 +90,11 @@ An example of a successful response: } } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -109,9 +121,11 @@ An example of a successful response: } } ``` + {% /tab %} {% tab label="Commandline" %} + ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -139,29 +153,30 @@ Connecting to 127.0.0.1:5005 } } ``` + {% /tab %} {% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: -| `Field` | Type | Description | -|:---------------------------|:-----------------|:-----------------------------| -| `current_ledger_size` | String (Integer) | Number of transactions provisionally included in the in-progress ledger. | -| `current_queue_size` | String (Integer) | Number of transactions currently queued for the next ledger. | -| `drops` | Object | Various information about the transaction cost (the `Fee` field of a transaction), in [drops of XRP][]. | -| `drops.base_fee` | String (Integer) | The transaction cost required for a [reference transaction](../../../../concepts/transactions/transaction-cost.md#reference-transaction-cost) to be included in a ledger under minimum load, represented in drops of XRP. | -| `drops.median_fee` | String (Integer) | An approximation of the median transaction cost among transactions included in the previous validated ledger, represented in drops of XRP. | +| `Field` | Type | Description | +| :------------------------- | :--------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `current_ledger_size` | String (Integer) | Number of transactions provisionally included in the in-progress ledger. | +| `current_queue_size` | String (Integer) | Number of transactions currently queued for the next ledger. | +| `drops` | Object | Various information about the transaction cost (the `Fee` field of a transaction), in [drops of XRP][]. | +| `drops.base_fee` | String (Integer) | The transaction cost required for a [reference transaction](../../../../concepts/transactions/transaction-cost.md#reference-transaction-cost) to be included in a ledger under minimum load, represented in drops of XRP. | +| `drops.median_fee` | String (Integer) | An approximation of the median transaction cost among transactions included in the previous validated ledger, represented in drops of XRP. | | `drops.minimum_fee` | String (Integer) | The minimum transaction cost for a [reference transaction](../../../../concepts/transactions/transaction-cost.md#reference-transaction-cost) to be queued for a later ledger, represented in drops of XRP. If greater than `base_fee`, the transaction queue is full. | -| `drops.open_ledger_fee` | String (Integer) | The minimum transaction cost that a [reference transaction](../../../../concepts/transactions/transaction-cost.md#reference-transaction-cost) must pay to be included in the current open ledger, represented in drops of XRP. | -| `expected_ledger_size` | String (Integer) | The approximate number of transactions expected to be included in the current ledger. This is based on the number of transactions in the previous ledger. | -| `ledger_current_index` | Number | The [Ledger Index][] of the current open ledger these stats describe. | -| `levels` | Object | Various information about the transaction cost, in [fee levels][]. The ratio in fee levels applies to any transaction relative to the minimum cost of that particular transaction. | -| `levels.median_level` | String (Integer) | The median transaction cost among transactions in the previous validated ledger, represented in [fee levels][]. | -| `levels.minimum_level` | String (Integer) | The minimum transaction cost required to be queued for a future ledger, represented in [fee levels][]. | -| `levels.open_ledger_level` | String (Integer) | The minimum transaction cost required to be included in the current open ledger, represented in [fee levels][]. | -| `levels.reference_level` | String (Integer) | The equivalent of the minimum transaction cost, represented in [fee levels][]. | -| `max_queue_size` | String (Integer) | The maximum number of transactions that the [transaction queue](../../../../concepts/transactions/transaction-cost.md#queued-transactions) can currently hold. | +| `drops.open_ledger_fee` | String (Integer) | The minimum transaction cost that a [reference transaction](../../../../concepts/transactions/transaction-cost.md#reference-transaction-cost) must pay to be included in the current open ledger, represented in drops of XRP. | +| `expected_ledger_size` | String (Integer) | The approximate number of transactions expected to be included in the current ledger. This is based on the number of transactions in the previous ledger. | +| `ledger_current_index` | Number | The [Ledger Index][] of the current open ledger these stats describe. | +| `levels` | Object | Various information about the transaction cost, in [fee levels][]. The ratio in fee levels applies to any transaction relative to the minimum cost of that particular transaction. | +| `levels.median_level` | String (Integer) | The median transaction cost among transactions in the previous validated ledger, represented in [fee levels][]. | +| `levels.minimum_level` | String (Integer) | The minimum transaction cost required to be queued for a future ledger, represented in [fee levels][]. | +| `levels.open_ledger_level` | String (Integer) | The minimum transaction cost required to be included in the current open ledger, represented in [fee levels][]. | +| `levels.reference_level` | String (Integer) | The equivalent of the minimum transaction cost, represented in [fee levels][]. | +| `max_queue_size` | String (Integer) | The maximum number of transactions that the [transaction queue](../../../../concepts/transactions/transaction-cost.md#queued-transactions) can currently hold. | ## Possible Errors diff --git a/docs/references/http-websocket-apis/public-api-methods/server-info-methods/index.md b/docs/references/http-websocket-apis/public-api-methods/server-info-methods/index.md index d055714300..bfbad8a8d4 100644 --- a/docs/references/http-websocket-apis/public-api-methods/server-info-methods/index.md +++ b/docs/references/http-websocket-apis/public-api-methods/server-info-methods/index.md @@ -4,9 +4,9 @@ parent: public-api-methods.html metadata: indexPage: true --- + # Server Info Methods Use these methods to retrieve information about the current state of the rippled server. - {% child-pages /%} diff --git a/docs/references/http-websocket-apis/public-api-methods/server-info-methods/manifest.md b/docs/references/http-websocket-apis/public-api-methods/server-info-methods/manifest.md index b236101de8..ca5df3aae2 100644 --- a/docs/references/http-websocket-apis/public-api-methods/server-info-methods/manifest.md +++ b/docs/references/http-websocket-apis/public-api-methods/server-info-methods/manifest.md @@ -1,15 +1,16 @@ --- seo: - description: Look up the public information about a known validator. + description: Look up the public information about a known validator. labels: - - Blockchain + - Blockchain --- + # manifest + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/DoManifest.cpp "Source") The {% code-page-name /%} method reports the current "manifest" information for a given validator public key. The "manifest" is a block of data that authorizes an ephemeral signing key with a signature from the validator's master key pair. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.7.0" %}Updated in: rippled 1.7.0{% /badge %} - ### Request Format An example of the request format: @@ -17,30 +18,38 @@ An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { - "command": "{% $frontmatter.seo.title %}", - "public_key": "nHUFE9prPXPrHcG3SkwP1UzAQbSphqyQkQK9ATXLZsfkezhhda3p" + "command": "{% $frontmatter.seo.title %}", + "public_key": "nHUFE9prPXPrHcG3SkwP1UzAQbSphqyQkQK9ATXLZsfkezhhda3p" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "{% $frontmatter.seo.title %}", - "params": [{ - "public_key":"nHUFE9prPXPrHcG3SkwP1UzAQbSphqyQkQK9ATXLZsfkezhhda3p" - }] + "method": "{% $frontmatter.seo.title %}", + "params": [ + { + "public_key": "nHUFE9prPXPrHcG3SkwP1UzAQbSphqyQkQK9ATXLZsfkezhhda3p" + } + ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh #Syntax: {% $frontmatter.seo.title %} public_key rippled {% $frontmatter.seo.title %} nHUFE9prPXPrHcG3SkwP1UzAQbSphqyQkQK9ATXLZsfkezhhda3p ``` + {% /tab %} {% /tabs %} @@ -49,11 +58,10 @@ rippled {% $frontmatter.seo.title %} nHUFE9prPXPrHcG3SkwP1UzAQbSphqyQkQK9ATXLZsf The request includes the following parameters: -| `Field` | Type | Description | -|:-------------|:-------|:-----------------------------------| +| `Field` | Type | Description | +| :----------- | :----- | :------------------------------------------------------------------------------------------------------------------------ | | `public_key` | String | The [base58][]-encoded public key of the validator to look up. This can be the master public key or ephemeral public key. | - ### Response Format An example of a successful response: @@ -61,6 +69,7 @@ An example of a successful response: {% tabs %} {% tab label="WebSocket" %} + ```json { "result": { @@ -77,9 +86,11 @@ An example of a successful response: "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -97,9 +108,11 @@ An example of a successful response: } } ``` + {% /tab %} {% tab label="Commandline" %} + ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -118,6 +131,7 @@ Connecting to 127.0.0.1:5005 } } ``` + {% /tab %} {% /tabs %} @@ -126,24 +140,23 @@ Connecting to 127.0.0.1:5005 The response follows the [standard format][], with a successful result containing the following fields: -| `Field` | Type | Description | -|:------------|:-------|:------------------------------------------------------| -| `details` | Object | _(May be omitted)_ The data contained in this manifest. Omitted if the server does not have a manifest for the `public_key` from the request. See **Details Object** below for a full description of its contents. | +| `Field` | Type | Description | +| :---------- | :----- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `details` | Object | _(May be omitted)_ The data contained in this manifest. Omitted if the server does not have a manifest for the `public_key` from the request. See **Details Object** below for a full description of its contents. | | `manifest` | String | _(May be omitted)_ The full manifest data in base64 format. This data is [serialized](../../../protocol/binary-format.md) to binary before being base64-encoded. Omitted if the server does not have a manifest for the `public_key` from the request. | -| `requested` | String | The `public_key` from the request. | +| `requested` | String | The `public_key` from the request. | #### Details Object If provided, the `details` object contains the following fields: -| `Field` | Type | Description | -|:----------------|:-------|:--------------------------------------------------| -| `domain` | String | The domain name this validator claims to be associated with. If the manifest does not contain a domain, this is an empty string. | -| `ephemeral_key` | String | The ephemeral public key for this validator, in [base58][]. | -| `master_key` | String | The master public key for this validator, in [base58][]. | +| `Field` | Type | Description | +| :-------------- | :----- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `domain` | String | The domain name this validator claims to be associated with. If the manifest does not contain a domain, this is an empty string. | +| `ephemeral_key` | String | The ephemeral public key for this validator, in [base58][]. | +| `master_key` | String | The master public key for this validator, in [base58][]. | | `seq` | Number | The sequence number of this manifest. This number increases whenever the validator operator updates the validator's token to rotate ephemeral keys or change settings. | - ### Possible Errors - Any of the [universal error types][]. diff --git a/docs/references/http-websocket-apis/public-api-methods/server-info-methods/server_definitions.md b/docs/references/http-websocket-apis/public-api-methods/server-info-methods/server_definitions.md index 855f6d738b..48fa9978bb 100644 --- a/docs/references/http-websocket-apis/public-api-methods/server-info-methods/server_definitions.md +++ b/docs/references/http-websocket-apis/public-api-methods/server-info-methods/server_definitions.md @@ -2,37 +2,42 @@ html: server_definitions.html parent: server-info-methods.html seo: - description: Retrieve an SDK-compatible `definitions.json`, generated from the `rippled` instance currently running. + description: Retrieve an SDK-compatible `definitions.json`, generated from the `rippled` instance currently running. labels: - Core Server --- + # server_definitions [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/ServerInfo.cpp#L42 "Source") The `server_definitions` command returns an SDK-compatible `definitions.json`, generated from the `rippled` instance currently running. You can use this to query a node in a network, quickly receiving the definitions necessary to serialize/deserialize its binary data. - ## Request Format + An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 2, "command": "server_definitions" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { "method": "server_definitions" } ``` + {% /tab %} {% /tabs %} @@ -41,10 +46,9 @@ An example of the request format: The request includes the following parameters: -| Field | Type | Required? | Description | -|:------------------|:-------|:----------|-------------| -| `hash` | String | No | If included and the hash matches the server's hash, the full set of definitions will not be returned. | - +| Field | Type | Required? | Description | +| :----- | :----- | :-------- | ----------------------------------------------------------------------------------------------------- | +| `hash` | String | No | If included and the hash matches the server's hash, the full set of definitions will not be returned. | ## Response Format @@ -53,6 +57,7 @@ An example of a successful response: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 1, @@ -103,13 +108,13 @@ An example of a successful response: } } ``` + {% /tab %} {% /tabs %} To see a full `definitions.json` file and descriptions of the top-level fields, see: [Definitions File](../../../protocol/binary-format.md#definitions-file). - ## Possible Errors Any of the [universal error types][]. diff --git a/docs/references/http-websocket-apis/public-api-methods/server-info-methods/server_info.md b/docs/references/http-websocket-apis/public-api-methods/server-info-methods/server_info.md index 46519bfc14..57b9d3cb56 100644 --- a/docs/references/http-websocket-apis/public-api-methods/server-info-methods/server_info.md +++ b/docs/references/http-websocket-apis/public-api-methods/server-info-methods/server_info.md @@ -1,20 +1,24 @@ --- seo: - description: Retrieve status of the server in human-readable format. + description: Retrieve status of the server in human-readable format. labels: - - Core Server + - Core Server --- + # server_info (rippled) + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/ServerInfo.cpp "Source") The `server_info` command asks the server for a human-readable version of various information about [the `rippled` server](../../../../concepts/networks-and-servers/index.md) being queried. For [Clio servers](../../../../concepts/networks-and-servers/the-clio-server.md), see [`server_info` (Clio)](../clio-methods/server_info-clio.md) instead. ## Request Format + An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 1, @@ -22,25 +26,28 @@ An example of the request format: "counters": false } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "server_info", - "params": [ - {"counters" : false} - ] + "method": "server_info", + "params": [{ "counters": false }] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh #Syntax: server_info [counters] # counters is an optional boolean value, it is used to display performance metrics rippled server_info ``` + {% /tab %} {% /tabs %} @@ -49,9 +56,9 @@ rippled server_info The request includes the following parameters: -| Field | Type | Required? | Description | -|:----------------------|:--------|:----------|-------------| -| `counters` | Boolean | No | If `true`, return metrics about the job queue, ledger store, and API method activity. The default is `false`. | +| Field | Type | Required? | Description | +| :--------- | :------ | :-------- | ------------------------------------------------------------------------------------------------------------- | +| `counters` | Boolean | No | If `true`, return metrics about the job queue, ledger store, and API method activity. The default is `false`. | ## Response Format @@ -77,45 +84,45 @@ The response follows the [standard format][], with a successful result containin The `info` object may have some arrangement of the following fields: -| `Field` | Type | Description | -|:------------------------------------|:----------------|:---------------------| -| `amendment_blocked` | Boolean | _(May be omitted)_ If `true`, this server is [amendment blocked](../../../../concepts/networks-and-servers/amendments.md#amendment-blocked-servers). If the server is not amendment blocked, the response omits this field. | -| `build_version` | String | The version number of the running `rippled` server. | -| `closed_ledger` | Object | _(May be omitted)_ Information on the most recently closed ledger that has not been validated by consensus, as a [Server Ledger Object](#server-ledger-object). If the most recently validated ledger is available, the response omits this field and includes `validated_ledger` instead. | -| `complete_ledgers` | String | Range expression indicating the sequence numbers of the ledger versions the local `rippled` has in its database. This may be a disjoint sequence such as `24900901-24900984,24901116-24901158`. If the server does not have any complete ledgers (for example, it recently started syncing with the network), this is the string `empty`. | -| `git` | Object | _(Admin only)_ The Git details of your `rippled` build. | -| `git.branch` | String | _(Admin only)_ The Git branch used to build your version of `rippled`. | -| `git.hash` | String | _(Admin only)_ The Git hash of the commit used to build your version of `rippled`. | -| `hostid` | String | On an admin request, returns the hostname of the server running the `rippled` instance; otherwise, returns a single [RFC-1751][] word based on the [node public key](../../../../concepts/networks-and-servers/peer-protocol.md#node-key-pair). | -| `io_latency_ms` | Number | Amount of time spent waiting for I/O operations, in milliseconds. If this number is not very, very low, then the `rippled` server is probably having serious load issues. | -| `jq_trans_overflow` | String - Number | The number of times (since starting up) that this server has had over 250 transactions waiting to be processed at once. A large number here may mean that your server is unable to handle the transaction load of the XRP Ledger network. For detailed recommendations of future-proof server specifications, see [Capacity Planning](../../../../infrastructure/installation/capacity-planning.md). | -| `last_close` | Object | Information about the last time the server closed a ledger, including the amount of time it took to reach a consensus and the number of trusted validators participating. | -| `last_close.converge_time_s` | Number | The amount of time it took to reach a consensus on the most recently validated ledger version, in seconds. | -| `last_close.proposers` | Number | How many trusted validators the server considered (including itself, if configured as a validator) in the consensus process for the most recently validated ledger version. | -| `load` | Object | _(Admin only)_ Detailed information about the current load state of the server. | -| `load.job_types` | Array | _(Admin only)_ Information about the rate of different types of jobs the server is doing and how much time it spends on each. | -| `load.threads` | Number | _(Admin only)_ The number of threads in the server's main job pool. | -| `load_factor` | Number | The multiplier to the [transaction cost][] the server is currently enforcing. For example, at `1000` load factor and a reference transaction cost of 10 drops of XRP, the load-scaled transaction cost is 10,000 drops (0.01 XRP). The load factor is determined by the highest of the individual server's load factor, the cluster's load factor, the open ledger cost, and the overall network's load factor. | -| `load_factor_local` | Number | _(May be omitted)_ The current multiplier to the transaction cost based on load to this server. | -| `load_factor_net` | Number | _(May be omitted)_ The current multiplier to the transaction cost being used by the rest of the network (estimated from other servers' reported load values). | -| `load_factor_cluster` | Number | _(May be omitted)_ The current multiplier to the transaction cost based on load to servers in this [cluster](../../../../concepts/networks-and-servers/clustering.md). | -| `load_factor_fee_escalation` | Number | _(May be omitted)_ The current multiplier to the transaction cost that a transaction must pay to get into the open ledger. | -| `load_factor_fee_queue` | Number | _(May be omitted)_ The current multiplier to the transaction cost that a transaction must pay to get into the queue, if the queue is full. | -| `load_factor_server` | Number | _(May be omitted)_ The current multiplier to the transaction cost based on load to the server, cluster, and network, but not factoring in the open ledger cost. | -| `network_ledger` | String | _(May be omitted)_ When [starting the server with the `--net` parameter](../../../../infrastructure/commandline-usage.md), this field contains the string `waiting` while the server is syncing to the network. The field is omitted otherwise. | -| `peers` | Number | How many other `rippled` servers this one is currently connected to. | -| `ports` | Array | A list of ports where the server is listening for API commands. Each entry in the array is a [Port Descriptor object](#port-descriptor-object). {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.12.0" %}New in: rippled 1.12.0{% /badge %} | -| `pubkey_node` | String | Public key used to verify this server for peer-to-peer communications. This [_node key pair_](../../../../concepts/networks-and-servers/peer-protocol.md#node-key-pair) is automatically generated by the server the first time it starts up. (If deleted, the server can create a new pair of keys.) You can set a persistent value in the config file using the `[node_seed]` config option, which is useful for [clustering](../../../../concepts/networks-and-servers/clustering.md). | -| `pubkey_validator` | String | _(Admin only)_ Public key used by this node to sign ledger validations. This _validation key pair_ is derived from the `[validator_token]` or `[validation_seed]` config field. | -| `server_state` | String | A string indicating to what extent the server is participating in the network. See [Possible Server States](../../api-conventions/rippled-server-states.md) for more details. | -| `server_state_duration_us` | Number | The number of consecutive microseconds the server has been in the current state. | -| `state_accounting` | Object | A map of various [server states](../../api-conventions/rippled-server-states.md) with information about the time the server spends in each. This can be useful for tracking the long-term health of your server's connectivity to the network. The contents of this field are formatted as [State Accounting Objects](#state-accounting-object). || `time` | String | The current time in UTC, according to the server's clock. | -| `uptime` | Number | Number of consecutive seconds that the server has been operational. | -| `validated_ledger` | Object | _(May be omitted)_ Information about the most recent fully-validated ledger, as a [Server Ledger Object](#server-ledger-object). If the most recent validated ledger is not available, the response omits this field and includes `closed_ledger` instead. | -| `validation_quorum` | Number | Minimum number of trusted validations required to validate a ledger version. Some circumstances may cause the server to require more validations. | -| `validator_list_expires` | String | _(Admin only)_ Either the human readable time, in UTC, when the current validator list expires, the string `unknown` if the server has yet to load a published validator list or the string `never` if the server uses a static validator list. | -| `counters` | Object | This object contains performance metrics pertaining to the RPC calls (currently executing calls and completed calls) and the JobQueue. It also contains details of the nodestore like `node_writes`, `node_reads_total`, `node_reads_hit`, etc| -| `current_activity` | Object | This field lists the items currently being run in the job queue and contains two arrays for `jobs` and `methods`. | +| `Field` | Type | Description | +| :--------------------------- | :-------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --- | ------ | ------ | --------------------------------------------------------- | +| `amendment_blocked` | Boolean | _(May be omitted)_ If `true`, this server is [amendment blocked](../../../../concepts/networks-and-servers/amendments.md#amendment-blocked-servers). If the server is not amendment blocked, the response omits this field. | +| `build_version` | String | The version number of the running `rippled` server. | +| `closed_ledger` | Object | _(May be omitted)_ Information on the most recently closed ledger that has not been validated by consensus, as a [Server Ledger Object](#server-ledger-object). If the most recently validated ledger is available, the response omits this field and includes `validated_ledger` instead. | +| `complete_ledgers` | String | Range expression indicating the sequence numbers of the ledger versions the local `rippled` has in its database. This may be a disjoint sequence such as `24900901-24900984,24901116-24901158`. If the server does not have any complete ledgers (for example, it recently started syncing with the network), this is the string `empty`. | +| `git` | Object | _(Admin only)_ The Git details of your `rippled` build. | +| `git.branch` | String | _(Admin only)_ The Git branch used to build your version of `rippled`. | +| `git.hash` | String | _(Admin only)_ The Git hash of the commit used to build your version of `rippled`. | +| `hostid` | String | On an admin request, returns the hostname of the server running the `rippled` instance; otherwise, returns a single [RFC-1751][] word based on the [node public key](../../../../concepts/networks-and-servers/peer-protocol.md#node-key-pair). | +| `io_latency_ms` | Number | Amount of time spent waiting for I/O operations, in milliseconds. If this number is not very, very low, then the `rippled` server is probably having serious load issues. | +| `jq_trans_overflow` | String - Number | The number of times (since starting up) that this server has had over 250 transactions waiting to be processed at once. A large number here may mean that your server is unable to handle the transaction load of the XRP Ledger network. For detailed recommendations of future-proof server specifications, see [Capacity Planning](../../../../infrastructure/installation/capacity-planning.md). | +| `last_close` | Object | Information about the last time the server closed a ledger, including the amount of time it took to reach a consensus and the number of trusted validators participating. | +| `last_close.converge_time_s` | Number | The amount of time it took to reach a consensus on the most recently validated ledger version, in seconds. | +| `last_close.proposers` | Number | How many trusted validators the server considered (including itself, if configured as a validator) in the consensus process for the most recently validated ledger version. | +| `load` | Object | _(Admin only)_ Detailed information about the current load state of the server. | +| `load.job_types` | Array | _(Admin only)_ Information about the rate of different types of jobs the server is doing and how much time it spends on each. | +| `load.threads` | Number | _(Admin only)_ The number of threads in the server's main job pool. | +| `load_factor` | Number | The multiplier to the [transaction cost][] the server is currently enforcing. For example, at `1000` load factor and a reference transaction cost of 10 drops of XRP, the load-scaled transaction cost is 10,000 drops (0.01 XRP). The load factor is determined by the highest of the individual server's load factor, the cluster's load factor, the open ledger cost, and the overall network's load factor. | +| `load_factor_local` | Number | _(May be omitted)_ The current multiplier to the transaction cost based on load to this server. | +| `load_factor_net` | Number | _(May be omitted)_ The current multiplier to the transaction cost being used by the rest of the network (estimated from other servers' reported load values). | +| `load_factor_cluster` | Number | _(May be omitted)_ The current multiplier to the transaction cost based on load to servers in this [cluster](../../../../concepts/networks-and-servers/clustering.md). | +| `load_factor_fee_escalation` | Number | _(May be omitted)_ The current multiplier to the transaction cost that a transaction must pay to get into the open ledger. | +| `load_factor_fee_queue` | Number | _(May be omitted)_ The current multiplier to the transaction cost that a transaction must pay to get into the queue, if the queue is full. | +| `load_factor_server` | Number | _(May be omitted)_ The current multiplier to the transaction cost based on load to the server, cluster, and network, but not factoring in the open ledger cost. | +| `network_ledger` | String | _(May be omitted)_ When [starting the server with the `--net` parameter](../../../../infrastructure/commandline-usage.md), this field contains the string `waiting` while the server is syncing to the network. The field is omitted otherwise. | +| `peers` | Number | How many other `rippled` servers this one is currently connected to. | +| `ports` | Array | A list of ports where the server is listening for API commands. Each entry in the array is a [Port Descriptor object](#port-descriptor-object). {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.12.0" %}New in: rippled 1.12.0{% /badge %} | +| `pubkey_node` | String | Public key used to verify this server for peer-to-peer communications. This [_node key pair_](../../../../concepts/networks-and-servers/peer-protocol.md#node-key-pair) is automatically generated by the server the first time it starts up. (If deleted, the server can create a new pair of keys.) You can set a persistent value in the config file using the `[node_seed]` config option, which is useful for [clustering](../../../../concepts/networks-and-servers/clustering.md). | +| `pubkey_validator` | String | _(Admin only)_ Public key used by this node to sign ledger validations. This _validation key pair_ is derived from the `[validator_token]` or `[validation_seed]` config field. | +| `server_state` | String | A string indicating to what extent the server is participating in the network. See [Possible Server States](../../api-conventions/rippled-server-states.md) for more details. | +| `server_state_duration_us` | Number | The number of consecutive microseconds the server has been in the current state. | +| `state_accounting` | Object | A map of various [server states](../../api-conventions/rippled-server-states.md) with information about the time the server spends in each. This can be useful for tracking the long-term health of your server's connectivity to the network. The contents of this field are formatted as [State Accounting Objects](#state-accounting-object). | | `time` | String | The current time in UTC, according to the server's clock. | +| `uptime` | Number | Number of consecutive seconds that the server has been operational. | +| `validated_ledger` | Object | _(May be omitted)_ Information about the most recent fully-validated ledger, as a [Server Ledger Object](#server-ledger-object). If the most recent validated ledger is not available, the response omits this field and includes `closed_ledger` instead. | +| `validation_quorum` | Number | Minimum number of trusted validations required to validate a ledger version. Some circumstances may cause the server to require more validations. | +| `validator_list_expires` | String | _(Admin only)_ Either the human readable time, in UTC, when the current validator list expires, the string `unknown` if the server has yet to load a published validator list or the string `never` if the server uses a static validator list. | +| `counters` | Object | This object contains performance metrics pertaining to the RPC calls (currently executing calls and completed calls) and the JobQueue. It also contains details of the nodestore like `node_writes`, `node_reads_total`, `node_reads_hit`, etc | +| `current_activity` | Object | This field lists the items currently being run in the job queue and contains two arrays for `jobs` and `methods`. | {% partial file="/docs/_snippets/port-descriptor-object.md" /%} @@ -125,14 +132,14 @@ The `info` object may have some arrangement of the following fields: The response provides either a `validated_ledger` field or a `closed_ledger` field. Either field contains an object with the following fields: -| Field | Value | Description | -|--------------------|-------------------|-------------| -| `age` | Number | The time since the ledger was closed, in seconds. | +| Field | Value | Description | +| ------------------ | ----------------- | --------------------------------------------------------------------------------------------------------- | +| `age` | Number | The time since the ledger was closed, in seconds. | | `base_fee_xrp` | Number | Base fee, in XRP (not drops). This may be represented in scientific notation such as `1e-05` for 0.00001. | -| `hash` | String - [Hash][] | Unique hash for the ledger, as hexadecimal. | -| `reserve_base_xrp` | Number | Minimum amount of XRP (not drops) necessary for every account to keep in reserve | -| `reserve_inc_xrp` | Number | Amount of XRP (not drops) added to the account reserve for each object an account owns in the ledger. | -| `seq` | Number | The [ledger index][] of the latest validated ledger. | +| `hash` | String - [Hash][] | Unique hash for the ledger, as hexadecimal. | +| `reserve_base_xrp` | Number | Minimum amount of XRP (not drops) necessary for every account to keep in reserve | +| `reserve_inc_xrp` | Number | Amount of XRP (not drops) added to the account reserve for each object an account owns in the ledger. | +| `seq` | Number | The [ledger index][] of the latest validated ledger. | Note that the [server_state method][] provides a similar object with slightly different formatting (using drops of XRP instead of decimal XRP, for example). @@ -140,6 +147,6 @@ Note that the [server_state method][] provides a similar object with slightly di ## Possible Errors -* Any of the [universal error types][]. +- Any of the [universal error types][]. {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/http-websocket-apis/public-api-methods/server-info-methods/server_state.md b/docs/references/http-websocket-apis/public-api-methods/server-info-methods/server_state.md index 54bd29a603..e7e049673e 100644 --- a/docs/references/http-websocket-apis/public-api-methods/server-info-methods/server_state.md +++ b/docs/references/http-websocket-apis/public-api-methods/server-info-methods/server_state.md @@ -1,9 +1,10 @@ --- seo: - description: Retrieve status of the server in machine-readable format. + description: Retrieve status of the server in machine-readable format. labels: - - Core Server + - Core Server --- + # server_state [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/ServerState.cpp "Source") @@ -13,11 +14,13 @@ The `server_state` command asks the server for various machine-readable informat The [Clio server](../../../../concepts/networks-and-servers/the-clio-server.md) does not support `server_state` directly, but you can ask for the `server_state` of the `rippled` server that Clio is connected to. Specify `"ledger_index": "current"` (WebSocket) or `"params": [{"ledger_index": "current"}]` (JSON-RPC). ## Request Format + An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 2, @@ -25,24 +28,27 @@ An example of the request format: "ledger_index": "current" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "server_state", - "params": [ - {"ledger_index": "current"} - ] + "method": "server_state", + "params": [{ "ledger_index": "current" }] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh #Syntax: server_state rippled server_state ``` + {% /tab %} {% /tabs %} @@ -58,6 +64,7 @@ An example of a successful response: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 1, @@ -122,9 +129,11 @@ An example of a successful response: "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -191,9 +200,11 @@ Headers } } ``` + {% /tab %} {% tab label="Commandline" %} + ```json Loading: "/etc/opt/ripple/rippled.cfg" 2020-Mar-24 01:30:08.646201720 UTC HTTPClient:NFO Connecting to 127.0.0.1:5005 @@ -261,6 +272,7 @@ Headers } } ``` + {% /tab %} {% /tabs %} @@ -269,39 +281,39 @@ The response follows the [standard format][], with a successful result containin The `state` object may have some arrangement of the following fields: -| `Field` | Type | Description | -|:---------------------------------|:----------------|:------------------------| -| `amendment_blocked` | Boolean | _(May be omitted)_ If `true`, this server is [amendment blocked](../../../../concepts/networks-and-servers/amendments.md#amendment-blocked-servers). If the server is not amendment blocked, the response omits this field. | -| `build_version` | String | The version number of the running `rippled` version. | -| `complete_ledgers` | String | Range expression indicating the sequence numbers of the ledger versions the local `rippled` has in its database. It is possible to be a disjoint sequence, e.g. "2500-5000,32570-7695432". If the server does not have any complete ledgers (for example, it recently started syncing with the network), this is the string `empty`. | -| `closed_ledger` | Object | _(May be omitted)_ Information on the most recently closed ledger that has not been validated by consensus, as a [Server Ledger Object](#server-ledger-object). If the most recently validated ledger is available, the response omits this field and includes `validated_ledger` instead. | -| `io_latency_ms` | Number | Amount of time spent waiting for I/O operations, in milliseconds. If this number is not very, very low, then the `rippled` server is probably having serious load issues. | -| `jq_trans_overflow` | String - Number | The number of times this server has had over 250 transactions waiting to be processed at once. A large number here may mean that your server is unable to handle the transaction load of the XRP Ledger network. For detailed recommendations of future-proof server specifications, see [Capacity Planning](../../../../infrastructure/installation/capacity-planning.md). | -| `last_close` | Object | Information about the last time the server closed a ledger, including the amount of time it took to reach a consensus and the number of trusted validators participating. | -| `last_close.converge_time` | Number | The amount of time it took to reach a consensus on the most recently validated ledger version, in milliseconds. | -| `last_close.proposers` | Number | How many trusted validators the server considered (including itself, if configured as a validator) in the consensus process for the most recently validated ledger version. | -| `load` | Object | _(Admin only)_ Detailed information about the current load state of the server. | -| `load.job_types` | Array | _(Admin only)_ Information about the rate of different types of jobs the server is doing and how much time it spends on each. | -| `load.threads` | Number | _(Admin only)_ The number of threads in the server's main job pool. | -| `load_base` | Number | The baseline amount of server load used in [transaction cost][] calculations. If the `load_factor` is equal to the `load_base`, then only the base transaction cost is enforced. If the `load_factor` is higher than the `load_base`, then transaction costs are multiplied by the ratio between them. For example, if the `load_factor` is double the `load_base`, then transaction costs are doubled. | -| `load_factor` | Number | The load factor the server is currently enforcing. The ratio between this value and the `load_base` determines the multiplier for transaction costs. The load factor is determined by the highest of the individual server's load factor, the cluster's load factor, the open ledger cost, and the overall network's load factor. | -| `load_factor_fee_escalation` | Number | _(May be omitted)_ The current multiplier to the transaction cost to get into the open ledger, in [fee levels][]. | -| `load_factor_fee_queue` | Number | _(May be omitted)_ The current multiplier to the transaction cost to get into the queue, if the queue is full, in fee levels. | -| `load_factor_fee_reference` | Number | _(May be omitted)_ The transaction cost with no load scaling, in fee levels. | -| `load_factor_server` | Number | _(May be omitted)_ The load factor the server is enforcing, based on load to the server, cluster, and network, but not factoring in the open ledger cost. | -| `network_ledger` | String | _(May be omitted)_ When [starting the server with the `--net` parameter](../../../../infrastructure/commandline-usage.md), this field contains the string `waiting` while the server is syncing to the network. The field is omitted otherwise. | -| `peers` | Number | How many other `rippled` servers this one is currently connected to. | -| `ports` | Array | A list of ports where the server is listening for API commands. Each entry in the array is a [Port Descriptor object](#port-descriptor-object). {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.12.0" %}New in: rippled 1.12.0{% /badge %} | -| `pubkey_node` | String | Public key used to verify this server for peer-to-peer communications. This _node key pair_ is automatically generated by the server the first time it starts up. (If deleted, the server can create a new pair of keys.) You can set a persistent value in the config file using the `[node_seed]` config option, which is useful for [clustering](../../../../concepts/networks-and-servers/clustering.md). | -| `pubkey_validator` | String | _(Admin only)_ Public key used by this node to sign ledger validations. This _validation key pair_ is derived from the `[validator_token]` or `[validation_seed]` config field. | -| `server_state` | String | A string indicating to what extent the server is participating in the network. See [Possible Server States](../../api-conventions/rippled-server-states.md) for more details. | -| `server_state_duration_us` | Number | The number of consecutive microseconds the server has been in the current state. | -| `state_accounting` | Object | A map of various [server states](../../api-conventions/rippled-server-states.md) with information about the time the server spends in each. This can be useful for tracking the long-term health of your server's connectivity to the network. The contents of this field are formatted as [State Accounting Objects](#state-accounting-object). | -| `time` | String | The current time in UTC, according to the server's clock. | -| `uptime` | Number | Number of consecutive seconds that the server has been operational. | -| `validated_ledger` | Object | _(May be omitted)_ Information about the most recent fully-validated ledger, as a [Server Ledger Object](#server-ledger-object). If the most recent validated ledger is not available, the response omits this field and includes `closed_ledger` instead. | -| `validation_quorum` | Number | Minimum number of trusted validations required to validate a ledger version. Some circumstances may cause the server to require more validations. | -| `validator_list_expires` | Number | _(Admin only)_ When the current validator list expires, in [seconds since the Ripple Epoch][], or 0 if the server has yet to load a published validator list. | +| `Field` | Type | Description | +| :--------------------------- | :-------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `amendment_blocked` | Boolean | _(May be omitted)_ If `true`, this server is [amendment blocked](../../../../concepts/networks-and-servers/amendments.md#amendment-blocked-servers). If the server is not amendment blocked, the response omits this field. | +| `build_version` | String | The version number of the running `rippled` version. | +| `complete_ledgers` | String | Range expression indicating the sequence numbers of the ledger versions the local `rippled` has in its database. It is possible to be a disjoint sequence, e.g. "2500-5000,32570-7695432". If the server does not have any complete ledgers (for example, it recently started syncing with the network), this is the string `empty`. | +| `closed_ledger` | Object | _(May be omitted)_ Information on the most recently closed ledger that has not been validated by consensus, as a [Server Ledger Object](#server-ledger-object). If the most recently validated ledger is available, the response omits this field and includes `validated_ledger` instead. | +| `io_latency_ms` | Number | Amount of time spent waiting for I/O operations, in milliseconds. If this number is not very, very low, then the `rippled` server is probably having serious load issues. | +| `jq_trans_overflow` | String - Number | The number of times this server has had over 250 transactions waiting to be processed at once. A large number here may mean that your server is unable to handle the transaction load of the XRP Ledger network. For detailed recommendations of future-proof server specifications, see [Capacity Planning](../../../../infrastructure/installation/capacity-planning.md). | +| `last_close` | Object | Information about the last time the server closed a ledger, including the amount of time it took to reach a consensus and the number of trusted validators participating. | +| `last_close.converge_time` | Number | The amount of time it took to reach a consensus on the most recently validated ledger version, in milliseconds. | +| `last_close.proposers` | Number | How many trusted validators the server considered (including itself, if configured as a validator) in the consensus process for the most recently validated ledger version. | +| `load` | Object | _(Admin only)_ Detailed information about the current load state of the server. | +| `load.job_types` | Array | _(Admin only)_ Information about the rate of different types of jobs the server is doing and how much time it spends on each. | +| `load.threads` | Number | _(Admin only)_ The number of threads in the server's main job pool. | +| `load_base` | Number | The baseline amount of server load used in [transaction cost][] calculations. If the `load_factor` is equal to the `load_base`, then only the base transaction cost is enforced. If the `load_factor` is higher than the `load_base`, then transaction costs are multiplied by the ratio between them. For example, if the `load_factor` is double the `load_base`, then transaction costs are doubled. | +| `load_factor` | Number | The load factor the server is currently enforcing. The ratio between this value and the `load_base` determines the multiplier for transaction costs. The load factor is determined by the highest of the individual server's load factor, the cluster's load factor, the open ledger cost, and the overall network's load factor. | +| `load_factor_fee_escalation` | Number | _(May be omitted)_ The current multiplier to the transaction cost to get into the open ledger, in [fee levels][]. | +| `load_factor_fee_queue` | Number | _(May be omitted)_ The current multiplier to the transaction cost to get into the queue, if the queue is full, in fee levels. | +| `load_factor_fee_reference` | Number | _(May be omitted)_ The transaction cost with no load scaling, in fee levels. | +| `load_factor_server` | Number | _(May be omitted)_ The load factor the server is enforcing, based on load to the server, cluster, and network, but not factoring in the open ledger cost. | +| `network_ledger` | String | _(May be omitted)_ When [starting the server with the `--net` parameter](../../../../infrastructure/commandline-usage.md), this field contains the string `waiting` while the server is syncing to the network. The field is omitted otherwise. | +| `peers` | Number | How many other `rippled` servers this one is currently connected to. | +| `ports` | Array | A list of ports where the server is listening for API commands. Each entry in the array is a [Port Descriptor object](#port-descriptor-object). {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.12.0" %}New in: rippled 1.12.0{% /badge %} | +| `pubkey_node` | String | Public key used to verify this server for peer-to-peer communications. This _node key pair_ is automatically generated by the server the first time it starts up. (If deleted, the server can create a new pair of keys.) You can set a persistent value in the config file using the `[node_seed]` config option, which is useful for [clustering](../../../../concepts/networks-and-servers/clustering.md). | +| `pubkey_validator` | String | _(Admin only)_ Public key used by this node to sign ledger validations. This _validation key pair_ is derived from the `[validator_token]` or `[validation_seed]` config field. | +| `server_state` | String | A string indicating to what extent the server is participating in the network. See [Possible Server States](../../api-conventions/rippled-server-states.md) for more details. | +| `server_state_duration_us` | Number | The number of consecutive microseconds the server has been in the current state. | +| `state_accounting` | Object | A map of various [server states](../../api-conventions/rippled-server-states.md) with information about the time the server spends in each. This can be useful for tracking the long-term health of your server's connectivity to the network. The contents of this field are formatted as [State Accounting Objects](#state-accounting-object). | +| `time` | String | The current time in UTC, according to the server's clock. | +| `uptime` | Number | Number of consecutive seconds that the server has been operational. | +| `validated_ledger` | Object | _(May be omitted)_ Information about the most recent fully-validated ledger, as a [Server Ledger Object](#server-ledger-object). If the most recent validated ledger is not available, the response omits this field and includes `closed_ledger` instead. | +| `validation_quorum` | Number | Minimum number of trusted validations required to validate a ledger version. Some circumstances may cause the server to require more validations. | +| `validator_list_expires` | Number | _(Admin only)_ When the current validator list expires, in [seconds since the Ripple Epoch][], or 0 if the server has yet to load a published validator list. | {% partial file="/docs/_snippets/port-descriptor-object.md" /%} @@ -311,20 +323,19 @@ The `state` object may have some arrangement of the following fields: The response provides either a `validated_ledger` field or a `closed_ledger` field. Either field contains an object with the following fields: -| Field | Value | Description | -|-----------------|-------------------|-------------| -| `base_fee` | Number | The base fee, in drops of XRP, for propagating a transaction to the network, as of this ledger version. | -| `close_time` | Number | The official close time time of this ledger version, in [seconds since the Ripple Epoch][]. This value is rounded; see [Ledger Close Times](../../../../concepts/ledgers/ledger-close-times.md) for details. | -| `hash` | String - [Hash][] | The unique hash of this ledger version, as hexadecimal. | -| `reserve_base` | Number | The minimum [account reserve](../../../../concepts/accounts/reserves.md), as of the most recent validated ledger version. | -| `reserve_inc` | Number | The [owner reserve](../../../../concepts/accounts/reserves.md) for each item an account owns, as of the most recent validated ledger version. | -| `seq` | Number | The [ledger index][] of this ledger version. | +| Field | Value | Description | +| -------------- | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `base_fee` | Number | The base fee, in drops of XRP, for propagating a transaction to the network, as of this ledger version. | +| `close_time` | Number | The official close time time of this ledger version, in [seconds since the Ripple Epoch][]. This value is rounded; see [Ledger Close Times](../../../../concepts/ledgers/ledger-close-times.md) for details. | +| `hash` | String - [Hash][] | The unique hash of this ledger version, as hexadecimal. | +| `reserve_base` | Number | The minimum [account reserve](../../../../concepts/accounts/reserves.md), as of the most recent validated ledger version. | +| `reserve_inc` | Number | The [owner reserve](../../../../concepts/accounts/reserves.md) for each item an account owns, as of the most recent validated ledger version. | +| `seq` | Number | The [ledger index][] of this ledger version. | Note that the [server_info method][] provides a similar object with slightly different formatting (using decimal XRP instead of drops, for example). - ## Possible Errors -* Any of the [universal error types][]. +- Any of the [universal error types][]. {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/http-websocket-apis/public-api-methods/server-info-methods/version.md b/docs/references/http-websocket-apis/public-api-methods/server-info-methods/version.md index 7b4bd4827e..67e5d079f0 100644 --- a/docs/references/http-websocket-apis/public-api-methods/server-info-methods/version.md +++ b/docs/references/http-websocket-apis/public-api-methods/server-info-methods/version.md @@ -1,45 +1,50 @@ --- seo: - description: Retrieve API version information. + description: Retrieve API version information. labels: - - Core Server + - Core Server --- + # version [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/Version.h "Source") The `version` command retrieves the API version information for the rippled server. For `Clio` servers, see [`version` (`clio`)](../clio-methods/version.md) instead. - ## Request Format + An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { "command": "version" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "version", - "params": [ - {} - ] + "method": "version", + "params": [{}] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh #Syntax: version rippled version ``` + {% /tab %} {% /tabs %} @@ -55,6 +60,7 @@ An example of a successful response: {% tabs %} {% tab label="WebSocket" %} + ```json { "result": { @@ -68,9 +74,11 @@ An example of a successful response: "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -86,9 +94,11 @@ An example of a successful response: "type": "response" } ``` + {% /tab %} {% tab label="Commandline" %} + ```json { "result": { @@ -102,6 +112,7 @@ An example of a successful response: "type": "response" } ``` + {% /tab %} {% /tabs %} @@ -110,14 +121,14 @@ The response follows the [standard format][], with a successful result containin The `version` object returns some arrangement of the following fields: -| `Field` | Type | Description | -|:---------|:-------|:------------------------------| -| `first` | String | Lowest supported API release | -| `last` | String | Highest supported API release | -| `good` | String | Default API if none specified | +| `Field` | Type | Description | +| :------ | :----- | :---------------------------- | +| `first` | String | Lowest supported API release | +| `last` | String | Highest supported API release | +| `good` | String | Default API if none specified | ## Possible Errors -* Any of the [universal error types][]. +- Any of the [universal error types][]. {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/http-websocket-apis/public-api-methods/subscription-methods/index.md b/docs/references/http-websocket-apis/public-api-methods/subscription-methods/index.md index 463f414939..2aa9c867b6 100644 --- a/docs/references/http-websocket-apis/public-api-methods/subscription-methods/index.md +++ b/docs/references/http-websocket-apis/public-api-methods/subscription-methods/index.md @@ -4,9 +4,9 @@ parent: public-api-methods.html metadata: indexPage: true --- + # Subscription Methods Use these methods to enable the server to push updates to your client when various events happen, so that you can know and react right away. WebSocket API only. - {% child-pages /%} diff --git a/docs/references/http-websocket-apis/public-api-methods/subscription-methods/subscribe.md b/docs/references/http-websocket-apis/public-api-methods/subscription-methods/subscribe.md index a4d649afc3..3a2375462f 100644 --- a/docs/references/http-websocket-apis/public-api-methods/subscription-methods/subscribe.md +++ b/docs/references/http-websocket-apis/public-api-methods/subscription-methods/subscribe.md @@ -2,24 +2,28 @@ html: subscribe.html parent: subscription-methods.html seo: - description: Listen for updates about a particular subject. + description: Listen for updates about a particular subject. labels: - Payments - Blockchain - Accounts - Smart Contracts --- + # subscribe + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/Subscribe.cpp "Source") The `subscribe` method requests periodic notifications from the server when certain events happen. ## Request Format + An example of the request format: {% tabs %} {% tab label="Subscribe to accounts" %} + ```json { "id": "Example watch Bitstamp's hot wallet", @@ -27,30 +31,34 @@ An example of the request format: "accounts": ["rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1"] } ``` + {% /tab %} {% tab label="Subscribe to order book" %} + ```json { - "id": "Example subscribe to XRP/GateHub USD order book", - "command": "subscribe", - "books": [ - { - "taker_pays": { - "currency": "XRP" - }, - "taker_gets": { - "currency": "USD", - "issuer": "rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq" - }, - "snapshot": true - } - ] + "id": "Example subscribe to XRP/GateHub USD order book", + "command": "subscribe", + "books": [ + { + "taker_pays": { + "currency": "XRP" + }, + "taker_gets": { + "currency": "USD", + "issuer": "rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq" + }, + "snapshot": true + } + ] } ``` + {% /tab %} {% tab label="Subscribe to ledger stream" %} + ```json { "id": "Example watch for new validated ledgers", @@ -58,6 +66,7 @@ An example of the request format: "streams": ["ledger"] } ``` + {% /tab %} {% /tabs %} @@ -66,31 +75,31 @@ An example of the request format: The request includes the following parameters: -| Field | Type | Required? | Description | -|:--------------------|:-------|:----------|:------------| -| `streams` | Array | No | Streams to subscribe to, as explained below. Each member of the array must be the string name of a stream. | -| `accounts` | Array | No | Array with the unique [addresses][Address] of accounts to monitor for validated transactions. The server sends a `transaction` type message whenever a transaction affects at least one of these accounts. | -| `accounts_proposed` | Array | No | Like `accounts`, but include transactions that are not yet finalized. | -| `books` | Array | No | Order books to monitor for updates. Each member of the array must be a [book object](#book-objects), as defined below. The server sends a `transaction` type message whenever a transaction affects this account. | -| `url` | String | Optional for Websocket; Required for JSON-RPC | **(Admin only)** URL where the server sends JSON-RPC callbacks for each event. | -| `url_username` | String | No | Username to provide for basic authentication at the callback URL. | -| `url_password` | String | No | Password to provide for basic authentication at the callback URL. | +| Field | Type | Required? | Description | +| :------------------ | :----- | :-------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `streams` | Array | No | Streams to subscribe to, as explained below. Each member of the array must be the string name of a stream. | +| `accounts` | Array | No | Array with the unique [addresses][Address] of accounts to monitor for validated transactions. The server sends a `transaction` type message whenever a transaction affects at least one of these accounts. | +| `accounts_proposed` | Array | No | Like `accounts`, but include transactions that are not yet finalized. | +| `books` | Array | No | Order books to monitor for updates. Each member of the array must be a [book object](#book-objects), as defined below. The server sends a `transaction` type message whenever a transaction affects this account. | +| `url` | String | Optional for Websocket; Required for JSON-RPC | **(Admin only)** URL where the server sends JSON-RPC callbacks for each event. | +| `url_username` | String | No | Username to provide for basic authentication at the callback URL. | +| `url_password` | String | No | Password to provide for basic authentication at the callback URL. | The following parameters are deprecated and may be removed without further notice: `user`, `password`, `rt_accounts`. The `streams` parameter provides access to the following default streams of information: -| Stream Name | Message Type | Description | -|:------------------------|:---------------------|:------------| -| `book_changes` | `bookChanges` | Sends order book changes whenever the consensus process declares a new validated ledger. | -| `consensus` | `consensusPhase` | Sends a message whenever the server changes phase in the consensus cycle. | -| `ledger` | `ledgerClosed` | Sends a message whenever the consensus process declares a new validated ledger. | -| `manifests` | `manifestReceived` | Sends a message whenever the server receives an update to a validator's ephemeral signing key. | -| `peer_status` | `peerStatusChange` | **(Admin only)** Information about connected peer `rippled` servers, especially with regards to the consensus process. | -| `transactions` | `transaction` | Sends a message whenever a transaction is included in a closed ledger. | +| Stream Name | Message Type | Description | +| :---------------------- | :------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `book_changes` | `bookChanges` | Sends order book changes whenever the consensus process declares a new validated ledger. | +| `consensus` | `consensusPhase` | Sends a message whenever the server changes phase in the consensus cycle. | +| `ledger` | `ledgerClosed` | Sends a message whenever the consensus process declares a new validated ledger. | +| `manifests` | `manifestReceived` | Sends a message whenever the server receives an update to a validator's ephemeral signing key. | +| `peer_status` | `peerStatusChange` | **(Admin only)** Information about connected peer `rippled` servers, especially with regards to the consensus process. | +| `transactions` | `transaction` | Sends a message whenever a transaction is included in a closed ledger. | | `transactions_proposed` | `transaction` | Sends a message whenever a transaction is included in a closed ledger, as well as some transactions that have not yet been included in a validated ledger and may never be. Not all proposed transactions appear before validation. {% admonition type="info" name="Note" %}[Even some transactions that don't succeed are included](../../../protocol/transactions/transaction-results/index.md) in validated ledgers, because they take the anti-spam transaction fee.{% /admonition %} | -| `server` | `serverStatus` | Sends a message whenever the status of the `rippled` server (for example, network connectivity) changes. | -| `validations` | `validationReceived` | Sends a message whenever the server receives a validation message, regardless of if the server trusts the validator. (An individual `rippled` declares a ledger validated when the server receives validation messages from at least a quorum of trusted validators.) | +| `server` | `serverStatus` | Sends a message whenever the status of the `rippled` server (for example, network connectivity) changes. | +| `validations` | `validationReceived` | Sends a message whenever the server receives a validation message, regardless of if the server trusts the validator. (An individual `rippled` declares a ledger validated when the server receives validation messages from at least a quorum of trusted validators.) | {% admonition type="info" name="Note" %}The following streams are not available from Clio servers: `server`, `peer_status`, `consensus`. If you request one of these streams, Clio returns the error `reportingUnsupported`. {% badge href="https://github.com/XRPLF/clio/releases/tag/2.0.0" %}New in: Clio v2.0{% /badge %}{% /admonition %} @@ -98,15 +107,14 @@ The `streams` parameter provides access to the following default streams of info Each member of the `books` array, if provided, is an object with the following fields: -| Field | Type | Required? | Description | -|:-------------|:---------------------|:----------|:------------| -| `taker_gets` | Object - Currency | Yes | Specification of which currency the account taking the offer would receive, as a [currency object with no amount](../../../protocol/data-types/currency-formats.md#specifying-without-amounts). | -| `taker_pays` | Object - Currency | Yes | Specification of which currency the account taking the offer would pay, as a [currency object with no amount](../../../protocol/data-types/currency-formats.md#specifying-without-amounts). | -| `both` | Boolean | No | If `true`, return both sides of the order book. The default is `false`. | +| Field | Type | Required? | Description | +| :----------- | :------------------- | :-------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `taker_gets` | Object - Currency | Yes | Specification of which currency the account taking the offer would receive, as a [currency object with no amount](../../../protocol/data-types/currency-formats.md#specifying-without-amounts). | +| `taker_pays` | Object - Currency | Yes | Specification of which currency the account taking the offer would pay, as a [currency object with no amount](../../../protocol/data-types/currency-formats.md#specifying-without-amounts). | +| `both` | Boolean | No | If `true`, return both sides of the order book. The default is `false`. | | `domain` | String - [Hash][] | No | The ledger entry ID of a permissioned domain. If provided, subscribe to the order books for the corresponding [permissioned DEX](../../../../concepts/tokens/decentralized-exchange/permissioned-dexes.md) instead of the open DEX. {% amendment-disclaimer name="PermissionedDEX" /%} | -| `snapshot` | Boolean | No | If `true`, return the current state of the order book once when you subscribe before sending updates. The default is `false`. | -| `taker` | String - [Address][] | No | The acount to use as a perspective for viewing offers. This affects the funding status and fees of [offers](../../../../concepts/tokens/decentralized-exchange/offers.md). | - +| `snapshot` | Boolean | No | If `true`, return the current state of the order book once when you subscribe before sending updates. The default is `false`. | +| `taker` | String - [Address][] | No | The acount to use as a perspective for viewing offers. This affects the funding status and fees of [offers](../../../../concepts/tokens/decentralized-exchange/offers.md). | ## Response Format @@ -115,6 +123,7 @@ An example of a successful response: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": "Example watch Bitstamp's hot wallet", @@ -123,31 +132,32 @@ An example of a successful response: "result": {} } ``` + {% /tab %} {% /tabs %} The response follows the [standard format][]. The fields contained in the response vary depending on what subscriptions were included in the request. -* `accounts` and `accounts_proposed` - No fields returned. -* *Stream: `server`* - Information about the server status, such as `load_base` (the current load level of the server), `random` (a randomly-generated value), and others, subject to change. -* *Stream: `transactions`*, *Stream: `transactions_proposed`*, *Stream: `validations`*, and *Stream: `consensus`* - No fields returned. -* *Stream: `ledger`* - Information about the ledgers on hand and current fee schedule. This includes the same fields as a [ledger stream message](#ledger-stream), except that it omits the `type` and `txn_count` fields. -* `books` - No fields returned by default. If `"snapshot": true` is set in the request, returns `offers` (an array of offer definition objects defining the order book). +- `accounts` and `accounts_proposed` - No fields returned. +- _Stream: `server`_ - Information about the server status, such as `load_base` (the current load level of the server), `random` (a randomly-generated value), and others, subject to change. +- _Stream: `transactions`_, _Stream: `transactions_proposed`_, _Stream: `validations`_, and _Stream: `consensus`_ - No fields returned. +- _Stream: `ledger`_ - Information about the ledgers on hand and current fee schedule. This includes the same fields as a [ledger stream message](#ledger-stream), except that it omits the `type` and `txn_count` fields. +- `books` - No fields returned by default. If `"snapshot": true` is set in the request, returns `offers` (an array of offer definition objects defining the order book). ## Possible Errors -* Any of the [universal error types][]. -* `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. -* `noPermission` - The request included the `url` field, but you are not connected as an admin. -* `unknownStream` - One or more the members of the `streams` field of the request is not a valid stream name. -* `malformedStream` - The `streams` field of the request is not formatted properly. -* `malformedAccount` - One of the addresses in the `accounts` or `accounts_proposed` fields of the request is not a properly-formatted XRP Ledger address. (**Note:**: You _can_ subscribe to the stream of an address that does not yet have an entry in the global ledger to get a message when that address becomes funded.) -* `srcCurMalformed` - One or more `taker_pays` sub-fields of the `books` field in the request is not formatted properly. -* `dstAmtMalformed` - One or more `taker_gets` sub-fields of the `books` field in the request is not formatted properly. -* `srcIsrMalformed` - The `issuer` field of one or more `taker_pays` sub-fields of the `books` field in the request is not valid. -* `dstIsrMalformed` - The `issuer` field of one or more `taker_gets` sub-fields of the `books` field in the request is not valid. -* `badMarket` - One or more desired order books in the `books` field does not exist; for example, offers to exchange a currency for itself. +- Any of the [universal error types][]. +- `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. +- `noPermission` - The request included the `url` field, but you are not connected as an admin. +- `unknownStream` - One or more the members of the `streams` field of the request is not a valid stream name. +- `malformedStream` - The `streams` field of the request is not formatted properly. +- `malformedAccount` - One of the addresses in the `accounts` or `accounts_proposed` fields of the request is not a properly-formatted XRP Ledger address. (**Note:**: You _can_ subscribe to the stream of an address that does not yet have an entry in the global ledger to get a message when that address becomes funded.) +- `srcCurMalformed` - One or more `taker_pays` sub-fields of the `books` field in the request is not formatted properly. +- `dstAmtMalformed` - One or more `taker_gets` sub-fields of the `books` field in the request is not formatted properly. +- `srcIsrMalformed` - The `issuer` field of one or more `taker_pays` sub-fields of the `books` field in the request is not valid. +- `dstIsrMalformed` - The `issuer` field of one or more `taker_gets` sub-fields of the `books` field in the request is not valid. +- `badMarket` - One or more desired order books in the `books` field does not exist; for example, offers to exchange a currency for itself. When you subscribe to a particular stream, you receive periodic responses on that stream until you unsubscribe or close the WebSocket connection. The content of those responses depends on what you subscribed to. Here are some examples: @@ -173,20 +183,19 @@ The `ledger` stream only sends `ledgerClosed` messages when [the consensus proce The fields from a ledger stream message are as follows: -| Field | Type | Description | -|:--------------------|:--------------------------|:---------------------------| -| `type` | String | `ledgerClosed` indicates this is from the ledger stream | +| Field | Type | Description | +| :------------------ | :------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `type` | String | `ledgerClosed` indicates this is from the ledger stream | | `fee_base` | Number | The [reference transaction cost](../../../../concepts/transactions/transaction-cost.md#reference-transaction-cost) as of this ledger version, in [drops of XRP][]. If this ledger version includes a [SetFee pseudo-transaction](../../../protocol/transactions/pseudo-transaction-types/setfee.md) the new transaction cost applies starting with the following ledger version. | -| `fee_ref` | Number | _(May be omitted)_ The [reference transaction cost](../../../../concepts/transactions/transaction-cost.md#reference-transaction-cost) in "fee units". If the _[XRPFees amendment][]_ is enabled, this field is permanently omitted as it will no longer be relevant. | -| `ledger_hash` | String - [Hash][] | The identifying hash of the ledger version that was closed. | -| `ledger_index` | Number - [Ledger Index][] | The ledger index of the ledger that was closed. | -| `ledger_time` | Number | The time this ledger was closed, in [seconds since the Ripple Epoch][] | -| `network_id` | Number | The XRPL network of this stream. | -| `reserve_base` | Number | The minimum [reserve](../../../../concepts/accounts/reserves.md), in [drops of XRP][], that is required for an account. If this ledger version includes a [SetFee pseudo-transaction](../../../protocol/transactions/pseudo-transaction-types/setfee.md) the new base reserve applies starting with the following ledger version. | -| `reserve_inc` | Number | The [owner reserve](../../../../concepts/accounts/reserves.md#owner-reserves) for each object an account owns in the ledger, in [drops of XRP][]. If the ledger includes a [SetFee pseudo-transaction](../../../protocol/transactions/pseudo-transaction-types/setfee.md) the new owner reserve applies after this ledger. | -| `txn_count` | Number | Number of new transactions included in this ledger version. | -| `validated_ledgers` | String | _(May be omitted)_ Range of ledgers that the server has available. This may be a disjoint sequence such as `24900901-24900984,24901116-24901158`. This field is not returned if the server is not connected to the network, or if it is connected but has not yet obtained a ledger from the network. | - +| `fee_ref` | Number | _(May be omitted)_ The [reference transaction cost](../../../../concepts/transactions/transaction-cost.md#reference-transaction-cost) in "fee units". If the _[XRPFees amendment][]_ is enabled, this field is permanently omitted as it will no longer be relevant. | +| `ledger_hash` | String - [Hash][] | The identifying hash of the ledger version that was closed. | +| `ledger_index` | Number - [Ledger Index][] | The ledger index of the ledger that was closed. | +| `ledger_time` | Number | The time this ledger was closed, in [seconds since the Ripple Epoch][] | +| `network_id` | Number | The XRPL network of this stream. | +| `reserve_base` | Number | The minimum [reserve](../../../../concepts/accounts/reserves.md), in [drops of XRP][], that is required for an account. If this ledger version includes a [SetFee pseudo-transaction](../../../protocol/transactions/pseudo-transaction-types/setfee.md) the new base reserve applies starting with the following ledger version. | +| `reserve_inc` | Number | The [owner reserve](../../../../concepts/accounts/reserves.md#owner-reserves) for each object an account owns in the ledger, in [drops of XRP][]. If the ledger includes a [SetFee pseudo-transaction](../../../protocol/transactions/pseudo-transaction-types/setfee.md) the new owner reserve applies after this ledger. | +| `txn_count` | Number | Number of new transactions included in this ledger version. | +| `validated_ledgers` | String | _(May be omitted)_ Range of ledgers that the server has available. This may be a disjoint sequence such as `24900901-24900984,24901116-24901158`. This field is not returned if the server is not connected to the network, or if it is connected but has not yet obtained a ledger from the network. | ## Validations Stream @@ -194,69 +203,68 @@ The validations stream sends messages whenever it receives validation messages, ```json { - "type": "validationReceived", - "amendments":[ - "42426C4D4F1009EE67080A9B7965B44656D7714D104A72F9B4369F97ABF044EE", - "4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373", - "6781F8368C4771B83E8B821D88F580202BCB4228075297B19E4FDC5233F1EFDC", - "C1B8D934087225F509BEB5A8EC24447854713EE447D277F69545ABFA0E0FD490", - "DA1BD556B42D85EA9C84066D028D355B52416734D3283F85E216EA5DA6DB7E13" - ], - "base_fee":10, - "flags":2147483649, - "full":true, - "ledger_hash":"EC02890710AAA2B71221B0D560CFB22D64317C07B7406B02959AD84BAD33E602", - "ledger_index":"6", - "load_fee":256000, - "master_key": "nHUon2tpyJEHHYGmxqeGu37cvPYHzrMtUNQFVdCgGNvEkjmCpTqK", - "network_id": 1, - "reserve_base":20000000, - "reserve_inc":5000000, - "signature":"3045022100E199B55643F66BC6B37DBC5E185321CF952FD35D13D9E8001EB2564FFB94A07602201746C9A4F7A93647131A2DEB03B76F05E426EC67A5A27D77F4FF2603B9A528E6", - "signing_time":515115322, - "validation_public_key":"n94Gnc6svmaPPRHUAyyib1gQUov8sYbjLoEwUBYPH39qHZXuo8ZT" + "type": "validationReceived", + "amendments": [ + "42426C4D4F1009EE67080A9B7965B44656D7714D104A72F9B4369F97ABF044EE", + "4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373", + "6781F8368C4771B83E8B821D88F580202BCB4228075297B19E4FDC5233F1EFDC", + "C1B8D934087225F509BEB5A8EC24447854713EE447D277F69545ABFA0E0FD490", + "DA1BD556B42D85EA9C84066D028D355B52416734D3283F85E216EA5DA6DB7E13" + ], + "base_fee": 10, + "flags": 2147483649, + "full": true, + "ledger_hash": "EC02890710AAA2B71221B0D560CFB22D64317C07B7406B02959AD84BAD33E602", + "ledger_index": "6", + "load_fee": 256000, + "master_key": "nHUon2tpyJEHHYGmxqeGu37cvPYHzrMtUNQFVdCgGNvEkjmCpTqK", + "network_id": 1, + "reserve_base": 20000000, + "reserve_inc": 5000000, + "signature": "3045022100E199B55643F66BC6B37DBC5E185321CF952FD35D13D9E8001EB2564FFB94A07602201746C9A4F7A93647131A2DEB03B76F05E426EC67A5A27D77F4FF2603B9A528E6", + "signing_time": 515115322, + "validation_public_key": "n94Gnc6svmaPPRHUAyyib1gQUov8sYbjLoEwUBYPH39qHZXuo8ZT" } ``` The fields from a validations stream message are as follows: -| Field | Type | Description | -|:------------------------|:-----------------|:--------------------------------| -| `type` | String | The value `validationReceived` indicates this is from the validations stream. | -| `amendments` | Array of Strings | _(May be omitted)_ The [amendments](../../../../concepts/networks-and-servers/amendments.md) this server wants to be added to the protocol. | -| `base_fee` | Integer | _(May be omitted)_ The unscaled transaction cost (`reference_fee` value) this server wants to set by [Fee Voting](../../../../concepts/consensus-protocol/fee-voting.md). | -| `cookie` | String - Number | _(May be omitted)_ An arbitrary value chosen by the server at startup. If the same validation key pair signs validations with different cookies concurrently, that usually indicates that multiple servers are incorrectly configured to use the same validation key pair. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.8.1" %}New in: rippled 1.8.1{% /badge %} | +| Field | Type | Description | +| :---------------------- | :--------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `type` | String | The value `validationReceived` indicates this is from the validations stream. | +| `amendments` | Array of Strings | _(May be omitted)_ The [amendments](../../../../concepts/networks-and-servers/amendments.md) this server wants to be added to the protocol. | +| `base_fee` | Integer | _(May be omitted)_ The unscaled transaction cost (`reference_fee` value) this server wants to set by [Fee Voting](../../../../concepts/consensus-protocol/fee-voting.md). | +| `cookie` | String - Number | _(May be omitted)_ An arbitrary value chosen by the server at startup. If the same validation key pair signs validations with different cookies concurrently, that usually indicates that multiple servers are incorrectly configured to use the same validation key pair. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.8.1" %}New in: rippled 1.8.1{% /badge %} | | `flags` | Number | Bit-mask of flags added to this validation message. The flag `0x80000000` indicates that the validation signature is fully-canonical. The flag `0x00000001` indicates that this is a full validation; otherwise it's a partial validation. Partial validations are not meant to vote for any particular ledger. A partial validation indicates that the validator is still online but not keeping up with consensus. | -| `full` | Boolean | If `true`, this is a full validation. Otherwise, this is a partial validation. Partial validations are not meant to vote for any particular ledger. A partial validation indicates that the validator is still online but not keeping up with consensus. | -| `ledger_hash` | String | The identifying hash of the proposed ledger is being validated. | -| `ledger_index` | String - Number | The [Ledger Index][] of the proposed ledger. | -| `load_fee` | Integer | _(May be omitted)_ The local load-scaled transaction cost this validator is currently enforcing, in fee units. | -| `master_key` | String | _(May be omitted)_ The validator's master public key, if the validator is using a validator token, in the XRP Ledger's [base58][] format. (See also: [Enable Validation on your `rippled` Server](../../../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md#3-enable-validation-on-your-rippled-server).) | -| `network_id` | Number | The [XRPL network](../../../protocol/transactions/common-fields.md#networkid-field) of this stream. {% badge href="https://github.com/XRPLF/rippled/releases/tag/2.6.0" %}New in: rippled 2.6.0{% /badge %} | -| `reserve_base` | Integer | _(May be omitted)_ The minimum reserve requirement (`account_reserve` value) this validator wants to set by [Fee Voting](../../../../concepts/consensus-protocol/fee-voting.md). | -| `reserve_inc` | Integer | _(May be omitted)_ The increment in the reserve requirement (`owner_reserve` value) this validator wants to set by [Fee Voting](../../../../concepts/consensus-protocol/fee-voting.md). | -| `server_version` | String - Number | _(May be omitted)_ An 64-bit integer that encodes the version number of the validating server. For example, `"1745990410175512576"`. Only provided once every 256 ledgers. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.8.1" %}New in: rippled 1.8.1{% /badge %} | -| `signature` | String | The signature that the validator used to sign its vote for this ledger. | -| `signing_time` | Number | When this validation vote was signed, in [seconds since the Ripple Epoch][]. | -| `validated_hash` | String | The unique hash of the proposed ledger this validation applies to. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.8.1" %}New in: rippled 1.8.1{% /badge %} | -| `validation_public_key` | String | The public key from the key-pair that the validator used to sign the message, in the XRP Ledger's [base58][] format. This identifies the validator sending the message and can also be used to verify the `signature`. If the validator is using a token, this is an ephemeral public key. | - +| `full` | Boolean | If `true`, this is a full validation. Otherwise, this is a partial validation. Partial validations are not meant to vote for any particular ledger. A partial validation indicates that the validator is still online but not keeping up with consensus. | +| `ledger_hash` | String | The identifying hash of the proposed ledger is being validated. | +| `ledger_index` | String - Number | The [Ledger Index][] of the proposed ledger. | +| `load_fee` | Integer | _(May be omitted)_ The local load-scaled transaction cost this validator is currently enforcing, in fee units. | +| `master_key` | String | _(May be omitted)_ The validator's master public key, if the validator is using a validator token, in the XRP Ledger's [base58][] format. (See also: [Enable Validation on your `rippled` Server](../../../../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md#3-enable-validation-on-your-rippled-server).) | +| `network_id` | Number | The [XRPL network](../../../protocol/transactions/common-fields.md#networkid-field) of this stream. {% badge href="https://github.com/XRPLF/rippled/releases/tag/2.6.0" %}New in: rippled 2.6.0{% /badge %} | +| `reserve_base` | Integer | _(May be omitted)_ The minimum reserve requirement (`account_reserve` value) this validator wants to set by [Fee Voting](../../../../concepts/consensus-protocol/fee-voting.md). | +| `reserve_inc` | Integer | _(May be omitted)_ The increment in the reserve requirement (`owner_reserve` value) this validator wants to set by [Fee Voting](../../../../concepts/consensus-protocol/fee-voting.md). | +| `server_version` | String - Number | _(May be omitted)_ An 64-bit integer that encodes the version number of the validating server. For example, `"1745990410175512576"`. Only provided once every 256 ledgers. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.8.1" %}New in: rippled 1.8.1{% /badge %} | +| `signature` | String | The signature that the validator used to sign its vote for this ledger. | +| `signing_time` | Number | When this validation vote was signed, in [seconds since the Ripple Epoch][]. | +| `validated_hash` | String | The unique hash of the proposed ledger this validation applies to. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.8.1" %}New in: rippled 1.8.1{% /badge %} | +| `validation_public_key` | String | The public key from the key-pair that the validator used to sign the message, in the XRP Ledger's [base58][] format. This identifies the validator sending the message and can also be used to verify the `signature`. If the validator is using a token, this is an ephemeral public key. | ## Transaction Streams Many subscriptions result in messages about transactions, including the following: -* The `transactions` stream -* The `transactions_proposed` stream -* `accounts` subscriptions -* `accounts_proposed` subscriptions -* `book` (Order Book) subscriptions +- The `transactions` stream +- The `transactions_proposed` stream +- `accounts` subscriptions +- `accounts_proposed` subscriptions +- `book` (Order Book) subscriptions The `transactions_proposed` stream, strictly speaking, is a superset of the `transactions` stream: it includes all validated transactions, as well as some suggested transactions that have not yet been included in a validated ledger and may never be. You can identify these "in-flight" transactions by their fields: -* The `validated` field is missing or has a value of `false`. -* There is no `meta` or `metadata` field. -* Instead of `ledger_hash` and `ledger_index` fields specifying in which ledger version the transactions were finalized, there is a `ledger_current_index` field specifying in which ledger version they are currently proposed. +- The `validated` field is missing or has a value of `false`. +- There is no `meta` or `metadata` field. +- Instead of `ledger_hash` and `ledger_index` fields specifying in which ledger version the transactions were finalized, there is a `ledger_current_index` field specifying in which ledger version they are currently proposed. Otherwise, the messages from the `transactions_proposed` stream are the same as ones from the `transactions` stream. @@ -342,37 +350,37 @@ Transaction stream messages have the following fields: {% tab label="API v2" %} -| Field | Type | Description | -|:------------------------|:--------------------------|:-----------------------| -| `close_time_iso` | String | The time the ledger containing this transaction was closed, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format. | -| `type` | String | `transaction` indicates this is the notification of a transaction, which could come from several possible streams. | -| `engine_result` | String | String [Transaction result code](../../../protocol/transactions/transaction-results/index.md) | -| `engine_result_code` | Number | Numeric [transaction response code](../../../protocol/transactions/transaction-results/index.md), if applicable. | -| `engine_result_message` | String | Human-readable explanation for the transaction response | -| `hash` | String | The unique hash identifier of the transaction. | +| Field | Type | Description | +| :---------------------- | :------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `close_time_iso` | String | The time the ledger containing this transaction was closed, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format. | +| `type` | String | `transaction` indicates this is the notification of a transaction, which could come from several possible streams. | +| `engine_result` | String | String [Transaction result code](../../../protocol/transactions/transaction-results/index.md) | +| `engine_result_code` | Number | Numeric [transaction response code](../../../protocol/transactions/transaction-results/index.md), if applicable. | +| `engine_result_message` | String | Human-readable explanation for the transaction response | +| `hash` | String | The unique hash identifier of the transaction. | | `ledger_current_index` | Number - [Ledger Index][] | _(Unvalidated transactions only)_ The ledger index of the current in-progress [ledger version](../../../../concepts/ledgers/index.md) for which this transaction is currently proposed. | -| `ledger_hash` | String - [Hash][] | _(Validated transactions only)_ The identifying hash of the ledger version that includes this transaction | -| `ledger_index` | Number - [Ledger Index][] | _(Validated transactions only)_ The ledger index of the ledger version that includes this transaction. | -| `meta` | Object | _(Validated transactions only)_ The [transaction metadata](../../../protocol/transactions/metadata.md), which shows the exact outcome of the transaction in detail. | -| `tx_json` | Object | The [definition of the transaction](../../../protocol/transactions/index.md) in JSON format. | -| `validated` | Boolean | If `true`, this transaction is included in a validated ledger and its outcome is final. Responses from the `transaction` stream should always be validated. | +| `ledger_hash` | String - [Hash][] | _(Validated transactions only)_ The identifying hash of the ledger version that includes this transaction | +| `ledger_index` | Number - [Ledger Index][] | _(Validated transactions only)_ The ledger index of the ledger version that includes this transaction. | +| `meta` | Object | _(Validated transactions only)_ The [transaction metadata](../../../protocol/transactions/metadata.md), which shows the exact outcome of the transaction in detail. | +| `tx_json` | Object | The [definition of the transaction](../../../protocol/transactions/index.md) in JSON format. | +| `validated` | Boolean | If `true`, this transaction is included in a validated ledger and its outcome is final. Responses from the `transaction` stream should always be validated. | {% /tab %} {% tab label="API v1" %} -| Field | Type | Description | -|:------------------------|:--------------------------|:-----------------------| -| `type` | String | `transaction` indicates this is the notification of a transaction, which could come from several possible streams. | -| `engine_result` | String | String [Transaction result code](../../../protocol/transactions/transaction-results/index.md) | -| `engine_result_code` | Number | Numeric [transaction response code](../../../protocol/transactions/transaction-results/index.md), if applicable. | -| `engine_result_message` | String | Human-readable explanation for the transaction response | +| Field | Type | Description | +| :---------------------- | :------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `type` | String | `transaction` indicates this is the notification of a transaction, which could come from several possible streams. | +| `engine_result` | String | String [Transaction result code](../../../protocol/transactions/transaction-results/index.md) | +| `engine_result_code` | Number | Numeric [transaction response code](../../../protocol/transactions/transaction-results/index.md), if applicable. | +| `engine_result_message` | String | Human-readable explanation for the transaction response | | `ledger_current_index` | Number - [Ledger Index][] | _(Unvalidated transactions only)_ The ledger index of the current in-progress [ledger version](../../../../concepts/ledgers/index.md) for which this transaction is currently proposed. | -| `ledger_hash` | String - [Hash][] | _(Validated transactions only)_ The identifying hash of the ledger version that includes this transaction | -| `ledger_index` | Number - [Ledger Index][] | _(Validated transactions only)_ The ledger index of the ledger version that includes this transaction. | -| `meta` | Object | _(Validated transactions only)_ The [transaction metadata](../../../protocol/transactions/metadata.md), which shows the exact outcome of the transaction in detail. | -| `transaction` | Object | The [definition of the transaction](../../../protocol/transactions/index.md) in JSON format. | -| `validated` | Boolean | If `true`, this transaction is included in a validated ledger and its outcome is final. Responses from the `transaction` stream should always be validated. | +| `ledger_hash` | String - [Hash][] | _(Validated transactions only)_ The identifying hash of the ledger version that includes this transaction | +| `ledger_index` | Number - [Ledger Index][] | _(Validated transactions only)_ The ledger index of the ledger version that includes this transaction. | +| `meta` | Object | _(Validated transactions only)_ The [transaction metadata](../../../protocol/transactions/metadata.md), which shows the exact outcome of the transaction in detail. | +| `transaction` | Object | The [definition of the transaction](../../../protocol/transactions/index.md) in JSON format. | +| `validated` | Boolean | If `true`, this transaction is included in a validated ledger and its outcome is final. Responses from the `transaction` stream should always be validated. | {% /tab %} @@ -386,39 +394,38 @@ Example of a Peer Status stream message: ```json { - "action": "CLOSING_LEDGER", - "date": 508546525, - "ledger_hash": "4D4CD9CD543F0C1EF023CC457F5BEFEA59EEF73E4552542D40E7C4FA08D3C320", - "ledger_index": 18853106, - "ledger_index_max": 18853106, - "ledger_index_min": 18852082, - "type": "peerStatusChange" + "action": "CLOSING_LEDGER", + "date": 508546525, + "ledger_hash": "4D4CD9CD543F0C1EF023CC457F5BEFEA59EEF73E4552542D40E7C4FA08D3C320", + "ledger_index": 18853106, + "ledger_index_max": 18853106, + "ledger_index_min": 18852082, + "type": "peerStatusChange" } ``` Peer Status stream messages represent some event where the status of the peer `rippled` server changed. These messages are JSON objects with the following fields: -| Field | Value | Description | -|:-------------------|:-------|:-----------------------------------------------| -| `type` | String | `peerStatusChange` indicates this comes from the Peer Status stream. | +| Field | Value | Description | +| :----------------- | :----- | :--------------------------------------------------------------------------------------------------------------- | +| `type` | String | `peerStatusChange` indicates this comes from the Peer Status stream. | | `action` | String | The type of event that prompted this message. See [Peer Status Events](#peer-status-events) for possible values. | -| `date` | Number | The time this event occurred, in [seconds since the Ripple Epoch][]. | -| `ledger_hash` | String | (May be omitted) The identifying [Hash][] of a ledger version to which this message pertains. | -| `ledger_index` | Number | (May be omitted) The [Ledger Index][] of a ledger version to which this message pertains. | -| `ledger_index_max` | Number | (May be omitted) The largest [Ledger Index][] the peer has currently available. | -| `ledger_index_min` | Number | (May be omitted) The smallest [Ledger Index][] the peer has currently available. | +| `date` | Number | The time this event occurred, in [seconds since the Ripple Epoch][]. | +| `ledger_hash` | String | (May be omitted) The identifying [Hash][] of a ledger version to which this message pertains. | +| `ledger_index` | Number | (May be omitted) The [Ledger Index][] of a ledger version to which this message pertains. | +| `ledger_index_max` | Number | (May be omitted) The largest [Ledger Index][] the peer has currently available. | +| `ledger_index_min` | Number | (May be omitted) The smallest [Ledger Index][] the peer has currently available. | ### Peer Status Events The `action` field of a Peer Status stream message can have the following values: -| `Value` | Meaning | -|:------------------|:---------------------------------------------------------| -| `CLOSING_LEDGER` | The peer closed a ledger version with this [Ledger Index][], which usually means it is about to start consensus. | +| `Value` | Meaning | +| :---------------- | :----------------------------------------------------------------------------------------------------------------------------------------------- | +| `CLOSING_LEDGER` | The peer closed a ledger version with this [Ledger Index][], which usually means it is about to start consensus. | | `ACCEPTED_LEDGER` | The peer built this ledger version as the result of a consensus round. **Note:** This ledger is still not certain to become immutably validated. | -| `SWITCHED_LEDGER` | The peer concluded it was not following the rest of the network and switched to a different ledger version. | -| `LOST_SYNC` | The peer fell behind the rest of the network in tracking which ledger versions are validated and which are undergoing consensus. | - +| `SWITCHED_LEDGER` | The peer concluded it was not following the rest of the network and switched to a different ledger version. | +| `LOST_SYNC` | The peer fell behind the rest of the network in tracking which ledger versions are validated and which are undergoing consensus. | ## Order Book Streams @@ -570,11 +577,10 @@ Example order book stream message: The format of an order book stream message is the same as that of [transaction stream messages](#transaction-streams), except that `OfferCreate` transactions also contain the following field: -| Field | Value | Description | -|:--------------------------|:-------|:----------------------------------------| +| Field | Value | Description | +| :------------------------ | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `transaction.owner_funds` | String | Numeric amount of the `TakerGets` currency that the `Account` sending this OfferCreate transaction has after executing this transaction. This does not check whether the currency amount is [frozen](../../../../concepts/tokens/fungible-tokens/freezes.md).
    [API v2][] Renamed to `tx_json.owner_funds`. | - ## Book Changes Stream The `book_changes` stream sends `bookChanges` messages whenever a new ledger is validated. This message contains a summary of all changes to order books in the decentralized exchange that occurred in that ledger. @@ -704,15 +710,14 @@ Example `bookChanges` message: The fields from a Book Changes stream message are as follows: -| Field | Value | Description | -|:---------------|:-----------------|:----------------------------------------| -| `type` | String | The value `bookChanges` indicates this is from the Book Changes stream. | -| `ledger_index` | [Ledger Index][] | The ledger index of the ledger with these changes. | -| `ledger_hash` | [Hash][] | The identifying hash of the ledger with these changes. | -| `ledger_time` | Number | The official close time of the ledger with these changes, in [seconds since the Ripple Epoch][]. | +| Field | Value | Description | +| :------------- | :--------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `type` | String | The value `bookChanges` indicates this is from the Book Changes stream. | +| `ledger_index` | [Ledger Index][] | The ledger index of the ledger with these changes. | +| `ledger_hash` | [Hash][] | The identifying hash of the ledger with these changes. | +| `ledger_time` | Number | The official close time of the ledger with these changes, in [seconds since the Ripple Epoch][]. | | `changes` | Array | List of [Book Update Objects](../path-and-order-book-methods/book_changes.md#book-update-objects), containing one entry for each order book that was updated in this ledger version. The array is empty if no order books were updated. | - ## Consensus Stream The `consensus` stream sends `consensusPhase` messages when [the consensus process](../../../../concepts/consensus-protocol/index.md) changes phase. The message contains the new phase of consensus the server is in. @@ -726,9 +731,9 @@ The `consensus` stream sends `consensusPhase` messages when [the consensus proce The fields from a consensus stream message are as follows: -| Field | Type | Description | -|:------------|:-------|:---------------------------| -| `type` | String | The value `consensusPhase` indicates this is from the consensus stream | +| Field | Type | Description | +| :---------- | :----- | :------------------------------------------------------------------------------------------------- | +| `type` | String | The value `consensusPhase` indicates this is from the consensus stream | | `consensus` | String | The new consensus phase the server is in. Possible values are `open`, `establish`, and `accepted`. | {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/http-websocket-apis/public-api-methods/subscription-methods/unsubscribe.md b/docs/references/http-websocket-apis/public-api-methods/subscription-methods/unsubscribe.md index 2e63c44f4e..b0c685549d 100644 --- a/docs/references/http-websocket-apis/public-api-methods/subscription-methods/unsubscribe.md +++ b/docs/references/http-websocket-apis/public-api-methods/subscription-methods/unsubscribe.md @@ -1,12 +1,13 @@ --- seo: - description: Stop listening for updates about a particular subject. + description: Stop listening for updates about a particular subject. labels: - - Payments - - Blockchain - - Accounts - - Smart Contracts + - Payments + - Blockchain + - Accounts + - Smart Contracts --- + # unsubscribe [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/Unsubscribe.cpp "Source") @@ -14,32 +15,35 @@ labels: The `unsubscribe` command tells the server to stop sending messages for a particular subscription or set of subscriptions. ## Request Format + An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": "Unsubscribe a lot of stuff", - "command": "unsubscribe", - "streams": ["ledger","server","transactions","transactions_proposed"], - "accounts": ["rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1"], - "accounts_proposed": ["rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1"], - "books": [ - { - "taker_pays": { - "currency": "XRP" - }, - "taker_gets": { - "currency": "USD", - "issuer": "rUQTpMqAF5jhykj4FExVeXakrZpiKF6cQV" - }, - "both": true - } - ] + "id": "Unsubscribe a lot of stuff", + "command": "unsubscribe", + "streams": ["ledger", "server", "transactions", "transactions_proposed"], + "accounts": ["rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1"], + "accounts_proposed": ["rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1"], + "books": [ + { + "taker_pays": { + "currency": "XRP" + }, + "taker_gets": { + "currency": "USD", + "issuer": "rUQTpMqAF5jhykj4FExVeXakrZpiKF6cQV" + }, + "both": true + } + ] } ``` + {% /tab %} {% /tabs %} @@ -48,22 +52,22 @@ An example of the request format: The parameters in the request are specified almost exactly like the parameters to the [subscribe method][], except that they are used to define which subscriptions to end instead. The parameters are: -| `Field` | Type | Required? | Description | -|:--------------------|:------|:----------|:-----------------------------------------------| -| `streams` | Array | No | Array of string names of generic streams to unsubscribe from, including `ledger`, `server`, `transactions`, and `transactions_proposed`. | +| `Field` | Type | Required? | Description | +| :------------------ | :---- | :-------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `streams` | Array | No | Array of string names of generic streams to unsubscribe from, including `ledger`, `server`, `transactions`, and `transactions_proposed`. | | `accounts` | Array | No | Array of unique account addresses to stop receiving updates for, in the XRP Ledger's [base58][] format. (This only stops those messages if you previously subscribed to those accounts specifically. You cannot use this to filter accounts out of the general transactions stream.) | -| `accounts_proposed` | Array | No | Like `accounts`, but for `accounts_proposed` subscriptions that included not-yet-validated transactions. | -| `books` | Array | No | Array of objects defining order books to unsubscribe from, as explained below. | +| `accounts_proposed` | Array | No | Like `accounts`, but for `accounts_proposed` subscriptions that included not-yet-validated transactions. | +| `books` | Array | No | Array of objects defining order books to unsubscribe from, as explained below. | The `rt_accounts` and `url` parameters, and the `rt_transactions` stream name, are deprecated and may be removed without further notice. The objects in the `books` array are defined almost like the ones from subscribe, except that they don't have all the fields. The fields they have are as follows: -| `Field` | Type | Required? | Description | -|:-------------|:--------|:----------|:----------------------------------------------------| +| `Field` | Type | Required? | Description | +| :----------- | :------ | :-------- | :--------------------------------------------------------------------------------------------------------------------------------------------------- | | `taker_gets` | Object | No | Specification of which currency the account taking the offer would receive, as an object with `currency` and `issuer` fields. Omit `issuer` for XRP. | | `taker_pays` | Object | No | Specification of which currency the account taking the offer would receive, as an object with `currency` and `issuer` fields. Omit `issuer` for XRP. | -| `both` | Boolean | No | If `true`, remove a subscription for both sides of the order book. | +| `both` | Boolean | No | If `true`, remove a subscription for both sides of the order book. | ## Response Format @@ -72,14 +76,16 @@ An example of a successful response: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": "Unsubscribe a lot of stuff", - "result": {}, - "status": "success", - "type": "response" + "id": "Unsubscribe a lot of stuff", + "result": {}, + "status": "success", + "type": "response" } ``` + {% /tab %} {% /tabs %} @@ -88,16 +94,16 @@ The response follows the [standard format][], with a successful result containin ## Possible Errors -* Any of the [universal error types][]. -* `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. -* `noPermission` - The request included the `url` field, but you are not connected as an admin. -* `malformedStream` - The `streams` field of the request is not formatted properly. -* `malformedAccount` - One of the addresses in the `accounts` or `accounts_proposed` fields of the request is not a properly-formatted XRP Ledger address. - * **Note:** You _can_ subscribe to the stream of an address that does not yet have an entry in the global ledger to get a message when that address becomes funded. -* `srcCurMalformed` - One or more `taker_pays` sub-fields of the `books` field in the request is not formatted properly. -* `dstAmtMalformed` - One or more `taker_gets` sub-fields of the `books` field in the request is not formatted properly. -* `srcIsrMalformed` - The `issuer` field of one or more `taker_pays` sub-fields of the `books` field in the request is not valid. -* `dstIsrMalformed` - The `issuer` field of one or more `taker_gets` sub-fields of the `books` field in the request is not valid. -* `badMarket` - One or more desired order books in the `books` field does not exist; for example, offers to exchange a currency for itself. +- Any of the [universal error types][]. +- `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. +- `noPermission` - The request included the `url` field, but you are not connected as an admin. +- `malformedStream` - The `streams` field of the request is not formatted properly. +- `malformedAccount` - One of the addresses in the `accounts` or `accounts_proposed` fields of the request is not a properly-formatted XRP Ledger address. + - **Note:** You _can_ subscribe to the stream of an address that does not yet have an entry in the global ledger to get a message when that address becomes funded. +- `srcCurMalformed` - One or more `taker_pays` sub-fields of the `books` field in the request is not formatted properly. +- `dstAmtMalformed` - One or more `taker_gets` sub-fields of the `books` field in the request is not formatted properly. +- `srcIsrMalformed` - The `issuer` field of one or more `taker_pays` sub-fields of the `books` field in the request is not valid. +- `dstIsrMalformed` - The `issuer` field of one or more `taker_gets` sub-fields of the `books` field in the request is not valid. +- `badMarket` - One or more desired order books in the `books` field does not exist; for example, offers to exchange a currency for itself. {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/http-websocket-apis/public-api-methods/transaction-methods/index.md b/docs/references/http-websocket-apis/public-api-methods/transaction-methods/index.md index 89e248b65b..b5f1e3e136 100644 --- a/docs/references/http-websocket-apis/public-api-methods/transaction-methods/index.md +++ b/docs/references/http-websocket-apis/public-api-methods/transaction-methods/index.md @@ -1,12 +1,12 @@ --- -html: transaction-methods.html # watch for clashes w/ this filename +html: transaction-methods.html # watch for clashes w/ this filename parent: public-api-methods.html metadata: indexPage: true --- + # Transaction Methods Transactions are the only thing that can modify the shared state of the XRP Ledger. All business on the XRP Ledger takes the form of transactions. Use these methods to work with transactions. - {% child-pages /%} diff --git a/docs/references/http-websocket-apis/public-api-methods/transaction-methods/simulate.md b/docs/references/http-websocket-apis/public-api-methods/transaction-methods/simulate.md index 4f6c20b64e..a268075073 100644 --- a/docs/references/http-websocket-apis/public-api-methods/transaction-methods/simulate.md +++ b/docs/references/http-websocket-apis/public-api-methods/transaction-methods/simulate.md @@ -1,10 +1,12 @@ --- seo: - description: Execute a dry run of any transaction type to preview results and metadata. + description: Execute a dry run of any transaction type to preview results and metadata. labels: - Transaction Sending --- + # simulate + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/Simulate.cpp "Source") The `simulate` method executes a dry run of _any_ transaction type, enabling you to preview the results and metadata of a transaction without committing them to the XRP Ledger. Since this command never submits a transaction to the network, it doesn't incur any fees. @@ -13,7 +15,6 @@ The `simulate` method executes a dry run of _any_ transaction type, enabling you The `simulate` method isn't guaranteed to be the same when you actually submit a transaction because the ledger state--which affects how a transaction is processed--can change between the transaction simulation and submission. {% /admonition %} - ## Request Format An example of the request format: @@ -21,25 +22,28 @@ An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": 2, - "command": "simulate", - "tx_json" : { - "TransactionType" : "Payment", - "Account" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "Destination" : "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "Amount" : { - "currency" : "USD", - "value" : "1", - "issuer" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn" - } + "id": 2, + "command": "simulate", + "tx_json": { + "TransactionType": "Payment", + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "Amount": { + "currency": "USD", + "value": "1", + "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn" } + } } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { "method": "simulate", @@ -59,6 +63,7 @@ An example of the request format: ] } ``` + {% /tab %} {% /tabs %} @@ -76,7 +81,6 @@ The request includes the following parameters: - The simulated transaction must be unsigned. - If the `Fee`, `Sequence`, `SigningPubKey`, or `NetworkID` fields are provided, they will be used in the transaction. Otherwise, the server will autofill them. - ## Response Format An example of a successful response: @@ -178,18 +182,17 @@ An example of a successful response: The response follows the [standard format][], with a successful result containing the following fields: -| Field | Type | Description | -| -------------- | ------ | ----------- | -| `tx_json` | Object | The transaction that was simulated, including auto-filled values. Included if `binary` was `false`. | -| `tx_blob` | String | The serialized transaction that was simulated, including auto-filled values. Included if `binary` was `true`. | -| `ledger_index` | [Ledger Index](https://xrpl.org/docs/references/protocol/data-types/basic-data-types#ledger-index) | The ledger index of the ledger that would have included this transaction. | -| `meta` | Object | Transaction metadata, which describes the results of the transaction. Not included if the transaction fails with a code that means it wouldn’t be included in the ledger (such as a non-TEC code). Included if `binary` was `false`. | -| `meta_blob` | String | Transaction metadata, which describes the results of the transaction. Not included if the transaction fails with a code that means it wouldn’t be included in the ledger (such as a non-TEC code). Included if `binary` was `true`. | - +| Field | Type | Description | +| -------------- | -------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `tx_json` | Object | The transaction that was simulated, including auto-filled values. Included if `binary` was `false`. | +| `tx_blob` | String | The serialized transaction that was simulated, including auto-filled values. Included if `binary` was `true`. | +| `ledger_index` | [Ledger Index](https://xrpl.org/docs/references/protocol/data-types/basic-data-types#ledger-index) | The ledger index of the ledger that would have included this transaction. | +| `meta` | Object | Transaction metadata, which describes the results of the transaction. Not included if the transaction fails with a code that means it wouldn’t be included in the ledger (such as a non-TEC code). Included if `binary` was `false`. | +| `meta_blob` | String | Transaction metadata, which describes the results of the transaction. Not included if the transaction fails with a code that means it wouldn’t be included in the ledger (such as a non-TEC code). Included if `binary` was `true`. | ## Possible Errors -* `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. -* `transactionSigned` - The transaction was signed. The simulated transaction must be unsigned. +- `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. +- `transactionSigned` - The transaction was signed. The simulated transaction must be unsigned. {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/http-websocket-apis/public-api-methods/transaction-methods/submit.md b/docs/references/http-websocket-apis/public-api-methods/transaction-methods/submit.md index b8c036f3ab..115b51b04f 100644 --- a/docs/references/http-websocket-apis/public-api-methods/transaction-methods/submit.md +++ b/docs/references/http-websocket-apis/public-api-methods/transaction-methods/submit.md @@ -1,19 +1,21 @@ --- seo: - description: Send a transaction to the network. + description: Send a transaction to the network. labels: - - Transaction Sending - - Payments + - Transaction Sending + - Payments --- + # submit + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/Submit.cpp "Source") The `submit` method applies a [transaction](../../../protocol/transactions/index.md) and sends it to the network to be confirmed and included in future ledgers. This command has two modes: -* Submit-only mode takes a signed, serialized transaction as a binary blob, and submits it to the network as-is. Since signed transaction objects are immutable, no part of the transaction can be modified or automatically filled in after submission. -* Sign-and-submit mode takes a JSON-formatted Transaction object, completes and signs the transaction in the same manner as the [sign method][], and then submits the signed transaction. We recommend only using this mode for testing and development. +- Submit-only mode takes a signed, serialized transaction as a binary blob, and submits it to the network as-is. Since signed transaction objects are immutable, no part of the transaction can be modified or automatically filled in after submission. +- Sign-and-submit mode takes a JSON-formatted Transaction object, completes and signs the transaction in the same manner as the [sign method][], and then submits the signed transaction. We recommend only using this mode for testing and development. To send a transaction as robustly as possible, you should construct and [sign][sign method] it in advance, persist it somewhere that you can access even after a power outage, then `submit` it as a `tx_blob`. After submission, monitor the network with the [tx method][] command to see if the transaction was successfully applied; if a restart or other problem occurs, you can safely re-submit the `tx_blob` transaction: it won't be applied twice since it has the same sequence number as the old transaction. @@ -21,50 +23,55 @@ To send a transaction as robustly as possible, you should construct and [sign][s A submit-only request includes the following parameters: -| `Field` | Type | Required? | Description | -|:------------|:--------|:----------|:-----------------------------------------------------| +| `Field` | Type | Required? | Description | +| :---------- | :------ | :-------- | :------------------------------------------------------------------------------------------------------------------------------------------------ | | `tx_blob` | String | Yes | Hex representation of the signed transaction to submit. This can be a [multi-signed transaction](../../../../concepts/accounts/multi-signing.md). | -| `fail_hard` | Boolean | No | If `true`, and the transaction fails locally, do not retry or relay the transaction to other servers. The default is `false`. | +| `fail_hard` | Boolean | No | If `true`, and the transaction fails locally, do not retry or relay the transaction to other servers. The default is `false`. | ### Request Format {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": 3, - "command": "submit", - "tx_blob": "1200002280000000240000001E61D4838D7EA4C6800000000000000000000000000055534400000000004B4E9C06F24296074F7BC48F92A97916C6DC5EA968400000000000000B732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB7447304502210095D23D8AF107DF50651F266259CC7139D0CD0C64ABBA3A958156352A0D95A21E02207FCF9B77D7510380E49FF250C21B57169E14E9B4ACFD314CEDC79DDD0A38B8A681144B4E9C06F24296074F7BC48F92A97916C6DC5EA983143E9D4A2B8AA0780F682D136F7A56D6724EF53754" + "id": 3, + "command": "submit", + "tx_blob": "1200002280000000240000001E61D4838D7EA4C6800000000000000000000000000055534400000000004B4E9C06F24296074F7BC48F92A97916C6DC5EA968400000000000000B732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB7447304502210095D23D8AF107DF50651F266259CC7139D0CD0C64ABBA3A958156352A0D95A21E02207FCF9B77D7510380E49FF250C21B57169E14E9B4ACFD314CEDC79DDD0A38B8A681144B4E9C06F24296074F7BC48F92A97916C6DC5EA983143E9D4A2B8AA0780F682D136F7A56D6724EF53754" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "submit", - "params": [ - { - "tx_blob": "1200002280000000240000000361D4838D7EA4C6800000000000000000000000000055534400000000004B4E9C06F24296074F7BC48F92A97916C6DC5EA968400000000000000A732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB74473045022100D184EB4AE5956FF600E7536EE459345C7BBCF097A84CC61A93B9AF7197EDB98702201CEA8009B7BEEBAA2AACC0359B41C427C1C5B550A4CA4B80CF2174AF2D6D5DCE81144B4E9C06F24296074F7BC48F92A97916C6DC5EA983143E9D4A2B8AA0780F682D136F7A56D6724EF53754" - } - ] + "method": "submit", + "params": [ + { + "tx_blob": "1200002280000000240000000361D4838D7EA4C6800000000000000000000000000055534400000000004B4E9C06F24296074F7BC48F92A97916C6DC5EA968400000000000000A732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB74473045022100D184EB4AE5956FF600E7536EE459345C7BBCF097A84CC61A93B9AF7197EDB98702201CEA8009B7BEEBAA2AACC0359B41C427C1C5B550A4CA4B80CF2174AF2D6D5DCE81144B4E9C06F24296074F7BC48F92A97916C6DC5EA983143E9D4A2B8AA0780F682D136F7A56D6724EF53754" + } + ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh #Syntax: submit tx_blob submit 1200002280000000240000000361D4838D7EA4C6800000000000000000000000000055534400000000004B4E9C06F24296074F7BC48F92A97916C6DC5EA968400000000000000A732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB74473045022100D184EB4AE5956FF600E7536EE459345C7BBCF097A84CC61A93B9AF7197EDB98702201CEA8009B7BEEBAA2AACC0359B41C427C1C5B550A4CA4B80CF2174AF2D6D5DCE81144B4E9C06F24296074F7BC48F92A97916C6DC5EA983143E9D4A2B8AA0780F682D136F7A56D6724EF53754 ``` + {% /tab %} {% /tabs %} {% try-it method="submit" /%} - ## Sign-and-Submit Mode This mode signs a transaction and immediately submits it. This mode is intended to be used for testing. You cannot use this mode for [multi-signed transactions](../../../../concepts/accounts/multi-signing.md). @@ -73,86 +80,93 @@ _By default, sign-and-submit mode is [admin-only](../../admin-api-methods/index. You can provide the secret key used to sign the transaction in the following ways: -* Provide a `secret` value and omit the `key_type` field. This value can be formatted as an XRP Ledger [base58][] seed, RFC-1751, hexadecimal, or as a string passphrase. (secp256k1 keys only) -* Provide a `key_type` value and exactly one of `seed`, `seed_hex`, or `passphrase`. Omit the `secret` field. (Not supported by the commandline syntax.) +- Provide a `secret` value and omit the `key_type` field. This value can be formatted as an XRP Ledger [base58][] seed, RFC-1751, hexadecimal, or as a string passphrase. (secp256k1 keys only) +- Provide a `key_type` value and exactly one of `seed`, `seed_hex`, or `passphrase`. Omit the `secret` field. (Not supported by the commandline syntax.) The request includes the following parameters: -| `Field` | Type | Description | -|:---------------|:--------|:--------------------------------------------------| -| `tx_json` | Object | [Transaction definition](../../../protocol/transactions/index.md) in JSON format, optionally omitting any auto-fillable fields. | -| `secret` | String | _(Optional)_ Secret key of the account supplying the transaction, used to sign it. Do not send your secret to untrusted servers or through unsecured network connections. Cannot be used with `key_type`, `seed`, `seed_hex`, or `passphrase`. | -| `seed` | String | _(Optional)_ Secret key of the account supplying the transaction, used to sign it. Must be in the XRP Ledger's [base58][] format. If provided, you must also specify the `key_type`. Cannot be used with `secret`, `seed_hex`, or `passphrase`. | -| `seed_hex` | String | _(Optional)_ Secret key of the account supplying the transaction, used to sign it. Must be in hexadecimal format. If provided, you must also specify the `key_type`. Cannot be used with `secret`, `seed`, or `passphrase`. | -| `passphrase` | String | _(Optional)_ Secret key of the account supplying the transaction, used to sign it, as a string passphrase. If provided, you must also specify the `key_type`. Cannot be used with `secret`, `seed`, or `seed_hex`. | -| `key_type` | String | _(Optional)_ Type of cryptographic key provided in this request. Valid types are `secp256k1` or `ed25519`. Defaults to `secp256k1`. Cannot be used with `secret`. **Caution:** Ed25519 support is experimental. | -| `fail_hard` | Boolean | _(Optional)_ If `true`, and the transaction fails locally, do not retry or relay the transaction to other servers. The default is `false`. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.5.0" %}Updated in: rippled 1.5.0{% /badge %} | -| `offline` | Boolean | _(Optional)_ If `true`, when constructing the transaction, do not try to automatically fill in or validate values. The default is `false`. | +| `Field` | Type | Description | +| :------------- | :------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `tx_json` | Object | [Transaction definition](../../../protocol/transactions/index.md) in JSON format, optionally omitting any auto-fillable fields. | +| `secret` | String | _(Optional)_ Secret key of the account supplying the transaction, used to sign it. Do not send your secret to untrusted servers or through unsecured network connections. Cannot be used with `key_type`, `seed`, `seed_hex`, or `passphrase`. | +| `seed` | String | _(Optional)_ Secret key of the account supplying the transaction, used to sign it. Must be in the XRP Ledger's [base58][] format. If provided, you must also specify the `key_type`. Cannot be used with `secret`, `seed_hex`, or `passphrase`. | +| `seed_hex` | String | _(Optional)_ Secret key of the account supplying the transaction, used to sign it. Must be in hexadecimal format. If provided, you must also specify the `key_type`. Cannot be used with `secret`, `seed`, or `passphrase`. | +| `passphrase` | String | _(Optional)_ Secret key of the account supplying the transaction, used to sign it, as a string passphrase. If provided, you must also specify the `key_type`. Cannot be used with `secret`, `seed`, or `seed_hex`. | +| `key_type` | String | _(Optional)_ Type of cryptographic key provided in this request. Valid types are `secp256k1` or `ed25519`. Defaults to `secp256k1`. Cannot be used with `secret`. **Caution:** Ed25519 support is experimental. | +| `fail_hard` | Boolean | _(Optional)_ If `true`, and the transaction fails locally, do not retry or relay the transaction to other servers. The default is `false`. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.5.0" %}Updated in: rippled 1.5.0{% /badge %} | +| `offline` | Boolean | _(Optional)_ If `true`, when constructing the transaction, do not try to automatically fill in or validate values. The default is `false`. | | `build_path` | Boolean | _(Optional)_ If this field is provided, the server [auto-fills](../../../protocol/transactions/common-fields.md#auto-fillable-fields) the `Paths` field of a [Payment transaction][] before signing. You must omit this field if the transaction is a [direct XRP payment](../../../../concepts/payment-types/direct-xrp-payments.md) or if it is not a Payment-type transaction. **Caution:** The server looks for the presence or absence of this field, not its value. This behavior may change. ([Issue #3272](https://github.com/XRPLF/rippled/issues/3272)) | -| `fee_mult_max` | Integer | _(Optional)_ Sign-and-submit fails with the error `rpcHIGH_FEE` if the [auto-filled `Fee` value](../../../protocol/transactions/common-fields.md#auto-fillable-fields) would be greater than the [reference transaction cost](../../../../concepts/transactions/transaction-cost.md#special-transaction-costs) × `fee_mult_max` ÷ `fee_div_max`. This field has no effect if you explicitly specify the `Fee` field of the transaction. The default is `10`. | -| `fee_div_max` | Integer | _(Optional)_ Sign-and-submit fails with the error `rpcHIGH_FEE` if the [auto-filled `Fee` value](../../../protocol/transactions/common-fields.md#auto-fillable-fields) would be greater than the [reference transaction cost](../../../../concepts/transactions/transaction-cost.md#special-transaction-costs) × `fee_mult_max` ÷ `fee_div_max`. This field has no effect if you explicitly specify the `Fee` field of the transaction. The default is `1`. | +| `fee_mult_max` | Integer | _(Optional)_ Sign-and-submit fails with the error `rpcHIGH_FEE` if the [auto-filled `Fee` value](../../../protocol/transactions/common-fields.md#auto-fillable-fields) would be greater than the [reference transaction cost](../../../../concepts/transactions/transaction-cost.md#special-transaction-costs) × `fee_mult_max` ÷ `fee_div_max`. This field has no effect if you explicitly specify the `Fee` field of the transaction. The default is `10`. | +| `fee_div_max` | Integer | _(Optional)_ Sign-and-submit fails with the error `rpcHIGH_FEE` if the [auto-filled `Fee` value](../../../protocol/transactions/common-fields.md#auto-fillable-fields) would be greater than the [reference transaction cost](../../../../concepts/transactions/transaction-cost.md#special-transaction-costs) × `fee_mult_max` ÷ `fee_div_max`. This field has no effect if you explicitly specify the `Fee` field of the transaction. The default is `1`. | See the [sign method][] for detailed information on how the server automatically fills in certain fields. ### Request Format + An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 2, "api_version": 2, "command": "submit", - "tx_json" : { - "TransactionType" : "Payment", - "Account" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "Destination" : "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "DeliverMax" : { - "currency" : "USD", - "value" : "1", - "issuer" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn" - } - }, - "secret" : "s████████████████████████████", - "offline": false, - "fee_mult_max": 1000 + "tx_json": { + "TransactionType": "Payment", + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "DeliverMax": { + "currency": "USD", + "value": "1", + "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn" + } + }, + "secret": "s████████████████████████████", + "offline": false, + "fee_mult_max": 1000 } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "submit", - "params": [ - { - "offline": false, - "api_version": 2, - "secret": "s████████████████████████████", - "tx_json": { - "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "DeliverMax": { - "currency": "USD", - "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "value": "1" - }, - "Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "TransactionType": "Payment" - }, - "fee_mult_max": 1000 - } - ] + "method": "submit", + "params": [ + { + "offline": false, + "api_version": 2, + "secret": "s████████████████████████████", + "tx_json": { + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "DeliverMax": { + "currency": "USD", + "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "value": "1" + }, + "Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "TransactionType": "Payment" + }, + "fee_mult_max": 1000 + } + ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh #Syntax: submit secret json [offline] rippled submit s████████████████████████████ '{"Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", "DeliverMax": { "currency": "USD", "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", "value": "1" }, "Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", "TransactionType": "Payment", "Fee": "10000"}' ``` + {% /tab %} {% /tabs %} @@ -166,6 +180,7 @@ An example of a successful response: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 1, @@ -173,17 +188,17 @@ An example of a successful response: "status": "success", "type": "response", "result": { - "accepted" : true, - "account_sequence_available" : 362, - "account_sequence_next" : 362, - "applied" : true, - "broadcast" : true, + "accepted": true, + "account_sequence_available": 362, + "account_sequence_next": 362, + "applied": true, + "broadcast": true, "engine_result": "tesSUCCESS", "engine_result_code": 0, "engine_result_message": "The transaction was applied. Only final in a validated ledger.", - "kept" : true, + "kept": true, "open_ledger_cost": "10", - "queued" : false, + "queued": false, "tx_blob": "1200002280000000240000016861D4838D7EA4C6800000000000000000000000000055534400000000004B4E9C06F24296074F7BC48F92A97916C6DC5EA9684000000000002710732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB7446304402200E5C2DD81FDF0BE9AB2A8D797885ED49E804DBF28E806604D878756410CA98B102203349581946B0DDA06B36B35DBC20EDA27552C1F167BCF5C6ECFF49C6A46F858081144B4E9C06F24296074F7BC48F92A97916C6DC5EA983143E9D4A2B8AA0780F682D136F7A56D6724EF53754", "tx_json": { "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", @@ -201,52 +216,56 @@ An example of a successful response: "TxnSignature": "304402200E5C2DD81FDF0BE9AB2A8D797885ED49E804DBF28E806604D878756410CA98B102203349581946B0DDA06B36B35DBC20EDA27552C1F167BCF5C6ECFF49C6A46F8580", "hash": "4D5D90890F8D49519E4151938601EF3D0B30B16CD6A519D9C99102C9FA77F7E0" }, - "validated_ledger_index" : 21184416 + "validated_ledger_index": 21184416 } } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "result": { - "accepted" : true, - "account_sequence_available" : 362, - "account_sequence_next" : 362, - "applied" : true, - "broadcast" : true, - "engine_result": "tesSUCCESS", - "engine_result_code": 0, - "engine_result_message": "The transaction was applied. Only final in a validated ledger.", - "status": "success", - "kept" : true, - "open_ledger_cost": "10", - "queued" : false, - "tx_blob": "1200002280000000240000016961D4838D7EA4C6800000000000000000000000000055534400000000004B4E9C06F24296074F7BC48F92A97916C6DC5EA9684000000000002710732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB74473045022100A7CCD11455E47547FF617D5BFC15D120D9053DFD0536B044F10CA3631CD609E502203B61DEE4AC027C5743A1B56AF568D1E2B8E79BB9E9E14744AC87F38375C3C2F181144B4E9C06F24296074F7BC48F92A97916C6DC5EA983143E9D4A2B8AA0780F682D136F7A56D6724EF53754", - "tx_json": { - "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "DeliverMax": { - "currency": "USD", - "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "value": "1" - }, - "Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "Fee": "10000", - "Flags": 2147483648, - "Sequence": 361, - "SigningPubKey": "03AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB", - "TransactionType": "Payment", - "TxnSignature": "3045022100A7CCD11455E47547FF617D5BFC15D120D9053DFD0536B044F10CA3631CD609E502203B61DEE4AC027C5743A1B56AF568D1E2B8E79BB9E9E14744AC87F38375C3C2F1", - "hash": "5B31A7518DC304D5327B4887CD1F7DC2C38D5F684170097020C7C9758B973847" - } - }, - "validated_ledger_index" : 21184416 + "result": { + "accepted": true, + "account_sequence_available": 362, + "account_sequence_next": 362, + "applied": true, + "broadcast": true, + "engine_result": "tesSUCCESS", + "engine_result_code": 0, + "engine_result_message": "The transaction was applied. Only final in a validated ledger.", + "status": "success", + "kept": true, + "open_ledger_cost": "10", + "queued": false, + "tx_blob": "1200002280000000240000016961D4838D7EA4C6800000000000000000000000000055534400000000004B4E9C06F24296074F7BC48F92A97916C6DC5EA9684000000000002710732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB74473045022100A7CCD11455E47547FF617D5BFC15D120D9053DFD0536B044F10CA3631CD609E502203B61DEE4AC027C5743A1B56AF568D1E2B8E79BB9E9E14744AC87F38375C3C2F181144B4E9C06F24296074F7BC48F92A97916C6DC5EA983143E9D4A2B8AA0780F682D136F7A56D6724EF53754", + "tx_json": { + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "DeliverMax": { + "currency": "USD", + "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "value": "1" + }, + "Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "Fee": "10000", + "Flags": 2147483648, + "Sequence": 361, + "SigningPubKey": "03AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB", + "TransactionType": "Payment", + "TxnSignature": "3045022100A7CCD11455E47547FF617D5BFC15D120D9053DFD0536B044F10CA3631CD609E502203B61DEE4AC027C5743A1B56AF568D1E2B8E79BB9E9E14744AC87F38375C3C2F1", + "hash": "5B31A7518DC304D5327B4887CD1F7DC2C38D5F684170097020C7C9758B973847" + } + }, + "validated_ledger_index": 21184416 } ``` + {% /tab %} {% tab label="Commandline" %} + ```json Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -286,50 +305,50 @@ Connecting to 127.0.0.1:5005 "validated_ledger_index" : 21184416 } ``` + {% /tab %} {% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: -| `Field` | Type | Description | -|:------------------------|:--------|:-----------------------------------------| -| `engine_result` | String | Text [result code](../../../protocol/transactions/transaction-results/index.md) indicating the preliminary result of the transaction, for example `tesSUCCESS` | -| `engine_result_code` | Integer | Numeric version of the [result code](../../../protocol/transactions/transaction-results/index.md). **Not recommended.** | -| `engine_result_message` | String | Human-readable explanation of the transaction's preliminary result | -| `tx_blob` | String | The complete transaction in hex string format | -| `tx_json` | Object | The complete transaction in JSON format | -| `accepted` | Boolean | _(Omitted in sign-and-submit mode)_ The value `true` indicates that the transaction was applied, queued, broadcast, or kept for later. The value `false` indicates that none of those happened, so the transaction cannot possibly succeed as long as you do not submit it again and have not already submitted it another time. | -| `account_sequence_available` | Number | _(Omitted in sign-and-submit mode)_ The next [Sequence Number][] available for the sending account after all pending and [queued](../../../../concepts/transactions/transaction-queue.md) transactions. | -| `account_sequence_next` | number | _(Omitted in sign-and-submit mode)_ The next [Sequence Number][] for the sending account after all transactions that have been provisionally applied, but not transactions in the [queue](../../../../concepts/transactions/transaction-queue.md). | -| `applied` | Boolean | _(Omitted in sign-and-submit mode)_ The value `true` indicates that this transaction was applied to the open ledger. In this case, the transaction is likely, but not guaranteed, to be validated in the next ledger version. | -| `broadcast` | Boolean | _(Omitted in sign-and-submit mode)_ The value `true` indicates this transaction was broadcast to peer servers in the peer-to-peer XRP Ledger network. (Note: if the server has no peers, such as in [stand-alone mode][], the server uses the value `true` for cases where it _would_ have broadcast the transaction.) The value `false` indicates the transaction was not broadcast to any other servers. | -| `kept` | Boolean | _(Omitted in sign-and-submit mode)_ The value `true` indicates that the transaction was kept to be retried later. | -| `queued` | Boolean | _(Omitted in sign-and-submit mode)_ The value `true` indicates the transaction was put in the [Transaction Queue](../../../../concepts/transactions/transaction-queue.md), which means it is likely to be included in a future ledger version. | -| `open_ledger_cost` | String | _(Omitted in sign-and-submit mode)_ The current [open ledger cost](../../../../concepts/transactions/transaction-cost.md#open-ledger-cost) before processing this transaction. Transactions with a lower cost are likely to be [queued](../../../../concepts/transactions/transaction-queue.md). | -| `validated_ledger_index` | Integer | _(Omitted in sign-and-submit mode)_ The [ledger index][] of the newest validated ledger at the time of submission. This provides a lower bound on the ledger versions that the transaction can appear in as a result of this request. (The transaction could only have been validated in this ledger version or earlier if it had already been submitted before.) | +| `Field` | Type | Description | +| :--------------------------- | :------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `engine_result` | String | Text [result code](../../../protocol/transactions/transaction-results/index.md) indicating the preliminary result of the transaction, for example `tesSUCCESS` | +| `engine_result_code` | Integer | Numeric version of the [result code](../../../protocol/transactions/transaction-results/index.md). **Not recommended.** | +| `engine_result_message` | String | Human-readable explanation of the transaction's preliminary result | +| `tx_blob` | String | The complete transaction in hex string format | +| `tx_json` | Object | The complete transaction in JSON format | +| `accepted` | Boolean | _(Omitted in sign-and-submit mode)_ The value `true` indicates that the transaction was applied, queued, broadcast, or kept for later. The value `false` indicates that none of those happened, so the transaction cannot possibly succeed as long as you do not submit it again and have not already submitted it another time. | +| `account_sequence_available` | Number | _(Omitted in sign-and-submit mode)_ The next [Sequence Number][] available for the sending account after all pending and [queued](../../../../concepts/transactions/transaction-queue.md) transactions. | +| `account_sequence_next` | number | _(Omitted in sign-and-submit mode)_ The next [Sequence Number][] for the sending account after all transactions that have been provisionally applied, but not transactions in the [queue](../../../../concepts/transactions/transaction-queue.md). | +| `applied` | Boolean | _(Omitted in sign-and-submit mode)_ The value `true` indicates that this transaction was applied to the open ledger. In this case, the transaction is likely, but not guaranteed, to be validated in the next ledger version. | +| `broadcast` | Boolean | _(Omitted in sign-and-submit mode)_ The value `true` indicates this transaction was broadcast to peer servers in the peer-to-peer XRP Ledger network. (Note: if the server has no peers, such as in [stand-alone mode][], the server uses the value `true` for cases where it _would_ have broadcast the transaction.) The value `false` indicates the transaction was not broadcast to any other servers. | +| `kept` | Boolean | _(Omitted in sign-and-submit mode)_ The value `true` indicates that the transaction was kept to be retried later. | +| `queued` | Boolean | _(Omitted in sign-and-submit mode)_ The value `true` indicates the transaction was put in the [Transaction Queue](../../../../concepts/transactions/transaction-queue.md), which means it is likely to be included in a future ledger version. | +| `open_ledger_cost` | String | _(Omitted in sign-and-submit mode)_ The current [open ledger cost](../../../../concepts/transactions/transaction-cost.md#open-ledger-cost) before processing this transaction. Transactions with a lower cost are likely to be [queued](../../../../concepts/transactions/transaction-queue.md). | +| `validated_ledger_index` | Integer | _(Omitted in sign-and-submit mode)_ The [ledger index][] of the newest validated ledger at the time of submission. This provides a lower bound on the ledger versions that the transaction can appear in as a result of this request. (The transaction could only have been validated in this ledger version or earlier if it had already been submitted before.) | {% admonition type="danger" name="Warning" %}Even if the WebSocket response has `"status":"success"`, indicating that the command was successfully received, that does _not_ indicate that the transaction executed successfully. Many situations can prevent a transaction from processing successfully, such as a lack of trust lines connecting the two accounts in a payment, or changes in the state of the ledger since the time the transaction was constructed. Even if nothing is wrong, it may take several seconds to close and validate the ledger version that includes the transaction. See the [full list of transaction responses](../../../protocol/transactions/transaction-results/index.md) for details, and do not consider the transaction's results final until they appear in a validated ledger version.{% /admonition %} {% admonition type="warning" name="Caution" %}If this command results in an error message, the message can contain the secret key from the request. (This can only happen in sign-and-submit mode.) Make sure that these errors are not visible to others.{% /admonition %} -* Do not write an error including your secret key to a log file that can be seen by multiple people. -* Do not paste an error including your secret key to a public place for debugging. -* Do not display an error message including your secret key on a website, even by accident. - +- Do not write an error including your secret key to a log file that can be seen by multiple people. +- Do not paste an error including your secret key to a public place for debugging. +- Do not display an error message including your secret key on a website, even by accident. ## Possible Errors -* Any of the [universal error types][]. -* `amendmentBlocked` - The transaction cannot be submitted to the network because the `rippled` server is [amendment blocked](../../../../concepts/networks-and-servers/amendments.md#amendment-blocked-servers). -* `highFee` - The `fee_mult_max` parameter was specified, but the server's current fee multiplier exceeds the specified one. (Sign-and-Submit mode only) -* `internalJson` - An internal error occurred when serializing the transaction to JSON. This could be caused by many aspects of the transaction, including a bad signature or some fields being malformed. -* `internalSubmit` - An internal error occurred when submitting the transaction. This could be caused by many aspects of the transaction, including a bad signature or some fields being malformed. -* `internalTransaction` - An internal error occurred when processing the transaction. This could be caused by many aspects of the transaction, including a bad signature or some fields being malformed. -* `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. -* `invalidTransaction` - The transaction is malformed or otherwise invalid. -* `noPath` - The transaction did not include paths, and the server was unable to find a path by which this payment can occur. (Sign-and-Submit mode only) -* `tooBusy` - The transaction did not include paths, but the server is too busy to do pathfinding right now. Does not occur if you are connected as an admin. (Sign-and-Submit mode only) -* `notSupported` - Signing is not supported by this server (Sign-and-Submit mode only.) If you are the server admin, you can still access signing when connected [as an admin](../../admin-api-methods/index.md), or you could [enable public signing](../../../../infrastructure/configuration/enable-public-signing.md). +- Any of the [universal error types][]. +- `amendmentBlocked` - The transaction cannot be submitted to the network because the `rippled` server is [amendment blocked](../../../../concepts/networks-and-servers/amendments.md#amendment-blocked-servers). +- `highFee` - The `fee_mult_max` parameter was specified, but the server's current fee multiplier exceeds the specified one. (Sign-and-Submit mode only) +- `internalJson` - An internal error occurred when serializing the transaction to JSON. This could be caused by many aspects of the transaction, including a bad signature or some fields being malformed. +- `internalSubmit` - An internal error occurred when submitting the transaction. This could be caused by many aspects of the transaction, including a bad signature or some fields being malformed. +- `internalTransaction` - An internal error occurred when processing the transaction. This could be caused by many aspects of the transaction, including a bad signature or some fields being malformed. +- `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. +- `invalidTransaction` - The transaction is malformed or otherwise invalid. +- `noPath` - The transaction did not include paths, and the server was unable to find a path by which this payment can occur. (Sign-and-Submit mode only) +- `tooBusy` - The transaction did not include paths, but the server is too busy to do pathfinding right now. Does not occur if you are connected as an admin. (Sign-and-Submit mode only) +- `notSupported` - Signing is not supported by this server (Sign-and-Submit mode only.) If you are the server admin, you can still access signing when connected [as an admin](../../admin-api-methods/index.md), or you could [enable public signing](../../../../infrastructure/configuration/enable-public-signing.md). {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/http-websocket-apis/public-api-methods/transaction-methods/submit_multisigned.md b/docs/references/http-websocket-apis/public-api-methods/transaction-methods/submit_multisigned.md index 72b5ba88f0..8da9e91eaf 100644 --- a/docs/references/http-websocket-apis/public-api-methods/transaction-methods/submit_multisigned.md +++ b/docs/references/http-websocket-apis/public-api-methods/transaction-methods/submit_multisigned.md @@ -1,98 +1,109 @@ --- seo: - description: Send a multi-signed transaction to the network. + description: Send a multi-signed transaction to the network. labels: - - Transaction Sending + - Transaction Sending --- + # submit_multisigned + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/SubmitMultiSigned.cpp "Source") The `submit_multisigned` command applies a [multi-signed](../../../../concepts/accounts/multi-signing.md) transaction and sends it to the network to be included in future ledgers. (You can also submit multi-signed transactions in binary form using the [`submit` command in submit-only mode](submit.md#submit-only-mode).) ## Request Format + An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": "submit_multisigned_example", - "command": "submit_multisigned", - "tx_json": { + "id": "submit_multisigned_example", + "command": "submit_multisigned", + "tx_json": { + "Account": "rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", + "Fee": "30000", + "Flags": 262144, + "LimitAmount": { + "currency": "USD", + "issuer": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "value": "100" + }, + "Sequence": 2, + "Signers": [ + { + "Signer": { + "Account": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", + "SigningPubKey": "02B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF", + "TxnSignature": "30450221009C195DBBF7967E223D8626CA19CF02073667F2B22E206727BFE848FF42BEAC8A022048C323B0BED19A988BDBEFA974B6DE8AA9DCAE250AA82BBD1221787032A864E5" + } + }, + { + "Signer": { + "Account": "rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v", + "SigningPubKey": "028FFB276505F9AC3F57E8D5242B386A597EF6C40A7999F37F1948636FD484E25B", + "TxnSignature": "30440220680BBD745004E9CFB6B13A137F505FB92298AD309071D16C7B982825188FD1AE022004200B1F7E4A6A84BB0E4FC09E1E3BA2B66EBD32F0E6D121A34BA3B04AD99BC1" + } + } + ], + "SigningPubKey": "", + "TransactionType": "TrustSet", + "hash": "BD636194C48FD7A100DE4C972336534C8E710FD008C0F3CF7BC5BF34DAF3C3E6" + } +} +``` + +{% /tab %} + +{% tab label="JSON-RPC" %} + +```json +{ + "method": "submit_multisigned", + "params": [ + { + "tx_json": { "Account": "rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", "Fee": "30000", "Flags": 262144, "LimitAmount": { - "currency": "USD", - "issuer": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "value": "100" + "currency": "USD", + "issuer": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "value": "0" }, - "Sequence": 2, - "Signers": [{ + "Sequence": 4, + "Signers": [ + { "Signer": { - "Account": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", - "SigningPubKey": "02B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF", - "TxnSignature": "30450221009C195DBBF7967E223D8626CA19CF02073667F2B22E206727BFE848FF42BEAC8A022048C323B0BED19A988BDBEFA974B6DE8AA9DCAE250AA82BBD1221787032A864E5" + "Account": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", + "SigningPubKey": "02B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF", + "TxnSignature": "3045022100CC9C56DF51251CB04BB047E5F3B5EF01A0F4A8A549D7A20A7402BF54BA744064022061EF8EF1BCCBF144F480B32508B1D10FD4271831D5303F920DE41C64671CB5B7" } - }, { + }, + { "Signer": { - "Account": "rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v", - "SigningPubKey": "028FFB276505F9AC3F57E8D5242B386A597EF6C40A7999F37F1948636FD484E25B", - "TxnSignature": "30440220680BBD745004E9CFB6B13A137F505FB92298AD309071D16C7B982825188FD1AE022004200B1F7E4A6A84BB0E4FC09E1E3BA2B66EBD32F0E6D121A34BA3B04AD99BC1" + "Account": "raKEEVSGnKSD9Zyvxu4z6Pqpm4ABH8FS6n", + "SigningPubKey": "03398A4EDAE8EE009A5879113EAA5BA15C7BB0F612A87F4103E793AC919BD1E3C1", + "TxnSignature": "3045022100FEE8D8FA2D06CE49E9124567DCA265A21A9F5465F4A9279F075E4CE27E4430DE022042D5305777DA1A7801446780308897699412E4EDF0E1AEFDF3C8A0532BDE4D08" } - }], + } + ], "SigningPubKey": "", "TransactionType": "TrustSet", - "hash": "BD636194C48FD7A100DE4C972336534C8E710FD008C0F3CF7BC5BF34DAF3C3E6" + "hash": "81A477E2A362D171BB16BE17B4120D9F809A327FA00242ABCA867283BEA2F4F8" + } } + ] } ``` -{% /tab %} -{% tab label="JSON-RPC" %} -```json -{ - "method": "submit_multisigned", - "params": [ - { - "tx_json": { - "Account": "rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", - "Fee": "30000", - "Flags": 262144, - "LimitAmount": { - "currency": "USD", - "issuer": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "value": "0" - }, - "Sequence": 4, - "Signers": [ - { - "Signer": { - "Account": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", - "SigningPubKey": "02B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF", - "TxnSignature": "3045022100CC9C56DF51251CB04BB047E5F3B5EF01A0F4A8A549D7A20A7402BF54BA744064022061EF8EF1BCCBF144F480B32508B1D10FD4271831D5303F920DE41C64671CB5B7" - } - }, - { - "Signer": { - "Account": "raKEEVSGnKSD9Zyvxu4z6Pqpm4ABH8FS6n", - "SigningPubKey": "03398A4EDAE8EE009A5879113EAA5BA15C7BB0F612A87F4103E793AC919BD1E3C1", - "TxnSignature": "3045022100FEE8D8FA2D06CE49E9124567DCA265A21A9F5465F4A9279F075E4CE27E4430DE022042D5305777DA1A7801446780308897699412E4EDF0E1AEFDF3C8A0532BDE4D08" - } - } - ], - "SigningPubKey": "", - "TransactionType": "TrustSet", - "hash": "81A477E2A362D171BB16BE17B4120D9F809A327FA00242ABCA867283BEA2F4F8" - } - } - ] -} -``` {% /tab %} {% tab label="Commandline" %} + ```sh #Syntax: submit_multisigned rippled submit_multisigned '{ @@ -126,16 +137,17 @@ rippled submit_multisigned '{ "hash": "81A477E2A362D171BB16BE17B4120D9F809A327FA00242ABCA867283BEA2F4F8" }' ``` + {% /tab %} {% /tabs %} The request includes the following parameters: -| `Field` | Type | Required? | Description | -|:------------|:--------|:----------|:-----------------------------------------------------| +| `Field` | Type | Required? | Description | +| :---------- | :------ | :-------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `tx_json` | Object | Yes | [Transaction in JSON format](../../../protocol/transactions/index.md) with an array of `Signers`. To be successful, the weights of the signatures must be equal or higher than the quorum of the [SignerList](../../../protocol/ledger-data/ledger-entry-types/signerlist.md). | -| `fail_hard` | Boolean | No | If `true`, and the transaction fails locally, do not retry or relay the transaction to other servers. The default is `false`. | +| `fail_hard` | Boolean | No | If `true`, and the transaction fails locally, do not retry or relay the transaction to other servers. The default is `false`. | ## Response Format @@ -144,6 +156,7 @@ An example of a successful response: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": "submit_multisigned_example", @@ -187,9 +200,11 @@ An example of a successful response: } } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -233,9 +248,11 @@ An example of a successful response: } } ``` + {% /tab %} {% tab label="Commandline" %} + ``` Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 @@ -280,25 +297,26 @@ Connecting to 127.0.0.1:5005 } } ``` + {% /tab %} {% /tabs %} The response follows the [standard format][], with a successful result containing the following fields: -| `Field` | Type | Description | -|:------------------------|:--------|:-----------------------------------------| -| `engine_result` | String | Code indicating the preliminary result of the transaction, for example `tesSUCCESS` | +| `Field` | Type | Description | +| :---------------------- | :------ | :-------------------------------------------------------------------------------------------------------- | +| `engine_result` | String | Code indicating the preliminary result of the transaction, for example `tesSUCCESS` | | `engine_result_code` | Integer | Numeric code indicating the preliminary result of the transaction, directly correlated to `engine_result` | -| `engine_result_message` | String | Human-readable explanation of the preliminary transaction result | -| `tx_blob` | String | The complete [transaction](../../../protocol/transactions/index.md) in hex string format | -| `tx_json` | Object | The complete [transaction](../../../protocol/transactions/index.md) in JSON format | +| `engine_result_message` | String | Human-readable explanation of the preliminary transaction result | +| `tx_blob` | String | The complete [transaction](../../../protocol/transactions/index.md) in hex string format | +| `tx_json` | Object | The complete [transaction](../../../protocol/transactions/index.md) in JSON format | ## Possible Errors -* Any of the [universal error types][]. -* `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. -* `srcActMalformed` - The `Account` field from the `tx_json` was invalid or missing. -* `internal` - An internal error occurred. This includes the case where a signature is not valid for the transaction JSON provided. +- Any of the [universal error types][]. +- `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. +- `srcActMalformed` - The `Account` field from the `tx_json` was invalid or missing. +- `internal` - An internal error occurred. This includes the case where a signature is not valid for the transaction JSON provided. {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/http-websocket-apis/public-api-methods/transaction-methods/transaction_entry.md b/docs/references/http-websocket-apis/public-api-methods/transaction-methods/transaction_entry.md index e89a5a0fdb..eacf80fed8 100644 --- a/docs/references/http-websocket-apis/public-api-methods/transaction-methods/transaction_entry.md +++ b/docs/references/http-websocket-apis/public-api-methods/transaction-methods/transaction_entry.md @@ -1,10 +1,12 @@ --- seo: - description: Retrieve info about a transaction from a particular ledger version. + description: Retrieve info about a transaction from a particular ledger version. labels: - - Transaction Sending + - Transaction Sending --- + # transaction_entry + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/TransactionEntry.cpp "Source") The `transaction_entry` method retrieves information on a single transaction from a specific ledger version. (The [tx method][], by contrast, searches all ledgers for the specified transaction. We recommend using that method instead.) @@ -16,6 +18,7 @@ An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": "example_transaction_entry", @@ -25,28 +28,33 @@ An example of the request format: "api_version": 2 } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "transaction_entry", - "params": [ - { - "tx_hash": "C53ECF838647FA5A4C780377025FEC7999AB4182590510CA461444B207AB74A9", - "ledger_index": 56865245, - "api_version": 2 - } - ] + "method": "transaction_entry", + "params": [ + { + "tx_hash": "C53ECF838647FA5A4C780377025FEC7999AB4182590510CA461444B207AB74A9", + "ledger_index": 56865245, + "api_version": 2 + } + ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh #Syntax: transaction_entry transaction_hash ledger_index|ledger_hash rippled transaction_entry C53ECF838647FA5A4C780377025FEC7999AB4182590510CA461444B207AB74A9 56865245 ``` + {% /tab %} {% /tabs %} @@ -55,11 +63,11 @@ rippled transaction_entry C53ECF838647FA5A4C780377025FEC7999AB4182590510CA461444 The request includes the following parameters: -| `Field` | Type | Description | -|:---------------|:---------------------------|:-------------------------------| -| `ledger_hash` | String | _(Optional)_ The unique hash of the ledger version to use. (See [Specifying Ledgers][]) | +| `Field` | Type | Description | +| :------------- | :------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------ | +| `ledger_hash` | String | _(Optional)_ The unique hash of the ledger version to use. (See [Specifying Ledgers][]) | | `ledger_index` | String or Unsigned Integer | _(Optional)_ The [ledger index][] of the ledger to use, or a shortcut string to choose a ledger automatically. (See [Specifying Ledgers][]) | -| `tx_hash` | String | Unique hash of the transaction you are looking up | +| `tx_hash` | String | Unique hash of the transaction you are looking up | {% admonition type="info" name="Note" %}This method does not support retrieving information from the current in-progress ledger. You must specify a ledger version in either `ledger_index` or `ledger_hash`.{% /admonition %} @@ -70,6 +78,7 @@ An example of a successful response: {% tabs %} {% tab label="WebSocket" %} + ```json { "result": { @@ -194,9 +203,11 @@ An example of a successful response: "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -320,9 +331,11 @@ An example of a successful response: } } ``` + {% /tab %} {% tab label="Commandline" %} + ```json Loading: "/etc/opt/ripple/rippled.cfg" 2025-Dec-19 03:16:00.638871262 UTC HTTPClient:NFO Connecting to 127.0.0.1:5005 @@ -447,6 +460,7 @@ Loading: "/etc/opt/ripple/rippled.cfg" } } ``` + {% /tab %} {% /tabs %} @@ -457,25 +471,25 @@ The response follows the [standard format][], with a successful result containin {% tab label="API v2" %} -| `Field` | Type | Description | -|:-----------------|:--------------------------|:--------------------------------| -| `close_time_iso` | String | The time the ledger containing this transaction was closed, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format. | -| `hash` | String | The unique hash identifier of the transaction. | -| `ledger_index` | Number - [Ledger Index][] | The ledger index of the ledger version the transaction was found in; this is the same as the one from the request. | +| `Field` | Type | Description | +| :--------------- | :------------------------ | :---------------------------------------------------------------------------------------------------------------------------------------- | +| `close_time_iso` | String | The time the ledger containing this transaction was closed, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format. | +| `hash` | String | The unique hash identifier of the transaction. | +| `ledger_index` | Number - [Ledger Index][] | The ledger index of the ledger version the transaction was found in; this is the same as the one from the request. | | `ledger_hash` | String - [Hash][] | _(May be omitted)_ The identifying hash of the ledger version the transaction was found in; this is the same as the one from the request. | -| `meta` | Object | The [transaction metadata](../../../protocol/transactions/metadata.md), which shows the exact results of the transaction in detail. | -| `tx_json` | Object | JSON representation of the [Transaction object](../../../protocol/transactions/index.md) | +| `meta` | Object | The [transaction metadata](../../../protocol/transactions/metadata.md), which shows the exact results of the transaction in detail. | +| `tx_json` | Object | JSON representation of the [Transaction object](../../../protocol/transactions/index.md) | {% /tab %} {% tab label="API v1" %} -| `Field` | Type | Description | -|:---------------|:--------------------------|:--------------------------------| -| `ledger_index` | Number - [Ledger Index][] | The ledger index of the ledger version the transaction was found in; this is the same as the one from the request. | +| `Field` | Type | Description | +| :------------- | :------------------------ | :---------------------------------------------------------------------------------------------------------------------------------------- | +| `ledger_index` | Number - [Ledger Index][] | The ledger index of the ledger version the transaction was found in; this is the same as the one from the request. | | `ledger_hash` | String - [Hash][] | _(May be omitted)_ The identifying hash of the ledger version the transaction was found in; this is the same as the one from the request. | -| `metadata` | Object | The [transaction metadata](../../../protocol/transactions/metadata.md), which shows the exact results of the transaction in detail. | -| `tx_json` | Object | JSON representation of the [Transaction object](../../../protocol/transactions/index.md) | +| `metadata` | Object | The [transaction metadata](../../../protocol/transactions/metadata.md), which shows the exact results of the transaction in detail. | +| `tx_json` | Object | JSON representation of the [Transaction object](../../../protocol/transactions/index.md) | {% /tab %} @@ -483,16 +497,16 @@ The response follows the [standard format][], with a successful result containin There are a couple possible reasons the server may fail to find the transaction: -* The transaction does not exist -* The transaction exists, but not in the specified ledger version -* The server does not have the specified ledger version available. Another server that has the correct version on hand may have a different response. +- The transaction does not exist +- The transaction exists, but not in the specified ledger version +- The server does not have the specified ledger version available. Another server that has the correct version on hand may have a different response. ## Possible Errors -* Any of the [universal error types][]. -* `fieldNotFoundTransaction` - The `tx_hash` field was omitted from the request -* `notYetImplemented` - A ledger version was not specified in the request. -* `lgrNotFound` - The ledger specified by the `ledger_hash` or `ledger_index` does not exist, or it does exist but the server does not have it. -* `transactionNotFound` - The transaction specified in the request could not be found in the specified ledger. (It might be in a different ledger version, or it might not be available at all.) +- Any of the [universal error types][]. +- `fieldNotFoundTransaction` - The `tx_hash` field was omitted from the request +- `notYetImplemented` - A ledger version was not specified in the request. +- `lgrNotFound` - The ledger specified by the `ledger_hash` or `ledger_index` does not exist, or it does exist but the server does not have it. +- `transactionNotFound` - The transaction specified in the request could not be found in the specified ledger. (It might be in a different ledger version, or it might not be available at all.) {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/http-websocket-apis/public-api-methods/transaction-methods/tx.md b/docs/references/http-websocket-apis/public-api-methods/transaction-methods/tx.md index 9e0df822ba..7cf1d10727 100644 --- a/docs/references/http-websocket-apis/public-api-methods/transaction-methods/tx.md +++ b/docs/references/http-websocket-apis/public-api-methods/transaction-methods/tx.md @@ -1,10 +1,11 @@ --- seo: - description: Retrieve info about a transaction from all the ledgers on hand. + description: Retrieve info about a transaction from all the ledgers on hand. labels: - - Transaction Sending - - Payments + - Transaction Sending + - Payments --- + # tx [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/Tx.cpp "Source") @@ -18,6 +19,7 @@ An example of the request format: {% tabs %} {% tab label="WebSocket (Hash)" %} + ```json { "id": "example_tx_hash", @@ -27,9 +29,11 @@ An example of the request format: "api_version": 2 } ``` + {% /tab %} {% tab label="WebSocket (CTID)" %} + ```json { "id": "example_tx_ctid", @@ -39,43 +43,50 @@ An example of the request format: "api_version": 2 } ``` + {% /tab %} {% tab label="JSON-RPC (Hash)" %} + ```json { - "method": "tx", - "params": [ - { - "transaction": "C53ECF838647FA5A4C780377025FEC7999AB4182590510CA461444B207AB74A9", - "binary": false, - "api_version": 2 - } - ] + "method": "tx", + "params": [ + { + "transaction": "C53ECF838647FA5A4C780377025FEC7999AB4182590510CA461444B207AB74A9", + "binary": false, + "api_version": 2 + } + ] } ``` + {% /tab %} {% tab label="JSON-RPC (CTID)" %} + ```json { - "method": "tx", - "params": [ - { - "ctid": "C363B1DD00000000", - "binary": false, - "api_version": 2 - } - ] + "method": "tx", + "params": [ + { + "ctid": "C363B1DD00000000", + "binary": false, + "api_version": 2 + } + ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh #Syntax: tx transaction [binary] rippled tx C53ECF838647FA5A4C780377025FEC7999AB4182590510CA461444B207AB74A9 false ``` + {% /tab %} {% /tabs %} @@ -84,13 +95,13 @@ rippled tx C53ECF838647FA5A4C780377025FEC7999AB4182590510CA461444B207AB74A9 fals The request includes the following parameters: -| Field | Type | Required? | Description | -|:--------------|:--------|:----------|----------------------------------------| +| Field | Type | Required? | Description | +| :------------ | :------ | :-------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `ctid` | String | No | The [compact transaction identifier](../../api-conventions/ctid.md) of the transaction to look up. Must use uppercase hexadecimal only. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.12.0" %}New in: rippled 1.12.0{% /badge %} _(Not supported in Clio v2.0 and earlier)_ | -| `transaction` | String | No | The 256-bit hash of the transaction to look up, as hexadecimal. | -| `binary` | Boolean | No | If `true`, return transaction data and metadata as binary [serialized](../../../protocol/binary-format.md) to hexadecimal strings. If `false`, return transaction data and metadata as JSON. The default is `false`. | -| `min_ledger` | Number | No | Use this with `max_ledger` to specify a range of up to 1000 [ledger indexes][ledger index], starting with this ledger (inclusive). If the server [cannot find the transaction](#not-found-response), it confirms whether it was able to search all the ledgers in this range. | -| `max_ledger` | Number | No | Use this with `min_ledger` to specify a range of up to 1000 [ledger indexes][ledger index], ending with this ledger (inclusive). If the server [cannot find the transaction](#not-found-response), it confirms whether it was able to search all the ledgers in the requested range. | +| `transaction` | String | No | The 256-bit hash of the transaction to look up, as hexadecimal. | +| `binary` | Boolean | No | If `true`, return transaction data and metadata as binary [serialized](../../../protocol/binary-format.md) to hexadecimal strings. If `false`, return transaction data and metadata as JSON. The default is `false`. | +| `min_ledger` | Number | No | Use this with `max_ledger` to specify a range of up to 1000 [ledger indexes][ledger index], starting with this ledger (inclusive). If the server [cannot find the transaction](#not-found-response), it confirms whether it was able to search all the ledgers in this range. | +| `max_ledger` | Number | No | Use this with `min_ledger` to specify a range of up to 1000 [ledger indexes][ledger index], ending with this ledger (inclusive). If the server [cannot find the transaction](#not-found-response), it confirms whether it was able to search all the ledgers in the requested range. | You must provide _either_ `ctid` or `transaction`, but not both. @@ -122,19 +133,19 @@ An example of a successful response: The response follows the [standard format][], with a successful result containing the fields of the [Transaction object](../../../protocol/transactions/index.md) as well as the following additional fields: -| `Field` | Type | Description | -|:-----------------|:----------------|:-------------------------| +| `Field` | Type | Description | +| :--------------- | :-------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `ctid` | String | The transaction's [compact transaction identifier](../../api-conventions/ctid.md). {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.12.0" %}New in: rippled 1.12.0{% /badge %} _(Not supported in Clio v2.0 and earlier.)_ | -| `close_time_iso` | String | The time the ledger containing this transaction was closed, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format. | -| `date` | Number | The [close time](../../../../concepts/ledgers/ledger-close-times.md) of the ledger in which the transaction was applied, in [seconds since the Ripple Epoch][]. | -| `hash` | String | The unique [identifying hash][] of the transaction | -| `inLedger` | Number | _(Deprecated)_ Alias for `ledger_index`. | -| `ledger_index` | Number | The [ledger index][] of the ledger that includes this transaction. | -| `meta` | Object (JSON) | (JSON mode) [Transaction metadata](../../../protocol/transactions/metadata.md), which describes the results of the transaction. | -| `meta_blob` | String (binary) | (Binary mode) [Transaction metadata](../../../protocol/transactions/metadata.md), which describes the results of the transaction, represented as a hex string. | -| `tx_blob` | String (binary) | (Binary mode) The transaction data represented as a hex string. | -| `tx_json` | Object (JSON) | The transaction data represented in JSON. | -| `validated` | Boolean | If `true`, this data comes from a validated ledger version; if omitted or set to `false`, this data is not final. | +| `close_time_iso` | String | The time the ledger containing this transaction was closed, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format. | +| `date` | Number | The [close time](../../../../concepts/ledgers/ledger-close-times.md) of the ledger in which the transaction was applied, in [seconds since the Ripple Epoch][]. | +| `hash` | String | The unique [identifying hash][] of the transaction | +| `inLedger` | Number | _(Deprecated)_ Alias for `ledger_index`. | +| `ledger_index` | Number | The [ledger index][] of the ledger that includes this transaction. | +| `meta` | Object (JSON) | (JSON mode) [Transaction metadata](../../../protocol/transactions/metadata.md), which describes the results of the transaction. | +| `meta_blob` | String (binary) | (Binary mode) [Transaction metadata](../../../protocol/transactions/metadata.md), which describes the results of the transaction, represented as a hex string. | +| `tx_blob` | String (binary) | (Binary mode) The transaction data represented as a hex string. | +| `tx_json` | Object (JSON) | The transaction data represented in JSON. | +| `validated` | Boolean | If `true`, this data comes from a validated ledger version; if omitted or set to `false`, this data is not final. | {% /tab %} @@ -142,23 +153,22 @@ The response follows the [standard format][], with a successful result containin The response follows the [standard format][], with a successful result containing the fields of the [Transaction object](../../../protocol/transactions/index.md) as well as the following additional fields: -| `Field` | Type | Description | -|:---------------|:---------------------------------|:-------------------------| +| `Field` | Type | Description | +| :------------- | :------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `ctid` | String | The transaction's [compact transaction identifier](../../api-conventions/ctid.md). {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.12.0" %}New in: rippled 1.12.0{% /badge %} _(Not supported in Clio v2.0 and earlier.)_ | -| `date` | Number | The [close time](../../../../concepts/ledgers/ledger-close-times.md) of the ledger in which the transaction was applied, in [seconds since the Ripple Epoch][]. | -| `hash` | String | The unique [identifying hash][] of the transaction | -| `inLedger` | Number | _(Deprecated)_ Alias for `ledger_index`. | -| `ledger_index` | Number | The [ledger index][] of the ledger that includes this transaction. | -| `meta` | Object (JSON) or String (binary) | [Transaction metadata](../../../protocol/transactions/metadata.md), which describes the results of the transaction. | -| `tx` | String (binary) | (Binary mode) The transaction data represented as a hex string. | -| `validated` | Boolean | If `true`, this data comes from a validated ledger version; if omitted or set to `false`, this data is not final. | -| (Various) | (Various) | Other fields from the [Transaction object](../../../protocol/transactions/index.md) | +| `date` | Number | The [close time](../../../../concepts/ledgers/ledger-close-times.md) of the ledger in which the transaction was applied, in [seconds since the Ripple Epoch][]. | +| `hash` | String | The unique [identifying hash][] of the transaction | +| `inLedger` | Number | _(Deprecated)_ Alias for `ledger_index`. | +| `ledger_index` | Number | The [ledger index][] of the ledger that includes this transaction. | +| `meta` | Object (JSON) or String (binary) | [Transaction metadata](../../../protocol/transactions/metadata.md), which describes the results of the transaction. | +| `tx` | String (binary) | (Binary mode) The transaction data represented as a hex string. | +| `validated` | Boolean | If `true`, this data comes from a validated ledger version; if omitted or set to `false`, this data is not final. | +| (Various) | (Various) | Other fields from the [Transaction object](../../../protocol/transactions/index.md) | {% /tab %} {% /tabs %} - ### Not Found Response If the server does not find the transaction, it returns a `txnNotFound` error, which could mean two things: @@ -170,15 +180,16 @@ This means that a `txnNotFound` on its own is not enough to know the [final outc To further narrow down the possibilities, you can provide a range of ledgers to search using the `min_ledger` and `max_ledger` fields in the request. If you provide **both** of those fields, the `txnNotFound` response includes the following field: -| Field | Type | Description | -|:---------------|:----------|:-----------------------------------------| -| `searched_all` | Boolean | _(Omitted unless the request provided `min_ledger` and `max_ledger`)_ If `true`, the server was able to search all of the specified ledger versions, and the transaction was in none of them. If `false`, the server did not have all of the specified ledger versions available, so it is not sure if one of them might contain the transaction. | +| Field | Type | Description | +| :------------- | :------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `searched_all` | Boolean | _(Omitted unless the request provided `min_ledger` and `max_ledger`)_ If `true`, the server was able to search all of the specified ledger versions, and the transaction was in none of them. If `false`, the server did not have all of the specified ledger versions available, so it is not sure if one of them might contain the transaction. | An example of a `txnNotFound` response that fully searched a requested range of ledgers: {% tabs %} {% tab label="WebSocket" %} + ```json { "error": "txnNotFound", @@ -198,9 +209,11 @@ An example of a `txnNotFound` response that fully searched a requested range of "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -221,16 +234,17 @@ An example of a `txnNotFound` response that fully searched a requested range of } } ``` + {% /tab %} {% /tabs %} ## Possible Errors -* Any of the [universal error types][]. -* `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. -* `txnNotFound` - Either the transaction does not exist, or it was part of an ledger version that `rippled` does not have available. -* `excessiveLgrRange` - The `min_ledger` and `max_ledger` fields of the request are more than 1000 apart. -* `invalidLgrRange` - The specified `min_ledger` is larger than the `max_ledger`, or one of those parameters is not a valid ledger index. +- Any of the [universal error types][]. +- `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. +- `txnNotFound` - Either the transaction does not exist, or it was part of an ledger version that `rippled` does not have available. +- `excessiveLgrRange` - The `min_ledger` and `max_ledger` fields of the request are more than 1000 apart. +- `invalidLgrRange` - The specified `min_ledger` is larger than the `max_ledger`, or one of those parameters is not a valid ledger index. {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/http-websocket-apis/public-api-methods/transaction-methods/tx_history.md b/docs/references/http-websocket-apis/public-api-methods/transaction-methods/tx_history.md index c5fa6681ad..1367f0de5b 100644 --- a/docs/references/http-websocket-apis/public-api-methods/transaction-methods/tx_history.md +++ b/docs/references/http-websocket-apis/public-api-methods/transaction-methods/tx_history.md @@ -1,8 +1,10 @@ --- seo: - description: Retrieve info about all recent transactions. + description: Retrieve info about all recent transactions. --- + # tx_history + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/TxHistory.cpp "Source") The `tx_history` method retrieves some of the most recent transactions made. @@ -10,11 +12,13 @@ The `tx_history` method retrieves some of the most recent transactions made. {% admonition type="warning" name="Caution" %}This method is removed in [API v2][].{% /admonition %} ## Request Format + An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 5, @@ -22,26 +26,31 @@ An example of the request format: "start": 0 } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "tx_history", - "params": [ - { - "start": 0 - } - ] + "method": "tx_history", + "params": [ + { + "start": 0 + } + ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh #Syntax: tx_history [start] rippled tx_history 0 ``` + {% /tab %} {% /tabs %} @@ -49,7 +58,7 @@ rippled tx_history 0 The request includes the following parameters: | `Field` | Type | Description | -|:--------|:-----------------|:-------------------------------------| +| :------ | :--------------- | :----------------------------------- | | `start` | Unsigned Integer | Number of transactions to skip over. | ## Response Format @@ -59,6 +68,7 @@ An example of a successful response: {% tabs %} {% tab label="WebSocket" %} + ```json { "id": 2, @@ -509,9 +519,11 @@ An example of a successful response: } } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -877,558 +889,561 @@ An example of a successful response: } } ``` + {% /tab %} {% tab label="Commandline" %} + ```json { - "result" : { - "index" : 0, - "status" : "success", - "txs" : [ - { - "Account" : "r96HghtYDxvpHNaru1xbCQPcsHZwqiaENE", - "Amount" : { - "currency" : "CNT", - "issuer" : "rPFLkxQk6xUGdGYEykqe7PR25Gr7mLHDc8", - "value" : "10000" + "result": { + "index": 0, + "status": "success", + "txs": [ + { + "Account": "r96HghtYDxvpHNaru1xbCQPcsHZwqiaENE", + "Amount": { + "currency": "CNT", + "issuer": "rPFLkxQk6xUGdGYEykqe7PR25Gr7mLHDc8", + "value": "10000" + }, + "Destination": "r96HghtYDxvpHNaru1xbCQPcsHZwqiaENE", + "Fee": "11", + "Flags": 2147942400, + "LastLedgerSequence": 56845613, + "Paths": [ + [ + { + "currency": "BTC", + "issuer": "rchGBxcD1A1C2tdxF6papQYZ8kjRKMYcL", + "type": 48, + "type_hex": "0000000000000030" }, - "Destination" : "r96HghtYDxvpHNaru1xbCQPcsHZwqiaENE", - "Fee" : "11", - "Flags" : 2147942400, - "LastLedgerSequence" : 56845613, - "Paths" : [ - [ - { - "currency" : "BTC", - "issuer" : "rchGBxcD1A1C2tdxF6papQYZ8kjRKMYcL", - "type" : 48, - "type_hex" : "0000000000000030" - }, - { - "currency" : "EUR", - "issuer" : "rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq", - "type" : 48, - "type_hex" : "0000000000000030" - }, - { - "currency" : "XRP", - "type" : 16, - "type_hex" : "0000000000000010" - }, - { - "currency" : "CNT", - "issuer" : "rPFLkxQk6xUGdGYEykqe7PR25Gr7mLHDc8", - "type" : 48, - "type_hex" : "0000000000000030" - } - ], - [ - { - "currency" : "EUR", - "issuer" : "rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq", - "type" : 48, - "type_hex" : "0000000000000030" - }, - { - "currency" : "BTC", - "issuer" : "rchGBxcD1A1C2tdxF6papQYZ8kjRKMYcL", - "type" : 48, - "type_hex" : "0000000000000030" - }, - { - "currency" : "XRP", - "type" : 16, - "type_hex" : "0000000000000010" - }, - { - "currency" : "CNT", - "issuer" : "rPFLkxQk6xUGdGYEykqe7PR25Gr7mLHDc8", - "type" : 48, - "type_hex" : "0000000000000030" - } - ], - [ - { - "currency" : "USD", - "issuer" : "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y", - "type" : 48, - "type_hex" : "0000000000000030" - }, - { - "currency" : "CNY", - "issuer" : "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y", - "type" : 48, - "type_hex" : "0000000000000030" - }, - { - "currency" : "XRP", - "type" : 16, - "type_hex" : "0000000000000010" - }, - { - "currency" : "CNT", - "issuer" : "rPFLkxQk6xUGdGYEykqe7PR25Gr7mLHDc8", - "type" : 48, - "type_hex" : "0000000000000030" - } - ], - [ - { - "currency" : "CNY", - "issuer" : "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y", - "type" : 48, - "type_hex" : "0000000000000030" - }, - { - "currency" : "USD", - "issuer" : "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y", - "type" : 48, - "type_hex" : "0000000000000030" - }, - { - "currency" : "XRP", - "type" : 16, - "type_hex" : "0000000000000010" - }, - { - "currency" : "CNT", - "issuer" : "rPFLkxQk6xUGdGYEykqe7PR25Gr7mLHDc8", - "type" : 48, - "type_hex" : "0000000000000030" - } - ], - [ - { - "currency" : "USD", - "issuer" : "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y", - "type" : 48, - "type_hex" : "0000000000000030" - }, - { - "currency" : "XLM", - "issuer" : "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y", - "type" : 48, - "type_hex" : "0000000000000030" - }, - { - "currency" : "XRP", - "type" : 16, - "type_hex" : "0000000000000010" - }, - { - "currency" : "CNT", - "issuer" : "rPFLkxQk6xUGdGYEykqe7PR25Gr7mLHDc8", - "type" : 48, - "type_hex" : "0000000000000030" - } - ], - [ - { - "currency" : "XLM", - "issuer" : "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y", - "type" : 48, - "type_hex" : "0000000000000030" - }, - { - "currency" : "USD", - "issuer" : "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y", - "type" : 48, - "type_hex" : "0000000000000030" - }, - { - "currency" : "XRP", - "type" : 16, - "type_hex" : "0000000000000010" - }, - { - "currency" : "CNT", - "issuer" : "rPFLkxQk6xUGdGYEykqe7PR25Gr7mLHDc8", - "type" : 48, - "type_hex" : "0000000000000030" - } - ] - ], - "SendMax" : "10000000000", - "Sequence" : 11629682, - "SigningPubKey" : "03E45D5E88ABB50151F5F00A02B2A7B66CB6CEC8E55304C4BF7D0B27BB59A14800", - "TransactionType" : "Payment", - "TxnSignature" : "30450221008E9DDFF13C5FD1BDC01F7C1AC74CFF6E9B40FEE33D9F0E3CC30D45EDCA9170E402202EEABBC0A045D0091C7F3B80F22A1C060DE6D6975B93DC2508FB6DAFC0FC9F61", - "hash" : "E9047DD5B43E9AB392D8AABE3799D8AD9A73177705570E76181E3568AA380DE1", - "inLedger" : 56845612, - "ledger_index" : 56845612 - }, - { - "Account" : "rhXZDebYFALnTyWhFFPQJNqREGa27JPYiA", - "Fee" : "10", - "Flags" : 2147483648, - "LastLedgerSequence" : 56845615, - "OfferSequence" : 3400529, - "Sequence" : 3400607, - "SigningPubKey" : "03355CC886EB9C7FE8B69328D76AB2854525F35AB748839CC80D3B2F5CA9766DD1", - "TransactionType" : "OfferCancel", - "TxnSignature" : "3045022100F76589FEF96AD00DDFC07298A2FA7071B97D200879B65DE33AA138687946A187022079C3D1C571C4080F720677A99CB01BF3C4BDC14C0A663899391BC5F2A85A9B5A", - "hash" : "BD681EA79C5362FEF9101BFB565974794E937A22304051E7857ADD13B5BE0AD4", - "inLedger" : 56845612, - "ledger_index" : 56845612 - }, - { - "Account" : "rhXZDebYFALnTyWhFFPQJNqREGa27JPYiA", - "Fee" : "10", - "Flags" : 2147483648, - "LastLedgerSequence" : 56845615, - "Sequence" : 3400606, - "SigningPubKey" : "03355CC886EB9C7FE8B69328D76AB2854525F35AB748839CC80D3B2F5CA9766DD1", - "TakerGets" : { - "currency" : "BTC", - "issuer" : "rchGBxcD1A1C2tdxF6papQYZ8kjRKMYcL", - "value" : "0.00507205478630516" + { + "currency": "EUR", + "issuer": "rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq", + "type": 48, + "type_hex": "0000000000000030" }, - "TakerPays" : "249657501", - "TransactionType" : "OfferCreate", - "TxnSignature" : "3045022100C5DA644638C1FE4CF243D9E8A623AD3B86903F8F7D15F9488D7C4A283A7057FD022063A4166D7C077220BDD53B251784FEE78550FE714C7F7FB0B0F920EF0D622A63", - "hash" : "BB2A5A57AA020C297ABFB3533E1478778C0A723D0376494FF716D54E66238945", - "inLedger" : 56845612, - "ledger_index" : 56845612 - }, - { - "Account" : "rhXZDebYFALnTyWhFFPQJNqREGa27JPYiA", - "Fee" : "10", - "Flags" : 2147483648, - "LastLedgerSequence" : 56845615, - "OfferSequence" : 3400527, - "Sequence" : 3400605, - "SigningPubKey" : "03355CC886EB9C7FE8B69328D76AB2854525F35AB748839CC80D3B2F5CA9766DD1", - "TransactionType" : "OfferCancel", - "TxnSignature" : "30450221008CCA40D79736F8845C73469860E1A11500C45CC9F96B6081FCCD260AB8B6C9A5022021F8665655D9FA378AC44CAAE181693A5FB6D545774C8ECE3BD403A28A523A6D", - "hash" : "493F0944765501302028E8A2528C6731DCAA4CA7A3C3136D7563A0FCB0E93692", - "inLedger" : 56845612, - "ledger_index" : 56845612 - }, - { - "Account" : "rhXZDebYFALnTyWhFFPQJNqREGa27JPYiA", - "Fee" : "10", - "Flags" : 2147483648, - "LastLedgerSequence" : 56845615, - "Sequence" : 3400604, - "SigningPubKey" : "03355CC886EB9C7FE8B69328D76AB2854525F35AB748839CC80D3B2F5CA9766DD1", - "TakerGets" : { - "currency" : "BTC", - "issuer" : "rchGBxcD1A1C2tdxF6papQYZ8kjRKMYcL", - "value" : "0.00507205478630516" + { + "currency": "XRP", + "type": 16, + "type_hex": "0000000000000010" }, - "TakerPays" : { - "currency" : "ETH", - "issuer" : "rcA8X3TVMST1n3CJeAdGk1RdRCHii7N2h", - "value" : "0.202004149646394" + { + "currency": "CNT", + "issuer": "rPFLkxQk6xUGdGYEykqe7PR25Gr7mLHDc8", + "type": 48, + "type_hex": "0000000000000030" + } + ], + [ + { + "currency": "EUR", + "issuer": "rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq", + "type": 48, + "type_hex": "0000000000000030" }, - "TransactionType" : "OfferCreate", - "TxnSignature" : "304402203078ECCAD7CDBD9D1D29D50370E5D897781B53643ADA86DC31C588B80AF979A002203B9EDF215C13A151876B02785EA5FFA43A88BDE4039DD34B4B0B298E3357170D", - "hash" : "DDA8785FE70C4543B464DDFFB8418A98509F340E32AD587CA221249C32A211CB", - "inLedger" : 56845612, - "ledger_index" : 56845612 - }, - { - "Account" : "rhXZDebYFALnTyWhFFPQJNqREGa27JPYiA", - "Fee" : "10", - "Flags" : 2147483648, - "LastLedgerSequence" : 56845615, - "OfferSequence" : 3400525, - "Sequence" : 3400603, - "SigningPubKey" : "03355CC886EB9C7FE8B69328D76AB2854525F35AB748839CC80D3B2F5CA9766DD1", - "TransactionType" : "OfferCancel", - "TxnSignature" : "304402201D09EB1E9AEC4E33CC7C714283393B1D32C005180C34B3F25D91BD0A0FDF91560220064F2A0904F9EEB5EC405814ADDF65A7096D0FC9A793A3523DE222489DE8ABEF", - "hash" : "5D44EF496DDBE4DEDE6FF3CA2666CF2C48538DB1B696B331369A6A188733476F", - "inLedger" : 56845612, - "ledger_index" : 56845612 - }, - { - "Account" : "rhXZDebYFALnTyWhFFPQJNqREGa27JPYiA", - "Fee" : "10", - "Flags" : 2147483648, - "LastLedgerSequence" : 56845615, - "Sequence" : 3400602, - "SigningPubKey" : "03355CC886EB9C7FE8B69328D76AB2854525F35AB748839CC80D3B2F5CA9766DD1", - "TakerGets" : { - "currency" : "BTC", - "issuer" : "rchGBxcD1A1C2tdxF6papQYZ8kjRKMYcL", - "value" : "0.00507205478630516" + { + "currency": "BTC", + "issuer": "rchGBxcD1A1C2tdxF6papQYZ8kjRKMYcL", + "type": 48, + "type_hex": "0000000000000030" }, - "TakerPays" : { - "currency" : "BTC", - "issuer" : "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value" : "0.00517038081708025" + { + "currency": "XRP", + "type": 16, + "type_hex": "0000000000000010" }, - "TransactionType" : "OfferCreate", - "TxnSignature" : "3045022100CF63E5FB454C5D1939E950B843B8DE776A10643C3F675AEA13972833F3D18B2702203654A5C3FB25DF2FB48F7C25689716F7DBB9503B0760E45F823E2348846C2AB7", - "hash" : "766118E01073DEF7977601B9B800C13996B9885AECA744A6C421892235EF2B5C", - "inLedger" : 56845612, - "ledger_index" : 56845612 - }, - { - "Account" : "rhhh49pFH96roGyuC4E5P4CHaNjS1k8gzM", - "Fee" : "12", - "Flags" : 0, - "LastLedgerSequence" : 56845615, - "OfferSequence" : 5021336, - "Sequence" : 5021338, - "SigningPubKey" : "03B51A3EDF70E4098DA7FB053A01C5A6A0A163A30ED1445F14F87C7C3295FCB3BE", - "TakerGets" : "15000000000", - "TakerPays" : { - "currency" : "CNY", - "issuer" : "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y", - "value" : "20874.44999999999" + { + "currency": "CNT", + "issuer": "rPFLkxQk6xUGdGYEykqe7PR25Gr7mLHDc8", + "type": 48, + "type_hex": "0000000000000030" + } + ], + [ + { + "currency": "USD", + "issuer": "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y", + "type": 48, + "type_hex": "0000000000000030" }, - "TransactionType" : "OfferCreate", - "TxnSignature" : "3045022100B368499CA2E5B3F6044E17AA9CBC93555B34993F92C56CBC445018F0ABEE0045022015F65F9F7ECA684F19F2F497EFBCF2A44D075EA887ABD5191D9A04EE6E8D7F4A", - "hash" : "90D9BF0A93DC3C2BE7C256338664265D7546C8AD2F247E73ADF9FEAFA65A06CA", - "inLedger" : 56845612, - "ledger_index" : 56845612 - }, - { - "Account" : "rhhh49pFH96roGyuC4E5P4CHaNjS1k8gzM", - "Fee" : "12", - "Flags" : 0, - "LastLedgerSequence" : 56845615, - "OfferSequence" : 5021335, - "Sequence" : 5021337, - "SigningPubKey" : "03B51A3EDF70E4098DA7FB053A01C5A6A0A163A30ED1445F14F87C7C3295FCB3BE", - "TakerGets" : "15000000000", - "TakerPays" : { - "currency" : "CNY", - "issuer" : "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y", - "value" : "20812.8" + { + "currency": "CNY", + "issuer": "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y", + "type": 48, + "type_hex": "0000000000000030" }, - "TransactionType" : "OfferCreate", - "TxnSignature" : "3045022100D0C7E3CD774B9D5D5B9931119CCA0D80302669D8845DA72905677D19A334BCE202204A5D9DCD4D27F22D28B14153B8FE36779A11A27ECE6A442A883E04975019B50D", - "hash" : "3238F80A01E60420BBB909A47130A9DA717EB8AD9F8550CFAC124317C26A9354", - "inLedger" : 56845612, - "ledger_index" : 56845612 - }, - { - "Account" : "rhhh49pFH96roGyuC4E5P4CHaNjS1k8gzM", - "Fee" : "12", - "Flags" : 0, - "LastLedgerSequence" : 56845614, - "OfferSequence" : 5021334, - "Sequence" : 5021336, - "SigningPubKey" : "03B51A3EDF70E4098DA7FB053A01C5A6A0A163A30ED1445F14F87C7C3295FCB3BE", - "TakerGets" : "15000000000", - "TakerPays" : { - "currency" : "CNY", - "issuer" : "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y", - "value" : "20876.55" + { + "currency": "XRP", + "type": 16, + "type_hex": "0000000000000010" }, - "TransactionType" : "OfferCreate", - "TxnSignature" : "3045022100874C70F9AE0732D45573B65864282A505F932AA111DBB3FC15F70C21AA8B1973022004773A4E61E9DDBBF9E0BD11827921F7E2EBBAE1D4ED50AF8F4A8A0893E7FF37", - "hash" : "09592065F990A35096B5131A68449D417A57A9A6943C6D2842DB9E9B7BA783F3", - "inLedger" : 56845612, - "ledger_index" : 56845612 - }, - { - "Account" : "rhhh49pFH96roGyuC4E5P4CHaNjS1k8gzM", - "Fee" : "12", - "Flags" : 0, - "LastLedgerSequence" : 56845614, - "OfferSequence" : 5021333, - "Sequence" : 5021335, - "SigningPubKey" : "03B51A3EDF70E4098DA7FB053A01C5A6A0A163A30ED1445F14F87C7C3295FCB3BE", - "TakerGets" : "15000000000", - "TakerPays" : { - "currency" : "CNY", - "issuer" : "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y", - "value" : "20814.89999999999" + { + "currency": "CNT", + "issuer": "rPFLkxQk6xUGdGYEykqe7PR25Gr7mLHDc8", + "type": 48, + "type_hex": "0000000000000030" + } + ], + [ + { + "currency": "CNY", + "issuer": "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y", + "type": 48, + "type_hex": "0000000000000030" }, - "TransactionType" : "OfferCreate", - "TxnSignature" : "304502210087EE970DA4C613FFDE3AF3FFD6810011892113550A34DDB91179B96D87A8235E022053487E63E2A426A9942A5974BF67C44C0D17A754B92D641A21B9EDE2F21530EE", - "hash" : "75F61FED9ADCC8F091A330119A73B4A6949F76982916E2EBD37A8B3ADF910E0F", - "inLedger" : 56845612, - "ledger_index" : 56845612 - }, - { - "Account" : "rh3VLyj1GbQjX7eA15BwUagEhSrPHmLkSR", - "Fee" : "12", - "Flags" : 0, - "LastLedgerSequence" : 56845614, - "OfferSequence" : 41691946, - "Sequence" : 41691950, - "SigningPubKey" : "022D40673B44C82DEE1DDB8B9BB53DCCE4F97B27404DB850F068DD91D685E337EA", - "TakerGets" : { - "currency" : "CNY", - "issuer" : "rJ1adrpGS3xsnQMb9Cw54tWJVFPuSdZHK", - "value" : "41318.81898853314" + { + "currency": "USD", + "issuer": "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y", + "type": 48, + "type_hex": "0000000000000030" }, - "TakerPays" : "30915226849", - "TransactionType" : "OfferCreate", - "TxnSignature" : "3045022100C9600476A340E9EABF57A0A11222341EDA58820CB9CBE68CEB1B091F6BD38F780220497BC21226C96956E119D2979AEF6A9A68387AD16AB454ADC3EB65F9ACE96BE5", - "hash" : "391B7E37EBBEA051E1D33B84569C959A4D73F5F4E61ABC9FB62C381B6D68E9B7", - "inLedger" : 56845612, - "ledger_index" : 56845612 - }, - { - "Account" : "rwchA2b36zu2r6CJfEMzPLQ1cmciKFcw9t", - "Fee" : "12", - "Flags" : 0, - "LastLedgerSequence" : 56845614, - "OfferSequence" : 9320758, - "Sequence" : 9320762, - "SigningPubKey" : "037E9B02A63FFC298C82B66D250932A5DCF89361122925CB42339E3C769245084C", - "TakerGets" : { - "currency" : "CNY", - "issuer" : "rJ1adrpGS3xsnQMb9Cw54tWJVFPuSdZHK", - "value" : "21604.14928277434" + { + "currency": "XRP", + "type": 16, + "type_hex": "0000000000000010" }, - "TakerPays" : "18046769983", - "TransactionType" : "OfferCreate", - "TxnSignature" : "304402207130109344A2002B02F9DC3454572F1DE48A76D489F3A2912F17AA54586975F3022035BEAB40662F077F7B119CB77ACFD480B720E614C0F5C7AC7224EAF611CB7BCA", - "hash" : "FA0FC48F5087AA77E630EFD9D6E8F7C1465086846696AF00EEF517377A2CB749", - "inLedger" : 56845612, - "ledger_index" : 56845612 - }, - { - "Account" : "rwchA2b36zu2r6CJfEMzPLQ1cmciKFcw9t", - "Fee" : "12", - "Flags" : 0, - "LastLedgerSequence" : 56845614, - "OfferSequence" : 9320757, - "Sequence" : 9320761, - "SigningPubKey" : "037E9B02A63FFC298C82B66D250932A5DCF89361122925CB42339E3C769245084C", - "TakerGets" : { - "currency" : "CNY", - "issuer" : "rJ1adrpGS3xsnQMb9Cw54tWJVFPuSdZHK", - "value" : "21153.27740430806" + { + "currency": "CNT", + "issuer": "rPFLkxQk6xUGdGYEykqe7PR25Gr7mLHDc8", + "type": 48, + "type_hex": "0000000000000030" + } + ], + [ + { + "currency": "USD", + "issuer": "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y", + "type": 48, + "type_hex": "0000000000000030" }, - "TakerPays" : "17084997741", - "TransactionType" : "OfferCreate", - "TxnSignature" : "3044022070D1F61AB277243ED18C8104DC7251DE464C37DC3F8A92C48586DA02FE27944E02203E63E73E0ABE7EAE518BB7CFAE5FFAB20BE1DECC60D6B4B16B9B72DC920BB06A", - "hash" : "D01E289C628C441EAC2279929951ED0DA2816A6560C0985A093E85BB9E506937", - "inLedger" : 56845612, - "ledger_index" : 56845612 - }, - { - "Account" : "rwchA2b36zu2r6CJfEMzPLQ1cmciKFcw9t", - "Fee" : "12", - "Flags" : 0, - "LastLedgerSequence" : 56845614, - "OfferSequence" : 9320756, - "Sequence" : 9320760, - "SigningPubKey" : "037E9B02A63FFC298C82B66D250932A5DCF89361122925CB42339E3C769245084C", - "TakerGets" : { - "currency" : "CNY", - "issuer" : "rJ1adrpGS3xsnQMb9Cw54tWJVFPuSdZHK", - "value" : "23222.92606822486" + { + "currency": "XLM", + "issuer": "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y", + "type": 48, + "type_hex": "0000000000000030" }, - "TakerPays" : "18155392823", - "TransactionType" : "OfferCreate", - "TxnSignature" : "3044022027BA44F8509ED750ACE3FF3808DEE7C5800CE2AF6DD578C7AFD212D45EB1505E0220448283547BC3C0A6D316A8ADF884FFD216DF1288C813ECBF95B6457A24273844", - "hash" : "BB65B88A976B04FF906C0962764BBED724B410514CAB614F1C4D1CD9F397C8D0", - "inLedger" : 56845612, - "ledger_index" : 56845612 - }, - { - "Account" : "rwchA2b36zu2r6CJfEMzPLQ1cmciKFcw9t", - "Fee" : "12", - "Flags" : 0, - "LastLedgerSequence" : 56845614, - "OfferSequence" : 9320755, - "Sequence" : 9320759, - "SigningPubKey" : "037E9B02A63FFC298C82B66D250932A5DCF89361122925CB42339E3C769245084C", - "TakerGets" : { - "currency" : "CNY", - "issuer" : "rJ1adrpGS3xsnQMb9Cw54tWJVFPuSdZHK", - "value" : "28979.36444343412" + { + "currency": "XRP", + "type": 16, + "type_hex": "0000000000000010" }, - "TakerPays" : "21952068329", - "TransactionType" : "OfferCreate", - "TxnSignature" : "3045022100D32888AE7BF2312A661FE5C61C9E402643BB524263CDE7A0172971056F1D7E650220296BD08642719E778D24585AB127BA851E61C450A50CDA0EDF7D1AD8EF933DFE", - "hash" : "026E1CAD09FD1B4508839377D2C27A34D99E61173ACEAC021171424938E2B662", - "inLedger" : 56845612, - "ledger_index" : 56845612 - }, - { - "Account" : "rUTEn2jLLv4ESmrUqQmhZfEfDN3LorhgvZ", - "Fee" : "12", - "Flags" : 0, - "LastLedgerSequence" : 56845614, - "OfferSequence" : 9280923, - "Sequence" : 9280927, - "SigningPubKey" : "021C987881039AD42AEC336FB8460F1B1F4DDF0839CAF3EAB1AF69DDF8012C30A3", - "TakerGets" : "18779187610", - "TakerPays" : { - "currency" : "CNY", - "issuer" : "rJ1adrpGS3xsnQMb9Cw54tWJVFPuSdZHK", - "value" : "28975.72310791101" + { + "currency": "CNT", + "issuer": "rPFLkxQk6xUGdGYEykqe7PR25Gr7mLHDc8", + "type": 48, + "type_hex": "0000000000000030" + } + ], + [ + { + "currency": "XLM", + "issuer": "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y", + "type": 48, + "type_hex": "0000000000000030" }, - "TransactionType" : "OfferCreate", - "TxnSignature" : "3045022100A9735BBF6E757AC5E07FCE16C55B8901634EAC43F16F21B1493B689B7F0234FD0220614053BEA47C68930BA3CF262E961CBFF4A71E4C16AB1EE30F345359F3C858E2", - "hash" : "BB4F12026FD5B635A9CE1C1A3DB2DC23F1011082CA431E911940B63A8F393607", - "inLedger" : 56845612, - "ledger_index" : 56845612 - }, - { - "Account" : "rUTEn2jLLv4ESmrUqQmhZfEfDN3LorhgvZ", - "Fee" : "12", - "Flags" : 0, - "LastLedgerSequence" : 56845614, - "OfferSequence" : 9280922, - "Sequence" : 9280926, - "SigningPubKey" : "021C987881039AD42AEC336FB8460F1B1F4DDF0839CAF3EAB1AF69DDF8012C30A3", - "TakerGets" : "8181267030", - "TakerPays" : { - "currency" : "CNY", - "issuer" : "rJ1adrpGS3xsnQMb9Cw54tWJVFPuSdZHK", - "value" : "12288.01764167985" + { + "currency": "USD", + "issuer": "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y", + "type": 48, + "type_hex": "0000000000000030" }, - "TransactionType" : "OfferCreate", - "TxnSignature" : "3045022100DC085D453E9F106E0C23F6EFBFB35AB7476847EF145113CC585EDFF7B622285102200FBDAF12422AA49C71BCA805A94207D2C6C85AAF0DF3ADA2131139273FEE0065", - "hash" : "2C7EB89FD617EC0ACC4608141F6C6588DD5C28CD8BD545F2758D778E445B9F39", - "inLedger" : 56845612, - "ledger_index" : 56845612 - }, - { - "Account" : "rUTEn2jLLv4ESmrUqQmhZfEfDN3LorhgvZ", - "Fee" : "12", - "Flags" : 0, - "LastLedgerSequence" : 56845614, - "OfferSequence" : 9280921, - "Sequence" : 9280925, - "SigningPubKey" : "021C987881039AD42AEC336FB8460F1B1F4DDF0839CAF3EAB1AF69DDF8012C30A3", - "TakerGets" : "5483852556", - "TakerPays" : { - "currency" : "CNY", - "issuer" : "rJ1adrpGS3xsnQMb9Cw54tWJVFPuSdZHK", - "value" : "8011.744069983915" + { + "currency": "XRP", + "type": 16, + "type_hex": "0000000000000010" }, - "TransactionType" : "OfferCreate", - "TxnSignature" : "30440220235009358985925D4F5A29FBB650585A949C4299B597E59F944C2F9A7F465F04022067A9D52CE7668EDDFD23CD0A549C614BDBC7E3CBCE1DAFCDAA6617985F22AF5A", - "hash" : "3D549BE1E3F76B04F353A8D2984FA8E5285F845D62595A881956133578AAE7F6", - "inLedger" : 56845612, - "ledger_index" : 56845612 - }, - { - "Account" : "rUTEn2jLLv4ESmrUqQmhZfEfDN3LorhgvZ", - "Fee" : "12", - "Flags" : 0, - "LastLedgerSequence" : 56845614, - "OfferSequence" : 9280920, - "Sequence" : 9280924, - "SigningPubKey" : "021C987881039AD42AEC336FB8460F1B1F4DDF0839CAF3EAB1AF69DDF8012C30A3", - "TakerGets" : "18161813563", - "TakerPays" : { - "currency" : "CNY", - "issuer" : "rJ1adrpGS3xsnQMb9Cw54tWJVFPuSdZHK", - "value" : "25789.23040606686" - }, - "TransactionType" : "OfferCreate", - "TxnSignature" : "30440220556320ADCF85CCA130B3DCB4579ADEBE4C9792580574DD53FF51F5CFD805BACE0220448BE61C8521C42012B23C15394991C29AE9EA2E971FDD9EB197165291FB6F5A", - "hash" : "295833386FF9A419EE7CE81758CD16E9D6DE61E3A8618BD052FE1D548BA920E1", - "inLedger" : 56845612, - "ledger_index" : 56845612 - } - ] - } + { + "currency": "CNT", + "issuer": "rPFLkxQk6xUGdGYEykqe7PR25Gr7mLHDc8", + "type": 48, + "type_hex": "0000000000000030" + } + ] + ], + "SendMax": "10000000000", + "Sequence": 11629682, + "SigningPubKey": "03E45D5E88ABB50151F5F00A02B2A7B66CB6CEC8E55304C4BF7D0B27BB59A14800", + "TransactionType": "Payment", + "TxnSignature": "30450221008E9DDFF13C5FD1BDC01F7C1AC74CFF6E9B40FEE33D9F0E3CC30D45EDCA9170E402202EEABBC0A045D0091C7F3B80F22A1C060DE6D6975B93DC2508FB6DAFC0FC9F61", + "hash": "E9047DD5B43E9AB392D8AABE3799D8AD9A73177705570E76181E3568AA380DE1", + "inLedger": 56845612, + "ledger_index": 56845612 + }, + { + "Account": "rhXZDebYFALnTyWhFFPQJNqREGa27JPYiA", + "Fee": "10", + "Flags": 2147483648, + "LastLedgerSequence": 56845615, + "OfferSequence": 3400529, + "Sequence": 3400607, + "SigningPubKey": "03355CC886EB9C7FE8B69328D76AB2854525F35AB748839CC80D3B2F5CA9766DD1", + "TransactionType": "OfferCancel", + "TxnSignature": "3045022100F76589FEF96AD00DDFC07298A2FA7071B97D200879B65DE33AA138687946A187022079C3D1C571C4080F720677A99CB01BF3C4BDC14C0A663899391BC5F2A85A9B5A", + "hash": "BD681EA79C5362FEF9101BFB565974794E937A22304051E7857ADD13B5BE0AD4", + "inLedger": 56845612, + "ledger_index": 56845612 + }, + { + "Account": "rhXZDebYFALnTyWhFFPQJNqREGa27JPYiA", + "Fee": "10", + "Flags": 2147483648, + "LastLedgerSequence": 56845615, + "Sequence": 3400606, + "SigningPubKey": "03355CC886EB9C7FE8B69328D76AB2854525F35AB748839CC80D3B2F5CA9766DD1", + "TakerGets": { + "currency": "BTC", + "issuer": "rchGBxcD1A1C2tdxF6papQYZ8kjRKMYcL", + "value": "0.00507205478630516" + }, + "TakerPays": "249657501", + "TransactionType": "OfferCreate", + "TxnSignature": "3045022100C5DA644638C1FE4CF243D9E8A623AD3B86903F8F7D15F9488D7C4A283A7057FD022063A4166D7C077220BDD53B251784FEE78550FE714C7F7FB0B0F920EF0D622A63", + "hash": "BB2A5A57AA020C297ABFB3533E1478778C0A723D0376494FF716D54E66238945", + "inLedger": 56845612, + "ledger_index": 56845612 + }, + { + "Account": "rhXZDebYFALnTyWhFFPQJNqREGa27JPYiA", + "Fee": "10", + "Flags": 2147483648, + "LastLedgerSequence": 56845615, + "OfferSequence": 3400527, + "Sequence": 3400605, + "SigningPubKey": "03355CC886EB9C7FE8B69328D76AB2854525F35AB748839CC80D3B2F5CA9766DD1", + "TransactionType": "OfferCancel", + "TxnSignature": "30450221008CCA40D79736F8845C73469860E1A11500C45CC9F96B6081FCCD260AB8B6C9A5022021F8665655D9FA378AC44CAAE181693A5FB6D545774C8ECE3BD403A28A523A6D", + "hash": "493F0944765501302028E8A2528C6731DCAA4CA7A3C3136D7563A0FCB0E93692", + "inLedger": 56845612, + "ledger_index": 56845612 + }, + { + "Account": "rhXZDebYFALnTyWhFFPQJNqREGa27JPYiA", + "Fee": "10", + "Flags": 2147483648, + "LastLedgerSequence": 56845615, + "Sequence": 3400604, + "SigningPubKey": "03355CC886EB9C7FE8B69328D76AB2854525F35AB748839CC80D3B2F5CA9766DD1", + "TakerGets": { + "currency": "BTC", + "issuer": "rchGBxcD1A1C2tdxF6papQYZ8kjRKMYcL", + "value": "0.00507205478630516" + }, + "TakerPays": { + "currency": "ETH", + "issuer": "rcA8X3TVMST1n3CJeAdGk1RdRCHii7N2h", + "value": "0.202004149646394" + }, + "TransactionType": "OfferCreate", + "TxnSignature": "304402203078ECCAD7CDBD9D1D29D50370E5D897781B53643ADA86DC31C588B80AF979A002203B9EDF215C13A151876B02785EA5FFA43A88BDE4039DD34B4B0B298E3357170D", + "hash": "DDA8785FE70C4543B464DDFFB8418A98509F340E32AD587CA221249C32A211CB", + "inLedger": 56845612, + "ledger_index": 56845612 + }, + { + "Account": "rhXZDebYFALnTyWhFFPQJNqREGa27JPYiA", + "Fee": "10", + "Flags": 2147483648, + "LastLedgerSequence": 56845615, + "OfferSequence": 3400525, + "Sequence": 3400603, + "SigningPubKey": "03355CC886EB9C7FE8B69328D76AB2854525F35AB748839CC80D3B2F5CA9766DD1", + "TransactionType": "OfferCancel", + "TxnSignature": "304402201D09EB1E9AEC4E33CC7C714283393B1D32C005180C34B3F25D91BD0A0FDF91560220064F2A0904F9EEB5EC405814ADDF65A7096D0FC9A793A3523DE222489DE8ABEF", + "hash": "5D44EF496DDBE4DEDE6FF3CA2666CF2C48538DB1B696B331369A6A188733476F", + "inLedger": 56845612, + "ledger_index": 56845612 + }, + { + "Account": "rhXZDebYFALnTyWhFFPQJNqREGa27JPYiA", + "Fee": "10", + "Flags": 2147483648, + "LastLedgerSequence": 56845615, + "Sequence": 3400602, + "SigningPubKey": "03355CC886EB9C7FE8B69328D76AB2854525F35AB748839CC80D3B2F5CA9766DD1", + "TakerGets": { + "currency": "BTC", + "issuer": "rchGBxcD1A1C2tdxF6papQYZ8kjRKMYcL", + "value": "0.00507205478630516" + }, + "TakerPays": { + "currency": "BTC", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "0.00517038081708025" + }, + "TransactionType": "OfferCreate", + "TxnSignature": "3045022100CF63E5FB454C5D1939E950B843B8DE776A10643C3F675AEA13972833F3D18B2702203654A5C3FB25DF2FB48F7C25689716F7DBB9503B0760E45F823E2348846C2AB7", + "hash": "766118E01073DEF7977601B9B800C13996B9885AECA744A6C421892235EF2B5C", + "inLedger": 56845612, + "ledger_index": 56845612 + }, + { + "Account": "rhhh49pFH96roGyuC4E5P4CHaNjS1k8gzM", + "Fee": "12", + "Flags": 0, + "LastLedgerSequence": 56845615, + "OfferSequence": 5021336, + "Sequence": 5021338, + "SigningPubKey": "03B51A3EDF70E4098DA7FB053A01C5A6A0A163A30ED1445F14F87C7C3295FCB3BE", + "TakerGets": "15000000000", + "TakerPays": { + "currency": "CNY", + "issuer": "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y", + "value": "20874.44999999999" + }, + "TransactionType": "OfferCreate", + "TxnSignature": "3045022100B368499CA2E5B3F6044E17AA9CBC93555B34993F92C56CBC445018F0ABEE0045022015F65F9F7ECA684F19F2F497EFBCF2A44D075EA887ABD5191D9A04EE6E8D7F4A", + "hash": "90D9BF0A93DC3C2BE7C256338664265D7546C8AD2F247E73ADF9FEAFA65A06CA", + "inLedger": 56845612, + "ledger_index": 56845612 + }, + { + "Account": "rhhh49pFH96roGyuC4E5P4CHaNjS1k8gzM", + "Fee": "12", + "Flags": 0, + "LastLedgerSequence": 56845615, + "OfferSequence": 5021335, + "Sequence": 5021337, + "SigningPubKey": "03B51A3EDF70E4098DA7FB053A01C5A6A0A163A30ED1445F14F87C7C3295FCB3BE", + "TakerGets": "15000000000", + "TakerPays": { + "currency": "CNY", + "issuer": "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y", + "value": "20812.8" + }, + "TransactionType": "OfferCreate", + "TxnSignature": "3045022100D0C7E3CD774B9D5D5B9931119CCA0D80302669D8845DA72905677D19A334BCE202204A5D9DCD4D27F22D28B14153B8FE36779A11A27ECE6A442A883E04975019B50D", + "hash": "3238F80A01E60420BBB909A47130A9DA717EB8AD9F8550CFAC124317C26A9354", + "inLedger": 56845612, + "ledger_index": 56845612 + }, + { + "Account": "rhhh49pFH96roGyuC4E5P4CHaNjS1k8gzM", + "Fee": "12", + "Flags": 0, + "LastLedgerSequence": 56845614, + "OfferSequence": 5021334, + "Sequence": 5021336, + "SigningPubKey": "03B51A3EDF70E4098DA7FB053A01C5A6A0A163A30ED1445F14F87C7C3295FCB3BE", + "TakerGets": "15000000000", + "TakerPays": { + "currency": "CNY", + "issuer": "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y", + "value": "20876.55" + }, + "TransactionType": "OfferCreate", + "TxnSignature": "3045022100874C70F9AE0732D45573B65864282A505F932AA111DBB3FC15F70C21AA8B1973022004773A4E61E9DDBBF9E0BD11827921F7E2EBBAE1D4ED50AF8F4A8A0893E7FF37", + "hash": "09592065F990A35096B5131A68449D417A57A9A6943C6D2842DB9E9B7BA783F3", + "inLedger": 56845612, + "ledger_index": 56845612 + }, + { + "Account": "rhhh49pFH96roGyuC4E5P4CHaNjS1k8gzM", + "Fee": "12", + "Flags": 0, + "LastLedgerSequence": 56845614, + "OfferSequence": 5021333, + "Sequence": 5021335, + "SigningPubKey": "03B51A3EDF70E4098DA7FB053A01C5A6A0A163A30ED1445F14F87C7C3295FCB3BE", + "TakerGets": "15000000000", + "TakerPays": { + "currency": "CNY", + "issuer": "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y", + "value": "20814.89999999999" + }, + "TransactionType": "OfferCreate", + "TxnSignature": "304502210087EE970DA4C613FFDE3AF3FFD6810011892113550A34DDB91179B96D87A8235E022053487E63E2A426A9942A5974BF67C44C0D17A754B92D641A21B9EDE2F21530EE", + "hash": "75F61FED9ADCC8F091A330119A73B4A6949F76982916E2EBD37A8B3ADF910E0F", + "inLedger": 56845612, + "ledger_index": 56845612 + }, + { + "Account": "rh3VLyj1GbQjX7eA15BwUagEhSrPHmLkSR", + "Fee": "12", + "Flags": 0, + "LastLedgerSequence": 56845614, + "OfferSequence": 41691946, + "Sequence": 41691950, + "SigningPubKey": "022D40673B44C82DEE1DDB8B9BB53DCCE4F97B27404DB850F068DD91D685E337EA", + "TakerGets": { + "currency": "CNY", + "issuer": "rJ1adrpGS3xsnQMb9Cw54tWJVFPuSdZHK", + "value": "41318.81898853314" + }, + "TakerPays": "30915226849", + "TransactionType": "OfferCreate", + "TxnSignature": "3045022100C9600476A340E9EABF57A0A11222341EDA58820CB9CBE68CEB1B091F6BD38F780220497BC21226C96956E119D2979AEF6A9A68387AD16AB454ADC3EB65F9ACE96BE5", + "hash": "391B7E37EBBEA051E1D33B84569C959A4D73F5F4E61ABC9FB62C381B6D68E9B7", + "inLedger": 56845612, + "ledger_index": 56845612 + }, + { + "Account": "rwchA2b36zu2r6CJfEMzPLQ1cmciKFcw9t", + "Fee": "12", + "Flags": 0, + "LastLedgerSequence": 56845614, + "OfferSequence": 9320758, + "Sequence": 9320762, + "SigningPubKey": "037E9B02A63FFC298C82B66D250932A5DCF89361122925CB42339E3C769245084C", + "TakerGets": { + "currency": "CNY", + "issuer": "rJ1adrpGS3xsnQMb9Cw54tWJVFPuSdZHK", + "value": "21604.14928277434" + }, + "TakerPays": "18046769983", + "TransactionType": "OfferCreate", + "TxnSignature": "304402207130109344A2002B02F9DC3454572F1DE48A76D489F3A2912F17AA54586975F3022035BEAB40662F077F7B119CB77ACFD480B720E614C0F5C7AC7224EAF611CB7BCA", + "hash": "FA0FC48F5087AA77E630EFD9D6E8F7C1465086846696AF00EEF517377A2CB749", + "inLedger": 56845612, + "ledger_index": 56845612 + }, + { + "Account": "rwchA2b36zu2r6CJfEMzPLQ1cmciKFcw9t", + "Fee": "12", + "Flags": 0, + "LastLedgerSequence": 56845614, + "OfferSequence": 9320757, + "Sequence": 9320761, + "SigningPubKey": "037E9B02A63FFC298C82B66D250932A5DCF89361122925CB42339E3C769245084C", + "TakerGets": { + "currency": "CNY", + "issuer": "rJ1adrpGS3xsnQMb9Cw54tWJVFPuSdZHK", + "value": "21153.27740430806" + }, + "TakerPays": "17084997741", + "TransactionType": "OfferCreate", + "TxnSignature": "3044022070D1F61AB277243ED18C8104DC7251DE464C37DC3F8A92C48586DA02FE27944E02203E63E73E0ABE7EAE518BB7CFAE5FFAB20BE1DECC60D6B4B16B9B72DC920BB06A", + "hash": "D01E289C628C441EAC2279929951ED0DA2816A6560C0985A093E85BB9E506937", + "inLedger": 56845612, + "ledger_index": 56845612 + }, + { + "Account": "rwchA2b36zu2r6CJfEMzPLQ1cmciKFcw9t", + "Fee": "12", + "Flags": 0, + "LastLedgerSequence": 56845614, + "OfferSequence": 9320756, + "Sequence": 9320760, + "SigningPubKey": "037E9B02A63FFC298C82B66D250932A5DCF89361122925CB42339E3C769245084C", + "TakerGets": { + "currency": "CNY", + "issuer": "rJ1adrpGS3xsnQMb9Cw54tWJVFPuSdZHK", + "value": "23222.92606822486" + }, + "TakerPays": "18155392823", + "TransactionType": "OfferCreate", + "TxnSignature": "3044022027BA44F8509ED750ACE3FF3808DEE7C5800CE2AF6DD578C7AFD212D45EB1505E0220448283547BC3C0A6D316A8ADF884FFD216DF1288C813ECBF95B6457A24273844", + "hash": "BB65B88A976B04FF906C0962764BBED724B410514CAB614F1C4D1CD9F397C8D0", + "inLedger": 56845612, + "ledger_index": 56845612 + }, + { + "Account": "rwchA2b36zu2r6CJfEMzPLQ1cmciKFcw9t", + "Fee": "12", + "Flags": 0, + "LastLedgerSequence": 56845614, + "OfferSequence": 9320755, + "Sequence": 9320759, + "SigningPubKey": "037E9B02A63FFC298C82B66D250932A5DCF89361122925CB42339E3C769245084C", + "TakerGets": { + "currency": "CNY", + "issuer": "rJ1adrpGS3xsnQMb9Cw54tWJVFPuSdZHK", + "value": "28979.36444343412" + }, + "TakerPays": "21952068329", + "TransactionType": "OfferCreate", + "TxnSignature": "3045022100D32888AE7BF2312A661FE5C61C9E402643BB524263CDE7A0172971056F1D7E650220296BD08642719E778D24585AB127BA851E61C450A50CDA0EDF7D1AD8EF933DFE", + "hash": "026E1CAD09FD1B4508839377D2C27A34D99E61173ACEAC021171424938E2B662", + "inLedger": 56845612, + "ledger_index": 56845612 + }, + { + "Account": "rUTEn2jLLv4ESmrUqQmhZfEfDN3LorhgvZ", + "Fee": "12", + "Flags": 0, + "LastLedgerSequence": 56845614, + "OfferSequence": 9280923, + "Sequence": 9280927, + "SigningPubKey": "021C987881039AD42AEC336FB8460F1B1F4DDF0839CAF3EAB1AF69DDF8012C30A3", + "TakerGets": "18779187610", + "TakerPays": { + "currency": "CNY", + "issuer": "rJ1adrpGS3xsnQMb9Cw54tWJVFPuSdZHK", + "value": "28975.72310791101" + }, + "TransactionType": "OfferCreate", + "TxnSignature": "3045022100A9735BBF6E757AC5E07FCE16C55B8901634EAC43F16F21B1493B689B7F0234FD0220614053BEA47C68930BA3CF262E961CBFF4A71E4C16AB1EE30F345359F3C858E2", + "hash": "BB4F12026FD5B635A9CE1C1A3DB2DC23F1011082CA431E911940B63A8F393607", + "inLedger": 56845612, + "ledger_index": 56845612 + }, + { + "Account": "rUTEn2jLLv4ESmrUqQmhZfEfDN3LorhgvZ", + "Fee": "12", + "Flags": 0, + "LastLedgerSequence": 56845614, + "OfferSequence": 9280922, + "Sequence": 9280926, + "SigningPubKey": "021C987881039AD42AEC336FB8460F1B1F4DDF0839CAF3EAB1AF69DDF8012C30A3", + "TakerGets": "8181267030", + "TakerPays": { + "currency": "CNY", + "issuer": "rJ1adrpGS3xsnQMb9Cw54tWJVFPuSdZHK", + "value": "12288.01764167985" + }, + "TransactionType": "OfferCreate", + "TxnSignature": "3045022100DC085D453E9F106E0C23F6EFBFB35AB7476847EF145113CC585EDFF7B622285102200FBDAF12422AA49C71BCA805A94207D2C6C85AAF0DF3ADA2131139273FEE0065", + "hash": "2C7EB89FD617EC0ACC4608141F6C6588DD5C28CD8BD545F2758D778E445B9F39", + "inLedger": 56845612, + "ledger_index": 56845612 + }, + { + "Account": "rUTEn2jLLv4ESmrUqQmhZfEfDN3LorhgvZ", + "Fee": "12", + "Flags": 0, + "LastLedgerSequence": 56845614, + "OfferSequence": 9280921, + "Sequence": 9280925, + "SigningPubKey": "021C987881039AD42AEC336FB8460F1B1F4DDF0839CAF3EAB1AF69DDF8012C30A3", + "TakerGets": "5483852556", + "TakerPays": { + "currency": "CNY", + "issuer": "rJ1adrpGS3xsnQMb9Cw54tWJVFPuSdZHK", + "value": "8011.744069983915" + }, + "TransactionType": "OfferCreate", + "TxnSignature": "30440220235009358985925D4F5A29FBB650585A949C4299B597E59F944C2F9A7F465F04022067A9D52CE7668EDDFD23CD0A549C614BDBC7E3CBCE1DAFCDAA6617985F22AF5A", + "hash": "3D549BE1E3F76B04F353A8D2984FA8E5285F845D62595A881956133578AAE7F6", + "inLedger": 56845612, + "ledger_index": 56845612 + }, + { + "Account": "rUTEn2jLLv4ESmrUqQmhZfEfDN3LorhgvZ", + "Fee": "12", + "Flags": 0, + "LastLedgerSequence": 56845614, + "OfferSequence": 9280920, + "Sequence": 9280924, + "SigningPubKey": "021C987881039AD42AEC336FB8460F1B1F4DDF0839CAF3EAB1AF69DDF8012C30A3", + "TakerGets": "18161813563", + "TakerPays": { + "currency": "CNY", + "issuer": "rJ1adrpGS3xsnQMb9Cw54tWJVFPuSdZHK", + "value": "25789.23040606686" + }, + "TransactionType": "OfferCreate", + "TxnSignature": "30440220556320ADCF85CCA130B3DCB4579ADEBE4C9792580574DD53FF51F5CFD805BACE0220448BE61C8521C42012B23C15394991C29AE9EA2E971FDD9EB197165291FB6F5A", + "hash": "295833386FF9A419EE7CE81758CD16E9D6DE61E3A8618BD052FE1D548BA920E1", + "inLedger": 56845612, + "ledger_index": 56845612 + } + ] + } } ``` + {% /tab %} {% /tabs %} @@ -1436,7 +1451,7 @@ An example of a successful response: The response follows the [standard format][], with a successful result containing the following fields: | `Field` | Type | Description | -|:--------|:-----------------|:------------------------------------------| +| :------ | :--------------- | :---------------------------------------- | | `index` | Unsigned Integer | The value of `start` used in the request. | | `txs` | Array | Array of transaction objects. | @@ -1444,8 +1459,8 @@ The fields included in each transaction object vary slightly depending on the ty ## Possible Errors -* Any of the [universal error types][]. -* `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. -* `noPermission` - The `start` field specified was greater than 10000, but you are not connected to the server as an admin. +- Any of the [universal error types][]. +- `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing. +- `noPermission` - The `start` field specified was greater than 10000, but you are not connected to the server as an admin. {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/http-websocket-apis/public-api-methods/utility-methods/index.md b/docs/references/http-websocket-apis/public-api-methods/utility-methods/index.md index eb5095d255..aefa36bd58 100644 --- a/docs/references/http-websocket-apis/public-api-methods/utility-methods/index.md +++ b/docs/references/http-websocket-apis/public-api-methods/utility-methods/index.md @@ -4,9 +4,9 @@ parent: public-api-methods.html metadata: indexPage: true --- + # Utility Methods Use these methods to perform convenient tasks, such as ping and random number generation. - {% child-pages /%} diff --git a/docs/references/http-websocket-apis/public-api-methods/utility-methods/json.md b/docs/references/http-websocket-apis/public-api-methods/utility-methods/json.md index c8195e1818..954a6f4c63 100644 --- a/docs/references/http-websocket-apis/public-api-methods/utility-methods/json.md +++ b/docs/references/http-websocket-apis/public-api-methods/utility-methods/json.md @@ -2,24 +2,28 @@ html: json.html parent: utility-methods.html seo: - description: Pass JSON through the commandline. + description: Pass JSON through the commandline. labels: - Core Server --- + # json -The `json` method is a proxy to running other commands, and accepts the parameters for the command as a JSON value. It is *exclusive to the Commandline client*, and intended for cases where the commandline syntax for specifying parameters is inadequate or undesirable. +The `json` method is a proxy to running other commands, and accepts the parameters for the command as a JSON value. It is _exclusive to the Commandline client_, and intended for cases where the commandline syntax for specifying parameters is inadequate or undesirable. ## Request Format + An example of the request format: {% tabs %} {% tab label="Commandline" %} + ```sh # Syntax: json method json_stanza rippled -q json ledger_closed '{}' ``` + {% /tab %} {% /tabs %} @@ -31,15 +35,17 @@ An example of a successful response: {% tabs %} {% tab label="WebSocket" %} + ```json { - "result" : { - "ledger_hash" : "8047C3ECF1FA66326C1E57694F6814A1C32867C04D3D68A851367EE2F89BBEF3", - "ledger_index" : 390308, - "status" : "success" - } + "result": { + "ledger_hash": "8047C3ECF1FA66326C1E57694F6814A1C32867C04D3D68A851367EE2F89BBEF3", + "ledger_index": 390308, + "status": "success" + } } ``` + {% /tab %} {% /tabs %} diff --git a/docs/references/http-websocket-apis/public-api-methods/utility-methods/ping.md b/docs/references/http-websocket-apis/public-api-methods/utility-methods/ping.md index b8039ba000..24fde959e5 100644 --- a/docs/references/http-websocket-apis/public-api-methods/utility-methods/ping.md +++ b/docs/references/http-websocket-apis/public-api-methods/utility-methods/ping.md @@ -1,44 +1,51 @@ --- seo: - description: Confirm connectivity with the server. + description: Confirm connectivity with the server. labels: - - Core Server + - Core Server --- + # ping + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/Ping.cpp "Source") The `ping` command returns an acknowledgement, so that clients can test the connection status and latency. ## Request Format + An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": 1, - "command": "ping" + "id": 1, + "command": "ping" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "ping", - "params": [ - {} - ] + "method": "ping", + "params": [{}] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh #Syntax: ping rippled ping ``` + {% /tab %} {% /tabs %} @@ -54,17 +61,20 @@ An example of a successful response: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": 1, - "result": {}, - "status": "success", - "type": "response" + "id": 1, + "result": {}, + "status": "success", + "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -74,6 +84,7 @@ An example of a successful response: } } ``` + {% /tab %} {% /tabs %} @@ -82,6 +93,6 @@ The response follows the [standard format][], with a successful result containin ## Possible Errors -* Any of the [universal error types][]. +- Any of the [universal error types][]. {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/http-websocket-apis/public-api-methods/utility-methods/random.md b/docs/references/http-websocket-apis/public-api-methods/utility-methods/random.md index 353b7833b1..900388f575 100644 --- a/docs/references/http-websocket-apis/public-api-methods/utility-methods/random.md +++ b/docs/references/http-websocket-apis/public-api-methods/utility-methods/random.md @@ -1,9 +1,10 @@ --- seo: - description: Generate a random number. + description: Generate a random number. labels: - - Core Server + - Core Server --- + # random [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/rpc/handlers/Random.cpp "Source") @@ -11,35 +12,40 @@ labels: The `random` command provides a random number to be used as a source of entropy for random number generation by clients. ## Request Format + An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": 1, - "command": "random" + "id": 1, + "command": "random" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "random", - "params": [ - {} - ] + "method": "random", + "params": [{}] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh #Syntax: random rippled random ``` + {% /tab %} {% /tabs %} @@ -53,19 +59,22 @@ An example of a successful response: {% tabs %} {% tab label="WebSocket" %} + ```json { - "id": 1, - "result": { - "random": "8ED765AEBBD6767603C2C9375B2679AEC76E6A8133EF59F04F9FC1AAA70E41AF" - }, - "status": "success", - "type": "response" + "id": 1, + "result": { + "random": "8ED765AEBBD6767603C2C9375B2679AEC76E6A8133EF59F04F9FC1AAA70E41AF" + }, + "status": "success", + "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json 200 OK @@ -76,17 +85,20 @@ An example of a successful response: } } ``` + {% /tab %} {% tab label="Commandline" %} + ```json { - "result" : { - "random" : "DB7C23C7F224CD410912E68A997BE0FD0FA7175A4C74B829BE5A80ED0DBAA0C5", - "status" : "success" - } + "result": { + "random": "DB7C23C7F224CD410912E68A997BE0FD0FA7175A4C74B829BE5A80ED0DBAA0C5", + "status": "success" + } } ``` + {% /tab %} {% /tabs %} @@ -94,12 +106,12 @@ An example of a successful response: The response follows the [standard format][], with a successful result containing the following field: | `Field` | Type | Description | -|:---------|:-------|:--------------------------| +| :------- | :----- | :------------------------ | | `random` | String | Random 256-bit hex value. | ## Possible Errors -* Any of the [universal error types][]. -* `internal` - Some internal error occurred, possibly relating to the random number generator. +- Any of the [universal error types][]. +- `internal` - Some internal error occurred, possibly relating to the random number generator. {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/index.md b/docs/references/index.md index ef06021fe0..c81702b634 100644 --- a/docs/references/index.md +++ b/docs/references/index.md @@ -1,10 +1,11 @@ --- seo: - description: Reference documentation for the XRP Ledger protocol, API methods, and more. + description: Reference documentation for the XRP Ledger protocol, API methods, and more. --- + # References -The XRP Ledger References provides reference documentation for the XRP Ledger protocol, API methods, and more. +The XRP Ledger References provides reference documentation for the XRP Ledger protocol, API methods, and more. ## Client Libraries diff --git a/docs/references/protocol/binary-format.md b/docs/references/protocol/binary-format.md index df5290538f..cb53bb1736 100644 --- a/docs/references/protocol/binary-format.md +++ b/docs/references/protocol/binary-format.md @@ -1,11 +1,13 @@ --- seo: - description: Conversion between JSON and canonical binary format for XRP Ledger transactions and other objects. + description: Conversion between JSON and canonical binary format for XRP Ledger transactions and other objects. labels: - - Blockchain - - Transaction Sending + - Blockchain + - Transaction Sending --- + # Binary Format + [[Source]](https://github.com/XRPLF/rippled/blob/master/include/xrpl/protocol/SField.h "Source") This page describes the XRP Ledger's canonical binary format for transactions and other data. This binary format is necessary to create and verify digital signatures of those transactions' contents, and is also used in other places including in the [peer-to-peer communications between servers](../../concepts/networks-and-servers/peer-protocol.md). The [`rippled` APIs](../http-websocket-apis/index.md) typically use JSON to communicate with client applications. However, JSON is unsuitable as a format for serializing transactions for being digitally signed, because JSON can represent the same data in many different but equivalent ways. @@ -14,9 +16,9 @@ The process of serializing a transaction from JSON or any other representation i 1. Make sure all required fields are provided, including any required but ["auto-fillable" fields](transactions/common-fields.md#auto-fillable-fields). - The [Transaction Formats Reference](transactions/index.md) defines the required and optional fields for XRP Ledger transactions. + The [Transaction Formats Reference](transactions/index.md) defines the required and optional fields for XRP Ledger transactions. - {% admonition type="info" name="Note" %}The `SigningPubKey` must also be provided at this step. When signing, you can [derive this key](../../concepts/accounts/cryptographic-keys.md#key-derivation) from the secret key that is provided for signing.{% /admonition %} + {% admonition type="info" name="Note" %}The `SigningPubKey` must also be provided at this step. When signing, you can [derive this key](../../concepts/accounts/cryptographic-keys.md#key-derivation) from the secret key that is provided for signing.{% /admonition %} 2. Convert each field's data into its ["internal" binary format](#internal-format). @@ -52,8 +54,6 @@ The serialization processes described here are implemented in multiple places an Additionally, many [client libraries](../client-libraries.md) provide serialization support under permissive open-source licenses, so you can import, use, or adapt the code for your needs. - - ## Internal Format Each field has an canonical binary format, or _internal format_ used in the XRP Ledger protocol to represent that field in transactions and ledger data. The binary format is needed for signing, but it is also used in peer-to-peer communications, in ledger storage, and in other places. The binary formats for all fields are defined in the source code of [`SField.h`](https://github.com/XRPLF/rippled/blob/master/include/xrpl/protocol/SField.h). The JSON format for transactions and ledger data is standardized for convenience, but JSON is only used in APIs and client libraries: strictly speaking, only the binary format exists at the level of the XRP Ledger protocol. @@ -70,25 +70,25 @@ You can also use the [server_definitions API method](../http-websocket-apis/publ The following table defines the top-level fields from the definitions file: -| Field | Contents | -|:----------------------|:-----------------------------------------------------| +| Field | Contents | +| :-------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `TYPES` | Map of data types to their ["type code"](#type-codes) for constructing field IDs and sorting fields in canonical order. Codes below 1 should not appear in actual data; codes above 10000 represent special "high-level" object types such as "Transaction" that cannot be serialized inside other objects. See the [Type List](#type-list) for details of how to serialize each type. | -| `LEDGER_ENTRY_TYPES` | Map of [ledger objects](ledger-data/ledger-entry-types/index.md) to their data type. These appear in ledger state data, and in the "affected nodes" section of processed transactions' [metadata](transactions/metadata.md). | -| `FIELDS` | A sorted array of tuples representing all fields that may appear in transactions, ledger objects, or other data. The first member of each tuple is the string name of the field and the second member is an object with that field's properties. (See the "Field properties" table below for definitions of those fields.) | -| `TRANSACTION_RESULTS` | Map of [transaction result codes](transactions/transaction-results/index.md) to their numeric values. Result types not included in ledgers have negative values; `tesSUCCESS` has numeric value 0; [`tec`-class codes](transactions/transaction-results/tec-codes.md) represent failures that are included in ledgers. | -| `TRANSACTION_TYPES` | Map of all [transaction types](transactions/types/index.md) to their numeric values. | +| `LEDGER_ENTRY_TYPES` | Map of [ledger objects](ledger-data/ledger-entry-types/index.md) to their data type. These appear in ledger state data, and in the "affected nodes" section of processed transactions' [metadata](transactions/metadata.md). | +| `FIELDS` | A sorted array of tuples representing all fields that may appear in transactions, ledger objects, or other data. The first member of each tuple is the string name of the field and the second member is an object with that field's properties. (See the "Field properties" table below for definitions of those fields.) | +| `TRANSACTION_RESULTS` | Map of [transaction result codes](transactions/transaction-results/index.md) to their numeric values. Result types not included in ledgers have negative values; `tesSUCCESS` has numeric value 0; [`tec`-class codes](transactions/transaction-results/tec-codes.md) represent failures that are included in ledgers. | +| `TRANSACTION_TYPES` | Map of all [transaction types](transactions/types/index.md) to their numeric values. | For purposes of serializing transactions for signing and submitting, the `FIELDS`, `TYPES`, and `TRANSACTION_TYPES` fields are necessary. The field definition objects in the `FIELDS` array have the following fields: -| Field | Type | Contents | -|:-----------------|:--------|:------------------------------------------------| -| `nth` | Number | The [field code](#field-codes) of this field, for use in constructing its [Field ID](#field-ids) and ordering it with other fields of the same data type. | -| `isVLEncoded` | Boolean | If `true`, this field is [length-prefixed](#length-prefixing). | -| `isSerialized` | Boolean | If `true`, this field should be encoded into serialized binary data. When this field is `false`, the field is typically reconstructed on demand rather than stored. | +| Field | Type | Contents | +| :--------------- | :------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `nth` | Number | The [field code](#field-codes) of this field, for use in constructing its [Field ID](#field-ids) and ordering it with other fields of the same data type. | +| `isVLEncoded` | Boolean | If `true`, this field is [length-prefixed](#length-prefixing). | +| `isSerialized` | Boolean | If `true`, this field should be encoded into serialized binary data. When this field is `false`, the field is typically reconstructed on demand rather than stored. | | `isSigningField` | Boolean | If `true` this field should be serialized when preparing a transaction for signing. If `false`, this field should be omitted from the data to be signed. (It may not be part of transactions at all.) | -| `type` | String | The internal data type of this field. This maps to a key in the `TYPES` map, which gives the [type code](#type-codes) for this field. | +| `type` | String | The internal data type of this field. This maps to a key in the `TYPES` map, which gives the [type code](#type-codes) for this field. | ### Field IDs @@ -97,17 +97,17 @@ The field definition objects in the `FIELDS` array have the following fields: When you combine a field's type code and field code, you get the field's unique identifier, which is prefixed before the field in the final serialized blob. The size of the Field ID is one to three bytes depending on the type code and field codes it combines. See the following table: -| | Type Code < 16 | Type Code >= 16 | -|:-----------------|:------------------------------------------------------------------------------|:--| -| **Field Code < 16** | ![1 byte: high 4 bits define type; low 4 bits define field.](/docs/img/field-id-common-type-common-field.png) | ![2 bytes: low 4 bits of the first byte define field; next byte defines type.](/docs/img/field-id-uncommon-type-common-field.png) | +| | Type Code < 16 | Type Code >= 16 | +| :------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------- | +| **Field Code < 16** | ![1 byte: high 4 bits define type; low 4 bits define field.](/docs/img/field-id-common-type-common-field.png) | ![2 bytes: low 4 bits of the first byte define field; next byte defines type.](/docs/img/field-id-uncommon-type-common-field.png) | | **Field Code >= 16** | ![2 bytes: high 4 bits of the first byte define type; low 4 bits of first byte are 0; next byte defines field](/docs/img/field-id-common-type-uncommon-field.png) | ![3 bytes: first byte is `0x00`, second byte defines type; third byte defines field](/docs/img/field-id-uncommon-type-uncommon-field.png) | When decoding, you can tell how many bytes the field ID is by which bits **of the first byte** are zeroes. This corresponds to the cases in the above table: -| | High 4 bits are nonzero | High 4 bits are zero | -|:-----------------|:------------------------------------------------------------------------------|:--| -| **Low 4 bits are nonzero** | 1 byte: high 4 bits define type; low 4 bits define field. | 2 bytes: low 4 bits of the first byte define field; next byte defines type | -| **Low 4 bits are zero** | 2 bytes: high 4 bits of the first byte define type; low 4 bits of first byte are 0; next byte defines field | 3 bytes: first byte is `0x00`, second byte defines type; third byte defines field | +| | High 4 bits are nonzero | High 4 bits are zero | +| :------------------------- | :---------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------- | +| **Low 4 bits are nonzero** | 1 byte: high 4 bits define type; low 4 bits define field. | 2 bytes: low 4 bits of the first byte define field; next byte defines type | +| **Low 4 bits are zero** | 2 bytes: high 4 bits of the first byte define type; low 4 bits of first byte are 0; next byte defines field | 3 bytes: first byte is `0x00`, second byte defines type; third byte defines field | {% admonition type="warning" name="Caution" %}Even though the Field ID consists of the two elements that are used to sort fields, you should not sort by the serialized Field ID itself, because the byte structure of the Field ID changes the sort order.{% /admonition %} @@ -123,15 +123,15 @@ The length prefix consists of one to three bytes indicating the length of the fi - If the field contains 193 to 12480 bytes of data, the first two bytes indicate the length of the field with the following formula: - ``` - 193 + ((byte1 - 193) * 256) + byte2 - ``` + ``` + 193 + ((byte1 - 193) * 256) + byte2 + ``` - If the field contains 12481 to 918744 bytes of data, the first three bytes indicate the length of the field with the following formula: - ``` - 12481 + ((byte1 - 241) * 65536) + (byte2 * 256) + byte3 - ``` + ``` + 12481 + ((byte1 - 241) * 65536) + (byte2 * 256) + byte3 + ``` - A length-prefixed field cannot contain more than 918744 bytes of data. @@ -141,7 +141,6 @@ When decoding, you can tell from the value of the first length byte whether ther - If the first length byte has a value of 193 to 240, then there are two length bytes. - If the first length byte has a value of 241 to 254, then there are three length bytes. - ## Canonical Field Order All fields in a transaction are sorted in a specific order based first on the field's type (specifically, a numeric "type code" assigned to each type), then on the field itself (a "field code"). (Think of it as sorting by family name, then given name, where the family name is the field's type and the given name is the field itself.) @@ -162,37 +161,35 @@ For example, the `Account` field of a [Payment transaction][] [has sort code 1]( Field codes are reused for fields of different field types, but fields of the same type never have the same field code. When you combine the type code with the field code, you get the field's unique [Field ID](#field-ids). - - ## Type List Transactions and ledger entries may contain fields of any of the following types: -| Type Name | Type Code | Bit Length | [Length-prefixed][]? | Description | -|:-----------------|:----------|:-----------|:---------------------|----------------| -| [AccountID][] | 8 | 160 | Yes | The unique identifier for an [account](../../concepts/accounts/index.md). | -| [Amount][] | 6 | Variable | No | An amount of XRP or tokens. The length of the field is 64 bits for XRP, 384 bits (64+160+160) for fungible tokens, or 264 bits for MPTs. | +| Type Name | Type Code | Bit Length | [Length-prefixed][]? | Description | +| :--------------- | :-------- | :--------- | :------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [AccountID][] | 8 | 160 | Yes | The unique identifier for an [account](../../concepts/accounts/index.md). | +| [Amount][] | 6 | Variable | No | An amount of XRP or tokens. The length of the field is 64 bits for XRP, 384 bits (64+160+160) for fungible tokens, or 264 bits for MPTs. | | [Array][] | 15 | Variable | No | An array containing a variable number of members, which can be different types depending on the field. Two cases of this include [memos](transactions/common-fields.md#memos-field) and lists of signers used in [multi-signing](../../concepts/accounts/multi-signing.md). | -| [Blob][] | 7 | Variable | Yes | Arbitrary binary data. One important such field is `TxnSignature`, the signature that authorizes a transaction. | -| [Currency][] | 26 | 160 | No | A currency code, such as one used in [price oracles](../../concepts/decentralized-storage/price-oracles.md). | -| [Issue][] | 24 | 160 or 320 | No | An asset definition, XRP or a token, with no quantity. | -| [Object][] | 14 | Variable | No | An object containing one or more nested fields. These "inner" objects may have additional formatting restrictions. | -| [PathSet][] | 18 | Variable | No | A set of possible [payment paths](../../concepts/tokens/fungible-tokens/paths.md) for a [cross-currency payment](../../concepts/payment-types/cross-currency-payments.md). | -| [UInt8][] | 16 | 8 | No | An 8-bit unsigned integer. | -| [UInt16][] | 1 | 16 | No | A 16-bit unsigned integer. The `TransactionType` is a special case of this type, with specific strings mapping to integer values. | -| [UInt32][] | 2 | 32 | No | A 32-bit unsigned integer. The `Flags` and `Sequence` fields on all transactions are examples of this type. | -| [UInt64][] | 3 | 64 | No | A 64-bit unsigned integer. This type does not appear in transaction instructions, but several ledger entries use fields of this type. | -| [UInt96][] | 20 | 96 | No | **UNUSED.** A 96-bit unsigned integer. | -| [UInt128][] | 4 | 128 | No | A 128-bit binary value. The only such field is `EmailHash`, which is intended to store the MD-5 hash of an account owner's email for purposes of fetching a [Gravatar](https://www.gravatar.com/). | -| [UInt160][] | 17 | 160 | No | A 160-bit binary value. This may define a currency code or issuer. | -| [UInt192][] | 21 | 192 | No | A 192-bit binary value. This usually represents an MPT issuance. | -| [UInt256][] | 5 | 256 | No | A 256-bit binary value. This usually represents the hash of a transaction, ledger version, or ledger entry. | -| [UInt384][] | 22 | 384 | No | **UNUSED.** A 384-bit binary value. | -| [UInt512][] | 23 | 512 | No | **UNUSED.** A 512-bit binary value. | -| [Int32][] | 10 | 32 | No | **UNUSED.** A 32-bit signed integer. | -| [Int64][] | 11 | 64 | No | **UNUSED.** A 64-bit signed integer. | -| [Vector256][] | 19 | Variable | Yes | A list of 256-bit binary values. This may be a list of ledger entries or other hash values. | -| [XChainBridge][] | 25 | Variable | No | A bridge between two blockchains, identified by the door accounts and issued assets on both chains. | +| [Blob][] | 7 | Variable | Yes | Arbitrary binary data. One important such field is `TxnSignature`, the signature that authorizes a transaction. | +| [Currency][] | 26 | 160 | No | A currency code, such as one used in [price oracles](../../concepts/decentralized-storage/price-oracles.md). | +| [Issue][] | 24 | 160 or 320 | No | An asset definition, XRP or a token, with no quantity. | +| [Object][] | 14 | Variable | No | An object containing one or more nested fields. These "inner" objects may have additional formatting restrictions. | +| [PathSet][] | 18 | Variable | No | A set of possible [payment paths](../../concepts/tokens/fungible-tokens/paths.md) for a [cross-currency payment](../../concepts/payment-types/cross-currency-payments.md). | +| [UInt8][] | 16 | 8 | No | An 8-bit unsigned integer. | +| [UInt16][] | 1 | 16 | No | A 16-bit unsigned integer. The `TransactionType` is a special case of this type, with specific strings mapping to integer values. | +| [UInt32][] | 2 | 32 | No | A 32-bit unsigned integer. The `Flags` and `Sequence` fields on all transactions are examples of this type. | +| [UInt64][] | 3 | 64 | No | A 64-bit unsigned integer. This type does not appear in transaction instructions, but several ledger entries use fields of this type. | +| [UInt96][] | 20 | 96 | No | **UNUSED.** A 96-bit unsigned integer. | +| [UInt128][] | 4 | 128 | No | A 128-bit binary value. The only such field is `EmailHash`, which is intended to store the MD-5 hash of an account owner's email for purposes of fetching a [Gravatar](https://www.gravatar.com/). | +| [UInt160][] | 17 | 160 | No | A 160-bit binary value. This may define a currency code or issuer. | +| [UInt192][] | 21 | 192 | No | A 192-bit binary value. This usually represents an MPT issuance. | +| [UInt256][] | 5 | 256 | No | A 256-bit binary value. This usually represents the hash of a transaction, ledger version, or ledger entry. | +| [UInt384][] | 22 | 384 | No | **UNUSED.** A 384-bit binary value. | +| [UInt512][] | 23 | 512 | No | **UNUSED.** A 512-bit binary value. | +| [Int32][] | 10 | 32 | No | **UNUSED.** A 32-bit signed integer. | +| [Int64][] | 11 | 64 | No | **UNUSED.** A 64-bit signed integer. | +| [Vector256][] | 19 | Variable | Yes | A list of 256-bit binary values. This may be a list of ledger entries or other hash values. | +| [XChainBridge][] | 25 | Variable | No | A bridge between two blockchains, identified by the door accounts and issued assets on both chains. | [Length-prefixed]: #length-prefixing @@ -200,50 +197,48 @@ In the `rippled` source code, some types have an "ST" prefix, which stands for " In addition to all of the above field types, the following types may appear in other contexts, such as [ledger objects](ledger-data/ledger-entry-types/index.md) and [transaction metadata](transactions/metadata.md): -| Type Name | Type Code | [Length-prefixed]? | Description | -|:------------|:----------|:-------------------|:------------------------------| -| Transaction | 10001 | No | A "high-level" type containing an entire [transaction](transactions/index.md). | -| LedgerEntry | 10002 | No | A "high-level" type containing an entire [ledger entry](ledger-data/ledger-entry-types/index.md). | +| Type Name | Type Code | [Length-prefixed]? | Description | +| :---------- | :-------- | :----------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Transaction | 10001 | No | A "high-level" type containing an entire [transaction](transactions/index.md). | +| LedgerEntry | 10002 | No | A "high-level" type containing an entire [ledger entry](ledger-data/ledger-entry-types/index.md). | | Validation | 10003 | No | A "high-level" type used in peer-to-peer communications to represent a validation vote in the [consensus process](../../concepts/consensus-protocol/index.md). | -| Metadata | 10004 | No | A "high-level" type containing [metadata for one transaction](transactions/metadata.md). | - +| Metadata | 10004 | No | A "high-level" type containing [metadata for one transaction](transactions/metadata.md). | ### AccountID Fields + [AccountID]: #accountid-fields Fields of this type contain the 160-bit identifier for an XRP Ledger [account](../../concepts/accounts/index.md). In JSON, these fields are represented as [base58][] XRP Ledger "addresses", with additional checksum data so that typos are unlikely to result in valid addresses. (This encoding, sometimes called "Base58Check", prevents accidentally sending money to the wrong address.) The binary format for these fields does not contain any checksum data nor does it include the `0x00` "type prefix" used in [address base58 encoding](../../concepts/accounts/addresses.md#address-encoding). (However, since the binary format is used mostly for signed transactions, a typo or other error in transcribing a signed transaction would invalidate the signature, preventing it from sending money.) AccountIDs that appear as stand-alone fields (such as `Account` and `Destination`) are [length-prefixed](#length-prefixing) despite being a fixed 160 bits in length. As a result, the length indicator for these fields is always the byte `0x14`. AccountIDs that appear as children of special fields ([Amount `issuer`][Amount] and [PathSet `account`][PathSet]) are _not_ length-prefixed. - ### Amount Fields + [Amount]: #amount-fields The _Amount_ type (also called "STAmount") is a special field type that represents an amount of currency or asset. This type consists of three sub-types, which are XRP, fungible tokens, and multi-purpose tokens (MPTs): - **XRP** - XRP is serialized as a 64-bit unsigned integer (big-endian order), except that the most significant bit is always `0`, the second-most-significant bit is `1` to indicate that it is positive, and the third-most-significant bit is `0` to indicate that it is not an MPT. The remaining 61 bits represent the quantity of XRP. Since the maximum amount of XRP (1017 drops) only requires 57 bits, you can calculate XRP serialized format by taking standard 64-bit unsigned integer and performing a bitwise-OR with `0x4000000000000000`. + XRP is serialized as a 64-bit unsigned integer (big-endian order), except that the most significant bit is always `0`, the second-most-significant bit is `1` to indicate that it is positive, and the third-most-significant bit is `0` to indicate that it is not an MPT. The remaining 61 bits represent the quantity of XRP. Since the maximum amount of XRP (1017 drops) only requires 57 bits, you can calculate XRP serialized format by taking standard 64-bit unsigned integer and performing a bitwise-OR with `0x4000000000000000`. - **Fungible Tokens** - Fungible tokens (also called "IOUs") consist of three segments in order: - - 1. 64 bits indicating the amount in the [token amount format](#token-amount-format). The first bit is `1` to indicate that this is a fungible token. - 2. 160 bits indicating the [currency code](data-types/currency-formats.md#currency-codes). The standard API converts 3-character codes such as "USD" into 160-bit codes using the [standard currency code format](data-types/currency-formats.md#standard-currency-codes), but custom 160-bit codes are also possible. - 3. 160 bits indicating the issuer's Account ID. (See also: [Account Address Encoding](../../concepts/accounts/addresses.md#address-encoding)) + Fungible tokens (also called "IOUs") consist of three segments in order: + 1. 64 bits indicating the amount in the [token amount format](#token-amount-format). The first bit is `1` to indicate that this is a fungible token. + 2. 160 bits indicating the [currency code](data-types/currency-formats.md#currency-codes). The standard API converts 3-character codes such as "USD" into 160-bit codes using the [standard currency code format](data-types/currency-formats.md#standard-currency-codes), but custom 160-bit codes are also possible. + 3. 160 bits indicating the issuer's Account ID. (See also: [Account Address Encoding](../../concepts/accounts/addresses.md#address-encoding)) - **MPTs** - Multi-Purpose Tokens (MPTs) consist of the following segments in order: + Multi-Purpose Tokens (MPTs) consist of the following segments in order: + 1. 8 bits indicating that this is an MPT. The most significant bit is `0` to indicate that it's not a fungible token. The second bit is `1` to indicate that it is positive. The third most significant bit is `1` to indicate that it is an MPT. The remaining 5 bits are reserved and must all be `0`. In other words, the first byte is `0x60`. + 2. 64 bits indicating the quantity of the MPT, as a 64-bit unsigned integer. (However, the maximum amount cannot be larger than 263-1.) + 3. 192 bits for the MPT Issuance ID, which is made of the following parts in order: + 1. 32 bits indicating the `Sequence` number of the transaction that created the MPT issuance. + 2. 160 bits indicating the [AccountID][] of the MPT's issuer. - 1. 8 bits indicating that this is an MPT. The most significant bit is `0` to indicate that it's not a fungible token. The second bit is `1` to indicate that it is positive. The third most significant bit is `1` to indicate that it is an MPT. The remaining 5 bits are reserved and must all be `0`. In other words, the first byte is `0x60`. - 2. 64 bits indicating the quantity of the MPT, as a 64-bit unsigned integer. (However, the maximum amount cannot be larger than 263-1.) - 3. 192 bits for the MPT Issuance ID, which is made of the following parts in order: - 1. 32 bits indicating the `Sequence` number of the transaction that created the MPT issuance. - 2. 160 bits indicating the [AccountID][] of the MPT's issuer. - -You can tell which of the three sub-types an amount is based on the first and third most significant bits: +You can tell which of the three sub-types an amount is based on the first and third most significant bits: - If the first bit is a `1`, it's a fungible token (IOU). - If the first bit and third bit are both `0`, it's XRP. @@ -258,9 +253,10 @@ The following diagram shows the serialization formats for all three amount forma [{% inline-svg file="/docs/img/serialization-amount.svg" /%}](/docs/img/serialization-amount.svg 'The first bit is an amount type bit (0 = XRP or MPT, 1 = fungible token). XRP has a sign bit (always 1 for positive), an MPT indicator bit (0=XRP) and 61 bits of precision. MPTs have a sign bit (always 1 for positive), an MPT indicator bit (1=MPT), 5 reserved bits, 64 bit integer quantity, and a 192 bit MPT Issuance ID which consists of the 32-bit Sequence number followed by 160-bit issuer AccountID. Fungible Token amounts consist start with an amount type bit of 1, a sign bit which can be 1 or 0, an exponent (8 bits), significant digits (54 bits), currency code (160 bits), and issuer (160 bits).') #### Token Amount Format + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/libxrpl/protocol/STAmount.cpp "Source") -[{% inline-svg file="/docs/img/currency-number-format.svg" /%}](/docs/img/currency-number-format.svg "Token Amount Format diagram") +[{% inline-svg file="/docs/img/currency-number-format.svg" /%}](/docs/img/currency-number-format.svg 'Token Amount Format diagram') The XRP Ledger uses 64 bits to serialize the numeric amount of a (fungible) token. (In JSON format, the numeric amount is the `value` field of a currency amount object.) In binary format, the numeric amount consists of a "not XRP" bit, a sign bit, significant digits, and an exponent, in order: @@ -280,18 +276,18 @@ At a protocol level, currency codes in the XRP Ledger are arbitrary 160-bit valu The [`rippled` APIs](../http-websocket-apis/index.md) support a **standard format** for translating three-character ASCII codes to 160-bit hex values as follows: -[{% inline-svg file="/docs/img/currency-code-format.svg" /%}](/docs/img/currency-code-format.svg "Standard Currency Code Format") +[{% inline-svg file="/docs/img/currency-code-format.svg" /%}](/docs/img/currency-code-format.svg 'Standard Currency Code Format') 1. The first 8 bits must be `0x00`. 2. The next 88 bits are reserved, and should be all `0`'s. 3. The next 24 bits represent 3 characters of ASCII. - Ripple recommends using [ISO 4217](https://www.xe.com/iso4217.php) codes, or popular pseudo-ISO 4217 codes such as "BTC". However, any combination of the following characters is permitted: all uppercase and lowercase letters, digits, as well as the symbols `?`, `!`, `@`, `#`, `$`, `%`, `^`, `&`, `*`, `<`, `>`, `(`, `)`, `{`, `}`, `[`, `]`, and |. The currency code `XRP` (all-uppercase) is reserved for XRP and cannot be used by tokens. + Ripple recommends using [ISO 4217](https://www.xe.com/iso4217.php) codes, or popular pseudo-ISO 4217 codes such as "BTC". However, any combination of the following characters is permitted: all uppercase and lowercase letters, digits, as well as the symbols `?`, `!`, `@`, `#`, `$`, `%`, `^`, `&`, `*`, `<`, `>`, `(`, `)`, `{`, `}`, `[`, `]`, and |. The currency code `XRP` (all-uppercase) is reserved for XRP and cannot be used by tokens. 4. The next 40 bits are reserved and should be all `0`'s. The **nonstandard format** is any 160 bits of data as long as the first 8 bits are not `0x00`. - ### Array Fields + [Array]: #array-fields Some transaction fields, such as `SignerEntries` (in [SignerListSet transactions][]) and [`Memos`](transactions/common-fields.md#memos-field), are arrays of objects. (Also called the "STArray" type). @@ -304,24 +300,24 @@ The following example shows the serialization format for an array (the `SignerEn [{% inline-svg file="/docs/img/serialization-array.svg" /%}](/docs/img/serialization-array.svg 'Array field ID, followed by the Field ID and contents of each array element, followed by the "Array end" field ID') - ### Blob Fields + [Blob]: #blob-fields The _Blob_ type (also called "STBlob") is a [length-prefixed](#length-prefixing) field with arbitrary data. Two common fields that use this type are `SigningPubKey` and `TxnSignature`, which contain (respectively) the public key and signature that authorize a transaction to be executed. Blob fields have no further structure to their contents, so they consist of exactly the amount of bytes indicated in the variable-length encoding, after the Field ID and length prefixes. - ### Currency Fields + [Currency]: #currency-fields Some fields specify a currency code, which could be a fungible token, the ticker symbol for an off-ledger asset, or some other identifier for a currency. This field type is currently used only in [Price Oracles](../../concepts/decentralized-storage/price-oracles.md). These fields consist of 160 bits of binary data. If the data matches the ["standard" currency code format](#currency-codes), it may be represented as a three-letter currency code string in JSON. Otherwise, it is represented as hexadecimal. Client libraries _may_ attempt to interpret this as a string of ASCII or UTF-8, but it is not guaranteed to be valid. The {% repo-link path="_code-samples/normalize-currency-codes/" %}Normalize Currency Codes code sample{% /repo-link %} demonstrates best practices for converting most common formats for this data into a string for humans to read. - ### Issue Fields + [Issue]: #issue-fields Some fields specify a _type_ of asset, which could be XRP or a fungible [token](../../concepts/tokens/index.md), without an amount. This field is also called "STIssue". These fields have consist of one or two 160-bit segments in order: @@ -329,8 +325,8 @@ Some fields specify a _type_ of asset, which could be XRP or a fungible [token]( 1. The first 160 bits are the [currency code](#currency-codes) of the asset. For XRP, this is all 0's. 2. If the first 160 bits are all 0's (the asset is XRP), the field ends there. Otherwise, the asset is a token and the next 160 bits are the [AccountID of the token issuer](#accountid-fields). - ### Object Fields + [Object]: #object-fields Some fields, such as `SignerEntry` (in [SignerListSet transactions][]), and `Memo` (in `Memos` arrays) are objects (called the "STObject" type). The serialization of objects is very similar to that of arrays, with one difference: **object members must be placed in canonical order** within the object field, where array fields have an explicit order already. @@ -341,8 +337,8 @@ The following example shows the serialization format for an object (a single `Me [{% inline-svg file="/docs/img/serialization-object.svg" /%}](/docs/img/serialization-object.svg 'Object field ID, followed by the Object ID and contents of each object member in canonical order, followed by the "Object end" field ID') - ### PathSet Fields + [PathSet]: #pathset-fields The `Paths` field of a cross-currency [Payment transaction][] is a "PathSet", represented in JSON as an array of arrays. For more information on what paths are used for, see [Paths](../../concepts/tokens/fungible-tokens/paths.md). @@ -357,7 +353,7 @@ Each path consists of **1 to 8** path steps in order[[Source]](https://github.co The following table describes the possible fields and the bitwise flags to set in the type byte to indicate them: | Type Flag | Field Present | Field Type | Bit Size | Order | -|:----------|:--------------|:------------------|:---------|:------| +| :-------- | :------------ | :---------------- | :------- | :---- | | `0x01` | `account` | [AccountID][] | 160 bits | 1st | | `0x10` | `currency` | [Currency Code][] | 160 bits | 2nd | | `0x20` | `issuer` | [AccountID][] | 160 bits | 3rd | @@ -372,10 +368,10 @@ Each step is followed directly by the next step of the path. As described above, The following example shows the serialization format for a PathSet: -[{% inline-svg file="/docs/img/serialization-pathset.svg" /%}](/docs/img/serialization-pathset.svg "PathSet is several paths each followed by a continue or end byte; each path is several path steps consisting of a type byte and one or more 160-bit fields based on the type byte") - +[{% inline-svg file="/docs/img/serialization-pathset.svg" /%}](/docs/img/serialization-pathset.svg 'PathSet is several paths each followed by a continue or end byte; each path is several path steps consisting of a type byte and one or more 160-bit fields based on the type byte') ### UInt Fields + [UInt8]: #uint-fields [UInt16]: #uint-fields [UInt32]: #uint-fields @@ -396,8 +392,8 @@ The types UInt96, UInt384, and UInt512 are currently defined but not used. The `TransactionType` field is a special case. In JSON, this field is conventionally represented as a string with the name of the transaction type. In binary, this field is a UInt16. The `TRANSACTION_TYPES` object in the [definitions file](#definitions-file) maps these strings to the numeric values used in the binary format. - ### Int Fields + [Int32]: #int-fields [Int64]: #int-fields @@ -410,19 +406,19 @@ In JSON format, Int32 fields can be represented as: Although the protocol supports the Int32 type, no fields currently use it. An Int64 type has also been defined, but is unsupported. - ### Vector256 Fields + [Vector256]: #vector256-fields The _Vector256_ type contains a list of 256-bit values. This field consists of a multiple of 256 bits following the [length prefix](#length-prefixing). Unlike the [Array][] type, which can contain a mix of different nested object types of varying lengths, each member of a Vector256 field is exactly 256 bits with no type prefix. The members of a Vector256 field may be [ledger entry IDs](./ledger-data/common-fields.md#ledger-entry-id), transaction IDs, Amendment IDs, ledger hashes, or other binary data. - ### XChainBridge Fields + [XChainBridge]: #xchainbridge-fields -[{% inline-svg file="/docs/img/serialization-xchainbridge.svg" /%}](/docs/img/serialization-xchainbridge.svg "XChainBridge format diagram") +[{% inline-svg file="/docs/img/serialization-xchainbridge.svg" /%}](/docs/img/serialization-xchainbridge.svg 'XChainBridge format diagram') The `XChainBridge` field, used in transactions and ledger entries related to [cross-chain bridges](../../concepts/xrpl-sidechains/cross-chain-bridges.md), is the only field of the XChainBridge type. It consists of 4 parts which together define a bridge between blockchains: diff --git a/docs/references/protocol/data-types/base58-encodings.md b/docs/references/protocol/data-types/base58-encodings.md index 8e0555946d..2101a7fa9e 100644 --- a/docs/references/protocol/data-types/base58-encodings.md +++ b/docs/references/protocol/data-types/base58-encodings.md @@ -2,8 +2,9 @@ html: base58-encodings.html parent: basic-data-types.html seo: - description: Formats for representing cryptographic keys and related data in base58 format. + description: Formats for representing cryptographic keys and related data in base58 format. --- + # base58 Encodings XRP Ledger APIs often use a "base58" encoding with a checksum (sometimes called "Base58Check") to represent [account addresses](../../../concepts/accounts/addresses.md) and other types of values related to cryptographic keys. This encoding is the same as [the one used for Bitcoin addresses](https://en.bitcoin.it/wiki/Base58Check_encoding), except that the XRP Ledger uses the following dictionary: `rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz`. @@ -13,11 +14,11 @@ The XRP Ledger prefixes different types of values with a specific 8-bit number b The following table lists all the encodings the XRP Ledger uses: | Data Type | Starts With | Type Prefix | Content size¹ | Maximum characters | -|:-----------------------------------------|:------------|:------------|:--------------|:--| -| [Account][] address | r | `0x00` | 20 bytes | 35 | -| Account public key | a | `0x23` | 33 bytes | 53 | -| Seed value (for secret keys) | s | `0x21` | 16 bytes | 29 | -| Validation public key or node public key | n | `0x1C` | 33 bytes | 53 | +| :--------------------------------------- | :---------- | :---------- | :------------ | :----------------- | +| [Account][] address | r | `0x00` | 20 bytes | 35 | +| Account public key | a | `0x23` | 33 bytes | 53 | +| Seed value (for secret keys) | s | `0x21` | 16 bytes | 29 | +| Validation public key or node public key | n | `0x1C` | 33 bytes | 53 | ¹ Content size excludes the 1-byte type prefix. diff --git a/docs/references/protocol/data-types/basic-data-types.md b/docs/references/protocol/data-types/basic-data-types.md index 9cc7333787..7956c80d7a 100644 --- a/docs/references/protocol/data-types/basic-data-types.md +++ b/docs/references/protocol/data-types/basic-data-types.md @@ -2,8 +2,9 @@ html: basic-data-types.html parent: protocol-reference.html seo: - description: Format and meaning of fundamental data types like addresses, ledger index, and currency codes. + description: Format and meaning of fundamental data types like addresses, ledger index, and currency codes. --- + # Basic Data Types Different types of objects are uniquely identified in different ways: @@ -15,19 +16,19 @@ Different types of objects are uniquely identified in different ways: Each closed [Ledger](../ledger-data/index.md) has a [Ledger Index][] and a [Hash][] value. When [Specifying Ledgers][] you can use either one. ## Addresses + [Address]: #addresses {% partial file="/docs/_snippets/data_types/address.md" /%} - - ## Hashes + [Hash]: #hashes {% partial file="/docs/_snippets/data_types/hash.md" /%} - ### Hash Prefixes + [[Source]](https://github.com/XRPLF/rippled/blob/master/include/xrpl/protocol/HashPrefix.h "Source") In many cases, the XRP Ledger prefixes an object's binary data with a 4-byte code before calculating its hash, so that objects of different types have different hashes even if their binary formats are the same. The existing 4-byte codes are structured as three alphabetic characters, encoded as ASCII, followed by a zero byte. @@ -35,69 +36,65 @@ In many cases, the XRP Ledger prefixes an object's binary data with a 4-byte cod Some types of hash appear in API requests and responses. Others are only calculated as the first step of signing a certain type of data, or calculating a higher-level hash. The following table shows all 4-byte hash prefixes the XRP Ledger uses: | Object Type | API Fields | Hash Prefix (Hex) | Hash Prefix (Text) | -|:--------------------------------------|:-------------------------------------|:------------------|:--| -| Consensus proposal | N/A | `0x50525000` | `PRP\0` | -| Ledger Version | `ledger_hash` | `0x4C575200` | `LWR\0` | -| Ledger state data | `account_state` in [ledger header][] | `0x4D4C4E00` | `MLN\0` | -| Ledger data inner node | N/A | `0x4D494E00` | `MIN\0` | -| Ledger data inner node ([SHAMapv2][]) | N/A | `0x494E5200` | `INR\0` | -| Payment Channel Claim | N/A | `0x434C4D00` | `CLM\0` | -| Signed Transaction | `hash` of transactions | `0x54584E00` | `TXN\0` | -| Transaction with metadata | N/A | `0x534E4400` | `SND\0` | -| Unsigned Transaction (Single-signing) | N/A | `0x53545800` | `STX\0` | -| Unsigned Transaction (Multi-signing) | N/A | `0x534D5400` | `SMT\0` | -| Validation vote | N/A | `0x56414C00` | `VAL\0` | -| Validator manifest | N/A | `0x4D414E00` | `MAN\0` | +| :------------------------------------ | :----------------------------------- | :---------------- | :----------------- | +| Consensus proposal | N/A | `0x50525000` | `PRP\0` | +| Ledger Version | `ledger_hash` | `0x4C575200` | `LWR\0` | +| Ledger state data | `account_state` in [ledger header][] | `0x4D4C4E00` | `MLN\0` | +| Ledger data inner node | N/A | `0x4D494E00` | `MIN\0` | +| Ledger data inner node ([SHAMapv2][]) | N/A | `0x494E5200` | `INR\0` | +| Payment Channel Claim | N/A | `0x434C4D00` | `CLM\0` | +| Signed Transaction | `hash` of transactions | `0x54584E00` | `TXN\0` | +| Transaction with metadata | N/A | `0x534E4400` | `SND\0` | +| Unsigned Transaction (Single-signing) | N/A | `0x53545800` | `STX\0` | +| Unsigned Transaction (Multi-signing) | N/A | `0x534D5400` | `SMT\0` | +| Validation vote | N/A | `0x56414C00` | `VAL\0` | +| Validator manifest | N/A | `0x4D414E00` | `MAN\0` | [ledger header]: ../ledger-data/ledger-header.md [SHAMapv2]: /resources/known-amendments.md#shamapv2 [Ledger objects IDs](../ledger-data/common-fields.md) are calculated in a similar way, but they use a 2-byte prefix called a "space key" instead of a prefix in the form described here. - ## Account Sequence + [Sequence Number]: #account-sequence {% partial file="/docs/_snippets/data_types/account_sequence.md" /%} - - ## Ledger Index + [Ledger Index]: #ledger-index {% partial file="/docs/_snippets/data_types/ledger_index.md" /%} - - ### Specifying Ledgers Many API methods require you to specify an instance of the ledger, with the data retrieved being considered up-to-date as of that particular version of the shared ledger. The commands that accept a ledger version all work the same way. There are three ways you can specify which ledger you want to use: 1. Specify a ledger by its [Ledger Index][] in the `ledger_index` parameter. Each closed ledger has a ledger index that is 1 higher than the previous ledger. (The very first ledger had ledger index 1.) - ``` - "ledger_index": 61546724 - ``` + ``` + "ledger_index": 61546724 + ``` 2. Specify a ledger by its [Hash][] value in the `ledger_hash` parameter. - ``` - "ledger_hash": "8BB204CE37CFA7A021A16B5F6143400831C4D1779E6FE538D9AC561ABBF4A929" - ``` + ``` + "ledger_hash": "8BB204CE37CFA7A021A16B5F6143400831C4D1779E6FE538D9AC561ABBF4A929" + ``` 3. Specify a ledger by one of the following shortcuts, in the `ledger_index` parameter: + - `validated` for the most recent ledger that has been [validated by consensus](../../../concepts/consensus-protocol/consensus-structure.md#validation) - * `validated` for the most recent ledger that has been [validated by consensus](../../../concepts/consensus-protocol/consensus-structure.md#validation) + ``` + "ledger_index": "validated" + ``` - ``` - "ledger_index": "validated" - ``` + - `closed` for the most recent ledger that has been closed for modifications and proposed for validation - * `closed` for the most recent ledger that has been closed for modifications and proposed for validation + - `current` for the server's current working version of the ledger. - * `current` for the server's current working version of the ledger. - -There is also a deprecated `ledger` parameter which accepts any of the above three formats. *Do not* use this parameter; it may be removed without further notice. +There is also a deprecated `ledger` parameter which accepts any of the above three formats. _Do not_ use this parameter; it may be removed without further notice. If you do not specify a ledger, the server decides which ledger to use to serve the request. By default, peer-to-peer servers chooses the `current` (in-progress) ledger. Clio servers use the most recent validated ledger instead. Do not provide more than one field specifying ledgers. @@ -105,7 +102,6 @@ If you do not specify a ledger, the server decides which ledger to use to serve Clio servers only record validated ledger data. If you make a request to a Clio server for the `current` or `closed` ledger, the server forwards the request to a P2P Mode server. If you request a ledger index or hash that is not validated, Clio responds with a `lgrNotFound` error. - ## Specifying Currency Amounts There are three kinds of currencies in the XRP Ledger: XRP, tokens, and MPTs. These three types of currencies are specified in different formats, with different precision and rounding behavior. @@ -116,33 +112,32 @@ XRP is specified as a string containing an integer number of "drops" of XRP, whe - **XRP** - To specify an `Amount` field with a value of 13.1 XRP: - ``` - "Amount": "13100000" - ``` + ``` + "Amount": "13100000" + ``` - **Token** - To specify an `Amount` field with a value of 13.1 FOO issued by or to `rf1B...`: - ``` - "Amount": { - "value": "13.1", - "currency": "FOO", - "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn" - } - ``` - -- **MPT** - Use `Amount` to specify the value of an MPT. Assuming an `AssetScale` of *1*, you would specify a value of 13.1 units of an MPT as follows: - - ``` + ``` "Amount": { - "mpt_issuance_id": - "0000012FFD9EE5DA93AC614B4DB94D7E0FCE415CA51BED47", - "value": "131" + "value": "13.1", + "currency": "FOO", + "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn" } - ``` + ``` + +- **MPT** - Use `Amount` to specify the value of an MPT. Assuming an `AssetScale` of _1_, you would specify a value of 13.1 units of an MPT as follows: + + ``` + "Amount": { + "mpt_issuance_id": + "0000012FFD9EE5DA93AC614B4DB94D7E0FCE415CA51BED47", + "value": "131" + } + ``` For more information, see [Currency Formats](currency-formats.md). - ## Specifying Time The `rippled` server and its APIs represent time as an unsigned integer. This number measures the number of seconds since the "Ripple Epoch" of January 1, 2000 (00:00 UTC). This is like the way the [Unix epoch](http://en.wikipedia.org/wiki/Unix_time) works, except the Ripple Epoch is 946684800 seconds after the Unix Epoch. diff --git a/docs/references/protocol/data-types/currency-formats.md b/docs/references/protocol/data-types/currency-formats.md index 2d1e99b0e1..53352f81a2 100644 --- a/docs/references/protocol/data-types/currency-formats.md +++ b/docs/references/protocol/data-types/currency-formats.md @@ -2,12 +2,13 @@ html: currency-formats.html parent: basic-data-types.html seo: - description: Precision and range for currency numbers, plus formats of custom currency codes. + description: Precision and range for currency numbers, plus formats of custom currency codes. label: - XRP - Tokens - MPTs --- + # Currency Formats The XRP Ledger has three kinds of digital asset: XRP, [tokens](../../../concepts/tokens/index.md), and [Multi-purpose Tokens (MPTs)](../../../concepts/tokens/fungible-tokens/multi-purpose-tokens.md). All three types have high precision, although their formats are different. @@ -18,18 +19,18 @@ The XRP Ledger has three kinds of digital asset: XRP, [tokens](../../../concepts The following table summarizes some of the differences between XRP, tokens, and MPTs in the XRP Ledger: -| XRP | Tokens | MPTs | -|:---------------------------------------------------------|:------------------|:---------------------| -| Has no issuer. | Always issued by an XRP Ledger account. | Always issued by an XRP Ledger account. | -| Specified as a string. | Specified as an object. | Specified as an object. | -| Tracked in [accounts](../ledger-data/ledger-entry-types/accountroot.md). | Tracked in [trust lines](../ledger-data/ledger-entry-types/ripplestate.md). | Tracked in holder's account. | -| Can never be created; can only be destroyed. | Can be issued or redeemed freely. | Can be issued or redeemed freely. | -| Minimum value: `0`. (Cannot be negative.) | Minimum value: `-9999999999999999e80`. Minimum nonzero absolute value: `1000000000000000e-96`. | Minimum value: `0`. (Cannot be negative.) | -| Maximum value `100000000000` (1011) XRP. That's `100000000000000000` (1017) "drops". | Maximum value `9999999999999999e80`. | Maximum value `0x7FFFFFFFFFFFFFFF`. | -| Precise to the nearest "drop" (0.000001 XRP) | 15 decimal digits of precision. | -| Can't be [frozen](../../../concepts/tokens/fungible-tokens/freezes.md). | The issuer can [freeze](../../../concepts/tokens/fungible-tokens/freezes.md) balances. | The issuer can lock balances individually and globally. | -| No transfer fees; XRP-to-XRP payments are always direct. | Can take indirect [paths](../../../concepts/tokens/fungible-tokens/paths.md) with each issuer charging a percentage [transfer fee](../../../concepts/tokens/fungible-tokens/transfer-fees.md). | Can charge a transfer fee for secondary sales of the token. | -| Can be used in [Payment Channels](../../../concepts/payment-types/payment-channels.md) and [Escrow](../../../concepts/payment-types/escrow.md). | Not compatible with Payment Channels or Escrow. | Not compatible with Payment Channels or Escrow. | +| XRP | Tokens | MPTs | +| :---------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------- | +| Has no issuer. | Always issued by an XRP Ledger account. | Always issued by an XRP Ledger account. | +| Specified as a string. | Specified as an object. | Specified as an object. | +| Tracked in [accounts](../ledger-data/ledger-entry-types/accountroot.md). | Tracked in [trust lines](../ledger-data/ledger-entry-types/ripplestate.md). | Tracked in holder's account. | +| Can never be created; can only be destroyed. | Can be issued or redeemed freely. | Can be issued or redeemed freely. | +| Minimum value: `0`. (Cannot be negative.) | Minimum value: `-9999999999999999e80`. Minimum nonzero absolute value: `1000000000000000e-96`. | Minimum value: `0`. (Cannot be negative.) | +| Maximum value `100000000000` (1011) XRP. That's `100000000000000000` (1017) "drops". | Maximum value `9999999999999999e80`. | Maximum value `0x7FFFFFFFFFFFFFFF`. | +| Precise to the nearest "drop" (0.000001 XRP) | 15 decimal digits of precision. | +| Can't be [frozen](../../../concepts/tokens/fungible-tokens/freezes.md). | The issuer can [freeze](../../../concepts/tokens/fungible-tokens/freezes.md) balances. | The issuer can lock balances individually and globally. | +| No transfer fees; XRP-to-XRP payments are always direct. | Can take indirect [paths](../../../concepts/tokens/fungible-tokens/paths.md) with each issuer charging a percentage [transfer fee](../../../concepts/tokens/fungible-tokens/transfer-fees.md). | Can charge a transfer fee for secondary sales of the token. | +| Can be used in [Payment Channels](../../../concepts/payment-types/payment-channels.md) and [Escrow](../../../concepts/payment-types/escrow.md). | Not compatible with Payment Channels or Escrow. | Not compatible with Payment Channels or Escrow. | See [What is XRP?](../../../introduction/what-is-xrp.md), [Tokens](../../../concepts/tokens/index.md), and [Multi-purpose Tokens](../../../concepts/tokens/fungible-tokens/multi-purpose-tokens.md). @@ -57,11 +58,11 @@ XRP amounts cannot be negative. To specify an amount of a [(fungible) token](../../../concepts/tokens/index.md), use an `Amount` object. Tokens use the `currency`, `value`, and `issuer` fields. -| `Field` | Type | Description | -|:-----------|:---------------------------|:-----------------------------------| -| `currency` | String - [Currency Code][] | Arbitrary currency code for the token. Cannot be `XRP`. | +| `Field` | Type | Description | +| :--------- | :------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `currency` | String - [Currency Code][] | Arbitrary currency code for the token. Cannot be `XRP`. | | `value` | [String Number][] | Quoted decimal representation of the amount of the token. This can include scientific notation, such as `1.23e11` meaning 123,000,000,000. Both `e` and `E` may be used. This can be negative when displaying balances, but negative values are disallowed in other contexts such as specifying how much to send. | -| `issuer` | String | Generally, the [account](../../../concepts/accounts/index.md) that issues this token. In special cases, this can refer to the account that holds the token instead (for example, in a [Clawback](../transactions/types/clawback.md) transaction). | +| `issuer` | String | Generally, the [account](../../../concepts/accounts/index.md) that issues this token. In special cases, this can refer to the account that holds the token instead (for example, in a [Clawback](../transactions/types/clawback.md) transaction). | [String Number]: #string-numbers @@ -71,31 +72,30 @@ For example, to represent $153.75 US dollars issued by account `r9cZA1mLK5R5Am25 ```json { - "currency": "USD", - "value": "153.75", - "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59" + "currency": "USD", + "value": "153.75", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59" } ``` + ### MPT Amounts -Specify the amount of MPTs using the `value` field. +Specify the amount of MPTs using the `value` field. -| `Field` | Type | Description | -|:-----------|:---------------------------|:-----------------------------------| -| `mpt_issuance_id` | String | Arbitrary unique identifier for a Multi-purpose Token. | -| `value` | [String Number][] | A string representing a positive integer value. Valid values for this field are between 0x0 and 0x7FFFFFFFFFFFFFFF. Use `AssetScale` to enable values as fractions of the MPT value. See [MPT Precision](#mpt-precision). | +| `Field` | Type | Description | +| :---------------- | :---------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `mpt_issuance_id` | String | Arbitrary unique identifier for a Multi-purpose Token. | +| `value` | [String Number][] | A string representing a positive integer value. Valid values for this field are between 0x0 and 0x7FFFFFFFFFFFFFFF. Use `AssetScale` to enable values as fractions of the MPT value. See [MPT Precision](#mpt-precision). | For example, to specify 1 million units of an MPT you would specify: ```json { - "mpt_issuance_id": - "0000012FFD9EE5DA93AC614B4DB94D7E0FCE415CA51BED47", - "value": "1000000" + "mpt_issuance_id": "0000012FFD9EE5DA93AC614B4DB94D7E0FCE415CA51BED47", + "value": "1000000" } ``` - ### Specifying Without Amounts In some cases, you need to define an asset (which could be XRP or a token) without a specific amount, such as when defining an order book in the [decentralized exchange](../../../concepts/tokens/decentralized-exchange/index.md). @@ -156,12 +156,11 @@ For example, to express a value of 13.1 MPT, the MPT would require that the `Ass ``` ## Currency Codes + [Currency Code]: #currency-codes {% partial file="/docs/_snippets/data_types/currency_code.md" /%} - - ### Standard Currency Codes The standard format for currency codes is a three-character string such as `USD`. This is intended for use with [ISO 4217 Currency Codes](https://www.xe.com/iso4217.php). The following rules apply: @@ -181,5 +180,3 @@ You can also use a 160-bit (40-character) hexadecimal string, such as `444F4C4C4 - Not all hexadecimal strings have a direct, human-readable format. See: [Normalize Currency Codes](https://github.com/XRPLF/xrpl-dev-portal/tree/master/_code-samples/normalize-currency-codes). **Deprecated:** Some previous versions of [ripple-lib](https://github.com/XRPLF/xrpl.js) supported an "interest-bearing" or "demurraging" currency code type, such as `015841551A748AD2C1F76FF6ECB0CCCD00000000`. These codes have the first 8 bits `0x01`. Demurraging / interest-bearing currencies are no longer supported, but you may find them in ledger data. For more information, see [Demurrage](../../../concepts/tokens/fungible-tokens/demurrage.md). - - diff --git a/docs/references/protocol/data-types/nftoken.md b/docs/references/protocol/data-types/nftoken.md index 1441a8b82a..7dec578ef4 100644 --- a/docs/references/protocol/data-types/nftoken.md +++ b/docs/references/protocol/data-types/nftoken.md @@ -2,10 +2,11 @@ html: nftoken.html parent: basic-data-types.html seo: - description: Introduction to XRPL NFTs. + description: Introduction to XRPL NFTs. labels: - Non-fungible Tokens, NFTs --- + # NFToken The `NFToken` object represents a single non-fungible token (NFT). It is not stored on its own, but is contained in a [NFTokenPage object][] alongside other `NFToken` objects. @@ -16,15 +17,15 @@ The `NFToken` object represents a single non-fungible token (NFT). It is not sto ```json { - "NFTokenID": "000B013A95F14B0044F78A264E41713C64B5F89242540EE208C3098E00000D65", - "URI": "ipfs://bafybeigdyrzt5sfp7udm7hu76uh7y26nf4dfuylqabf3oclgtqy55fbzdi" + "NFTokenID": "000B013A95F14B0044F78A264E41713C64B5F89242540EE208C3098E00000D65", + "URI": "ipfs://bafybeigdyrzt5sfp7udm7hu76uh7y26nf4dfuylqabf3oclgtqy55fbzdi" } ``` Unlike full-fledged [ledger entries](../ledger-data/ledger-entry-types/index.md), `NFToken` has no field to identify the object type or current owner of the object. `NFToken` objects are grouped into pages that implicitly define the object type and identify the owner. - ## NFTokenID + `NFTokenID`, optional, string, UInt256 @@ -41,7 +42,7 @@ D) A 32-bit issuer-specified [`NFTokenTaxon`](https://www.merriam-webster.com/di E) An (automatically generated) monotonically increasing 32-bit sequence number. -![Token ID Breakdown](/docs/img/nftoken1.png "Token ID Breakdown") +![Token ID Breakdown](/docs/img/nftoken1.png 'Token ID Breakdown') The 16-bit flags, transfer fee fields, the 32-bit `NFTokenTaxon`, and the sequence number fields are stored in big-endian format. @@ -49,14 +50,13 @@ The 16-bit flags, transfer fee fields, the 32-bit `NFTokenTaxon`, and the sequen Flags are properties or other options associated with the `NFToken` object. - -| Flag Name | Flag Value | Description | -|:------------------|:-----------|:--------------------------------------------| -| `lsfBurnable` | `0x0001` | If enabled, the issuer (or an entity authorized by the issuer) can destroy this `NFToken`. The object's owner can always do so. | -| `lsfOnlyXRP` | `0x0002` | If enabled, this `NFToken` can only be offered or sold for XRP. | +| Flag Name | Flag Value | Description | +| :---------------- | :--------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `lsfBurnable` | `0x0001` | If enabled, the issuer (or an entity authorized by the issuer) can destroy this `NFToken`. The object's owner can always do so. | +| `lsfOnlyXRP` | `0x0002` | If enabled, this `NFToken` can only be offered or sold for XRP. | | `lsfTrustLine` | `0x0004` | **DEPRECATED** If enabled, automatically create [trust lines](../../../concepts/tokens/fungible-tokens/index.md) to hold transfer fees. Otherwise, buying or selling this `NFToken` for a fungible token amount fails if the issuer does not have a trust line for that token. The [fixRemoveNFTokenAutoTrustLine amendment][] makes it invalid to enable this flag. | -| `lsfTransferable` | `0x0008` | If enabled, this `NFToken` can be transferred from one holder to another. Otherwise, it can only be transferred to or from the issuer. | -| `lsfReservedFlag` | `0x8000` | This flag is reserved for future use. Attempts to set this flag fail. | +| `lsfTransferable` | `0x0008` | If enabled, this `NFToken` can be transferred from one holder to another. Otherwise, it can only be transferred to or from the issuer. | +| `lsfReservedFlag` | `0x8000` | This flag is reserved for future use. Attempts to set this flag fail. | `NFToken` flags are immutable: they can only be set during the [NFTokenMint transaction][] and cannot be changed later. @@ -64,9 +64,10 @@ Flags are properties or other options associated with the `NFToken` object. The example sets three flags: `lsfBurnable` (`0x0001`), `lsfOnlyXRP` (`0x0002`), `lsfTransferable` (`0x0008`). 1+2+8 = 11, or `0x000B` in big endian format. -![Flags](/docs/img/nftokena.png "Flags") +![Flags](/docs/img/nftokena.png 'Flags') ### TransferFee + The `TransferFee` value specifies the percentage fee, in units of 1/100,000, charged by the issuer for secondary sales of the token. Valid values for this field are between 0 and 50,000, inclusive. A value of 1 is equivalent to 0.001% or 1/10 of a basis point (bps), allowing transfer rates between 0% and 50%. @@ -75,15 +76,16 @@ The `TransferFee` value specifies the percentage fee, in units of 1/100,000, cha This value sets the transfer fee to 314, or 0.314%. -![Transfer Fee](/docs/img/nftokenb.png "Transfer Fee") +![Transfer Fee](/docs/img/nftokenb.png 'Transfer Fee') ### Issuer Identification The third section of the `NFTokenID` is a big endian representation of the issuer’s public address. -![Issuer Address](/docs/img/nftokenc.png "Issuer Address") +![Issuer Address](/docs/img/nftokenc.png 'Issuer Address') ### NFTokenTaxon + The fourth section is a `NFTokenTaxon` created by the issuer. @@ -98,7 +100,7 @@ Notice that the scrambled version of the `NFTokenTaxon` is `0xBC8B858E`, the scr The fifth section is a sequence number that increases with each `NFToken` the issuer creates. -![Sequence Number](/docs/img/nftokene.png "Sequence Number") +![Sequence Number](/docs/img/nftokene.png 'Sequence Number') The [NFTokenMint transaction][] sets this part of the `NFTokenID` automatically based on the `MintedNFTokens` field of the `Issuer` account. If the issuer's [AccountRoot object][] does not have a `MintedNFTokens` field, the field is assumed to have the value 0; the value of the field is then incremented by exactly 1. diff --git a/docs/references/protocol/data-types/permission-values.md b/docs/references/protocol/data-types/permission-values.md index 2838d0e7c6..e5bf644000 100644 --- a/docs/references/protocol/data-types/permission-values.md +++ b/docs/references/protocol/data-types/permission-values.md @@ -1,10 +1,11 @@ --- seo: - description: Format for permissions that can be granted to other accounts. + description: Format for permissions that can be granted to other accounts. label: - - Permissions + - Permissions status: not_enabled --- + # Permission Values [Permission delegation](/docs/concepts/accounts/permission-delegation.md) defines permissions that can be granted to other accounts. These permissions fall into the following categories: @@ -42,44 +43,44 @@ Some transaction types can't be delegated. If you attempt to grant these permiss The following permissions cannot be delegated: | Transaction Type | Permission Value | -|:--------------------|:-----------------| -| [AccountSet][] | `4` | -| [SetRegularKey][] | `6` | -| [SignerListSet][] | `13` | -| [AccountDelete][] | `22` | -| [LedgerStateFix][] | `54` | -| [DelegateSet][] | `65` | -| [EnableAmendment][] | `101` | -| [SetFee][] | `102` | -| [UNLModify][] | `103` | +| :------------------ | :--------------- | +| [AccountSet][] | `4` | +| [SetRegularKey][] | `6` | +| [SignerListSet][] | `13` | +| [AccountDelete][] | `22` | +| [LedgerStateFix][] | `54` | +| [DelegateSet][] | `65` | +| [EnableAmendment][] | `101` | +| [SetFee][] | `102` | +| [UNLModify][] | `103` | {% admonition type="warning" name="Known Issue" %} With only the PermissionDelegation amendment, it's possible to assign permissions for transaction types that are reserved, unassigned, or part of amendments that are not currently enabled; it's also possible to assign PermissionValue `0` for full permissions. However, these values do not actually grant any permissions. This is a bug, and a future amendment will prevent assigning values outside of currently-enabled, delegatable transaction types or known granular permissions. {% /admonition %} ## Granular Permissions + [[Source]](https://github.com/XRPLF/rippled/blob/master/include/xrpl/protocol/detail/permissions.macro "Source") Granular Permissions have numeric types of 65537 and up, corresponding to specific names of permissions. Values that are not defined are not allowed. Each granular permission is a subset of a single transaction type's functionality. -| Numeric Value | Name | Transaction Type | Description | -|:--------------|:-------------------------|:-----------------------|:------------| -| `65537` | `TrustlineAuthorize` | [TrustSet][] | Can [authorize individual trust lines](/docs/concepts/tokens/fungible-tokens/authorized-trust-lines). | -| `65538` | `TrustlineFreeze` | [TrustSet][] | Can [freeze individual trust lines](/docs/concepts/tokens/fungible-tokens/freezes). | -| `65539` | `TrustlineUnfreeze` | [TrustSet][] | Can [unfreeze individual trust lines](/docs/concepts/tokens/fungible-tokens/freezes). | -| `65540` | `AccountDomainSet` | [AccountSet][] | Can set the `Domain` field of the account. | -| `65541` | `AccountEmailHashSet` | [AccountSet][] | Can set the `EmailHash` field of the account. | -| `65542` | `AccountMessageKeySet` | [AccountSet][] | Can set the `MessageKey` field of the account. | -| `65543` | `AccountTransferRateSet` | [AccountSet][] | Can set the [transfer fee of fungible tokens issued by the account](/docs/concepts/tokens/transfer-fees). | +| Numeric Value | Name | Transaction Type | Description | +| :------------ | :----------------------- | :--------------------- | :----------------------------------------------------------------------------------------------------------------------- | +| `65537` | `TrustlineAuthorize` | [TrustSet][] | Can [authorize individual trust lines](/docs/concepts/tokens/fungible-tokens/authorized-trust-lines). | +| `65538` | `TrustlineFreeze` | [TrustSet][] | Can [freeze individual trust lines](/docs/concepts/tokens/fungible-tokens/freezes). | +| `65539` | `TrustlineUnfreeze` | [TrustSet][] | Can [unfreeze individual trust lines](/docs/concepts/tokens/fungible-tokens/freezes). | +| `65540` | `AccountDomainSet` | [AccountSet][] | Can set the `Domain` field of the account. | +| `65541` | `AccountEmailHashSet` | [AccountSet][] | Can set the `EmailHash` field of the account. | +| `65542` | `AccountMessageKeySet` | [AccountSet][] | Can set the `MessageKey` field of the account. | +| `65543` | `AccountTransferRateSet` | [AccountSet][] | Can set the [transfer fee of fungible tokens issued by the account](/docs/concepts/tokens/transfer-fees). | | `65544` | `AccountTickSizeSet` | [AccountSet][] | Can set the [tick size of fungible tokens issued by the account](/docs/concepts/tokens/decentralized-exchange/ticksize). | -| `65545` | `PaymentMint` | [Payment][] | Can send payments that mint new fungible tokens or MPTs. | -| `65546` | `PaymentBurn` | [Payment][] | Can send payments that burn fungible tokens or MPTs. | -| `65547` | `MPTokenIssuanceLock` | [MPTokenIssuanceSet][] | Can lock the balances of a particular MPT issued by the account. {% amendment-disclaimer name="MPTokensV1" /%} | -| `65548` | `MPTokenIssuanceUnlock` | [MPTokenIssuanceSet][] | Can unlock the balances of a particular MPT issued by the account. {% amendment-disclaimer name="MPTokensV1" /%} | +| `65545` | `PaymentMint` | [Payment][] | Can send payments that mint new fungible tokens or MPTs. | +| `65546` | `PaymentBurn` | [Payment][] | Can send payments that burn fungible tokens or MPTs. | +| `65547` | `MPTokenIssuanceLock` | [MPTokenIssuanceSet][] | Can lock the balances of a particular MPT issued by the account. {% amendment-disclaimer name="MPTokensV1" /%} | +| `65548` | `MPTokenIssuanceUnlock` | [MPTokenIssuanceSet][] | Can unlock the balances of a particular MPT issued by the account. {% amendment-disclaimer name="MPTokensV1" /%} | ### Limitations to Granular Permissions The set of granular permissions is hard-coded. No custom configurations are allowed. For example, you cannot add permissions based on specific currencies. Adding a new granular permission requires an amendment. - {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/protocol/index.md b/docs/references/protocol/index.md index 6bb8c84a86..6f5fc3714d 100644 --- a/docs/references/protocol/index.md +++ b/docs/references/protocol/index.md @@ -5,11 +5,11 @@ metadata: indexPage: true eyebrow_text: Features and Rules seo: - description: Features and rules of the XRP Ledger protocol, regardless of how you access it. + description: Features and rules of the XRP Ledger protocol, regardless of how you access it. --- + # XRP Ledger Protocol Reference Features and rules of the XRP Ledger protocol, regardless of how you access it. - {% child-pages /%} diff --git a/docs/references/protocol/ledger-data/common-fields.md b/docs/references/protocol/ledger-data/common-fields.md index 974949a54b..a64b5be91c 100644 --- a/docs/references/protocol/ledger-data/common-fields.md +++ b/docs/references/protocol/ledger-data/common-fields.md @@ -1,21 +1,22 @@ --- seo: - description: These common fields are part of every ledger entry. + description: These common fields are part of every ledger entry. --- + # Ledger Entry Common Fields + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/libxrpl/protocol/LedgerFormats.cpp) Every entry in a [ledger](../../../concepts/ledgers/index.md)'s state data has the same set of common fields, plus additional fields based on the [ledger entry type](ledger-entry-types/index.md). Field names are case-sensitive. The common fields for all ledger entries are: -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:-------------------------|:----------|:------------------|:----------|:------------| +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :----------------------- | :-------- | :---------------- | :-------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `index` or `LedgerIndex` | String | UInt256 | No | The unique ID for this ledger entry. In JSON, this field is represented with different names depending on the context and API method. (Note, even though this is specified as "optional" in the code, every ledger entry should have one unless it's legacy data from very early in the XRP Ledger's history.) | -| `LedgerEntryType` | String | UInt16 | Yes | The type of ledger entry. Valid [ledger entry types](ledger-entry-types/index.md) include `AccountRoot`, `Offer`, `RippleState`, and others. | -| `Flags` | Number | UInt32 | Yes | Set of bit-flags for this ledger entry. | +| `LedgerEntryType` | String | UInt16 | Yes | The type of ledger entry. Valid [ledger entry types](ledger-entry-types/index.md) include `AccountRoot`, `Offer`, `RippleState`, and others. | +| `Flags` | Number | UInt32 | Yes | Set of bit-flags for this ledger entry. | {% admonition type="warning" name="Caution" %}In JSON, the ledger entry ID is in the `index` or `LedgerIndex` field. This is not the same as a [ledger index][] in the `ledger_index` field.{% /admonition %} - ## Ledger Entry ID [[Source]](https://github.com/XRPLF/rippled/blob/master/src/libxrpl/protocol/Indexes.cpp) @@ -26,8 +27,7 @@ Generally, a ledger entry's ID is returned as the `index` field in JSON, at the Offer directories have special IDs, where part of the hash is replaced with the exchange rate of Offers in that directory. -[{% inline-svg file="/docs/img/ledger-object-ids.svg" /%}](/docs/img/ledger-object-ids.svg "Diagram: ID calculations for different types of ledger entries. The space key prevents IDs for different types from colliding.") - +[{% inline-svg file="/docs/img/ledger-object-ids.svg" /%}](/docs/img/ledger-object-ids.svg 'Diagram: ID calculations for different types of ledger entries. The space key prevents IDs for different types from colliding.') ## Flags diff --git a/docs/references/protocol/ledger-data/index.md b/docs/references/protocol/ledger-data/index.md index 0b73e4c317..2d24c798f5 100644 --- a/docs/references/protocol/ledger-data/index.md +++ b/docs/references/protocol/ledger-data/index.md @@ -2,10 +2,11 @@ html: ledger-data-formats.html parent: protocol-reference.html seo: - description: Learn about individual entries that comprise the XRP Ledger's shared state data. + description: Learn about individual entries that comprise the XRP Ledger's shared state data. metadata: indexPage: true --- + # Ledger Data Formats Each [ledger version](../../../concepts/ledgers/index.md) in the XRP Ledger is made up of three parts: @@ -19,4 +20,3 @@ Each [ledger version](../../../concepts/ledgers/index.md) in the XRP Ledger is m {% partial file="/docs/_snippets/ledger-objects-intro.md" /%} {% child-pages /%} - diff --git a/docs/references/protocol/ledger-data/ledger-entry-types/accountroot.md b/docs/references/protocol/ledger-data/ledger-entry-types/accountroot.md index 42fa4aae64..abf818d353 100644 --- a/docs/references/protocol/ledger-data/ledger-entry-types/accountroot.md +++ b/docs/references/protocol/ledger-data/ledger-entry-types/accountroot.md @@ -1,11 +1,13 @@ --- seo: - description: The settings, XRP balance, and other metadata for one account. + description: The settings, XRP balance, and other metadata for one account. labels: - Accounts - XRP --- + # AccountRoot + [[Source]](https://github.com/XRPLF/rippled/blob/f64cf9187affd69650907d0d92e097eb29693945/include/xrpl/protocol/detail/ledger_entries.macro#L136-L158 "Source") An `AccountRoot` ledger entry type describes a single [account](../../../../concepts/accounts/index.md), its settings, and XRP balance. You can create a new account by sending a [Payment transaction][] with enough XRP to a mathematically-valid address. @@ -14,20 +16,20 @@ An `AccountRoot` ledger entry type describes a single [account](../../../../conc ```json { - "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "AccountTxnID": "0D5FB50FA65C9FE1538FD7E398FFFE9D1908DFA4576D8D7A020040686F93C77D", - "Balance": "148446663", - "Domain": "6D64756F31332E636F6D", - "EmailHash": "98B4375E1D753E5B91627516F6D70977", - "Flags": 8388608, - "LedgerEntryType": "AccountRoot", - "MessageKey": "0000000000000000000000070000000300", - "OwnerCount": 3, - "PreviousTxnID": "0D5FB50FA65C9FE1538FD7E398FFFE9D1908DFA4576D8D7A020040686F93C77D", - "PreviousTxnLgrSeq": 14091160, - "Sequence": 336, - "TransferRate": 1004999999, - "index": "13F1A95D7AAB7108D5CE7EEAF504B2894B8C674E6D68499076441C4837282BF8" + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "AccountTxnID": "0D5FB50FA65C9FE1538FD7E398FFFE9D1908DFA4576D8D7A020040686F93C77D", + "Balance": "148446663", + "Domain": "6D64756F31332E636F6D", + "EmailHash": "98B4375E1D753E5B91627516F6D70977", + "Flags": 8388608, + "LedgerEntryType": "AccountRoot", + "MessageKey": "0000000000000000000000070000000300", + "OwnerCount": 3, + "PreviousTxnID": "0D5FB50FA65C9FE1538FD7E398FFFE9D1908DFA4576D8D7A020040686F93C77D", + "PreviousTxnLgrSeq": 14091160, + "Sequence": 336, + "TransferRate": 1004999999, + "index": "13F1A95D7AAB7108D5CE7EEAF504B2894B8C674E6D68499076441C4837282BF8" } ``` @@ -35,29 +37,29 @@ An `AccountRoot` ledger entry type describes a single [account](../../../../conc In addition to the [common fields](../common-fields.md), {% code-page-name /%} entries have the following fields: -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:------------------------------|:----------|:------------------|:----------|:-------------| -| `Account` | String | AccountID | Yes | The identifying (classic) address of this [account](../../../../concepts/accounts/index.md). | -| `AccountTxnID` | String | UInt256 | No | The identifying hash of the transaction most recently sent by this account. This field must be enabled to use the [`AccountTxnID` transaction field](../../transactions/common-fields.md#accounttxnid). To enable it, send an [AccountSet transaction with the `asfAccountTxnID` flag enabled](../../transactions/types/accountset.md#accountset-flags). | -| `AMMID` | String | UInt256 | No | {% amendment-disclaimer name="AMM" /%} The ledger entry ID of the corresponding AMM ledger entry. Set during account creation; cannot be modified. If present, indicates that this is a special AMM AccountRoot; always omitted on non-AMM accounts. | -| `Balance` | String | Amount | No | The account's current [XRP balance in drops][XRP, in drops], represented as a string. | -| `BurnedNFTokens` | Number | UInt32 | No | How many total of this account's issued [non-fungible tokens](../../../../concepts/tokens/nfts/index.md) have been burned. This number is always equal or less than `MintedNFTokens`. | -| `Domain` | String | Blob | No | A domain associated with this account. In JSON, this is the hexadecimal for the ASCII representation of the domain. [Cannot be more than 256 bytes in length.](https://github.com/XRPLF/rippled/blob/70d5c624e8cf732a362335642b2f5125ce4b43c1/include/xrpl/protocol/Protocol.h#L98) | -| `EmailHash` | String | UInt128 | No | The md5 hash of an email address. Clients can use this to look up an avatar through services such as [Gravatar](https://en.gravatar.com/). | -| `FirstNFTokenSequence` | Number | UInt32 | No | The account's [Sequence Number][] at the time it minted its first [non-fungible-token](../../../../concepts/tokens/nfts/index.md). {% amendment-disclaimer name="fixNFTokenRemint" /%} | -| `MessageKey` | String | Blob | No | A public key that may be used to send encrypted messages to this account. In JSON, uses hexadecimal. Must be exactly 33 bytes, with the first byte indicating the key type: `0x02` or `0x03` for secp256k1 keys, `0xED` for Ed25519 keys. | -| `MintedNFTokens` | Number | UInt32 | No | How many total [non-fungible tokens](../../../../concepts/tokens/nfts/index.md) have been minted by and on behalf of this account. {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} | -| `NFTokenMinter` | String | AccountID | No | Another account that can mint [non-fungible tokens](../../../../concepts/tokens/nfts/index.md) on behalf of this account. {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} | -| `OwnerCount` | Number | UInt32 | Yes | The number of objects this account owns in the ledger, which contributes to its owner reserve. | -| `PreviousTxnID` | String | UInt256 | Yes | The identifying hash of the transaction that most recently modified this object. | -| `PreviousTxnLgrSeq` | Number | UInt32 | Yes |The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this object. | -| `RegularKey` | String | AccountID | No | The address of a [key pair](../../../../concepts/accounts/cryptographic-keys.md) that can be used to sign transactions for this account instead of the master key. Use a [SetRegularKey transaction][] to change this value. | -| `Sequence` | Number | UInt32 | Yes | The [sequence number](../../data-types/basic-data-types.md#account-sequence) of the next valid transaction for this account. | -| `TicketCount` | Number | UInt32 | No | How many [Tickets](../../../../concepts/accounts/tickets.md) this account owns in the ledger. This is updated automatically to ensure that the account stays within the hard limit of 250 Tickets at a time. This field is omitted if the account has zero Tickets. {% amendment-disclaimer name="TicketBatch" /%} | -| `TickSize` | Number | UInt8 | No | How many significant digits to use for exchange rates of Offers involving currencies issued by this address. Valid values are `3` to `15`, inclusive. {% amendment-disclaimer name="TickSize" /%} | -| `TransferRate` | Number | UInt32 | No | A [transfer fee](../../../../concepts/tokens/fungible-tokens/transfer-fees.md) to charge other users for sending currency issued by this account to each other. | -| `WalletLocator` | String | UInt256 | No | An arbitrary 256-bit value that users can set. | -| `WalletSize` | Number | UInt32 | No | Unused. (The code supports this field but there is no way to set it.) | +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :--------------------- | :-------- | :---------------- | :-------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Account` | String | AccountID | Yes | The identifying (classic) address of this [account](../../../../concepts/accounts/index.md). | +| `AccountTxnID` | String | UInt256 | No | The identifying hash of the transaction most recently sent by this account. This field must be enabled to use the [`AccountTxnID` transaction field](../../transactions/common-fields.md#accounttxnid). To enable it, send an [AccountSet transaction with the `asfAccountTxnID` flag enabled](../../transactions/types/accountset.md#accountset-flags). | +| `AMMID` | String | UInt256 | No | {% amendment-disclaimer name="AMM" /%} The ledger entry ID of the corresponding AMM ledger entry. Set during account creation; cannot be modified. If present, indicates that this is a special AMM AccountRoot; always omitted on non-AMM accounts. | +| `Balance` | String | Amount | No | The account's current [XRP balance in drops][XRP, in drops], represented as a string. | +| `BurnedNFTokens` | Number | UInt32 | No | How many total of this account's issued [non-fungible tokens](../../../../concepts/tokens/nfts/index.md) have been burned. This number is always equal or less than `MintedNFTokens`. | +| `Domain` | String | Blob | No | A domain associated with this account. In JSON, this is the hexadecimal for the ASCII representation of the domain. [Cannot be more than 256 bytes in length.](https://github.com/XRPLF/rippled/blob/70d5c624e8cf732a362335642b2f5125ce4b43c1/include/xrpl/protocol/Protocol.h#L98) | +| `EmailHash` | String | UInt128 | No | The md5 hash of an email address. Clients can use this to look up an avatar through services such as [Gravatar](https://en.gravatar.com/). | +| `FirstNFTokenSequence` | Number | UInt32 | No | The account's [Sequence Number][] at the time it minted its first [non-fungible-token](../../../../concepts/tokens/nfts/index.md). {% amendment-disclaimer name="fixNFTokenRemint" /%} | +| `MessageKey` | String | Blob | No | A public key that may be used to send encrypted messages to this account. In JSON, uses hexadecimal. Must be exactly 33 bytes, with the first byte indicating the key type: `0x02` or `0x03` for secp256k1 keys, `0xED` for Ed25519 keys. | +| `MintedNFTokens` | Number | UInt32 | No | How many total [non-fungible tokens](../../../../concepts/tokens/nfts/index.md) have been minted by and on behalf of this account. {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} | +| `NFTokenMinter` | String | AccountID | No | Another account that can mint [non-fungible tokens](../../../../concepts/tokens/nfts/index.md) on behalf of this account. {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} | +| `OwnerCount` | Number | UInt32 | Yes | The number of objects this account owns in the ledger, which contributes to its owner reserve. | +| `PreviousTxnID` | String | UInt256 | Yes | The identifying hash of the transaction that most recently modified this object. | +| `PreviousTxnLgrSeq` | Number | UInt32 | Yes | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this object. | +| `RegularKey` | String | AccountID | No | The address of a [key pair](../../../../concepts/accounts/cryptographic-keys.md) that can be used to sign transactions for this account instead of the master key. Use a [SetRegularKey transaction][] to change this value. | +| `Sequence` | Number | UInt32 | Yes | The [sequence number](../../data-types/basic-data-types.md#account-sequence) of the next valid transaction for this account. | +| `TicketCount` | Number | UInt32 | No | How many [Tickets](../../../../concepts/accounts/tickets.md) this account owns in the ledger. This is updated automatically to ensure that the account stays within the hard limit of 250 Tickets at a time. This field is omitted if the account has zero Tickets. {% amendment-disclaimer name="TicketBatch" /%} | +| `TickSize` | Number | UInt8 | No | How many significant digits to use for exchange rates of Offers involving currencies issued by this address. Valid values are `3` to `15`, inclusive. {% amendment-disclaimer name="TickSize" /%} | +| `TransferRate` | Number | UInt32 | No | A [transfer fee](../../../../concepts/tokens/fungible-tokens/transfer-fees.md) to charge other users for sending currency issued by this account to each other. | +| `WalletLocator` | String | UInt256 | No | An arbitrary 256-bit value that users can set. | +| `WalletSize` | Number | UInt32 | No | Unused. (The code supports this field but there is no way to set it.) | ## Special AMM AccountRoot Entries @@ -84,23 +86,23 @@ Many AccountRoot flags correspond to options you can change with an [AccountSet AccountRoot objects can have the following flags combined in the `Flags` field: -| Flag Name | Hex Value | Decimal Value | Corresponding [AccountSet Flag](../../transactions/types/accountset.md#accountset-flags) | Description | -|-----------------------------------|--------------|-------------------|-----------------------------------|----| -| `lsfAllowTrustLineClawback` | `0x80000000` | 2147483648 | `asfAllowTrustLineClawback` | Enable [Clawback](../../../../concepts/tokens/fungible-tokens/clawing-back-tokens.md) for this account. {% amendment-disclaimer name="Clawback" /%} | -| `lsfAllowTrustLineLocking` | `0x40000000` | 1073741824 | `asfAllowTrustLineLocking` | Enable [Escrow](../../../../concepts/payment-types/escrow.md) for Trust Line Tokens issued by this account. {% amendment-disclaimer name="TokenEscrow" /%} | -| `lsfDefaultRipple` | `0x00800000` | 8388608 | `asfDefaultRipple` | Enable [rippling](../../../../concepts/tokens/fungible-tokens/rippling.md) on this addresses's trust lines by default. Required for issuing addresses; discouraged for others. | -| `lsfDepositAuth` | `0x01000000` | 16777216 | `asfDepositAuth` | This account has [DepositAuth](../../../../concepts/accounts/depositauth.md) enabled, meaning it can only receive funds from transactions it sends, and from [preauthorized](../../../../concepts/accounts/depositauth.md#preauthorization) accounts. {% amendment-disclaimer name="DepositAuth" /%} | -| `lsfDisableMaster` | `0x00100000` | 1048576 | `asfDisableMaster` | Disallows use of the master key to sign transactions for this account. | -| `lsfDisallowIncomingCheck` | `0x08000000` | 134217728 | `asfDisallowIncomingCheck` | This account blocks incoming Checks. {% amendment-disclaimer name="DisallowIncoming" /%} | -| `lsfDisallowIncomingNFTokenOffer` | `0x04000000` | 67108864 | `asfDisallowIncomingNFTokenOffer` | This account blocks incoming NFTokenOffers. {% amendment-disclaimer name="DisallowIncoming" /%} | -| `lsfDisallowIncomingPayChan` | `0x10000000` | 268435456 | `asfDisallowIncomingPayChan` | This account blocks incoming Payment Channels. {% amendment-disclaimer name="DisallowIncoming" /%} | -| `lsfDisallowIncomingTrustline` | `0x20000000` | 536870912 | `asfDisallowIncomingTrustline` | This account blocks incoming trust lines. {% amendment-disclaimer name="DisallowIncoming" /%} | -| `lsfDisallowXRP` | `0x00080000` | 524288 | `asfDisallowXRP` | Client applications should not send XRP to this account. (Advisory; not enforced by the protocol.) | -| `lsfGlobalFreeze` | `0x00400000` | 4194304 | `asfGlobalFreeze` | All assets issued by this account are frozen. | -| `lsfNoFreeze` | `0x00200000` | 2097152 | `asfNoFreeze` | This account cannot freeze trust lines connected to it. Once enabled, cannot be disabled. | -| `lsfPasswordSpent` | `0x00010000` | 65536 | (None) | This account has used its free SetRegularKey transaction. | -| `lsfRequireAuth` | `0x00040000` | 262144 | `asfRequireAuth` | This account must individually approve other users for those users to hold this account's tokens. | -| `lsfRequireDestTag` | `0x00020000` | 131072 | `asfRequireDest` | Requires incoming payments to specify a Destination Tag. | +| Flag Name | Hex Value | Decimal Value | Corresponding [AccountSet Flag](../../transactions/types/accountset.md#accountset-flags) | Description | +| --------------------------------- | ------------ | ------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `lsfAllowTrustLineClawback` | `0x80000000` | 2147483648 | `asfAllowTrustLineClawback` | Enable [Clawback](../../../../concepts/tokens/fungible-tokens/clawing-back-tokens.md) for this account. {% amendment-disclaimer name="Clawback" /%} | +| `lsfAllowTrustLineLocking` | `0x40000000` | 1073741824 | `asfAllowTrustLineLocking` | Enable [Escrow](../../../../concepts/payment-types/escrow.md) for Trust Line Tokens issued by this account. {% amendment-disclaimer name="TokenEscrow" /%} | +| `lsfDefaultRipple` | `0x00800000` | 8388608 | `asfDefaultRipple` | Enable [rippling](../../../../concepts/tokens/fungible-tokens/rippling.md) on this addresses's trust lines by default. Required for issuing addresses; discouraged for others. | +| `lsfDepositAuth` | `0x01000000` | 16777216 | `asfDepositAuth` | This account has [DepositAuth](../../../../concepts/accounts/depositauth.md) enabled, meaning it can only receive funds from transactions it sends, and from [preauthorized](../../../../concepts/accounts/depositauth.md#preauthorization) accounts. {% amendment-disclaimer name="DepositAuth" /%} | +| `lsfDisableMaster` | `0x00100000` | 1048576 | `asfDisableMaster` | Disallows use of the master key to sign transactions for this account. | +| `lsfDisallowIncomingCheck` | `0x08000000` | 134217728 | `asfDisallowIncomingCheck` | This account blocks incoming Checks. {% amendment-disclaimer name="DisallowIncoming" /%} | +| `lsfDisallowIncomingNFTokenOffer` | `0x04000000` | 67108864 | `asfDisallowIncomingNFTokenOffer` | This account blocks incoming NFTokenOffers. {% amendment-disclaimer name="DisallowIncoming" /%} | +| `lsfDisallowIncomingPayChan` | `0x10000000` | 268435456 | `asfDisallowIncomingPayChan` | This account blocks incoming Payment Channels. {% amendment-disclaimer name="DisallowIncoming" /%} | +| `lsfDisallowIncomingTrustline` | `0x20000000` | 536870912 | `asfDisallowIncomingTrustline` | This account blocks incoming trust lines. {% amendment-disclaimer name="DisallowIncoming" /%} | +| `lsfDisallowXRP` | `0x00080000` | 524288 | `asfDisallowXRP` | Client applications should not send XRP to this account. (Advisory; not enforced by the protocol.) | +| `lsfGlobalFreeze` | `0x00400000` | 4194304 | `asfGlobalFreeze` | All assets issued by this account are frozen. | +| `lsfNoFreeze` | `0x00200000` | 2097152 | `asfNoFreeze` | This account cannot freeze trust lines connected to it. Once enabled, cannot be disabled. | +| `lsfPasswordSpent` | `0x00010000` | 65536 | (None) | This account has used its free SetRegularKey transaction. | +| `lsfRequireAuth` | `0x00040000` | 262144 | `asfRequireAuth` | This account must individually approve other users for those users to hold this account's tokens. | +| `lsfRequireDestTag` | `0x00020000` | 131072 | `asfRequireDest` | Requires incoming payments to specify a Destination Tag. | ## {% $frontmatter.seo.title %} Reserve @@ -112,8 +114,8 @@ This XRP cannot be sent to others but it can be burned as part of the [transacti The ID of an AccountRoot entry is the [SHA-512Half][] of the following values, concatenated in order: -* The Account space key (`0x0061`) -* The AccountID of the account +- The Account space key (`0x0061`) +- The AccountID of the account ## See Also diff --git a/docs/references/protocol/ledger-data/ledger-entry-types/amendments.md b/docs/references/protocol/ledger-data/ledger-entry-types/amendments.md index f8afcc1ea0..3238402790 100644 --- a/docs/references/protocol/ledger-data/ledger-entry-types/amendments.md +++ b/docs/references/protocol/ledger-data/ledger-entry-types/amendments.md @@ -1,10 +1,12 @@ --- seo: - description: The status of enabled and pending amendments. + description: The status of enabled and pending amendments. labels: - Blockchain --- + # Amendments + [[Source]](https://github.com/XRPLF/rippled/blob/f64cf9187affd69650907d0d92e097eb29693945/include/xrpl/protocol/detail/ledger_entries.macro#L187-L192 "Source") The `Amendments` ledger entry type contains a list of [Amendments](../../../../concepts/networks-and-servers/amendments.md) that are currently active. Each ledger version contains **at most one** `Amendments` entry. @@ -13,30 +15,30 @@ The `Amendments` ledger entry type contains a list of [Amendments](../../../../c ```json { - "Amendments": [ - "42426C4D4F1009EE67080A9B7965B44656D7714D104A72F9B4369F97ABF044EE", - "4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373", - // (... Long list of enabled amendment IDs ...) - "03BDC0099C4E14163ADA272C1B6F6FABB448CC3E51F522F978041E4B57D9158C", - "35291ADD2D79EB6991343BDA0912269C817D0F094B02226C1C14AD2858962ED4" - ], - "Flags": 0, - "LedgerEntryType": "Amendments", - "Majorities": [ - { - "Majority": { - "Amendment": "7BB62DC13EC72B775091E9C71BF8CF97E122647693B50C5E87A80DFD6FCFAC50", - "CloseTime": 779561310 - } - }, - { - "Majority": { - "Amendment": "755C971C29971C9F20C6F080F2ED96F87884E40AD19554A5EBECDCEC8A1F77FE", - "CloseTime": 779561310 - } - } - ], - "index": "7DB0788C020F02780A673DC74757F23823FA3014C1866E72CC4CD8B226CD6EF4" + "Amendments": [ + "42426C4D4F1009EE67080A9B7965B44656D7714D104A72F9B4369F97ABF044EE", + "4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373", + // (... Long list of enabled amendment IDs ...) + "03BDC0099C4E14163ADA272C1B6F6FABB448CC3E51F522F978041E4B57D9158C", + "35291ADD2D79EB6991343BDA0912269C817D0F094B02226C1C14AD2858962ED4" + ], + "Flags": 0, + "LedgerEntryType": "Amendments", + "Majorities": [ + { + "Majority": { + "Amendment": "7BB62DC13EC72B775091E9C71BF8CF97E122647693B50C5E87A80DFD6FCFAC50", + "CloseTime": 779561310 + } + }, + { + "Majority": { + "Amendment": "755C971C29971C9F20C6F080F2ED96F87884E40AD19554A5EBECDCEC8A1F77FE", + "CloseTime": 779561310 + } + } + ], + "index": "7DB0788C020F02780A673DC74757F23823FA3014C1866E72CC4CD8B226CD6EF4" } ``` @@ -46,19 +48,19 @@ The `Amendments` ledger entry type contains a list of [Amendments](../../../../c In addition to the [common fields](../common-fields.md), the {% code-page-name /%} ledger entry has the following fields: -| Name | JSON Type | [Internal Type][] | Required? | Description | -|---------------------|-----------|-------------------|-----------|-------------| +| Name | JSON Type | [Internal Type][] | Required? | Description | +| ------------------- | --------- | ----------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `Amendments` | Array | Vector256 | No | Array of 256-bit [amendment IDs](../../../../concepts/networks-and-servers/amendments.md) for all currently enabled amendments. If omitted, there are no enabled amendments. | -| `Majorities` | Array | Array | No | Array of objects describing the status of amendments that have majority support but are not yet enabled. If omitted, there are no pending amendments with majority support. | -| `PreviousTxnID` | String | UInt256 | No | The identifying hash of the transaction that most recently modified this entry. {% amendment-disclaimer name="fixPreviousTxnID" /%} | -| `PreviousTxnLgrSeq` | Number | UInt32 | No | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this entry. {% amendment-disclaimer name="fixPreviousTxnID" /%} | +| `Majorities` | Array | Array | No | Array of objects describing the status of amendments that have majority support but are not yet enabled. If omitted, there are no pending amendments with majority support. | +| `PreviousTxnID` | String | UInt256 | No | The identifying hash of the transaction that most recently modified this entry. {% amendment-disclaimer name="fixPreviousTxnID" /%} | +| `PreviousTxnLgrSeq` | Number | UInt32 | No | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this entry. {% amendment-disclaimer name="fixPreviousTxnID" /%} | Each member of the `Majorities` field, if it is present, is an object with one field, `Majority`, whose contents are a nested object with the following fields: -| Name | JSON Type | [Internal Type][] | Description | -|-------------------|-----------|-------------------|-------------| -| `Amendment` | String | UInt256 | The Amendment ID of the pending amendment. | -| `CloseTime` | Number | UInt32 | The [`close_time` field](../ledger-header.md) of the ledger version where this amendment most recently gained a majority. | +| Name | JSON Type | [Internal Type][] | Description | +| ----------- | --------- | ----------------- | ------------------------------------------------------------------------------------------------------------------------- | +| `Amendment` | String | UInt256 | The Amendment ID of the pending amendment. | +| `CloseTime` | Number | UInt32 | The [`close_time` field](../ledger-header.md) of the ledger version where this amendment most recently gained a majority. | In the [amendment process](../../../../concepts/networks-and-servers/amendments.md#amendment-process), a consensus of validators adds a new amendment to the `Majorities` field using an [EnableAmendment][] pseudo-transaction with the `tfGotMajority` flag when 80% or more of validators support it. If support for a pending amendment goes below 80%, an [EnableAmendment][] pseudo-transaction with the `tfLostMajority` flag removes the amendment from the `Majorities` array. If an amendment remains in the `Majorities` field for at least 2 weeks, an [EnableAmendment][] pseudo-transaction with no flags removes it from `Majorities` and permanently adds it to the `Amendments` field. @@ -68,12 +70,10 @@ In the [amendment process](../../../../concepts/networks-and-servers/amendments. There are no flags defined for the {% code-page-name /%} entry. - ## {% $frontmatter.seo.title %} Reserve The {% code-page-name /%} entry does not require a reserve. - ## {% $frontmatter.seo.title %} ID Format The ID of the `Amendments` entry is the hash of the `Amendments` space key (`0x0066`) only. This means that the ID is always: diff --git a/docs/references/protocol/ledger-data/ledger-entry-types/amm.md b/docs/references/protocol/ledger-data/ledger-entry-types/amm.md index 5cc864dde0..a3f693bcb6 100644 --- a/docs/references/protocol/ledger-data/ledger-entry-types/amm.md +++ b/docs/references/protocol/ledger-data/ledger-entry-types/amm.md @@ -1,59 +1,60 @@ --- seo: - description: The definition and details of an Automated Market Maker (AMM) instance. + description: The definition and details of an Automated Market Maker (AMM) instance. labels: - AMM --- + # AMM + [[Source]](https://github.com/XRPLF/rippled/blob/f64cf9187affd69650907d0d92e097eb29693945/include/xrpl/protocol/detail/ledger_entries.macro#L369-L380 "Source") An `AMM` ledger entry describes a single [Automated Market Maker](../../../../concepts/tokens/decentralized-exchange/automated-market-makers.md) (AMM) instance. This is always paired with a [special AccountRoot entry](accountroot.md#special-amm-accountroot-entries). You can create an AMM by sending an [AMMCreate transaction][]. {% amendment-disclaimer name="AMM" /%} - ## Example AMM JSON ```json { - "Account": "rBp3UDRuEteeJqp4rEk5kxMe7BGWNYrF9A", - "Asset": { - "currency": "XRP" - }, - "Asset2": { - "currency": "NEX", - "issuer": "rQGiPFWhaTDdue1xHX7cVpxGqPQK54zng1" - }, - "AuctionSlot": { - "Account": "r3ZGQZw1NCbBp5AEGkMDE9NgNpzw91aofD", - "Expiration": 778576560, - "Price": { - "currency": "03DC324562A8915B7C65E9D31B93D62D02BC491C", - "issuer": "rBp3UDRuEteeJqp4rEk5kxMe7BGWNYrF9A", - "value": "0" - } - }, - "Flags": 0, - "LPTokenBalance": { + "Account": "rBp3UDRuEteeJqp4rEk5kxMe7BGWNYrF9A", + "Asset": { + "currency": "XRP" + }, + "Asset2": { + "currency": "NEX", + "issuer": "rQGiPFWhaTDdue1xHX7cVpxGqPQK54zng1" + }, + "AuctionSlot": { + "Account": "r3ZGQZw1NCbBp5AEGkMDE9NgNpzw91aofD", + "Expiration": 778576560, + "Price": { "currency": "03DC324562A8915B7C65E9D31B93D62D02BC491C", "issuer": "rBp3UDRuEteeJqp4rEk5kxMe7BGWNYrF9A", - "value": "5509581.299648495" - }, - "LedgerEntryType": "AMM", - "OwnerNode": "0", - "PreviousTxnID": "9E8E9B8FD27391C818525BFF6A29452F7A9888F31622BEF6FC36064D05CF6436", - "PreviousTxnLgrSeq": 91448830, - "TradingFee": 1, - "VoteSlots": [ - { - "VoteEntry": { - "Account": "r3ZGQZw1NCbBp5AEGkMDE9NgNpzw91aofD", - "TradingFee": 1, - "VoteWeight": 100000 - } + "value": "0" + } + }, + "Flags": 0, + "LPTokenBalance": { + "currency": "03DC324562A8915B7C65E9D31B93D62D02BC491C", + "issuer": "rBp3UDRuEteeJqp4rEk5kxMe7BGWNYrF9A", + "value": "5509581.299648495" + }, + "LedgerEntryType": "AMM", + "OwnerNode": "0", + "PreviousTxnID": "9E8E9B8FD27391C818525BFF6A29452F7A9888F31622BEF6FC36064D05CF6436", + "PreviousTxnLgrSeq": 91448830, + "TradingFee": 1, + "VoteSlots": [ + { + "VoteEntry": { + "Account": "r3ZGQZw1NCbBp5AEGkMDE9NgNpzw91aofD", + "TradingFee": 1, + "VoteWeight": 100000 } - ], - "index": "F490627BACE2D0AA744514A640B4999D50E495DD1677550D8B10E2D20FBB15C3" + } + ], + "index": "F490627BACE2D0AA744514A640B4999D50E495DD1677550D8B10E2D20FBB15C3" } ``` @@ -61,61 +62,57 @@ An `AMM` ledger entry describes a single [Automated Market Maker](../../../../co In addition to the [common fields](../common-fields.md), {% code-page-name /%} entries have the following fields: -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:-----------------|:--------------------|:------------------|:----------|--------------| -| `Asset` | Object | Issue | Yes | The definition for one of the two assets this AMM holds. In JSON, this is an object with `currency` and `issuer` fields. | -| `Asset2` | Object | Issue | Yes | The definition for the other asset this AMM holds. In JSON, this is an object with `currency` and `issuer` fields. | -| `Account` | String - [Address][] | AccountID | Yes | The address of the [special account](accountroot.md#special-amm-accountroot-entries) that holds this AMM's assets. | -| `AuctionSlot` | Object | Object | No | Details of the current owner of the auction slot, as an [Auction Slot object](#auction-slot-object). | -| `LPTokenBalance` | [Currency Amount][] | Amount | Yes | The total outstanding balance of liquidity provider tokens from this AMM instance. The holders of these tokens can vote on the AMM's trading fee in proportion to their holdings, or redeem the tokens for a share of the AMM's assets which grows with the trading fees collected. | -| `PreviousTxnID` | String - [Hash][] | UInt256 | No | The identifying hash of the transaction that most recently modified this entry. {% amendment-disclaimer name="fixPreviousTxnID" /%} | -| `PreviousTxnLgrSeq` | Number | UInt32 | No | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this entry. {% amendment-disclaimer name="fixPreviousTxnID" /%} | -| `TradingFee` | Number | UInt16 | Yes | The percentage fee to be charged for trades against this AMM instance, in units of 1/100,000. The maximum value is 1000, for a 1% fee. | -| `VoteSlots` | Array | Array | No | A list of vote objects, representing votes on the pool's trading fee. | - +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :------------------ | :------------------- | :---------------- | :-------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Asset` | Object | Issue | Yes | The definition for one of the two assets this AMM holds. In JSON, this is an object with `currency` and `issuer` fields. | +| `Asset2` | Object | Issue | Yes | The definition for the other asset this AMM holds. In JSON, this is an object with `currency` and `issuer` fields. | +| `Account` | String - [Address][] | AccountID | Yes | The address of the [special account](accountroot.md#special-amm-accountroot-entries) that holds this AMM's assets. | +| `AuctionSlot` | Object | Object | No | Details of the current owner of the auction slot, as an [Auction Slot object](#auction-slot-object). | +| `LPTokenBalance` | [Currency Amount][] | Amount | Yes | The total outstanding balance of liquidity provider tokens from this AMM instance. The holders of these tokens can vote on the AMM's trading fee in proportion to their holdings, or redeem the tokens for a share of the AMM's assets which grows with the trading fees collected. | +| `PreviousTxnID` | String - [Hash][] | UInt256 | No | The identifying hash of the transaction that most recently modified this entry. {% amendment-disclaimer name="fixPreviousTxnID" /%} | +| `PreviousTxnLgrSeq` | Number | UInt32 | No | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this entry. {% amendment-disclaimer name="fixPreviousTxnID" /%} | +| `TradingFee` | Number | UInt16 | Yes | The percentage fee to be charged for trades against this AMM instance, in units of 1/100,000. The maximum value is 1000, for a 1% fee. | +| `VoteSlots` | Array | Array | No | A list of vote objects, representing votes on the pool's trading fee. | ### Auction Slot Object The `AuctionSlot` field contains an object with the following nested fields: -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:----------------|:--------------------|:------------------|:----------|:--| -| `Account` | String - Address | AccountID | Yes | The current owner of this auction slot. | -| `AuthAccounts` | Array | Array | No | A list of at most 4 additional accounts that are authorized to trade at the discounted fee for this AMM instance. | +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :-------------- | :------------------ | :---------------- | :-------- | :--------------------------------------------------------------------------------------------------------------------------------------------- | +| `Account` | String - Address | AccountID | Yes | The current owner of this auction slot. | +| `AuthAccounts` | Array | Array | No | A list of at most 4 additional accounts that are authorized to trade at the discounted fee for this AMM instance. | | `DiscountedFee` | String | UInt32 | Yes | The trading fee to be charged to the auction owner, in the same format as `TradingFee`. Normally, this is 1/10 of the normal fee for this AMM. | -| `Price` | [Currency Amount][] | Amount | Yes | The amount the auction owner paid to win this slot, in LP Tokens. | -| `Expiration` | String | UInt32 | Yes | The time when this slot expires, in [seconds since the Ripple Epoch][]. | +| `Price` | [Currency Amount][] | Amount | Yes | The amount the auction owner paid to win this slot, in LP Tokens. | +| `Expiration` | String | UInt32 | Yes | The time when this slot expires, in [seconds since the Ripple Epoch][]. | ## VoteEntry Object The `VoteSlots` field contains an array of `VoteEntry` objects with the following fields: -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:-----------------|:--------------------|:------------------|:----------|--------------| -| `Account` | String - Address | AccountID | Yes | The account that cast the vote. | -| `TradingFee` | Number | UInt16 | Yes | The proposed trading fee, in units of 1/100,000; a value of 1 is equivalent to 0.001%. The maximum value is 1000, indicating a 1% fee. | -| `VoteWeight` | Number | UInt32 | Yes | The weight of the vote, in units of 1/100,000. For example, a value of 1234 means this vote counts as 1.234% of the weighted total vote. The weight is determined by the percentage of this AMM's LP Tokens the account owns. The maximum value is 100000. | - +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :----------- | :--------------- | :---------------- | :-------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Account` | String - Address | AccountID | Yes | The account that cast the vote. | +| `TradingFee` | Number | UInt16 | Yes | The proposed trading fee, in units of 1/100,000; a value of 1 is equivalent to 0.001%. The maximum value is 1000, indicating a 1% fee. | +| `VoteWeight` | Number | UInt32 | Yes | The weight of the vote, in units of 1/100,000. For example, a value of 1234 means this vote counts as 1.234% of the weighted total vote. The weight is determined by the percentage of this AMM's LP Tokens the account owns. The maximum value is 100000. | ## {% $frontmatter.seo.title %} Reserve {% code-page-name /%} entries do not require a reserve. - ## {% $frontmatter.seo.title %} Flags There are no flags defined for {% code-page-name /%} entries. - ## AMM ID Format The ID of an `AMM` entry is the [SHA-512Half][] of the following values, concatenated in order: 1. The `AMM` space key (`0x0041`) -0. The AccountID of the first asset's issuer. -0. The 160-bit currency code of the first token. -0. The AccountID of the second asset's issuer. -0. The 160-bit currency code of the second token. +2. The AccountID of the first asset's issuer. +3. The 160-bit currency code of the first token. +4. The AccountID of the second asset's issuer. +5. The 160-bit currency code of the second token. For XRP, use all 0's for both the token and the issuer. diff --git a/docs/references/protocol/ledger-data/ledger-entry-types/bridge.md b/docs/references/protocol/ledger-data/ledger-entry-types/bridge.md index 0d2457df1a..fa92b1208d 100644 --- a/docs/references/protocol/ledger-data/ledger-entry-types/bridge.md +++ b/docs/references/protocol/ledger-data/ledger-entry-types/bridge.md @@ -1,11 +1,13 @@ --- seo: - description: A single cross-chain bridge that connects and enables value to move efficiently between two blockchains. + description: A single cross-chain bridge that connects and enables value to move efficiently between two blockchains. labels: - Interoperability status: not_enabled --- + # Bridge + [[Source]](https://github.com/XRPLF/rippled/blob/f64cf9187affd69650907d0d92e097eb29693945/include/xrpl/protocol/detail/ledger_entries.macro#L212-L223 "Source") The `Bridge` ledger entry represents a single cross-chain bridge that connects the XRP Ledger with another blockchain, such as its sidechain, and enables value in the form of XRP and other tokens (IOUs) to move efficiently between the two blockchains. You can create a bridge by sending an [XChainCreateBridge transaction][]. @@ -41,30 +43,28 @@ The `Bridge` ledger entry represents a single cross-chain bridge that connects t } ``` - ## Bridge Fields In addition to the [common fields](../common-fields.md), {% code-page-name /%} entries have the following fields: -| Field | JSON Type | Internal Type | Required? | Description | -|:---------------------------|:--------------------|:------------------|:----------|:------------| -| `Account` | String | Account | Yes | The account that submitted the `XChainCreateBridge` transaction on the blockchain. | -| `MinAccountCreateAmount` | [Currency Amount][] | Amount | No | The minimum amount, in XRP, required for an `XChainAccountCreateCommit` transaction. If this isn't present, the `XChainAccountCreateCommit` transaction will fail. This field can only be present on XRP-XRP bridges. | -| `SignatureReward` | [Currency Amount][] | Amount | Yes | The total amount, in XRP, to be rewarded for providing a signature for cross-chain transfer or for signing for the cross-chain reward. This amount will be split among the signers. | -| `XChainAccountClaimCount` | Number | UInt64 | Yes | A counter used to order the execution of account create transactions. It is incremented every time a `XChainAccountCreateCommit` transaction is "claimed" on the destination chain. When the "claim" transaction is run on the destination chain, the `XChainAccountClaimCount` must match the value that the `XChainAccountCreateCount` had at the time the `XChainAccountClaimCount` was run on the source chain. This orders the claims so that they run in the same order that the `XChainAccountCreateCommit` transactions ran on the source chain, to prevent transaction replay. | -| `XChainAccountCreateCount` | Number | UInt64 | Yes | A counter used to order the execution of account create transactions. It is incremented every time a successful `XChainAccountCreateCommit` transaction is run for the source chain. | -| `XChainBridge` | XChainBridge | XChain_Bridge | Yes | The door accounts and assets of the bridge this object correlates to. | -| `XChainClaimID` | Number | UInt64 | Yes | The value of the next `XChainClaimID` to be created. | - +| Field | JSON Type | Internal Type | Required? | Description | +| :------------------------- | :------------------ | :------------ | :-------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Account` | String | Account | Yes | The account that submitted the `XChainCreateBridge` transaction on the blockchain. | +| `MinAccountCreateAmount` | [Currency Amount][] | Amount | No | The minimum amount, in XRP, required for an `XChainAccountCreateCommit` transaction. If this isn't present, the `XChainAccountCreateCommit` transaction will fail. This field can only be present on XRP-XRP bridges. | +| `SignatureReward` | [Currency Amount][] | Amount | Yes | The total amount, in XRP, to be rewarded for providing a signature for cross-chain transfer or for signing for the cross-chain reward. This amount will be split among the signers. | +| `XChainAccountClaimCount` | Number | UInt64 | Yes | A counter used to order the execution of account create transactions. It is incremented every time a `XChainAccountCreateCommit` transaction is "claimed" on the destination chain. When the "claim" transaction is run on the destination chain, the `XChainAccountClaimCount` must match the value that the `XChainAccountCreateCount` had at the time the `XChainAccountClaimCount` was run on the source chain. This orders the claims so that they run in the same order that the `XChainAccountCreateCommit` transactions ran on the source chain, to prevent transaction replay. | +| `XChainAccountCreateCount` | Number | UInt64 | Yes | A counter used to order the execution of account create transactions. It is incremented every time a successful `XChainAccountCreateCommit` transaction is run for the source chain. | +| `XChainBridge` | XChainBridge | XChain_Bridge | Yes | The door accounts and assets of the bridge this object correlates to. | +| `XChainClaimID` | Number | UInt64 | Yes | The value of the next `XChainClaimID` to be created. | ### XChainBridge Fields -| Field | JSON Type | Internal Type | Required? | Description | -|:--------------------|:----------|:------------------|:----------|:----------------| -| `IssuingChainDoor` | String | Account | Yes | The door account on the issuing chain. For an XRP-XRP bridge, this must be the genesis account (the account that is created when the network is first started, which contains all of the XRP). | -| `IssuingChainIssue` | Issue | Issue | Yes | The asset that is minted and burned on the issuing chain. For an IOU-IOU bridge, the issuer of the asset must be the door account on the issuing chain, to avoid supply issues. | -| `LockingChainDoor` | String | Account | Yes | The door account on the locking chain. | -| `LockingChainIssue` | Issue | Issue | Yes | The asset that is locked and unlocked on the locking chain. | +| Field | JSON Type | Internal Type | Required? | Description | +| :------------------ | :-------- | :------------ | :-------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `IssuingChainDoor` | String | Account | Yes | The door account on the issuing chain. For an XRP-XRP bridge, this must be the genesis account (the account that is created when the network is first started, which contains all of the XRP). | +| `IssuingChainIssue` | Issue | Issue | Yes | The asset that is minted and burned on the issuing chain. For an IOU-IOU bridge, the issuer of the asset must be the door account on the issuing chain, to avoid supply issues. | +| `LockingChainDoor` | String | Account | Yes | The door account on the locking chain. | +| `LockingChainIssue` | Issue | Issue | Yes | The asset that is locked and unlocked on the locking chain. | ## See Also diff --git a/docs/references/protocol/ledger-data/ledger-entry-types/check.md b/docs/references/protocol/ledger-data/ledger-entry-types/check.md index 3c3b4b1ca0..4e72ee6cc8 100644 --- a/docs/references/protocol/ledger-data/ledger-entry-types/check.md +++ b/docs/references/protocol/ledger-data/ledger-entry-types/check.md @@ -1,10 +1,12 @@ --- seo: - description: A check that can be redeemed for money by its destination. + description: A check that can be redeemed for money by its destination. labels: - Checks --- + # Check + [[Source]](https://github.com/XRPLF/rippled/blob/f64cf9187affd69650907d0d92e097eb29693945/include/xrpl/protocol/detail/ledger_entries.macro#L50-L63 "Source") A `Check` entry describes a [check](../../../../concepts/payment-types/checks.md), similar to a paper personal check, which can be cashed by its destination to get money from its sender. You can create a check by sending a [CheckCreate transaction][]. @@ -36,41 +38,39 @@ A `Check` entry describes a [check](../../../../concepts/payment-types/checks.md In addition to the [common fields](../common-fields.md), {% code-page-name /%} entries have the following fields: -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:--------------------|:-----------------|:------------------|:----------|:----------------| -| `Account` | String | Account | Yes | The sender of the Check. Cashing the Check debits this address's balance. | -| `Destination` | String | Account | Yes | The intended recipient of the Check. Only this address can cash the Check, using a [CheckCash transaction][]. | -| `DestinationNode` | String | UInt64 | No | A hint indicating which page of the destination's owner directory links to this object, in case the directory consists of multiple pages. | -| `DestinationTag` | Number | UInt32 | No | An arbitrary tag to further specify the destination for this Check, such as a hosted recipient at the destination address. | -| `Expiration` | Number | UInt32 | No | Indicates the time after which this Check is considered expired. See [Specifying Time][] for details. | -| `InvoiceID` | String | UInt256 | No | Arbitrary 256-bit hash provided by the sender as a specific reason or identifier for this Check. | -| `OwnerNode` | String | UInt64 | Yes | A hint indicating which page of the sender's owner directory links to this object, in case the directory consists of multiple pages. | -| `PreviousTxnID` | String | UInt256 | Yes | The identifying hash of the transaction that most recently modified this object. | -| `PreviousTxnLgrSeq` | Number | UInt32 | Yes |The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this object. | +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :------------------ | :--------------- | :---------------- | :-------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Account` | String | Account | Yes | The sender of the Check. Cashing the Check debits this address's balance. | +| `Destination` | String | Account | Yes | The intended recipient of the Check. Only this address can cash the Check, using a [CheckCash transaction][]. | +| `DestinationNode` | String | UInt64 | No | A hint indicating which page of the destination's owner directory links to this object, in case the directory consists of multiple pages. | +| `DestinationTag` | Number | UInt32 | No | An arbitrary tag to further specify the destination for this Check, such as a hosted recipient at the destination address. | +| `Expiration` | Number | UInt32 | No | Indicates the time after which this Check is considered expired. See [Specifying Time][] for details. | +| `InvoiceID` | String | UInt256 | No | Arbitrary 256-bit hash provided by the sender as a specific reason or identifier for this Check. | +| `OwnerNode` | String | UInt64 | Yes | A hint indicating which page of the sender's owner directory links to this object, in case the directory consists of multiple pages. | +| `PreviousTxnID` | String | UInt256 | Yes | The identifying hash of the transaction that most recently modified this object. | +| `PreviousTxnLgrSeq` | Number | UInt32 | Yes | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this object. | | `SendMax` | String or Object | Amount | Yes | The maximum amount of currency this Check can debit the sender. If the Check is successfully cashed, the destination is credited in the same currency for up to this amount. | -| `Sequence` | Number | UInt32 | Yes | The sequence number of the [CheckCreate transaction][] that created this check. | -| `SourceTag` | Number | UInt32 | No | An arbitrary tag to further specify the source for this Check, such as a hosted recipient at the sender's address. | - +| `Sequence` | Number | UInt32 | Yes | The sequence number of the [CheckCreate transaction][] that created this check. | +| `SourceTag` | Number | UInt32 | No | An arbitrary tag to further specify the source for this Check, such as a hosted recipient at the sender's address. | ## {% $frontmatter.seo.title %} Flags There are no flags defined for {% code-page-name /%} entries. - ## {% $frontmatter.seo.title %} Reserve {% code-page-name /%} entries count as one item towards the owner reserve of the sender of the Check as long as the entry is in the ledger. This reserve is freed up when the check is cashed or canceled. - ## Check ID Format + [[Source]](https://github.com/XRPLF/rippled/blob/70d5c624e8cf732a362335642b2f5125ce4b43c1/src/libxrpl/protocol/Indexes.cpp#L335-L339 "Source") The ID of a `Check` entry is the [SHA-512Half][] of the following values, concatenated in order: -* The Check space key (`0x0043`) -* The AccountID of the sender of the [CheckCreate transaction][] that created the `Check` -* The `Sequence` number of the [CheckCreate transaction][] that created the `Check`. - If the CheckCreate transaction used a [Ticket](../../../../concepts/accounts/tickets.md), use the `TicketSequence` value instead. +- The Check space key (`0x0043`) +- The AccountID of the sender of the [CheckCreate transaction][] that created the `Check` +- The `Sequence` number of the [CheckCreate transaction][] that created the `Check`. + If the CheckCreate transaction used a [Ticket](../../../../concepts/accounts/tickets.md), use the `TicketSequence` value instead. See the tutorial showing how to [Send a Check](../../../../tutorials/how-tos/use-specialized-payment-types/use-checks/send-a-check.md). diff --git a/docs/references/protocol/ledger-data/ledger-entry-types/credential.md b/docs/references/protocol/ledger-data/ledger-entry-types/credential.md index 098a246f12..0b6416d5ee 100644 --- a/docs/references/protocol/ledger-data/ledger-entry-types/credential.md +++ b/docs/references/protocol/ledger-data/ledger-entry-types/credential.md @@ -1,8 +1,9 @@ --- seo: - description: A credential, which can be used to preauthorize payments or gain access to specific permissioned domains. + description: A credential, which can be used to preauthorize payments or gain access to specific permissioned domains. status: not_enabled --- + # Credential A `Credential` entry represents a [credential](../../../../concepts/decentralized-storage/credentials.md), which contains an attestation about a _subject_ account from a _credential issuer_ account. The meaning of the attestation is defined by the issuer. @@ -13,16 +14,16 @@ A `Credential` entry represents a [credential](../../../../concepts/decentralize ```json { - "LedgerEntryType": "Credential", - "Flags": 65536, - "Subject": "rsUiUMpnrgxQp24dJYZDhmV4bE3aBtQyt8", - "Issuer": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "IssuerNode": "0000000000000000", - "CredentialType": "6D795F63726564656E7469616C", - "PreviousTxnID": "8089451B193AAD110ACED3D62BE79BB523658545E6EE8B7BB0BE573FED9BCBFB", - "PreviousTxnLgrSeq": 234644, - "SubjectNode": "0000000000000000", - "index": "A738A1E6E8505E1FC77BBB9FEF84FF9A9C609F2739E0F9573CDD6367100A0AA9" + "LedgerEntryType": "Credential", + "Flags": 65536, + "Subject": "rsUiUMpnrgxQp24dJYZDhmV4bE3aBtQyt8", + "Issuer": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "IssuerNode": "0000000000000000", + "CredentialType": "6D795F63726564656E7469616C", + "PreviousTxnID": "8089451B193AAD110ACED3D62BE79BB523658545E6EE8B7BB0BE573FED9BCBFB", + "PreviousTxnLgrSeq": 234644, + "SubjectNode": "0000000000000000", + "index": "A738A1E6E8505E1FC77BBB9FEF84FF9A9C609F2739E0F9573CDD6367100A0AA9" } ``` @@ -32,24 +33,24 @@ A `Credential` entry represents a [credential](../../../../concepts/decentralize In addition to the [common fields](../common-fields.md), {% code-page-name /%} entries have the following fields: -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:--------------------|:---------------------|:------------------|:----------|:----------------| +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :------------------ | :------------------- | :---------------- | :-------- | :------------------------------------------------------------------------------------------------------------------------------------- | | `CredentialType` | String - Hexadecimal | Blob | Yes | Arbitrary data defining the type of credential this entry represents. The minimum length is 1 byte and the maximum length is 64 bytes. | -| `Expiration` | Number | UInt32 | No | Time after which the credential is expired, in [seconds since the Ripple Epoch][]. -| `Issuer` | String - [Address][] | AccountID | Yes | The account that issued this credential. | -| `IssuerNode` | String | UInt64 | Yes | A hint indicating which page of the issuer's directory links to this entry, in case the directory consists of multiple pages. | -| `PreviousTxnID` | String - [Hash][] | UInt256 | Yes | The identifying hash of the transaction that most recently modified this entry. | -| `PreviousTxnLgrSeq` | Number | UInt32 | Yes | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this entry. | -| `Subject` | String - [Address][] | AccountID | Yes | The account that this credential is for. | -| `SubjectNode` | String | UInt64 | Yes | A hint indicating which page of the subject's owner directory links to this entry, in case the directory consists of multiple pages. | -| `URI` | String - Hexadecimal | Blob | No | Arbitrary additional data about the credential, for example a URL where a W3C-formatted Verifiable Credential can be retrieved. | +| `Expiration` | Number | UInt32 | No | Time after which the credential is expired, in [seconds since the Ripple Epoch][]. | +| `Issuer` | String - [Address][] | AccountID | Yes | The account that issued this credential. | +| `IssuerNode` | String | UInt64 | Yes | A hint indicating which page of the issuer's directory links to this entry, in case the directory consists of multiple pages. | +| `PreviousTxnID` | String - [Hash][] | UInt256 | Yes | The identifying hash of the transaction that most recently modified this entry. | +| `PreviousTxnLgrSeq` | Number | UInt32 | Yes | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this entry. | +| `Subject` | String - [Address][] | AccountID | Yes | The account that this credential is for. | +| `SubjectNode` | String | UInt64 | Yes | A hint indicating which page of the subject's owner directory links to this entry, in case the directory consists of multiple pages. | +| `URI` | String - Hexadecimal | Blob | No | Arbitrary additional data about the credential, for example a URL where a W3C-formatted Verifiable Credential can be retrieved. | ## Credential Flags Credential entries can have the following flags combined in the `Flags` field: -| Flag Name | Hex Value | Decimal Value | Description | -|---------------|--------------|---------------|-------------| +| Flag Name | Hex Value | Decimal Value | Description | +| ------------- | ------------ | ------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `lsfAccepted` | `0x00010000` | 65536 | If enabled, the subject of the credential has accepted the credential. Otherwise, the issuer created the credential but the subject has not yet accepted it, meaning it is not yet valid. | ## Credential Reserve @@ -60,10 +61,10 @@ A credential entry counts as one item towards the owner reserve of the subject a The unique ID of a Credential entry is the SHA-512Half hash of the following values concatenated in order: -* The `Credential` space key (`0x0044`); -* The `Subject` field's value; -* The `Issuer` field's value; and -* The `CredentialType` field's value. +- The `Credential` space key (`0x0044`); +- The `Subject` field's value; +- The `Issuer` field's value; and +- The `CredentialType` field's value. ## See Also diff --git a/docs/references/protocol/ledger-data/ledger-entry-types/delegate.md b/docs/references/protocol/ledger-data/ledger-entry-types/delegate.md index 88db81e174..f2a2a9a672 100644 --- a/docs/references/protocol/ledger-data/ledger-entry-types/delegate.md +++ b/docs/references/protocol/ledger-data/ledger-entry-types/delegate.md @@ -1,12 +1,14 @@ --- seo: - description: A record of which permissions have been granted to another account. + description: A record of which permissions have been granted to another account. labels: - Accounts - Permissions status: not_enabled --- + # Delegate + [[Source]](https://github.com/XRPLF/rippled/blob/1e01cd34f7a216092ed779f291b43324c167167a/include/xrpl/protocol/detail/ledger_entries.macro#L475-L482 "Source") A `Delegate` ledger entry stores a set of permissions that an account has delegated to another account. You create a `Delegate` entry by sending a [DelegateSet transaction][]. @@ -39,22 +41,22 @@ A `Delegate` ledger entry stores a set of permissions that an account has delega In addition to the [common fields](../common-fields.md), {% code-page-name /%} entries have the following fields: -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:--------------------|:---------------------|:------------------|:----------|:-------------| -| `Account` | String - [Address][] | AccountID | Yes | The account delegating permissions to another, also called the _delegating account_. | -| `Authorize` | String - [Address][] | AccountID | Yes | The account receiving permissions, also called the _delegate_. | -| `Permissions` | Array | Array | Yes | A list of permissions granted, with at least 1 and at most 10 items. Each item in the list is a [Permission Object](#permission-objects). | -| `OwnerNode` | String - Hexadecimal | UInt64 | Yes | A hint indicating which page of the delegating account's owner directory links to this object, in case the directory consists of multiple pages. -| `PreviousTxnID` | String - Hexadecimal | UInt256 | Yes | The identifying hash of the transaction that most recently modified this object. | -| `PreviousTxnLgrSeq` | Number | UInt32 | Yes |The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this object. | +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :------------------ | :------------------- | :---------------- | :-------- | :----------------------------------------------------------------------------------------------------------------------------------------------- | +| `Account` | String - [Address][] | AccountID | Yes | The account delegating permissions to another, also called the _delegating account_. | +| `Authorize` | String - [Address][] | AccountID | Yes | The account receiving permissions, also called the _delegate_. | +| `Permissions` | Array | Array | Yes | A list of permissions granted, with at least 1 and at most 10 items. Each item in the list is a [Permission Object](#permission-objects). | +| `OwnerNode` | String - Hexadecimal | UInt64 | Yes | A hint indicating which page of the delegating account's owner directory links to this object, in case the directory consists of multiple pages. | +| `PreviousTxnID` | String - Hexadecimal | UInt256 | Yes | The identifying hash of the transaction that most recently modified this object. | +| `PreviousTxnLgrSeq` | Number | UInt32 | Yes | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this object. | ### Permission Objects Each item in the `Permissions` array is an inner object with the following nested field: -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:------------------|:---------------------|:------------------|:----------|:----------------| -| `PermissionValue` | String or Number | UInt32 | Yes | A permission that has been granted to the delegate, which can be either a transaction type or a granular permission. See [Permission Values](../../data-types/permission-values.md) for a full list. | +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :---------------- | :--------------- | :---------------- | :-------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `PermissionValue` | String or Number | UInt32 | Yes | A permission that has been granted to the delegate, which can be either a transaction type or a granular permission. See [Permission Values](../../data-types/permission-values.md) for a full list. | ## {% $frontmatter.seo.title %} Flags diff --git a/docs/references/protocol/ledger-data/ledger-entry-types/depositpreauth.md b/docs/references/protocol/ledger-data/ledger-entry-types/depositpreauth.md index 8a3a39f9ad..147f3546c1 100644 --- a/docs/references/protocol/ledger-data/ledger-entry-types/depositpreauth.md +++ b/docs/references/protocol/ledger-data/ledger-entry-types/depositpreauth.md @@ -1,10 +1,12 @@ --- seo: - description: A record of preauthorization for sending payments to an account that requires authorization. + description: A record of preauthorization for sending payments to an account that requires authorization. labels: - Security --- + # DepositPreauth + [[Source]](https://github.com/XRPLF/rippled/blob/f64cf9187affd69650907d0d92e097eb29693945/include/xrpl/protocol/detail/ledger_entries.macro#L246-L253 "Source") A `DepositPreauth` entry tracks a preauthorization from one account. You can create a preauthorization by sending a [DepositPreauth transaction][], but it has no effect unless you are using [Deposit Authorization](../../../../concepts/accounts/depositauth.md). @@ -18,6 +20,7 @@ You can preauthorize a specific _account_ or a _set of credentials_. In the case {% tabs %} {% tab label="Single account preauthorization" %} + ```json { "LedgerEntryType": "DepositPreauth", @@ -30,19 +33,23 @@ You can preauthorize a specific _account_ or a _set of credentials_. In the case "index": "4A255038CC3ADCC1A9C91509279B59908251728D0DAADB248FFE297D0F7E068C" } ``` + {% /tab %} {% tab label="Credential preauthorization" %} + ```json { "LedgerEntryType": "DepositPreauth", "Account": "rsUiUMpnrgxQp24dJYZDhmV4bE3aBtQyt8", - "AuthorizeCredentials": [{ - "Credential": { - "Issuer": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "CredentialType": "6D795F63726564656E7469616C" + "AuthorizeCredentials": [ + { + "Credential": { + "Issuer": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "CredentialType": "6D795F63726564656E7469616C" + } } - }], + ], "Flags": 0, "OwnerNode": "0000000000000000", "PreviousTxnID": "FD2A4E9E317C7FEF112D22ADEB9E2C6DC3C2AB6E2AD96A50B76EBB9DEB39EA77", @@ -50,6 +57,7 @@ You can preauthorize a specific _account_ or a _set of credentials_. In the case "index": "F2B8550ADF60FD268157262C1C54E1D1014BDEA361CE848B6F48556348327E5F" } ``` + {% /tab %} {% /tabs %} @@ -57,14 +65,14 @@ You can preauthorize a specific _account_ or a _set of credentials_. In the case In addition to the [common fields](../common-fields.md), {% code-page-name /%} entries have the following fields: -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:--------------------|:------------------|:------------------|:----------|:------------| -| `Account` | String | Account | Yes | The account that granted the preauthorization. (The destination of the preauthorized payments.) | -| `Authorize` | String | Account | No | The account that received the preauthorization. (The sender of the preauthorized payments.) | -| `AuthorizeCredentials` | Array | Array | No | The set of credentials that received preauthorization. (Any account with these credentials is preauthorized.) This array has a minimum length of 1 and a maximum length of 8 credentials. | -| `OwnerNode` | String | UInt64 | Yes | A hint indicating which page of the sender's owner directory links to this object, in case the directory consists of multiple pages. **Note:** The object does not contain a direct link to the owner directory containing it, since that value can be derived from the `Account`. | -| `PreviousTxnID` | String - [Hash][] | UInt256 | Yes | The identifying hash of the transaction that most recently modified this object. | -| `PreviousTxnLgrSeq` | Number | UInt32 | Yes | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this object. | +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :--------------------- | :---------------- | :---------------- | :-------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Account` | String | Account | Yes | The account that granted the preauthorization. (The destination of the preauthorized payments.) | +| `Authorize` | String | Account | No | The account that received the preauthorization. (The sender of the preauthorized payments.) | +| `AuthorizeCredentials` | Array | Array | No | The set of credentials that received preauthorization. (Any account with these credentials is preauthorized.) This array has a minimum length of 1 and a maximum length of 8 credentials. | +| `OwnerNode` | String | UInt64 | Yes | A hint indicating which page of the sender's owner directory links to this object, in case the directory consists of multiple pages. **Note:** The object does not contain a direct link to the owner directory containing it, since that value can be derived from the `Account`. | +| `PreviousTxnID` | String - [Hash][] | UInt256 | Yes | The identifying hash of the transaction that most recently modified this object. | +| `PreviousTxnLgrSeq` | Number | UInt32 | Yes | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this object. | Each entry must have _either_ the `Authorize` field or the `AuthorizeCredentials` field, but not both. @@ -72,9 +80,9 @@ Each entry must have _either_ the `Authorize` field or the `AuthorizeCredentials If the entry has an `AuthorizeCredentials` field, each member of that array is an inner object, identifying one credential to require, with the following format: -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:-----------------|:---------------------|:------------------|:----------|:----------------| -| `Issuer` | String - [Address][] | AccountID | Yes | The issuer of the credential. | +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :--------------- | :------------------- | :---------------- | :-------- | :------------------------------------- | +| `Issuer` | String - [Address][] | AccountID | Yes | The issuer of the credential. | | `CredentialType` | String - Hexadecimal | Blob | Yes | The credential type of the credential. | To be preauthorized, an account must hold all the specified credentials. @@ -95,17 +103,17 @@ There are two formats for the ID of a `DepositPreauth` entry, depending on wheth In this case, the ID is the [SHA-512Half][] of the following values, concatenated in order: -* The DepositPreauth space key (`0x0070`) -* The AccountID of the owner of this object (the sender of the [DepositPreauth transaction][] that created this object; in other words, the one that granted the preauthorization) -* The AccountID in the `Authorize` field +- The DepositPreauth space key (`0x0070`) +- The AccountID of the owner of this object (the sender of the [DepositPreauth transaction][] that created this object; in other words, the one that granted the preauthorization) +- The AccountID in the `Authorize` field ### Credential Preauthorization In this case, the ID is the [SHA-512Half][] of the following values, concatenated in order: -* The Credential Preauth space key (`0x0050`) -* The AccountID of the owner of this object (the sender of the [DepositPreauth transaction][] that created this object; in other words, the one that granted the preauthorization) -* The contents of the `AuthorizeCredentials` field. +- The Credential Preauth space key (`0x0050`) +- The AccountID of the owner of this object (the sender of the [DepositPreauth transaction][] that created this object; in other words, the one that granted the preauthorization) +- The contents of the `AuthorizeCredentials` field. {% amendment-disclaimer name="Credentials" /%} diff --git a/docs/references/protocol/ledger-data/ledger-entry-types/did.md b/docs/references/protocol/ledger-data/ledger-entry-types/did.md index 2f8522d445..80daf9e504 100644 --- a/docs/references/protocol/ledger-data/ledger-entry-types/did.md +++ b/docs/references/protocol/ledger-data/ledger-entry-types/did.md @@ -1,10 +1,12 @@ --- seo: - description: A Decentralized Identifier (DID). + description: A Decentralized Identifier (DID). labels: - DID --- + # DID + [[Source]](https://github.com/XRPLF/rippled/blob/f64cf9187affd69650907d0d92e097eb29693945/include/xrpl/protocol/detail/ledger_entries.macro#L69-L77 "Source") A `DID` ledger entry holds references to, or data associated with, a single [Decentralized Identifier (DID)](../../../../concepts/decentralized-storage/decentralized-identifiers.md). You can create or modify a DID by sending a [DIDSet transaction][]. @@ -15,16 +17,16 @@ A `DID` ledger entry holds references to, or data associated with, a single [Dec ```json { - "Account": "rpfqJrXg5uidNo2ZsRhRY6TiF1cvYmV9Fg", - "DIDDocument": "646F63", - "Data": "617474657374", - "Flags": 0, - "LedgerEntryType": "DID", - "OwnerNode": "0", - "PreviousTxnID": "A4C15DA185E6092DF5954FF62A1446220C61A5F60F0D93B4B09F708778E41120", - "PreviousTxnLgrSeq": 4, - "URI": "6469645F6578616D706C65", - "index": "46813BE38B798B3752CA590D44E7FEADB17485649074403AD1761A2835CE91FF" + "Account": "rpfqJrXg5uidNo2ZsRhRY6TiF1cvYmV9Fg", + "DIDDocument": "646F63", + "Data": "617474657374", + "Flags": 0, + "LedgerEntryType": "DID", + "OwnerNode": "0", + "PreviousTxnID": "A4C15DA185E6092DF5954FF62A1446220C61A5F60F0D93B4B09F708778E41120", + "PreviousTxnLgrSeq": 4, + "URI": "6469645F6578616D706C65", + "index": "46813BE38B798B3752CA590D44E7FEADB17485649074403AD1761A2835CE91FF" } ``` @@ -32,27 +34,24 @@ A `DID` ledger entry holds references to, or data associated with, a single [Dec In addition to the [common fields](../common-fields.md), {% code-page-name /%} entries have the following fields: -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:--------------------|:----------|:------------------|:----------|--------------| -| `Account` | String | AccountID | Yes | The account that controls the DID. | -| `DIDDocument` | String | Blob | No | The W3C standard DID document associated with the DID. The `DIDDocument` field isn't checked for validity and is limited to a maximum length of 256 bytes. | -| `Data` | String | Blob | No | The public attestations of identity credentials associated with the DID. The `Data` field isn't checked for validity and is limited to a maximum length of 256 bytes. | -| `OwnerNode` | String | UInt64 | Yes | A hint indicating which page of the sender's owner directory links to this entry, in case the directory consists of multiple pages. | -| `PreviousTxnID` | String | UInt256 | Yes | The identifying hash of the transaction that most recently modified this object. | -| `PreviousTxnLgrSeq` | Number | UInt32 | Yes | The index of the ledger that contains the transaction that most recently modified this object. | +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :------------------ | :-------- | :---------------- | :-------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Account` | String | AccountID | Yes | The account that controls the DID. | +| `DIDDocument` | String | Blob | No | The W3C standard DID document associated with the DID. The `DIDDocument` field isn't checked for validity and is limited to a maximum length of 256 bytes. | +| `Data` | String | Blob | No | The public attestations of identity credentials associated with the DID. The `Data` field isn't checked for validity and is limited to a maximum length of 256 bytes. | +| `OwnerNode` | String | UInt64 | Yes | A hint indicating which page of the sender's owner directory links to this entry, in case the directory consists of multiple pages. | +| `PreviousTxnID` | String | UInt256 | Yes | The identifying hash of the transaction that most recently modified this object. | +| `PreviousTxnLgrSeq` | Number | UInt32 | Yes | The index of the ledger that contains the transaction that most recently modified this object. | | `URI` | String | Blob | No | The Universal Resource Identifier that points to the corresponding DID document or the data associated with the DID. This field can be an HTTP(S) URL or IPFS URI. This field isn't checked for validity and is limited to a maximum length of 256 bytes. | - ## {% $frontmatter.seo.title %} Reserve The account that creates the {% code-page-name /%} object incurs one owner reserve. - ## {% $frontmatter.seo.title %} Flags There are no flags defined for {% code-page-name /%} entries. - ## DID ID Format The ID of a `DID` entry is the [SHA-512Half][] of the following values, concatenated in order: diff --git a/docs/references/protocol/ledger-data/ledger-entry-types/directorynode.md b/docs/references/protocol/ledger-data/ledger-entry-types/directorynode.md index 3e571d183a..bbb942090c 100644 --- a/docs/references/protocol/ledger-data/ledger-entry-types/directorynode.md +++ b/docs/references/protocol/ledger-data/ledger-entry-types/directorynode.md @@ -1,20 +1,22 @@ --- seo: - description: A set of links to other ledger entries, either objects owned by an account or trades in the decentralized exchange. + description: A set of links to other ledger entries, either objects owned by an account or trades in the decentralized exchange. labels: - Data Retention - Decentralized Exchange --- + # DirectoryNode + [[Source]](https://github.com/XRPLF/rippled/blob/7e24adbdd0b61fb50967c4c6d4b27cc6d81b33f3/include/xrpl/protocol/detail/ledger_entries.macro#L177-L192 "Source") The `DirectoryNode` ledger entry type provides a list of links to other entries in the ledger's state data. A single conceptual _Directory_ takes the form of a doubly linked list, with one or more DirectoryNode entries each containing up to 32 [IDs of other entries](../common-fields.md). The first DirectoryNode entry is called the root of the directory, and all entries other than the root can be added or deleted as necessary. There are three kinds of directory: -* _Owner directories_ list other entries owned by an account, such as [`RippleState` (trust line)](ripplestate.md) or [`Offer`](offer.md) entries. -* _Offer directories_ list the offers available in the [decentralized exchange](../../../../concepts/tokens/decentralized-exchange/index.md). A single offer directory contains all the offers that have the same exchange rate for the same token (currency code and issuer). -* _NFT Offer directories_ list buy and sell offers for NFTs. Each NFT has up to two directories, one for buy offers, the other for sell offers. +- _Owner directories_ list other entries owned by an account, such as [`RippleState` (trust line)](ripplestate.md) or [`Offer`](offer.md) entries. +- _Offer directories_ list the offers available in the [decentralized exchange](../../../../concepts/tokens/decentralized-exchange/index.md). A single offer directory contains all the offers that have the same exchange rate for the same token (currency code and issuer). +- _NFT Offer directories_ list buy and sell offers for NFTs. Each NFT has up to two directories, one for buy offers, the other for sell offers. All types of directories are automatically updated by the protocol as necessary. @@ -23,141 +25,140 @@ All types of directories are automatically updated by the protocol as necessary. {% tabs %} {% tab label="Offer Directory" %} + ```json { - "ExchangeRate": "4e133c40576f7c00", - "Flags": 0, - "Indexes": [ - "353E55E7A0B0E82D16DF6E748D48BDAFE4C56045DF5A8B0ED723FF3C38A4787A" - ], - "LedgerEntryType": "DirectoryNode", - "PreviousTxnID": "0F79E60C8642A23658ECB29D939499EA0F28D804077B7EE16613BE0C813A2DD6", - "PreviousTxnLgrSeq": 91448326, - "RootIndex": "79C54A4EBD69AB2EADCE313042F36092BE432423CC6A4F784E133C40576F7C00", - "TakerGetsCurrency": "0000000000000000000000000000000000000000", - "TakerGetsIssuer": "0000000000000000000000000000000000000000", - "TakerPaysCurrency": "0000000000000000000000005553440000000000", - "TakerPaysIssuer": "2ADB0B3959D60A6E6991F729E1918B7163925230", - "index": "79C54A4EBD69AB2EADCE313042F36092BE432423CC6A4F784E133C40576F7C00" + "ExchangeRate": "4e133c40576f7c00", + "Flags": 0, + "Indexes": ["353E55E7A0B0E82D16DF6E748D48BDAFE4C56045DF5A8B0ED723FF3C38A4787A"], + "LedgerEntryType": "DirectoryNode", + "PreviousTxnID": "0F79E60C8642A23658ECB29D939499EA0F28D804077B7EE16613BE0C813A2DD6", + "PreviousTxnLgrSeq": 91448326, + "RootIndex": "79C54A4EBD69AB2EADCE313042F36092BE432423CC6A4F784E133C40576F7C00", + "TakerGetsCurrency": "0000000000000000000000000000000000000000", + "TakerGetsIssuer": "0000000000000000000000000000000000000000", + "TakerPaysCurrency": "0000000000000000000000005553440000000000", + "TakerPaysIssuer": "2ADB0B3959D60A6E6991F729E1918B7163925230", + "index": "79C54A4EBD69AB2EADCE313042F36092BE432423CC6A4F784E133C40576F7C00" } ``` + {% /tab %} {% tab label="Owner Directory" %} + ```json { - "Flags": 0, - "IndexNext": "0", - "IndexPrevious": "0", - "Indexes": [ - "1192C0191D1B8861AA6F5A84A575E0CBE4B97574A5E8B3D7B7AD64643EE38CA7", - "16A0674079229DB47EDDF4FD83AFEA59ADAC944DD5F16EA5D9C989ED8F918AE0", - "1F65776E640C97B76E365763E97E5B59B6C4CDBB46FB7C8869D1712528985E6D", - "35D6A9F578E63C875EDB6348E55EFADBD300A0817290276D8CC3DD3587FAD4B3", - "36B236D80688C2975A5D24935020B75BEB4B26F5115D71943356E86CCD3B8CE4", - "39E8F12D519E5C6C1AC36434D7340281C362508B7D5BC863166C8FE8621A124C", - "4DF14053E1BD697C5B4A4A1A7BA8988BD802F0CD5DB6ED9C2AC74AD8A7B91A35", - "5E2D97ABAB0D2BE1948F275823096597E3359DD0696CF2938A712169394236BE", - "678CE03A2F8157FBF7D5EFDED2D55D127F60EC26BC4F51DBC8FB05DF370B248E", - "8250CE37F6495903C1F7D16E072E8823ECE06FA73F011A0F8D79D5626BF581BB", - "C353DA9F84EB02B4206D6F5166A9277916559115EEDF7B841C38E4473084A010", - "CB2D979DE863A7AF792A12D6C4518E2B299EF782E361705DE7F1D0077521D521", - "DFA7CB434A3D9D782C2FACEB95F431476D3AAAD62078C0FBE8C115E00039C6F5" - ], - "LedgerEntryType": "DirectoryNode", - "Owner": "rBTwLga3i2gz3doX6Gva3MgEV8ZCD8jjah", - "PreviousTxnID": "CB802FC111C4C03B1E1D762E813D3F1F47347E57C68D00B5F92822C417C2484C", - "PreviousTxnLgrSeq": 91448329, - "RootIndex": "0A2600D85F8309FE7F75A490C19613F1CE0C37483B856DB69B8140154C2335F3", - "index": "0A2600D85F8309FE7F75A490C19613F1CE0C37483B856DB69B8140154C2335F3" + "Flags": 0, + "IndexNext": "0", + "IndexPrevious": "0", + "Indexes": [ + "1192C0191D1B8861AA6F5A84A575E0CBE4B97574A5E8B3D7B7AD64643EE38CA7", + "16A0674079229DB47EDDF4FD83AFEA59ADAC944DD5F16EA5D9C989ED8F918AE0", + "1F65776E640C97B76E365763E97E5B59B6C4CDBB46FB7C8869D1712528985E6D", + "35D6A9F578E63C875EDB6348E55EFADBD300A0817290276D8CC3DD3587FAD4B3", + "36B236D80688C2975A5D24935020B75BEB4B26F5115D71943356E86CCD3B8CE4", + "39E8F12D519E5C6C1AC36434D7340281C362508B7D5BC863166C8FE8621A124C", + "4DF14053E1BD697C5B4A4A1A7BA8988BD802F0CD5DB6ED9C2AC74AD8A7B91A35", + "5E2D97ABAB0D2BE1948F275823096597E3359DD0696CF2938A712169394236BE", + "678CE03A2F8157FBF7D5EFDED2D55D127F60EC26BC4F51DBC8FB05DF370B248E", + "8250CE37F6495903C1F7D16E072E8823ECE06FA73F011A0F8D79D5626BF581BB", + "C353DA9F84EB02B4206D6F5166A9277916559115EEDF7B841C38E4473084A010", + "CB2D979DE863A7AF792A12D6C4518E2B299EF782E361705DE7F1D0077521D521", + "DFA7CB434A3D9D782C2FACEB95F431476D3AAAD62078C0FBE8C115E00039C6F5" + ], + "LedgerEntryType": "DirectoryNode", + "Owner": "rBTwLga3i2gz3doX6Gva3MgEV8ZCD8jjah", + "PreviousTxnID": "CB802FC111C4C03B1E1D762E813D3F1F47347E57C68D00B5F92822C417C2484C", + "PreviousTxnLgrSeq": 91448329, + "RootIndex": "0A2600D85F8309FE7F75A490C19613F1CE0C37483B856DB69B8140154C2335F3", + "index": "0A2600D85F8309FE7F75A490C19613F1CE0C37483B856DB69B8140154C2335F3" } ``` + {% /tab %} {% tab label="NFT Offer Directory" %} + ```json { - "Flags": 1, - "Indexes": [ - "68227B203065DED9EEB8B73FC952494A1DA6A69CEABEAA99923836EB5E77C95A" - ], - "LedgerEntryType": "DirectoryNode", - "NFTokenID": "000822603EA060FD1026C04B2D390CC132D07D600DA9B082CB5CE9AC0487E50B", - "PreviousTxnID": "EF8A9AD51E7CC6BBD219C3C980EC3145C7B0814ED3184471FD952D9D23A1918D", - "PreviousTxnLgrSeq": 91448417, - "RootIndex": "0EC5802BD1AB56527A9DE524CCA2A2BA25E1085CCE7EA112940ED115FFF91EE2", - "index": "0EC5802BD1AB56527A9DE524CCA2A2BA25E1085CCE7EA112940ED115FFF91EE2" + "Flags": 1, + "Indexes": ["68227B203065DED9EEB8B73FC952494A1DA6A69CEABEAA99923836EB5E77C95A"], + "LedgerEntryType": "DirectoryNode", + "NFTokenID": "000822603EA060FD1026C04B2D390CC132D07D600DA9B082CB5CE9AC0487E50B", + "PreviousTxnID": "EF8A9AD51E7CC6BBD219C3C980EC3145C7B0814ED3184471FD952D9D23A1918D", + "PreviousTxnLgrSeq": 91448417, + "RootIndex": "0EC5802BD1AB56527A9DE524CCA2A2BA25E1085CCE7EA112940ED115FFF91EE2", + "index": "0EC5802BD1AB56527A9DE524CCA2A2BA25E1085CCE7EA112940ED115FFF91EE2" } ``` + {% /tab %} {% /tabs %} ## {% $frontmatter.seo.title %} Fields -| Name | JSON Type | [Internal Type][] | Required? | Description | -|:--------------------|:----------|:------------------|:----------|:------------| +| Name | JSON Type | [Internal Type][] | Required? | Description | +| :------------------ | :-------- | :---------------- | :-------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `DomainID` | String | UInt256 | No | (Offer directories only) The ledger entry ID of a permissioned domain. If present, this order book belongs to the corresponding [Permissioned DEX](../../../../concepts/tokens/decentralized-exchange/permissioned-dexes.md). Otherwise, this order book is part of the open DEX. {% amendment-disclaimer name="PermissionedDEX" /%} | -| `ExchangeRate` | String | UInt64 | No | (Offer directories only) **DEPRECATED**. Do not use. | -| `Indexes` | Array | Vector256 | Yes | The contents of this directory: an array of IDs of other objects. | -| `IndexNext` | Number | UInt64 | No | If this directory consists of multiple pages, this ID links to the next object in the chain, wrapping around at the end. | -| `IndexPrevious` | Number | UInt64 | No | If this directory consists of multiple pages, this ID links to the previous object in the chain, wrapping around at the beginning. | -| `NFTokenID` | String | UInt256 | No | (NFT offer directories only) ID of the NFT in a buy or sell offer. | -| `Owner` | String | AccountID | No | (Owner directories only) The address of the account that owns the objects in this directory. | -| `PreviousTxnID` | String | UInt256 | No | The identifying hash of the transaction that most recently modified this entry. {% amendment-disclaimer name="fixPreviousTxnID" /%} | -| `PreviousTxnLgrSeq` | Number | UInt32 | No | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this entry. {% amendment-disclaimer name="fixPreviousTxnID" /%} | -| `RootIndex` | String | UInt256 | Yes | The ID of root object for this directory. | -| `TakerGetsCurrency` | String | UInt160 | No | (Offer directories only) The currency code of the `TakerGets` amount from the offers in this directory. | -| `TakerGetsIssuer` | String | UInt160 | No | (Offer directories only) The issuer of the `TakerGets` amount from the offers in this directory. | -| `TakerPaysCurrency` | String | UInt160 | No | (Offer directories only) The currency code of the `TakerPays` amount from the offers in this directory. | -| `TakerPaysIssuer` | String | UInt160 | No | (Offer directories only) The issuer of the `TakerPays` amount from the offers in this directory. | - +| `ExchangeRate` | String | UInt64 | No | (Offer directories only) **DEPRECATED**. Do not use. | +| `Indexes` | Array | Vector256 | Yes | The contents of this directory: an array of IDs of other objects. | +| `IndexNext` | Number | UInt64 | No | If this directory consists of multiple pages, this ID links to the next object in the chain, wrapping around at the end. | +| `IndexPrevious` | Number | UInt64 | No | If this directory consists of multiple pages, this ID links to the previous object in the chain, wrapping around at the beginning. | +| `NFTokenID` | String | UInt256 | No | (NFT offer directories only) ID of the NFT in a buy or sell offer. | +| `Owner` | String | AccountID | No | (Owner directories only) The address of the account that owns the objects in this directory. | +| `PreviousTxnID` | String | UInt256 | No | The identifying hash of the transaction that most recently modified this entry. {% amendment-disclaimer name="fixPreviousTxnID" /%} | +| `PreviousTxnLgrSeq` | Number | UInt32 | No | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this entry. {% amendment-disclaimer name="fixPreviousTxnID" /%} | +| `RootIndex` | String | UInt256 | Yes | The ID of root object for this directory. | +| `TakerGetsCurrency` | String | UInt160 | No | (Offer directories only) The currency code of the `TakerGets` amount from the offers in this directory. | +| `TakerGetsIssuer` | String | UInt160 | No | (Offer directories only) The issuer of the `TakerGets` amount from the offers in this directory. | +| `TakerPaysCurrency` | String | UInt160 | No | (Offer directories only) The currency code of the `TakerPays` amount from the offers in this directory. | +| `TakerPaysIssuer` | String | UInt160 | No | (Offer directories only) The issuer of the `TakerPays` amount from the offers in this directory. | ## {% $frontmatter.seo.title %} Flags {% code-page-name /%} entries can have the following values in the `Flags` field: -| Flag Name | Hex Value | Decimal Value | Description | -|:-----------------------|:-------------|:--------------|:------------| -| `lsfNFTokenBuyOffers` | `0x00000001` | 1 | This directory contains NFT buy offers. | +| Flag Name | Hex Value | Decimal Value | Description | +| :--------------------- | :----------- | :------------ | :--------------------------------------- | +| `lsfNFTokenBuyOffers` | `0x00000001` | 1 | This directory contains NFT buy offers. | | `lsfNFTokenSellOffers` | `0x00000002` | 2 | This directory contains NFT sell offers. | Owner directories and offer directories for fungible tokens do not use flags; their `Flags` value is always 0. - ## {% $frontmatter.seo.title %} Reserve {% code-page-name /%} entries do not require a reserve. - ## Directory ID Formats There are three different formulas for creating the ID of a DirectoryNode, depending on which of the following the DirectoryNode represents: -* The first page (also called the root) of an Owner or NFT Offer directory -* The first page of an Offer directory, with variants for the open DEX and permissioned DEX {% amendment-disclaimer name="PermissionedDEX" /%} -* Later pages of any type +- The first page (also called the root) of an Owner or NFT Offer directory +- The first page of an Offer directory, with variants for the open DEX and permissioned DEX {% amendment-disclaimer name="PermissionedDEX" /%} +- Later pages of any type The first page of an Owner directory or NFT Offer directory has an ID that is the [SHA-512Half][] of the following values, concatenated in order: -* The Owner directory space key (`0x004F`) -* The AccountID from the `Owner` field. +- The Owner directory space key (`0x004F`) +- The AccountID from the `Owner` field. The first page of an Offer directory has a special ID: the higher 192 bits define the order book, and the remaining 64 bits define the exchange rate of the offers in that directory. (The ID is big-endian, so the book is in the more significant bits, which come first, and the quality is in the less significant bits which come last.) This provides a way to iterate through an order book from best offers to worst. Specifically: the first 192 bits are the first 192 bits of the [SHA-512Half][] of the following values, concatenated in order: -* The Book directory space key (`0x0042`) -* The 160-bit currency code from the `TakerPaysCurrency` -* The 160-bit currency code from the `TakerGetsCurrency` -* The AccountID from the `TakerPaysIssuer` -* The AccountID from the `TakerGetsIssuer` -* The `DomainID` of the permissioned domain this order book belongs to, if part of a permissioned DEX. Omitted for order books in the open DEX. +- The Book directory space key (`0x0042`) +- The 160-bit currency code from the `TakerPaysCurrency` +- The 160-bit currency code from the `TakerGetsCurrency` +- The AccountID from the `TakerPaysIssuer` +- The AccountID from the `TakerGetsIssuer` +- The `DomainID` of the permissioned domain this order book belongs to, if part of a permissioned DEX. Omitted for order books in the open DEX. The lower 64 bits of an Offer directory's ID represent the `TakerPays` amount divided by `TakerGets` amount from the offer(s) in that directory as a 64-bit number in the XRP Ledger's internal amount format. If the DirectoryNode is not the first page in the directory, it has an ID that is the [SHA-512Half][] of the following values, concatenated in order: -* The DirectoryNode space key (`0x0064`) -* The ID of the root DirectoryNode -* The page number of this object. (Since 0 is the root DirectoryNode, this value is an integer 1 or higher.) +- The DirectoryNode space key (`0x0064`) +- The ID of the root DirectoryNode +- The page number of this object. (Since 0 is the root DirectoryNode, this value is an integer 1 or higher.) {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/protocol/ledger-data/ledger-entry-types/escrow.md b/docs/references/protocol/ledger-data/ledger-entry-types/escrow.md index 5a72fa57ea..27fd416463 100644 --- a/docs/references/protocol/ledger-data/ledger-entry-types/escrow.md +++ b/docs/references/protocol/ledger-data/ledger-entry-types/escrow.md @@ -1,10 +1,12 @@ --- seo: - description: An escrow, which holds funds to be released when certain conditions are met. + description: An escrow, which holds funds to be released when certain conditions are met. labels: - Escrow --- + # Escrow + [[Source]](https://github.com/XRPLF/rippled/blob/master/include/xrpl/protocol/detail/ledger_entries.macro#L344-L359 "Source") An `Escrow` ledger entry represents an [escrow](../../../../concepts/payment-types/escrow.md), which holds funds until specific conditions are met. You can create an escrow by sending an [EscrowCreate transaction][]. @@ -15,21 +17,21 @@ An `Escrow` ledger entry represents an [escrow](../../../../concepts/payment-typ ```json { - "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "Amount": "10000", - "CancelAfter": 545440232, - "Condition": "A0258020A82A88B2DF843A54F58772E4A3861866ECDB4157645DD9AE528C1D3AEEDABAB6810120", - "Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "DestinationTag": 23480, - "FinishAfter": 545354132, - "Flags": 0, - "LedgerEntryType": "Escrow", - "OwnerNode": "0000000000000000", - "DestinationNode": "0000000000000000", - "PreviousTxnID": "C44F2EB84196B9AD820313DBEBA6316A15C9A2D35787579ED172B87A30131DA7", - "PreviousTxnLgrSeq": 28991004, - "SourceTag": 11747, - "index": "DC5F3851D8A1AB622F957761E5963BC5BD439D5C24AC6AD7AC4523F0640244AC" + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "Amount": "10000", + "CancelAfter": 545440232, + "Condition": "A0258020A82A88B2DF843A54F58772E4A3861866ECDB4157645DD9AE528C1D3AEEDABAB6810120", + "Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "DestinationTag": 23480, + "FinishAfter": 545354132, + "Flags": 0, + "LedgerEntryType": "Escrow", + "OwnerNode": "0000000000000000", + "DestinationNode": "0000000000000000", + "PreviousTxnID": "C44F2EB84196B9AD820313DBEBA6316A15C9A2D35787579ED172B87A30131DA7", + "PreviousTxnLgrSeq": 28991004, + "SourceTag": 11747, + "index": "DC5F3851D8A1AB622F957761E5963BC5BD439D5C24AC6AD7AC4523F0640244AC" } ``` @@ -37,42 +39,39 @@ An `Escrow` ledger entry represents an [escrow](../../../../concepts/payment-typ In addition to the [common fields](../common-fields.md), {% code-page-name /%} entries have the following fields: -| Name | JSON Type | [Internal Type][] | Required? | Description | -|:--------------------|:----------|:------------------|:----------|:-----------------------| -| `Account` | String | AccountID | Yes | The address of the owner (sender) of this escrow. This is the account that provided the funds, and gets it back if the escrow is canceled. | -| `Amount` | Object or String | Amount | Yes | The amount to be delivered by the payment in escrow. The amount can be XRP, or with the TokenEscrow amendment, a fungible token. {% amendment-disclaimer name="TokenEscrow" mode="updated" /%} | -| `CancelAfter` | Number | UInt32 | No | The escrow can be canceled if and only if this field is present _and_ the time it specifies has passed. Specifically, this is specified as [seconds since the Ripple Epoch][] and it "has passed" if it's earlier than the close time of the previous validated ledger. | -| `Condition` | String | Blob | No | A [PREIMAGE-SHA-256 crypto-condition](https://tools.ietf.org/html/draft-thomas-crypto-conditions-02#section-8.1), as hexadecimal. If present, the [EscrowFinish transaction][] must contain a fulfillment that satisfies this condition. | -| `Destination` | String | AccountID | Yes | The destination address where the XRP is paid if the escrow is successful. | -| `DestinationNode` | String | UInt64 | No | A hint indicating which page of the destination's owner directory links to this object, in case the directory consists of multiple pages. Omitted on escrows created before enabling the [fix1523 amendment][]. | -| `DestinationTag` | Number | UInt32 | No | An arbitrary tag to further specify the destination for this escrow, such as a hosted recipient at the destination address. | -| `FinishAfter` | Number | UInt32 | No | The time, in [seconds since the Ripple Epoch][], after which this escrow can be finished. Any [EscrowFinish transaction][] before this time fails. (Specifically, this is compared with the close time of the previous validated ledger.) | -| `OwnerNode` | String | UInt64 | Yes | A hint indicating which page of the sender's owner directory links to this entry, in case the directory consists of multiple pages. | -| `PreviousTxnID` | String | UInt256 | Yes | The identifying hash of the transaction that most recently modified this entry. | -| `PreviousTxnLgrSeq` | Number | UInt32 | Yes | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this entry. | -| `SourceTag` | Number | UInt32 | No | An arbitrary tag to further specify the source for this escrow, such as a hosted recipient at the owner's address. | -| `TransferRate` | Number | UInt32 | No | The transfer rate or fee to charge when users finish an escrow, locked at the creation of an escrow contract and used during settlement. Applicable to Trust Line Tokens and MPTs only. {% amendment-disclaimer name="TokenEscrow" /%} | -| `IssuerNode` | Number | UInt64 | No | The ledger index of the issuer's directory node associated with the `Escrow`. Used when the issuer is neither the source nor destination account. {% amendment-disclaimer name="TokenEscrow" /%} | - +| Name | JSON Type | [Internal Type][] | Required? | Description | +| :------------------ | :--------------- | :---------------- | :-------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Account` | String | AccountID | Yes | The address of the owner (sender) of this escrow. This is the account that provided the funds, and gets it back if the escrow is canceled. | +| `Amount` | Object or String | Amount | Yes | The amount to be delivered by the payment in escrow. The amount can be XRP, or with the TokenEscrow amendment, a fungible token. {% amendment-disclaimer name="TokenEscrow" mode="updated" /%} | +| `CancelAfter` | Number | UInt32 | No | The escrow can be canceled if and only if this field is present _and_ the time it specifies has passed. Specifically, this is specified as [seconds since the Ripple Epoch][] and it "has passed" if it's earlier than the close time of the previous validated ledger. | +| `Condition` | String | Blob | No | A [PREIMAGE-SHA-256 crypto-condition](https://tools.ietf.org/html/draft-thomas-crypto-conditions-02#section-8.1), as hexadecimal. If present, the [EscrowFinish transaction][] must contain a fulfillment that satisfies this condition. | +| `Destination` | String | AccountID | Yes | The destination address where the XRP is paid if the escrow is successful. | +| `DestinationNode` | String | UInt64 | No | A hint indicating which page of the destination's owner directory links to this object, in case the directory consists of multiple pages. Omitted on escrows created before enabling the [fix1523 amendment][]. | +| `DestinationTag` | Number | UInt32 | No | An arbitrary tag to further specify the destination for this escrow, such as a hosted recipient at the destination address. | +| `FinishAfter` | Number | UInt32 | No | The time, in [seconds since the Ripple Epoch][], after which this escrow can be finished. Any [EscrowFinish transaction][] before this time fails. (Specifically, this is compared with the close time of the previous validated ledger.) | +| `OwnerNode` | String | UInt64 | Yes | A hint indicating which page of the sender's owner directory links to this entry, in case the directory consists of multiple pages. | +| `PreviousTxnID` | String | UInt256 | Yes | The identifying hash of the transaction that most recently modified this entry. | +| `PreviousTxnLgrSeq` | Number | UInt32 | Yes | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this entry. | +| `SourceTag` | Number | UInt32 | No | An arbitrary tag to further specify the source for this escrow, such as a hosted recipient at the owner's address. | +| `TransferRate` | Number | UInt32 | No | The transfer rate or fee to charge when users finish an escrow, locked at the creation of an escrow contract and used during settlement. Applicable to Trust Line Tokens and MPTs only. {% amendment-disclaimer name="TokenEscrow" /%} | +| `IssuerNode` | Number | UInt64 | No | The ledger index of the issuer's directory node associated with the `Escrow`. Used when the issuer is neither the source nor destination account. {% amendment-disclaimer name="TokenEscrow" /%} | ## {% $frontmatter.seo.title %} Flags There are no flags defined for {% code-page-name /%} entries. - ## {% $frontmatter.seo.title %} Reserve {% code-page-name /%} entries count as one item towards the sender's owner reserve as long as the entry is in the ledger. Finishing or canceling the escrow frees up this reserve. - ## Escrow ID Format The ID of an `Escrow` entry is the [SHA-512Half][] of the following values, concatenated in order: -* The Escrow space key (`0x0075`) -* The AccountID of the sender of the [EscrowCreate transaction][] that created the `Escrow` entry -* The Sequence number of the [EscrowCreate transaction][] that created the `Escrow` entry - If the EscrowCreate transaction used a [Ticket](../../../../concepts/accounts/tickets.md), use the `TicketSequence` value instead. +- The Escrow space key (`0x0075`) +- The AccountID of the sender of the [EscrowCreate transaction][] that created the `Escrow` entry +- The Sequence number of the [EscrowCreate transaction][] that created the `Escrow` entry + If the EscrowCreate transaction used a [Ticket](../../../../concepts/accounts/tickets.md), use the `TicketSequence` value instead. ## See Also diff --git a/docs/references/protocol/ledger-data/ledger-entry-types/feesettings.md b/docs/references/protocol/ledger-data/ledger-entry-types/feesettings.md index ec08f202d6..d85c25bf8b 100644 --- a/docs/references/protocol/ledger-data/ledger-entry-types/feesettings.md +++ b/docs/references/protocol/ledger-data/ledger-entry-types/feesettings.md @@ -1,10 +1,12 @@ --- seo: - description: The current base transaction cost and reserve requirements. + description: The current base transaction cost and reserve requirements. labels: - Fees --- + # FeeSettings + [[Source]](https://github.com/XRPLF/rippled/blob/f64cf9187affd69650907d0d92e097eb29693945/include/xrpl/protocol/detail/ledger_entries.macro#L297-L309 "Source") The `FeeSettings` entry contains the current base [transaction cost](../../../../concepts/transactions/transaction-cost.md) and [reserve amounts](../../../../concepts/accounts/reserves.md) as determined by [fee voting](../../../../concepts/consensus-protocol/fee-voting.md). Each ledger version contains **at most one** `FeeSettings` entry. @@ -15,6 +17,7 @@ This ledger entry has two formats, depending on whether the [XRPFees amendment][ {% tabs %} {% tab label="Current Format" %} + ```json { "BaseFeeDrops": "10", @@ -27,20 +30,23 @@ This ledger entry has two formats, depending on whether the [XRPFees amendment][ "index": "4BC50C9B0D8515D3EAAE1E74B29A95804346C491EE1A95BF25E4AAB854A6A651" } ``` + {% /tab %} {% tab label="Legacy Format" %} + ```json { - "BaseFee": "000000000000000A", - "Flags": 0, - "LedgerEntryType": "FeeSettings", - "ReferenceFeeUnits": 10, - "ReserveBase": 20000000, - "ReserveIncrement": 5000000, - "index": "4BC50C9B0D8515D3EAAE1E74B29A95804346C491EE1A95BF25E4AAB854A6A651" + "BaseFee": "000000000000000A", + "Flags": 0, + "LedgerEntryType": "FeeSettings", + "ReferenceFeeUnits": 10, + "ReserveBase": 20000000, + "ReserveIncrement": 5000000, + "index": "4BC50C9B0D8515D3EAAE1E74B29A95804346C491EE1A95BF25E4AAB854A6A651" } ``` + {% /tab %} {% /tabs %} @@ -50,36 +56,34 @@ The fields of the `FeeSettings` ledger entry depend on whether the [XRPFees amen {% tabs %} {% tab label="Current Format" %} -| Name | JSON Type | [Internal Type][] | Required? | Description | +| Name | JSON Type | [Internal Type][] | Required? | Description | |:------------------------|:----------|:------------------|:----------|:-----------------------| -| `BaseFeeDrops` | String | Amount | Yes | The [transaction cost](../../../../concepts/transactions/transaction-cost.md) of the "reference transaction" in drops of XRP. | -| `ReserveBaseDrops` | String | Amount | Yes | The [base reserve](../../../../concepts/accounts/reserves.md#base-reserve-and-owner-reserve) for an account in the XRP Ledger, as drops of XRP. | -| `ReserveIncrementDrops` | String | Amount | Yes | The incremental [owner reserve](../../../../concepts/accounts/reserves.md#base-reserve-and-owner-reserve) for owning objects, as drops of XRP. | -| `PreviousTxnID` | String | UInt256 | No | The identifying hash of the transaction that most recently modified this entry. {% amendment-disclaimer name="fixPreviousTxnID" /%} | -| `PreviousTxnLgrSeq` | Number | UInt32 | No | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this entry. {% amendment-disclaimer name="fixPreviousTxnID" /%} | +| `BaseFeeDrops` | String | Amount | Yes | The [transaction cost](../../../../concepts/transactions/transaction-cost.md) of the "reference transaction" in drops of XRP. | +| `ReserveBaseDrops` | String | Amount | Yes | The [base reserve](../../../../concepts/accounts/reserves.md#base-reserve-and-owner-reserve) for an account in the XRP Ledger, as drops of XRP. | +| `ReserveIncrementDrops` | String | Amount | Yes | The incremental [owner reserve](../../../../concepts/accounts/reserves.md#base-reserve-and-owner-reserve) for owning objects, as drops of XRP. | +| `PreviousTxnID` | String | UInt256 | No | The identifying hash of the transaction that most recently modified this entry. {% amendment-disclaimer name="fixPreviousTxnID" /%} | +| `PreviousTxnLgrSeq` | Number | UInt32 | No | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this entry. {% amendment-disclaimer name="fixPreviousTxnID" /%} | {% /tab %} {% tab label="Legacy Format" %} -| Name | JSON Type | [Internal Type][] | Required? | Description | +| Name | JSON Type | [Internal Type][] | Required? | Description | |:--------------------|:----------|:------------------|:----------|:-----------------------| -| `BaseFee` | String | UInt64 | Yes | The [transaction cost](../../../../concepts/transactions/transaction-cost.md) of the "reference transaction" in drops of XRP as hexadecimal. | -| `ReferenceFeeUnits` | Number | UInt32 | Yes | The `BaseFee` translated into "fee units". | -| `ReserveBase` | Number | UInt32 | Yes | The [base reserve](../../../../concepts/accounts/reserves.md#base-reserve-and-owner-reserve) for an account in the XRP Ledger, as drops of XRP. | -| `ReserveIncrement` | Number | UInt32 | Yes | The incremental [owner reserve](../../../../concepts/accounts/reserves.md#base-reserve-and-owner-reserve) for owning objects, as drops of XRP. | -| `PreviousTxnID` | String | UInt256 | No | The identifying hash of the transaction that most recently modified this entry. {% amendment-disclaimer name="fixPreviousTxnID" /%} | -| `PreviousTxnLgrSeq` | Number | UInt32 | No | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this entry. {% amendment-disclaimer name="fixPreviousTxnID" /%} | +| `BaseFee` | String | UInt64 | Yes | The [transaction cost](../../../../concepts/transactions/transaction-cost.md) of the "reference transaction" in drops of XRP as hexadecimal. | +| `ReferenceFeeUnits` | Number | UInt32 | Yes | The `BaseFee` translated into "fee units". | +| `ReserveBase` | Number | UInt32 | Yes | The [base reserve](../../../../concepts/accounts/reserves.md#base-reserve-and-owner-reserve) for an account in the XRP Ledger, as drops of XRP. | +| `ReserveIncrement` | Number | UInt32 | Yes | The incremental [owner reserve](../../../../concepts/accounts/reserves.md#base-reserve-and-owner-reserve) for owning objects, as drops of XRP. | +| `PreviousTxnID` | String | UInt256 | No | The identifying hash of the transaction that most recently modified this entry. {% amendment-disclaimer name="fixPreviousTxnID" /%} | +| `PreviousTxnLgrSeq` | Number | UInt32 | No | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this entry. {% amendment-disclaimer name="fixPreviousTxnID" /%} | -{% admonition type="danger" name="Warning" %}The JSON format for this ledger entry type is unusual. The `BaseFee`, `ReserveBase`, and `ReserveIncrement` indicate drops of XRP but ***not*** in the usual format for [specifying XRP][Currency Amount].{% /admonition %} +{% admonition type="danger" name="Warning" %}The JSON format for this ledger entry type is unusual. The `BaseFee`, `ReserveBase`, and `ReserveIncrement` indicate drops of XRP but **_not_** in the usual format for [specifying XRP][Currency Amount].{% /admonition %} {% /tab %} {% /tabs %} - ## {% $frontmatter.seo.title %} Flags There are no flags defined for the {% code-page-name /%} entry. - ## FeeSettings ID Format The ID of the `FeeSettings` entry is the hash of the `FeeSettings` space key (`0x0065`) only. This means that the ID is always: diff --git a/docs/references/protocol/ledger-data/ledger-entry-types/index.md b/docs/references/protocol/ledger-data/ledger-entry-types/index.md index 86d22d0293..7411ca2a58 100644 --- a/docs/references/protocol/ledger-data/ledger-entry-types/index.md +++ b/docs/references/protocol/ledger-data/ledger-entry-types/index.md @@ -4,9 +4,9 @@ seo: metadata: indexPage: true --- + # Ledger Entry Types {% partial file="/docs/_snippets/ledger-objects-intro.md" /%} - {% child-pages /%} diff --git a/docs/references/protocol/ledger-data/ledger-entry-types/ledgerhashes.md b/docs/references/protocol/ledger-data/ledger-entry-types/ledgerhashes.md index 66cf457fbf..1c19aad8b1 100644 --- a/docs/references/protocol/ledger-data/ledger-entry-types/ledgerhashes.md +++ b/docs/references/protocol/ledger-data/ledger-entry-types/ledgerhashes.md @@ -1,10 +1,12 @@ --- seo: - description: Lists of prior ledger versions' hashes for history lookup. + description: Lists of prior ledger versions' hashes for history lookup. labels: - Blockchain --- + # LedgerHashes + [[Source]](https://github.com/XRPLF/rippled/blob/f64cf9187affd69650907d0d92e097eb29693945/include/xrpl/protocol/detail/ledger_entries.macro#L202-L206 "Source") (Not to be confused with the ["ledger hash" string data type][Hash], which uniquely identifies a ledger version. This page describes the `LedgerHashes` ledger entry type.) @@ -42,12 +44,11 @@ Example `LedgerHashes` entry (trimmed for length): In addition to the [common fields](../common-fields.md), {% code-page-name /%} entries have the following fields: -| Name | JSON Type | [Internal Type][] | Required? | Description | -|:----------------------|:-----------------|:------------------|:----------|:------------| +| Name | JSON Type | [Internal Type][] | Required? | Description | +| :-------------------- | :--------------- | :---------------- | :-------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `FirstLedgerSequence` | Number | UInt32 | No | **DEPRECATED** Do not use. (The "recent hashes" object on Mainnet has the value `2` in this field as a result of an old software bug. That value gets carried forward as the "recent hashes" object is updated. New "previous history" objects do not have this field, nor do "recent hashes" objects in [parallel networks](../../../../concepts/networks-and-servers/parallel-networks.md) started with more recent versions of `rippled`.) | -| `Hashes` | Array of Strings | Vector256 | Yes | An array of up to 256 ledger hashes. The contents depend on which sub-type of `LedgerHashes` object this is. | -| `LastLedgerSequence` | Number | UInt32 | No | The [Ledger Index][] of the last entry in this object's `Hashes` array. | - +| `Hashes` | Array of Strings | Vector256 | Yes | An array of up to 256 ledger hashes. The contents depend on which sub-type of `LedgerHashes` object this is. | +| `LastLedgerSequence` | Number | UInt32 | No | The [Ledger Index][] of the last entry in this object's `Hashes` array. | ## Recent History LedgerHashes @@ -55,7 +56,6 @@ There is exactly one `LedgerHashes` entry of the "recent history" sub-type in ev Using the "recent history" `LedgerHashes` entry of a given ledger, you can get the hash of any of the 256 ledger versions before it. - ## Previous History LedgerHashes The "previous history" `LedgerHashes` entries collectively contain the hash of every 256th ledger version (also called "flag ledgers") in the full history of the ledger. When the child of a flag ledger closes, the flag ledger's hash is added to the `Hashes` array of the newest "previous history" `LedgerHashes` entry. Every 65536 ledgers, `rippled` creates a new `LedgerHashes` entry, so that each "previous history" entry has the hashes of 256 flag ledgers. @@ -64,13 +64,12 @@ The "previous history" `LedgerHashes` entries collectively contain the hash of e The "previous history" `LedgerHashes` objects act as a [skip list](https://en.wikipedia.org/wiki/Skip_list) so you can get the hash of any historical flag ledger from its index. From there, you can use that flag ledger's "recent history" object to get the hash of any other ledger. - ## {% $frontmatter.seo.title %} Flags There are no flags defined for {% code-page-name /%} entries. - ## LedgerHashes ID Formats + [[Source]](https://github.com/XRPLF/rippled/blob/70d5c624e8cf732a362335642b2f5125ce4b43c1/src/libxrpl/protocol/Indexes.cpp#L195-L211) There are two formats for `LedgerHashes` ledger entry IDs, depending on whether the entry is a "recent history" sub-type or a "previous history" sub-type. @@ -82,6 +81,6 @@ Each **"previous history"** `LedgerHashes` entry has an ID that is the [SHA-512H - The `LedgerHashes` space key (`0x0073`) - The 32-bit [Ledger Index][] of a flag ledger in the object's `Hashes` array, divided by 65536. - {% admonition type="success" name="Tip" %}Dividing by 65536 keeps the most significant 16 bits, which are the same for all the flag ledgers listed in a "previous history" entry, and only those ledgers. You can use this fact to look up the `LedgerHashes` entry that contains the hash of any flag ledger.{% /admonition %} + {% admonition type="success" name="Tip" %}Dividing by 65536 keeps the most significant 16 bits, which are the same for all the flag ledgers listed in a "previous history" entry, and only those ledgers. You can use this fact to look up the `LedgerHashes` entry that contains the hash of any flag ledger.{% /admonition %} {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/protocol/ledger-data/ledger-entry-types/mptoken.md b/docs/references/protocol/ledger-data/ledger-entry-types/mptoken.md index df84be00b5..a5bf8b4916 100644 --- a/docs/references/protocol/ledger-data/ledger-entry-types/mptoken.md +++ b/docs/references/protocol/ledger-data/ledger-entry-types/mptoken.md @@ -1,10 +1,11 @@ --- seo: - description: Multi-Purpose Tokens (MPT) of one issuance held by a specific account. + description: Multi-Purpose Tokens (MPT) of one issuance held by a specific account. labels: - Multi-purpose Tokens, MPTs, Tokens status: not_enabled --- + # MPToken An `MPToken` entry tracks [MPTs](../../../../concepts/tokens/fungible-tokens/multi-purpose-tokens.md) held by an account that is not the token issuer. You can create or delete an empty `MPToken` entry by sending an [MPTokenAuthorize transaction][]. You can send and receive MPTs using several other transaction types including [Payment][] and [OfferCreate][] transactions. @@ -15,12 +16,12 @@ An `MPToken` entry tracks [MPTs](../../../../concepts/tokens/fungible-tokens/mul ```json { - "LedgerEntryType": "MPToken", - "Account": "rajgkBmMxmz161r8bWYH7CQAFZP5bA9oSG", - "MPTokenIssuanceID": "000004C463C52827307480341125DA0577DEFC38405B0E3E", - "Flags": 0, - "MPTAmount": "100000000", - "OwnerNode": "1" + "LedgerEntryType": "MPToken", + "Account": "rajgkBmMxmz161r8bWYH7CQAFZP5bA9oSG", + "MPTokenIssuanceID": "000004C463C52827307480341125DA0577DEFC38405B0E3E", + "Flags": 0, + "MPTAmount": "100000000", + "OwnerNode": "1" } ``` @@ -28,25 +29,24 @@ An `MPToken` entry tracks [MPTs](../../../../concepts/tokens/fungible-tokens/mul In addition to the [common fields](../common-fields.md), {% code-page-name /%} entries have the following fields: -| Field Name | JSON Type | Internal Type | Required? | Description | -|:--------------------|:---------------------|:--------------|:----------|:------------| -| `Account` | String - [Address][] | AccountID | Yes | The owner (holder) of these MPTs. | -| `MPTokenIssuanceID` | String - Hexadecimal | UInt192 | Yes | The `MPTokenIssuance` identifier. | -| `MPTAmount` | String - Number | UInt64 | Yes | The amount of tokens currently held by the owner. The minimum is 0 and the maximum is 263-1. | -| `LockedAmount` | String - Number | UInt64 | No | The amount of tokens currently locked up (for example, in escrow). {% amendment-disclaimer name="TokenEscrow" /%} | -| `PreviousTxnID` | String - [Hash][] | UInt256 | Yes | The identifying hash of the transaction that most recently modified this entry. | -| `PreviousTxnLgrSeq` | Number | UInt32 | Yes | The sequence of the ledger that contains the transaction that most recently modified this object. | +| Field Name | JSON Type | Internal Type | Required? | Description | +| :------------------ | :------------------- | :------------ | :-------- | :------------------------------------------------------------------------------------------------------------------------- | +| `Account` | String - [Address][] | AccountID | Yes | The owner (holder) of these MPTs. | +| `MPTokenIssuanceID` | String - Hexadecimal | UInt192 | Yes | The `MPTokenIssuance` identifier. | +| `MPTAmount` | String - Number | UInt64 | Yes | The amount of tokens currently held by the owner. The minimum is 0 and the maximum is 263-1. | +| `LockedAmount` | String - Number | UInt64 | No | The amount of tokens currently locked up (for example, in escrow). {% amendment-disclaimer name="TokenEscrow" /%} | +| `PreviousTxnID` | String - [Hash][] | UInt256 | Yes | The identifying hash of the transaction that most recently modified this entry. | +| `PreviousTxnLgrSeq` | Number | UInt32 | Yes | The sequence of the ledger that contains the transaction that most recently modified this object. | | `OwnerNode` | String | UInt64 | Yes | A hint indicating which page of the owner directory links to this entry, in case the directory consists of multiple pages. | ### MPToken Flags {% code-page-name /%} entries can have the following flags combined in the `Flags` field: -| Flag Name | Flag Value | Description | -|:------------------|:-----------|:--------------------------------------------| -| `lsfMPTLocked` | `0x00000001` | If enabled, indicates that the MPT owned by this account is currently locked and cannot be used in any XRP transactions other than sending value back to the issuer. | -| `lsfMPTAuthorized` | `0x00000002` | (Only applicable for allow-listing) If set, indicates that the issuer has authorized the holder for the MPT. This flag can be set using a `MPTokenAuthorize` transaction; it can also be "un-set" using a `MPTokenAuthorize` transaction specifying the `tfMPTUnauthorize` flag. | - +| Flag Name | Flag Value | Description | +| :----------------- | :----------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `lsfMPTLocked` | `0x00000001` | If enabled, indicates that the MPT owned by this account is currently locked and cannot be used in any XRP transactions other than sending value back to the issuer. | +| `lsfMPTAuthorized` | `0x00000002` | (Only applicable for allow-listing) If set, indicates that the issuer has authorized the holder for the MPT. This flag can be set using a `MPTokenAuthorize` transaction; it can also be "un-set" using a `MPTokenAuthorize` transaction specifying the `tfMPTUnauthorize` flag. | ## MPToken ID Format diff --git a/docs/references/protocol/ledger-data/ledger-entry-types/mptokenissuance.md b/docs/references/protocol/ledger-data/ledger-entry-types/mptokenissuance.md index 3f4148f9ed..cf18d3ef10 100644 --- a/docs/references/protocol/ledger-data/ledger-entry-types/mptokenissuance.md +++ b/docs/references/protocol/ledger-data/ledger-entry-types/mptokenissuance.md @@ -1,10 +1,11 @@ --- seo: - description: Definition of a Multi-Purpose Token (MPT) issuance. + description: Definition of a Multi-Purpose Token (MPT) issuance. labels: - Multi-purpose Tokens, MPTs, Tokens status: not_enabled --- + # MPTokenIssuance An `MPTokenIssuance` entry represents a single [MPT](../../../../concepts/tokens/fungible-tokens/multi-purpose-tokens.md) issuance and holds data associated with the issuance itself. You can create an `MPTokenIssuance` using an [MPTokenIssuanceCreate transaction][], and can delete it with an [MPTokenIssuanceDestroy transaction][]. @@ -15,15 +16,15 @@ An `MPTokenIssuance` entry represents a single [MPT](../../../../concepts/tokens ```json { - "LedgerEntryType": "MPTokenIssuance", - "Flags": 131072, - "Issuer": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", - "AssetScale": 2, - "MaximumAmount": "100000000", - "OutstandingAmount": "100", - "TransferFee": 50000, - "MPTokenMetadata": "7B227469636B6572223A20225442494C4C222C20226E616D65223A2022542D42696C6C205969656C6420546F6B656E222C202264657363223A202241207969656C642D62656172696E6720737461626C65636F696E206261636B65642062792073686F72742D7465726D20552E532E205472656173757269657320616E64206D6F6E6579206D61726B657420696E737472756D656E74732E222C202269636F6E223A202268747470733A2F2F6578616D706C652E6F72672F7462696C6C2D69636F6E2E706E67222C202261737365745F636C617373223A2022727761222C202261737365745F737562636C617373223A20227472656173757279222C20226973737565725F6E616D65223A20224578616D706C65205969656C6420436F2E222C202275726C73223A205B7B2275726C223A202268747470733A2F2F6578616D706C657969656C642E636F2F7462696C6C222C202274797065223A202277656273697465222C20227469746C65223A202250726F647563742050616765227D2C207B2275726C223A202268747470733A2F2F6578616D706C657969656C642E636F2F646F6373222C202274797065223A2022646F6373222C20227469746C65223A20225969656C6420546F6B656E20446F6373227D5D2C20226164646974696F6E616C5F696E666F223A207B22696E7465726573745F72617465223A2022352E303025222C2022696E7465726573745F74797065223A20227661726961626C65222C20227969656C645F736F75726365223A2022552E532E2054726561737572792042696C6C73222C20226D617475726974795F64617465223A2022323034352D30362D3330222C20226375736970223A2022393132373936525830227D7D", - "OwnerNode": "74" + "LedgerEntryType": "MPTokenIssuance", + "Flags": 131072, + "Issuer": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", + "AssetScale": 2, + "MaximumAmount": "100000000", + "OutstandingAmount": "100", + "TransferFee": 50000, + "MPTokenMetadata": "7B227469636B6572223A20225442494C4C222C20226E616D65223A2022542D42696C6C205969656C6420546F6B656E222C202264657363223A202241207969656C642D62656172696E6720737461626C65636F696E206261636B65642062792073686F72742D7465726D20552E532E205472656173757269657320616E64206D6F6E6579206D61726B657420696E737472756D656E74732E222C202269636F6E223A202268747470733A2F2F6578616D706C652E6F72672F7462696C6C2D69636F6E2E706E67222C202261737365745F636C617373223A2022727761222C202261737365745F737562636C617373223A20227472656173757279222C20226973737565725F6E616D65223A20224578616D706C65205969656C6420436F2E222C202275726C73223A205B7B2275726C223A202268747470733A2F2F6578616D706C657969656C642E636F2F7462696C6C222C202274797065223A202277656273697465222C20227469746C65223A202250726F647563742050616765227D2C207B2275726C223A202268747470733A2F2F6578616D706C657969656C642E636F2F646F6373222C202274797065223A2022646F6373222C20227469746C65223A20225969656C6420546F6B656E20446F6373227D5D2C20226164646974696F6E616C5F696E666F223A207B22696E7465726573745F72617465223A2022352E303025222C2022696E7465726573745F74797065223A20227661726961626C65222C20227969656C645F736F75726365223A2022552E532E2054726561737572792042696C6C73222C20226D617475726974795F64617465223A2022323034352D30362D3330222C20226375736970223A2022393132373936525830227D7D", + "OwnerNode": "74" } ``` @@ -35,34 +36,33 @@ By convention, the metadata should decode to JSON data describing what the MPT r In addition to the [common fields](../common-fields.md), {% code-page-name /%} entries have the following fields: -| Field Name | JSON Type | Internal Type | Required? | Description | -|:--------------------|:---------------------|:--------------|:----------|:------------| -| `Issuer` | String - [Address][] | AccountID | Yes | The address of the account that controls both the issuance amounts and characteristics of a particular fungible token. | -| `AssetScale` | Number | UInt8 | Yes | Where to put the decimal place when displaying amounts of this MPT. More formally, the asset scale is a non-negative integer (0, 1, 2, …) such that one standard unit equals 10^(-scale) of a corresponding fractional unit. For example, if a US Dollar Stablecoin has an asset scale of _2_, then 1 unit of that MPT would equal 0.01 US Dollars. This indicates to how many decimal places the MPT can be subdivided. The default is `0`, meaning that the MPT cannot be divided into smaller than 1 unit. | -| `MaximumAmount` | String - Number | UInt64 | No | The maximum number of MPTs that can exist at one time. If omitted, the maximum is currently limited to 263-1. | -| `OutstandingAmount` | String - Number | UInt64 | Yes | The total amount of MPTs of this issuance currently in circulation. This value increases when the issuer sends MPTs to a non-issuer, and decreases whenever the issuer receives MPTs. | -| `LockedAmount` | String - Number | UInt64 | No | The amount of tokens currently locked up (for example, in escrow). This amount is already included in the `OutstandingAmount`. {% amendment-disclaimer name="TokenEscrow" /%} | +| Field Name | JSON Type | Internal Type | Required? | Description | +| :------------------ | :------------------- | :------------ | :-------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Issuer` | String - [Address][] | AccountID | Yes | The address of the account that controls both the issuance amounts and characteristics of a particular fungible token. | +| `AssetScale` | Number | UInt8 | Yes | Where to put the decimal place when displaying amounts of this MPT. More formally, the asset scale is a non-negative integer (0, 1, 2, …) such that one standard unit equals 10^(-scale) of a corresponding fractional unit. For example, if a US Dollar Stablecoin has an asset scale of _2_, then 1 unit of that MPT would equal 0.01 US Dollars. This indicates to how many decimal places the MPT can be subdivided. The default is `0`, meaning that the MPT cannot be divided into smaller than 1 unit. | +| `MaximumAmount` | String - Number | UInt64 | No | The maximum number of MPTs that can exist at one time. If omitted, the maximum is currently limited to 263-1. | +| `OutstandingAmount` | String - Number | UInt64 | Yes | The total amount of MPTs of this issuance currently in circulation. This value increases when the issuer sends MPTs to a non-issuer, and decreases whenever the issuer receives MPTs. | +| `LockedAmount` | String - Number | UInt64 | No | The amount of tokens currently locked up (for example, in escrow). This amount is already included in the `OutstandingAmount`. {% amendment-disclaimer name="TokenEscrow" /%} | | `TransferFee` | Number | UInt16 | Yes | This value specifies the fee, in tenths of a basis point, charged by the issuer for secondary sales of the token, if such sales are allowed at all. Valid values for this field are between 0 and 50,000 inclusive. A value of 1 is equivalent to 1/10 of a basis point or 0.001%, allowing transfer rates between 0% and 50%. A `TransferFee` of 50,000 corresponds to 50%. The default value for this field is 0. Any decimals in the transfer fee are rounded down. The fee can be rounded down to zero if the payment is small. Issuers should make sure that their MPT's `AssetScale` is large enough. | -| `MPTokenMetadata` | String - Hexadecimal | Blob | Yes | Arbitrary metadata about this issuance, in hex format. The limit for this field is 1024 bytes. | -| `OwnerNode` | String - Hexadecimal | UInt64 | Yes | A hint indicating which page of the owner directory links to this entry, in case the directory consists of multiple pages. | -| `PreviousTxnID` | String - Hexadecimal | UInt256 | Yes | The identifying hash of the transaction that most recently modified this entry. | -| `PreviousTxnLgrSeq` | Number | UInt32 | Yes | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this object. | -| `Sequence` | Number | UInt32 | Yes | The `Sequence` (or `Ticket`) number of the transaction that created this issuance. This helps to uniquely identify the issuance and distinguish it from any other later MPT issuances created by this account. | +| `MPTokenMetadata` | String - Hexadecimal | Blob | Yes | Arbitrary metadata about this issuance, in hex format. The limit for this field is 1024 bytes. | +| `OwnerNode` | String - Hexadecimal | UInt64 | Yes | A hint indicating which page of the owner directory links to this entry, in case the directory consists of multiple pages. | +| `PreviousTxnID` | String - Hexadecimal | UInt256 | Yes | The identifying hash of the transaction that most recently modified this entry. | +| `PreviousTxnLgrSeq` | Number | UInt32 | Yes | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this object. | +| `Sequence` | Number | UInt32 | Yes | The `Sequence` (or `Ticket`) number of the transaction that created this issuance. This helps to uniquely identify the issuance and distinguish it from any other later MPT issuances created by this account. | ### MPTokenIssuance Flags -Flags are properties or other options associated with the `MPToken` object. Except for `lsfMPTLocked`, which can be mutated via `MPTokenIssuanceSet` transactions, these flags are immutable: they can only be set during the `MPTokenIssuanceCreate` transaction and cannot be changed later. +Flags are properties or other options associated with the `MPToken` object. Except for `lsfMPTLocked`, which can be mutated via `MPTokenIssuanceSet` transactions, these flags are immutable: they can only be set during the `MPTokenIssuanceCreate` transaction and cannot be changed later. - -| Flag Name | Flag Value | Description | -|:--------------------|:-------------|:------------------------------------------------| -| `lsfMPTLocked` | `0x00000001` | If set, indicates that all balances are locked. | -| `lsfMPTCanLock` | `0x00000002` | If set, indicates that the issuer can lock an individual balance or all balances of this MPT. If not set, the MPT cannot be locked in any way. | -| `lsfMPTRequireAuth` | `0x00000004` | If set, indicates that individual holders must be authorized. This enables issuers to limit who can hold their assets. | -| `lsfMPTCanEscrow` | `0x00000008` | If set, indicates that individual holders can place their balances into an escrow. | -| `lsfMPTCanTrade` | `0x00000010` | If set, indicates that individual holders can trade their balances using the XRP Ledger DEX or AMM. | +| Flag Name | Flag Value | Description | +| :------------------ | :----------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `lsfMPTLocked` | `0x00000001` | If set, indicates that all balances are locked. | +| `lsfMPTCanLock` | `0x00000002` | If set, indicates that the issuer can lock an individual balance or all balances of this MPT. If not set, the MPT cannot be locked in any way. | +| `lsfMPTRequireAuth` | `0x00000004` | If set, indicates that individual holders must be authorized. This enables issuers to limit who can hold their assets. | +| `lsfMPTCanEscrow` | `0x00000008` | If set, indicates that individual holders can place their balances into an escrow. | +| `lsfMPTCanTrade` | `0x00000010` | If set, indicates that individual holders can trade their balances using the XRP Ledger DEX or AMM. | | `lsfMPTCanTransfer` | `0x00000020` | If set, indicates that tokens held by non-issuers can be transferred to other accounts. If not set, indicates that tokens held by non-issuers cannot be transferred except back to the issuer; this enables use cases such as store credit. | -| `lsfMPTCanClawback` | `0x00000040` | If set, indicates that the issuer may use the `Clawback` transaction to claw back value from individual holders. | +| `lsfMPTCanClawback` | `0x00000040` | If set, indicates that the issuer may use the `Clawback` transaction to claw back value from individual holders. | ## MPTokenIssuanceID @@ -80,8 +80,8 @@ The `MPTokenIssuanceID` is a 192-bit integer, concatenated in order: ## See Also - **Transactions:** - - [MPTokenIssuanceCreate transaction][] - - [MPTokenIssuanceDestroy transaction][] - - [MPTokenIssuanceSet transaction][] + - [MPTokenIssuanceCreate transaction][] + - [MPTokenIssuanceDestroy transaction][] + - [MPTokenIssuanceSet transaction][] {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/protocol/ledger-data/ledger-entry-types/negativeunl.md b/docs/references/protocol/ledger-data/ledger-entry-types/negativeunl.md index f25f64ab86..c5314b77fc 100644 --- a/docs/references/protocol/ledger-data/ledger-entry-types/negativeunl.md +++ b/docs/references/protocol/ledger-data/ledger-entry-types/negativeunl.md @@ -1,10 +1,12 @@ --- seo: - description: List of validators currently believed to be offline. + description: List of validators currently believed to be offline. labels: - - Blockchain + - Blockchain --- + # NegativeUNL + [[Source]](https://github.com/XRPLF/rippled/blob/f64cf9187affd69650907d0d92e097eb29693945/include/xrpl/protocol/detail/ledger_entries.macro#L85-L91 "Source") The `NegativeUNL` ledger entry type contains the current status of the [Negative UNL](../../../../concepts/consensus-protocol/negative-unl.md), a list of trusted validators currently believed to be offline. @@ -17,19 +19,19 @@ Each ledger version contains **at most one** `NegativeUNL` entry. If no validato ```json { - "DisabledValidators": [ - { - "DisabledValidator": { - "FirstLedgerSequence": 91371264, - "PublicKey": "ED58F6770DB5DD77E59D28CB650EC3816E2FC95021BB56E720C9A12DA79C58A3AB" - } + "DisabledValidators": [ + { + "DisabledValidator": { + "FirstLedgerSequence": 91371264, + "PublicKey": "ED58F6770DB5DD77E59D28CB650EC3816E2FC95021BB56E720C9A12DA79C58A3AB" } - ], - "Flags": 0, - "LedgerEntryType": "NegativeUNL", - "PreviousTxnID": "8D47FFE664BE6C335108DF689537625855A6A95160CC6D351341B92624D9C5E3", - "PreviousTxnLgrSeq": 91442944, - "index": "2E8A59AA9D3B5B186B0B9E0F62E6C02587CA74A4D778938E957B6357D364B244" + } + ], + "Flags": 0, + "LedgerEntryType": "NegativeUNL", + "PreviousTxnID": "8D47FFE664BE6C335108DF689537625855A6A95160CC6D351341B92624D9C5E3", + "PreviousTxnLgrSeq": 91442944, + "index": "2E8A59AA9D3B5B186B0B9E0F62E6C02587CA74A4D778938E957B6357D364B244" } ``` @@ -37,30 +39,29 @@ Each ledger version contains **at most one** `NegativeUNL` entry. If no validato In addition to the [common fields](../common-fields.md), the {% code-page-name /%} ledger entry has the following fields: -| Name | JSON Type | [Internal Type][] | Required? | Description | -|:----------------------|:----------|:------------------|:----------|:---------------------| -| `DisabledValidators` | Array | Array | No | A list of `DisabledValidator` objects (see below), each representing a trusted validator that is currently disabled. | -| `PreviousTxnID` | String | UInt256 | No | The identifying hash of the transaction that most recently modified this entry. {% amendment-disclaimer name="fixPreviousTxnID" /%} | +| Name | JSON Type | [Internal Type][] | Required? | Description | +| :-------------------- | :-------- | :---------------- | :-------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `DisabledValidators` | Array | Array | No | A list of `DisabledValidator` objects (see below), each representing a trusted validator that is currently disabled. | +| `PreviousTxnID` | String | UInt256 | No | The identifying hash of the transaction that most recently modified this entry. {% amendment-disclaimer name="fixPreviousTxnID" /%} | | `PreviousTxnLgrSeq` | Number | UInt32 | No | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this entry. {% amendment-disclaimer name="fixPreviousTxnID" /%} | -| `ValidatorToDisable` | String | Blob | No | The public key of a trusted validator that is scheduled to be disabled in the next flag ledger. | -| `ValidatorToReEnable` | String | Blob | No | The public key of a trusted validator in the Negative UNL that is scheduled to be re-enabled in the next flag ledger. | +| `ValidatorToDisable` | String | Blob | No | The public key of a trusted validator that is scheduled to be disabled in the next flag ledger. | +| `ValidatorToReEnable` | String | Blob | No | The public key of a trusted validator in the Negative UNL that is scheduled to be re-enabled in the next flag ledger. | ### DisabledValidator Objects + Each `DisabledValidator` object represents one disabled validator. In JSON, a `DisabledValidator` object has one field, `DisabledValidator`, which in turn contains another object with the following fields: -| Name | JSON Type | [Internal Type][] | Description | -|:----------------------|:----------|:------------------|:---------------------| +| Name | JSON Type | [Internal Type][] | Description | +| :-------------------- | :-------- | :---------------- | :--------------------------------------------------------------------- | | `FirstLedgerSequence` | Number | UInt32 | The [ledger index][] when the validator was added to the Negative UNL. | -| `PublicKey` | String | Blob | The master public key of the validator, in hexadecimal. | - +| `PublicKey` | String | Blob | The master public key of the validator, in hexadecimal. | ## {% $frontmatter.seo.title %} Flags There are no flags defined for the {% code-page-name /%} entry. - ## NegativeUNL ID Format The ID of the `NegativeUNL` entry is the hash of the `NegativeUNL` space key (`0x004E`) only. This means that the ID is always: diff --git a/docs/references/protocol/ledger-data/ledger-entry-types/nftokenoffer.md b/docs/references/protocol/ledger-data/ledger-entry-types/nftokenoffer.md index 802fd5cc27..31ef8df339 100644 --- a/docs/references/protocol/ledger-data/ledger-entry-types/nftokenoffer.md +++ b/docs/references/protocol/ledger-data/ledger-entry-types/nftokenoffer.md @@ -1,10 +1,12 @@ --- seo: - description: An offer to buy or sell an NFT. + description: An offer to buy or sell an NFT. labels: - - Non-fungible Tokens, NFTs + - Non-fungible Tokens, NFTs --- + # NFTokenOffer + [[Source]](https://github.com/XRPLF/rippled/blob/f64cf9187affd69650907d0d92e097eb29693945/include/xrpl/protocol/detail/ledger_entries.macro#L34-L44 "Source") An `NFTokenOffer` entry represents an offer to buy, sell or transfer an [NFT](../../../../concepts/tokens/nfts/index.md). You can create an NFT buy or sell offer by sending an [NFTokenCreateOffer transaction][]. @@ -15,44 +17,41 @@ An `NFTokenOffer` entry represents an offer to buy, sell or transfer an [NFT](.. ```json { - "Amount": "1000000", - "Flags": 1, - "LedgerEntryType": "NFTokenOffer", - "NFTokenID": "00081B5825A08C22787716FA031B432EBBC1B101BB54875F0002D2A400000000", - "NFTokenOfferNode": "0", - "Owner": "rhRxL3MNvuKEjWjL7TBbZSDacb8PmzAd7m", - "OwnerNode": "17", - "PreviousTxnID": "BFA9BE27383FA315651E26FDE1FA30815C5A5D0544EE10EC33D3E92532993769", - "PreviousTxnLgrSeq": 75443565, - "index": "AEBABA4FAC212BF28E0F9A9C3788A47B085557EC5D1429E7A8266FB859C863B3" + "Amount": "1000000", + "Flags": 1, + "LedgerEntryType": "NFTokenOffer", + "NFTokenID": "00081B5825A08C22787716FA031B432EBBC1B101BB54875F0002D2A400000000", + "NFTokenOfferNode": "0", + "Owner": "rhRxL3MNvuKEjWjL7TBbZSDacb8PmzAd7m", + "OwnerNode": "17", + "PreviousTxnID": "BFA9BE27383FA315651E26FDE1FA30815C5A5D0544EE10EC33D3E92532993769", + "PreviousTxnLgrSeq": 75443565, + "index": "AEBABA4FAC212BF28E0F9A9C3788A47B085557EC5D1429E7A8266FB859C863B3" } ``` - ### {% $frontmatter.seo.title %} Fields -| Name |JSON Type | [Internal Type][] | Required? | Description | -|:--------------------|:---------------------|:------------------|:------------|:-----------| -| `Amount` | [Currency Amount][] | Amount | Yes | Amount expected or offered for the NFT. If the token has the `lsfOnlyXRP` flag set, the amount must be specified in XRP. Sell offers that specify assets other than XRP must specify a non-zero amount. Sell offers that specify XRP can be 'free' (that is, the Amount field can be equal to `"0"`). | -| `Destination` | String - [Address][] | AccountID | No | The account for which this offer is intended. If present, only that account can accept the offer. | -| `Expiration` | Number | UInt32 | No | The time after which the offer is no longer active. The value is the number of seconds since the Ripple Epoch. | -| `NFTokenID` | String - Hexadecimal | UInt256 | Yes | The `NFTokenID` of the NFT referenced by this offer. | -| `NFTokenOfferNode` | String - Hexadecimal | UInt64 | No | Internal bookkeeping, indicating the page inside the token buy or sell offer directory, as appropriate, where this token is being tracked. This field allows the efficient deletion of offers. | -| `Owner` | String - [Address][] | AccountID | Yes | The account that created and owns this offer. Only the current owner of an NFT can create an offer to sell an NFToken, but offers from past owners can remain in the ledger after the NFT has been transferred. Any account can create an offer to buy an NFT. | -| `OwnerNode` | String - Hexadecimal | UInt64 | No | Internal bookkeeping, indicating the page inside the owner directory where this token is being tracked. This field allows the efficient deletion of offers. | -| `PreviousTxnID` | String - [Hash][] | UInt256 | Yes | Identifying hash of the transaction that most recently modified this object. | -| `PreviousTxnLgrSeq` | Number | UInt32 | Yes | Index of the ledger that contains the transaction that most recently modified this object. | - +| Name | JSON Type | [Internal Type][] | Required? | Description | +| :------------------ | :------------------- | :---------------- | :-------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Amount` | [Currency Amount][] | Amount | Yes | Amount expected or offered for the NFT. If the token has the `lsfOnlyXRP` flag set, the amount must be specified in XRP. Sell offers that specify assets other than XRP must specify a non-zero amount. Sell offers that specify XRP can be 'free' (that is, the Amount field can be equal to `"0"`). | +| `Destination` | String - [Address][] | AccountID | No | The account for which this offer is intended. If present, only that account can accept the offer. | +| `Expiration` | Number | UInt32 | No | The time after which the offer is no longer active. The value is the number of seconds since the Ripple Epoch. | +| `NFTokenID` | String - Hexadecimal | UInt256 | Yes | The `NFTokenID` of the NFT referenced by this offer. | +| `NFTokenOfferNode` | String - Hexadecimal | UInt64 | No | Internal bookkeeping, indicating the page inside the token buy or sell offer directory, as appropriate, where this token is being tracked. This field allows the efficient deletion of offers. | +| `Owner` | String - [Address][] | AccountID | Yes | The account that created and owns this offer. Only the current owner of an NFT can create an offer to sell an NFToken, but offers from past owners can remain in the ledger after the NFT has been transferred. Any account can create an offer to buy an NFT. | +| `OwnerNode` | String - Hexadecimal | UInt64 | No | Internal bookkeeping, indicating the page inside the owner directory where this token is being tracked. This field allows the efficient deletion of offers. | +| `PreviousTxnID` | String - [Hash][] | UInt256 | Yes | Identifying hash of the transaction that most recently modified this object. | +| `PreviousTxnLgrSeq` | Number | UInt32 | Yes | Index of the ledger that contains the transaction that most recently modified this object. | ## {% $frontmatter.seo.title %} Flags {% $frontmatter.seo.title %} entries can have the following flags combined in the `Flags` field: -| Flag Name | Hex Value | Decimal Value | Description | -|------------------|--------------|---------------|-------------| +| Flag Name | Hex Value | Decimal Value | Description | +| ---------------- | ------------ | ------------- | --------------------------------------------------------------------------- | | `lsfSellNFToken` | `0x00000001` | 1 | If enabled, the offer is a sell offer. Otherwise, the offer is a buy offer. | - ## NFTokenOffer Transactions Unlike [Offers for fungible tokens](../../../../concepts/tokens/decentralized-exchange/offers.md), a `NFTokenOffer` is not stored in an order book and is never automatically matched or executed. A buyer must _explicitly_ choose to accept an `NFTokenOffer` that offers to sell a `NFToken`. Similarly, a seller must _explicitly_ choose to accept a specific `NFTokenOffer` that offers to buy a `NFToken` object that they own. @@ -63,24 +62,21 @@ The transactions for `NFToken` trading are: - [NFTokenCancelOffer][] - [NFTokenAcceptOffer][] - ## Locating NFTokenOffer entries Each unique NFT has up to two [directories](directorynode.md): one contains offers to buy the token and the other contains offers to sell the token. (These two directories are created as necessary and deleted if empty.) Marketplaces or other client applications can use these directories to find and display offers to trade `NFToken` objects to users or even automatically match them and accept them. - ### NFTokenOffer Reserve {% code-page-name /%} entries each count as one item towards the owner reserve of the account placing the offer, as long as the entry is in the ledger. Accepting or canceling the offer frees up the reserve. - ### NFTokenOffer ID Format The unique ID (`NFTokenOfferID`) of a `NFTokenOffer` object is the result of the following values concatenated in order: -* The `NFTokenOffer` space key, `0x0037`; -* The `AccountID` of the account placing the offer; and -* The `Sequence` (or `Ticket`) of the `NFTokenCreateOffer` transaction that created the `NFTokenOffer`. +- The `NFTokenOffer` space key, `0x0037`; +- The `AccountID` of the account placing the offer; and +- The `Sequence` (or `Ticket`) of the `NFTokenCreateOffer` transaction that created the `NFTokenOffer`. ## See Also diff --git a/docs/references/protocol/ledger-data/ledger-entry-types/nftokenpage.md b/docs/references/protocol/ledger-data/ledger-entry-types/nftokenpage.md index e6c9df00a9..665fcb406c 100644 --- a/docs/references/protocol/ledger-data/ledger-entry-types/nftokenpage.md +++ b/docs/references/protocol/ledger-data/ledger-entry-types/nftokenpage.md @@ -1,56 +1,50 @@ --- seo: - description: A group of up to 32 NFTs, stored together for efficiency. + description: A group of up to 32 NFTs, stored together for efficiency. labels: - - Non-fungible Tokens, NFTs + - Non-fungible Tokens, NFTs --- + # NFTokenPage + [[Source]](https://github.com/XRPLF/rippled/blob/f64cf9187affd69650907d0d92e097eb29693945/include/xrpl/protocol/detail/ledger_entries.macro#L97-L103 "Source") An `NFTokenPage` entry represents a collection of [NFTs](../../../../concepts/tokens/nfts/index.md) owned by the same account. An account can have multiple `NFTokenPage` entries, which form a doubly linked list. NFT directories are automatically updated when an account mints, burns, buys, or sells NFTs. {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} - ## Example {% $frontmatter.seo.title %} JSON ```json { "LedgerEntryType": "NFTokenPage", - "PreviousPageMin": - "8A244DD75DAF4AC1EEF7D99253A7B83D2297818B2297818B70E264D2000002F2", - "NextPageMin": - "8A244DD75DAF4AC1EEF7D99253A7B83D2297818B2297818BE223B0AE0000010B", - "PreviousTxnID": - "95C8761B22894E328646F7A70035E9DFBECC90EDD83E43B7B973F626D21A0822", - "PreviousTxnLgrSeq": - 42891441, + "PreviousPageMin": "8A244DD75DAF4AC1EEF7D99253A7B83D2297818B2297818B70E264D2000002F2", + "NextPageMin": "8A244DD75DAF4AC1EEF7D99253A7B83D2297818B2297818BE223B0AE0000010B", + "PreviousTxnID": "95C8761B22894E328646F7A70035E9DFBECC90EDD83E43B7B973F626D21A0822", + "PreviousTxnLgrSeq": 42891441, "NFTokens": [ { "NFToken": { - "NFTokenID": - "000B013A95F14B0044F78A264E41713C64B5F89242540EE208C3098E00000D65", + "NFTokenID": "000B013A95F14B0044F78A264E41713C64B5F89242540EE208C3098E00000D65", "URI": "697066733A2F2F62616679626569676479727A74357366703775646D37687537367568377932366E6634646675796C71616266336F636C67747179353566627A6469" } - }, + } /* potentially more objects */ ] } ``` - ## {% $frontmatter.seo.title %} Fields In addition to the [common fields](../common-fields.md), {% code-page-name /%} entries have the following fields: -| Field Name | JSON Type | [Internal Type][] | Required? | Description | -|:--------------------|:----------|:------------------|:----------|:------------| -| `NextPageMin` | String | UInt256 | No | The locator of the next page, if any. Details about this field and how it should be used are outlined below. | -| `NFTokens` | Array | Array | Yes | The collection of `NFToken` objects contained in this NFTokenPage object. This specification places an upper bound of 32 NFToken objects per page. Objects are sorted from low to high with the `NFTokenID` used as the sorting parameter.| -| `PreviousPageMin` | String | UInt256 | No | The locator of the previous page, if any. Details about this field and how it should be used are outlined below. | -| `PreviousTxnID` | String | UInt256 | No | Identifies the transaction ID of the transaction that most recently modified this NFTokenPage object. | -| `PreviousTxnLgrSeq` | Number | UInt32 | No | The sequence of the ledger that contains the transaction that most recently modified this NFTokenPage object.| - +| Field Name | JSON Type | [Internal Type][] | Required? | Description | +| :------------------ | :-------- | :---------------- | :-------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `NextPageMin` | String | UInt256 | No | The locator of the next page, if any. Details about this field and how it should be used are outlined below. | +| `NFTokens` | Array | Array | Yes | The collection of `NFToken` objects contained in this NFTokenPage object. This specification places an upper bound of 32 NFToken objects per page. Objects are sorted from low to high with the `NFTokenID` used as the sorting parameter. | +| `PreviousPageMin` | String | UInt256 | No | The locator of the previous page, if any. Details about this field and how it should be used are outlined below. | +| `PreviousTxnID` | String | UInt256 | No | Identifies the transaction ID of the transaction that most recently modified this NFTokenPage object. | +| `PreviousTxnLgrSeq` | Number | UInt32 | No | The sequence of the ledger that contains the transaction that most recently modified this NFTokenPage object. | ### NFTokenPage ID Format @@ -64,22 +58,18 @@ This uses a function `low96(x)` which returns the low 96 bits of a 256-bit value This design allows for efficient lookups of individual `NFToken` objects without needing to check each `NFTokenPage` in a list. - ### Finding NFTokens To find a specific `NFToken`, you need to know its `NFTokenID` and current owner. Compute the `NFTokenPage` ID as described above. Search for a ledger entry whose identifier is less than or equal to that value. If that entry does not exist or is not an `NFTokenPage`, that account does not own that `NFToken`. - ### Adding NFTokens To add an `NFToken`, find the `NFTokenPage` it should be in (using the same technique as searching for an `NFToken` object) and add it to that page. If the `NFTokenPage` is already full, find the previous and next pages (if any) and balance those three pages, inserting a new `NFTokenPage` as needed. - ### Removing NFTokens Removing `NFToken` objects works like adding them. If the number of `NFToken` objects in the page goes below a certain threshold, the ledger combines the page with a previous or next page if possible. - ## {% $frontmatter.seo.title %} Reserve Each `NFTokenPage` counts as one item towards its owner's [owner reserve](../../../../concepts/accounts/reserves.md#owner-reserves). Burning or trading away enough NFTs to remove the page frees up the reserve. @@ -93,7 +83,7 @@ Because of the way splitting and combining pages works, the actual number of `NF Currently, the reserve per item is {% $env.PUBLIC_OWNER_RESERVE %}. The table below shows how much the **total owner reserve** is for various numbers of NFTs owned under various scenarios: | NFTs Owned | Best Case | Typical | Worst Case | -|:------------|:----------|:--------|:-----------| +| :---------- | :-------- | :------ | :--------- | | 32 or fewer | 0.2 XRP | 0.2 XRP | 0.2 XRP | | 50 | 0.4 XRP | 0.6 XRP | 0.8 XRP | | 200 | 1.4 XRP | 1.8 XRP | 2.6 XRP | diff --git a/docs/references/protocol/ledger-data/ledger-entry-types/offer.md b/docs/references/protocol/ledger-data/ledger-entry-types/offer.md index fd8859b0a2..318069a6dc 100644 --- a/docs/references/protocol/ledger-data/ledger-entry-types/offer.md +++ b/docs/references/protocol/ledger-data/ledger-entry-types/offer.md @@ -1,37 +1,38 @@ --- seo: - description: An offer (order) to trade currencies in the decentralized exchange. + description: An offer (order) to trade currencies in the decentralized exchange. labels: - Decentralized Exchange --- + # Offer + [[Source]](https://github.com/XRPLF/rippled/blob/7e24adbdd0b61fb50967c4c6d4b27cc6d81b33f3/include/xrpl/protocol/detail/ledger_entries.macro#L242-L255 "Source") An `Offer` ledger entry describes an [offer](../../../../concepts/tokens/decentralized-exchange/offers.md) to exchange currencies in the XRP Ledger's [decentralized exchange](../../../../concepts/tokens/decentralized-exchange/index.md). (In finance, this is more traditionally known as an _order_.) You an create a new offer entry by sending an [OfferCreate transaction][] that is not fully executed immediately. An offer can become unfunded through other activities in the network, while remaining in the ledger. When processing transactions, the network automatically removes any unfunded Offers that those transactions come across. (Otherwise, unfunded Offers remain, because _only_ transactions can change the ledger state.) - ## Example {% $frontmatter.seo.title %} JSON ```json { - "Account": "rBqb89MRQJnMPq8wTwEbtz4kvxrEDfcYvt", - "BookDirectory": "ACC27DE91DBA86FC509069EAF4BC511D73128B780F2E54BF5E07A369E2446000", - "BookNode": "0000000000000000", - "Flags": 131072, - "LedgerEntryType": "Offer", - "OwnerNode": "0000000000000000", - "PreviousTxnID": "F0AB71E777B2DA54B86231E19B82554EF1F8211F92ECA473121C655BFC5329BF", - "PreviousTxnLgrSeq": 14524914, - "Sequence": 866, - "TakerGets": { - "currency": "XAG", - "issuer": "r9Dr5xwkeLegBeXq6ujinjSBLQzQ1zQGjH", - "value": "37" - }, - "TakerPays": "79550000000", - "index": "96F76F27D8A327FC48753167EC04A46AA0E382E6F57F32FD12274144D00F1797" + "Account": "rBqb89MRQJnMPq8wTwEbtz4kvxrEDfcYvt", + "BookDirectory": "ACC27DE91DBA86FC509069EAF4BC511D73128B780F2E54BF5E07A369E2446000", + "BookNode": "0000000000000000", + "Flags": 131072, + "LedgerEntryType": "Offer", + "OwnerNode": "0000000000000000", + "PreviousTxnID": "F0AB71E777B2DA54B86231E19B82554EF1F8211F92ECA473121C655BFC5329BF", + "PreviousTxnLgrSeq": 14524914, + "Sequence": 866, + "TakerGets": { + "currency": "XAG", + "issuer": "r9Dr5xwkeLegBeXq6ujinjSBLQzQ1zQGjH", + "value": "37" + }, + "TakerPays": "79550000000", + "index": "96F76F27D8A327FC48753167EC04A46AA0E382E6F57F32FD12274144D00F1797" } ``` @@ -39,45 +40,44 @@ An offer can become unfunded through other activities in the network, while rema In addition to the [common fields](../common-fields.md), {% code-page-name /%} entries have the following fields: -| Name | JSON Type | [Internal Type][] | Required? | Description | -|:--------------------|:---------------------|:------------------|:----------|:------------| -| `Account` | String - [Address][] | AccountID | Yes | The account that owns this offer. | +| Name | JSON Type | [Internal Type][] | Required? | Description | +| :------------------ | :------------------- | :---------------- | :-------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Account` | String - [Address][] | AccountID | Yes | The account that owns this offer. | | `AdditionalBooks` | Array | Array | No | A list of additional offer directories that link to this offer. This field is only present if this is a hybrid offer in a [permissioned DEX](../../../../concepts/tokens/decentralized-exchange/permissioned-dexes.md). The array always contains exactly 1 entry. {% amendment-disclaimer name="PermissionedDEX" /%} | -| `BookDirectory` | String - [Hash][] | UInt256 | Yes | The ID of the [offer directory](directorynode.md) that links to this offer. | -| `BookNode` | String | UInt64 | Yes | A hint indicating which page of the offer directory links to this entry, in case the directory consists of multiple pages. | -| `DomainID` | String - [Hash][] | UInt256 | No | The ledger entry ID of a permissioned domain. If present, this offer belongs to the corresponding [Permissioned DEX](../../../../concepts/tokens/decentralized-exchange/permissioned-dexes.md). {% amendment-disclaimer name="PermissionedDEX" /%} | -| `Expiration` | Number | UInt32 | No | Indicates the time after which this offer is considered unfunded. See [Specifying Time][] for details. | -| `OwnerNode` | String | UInt64 | Yes | A hint indicating which page of the owner directory links to this entry, in case the directory consists of multiple pages. | -| `PreviousTxnID` | String - [Hash][] | UInt256 | Yes | The identifying hash of the transaction that most recently modified this entry. | -| `PreviousTxnLgrSeq` | Number | UInt32 | Yes | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this object. | -| `Sequence` | Number | UInt32 | Yes | The `Sequence` value of the [OfferCreate][] transaction that created this offer. Used in combination with the `Account` to identify this offer. | -| `TakerPays` | [Currency Amount][] | Amount | Yes | The remaining amount and type of currency requested by the offer creator. | -| `TakerGets` | [Currency Amount][] | Amount | Yes | The remaining amount and type of currency being provided by the offer creator. | +| `BookDirectory` | String - [Hash][] | UInt256 | Yes | The ID of the [offer directory](directorynode.md) that links to this offer. | +| `BookNode` | String | UInt64 | Yes | A hint indicating which page of the offer directory links to this entry, in case the directory consists of multiple pages. | +| `DomainID` | String - [Hash][] | UInt256 | No | The ledger entry ID of a permissioned domain. If present, this offer belongs to the corresponding [Permissioned DEX](../../../../concepts/tokens/decentralized-exchange/permissioned-dexes.md). {% amendment-disclaimer name="PermissionedDEX" /%} | +| `Expiration` | Number | UInt32 | No | Indicates the time after which this offer is considered unfunded. See [Specifying Time][] for details. | +| `OwnerNode` | String | UInt64 | Yes | A hint indicating which page of the owner directory links to this entry, in case the directory consists of multiple pages. | +| `PreviousTxnID` | String - [Hash][] | UInt256 | Yes | The identifying hash of the transaction that most recently modified this entry. | +| `PreviousTxnLgrSeq` | Number | UInt32 | Yes | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this object. | +| `Sequence` | Number | UInt32 | Yes | The `Sequence` value of the [OfferCreate][] transaction that created this offer. Used in combination with the `Account` to identify this offer. | +| `TakerPays` | [Currency Amount][] | Amount | Yes | The remaining amount and type of currency requested by the offer creator. | +| `TakerGets` | [Currency Amount][] | Amount | Yes | The remaining amount and type of currency being provided by the offer creator. | ## Offer Flags `Offer` entries can have the following flags combined into the `Flags` field: -| Flag Name | Hex Value | Decimal Value | Corresponding [OfferCreate Flag](../../transactions/types/offercreate.md#offercreate-flags) | Description | -|--------------|--------------|---------------|-------------|------------------------| -| `lsfPassive` | `0x00010000` | 65536 | `tfPassive` | The offer was placed as passive. This has no effect after the offer is placed into the ledger. | -| `lsfSell` | `0x00020000` | 131072 | `tfSell` | The offer was placed as a sell offer. This has no effect after the offer is placed in the ledger, because `tfSell` only matters if you get a better rate than you asked for, which can only happen when the offer is initially placed. | -| `lsfHybrid` | `0x00040000` | 262144 | `tfHybrid` | The offer was placed as a hybrid offer, which means it is listed in a [permissioned DEX](/docs/concepts/tokens/decentralized-exchange/permissioned-dexes.md) and the open DEX. {% amendment-disclaimer name="PermissionedDEX" /%} | +| Flag Name | Hex Value | Decimal Value | Corresponding [OfferCreate Flag](../../transactions/types/offercreate.md#offercreate-flags) | Description | +| ------------ | ------------ | ------------- | ------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `lsfPassive` | `0x00010000` | 65536 | `tfPassive` | The offer was placed as passive. This has no effect after the offer is placed into the ledger. | +| `lsfSell` | `0x00020000` | 131072 | `tfSell` | The offer was placed as a sell offer. This has no effect after the offer is placed in the ledger, because `tfSell` only matters if you get a better rate than you asked for, which can only happen when the offer is initially placed. | +| `lsfHybrid` | `0x00040000` | 262144 | `tfHybrid` | The offer was placed as a hybrid offer, which means it is listed in a [permissioned DEX](/docs/concepts/tokens/decentralized-exchange/permissioned-dexes.md) and the open DEX. {% amendment-disclaimer name="PermissionedDEX" /%} | ## {% $frontmatter.seo.title %} Reserve {% code-page-name /%} entries count as one item towards the owner reserve of the account that placed the offer, as long as the entry is in the ledger. Canceling or consuming the offer frees up the reserve. The reserve is also freed up if the offer is removed because it was found unfunded. - ## Offer ID Format The ID of an `Offer` entry is the [SHA-512Half][] of the following values, concatenated in order: -* The Offer space key (`0x006F`) -* The AccountID of the account placing the offer -* The Sequence number of the [OfferCreate transaction][] that created the offer. +- The Offer space key (`0x006F`) +- The AccountID of the account placing the offer +- The Sequence number of the [OfferCreate transaction][] that created the offer. - If the OfferCreate transaction used a [ticket](../../../../concepts/accounts/tickets.md), use the `TicketSequence` value instead. + If the OfferCreate transaction used a [ticket](../../../../concepts/accounts/tickets.md), use the `TicketSequence` value instead. ## See Also diff --git a/docs/references/protocol/ledger-data/ledger-entry-types/oracle.md b/docs/references/protocol/ledger-data/ledger-entry-types/oracle.md index ce456700aa..d0527cb591 100644 --- a/docs/references/protocol/ledger-data/ledger-entry-types/oracle.md +++ b/docs/references/protocol/ledger-data/ledger-entry-types/oracle.md @@ -1,10 +1,12 @@ --- seo: - description: A record of price information about currency pairs from an outside source. + description: A record of price information about currency pairs from an outside source. labels: - Decentralized Exchange --- + # Oracle + [[Source]](https://github.com/XRPLF/rippled/blob/f64cf9187affd69650907d0d92e097eb29693945/include/xrpl/protocol/detail/ledger_entries.macro#L385-L395 "Source") An `Oracle` ledger entry holds data associated with a single [price oracle](../../../../concepts/decentralized-storage/price-oracles.md), which can store information on up to 10 asset pairs. You can create or modify a price oracle with an [OracleSet transaction][]. @@ -25,9 +27,9 @@ An `Oracle` ledger entry holds data associated with a single [price oracle](../. "BaseAsset": "XRP", "QuoteAsset": "USD", "AssetPrice": 740, - "Scale": 3, + "Scale": 3 } - }, + } ], "LastUpdateTime": 1724871860, "PreviousTxnID": "C53ECF838647FA5A4C780377025FEC7999AB4182590510CA461444B207AB74A9", @@ -35,37 +37,33 @@ An `Oracle` ledger entry holds data associated with a single [price oracle](../. } ``` - ## Oracle Fields -| Field | JSON Type | Internal Type | Required? | Description | -|---------------------|-----------|---------------|-----------|-------------| +| Field | JSON Type | Internal Type | Required? | Description | +| ------------------- | --------- | ------------- | --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `Owner` | String | AccountID | Yes | The [account](../../../../concepts/accounts/index.md) with update and delete privileges for the oracle. It's recommended to set up [multi-signing](../../../../tutorials/how-tos/manage-account-settings/set-up-multi-signing.md) on this account. | -| `Provider` | String | Blob | Yes | An arbitrary value that identifies an oracle provider, such as Chainlink, Band, or DIA. This field is a string, up to 256 ASCII hex encoded characters (`0x20`-`0x7E`). | -| `PriceDataSeries` | Array | Array | Yes | An array of up to 10 `PriceData` objects, each representing the price information for an asset pair. More than five `PriceData` objects require two owner reserves. | -| `LastUpdateTime` | Number | UInt32 | Yes | The time the data was last updated, represented in Unix time. (**Note:** Unlike many other time values on the XRP Ledger, this value does not use the Ripple Epoch.) | -| `URI` | String | Blob | No | An optional Universal Resource Identifier to reference price data off-chain. This field is limited to 256 bytes. | -| `AssetClass` | String | Blob | Yes | Arbitrary string to describe the type of asset, such as _currency_, _commodity_, or _index_. Must be formatted as hexadecimal representing ASCII characters (`0x20`-`0x7E`), maximum 16 bytes. | -| `OwnerNode` | String | UInt64 | Yes | A hint indicating which page of the oracle owner's owner directory links to this entry, in case the directory consists of multiple pages. | -| `PreviousTxnID` | String | UInt256 | Yes | The hash of the previous transaction that modified this entry. | -| `PreviousTxnLgrSeq` | String | UInt32 | Yes | The ledger index that this object was most recently modified or created in. | - +| `Provider` | String | Blob | Yes | An arbitrary value that identifies an oracle provider, such as Chainlink, Band, or DIA. This field is a string, up to 256 ASCII hex encoded characters (`0x20`-`0x7E`). | +| `PriceDataSeries` | Array | Array | Yes | An array of up to 10 `PriceData` objects, each representing the price information for an asset pair. More than five `PriceData` objects require two owner reserves. | +| `LastUpdateTime` | Number | UInt32 | Yes | The time the data was last updated, represented in Unix time. (**Note:** Unlike many other time values on the XRP Ledger, this value does not use the Ripple Epoch.) | +| `URI` | String | Blob | No | An optional Universal Resource Identifier to reference price data off-chain. This field is limited to 256 bytes. | +| `AssetClass` | String | Blob | Yes | Arbitrary string to describe the type of asset, such as _currency_, _commodity_, or _index_. Must be formatted as hexadecimal representing ASCII characters (`0x20`-`0x7E`), maximum 16 bytes. | +| `OwnerNode` | String | UInt64 | Yes | A hint indicating which page of the oracle owner's owner directory links to this entry, in case the directory consists of multiple pages. | +| `PreviousTxnID` | String | UInt256 | Yes | The hash of the previous transaction that modified this entry. | +| `PreviousTxnLgrSeq` | String | UInt32 | Yes | The ledger index that this object was most recently modified or created in. | ### PriceData Fields -| Field | JSON Type | Internal Type | Required? | Description | -|---------------------|-----------|---------------|-----------|-------------| -| `BaseAsset` | String | Currency | Yes | The primary asset in a trading pair. Any valid identifier, such as a stock symbol, bond CUSIP, or currency code is allowed. | -| `QuoteAsset` | String | Currency | Yes | The quote asset in a trading pair. The quote asset denotes the price of one unit of the base asset. | -| `AssetPrice` | String | UInt64 | No | The asset price after applying the `Scale` precision level. It's not included if the last update transaction didn't include the `BaseAsset`/`QuoteAsset` pair. Displayed in hexadecimal format. | -| `Scale` | Number | UInt8 | No | The scaling factor to apply to an asset price. For example, if `Scale` is 6 and original price is 0.155, then the scaled price is 155000. Valid scale ranges are 0-10. It's not included if the last update transaction didn't include the `BaseAsset`/`QuoteAsset` pair. | - +| Field | JSON Type | Internal Type | Required? | Description | +| ------------ | --------- | ------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `BaseAsset` | String | Currency | Yes | The primary asset in a trading pair. Any valid identifier, such as a stock symbol, bond CUSIP, or currency code is allowed. | +| `QuoteAsset` | String | Currency | Yes | The quote asset in a trading pair. The quote asset denotes the price of one unit of the base asset. | +| `AssetPrice` | String | UInt64 | No | The asset price after applying the `Scale` precision level. It's not included if the last update transaction didn't include the `BaseAsset`/`QuoteAsset` pair. Displayed in hexadecimal format. | +| `Scale` | Number | UInt8 | No | The scaling factor to apply to an asset price. For example, if `Scale` is 6 and original price is 0.155, then the scaled price is 155000. Valid scale ranges are 0-10. It's not included if the last update transaction didn't include the `BaseAsset`/`QuoteAsset` pair. | ## Oracle Reserve An `Oracle` object counts as one item for purposes of the [owner reserve](../../../../concepts/accounts/reserves.md#base-reserve-and-owner-reserve) if it contains one to five `PriceData` objects, and counts as two items if it contains six to ten `PriceData` objects. - ## Oracle ID Format The ID of an `Oracle` object is the [SHA-512Half][] of the following values, concatenated in order: @@ -74,18 +72,17 @@ The ID of an `Oracle` object is the [SHA-512Half][] of the following values, con 2. The `Owner` Account ID. 3. The `OracleDocumentID`. - ## Currency Internal Format The `Currency` field type contains 160 bits of arbitrary data representing a currency or asset code. If the data matches the XRPL's standard format for [currency codes][], the API displays it as a string such as `"USD"`; otherwise, it displays as 40 characters of hexadecimal. The following JSON example represents the `912810RR9/USD` trading pair. The `BaseAsset` is a CUSIP code `912810RR9` represented as a hexadecimal string, and the `QuoteAsset` is a standard `USD` currency code: ```json { - "PriceData" : { - "BaseAsset" : "3931323831305252390000000000000000000000", - "QuoteAsset" : "USD", - "Scale" : 1, - "SymbolPrice" : 740 + "PriceData": { + "BaseAsset": "3931323831305252390000000000000000000000", + "QuoteAsset": "USD", + "Scale": 1, + "SymbolPrice": 740 } } ``` diff --git a/docs/references/protocol/ledger-data/ledger-entry-types/paychannel.md b/docs/references/protocol/ledger-data/ledger-entry-types/paychannel.md index 573e54436e..409d8aea0b 100644 --- a/docs/references/protocol/ledger-data/ledger-entry-types/paychannel.md +++ b/docs/references/protocol/ledger-data/ledger-entry-types/paychannel.md @@ -1,10 +1,12 @@ --- seo: - description: A payment channel, which allows for rapid, asynchronous payments. + description: A payment channel, which allows for rapid, asynchronous payments. labels: - Payment Channels --- + # PayChannel + [[Source]](https://github.com/XRPLF/rippled/blob/f64cf9187affd69650907d0d92e097eb29693945/include/xrpl/protocol/detail/ledger_entries.macro#L348-L363 "Source") A `PayChannel` entry represents a [payment channel](../../../../concepts/payment-types/payment-channels.md). You can create a payment channel with a [PaymentChannelCreate transaction][]. @@ -15,23 +17,23 @@ A `PayChannel` entry represents a [payment channel](../../../../concepts/payment ```json { - "Account": "rBqb89MRQJnMPq8wTwEbtz4kvxrEDfcYvt", - "Destination": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "Amount": "4325800", - "Balance": "2323423", - "PublicKey": "32D2471DB72B27E3310F355BB33E339BF26F8392D5A93D3BC0FC3B566612DA0F0A", - "SettleDelay": 3600, - "Expiration": 536027313, - "CancelAfter": 536891313, - "SourceTag": 0, - "DestinationTag": 1002341, - "DestinationNode": "0000000000000000", - "Flags": 0, - "LedgerEntryType": "PayChannel", - "OwnerNode": "0000000000000000", - "PreviousTxnID": "F0AB71E777B2DA54B86231E19B82554EF1F8211F92ECA473121C655BFC5329BF", - "PreviousTxnLgrSeq": 14524914, - "index": "96F76F27D8A327FC48753167EC04A46AA0E382E6F57F32FD12274144D00F1797" + "Account": "rBqb89MRQJnMPq8wTwEbtz4kvxrEDfcYvt", + "Destination": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "Amount": "4325800", + "Balance": "2323423", + "PublicKey": "32D2471DB72B27E3310F355BB33E339BF26F8392D5A93D3BC0FC3B566612DA0F0A", + "SettleDelay": 3600, + "Expiration": 536027313, + "CancelAfter": 536891313, + "SourceTag": 0, + "DestinationTag": 1002341, + "DestinationNode": "0000000000000000", + "Flags": 0, + "LedgerEntryType": "PayChannel", + "OwnerNode": "0000000000000000", + "PreviousTxnID": "F0AB71E777B2DA54B86231E19B82554EF1F8211F92ECA473121C655BFC5329BF", + "PreviousTxnLgrSeq": 14524914, + "index": "96F76F27D8A327FC48753167EC04A46AA0E382E6F57F32FD12274144D00F1797" } ``` @@ -39,22 +41,22 @@ A `PayChannel` entry represents a [payment channel](../../../../concepts/payment In addition to the [common fields](../common-fields.md), {% code-page-name /%} entries have the following fields: -| Name | JSON Type | [Internal Type][] | Required? | Description | -|:--------------------|:----------|:------------------|:----------|:-----------------------| -| `Account` | String | AccountID | Yes | The source address that owns this payment channel. This comes from the sending address of the transaction that created the channel. | -| `Amount` | String | Amount | Yes | Total [XRP, in drops][], that have been allocated to this channel. This includes amounts that have been paid to the destination address. This is initially set by the transaction that created the channel and can be increased if the source address sends a `PaymentChannelFund` transaction. | -| `Balance` | String | Amount | Yes | Total [XRP, in drops][] already paid out by the channel. The difference between this value and the `Amount` field is how much can still be paid to the destination address with `PaymentChannelClaim` transactions. If the channel closes, the remaining difference is returned to the source address. | -| `CancelAfter` | Number | UInt32 | No | The immutable expiration time for this payment channel, in [seconds since the Ripple Epoch][]. This channel is expired if this value is present and smaller than the previous ledger's [`close_time` field](../ledger-header.md). This is optionally set by the transaction that created the channel, and cannot be changed. | -| `Destination` | String | AccountID | Yes | The destination address for this payment channel. While the payment channel is open, this address is the only one that can receive XRP from the channel. This comes from the `Destination` field of the transaction that created the channel. | -| `DestinationTag` | Number | UInt32 | No | An arbitrary tag to further specify the destination for this payment channel, such as a hosted recipient at the destination address. | -| `DestinationNode` | String | UInt64 | No | A hint indicating which page of the destination's owner directory links to this entry, in case the directory consists of multiple pages. Omitted on payment channels created before enabling the [fixPayChanRecipientOwnerDir amendment][]. | -| `Expiration` | Number | UInt32 | No | The mutable expiration time for this payment channel, in [seconds since the Ripple Epoch][]. The channel is expired if this value is present and smaller than the previous ledger's [`close_time` field](../ledger-header.md). See [Channel Expiration](#channel-expiration) for more details. | -| `OwnerNode` | String | UInt64 | Yes | A hint indicating which page of the source address's owner directory links to this entry, in case the directory consists of multiple pages. | -| `PreviousTxnID` | String | UInt256 | Yes | The identifying hash of the transaction that most recently modified this entry. | -| `PreviousTxnLgrSeq` | Number | UInt32 | Yes | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this entry. | +| Name | JSON Type | [Internal Type][] | Required? | Description | +| :------------------ | :-------- | :---------------- | :-------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `Account` | String | AccountID | Yes | The source address that owns this payment channel. This comes from the sending address of the transaction that created the channel. | +| `Amount` | String | Amount | Yes | Total [XRP, in drops][], that have been allocated to this channel. This includes amounts that have been paid to the destination address. This is initially set by the transaction that created the channel and can be increased if the source address sends a `PaymentChannelFund` transaction. | +| `Balance` | String | Amount | Yes | Total [XRP, in drops][] already paid out by the channel. The difference between this value and the `Amount` field is how much can still be paid to the destination address with `PaymentChannelClaim` transactions. If the channel closes, the remaining difference is returned to the source address. | +| `CancelAfter` | Number | UInt32 | No | The immutable expiration time for this payment channel, in [seconds since the Ripple Epoch][]. This channel is expired if this value is present and smaller than the previous ledger's [`close_time` field](../ledger-header.md). This is optionally set by the transaction that created the channel, and cannot be changed. | +| `Destination` | String | AccountID | Yes | The destination address for this payment channel. While the payment channel is open, this address is the only one that can receive XRP from the channel. This comes from the `Destination` field of the transaction that created the channel. | +| `DestinationTag` | Number | UInt32 | No | An arbitrary tag to further specify the destination for this payment channel, such as a hosted recipient at the destination address. | +| `DestinationNode` | String | UInt64 | No | A hint indicating which page of the destination's owner directory links to this entry, in case the directory consists of multiple pages. Omitted on payment channels created before enabling the [fixPayChanRecipientOwnerDir amendment][]. | +| `Expiration` | Number | UInt32 | No | The mutable expiration time for this payment channel, in [seconds since the Ripple Epoch][]. The channel is expired if this value is present and smaller than the previous ledger's [`close_time` field](../ledger-header.md). See [Channel Expiration](#channel-expiration) for more details. | +| `OwnerNode` | String | UInt64 | Yes | A hint indicating which page of the source address's owner directory links to this entry, in case the directory consists of multiple pages. | +| `PreviousTxnID` | String | UInt256 | Yes | The identifying hash of the transaction that most recently modified this entry. | +| `PreviousTxnLgrSeq` | Number | UInt32 | Yes | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this entry. | | `PublicKey` | String | Blob | Yes | Public key, in hexadecimal, of the key pair that can be used to sign claims against this channel. This can be any valid secp256k1 or Ed25519 public key. This is set by the transaction that created the channel and must match the public key used in claims against the channel. The channel source address can also send XRP from this channel to the destination without signed claims. | -| `SettleDelay` | Number | UInt32 | Yes | Number of seconds the source address must wait to close the channel if it still has any XRP in it. Smaller values mean that the destination address has less time to redeem any outstanding claims after the source address requests to close the channel. Can be any value that fits in a 32-bit unsigned integer (0 to 2^32-1). This is set by the transaction that creates the channel. | -| `SourceTag` | Number | UInt32 | No | An arbitrary tag to further specify the source for this payment channel, such as a hosted recipient at the owner's address. | +| `SettleDelay` | Number | UInt32 | Yes | Number of seconds the source address must wait to close the channel if it still has any XRP in it. Smaller values mean that the destination address has less time to redeem any outstanding claims after the source address requests to close the channel. Can be any value that fits in a 32-bit unsigned integer (0 to 2^32-1). This is set by the transaction that creates the channel. | +| `SourceTag` | Number | UInt32 | No | An arbitrary tag to further specify the source for this payment channel, such as a hosted recipient at the owner's address. | ## Channel Expiration @@ -62,7 +64,6 @@ The `Expiration` field of a payment channel is the mutable expiration time, in c When a payment channel expires, at first it remains on the ledger, because only new transactions can modify ledger contents. Transaction processing automatically closes a payment channel when any transaction accesses it after the expiration. To close an expired channel and return the unspent XRP to the owner, some address must send a new PaymentChannelClaim or PaymentChannelFund transaction accessing the channel. - ### Source Address The source address can set the `Expiration` directly with the PaymentChannelFund transaction type. The new value must not be earlier than whichever of the following values is earliest: @@ -87,22 +88,19 @@ The destination address cannot set the `Expiration` field. However, the destinat If any other address attempts to set an `Expiration` field, the transaction fails with the `tecNO_PERMISSION` error code. However, if the channel is already expired, the transaction causes the channel to close and results in `tesSUCCESS` instead. - - ## {% $frontmatter.seo.title %} Reserve {% code-page-name /%} entries count as one item towards the owner reserve of the account that created the payment channel, as long as the entry is in the ledger. Removing the channel frees up the reserve; this can only be done after the channel expires (including as a result of being explicitly closed). - ## PayChannel ID Format The ID of a `PayChannel` entry is the [SHA-512Half][] of the following values, concatenated in order: -* The PayChannel space key (`0x0078`) -* The AccountID of the source account -* The AccountID of the destination account -* The Sequence number of the [PaymentChannelCreate transaction][] that created the channel - If the PaymentChannelCreate transaction used a [Ticket](../../../../concepts/accounts/tickets.md), use the `TicketSequence` value instead. +- The PayChannel space key (`0x0078`) +- The AccountID of the source account +- The AccountID of the destination account +- The Sequence number of the [PaymentChannelCreate transaction][] that created the channel + If the PaymentChannelCreate transaction used a [Ticket](../../../../concepts/accounts/tickets.md), use the `TicketSequence` value instead. ## See Also @@ -110,5 +108,5 @@ The ID of a `PayChannel` entry is the [SHA-512Half][] of the following values, c - [PaymentChannelClaim transaction][] - [PaymentChannelCreate transaction][] - [PaymentChannelFund transaction][] - + {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/protocol/ledger-data/ledger-entry-types/permissioneddomain.md b/docs/references/protocol/ledger-data/ledger-entry-types/permissioneddomain.md index 9a9d482ead..46f8c6e633 100644 --- a/docs/references/protocol/ledger-data/ledger-entry-types/permissioneddomain.md +++ b/docs/references/protocol/ledger-data/ledger-entry-types/permissioneddomain.md @@ -1,19 +1,20 @@ --- seo: - description: A permissioned domain, which is used to limit access to other features. + description: A permissioned domain, which is used to limit access to other features. labels: - Compliance - Permissioned Domains status: not_enabled --- + # PermissionedDomain + [[Source]](https://github.com/XRPLF/rippled/blob/master/include/xrpl/protocol/detail/ledger_entries.macro#L451-L461 "Source") A `PermissionedDomain` ledger entry describes a single [permissioned domain][] instance. You can create a permissioned domain by sending a [PermissionedDomainSet transaction][]. {% amendment-disclaimer name="PermissionedDomains" /%} - ## Example {% $frontmatter.seo.title %} JSON ```json @@ -26,10 +27,10 @@ A `PermissionedDomain` ledger entry describes a single [permissioned domain][] i "Sequence": 390, "AcceptedCredentials": [ { - "Credential": { - "Issuer": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "CredentialType": "6D795F63726564656E7469616C" - } + "Credential": { + "Issuer": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "CredentialType": "6D795F63726564656E7469616C" + } } ], "PreviousTxnID": "E7E3F2BBAAF48CF893896E48DC4A02BDA0C747B198D5AE18BC3D7567EE64B904", @@ -44,39 +45,36 @@ A `PermissionedDomain` ledger entry describes a single [permissioned domain][] i In addition to the [common fields](../common-fields.md), {% code-page-name /%} entries have the following fields: -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:----------------------|:---------------------|:------------------|:----------|--------------| +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :-------------------- | :------------------- | :---------------- | :-------- | -------------------------------------------------------------------------------------------------------------------------------------------- | | `AcceptedCredentials` | Array | Array | Yes | A list of 1 to 10 [Credential](#acceptedcredentials-objects) objects that grant access to this domain. The array is stored sorted by issuer. | -| `Owner` | String - [Address][] | AccountID | Yes | The address of the account that owns this domain. | -| `OwnerNode` | String | UInt64 | Yes | A hint indicating which page of the owner directory links to this entry, in case the directory consists of multiple pages. | -| `PreviousTxnID` | String - [Hash][] | UInt256 | Yes | The identifying hash of the transaction that most recently modified this entry. | -| `PreviousTxnLgrSeq` | Number | UInt32 | Yes | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this object. | -| `Sequence` | Number | UInt32 | Yes | The `Sequence` value of the transaction that created this entry. | +| `Owner` | String - [Address][] | AccountID | Yes | The address of the account that owns this domain. | +| `OwnerNode` | String | UInt64 | Yes | A hint indicating which page of the owner directory links to this entry, in case the directory consists of multiple pages. | +| `PreviousTxnID` | String - [Hash][] | UInt256 | Yes | The identifying hash of the transaction that most recently modified this entry. | +| `PreviousTxnLgrSeq` | Number | UInt32 | Yes | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this object. | +| `Sequence` | Number | UInt32 | Yes | The `Sequence` value of the transaction that created this entry. | ### AcceptedCredentials Objects {% raw-partial file="/docs/_snippets/accepted-credentials-objects.md" /%} - ## {% $frontmatter.seo.title %} Flags There are no flags defined for {% code-page-name /%} entries. - ## {% $frontmatter.seo.title %} Reserve Each {% code-page-name /%} entry counts as 1 item toward its owner's reserve requirement. A {% code-page-name /%} entry is a deletion blocker, meaning an account cannot be deleted if it owns any {% code-page-name /%} entries. - ## {% $frontmatter.seo.title %} ID Format The ID of a {% code-page-name /%} entry is the [SHA-512Half][] of the following values, concatenated in order: 1. The {% code-page-name /%} space key (`0x0082`). -0. The AccountID of the {% code-page-name /%}'s owner. -0. The Sequence number of the transaction that created the {% code-page-name /%}. +2. The AccountID of the {% code-page-name /%}'s owner. +3. The Sequence number of the transaction that created the {% code-page-name /%}. ## See Also diff --git a/docs/references/protocol/ledger-data/ledger-entry-types/ripplestate.md b/docs/references/protocol/ledger-data/ledger-entry-types/ripplestate.md index d9ec5f8eed..fc2790741c 100644 --- a/docs/references/protocol/ledger-data/ledger-entry-types/ripplestate.md +++ b/docs/references/protocol/ledger-data/ledger-entry-types/ripplestate.md @@ -1,10 +1,12 @@ --- seo: - description: A trust line, which tracks the net balance of fungible tokens between two accounts. + description: A trust line, which tracks the net balance of fungible tokens between two accounts. labels: - - Tokens + - Tokens --- + # RippleState + [[Source]](https://github.com/XRPLF/rippled/blob/f64cf9187affd69650907d0d92e097eb29693945/include/xrpl/protocol/detail/ledger_entries.macro#L277-L289 "Source") A `RippleState` ledger entry represents a [trust line](../../../../concepts/tokens/fungible-tokens/index.md) between two accounts. Each account can change its own limit and other settings, but the balance is a single shared value. A trust line that is entirely in its default state is considered the same as a trust line that does not exist and is automatically deleted. You can create or modify a trust line with a [TrustSet transaction][]. @@ -15,33 +17,32 @@ There can only be one `RippleState` entry per currency for any given pair of acc The ["issuer"](../../../../concepts/tokens/fungible-tokens/index.md) for the balance in a trust line depends on whether the balance is positive or negative. If a `RippleState` entry shows a positive balance, the high account is the issuer. If the balance is negative, the low account is the issuer. Often, the issuer has its limit set to 0 and the other account has a positive limit, but this is not reliable because limits can change without affecting an existing balance. - ## Example {% $frontmatter.seo.title %} JSON ```json { - "Balance": { - "currency": "USD", - "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value": "-10" - }, - "Flags": 393216, - "HighLimit": { - "currency": "USD", - "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "value": "110" - }, - "HighNode": "0000000000000000", - "LedgerEntryType": "RippleState", - "LowLimit": { - "currency": "USD", - "issuer": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", - "value": "0" - }, - "LowNode": "0000000000000000", - "PreviousTxnID": "E3FE6EA3D48F0C2B639448020EA4F03D4F4F8FFDB243A852A0F59177921B4879", - "PreviousTxnLgrSeq": 14090896, - "index": "9CA88CDEDFF9252B3DE183CE35B038F57282BC9503CDFA1923EF9A95DF0D6F7B" + "Balance": { + "currency": "USD", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "-10" + }, + "Flags": 393216, + "HighLimit": { + "currency": "USD", + "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "value": "110" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "USD", + "issuer": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", + "value": "0" + }, + "LowNode": "0000000000000000", + "PreviousTxnID": "E3FE6EA3D48F0C2B639448020EA4F03D4F4F8FFDB243A852A0F59177921B4879", + "PreviousTxnLgrSeq": 14090896, + "index": "9CA88CDEDFF9252B3DE183CE35B038F57282BC9503CDFA1923EF9A95DF0D6F7B" } ``` @@ -49,42 +50,42 @@ The ["issuer"](../../../../concepts/tokens/fungible-tokens/index.md) for the bal In addition to the [common fields](../common-fields.md), {% code-page-name /%} entries have the following fields: -| Name | JSON Type | [Internal Type][] | Required? | Description | -|:--------------------|:----------|:--------------|:----------|:------------| -| `Balance` | Object | Amount | Yes | The balance of the trust line, from the perspective of the low account. A negative balance indicates that the high account holds tokens issued by the low account. The issuer in this is always set to the neutral value [ACCOUNT_ONE](../../../../concepts/accounts/addresses.md#special-addresses). | -| `HighLimit` | Object | Amount | Yes | The limit that the high account has set on the trust line. The `issuer` is the address of the high account that set this limit. | -| `HighNode` | String | UInt64 | Yes | (Omitted in some historical ledgers) A hint indicating which page of the high account's owner directory links to this entry, in case the directory consists of multiple pages. | -| `HighQualityIn` | Number | UInt32 | No | The inbound quality set by the high account, as an integer in the implied ratio `HighQualityIn`:1,000,000,000. As a special case, the value 0 is equivalent to 1 billion, or face value. | -| `HighQualityOut` | Number | UInt32 | No | The outbound quality set by the high account, as an integer in the implied ratio `HighQualityOut`:1,000,000,000. As a special case, the value 0 is equivalent to 1 billion, or face value. | -| `LowLimit` | Object | Amount | Yes | The limit that the low account has set on the trust line. The `issuer` is the address of the low account that set this limit. | -| `LowNode` | String | UInt64 | Yes | (Omitted in some historical ledgers) A hint indicating which page of the low account's owner directory links to this entry, in case the directory consists of multiple pages. | -| `LowQualityIn` | Number | UInt32 | No | The inbound quality set by the low account, as an integer in the implied ratio `LowQualityIn`:1,000,000,000. As a special case, the value 0 is equivalent to 1 billion, or face value. | -| `LowQualityOut` | Number | UInt32 | No | The outbound quality set by the low account, as an integer in the implied ratio `LowQualityOut`:1,000,000,000. As a special case, the value 0 is equivalent to 1 billion, or face value. | -| `PreviousTxnID` | String | UInt256 | Yes | The identifying hash of the transaction that most recently modified this entry. | -| `PreviousTxnLgrSeq` | Number | UInt32 | Yes | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this entry. | +| Name | JSON Type | [Internal Type][] | Required? | Description | +| :------------------ | :-------- | :---------------- | :-------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Balance` | Object | Amount | Yes | The balance of the trust line, from the perspective of the low account. A negative balance indicates that the high account holds tokens issued by the low account. The issuer in this is always set to the neutral value [ACCOUNT_ONE](../../../../concepts/accounts/addresses.md#special-addresses). | +| `HighLimit` | Object | Amount | Yes | The limit that the high account has set on the trust line. The `issuer` is the address of the high account that set this limit. | +| `HighNode` | String | UInt64 | Yes | (Omitted in some historical ledgers) A hint indicating which page of the high account's owner directory links to this entry, in case the directory consists of multiple pages. | +| `HighQualityIn` | Number | UInt32 | No | The inbound quality set by the high account, as an integer in the implied ratio `HighQualityIn`:1,000,000,000. As a special case, the value 0 is equivalent to 1 billion, or face value. | +| `HighQualityOut` | Number | UInt32 | No | The outbound quality set by the high account, as an integer in the implied ratio `HighQualityOut`:1,000,000,000. As a special case, the value 0 is equivalent to 1 billion, or face value. | +| `LowLimit` | Object | Amount | Yes | The limit that the low account has set on the trust line. The `issuer` is the address of the low account that set this limit. | +| `LowNode` | String | UInt64 | Yes | (Omitted in some historical ledgers) A hint indicating which page of the low account's owner directory links to this entry, in case the directory consists of multiple pages. | +| `LowQualityIn` | Number | UInt32 | No | The inbound quality set by the low account, as an integer in the implied ratio `LowQualityIn`:1,000,000,000. As a special case, the value 0 is equivalent to 1 billion, or face value. | +| `LowQualityOut` | Number | UInt32 | No | The outbound quality set by the low account, as an integer in the implied ratio `LowQualityOut`:1,000,000,000. As a special case, the value 0 is equivalent to 1 billion, or face value. | +| `PreviousTxnID` | String | UInt256 | Yes | The identifying hash of the transaction that most recently modified this entry. | +| `PreviousTxnLgrSeq` | Number | UInt32 | Yes | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this entry. | ## RippleState Flags `RippleState` entries can have the following flags combined into the `Flags` field: -| Flag Name | Hex Value | Decimal Value | Corresponding [TrustSet Flag](../../transactions/types/trustset.md#trustset-flags) | Description | -|---------------------|--------------|---------------|-----------------------|---------| -| `lsfLowReserve` | `0x00010000` | 65536 | (None) | This entry [contributes to the low account's owner reserve](#ripplestate-reserve). | -| `lsfHighReserve` | `0x00020000` | 131072 | (None) | This entry [contributes to the high account's owner reserve](#ripplestate-reserve). | -| `lsfLowAuth` | `0x00040000` | 262144 | `tfSetAuth` | The low account has authorized the high account to hold tokens issued by the low account. | -| `lsfHighAuth` | `0x00080000` | 524288 | `tfSetAuth` | The high account has authorized the low account to hold tokens issued by the high account. | -| `lsfLowNoRipple` | `0x00100000` | 1048576 | `tfSetNoRipple` | The low account [has disabled rippling](../../../../concepts/tokens/fungible-tokens/rippling.md) from this trust line. | -| `lsfHighNoRipple` | `0x00200000` | 2097152 | `tfSetNoRipple` | The high account [has disabled rippling](../../../../concepts/tokens/fungible-tokens/rippling.md) from this trust line. | -| `lsfLowFreeze` | `0x00400000` | 4194304 | `tfSetFreeze` | The low account has frozen the trust line, preventing the high account from transferring the asset. | -| `lsfHighFreeze` | `0x00800000` | 8388608 | `tfSetFreeze` | The high account has frozen the trust line, preventing the low account from transferring the asset. | -| `lsfAMMNode` | `0x01000000` | 16777216 | (None) | This trust line holds one of the assets in an [Automated Market Maker](../../../../concepts/tokens/decentralized-exchange/automated-market-makers.md)'s pool; one of this trust line's accounts is the AMM, and the other is the issuer of the token. {% amendment-disclaimer name="AMM" /%} | -| `lsfLowDeepFreeze` | `0x02000000` | 33554432 |`tfSetLowDeepFreeze` | The low account has deep-frozen the trust line, preventing the high account from sending and receiving the asset. {% amendment-disclaimer name="DeepFreeze" /%} | -| `lsfHighDeepFreeze` | `0x04000000` | 67108864 | `tfSetHighDeepFreeze` | The high account has deep-frozen the trust line, preventing the low account from sending and receiving the asset. {% amendment-disclaimer name="DeepFreeze" /%} | +| Flag Name | Hex Value | Decimal Value | Corresponding [TrustSet Flag](../../transactions/types/trustset.md#trustset-flags) | Description | +| ------------------- | ------------ | ------------- | ---------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `lsfLowReserve` | `0x00010000` | 65536 | (None) | This entry [contributes to the low account's owner reserve](#ripplestate-reserve). | +| `lsfHighReserve` | `0x00020000` | 131072 | (None) | This entry [contributes to the high account's owner reserve](#ripplestate-reserve). | +| `lsfLowAuth` | `0x00040000` | 262144 | `tfSetAuth` | The low account has authorized the high account to hold tokens issued by the low account. | +| `lsfHighAuth` | `0x00080000` | 524288 | `tfSetAuth` | The high account has authorized the low account to hold tokens issued by the high account. | +| `lsfLowNoRipple` | `0x00100000` | 1048576 | `tfSetNoRipple` | The low account [has disabled rippling](../../../../concepts/tokens/fungible-tokens/rippling.md) from this trust line. | +| `lsfHighNoRipple` | `0x00200000` | 2097152 | `tfSetNoRipple` | The high account [has disabled rippling](../../../../concepts/tokens/fungible-tokens/rippling.md) from this trust line. | +| `lsfLowFreeze` | `0x00400000` | 4194304 | `tfSetFreeze` | The low account has frozen the trust line, preventing the high account from transferring the asset. | +| `lsfHighFreeze` | `0x00800000` | 8388608 | `tfSetFreeze` | The high account has frozen the trust line, preventing the low account from transferring the asset. | +| `lsfAMMNode` | `0x01000000` | 16777216 | (None) | This trust line holds one of the assets in an [Automated Market Maker](../../../../concepts/tokens/decentralized-exchange/automated-market-makers.md)'s pool; one of this trust line's accounts is the AMM, and the other is the issuer of the token. {% amendment-disclaimer name="AMM" /%} | +| `lsfLowDeepFreeze` | `0x02000000` | 33554432 | `tfSetLowDeepFreeze` | The low account has deep-frozen the trust line, preventing the high account from sending and receiving the asset. {% amendment-disclaimer name="DeepFreeze" /%} | +| `lsfHighDeepFreeze` | `0x04000000` | 67108864 | `tfSetHighDeepFreeze` | The high account has deep-frozen the trust line, preventing the low account from sending and receiving the asset. {% amendment-disclaimer name="DeepFreeze" /%} | The two accounts connected by the trust line can each change their own settings with a [TrustSet transaction][]. - ## {% $frontmatter.seo.title %} Reserve + A `RippleState` entry counts as one item towards the [owner reserve](../../../../concepts/accounts/reserves.md#owner-reserves) of _one or both_ of the accounts it connects. In typical cases, the holder of a token owes a reserve and the issuer of the token does not. @@ -93,14 +94,14 @@ Specifically, the entry counts towards an account's reserve if that account modi The values that count towards a trust line's non-default state are as follows: -| High account responsible if... | Low account responsible if... | -|-----------------------|----------------------| +| High account responsible if... | Low account responsible if... | +| ------------------------------------------------------- | ------------------------------------------------------ | | `Balance` is negative (the high account holds currency) | `Balance` is positive (the low account holds currency) | -| `HighLimit` is not `0` | `LowLimit` is not `0` | -| `LowQualityIn` is not `0` and not `1000000000` | `HighQualityIn` is not `0` and not `1000000000` | -| `LowQualityOut` is not `0` and not `1000000000` | `HighQualityOut` is not `0` and not `1000000000` | -| `lsfHighNoRipple` flag is not in its default state | `lsfLowNoRipple` flag is not in its default state | -| `lsfHighFreeze` flag is enabled | `lsfLowFreeze` flag is enabled | +| `HighLimit` is not `0` | `LowLimit` is not `0` | +| `LowQualityIn` is not `0` and not `1000000000` | `HighQualityIn` is not `0` and not `1000000000` | +| `LowQualityOut` is not `0` and not `1000000000` | `HighQualityOut` is not `0` and not `1000000000` | +| `lsfHighNoRipple` flag is not in its default state | `lsfLowNoRipple` flag is not in its default state | +| `lsfHighFreeze` flag is enabled | `lsfLowFreeze` flag is enabled | The **`lsfLowAuth`** and **`lsfHighAuth`** flags do not count against the default state, because they cannot be disabled. @@ -110,15 +111,14 @@ The default state of the two No Ripple flags depends on the state of the [`lsfDe The XRP Ledger uses lazy evaluation to calculate the owner reserve. This means that even if an account changes the default state of all its trust lines by changing the Default Ripple flag, that account's reserve stays the same initially. When an account modifies a trust line, the protocol re-evaluates whether that individual trust line is in its default state and should contribute to the owner reserve. - ## RippleState ID Format The ID of a RippleState entry is the [SHA-512Half][] of the following values, concatenated in order: -* The RippleState space key (`0x0072`) -* The AccountID of the low account -* The AccountID of the high account -* The 160-bit currency code of the trust line(s) +- The RippleState space key (`0x0072`) +- The AccountID of the low account +- The AccountID of the high account +- The 160-bit currency code of the trust line(s) ## See Also diff --git a/docs/references/protocol/ledger-data/ledger-entry-types/signerlist.md b/docs/references/protocol/ledger-data/ledger-entry-types/signerlist.md index 9c1ee48371..c3477be1dc 100644 --- a/docs/references/protocol/ledger-data/ledger-entry-types/signerlist.md +++ b/docs/references/protocol/ledger-data/ledger-entry-types/signerlist.md @@ -1,10 +1,12 @@ --- seo: - description: A list of addresses for multi-signing transactions. + description: A list of addresses for multi-signing transactions. labels: - Security --- + # SignerList + [[Source]](https://github.com/XRPLF/rippled/blob/f64cf9187affd69650907d0d92e097eb29693945/include/xrpl/protocol/detail/ledger_entries.macro#L111-L118 "Source") A `SignerList` entry represents a list of parties that, as a group, are authorized to sign a transaction in place of an individual account by [multi-signing](../../../../concepts/accounts/multi-signing.md). You can create, replace, or remove a signer list using a [SignerListSet transaction][]. @@ -15,34 +17,34 @@ A `SignerList` entry represents a list of parties that, as a group, are authoriz ```json { - "Flags": 0, - "LedgerEntryType": "SignerList", - "OwnerNode": "0000000000000000", - "PreviousTxnID": "5904C0DC72C58A83AEFED2FFC5386356AA83FCA6A88C89D00646E51E687CDBE4", - "PreviousTxnLgrSeq": 16061435, - "SignerEntries": [ - { - "SignerEntry": { - "Account": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", - "SignerWeight": 2 - } - }, - { - "SignerEntry": { - "Account": "raKEEVSGnKSD9Zyvxu4z6Pqpm4ABH8FS6n", - "SignerWeight": 1 - } - }, - { - "SignerEntry": { - "Account": "rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v", - "SignerWeight": 1 - } - } - ], - "SignerListID": 0, - "SignerQuorum": 3, - "index": "A9C28A28B85CD533217F5C0A0C7767666B093FA58A0F2D80026FCC4CD932DDC7" + "Flags": 0, + "LedgerEntryType": "SignerList", + "OwnerNode": "0000000000000000", + "PreviousTxnID": "5904C0DC72C58A83AEFED2FFC5386356AA83FCA6A88C89D00646E51E687CDBE4", + "PreviousTxnLgrSeq": 16061435, + "SignerEntries": [ + { + "SignerEntry": { + "Account": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", + "SignerWeight": 2 + } + }, + { + "SignerEntry": { + "Account": "raKEEVSGnKSD9Zyvxu4z6Pqpm4ABH8FS6n", + "SignerWeight": 1 + } + }, + { + "SignerEntry": { + "Account": "rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v", + "SignerWeight": 1 + } + } + ], + "SignerListID": 0, + "SignerQuorum": 3, + "index": "A9C28A28B85CD533217F5C0A0C7767666B093FA58A0F2D80026FCC4CD932DDC7" } ``` @@ -50,14 +52,14 @@ A `SignerList` entry represents a list of parties that, as a group, are authoriz In addition to the [common fields](../common-fields.md), {% code-page-name /%} entries have the following fields: -| Name | JSON Type | Internal Type | Required? | Description | -|:--------------------|:----------|:--------------|:----------|:---------------------------| -| `OwnerNode` | String | UInt64 | Yes | A hint indicating which page of the owner directory links to this object, in case the directory consists of multiple pages. | -| `PreviousTxnID` | String | UInt256 | Yes | The identifying hash of the transaction that most recently modified this object. | -| `PreviousTxnLgrSeq` | Number | UInt32 | Yes | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this object. | -| `SignerEntries` | Array | Array | Yes | An array of Signer Entry objects representing the parties who are part of this signer list. | +| Name | JSON Type | Internal Type | Required? | Description | +| :------------------ | :-------- | :------------ | :-------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `OwnerNode` | String | UInt64 | Yes | A hint indicating which page of the owner directory links to this object, in case the directory consists of multiple pages. | +| `PreviousTxnID` | String | UInt256 | Yes | The identifying hash of the transaction that most recently modified this object. | +| `PreviousTxnLgrSeq` | Number | UInt32 | Yes | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this object. | +| `SignerEntries` | Array | Array | Yes | An array of Signer Entry objects representing the parties who are part of this signer list. | | `SignerListID` | Number | UInt32 | Yes | An ID for this signer list. Currently always set to `0`. If a future [amendment](../../../../concepts/networks-and-servers/amendments.md) allows multiple signer lists for an account, this may change. | -| `SignerQuorum` | Number | UInt32 | Yes | A target number for signer weights. To produce a valid signature for the owner of this SignerList, the signers must provide valid signatures whose weights sum to this value or more. | +| `SignerQuorum` | Number | UInt32 | Yes | A target number for signer weights. To produce a valid signature for the owner of this SignerList, the signers must provide valid signatures whose weights sum to this value or more. | The `SignerEntries` may be any combination of funded and unfunded addresses that use either secp256k1 or ed25519 keys. @@ -65,11 +67,11 @@ The `SignerEntries` may be any combination of funded and unfunded addresses that Each member of the `SignerEntries` field is an object that describes that signer in the list. A Signer Entry has the following fields: -| Name | JSON Type | Internal Type | Description | -|:----------------|:----------|:--------------|:-------------------------------| -| `Account` | String | AccountID | An XRP Ledger address whose signature contributes to the multi-signature. It does not need to be a funded address in the ledger. | +| Name | JSON Type | Internal Type | Description | +| :-------------- | :-------- | :------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Account` | String | AccountID | An XRP Ledger address whose signature contributes to the multi-signature. It does not need to be a funded address in the ledger. | | `SignerWeight` | Number | UInt16 | The weight of a signature from this signer. A multi-signature is only valid if the sum weight of the signatures provided meets or exceeds the signer list's `SignerQuorum` value. | -| `WalletLocator` | String | UInt256 | _(Optional)_ Arbitrary hexadecimal data. This can be used to identify the signer or for other, related purposes. {% amendment-disclaimer name="ExpandedSignerList" /%} | +| `WalletLocator` | String | UInt256 | _(Optional)_ Arbitrary hexadecimal data. This can be used to identify the signer or for other, related purposes. {% amendment-disclaimer name="ExpandedSignerList" /%} | When processing a multi-signed transaction, the server looks up the `Account` values with respect to the ledger at the time of transaction execution. If the address _does not_ correspond to a funded [AccountRoot ledger entry](accountroot.md), then only the [master private key](../../../../concepts/accounts/cryptographic-keys.md) associated with that address can be used to produce a valid signature. If the account _does_ exist in the ledger, then it depends on the state of that account. If the account has a Regular Key configured, the Regular Key can be used. The account's master key can only be used if it is not disabled. A multi-signature cannot be used as part of another multi-signature. @@ -77,13 +79,12 @@ When processing a multi-signed transaction, the server looks up the `Account` va SignerList entries can have the following value in the `Flags` field: -| Flag Name | Hex Value | Decimal Value | Description | -|:-------------------|:-------------|:--------------|:-------------------------| +| Flag Name | Hex Value | Decimal Value | Description | +| :----------------- | :----------- | :------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `lsfOneOwnerCount` | `0x00010000` | 65536 | If this flag is enabled, this SignerList counts as one item for purposes of the [owner reserve](../../../../concepts/accounts/reserves.md#owner-reserves). Otherwise, this list counts as N+2 items, where N is the number of signers it contains. This flag is automatically enabled if you add or update a signer list after the [MultiSignReserve amendment][] is enabled. | {% amendment-disclaimer name="MultiSignReserve" /%} - ## Signer Lists and Reserves A signer list contributes to its owner's [reserve requirement](../../../../concepts/accounts/reserves.md). Removing the signer list frees up the reserve. @@ -92,14 +93,13 @@ A signer list contributes to its owner's [reserve requirement](../../../../conce A signer list created before the MultiSignReserve amendment counts as two items towards the owner reserve, plus one for each member of the list. As a result, the total owner reserve associated with an old signer list is anywhere from 3 times to 10 times as much as a new signer list. To update a signer list to use the new, reduced reserve, update the signer list by sending a [SignerListSet transaction][]. - ## SignerList ID Format The ID of a `SignerList` entry is the SHA-512Half of the following values, concatenated in order: -* The RippleState space key (`0x0053`) -* The AccountID of the owner of the signer list -* The `SignerListID` (currently always `0`) +- The RippleState space key (`0x0053`) +- The AccountID of the owner of the signer list +- The `SignerListID` (currently always `0`) ## See Also diff --git a/docs/references/protocol/ledger-data/ledger-entry-types/ticket.md b/docs/references/protocol/ledger-data/ledger-entry-types/ticket.md index 83e4959fe9..2196615342 100644 --- a/docs/references/protocol/ledger-data/ledger-entry-types/ticket.md +++ b/docs/references/protocol/ledger-data/ledger-entry-types/ticket.md @@ -1,17 +1,18 @@ --- seo: - description: A ticket, which sets aside a sequence number for use in a future transaction. + description: A ticket, which sets aside a sequence number for use in a future transaction. labels: - Transaction Sending --- + # Ticket + [[Source]](https://github.com/XRPLF/rippled/blob/f64cf9187affd69650907d0d92e097eb29693945/include/xrpl/protocol/detail/ledger_entries.macro#L124-L130 "Source") A `Ticket` entry type represents a [Ticket](../../../../concepts/accounts/tickets.md), which tracks an account [sequence number][Sequence Number] that has been set aside for future use. You can create new tickets with a [TicketCreate transaction][]. {% amendment-disclaimer name="TicketBatch" /%} - ## Example {% $frontmatter.seo.title %} JSON ```json @@ -30,32 +31,29 @@ A `Ticket` entry type represents a [Ticket](../../../../concepts/accounts/ticket In addition to the [common fields](../common-fields.md), {% code-page-name /%} entries have the following fields: -| Name | JSON Type | [Internal Type][] | Required? | Description | -|:--------------------|:---------------------|:------------------|:----------|:---------------------------| -| `Account` | String - [Address][] | AccountID | Yes | The [account](../../../../concepts/accounts/index.md) that owns this Ticket. | -| `OwnerNode` | String - Hexadecimal | UInt64 | Yes | A hint indicating which page of the owner directory links to this entry, in case the directory consists of multiple pages. | +| Name | JSON Type | [Internal Type][] | Required? | Description | +| :------------------ | :------------------- | :---------------- | :-------- | :---------------------------------------------------------------------------------------------------------------------------- | +| `Account` | String - [Address][] | AccountID | Yes | The [account](../../../../concepts/accounts/index.md) that owns this Ticket. | +| `OwnerNode` | String - Hexadecimal | UInt64 | Yes | A hint indicating which page of the owner directory links to this entry, in case the directory consists of multiple pages. | | `PreviousTxnID` | String - [Hash][] | UInt256 | Yes | The identifying hash of the [transaction](../../../../concepts/transactions/index.md) that most recently modified this entry. | -| `PreviousTxnLgrSeq` | Number | UInt32 | Yes | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this entry. | -| `TicketSequence` | Number | UInt32 | Yes | The [Sequence Number][] this Ticket sets aside. | - +| `PreviousTxnLgrSeq` | Number | UInt32 | Yes | The [index of the ledger][Ledger Index] that contains the transaction that most recently modified this entry. | +| `TicketSequence` | Number | UInt32 | Yes | The [Sequence Number][] this Ticket sets aside. | ## {% $frontmatter.seo.title %} Reserve {% code-page-name /%} entries count as one item towards the owner reserve of the account that placed the created it, as long as the entry is in the ledger. Using the ticket frees up the reserve. - ## {% $frontmatter.seo.title %} Flags There are no flags defined for {% code-page-name /%} entries. - ## {% $frontmatter.seo.title %} ID Format The ID of a Ticket object is the SHA-512Half of the following values, concatenated in order: -* The Ticket space key (`0x0054`) -* The AccountID of the owner of the Ticket -* The `TicketSequence` number of the Ticket +- The Ticket space key (`0x0054`) +- The AccountID of the owner of the Ticket +- The `TicketSequence` number of the Ticket ## See Also diff --git a/docs/references/protocol/ledger-data/ledger-entry-types/xchainownedclaimid.md b/docs/references/protocol/ledger-data/ledger-entry-types/xchainownedclaimid.md index 8b06681afb..e7e8fdd04c 100644 --- a/docs/references/protocol/ledger-data/ledger-entry-types/xchainownedclaimid.md +++ b/docs/references/protocol/ledger-data/ledger-entry-types/xchainownedclaimid.md @@ -1,14 +1,16 @@ --- seo: - description: A cross-chain transfer of value. + description: A cross-chain transfer of value. labels: - Interoperability status: not_enabled --- + # XChainOwnedClaimID + [[Source]](https://github.com/XRPLF/rippled/blob/f64cf9187affd69650907d0d92e097eb29693945/include/xrpl/protocol/detail/ledger_entries.macro#L259-L269 "Source") -An `XChainOwnedClaimID` entry represents *one* cross-chain transfer of value and includes information of the account on the source chain that locks or burns the funds on the source chain. +An `XChainOwnedClaimID` entry represents _one_ cross-chain transfer of value and includes information of the account on the source chain that locks or burns the funds on the source chain. The `XChainOwnedClaimID` entry must be acquired on the destination chain before submitting a `XChainCommit` on the source chain. Its purpose is to prevent transaction replay attacks. It is also used as a place to collect attestations from witness servers. @@ -16,7 +18,6 @@ You can create a new `XChainOwnedClaimID` by sending an [XChainCreateClaimID tra {% amendment-disclaimer name="XChainBridge" /%} - ## Example XChainOwnedClaimID JSON ```json @@ -57,7 +58,7 @@ You can create a new `XChainOwnedClaimID` by sending an [XChainCreateClaimID tra "Destination": "rBW1U7J9mEhEdk6dMHEFUjqQ7HW7WpaEMi", "PublicKey": "03D40434A6843638681E2F215310EBC4131AFB12EA85985DA073183B732525F7C9", "WasLockingChainSend": 1 - }, + } } ], "XChainClaimID": "b5", @@ -66,40 +67,37 @@ You can create a new `XChainOwnedClaimID` by sending an [XChainCreateClaimID tra } ``` - ## XChainOwnedClaimID Fields -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:--------------------------|:--------------------|:------------------|:----------|:----------------| -| `Account` | String - [Address][]| AccountID | Yes | The account that owns this object. | -| `OtherChainSource` | String | AccountID | Yes | The account that must send the corresponding `XChainCommit` on the source chain. The destination may be specified in the `XChainCommit` transaction, which means that if the `OtherChainSource` isn't specified, another account can try to specify a different destination and steal the funds. This also allows tracking only a single set of signatures, since we know which account will send the `XChainCommit` transaction. | -| `SignatureReward` | [Currency Amount][] | Amount | Yes | The total amount to pay the witness servers for their signatures. It must be at least the value of `SignatureReward` in the `Bridge` ledger object. | -| `XChainBridge` | XChainBridge | XChainBridge | Yes | The door accounts and assets of the bridge this object correlates to. | -| `XChainClaimAttestations` | Array | Array | Yes | Attestations collected from the witness servers. This includes the parameters needed to recreate the message that was signed, including the amount, which chain (locking or issuing), optional destination, and reward account for that signature. | -| `XChainClaimID` | String | UInt64 | Yes | The unique sequence number for a cross-chain transfer. | - +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :------------------------ | :------------------- | :---------------- | :-------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Account` | String - [Address][] | AccountID | Yes | The account that owns this object. | +| `OtherChainSource` | String | AccountID | Yes | The account that must send the corresponding `XChainCommit` on the source chain. The destination may be specified in the `XChainCommit` transaction, which means that if the `OtherChainSource` isn't specified, another account can try to specify a different destination and steal the funds. This also allows tracking only a single set of signatures, since we know which account will send the `XChainCommit` transaction. | +| `SignatureReward` | [Currency Amount][] | Amount | Yes | The total amount to pay the witness servers for their signatures. It must be at least the value of `SignatureReward` in the `Bridge` ledger object. | +| `XChainBridge` | XChainBridge | XChainBridge | Yes | The door accounts and assets of the bridge this object correlates to. | +| `XChainClaimAttestations` | Array | Array | Yes | Attestations collected from the witness servers. This includes the parameters needed to recreate the message that was signed, including the amount, which chain (locking or issuing), optional destination, and reward account for that signature. | +| `XChainClaimID` | String | UInt64 | Yes | The unique sequence number for a cross-chain transfer. | ### XChainClaimAttestations Fields -| Field | JSON Type | [Internal Type][] | Required | Description | -|-------------------------------|---------------------|-------------------|----------|-------------| -| `XChainClaimProofSig` | Array | Object | Yes | An attestation from one witness server. | -| `Amount` | [Currency Amount][] | Amount | Yes | The amount to claim in the `XChainCommit` transaction on the destination chain. | -| `AttestationRewardAccount` | String | AccountID | Yes | The account that should receive this signer's share of the `SignatureReward`. | -| `AttestationSignerAccount` | String | AccountID | Yes | The account on the door account's signer list that is signing the transaction. | -| `Destination` | String | AccountID | No | The destination account for the funds on the destination chain. | -| `PublicKey` | String | Blob | Yes | The public key used to verify the signature. | -| `WasLockingChainSend` | Number | UInt8 | Yes | A boolean representing the chain where the event occurred. | - +| Field | JSON Type | [Internal Type][] | Required | Description | +| -------------------------- | ------------------- | ----------------- | -------- | ------------------------------------------------------------------------------- | +| `XChainClaimProofSig` | Array | Object | Yes | An attestation from one witness server. | +| `Amount` | [Currency Amount][] | Amount | Yes | The amount to claim in the `XChainCommit` transaction on the destination chain. | +| `AttestationRewardAccount` | String | AccountID | Yes | The account that should receive this signer's share of the `SignatureReward`. | +| `AttestationSignerAccount` | String | AccountID | Yes | The account on the door account's signer list that is signing the transaction. | +| `Destination` | String | AccountID | No | The destination account for the funds on the destination chain. | +| `PublicKey` | String | Blob | Yes | The public key used to verify the signature. | +| `WasLockingChainSend` | Number | UInt8 | Yes | A boolean representing the chain where the event occurred. | ### XChainBridge Fields -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:--------------------|:----------|:------------------|:----------|:----------------| +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :------------------ | :-------- | :---------------- | :-------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `IssuingChainDoor` | String | AccountID | Yes | The door account on the issuing chain. For an XRP-XRP bridge, this must be the genesis account (the account that is created when the network is first started, which contains all of the XRP). | -| `IssuingChainIssue` | Issue | Issue | Yes | The asset that is minted and burned on the issuing chain. For an IOU-IOU bridge, the issuer of the asset must be the door account on the issuing chain, to avoid supply issues. | -| `LockingChainDoor` | String | AccountID | Yes | The door account on the locking chain. | -| `LockingChainIssue` | Issue | Issue | Yes | The asset that is locked and unlocked on the locking chain. | +| `IssuingChainIssue` | Issue | Issue | Yes | The asset that is minted and burned on the issuing chain. For an IOU-IOU bridge, the issuer of the asset must be the door account on the issuing chain, to avoid supply issues. | +| `LockingChainDoor` | String | AccountID | Yes | The door account on the locking chain. | +| `LockingChainIssue` | Issue | Issue | Yes | The asset that is locked and unlocked on the locking chain. | ## See Also diff --git a/docs/references/protocol/ledger-data/ledger-entry-types/xchainownedcreateaccountclaimid.md b/docs/references/protocol/ledger-data/ledger-entry-types/xchainownedcreateaccountclaimid.md index 8c6a565a2c..4d590c574a 100644 --- a/docs/references/protocol/ledger-data/ledger-entry-types/xchainownedcreateaccountclaimid.md +++ b/docs/references/protocol/ledger-data/ledger-entry-types/xchainownedcreateaccountclaimid.md @@ -1,11 +1,13 @@ --- seo: - description: A record of attestations for creating an account via a cross-chain transfer. + description: A record of attestations for creating an account via a cross-chain transfer. labels: - Interoperability status: not_enabled --- + # XChainOwnedCreateAccountClaimID + [[Source]](https://github.com/XRPLF/rippled/blob/f64cf9187affd69650907d0d92e097eb29693945/include/xrpl/protocol/detail/ledger_entries.macro#L315-L323 "Source") An `XChainOwnedCreateAccountClaimID` ledger entry collects attestations for creating an account via a cross-chain transfer. @@ -16,7 +18,6 @@ An `XChainOwnedCreateAccountClaimID` ledger entry is destroyed when all the atte {% amendment-disclaimer name="XChainBridge" /%} - ## Example XChainOwnedCreateAccountClaimID JSON ```json @@ -51,38 +52,35 @@ An `XChainOwnedCreateAccountClaimID` ledger entry is destroyed when all the atte } ``` - ## XChainOwnedCreateAccountClaimID Fields -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:----------------------------------|:-------------|:------------------|:----------|:------------| -| `Account` | String | AccountID | Yes | The account that owns this object. | -| `XChainAccountCreateCount` | Number | UInt64 | Yes | An integer that determines the order that accounts created through cross-chain transfers must be performed. Smaller numbers must execute before larger numbers. | -| `XChainBridge` | XChainBridge | XChainBridge | Yes | The door accounts and assets of the bridge this object correlates to. | +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :-------------------------------- | :----------- | :---------------- | :-------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Account` | String | AccountID | Yes | The account that owns this object. | +| `XChainAccountCreateCount` | Number | UInt64 | Yes | An integer that determines the order that accounts created through cross-chain transfers must be performed. Smaller numbers must execute before larger numbers. | +| `XChainBridge` | XChainBridge | XChainBridge | Yes | The door accounts and assets of the bridge this object correlates to. | | `XChainCreateAccountAttestations` | Array | Array | Yes | Attestations collected from the witness servers. This includes the parameters needed to recreate the message that was signed, including the amount, destination, signature reward amount, and reward account for that signature. With the exception of the reward account, all signatures must sign the message created with common parameters. | - ### XChainCreateAccountAttestations Fields -| Field | JSON Type | [Internal Type][] | Required | Description | -|-------------------------------|---------------------|-------------------|----------|-------------| -| `XChainCreateAccountProofSig` | Array | Object | Yes | An attestation from one witness server. | +| Field | JSON Type | [Internal Type][] | Required | Description | +| ----------------------------- | ------------------- | ----------------- | -------- | ---------------------------------------------------------------------------------------- | +| `XChainCreateAccountProofSig` | Array | Object | Yes | An attestation from one witness server. | | `Amount` | [Currency Amount][] | Amount | Yes | The amount committed by the `XChainAccountCreateCommit` transaction on the source chain. | -| `AttestationRewardAccount` | String | AccountID | Yes | The account that should receive this signer's share of the `SignatureReward`. | -| `AttestationSignerAccount` | String | AccountID | Yes | The account on the door account's signer list that is signing the transaction. | -| `Destination` | String | AccountID | Yes | The destination account for the funds on the destination chain. | -| `PublicKey` | String | Blob | Yes | The public key used to verify the signature. | -| `WasLockingChainSend` | Number | UInt8 | Yes | A boolean representing the chain where the event occurred. | - +| `AttestationRewardAccount` | String | AccountID | Yes | The account that should receive this signer's share of the `SignatureReward`. | +| `AttestationSignerAccount` | String | AccountID | Yes | The account on the door account's signer list that is signing the transaction. | +| `Destination` | String | AccountID | Yes | The destination account for the funds on the destination chain. | +| `PublicKey` | String | Blob | Yes | The public key used to verify the signature. | +| `WasLockingChainSend` | Number | UInt8 | Yes | A boolean representing the chain where the event occurred. | ### XChainBridge Fields -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:--------------------|:----------|:------------------|:----------|:----------------| +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :------------------ | :-------- | :---------------- | :-------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `IssuingChainDoor` | String | AccountID | Yes | The door account on the issuing chain. For an XRP-XRP bridge, this must be the genesis account (the account that is created when the network is first started, which contains all of the XRP). | -| `IssuingChainIssue` | Issue | Issue | Yes | The asset that is minted and burned on the issuing chain. For an IOU-IOU bridge, the issuer of the asset must be the door account on the issuing chain, to avoid supply issues. | -| `LockingChainDoor` | String | AccountID | Yes | The door account on the locking chain. | -| `LockingChainIssue` | Issue | Issue | Yes | The asset that is locked and unlocked on the locking chain. | +| `IssuingChainIssue` | Issue | Issue | Yes | The asset that is minted and burned on the issuing chain. For an IOU-IOU bridge, the issuer of the asset must be the door account on the issuing chain, to avoid supply issues. | +| `LockingChainDoor` | String | AccountID | Yes | The door account on the locking chain. | +| `LockingChainIssue` | Issue | Issue | Yes | The asset that is locked and unlocked on the locking chain. | ## See Also diff --git a/docs/references/protocol/ledger-data/ledger-header.md b/docs/references/protocol/ledger-data/ledger-header.md index 7aa023953b..216911668d 100644 --- a/docs/references/protocol/ledger-data/ledger-header.md +++ b/docs/references/protocol/ledger-data/ledger-header.md @@ -2,40 +2,39 @@ html: ledger-header.html parent: ledger-data-formats.html seo: - description: A unique header that describes the contents of a ledger version. + description: A unique header that describes the contents of a ledger version. labels: - Data Retention - Blockchain --- + # Ledger Header + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/consensus/RCLCxLedger.h "Source") Every [ledger version](../../../concepts/ledgers/index.md) has a unique header that describes the contents. You can look up a ledger's header information with the [ledger method][]. The contents of the ledger header are as follows: -| Field | JSON Type | [Internal Type][] | Description | -|:------------------------------|:----------|:------------------|:--------------| -| `ledger_index` | String | UInt32 | The [ledger index][Ledger Index] of the ledger. Some API methods display this as a quoted integer; some display it as a native JSON number. | -| `ledger_hash` | String | UInt256 | The [SHA-512Half][] of this ledger version. This serves as a unique identifier for this ledger and all its contents. | -| `account_hash` | String | UInt256 | The [SHA-512Half][] of this ledger's state tree information. | -| [`close_flags`](#close-flags) | Number | UInt8 | A bit-map of flags relating to the closing of this ledger. | -| `close_time` | Number | UInt32 | The [approximate time this ledger version closed](../../../concepts/ledgers/ledger-close-times.md), as the number of seconds since the Ripple Epoch of 2000-01-01 00:00:00 UTC. This value is rounded based on the `close_time_resolution`. | -| `close_time_resolution` | Number | Uint8 | An integer in the range \[2,120\] indicating the maximum number of seconds by which the `close_time` could be rounded. | -| `closed` | Boolean | Boolean | If `true`, this ledger version is no longer accepting new transactions. (However, unless this ledger version is validated, it might be replaced by a different ledger version with a different set of transactions.) | -| `parent_hash` | String | UInt256 | The `ledger_hash` value of the previous ledger version that is the direct predecessor of this one. If there are different versions of the previous ledger index, this indicates from which one the ledger was derived. | +| Field | JSON Type | [Internal Type][] | Description | +| :---------------------------- | :-------- | :---------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `ledger_index` | String | UInt32 | The [ledger index][Ledger Index] of the ledger. Some API methods display this as a quoted integer; some display it as a native JSON number. | +| `ledger_hash` | String | UInt256 | The [SHA-512Half][] of this ledger version. This serves as a unique identifier for this ledger and all its contents. | +| `account_hash` | String | UInt256 | The [SHA-512Half][] of this ledger's state tree information. | +| [`close_flags`](#close-flags) | Number | UInt8 | A bit-map of flags relating to the closing of this ledger. | +| `close_time` | Number | UInt32 | The [approximate time this ledger version closed](../../../concepts/ledgers/ledger-close-times.md), as the number of seconds since the Ripple Epoch of 2000-01-01 00:00:00 UTC. This value is rounded based on the `close_time_resolution`. | +| `close_time_resolution` | Number | Uint8 | An integer in the range \[2,120\] indicating the maximum number of seconds by which the `close_time` could be rounded. | +| `closed` | Boolean | Boolean | If `true`, this ledger version is no longer accepting new transactions. (However, unless this ledger version is validated, it might be replaced by a different ledger version with a different set of transactions.) | +| `parent_hash` | String | UInt256 | The `ledger_hash` value of the previous ledger version that is the direct predecessor of this one. If there are different versions of the previous ledger index, this indicates from which one the ledger was derived. | | `total_coins` | String | UInt64 | The total number of [drops of XRP][] owned by accounts in the ledger. This omits XRP that has been destroyed by transaction fees. The actual amount of XRP in circulation is lower because some accounts are "black holes" whose keys are not known by anyone. | -| `transaction_hash` | String | UInt256 | The [SHA-512Half][] of the transactions included in this ledger. | - +| `transaction_hash` | String | UInt256 | The [SHA-512Half][] of the transactions included in this ledger. | ## Ledger Index + {% partial file="/docs/_snippets/data_types/ledger_index.md" /%} - - ## Close Flags The ledger has only one flag defined for `closeFlags`: **`sLCF_NoConsensusTime`** (value `1`). If this flag is enabled, it means that validators had different [close times for the ledger](../../../concepts/ledgers/ledger-close-times.md), but built otherwise the same ledger, so they declared consensus while "agreeing to disagree" on the close time. In this case, official `close_time` value of the ledger is 1 second after that of the parent ledger. - ## See Also For ledger basics, see [Ledgers](../../../concepts/ledgers/index.md). diff --git a/docs/references/protocol/transactions/common-fields.md b/docs/references/protocol/transactions/common-fields.md index 1afa546ae1..5d9144301c 100644 --- a/docs/references/protocol/transactions/common-fields.md +++ b/docs/references/protocol/transactions/common-fields.md @@ -1,36 +1,36 @@ --- seo: - description: These common fields can be provided on any XRP Ledger transaction. + description: These common fields can be provided on any XRP Ledger transaction. labels: - Transaction Sending --- + # Transaction Common Fields Every transaction has the same set of common fields, plus additional fields based on the [transaction type](types/index.md). Field names are case-sensitive. The common fields for all transactions are: -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:---------------------|:---------------------|:------------------|:----------|:------------| -| `Account` | String - [Address][] | AccountID | Yes | The [account](../../../concepts/accounts/index.md) that initiated the transaction. | -| `TransactionType` | String | UInt16 | Yes | The type of transaction. Valid [transaction types](types/index.md) include: `Payment`, `OfferCreate`, `TrustSet`, and many others. | -| `Fee` | String - Number | Amount | Yes; [auto-fillable][] | Integer amount of XRP, in drops, to be destroyed as a cost for sending this transaction. Some transaction types have different minimum requirements. See [Transaction Cost][] for details. | -| `Sequence` | Number | UInt32 | Yes; [auto-fillable][] | The [sequence number](../data-types/basic-data-types.md#account-sequence) of the account sending the transaction. A transaction is only valid if the `Sequence` number is exactly 1 greater than the previous transaction from the same account. The special case `0` means the transaction is using a [Ticket](../../../concepts/accounts/tickets.md) instead {% amendment-disclaimer name="TicketBatch" /%}. | -| [`AccountTxnID`](#accounttxnid) | String - [Hash][] | UInt256 | No | Hash value identifying another transaction. If provided, this transaction is only valid if the sending account's previously-sent transaction matches the provided hash. | -| [`Delegate`](#delegate) | String - [Address][] | AccountID | No | A delegate account that is sending the transaction on behalf of the `Account`. {% amendment-disclaimer name="PermissionDelegation" /%} | -| [`Flags`](#flags-field) | Number | UInt32 | No | Set of bit-flags for this transaction. | -| `LastLedgerSequence` | Number | UInt32 | No; [auto-fillable][] | Highest ledger index this transaction can appear in. Specifying this field places a strict upper limit on how long the transaction can wait to be validated or rejected. See [Reliable Transaction Submission](../../../concepts/transactions/reliable-transaction-submission.md) for more details. | -| [`Memos`](#memos-field) | Array of Objects | Array | No | Additional arbitrary information attached to this transaction. | -| [`NetworkID`](#networkid-field) | Number | UInt32 | _Network-specific_ | The network ID of the chain this transaction is intended for. **MUST BE OMITTED** for Mainnet and some test networks. **REQUIRED** on chains whose network ID is 1025 or higher. | -| [`Signers`](#signers-field) | Array | Array | No | Array of objects that represent a [multi-signature](../../../concepts/accounts/multi-signing.md) which authorizes this transaction. | -| `SourceTag` | Number | UInt32 | No | Arbitrary integer used to identify the reason for this payment, or a sender on whose behalf this transaction is made. Conventionally, a refund should specify the initial payment's `SourceTag` as the refund payment's `DestinationTag`. | -| `SigningPubKey` | String - Hexadecimal | Blob | _Automatically added when signing_ | The public key that corresponds to the private key used to sign this transaction. If an empty string, indicates a multi-signature is present in the `Signers` field instead. | -| `TicketSequence` | Number | UInt32 | No | The sequence number of the [ticket](../../../concepts/accounts/tickets.md) to use in place of a `Sequence` number. If this is provided, `Sequence` must be `0`. Cannot be used with `AccountTxnID`. | -| `TxnSignature` | String - Hexadecimal | Blob | _Automatically added when signing_ | The signature that verifies this transaction as originating from the account it says it is from. | +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :------------------------------ | :------------------- | :---------------- | :--------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Account` | String - [Address][] | AccountID | Yes | The [account](../../../concepts/accounts/index.md) that initiated the transaction. | +| `TransactionType` | String | UInt16 | Yes | The type of transaction. Valid [transaction types](types/index.md) include: `Payment`, `OfferCreate`, `TrustSet`, and many others. | +| `Fee` | String - Number | Amount | Yes; [auto-fillable][] | Integer amount of XRP, in drops, to be destroyed as a cost for sending this transaction. Some transaction types have different minimum requirements. See [Transaction Cost][] for details. | +| `Sequence` | Number | UInt32 | Yes; [auto-fillable][] | The [sequence number](../data-types/basic-data-types.md#account-sequence) of the account sending the transaction. A transaction is only valid if the `Sequence` number is exactly 1 greater than the previous transaction from the same account. The special case `0` means the transaction is using a [Ticket](../../../concepts/accounts/tickets.md) instead {% amendment-disclaimer name="TicketBatch" /%}. | +| [`AccountTxnID`](#accounttxnid) | String - [Hash][] | UInt256 | No | Hash value identifying another transaction. If provided, this transaction is only valid if the sending account's previously-sent transaction matches the provided hash. | +| [`Delegate`](#delegate) | String - [Address][] | AccountID | No | A delegate account that is sending the transaction on behalf of the `Account`. {% amendment-disclaimer name="PermissionDelegation" /%} | +| [`Flags`](#flags-field) | Number | UInt32 | No | Set of bit-flags for this transaction. | +| `LastLedgerSequence` | Number | UInt32 | No; [auto-fillable][] | Highest ledger index this transaction can appear in. Specifying this field places a strict upper limit on how long the transaction can wait to be validated or rejected. See [Reliable Transaction Submission](../../../concepts/transactions/reliable-transaction-submission.md) for more details. | +| [`Memos`](#memos-field) | Array of Objects | Array | No | Additional arbitrary information attached to this transaction. | +| [`NetworkID`](#networkid-field) | Number | UInt32 | _Network-specific_ | The network ID of the chain this transaction is intended for. **MUST BE OMITTED** for Mainnet and some test networks. **REQUIRED** on chains whose network ID is 1025 or higher. | +| [`Signers`](#signers-field) | Array | Array | No | Array of objects that represent a [multi-signature](../../../concepts/accounts/multi-signing.md) which authorizes this transaction. | +| `SourceTag` | Number | UInt32 | No | Arbitrary integer used to identify the reason for this payment, or a sender on whose behalf this transaction is made. Conventionally, a refund should specify the initial payment's `SourceTag` as the refund payment's `DestinationTag`. | +| `SigningPubKey` | String - Hexadecimal | Blob | _Automatically added when signing_ | The public key that corresponds to the private key used to sign this transaction. If an empty string, indicates a multi-signature is present in the `Signers` field instead. | +| `TicketSequence` | Number | UInt32 | No | The sequence number of the [ticket](../../../concepts/accounts/tickets.md) to use in place of a `Sequence` number. If this is provided, `Sequence` must be `0`. Cannot be used with `AccountTxnID`. | +| `TxnSignature` | String - Hexadecimal | Blob | _Automatically added when signing_ | The signature that verifies this transaction as originating from the account it says it is from. | [auto-fillable]: #auto-fillable-fields {% badge href="https://github.com/XRPLF/rippled/releases/tag/0.28.0" %}Removed in: rippled 0.28.0{% /badge %}: The `PreviousTxnID` field of transactions was replaced by the [`AccountTxnID`](#accounttxnid) field. This String / UInt256 field is present in some historical transactions. This is unrelated to the field also named `PreviousTxnID` in some [ledger objects](../ledger-data/index.md). - ## AccountTxnID @@ -43,16 +43,15 @@ One situation in which this is useful is if you have a primary system for submit The `AccountTxnID` field cannot be used on transactions that use [Tickets](../../../concepts/accounts/tickets.md). Transactions that use `AccountTxnID` cannot be placed in the [transaction queue](../../../concepts/transactions/transaction-queue.md). - ## Auto-fillable Fields Some fields can be automatically filled in before a transaction is signed, either by a `rippled` server or by a [client library](../../client-libraries.md). Auto-filling values requires an active connection to the XRP Ledger to get the latest state, so it cannot be done offline. The details can vary by library, but auto-filling always provides suitable values for at least the following fields: -* `Fee` - Automatically fill in the [Transaction Cost][] based on the network. +- `Fee` - Automatically fill in the [Transaction Cost][] based on the network. - {% admonition type="info" name="Note" %}When using `rippled`'s [sign command][], you can limit the maximum possible auto-filled value, using the `fee_mult_max` and `fee_div_max` parameters.{% /admonition %} + {% admonition type="info" name="Note" %}When using `rippled`'s [sign command][], you can limit the maximum possible auto-filled value, using the `fee_mult_max` and `fee_div_max` parameters.{% /admonition %} -* `Sequence` - Automatically use the next sequence number for the account sending the transaction. +- `Sequence` - Automatically use the next sequence number for the account sending the transaction. For a production system, we recommend _not_ leaving these fields to be filled by the server. For example, if transaction costs become high due to a temporary spike in network load, you may want to wait for the cost to decrease before sending some transactions, instead of paying the temporarily-high cost. @@ -83,10 +82,10 @@ Bits that are not defined as flags MUST be 0. (The [fix1543 amendment][] enforce The only flags that apply globally to all transactions are as follows: -| Flag Name | Hex Value | Decimal Value | Description | -|:----------------------|:-----------|:--------------|:--------------------------| -| `tfFullyCanonicalSig` | `0x80000000` | 2147483648 | **DEPRECATED** No effect. (If the [RequireFullyCanonicalSig amendment][] is not enabled, this flag enforces a [fully-canonical signature](../../../concepts/transactions/finality-of-results/transaction-malleability.md#alternate-secp256k1-signatures).) | -| `tfInnerBatchTxn` | `0x40000000` | 1073741824 | This flag is only used if a transaction is an inner transaction in a [Batch][] transaction. This signifies that the transaction isn't signed. Any normal transaction that includes this flag is rejected. | +| Flag Name | Hex Value | Decimal Value | Description | +| :-------------------- | :----------- | :------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `tfFullyCanonicalSig` | `0x80000000` | 2147483648 | **DEPRECATED** No effect. (If the [RequireFullyCanonicalSig amendment][] is not enabled, this flag enforces a [fully-canonical signature](../../../concepts/transactions/finality-of-results/transaction-malleability.md#alternate-secp256k1-signatures).) | +| `tfInnerBatchTxn` | `0x40000000` | 1073741824 | This flag is only used if a transaction is an inner transaction in a [Batch][] transaction. This signifies that the transaction isn't signed. Any normal transaction that includes this flag is rejected. | When using the [sign method][] (or [submit method][] in "sign-and-submit" mode), `rippled` adds a `Flags` field with `tfFullyCanonicalSig` enabled unless the `Flags` field is already present. The `tfFullyCanonicalSig` flag is not automatically enabled if `Flags` is explicitly specified. The flag is not automatically enabled when using the [sign_for method][] to add a signature to a multi-signed transaction. @@ -96,23 +95,23 @@ When using the [sign method][] (or [submit method][] in "sign-and-submit" mode), A transaction's `Flags` field can contain flags that apply at different levels or contexts. Flags for each context are limited to the following ranges: -| Range Name | Bit Mask | Description | -|:-----------------|:-------------|:-------------------------------------------| -| Universal Flags | `0xff000000` | Flags that apply equally to all transaction types. | +| Range Name | Bit Mask | Description | +| :--------------- | :----------- | :------------------------------------------------------------------------------------------------ | +| Universal Flags | `0xff000000` | Flags that apply equally to all transaction types. | | Type-based Flags | `0x00ff0000` | Flags with different meanings depending on the [transaction type](types/index.md) that uses them. | -| Reserved Flags | `0x0000ffff` | Flags that are not currently defined. A transaction is only valid if these flags are disabled. | +| Reserved Flags | `0x0000ffff` | Flags that are not currently defined. A transaction is only valid if these flags are disabled. | {% admonition type="info" name="Note" %}The [AccountSet transaction][] type has [its own non-bitwise flags](types/accountset.md#accountset-flags), which serve a similar purpose to type-based flags. [Ledger objects](../ledger-data/ledger-entry-types/index.md) also have a `Flags` field with different bitwise flag definitions.{% /admonition %} ## Memos Field -The `Memos` field includes arbitrary messaging data with the transaction. It is presented as an array of objects. Each object has only one field, `Memo`, which in turn contains another object with *one or more* of the following fields: +The `Memos` field includes arbitrary messaging data with the transaction. It is presented as an array of objects. Each object has only one field, `Memo`, which in turn contains another object with _one or more_ of the following fields: -| Field | Type | [Internal Type][] | Description | -|:-------------|:-------|:------------------|:---------------------------------| -| `MemoData` | String | Blob | Arbitrary hex value, conventionally containing the content of the memo. | +| Field | Type | [Internal Type][] | Description | +| :----------- | :----- | :---------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `MemoData` | String | Blob | Arbitrary hex value, conventionally containing the content of the memo. | | `MemoFormat` | String | Blob | Hex value representing characters allowed in URLs. Conventionally containing information on how the memo is encoded, for example as a [MIME type](http://www.iana.org/assignments/media-types/media-types.xhtml). | -| `MemoType` | String | Blob | Hex value representing characters allowed in URLs. Conventionally, a unique relation (according to [RFC 5988](http://tools.ietf.org/html/rfc5988#section-4)) that defines the format of this memo. | +| `MemoType` | String | Blob | Hex value representing characters allowed in URLs. Conventionally, a unique relation (according to [RFC 5988](http://tools.ietf.org/html/rfc5988#section-4)) that defines the format of this memo. | The `MemoType` and `MemoFormat` fields should only consist of the following characters: `ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~:/?#[]@!$&'()*+,;=%` @@ -122,54 +121,54 @@ Example of a transaction with a Memos field: ```json { - "TransactionType": "Payment", - "Account": "rMmTCjGFRWPz8S2zAUUoNVSQHxtRQD4eCx", - "Destination": "r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV", - "Memos": [ - { - "Memo": { - "MemoType": "687474703a2f2f6578616d706c652e636f6d2f6d656d6f2f67656e65726963", - "MemoData": "72656e74" - } - } - ], - "Amount": "1" + "TransactionType": "Payment", + "Account": "rMmTCjGFRWPz8S2zAUUoNVSQHxtRQD4eCx", + "Destination": "r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV", + "Memos": [ + { + "Memo": { + "MemoType": "687474703a2f2f6578616d706c652e636f6d2f6d656d6f2f67656e65726963", + "MemoData": "72656e74" + } + } + ], + "Amount": "1" } ``` ## NetworkID Field + {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.11.0" %}New in: rippled 1.11.0{% /badge %} The `NetworkID` field is a protection against "cross-chain" transaction replay attacks, preventing the same transaction from being copied over and executing on a [parallel network](../../../concepts/networks-and-servers/parallel-networks.md) that it wasn't intended for. For compatibility with existing chains, the `NetworkID` field must be omitted on any network with a Network ID of 1024 or less, but must be included on any network with a Network ID of 1025 or greater. The following table shows the status and values for various known networks: -| Network | ID | `NetworkID` Field | -| ------------------------------- | ----- | ---------------------------------------------------- | -| Mainnet | 0 | Disallowed | -| Testnet | 1 | Disallowed | -| Devnet | 2 | Disallowed | -| Batch Testnet | 21336 | Required | -| Xahau Mainnet | 21337 | Required | -| Xahau Testnet | 21338 | Required | -| JS Hooks Testnet | 31338 | Required | +| Network | ID | `NetworkID` Field | +| ---------------- | ----- | ----------------- | +| Mainnet | 0 | Disallowed | +| Testnet | 1 | Disallowed | +| Devnet | 2 | Disallowed | +| Batch Testnet | 21336 | Required | +| Xahau Mainnet | 21337 | Required | +| Xahau Testnet | 21338 | Required | +| JS Hooks Testnet | 31338 | Required | Transaction replay attacks are theoretically possible, but require specific conditions on the second network. All of the following must be true: - The transaction's sender is a funded account on the second network. - The sender's `Sequence` number on the second network matches the transaction's `Sequence`, or the transaction uses a [Ticket](../../../concepts/accounts/tickets.md) that's available on the second network. - Either the transaction does not have a `LastLedgerSequence` field, or it specifies a value that is higher than the current ledger index on the second ledger. - - Mainnet generally has a higher ledger index than test networks or sidechains, so it is easier to replay Mainnet transactions on a sidechain or test network than the other way around, when transactions use `LastLedgerSequence` as intended. + - Mainnet generally has a higher ledger index than test networks or sidechains, so it is easier to replay Mainnet transactions on a sidechain or test network than the other way around, when transactions use `LastLedgerSequence` as intended. - Either the networks both have IDs of 1024 or less, both networks use the same ID, or the second network does not require the `NetworkID` field. - ## Signers Field The `Signers` field contains a [multi-signature](../../../concepts/accounts/multi-signing.md), which has signatures from up to 32 key pairs, that together should authorize the transaction. The `Signers` list is an array of objects, each with one field, `Signer`. The `Signer` field has the following nested fields: -| Field | Type | [Internal Type][] | Description | -|:----------------|:-------|:------------------|:--------------------------------| +| Field | Type | [Internal Type][] | Description | +| :-------------- | :----- | :---------------- | :---------------------------------------------------------------------------- | | `Account` | String | AccountID | The address associated with this signature, as it appears in the signer list. | -| `TxnSignature` | String | Blob | A signature for this transaction, verifiable using the `SigningPubKey`. | -| `SigningPubKey` | String | Blob | The public key used to create this signature. | +| `TxnSignature` | String | Blob | A signature for this transaction, verifiable using the `SigningPubKey`. | +| `SigningPubKey` | String | Blob | The public key used to create this signature. | The `SigningPubKey` must be a key that is associated with the `Account` address. If the referenced `Account` is a funded account in the ledger, then the `SigningPubKey` can be that account's current Regular Key if one is set. It could also be that account's Master Key, unless the [`lsfDisableMaster`](../ledger-data/ledger-entry-types/accountroot.md#accountroot-flags) flag is enabled. If the referenced `Account` address is not a funded account in the ledger, then the `SigningPubKey` must be the master key associated with that address. diff --git a/docs/references/protocol/transactions/index.md b/docs/references/protocol/transactions/index.md index 2249ae3ec7..aaea9d761a 100644 --- a/docs/references/protocol/transactions/index.md +++ b/docs/references/protocol/transactions/index.md @@ -2,15 +2,15 @@ html: transaction-formats.html parent: protocol-reference.html seo: - description: Definitions for all the protocol's transaction types and their results. + description: Definitions for all the protocol's transaction types and their results. metadata: indexPage: true --- + # Transaction Reference A _Transaction_ is the only way to cause changes in the XRP Ledger. Transactions' outcomes are only [final](../../../concepts/transactions/finality-of-results/index.md) if signed, submitted, and accepted into a validated ledger version following the [consensus process](../../../concepts/consensus-protocol/index.md). Some ledger rules also generate _[pseudo-transactions](pseudo-transaction-types/index.md)_, which aren't signed or submitted, but still must be accepted by consensus. Transactions that fail are also included in ledgers because they modify balances of XRP to pay for the anti-spam [transaction cost][]. {% raw-partial file="/docs/_snippets/common-links.md" /%} - {% child-pages /%} diff --git a/docs/references/protocol/transactions/metadata.md b/docs/references/protocol/transactions/metadata.md index 34e882d522..946a64680d 100644 --- a/docs/references/protocol/transactions/metadata.md +++ b/docs/references/protocol/transactions/metadata.md @@ -2,10 +2,11 @@ html: transaction-metadata.html parent: transaction-formats.html seo: - description: Transaction metadata describes the outcome of the transaction in detail, regardless of whether the transaction is successful. + description: Transaction metadata describes the outcome of the transaction in detail, regardless of whether the transaction is successful. labels: - Blockchain --- + # Transaction Metadata Transaction metadata is a section of data that gets added to a transaction after it is processed. Any transaction that gets included in a ledger has metadata, regardless of whether it is successful. The transaction metadata describes the outcome of the transaction in detail. @@ -14,8 +15,7 @@ Transaction metadata is a section of data that gets added to a transaction after Some fields that may appear in transaction metadata include: -{% partial file="/docs/_snippets/tx-metadata-field-table.md" /%} - +{% partial file="/docs/_snippets/tx-metadata-field-table.md" /%} ## Example Metadata @@ -194,7 +194,6 @@ The following JSON object shows the metadata for an order, [trading XRP for USD] } ``` - ## AffectedNodes The `AffectedNodes` array contains a complete list of the [ledger entries](../ledger-data/ledger-entry-types/index.md) that this transaction modified in some way. Each item in this array is an object with one top-level field indicating what happened: @@ -205,7 +204,6 @@ The `AffectedNodes` array contains a complete list of the [ledger entries](../le The value of each of these fields is a JSON object describing the changes made to the ledger entry. - ### CreatedNode Fields A `CreatedNode` object contains the following fields: @@ -216,7 +214,6 @@ A `CreatedNode` object contains the following fields: | `LedgerIndex` | String - [Hash][] | The [ID of this ledger entry](../ledger-data/common-fields.md) in the ledger's [state tree](../../../concepts/ledgers/index.md). **Note:** This is **not the same** as a [ledger index](../data-types/basic-data-types.md#ledger-index), even though the field name is very similar. | | `NewFields` | Object | The content fields of the newly created ledger entry. Which fields are present depends on what type of ledger entry was created. | - ### DeletedNode Fields A `DeletedNode` object contains the following fields: @@ -226,8 +223,7 @@ A `DeletedNode` object contains the following fields: | `LedgerEntryType` | String | The [type of ledger entry](../ledger-data/ledger-entry-types/index.md) that was deleted. | | `LedgerIndex` | String - [Hash][] | The [ID of this ledger entry](../ledger-data/common-fields.md) in the ledger's [state tree](../../../concepts/ledgers/index.md). **Note:** This is **not the same** as a [ledger index](../data-types/basic-data-types.md#ledger-index), even though the field name is very similar. | | `FinalFields` | Object | The content fields of the ledger entry immediately before it was deleted. Which fields are present depends on what type of ledger entry was created. | -| `PreviousFields` | Object | _(May be omitted)_ Selected fields of the ledger entry before it was deleted. Which fields are present depends on what type of ledger entry was created. | - +| `PreviousFields` | Object | _(May be omitted)_ Selected fields of the ledger entry before it was deleted. Which fields are present depends on what type of ledger entry was created. | ### ModifiedNode Fields @@ -240,11 +236,10 @@ A `ModifiedNode` object contains the following fields: | `FinalFields` | Object | The content fields of the ledger entry after applying any changes from this transaction. Which fields are present depends on what type of ledger entry was created. This omits the `PreviousTxnID` and `PreviousTxnLgrSeq` fields, even though most types of ledger entries have them. | | `PreviousFields` | Object | The previous values for all fields of the object that were changed as a result of this transaction. If the transaction _only added_ fields to the object, this field is an empty object. | | `PreviousTxnID` | String - [Hash][] | _(May be omitted)_ The [identifying hash][] of the previous transaction to modify this ledger entry. Omitted for ledger entry types that do not have a `PreviousTxnID` field. | -| `PreviousTxnLgrSeq` | Number - [Ledger Index][] | _(May be omitted)_ The [Ledger Index][] of the ledger version containing the previous transaction to modify this ledger entry. Omitted for ledger entry types that do not have a `PreviousTxnLgrSeq` field. | +| `PreviousTxnLgrSeq` | Number - [Ledger Index][] | _(May be omitted)_ The [Ledger Index][] of the ledger version containing the previous transaction to modify this ledger entry. Omitted for ledger entry types that do not have a `PreviousTxnLgrSeq` field. | {% admonition type="info" name="Note" %}If the modified ledger entry has `PreviousTxnID` and `PreviousTxnLgrSeq` fields, the transaction always updates them with the transaction's own identifying hash and the index of the ledger version that included the transaction, but these fields' new value is not listed in the `FinalFields` of the `ModifiedNode` object, and their previous values are listed at the top level of the `ModifiedNode` object rather than in the nested `PreviousFields` object.{% /admonition %} - ## NFT Fields Transactions (`tx` and `account_tx`) involving NFTs can contain the following fields in the metadata. These values are added by the Clio server at request time and are not stored in the hashed binary metadata: @@ -254,14 +249,17 @@ Transactions (`tx` and `account_tx`) involving NFTs can contain the following fi | `nftoken_id` | String | Shows the `NFTokenID` for the `NFToken` that changed on the ledger as a result of the transaction. Only present if the transaction is `NFTokenMint` or `NFTokenAcceptOffer`. See [NFTokenID](../data-types/nftoken.md#nftokenid). | | `nftoken_ids` | Array | Shows all the `NFTokenIDs` for the `NFTokens` that changed on the ledger as a result of the transaction. Only present if the transaction is `NFTokenCancelOffer`. | | `offer_id` | String | Shows the `OfferID`of a new `NFTokenOffer` in a response from a `NFTokenCreateOffer` transaction. | + ## MPT Fields {% amendment-disclaimer name="MPTokensV1" /%} ### Synthetic mpt_issuance_id field + `MPTokenIssuanceID` is an identifier that allows you to specify an `MPTokenIssuance` in RPCs. The server adds a synthetically parsed `mpt_issuance_id` field to API responses to avoid the need for client-side parsing of the `MPTokenIssuanceID`. ### Transaction Metadata + An `mpt_issuance_id` field is provided in JSON transaction metadata (not available for binary) for all successful `MPTokenIssuanceCreate` transactions. The following APIs are impacted: `tx`, `account_tx`, `subscribe` and `ledger`. ## delivered_amount @@ -270,8 +268,8 @@ The `Amount` of a [Payment transaction][] indicates the amount to deliver to the The `rippled` server provides a `delivered_amount` field in JSON transaction metadata for all successful Payment transactions. This field is formatted like a normal currency amount. However, the delivered amount is not available for transactions that meet both of the following criteria: -* Is a partial payment -* Included in a validated ledger before 2014-01-20 +- Is a partial payment +- Included in a validated ledger before 2014-01-20 If both conditions are true, then `delivered_amount` contains the string value `unavailable` instead of an actual amount. If this happens, you can only figure out the actual delivered amount by reading the `AffectedNodes` in the transaction's metadata. diff --git a/docs/references/protocol/transactions/pseudo-transaction-types/enableamendment.md b/docs/references/protocol/transactions/pseudo-transaction-types/enableamendment.md index 325578e5dc..11cc8d3476 100644 --- a/docs/references/protocol/transactions/pseudo-transaction-types/enableamendment.md +++ b/docs/references/protocol/transactions/pseudo-transaction-types/enableamendment.md @@ -1,10 +1,12 @@ --- seo: - description: Enable a change in transaction processing. + description: Enable a change in transaction processing. labels: - - Blockchain + - Blockchain --- + # EnableAmendment + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/Change.cpp "Source") An `EnableAmendment` [pseudo-transaction](./index.md) marks a change in the status of a proposed [amendment to the protocol](../../../../concepts/networks-and-servers/amendments.md). The possible status changes are: @@ -26,16 +28,15 @@ An `EnableAmendment` [pseudo-transaction](./index.md) marks a change in the stat "Sequence": 0, "SigningPubKey": "", "TransactionType": "EnableAmendment" -} +} ``` - {% partial file="/docs/_snippets/pseudo-tx-fields-intro.md" /%} -| Field | JSON Type | [Internal Type][] | Description | -|:-----------------|:----------|:------------------|:--------------------------| +| Field | JSON Type | [Internal Type][] | Description | +| :--------------- | :-------- | :---------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `Amendment` | String | UInt256 | A unique identifier for the amendment. This is not intended to be a human-readable name. See [Known Amendments](../../../../../resources/known-amendments.md) for a list of known amendments. | -| `LedgerSequence` | Number | UInt32 | The [ledger index][] where this pseudo-transaction appears. This distinguishes the pseudo-transaction from other occurrences of the same change. | +| `LedgerSequence` | Number | UInt32 | The [ledger index][] where this pseudo-transaction appears. This distinguishes the pseudo-transaction from other occurrences of the same change. | ## EnableAmendment Flags @@ -43,9 +44,9 @@ The `Flags` value of the EnableAmendment pseudo-transaction indicates the status A `Flags` value of `0` (no flags) or an omitted `Flags` field indicates that the amendment has been enabled, and applies to all ledgers afterward. Other `Flags` values are as follows: -| Flag Name | Hex Value | Decimal Value | Description | -|:-----------------|:-------------|:--------------|:---------------------------| -| `tfGotMajority` | `0x00010000` | 65536 | Support for this amendment increased to at least 80% of trusted validators starting with this ledger version. | +| Flag Name | Hex Value | Decimal Value | Description | +| :--------------- | :----------- | :------------ | :------------------------------------------------------------------------------------------------------------- | +| `tfGotMajority` | `0x00010000` | 65536 | Support for this amendment increased to at least 80% of trusted validators starting with this ledger version. | | `tfLostMajority` | `0x00020000` | 131072 | Support for this amendment decreased to less than 80% of trusted validators starting with this ledger version. | {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/protocol/transactions/pseudo-transaction-types/index.md b/docs/references/protocol/transactions/pseudo-transaction-types/index.md index 2a49e57546..8d843156d8 100644 --- a/docs/references/protocol/transactions/pseudo-transaction-types/index.md +++ b/docs/references/protocol/transactions/pseudo-transaction-types/index.md @@ -2,12 +2,13 @@ html: pseudo-transaction-types.html parent: transaction-formats.html seo: - description: Formats of pseudo-transactions that validators sometimes apply to the XRP Ledger. + description: Formats of pseudo-transactions that validators sometimes apply to the XRP Ledger. metadata: indexPage: true labels: - Blockchain --- + # Pseudo-Transactions Pseudo-transactions are never submitted by users, nor [propagated through the network](../../../../concepts/networks-and-servers/peer-protocol.md). Instead, a server may choose to inject pseudo-transactions in a proposed ledger directly according to specific protocol rules. If enough servers propose the exact same pseudo-transaction, the [consensus process](../../../../concepts/consensus-protocol/index.md) approves it, and the pseudo-transaction is included in that ledger's transaction data. @@ -16,25 +17,24 @@ Pseudo-transactions are never submitted by users, nor [propagated through the ne Some of the required [common fields][] for normal transactions do not make sense for pseudo-transactions. Pseudo-transactions use following special values for these common fields: -| Field | JSON Type | [Internal Type][] | Value | -|:----------------|:----------|:------------------|:---------------------------| +| Field | JSON Type | [Internal Type][] | Value | +| :-------------- | :-------- | :---------------- | :--------------------------------------------------------------------------- | | `Account` | String | AccountID | [ACCOUNT_ZERO](../../../../concepts/accounts/addresses.md#special-addresses) | -| `Fee` | String | Amount | `0` | -| `Sequence` | Number | UInt32 | `0` | -| `SigningPubKey` | String | Blob | `""` (Empty string) | -| `TxnSignature` | String | Blob | `""` (Empty string) | +| `Fee` | String | Amount | `0` | +| `Sequence` | Number | UInt32 | `0` | +| `SigningPubKey` | String | Blob | `""` (Empty string) | +| `TxnSignature` | String | Blob | `""` (Empty string) | Pseudo-transactions use the following common fields as normal: - `TransactionType` - `Flags` -| Field | JSON Type | [Internal Type][] | Description | -|:------------------|:----------|:------------------|:-------------------------| -| `TransactionType` | String | UInt16 | _(Required)_ The type of transaction. | +| Field | JSON Type | [Internal Type][] | Description | +| :---------------- | :-------- | :---------------- | :------------------------------------------------------------------------------------------------------------------------ | +| `TransactionType` | String | UInt16 | _(Required)_ The type of transaction. | | `Flags` | Number | UInt32 | _(Optional)_ A set of bit-flags for this transaction. The meaning of specific flags varies based on the transaction type. | {% raw-partial file="/docs/_snippets/common-links.md" /%} - {% child-pages /%} diff --git a/docs/references/protocol/transactions/pseudo-transaction-types/setfee.md b/docs/references/protocol/transactions/pseudo-transaction-types/setfee.md index 1c68c4c25d..299dbcb615 100644 --- a/docs/references/protocol/transactions/pseudo-transaction-types/setfee.md +++ b/docs/references/protocol/transactions/pseudo-transaction-types/setfee.md @@ -1,10 +1,12 @@ --- seo: - description: Change global reserve and transaction cost settings. + description: Change global reserve and transaction cost settings. labels: - - Fees + - Fees --- + # SetFee + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/Change.cpp "Source") A `SetFee` [pseudo-transaction](./index.md) marks a change in [transaction cost](../../../../concepts/transactions/transaction-cost.md) or [reserve requirements](../../../../concepts/accounts/reserves.md) as a result of [fee voting](../../../../concepts/consensus-protocol/fee-voting.md). @@ -17,40 +19,44 @@ This transaction has two formats, depending on whether the [XRPFees amendment][] {% tabs %} {% tab label="Current Format" %} + ```json { - "Account": "rrrrrrrrrrrrrrrrrrrrrhoLvTp", - "BaseFeeDrops": "10", - "Fee": "0", - "LedgerSequence": 92508417, - "ReserveBaseDrops": "1000000", - "ReserveIncrementDrops": "200000", - "Sequence": 0, - "SigningPubKey": "", - "TransactionType": "SetFee", - "date": 786494751, - "ledger_index": 92508417 + "Account": "rrrrrrrrrrrrrrrrrrrrrhoLvTp", + "BaseFeeDrops": "10", + "Fee": "0", + "LedgerSequence": 92508417, + "ReserveBaseDrops": "1000000", + "ReserveIncrementDrops": "200000", + "Sequence": 0, + "SigningPubKey": "", + "TransactionType": "SetFee", + "date": 786494751, + "ledger_index": 92508417 } ``` + {% /tab %} {% tab label="Legacy Format" %} + ```json { - "Account": "rrrrrrrrrrrrrrrrrrrrrhoLvTp", - "BaseFee": "000000000000000A", - "Fee": "0", - "ReferenceFeeUnits": 10, - "ReserveBase": 20000000, - "ReserveIncrement": 5000000, - "Sequence": 0, - "SigningPubKey": "", - "TransactionType": "SetFee", - "date": 439578860, - "hash": "1C15FEA3E1D50F96B6598607FC773FF1F6E0125F30160144BE0C5CBC52F5151B", - "ledger_index": 3721729, + "Account": "rrrrrrrrrrrrrrrrrrrrrhoLvTp", + "BaseFee": "000000000000000A", + "Fee": "0", + "ReferenceFeeUnits": 10, + "ReserveBase": 20000000, + "ReserveIncrement": 5000000, + "Sequence": 0, + "SigningPubKey": "", + "TransactionType": "SetFee", + "date": 439578860, + "hash": "1C15FEA3E1D50F96B6598607FC773FF1F6E0125F30160144BE0C5CBC52F5151B", + "ledger_index": 3721729 } ``` + {% /tab %} {% /tabs %} @@ -62,22 +68,22 @@ The fields of a SetFee pseudo-transaction depend on whether the [XRPFees amendme {% tabs %} {% tab label="Current Format" %} -| Field | JSON Type | [Internal Type][] | Description | +| Field | JSON Type | [Internal Type][] | Description | |:------------------------|:----------|:------------------|:----------------| -| `BaseFeeDrops` | String | Amount | The charge, in drops of XRP, for the reference transaction. (This is the [transaction cost](../../../../concepts/transactions/transaction-cost.md) before scaling for load.) | -| `ReserveBaseDrops` | String | Amount | The base reserve, in drops. | -| `ReserveIncrementDrops` | String | Amount | The incremental reserve, in drops. | -| `LedgerSequence` | Number | UInt32 | _(Omitted for some historical `SetFee` pseudo-transactions)_ The index of the ledger version where this pseudo-transaction appears. This distinguishes the pseudo-transaction from other occurrences of the same change. | +| `BaseFeeDrops` | String | Amount | The charge, in drops of XRP, for the reference transaction. (This is the [transaction cost](../../../../concepts/transactions/transaction-cost.md) before scaling for load.) | +| `ReserveBaseDrops` | String | Amount | The base reserve, in drops. | +| `ReserveIncrementDrops` | String | Amount | The incremental reserve, in drops. | +| `LedgerSequence` | Number | UInt32 | _(Omitted for some historical `SetFee` pseudo-transactions)_ The index of the ledger version where this pseudo-transaction appears. This distinguishes the pseudo-transaction from other occurrences of the same change. | {% /tab %} {% tab label="Legacy Format" %} -| Field | JSON Type | [Internal Type][] | Description | +| Field | JSON Type | [Internal Type][] | Description | |:--------------------|:----------|:------------------|:----------------| -| `BaseFee` | String | UInt64 | The charge, in drops of XRP, for the reference transaction, as hex. (This is the [transaction cost](../../../../concepts/transactions/transaction-cost.md) before scaling for load.) | -| `ReferenceFeeUnits` | Number | UInt32 | The cost, in fee units, of the reference transaction. | -| `ReserveBase` | Number | UInt32 | The base reserve, in drops. | -| `ReserveIncrement` | Number | UInt32 | The incremental reserve, in drops | -| `LedgerSequence` | Number | UInt32 | _(Omitted for some historical `SetFee` pseudo-transactions)_ The index of the ledger version where this pseudo-transaction appears. This distinguishes the pseudo-transaction from other occurrences of the same change. | +| `BaseFee` | String | UInt64 | The charge, in drops of XRP, for the reference transaction, as hex. (This is the [transaction cost](../../../../concepts/transactions/transaction-cost.md) before scaling for load.) | +| `ReferenceFeeUnits` | Number | UInt32 | The cost, in fee units, of the reference transaction. | +| `ReserveBase` | Number | UInt32 | The base reserve, in drops. | +| `ReserveIncrement` | Number | UInt32 | The incremental reserve, in drops | +| `LedgerSequence` | Number | UInt32 | _(Omitted for some historical `SetFee` pseudo-transactions)_ The index of the ledger version where this pseudo-transaction appears. This distinguishes the pseudo-transaction from other occurrences of the same change. | {% /tab %} {% /tabs %} diff --git a/docs/references/protocol/transactions/pseudo-transaction-types/unlmodify.md b/docs/references/protocol/transactions/pseudo-transaction-types/unlmodify.md index fb463c8a81..8522759813 100644 --- a/docs/references/protocol/transactions/pseudo-transaction-types/unlmodify.md +++ b/docs/references/protocol/transactions/pseudo-transaction-types/unlmodify.md @@ -1,10 +1,12 @@ --- seo: - description: Change the list of trusted validators currently considered offline. + description: Change the list of trusted validators currently considered offline. labels: - - Blockchain + - Blockchain --- + # UNLModify + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/Change.cpp "Source") A `UNLModify` [pseudo-transaction](./index.md) marks a change to the [Negative UNL](../../../../concepts/consensus-protocol/negative-unl.md), indicating that a trusted validator has gone offline or come back online. @@ -24,17 +26,17 @@ A `UNLModify` [pseudo-transaction](./index.md) marks a change to the [Negative U "SigningPubKey": "", "TransactionType": "UNLModify", "UNLModifyDisabling": 1, - "UNLModifyValidator": "ED6629D456285AE3613B285F65BBFF168D695BA3921F309949AFCD2CA7AFEC16FE", + "UNLModifyValidator": "ED6629D456285AE3613B285F65BBFF168D695BA3921F309949AFCD2CA7AFEC16FE" } ``` {% partial file="/docs/_snippets/pseudo-tx-fields-intro.md" /%} -| Name | JSON Type | [Internal Type][] | Description | -|:---------------------|:----------|:------------------|:----------------------| -| `TransactionType` | String | UInt16 | The value `0x0066`, mapped to the string `UNLModify`, indicates that this object is an `UNLModify` pseudo-transaction. | -| `LedgerSequence` | Number | UInt32 | The [ledger index][] where this pseudo-transaction appears. This distinguishes the pseudo-transaction from other occurrences of the same change. | +| Name | JSON Type | [Internal Type][] | Description | +| :------------------- | :-------- | :---------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `TransactionType` | String | UInt16 | The value `0x0066`, mapped to the string `UNLModify`, indicates that this object is an `UNLModify` pseudo-transaction. | +| `LedgerSequence` | Number | UInt32 | The [ledger index][] where this pseudo-transaction appears. This distinguishes the pseudo-transaction from other occurrences of the same change. | | `UNLModifyDisabling` | Number | UInt8 | If `1`, this change represents adding a validator to the Negative UNL. If `0`, this change represents removing a validator from the Negative UNL. (No other values are allowed.) | -| `UNLModifyValidator` | String | Blob | The validator to add or remove, as identified by its master public key. | +| `UNLModifyValidator` | String | Blob | The validator to add or remove, as identified by its master public key. | {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/protocol/transactions/transaction-results/index.md b/docs/references/protocol/transactions/transaction-results/index.md index d57b0de50b..828ecc7d96 100644 --- a/docs/references/protocol/transactions/transaction-results/index.md +++ b/docs/references/protocol/transactions/transaction-results/index.md @@ -2,24 +2,25 @@ html: transaction-results.html parent: transaction-formats.html seo: - description: Learn how to interpret rippled server transaction results. + description: Learn how to interpret rippled server transaction results. labels: - Transaction Sending --- + # Transaction Results [[Source]](https://github.com/XRPLF/rippled/blob/master/src/libxrpl/protocol/TER.cpp "Source") The `rippled` server summarizes transaction results with result codes, which appear in fields such as `engine_result` and `meta.TransactionResult`. These codes are grouped into several categories of with different prefixes: -| Category | Prefix | Description | -|:----------------------|:--------------------------|:-------------------------| -| Claimed cost only | [`tec`](tec-codes.md) | The transaction did not achieve its intended purpose, but the [transaction cost](../../../../concepts/transactions/transaction-cost.md) was destroyed. This result is only final in a validated ledger. | +| Category | Prefix | Description | +| :-------------------- | :---------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| Claimed cost only | [`tec`](tec-codes.md) | The transaction did not achieve its intended purpose, but the [transaction cost](../../../../concepts/transactions/transaction-cost.md) was destroyed. This result is only final in a validated ledger. | | Failure | [`tef`](tef-codes.md) | The transaction cannot be applied to the server's current (in-progress) ledger or any later one. It may have already been applied, or the condition of the ledger makes it impossible to apply in the future. | -| Local error | [`tel`](tel-codes.md) | The `rippled` server had an error due to local conditions, such as high load. You may get a different response if you resubmit to a different server or at a different time. | -| Malformed transaction | [`tem`](tem-codes.md) | The transaction was not valid, due to improper syntax, conflicting options, a bad signature, or something else. | -| Retry | [`ter`](ter-codes.md) | The transaction could not be applied, but it could apply successfully in a future ledger. | -| Success | [`tes`](tes-success.md) | (Not an error) The transaction succeeded. This result only final in a validated ledger. | +| Local error | [`tel`](tel-codes.md) | The `rippled` server had an error due to local conditions, such as high load. You may get a different response if you resubmit to a different server or at a different time. | +| Malformed transaction | [`tem`](tem-codes.md) | The transaction was not valid, due to improper syntax, conflicting options, a bad signature, or something else. | +| Retry | [`ter`](ter-codes.md) | The transaction could not be applied, but it could apply successfully in a future ledger. | +| Success | [`tes`](tes-success.md) | (Not an error) The transaction succeeded. This result only final in a validated ledger. | The `rippled` server automatically retries failed transactions. It is important not to assume that a transaction has completely failed based on a tentative failure result. A transaction may later succeed unless its success or failure is [final](../../../../concepts/transactions/finality-of-results/index.md). @@ -29,17 +30,16 @@ The distinction between a local error (`tel`) and a malformed transaction (`tem` By contrast, a `tem` error implies that no server anywhere can apply the transaction, regardless of settings. Either the transaction breaks the rules of the protocol, it is unacceptably ambiguous, or it is completely nonsensical. The only way a malformed transaction could become valid is through changes in the protocol; for example, if a new feature is adopted, then transactions using that feature could be considered malformed by servers that are running older software which predates that feature. - ## Immediate Response The response from the [submit method][] contains a provisional result from the `rippled` server indicating what happened during local processing of the transaction. The response from `submit` contains the following fields: -| Field | Value | Description | -|:------------------------|:---------------|:----------------------------------| -| `engine_result` | String | A code indicating the outcome of the transaction, such as `tecPATH_DRY`. | -| `engine_result_code` | Signed Integer | A number that corresponds to the `engine_result`. The exact values are subject to change without notice. | +| Field | Value | Description | +| :---------------------- | :------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `engine_result` | String | A code indicating the outcome of the transaction, such as `tecPATH_DRY`. | +| `engine_result_code` | Signed Integer | A number that corresponds to the `engine_result`. The exact values are subject to change without notice. | | `engine_result_message` | String | A human-readable message explaining what happened. This message is intended for developers to diagnose problems, and is subject to change without notice. | If nothing went wrong when submitting and applying the transaction locally, the response looks like this: diff --git a/docs/references/protocol/transactions/transaction-results/tec-codes.md b/docs/references/protocol/transactions/transaction-results/tec-codes.md index 97df85fb92..8a01790a9b 100644 --- a/docs/references/protocol/transactions/transaction-results/tec-codes.md +++ b/docs/references/protocol/transactions/transaction-results/tec-codes.md @@ -2,11 +2,13 @@ html: tec-codes.html parent: transaction-results.html seo: - description: A tec result code indicates that the transaction did not succeed, but it deducted the transaction cost and it was applied to a ledger. + description: A tec result code indicates that the transaction did not succeed, but it deducted the transaction cost and it was applied to a ledger. labels: - Transaction Sending --- + # tec Codes + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/libxrpl/protocol/TER.cpp "Source") These codes indicate that the transaction did not succeed, but it was applied to a ledger to apply the [transaction cost](../../../../concepts/transactions/transaction-cost.md) and may have had other side effects to the ledger. The `tec` codes have numerical values in the range 100 to 199. It is recommended to use the text code, not the numeric value. @@ -15,62 +17,62 @@ A transaction that fails with a `tec` code destroys the XRP paid as a [transacti {% admonition type="warning" name="Caution" %}A transaction that provisionally failed with a `tec` code may still succeed or fail with a different code after being reapplied. The result is final when it appears in a validated ledger version. For more information, see [Finality of Results](../../../../concepts/transactions/finality-of-results/index.md) and [Reliable Transaction Submission](../../../../concepts/transactions/reliable-transaction-submission.md).{% /admonition %} -| Code | Value | Explanation | -|:---------------------------|:------|:----------------------------------------| -| `tecAMM_ACCOUNT` | 168 | The transaction failed because the operation is not allowed on Automated Market Maker (AMM) accounts. {% amendment-disclaimer name="AMM" /%} | -| `tecAMM_UNFUNDED` | 162 | The [AMMCreate transaction][] failed because the sender does not have enough of the specified assets to fund it. {% amendment-disclaimer name="AMM" /%} | -| `tecAMM_BALANCE` | 163 | The [AMMDeposit][] or [AMMWithdraw][] transaction failed because either the AMM or the user does not hold enough of one of the specified assets. (For example, you tried to withdraw more than the AMM holds.) {% amendment-disclaimer name="AMM" /%} | -| `tecAMM_EMPTY` | 166 | The AMM-related transaction failed because the AMM has no assets in its pool. In this state, you can only delete the AMM or fund it with a new deposit. {% amendment-disclaimer name="AMM" /%} | -| `tecAMM_FAILED` | 164 | The AMM-related transaction failed. For [AMMDeposit][] or [AMMWithdraw][] this could be because the sender does not have enough of the specified assets, or the transaction requested an effective price that isn't possible with the available amounts. For [AMMBid][] this could be because the account does not have enough to win the bid or needs more than their specified maximum bid. For [AMMVote][], this could be because there are already too many votes from other accounts that hold more of this AMM's LP Tokens. {% amendment-disclaimer name="AMM" /%} | -| `tecAMM_INVALID_TOKENS` | 165 | The AMM-related transaction failed due to insufficient LP Tokens or problems with rounding; for example, depositing a very small amount of assets could fail if the amount of LP Tokens to be returned rounds down to zero. {% amendment-disclaimer name="AMM" /%} | -| `tecAMM_NOT_EMPTY` | 167 | The transaction was meant to operate on an AMM with empty asset pools, but the specified AMM currently holds assets. {% amendment-disclaimer name="AMM" /%} | -| `tecCANT_ACCEPT_OWN_NFTOKEN_OFFER` | 157 | The transaction tried to accept an offer that was placed by the same account to buy or sell a [non-fungible token](../../../../concepts/tokens/nfts/index.md). {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} | -| `tecCLAIM` | 100 | Unspecified failure, with transaction cost destroyed. | -| `tecCRYPTOCONDITION_ERROR` | 146 | This [EscrowCreate][] or [EscrowFinish][] transaction contained a malformed or mismatched crypto-condition. | -| `tecDIR_FULL` | 121 | The transaction tried to add an object (such as a trust line, Check, Escrow, or Payment Channel) to an account's owner directory, but that account cannot own any more objects in the ledger.
    This error is effectively impossible to receive if {% amendment-disclaimer name="fixDirectoryLimit" compact=true /%} is enabled. | -| `tecDUPLICATE` | 149 | The transaction tried to create an object (such as a [DepositPreauth][] authorization) that already exists. | -| `tecDST_TAG_NEEDED` | 143 | The [Payment transaction][] omitted a [destination tag](../../../../concepts/transactions/source-and-destination-tags.md), but the destination account has the `lsfRequireDestTag` flag enabled. | -| `tecEMPTY_DID` | 187 | The transaction tried to create a [DID entry][] with no contents. A DID must not be empty. {% amendment-disclaimer name="DID" /%} | -| `tecEXPIRED` | 148 | The transaction tried to create an object (such as an Offer or a Check) whose provided Expiration time has already passed. | -| `tecFAILED_PROCESSING` | 105 | An unspecified error occurred when processing the transaction. | -| `tecFROZEN` | 137 | The [OfferCreate transaction][] failed because one or both of the assets involved are subject to a [global freeze](../../../../concepts/tokens/fungible-tokens/freezes.md). | -| `tecHAS_OBLIGATIONS` | 151 | The [AccountDelete transaction][] failed because the account to be deleted owns objects that cannot be deleted. See [Deleting Accounts](../../../../concepts/accounts/deleting-accounts.md) for details. | -| `tecINSUF_RESERVE_LINE` | 122 | The transaction failed because the sending account does not have enough XRP to create a new trust line. (See: [Reserves](../../../../concepts/accounts/reserves.md)) This error occurs when the counterparty already has a trust line in a non-default state to the sending account for the same currency. (See `tecNO_LINE_INSUF_RESERVE` for the other case.) | -| `tecINSUF_RESERVE_OFFER` | 123 | The transaction failed because the sending account does not have enough XRP to create a new Offer. (See: [Reserves](../../../../concepts/accounts/reserves.md)) | -| `tecINSUFF_FEE` | 136 | The transaction failed because the sending account does not have enough XRP to pay the [transaction cost](../../../../concepts/transactions/transaction-cost.md) that it specified. (In this case, the transaction processing destroys all of the sender's XRP even though that amount is lower than the specified transaction cost.) This result only occurs if the account's balance decreases _after_ this transaction has been distributed to enough of the network to be included in a consensus set. Otherwise, the transaction fails with [`terINSUF_FEE_B`](ter-codes.md) before being distributed. | -| `tecINSUFFICIENT_FUNDS` | 158 | One of the accounts involved does not hold enough of a necessary asset. {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} | -| `tecINSUFFICIENT_PAYMENT` | 161 | The amount specified is not enough to pay all fees involved in the transaction. For example, when trading a non-fungible token, the buy amount may not be enough to pay both the broker fee and the sell amount. {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} | -| `tecINSUFFICIENT_RESERVE` | 141 | The transaction would increase the [reserve requirement](../../../../concepts/accounts/reserves.md) higher than the sending account's balance. [SignerListSet][], [PaymentChannelCreate][], [PaymentChannelFund][], and [EscrowCreate][] can return this error code. See [Signer Lists and Reserves](../../ledger-data/ledger-entry-types/signerlist.md#signer-lists-and-reserves) for more information. | -| `tecINTERNAL` | 144 | Unspecified internal error, with transaction cost applied. This error code should not normally be returned. If you can reproduce this error, please [report an issue](https://github.com/XRPLF/rippled/issues). | -| `tecINVALID_UPDATE_TIME` | 188 | The [OracleSet transaction][] failed because the `LastUpdateTime` is invalid. This can occur when the time is more than 300 seconds before or after the ledger close time, or when updating an existing oracle, the new `LastUpdateTime` is not greater than the previous value. {% amendment-disclaimer name="PriceOracle" /%} | -| `tecINVARIANT_FAILED` | 147 | An invariant check failed when trying to execute this transaction. If you can reproduce this error, please [report an issue](https://github.com/XRPLF/rippled/issues). {% amendment-disclaimer name="EnforceInvariants" /%} | -| `tecKILLED` | 150 | The [OfferCreate transaction][] specified the `tfFillOrKill` flag and could not be filled, so it was killed. {% amendment-disclaimer name="fix1578" /%} | -| `tecMAX_SEQUENCE_REACHED` | 153 | A sequence number field is already at its maximum. This includes the `MintedNFTokens` field. {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} | -| `tecNEED_MASTER_KEY` | 142 | This transaction tried to cause changes that require the master key, such as [disabling the master key or giving up the ability to freeze balances](../types/accountset.md#accountset-flags). | -| `tecNFTOKEN_BUY_SELL_MISMATCH` | 155 | The [NFTokenAcceptOffer transaction][] attempted to match incompatible offers to buy and sell a non-fungible token. {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} | -| `tecNFTOKEN_OFFER_TYPE_MISMATCH` | 156 | One or more of the offers specified in the transaction was not the right type of offer. (For example, a buy offer was specified in the `NFTokenSellOffer` field.) {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} | -| `tecNO_ALTERNATIVE_KEY` | 130 | The transaction tried to remove the only available method of [authorizing transactions](../../../../concepts/transactions/index.md#authorizing-transactions). This could be a [SetRegularKey transaction][] to remove the regular key, a [SignerListSet transaction][] to delete a SignerList, or an [AccountSet transaction][] to disable the master key. (Prior to `rippled` 0.30.0, this was called `tecMASTER_DISABLED`.) | -| `tecNO_AUTH` | 134 | The transaction failed because it needs to add a balance on a trust line to an account with the `lsfRequireAuth` flag enabled, and that trust line has not been authorized. If the trust line does not exist at all, `tecNO_LINE` occurs instead. | -| `tecNO_DST` | 124 | The account on the receiving end of the transaction does not exist. This includes Payment and TrustSet transaction types. (It could be created if it received enough XRP.) | -| `tecNO_DST_INSUF_XRP` | 125 | The account on the receiving end of the transaction does not exist, and the transaction is not sending enough XRP to create it. | -| `tecNO_ENTRY` | 140 | The transaction tried to modify a [ledger object](../../ledger-data/ledger-entry-types/index.md), such as a [Check](../../../../concepts/payment-types/checks.md), [Payment Channel](../../../../concepts/payment-types/payment-channels.md), or [Deposit Preauthorization](../../ledger-data/ledger-entry-types/depositpreauth.md), but the specified object does not exist. It may have already been deleted by a previous transaction or the transaction may have an incorrect value in an ID field such as `CheckID`, `Channel`, `Unauthorize`. | -| `tecNO_ISSUER` | 133 | The account specified in the `issuer` field of a currency amount does not exist. | -| `tecNO_LINE` | 135 | The `TakerPays` field of the [OfferCreate transaction][] specifies an asset whose issuer has `lsfRequireAuth` enabled, and the account making the offer does not have a trust line for that asset. (Normally, making an offer implicitly creates a trust line if necessary, but in this case it does not bother because you cannot hold the asset without authorization.) If the trust line exists, but is not authorized, `tecNO_AUTH` occurs instead. | -| `tecNO_LINE_INSUF_RESERVE` | 126 | The transaction failed because the sending account does not have enough XRP to create a new trust line. (See: [Reserves](../../../../concepts/accounts/reserves.md)) This error occurs when the counterparty does not have a trust line to this account for the same currency. (See `tecINSUF_RESERVE_LINE` for the other case.) | -| `tecNO_LINE_REDUNDANT` | 127 | The transaction failed because it tried to set a trust line to its default state, but the trust line did not exist. | -| `tecNO_PERMISSION` | 139 | The sender does not have permission to do this operation. For example, the [EscrowFinish transaction][] tried to release a held payment before its `FinishAfter` time, someone tried to use [PaymentChannelFund][] on a channel the sender does not own, or a [Payment][] tried to deliver funds to an account with the "DepositAuth" flag enabled. | -| `tecNO_REGULAR_KEY` | 131 | The [AccountSet transaction][] tried to disable the master key, but the account does not have another way to [authorize transactions](../../../../concepts/transactions/index.md#authorizing-transactions). If [multi-signing](../../../../concepts/accounts/multi-signing.md) is enabled, this code is deprecated and `tecNO_ALTERNATIVE_KEY` is used instead. | -| `tecNO_SUITABLE_NFTOKEN_PAGE` | 154 | The transaction tried to mint or acquire a non-fungible token but the account receiving the `NFToken` does not have a directory page that can hold it. This situation is rare. {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} | -| `tecNO_TARGET` | 138 | The transaction referenced an Escrow or PayChannel ledger object that doesn't exist, either because it never existed or it has already been deleted. (For example, another [EscrowFinish transaction][] has already executed the held payment.) Alternatively, the destination account has `asfDisallowXRP` set so it cannot be the destination of this [PaymentChannelCreate][] or [EscrowCreate][] transaction. | -| `tecOBJECT_NOT_FOUND` | 160 | One of the objects specified by this transaction did not exist in the ledger. {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} | -| `tecOVERSIZE` | 145 | This transaction could not be processed, because the server created an excessively large amount of [metadata](../metadata.md) when it tried to apply the transaction. | -| `tecOWNERS` | 132 | The transaction cannot succeed because the sender already owns objects in the ledger. For example, an account cannot enable the [`lsfRequireAuth`](../types/accountset.md#accountset-flags) flag if it has any trust lines or available offers. | -| `tecPATH_DRY` | 128 | The transaction failed because the provided [paths](../../../../concepts/tokens/fungible-tokens/paths.md) did not have enough liquidity to send anything at all. This could mean that the source and destination accounts are not linked by [trust lines](../../../../concepts/tokens/fungible-tokens/index.md). | -| `tecPATH_PARTIAL` | 101 | The transaction failed because the provided [paths](../../../../concepts/tokens/fungible-tokens/paths.md) did not have enough liquidity to send the full amount. | -| `tecTOO_SOON` | 152 | The [AccountDelete transaction][] failed because the account to be deleted had a `Sequence` number that is too high. The current ledger index must be at least 256 higher than the account's sequence number. | -| `tecUNFUNDED` | 129 | The transaction failed because the account does not hold enough XRP to pay the amount in the transaction _and_ satisfy the additional [reserve](../../../../concepts/accounts/reserves.md) necessary to execute this transaction. | -| `tecUNFUNDED_ADD` | 102 | **DEPRECATED.** | -| `tecUNFUNDED_PAYMENT` | 104 | The transaction failed because the sending account is trying to send more XRP than it holds, not counting the [reserve](../../../../concepts/accounts/reserves.md). | -| `tecUNFUNDED_OFFER` | 103 | The [OfferCreate transaction][] failed because the account creating the offer does not have any of the `TakerGets` currency. | +| Code | Value | Explanation | +| :--------------------------------- | :---- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `tecAMM_ACCOUNT` | 168 | The transaction failed because the operation is not allowed on Automated Market Maker (AMM) accounts. {% amendment-disclaimer name="AMM" /%} | +| `tecAMM_UNFUNDED` | 162 | The [AMMCreate transaction][] failed because the sender does not have enough of the specified assets to fund it. {% amendment-disclaimer name="AMM" /%} | +| `tecAMM_BALANCE` | 163 | The [AMMDeposit][] or [AMMWithdraw][] transaction failed because either the AMM or the user does not hold enough of one of the specified assets. (For example, you tried to withdraw more than the AMM holds.) {% amendment-disclaimer name="AMM" /%} | +| `tecAMM_EMPTY` | 166 | The AMM-related transaction failed because the AMM has no assets in its pool. In this state, you can only delete the AMM or fund it with a new deposit. {% amendment-disclaimer name="AMM" /%} | +| `tecAMM_FAILED` | 164 | The AMM-related transaction failed. For [AMMDeposit][] or [AMMWithdraw][] this could be because the sender does not have enough of the specified assets, or the transaction requested an effective price that isn't possible with the available amounts. For [AMMBid][] this could be because the account does not have enough to win the bid or needs more than their specified maximum bid. For [AMMVote][], this could be because there are already too many votes from other accounts that hold more of this AMM's LP Tokens. {% amendment-disclaimer name="AMM" /%} | +| `tecAMM_INVALID_TOKENS` | 165 | The AMM-related transaction failed due to insufficient LP Tokens or problems with rounding; for example, depositing a very small amount of assets could fail if the amount of LP Tokens to be returned rounds down to zero. {% amendment-disclaimer name="AMM" /%} | +| `tecAMM_NOT_EMPTY` | 167 | The transaction was meant to operate on an AMM with empty asset pools, but the specified AMM currently holds assets. {% amendment-disclaimer name="AMM" /%} | +| `tecCANT_ACCEPT_OWN_NFTOKEN_OFFER` | 157 | The transaction tried to accept an offer that was placed by the same account to buy or sell a [non-fungible token](../../../../concepts/tokens/nfts/index.md). {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} | +| `tecCLAIM` | 100 | Unspecified failure, with transaction cost destroyed. | +| `tecCRYPTOCONDITION_ERROR` | 146 | This [EscrowCreate][] or [EscrowFinish][] transaction contained a malformed or mismatched crypto-condition. | +| `tecDIR_FULL` | 121 | The transaction tried to add an object (such as a trust line, Check, Escrow, or Payment Channel) to an account's owner directory, but that account cannot own any more objects in the ledger.
    This error is effectively impossible to receive if {% amendment-disclaimer name="fixDirectoryLimit" compact=true /%} is enabled. | +| `tecDUPLICATE` | 149 | The transaction tried to create an object (such as a [DepositPreauth][] authorization) that already exists. | +| `tecDST_TAG_NEEDED` | 143 | The [Payment transaction][] omitted a [destination tag](../../../../concepts/transactions/source-and-destination-tags.md), but the destination account has the `lsfRequireDestTag` flag enabled. | +| `tecEMPTY_DID` | 187 | The transaction tried to create a [DID entry][] with no contents. A DID must not be empty. {% amendment-disclaimer name="DID" /%} | +| `tecEXPIRED` | 148 | The transaction tried to create an object (such as an Offer or a Check) whose provided Expiration time has already passed. | +| `tecFAILED_PROCESSING` | 105 | An unspecified error occurred when processing the transaction. | +| `tecFROZEN` | 137 | The [OfferCreate transaction][] failed because one or both of the assets involved are subject to a [global freeze](../../../../concepts/tokens/fungible-tokens/freezes.md). | +| `tecHAS_OBLIGATIONS` | 151 | The [AccountDelete transaction][] failed because the account to be deleted owns objects that cannot be deleted. See [Deleting Accounts](../../../../concepts/accounts/deleting-accounts.md) for details. | +| `tecINSUF_RESERVE_LINE` | 122 | The transaction failed because the sending account does not have enough XRP to create a new trust line. (See: [Reserves](../../../../concepts/accounts/reserves.md)) This error occurs when the counterparty already has a trust line in a non-default state to the sending account for the same currency. (See `tecNO_LINE_INSUF_RESERVE` for the other case.) | +| `tecINSUF_RESERVE_OFFER` | 123 | The transaction failed because the sending account does not have enough XRP to create a new Offer. (See: [Reserves](../../../../concepts/accounts/reserves.md)) | +| `tecINSUFF_FEE` | 136 | The transaction failed because the sending account does not have enough XRP to pay the [transaction cost](../../../../concepts/transactions/transaction-cost.md) that it specified. (In this case, the transaction processing destroys all of the sender's XRP even though that amount is lower than the specified transaction cost.) This result only occurs if the account's balance decreases _after_ this transaction has been distributed to enough of the network to be included in a consensus set. Otherwise, the transaction fails with [`terINSUF_FEE_B`](ter-codes.md) before being distributed. | +| `tecINSUFFICIENT_FUNDS` | 158 | One of the accounts involved does not hold enough of a necessary asset. {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} | +| `tecINSUFFICIENT_PAYMENT` | 161 | The amount specified is not enough to pay all fees involved in the transaction. For example, when trading a non-fungible token, the buy amount may not be enough to pay both the broker fee and the sell amount. {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} | +| `tecINSUFFICIENT_RESERVE` | 141 | The transaction would increase the [reserve requirement](../../../../concepts/accounts/reserves.md) higher than the sending account's balance. [SignerListSet][], [PaymentChannelCreate][], [PaymentChannelFund][], and [EscrowCreate][] can return this error code. See [Signer Lists and Reserves](../../ledger-data/ledger-entry-types/signerlist.md#signer-lists-and-reserves) for more information. | +| `tecINTERNAL` | 144 | Unspecified internal error, with transaction cost applied. This error code should not normally be returned. If you can reproduce this error, please [report an issue](https://github.com/XRPLF/rippled/issues). | +| `tecINVALID_UPDATE_TIME` | 188 | The [OracleSet transaction][] failed because the `LastUpdateTime` is invalid. This can occur when the time is more than 300 seconds before or after the ledger close time, or when updating an existing oracle, the new `LastUpdateTime` is not greater than the previous value. {% amendment-disclaimer name="PriceOracle" /%} | +| `tecINVARIANT_FAILED` | 147 | An invariant check failed when trying to execute this transaction. If you can reproduce this error, please [report an issue](https://github.com/XRPLF/rippled/issues). {% amendment-disclaimer name="EnforceInvariants" /%} | +| `tecKILLED` | 150 | The [OfferCreate transaction][] specified the `tfFillOrKill` flag and could not be filled, so it was killed. {% amendment-disclaimer name="fix1578" /%} | +| `tecMAX_SEQUENCE_REACHED` | 153 | A sequence number field is already at its maximum. This includes the `MintedNFTokens` field. {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} | +| `tecNEED_MASTER_KEY` | 142 | This transaction tried to cause changes that require the master key, such as [disabling the master key or giving up the ability to freeze balances](../types/accountset.md#accountset-flags). | +| `tecNFTOKEN_BUY_SELL_MISMATCH` | 155 | The [NFTokenAcceptOffer transaction][] attempted to match incompatible offers to buy and sell a non-fungible token. {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} | +| `tecNFTOKEN_OFFER_TYPE_MISMATCH` | 156 | One or more of the offers specified in the transaction was not the right type of offer. (For example, a buy offer was specified in the `NFTokenSellOffer` field.) {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} | +| `tecNO_ALTERNATIVE_KEY` | 130 | The transaction tried to remove the only available method of [authorizing transactions](../../../../concepts/transactions/index.md#authorizing-transactions). This could be a [SetRegularKey transaction][] to remove the regular key, a [SignerListSet transaction][] to delete a SignerList, or an [AccountSet transaction][] to disable the master key. (Prior to `rippled` 0.30.0, this was called `tecMASTER_DISABLED`.) | +| `tecNO_AUTH` | 134 | The transaction failed because it needs to add a balance on a trust line to an account with the `lsfRequireAuth` flag enabled, and that trust line has not been authorized. If the trust line does not exist at all, `tecNO_LINE` occurs instead. | +| `tecNO_DST` | 124 | The account on the receiving end of the transaction does not exist. This includes Payment and TrustSet transaction types. (It could be created if it received enough XRP.) | +| `tecNO_DST_INSUF_XRP` | 125 | The account on the receiving end of the transaction does not exist, and the transaction is not sending enough XRP to create it. | +| `tecNO_ENTRY` | 140 | The transaction tried to modify a [ledger object](../../ledger-data/ledger-entry-types/index.md), such as a [Check](../../../../concepts/payment-types/checks.md), [Payment Channel](../../../../concepts/payment-types/payment-channels.md), or [Deposit Preauthorization](../../ledger-data/ledger-entry-types/depositpreauth.md), but the specified object does not exist. It may have already been deleted by a previous transaction or the transaction may have an incorrect value in an ID field such as `CheckID`, `Channel`, `Unauthorize`. | +| `tecNO_ISSUER` | 133 | The account specified in the `issuer` field of a currency amount does not exist. | +| `tecNO_LINE` | 135 | The `TakerPays` field of the [OfferCreate transaction][] specifies an asset whose issuer has `lsfRequireAuth` enabled, and the account making the offer does not have a trust line for that asset. (Normally, making an offer implicitly creates a trust line if necessary, but in this case it does not bother because you cannot hold the asset without authorization.) If the trust line exists, but is not authorized, `tecNO_AUTH` occurs instead. | +| `tecNO_LINE_INSUF_RESERVE` | 126 | The transaction failed because the sending account does not have enough XRP to create a new trust line. (See: [Reserves](../../../../concepts/accounts/reserves.md)) This error occurs when the counterparty does not have a trust line to this account for the same currency. (See `tecINSUF_RESERVE_LINE` for the other case.) | +| `tecNO_LINE_REDUNDANT` | 127 | The transaction failed because it tried to set a trust line to its default state, but the trust line did not exist. | +| `tecNO_PERMISSION` | 139 | The sender does not have permission to do this operation. For example, the [EscrowFinish transaction][] tried to release a held payment before its `FinishAfter` time, someone tried to use [PaymentChannelFund][] on a channel the sender does not own, or a [Payment][] tried to deliver funds to an account with the "DepositAuth" flag enabled. | +| `tecNO_REGULAR_KEY` | 131 | The [AccountSet transaction][] tried to disable the master key, but the account does not have another way to [authorize transactions](../../../../concepts/transactions/index.md#authorizing-transactions). If [multi-signing](../../../../concepts/accounts/multi-signing.md) is enabled, this code is deprecated and `tecNO_ALTERNATIVE_KEY` is used instead. | +| `tecNO_SUITABLE_NFTOKEN_PAGE` | 154 | The transaction tried to mint or acquire a non-fungible token but the account receiving the `NFToken` does not have a directory page that can hold it. This situation is rare. {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} | +| `tecNO_TARGET` | 138 | The transaction referenced an Escrow or PayChannel ledger object that doesn't exist, either because it never existed or it has already been deleted. (For example, another [EscrowFinish transaction][] has already executed the held payment.) Alternatively, the destination account has `asfDisallowXRP` set so it cannot be the destination of this [PaymentChannelCreate][] or [EscrowCreate][] transaction. | +| `tecOBJECT_NOT_FOUND` | 160 | One of the objects specified by this transaction did not exist in the ledger. {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} | +| `tecOVERSIZE` | 145 | This transaction could not be processed, because the server created an excessively large amount of [metadata](../metadata.md) when it tried to apply the transaction. | +| `tecOWNERS` | 132 | The transaction cannot succeed because the sender already owns objects in the ledger. For example, an account cannot enable the [`lsfRequireAuth`](../types/accountset.md#accountset-flags) flag if it has any trust lines or available offers. | +| `tecPATH_DRY` | 128 | The transaction failed because the provided [paths](../../../../concepts/tokens/fungible-tokens/paths.md) did not have enough liquidity to send anything at all. This could mean that the source and destination accounts are not linked by [trust lines](../../../../concepts/tokens/fungible-tokens/index.md). | +| `tecPATH_PARTIAL` | 101 | The transaction failed because the provided [paths](../../../../concepts/tokens/fungible-tokens/paths.md) did not have enough liquidity to send the full amount. | +| `tecTOO_SOON` | 152 | The [AccountDelete transaction][] failed because the account to be deleted had a `Sequence` number that is too high. The current ledger index must be at least 256 higher than the account's sequence number. | +| `tecUNFUNDED` | 129 | The transaction failed because the account does not hold enough XRP to pay the amount in the transaction _and_ satisfy the additional [reserve](../../../../concepts/accounts/reserves.md) necessary to execute this transaction. | +| `tecUNFUNDED_ADD` | 102 | **DEPRECATED.** | +| `tecUNFUNDED_PAYMENT` | 104 | The transaction failed because the sending account is trying to send more XRP than it holds, not counting the [reserve](../../../../concepts/accounts/reserves.md). | +| `tecUNFUNDED_OFFER` | 103 | The [OfferCreate transaction][] failed because the account creating the offer does not have any of the `TakerGets` currency. | {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/protocol/transactions/transaction-results/tef-codes.md b/docs/references/protocol/transactions/transaction-results/tef-codes.md index 38b228334c..92a7a7ca99 100644 --- a/docs/references/protocol/transactions/transaction-results/tef-codes.md +++ b/docs/references/protocol/transactions/transaction-results/tef-codes.md @@ -1,38 +1,40 @@ --- seo: - description: tef codes indicate that the transaction failed and was not included in a ledger, but the transaction could have succeeded in some theoretical ledger. + description: tef codes indicate that the transaction failed and was not included in a ledger, but the transaction could have succeeded in some theoretical ledger. labels: - Transaction Sending --- + # tef Codes + These codes indicate that the transaction failed and was not included in a ledger, but the transaction could have succeeded in some theoretical ledger. Typically this means that the transaction can no longer succeed in any future ledger. They have numerical values in the range -199 to -100. The exact code for any given error is subject to change, so don't rely on it. {% admonition type="warning" name="Caution" %}Transactions with `tef` codes are not applied to ledgers and cannot cause any changes to the XRP Ledger state. However, a transaction that provisionally failed may still succeed or fail with a different code after being reapplied. For more information, see [Finality of Results](../../../../concepts/transactions/finality-of-results/index.md) and [Reliable Transaction Submission](../../../../concepts/transactions/reliable-transaction-submission.md).{% /admonition %} -| Code | Explanation | -|:-----------------------|:----------------------------------------------------| -| `tefALREADY` | The same exact transaction has already been applied. | -| `tefBAD_ADD_AUTH` | **DEPRECATED.** | -| `tefBAD_AUTH` | The key used to sign this account is not authorized to modify this account. (It could be authorized if the account had the same key set as the [Regular Key](../../../../concepts/accounts/cryptographic-keys.md).) | -| `tefBAD_AUTH_MASTER` | The single signature provided to authorize this transaction does not match the master key, but no regular key is associated with this address. | -| `tefBAD_LEDGER` | While processing the transaction, the ledger was discovered in an unexpected state. If you can reproduce this error, please [report an issue](https://github.com/XRPLF/rippled/issues) to get it fixed. | -| `tefBAD_QUORUM` | The transaction was [multi-signed](../../../../concepts/accounts/multi-signing.md), but the total weights of all included signatures did not meet the quorum. | -| `tefBAD_SIGNATURE` | The transaction was [multi-signed](../../../../concepts/accounts/multi-signing.md), but contained a signature for an address not part of a SignerList associated with the sending account. | -| `tefCREATED` | **DEPRECATED.** | -| `tefEXCEPTION` | While processing the transaction, the server entered an unexpected state. This may be caused by unexpected inputs, for example if the binary data for the transaction is grossly malformed. If you can reproduce this error, please [report an issue](https://github.com/XRPLF/rippled/issues) to get it fixed. | -| `tefFAILURE` | Unspecified failure in applying the transaction. | -| `tefINTERNAL` | When trying to apply the transaction, the server entered an unexpected state. If you can reproduce this error, please [report an issue](https://github.com/XRPLF/rippled/issues) to get it fixed. | -| `tefINVARIANT_FAILED` | An invariant check failed when trying to claim the [transaction cost](../../../../concepts/transactions/transaction-cost.md). If you can reproduce this error, please [report an issue](https://github.com/XRPLF/rippled/issues). {% amendment-disclaimer name="EnfroceInvariants" /%} | -| `tefMASTER_DISABLED` | The transaction was signed with the account's master key, but the account has the `lsfDisableMaster` field set. | -| `tefMAX_LEDGER` | The transaction included a [`LastLedgerSequence`](../../../../concepts/transactions/reliable-transaction-submission.md#lastledgersequence) parameter, but the current ledger's sequence number is already higher than the specified value. | -| `tefNFTOKEN_IS_NOT_TRANSFERABLE` | The transaction attempted to send a [non-fungible token](../../../../concepts/tokens/nfts/index.md) to another account, but the `NFToken` has the `lsfTransferable` flag disabled and the transfer would not be to or from the issuer. {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} | -| `tefNO_AUTH_REQUIRED` | The [TrustSet transaction][] tried to mark a trust line as authorized, but the `lsfRequireAuth` flag is not enabled for the corresponding account, so authorization is not necessary. | -| `tefNO_TICKET` | The transaction attempted to use a [Ticket](../../../../concepts/accounts/tickets.md), but the specified `TicketSequence` number does not exist in the ledger, and cannot be created in the future because it is earlier than the sender's current sequence number. | -| `tefNOT_MULTI_SIGNING` | The transaction was [multi-signed](../../../../concepts/accounts/multi-signing.md), but the sending account has no SignerList defined. | -| `tefPAST_SEQ` | The sequence number of the transaction is lower than the current sequence number of the account sending the transaction. | -| `tefTOO_BIG` | The transaction would affect too many objects in the ledger. For example, this was an [AccountDelete transaction][] but the account to be deleted owns over 1000 objects in the ledger. | -| `tefWRONG_PRIOR` | The transaction contained an `AccountTxnID` field (or the deprecated `PreviousTxnID` field), but the transaction specified there does not match the account's previous transaction. | +| Code | Explanation | +| :------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `tefALREADY` | The same exact transaction has already been applied. | +| `tefBAD_ADD_AUTH` | **DEPRECATED.** | +| `tefBAD_AUTH` | The key used to sign this account is not authorized to modify this account. (It could be authorized if the account had the same key set as the [Regular Key](../../../../concepts/accounts/cryptographic-keys.md).) | +| `tefBAD_AUTH_MASTER` | The single signature provided to authorize this transaction does not match the master key, but no regular key is associated with this address. | +| `tefBAD_LEDGER` | While processing the transaction, the ledger was discovered in an unexpected state. If you can reproduce this error, please [report an issue](https://github.com/XRPLF/rippled/issues) to get it fixed. | +| `tefBAD_QUORUM` | The transaction was [multi-signed](../../../../concepts/accounts/multi-signing.md), but the total weights of all included signatures did not meet the quorum. | +| `tefBAD_SIGNATURE` | The transaction was [multi-signed](../../../../concepts/accounts/multi-signing.md), but contained a signature for an address not part of a SignerList associated with the sending account. | +| `tefCREATED` | **DEPRECATED.** | +| `tefEXCEPTION` | While processing the transaction, the server entered an unexpected state. This may be caused by unexpected inputs, for example if the binary data for the transaction is grossly malformed. If you can reproduce this error, please [report an issue](https://github.com/XRPLF/rippled/issues) to get it fixed. | +| `tefFAILURE` | Unspecified failure in applying the transaction. | +| `tefINTERNAL` | When trying to apply the transaction, the server entered an unexpected state. If you can reproduce this error, please [report an issue](https://github.com/XRPLF/rippled/issues) to get it fixed. | +| `tefINVARIANT_FAILED` | An invariant check failed when trying to claim the [transaction cost](../../../../concepts/transactions/transaction-cost.md). If you can reproduce this error, please [report an issue](https://github.com/XRPLF/rippled/issues). {% amendment-disclaimer name="EnfroceInvariants" /%} | +| `tefMASTER_DISABLED` | The transaction was signed with the account's master key, but the account has the `lsfDisableMaster` field set. | +| `tefMAX_LEDGER` | The transaction included a [`LastLedgerSequence`](../../../../concepts/transactions/reliable-transaction-submission.md#lastledgersequence) parameter, but the current ledger's sequence number is already higher than the specified value. | +| `tefNFTOKEN_IS_NOT_TRANSFERABLE` | The transaction attempted to send a [non-fungible token](../../../../concepts/tokens/nfts/index.md) to another account, but the `NFToken` has the `lsfTransferable` flag disabled and the transfer would not be to or from the issuer. {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} | +| `tefNO_AUTH_REQUIRED` | The [TrustSet transaction][] tried to mark a trust line as authorized, but the `lsfRequireAuth` flag is not enabled for the corresponding account, so authorization is not necessary. | +| `tefNO_TICKET` | The transaction attempted to use a [Ticket](../../../../concepts/accounts/tickets.md), but the specified `TicketSequence` number does not exist in the ledger, and cannot be created in the future because it is earlier than the sender's current sequence number. | +| `tefNOT_MULTI_SIGNING` | The transaction was [multi-signed](../../../../concepts/accounts/multi-signing.md), but the sending account has no SignerList defined. | +| `tefPAST_SEQ` | The sequence number of the transaction is lower than the current sequence number of the account sending the transaction. | +| `tefTOO_BIG` | The transaction would affect too many objects in the ledger. For example, this was an [AccountDelete transaction][] but the account to be deleted owns over 1000 objects in the ledger. | +| `tefWRONG_PRIOR` | The transaction contained an `AccountTxnID` field (or the deprecated `PreviousTxnID` field), but the transaction specified there does not match the account's previous transaction. | {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/protocol/transactions/transaction-results/tel-codes.md b/docs/references/protocol/transactions/transaction-results/tel-codes.md index 425458bc8f..1ea5aa42f9 100644 --- a/docs/references/protocol/transactions/transaction-results/tel-codes.md +++ b/docs/references/protocol/transactions/transaction-results/tel-codes.md @@ -2,33 +2,34 @@ html: tel-codes.html parent: transaction-results.html seo: - description: tel codes indicate an error in the local server processing the transaction. + description: tel codes indicate an error in the local server processing the transaction. labels: - Transaction Sending --- + # tel Codes These codes indicate an error in the local server processing the transaction; it is possible that another server with a different configuration or load level could process the transaction successfully. They have numerical values in the range -399 to -300. The exact code for any given error is subject to change, so don't rely on it. {% admonition type="warning" name="Caution" %}Transactions with `tel` codes are not applied to ledgers and cannot cause any changes to the XRP Ledger state. However, these transactions may be automatically cached and retried later. Transactions that provisionally failed may still succeed or fail with a different code after being reapplied. For more information, see [Finality of Results](../../../../concepts/transactions/finality-of-results/index.md) and [Reliable Transaction Submission](../../../../concepts/transactions/reliable-transaction-submission.md).{% /admonition %} -| Code | Explanation | -|:----------------|:------------| -| `telBAD_DOMAIN` | The transaction specified a domain value (for example, the `Domain` field of an [AccountSet transaction][]) that cannot be used, probably because it is too long to store in the ledger. | -| `telBAD_PATH_COUNT` | The transaction contains too many paths for the local server to process. | -| `telBAD_PUBLIC_KEY` | The transaction specified a public key value (for example, as the `MessageKey` field of an [AccountSet transaction][]) that cannot be used, probably because it is not the right length. | -| `telCAN_NOT_QUEUE` | The transaction did not meet the [open ledger cost](../../../../concepts/transactions/transaction-cost.md), but this server did not queue this transaction because it did not meet the [queuing restrictions](../../../../concepts/transactions/transaction-queue.md#queuing-restrictions). For example, a transaction returns this code when the sender already has 10 other transactions in the queue. You can try again later or sign and submit a replacement transaction with a higher transaction cost in the `Fee` field. | -| `telCAN_NOT_QUEUE_BALANCE` | The transaction did not meet the [open ledger cost](../../../../concepts/transactions/transaction-cost.md) and also was not added to the transaction queue because the sum of potential XRP costs of already-queued transactions is greater than the expected balance of the account. You can try again later, or try submitting to a different server. | -| `telCAN_NOT_QUEUE_BLOCKS` | The transaction did not meet the [open ledger cost](../../../../concepts/transactions/transaction-cost.md) and also was not added to the transaction queue. This transaction could not replace an existing transaction in the queue because it would block already-queued transactions from the same sender. (For details, see [Queuing Restrictions](../../../../concepts/transactions/transaction-queue.md#queuing-restrictions).) You can try again later, or try submitting to a different server. | -| `telCAN_NOT_QUEUE_BLOCKED` | The transaction did not meet the [open ledger cost](../../../../concepts/transactions/transaction-cost.md) and also was not added to the transaction queue because a transaction queued ahead of it from the same sender blocks it. (For details, see [Queuing Restrictions](../../../../concepts/transactions/transaction-queue.md#queuing-restrictions).) You can try again later, or try submitting to a different server. | -| `telCAN_NOT_QUEUE_FEE` | The transaction did not meet the [open ledger cost](../../../../concepts/transactions/transaction-cost.md) and also was not added to the transaction queue. This code occurs when a transaction with the same sender and sequence number already exists in the queue and the new one does not pay a large enough transaction cost to replace the existing transaction. To replace a transaction in the queue, the new transaction must have a `Fee` value that is at least 25% more, as measured in [fee levels](../../../../concepts/transactions/transaction-cost.md#fee-levels). You can increase the `Fee` and try again, send this with a higher `Sequence` number so it doesn't replace an existing transaction, or try sending to another server. | -| `telCAN_NOT_QUEUE_FULL` | The transaction did not meet the [open ledger cost](../../../../concepts/transactions/transaction-cost.md) and the server did not queue this transaction because this server's transaction queue is full. You could increase the `Fee` and try again, try again later, or try submitting to a different server. The new transaction must have a higher transaction cost, as measured in [fee levels](../../../../concepts/transactions/transaction-cost.md#fee-levels), than the transaction in the queue with the smallest transaction cost. | -| `telFAILED_PROCESSING` | An unspecified error occurred when processing the transaction. | -| `telINSUF_FEE_P` | The `Fee` from the transaction is not high enough to meet the server's current [transaction cost](../../../../concepts/transactions/transaction-cost.md) requirement, which is derived from its load level and network-level requirements. If the individual server is too busy to process your transaction right now, it may cache the transaction and automatically retry later. | -| `telLOCAL_ERROR` | Unspecified local error. The transaction may be able to succeed if you submit it to a different server. | -| `telNETWORK_ID_MAKES_TX_NON_CANONICAL` | The transaction specifies the [`NetworkID` field](../common-fields.md#networkid-field), but the current network rules require that the `NetworkID` field be omitted. (Mainnet and other networks with a chain ID of 1024 or less do not use this field.) If the transaction was intended for a network that does not use `NetworkID`, remove the field and try again. If the transaction was intended for a different network, submit it to a server that is connected to the correct network. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.11.0" %}New in: rippled 1.11.0{% /badge %} | -| `telNO_DST`_`PARTIAL` | The transaction is an XRP payment that would fund a new account, but the [`tfPartialPayment` flag](../../../../concepts/payment-types/partial-payments.md) was enabled. This is disallowed. | -| `telREQUIRES_NETWORK_ID` | The transaction does not specify a [`NetworkID` field](../common-fields.md#networkid-field), but the current network requires one. If the transaction was intended for a network that requires `NetworkID`, add the field and try again. If the transaction was intended for a different network, submit it to a server that is connected to the correct network. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.11.0" %}New in: rippled 1.11.0{% /badge %} | -| `telWRONG_NETWORK` | The transaction specifies the wrong [`NetworkID` value](../common-fields.md#networkid-field) for the current network. Either specify the correct the `NetworkID` value for the intended network, or submit the transaction to a server that is connected to the correct network. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.11.0" %}New in: rippled 1.11.0{% /badge %} | +| Code | Explanation | +| :------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `telBAD_DOMAIN` | The transaction specified a domain value (for example, the `Domain` field of an [AccountSet transaction][]) that cannot be used, probably because it is too long to store in the ledger. | +| `telBAD_PATH_COUNT` | The transaction contains too many paths for the local server to process. | +| `telBAD_PUBLIC_KEY` | The transaction specified a public key value (for example, as the `MessageKey` field of an [AccountSet transaction][]) that cannot be used, probably because it is not the right length. | +| `telCAN_NOT_QUEUE` | The transaction did not meet the [open ledger cost](../../../../concepts/transactions/transaction-cost.md), but this server did not queue this transaction because it did not meet the [queuing restrictions](../../../../concepts/transactions/transaction-queue.md#queuing-restrictions). For example, a transaction returns this code when the sender already has 10 other transactions in the queue. You can try again later or sign and submit a replacement transaction with a higher transaction cost in the `Fee` field. | +| `telCAN_NOT_QUEUE_BALANCE` | The transaction did not meet the [open ledger cost](../../../../concepts/transactions/transaction-cost.md) and also was not added to the transaction queue because the sum of potential XRP costs of already-queued transactions is greater than the expected balance of the account. You can try again later, or try submitting to a different server. | +| `telCAN_NOT_QUEUE_BLOCKS` | The transaction did not meet the [open ledger cost](../../../../concepts/transactions/transaction-cost.md) and also was not added to the transaction queue. This transaction could not replace an existing transaction in the queue because it would block already-queued transactions from the same sender. (For details, see [Queuing Restrictions](../../../../concepts/transactions/transaction-queue.md#queuing-restrictions).) You can try again later, or try submitting to a different server. | +| `telCAN_NOT_QUEUE_BLOCKED` | The transaction did not meet the [open ledger cost](../../../../concepts/transactions/transaction-cost.md) and also was not added to the transaction queue because a transaction queued ahead of it from the same sender blocks it. (For details, see [Queuing Restrictions](../../../../concepts/transactions/transaction-queue.md#queuing-restrictions).) You can try again later, or try submitting to a different server. | +| `telCAN_NOT_QUEUE_FEE` | The transaction did not meet the [open ledger cost](../../../../concepts/transactions/transaction-cost.md) and also was not added to the transaction queue. This code occurs when a transaction with the same sender and sequence number already exists in the queue and the new one does not pay a large enough transaction cost to replace the existing transaction. To replace a transaction in the queue, the new transaction must have a `Fee` value that is at least 25% more, as measured in [fee levels](../../../../concepts/transactions/transaction-cost.md#fee-levels). You can increase the `Fee` and try again, send this with a higher `Sequence` number so it doesn't replace an existing transaction, or try sending to another server. | +| `telCAN_NOT_QUEUE_FULL` | The transaction did not meet the [open ledger cost](../../../../concepts/transactions/transaction-cost.md) and the server did not queue this transaction because this server's transaction queue is full. You could increase the `Fee` and try again, try again later, or try submitting to a different server. The new transaction must have a higher transaction cost, as measured in [fee levels](../../../../concepts/transactions/transaction-cost.md#fee-levels), than the transaction in the queue with the smallest transaction cost. | +| `telFAILED_PROCESSING` | An unspecified error occurred when processing the transaction. | +| `telINSUF_FEE_P` | The `Fee` from the transaction is not high enough to meet the server's current [transaction cost](../../../../concepts/transactions/transaction-cost.md) requirement, which is derived from its load level and network-level requirements. If the individual server is too busy to process your transaction right now, it may cache the transaction and automatically retry later. | +| `telLOCAL_ERROR` | Unspecified local error. The transaction may be able to succeed if you submit it to a different server. | +| `telNETWORK_ID_MAKES_TX_NON_CANONICAL` | The transaction specifies the [`NetworkID` field](../common-fields.md#networkid-field), but the current network rules require that the `NetworkID` field be omitted. (Mainnet and other networks with a chain ID of 1024 or less do not use this field.) If the transaction was intended for a network that does not use `NetworkID`, remove the field and try again. If the transaction was intended for a different network, submit it to a server that is connected to the correct network. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.11.0" %}New in: rippled 1.11.0{% /badge %} | +| `telNO_DST`\_`PARTIAL` | The transaction is an XRP payment that would fund a new account, but the [`tfPartialPayment` flag](../../../../concepts/payment-types/partial-payments.md) was enabled. This is disallowed. | +| `telREQUIRES_NETWORK_ID` | The transaction does not specify a [`NetworkID` field](../common-fields.md#networkid-field), but the current network requires one. If the transaction was intended for a network that requires `NetworkID`, add the field and try again. If the transaction was intended for a different network, submit it to a server that is connected to the correct network. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.11.0" %}New in: rippled 1.11.0{% /badge %} | +| `telWRONG_NETWORK` | The transaction specifies the wrong [`NetworkID` value](../common-fields.md#networkid-field) for the current network. Either specify the correct the `NetworkID` value for the intended network, or submit the transaction to a server that is connected to the correct network. {% badge href="https://github.com/XRPLF/rippled/releases/tag/1.11.0" %}New in: rippled 1.11.0{% /badge %} | {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/protocol/transactions/transaction-results/tem-codes.md b/docs/references/protocol/transactions/transaction-results/tem-codes.md index 93d9bbedf8..6448a91e02 100644 --- a/docs/references/protocol/transactions/transaction-results/tem-codes.md +++ b/docs/references/protocol/transactions/transaction-results/tem-codes.md @@ -1,54 +1,55 @@ --- seo: - description: tem codes indicate that the transaction was malformed, and cannot succeed according to the XRP Ledger protocol. + description: tem codes indicate that the transaction was malformed, and cannot succeed according to the XRP Ledger protocol. labels: - - Transaction Sending + - Transaction Sending --- + # tem Codes These codes indicate that the transaction was malformed, and cannot succeed according to the XRP Ledger protocol. They have numerical values in the range -299 to -200. The exact code for any given error is subject to change, so don't rely on it. {% admonition type="success" name="Tip" %}Transactions with `tem` codes are not applied to ledgers, and cannot cause any changes to XRP Ledger state. A `tem` result is final unless the rules for a valid transaction change. (For example, using functionality from an [Amendment](../../../../concepts/networks-and-servers/amendments.md) before that amendment is enabled results in `temDISABLED`; such a transaction could succeed later if it becomes valid when the amendment is enabled.){% /admonition %} -| Code | Explanation | -|:------------------------------|:----------------------------------------------| -| `temBAD_AMM_TOKENS` | The transaction incorrectly specified one or more assets. For example, the asset's issuer does not match the corresponding asset in the AMM's pool, or the transaction specified the same asset twice. {% amendment-disclaimer name="AMM" /%} | -| `temBAD_AMOUNT` | An amount specified by the transaction (for example the destination `Amount` or `SendMax` values of a [Payment][]) was invalid, possibly because it was a negative number. | -| `temBAD_AUTH_MASTER` | The key used to sign this transaction does not match the master key for the account sending it, and the account does not have a [Regular Key](../../../../concepts/accounts/cryptographic-keys.md) set. | -| `temBAD_CURRENCY` | The transaction improperly specified a currency field. See [Specifying Currency Amounts][Currency Amount] for the correct format. | -| `temBAD_EXPIRATION` | The transaction improperly specified an expiration value, for example as part of an [OfferCreate transaction][]. Alternatively, the transaction did not specify a required expiration value, for example as part of an [EscrowCreate transaction][]. | -| `temBAD_FEE` | The transaction improperly specified its `Fee` value, for example by listing a non-XRP currency or some negative amount of XRP. | -| `temBAD_ISSUER` | The transaction improperly specified the `issuer` field of some currency included in the request. | -| `temBAD_LIMIT` | The [TrustSet transaction][] improperly specified the `LimitAmount` value of a trust line. | -| `temBAD_NFTOKEN_TRANSFER_FEE` | The [NFTokenMint transaction][] improperly specified the `TransferFee` field of the transaction. {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} | -| `temBAD_OFFER` | The [OfferCreate transaction][] specifies an invalid offer, such as offering to trade XRP for itself, or offering a negative amount. | -| `temBAD_PATH` | The [Payment transaction][] specifies one or more [Paths](../../../../concepts/tokens/fungible-tokens/paths.md) improperly, for example including an issuer for XRP, or specifying an account differently. | -| `temBAD_PATH_LOOP` | One of the [Paths](../../../../concepts/tokens/fungible-tokens/paths.md) in the [Payment transaction][] was flagged as a loop, so it cannot be processed in a bounded amount of time. | -| `temBAD_SEND_XRP_LIMIT` | The [Payment transaction][] used the [`tfLimitQuality` flag](../types/payment.md#limit-quality) in a direct XRP-to-XRP payment, even though XRP-to-XRP payments do not involve any conversions. | -| `temBAD_SEND_XRP_MAX` | The [Payment transaction][] included a `SendMax` field in a direct XRP-to-XRP payment, even though sending XRP should never require `SendMax`. (XRP is only valid in `SendMax` if the destination `Amount` is not XRP.) | -| `temBAD_SEND_XRP_NO_DIRECT` | The [Payment transaction][] used the [`tfNoDirectRipple` flag](../types/payment.md#payment-flags) for a direct XRP-to-XRP payment, even though XRP-to-XRP payments are always direct. | -| `temBAD_SEND_XRP_PARTIAL` | The [Payment transaction][] used the [`tfPartialPayment` flag](../../../../concepts/payment-types/partial-payments.md) for a direct XRP-to-XRP payment, even though XRP-to-XRP payments should always deliver the full amount. | -| `temBAD_SEND_XRP_PATHS` | The [Payment transaction][] included `Paths` while sending XRP, even though XRP-to-XRP payments should always be direct. | -| `temBAD_SEQUENCE` | The transaction is references a sequence number that is higher than its own `Sequence` number, for example trying to cancel an offer that would have to be placed after the transaction that cancels it. | -| `temBAD_SIGNATURE` | The signature to authorize this transaction is either missing, or formed in a way that is not a properly-formed signature. (See [`tecNO_PERMISSION`](tec-codes.md) for the case where the signature is properly formed, but not authorized for this account.) | -| `temBAD_SRC_ACCOUNT` | The `Account` on whose behalf this transaction is being sent (the "source account") is not a properly-formed [account](../../../../concepts/accounts/index.md) address. | -| `temBAD_TRANSFER_RATE` | The [`TransferRate` field of an AccountSet transaction](../types/accountset.md#transferrate) is not properly formatted or out of the acceptable range. | -| `temCANNOT_PREAUTH_SELF` | The sender of the [DepositPreauth transaction][] was also specified as the account to preauthorize. You cannot preauthorize yourself. | +| Code | Explanation | +| :---------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `temBAD_AMM_TOKENS` | The transaction incorrectly specified one or more assets. For example, the asset's issuer does not match the corresponding asset in the AMM's pool, or the transaction specified the same asset twice. {% amendment-disclaimer name="AMM" /%} | +| `temBAD_AMOUNT` | An amount specified by the transaction (for example the destination `Amount` or `SendMax` values of a [Payment][]) was invalid, possibly because it was a negative number. | +| `temBAD_AUTH_MASTER` | The key used to sign this transaction does not match the master key for the account sending it, and the account does not have a [Regular Key](../../../../concepts/accounts/cryptographic-keys.md) set. | +| `temBAD_CURRENCY` | The transaction improperly specified a currency field. See [Specifying Currency Amounts][Currency Amount] for the correct format. | +| `temBAD_EXPIRATION` | The transaction improperly specified an expiration value, for example as part of an [OfferCreate transaction][]. Alternatively, the transaction did not specify a required expiration value, for example as part of an [EscrowCreate transaction][]. | +| `temBAD_FEE` | The transaction improperly specified its `Fee` value, for example by listing a non-XRP currency or some negative amount of XRP. | +| `temBAD_ISSUER` | The transaction improperly specified the `issuer` field of some currency included in the request. | +| `temBAD_LIMIT` | The [TrustSet transaction][] improperly specified the `LimitAmount` value of a trust line. | +| `temBAD_NFTOKEN_TRANSFER_FEE` | The [NFTokenMint transaction][] improperly specified the `TransferFee` field of the transaction. {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} | +| `temBAD_OFFER` | The [OfferCreate transaction][] specifies an invalid offer, such as offering to trade XRP for itself, or offering a negative amount. | +| `temBAD_PATH` | The [Payment transaction][] specifies one or more [Paths](../../../../concepts/tokens/fungible-tokens/paths.md) improperly, for example including an issuer for XRP, or specifying an account differently. | +| `temBAD_PATH_LOOP` | One of the [Paths](../../../../concepts/tokens/fungible-tokens/paths.md) in the [Payment transaction][] was flagged as a loop, so it cannot be processed in a bounded amount of time. | +| `temBAD_SEND_XRP_LIMIT` | The [Payment transaction][] used the [`tfLimitQuality` flag](../types/payment.md#limit-quality) in a direct XRP-to-XRP payment, even though XRP-to-XRP payments do not involve any conversions. | +| `temBAD_SEND_XRP_MAX` | The [Payment transaction][] included a `SendMax` field in a direct XRP-to-XRP payment, even though sending XRP should never require `SendMax`. (XRP is only valid in `SendMax` if the destination `Amount` is not XRP.) | +| `temBAD_SEND_XRP_NO_DIRECT` | The [Payment transaction][] used the [`tfNoDirectRipple` flag](../types/payment.md#payment-flags) for a direct XRP-to-XRP payment, even though XRP-to-XRP payments are always direct. | +| `temBAD_SEND_XRP_PARTIAL` | The [Payment transaction][] used the [`tfPartialPayment` flag](../../../../concepts/payment-types/partial-payments.md) for a direct XRP-to-XRP payment, even though XRP-to-XRP payments should always deliver the full amount. | +| `temBAD_SEND_XRP_PATHS` | The [Payment transaction][] included `Paths` while sending XRP, even though XRP-to-XRP payments should always be direct. | +| `temBAD_SEQUENCE` | The transaction is references a sequence number that is higher than its own `Sequence` number, for example trying to cancel an offer that would have to be placed after the transaction that cancels it. | +| `temBAD_SIGNATURE` | The signature to authorize this transaction is either missing, or formed in a way that is not a properly-formed signature. (See [`tecNO_PERMISSION`](tec-codes.md) for the case where the signature is properly formed, but not authorized for this account.) | +| `temBAD_SRC_ACCOUNT` | The `Account` on whose behalf this transaction is being sent (the "source account") is not a properly-formed [account](../../../../concepts/accounts/index.md) address. | +| `temBAD_TRANSFER_RATE` | The [`TransferRate` field of an AccountSet transaction](../types/accountset.md#transferrate) is not properly formatted or out of the acceptable range. | +| `temCANNOT_PREAUTH_SELF` | The sender of the [DepositPreauth transaction][] was also specified as the account to preauthorize. You cannot preauthorize yourself. | | `temDST_IS_SRC` | The transaction improperly specified a destination address as the `Account` sending the transaction. This includes trust lines (where the destination address is the `issuer` field of `LimitAmount`) and payment channels (where the destination address is the `Destination` field). | -| `temDST_NEEDED` | The transaction improperly omitted a destination. This could be the `Destination` field of a [Payment transaction][], or the `issuer` sub-field of the `LimitAmount` field fo a `TrustSet` transaction. | -| `temINVALID` | The transaction is otherwise invalid. For example, the transaction ID may not be the right format, the signature may not be formed properly, or something else went wrong in understanding the transaction. | -| `temINVALID_COUNT` | The transaction includes a `TicketCount` field, but the number of Tickets specified is invalid. | -| `temINVALID_FLAG` | The transaction includes a [Flag](../common-fields.md#flags-field) that does not exist, or includes a contradictory combination of flags. | -| `temMALFORMED` | Unspecified problem with the format of the transaction. | -| `temREDUNDANT` | The transaction would do nothing; for example, it is sending a payment directly to the sending account, or creating an offer to buy and sell the same currency from the same issuer. | -| `temREDUNDANT_SEND_MAX` | {% badge href="https://github.com/XRPLF/rippled/releases/tag/0.28.0" %}Removed in: rippled 0.28.0{% /badge %} | -| `temRIPPLE_EMPTY` | The [Payment transaction][] includes an empty `Paths` field, but paths are necessary to complete this payment. | -| `temSEQ_AND_TICKET` | The transaction contains both a `TicketSequence` field and a non-zero `Sequence` value. A transaction cannot include both. {% amendment-disclaimer name="TicketBatch" /%} | -| `temBAD_WEIGHT` | The [SignerListSet transaction][] includes a `SignerWeight` that is invalid, for example a zero or negative value. | -| `temBAD_SIGNER` | The [SignerListSet transaction][] includes a signer who is invalid. For example, there may be duplicate entries, or the owner of the SignerList may also be a member. | -| `temBAD_QUORUM` | The [SignerListSet transaction][] has an invalid `SignerQuorum` value. Either the value is not greater than zero, or it is more than the sum of all signers in the list. | -| `temUNCERTAIN` | Used internally only. This code should never be returned. | -| `temUNKNOWN` | Used internally only. This code should never be returned. | -| `temDISABLED` | The transaction requires logic that is disabled. Typically this means you are trying to use an [amendment](../../../../concepts/networks-and-servers/amendments.md) that is not enabled for the current ledger. | +| `temDST_NEEDED` | The transaction improperly omitted a destination. This could be the `Destination` field of a [Payment transaction][], or the `issuer` sub-field of the `LimitAmount` field fo a `TrustSet` transaction. | +| `temINVALID` | The transaction is otherwise invalid. For example, the transaction ID may not be the right format, the signature may not be formed properly, or something else went wrong in understanding the transaction. | +| `temINVALID_COUNT` | The transaction includes a `TicketCount` field, but the number of Tickets specified is invalid. | +| `temINVALID_FLAG` | The transaction includes a [Flag](../common-fields.md#flags-field) that does not exist, or includes a contradictory combination of flags. | +| `temMALFORMED` | Unspecified problem with the format of the transaction. | +| `temREDUNDANT` | The transaction would do nothing; for example, it is sending a payment directly to the sending account, or creating an offer to buy and sell the same currency from the same issuer. | +| `temREDUNDANT_SEND_MAX` | {% badge href="https://github.com/XRPLF/rippled/releases/tag/0.28.0" %}Removed in: rippled 0.28.0{% /badge %} | +| `temRIPPLE_EMPTY` | The [Payment transaction][] includes an empty `Paths` field, but paths are necessary to complete this payment. | +| `temSEQ_AND_TICKET` | The transaction contains both a `TicketSequence` field and a non-zero `Sequence` value. A transaction cannot include both. {% amendment-disclaimer name="TicketBatch" /%} | +| `temBAD_WEIGHT` | The [SignerListSet transaction][] includes a `SignerWeight` that is invalid, for example a zero or negative value. | +| `temBAD_SIGNER` | The [SignerListSet transaction][] includes a signer who is invalid. For example, there may be duplicate entries, or the owner of the SignerList may also be a member. | +| `temBAD_QUORUM` | The [SignerListSet transaction][] has an invalid `SignerQuorum` value. Either the value is not greater than zero, or it is more than the sum of all signers in the list. | +| `temUNCERTAIN` | Used internally only. This code should never be returned. | +| `temUNKNOWN` | Used internally only. This code should never be returned. | +| `temDISABLED` | The transaction requires logic that is disabled. Typically this means you are trying to use an [amendment](../../../../concepts/networks-and-servers/amendments.md) that is not enabled for the current ledger. | {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/protocol/transactions/transaction-results/ter-codes.md b/docs/references/protocol/transactions/transaction-results/ter-codes.md index 450433e54d..721da86ea4 100644 --- a/docs/references/protocol/transactions/transaction-results/ter-codes.md +++ b/docs/references/protocol/transactions/transaction-results/ter-codes.md @@ -2,10 +2,11 @@ html: ter-codes.html parent: transaction-results.html seo: - description: ter codes indicate that the transaction has not been applied yet, but it could apply successfully in the future - for example, if some other transaction applies first. + description: ter codes indicate that the transaction has not been applied yet, but it could apply successfully in the future - for example, if some other transaction applies first. labels: - Transaction Sending --- + # ter Codes These codes indicate that the transaction has not been [applied](../../../../concepts/consensus-protocol/index.md) yet, and generally will be automatically retried by the server that returned the result code. The transaction could apply successfully in the future; for example, if a certain other transaction applies first. These codes have numerical values in the range -99 to -1, but the exact code for any given error is subject to change, so don't rely on it. @@ -14,21 +15,21 @@ These codes indicate that the transaction has not been [applied](../../../../con Transactions with `ter` codes have not been applied to the current ledger and have not yet changed the XRP Ledger state. A transaction that provisionally got a `ter` result may still succeed or fail with a different code after being automatically applied later. For more information, see [Finality of Results](../../../../concepts/transactions/finality-of-results/index.md) and [Reliable Transaction Submission](../../../../concepts/transactions/reliable-transaction-submission.md). {% /admonition %} -| Code | Explanation | -|:-----------------|:----------------------------------------------------------| -| `terFUNDS_SPENT` | **DEPRECATED.** | -| `terINSUF_FEE_B` | The account sending the transaction does not have enough XRP to pay the `Fee` specified in the transaction. | -| `terLAST` | Used internally only. This code should never be returned. | -| `terNO_ACCOUNT` | The address sending the transaction is not funded in the ledger (yet). | -| `terNO_AMM` | The AMM-related transaction specifies an asset pair that does not currently have an AMM instance. {% amendment-disclaimer name="AMM" /%} | -| `terNO_AUTH` | The transaction would involve adding currency issued by an account with `lsfRequireAuth` enabled to a trust line that is not authorized. For example, you placed an offer to buy a currency you aren't authorized to hold. | -| `terNO_LINE` | Used internally only. This code should never be returned. | -| `terNO_RIPPLE` | The transaction can't succeed because of [rippling settings](/docs/concepts/tokens/fungible-tokens/rippling/). For example, the transaction tried to create an AMM even though the issuer of at least one of the tokens has not enabled the Default Ripple flag. | +| Code | Explanation | +| :--------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `terFUNDS_SPENT` | **DEPRECATED.** | +| `terINSUF_FEE_B` | The account sending the transaction does not have enough XRP to pay the `Fee` specified in the transaction. | +| `terLAST` | Used internally only. This code should never be returned. | +| `terNO_ACCOUNT` | The address sending the transaction is not funded in the ledger (yet). | +| `terNO_AMM` | The AMM-related transaction specifies an asset pair that does not currently have an AMM instance. {% amendment-disclaimer name="AMM" /%} | +| `terNO_AUTH` | The transaction would involve adding currency issued by an account with `lsfRequireAuth` enabled to a trust line that is not authorized. For example, you placed an offer to buy a currency you aren't authorized to hold. | +| `terNO_LINE` | Used internally only. This code should never be returned. | +| `terNO_RIPPLE` | The transaction can't succeed because of [rippling settings](/docs/concepts/tokens/fungible-tokens/rippling/). For example, the transaction tried to create an AMM even though the issuer of at least one of the tokens has not enabled the Default Ripple flag. | | `terOWNERS` | The transaction requires that account sending it has a nonzero "owners count", so the transaction cannot succeed. For example, an account cannot enable the [`lsfRequireAuth`](../types/accountset.md#accountset-flags) flag if it has any trust lines or available offers. | -| `terPRE_SEQ` | The `Sequence` number of the current transaction is higher than the current sequence number of the account sending the transaction. | -| `terPRE_TICKET` | The transaction attempted to use a [Ticket](../../../../concepts/accounts/tickets.md), but the specified `TicketSequence` number does not exist in the ledger. However, the Ticket could still be created by another transaction. | -| `terQUEUED` | The transaction met the load-scaled [transaction cost](../../../../concepts/transactions/transaction-cost.md) but did not meet the open ledger requirement, so the transaction has been queued for a future ledger. | -| `terRETRY` | Unspecified retriable error. | -| `terSUBMITTED` | Transaction has been submitted, but not yet applied. | +| `terPRE_SEQ` | The `Sequence` number of the current transaction is higher than the current sequence number of the account sending the transaction. | +| `terPRE_TICKET` | The transaction attempted to use a [Ticket](../../../../concepts/accounts/tickets.md), but the specified `TicketSequence` number does not exist in the ledger. However, the Ticket could still be created by another transaction. | +| `terQUEUED` | The transaction met the load-scaled [transaction cost](../../../../concepts/transactions/transaction-cost.md) but did not meet the open ledger requirement, so the transaction has been queued for a future ledger. | +| `terRETRY` | Unspecified retriable error. | +| `terSUBMITTED` | Transaction has been submitted, but not yet applied. | {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/protocol/transactions/transaction-results/tes-success.md b/docs/references/protocol/transactions/transaction-results/tes-success.md index cf1fe15b58..d84993af48 100644 --- a/docs/references/protocol/transactions/transaction-results/tes-success.md +++ b/docs/references/protocol/transactions/transaction-results/tes-success.md @@ -2,16 +2,17 @@ html: tes-success.html parent: transaction-results.html seo: - description: tesSUCCESS is the only code that indicates a transaction succeeded. + description: tesSUCCESS is the only code that indicates a transaction succeeded. labels: - Transaction Sending --- + # tes Success The code `tesSUCCESS` is the only code that indicates a transaction succeeded. This does not always mean it accomplished what you expected it to do. (For example, an [OfferCancel][] can "succeed" even if there is no offer for it to cancel.) The `tesSUCCESS` result uses the numerical value 0. -| Code | Explanation | -|:-----------|:----------------------------------------------------------------| +| Code | Explanation | +| :----------- | :------------------------------------------------------------------------------------------------------------------------------------------ | | `tesSUCCESS` | The transaction was applied and forwarded to other servers. If this appears in a validated ledger, then the transaction's success is final. | {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/protocol/transactions/types/accountdelete.md b/docs/references/protocol/transactions/types/accountdelete.md index 180bc5a01f..ab8243c864 100644 --- a/docs/references/protocol/transactions/types/accountdelete.md +++ b/docs/references/protocol/transactions/types/accountdelete.md @@ -1,10 +1,12 @@ --- seo: - description: Delete an account. + description: Delete an account. labels: - - Accounts + - Accounts --- + # AccountDelete + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/DeleteAccount.cpp "Source") An AccountDelete transaction deletes an [account](../../ledger-data/ledger-entry-types/accountroot.md) and any objects it owns in the XRP Ledger, if possible, sending the account's remaining XRP to a specified destination account. See [Deleting Accounts](../../../../concepts/accounts/deleting-accounts.md) for the requirements to delete an account. @@ -15,27 +17,25 @@ An AccountDelete transaction deletes an [account](../../ledger-data/ledger-entry ```json { - "TransactionType": "AccountDelete", - "Account": "rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm", - "Destination": "rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe", - "DestinationTag": 13, - "Fee": "200000", - "Sequence": 2470665, - "Flags": 2147483648 + "TransactionType": "AccountDelete", + "Account": "rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm", + "Destination": "rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe", + "DestinationTag": 13, + "Fee": "200000", + "Sequence": 2470665, + "Flags": 2147483648 } ``` {% tx-example txid="1AF19BF9717DA0B05A3BFC5007873E7743BA54C0311CCCCC60776AAEAC5C4635" /%} - {% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%} -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:-----------------|:-----------------|:------------------|:----------|:------------| -| `CredentialIDs` | Array of Strings | Vector256 | No | Set of Credentials to authorize a deposit made by this transaction. Each member of the array must be the ledger entry ID of a Credential entry in the ledger. For details, see [Credential IDs](./payment.md#credential-ids). | -| `Destination` | String - [Address][] | AccountID | Yes | The address of an account to receive any leftover XRP after deleting the sending account. Must be a funded account in the ledger, and must not be the sending account. | -| `DestinationTag` | Number | UInt32 | No | Arbitrary [destination tag](../../../../concepts/transactions/source-and-destination-tags.md) that identifies a hosted recipient or other information for the recipient of the deleted account's leftover XRP. | - +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :--------------- | :------------------- | :---------------- | :-------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `CredentialIDs` | Array of Strings | Vector256 | No | Set of Credentials to authorize a deposit made by this transaction. Each member of the array must be the ledger entry ID of a Credential entry in the ledger. For details, see [Credential IDs](./payment.md#credential-ids). | +| `Destination` | String - [Address][] | AccountID | Yes | The address of an account to receive any leftover XRP after deleting the sending account. Must be a funded account in the ledger, and must not be the sending account. | +| `DestinationTag` | Number | UInt32 | No | Arbitrary [destination tag](../../../../concepts/transactions/source-and-destination-tags.md) that identifies a hosted recipient or other information for the recipient of the deleted account's leftover XRP. | ## Special Transaction Cost @@ -43,21 +43,20 @@ As an additional deterrent against ledger spam, the AccountDelete transaction re The transaction cost always applies when a transaction is included in a validated ledger, even if the transaction fails to delete the account. (See [Error Cases](#error-cases).) To greatly reduce the chances of paying the high transaction cost if the account cannot be deleted, [submit the transaction](../../../http-websocket-apis/public-api-methods/transaction-methods/submit.md) with `fail_hard` enabled. - ## Error Cases Besides errors that can occur for all transactions, {% $frontmatter.seo.title %} transactions can result in the following [transaction result codes](../transaction-results/index.md): -| Error Code | Description | -|:-----------|:------------| -| `temDISABLED` | Occurs if the [DeletableAccounts amendment](/resources/known-amendments.md#deletableaccounts) is not enabled. | -| `temDST_IS_SRC` | Occurs if the `Destination` matches the sender of the transaction (`Account` field). | -| `tecDST_TAG_NEEDED` | Occurs if the `Destination` account requires a [destination tag](../../../../concepts/transactions/source-and-destination-tags.md), but the `DestinationTag` field was not provided. | -| `tecNO_DST` | Occurs if the `Destination` account is not a funded account in the ledger. | -| `tecNO_PERMISSION` | Occurs if the `Destination` account requires [deposit authorization](../../../../concepts/accounts/depositauth.md) and the sender is not preauthorized. | -| `tecTOO_SOON` | Occurs if the sender's `Sequence` number is too high. The transaction's `Sequence` number plus 256 must be less than the current [Ledger Index][]. This prevents replay of old transactions if this account is resurrected after it is deleted. | +| Error Code | Description | +| :------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `temDISABLED` | Occurs if the [DeletableAccounts amendment](/resources/known-amendments.md#deletableaccounts) is not enabled. | +| `temDST_IS_SRC` | Occurs if the `Destination` matches the sender of the transaction (`Account` field). | +| `tecDST_TAG_NEEDED` | Occurs if the `Destination` account requires a [destination tag](../../../../concepts/transactions/source-and-destination-tags.md), but the `DestinationTag` field was not provided. | +| `tecNO_DST` | Occurs if the `Destination` account is not a funded account in the ledger. | +| `tecNO_PERMISSION` | Occurs if the `Destination` account requires [deposit authorization](../../../../concepts/accounts/depositauth.md) and the sender is not preauthorized. | +| `tecTOO_SOON` | Occurs if the sender's `Sequence` number is too high. The transaction's `Sequence` number plus 256 must be less than the current [Ledger Index][]. This prevents replay of old transactions if this account is resurrected after it is deleted. | | `tecHAS_OBLIGATIONS` | Occurs if the account to be deleted is connected to objects that cannot be deleted in the ledger. (This includes objects created by other accounts, such as [escrows](../../../../concepts/payment-types/escrow.md) and for example [NFT's minted](nftokenmint.md), [even if owned by another account](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/DeleteAccount.cpp#L197).) | -| `tefTOO_BIG` | Occurs if the sending account is linked to more than 1000 objects in the ledger. The transaction could succeed on retry if some of those objects were deleted separately first. | +| `tefTOO_BIG` | Occurs if the sending account is linked to more than 1000 objects in the ledger. The transaction could succeed on retry if some of those objects were deleted separately first. | ## See Also diff --git a/docs/references/protocol/transactions/types/accountset.md b/docs/references/protocol/transactions/types/accountset.md index 384e7c8721..c0b083b549 100644 --- a/docs/references/protocol/transactions/types/accountset.md +++ b/docs/references/protocol/transactions/types/accountset.md @@ -1,10 +1,12 @@ --- seo: - description: Set options on an account. + description: Set options on an account. labels: - - Accounts + - Accounts --- + # AccountSet + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/SetAccount.cpp "Source") Modify the settings or properties of an [account in the XRP Ledger](../../../../concepts/accounts/index.md). @@ -13,13 +15,13 @@ Modify the settings or properties of an [account in the XRP Ledger](../../../../ ```json { - "TransactionType": "AccountSet", - "Account" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "Fee": "12", - "Sequence": 5, - "Domain": "6578616D706C652E636F6D", - "SetFlag": 5, - "MessageKey": "03AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB" + "TransactionType": "AccountSet", + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "Fee": "12", + "Sequence": 5, + "Domain": "6578616D706C652E636F6D", + "SetFlag": 5, + "MessageKey": "03AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB" } ``` @@ -27,18 +29,18 @@ Modify the settings or properties of an [account in the XRP Ledger](../../../../ {% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%} -| Field | JSON Type | [Internal Type][] | Description | -|:-----------------|:-----------------|:------------------|:-------------------| -| [`ClearFlag`](#accountset-flags) | Number | UInt32 | Unique identifier of a flag to disable for this account. | -| [`Domain`](#domain) | String | Blob | The domain that owns this account, as a string of hex representing the ASCII for the domain in lowercase. [Cannot be more than 256 bytes in length.](https://github.com/XRPLF/rippled/blob/70d5c624e8cf732a362335642b2f5125ce4b43c1/include/xrpl/protocol/Protocol.h#L98) | -| `EmailHash` | String | UInt128 | An arbitrary 128-bit value. Conventionally, clients treat this as the md5 hash of an email address to use for displaying a [Gravatar](http://en.gravatar.com/site/implement/hash/) image. | -| `MessageKey` | String | Blob | Public key for sending encrypted messages to this account. To set the key, it must be exactly 33 bytes, with the first byte indicating the key type: `0x02` or `0x03` for secp256k1 keys, `0xED` for Ed25519 keys. To remove the key, use an empty value. | -| `NFTokenMinter` | String - [Address][] | AccountID | Another account that can [mint NFTokens for you](../../../../tutorials/javascript/nfts/assign-an-authorized-minter.md). {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} | -| [`SetFlag`](#accountset-flags) | Number | UInt32 | Integer flag to enable for this account. | -| [`TransferRate`](#transferrate) | Number | UInt32 | The fee to charge when users transfer this account's tokens, represented as billionths of a unit. Cannot be more than `2000000000` or less than `1000000000`, except for the special case `0` meaning no fee. | -| [`TickSize`](../../../../concepts/tokens/decentralized-exchange/ticksize.md) | Number | UInt8 | _(Optional)_ Tick size to use for offers involving a currency issued by this address. The exchange rates of those offers is rounded to this many significant digits. Valid values are `3` to `15` inclusive, or `0` to disable. {% amendment-disclaimer name="TickSize" /%} | -| `WalletLocator` | String | UInt256 | An arbitrary 256-bit value. If specified, the value is stored as part of the account but has no inherent meaning or requirements. | -| `WalletSize` | Number | UInt32 | Not used. This field is valid in AccountSet transactions but does nothing. | +| Field | JSON Type | [Internal Type][] | Description | +| :--------------------------------------------------------------------------- | :------------------- | :---------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [`ClearFlag`](#accountset-flags) | Number | UInt32 | Unique identifier of a flag to disable for this account. | +| [`Domain`](#domain) | String | Blob | The domain that owns this account, as a string of hex representing the ASCII for the domain in lowercase. [Cannot be more than 256 bytes in length.](https://github.com/XRPLF/rippled/blob/70d5c624e8cf732a362335642b2f5125ce4b43c1/include/xrpl/protocol/Protocol.h#L98) | +| `EmailHash` | String | UInt128 | An arbitrary 128-bit value. Conventionally, clients treat this as the md5 hash of an email address to use for displaying a [Gravatar](http://en.gravatar.com/site/implement/hash/) image. | +| `MessageKey` | String | Blob | Public key for sending encrypted messages to this account. To set the key, it must be exactly 33 bytes, with the first byte indicating the key type: `0x02` or `0x03` for secp256k1 keys, `0xED` for Ed25519 keys. To remove the key, use an empty value. | +| `NFTokenMinter` | String - [Address][] | AccountID | Another account that can [mint NFTokens for you](../../../../tutorials/javascript/nfts/assign-an-authorized-minter.md). {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} | +| [`SetFlag`](#accountset-flags) | Number | UInt32 | Integer flag to enable for this account. | +| [`TransferRate`](#transferrate) | Number | UInt32 | The fee to charge when users transfer this account's tokens, represented as billionths of a unit. Cannot be more than `2000000000` or less than `1000000000`, except for the special case `0` meaning no fee. | +| [`TickSize`](../../../../concepts/tokens/decentralized-exchange/ticksize.md) | Number | UInt8 | _(Optional)_ Tick size to use for offers involving a currency issued by this address. The exchange rates of those offers is rounded to this many significant digits. Valid values are `3` to `15` inclusive, or `0` to disable. {% amendment-disclaimer name="TickSize" /%} | +| `WalletLocator` | String | UInt256 | An arbitrary 256-bit value. If specified, the value is stored as part of the account but has no inherent meaning or requirements. | +| `WalletSize` | Number | UInt32 | Not used. This field is valid in AccountSet transactions but does nothing. | (All fields are optional.) @@ -46,7 +48,7 @@ If none of these options are provided, then the AccountSet transaction has no ef ## Domain -The `Domain` field is represented as the hex string of the lowercase ASCII of the domain. For example, the domain *example.com* would be represented as `"6578616D706C652E636F6D"`. +The `Domain` field is represented as the hex string of the lowercase ASCII of the domain. For example, the domain _example.com_ would be represented as `"6578616D706C652E636F6D"`. To remove the `Domain` field from an account, send an AccountSet with the Domain set to an empty string. @@ -59,9 +61,9 @@ You can put any domain in your account's `Domain` field. To prove that an accoun There are several options which can be either enabled or disabled for an account. Account options are represented by different types of flags depending on the situation: -* The `AccountSet` transaction type has several "AccountSet Flags" (prefixed **`asf`**) that can enable an option when passed as the `SetFlag` parameter, or disable an option when passed as the `ClearFlag` parameter. Newer options have only this style of flag. You can enable up to one `asf` flag per transaction, and disable up to one `asf` flag per transaction. -* The `AccountSet` transaction type has several transaction flags (prefixed **`tf`**) that can be used to enable or disable specific account options when passed in the `Flags` parameter. You can enable and disable a combination of settings in one transaction using multiple `tf` flags, but not all settings have `tf` flags. -* The `AccountRoot` ledger object type has several ledger-state-flags (prefixed **`lsf`**) which represent the state of particular account options within a particular ledger. These settings apply until a transaction changes them. +- The `AccountSet` transaction type has several "AccountSet Flags" (prefixed **`asf`**) that can enable an option when passed as the `SetFlag` parameter, or disable an option when passed as the `ClearFlag` parameter. Newer options have only this style of flag. You can enable up to one `asf` flag per transaction, and disable up to one `asf` flag per transaction. +- The `AccountSet` transaction type has several transaction flags (prefixed **`tf`**) that can be used to enable or disable specific account options when passed in the `Flags` parameter. You can enable and disable a combination of settings in one transaction using multiple `tf` flags, but not all settings have `tf` flags. +- The `AccountRoot` ledger object type has several ledger-state-flags (prefixed **`lsf`**) which represent the state of particular account options within a particular ledger. These settings apply until a transaction changes them. To enable or disable Account Flags, use the `SetFlag` and `ClearFlag` parameters of an AccountSet transaction. AccountSet flags have names that begin with **`asf`**. @@ -69,29 +71,29 @@ All flags are disabled by default. The available AccountSet flags are: -| Flag Name | Decimal Value | Description | -|:----------------------------------|:--------------|:--------------| -| `asfAccountTxnID` | 5 | Track the ID of this account's most recent transaction. Required for [`AccountTxnID`](../common-fields.md#accounttxnid) | -| `asfAllowTrustLineClawback` | 16 | Allow account to claw back tokens it has issued. _(Requires the Clawback amendment.)_ Can only be set if the account has an empty owner directory (no trust lines, offers, escrows, payment channels, checks, or signer lists). After you set this flag, it cannot be reverted. The account permanently gains the ability to claw back issued assets on trust lines. | -| `asfAllowTrustLineLocking` | 17 | Allow Trust Line tokens issued by this account to be held in [escrow](../../../../concepts/payment-types/escrow.md). If not enabled, tokens issued by this account can't be escrowed. After you enable this flag, it cannot be disabled. {% amendment-disclaimer name="TokenEscrow" /%} | +| Flag Name | Decimal Value | Description | +| :-------------------------------- | :------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `asfAccountTxnID` | 5 | Track the ID of this account's most recent transaction. Required for [`AccountTxnID`](../common-fields.md#accounttxnid) | +| `asfAllowTrustLineClawback` | 16 | Allow account to claw back tokens it has issued. _(Requires the Clawback amendment.)_ Can only be set if the account has an empty owner directory (no trust lines, offers, escrows, payment channels, checks, or signer lists). After you set this flag, it cannot be reverted. The account permanently gains the ability to claw back issued assets on trust lines. | +| `asfAllowTrustLineLocking` | 17 | Allow Trust Line tokens issued by this account to be held in [escrow](../../../../concepts/payment-types/escrow.md). If not enabled, tokens issued by this account can't be escrowed. After you enable this flag, it cannot be disabled. {% amendment-disclaimer name="TokenEscrow" /%} | | `asfAuthorizedNFTokenMinter` | 10 | Enable to allow another account to mint non-fungible tokens (NFTokens) on this account's behalf. Specify the authorized account in the `NFTokenMinter` field of the [AccountRoot](../../ledger-data/ledger-entry-types/accountroot.md) object. To remove an authorized minter, enable this flag and omit the `NFTokenMinter` field. {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} | -| `asfDefaultRipple` | 8 | Enable [rippling](../../../../concepts/tokens/fungible-tokens/rippling.md) on this account's trust lines by default. | -| `asfDepositAuth` | 9 | Enable [Deposit Authorization](../../../../concepts/accounts/depositauth.md) on this account. {% amendment-disclaimer name="DepositAuth" /%} | -| `asfDisableMaster` | 4 | Disallow use of the master key pair. Can only be enabled if the account has configured another way to sign transactions, such as a [Regular Key](../../../../concepts/accounts/cryptographic-keys.md) or a [Signer List](../../../../concepts/accounts/multi-signing.md). | -| `asfDisallowIncomingCheck` | 13 | Block incoming Checks. {% amendment-disclaimer name="DisallowIncoming" /%} | -| `asfDisallowIncomingNFTokenOffer` | 12 | Block incoming NFTokenOffers. {% amendment-disclaimer name="DisallowIncoming" /%} | -| `asfDisallowIncomingPayChan` | 14 | Block incoming Payment Channels. {% amendment-disclaimer name="DisallowIncoming" /%} | -| `asfDisallowIncomingTrustline` | 15 | Block incoming trust lines. {% amendment-disclaimer name="DisallowIncoming" /%} | -| `asfDisallowXRP` | 3 | XRP should not be sent to this account. (Advisory; not enforced by the XRP Ledger protocol.) | -| `asfGlobalFreeze` | 7 | [Freeze](../../../../concepts/tokens/fungible-tokens/freezes.md) all assets issued by this account. | -| `asfNoFreeze` | 6 | Permanently give up the ability to [freeze individual trust lines or disable Global Freeze](../../../../concepts/tokens/fungible-tokens/freezes.md). This flag can never be disabled after being enabled. | -| `asfRequireAuth` | 2 | Require authorization for users to hold balances issued by this address. Can only be enabled if the address has no trust lines connected to it. | -| `asfRequireDest` | 1 | Require a destination tag to send transactions to this account. | +| `asfDefaultRipple` | 8 | Enable [rippling](../../../../concepts/tokens/fungible-tokens/rippling.md) on this account's trust lines by default. | +| `asfDepositAuth` | 9 | Enable [Deposit Authorization](../../../../concepts/accounts/depositauth.md) on this account. {% amendment-disclaimer name="DepositAuth" /%} | +| `asfDisableMaster` | 4 | Disallow use of the master key pair. Can only be enabled if the account has configured another way to sign transactions, such as a [Regular Key](../../../../concepts/accounts/cryptographic-keys.md) or a [Signer List](../../../../concepts/accounts/multi-signing.md). | +| `asfDisallowIncomingCheck` | 13 | Block incoming Checks. {% amendment-disclaimer name="DisallowIncoming" /%} | +| `asfDisallowIncomingNFTokenOffer` | 12 | Block incoming NFTokenOffers. {% amendment-disclaimer name="DisallowIncoming" /%} | +| `asfDisallowIncomingPayChan` | 14 | Block incoming Payment Channels. {% amendment-disclaimer name="DisallowIncoming" /%} | +| `asfDisallowIncomingTrustline` | 15 | Block incoming trust lines. {% amendment-disclaimer name="DisallowIncoming" /%} | +| `asfDisallowXRP` | 3 | XRP should not be sent to this account. (Advisory; not enforced by the XRP Ledger protocol.) | +| `asfGlobalFreeze` | 7 | [Freeze](../../../../concepts/tokens/fungible-tokens/freezes.md) all assets issued by this account. | +| `asfNoFreeze` | 6 | Permanently give up the ability to [freeze individual trust lines or disable Global Freeze](../../../../concepts/tokens/fungible-tokens/freezes.md). This flag can never be disabled after being enabled. | +| `asfRequireAuth` | 2 | Require authorization for users to hold balances issued by this address. Can only be enabled if the address has no trust lines connected to it. | +| `asfRequireDest` | 1 | Require a destination tag to send transactions to this account. | For reference, here are the corresponding ledger flags for each AccountSet flag: | AccountSet Flag Name | Corresponding Ledger Flag | -|:----------------------------------|:----------------------------------| +| :-------------------------------- | :-------------------------------- | | `asfAccountTxnID` | (None) | | `asfAllowTrustLineClawback` | `lsfAllowTrustlineClawback` | | `asfAuthorizedNFTokenMinter` | (None) | @@ -112,18 +114,17 @@ To enable the `asfDisableMaster` or `asfNoFreeze` flags, you must [authorize the The following [Transaction flags](../common-fields.md#flags-field) (`tf` flags), specific to the AccountSet transaction type, serve the same purpose. Due to limited space, some settings do not have associated `tf` flags, and new `tf` flags are not being added to the `AccountSet` transaction type. You can use a combination of `tf` and `asf` flags to enable multiple settings with a single transaction. -| Flag Name | Hex Value | Decimal Value | Replaced by AccountSet Flag | -|:--------------------|:-------------|:--------------|:----------------------------| -| `tfRequireDestTag` | `0x00010000` | 65536 | `asfRequireDest` (`SetFlag`) | -| `tfOptionalDestTag` | `0x00020000` | 131072 | `asfRequireDest` (`ClearFlag`) | -| `tfRequireAuth` | `0x00040000` | 262144 | `asfRequireAuth` (`SetFlag`) | -| `tfOptionalAuth` | `0x00080000` | 524288 | `asfRequireAuth` (`ClearFlag`) | -| `tfDisallowXRP` | `0x00100000` | 1048576 | `asfDisallowXRP` (`SetFlag`) | -| `tfAllowXRP` | `0x00200000` | 2097152 | `asfDisallowXRP` (`ClearFlag`) | +| Flag Name | Hex Value | Decimal Value | Replaced by AccountSet Flag | +| :------------------ | :----------- | :------------ | :----------------------------- | +| `tfRequireDestTag` | `0x00010000` | 65536 | `asfRequireDest` (`SetFlag`) | +| `tfOptionalDestTag` | `0x00020000` | 131072 | `asfRequireDest` (`ClearFlag`) | +| `tfRequireAuth` | `0x00040000` | 262144 | `asfRequireAuth` (`SetFlag`) | +| `tfOptionalAuth` | `0x00080000` | 524288 | `asfRequireAuth` (`ClearFlag`) | +| `tfDisallowXRP` | `0x00100000` | 1048576 | `asfDisallowXRP` (`SetFlag`) | +| `tfAllowXRP` | `0x00200000` | 2097152 | `asfDisallowXRP` (`ClearFlag`) | {% admonition type="warning" name="Caution" %}The numeric values of `tf` and `asf` flags in transactions do not match up with the values they set in the accounts "at rest" in the ledger. To read the flags of an account in the ledger, see [`AccountRoot` flags](../../ledger-data/ledger-entry-types/accountroot.md#accountroot-flags).{% /admonition %} - ### Blocking Incoming Transactions @@ -145,12 +146,11 @@ If the [DisallowIncoming amendment][] is enabled, you also have the option to bl When a transaction would create one of these ledger entries, if the destination account has the corresponding flag enabled, the transaction fails with the result code `tecNO_PERMISSION`. Unlike Deposit Authorization, these settings do not prevent you from receiving payments in general. Also, enabling this setting doesn't stop you from creating these types of objects yourself (unless the destination of your transaction is also using the setting, of course). - ## TransferRate The `TransferRate` field specifies a fee to charge whenever counterparties transfer the currency you issue. -In the HTTP and WebSocket APIs, the transfer fee is represented as an integer, the amount that must be sent for 1 billion units to arrive. For example, a 20% transfer fee is represented as the value `1200000000`. The value cannot be less than 1000000000. (Less than that would indicate giving away money for sending transactions, which is exploitable.) You can specify `0` as a shortcut for `1000000000`, meaning no fee. +In the HTTP and WebSocket APIs, the transfer fee is represented as an integer, the amount that must be sent for 1 billion units to arrive. For example, a 20% transfer fee is represented as the value `1200000000`. The value cannot be less than 1000000000. (Less than that would indicate giving away money for sending transactions, which is exploitable.) You can specify `0` as a shortcut for `1000000000`, meaning no fee. See [Transfer Fees](../../../../concepts/tokens/fungible-tokens/transfer-fees.md) for more information. diff --git a/docs/references/protocol/transactions/types/ammbid.md b/docs/references/protocol/transactions/types/ammbid.md index ecf88fb60c..4bd9824e3e 100644 --- a/docs/references/protocol/transactions/types/ammbid.md +++ b/docs/references/protocol/transactions/types/ammbid.md @@ -1,10 +1,12 @@ --- seo: - description: Bid on an Automated Market Maker's auction slot, which grants a discounted fee. + description: Bid on an Automated Market Maker's auction slot, which grants a discounted fee. labels: - - AMM + - AMM --- + # AMMBid + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/AMMBid.cpp "Source") Bid on an [Automated Market Maker](../../../../concepts/tokens/decentralized-exchange/automated-market-makers.md)'s (AMM's) auction slot. If you win, you can trade against the AMM at a discounted fee until you are outbid or 24 hours have passed. If you are outbid before 24 hours have passed, you are refunded part of the cost of your bid based on how much time remains. If the AMM's trading fee is zero, you can still bid, but the auction slot provides no benefit unless the trading fee changes. @@ -13,60 +15,59 @@ You bid using the AMM's LP Tokens; the amount of a winning bid is returned to th {% amendment-disclaimer name="AMM" /%} - ## Example {% $frontmatter.seo.title %} JSON ```json { - "Account" : "rJVUeRqDFNs2xqA7ncVE6ZoAhPUoaJJSQm", - "Asset" : { - "currency" : "XRP" + "Account": "rJVUeRqDFNs2xqA7ncVE6ZoAhPUoaJJSQm", + "Asset": { + "currency": "XRP" + }, + "Asset2": { + "currency": "TST", + "issuer": "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd" + }, + "AuthAccounts": [ + { + "AuthAccount": { + "Account": "rMKXGCbJ5d8LbrqthdG46q3f969MVK2Qeg" + } }, - "Asset2" : { - "currency" : "TST", - "issuer" : "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd" - }, - "AuthAccounts" : [ - { - "AuthAccount" : { - "Account" : "rMKXGCbJ5d8LbrqthdG46q3f969MVK2Qeg" - } - }, - { - "AuthAccount" : { - "Account" : "rBepJuTLFJt3WmtLXYAxSjtBWAeQxVbncv" - } - } - ], - "BidMax" : { - "currency" : "039C99CD9AB0B70B32ECDA51EAAE471625608EA2", - "issuer" : "rE54zDvgnghAoPopCgvtiqWNq3dU5y836S", - "value" : "100" - }, - "Fee" : "10", - "Flags" : 2147483648, - "Sequence" : 9, - "TransactionType" : "AMMBid" + { + "AuthAccount": { + "Account": "rBepJuTLFJt3WmtLXYAxSjtBWAeQxVbncv" + } + } + ], + "BidMax": { + "currency": "039C99CD9AB0B70B32ECDA51EAAE471625608EA2", + "issuer": "rE54zDvgnghAoPopCgvtiqWNq3dU5y836S", + "value": "100" + }, + "Fee": "10", + "Flags": 2147483648, + "Sequence": 9, + "TransactionType": "AMMBid" } ``` {% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%} -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:---------------|:--------------------|:------------------|:----------|:------------| -| `Asset` | Object | Issue | Yes | The definition for one of the assets in the AMM's pool. The asset can be XRP, a token, or an MPT (see: [Specifying Without Amounts][]). | -| `Asset2` | Object | Issue | Yes | The definition for the other asset in the AMM's pool. The asset can be XRP, a token, or an MPT (see: [Specifying Without Amounts][]). | -| `BidMin` | [Currency Amount][] | Amount | No | Pay at least this amount for the slot. Setting this value higher makes it harder for others to outbid you. If omitted, pay the minimum necessary to win the bid. | -| `BidMax` | [Currency Amount][] | Amount | No | Pay at most this amount for the slot. If the cost to win the bid is higher than this amount, the transaction fails. If omitted, pay as much as necessary to win the bid. | -| `AuthAccounts` | Array | Array | No | A list of up to 4 additional accounts that you allow to trade at the discounted fee. This cannot include the address of the transaction sender. Each of these objects should be an [Auth Account object](#auth-account-objects). | +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :------------- | :------------------ | :---------------- | :-------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Asset` | Object | Issue | Yes | The definition for one of the assets in the AMM's pool. The asset can be XRP, a token, or an MPT (see: [Specifying Without Amounts][]). | +| `Asset2` | Object | Issue | Yes | The definition for the other asset in the AMM's pool. The asset can be XRP, a token, or an MPT (see: [Specifying Without Amounts][]). | +| `BidMin` | [Currency Amount][] | Amount | No | Pay at least this amount for the slot. Setting this value higher makes it harder for others to outbid you. If omitted, pay the minimum necessary to win the bid. | +| `BidMax` | [Currency Amount][] | Amount | No | Pay at most this amount for the slot. If the cost to win the bid is higher than this amount, the transaction fails. If omitted, pay as much as necessary to win the bid. | +| `AuthAccounts` | Array | Array | No | A list of up to 4 additional accounts that you allow to trade at the discounted fee. This cannot include the address of the transaction sender. Each of these objects should be an [Auth Account object](#auth-account-objects). | ### Auth Account Objects Each member of the `AuthAccounts` array must be an object with the following field: -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:---------------|:----------|:------------------|:----------|:------------| -| `Account` | String | AccountID | Yes | The address of the account to authorize. | +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :-------- | :-------- | :---------------- | :-------- | :--------------------------------------- | +| `Account` | String | AccountID | Yes | The address of the account to authorize. | Like other "inner objects" that can appear in arrays, the JSON representation of each of these objects is wrapped in an object whose only key is the object type, `AuthAccount`. @@ -76,36 +77,36 @@ If successful, the transaction automatically outbids the previous slot owner and - If the auction slot is currently empty, expired, or in its last interval, the **minimum bid** is defined by the following formula: - ```text - M = L * F / 25 - ``` + ```text + M = L * F / 25 + ``` - - `M` is the minimum bid. - - `L` is the total number of LP Tokens currently issued by the AMM - - `F` is the trading fee, as a decimal + - `M` is the minimum bid. + - `L` is the total number of LP Tokens currently issued by the AMM + - `F` is the trading fee, as a decimal - Otherwise, the price to outbid the current holder is calculated using the following formula: - ```text - P = B * 1.05 * (1 - t^60) + M - ``` + ```text + P = B * 1.05 * (1 - t^60) + M + ``` - - `P` is the price to outbid, in LP Tokens. - - `B` is the price of the current bid, in LP Tokens. - - `t` is the fraction of time elapsed in the current 24-hour slot, rounded down to a multiple of 0.05. - - `M` is the **minimum bid** as defined above. + - `P` is the price to outbid, in LP Tokens. + - `B` is the price of the current bid, in LP Tokens. + - `t` is the fraction of time elapsed in the current 24-hour slot, rounded down to a multiple of 0.05. + - `M` is the **minimum bid** as defined above. - There are two special cases for the cost to outbid someone. In the **first interval** after someone wins the bid, the price to outbid them is the minimum bid plus 5% more than the existing bid: + There are two special cases for the cost to outbid someone. In the **first interval** after someone wins the bid, the price to outbid them is the minimum bid plus 5% more than the existing bid: - ```text - P = B * 1.05 + M - ``` + ```text + P = B * 1.05 + M + ``` - In the **last interval** of someone's slot, the cost to outbid someone is only the minimum bid: + In the **last interval** of someone's slot, the cost to outbid someone is only the minimum bid: - ```text - P = M - ``` + ```text + P = M + ``` {% admonition type="info" name="Note"%}To make sure all servers in the network reach the same results when building a ledger, time measurements are based on the [official close time](../../../../concepts/ledgers/ledger-close-times.md) of the previous ledger, which is approximate.{% /admonition %} @@ -125,20 +126,20 @@ As a special case, during the final (20th) interval of the auction slot, the ref {% admonition type="info" name="Note"%}As with all XRP Ledger times, transaction processing uses the [official close time](../../../../concepts/ledgers/ledger-close-times.md) of the _previous_ ledger, which can result in a difference of up to about 10 seconds from real time.{% /admonition %} - ## Error Cases + Besides errors that can occur for all transactions, {% $frontmatter.seo.title %} transactions can result in the following [transaction result codes](../transaction-results/index.md): -| Error Code | Description | -|:------------------------|:---------------------------------------------| -| `tecAMM_EMPTY` | The AMM has no assets in its pool. In this state, you can only delete the AMM or fund it with a new deposit. | +| Error Code | Description | +| :---------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `tecAMM_EMPTY` | The AMM has no assets in its pool. In this state, you can only delete the AMM or fund it with a new deposit. | | `tecAMM_FAILED` | This transaction could not win the auction, either because the sender does not hold enough LP Tokens to pay the necessary bid or because the price to win the auction was higher than the transaction's specified `BidMax` value. | -| `tecAMM_INVALID_TOKENS` | The sender of this transaction does not hold enough LP Tokens to meet the slot price. | -| `temBAD_AMM_TOKENS` | The specified `BidMin` or `BidMax` were not specified as the correct LP Tokens for this AMM. | -| `temDISABLED` | The AMM feature is not enabled on this network. | -| `temMALFORMED` | The transaction specified invalid options, such as a list of `AuthAccounts` that is too long. | -| `terNO_ACCOUNT` | One of the accounts specified in this request do not exist. | -| `terNO_AMM` | The Automated Market Maker instance for the asset pair in this transaction does not exist. | +| `tecAMM_INVALID_TOKENS` | The sender of this transaction does not hold enough LP Tokens to meet the slot price. | +| `temBAD_AMM_TOKENS` | The specified `BidMin` or `BidMax` were not specified as the correct LP Tokens for this AMM. | +| `temDISABLED` | The AMM feature is not enabled on this network. | +| `temMALFORMED` | The transaction specified invalid options, such as a list of `AuthAccounts` that is too long. | +| `terNO_ACCOUNT` | One of the accounts specified in this request do not exist. | +| `terNO_AMM` | The Automated Market Maker instance for the asset pair in this transaction does not exist. | ## See Also diff --git a/docs/references/protocol/transactions/types/ammclawback.md b/docs/references/protocol/transactions/types/ammclawback.md index fecfb8c0b5..e6b4dda7bb 100644 --- a/docs/references/protocol/transactions/types/ammclawback.md +++ b/docs/references/protocol/transactions/types/ammclawback.md @@ -1,10 +1,11 @@ --- seo: - description: Claw back tokens from a holder who has deposited your issued tokens into an Automated Market Maker pool. + description: Claw back tokens from a holder who has deposited your issued tokens into an Automated Market Maker pool. labels: - - AMM - - Tokens + - AMM + - Tokens --- + # AMMClawback [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/AMMClawback.cpp "Source") @@ -15,7 +16,6 @@ Clawback is disabled by default. To use clawback, you must send an [AccountSet t {% amendment-disclaimer name="AMMClawback" /%} - ## Example {% $frontmatter.seo.title %} JSON ```json @@ -24,54 +24,50 @@ Clawback is disabled by default. To use clawback, you must send an [AccountSet t "Account": "rPdYxU9dNkbzC5Y2h4jLbVJ3rMRrk7WVRL", "Holder": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", "Asset": { - "currency" : "FOO", - "issuer" : "rPdYxU9dNkbzC5Y2h4jLbVJ3rMRrk7WVRL" + "currency": "FOO", + "issuer": "rPdYxU9dNkbzC5Y2h4jLbVJ3rMRrk7WVRL" }, - "Asset2" : { - "currency" : "BAR", - "issuer" : "rHtptZx1yHf6Yv43s1RWffM3XnEYv3XhRg" + "Asset2": { + "currency": "BAR", + "issuer": "rHtptZx1yHf6Yv43s1RWffM3XnEYv3XhRg" }, "Amount": { - "currency" : "FOO", - "issuer" : "rPdYxU9dNkbzC5Y2h4jLbVJ3rMRrk7WVRL", - "value" : "1000" + "currency": "FOO", + "issuer": "rPdYxU9dNkbzC5Y2h4jLbVJ3rMRrk7WVRL", + "value": "1000" } } ``` - {% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%} - -| Field | JSON Type | [Internal Type][] | Required | Description | -|:----------|:---------------------|:------------------|:---------|:------------------| -| `Account` | String - [Address][] | AccountID | Yes | The issuer of the asset being clawed back. Only the issuer can submit this transaction. | -| `Asset` | Object | Issue | Yes | Specifies the asset that the issuer wants to claw back from the AMM pool. The asset can be XRP, a token, or an MPT (see: [Specifying Without Amounts][]). The `issuer` field must match with `Account`. | -| `Asset2` | Object | Issue | Yes | Specifies the other asset in the AMM's pool. The asset can be XRP, a token, or an MPT (see: [Specifying Without Amounts][]). | +| Field | JSON Type | [Internal Type][] | Required | Description | +| :-------- | :------------------- | :---------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Account` | String - [Address][] | AccountID | Yes | The issuer of the asset being clawed back. Only the issuer can submit this transaction. | +| `Asset` | Object | Issue | Yes | Specifies the asset that the issuer wants to claw back from the AMM pool. The asset can be XRP, a token, or an MPT (see: [Specifying Without Amounts][]). The `issuer` field must match with `Account`. | +| `Asset2` | Object | Issue | Yes | Specifies the other asset in the AMM's pool. The asset can be XRP, a token, or an MPT (see: [Specifying Without Amounts][]). | | `Amount` | [Currency Amount][] | Amount | No | The maximum amount to claw back from the AMM account. The `currency` and `issuer` subfields should match the `Asset` subfields. If this field isn't specified, or the `value` subfield exceeds the holder's available tokens in the AMM, all of the holder's tokens are clawed back. | -| `Holder` | String - [Address][] | AccountID | Yes | The account holding the asset to be clawed back. | - +| `Holder` | String - [Address][] | AccountID | Yes | The account holding the asset to be clawed back. | ## AMMClawback Flags -| Flag Name | Hex Value | Decimal Value | Description | -|-------------------|--------------|---------------|-------------| +| Flag Name | Hex Value | Decimal Value | Description | +| ----------------- | ------------ | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `tfClawTwoAssets` | `0x00000001` | 1 | Claw back the specified amount of `Asset`, and a corresponding amount of `Asset2` based on the AMM pool's asset proportion; both assets must be issued by the issuer in the `Account` field. If this flag isn't enabled, the issuer claws back the specified amount of `Asset`, while a corresponding proportion of `Asset2` goes back to the `Holder`. | - ## Error Cases Besides errors that can occur for all transactions, `AMMClawback` transactions can result in the following [transaction result codes](../transaction-results/index.md): -| Error Code | Description | -|:-------------------|:------------| +| Error Code | Description | +| :----------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `tecNO_PERMISSION` | Occurs if you attempt to claw back tokens from an AMM without the `lsfAllowTrustlineClawback` flag enabled, or the `tfClawTwoAssets` flag is enabled when you didn't issue both assets in the AMM. Also occurs if the `Asset` issuer doesn't match `Account`. | -| `tecAMM_BALANCE` | Occurs if the `Holder` doesn't hold any LP tokens from the AMM pool. | -| `temDISABLED` | Occurs if the [AMMClawback amendment][] is not enabled. | -| `temBAD_AMOUNT` | Occurs if the `Amount` field in the `AMMClawback` transaction is less than or equal to 0, or the `currency` and `issuer` subfields don't match between `Amount` and `Asset`. | -| `temINVALID_FLAG` | Occurs if you try enabling flags besides `tfClawTwoAssets`. | -| `temMALFORMED` | Occurs if the `issuer` subfield doesn't match between `Asset` and `Account`, `Account` is the same as the `Holder`, or `Asset` is XRP. | -| `terNO_AMM` | Occurs if the AMM pool specified by `Asset` and `Asset2` doesn't exist. | +| `tecAMM_BALANCE` | Occurs if the `Holder` doesn't hold any LP tokens from the AMM pool. | +| `temDISABLED` | Occurs if the [AMMClawback amendment][] is not enabled. | +| `temBAD_AMOUNT` | Occurs if the `Amount` field in the `AMMClawback` transaction is less than or equal to 0, or the `currency` and `issuer` subfields don't match between `Amount` and `Asset`. | +| `temINVALID_FLAG` | Occurs if you try enabling flags besides `tfClawTwoAssets`. | +| `temMALFORMED` | Occurs if the `issuer` subfield doesn't match between `Asset` and `Account`, `Account` is the same as the `Holder`, or `Asset` is XRP. | +| `terNO_AMM` | Occurs if the AMM pool specified by `Asset` and `Asset2` doesn't exist. | ## See Also diff --git a/docs/references/protocol/transactions/types/ammcreate.md b/docs/references/protocol/transactions/types/ammcreate.md index ffd9fd4775..17a9b87a29 100644 --- a/docs/references/protocol/transactions/types/ammcreate.md +++ b/docs/references/protocol/transactions/types/ammcreate.md @@ -1,10 +1,12 @@ --- seo: - description: Create a new Automated Market Maker for trading a given pair of assets. + description: Create a new Automated Market Maker for trading a given pair of assets. labels: - - AMM + - AMM --- + # AMMCreate + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/AMMCreate.cpp "Source") Create a new [Automated Market Maker](../../../../concepts/tokens/decentralized-exchange/automated-market-makers.md) (AMM) instance for trading a pair of assets ([fungible tokens](../../../../concepts/tokens/index.md) or [XRP](../../../../introduction/what-is-xrp.md)). @@ -39,7 +41,7 @@ Creates both an [AMM entry][] and a [special AccountRoot entry](../../ledger-dat "Sequence": 94041760, "SourceTag": 20221212, "TradingFee": 1000, - "TransactionType": "AMMCreate", + "TransactionType": "AMMCreate" } ``` @@ -47,10 +49,10 @@ Creates both an [AMM entry][] and a [special AccountRoot entry](../../ledger-dat {% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%} -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:-------------|:--------------------|:------------------|:----------|:------------| -| `Amount` | [Currency Amount][] | Amount | Yes | The first of the two assets to fund this AMM with. This must be a positive amount. | -| `Amount2` | [Currency Amount][] | Amount | Yes | The second of the two assets to fund this AMM with. This must be a positive amount. | +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :----------- | :------------------ | :---------------- | :-------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Amount` | [Currency Amount][] | Amount | Yes | The first of the two assets to fund this AMM with. This must be a positive amount. | +| `Amount2` | [Currency Amount][] | Amount | Yes | The second of the two assets to fund this AMM with. This must be a positive amount. | | `TradingFee` | Number | UInt16 | Yes | The fee to charge for trades against this AMM instance, in units of 1/100,000; a value of 1 is equivalent to 0.001%. The maximum value is `1000`, indicating a 1% fee. The minimum value is `0`. | One or both of `Amount` and `Amount2` can be [tokens](../../../../concepts/tokens/index.md); at most one of them can be [XRP](../../../../introduction/what-is-xrp.md). They cannot both have the same currency code and issuer. The tokens' issuers must have [Default Ripple](../../../../concepts/tokens/fungible-tokens/rippling.md#the-default-ripple-flag) enabled. The assets _cannot_ be LP tokens for another AMM. @@ -63,20 +65,20 @@ Since each AMM instance involves an AccountRoot ledger entry, an AMM ledger entr Besides errors that can occur for all transactions, {% $frontmatter.seo.title %} transactions can result in the following [transaction result codes](../transaction-results/index.md): -| Error Code | Description | -|:--------------------|:---------------------------------------------| -| `tecAMM_INVALID_TOKENS` | Either `Amount` or `Amount2` has a currency code that is the same as this AMM's LP Tokens would use. (This is very unlikely to occur.) | -| `tecDUPLICATE` | There is already another AMM for this currency pair. | -| `tecFROZEN` | At least one of the deposit assets (`Amount` or `Amount2`) is currently [frozen](../../../../concepts/tokens/fungible-tokens/freezes.md). | +| Error Code | Description | +| :---------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `tecAMM_INVALID_TOKENS` | Either `Amount` or `Amount2` has a currency code that is the same as this AMM's LP Tokens would use. (This is very unlikely to occur.) | +| `tecDUPLICATE` | There is already another AMM for this currency pair. | +| `tecFROZEN` | At least one of the deposit assets (`Amount` or `Amount2`) is currently [frozen](../../../../concepts/tokens/fungible-tokens/freezes.md). | | `tecINSUF_RESERVE_LINE` | The sender of this transaction does meet the increased [reserve requirement](../../../../concepts/accounts/reserves.md) of processing this transaction, probably because they need a new trust line to hold the LP Tokens, and they don't have enough XRP to meet the additional owner reserve for a new trust line. | -| `tecNO_AUTH` | At least one of the deposit assets uses [authorized trust lines](../../../../concepts/tokens/fungible-tokens/authorized-trust-lines.md) and the sender does not have authorization to hold that asset. | -| `tecNO_LINE` | The sender does not have a trust line for at least one of the deposit assets. | -| `tecNO_PERMISSION` | At least one of the deposit assets cannot be used in an AMM. | -| `tecUNFUNDED_AMM` | The sender does not hold enough of the assets specified in `Amount` and `Amount2` to fund the AMM. | -| `terNO_RIPPLE` | The issuer of at least one of the assets has not enabled the [Default Ripple flag](../../../../concepts/tokens/fungible-tokens/rippling.md#the-default-ripple-flag). | -| `temAMM_BAD_TOKENS` | The values of `Amount` and `Amount2` are not valid: for example, both refer to the same token. | -| `temBAD_FEE` | The `TradingFee` value is invalid. It must be zero or a positive integer and cannot be over 1000. | -| `temDISABLED` | The AMM feature is not enabled on this network. | +| `tecNO_AUTH` | At least one of the deposit assets uses [authorized trust lines](../../../../concepts/tokens/fungible-tokens/authorized-trust-lines.md) and the sender does not have authorization to hold that asset. | +| `tecNO_LINE` | The sender does not have a trust line for at least one of the deposit assets. | +| `tecNO_PERMISSION` | At least one of the deposit assets cannot be used in an AMM. | +| `tecUNFUNDED_AMM` | The sender does not hold enough of the assets specified in `Amount` and `Amount2` to fund the AMM. | +| `terNO_RIPPLE` | The issuer of at least one of the assets has not enabled the [Default Ripple flag](../../../../concepts/tokens/fungible-tokens/rippling.md#the-default-ripple-flag). | +| `temAMM_BAD_TOKENS` | The values of `Amount` and `Amount2` are not valid: for example, both refer to the same token. | +| `temBAD_FEE` | The `TradingFee` value is invalid. It must be zero or a positive integer and cannot be over 1000. | +| `temDISABLED` | The AMM feature is not enabled on this network. | ## See Also diff --git a/docs/references/protocol/transactions/types/ammdelete.md b/docs/references/protocol/transactions/types/ammdelete.md index facfdce922..6a4be29a48 100644 --- a/docs/references/protocol/transactions/types/ammdelete.md +++ b/docs/references/protocol/transactions/types/ammdelete.md @@ -1,10 +1,12 @@ --- seo: - description: Delete an Automated Market Maker with an empty asset pool. + description: Delete an Automated Market Maker with an empty asset pool. labels: - - AMM + - AMM --- + # AMMDelete + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/AMMDelete.cpp "Source") Delete an empty [Automated Market Maker](../../../../concepts/tokens/decentralized-exchange/automated-market-makers.md) (AMM) instance that could not be fully deleted automatically. @@ -13,43 +15,41 @@ Normally, an [AMMWithdraw transaction][] automatically deletes an AMM and all as {% amendment-disclaimer name="AMM" /%} - ## Example {% $frontmatter.seo.title %} JSON ```json { - "Account" : "rJVUeRqDFNs2xqA7ncVE6ZoAhPUoaJJSQm", - "Asset" : { - "currency" : "XRP" - }, - "Asset2" : { - "currency" : "TST", - "issuer" : "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd" - }, - "Fee" : "10", - "Flags" : 0, - "Sequence" : 9, - "TransactionType" : "AMMDelete" + "Account": "rJVUeRqDFNs2xqA7ncVE6ZoAhPUoaJJSQm", + "Asset": { + "currency": "XRP" + }, + "Asset2": { + "currency": "TST", + "issuer": "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd" + }, + "Fee": "10", + "Flags": 0, + "Sequence": 9, + "TransactionType": "AMMDelete" } ``` {% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%} -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:---------------|:--------------------|:------------------|:----------|:------------| -| `Asset` | Object | Issue | Yes | The definition for one of the assets in the AMM's pool. The asset can be XRP, a token, or an MPT (see: [Specifying Without Amounts][]). | -| `Asset2` | Object | Issue | Yes | The definition for the other asset in the AMM's pool. The asset can be XRP, a token, or an MPT (see: [Specifying Without Amounts][]). | - +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :------- | :-------- | :---------------- | :-------- | :-------------------------------------------------------------------------------------------------------------------------------------- | +| `Asset` | Object | Issue | Yes | The definition for one of the assets in the AMM's pool. The asset can be XRP, a token, or an MPT (see: [Specifying Without Amounts][]). | +| `Asset2` | Object | Issue | Yes | The definition for the other asset in the AMM's pool. The asset can be XRP, a token, or an MPT (see: [Specifying Without Amounts][]). | ## Error Cases Besides errors that can occur for all transactions, AMMCreate transactions can result in the following [transaction result codes](../transaction-results/index.md): -| Error Code | Description | -|:--------------------|:---------------------------------------------| -| `tecAMM_NOT_EMPTY` | The AMM holds assets in its pools, so it cannot be deleted. If you are one of the AMM's liquidity providers, use [AMMWithdraw][] first. | -| `tecINCOMPLETE` | There were too many associated ledger entries to fully delete, so the transaction removed as many as it could, but the AMM has not been fully deleted. You can send another AMMDelete transaction to continue and possibly finish the job. | -| `terNO_AMM` | The specified AMM does not exist. (It may have been deleted already, or you may have specified a wrong asset for the AMM you intended.) | +| Error Code | Description | +| :----------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `tecAMM_NOT_EMPTY` | The AMM holds assets in its pools, so it cannot be deleted. If you are one of the AMM's liquidity providers, use [AMMWithdraw][] first. | +| `tecINCOMPLETE` | There were too many associated ledger entries to fully delete, so the transaction removed as many as it could, but the AMM has not been fully deleted. You can send another AMMDelete transaction to continue and possibly finish the job. | +| `terNO_AMM` | The specified AMM does not exist. (It may have been deleted already, or you may have specified a wrong asset for the AMM you intended.) | ## See Also diff --git a/docs/references/protocol/transactions/types/ammdeposit.md b/docs/references/protocol/transactions/types/ammdeposit.md index dfed229c1f..6f19bbc89b 100644 --- a/docs/references/protocol/transactions/types/ammdeposit.md +++ b/docs/references/protocol/transactions/types/ammdeposit.md @@ -1,10 +1,12 @@ --- seo: - description: Deposit funds into an Automated Market Maker in exchange for LPTokens. + description: Deposit funds into an Automated Market Maker in exchange for LPTokens. labels: - - AMM + - AMM --- + # AMMDeposit + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/AMMDeposit.cpp "Source") Deposit funds into an [Automated Market Maker](../../../../concepts/tokens/decentralized-exchange/automated-market-makers.md) (AMM) instance and receive the AMM's liquidity provider tokens (_LP Tokens_) in exchange. You can deposit one or both of the assets in the AMM's pool. @@ -13,9 +15,10 @@ If successful, this transaction creates a [trust line](../../../../concepts/toke {% admonition type="info" name="Note" %} You can't deposit either asset into an AMM if: + - At least one of the pooled assets is frozen by the token issuer. - You aren't authorized to hold at least one of the pooled assets. -{% /admonition %} + {% /admonition %} {% amendment-disclaimer name="AMM" /%} @@ -23,24 +26,24 @@ You can't deposit either asset into an AMM if: ```json { - "Account" : "rJVUeRqDFNs2xqA7ncVE6ZoAhPUoaJJSQm", - "Amount" : { - "currency" : "TST", - "issuer" : "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd", - "value" : "2.5" - }, - "Amount2" : "30000000", - "Asset" : { - "currency" : "TST", - "issuer" : "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd" - }, - "Asset2" : { - "currency" : "XRP" - }, - "Fee" : "10", - "Flags" : 1048576, - "Sequence" : 7, - "TransactionType" : "AMMDeposit" + "Account": "rJVUeRqDFNs2xqA7ncVE6ZoAhPUoaJJSQm", + "Amount": { + "currency": "TST", + "issuer": "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd", + "value": "2.5" + }, + "Amount2": "30000000", + "Asset": { + "currency": "TST", + "issuer": "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd" + }, + "Asset2": { + "currency": "XRP" + }, + "Fee": "10", + "Flags": 1048576, + "Sequence": 7, + "TransactionType": "AMMDeposit" } ``` @@ -48,16 +51,15 @@ You can't deposit either asset into an AMM if: {% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%} -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:--------------|:--------------------|:------------------|:----------|:------------| -| `Asset` | Object | Issue | Yes | The definition for one of the assets in the AMM's pool. The asset can be XRP, a token, or an MPT (see: [Specifying Without Amounts][]). | -| `Asset2` | Object | Issue | Yes | The definition for the other asset in the AMM's pool. The asset can be XRP, a token, or an MPT (see: [Specifying Without Amounts][]). | -| `Amount` | [Currency Amount][] | Amount | No | The amount of one asset to deposit to the AMM. If present, this must match the type of one of the assets (tokens or XRP) in the AMM's pool. | -| `Amount2` | [Currency Amount][] | Amount | No | The amount of another asset to add to the AMM. If present, this must match the type of the other asset in the AMM's pool and cannot be the same asset as `Amount`. | -| `EPrice` | [Currency Amount][] | Amount | No | The maximum effective price, in the deposit asset, to pay for each LP Token received. | -| `LPTokenOut` | [Currency Amount][] | Amount | No | How many of the AMM's LP Tokens to buy. | -| `TradingFee` | Number | UInt16 | No | Submit a vote for the AMM's trading fee, in units of 1/100,000; a value of 1 is equivalent to 0.001%. The maximum value is 1000, indicating a 1% fee. | - +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :----------- | :------------------ | :---------------- | :-------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Asset` | Object | Issue | Yes | The definition for one of the assets in the AMM's pool. The asset can be XRP, a token, or an MPT (see: [Specifying Without Amounts][]). | +| `Asset2` | Object | Issue | Yes | The definition for the other asset in the AMM's pool. The asset can be XRP, a token, or an MPT (see: [Specifying Without Amounts][]). | +| `Amount` | [Currency Amount][] | Amount | No | The amount of one asset to deposit to the AMM. If present, this must match the type of one of the assets (tokens or XRP) in the AMM's pool. | +| `Amount2` | [Currency Amount][] | Amount | No | The amount of another asset to add to the AMM. If present, this must match the type of the other asset in the AMM's pool and cannot be the same asset as `Amount`. | +| `EPrice` | [Currency Amount][] | Amount | No | The maximum effective price, in the deposit asset, to pay for each LP Token received. | +| `LPTokenOut` | [Currency Amount][] | Amount | No | How many of the AMM's LP Tokens to buy. | +| `TradingFee` | Number | UInt16 | No | Submit a vote for the AMM's trading fee, in units of 1/100,000; a value of 1 is equivalent to 0.001%. The maximum value is 1000, indicating a 1% fee. | ### AMMDeposit Modes @@ -68,30 +70,30 @@ This transaction has five modes, defined by which flag you specify. Each mode ex The following combinations of fields indicate a **double-asset deposit**: -| Flag Name | Flag Value | Fields Specified | Meaning | -|---------------------|--------------|------------------------|---------| -| `tfLPToken` | `0x00010000` | `LPTokenOut` only | Deposit both of this AMM's assets, in amounts calculated so that you receive the specified amount of LP Tokens in return. The amounts deposited maintain the relative proportions of the two assets the AMM already holds. | +| Flag Name | Flag Value | Fields Specified | Meaning | +| ------------------- | ------------ | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `tfLPToken` | `0x00010000` | `LPTokenOut` only | Deposit both of this AMM's assets, in amounts calculated so that you receive the specified amount of LP Tokens in return. The amounts deposited maintain the relative proportions of the two assets the AMM already holds. | | `tfTwoAsset` | `0x00100000` | `Amount` and `Amount2` | Deposit both of this AMM's assets, up to the specified amounts. The actual amounts deposited must maintain the same balance of assets as the AMM already holds, so the amount of either one deposited MAY be less than specified. The amount of LP Tokens you get in return is based on the total value deposited. | -| `tfTwoAssetIfEmpty` | `0x00800000` | `Amount` and `Amount2` | Deposit both of this AMM's assets, in exactly the specified amounts, to an AMM with an empty asset pool. The amount of LP Tokens you get in return is based on the total value deposited. | +| `tfTwoAssetIfEmpty` | `0x00800000` | `Amount` and `Amount2` | Deposit both of this AMM's assets, in exactly the specified amounts, to an AMM with an empty asset pool. The amount of LP Tokens you get in return is based on the total value deposited. | The following combinations of fields indicate a **single asset deposit**: -| Flag Name | Flag Value | Fields Specified | Meaning | -|---------------------|--------------|----------------------------|---------| -| `tfSingleAsset` | `0x00080000` | `Amount` only | Deposit exactly the specified amount of one asset, and receive an amount of LP Tokens based on the resulting share of the pool (minus fees). | -| `tfOneAssetLPToken` | `0x00200000` | `Amount` and `LPTokenOut` | Deposit up to the specified amount of one asset, so that you receive exactly the specified amount of LP Tokens in return (after fees). | -| `tfLimitLPToken` | `0x00400000` | `Amount` and `EPrice` | Deposit up to the specified amount of one asset, but pay no more than the specified effective price per LP Token (after fees). | +| Flag Name | Flag Value | Fields Specified | Meaning | +| ------------------- | ------------ | ------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | +| `tfSingleAsset` | `0x00080000` | `Amount` only | Deposit exactly the specified amount of one asset, and receive an amount of LP Tokens based on the resulting share of the pool (minus fees). | +| `tfOneAssetLPToken` | `0x00200000` | `Amount` and `LPTokenOut` | Deposit up to the specified amount of one asset, so that you receive exactly the specified amount of LP Tokens in return (after fees). | +| `tfLimitLPToken` | `0x00400000` | `Amount` and `EPrice` | Deposit up to the specified amount of one asset, but pay no more than the specified effective price per LP Token (after fees). | Any other combination of these fields and flags is invalid. - ### Single Asset Deposit Fee - The fee for a single asset deposit is calculated to be the same as if you had used the AMM to trade part of the deposit amount for the other asset, then done a double-asset deposit. The AMM's trading fee applies to the amount you would need to trade for, but not to the rest of the deposit. _For example, if the AMM's asset pool is split perfectly evenly between USD and EUR, and you try to deposit 100 USD, the amount of LP Tokens you receive is slightly less than if you had deposited 50 EUR + 50 USD, because you pay the trading fee to convert some of your USD to an equal amount of EUR._ +The fee for a single asset deposit is calculated to be the same as if you had used the AMM to trade part of the deposit amount for the other asset, then done a double-asset deposit. The AMM's trading fee applies to the amount you would need to trade for, but not to the rest of the deposit. _For example, if the AMM's asset pool is split perfectly evenly between USD and EUR, and you try to deposit 100 USD, the amount of LP Tokens you receive is slightly less than if you had deposited 50 EUR + 50 USD, because you pay the trading fee to convert some of your USD to an equal amount of EUR._ - The formula for how many LP Tokens you receive for a double-asset deposit is: +The formula for how many LP Tokens you receive for a double-asset deposit is: + +[{% inline-svg file="/docs/img/amm-single-asset-deposit-formula.svg" /%}](/docs/img/amm-single-asset-deposit-formula.svg 'L = T × ( (( 1 + (B - (F × (1 - W) × B)) ÷ P)^W) - 1)') -[{% inline-svg file="/docs/img/amm-single-asset-deposit-formula.svg" /%}](/docs/img/amm-single-asset-deposit-formula.svg "L = T × ( (( 1 + (B - (F × (1 - W) × B)) ÷ P)^W) - 1)") Where: @@ -103,7 +105,6 @@ Where: - `W` is the weight of the deposit asset in the pool. This is defined as 0.5 for all AMM pools (meaning a 50/50 split), so exponentiation by W is equivalent to taking the square root. - `P` is the total amount of the deposit asset in the pool before the deposit - ### Empty AMM Special Case In some cases, an AMM can exist with no assets in its pool. You cannot perform normal deposits into an AMM in such a state because the ratio between the assets is undefined (0/0). Instead, you can use a special "Empty AMM" deposit case with the flag `tfTwoAssetIfEmpty` and exact amounts of both assets. This directly sets the ratio between the assets in the same way an [AMMCreate transaction][] does when an AMM is initially created. Like a double-asset deposit, this is not subject to a fee. @@ -114,36 +115,35 @@ You can only do a special "Empty AMM" deposit if the AMM is empty. Transactions of the AMMDeposit type support additional values in the [`Flags` field](../common-fields.md#flags-field), as follows: -| Flag Name | Hex Value | Decimal Value | Description | -|:--------------------|:-------------|:--------------|:----------------------| -| `tfLPToken` | `0x00010000` | 65536 | Perform a double-asset deposit and receive the specified amount of LP Tokens. | +| Flag Name | Hex Value | Decimal Value | Description | +| :------------------ | :----------- | :------------ | :------------------------------------------------------------------------------ | +| `tfLPToken` | `0x00010000` | 65536 | Perform a double-asset deposit and receive the specified amount of LP Tokens. | | `tfSingleAsset` | `0x00080000` | 524288 | Perform a single-asset deposit with a specified amount of the asset to deposit. | -| `tfTwoAsset` | `0x00100000` | 1048576 | Perform a double-asset deposit with specified amounts of both assets. | -| `tfOneAssetLPToken` | `0x00200000` | 2097152 | Perform a single-asset deposit and receive the specified amount of LP Tokens. | -| `tfLimitLPToken` | `0x00400000` | 4194304 | Perform a single-asset deposit with a specified effective price. | -| `tfTwoAssetIfEmpty` | `0x00800000` | 8388608 | Perform a special double-asset deposit to an AMM with an empty pool. | +| `tfTwoAsset` | `0x00100000` | 1048576 | Perform a double-asset deposit with specified amounts of both assets. | +| `tfOneAssetLPToken` | `0x00200000` | 2097152 | Perform a single-asset deposit and receive the specified amount of LP Tokens. | +| `tfLimitLPToken` | `0x00400000` | 4194304 | Perform a single-asset deposit with a specified effective price. | +| `tfTwoAssetIfEmpty` | `0x00800000` | 8388608 | Perform a special double-asset deposit to an AMM with an empty pool. | You must specify **exactly one** of these flags, plus any [global flags](../common-fields.md#global-flags). - ## Error Cases Besides errors that can occur for all transactions, {% $frontmatter.seo.title %} transactions can result in the following [transaction result codes](../transaction-results/index.md): -| Error Code | Description | -|:------------------------|:---------------------------------------------| -| `tecAMM_EMPTY` | The AMM currently holds no assets, so you cannot do a normal deposit. You must use the Empty AMM Special Case deposit instead. | -| `tecAMM_NOT_EMPTY` | The transaction specified `tfTwoAssetIfEmpty`, but the AMM was not empty. | -| `tecAMM_FAILED` | The conditions on the deposit could not be satisfied. For example, the requested effective price in the `EPrice` field is too low. | -| `tecFROZEN` | The transaction tried to deposit a [frozen](../../../../concepts/tokens/fungible-tokens/freezes.md) token, or at least one of the paired tokens is frozen. | +| Error Code | Description | +| :---------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `tecAMM_EMPTY` | The AMM currently holds no assets, so you cannot do a normal deposit. You must use the Empty AMM Special Case deposit instead. | +| `tecAMM_NOT_EMPTY` | The transaction specified `tfTwoAssetIfEmpty`, but the AMM was not empty. | +| `tecAMM_FAILED` | The conditions on the deposit could not be satisfied. For example, the requested effective price in the `EPrice` field is too low. | +| `tecFROZEN` | The transaction tried to deposit a [frozen](../../../../concepts/tokens/fungible-tokens/freezes.md) token, or at least one of the paired tokens is frozen. | | `tecINSUF_RESERVE_LINE` | The sender of this transaction does meet the increased [reserve requirement](../../../../concepts/accounts/reserves.md) of processing this transaction, probably because they need a new trust line to hold the LP Tokens, and they don't have enough XRP to meet the additional owner reserve for a new trust line. | -| `tecUNFUNDED_AMM` | The sender does not have a high enough balance to make the specified deposit. | -| `temBAD_AMM_TOKENS` | The transaction specified the LP Tokens incorrectly. For example, the `issuer` is not the AMM's associated AccountRoot address or the `currency` is not the currency code for this AMM's LP Tokens, or the transaction specified this AMM's LP Tokens in one of the asset fields. | -| `temBAD_AMOUNT` | An amount specified in the transaction is invalid. For example, a deposit amount is negative. | -| `temBAD_FEE` | A fee value specified in the transaction is invalid. For example, the trading fee is outside the allowable range. | -| `temMALFORMED` | The transaction specified an invalid combination of fields. See [AMMDeposit Modes](#ammdeposit-modes). | -| `terNO_ACCOUNT` | An account specified in the request does not exist. | -| `terNO_AMM` | The Automated Market Maker instance for the asset pair in this transaction does not exist. | +| `tecUNFUNDED_AMM` | The sender does not have a high enough balance to make the specified deposit. | +| `temBAD_AMM_TOKENS` | The transaction specified the LP Tokens incorrectly. For example, the `issuer` is not the AMM's associated AccountRoot address or the `currency` is not the currency code for this AMM's LP Tokens, or the transaction specified this AMM's LP Tokens in one of the asset fields. | +| `temBAD_AMOUNT` | An amount specified in the transaction is invalid. For example, a deposit amount is negative. | +| `temBAD_FEE` | A fee value specified in the transaction is invalid. For example, the trading fee is outside the allowable range. | +| `temMALFORMED` | The transaction specified an invalid combination of fields. See [AMMDeposit Modes](#ammdeposit-modes). | +| `terNO_ACCOUNT` | An account specified in the request does not exist. | +| `terNO_AMM` | The Automated Market Maker instance for the asset pair in this transaction does not exist. | ## See Also diff --git a/docs/references/protocol/transactions/types/ammvote.md b/docs/references/protocol/transactions/types/ammvote.md index ac0d0fe5c5..0514e21ecf 100644 --- a/docs/references/protocol/transactions/types/ammvote.md +++ b/docs/references/protocol/transactions/types/ammvote.md @@ -1,10 +1,12 @@ --- seo: - description: Vote on the trading fee for an Automated Market Maker. + description: Vote on the trading fee for an Automated Market Maker. labels: - - AMM + - AMM --- + # AMMVote + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/AMMVote.cpp "Source") Vote on the trading fee for an [Automated Market Maker](../../../../concepts/tokens/decentralized-exchange/automated-market-makers.md) instance. Up to 8 accounts can vote in proportion to the amount of the AMM's LP Tokens they hold. Each new vote re-calculates the AMM's trading fee based on a weighted average of the votes. @@ -15,19 +17,19 @@ Vote on the trading fee for an [Automated Market Maker](../../../../concepts/tok ```json { - "Account" : "rJVUeRqDFNs2xqA7ncVE6ZoAhPUoaJJSQm", - "Asset" : { - "currency" : "XRP" - }, - "Asset2" : { - "currency" : "TST", - "issuer" : "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd" - }, - "Fee" : "10", - "Flags" : 2147483648, - "Sequence" : 8, - "TradingFee" : 600, - "TransactionType" : "AMMVote" + "Account": "rJVUeRqDFNs2xqA7ncVE6ZoAhPUoaJJSQm", + "Asset": { + "currency": "XRP" + }, + "Asset2": { + "currency": "TST", + "issuer": "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd" + }, + "Fee": "10", + "Flags": 2147483648, + "Sequence": 8, + "TradingFee": 600, + "TransactionType": "AMMVote" } ``` @@ -35,23 +37,23 @@ Vote on the trading fee for an [Automated Market Maker](../../../../concepts/tok {% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%} -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:-------------|:----------|:------------------|:----------|:------------| -| `Asset` | Object | Issue | Yes | The definition for one of the assets in the AMM's pool. The asset can be XRP, a token, or an MPT (see: [Specifying Without Amounts][]). | -| `Asset2` | Object | Issue | Yes | The definition for the other asset in the AMM's pool. The asset can be XRP, a token, or an MPT (see: [Specifying Without Amounts][]). | +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :----------- | :-------- | :---------------- | :-------- | :----------------------------------------------------------------------------------------------------------------------------------------- | +| `Asset` | Object | Issue | Yes | The definition for one of the assets in the AMM's pool. The asset can be XRP, a token, or an MPT (see: [Specifying Without Amounts][]). | +| `Asset2` | Object | Issue | Yes | The definition for the other asset in the AMM's pool. The asset can be XRP, a token, or an MPT (see: [Specifying Without Amounts][]). | | `TradingFee` | Number | UInt16 | Yes | The proposed fee to vote for, in units of 1/100,000; a value of 1 is equivalent to 0.001%. The maximum value is 1000, indicating a 1% fee. | ## Error Cases Besides errors that can occur for all transactions, {% $frontmatter.seo.title %} transactions can result in the following [transaction result codes](../transaction-results/index.md): -| Error Code | Description | -|:------------------------|:---------------------------------------------| +| Error Code | Description | +| :---------------------- | :----------------------------------------------------------------------------------------------------------- | | `tecAMM_EMPTY` | The AMM has no assets in its pool. In this state, you can only delete the AMM or fund it with a new deposit. | -| `tecAMM_INVALID_TOKENS` | The sender cannot vote because they do not hold any of this AMM's LP Tokens. | -| `tecAMM_FAILED_VOTE` | There are already 8 votes from accounts that hold more LP Tokens than the sender of this transaction. | -| `temBAD_FEE` | The `TradingFee` from this transaction is not valid. | -| `terNO_AMM` | The Automated Market Maker instance for the asset pair in this transaction does not exist. | +| `tecAMM_INVALID_TOKENS` | The sender cannot vote because they do not hold any of this AMM's LP Tokens. | +| `tecAMM_FAILED_VOTE` | There are already 8 votes from accounts that hold more LP Tokens than the sender of this transaction. | +| `temBAD_FEE` | The `TradingFee` from this transaction is not valid. | +| `terNO_AMM` | The Automated Market Maker instance for the asset pair in this transaction does not exist. | ## See Also diff --git a/docs/references/protocol/transactions/types/ammwithdraw.md b/docs/references/protocol/transactions/types/ammwithdraw.md index ed0a73585c..5650346710 100644 --- a/docs/references/protocol/transactions/types/ammwithdraw.md +++ b/docs/references/protocol/transactions/types/ammwithdraw.md @@ -1,10 +1,12 @@ --- seo: - description: Return LPTokens to an Automated Market Maker in exchange for a share of the assets the pool holds. + description: Return LPTokens to an Automated Market Maker in exchange for a share of the assets the pool holds. labels: - - AMM + - AMM --- + # AMMWithdraw + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/AMMWithdraw.cpp "Source") Withdraw assets from an [Automated Market Maker](../../../../concepts/tokens/decentralized-exchange/automated-market-makers.md) (AMM) instance by returning the AMM's liquidity provider tokens (LP Tokens). @@ -15,24 +17,24 @@ Withdraw assets from an [Automated Market Maker](../../../../concepts/tokens/dec ```json { - "Account" : "rJVUeRqDFNs2xqA7ncVE6ZoAhPUoaJJSQm", - "Amount" : { - "currency" : "TST", - "issuer" : "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd", - "value" : "5" - }, - "Amount2" : "50000000", - "Asset" : { - "currency" : "TST", - "issuer" : "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd" - }, - "Asset2" : { - "currency" : "XRP" - }, - "Fee" : "10", - "Flags" : 1048576, - "Sequence" : 10, - "TransactionType" : "AMMWithdraw" + "Account": "rJVUeRqDFNs2xqA7ncVE6ZoAhPUoaJJSQm", + "Amount": { + "currency": "TST", + "issuer": "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd", + "value": "5" + }, + "Amount2": "50000000", + "Asset": { + "currency": "TST", + "issuer": "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd" + }, + "Asset2": { + "currency": "XRP" + }, + "Fee": "10", + "Flags": 1048576, + "Sequence": 10, + "TransactionType": "AMMWithdraw" } ``` @@ -40,14 +42,14 @@ Withdraw assets from an [Automated Market Maker](../../../../concepts/tokens/dec {% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%} -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:-------------|:--------------------|:------------------|:----------|:------------| -| `Asset` | Object | Issue | Yes | The definition for one of the assets in the AMM's pool. The asset can be XRP, a token, or an MPT (see: [Specifying Without Amounts][]). | -| `Asset2` | Object | Issue | Yes | The definition for the other asset in the AMM's pool. The asset can be XRP, a token, or an MPT (see: [Specifying Without Amounts][]). | -| `Amount` | [Currency Amount][] | Amount | No | The amount of one asset to withdraw from the AMM. This must match the type of one of the assets (tokens or XRP) in the AMM's pool. | -| `Amount2` | [Currency Amount][] | Amount | No | The amount of another asset to withdraw from the AMM. If present, this must match the type of the other asset in the AMM's pool and cannot be the same type as `Amount`. | -| `EPrice` | [Currency Amount][] | Amount | No | The minimum effective price, in LP Token returned, to pay per unit of the asset to withdraw. | -| `LPTokenIn` | [Currency Amount][] | Amount | No | How many of the AMM's LP Tokens to redeem. | +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :---------- | :------------------ | :---------------- | :-------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Asset` | Object | Issue | Yes | The definition for one of the assets in the AMM's pool. The asset can be XRP, a token, or an MPT (see: [Specifying Without Amounts][]). | +| `Asset2` | Object | Issue | Yes | The definition for the other asset in the AMM's pool. The asset can be XRP, a token, or an MPT (see: [Specifying Without Amounts][]). | +| `Amount` | [Currency Amount][] | Amount | No | The amount of one asset to withdraw from the AMM. This must match the type of one of the assets (tokens or XRP) in the AMM's pool. | +| `Amount2` | [Currency Amount][] | Amount | No | The amount of another asset to withdraw from the AMM. If present, this must match the type of the other asset in the AMM's pool and cannot be the same type as `Amount`. | +| `EPrice` | [Currency Amount][] | Amount | No | The minimum effective price, in LP Token returned, to pay per unit of the asset to withdraw. | +| `LPTokenIn` | [Currency Amount][] | Amount | No | How many of the AMM's LP Tokens to redeem. | {% admonition type="info" name="Note" %}For a double-asset withdrawal, it is possible for `Asset` to correspond to _either_ `Amount` or `Amount2` as long as `Asset2` corresponds to the other one. It is recommended to match them (that is, `Amount2` is an amount of the asset defined in `Asset2`) because it is less confusing that way.{% /admonition %} @@ -60,20 +62,20 @@ This transaction has several modes, depending on which flags you specify. Each m The following combinations of fields indicate a **double-asset withdrawal**: -| Flag Name(s) | Flag Value | Fields Specified | Meaning | -|-----------------|--------------|------------------------|---------| -| `tfLPToken` | `0x00010000` | `LPTokenIn` only | Return the specified amount of LP Tokens and receive both assets from the AMM's pool in amounts based on the returned LP Tokens' share of the total LP Tokens issued. | -| `tfWithdrawAll` | `0x00020000` | No Fields | Return _all_ of your LP Tokens and receive as much as you can of both assets in the AMM's pool. | -| `tfTwoAsset` | `0x00100000` | `Amount` and `Amount2` | Withdraw both of this AMM's assets, in up to the specified amounts. The actual amounts received maintains the balance of assets in the AMM's pool. | +| Flag Name(s) | Flag Value | Fields Specified | Meaning | +| --------------- | ------------ | ---------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `tfLPToken` | `0x00010000` | `LPTokenIn` only | Return the specified amount of LP Tokens and receive both assets from the AMM's pool in amounts based on the returned LP Tokens' share of the total LP Tokens issued. | +| `tfWithdrawAll` | `0x00020000` | No Fields | Return _all_ of your LP Tokens and receive as much as you can of both assets in the AMM's pool. | +| `tfTwoAsset` | `0x00100000` | `Amount` and `Amount2` | Withdraw both of this AMM's assets, in up to the specified amounts. The actual amounts received maintains the balance of assets in the AMM's pool. | The following combinations of fields indicate a **single asset withdrawal**: -| Flag Name(s) | Flag Value | Fields Specified | Meaning | -|-------------------------|--------------|--------------------------|---------| -| `tfSingleAsset` | `0x00080000` | `Amount` only | Withdraw exactly the specified amount of one asset, by returning as many LP Tokens as necessary. | +| Flag Name(s) | Flag Value | Fields Specified | Meaning | +| ----------------------- | ------------ | ------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `tfSingleAsset` | `0x00080000` | `Amount` only | Withdraw exactly the specified amount of one asset, by returning as many LP Tokens as necessary. | | `tfOneAssetWithdrawAll` | `0x00040000` | `Amount` only | Withdraw at least the specified amount of one asset, by returning _all_ of your LP Tokens. Fails if you can't receive at least the specified amount. The specified amount can be 0, meaning the transaction succeeds if it withdraws any positive amount. | -| `tfOneAssetLPToken` | `0x00200000` | `Amount` and `LPTokenIn` | Withdraw up to the specified amount of one asset, by returning up to the specified amount of LP Tokens. | -| `tfLimitLPToken` | `0x00400000` | `Amount` and `EPrice` | Withdraw up to the specified amount of one asset, but pay no more than the specified effective price in LP Tokens per unit of the asset received. | +| `tfOneAssetLPToken` | `0x00200000` | `Amount` and `LPTokenIn` | Withdraw up to the specified amount of one asset, by returning up to the specified amount of LP Tokens. | +| `tfLimitLPToken` | `0x00400000` | `Amount` and `EPrice` | Withdraw up to the specified amount of one asset, but pay no more than the specified effective price in LP Tokens per unit of the asset received. | Any other combination of these fields is invalid. @@ -91,35 +93,34 @@ If the transaction withdraws the last of the AMM's assets, it automatically trie Transactions of the AMMWithdraw type support additional values in the [`Flags` field](../common-fields.md#flags-field), as follows: -| Flag Name | Hex Value | Decimal Value | Description | -|:------------------------|:-------------|:--------------|:----------------------| -| `tfLPToken` | `0x00010000` | 65536 | Perform a double-asset withdrawal and receive the specified amount of LP Tokens. | -| `tfWithdrawAll` | `0x00020000` | 131072 | Perform a double-asset withdrawal returning all your LP Tokens. | -| `tfOneAssetWithdrawAll` | `0x00040000` | 262144 | Perform a single-asset withdrawal returning all of your LP Tokens. | +| Flag Name | Hex Value | Decimal Value | Description | +| :---------------------- | :----------- | :------------ | :------------------------------------------------------------------------------------ | +| `tfLPToken` | `0x00010000` | 65536 | Perform a double-asset withdrawal and receive the specified amount of LP Tokens. | +| `tfWithdrawAll` | `0x00020000` | 131072 | Perform a double-asset withdrawal returning all your LP Tokens. | +| `tfOneAssetWithdrawAll` | `0x00040000` | 262144 | Perform a single-asset withdrawal returning all of your LP Tokens. | | `tfSingleAsset` | `0x00080000` | 524288 | Perform a single-asset withdrawal with a specified amount of the asset to withdrawal. | -| `tfTwoAsset` | `0x00100000` | 1048576 | Perform a double-asset withdrawal with specified amounts of both assets. | -| `tfOneAssetLPToken` | `0x00200000` | 2097152 | Perform a single-asset withdrawal and receive the specified amount of LP Tokens. | -| `tfLimitLPToken` | `0x00400000` | 4194304 | Perform a single-asset withdrawal with a specified effective price. | +| `tfTwoAsset` | `0x00100000` | 1048576 | Perform a double-asset withdrawal with specified amounts of both assets. | +| `tfOneAssetLPToken` | `0x00200000` | 2097152 | Perform a single-asset withdrawal and receive the specified amount of LP Tokens. | +| `tfLimitLPToken` | `0x00400000` | 4194304 | Perform a single-asset withdrawal with a specified effective price. | You must specify **exactly one** of these flags, plus any [global flags](../common-fields.md#global-flags). - ## Error Cases Besides errors that can occur for all transactions, {% $frontmatter.seo.title %} transactions can result in the following [transaction result codes](../transaction-results/index.md): -| Error Code | Description | -|:------------------------|:---------------------------------------------| -| `tecAMM_EMPTY` | The AMM has no assets in its pool. In this state, you can only delete the AMM or fund it with a new deposit. | -| `tecAMM_BALANCE` | The transaction would withdraw all of one asset from the pool, or rounding would cause a "withdraw all" to leave a nonzero amount behind. | -| `tecAMM_FAILED` | The conditions on the withdrawal could not be satisfied; for example, the requested effective price in the `EPrice` field is too low. | -| `tecAMM_INVALID_TOKENS` | The AMM for this token pair does not exist, or one of the calculations resulted in a withdrawal amount rounding to zero. | -| `tecFROZEN` | The transaction tried to withdraw a [frozen](../../../../concepts/tokens/fungible-tokens/freezes.md) token. | +| Error Code | Description | +| :---------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `tecAMM_EMPTY` | The AMM has no assets in its pool. In this state, you can only delete the AMM or fund it with a new deposit. | +| `tecAMM_BALANCE` | The transaction would withdraw all of one asset from the pool, or rounding would cause a "withdraw all" to leave a nonzero amount behind. | +| `tecAMM_FAILED` | The conditions on the withdrawal could not be satisfied; for example, the requested effective price in the `EPrice` field is too low. | +| `tecAMM_INVALID_TOKENS` | The AMM for this token pair does not exist, or one of the calculations resulted in a withdrawal amount rounding to zero. | +| `tecFROZEN` | The transaction tried to withdraw a [frozen](../../../../concepts/tokens/fungible-tokens/freezes.md) token. | | `tecINSUF_RESERVE_LINE` | The sender of this transaction does not meet the increased [reserve requirement](../../../../concepts/accounts/reserves.md) of processing this transaction, probably because they need at least one new trust line to hold one of the assets to be withdrawn, and they don't have enough XRP to meet the additional owner reserve for a new trust line. | -| `tecNO_AUTH` | The sender is not authorized to hold one of the AMM assets. | -| `temMALFORMED` | The transaction specified an invalid combination of fields. See [AMMWithdraw Modes](#ammwithdraw-modes). (This error can also occur if the transaction is malformed in other ways.) | -| `temBAD_AMM_TOKENS` | The transaction specified the LP Tokens incorrectly; for example, the `issuer` is not the AMM's associated AccountRoot address or the `currency` is not the currency code for this AMM's LP Tokens, or the transaction specified this AMM's LP Tokens in one of the asset fields. | -| `terNO_AMM` | The Automated Market Maker instance for the asset pair in this transaction does not exist. | +| `tecNO_AUTH` | The sender is not authorized to hold one of the AMM assets. | +| `temMALFORMED` | The transaction specified an invalid combination of fields. See [AMMWithdraw Modes](#ammwithdraw-modes). (This error can also occur if the transaction is malformed in other ways.) | +| `temBAD_AMM_TOKENS` | The transaction specified the LP Tokens incorrectly; for example, the `issuer` is not the AMM's associated AccountRoot address or the `currency` is not the currency code for this AMM's LP Tokens, or the transaction specified this AMM's LP Tokens in one of the asset fields. | +| `terNO_AMM` | The Automated Market Maker instance for the asset pair in this transaction does not exist. | ## See Also diff --git a/docs/references/protocol/transactions/types/batch.md b/docs/references/protocol/transactions/types/batch.md index 518bf3e3cd..b7d1b12a59 100644 --- a/docs/references/protocol/transactions/types/batch.md +++ b/docs/references/protocol/transactions/types/batch.md @@ -1,18 +1,19 @@ --- seo: - description: Create and submit a batch of up to 8 transactions that succeed or fail atomically. + description: Create and submit a batch of up to 8 transactions that succeed or fail atomically. labels: - - Transaction Sending + - Transaction Sending status: not_enabled --- + # Batch + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/Batch.cpp "Source") Submit up to eight transactions as a single [batch](../../../../concepts/transactions/batch-transactions.md). The transactions in the batch are executed atomically in one of four modes: All or Nothing, Only One, Until Failure, or Independent. {% amendment-disclaimer name="Batch" /%} - ## Example {% $frontmatter.seo.title %} JSON ### Single Account @@ -118,11 +119,11 @@ In this example, two users are atomically swapping their tokens: XRP for GKO. {% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%} -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:------------------|:----------|:------------------|:----------|:------------| +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :---------------- | :-------- | :---------------- | :-------- | :----------------------------------------------------------------------------------------------------------------------------------------------- | | `Flags` | Number | UInt32 | Yes | A bit-flag for this transaction. Exactly one must be specified to represent the batch mode of the transaction. See: [Batch Flags](#batch-flags). | -| `RawTransactions` | Array | Array | Yes | The list of transactions to apply. See [RawTransactions](#rawtransactions). | -| `BatchSigners` | Array | Array | No | The signatures authorizing a multi-account `Batch` transaction. | +| `RawTransactions` | Array | Array | Yes | The list of transactions to apply. See [RawTransactions](#rawtransactions). | +| `BatchSigners` | Array | Array | No | The signatures authorizing a multi-account `Batch` transaction. | ### RawTransactions @@ -139,38 +140,36 @@ Each inner transaction: This field operates similarly to multi-signing on the XRPL. It is only needed if multiple accounts' transactions are included in the `Batch` transaction; otherwise, the normal transaction signature provides the same security guarantees. -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:----------------|:----------|:------------------|:----------|:------------| -| `Account` | String | AccountID | Yes | An account with at least one inner transaction. | +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :-------------- | :-------- | :---------------- | :-------- | :------------------------------------------------------------------------------------------------------ | +| `Account` | String | AccountID | Yes | An account with at least one inner transaction. | | `SigningPubKey` | String | Blob | No | Hex representation of the public key that corresponds to the private key used to sign this transaction. | -| `TxnSignature` | String | Blob | No | The signature that verifies this transaction as originating from the account it says it is from. | -| `Signers` | Array | Array | No | Array of objects that represent a multi-signature which authorizes this transaction. | +| `TxnSignature` | String | Blob | No | The signature that verifies this transaction as originating from the account it says it is from. | +| `Signers` | Array | Array | No | Array of objects that represent a multi-signature which authorizes this transaction. | {% admonition type="info" name="Note" %} If the account submitting the `Batch` transaction is signing with a single signature, they sign the `Flags` field and the hashes of the inner transactions. In this case, only `SigningPubKey` and `TxnSignature` are included. Otherwise, the `Signers` field is used instead for multi-signing; this field holds the signatures for the `Flags` field and the hashes of the inner transactions. {% /admonition %} - ## Batch Flags Transactions of the `Batch` type support additional values in the [`Flags` field](../common-fields.md#flags-field), as follows: -| Flag Name | Hex Value | Decimal Value | Description | -|:-------------------|:-------------|:--------------|:------------------------------| -| `tfAllOrNothing` | `0x00010000` | 65536 | All transactions must succeed or else the whole batch fails. | -| `tfOnlyOne` | `0x00020000` | 131072 | Only the first successful transaction is applied. All transactions afterward fail or are skipped. | -| `tfUntilFailure` | `0x00040000` | 262144 | All transactions are applied until the first failure; subsequent transactions are skipped. | -| `tfIndependent` | `0x00080000` | 524288 | All transactions will be applied, regardless of failure. | +| Flag Name | Hex Value | Decimal Value | Description | +| :--------------- | :----------- | :------------ | :------------------------------------------------------------------------------------------------ | +| `tfAllOrNothing` | `0x00010000` | 65536 | All transactions must succeed or else the whole batch fails. | +| `tfOnlyOne` | `0x00020000` | 131072 | Only the first successful transaction is applied. All transactions afterward fail or are skipped. | +| `tfUntilFailure` | `0x00040000` | 262144 | All transactions are applied until the first failure; subsequent transactions are skipped. | +| `tfIndependent` | `0x00080000` | 524288 | All transactions will be applied, regardless of failure. | A transaction is considered successful if it receives a `tesSUCCESS` result. - ## Error Cases -| Error Code | Description | -|:--------------------------|:--------------------------------------------------| -| `temARRAY_EMPTY` | The batch transaction contains zero or one inner transaction. You must submit at least two inner transactions. | -| `temINVALID_INNER_BATCH` | An inner transaction is malformed. | -| `temSEQ_AND_TICKET` | The transaction contains both a `TicketSequence` field and a non-zero `Sequence` value. A transaction can't include both fields, but must have at least one. | +| Error Code | Description | +| :----------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `temARRAY_EMPTY` | The batch transaction contains zero or one inner transaction. You must submit at least two inner transactions. | +| `temINVALID_INNER_BATCH` | An inner transaction is malformed. | +| `temSEQ_AND_TICKET` | The transaction contains both a `TicketSequence` field and a non-zero `Sequence` value. A transaction can't include both fields, but must have at least one. | {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/protocol/transactions/types/checkcancel.md b/docs/references/protocol/transactions/types/checkcancel.md index a2f8f1ad97..e443276e66 100644 --- a/docs/references/protocol/transactions/types/checkcancel.md +++ b/docs/references/protocol/transactions/types/checkcancel.md @@ -1,10 +1,12 @@ --- seo: - description: Cancel a check. + description: Cancel a check. labels: - - Checks + - Checks --- + # CheckCancel + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/CancelCheck.cpp "Source") Cancels an unredeemed [check](../../../../concepts/payment-types/checks.md), removing it from the ledger without sending any money. The source or the destination of the check can cancel a check at any time. If the check has expired, any address can cancel it. @@ -15,10 +17,10 @@ Cancels an unredeemed [check](../../../../concepts/payment-types/checks.md), rem ```json { - "Account": "rUn84CUYbNjRoTQ6mSW7BVJPSVJNLb1QLo", - "TransactionType": "CheckCancel", - "CheckID": "49647F0D748DC3FE26BDACBC57F251AADEFFF391403EC9BF87C97F67E9977FB0", - "Fee": "12" + "Account": "rUn84CUYbNjRoTQ6mSW7BVJPSVJNLb1QLo", + "TransactionType": "CheckCancel", + "CheckID": "49647F0D748DC3FE26BDACBC57F251AADEFFF391403EC9BF87C97F67E9977FB0", + "Fee": "12" } ``` @@ -26,9 +28,9 @@ Cancels an unredeemed [check](../../../../concepts/payment-types/checks.md), rem {% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%} -| Field | JSON Type | [Internal Type][] | Description | -|:------------|:----------|:------------------|:-------------------------------| -| `CheckID` | String | UInt256 | The ID of the [Check ledger object](../../ledger-data/ledger-entry-types/check.md) to cancel, as a 64-character hexadecimal string. | +| Field | JSON Type | [Internal Type][] | Description | +| :-------- | :-------- | :---------------- | :---------------------------------------------------------------------------------------------------------------------------------- | +| `CheckID` | String | UInt256 | The ID of the [Check ledger object](../../ledger-data/ledger-entry-types/check.md) to cancel, as a 64-character hexadecimal string. | ## Error Cases diff --git a/docs/references/protocol/transactions/types/checkcash.md b/docs/references/protocol/transactions/types/checkcash.md index 46d54a64b7..3576c6c0bb 100644 --- a/docs/references/protocol/transactions/types/checkcash.md +++ b/docs/references/protocol/transactions/types/checkcash.md @@ -1,10 +1,12 @@ --- seo: - description: Redeem a check. + description: Redeem a check. labels: - - Checks + - Checks --- + # CheckCash + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/CashCheck.cpp "Source") Attempts to redeem a [check](../../../../concepts/payment-types/checks.md) to receive up to the amount authorized by the corresponding [CheckCreate transaction][]. Only the `Destination` address of a check can cash it with a CheckCash transaction. Cashing a check this way is similar to executing a [Payment][] initiated by the destination. @@ -17,11 +19,11 @@ Since the funds for a check are not guaranteed, redeeming a check can fail becau ```json { - "Account": "rfkE1aSy9G8Upk4JssnwBxhEv5p4mn2KTy", - "TransactionType": "CheckCash", - "Amount": "100000000", - "CheckID": "838766BA2B995C00744175F69A1B11E32C3DBC40E64801A4056FCBD657F57334", - "Fee": "12" + "Account": "rfkE1aSy9G8Upk4JssnwBxhEv5p4mn2KTy", + "TransactionType": "CheckCash", + "Amount": "100000000", + "CheckID": "838766BA2B995C00744175F69A1B11E32C3DBC40E64801A4056FCBD657F57334", + "Fee": "12" } ``` @@ -29,13 +31,13 @@ Since the funds for a check are not guaranteed, redeeming a check can fail becau {% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%} -| Field | JSON Type | [Internal Type][] | Description | -|:-------------|:--------------------|:------------------|:--------------------| -| `CheckID` | String | UInt256 | The ID of the [Check ledger object](../../ledger-data/ledger-entry-types/check.md) to cash, as a 64-character hexadecimal string. | -| `Amount` | [Currency Amount][] | Amount | _(Optional)_ Redeem the Check for exactly this amount, if possible. The currency must match that of the `SendMax` of the corresponding CheckCreate transaction. You must provide either this field or `DeliverMin`. | +| Field | JSON Type | [Internal Type][] | Description | +| :----------- | :------------------ | :---------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `CheckID` | String | UInt256 | The ID of the [Check ledger object](../../ledger-data/ledger-entry-types/check.md) to cash, as a 64-character hexadecimal string. | +| `Amount` | [Currency Amount][] | Amount | _(Optional)_ Redeem the Check for exactly this amount, if possible. The currency must match that of the `SendMax` of the corresponding CheckCreate transaction. You must provide either this field or `DeliverMin`. | | `DeliverMin` | [Currency Amount][] | Amount | _(Optional)_ Redeem the Check for at least this amount and for as much as possible. The currency must match that of the `SendMax` of the corresponding CheckCreate transaction. You must provide either this field or `Amount`. | -The transaction ***must*** include either `Amount` or `DeliverMin`, but not both. +The transaction **_must_** include either `Amount` or `DeliverMin`, but not both. ## Error Cases diff --git a/docs/references/protocol/transactions/types/checkcreate.md b/docs/references/protocol/transactions/types/checkcreate.md index 86ffae2e2e..af9c466fe9 100644 --- a/docs/references/protocol/transactions/types/checkcreate.md +++ b/docs/references/protocol/transactions/types/checkcreate.md @@ -1,10 +1,12 @@ --- seo: - description: Create a check. + description: Create a check. labels: - - Checks + - Checks --- + # CheckCreate + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/CreateCheck.cpp "Source") Create an on-ledger [check](../../../../concepts/payment-types/checks.md), which is a deferred payment that can be cashed by its intended destination. The sender of this transaction is the sender of the check. @@ -30,28 +32,28 @@ Create an on-ledger [check](../../../../concepts/payment-types/checks.md), which {% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%} -| Field | JSON Type | [Internal Type][] | Description | -|:-----------------|:--------------------|:------------------|:----------------| -| `Destination` | String | AccountID | The unique address of the [account](../../../../concepts/accounts/index.md) that can cash the Check. | +| Field | JSON Type | [Internal Type][] | Description | +| :--------------- | :------------------ | :---------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Destination` | String | AccountID | The unique address of the [account](../../../../concepts/accounts/index.md) that can cash the Check. | | `SendMax` | [Currency Amount][] | Amount | Maximum amount of source currency the Check is allowed to debit the sender, including [transfer fees](../../../../concepts/tokens/fungible-tokens/transfer-fees.md) on non-XRP currencies. The Check can only credit the destination with the same currency (from the same issuer, for non-XRP currencies). For non-XRP amounts, the nested field names MUST be lower-case. | -| `DestinationTag` | Number | UInt32 | _(Optional)_ Arbitrary tag that identifies the reason for the Check, or a hosted recipient to pay. | -| `Expiration` | Number | UInt32 | _(Optional)_ Time after which the Check is no longer valid, in [seconds since the Ripple Epoch][]. | -| `InvoiceID` | String | UInt256 | _(Optional)_ Arbitrary 256-bit hash representing a specific reason or identifier for this Check. | +| `DestinationTag` | Number | UInt32 | _(Optional)_ Arbitrary tag that identifies the reason for the Check, or a hosted recipient to pay. | +| `Expiration` | Number | UInt32 | _(Optional)_ Time after which the Check is no longer valid, in [seconds since the Ripple Epoch][]. | +| `InvoiceID` | String | UInt256 | _(Optional)_ Arbitrary 256-bit hash representing a specific reason or identifier for this Check. | ## Error Cases Besides errors that can occur for all transactions, {% $frontmatter.seo.title %} transactions can result in the following [transaction result codes](../transaction-results/index.md): -| Error Code | Description | -|:-----------|:------------| -| `tecNO_PERMISSION` | The `Destination` account is blocking incoming Checks. {% amendment-disclaimer name="DisallowIncoming" /%} | -| `temREDUNDANT` | The `Destination` is the sender of the transaction. | -| `tecNO_DST` | The `Destination` [account](../../../../concepts/accounts/index.md) does not exist in the ledger. | -| `tecDST_TAG_NEEDED` | The `Destination` account has the `RequireDest` flag enabled but the transaction does not include a `DestinationTag` field. | -| `tecFROZEN` | `SendMax` specifies a token which is [frozen](../../../../concepts/tokens/fungible-tokens/freezes.md). | -| `tecEXPIRED` | The `Expiration` of the transaction is in the past. | -| `tecINSUFFICIENT_RESERVE` | The sender does not have enough XRP to meet the [owner reserve](../../../../concepts/accounts/reserves.md#owner-reserves) after adding the Check. | -| `tecDIR_FULL` | Either the sender or the destination of the Check cannot own more objects in the ledger.
    This error is effectively impossible to receive if {% amendment-disclaimer name="fixDirectoryLimit" compact=true /%} is enabled. | +| Error Code | Description | +| :------------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `tecNO_PERMISSION` | The `Destination` account is blocking incoming Checks. {% amendment-disclaimer name="DisallowIncoming" /%} | +| `temREDUNDANT` | The `Destination` is the sender of the transaction. | +| `tecNO_DST` | The `Destination` [account](../../../../concepts/accounts/index.md) does not exist in the ledger. | +| `tecDST_TAG_NEEDED` | The `Destination` account has the `RequireDest` flag enabled but the transaction does not include a `DestinationTag` field. | +| `tecFROZEN` | `SendMax` specifies a token which is [frozen](../../../../concepts/tokens/fungible-tokens/freezes.md). | +| `tecEXPIRED` | The `Expiration` of the transaction is in the past. | +| `tecINSUFFICIENT_RESERVE` | The sender does not have enough XRP to meet the [owner reserve](../../../../concepts/accounts/reserves.md#owner-reserves) after adding the Check. | +| `tecDIR_FULL` | Either the sender or the destination of the Check cannot own more objects in the ledger.
    This error is effectively impossible to receive if {% amendment-disclaimer name="fixDirectoryLimit" compact=true /%} is enabled. | ## See Also diff --git a/docs/references/protocol/transactions/types/clawback.md b/docs/references/protocol/transactions/types/clawback.md index e939a5068e..4d456f2365 100644 --- a/docs/references/protocol/transactions/types/clawback.md +++ b/docs/references/protocol/transactions/types/clawback.md @@ -1,10 +1,12 @@ --- seo: - description: Claw back tokens you've issued. + description: Claw back tokens you've issued. labels: - - Tokens + - Tokens --- + # Clawback + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/Clawback.cpp "Source") [Claw back tokens](../../../../concepts/tokens/fungible-tokens/clawing-back-tokens.md) issued by your account. Issuers can only claw back [trust line tokens](../../../../concepts/tokens/fungible-tokens/trust-line-tokens.md) if they enabled the **Allow Trust Line Clawback** setting before issuing any tokens. Issuers can claw back [MPTs](../../../../concepts/tokens/fungible-tokens/multi-purpose-tokens.md) if the corresponding MPT Issuance has clawback enabled. @@ -18,19 +20,19 @@ labels: "TransactionType": "Clawback", "Account": "rp6abvbTbjoce8ZDJkT6snvxTZSYMBCC9S", "Amount": { - "currency": "FOO", - "issuer": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", - "value": "314.159" - } + "currency": "FOO", + "issuer": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", + "value": "314.159" + } } ``` {% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%} -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:-------------------|:----------|:------------------|:----------|-------------| -| `Amount` | [Currency Amount][] | Amount | Yes | The amount to claw back. The quantity in the `value` sub-field must not be zero. If this is more than the current balance, the transaction claws back the entire balance. When clawing back trust line tokens, the `issuer` sub-field indicates the token holder to claw back tokens from.| -| `Holder` | String | AccountID | No | The holder to claw back tokens from, if clawing back MPTs. The holder must have a non-zero balance of the MPT issuance indicated in the `Amount` field. {% amendment-disclaimer name="MPTokensV1" /%} | +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :------- | :------------------ | :---------------- | :-------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `Amount` | [Currency Amount][] | Amount | Yes | The amount to claw back. The quantity in the `value` sub-field must not be zero. If this is more than the current balance, the transaction claws back the entire balance. When clawing back trust line tokens, the `issuer` sub-field indicates the token holder to claw back tokens from. | +| `Holder` | String | AccountID | No | The holder to claw back tokens from, if clawing back MPTs. The holder must have a non-zero balance of the MPT issuance indicated in the `Amount` field. {% amendment-disclaimer name="MPTokensV1" /%} | When clawing back trust line tokens, you must omit the `Holder` field. When clawing back MPTs, you must provide the `Holder` field. @@ -38,12 +40,12 @@ When clawing back trust line tokens, you must omit the `Holder` field. When claw Besides errors that can occur for all transactions, {% $frontmatter.seo.title %} transactions can result in the following [transaction result codes](../transaction-results/index.md): -| Error Code | Description | -|:-----------|:------------| -| `temDISABLED` | The [Clawback amendment][] is not enabled. | -| `temBAD_AMOUNT` | The amount of tokens specified to claw back is invalid or zero, or the specified holder is the issuer. | -| `tecAMM_ACCOUNT` | The specified holder is an Automated Market Maker (AMM). To claw back tokens from an AMM, use [`AMMClawback`](./ammclawback.md) instead. | -| `tecNO_LINE` | There is no trust line with the counterparty or that trust line's balance is 0. | -| `tecNO_PERMISSION` | The sender of this transaction does not have the ability to claw back the specified tokens. | +| Error Code | Description | +| :----------------- | :--------------------------------------------------------------------------------------------------------------------------------------- | +| `temDISABLED` | The [Clawback amendment][] is not enabled. | +| `temBAD_AMOUNT` | The amount of tokens specified to claw back is invalid or zero, or the specified holder is the issuer. | +| `tecAMM_ACCOUNT` | The specified holder is an Automated Market Maker (AMM). To claw back tokens from an AMM, use [`AMMClawback`](./ammclawback.md) instead. | +| `tecNO_LINE` | There is no trust line with the counterparty or that trust line's balance is 0. | +| `tecNO_PERMISSION` | The sender of this transaction does not have the ability to claw back the specified tokens. | {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/protocol/transactions/types/credentialaccept.md b/docs/references/protocol/transactions/types/credentialaccept.md index 33c97346f8..ca7cbb58e7 100644 --- a/docs/references/protocol/transactions/types/credentialaccept.md +++ b/docs/references/protocol/transactions/types/credentialaccept.md @@ -1,8 +1,10 @@ --- seo: - description: Accept a credential provisionally issued to your account. + description: Accept a credential provisionally issued to your account. --- + # CredentialAccept + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/Credentials.cpp "Source") Accept a [credential](../../../../concepts/decentralized-storage/credentials.md), which makes the credential valid. Only the subject of the credential can do this. @@ -13,13 +15,13 @@ Accept a [credential](../../../../concepts/decentralized-storage/credentials.md) ```json { - "TransactionType" : "CredentialAccept", - "Account": "rsUiUMpnrgxQp24dJYZDhmV4bE3aBtQyt8", - "Issuer": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "CredentialType": "6D795F63726564656E7469616C", - "Fee": "10", - "Flags": 0, - "Sequence": 234203 + "TransactionType": "CredentialAccept", + "Account": "rsUiUMpnrgxQp24dJYZDhmV4bE3aBtQyt8", + "Issuer": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "CredentialType": "6D795F63726564656E7469616C", + "Fee": "10", + "Flags": 0, + "Sequence": 234203 } ``` @@ -27,10 +29,10 @@ Accept a [credential](../../../../concepts/decentralized-storage/credentials.md) In addition to the [common fields][], CredentialAccept transactions use the following fields: -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:-----------------|:-----------------|:------------------|:----------|:------------| -| `Issuer` | String - [Address][] | AccountID | Yes | The address of the issuer that created the credential. | -| `CredentialType` | String | Blob | Yes | Arbitrary data defining the type of credential. The minimum size is 1 byte and the maximum is 64 bytes. | +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :--------------- | :------------------- | :---------------- | :-------- | :------------------------------------------------------------------------------------------------------ | +| `Issuer` | String - [Address][] | AccountID | Yes | The address of the issuer that created the credential. | +| `CredentialType` | String | Blob | Yes | Arbitrary data defining the type of credential. The minimum size is 1 byte and the maximum is 64 bytes. | The `Account` field (the sender of this transaction) must be the subject of the credential. @@ -38,14 +40,14 @@ The combination of `Account`, `Issuer`, and `CredentialType` must match a `Crede ## Error Cases -| Error Code | Description | -|:-----------|:------------| -| `tecDUPLICATE` | The specified credential has already been accepted. | -| `tecEXPIRED` | The specified credential has an expiration time in the past. (In this case, the transaction also deletes the expired credentials from the ledger.) | -| `tecNO_ENTRY` | The credential uniquely identified by the `Account`, `Issuer`, and `CredentialType` fields of the transaction does not exist in the ledger. | -| `temDISABLED` | The related amendment is not enabled. | -| `temINVALID_ACCOUNT_ID` | The provided `Issuer` field is invalid. For example, it contains [ACCOUNT_ZERO](../../../../concepts/accounts/addresses.md#special-addresses). | -| `temINVALID_FLAG` | The transaction includes a [Flag](../common-fields.md#flags-field) that does not exist, or includes a contradictory combination of flags. {% amendment-disclaimer name="fixInvalidTxFlags" /%} | +| Error Code | Description | +| :---------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `tecDUPLICATE` | The specified credential has already been accepted. | +| `tecEXPIRED` | The specified credential has an expiration time in the past. (In this case, the transaction also deletes the expired credentials from the ledger.) | +| `tecNO_ENTRY` | The credential uniquely identified by the `Account`, `Issuer`, and `CredentialType` fields of the transaction does not exist in the ledger. | +| `temDISABLED` | The related amendment is not enabled. | +| `temINVALID_ACCOUNT_ID` | The provided `Issuer` field is invalid. For example, it contains [ACCOUNT_ZERO](../../../../concepts/accounts/addresses.md#special-addresses). | +| `temINVALID_FLAG` | The transaction includes a [Flag](../common-fields.md#flags-field) that does not exist, or includes a contradictory combination of flags. {% amendment-disclaimer name="fixInvalidTxFlags" /%} | ## See Also diff --git a/docs/references/protocol/transactions/types/credentialcreate.md b/docs/references/protocol/transactions/types/credentialcreate.md index 2bf38741b3..53563f80e5 100644 --- a/docs/references/protocol/transactions/types/credentialcreate.md +++ b/docs/references/protocol/transactions/types/credentialcreate.md @@ -1,8 +1,10 @@ --- seo: - description: Provisionally issue a credential to a subject account. + description: Provisionally issue a credential to a subject account. --- + # CredentialCreate + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/Credentials.cpp "Source") Provisionally issue a [credential](../../../../concepts/decentralized-storage/credentials.md) in the ledger. The credential is not valid until the subject of the credential accepts it with a [CredentialAccept transaction][]. @@ -13,13 +15,13 @@ Provisionally issue a [credential](../../../../concepts/decentralized-storage/cr ```json { - "TransactionType" : "CredentialCreate", - "Account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "Subject": "rsUiUMpnrgxQp24dJYZDhmV4bE3aBtQyt8", - "CredentialType": "6D795F63726564656E7469616C", - "Fee": "10", - "Flags": 0, - "Sequence": 234200 + "TransactionType": "CredentialCreate", + "Account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "Subject": "rsUiUMpnrgxQp24dJYZDhmV4bE3aBtQyt8", + "CredentialType": "6D795F63726564656E7469616C", + "Fee": "10", + "Flags": 0, + "Sequence": 234200 } ``` @@ -27,11 +29,11 @@ Provisionally issue a [credential](../../../../concepts/decentralized-storage/cr In addition to the [common fields][], CredentialCreate transactions use the following fields: -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:-----------------|:---------------------|:------------------|:----------|:------------| -| `Subject` | String - [Address][] | AccountID | Yes | The subject of the credential. | -| `CredentialType` | String - Hexadecimal | Blob | Yes | Arbitrary data defining the type of credential this entry represents. The minimum length is 1 byte and the maximum length is 64 bytes. | -| `Expiration` | Number | UInt32 | No | Time after which this credential expires, in [seconds since the Ripple Epoch][]. | +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :--------------- | :------------------- | :---------------- | :-------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Subject` | String - [Address][] | AccountID | Yes | The subject of the credential. | +| `CredentialType` | String - Hexadecimal | Blob | Yes | Arbitrary data defining the type of credential this entry represents. The minimum length is 1 byte and the maximum length is 64 bytes. | +| `Expiration` | Number | UInt32 | No | Time after which this credential expires, in [seconds since the Ripple Epoch][]. | | `URI` | String - Hexadecimal | Blob | No | Arbitrary additional data about the credential, such as the URL where users can look up an associated Verifiable Credential document. If present, the minimum length is 1 byte and the maximum is 256 bytes. | The `Account` field (the sender) of the transaction is the issuer of the credential. It is possible for the issuer and the subject to be the same account. @@ -40,14 +42,14 @@ The `Account` field (the sender) of the transaction is the issuer of the credent Besides errors that can occur for all transactions, CredentialCreate transactions can result in the following [transaction result codes](../transaction-results/index.md): -| Error Code | Description | -|:-----------|:------------| -| `tecDUPLICATE` | A credential with the same subject, issuer, and credential type already exists in the ledger. | -| `tecEXPIRED` | The credential's expiration time is in the past. | -| `tecNO_TARGET` | The account specified in the `Subject` field is not a funded account in the ledger. | -| `temDISABLED` | The related amendment is not enabled. | -| `temINVALID_ACCOUNT_ID` | The provided `Subject` field is invalid. For example, it contains [ACCOUNT_ZERO](../../../../concepts/accounts/addresses.md#special-addresses). | -| `temINVALID_FLAG` | The transaction includes a [Flag](../common-fields.md#flags-field) that does not exist, or includes a contradictory combination of flags. {% amendment-disclaimer name="fixInvalidTxFlags" /%} | +| Error Code | Description | +| :---------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `tecDUPLICATE` | A credential with the same subject, issuer, and credential type already exists in the ledger. | +| `tecEXPIRED` | The credential's expiration time is in the past. | +| `tecNO_TARGET` | The account specified in the `Subject` field is not a funded account in the ledger. | +| `temDISABLED` | The related amendment is not enabled. | +| `temINVALID_ACCOUNT_ID` | The provided `Subject` field is invalid. For example, it contains [ACCOUNT_ZERO](../../../../concepts/accounts/addresses.md#special-addresses). | +| `temINVALID_FLAG` | The transaction includes a [Flag](../common-fields.md#flags-field) that does not exist, or includes a contradictory combination of flags. {% amendment-disclaimer name="fixInvalidTxFlags" /%} | ## See Also diff --git a/docs/references/protocol/transactions/types/credentialdelete.md b/docs/references/protocol/transactions/types/credentialdelete.md index b02777ef79..cab32e25bb 100644 --- a/docs/references/protocol/transactions/types/credentialdelete.md +++ b/docs/references/protocol/transactions/types/credentialdelete.md @@ -1,8 +1,10 @@ --- seo: - description: Remove a credential from the ledger, effectively revoking it. + description: Remove a credential from the ledger, effectively revoking it. --- + # CredentialDelete + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/Credentials.cpp "Source") Remove a [credential](../../../../concepts/decentralized-storage/credentials.md) from the ledger, effectively revoking it. Users may also want to delete an unwanted credential to reduce their [reserve requirement](../../../../concepts/accounts/reserves.md). @@ -13,13 +15,13 @@ Remove a [credential](../../../../concepts/decentralized-storage/credentials.md) ```json { - "TransactionType" : "CredentialDelete", - "Account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "Subject": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "CredentialType": "6D795F63726564656E7469616C", - "Fee": "10", - "Flags": 0, - "Sequence": 234203 + "TransactionType": "CredentialDelete", + "Account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "Subject": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "CredentialType": "6D795F63726564656E7469616C", + "Fee": "10", + "Flags": 0, + "Sequence": 234203 } ``` @@ -27,26 +29,25 @@ Remove a [credential](../../../../concepts/decentralized-storage/credentials.md) In addition to the [common fields][], CredentialDelete transactions use the following fields: -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:-----------------|:---------------------|:------------------|:----------|:------------| -| `CredentialType` | String - Hexadecimal | Blob | Yes | Arbitrary data defining the type of credential to delete. The minimum length is 1 byte and the maximum length is 256 bytes. | +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :--------------- | :------------------- | :---------------- | :-------- | :----------------------------------------------------------------------------------------------------------------------------------- | +| `CredentialType` | String - Hexadecimal | Blob | Yes | Arbitrary data defining the type of credential to delete. The minimum length is 1 byte and the maximum length is 256 bytes. | | `Subject` | String - [Address][] | AccountID | No | The subject of the credential to delete. If omitted, use the `Account` (sender of the transaction) as the subject of the credential. | -| `Issuer` | String - [Address][] | AccountID | No | The issuer of the credential to delete. If omitted, use the `Account` (sender of the transaction) as the issuer of the credential. | +| `Issuer` | String - [Address][] | AccountID | No | The issuer of the credential to delete. If omitted, use the `Account` (sender of the transaction) as the issuer of the credential. | You must provide the `Subject` field, `Issuer` field, or both. This transaction looks for a [Credential ledger entry](../../ledger-data/ledger-entry-types/credential.md) with the specified subject, issuer, and credential type, and deletes that entry if the sender of the transaction has permission to. The holder or issuer of a credential can delete it at any time. If the credential is expired, anyone can delete it. - ## Error Cases -| Error Code | Description | -|:-----------|:------------| -| `temDISABLED` | The related amendment is not enabled. | -| `temINVALID_ACCOUNT_ID` | A provided `Subject` or `Issuer` field is invalid. For example, it contains [ACCOUNT_ZERO](../../../../concepts/accounts/addresses.md#special-addresses). | -| `tecNO_PERMISSION` | The sender is neither the issuer nor subject of the credential, and the credential is not expired. | -| `tecNO_ENTRY` | The specified credential does not exist in the ledger. | -| `temINVALID_FLAG` | The transaction includes a [Flag](../common-fields.md#flags-field) that does not exist, or includes a contradictory combination of flags. {% amendment-disclaimer name="fixInvalidTxFlags" /%} | +| Error Code | Description | +| :---------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `temDISABLED` | The related amendment is not enabled. | +| `temINVALID_ACCOUNT_ID` | A provided `Subject` or `Issuer` field is invalid. For example, it contains [ACCOUNT_ZERO](../../../../concepts/accounts/addresses.md#special-addresses). | +| `tecNO_PERMISSION` | The sender is neither the issuer nor subject of the credential, and the credential is not expired. | +| `tecNO_ENTRY` | The specified credential does not exist in the ledger. | +| `temINVALID_FLAG` | The transaction includes a [Flag](../common-fields.md#flags-field) that does not exist, or includes a contradictory combination of flags. {% amendment-disclaimer name="fixInvalidTxFlags" /%} | ## See Also diff --git a/docs/references/protocol/transactions/types/delegateset.md b/docs/references/protocol/transactions/types/delegateset.md index 1a04dfdcc0..476ff2737e 100644 --- a/docs/references/protocol/transactions/types/delegateset.md +++ b/docs/references/protocol/transactions/types/delegateset.md @@ -1,13 +1,15 @@ --- seo: - description: Grant another account permission to send some transactions for you, or revoke that permission. + description: Grant another account permission to send some transactions for you, or revoke that permission. labels: - Accounts - Permissions - Delegate status: not_enabled --- + # DelegateSet + [[Source]](https://github.com/XRPLF/rippled/blob/1e01cd34f7a216092ed779f291b43324c167167a/src/xrpld/app/tx/detail/DelegateSet.cpp "Source") [Delegate permissions](/docs/concepts/accounts/permission-delegation) to another account to send transactions on your behalf. This transaction type can grant, change, or revoke permissions; it creates, modifies, or deletes a [Delegate ledger entry][] accordingly. @@ -18,20 +20,20 @@ status: not_enabled ```json { - "TransactionType": "DelegateSet", - "Account": "rw81qtsfF9rws4RbmYepf5394gp81TQv5Y", - "Authorize": "r9GAKojMTyexqvy8DXFWYq63Mod5k5wnkT", - "Fee": "1", - "Flags": 0, - "LastLedgerSequence": 4747822, - "Permissions": [ - { - "Permission": { - "PermissionValue": "AccountDomainSet" - } - } - ], - "Sequence": 4747802 + "TransactionType": "DelegateSet", + "Account": "rw81qtsfF9rws4RbmYepf5394gp81TQv5Y", + "Authorize": "r9GAKojMTyexqvy8DXFWYq63Mod5k5wnkT", + "Fee": "1", + "Flags": 0, + "LastLedgerSequence": 4747822, + "Permissions": [ + { + "Permission": { + "PermissionValue": "AccountDomainSet" + } + } + ], + "Sequence": 4747802 } ``` @@ -39,9 +41,9 @@ status: not_enabled {% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%} -| Field | Required? | JSON Type | Internal Type | Description | -|:--------------|-----------|----------------------|---------------|-------------| -| `Authorize` | Yes | String - [Address][] | AccountID | The account being granted permissions, also called the _delegate_. | +| Field | Required? | JSON Type | Internal Type | Description | +| :------------ | --------- | -------------------- | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `Authorize` | Yes | String - [Address][] | AccountID | The account being granted permissions, also called the _delegate_. | | `Permissions` | Yes | Array | Array | A list of up to 10 [Permission objects](#permission-objects) each specifying a different permission granted to the delegate. The delegate's permissions are updated to match this set of permissions exactly. To revoke all permissions, use an empty array. | If a [Delegate ledger entry][] does not exist to record the granted permissions, this transaction creates one. If it already exists, the transaction updates the set of permissions to match the list in the transaction: any permissions not listed are revoked. If all permissions are revoked, the transaction deletes the Delegate ledger entry. @@ -54,23 +56,22 @@ If you want to delegate more than 10 permissions, consider using [multi-signing] Each item in the `Permissions` array is an inner object with the following nested field: -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:------------------|:---------------------|:------------------|:----------|:----------------| -| `PermissionValue` | String or Number | UInt32 | Yes | A permission to grant to the delegate, which can be either a transaction type or a granular permission. See [Permission Values](../../data-types/permission-values.md) for a full list. | - +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :---------------- | :--------------- | :---------------- | :-------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `PermissionValue` | String or Number | UInt32 | Yes | A permission to grant to the delegate, which can be either a transaction type or a granular permission. See [Permission Values](../../data-types/permission-values.md) for a full list. | ## Error Cases Besides errors that can occur for all transactions, {% $frontmatter.seo.title %} transactions can result in the following [transaction result codes](../transaction-results/index.md): -| Error Code | Description | -|:--------------------------|:------------| -| `tecDIR_FULL` | The sender owns too many items in the ledger already.
    This error is effectively impossible to receive if {% amendment-disclaimer name="fixDirectoryLimit" compact=true /%} is enabled. | -| `tecINSUFFICIENT_RESERVE` | The sender does not have enough XRP to meet the [reserve requirement](/docs/concepts/accounts/reserves.md) of creating a new Delegate ledger entry. | -| `tecNO_PERMISSION` | At least one permission in the `Permissions` list is not delegatable. See [Permission Values](../../data-types/permission-values.md) for which permissions are not delegatable. | -| `tecNO_TARGET` | The account specified in the `Authorize` field does not exist in the ledger. | -| `temARRAY_TOO_LARGE` | The `Permissions` list is too large. It cannot contain more than 10 entries. | -| `temDISABLED` | The [Permission Delegation amendment][] is not enabled. | +| Error Code | Description | +| :------------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `tecDIR_FULL` | The sender owns too many items in the ledger already.
    This error is effectively impossible to receive if {% amendment-disclaimer name="fixDirectoryLimit" compact=true /%} is enabled. | +| `tecINSUFFICIENT_RESERVE` | The sender does not have enough XRP to meet the [reserve requirement](/docs/concepts/accounts/reserves.md) of creating a new Delegate ledger entry. | +| `tecNO_PERMISSION` | At least one permission in the `Permissions` list is not delegatable. See [Permission Values](../../data-types/permission-values.md) for which permissions are not delegatable. | +| `tecNO_TARGET` | The account specified in the `Authorize` field does not exist in the ledger. | +| `temARRAY_TOO_LARGE` | The `Permissions` list is too large. It cannot contain more than 10 entries. | +| `temDISABLED` | The [Permission Delegation amendment][] is not enabled. | | `temMALFORMED` | The transaction was invalid. For example, the `Authorize` account is the same as the sender of the transaction, the `Permissions` list contains duplicate entries, or one of the permissions in the list is not a valid permission. | ## See Also diff --git a/docs/references/protocol/transactions/types/depositpreauth.md b/docs/references/protocol/transactions/types/depositpreauth.md index 9face8175a..ea8816f057 100644 --- a/docs/references/protocol/transactions/types/depositpreauth.md +++ b/docs/references/protocol/transactions/types/depositpreauth.md @@ -1,10 +1,12 @@ --- seo: - description: Preauthorize an account to send payments to you. + description: Preauthorize an account to send payments to you. labels: - - Security + - Security --- + # DepositPreauth + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/DepositPreauth.cpp "Source") Grant preauthorization to send payments to your account. This is only useful if you are using (or plan to use) [Deposit Authorization](../../../../concepts/accounts/depositauth.md). @@ -18,34 +20,40 @@ Grant preauthorization to send payments to your account. This is only useful if {% tabs %} {% tab label="Single account preauthorization" %} + ```json { - "TransactionType" : "DepositPreauth", - "Account" : "rsUiUMpnrgxQp24dJYZDhmV4bE3aBtQyt8", - "Authorize" : "rEhxGqkqPPSxQ3P25J66ft5TwpzV14k2de", - "Fee" : "10", - "Flags" : 2147483648, - "Sequence" : 2 + "TransactionType": "DepositPreauth", + "Account": "rsUiUMpnrgxQp24dJYZDhmV4bE3aBtQyt8", + "Authorize": "rEhxGqkqPPSxQ3P25J66ft5TwpzV14k2de", + "Fee": "10", + "Flags": 2147483648, + "Sequence": 2 } ``` + {% /tab %} {% tab label="Credential preauthorization" %} + ```json { - "TransactionType" : "DepositPreauth", - "Account" : "rsUiUMpnrgxQp24dJYZDhmV4bE3aBtQyt8", - "AuthorizeCredentials": [{ - "Credential": { - "Issuer": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "CredentialType": "6D795F63726564656E7469616C" + "TransactionType": "DepositPreauth", + "Account": "rsUiUMpnrgxQp24dJYZDhmV4bE3aBtQyt8", + "AuthorizeCredentials": [ + { + "Credential": { + "Issuer": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "CredentialType": "6D795F63726564656E7469616C" + } } - }], - "Fee" : "10", + ], + "Fee": "10", "Flags": 0, "Sequence": 230984 } ``` + {% /tab %} {% /tabs %} @@ -53,40 +61,39 @@ Grant preauthorization to send payments to your account. This is only useful if {% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%} -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:-------------------------|:---------------------|:------------------|:----------|:------------| -| `Authorize` | String - [Address][] | AccountID | No | An account to preauthorize. | -| `AuthorizeCredentials` | Array | Array | No | A set of credentials to authorize. {% amendment-disclaimer name="Credentials" /%} | -| `Unauthorize` | String | AccountID | No | An account whose preauthorization should be revoked. | +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :----------------------- | :------------------- | :---------------- | :-------- | :------------------------------------------------------------------------------------------------------------ | +| `Authorize` | String - [Address][] | AccountID | No | An account to preauthorize. | +| `AuthorizeCredentials` | Array | Array | No | A set of credentials to authorize. {% amendment-disclaimer name="Credentials" /%} | +| `Unauthorize` | String | AccountID | No | An account whose preauthorization should be revoked. | | `UnauthorizeCredentials` | Array | Array | No | A set of credentials whose preauthorization should be revoked. {% amendment-disclaimer name="Credentials" /%} | You must provide **exactly one** of `Authorize`, `AuthorizeCredentials`, `Unauthorize`, or `UnauthorizeCredentials`. If this transaction is successful, it creates or removes a [DepositPreauth entry](../../ledger-data/ledger-entry-types/depositpreauth.md) in the ledger, based on the field provided. - ### AuthorizeCredentials Objects If provided, each member of the `AuthorizeCredentials` field or `UnauthorizeCredentials` field must be an inner object with the following fields: -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:-----------------|:---------------------|:------------------|:----------|:------------| -| `Issuer` | String - [Address][] | AccountID | Yes | The issuer of the credential. | +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :--------------- | :------------------- | :---------------- | :-------- | :------------------------------------- | +| `Issuer` | String - [Address][] | AccountID | Yes | The issuer of the credential. | | `CredentialType` | String - Hexadecimal | Blob | Yes | The credential type of the credential. | ## Error Cases In addition to error types that can occur for all transactions, DepositPreauth transactions can result in the following error codes: -| Error Code | Description | -|:--------------------------|:------------| -| `tecDUPLICATE` | The transaction would create a preauthorization that already exists. | +| Error Code | Description | +| :------------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `tecDUPLICATE` | The transaction would create a preauthorization that already exists. | | `tecINSUFFICIENT_RESERVE` | The sender would not meet the [reserve requirement](../../../../concepts/accounts/reserves.md) after adding another entry to the ledger. (A DepositPreauth entry counts as one item towards the authorizer's owner reserve.) | -| `tecNO_ENTRY` | The transaction tried to revoke a preauthorization that does not exist in the ledger. | -| `tecNO_ISSUER` | One or more specified credential issuers does not exist in the ledger. | -| `tecNO_TARGET` | The transaction tried to authorize an account that is not a funded account in the ledger. | -| `temCANNOT_PREAUTH_SELF` | The address in the `Authorize` field is the sender of the transaction. You cannot preauthorize yourself. | -| `temDISABLED` | A required amendment is not enabled. | +| `tecNO_ENTRY` | The transaction tried to revoke a preauthorization that does not exist in the ledger. | +| `tecNO_ISSUER` | One or more specified credential issuers does not exist in the ledger. | +| `tecNO_TARGET` | The transaction tried to authorize an account that is not a funded account in the ledger. | +| `temCANNOT_PREAUTH_SELF` | The address in the `Authorize` field is the sender of the transaction. You cannot preauthorize yourself. | +| `temDISABLED` | A required amendment is not enabled. | ## See Also diff --git a/docs/references/protocol/transactions/types/diddelete.md b/docs/references/protocol/transactions/types/diddelete.md index 0daf4057c8..a833fa20fd 100644 --- a/docs/references/protocol/transactions/types/diddelete.md +++ b/docs/references/protocol/transactions/types/diddelete.md @@ -1,10 +1,12 @@ --- seo: - description: Delete a Decentralized Identifier. + description: Delete a Decentralized Identifier. labels: - - DID + - DID --- + # DIDDelete + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/DID.cpp "Source") Delete the sender's [decentralized identifier (DID)](../../../../concepts/decentralized-storage/decentralized-identifiers.md). @@ -13,28 +15,26 @@ Delete the sender's [decentralized identifier (DID)](../../../../concepts/decent {% amendment-disclaimer name="DID" /%} - ## Example {% $frontmatter.seo.title %} JSON ```json { - "TransactionType": "DIDDelete", - "Account": "rp4pqYgrTAtdPHuZd1ZQWxrzx45jxYcZex", - "Fee": "12", - "Sequence": 391, - "SigningPubKey":"0293A815C095DBA82FAC597A6BB9D338674DB93168156D84D18417AD509FFF5904", - "TxnSignature":"3044022011E9A7EE3C7AE9D202848390522E6840F7F3ED098CD13E..." + "TransactionType": "DIDDelete", + "Account": "rp4pqYgrTAtdPHuZd1ZQWxrzx45jxYcZex", + "Fee": "12", + "Sequence": 391, + "SigningPubKey": "0293A815C095DBA82FAC597A6BB9D338674DB93168156D84D18417AD509FFF5904", + "TxnSignature": "3044022011E9A7EE3C7AE9D202848390522E6840F7F3ED098CD13E..." } ``` - ## Error Cases Besides errors that can occur for all transactions, {% $frontmatter.seo.title %} transactions can result in the following [transaction result codes](../transaction-results/index.md): -| Error Code | Description | -|:--------------------|:---------------------------------------------| -| `tecNO_ENTRY` | The account doesn't have a DID. | +| Error Code | Description | +| :------------ | :------------------------------ | +| `tecNO_ENTRY` | The account doesn't have a DID. | ## See Also diff --git a/docs/references/protocol/transactions/types/didset.md b/docs/references/protocol/transactions/types/didset.md index 3b181b8ad4..f2467017f5 100644 --- a/docs/references/protocol/transactions/types/didset.md +++ b/docs/references/protocol/transactions/types/didset.md @@ -1,10 +1,12 @@ --- seo: - description: Create or update a Decentralized Identifier. + description: Create or update a Decentralized Identifier. labels: - - DID + - DID --- + # DIDSet + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/DID.cpp "Source") Create or update a [decentralized identifier (DID)](../../../../concepts/decentralized-storage/decentralized-identifiers.md). @@ -21,31 +23,30 @@ Create or update a [decentralized identifier (DID)](../../../../concepts/decentr "Sequence": 391, "URI": "697066733A2F2F62616679626569676479727A74357366703775646D37687537367568377932366E6634646675796C71616266336F636C67747179353566627A6469", "Data": "", - "SigningPubKey":"0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020" + "SigningPubKey": "0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020" } ``` {% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%} -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:--------------|:----------|:------------------|:----------|:------------| +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :------------ | :-------- | :---------------- | :-------- | :----------------------------------------------------------------------- | | `Data` | String | Blob | No | The public attestations of identity credentials associated with the DID. | -| `DIDDocument` | String | Blob | No | The DID document associated with the DID. | -| `URI` | String | Blob | No | The Universal Resource Identifier associated with the DID. | +| `DIDDocument` | String | Blob | No | The DID document associated with the DID. | +| `URI` | String | Blob | No | The Universal Resource Identifier associated with the DID. | You must include either `Data`, `DIDDocument`, or `URI` when you submit the `DIDSet` transaction. If all three fields are missing, the transaction fails. {% admonition type="info" name="Note" %}To delete the `Data`, `DIDDocument`, or `URI` field from an existing DID ledger entry, add the field as an empty string.{% /admonition %} - ## Error Cases Besides errors that can occur for all transactions, {% $frontmatter.seo.title %} transactions can result in the following [transaction result codes](../transaction-results/index.md): -| Error Code | Description | -|:--------------------|:---------------------------------------------| -| `tecEMPTY_DID` | The transaction will create an empty DID ledger entry. Check that your updates don't remove the `Data`, `DIDDocument`, and `URI` fields. | -| `temEMPTY_DID` | The transaction is malformed and missing any DID information. Include either the `Data`, `DIDDocument`, or `URI` fields. | +| Error Code | Description | +| :------------- | :--------------------------------------------------------------------------------------------------------------------------------------- | +| `tecEMPTY_DID` | The transaction will create an empty DID ledger entry. Check that your updates don't remove the `Data`, `DIDDocument`, and `URI` fields. | +| `temEMPTY_DID` | The transaction is malformed and missing any DID information. Include either the `Data`, `DIDDocument`, or `URI` fields. | ## See Also diff --git a/docs/references/protocol/transactions/types/escrowcancel.md b/docs/references/protocol/transactions/types/escrowcancel.md index f2b06b6834..f1415f3ce8 100644 --- a/docs/references/protocol/transactions/types/escrowcancel.md +++ b/docs/references/protocol/transactions/types/escrowcancel.md @@ -1,10 +1,12 @@ --- seo: - description: Cancel an expired escrow, returning the funds to the sender. + description: Cancel an expired escrow, returning the funds to the sender. labels: - - Escrow + - Escrow --- + # EscrowCancel + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/Escrow.cpp "Source") Return funds from an expired [escrow](../../../../concepts/payment-types/escrow.md) to its sender. @@ -13,38 +15,37 @@ Return funds from an expired [escrow](../../../../concepts/payment-types/escrow. ```json { - "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "TransactionType": "EscrowCancel", - "Owner": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "OfferSequence": 7, + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "TransactionType": "EscrowCancel", + "Owner": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "OfferSequence": 7 } ``` {% tx-example txid="B24B9D7843F99AED7FB8A3929151D0CCF656459AE40178B77C9D44CED64E839B" /%} - {% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%} -| Field | JSON Type | [Internal Type][] | Description | -|:----------------|:---------------------|:------------------|:---------------------------| -| `Owner` | String - [Address][] | AccountID | The account that funded the escrow payment. | +| Field | JSON Type | [Internal Type][] | Description | +| :-------------- | :------------------- | :---------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Owner` | String - [Address][] | AccountID | The account that funded the escrow payment. | | `OfferSequence` | Number | UInt32 | Transaction sequence (or [Ticket](../../../../concepts/accounts/tickets.md) number) of [EscrowCreate transaction][] that created the escrow to cancel. | Any account may submit an EscrowCancel transaction. -* If the corresponding [EscrowCreate transaction][] did not specify a `CancelAfter` time, the EscrowCancel transaction fails. -* Otherwise the EscrowCancel transaction fails if the `CancelAfter` time is after the close time of the most recently-closed ledger. +- If the corresponding [EscrowCreate transaction][] did not specify a `CancelAfter` time, the EscrowCancel transaction fails. +- Otherwise the EscrowCancel transaction fails if the `CancelAfter` time is after the close time of the most recently-closed ledger. ## Error Cases Besides errors that can occur for all transactions, {% $frontmatter.seo.title %} transactions can result in the following [transaction result codes](../transaction-results/index.md): -| Error Code | Description | -|:------------------------- |:------------| +| Error Code | Description | +| :------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------- | | `tecNO_AUTH` | The transaction failed because authorization requirements were not met. For example, the issuer requires authorization and the sender is not authorized. | -| `tecNO_LINE` | The sender does not have a trust line with the issuer. For Trust Line Tokens only. | -| `tecNO_ENTRY` | The sender does not hold the MPT. | -| `tecINSUFFICIENT_RESERVE` | Unable to create a trust line or MPToken due to lack of reserves. | +| `tecNO_LINE` | The sender does not have a trust line with the issuer. For Trust Line Tokens only. | +| `tecNO_ENTRY` | The sender does not hold the MPT. | +| `tecINSUFFICIENT_RESERVE` | Unable to create a trust line or MPToken due to lack of reserves. | ## See Also diff --git a/docs/references/protocol/transactions/types/escrowcreate.md b/docs/references/protocol/transactions/types/escrowcreate.md index 5104405e3c..7efc78bcc3 100644 --- a/docs/references/protocol/transactions/types/escrowcreate.md +++ b/docs/references/protocol/transactions/types/escrowcreate.md @@ -1,10 +1,12 @@ --- seo: - description: Escrow funds, which can be released to the destination after a specific time or condition. + description: Escrow funds, which can be released to the destination after a specific time or condition. labels: - - Escrow + - Escrow --- + # EscrowCreate + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/Escrow.cpp "Source") Set aside funds in an [escrow](../../../../concepts/payment-types/escrow.md) that delivers them to a predetermined recipient when certain conditions are met. If the escrow has an expiration, the funds can also be returned to the sender after it expires. @@ -16,45 +18,43 @@ To escrow fungible tokens you must take note of the following: - Multi-Purpose-Tokens (MPTs) must have both the **Can Escrow** and **Can Transfer** flags enabled. - All token escrows must specify a **Cancel After** time. - If the token requires **authorization**, both sender and recipient must be pre-authorized by the issuer. -{% /admonition %} + {% /admonition %} {% amendment-disclaimer name="TokenEscrow" mode="updated" /%} - ## Example {% $frontmatter.seo.title %} JSON ```json { - "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "TransactionType": "EscrowCreate", - "Amount": "10000", - "Destination": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", - "CancelAfter": 533257958, - "FinishAfter": 533171558, - "Condition": "A0258020E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855810100", - "DestinationTag": 23480, - "SourceTag": 11747 + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "TransactionType": "EscrowCreate", + "Amount": "10000", + "Destination": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", + "CancelAfter": 533257958, + "FinishAfter": 533171558, + "Condition": "A0258020E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855810100", + "DestinationTag": 23480, + "SourceTag": 11747 } ``` {% tx-example txid="C44F2EB84196B9AD820313DBEBA6316A15C9A2D35787579ED172B87A30131DA7" /%} - {% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%} -| Field | JSON Type | [Internal Type][] | Description | -|:-----------------|:----------|:------------------|:--------------------------| -| `Amount` | Object or String | Amount | Amount of XRP, in drops, or fungible tokens to deduct from the sender's balance and escrow. Once escrowed, the payment can either go to the `Destination` address (after the `FinishAfter` time) or be returned to the sender (after the `CancelAfter` time). {% amendment-disclaimer name="TokenEscrow" mode="updated" /%} | -| `Destination` | String | AccountID | Address to receive escrowed funds. | -| `CancelAfter` | Number | UInt32 | _(Optional for XRP escrows, but mandatory for token escrows)_ The time, in [seconds since the Ripple Epoch][], when this escrow expires. This value is immutable; the funds can only be returned to the sender after this time. | -| `FinishAfter` | Number | UInt32 | _(Optional)_ The time, in [seconds since the Ripple Epoch][], when the escrowed funds can be released to the recipient. This value is immutable, and the funds can't be accessed until this time. | -| `Condition` | String | Blob | _(Optional)_ Hex value representing a [PREIMAGE-SHA-256 crypto-condition](https://tools.ietf.org/html/draft-thomas-crypto-conditions-02#section-8.1). The funds can only be delivered to the recipient if this condition is fulfilled. If the condition is not fulfilled before the expiration time specified in the `CancelAfter` field, the funds can only revert to the sender. | -| `DestinationTag` | Number | UInt32 | _(Optional)_ Arbitrary tag to further specify the destination for this escrowed payment, such as a hosted recipient at the destination address. | +| Field | JSON Type | [Internal Type][] | Description | +| :--------------- | :--------------- | :---------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Amount` | Object or String | Amount | Amount of XRP, in drops, or fungible tokens to deduct from the sender's balance and escrow. Once escrowed, the payment can either go to the `Destination` address (after the `FinishAfter` time) or be returned to the sender (after the `CancelAfter` time). {% amendment-disclaimer name="TokenEscrow" mode="updated" /%} | +| `Destination` | String | AccountID | Address to receive escrowed funds. | +| `CancelAfter` | Number | UInt32 | _(Optional for XRP escrows, but mandatory for token escrows)_ The time, in [seconds since the Ripple Epoch][], when this escrow expires. This value is immutable; the funds can only be returned to the sender after this time. | +| `FinishAfter` | Number | UInt32 | _(Optional)_ The time, in [seconds since the Ripple Epoch][], when the escrowed funds can be released to the recipient. This value is immutable, and the funds can't be accessed until this time. | +| `Condition` | String | Blob | _(Optional)_ Hex value representing a [PREIMAGE-SHA-256 crypto-condition](https://tools.ietf.org/html/draft-thomas-crypto-conditions-02#section-8.1). The funds can only be delivered to the recipient if this condition is fulfilled. If the condition is not fulfilled before the expiration time specified in the `CancelAfter` field, the funds can only revert to the sender. | +| `DestinationTag` | Number | UInt32 | _(Optional)_ Arbitrary tag to further specify the destination for this escrowed payment, such as a hosted recipient at the destination address. | You must specify one of the following combinations of fields: | Summary | `FinishAfter` | `Condition` | `CancelAfter` | -|-----------------------------------|---------------|-------------|---------------| +| --------------------------------- | ------------- | ----------- | ------------- | | Time-based (XRP only) | ✅ | | | | Time-based with expiration | ✅ | | ✅ | | Timed conditional (XRP only) | ✅ | ✅ | | @@ -71,13 +71,13 @@ Before the [fix1571 amendment][] became enabled on 2018-06-19, it was possible t Besides errors that can occur for all transactions, {% $frontmatter.seo.title %} transactions can result in the following [transaction result codes](../transaction-results/index.md): -| Error Code | Description | -|:--------------------- |:---------------------------------------------| -| `tecNO_PERMISSION` | The transaction failed because the necessary permissions for token escrow are not in place. For example, the issuer hasn't enabled the Allow Trust Line Locking flag for a Trust Line Token.| -| `tecNO_AUTH` | The transaction failed because authorization requirements for the token were not met. For example, the sender lacks authorization when creating the escrow. | +| Error Code | Description | +| :-------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `tecNO_PERMISSION` | The transaction failed because the necessary permissions for token escrow are not in place. For example, the issuer hasn't enabled the Allow Trust Line Locking flag for a Trust Line Token. | +| `tecNO_AUTH` | The transaction failed because authorization requirements for the token were not met. For example, the sender lacks authorization when creating the escrow. | | `tecUNFUNDED` | The sender lacks sufficient spendable balance. For Trust Line Tokens, this means the sender's trust line with the issuer has insufficient available balance. For XRP escrows, this means the sender doesn't have enough XRP. | -| `tecOBJECT_NOT_FOUND` | The sender does not hold the MPT. | -| `tecFROZEN` | The token is frozen (for Trust Line Tokens) or locked (for MPTs) for the sender. | +| `tecOBJECT_NOT_FOUND` | The sender does not hold the MPT. | +| `tecFROZEN` | The token is frozen (for Trust Line Tokens) or locked (for MPTs) for the sender. | ## See Also diff --git a/docs/references/protocol/transactions/types/escrowfinish.md b/docs/references/protocol/transactions/types/escrowfinish.md index 9f979ff856..7be4d97d60 100644 --- a/docs/references/protocol/transactions/types/escrowfinish.md +++ b/docs/references/protocol/transactions/types/escrowfinish.md @@ -1,10 +1,12 @@ --- seo: - description: Deliver escrowed funds to the intended recipient. + description: Deliver escrowed funds to the intended recipient. labels: - - Escrow + - Escrow --- + # EscrowFinish + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/Escrow.cpp "Source") Deliver funds from an [escrow](../../../../concepts/payment-types/escrow.md) to the recipient. @@ -13,27 +15,26 @@ Deliver funds from an [escrow](../../../../concepts/payment-types/escrow.md) to ```json { - "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "TransactionType": "EscrowFinish", - "Owner": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "OfferSequence": 7, - "Condition": "A0258020E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855810100", - "Fulfillment": "A0028000" + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "TransactionType": "EscrowFinish", + "Owner": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "OfferSequence": 7, + "Condition": "A0258020E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855810100", + "Fulfillment": "A0028000" } ``` {% tx-example txid="317081AF188CDD4DBE55C418F41A90EC3B959CDB3B76105E0CBE6B7A0F56C5F7" /%} - {% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%} -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:----------------|:---------------------|:------------------|:----------|:------------| -| `Owner` | String - [Address][] | AccountID | Yes | The source account that funded the escrow. | -| `OfferSequence` | Number | UInt32 | Yes | Transaction sequence of [EscrowCreate transaction][] that created the escrow to finish. | -| `Condition` | String - Hexadecimal | Blob | No | The (previously-supplied) [PREIMAGE-SHA-256 crypto-condition](https://tools.ietf.org/html/draft-thomas-crypto-conditions-02#section-8.1) of the escrow. | +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :-------------- | :------------------- | :---------------- | :-------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Owner` | String - [Address][] | AccountID | Yes | The source account that funded the escrow. | +| `OfferSequence` | Number | UInt32 | Yes | Transaction sequence of [EscrowCreate transaction][] that created the escrow to finish. | +| `Condition` | String - Hexadecimal | Blob | No | The (previously-supplied) [PREIMAGE-SHA-256 crypto-condition](https://tools.ietf.org/html/draft-thomas-crypto-conditions-02#section-8.1) of the escrow. | | `CredentialIDs` | Array of Strings | Vector256 | No | Set of Credentials to authorize a deposit made by this transaction. Each member of the array must be the ledger entry ID of a Credential entry in the ledger. For details, see [Credential IDs](./payment.md#credential-ids). | -| `Fulfillment` | String - Hexadecmial | Blob | No | The [PREIMAGE-SHA-256 crypto-condition fulfillment](https://tools.ietf.org/html/draft-thomas-crypto-conditions-02#section-8.1.4) matching the escrow's `Condition`. | +| `Fulfillment` | String - Hexadecmial | Blob | No | The [PREIMAGE-SHA-256 crypto-condition fulfillment](https://tools.ietf.org/html/draft-thomas-crypto-conditions-02#section-8.1.4) matching the escrow's `Condition`. | Any account may submit an EscrowFinish transaction. @@ -49,13 +50,13 @@ In [non-production networks](../../../../concepts/networks-and-servers/parallel- Besides errors that can occur for all transactions, {% $frontmatter.seo.title %} transactions can result in the following [transaction result codes](../transaction-results/index.md): -| Error Code | Description | -|:------------------------- |:------------| +| Error Code | Description | +| :------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `tecNO_AUTH` | The transaction failed because authorization requirements were not met. For example, the issuer requires authorization and the destination is not authorized. | -| `tecNO_LINE` | The destination account does not have a trust line with the issuer. For Trust Line Tokens only. | -| `tecNO_ENTRY` | The destination account does not hold the MPT. | -| `tecINSUFFICIENT_RESERVE` | Unable to create a trust line or MPToken due to lack of reserves. | -| `tecFROZEN` | The token is deep frozen (Trust Line Tokens) or locked (for MPTs). | +| `tecNO_LINE` | The destination account does not have a trust line with the issuer. For Trust Line Tokens only. | +| `tecNO_ENTRY` | The destination account does not hold the MPT. | +| `tecINSUFFICIENT_RESERVE` | Unable to create a trust line or MPToken due to lack of reserves. | +| `tecFROZEN` | The token is deep frozen (Trust Line Tokens) or locked (for MPTs). | ## See Also diff --git a/docs/references/protocol/transactions/types/index.md b/docs/references/protocol/transactions/types/index.md index ffab047e31..54677be6ed 100644 --- a/docs/references/protocol/transactions/types/index.md +++ b/docs/references/protocol/transactions/types/index.md @@ -1,20 +1,20 @@ --- seo: - description: All the different types of transactions that the XRP Ledger can process. + description: All the different types of transactions that the XRP Ledger can process. metadata: - indexPage: true + indexPage: true labels: - - Blockchain + - Blockchain --- + # Transaction Types The type of a transaction (`TransactionType` field) is the most fundamental information about a transaction. This indicates what type of operation the transaction is supposed to do. All transactions have certain fields in common: -* [Common Fields](../common-fields.md) +- [Common Fields](../common-fields.md) Each transaction type has additional fields relevant to the type of action it causes. - {% child-pages /%} diff --git a/docs/references/protocol/transactions/types/ledgerstatefix.md b/docs/references/protocol/transactions/types/ledgerstatefix.md index 90a17ae0ba..2d2bd1db96 100644 --- a/docs/references/protocol/transactions/types/ledgerstatefix.md +++ b/docs/references/protocol/transactions/types/ledgerstatefix.md @@ -1,38 +1,38 @@ --- seo: - description: Repair corruptions to the XRP ledger's state data. + description: Repair corruptions to the XRP ledger's state data. labels: - - Utilities - - Troubleshooting + - Utilities + - Troubleshooting --- + # LedgerStateFix + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/LedgerStateFix.cpp "Source") Repair a specific corruption affecting on-ledger data. This transaction type has a different mode for each type of error state or corruption it can fix. {% amendment-disclaimer name="fixNFTokenPageLinks" /%} - ## Example {% $frontmatter.seo.title %} JSON ```json { - "Account" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "Fee" : "2000000", - "LedgerFixType" : 1, - "Owner" : "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "Sequence" : 2, - "TransactionType" : "LedgerStateFix" + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "Fee": "2000000", + "LedgerFixType": 1, + "Owner": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "Sequence": 2, + "TransactionType": "LedgerStateFix" } ``` {% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%} -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:----------------|:---------------------|:------------------|:----------|:------------| +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :-------------- | :------------------- | :---------------- | :-------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `LedgerFixType` | Number | UInt16 | Yes | The type of fix to apply. See [LedgerFixType](#ledgerfixtype) for possible values. Currently the only type is `1`, which fixes the NFToken directory for a single account. | -| `Owner` | String - [Address][] | AccountID | No | _(Required if `LedgerFixType` is `1`.)_ The account that owns the NFToken directory to fix. Does not need any relationship to the sender of the transaction. | - +| `Owner` | String - [Address][] | AccountID | No | _(Required if `LedgerFixType` is `1`.)_ The account that owns the NFToken directory to fix. Does not need any relationship to the sender of the transaction. | ## LedgerFixType @@ -51,22 +51,20 @@ When these conditions were met, the NFToken directory didn't properly update pag The [fixNFTokenPageLinks amendment][] prevents new instances of this type of ledger corruption from happening. - ## Special Transaction Cost The `LedgerStateFix` transaction is rare and potentially compute intensive, so the transaction must pay a special [transaction cost][] equal to at least the [owner reserve](../../../../concepts/accounts/reserves.md) for one item (currently {% $env.PUBLIC_OWNER_RESERVE %}). The transaction cost always applies when a transaction is included in a validated ledger, even if the transaction fails. (See [Error Cases](#error-cases).) To greatly reduce the chances of paying the high transaction cost if the transaction fails, [submit the transaction](../../../http-websocket-apis/public-api-methods/transaction-methods/submit.md) with `fail_hard` enabled. - ## Error Cases Besides errors that can occur for all transactions, {% $frontmatter.seo.title %} transactions can result in the following [transaction result codes](../transaction-results/index.md): -| Error Code | Description | -|:-----------------------------|:------------| -| `tecFAILED_PROCESSING` | The transaction failed to apply the fix. For example, the transaction attempted to repair an NFT directory that was not broken. | +| Error Code | Description | +| :--------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `tecFAILED_PROCESSING` | The transaction failed to apply the fix. For example, the transaction attempted to repair an NFT directory that was not broken. | | `tecOBJECT_NOT_FOUND` | A ledger entry specified in the transaction does not exist. For example, the transaction tried to repair the NFT directory of an account that does not hold any NFTs. | -| `tefINVALID_LEDGER_FIX_TYPE` | The [`LedgerFixType`](#ledgerfixtype) value specified in the transaction is not valid. Currently, the only valid type is `1`. | +| `tefINVALID_LEDGER_FIX_TYPE` | The [`LedgerFixType`](#ledgerfixtype) value specified in the transaction is not valid. Currently, the only valid type is `1`. | {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/protocol/transactions/types/mptokenauthorize.md b/docs/references/protocol/transactions/types/mptokenauthorize.md index a9b2ad164a..19cfa3abf7 100644 --- a/docs/references/protocol/transactions/types/mptokenauthorize.md +++ b/docs/references/protocol/transactions/types/mptokenauthorize.md @@ -1,10 +1,12 @@ --- seo: - description: Set up your account to receive a specific MPT as a holder; or authorize a holder as an MPT issuer. + description: Set up your account to receive a specific MPT as a holder; or authorize a holder as an MPT issuer. labels: - - Multi-purpose Tokens, MPTs + - Multi-purpose Tokens, MPTs --- + # MPTokenAuthorize + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/MPTokenAuthorize.cpp "Source") Control whether an account can hold a given [Multi-purpose Token (MPT)](../../../../concepts/tokens/fungible-tokens/multi-purpose-tokens.md). This transaction has several uses: @@ -34,17 +36,17 @@ This example assumes that the transaction is submitted by the holder of the toke {% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%} -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:--------------------|:---------------------|:------------------|:----------|:------------| -| `MPTokenIssuanceID` | String | `UInt192` | Yes | The ID of the MPT to authorize. | +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :------------------ | :------------------- | :---------------- | :-------- | :-------------------------------------------------------------------------------------------------------------- | +| `MPTokenIssuanceID` | String | `UInt192` | Yes | The ID of the MPT to authorize. | | `Holder` | String - [Address][] | `AccountID` | No | The holder to authorize. Only used for authorization/allow-listing; must be omitted if submitted by the holder. | ### MPTokenAuthorize Flags Transactions of the MPTokenAuthorize type support additional values in the `Flags` field, as follows: -| Flag Name | Hex Value | Decimal Value | Description | -|:-------------------|:-------------|:--------------|:------------------------------| +| Flag Name | Hex Value | Decimal Value | Description | +| :----------------- | :----------- | :------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `tfMPTUnauthorize` | `0x00000001` | 1 | When the holder enables this flag, if their balance of the given MPT is zero, it revokes their willingness to hold this MPT and deletes their `MPToken` entry. If their balance is non-zero, the transaction fails. When an issuer enables this flag, it revokes permission for the specified holder to hold this MPT; the transaction fails if the MPT does not use allow-listing. | ## See Also diff --git a/docs/references/protocol/transactions/types/mptokenissuancecreate.md b/docs/references/protocol/transactions/types/mptokenissuancecreate.md index 74009053e0..3e0fba03b2 100644 --- a/docs/references/protocol/transactions/types/mptokenissuancecreate.md +++ b/docs/references/protocol/transactions/types/mptokenissuancecreate.md @@ -1,10 +1,12 @@ --- seo: - description: Define the properties of a new Multi-Purpose Token (MPT). + description: Define the properties of a new Multi-Purpose Token (MPT). labels: - - Multi-purpose Tokens, MPTs + - Multi-purpose Tokens, MPTs --- + # MPTokenIssuanceCreate + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/MPTokenIssuanceCreate.cpp "Source") Creates a new [Multi-purpose Token (MPT)](../../../../concepts/tokens/fungible-tokens/multi-purpose-tokens.md) issuance, which defines the properties of those MPTs. This is a prerequisite to actually issuing the tokens. @@ -35,12 +37,12 @@ This example assumes that the issuer of the token is the signer of the transacti {% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%} -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:------------------|:---------------------|:------------------|:----------|:------------| +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :---------------- | :------------------- | :---------------- | :-------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `AssetScale` | Number | UInt8 | No | Where to put the decimal place when displaying amounts of this MPT. More formally, the asset scale is a non-negative integer (0, 1, 2, …) such that one standard unit equals 10^(-scale) of a corresponding fractional unit. For example, if a US Dollar Stablecoin has an asset scale of _2_, then 1 unit of that MPT would equal 0.01 US Dollars. This indicates to how many decimal places the MPT can be subdivided. If omitted, the default is 0, meaning that the MPT cannot be divided into smaller than 1 unit. | -| `TransferFee` | Number | UInt16 | No | The value specifies the fee to charged by the issuer for secondary sales of the Token, if such sales are allowed. Valid values for this field are between 0 and 50,000 inclusive, allowing transfer rates of between 0.000% and 50.000% in increments of 0.001. The field _must not_ be present if the tfMPTCanTransfer flag is not set. If it is, the transaction should fail and a fee should be claimed. | -| `MaximumAmount` | String - Number | UInt64 | No | The maximum asset amount of this token that can ever be issued, as a base-10 number encoded as a string. The current default maximum limit is 9,223,372,036,854,775,807 (2^63-1). _This limit may increase in the future. If an upper limit is required, you must specify this field._ | -| `MPTokenMetadata` | String - Hexadecimal | Blob | No | Arbitrary metadata about this issuance. The limit for this field is 1024 bytes. By convention, the metadata should decode to JSON data describing what the MPT represents. The [XLS-89 specification](https://github.com/XRPLF/XRPL-Standards/tree/master/XLS-0089-multi-purpose-token-metadata-schema) defines a recommended format for metadata. | +| `TransferFee` | Number | UInt16 | No | The value specifies the fee to charged by the issuer for secondary sales of the Token, if such sales are allowed. Valid values for this field are between 0 and 50,000 inclusive, allowing transfer rates of between 0.000% and 50.000% in increments of 0.001. The field _must not_ be present if the tfMPTCanTransfer flag is not set. If it is, the transaction should fail and a fee should be claimed. | +| `MaximumAmount` | String - Number | UInt64 | No | The maximum asset amount of this token that can ever be issued, as a base-10 number encoded as a string. The current default maximum limit is 9,223,372,036,854,775,807 (2^63-1). _This limit may increase in the future. If an upper limit is required, you must specify this field._ | +| `MPTokenMetadata` | String - Hexadecimal | Blob | No | Arbitrary metadata about this issuance. The limit for this field is 1024 bytes. By convention, the metadata should decode to JSON data describing what the MPT represents. The [XLS-89 specification](https://github.com/XRPLF/XRPL-Standards/tree/master/XLS-0089-multi-purpose-token-metadata-schema) defines a recommended format for metadata. | {% admonition type="success" name="Tip" %} For an example of how to encode metadata for the `MPTokenMetadata` field, see {% repo-link path="_code-samples/issue-mpt-with-metadata/" %}Code Sample: Issue MPT with Metadata{% /repo-link %}. @@ -50,14 +52,14 @@ For an example of how to encode metadata for the `MPTokenMetadata` field, see {% Transactions of the MPTokenIssuanceCreate type support additional values in the [`Flags` field](../common-fields.md#flags-field), as follows: -| Flag Name | Hex Value | Decimal Value | Description | -|:-------------------|:-------------|:--------------|:------------------------------| +| Flag Name | Hex Value | Decimal Value | Description | +| :----------------- | :----------- | :------------ | :---------------------------------------------------------------------------------------------------------------------------- | | `tfMPTCanLock` | `0x00000002` | `2` | If set, indicates that the MPT can be locked both individually and globally. If not set, the MPT cannot be locked in any way. | -| `tfMPTRequireAuth` | `0x00000004` | `4` | If set, indicates that individual holders must be authorized. This enables issuers to limit who can hold their assets. | -| `tfMPTCanEscrow` | `0x00000008` | `8` | If set, indicates that individual holders can place their balances into an escrow. | -| `tfMPTCanTrade` | `0x00000010` | `16` | If set, indicates that individual holders can trade their balances using the XRP Ledger DEX. | -| `tfMPTCanTransfer` | `0x00000020` | `32` | If set, indicates that tokens can be transferred to other accounts that are not the issuer. | -| `tfMPTCanClawback` | `0x00000040` | `64` | If set, indicates that the issuer can use the `Clawback` transaction to claw back value from individual holders. | +| `tfMPTRequireAuth` | `0x00000004` | `4` | If set, indicates that individual holders must be authorized. This enables issuers to limit who can hold their assets. | +| `tfMPTCanEscrow` | `0x00000008` | `8` | If set, indicates that individual holders can place their balances into an escrow. | +| `tfMPTCanTrade` | `0x00000010` | `16` | If set, indicates that individual holders can trade their balances using the XRP Ledger DEX. | +| `tfMPTCanTransfer` | `0x00000020` | `32` | If set, indicates that tokens can be transferred to other accounts that are not the issuer. | +| `tfMPTCanClawback` | `0x00000040` | `64` | If set, indicates that the issuer can use the `Clawback` transaction to claw back value from individual holders. | ## See Also diff --git a/docs/references/protocol/transactions/types/mptokenissuancedestroy.md b/docs/references/protocol/transactions/types/mptokenissuancedestroy.md index 163f27c468..8d3ca4616c 100644 --- a/docs/references/protocol/transactions/types/mptokenissuancedestroy.md +++ b/docs/references/protocol/transactions/types/mptokenissuancedestroy.md @@ -1,10 +1,12 @@ --- seo: - description: Delete a Multi-Purpose Token definition. + description: Delete a Multi-Purpose Token definition. labels: - - Multi-purpose Tokens, MPTs + - Multi-purpose Tokens, MPTs --- + # MPTokenIssuanceDestroy + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/MPTokenIssuanceDestroy.cpp "Source") Delete a [Multi-purpose Token (MPT)](../../../../concepts/tokens/fungible-tokens/multi-purpose-tokens.md) issuance. Only the issuer can delete an MPT issuance, and only if there are no holders of the MPT. @@ -15,12 +17,12 @@ Delete a [Multi-purpose Token (MPT)](../../../../concepts/tokens/fungible-tokens ```json { - "TransactionType": "MPTokenIssuanceDestroy", - "Account": "rNFta7UKwcoiCpxEYbhH2v92numE3cceB6", - "MPTokenIssuanceID": "05EECEBC97A7D635DE2393068691A015FED5A89AD203F5AA", - "Fee": "10", - "Flags": 0, - "Sequence": 99536573 + "TransactionType": "MPTokenIssuanceDestroy", + "Account": "rNFta7UKwcoiCpxEYbhH2v92numE3cceB6", + "MPTokenIssuanceID": "05EECEBC97A7D635DE2393068691A015FED5A89AD203F5AA", + "Fee": "10", + "Flags": 0, + "Sequence": 99536573 } ``` @@ -28,9 +30,9 @@ Delete a [Multi-purpose Token (MPT)](../../../../concepts/tokens/fungible-tokens {% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%} -| Field | JSON Type | [Internal Type][] | Description | -|:--------------------|:--------------------|:------------------|:-------------------| -| `MPTokenIssuanceID` | String | UInt192 | Identifies the `MPTokenIssuance` object to be removed by the transaction. | +| Field | JSON Type | [Internal Type][] | Description | +| :------------------ | :-------- | :---------------- | :------------------------------------------------------------------------ | +| `MPTokenIssuanceID` | String | UInt192 | Identifies the `MPTokenIssuance` object to be removed by the transaction. | ## See Also diff --git a/docs/references/protocol/transactions/types/mptokenissuanceset.md b/docs/references/protocol/transactions/types/mptokenissuanceset.md index b7cb469ba7..7ee7b3cb05 100644 --- a/docs/references/protocol/transactions/types/mptokenissuanceset.md +++ b/docs/references/protocol/transactions/types/mptokenissuanceset.md @@ -1,10 +1,12 @@ --- seo: - description: Set mutable properties of a Multi-Purpose Token definition. + description: Set mutable properties of a Multi-Purpose Token definition. labels: - - Multi-purpose Tokens, MPTs + - Multi-purpose Tokens, MPTs --- + # MPTokenIssuanceSet + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/MPTokenIssuanceSet.cpp "Source") Update a mutable property of a [Multi-purpose Token (MPT)](../../../../concepts/tokens/fungible-tokens/multi-purpose-tokens.md) issuance, including locking (freezing) or unlocking the tokens globally or for an individual holder. @@ -17,12 +19,12 @@ This example locks the balances of all holders of the specified MPT issuance. ```json { - "TransactionType": "MPTokenIssuanceSet", - "Account": "rNFta7UKwcoiCpxEYbhH2v92numE3cceB6", - "MPTokenIssuanceID": "05EECEBE97A7D635DE2393068691A015FED5A89AD203F5AA", - "Fee": "10", - "Flags": 1, - "Sequence": 99536577 + "TransactionType": "MPTokenIssuanceSet", + "Account": "rNFta7UKwcoiCpxEYbhH2v92numE3cceB6", + "MPTokenIssuanceID": "05EECEBE97A7D635DE2393068691A015FED5A89AD203F5AA", + "Fee": "10", + "Flags": 1, + "Sequence": 99536577 } ``` @@ -30,19 +32,19 @@ This example locks the balances of all holders of the specified MPT issuance. {% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%} -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:--------------------|:---------------------|:------------------|:----------|-------------| -| `MPTokenIssuanceID` | String - Hexadecimal | UInt192 | Yes | The identifier of the `MPTokenIssuance` to update. | +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :------------------ | :------------------- | :---------------- | :-------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `MPTokenIssuanceID` | String - Hexadecimal | UInt192 | Yes | The identifier of the `MPTokenIssuance` to update. | | `Holder` | String - [Address][] | AccountID | No | An individual token holder. If provided, apply changes to the given holder's balance of the given MPT issuance. If omitted, apply to all accounts holding the given MPT issuance. | ### MPTokenIssuanceSet Flags Transactions of the `MPTokenIssuanceSet` type support additional values in the `Flags` field, as follows: -| Flag Name | Hex Value | Decimal Value | Description | -|:-------------------|:-------------|:--------------|:------------------------------| -| `tfMPTLock` | `0x00000001` | 1 | Enable to lock balances of this MPT issuance. | -| `tfMPTUnlock` | `0x00000002` | 2 | Enable to unlock balances of this MPT issuance. | +| Flag Name | Hex Value | Decimal Value | Description | +| :------------ | :----------- | :------------ | :---------------------------------------------- | +| `tfMPTLock` | `0x00000001` | 1 | Enable to lock balances of this MPT issuance. | +| `tfMPTUnlock` | `0x00000002` | 2 | Enable to unlock balances of this MPT issuance. | ## See Also diff --git a/docs/references/protocol/transactions/types/nftokenacceptoffer.md b/docs/references/protocol/transactions/types/nftokenacceptoffer.md index c0a9244916..0f24a61f9e 100644 --- a/docs/references/protocol/transactions/types/nftokenacceptoffer.md +++ b/docs/references/protocol/transactions/types/nftokenacceptoffer.md @@ -1,16 +1,18 @@ --- seo: - description: Accept an offer to buy or sell an NFT. + description: Accept an offer to buy or sell an NFT. labels: - - NFTs, Non-fungible Tokens + - NFTs, Non-fungible Tokens --- + # NFTokenAcceptOffer + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/NFTokenAcceptOffer.cpp "Source") Accept an offer to buy or sell a [non-fungible token (NFT)](../../../../concepts/tokens/nfts/index.md). This transaction has two modes: -* In _direct_ mode, a buyer can accept a sell offer directly, or a seller can accept a buy offer directly. -* In _brokered_ mode, a third party (the _broker_) can match two distinct offers, one buying and one selling. If the buy price is higher than the sell price, the broker can claim the difference as a fee for themself. +- In _direct_ mode, a buyer can accept a sell offer directly, or a seller can accept a buy offer directly. +- In _brokered_ mode, a third party (the _broker_) can match two distinct offers, one buying and one selling. If the buy price is higher than the sell price, the broker can claim the difference as a fee for themself. {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} @@ -41,17 +43,15 @@ Accept an offer to buy or sell a [non-fungible token (NFT)](../../../../concepts The mode in which the transaction operates depends on the presence of the `NFTokenSellOffer` and `NFTokenBuyOffer` fields of the transaction: | `NFTokenSellOffer` | `NFTokenBuyOffer` | Mode | -|:-------------------|:------------------|:---------| +| :----------------- | :---------------- | :------- | | ✅ | ✅ | Brokered | | ✅ | ❌ | Direct | | ❌ | ✅ | Direct | - If neither of those fields is specified, the transaction is malformed and produces a `tem` class error. The semantics of brokered mode are slightly different than direct mode: the account sending the transaction acts as a broker, bringing the two offers together and causing them to be matched, but does not acquire ownership of the involved `NFToken`. If the transaction is successful, the `NFToken` is sent directly from the seller to the buyer. - ## Execution Details If the transaction succeeds: @@ -67,15 +67,14 @@ The transaction fails with a [`tec`-class code](../transaction-results/tec-codes - The sell offer specifies a specific destination account, and the sender of the transaction is not that account. - The sender of this transaction owns the buy or sell offer. - ## Fields {% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%} -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:-------------------|:--------------------|:------------------|:----------|:------------| -| `NFTokenSellOffer` | String - [Hash][] | UInt256 | No | Identifies the `NFTokenOffer` that offers to sell the `NFToken`. | -| `NFTokenBuyOffer` | String - [Hash][] | UInt256 | No | Identifies the `NFTokenOffer` that offers to buy the `NFToken`. | +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :----------------- | :------------------ | :---------------- | :-------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `NFTokenSellOffer` | String - [Hash][] | UInt256 | No | Identifies the `NFTokenOffer` that offers to sell the `NFToken`. | +| `NFTokenBuyOffer` | String - [Hash][] | UInt256 | No | Identifies the `NFTokenOffer` that offers to buy the `NFToken`. | | `NFTokenBrokerFee` | [Currency Amount][] | Amount | No | **Brokered mode only.** The amount that the broker keeps as their fee for bringing the two offers together; the remaining amount is sent to the seller of the NFT. If specified, the fee must be such that, before applying the transfer fee, the amount that the seller would receive is at least as much as the amount indicated in the sell offer. | In direct mode, you must specify **either** the `NFTokenSellOffer` or the `NFTokenBuyOffer` field. In brokered mode, you must specify **both** fields. @@ -90,18 +89,18 @@ In brokered mode, the offers referenced by `NFTokenBuyOffer` and `NFTokenSellOff Besides errors that can occur for all transactions, {% $frontmatter.seo.title %} transactions can result in the following [transaction result codes](../transaction-results/index.md): -| Error Code | Description | -|:-----------------------------------|:----------------------------------------| -| `temDISABLED` | The [NonFungibleTokensV1 amendment][] is not enabled. | -| `temMALFORMED` | The transaction was not validly formatted. For example, it specified neither `NFTokenSellOffer` nor `NFTokenBuyOffer`, or it specified a negative `NFTokenBrokerFee`. | -| `tecCANT_ACCEPT_OWN_NFTOKEN_OFFER` | The buyer and seller are the same account. | -| `tecEXPIRED` | An offer specified in the transaction has already expired. | +| Error Code | Description | +| :--------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `temDISABLED` | The [NonFungibleTokensV1 amendment][] is not enabled. | +| `temMALFORMED` | The transaction was not validly formatted. For example, it specified neither `NFTokenSellOffer` nor `NFTokenBuyOffer`, or it specified a negative `NFTokenBrokerFee`. | +| `tecCANT_ACCEPT_OWN_NFTOKEN_OFFER` | The buyer and seller are the same account. | +| `tecEXPIRED` | An offer specified in the transaction has already expired. | | `tecINSUFFICIENT_FUNDS` | The buyer does not have the full amount they are offering. If the buy amount is specified in XRP, this could be because of the [reserve requirement](../../../../concepts/accounts/reserves.md). If the buy amount is a token, it could be because the token is [frozen](../../../../concepts/tokens/fungible-tokens/freezes.md). | -| `tecINSUFFICIENT_PAYMENT` | In brokered mode, the buy amount offered is not high enough to pay the `BrokerFee` _and_ the sell cost of the `NFToken`. | -| `tecOBJECT_NOT_FOUND` | One of the offers specified in the transaction does not exist in the ledger. | -| `tecNFTOKEN_BUY_SELL_MISMATCH` | In brokered mode, the two offers are not a valid match. For example, the seller is asking more than the buyer is offering, the buy and sell offer are denominated in different assets, or the seller specified a destination that is not the buyer or the broker. | -| `tecNFTOKEN_OFFER_TYPE_MISMATCH` | The object identified by the `NFTokenBuyOffer` is not actually a buy offer, or the object identified by the `NFTokenSellOffer` is not actually a sell offer. | -| `tecNO_PERMISSION` | The seller does not own the `NFToken` being sold; or the matching offer specifies a different `Destination` account than the account accepting the offer. | +| `tecINSUFFICIENT_PAYMENT` | In brokered mode, the buy amount offered is not high enough to pay the `BrokerFee` _and_ the sell cost of the `NFToken`. | +| `tecOBJECT_NOT_FOUND` | One of the offers specified in the transaction does not exist in the ledger. | +| `tecNFTOKEN_BUY_SELL_MISMATCH` | In brokered mode, the two offers are not a valid match. For example, the seller is asking more than the buyer is offering, the buy and sell offer are denominated in different assets, or the seller specified a destination that is not the buyer or the broker. | +| `tecNFTOKEN_OFFER_TYPE_MISMATCH` | The object identified by the `NFTokenBuyOffer` is not actually a buy offer, or the object identified by the `NFTokenSellOffer` is not actually a sell offer. | +| `tecNO_PERMISSION` | The seller does not own the `NFToken` being sold; or the matching offer specifies a different `Destination` account than the account accepting the offer. | ## See Also diff --git a/docs/references/protocol/transactions/types/nftokenburn.md b/docs/references/protocol/transactions/types/nftokenburn.md index 31d33cb0c7..acf97b6e43 100644 --- a/docs/references/protocol/transactions/types/nftokenburn.md +++ b/docs/references/protocol/transactions/types/nftokenburn.md @@ -1,10 +1,12 @@ --- seo: - description: Permanently destroy an NFT. + description: Permanently destroy an NFT. labels: - - Non-fungible Tokens, NFTs + - Non-fungible Tokens, NFTs --- + # NFTokenBurn + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/NFTokenBurn.cpp "Source") Burn (destroy) a [non-fungible token (NFT)](../../../../concepts/tokens/nfts/index.md). The NFT's current holder can always burn it, and if the token's **Burnable** flag is enabled, the issuer and their authorized minter (if they have one) can also burn the NFT. @@ -13,7 +15,6 @@ If the transaction succeeds, it removes the corresponding [NFToken][] object fro {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} - ## Example {% $frontmatter.seo.title %} JSON ```json @@ -30,19 +31,18 @@ If the transaction succeeds, it removes the corresponding [NFToken][] object fro {% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%} -| Field | JSON Type | [Internal Type][] | Description | -|:------------------|:----------|:------------------|:-------------------------| -| `NFTokenID` | String | UInt256 | The `NFToken` to be removed by this transaction. | -| `Owner` | String | AccountID | _(Optional)_ The owner of the `NFToken` to burn. Only used if that owner is different than the account sending this transaction. The issuer or authorized minter can use this field to burn NFTs that have the `lsfBurnable` flag enabled. | - +| Field | JSON Type | [Internal Type][] | Description | +| :---------- | :-------- | :---------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `NFTokenID` | String | UInt256 | The `NFToken` to be removed by this transaction. | +| `Owner` | String | AccountID | _(Optional)_ The owner of the `NFToken` to burn. Only used if that owner is different than the account sending this transaction. The issuer or authorized minter can use this field to burn NFTs that have the `lsfBurnable` flag enabled. | ## Error Cases Besides errors that can occur for all transactions, {% $frontmatter.seo.title %} transactions can result in the following [transaction result codes](../transaction-results/index.md): | Error Code | Description | -|:-------------------|:--------------------------------------------------------| -| `temDISABLED` | The [NonFungibleTokensV1 amendment][] is not enabled. | +| :----------------- | :------------------------------------------------------ | +| `temDISABLED` | The [NonFungibleTokensV1 amendment][] is not enabled. | | `tecNO_ENTRY` | The specified `TokenID` was not found. | | `tecNO_PERMISSION` | The account does not have permission to burn the token. | diff --git a/docs/references/protocol/transactions/types/nftokencanceloffer.md b/docs/references/protocol/transactions/types/nftokencanceloffer.md index dd62978428..c3720eb6b5 100644 --- a/docs/references/protocol/transactions/types/nftokencanceloffer.md +++ b/docs/references/protocol/transactions/types/nftokencanceloffer.md @@ -1,10 +1,12 @@ --- seo: - description: Cancel offers to buy or sell an NFT. + description: Cancel offers to buy or sell an NFT. labels: - - NFTs, Non-fungible Tokens + - NFTs, Non-fungible Tokens --- + # NFTokenCancelOffer + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/NFTokenCancelOffer.cpp "Source") Cancel an offer to buy or sell a [non-fungible token (NFT)](../../../../concepts/tokens/nfts/index.md). @@ -15,11 +17,9 @@ Cancel an offer to buy or sell a [non-fungible token (NFT)](../../../../concepts ```json { - "TransactionType": "NFTokenCancelOffer", - "Account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "NFTokenOffers": [ - "9C92E061381C1EF37A8CDE0E8FC35188BFC30B1883825042A64309AC09F4C36D" - ] + "TransactionType": "NFTokenCancelOffer", + "Account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "NFTokenOffers": ["9C92E061381C1EF37A8CDE0E8FC35188BFC30B1883825042A64309AC09F4C36D"] } ``` @@ -29,17 +29,17 @@ Cancel an offer to buy or sell a [non-fungible token (NFT)](../../../../concepts An existing offer, represented by an `NFTokenOffer` object, can be cancelled by: -* The account that originally created the `NFTokenOffer`. -* The account in the `Destination` field of the `NFTokenOffer`, if one is present. -* Any account, if the `NFTokenOffer` specifies an expiration time and the close time of the parent ledger in which the `NFTokenCancelOffer` is included is greater than the expiration time. +- The account that originally created the `NFTokenOffer`. +- The account in the `Destination` field of the `NFTokenOffer`, if one is present. +- Any account, if the `NFTokenOffer` specifies an expiration time and the close time of the parent ledger in which the `NFTokenCancelOffer` is included is greater than the expiration time. This transaction removes the listed `NFTokenOffer` object from the ledger, if present, and adjusts the reserve requirements accordingly. It is not an error if the `NFTokenOffer` cannot be found: if that is the case, the transaction should complete successfully. {% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%} -| Field | JSON Type | [Internal Type][] | Description | -|:------------------|:----------|:------------------|:-------------------------| -| `NFTokenOffers` | Array | Vector256 | An array of IDs of the `NFTokenOffer` objects to cancel (not the IDs of `NFToken` objects, but the IDs of the `NFTokenOffer` objects). Each entry must be a different [object ID](../../ledger-data/common-fields.md) of an [NFTokenOffer](../../ledger-data/ledger-entry-types/nftokenoffer.md) object; the transaction is invalid if the array contains duplicate entries. | +| Field | JSON Type | [Internal Type][] | Description | +| :-------------- | :-------- | :---------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `NFTokenOffers` | Array | Vector256 | An array of IDs of the `NFTokenOffer` objects to cancel (not the IDs of `NFToken` objects, but the IDs of the `NFTokenOffer` objects). Each entry must be a different [object ID](../../ledger-data/common-fields.md) of an [NFTokenOffer](../../ledger-data/ledger-entry-types/nftokenoffer.md) object; the transaction is invalid if the array contains duplicate entries. | The transaction can succeed even if one or more of the IDs in the `NFTokenOffers` field do not refer to objects that currently exist in the ledger. (For example, those token offers might already have been deleted.) The transaction fails with an error if one of the IDs points to an object that does exist, but is not a [NFTokenOffer](../../ledger-data/ledger-entry-types/nftokenoffer.md) object. @@ -51,10 +51,10 @@ The transaction fails with an error if one of the IDs points to an object that d Besides errors that can occur for all transactions, {% $frontmatter.seo.title %} transactions can result in the following [transaction result codes](../transaction-results/index.md): -| Error Code | Description | -|:-------------------|:--------------------------------------------------------| -| `temDISABLED` | The [NonFungibleTokensV1 amendment][] is not enabled. | -| `temMALFORMED` | The transaction was not validly formatted. For example, the `NFTokenOffers` array was empty or contained more than the maximum number of offers that can be canceled at one time. | +| Error Code | Description | +| :----------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `temDISABLED` | The [NonFungibleTokensV1 amendment][] is not enabled. | +| `temMALFORMED` | The transaction was not validly formatted. For example, the `NFTokenOffers` array was empty or contained more than the maximum number of offers that can be canceled at one time. | | `tecNO_PERMISSION` | At least one of the IDs in the `NFTokenOffers` field refers to an object that cannot be canceled. For example, the sender of this transaction is not the owner or `Destination` of the offer, or the object was not an `NFTokenOffer` type object. | ## See Also diff --git a/docs/references/protocol/transactions/types/nftokencreateoffer.md b/docs/references/protocol/transactions/types/nftokencreateoffer.md index 214be0a96a..f6c9449433 100644 --- a/docs/references/protocol/transactions/types/nftokencreateoffer.md +++ b/docs/references/protocol/transactions/types/nftokencreateoffer.md @@ -1,10 +1,12 @@ --- seo: - description: Create an offer to buy or sell an NFT. + description: Create an offer to buy or sell an NFT. labels: - - Non-fungible Tokens, NFTs + - Non-fungible Tokens, NFTs --- + # NFTokenCreateOffer + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/NFTokenCreateOffer.cpp "Source") Create a new offer to either buy or sell a [non-fungible token (NFT)](../../../../concepts/tokens/nfts/index.md). You can only offer to sell NFTs you own or buy NFTs you don't own. @@ -17,11 +19,11 @@ If successful, the transaction creates a [NFTokenOffer object][]. To complete th ```json { - "TransactionType": "NFTokenCreateOffer", - "Account": "rs8jBmmfpwgmrSPgwMsh7CvKRmRt1JTVSX", - "NFTokenID": "000100001E962F495F07A990F4ED55ACCFEEF365DBAA76B6A048C0A200000007", - "Amount": "1000000", - "Flags": 1 + "TransactionType": "NFTokenCreateOffer", + "Account": "rs8jBmmfpwgmrSPgwMsh7CvKRmRt1JTVSX", + "NFTokenID": "000100001E962F495F07A990F4ED55ACCFEEF365DBAA76B6A048C0A200000007", + "Amount": "1000000", + "Flags": 1 } ``` @@ -29,44 +31,42 @@ If successful, the transaction creates a [NFTokenOffer object][]. To complete th {% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%} -| Field | JSON Type | [Internal Type][] | Description | -|:--------------|:--------------------|:------------------|:-------------------| +| Field | JSON Type | [Internal Type][] | Description | +| :------------ | :------------------ | :---------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `Owner` | String | AccountID | _(Optional)_ Who owns the corresponding `NFToken`. If the offer is to buy a token, this field must be present and it must be different than the `Account` field (since an offer to buy a token one already holds is meaningless). If the offer is to sell a token, this field must not be present, as the owner is, implicitly, the same as the `Account` (since an offer to sell a token one doesn't already hold is meaningless). | -| `NFTokenID` | String | UInt256 | Identifies the `NFToken` object that the offer references. | -| `Amount` | [Currency Amount][] | Amount | Indicates the amount expected or offered for the corresponding `NFToken`. The amount must be non-zero, except where this is an offer to sell and the asset is XRP; then, it is legal to specify an amount of zero, which means that the current owner of the token is giving it away, gratis, either to anyone at all, or to the account identified by the `Destination` field. | -| `Expiration` | Number | UInt32 | _(Optional)_ Time after which the offer is no longer active, in [seconds since the Ripple Epoch][]. | -| `Destination` | String | AccountID | _(Optional)_ If present, indicates that this offer may only be accepted by the specified account. Attempts by other accounts to accept this offer MUST fail. | - +| `NFTokenID` | String | UInt256 | Identifies the `NFToken` object that the offer references. | +| `Amount` | [Currency Amount][] | Amount | Indicates the amount expected or offered for the corresponding `NFToken`. The amount must be non-zero, except where this is an offer to sell and the asset is XRP; then, it is legal to specify an amount of zero, which means that the current owner of the token is giving it away, gratis, either to anyone at all, or to the account identified by the `Destination` field. | +| `Expiration` | Number | UInt32 | _(Optional)_ Time after which the offer is no longer active, in [seconds since the Ripple Epoch][]. | +| `Destination` | String | AccountID | _(Optional)_ If present, indicates that this offer may only be accepted by the specified account. Attempts by other accounts to accept this offer MUST fail. | ## NFTokenCreateOffer Flags Transactions of the NFTokenCreateOffer type support additional values in the [`Flags` field](../common-fields.md#flags-field), as follows: -| Flag Name | Hex Value | Decimal Value | Description | -|:----------------|:-------------|:--------------|:------------------------------| +| Flag Name | Hex Value | Decimal Value | Description | +| :-------------- | :----------- | :------------ | :---------------------------------------------------------------------------------- | | `tfSellNFToken` | `0x00000001` | `1` | If enabled, indicates that the offer is a sell offer. Otherwise, it is a buy offer. | - ## Error Cases Besides errors that can occur for all transactions, {% $frontmatter.seo.title %} transactions can result in the following [transaction result codes](../transaction-results/index.md): -| Error Code | Description | -|:---------------------------------|:------------------------------------------| -| `temDISABLED` | The [NonFungibleTokensV1 amendment][] is not enabled. | -| `temBAD_AMOUNT` | The `Amount` field is not valid. For example, the amount was zero for a buy offer, or the amount is denominated in fungible tokens but the `NFToken` has the [`lsfOnlyXRP` flag](../../data-types/nftoken.md#nftoken-flags) enabled. | -| `temBAD_EXPIRATION` | The specified `Expiration` time is invalid (for example, `0`). | -| `tecDIR_FULL` | The sender already owns too many objects in the ledger, or there are already too many offers to buy or sell this token.
    This error is effectively impossible to receive if {% amendment-disclaimer name="fixDirectoryLimit" compact=true /%} is enabled. | -| `tecEXPIRED` | The specified `Expiration` time has already passed. | -| `tecFROZEN` | The `Amount` is denominated in fungible tokens, but one of the trust lines that would receive tokens from this offer is [frozen](../../../../concepts/tokens/fungible-tokens/freezes.md). This could be the seller's trust line or the `NFToken`'s issuer's trust line (if the `NFToken` has a transfer fee). | -| `tecINSUFFICIENT_RESERVE` | The sender does not have enough XRP to meet the [reserve requirement](../../../../concepts/accounts/reserves.md) after placing this offer. | -| `tecNO_DST` | The account specified in the `Destination` field does not exist in the ledger. | -| `tecNO_ENTRY` | The `NFToken` is not owned by the expected account. | -| `tecNO_ISSUER` | The issuer specified in the `Amount` field does not exist. | -| `tecNO_LINE` | The `Amount` field is denominated in fungible tokens, but the `NFToken`'s issuer does not have a trust line for those tokens and the `NFToken` does not have the [`lsfTrustLine` flag](../../data-types/nftoken.md#nftoken-flags) enabled. | -| `tecNO_PERMISSION` | The `Destination` account blocks incoming NFTokenOffers. {% amendment-disclaimer name="DisallowIncoming" /%} +| Error Code | Description | +| :------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `temDISABLED` | The [NonFungibleTokensV1 amendment][] is not enabled. | +| `temBAD_AMOUNT` | The `Amount` field is not valid. For example, the amount was zero for a buy offer, or the amount is denominated in fungible tokens but the `NFToken` has the [`lsfOnlyXRP` flag](../../data-types/nftoken.md#nftoken-flags) enabled. | +| `temBAD_EXPIRATION` | The specified `Expiration` time is invalid (for example, `0`). | +| `tecDIR_FULL` | The sender already owns too many objects in the ledger, or there are already too many offers to buy or sell this token.
    This error is effectively impossible to receive if {% amendment-disclaimer name="fixDirectoryLimit" compact=true /%} is enabled. | +| `tecEXPIRED` | The specified `Expiration` time has already passed. | +| `tecFROZEN` | The `Amount` is denominated in fungible tokens, but one of the trust lines that would receive tokens from this offer is [frozen](../../../../concepts/tokens/fungible-tokens/freezes.md). This could be the seller's trust line or the `NFToken`'s issuer's trust line (if the `NFToken` has a transfer fee). | +| `tecINSUFFICIENT_RESERVE` | The sender does not have enough XRP to meet the [reserve requirement](../../../../concepts/accounts/reserves.md) after placing this offer. | +| `tecNO_DST` | The account specified in the `Destination` field does not exist in the ledger. | +| `tecNO_ENTRY` | The `NFToken` is not owned by the expected account. | +| `tecNO_ISSUER` | The issuer specified in the `Amount` field does not exist. | +| `tecNO_LINE` | The `Amount` field is denominated in fungible tokens, but the `NFToken`'s issuer does not have a trust line for those tokens and the `NFToken` does not have the [`lsfTrustLine` flag](../../data-types/nftoken.md#nftoken-flags) enabled. | +| `tecNO_PERMISSION` | The `Destination` account blocks incoming NFTokenOffers. {% amendment-disclaimer name="DisallowIncoming" /%} | | `tecUNFUNDED_OFFER` | For a buy offer, the sender does have the funds specified in the `Amount` field available. If the `Amount` is XRP, this could be due to the reserve requirement; if the `Amount` is denominated in fungible tokens, this could be because they are [frozen](../../../../concepts/tokens/fungible-tokens/freezes.md). | -| `tefNFTOKEN_IS_NOT_TRANSFERABLE` | The `NFToken` has the [`lsfTransferable` flag](../../data-types/nftoken.md#nftoken-flags) disabled and this transaction would not transfer the `NFToken` to or from the issuer. | +| `tefNFTOKEN_IS_NOT_TRANSFERABLE` | The `NFToken` has the [`lsfTransferable` flag](../../data-types/nftoken.md#nftoken-flags) disabled and this transaction would not transfer the `NFToken` to or from the issuer. | ## See Also diff --git a/docs/references/protocol/transactions/types/nftokenmint.md b/docs/references/protocol/transactions/types/nftokenmint.md index 3540509744..80dc072cde 100644 --- a/docs/references/protocol/transactions/types/nftokenmint.md +++ b/docs/references/protocol/transactions/types/nftokenmint.md @@ -1,10 +1,12 @@ --- seo: - description: Mint a Non-Fungible Token (NFT). + description: Mint a Non-Fungible Token (NFT). labels: - - Non-fungible Tokens, NFTs + - Non-fungible Tokens, NFTs --- + # NFTokenMint + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/NFTokenMint.cpp "Source") Create a [non-fungible token (NFT)](../../../../concepts/tokens/nfts/index.md). This is the only opportunity the minter has to specify any token fields and flags that are immutable. This transaction can be sent by the NFT's issuer or by an [authorized minter](../../../../concepts/tokens/nfts/authorizing-another-minter.md). @@ -13,10 +15,8 @@ If successful, the transaction adds an [NFToken][] object to one of the minter's {% amendment-disclaimer name="NonFungibleTokensV1_1" /%} - ## Example {% $frontmatter.seo.title %} JSON - ```json { "TransactionType": "NFTokenMint", @@ -27,14 +27,13 @@ If successful, the transaction adds an [NFToken][] object to one of the minter's "Fee": "10", "URI": "697066733A2F2F62616679626569676479727A74357366703775646D37687537367568377932366E6634646675796C71616266336F636C67747179353566627A6469", "Memos": [ - { - "Memo": { - "MemoType": - "687474703A2F2F6578616D706C652E636F6D2F6D656D6F2F67656E65726963", - "MemoData": "72656E74" - } - } - ] + { + "Memo": { + "MemoType": "687474703A2F2F6578616D706C652E636F6D2F6D656D6F2F67656E65726963", + "MemoData": "72656E74" + } + } + ] } ``` @@ -42,28 +41,27 @@ If successful, the transaction adds an [NFToken][] object to one of the minter's {% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%} -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:---------------|:---------------------|:------------------|:----------|-------------| -| `NFTokenTaxon` | Number | UInt32 | Yes | An arbitrary _taxon_, or shared identifier, for a series or collection of related NFTs. To mint a series of NFTs, give them all the same taxon. | -| `Issuer` | String - [Address][] | AccountID | No | The issuer of the token, if the sender of the account is issuing it on behalf of another account. This field must be omitted if the account sending the transaction is the issuer of the `NFToken`. If provided, the issuer's [AccountRoot object][] must have the `NFTokenMinter` field set to the sender of this transaction (this transaction's `Account` field). | -| `TransferFee` | Number | UInt16 | No | The value specifies the fee charged by the issuer for secondary sales of the `NFToken`, if such sales are allowed. Valid values for this field are between 0 and 50000 inclusive, allowing transfer rates of between 0.00% and 50.00% in increments of 0.001. If this field is provided, the transaction MUST have the [`tfTransferable` flag](#nftokenmint-flags) enabled. | +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :------------- | :------------------- | :---------------- | :-------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `NFTokenTaxon` | Number | UInt32 | Yes | An arbitrary _taxon_, or shared identifier, for a series or collection of related NFTs. To mint a series of NFTs, give them all the same taxon. | +| `Issuer` | String - [Address][] | AccountID | No | The issuer of the token, if the sender of the account is issuing it on behalf of another account. This field must be omitted if the account sending the transaction is the issuer of the `NFToken`. If provided, the issuer's [AccountRoot object][] must have the `NFTokenMinter` field set to the sender of this transaction (this transaction's `Account` field). | +| `TransferFee` | Number | UInt16 | No | The value specifies the fee charged by the issuer for secondary sales of the `NFToken`, if such sales are allowed. Valid values for this field are between 0 and 50000 inclusive, allowing transfer rates of between 0.00% and 50.00% in increments of 0.001. If this field is provided, the transaction MUST have the [`tfTransferable` flag](#nftokenmint-flags) enabled. | | `URI` | String - Hexadecimal | Blob | No | Up to 256 bytes of arbitrary data. In JSON, this should be encoded as a string of hexadecimal. You can use the [`xrpl.convertStringToHex`](https://js.xrpl.org/modules.html#convertStringToHex) utility to convert a URI to its hexadecimal equivalent. This is intended to be a URI that points to the data or metadata associated with the NFT. The contents could decode to an HTTP or HTTPS URL, an IPFS URI, a magnet link, immediate data encoded as an [RFC 2379 "data" URL](https://datatracker.ietf.org/doc/html/rfc2397), or even an issuer-specific encoding. The URI is NOT checked for validity. | -| `Amount` | [Currency Amount][] | Amount | No | Indicates the amount expected or offered for the corresponding `NFToken`. The amount must be non-zero, except where the asset is XRP; then, it is legal to specify an amount of zero, which means that the current owner of the token is giving it away, gratis, either to anyone at all, or to the account identified by the `Destination` field. | -| `Expiration` | Number | UInt32 | No | Time after which the offer is no longer active, in [seconds since the Ripple Epoch][]. Results in an error if the `Amount` field is not specified. | -| `Destination` | String - [Address][] | AccountID | No | If present, indicates that this offer may only be accepted by the specified account. Attempts by other accounts to accept this offer MUST fail. Results in an error if the `Amount` field is not specified. | +| `Amount` | [Currency Amount][] | Amount | No | Indicates the amount expected or offered for the corresponding `NFToken`. The amount must be non-zero, except where the asset is XRP; then, it is legal to specify an amount of zero, which means that the current owner of the token is giving it away, gratis, either to anyone at all, or to the account identified by the `Destination` field. | +| `Expiration` | Number | UInt32 | No | Time after which the offer is no longer active, in [seconds since the Ripple Epoch][]. Results in an error if the `Amount` field is not specified. | +| `Destination` | String - [Address][] | AccountID | No | If present, indicates that this offer may only be accepted by the specified account. Attempts by other accounts to accept this offer MUST fail. Results in an error if the `Amount` field is not specified. | ## NFTokenMint Flags Transactions of the NFTokenMint type support additional values in the [`Flags` field](../common-fields.md#flags-field), as follows: -| Flag Name | Hex Value | Decimal Value | Description | -|:--------------|:-------------|:--------------|:------------------------------| -| `tfBurnable` | `0x00000001` | 1 | Allow the issuer (or an entity authorized by the issuer) to destroy the minted `NFToken`. (The `NFToken`'s owner can _always_ do so.) | -| `tfOnlyXRP` | `0x00000002` | 2 | The minted `NFToken` can only be bought or sold for XRP. This can be desirable if the token has a transfer fee and the issuer does not want to receive fees in non-XRP currencies. | -| `tfTrustLine` | `0x00000004` | 4 | **DEPRECATED** Automatically create [trust lines](../../../../concepts/tokens/fungible-tokens/index.md) from the issuer to hold transfer fees received from transferring the minted `NFToken`. The [fixRemoveNFTokenAutoTrustLine amendment][] makes it invalid to set this flag. | -| `tfTransferable` | `0x00000008` | 8 | The minted `NFToken` can be transferred to others. If this flag is _not_ enabled, the token can still be transferred _from_ or _to_ the issuer, but a transfer to the issuer must be made based on a buy offer from the issuer and not a sell offer from the NFT holder. | -| `tfMutable` | `0x00000010` | 16 | The `URI` field of the minted `NFToken` can be updated using the `NFTokenModify` transaction. | - +| Flag Name | Hex Value | Decimal Value | Description | +| :--------------- | :----------- | :------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `tfBurnable` | `0x00000001` | 1 | Allow the issuer (or an entity authorized by the issuer) to destroy the minted `NFToken`. (The `NFToken`'s owner can _always_ do so.) | +| `tfOnlyXRP` | `0x00000002` | 2 | The minted `NFToken` can only be bought or sold for XRP. This can be desirable if the token has a transfer fee and the issuer does not want to receive fees in non-XRP currencies. | +| `tfTrustLine` | `0x00000004` | 4 | **DEPRECATED** Automatically create [trust lines](../../../../concepts/tokens/fungible-tokens/index.md) from the issuer to hold transfer fees received from transferring the minted `NFToken`. The [fixRemoveNFTokenAutoTrustLine amendment][] makes it invalid to set this flag. | +| `tfTransferable` | `0x00000008` | 8 | The minted `NFToken` can be transferred to others. If this flag is _not_ enabled, the token can still be transferred _from_ or _to_ the issuer, but a transfer to the issuer must be made based on a buy offer from the issuer and not a sell offer from the NFT holder. | +| `tfMutable` | `0x00000010` | 16 | The `URI` field of the minted `NFToken` can be updated using the `NFTokenModify` transaction. | ## Embedding additional information @@ -71,9 +69,9 @@ If you need to specify additional information during minting (for example, detai ## Issuing on behalf of another account -If you want to issue an NFT for another account there are two things you must do. Given that *Account A* is your account and *Account B* is the account for which you want to mint a NFToken: +If you want to issue an NFT for another account there are two things you must do. Given that _Account A_ is your account and _Account B_ is the account for which you want to mint a NFToken: -1. Set the `NFTokenMinter` account setting on *Account B* to be *Account A*. (This says that *Account B* trusts *Account A* to create NFTs on their behalf.) +1. Set the `NFTokenMinter` account setting on _Account B_ to be _Account A_. (This says that _Account B_ trusts _Account A_ to create NFTs on their behalf.) 2. When you mint the NFToken, set the `Issuer` field to Account B. ### Example of NFTokenMint with an issuer @@ -89,33 +87,31 @@ If you want to issue an NFT for another account there are two things you must do "Fee": "10", "URI": "697066733A2F2F62616679626569676479727A74357366703775646D37687537367568377932366E6634646675796C71616266336F636C67747179353566627A6469", "Memos": [ - { - "Memo": { - "MemoType": - "687474703A2F2F6578616D706C652E636F6D2F6D656D6F2F67656E65726963", - "MemoData": "72656E74" - } - } - ] + { + "Memo": { + "MemoType": "687474703A2F2F6578616D706C652E636F6D2F6D656D6F2F67656E65726963", + "MemoData": "72656E74" + } + } + ] } ``` - This transaction assumes that the issuer, `rNCFjv8Ek5oDrNiMJ3pw6eLLFtMjZLJnf2`, has set the `NFTokenMinter` field in its `AccountRoot` to `rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B`, thereby authorizing that account to mint tokens on its behalf. ## Error Cases Besides errors that can occur for all transactions, {% $frontmatter.seo.title %} transactions can result in the following [transaction result codes](../transaction-results/index.md): -| Error Code | Description | -|:------------------------------|:---------------------------------------------| -| `temDISABLED` | The [NonFungibleTokensV1 amendment][] is not enabled. | -| `temBAD_NFTOKEN_TRANSFER_FEE` | The `TransferFee` is not within the acceptable range. | -| `temINVALID_FLAG` | The `Flags` value has bits enabled that are not allowed or valid flags. If the [fixRemoveNFTokenAutoTrustLine amendment][] is enabled, the `tfTrustLine` flag causes this error. | -| `temMALFORMED` | The transaction was not validly specified. For example, the `URI` field is longer than 256 bytes. | -| `tecNO_ISSUER` | The `Issuer` refers to an account that does not exist in the ledger. | -| `tecNO_PERMISSION` | The account referenced by the `Issuer` field has not authorized this transaction's sender (using the `NFTokenMinter` setting) to mint on their behalf. | +| Error Code | Description | +| :---------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `temDISABLED` | The [NonFungibleTokensV1 amendment][] is not enabled. | +| `temBAD_NFTOKEN_TRANSFER_FEE` | The `TransferFee` is not within the acceptable range. | +| `temINVALID_FLAG` | The `Flags` value has bits enabled that are not allowed or valid flags. If the [fixRemoveNFTokenAutoTrustLine amendment][] is enabled, the `tfTrustLine` flag causes this error. | +| `temMALFORMED` | The transaction was not validly specified. For example, the `URI` field is longer than 256 bytes. | +| `tecNO_ISSUER` | The `Issuer` refers to an account that does not exist in the ledger. | +| `tecNO_PERMISSION` | The account referenced by the `Issuer` field has not authorized this transaction's sender (using the `NFTokenMinter` setting) to mint on their behalf. | | `tecINSUFFICIENT_RESERVE` | The owner would not meet the updated [reserve requirement](../../../../concepts/accounts/reserves.md) after minting the token. Note that new `NFToken`s only increase the owner's reserve if it requires a new [NFTokenPage object][], which can each hold up to 32 NFTs. | -| `tecMAX_SEQUENCE_REACHED` | The `Issuer`'s `MintedNFTokens` field is already at its maximum. This is only possible if 232-1 `NFToken`s have been minted in total by the issuer or on their behalf. | +| `tecMAX_SEQUENCE_REACHED` | The `Issuer`'s `MintedNFTokens` field is already at its maximum. This is only possible if 232-1 `NFToken`s have been minted in total by the issuer or on their behalf. | {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/protocol/transactions/types/nftokenmodify.md b/docs/references/protocol/transactions/types/nftokenmodify.md index afa56b5618..0685b64a48 100644 --- a/docs/references/protocol/transactions/types/nftokenmodify.md +++ b/docs/references/protocol/transactions/types/nftokenmodify.md @@ -1,10 +1,12 @@ --- seo: - description: Modify a dynamic NFT. + description: Modify a dynamic NFT. labels: - - Non-fungible Tokens, NFTs + - Non-fungible Tokens, NFTs --- + # NFTokenModify + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/NFTokenModify.cpp "Source") Change the `URI` field of a [dynamic NFT](../../../../concepts/tokens/nfts/dynamic-nfts.md) to update the supporting data for the NFT. Only the issuer, or their authorized minter, can modify an NFT, and only if it was minted with the **Mutable** flag enabled. @@ -13,7 +15,6 @@ Change the `URI` field of a [dynamic NFT](../../../../concepts/tokens/nfts/dynam ## Example {% $frontmatter.seo.title %} JSON - ```json { "TransactionType": "NFTokenModify", @@ -28,18 +29,18 @@ Change the `URI` field of a [dynamic NFT](../../../../concepts/tokens/nfts/dynam {% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%} -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:------------------|:---------------------|:------------------|:----------|:------------| -| `Owner` | String - [Address][] | AccountID | No | Address of the owner of the NFT. If the `Account` and `Owner` are the same address, omit this field. | -| `NFTokenID` | String - Hexadecimal | UInt256 | Yes | The unique identfier of the NFT to modify. | -| `URI` | String - Hexadecimal | Blob | No | Up to 256 bytes of arbitrary data. In JSON, this should be encoded as a string of hexadecimal. You can use the [`xrpl.convertStringToHex`](https://js.xrpl.org/modules.html#convertStringToHex) utility to convert a URI to its hexadecimal equivalent. This is intended to be a URI that points to the data or metadata associated with the NFT. The contents could decode to an HTTP or HTTPS URL, an IPFS URI, a magnet link, immediate data encoded as an [RFC 2379 "data" URL](https://datatracker.ietf.org/doc/html/rfc2397), or even an issuer-specific encoding. The URI is not checked for validity. If you do not specify a URI, the existing URI is deleted. | +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :---------- | :------------------- | :---------------- | :-------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Owner` | String - [Address][] | AccountID | No | Address of the owner of the NFT. If the `Account` and `Owner` are the same address, omit this field. | +| `NFTokenID` | String - Hexadecimal | UInt256 | Yes | The unique identfier of the NFT to modify. | +| `URI` | String - Hexadecimal | Blob | No | Up to 256 bytes of arbitrary data. In JSON, this should be encoded as a string of hexadecimal. You can use the [`xrpl.convertStringToHex`](https://js.xrpl.org/modules.html#convertStringToHex) utility to convert a URI to its hexadecimal equivalent. This is intended to be a URI that points to the data or metadata associated with the NFT. The contents could decode to an HTTP or HTTPS URL, an IPFS URI, a magnet link, immediate data encoded as an [RFC 2379 "data" URL](https://datatracker.ietf.org/doc/html/rfc2397), or even an issuer-specific encoding. The URI is not checked for validity. If you do not specify a URI, the existing URI is deleted. | ## Error Cases Besides errors that can occur for all transactions, {% $frontmatter.seo.title %} transactions can result in the following [transaction result codes](../transaction-results/index.md): -| Error Code | Description | -|:-------------------|:------------| -| `tecNO_PERMISSION` | The `tfMutable` flag wasn't enabled, so you can't update the `URI` field. You can also receive this error if the `Account` field isn't an issuer or authorized minter of the NFT. | +| Error Code | Description | +| :----------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `tecNO_PERMISSION` | The `tfMutable` flag wasn't enabled, so you can't update the `URI` field. You can also receive this error if the `Account` field isn't an issuer or authorized minter of the NFT. | {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/protocol/transactions/types/offercancel.md b/docs/references/protocol/transactions/types/offercancel.md index 154af11054..29fa5ff6b1 100644 --- a/docs/references/protocol/transactions/types/offercancel.md +++ b/docs/references/protocol/transactions/types/offercancel.md @@ -1,9 +1,10 @@ --- seo: - description: Cancel an offer to trade in the decentralized exchange. + description: Cancel an offer to trade in the decentralized exchange. labels: - - Decentralized Exchange + - Decentralized Exchange --- + # OfferCancel [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/CancelOffer.cpp "Source") @@ -14,13 +15,13 @@ Cancel an [offer](../../../../concepts/tokens/decentralized-exchange/offers.md) ```json { - "TransactionType": "OfferCancel", - "Account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "Fee": "12", - "Flags": 0, - "LastLedgerSequence": 7108629, - "OfferSequence": 6, - "Sequence": 7 + "TransactionType": "OfferCancel", + "Account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "Fee": "12", + "Flags": 0, + "LastLedgerSequence": 7108629, + "OfferSequence": 6, + "Sequence": 7 } ``` @@ -28,8 +29,8 @@ Cancel an [offer](../../../../concepts/tokens/decentralized-exchange/offers.md) {% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%} -| Field | JSON Type | [Internal Type][] | Description | -|:----------------|:----------|:------------------|:-----------------------------| +| Field | JSON Type | [Internal Type][] | Description | +| :-------------- | :-------- | :---------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OfferSequence` | Number | UInt32 | The sequence number (or [Ticket](../../../../concepts/accounts/tickets.md) number) of a previous OfferCreate transaction. If specified, cancel any offer object in the ledger that was created by that transaction. It is not considered an error if the offer specified does not exist. | {% admonition type="success" name="Tip" %}To remove an old offer and replace it with a new one, you can use an [OfferCreate transaction][] with an `OfferSequence` parameter, instead of using OfferCancel and another OfferCreate.{% /admonition %} diff --git a/docs/references/protocol/transactions/types/offercreate.md b/docs/references/protocol/transactions/types/offercreate.md index 04a559f5cd..7381a22d94 100644 --- a/docs/references/protocol/transactions/types/offercreate.md +++ b/docs/references/protocol/transactions/types/offercreate.md @@ -1,10 +1,12 @@ --- seo: - description: Offer to trade currencies in the decentralized exchange; create a limit order. + description: Offer to trade currencies in the decentralized exchange; create a limit order. labels: - - Decentralized Exchange + - Decentralized Exchange --- + # OfferCreate + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/CreateOffer.cpp "Source") Place an [offer](../../../../concepts/tokens/decentralized-exchange/offers.md) to trade in the [decentralized exchange](../../../../concepts/tokens/decentralized-exchange/index.md). @@ -13,18 +15,18 @@ Place an [offer](../../../../concepts/tokens/decentralized-exchange/offers.md) t ```json { - "TransactionType": "OfferCreate", - "Account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "Fee": "12", - "Flags": 0, - "LastLedgerSequence": 7108682, - "Sequence": 8, - "TakerGets": "6000000", - "TakerPays": { - "currency": "GKO", - "issuer": "ruazs5h1qEsqpke88pcqnaseXdm6od2xc", - "value": "2" - } + "TransactionType": "OfferCreate", + "Account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "Fee": "12", + "Flags": 0, + "LastLedgerSequence": 7108682, + "Sequence": 8, + "TakerGets": "6000000", + "TakerPays": { + "currency": "GKO", + "issuer": "ruazs5h1qEsqpke88pcqnaseXdm6od2xc", + "value": "2" + } } ``` @@ -32,49 +34,47 @@ Place an [offer](../../../../concepts/tokens/decentralized-exchange/offers.md) t {% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%} - -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:-----------------|:--------------------|:------------------|:----------|-------------| -| `DomainID` | String - [Hash][] | UInt256 | No | The ledger entry ID of a permissioned domain. If provided, restrict this offer to the [permissioned DEX](../../../../concepts/tokens/decentralized-exchange/permissioned-dexes.md) of that domain. {% amendment-disclaimer name="PermissionedDEX" /%} | -| [`Expiration`](../../../../concepts/tokens/decentralized-exchange/offers.md#offer-expiration) | Number | UInt32 | No | Time after which the Offer is no longer active, in [seconds since the Ripple Epoch][]. | -| `OfferSequence` | Number | UInt32 | No | An Offer to delete first, specified in the same way as [OfferCancel][]. | -| `TakerGets` | [Currency Amount][] | Amount | Yes | The amount and type of currency being sold. | -| `TakerPays` | [Currency Amount][] | Amount | Yes | The amount and type of currency being bought. | +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :-------------------------------------------------------------------------------------------- | :------------------ | :---------------- | :-------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `DomainID` | String - [Hash][] | UInt256 | No | The ledger entry ID of a permissioned domain. If provided, restrict this offer to the [permissioned DEX](../../../../concepts/tokens/decentralized-exchange/permissioned-dexes.md) of that domain. {% amendment-disclaimer name="PermissionedDEX" /%} | +| [`Expiration`](../../../../concepts/tokens/decentralized-exchange/offers.md#offer-expiration) | Number | UInt32 | No | Time after which the Offer is no longer active, in [seconds since the Ripple Epoch][]. | +| `OfferSequence` | Number | UInt32 | No | An Offer to delete first, specified in the same way as [OfferCancel][]. | +| `TakerGets` | [Currency Amount][] | Amount | Yes | The amount and type of currency being sold. | +| `TakerPays` | [Currency Amount][] | Amount | Yes | The amount and type of currency being bought. | ## OfferCreate Flags Transactions of the OfferCreate type support additional values in the [`Flags` field](../common-fields.md#flags-field), as follows: -| Flag Name | Hex Value | Decimal Value | Description | -|:----------------------|:-------------|:--------------|:----------------------| -| `tfPassive` | `0x00010000` | 65536 | Do not consume offers that exactly match this one, only offers that cross it. This makes it possible to set up offers in the ledger that peg the exchange rate at a specific value. | -| `tfImmediateOrCancel` | `0x00020000` | 131072 | Treat the offer as an [Immediate or Cancel order](http://en.wikipedia.org/wiki/Immediate_or_cancel) and do not place an [Offer entry][] into the order books. The transaction trades as much as it can by consuming existing offers when it's processed. | +| Flag Name | Hex Value | Decimal Value | Description | +| :-------------------- | :----------- | :------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `tfPassive` | `0x00010000` | 65536 | Do not consume offers that exactly match this one, only offers that cross it. This makes it possible to set up offers in the ledger that peg the exchange rate at a specific value. | +| `tfImmediateOrCancel` | `0x00020000` | 131072 | Treat the offer as an [Immediate or Cancel order](http://en.wikipedia.org/wiki/Immediate_or_cancel) and do not place an [Offer entry][] into the order books. The transaction trades as much as it can by consuming existing offers when it's processed. | | `tfFillOrKill` | `0x00040000` | 262144 | Treat the offer as a [Fill or Kill order](http://en.wikipedia.org/wiki/Fill_or_kill), do not place an [Offer entry][] into the order books, and cancel the offer if it cannot be fully filled at the time of execution. By default, this means that the owner must receive the full `TakerPays` amount; if the `tfSell` flag is enabled, the owner must be able to spend the entire `TakerGets` amount instead. | -| `tfSell` | `0x00080000` | 524288 | Exchange the entire `TakerGets` amount, even if it means obtaining more than the `TakerPays` amount in exchange. | -| `tfHybrid` | `0x00100000` | 1048576 | Make this a hybrid offer that can use both a permissioned DEX and the open DEX. The `DomainID` field must be provided when using this flag. {% amendment-disclaimer name="PermissionedDEX" /%} | - +| `tfSell` | `0x00080000` | 524288 | Exchange the entire `TakerGets` amount, even if it means obtaining more than the `TakerPays` amount in exchange. | +| `tfHybrid` | `0x00100000` | 1048576 | Make this a hybrid offer that can use both a permissioned DEX and the open DEX. The `DomainID` field must be provided when using this flag. {% amendment-disclaimer name="PermissionedDEX" /%} | ## Error Cases -| Error Code | Description | -|:-------------------------|:--------------------------------------------------| -| `tecDIR_FULL` | The owner owns too many items in the ledger, or the order book contains too many Offers at the same exchange rate already.
    This error is effectively impossible to receive if {% amendment-disclaimer name="fixDirectoryLimit" compact=true /%} is enabled. | -| `tecEXPIRED` | The transaction specifies an `Expiration` time that has already passed. | -| `tecFROZEN` | The transaction involves a token on a [frozen](../../../../concepts/tokens/fungible-tokens/freezes.md) trust line (including local and global freezes). The `TakerPays` (buy amount) token has been deep-frozen by the issuer. | -| `tecINSUF_RESERVE_OFFER` | The owner does not have enough XRP to meet the reserve requirement of adding a new offer ledger entry, and the transaction did not convert any currency. (If the transaction successfully traded any amount, the transaction succeeds with the result code `tesSUCCESS`, but does not create an offer ledger entry for the remainder.) | +| Error Code | Description | +| :----------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `tecDIR_FULL` | The owner owns too many items in the ledger, or the order book contains too many Offers at the same exchange rate already.
    This error is effectively impossible to receive if {% amendment-disclaimer name="fixDirectoryLimit" compact=true /%} is enabled. | +| `tecEXPIRED` | The transaction specifies an `Expiration` time that has already passed. | +| `tecFROZEN` | The transaction involves a token on a [frozen](../../../../concepts/tokens/fungible-tokens/freezes.md) trust line (including local and global freezes). The `TakerPays` (buy amount) token has been deep-frozen by the issuer. | +| `tecINSUF_RESERVE_OFFER` | The owner does not have enough XRP to meet the reserve requirement of adding a new offer ledger entry, and the transaction did not convert any currency. (If the transaction successfully traded any amount, the transaction succeeds with the result code `tesSUCCESS`, but does not create an offer ledger entry for the remainder.) | | `tecKILLED` | The transaction specifies `tfFillOrKill`, and the full amount cannot be filled. If the _[ImmediateOfferKilled amendment][]_ is enabled, this result code also occurs when the transaction specifies `tfImmediateOrCancel` and executes without moving funds (previously, an Immediate or Cancel offer would return `tesSUCCESS` even if no funds were moved). | -| `tecNO_AUTH` | The transaction involves a token whose issuer uses [Authorized Trust Lines](../../../../concepts/tokens/fungible-tokens/authorized-trust-lines.md) and the the trust line that would receive the tokens exists but has not been authorized. | -| `tecNO_ISSUER` | The transaction specifies a token whose `issuer` value is not a funded account in the ledger. | -| `tecNO_LINE` | The transaction involves a token whose issuer uses [Authorized Trust Lines](../../../../concepts/tokens/fungible-tokens/authorized-trust-lines.md) and the necessary trust line does not exist. | -| `tecNO_PERMISSION` | The transaction uses a `DomainID` but the sender is not a member of that domain. {% amendment-disclaimer name="PermissionedDEX" /%} | -| `tecUNFUNDED_OFFER` | The owner does not hold a positive amount of the `TakerGets` currency. (Exception: if `TakerGets` specifies a token that the owner issues, the transaction can succeed.) | -| `temBAD_CURRENCY` | The transaction specifies a fungible token incorrectly, such as a fungible token with the currency code "XRP". | -| `temBAD_EXPIRATION` | The transaction contains an `Expiration` field that is not validly formatted. | -| `temBAD_ISSUER` | The transaction specifies a token with an invalid `issuer` value. | -| `temBAD_OFFER` | The offer tries to trade XRP for XRP, or tries to trade an invalid or negative amount of a token. | -| `temBAD_SEQUENCE` | The transaction contains an `OfferSequence` that is not validly formatted, or is higher than the transaction's own `Sequence` number. | -| `temINVALID_FLAG` | The transaction specifies an invalid flag combination, such as both `tfImmediateOrCancel` and `tfFillOrKill`, or the transaction uses `tfHybrid` but omits the `DomainID` field. | -| `temREDUNDANT` | The transaction would trade a token for the same token (same issuer and currency code). | +| `tecNO_AUTH` | The transaction involves a token whose issuer uses [Authorized Trust Lines](../../../../concepts/tokens/fungible-tokens/authorized-trust-lines.md) and the the trust line that would receive the tokens exists but has not been authorized. | +| `tecNO_ISSUER` | The transaction specifies a token whose `issuer` value is not a funded account in the ledger. | +| `tecNO_LINE` | The transaction involves a token whose issuer uses [Authorized Trust Lines](../../../../concepts/tokens/fungible-tokens/authorized-trust-lines.md) and the necessary trust line does not exist. | +| `tecNO_PERMISSION` | The transaction uses a `DomainID` but the sender is not a member of that domain. {% amendment-disclaimer name="PermissionedDEX" /%} | +| `tecUNFUNDED_OFFER` | The owner does not hold a positive amount of the `TakerGets` currency. (Exception: if `TakerGets` specifies a token that the owner issues, the transaction can succeed.) | +| `temBAD_CURRENCY` | The transaction specifies a fungible token incorrectly, such as a fungible token with the currency code "XRP". | +| `temBAD_EXPIRATION` | The transaction contains an `Expiration` field that is not validly formatted. | +| `temBAD_ISSUER` | The transaction specifies a token with an invalid `issuer` value. | +| `temBAD_OFFER` | The offer tries to trade XRP for XRP, or tries to trade an invalid or negative amount of a token. | +| `temBAD_SEQUENCE` | The transaction contains an `OfferSequence` that is not validly formatted, or is higher than the transaction's own `Sequence` number. | +| `temINVALID_FLAG` | The transaction specifies an invalid flag combination, such as both `tfImmediateOrCancel` and `tfFillOrKill`, or the transaction uses `tfHybrid` but omits the `DomainID` field. | +| `temREDUNDANT` | The transaction would trade a token for the same token (same issuer and currency code). | ## See Also diff --git a/docs/references/protocol/transactions/types/oracledelete.md b/docs/references/protocol/transactions/types/oracledelete.md index 93f659c522..612a588f26 100644 --- a/docs/references/protocol/transactions/types/oracledelete.md +++ b/docs/references/protocol/transactions/types/oracledelete.md @@ -1,17 +1,18 @@ --- seo: - description: Delete a price oracle. + description: Delete a price oracle. labels: - - Oracle + - Oracle --- + # OracleDelete + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/DeleteOracle.cpp "Source") Delete a [price oracle](../../../../concepts/decentralized-storage/price-oracles.md). Only the owner of the price oracle can send this transaction. {% amendment-disclaimer name="PriceOracle" /%} - ## Example OracleDelete JSON ```json @@ -24,17 +25,16 @@ Delete a [price oracle](../../../../concepts/decentralized-storage/price-oracles {% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%} -| Field | JSON Type | Internal Type | Required? | Description | -|--------------------|-----------|---------------|-----------|-------------| +| Field | JSON Type | Internal Type | Required? | Description | +| ------------------ | --------- | ------------- | --------- | --------------------------------------------------------------------------- | | `OracleDocumentID` | Number | UInt32 | Yes | The identifying number of the price oracle, which must be unique per owner. | - ## Error Cases Besides errors that can occur for all transactions, `OracleDelete` transactions can result in the following transaction result codes. -| Error Code | Description | -|---------------|-------------| +| Error Code | Description | +| ------------- | ---------------------------------- | | `tecNO_ENTRY` | The `Oracle` object doesn't exist. | ## See Also diff --git a/docs/references/protocol/transactions/types/oracleset.md b/docs/references/protocol/transactions/types/oracleset.md index 7521a4f23a..5b8d76b03d 100644 --- a/docs/references/protocol/transactions/types/oracleset.md +++ b/docs/references/protocol/transactions/types/oracleset.md @@ -1,17 +1,18 @@ --- seo: - description: Create or update a price oracle. + description: Create or update a price oracle. labels: - - Oracle + - Oracle --- + # OracleSet + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/SetOracle.cpp "Source") Create or update a [price oracle](../../../../concepts/decentralized-storage/price-oracles.md). Only the owner of an existing price oracle can update it. {% amendment-disclaimer name="PriceOracle" /%} - ## Example OracleSet JSON ```json @@ -90,24 +91,23 @@ Create or update a [price oracle](../../../../concepts/decentralized-storage/pri {% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%} -| Field | JSON Type | Internal Type | Required? | Description | -|--------------------|-----------|---------------|-----------|-------------| -| `OracleDocumentID` | Number | UInt32 | Yes | The identifying number of the price oracle, which must be unique per owner. | +| Field | JSON Type | Internal Type | Required? | Description | +| ------------------ | --------- | ------------- | --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `OracleDocumentID` | Number | UInt32 | Yes | The identifying number of the price oracle, which must be unique per owner. | | `Provider` | String | Blob | Variable | An arbitrary value that identifies an oracle provider, such as Chainlink, Band, or DIA. This field is a string, up to 256 ASCII hex encoded characters (0x20-0x7E). This field is required when creating a new price oracle, but is optional for updates. | -| `URI` | String | Blob | No | An optional Universal Resource Identifier to reference price data off-chain. This field is limited to 256 bytes. | -| `LastUpdateTime` | Number | UInt32 | Yes | The time the data was last updated, in seconds since the [UNIX Epoch](https://en.wikipedia.org/wiki/Unix_time). The value must be within 300 seconds (5 minutes) of the ledger's close time. | -| `AssetClass` | String | Blob | Variable | Describes the type of asset, such as "currency", "commodity", or "index". This field is a string, up to 16 ASCII hex encoded characters (0x20-0x7E). This field is required when creating a new `Oracle` ledger entry, but is optional for updates. | -| `PriceDataSeries` | Array | Array | Yes | An array of up to 10 `PriceData` objects, each representing the price information for a token pair. More than five `PriceData` objects require two owner reserves. | - +| `URI` | String | Blob | No | An optional Universal Resource Identifier to reference price data off-chain. This field is limited to 256 bytes. | +| `LastUpdateTime` | Number | UInt32 | Yes | The time the data was last updated, in seconds since the [UNIX Epoch](https://en.wikipedia.org/wiki/Unix_time). The value must be within 300 seconds (5 minutes) of the ledger's close time. | +| `AssetClass` | String | Blob | Variable | Describes the type of asset, such as "currency", "commodity", or "index". This field is a string, up to 16 ASCII hex encoded characters (0x20-0x7E). This field is required when creating a new `Oracle` ledger entry, but is optional for updates. | +| `PriceDataSeries` | Array | Array | Yes | An array of up to 10 `PriceData` objects, each representing the price information for a token pair. More than five `PriceData` objects require two owner reserves. | ### PriceData Fields -| Field | JSON Type | Internal Type | Required? | Description | -|---------------------|-----------|---------------|-----------|-------------| -| `BaseAsset` | String | Currency | Yes | The primary asset in a trading pair. Any valid identifier, such as a stock symbol, bond CUSIP, or currency code is allowed. For example, in the BTC/USD pair, BTC is the base asset; in 912810RR9/BTC, 912810RR9 is the base asset. | -| `QuoteAsset` | String | Currency | Yes | The quote asset in a trading pair. The quote asset denotes the price of one unit of the base asset. For example, in the BTC/USD pair, BTC is the base asset; in 912810RR9/BTC, 912810RR9 is the base asset. | -| `AssetPrice` | String | UInt64 | No | The asset price after applying the `Scale` precision level. It's not included if the last update transaction didn't include the `BaseAsset`/`QuoteAsset` pair. It's recommended you provide this value as a hexadecimal, but [client libraries](https://xrpl.org/docs/references#client-libraries) will accept decimal numbers and convert to hexadecimal strings. | -| `Scale` | Number | UInt8 | No | The scaling factor to apply to an asset price. For example, if `Scale` is 6 and original price is 0.155, then the scaled price is 155000. Valid scale ranges are 0-10. It's not included if the last update transaction didn't include the `BaseAsset`/`QuoteAsset` pair.| +| Field | JSON Type | Internal Type | Required? | Description | +| ------------ | --------- | ------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `BaseAsset` | String | Currency | Yes | The primary asset in a trading pair. Any valid identifier, such as a stock symbol, bond CUSIP, or currency code is allowed. For example, in the BTC/USD pair, BTC is the base asset; in 912810RR9/BTC, 912810RR9 is the base asset. | +| `QuoteAsset` | String | Currency | Yes | The quote asset in a trading pair. The quote asset denotes the price of one unit of the base asset. For example, in the BTC/USD pair, BTC is the base asset; in 912810RR9/BTC, 912810RR9 is the base asset. | +| `AssetPrice` | String | UInt64 | No | The asset price after applying the `Scale` precision level. It's not included if the last update transaction didn't include the `BaseAsset`/`QuoteAsset` pair. It's recommended you provide this value as a hexadecimal, but [client libraries](https://xrpl.org/docs/references#client-libraries) will accept decimal numbers and convert to hexadecimal strings. | +| `Scale` | Number | UInt8 | No | The scaling factor to apply to an asset price. For example, if `Scale` is 6 and original price is 0.155, then the scaled price is 155000. Valid scale ranges are 0-10. It's not included if the last update transaction didn't include the `BaseAsset`/`QuoteAsset` pair. | `PriceData` is created or updated, following these rules: @@ -127,19 +127,18 @@ This design choice saves space by having a single `LastUpdateTime` for all entri The order of token pairs in the transaction isn't important because each token pair uniquely identifies the location of the `PriceData` object in the `PriceDataSeries`. {% /admonition %} - ## Error Cases Besides errors that can occur for all transactions, `OracleSet` transactions can result in the following transaction result codes. -| Error Code | Description | -|---------------------------|-------------| -| `temARRAY_EMPTY` | The `PriceDataSeries` has no `PriceData` objects. | -| `tecARRAY_TOO_LARGE` | The `PriceDataSeries` exceeds the ten `PriceData` objects limit. | +| Error Code | Description | +| ------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `temARRAY_EMPTY` | The `PriceDataSeries` has no `PriceData` objects. | +| `tecARRAY_TOO_LARGE` | The `PriceDataSeries` exceeds the ten `PriceData` objects limit. | | `tecINVALID_UPDATE_TIME` | The `LastUpdateTime` is invalid. This can occur when the time is more than 300 seconds before or after the ledger close time, or when updating an existing oracle, the new `LastUpdateTime` is not greater than the previous value. | -| `tecTOKEN_PAIR_NOT_FOUND` | The token pair you're trying to delete doesn't exist in the `Oracle` object. | -| `tecARRAY_EMPTY` | The `PriceDataSeries` has no `PriceData` objects. | -| `temARRAY_TOO_LARGE` | The `PriceDataSeries` exceeds the ten `PriceData` objects limit. | +| `tecTOKEN_PAIR_NOT_FOUND` | The token pair you're trying to delete doesn't exist in the `Oracle` object. | +| `tecARRAY_EMPTY` | The `PriceDataSeries` has no `PriceData` objects. | +| `temARRAY_TOO_LARGE` | The `PriceDataSeries` exceeds the ten `PriceData` objects limit. | ## See Also diff --git a/docs/references/protocol/transactions/types/payment.md b/docs/references/protocol/transactions/types/payment.md index 67845da4fe..56fb84d79c 100644 --- a/docs/references/protocol/transactions/types/payment.md +++ b/docs/references/protocol/transactions/types/payment.md @@ -1,13 +1,15 @@ --- seo: - description: Send funds to another account, convert between currencies, or create a new account by sending it XRP. + description: Send funds to another account, convert between currencies, or create a new account by sending it XRP. labels: - - Payments - - XRP - - Cross-Currency - - Tokens + - Payments + - XRP + - Cross-Currency + - Tokens --- + # Payment + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/Payment.cpp "Source") Send value to an account. (Depending on the path taken, this can involve exchanges of several types of funds, all of which occur atomically.) This transaction type can be used for several [types of payments](#types-of-payments). @@ -18,17 +20,17 @@ Payments are also the only way to [create accounts](#creating-accounts). ```json { - "TransactionType" : "Payment", - "Account" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "Destination" : "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "DeliverMax" : { - "currency" : "USD", - "value" : "1", - "issuer" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn" + "TransactionType": "Payment", + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "DeliverMax": { + "currency": "USD", + "value": "1", + "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn" }, "Fee": "12", "Flags": 2147483648, - "Sequence": 2, + "Sequence": 2 } ``` @@ -36,55 +38,51 @@ Payments are also the only way to [create accounts](#creating-accounts). {% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%} - -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:-----------------|:---------------------|:------------------|:----------|:------------| -| `Amount` | [Currency Amount][] | Amount | API v1: Yes | Alias to `DeliverMax`. | -| `CredentialIDs` | Array of Strings | Vector256 | No | Set of Credentials to authorize a deposit made by this transaction. Each member of the array must be the ledger entry ID of a Credential entry in the ledger. {% amendment-disclaimer name="Credentials" /%} | -| `DeliverMax` | [Currency Amount][] | Amount | Yes | [API v2][]: The maximum amount of currency to deliver. [Partial payments](#partial-payments) can deliver less than this amount and still succeed; other payments fail unless they deliver the exact amount. {% badge href="https://github.com/XRPLF/rippled/releases/tag/2.0.0" %}New in: rippled 2.0.0{% /badge %} | -| `DeliverMin` | [Currency Amount][] | Amount | No | Minimum amount of destination currency this transaction should deliver. Only valid if this is a [partial payment](#partial-payments). | -| `Destination` | String - [Address][] | AccountID | Yes | The account receiving the payment. | -| `DestinationTag` | Number | UInt32 | No | Arbitrary tag that identifies the reason for the payment to the destination, or a hosted recipient to pay. | -| `DomainID` | String - [Hash][] | UInt256 | No | The ledger entry ID of a permissioned domain. If this is a cross-currency payment, only use the corresponding [permissioned DEX](../../../../concepts/tokens/decentralized-exchange/permissioned-dexes.md) to convert currency. Both the sender and the recipient must have valid credentials that grant access to the specified domain. This field has no effect if the payment is not cross-currency. {% amendment-disclaimer name="PermissionedDEX" %/} | -| `InvoiceID` | String - Hexadecimal | UInt256 | No | Arbitrary 256-bit value representing a specific reason or identifier for this payment. | -| `Paths` | Array of path arrays | PathSet | No | _(Auto-fillable)_ Array of [payment paths](../../../../concepts/tokens/fungible-tokens/paths.md) to be used for this transaction. Must be omitted for XRP-to-XRP transactions. | -| `SendMax` | [Currency Amount][] | Amount | No | Highest amount of source currency this transaction is allowed to cost, including [transfer fees](../../../../concepts/tokens/fungible-tokens/transfer-fees.md), exchange rates, and [slippage](http://en.wikipedia.org/wiki/Slippage_%28finance%29). Does not include the [XRP destroyed as a cost for submitting the transaction](../../../../concepts/transactions/transaction-cost.md). Must be supplied for cross-currency/cross-issue payments. Must be omitted for XRP-to-XRP payments. | +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :--------------- | :------------------- | :---------------- | :---------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Amount` | [Currency Amount][] | Amount | API v1: Yes | Alias to `DeliverMax`. | +| `CredentialIDs` | Array of Strings | Vector256 | No | Set of Credentials to authorize a deposit made by this transaction. Each member of the array must be the ledger entry ID of a Credential entry in the ledger. {% amendment-disclaimer name="Credentials" /%} | +| `DeliverMax` | [Currency Amount][] | Amount | Yes | [API v2][]: The maximum amount of currency to deliver. [Partial payments](#partial-payments) can deliver less than this amount and still succeed; other payments fail unless they deliver the exact amount. {% badge href="https://github.com/XRPLF/rippled/releases/tag/2.0.0" %}New in: rippled 2.0.0{% /badge %} | +| `DeliverMin` | [Currency Amount][] | Amount | No | Minimum amount of destination currency this transaction should deliver. Only valid if this is a [partial payment](#partial-payments). | +| `Destination` | String - [Address][] | AccountID | Yes | The account receiving the payment. | +| `DestinationTag` | Number | UInt32 | No | Arbitrary tag that identifies the reason for the payment to the destination, or a hosted recipient to pay. | +| `DomainID` | String - [Hash][] | UInt256 | No | The ledger entry ID of a permissioned domain. If this is a cross-currency payment, only use the corresponding [permissioned DEX](../../../../concepts/tokens/decentralized-exchange/permissioned-dexes.md) to convert currency. Both the sender and the recipient must have valid credentials that grant access to the specified domain. This field has no effect if the payment is not cross-currency. {% amendment-disclaimer name="PermissionedDEX" %/} | +| `InvoiceID` | String - Hexadecimal | UInt256 | No | Arbitrary 256-bit value representing a specific reason or identifier for this payment. | +| `Paths` | Array of path arrays | PathSet | No | _(Auto-fillable)_ Array of [payment paths](../../../../concepts/tokens/fungible-tokens/paths.md) to be used for this transaction. Must be omitted for XRP-to-XRP transactions. | +| `SendMax` | [Currency Amount][] | Amount | No | Highest amount of source currency this transaction is allowed to cost, including [transfer fees](../../../../concepts/tokens/fungible-tokens/transfer-fees.md), exchange rates, and [slippage](http://en.wikipedia.org/wiki/Slippage_%28finance%29). Does not include the [XRP destroyed as a cost for submitting the transaction](../../../../concepts/transactions/transaction-cost.md). Must be supplied for cross-currency/cross-issue payments. Must be omitted for XRP-to-XRP payments. | When specifying a transaction, you must specify either `Amount` or `DeliverMax`, but not both. When displaying transactions in JSON, API v1 always uses `Amount` and API v2 (or later) always uses `DeliverMax`. - ## Types of Payments The `Payment` transaction type functions differently depending on how you fill in the `Payment` fields: -| Payment type | `Amount` | `SendMax` | `Paths` | `Account` = `Destination`? | Description | -|:-------------|:----------|:-----------|:----------|:---------------------------|:--| -| [Direct XRP Payment][] | String (XRP) | Omitted | Omitted | No | Transfers XRP directly from one account to another, using one transaction. Always delivers the exact amount. No fee applies other than the basic [transaction cost](../../../../concepts/transactions/transaction-cost.md). | -| [Creating or redeeming tokens][] | Object | Object (optional) | Optional | No | Increases or decreases the amount of a non-XRP currency or asset tracked in the XRP Ledger. [Transfer fees](../../../../concepts/tokens/fungible-tokens/transfer-fees.md) and [freezes](../../../../concepts/tokens/fungible-tokens/freezes.md) do not apply when sending and redeeming directly. | -| [Cross-currency Payment][] | Object (non-XRP) / String (XRP) | Object (non-XRP) / String (XRP) | Usually required | No | Send tokens from one holder to another. The `Amount` or `SendMax` can be XRP or tokens, but can't both be XRP. These payments [ripple through](../../../../concepts/tokens/fungible-tokens/rippling.md) the issuer and can take longer [paths](../../../../concepts/tokens/fungible-tokens/paths.md) through several intermediaries if the transaction specifies a path set. [Transfer fees](../../../../concepts/tokens/fungible-tokens/transfer-fees.md) set by the issuer(s) apply to this type of transaction. These transactions consume offers in the [decentralized exchange](../../../../concepts/tokens/decentralized-exchange/index.md) to connect different currencies, or currencies with the same currency code and different issuers. | -| [Partial payment][] | Object (non-XRP) / String (XRP) | Object (non-XRP) / String (XRP) | Usually required | No | Sends _up to_ a specific amount of any currency. Uses the [`tfPartialPayment` flag](#payment-flags). May include a `DeliverMin` amount specifying the minimum that the transaction must deliver to be successful; if the transaction does not specify `DeliverMin`, it can succeed by delivering _any positive amount_. | -| Currency conversion | Object (non-XRP) / String (XRP) | Object (non-XRP) / String (XRP) | Required | Yes | Consumes offers in the [decentralized exchange](../../../../concepts/tokens/decentralized-exchange/index.md) to convert one currency to another, possibly taking [arbitrage](https://en.wikipedia.org/wiki/Arbitrage) opportunities. The `Amount` and `SendMax` cannot both be XRP. Also called a _circular payment_ because it delivers money to the sender. This type of transaction may be classified as an "exchange" and not a "payment". | -| MPT Payment | Object | Omitted | Omitted | No | Send MPTs to a holder. See [MPT Payments](#mpt-payments). | +| Payment type | `Amount` | `SendMax` | `Paths` | `Account` = `Destination`? | Description | +| :------------------------------- | :------------------------------ | :------------------------------ | :--------------- | :------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [Direct XRP Payment][] | String (XRP) | Omitted | Omitted | No | Transfers XRP directly from one account to another, using one transaction. Always delivers the exact amount. No fee applies other than the basic [transaction cost](../../../../concepts/transactions/transaction-cost.md). | +| [Creating or redeeming tokens][] | Object | Object (optional) | Optional | No | Increases or decreases the amount of a non-XRP currency or asset tracked in the XRP Ledger. [Transfer fees](../../../../concepts/tokens/fungible-tokens/transfer-fees.md) and [freezes](../../../../concepts/tokens/fungible-tokens/freezes.md) do not apply when sending and redeeming directly. | +| [Cross-currency Payment][] | Object (non-XRP) / String (XRP) | Object (non-XRP) / String (XRP) | Usually required | No | Send tokens from one holder to another. The `Amount` or `SendMax` can be XRP or tokens, but can't both be XRP. These payments [ripple through](../../../../concepts/tokens/fungible-tokens/rippling.md) the issuer and can take longer [paths](../../../../concepts/tokens/fungible-tokens/paths.md) through several intermediaries if the transaction specifies a path set. [Transfer fees](../../../../concepts/tokens/fungible-tokens/transfer-fees.md) set by the issuer(s) apply to this type of transaction. These transactions consume offers in the [decentralized exchange](../../../../concepts/tokens/decentralized-exchange/index.md) to connect different currencies, or currencies with the same currency code and different issuers. | +| [Partial payment][] | Object (non-XRP) / String (XRP) | Object (non-XRP) / String (XRP) | Usually required | No | Sends _up to_ a specific amount of any currency. Uses the [`tfPartialPayment` flag](#payment-flags). May include a `DeliverMin` amount specifying the minimum that the transaction must deliver to be successful; if the transaction does not specify `DeliverMin`, it can succeed by delivering _any positive amount_. | +| Currency conversion | Object (non-XRP) / String (XRP) | Object (non-XRP) / String (XRP) | Required | Yes | Consumes offers in the [decentralized exchange](../../../../concepts/tokens/decentralized-exchange/index.md) to convert one currency to another, possibly taking [arbitrage](https://en.wikipedia.org/wiki/Arbitrage) opportunities. The `Amount` and `SendMax` cannot both be XRP. Also called a _circular payment_ because it delivers money to the sender. This type of transaction may be classified as an "exchange" and not a "payment". | +| MPT Payment | Object | Omitted | Omitted | No | Send MPTs to a holder. See [MPT Payments](#mpt-payments). | [Direct XRP Payment]: ../../../../concepts/payment-types/direct-xrp-payments.md [Creating or redeeming tokens]: ../../../../concepts/tokens/index.md [Cross-currency Payment]: ../../../../concepts/payment-types/cross-currency-payments.md [Partial payment]: ../../../../concepts/payment-types/partial-payments.md - ## Special issuer Values for SendMax and Amount Most of the time, the `issuer` field of a non-XRP [Currency Amount][] indicates the issuer of a token. However, when describing payments, there are special rules for the `issuer` field in the `DeliverMax` (or `Amount`) and `SendMax` fields of a payment. -* There is only ever one balance between two addresses for the same currency code. This means that, sometimes, the `issuer` field of an amount actually refers to a counterparty, instead of the address that issued the token. -* When the `issuer` field of the destination `DeliverMax` field matches the `Destination` address, it is treated as a special case meaning "any issuer that the destination accepts." This includes all addresses to which the destination has trust lines with a positive limit, as well as tokens issued by the destination itself. -* When the `issuer` field of the `SendMax` field matches the source account's address, it is treated as a special case meaning "any issuer that the source can use." The payment can send tokens the source account already holds, or issue new tokens to others who have trust lines with the source account. +- There is only ever one balance between two addresses for the same currency code. This means that, sometimes, the `issuer` field of an amount actually refers to a counterparty, instead of the address that issued the token. +- When the `issuer` field of the destination `DeliverMax` field matches the `Destination` address, it is treated as a special case meaning "any issuer that the destination accepts." This includes all addresses to which the destination has trust lines with a positive limit, as well as tokens issued by the destination itself. +- When the `issuer` field of the `SendMax` field matches the source account's address, it is treated as a special case meaning "any issuer that the source can use." The payment can send tokens the source account already holds, or issue new tokens to others who have trust lines with the source account. In all of these cases, the currency code must still match exactly. - ## Creating Accounts The Payment transaction type can create new accounts in the XRP Ledger by sending enough XRP to an unfunded address. Other transactions to unfunded addresses always fail. @@ -97,8 +95,8 @@ If present, the `Paths` field must contain a _path set_ - an array of path array You must omit the `Paths` field for direct payments, including: -* An XRP-to-XRP transfer. -* A direct transfer on a trust line that connects the sender and receiver. +- An XRP-to-XRP transfer. +- A direct transfer on a trust line that connects the sender and receiver. If the `Paths` field is provided, the server decides at transaction processing time which paths to use, from the provided set plus a _default path_ (the most direct way possible to connect the specified accounts). This decision is deterministic and attempts to minimize costs, but it is not guaranteed to be perfect. @@ -110,11 +108,11 @@ For more information, see [Paths](../../../../concepts/tokens/fungible-tokens/pa Transactions of the Payment type support additional values in the [`Flags` field](../common-fields.md#flags-field), as follows: -| Flag Name | Hex Value | Decimal Value | Description | -|:-------------------|:-------------|:--------------|:-----------------------------| -| `tfNoRippleDirect` | `0x00010000` | 65536 | Do not use the default path; only use paths included in the `Paths` field. This is intended to force the transaction to take arbitrage opportunities. Most clients do not need this. | +| Flag Name | Hex Value | Decimal Value | Description | +| :----------------- | :----------- | :------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `tfNoRippleDirect` | `0x00010000` | 65536 | Do not use the default path; only use paths included in the `Paths` field. This is intended to force the transaction to take arbitrage opportunities. Most clients do not need this. | | `tfPartialPayment` | `0x00020000` | 131072 | If the specified `Amount` cannot be sent without spending more than `SendMax`, reduce the received amount instead of failing outright. See [Partial Payments](#partial-payments) for more details. | -| `tfLimitQuality` | `0x00040000` | 262144 | Only take paths where all the conversions have an input:output ratio that is equal or better than the ratio of `Amount`:`SendMax`. See [Limit Quality](#limit-quality) for details. | +| `tfLimitQuality` | `0x00040000` | 262144 | Only take paths where all the conversions have an input:output ratio that is equal or better than the ratio of `Amount`:`SendMax`. See [Limit Quality](#limit-quality) for details. | ## Partial Payments @@ -126,14 +124,13 @@ The [`delivered_amount`](../metadata.md#delivered_amount) field of a payment's m For more information, see the full article on [Partial Payments](../../../../concepts/payment-types/partial-payments.md). - ## Limit Quality The XRP Ledger defines the "quality" of a currency exchange as the ratio of the numeric amount in to the numeric amount out. For example, if you spend $2 USD to receive £1 GBP, then the "quality" of that exchange is `0.5`. The [`tfLimitQuality` flag](#payment-flags) allows you to set a minimum quality of conversions that you are willing to take. This limit quality is defined as the destination `Amount` divided by the `SendMax` amount (the numeric amounts only, regardless of currency). When set, the payment processing engine avoids using any paths whose quality (conversion rate) is worse (numerically lower) than the limit quality. -By itself, the `tfLimitQuality` flag reduces the number of situations in which a transaction can succeed. Specifically, it rejects payments where some part of the payment uses an unfavorable conversion, even if the overall *average* quality of conversions in the payment is equal or better than the limit quality. If a payment is rejected in this way, the [transaction result](../transaction-results/index.md) is `tecPATH_DRY`. +By itself, the `tfLimitQuality` flag reduces the number of situations in which a transaction can succeed. Specifically, it rejects payments where some part of the payment uses an unfavorable conversion, even if the overall _average_ quality of conversions in the payment is equal or better than the limit quality. If a payment is rejected in this way, the [transaction result](../transaction-results/index.md) is `tecPATH_DRY`. Consider the following example. If I am trying to send you 100 Chinese Yuan (`Amount` = 100 CNY) for 20 United States dollars (`SendMax` = 20 USD) or less, then the limit quality is `5`. Imagine one trader is offering ¥95 for $15 (a ratio of about `6.3` CNY per USD), but the next best offer in the market is ¥5 for $2 (a ratio of `2.5` CNY per USD). If I were to take both offers to send you 100 CNY, then it would cost me 17 USD, for an average quality of about `5.9`. @@ -155,24 +152,25 @@ Version 1 MPTokens only support direct MPT payment between accounts. They cannot ```json { - "Account": "rLWSJKbwYSzG32JuGissYd66MFTvfMk4Bt", - "Amount": { - "mpt_issuance_id": "006419063CEBEB49FC20032206CE0F203138BFC59F1AC578", - "value": "100" - }, - "DeliverMax": { - "mpt_issuance_id": "006419063CEBEB49FC20032206CE0F203138BFC59F1AC578", - "value": "100" - }, - "SendMax": { - "mpt_issuance_id": "006419063CEBEB49FC20032206CE0F203138BFC59F1AC578", - "value": "100" - }, - "Destination": "raZ3wTTKiMHn3BiStvz4ET9rbCHfU1DMak", - "Fee": "120", - "Flags": 0, + "Account": "rLWSJKbwYSzG32JuGissYd66MFTvfMk4Bt", + "Amount": { + "mpt_issuance_id": "006419063CEBEB49FC20032206CE0F203138BFC59F1AC578", + "value": "100" + }, + "DeliverMax": { + "mpt_issuance_id": "006419063CEBEB49FC20032206CE0F203138BFC59F1AC578", + "value": "100" + }, + "SendMax": { + "mpt_issuance_id": "006419063CEBEB49FC20032206CE0F203138BFC59F1AC578", + "value": "100" + }, + "Destination": "raZ3wTTKiMHn3BiStvz4ET9rbCHfU1DMak", + "Fee": "120", + "Flags": 0 } ``` + ## Credential IDs You can send money to an account that uses [Deposit Authorization](../../../../concepts/accounts/depositauth.md) by providing the `CredentialIDs` field with an exact set of credentials that are preauthorized by the recipient. The set of credentials must match a [DepositPreauth entry](../../ledger-data/ledger-entry-types/depositpreauth.md) in the ledger. diff --git a/docs/references/protocol/transactions/types/paymentchannelclaim.md b/docs/references/protocol/transactions/types/paymentchannelclaim.md index 1e19cb7578..1db847a819 100644 --- a/docs/references/protocol/transactions/types/paymentchannelclaim.md +++ b/docs/references/protocol/transactions/types/paymentchannelclaim.md @@ -1,10 +1,12 @@ --- seo: - description: Claim funds from a payment channel. + description: Claim funds from a payment channel. labels: - - Payment Channels + - Payment Channels --- + # PaymentChannelClaim + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/PayChan.cpp "Source") Claim funds from a [payment channel](../../../../concepts/payment-types/payment-channels.md), adjust the payment channel's expiration, or both. This transaction can be used differently depending on the transaction sender's role in the specified channel: @@ -27,20 +29,19 @@ The **destination address** of a channel can: {% amendment-disclaimer name="PayChan" /%} - ## Example {% $frontmatter.seo.title %} JSON ```json { - "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "Amount": "1000000", - "Balance": "1000000", - "Channel": "5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3", - "Fee": "10", - "Flags": 2147483648, - "PublicKey": "023693F15967AE357D0327974AD46FE3C127113B1110D6044FD41E723689F81CC6", - "Sequence": 372, - "TransactionType": "PaymentChannelClaim" + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "Amount": "1000000", + "Balance": "1000000", + "Channel": "5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3", + "Fee": "10", + "Flags": 2147483648, + "PublicKey": "023693F15967AE357D0327974AD46FE3C127113B1110D6044FD41E723689F81CC6", + "Sequence": 372, + "TransactionType": "PaymentChannelClaim" } ``` @@ -48,26 +49,24 @@ The **destination address** of a channel can: {% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%} - -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:----------------|:---------------------|:------------------|:----------|:------------| -| `Amount` | [Currency Amount][] | Amount | No | The amount of XRP, in drops, authorized by the `Signature`. This must match the amount in the signed message. This is the cumulative amount of XRP that can be dispensed by the channel, including XRP previously redeemed. Must be provided except when closing the channel.| -| `Balance` | [Currency Amount][] | Amount | No | Total amount of XRP, in drops, delivered by this channel after processing this claim. Required to deliver XRP. Must be more than the total amount delivered by the channel so far, but not greater than the `Amount` of the signed claim. Must be provided except when closing the channel. | -| `Channel` | String - Hexadecimal | UInt256 | Yes | The unique ID of the channel. | -| `CredentialIDs` | Array of Strings | Vector256 | No | Set of credentials to authorize a deposit made by this transaction. Each member of the array must be the ledger entry ID of a Credential entry in the ledger. For details, see [Credential IDs](./payment.md#credential-ids). | +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :-------------- | :------------------- | :---------------- | :-------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Amount` | [Currency Amount][] | Amount | No | The amount of XRP, in drops, authorized by the `Signature`. This must match the amount in the signed message. This is the cumulative amount of XRP that can be dispensed by the channel, including XRP previously redeemed. Must be provided except when closing the channel. | +| `Balance` | [Currency Amount][] | Amount | No | Total amount of XRP, in drops, delivered by this channel after processing this claim. Required to deliver XRP. Must be more than the total amount delivered by the channel so far, but not greater than the `Amount` of the signed claim. Must be provided except when closing the channel. | +| `Channel` | String - Hexadecimal | UInt256 | Yes | The unique ID of the channel. | +| `CredentialIDs` | Array of Strings | Vector256 | No | Set of credentials to authorize a deposit made by this transaction. Each member of the array must be the ledger entry ID of a Credential entry in the ledger. For details, see [Credential IDs](./payment.md#credential-ids). | | `PublicKey` | String - Hexadecimal | Blob | No | The public key used for the signature. This must match the `PublicKey` stored in the ledger for the channel. Required unless the sender of the transaction is the source address of the channel and the `Signature` field is omitted. (The transaction includes the public key so that `rippled` can check the validity of the signature before trying to apply the transaction to the ledger.) | -| `Signature` | String - Hexadecimal | Blob | No | The signature of this claim. The signed message contains the channel ID and the amount of the claim. Required unless the sender of the transaction is the source address of the channel. | +| `Signature` | String - Hexadecimal | Blob | No | The signature of this claim. The signed message contains the channel ID and the amount of the claim. Required unless the sender of the transaction is the source address of the channel. | If the payment channel was created before the [fixPayChanRecipientOwnerDir amendment](/resources/known-amendments.md#fixpaychanrecipientownerdir) became enabled (on 2020-05-01), it is possible that the destination account has been [deleted](../../../../concepts/accounts/deleting-accounts.md) and does not currently exist in the ledger. If the destination has been deleted, the source account cannot send XRP from the channel to the destination; instead, the transaction fails with `tecNO_DST`. Other uses of this transaction type are unaffected when the destination account has been deleted, including adjusting the channel expiration, closing a channel with no XRP, or removing a channel that has passed its expiration time. - ## PaymentChannelClaim Flags Transactions of the `PaymentChannelClaim` type support additional values in the [`Flags` field](../common-fields.md#flags-field), as follows: -| Flag Name | Hex Value | Decimal Value | Description | -|:----------|:-------------|:--------------|:----------------------------------| -| `tfRenew` | `0x00010000` | 65536 | Clear the channel's `Expiration` time. (`Expiration` is different from the channel's immutable `CancelAfter` time.) Only the source address of the payment channel can use this flag. | +| Flag Name | Hex Value | Decimal Value | Description | +| :-------- | :----------- | :------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `tfRenew` | `0x00010000` | 65536 | Clear the channel's `Expiration` time. (`Expiration` is different from the channel's immutable `CancelAfter` time.) Only the source address of the payment channel can use this flag. | | `tfClose` | `0x00020000` | 131072 | Request to close the channel. Only the channel source and destination addresses can use this flag. This flag closes the channel immediately if it has no more XRP allocated to it after processing the current claim, or if the destination address uses it. If the source address uses this flag when the channel still holds XRP, this schedules the channel to close after `SettleDelay` seconds have passed. (Specifically, this sets the `Expiration` of the channel to the close time of the previous ledger plus the channel's `SettleDelay` time, unless the channel already has an earlier `Expiration` time.) If the destination address uses this flag when the channel still holds XRP, any XRP that remains after processing the claim is returned to the source address. | ## See Also diff --git a/docs/references/protocol/transactions/types/paymentchannelcreate.md b/docs/references/protocol/transactions/types/paymentchannelcreate.md index 04f066540d..9b6dce2951 100644 --- a/docs/references/protocol/transactions/types/paymentchannelcreate.md +++ b/docs/references/protocol/transactions/types/paymentchannelcreate.md @@ -1,10 +1,12 @@ --- seo: - description: Open a new payment channel. + description: Open a new payment channel. labels: - - Payment Channels + - Payment Channels --- + # PaymentChannelCreate + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/PayChan.cpp "Source") Create a [payment channel](../../../../concepts/payment-types/payment-channels.md) and fund it. The address sending this transaction becomes the "source address" of the payment channel. @@ -15,15 +17,15 @@ Create a [payment channel](../../../../concepts/payment-types/payment-channels.m ```json { - "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "TransactionType": "PaymentChannelCreate", - "Amount": "10000", - "Destination": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", - "SettleDelay": 86400, - "PublicKey": "32D2471DB72B27E3310F355BB33E339BF26F8392D5A93D3BC0FC3B566612DA0F0A", - "CancelAfter": 533171558, - "DestinationTag": 23480, - "SourceTag": 11747 + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "TransactionType": "PaymentChannelCreate", + "Amount": "10000", + "Destination": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", + "SettleDelay": 86400, + "PublicKey": "32D2471DB72B27E3310F355BB33E339BF26F8392D5A93D3BC0FC3B566612DA0F0A", + "CancelAfter": 533171558, + "DestinationTag": 23480, + "SourceTag": 11747 } ``` @@ -31,15 +33,14 @@ Create a [payment channel](../../../../concepts/payment-types/payment-channels.m {% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%} - -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:-----------------|:---------------------|:------------------|:----------|:------------| -| `Amount` | [Currency Amount][] | Amount | Yes | Amount of XRP, in drops, to deduct from the sender's balance and set aside in this channel. While the channel is open, the XRP can only go to the `Destination` address. When the channel closes, any unclaimed XRP is returned to the source account's balance. | -| `Destination` | String - [Address][] | AccountID | Yes | The account that can receive money from this channel. This is also known as the "destination address" for the channel. Cannot be the same as the sender (`Account`). | -| `SettleDelay` | Number | UInt32 | Yes | Amount of time, in seconds, the source address must wait before closing the channel if it has unclaimed funds. | -| `PublicKey` | String - Hexadecimal | Blob | Yes | The 33-byte public key of the key pair the source will use to sign claims against this channel. This can be any secp256k1 or Ed25519 public key. For more information on key pairs, see [Key Derivation](../../../../concepts/accounts/cryptographic-keys.md#key-derivation) | +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :--------------- | :------------------- | :---------------- | :-------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Amount` | [Currency Amount][] | Amount | Yes | Amount of XRP, in drops, to deduct from the sender's balance and set aside in this channel. While the channel is open, the XRP can only go to the `Destination` address. When the channel closes, any unclaimed XRP is returned to the source account's balance. | +| `Destination` | String - [Address][] | AccountID | Yes | The account that can receive money from this channel. This is also known as the "destination address" for the channel. Cannot be the same as the sender (`Account`). | +| `SettleDelay` | Number | UInt32 | Yes | Amount of time, in seconds, the source address must wait before closing the channel if it has unclaimed funds. | +| `PublicKey` | String - Hexadecimal | Blob | Yes | The 33-byte public key of the key pair the source will use to sign claims against this channel. This can be any secp256k1 or Ed25519 public key. For more information on key pairs, see [Key Derivation](../../../../concepts/accounts/cryptographic-keys.md#key-derivation) | | `CancelAfter` | Number | UInt32 | No | The time, in [seconds since the Ripple Epoch][], when this channel expires. Any transaction that would modify the channel after this time closes the channel without otherwise affecting it. This value is immutable; the channel can be closed earlier than this time but cannot remain open after this time. | -| `DestinationTag` | Number | UInt32 | No | Arbitrary tag to further specify the destination for this payment channel, such as a hosted recipient at the destination address. | +| `DestinationTag` | Number | UInt32 | No | Arbitrary tag to further specify the destination for this payment channel, such as a hosted recipient at the destination address. | If the `Destination` account is blocking incoming payment channels, the transaction fails with result code `tecNO_PERMISSION`. {% amendment-disclaimer name="DisallowIncoming" /%} diff --git a/docs/references/protocol/transactions/types/paymentchannelfund.md b/docs/references/protocol/transactions/types/paymentchannelfund.md index 0bb7d4965e..6e1f1b9469 100644 --- a/docs/references/protocol/transactions/types/paymentchannelfund.md +++ b/docs/references/protocol/transactions/types/paymentchannelfund.md @@ -1,10 +1,12 @@ --- seo: - description: Add more funds to a payment channel. + description: Add more funds to a payment channel. labels: - - Payment Channels + - Payment Channels --- + # PaymentChannelFund + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/PayChan.cpp "Source") Add an additional amount to an open [payment channel](../../../../concepts/payment-types/payment-channels.md), and optionally update the expiration time of the channel. Only the source account of the channel can use this transaction. @@ -15,11 +17,11 @@ Add an additional amount to an open [payment channel](../../../../concepts/payme ```json { - "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "TransactionType": "PaymentChannelFund", - "Channel": "C1AE6DDDEEC05CF2978C0BAD6FE302948E9533691DC749DCDD3B9E5992CA6198", - "Amount": "200000", - "Expiration": 543171558 + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "TransactionType": "PaymentChannelFund", + "Channel": "C1AE6DDDEEC05CF2978C0BAD6FE302948E9533691DC749DCDD3B9E5992CA6198", + "Amount": "200000", + "Expiration": 543171558 } ``` @@ -27,25 +29,25 @@ Add an additional amount to an open [payment channel](../../../../concepts/payme {% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%} -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:-------------|:---------------------|:------------------|:----------|:------------| -| `Channel` | String - Hexadecimal | UInt256 | Yes | The unique ID of the channel to fund. | -| `Amount` | [Currency Amount][] | Amount | Yes | Amount of XRP, in drops, to add to the channel. Must be a positive amount of XRP. | +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :----------- | :------------------- | :---------------- | :-------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Channel` | String - Hexadecimal | UInt256 | Yes | The unique ID of the channel to fund. | +| `Amount` | [Currency Amount][] | Amount | Yes | Amount of XRP, in drops, to add to the channel. Must be a positive amount of XRP. | | `Expiration` | Number | UInt32 | No | New expiration time to set for the channel, in [seconds since the Ripple Epoch][]. This must be later than either the current time plus the `SettleDelay` of the channel, or the existing `Expiration` of the channel. After the `Expiration` time, any transaction that would access the channel closes the channel without taking its normal action. (`Expiration` is separate from the channel's immutable `CancelAfter` time.) For more information, see the [PayChannel ledger entry type](../../ledger-data/ledger-entry-types/paychannel.md). | ## Error Cases Besides errors that can occur for all transactions, {% $frontmatter.seo.title %} transactions can result in the following [transaction result codes](../transaction-results/index.md): -| Error Code | Description | -|:--------------------------|:-------------------------------------------------| -| `tecINSUFFICIENT_RESERVE` | The sending account has less XRP than the [reserve requirement](../../../../concepts/accounts/reserves.md). | +| Error Code | Description | +| :------------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `tecINSUFFICIENT_RESERVE` | The sending account has less XRP than the [reserve requirement](../../../../concepts/accounts/reserves.md). | | `tecNO_DST` | The destination account of the channel has been deleted. This is only possible if the payment channel was created before the [fixPayChanRecipientOwnerDir amendment](/resources/known-amendments.md#fixpaychanrecipientownerdir) became enabled (on 2020-05-01). | -| `tecNO_ENTRY` | The Payment Channel identified by the `Channel` field does not exist. | -| `tecNO_PERMISSION` | The sender of the transaction is not the source address for the channel. | -| `tecUNFUNDED` | The sending account does not have enough XRP or fungible tokens to fund the channel with the requested amount and still meet the [reserve requirement](../../../../concepts/accounts/reserves.md). | -| `temBAD_AMOUNT` | The `Amount` field of the transaction is invalid. The amount must either be XRP or fungible tokens and cannot be zero or negative. | -| `temBAD_EXPIRATION` | The `Expiration` field is invalid. | +| `tecNO_ENTRY` | The Payment Channel identified by the `Channel` field does not exist. | +| `tecNO_PERMISSION` | The sender of the transaction is not the source address for the channel. | +| `tecUNFUNDED` | The sending account does not have enough XRP or fungible tokens to fund the channel with the requested amount and still meet the [reserve requirement](../../../../concepts/accounts/reserves.md). | +| `temBAD_AMOUNT` | The `Amount` field of the transaction is invalid. The amount must either be XRP or fungible tokens and cannot be zero or negative. | +| `temBAD_EXPIRATION` | The `Expiration` field is invalid. | ## See Also diff --git a/docs/references/protocol/transactions/types/permissioneddomaindelete.md b/docs/references/protocol/transactions/types/permissioneddomaindelete.md index fcf7230b73..8d9429ccc4 100644 --- a/docs/references/protocol/transactions/types/permissioneddomaindelete.md +++ b/docs/references/protocol/transactions/types/permissioneddomaindelete.md @@ -1,12 +1,14 @@ --- seo: - description: Delete a permissioned domain. + description: Delete a permissioned domain. labels: - - Compliance - - Permissioned Domains + - Compliance + - Permissioned Domains status: not_enabled --- + # PermissionedDomainDelete + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/PermissionedDomainDelete.cpp "Source") Delete a [permissioned domain][] that you own. @@ -29,8 +31,8 @@ Delete a [permissioned domain][] that you own. {% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%} -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:-----------|:------------------|:------------------|:----------|:------------| +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :--------- | :---------------- | :---------------- | :-------- | :-------------------------------------------------------------- | | `DomainID` | String - [Hash][] | UInt256 | Yes | The ledger entry ID of the Permissioned Domain entry to delete. | ## {% $frontmatter.seo.title %} Flags @@ -41,10 +43,10 @@ There are no flags defined for {% $frontmatter.seo.title %} transactions. Besides errors that can occur for all transactions, {% $frontmatter.seo.title %} transactions can result in the following [transaction result codes](../transaction-results/index.md): -| Error Code | Description | -|:--------------|:---------------------------------------------| +| Error Code | Description | +| :------------ | :------------------------------------------------------------------------------------- | | `tecNO_ENTRY` | The permissioned domain specified in the `DomainID` field doesn't exist in the ledger. | -| `temDISABLED` | The `PermissionedDomains` amendment is not enabled. | +| `temDISABLED` | The `PermissionedDomains` amendment is not enabled. | ## See Also diff --git a/docs/references/protocol/transactions/types/permissioneddomainset.md b/docs/references/protocol/transactions/types/permissioneddomainset.md index 757b6c25cf..ed23434515 100644 --- a/docs/references/protocol/transactions/types/permissioneddomainset.md +++ b/docs/references/protocol/transactions/types/permissioneddomainset.md @@ -1,12 +1,14 @@ --- seo: - description: Create or update a permissioned domain. + description: Create or update a permissioned domain. labels: - - Compliance - - Permissioned Domains + - Compliance + - Permissioned Domains status: not_enabled --- + # PermissionedDomainSet + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/PermissionedDomainSet.cpp "Source") Create a [permissioned domain][], or modify one that you own. @@ -23,10 +25,10 @@ Create a [permissioned domain][], or modify one that you own. "Sequence": 390, "AcceptedCredentials": [ { - "Credential": { - "Issuer": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "CredentialType": "6D795F63726564656E7469616C" - } + "Credential": { + "Issuer": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "CredentialType": "6D795F63726564656E7469616C" + } } ] } @@ -36,9 +38,9 @@ Create a [permissioned domain][], or modify one that you own. {% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%} -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:----------------------|:------------------|:------------------|:----------|:------------| -| `DomainID` | String - [Hash][] | UInt256 | No | The ledger entry ID of an existing permissioned domain to modify. If omitted, creates a new permissioned domain. | +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :-------------------- | :---------------- | :---------------- | :-------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `DomainID` | String - [Hash][] | UInt256 | No | The ledger entry ID of an existing permissioned domain to modify. If omitted, creates a new permissioned domain. | | `AcceptedCredentials` | Array | Array | Yes | A list of 1 to 10 [**Accepted Credentials objects**](#accepted-credentials-objects) that grant access to this domain. The list does not need to be sorted, but it cannot contain duplicates. When modifying an existing domain, this list replaces the existing list. | ### AcceptedCredentials Objects @@ -53,14 +55,14 @@ There are no flags defined for {% $frontmatter.seo.title %} transactions. Besides errors that can occur for all transactions, {% $frontmatter.seo.title %} transactions can result in the following [transaction result codes](../transaction-results/index.md): -| Error Code | Description | -|:--------------------------|:------------| +| Error Code | Description | +| :------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `tecDIR_FULL` | The transaction would create a new PermissionedDomain, but the sender's owner directory is full.
    This error is effectively impossible to receive if {% amendment-disclaimer name="fixDirectoryLimit" compact=true /%} is enabled. | -| `tecINSUFFICIENT_RESERVE` | The transaction would create a new PermissionedDomain, but the sender does not have enough XRP to meet the increased owner reserve. | -| `tecNO_ENTRY` | The transaction attempted to modify a Domain that does not exist. Check the `DomainID` field of the transaction. | -| `tecNO_ISSUER` | At least one of the issuers specified in the `AcceptedCredentials` field is does not exist in the XRP Ledger. Check the `Issuer` field of each member of the array. | -| `tecNO_PERMISSION` | The transaction attempted to modify an existing Domain, but the sender of the transaction is not the owner of the specified Domain. | -| `temDISABLED` | Either the `PermissionedDomains` amendment is not enabled, or the `Credentials` amendment is not enabled. | +| `tecINSUFFICIENT_RESERVE` | The transaction would create a new PermissionedDomain, but the sender does not have enough XRP to meet the increased owner reserve. | +| `tecNO_ENTRY` | The transaction attempted to modify a Domain that does not exist. Check the `DomainID` field of the transaction. | +| `tecNO_ISSUER` | At least one of the issuers specified in the `AcceptedCredentials` field is does not exist in the XRP Ledger. Check the `Issuer` field of each member of the array. | +| `tecNO_PERMISSION` | The transaction attempted to modify an existing Domain, but the sender of the transaction is not the owner of the specified Domain. | +| `temDISABLED` | Either the `PermissionedDomains` amendment is not enabled, or the `Credentials` amendment is not enabled. | ## See Also diff --git a/docs/references/protocol/transactions/types/setregularkey.md b/docs/references/protocol/transactions/types/setregularkey.md index d1a5c43b6f..886489c535 100644 --- a/docs/references/protocol/transactions/types/setregularkey.md +++ b/docs/references/protocol/transactions/types/setregularkey.md @@ -1,9 +1,10 @@ --- seo: - description: Add, remove, or modify an account's regular key pair. + description: Add, remove, or modify an account's regular key pair. labels: - - Security + - Security --- + # SetRegularKey [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/SetRegularKey.cpp "Source") @@ -16,11 +17,11 @@ You can protect your account by assigning a regular key pair to it and using it ```json { - "Flags": 0, - "TransactionType": "SetRegularKey", - "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "Fee": "12", - "RegularKey": "rAR8rR8sUkBoCZFawhkWzY4Y5YoyuznwD" + "Flags": 0, + "TransactionType": "SetRegularKey", + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "Fee": "12", + "RegularKey": "rAR8rR8sUkBoCZFawhkWzY4Y5YoyuznwD" } ``` @@ -28,8 +29,8 @@ You can protect your account by assigning a regular key pair to it and using it {% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%} -| Field | JSON Type | [Internal Type][] | Description | -|:-------------|:----------|:------------------|:------------------------------| +| Field | JSON Type | [Internal Type][] | Description | +| :----------- | :-------- | :---------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `RegularKey` | String | AccountID | _(Optional)_ A base-58-encoded [Address][] that indicates the regular key pair to be assigned to the account. If omitted, removes any existing regular key pair from the account. Must not match the master key pair for the address. | ## See Also diff --git a/docs/references/protocol/transactions/types/signerlistset.md b/docs/references/protocol/transactions/types/signerlistset.md index 355456c3c8..9a34bf8465 100644 --- a/docs/references/protocol/transactions/types/signerlistset.md +++ b/docs/references/protocol/transactions/types/signerlistset.md @@ -1,46 +1,47 @@ --- seo: - description: Add, remove, or modify an account's multi-signing list. + description: Add, remove, or modify an account's multi-signing list. labels: - - Security + - Security --- + # SignerListSet + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/SetSignerList.cpp "Source") Create, replace, or remove a list of signers that can be used to [multi-sign](../../../../concepts/accounts/multi-signing.md) a transaction. {% amendment-disclaimer name="MultiSign" /%} - ## Example {% $frontmatter.seo.title %} JSON ```json { - "Flags": 0, - "TransactionType": "SignerListSet", - "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "Fee": "12", - "SignerQuorum": 3, - "SignerEntries": [ - { - "SignerEntry": { - "Account": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", - "SignerWeight": 2 - } - }, - { - "SignerEntry": { - "Account": "rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v", - "SignerWeight": 1 - } - }, - { - "SignerEntry": { - "Account": "raKEEVSGnKSD9Zyvxu4z6Pqpm4ABH8FS6n", - "SignerWeight": 1 - } - } - ] + "Flags": 0, + "TransactionType": "SignerListSet", + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "Fee": "12", + "SignerQuorum": 3, + "SignerEntries": [ + { + "SignerEntry": { + "Account": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", + "SignerWeight": 2 + } + }, + { + "SignerEntry": { + "Account": "rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v", + "SignerWeight": 1 + } + }, + { + "SignerEntry": { + "Account": "raKEEVSGnKSD9Zyvxu4z6Pqpm4ABH8FS6n", + "SignerWeight": 1 + } + } + ] } ``` @@ -48,9 +49,9 @@ Create, replace, or remove a list of signers that can be used to [multi-sign](.. {% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%} -| Field | JSON Type | [Internal Type][] | Description | -|:----------------|:----------|:------------------|:-----------------------------| -| `SignerQuorum` | Number | UInt32 | A target number for the signer weights. A multi-signature from this list is valid only if the sum weights of the signatures provided is greater than or equal to this value. To delete a signer list, use the value `0`. | +| Field | JSON Type | [Internal Type][] | Description | +| :-------------- | :-------- | :---------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `SignerQuorum` | Number | UInt32 | A target number for the signer weights. A multi-signature from this list is valid only if the sum weights of the signatures provided is greater than or equal to this value. To delete a signer list, use the value `0`. | | `SignerEntries` | Array | Array | _(Omitted when deleting)_ Array of [`SignerEntry` objects](../../ledger-data/ledger-entry-types/signerlist.md#signer-entry-object), indicating the addresses and weights of signers in this list. This signer list must have at least 1 member and no more than 32 members. No address may appear more than once in the list, nor may the `Account` submitting the transaction appear in the list. _(Updated by the [ExpandedSignerList amendment][].)_ | A successful SignerListSet transaction replaces the account's [`SignerList` object](../../ledger-data/ledger-entry-types/signerlist.md) in the ledger, or adds one if it did not exist before. An account may not have more than one signer list. To delete a signer list, you must set `SignerQuorum` to `0` _and_ omit the `SignerEntries` field. Otherwise, the transaction fails with the error [`temMALFORMED`](../transaction-results/tem-codes.md). A transaction to delete a signer list is considered successful even if there was no signer list to delete. diff --git a/docs/references/protocol/transactions/types/ticketcreate.md b/docs/references/protocol/transactions/types/ticketcreate.md index 84b626236b..fa923ce147 100644 --- a/docs/references/protocol/transactions/types/ticketcreate.md +++ b/docs/references/protocol/transactions/types/ticketcreate.md @@ -1,10 +1,12 @@ --- seo: - description: Set aside one or more sequence numbers as tickets. + description: Set aside one or more sequence numbers as tickets. labels: - - Transaction Sending + - Transaction Sending --- + # TicketCreate + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/CreateTicket.cpp "Source") Set aside one or more [sequence numbers][Sequence Number] as [tickets](../../../../concepts/accounts/tickets.md). @@ -15,22 +17,23 @@ Set aside one or more [sequence numbers][Sequence Number] as [tickets](../../../ ```json { - "TransactionType": "TicketCreate", - "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "Fee": "10", - "Sequence": 381, - "TicketCount": 10 + "TransactionType": "TicketCreate", + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "Fee": "10", + "Sequence": 381, + "TicketCount": 10 } ``` {% tx-example txid="738AEF36B48CA4A2D85C2B74910DC34DDBBCA4C83643F2DB84A58785ED5AD3E3" /%} {% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%} + -| Field | JSON Type | [Internal Type][] | Description | -|:-----------------|:-----------------|:------------------|:-------------------| -| `TicketCount` | Number | UInt32 | How many Tickets to create. This must be a positive number and cannot cause the account to own more than 250 Tickets after executing this transaction. | +| Field | JSON Type | [Internal Type][] | Description | +| :------------ | :-------- | :---------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------- | +| `TicketCount` | Number | UInt32 | How many Tickets to create. This must be a positive number and cannot cause the account to own more than 250 Tickets after executing this transaction. | If the transaction cannot create _all_ of the requested Tickets (either due to the 250-Ticket limit or the [owner reserve](../../../../concepts/accounts/reserves.md)), it fails and creates no Tickets. To look up how many Tickets an account currently owns, use the [account_info method][] and check the `account_data.TicketCount` field. @@ -40,11 +43,11 @@ If the transaction cannot create _all_ of the requested Tickets (either due to t Besides errors that can occur for all transactions, {% $frontmatter.seo.title %} transactions can result in the following [transaction result codes](../transaction-results/index.md): -| Error Code | Description | -|:--------------------------|:-------------------------------------------------| -| `temINVALID_COUNT` | The `TicketCount` field is invalid. It must be an integer from 1 to 250. | +| Error Code | Description | +| :------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `temINVALID_COUNT` | The `TicketCount` field is invalid. It must be an integer from 1 to 250. | | `tecDIR_FULL` | This transaction would cause the account to own more than the limit of 250 Tickets at a time, or more than the maximum number of ledger objects in general.
    The maximum ledger objects error is effectively impossible to receive if {% amendment-disclaimer name="fixDirectoryLimit" compact=true /%} is enabled. | -| `tecINSUFFICIENT_RESERVE` | The sending account does not have enough XRP to meet the [owner reserve](../../../../concepts/accounts/reserves.md) of all the requested Tickets. | +| `tecINSUFFICIENT_RESERVE` | The sending account does not have enough XRP to meet the [owner reserve](../../../../concepts/accounts/reserves.md) of all the requested Tickets. | ## See Also diff --git a/docs/references/protocol/transactions/types/trustset.md b/docs/references/protocol/transactions/types/trustset.md index a54b07ec1d..c4727eb759 100644 --- a/docs/references/protocol/transactions/types/trustset.md +++ b/docs/references/protocol/transactions/types/trustset.md @@ -1,10 +1,12 @@ --- seo: - description: Add or modify a trust line. + description: Add or modify a trust line. labels: - - Tokens + - Tokens --- + # TrustSet + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/SetTrust.cpp "Source") Create or modify a [trust line](../../../../concepts/tokens/fungible-tokens/index.md) linking two accounts. @@ -13,17 +15,17 @@ Create or modify a [trust line](../../../../concepts/tokens/fungible-tokens/inde ```json { - "TransactionType": "TrustSet", - "Account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "Fee": "12", - "Flags": 262144, - "LastLedgerSequence": 8007750, - "LimitAmount": { - "currency": "USD", - "issuer": "rsP3mgGb2tcYUrxiLFiHJiQXhsziegtwBc", - "value": "100" - }, - "Sequence": 12 + "TransactionType": "TrustSet", + "Account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "Fee": "12", + "Flags": 262144, + "LastLedgerSequence": 8007750, + "LimitAmount": { + "currency": "USD", + "issuer": "rsP3mgGb2tcYUrxiLFiHJiQXhsziegtwBc", + "value": "100" + }, + "Sequence": 12 } ``` @@ -31,31 +33,30 @@ Create or modify a [trust line](../../../../concepts/tokens/fungible-tokens/inde {% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%} -| Field | JSON Type | [Internal Type][] | Description | -|:-------------------------|:----------|:------------------|:------------------| -| `LimitAmount` | Object | Amount | Object defining the trust line to create or modify, in the format of a [Currency Amount][]. | -| `LimitAmount`.`currency` | String | (Amount.currency) | The currency to this trust line applies to, as a three-letter [ISO 4217 Currency Code](https://www.xe.com/iso4217.php) or a 160-bit hex value according to [currency format](../../data-types/currency-formats.md). "XRP" is invalid. | -| `LimitAmount`.`value` | String | (Amount.value) | Quoted decimal representation of the limit to set on this trust line. | -| `LimitAmount`.`issuer` | String | (Amount.issuer) | The address of the account to extend trust to. | +| Field | JSON Type | [Internal Type][] | Description | +| :----------------------- | :-------- | :---------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `LimitAmount` | Object | Amount | Object defining the trust line to create or modify, in the format of a [Currency Amount][]. | +| `LimitAmount`.`currency` | String | (Amount.currency) | The currency to this trust line applies to, as a three-letter [ISO 4217 Currency Code](https://www.xe.com/iso4217.php) or a 160-bit hex value according to [currency format](../../data-types/currency-formats.md). "XRP" is invalid. | +| `LimitAmount`.`value` | String | (Amount.value) | Quoted decimal representation of the limit to set on this trust line. | +| `LimitAmount`.`issuer` | String | (Amount.issuer) | The address of the account to extend trust to. | | `QualityIn` | Number | UInt32 | _(Optional)_ Value incoming balances on this trust line at the ratio of this number per 1,000,000,000 units. A value of `0` is shorthand for treating balances at face value. For example, if you set the value to 10,000,000, 1% of incoming funds remain with the sender. If an account sends 100 currency, the sender retains 1 currency unit and the destination receives 99 units. This option is included for parity: in practice, you are much more likely to set a `QualityOut` value. Note that this fee is separate and independent from token transfer fees. | -| `QualityOut` | Number | UInt32 | _(Optional)_ Value outgoing balances on this trust line at the ratio of this number per 1,000,000,000 units. A value of `0` is shorthand for treating balances at face value. For example, if you set the value to 10,000,000, 1% of outgoing funds would remain with the issuer. If the sender sends 100 currency units, the issuer retains 1 currency unit and the destination receives 99 units. Note that this fee is separate and independent from token transfer fees. | +| `QualityOut` | Number | UInt32 | _(Optional)_ Value outgoing balances on this trust line at the ratio of this number per 1,000,000,000 units. A value of `0` is shorthand for treating balances at face value. For example, if you set the value to 10,000,000, 1% of outgoing funds would remain with the issuer. If the sender sends 100 currency units, the issuer retains 1 currency unit and the destination receives 99 units. Note that this fee is separate and independent from token transfer fees. | If the account specified in `LimitAmount.issuer` is blocking incoming trust lines, the transaction fails with the result code `tecNO_PERMISSION`. {% amendment-disclaimer name="DisallowIncoming" /%} - ## TrustSet Flags Transactions of the TrustSet type support additional values in the [`Flags` field](../common-fields.md#flags-field), as follows: -| Flag Name | Hex Value | Decimal Value | Description | -|:------------------|:-------------|:--------------|:--------------------------| -| `tfSetfAuth` | `0x00010000` | 65536 | Authorize the other party to hold [currency issued by this account](../../../../concepts/tokens/index.md). (No effect unless using the [`asfRequireAuth` AccountSet flag](accountset.md#accountset-flags).) Cannot be unset. | -| `tfSetNoRipple` | `0x00020000` | 131072 | Enable the No Ripple flag, which blocks [rippling](../../../../concepts/tokens/fungible-tokens/rippling.md) between two trust lines of the same currency if this flag is enabled on both. | -| `tfClearNoRipple` | `0x00040000` | 262144 | Disable the No Ripple flag, allowing [rippling](../../../../concepts/tokens/fungible-tokens/rippling.md) on this trust line. | -| `tfSetFreeze` | `0x00100000` | 1048576 | [Freeze](../../../../concepts/tokens/fungible-tokens/freezes.md) the trust line. | -| `tfClearFreeze` | `0x00200000` | 2097152 | [Unfreeze](../../../../concepts/tokens/fungible-tokens/freezes.md) the trust line. | -| `tfSetDeepFreeze` | `0x00400000` | 4194304 | [Deep Freeze](../../../../concepts/tokens/fungible-tokens/deep-freeze.md) the trust line. | -| `tfClearDeepFreeze` | `0x00800000` | 8388608 | Clear the [Deep Freeze](../../../../concepts/tokens/fungible-tokens/deep-freeze.md) on the trust line. | +| Flag Name | Hex Value | Decimal Value | Description | +| :------------------ | :----------- | :------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `tfSetfAuth` | `0x00010000` | 65536 | Authorize the other party to hold [currency issued by this account](../../../../concepts/tokens/index.md). (No effect unless using the [`asfRequireAuth` AccountSet flag](accountset.md#accountset-flags).) Cannot be unset. | +| `tfSetNoRipple` | `0x00020000` | 131072 | Enable the No Ripple flag, which blocks [rippling](../../../../concepts/tokens/fungible-tokens/rippling.md) between two trust lines of the same currency if this flag is enabled on both. | +| `tfClearNoRipple` | `0x00040000` | 262144 | Disable the No Ripple flag, allowing [rippling](../../../../concepts/tokens/fungible-tokens/rippling.md) on this trust line. | +| `tfSetFreeze` | `0x00100000` | 1048576 | [Freeze](../../../../concepts/tokens/fungible-tokens/freezes.md) the trust line. | +| `tfClearFreeze` | `0x00200000` | 2097152 | [Unfreeze](../../../../concepts/tokens/fungible-tokens/freezes.md) the trust line. | +| `tfSetDeepFreeze` | `0x00400000` | 4194304 | [Deep Freeze](../../../../concepts/tokens/fungible-tokens/deep-freeze.md) the trust line. | +| `tfClearDeepFreeze` | `0x00800000` | 8388608 | Clear the [Deep Freeze](../../../../concepts/tokens/fungible-tokens/deep-freeze.md) on the trust line. | If a transaction tries to enable No Ripple but cannot, it fails with the result code `tecNO_PERMISSION`. Before the [fix1578 amendment][] became enabled, such a transaction would result in `tesSUCCESS` (making any other changes it could) instead. diff --git a/docs/references/protocol/transactions/types/xchainaccountcreatecommit.md b/docs/references/protocol/transactions/types/xchainaccountcreatecommit.md index c52ddb0f46..258a18068b 100644 --- a/docs/references/protocol/transactions/types/xchainaccountcreatecommit.md +++ b/docs/references/protocol/transactions/types/xchainaccountcreatecommit.md @@ -1,18 +1,19 @@ --- seo: - description: Create an account on another chain to serve as a door account for a cross-chain bridge. + description: Create an account on another chain to serve as a door account for a cross-chain bridge. labels: - - Interoperability + - Interoperability status: not_enabled --- + # XChainAccountCreateCommit + [[Source]](https://github.com/XRPLF/rippled/blob/70d5c624e8cf732a362335642b2f5125ce4b43c1/src/xrpld/app/tx/detail/XChainBridge.h#L235 "Source") Create a new account for a [witness server](../../../../concepts/xrpl-sidechains/witness-servers.md) to submit transactions on an issuing chain. This transaction can only be used for XRP-XRP bridges. {% admonition type="danger" name="Warning" %}This transaction should only be executed if the witness attestations will be reliably delivered to the destination chain. If the signatures aren't delivered, then account creation will be blocked until attestations are received. This can be used maliciously; to disable this transaction on XRP-XRP bridges, omit the bridge's `MinAccountCreateAmount` field.{% /admonition %} - {% amendment-disclaimer name="XChainBridge" /%} ## Example XChainAccountCreateCommit JSON @@ -37,24 +38,22 @@ Create a new account for a [witness server](../../../../concepts/xrpl-sidechains } ``` - {% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%} -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:------------------|:--------------------|:------------------|:----------| :-----------| +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :---------------- | :------------------ | :---------------- | :-------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | | `Amount` | [Currency Amount][] | Amount | Yes | The amount, in XRP, to use for account creation. This must be greater than or equal to the `MinAccountCreateAmount` specified in the `Bridge` ledger object. | -| `Destination` | String | AccountID | Yes | The destination account on the destination chain. | -| `SignatureReward` | [Currency Amount][] | Amount | No | The amount, in XRP, to be used to reward the witness servers for providing signatures. This must match the amount on the `Bridge` ledger object. | -| `XChainBridge` | XChainBridge | XChain_Bridge | Yes | The bridge to create accounts for. | - +| `Destination` | String | AccountID | Yes | The destination account on the destination chain. | +| `SignatureReward` | [Currency Amount][] | Amount | No | The amount, in XRP, to be used to reward the witness servers for providing signatures. This must match the amount on the `Bridge` ledger object. | +| `XChainBridge` | XChainBridge | XChain_Bridge | Yes | The bridge to create accounts for. | ### XChainBridge Fields -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:--------------------|:----------|:------------------|:----------|:----------------| +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :------------------ | :-------- | :---------------- | :-------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `IssuingChainDoor` | String | AccountID | Yes | The door account on the issuing chain. For an XRP-XRP bridge, this must be the genesis account (the account that is created when the network is first started, which contains all of the XRP). | -| `IssuingChainIssue` | Issue | Issue | Yes | The asset that is minted and burned on the issuing chain. For an IOU-IOU bridge, the issuer of the asset must be the door account on the issuing chain, to avoid supply issues. | -| `LockingChainDoor` | String | AccountID | Yes | The door account on the locking chain. | -| `LockingChainIssue` | Issue | Issue | Yes | The asset that is locked and unlocked on the locking chain. | +| `IssuingChainIssue` | Issue | Issue | Yes | The asset that is minted and burned on the issuing chain. For an IOU-IOU bridge, the issuer of the asset must be the door account on the issuing chain, to avoid supply issues. | +| `LockingChainDoor` | String | AccountID | Yes | The door account on the locking chain. | +| `LockingChainIssue` | Issue | Issue | Yes | The asset that is locked and unlocked on the locking chain. | {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/protocol/transactions/types/xchainaddaccountcreateattestation.md b/docs/references/protocol/transactions/types/xchainaddaccountcreateattestation.md index bbb0594c40..67fee28466 100644 --- a/docs/references/protocol/transactions/types/xchainaddaccountcreateattestation.md +++ b/docs/references/protocol/transactions/types/xchainaddaccountcreateattestation.md @@ -1,11 +1,13 @@ --- seo: - description: Provide an attestation that an XChainAccountCreateCommit transaction occurred on another chain, for a cross-chain bridge. + description: Provide an attestation that an XChainAccountCreateCommit transaction occurred on another chain, for a cross-chain bridge. labels: - - Interoperability + - Interoperability status: not_enabled --- + # XChainAddAccountCreateAttestation + [[Source]](https://github.com/XRPLF/rippled/blob/70d5c624e8cf732a362335642b2f5125ce4b43c1/src/xrpld/app/tx/detail/XChainBridge.h#L189 "Source") Provide an attestation from a [witness server](../../../../concepts/xrpl-sidechains/witness-servers.md) that an `XChainAccountCreateCommit` transaction occurred on the other chain. @@ -48,32 +50,30 @@ Any account can submit signatures. } ``` - {% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%} -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:---------------------------|:--------------------|:------------------|:----------|:------------| -| `Amount` | [Currency Amount][] | Amount | Yes | The amount committed by the `XChainAccountCreateCommit` transaction on the source chain. | -| `AttestationRewardAccount` | String | AccountID | Yes | The account that should receive this signer's share of the `SignatureReward`. | -| `AttestationSignerAccount` | String | AccountID | Yes | The account on the door account's signer list that is signing the transaction. | -| `Destination` | String | AccountID | Yes | The destination account for the funds on the destination chain. | +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :------------------------- | :------------------ | :---------------- | :-------- | :--------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Amount` | [Currency Amount][] | Amount | Yes | The amount committed by the `XChainAccountCreateCommit` transaction on the source chain. | +| `AttestationRewardAccount` | String | AccountID | Yes | The account that should receive this signer's share of the `SignatureReward`. | +| `AttestationSignerAccount` | String | AccountID | Yes | The account on the door account's signer list that is signing the transaction. | +| `Destination` | String | AccountID | Yes | The destination account for the funds on the destination chain. | | `OtherChainSource` | String | AccountID | Yes | The account on the source chain that submitted the `XChainAccountCreateCommit` transaction that triggered the event associated with the attestation. | -| `PublicKey` | String | Blob | Yes | The public key used to verify the signature. | -| `Signature` | String | Blob | Yes | The signature attesting to the event on the other chain. | -| `SignatureReward` | [Currency Amount][] | Amount | Yes | The signature reward paid in the `XChainAccountCreateCommit` transaction. | -| `WasLockingChainSend` | Number | UInt8 | Yes | A boolean representing the chain where the event occurred. | -| `XChainAccountCreateCount` | String | UInt64 | Yes | The counter that represents the order that the claims must be processed in. | -| `XChainBridge` | XChainBridge | XChainBridge | Yes | The bridge associated with the attestation. | - +| `PublicKey` | String | Blob | Yes | The public key used to verify the signature. | +| `Signature` | String | Blob | Yes | The signature attesting to the event on the other chain. | +| `SignatureReward` | [Currency Amount][] | Amount | Yes | The signature reward paid in the `XChainAccountCreateCommit` transaction. | +| `WasLockingChainSend` | Number | UInt8 | Yes | A boolean representing the chain where the event occurred. | +| `XChainAccountCreateCount` | String | UInt64 | Yes | The counter that represents the order that the claims must be processed in. | +| `XChainBridge` | XChainBridge | XChainBridge | Yes | The bridge associated with the attestation. | ### XChainBridge Fields -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:--------------------|:----------|:------------------|:----------|:----------------| +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :------------------ | :-------- | :---------------- | :-------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `IssuingChainDoor` | String | AccountID | Yes | The door account on the issuing chain. For an XRP-XRP bridge, this must be the genesis account (the account that is created when the network is first started, which contains all of the XRP). | -| `IssuingChainIssue` | Issue | Issue | Yes | The asset that is minted and burned on the issuing chain. For an IOU-IOU bridge, the issuer of the asset must be the door account on the issuing chain, to avoid supply issues. | -| `LockingChainDoor` | String | AccountID | Yes | The door account on the locking chain. | -| `LockingChainIssue` | Issue | Issue | Yes | The asset that is locked and unlocked on the locking chain. | +| `IssuingChainIssue` | Issue | Issue | Yes | The asset that is minted and burned on the issuing chain. For an IOU-IOU bridge, the issuer of the asset must be the door account on the issuing chain, to avoid supply issues. | +| `LockingChainDoor` | String | AccountID | Yes | The door account on the locking chain. | +| `LockingChainIssue` | Issue | Issue | Yes | The asset that is locked and unlocked on the locking chain. | ## See Also diff --git a/docs/references/protocol/transactions/types/xchainaddclaimattestation.md b/docs/references/protocol/transactions/types/xchainaddclaimattestation.md index 6fe2764264..94ac87c0fe 100644 --- a/docs/references/protocol/transactions/types/xchainaddclaimattestation.md +++ b/docs/references/protocol/transactions/types/xchainaddclaimattestation.md @@ -1,11 +1,13 @@ --- seo: - description: Provide an attestation that an XChainCommit transaction occurred on another chain, for a cross-chain bridge. + description: Provide an attestation that an XChainCommit transaction occurred on another chain, for a cross-chain bridge. labels: - - Interoperability + - Interoperability status: not_enabled --- + # XChainAddClaimAttestation + [[Source]](https://github.com/XRPLF/rippled/blob/70d5c624e8cf732a362335642b2f5125ce4b43c1/src/xrpld/app/tx/detail/XChainBridge.h#L169 "Source") Provide proof from a [witness server](../../../../concepts/xrpl-sidechains/witness-servers.md) attesting to an `XChainCommit` transaction. @@ -35,17 +37,17 @@ Any account can submit signatures. "currency": "XRP" } }, - "XChainClaimAttestationBatch" : [ + "XChainClaimAttestationBatch": [ { - "XChainClaimAttestationBatchElement" : { - "Account" : "rnJmYAiqEVngtnb5ckRroXLtCbWC7CRUBx", - "Amount" : "100000000", - "AttestationSignerAccount" : "rnJmYAiqEVngtnb5ckRroXLtCbWC7CRUBx", - "Destination" : "r9A8UyNpW3X46FUc6P7JZqgn6WgAPjBwPg", - "PublicKey" : "03DAB289CA36FF377F3F4304C7A7203FDE5EDCBFC209F430F6A4355361425526D0", - "Signature" : "616263", - "WasLockingChainSend" : 1, - "XChainClaimID" : "0000000000000000" + "XChainClaimAttestationBatchElement": { + "Account": "rnJmYAiqEVngtnb5ckRroXLtCbWC7CRUBx", + "Amount": "100000000", + "AttestationSignerAccount": "rnJmYAiqEVngtnb5ckRroXLtCbWC7CRUBx", + "Destination": "r9A8UyNpW3X46FUc6P7JZqgn6WgAPjBwPg", + "PublicKey": "03DAB289CA36FF377F3F4304C7A7203FDE5EDCBFC209F430F6A4355361425526D0", + "Signature": "616263", + "WasLockingChainSend": 1, + "XChainClaimID": "0000000000000000" } } ], @@ -68,30 +70,28 @@ Any account can submit signatures. } ``` - {% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%} -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:---------------------------|:--------------------|:------------------|:----------|-------------| -| `Amount` | [Currency Amount][] | Amount | Yes | The amount committed by the `XChainCommit` transaction on the source chain. | -| `AttestationRewardAccount` | String | AccountID | Yes | The account that should receive this signer's share of the `SignatureReward`. | -| `AttestationSignerAccount` | String | AccountID | Yes | The account on the door account's signer list that is signing the transaction. | -| `Destination` | String | AccountID | No | The destination account for the funds on the destination chain (taken from the `XChainCommit` transaction). | +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :------------------------- | :------------------ | :---------------- | :-------- | --------------------------------------------------------------------------------------------------------------------------------------- | +| `Amount` | [Currency Amount][] | Amount | Yes | The amount committed by the `XChainCommit` transaction on the source chain. | +| `AttestationRewardAccount` | String | AccountID | Yes | The account that should receive this signer's share of the `SignatureReward`. | +| `AttestationSignerAccount` | String | AccountID | Yes | The account on the door account's signer list that is signing the transaction. | +| `Destination` | String | AccountID | No | The destination account for the funds on the destination chain (taken from the `XChainCommit` transaction). | | `OtherChainSource` | String | AccountID | Yes | The account on the source chain that submitted the `XChainCommit` transaction that triggered the event associated with the attestation. | -| `PublicKey` | String | Blob | Yes | The public key used to verify the attestation signature. | -| `Signature` | String | Blob | Yes | The signature attesting to the event on the other chain. | -| `WasLockingChainSend` | Number | UInt8 | Yes | A boolean representing the chain where the event occurred. | -| `XChainBridge` | XChainBridge | XChainBridge | Yes | The bridge to use to transfer funds. | -| `XChainClaimID` | String | UInt64 | Yes | The `XChainClaimID` associated with the transfer, which was included in the `XChainCommit` transaction. | - +| `PublicKey` | String | Blob | Yes | The public key used to verify the attestation signature. | +| `Signature` | String | Blob | Yes | The signature attesting to the event on the other chain. | +| `WasLockingChainSend` | Number | UInt8 | Yes | A boolean representing the chain where the event occurred. | +| `XChainBridge` | XChainBridge | XChainBridge | Yes | The bridge to use to transfer funds. | +| `XChainClaimID` | String | UInt64 | Yes | The `XChainClaimID` associated with the transfer, which was included in the `XChainCommit` transaction. | ### XChainBridge Fields -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:--------------------|:----------|:------------------|:----------|:----------------| +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :------------------ | :-------- | :---------------- | :-------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `IssuingChainDoor` | String | AccountID | Yes | The door account on the issuing chain. For an XRP-XRP bridge, this must be the genesis account (the account that is created when the network is first started, which contains all of the XRP). | -| `IssuingChainIssue` | Issue | Issue | Yes | The asset that is minted and burned on the issuing chain. For an IOU-IOU bridge, the issuer of the asset must be the door account on the issuing chain, to avoid supply issues. | -| `LockingChainDoor` | String | AccountID | Yes | The door account on the locking chain. | -| `LockingChainIssue` | Issue | Issue | Yes | The asset that is locked and unlocked on the locking chain. | +| `IssuingChainIssue` | Issue | Issue | Yes | The asset that is minted and burned on the issuing chain. For an IOU-IOU bridge, the issuer of the asset must be the door account on the issuing chain, to avoid supply issues. | +| `LockingChainDoor` | String | AccountID | Yes | The door account on the locking chain. | +| `LockingChainIssue` | Issue | Issue | Yes | The asset that is locked and unlocked on the locking chain. | {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/protocol/transactions/types/xchainclaim.md b/docs/references/protocol/transactions/types/xchainclaim.md index af99bd6d68..c4bf65f984 100644 --- a/docs/references/protocol/transactions/types/xchainclaim.md +++ b/docs/references/protocol/transactions/types/xchainclaim.md @@ -1,11 +1,13 @@ --- seo: - description: Complete a cross-chain transfer of value by claiming the value on the destination chain. + description: Complete a cross-chain transfer of value by claiming the value on the destination chain. labels: - - Interoperability + - Interoperability status: not_enabled --- + # XChainClaim + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/XChainBridge.cpp "Source") Complete a [cross-chain transfer of value](../../../../concepts/xrpl-sidechains/cross-chain-bridges.md). It allows a user to claim the value on the destination chain - the equivalent of the value locked on the source chain. A user can only claim the value if they own the cross-chain claim ID associated with the value locked on the source chain (the `Account` field). The user can send the funds to anyone (the `Destination` field). This transaction is only needed if an `OtherChainDestination` isn't specified in the `XChainCommit` transaction, or if something goes wrong with the automatic transfer of funds. @@ -36,25 +38,23 @@ If the transaction succeeds in moving funds, the referenced `XChainOwnedClaimID` } ``` - {% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%} -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:------------------------|:--------------------|:------------------|:----------|-------------| -| `Amount` | [Currency Amount][] | Amount | Yes | The amount to claim on the destination chain. This must match the amount attested to on the attestations associated with this `XChainClaimID`. | -| `Destination` | String | AccountID | Yes | The destination account on the destination chain. It must exist or the transaction will fail. However, if the transaction fails in this case, the sequence number and collected signatures won't be destroyed, and the transaction can be rerun with a different destination. | -| `DestinationTag` | Number | UInt32 | No | An integer destination tag. | -| `XChainBridge` | XChainBridge | XChainBridge | Yes | The bridge to use for the transfer. | -| `XChainClaimID` | String | UInt64 | Yes | The unique integer ID for the cross-chain transfer that was referenced in the corresponding `XChainCommit` transaction. | - +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :--------------- | :------------------ | :---------------- | :-------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Amount` | [Currency Amount][] | Amount | Yes | The amount to claim on the destination chain. This must match the amount attested to on the attestations associated with this `XChainClaimID`. | +| `Destination` | String | AccountID | Yes | The destination account on the destination chain. It must exist or the transaction will fail. However, if the transaction fails in this case, the sequence number and collected signatures won't be destroyed, and the transaction can be rerun with a different destination. | +| `DestinationTag` | Number | UInt32 | No | An integer destination tag. | +| `XChainBridge` | XChainBridge | XChainBridge | Yes | The bridge to use for the transfer. | +| `XChainClaimID` | String | UInt64 | Yes | The unique integer ID for the cross-chain transfer that was referenced in the corresponding `XChainCommit` transaction. | ### XChainBridge Fields -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:--------------------|:----------|:------------------|:----------|:----------------| +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :------------------ | :-------- | :---------------- | :-------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `IssuingChainDoor` | String | AccountID | Yes | The door account on the issuing chain. For an XRP-XRP bridge, this must be the genesis account (the account that is created when the network is first started, which contains all of the XRP). | -| `IssuingChainIssue` | Issue | Issue | Yes | The asset that is minted and burned on the issuing chain. For an IOU-IOU bridge, the issuer of the asset must be the door account on the issuing chain, to avoid supply issues. | -| `LockingChainDoor` | String | AccountID | Yes | The door account on the locking chain. | -| `LockingChainIssue` | Issue | Issue | Yes | The asset that is locked and unlocked on the locking chain. | +| `IssuingChainIssue` | Issue | Issue | Yes | The asset that is minted and burned on the issuing chain. For an IOU-IOU bridge, the issuer of the asset must be the door account on the issuing chain, to avoid supply issues. | +| `LockingChainDoor` | String | AccountID | Yes | The door account on the locking chain. | +| `LockingChainIssue` | Issue | Issue | Yes | The asset that is locked and unlocked on the locking chain. | {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/protocol/transactions/types/xchaincommit.md b/docs/references/protocol/transactions/types/xchaincommit.md index 797f07476d..3b3a8a8460 100644 --- a/docs/references/protocol/transactions/types/xchaincommit.md +++ b/docs/references/protocol/transactions/types/xchaincommit.md @@ -1,11 +1,13 @@ --- seo: - description: Start a cross-chain transfer of value. + description: Start a cross-chain transfer of value. labels: - - Interoperability + - Interoperability status: not_enabled --- + # XChainCommit + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/XChainBridge.cpp "Source") Do the second step in a [cross-chain transfer](../../../../concepts/xrpl-sidechains/cross-chain-bridges.md). This transaciton has two modes: @@ -36,24 +38,22 @@ Do the second step in a [cross-chain transfer](../../../../concepts/xrpl-sidecha } ``` - {% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%} -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:------------------------|:--------------------|:------------------|:----------|-------------| -| `Amount` | [Currency Amount][] | Amount | Yes | The asset to commit, and the quantity. This must match the door account's `LockingChainIssue` (if on the locking chain) or the door account's `IssuingChainIssue` (if on the issuing chain). | -| `OtherChainDestination` | String | AccountID | No | The destination account on the destination chain. If this is not specified, the account that submitted the `XChainCreateClaimID` transaction on the destination chain will need to submit a `XChainClaim` transaction to claim the funds. | -| `XChainBridge` | XChainBridge | XChainBridge | Yes | The bridge to use to transfer funds. | +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :---------------------- | :------------------ | :---------------- | :-------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Amount` | [Currency Amount][] | Amount | Yes | The asset to commit, and the quantity. This must match the door account's `LockingChainIssue` (if on the locking chain) or the door account's `IssuingChainIssue` (if on the issuing chain). | +| `OtherChainDestination` | String | AccountID | No | The destination account on the destination chain. If this is not specified, the account that submitted the `XChainCreateClaimID` transaction on the destination chain will need to submit a `XChainClaim` transaction to claim the funds. | +| `XChainBridge` | XChainBridge | XChainBridge | Yes | The bridge to use to transfer funds. | | `XChainClaimID` | String | UInt64 | Yes | The unique integer ID for a cross-chain transfer. This must be acquired on the destination chain (via a `XChainCreateClaimID` transaction) and checked from a validated ledger before submitting this transaction. If an incorrect sequence number is specified, the funds will be lost. | - ### XChainBridge Fields -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:--------------------|:----------|:------------------|:----------|:----------------| +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :------------------ | :-------- | :---------------- | :-------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `IssuingChainDoor` | String | AccountID | Yes | The door account on the issuing chain. For an XRP-XRP bridge, this must be the genesis account (the account that is created when the network is first started, which contains all of the XRP). | -| `IssuingChainIssue` | Issue | Issue | Yes | The asset that is minted and burned on the issuing chain. For an IOU-IOU bridge, the issuer of the asset must be the door account on the issuing chain, to avoid supply issues. | -| `LockingChainDoor` | String | AccountID | Yes | The door account on the locking chain. | -| `LockingChainIssue` | Issue | Issue | Yes | The asset that is locked and unlocked on the locking chain. | +| `IssuingChainIssue` | Issue | Issue | Yes | The asset that is minted and burned on the issuing chain. For an IOU-IOU bridge, the issuer of the asset must be the door account on the issuing chain, to avoid supply issues. | +| `LockingChainDoor` | String | AccountID | Yes | The door account on the locking chain. | +| `LockingChainIssue` | Issue | Issue | Yes | The asset that is locked and unlocked on the locking chain. | {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/references/protocol/transactions/types/xchaincreatebridge.md b/docs/references/protocol/transactions/types/xchaincreatebridge.md index 51204e2365..7e481d78b6 100644 --- a/docs/references/protocol/transactions/types/xchaincreatebridge.md +++ b/docs/references/protocol/transactions/types/xchaincreatebridge.md @@ -1,11 +1,13 @@ --- seo: - description: Create a bridge between two chains. + description: Create a bridge between two chains. labels: - - Interoperability + - Interoperability status: not_enabled --- + # XChainCreateBridge + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/XChainBridge.cpp "Source") Create a new [cross-chain bridge](../../../../concepts/xrpl-sidechains/cross-chain-bridges.md) on the chain that the transaction is submitted on, providing information about door accounts and assets for the bridge. @@ -39,24 +41,22 @@ The complete production-grade setup would also include a `SignerListSet` transac } ``` - {% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%} -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:-------------------------|:--------------------|:------------------|:----------|:------------| +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :----------------------- | :------------------ | :---------------- | :-------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `MinAccountCreateAmount` | [Currency Amount][] | Amount | No | The minimum amount, in XRP, required for a `XChainAccountCreateCommit` transaction. If this isn't present, the `XChainAccountCreateCommit` transaction will fail. This field can only be present on XRP-XRP bridges. | -| `SignatureReward` | [Currency Amount][] | Amount | Yes | The total amount to pay the witness servers for their signatures. This amount will be split among the signers. | -| `XChainBridge` | XChainBridge | XChainBridge | Yes | The bridge (door accounts and assets) to create. | - +| `SignatureReward` | [Currency Amount][] | Amount | Yes | The total amount to pay the witness servers for their signatures. This amount will be split among the signers. | +| `XChainBridge` | XChainBridge | XChainBridge | Yes | The bridge (door accounts and assets) to create. | ### XChainBridge Fields -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:--------------------|:----------|:------------------|:----------|:----------------| +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :------------------ | :-------- | :---------------- | :-------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `IssuingChainDoor` | String | AccountID | Yes | The door account on the issuing chain. For an XRP-XRP bridge, this must be the genesis account (the account that is created when the network is first started, which contains all of the XRP). | -| `IssuingChainIssue` | Issue | Issue | Yes | The asset that is minted and burned on the issuing chain. For an IOU-IOU bridge, the issuer of the asset must be the door account on the issuing chain, to avoid supply issues. | -| `LockingChainDoor` | String | AccountID | Yes | The door account on the locking chain. | -| `LockingChainIssue` | Issue | Issue | Yes | The asset that is locked and unlocked on the locking chain. | +| `IssuingChainIssue` | Issue | Issue | Yes | The asset that is minted and burned on the issuing chain. For an IOU-IOU bridge, the issuer of the asset must be the door account on the issuing chain, to avoid supply issues. | +| `LockingChainDoor` | String | AccountID | Yes | The door account on the locking chain. | +| `LockingChainIssue` | Issue | Issue | Yes | The asset that is locked and unlocked on the locking chain. | ## See Also diff --git a/docs/references/protocol/transactions/types/xchaincreateclaimid.md b/docs/references/protocol/transactions/types/xchaincreateclaimid.md index 7fc9e02a82..917e223a39 100644 --- a/docs/references/protocol/transactions/types/xchaincreateclaimid.md +++ b/docs/references/protocol/transactions/types/xchaincreateclaimid.md @@ -1,16 +1,18 @@ --- seo: - description: Create a cross-chain claim ID that is used for a cross-chain transfer. + description: Create a cross-chain claim ID that is used for a cross-chain transfer. labels: - - Interoperability + - Interoperability status: not_enabled --- + # XChainCreateClaimID + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/XChainBridge.cpp "Source") -Create a new cross-chain claim ID that is used for a [cross-chain transfer](../../../../concepts/xrpl-sidechains/cross-chain-bridges.md). A cross-chain claim ID represents *one* cross-chain transfer of value. +Create a new cross-chain claim ID that is used for a [cross-chain transfer](../../../../concepts/xrpl-sidechains/cross-chain-bridges.md). A cross-chain claim ID represents _one_ cross-chain transfer of value. -This transaction is the first step of a cross-chain transfer of value and is submitted on the destination chain, not the source chain. +This transaction is the first step of a cross-chain transfer of value and is submitted on the destination chain, not the source chain. It also includes the account on the source chain that locks or burns the funds on the source chain. @@ -37,24 +39,22 @@ It also includes the account on the source chain that locks or burns the funds o } ``` - {% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%} -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:-------------------|:---------------------|:------------------|:----------|-------------| -| `OtherChainSource` | String - [Address][] | AccountID | Yes | The account that must send the `XChainCommit` transaction on the source chain. | +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :----------------- | :------------------- | :---------------- | :-------- | ------------------------------------------------------------------------------------------------------------------------------------- | +| `OtherChainSource` | String - [Address][] | AccountID | Yes | The account that must send the `XChainCommit` transaction on the source chain. | | `SignatureReward` | [Currency Amount][] | Amount | Yes | The amount, in XRP, to reward the witness servers for providing signatures. This must match the amount on the `Bridge` ledger object. | -| `XChainBridge` | XChainBridge | XChainBridge | Yes | The bridge to create the claim ID for. | - +| `XChainBridge` | XChainBridge | XChainBridge | Yes | The bridge to create the claim ID for. | ### XChainBridge Fields -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:--------------------|:----------|:------------------|:----------|:----------------| +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :------------------ | :-------- | :---------------- | :-------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `IssuingChainDoor` | String | Account | Yes | The door account on the issuing chain. For an XRP-XRP bridge, this must be the genesis account (the account that is created when the network is first started, which contains all of the XRP). | -| `IssuingChainIssue` | Issue | Issue | Yes | The asset that is minted and burned on the issuing chain. For an IOU-IOU bridge, the issuer of the asset must be the door account on the issuing chain, to avoid supply issues. | -| `LockingChainDoor` | String | Account | Yes | The door account on the locking chain. | -| `LockingChainIssue` | Issue | Issue | Yes | The asset that is locked and unlocked on the locking chain. | +| `IssuingChainIssue` | Issue | Issue | Yes | The asset that is minted and burned on the issuing chain. For an IOU-IOU bridge, the issuer of the asset must be the door account on the issuing chain, to avoid supply issues. | +| `LockingChainDoor` | String | Account | Yes | The door account on the locking chain. | +| `LockingChainIssue` | Issue | Issue | Yes | The asset that is locked and unlocked on the locking chain. | ## See Also diff --git a/docs/references/protocol/transactions/types/xchainmodifybridge.md b/docs/references/protocol/transactions/types/xchainmodifybridge.md index 5186f8ba54..4155440542 100644 --- a/docs/references/protocol/transactions/types/xchainmodifybridge.md +++ b/docs/references/protocol/transactions/types/xchainmodifybridge.md @@ -1,11 +1,13 @@ --- seo: - description: Modify the parameters of a cross-chain bridge. + description: Modify the parameters of a cross-chain bridge. labels: - - Interoperability + - Interoperability status: not_enabled --- + # XChainModifyBridge + [[Source]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/XChainBridge.cpp "Source") Modify the parameters of a [cross-chain bridge](../../../../concepts/xrpl-sidechains/cross-chain-bridges.md). Only managers can send this transaction, and they can only change the `SignatureReward` and the `MinAccountCreateAmount`. @@ -37,33 +39,30 @@ This transaction must be sent by the door account and requires the entities that } ``` - {% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%} -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:-------------------------|:--------------------|:------------------|:----------|-------------| -| `Flags` | Number | UInt32 | Yes | Specifies the flags for this transaction. | +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :----------------------- | :------------------ | :---------------- | :-------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Flags` | Number | UInt32 | Yes | Specifies the flags for this transaction. | | `MinAccountCreateAmount` | [Currency Amount][] | Amount | No | The minimum amount, in XRP, required for a `XChainAccountCreateCommit` transaction. If this is not present, the `XChainAccountCreateCommit` transaction will fail. This field can only be present on XRP-XRP bridges. | -| `SignatureReward` | [Currency Amount][] | Amount | No | The signature reward split between the witnesses for submitting attestations. | -| `XChainBridge` | XChainBridge | XChainBridge | Yes | The bridge to modify. | - +| `SignatureReward` | [Currency Amount][] | Amount | No | The signature reward split between the witnesses for submitting attestations. | +| `XChainBridge` | XChainBridge | XChainBridge | Yes | The bridge to modify. | ### XChainBridge Fields -| Field | JSON Type | [Internal Type][] | Required? | Description | -|:--------------------|:----------|:------------------|:----------|:----------------| +| Field | JSON Type | [Internal Type][] | Required? | Description | +| :------------------ | :-------- | :---------------- | :-------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `IssuingChainDoor` | String | AccountID | Yes | The door account on the issuing chain. For an XRP-XRP bridge, this must be the genesis account (the account that is created when the network is first started, which contains all of the XRP). | -| `IssuingChainIssue` | Issue | Issue | Yes | The asset that is minted and burned on the issuing chain. For an IOU-IOU bridge, the issuer of the asset must be the door account on the issuing chain, to avoid supply issues. | -| `LockingChainDoor` | String | AccountID | Yes | The door account on the locking chain. | -| `LockingChainIssue` | Issue | Issue | Yes | The asset that is locked and unlocked on the locking chain. | - +| `IssuingChainIssue` | Issue | Issue | Yes | The asset that is minted and burned on the issuing chain. For an IOU-IOU bridge, the issuer of the asset must be the door account on the issuing chain, to avoid supply issues. | +| `LockingChainDoor` | String | AccountID | Yes | The door account on the locking chain. | +| `LockingChainIssue` | Issue | Issue | Yes | The asset that is locked and unlocked on the locking chain. | ## Transaction Flags In addition to the universal transaction flags that are applicable to all transactions, you can specify this flag: -| Flag Name | Flag Value | Description | -|------------------------------|--------------|-------------| +| Flag Name | Flag Value | Description | +| ---------------------------- | ------------ | -------------------------------------------------- | | `tfClearAccountCreateAmount` | `0x00010000` | Clears the `MinAccountCreateAmount` of the bridge. | ## See Also diff --git a/docs/references/xrp-api.md b/docs/references/xrp-api.md index 6fcd50ab2c..9841355626 100644 --- a/docs/references/xrp-api.md +++ b/docs/references/xrp-api.md @@ -2,15 +2,16 @@ html: xrp-api.html parent: references.html seo: - description: An API server that provides a REST-like interface to the XRP Ledger. + description: An API server that provides a REST-like interface to the XRP Ledger. #template: pagetype-redirect.html.jinja redirect_url: https://xpring-eng.github.io/xrp-api/ nav_omit: true filters: - - xrpapi_readme -sidebar: - path: ../../sidebars.yaml + - xrpapi_readme +sidebar: + path: ../../sidebars.yaml --- + # XRP-API The XRP-API server provides an alternate REST-like interface to the XRP Ledger, but is not currently considered stable software and is not actively supported. diff --git a/docs/references/xrp-ledger-toml.md b/docs/references/xrp-ledger-toml.md index f963966219..3db6356132 100644 --- a/docs/references/xrp-ledger-toml.md +++ b/docs/references/xrp-ledger-toml.md @@ -2,19 +2,20 @@ html: xrp-ledger-toml.html parent: references.html seo: - description: Provide machine-readable information about yourself to other XRP Ledger users. #TODO:translate + description: Provide machine-readable information about yourself to other XRP Ledger users. #TODO:translate curated_anchors: - - name: Serving the File - anchor: "#serving-the-file" - - name: Contents - anchor: "#contents" - - name: CORS Setup - anchor: "#cors-setup" - - name: Domain Verification - anchor: "#domain-verification" - - name: Account Verification - anchor: "#account-verification" + - name: Serving the File + anchor: '#serving-the-file' + - name: Contents + anchor: '#contents' + - name: CORS Setup + anchor: '#cors-setup' + - name: Domain Verification + anchor: '#domain-verification' + - name: Account Verification + anchor: '#account-verification' --- + # xrp-ledger.toml File If you run an XRP Ledger validator or use the XRP Ledger for your business, you can provide information about your usage of the XRP Ledger to the world in a machine-readable **`xrp-ledger.toml`** file. Scripts and applications can use the information contained in your `xrp-ledger.toml` file to better understand and represent you in the XRP Ledger. In some cases, humans may also find it useful to read the same file. @@ -46,7 +47,6 @@ The contents MUST be served through the **HTTPS protocol** for security, using a The plain HTTP protocol is vulnerable to man-in-the-middle attacks; for example, some internet services have been known to modify contents retrieved over plain HTTP to inject their own advertisements. To prevent similar techniques from misrepresenting the contents of the `xrp-ledger.toml` file and potentially causing scripts to behave incorrectly or deceptively, one SHOULD NOT trust the contents of an `xrp-ledger.toml` file that is served over plain HTTP. - ### Domain The domain where you serve the `xrp-ledger.toml` file is a statement of ownership. The file's contents are not as useful or trustworthy when they stand on their own. For practical reasons, it may be undesirable to serve the file from your main domain, so you MAY use any number of subdomains. When setting the [`Domain` field of XRP Ledger accounts](protocol/transactions/types/accountset.md#domain), you MUST provide the full domain, including all subdomains you used. See [Account Verification](#account-verification) for details. @@ -55,14 +55,12 @@ You MAY serve the same file from multiple subdomains, if desired. For example, i It is RECOMMENDED that you serve a human-readable website from the same domain as the `xrp-ledger.toml` file. The website can provide further information about your identity and how you use the XRP Ledger, which helps to build trust toward you and your services. - ### Path In compliance with [RFC5785](https://tools.ietf.org/html/rfc5785), the path MUST start with `/.well-known/`. The file MUST be available at the path `/.well-known/xrp-ledger.toml` exactly (case-sensitive, all lower case). You MAY, if desired, serve the same file from paths with different capitalization, such as `/.well-known/XRP-Ledger.TOML`. You MUST NOT serve different contents depending on how the path is capitalized. - ### Headers #### Content-Type @@ -87,8 +85,6 @@ The server MAY use other standard HTTP headers as desired, including ones for co The `xrp-ledger.toml` file MAY be an actual file stored on the web server, or it MAY be generated on-demand by the web server. The latter case may be preferable depending on the contents provided in the file or the configuration of your website. - - ## Contents The contents of the `xrp-ledger.toml` file MUST be formatted in [TOML](https://github.com/toml-lang/toml). **All contents are optional.** Comments are optional, but encouraged for readability. @@ -165,11 +161,11 @@ symbol = "😆" # In practical situations, it may be unwise to use emoji ### Metadata -The metadata section provides information about the `xrp-ledger.toml` file itself. If present, this section MUST BE presented as a single table, headed by the line `[METADATA]`, using _single_ square brackets. (Most other sections of the `xrp-ledger.toml` file use double brackets, for arrays of information, but there is at most one `[METADATA]` section.) You MAY provide any of the following fields (case-sensitive): +The metadata section provides information about the `xrp-ledger.toml` file itself. If present, this section MUST BE presented as a single table, headed by the line `[METADATA]`, using _single_ square brackets. (Most other sections of the `xrp-ledger.toml` file use double brackets, for arrays of information, but there is at most one `[METADATA]` section.) You MAY provide any of the following fields (case-sensitive): -| Field | Type | Description | -|:-----------|:-----------------|:---------------------------------------------| -| `modified` | Offset Date-Time | The time the `xrp-leder.toml` file was last modified. | +| Field | Type | Description | +| :--------- | :--------------- | :--------------------------------------------------------------------------------------------------------------- | +| `modified` | Offset Date-Time | The time the `xrp-leder.toml` file was last modified. | | `expires` | Offset Date-Time | If the current time is equal or greater than this time, the `xrp-ledger.toml` file should be considered expired. | The specification does not define a `domain` field; the field should be determined from the site serving the file. @@ -184,68 +180,63 @@ The _first_ `[[VALIDATORS]]` entry in the file is treated as your primary valida For _each_ `[[VALIDATORS]]` entry, you MAY provide any of the following fields: -| Field | Type | Description | -|:-------------|:-------|:-----------------------------------------------------| -| `public_key` | String | The master public key of your primary validator, encoded in the XRP Ledger's base58 format (typically, this starts with `n`). | -| `attestation`| String | A signed message, in hexadecimal, indicating that the same entity runs this validator and the domain serving this TOML file. For more information, see [Domain Verification](xrp-ledger-toml.md#domain-verification). -| `network` | String | Which network chain this validator follows. If omitted, clients SHOULD assume that the validator follows the production XRP Ledger. Use `main` to explicitly specify the production XRP Ledger. Use `testnet` for Ripple's XRP Ledger Test Net. You MAY provide other values to describe other test nets or non-standard network chains. | -| `owner_country` | String | The two-letter ISO-3166-2 country code describing the main legal jurisdiction that you (the validator's owner) are subject to. | -| `server_country` | String | The two-letter ISO-3166-2 country code describing the physical location where this validating server is. | -| `unl` | String | An HTTPS URL where one can find the list of other validators this validator trusts. If the validator is configured to use a validator list site for UNL recommendations, this MUST match the server's configuration. For the production XRP Ledger network, use `https://vl.ripple.com` (trailing slash optional). | - +| Field | Type | Description | +| :--------------- | :----- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `public_key` | String | The master public key of your primary validator, encoded in the XRP Ledger's base58 format (typically, this starts with `n`). | +| `attestation` | String | A signed message, in hexadecimal, indicating that the same entity runs this validator and the domain serving this TOML file. For more information, see [Domain Verification](xrp-ledger-toml.md#domain-verification). | +| `network` | String | Which network chain this validator follows. If omitted, clients SHOULD assume that the validator follows the production XRP Ledger. Use `main` to explicitly specify the production XRP Ledger. Use `testnet` for Ripple's XRP Ledger Test Net. You MAY provide other values to describe other test nets or non-standard network chains. | +| `owner_country` | String | The two-letter ISO-3166-2 country code describing the main legal jurisdiction that you (the validator's owner) are subject to. | +| `server_country` | String | The two-letter ISO-3166-2 country code describing the physical location where this validating server is. | +| `unl` | String | An HTTPS URL where one can find the list of other validators this validator trusts. If the validator is configured to use a validator list site for UNL recommendations, this MUST match the server's configuration. For the production XRP Ledger network, use `https://vl.ripple.com` (trailing slash optional). | ### Accounts The accounts list provides information about XRP Ledger accounts you own. If present, the accounts list MUST BE presented as an array of tables, with each entry using the header `[[ACCOUNTS]]`, including double square brackets. Each entry describes a separate account. For _each_ `[[ACCOUNTS]]` entry, you MAY provide any of the following fields: -| Field | Type | Description | -|:----------|:-------|:--------------------------------------------------------| -| `address` | String | The public address of the account, encoded in the XRP Ledger's base58 format (typically, this starts with an `r`). | +| Field | Type | Description | +| :-------- | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `address` | String | The public address of the account, encoded in the XRP Ledger's base58 format (typically, this starts with an `r`). | | `network` | String | The network chain where this account is primarily used. If omitted, clients SHOULD assume that the account is claimed on the production XRP Ledger _and_ possibly other network chains. Use `main` for the production XRP Ledger. Use `testnet` for Ripple's XRP Ledger Test Net. You MAY provide other values to describe other test nets or non-standard network chains. | -| `desc` | String | A human-readable description of this account's purpose or how you use it. | +| `desc` | String | A human-readable description of this account's purpose or how you use it. | {% admonition type="warning" name="Caution" %}Anyone could claim ownership of any account by hosting an `xrp-ledger.toml` file, so the presence of an account here SHOULD NOT be considered authoritative unless the [`Domain` field for these accounts in the XRP Ledger](protocol/transactions/types/accountset.md#domain) also matches the domain that this `xrp-ledger.toml` file was served from. See [Account Verification](#account-verification) for details.{% /admonition %} - ### Principals The principals list provides information about the people (or business entities) involved in your XRP Ledger businesses and services. If present, the principals list MUST BE presented as an array of tables, with each entry using the header `[[PRINCIPALS]]`, including double square brackets. Each entry describes a different point of contact. For _each_ `[[PRINCIPALS]]` entry, you MAY provide any of the following fields: -| Field | Type | Description | -|:--------|:-------|:---------------------------------------------------------| -| `name` | String | The name of this principal. | -| `email` | String | The email address where this principal can be contacted. | +| Field | Type | Description | +| :--------- | :----- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `name` | String | The name of this principal. | +| `email` | String | The email address where this principal can be contacted. | | `social_1` | String | The social media username/handle where this principal can be contacted. For consistency, use site names, not domains, when specifying social media platforms. For example, `x = "@username"` or `linkedin = "username"` | You may provide other contact information as desired. (See [Custom Fields](#custom-fields) for information about custom fields.) - ### Servers The servers list provides information about XRP Ledger servers (`rippled`) you run with public access. If present, the servers list MUST BE presented as an array of tables, with each entry using the header `[[SERVERS]]`, including double square brackets. Each entry describes a different server or server cluster. For _each_ `[[SERVERS]]` entry, you MAY provide any of the following fields: -| Field | Type | Description | -|:--------|:-------|:---------------------------------------------------------| -| `json_rpc` | String (URL) | The URL where you serve a public JSON-RPC API. This MUST begin with either `http://` or `https://`. HTTPS is RECOMMENDED for public APIs. | -| `ws` | String (URL) | The URL where you serve a public WebSocket API. This MUST begin with either `ws://` or `wss://`. WSS is RECOMMENDED for public APIs. | -| `peer` | String (URL) | The URL where your server is listening for the XRP Ledger Peer Protocol. Other XRP Ledger servers can connect at this URL. If your server provides a Peer Crawler response, it is served from this URL with `crawl` appended. | -| `network` | String | Which network chain this server follows. If omitted, clients SHOULD assume that the server follows the production XRP Ledger. Use `main` to explicitly specify the production XRP Ledger. Use `testnet` for Ripple's XRP Ledger Test Net. You MAY provide other values to describe other test nets or non-standard network chains. | +| Field | Type | Description | +| :--------- | :----------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `json_rpc` | String (URL) | The URL where you serve a public JSON-RPC API. This MUST begin with either `http://` or `https://`. HTTPS is RECOMMENDED for public APIs. | +| `ws` | String (URL) | The URL where you serve a public WebSocket API. This MUST begin with either `ws://` or `wss://`. WSS is RECOMMENDED for public APIs. | +| `peer` | String (URL) | The URL where your server is listening for the XRP Ledger Peer Protocol. Other XRP Ledger servers can connect at this URL. If your server provides a Peer Crawler response, it is served from this URL with `crawl` appended. | +| `network` | String | Which network chain this server follows. If omitted, clients SHOULD assume that the server follows the production XRP Ledger. Use `main` to explicitly specify the production XRP Ledger. Use `testnet` for Ripple's XRP Ledger Test Net. You MAY provide other values to describe other test nets or non-standard network chains. | For all URLs in this section, the trailing slash is RECOMMENDED. If omitted, client applications SHOULD assume that there is a trailing slash implied. - ### Currencies If you issue any assets, tokens, or currencies in the XRP Ledger, you can provide information about them in the `[[CURRENCIES]]` list. If present, the currencies list MUST BE presented as an array of tables, with each entry using the header `[[CURRENCIES]]`, including double square brackets. Each entry describes a separate token or asset. For _each_ `[[CURRENCIES]]` entry, you MAY provide any of the following fields: -| Field | Type | Description | -|:--------|:-------|:------------------------------------------------------| -| `code` | String | The (case-sensitive) ticker symbol of this token in the XRP Ledger. This can be a three-digit code, a 40-character hex code, or a custom format (for clients that know how to represent the non-standard code in the XRP Ledger). See the [Currency Code reference](protocol/data-types/currency-formats.md#currency-codes) for information on the XRP Ledger's currency code formats. | -| `display_decimals` | Number | The number of decimals that a client application should use to display amounts of this currency. | -| `issuer` | String | The address of the XRP Ledger account where you issue this currency, encoded in the XRP Ledger's base58 format (typically, this starts with an `r`). You SHOULD also list this address in the `[[ACCOUNTS]]` list. (Reminder: the presence of an address here is not authoritative on its own. See [Account Verification](#account-verification) for details.) | -| `network` | String | The network chain where you issue this token. Use `main` to explicitly specify the production XRP Ledger. If omitted, clients SHOULD assume that the currency is issued on the production XRP Ledger. Use `testnet` for Ripple's XRP Ledger Test Net. You MAY provide other values to describe other test nets or non-standard network chains. | -| `symbol` | String | The text symbol, such "$" or "€", that should be used with amounts of this asset or currency, if it has a symbol in the Unicode standard. | - +| Field | Type | Description | +| :----------------- | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `code` | String | The (case-sensitive) ticker symbol of this token in the XRP Ledger. This can be a three-digit code, a 40-character hex code, or a custom format (for clients that know how to represent the non-standard code in the XRP Ledger). See the [Currency Code reference](protocol/data-types/currency-formats.md#currency-codes) for information on the XRP Ledger's currency code formats. | +| `display_decimals` | Number | The number of decimals that a client application should use to display amounts of this currency. | +| `issuer` | String | The address of the XRP Ledger account where you issue this currency, encoded in the XRP Ledger's base58 format (typically, this starts with an `r`). You SHOULD also list this address in the `[[ACCOUNTS]]` list. (Reminder: the presence of an address here is not authoritative on its own. See [Account Verification](#account-verification) for details.) | +| `network` | String | The network chain where you issue this token. Use `main` to explicitly specify the production XRP Ledger. If omitted, clients SHOULD assume that the currency is issued on the production XRP Ledger. Use `testnet` for Ripple's XRP Ledger Test Net. You MAY provide other values to describe other test nets or non-standard network chains. | +| `symbol` | String | The text symbol, such "$" or "€", that should be used with amounts of this asset or currency, if it has a symbol in the Unicode standard. | ### Custom Fields @@ -257,7 +248,6 @@ Tools MAY return an error if a field they recognize is not formatted as expected When creating custom fields, be mindful of the field name you choose. If you use a very generic field name, other users may use the same name to mean something different, or formatted in a conflicting way. If you use a custom field that you think others will find useful, please contribute a specification for your field to the maintainers of this document. - ## CORS Setup You MUST configure your web server to allow Cross-Origin Resource Sharing ([CORS][]) for the `xrp-ledger.toml` file. This configuration depends on your web server. @@ -278,7 +268,6 @@ Alternatively, you can add the following to a `.htaccess` file in the `/.well-kn ``` - If you use nginx, add the following to your config file: ``` @@ -291,7 +280,6 @@ For other web servers, see [I want to add CORS support to my server](https://ena [CORS]: https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS - ## Domain Verification One use for the `xrp-ledger.toml` file is verifying that the same entity that runs a particular domain also runs a particular validator, as identified by the validator's public key. Verifying that a domain and a validator are owned by the same entity provides greater assurances of the identity of the validator operator and is a recommended step for becoming a trusted validator. (For other recommendations, see [Properties of a Good Validator](../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md#1-understand-the-traits-of-a-good-validator).) @@ -299,25 +287,22 @@ One use for the `xrp-ledger.toml` file is verifying that the same entity that ru Domain verification requires establishing a two-way link between the domain operator and the validator: 1. The domain claims ownership of the validator: + - Serve an `xrp-ledger.toml` file, following all the [requirements described in this document](#serving-the-file), from the domain in question. - - Serve an `xrp-ledger.toml` file, following all the [requirements described in this document](#serving-the-file), from the domain in question. - - - In that `xrp-ledger.toml` file, provide a `[[VALIDATORS]]` entry with the validator's master public key in the `public_key` field. + - In that `xrp-ledger.toml` file, provide a `[[VALIDATORS]]` entry with the validator's master public key in the `public_key` field. 2. The validator claims ownership of the domain: + - Ensure that you have access to the validator-keys.json file that you created when first setting up your validator. If you have lost your keys or the keys have been compromised, please [revoke your keys](../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md#revoke-validator-keys) and generate new keys. - - Ensure that you have access to the validator-keys.json file that you created when first setting up your validator. If you have lost your keys or the keys have been compromised, please [revoke your keys](../infrastructure/configuration/server-modes/run-rippled-as-a-validator.md#revoke-validator-keys) and generate new keys. + Note: Recall that your validator-keys.json file should be stored **in a location not on your validator**. - Note: Recall that your validator-keys.json file should be stored **in a location not on your validator**. + - **In a location not on your validator**, build the [validator-keys-tool](https://github.com/ripple/validator-keys-tool). - - **In a location not on your validator**, build the [validator-keys-tool](https://github.com/ripple/validator-keys-tool). + - Run the following command to generate a new validator token that incorporates your domain and update your `xrp-ledger.toml` and `rippled.cfg` files: - - Run the following command to generate a new validator token that incorporates your domain and update your `xrp-ledger.toml` and `rippled.cfg` files: - - - ``` - $./validator-keys set_domain example.com - ``` + ``` + $./validator-keys set_domain example.com + ``` {% admonition type="danger" name="Warning" %}This command updates your validator-keys.json file. Please be sure to store the `validator-keys.json` file in a secure location.{% /admonition %} @@ -349,14 +334,11 @@ hYWExwbGMyR25NaEFrRTFhZ3FYeEJ3RHdEYklENk9NU1l1TTBGREFscEFnTms4U0tG bjdNTzJmZGtjd1JRSWhBT25ndTlzQUtxWFlvdUorbDJWMFcrc0FPa1ZCK1pSUzZQU2 hsSkFmVXNYZkFpQnNWSkdlc2FhZE9KYy9hQVpva1MxdnltR21WcmxIUEtXWDNZeXd1 NmluOEhBU1FLUHVnQkQ2N2tNYVJGR3ZtcEFUSGxHS0pkdkRGbFdQWXk1QXFEZWRGdj -VUSmEydzBpMjFlcTNNWXl3TFZKWm5GT3I3QzBrdzJBaVR6U0NqSXpkaXRROD0ifQ== +VUSmEydzBpMjFlcTNNWXl3TFZKWm5GT3I3QzBrdzJBaVR6U0NqSXpkaXRROD0ifQ== ``` Update [the contents of your `xrp-ledger.toml` file](#contents) with the `attestation` block, and update the `rippled.cfg` file with the `[validator_token]` block from the sample output. - - - {% admonition type="danger" name="Warning" %}Your validator token is meant to be kept secret. Do not share it on your `xrp-ledger.toml` file or anywhere else.{% /admonition %} ## Account Verification @@ -366,20 +348,18 @@ Similar to [Domain Verification](#domain-verification), account verification is Account verification requires establishing a two-way link between the domain operator and the address: 1. The domain claims ownership of the address. + - Serve an `xrp-ledger.toml` file, following all the [requirements described in this document](#serving-the-file), from the domain in question. - - Serve an `xrp-ledger.toml` file, following all the [requirements described in this document](#serving-the-file), from the domain in question. - - - In that `xrp-ledger.toml` file, provide an `[[ACCOUNTS]]` entry with the address of the account you want to verify. If you issue currency from this address, you may also provide this account in the `issuer` field of a `[[CURRENCIES]]` entry. + - In that `xrp-ledger.toml` file, provide an `[[ACCOUNTS]]` entry with the address of the account you want to verify. If you issue currency from this address, you may also provide this account in the `issuer` field of a `[[CURRENCIES]]` entry. 2. The address claims ownership by a domain. - [Set the account's `Domain` field](protocol/transactions/types/accountset.md#domain) to match the domain that this `xrp-ledger.toml` file was served from. The domain value (when decoded from ASCII) MUST match _exactly_, including all subdomains such as `www.`. For internationalized domain names, set the `Domain` value to the Punycode of the domain, as described in [RFC3492](https://tools.ietf.org/html/rfc3492). + [Set the account's `Domain` field](protocol/transactions/types/accountset.md#domain) to match the domain that this `xrp-ledger.toml` file was served from. The domain value (when decoded from ASCII) MUST match _exactly_, including all subdomains such as `www.`. For internationalized domain names, set the `Domain` value to the Punycode of the domain, as described in [RFC3492](https://tools.ietf.org/html/rfc3492). - Since setting the `Domain` requires sending a transaction, whoever set the `Domain` value must have possessed the account's secret key when the transaction was sent. + Since setting the `Domain` requires sending a transaction, whoever set the `Domain` value must have possessed the account's secret key when the transaction was sent. Either of these two links, on their own, SHOULD NOT be considered authoritative. Anyone could host an `xrp-ledger.toml` file claiming ownership of any account, and any account operator could set its `Domain` field to any string it wants. If the two match, it provides strong evidence that the same entity controls both. - ## Acknowledgements This specification is derived from the [original ripple.txt spec](https://web.archive.org/web/20161007113240/https://wiki.ripple.com/Ripple.txt) and draws inspiration from the [stellar.toml file](https://www.stellar.org/developers/guides/walkthroughs/how-to-complete-stellar-toml.html). This specification also incorporates feedback from XRP community members and many past and current Ripple employees. diff --git a/docs/references/xrpljs2-migration-guide.md b/docs/references/xrpljs2-migration-guide.md index a700cb63c8..4d6b81585f 100644 --- a/docs/references/xrpljs2-migration-guide.md +++ b/docs/references/xrpljs2-migration-guide.md @@ -1,9 +1,10 @@ --- html: xrpljs2-migration-guide.html seo: - description: Learn how to migrate JavaScript code to the newer client library format. + description: Learn how to migrate JavaScript code to the newer client library format. parent: https://js.xrpl.org/ --- + # Migration Guide for ripple-lib 1.x to xrpl.js 2.x Follow these instructions to migrate JavaScript / TypeScript code using the **ripple-lib** (1.x) library to use the **xrpl.js** (2.x) library for the XRP Ledger instead. @@ -21,38 +22,37 @@ The catch-all `RippleAPI` class from ripple-lib 1.x is also gone. With xrpl.js 2 **ripple-lib 1.10.0:** ```js -const ripple = require('ripple-lib'); +const ripple = require('ripple-lib') -(async function() { +;(async function () { const api = new ripple.RippleAPI({ - server: 'wss://xrplcluster.com' - }); + server: 'wss://xrplcluster.com', + }) - await api.connect(); + await api.connect() // Your code here - api.disconnect(); -})(); + api.disconnect() +})() ``` **xrpl.js 2.0.0:** ```js -const xrpl = require("xrpl"); +const xrpl = require('xrpl') -(async function() { - const client = new xrpl.Client('wss://xrplcluster.com'); +;(async function () { + const client = new xrpl.Client('wss://xrplcluster.com') - await client.connect(); + await client.connect() // Your code here - client.disconnect(); -})(); + client.disconnect() +})() ``` - ## Validated Results By default, most methods in ripple-lib 1.x only returned results that were validated by the [consensus process](../concepts/consensus-protocol/index.md) and therefore final. The xrpl.js equivalents of many methods use the [`Client.request()` method](https://js.xrpl.org/classes/Client.html#request) to call the WebSocket API, where the XRP Ledger server's default settings often use the current (pending) ledger to serve data which is not final. @@ -64,7 +64,7 @@ When making API requests with xrpl.js 2.0 using `Client.request()`, you should e **ripple-lib 1.x:** ```js -const trustlines = await api.getTrustlines("rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn") +const trustlines = await api.getTrustlines('rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn') console.log(trustlines) ``` @@ -72,14 +72,13 @@ console.log(trustlines) ```js const trustlines = await client.request({ - "command": "account_lines", - "account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "ledger_index": "validated" + command: 'account_lines', + account: 'rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn', + ledger_index: 'validated', }) console.log(trustlines.result) ``` - ## Transaction Submission In xrpl.js, there are specific helper functions for signing and submitting transactions and waiting for the XRP Ledger blockchain to confirm those transactions' final outcomes: @@ -91,24 +90,25 @@ For both methods, you can pass a signed transaction to the method directly, or y ```js const tx_json = await client.autofill({ - "TransactionType": "AccountSet", - "Account": wallet.address, // "wallet" is an instance of the Wallet class - "SetFlag": xrpl.AccountSetAsfFlags.asfRequireDest + TransactionType: 'AccountSet', + Account: wallet.address, // "wallet" is an instance of the Wallet class + SetFlag: xrpl.AccountSetAsfFlags.asfRequireDest, }) try { const submit_result = await client.submitAndWait(tx_json, wallet) // submitAndWait() doesn't return until the transaction has a final result. // Raises XrplError if the transaction doesn't get confirmed by the network. // Does not handle disaster recovery. - console.log("Transaction result:", submit_result) -} catch(err) { - console.log("Error submitting transaction:", err) + console.log('Transaction result:', submit_result) +} catch (err) { + console.log('Error submitting transaction:', err) } ``` Alternatively, you can use the `sign` method of a wallet to sign a transaction and then use `submitAndWait(tx_blob)` to submit it. This can be useful for building [reliable transaction submission](../concepts/transactions/reliable-transaction-submission.md) that can recover from power outages and other disasters. (The library does not handle disaster recovery on its own.) ### Controlling LastLedgerSequence + In ripple-lib 1.x, you could specify a `instructions.maxLedgerVersionOffset` when preparing a transaction to define the `LastLedgerSequence` parameter of the prepared transaction as being some number of ledgers _after_ the latest validated one at the time. In 2.0, you can do this by looking up the latest validated ledger index, then specifying the `LastLedgerSequence` explicitly before auto-filling the transaction. @@ -119,11 +119,11 @@ In ripple-lib 1.x, you could specify a `instructions.maxLedgerVersionOffset` whe const vli = await client.getLedgerIndex() const prepared = await client.autofill({ - "TransactionType": "Payment", - "Account": sender, - "Amount": xrpl.xrpToDrops("50.2"), - "Destination": "rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe", - "LastLedgerSequence": vli+75 // gives ~5min, rather than the default ~1min + TransactionType: 'Payment', + Account: sender, + Amount: xrpl.xrpToDrops('50.2'), + Destination: 'rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe', + LastLedgerSequence: vli + 75, // gives ~5min, rather than the default ~1min }) ``` @@ -131,16 +131,16 @@ Like the old prepare methods, `Client.autofill()` provides a reasonable `LastLed ```js const prepared = await client.autofill({ - "TransactionType": "Payment", - "Account": sender, - "Amount": xrpl.xrpToDrops("50.2"), - "Destination": "rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe", - "LastLedgerSequence": null // Transaction never expires + TransactionType: 'Payment', + Account: sender, + Amount: xrpl.xrpToDrops('50.2'), + Destination: 'rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe', + LastLedgerSequence: null, // Transaction never expires }) ``` - ## Keys and Wallets + xrpl.js 2.0 introduces a new [`Wallet` class](https://js.xrpl.org/classes/Wallet.html) for managing [cryptographic keys](../concepts/accounts/cryptographic-keys.md) and signing transactions. This replaces functions that took seed or secret values in ripple-lib 1.x, and handles various address encoding and generation tasks as well. @@ -151,7 +151,7 @@ xrpl.js 2.0 introduces a new [`Wallet` class](https://js.xrpl.org/classes/Wallet ```js const api = new RippleAPI() -const {address, secret} = api.generateAddress({algorithm: "ed25519"}) +const { address, secret } = api.generateAddress({ algorithm: 'ed25519' }) console.log(address, secret) // rJvMQ3cwtyrNpVJDTW4pZzLnGeovHcdE6E s████████████████████████████ ``` @@ -159,7 +159,7 @@ console.log(address, secret) **xrpl.js 2.0:** ```js -const wallet = xrpl.Wallet.generate("ed25519") +const wallet = xrpl.Wallet.generate('ed25519') console.log(wallet) // Wallet { // publicKey: 'ED872A4099B61B0C187C6A27258F49B421AC384FBAD23F31330E666A5F50E0ED7E', @@ -175,18 +175,18 @@ console.log(wallet) ```js const api = new RippleAPI() -const seed = 's████████████████████████████'; +const seed = 's████████████████████████████' const keypair = api.deriveKeypair(seed) const address = api.deriveAddress(keypair.publicKey) const tx_json = { - "Account": address, - "TransactionType":"Payment", - "Destination":"rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe", - "Amount":"13000000", - "Flags":2147483648, - "LastLedgerSequence":7835923, - "Fee":"13", - "Sequence":2 + Account: address, + TransactionType: 'Payment', + Destination: 'rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe', + Amount: '13000000', + Flags: 2147483648, + LastLedgerSequence: 7835923, + Fee: '13', + Sequence: 2, } const signed = api.sign(JSON.stringify(tx_json), seed) ``` @@ -196,19 +196,18 @@ const signed = api.sign(JSON.stringify(tx_json), seed) ```js const wallet = xrpl.Wallet.fromSeed('s████████████████████████████') const tx_json = { - "Account": wallet.address, - "TransactionType":"Payment", - "Destination":"rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe", - "Amount":"13000000", - "Flags":2147483648, - "LastLedgerSequence":7835923, - "Fee":"13", - "Sequence":2 + Account: wallet.address, + TransactionType: 'Payment', + Destination: 'rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe', + Amount: '13000000', + Flags: 2147483648, + LastLedgerSequence: 7835923, + Fee: '13', + Sequence: 2, } const signed = wallet.sign(tx_json) ``` - ## Events and Subscriptions In 1.x, you could subscribe to ledger events and API errors using the `.on()` method of the `RippleAPI` class; or you could subscribe to specific WebSocket message types using `.connection.on()`. These have been merged into the [`Client.on()` method](https://js.xrpl.org/classes/Client.html#on). Additionally, the client library no longer automatically subscribes to ledger close events when connecting to an XRP Ledger server. To get ledger close events, you still add a handler, but **you must also explicitly subscribe to the ledger stream**. @@ -222,11 +221,10 @@ Example: **ripple-lib 1.x:** ```js -api.on("ledger", (ledger) => { +api.on('ledger', (ledger) => { console.log(`Ledger #${ledger.ledgerVersion} closed! It contains ${ledger.transactionCount} transaction(s) and has - the ledger_hash ${ledger.ledgerHash}.` - ) + the ledger_hash ${ledger.ledgerHash}.`) }) // "ledger" events happen automatically while API is connected. ``` @@ -234,104 +232,102 @@ api.on("ledger", (ledger) => { **xrpl.js 2.0:** ```js -client.on("ledgerClosed", (ledger) => { +client.on('ledgerClosed', (ledger) => { console.log(`Ledger #${ledger.ledger_index} closed! It contains ${ledger.txn_count} transaction(s) and has - the ledger_hash ${ledger.ledger_hash}.` - ) + the ledger_hash ${ledger.ledger_hash}.`) }) // Must explicitly subscribe to the "ledger" stream to get "ledgerClosed" events client.request({ - "command": "subscribe", - "streams": ["ledger"] + command: 'subscribe', + streams: ['ledger'], }) ``` - ## Reference of Equivalents In ripple-lib 1.x all methods and properties were on instances of the `RippleAPI` class. In xrpl.js 2.x, some methods are static methods of the library and some methods belong to specific classes. In the following table, the notation `Client.method()` means that `method()` belongs to instances of the `Client` class. **Note: The following table has 3 columns. You may need to scroll horizontally to see all the information.** -| RippleAPI instance method / property | xrpl.js method / property | Notes | -|-------------------|----------------|---| -| `new ripple.RippleAPI({server: url})` | [`new xrpl.Client(url)`](https://js.xrpl.org/classes/Client.html#constructor) | Use `xrpl.BroadcastClient([url1, url2, ..])` to connect to multiple servers. | -| `request(command, options)` | [`Client.request(options)`](https://js.xrpl.org/classes/Client.html#request) | The `command` field moved into the `options` object for consistency with the WebSocket API. In 1.x the return value of this method (when the Promise resolves) was only the `result` object. Now it returns the whole [WebSocket response format](http-websocket-apis/api-conventions/response-formatting.md); to get the equivalent value, read the `result` field of the return value. | -| `hasNextPage()` | [`xrpl.hasNextPage(response)`](https://js.xrpl.org/modules.html#hasNextPage) | See also: [`Client.requestNextPage()`](https://js.xrpl.org/classes/Client.html#requestNextPage) and [`Client.requestAll()`](https://js.xrpl.org/classes/Client.html#requestAll) | -| `requestNextPage()` | [`Client.requestNextPage()`](https://js.xrpl.org/classes/Client.html#requestNextPage) | | -| `computeBinaryTransactionHash()` | [`xrpl.hashes.hashTx()`](https://js.xrpl.org/modules.html#hashes) | | -| `classicAddressToXAddress()` | [`xrpl.classicAddressToXAddress()`](https://js.xrpl.org/modules.html#classicAddressToXAddress) | Now a static method on the module. | -| `xAddressToClassicAddress()` | [`xrpl.xAddressToClassicAddress()`](https://js.xrpl.org/modules.html#xAddressToClassicAddress) | Now a static method on the module. | -| `renameCounterpartyToIssuer(object)` | (Removed - see Notes column) | No longer needed because xrpl.js always uses `issuer` already. | -| `formatBidsAndAsks()` | (Removed - see Notes column) | No longer needed after changes to `getOrderbook()`. | -| `connect()` | [`Client.connect()`](https://js.xrpl.org/classes/Client.html#connect) | | -| `disconnect()` | [`Client.disconnect()`](https://js.xrpl.org/classes/Client.html#disconnect) | | -| `isConnected()` | [`Client.isConnected()`](https://js.xrpl.org/classes/Client.html#isConnected) | | -| `getServerInfo()` | (Removed - see Notes column) | Use [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) to call the [server_info method][] instead. | -| `getFee()` | (Removed - see Notes column) | Use [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) to provide a sensible [transaction cost][] automatically, or use `Client.request({"command": "fee"})` to look up information about the current transaction cost (in _drops of XRP_). | -| `getLedgerVersion()` | [`Client.getLedgerIndex()`](https://js.xrpl.org/classes/Client.html#getLedgerIndex) | | -| `getTransaction()` | [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) | Use [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) to call the [tx method][] instead. **Warning:** Unlike `getTransaction()`, the `tx` method can return [results that are not validated and final](#validated-results). Be sure to look for `"validated": true` in the response object before taking action in response to a transaction. | -| `getTransactions()` | (Removed - see Notes column) | Use [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) to call the [account_tx method][] instead. | -| `getTrustlines()` | (Removed - see Notes column) | Use [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) to call [account_lines method][] instead. **Warning:** Unlike `getTrustlines()`, `account_lines` can return [results that are not validated and final](#validated-results). | -| `getBalances()` | [`Client.getBalances()`](https://js.xrpl.org/classes/Client.html#getBalances) | | -| `getBalanceSheet()` | (Removed - see Notes column) | Use [`Client.getBalances()`](https://js.xrpl.org/classes/Client.html#getBalances) instead, or use [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) to call the [gateway_balances method][]. | -| `getPaths()` | (Removed - see Notes column) | Use [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) to call [ripple_path_find method][] instead. | -| `getOrders()` | (Removed - see Notes column) | Use [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) to call the [account_offers method][] instead. | -| `getOrderbook()` | [`Client.getOrderbook()`](https://js.xrpl.org/classes/Client.html#getOrderbook) | | -| `getSettings()` | (Removed - see Notes column) | Use [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) to call the [account_info method][] instead. Use `xrpl.parseAccountRootFlags()` on the `Flags` field to get the boolean values of individual flag settings. **Warning:** Unlike `getSettings()`, `account_info` can return [results that are not validated and final](#validated-results). | -| `getAccountInfo(address, options)` | (Removed - see Notes column) | Use [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) to call the [account_info method][] instead. **Warning:** Unlike `getAccountInfo()`, `account_info` can return [results that are not validated and final](#validated-results). | -| `getAccountObjects(address, options)` | (Removed - see Notes column) | Use [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) to call the [account_objects method][] instead. **Warning:** Unlike `getAccountObjects()`, `account_objects` can return [results that are not validated and final](#validated-results). | -| `getPaymentChannel()` | (Removed - see Notes column) | Use [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) to call the [ledger_entry method](http-websocket-apis/public-api-methods/ledger-methods/ledger_entry.md#get-paychannel-object) instead. **Warning:** Unlike `getPaymentChannel()`, `ledger_entry` can return [results that are not validated and final](#validated-results). | -| `getLedger()` | (Removed - see Notes column) | Use [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) to call the [ledger method][] exactly. **Warning:** Unlike `getLedger()`, `ledger` can return [ledgers that are not validated and final](#validated-results). | -| `parseAccountFlags()` | [`xrpl.parseAccountRootFlags()`](https://js.xrpl.org/modules.html#parseAccountRootFlags) | Now a static method on the module. | -| `prepareTransaction()` | [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) | See [Transaction Submission](#transaction-submission) for details. | -| `preparePayment()` | (Removed - see Notes column) | Construct a [Payment transaction][] and use [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) instead. | -| `prepareTrustline()` | (Removed - see Notes column) | Construct a [TrustSet transaction][] and use [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) instead. | -| `prepareOrder()` | (Removed - see Notes column) | Construct an [OfferCreate transaction][] and use [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) instead. | -| `prepareOrderCancellation()` | (Removed - see Notes column) | Construct an [OfferCancel transaction][] and use [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) and use [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) instead. | -| `prepareSettings()` | (Removed - see Notes column) | For most settings, construct an [AccountSet transaction][] instead. To rotate change a regular key, construct a [SetRegularKey transaction][]. To add or update multi-signing settings, construct a [SignerListSet transaction][] instead. In all three cases, use [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) to prepare the transaction. | -| `prepareEscrowCreation()` | (Removed - see Notes column) | Construct an [EscrowCreate transaction][] and use [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) instead. | -| `prepareEscrowCancellation()` | (Removed - see Notes column) | Construct an [EscrowCancel transaction][] and use [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) instead. | -| `prepareEscrowExecution()` | (Removed - see Notes column) | Construct an [EscrowFinish transaction][] and use [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) instead. | -| `preparePaymentChannelCreate()` | (Removed - see Notes column) | Construct a [PaymentChannelCreate transaction][] and use [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) instead. | -| `preparePaymentChannelClaim()` | (Removed - see Notes column) | Construct a [PaymentChannelClaim transaction][] and use [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) instead. | -| `preparePaymentChannelFund()` | (Removed - see Notes column) | Construct a [PaymentChannelFund transaction][] and use [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) instead. | -| `prepareCheckCreate()` | (Removed - see Notes column) | Construct a [CheckCreate transaction][] and use [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) instead. | -| `prepareCheckCancel()` | (Removed - see Notes column) | Construct a [CheckCancel transaction][] and use [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) instead. | -| `prepareCheckCash()` | (Removed - see Notes column) | Construct a [CheckCash transaction][] and use [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) instead. | -| `prepareTicketCreate()` | (Removed - see Notes column) | Construct a [TicketCreate transaction][] and use [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) instead. | -| `sign()` | [`Wallet.sign()`](https://js.xrpl.org/classes/Wallet.html#sign) | See [Keys and Wallets](#keys-and-wallets) for details. | -| `combine()` | [`xrpl.multisign()`](https://js.xrpl.org/modules.html#multisign) | | -| `submit()` | [`Client.submit()`](https://js.xrpl.org/classes/Client.html#submit) | Reliable transaction submission is now also available; for details, see [Transaction Submission](#transaction-submission). | -| `generateXAddress()` | [`xrpl.Wallet.generate()`](https://js.xrpl.org/classes/Wallet.html#generate) | Create a [`Wallet` instance](https://js.xrpl.org/classes/Wallet.html) with `xrpl.Wallet.generate()` then call `.getXAddress()` on the wallet instance to get an X-address. See [Keys and Wallets](#keys-and-wallets) for details. | -| `generateAddress()` | [`xrpl.Wallet.generate()`](https://js.xrpl.org/classes/Wallet.html#generate) | Creates a [`Wallet` instance](https://js.xrpl.org/classes/Wallet.html). See [Keys and Wallets](#keys-and-wallets) for details. | -| `isValidAddress()` | [`xrpl.isValidAddress()`](https://js.xrpl.org/modules.html#isValidAddress) | Now a static method on the module. | -| `isValidSecret()` | [`xrpl.isValidSecret()`](https://js.xrpl.org/modules.html#isValidSecret) | Now a static method on the module. | -| `deriveKeypair()` | [`xrpl.deriveKeypair()`](https://js.xrpl.org/modules.html#deriveKeypair) | Now a static method on the module. | -| `deriveAddress()` | (Removed - see Notes column) | Use `xrpl.decodeXAddress()` to get an X-address from a public key, then use `xAddressToClassicAddress()` to get the classic address if necessary. | -| `generateFaucetWallet()` | [`Client.fundWallet()`](https://js.xrpl.org/classes/Client.html#fundWallet) | The `on_testnet` boolean has been removed; the library automatically picks the Devnet or Testnet faucet as appropriate for the network you're connected to. You can optionally provide a [`Wallet` instance](https://js.xrpl.org/classes/Wallet.html) to have the faucet fund/refill the associated address; otherwise, the method creates a new Wallet instance. The return value now resolves to an object in the form `{wallet: , balance: }` | -| `signPaymentChannelClaim()` | [`xrpl.signPaymentChannelClaim()`](https://js.xrpl.org/modules.html#signPaymentChannelClaim) | Now a static method on the module. | -| `verifyPaymentChannelClaim()` | [`xrpl.verifyPaymentChannelClaim()`](https://js.xrpl.org/modules.html#verifyPaymentChannelClaim) | Now a static method on the module. | -| `computeLedgerHash()` | [`xrpl.hashes.hashLedger()`](https://js.xrpl.org/modules.html#hashes) | | -| `xrpToDrops()` | [`xrpl.xrpToDrops()`](https://js.xrpl.org/modules.html#xrpToDrops) | Now a static method on the module. | -| `dropsToXrp()` | [`xrpl.dropsToXrp()`](https://js.xrpl.org/modules.html#dropsToXrp) | Now a static method on the module. | -| `iso8601ToRippleTime()` | [`xrpl.isoTimeToRippleTime()`](https://js.xrpl.org/modules.html#isoTimeToRippleTime) | Now a static method on the module. | -| `rippleTimeToISO8601()` | [`xrpl.rippleTimeToISOTime()`](https://js.xrpl.org/modules.html#rippleTimeToISOTime) | Now a static method on the module. You can also use the new method [`rippleTimeToUnixTime()`](https://js.xrpl.org/modules.html#rippleTimeToUnixTime) to get a UNIX-style timestamp in milliseconds since the UNIX epoch of 1970-01-01 00:00:00 UTC. | -| `txFlags.Universal.FullyCanonicalSig` | (Removed - see Notes column) | No longer needed following the [RequireFullyCanonicalSig amendment][]. | -| `txFlags.Payment.NoRippleDirect` | `xrpl.PaymentFlags.tfNoDirectRipple` | | -| `txFlags.Payment.PartialPayment` | `xrpl.PaymentFlags.tfPartialPayment` | | -| `txFlags.Payment.LimitQuality` | `xrpl.PaymentFlags.tfLimitQuality` | | -| `txFlags.OfferCreate.Passive` | `xrpl.OfferCreateFlags.tfPassive` | | -| `txFlags.OfferCreate.ImmediateOrCancel` | `xrpl.OfferCreateFlags.tfImmediateOrCancel` | | -| `txFlags.OfferCreate.FillOrKill` | `xrpl.OfferCreateFlags.tfFillOrKill` | | -| `txFlags.OfferCreate.Sell` | `xrpl.OfferCreateFlags.tfSell` | | -| `accountSetFlags` | `xrpl.AccountSetAsfFlags` | Now an Enum at the module level. | -| `schemaValidator` | (Removed - see Notes column) | Use TypeScript to validate most types. | -| `schemaValidate()` | (Removed - see Notes column) | Use TypeScript to validate most types. You can also call `xrpl.validate(transaction)` to validate transaction objects. | -| `.on("ledger", callback)` | [`Client.on("ledgerClosed", callback)`](https://js.xrpl.org/classes/Client.html#on) | **Caution:** Must also subscribe to the ledger stream. For examples and details, see [Events and Subscriptions](#events-and-subscriptions). | -| `.on("error", callback)` | [`Client.on("error", callback)`](https://js.xrpl.org/classes/Client.html#on) | | -| `.on("connected", callback)` | [`Client.on("connected", callback)`](https://js.xrpl.org/classes/Client.html#on) | | -| `.on("disconnected", callback)` | [`Client.on("connected", callback)`](https://js.xrpl.org/classes/Client.html#on) | | +| RippleAPI instance method / property | xrpl.js method / property | Notes | +| --------------------------------------- | ------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `new ripple.RippleAPI({server: url})` | [`new xrpl.Client(url)`](https://js.xrpl.org/classes/Client.html#constructor) | Use `xrpl.BroadcastClient([url1, url2, ..])` to connect to multiple servers. | +| `request(command, options)` | [`Client.request(options)`](https://js.xrpl.org/classes/Client.html#request) | The `command` field moved into the `options` object for consistency with the WebSocket API. In 1.x the return value of this method (when the Promise resolves) was only the `result` object. Now it returns the whole [WebSocket response format](http-websocket-apis/api-conventions/response-formatting.md); to get the equivalent value, read the `result` field of the return value. | +| `hasNextPage()` | [`xrpl.hasNextPage(response)`](https://js.xrpl.org/modules.html#hasNextPage) | See also: [`Client.requestNextPage()`](https://js.xrpl.org/classes/Client.html#requestNextPage) and [`Client.requestAll()`](https://js.xrpl.org/classes/Client.html#requestAll) | +| `requestNextPage()` | [`Client.requestNextPage()`](https://js.xrpl.org/classes/Client.html#requestNextPage) | | +| `computeBinaryTransactionHash()` | [`xrpl.hashes.hashTx()`](https://js.xrpl.org/modules.html#hashes) | | +| `classicAddressToXAddress()` | [`xrpl.classicAddressToXAddress()`](https://js.xrpl.org/modules.html#classicAddressToXAddress) | Now a static method on the module. | +| `xAddressToClassicAddress()` | [`xrpl.xAddressToClassicAddress()`](https://js.xrpl.org/modules.html#xAddressToClassicAddress) | Now a static method on the module. | +| `renameCounterpartyToIssuer(object)` | (Removed - see Notes column) | No longer needed because xrpl.js always uses `issuer` already. | +| `formatBidsAndAsks()` | (Removed - see Notes column) | No longer needed after changes to `getOrderbook()`. | +| `connect()` | [`Client.connect()`](https://js.xrpl.org/classes/Client.html#connect) | | +| `disconnect()` | [`Client.disconnect()`](https://js.xrpl.org/classes/Client.html#disconnect) | | +| `isConnected()` | [`Client.isConnected()`](https://js.xrpl.org/classes/Client.html#isConnected) | | +| `getServerInfo()` | (Removed - see Notes column) | Use [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) to call the [server_info method][] instead. | +| `getFee()` | (Removed - see Notes column) | Use [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) to provide a sensible [transaction cost][] automatically, or use `Client.request({"command": "fee"})` to look up information about the current transaction cost (in _drops of XRP_). | +| `getLedgerVersion()` | [`Client.getLedgerIndex()`](https://js.xrpl.org/classes/Client.html#getLedgerIndex) | | +| `getTransaction()` | [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) | Use [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) to call the [tx method][] instead. **Warning:** Unlike `getTransaction()`, the `tx` method can return [results that are not validated and final](#validated-results). Be sure to look for `"validated": true` in the response object before taking action in response to a transaction. | +| `getTransactions()` | (Removed - see Notes column) | Use [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) to call the [account_tx method][] instead. | +| `getTrustlines()` | (Removed - see Notes column) | Use [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) to call [account_lines method][] instead. **Warning:** Unlike `getTrustlines()`, `account_lines` can return [results that are not validated and final](#validated-results). | +| `getBalances()` | [`Client.getBalances()`](https://js.xrpl.org/classes/Client.html#getBalances) | | +| `getBalanceSheet()` | (Removed - see Notes column) | Use [`Client.getBalances()`](https://js.xrpl.org/classes/Client.html#getBalances) instead, or use [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) to call the [gateway_balances method][]. | +| `getPaths()` | (Removed - see Notes column) | Use [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) to call [ripple_path_find method][] instead. | +| `getOrders()` | (Removed - see Notes column) | Use [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) to call the [account_offers method][] instead. | +| `getOrderbook()` | [`Client.getOrderbook()`](https://js.xrpl.org/classes/Client.html#getOrderbook) | | +| `getSettings()` | (Removed - see Notes column) | Use [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) to call the [account_info method][] instead. Use `xrpl.parseAccountRootFlags()` on the `Flags` field to get the boolean values of individual flag settings. **Warning:** Unlike `getSettings()`, `account_info` can return [results that are not validated and final](#validated-results). | +| `getAccountInfo(address, options)` | (Removed - see Notes column) | Use [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) to call the [account_info method][] instead. **Warning:** Unlike `getAccountInfo()`, `account_info` can return [results that are not validated and final](#validated-results). | +| `getAccountObjects(address, options)` | (Removed - see Notes column) | Use [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) to call the [account_objects method][] instead. **Warning:** Unlike `getAccountObjects()`, `account_objects` can return [results that are not validated and final](#validated-results). | +| `getPaymentChannel()` | (Removed - see Notes column) | Use [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) to call the [ledger_entry method](http-websocket-apis/public-api-methods/ledger-methods/ledger_entry.md#get-paychannel-object) instead. **Warning:** Unlike `getPaymentChannel()`, `ledger_entry` can return [results that are not validated and final](#validated-results). | +| `getLedger()` | (Removed - see Notes column) | Use [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) to call the [ledger method][] exactly. **Warning:** Unlike `getLedger()`, `ledger` can return [ledgers that are not validated and final](#validated-results). | +| `parseAccountFlags()` | [`xrpl.parseAccountRootFlags()`](https://js.xrpl.org/modules.html#parseAccountRootFlags) | Now a static method on the module. | +| `prepareTransaction()` | [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) | See [Transaction Submission](#transaction-submission) for details. | +| `preparePayment()` | (Removed - see Notes column) | Construct a [Payment transaction][] and use [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) instead. | +| `prepareTrustline()` | (Removed - see Notes column) | Construct a [TrustSet transaction][] and use [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) instead. | +| `prepareOrder()` | (Removed - see Notes column) | Construct an [OfferCreate transaction][] and use [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) instead. | +| `prepareOrderCancellation()` | (Removed - see Notes column) | Construct an [OfferCancel transaction][] and use [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) and use [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) instead. | +| `prepareSettings()` | (Removed - see Notes column) | For most settings, construct an [AccountSet transaction][] instead. To rotate change a regular key, construct a [SetRegularKey transaction][]. To add or update multi-signing settings, construct a [SignerListSet transaction][] instead. In all three cases, use [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) to prepare the transaction. | +| `prepareEscrowCreation()` | (Removed - see Notes column) | Construct an [EscrowCreate transaction][] and use [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) instead. | +| `prepareEscrowCancellation()` | (Removed - see Notes column) | Construct an [EscrowCancel transaction][] and use [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) instead. | +| `prepareEscrowExecution()` | (Removed - see Notes column) | Construct an [EscrowFinish transaction][] and use [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) instead. | +| `preparePaymentChannelCreate()` | (Removed - see Notes column) | Construct a [PaymentChannelCreate transaction][] and use [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) instead. | +| `preparePaymentChannelClaim()` | (Removed - see Notes column) | Construct a [PaymentChannelClaim transaction][] and use [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) instead. | +| `preparePaymentChannelFund()` | (Removed - see Notes column) | Construct a [PaymentChannelFund transaction][] and use [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) instead. | +| `prepareCheckCreate()` | (Removed - see Notes column) | Construct a [CheckCreate transaction][] and use [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) instead. | +| `prepareCheckCancel()` | (Removed - see Notes column) | Construct a [CheckCancel transaction][] and use [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) instead. | +| `prepareCheckCash()` | (Removed - see Notes column) | Construct a [CheckCash transaction][] and use [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) instead. | +| `prepareTicketCreate()` | (Removed - see Notes column) | Construct a [TicketCreate transaction][] and use [`Client.autofill()`](https://js.xrpl.org/classes/Client.html#autofill) instead. | +| `sign()` | [`Wallet.sign()`](https://js.xrpl.org/classes/Wallet.html#sign) | See [Keys and Wallets](#keys-and-wallets) for details. | +| `combine()` | [`xrpl.multisign()`](https://js.xrpl.org/modules.html#multisign) | | +| `submit()` | [`Client.submit()`](https://js.xrpl.org/classes/Client.html#submit) | Reliable transaction submission is now also available; for details, see [Transaction Submission](#transaction-submission). | +| `generateXAddress()` | [`xrpl.Wallet.generate()`](https://js.xrpl.org/classes/Wallet.html#generate) | Create a [`Wallet` instance](https://js.xrpl.org/classes/Wallet.html) with `xrpl.Wallet.generate()` then call `.getXAddress()` on the wallet instance to get an X-address. See [Keys and Wallets](#keys-and-wallets) for details. | +| `generateAddress()` | [`xrpl.Wallet.generate()`](https://js.xrpl.org/classes/Wallet.html#generate) | Creates a [`Wallet` instance](https://js.xrpl.org/classes/Wallet.html). See [Keys and Wallets](#keys-and-wallets) for details. | +| `isValidAddress()` | [`xrpl.isValidAddress()`](https://js.xrpl.org/modules.html#isValidAddress) | Now a static method on the module. | +| `isValidSecret()` | [`xrpl.isValidSecret()`](https://js.xrpl.org/modules.html#isValidSecret) | Now a static method on the module. | +| `deriveKeypair()` | [`xrpl.deriveKeypair()`](https://js.xrpl.org/modules.html#deriveKeypair) | Now a static method on the module. | +| `deriveAddress()` | (Removed - see Notes column) | Use `xrpl.decodeXAddress()` to get an X-address from a public key, then use `xAddressToClassicAddress()` to get the classic address if necessary. | +| `generateFaucetWallet()` | [`Client.fundWallet()`](https://js.xrpl.org/classes/Client.html#fundWallet) | The `on_testnet` boolean has been removed; the library automatically picks the Devnet or Testnet faucet as appropriate for the network you're connected to. You can optionally provide a [`Wallet` instance](https://js.xrpl.org/classes/Wallet.html) to have the faucet fund/refill the associated address; otherwise, the method creates a new Wallet instance. The return value now resolves to an object in the form `{wallet: , balance: }` | +| `signPaymentChannelClaim()` | [`xrpl.signPaymentChannelClaim()`](https://js.xrpl.org/modules.html#signPaymentChannelClaim) | Now a static method on the module. | +| `verifyPaymentChannelClaim()` | [`xrpl.verifyPaymentChannelClaim()`](https://js.xrpl.org/modules.html#verifyPaymentChannelClaim) | Now a static method on the module. | +| `computeLedgerHash()` | [`xrpl.hashes.hashLedger()`](https://js.xrpl.org/modules.html#hashes) | | +| `xrpToDrops()` | [`xrpl.xrpToDrops()`](https://js.xrpl.org/modules.html#xrpToDrops) | Now a static method on the module. | +| `dropsToXrp()` | [`xrpl.dropsToXrp()`](https://js.xrpl.org/modules.html#dropsToXrp) | Now a static method on the module. | +| `iso8601ToRippleTime()` | [`xrpl.isoTimeToRippleTime()`](https://js.xrpl.org/modules.html#isoTimeToRippleTime) | Now a static method on the module. | +| `rippleTimeToISO8601()` | [`xrpl.rippleTimeToISOTime()`](https://js.xrpl.org/modules.html#rippleTimeToISOTime) | Now a static method on the module. You can also use the new method [`rippleTimeToUnixTime()`](https://js.xrpl.org/modules.html#rippleTimeToUnixTime) to get a UNIX-style timestamp in milliseconds since the UNIX epoch of 1970-01-01 00:00:00 UTC. | +| `txFlags.Universal.FullyCanonicalSig` | (Removed - see Notes column) | No longer needed following the [RequireFullyCanonicalSig amendment][]. | +| `txFlags.Payment.NoRippleDirect` | `xrpl.PaymentFlags.tfNoDirectRipple` | | +| `txFlags.Payment.PartialPayment` | `xrpl.PaymentFlags.tfPartialPayment` | | +| `txFlags.Payment.LimitQuality` | `xrpl.PaymentFlags.tfLimitQuality` | | +| `txFlags.OfferCreate.Passive` | `xrpl.OfferCreateFlags.tfPassive` | | +| `txFlags.OfferCreate.ImmediateOrCancel` | `xrpl.OfferCreateFlags.tfImmediateOrCancel` | | +| `txFlags.OfferCreate.FillOrKill` | `xrpl.OfferCreateFlags.tfFillOrKill` | | +| `txFlags.OfferCreate.Sell` | `xrpl.OfferCreateFlags.tfSell` | | +| `accountSetFlags` | `xrpl.AccountSetAsfFlags` | Now an Enum at the module level. | +| `schemaValidator` | (Removed - see Notes column) | Use TypeScript to validate most types. | +| `schemaValidate()` | (Removed - see Notes column) | Use TypeScript to validate most types. You can also call `xrpl.validate(transaction)` to validate transaction objects. | +| `.on("ledger", callback)` | [`Client.on("ledgerClosed", callback)`](https://js.xrpl.org/classes/Client.html#on) | **Caution:** Must also subscribe to the ledger stream. For examples and details, see [Events and Subscriptions](#events-and-subscriptions). | +| `.on("error", callback)` | [`Client.on("error", callback)`](https://js.xrpl.org/classes/Client.html#on) | | +| `.on("connected", callback)` | [`Client.on("connected", callback)`](https://js.xrpl.org/classes/Client.html#on) | | +| `.on("disconnected", callback)` | [`Client.on("connected", callback)`](https://js.xrpl.org/classes/Client.html#on) | | {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/tutorials/how-tos/index.md b/docs/tutorials/how-tos/index.md index 77b024c16d..5d4124a9e3 100644 --- a/docs/tutorials/how-tos/index.md +++ b/docs/tutorials/how-tos/index.md @@ -5,9 +5,9 @@ top_nav_grouping: Article Types metadata: indexPage: true --- + # How To's These examples provide step-by-step instructions for administrative tasks. - {% child-pages /%} diff --git a/docs/tutorials/how-tos/manage-account-settings/assign-a-regular-key-pair.md b/docs/tutorials/how-tos/manage-account-settings/assign-a-regular-key-pair.md index 2733b329c6..682e86b51f 100644 --- a/docs/tutorials/how-tos/manage-account-settings/assign-a-regular-key-pair.md +++ b/docs/tutorials/how-tos/manage-account-settings/assign-a-regular-key-pair.md @@ -2,11 +2,12 @@ html: assign-a-regular-key-pair.html parent: manage-account-settings.html seo: - description: Authorize a second key pair to sign transactions from your account. This key pair can be changed or removed later. + description: Authorize a second key pair to sign transactions from your account. This key pair can be changed or removed later. labels: - Security - Accounts --- + # Assign a Regular Key Pair The XRP Ledger allows an account to authorize a secondary key pair, called a _[regular key pair](../../../concepts/accounts/cryptographic-keys.md)_, to sign future transactions. If the private key of a regular key pair is compromised, you can remove or replace it without changing the rest of your [account](../../../concepts/accounts/index.md) and re-establishing its relationships to other accounts. You can also rotate a regular key pair proactively. (Neither of those things is possible for the master key pair of an account, which is intrinsically linked to the account's address.) @@ -20,17 +21,16 @@ This tutorial walks through the steps required to assign a regular key pair to y 3. [Verify the regular key pair](#3-verify-the-regular-key-pair) 4. [Explore next steps](#see-also) - ## 1. Generate a Key Pair Generate a key pair that you'll assign to your account as a regular key pair. This key pair is the same data type as a master key pair, so you can generate it the same way: you can use the client library of your choice or use the [wallet_propose method][] of a server you run. This might look as follows: - {% tabs %} {% tab label="WebSocket" %} + ```json // Request: @@ -54,9 +54,11 @@ This key pair is the same data type as a master key pair, so you can generate it "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json // Request: @@ -79,9 +81,11 @@ This key pair is the same data type as a master key pair, so you can generate it } } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh $ rippled wallet_propose @@ -98,38 +102,44 @@ $ rippled wallet_propose } } ``` + {% /tab %} {% tab label="Python" %} + ```py keypair = xrpl.wallet.Wallet.create() print("seed:", keypair.seed) print("classic address:", keypair.address) ``` + {% /tab %} {% tab label="JavaScript" %} + ```js const keypair = new xrpl.Wallet() -console.log("seed:", keypair.seed) -console.log("classic address:", keypair.classicAddress) +console.log('seed:', keypair.seed) +console.log('classic address:', keypair.classicAddress) ``` + {% /tab %} {% tab label="Java" %} + ```java WalletFactory walletFactory = DefaultWalletFactory.getInstance(); Wallet keypair = walletFactory.randomWallet(true).wallet(); System.out.println(keypair); System.out.println(keypair.privateKey().get()); ``` + {% /tab %} {% /tabs %} In the next step, you'll use the address from this response (`account_id` in the API response) to assign the key pair as a regular key pair to your account. Also, save the seed value from this key pair (`master_seed` in the API response) somewhere securely; you'll use that key to sign transactions later. (Everything else, you can forget about.) - ## 2. Assign the Key Pair to Your Account as a Regular Key Pair Use a [SetRegularKey transaction][] to assign the key pair you generated in step 1 to your account as a regular key pair. @@ -138,21 +148,18 @@ When assigning a regular key pair to your account for the first time, the SetReg When you send later SetRegularKey transactions, you can sign using the existing regular private key to replace or [remove itself](change-or-remove-a-regular-key-pair.md). Note that you should still not submit your regular private key across the network. - ### Sign Your Transaction {% partial file="/docs/_snippets/tutorial-sign-step.md" /%} - Populate the request fields with the following values: -| Request Field | Value | -|:--------------|:-------------------------------------------------------------| -| `Account` | The address of your account. | -| `RegularKey` | `account_id` generated in step 1. | +| Request Field | Value | +| :------------ | :--------------------------------------------------------------------------------------- | +| `Account` | The address of your account. | +| `RegularKey` | `account_id` generated in step 1. | | `secret` | `master_key`, `master_seed`, or `master_seed_hex` (master private key) for your account. | - #### Request Format An example of the request format: @@ -160,47 +167,52 @@ An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { "command": "sign", "tx_json": { - "TransactionType": "SetRegularKey", - "Account": "rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93", - "RegularKey": "rsprUqu6BHAffAeG4HpSdjBNvnA6gdnZV7" - }, - "secret": "ssCATR7CBvn4GLd1UuU2bqqQffHki" + "TransactionType": "SetRegularKey", + "Account": "rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93", + "RegularKey": "rsprUqu6BHAffAeG4HpSdjBNvnA6gdnZV7" + }, + "secret": "ssCATR7CBvn4GLd1UuU2bqqQffHki" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "sign", - "params": [ - { - "tx_json": { - "TransactionType": "SetRegularKey", - "Account": "rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93", - "RegularKey": "rsprUqu6BHAffAeG4HpSdjBNvnA6gdnZV7" - }, - "secret": "ssCATR7CBvn4GLd1UuU2bqqQffHki" - } - ] + "method": "sign", + "params": [ + { + "tx_json": { + "TransactionType": "SetRegularKey", + "Account": "rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93", + "RegularKey": "rsprUqu6BHAffAeG4HpSdjBNvnA6gdnZV7" + }, + "secret": "ssCATR7CBvn4GLd1UuU2bqqQffHki" + } + ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh #Syntax: sign secret tx_json rippled sign ssCATR7CBvn4GLd1UuU2bqqQffHki '{"TransactionType": "SetRegularKey", "Account": "rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93", "RegularKey": "rsprUqu6BHAffAeG4HpSdjBNvnA6gdnZV7"}' ``` + {% /tab %} {% /tabs %} - #### Response Format An example of a successful response: @@ -208,6 +220,7 @@ An example of a successful response: {% tabs %} {% tab label="WebSocket" %} + ```json { "result": { @@ -228,50 +241,55 @@ An example of a successful response: "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "result": { - "status": "success", - "tx_blob": "1200052280000000240000000768400000000000000A73210384CA3C528F10C75F26E0917F001338BD3C9AA1A39B9FBD583DFFFD96CF2E2D7A7446304402201453CA3D4D17F0EE3828B9E3D6ACF65327F5D4FC2BA30953CACF6CBCB4145E3502202F2154BED1D7462CAC1E3DBB31864E48C3BA0B3133ACA5E37EC54F0D0C339E2D8114830923439D307E642CED308FD91EF701A7BAA74788141620D685FB08D81A70D0B668749CF2E130EA7540", - "tx_json": { - "Account": "rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93", - "Fee": "10", - "Flags": 2147483648, - "RegularKey": "rsprUqu6BHAffAeG4HpSdjBNvnA6gdnZV7", - "Sequence": 4, - "SigningPubKey": "0384CA3C528F10C75F26E0917F001338BD3C9AA1A39B9FBD583DFFFD96CF2E2D7A", - "TransactionType": "SetRegularKey", - "TxnSignature": "304402201453CA3D4D17F0EE3828B9E3D6ACF65327F5D4FC2BA30953CACF6CBCB4145E3502202F2154BED1D7462CAC1E3DBB31864E48C3BA0B3133ACA5E37EC54F0D0C339E2D", - "hash": "AB73BBF7C99061678B59FB48D72CA0F5FC6DD2815B6736C6E9EB94439EC236CE" - } + "result": { + "status": "success", + "tx_blob": "1200052280000000240000000768400000000000000A73210384CA3C528F10C75F26E0917F001338BD3C9AA1A39B9FBD583DFFFD96CF2E2D7A7446304402201453CA3D4D17F0EE3828B9E3D6ACF65327F5D4FC2BA30953CACF6CBCB4145E3502202F2154BED1D7462CAC1E3DBB31864E48C3BA0B3133ACA5E37EC54F0D0C339E2D8114830923439D307E642CED308FD91EF701A7BAA74788141620D685FB08D81A70D0B668749CF2E130EA7540", + "tx_json": { + "Account": "rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93", + "Fee": "10", + "Flags": 2147483648, + "RegularKey": "rsprUqu6BHAffAeG4HpSdjBNvnA6gdnZV7", + "Sequence": 4, + "SigningPubKey": "0384CA3C528F10C75F26E0917F001338BD3C9AA1A39B9FBD583DFFFD96CF2E2D7A", + "TransactionType": "SetRegularKey", + "TxnSignature": "304402201453CA3D4D17F0EE3828B9E3D6ACF65327F5D4FC2BA30953CACF6CBCB4145E3502202F2154BED1D7462CAC1E3DBB31864E48C3BA0B3133ACA5E37EC54F0D0C339E2D", + "hash": "AB73BBF7C99061678B59FB48D72CA0F5FC6DD2815B6736C6E9EB94439EC236CE" } + } } ``` + {% /tab %} {% tab label="Commandline" %} + ```json { - "result" : { - "status" : "success", - "tx_blob" : "1200052280000000240000000768400000000000000A73210384CA3C528F10C75F26E0917F001338BD3C9AA1A39B9FBD583DFFFD96CF2E2D7A7446304402201453CA3D4D17F0EE3828B9E3D6ACF65327F5D4FC2BA30953CACF6CBCB4145E3502202F2154BED1D7462CAC1E3DBB31864E48C3BA0B3133ACA5E37EC54F0D0C339E2D8114830923439D307E642CED308FD91EF701A7BAA74788141620D685FB08D81A70D0B668749CF2E130EA7540", - "tx_json" : { - "Account" : "rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93", - "Fee" : "10", - "Flags" : 2147483648, - "RegularKey" : "rsprUqu6BHAffAeG4HpSdjBNvnA6gdnZV7", - "Sequence" : 4, - "SigningPubKey" : "0384CA3C528F10C75F26E0917F001338BD3C9AA1A39B9FBD583DFFFD96CF2E2D7A", - "TransactionType" : "SetRegularKey", - "TxnSignature" : "304402201453CA3D4D17F0EE3828B9E3D6ACF65327F5D4FC2BA30953CACF6CBCB4145E3502202F2154BED1D7462CAC1E3DBB31864E48C3BA0B3133ACA5E37EC54F0D0C339E2D", - "hash" : "AB73BBF7C99061678B59FB48D72CA0F5FC6DD2815B6736C6E9EB94439EC236CE" - } - } + "result": { + "status": "success", + "tx_blob": "1200052280000000240000000768400000000000000A73210384CA3C528F10C75F26E0917F001338BD3C9AA1A39B9FBD583DFFFD96CF2E2D7A7446304402201453CA3D4D17F0EE3828B9E3D6ACF65327F5D4FC2BA30953CACF6CBCB4145E3502202F2154BED1D7462CAC1E3DBB31864E48C3BA0B3133ACA5E37EC54F0D0C339E2D8114830923439D307E642CED308FD91EF701A7BAA74788141620D685FB08D81A70D0B668749CF2E130EA7540", + "tx_json": { + "Account": "rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93", + "Fee": "10", + "Flags": 2147483648, + "RegularKey": "rsprUqu6BHAffAeG4HpSdjBNvnA6gdnZV7", + "Sequence": 4, + "SigningPubKey": "0384CA3C528F10C75F26E0917F001338BD3C9AA1A39B9FBD583DFFFD96CF2E2D7A", + "TransactionType": "SetRegularKey", + "TxnSignature": "304402201453CA3D4D17F0EE3828B9E3D6ACF65327F5D4FC2BA30953CACF6CBCB4145E3502202F2154BED1D7462CAC1E3DBB31864E48C3BA0B3133ACA5E37EC54F0D0C339E2D", + "hash": "AB73BBF7C99061678B59FB48D72CA0F5FC6DD2815B6736C6E9EB94439EC236CE" + } + } } ``` + {% /tab %} {% /tabs %} @@ -280,7 +298,6 @@ The `sign` command response contains a `tx_blob` value, as shown above. The offl Next, use the `submit` command to send the transaction blob (`tx_blob` or `signedTransaction`) to the network. - ### Submit Your Transaction Take the `signedTransaction` value from the offline signing response or the `tx_blob` value from the `sign` command response and submit it as the `tx_blob` value using the [submit method][]. @@ -292,37 +309,42 @@ An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { - "command": "submit", - "tx_blob": "1200052280000000240000000468400000000000000A73210384CA3C528F10C75F26E0917F001338BD3C9AA1A39B9FBD583DFFFD96CF2E2D7A7446304402204BCD5663F3A2BA02D2CE374439096EC6D27273522CD6E6E0BDBFB518730EAAE402200ECD02D8D2525D6FA4642613E71E395ECCEA01C42C35A668BF092A00EB649C268114830923439D307E642CED308FD91EF701A7BAA74788141620D685FB08D81A70D0B668749CF2E130EA7540" + "command": "submit", + "tx_blob": "1200052280000000240000000468400000000000000A73210384CA3C528F10C75F26E0917F001338BD3C9AA1A39B9FBD583DFFFD96CF2E2D7A7446304402204BCD5663F3A2BA02D2CE374439096EC6D27273522CD6E6E0BDBFB518730EAAE402200ECD02D8D2525D6FA4642613E71E395ECCEA01C42C35A668BF092A00EB649C268114830923439D307E642CED308FD91EF701A7BAA74788141620D685FB08D81A70D0B668749CF2E130EA7540" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method":"submit", - "params": [ - { - "tx_blob": "1200052280000000240000000468400000000000000A73210384CA3C528F10C75F26E0917F001338BD3C9AA1A39B9FBD583DFFFD96CF2E2D7A7446304402204BCD5663F3A2BA02D2CE374439096EC6D27273522CD6E6E0BDBFB518730EAAE402200ECD02D8D2525D6FA4642613E71E395ECCEA01C42C35A668BF092A00EB649C268114830923439D307E642CED308FD91EF701A7BAA74788141620D685FB08D81A70D0B668749CF2E130EA7540" - } - ] + "method": "submit", + "params": [ + { + "tx_blob": "1200052280000000240000000468400000000000000A73210384CA3C528F10C75F26E0917F001338BD3C9AA1A39B9FBD583DFFFD96CF2E2D7A7446304402204BCD5663F3A2BA02D2CE374439096EC6D27273522CD6E6E0BDBFB518730EAAE402200ECD02D8D2525D6FA4642613E71E395ECCEA01C42C35A668BF092A00EB649C268114830923439D307E642CED308FD91EF701A7BAA74788141620D685FB08D81A70D0B668749CF2E130EA7540" + } + ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh #Syntax: submit tx_blob rippled submit 1200052280000000240000000468400000000000000A73210384CA3C528F10C75F26E0917F001338BD3C9AA1A39B9FBD583DFFFD96CF2E2D7A7446304402204BCD5663F3A2BA02D2CE374439096EC6D27273522CD6E6E0BDBFB518730EAAE402200ECD02D8D2525D6FA4642613E71E395ECCEA01C42C35A668BF092A00EB649C268114830923439D307E642CED308FD91EF701A7BAA74788141620D685FB08D81A70D0B668749CF2E130EA7540 ``` + {% /tab %} {% /tabs %} - #### Response Format An example of a successful response: @@ -330,6 +352,7 @@ An example of a successful response: {% tabs %} {% tab label="WebSocket" %} + ```json { "result": { @@ -353,131 +376,135 @@ An example of a successful response: "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "result": { - "engine_result": "tesSUCCESS", - "engine_result_code": 0, - "engine_result_message": "The transaction was applied. Only final in a validated ledger.", - "status": "success", - "tx_blob": "1200052280000000240000000468400000000000000A73210384CA3C528F10C75F26E0917F001338BD3C9AA1A39B9FBD583DFFFD96CF2E2D7A7446304402204BCD5663F3A2BA02D2CE374439096EC6D27273522CD6E6E0BDBFB518730EAAE402200ECD02D8D2525D6FA4642613E71E395ECCEA01C42C35A668BF092A00EB649C268114830923439D307E642CED308FD91EF701A7BAA74788141620D685FB08D81A70D0B668749CF2E130EA7540", - "tx_json": { - "Account": "rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93", - "Fee": "10", - "Flags": 2147483648, - "RegularKey": "rsprUqu6BHAffAeG4HpSdjBNvnA6gdnZV7", - "Sequence": 4, - "SigningPubKey": "0384CA3C528F10C75F26E0917F001338BD3C9AA1A39B9FBD583DFFFD96CF2E2D7A", - "TransactionType": "SetRegularKey", - "TxnSignature": "304402204BCD5663F3A2BA02D2CE374439096EC6D27273522CD6E6E0BDBFB518730EAAE402200ECD02D8D2525D6FA4642613E71E395ECCEA01C42C35A668BF092A00EB649C26", - "hash": "AB73BBF7C99061678B59FB48D72CA0F5FC6DD2815B6736C6E9EB94439EC236CE" - } + "result": { + "engine_result": "tesSUCCESS", + "engine_result_code": 0, + "engine_result_message": "The transaction was applied. Only final in a validated ledger.", + "status": "success", + "tx_blob": "1200052280000000240000000468400000000000000A73210384CA3C528F10C75F26E0917F001338BD3C9AA1A39B9FBD583DFFFD96CF2E2D7A7446304402204BCD5663F3A2BA02D2CE374439096EC6D27273522CD6E6E0BDBFB518730EAAE402200ECD02D8D2525D6FA4642613E71E395ECCEA01C42C35A668BF092A00EB649C268114830923439D307E642CED308FD91EF701A7BAA74788141620D685FB08D81A70D0B668749CF2E130EA7540", + "tx_json": { + "Account": "rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93", + "Fee": "10", + "Flags": 2147483648, + "RegularKey": "rsprUqu6BHAffAeG4HpSdjBNvnA6gdnZV7", + "Sequence": 4, + "SigningPubKey": "0384CA3C528F10C75F26E0917F001338BD3C9AA1A39B9FBD583DFFFD96CF2E2D7A", + "TransactionType": "SetRegularKey", + "TxnSignature": "304402204BCD5663F3A2BA02D2CE374439096EC6D27273522CD6E6E0BDBFB518730EAAE402200ECD02D8D2525D6FA4642613E71E395ECCEA01C42C35A668BF092A00EB649C26", + "hash": "AB73BBF7C99061678B59FB48D72CA0F5FC6DD2815B6736C6E9EB94439EC236CE" } + } } ``` + {% /tab %} {% tab label="Commandline" %} + ```json { - "result" : { - "engine_result" : "tesSUCCESS", - "engine_result_code" : 0, - "engine_result_message" : "The transaction was applied. Only final in a validated ledger.", - "status" : "success", - "tx_blob" : "1200052280000000240000000468400000000000000A73210384CA3C528F10C75F26E0917F001338BD3C9AA1A39B9FBD583DFFFD96CF2E2D7A7446304402204BCD5663F3A2BA02D2CE374439096EC6D27273522CD6E6E0BDBFB518730EAAE402200ECD02D8D2525D6FA4642613E71E395ECCEA01C42C35A668BF092A00EB649C268114830923439D307E642CED308FD91EF701A7BAA74788141620D685FB08D81A70D0B668749CF2E130EA7540", - "tx_json" : { - "Account" : "rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93", - "Fee" : "10", - "Flags" : 2147483648, - "RegularKey" : "rsprUqu6BHAffAeG4HpSdjBNvnA6gdnZV7", - "Sequence" : 4, - "SigningPubKey" : "0384CA3C528F10C75F26E0917F001338BD3C9AA1A39B9FBD583DFFFD96CF2E2D7A", - "TransactionType" : "SetRegularKey", - "TxnSignature" : "304402204BCD5663F3A2BA02D2CE374439096EC6D27273522CD6E6E0BDBFB518730EAAE402200ECD02D8D2525D6FA4642613E71E395ECCEA01C42C35A668BF092A00EB649C26", - "hash" : "AB73BBF7C99061678B59FB48D72CA0F5FC6DD2815B6736C6E9EB94439EC236CE" - } - } + "result": { + "engine_result": "tesSUCCESS", + "engine_result_code": 0, + "engine_result_message": "The transaction was applied. Only final in a validated ledger.", + "status": "success", + "tx_blob": "1200052280000000240000000468400000000000000A73210384CA3C528F10C75F26E0917F001338BD3C9AA1A39B9FBD583DFFFD96CF2E2D7A7446304402204BCD5663F3A2BA02D2CE374439096EC6D27273522CD6E6E0BDBFB518730EAAE402200ECD02D8D2525D6FA4642613E71E395ECCEA01C42C35A668BF092A00EB649C268114830923439D307E642CED308FD91EF701A7BAA74788141620D685FB08D81A70D0B668749CF2E130EA7540", + "tx_json": { + "Account": "rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93", + "Fee": "10", + "Flags": 2147483648, + "RegularKey": "rsprUqu6BHAffAeG4HpSdjBNvnA6gdnZV7", + "Sequence": 4, + "SigningPubKey": "0384CA3C528F10C75F26E0917F001338BD3C9AA1A39B9FBD583DFFFD96CF2E2D7A", + "TransactionType": "SetRegularKey", + "TxnSignature": "304402204BCD5663F3A2BA02D2CE374439096EC6D27273522CD6E6E0BDBFB518730EAAE402200ECD02D8D2525D6FA4642613E71E395ECCEA01C42C35A668BF092A00EB649C26", + "hash": "AB73BBF7C99061678B59FB48D72CA0F5FC6DD2815B6736C6E9EB94439EC236CE" + } + } } ``` + {% /tab %} {% /tabs %} - Note that the response contains a `hash` of the transaction, which you can use to [look up the transaction's final outcome](../../../references/http-websocket-apis/public-api-methods/transaction-methods/tx.md). - ## 3. Verify the Regular Key Pair At this point, the regular key pair is assigned to your account and you should be able to send transactions using the regular key pair. **To avoid losing control of your account,** it is important that you test your regular key before you take any additional steps such as [disabling the master key pair](disable-master-key-pair.md). If you make a mistake and lose access to your account, no one can restore it for you. To verify that your account has the regular key pair set correctly, submit an [AccountSet transaction][] from your account, signing it with the regular private key you assigned to your account in step 2. As in step 1, this tutorial uses a local `rippled` server as a [way of securely signing transactions](../../../concepts/transactions/secure-signing.md). - ### Sign Your Transaction {% partial file="/docs/_snippets/tutorial-sign-step.md" /%} - Populate the request fields with the following values: -| Request Field | Value | -|:--------------|:-------------------------------------------------------------| -| `Account` | The address of your account. | +| Request Field | Value | +| :------------ | :---------------------------------------------------------------------------------------------------------------------------------- | +| `Account` | The address of your account. | | `secret` | `master_key`, `master_seed`, or `master_seed_hex` (regular private key) generated in step 1 and assigned to your account in step 2. | - #### Request Format Here's an example of the request format. Note that the request does not include any `AccountSet` options. This means that a successful transaction has no effect other than to confirm that the regular key pair is set correctly for your account (and to destroy the transaction cost). - {% tabs %} {% tab label="WebSocket" %} + ```json { "command": "sign", "tx_json": { - "TransactionType": "AccountSet", - "Account": "rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93" - }, - "secret": "sh8i92YRnEjJy3fpFkL8txQSCVo79" + "TransactionType": "AccountSet", + "Account": "rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93" + }, + "secret": "sh8i92YRnEjJy3fpFkL8txQSCVo79" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "sign", - "params": [ - { - "tx_json": { - "TransactionType": "AccountSet", - "Account": "rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93" - }, - "secret": "sh8i92YRnEjJy3fpFkL8txQSCVo79" - } - ] + "method": "sign", + "params": [ + { + "tx_json": { + "TransactionType": "AccountSet", + "Account": "rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93" + }, + "secret": "sh8i92YRnEjJy3fpFkL8txQSCVo79" + } + ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh #Syntax: sign secret tx_json rippled sign sh8i92YRnEjJy3fpFkL8txQSCVo79 '{"TransactionType": "AccountSet", "Account": "rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93"}' ``` + {% /tab %} {% /tabs %} - #### Response Format An example of a successful response: @@ -485,6 +512,7 @@ An example of a successful response: {% tabs %} {% tab label="WebSocket" %} + ```json { "result": { @@ -504,48 +532,53 @@ An example of a successful response: "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "result": { - "status": "success", - "tx_blob": "1200032280000000240000000468400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100A50E867D3B1B5A39F23F1ABCA5C7C3EC755442FDAA357EFD897B865ACA7686DB02206077BF459BCE39BCCBFE1A128DA986D1E00CBEC5F0D6B0E11710F60BE2976FB88114623B8DA4A0BFB3B61AB423391A182DC693DC159E", - "tx_json": { - "Account": "rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93", - "Fee": "10", - "Flags": 2147483648, - "Sequence": 4, - "SigningPubKey": "0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020", - "TransactionType": "AccountSet", - "TxnSignature": "3045022100A50E867D3B1B5A39F23F1ABCA5C7C3EC755442FDAA357EFD897B865ACA7686DB02206077BF459BCE39BCCBFE1A128DA986D1E00CBEC5F0D6B0E11710F60BE2976FB8", - "hash": "D9B305CB6E861D0994A5CDD4726129D91AC4277111DC444DE4CEE44AD4674A9F" - } + "result": { + "status": "success", + "tx_blob": "1200032280000000240000000468400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100A50E867D3B1B5A39F23F1ABCA5C7C3EC755442FDAA357EFD897B865ACA7686DB02206077BF459BCE39BCCBFE1A128DA986D1E00CBEC5F0D6B0E11710F60BE2976FB88114623B8DA4A0BFB3B61AB423391A182DC693DC159E", + "tx_json": { + "Account": "rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93", + "Fee": "10", + "Flags": 2147483648, + "Sequence": 4, + "SigningPubKey": "0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020", + "TransactionType": "AccountSet", + "TxnSignature": "3045022100A50E867D3B1B5A39F23F1ABCA5C7C3EC755442FDAA357EFD897B865ACA7686DB02206077BF459BCE39BCCBFE1A128DA986D1E00CBEC5F0D6B0E11710F60BE2976FB8", + "hash": "D9B305CB6E861D0994A5CDD4726129D91AC4277111DC444DE4CEE44AD4674A9F" } + } } ``` + {% /tab %} {% tab label="Commandline" %} + ```json { - "result" : { - "status" : "success", - "tx_blob" : "1200032280000000240000000468400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100A50E867D3B1B5A39F23F1ABCA5C7C3EC755442FDAA357EFD897B865ACA7686DB02206077BF459BCE39BCCBFE1A128DA986D1E00CBEC5F0D6B0E11710F60BE2976FB88114623B8DA4A0BFB3B61AB423391A182DC693DC159E", - "tx_json" : { - "Account" : "rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93", - "Fee" : "10", - "Flags" : 2147483648, - "Sequence" : 4, - "SigningPubKey" : "0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020", - "TransactionType" : "AccountSet", - "TxnSignature" : "3045022100A50E867D3B1B5A39F23F1ABCA5C7C3EC755442FDAA357EFD897B865ACA7686DB02206077BF459BCE39BCCBFE1A128DA986D1E00CBEC5F0D6B0E11710F60BE2976FB8", - "hash" : "D9B305CB6E861D0994A5CDD4726129D91AC4277111DC444DE4CEE44AD4674A9F" - } - } + "result": { + "status": "success", + "tx_blob": "1200032280000000240000000468400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100A50E867D3B1B5A39F23F1ABCA5C7C3EC755442FDAA357EFD897B865ACA7686DB02206077BF459BCE39BCCBFE1A128DA986D1E00CBEC5F0D6B0E11710F60BE2976FB88114623B8DA4A0BFB3B61AB423391A182DC693DC159E", + "tx_json": { + "Account": "rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93", + "Fee": "10", + "Flags": 2147483648, + "Sequence": 4, + "SigningPubKey": "0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020", + "TransactionType": "AccountSet", + "TxnSignature": "3045022100A50E867D3B1B5A39F23F1ABCA5C7C3EC755442FDAA357EFD897B865ACA7686DB02206077BF459BCE39BCCBFE1A128DA986D1E00CBEC5F0D6B0E11710F60BE2976FB8", + "hash": "D9B305CB6E861D0994A5CDD4726129D91AC4277111DC444DE4CEE44AD4674A9F" + } + } } ``` + {% /tab %} {% /tabs %} @@ -554,7 +587,6 @@ The `sign` command response contains a `tx_blob` value, as shown above. The offl Next, use the `submit` command to send the transaction blob (`tx_blob` or `signedTransaction`) to the network. - ### Submit Your Transaction Take the `signedTransaction` value from the offline signing response or the `tx_blob` value from the `sign` command response and submit it as the `tx_blob` value using the [submit method][]. @@ -566,37 +598,42 @@ An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { - "command": "submit", - "tx_blob": "1200032280000000240000000468400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100A50E867D3B1B5A39F23F1ABCA5C7C3EC755442FDAA357EFD897B865ACA7686DB02206077BF459BCE39BCCBFE1A128DA986D1E00CBEC5F0D6B0E11710F60BE2976FB88114623B8DA4A0BFB3B61AB423391A182DC693DC159E" + "command": "submit", + "tx_blob": "1200032280000000240000000468400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100A50E867D3B1B5A39F23F1ABCA5C7C3EC755442FDAA357EFD897B865ACA7686DB02206077BF459BCE39BCCBFE1A128DA986D1E00CBEC5F0D6B0E11710F60BE2976FB88114623B8DA4A0BFB3B61AB423391A182DC693DC159E" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method":"submit", - "params": [ - { - "tx_blob": "1200032280000000240000000468400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100A50E867D3B1B5A39F23F1ABCA5C7C3EC755442FDAA357EFD897B865ACA7686DB02206077BF459BCE39BCCBFE1A128DA986D1E00CBEC5F0D6B0E11710F60BE2976FB88114623B8DA4A0BFB3B61AB423391A182DC693DC159E" - } - ] + "method": "submit", + "params": [ + { + "tx_blob": "1200032280000000240000000468400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100A50E867D3B1B5A39F23F1ABCA5C7C3EC755442FDAA357EFD897B865ACA7686DB02206077BF459BCE39BCCBFE1A128DA986D1E00CBEC5F0D6B0E11710F60BE2976FB88114623B8DA4A0BFB3B61AB423391A182DC693DC159E" + } + ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh #Syntax: submit tx_blob rippled submit 1200032280000000240000000468400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100A50E867D3B1B5A39F23F1ABCA5C7C3EC755442FDAA357EFD897B865ACA7686DB02206077BF459BCE39BCCBFE1A128DA986D1E00CBEC5F0D6B0E11710F60BE2976FB88114623B8DA4A0BFB3B61AB423391A182DC693DC159E ``` + {% /tab %} {% /tabs %} - #### Response Format An example of a successful response: @@ -604,6 +641,7 @@ An example of a successful response: {% tabs %} {% tab label="WebSocket" %} + ```json { "result": { @@ -626,54 +664,59 @@ An example of a successful response: "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "result": { - "engine_result": "tesSUCCESS", - "engine_result_code": 0, - "engine_result_message": "The transaction was applied. Only final in a validated ledger.", - "status": "success", - "tx_blob": "1200032280000000240000000468400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100A50E867D3B1B5A39F23F1ABCA5C7C3EC755442FDAA357EFD897B865ACA7686DB02206077BF459BCE39BCCBFE1A128DA986D1E00CBEC5F0D6B0E11710F60BE2976FB88114623B8DA4A0BFB3B61AB423391A182DC693DC159E", - "tx_json": { - "Account": "rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93", - "Fee": "10", - "Flags": 2147483648, - "Sequence": 4, - "SigningPubKey": "0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020", - "TransactionType": "AccountSet", - "TxnSignature": "3045022100A50E867D3B1B5A39F23F1ABCA5C7C3EC755442FDAA357EFD897B865ACA7686DB02206077BF459BCE39BCCBFE1A128DA986D1E00CBEC5F0D6B0E11710F60BE2976FB8", - "hash": "D9B305CB6E861D0994A5CDD4726129D91AC4277111DC444DE4CEE44AD4674A9F" - } + "result": { + "engine_result": "tesSUCCESS", + "engine_result_code": 0, + "engine_result_message": "The transaction was applied. Only final in a validated ledger.", + "status": "success", + "tx_blob": "1200032280000000240000000468400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100A50E867D3B1B5A39F23F1ABCA5C7C3EC755442FDAA357EFD897B865ACA7686DB02206077BF459BCE39BCCBFE1A128DA986D1E00CBEC5F0D6B0E11710F60BE2976FB88114623B8DA4A0BFB3B61AB423391A182DC693DC159E", + "tx_json": { + "Account": "rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93", + "Fee": "10", + "Flags": 2147483648, + "Sequence": 4, + "SigningPubKey": "0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020", + "TransactionType": "AccountSet", + "TxnSignature": "3045022100A50E867D3B1B5A39F23F1ABCA5C7C3EC755442FDAA357EFD897B865ACA7686DB02206077BF459BCE39BCCBFE1A128DA986D1E00CBEC5F0D6B0E11710F60BE2976FB8", + "hash": "D9B305CB6E861D0994A5CDD4726129D91AC4277111DC444DE4CEE44AD4674A9F" } + } } ``` + {% /tab %} {% tab label="Commandline" %} + ```json { - "result" : { - "engine_result" : "tesSUCCESS", - "engine_result_code" : 0, - "engine_result_message" : "The transaction was applied. Only final in a validated ledger.", - "status" : "success", - "tx_blob" : "1200032280000000240000000468400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100A50E867D3B1B5A39F23F1ABCA5C7C3EC755442FDAA357EFD897B865ACA7686DB02206077BF459BCE39BCCBFE1A128DA986D1E00CBEC5F0D6B0E11710F60BE2976FB88114623B8DA4A0BFB3B61AB423391A182DC693DC159E", - "tx_json" : { - "Account" : "rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93", - "Fee" : "10", - "Flags" : 2147483648, - "Sequence" : 4, - "SigningPubKey" : "0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020", - "TransactionType" : "AccountSet", - "TxnSignature" : "3045022100A50E867D3B1B5A39F23F1ABCA5C7C3EC755442FDAA357EFD897B865ACA7686DB02206077BF459BCE39BCCBFE1A128DA986D1E00CBEC5F0D6B0E11710F60BE2976FB8", - "hash" : "D9B305CB6E861D0994A5CDD4726129D91AC4277111DC444DE4CEE44AD4674A9F" - } - } + "result": { + "engine_result": "tesSUCCESS", + "engine_result_code": 0, + "engine_result_message": "The transaction was applied. Only final in a validated ledger.", + "status": "success", + "tx_blob": "1200032280000000240000000468400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100A50E867D3B1B5A39F23F1ABCA5C7C3EC755442FDAA357EFD897B865ACA7686DB02206077BF459BCE39BCCBFE1A128DA986D1E00CBEC5F0D6B0E11710F60BE2976FB88114623B8DA4A0BFB3B61AB423391A182DC693DC159E", + "tx_json": { + "Account": "rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93", + "Fee": "10", + "Flags": 2147483648, + "Sequence": 4, + "SigningPubKey": "0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020", + "TransactionType": "AccountSet", + "TxnSignature": "3045022100A50E867D3B1B5A39F23F1ABCA5C7C3EC755442FDAA357EFD897B865ACA7686DB02206077BF459BCE39BCCBFE1A128DA986D1E00CBEC5F0D6B0E11710F60BE2976FB8", + "hash": "D9B305CB6E861D0994A5CDD4726129D91AC4277111DC444DE4CEE44AD4674A9F" + } + } } ``` + {% /tab %} {% /tabs %} @@ -685,23 +728,22 @@ If the transaction fails with the following [result codes](../../../references/p For possible causes of other result codes, see [Transaction Results](../../../references/protocol/transactions/transaction-results/index.md). - ## See Also Now that you're familiar with the benefits of assigning a regular key pair to an account, consider taking a look at these related topics and tutorials: - **Concepts:** - - [Cryptographic Keys](../../../concepts/accounts/cryptographic-keys.md) - - [Multi-Signing](../../../concepts/accounts/multi-signing.md) - - [Issuing and Operational Addresses](../../../concepts/accounts/account-types.md) + - [Cryptographic Keys](../../../concepts/accounts/cryptographic-keys.md) + - [Multi-Signing](../../../concepts/accounts/multi-signing.md) + - [Issuing and Operational Addresses](../../../concepts/accounts/account-types.md) - **Tutorials:** - - [Change or Remove a Regular Key Pair](change-or-remove-a-regular-key-pair.md) - - [Set Up Multi-Signing](set-up-multi-signing.md) - - [List XRP as an Exchange](../../../use-cases/defi/list-xrp-as-an-exchange.md) + - [Change or Remove a Regular Key Pair](change-or-remove-a-regular-key-pair.md) + - [Set Up Multi-Signing](set-up-multi-signing.md) + - [List XRP as an Exchange](../../../use-cases/defi/list-xrp-as-an-exchange.md) - **References:** - - [wallet_propose method][] - - [sign method][] - - [SetRegularKey transaction][] - - [AccountRoot object](../../../references/protocol/ledger-data/ledger-entry-types/accountroot.md) where the regular key is stored in the field `RegularKey` + - [wallet_propose method][] + - [sign method][] + - [SetRegularKey transaction][] + - [AccountRoot object](../../../references/protocol/ledger-data/ledger-entry-types/accountroot.md) where the regular key is stored in the field `RegularKey` {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/tutorials/how-tos/manage-account-settings/change-or-remove-a-regular-key-pair.md b/docs/tutorials/how-tos/manage-account-settings/change-or-remove-a-regular-key-pair.md index 84a135a8b9..e31d6a3017 100644 --- a/docs/tutorials/how-tos/manage-account-settings/change-or-remove-a-regular-key-pair.md +++ b/docs/tutorials/how-tos/manage-account-settings/change-or-remove-a-regular-key-pair.md @@ -2,45 +2,41 @@ html: change-or-remove-a-regular-key-pair.html parent: manage-account-settings.html seo: - description: Remove or update a regular key pair already authorized by your account. + description: Remove or update a regular key pair already authorized by your account. labels: - Security - Accounts --- + # Change or Remove a Regular Key Pair -The XRP Ledger allows an account to authorize a secondary key pair, called a _[regular key pair](../../../concepts/accounts/cryptographic-keys.md)_, to sign future transactions. If your [account](../../../concepts/accounts/index.md)'s regular key pair is compromised, or if you want to periodically change the regular key pair as a security measure, use a [SetRegularKey transaction][] to remove or change the regular key pair for your account. +The XRP Ledger allows an account to authorize a secondary key pair, called a _[regular key pair](../../../concepts/accounts/cryptographic-keys.md)_, to sign future transactions. If your [account](../../../concepts/accounts/index.md)'s regular key pair is compromised, or if you want to periodically change the regular key pair as a security measure, use a [SetRegularKey transaction][] to remove or change the regular key pair for your account. For more information about master and regular key pairs, see [Cryptographic Keys](../../../concepts/accounts/cryptographic-keys.md). - ## Changing a Regular Key Pair The steps to change your existing regular key pair are almost the same as the steps to [assign a regular key](assign-a-regular-key-pair.md) for the first time. You generate the key pair and assign it to your account as a regular key pair, overwriting the existing regular key pair. However, the main difference is that when changing the existing regular key pair, you can use the existing regular private key to replace itself; but when assigning a regular key pair to an account for the first time, you have to use the account's master private key to do it. For more information about master and regular key pairs, see [Cryptographic Keys](../../../concepts/accounts/cryptographic-keys.md). - ## Removing a Regular Key Pair If you want to remove a compromised regular key pair from your account, you don't need to generate a key pair first. Use a [SetRegularKey transaction][], omitting the `RegularKey` field. Note that the transaction fails if you don't have another way of signing for your account currently enabled (either the master key pair or a [signer list](../../../concepts/accounts/multi-signing.md)). - When removing a regular key pair to your account, the `SetRegularKey` transaction requires signing by your account's master private key (secret) or existing regular key pair. Sending your master or regular private key anywhere is dangerous, so we keep transaction signing separate from transaction submission to the network. ### Sign Your Transaction {% partial file="/docs/_snippets/tutorial-sign-step.md" /%} - Populate the request fields with the following values: -| Request Field | Value | -|:--------------|:-------------------------------------------------------------| -| `Account` | The address of your account. | +| Request Field | Value | +| :------------ | :-------------------------------------------------------------------------------------------------- | +| `Account` | The address of your account. | | `secret` | `master_key`, `master_seed`, or `master_seed_hex` (master or regular private key) for your account. | - #### Request Format An example of the request format: @@ -48,45 +44,50 @@ An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { "command": "sign", "tx_json": { - "TransactionType": "SetRegularKey", - "Account": "r9xQZdFGwbwTB3g9ncKByWZ3du6Skm7gQ8" - }, - "secret": "snoPBrXtMeMyMHUVTgbuqAfg1SUTb" + "TransactionType": "SetRegularKey", + "Account": "r9xQZdFGwbwTB3g9ncKByWZ3du6Skm7gQ8" + }, + "secret": "snoPBrXtMeMyMHUVTgbuqAfg1SUTb" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "sign", - "params": [ - { - "secret" : "snoPBrXtMeMyMHUVTgbuqAfg1SUTb", - "tx_json" : { - "TransactionType" : "SetRegularKey", - "Account" : "r9xQZdFGwbwTB3g9ncKByWZ3du6Skm7gQ8" - } - } - ] + "method": "sign", + "params": [ + { + "secret": "snoPBrXtMeMyMHUVTgbuqAfg1SUTb", + "tx_json": { + "TransactionType": "SetRegularKey", + "Account": "r9xQZdFGwbwTB3g9ncKByWZ3du6Skm7gQ8" + } + } + ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh #Syntax: sign secret tx_json rippled sign snoPBrXtMeMyMHUVTgbuqAfg1SUTb '{"TransactionType": "SetRegularKey", "Account": "rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93"}' ``` + {% /tab %} {% /tabs %} - #### Response Format An example of a successful response: @@ -94,6 +95,7 @@ An example of a successful response: {% tabs %} {% tab label="WebSocket" %} + ```json { "result": { @@ -113,48 +115,53 @@ An example of a successful response: "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "result": { - "status": "success", - "tx_blob": "1200052280000000240000000268400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100CAB9A6F84026D57B05760D5E2395FB7BE86BF39F10DC6E2E69DC91238EE0970B022058EC36A8EF9EE65F5D0D8CAC4E88C8C19FEF39E40F53D4CCECBB59701D6D1E838114623B8DA4A0BFB3B61AB423391A182DC693DC159E", - "tx_json": { - "Account": "r9xQZdFGwbwTB3g9ncKByWZ3du6Skm7gQ8", - "Fee": "10", - "Flags": 2147483648, - "Sequence": 2, - "SigningPubKey": "0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020", - "TransactionType": "SetRegularKey", - "TxnSignature": "3045022100CAB9A6F84026D57B05760D5E2395FB7BE86BF39F10DC6E2E69DC91238EE0970B022058EC36A8EF9EE65F5D0D8CAC4E88C8C19FEF39E40F53D4CCECBB59701D6D1E83", - "hash": "59BCAB8E5B9D4597D6A7BFF22F6C555D0F41420599A2E126035B6AF19261AD97" - } + "result": { + "status": "success", + "tx_blob": "1200052280000000240000000268400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100CAB9A6F84026D57B05760D5E2395FB7BE86BF39F10DC6E2E69DC91238EE0970B022058EC36A8EF9EE65F5D0D8CAC4E88C8C19FEF39E40F53D4CCECBB59701D6D1E838114623B8DA4A0BFB3B61AB423391A182DC693DC159E", + "tx_json": { + "Account": "r9xQZdFGwbwTB3g9ncKByWZ3du6Skm7gQ8", + "Fee": "10", + "Flags": 2147483648, + "Sequence": 2, + "SigningPubKey": "0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020", + "TransactionType": "SetRegularKey", + "TxnSignature": "3045022100CAB9A6F84026D57B05760D5E2395FB7BE86BF39F10DC6E2E69DC91238EE0970B022058EC36A8EF9EE65F5D0D8CAC4E88C8C19FEF39E40F53D4CCECBB59701D6D1E83", + "hash": "59BCAB8E5B9D4597D6A7BFF22F6C555D0F41420599A2E126035B6AF19261AD97" } + } } ``` + {% /tab %} {% tab label="Commandline" %} + ```json { - "result" : { - "status" : "success", - "tx_blob" : "1200052280000000240000000268400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100CAB9A6F84026D57B05760D5E2395FB7BE86BF39F10DC6E2E69DC91238EE0970B022058EC36A8EF9EE65F5D0D8CAC4E88C8C19FEF39E40F53D4CCECBB59701D6D1E838114623B8DA4A0BFB3B61AB423391A182DC693DC159E", - "tx_json" : { - "Account" : "r9xQZdFGwbwTB3g9ncKByWZ3du6Skm7gQ8", - "Fee" : "10", - "Flags" : 2147483648, - "Sequence" : 2, - "SigningPubKey" : "0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020", - "TransactionType" : "SetRegularKey", - "TxnSignature" : "3045022100CAB9A6F84026D57B05760D5E2395FB7BE86BF39F10DC6E2E69DC91238EE0970B022058EC36A8EF9EE65F5D0D8CAC4E88C8C19FEF39E40F53D4CCECBB59701D6D1E83", - "hash" : "59BCAB8E5B9D4597D6A7BFF22F6C555D0F41420599A2E126035B6AF19261AD97" - } - } + "result": { + "status": "success", + "tx_blob": "1200052280000000240000000268400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100CAB9A6F84026D57B05760D5E2395FB7BE86BF39F10DC6E2E69DC91238EE0970B022058EC36A8EF9EE65F5D0D8CAC4E88C8C19FEF39E40F53D4CCECBB59701D6D1E838114623B8DA4A0BFB3B61AB423391A182DC693DC159E", + "tx_json": { + "Account": "r9xQZdFGwbwTB3g9ncKByWZ3du6Skm7gQ8", + "Fee": "10", + "Flags": 2147483648, + "Sequence": 2, + "SigningPubKey": "0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020", + "TransactionType": "SetRegularKey", + "TxnSignature": "3045022100CAB9A6F84026D57B05760D5E2395FB7BE86BF39F10DC6E2E69DC91238EE0970B022058EC36A8EF9EE65F5D0D8CAC4E88C8C19FEF39E40F53D4CCECBB59701D6D1E83", + "hash": "59BCAB8E5B9D4597D6A7BFF22F6C555D0F41420599A2E126035B6AF19261AD97" + } + } } ``` + {% /tab %} {% /tabs %} @@ -163,7 +170,6 @@ The `sign` command response contains a `tx_blob` value, as shown above. The offl Next, use the `submit` command to send the transaction blob (`tx_blob` or `signedTransaction`) to the network. - ### Submit Your Transaction Take the `signedTransaction` value from the offline signing response or the `tx_blob` value from the `sign` command response and submit it as the `tx_blob` value using the [submit method][]. @@ -175,37 +181,42 @@ An example of the request format: {% tabs %} {% tab label="WebSocket" %} + ```json { - "command": "submit", - "tx_blob": "1200052280000000240000000268400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100CAB9A6F84026D57B05760D5E2395FB7BE86BF39F10DC6E2E69DC91238EE0970B022058EC36A8EF9EE65F5D0D8CAC4E88C8C19FEF39E40F53D4CCECBB59701D6D1E838114623B8DA4A0BFB3B61AB423391A182DC693DC159E" + "command": "submit", + "tx_blob": "1200052280000000240000000268400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100CAB9A6F84026D57B05760D5E2395FB7BE86BF39F10DC6E2E69DC91238EE0970B022058EC36A8EF9EE65F5D0D8CAC4E88C8C19FEF39E40F53D4CCECBB59701D6D1E838114623B8DA4A0BFB3B61AB423391A182DC693DC159E" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method":"submit", - "params":[ - { - "tx_blob":"1200052280000000240000000268400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100CAB9A6F84026D57B05760D5E2395FB7BE86BF39F10DC6E2E69DC91238EE0970B022058EC36A8EF9EE65F5D0D8CAC4E88C8C19FEF39E40F53D4CCECBB59701D6D1E838114623B8DA4A0BFB3B61AB423391A182DC693DC159E" - } - ] + "method": "submit", + "params": [ + { + "tx_blob": "1200052280000000240000000268400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100CAB9A6F84026D57B05760D5E2395FB7BE86BF39F10DC6E2E69DC91238EE0970B022058EC36A8EF9EE65F5D0D8CAC4E88C8C19FEF39E40F53D4CCECBB59701D6D1E838114623B8DA4A0BFB3B61AB423391A182DC693DC159E" + } + ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh #Syntax: submit tx_blob rippled submit 1200052280000000240000000268400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100CAB9A6F84026D57B05760D5E2395FB7BE86BF39F10DC6E2E69DC91238EE0970B022058EC36A8EF9EE65F5D0D8CAC4E88C8C19FEF39E40F53D4CCECBB59701D6D1E838114623B8DA4A0BFB3B61AB423391A182DC693DC159E ``` + {% /tab %} {% /tabs %} - #### Response Format An example of a successful response: @@ -213,6 +224,7 @@ An example of a successful response: {% tabs %} {% tab label="WebSocket" %} + ```json { "result": { @@ -235,54 +247,59 @@ An example of a successful response: "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "result": { - "engine_result": "tesSUCCESS", - "engine_result_code": 0, - "engine_result_message": "The transaction was applied. Only final in a validated ledger.", - "status": "success", - "tx_blob": "1200052280000000240000000268400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100CAB9A6F84026D57B05760D5E2395FB7BE86BF39F10DC6E2E69DC91238EE0970B022058EC36A8EF9EE65F5D0D8CAC4E88C8C19FEF39E40F53D4CCECBB59701D6D1E838114623B8DA4A0BFB3B61AB423391A182DC693DC159E", - "tx_json": { - "Account": "r9xQZdFGwbwTB3g9ncKByWZ3du6Skm7gQ8", - "Fee": "10", - "Flags": 2147483648, - "Sequence": 2, - "SigningPubKey": "0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020", - "TransactionType": "SetRegularKey", - "TxnSignature": "3045022100CAB9A6F84026D57B05760D5E2395FB7BE86BF39F10DC6E2E69DC91238EE0970B022058EC36A8EF9EE65F5D0D8CAC4E88C8C19FEF39E40F53D4CCECBB59701D6D1E83", - "hash": "59BCAB8E5B9D4597D6A7BFF22F6C555D0F41420599A2E126035B6AF19261AD97" - } + "result": { + "engine_result": "tesSUCCESS", + "engine_result_code": 0, + "engine_result_message": "The transaction was applied. Only final in a validated ledger.", + "status": "success", + "tx_blob": "1200052280000000240000000268400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100CAB9A6F84026D57B05760D5E2395FB7BE86BF39F10DC6E2E69DC91238EE0970B022058EC36A8EF9EE65F5D0D8CAC4E88C8C19FEF39E40F53D4CCECBB59701D6D1E838114623B8DA4A0BFB3B61AB423391A182DC693DC159E", + "tx_json": { + "Account": "r9xQZdFGwbwTB3g9ncKByWZ3du6Skm7gQ8", + "Fee": "10", + "Flags": 2147483648, + "Sequence": 2, + "SigningPubKey": "0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020", + "TransactionType": "SetRegularKey", + "TxnSignature": "3045022100CAB9A6F84026D57B05760D5E2395FB7BE86BF39F10DC6E2E69DC91238EE0970B022058EC36A8EF9EE65F5D0D8CAC4E88C8C19FEF39E40F53D4CCECBB59701D6D1E83", + "hash": "59BCAB8E5B9D4597D6A7BFF22F6C555D0F41420599A2E126035B6AF19261AD97" } + } } ``` + {% /tab %} {% tab label="Commandline" %} + ```json { - "result" : { - "engine_result" : "tesSUCCESS", - "engine_result_code" : 0, - "engine_result_message" : "The transaction was applied. Only final in a validated ledger.", - "status" : "success", - "tx_blob" : "1200052280000000240000000268400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100CAB9A6F84026D57B05760D5E2395FB7BE86BF39F10DC6E2E69DC91238EE0970B022058EC36A8EF9EE65F5D0D8CAC4E88C8C19FEF39E40F53D4CCECBB59701D6D1E838114623B8DA4A0BFB3B61AB423391A182DC693DC159E", - "tx_json" : { - "Account" : "r9xQZdFGwbwTB3g9ncKByWZ3du6Skm7gQ8", - "Fee" : "10", - "Flags" : 2147483648, - "Sequence" : 2, - "SigningPubKey" : "0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020", - "TransactionType" : "SetRegularKey", - "TxnSignature" : "3045022100CAB9A6F84026D57B05760D5E2395FB7BE86BF39F10DC6E2E69DC91238EE0970B022058EC36A8EF9EE65F5D0D8CAC4E88C8C19FEF39E40F53D4CCECBB59701D6D1E83", - "hash" : "59BCAB8E5B9D4597D6A7BFF22F6C555D0F41420599A2E126035B6AF19261AD97" - } - } + "result": { + "engine_result": "tesSUCCESS", + "engine_result_code": 0, + "engine_result_message": "The transaction was applied. Only final in a validated ledger.", + "status": "success", + "tx_blob": "1200052280000000240000000268400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100CAB9A6F84026D57B05760D5E2395FB7BE86BF39F10DC6E2E69DC91238EE0970B022058EC36A8EF9EE65F5D0D8CAC4E88C8C19FEF39E40F53D4CCECBB59701D6D1E838114623B8DA4A0BFB3B61AB423391A182DC693DC159E", + "tx_json": { + "Account": "r9xQZdFGwbwTB3g9ncKByWZ3du6Skm7gQ8", + "Fee": "10", + "Flags": 2147483648, + "Sequence": 2, + "SigningPubKey": "0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020", + "TransactionType": "SetRegularKey", + "TxnSignature": "3045022100CAB9A6F84026D57B05760D5E2395FB7BE86BF39F10DC6E2E69DC91238EE0970B022058EC36A8EF9EE65F5D0D8CAC4E88C8C19FEF39E40F53D4CCECBB59701D6D1E83", + "hash": "59BCAB8E5B9D4597D6A7BFF22F6C555D0F41420599A2E126035B6AF19261AD97" + } + } } ``` + {% /tab %} {% /tabs %} @@ -291,7 +308,6 @@ The way to verify that regular key pair removal succeeded is to confirm that you Here's an example error response for an [AccountSet transaction][] signed using the regular private key removed by the `SetRegularKey` transaction above. - ### Response Format An example of a successful response: @@ -299,6 +315,7 @@ An example of a successful response: {% tabs %} {% tab label="WebSocket" %} + ```json { "error": "badSecret", @@ -316,67 +333,71 @@ An example of a successful response: "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "result": { - "error": "badSecret", - "error_code": 41, - "error_message": "Secret does not match account.", - "request": { - "command": "submit", - "secret": "snoPBrXtMeMyMHUVTgbuqAfg1SUTb", - "tx_json": { - "Account": "r9xQZdFGwbwTB3g9ncKByWZ3du6Skm7gQ8", - "TransactionType": "AccountSet" - } - }, - "status": "error" - } + "result": { + "error": "badSecret", + "error_code": 41, + "error_message": "Secret does not match account.", + "request": { + "command": "submit", + "secret": "snoPBrXtMeMyMHUVTgbuqAfg1SUTb", + "tx_json": { + "Account": "r9xQZdFGwbwTB3g9ncKByWZ3du6Skm7gQ8", + "TransactionType": "AccountSet" + } + }, + "status": "error" + } } ``` + {% /tab %} {% tab label="Commandline" %} + ```json { - "result" : { - "error" : "badSecret", - "error_code" : 41, - "error_message" : "Secret does not match account.", - "request" : { - "command" : "submit", - "secret" : "snoPBrXtMeMyMHUVTgbuqAfg1SUTb", - "tx_json" : { - "Account" : "r9xQZdFGwbwTB3g9ncKByWZ3du6Skm7gQ8", - "TransactionType" : "AccountSet" - } - }, - "status" : "error" - } + "result": { + "error": "badSecret", + "error_code": 41, + "error_message": "Secret does not match account.", + "request": { + "command": "submit", + "secret": "snoPBrXtMeMyMHUVTgbuqAfg1SUTb", + "tx_json": { + "Account": "r9xQZdFGwbwTB3g9ncKByWZ3du6Skm7gQ8", + "TransactionType": "AccountSet" + } + }, + "status": "error" + } } ``` + {% /tab %} {% /tabs %} In some cases, you can even use the `SetRegularKey` transaction to send a [key reset transaction](../../../concepts/transactions/transaction-cost.md#key-reset-transaction) without paying the [transaction cost](../../../concepts/transactions/transaction-cost.md). The XRP Ledger's [transaction queue](../../../concepts/transactions/transaction-queue.md) prioritizes key reset transactions above other transactions even though the nominal transaction cost of a key reset transaction is zero. - - **Concepts:** - - [Cryptographic Keys](../../../concepts/accounts/cryptographic-keys.md) - - [Multi-Signing](../../../concepts/accounts/multi-signing.md) - - [Transaction Cost](../../../concepts/transactions/transaction-cost.md) + - [Cryptographic Keys](../../../concepts/accounts/cryptographic-keys.md) + - [Multi-Signing](../../../concepts/accounts/multi-signing.md) + - [Transaction Cost](../../../concepts/transactions/transaction-cost.md) - **Tutorials:** - - [Change or Remove a Regular Key Pair](change-or-remove-a-regular-key-pair.md) - - [Set Up Multi-Signing](set-up-multi-signing.md) - - [List XRP as an Exchange](../../../use-cases/defi/list-xrp-as-an-exchange.md) + - [Change or Remove a Regular Key Pair](change-or-remove-a-regular-key-pair.md) + - [Set Up Multi-Signing](set-up-multi-signing.md) + - [List XRP as an Exchange](../../../use-cases/defi/list-xrp-as-an-exchange.md) - **References:** - - [wallet_propose method][] - - [sign method][] - - [SetRegularKey transaction][] - - [AccountRoot object](../../../references/protocol/ledger-data/ledger-entry-types/accountroot.md) where the regular key is stored in the field `RegularKey` + - [wallet_propose method][] + - [sign method][] + - [SetRegularKey transaction][] + - [AccountRoot object](../../../references/protocol/ledger-data/ledger-entry-types/accountroot.md) where the regular key is stored in the field `RegularKey` {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/tutorials/how-tos/manage-account-settings/disable-master-key-pair.md b/docs/tutorials/how-tos/manage-account-settings/disable-master-key-pair.md index e400be100a..bd7ebc3b00 100644 --- a/docs/tutorials/how-tos/manage-account-settings/disable-master-key-pair.md +++ b/docs/tutorials/how-tos/manage-account-settings/disable-master-key-pair.md @@ -2,11 +2,12 @@ html: disable-master-key-pair.html parent: manage-account-settings.html seo: - description: Disable the master key that is mathematically associated with an address. + description: Disable the master key that is mathematically associated with an address. labels: - Security - Accounts --- + # Disable Master Key Pair This page describes how to disable the [master key pair](../../../concepts/accounts/cryptographic-keys.md) that is mathematically associated with an [account](../../../concepts/accounts/index.md)'s address. You should do this if your account's master key pair may have been compromised, or if you want to make [multi-signing](../../../concepts/accounts/multi-signing.md) the _only_ way to submit transactions from your account. @@ -20,11 +21,11 @@ This page describes how to disable the [master key pair](../../../concepts/accou To disable the master key pair for an account, you must meet the following prerequisites: - You must have an XRP Ledger [account](../../../concepts/accounts/index.md) and you must be able to sign and submit transactions from that account using the master key pair. See also: [Set Up Secure Signing](../../../concepts/transactions/secure-signing.md). Two common ways this can work are: - - You know the account's master seed value. A seed value is commonly represented as a [base58][] value starting with "s", such as `sn3nxiW7v8KXzPzAqzyHXbSSKNuN9`. - - Or, you use a [dedicated signing device](../../../concepts/transactions/secure-signing.md#use-a-dedicated-signing-device) that stores the seed value securely, so you don't need to know it. + - You know the account's master seed value. A seed value is commonly represented as a [base58][] value starting with "s", such as `sn3nxiW7v8KXzPzAqzyHXbSSKNuN9`. + - Or, you use a [dedicated signing device](../../../concepts/transactions/secure-signing.md#use-a-dedicated-signing-device) that stores the seed value securely, so you don't need to know it. - Your account must have at least one method of authorizing transactions other than the master key pair. In other words, you must do one or both of the following: - - [Assign a Regular Key Pair](assign-a-regular-key-pair.md). - - [Set Up Multi-Signing](set-up-multi-signing.md). + - [Assign a Regular Key Pair](assign-a-regular-key-pair.md). + - [Set Up Multi-Signing](set-up-multi-signing.md). ## Steps @@ -53,6 +54,7 @@ You must use the **master key pair** to sign the transaction. {% tabs %} {% tab label="WebSocket" %} + ```json { "command": "sign", @@ -64,31 +66,36 @@ You must use the **master key pair** to sign the transaction. "secret": "s████████████████████████████" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "sign", - "params": [ - { - "tx_json": { - "TransactionType": "AccountSet", - "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "SetFlag": 4 - }, - "secret": "s████████████████████████████" - } - ] + "method": "sign", + "params": [ + { + "tx_json": { + "TransactionType": "AccountSet", + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "SetFlag": 4 + }, + "secret": "s████████████████████████████" + } + ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh $ rippled sign s████████████████████████████ '{"TransactionType":"AccountSet", "Account":"rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", "SetFlag":4}' ``` + {% /tab %} {% /tabs %} @@ -98,6 +105,7 @@ $ rippled sign s█████████████████████ {% tabs %} {% tab label="WebSocket" %} + ```json { "result": { @@ -119,33 +127,36 @@ $ rippled sign s█████████████████████ "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "result": { - "deprecated": "This command has been deprecated and will be removed in a future version of the server. Please migrate to a standalone signing tool.", - "status": "success", - "tx_blob": "1200032280000000240000017C20210000000468400000000000000A732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB7446304402204457A890BC06F48061F8D61042975702B57EBEF3EA2C7C484DFE38CFD42EA11102202505A7C62FF41E68FDE10271BADD75BD66D54B2F96A326BE487A2728A352442D81144B4E9C06F24296074F7BC48F92A97916C6DC5EA9", - "tx_json": { - "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "Fee": "10", - "Flags": 2147483648, - "Sequence": 380, - "SetFlag": 4, - "SigningPubKey": "03AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB", - "TransactionType": "AccountSet", - "TxnSignature": "304402204457A890BC06F48061F8D61042975702B57EBEF3EA2C7C484DFE38CFD42EA11102202505A7C62FF41E68FDE10271BADD75BD66D54B2F96A326BE487A2728A352442D", - "hash": "327FD263132A4D08170E1B01FE1BB2E21D0126CE58165C97A9173CA9551BCD70" - } + "result": { + "deprecated": "This command has been deprecated and will be removed in a future version of the server. Please migrate to a standalone signing tool.", + "status": "success", + "tx_blob": "1200032280000000240000017C20210000000468400000000000000A732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB7446304402204457A890BC06F48061F8D61042975702B57EBEF3EA2C7C484DFE38CFD42EA11102202505A7C62FF41E68FDE10271BADD75BD66D54B2F96A326BE487A2728A352442D81144B4E9C06F24296074F7BC48F92A97916C6DC5EA9", + "tx_json": { + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "Fee": "10", + "Flags": 2147483648, + "Sequence": 380, + "SetFlag": 4, + "SigningPubKey": "03AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB", + "TransactionType": "AccountSet", + "TxnSignature": "304402204457A890BC06F48061F8D61042975702B57EBEF3EA2C7C484DFE38CFD42EA11102202505A7C62FF41E68FDE10271BADD75BD66D54B2F96A326BE487A2728A352442D", + "hash": "327FD263132A4D08170E1B01FE1BB2E21D0126CE58165C97A9173CA9551BCD70" } + } } - ``` + {% /tab %} {% tab label="Commandline" %} + ```sh Loading: "/etc/opt/ripple/rippled.cfg" 2020-Feb-13 00:13:24.783570867 HTTPClient:NFO Connecting to 127.0.0.1:5005 @@ -169,6 +180,7 @@ Loading: "/etc/opt/ripple/rippled.cfg" } } ``` + {% /tab %} {% /tabs %} @@ -189,31 +201,37 @@ Submit the signed transaction blob from the previous step to the XRP Ledger. {% tabs %} {% tab label="WebSocket" %} + ```json { - "command": "submit", - "tx_blob": "1200032280000000240000017C20210000000468400000000000000A732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB7446304402204457A890BC06F48061F8D61042975702B57EBEF3EA2C7C484DFE38CFD42EA11102202505A7C62FF41E68FDE10271BADD75BD66D54B2F96A326BE487A2728A352442D81144B4E9C06F24296074F7BC48F92A97916C6DC5EA9" + "command": "submit", + "tx_blob": "1200032280000000240000017C20210000000468400000000000000A732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB7446304402204457A890BC06F48061F8D61042975702B57EBEF3EA2C7C484DFE38CFD42EA11102202505A7C62FF41E68FDE10271BADD75BD66D54B2F96A326BE487A2728A352442D81144B4E9C06F24296074F7BC48F92A97916C6DC5EA9" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method":"submit", - "params": [ - { - "tx_blob": "1200032280000000240000017C20210000000468400000000000000A732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB7446304402204457A890BC06F48061F8D61042975702B57EBEF3EA2C7C484DFE38CFD42EA11102202505A7C62FF41E68FDE10271BADD75BD66D54B2F96A326BE487A2728A352442D81144B4E9C06F24296074F7BC48F92A97916C6DC5EA9" - } - ] + "method": "submit", + "params": [ + { + "tx_blob": "1200032280000000240000017C20210000000468400000000000000A732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB7446304402204457A890BC06F48061F8D61042975702B57EBEF3EA2C7C484DFE38CFD42EA11102202505A7C62FF41E68FDE10271BADD75BD66D54B2F96A326BE487A2728A352442D81144B4E9C06F24296074F7BC48F92A97916C6DC5EA9" + } + ] } ``` + {% /tab %} {% tab label="Commandline" %} + ``` $ rippled submit 1200032280000000240000017C20210000000468400000000000000A732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB7446304402204457A890BC06F48061F8D61042975702B57EBEF3EA2C7C484DFE38CFD42EA11102202505A7C62FF41E68FDE10271BADD75BD66D54B2F96A326BE487A2728A352442D81144B4E9C06F24296074F7BC48F92A97916C6DC5EA9 ``` + {% /tab %} {% /tabs %} @@ -223,57 +241,62 @@ $ rippled submit 1200032280000000240000017C20210000000468400000000000000A732103A {% tabs %} {% tab label="WebSocket" %} + ```json { "result": { - "engine_result" : "tesSUCCESS", - "engine_result_code" : 0, - "engine_result_message" : "The transaction was applied. Only final in a validated ledger.", - "tx_blob" : "1200032280000000240000017C20210000000468400000000000000A732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB7446304402204457A890BC06F48061F8D61042975702B57EBEF3EA2C7C484DFE38CFD42EA11102202505A7C62FF41E68FDE10271BADD75BD66D54B2F96A326BE487A2728A352442D81144B4E9C06F24296074F7BC48F92A97916C6DC5EA9", - "tx_json" : { - "Account" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "Fee" : "10", - "Flags" : 2147483648, - "Sequence" : 380, - "SetFlag" : 4, - "SigningPubKey" : "03AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB", - "TransactionType" : "AccountSet", - "TxnSignature" : "304402204457A890BC06F48061F8D61042975702B57EBEF3EA2C7C484DFE38CFD42EA11102202505A7C62FF41E68FDE10271BADD75BD66D54B2F96A326BE487A2728A352442D", - "hash" : "327FD263132A4D08170E1B01FE1BB2E21D0126CE58165C97A9173CA9551BCD70" + "engine_result": "tesSUCCESS", + "engine_result_code": 0, + "engine_result_message": "The transaction was applied. Only final in a validated ledger.", + "tx_blob": "1200032280000000240000017C20210000000468400000000000000A732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB7446304402204457A890BC06F48061F8D61042975702B57EBEF3EA2C7C484DFE38CFD42EA11102202505A7C62FF41E68FDE10271BADD75BD66D54B2F96A326BE487A2728A352442D81144B4E9C06F24296074F7BC48F92A97916C6DC5EA9", + "tx_json": { + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "Fee": "10", + "Flags": 2147483648, + "Sequence": 380, + "SetFlag": 4, + "SigningPubKey": "03AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB", + "TransactionType": "AccountSet", + "TxnSignature": "304402204457A890BC06F48061F8D61042975702B57EBEF3EA2C7C484DFE38CFD42EA11102202505A7C62FF41E68FDE10271BADD75BD66D54B2F96A326BE487A2728A352442D", + "hash": "327FD263132A4D08170E1B01FE1BB2E21D0126CE58165C97A9173CA9551BCD70" } }, "status": "success", "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "result" : { - "engine_result" : "tesSUCCESS", - "engine_result_code" : 0, - "engine_result_message" : "The transaction was applied. Only final in a validated ledger.", - "status" : "success", - "tx_blob" : "1200032280000000240000017C20210000000468400000000000000A732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB7446304402204457A890BC06F48061F8D61042975702B57EBEF3EA2C7C484DFE38CFD42EA11102202505A7C62FF41E68FDE10271BADD75BD66D54B2F96A326BE487A2728A352442D81144B4E9C06F24296074F7BC48F92A97916C6DC5EA9", - "tx_json" : { - "Account" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "Fee" : "10", - "Flags" : 2147483648, - "Sequence" : 380, - "SetFlag" : 4, - "SigningPubKey" : "03AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB", - "TransactionType" : "AccountSet", - "TxnSignature" : "304402204457A890BC06F48061F8D61042975702B57EBEF3EA2C7C484DFE38CFD42EA11102202505A7C62FF41E68FDE10271BADD75BD66D54B2F96A326BE487A2728A352442D", - "hash" : "327FD263132A4D08170E1B01FE1BB2E21D0126CE58165C97A9173CA9551BCD70" + "result": { + "engine_result": "tesSUCCESS", + "engine_result_code": 0, + "engine_result_message": "The transaction was applied. Only final in a validated ledger.", + "status": "success", + "tx_blob": "1200032280000000240000017C20210000000468400000000000000A732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB7446304402204457A890BC06F48061F8D61042975702B57EBEF3EA2C7C484DFE38CFD42EA11102202505A7C62FF41E68FDE10271BADD75BD66D54B2F96A326BE487A2728A352442D81144B4E9C06F24296074F7BC48F92A97916C6DC5EA9", + "tx_json": { + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "Fee": "10", + "Flags": 2147483648, + "Sequence": 380, + "SetFlag": 4, + "SigningPubKey": "03AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB", + "TransactionType": "AccountSet", + "TxnSignature": "304402204457A890BC06F48061F8D61042975702B57EBEF3EA2C7C484DFE38CFD42EA11102202505A7C62FF41E68FDE10271BADD75BD66D54B2F96A326BE487A2728A352442D", + "hash": "327FD263132A4D08170E1B01FE1BB2E21D0126CE58165C97A9173CA9551BCD70" } } } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh Loading: "/etc/opt/ripple/rippled.cfg" 2020-Feb-13 00:25:49.361743460 HTTPClient:NFO Connecting to 127.0.0.1:5005 @@ -299,13 +322,13 @@ Loading: "/etc/opt/ripple/rippled.cfg" } } ``` + {% /tab %} {% /tabs %} If the transaction fails with the result `tecNO_ALTERNATIVE_KEY`, your account does not have another method of authorizing transactions currently enabled. You must [assign a regular key pair](assign-a-regular-key-pair.md) or [set up multi-signing](set-up-multi-signing.md), then try again to disable the master key pair. - ### 4. Wait for validation {% raw-partial file="/docs/_snippets/wait-for-validation.md" /%} @@ -314,9 +337,9 @@ If the transaction fails with the result `tecNO_ALTERNATIVE_KEY`, your account d Confirm that your account's master key is disabled using the [account_info method][]. Be sure to specify the following parameters: -| Field | Value | -|:---------------|:------------------------------------------------------------| -| `account` | The address of your account. | +| Field | Value | +| :------------- | :--------------------------------------------------------------------- | +| `account` | The address of your account. | | `ledger_index` | `"validated"` to get results from the latest validated ledger version. | #### Example Request @@ -324,6 +347,7 @@ Confirm that your account's master key is disabled using the [account_info metho {% tabs %} {% tab label="WebSocket" %} + ```json { "command": "account_info", @@ -331,34 +355,41 @@ Confirm that your account's master key is disabled using the [account_info metho "ledger_index": "validated" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { - "method": "account_info", - "params": [{ - "account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "ledger_index": "validated" - }] + "method": "account_info", + "params": [ + { + "account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "ledger_index": "validated" + } + ] } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh rippled account_info rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn validated ``` + {% /tab %} {% /tabs %} - #### Example Response {% tabs %} {% tab label="WebSocket" %} + ```json { "result": { @@ -388,9 +419,11 @@ rippled account_info rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn validated "type": "response" } ``` + {% /tab %} {% tab label="JSON-RPC" %} + ```json { "result": { @@ -419,9 +452,11 @@ rippled account_info rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn validated } } ``` + {% /tab %} {% tab label="Commandline" %} + ```sh Loading: "/etc/opt/ripple/rippled.cfg" 2020-Feb-13 00:41:38.642710734 HTTPClient:NFO Connecting to 127.0.0.1:5005 @@ -453,11 +488,11 @@ Loading: "/etc/opt/ripple/rippled.cfg" } } ``` + {% /tab %} {% /tabs %} - In the response's `account_data` object, compare the `Flags` field with the `lsfDisableMaster` flag value (`0x00100000` in hex, or `1048576` in decimal) using bitwise-AND (the `&` operator in most common programming languages). Example code: @@ -465,19 +500,22 @@ Example code: {% tabs %} {% tab label="JavaScript" %} + ```js // Assuming the JSON-RPC response above is saved as account_info_response -const lsfDisableMaster = 0x00100000; -let acct_flags = account_info_response.result.account_data.Flags; +const lsfDisableMaster = 0x00100000 +let acct_flags = account_info_response.result.account_data.Flags if ((lsfDisableMaster & acct_flags) === lsfDisableMaster) { - console.log("Master key pair is DISABLED"); + console.log('Master key pair is DISABLED') } else { - console.log("Master key pair is available for use"); + console.log('Master key pair is available for use') } ``` + {% /tab %} {% tab label="Python" %} + ```python # Assuming the JSON-RPC response above is parsed from JSON # and saved as the variable account_info_response @@ -488,6 +526,7 @@ if lsfDisableMaster & acct_flags == lsfDisableMaster: else: print("Master key pair is available for use") ``` + {% /tab %} {% /tabs %} diff --git a/docs/tutorials/how-tos/manage-account-settings/index.md b/docs/tutorials/how-tos/manage-account-settings/index.md index f8330b4604..e7336c5e2b 100644 --- a/docs/tutorials/how-tos/manage-account-settings/index.md +++ b/docs/tutorials/how-tos/manage-account-settings/index.md @@ -4,9 +4,9 @@ parent: tasks.html metadata: indexPage: true --- + # Manage Account Settings Set up your XRP Ledger account to send and receive payments the way you want it to. - {% child-pages /%} diff --git a/docs/tutorials/how-tos/manage-account-settings/offline-account-setup.md b/docs/tutorials/how-tos/manage-account-settings/offline-account-setup.md index 5482d5cbc5..203bb9777c 100644 --- a/docs/tutorials/how-tos/manage-account-settings/offline-account-setup.md +++ b/docs/tutorials/how-tos/manage-account-settings/offline-account-setup.md @@ -2,11 +2,12 @@ html: offline-account-setup.html parent: manage-account-settings.html seo: - description: Set up an XRP Ledger account using an air-gapped, offline machine to store its cryptographic keys. + description: Set up an XRP Ledger account using an air-gapped, offline machine to store its cryptographic keys. labels: - Accounts - Security --- + # Offline Account Setup Tutorial A highly secure [signing configuration](../../../concepts/transactions/secure-signing.md) involves keeping an XRP Ledger [account](../../../concepts/accounts/index.md)'s [cryptographic keys](../../../concepts/accounts/cryptographic-keys.md) securely on an offline, air-gapped machine. After setting up this configuration, you can sign a variety of transactions, transfer only the signed transactions to an online computer, and submit them to the XRP Ledger network without ever exposing your secret key to malicious actors online. @@ -20,10 +21,9 @@ To use offline signing, you must meet the following prerequisites: - You must have one computer to use as an offline machine. This machine must be set up with a [supported operating system](../../../infrastructure/installation/system-requirements.md). See your operating system's support for offline setup instructions. (For example, [Red Hat Enterprise Linux DVD ISO installation instructions](https://access.redhat.com/solutions/7227).) Be sure that the software and physical media you use are not infected with malware. - You must have a separate computer to use as an online machine. This machine does not need to run `rippled` but it must be able to connect to the XRP Ledger network and receive information about the state of the shared ledger. For example, you can use a [WebSocket connection to a public server](../../http-websocket-apis/build-apps/get-started.md). - You must have a secure way to transfer signed transaction binary data from the offline machine to the online machine. - - One way to do this is with a QR code generator on the offline machine, and a QR code scanner on the online machine. (In this case, your "online machine" could be a handheld device such as a smartphone.) - - Another way is to copy files from the offline machine to an online machine using physical media. If you use this method, be sure not to use physical media that could infect your offline machine with malicious software. (For example, do not reuse the same USB drive on both online and offline machines.) - - You _could_ manually type the data onto the online machine, but doing so would be tedious and error-prone. - + - One way to do this is with a QR code generator on the offline machine, and a QR code scanner on the online machine. (In this case, your "online machine" could be a handheld device such as a smartphone.) + - Another way is to copy files from the offline machine to an online machine using physical media. If you use this method, be sure not to use physical media that could infect your offline machine with malicious software. (For example, do not reuse the same USB drive on both online and offline machines.) + - You _could_ manually type the data onto the online machine, but doing so would be tedious and error-prone. ## Steps @@ -39,7 +39,6 @@ Software options for signing on the XRP Ledger include: You may want to set up custom software to help construct transaction instructions on the offline machine. For example, your software may track what [sequence number][] to use next, or contain preset templates for certain types of transactions you expect to send. - ### 2. Generate cryptographic keys On the **offline machine**, generate a pair of [cryptographic keys](../../../concepts/accounts/cryptographic-keys.md) to be used with your account. Be sure to generate the keys with a securely random procedure, not from a short passphrase or some other source that does not have enough entropy. For example, you can use the [wallet_propose method][] of `rippled`: @@ -47,6 +46,7 @@ On the **offline machine**, generate a pair of [cryptographic keys](../../../con {% tabs %} {% tab label="rippled Commandline" %} + ```sh $ ./rippled wallet_propose Loading: "/etc/opt/ripple/rippled.cfg" @@ -65,6 +65,7 @@ Loading: "/etc/opt/ripple/rippled.cfg" } } ``` + {% /tab %} {% /tabs %} @@ -79,16 +80,12 @@ Take note of the following values: - - ### 3. Fund the new address From an online machine, send enough XRP to the **account address** you noted in step 1. For more information, see [Creating Accounts](../../../concepts/accounts/index.md#creating-accounts). {% admonition type="success" name="Tip" %}For testing purposes, you can use the [Testnet Faucet](/resources/dev-tools/xrp-faucets) to get a new account with Test XRP, then use that account to fund the address you generated offline.{% /admonition %} - - ### 4. Confirm account details When the transaction from the previous step is validated by consensus, your account has been created. From the online machine, you can confirm the status of the account with the [account_info method][]. Make sure the response contains `"validated": true` to confirm that this result is final. @@ -100,6 +97,7 @@ The `Sequence` number of a newly-funded account matches the [ledger index][] whe {% tabs %} {% tab label="rippled Commandline" %} + ```sh $ ./rippled account_info rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn @@ -124,6 +122,7 @@ Loading: "/etc/opt/ripple/rippled.cfg" } } ``` + {% /tab %} {% /tabs %} @@ -136,8 +135,6 @@ You can prepare several transactions in advance this way, then transfer the sign Optionally, save the current ledger index to the offline machine. You can use this value to choose an appropriate `LastLedgerSequence` value for upcoming transactions. - - ### 6. Sign initial setup transactions, if any. On the offline machine, prepare and sign transactions for configuring your account. The details depend on how you intend to use your account. Some examples of things you might want to do include: @@ -148,8 +145,8 @@ On the offline machine, prepare and sign transactions for configuring your accou - [Enable DepositAuth](../../../concepts/accounts/depositauth.md) so you can only receive payments you've explicitly accepted or from parties you've pre-approved. - [Require Auth](../../../concepts/tokens/fungible-tokens/authorized-trust-lines.md#enabling-require-auth) so that users can't open [trust lines](../../../concepts/tokens/fungible-tokens/index.md) to you without your permission. If you don't plan to use the XRP Ledger's decentralized exchange or [token](../../../concepts/tokens/index.md) features, you may want to do this as a precaution. - [Token Issuers](../../../use-cases/tokenization/stablecoin-issuer.md) may have additional setup, such as: - - Set a Transfer Fee for users transferring your tokens. - - Disallow XRP payments if you plan to use this address for tokens only. + - Set a Transfer Fee for users transferring your tokens. + - Disallow XRP payments if you plan to use this address for tokens only. At this stage, you are only signing the transactions, not submitting them. For each transaction, you must provide all fields, including fields that are normally auto-fillable such as the `Fee` ([transaction cost](../../../concepts/transactions/transaction-cost.md)) and `Sequence` ([sequence number][]). If you prepare multiple transactions at the same time, you must use sequentially increasing `Sequence` numbers in the order you want the transactions to execute. @@ -158,6 +155,7 @@ Example (enable Require Auth): {% tabs %} {% tab label="rippled Commandline" %} + ```sh $ rippled sign sn3nxiW7v8KXzPzAqzyHXbSSKNuN9 '{"Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", "Fee": "12", "Sequence": 1, "TransactionType": "AccountSet", "SetFlag": 2}' offline @@ -182,19 +180,17 @@ Loading: "/etc/opt/ripple/rippled.cfg" } } ``` + {% /tab %} {% /tabs %} To ensure _all_ transactions have a final outcome within a limited amount of time, provide a [`LastLedgerSequence`](../../../concepts/transactions/reliable-transaction-submission.md#lastledgersequence) field. This value should be based on the current ledger index (which you must look up from an online machine) and the amount of time you want the transaction to remain valid. Be sure to set a large enough `LastLedgerSequence` value to allow for time spent switching from the online machine to the offline machine and back. For example, a value 256 higher than the current ledger index means that the transaction is valid for about 15 minutes. For more information, see [Finality of Results](../../../concepts/transactions/finality-of-results/index.md) and [Reliable Transaction Submission](../../../concepts/transactions/reliable-transaction-submission.md). - ### 7. Copy transactions to online machine. After you have signed the transactions, the next step is to get the signed transaction data to your online machine. See [Prerequisites](#prerequisites) for some examples of how to do this. - - ### 8. Submit setup transactions. The next step is to submit the transactions. Most transactions should have a final outcome in the next validated ledger after submission (about 4 seconds later), or possibly the ledger after that if they get queued (less than 10 seconds). For detailed steps to track the final outcome of a transaction, see [Reliable Transaction Submission](../../../concepts/transactions/reliable-transaction-submission.md). @@ -204,6 +200,7 @@ Example of transaction submission: {% tabs %} {% tab label="rippled Commandline" %} + ```sh $ rippled submit 1200032280000000240000000120210000000268400000000000000C7321039543A0D3004CDA0904A09FB3710251C652D69EA338589279BC849D47A7B019A174473045022100D5C92D7705036CD7EBB601C8DFCD90927FA591A62AF832C489E9C898EC8E2FA0022052F1819340EB73E9749B8930A6935727362B8E141D1B2E246B49F912223FFD4381144B4E9C06F24296074F7BC48F92A97916C6DC5EA9 @@ -232,6 +229,7 @@ Loading: "/etc/opt/ripple/rippled.cfg" } } ``` + {% /tab %} {% /tabs %} @@ -247,6 +245,7 @@ For each transaction you submitted, note the transaction's [final outcome](../.. {% tabs %} {% tab label="rippled Commandline" %} + ```sh $ ./rippled tx F81C34E7F05423DC1C973CB5008CA41AE984DE142EAA3975A749FABF0D08FA63 @@ -297,6 +296,7 @@ Loading: "/etc/opt/ripple/rippled.cfg" } } ``` + {% /tab %} {% /tabs %} @@ -311,8 +311,6 @@ For any transactions that failed, you should decide what to do: For any transactions you decide to adjust or replace, note the details for when you return to the offline machine. - - ### 10. Reconcile offline machine status. Return to the offline machine and apply any necessary changes to your custom server's saved settings, such as: @@ -323,23 +321,21 @@ Return to the offline machine and apply any necessary changes to your custom ser Then adjust and sign any replacement transactions for transactions that failed in the previous step. Repeat the previous steps for constructing transactions on the offline machine, transferring them, and submitting them from the online machine. - - ## See Also - **Concepts:** - - [Accounts](../../../concepts/accounts/index.md) - - [Cryptographic Keys](../../../concepts/accounts/cryptographic-keys.md) + - [Accounts](../../../concepts/accounts/index.md) + - [Cryptographic Keys](../../../concepts/accounts/cryptographic-keys.md) - **Tutorials:** - - [Set Up Secure Signing](../../../concepts/transactions/secure-signing.md) - - [Assign a Regular Key Pair](assign-a-regular-key-pair.md) - - [Set Up Multi-Signing](set-up-multi-signing.md) + - [Set Up Secure Signing](../../../concepts/transactions/secure-signing.md) + - [Assign a Regular Key Pair](assign-a-regular-key-pair.md) + - [Set Up Multi-Signing](set-up-multi-signing.md) - **References:** - - [Basic Data Types: Account Sequence](../../../references/protocol/data-types/basic-data-types.md#account-sequence) - - [account_info method][] - - [sign method][] - - [submit method][] - - [tx method][] - - [AccountSet transaction][] + - [Basic Data Types: Account Sequence](../../../references/protocol/data-types/basic-data-types.md#account-sequence) + - [account_info method][] + - [sign method][] + - [submit method][] + - [tx method][] + - [AccountSet transaction][] {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/tutorials/how-tos/manage-account-settings/require-destination-tags.md b/docs/tutorials/how-tos/manage-account-settings/require-destination-tags.md index aa674ab647..5fe007663c 100644 --- a/docs/tutorials/how-tos/manage-account-settings/require-destination-tags.md +++ b/docs/tutorials/how-tos/manage-account-settings/require-destination-tags.md @@ -2,7 +2,7 @@ html: require-destination-tags.html parent: manage-account-settings.html seo: - description: Require users to specify a destination tag when sending to your address. + description: Require users to specify a destination tag when sending to your address. embed_xrpl_js: true filters: - interactive_steps @@ -10,6 +10,7 @@ labels: - Accounts steps: ['Generate', 'Connect', 'Send AccountSet', 'Wait', 'Confirm Settings', 'Test Payments'] --- + # Require Destination Tags The Require Destination Tag setting is designed for addresses that host balances for multiple people or purposes, to prevent people from sending money and forgetting to use a [destination tag](../../../concepts/transactions/source-and-destination-tags.md) to identify whom to credit. When this setting is enabled on your address, the XRP Ledger rejects [any payment](../../../concepts/payment-types/index.md) to your address if it does not specify a destination tag. @@ -23,9 +24,9 @@ This tutorial demonstrates how to enable the Require Destination Tag flag on you - You need a funded XRP Ledger account, with an address, secret key, and some XRP. For production, you can use the same address and secret consistently. For this tutorial, you can generate new test credentials as needed. - You need a connection to the XRP Ledger network. As shown in this tutorial, you can use public servers for testing. - You should be familiar with the Getting Started instructions for your preferred client library. This page provides examples for the following: - - **JavaScript** with the [xrpl.js library](https://github.com/XRPLF/xrpl.js/). See [Get Started Using JavaScript](../../javascript/build-apps/get-started.md) for setup steps. - - **Python** with the [`xrpl-py` library](https://xrpl-py.readthedocs.io/). See [Get Started using Python](../../python/build-apps/get-started.md) for setup steps. - - You can also read along and use the interactive steps in your browser without any setup. + - **JavaScript** with the [xrpl.js library](https://github.com/XRPLF/xrpl.js/). See [Get Started Using JavaScript](../../javascript/build-apps/get-started.md) for setup steps. + - **Python** with the [`xrpl-py` library](https://xrpl-py.readthedocs.io/). See [Get Started using Python](../../python/build-apps/get-started.md) for setup steps. + - You can also read along and use the interactive steps in your browser without any setup. @@ -95,19 +96,16 @@ For example: {% /interactive-block %} - ### 4. Wait for Validation Most transactions are accepted into the next ledger version after they're submitted, which means it may take 4-7 seconds for a transaction's outcome to be final. If the XRP Ledger is busy or poor network connectivity delays a transaction from being relayed throughout the network, a transaction may take longer to be confirmed. (For information on how to set an expiration for transactions, see [Reliable Transaction Submission](../../../concepts/transactions/reliable-transaction-submission.md).) {% partial file="/docs/_snippets/interactive-tutorials/wait-step.md" /%} - ### 5. Confirm Account Settings After the transaction is validated, you can check your account's settings to confirm that the Require Destination Tag flag is enabled. - {% tabs %} {% tab label="JavaScript" %} @@ -120,7 +118,6 @@ After the transaction is validated, you can check your account's settings to con {% /tabs %} - {% interactive-block label="Confirm Settings" steps=$frontmatter.steps %} @@ -144,17 +141,16 @@ For further confirmation, you can send test transactions (from a different addre {% /interactive-block %} - ## See Also - **Concepts:** - - [Accounts](../../../concepts/accounts/index.md) - - [Source and Destination Tags](../../../concepts/transactions/source-and-destination-tags.md) - - [Transaction Cost](../../../concepts/transactions/transaction-cost.md) - - [Payment Types](../../../concepts/payment-types/index.md) + - [Accounts](../../../concepts/accounts/index.md) + - [Source and Destination Tags](../../../concepts/transactions/source-and-destination-tags.md) + - [Transaction Cost](../../../concepts/transactions/transaction-cost.md) + - [Payment Types](../../../concepts/payment-types/index.md) - **References:** - - [account_info method][] - - [AccountSet transaction][] - - [AccountRoot Flags](../../../references/protocol/ledger-data/ledger-entry-types/accountroot.md#accountroot-flags) + - [account_info method][] + - [AccountSet transaction][] + - [AccountRoot Flags](../../../references/protocol/ledger-data/ledger-entry-types/accountroot.md#accountroot-flags) {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/tutorials/how-tos/manage-account-settings/send-a-multi-signed-transaction.md b/docs/tutorials/how-tos/manage-account-settings/send-a-multi-signed-transaction.md index b73c2eb138..dbafebea6e 100644 --- a/docs/tutorials/how-tos/manage-account-settings/send-a-multi-signed-transaction.md +++ b/docs/tutorials/how-tos/manage-account-settings/send-a-multi-signed-transaction.md @@ -2,10 +2,11 @@ html: send-a-multi-signed-transaction.html parent: manage-account-settings.html seo: - description: Send a transaction authorized with multiple signatures. + description: Send a transaction authorized with multiple signatures. labels: - Security --- + # Send a Multi-Signed Transaction The following procedure demonstrates how to create, sign, and submit a multi-signed transaction. @@ -16,7 +17,6 @@ The following procedure demonstrates how to create, sign, and submit a multi-sig - Multi-signing must be available. Multi-signing has been enabled by an [**Amendment**](../../../concepts/networks-and-servers/amendments.md) to the XRP Ledger Consensus Protocol since 2016-06-27. - ## 1. Create the transaction Create a JSON object that represents the transaction you want to submit. You have to specify _everything_ about this transaction, including `Fee` and `Sequence`. Also include the field `SigningPubKey` as an empty string, to indicate that the transaction is multi-signed. @@ -28,19 +28,20 @@ Here's an example transaction ready to be multi-signed: {% tabs %} {% tab label="JSON" %} + ```json { - "TransactionType": "TrustSet", - "Account": "rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", - "Flags": 262144, - "LimitAmount": { - "currency": "USD", - "issuer": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "value": "100" - }, - "Sequence": 2, - "SigningPubKey": "", - "Fee": "30000" + "TransactionType": "TrustSet", + "Account": "rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", + "Flags": 262144, + "LimitAmount": { + "currency": "USD", + "issuer": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "value": "100" + }, + "Sequence": 2, + "SigningPubKey": "", + "Fee": "30000" } ``` @@ -63,7 +64,6 @@ Use the [sign_for method][] with the secret key and address of one of the member {% partial file="/docs/_snippets/secret-key-warning.md" /%} - ``` $ rippled sign_for rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW '{ > "TransactionType": "TrustSet", @@ -119,12 +119,11 @@ If you have a problem in stand-alone mode or a non-production network, check tha You can collect additional signatures in parallel or in serial: -* In parallel: Use the `sign_for` command with the original JSON for the transaction. Each response has a single signature in the `Signers` array. -* In serial: Use the `sign_for` command with the `tx_json` value from the previous `sign_for` response. Each response adds a new signature to the existing `Signers` array. +- In parallel: Use the `sign_for` command with the original JSON for the transaction. Each response has a single signature in the `Signers` array. +- In serial: Use the `sign_for` command with the `tx_json` value from the previous `sign_for` response. Each response adds a new signature to the existing `Signers` array. {% partial file="/docs/_snippets/secret-key-warning.md" /%} - ``` $ rippled sign_for rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v '{ > "Account" : "rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", @@ -191,7 +190,6 @@ Connecting to 127.0.0.1:5005 Depending on the SignerList you configured, you may need to repeat this step several times to get signatures from all the necessary parties. - ## 4. Combine signatures and submit If you collected the signatures in serial, the `tx_json` from the last `sign_for` response has all the signatures assembled, so you can use that as the argument to the [submit_multisigned method][]. @@ -201,6 +199,7 @@ If you collected the signatures in parallel, you must manually construct a `tx_j {% tabs %} {% tab label="Commandline" %} + ``` $ rippled submit_multisigned '{ > "Account" : "rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", @@ -272,7 +271,7 @@ Connecting to 127.0.0.1:5005 } ``` -Take note of the `hash` value from the response so you can check the results of the transaction later. (In this case, the hash is `BD636194C48FD7A100DE4C972336534C8E710FD008C0F3CF7BC5BF34DAF3C3E6`.) +Take note of the `hash` value from the response so you can check the results of the transaction later. (In this case, the hash is `BD636194C48FD7A100DE4C972336534C8E710FD008C0F3CF7BC5BF34DAF3C3E6`.) {% /tab %} {% tab label="Javascript" %} @@ -314,6 +313,7 @@ In stand-alone mode, the server automatically considers a ledger to be `validate {% tabs %} {% tab label="Commandline" %} + ``` $ rippled tx BD636194C48FD7A100DE4C972336534C8E710FD008C0F3CF7BC5BF34DAF3C3E6 Loading: "/etc/opt/ripple/rippled.cfg" @@ -426,6 +426,7 @@ Connecting to 127.0.0.1:5005 } } ``` + {% /tab %} {% tab label="Javascript" %} @@ -438,5 +439,4 @@ Connecting to 127.0.0.1:5005 {% /tabs %} - {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/tutorials/how-tos/manage-account-settings/set-up-multi-signing.md b/docs/tutorials/how-tos/manage-account-settings/set-up-multi-signing.md index bafa6aa94b..e67f47e778 100644 --- a/docs/tutorials/how-tos/manage-account-settings/set-up-multi-signing.md +++ b/docs/tutorials/how-tos/manage-account-settings/set-up-multi-signing.md @@ -2,28 +2,26 @@ html: set-up-multi-signing.html parent: manage-account-settings.html seo: - description: Add a signer list to your account to enable multi-signing. + description: Add a signer list to your account to enable multi-signing. labels: - Security --- + # Set Up Multi-Signing [Multi-signing](../../../concepts/accounts/multi-signing.md) is one of three ways to authorize [transactions](../../../concepts/transactions/index.md) for the XRP Ledger, alongside signing with [regular keys and master keys](../../../concepts/accounts/cryptographic-keys.md). You can configure your [address](../../../concepts/accounts/index.md) to allow any combination of the three methods to authorize transactions. This tutorial demonstrates how to enable multi-signing for an address. - ## Prerequisites - You must have a funded XRP Ledger [address](../../../concepts/accounts/index.md) with enough spare XRP to send transactions and meet the [reserve requirement](../../../concepts/accounts/reserves.md) of a new signer list. + - With the [MultiSignReserve amendment][] enabled, multi-signing requires {% $env.PUBLIC_OWNER_RESERVE %} for the account reserve, regardless of the number of signers and signatures you use. (The MultiSignReserve amendment has been enabled in the production XRP Ledger since **2019-04-07**.) - - With the [MultiSignReserve amendment][] enabled, multi-signing requires {% $env.PUBLIC_OWNER_RESERVE %} for the account reserve, regardless of the number of signers and signatures you use. (The MultiSignReserve amendment has been enabled in the production XRP Ledger since **2019-04-07**.) - - - If you are on a test network that does not have the [MultiSignReserve amendment][] enabled, multi-signing requires more than the usual amount of XRP for the [account reserve](../../../concepts/accounts/reserves.md), increasing with the number of signers in the list. + - If you are on a test network that does not have the [MultiSignReserve amendment][] enabled, multi-signing requires more than the usual amount of XRP for the [account reserve](../../../concepts/accounts/reserves.md), increasing with the number of signers in the list. - You must have access to a tool that can generate key pairs in the XRP Ledger format. If you are using a `rippled` server for this, you must have admin access because the [wallet_propose method][] is admin-only. - - - Alternatively, if you are authorizing others who already have XRP Ledger addresses to be signers for your address, you only need to know the account addresses of those people or entities. + - Alternatively, if you are authorizing others who already have XRP Ledger addresses to be signers for your address, you only need to know the account addresses of those people or entities. - Multi-signing must be available. (The MultiSign amendment has been enabled in the production XRP Ledger since **2016-06-27**.) @@ -31,10 +29,9 @@ This tutorial demonstrates how to enable multi-signing for an address. Decide how many signers you want to include (up to 32). Choose a quorum number for your signer list and weights for your signers based on how many signatures you want to require for a given transaction. For a straightforward "M-of-N" signing setup, assign each signer weight **`1`** and set your list's quorum to be "M", the number of signatures to require. - ## 2. Prepare member keys -You need one or more validly-formed XRP Ledger addresses to include as members of your signer list. You or your chosen signers must know the secret keys associated with these addresses. The addresses can be funded accounts that exist in the ledger, but they do not need to be. +You need one or more validly-formed XRP Ledger addresses to include as members of your signer list. You or your chosen signers must know the secret keys associated with these addresses. The addresses can be funded accounts that exist in the ledger, but they do not need to be. You can generate new addresses using the [wallet_propose method][]. For example: @@ -58,7 +55,6 @@ Connecting to 127.0.0.1:5005 Take note of the `account_id` (XRP Ledger Address) and `master_seed` (secret key) for each one you generate. - ## 3. Send SignerListSet transaction [Sign and submit](../../../concepts/transactions/index.md#signing-and-submitting-transactions) a [SignerListSet transaction][] in the normal (single-signature) way. This associates a signer list with your XRP Ledger address, so that a combination of signatures from the members of that signer list can multi-sign later transactions on your behalf. @@ -70,6 +66,7 @@ In this example, the signer list has 3 members, with the weights and quorum set {% tabs %} {% tab label="Commandline" %} + ``` $ rippled submit shqZZy2Rzs9ZqWTCQAdqc3bKgxnYq '{ > "Flags": 0, @@ -141,6 +138,7 @@ Connecting to 127.0.0.1:5005 } } ``` + {% /tab %} {% tab label="Javascript" %} @@ -157,12 +155,10 @@ Make sure that the [Transaction Result](../../../references/protocol/transaction {% admonition type="info" name="Note" %}Without the [MultiSignReserve amendment][], the more members in the signer list, the more XRP your address must have for purposes of the [owner reserve](../../../concepts/accounts/reserves.md#owner-reserves). If your address does not have enough XRP, the transaction fails with [`tecINSUFFICIENT_RESERVE`](../../../references/protocol/transactions/transaction-results/tec-codes.md). With the [MultiSignReserve amendment][] enabled, the XRP your address must have for purposes of the [owner reserve](../../../concepts/accounts/reserves.md#owner-reserves) is 5 XRP, regardless of the number of members in the signer list. See also: [Signer Lists and Reserves](../../../references/protocol/ledger-data/ledger-entry-types/signerlist.md#signer-lists-and-reserves).{% /admonition %} - ## 4. Wait for validation {% raw-partial file="/docs/_snippets/wait-for-validation.md" /%} - ## 5. Confirm the new signer list Use the [account_objects method][] to confirm that the signer list is associated with the address in the latest validated ledger. @@ -222,25 +218,25 @@ If the signer list is present with the expected contents, then your address is r At this point, your address is ready to [send a multi-signed transaction](send-a-multi-signed-transaction.md). You may also want to: -* [Disable the address's master key pair](disable-master-key-pair.md). -* [Remove the address's regular key pair](change-or-remove-a-regular-key-pair.md) (if you previously set one) by sending a [SetRegularKey transaction][]. +- [Disable the address's master key pair](disable-master-key-pair.md). +- [Remove the address's regular key pair](change-or-remove-a-regular-key-pair.md) (if you previously set one) by sending a [SetRegularKey transaction][]. ## See Also - **Concepts:** - - [Cryptographic Keys](../../../concepts/accounts/cryptographic-keys.md) - - [Multi-Signing](../../../concepts/accounts/multi-signing.md) + - [Cryptographic Keys](../../../concepts/accounts/cryptographic-keys.md) + - [Multi-Signing](../../../concepts/accounts/multi-signing.md) - **Tutorials:** - - [Install rippled](../../../infrastructure/installation/index.md) - - [Assign a Regular Key Pair](assign-a-regular-key-pair.md) - - [Reliable Transaction Submission](../../../concepts/transactions/reliable-transaction-submission.md) - - [Enable Public Signing](../../../infrastructure/configuration/enable-public-signing.md) + - [Install rippled](../../../infrastructure/installation/index.md) + - [Assign a Regular Key Pair](assign-a-regular-key-pair.md) + - [Reliable Transaction Submission](../../../concepts/transactions/reliable-transaction-submission.md) + - [Enable Public Signing](../../../infrastructure/configuration/enable-public-signing.md) - **References:** - - [wallet_propose method][] - - [account_objects method][] - - [sign_for method][] - - [submit_multisigned method][] - - [SignerListSet transaction][] - - [SignerList object](../../../references/protocol/ledger-data/ledger-entry-types/signerlist.md) + - [wallet_propose method][] + - [account_objects method][] + - [sign_for method][] + - [submit_multisigned method][] + - [SignerListSet transaction][] + - [SignerList object](../../../references/protocol/ledger-data/ledger-entry-types/signerlist.md) {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/tutorials/how-tos/manage-account-settings/use-tickets.md b/docs/tutorials/how-tos/manage-account-settings/use-tickets.md index 8af8ade104..2e25ee944e 100644 --- a/docs/tutorials/how-tos/manage-account-settings/use-tickets.md +++ b/docs/tutorials/how-tos/manage-account-settings/use-tickets.md @@ -2,14 +2,28 @@ html: use-tickets.html parent: manage-account-settings.html seo: - description: Use Tickets to send a transaction outside of normal Sequence order. + description: Use Tickets to send a transaction outside of normal Sequence order. embed_xrpl_js: true filters: - interactive_steps labels: - Accounts -steps: ['Generate', 'Connect', 'Check Sequence', 'Prepare & Sign', 'Submit', 'Wait', 'Intermission', 'Check Tickets', 'Prepare Ticketed Tx', 'Submit Ticketed Tx', 'Wait Again'] +steps: + [ + 'Generate', + 'Connect', + 'Check Sequence', + 'Prepare & Sign', + 'Submit', + 'Wait', + 'Intermission', + 'Check Tickets', + 'Prepare Ticketed Tx', + 'Submit Ticketed Tx', + 'Wait Again', + ] --- + # Use Tickets [Tickets](../../../concepts/accounts/tickets.md) provide a way to send transactions out of the normal order. This tutorial walks through the steps of creating a Ticket, then using it to send another transaction. @@ -24,8 +38,6 @@ This page provides JavaScript examples that use the [xrpl.js](https://js.xrpl.or Since JavaScript works in the web browser, you can read along and use the interactive steps without any setup. - - ## Steps This tutorial is divided into a few phases: @@ -43,7 +55,6 @@ To transact on the XRP Ledger, you need an address and secret key, and some XRP. When you're building production-ready software, you should use an existing account, and manage your keys using a [secure signing configuration](../../../concepts/transactions/secure-signing.md). - ### 2. Connect to Network You must be connected to the network to submit transactions to it. Since Tickets are only available on Devnet so far, you should connect to a Devnet server. For example: @@ -62,7 +73,6 @@ For this tutorial, click the following button to connect: {% partial file="/docs/_snippets/interactive-tutorials/connect-step.md" /%} - ### 3. Check Sequence Number Before you create any Tickets, you should check what [Sequence Number][] your account is at. You want the current Sequence number for the next step, and the Ticket Sequence numbers it sets aside start from this number. @@ -85,8 +95,6 @@ Before you create any Tickets, you should check what [Sequence Number][] your ac {% /interactive-block %} - - ### 4. Prepare and Sign TicketCreate Construct a [TicketCreate transaction][] using the sequence number you determined in the previous step. Use the `TicketCount` field to specify how many Tickets to create. For example, to prepare a transaction that would make 10 Tickets: @@ -101,16 +109,14 @@ Construct a [TicketCreate transaction][] using the sequence number you determine Record the transaction's hash and `LastLedgerSequence` value so you can [be sure whether or not it got validated](../../../concepts/transactions/reliable-transaction-submission.md) later. - {% interactive-block label="Prepare & Sign" steps=$frontmatter.steps %} +
    {% /interactive-block %} - - ### 5. Submit TicketCreate Submit the signed transaction blob that you created in the previous step. For example: @@ -133,7 +139,6 @@ Submit the signed transaction blob that you created in the previous step. For ex {% /interactive-block %} - ### 6. Wait for Validation Most transactions are accepted into the next ledger version after they're submitted, which means it may take 4-7 seconds for a transaction's outcome to be final. If the XRP Ledger is busy or poor network connectivity delays a transaction from being relayed throughout the network, a transaction may take longer to be confirmed. (For information on how to set an expiration for transactions, see [Reliable Transaction Submission](../../../concepts/transactions/reliable-transaction-submission.md).) @@ -148,7 +153,6 @@ Most transactions are accepted into the next ledger version after they're submit {% partial file="/docs/_snippets/interactive-tutorials/wait-step.md" /%} - ### (Optional) Intermission The power of Tickets is that you can carry on with your account's business as usual while you are getting Ticketed transactions ready. When you want to send a transaction using a Ticket, you can do that in parallel with other sending transactions, including ones using different Tickets, and submit a Ticketed transaction at any time. The only constraint is that each Ticket can only be used once. @@ -160,12 +164,11 @@ The power of Tickets is that you can carry on with your account's business as us +
    {% /interactive-block %} - - ### 7. Check Available Tickets When you want to send a Ticketed transaction, you need to know what Ticket Sequence number to use for it. If you've been keeping careful track of your account, you already know which Tickets you have, but if you're not sure, you can use the [account_objects method][] to look up your available tickets. For example: @@ -178,10 +181,10 @@ When you want to send a Ticketed transaction, you need to know what Ticket Seque {% /tabs %} - {% interactive-block label="Check Tickets" steps=$frontmatter.steps %} +
    {% /interactive-block %} @@ -207,7 +210,7 @@ If you don't plan to submit the TicketCreate transaction right away, you should - **xrpl.js:** Specify `"LastLedgerSequence": null` when auto-filling the transaction. - **`rippled`:** Omit `LastLedgerSequence` from the prepared instructions. The server does not provide a value by default. -{% /admonition %} + {% /admonition %} {% interactive-block label="Prepare Ticketed Tx" steps=$frontmatter.steps %} @@ -220,7 +223,6 @@ If you don't plan to submit the TicketCreate transaction right away, you should {% /interactive-block %} - ### 9. Submit Ticketed Transaction Submit the signed transaction blob that you created in the previous step. For example: @@ -236,11 +238,11 @@ Submit the signed transaction blob that you created in the previous step. For ex {% interactive-block label="Submit Ticketed Tx" steps=$frontmatter.steps %} +
    {% /interactive-block %} - ### 10. Wait for Validation Ticketed transactions go through the consensus process the same way that Sequenced transactions do. @@ -255,20 +257,19 @@ In this scenario, [step 8, "Prepare Ticketed Transaction"](#8-prepare-ticketed-t You could do this in parallel for several different potential transactions as long as each one uses a different Ticket. - ## See Also - **Concepts:** - - [Tickets](../../../concepts/accounts/tickets.md) - - [Multi-Signing](../../../concepts/accounts/multi-signing.md) + - [Tickets](../../../concepts/accounts/tickets.md) + - [Multi-Signing](../../../concepts/accounts/multi-signing.md) - **Tutorials:** - - [Set Up Multi-Signing](set-up-multi-signing.md) - - [Reliable Transaction Submission](../../../concepts/transactions/reliable-transaction-submission.md) + - [Set Up Multi-Signing](set-up-multi-signing.md) + - [Reliable Transaction Submission](../../../concepts/transactions/reliable-transaction-submission.md) - **References:** - - [account_objects method][] - - [sign_for method][] - - [submit_multisigned method][] - - [TicketCreate transaction][] - - [Transaction Common Fields](../../../references/protocol/transactions/common-fields.md) + - [account_objects method][] + - [sign_for method][] + - [submit_multisigned method][] + - [TicketCreate transaction][] + - [Transaction Common Fields](../../../references/protocol/transactions/common-fields.md) {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/tutorials/how-tos/send-xrp.md b/docs/tutorials/how-tos/send-xrp.md index e7242ea34d..38ad30a718 100644 --- a/docs/tutorials/how-tos/send-xrp.md +++ b/docs/tutorials/how-tos/send-xrp.md @@ -2,7 +2,7 @@ html: send-xrp.html parent: tasks.html seo: - description: Learn how to send test payments right from your browser. + description: Learn how to send test payments right from your browser. cta_text: Send XRP labels: - XRP @@ -10,6 +10,7 @@ labels: top_nav_grouping: Popular Pages steps: ['Generate', 'Connect', 'Prepare', 'Sign', 'Submit', 'Wait', 'Check'] --- + # Send XRP This tutorial explains how to send a direct XRP Payment using `xrpl.js` for JavaScript, `xrpl-py` for Python, `xrpl4j` for Java or `XRPL_PHP` for PHP. First, we step through the process with the [XRP Ledger Testnet](../../concepts/networks-and-servers/parallel-networks.md). Then, we compare that to the additional requirements for doing the equivalent in production. @@ -66,7 +67,6 @@ The secret key shown here is for example only. For development purposes, you can When you're building production-ready software, you should use an existing account, and manage your keys using a [secure signing configuration](../../concepts/transactions/secure-signing.md). - ### 2. Connect to a Testnet Server First, you must connect to an XRP Ledger server so you can get the current status of your account and the shared ledger. You can use this information to [automatically fill in some required fields of a transaction](../../references/protocol/transactions/common-fields.md#auto-fillable-fields). You also must be connected to the network to submit transactions to it. @@ -101,7 +101,6 @@ For this tutorial, click the following button to connect: {% partial file="/docs/_snippets/interactive-tutorials/connect-step.md" /%} - ### 3. Prepare Transaction Typically, we create XRP Ledger transactions as objects in the JSON [transaction format](../../references/protocol/transactions/index.md). The following example shows a minimal Payment specification: @@ -127,7 +126,7 @@ Technically, a transaction must contain some additional fields, and certain opti - If you're using `xrpl.js` for JavaScript, you can use the [`Client.autofill()` method](https://js.xrpl.org/classes/Client.html#autofill) to automatically fill in good defaults for the remaining fields of a transaction. In TypeScript, you can also use the transaction models like `xrpl.Payment` to enforce the correct fields. - With `xrpl-py` for Python, you can use the models in `xrpl.models.transactions` to construct transactions as native Python objects. - With xrpl4j for Java, you can use the model objects in the `xrpl4j-model` module to construct transactions as Java objects. - - Unlike the other libraries, you must provide the account `sequence` and the `signingPublicKey` of the source + - Unlike the other libraries, you must provide the account `sequence` and the `signingPublicKey` of the source account of a `Transaction` at the time of construction, as well as a `fee`. Here's an example of preparing the above payment: @@ -175,7 +174,6 @@ Here's an example of preparing the above payment: {% /interactive-block %} - ### 4. Sign the Transaction Instructions Signing a transaction uses your credentials to authorize the transaction on your behalf. The input to this step is a completed set of transaction instructions (usually JSON), and the output is a binary blob containing the instructions and a signature from the sender. @@ -184,7 +182,7 @@ Signing a transaction uses your credentials to authorize the transaction on your - **Python:** Use the [`xrpl.transaction.safe_sign_transaction()` method](https://xrpl-py.readthedocs.io/en/latest/source/xrpl.transaction.html#xrpl.transaction.safe_sign_transaction) with a model and `Wallet` object. - **Java:** Use a [`SignatureService`](https://javadoc.io/doc/org.xrpl/xrpl4j-crypto-core/latest/org/xrpl/xrpl4j/crypto/signing/SignatureService.html) instance to sign the transaction. For this tutorial, use the [`SingleKeySignatureService`](https://javadoc.io/doc/org.xrpl/xrpl4j-crypto-bouncycastle/latest/org/xrpl/xrpl4j/crypto/signing/SingleKeySignatureService.html). - **PHP:** Use a [`sign()` method of a `Wallet` instance](https://alexanderbuzz.github.io/xrpl-php-docs/wallet.html#signing-a-transaction) instance to sign the transaction. The input to this step is a completed array of transaction instructions. -- **Go:** Use the [`Sign()` method of the `Wallet` package](https://pkg.go.dev/github.com/Peersyst/xrpl-go@v0.1.12/xrpl/wallet) to sign the transaction. +- **Go:** Use the [`Sign()` method of the `Wallet` package](https://pkg.go.dev/github.com/Peersyst/xrpl-go@v0.1.12/xrpl/wallet) to sign the transaction. {% tabs %} @@ -221,19 +219,19 @@ The result of the signing operation is a transaction object containing a signatu {% interactive-block label="Sign" steps=$frontmatter.steps %} +example transaction +
    {% /interactive-block %} - ### 5. Submit the Signed Blob Now that you have a signed transaction, you can submit it to an XRP Ledger server, which relays it through the network. It's also a good idea to take note of the latest validated ledger index before you submit. The earliest ledger version that your transaction could get into as a result of this submission is one higher than the latest validated ledger when you submit it. Of course, if the same transaction was previously submitted, it could already be in a previous ledger. (It can't succeed a second time, but you may not realize it succeeded if you aren't looking in the right ledger versions.) - **JavaScript:** Use the [`submitAndWait()` method of the Client](https://js.xrpl.org/classes/Client.html#submitAndWait) to submit a signed transaction to the network and wait for the response, or use [`submitSigned()`](https://js.xrpl.org/classes/Client.html#submitSigned) to submit a transaction and get only the preliminary response. - **Python:** Use the [`xrpl.transaction.submit_and_wait()` method](https://xrpl-py.readthedocs.io/en/stable/source/xrpl.transaction.html#xrpl.transaction.submit_and_wait) to submit a transaction to the network and wait for a response. -- **Java:** Use the [`XrplClient.submit(SignedTransaction)` method](https://javadoc.io/doc/org.xrpl/xrpl4j-client/latest/org/xrpl/xrpl4j/client/XrplClient.html#submit(org.xrpl.xrpl4j.crypto.signing.SignedTransaction)) to submit a transaction to the network. Use the [`XrplClient.ledger()`](https://javadoc.io/doc/org.xrpl/xrpl4j-client/latest/org/xrpl/xrpl4j/client/XrplClient.html#ledger(org.xrpl.xrpl4j.model.client.ledger.LedgerRequestParams)) method to get the latest validated ledger index. +- **Java:** Use the [`XrplClient.submit(SignedTransaction)` method]() to submit a transaction to the network. Use the [`XrplClient.ledger()`]() method to get the latest validated ledger index. - **PHP:** Use the [`submitAndWait()` method of the Client](https://alexanderbuzz.github.io/xrpl-php-docs/client.html) to submit a transaction to the network and wait for the response. - **Go:** Use [`SubmitTxAndWait()` or `SubmitTxBlobAndWait()` methods os the Client](https://pkg.go.dev/github.com/Peersyst/xrpl-go@v0.1.12/xrpl/websocket#Client.SubmitTxAndWait) to submit a transaction to the network and wait for the response. @@ -283,18 +281,17 @@ example transaction {% /interactive-block %} - ### 6. Wait for Validation Most transactions are accepted into the next ledger version after they're submitted, which means it may take 4-7 seconds for a transaction's outcome to be final. If the XRP Ledger is busy or poor network connectivity delays a transaction from being relayed throughout the network, a transaction may take longer to be confirmed. (For more information on expiration of unconfirmed transactions, see [Reliable Transaction Submission](../../concepts/transactions/reliable-transaction-submission.md).) -- **JavaScript:** If you used the [`.submitAndWait()` method](https://js.xrpl.org/classes/Client.html#submitAndWait), you can wait until the returned Promise resolves. Other, more asynchronous approaches are also possible. +- **JavaScript:** If you used the [`.submitAndWait()` method](https://js.xrpl.org/classes/Client.html#submitAndWait), you can wait until the returned Promise resolves. Other, more asynchronous approaches are also possible. - **Python:** If you used the [`xrpl.transaction.submit_and_wait()` method](https://xrpl-py.readthedocs.io/en/stable/source/xrpl.transaction.html#xrpl.transaction.submit_and_wait), you can wait for the function to return. Other approaches, including asynchronous ones using the WebSocket client, are also possible. -- **Java** Poll the [`XrplClient.transaction()` method](https://javadoc.io/doc/org.xrpl/xrpl4j-client/latest/org/xrpl/xrpl4j/client/XrplClient.html#transaction(org.xrpl.xrpl4j.model.client.transactions.TransactionRequestParams,java.lang.Class)) to see if your transaction has a final result. Periodically check that the latest validated ledger index has not passed the `LastLedgerIndex` of the transaction using the [`XrplClient.ledger()`](https://javadoc.io/doc/org.xrpl/xrpl4j-client/latest/org/xrpl/xrpl4j/client/XrplClient.html#ledger(org.xrpl.xrpl4j.model.client.ledger.LedgerRequestParams)) method. +- **Java** Poll the [`XrplClient.transaction()` method]() to see if your transaction has a final result. Periodically check that the latest validated ledger index has not passed the `LastLedgerIndex` of the transaction using the [`XrplClient.ledger()`]() method. -- **PHP:** If you used the [`.submitAndWait()` method](https://alexanderbuzz.github.io/xrpl-php-docs/client.html), you can wait until the returned Promise resolves. Other, more asynchronous approaches are also possible. +- **PHP:** If you used the [`.submitAndWait()` method](https://alexanderbuzz.github.io/xrpl-php-docs/client.html), you can wait until the returned Promise resolves. Other, more asynchronous approaches are also possible. - **Go:** If you used the `SubmitTxAndWait()` or `SubmitTxBlobAndWait()` methods, the client will handle submission and wait until the transaction is confirmed in a ledger. Internally, these methods use a polling mechanism, querying the transaction status with the client's `Request()` method and a `TxRequest`. @@ -324,18 +321,17 @@ Most transactions are accepted into the next ledger version after they're submit {% partial file="/docs/_snippets/interactive-tutorials/wait-step.md" /%} - ### 7. Check Transaction Status To know for sure what a transaction did, you must look up the outcome of the transaction when it appears in a validated ledger version. - **JavaScript:** Use the response from `submitAndWait()` or call the [tx method][] using [`Client.request()`](https://js.xrpl.org/classes/Client.html#request). - {% admonition type="success" name="Tip" %}In **TypeScript** you can pass a [`TxRequest`](https://js.xrpl.org/interfaces/TxRequest.html) to the [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) method.{% /admonition %} + {% admonition type="success" name="Tip" %}In **TypeScript** you can pass a [`TxRequest`](https://js.xrpl.org/interfaces/TxRequest.html) to the [`Client.request()`](https://js.xrpl.org/classes/Client.html#request) method.{% /admonition %} - **Python:** Use the response from [`submit_and_wait()`](https://xrpl-py.readthedocs.io/en/stable/source/xrpl.transaction.html#xrpl.transaction.submit_and_wait) or call the [`xrpl.transaction.get_transaction_from_hash()` method](https://xrpl-py.readthedocs.io/en/latest/source/xrpl.transaction.html#xrpl.transaction.get_transaction_from_hash). (See the [tx method response format](../../references/http-websocket-apis/public-api-methods/transaction-methods/tx.md#response-format) for a detailed reference of the fields this can contain.) -- **Java:** Use the [`XrplClient.transaction()`](https://javadoc.io/doc/org.xrpl/xrpl4j-client/latest/org/xrpl/xrpl4j/client/XrplClient.html#transaction(org.xrpl.xrpl4j.model.client.transactions.TransactionRequestParams,java.lang.Class)) method to check the status of a transaction. +- **Java:** Use the [`XrplClient.transaction()`]() method to check the status of a transaction. - **PHP:** Use the response from `submitAndWait()` or call the `tx method` using [`$client->syncRequest()`](https://alexanderbuzz.github.io/xrpl-php-docs/client.html). @@ -370,11 +366,11 @@ To know for sure what a transaction did, you must look up the outcome of the tra {% interactive-block label="Check" steps=$frontmatter.steps %} +
    {% /interactive-block %} - ## Differences for Production To send an XRP payment on the production XRP Ledger, the steps you take are largely the same. However, there are some key differences in the necessary setup: @@ -389,23 +385,28 @@ This tutorial uses a button to get an address that's already funded with Test Ne {% tabs %} {% tab label="JavaScript" %} + ```js const wallet = new xrpl.Wallet() console.log(wallet.address) // Example: rGCkuB7PBr5tNy68tPEABEtcdno4hE6Y7f console.log(wallet.seed) // Example: sp6JS7f14BuwFY8Mw6bTtLKWauoUs ``` + {% /tab %} {% tab label="Python" %} + ```py from xrpl.wallet import Wallet my_wallet = Wallet.create() print(my_wallet.address) # Example: rGCkuB7PBr5tNy68tPEABEtcdno4hE6Y7f print(my_wallet.seed) # Example: sp6JS7f14BuwFY8Mw6bTtLKWauoUs ``` + {% /tab %} {% tab label="Java" %} + ```java WalletFactory walletFactory = DefaultWalletFactory.getInstance(); SeedWalletGenerationResult generationResult = walletFactory.randomWallet(false); @@ -413,9 +414,11 @@ Wallet wallet = generationResult.wallet(); System.out.println(wallet.classicAddress()); // Example: rGCkuB7PBr5tNy68tPEABEtcdno4hE6Y7f System.out.println(generationResult.seed()); // Example: sp6JS7f14BuwFY8Mw6bTtLKWauoUs ``` + {% /tab %} {% tab label="PHP" %} + ```php use XRPL_PHP\Wallet\Wallet; @@ -424,6 +427,7 @@ $wallet = Wallet::generate(); print_r("Address: " . $wallet->getAddress()); // Example: rGCkuB7PBr5tNy68tPEABEtcdno4hE6Y7f print_r("Seed: " . $wallet->getSeed()); // Example: sp6JS7f14BuwFY8Mw6bTtLKWauoUs ``` + {% /tab %} {% tab label="Go" %} @@ -434,6 +438,7 @@ fmt.Println("Classic Address:", wallet.ClassicAddress) // Example: r9ESeQQswbTxV fmt.Println("Seed:", wallet.Seed) // Example: sEd7XGFGSWteam777HQHvw7vHypEWy2 ``` + {% /tab %} {% /tabs %} @@ -449,33 +454,41 @@ When you instantiate your client's connect to the XRP Ledger, you must specify a {% tabs %} {% tab label="JavaScript" %} + ```js const xrpl = require('xrpl') const api = new xrpl.Client('wss://xrplcluster.com') api.connect() ``` + {% /tab %} {% tab label="Python" %} + ```py from xrpl.clients import JsonRpcClient client = JsonRpcClient("https://xrplcluster.com") ``` + {% /tab %} {% tab label="Java" %} + ```java final HttpUrl rippledUrl = HttpUrl.get("https://xrplcluster.com"); XrplClient xrplClient = new XrplClient(rippledUrl); ``` + {% /tab %} {% tab label="PHP" %} + ``` use XRPL_PHP\Client\JsonRpcClient; $client = new JsonRpcClient("https://xrplcluster.com"); ``` + {% /tab %} {% tab label="Go" %} @@ -490,6 +503,7 @@ if err := client.Connect(); err != nil { return } ``` + {% /tab %} {% /tabs %} @@ -499,33 +513,41 @@ If you [install `rippled`](../../infrastructure/installation/index.md) yourself, {% tabs %} {% tab label="JavaScript" %} + ```js const xrpl = require('xrpl') const api = new xrpl.Client('ws://localhost:6006') api.connect() ``` + {% /tab %} {% tab label="Python" %} + ```py from xrpl.clients import JsonRpcClient client = JsonRpcClient("http://localhost:5005") ``` + {% /tab %} {% tab label="Java" %} + ```java final HttpUrl rippledUrl = HttpUrl.get("http://localhost:5005"); XrplClient xrplClient = new XrplClient(rippledUrl); ``` + {% /tab %} {% tab label="PHP" %} + ```php use XRPL_PHP\Client\JsonRpcClient; $client = new JsonRpcClient("http://localhost:5005"); ``` + {% /tab %} {% tab label="Go" %} @@ -540,6 +562,7 @@ if err := client.Connect(); err != nil { return } ``` + {% /tab %} {% /tabs %} diff --git a/docs/tutorials/how-tos/testing-devnet-features.md b/docs/tutorials/how-tos/testing-devnet-features.md index df6b0359ff..6d0326becc 100644 --- a/docs/tutorials/how-tos/testing-devnet-features.md +++ b/docs/tutorials/how-tos/testing-devnet-features.md @@ -2,12 +2,13 @@ html: testing-devnet-features.html parent: how-tos.html seo: - description: Guide on using pre-release transaction types on the XRP Ledger for developers. + description: Guide on using pre-release transaction types on the XRP Ledger for developers. labels: - Development - Customization - Devnet --- + # Test Pre-Release Transaction Types _(Requires cloning and modifying XRPL core repositories and understanding of XRPL [transaction serialization](../../references/protocol/binary-format.md))._ @@ -124,32 +125,32 @@ Copy the generated `definitions.json` to your XRPL library installation. {% tab label="JavaScript" %} ```javascript -const { Client, Wallet } = require('xrpl'); -const { encode } = require('ripple-binary-codec'); +const { Client, Wallet } = require('xrpl') +const { encode } = require('ripple-binary-codec') async function main() { - const client = new Client("wss://s.devnet.rippletest.net:51233"); - await client.connect(); + const client = new Client('wss://s.devnet.rippletest.net:51233') + await client.connect() - const wallet = Wallet.fromSeed('sYOURSEEDHERE'); + const wallet = Wallet.fromSeed('sYOURSEEDHERE') const customTx = { TransactionType: 'NewTransactionType', Account: wallet.address, // additional fields for the new transaction - }; + } // If using Typescript, you will need to encode to allow typechecks to function // or just us @ts-expect-error when calling submit // const encodedTransaction = encode(customTx); - await client.submitAndWait(customTx, { wallet }); + await client.submitAndWait(customTx, { wallet }) // If using typescript, you should pass the encoded string of the transaction or us @ts-expect-error // await client.submitAndWait(encodedTransaction, { wallet }); // await client.disconnect(); } -main(); +main() // Or call await main(); if your nodejs versions supports top level await ``` diff --git a/docs/tutorials/how-tos/use-batch-transactions/index.md b/docs/tutorials/how-tos/use-batch-transactions/index.md index d64f91fc48..0fe3d7917d 100644 --- a/docs/tutorials/how-tos/use-batch-transactions/index.md +++ b/docs/tutorials/how-tos/use-batch-transactions/index.md @@ -1,12 +1,13 @@ --- seo: - description: Batch multiple transactions together and execute them as a single unit. + description: Batch multiple transactions together and execute them as a single unit. metadata: indexPage: true labels: - Batch - Transactions --- + # Use Batch Transactions Batch multiple transactions together and execute them as a single unit. diff --git a/docs/tutorials/how-tos/use-batch-transactions/send-a-multi-account-batch-transaction.md b/docs/tutorials/how-tos/use-batch-transactions/send-a-multi-account-batch-transaction.md index e0f1513e59..3b68d851ac 100644 --- a/docs/tutorials/how-tos/use-batch-transactions/send-a-multi-account-batch-transaction.md +++ b/docs/tutorials/how-tos/use-batch-transactions/send-a-multi-account-batch-transaction.md @@ -1,12 +1,13 @@ --- seo: - description: Send a Batch transaction containing transactions from multiple accounts. + description: Send a Batch transaction containing transactions from multiple accounts. metadata: indexPage: true labels: - Batch - Transactions --- + # Send a Multi-Account Batch Transaction This tutorial shows you how to create a [Batch transaction][] containing transactions from multiple accounts, where each account must sign the `Batch` transaction. Any account, even one not involved in the inner transactions, can submit the batch. @@ -81,13 +82,13 @@ You typically don't need to set these manually, but if you do, ensure `Fee` is s Create the `Batch` transaction and provide the inner transactions. The key fields to note are: -| Field | Value | -|:---------------- |:---------- | -| TransactionType | The type of transaction, in this case `Batch`.| -| Account | The wallet address of the account that is sending the `Batch` transaction. | -| Flags | The flags for the `Batch` transaction. For this example the transaction is configured with the `tfAllOrNothing` (0x00010000) flag to ensure that either all inner transactions succeed or they all fail atomically. See [Batch Flags](../../../references/protocol/transactions/types/batch.md#batch-flags) for other options. | -| RawTransactions | Contains the list of inner transactions to be applied. Must include a minimum of **2** transactions and a maximum of **8** transactions. These transactions can come from one account or multiple accounts. | -| BatchSigners | The list of signatures required for the `Batch` transaction. This is required because there are multiple accounts' transactions included in the batch. | +| Field | Value | +| :-------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| TransactionType | The type of transaction, in this case `Batch`. | +| Account | The wallet address of the account that is sending the `Batch` transaction. | +| Flags | The flags for the `Batch` transaction. For this example the transaction is configured with the `tfAllOrNothing` (0x00010000) flag to ensure that either all inner transactions succeed or they all fail atomically. See [Batch Flags](../../../references/protocol/transactions/types/batch.md#batch-flags) for other options. | +| RawTransactions | Contains the list of inner transactions to be applied. Must include a minimum of **2** transactions and a maximum of **8** transactions. These transactions can come from one account or multiple accounts. | +| BatchSigners | The list of signatures required for the `Batch` transaction. This is required because there are multiple accounts' transactions included in the batch. | {% tabs %} {% tab label="Javascript" %} diff --git a/docs/tutorials/how-tos/use-batch-transactions/send-a-single-account-batch-transaction.md b/docs/tutorials/how-tos/use-batch-transactions/send-a-single-account-batch-transaction.md index 69e0820857..2ef85a8c2b 100644 --- a/docs/tutorials/how-tos/use-batch-transactions/send-a-single-account-batch-transaction.md +++ b/docs/tutorials/how-tos/use-batch-transactions/send-a-single-account-batch-transaction.md @@ -1,12 +1,13 @@ --- seo: - description: Send a Batch transaction from a single account. + description: Send a Batch transaction from a single account. metadata: indexPage: true labels: - Batch - Transactions --- + # Send a Single Account Batch Transaction A [Batch transaction][] allows you to group multiple transactions together and execute them as a single atomic operation. @@ -83,12 +84,12 @@ You typically don't need to set these manually, but if you do, ensure `Fee` is s Create the `Batch` transaction and provide the inner transactions. The key fields to note are: -| Field | Value | -|:---------------- |:---------- | -| TransactionType | The type of transaction, in this case `Batch`.| -| Account | The wallet address of the account that is sending the `Batch` transaction. | -| Flags | The flags for the `Batch` transaction. For this example the transaction is configured with the `tfAllOrNothing` (0x00010000) flag to ensure that either all inner transactions succeed or they all fail atomically. See [Batch Flags](../../../references/protocol/transactions/types/batch.md#batch-flags) for other options. | -| RawTransactions | Contains the list of inner transactions to be applied. Must include a minimum of **2** transactions and a maximum of **8** transactions. These transactions can come from one account or multiple accounts. | +| Field | Value | +| :-------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| TransactionType | The type of transaction, in this case `Batch`. | +| Account | The wallet address of the account that is sending the `Batch` transaction. | +| Flags | The flags for the `Batch` transaction. For this example the transaction is configured with the `tfAllOrNothing` (0x00010000) flag to ensure that either all inner transactions succeed or they all fail atomically. See [Batch Flags](../../../references/protocol/transactions/types/batch.md#batch-flags) for other options. | +| RawTransactions | Contains the list of inner transactions to be applied. Must include a minimum of **2** transactions and a maximum of **8** transactions. These transactions can come from one account or multiple accounts. | {% tabs %} {% tab label="Javascript" %} diff --git a/docs/tutorials/how-tos/use-specialized-payment-types/index.md b/docs/tutorials/how-tos/use-specialized-payment-types/index.md index c847348f89..cdb7527e93 100644 --- a/docs/tutorials/how-tos/use-specialized-payment-types/index.md +++ b/docs/tutorials/how-tos/use-specialized-payment-types/index.md @@ -4,9 +4,9 @@ parent: tasks.html metadata: indexPage: true --- + # Use Specialized Payment Types Use advanced features like Escrow and Payment Channels to build smart applications on the XRP Ledger. - {% child-pages /%} diff --git a/docs/tutorials/how-tos/use-specialized-payment-types/use-checks/cancel-a-check.md b/docs/tutorials/how-tos/use-specialized-payment-types/use-checks/cancel-a-check.md index 1b7d0d4f2e..a0e0171e0a 100644 --- a/docs/tutorials/how-tos/use-specialized-payment-types/use-checks/cancel-a-check.md +++ b/docs/tutorials/how-tos/use-specialized-payment-types/use-checks/cancel-a-check.md @@ -1,9 +1,10 @@ --- seo: - description: Cancel a Check without sending money. + description: Cancel a Check without sending money. labels: - Checks --- + # Cancel a Check This tutorial shows how to cancel a [Check](../../../../concepts/payment-types/checks.md), which removes the [Check entry](../../../../references/protocol/ledger-data/ledger-entry-types/check.md) from the ledger without sending money. @@ -28,10 +29,10 @@ The complete source code for this tutorial is available in the source repository Figure out the values of the [CheckCancel transaction][] fields. The following fields are the bare minimum; everything else is either optional or can be [auto-filled](../../../../references/protocol/transactions/common-fields.md#auto-fillable-fields) when signing: -| Field | Value | Description | -|:------------------|:-----------------|:--------------------------------------| -| `TransactionType` | String | Use the string `CheckCancel` when canceling a Check. | -| `Account` | String (Address) | The address of the sender who is canceling the Check. (In other words, your address.) | +| Field | Value | Description | +| :---------------- | :--------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `TransactionType` | String | Use the string `CheckCancel` when canceling a Check. | +| `Account` | String (Address) | The address of the sender who is canceling the Check. (In other words, your address.) | | `CheckID` | String | The ID of the Check entry to cancel. You can get this information when you [send a check](./send-a-check.md), or by [looking up checks](./look-up-checks.md). | For example: diff --git a/docs/tutorials/how-tos/use-specialized-payment-types/use-checks/cash-a-check-for-a-flexible-amount.md b/docs/tutorials/how-tos/use-specialized-payment-types/use-checks/cash-a-check-for-a-flexible-amount.md index 50e3b0b2a3..3ce427f895 100644 --- a/docs/tutorials/how-tos/use-specialized-payment-types/use-checks/cash-a-check-for-a-flexible-amount.md +++ b/docs/tutorials/how-tos/use-specialized-payment-types/use-checks/cash-a-check-for-a-flexible-amount.md @@ -1,40 +1,39 @@ --- seo: - description: Cash a Check for as much as possible. + description: Cash a Check for as much as possible. labels: - Checks --- + # Cash a Check for a Flexible Amount This tutorial shows how to cash a [Check](/docs/concepts/payment-types/checks.md) for a flexible amount. As long as the Check is not expired, the specified recipient can cash it to receive the maximum amount available. You would cash a Check this way if you want to receive as much as possible. When doing this, you set a minimum amount to receive in case the sender does not have enough money to pay the full amount. If the check cannot deliver at least the minimum amount, cashing the check fails but you can try again later. You can also [cash a check for an exact amount](cash-a-check-for-a-flexible-amount.md). - ## Prerequisites - You should be familiar with the basics of using the [xrpl.js client library](../../../javascript/build-apps/get-started.md). - You need an XRP Ledger account including its secret key. (You can get one on Testnet for free.) See also: [XRP Faucets](/resources/dev-tools/xrp-faucets). - You need the ID of a Check ledger entry that you are the recipient of. See also: [Send a Check](./send-a-check.md) and [Look Up Checks](./look-up-checks.md). - ## Source Code The complete source code for this tutorial is available in the source repository for this website: {% repo-link path="_code-samples/checks/js/" %}Checks sample code{% /repo-link %} - ## Steps + ### 1. Prepare the CheckCash transaction Figure out the values of the [CheckCash transaction][] fields. To cash a check for a flexible amount, the following fields are the bare minimum; everything else is either optional or can be [auto-filled](../../../../references/protocol/transactions/common-fields.md#auto-fillable-fields) when signing: -| Field | Value | Description | -|:------------------|:---------------------|:-----------------------------| -| `TransactionType` | String | The value `CheckCash` indicates this is a CheckCash transaction. | -| `Account` | String - [Address][] | The address of the sender who is cashing the Check. (In other words, your address.) | -| `CheckID` | String | The ID of the Check to cash. You can get this information from the person who sent you the Check, or by [looking up checks](./look-up-checks.md) where your account is the destination. | +| Field | Value | Description | +| :---------------- | :------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `TransactionType` | String | The value `CheckCash` indicates this is a CheckCash transaction. | +| `Account` | String - [Address][] | The address of the sender who is cashing the Check. (In other words, your address.) | +| `CheckID` | String | The ID of the Check to cash. You can get this information from the person who sent you the Check, or by [looking up checks](./look-up-checks.md) where your account is the destination. | | `DeliverMin` | [Currency Amount][] | A minimum amount to receive from the Check. If you cannot receive at least this much, cashing the Check fails, leaving the Check in the ledger so you can try again. For XRP, this must be a string specifying drops of XRP. For tokens, this is an object with `currency`, `issuer`, and `value` fields. The `currency` and `issuer` fields must match the corresponding fields in the Check object, and the `value` must be less than or equal to the amount in the Check object. For more information on specifying currency amounts, see [Specifying Currency Amounts][]. | In the sample code, these values are hard-coded, so you should edit them to match your case: @@ -45,14 +44,12 @@ Then, you use these parameters to fill out the transaction. For example: {% code-snippet file="/_code-samples/checks/js/cash-check-flexible.js" language="js" from="// Prepare the transaction" before="// Submit the transaction" /%} - ### 2. Submit the transaction Send the transaction and wait for it to be validated by the consensus process, as normal: {% code-snippet file="/_code-samples/checks/js/cash-check-flexible.js" from="// Submit" before="// Confirm" /%} - ## 3. Confirm final result If the transaction succeeded, it should have a `"TransactionResult": "tesSUCCESS"` field in the metadata, and the field `"validated": true` in the result, indicating that this result is final. @@ -71,43 +68,42 @@ If you are not using `getBalanceChanges()`, the following guidelines should help - For XRP, the `AccountRoot` object of the Check's sender has its XRP `Balance` field debited. The `AccountRoot` object of the Check's recipient (the one who sent the CheckCash transaction) has its XRP `Balance` credited for at least the `DeliverMin` of the CheckCash transaction minus the [transaction cost](../../../../concepts/transactions/transaction-cost.md) of sending the transaction. - For example, the following `ModifiedNode` shows that the account `rGPnRH1EBpHeTF2QG8DCAgM7z5pb75LAis`, the Check's recipient and the sender of this CheckCash transaction, had its XRP balance change from `9999999970` drops to `10099999960` drops, meaning the recipient was credited a _net_ of 99.99999 XRP as a result of processing the transaction. + For example, the following `ModifiedNode` shows that the account `rGPnRH1EBpHeTF2QG8DCAgM7z5pb75LAis`, the Check's recipient and the sender of this CheckCash transaction, had its XRP balance change from `9999999970` drops to `10099999960` drops, meaning the recipient was credited a _net_ of 99.99999 XRP as a result of processing the transaction. - ``` - { - "ModifiedNode": { - "FinalFields": { - "Account": "rGPnRH1EBpHeTF2QG8DCAgM7z5pb75LAis", - "Balance": "10099999960", - "Flags": 0, - "OwnerCount": 2, - "Sequence": 5 - }, - "LedgerEntryType": "AccountRoot", - "LedgerIndex": "7939126A732EBBDEC715FD3CCB056EB31E65228CA17E3B2901E7D30B90FD03D3", - "PreviousFields": { - "Balance": "9999999970", - "Sequence": 4 - }, - "PreviousTxnID": "0283465F0D21BE6B1E91ABDE17266C24C1B4915BAAA9A88CC098A98D5ECD3E9E", - "PreviousTxnLgrSeq": 8005334 - } + ``` + { + "ModifiedNode": { + "FinalFields": { + "Account": "rGPnRH1EBpHeTF2QG8DCAgM7z5pb75LAis", + "Balance": "10099999960", + "Flags": 0, + "OwnerCount": 2, + "Sequence": 5 + }, + "LedgerEntryType": "AccountRoot", + "LedgerIndex": "7939126A732EBBDEC715FD3CCB056EB31E65228CA17E3B2901E7D30B90FD03D3", + "PreviousFields": { + "Balance": "9999999970", + "Sequence": 4 + }, + "PreviousTxnID": "0283465F0D21BE6B1E91ABDE17266C24C1B4915BAAA9A88CC098A98D5ECD3E9E", + "PreviousTxnLgrSeq": 8005334 } - ``` + } + ``` - The net amount of 99.99999 XRP includes deducting the transaction cost that is destroyed to pay for sending this CheckCash transaction. The following part of the transaction instructions shows that the transaction cost (the `Fee` field) was 10 drops of XRP. By adding this to the net balance change, we conclude that the recipient, `rGPnRH1EBpHeTF2QG8DCAgM7z5pb75LAis`, was credited a _gross_ amount of exactly 100 XRP for cashing the Check. + The net amount of 99.99999 XRP includes deducting the transaction cost that is destroyed to pay for sending this CheckCash transaction. The following part of the transaction instructions shows that the transaction cost (the `Fee` field) was 10 drops of XRP. By adding this to the net balance change, we conclude that the recipient, `rGPnRH1EBpHeTF2QG8DCAgM7z5pb75LAis`, was credited a _gross_ amount of exactly 100 XRP for cashing the Check. - ``` - "Account" : "rGPnRH1EBpHeTF2QG8DCAgM7z5pb75LAis", - "TransactionType" : "CheckCash", - "DeliverMin" : "95000000", - "Fee" : "10", - ``` + ``` + "Account" : "rGPnRH1EBpHeTF2QG8DCAgM7z5pb75LAis", + "TransactionType" : "CheckCash", + "DeliverMin" : "95000000", + "Fee" : "10", + ``` - For tokens where the sender or recipient of the check is the issuer, the `RippleState` object representing the trust line between those accounts has its `Balance` adjusted in the favor of the Check's recipient. - For tokens with a third-party issuer, there are changes to two `RippleState` objects, representing the trust lines connecting the sender to the issuer, and the issuer to the recipient. The `RippleState` object representing the relationship between the Check's sender and the issuer has its `Balance` changed in favor of the issuer, and the `RippleState` object representing the relationship between the issuer and the recipient has its `Balance` changed in favor of the recipient. - - - If the token has a [transfer fee](../../../../concepts/tokens/fungible-tokens/transfer-fees.md), the Check's sender may be debited more than the recipient is credited. (The difference is the transfer fee, which is returned to the issuer as a decreased net obligation.) + - If the token has a [transfer fee](../../../../concepts/tokens/fungible-tokens/transfer-fees.md), the Check's sender may be debited more than the recipient is credited. (The difference is the transfer fee, which is returned to the issuer as a decreased net obligation.) {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/tutorials/how-tos/use-specialized-payment-types/use-checks/cash-a-check-for-an-exact-amount.md b/docs/tutorials/how-tos/use-specialized-payment-types/use-checks/cash-a-check-for-an-exact-amount.md index 92470b0c3d..0c120c6159 100644 --- a/docs/tutorials/how-tos/use-specialized-payment-types/use-checks/cash-a-check-for-an-exact-amount.md +++ b/docs/tutorials/how-tos/use-specialized-payment-types/use-checks/cash-a-check-for-an-exact-amount.md @@ -1,9 +1,10 @@ --- seo: - description: Cash a Check for any exact amount up to the amount it specifies. + description: Cash a Check for any exact amount up to the amount it specifies. labels: - Checks --- + # Cash a Check for an Exact Amount This tutorial shows how to cash a [Check](/docs/concepts/payment-types/checks.md) for an exact amount. As long as the Check is not expired, the specified recipient can cash it to receive any exact amount up to the amount specified. You would cash a Check this way if you want to receive a specific amount, for example to pay off an invoice or bill exactly. If the sender does not have enough money, cashing the check fails but you can try again later. @@ -23,15 +24,16 @@ The complete source code for this tutorial is available in the source repository {% repo-link path="_code-samples/checks/js/" %}Checks sample code{% /repo-link %} ## Steps + ### 1. Prepare the CheckCash transaction Figure out the values of the [CheckCash transaction][] fields. You also need to create a `Wallet` instance for your account's key pair. To cash a check for an exact amount, the following fields are the bare minimum; everything else is either optional or can be [auto-filled](../../../../references/protocol/transactions/common-fields.md#auto-fillable-fields) when signing: -| Field | Value | Description | -|:------------------|:---------------------|:-----------------------------| -| `TransactionType` | String | The value `CheckCash` indicates this is a CheckCash transaction. | -| `Account` | String - [Address][] | The address of the sender who is cashing the Check. (In other words, your address.) | -| `CheckID` | String | The ID of the Check to cash. You can get this information from the person who sent you the Check, or by [looking up checks](./look-up-checks.md) where your account is the destination. | +| Field | Value | Description | +| :---------------- | :------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `TransactionType` | String | The value `CheckCash` indicates this is a CheckCash transaction. | +| `Account` | String - [Address][] | The address of the sender who is cashing the Check. (In other words, your address.) | +| `CheckID` | String | The ID of the Check to cash. You can get this information from the person who sent you the Check, or by [looking up checks](./look-up-checks.md) where your account is the destination. | | `Amount` | [Currency Amount][] | The amount to receive. The type of currency (token or XRP) must match the Check object. The quantity in the `value` field must be less than or equal to the amount in the Check object. (For currencies with transfer fees, you must cash the Check for less than its `SendMax` so the transfer fee can be paid by the `SendMax`.) For more information on specifying currency amounts, see [Specifying Currency Amounts][]. | In the sample code, these values are hard-coded, so you should edit them to match your case: @@ -42,14 +44,12 @@ Then, you use these parameters to fill out the transaction. For example: {% code-snippet file="/_code-samples/checks/js/cash-check-exact.js" language="js" from="// Prepare the transaction" before="// Submit the transaction" /%} - ### 2. Submit the transaction Send the transaction and wait for it to be validated by the consensus process, as normal: {% code-snippet file="/_code-samples/checks/js/cash-check-exact.js" from="// Submit" before="// Confirm" /%} - ### 3. Confirm transaction result If the transaction succeeded, it should have a `"TransactionResult": "tesSUCCESS"` field in the metadata, and the field `"validated": true` in the result, indicating that this result is final. diff --git a/docs/tutorials/how-tos/use-specialized-payment-types/use-checks/index.md b/docs/tutorials/how-tos/use-specialized-payment-types/use-checks/index.md index 6035bcb81e..bfd465d669 100644 --- a/docs/tutorials/how-tos/use-specialized-payment-types/use-checks/index.md +++ b/docs/tutorials/how-tos/use-specialized-payment-types/use-checks/index.md @@ -1,11 +1,12 @@ --- seo: - description: Checks in the XRP Ledger authorize another account to claim funds later, similar to how personal paper checks work. + description: Checks in the XRP Ledger authorize another account to claim funds later, similar to how personal paper checks work. metadata: indexPage: true labels: - Checks --- + # Use Checks Checks in the XRP Ledger authorize another account to claim funds later, similar to how personal paper checks work. diff --git a/docs/tutorials/how-tos/use-specialized-payment-types/use-checks/look-up-checks.md b/docs/tutorials/how-tos/use-specialized-payment-types/use-checks/look-up-checks.md index b00737f4ce..f2440d6ccd 100644 --- a/docs/tutorials/how-tos/use-specialized-payment-types/use-checks/look-up-checks.md +++ b/docs/tutorials/how-tos/use-specialized-payment-types/use-checks/look-up-checks.md @@ -1,9 +1,10 @@ --- seo: - description: Get a list of pending checks sent from or to an account. + description: Get a list of pending checks sent from or to an account. labels: - Checks --- + # Look Up Checks This tutorial shows how to look up [Checks](../../../../concepts/payment-types/checks.md) by their sender or recipient, in JavaScript. @@ -27,7 +28,6 @@ To get a list of all incoming and outgoing Checks for an account, use the `accou {% code-snippet file="/_code-samples/checks/js/get-checks.js" from="// Loop through account objects" before="// Filter results" /%} - ### 2. Filter the responses by recipient The response may include Checks where the account from the request is the sender or the recipient. Each member of the `account_objects` array of the response represents one Check. For each such Check object, the address in the `Destination` is address of that Check's recipient, such as in the following code: @@ -38,5 +38,4 @@ To filter by sender, check the address in the `Account` field of the Check inste {% admonition type="success" name="tip" %}For each Check entry in the results, the Check's ID is in the `index` field. You'll need this value to cash or cancel the Check.{% /admonition %} - {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/tutorials/how-tos/use-specialized-payment-types/use-checks/send-a-check.md b/docs/tutorials/how-tos/use-specialized-payment-types/use-checks/send-a-check.md index 17f9b375aa..1f0715d7f0 100644 --- a/docs/tutorials/how-tos/use-specialized-payment-types/use-checks/send-a-check.md +++ b/docs/tutorials/how-tos/use-specialized-payment-types/use-checks/send-a-check.md @@ -1,9 +1,10 @@ --- seo: - description: Send a Check whose intended recipient can cash it to be paid later. + description: Send a Check whose intended recipient can cash it to be paid later. labels: - Checks --- + # Send a Check Sending a [Check](/docs/concepts/payment-types/checks.md) is like writing permission for an intended recipient to pull a payment from you. The outcome of this process is a [Check entry in the ledger](../../../../references/protocol/ledger-data/ledger-entry-types/check.md) which the recipient can cash later. @@ -15,7 +16,7 @@ In many cases, you want to send a [Payment][] instead of a Check, since that del To send a Check with this tutorial, you need the following: - The **address** and **secret key** of a funded account to send the Check from. - - You can use the [XRP Ledger Test Net Faucet](/resources/dev-tools/xrp-faucets) to get a funded address and secret with 10,000 Test Net XRP. + - You can use the [XRP Ledger Test Net Faucet](/resources/dev-tools/xrp-faucets) to get a funded address and secret with 10,000 Test Net XRP. - The **address** of a funded account to receive the Check. - You should be familiar with the basics of using [xrpl.js](../../../javascript/build-apps/get-started.md). @@ -31,11 +32,11 @@ The complete source code for this tutorial is available in the source repository Decide how much money the Check is for and who can cash it. Figure out the values of the [CheckCreate transaction][] fields. The following fields are the bare minimum; everything else is either optional or can be [auto-filled](../../../../references/protocol/transactions/common-fields.md#auto-fillable-fields) when signing: -| Field | Value | Description | -|:------------------|:--------------------------|:-----------------------------| -| `TransactionType` | String | Use the string `CheckCreate` here. | -| `Account` | String (Address) | The address of the sender who is creating the Check. (In other words, your address.) | -| `Destination` | String (Address) | The address of the intended recipient who can cash the Check. | +| Field | Value | Description | +| :---------------- | :------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `TransactionType` | String | Use the string `CheckCreate` here. | +| `Account` | String (Address) | The address of the sender who is creating the Check. (In other words, your address.) | +| `Destination` | String (Address) | The address of the intended recipient who can cash the Check. | | `SendMax` | String or Object (Amount) | The maximum amount the sender can be debited when this Check gets cashed. For XRP, use a string representing drops of XRP. For tokens, use an object with `currency`, `issuer`, and `value` fields. See [Specifying Currency Amounts][] for details. If you want the recipient to be able to cash the Check for an exact amount of a non-XRP currency with a [transfer fee](../../../../concepts/tokens/fungible-tokens/transfer-fees.md), remember to include an extra percentage to pay for the transfer fee. (For example, for the recipient to cash a Check for 100 CAD from an issuer with a 2% transfer fee, you must set the `SendMax` to 102 CAD from that issuer.) | For example, imagine you were asked to pay a company named Grand Payments for some consulting work. By email, Grand Payments informs you that the maximum charge is 120 XRP, their XRP Ledger address is `rGPnRH1EBpHeTF2QG8DCAgM7z5pb75LAis`, and this work has been billed with an invoice ID of `46060241FABCF692D4D934BA2A6C4427CD4279083E38C77CBE642243E43BE291` which they ask you to attach for their records. The following code shows how you could use a Check to send that payment: @@ -44,14 +45,12 @@ For example, imagine you were asked to pay a company named Grand Payments for so {% admonition type="success" name="Tip" %}The `InvoiceID` is optional metadata that can be attached to any Check (or Payment). This field is purely informational and is not used in transaction processing.{% /admonition %} - ### 2. Submit the transaction Send the transaction and wait for it to be validated by the consensus process, as normal: {% code-snippet file="/_code-samples/checks/js/create-check.js" language="js" from="// Submit the transaction" before="// Get transaction result" /%} - ### 3. Confirm transaction result If the transaction succeeded, it should have a `"TransactionResult": "tesSUCCESS"` field in the metadata, and the field `"validated": true` in the result, indicating that this result is final. diff --git a/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/cancel-an-expired-escrow.md b/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/cancel-an-expired-escrow.md index 9b11580aa0..6b4e9975d7 100644 --- a/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/cancel-an-expired-escrow.md +++ b/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/cancel-an-expired-escrow.md @@ -2,11 +2,12 @@ html: cancel-an-expired-escrow.html parent: use-escrows.html seo: - description: Cancel an expired escrow. + description: Cancel an expired escrow. labels: - Escrow - Smart Contracts --- + # Cancel an Expired Escrow An escrow in the XRP Ledger is expired when its `CancelAfter` time is lower than the `close_time` of the latest validated ledger. Escrows without a `CancelAfter` time never expire. @@ -61,11 +62,11 @@ Response: ## 3. Submit EscrowCancel transaction -***Anyone*** can cancel an expired escrow in the XRP Ledger by sending an [EscrowCancel transaction][]. Set the `Owner` field of the transaction to the `Account` of the `EscrowCreate` transaction that created this escrow. Set the `OfferSequence` field to the `Sequence` of the `EscrowCreate` transaction. +**_Anyone_** can cancel an expired escrow in the XRP Ledger by sending an [EscrowCancel transaction][]. Set the `Owner` field of the transaction to the `Account` of the `EscrowCreate` transaction that created this escrow. Set the `OfferSequence` field to the `Sequence` of the `EscrowCreate` transaction. {% admonition type="success" name="Tip" %}If you don't know what `OfferSequence` to use, you can look up the transaction that created the Escrow: call the [tx method][] with the value of the Escrow's `PreviousTxnID` field. In `tx` response, use the `Sequence` value of that transaction as the `OfferSequence` value of the EscrowCancel transaction.{% /admonition %} -{% partial file="/docs/_snippets/secret-key-warning.md" /%} +{% partial file="/docs/_snippets/secret-key-warning.md" /%} {% tabs %} @@ -119,23 +120,22 @@ Response: In the above example, `r3wN3v2vTUkr5qd6daqDc2xE4LSysdVjkT` is the sender of the escrow, and the increase in `Balance` from 99999**8**9990 drops to 99999**9**9990 drops represents the return of the escrowed 10,000 drops of XRP (0.01 XRP). - ## See Also - **Concepts:** - - [What is XRP?](../../../../introduction/what-is-xrp.md) - - [Payment Types](../../../../concepts/payment-types/index.md) - - [Escrow](../../../../concepts/payment-types/escrow.md) + - [What is XRP?](../../../../introduction/what-is-xrp.md) + - [Payment Types](../../../../concepts/payment-types/index.md) + - [Escrow](../../../../concepts/payment-types/escrow.md) - **Tutorials:** - - [Send XRP](../../send-xrp.md) - - [Look Up Transaction Results](../../../../concepts/transactions/finality-of-results/look-up-transaction-results.md) - - [Reliable Transaction Submission](../../../../concepts/transactions/reliable-transaction-submission.md) + - [Send XRP](../../send-xrp.md) + - [Look Up Transaction Results](../../../../concepts/transactions/finality-of-results/look-up-transaction-results.md) + - [Reliable Transaction Submission](../../../../concepts/transactions/reliable-transaction-submission.md) - **References:** - - [EscrowCancel transaction][] - - [EscrowCreate transaction][] - - [EscrowFinish transaction][] - - [account_objects method][] - - [tx method][] - - [Escrow ledger object](../../../../references/protocol/ledger-data/ledger-entry-types/escrow.md) + - [EscrowCancel transaction][] + - [EscrowCreate transaction][] + - [EscrowFinish transaction][] + - [account_objects method][] + - [tx method][] + - [Escrow ledger object](../../../../references/protocol/ledger-data/ledger-entry-types/escrow.md) {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/index.md b/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/index.md index c5c2aa09ad..abf53ef432 100644 --- a/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/index.md +++ b/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/index.md @@ -4,9 +4,9 @@ parent: use-specialized-payment-types.html metadata: indexPage: true --- + # Use Escrows The XRP Ledger supports escrows that can be executed only after a certain time has passed or a cryptographic condition has been fulfilled. Escrows can only send XRP, not issued currencies. - {% child-pages /%} diff --git a/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/look-up-escrows.md b/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/look-up-escrows.md index 132063c542..d43858be0d 100644 --- a/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/look-up-escrows.md +++ b/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/look-up-escrows.md @@ -2,11 +2,12 @@ html: look-up-escrows.html parent: use-escrows.html seo: - description: Look up pending escrows by sender or destination address. + description: Look up pending escrows by sender or destination address. labels: - Escrow - Smart Contracts --- + # Look up Escrows All pending escrows are stored in the ledger as [Escrow objects](../../../../concepts/payment-types/escrow.md). You can look them up by the sender's address or the destination address. @@ -40,19 +41,19 @@ The response includes all pending escrow objects with `rfztBskAVszuS3s5Kq7zDS74Q ## See Also - **Concepts:** - - [What is XRP?](../../../../introduction/what-is-xrp.md) - - [Payment Types](../../../../concepts/payment-types/index.md) - - [Escrow](../../../../concepts/payment-types/escrow.md) + - [What is XRP?](../../../../introduction/what-is-xrp.md) + - [Payment Types](../../../../concepts/payment-types/index.md) + - [Escrow](../../../../concepts/payment-types/escrow.md) - **Tutorials:** - - [Send XRP](../../send-xrp.md) - - [Look Up Transaction Results](../../../../concepts/transactions/finality-of-results/look-up-transaction-results.md) - - [Reliable Transaction Submission](../../../../concepts/transactions/reliable-transaction-submission.md) + - [Send XRP](../../send-xrp.md) + - [Look Up Transaction Results](../../../../concepts/transactions/finality-of-results/look-up-transaction-results.md) + - [Reliable Transaction Submission](../../../../concepts/transactions/reliable-transaction-submission.md) - **References:** - - [EscrowCancel transaction][] - - [EscrowCreate transaction][] - - [EscrowFinish transaction][] - - [account_objects method][] - - [tx method][] - - [Escrow ledger object](../../../../references/protocol/ledger-data/ledger-entry-types/escrow.md) + - [EscrowCancel transaction][] + - [EscrowCreate transaction][] + - [EscrowFinish transaction][] + - [account_objects method][] + - [tx method][] + - [Escrow ledger object](../../../../references/protocol/ledger-data/ledger-entry-types/escrow.md) {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/send-a-conditionally-held-escrow.md b/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/send-a-conditionally-held-escrow.md index f2dad19faa..d782687082 100644 --- a/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/send-a-conditionally-held-escrow.md +++ b/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/send-a-conditionally-held-escrow.md @@ -2,11 +2,12 @@ html: send-a-conditionally-held-escrow.html parent: use-escrows.html seo: - description: Create an escrow whose release is based on a condition being fulfilled. + description: Create an escrow whose release is based on a condition being fulfilled. labels: - Escrow - Smart Contracts --- + # Send a Conditionally-Held Escrow ## 1. Generate condition and fulfillment @@ -21,6 +22,7 @@ Example code for a random fulfillment and condition: {% tabs %} {% tab label="JavaScript" %} + ```js const cc = require('five-bells-condition') const crypto = require('crypto') @@ -36,9 +38,11 @@ console.log('Condition:', condition) const fulfillment_hex = fulfillment.serializeBinary().toString('hex').toUpperCase() console.log('Fulfillment:', fulfillment_hex) ``` + {% /tab %} {% tab label="Python" %} + ```py from os import urandom from cryptoconditions import PreimageSha256 @@ -52,13 +56,13 @@ print("Condition", fulfillment.condition_binary.hex().upper()) # Keep secret until you want to finish the escrow print("Fulfillment", fulfillment.serialize_binary().hex().upper()) ``` + {% /tab %} {% /tabs %} Save the condition and the fulfillment for later. Be sure to keep the fulfillment secret until you want to finish executing the held payment. Anyone who knows the fulfillment can finish the escrow, releasing the held funds to their intended destination. - ## 2. Calculate release or cancel time A Conditional `Escrow` transaction must contain either a `CancelAfter` or `FinishAfter` field, or both. The `CancelAfter` field lets the XRP revert to the sender if the condition is not fulfilled before the specified time. The `FinishAfter` field specifies a time before which the escrow cannot execute, even if someone sends the correct fulfillment. Whichever field you provide, the time it specifies must be in the future. @@ -68,15 +72,18 @@ Example for setting a `CancelAfter` time of 24 hours in the future: {% tabs %} {% tab label="JavaScript" %} + ```js const rippleOffset = 946684800 -const CancelAfter = Math.floor(Date.now() / 1000) + (24*60*60) - rippleOffset +const CancelAfter = Math.floor(Date.now() / 1000) + 24 * 60 * 60 - rippleOffset console.log(CancelAfter) // Example: 556927412 ``` + {% /tab %} {% tab label="Python 2/3" %} + ```python from time import time ripple_offset = 946684800 @@ -84,6 +91,7 @@ cancel_after = int(time()) + (24*60*60) - 946684800 print(cancel_after) # Example: 556927412 ``` + {% /tab %} {% /tabs %} @@ -94,7 +102,7 @@ print(cancel_after) [Sign and submit](../../../../concepts/transactions/index.md#signing-and-submitting-transactions) an [EscrowCreate transaction][]. Set the `Condition` field of the transaction to the time when the held payment should be released. Set the `Destination` to the recipient, which can be the same address as the sender. Include the `CancelAfter` or `FinishAfter` time you calculated in the previous step. Set the `Amount` to the total amount of [XRP, in drops][], to escrow. -{% partial file="/docs/_snippets/secret-key-warning.md" /%} +{% partial file="/docs/_snippets/secret-key-warning.md" /%} {% tabs %} @@ -118,7 +126,7 @@ Response: ## 4. Wait for validation -{% raw-partial file="/docs/_snippets/wait-for-validation.md" /%} +{% raw-partial file="/docs/_snippets/wait-for-validation.md" /%} ## 5. Confirm that the escrow was created @@ -152,7 +160,7 @@ Response: If the escrow has expired, you can only [cancel the escrow](cancel-an-expired-escrow.md) instead. -{% partial file="/docs/_snippets/secret-key-warning.md" /%} +{% partial file="/docs/_snippets/secret-key-warning.md" /%} {% tabs %} @@ -178,7 +186,7 @@ Take note of the transaction's identifying `hash` value so you can check its fin ## 7. Wait for validation -{% raw-partial file="/docs/_snippets/wait-for-validation.md" /%} +{% raw-partial file="/docs/_snippets/wait-for-validation.md" /%} ## 8. Confirm final result @@ -192,25 +200,23 @@ Response: {% code-snippet file="/_api-examples/escrow/websocket/tx-response-escrowfinish-condition.json" language="json" /%} - - ## See Also - [Crypto-Conditions Specification][] - **Concepts:** - - [What is XRP?](../../../../introduction/what-is-xrp.md) - - [Payment Types](../../../../concepts/payment-types/index.md) - - [Escrow](../../../../concepts/payment-types/escrow.md) + - [What is XRP?](../../../../introduction/what-is-xrp.md) + - [Payment Types](../../../../concepts/payment-types/index.md) + - [Escrow](../../../../concepts/payment-types/escrow.md) - **Tutorials:** - - [Send XRP](../../send-xrp.md) - - [Look Up Transaction Results](../../../../concepts/transactions/finality-of-results/look-up-transaction-results.md) - - [Reliable Transaction Submission](../../../../concepts/transactions/reliable-transaction-submission.md) + - [Send XRP](../../send-xrp.md) + - [Look Up Transaction Results](../../../../concepts/transactions/finality-of-results/look-up-transaction-results.md) + - [Reliable Transaction Submission](../../../../concepts/transactions/reliable-transaction-submission.md) - **References:** - - [EscrowCancel transaction][] - - [EscrowCreate transaction][] - - [EscrowFinish transaction][] - - [account_objects method][] - - [tx method][] - - [Escrow ledger object](../../../../references/protocol/ledger-data/ledger-entry-types/escrow.md) + - [EscrowCancel transaction][] + - [EscrowCreate transaction][] + - [EscrowFinish transaction][] + - [account_objects method][] + - [tx method][] + - [Escrow ledger object](../../../../references/protocol/ledger-data/ledger-entry-types/escrow.md) {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/send-a-time-held-escrow.md b/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/send-a-time-held-escrow.md index 3f82e9c66e..5706ee6822 100644 --- a/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/send-a-time-held-escrow.md +++ b/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/send-a-time-held-escrow.md @@ -2,11 +2,12 @@ html: send-a-time-held-escrow.html parent: use-escrows.html seo: - description: Create an escrow whose only condition for release is that a specific time has passed. + description: Create an escrow whose only condition for release is that a specific time has passed. labels: - Escrow - Smart Contracts --- + # Send a Time-Held Escrow The [EscrowCreate transaction][] type can create an escrow whose only condition for release is that a specific time has passed. To do this, use the `FinishAfter` field and omit the `Condition` field. @@ -18,16 +19,19 @@ You must specify the time as whole **[seconds since the Ripple Epoch][]**, which {% tabs %} {% tab label="JavaScript" %} + ```js // JavaScript Date() is natively expressed in milliseconds; convert to seconds -const release_date_unix = Math.floor( new Date("2017-11-13T00:00:00Z") / 1000 ); -const release_date_ripple = release_date_unix - 946684800; -console.log(release_date_ripple); +const release_date_unix = Math.floor(new Date('2017-11-13T00:00:00Z') / 1000) +const release_date_ripple = release_date_unix - 946684800 +console.log(release_date_ripple) // 563846400 ``` + {% /tab %} {% tab label="Python 3" %} + ```python import datetime release_date_utc = datetime.datetime(2017,11,13,0,0,0,tzinfo=datetime.timezone.utc) @@ -35,6 +39,7 @@ release_date_ripple = int(release_date_utc.timestamp()) - 946684800 print(release_date_ripple) # 563846400 ``` + {% /tab %} {% /tabs %} @@ -45,8 +50,7 @@ print(release_date_ripple) [Sign and submit](../../../../concepts/transactions/index.md#signing-and-submitting-transactions) an [EscrowCreate transaction][]. Set the `FinishAfter` field of the transaction to the time when the held payment should be released. Omit the `Condition` field to make time the only condition for releasing the held payment. Set the `Destination` to the recipient, which may be the same address as the sender. Set the `Amount` to the total amount of [XRP, in drops][], to escrow. -{% partial file="/docs/_snippets/secret-key-warning.md" /%} - +{% partial file="/docs/_snippets/secret-key-warning.md" /%} {% tabs %} @@ -123,7 +127,6 @@ Response: {% /tabs %} - ## 6. Submit EscrowFinish transaction [Sign and submit](../../../../concepts/transactions/index.md#signing-and-submitting-transactions) an [EscrowFinish transaction][] to execute the release of the funds after the `FinishAfter` time has passed. Set the `Owner` field of the transaction to the `Account` address from the EscrowCreate transaction, and the `OfferSequence` to the `Sequence` number from the EscrowCreate transaction. For an escrow held only by time, omit the `Condition` and `Fulfillment` fields. @@ -134,7 +137,7 @@ The EscrowFinish transaction is necessary because the XRP Ledger's state can onl If the escrow has expired, you can only [cancel the escrow](cancel-an-expired-escrow.md) instead. -{% partial file="/docs/_snippets/secret-key-warning.md" /%} +{% partial file="/docs/_snippets/secret-key-warning.md" /%} {% tabs %} @@ -160,7 +163,7 @@ Take note of the transaction's identifying `hash` value so you can check its fin ## 7. Wait for validation -{% raw-partial file="/docs/_snippets/wait-for-validation.md" /%} +{% raw-partial file="/docs/_snippets/wait-for-validation.md" /%} ## 8. Confirm final result @@ -186,23 +189,22 @@ Response: {% /tabs %} - ## See Also - **Concepts:** - - [What is XRP?](../../../../introduction/what-is-xrp.md) - - [Payment Types](../../../../concepts/payment-types/index.md) - - [Escrow](../../../../concepts/payment-types/escrow.md) + - [What is XRP?](../../../../introduction/what-is-xrp.md) + - [Payment Types](../../../../concepts/payment-types/index.md) + - [Escrow](../../../../concepts/payment-types/escrow.md) - **Tutorials:** - - [Send XRP](../../send-xrp.md) - - [Look Up Transaction Results](../../../../concepts/transactions/finality-of-results/look-up-transaction-results.md) - - [Reliable Transaction Submission](../../../../concepts/transactions/reliable-transaction-submission.md) + - [Send XRP](../../send-xrp.md) + - [Look Up Transaction Results](../../../../concepts/transactions/finality-of-results/look-up-transaction-results.md) + - [Reliable Transaction Submission](../../../../concepts/transactions/reliable-transaction-submission.md) - **References:** - - [EscrowCancel transaction][] - - [EscrowCreate transaction][] - - [EscrowFinish transaction][] - - [account_objects method][] - - [tx method][] - - [Escrow ledger object](../../../../references/protocol/ledger-data/ledger-entry-types/escrow.md) + - [EscrowCancel transaction][] + - [EscrowCreate transaction][] + - [EscrowFinish transaction][] + - [account_objects method][] + - [tx method][] + - [Escrow ledger object](../../../../references/protocol/ledger-data/ledger-entry-types/escrow.md) {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/use-an-escrow-as-a-smart-contract.md b/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/use-an-escrow-as-a-smart-contract.md index f9a67e4911..b769a49f6c 100644 --- a/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/use-an-escrow-as-a-smart-contract.md +++ b/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/use-an-escrow-as-a-smart-contract.md @@ -2,11 +2,12 @@ html: use-an-escrow-as-a-smart-contract.html parent: use-escrows.html seo: - description: Use a cryptographic escrow as a smart contract to ensure a recipient gets paid only if they successfully perform a service. + description: Use a cryptographic escrow as a smart contract to ensure a recipient gets paid only if they successfully perform a service. labels: - Escrow - Smart Contracts --- + # Use an Escrow as a Smart Contract A smart contract is a blockchain-based program that encodes the conditions and fulfillment of an agreement between two or more parties and automatically fulfills the terms of the agreement once conditions are met. A smart contract can help you exchange anything of value in a transparent, traceable, tamper-resistant, and irreversible way. @@ -23,7 +24,6 @@ Using an XRP Ledger escrow to provide this smart contract is a great arrangement Here’s a roadmap to the high-level tasks that these participants need to complete to use an escrow as a smart contract. - ## Meet the prerequisites The party host (sender) must have: @@ -48,47 +48,41 @@ The party planner (oracle) must have: - The ability to recognize whether the party band has fulfilled their end of the contract (played at the party). - - - ## Define the terms of the smart contract To create the escrow as a smart contract, the participants must first define the terms of the contract. In this scenario, the participants need to agree on the following details. - **Should the escrow disallow fulfillment until a specific time?** - ``` - While this is an option, the participants agree that it is unnecessary for their escrow. For conditionally-held escrows, enabling this option doesn't provide any additional security, since whether the escrow can be finished still depends entirely on whether the party planner (oracle) publishes the fulfillment before the expiration. - ``` + ``` + While this is an option, the participants agree that it is unnecessary for their escrow. For conditionally-held escrows, enabling this option doesn't provide any additional security, since whether the escrow can be finished still depends entirely on whether the party planner (oracle) publishes the fulfillment before the expiration. + ``` - **Should the escrow expire?** - ``` - Absolutely yes. The participants agree that the escrow should expire after 12 noon the day after the party. This gives the party band (receiver) enough time to finish the escrow, after the party planner verifies that they fulfilled their end of the contract and publishes the cryptographic fulfillment. After expiration, the locked XRP returns to the party host's (sender's) account. + ``` + Absolutely yes. The participants agree that the escrow should expire after 12 noon the day after the party. This gives the party band (receiver) enough time to finish the escrow, after the party planner verifies that they fulfilled their end of the contract and publishes the cryptographic fulfillment. After expiration, the locked XRP returns to the party host's (sender's) account. - If the participants don't allow the escrow to expire and the party planner doesn't release the condition, the XRP stays locked in the escrow forever. - ``` + If the participants don't allow the escrow to expire and the party planner doesn't release the condition, the XRP stays locked in the escrow forever. + ``` - **How much XRP should the escrow lock up and potentially pay?** - ``` - The participants agree that the escrow should lock up and potentially pay 2000 XRP, which is the party band's fee. - ``` + ``` + The participants agree that the escrow should lock up and potentially pay 2000 XRP, which is the party band's fee. + ``` - **From which XRP Ledger account should the escrow lock up XRP for potential payment to the party band?** - ``` - The participants agree that the escrow should lock up and potentially pay XRP out of the party host's XRP Ledger account. - ``` + ``` + The participants agree that the escrow should lock up and potentially pay XRP out of the party host's XRP Ledger account. + ``` - **Which XRP Ledger account should the escrow potentially pay XRP to?** - ``` - The participants agree that the escrow should potentially pay XRP to the party band's XRP Ledger account. - ``` - - - + ``` + The participants agree that the escrow should potentially pay XRP to the party band's XRP Ledger account. + ``` ## Oracle: Generate a condition and a fulfillment @@ -100,23 +94,18 @@ The party planner must keep the fulfillment value a secret. Anyone can use the c [Generate a condition and a fulfillment >](send-a-conditionally-held-escrow.md#1-generate-condition-and-fulfillment) - ## Sender: Calculate time values needed for the escrow Because the participants want the escrow to be eligible for cancellation after 12 noon the day after the party, the party host (sender) must calculate a `CancelAfter` value to include in the escrow definition. [Calculate time values needed for the escrow >](send-a-conditionally-held-escrow.md#2-calculate-release-or-cancel-time) - - ## Sender: Create the escrow The party host (sender) creates the escrow that provides the smart contract. The party host must create the escrow because they are the only participant that can authorize the lock up and potential payout of XRP from their XRP Ledger account. [Create the escrow >](send-a-conditionally-held-escrow.md#3-submit-escrowcreate-transaction) - - ## Sender and Receiver: Wait for validation and confirm escrow creation The party host (sender) waits for validation of the ledger that contains the escrow creation transaction and then confirms that the escrow was created. @@ -127,8 +116,6 @@ The party host then provides the escrow transaction's `hash` value to the party [confirm escrow creation >](send-a-conditionally-held-escrow.md#5-confirm-that-the-escrow-was-created) - - ## Receiver: Finish the escrow The party band (receiver) shows up and plays their set. @@ -141,8 +128,6 @@ If the party planner does not publish the fulfillment (the party band is a no sh [Finish the escrow >](send-a-conditionally-held-escrow.md#6-submit-escrowfinish-transaction) - - ## Receiver and Sender: Wait for validation and confirm final result The party band (receiver) waits for validation of the ledger that contains the escrow finish transaction and then confirms that the escrow was finished. diff --git a/docs/tutorials/how-tos/use-specialized-payment-types/use-payment-channels/index.md b/docs/tutorials/how-tos/use-specialized-payment-types/use-payment-channels/index.md index df49b332eb..149ac40d40 100644 --- a/docs/tutorials/how-tos/use-specialized-payment-types/use-payment-channels/index.md +++ b/docs/tutorials/how-tos/use-specialized-payment-types/use-payment-channels/index.md @@ -2,11 +2,12 @@ html: use-payment-channels.html parent: use-specialized-payment-types.html seo: - description: Payment Channels are an advanced feature for sending "asynchronous" XRP payments that can be divided into very small increments and settled later. This tutorial walks through the entire process of using a payment channel, with examples using the JSON-RPC API of a local rippled server. + description: Payment Channels are an advanced feature for sending "asynchronous" XRP payments that can be divided into very small increments and settled later. This tutorial walks through the entire process of using a payment channel, with examples using the JSON-RPC API of a local rippled server. labels: - Payment Channels - Smart Contracts --- + # Use Payment Channels [Payment Channels](../../../../concepts/payment-types/payment-channels.md) are an advanced feature for sending "asynchronous" XRP payments that can be divided into very small increments and settled later. This tutorial walks through the entire process of using a payment channel, with examples using the [JSON-RPC API](../../../../references/http-websocket-apis/index.md) of a local [`rippled` server](../../../../concepts/networks-and-servers/index.md). @@ -17,12 +18,12 @@ Ideally, to step through this tutorial, you would have two people, each with the The example addresses used in this tutorial are: -| | | -|--|--| -| **Payer's address** | `rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH` | -| **Public key used for channel (in the XRP Ledger's [base58][] encoded string format)** | `aB44YfzW24VDEJQ2UuLPV2PvqcPCSoLnL7y5M1EzhdW4LnK5xMS3` -| **Public key used for channel (in hex)** | `023693F15967AE357D0327974AD46FE3C127113B1110D6044FD41E723689F81CC6` | -| **Payee's address** | `rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn` | +| | | +| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------- | +| **Payer's address** | `rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH` | +| **Public key used for channel (in the XRP Ledger's [base58][] encoded string format)** | `aB44YfzW24VDEJQ2UuLPV2PvqcPCSoLnL7y5M1EzhdW4LnK5xMS3` | +| **Public key used for channel (in hex)** | `023693F15967AE357D0327974AD46FE3C127113B1110D6044FD41E723689F81CC6` | +| **Payee's address** | `rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn` | {% admonition type="success" name="Tip" %}In this example, the channel's public key is the public key from the payer's master key pair. This is perfectly safe and valid. It is also perfectly safe and valid to use a different key pair, as long as only the payer knows the public and secret keys for that key pair. {% /admonition %} @@ -33,6 +34,7 @@ To test without transferring real XRP, you can use [XRP Ledger Testnet](/resourc You can use any amount of XRP for the payment channels. The example values in this tutorial set aside 100 XRP (`100000000` drops) in a payment channel for at least 1 day. ## Flow Diagram + [flow diagram]: #flow-diagram The following diagram summarizes the lifecycle of a payment channel: @@ -108,6 +110,7 @@ Response: } } ``` + {% /tab %} {% tab label="Javascript" %} @@ -185,8 +188,7 @@ In the response from the JSON-RPC, the payer should look for the following: - In the transaction's `meta` field, confirm that the `TransactionResult` is `tesSUCCESS`. - Confirm that the response has `"validated":true` to indicate the data comes from a validated ledger. (The result `tesSUCCESS` is only [final](../../../../concepts/transactions/finality-of-results/index.md) if it appears in a validated ledger version.) - In the `AffectedNodes` array of the transaction's `meta` field, look for a `CreatedNode` object with the `LedgerEntryType` of `PayChannel`. The `LedgerIndex` field of the `CreatedNode` object indicates the Channel ID. (In the above example, this is a hex string starting with "`5DB0`...") The Channel ID is necessary later to sign claims. - For more information on the PayChannel ledger object type, see [PayChannel ledger object](../../../../references/protocol/ledger-data/ledger-entry-types/paychannel.md). - + For more information on the PayChannel ledger object type, see [PayChannel ledger object](../../../../references/protocol/ledger-data/ledger-entry-types/paychannel.md). ## 2. The payee checks specifics of the payment channel. @@ -242,7 +244,6 @@ The payee should check that the parameters of the payment channel are suitable f Since there can be multiple channels between the same two parties, it is important for the payee to check the qualities of the correct channel. If there is any chance of confusion, the payer should clarify the Channel ID (`channel_id`) of the channel to use. - ## 3. The payer creates one or more signed _claims_ for the XRP in the channel. The amounts of these claims depends on the specific goods or services the payer wants to pay for. @@ -271,24 +272,23 @@ Response: ```json { - "result": { - "signature": "304402204EF0AFB78AC23ED1C472E74F4299C0C21F1B21D07EFC0A3838A420F76D783A400220154FB11B6F54320666E4C36CA7F686C16A3A0456800BBC43746F34AF50290064", - "status": "success" - } + "result": { + "signature": "304402204EF0AFB78AC23ED1C472E74F4299C0C21F1B21D07EFC0A3838A420F76D783A400220154FB11B6F54320666E4C36CA7F686C16A3A0456800BBC43746F34AF50290064", + "status": "success" + } } ``` - ## 4. The payer sends a claim to the payee as payment for goods or services. This communication happens "off-ledger" in any communication system the payer and payee can agree to. You should use secure communications for this, but it's not strictly necessary. Only the payer or payee of a channel can redeem claims against that channel. The exact format of the claim is not important as long as it communicates the following information: -| Field | Example | -|:------------------------|:---------------------------------------------------| -| Channel ID | `5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3` | -| Amount of XRP, in drops | `1000000` | +| Field | Example | +| :---------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Channel ID | `5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3` | +| Amount of XRP, in drops | `1000000` | | Signature | `304402204EF0AFB78AC23ED1C472E74F4299C0C21F1B21D07EFC0A3838A420F76D783A`
    `400220154FB11B6F54320666E4C36CA7F686C16A3A0456800BBC43746F34AF50290064` _(Note: this long string has been broken to fit on one line.)_ | The payee also needs to know the Public Key associated with the channel, which is the same throughout the channel's life. @@ -377,23 +377,21 @@ The payee should check the following: - Confirm that the `expiration` (mutable expiration) of the channel, if present, is not too soon. The payee must redeem claims before this time. - Confirm that the `amount` of the claim is equal or less than the `amount` of the channel. If the `amount` of the claim is higher, the claim cannot be redeemed unless the payer uses a [PaymentChannelFund transaction][] to increase the total amount of XRP available to the channel. - Confirm that the `balance` of the channel matches the amount the payee expects to have already received from the channel. If these do not match up, the payee should double-check the channel's transaction history. Some possible explanations for a mismatch include: - - The payer used a [PaymentChannelClaim][] transaction to deliver XRP from the channel to the payee, but the payee did not notice and record the incoming transaction. - - The payee's records include transactions that are "in flight" or have not yet been included in the latest validated ledger version. The payee can use the [tx method][] to look up the state of individual transactions to check this. - - The `account_channels` request did not specify the correct ledger version. (Use `"ledger_index": "validated"` to get the latest validated ledger version) - - The payee previously redeemed XRP but forgot to record it. - - The payee attempted to redeem XRP and recorded the tentative result, but the transaction's final validated result was not the same and the payee neglected to record the final validated result. - - The `rippled` server the payee queried has lost sync with the rest of the network or is experiencing an unknown bug. Use the [server_info method][] to check the state of the server. (If you can reproduce this situation, please [report an issue](https://github.com/XRPLF/rippled/issues/).) + - The payer used a [PaymentChannelClaim][] transaction to deliver XRP from the channel to the payee, but the payee did not notice and record the incoming transaction. + - The payee's records include transactions that are "in flight" or have not yet been included in the latest validated ledger version. The payee can use the [tx method][] to look up the state of individual transactions to check this. + - The `account_channels` request did not specify the correct ledger version. (Use `"ledger_index": "validated"` to get the latest validated ledger version) + - The payee previously redeemed XRP but forgot to record it. + - The payee attempted to redeem XRP and recorded the tentative result, but the transaction's final validated result was not the same and the payee neglected to record the final validated result. + - The `rippled` server the payee queried has lost sync with the rest of the network or is experiencing an unknown bug. Use the [server_info method][] to check the state of the server. (If you can reproduce this situation, please [report an issue](https://github.com/XRPLF/rippled/issues/).) After confirming both the signature and the current state of the payment channel, the payee has not yet received the XRP, but is certain that he or she _can_ redeem the XRP as long as the transaction to do so is processed before the channel expires. - ## 6. Payee provides goods or services. At this point, the payee can provide goods and services to the payer, knowing that payment is already assured. For purposes of this tutorial, the payee can give the payer a high-five or equivalent online message as the "goods and services". - ## 7. Repeat steps 3-6 as desired. The payer and payee can repeat steps 3 through 6 (creating, transmitting, and verifying claims in exchange for goods and services) as many times and as often as they like without waiting for the XRP Ledger itself. The two main limits of this process are: @@ -402,7 +400,6 @@ The payer and payee can repeat steps 3 through 6 (creating, transmitting, and ve - The immutable expiration of the payment channel, if one is set. (The `cancel_after` field in the response to the [account_channels method][] shows this.) - ## 8. When ready, the payee redeems a claim for the authorized amount. This is the point where the payee finally receives some XRP from the channel. @@ -470,6 +467,7 @@ Response: } } ``` + {% /tab %} {% tab label="Javascript" %} @@ -500,17 +498,19 @@ Example of [submitting a transaction](../../../../references/http-websocket-apis ```json { - "method": "submit", - "params": [{ - "secret": "s████████████████████████████", - "tx_json": { - "Account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", - "TransactionType": "PaymentChannelClaim", - "Channel": "5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3", - "Flags": 2147614720 - }, - "fee_mult_max": 1000 - }] + "method": "submit", + "params": [ + { + "secret": "s████████████████████████████", + "tx_json": { + "Account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", + "TransactionType": "PaymentChannelClaim", + "Channel": "5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3", + "Flags": 2147614720 + }, + "fee_mult_max": 1000 + } + ] } ``` @@ -520,24 +520,24 @@ Example `account_channels` response: ```json { - "result": { + "result": { + "account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", + "channels": [ + { "account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", - "channels": [ - { - "account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", - "amount": "100000000", - "balance": "1000000", - "channel_id": "5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3", - "destination_account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "destination_tag": 20170428, - "expiration": 547073182, - "public_key": "aB44YfzW24VDEJQ2UuLPV2PvqcPCSoLnL7y5M1EzhdW4LnK5xMS3", - "public_key_hex": "023693F15967AE357D0327974AD46FE3C127113B1110D6044FD41E723689F81CC6", - "settle_delay": 86400 - } - ], - "status": "success" - } + "amount": "100000000", + "balance": "1000000", + "channel_id": "5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3", + "destination_account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "destination_tag": 20170428, + "expiration": 547073182, + "public_key": "aB44YfzW24VDEJQ2UuLPV2PvqcPCSoLnL7y5M1EzhdW4LnK5xMS3", + "public_key_hex": "023693F15967AE357D0327974AD46FE3C127113B1110D6044FD41E723689F81CC6", + "settle_delay": 86400 + } + ], + "status": "success" + } } ``` @@ -557,17 +557,19 @@ Example of [submitting](../../../../references/http-websocket-apis/public-api-me ```json { - "method": "submit", - "params": [{ - "secret": "s████████████████████████████", - "tx_json": { - "Account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", - "TransactionType": "PaymentChannelClaim", - "Channel": "5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3", - "Flags": 2147614720 - }, - "fee_mult_max": 1000 - }] + "method": "submit", + "params": [ + { + "secret": "s████████████████████████████", + "tx_json": { + "Account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", + "TransactionType": "PaymentChannelClaim", + "Channel": "5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3", + "Flags": 2147614720 + }, + "fee_mult_max": 1000 + } + ] } ``` @@ -577,87 +579,87 @@ Example response from using the [tx method][] to look up the transaction from th ```json { - "result": { - "Account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", - "Channel": "5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3", - "Fee": "5606", - "Flags": 2147614720, - "Sequence": 41, - "SigningPubKey": "023693F15967AE357D0327974AD46FE3C127113B1110D6044FD41E723689F81CC6", - "TransactionType": "PaymentChannelClaim", - "TxnSignature": "3044022008922FEB6F7D35D42006685BCBB007103D2A40AFAA69A7CFC10DF529F94BB6A402205D67816F50BBAEE0A2709AA3A93707304EC21133550FD2FF7436AD0C3CA6CE27", - "date": 547091262, - "hash": "9C0CAAC3DD1A74461132DA4451F9E53BDF4C93DFDBEFCE1B10021EC569013B33", - "inLedger": 29480670, - "ledger_index": 29480670, - "meta": { - "AffectedNodes": [ - { - "ModifiedNode": { - "LedgerEntryType": "AccountRoot", - "LedgerIndex": "13F1A95D7AAB7108D5CE7EEAF504B2894B8C674E6D68499076441C4837282BF8", - "PreviousTxnID": "C9FE08FC88CF76C3B06622ADAA47AE99CABB3380E4D195E7751274CFD87910EB", - "PreviousTxnLgrSeq": 29385089 - } - }, - { - "DeletedNode": { - "FinalFields": { - "Account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", - "Amount": "100000000", - "Balance": "1000000", - "Destination": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "DestinationTag": 20170428, - "Expiration": 547073182, - "Flags": 0, - "OwnerNode": "0000000000000000", - "PreviousTxnID": "C5C70B2BCC515165B7F62ACC8126F8F8B655EB6E1D949A49B2358262BDA986B4", - "PreviousTxnLgrSeq": 29451256, - "PublicKey": "023693F15967AE357D0327974AD46FE3C127113B1110D6044FD41E723689F81CC6", - "SettleDelay": 86400 - }, - "LedgerEntryType": "PayChannel", - "LedgerIndex": "5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3" - } - }, - { - "ModifiedNode": { - "FinalFields": { - "Account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", - "Balance": "1041862844", - "Flags": 0, - "OwnerCount": 2, - "Sequence": 42 - }, - "LedgerEntryType": "AccountRoot", - "LedgerIndex": "B1CB040A17F9469BC00376EC8719535655824AD16CB5F539DD5765FEA88FDBE3", - "PreviousFields": { - "Balance": "942868450", - "OwnerCount": 3, - "Sequence": 41 - }, - "PreviousTxnID": "C5C70B2BCC515165B7F62ACC8126F8F8B655EB6E1D949A49B2358262BDA986B4", - "PreviousTxnLgrSeq": 29451256 - } - }, - { - "ModifiedNode": { - "FinalFields": { - "Flags": 0, - "Owner": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", - "RootIndex": "E590FC40B4F24D18341569BD3702A2D4E07E7BC04D11CE63608B67979E67030C" - }, - "LedgerEntryType": "DirectoryNode", - "LedgerIndex": "E590FC40B4F24D18341569BD3702A2D4E07E7BC04D11CE63608B67979E67030C" - } - } - ], - "TransactionIndex": 7, - "TransactionResult": "tesSUCCESS" + "result": { + "Account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", + "Channel": "5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3", + "Fee": "5606", + "Flags": 2147614720, + "Sequence": 41, + "SigningPubKey": "023693F15967AE357D0327974AD46FE3C127113B1110D6044FD41E723689F81CC6", + "TransactionType": "PaymentChannelClaim", + "TxnSignature": "3044022008922FEB6F7D35D42006685BCBB007103D2A40AFAA69A7CFC10DF529F94BB6A402205D67816F50BBAEE0A2709AA3A93707304EC21133550FD2FF7436AD0C3CA6CE27", + "date": 547091262, + "hash": "9C0CAAC3DD1A74461132DA4451F9E53BDF4C93DFDBEFCE1B10021EC569013B33", + "inLedger": 29480670, + "ledger_index": 29480670, + "meta": { + "AffectedNodes": [ + { + "ModifiedNode": { + "LedgerEntryType": "AccountRoot", + "LedgerIndex": "13F1A95D7AAB7108D5CE7EEAF504B2894B8C674E6D68499076441C4837282BF8", + "PreviousTxnID": "C9FE08FC88CF76C3B06622ADAA47AE99CABB3380E4D195E7751274CFD87910EB", + "PreviousTxnLgrSeq": 29385089 + } }, - "status": "success", - "validated": true - } + { + "DeletedNode": { + "FinalFields": { + "Account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", + "Amount": "100000000", + "Balance": "1000000", + "Destination": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "DestinationTag": 20170428, + "Expiration": 547073182, + "Flags": 0, + "OwnerNode": "0000000000000000", + "PreviousTxnID": "C5C70B2BCC515165B7F62ACC8126F8F8B655EB6E1D949A49B2358262BDA986B4", + "PreviousTxnLgrSeq": 29451256, + "PublicKey": "023693F15967AE357D0327974AD46FE3C127113B1110D6044FD41E723689F81CC6", + "SettleDelay": 86400 + }, + "LedgerEntryType": "PayChannel", + "LedgerIndex": "5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3" + } + }, + { + "ModifiedNode": { + "FinalFields": { + "Account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", + "Balance": "1041862844", + "Flags": 0, + "OwnerCount": 2, + "Sequence": 42 + }, + "LedgerEntryType": "AccountRoot", + "LedgerIndex": "B1CB040A17F9469BC00376EC8719535655824AD16CB5F539DD5765FEA88FDBE3", + "PreviousFields": { + "Balance": "942868450", + "OwnerCount": 3, + "Sequence": 41 + }, + "PreviousTxnID": "C5C70B2BCC515165B7F62ACC8126F8F8B655EB6E1D949A49B2358262BDA986B4", + "PreviousTxnLgrSeq": 29451256 + } + }, + { + "ModifiedNode": { + "FinalFields": { + "Flags": 0, + "Owner": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", + "RootIndex": "E590FC40B4F24D18341569BD3702A2D4E07E7BC04D11CE63608B67979E67030C" + }, + "LedgerEntryType": "DirectoryNode", + "LedgerIndex": "E590FC40B4F24D18341569BD3702A2D4E07E7BC04D11CE63608B67979E67030C" + } + } + ], + "TransactionIndex": 7, + "TransactionResult": "tesSUCCESS" + }, + "status": "success", + "validated": true + } } ``` @@ -668,7 +670,6 @@ In the transaction's metadata, look for the following: Those fields indicate that the payment channel is closed. - ## Conclusion This concludes the tutorial of Payment Channel usage. Ripple encourages users to find unique and interesting use cases to take full advantage of the speed and convenience of payment channels. @@ -676,19 +677,19 @@ This concludes the tutorial of Payment Channel usage. Ripple encourages users to ## See Also - **Concepts:** - - [What is XRP?](../../../../introduction/what-is-xrp.md) - - [Payment Types](../../../../concepts/payment-types/index.md) - - [Payment Channels](../../../../concepts/payment-types/payment-channels.md) + - [What is XRP?](../../../../introduction/what-is-xrp.md) + - [Payment Types](../../../../concepts/payment-types/index.md) + - [Payment Channels](../../../../concepts/payment-types/payment-channels.md) - **Tutorials:** - - [Send XRP](../../send-xrp.md) - - [Look Up Transaction Results](../../../../concepts/transactions/finality-of-results/look-up-transaction-results.md) - - [Reliable Transaction Submission](../../../../concepts/transactions/reliable-transaction-submission.md) + - [Send XRP](../../send-xrp.md) + - [Look Up Transaction Results](../../../../concepts/transactions/finality-of-results/look-up-transaction-results.md) + - [Reliable Transaction Submission](../../../../concepts/transactions/reliable-transaction-submission.md) - **References:** - - [PaymentChannelClaim transaction][] - - [PaymentChannelCreate transaction][] - - [PaymentChannelFund transaction][] - - [channel_authorize method][] - - [channel_verify method][] - - [PayChannel ledger object](../../../../references/protocol/ledger-data/ledger-entry-types/paychannel.md) + - [PaymentChannelClaim transaction][] + - [PaymentChannelCreate transaction][] + - [PaymentChannelFund transaction][] + - [channel_authorize method][] + - [channel_verify method][] + - [PayChannel ledger object](../../../../references/protocol/ledger-data/ledger-entry-types/paychannel.md) {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/tutorials/how-tos/use-specialized-payment-types/use-payment-channels/open-a-payment-channel-to-enable-an-inter-exchange-network.md b/docs/tutorials/how-tos/use-specialized-payment-types/use-payment-channels/open-a-payment-channel-to-enable-an-inter-exchange-network.md index 9556f9aca0..ba0b683a06 100644 --- a/docs/tutorials/how-tos/use-specialized-payment-types/use-payment-channels/open-a-payment-channel-to-enable-an-inter-exchange-network.md +++ b/docs/tutorials/how-tos/use-specialized-payment-types/use-payment-channels/open-a-payment-channel-to-enable-an-inter-exchange-network.md @@ -2,52 +2,45 @@ html: open-a-payment-channel-to-enable-an-inter-exchange-network.html parent: use-payment-channels.html seo: - description: As a digital asset exchange, use a payment channel to make more payments faster with fewer fees. + description: As a digital asset exchange, use a payment channel to make more payments faster with fewer fees. labels: - Payment Channels --- + # Open a Payment Channel to Enable an Inter-Exchange Network A payment channel enables you to send one-way, "asynchronous" XRP payments that can be divided into very small increments and settled later. As a digital asset exchange, if you send many payments of XRP to another exchange, you can improve the efficiency of these payments by opening an XRP Ledger [payment channel](../../../../concepts/payment-types/payment-channels.md) between your exchange (the _payer_ exchange) and the other exchange (the _payee_ exchange). In the case of a two-way flow with another exchange, you can open two payment channels (one for each direction). - - ## Why Send XRP to Other Exchanges? The need to send XRP from your exchange to another exchange may originate with your customers withdrawing XRP from your exchange and depositing it to the other exchange. If you are a large exchange, you probably have many customers moving XRP from your exchange into another exchange. You may be processing XRP payments all day long and for each payment, you are waiting for confirmation times, potentially at both ends of the transaction, as well as paying transaction costs. - - ## Benefits of Using a Payment Channel Here are some of the benefits of using a payment channel to send XRP instead of using individual payment transactions: - **Process withdrawals faster:** A standard payment transaction involves submitting an XRP Ledger transaction and waiting for a new ledger version that includes the transaction to be approved by [consensus](../../../../concepts/consensus-protocol/index.md). When you use a payment channel to send XRP, creation and verification of a claim, which guarantees the payment of XRP, all happen outside of the consensus process. This means that the payer exchange can guarantee XRP payments to the payee exchange at a rate limited only by the participants' ability to create and verify the digital signatures of the claims. - ``` - For your customers who are moving XRP to take advantage of arbitrage opportunities or to do algorithmic trading, speed matters. Enabling a customer to move XRP and start trading in an instant is a compelling differentiator for your exchange. - ``` + ``` + For your customers who are moving XRP to take advantage of arbitrage opportunities or to do algorithmic trading, speed matters. Enabling a customer to move XRP and start trading in an instant is a compelling differentiator for your exchange. + ``` - **Connect to the Internet of Value:** One of the key requirements of the [Internet of Value](https://ripple.com/insights/the-internet-of-value-what-it-means-and-how-it-benefits-everyone/) is interoperability. The [Interledger Protocol](https://interledger.org/) (ILP), which plays a large role in driving this interoperability, works best when it [uses payment channels](https://interledger.org/rfcs/0027-interledger-protocol-4) as its method for rebalancing accounts. In effect, when you open a payment channel from your exchange to another, you are connecting to the Internet of Value and helping to create the inter-exchange network that is fundamental to the success of the Internet of Value and the apps that are built on it. - ``` - Connecting your exchange to other exchanges by way of payment channels is another differentiator. For customers who are moving XRP to buy various currencies across exchanges, knowing that they can move XRP at a moment's notice from your exchange to any number of exchanges in the Internet of Value can make your exchange a preferred place to custody their assets. - ``` + ``` + Connecting your exchange to other exchanges by way of payment channels is another differentiator. For customers who are moving XRP to buy various currencies across exchanges, knowing that they can move XRP at a moment's notice from your exchange to any number of exchanges in the Internet of Value can make your exchange a preferred place to custody their assets. + ``` Here’s a roadmap to the high-level tasks you’ll need to perform to implement this payment channel use case. To go directly to a full payment channels tutorial, see [Use Payment Channels](index.md). - - ## Understand payment channels Learn more about payment channels and whether they provide the features you need for your specific implementation. [Understand payment channels >](../../../../concepts/payment-types/payment-channels.md) - - ## Payer and payee: Set up and run `rippled` servers To use a payment channel to send and receive XRP, both the payer and payee exchanges must each have access to a `rippled` server that they can use to send transactions. If your exchange processes XRP withdrawals directly, you are probably already running a `rippled` server that you can use for this purpose. @@ -56,8 +49,6 @@ If not, a great way for an exchange to get access to a `rippled` server is to se [Set up and run rippled servers >](../../../../infrastructure/installation/install-rippled-on-ubuntu.md) - - ## Payer and payee: Fund XRP Ledger accounts with enough XRP If your exchange processes XRP deposits and withdrawals directly, you probably have existing funded XRP Ledger accounts that you can use for this purpose. Ensure that they are funded with enough XRP as described here. @@ -66,27 +57,26 @@ Along these lines, there's a good chance that you are following industry best pr - The payer exchange must have a funded XRP Ledger account to be used to send XRP to the payee exchange. - ``` - Aside from the [base reserve](../../../../concepts/accounts/reserves.md) ({% $env.PUBLIC_BASE_RESERVE %}) and the [owner reserve](../../../../concepts/accounts/reserves.md#owner-reserves) of a payment channel ({% $env.PUBLIC_OWNER_RESERVE %}), the account must also be able to set aside enough XRP in the payment channel to cover the intended number of transactions. + ``` + Aside from the [base reserve](../../../../concepts/accounts/reserves.md) ({% $env.PUBLIC_BASE_RESERVE %}) and the [owner reserve](../../../../concepts/accounts/reserves.md#owner-reserves) of a payment channel ({% $env.PUBLIC_OWNER_RESERVE %}), the account must also be able to set aside enough XRP in the payment channel to cover the intended number of transactions. - The payer exchange can always top-off the channel using the [PaymentChannelFund](../../../../references/protocol/transactions/types/paymentchannelfund.md) transaction if it runs out of XRP. However, topping-off requires an actual on-ledger transaction and confirmation, so it could take 4-5 seconds of processing time and ~10 drops of XRP to complete the top-off transaction. The more XRP the payer exchange pre-funds, the less often they need to top-off, so they can save some time and money by pre-funding more XRP. + The payer exchange can always top-off the channel using the [PaymentChannelFund](../../../../references/protocol/transactions/types/paymentchannelfund.md) transaction if it runs out of XRP. However, topping-off requires an actual on-ledger transaction and confirmation, so it could take 4-5 seconds of processing time and ~10 drops of XRP to complete the top-off transaction. The more XRP the payer exchange pre-funds, the less often they need to top-off, so they can save some time and money by pre-funding more XRP. - However, if the payer exchange puts in more XRP than they need, they need to [close the payment channel](index.md#9-when-the-payer-and-payee-are-done-doing-business-the-payer-requests-for-the-channel-to-be-closed) to get the XRP back. This means waiting out the following events: + However, if the payer exchange puts in more XRP than they need, they need to [close the payment channel](index.md#9-when-the-payer-and-payee-are-done-doing-business-the-payer-requests-for-the-channel-to-be-closed) to get the XRP back. This means waiting out the following events: - 1. Completion of the payer's request to start closing the payment channel. - 2. Passage of the `SettleDelay` time set for the payment channel. - 3. Completion of a request to finish closing the payment channel after the `SettleDelay` has passed. - ``` + 1. Completion of the payer's request to start closing the payment channel. + 2. Passage of the `SettleDelay` time set for the payment channel. + 3. Completion of a request to finish closing the payment channel after the `SettleDelay` has passed. + ``` - The payee exchange must have a funded XRP Ledger account to be used to redeem (receive) XRP sent by the payer exchange. - ``` - The account needs at least the {% $env.PUBLIC_BASE_RESERVE %} [base reserve](../../../../concepts/accounts/reserves.md), plus enough to pay the transaction costs of redeeming claims, which are trivial. For example, you could redeem thousands of claims for less than 1 XRP in total. - ``` + ``` + The account needs at least the {% $env.PUBLIC_BASE_RESERVE %} [base reserve](../../../../concepts/accounts/reserves.md), plus enough to pay the transaction costs of redeeming claims, which are trivial. For example, you could redeem thousands of claims for less than 1 XRP in total. + ``` [Fund XRP Ledger accounts with enough XRP >](../../../../concepts/accounts/index.md) - ## Payer: [Open a payment channel](index.md#1-the-payer-creates-a-payment-channel-to-a-particular-recipient) The payer exchange opens a payment channel from their XRP Ledger account to the payee exchange's XRP Ledger account. Opening a payment channel includes setting certain specifics of the channel, such as its expiration date and the amount it can hold. @@ -103,24 +93,18 @@ If either exchange has multiple hot accounts in the XRP Ledger, the two exchange Since payment channels are unidirectional, you need a second channel in the opposite direction to send XRP from the _payee_ exchange to the _payer_ exchange. This second channel does not need to connect the exact same pair of hot accounts, but it is most convenient to do so. With two unidirectional channels, each exchange can use the XRP it redeems from its incoming channel to refill its outgoing channel. - - - ## Payee: Verify payment channel details The payee exchange reviews the details of the payment channel. [Verify payment channel details >](index.md#2-the-payee-checks-specifics-of-the-payment-channel) - - ## Payer: Create claims The payer exchange creates one or more claims for amounts of XRP that it wants to guarantee to the payee exchange. [Create claims >](index.md#3-the-payer-creates-one-or-more-signed-claims-for-the-xrp-in-the-channel) - ## Payer: Send claim details to the payer exchange After creating a claim, the payer exchange must send details of the claim to the payee exchange, off-ledger. @@ -132,23 +116,22 @@ Consider a series of claims prompted by payer exchange customers withdrawing XRP **Public key**: `023D9BFCC22FB9A997E45ACA0D2D679A6A1AE5589E51546F3EDC4E9B16713FC255` | Sequence | Signature | Amount | Destination Tag | -|:---------|:--------------------|:-------|:----------------| +| :------- | :------------------ | :----- | :-------------- | | 1 | `3045022100CE6E...` | 2000 | 12345678 | | 2 | `304402200C304A...` | 3000 | 23456781 | | 3 | `30450221009849...` | 4000 | 34567812 | -| Claim Information | Purpose | -|:--------------------|:-------------------------------------------------------| -| **Channel ID** | Payment channel the payer exchange used to create the claim. The payee exchange needs this value to verify and redeem the claim. | -| **Public key** | Public key the payer exchange used to open the payment channel. The payee exchange needs this value to verify and redeem the claim. | +| Claim Information | Purpose | +| :------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **Channel ID** | Payment channel the payer exchange used to create the claim. The payee exchange needs this value to verify and redeem the claim. | +| **Public key** | Public key the payer exchange used to open the payment channel. The payee exchange needs this value to verify and redeem the claim. | | **Sequence** | A value that indicates the sequence in which the payer exchange created the claims. The payee exchange needs this value to keep track of and redeem claims in the correct order. For example, if the payer exchange did not provide the sequence value and the payee exchange lost track of the second claim above, the payee exchange might incorrectly credit 2000 XRP to destination tag 34567812. If the payer exchange did provide the sequence value, the payee exchange would know that it needs to account for a claim between claim 1 and claim 3. With claim 2 accounted for, the payee exchange could correctly credit 1000 XRP to destination tag 23456781 and 1000 XRP to destination tag 34567812. | -| **Signature** | Signature of the claim. The payee exchange needs this value to verify and redeem the claim. | -| **Amount** | Cumulative amount of the claims created by the payer exchange. The payee exchange needs this value to verify and redeem the claim. For information about how to calculate the actual amount the payee exchange needs to credit the customer, see [Verify claims](#payee-verify-claims). | -| **Destination Tag** | Destination tag of the customer account on the payee exchange that needs to be credited based on the claim. The payer exchange can get this value from their customer's withdrawal request, which should provide a destination tag for the deposit to the payee exchange. When the payee exchange redeems claims, the XRP is deposited into the payee exchange's XRP Ledger account. The payee exchange can then credit the XRP from the claim to the appropriate customer account based on the destination tag provided. | +| **Signature** | Signature of the claim. The payee exchange needs this value to verify and redeem the claim. | +| **Amount** | Cumulative amount of the claims created by the payer exchange. The payee exchange needs this value to verify and redeem the claim. For information about how to calculate the actual amount the payee exchange needs to credit the customer, see [Verify claims](#payee-verify-claims). | +| **Destination Tag** | Destination tag of the customer account on the payee exchange that needs to be credited based on the claim. The payer exchange can get this value from their customer's withdrawal request, which should provide a destination tag for the deposit to the payee exchange. When the payee exchange redeems claims, the XRP is deposited into the payee exchange's XRP Ledger account. The payee exchange can then credit the XRP from the claim to the appropriate customer account based on the destination tag provided. | [Send claim details to the payer exchange >](index.md#4-the-payer-sends-a-claim-to-the-payee-as-payment-for-goods-or-services) - ## Payee: Verify claims The payee exchange verifies claims sent by the payer exchange. @@ -159,8 +142,6 @@ For example, to know how much to credit a customer for a claim amount of 3000, t [Verify claims >](index.md#5-the-payee-verifies-the-claims) - - ## Payee: Redeem them in batches The payee exchange can redeem batches of claims after verifying them to receive the XRP guaranteed by the payer exchange. Here are some guidelines the payee exchange can use to decide how often to redeem claims: @@ -179,15 +160,12 @@ The payee exchange can redeem batches of claims after verifying them to receive [Redeem them in batches >](index.md#8-when-ready-the-payee-redeems-a-claim-for-the-authorized-amount) - - ## Payer and payee: Continue to use the payment channel Payer and payee exchanges can continue to send, verify, and redeem batches of claims as needed within the parameters set by the payment channel. [Continue to use the payment channel >](index.md#7-repeat-steps-3-6-as-desired) - ## Payer: When it's time, make a request to close the payment channel When the payer exchange and payee exchange are done using the payment channel, the payer exchange can make a request to close the payment channel. diff --git a/docs/tutorials/how-tos/use-tokens/create-an-automated-market-maker.md b/docs/tutorials/how-tos/use-tokens/create-an-automated-market-maker.md index f260fda3b9..ed1cdeb46a 100644 --- a/docs/tutorials/how-tos/use-tokens/create-an-automated-market-maker.md +++ b/docs/tutorials/how-tos/use-tokens/create-an-automated-market-maker.md @@ -1,15 +1,16 @@ --- seo: - description: Set up an Automated Market Maker (AMM) + description: Set up an Automated Market Maker (AMM) embed_xrpl_js: true filters: - interactive_steps labels: - - Decentralized Exchange - - Tokens - - AMM + - Decentralized Exchange + - Tokens + - AMM steps: ['Connect', 'Generate', 'Acquire tokens', 'Check for AMM', 'Look up AMMCreate cost', 'Create AMM', 'Check AMM info', 'Check trust lines'] --- + # Create an Automated Market Maker An [Automated Market Maker (AMM)](../../../concepts/tokens/decentralized-exchange/automated-market-makers.md) can be an efficient way to facilitate exchanges between two assets while earning its liquidity providers passive income. This tutorial shows how to create an AMM for a given asset pair. @@ -24,19 +25,17 @@ An [Automated Market Maker (AMM)](../../../concepts/tokens/decentralized-exchang - You must have an XRP Ledger address and some XRP. For development and testing purposes, you can get these from a [Faucet](/resources/dev-tools/xrp-faucets). - You should be familiar with the Getting Started instructions for your preferred client library. This page provides examples for the following: - - **JavaScript** with the [xrpl.js library](https://github.com/XRPLF/xrpl.js/) **version 2.11.0 or later**. See [Get Started Using JavaScript](../../javascript/build-apps/get-started.md) for setup steps. - - You can also read along and use the interactive steps in your browser without any setup. + - **JavaScript** with the [xrpl.js library](https://github.com/XRPLF/xrpl.js/) **version 2.11.0 or later**. See [Get Started Using JavaScript](../../javascript/build-apps/get-started.md) for setup steps. + - You can also read along and use the interactive steps in your browser without any setup. - You should have a basic understanding of how [tokens](../../../concepts/tokens/index.md) work in the XRP Ledger. - You may want to read about [Automated Market Makers in the XRP Ledger](../../../concepts/tokens/decentralized-exchange/automated-market-makers.md) first. - ## Example Code Complete sample code for all of the steps of these tutorials is available under the [MIT license](https://github.com/XRPLF/xrpl-dev-portal/blob/master/LICENSE). - See [Code Samples: Create an AMM](https://github.com/XRPLF/xrpl-dev-portal/tree/master/_code-samples/create-amm/) in the source repository for this website. - ## Steps ### 1. Connect to the network @@ -71,7 +70,6 @@ When you're building production-ready software, you should use an existing accou {% /tabs %} - ### 3. Select and acquire assets As the creator of an AMM, you are also the first liquidity provider and you have to supply it with a starting pool of assets. Other users of the XRP Ledger can also become liquidity providers by supplying assets after the AMM exists. It's crucial to choose assets carefully because, as a liquidity provider for an AMM, you are supplying some amounts of both for users to swap between. If one of the AMM's assets becomes worthless, other users can use the AMM to trade for the other asset, leaving the AMM (and thus, its liquidity providers including you) holding only the worthless one. Technically, the AMM always holds some positive amount of both assets, but the amounts can be very small. @@ -159,17 +157,16 @@ It is also a good practice to display this value and give a human operator a cha {% /interactive-block %} - ### 6. Send AMMCreate transaction Send an [AMMCreate transaction][] to create the AMM. Important aspects of this transaction include: -| Field | Value | Description | -|-------|--------|-------------| -| `Asset` | [Currency Amount][] | Starting amount of one asset to deposit in the AMM. | -| `Asset2` | [Currency Amount][] | Starting amount of the other asset to deposit in the AMM. | -| `TradingFee` | Number | The fee to charge when trading against this AMM instance. The maximum value is `1000`, meaning a 1% fee; the minimum value is `0`. If you set this too high, it may be too expensive for users to trade against the AMM; but the lower you set it, the more you expose yourself to currency risk from the AMM's assets changing in value relative to one another. | -| `Fee` | String - XRP Amount | The transaction cost you looked up in a previous step. Client libraries may require that you add a special exception or reconfigure a setting to specify a `Fee` value this high. | +| Field | Value | Description | +| ------------ | ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Asset` | [Currency Amount][] | Starting amount of one asset to deposit in the AMM. | +| `Asset2` | [Currency Amount][] | Starting amount of the other asset to deposit in the AMM. | +| `TradingFee` | Number | The fee to charge when trading against this AMM instance. The maximum value is `1000`, meaning a 1% fee; the minimum value is `0`. If you set this too high, it may be too expensive for users to trade against the AMM; but the lower you set it, the more you expose yourself to currency risk from the AMM's assets changing in value relative to one another. | +| `Fee` | String - XRP Amount | The transaction cost you looked up in a previous step. Client libraries may require that you add a special exception or reconfigure a setting to specify a `Fee` value this high. | For the two starting assets, it does not matter which is `Asset` and which is `Asset2`, but you should specify amounts that are about equal in total value, because otherwise other users can profit at your expense by trading against the AMM. @@ -248,7 +245,7 @@ Initially, the AMM's total outstanding LP Tokens, reported in the `lp_token` fie {% /interactive-block %} -### 8. Check trust lines +### 8. Check trust lines You can also use the [account_lines method][] to get an updated view of your token balances. Your balances should be decreased by the amounts you deposited, but you now have a balance of LP Tokens that you received from the AMM. @@ -274,7 +271,6 @@ The `account_lines` response shows only the tokens held by the account you looke {% /interactive-block %} - ## Next Steps At this point the AMM is up and running, and [trades in the DEX](trade-in-the-decentralized-exchange.md) automatically use this AMM in combination with Offers to achieve the best exchange rate possible between the two assets in the AMM's pool. If the flow of funds between the two assets is relatively balanced and there are no major shifts in the value of one asset compared to the other, this can become a source of passive income for you and anyone else who deposits liquidity into the AMM's pool. diff --git a/docs/tutorials/how-tos/use-tokens/enable-no-freeze.md b/docs/tutorials/how-tos/use-tokens/enable-no-freeze.md index 5e68cff85f..ab8c6bef88 100644 --- a/docs/tutorials/how-tos/use-tokens/enable-no-freeze.md +++ b/docs/tutorials/how-tos/use-tokens/enable-no-freeze.md @@ -2,7 +2,7 @@ html: enable-no-freeze.html parent: use-tokens.html seo: - description: Permanently give up your account's ability to freeze tokens it issues. + description: Permanently give up your account's ability to freeze tokens it issues. embed_xrpl_js: true filters: - interactive_steps @@ -10,6 +10,7 @@ labels: - Tokens steps: ['Generate', 'Connect', 'Send AccountSet', 'Wait', 'Confirm Settings'] --- + # Enable No Freeze If you [issue tokens](../../../concepts/tokens/index.md) in the XRP Ledger, can enable the [No Freeze setting](../../../concepts/tokens/fungible-tokens/freezes.md#no-freeze) to permanently limit your own ability to use the token freezing features of the XRP Ledger. (As a reminder, this only applies to issued tokens, not XRP.) This tutorial shows how to enable the No Freeze setting on your issuing account. @@ -18,14 +19,13 @@ If you [issue tokens](../../../concepts/tokens/index.md) in the XRP Ledger, can - You need a connection to the XRP Ledger network. As shown in this tutorial, you can use public servers for testing. - You should be familiar with the Getting Started instructions for your preferred client library. This page provides examples for the following: - - **JavaScript** with the [xrpl.js library](https://github.com/XRPLF/xrpl.js/). See [Get Started Using JavaScript](../../javascript/build-apps/get-started.md) for setup steps. + - **JavaScript** with the [xrpl.js library](https://github.com/XRPLF/xrpl.js/). See [Get Started Using JavaScript](../../javascript/build-apps/get-started.md) for setup steps. - You don't need to have [issued a token](issue-a-fungible-token.md) in the XRP Ledger to enable No Freeze, but the main reason you would do so is if you intend to or have already issued such a token. - ## Example Code Complete sample code for all of the steps of this tutorial is available under the [MIT license](https://github.com/XRPLF/xrpl-dev-portal/blob/master/LICENSE). @@ -46,7 +46,6 @@ For this tutorial, you can get credentials from the following interface: When you're building production-ready software, you should use an existing account, and manage your keys using a [secure signing configuration](../../../concepts/transactions/secure-signing.md). - ### 2. Connect to the Network You must be connected to the network to submit transactions to it. The following code shows how to connect to a public XRP Ledger Testnet server a supported [client library](../../../references/client-libraries.md): @@ -63,7 +62,6 @@ For this tutorial, click the following button to connect: {% partial file="/docs/_snippets/interactive-tutorials/connect-step.md" /%} - ### 3. Send AccountSet Transaction To enable the No Freeze setting, send an [AccountSet transaction][] with a `SetFlag` field containing the [`asfNoFreeze` value (`6`)](../../../references/protocol/transactions/types/accountset.md#accountset-flags). To send the transaction, you first _prepare_ it to fill out all the necessary fields, then _sign_ it with your account's secret key, and finally _submit_ it to the network. @@ -77,6 +75,7 @@ For example: {% /tab %} {% tab label="WebSocket" %} + ```json { "id": 12, @@ -93,11 +92,11 @@ For example: "secret": "s████████████████████████████" } ``` + {% /tab %} {% /tabs %} - {% interactive-block label="Send AccountSet" steps=$frontmatter.steps %} @@ -108,15 +107,12 @@ For example: {% /interactive-block %} - - ### 4. Wait for Validation Most transactions are accepted into the next ledger version after they're submitted, which means it may take 4-7 seconds for a transaction's outcome to be final. If the XRP Ledger is busy or poor network connectivity delays a transaction from being relayed throughout the network, a transaction may take longer to be confirmed. (For information on how to set an expiration for transactions, see [Reliable Transaction Submission](../../../concepts/transactions/reliable-transaction-submission.md).) {% partial file="/docs/_snippets/interactive-tutorials/wait-step.md" /%} - ### 5. Confirm Account Settings After the transaction is validated, you can check your account's settings to confirm that the No Freeze flag is enabled. You can do this by calling the [account_info method][] and checking the value of the account's `Flags` field to see if the [`lsfNoFreeze` bit (`0x00200000`)](../../../references/protocol/ledger-data/ledger-entry-types/accountroot.md#accountroot-flags) is enabled. @@ -128,6 +124,7 @@ After the transaction is validated, you can check your account's settings to con {% /tab %} {% tab label="WebSocket" %} + ```json Request: @@ -168,6 +165,7 @@ Response: } } ``` + {% /tab %} {% /tabs %} @@ -182,21 +180,20 @@ Response: {% /interactive-block %} - ## See Also - **Concepts:** - - [Freezing Issued Currencies](../../../concepts/tokens/fungible-tokens/freezes.md) - - [Trust Lines](../../../concepts/tokens/fungible-tokens/index.md) + - [Freezing Issued Currencies](../../../concepts/tokens/fungible-tokens/freezes.md) + - [Trust Lines](../../../concepts/tokens/fungible-tokens/index.md) - **Tutorials:** - - [Enact Global Freeze](enact-global-freeze.md) - - [Freeze a Trust Line](freeze-a-trust-line.md) + - [Enact Global Freeze](enact-global-freeze.md) + - [Freeze a Trust Line](freeze-a-trust-line.md) - **References:** - - [account_lines method][] - - [account_info method][] - - [AccountSet transaction][] - - [TrustSet transaction][] - - [AccountRoot Flags](../../../references/protocol/ledger-data/ledger-entry-types/accountroot.md#accountroot-flags) - - [RippleState (trust line) Flags](../../../references/protocol/ledger-data/ledger-entry-types/ripplestate.md#ripplestate-flags) + - [account_lines method][] + - [account_info method][] + - [AccountSet transaction][] + - [TrustSet transaction][] + - [AccountRoot Flags](../../../references/protocol/ledger-data/ledger-entry-types/accountroot.md#accountroot-flags) + - [RippleState (trust line) Flags](../../../references/protocol/ledger-data/ledger-entry-types/ripplestate.md#ripplestate-flags) {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/tutorials/how-tos/use-tokens/enact-global-freeze.md b/docs/tutorials/how-tos/use-tokens/enact-global-freeze.md index bdfc455ec1..1e4ed47ac3 100644 --- a/docs/tutorials/how-tos/use-tokens/enact-global-freeze.md +++ b/docs/tutorials/how-tos/use-tokens/enact-global-freeze.md @@ -2,15 +2,26 @@ html: enact-global-freeze.html parent: use-tokens.html seo: - description: Freeze all tokens issued by your address. + description: Freeze all tokens issued by your address. embed_xrpl_js: true filters: - interactive_steps labels: - Tokens - Security -steps: ['Generate', 'Connect', 'Send AccountSet (Start Freeze)', 'Wait', 'Confirm Settings', 'Send AccountSet (End Freeze)', 'Wait (again)', 'Confirm Settings (After Freeze)'] +steps: + [ + 'Generate', + 'Connect', + 'Send AccountSet (Start Freeze)', + 'Wait', + 'Confirm Settings', + 'Send AccountSet (End Freeze)', + 'Wait (again)', + 'Confirm Settings (After Freeze)', + ] --- + # Enact Global Freeze If you [issue tokens](../../../concepts/tokens/index.md) in the XRP Ledger, can enact a [Global Freeze](../../../concepts/tokens/fungible-tokens/freezes.md#global-freeze) to prevent users from sending your tokens to each other and trading your token in the [decentralized exchange](../../../concepts/tokens/decentralized-exchange/index.md). This tutorial shows how to enact and end a Global Freeze. You might want to do this, for example, if you see signs of suspicious activity related to your issuing address in the ledger, or to off-ledger systems you use to manage your token. (For example, if your token is a stablecoin and you process withdrawals and deposits from the ledger, you may want to freeze your token while you investigate if you suspect your systems have been hacked.) You can later disable the Global Freeze setting unless you have also enabled the [No Freeze setting](../../../concepts/tokens/fungible-tokens/freezes.md#no-freeze). @@ -21,7 +32,7 @@ If you [issue tokens](../../../concepts/tokens/index.md) in the XRP Ledger, can - You need a connection to the XRP Ledger network. As shown in this tutorial, you can use public servers for testing. - You should be familiar with the Getting Started instructions for your preferred client library. This page provides examples for the following: - - **JavaScript** with the [xrpl.js library](https://github.com/XRPLF/xrpl.js/). See [Get Started Using JavaScript](../../javascript/build-apps/get-started.md) for setup steps. + - **JavaScript** with the [xrpl.js library](https://github.com/XRPLF/xrpl.js/). See [Get Started Using JavaScript](../../javascript/build-apps/get-started.md) for setup steps. - You don't need to have [issued a token](issue-a-fungible-token.md) in the XRP Ledger to enact a Global Freeze, but the main reason you would do so is if you have already issued such a token. @@ -48,7 +59,6 @@ For this tutorial, you can get credentials from the following interface: When you're building production-ready software, you should use an existing account, and manage your keys using a [secure signing configuration](../../../concepts/transactions/secure-signing.md). - ### 2. Connect to the Network You must be connected to the network to submit transactions to it. The following code shows how to connect to a public XRP Ledger Testnet server a supported [client library](../../../references/client-libraries.md): @@ -65,7 +75,6 @@ For this tutorial, click the following button to connect: {% partial file="/docs/_snippets/interactive-tutorials/connect-step.md" /%} - ### 3. Send AccountSet Transaction to Start the Freeze To enable the Global Freeze setting, send an [AccountSet transaction][] with a `SetFlag` field containing the [`asfGlobalFreeze` value (`7`)](../../../references/protocol/transactions/types/accountset.md#accountset-flags). To send the transaction, you first _prepare_ it to fill out all the necessary fields, then _sign_ it with your account's secret key, and finally _submit_ it to the network. @@ -81,6 +90,7 @@ For example: {% /tab %} {% tab label="WebSocket" %} + ```json { "id": "example_enable_global_freeze", @@ -97,6 +107,7 @@ For example: "secret": "s████████████████████████████" } ``` + {% /tab %} {% /tabs %} @@ -111,7 +122,6 @@ For example: {% /interactive-block %} - ### 4. Wait for Validation Most transactions are accepted into the next ledger version after they're submitted, which means it may take 4-7 seconds for a transaction's outcome to be final. If the XRP Ledger is busy or poor network connectivity delays a transaction from being relayed throughout the network, a transaction may take longer to be confirmed. (For information on how to set an expiration for transactions, see [Reliable Transaction Submission](../../../concepts/transactions/reliable-transaction-submission.md).) @@ -122,7 +132,6 @@ Most transactions are accepted into the next ledger version after they're submit {% /interactive-block %} - ### 5. Confirm Account Settings After the transaction is validated, you can check your issuing account's settings to confirm that the Global Freeze flag is enabled. You can do this by calling the [account_info method][] and checking the value of the account's `Flags` field to see if the [`lsfGlobalFreeze` bit (`0x00400000`)](../../../references/protocol/ledger-data/ledger-entry-types/accountroot.md#accountroot-flags) is on. @@ -134,6 +143,7 @@ After the transaction is validated, you can check your issuing account's setting {% /tab %} {% tab label="WebSocket" %} + ```json Request: @@ -174,6 +184,7 @@ Response: } } ``` + {% /tab %} {% /tabs %} @@ -188,7 +199,6 @@ Response: {% /interactive-block %} - ### Intermission: While Frozen At this point all token issued by your address are frozen. During this time, you may want to investigate the potential security breach or take a snapshot of the balances of your token, depending on your reasons for enacting the global freeze. @@ -201,7 +211,6 @@ If you use the [No Freeze setting](../../../concepts/tokens/fungible-tokens/free Otherwise, you can continue to the next step whenever you're ready. - ### 6. Send AccountSet Transaction to End the Freeze To end the Global Freeze, send an [AccountSet transaction][] with a `ClearFlag` field containing the [`asfGlobalFreeze` value (`7`)](../../../references/protocol/transactions/types/accountset.md#accountset-flags). As always, you first _prepare_ the transaction, _sign_ it, and finally _submit_ it to the network. @@ -215,6 +224,7 @@ For example: {% /tab %} {% tab label="WebSocket" %} + ```json { "id": "example_disable_global_freeze", @@ -231,6 +241,7 @@ For example: "secret": "s████████████████████████████" } ``` + {% /tab %} {% /tabs %} @@ -245,14 +256,12 @@ For example: {% /interactive-block %} - ### 7. Wait for Validation As before, wait for the previous transaction to be validated by consensus before continuing. {% partial file="/docs/_snippets/interactive-tutorials/wait-step.md" variables={label: "Wait (again)"} /%} - ### 8. Confirm Account Settings After the transaction is validated, you can confirm the status of the Global Freeze flag in the same way as before: by calling the [account_info method][] and checking the value of the account's `Flags` field to see if the [`lsfGlobalFreeze` bit (`0x00400000`)](../../../references/protocol/ledger-data/ledger-entry-types/accountroot.md#accountroot-flags) is **off**. @@ -267,22 +276,21 @@ After the transaction is validated, you can confirm the status of the Global Fre {% /interactive-block %} - ## See Also - **Concepts:** - - [Freezing Issued Currencies](../../../concepts/tokens/fungible-tokens/freezes.md) - - [Trust Lines](../../../concepts/tokens/fungible-tokens/index.md) + - [Freezing Issued Currencies](../../../concepts/tokens/fungible-tokens/freezes.md) + - [Trust Lines](../../../concepts/tokens/fungible-tokens/index.md) - **Tutorials:** - - [Enable No Freeze](enable-no-freeze.md) - - [Freeze a Trust Line](freeze-a-trust-line.md) - - [Change or Remove a Regular Key Pair](../manage-account-settings/change-or-remove-a-regular-key-pair.md) + - [Enable No Freeze](enable-no-freeze.md) + - [Freeze a Trust Line](freeze-a-trust-line.md) + - [Change or Remove a Regular Key Pair](../manage-account-settings/change-or-remove-a-regular-key-pair.md) - **References:** - - [account_lines method][] - - [account_info method][] - - [AccountSet transaction][] - - [TrustSet transaction][] - - [AccountRoot Flags](../../../references/protocol/ledger-data/ledger-entry-types/accountroot.md#accountroot-flags) - - [RippleState (trust line) Flags](../../../references/protocol/ledger-data/ledger-entry-types/ripplestate.md#ripplestate-flags) + - [account_lines method][] + - [account_info method][] + - [AccountSet transaction][] + - [TrustSet transaction][] + - [AccountRoot Flags](../../../references/protocol/ledger-data/ledger-entry-types/accountroot.md#accountroot-flags) + - [RippleState (trust line) Flags](../../../references/protocol/ledger-data/ledger-entry-types/ripplestate.md#ripplestate-flags) {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/tutorials/how-tos/use-tokens/freeze-a-trust-line.md b/docs/tutorials/how-tos/use-tokens/freeze-a-trust-line.md index e6961704c1..b34507534d 100644 --- a/docs/tutorials/how-tos/use-tokens/freeze-a-trust-line.md +++ b/docs/tutorials/how-tos/use-tokens/freeze-a-trust-line.md @@ -2,27 +2,37 @@ html: freeze-a-trust-line.html parent: use-tokens.html seo: - description: Freeze an individual holder of a token. + description: Freeze an individual holder of a token. embed_xrpl_js: true filters: - interactive_steps labels: - Tokens - Security -steps: ['Generate', 'Connect', 'Choose Trust Line', 'Send TrustSet to Freeze', 'Wait', 'Check Freeze Status', 'Send TrustSet to End Freeze', 'Wait (again)'] +steps: + [ + 'Generate', + 'Connect', + 'Choose Trust Line', + 'Send TrustSet to Freeze', + 'Wait', + 'Check Freeze Status', + 'Send TrustSet to End Freeze', + 'Wait (again)', + ] --- + # Freeze a Trust Line This tutorial shows the steps to [freeze an individual trust line](../../../concepts/tokens/fungible-tokens/freezes.md#individual-freeze). The issuer of a token in the XRP Ledger may freeze the trust line to a particular counterparty if that account is engaged in suspicious activity. {% admonition type="success" name="Tip" %}As a reminder, freezes only apply to issued tokens, not XRP.{% /admonition %} - ## Prerequisites - You need a connection to the XRP Ledger network. As shown in this tutorial, you can use public servers for testing. - You should be familiar with the Getting Started instructions for your preferred client library. This page provides examples for the following: - - **JavaScript** with the [xrpl.js library](https://github.com/XRPLF/xrpl.js/). See [Get Started Using JavaScript](../../javascript/build-apps/get-started.md) for setup steps. + - **JavaScript** with the [xrpl.js library](https://github.com/XRPLF/xrpl.js/). See [Get Started Using JavaScript](../../javascript/build-apps/get-started.md) for setup steps. - This tutorial assumes **you have already [issued a token](issue-a-fungible-token.md)** in the XRP Ledger. - You **cannot** have enabled the [No Freeze setting](../../../concepts/tokens/fungible-tokens/freezes.md#no-freeze), which gives up your ability to freeze individual trust lines. @@ -30,7 +40,6 @@ This tutorial shows the steps to [freeze an individual trust line](../../../conc - ## Example Code Complete sample code for all of the steps of this tutorial is available under the [MIT license](https://github.com/XRPLF/xrpl-dev-portal/blob/master/LICENSE). @@ -56,9 +65,11 @@ You must be connected to the network to submit transactions to it. The following {% /tab %} {% tab label="WebSocket" %} + ``` (Connect to wss:// URL of an XRP Ledger server using your preferred client.) ``` + {% /tab %} {% /tabs %} @@ -67,7 +78,6 @@ For purposes of this tutorial, use the following interface to connect and perfor {% partial file="/docs/_snippets/interactive-tutorials/connect-step.md" /%} - ### 3. Choose Trust Line You can only freeze one trust line per transaction, so you need to know which trust line you want. Each of your trust lines is uniquely identified by these 3 things: @@ -85,6 +95,7 @@ There can be multiple [trust lines](../../../concepts/tokens/fungible-tokens/ind {% /tab %} {% tab label="WebSocket" %} + ```json Example Request: @@ -121,6 +132,7 @@ Example Request: "type": "response" } ``` + {% /tab %} {% /tabs %} @@ -137,20 +149,19 @@ For purposes of this tutorial, a second test address has created a trust line to {% /interactive-block %} - ### 4. Send TrustSet Transaction to Freeze the Trust Line To enable or disable an Individual Freeze on a specific trust line, send a [TrustSet transaction][] with the [`tfSetFreeze` flag enabled](../../../references/protocol/transactions/types/trustset.md#trustset-flags). The fields of the transaction should be as follows: -| Field | Value | Description | -|--------------------------|--------|-------------| -| `Account` | String | Your issuing account's address. | -| `TransactionType` | String | `TrustSet` | -| `LimitAmount` | Object | Object defining the trust line to freeze. | -| `LimitAmount`.`currency` | String | Currency of the trust line (cannot be XRP) | -| `LimitAmount`.`issuer` | String | The XRP Ledger address of the counterparty to freeze | +| Field | Value | Description | +| ------------------------ | ------ | ------------------------------------------------------------------------------------------------------------------------------ | +| `Account` | String | Your issuing account's address. | +| `TransactionType` | String | `TrustSet` | +| `LimitAmount` | Object | Object defining the trust line to freeze. | +| `LimitAmount`.`currency` | String | Currency of the trust line (cannot be XRP) | +| `LimitAmount`.`issuer` | String | The XRP Ledger address of the counterparty to freeze | | `LimitAmount`.`value` | String | The amount of currency you trust this counterparty to issue to you, as a quoted number. As an issuer, this is typically `"0"`. | -| `Flags` | Number | To enable a freeze, turn on the `tfSetFreeze` bit (`0x00100000`). | +| `Flags` | Number | To enable a freeze, turn on the `tfSetFreeze` bit (`0x00100000`). | As always, to send a transaction, you _prepare_ it by filling in all the necessary fields, _sign_ it with your cryptographic keys, and _submit_ it to the network. For example: @@ -161,6 +172,7 @@ As always, to send a transaction, you _prepare_ it by filling in all the necessa {% /tab %} {% tab label="WebSocket" %} + ```json { "id": "example_freeze_individual_line", @@ -181,6 +193,7 @@ As always, to send a transaction, you _prepare_ it by filling in all the necessa "secret": "s████████████████████████████" } ``` + {% /tab %} {% /tabs %} @@ -197,7 +210,6 @@ As always, to send a transaction, you _prepare_ it by filling in all the necessa {% admonition type="info" name="Note" %}If you want to freeze multiple trust lines in different currencies with the same counterparty, repeat this step for each trust line. It is possible to send several transactions in a single ledger if you use a different [sequence number](../../../references/protocol/data-types/basic-data-types.md#account-sequence) for each transaction. {% /admonition %} - ### 5. Wait for Validation Most transactions are accepted into the next ledger version after they're submitted, which means it may take 4-7 seconds for a transaction's outcome to be final. If the XRP Ledger is busy or poor network connectivity delays a transaction from being relayed throughout the network, a transaction may take longer to be confirmed. (For information on how to set an expiration for transactions, see [Reliable Transaction Submission](../../../concepts/transactions/reliable-transaction-submission.md).) @@ -209,7 +221,7 @@ Most transactions are accepted into the next ledger version after they're submit At this point, the trust line from the counterparty should be frozen. You can check the freeze status of any trust line using the [account_lines method][] with the following fields: | Field | Value | Description | -|:----------|:-------|:---------------------------------------------------| +| :-------- | :----- | :------------------------------------------------- | | `account` | String | Your address. (In this case, the issuing address.) | | `peer` | String | The address of the counterparty. | @@ -224,6 +236,7 @@ In the response, the field `"freeze": true` indicates that the account from the {% /tab %} {% tab label="WebSocket" %} + ```json Example Request: @@ -258,6 +271,7 @@ Example Response: } } ``` + {% /tab %} {% /tabs %} @@ -272,20 +286,19 @@ Example Response: {% /interactive-block %} - ### 7. (Optional) Send TrustSet Transaction to End the Freeze If you decide that the trust line no longer needs to be frozen (for example, you investigated and decided that the suspicious activity was benign), you can end the individual freeze in almost the same way that you froze the trust line in the first place. To end an individual freeze, send a [TrustSet transaction][] with the [`tfClearFreeze` flag enabled](../../../references/protocol/transactions/types/trustset.md#trustset-flags). The other fields of the transaction should be the same as when you froze the trust line: -| Field | Value | Description | -|--------------------------|--------|-------------| -| `Account` | String | Your issuing account's address. | -| `TransactionType` | String | `TrustSet` | -| `LimitAmount` | Object | Object defining the trust line to unfreeze. | -| `LimitAmount`.`currency` | String | Currency of the trust line (cannot be XRP) | -| `LimitAmount`.`issuer` | String | The XRP Ledger address of the counterparty to unfreeze | +| Field | Value | Description | +| ------------------------ | ------ | ------------------------------------------------------------------------------------------------------------------------------ | +| `Account` | String | Your issuing account's address. | +| `TransactionType` | String | `TrustSet` | +| `LimitAmount` | Object | Object defining the trust line to unfreeze. | +| `LimitAmount`.`currency` | String | Currency of the trust line (cannot be XRP) | +| `LimitAmount`.`issuer` | String | The XRP Ledger address of the counterparty to unfreeze | | `LimitAmount`.`value` | String | The amount of currency you trust this counterparty to issue to you, as a quoted number. As an issuer, this is typically `"0"`. | -| `Flags` | Number | To end an individual freeze, turn on the `tfClearFreeze` bit (`0x00200000`) | +| `Flags` | Number | To end an individual freeze, turn on the `tfClearFreeze` bit (`0x00200000`) | As always, to send a transaction, you _prepare_ it by filling in all the necessary fields, _sign_ it with your cryptographic keys, and _submit_ it to the network. For example: @@ -296,6 +309,7 @@ As always, to send a transaction, you _prepare_ it by filling in all the necessa {% /tab %} {% tab label="WebSocket" %} + ```json { "id": "example_end_individual_freeze", @@ -316,6 +330,7 @@ As always, to send a transaction, you _prepare_ it by filling in all the necessa "secret": "s████████████████████████████" } ``` + {% /tab %} {% /tabs %} @@ -330,30 +345,27 @@ As always, to send a transaction, you _prepare_ it by filling in all the necessa {% /interactive-block %} - ### 8. Wait for Validation As before, wait for the transaction to be validated by consensus. {% partial file="/docs/_snippets/interactive-tutorials/wait-step.md" variables={label: "Wait (again)"} /%} - - ## See Also - **Concepts:** - - [Freezing Issued Currencies](../../../concepts/tokens/fungible-tokens/freezes.md) - - [Trust Lines](../../../concepts/tokens/fungible-tokens/index.md) + - [Freezing Issued Currencies](../../../concepts/tokens/fungible-tokens/freezes.md) + - [Trust Lines](../../../concepts/tokens/fungible-tokens/index.md) - **Tutorials:** - - [Enable No Freeze](enable-no-freeze.md) - - [Enact Global Freeze](enact-global-freeze.md) - - [Change or Remove a Regular Key Pair](../manage-account-settings/change-or-remove-a-regular-key-pair.md) + - [Enable No Freeze](enable-no-freeze.md) + - [Enact Global Freeze](enact-global-freeze.md) + - [Change or Remove a Regular Key Pair](../manage-account-settings/change-or-remove-a-regular-key-pair.md) - **References:** - - [account_lines method][] - - [account_info method][] - - [AccountSet transaction][] - - [TrustSet transaction][] - - [AccountRoot Flags](../../../references/protocol/ledger-data/ledger-entry-types/accountroot.md#accountroot-flags) - - [RippleState (trust line) Flags](../../../references/protocol/ledger-data/ledger-entry-types/ripplestate.md#ripplestate-flags) + - [account_lines method][] + - [account_info method][] + - [AccountSet transaction][] + - [TrustSet transaction][] + - [AccountRoot Flags](../../../references/protocol/ledger-data/ledger-entry-types/accountroot.md#accountroot-flags) + - [RippleState (trust line) Flags](../../../references/protocol/ledger-data/ledger-entry-types/ripplestate.md#ripplestate-flags) {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/tutorials/how-tos/use-tokens/index.md b/docs/tutorials/how-tos/use-tokens/index.md index 68bc248c37..ca40a9023b 100644 --- a/docs/tutorials/how-tos/use-tokens/index.md +++ b/docs/tutorials/how-tos/use-tokens/index.md @@ -4,9 +4,9 @@ parent: tasks.html metadata: indexPage: true --- + # Use Tokens Create and trade tokens (fungible or otherwise) in the XRP Ledger. - {% child-pages /%} diff --git a/docs/tutorials/how-tos/use-tokens/issue-a-fungible-token.md b/docs/tutorials/how-tos/use-tokens/issue-a-fungible-token.md index f2357a1453..16935416c0 100644 --- a/docs/tutorials/how-tos/use-tokens/issue-a-fungible-token.md +++ b/docs/tutorials/how-tos/use-tokens/issue-a-fungible-token.md @@ -1,12 +1,26 @@ --- seo: - description: Create your own token and issue it on the XRP Ledger Testnet. + description: Create your own token and issue it on the XRP Ledger Testnet. filters: - interactive_steps labels: - Tokens -steps: ['Generate', 'Connect', 'Configure Issuer', 'Wait (Issuer Setup)', 'Configure Hot Address', 'Wait (Hot Address Setup)', 'Make Trust Line', 'Wait (TrustSet)', 'Send Token', 'Wait (Payment)', 'Confirm Balances'] +steps: + [ + 'Generate', + 'Connect', + 'Configure Issuer', + 'Wait (Issuer Setup)', + 'Configure Hot Address', + 'Wait (Hot Address Setup)', + 'Make Trust Line', + 'Wait (TrustSet)', + 'Send Token', + 'Wait (Payment)', + 'Confirm Balances', + ] --- + # Issue a Fungible Token Anyone can issue various types of tokens in the XRP Ledger, ranging from informal "IOUs" to fiat-backed stablecoins, purely digital fungible and semi-fungible tokens, and more. This tutorial shows the technical steps of creating a token in the ledger. For more information on how XRP Ledger tokens work, see [Issued Currencies](../../../concepts/tokens/index.md); for more on the business decisions involved in issuing a stablecoin, see [Stablecoin Issuer](../../../use-cases/tokenization/stablecoin-issuer.md). @@ -14,13 +28,13 @@ Anyone can issue various types of tokens in the XRP Ledger, ranging from informa ## Prerequisites - You need two funded XRP Ledger accounts, each with an address, secret key, and some XRP. For this tutorial, you can generate new test credentials as needed. - - Each address needs enough XRP to satisfy the [reserve requirement](../../../concepts/accounts/reserves.md) including the additional reserve for a trust line. + - Each address needs enough XRP to satisfy the [reserve requirement](../../../concepts/accounts/reserves.md) including the additional reserve for a trust line. - You need a connection to the XRP Ledger network. As shown in this tutorial, you can use public servers for testing. - You should be familiar with the Getting Started instructions for your preferred client library. This page provides examples for the following: - - **JavaScript** with the [xrpl.js library](https://github.com/XRPLF/xrpl.js/). See [Get Started Using JavaScript](../../javascript/build-apps/get-started.md) for setup steps. - - **Python** with the [`xrpl-py` library](https://xrpl-py.readthedocs.io/). See [Get Started using Python](../../python/build-apps/get-started.md) for setup steps. - - **Java** with the [xrpl4j library](https://github.com/XRPLF/xrpl4j). See [Get Started Using Java](../../java/build-apps/get-started.md) for setup steps. - - You can also read along and use the interactive steps in your browser without any setup. + - **JavaScript** with the [xrpl.js library](https://github.com/XRPLF/xrpl.js/). See [Get Started Using JavaScript](../../javascript/build-apps/get-started.md) for setup steps. + - **Python** with the [`xrpl-py` library](https://xrpl-py.readthedocs.io/). See [Get Started using Python](../../python/build-apps/get-started.md) for setup steps. + - **Java** with the [xrpl4j library](https://github.com/XRPLF/xrpl4j). See [Get Started Using Java](../../java/build-apps/get-started.md) for setup steps. + - You can also read along and use the interactive steps in your browser without any setup. @@ -58,7 +72,6 @@ In this tutorial, the hot address receives the tokens you issue from the cold ad When you're building production-ready software, you should use an existing account, and manage your keys using a [secure signing configuration](../../../concepts/transactions/secure-signing.md). - ### 2. Connect to the Network You must be connected to the network to submit transactions to it. The following code shows how to connect to a public XRP Ledger Testnet server with a supported [client library](../../../references/client-libraries.md): @@ -79,34 +92,32 @@ You must be connected to the network to submit transactions to it. The following {% /tabs %} - {% admonition type="info" name="Note" %}The JavaScript code samples in this tutorial use the [`async`/`await` pattern](https://javascript.info/async-await). Since `await` needs to be used from within an `async` function, the remaining code samples are written to continue inside the `main()` function started here. You can also use Promise methods `.then()` and `.catch()` instead of `async`/`await` if you prefer.{% /admonition %} For this tutorial, click the following button to connect: {% partial file="/docs/_snippets/interactive-tutorials/connect-step.md" /%} - ### 3. Configure Issuer Settings First, configure the settings for your cold address (which will become the issuer of your token). Most settings can be reconfigured later, with the following exceptions: - [Default Ripple][]: **This setting is required** so that users can send your token to each other. It's best to enable it _before_ setting up any trust lines or issuing any tokens. - [Authorized Trust Lines][]: (Optional) This setting (also called "Require Auth") limits your tokens to being held _only_ by accounts you've explicitly approved. You cannot enable this setting if you already have any trust lines or offers for _any_ token. - {% admonition type="info" name="Note" %}To use authorized trust lines, you must perform additional steps that are not shown in this tutorial.{% /admonition %} + {% admonition type="info" name="Note" %}To use authorized trust lines, you must perform additional steps that are not shown in this tutorial.{% /admonition %} [Default Ripple]: ../../../concepts/tokens/fungible-tokens/rippling.md [Authorized Trust Lines]: ../../../concepts/tokens/fungible-tokens/authorized-trust-lines.md Other settings you may want to, optionally, configure for your cold address (issuer): -| Setting | Recommended Value | Summary | -|:-----------------------------|:--------------------|:------------------------| -| [Require Destination Tags][] | Enabled or Disabled | Enable if you process withdrawals of your token to outside systems. (For example, your token is a stablecoin.) | -| Disallow XRP | Enabled or Disabled | Enable if this address isn't meant to process XRP payments. | -| [Transfer Fee][] | 0–1% | Charge a percentage fee when users send your token to each other. | +| Setting | Recommended Value | Summary | +| :--------------------------- | :------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [Require Destination Tags][] | Enabled or Disabled | Enable if you process withdrawals of your token to outside systems. (For example, your token is a stablecoin.) | +| Disallow XRP | Enabled or Disabled | Enable if this address isn't meant to process XRP payments. | +| [Transfer Fee][] | 0–1% | Charge a percentage fee when users send your token to each other. | | [Tick Size][] | 5 | Limit the number of decimal places in exchange rates for your token in the [decentralized exchange](../../../concepts/tokens/decentralized-exchange/index.md). A tick size of 5-6 reduces churn of almost-equivalent offers and speeds up price discovery compared to the default of 15. | -| [Domain][] | (Your domain name) | Set to a domain you own so can [verify ownership of the accounts](../../../references/xrp-ledger-toml.md#account-verification). This can help reduce confusion or impersonation attempts. | +| [Domain][] | (Your domain name) | Set to a domain you own so can [verify ownership of the accounts](../../../references/xrp-ledger-toml.md#account-verification). This can help reduce confusion or impersonation attempts. | [Require Destination Tags]: ../manage-account-settings/require-destination-tags.md [Transfer Fee]: ../../../concepts/tokens/fungible-tokens/transfer-fees.md @@ -119,7 +130,6 @@ You can change these settings later as well. The following code sample shows how to send an [AccountSet transaction][] to enable the recommended cold address settings: - {% tabs %} {% tab label="JavaScript" %} @@ -210,17 +220,16 @@ The code samples in this tutorial use helper functions to wait for validation wh {% partial file="/docs/_snippets/interactive-tutorials/wait-step.md" variables={label: "Wait (Issuer Setup)"} /%} - ### 5. Configure Hot Address Settings The hot address does not strictly require any settings changes from the default, but the following are recommended as best practices: -| Setting | Recommended Value | Summary | -|:-----------------------------|:--------------------|:------------------------| -| [Default Ripple][] | Disabled | Leave this setting **disabled.** (This is the default.) | -| [Authorized Trust Lines][] | Enabled | Enable this setting on the hot address—and never approve any trust lines to the hot address—to prevent accidentally issuing tokens from the wrong address. (Optional, but recommended.) | -| [Require Destination Tags][] | Enabled or Disabled | Enable if you process withdrawals of your token to outside systems. (For example, your token is a stablecoin.) | -| Disallow XRP | Enabled or Disabled | Enable if this address isn't meant to process XRP payments. | +| Setting | Recommended Value | Summary | +| :--------------------------- | :------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [Default Ripple][] | Disabled | Leave this setting **disabled.** (This is the default.) | +| [Authorized Trust Lines][] | Enabled | Enable this setting on the hot address—and never approve any trust lines to the hot address—to prevent accidentally issuing tokens from the wrong address. (Optional, but recommended.) | +| [Require Destination Tags][] | Enabled or Disabled | Enable if you process withdrawals of your token to outside systems. (For example, your token is a stablecoin.) | +| Disallow XRP | Enabled or Disabled | Enable if this address isn't meant to process XRP payments. | | [Domain][] | (Your domain name) | Set to a domain you own so can [verify ownership of the accounts](../../../references/xrp-ledger-toml.md#account-verification). This can help reduce confusion or impersonation attempts. | The following code sample shows how to send an [AccountSet transaction][] to enable the recommended hot address settings: @@ -298,7 +307,6 @@ As before, wait for the previous transaction to be validated by consensus before {% partial file="/docs/_snippets/interactive-tutorials/wait-step.md" variables={label: "Wait (Hot Address Setup)"} /%} - ### 7. Create Trust Line from Hot to Cold Address Before you can receive tokens, you need to create a [trust line](../../../concepts/tokens/fungible-tokens/index.md) to the token issuer. This trust line is specific to the [currency code](../../../references/protocol/data-types/currency-formats.md#currency-codes) of the token you want to issue, such as USD or FOO. You can choose any currency code you want; each issuer's tokens are treated as separate in the XRP Ledger protocol. However, users' balances of tokens with the same currency code can [ripple](../../../concepts/tokens/fungible-tokens/rippling.md) between different issuers if the users enable rippling settings. @@ -309,14 +317,14 @@ The hot address needs a trust line like this before it can receive tokens from t To create a trust line, send a [TrustSet transaction][] from the **hot address** with the following fields: -| Field | Value | -|:-----------------------|:----------------------------------------------------| -| `TransactionType` | `"TrustSet"` | -| `Account` | The hot address. (More generally, this is the account that wants to receive the token.) | +| Field | Value | +| :--------------------- | :----------------------------------------------------------------------------------------- | +| `TransactionType` | `"TrustSet"` | +| `Account` | The hot address. (More generally, this is the account that wants to receive the token.) | | `LimitAmount` | An object specifying how much, of which token, from which issuer, you are willing to hold. | -| `LimitAmount.currency` | The currency code of the token. | -| `LimitAmount.issuer` | The cold address. | -| `LimitAmount.value` | The maximum amount of the token you are willing to hold. | +| `LimitAmount.currency` | The currency code of the token. | +| `LimitAmount.issuer` | The cold address. | +| `LimitAmount.value` | The maximum amount of the token you are willing to hold. | The following code sample shows how to send a [TrustSet transaction][] from the hot address, trusting the issuing address for a limit of 1 billion FOO: @@ -375,30 +383,28 @@ The following code sample shows how to send a [TrustSet transaction][] from the {% admonition type="info" name="Note" %}If you use [Authorized Trust Lines][], there is an extra step after this one: the cold address must approve the trust line from the hot address. For details of how to do this, see [Authorizing Trust Lines](../../../concepts/tokens/fungible-tokens/authorized-trust-lines.md#authorizing-trust-lines).{% /admonition %} - ### 8. Wait for Validation As before, wait for the previous transaction to be validated by consensus before continuing. {% partial file="/docs/_snippets/interactive-tutorials/wait-step.md" variables={label: "Wait (TrustSet)"} /%} - ### 9. Send Token Now you can create tokens by sending a [Payment transaction][] from the cold address to the hot address. This transaction should have the following attributes (dot notation indicates nested fields): -| Field | Value | -|---|---| -| `TransactionType` | `"Payment"` | -| `Account` | The cold address issuing the token. | -| `Amount` | An [token amount](../../../references/protocol/data-types/basic-data-types.md#specifying-currency-amounts) specifying how much of which token to create. | -| `Amount.currency` | The currency code of the token. | -| `Amount.value` | Decimal amount of the token to issue, as a string. | -| `Amount.issuer` | The cold address issuing the token. | -| `Destination` | The hot address (or other account receiving the token) | -| `Paths` | Omit this field when issuing tokens. | -| `SendMax` | Omit this field when issuing tokens. | -| `DestinationTag` | Any whole number from 0 to 232-1. You must specify _something_ here if you enabled [Require Destination Tags][] on the hot address. | +| Field | Value | +| ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `TransactionType` | `"Payment"` | +| `Account` | The cold address issuing the token. | +| `Amount` | An [token amount](../../../references/protocol/data-types/basic-data-types.md#specifying-currency-amounts) specifying how much of which token to create. | +| `Amount.currency` | The currency code of the token. | +| `Amount.value` | Decimal amount of the token to issue, as a string. | +| `Amount.issuer` | The cold address issuing the token. | +| `Destination` | The hot address (or other account receiving the token) | +| `Paths` | Omit this field when issuing tokens. | +| `SendMax` | Omit this field when issuing tokens. | +| `DestinationTag` | Any whole number from 0 to 232-1. You must specify _something_ here if you enabled [Require Destination Tags][] on the hot address. | You can use [auto-filled values](../../../references/protocol/transactions/common-fields.md#auto-fillable-fields) for all other required fields. @@ -452,14 +458,12 @@ The following code sample shows how to send a [Payment transaction][] to issue 8 {% /interactive-block %} - ### 10. Wait for Validation As before, wait for the previous transaction to be validated by consensus before continuing. {% partial file="/docs/_snippets/interactive-tutorials/wait-step.md" variables={label: "Wait (Payment)"} /%} - ### 11. Confirm Token Balances You can check the balances of your token from the perspective of either the token issuer or the hot address. Tokens issued in the XRP Ledger always have balances that sum to 0: negative from the perspective of the issuer and positive from the perspective of the holder. @@ -498,7 +502,6 @@ The following code sample shows how to use both methods: {% /interactive-block %} - ### Next Steps Now that you've created the token, you can explore how it fits into features of the XRP Ledger: @@ -509,7 +512,6 @@ Now that you've created the token, you can explore how it fits into features of - Create an [xrp-ledger.toml file](../../../references/xrp-ledger-toml.md) and set up domain verification for your token's issuer. - Learn about other [features of XRP Ledger tokens](../../../concepts/tokens/index.md). - ## Footnotes ¹ Users can hold your token without explicitly creating a trust line if they buy your token in the [decentralized exchange](../../../concepts/tokens/decentralized-exchange/index.md). Buying a token in the exchange [automatically creates the necessary trust lines](../../../concepts/tokens/decentralized-exchange/offers.md#offers-and-trust). This is only possible if someone is selling your token in the decentralized exchange. diff --git a/docs/tutorials/how-tos/use-tokens/issue-a-multi-purpose-token.md b/docs/tutorials/how-tos/use-tokens/issue-a-multi-purpose-token.md index ccfa6a6c92..b067c922b9 100644 --- a/docs/tutorials/how-tos/use-tokens/issue-a-multi-purpose-token.md +++ b/docs/tutorials/how-tos/use-tokens/issue-a-multi-purpose-token.md @@ -8,6 +8,7 @@ labels: - MPT - Token Issuance --- + # Issue a Multi-Purpose Token (MPT) A [Multi-Purpose Token (MPT)](../../../concepts/tokens/fungible-tokens/multi-purpose-tokens.md) lets you quickly access powerful, built-in tokenization features on the XRP Ledger with minimal code. @@ -27,7 +28,7 @@ To complete this tutorial, you should: - Have a basic understanding of the XRP Ledger. - Have an XRP Ledger client library set up in your development environment. This page provides examples for the following: - - **JavaScript** with the [xrpl.js library](https://github.com/XRPLF/xrpl.js). See [Get Started Using JavaScript](../../javascript/build-apps/get-started.md) for setup steps. + - **JavaScript** with the [xrpl.js library](https://github.com/XRPLF/xrpl.js). See [Get Started Using JavaScript](../../javascript/build-apps/get-started.md) for setup steps. - **Python** with the [xrpl-py library](https://github.com/XRPLF/xrpl-py). See [Get Started Using Python](../../python/build-apps/get-started.md) for setup steps. ## Source Code @@ -47,6 +48,7 @@ From the code sample folder, use npm to install dependencies: ```bash npm install xrpl ``` + {% /tab %} {% tab label="Python" %} @@ -57,6 +59,7 @@ python -m venv .venv source .venv/bin/activate pip install -r requirements.txt ``` + {% /tab %} {% /tabs %} @@ -122,15 +125,15 @@ The encoding function raises an error if the input isn't a valid JSON object. To issue the MPT, create an `MPTokenIssuanceCreate` transaction object with the following fields: -| Field | Value | -|:------------------- |:------ | -| `TransactionType` | The type of transaction. In this case, `MPTokenIssuanceCreate`. | -| `Account` | The wallet address of the account that is issuing the MPT. In this case, the `issuer`. | -| `AssetScale` | Where to put the decimal place when displaying amounts of this MPT. This is set to `4` for this example. | -| `MaximumAmount` | The maximum supply of the token to be issued. | -| `TransferFee` | The transfer fee to charge for transferring the token. In this example it is set to `0`. | -| `Flags` | Flags to set token permissions. For this example, the following flags are configured:
    • **Can Transfer**: A holder can transfer the T-bill MPT to another account.
    • **Can Trade**: A holder can trade the T-bill MPT with another account.
    See [MPTokenIssuanceCreate Flags](../../../references/protocol/transactions/types/mptokenissuancecreate.md#mptokenissuancecreate-flags) for all available flags. | -| `MPTokenMetadata` | The hex-encoded metadata for the token. | +| Field | Value | +| :---------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `TransactionType` | The type of transaction. In this case, `MPTokenIssuanceCreate`. | +| `Account` | The wallet address of the account that is issuing the MPT. In this case, the `issuer`. | +| `AssetScale` | Where to put the decimal place when displaying amounts of this MPT. This is set to `4` for this example. | +| `MaximumAmount` | The maximum supply of the token to be issued. | +| `TransferFee` | The transfer fee to charge for transferring the token. In this example it is set to `0`. | +| `Flags` | Flags to set token permissions. For this example, the following flags are configured:
    • **Can Transfer**: A holder can transfer the T-bill MPT to another account.
    • **Can Trade**: A holder can trade the T-bill MPT with another account.
    See [MPTokenIssuanceCreate Flags](../../../references/protocol/transactions/types/mptokenissuancecreate.md#mptokenissuancecreate-flags) for all available flags. | +| `MPTokenMetadata` | The hex-encoded metadata for the token. | {% tabs %} @@ -151,10 +154,10 @@ Some important considerations about token metadata when you submit the transacti - If you provide metadata that exceeds the 1024-byte limit, the transaction fails with an error. - If the metadata does not conform to the XLS-89 standards, the transaction still succeeds, but your token may not be compatible with wallets and applications that expect valid MPT metadata. The SDK libraries provide a warning to help you diagnose why your metadata may not be compliant. For example: - + ```sh - MPTokenMetadata is not properly formatted as JSON as per the XLS-89d standard. - While adherence to this standard is not mandatory, such non-compliant MPToken's + MPTokenMetadata is not properly formatted as JSON as per the XLS-89d standard. + While adherence to this standard is not mandatory, such non-compliant MPToken's might not be discoverable by Explorers and Indexers in the XRPL ecosystem. - ticker/t: should have uppercase letters (A-Z) and digits (0-9) only. Max 6 characters recommended. - name/n: should be a non-empty string. @@ -219,14 +222,10 @@ The decoding utility function converts the metadata back to a JSON object and ex ## See Also - **Concepts**: - - [Multi-Purpose Tokens (MPT)](../../../concepts/tokens/fungible-tokens/multi-purpose-tokens.md) -- **References**: - - [MPTokenIssuance entry][] - - [MPTokenIssuanceCreate transaction][] - - [MPTokenIssuanceDestroy transaction][] - - [MPTokenIssuanceSet transaction][] - - + - [Multi-Purpose Tokens (MPT)](../../../concepts/tokens/fungible-tokens/multi-purpose-tokens.md) +- **References**: - [MPTokenIssuance entry][] - [MPTokenIssuanceCreate transaction][] - [MPTokenIssuanceDestroy transaction][] - [MPTokenIssuanceSet transaction][] + + {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/tutorials/how-tos/use-tokens/trade-in-the-decentralized-exchange.md b/docs/tutorials/how-tos/use-tokens/trade-in-the-decentralized-exchange.md index c9f692cbf4..e428141e6a 100644 --- a/docs/tutorials/how-tos/use-tokens/trade-in-the-decentralized-exchange.md +++ b/docs/tutorials/how-tos/use-tokens/trade-in-the-decentralized-exchange.md @@ -1,15 +1,16 @@ --- parent: use-tokens.html seo: - description: Buy or sell fungible tokens for each other or for XRP in the decentralized exchange. + description: Buy or sell fungible tokens for each other or for XRP in the decentralized exchange. embed_xrpl_js: true filters: - interactive_steps labels: - Decentralized Exchange - Tokens -steps: ['Connect', 'Generate', 'Look Up Offers',' Send OfferCreate', 'Wait', 'Check Metadata', 'Check Balances and Offers'] +steps: ['Connect', 'Generate', 'Look Up Offers', ' Send OfferCreate', 'Wait', 'Check Metadata', 'Check Balances and Offers'] --- + # Trade in the Decentralized Exchange This tutorial demonstrates how you can buy and sell tokens in the [decentralized exchange](../../../concepts/tokens/decentralized-exchange/index.md) (DEX). @@ -18,9 +19,9 @@ This tutorial demonstrates how you can buy and sell tokens in the [decentralized - You need a connection to the XRP Ledger network. As shown in this tutorial, you can use public servers for testing. - You should be familiar with the Getting Started instructions for your preferred client library. This page provides examples for the following: - - **JavaScript** with the [xrpl.js library](https://github.com/XRPLF/xrpl.js/). See [Get Started Using JavaScript](../../javascript/build-apps/get-started.md) for setup steps. - - **Python** with the [`xrpl-py` library](https://xrpl-py.readthedocs.io/). See [Get Started using Python](../../python/build-apps/get-started.md) for setup steps. - - You can also read along and use the interactive steps in your browser without any setup. + - **JavaScript** with the [xrpl.js library](https://github.com/XRPLF/xrpl.js/). See [Get Started Using JavaScript](../../javascript/build-apps/get-started.md) for setup steps. + - **Python** with the [`xrpl-py` library](https://xrpl-py.readthedocs.io/). See [Get Started using Python](../../python/build-apps/get-started.md) for setup steps. + - You can also read along and use the interactive steps in your browser without any setup. @@ -33,15 +34,13 @@ Complete sample code for all of the steps of this tutorial is available under th - See [Code Samples: Trade in the Decentralized Exchange](https://github.com/XRPLF/xrpl-dev-portal/tree/master/_code-samples/trade-in-the-decentralized-exchange/) in the source repository for this website. - ## Steps This tutorial demonstrates how to buy a fungible token in the decentralized exchange by selling XRP. (Other types of trades are possible, but selling a token, for example, requires you to have it first.) The example token used in this tutorial is as follows: -| Currency Code | Issuer | Notes | -|---|---|---| -| TST | `rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd` | A test token pegged to XRP at a rate of approximately 10 XRP per 1 TST. The issuer has existing Offers on the XRP Ledger Testnet to buy and sell these tokens. | - +| Currency Code | Issuer | Notes | +| ------------- | ------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| TST | `rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd` | A test token pegged to XRP at a rate of approximately 10 XRP per 1 TST. The issuer has existing Offers on the XRP Ledger Testnet to buy and sell these tokens. | ### 1. Connect to Network @@ -160,10 +159,10 @@ The following block demonstrates these calculations in action: To actually make a trade, send an [OfferCreate transaction][]. In this case, you want to buy TST using XRP, so you should set the parameters as follows: -| Field | Type | Description | -|---|---|---| +| Field | Type | Description | +| ----------- | -------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | | `TakerPays` | [Token Amount object][Currency Amount] | How much of what currency you want to buy, in total. For this tutorial, buy some amount of **TST** issued by `rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd`. | -| `TakerGets` | [XRP, in drops][] | How much of what currency you are offering to pay in total. For this tutorial, you should specify about 11.5 XRP per TST or slightly more. | +| `TakerGets` | [XRP, in drops][] | How much of what currency you are offering to pay in total. For this tutorial, you should specify about 11.5 XRP per TST or slightly more. | The following code shows how to prepare, sign, and submit the transaction: @@ -197,7 +196,6 @@ Most transactions are accepted into the next ledger version after they're submit {% partial file="/docs/_snippets/interactive-tutorials/wait-step.md" /%} - ### 6. Check Metadata You can use the validated transaction's [metadata](../../../references/protocol/transactions/metadata.md) to determine exactly what it did. (Don't use metadata from tentative transaction results, because it may be different from the [final result](../../../concepts/transactions/finality-of-results/index.md), especially when using the decentralized exchange.) In case of an OfferCreate transaction, likely results include: @@ -232,7 +230,6 @@ You can use this interface to test it out: {% /interactive-block %} - ### 7. Check Balances and Offers This is also a good time to look up the balances and outstanding Offers owned by your account as of the latest validated ledger. This shows any changes caused by your transaction as well as any others that executed in the same ledger version. diff --git a/docs/tutorials/how-tos/use-xrpl-sidechains/index.md b/docs/tutorials/how-tos/use-xrpl-sidechains/index.md index c913de50bb..bffe903610 100644 --- a/docs/tutorials/how-tos/use-xrpl-sidechains/index.md +++ b/docs/tutorials/how-tos/use-xrpl-sidechains/index.md @@ -4,9 +4,9 @@ parent: tasks.html metadata: indexPage: true --- + # Use XRPL Sidechains Bridge XRP and tokens from _Mainnet_ to XRPL sidechains. - {% child-pages /%} diff --git a/docs/tutorials/how-tos/use-xrpl-sidechains/set-up-iou-iou-bridge.md b/docs/tutorials/how-tos/use-xrpl-sidechains/set-up-iou-iou-bridge.md index 78459c7eda..c1073af0f6 100644 --- a/docs/tutorials/how-tos/use-xrpl-sidechains/set-up-iou-iou-bridge.md +++ b/docs/tutorials/how-tos/use-xrpl-sidechains/set-up-iou-iou-bridge.md @@ -1,14 +1,15 @@ --- seo: - description: Steps to set up an IOU-IOU bridge. + description: Steps to set up an IOU-IOU bridge. labels: - - Interoperability + - Interoperability --- + # Set Up an IOU-IOU Bridge Setting up an IOU-IOU bridge enables you to move tokens between chains. -{% admonition type="info" name="Note" %}The code samples on this page illustrate how to bridge a hypotethical "TST" token from *Devnet* to *Sidechain-Devnet*, using a supported [client library](/docs/references/client-libraries.md) to query and submit transactions.{% /admonition %} +{% admonition type="info" name="Note" %}The code samples on this page illustrate how to bridge a hypotethical "TST" token from _Devnet_ to _Sidechain-Devnet_, using a supported [client library](/docs/references/client-libraries.md) to query and submit transactions.{% /admonition %} {% amendment-disclaimer name="XChainBridge" /%} @@ -30,16 +31,16 @@ const WS_URL_issuingchain = 'wss://example-sidechain.net:12345/' // Issuing chai // Define the XChainBridge, using the "TST" token. const xchainbridge = { - "LockingChainDoor": "rn895gh1MHnnAgL4hR9q464PJSFiYwQYcV", - "LockingChainIssue": { - "currency": "TST", - "issuer": "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd" + LockingChainDoor: 'rn895gh1MHnnAgL4hR9q464PJSFiYwQYcV', + LockingChainIssue: { + currency: 'TST', + issuer: 'rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd', + }, + IssuingChainDoor: 'ra1MsW5s6Qg4NXUAJVKw8f21ZghSYG1DQw', // Use the account issuing the wrapped token + IssuingChainIssue: { + currency: 'TST', + issuer: 'ra1MsW5s6Qg4NXUAJVKw8f21ZghSYG1DQw', }, - "IssuingChainDoor": "ra1MsW5s6Qg4NXUAJVKw8f21ZghSYG1DQw", // Use the account issuing the wrapped token - "IssuingChainIssue": { - "currency": "TST", - "issuer": "ra1MsW5s6Qg4NXUAJVKw8f21ZghSYG1DQw" - } } async function main() { @@ -65,49 +66,58 @@ main() Don't include a `MinAccountCreateAmount` value. ```javascript - const wallet_lockingchain = xrpl.Wallet.fromSeed('s████████████████████████████') // Locking chain door account - const xchaincreatebridge_lockingchain = await client_lockingchain.submitAndWait({ - "TransactionType": "XChainCreateBridge", - "Account": wallet_lockingchain.address, - "XChainBridge": xchainbridge, - "SignatureReward": 200 - }, {autofill: true, wallet: wallet_lockingchain}) +const wallet_lockingchain = xrpl.Wallet.fromSeed('s████████████████████████████') // Locking chain door account +const xchaincreatebridge_lockingchain = await client_lockingchain.submitAndWait( + { + TransactionType: 'XChainCreateBridge', + Account: wallet_lockingchain.address, + XChainBridge: xchainbridge, + SignatureReward: 200, + }, + { autofill: true, wallet: wallet_lockingchain }, +) ``` ### 3. Submit a `SignerListSet` transaction from the door account on the locking chain. ```javascript - const signerlistset_lockingchain = await client_lockingchain.submitAndWait({ - "TransactionType": "SignerListSet", - "Account": wallet_lockingchain.address, - "Fee": "12", - "SignerQuorum": 2, +const signerlistset_lockingchain = await client_lockingchain.submitAndWait( + { + TransactionType: 'SignerListSet', + Account: wallet_lockingchain.address, + Fee: '12', + SignerQuorum: 2, // Use the witness servers' submitting accounts on the locking chain. - "SignerEntries": [ - { - "SignerEntry": { - "Account": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", - "SignerWeight": 1 - } + SignerEntries: [ + { + SignerEntry: { + Account: 'rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW', + SignerWeight: 1, }, - { - "SignerEntry": { - "Account": "rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v", - "SignerWeight": 1 - } - } - ] - }, {autofill: true, wallet: wallet_lockingchain}) + }, + { + SignerEntry: { + Account: 'rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v', + SignerWeight: 1, + }, + }, + ], + }, + { autofill: true, wallet: wallet_lockingchain }, +) ``` ### 4. Disable the master key on the locking chain's door account with an `AccountSet` transaction. ```javascript -const disablekey_lockingchain = await client_lockingchain.submitAndWait({ - "TransactionType": "AccountSet", - "Account": wallet_lockingchain.address, - "SetFlag": 4 - }, {autofill: true, wallet: wallet_lockingchain}) +const disablekey_lockingchain = await client_lockingchain.submitAndWait( + { + TransactionType: 'AccountSet', + Account: wallet_lockingchain.address, + SetFlag: 4, + }, + { autofill: true, wallet: wallet_lockingchain }, +) ``` ### 5. Submit an `XChainCreateBridge` transaction from the door account on the issuing chain. @@ -115,49 +125,58 @@ const disablekey_lockingchain = await client_lockingchain.submitAndWait({ Don't include a `MinAccountCreateAmount` value. ```javascript - const wallet_issuingchain = xrpl.Wallet.fromSeed('s████████████████████████████') // The account issuing the wrapped token - const xchaincreatebridge_issuingchain = await client_issuingchain.submitAndWait({ - "TransactionType": "XChainCreateBridge", - "Account": wallet_issuingchain.address, - "XChainBridge": xchainbridge, - "SignatureReward": 200 - }, {autofill: true, wallet: wallet_issuingchain}) +const wallet_issuingchain = xrpl.Wallet.fromSeed('s████████████████████████████') // The account issuing the wrapped token +const xchaincreatebridge_issuingchain = await client_issuingchain.submitAndWait( + { + TransactionType: 'XChainCreateBridge', + Account: wallet_issuingchain.address, + XChainBridge: xchainbridge, + SignatureReward: 200, + }, + { autofill: true, wallet: wallet_issuingchain }, +) ``` ### 6. Submit a `SignerListSet` transaction from the door account on the issuing chain. ```javascript - const signerlistset_issuingchain = await client_issuingchain.submitAndWait({ - "TransactionType": "SignerListSet", - "Account": wallet_issuingchain.address, - "Fee": "12", - "SignerQuorum": 2, +const signerlistset_issuingchain = await client_issuingchain.submitAndWait( + { + TransactionType: 'SignerListSet', + Account: wallet_issuingchain.address, + Fee: '12', + SignerQuorum: 2, // Use the witness servers' submitting accounts on the issuing chain. - "SignerEntries": [ - { - "SignerEntry": { - "Account": "rD323VyRjgzzhY4bFpo44rmyh2neB5d8Mo", - "SignerWeight": 1 - } + SignerEntries: [ + { + SignerEntry: { + Account: 'rD323VyRjgzzhY4bFpo44rmyh2neB5d8Mo', + SignerWeight: 1, }, - { - "SignerEntry": { - "Account": "rJMfWNVbyjcCtds8kpoEjEbYQ41J5B6MUd", - "SignerWeight": 1 - } - } - ] - }, {autofill: true, wallet: wallet_issuingchain}) + }, + { + SignerEntry: { + Account: 'rJMfWNVbyjcCtds8kpoEjEbYQ41J5B6MUd', + SignerWeight: 1, + }, + }, + ], + }, + { autofill: true, wallet: wallet_issuingchain }, +) ``` ### 7. Disable the master key on the issuing chain's door account with an `AccountSet` transaction. ```javascript -const disablekey_issuingchain = await client_issuingchain.submitAndWait({ - "TransactionType": "AccountSet", - "Account": wallet_issuingchain.address, - "SetFlag": 4 - }, {autofill: true, wallet: wallet_issuingchain}) +const disablekey_issuingchain = await client_issuingchain.submitAndWait( + { + TransactionType: 'AccountSet', + Account: wallet_issuingchain.address, + SetFlag: 4, + }, + { autofill: true, wallet: wallet_issuingchain }, +) ``` {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/tutorials/how-tos/use-xrpl-sidechains/set-up-xrp-xrp-bridge.md b/docs/tutorials/how-tos/use-xrpl-sidechains/set-up-xrp-xrp-bridge.md index 90e6b4eee5..82c2ddc70a 100644 --- a/docs/tutorials/how-tos/use-xrpl-sidechains/set-up-xrp-xrp-bridge.md +++ b/docs/tutorials/how-tos/use-xrpl-sidechains/set-up-xrp-xrp-bridge.md @@ -1,14 +1,15 @@ --- seo: - description: Steps to create an XRP-XRP bridge with a new sidechain. + description: Steps to create an XRP-XRP bridge with a new sidechain. labels: - - Interoperability + - Interoperability --- + # Set Up an XRP-XRP Bridge Setting up an XRP-XRP bridge enables you to move XRP between chains. The set up requires using the genesis account on the issuing chain as a door account to submit attestations and create transaction submission accounts for witnesses. -{% admonition type="info" name="Note" %}The code samples on this page illustrate how a bridge was set up between *Devnet* and *Sidechain-Devnet*, using a supported [client library](/docs/references/client-libraries.md) to query and submit transactions. This bridge is already created, so the process can't be reproduced on these networks.{% /admonition %} +{% admonition type="info" name="Note" %}The code samples on this page illustrate how a bridge was set up between _Devnet_ and _Sidechain-Devnet_, using a supported [client library](/docs/references/client-libraries.md) to query and submit transactions. This bridge is already created, so the process can't be reproduced on these networks.{% /admonition %} {% amendment-disclaimer name="XChainBridge" /%} @@ -18,7 +19,6 @@ Setting up an XRP-XRP bridge enables you to move XRP between chains. The set up - The witnesses' accounts on the locking chain are funded, so they can submit transactions. - A door account for the bridge exists on the locking chain. - ## Steps ### 1. Connect to the locking chain (Devnet) and issuing chain (Sidechain-Devnet). @@ -31,14 +31,14 @@ const WS_URL_issuingchain = 'wss://example-sidechain.net:12345/' // Issuing chai // Define the XChainBridge const xchainbridge = { - "LockingChainDoor": "rnQAXXWoFNN6PEqwqsdTngCtFPCrmfuqFJ", // Locking chain door account - "LockingChainIssue": { - "currency": "XRP" + LockingChainDoor: 'rnQAXXWoFNN6PEqwqsdTngCtFPCrmfuqFJ', // Locking chain door account + LockingChainIssue: { + currency: 'XRP', + }, + IssuingChainDoor: 'rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh', // Use the genesis address hardcoded in rippled + IssuingChainIssue: { + currency: 'XRP', }, - "IssuingChainDoor": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", // Use the genesis address hardcoded in rippled - "IssuingChainIssue": { - "currency": "XRP" - } } async function main() { @@ -62,90 +62,108 @@ main() ### 2. Submit an `XChainCreateBridge` transaction from the door account on the locking chain. ```javascript - const wallet_lockingchain = xrpl.Wallet.fromSeed('s████████████████████████████') // Locking chain door account - const xchaincreatebridge_lockingchain = await client_lockingchain.submitAndWait({ - "TransactionType": "XChainCreateBridge", - "Account": wallet_lockingchain.address, - "XChainBridge": xchainbridge, - "SignatureReward": 200, - "MinAccountCreateAmount": 1000000 // This value should at least be equal to the account reserve on the issuing chain. - }, {autofill: true, wallet: wallet_lockingchain}) +const wallet_lockingchain = xrpl.Wallet.fromSeed('s████████████████████████████') // Locking chain door account +const xchaincreatebridge_lockingchain = await client_lockingchain.submitAndWait( + { + TransactionType: 'XChainCreateBridge', + Account: wallet_lockingchain.address, + XChainBridge: xchainbridge, + SignatureReward: 200, + MinAccountCreateAmount: 1000000, // This value should at least be equal to the account reserve on the issuing chain. + }, + { autofill: true, wallet: wallet_lockingchain }, +) ``` ### 3. Submit a `SignerListSet` transaction from the door account on the locking chain. ```javascript - const signerlistset_lockingchain = await client_lockingchain.submitAndWait({ - "TransactionType": "SignerListSet", - "Account": wallet_lockingchain.address, - "Fee": "12", - "SignerQuorum": 2, +const signerlistset_lockingchain = await client_lockingchain.submitAndWait( + { + TransactionType: 'SignerListSet', + Account: wallet_lockingchain.address, + Fee: '12', + SignerQuorum: 2, // Use the witness servers' submitting accounts on the locking chain. - "SignerEntries": [ - { - "SignerEntry": { - "Account": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", - "SignerWeight": 1 - } + SignerEntries: [ + { + SignerEntry: { + Account: 'rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW', + SignerWeight: 1, }, - { - "SignerEntry": { - "Account": "rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v", - "SignerWeight": 1 - } - } - ] - }, {autofill: true, wallet: wallet_lockingchain}) + }, + { + SignerEntry: { + Account: 'rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v', + SignerWeight: 1, + }, + }, + ], + }, + { autofill: true, wallet: wallet_lockingchain }, +) ``` ### 4. Disable the master key on the locking chain's door account with an `AccountSet` transaction. ```javascript -const disablekey_lockingchain = await client_lockingchain.submitAndWait({ - "TransactionType": "AccountSet", - "Account": wallet_lockingchain.address, - "SetFlag": 4 - }, {autofill: true, wallet: wallet_lockingchain}) +const disablekey_lockingchain = await client_lockingchain.submitAndWait( + { + TransactionType: 'AccountSet', + Account: wallet_lockingchain.address, + SetFlag: 4, + }, + { autofill: true, wallet: wallet_lockingchain }, +) ``` ### 5. Submit an `XChainCreateBridge` transaction from the genesis account on the issuing chain. ```javascript - const wallet_issuingchain = xrpl.Wallet.fromSeed('snoPBrXtMeMyMHUVTgbuqAfg1SUTb') // Use the genesis secret hardcoded in rippled. - const xchaincreatebridge_issuingchain = await client_issuingchain.submitAndWait({ - "TransactionType": "XChainCreateBridge", - "Account": wallet_issuingchain.address, - "XChainBridge": xchainbridge, - "SignatureReward": 200, - "MinAccountCreateAmount": 1000000 - }, {autofill: true, wallet: wallet_issuingchain}) +const wallet_issuingchain = xrpl.Wallet.fromSeed('snoPBrXtMeMyMHUVTgbuqAfg1SUTb') // Use the genesis secret hardcoded in rippled. +const xchaincreatebridge_issuingchain = await client_issuingchain.submitAndWait( + { + TransactionType: 'XChainCreateBridge', + Account: wallet_issuingchain.address, + XChainBridge: xchainbridge, + SignatureReward: 200, + MinAccountCreateAmount: 1000000, + }, + { autofill: true, wallet: wallet_issuingchain }, +) ``` ### 6. Submit `XChainAccountCreateCommit` transactions from the witnesses' locking chain accounts to create corresponding accounts on the issuing chain. ```javascript - const wallet_witness_1 = xrpl.Wallet.fromSeed('s████████████████████████████') // Witness server 1 from `SignerListSet`: rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW - const wallet_witness_2 = xrpl.Wallet.fromSeed('s████████████████████████████') // Witness server 2 from `SignerListSet`: rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v +const wallet_witness_1 = xrpl.Wallet.fromSeed('s████████████████████████████') // Witness server 1 from `SignerListSet`: rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW +const wallet_witness_2 = xrpl.Wallet.fromSeed('s████████████████████████████') // Witness server 2 from `SignerListSet`: rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v - const xchainaccountcreatecommit_witness_1 = await client_lockingchain.submitAndWait({ - "TransactionType": "XChainAccountCreateCommit", - "Account": wallet_witness_1.address, - "Destination": "rD323VyRjgzzhY4bFpo44rmyh2neB5d8Mo", // The account to create and fund for witness 1 on the issuing chain. - "TransactionType": "XChainAccountCreateCommit", - "Amount": "20000000", - "SignatureReward": "100", - "XChainBridge": xchainbridge - }, {autofill: true, wallet: wallet_witness_1}) +const xchainaccountcreatecommit_witness_1 = await client_lockingchain.submitAndWait( + { + TransactionType: 'XChainAccountCreateCommit', + Account: wallet_witness_1.address, + Destination: 'rD323VyRjgzzhY4bFpo44rmyh2neB5d8Mo', // The account to create and fund for witness 1 on the issuing chain. + TransactionType: 'XChainAccountCreateCommit', + Amount: '20000000', + SignatureReward: '100', + XChainBridge: xchainbridge, + }, + { autofill: true, wallet: wallet_witness_1 }, +) - const xchainaccountcreatecommit_witness_2 = await client_lockingchain.submitAndWait({ - "TransactionType": "XChainAccountCreateCommit", - "Account": wallet_witness_2.address, - "Destination": "rJMfWNVbyjcCtds8kpoEjEbYQ41J5B6MUd", // The account to create and fund for witness 2 on the issuing chain. - "TransactionType": "XChainAccountCreateCommit", - "Amount": "20000000", - "SignatureReward": "100", - "XChainBridge": xchainbridged - }, {autofill: true, wallet: wallet_witness_1}) +const xchainaccountcreatecommit_witness_2 = await client_lockingchain.submitAndWait( + { + TransactionType: 'XChainAccountCreateCommit', + Account: wallet_witness_2.address, + Destination: 'rJMfWNVbyjcCtds8kpoEjEbYQ41J5B6MUd', // The account to create and fund for witness 2 on the issuing chain. + TransactionType: 'XChainAccountCreateCommit', + Amount: '20000000', + SignatureReward: '100', + XChainBridge: xchainbridged, + }, + { autofill: true, wallet: wallet_witness_1 }, +) ``` ### 7. Submit attestations for each `XChainAccountCreateCommit` transaction. @@ -153,77 +171,89 @@ const disablekey_lockingchain = await client_lockingchain.submitAndWait({ Use the `XChainAddAccountCreateAttestation` transaction to submit each attestation on the issuing chain. Sign these transactions with the genesis account on the issuing chain. ```javascript - // Witness 1 attestation - const xchainaddaccountcreateattestation_witness_1 = await client_issuingchain.submitAndWait({ - "TransactionType": "XChainAddAccountCreateAttestation", - "Account": wallet_issuingchain.address, - "OtherChainSource": wallet_witness_1.address, - "Destination": "rD323VyRjgzzhY4bFpo44rmyh2neB5d8Mo", - "Amount": "2000000000", - "PublicKey": wallet_witness_1.publicKey, - "Signature": xchainaccountcreatecommit_witness_1.result.TxnSignature, - "WasLockingChainSend": 1, - "AttestationRewardAccount": "rD323VyRjgzzhY4bFpo44rmyh2neB5d8Mo", - "AttestationSignerAccount": wallet_witness_1.address, - "XChainAccountCreateCount": "1", - "SignatureReward": "204", - "XChainBridge": xchainbridge, - "Fee": "20" - }, {autofill: true, wallet: wallet_issuingchain}) +// Witness 1 attestation +const xchainaddaccountcreateattestation_witness_1 = await client_issuingchain.submitAndWait( + { + TransactionType: 'XChainAddAccountCreateAttestation', + Account: wallet_issuingchain.address, + OtherChainSource: wallet_witness_1.address, + Destination: 'rD323VyRjgzzhY4bFpo44rmyh2neB5d8Mo', + Amount: '2000000000', + PublicKey: wallet_witness_1.publicKey, + Signature: xchainaccountcreatecommit_witness_1.result.TxnSignature, + WasLockingChainSend: 1, + AttestationRewardAccount: 'rD323VyRjgzzhY4bFpo44rmyh2neB5d8Mo', + AttestationSignerAccount: wallet_witness_1.address, + XChainAccountCreateCount: '1', + SignatureReward: '204', + XChainBridge: xchainbridge, + Fee: '20', + }, + { autofill: true, wallet: wallet_issuingchain }, +) - // Witness 2 attestation - const xchainaddaccountcreateattestation_witness_2 = await client_issuingchain.submitAndWait({ - "TransactionType": "XChainAddAccountCreateAttestation", - "Account": wallet_issuingchain.address, - "OtherChainSource": wallet_witness_2.address, - "Destination": "rJMfWNVbyjcCtds8kpoEjEbYQ41J5B6MUd", - "Amount": "2000000000", - "PublicKey": wallet_witness_2.publicKey, - "Signature": xchainaccountcreatecommit_witness_2.result.TxnSignature, - "WasLockingChainSend": 1, - "AttestationRewardAccount": "rJMfWNVbyjcCtds8kpoEjEbYQ41J5B6MUd", - "AttestationSignerAccount": wallet_witness_2.address, - "XChainAccountCreateCount": "1", - "SignatureReward": "204", - "XChainBridge": xchainbridge, - "Fee": "20" - }, {autofill: true, wallet: wallet_issuingchain}) +// Witness 2 attestation +const xchainaddaccountcreateattestation_witness_2 = await client_issuingchain.submitAndWait( + { + TransactionType: 'XChainAddAccountCreateAttestation', + Account: wallet_issuingchain.address, + OtherChainSource: wallet_witness_2.address, + Destination: 'rJMfWNVbyjcCtds8kpoEjEbYQ41J5B6MUd', + Amount: '2000000000', + PublicKey: wallet_witness_2.publicKey, + Signature: xchainaccountcreatecommit_witness_2.result.TxnSignature, + WasLockingChainSend: 1, + AttestationRewardAccount: 'rJMfWNVbyjcCtds8kpoEjEbYQ41J5B6MUd', + AttestationSignerAccount: wallet_witness_2.address, + XChainAccountCreateCount: '1', + SignatureReward: '204', + XChainBridge: xchainbridge, + Fee: '20', + }, + { autofill: true, wallet: wallet_issuingchain }, +) ``` ### 8. Submit a `SignerListSet` transaction from the genesis account on the issuing chain. ```javascript - const signerlistset_issuingchain = await client_issuingchain.submitAndWait({ - "TransactionType": "SignerListSet", - "Account": wallet_issuingchain.address, - "Fee": "12", - "SignerQuorum": 2, +const signerlistset_issuingchain = await client_issuingchain.submitAndWait( + { + TransactionType: 'SignerListSet', + Account: wallet_issuingchain.address, + Fee: '12', + SignerQuorum: 2, // Use the witness servers' submitting accounts on the issuing chain created in step 7 - "SignerEntries": [ - { - "SignerEntry": { - "Account": "rD323VyRjgzzhY4bFpo44rmyh2neB5d8Mo", - "SignerWeight": 1 - } + SignerEntries: [ + { + SignerEntry: { + Account: 'rD323VyRjgzzhY4bFpo44rmyh2neB5d8Mo', + SignerWeight: 1, }, - { - "SignerEntry": { - "Account": "rJMfWNVbyjcCtds8kpoEjEbYQ41J5B6MUd", - "SignerWeight": 1 - } - } - ] - }, {autofill: true, wallet: wallet_issuingchain}) + }, + { + SignerEntry: { + Account: 'rJMfWNVbyjcCtds8kpoEjEbYQ41J5B6MUd', + SignerWeight: 1, + }, + }, + ], + }, + { autofill: true, wallet: wallet_issuingchain }, +) ``` ### 9. Disable the master key on the issuing chain's genesis account with an `AccountSet` transaction. ```javascript -const disablekey_issuingchain = await client_issuingchain.submitAndWait({ - "TransactionType": "AccountSet", - "Account": wallet_issuingchain.address, - "SetFlag": 4 - }, {autofill: true, wallet: wallet_issuingchain}) +const disablekey_issuingchain = await client_issuingchain.submitAndWait( + { + TransactionType: 'AccountSet', + Account: wallet_issuingchain.address, + SetFlag: 4, + }, + { autofill: true, wallet: wallet_issuingchain }, +) ``` {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/tutorials/how-tos/use-xrpl-sidechains/submit-cross-chain-transaction.md b/docs/tutorials/how-tos/use-xrpl-sidechains/submit-cross-chain-transaction.md index f4d59cfb87..8e911e369a 100644 --- a/docs/tutorials/how-tos/use-xrpl-sidechains/submit-cross-chain-transaction.md +++ b/docs/tutorials/how-tos/use-xrpl-sidechains/submit-cross-chain-transaction.md @@ -1,9 +1,10 @@ --- seo: - description: Steps to submit a cross-chain transaction, using a bridge. + description: Steps to submit a cross-chain transaction, using a bridge. labels: - - Interoperability + - Interoperability --- + # Submit Cross-chain Transactions This tutorial explains how to create a test account on a locking chain (_Devent_), and transfer XRP to an issuing chain (_Sidechain-Devnet_), using a supported [client library](../../../references/client-libraries.md) to query and submit transactions. Witness servers are already set up to monitor the XRP-XRP bridge and submit attestations. @@ -16,7 +17,6 @@ This tutorial explains how to create a test account on a locking chain (_Devent_ - The witness servers are up and running. - Set up the XRP-XRP bridge. - ## Steps ### 1. Connect to the locking chain (Devnet) and issuing chain (Sidechain-Devnet). @@ -29,14 +29,14 @@ const WS_URL_issuingchain = 'wss://example-sidechain.net:12345/' // Issuing chai // Define the XChainBridge const xchainbridge = { - "LockingChainDoor": "rnQAXXWoFNN6PEqwqsdTngCtFPCrmfuqFJ", // Locking chain door account - "LockingChainIssue": { - "currency": "XRP" + LockingChainDoor: 'rnQAXXWoFNN6PEqwqsdTngCtFPCrmfuqFJ', // Locking chain door account + LockingChainIssue: { + currency: 'XRP', + }, + IssuingChainDoor: 'rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh', // Use the genesis address hardcoded in rippled + IssuingChainIssue: { + currency: 'XRP', }, - "IssuingChainDoor": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", // Use the genesis address hardcoded in rippled - "IssuingChainIssue": { - "currency": "XRP" - } } async function main() { @@ -60,55 +60,61 @@ main() ### 2. Fund a wallet on Devnet and generate a wallet address for Sidechain-Devnet. ```javascript - // Create a wallet and fund it using the XRP faucet on Devnet. - const wallet_lockingchain = (await client_lockingchain.fundWallet()).wallet - console.log(wallet_lockingchain.address) +// Create a wallet and fund it using the XRP faucet on Devnet. +const wallet_lockingchain = (await client_lockingchain.fundWallet()).wallet +console.log(wallet_lockingchain.address) - // Generate a wallet to create and fund on the issuing chain. - const wallet_issuingchain = await xrpl.Wallet.generate() - console.log(wallet_issuingchain.address) +// Generate a wallet to create and fund on the issuing chain. +const wallet_issuingchain = await xrpl.Wallet.generate() +console.log(wallet_issuingchain.address) ``` ### 3. Submit an `XChainAccountCreateCommit` transaction from the Devnet wallet. ```javascript - const createwallet_issuingchain = await client_lockingchain.submitAndWait({ - "TransactionType": "XChainAccountCreateCommit", - "Account": wallet_lockingchain.address, - "Destination": wallet_issuingchain.address, - "XChainBridge": xchainbridge, - "SignatureReward": "100", - "Amount": "5000000000" - }, {autofill: true, wallet: wallet_lockingchain}) +const createwallet_issuingchain = await client_lockingchain.submitAndWait( + { + TransactionType: 'XChainAccountCreateCommit', + Account: wallet_lockingchain.address, + Destination: wallet_issuingchain.address, + XChainBridge: xchainbridge, + SignatureReward: '100', + Amount: '5000000000', + }, + { autofill: true, wallet: wallet_lockingchain }, +) ``` ### 4. Create a claim ID with `XChainCreateClaimID`, using your account on the issuing chain. ```javascript - const createclaim = await client_issuingchain.submitAndWait({ - "TransactionType": "XChainCreateClaimID", - "Account": wallet_issuingchain.address, - "OtherChainSource": wallet_lockingchain.address, - "SignatureReward": "100", - "XChainBridge": xchainbridge - }, {autofill: true, wallet: wallet_issuingchain}) +const createclaim = await client_issuingchain.submitAndWait( + { + TransactionType: 'XChainCreateClaimID', + Account: wallet_issuingchain.address, + OtherChainSource: wallet_lockingchain.address, + SignatureReward: '100', + XChainBridge: xchainbridge, + }, + { autofill: true, wallet: wallet_issuingchain }, +) ``` ### 5. Retrieve the claim ID from the transaction metadata. ```javascript - let metadata = createclaim.result.meta.AffectedNodes +let metadata = createclaim.result.meta.AffectedNodes - let claimnode = null; +let claimnode = null - for (const item of metadata) { - if (item.CreatedNode && item.CreatedNode.LedgerEntryType === 'XChainOwnedClaimID') { - claimnode = item.CreatedNode - break - } +for (const item of metadata) { + if (item.CreatedNode && item.CreatedNode.LedgerEntryType === 'XChainOwnedClaimID') { + claimnode = item.CreatedNode + break } +} - const claimID = claimnode.NewFields.XChainClaimID +const claimID = claimnode.NewFields.XChainClaimID ``` ### 6. Submit an `XChainCommit` transaction with the claim ID, using your account on the locking chain. @@ -116,14 +122,17 @@ main() If you don't specify an "OtherChainDestination", the account that submitted the `XChainCreateClaimID` transaction needs to submit an `XChainClaim` transaction to claim the funds. ```javascript - const xchaincommit = await client_lockingchain.submitAndWait({ - "TransactionType": "XChainCommit", - "Account": wallet_lockingchain.address, - "OtherChainDestination": wallet_issuingchain.address, - "Amount": "10000", - "XChainBridge": xchainbridge, - "XChainClaimID": claimID - }, {autofill: true, wallet: wallet_lockingchain}) +const xchaincommit = await client_lockingchain.submitAndWait( + { + TransactionType: 'XChainCommit', + Account: wallet_lockingchain.address, + OtherChainDestination: wallet_issuingchain.address, + Amount: '10000', + XChainBridge: xchainbridge, + XChainClaimID: claimID, + }, + { autofill: true, wallet: wallet_lockingchain }, +) ``` {% admonition type="info" name="Note" %}When enough `XChainAddClaimAttestation` signatures are submitted by the witness servers to reach quorum, the funds are released on the issuing chain to the `OtherChainDestination`.{% /admonition %} diff --git a/docs/tutorials/http-websocket-apis/build-apps/get-started.md b/docs/tutorials/http-websocket-apis/build-apps/get-started.md index 82edbc65ef..c3d30be911 100644 --- a/docs/tutorials/http-websocket-apis/build-apps/get-started.md +++ b/docs/tutorials/http-websocket-apis/build-apps/get-started.md @@ -2,7 +2,7 @@ html: get-started-using-http-websocket-apis.html parent: http-websocket-apis-tutorials.html seo: - description: Unleash the full power of the XRP Ledger's native APIs. + description: Unleash the full power of the XRP Ledger's native APIs. cta_text: Get Started top_nav_name: HTTP / WebSocket top_nav_grouping: Get Started @@ -10,6 +10,7 @@ labels: - Development showcase_icon: assets/img/logos/globe.svg --- + # Get Started Using HTTP / WebSocket APIs If you don't have or don't want to use a [client library](../../../references/client-libraries.md) in your preferred programming language, you can access the XRP Ledger directly through the APIs of its core server software, [`rippled`](../../../concepts/networks-and-servers/index.md). The server provides APIs over JSON-RPC and WebSocket protocols. If you don't [run your own instance of `rippled`](../../../infrastructure/installation/index.md) you can still use a [public server][public servers]. @@ -25,14 +26,12 @@ Both JSON-RPC and WebSocket are HTTP-based protocols, and for the most part the Both APIs can be served unencrypted (`http://` and `ws://`) or encrypted using TLS (`https://` and `wss://`). Unencrypted connections should not be served over open networks, but can be used when the client is on the same machine as the server. - ## Admin Access The API methods are divided into [Public Methods](../../../references/http-websocket-apis/public-api-methods/index.md) and [Admin Methods](../../../references/http-websocket-apis/admin-api-methods/index.md) so that organizations can offer public servers for the benefit of the community. To access admin methods, or admin functionality of public methods, you must connect to the API on a **port and IP address marked as admin** in the server's config file. The [example config file](https://github.com/XRPLF/rippled/blob/f00f263852c472938bf8e993e26c7f96f435935c/cfg/rippled-example.cfg#L1154-L1179) listens for connections on the local loopback network (127.0.0.1), with JSON-RPC (HTTP) on port 5005 and WebSocket (WS) on port 6006, and treats all connected clients as admin. - ## WebSocket API If you are looking to try out some methods on the XRP Ledger, you can skip writing your own WebSocket code and go straight to using the API at the [WebSocket API Tool](/resources/dev-tools/websocket-api-tool). Later on, when you want to connect to your own `rippled` server, you can [build your own client](monitor-incoming-payments-with-websocket.md) or use a [client library](../../../references/client-libraries.md) with WebSocket support. @@ -87,7 +86,7 @@ rippled --conf=/etc/opt/ripple/rippled.cfg server_info Read more: [Commandline Usage Reference >](../../../infrastructure/commandline-usage.md) -{% admonition type="warning" name="Caution" %}The commandline interface is intended for administrative purposes only and is _not a supported API_. New versions of `rippled` may introduce breaking changes to the commandline API without warning!{% /admonition %} +{% admonition type="warning" name="Caution" %}The commandline interface is intended for administrative purposes only and is _not a supported API_. New versions of `rippled` may introduce breaking changes to the commandline API without warning!{% /admonition %} ## Available Methods @@ -96,18 +95,17 @@ For a full list of API methods, see: - [Public `rippled` Methods](../../../references/http-websocket-apis/public-api-methods/index.md): Methods available on public servers, including looking up data from the ledger and submitting transactions. - [Admin `rippled` Methods](../../../references/http-websocket-apis/admin-api-methods/index.md): Methods for [managing](../../../infrastructure/installation/install-rippled-on-ubuntu.md) the `rippled` server. - ## See Also - **Concepts:** - - [XRP Ledger Overview](/about/) - - [Client Libraries](../../../references/client-libraries.md) - - [Parallel Networks](../../../concepts/networks-and-servers/parallel-networks.md) + - [XRP Ledger Overview](/about/) + - [Client Libraries](../../../references/client-libraries.md) + - [Parallel Networks](../../../concepts/networks-and-servers/parallel-networks.md) - **Tutorials:** - - [Get Started Using JavaScript](get-started.md) - - [Reliable Transaction Submission](../../../concepts/transactions/reliable-transaction-submission.md) - - [Manage the rippled Server](../../../infrastructure/installation/install-rippled-on-ubuntu.md) + - [Get Started Using JavaScript](get-started.md) + - [Reliable Transaction Submission](../../../concepts/transactions/reliable-transaction-submission.md) + - [Manage the rippled Server](../../../infrastructure/installation/install-rippled-on-ubuntu.md) - **References:** - - [rippled API Reference](../../../references/http-websocket-apis/index.md) + - [rippled API Reference](../../../references/http-websocket-apis/index.md) {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/tutorials/http-websocket-apis/build-apps/index.md b/docs/tutorials/http-websocket-apis/build-apps/index.md index 76532518b8..ab34c8c99b 100644 --- a/docs/tutorials/http-websocket-apis/build-apps/index.md +++ b/docs/tutorials/http-websocket-apis/build-apps/index.md @@ -5,9 +5,9 @@ top_nav_grouping: Article Types metadata: indexPage: true --- + # Build Applications with HTTP-Websocket Library Build applications in HTTP-Websocket. - {% child-pages /%} diff --git a/docs/tutorials/http-websocket-apis/build-apps/monitor-incoming-payments-with-websocket.md b/docs/tutorials/http-websocket-apis/build-apps/monitor-incoming-payments-with-websocket.md index 0e67198517..46602373de 100644 --- a/docs/tutorials/http-websocket-apis/build-apps/monitor-incoming-payments-with-websocket.md +++ b/docs/tutorials/http-websocket-apis/build-apps/monitor-incoming-payments-with-websocket.md @@ -2,12 +2,13 @@ html: monitor-incoming-payments-with-websocket.html parent: http-websocket-apis-tutorials.html seo: - description: Use the WebSocket API to actively monitor for new XRP payments (and more). + description: Use the WebSocket API to actively monitor for new XRP payments (and more). filters: - interactive_steps labels: - Payments --- + # Monitor Incoming Payments with WebSocket This tutorial shows how to monitor for incoming [payments](../../../concepts/payment-types/index.md) using the [WebSocket API](../../../references/http-websocket-apis/index.md). Since all XRP Ledger transactions are public, anyone can monitor incoming payments to any address. @@ -22,7 +23,6 @@ WebSocket follows a model where the client and server open one connection, then - You need a stable internet connection and access to an XRP Ledger server. The embedded examples connect to Ripple's pool of public servers. If you [run your own `rippled` or Clio server](../../../infrastructure/installation/index.md), you can also connect to that server locally. - To properly handle XRP values without rounding errors, you need access to a number type that can do math on 64-bit unsigned integers. The examples in this tutorial use [big.js](https://github.com/MikeMcl/big.js/). If you are working with [tokens](../../../concepts/tokens/index.md), you need even more precision. For more information, see [Currency Precision](../../../references/protocol/data-types/currency-formats.md#xrp-precision). - @@ -37,7 +37,6 @@ function writeToConsole(console_selector, message) { } - ## 1. Connect to the XRP Ledger The first step of monitoring for incoming payments is to connect to the XRP Ledger, specifically a `rippled` server. @@ -48,10 +47,10 @@ The following JavaScript code connects to one of Ripple's public server clusters const socket = new WebSocket('wss://s.altnet.rippletest.net:51233') socket.addEventListener('open', (event) => { // This callback runs when the connection is open - console.log("Connected!") + console.log('Connected!') const command = { - "id": "on_open_ping_1", - "command": "ping" + id: 'on_open_ping_1', + command: 'ping', } socket.send(JSON.stringify(command)) }) @@ -80,6 +79,7 @@ Example: Connection status: Not connected +
    Console:
    (Log is empty)
    @@ -114,18 +114,16 @@ $("#connect-socket-button").click((event) => { }) - ## 2. Dispatch Incoming Messages to Handlers Since WebSocket connections can have several messages going each way and there is not a strict 1:1 correlation between requests and responses, you need to identify what to do with each incoming message. A good model for coding this is to set up a "dispatcher" function that reads incoming messages and relays each message to the correct code path for handling it. To help dispatch messages appropriately, the `rippled` server provides a `type` field on every WebSocket message: - For any message that is a direct response to a request from the client side, the `type` is the string `response`. In this case, the server also provides the following: + - An `id` field that matches the `id` provided in the request this is a response for. (This is important because responses may arrive out of order.) - - An `id` field that matches the `id` provided in the request this is a response for. (This is important because responses may arrive out of order.) + - A `status` field that indicates whether the API successfully processed your request. The string value `success` indicates [a successful response](../../../references/http-websocket-apis/api-conventions/response-formatting.md). The string value `error` indicates [an error](../../../references/http-websocket-apis/api-conventions/error-formatting.md). - - A `status` field that indicates whether the API successfully processed your request. The string value `success` indicates [a successful response](../../../references/http-websocket-apis/api-conventions/response-formatting.md). The string value `error` indicates [an error](../../../references/http-websocket-apis/api-conventions/error-formatting.md). - - {% admonition type="danger" name="Warning" %}When submitting transactions, a `status` of `success` at the top level of the WebSocket message does not mean that the transaction itself succeeded. It only indicates that the server understood your request. For looking up a transaction's actual outcome, see [Look Up Transaction Results](../../../concepts/transactions/finality-of-results/look-up-transaction-results.md).{% /admonition %} + {% admonition type="danger" name="Warning" %}When submitting transactions, a `status` of `success` at the top level of the WebSocket message does not mean that the transaction itself succeeded. It only indicates that the server understood your request. For looking up a transaction's actual outcome, see [Look Up Transaction Results](../../../concepts/transactions/finality-of-results/look-up-transaction-results.md).{% /admonition %} - For follow-up messages from [subscriptions](../../../references/http-websocket-apis/public-api-methods/subscription-methods/subscribe.md), the `type` indicates the type of follow-up message it is, such as the notification of a new transaction, ledger, or validation; or a follow-up to an ongoing [pathfinding request](../../../references/http-websocket-apis/public-api-methods/path-and-order-book-methods/path_find.md). Your client only receives these messages if it subscribes to them. @@ -135,41 +133,41 @@ The following JavaScript code defines a helper function to make API requests int ```js const AWAITING = {} -const handleResponse = function(data) { - if (!data.hasOwnProperty("id")) { - console.error("Got response event without ID:", data) +const handleResponse = function (data) { + if (!data.hasOwnProperty('id')) { + console.error('Got response event without ID:', data) return } if (AWAITING.hasOwnProperty(data.id)) { AWAITING[data.id].resolve(data) } else { - console.warn("Response to un-awaited request w/ ID " + data.id) + console.warn('Response to un-awaited request w/ ID ' + data.id) } } let autoid_n = 0 function api_request(options) { - if (!options.hasOwnProperty("id")) { - options.id = "autoid_" + (autoid_n++) + if (!options.hasOwnProperty('id')) { + options.id = 'autoid_' + autoid_n++ } - let resolveHolder; + let resolveHolder AWAITING[options.id] = new Promise((resolve, reject) => { // Save the resolve func to be called by the handleResponse function later resolveHolder = resolve try { // Use the socket opened in the previous example... socket.send(JSON.stringify(options)) - } catch(error) { + } catch (error) { reject(error) } }) - AWAITING[options.id].resolve = resolveHolder; + AWAITING[options.id].resolve = resolveHolder return AWAITING[options.id] } const WS_HANDLERS = { - "response": handleResponse + response: handleResponse, // Fill this out with your handlers in the following format: // "type": function(event) { /* handle event of this type */ } } @@ -179,15 +177,15 @@ socket.addEventListener('message', (event) => { // Call the mapped handler WS_HANDLERS[parsed_data.type](parsed_data) } else { - console.log("Unhandled message from server", event) + console.log('Unhandled message from server', event) } }) // Show api_request functionality async function pingpong() { - console.log("Ping...") - const response = await api_request({command: "ping"}) - console.log("Pong!", response) + console.log('Ping...') + const response = await api_request({ command: 'ping' }) + console.log('Pong!', response) } // Add pingpong() to the 'open' listener for socket ``` @@ -196,6 +194,7 @@ async function pingpong() { +
    Responses
    (Log is empty)
    @@ -274,25 +273,31 @@ The following code sample subscribes to the Test Net Faucet's sending address. I ```js async function do_subscribe() { const sub_response = await api_request({ - command:"subscribe", - accounts: ["rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe"] + command: 'subscribe', + accounts: ['rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe'], }) - if (sub_response.status === "success") { - console.log("Successfully subscribed!") + if (sub_response.status === 'success') { + console.log('Successfully subscribed!') } else { - console.error("Error subscribing: ", sub_response) + console.error('Error subscribing: ', sub_response) } } // Add do_subscribe() to the 'open' listener for socket -const log_tx = function(tx) { - console.log(tx.transaction.TransactionType + " transaction sent by " + - tx.transaction.Account + - "\n Result: " + tx.meta.TransactionResult + - " in ledger " + tx.ledger_index + - "\n Validated? " + tx.validated) +const log_tx = function (tx) { + console.log( + tx.transaction.TransactionType + + ' transaction sent by ' + + tx.transaction.Account + + '\n Result: ' + + tx.meta.TransactionResult + + ' in ledger ' + + tx.ledger_index + + '\n Validated? ' + + tx.validated, + ) } -WS_HANDLERS["transaction"] = log_tx +WS_HANDLERS['transaction'] = log_tx ``` For the following example, try opening the [Transaction Sender](/resources/dev-tools/tx-sender) in a different window or even on a different device and sending transactions to the address you subscribed to: @@ -302,6 +307,7 @@ For the following example, try opening the [Transaction Sender](/resources/dev-t +
    Transactions
    (Log is empty)
    @@ -338,7 +344,6 @@ const log_tx = function(tx) { WS_HANDLERS["transaction"] = log_tx - ## 4. Read Incoming Payments When you subscribe to an account, you get messages for _all transactions to or from the account_, as well as _transactions that affect the account indirectly_, such as trading its [tokens](../../../concepts/tokens/index.md). If your goal is to recognize when the account has received incoming payments, you must filter the transactions stream and process the payments based on the amount they actually delivered. Look for the following information: @@ -347,19 +352,19 @@ When you subscribe to an account, you get messages for _all transactions to or f - The **`meta.TransactionResult` field** is the [transaction result](../../../references/protocol/transactions/transaction-results/index.md). If the result is not `tesSUCCESS`, the transaction failed and cannot have delivered any value. - The **`transaction.Account`** field is the sender of the transaction. If you are only looking for transactions sent by others, you can ignore any transactions where this field matches your account's address. (Keep in mind, it _is_ possible to make a cross-currency payment to yourself.) - The **`transaction.TransactionType` field** is the type of transaction. The transaction types that can possibly deliver currency to an account are as follows: - - **[Payment transactions][]** can deliver XRP or [tokens](../../../concepts/tokens/index.md). Filter these by the `transaction.Destination` field, which contains the address of the recipient, and always use the `meta.delivered_amount` to see how much the payment actually delivered. XRP amounts are [formatted as strings](../../../references/protocol/data-types/basic-data-types.md#specifying-currency-amounts). + - **[Payment transactions][]** can deliver XRP or [tokens](../../../concepts/tokens/index.md). Filter these by the `transaction.Destination` field, which contains the address of the recipient, and always use the `meta.delivered_amount` to see how much the payment actually delivered. XRP amounts are [formatted as strings](../../../references/protocol/data-types/basic-data-types.md#specifying-currency-amounts). - {% admonition type="danger" name="Warning" %}If you use the `transaction.Amount` field instead, you may be vulnerable to the [partial payments exploit](../../../concepts/payment-types/partial-payments.md#partial-payments-exploit). Malicious users can use this exploit to trick you into allowing the malicious user to trade or withdraw more money than they paid you.{% /admonition %} + {% admonition type="danger" name="Warning" %}If you use the `transaction.Amount` field instead, you may be vulnerable to the [partial payments exploit](../../../concepts/payment-types/partial-payments.md#partial-payments-exploit). Malicious users can use this exploit to trick you into allowing the malicious user to trade or withdraw more money than they paid you.{% /admonition %} - - **[CheckCash transactions][]** allow an account to receive money authorized by a different account's [CheckCreate transaction][]. Look at the metadata of a **CheckCash transaction** to see how much currency the account received. + - **[CheckCash transactions][]** allow an account to receive money authorized by a different account's [CheckCreate transaction][]. Look at the metadata of a **CheckCash transaction** to see how much currency the account received. - - **[EscrowFinish transactions][]** can deliver XRP by finishing an [Escrow](../../../concepts/payment-types/escrow.md) created by a previous [EscrowCreate transaction][]. Look at the metadata of the **EscrowFinish transaction** to see which account received XRP from the escrow and how much. + - **[EscrowFinish transactions][]** can deliver XRP by finishing an [Escrow](../../../concepts/payment-types/escrow.md) created by a previous [EscrowCreate transaction][]. Look at the metadata of the **EscrowFinish transaction** to see which account received XRP from the escrow and how much. - - **[OfferCreate transactions][]** can deliver XRP or tokens by consuming offers your account has previously placed in the XRP Ledger's [decentralized exchange](../../../concepts/tokens/decentralized-exchange/index.md). If you never place offers, you cannot receive money this way. Look at the metadata to see what currency the account received, if any, and how much. + - **[OfferCreate transactions][]** can deliver XRP or tokens by consuming offers your account has previously placed in the XRP Ledger's [decentralized exchange](../../../concepts/tokens/decentralized-exchange/index.md). If you never place offers, you cannot receive money this way. Look at the metadata to see what currency the account received, if any, and how much. - - **[PaymentChannelClaim transactions][]** can deliver XRP from a [payment channel](../../../concepts/payment-types/payment-channels.md). Look at the metadata to see which accounts, if any, received XRP from the transaction. + - **[PaymentChannelClaim transactions][]** can deliver XRP from a [payment channel](../../../concepts/payment-types/payment-channels.md). Look at the metadata to see which accounts, if any, received XRP from the transaction. - - **[PaymentChannelFund transactions][]** can return XRP from a closed (expired) payment channel to the sender. + - **[PaymentChannelFund transactions][]** can return XRP from a closed (expired) payment channel to the sender. - The **`meta` field** contains [transaction metadata](../../../references/protocol/transactions/metadata.md), including exactly how much of which currency or currencies was delivered where. See [Look Up transaction Results](../../../concepts/transactions/finality-of-results/look-up-transaction-results.md) for more information on how to understand transaction metadata. @@ -370,6 +375,7 @@ The following sample code looks at transaction metadata of all the above transac {% interactive-block label="Read Payments" steps=$frontmatter.steps %} +
    Transactions
    (Log is empty)
    @@ -495,7 +501,6 @@ Many programming languages have libraries for sending and receiving data over a {% admonition type="success" name="Tip" %}Don't see the programming language of your choice? Click the "Edit on GitHub" link at the top of this page and contribute your own sample code!{% /admonition %} - ## Footnotes [1.](#from-footnote-1) In practice, when calling an HTTP-based API multiple times, the client and server may reuse the same connection for several requests and responses. This practice is called [HTTP persistent connection, or keep-alive](https://en.wikipedia.org/wiki/HTTP_persistent_connection). From a development standpoint, the code to use an HTTP-based API is the same regardless of whether the underlying connection is new or reused. @@ -503,14 +508,14 @@ Many programming languages have libraries for sending and receiving data over a ## See Also - **Concepts:** - - [Transactions](../../../concepts/transactions/index.md) - - [Finality of Results](../../../concepts/transactions/finality-of-results/index.md) - How to know when a transaction's success or failure is final. (Short version: if a transaction is in a validated ledger, its outcome and metadata are final.) + - [Transactions](../../../concepts/transactions/index.md) + - [Finality of Results](../../../concepts/transactions/finality-of-results/index.md) - How to know when a transaction's success or failure is final. (Short version: if a transaction is in a validated ledger, its outcome and metadata are final.) - **Tutorials:** - - [Reliable Transaction Submission](../../../concepts/transactions/reliable-transaction-submission.md) - - [Look Up Transaction Results](../../../concepts/transactions/finality-of-results/look-up-transaction-results.md) + - [Reliable Transaction Submission](../../../concepts/transactions/reliable-transaction-submission.md) + - [Look Up Transaction Results](../../../concepts/transactions/finality-of-results/look-up-transaction-results.md) - **References:** - - [Transaction Types](../../../references/protocol/transactions/types/index.md) - - [Transaction Metadata](../../../references/protocol/transactions/metadata.md) - Summary of the metadata format and fields that appear in metadata - - [Transaction Results](../../../references/protocol/transactions/transaction-results/index.md) - Tables of all possible result codes for transactions. + - [Transaction Types](../../../references/protocol/transactions/types/index.md) + - [Transaction Metadata](../../../references/protocol/transactions/metadata.md) - Summary of the metadata format and fields that appear in metadata + - [Transaction Results](../../../references/protocol/transactions/transaction-results/index.md) - Tables of all possible result codes for transactions. {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/tutorials/http-websocket-apis/index.md b/docs/tutorials/http-websocket-apis/index.md index d94798d7fb..cc5dd79fd7 100644 --- a/docs/tutorials/http-websocket-apis/index.md +++ b/docs/tutorials/http-websocket-apis/index.md @@ -5,9 +5,9 @@ top_nav_grouping: Article Types metadata: indexPage: true --- + # HTTP / Websocket APIs XRPL tutorials for HTTP / Websocket APIs. - {% child-pages /%} diff --git a/docs/tutorials/index.md b/docs/tutorials/index.md index 8fb00320f3..8c3848e5b2 100644 --- a/docs/tutorials/index.md +++ b/docs/tutorials/index.md @@ -1,7 +1,8 @@ --- seo: - description: Learn how to get started building on the XRP Ledger with these helpful crypto wallet and blockchain tutorials for developers. + description: Learn how to get started building on the XRP Ledger with these helpful crypto wallet and blockchain tutorials for developers. --- + # Crypto Wallet and Blockchain Development Tutorials The XRP Ledger tutorials walk you through the steps to learn and get started with the XRP Ledger and to use the ledger for advanced use cases. @@ -37,5 +38,4 @@ These examples provide step-by-step instructions for administrative tasks. {% xrpl-card title="Use Tokens" body="Create and trade tokens (fungible or otherwise) in the XRP Ledger." href="/docs/tutorials/how-tos/use-tokens/" /%} {% xrpl-card title="Use XRPL Sidechains" body="Bridge XRP and tokens from Mainnet to XRPL sidechains." href="/docs/tutorials/how-tos/use-xrpl-sidechains/" /%} - {% /card-grid %} diff --git a/docs/tutorials/java/build-apps/get-started.md b/docs/tutorials/java/build-apps/get-started.md index 26237bbb2c..7c831395b3 100644 --- a/docs/tutorials/java/build-apps/get-started.md +++ b/docs/tutorials/java/build-apps/get-started.md @@ -5,7 +5,7 @@ funnel: Build doc_type: Tutorials category: Get Started seo: - description: Build a Java app that interacts with the XRP Ledger. + description: Build a Java app that interacts with the XRP Ledger. cta_text: Build an XRP Ledger-connected app top_nav_name: Java top_nav_grouping: Get Started @@ -13,6 +13,7 @@ labels: - Development showcase_icon: assets/img/logos/java.svg --- + # Get Started Using Java Library This tutorial walks you through the basics of building an XRP Ledger-connected application using [`xrpl4j`](https://github.com/XRPLF/xrpl4j), a pure Java library built to interact with the XRP Ledger. @@ -23,17 +24,16 @@ This tutorial is intended for beginners and should take no longer than 30 minute In this tutorial, you'll learn: -* The basic building blocks of XRP Ledger-based applications. -* How to connect to the XRP Ledger using `xrpl4j`. -* How to get an account on the [Testnet](/resources/dev-tools/xrp-faucets) using `xrpl4j`. -* How to use the `xrpl4j` library to look up information about an account on the XRP Ledger. -* How to put these steps together to create a Java app. +- The basic building blocks of XRP Ledger-based applications. +- How to connect to the XRP Ledger using `xrpl4j`. +- How to get an account on the [Testnet](/resources/dev-tools/xrp-faucets) using `xrpl4j`. +- How to use the `xrpl4j` library to look up information about an account on the XRP Ledger. +- How to put these steps together to create a Java app. ## Requirements -* The `xrpl4j` library supports Java 1.8 and later. -* A project management tool such as [Maven](https://maven.apache.org/) or [Gradle](https://gradle.org/). - +- The `xrpl4j` library supports Java 1.8 and later. +- A project management tool such as [Maven](https://maven.apache.org/) or [Gradle](https://gradle.org/). ## Installation @@ -85,7 +85,6 @@ Here are the basic steps you'll need to cover for almost any XRP Ledger project: 1. [Get an account.](#2-get-account) 1. [Query the XRP Ledger.](#3-query-the-xrp-ledger) - ### 1. Connect to the XRP Ledger To make queries and submit transactions, you need to connect to the XRP Ledger. To do this with `xrpl4j`, @@ -97,21 +96,21 @@ you can use an [`XrplClient`](https://javadoc.io/doc/org.xrpl/xrpl4j-client/3.0. The sample code in the previous section shows you how to connect to the Testnet, which is one of the available [parallel networks](../../../concepts/networks-and-servers/parallel-networks.md). When you're ready to integrate with the production XRP Ledger, you'll need to connect to the Mainnet. You can do that in two ways: -* By [installing the core server](../../../infrastructure/installation/index.md) (`rippled`) and running a node yourself. The core server connects to the Mainnet by default, but you can [change the configuration to use Testnet or Devnet](../../../infrastructure/configuration/connect-your-rippled-to-the-xrp-test-net.md). [There are good reasons to run your own core server](../../../concepts/networks-and-servers/index.md#reasons-to-run-your-own-server). If you run your own server, you can connect to it like so: +- By [installing the core server](../../../infrastructure/installation/index.md) (`rippled`) and running a node yourself. The core server connects to the Mainnet by default, but you can [change the configuration to use Testnet or Devnet](../../../infrastructure/configuration/connect-your-rippled-to-the-xrp-test-net.md). [There are good reasons to run your own core server](../../../concepts/networks-and-servers/index.md#reasons-to-run-your-own-server). If you run your own server, you can connect to it like so: - ``` - final HttpUrl rippledUrl = HttpUrl.get("http://localhost:5005/"); - XrplClient xrplClient = new XrplClient(rippledUrl); - ``` + ``` + final HttpUrl rippledUrl = HttpUrl.get("http://localhost:5005/"); + XrplClient xrplClient = new XrplClient(rippledUrl); + ``` - See the example [core server config file](https://github.com/XRPLF/rippled/blob/c0a0b79d2d483b318ce1d82e526bd53df83a4a2c/cfg/rippled-example.cfg#L1562) for more information about default values. + See the example [core server config file](https://github.com/XRPLF/rippled/blob/c0a0b79d2d483b318ce1d82e526bd53df83a4a2c/cfg/rippled-example.cfg#L1562) for more information about default values. -* By using one of the available [public servers][]: +- By using one of the available [public servers][]: - ``` - final HttpUrl rippledUrl = HttpUrl.get("https://s2.ripple.com:51234/"); - XrplClient xrplClient = new XrplClient(rippledUrl); - ``` + ``` + final HttpUrl rippledUrl = HttpUrl.get("https://s2.ripple.com:51234/"); + XrplClient xrplClient = new XrplClient(rippledUrl); + ``` ### 2. Get account @@ -121,7 +120,6 @@ To generate a new account, `xrpl4j` provides the [`DefaultWalletFactory`](https: {% code-snippet file="/_code-samples/get-started/java/GetAccountInfo.java" from="// Create a random KeyPair" before="// Derive the Classic and X-Addresses from testWallet" language="java" /%} - The result of a call to `walletFactory.randomWallet(true).wallet()` is a [`Wallet` instance](https://javadoc.io/doc/org.xrpl/xrpl4j-keypairs/latest/org/xrpl/xrpl4j/wallet/Wallet.html): ```java @@ -149,7 +147,6 @@ Here, we'll use the [`XrplClient` we constructed](#1-connect-to-the-xrp-ledger) {% code-snippet file="/_code-samples/get-started/java/GetAccountInfo.java" from="// Look up your Account Info" before="// Print the result" language="java" /%} - ### 4. Putting it all together Using these building blocks, we can create a Java app that: @@ -158,7 +155,6 @@ Using these building blocks, we can create a Java app that: 2. Connects to the XRP Ledger. 3. Looks up and prints information about the account you created. - {% code-snippet file="/_code-samples/get-started/java/GetAccountInfo.java" language="java" /%} To run the app, you can download the code from [Github](https://github.com/XRPLF/xrpl4j-sample) and run `GetAccountInfo` either @@ -209,20 +205,19 @@ AccountInfoResult{ The response fields contained in `AccountInfoResult` that you want to inspect in most cases are: -* `accountData.sequence` — This is the sequence number of the next valid transaction for the account. You need to specify the sequence number when you prepare transactions. +- `accountData.sequence` — This is the sequence number of the next valid transaction for the account. You need to specify the sequence number when you prepare transactions. -* `accountData.balance` — This is the account's balance of XRP, in drops. You can use this to confirm that you have enough XRP to send (if you're making a payment) and to meet the [current transaction cost](../../../concepts/transactions/transaction-cost.md#current-transaction-cost) for a given transaction. +- `accountData.balance` — This is the account's balance of XRP, in drops. You can use this to confirm that you have enough XRP to send (if you're making a payment) and to meet the [current transaction cost](../../../concepts/transactions/transaction-cost.md#current-transaction-cost) for a given transaction. -* `validated` — Indicates whether the returned data is from a [validated ledger](../../../concepts/ledgers/open-closed-validated-ledgers.md). When inspecting transactions, it's important to confirm that [the results are final](../../../concepts/transactions/finality-of-results/index.md) before further processing the transaction. If `validated` is `true` then you know for sure the results won't change. For more information about best practices for transaction processing, see [Reliable Transaction Submission](../../../concepts/transactions/reliable-transaction-submission.md). +- `validated` — Indicates whether the returned data is from a [validated ledger](../../../concepts/ledgers/open-closed-validated-ledgers.md). When inspecting transactions, it's important to confirm that [the results are final](../../../concepts/transactions/finality-of-results/index.md) before further processing the transaction. If `validated` is `true` then you know for sure the results won't change. For more information about best practices for transaction processing, see [Reliable Transaction Submission](../../../concepts/transactions/reliable-transaction-submission.md). For a detailed description of every response field, see [account_info](../../../references/http-websocket-apis/public-api-methods/account-methods/account_info.md#response-format). - ## Keep on building Now that you know how to use `xrpl4j` to connect to the XRP Ledger, get an account, and look up information about it, you can also use `xrpl4j` to: -* [Send XRP](../../how-tos/send-xrp.md). -* [Set up secure signing](../../../concepts/transactions/secure-signing.md) for your account. +- [Send XRP](../../how-tos/send-xrp.md). +- [Set up secure signing](../../../concepts/transactions/secure-signing.md) for your account. {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/tutorials/java/build-apps/index.md b/docs/tutorials/java/build-apps/index.md index 7674e9fae5..6ebf24a039 100644 --- a/docs/tutorials/java/build-apps/index.md +++ b/docs/tutorials/java/build-apps/index.md @@ -5,9 +5,9 @@ top_nav_grouping: Article Types metadata: indexPage: true --- + # Build Applications with Java Library Build full-featured applications in Java. - {% child-pages /%} diff --git a/docs/tutorials/java/index.md b/docs/tutorials/java/index.md index 3da7309c83..fc33d55ea3 100644 --- a/docs/tutorials/java/index.md +++ b/docs/tutorials/java/index.md @@ -5,6 +5,7 @@ top_nav_grouping: Article Types metadata: indexPage: true --- + # Java You can create your own interface to try out the capabilities and support your specific business needs. These tutorials build a test harness interface to try out features of the XRP Ledger. The harness displays multiple accounts, so that you can transfer tokens from one account to the other and see the results in real time. @@ -20,4 +21,4 @@ Once familiar with the library functions, you can build sample applications in J ## Tutorial Modules -{% child-pages /%} \ No newline at end of file +{% child-pages /%} diff --git a/docs/tutorials/javascript/amm/add-assets-to-amm.md b/docs/tutorials/javascript/amm/add-assets-to-amm.md index 54fda48b01..27123a9f48 100644 --- a/docs/tutorials/javascript/amm/add-assets-to-amm.md +++ b/docs/tutorials/javascript/amm/add-assets-to-amm.md @@ -17,7 +17,6 @@ You can download the [Quickstart Samples](https://github.com/XRPLF/xrpl-dev-port Without the Quickstart Samples, you will not be able to try the examples that follow. {% /admonition %} - ## Usage ### Get Accounts @@ -34,7 +33,6 @@ Without the Quickstart Samples, you will not be able to try the examples that fo [![Get account results](/docs/img/quickstart-add-to-amm2.png)](/docs/img/quickstart-add-to-amm2.png) - ### Get the AMM Use the information from either the XRP/Token or Token/Token AMM you created in [Create an AMM](/docs/tutorials/javascript/amm/create-an-amm/#create-an-xrp/token-amm). @@ -46,7 +44,6 @@ Use the information from either the XRP/Token or Token/Token AMM you created in [![Get AMM results](/docs/img/quickstart-add-to-amm3.png)](/docs/img/quickstart-add-to-amm3.png) - ### Deposit a Single Asset to the AMM You can deposit either asset, but depositing only one asset reduces the amount of LP tokens you receive. @@ -57,7 +54,6 @@ You can deposit either asset, but depositing only one asset reduces the amount o [![Add assets to AMM results](/docs/img/quickstart-add-to-amm4.png)](/docs/img/quickstart-add-to-amm4.png) - ### Deposit Both Assets to the AMM 1. Click **Get Balances** to verify how many tokens you have. @@ -67,7 +63,6 @@ You can deposit either asset, but depositing only one asset reduces the amount o [![Add assets to AMM results](/docs/img/quickstart-add-to-amm5.png)](/docs/img/quickstart-add-to-amm5.png) - ### Vote on trading fees 1. Enter a value in the **Trading Fee** field. The proposed fee is in units of 1/100,000; a value of 1 is equivalent to 0.001%. The maximum value is 1000, indicating a 1% fee. @@ -75,7 +70,6 @@ You can deposit either asset, but depositing only one asset reduces the amount o [![Vote on trading fees results](/docs/img/quickstart-add-to-amm6.png)](/docs/img/quickstart-add-to-amm6.png) - ### Redeem Your LP Tokens 1. Click **Get LP Value**. @@ -84,12 +78,10 @@ You can deposit either asset, but depositing only one asset reduces the amount o [![Get LP token value results](/docs/img/quickstart-add-to-amm7.png)](/docs/img/quickstart-add-to-amm7.png) - ## Code Walkthrough You can open `ripplex12-add-to-amm.js` from the [Quickstart Samples](https://github.com/XRPLF/xrpl-dev-portal/tree/master/_code-samples/quickstart/js/) to view the source code. - ### Add Assets to an Existing AMM This code checks if you're trying to add one or both assets, and then modifies the `AMMDeposit` transaction to be either a single or double-asset deposit. @@ -101,218 +93,200 @@ async function addAssets() { Connect to the XRP Ledger. ```javascript - let net = getNet() +let net = getNet() - const client = new xrpl.Client(net) - results = `\n\nConnecting to ${getNet()} ...` - standbyResultField.value = results +const client = new xrpl.Client(net) +results = `\n\nConnecting to ${getNet()} ...` +standbyResultField.value = results - await client.connect() - results += '\n\nConnected.' - standbyResultField.value = results +await client.connect() +results += '\n\nConnected.' +standbyResultField.value = results ``` Get the AMM information fields. ```javascript - const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) +const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) - const asset1_currency = asset1CurrencyField.value - const asset1_issuer = asset1IssuerField.value - const asset1_amount = asset1AmountField.value +const asset1_currency = asset1CurrencyField.value +const asset1_issuer = asset1IssuerField.value +const asset1_amount = asset1AmountField.value - const asset2_currency = asset2CurrencyField.value - const asset2_issuer = asset2IssuerField.value - const asset2_amount = asset2AmountField.value +const asset2_currency = asset2CurrencyField.value +const asset2_issuer = asset2IssuerField.value +const asset2_amount = asset2AmountField.value ``` Format the `AMMDeposit` transaction based on the combination of `XRP` and tokens. ```javascript - // Check for all combinations of asset deposits. - let ammdeposit = null - - if (asset1_currency == "XRP" && asset2_currency && asset1_amount && asset2_amount ) { - - ammdeposit = { - "TransactionType": "AMMDeposit", - "Asset": { - currency: "XRP" - }, - "Asset2": { - currency: asset2_currency, - issuer: asset2_issuer - }, - "Account": standby_wallet.address, - "Amount": xrpl.xrpToDrops(asset1_amount), - "Amount2": { - currency: asset2_currency, - issuer: asset2_issuer, - value: asset2_amount - }, - "Flags": 0x00100000 - } - - } else if ( asset1_currency && asset2_currency == "XRP" && asset1_amount && asset2_amount ) { - - ammdeposit = { - "TransactionType": "AMMDeposit", - "Asset": { - currency: asset1_currency, - issuer: asset1_issuer - }, - "Asset2": { - currency: "XRP" - }, - "Account": standby_wallet.address, - "Amount": { - currency: asset1_currency, - issuer: asset1_issuer, - value: asset1_amount - }, - "Amount2": xrpl.xrpToDrops(asset2_amount), - "Flags": 0x00100000 - } - - } else if ( asset1_currency && asset2_currency && asset1_amount && asset2_amount ) { - - ammdeposit = { - "TransactionType": "AMMDeposit", - "Asset": { - currency: asset1_currency, - issuer: asset1_issuer - }, - "Asset2": { - currency: asset2_currency, - issuer: asset2_issuer - }, - "Account": standby_wallet.address, - "Amount": { - currency: asset1_currency, - issuer: asset1_issuer, - value: asset1_amount - }, - "Amount2": { - currency: asset2_currency, - issuer: asset2_issuer, - value: asset2_amount - }, - "Flags": 0x00100000 - } - - } else if ( asset1_currency == "XRP" && asset2_currency && asset1_amount ) { - - ammdeposit = { - "TransactionType": "AMMDeposit", - "Asset": { - currency: "XRP" - }, - "Asset2": { - currency: asset2_currency, - issuer: asset2_issuer - }, - "Account": standby_wallet.address, - "Amount": xrpl.xrpToDrops(asset1_amount), - "Flags": 0x00080000 - } - - } else if ( asset1_currency && asset2_currency == "XRP" && asset1_amount ) { - - ammdeposit = { - "TransactionType": "AMMDeposit", - "Asset": { - currency: asset1_currency, - issuer: asset1_issuer - }, - "Asset2": { - currency: "XRP" - }, - "Account": standby_wallet.address, - "Amount": { - currency: asset1_currency, - issuer: asset1_issuer, - value: asset1_amount - }, - "Flags": 0x00080000 - } - - } else if ( asset1_currency == "XRP" && asset2_currency && asset2_amount ) { - - ammdeposit = { - "TransactionType": "AMMDeposit", - "Asset": { - currency: "XRP" - }, - "Asset2": { - currency: asset2_currency, - issuer: asset2_issuer - }, - "Account": standby_wallet.address, - "Amount": { - currency: asset2_currency, - issuer: asset2_issuer, - value: asset2_amount - }, - "Flags": 0x00080000 - } - - } else if ( asset1_currency && asset2_currency && asset1_amount ) { - - ammdeposit = { - "TransactionType": "AMMDeposit", - "Asset": { - currency: asset1_currency, - issuer: asset1_issuer - }, - "Asset2": { - currency: asset2_currency, - issuer: asset2_issuer - }, - "Account": standby_wallet.address, - "Amount": { - currency: asset1_currency, - issuer: asset1_issuer, - value: asset1_amount - }, - "Flags": 0x00080000 - } - - } else if ( asset1_currency && asset2_currency && asset2_amount ) { - - ammdeposit = { - "TransactionType": "AMMDeposit", - "Asset": { - currency: asset1_currency, - issuer: asset1_issuer - }, - "Asset2": { - currency: asset2_currency, - issuer: asset2_issuer - }, - "Account": standby_wallet.address, - "Amount": { - currency: asset2_currency, - issuer: asset2_issuer, - value: asset2_amount - }, - "Flags": 0x00080000 - } - - } else { - - results += `\n\nNo assets selected to add ...` - standbyResultField.value = results - standbyResultField.scrollTop = standbyResultField.scrollHeight - return +// Check for all combinations of asset deposits. +let ammdeposit = null +if (asset1_currency == 'XRP' && asset2_currency && asset1_amount && asset2_amount) { + ammdeposit = { + TransactionType: 'AMMDeposit', + Asset: { + currency: 'XRP', + }, + Asset2: { + currency: asset2_currency, + issuer: asset2_issuer, + }, + Account: standby_wallet.address, + Amount: xrpl.xrpToDrops(asset1_amount), + Amount2: { + currency: asset2_currency, + issuer: asset2_issuer, + value: asset2_amount, + }, + Flags: 0x00100000, } +} else if (asset1_currency && asset2_currency == 'XRP' && asset1_amount && asset2_amount) { + ammdeposit = { + TransactionType: 'AMMDeposit', + Asset: { + currency: asset1_currency, + issuer: asset1_issuer, + }, + Asset2: { + currency: 'XRP', + }, + Account: standby_wallet.address, + Amount: { + currency: asset1_currency, + issuer: asset1_issuer, + value: asset1_amount, + }, + Amount2: xrpl.xrpToDrops(asset2_amount), + Flags: 0x00100000, + } +} else if (asset1_currency && asset2_currency && asset1_amount && asset2_amount) { + ammdeposit = { + TransactionType: 'AMMDeposit', + Asset: { + currency: asset1_currency, + issuer: asset1_issuer, + }, + Asset2: { + currency: asset2_currency, + issuer: asset2_issuer, + }, + Account: standby_wallet.address, + Amount: { + currency: asset1_currency, + issuer: asset1_issuer, + value: asset1_amount, + }, + Amount2: { + currency: asset2_currency, + issuer: asset2_issuer, + value: asset2_amount, + }, + Flags: 0x00100000, + } +} else if (asset1_currency == 'XRP' && asset2_currency && asset1_amount) { + ammdeposit = { + TransactionType: 'AMMDeposit', + Asset: { + currency: 'XRP', + }, + Asset2: { + currency: asset2_currency, + issuer: asset2_issuer, + }, + Account: standby_wallet.address, + Amount: xrpl.xrpToDrops(asset1_amount), + Flags: 0x00080000, + } +} else if (asset1_currency && asset2_currency == 'XRP' && asset1_amount) { + ammdeposit = { + TransactionType: 'AMMDeposit', + Asset: { + currency: asset1_currency, + issuer: asset1_issuer, + }, + Asset2: { + currency: 'XRP', + }, + Account: standby_wallet.address, + Amount: { + currency: asset1_currency, + issuer: asset1_issuer, + value: asset1_amount, + }, + Flags: 0x00080000, + } +} else if (asset1_currency == 'XRP' && asset2_currency && asset2_amount) { + ammdeposit = { + TransactionType: 'AMMDeposit', + Asset: { + currency: 'XRP', + }, + Asset2: { + currency: asset2_currency, + issuer: asset2_issuer, + }, + Account: standby_wallet.address, + Amount: { + currency: asset2_currency, + issuer: asset2_issuer, + value: asset2_amount, + }, + Flags: 0x00080000, + } +} else if (asset1_currency && asset2_currency && asset1_amount) { + ammdeposit = { + TransactionType: 'AMMDeposit', + Asset: { + currency: asset1_currency, + issuer: asset1_issuer, + }, + Asset2: { + currency: asset2_currency, + issuer: asset2_issuer, + }, + Account: standby_wallet.address, + Amount: { + currency: asset1_currency, + issuer: asset1_issuer, + value: asset1_amount, + }, + Flags: 0x00080000, + } +} else if (asset1_currency && asset2_currency && asset2_amount) { + ammdeposit = { + TransactionType: 'AMMDeposit', + Asset: { + currency: asset1_currency, + issuer: asset1_issuer, + }, + Asset2: { + currency: asset2_currency, + issuer: asset2_issuer, + }, + Account: standby_wallet.address, + Amount: { + currency: asset2_currency, + issuer: asset2_issuer, + value: asset2_amount, + }, + Flags: 0x00080000, + } +} else { + results += `\n\nNo assets selected to add ...` + standbyResultField.value = results + standbyResultField.scrollTop = standbyResultField.scrollHeight + return +} ``` Prepare the transaction for submission. Wrap the submission in a `try-catch` block to handle any errors. ```javascript try { - + const prepared_deposit = await client.autofill(ammdeposit) results += `\n\nPrepared transaction:\n${JSON.stringify(prepared_deposit, null, 2)}` standbyResultField.value = results @@ -322,17 +296,17 @@ Prepare the transaction for submission. Wrap the submission in a `try-catch` blo Sign the transaction using the standby account wallet. ```javascript - const signed_deposit = standby_wallet.sign(prepared_deposit) - results += `\n\nSending AMMDeposit transaction ...` - standbyResultField.value = results - standbyResultField.scrollTop = standbyResultField.scrollHeight +const signed_deposit = standby_wallet.sign(prepared_deposit) +results += `\n\nSending AMMDeposit transaction ...` +standbyResultField.value = results +standbyResultField.scrollTop = standbyResultField.scrollHeight ``` Submit the signed transaction to the XRPL. Run the `checkAMM()` function to update the AMM's information in the AMM log on a successful transaction. ```javascript const lp_deposit = await client.submitAndWait(signed_deposit.tx_blob) - + if (lp_deposit.result.meta.TransactionResult == "tesSUCCESS") { results += `\n\nTransaction succeeded.` checkAMM() @@ -356,7 +330,6 @@ Report the transaction results in the standby account log. } ``` - ### Vote on Trading Fees Trading fees are applied to any transaction that interacts with the AMM. As with the `addAssets()` function, this one checks the combination of assets provided to modifty the `ammVote` transaction. @@ -368,88 +341,83 @@ async function voteFees() { Connect to the XRP Ledger. ```javascript - let net = getNet() +let net = getNet() - const client = new xrpl.Client(net) - results = `\n\nConnecting to ${getNet()} ...` - standbyResultField.value = results +const client = new xrpl.Client(net) +results = `\n\nConnecting to ${getNet()} ...` +standbyResultField.value = results - await client.connect() - results += '\n\nConnected.' - standbyResultField.value = results +await client.connect() +results += '\n\nConnected.' +standbyResultField.value = results ``` Get the AMM information and vote fee fields. ```javascript - const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) - const voteFee = standbyFeeField.value +const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) +const voteFee = standbyFeeField.value - const asset1_currency = asset1CurrencyField.value - const asset1_issuer = asset1IssuerField.value +const asset1_currency = asset1CurrencyField.value +const asset1_issuer = asset1IssuerField.value - const asset2_currency = asset2CurrencyField.value - const asset2_issuer = asset2IssuerField.value +const asset2_currency = asset2CurrencyField.value +const asset2_issuer = asset2IssuerField.value ``` Format the `AMMVote` transaction based on the combination of `XRP` and tokens. ```javascript - let ammvote = null - - if ( asset1_currency == "XRP" ) { - - ammvote = { - "TransactionType": "AMMVote", - "Asset": { - "currency": "XRP" - }, - "Asset2": { - "currency": asset2_currency, - "issuer": asset2_issuer - }, - "Account": standby_wallet.address, - "TradingFee": Number(voteFee) - } - - } else if ( asset2_currency == "XRP" ) { - - ammvote = { - "TransactionType": "AMMVote", - "Asset": { - "currency": asset1_currency, - "issuer": asset1_issuer - }, - "Asset2": { - "currency": "XRP" - }, - "Account": standby_wallet.address, - "TradingFee": Number(voteFee) - } - } else { - - ammvote = { - "TransactionType": "AMMVote", - "Asset": { - "currency": asset1_currency, - "issuer": asset1_issuer - }, - "Asset2": { - "currency": asset2_currency, - "issuer": asset2_issuer - }, - "Account": standby_wallet.address, - "TradingFee": Number(voteFee) - } +let ammvote = null +if (asset1_currency == 'XRP') { + ammvote = { + TransactionType: 'AMMVote', + Asset: { + currency: 'XRP', + }, + Asset2: { + currency: asset2_currency, + issuer: asset2_issuer, + }, + Account: standby_wallet.address, + TradingFee: Number(voteFee), } +} else if (asset2_currency == 'XRP') { + ammvote = { + TransactionType: 'AMMVote', + Asset: { + currency: asset1_currency, + issuer: asset1_issuer, + }, + Asset2: { + currency: 'XRP', + }, + Account: standby_wallet.address, + TradingFee: Number(voteFee), + } +} else { + ammvote = { + TransactionType: 'AMMVote', + Asset: { + currency: asset1_currency, + issuer: asset1_issuer, + }, + Asset2: { + currency: asset2_currency, + issuer: asset2_issuer, + }, + Account: standby_wallet.address, + TradingFee: Number(voteFee), + } +} ``` Prepare the transaction for submission. Wrap the submission in a `try-catch` block to handle any errors. ```javascript try { - + const prepared_vote = await client.autofill(ammvote) results += `\n\nPrepared transaction:\n${JSON.stringify(prepared_vote, null, 2)}` standbyResultField.value = results @@ -459,10 +427,10 @@ Prepare the transaction for submission. Wrap the submission in a `try-catch` blo Sign the prepared transaction using the standby account wallet. ```javascript - const signed_vote = standby_wallet.sign(prepared_vote) - results += `\n\nSending AMMVote transaction ...` - standbyResultField.value = results - standbyResultField.scrollTop = standbyResultField.scrollHeight +const signed_vote = standby_wallet.sign(prepared_vote) +results += `\n\nSending AMMVote transaction ...` +standbyResultField.value = results +standbyResultField.scrollTop = standbyResultField.scrollHeight ``` Submit the signed transaction to the XRPL. Run the `checkAMM()` function to update the AMM's information in the AMM log on a successful transaction. @@ -485,14 +453,13 @@ Report the transaction results in the standby account log. ```javascript standbyResultField.value = results - standbyResultField.scrollTop = standbyResultField.scrollHeight + standbyResultField.scrollTop = standbyResultField.scrollHeight client.disconnect() } ``` - ### Calculate the Value of Your LP Tokens This function gets your LP token balance and calculates what you can withdraw from the AMM. @@ -504,82 +471,76 @@ async function calculateLP() { Connect to the XRP Ledger. ```javascript - let net = getNet() +let net = getNet() - const client = new xrpl.Client(net) - results = `\n\nConnecting to ${getNet()} ...` - standbyResultField.value = results +const client = new xrpl.Client(net) +results = `\n\nConnecting to ${getNet()} ...` +standbyResultField.value = results - await client.connect() - results += '\n\nConnected.' - standbyResultField.value = results +await client.connect() +results += '\n\nConnected.' +standbyResultField.value = results ``` Get the AMM information fields. ```javascript - const standby_wallet = standbyAccountField.value +const standby_wallet = standbyAccountField.value - const asset1_currency = asset1CurrencyField.value - const asset1_issuer = asset1IssuerField.value +const asset1_currency = asset1CurrencyField.value +const asset1_issuer = asset1IssuerField.value - const asset2_currency = asset2CurrencyField.value - const asset2_issuer = asset2IssuerField.value +const asset2_currency = asset2CurrencyField.value +const asset2_issuer = asset2IssuerField.value ``` Format the `amm_info` command based on the combination of `XRP` and tokens. ```javascript - let amm_info = null - - if ( asset1_currency == "XRP" ) { - - amm_info = { - "command": "amm_info", - "asset": { - "currency": "XRP" - }, - "asset2": { - "currency": asset2_currency, - "issuer": asset2_issuer - } - } - - } else if ( asset2_currency == "XRP" ) { - - amm_info = { - "command": "amm_info", - "asset": { - "currency": asset1_currency, - "issuer": asset1_issuer - }, - "asset2": { - "currency": "XRP" - } - } - - } else { - - amm_info = { - "command": "amm_info", - "asset": { - "currency": asset1_currency, - "issuer": asset1_issuer - }, - "asset2": { - "currency": asset2_currency, - "issuer": asset2_issuer - } - } +let amm_info = null +if (asset1_currency == 'XRP') { + amm_info = { + command: 'amm_info', + asset: { + currency: 'XRP', + }, + asset2: { + currency: asset2_currency, + issuer: asset2_issuer, + }, } +} else if (asset2_currency == 'XRP') { + amm_info = { + command: 'amm_info', + asset: { + currency: asset1_currency, + issuer: asset1_issuer, + }, + asset2: { + currency: 'XRP', + }, + } +} else { + amm_info = { + command: 'amm_info', + asset: { + currency: asset1_currency, + issuer: asset1_issuer, + }, + asset2: { + currency: asset2_currency, + issuer: asset2_issuer, + }, + } +} ``` Get the standby account wallet balances and AMM details. Wrap the code in a `try-catch` block to handle any errors. ```javascript try { - + // Get LP token balance. standbyWalletBalances = await client.getBalances(standby_wallet) @@ -589,12 +550,12 @@ Get the standby account wallet balances and AMM details. Wrap the code in a `try Get the AMM account address. Any LP tokens received from depositing to the AMM is considered an issued token by that AMM account. Use the AMM account to find the LP token in the wallet balances and get the LP token balance. ```javascript - // Get the AMM account address that issues LP tokens to depositors - ammAccount = amm_info_result.result.amm.account +// Get the AMM account address that issues LP tokens to depositors +ammAccount = amm_info_result.result.amm.account - const lpCurrency = standbyWalletBalances.find(item => item.issuer === ammAccount); +const lpCurrency = standbyWalletBalances.find((item) => item.issuer === ammAccount) - const lpBalance = lpCurrency ? lpCurrency.value : 'Currency not found'; +const lpBalance = lpCurrency ? lpCurrency.value : 'Currency not found' ``` Check the AMM `value` fields to format the response. `XRP` is only reported as drops and doesn't have a `value` field. Although there isn't a dedicated method to calculate what you can redeem your LP tokens for, the math to do so is simple. The code checks the percentage of LP tokens in circulation that you own, and then applies that same percentage to the total assets in the AMM to give you their redemption value. @@ -650,7 +611,6 @@ Report the transaction results in the standby account log. } ``` - ### Redeem Your LP Tokens The code to redeem the LP tokens checks how many tokens you want to redeem, as well as the combination of assets to format `amm_info` and `AMMWithdraw`. @@ -662,167 +622,155 @@ async function redeemLP() { Connect to the XRP Ledger. ```javascript - let net = getNet() +let net = getNet() - const client = new xrpl.Client(net) - results = `\n\nConnecting to ${getNet()} ...` - standbyResultField.value = results +const client = new xrpl.Client(net) +results = `\n\nConnecting to ${getNet()} ...` +standbyResultField.value = results - await client.connect() - results += '\n\nConnected.' - standbyResultField.value = results +await client.connect() +results += '\n\nConnected.' +standbyResultField.value = results ``` Get the AMM information fields. ```javascript - const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) +const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) - const asset1_currency = asset1CurrencyField.value - const asset1_issuer = asset1IssuerField.value +const asset1_currency = asset1CurrencyField.value +const asset1_issuer = asset1IssuerField.value - const asset2_currency = asset2CurrencyField.value - const asset2_issuer = asset2IssuerField.value +const asset2_currency = asset2CurrencyField.value +const asset2_issuer = asset2IssuerField.value ``` Format the `amm_info` command based on the combination of `XRP` and tokens. ```javascript - // Structure "amm_info" command based on asset combo. - let amm_info = null - - if ( asset1_currency == "XRP" ) { - - amm_info = { - "command": "amm_info", - "asset": { - "currency": "XRP" - }, - "asset2": { - "currency": asset2_currency, - "issuer": asset2_issuer - } - } - - } else if ( asset2_currency == "XRP" ) { - - amm_info = { - "command": "amm_info", - "asset": { - "currency": asset1_currency, - "issuer": asset1_issuer - }, - "asset2": { - "currency": "XRP" - } - } - - } else { - - amm_info = { - "command": "amm_info", - "asset": { - "currency": asset1_currency, - "issuer": asset1_issuer - }, - "asset2": { - "currency": asset2_currency, - "issuer": asset2_issuer - } - } +// Structure "amm_info" command based on asset combo. +let amm_info = null +if (asset1_currency == 'XRP') { + amm_info = { + command: 'amm_info', + asset: { + currency: 'XRP', + }, + asset2: { + currency: asset2_currency, + issuer: asset2_issuer, + }, } +} else if (asset2_currency == 'XRP') { + amm_info = { + command: 'amm_info', + asset: { + currency: asset1_currency, + issuer: asset1_issuer, + }, + asset2: { + currency: 'XRP', + }, + } +} else { + amm_info = { + command: 'amm_info', + asset: { + currency: asset1_currency, + issuer: asset1_issuer, + }, + asset2: { + currency: asset2_currency, + issuer: asset2_issuer, + }, + } +} ``` Get the LP token information from the AMM. ```javascript - // Get LP token info. +// Get LP token info. - let ammIssuer = null - let ammCurrency = null - const LPTokens = standbyLPField.value +let ammIssuer = null +let ammCurrency = null +const LPTokens = standbyLPField.value - try { +try { const amm_info_result = await client.request(amm_info) ammIssuer = amm_info_result.result.amm.lp_token.issuer ammCurrency = amm_info_result.result.amm.lp_token.currency - } catch (error) { - results += `\n\n${error.message}` - standbyResultField.value = results - standbyResultField.scrollTop = standbyResultField.scrollHeight - return - } +} catch (error) { + results += `\n\n${error.message}` + standbyResultField.value = results + standbyResultField.scrollTop = standbyResultField.scrollHeight + return +} ``` Format the `AMMWithdraw` transaction based on the combination of `XRP` and tokens. Add the LP token info into the transaction from the `amm_info` query. ```javascript - // Structure ammwithdraw transaction based on asset combo. - let ammwithdraw = null - - if ( asset1_currency == "XRP" ) { - - ammwithdraw = { - "TransactionType": "AMMWithdraw", - "Asset": { - "currency": "XRP" - }, - "Asset2": { - "currency": asset2_currency, - "issuer": asset2_issuer - }, - "Account": standby_wallet.address, - "LPTokenIn": { - currency: ammCurrency, - issuer: ammIssuer, - value: LPTokens - }, - "Flags": 0x00010000 - } - - } else if ( asset2_currency == "XRP" ) { - - ammwithdraw = { - "TransactionType": "AMMWithdraw", - "Asset": { - "currency": asset1_currency, - "issuer": asset1_issuer - }, - "Asset2": { - "currency": "XRP" - }, - "Account": standby_wallet.address, - "LPTokenIn": { - currency: ammCurrency, - issuer: ammIssuer, - value: LPTokens - }, - "Flags": 0x00010000 - } - - } else { - - ammwithdraw = { - "TransactionType": "AMMWithdraw", - "Asset": { - "currency": asset1_currency, - "issuer": asset1_issuer - }, - "Asset2": { - "currency": asset2_currency, - "issuer": asset2_issuer - }, - "Account": standby_wallet.address, - "LPTokenIn": { - currency: ammCurrency, - issuer: ammIssuer, - value: LPTokens - }, - "Flags": 0x00010000 - } +// Structure ammwithdraw transaction based on asset combo. +let ammwithdraw = null +if (asset1_currency == 'XRP') { + ammwithdraw = { + TransactionType: 'AMMWithdraw', + Asset: { + currency: 'XRP', + }, + Asset2: { + currency: asset2_currency, + issuer: asset2_issuer, + }, + Account: standby_wallet.address, + LPTokenIn: { + currency: ammCurrency, + issuer: ammIssuer, + value: LPTokens, + }, + Flags: 0x00010000, } +} else if (asset2_currency == 'XRP') { + ammwithdraw = { + TransactionType: 'AMMWithdraw', + Asset: { + currency: asset1_currency, + issuer: asset1_issuer, + }, + Asset2: { + currency: 'XRP', + }, + Account: standby_wallet.address, + LPTokenIn: { + currency: ammCurrency, + issuer: ammIssuer, + value: LPTokens, + }, + Flags: 0x00010000, + } +} else { + ammwithdraw = { + TransactionType: 'AMMWithdraw', + Asset: { + currency: asset1_currency, + issuer: asset1_issuer, + }, + Asset2: { + currency: asset2_currency, + issuer: asset2_issuer, + }, + Account: standby_wallet.address, + LPTokenIn: { + currency: ammCurrency, + issuer: ammIssuer, + value: LPTokens, + }, + Flags: 0x00010000, + } +} ``` Prepare the transaction for submission. Wrap the submission in a `try-catch` block to handle any errors. @@ -833,23 +781,23 @@ Prepare the transaction for submission. Wrap the submission in a `try-catch` blo const prepared_withdraw = await client.autofill(ammwithdraw) results += `\n\nPrepared transaction:\n${JSON.stringify(prepared_withdraw, null, 2)}` standbyResultField.value = results - standbyResultField.scrollTop = standbyResultField.scrollHeight + standbyResultField.scrollTop = standbyResultField.scrollHeight ``` Sign the prepared transaction with the standby account wallet. ```javascript - const signed_withdraw = standby_wallet.sign(prepared_withdraw) - results += `\n\nSending AMMWithdraw transaction ...` - standbyResultField.value = results - standbyResultField.scrollTop = standbyResultField.scrollHeight +const signed_withdraw = standby_wallet.sign(prepared_withdraw) +results += `\n\nSending AMMWithdraw transaction ...` +standbyResultField.value = results +standbyResultField.scrollTop = standbyResultField.scrollHeight ``` Submit the signed transaction to the XRPL. Update the AMM info log and get wallet balances on a successful transaction. ```javascript const response_withdraw = await client.submitAndWait(signed_withdraw.tx_blob) - + if (response_withdraw.result.meta.TransactionResult == "tesSUCCESS") { results += `\n\nTransaction succeeded.` checkAMM() diff --git a/docs/tutorials/javascript/amm/create-an-amm.md b/docs/tutorials/javascript/amm/create-an-amm.md index 24688b8e30..af9a3d67b3 100644 --- a/docs/tutorials/javascript/amm/create-an-amm.md +++ b/docs/tutorials/javascript/amm/create-an-amm.md @@ -15,7 +15,6 @@ You can download the [Quickstart Samples](https://github.com/XRPLF/xrpl-dev-port Without the Quickstart Samples, you will not be able to try the examples that follow. {% /admonition %} - ## Usage ### Get Accounts @@ -32,7 +31,6 @@ Without the Quickstart Samples, you will not be able to try the examples that fo [![Get account results](/docs/img/quickstart-create-amm2.png)](/docs/img/quickstart-create-amm2.png) - ### Check AMM Check if an AMM pair already exists. An AMM holds two different assets: at most one of these can be XRP, and one or both of them can be [tokens](/docs/concepts/tokens). @@ -44,7 +42,6 @@ Check if an AMM pair already exists. An AMM holds two different assets: at most [![Check AMM results](/docs/img/quickstart-create-amm3.png)](/docs/img/quickstart-create-amm3.png) - ### Create Trustline Create a trustline from the operational account to the standby account. In the standby account fields: @@ -56,15 +53,14 @@ Create a trustline from the operational account to the standby account. In the s [![Create trustline results](/docs/img/quickstart-create-amm4.png)](/docs/img/quickstart-create-amm4.png) - ### Issue Tokens Send issued tokens from the operational account to the standby account. In the operational account fields: -1. Select **Allow Rippling** and click **Configure Account**. - {% admonition type="info" name="Note" %} - This enables the `defaultRipple` flag on the issuing account, which is set to `false` by default. You need to enable this in order to trade tokens issued by the account. See [Configure Issuer Settings](../../how-tos/use-tokens/issue-a-fungible-token.md#3-configure-issuer-settings) to learn more. - {% /admonition %} +1. Select **Allow Rippling** and click **Configure Account**. + {% admonition type="info" name="Note" %} + This enables the `defaultRipple` flag on the issuing account, which is set to `false` by default. You need to enable this in order to trade tokens issued by the account. See [Configure Issuer Settings](../../how-tos/use-tokens/issue-a-fungible-token.md#3-configure-issuer-settings) to learn more. + {% /admonition %} 2. Enter a value in the **Amount** field, up to the maximum transfer amount you set in the trustline. 3. Enter the standby account address in the **Destination** field. 4. Enter the currency code from the trustline in the **Currency** field. @@ -72,7 +68,6 @@ Send issued tokens from the operational account to the standby account. In the o [![Issue token results](/docs/img/quickstart-create-amm5.png)](/docs/img/quickstart-create-amm5.png) - ### Create an XRP/Token AMM Create a new AMM pool with XRP and the issued tokens. @@ -90,7 +85,6 @@ Save the seed values of the standby and operational accounts for subsequent AMM [![Create AMM results](/docs/img/quickstart-create-amm6.png)](/docs/img/quickstart-create-amm6.png) - ### Create a Token/Token AMM Create a second AMM pool with two issued tokens. @@ -107,7 +101,6 @@ Create a second AMM pool with two issued tokens. [![Create AMM results](/docs/img/quickstart-create-amm7.png)](/docs/img/quickstart-create-amm7.png) - ## Code Walkthrough You can open `ripplex11-create-amm.js` from the [Quickstart Samples](https://github.com/XRPLF/xrpl-dev-portal/tree/master/_code-samples/quickstart/js/) to view the source code. @@ -123,127 +116,121 @@ async function createAMM() { Connect to the XRP Ledger. ```javascript - let net = getNet() +let net = getNet() - const client = new xrpl.Client(net) - results = `\n\nConnecting to ${getNet()} ...` - standbyResultField.value = results +const client = new xrpl.Client(net) +results = `\n\nConnecting to ${getNet()} ...` +standbyResultField.value = results - await client.connect() - results += '\n\nConnected.' - standbyResultField.value = results +await client.connect() +results += '\n\nConnected.' +standbyResultField.value = results ``` Get the AMM information fields. ```javascript - const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) +const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value) - const asset1_currency = asset1CurrencyField.value - const asset1_issuer = asset1IssuerField.value - const asset1_amount = asset1AmountField.value +const asset1_currency = asset1CurrencyField.value +const asset1_issuer = asset1IssuerField.value +const asset1_amount = asset1AmountField.value - const asset2_currency = asset2CurrencyField.value - const asset2_issuer = asset2IssuerField.value - const asset2_amount = asset2AmountField.value +const asset2_currency = asset2CurrencyField.value +const asset2_issuer = asset2IssuerField.value +const asset2_amount = asset2AmountField.value ``` Format the `AMMCreate` transaction based on the combination of `XRP` and tokens. ```javascript - let ammCreate = null - - results += '\n\nCreating AMM ...' - standbyResultField.value = results - - // AMMCreate requires burning one owner reserve. We can look up that amount - // (in drops) on the current network using server_state: - const ss = await client.request({"command": "server_state"}) - const amm_fee_drops = ss.result.state.validated_ledger.reserve_inc.toString() +let ammCreate = null - if (asset1_currency == 'XRP') { +results += '\n\nCreating AMM ...' +standbyResultField.value = results - ammCreate = { - "TransactionType": "AMMCreate", - "Account": standby_wallet.address, - "Amount": JSON.stringify(asset1_amount * 1000000), // convert XRP to drops - "Amount2": { - "currency": asset2_currency, - "issuer": asset2_issuer, - "value": asset2_amount - }, - "TradingFee": 500, // 500 = 0.5% - "Fee": amm_fee_drops - } +// AMMCreate requires burning one owner reserve. We can look up that amount +// (in drops) on the current network using server_state: +const ss = await client.request({ command: 'server_state' }) +const amm_fee_drops = ss.result.state.validated_ledger.reserve_inc.toString() - } else if (asset2_currency =='XRP') { - - ammCreate = { - "TransactionType": "AMMCreate", - "Account": standby_wallet.address, - "Amount": { - "currency": asset1_currency, - "issuer": asset1_issuer, - "value": asset1_amount - }, - "Amount2": JSON.stringify(asset2_amount * 1000000), // convert XRP to drops - "TradingFee": 500, // 500 = 0.5% - "Fee": amm_fee_drops - } - - } else { - - ammCreate = { - "TransactionType": "AMMCreate", - "Account": standby_wallet.address, - "Amount": { - "currency": asset1_currency, - "issuer": asset1_issuer, - "value": asset1_amount - }, - "Amount2": { - "currency": asset2_currency, - "issuer": asset2_issuer, - "value": asset2_amount - }, - "TradingFee": 500, // 500 = 0.5% - "Fee": amm_fee_drops - } - +if (asset1_currency == 'XRP') { + ammCreate = { + TransactionType: 'AMMCreate', + Account: standby_wallet.address, + Amount: JSON.stringify(asset1_amount * 1000000), // convert XRP to drops + Amount2: { + currency: asset2_currency, + issuer: asset2_issuer, + value: asset2_amount, + }, + TradingFee: 500, // 500 = 0.5% + Fee: amm_fee_drops, } +} else if (asset2_currency == 'XRP') { + ammCreate = { + TransactionType: 'AMMCreate', + Account: standby_wallet.address, + Amount: { + currency: asset1_currency, + issuer: asset1_issuer, + value: asset1_amount, + }, + Amount2: JSON.stringify(asset2_amount * 1000000), // convert XRP to drops + TradingFee: 500, // 500 = 0.5% + Fee: amm_fee_drops, + } +} else { + ammCreate = { + TransactionType: 'AMMCreate', + Account: standby_wallet.address, + Amount: { + currency: asset1_currency, + issuer: asset1_issuer, + value: asset1_amount, + }, + Amount2: { + currency: asset2_currency, + issuer: asset2_issuer, + value: asset2_amount, + }, + TradingFee: 500, // 500 = 0.5% + Fee: amm_fee_drops, + } +} ``` Prepare the transaction for submission. Wrap the submission in a `try-catch` block to handle any errors. ```javascript try { - + const prepared_create = await client.autofill(ammCreate) results += `\n\nPrepared transaction:\n${JSON.stringify(prepared_create, null, 2)}` standbyResultField.value = results - standbyResultField.scrollTop = standbyResultField.scrollHeight + standbyResultField.scrollTop = standbyResultField.scrollHeight ``` Sign the prepared transaction using the standy account wallet. ```javascript - const signed_create = standby_wallet.sign(prepared_create) - results += `\n\nSending AMMCreate transaction ...` - standbyResultField.value = results - standbyResultField.scrollTop = standbyResultField.scrollHeight +const signed_create = standby_wallet.sign(prepared_create) +results += `\n\nSending AMMCreate transaction ...` +standbyResultField.value = results +standbyResultField.scrollTop = standbyResultField.scrollHeight ``` Submit the signed transaction to the XRPL. ```javascript const amm_create = await client.submitAndWait(signed_create.tx_blob) - + if (amm_create.result.meta.TransactionResult == "tesSUCCESS") { results += `\n\nTransaction succeeded.` } else { results += `\n\nError sending transaction: ${JSON.stringify(amm_create.result.meta.TransactionResult, null, 2)}` } - + } catch (error) { results += `\n\n${error.message}` } @@ -256,13 +243,12 @@ Report the transaction results in the standby account log. Run the `checkAMM()` standbyResultField.scrollTop = standbyResultField.scrollHeight checkAMM() - + client.disconnect() - + } ``` - ### Check AMM This checks if an AMM already exists. While multiple tokens can share the same currency code, each issuer makes them unique. If the AMM pair exists, this responds with the AMM information, such as token pair, trading fees, etc. @@ -274,73 +260,67 @@ async function checkAMM() { Connect to the XRP Ledger. ```javascript - let net = getNet() - const client = new xrpl.Client(net) - await client.connect() +let net = getNet() +const client = new xrpl.Client(net) +await client.connect() ``` Get the AMM info fields. When checking an AMM, you only need the currency code and issuer. ```javascript - // Gets the issuer and currency code - const asset1_currency = asset1CurrencyField.value - const asset1_issuer = asset1IssuerField.value +// Gets the issuer and currency code +const asset1_currency = asset1CurrencyField.value +const asset1_issuer = asset1IssuerField.value - const asset2_currency = asset2CurrencyField.value - const asset2_issuer = asset2IssuerField.value +const asset2_currency = asset2CurrencyField.value +const asset2_issuer = asset2IssuerField.value ``` Format the `amm_info` command based on the combination of `XRP` and tokens. ```javascript - let amm_info_request = null +let amm_info_request = null - // Get AMM info transaction +// Get AMM info transaction - if (asset1_currency == 'XRP') { - - amm_info_request = { - "command": "amm_info", - "asset": { - "currency": "XRP" - }, - "asset2": { - "currency": asset2_currency, - "issuer": asset2_issuer - }, - "ledger_index": "validated" - } - - } else if (asset2_currency =='XRP') { - - amm_info_request = { - "command": "amm_info", - "asset": { - "currency": asset1_currency, - "issuer": asset1_issuer - }, - "asset2": { - "currency": "XRP" - }, - "ledger_index": "validated" - } - - } else { - - amm_info_request = { - "command": "amm_info", - "asset": { - "currency": asset1_currency, - "issuer": asset1_issuer - }, - "asset2": { - "currency": asset2_currency, - "issuer": asset2_issuer - }, - "ledger_index": "validated" - } - +if (asset1_currency == 'XRP') { + amm_info_request = { + command: 'amm_info', + asset: { + currency: 'XRP', + }, + asset2: { + currency: asset2_currency, + issuer: asset2_issuer, + }, + ledger_index: 'validated', } +} else if (asset2_currency == 'XRP') { + amm_info_request = { + command: 'amm_info', + asset: { + currency: asset1_currency, + issuer: asset1_issuer, + }, + asset2: { + currency: 'XRP', + }, + ledger_index: 'validated', + } +} else { + amm_info_request = { + command: 'amm_info', + asset: { + currency: asset1_currency, + issuer: asset1_issuer, + }, + asset2: { + currency: asset2_currency, + issuer: asset2_issuer, + }, + ledger_index: 'validated', + } +} ``` Submit the request in a `try-catch` block and update the AMM log. @@ -352,10 +332,10 @@ Submit the request in a `try-catch` block and update the AMM log. } catch(error) { ammInfo = `AMM Info:\n\n${error}` } - + ammInfoField.value = ammInfo - + client.disconnect() - + } ``` diff --git a/docs/tutorials/javascript/amm/index.md b/docs/tutorials/javascript/amm/index.md index 5880e4c0b0..54c3aaa2c3 100644 --- a/docs/tutorials/javascript/amm/index.md +++ b/docs/tutorials/javascript/amm/index.md @@ -4,9 +4,9 @@ top_nav_grouping: Article Types metadata: indexPage: true --- + # AMMs Using JavaScript Create and interact with Automated Market Makers (AMMs) on the XRP Ledger using JavaScript. - {% child-pages /%} diff --git a/docs/tutorials/javascript/amm/trade-with-auction-slot.md b/docs/tutorials/javascript/amm/trade-with-auction-slot.md index 8f2ef2c7c0..fa05b13a01 100644 --- a/docs/tutorials/javascript/amm/trade-with-auction-slot.md +++ b/docs/tutorials/javascript/amm/trade-with-auction-slot.md @@ -17,7 +17,6 @@ You can download the [Quickstart Samples](https://github.com/XRPLF/xrpl-dev-port Without the Quickstart Samples, you will not be able to try the examples that follow. {% /admonition %} - ## Usage ### Get Accounts @@ -34,7 +33,6 @@ Without the Quickstart Samples, you will not be able to try the examples that fo [![Get account results](/docs/img/quickstart-trade-auction-slot2.png)](/docs/img/quickstart-trade-auction-slot2.png) - ### Get the AMM Use the information from either the XRP/Token or Token/Token AMM you created in [Create an AMM](/docs/tutorials/javascript/amm/create-an-amm/#create-an-xrp/token-amm). @@ -46,7 +44,6 @@ Use the information from either the XRP/Token or Token/Token AMM you created in [![Get AMM results](/docs/img/quickstart-trade-auction-slot3.png)](/docs/img/quickstart-trade-auction-slot3.png) - ### Estimate Costs Get a new standby account to ensure you aren't using an account with an auction slot already. @@ -62,7 +59,6 @@ Get a new standby account to ensure you aren't using an account with an auction [![Estimate costs results](/docs/img/quickstart-trade-auction-slot4.png)](/docs/img/quickstart-trade-auction-slot4.png) - ### Bid for the Auction Slot Make a single-asset deposit to the AMM to receive the required LP tokens for the auction slot bid. You can deposit either asset from the cost estimator. @@ -74,7 +70,6 @@ Make a single-asset deposit to the AMM to receive the required LP tokens for the [![Bid auction slot results](/docs/img/quickstart-trade-auction-slot5.png)](/docs/img/quickstart-trade-auction-slot5.png) - ### Swap Tokens with the AMM Get a new estimate to update the expected cost for swapping tokens. @@ -85,12 +80,10 @@ Get a new estimate to update the expected cost for swapping tokens. [![Swap tokens with AMM results](/docs/img/quickstart-trade-auction-slot6.png)](/docs/img/quickstart-trade-auction-slot6.png) - ## Code Walkthrough (ripplex13a-trade-with-auction-slot.js) You can open `ripplex13a-trade-with-auction-slot.js` from the [Quickstart Samples](https://github.com/XRPLF/xrpl-dev-portal/tree/master/_code-samples/quickstart/js/) to view the source code. - ### Estimate AMM Costs This function checks the cost of interactions with the AMM, such as deposits, auction slot bids, and token swaps. @@ -102,15 +95,15 @@ async function estimateCost() { Connect to the XRP Ledger. ```javascript - let net = getNet() +let net = getNet() - const client = new xrpl.Client(net) - results = `\n\nConnecting to ${getNet()} ...` - standbyResultField.value = results +const client = new xrpl.Client(net) +results = `\n\nConnecting to ${getNet()} ...` +standbyResultField.value = results - await client.connect() - results += '\n\nConnected.' - standbyResultField.value = results +await client.connect() +results += '\n\nConnected.' +standbyResultField.value = results ``` Format the `amm_info` command and get the AMM information. This code is wrapped in a `try-catch` block to handle any errors. @@ -153,7 +146,7 @@ Format the `amm_info` command and get the AMM information. This code is wrapped } const amm_info = (await client.request({ - "command": "amm_info", + "command": "amm_info", "asset": asset1_info, "asset2": asset2_info })) @@ -174,70 +167,70 @@ Format the `amm_info` command and get the AMM information. This code is wrapped Save the taker pays and taker gets fields; use these values to get the total amount of each asset in the AMM pool, using large significant digits for precise calculations. This also checks if the requested token amount is larger than what is available in the AMM pool, stopping the code if `true`. ```javascript - // Save taker pays and gets values. - - const takerPays = { - "currency": standbyTakerPaysCurrencyField.value, - "issuer": standbyTakerPaysIssuerField.value, - "amount": standbyTakerPaysAmountField.value - } +// Save taker pays and gets values. - const takerGets = { - "currency": standbyTakerGetsCurrencyField.value, - "issuer": standbyTakerGetsIssuerField.value, - "amount": standbyTakerGetsAmountField.value - } +const takerPays = { + currency: standbyTakerPaysCurrencyField.value, + issuer: standbyTakerPaysIssuerField.value, + amount: standbyTakerPaysAmountField.value, +} - // Get amount of assets in the pool. - // Convert values to BigNumbers with the appropriate precision. - // Tokens always have 15 significant digits; - // XRP is precise to integer drops, which can be as high as 10^17 +const takerGets = { + currency: standbyTakerGetsCurrencyField.value, + issuer: standbyTakerGetsIssuerField.value, + amount: standbyTakerGetsAmountField.value, +} - let asset_out_bn = null - let pool_in_bn = null - let pool_out_bn = null - let isAmmAsset1Xrp = false - let isAmmAsset2Xrp = false +// Get amount of assets in the pool. +// Convert values to BigNumbers with the appropriate precision. +// Tokens always have 15 significant digits; +// XRP is precise to integer drops, which can be as high as 10^17 - if ( takerPays.currency == 'XRP' ) { - asset_out_bn = BigNumber(xrpl.xrpToDrops(takerPays.amount)).precision(17) - } else { - asset_out_bn = BigNumber(takerPays.amount).precision(15) - } +let asset_out_bn = null +let pool_in_bn = null +let pool_out_bn = null +let isAmmAsset1Xrp = false +let isAmmAsset2Xrp = false - if ( takerGets.currency == 'XRP' && asset1_currency == 'XRP' ) { - pool_in_bn = BigNumber(pool_asset1).precision(17) - isAmmAsset1Xrp = true - } else if ( takerGets.currency == 'XRP' && asset2_currency == 'XRP' ) { - pool_in_bn = BigNumber(pool_asset2).precision(17) - isAmmAsset2Xrp = true - } else if ( takerGets.currency == asset1_currency ) { - pool_in_bn = BigNumber(pool_asset1.value).precision(15) - } else { - pool_in_bn = BigNumber(pool_asset2.value).precision(15) - } +if (takerPays.currency == 'XRP') { + asset_out_bn = BigNumber(xrpl.xrpToDrops(takerPays.amount)).precision(17) +} else { + asset_out_bn = BigNumber(takerPays.amount).precision(15) +} - if (takerPays.currency == 'XRP' && asset1_currency == 'XRP' ) { - pool_out_bn = BigNumber(pool_asset1).precision(17) - } else if ( takerPays.currency == 'XRP' && asset2_currency == 'XRP' ) { - pool_out_bn = BigNumber(pool_asset2).precision(17) - } else if ( takerPays.currency == asset1_currency ) { - pool_out_bn = BigNumber(pool_asset1.value).precision(15) - } else { - pool_out_bn = BigNumber(pool_asset2.value).precision(15) - } +if (takerGets.currency == 'XRP' && asset1_currency == 'XRP') { + pool_in_bn = BigNumber(pool_asset1).precision(17) + isAmmAsset1Xrp = true +} else if (takerGets.currency == 'XRP' && asset2_currency == 'XRP') { + pool_in_bn = BigNumber(pool_asset2).precision(17) + isAmmAsset2Xrp = true +} else if (takerGets.currency == asset1_currency) { + pool_in_bn = BigNumber(pool_asset1.value).precision(15) +} else { + pool_in_bn = BigNumber(pool_asset2.value).precision(15) +} - if ( takerPays.currency == 'XRP' && parseFloat(takerPays.amount) > parseFloat(xrpl.dropsToXrp(pool_out_bn)) ) { - results += `\n\nRequested ${takerPays.amount} ${takerPays.currency}, but AMM only holds ${xrpl.dropsToXrp(pool_out_bn)}. Quitting.` - standbyResultField.value = results - client.disconnect() - return - } else if ( parseFloat(takerPays.amount) > parseFloat(pool_out_bn) ) { - results += `\n\nRequested ${takerPays.amount} ${takerPays.currency}, but AMM only holds ${pool_out_bn}. Quitting.` - standbyResultField.value = results - client.disconnect() - return - } +if (takerPays.currency == 'XRP' && asset1_currency == 'XRP') { + pool_out_bn = BigNumber(pool_asset1).precision(17) +} else if (takerPays.currency == 'XRP' && asset2_currency == 'XRP') { + pool_out_bn = BigNumber(pool_asset2).precision(17) +} else if (takerPays.currency == asset1_currency) { + pool_out_bn = BigNumber(pool_asset1.value).precision(15) +} else { + pool_out_bn = BigNumber(pool_asset2.value).precision(15) +} + +if (takerPays.currency == 'XRP' && parseFloat(takerPays.amount) > parseFloat(xrpl.dropsToXrp(pool_out_bn))) { + results += `\n\nRequested ${takerPays.amount} ${takerPays.currency}, but AMM only holds ${xrpl.dropsToXrp(pool_out_bn)}. Quitting.` + standbyResultField.value = results + client.disconnect() + return +} else if (parseFloat(takerPays.amount) > parseFloat(pool_out_bn)) { + results += `\n\nRequested ${takerPays.amount} ${takerPays.currency}, but AMM only holds ${pool_out_bn}. Quitting.` + standbyResultField.value = results + client.disconnect() + return +} ``` Implement [AMM formulas](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/misc/detail/AMMHelpers.cpp) to estimate values for: @@ -266,7 +259,7 @@ Implement [AMM formulas](https://github.com/XRPLF/rippled/blob/master/src/xrpld/ // Use SwapOut to calculate discounted swap amount with auction slot const raw_discounted = swapOut(asset_out_bn, pool_in_bn, pool_out_bn, discounted_fee) - const discounted_swap_amount = raw_discounted.dp(0, BigNumber.ROUND_CEIL) + const discounted_swap_amount = raw_discounted.dp(0, BigNumber.ROUND_CEIL) results += `\n\nExpected cost with auction slot for ${takerPays.amount} ${takerPays.currency}: ${convert(takerGets.currency, discounted_swap_amount)} ${takerGets.currency}` // Calculate savings by using auction slot @@ -316,7 +309,6 @@ Report the estimated values and close the client connection. } ``` - ### Bid on the Auction Slot This function bids on the AMM auction slot, using LP tokens. @@ -328,15 +320,15 @@ async function bidAuction() { Connect to the ledger. ```javascript - let net = getNet() +let net = getNet() - const client = new xrpl.Client(net) - results = `\n\nConnecting to ${getNet()} ...` - standbyResultField.value = results +const client = new xrpl.Client(net) +results = `\n\nConnecting to ${getNet()} ...` +standbyResultField.value = results - await client.connect() - results += '\n\nConnected.' - standbyResultField.value = results +await client.connect() +results += '\n\nConnected.' +standbyResultField.value = results ``` Format the asset values, depending on if it's `XRP` or a token. Wrap the code in a `try-catch` block to handle any errors. @@ -381,7 +373,7 @@ Format the asset values, depending on if it's `XRP` or a token. Wrap the code in } const amm_info = (await client.request({ - "command": "amm_info", + "command": "amm_info", "asset": asset1_info, "asset2": asset2_info })) @@ -413,13 +405,13 @@ Submit the `AMMBid` transaction. "value": valueLPT } // So rounding doesn't leave dust amounts of LPT }, {autofill: true, wallet: standby_wallet}) - + if (bid_result.result.meta.TransactionResult == "tesSUCCESS") { results += `\n\nTransaction succeeded.` checkAMM() } else { results += `\n\nError sending transaction: ${JSON.stringify(bid_result.result.meta.TransactionResult, null, 2)}` - } + } } catch (error) { results += `\n\n${error.message}` } @@ -435,7 +427,6 @@ Report the results. } ``` - ### Swap AMM Tokens This function submits an `OfferCreate` transaction, using precise values to format the transaction and have the AMM completely consume the offer. @@ -447,15 +438,15 @@ async function swapTokens() { Connect to the XRP Ledger. ```javascript - let net = getNet() +let net = getNet() - const client = new xrpl.Client(net) - results = `\n\nConnecting to ${getNet()} ...` - standbyResultField.value = results +const client = new xrpl.Client(net) +results = `\n\nConnecting to ${getNet()} ...` +standbyResultField.value = results - await client.connect() - results += '\n\nConnected.' - standbyResultField.value = results +await client.connect() +results += '\n\nConnected.' +standbyResultField.value = results ``` Get the taker pays and taker gets fields and format the amounts depending on if it's `XRP` or a custom token. Wrap the code in a `try-catch` block to handle any errors. @@ -509,13 +500,13 @@ Submit the `OfferCreate` transaction. "TakerPays": takerPays, "TakerGets": takerGets }, {autofill: true, wallet: standby_wallet}) - + if (offer_result.result.meta.TransactionResult == "tesSUCCESS") { results += `\n\nTransaction succeeded.` checkAMM() } else { results += `\n\nError sending transaction: ${JSON.stringify(offer_result.result.meta.TransactionResult, null, 2)}` - } + } } catch (error) { results += `\n\n${error.message}` } @@ -531,35 +522,30 @@ Report the results. } ``` - -## Code Walkthrough (ripplex13b-amm-formulas.js) +## Code Walkthrough (ripplex13b-amm-formulas.js) You can open `ripplex13b-amm-formulas.js` from the [Quickstart Samples](https://github.com/XRPLF/xrpl-dev-portal/tree/master/_code-samples/quickstart/js/) to view the source code. This code implements several core [AMM formulas](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/misc/detail/AMMHelpers.cpp) defined by the protocol. - ### swapOut() The `swapOut()` function calculates how much of an asset you must deposit into an AMM to receive a specified amount of the paired asset. The input asset is what you're adding to the pool (paying), and the output asset is what you're receiving from the pool (buying). The formula used is based on [AMM Swap](https://github.com/XRPLF/XRPL-Standards/tree/master/XLS-0030-automated-market-maker#25-amm-swap), defined in XLS-30. -| Parameter | Type | Description | -|-----------|------|-------------| -| asset_out_bn | BigNumber | The target amount to receive from the AMM. | -| pool_in_bn | BigNumber | The amount of the input asset in the AMM's pool before the swap. | -| pool_out_bn | BigNumber | The amount of the output asset in the AMM's pool before the swap. | -| trading_fee | int | The trading fee as an integer {0, 1000} where 1000 represents a 1% fee. | +| Parameter | Type | Description | +| ------------ | --------- | ----------------------------------------------------------------------- | +| asset_out_bn | BigNumber | The target amount to receive from the AMM. | +| pool_in_bn | BigNumber | The amount of the input asset in the AMM's pool before the swap. | +| pool_out_bn | BigNumber | The amount of the output asset in the AMM's pool before the swap. | +| trading_fee | int | The trading fee as an integer {0, 1000} where 1000 represents a 1% fee. | -| Returns | Type | Description | -|---------|------|-------------| +| Returns | Type | Description | +| ------------ | --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Return Value | BigNumber | The amount of the input asset that must be swapped in to receive the target output amount. Unrounded, because the number of decimals depends on if this is drops of XRP or a decimal amount of a token; since this is a theoretical input to the pool, it should be rounded up (ceiling) to preserve the pool's constant product. | ```javascript function swapOut(asset_out_bn, pool_in_bn, pool_out_bn, trading_fee) { - return ( ( pool_in_bn.multipliedBy(pool_out_bn) ).dividedBy( - pool_out_bn.minus(asset_out_bn) - ).minus(pool_in_bn) - ).dividedBy(feeMult(trading_fee)) + return pool_in_bn.multipliedBy(pool_out_bn).dividedBy(pool_out_bn.minus(asset_out_bn)).minus(pool_in_bn).dividedBy(feeMult(trading_fee)) } ``` @@ -571,28 +557,25 @@ The formula used is based on the [slot pricing algorithm](https://github.com/XRP ```javascript function auctionDeposit(old_bid, time_interval, trading_fee, lpt_balance) { - const tfee_decimal = feeDecimal(trading_fee) - const lptokens = BigNumber(lpt_balance) - const b = BigNumber(old_bid) - let outbidAmount = BigNumber(0) // This is the case if time_interval >= 20 - if (time_interval == 0) { - outbidAmount = b.multipliedBy("1.05") - } else if (time_interval <= 19) { - const t60 = BigNumber(time_interval).multipliedBy("0.05").exponentiatedBy(60) - outbidAmount = b.multipliedBy("1.05").multipliedBy(BigNumber(1).minus(t60)) - } + const tfee_decimal = feeDecimal(trading_fee) + const lptokens = BigNumber(lpt_balance) + const b = BigNumber(old_bid) + let outbidAmount = BigNumber(0) // This is the case if time_interval >= 20 + if (time_interval == 0) { + outbidAmount = b.multipliedBy('1.05') + } else if (time_interval <= 19) { + const t60 = BigNumber(time_interval).multipliedBy('0.05').exponentiatedBy(60) + outbidAmount = b.multipliedBy('1.05').multipliedBy(BigNumber(1).minus(t60)) + } - const new_bid = lptokens.plus(outbidAmount).dividedBy( - BigNumber(25).dividedBy(tfee_decimal).minus(1) - ).plus(outbidAmount) - - // Significant digits for the deposit are limited by total LPTokens issued - // so we calculate lptokens + deposit - lptokens to determine where the - // rounding occurs. We use ceiling/floor to make sure the amount we receive - // after rounding is still enough to win the auction slot. - const rounded_bid = new_bid.plus(lptokens).precision(15, BigNumber.CEILING - ).minus(lptokens).precision(15, BigNumber.FLOOR) - return rounded_bid + const new_bid = lptokens.plus(outbidAmount).dividedBy(BigNumber(25).dividedBy(tfee_decimal).minus(1)).plus(outbidAmount) + + // Significant digits for the deposit are limited by total LPTokens issued + // so we calculate lptokens + deposit - lptokens to determine where the + // rounding occurs. We use ceiling/floor to make sure the amount we receive + // after rounding is still enough to win the auction slot. + const rounded_bid = new_bid.plus(lptokens).precision(15, BigNumber.CEILING).minus(lptokens).precision(15, BigNumber.FLOOR) + return rounded_bid } ``` @@ -600,41 +583,37 @@ function auctionDeposit(old_bid, time_interval, trading_fee, lpt_balance) { The `ammAssetIn()` function calculates how much to add in a single-asset deposit to receive a specified amount of LP tokens. -| Parameter | Type | Description | -|-----------|------|-------------| -| pool_in | string | The quantity of the input asset the pool already has. | -| lpt_balance | string | The quantity of LP tokens already issued by the AMM. | -| desired_lpt | string | The quantity of new LP tokens you want to receive. | -| trading_fee | int | The trading fee as an integer {0, 1000} where 1000 represents a 1% fee. | +| Parameter | Type | Description | +| ----------- | ------ | ----------------------------------------------------------------------- | +| pool_in | string | The quantity of the input asset the pool already has. | +| lpt_balance | string | The quantity of LP tokens already issued by the AMM. | +| desired_lpt | string | The quantity of new LP tokens you want to receive. | +| trading_fee | int | The trading fee as an integer {0, 1000} where 1000 represents a 1% fee. | ```javascript function ammAssetIn(pool_in, lpt_balance, desired_lpt, trading_fee) { - // convert inputs to BigNumber - const lpTokens = BigNumber(desired_lpt) - const lptAMMBalance = BigNumber(lpt_balance) - const asset1Balance = BigNumber(pool_in) + // convert inputs to BigNumber + const lpTokens = BigNumber(desired_lpt) + const lptAMMBalance = BigNumber(lpt_balance) + const asset1Balance = BigNumber(pool_in) - const f1 = feeMult(trading_fee) - const f2 = feeMultHalf(trading_fee).dividedBy(f1) - const t1 = lpTokens.dividedBy(lptAMMBalance) - const t2 = t1.plus(1) - const d = f2.minus( t1.dividedBy(t2) ) - const a = BigNumber(1).dividedBy( t2.multipliedBy(t2)) - const b = BigNumber(2).multipliedBy(d).dividedBy(t2).minus( - BigNumber(1).dividedBy(f1) - ) - const c = d.multipliedBy(d).minus( f2.multipliedBy(f2) ) - return asset1Balance.multipliedBy(solveQuadraticEq(a,b,c)) + const f1 = feeMult(trading_fee) + const f2 = feeMultHalf(trading_fee).dividedBy(f1) + const t1 = lpTokens.dividedBy(lptAMMBalance) + const t2 = t1.plus(1) + const d = f2.minus(t1.dividedBy(t2)) + const a = BigNumber(1).dividedBy(t2.multipliedBy(t2)) + const b = BigNumber(2).multipliedBy(d).dividedBy(t2).minus(BigNumber(1).dividedBy(f1)) + const c = d.multipliedBy(d).minus(f2.multipliedBy(f2)) + return asset1Balance.multipliedBy(solveQuadraticEq(a, b, c)) } ``` Compute the quadratic formula. This is a helper function for `ammAssetIn()`. Parameters and return value are `BigNumber` instances. ```javascript -function solveQuadraticEq(a,b,c) { - const b2minus4ac = b.multipliedBy(b).minus( - a.multipliedBy(c).multipliedBy(4) - ) - return ( b.negated().plus(b2minus4ac.sqrt()) ).dividedBy(a.multipliedBy(2)) +function solveQuadraticEq(a, b, c) { + const b2minus4ac = b.multipliedBy(b).minus(a.multipliedBy(c).multipliedBy(4)) + return b.negated().plus(b2minus4ac.sqrt()).dividedBy(a.multipliedBy(2)) } ``` diff --git a/docs/tutorials/javascript/build-apps/build-a-browser-wallet-in-javascript.md b/docs/tutorials/javascript/build-apps/build-a-browser-wallet-in-javascript.md index ce99697803..121e2d8960 100644 --- a/docs/tutorials/javascript/build-apps/build-a-browser-wallet-in-javascript.md +++ b/docs/tutorials/javascript/build-apps/build-a-browser-wallet-in-javascript.md @@ -5,9 +5,11 @@ targets: - en - ja # TODO: translate this page seo: - description: Build a graphical browser wallet for the XRPL using Javascript. + description: Build a graphical browser wallet for the XRPL using Javascript. --- + # Build a Browser Wallet in JavaScript + This tutorial demonstrates how to build a browser wallet for the XRP Ledger using the Javascript programming language and various libraries. This application can be used as a starting point for building a more complete and powerful application, as a reference point for building comparable apps, or as a learning experience to better understand how to integrate XRP Ledger functionality into a larger project. @@ -36,10 +38,10 @@ This application can: - View any XRP Ledger account's activity, including showing how much XRP was delivered by each transaction. - Show how much XRP is set aside for the account's [reserve requirement](../../../concepts/accounts/reserves.md). - Send [direct XRP payments](../../../concepts/payment-types/direct-xrp-payments.md), and provide feedback about the intended destination address, including: - - Displaying your account's available balance - - Verifying that the destination address is valid - - Validating the account has enough XRP to send - - Allowing you to specify a destination tag + - Displaying your account's available balance + - Verifying that the destination address is valid + - Validating the account has enough XRP to send + - Allowing you to specify a destination tag ## Steps @@ -60,7 +62,7 @@ yarn create vite simple-xrpl-wallet --template vanilla {% code-snippet file="/_code-samples/build-a-browser-wallet/js/package.json" language="js" /%} - - Alternatively you can also do `yarn add ` for each individual package to add them to your `package.json` file. +- Alternatively you can also do `yarn add ` for each individual package to add them to your `package.json` file. 4. Install dependencies: @@ -172,12 +174,12 @@ Destination Tag: (Not usually necessary unless you're paying an account tied to Now that we have created the home page and the send XRP page, let's create the transactions page that will display the transaction history of the account. In order to see what's happening on the ledger, we're going to display the following fields: - - Account: The account that sent the transaction. - - Destination: The account that received the transaction. - - Transaction Type: The type of transaction. - - Result: The result of the transaction. - - Delivered amount: The amount of XRP or tokens delivered by the transaction, if applicable. - - Link: A link to the transaction on the XRP Ledger Explorer. +- Account: The account that sent the transaction. +- Destination: The account that received the transaction. +- Transaction Type: The type of transaction. +- Result: The result of the transaction. +- Delivered amount: The amount of XRP or tokens delivered by the transaction, if applicable. +- Link: A link to the transaction on the XRP Ledger Explorer. {% admonition type="warning" name="Caution" %}When displaying how much money a transaction delivered, always use the `delivered_amount` field from the metadata, not the `Amount` field from the transaction instructions. [Partial Payments](../../../concepts/payment-types/partial-payments.md) can deliver much less than the stated `Amount` and still be successful.{% /admonition %} diff --git a/docs/tutorials/javascript/build-apps/build-a-desktop-wallet-in-javascript.md b/docs/tutorials/javascript/build-apps/build-a-desktop-wallet-in-javascript.md index 8be7d40200..4529342dad 100644 --- a/docs/tutorials/javascript/build-apps/build-a-desktop-wallet-in-javascript.md +++ b/docs/tutorials/javascript/build-apps/build-a-desktop-wallet-in-javascript.md @@ -1,7 +1,8 @@ --- seo: - description: Build a graphical desktop wallet for the XRPL using JavaScript. + description: Build a graphical desktop wallet for the XRPL using JavaScript. --- + # Build a Desktop Wallet in JavaScript This tutorial demonstrates how to build a desktop wallet for the XRP Ledger using the JavaScript programming language, the [Electron Framework](https://www.electronjs.org/) and various libraries. This application can be used as a starting point for building a more complex and powerful application, as a reference point for building comparable apps, or as a learning experience to better understand how to integrate XRP Ledger functionality into a larger project. @@ -16,7 +17,7 @@ To complete this tutorial, you should meet the following requirements: ### Source Code -You can find the complete source code for all of this tutorial's examples in the {% repo-link path="_code-samples/build-a-desktop-wallet/js/" %}code samples section of this website's repository{% /repo-link %}. After a `npm install` in this directory you can run the application for each step as described in the `scripts` section of `package.json`, e.g, `npm run ledger-index`. +You can find the complete source code for all of this tutorial's examples in the {% repo-link path="_code-samples/build-a-desktop-wallet/js/" %}code samples section of this website's repository{% /repo-link %}. After a `npm install` in this directory you can run the application for each step as described in the `scripts` section of `package.json`, e.g, `npm run ledger-index`. {% admonition type="warning" name="Caution" %}Be careful if you copy-and-paste the source code from these directly from these files. The sample code is split up into different files per step, so some shared imports and files are in different directories in the examples. This especially applies to the `library`, `bootstrap`, and `WALLET_DIR` contents.{% /admonition %} @@ -37,9 +38,9 @@ The application we are going to build here will be capable of the following: - Showing updates to the XRP Ledger in real-time. - Viewing any XRP Ledger account's activity "read-only" including showing how much XRP was delivered by each transaction. - Sending [direct XRP payments](../../../concepts/payment-types/direct-xrp-payments.md), and providing feedback about the intended destination address, including: - - Whether the intended destination already exists in the XRP Ledger, or the payment would have to fund its creation. - - If the address doesn't want to receive XRP (**Disallow XRP** flag enabled). - - If the address has a [verified domain name](../../../references/xrp-ledger-toml.md#account-verification) associated with it. + - Whether the intended destination already exists in the XRP Ledger, or the payment would have to fund its creation. + - If the address doesn't want to receive XRP (**Disallow XRP** flag enabled). + - If the address has a [verified domain name](../../../references/xrp-ledger-toml.md#account-verification) associated with it. The application in this tutorial _doesn't_ have the ability to send or trade [tokens](../../../concepts/tokens/index.md) or use other [payment types](../../../concepts/payment-types/index.md) like [Escrow](../../../concepts/payment-types/escrow.md) or [Payment Channels](../../../concepts/payment-types/payment-channels.md). However, it provides a foundation that you can implement those and other features on top of. @@ -56,6 +57,7 @@ In addition to the above features, you'll also learn a bit about Events, IPC (in Here we define the libraries our application will use in the `dependencies` section as well as shortcuts for running our application in the `scripts` section. 2. After you create your package.json file, install those dependencies by running the following command: + ```console npm install ``` @@ -73,7 +75,6 @@ application to work. {% code-snippet file="/_code-samples/build-a-desktop-wallet/js/0-hello/view/template.html" language="html" /%} - 6. Now, start the application with the following command: ```console @@ -116,22 +117,22 @@ This helper function does the following: It establishes a WebSocket connection t 2. In order to attach a preloader script, modify the `createWindow` method in `index.js` by adding the following code: ```javascript - // Creates the application window - const appWindow = new BrowserWindow({ - width: 1024, - height: 768, - // Step 1 code additions - start - webPreferences: { - preload: path.join(__dirname, 'view', 'preload.js'), - }, - // Step 1 code additions - end - }) +// Creates the application window +const appWindow = new BrowserWindow({ + width: 1024, + height: 768, + // Step 1 code additions - start + webPreferences: { + preload: path.join(__dirname, 'view', 'preload.js'), + }, + // Step 1 code additions - end +}) ``` 3. Now in the `view` folder, create a file `preload.js` with the following content: ```javascript -const { contextBridge, ipcRenderer } = require('electron'); +const { contextBridge, ipcRenderer } = require('electron') // Expose functionality from main process (aka. "backend") to be used by the renderer process(aka. "backend") contextBridge.exposeInMainWorld('electronAPI', { @@ -140,7 +141,7 @@ contextBridge.exposeInMainWorld('electronAPI', { // The subscribed function gets triggered whenever the backend process triggers the event 'update-ledger-index' onUpdateLedgerIndex: (callback) => { ipcRenderer.on('update-ledger-index', callback) - } + }, }) ``` @@ -152,10 +153,10 @@ In the browser, `window.electronAPI.onUpdateLedgerIndex(callback)` can now be us ```html - -

    Build a XRPL Wallet

    - Latest validated ledger index: - + +

    Build a XRPL Wallet

    + Latest validated ledger index: + ``` @@ -177,7 +178,7 @@ const ledgerIndexEl = document.getElementById('ledger-index') // Here we define the callback function that performs the content update // whenever 'update-ledger-index' is called by the main process window.electronAPI.onUpdateLedgerIndex((_event, value) => { - ledgerIndexEl.innerText = value + ledgerIndexEl.innerText = value }) ``` @@ -196,7 +197,6 @@ app.whenReady().then(() => { appWindow.webContents.send('update-ledger-index', value) }) // Step 1 code additions - end - }) ``` @@ -223,7 +223,6 @@ To run the reference application found in `_code-samples/build-a-desktop-wallet/ npm run ledger-index ``` - ### 2. Show Ledger Updates by using WebSocket subscriptions **Full code for this step:** @@ -247,12 +246,12 @@ Here, we have reduced the `app.whenReady` logic to an one-liner and put the nece 3. Then, update `preload.js` by renaming the `onUpdateLedgerIndex` to `onUpdateLedgerData` and the `update-ledger-index` event to `update-ledger-data`: ```javascript -const { contextBridge, ipcRenderer } = require('electron'); +const { contextBridge, ipcRenderer } = require('electron') contextBridge.exposeInMainWorld('electronAPI', { onUpdateLedgerData: (callback) => { ipcRenderer.on('update-ledger-data', callback) - } + }, }) ``` @@ -262,13 +261,13 @@ This renaming might seem a bit nit-picky, but now we actually pass on an object ```html - -

    Build a XRPL Wallet - Part 2/8

    - Latest validated ledger stats
    - Ledger Index:
    - Ledger Hash:
    - Close Time:
    - + +

    Build a XRPL Wallet - Part 2/8

    + Latest validated ledger stats
    + Ledger Index:
    + Ledger Hash:
    + Close Time:
    + ``` @@ -280,9 +279,9 @@ const ledgerHashEl = document.getElementById('ledger-hash') const ledgerCloseTimeEl = document.getElementById('ledger-close-time') window.electronAPI.onUpdateLedgerData((_event, value) => { - ledgerIndexEl.innerText = value.ledger_index - ledgerHashEl.innerText = value.ledger_hash - ledgerCloseTimeEl.innerText = value.ledger_time + ledgerIndexEl.innerText = value.ledger_index + ledgerHashEl.innerText = value.ledger_hash + ledgerCloseTimeEl.innerText = value.ledger_time }) ``` @@ -328,15 +327,15 @@ Here we define three utility functions that will transform data we receive from ```javascript // Step 3 code additions - start -const { app, BrowserWindow, ipcMain} = require('electron') +const { app, BrowserWindow, ipcMain } = require('electron') // Step 3 code additions - end const path = require('path') -const xrpl = require("xrpl") +const xrpl = require('xrpl') // Step 3 code additions - start const { prepareAccountData, prepareLedgerData } = require('./library/3_helpers') // Step 3 code additions - end -const TESTNET_URL = "wss://s.altnet.rippletest.net:51233" +const TESTNET_URL = 'wss://s.altnet.rippletest.net:51233' ``` 3. Modify `index.js` in the following way: @@ -346,21 +345,20 @@ const main = async () => { const appWindow = createWindow() // Step 3 code modifications - start - ipcMain.on('address-entered', async (event, address) => { - + ipcMain.on('address-entered', async (event, address) => { const client = new xrpl.Client(TESTNET_URL) await client.connect() // Reference: https://xrpl.org/subscribe.html await client.request({ - "command": "subscribe", - "streams": ["ledger"], - "accounts": [address] + command: 'subscribe', + streams: ['ledger'], + accounts: [address], }) // Reference: https://xrpl.org/subscribe.html#ledger-stream - client.on("ledgerClosed", async (rawLedgerData) => { + client.on('ledgerClosed', async (rawLedgerData) => { const ledger = prepareLedgerData(rawLedgerData) appWindow.webContents.send('update-ledger-data', ledger) }) @@ -368,18 +366,18 @@ const main = async () => { // Initial Ledger Request -> Get account details on startup // Reference: https://xrpl.org/ledger.html const ledgerResponse = await client.request({ - "command": "ledger" + command: 'ledger', }) const initialLedgerData = prepareLedgerData(ledgerResponse.result.closed.ledger) appWindow.webContents.send('update-ledger-data', initialLedgerData) // Reference: https://xrpl.org/subscribe.html#transaction-streams - client.on("transaction", async (transaction) => { + client.on('transaction', async (transaction) => { // Reference: https://xrpl.org/account_info.html const accountInfoRequest = { - "command": "account_info", - "account": address, - "ledger_index": transaction.ledger_index + command: 'account_info', + account: address, + ledger_index: transaction.ledger_index, } const accountInfoResponse = await client.request(accountInfoRequest) const accountData = prepareAccountData(accountInfoResponse.result.account_data) @@ -389,13 +387,12 @@ const main = async () => { // Initial Account Request -> Get account details on startup // Reference: https://xrpl.org/account_info.html const accountInfoResponse = await client.request({ - "command": "account_info", - "account": address, - "ledger_index": "current" + command: 'account_info', + account: address, + ledger_index: 'current', }) const accountData = prepareAccountData(accountInfoResponse.result.account_data) appWindow.webContents.send('update-account-data', accountData) - }) // Step 3 code modifications - end } @@ -404,7 +401,7 @@ const main = async () => { As the account we want to query is known only after the user enters an address, we had to wrap our application logic into an event handler: ```javascript -ipcMain.on('address-entered', async (event, address) => { +ipcMain.on('address-entered', async (event, address) => { // ... }) ``` @@ -413,9 +410,9 @@ In addition to the subscription to the ledger stream we also can subscribe the c ```javascript await client.request({ - "command": "subscribe", - "streams": ["ledger"], - "accounts": [address] + command: 'subscribe', + streams: ['ledger'], + accounts: [address], }) ``` @@ -426,7 +423,7 @@ In addition to the subscriptions we added an initial `ledger` and `accountInfo` 4. Now, add the following code to `preload.js`: ```javascript -const { contextBridge, ipcRenderer } = require('electron'); +const { contextBridge, ipcRenderer } = require('electron') contextBridge.exposeInMainWorld('electronAPI', { onUpdateLedgerData: (callback) => { @@ -439,7 +436,7 @@ contextBridge.exposeInMainWorld('electronAPI', { }, onUpdateAccountData: (callback) => { ipcRenderer.on('update-account-data', callback) - } + }, //Step 3 code additions - end }) ``` @@ -448,7 +445,7 @@ Here is a notable difference from the previous step: previously we only used `ip ```javascript onEnterAccountAddress: (address) => { - ipcRenderer.send('address-entered', address) + ipcRenderer.send('address-entered', address) } ``` @@ -456,35 +453,33 @@ onEnterAccountAddress: (address) => { ```html +

    Build a XRPL Wallet - Part 3/8

    -

    Build a XRPL Wallet - Part 3/8

    +
    + Account info + Classic Address:
    + X-Address:
    + XRP Balance:
    +
    -
    - Account info - Classic Address:
    - X-Address:
    - XRP Balance:
    -
    - -
    - Latest validated ledger stats - Ledger Index:
    - Ledger Hash:
    - Close Time:
    -
    - - -
    -
    - - -
    -
    - -
    -
    -
    +
    + Latest validated ledger stats + Ledger Index:
    + Ledger Hash:
    + Close Time:
    +
    + +
    +
    + + +
    +
    + +
    +
    +
    ``` @@ -531,7 +526,7 @@ At this point, our wallet shows the account's balance getting updated, but doesn 2. Now, in `index.js`, require the new helper function at the bottom of the import section like so: ```javascript -const { prepareAccountData, prepareLedgerData} = require('./library/3_helpers') +const { prepareAccountData, prepareLedgerData } = require('./library/3_helpers') const { prepareTxData } = require('./library/4_helpers') ``` @@ -539,12 +534,12 @@ const { prepareTxData } = require('./library/4_helpers') ```javascript // Wait for transaction on subscribed account and re-request account data -client.on("transaction", async (transaction) => { +client.on('transaction', async (transaction) => { // Reference: https://xrpl.org/account_info.html const accountInfoRequest = { - "command": "account_info", - "account": address, - "ledger_index": transaction.ledger_index + command: 'account_info', + account: address, + ledger_index: transaction.ledger_index, } const accountInfoResponse = await client.request(accountInfoRequest) @@ -552,10 +547,9 @@ client.on("transaction", async (transaction) => { appWindow.webContents.send('update-account-data', accountData) // Step 4 code additions - start - const transactions = prepareTxData([{tx: transaction.transaction}]) + const transactions = prepareTxData([{ tx: transaction.transaction }]) appWindow.webContents.send('update-transaction-data', transactions) // Step 4 code additions - end - }) ``` @@ -565,9 +559,9 @@ client.on("transaction", async (transaction) => { // Initial Account Request -> Get account details on startup // Reference: https://xrpl.org/account_info.html const accountInfoResponse = await client.request({ - "command": "account_info", - "account": address, - "ledger_index": "current" + command: 'account_info', + account: address, + ledger_index: 'current', }) const accountData = prepareAccountData(accountInfoResponse.result.account_data) appWindow.webContents.send('update-account-data', accountData) @@ -577,8 +571,8 @@ appWindow.webContents.send('update-account-data', accountData) // Initial Transaction Request -> List account transactions on startup // Reference: https://xrpl.org/account_tx.html const txResponse = await client.request({ - "command": "account_tx", - "account": address + command: 'account_tx', + account: address, }) const transactions = prepareTxData(txResponse.result.transactions) appWindow.webContents.send('update-transaction-data', transactions) @@ -603,7 +597,7 @@ contextBridge.exposeInMainWorld('electronAPI', { // Step 4 code additions - start onUpdateTransactionData: (callback) => { ipcRenderer.on('update-transaction-data', callback) - } + }, // Step 4 code additions - end }) ``` @@ -647,18 +641,31 @@ const txTableBodyEl = document.getElementById('tx-table').tBodies[0] window.testEl = txTableBodyEl window.electronAPI.onUpdateTransactionData((_event, transactions) => { - for (let transaction of transactions) { - txTableBodyEl.insertAdjacentHTML( 'beforeend', - "" + - "" + transaction.confirmed + "" + - "" + transaction.type + "" + - "" + transaction.from + "" + - "" + transaction.to + "" + - "" + transaction.value + "" + - "" + transaction.hash + "" + - "" - ) - } + for (let transaction of transactions) { + txTableBodyEl.insertAdjacentHTML( + 'beforeend', + '' + + '' + + transaction.confirmed + + '' + + '' + + transaction.type + + '' + + '' + + transaction.from + + '' + + '' + + transaction.to + + '' + + '' + + transaction.value + + '' + + '' + + transaction.hash + + '' + + '', + ) + } }) ``` @@ -693,7 +700,7 @@ After finishing this step the application should look like this: By now we always query the user for an account address at application startup. We more or less have a monitoring tool for accounts that queries publicly available data. Because we want to have real wallet functionality including sending XRP, we will have to deal with private keys and seeds. -In this step we will query the user for a seed and a password they can use to access it later. In order to protect the password, we'll add a [salt](https://en.wikipedia.org/wiki/Salt_(cryptography)) to the password. +In this step we will query the user for a seed and a password they can use to access it later. In order to protect the password, we'll add a [salt]() to the password. 1. In the `library` folder, add a new file `5_helpers.js` with the following content: @@ -759,51 +766,51 @@ contextBridge.exposeInMainWorld('electronAPI', { 4. Then, in `view/template.html`, replace the existing HTML dialog element for the account with the new ones for seed and password: ```html - -
    -
    - - -
    -
    - -
    -
    -
    + +
    +
    + + +
    +
    + +
    +
    +
    - -
    -
    - -
    - -
    -
    - - -
    -
    -
    + +
    +
    + +
    + +
    +
    + + +
    +
    +
    ``` 6. In `view/renderer.js`, replace the `openAccountAddressDialog` part at the top: ```javascript // Remove the following section in Step 5 -document.addEventListener('DOMContentLoaded', openAccountAddressDialog); +document.addEventListener('DOMContentLoaded', openAccountAddressDialog) -function openAccountAddressDialog(){ - const accountAddressDialog = document.getElementById('account-address-dialog'); - const accountAddressInput = accountAddressDialog.querySelector('input'); - const submitButton = accountAddressDialog.querySelector('button[type="submit"]'); +function openAccountAddressDialog() { + const accountAddressDialog = document.getElementById('account-address-dialog') + const accountAddressInput = accountAddressDialog.querySelector('input') + const submitButton = accountAddressDialog.querySelector('button[type="submit"]') - submitButton.addEventListener('click', () => { - const address = accountAddressInput.value; - window.electronAPI.onEnterAccountAddress(address) - accountAddressDialog.close() - }); + submitButton.addEventListener('click', () => { + const address = accountAddressInput.value + window.electronAPI.onEnterAccountAddress(address) + accountAddressDialog.close() + }) - accountAddressDialog.showModal() + accountAddressDialog.showModal() } ``` @@ -821,7 +828,7 @@ const seedSubmitFn = () => { } window.electronAPI.onOpenSeedDialog((_event) => { - seedSubmitButton.addEventListener('click', seedSubmitFn, {once : true}); + seedSubmitButton.addEventListener('click', seedSubmitFn, { once: true }) seedDialog.showModal() }) @@ -847,10 +854,10 @@ window.electronAPI.onOpenPasswordDialog((_event, showInvalidPassword = false) => if (showInvalidPassword) { passwordError.innerHTML = 'INVALID PASSWORD' } - passwordSubmitButton.addEventListener('click', handlePasswordSubmitFn, {once : true}); - changeSeedButton.addEventListener('click', handleChangeSeedFn, {once : true}); + passwordSubmitButton.addEventListener('click', handlePasswordSubmitFn, { once: true }) + changeSeedButton.addEventListener('click', handleChangeSeedFn, { once: true }) passwordDialog.showModal() -}); +}) ``` Start up the application: @@ -891,134 +898,143 @@ After finishing this step the application should look like this: ![Screenshot: Step 6, style application with css](/docs/img/javascript-wallet-6.png) 1. In the project root, create a new folder `bootstrap` and add the following files into that directory: -{% repo-link path="_code-samples/build-a-desktop-wallet/js/bootstrap/bootstrap.bundle.min.js" %}`bootstrap.bundle.min.js`{% /repo-link %}, -{% repo-link path="_code-samples/build-a-desktop-wallet/js/bootstrap/bootstrap.bundle.min.css" %}`bootstrap.min.css`{% /repo-link %}, -{% repo-link path="_code-samples/build-a-desktop-wallet/js/bootstrap/custom.css" %}`custom.css`{% /repo-link %}, -{% repo-link path="_code-samples/build-a-desktop-wallet/js/bootstrap/XRPLedger_DevPortal-white.svg" %}`XRPLedger_DevPortal-white.svg`{% /repo-link %} + {% repo-link path="_code-samples/build-a-desktop-wallet/js/bootstrap/bootstrap.bundle.min.js" %}`bootstrap.bundle.min.js`{% /repo-link %}, + {% repo-link path="_code-samples/build-a-desktop-wallet/js/bootstrap/bootstrap.bundle.min.css" %}`bootstrap.min.css`{% /repo-link %}, + {% repo-link path="_code-samples/build-a-desktop-wallet/js/bootstrap/custom.css" %}`custom.css`{% /repo-link %}, + {% repo-link path="_code-samples/build-a-desktop-wallet/js/bootstrap/XRPLedger_DevPortal-white.svg" %}`XRPLedger_DevPortal-white.svg`{% /repo-link %} 2. Change the content of `view/template.html` to be the following code: -````html +```html + + + - - - + XRPL Wallet Tutorial (JavaScript / Electron) - XRPL Wallet Tutorial (JavaScript / Electron) + + + - - - - - - -
    - - -
    - -
    - -
    -

    - Build a XRPL Wallet - - Part 6/8 -

    -
    - -
    -

    Account:

    -
      -
    • Classic Address:
    • -
    • X-Address:
    • -
    • XRP Balance:
    • -
    -
    -

    - Ledger - (Latest validated ledger) -

    -
      -
    • Ledger Index:
    • -
    • Ledger Hash:
    • -
    • Close Time:
    • + +
      + -
      -

      Transactions:

      - - - - - - - - - - - - -
      ConfirmedTypeFromToValue DeliveredHash
      +
      + +
      +
      +

      + Build a XRPL Wallet + - Part 6/8 +

      +
      + +
      +

      Account:

      +
        +
      • Classic Address:
      • +
      • X-Address:
      • +
      • XRP Balance:
      • +
      +
      +

      + Ledger + (Latest validated ledger) +

      +
        +
      • Ledger Index:
      • +
      • Ledger Hash:
      • +
      • Close Time:
      • +
      +
      + +
      +

      Transactions:

      + + + + + + + + + + + + +
      ConfirmedTypeFromToValue DeliveredHash
      +
      +
      -
    + +
    +
    + + +
    +
    + +
    +
    +
    -
    - - -
    -
    - - -
    -
    - -
    -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    -
    - - - - - + +
    +
    + + +
    +
    + + +
    +
    +
    + + + -```` +``` Here we basically added the [Boostrap Framework](https://getbootstrap.com/) and a little custom styling to our application. We'll leave it at that for this Step - to get the application running at this stage of development, run the following command: @@ -1054,9 +1070,7 @@ Up until now we have enabled our app to query and display data from the XRPL. No {% code-snippet file="/_code-samples/build-a-desktop-wallet/js/library/7_helpers.js" language="js" /%} - -(There was no `6-helpers.js`, so don't worry!) -2. Add the new function to the import section in `index.js`: +(There was no `6-helpers.js`, so don't worry!) 2. Add the new function to the import section in `index.js`: ```javascript const { initialize, subscribe, saveSaltedSeed, loadSaltedSeed } = require('./library/5_helpers') @@ -1064,18 +1078,20 @@ const { sendXrp } = require('./library/7_helpers') ``` 3. Still in `index.js`, add an event listener handling the `send-xrp-event` from the frontend dialog: + ```javascript - await initialize(client, wallet, appWindow) - // Step 7 code additions - start - ipcMain.on('send-xrp-action', (event, paymentData) => { - sendXrp(paymentData, client, wallet).then((result) => { - appWindow.webContents.send('send-xrp-transaction-finish', result) - }) - }) - // Step 7 code additions - start +await initialize(client, wallet, appWindow) +// Step 7 code additions - start +ipcMain.on('send-xrp-action', (event, paymentData) => { + sendXrp(paymentData, client, wallet).then((result) => { + appWindow.webContents.send('send-xrp-transaction-finish', result) + }) +}) +// Step 7 code additions - start ``` 4. Modify `view/preload.js` by adding two new functions: + ```javascript onClickSendXrp: (paymentData) => { ipcRenderer.send('send-xrp-action', paymentData) @@ -1086,50 +1102,50 @@ const { sendXrp } = require('./library/7_helpers') ``` 5. In `view/template.html`, add a button to toggle the modal dialog housing the "Send XRP" logic: + ```html -
    -

    - Build a XRPL Wallet - - Part 7/8 -

    - - - -
    +
    +

    + Build a XRPL Wallet + - Part 7/8 +

    + + + +
    ``` 6. In the same file, at the end of the `
    ` section, add said modal dialog: + ```html - - To create a trust line between accounts: 1. Enter a [currency code](https://www.iban.com/currency-codes) in the **Currency** field. @@ -146,7 +146,8 @@ Return the results. ```python return response.result ``` -## send_currency + +## send_currency Send currency to another account based on the sender wallet, destination account, the currency type, and the amount of the currency. @@ -178,16 +179,16 @@ Define the payment transaction. The amount requires further description to ident Submit the transaction and get the response. -```python +````python response=xrpl.transaction.submit_and_wait(send_currency_tx, client, sending_wallet)``` Return the results. ```python return response.result -``` +```` -### get_balance +### get_balance Update the **XRP Balance** fields and list the balance information for issued currencies in the **Results** text areas. @@ -202,7 +203,7 @@ Connect to the XRP Ledger and instantiate a client. client=JsonRpcClient(testnet_url) ``` -Create the `GatewayBalances` request. +Create the `GatewayBalances` request. ```python balance=xrpl.models.requests.GatewayBalances( @@ -224,6 +225,7 @@ Return the result. This example shows how to set and clear configuration flags using the `AccountSet` method. The `ASF_DEFAULT_RIPPLE` flag is pertinent to experimentation with transfer of issued currencies to third-party accounts, so it is demonstrated here. You can set any of the configuration flags using the same structure, substituting the particular flags you want to set. See [AccountSet Flags](../../../references/protocol/transactions/types/accountset.md#accountset-flags). Send the account seed and a Boolean value for whether to enable or disable rippling. + ```python def configure_account(seed, default_setting): """configure_account" @@ -236,7 +238,7 @@ Get the account wallet and instantiate a client. client=JsonRpcClient(testnet_url) ``` -If `default_setting` is true, create a `set_flag` transaction to enable rippling. If false, create a `clear_flag` transaction to disable rippling. +If `default_setting` is true, create a `set_flag` transaction to enable rippling. If false, create a `clear_flag` transaction to disable rippling. ```python if (default_setting): @@ -255,7 +257,7 @@ Submit the transaction and get results. ```python response=xrpl.transaction.submit_and_wait(setting_tx,client,wallet) - return response.result + return response.result ``` ## lesson2-send-currency.py diff --git a/docs/tutorials/python/send-payments/index.md b/docs/tutorials/python/send-payments/index.md index acdb314878..dcb1354a65 100644 --- a/docs/tutorials/python/send-payments/index.md +++ b/docs/tutorials/python/send-payments/index.md @@ -2,7 +2,7 @@ html: send-payments-using-python.html parent: modular-tutorials-in-python.html seo: - description: Use a Python test harness to send XRP,trade currencies, and more. + description: Use a Python test harness to send XRP,trade currencies, and more. labels: - Accounts - Cross-Currency @@ -14,9 +14,9 @@ labels: metadata: indexPage: true --- + # Send Payments Using Python Send XRP and issued currency on the XRP Ledger using Python. - {% child-pages /%} diff --git a/docs/tutorials/python/send-payments/send-and-cash-checks.md b/docs/tutorials/python/send-payments/send-and-cash-checks.md index dde3a10a96..ce67ca7570 100644 --- a/docs/tutorials/python/send-payments/send-and-cash-checks.md +++ b/docs/tutorials/python/send-payments/send-and-cash-checks.md @@ -8,11 +8,12 @@ labels: - Checks - XRP --- + # Send and Cash Checks This example shows how to: -1. Send a check to transfer XRP or issued currency to another account. +1. Send a check to transfer XRP or issued currency to another account. 2. Get a list of checks you have sent or received. 3. Cash a check received from another account. 4. Cancel a check you have sent. @@ -20,8 +21,7 @@ This example shows how to: Checks offer another option for transferring funds between accounts. Checks have two particular advantages. 1. You can use a check to send funds to another account without first creating a trust line - the trust line is created automatically when the receiver chooses to accept the funds. -2. The receiver can choose to accept less than the full amount of the check. This allows you to authorize a maximum amount when the actual cost is not finalized. - +2. The receiver can choose to accept less than the full amount of the check. This allows you to authorize a maximum amount when the actual cost is not finalized. [![Empty Check Form](/docs/img/quickstart-py-checks1.png)](/docs/img/quickstart-py-checks1.png) @@ -46,7 +46,7 @@ To get test accounts: 3. Click **Get Operational Account**. 4. Click **Get Standby Account Info**. 5. Click **Get Operational Account Info**. -5. Copy and paste the **Standby Seed** and **Operational Seed** fields to a persistent location, such as a Notepad, so that you can reuse the accounts after reloading the form. +6. Copy and paste the **Standby Seed** and **Operational Seed** fields to a persistent location, such as a Notepad, so that you can reuse the accounts after reloading the form. [![Form with New Accounts](/docs/img/quickstart-py-checks2.png)](/docs/img/quickstart-py-checks2.png) @@ -79,7 +79,6 @@ To send a check for an issued currency token from the Standby account to the Ope [![Send Token Check Settings](/docs/img/quickstart-py-checks4.png)](/docs/img/quickstart-py-checks4.png) - ### Get Checks Click **Get Checks** to get a list of the current checks you have sent or received. To uniquely identify a check (for existence, when cashing a check), capture the **index** value for the check. @@ -94,14 +93,11 @@ To cash a check you have received: 2. Enter the **Amount** you want to collect, up to the full amount of the check. 3. Enter the currency code. a. If you cashing a check for XRP, enter _XRP_ in the **Currency** field. - b. If you are cashing a check for an issued currency token: - 1. Enter the **Issuer** of the token. - 2. Enter the **Currency** code for the token. + b. If you are cashing a check for an issued currency token: 1. Enter the **Issuer** of the token. 2. Enter the **Currency** code for the token. 4. Click **Cash Check**. [![Cashed check results](/docs/img/quickstart-py-checks6.png)](/docs/img/quickstart-py-checks6.png) - ### Get Balances Click **Get Balances** to get a list of obligations and assets for each account. @@ -117,7 +113,6 @@ To cancel a check you have previously sent to another account. [![Canceled check results](/docs/img/quickstart-py-checks8.png)](/docs/img/quickstart-py-checks8.png) - # Code Walkthrough You can download the [Quickstart Samples](https://github.com/XRPLF/xrpl-dev-portal/tree/master/content/_code-samples/quickstart/py/) in the source repository for this website. @@ -140,9 +135,10 @@ Set the TestNet URL. ```python testnet_url = "https://s.altnet.rippletest.net:51234" ``` + ### send_check -Pass the arguments for the account seed, check amount, and destination account. Set the currency type to _XRP_, or if it is an issued currency token provide the currency type and issuer. +Pass the arguments for the account seed, check amount, and destination account. Set the currency type to _XRP_, or if it is an issued currency token provide the currency type and issuer. ```python def send_check(seed, amount, destination, currency, issuer): @@ -173,7 +169,7 @@ Define the `CheckCreate` transaction. account=wallet.address, send_max=amount, destination=destination - ) + ) ``` Submit the transaction and report the results. @@ -190,7 +186,7 @@ Submit the transaction and report the results. ### cash_check -Pass the values for seed, amount, and check_id. Set the currency type to _XRP_, or include the currency type and issuer. +Pass the values for seed, amount, and check*id. Set the currency type to \_XRP*, or include the currency type and issuer. ```python def cash_check(seed, amount, check_id, currency, issuer): @@ -306,7 +302,7 @@ Send the request and report the results. ## lesson10-check.py -This example builds on `lesson2-send-currency.py`. Changes are noted below. +This example builds on `lesson2-send-currency.py`. Changes are noted below. ```python import tkinter as tk @@ -606,7 +602,6 @@ btn_standby_send_xrp.grid(row=2, column=2, sticky="nsew") Add standby buttons for **Send Check**, **Get Checks**, **Cash Check**, **Cancel Check**, and **Get Balances**. - ```python btn_standby_send_check=tk.Button(master=frm_form, text="Send Check", command=standby_send_check) @@ -639,7 +634,6 @@ btn_op_send_xrp.grid(row=2, column=3, sticky="nsew") Add operational buttons for **Send Check**, **Get Checks**, **Cash Check**, **Cancel Check**, and **Get Balances**. - ```javascript btn_op_send_check=tk.Button(master=frm_form, text="Send Check", command=operational_send_check) diff --git a/docs/use-cases/defi/algorithmic-trading.md b/docs/use-cases/defi/algorithmic-trading.md index bb9387a8b7..d9e71c397a 100644 --- a/docs/use-cases/defi/algorithmic-trading.md +++ b/docs/use-cases/defi/algorithmic-trading.md @@ -2,10 +2,11 @@ html: algorithmic-trading.html parent: defi-uc.html seo: - description: The XRP Ledger's decentralized exchange consists of an unlimited number of currency pairs, tracked on-demand when users make trades. + description: The XRP Ledger's decentralized exchange consists of an unlimited number of currency pairs, tracked on-demand when users make trades. labels: - Transactions --- + # Algorithmic Trading The XRP Ledger's decentralized exchange presents an opportunity to earn money through _algorithmic trading_, which means running a computer program to find and take profitable trading opportunities automatically. In algorithmic trading, you typically make many trades based on quantitative factors to earn steady, small profits; this is unlike traditional manual trading where you make a few long-term investments based on market fundamentals and wait to earn a large return over time. Blockchains are often more suitable for algorithmic trading than manual trading, because the high volatility of cryptocurrencies in general makes them less suitable for traditional "buy and hold" investing; the XRP Ledger is particularly suited for algorithmic trading, for several reasons: @@ -30,7 +31,6 @@ You can use **circular payments** to complete multi-asset trades for a profit. T You can perform **cross-exchange arbitrage** if you have accounts at multiple private exchanges where the prices for an asset are different. For example, if you can buy XRP at ACME Exchange for $0.45 per 1 XRP, then move the XRP over to WayGate Exchange where you sell it for $0.50 per 1 XRP, you can make a profit of $0.05 per XRP minus the costs of trading and sending the relevant transactions, including exchanges' fees to withdraw and deposit your profits. As a more complex example, if the BTC:ETH price shifts at ACME Exchange to make ETH cheaper relative to BTC, you could potentially take advantage of this price shift by selling ETH→XRP at one exchange, then moving the XRP to ACME Exchange and trading XRP→BTC→ETH for a profit there. Since XRP Ledger transactions settle in seconds but Ethereum transactions can take minutes and Bitcoin transactions can take hours, using XRP as a bridge currency can potentially allow you to take advantage of this opportunity sooner than simply trading ETH→BTC and then BTC→ETH at ACME Exchange. (This only works, of course, if there is enough liquidity and tight enough spreads that exchanging to XRP and back doesn't cost more than your profits.) - ## Background Reading You can familiarize yourself with algorithmic trading, in general, by reading the following resources: @@ -45,7 +45,6 @@ The following pages describe key elements of how the XRP Ledger's decentralized - [Decentralized Exchange](../../concepts/tokens/decentralized-exchange/index.md) - [Offers](../../concepts/tokens/decentralized-exchange/offers.md) - ## Testing and Common Mistakes Like any type of trading, algorithmic trading is not a surefire way to make money; there are many ways you might take a loss. Compared with manual trading, algorithmic trading has much less room for error. If you make a small mistake, but multiply it by a large number of trades, your losses can add up quickly before you have a chance to fix the problem. Therefore, it's wise to do various tests to make sure that your trading strategy will actually make a profit. You might do any or all of the following to test your strategy or the actual implementation of it (often called a _bot_): @@ -57,8 +56,8 @@ Like any type of trading, algorithmic trading is not a surefire way to make mone Common mistakes you might make in these calculations or in building your bot include: - Rounding errors. If your math is not sound, or does not match the precision that the blockchain uses, you could inaccurately predict the results of a trade and take a loss, or have your trade not execute at all. The XRP Ledger uses different precision for token and XRP amounts, which can lead to rounding in unexpected places when trading one for the other. For more details on the precision used in the protocol, see [Currency Formats](../../references/protocol/data-types/currency-formats.md). - - Be aware that token issuers can further limit the precision of exchange rates involving their tokens. See [Tick Size](../../concepts/tokens/decentralized-exchange/ticksize.md) for details. - - Typically, you need to adjust your amounts by some small percentage to account for potential differences in rounding or price movements between when you looked things up and when your trade executes. This amount is called _slippage_, and it's important to get the right amount. If it's too low, your transaction may not execute at all; but if it's too high, you're vulnerable to front-running, and the higher it is the more that price movements can cut into your profits in general. + - Be aware that token issuers can further limit the precision of exchange rates involving their tokens. See [Tick Size](../../concepts/tokens/decentralized-exchange/ticksize.md) for details. + - Typically, you need to adjust your amounts by some small percentage to account for potential differences in rounding or price movements between when you looked things up and when your trade executes. This amount is called _slippage_, and it's important to get the right amount. If it's too low, your transaction may not execute at all; but if it's too high, you're vulnerable to front-running, and the higher it is the more that price movements can cut into your profits in general. - Forgetting extra costs and delays. For example, if two stablecoins are both fully backed by US dollars, but one issuer charges a 0.5% transfer fee and a different issuer charges a 0.25% [transfer fee](../../concepts/tokens/fungible-tokens/transfer-fees.md), you should expect about a 0.25% difference in the effective price those stablecoins trade at. Don't forget the costs of sending a transaction, even though they're usually small, nor the consequences of other potential delays. For example, even if an off-ledger private exchange shows a favorable price now, if that exchange takes hours or even days to process a deposit, the price is likely to shift so you can't take advantage of it unless you already have liquidity at that exchange. - Not accounting for rare events. Even setting aside unprecented ("black swan") events, your calculations can be skewed by individual outliers. As one example (which is a true story), a trader reported that, when calculating the potential profits of a given strategy in a specific time range, over 80% of the profits came from a single "fat-fingered" transaction where another user had accidentally added an extra zero to their price. The same strategy was far less profitable when calculated against time ranges that didn't include the outlier transaction. - Not reading transaction flags. The flags of an XRP Ledger transaction can have significant impacts on the way that transaction is processed and when the protocol marks it as "successful". For example, the flags of "Offer" transactions can make it a "fill or kill" order that only trades if the full amount can be obtained immediately; the flags of "Payment" transactions can make them [partial payments](../../concepts/payment-types/partial-payments.md) that succeed even if they can't deliver the full amount to the intended destination. You need to do bitwise math to parse the `Flags` field of a transaction, but your expectations can be totally wrong if you skip doing so. @@ -67,7 +66,6 @@ Common mistakes you might make in these calculations or in building your bot inc The legal requirements for trading on a blockchain vary by jurisdiction. In many cases, there are no licensing or other legal barriers to getting started, but you may be required to report your profits for tax purposes, especially if your gains or losses are over some thresholds. In the United States, you typically report profits (or losses) from trading as capital gains, which means you need to calculate the cost basis for the assets you buy at the time you acquire them. There are various tools out there that may be able to help track your trading activity or even generate the appropriate tax forms, depending on your individual situation. Depending on which assets you are trading and your trading strategies, the details may vary. Be sure to do your research or consult with a tax professional before you get started with algorithmic trading. - ## Technical Details ### Placing Trades diff --git a/docs/use-cases/defi/enable-compliance-focused-cross-currency-payments-using-a-permissioned-dex.md b/docs/use-cases/defi/enable-compliance-focused-cross-currency-payments-using-a-permissioned-dex.md index 0190a831d8..5cb3913a0d 100644 --- a/docs/use-cases/defi/enable-compliance-focused-cross-currency-payments-using-a-permissioned-dex.md +++ b/docs/use-cases/defi/enable-compliance-focused-cross-currency-payments-using-a-permissioned-dex.md @@ -1,8 +1,9 @@ --- seo: - description: Learn how a payments provider business can enable cross-currency payments using a permissioned on-chain decentralized exchange (DEX). + description: Learn how a payments provider business can enable cross-currency payments using a permissioned on-chain decentralized exchange (DEX). status: not_enabled --- + # Enable Compliance-Focused Cross-Currency Payments Using a Permissioned DEX Payments provider businesses today can leverage cryptocurrency to enable low-cost global settlement in a variety of assets. But currency conversion (FX) is still a challenge: it may use off-chain, centralized exchanges (CEX); or it may use an on-chain, open decentralized exchange (DEX). Both of these models come with significant friction, which can be alleviated by instead using an on-chain, permissioned decentralized exchange (pDEX). @@ -13,11 +14,11 @@ This page explains how a payments provider can use the features of the XRP Ledge ## Background: The challenges with other modes of currency exchange -Cross-border payments often involve two to three currencies, which need to be exchanged as part of the payment process: +Cross-border payments often involve two to three currencies, which need to be exchanged as part of the payment process: - The sending currency provided by the sender. - The receiving currency paid out to the beneficiary. -- Possibly a bridge currency, such as a cryptocurrency that is used to connect two off-chain, centralized exchanges located in different countries. +- Possibly a bridge currency, such as a cryptocurrency that is used to connect two off-chain, centralized exchanges located in different countries. Whether or not you use a bridge currency, at least one currency exchange must happen to facilitate the payment, and there are different challenges depending on where that exchange takes place. @@ -34,7 +35,6 @@ Off-chain, centralized exchanges (CEX) are more commonly used by payments provid - **High Costs:** Centralized exchanges typically charge a trading fee, plus there may be costs for onboarding and KYC processes, in addition to the spread in the currency exchange rates. - **Loss of Control:** Relying on a centralized exchange, an external entity from the perspective of the payment provider, limits how much oversight and control the provider can exert over the overall payment lifecycle. - ## Solution: Permissioned DEX on the XRP Ledger By setting up a permissioned DEX (pDEX) on the XRP Ledger, a payments provider can run its own regulated marketplace for currency conversion, getting the benefits of a decentralized exchange without the compliance risk: @@ -45,7 +45,6 @@ By setting up a permissioned DEX (pDEX) on the XRP Ledger, a payments provider c - **Operational Resilience:** The XRP Ledger's battle-tested, highly stable blockchain and decentralized exchange technology powers the software side, so the payment provider can count on the DEX being operational, with no exposure to risk of outages at any CEX, and extremely high reliability. - **Lower Cost Base:** Using a pDEX eliminates trading fees and reduces the onboarding overhead. - ## How to set up a permissioned DEX Running a permissioned DEX involves several steps: diff --git a/docs/use-cases/defi/index.md b/docs/use-cases/defi/index.md index b39a970dea..0c109406bd 100644 --- a/docs/use-cases/defi/index.md +++ b/docs/use-cases/defi/index.md @@ -5,11 +5,11 @@ top_nav_grouping: Article Types metadata: indexPage: true seo: - description: Enabling fast, secure financial transactions without a central authority. + description: Enabling fast, secure financial transactions without a central authority. --- + # Decentralized Finance Decentralized Finance (DeFi) is about enabling fast, secure financial transactions without a central authority. - {% child-pages /%} diff --git a/docs/use-cases/defi/list-xrp-as-an-exchange.md b/docs/use-cases/defi/list-xrp-as-an-exchange.md index cde50cdc74..35956548db 100644 --- a/docs/use-cases/defi/list-xrp-as-an-exchange.md +++ b/docs/use-cases/defi/list-xrp-as-an-exchange.md @@ -2,10 +2,11 @@ html: list-xrp-as-an-exchange.html parent: defi-uc.html seo: - description: Run a digital asset exchange? Follow these steps to add XRP. + description: Run a digital asset exchange? Follow these steps to add XRP. labels: - XRP --- + # List XRP as an Exchange This document describes the steps that an exchange needs to take to list XRP. These steps are targeted at _custodial exchanges_ that hold funds on behalf of users, and allows users to deposit, withdraw, and trade other digital assets, fiat currencies, or other types of asset. @@ -14,35 +15,35 @@ This document describes the steps that an exchange needs to take to list XRP. Th For illustrative purposes, this document uses a fictitious business called _Alpha Exchange_ to explain the high-level steps required to list XRP. For the purposes of this document, Alpha Exchange: -* Currently specializes in listing BTC/USD +- Currently specializes in listing BTC/USD -* Wants to add BTC/XRP and XRP/USD trading pairs +- Wants to add BTC/XRP and XRP/USD trading pairs -* Maintains balances for all of its customers +- Maintains balances for all of its customers -* Maintains balances for each of its supported currencies +- Maintains balances for each of its supported currencies ### User Benefits Alpha Exchange wants to list BTC/XRP and XRP/USD trading pairs partially because listing these pairs benefits its users. Specifically, this support wants to enable its users to: -* Deposit XRP _to_ Alpha Exchange _from_ the XRP Ledger +- Deposit XRP _to_ Alpha Exchange _from_ the XRP Ledger -* Withdraw XRP _from_ Alpha Exchange _to_ the XRP Ledger +- Withdraw XRP _from_ Alpha Exchange _to_ the XRP Ledger -* Trade XRP with other currencies, such as BTC, USD, among others +- Trade XRP with other currencies, such as BTC, USD, among others ## Prerequisites for Supporting XRP To support XRP, Alpha Exchange must: -* Create and maintain new [accounts](#accounts) +- Create and maintain new [accounts](#accounts) -* Create and maintain [balance sheets](#balance-sheets) +- Create and maintain [balance sheets](#balance-sheets) See also: -* [Compliance Guidelines](../../concepts/tokens/fungible-tokens/stablecoins/compliance-guidelines.md) — Token issuers and exchanges are different, but exchanges should also ensure that they are complying with local regulations and reporting to the appropriate agencies. +- [Compliance Guidelines](../../concepts/tokens/fungible-tokens/stablecoins/compliance-guidelines.md) — Token issuers and exchanges are different, but exchanges should also ensure that they are complying with local regulations and reporting to the appropriate agencies. -* [Precautions](../../concepts/tokens/fungible-tokens/stablecoins/precautions.md) +- [Precautions](../../concepts/tokens/fungible-tokens/stablecoins/precautions.md) ### Partial Payments @@ -64,51 +65,46 @@ When the [`tfPartialPayment` flag](../../references/protocol/transactions/types/ ### Accounts -XRP is held in _accounts_ (also referred to as _wallets_ or _addresses_ ) on the XRP Ledger. Accounts on the XRP Ledger are different than accounts on other blockchain ledgers, such as Bitcoin, where accounts incur little to no overhead. In the XRP Ledger, account state is stored per ledger and accounts are [not easy to delete](../../concepts/accounts/deleting-accounts.md). To offset the costs associated with storing accounts, each account must hold a separate [reserve of XRP](../../concepts/accounts/reserves.md) that cannot be sent to others. For these reasons, Ripple recommends that institutions not create excessive or needless accounts. +XRP is held in _accounts_ (also referred to as _wallets_ or _addresses_ ) on the XRP Ledger. Accounts on the XRP Ledger are different than accounts on other blockchain ledgers, such as Bitcoin, where accounts incur little to no overhead. In the XRP Ledger, account state is stored per ledger and accounts are [not easy to delete](../../concepts/accounts/deleting-accounts.md). To offset the costs associated with storing accounts, each account must hold a separate [reserve of XRP](../../concepts/accounts/reserves.md) that cannot be sent to others. For these reasons, Ripple recommends that institutions not create excessive or needless accounts. To follow Ripple's recommended best practices, Alpha Exchange should create at least two new accounts on the XRP Ledger. To minimize the risks associated with a compromised secret key, Ripple recommends creating [_cold_, _hot_, and _warm_ accounts](../../concepts/accounts/account-types.md) (these are sometimes referred to, respectively, as cold, hot, and warm wallets). The hot/warm/cold model is intended to balance security and convenience. Exchanges listing XRP should create the following accounts: -* A [_cold wallet_](../../concepts/accounts/account-types.md#issuing-address) to securely hold the majority of XRP and customers' funds. For exchanges, this is also the address to which its users send [deposits](#deposit-xrp-into-exchange). To provide optimal security, this account's secret key should be offline. +- A [_cold wallet_](../../concepts/accounts/account-types.md#issuing-address) to securely hold the majority of XRP and customers' funds. For exchanges, this is also the address to which its users send [deposits](#deposit-xrp-into-exchange). To provide optimal security, this account's secret key should be offline. - If a malicious actor compromises an exchange's cold wallet, the possible consequences are: + If a malicious actor compromises an exchange's cold wallet, the possible consequences are: + - The malicious actor gets full access to all XRP in the cold wallet. - * The malicious actor gets full access to all XRP in the cold wallet. + - If the master key is compromised, the malicious actor can irrevocably take control of the cold wallet forever (by disabling the master key and setting a new regular key or signer list). This would also give the malicious actor control over all future XRP received by the cold wallet. + - If this happens, the exchange has to make a new cold wallet address and tell its customers the new address. - * If the master key is compromised, the malicious actor can irrevocably take control of the cold wallet forever (by disabling the master key and setting a new regular key or signer list). This would also give the malicious actor control over all future XRP received by the cold wallet. + - If the regular key or signer list are compromised, the exchange can regain control of the cold wallet. However, some of a malicious actor's actions cannot easily be undone: + - The malicious actor could issue tokens in the XRP Ledger by using the cold wallet, but those tokens should not be valued by anyone (unless the exchange is also a token issuer). - * If this happens, the exchange has to make a new cold wallet address and tell its customers the new address. + - If a malicious actor enables the [Authorized Trust Lines](../../concepts/tokens/fungible-tokens/authorized-trust-lines.md) setting for the account, that cannot be unset, although this only relates to issuing tokens and should not affect an exchange that is not also an issuer. Any other settings a malicious actor changes with a master key can be reverted. - * If the regular key or signer list are compromised, the exchange can regain control of the cold wallet. However, some of a malicious actor's actions cannot easily be undone: +- One or more [_hot wallets_](../../concepts/accounts/account-types.md#operational-addresses) to conduct the day-to-day business of managing customers' XRP withdrawals and deposits. For example, with a hot wallet, exchanges can securely support these types of automated XRP transfers. Hot wallets need to be online to service instant withdrawal requests. - * The malicious actor could issue tokens in the XRP Ledger by using the cold wallet, but those tokens should not be valued by anyone (unless the exchange is also a token issuer). + For more information about the possible consequences of a compromised hot wallet, see [Operational Account Compromise](../../concepts/accounts/account-types.md#operational-address-compromise). - * If a malicious actor enables the [Authorized Trust Lines](../../concepts/tokens/fungible-tokens/authorized-trust-lines.md) setting for the account, that cannot be unset, although this only relates to issuing tokens and should not affect an exchange that is not also an issuer. Any other settings a malicious actor changes with a master key can be reverted. - -* One or more [_hot wallets_](../../concepts/accounts/account-types.md#operational-addresses) to conduct the day-to-day business of managing customers' XRP withdrawals and deposits. For example, with a hot wallet, exchanges can securely support these types of automated XRP transfers. Hot wallets need to be online to service instant withdrawal requests. - - For more information about the possible consequences of a compromised hot wallet, see [Operational Account Compromise](../../concepts/accounts/account-types.md#operational-address-compromise). - -* Optionally, one or more warm wallets to provide an additional layer of security between the cold and hot wallets. Unlike a hot wallet, the secret key of a warm wallet does not need to be online. Additionally, you can distribute the secret keys for the warm wallet to several different people and implement [multi-signing](../../concepts/accounts/multi-signing.md) to increase security. - - For more information about the possible consequences of a compromised warm wallet, see [Standby Account Compromise](../../concepts/accounts/account-types.md#standby-address-compromise). +- Optionally, one or more warm wallets to provide an additional layer of security between the cold and hot wallets. Unlike a hot wallet, the secret key of a warm wallet does not need to be online. Additionally, you can distribute the secret keys for the warm wallet to several different people and implement [multi-signing](../../concepts/accounts/multi-signing.md) to increase security. + For more information about the possible consequences of a compromised warm wallet, see [Standby Account Compromise](../../concepts/accounts/account-types.md#standby-address-compromise). See also: -* [Issuing and Operational Addresses](../../concepts/accounts/account-types.md) +- [Issuing and Operational Addresses](../../concepts/accounts/account-types.md) -* [Creating Accounts](../../concepts/accounts/index.md#creating-accounts) +- [Creating Accounts](../../concepts/accounts/index.md#creating-accounts) -* [Reserves](../../concepts/accounts/reserves.md) +- [Reserves](../../concepts/accounts/reserves.md) ### Balance Sheets To custody its customers' XRP, Alpha Exchange must track each customer's XRP balance and its own holdings. To do this, Alpha Exchange must create and maintain an additional balance sheet or accounting system. The following table illustrates what this balance sheet might look like. -The new XRP Ledger accounts (_Alpha Hot_, _Alpha Warm_, _Alpha Cold_) are in the *User* column of the *XRP Balances on XRP Ledger* table. - -The *Alpha Exchange XRP Balances* table represents new, additional balance sheet. Alpha Exchange’s software manages their users’ balances of XRP on this accounting system. +The new XRP Ledger accounts (_Alpha Hot_, _Alpha Warm_, _Alpha Cold_) are in the _User_ column of the _XRP Balances on XRP Ledger_ table. +The _Alpha Exchange XRP Balances_ table represents new, additional balance sheet. Alpha Exchange’s software manages their users’ balances of XRP on this accounting system. @@ -199,12 +195,11 @@ For more information, see [Specifying Currency Amounts][]. With exchanges like _Alpha Exchange_, XRP can be "on-ledger" or "off-ledger": -* **On-Ledger XRP**: XRP that can be queried through the public XRP Ledger by specifying the public [address](../../concepts/accounts/addresses.md) of the XRP holder. The counterparty to these balances is the XRP Ledger. For more information, see [XRP](../../introduction/what-is-xrp.md). +- **On-Ledger XRP**: XRP that can be queried through the public XRP Ledger by specifying the public [address](../../concepts/accounts/addresses.md) of the XRP holder. The counterparty to these balances is the XRP Ledger. For more information, see [XRP](../../introduction/what-is-xrp.md). -* **Off-Ledger XRP**: XRP that is held by the accounting system of an exchange and can be queried through the exchange interface. Off-ledger XRP balances are credit-based. The counterparty is the exchange holding the XRP. - - Off-ledger XRP balances are traded between the participants of an exchange. To support these trades, the exchange must hold a balance of _on-ledger XRP_ equal to the aggregate amount of _off-ledger XRP_ that it makes available for trade. +- **Off-Ledger XRP**: XRP that is held by the accounting system of an exchange and can be queried through the exchange interface. Off-ledger XRP balances are credit-based. The counterparty is the exchange holding the XRP. + Off-ledger XRP balances are traded between the participants of an exchange. To support these trades, the exchange must hold a balance of _on-ledger XRP_ equal to the aggregate amount of _off-ledger XRP_ that it makes available for trade. ## Flow of Funds @@ -220,12 +215,10 @@ There are four main steps involved in an exchange's typical flow of funds: 4. [Trade XRP on the Exchange](#trade-xrp-on-the-exchange) - This list does not include the [prerequisites](#prerequisites-for-supporting-xrp) required of an exchange. At this point, _Alpha Exchange_ has created [hot, warm, and cold wallets](#accounts) on the XRP Ledger and added them to its balance sheet, but has not accepted any deposits from its users. -
    XRP Balances @@ -303,22 +296,21 @@ XRP Balances
    - ### Deposit XRP into Exchange To track [off-ledger XRP balances](#on-ledger-and-off-ledger), exchanges need to create new [balance sheets](#balance-sheets) (or similar accounting systems). The following table illustrates the balance changes that take place on Alpha Exchange's new balance sheet as users begin to deposit XRP. A user named Charlie wants to deposit 50,000 XRP to Alpha Exchange. Doing this involves the following steps: -1. Charlie submits a payment of 50,000 XRP to Alpha Exchange's [cold wallet](#accounts). +1. Charlie submits a payment of 50,000 XRP to Alpha Exchange's [cold wallet](#accounts). - a. Charlie adds an identifier (in this case, `789`) to the payment to associate it with his account at Alpha Exchange. This is called a [_destination tag_](../../concepts/transactions/source-and-destination-tags.md). (To use this, Alpha Exchange should have set the `asfRequireDest` flag on all of its accounts to require all incoming payments to have a destination tag like Charlie's. For more information, see [AccountSet Flags](../../references/protocol/transactions/types/accountset.md#accountset-flags)). + a. Charlie adds an identifier (in this case, `789`) to the payment to associate it with his account at Alpha Exchange. This is called a [_destination tag_](../../concepts/transactions/source-and-destination-tags.md). (To use this, Alpha Exchange should have set the `asfRequireDest` flag on all of its accounts to require all incoming payments to have a destination tag like Charlie's. For more information, see [AccountSet Flags](../../references/protocol/transactions/types/accountset.md#accountset-flags)). 2. The software at Alpha Exchange detects the incoming payment, and recognizes `789` as the destination tag for Charlie’s account. 3. When it detects the incoming payment, Alpha Exchange's software updates its balance sheet to indicate that the 50,000 XRP it received is controlled by Charlie. - Charlie can now use up to 50,000 XRP on the exchange. For example, he can create offers to trade XRP with BTC or any of the other currencies Alpha Exchange supports. + Charlie can now use up to 50,000 XRP on the exchange. For example, he can create offers to trade XRP with BTC or any of the other currencies Alpha Exchange supports. @@ -408,21 +400,18 @@ XRP Balances
    - ### Trade XRP on the Exchange Alpha Exchange users (like Charlie) can trade credit-based balances on Alpha Exchange. Alpha Exchange should keep track of user balances on its new balance sheet as these trades are made. These trades are _off-ledger_ and independent from the XRP Ledger, so the balance changes are not recorded on the XRP Ledger. Customers who hold XRP in their own XRP Ledger accounts can also use the distributed exchange built into the XRP Ledger to trade currencies issued by gateways. For more information about trading _on_ the XRP Ledger, see [Lifecycle of an Offer](../../concepts/tokens/decentralized-exchange/offers.md#lifecycle-of-an-offer). - ### Rebalance XRP Holdings Exchanges can adjust the balances between their hot and cold wallets at any time. Each balance adjustment consumes a [transaction cost](../../concepts/transactions/transaction-cost.md), but does not otherwise affect the aggregate balance of all the accounts. The aggregate, on-ledger balance should always exceed the total balance available for trade on the exchange. (The excess should be enough to cover the XRP Ledger's transaction costs.) The following table demonstrates a balance adjustment of 80,000 XRP (via a [Payment transaction][] on the XRP Ledger) between Alpha Exchange's cold wallet and its hot wallet, where the cold wallet was debited and the hot wallet was credited. If the payment were reversed (debiting the hot wallet and crediting the cold wallet), the hot wallet balance would decrease. Balance adjustments like these allow an exchange to limit the risks associated with holding XRP in online hot wallets. -
    Alpha Exchange XRP @@ -493,7 +482,6 @@ Off-Ledger Balances
    - ### Withdraw XRP from Exchange Withdrawals allow an exchange's users to move XRP from the exchange's off-ledger balance sheet to an account on the XRP Ledger. @@ -504,10 +492,9 @@ In this example, Charlie withdraws 25,000 XRP from Alpha Exchange. This involves 2. In response to Charlie’s instructions, Alpha Exchange does the following: - a. Debits the amount (25,000 XRP) from Charlie’s account on its off-ledger balance sheet - - b. Submits a payment on the XRP Ledger for the same amount (25,000 XRP), from Alpha Exchange's hot wallet to Charlie’s XRP Ledger account + a. Debits the amount (25,000 XRP) from Charlie’s account on its off-ledger balance sheet + b. Submits a payment on the XRP Ledger for the same amount (25,000 XRP), from Alpha Exchange's hot wallet to Charlie’s XRP Ledger account @@ -604,22 +591,21 @@ Off-Ledger Balances
    - ## See Also - **Concepts:** - - [Accounts](../../concepts/accounts/index.md) - - [Direct XRP Payments](../../concepts/payment-types/direct-xrp-payments.md) - - [Partial Payments](../../concepts/payment-types/partial-payments.md) - - [Source and Destination Tags](../../concepts/transactions/source-and-destination-tags.md) + - [Accounts](../../concepts/accounts/index.md) + - [Direct XRP Payments](../../concepts/payment-types/direct-xrp-payments.md) + - [Partial Payments](../../concepts/payment-types/partial-payments.md) + - [Source and Destination Tags](../../concepts/transactions/source-and-destination-tags.md) - **Tutorials:** - - [Install `rippled`](../../infrastructure/installation/index.md) - - [Send XRP](../../tutorials/how-tos/send-xrp.md) - - [Set Up Secure Signing](../../concepts/transactions/secure-signing.md) - - [Monitor Incoming Payments with WebSocket](../../tutorials/http-websocket-apis/build-apps/monitor-incoming-payments-with-websocket.md) + - [Install `rippled`](../../infrastructure/installation/index.md) + - [Send XRP](../../tutorials/how-tos/send-xrp.md) + - [Set Up Secure Signing](../../concepts/transactions/secure-signing.md) + - [Monitor Incoming Payments with WebSocket](../../tutorials/http-websocket-apis/build-apps/monitor-incoming-payments-with-websocket.md) - **References:** - - [Payment transaction][] - - [account_info method][] - - [AccountRoot object](../../references/protocol/ledger-data/ledger-entry-types/accountroot.md) + - [Payment transaction][] + - [account_info method][] + - [AccountRoot object](../../references/protocol/ledger-data/ledger-entry-types/accountroot.md) {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/docs/use-cases/index.md b/docs/use-cases/index.md index 12fc228066..e762f54482 100644 --- a/docs/use-cases/index.md +++ b/docs/use-cases/index.md @@ -5,11 +5,11 @@ top_nav_grouping: Article Types metadata: indexPage: true seo: - description: Browse the documentation based on practical use cases. + description: Browse the documentation based on practical use cases. --- + # Use Cases Browse the documentation based on practical use cases. - {% child-pages /%} diff --git a/docs/use-cases/payments/index.page.tsx b/docs/use-cases/payments/index.page.tsx index 34fce078b5..492627bc31 100644 --- a/docs/use-cases/payments/index.page.tsx +++ b/docs/use-cases/payments/index.page.tsx @@ -1,111 +1,112 @@ -import React, { useState } from "react"; -import { useThemeHooks } from "@redocly/theme/core/hooks"; -import { AdvantagesSection } from "shared/components/advantages-section"; -import { ProjectCards } from "shared/components/project-cards"; -import { BenefitsSection } from "shared/components/benefits-section"; -import { DeveloperResourcesSection } from "shared/components/developer-resources-section"; -import { FeatureItem } from "../tokenization/real-world-assets.page"; +import React, { useState } from 'react' +import { useThemeHooks } from '@redocly/theme/core/hooks' +import { AdvantagesSection } from 'shared/components/advantages-section' +import { ProjectCards } from 'shared/components/project-cards' +import { BenefitsSection } from 'shared/components/benefits-section' +import { DeveloperResourcesSection } from 'shared/components/developer-resources-section' +import { FeatureItem } from '../tokenization/real-world-assets.page' export const frontmatter = { seo: { title: 'XRP Ledger Payments Suite', - description: "The XRP Ledger Payments Suite is a payments solution for use cases including stablecoin payments, cross-border remittance, B2B payment rails, and merchant settlement.", - } -}; + description: + 'The XRP Ledger Payments Suite is a payments solution for use cases including stablecoin payments, cross-border remittance, B2B payment rails, and merchant settlement.', + }, +} const PaymentsPage: React.FC = () => { - const { useTranslate } = useThemeHooks(); - const { translate } = useTranslate(); + const { useTranslate } = useThemeHooks() + const { translate } = useTranslate() const video = { - url: "https://www.youtube.com/embed/e2Iwsk37LMk?si=20-m6aQOWpaiQDW7", - title: "Payments", - src: "https://www.youtube.com/embed/e2Iwsk37LMk?si=20-m6aQOWpaiQDW7", - }; + url: 'https://www.youtube.com/embed/e2Iwsk37LMk?si=20-m6aQOWpaiQDW7', + title: 'Payments', + src: 'https://www.youtube.com/embed/e2Iwsk37LMk?si=20-m6aQOWpaiQDW7', + } const paymentAdvantages = [ { - id: "cross-border-stablecoin", - title: "Enable Cross-Border Stablecoin Payments", + id: 'cross-border-stablecoin', + title: 'Enable Cross-Border Stablecoin Payments', contents: [ { - subtitle: "RLUSD and USDC support", - description: "", + subtitle: 'RLUSD and USDC support', + description: '', }, { - subtitle: "Easily receive, store, convert, issue and send stablecoins", - description: "", + subtitle: 'Easily receive, store, convert, issue and send stablecoins', + description: '', }, ], }, { - id: "reliable-infrastructure", - title: "Access Reliable Payments Infrastructure", + id: 'reliable-infrastructure', + title: 'Access Reliable Payments Infrastructure', contents: [ { - subtitle: "99.99% uptime since 2012", - description: "", + subtitle: '99.99% uptime since 2012', + description: '', }, { - subtitle: "Over $1.7T+ in value transferred", - description: "", + subtitle: 'Over $1.7T+ in value transferred', + description: '', }, ], }, { - id: "efficient-payments", - title: "Move Money Efficiently", + id: 'efficient-payments', + title: 'Move Money Efficiently', contents: [ { - subtitle: "Transactions settle in 3-5 seconds", - description: "", + subtitle: 'Transactions settle in 3-5 seconds', + description: '', }, { - subtitle: "Fractions of a cent per transaction", - description: "", + subtitle: 'Fractions of a cent per transaction', + description: '', }, ], }, - ]; + ] const paymentProjects = [ { - id: "ripple-usd", - label: "Ripple USD", - url: "https://ripple.com/solutions/stablecoin/", + id: 'ripple-usd', + label: 'Ripple USD', + url: 'https://ripple.com/solutions/stablecoin/', description: "RLUSD, Ripple's enterprise-grade stablecoin, is live on XRPL and fully backed by USD deposits.", }, { - id: "usdc", - label: "USDC", - url: "https://www.circle.com/usdc", + id: 'usdc', + label: 'USDC', + url: 'https://www.circle.com/usdc', description: "USDC, issued by Circle, is the world's largest regulated dollar stablecoin and now live on XRPL.", }, { - id: "usdb", - label: "USDB", - url: "https://www.brazabank.com.br/en/usdben/", - description: "USDB, by Braza Group, is a USD-pegged stablecoin backed by U.S. and Brazilian bonds.", + id: 'usdb', + label: 'USDB', + url: 'https://www.brazabank.com.br/en/usdben/', + description: 'USDB, by Braza Group, is a USD-pegged stablecoin backed by U.S. and Brazilian bonds.', }, { - id: "europ", - label: "EURØP", - url: "https://schuman.io/europ/", - description: "EURØP, issued by Schuman Financial, is the first MiCA-compliant euro stablecoin on XRPL.", + id: 'europ', + label: 'EURØP', + url: 'https://schuman.io/europ/', + description: 'EURØP, issued by Schuman Financial, is the first MiCA-compliant euro stablecoin on XRPL.', }, { - id: "xsgd", - label: "XSGD", - url: "https://www.straitsx.com/xsgd", - description: "XSGD, from StraitsX, is a Singapore Dollar-backed stablecoin regulated by MAS (Monetary Authority of Singapore).", + id: 'xsgd', + label: 'XSGD', + url: 'https://www.straitsx.com/xsgd', + description: 'XSGD, from StraitsX, is a Singapore Dollar-backed stablecoin regulated by MAS (Monetary Authority of Singapore).', }, { - id: "audd", - label: "AUDD", - url: "https://www.audd.digital/", - description: "AUDD, an Australian dollar stablecoin, is live on XRPL and backed 1:1 with AUD.", + id: 'audd', + label: 'AUDD', + url: 'https://www.audd.digital/', + description: 'AUDD, an Australian dollar stablecoin, is live on XRPL and backed 1:1 with AUD.', }, - ]; + ] const embeddedPaymentsCards = [ { @@ -138,101 +139,97 @@ const PaymentsPage: React.FC = () => { title: 'Compliance-First Payment Acceptance', description: 'Add Deposit Authorization and whitelisting to comply with AML and KYC workflows.', }, - ]; + ] const battleTestedProjects = [ { - id: "coinpayments", - label: "CoinPayments", - url: "https://xrpl.org/blog/2025/coinpayments-xrpl-case-study-payment-processing", - description: "CoinPayments uses XRPL's fast and low-cost payment rails to enable merchants to accept digital assets globally with near-instant settlement and minimal transaction fees.", - buttonText: "Case Study" + id: 'coinpayments', + label: 'CoinPayments', + url: 'https://xrpl.org/blog/2025/coinpayments-xrpl-case-study-payment-processing', + description: + "CoinPayments uses XRPL's fast and low-cost payment rails to enable merchants to accept digital assets globally with near-instant settlement and minimal transaction fees.", + buttonText: 'Case Study', }, { - id: "ripple", - label: "Ripple", - url: "https://ripple.com/solutions/cross-border-payments/", - description: "Ripple Payments enables crypto companies, payment service providers and fintech to facilitate real-time cross-border payments using stablecoins, digital assets and local currencies — with XRPL as a foundational transaction layer.", - buttonText: "Case Study" + id: 'ripple', + label: 'Ripple', + url: 'https://ripple.com/solutions/cross-border-payments/', + description: + 'Ripple Payments enables crypto companies, payment service providers and fintech to facilitate real-time cross-border payments using stablecoins, digital assets and local currencies — with XRPL as a foundational transaction layer.', + buttonText: 'Case Study', }, { - id: "friipay", - label: "FriiPay", - url: "https://xrpl.org/blog/2025/frii-pay-xrpl-case-study-crypto-payment-solution", - description: "FriiPay connects XRPL-based crypto wallets to point-of-sale terminals, allowing customers to pay with RLUSD or XRP while helping merchants save costs on card processing fees.", - buttonText: "Case Study" + id: 'friipay', + label: 'FriiPay', + url: 'https://xrpl.org/blog/2025/frii-pay-xrpl-case-study-crypto-payment-solution', + description: + 'FriiPay connects XRPL-based crypto wallets to point-of-sale terminals, allowing customers to pay with RLUSD or XRP while helping merchants save costs on card processing fees.', + buttonText: 'Case Study', }, - ]; + ] const integrationFeatures = [ { - title: "Access open documentation", - link: "/docs/" + title: 'Access open documentation', + link: '/docs/', }, { - title: "Use the Payments APIs + XRPL tooling", - link: "/resources/dev-tools" + title: 'Use the Payments APIs + XRPL tooling', + link: '/resources/dev-tools', }, - ]; - + ] const paymentsResourcesCards = [ { - title: "Developer Spotlight", - description: "Are you building a peer-to-peer payments solution, integrating stablecoins, or exploring RLUSD on the XRP Ledger?", + title: 'Developer Spotlight', + description: 'Are you building a peer-to-peer payments solution, integrating stablecoins, or exploring RLUSD on the XRP Ledger?', links: [ { - text: "Share Your Work", - url: "https://discord.gg/sfX3ERAMjH" - } + text: 'Share Your Work', + url: 'https://discord.gg/sfX3ERAMjH', + }, ], - backgroundClass: "developer-spotlight" + backgroundClass: 'developer-spotlight', }, { - title: "Learn & Stay Updated", - description: "Stay ahead of the curve with the latest developments in XRPL Payments by joining the Developer Discord and signing up for the XRPL Community Newsletter.", + title: 'Learn & Stay Updated', + description: + 'Stay ahead of the curve with the latest developments in XRPL Payments by joining the Developer Discord and signing up for the XRPL Community Newsletter.', links: [ { - text: "Join the Developer Discord", - url: "https://discord.gg/sfX3ERAMjH" + text: 'Join the Developer Discord', + url: 'https://discord.gg/sfX3ERAMjH', }, { - text: "Sign up for the Newsletter", - url: "https://xrplresources.org/subscribe" - } + text: 'Sign up for the Newsletter', + url: 'https://xrplresources.org/subscribe', + }, ], - backgroundClass: "learn-stay-updated" - } - ]; + backgroundClass: 'learn-stay-updated', + }, + ] return (
    -
    -
    +

    {translate('Issue, manage, and trade real-world assets without needing to build smart contracts.')}

    {translate( - "Issue, manage, and trade real-world assets without needing to build smart contracts." - )} -

    -

    - {translate( - "XRP Ledger's built-in functionality and compliance-enabling features allow asset tokenization without additional layers of complexity." - )} -

    -

    - {translate( - "Access the full white paper to learn how XRP Ledger’s new token standard is shaping institutional-grade finance." + "XRP Ledger's built-in functionality and compliance-enabling features allow asset tokenization without additional layers of complexity.", )}

    +

    {translate('Access the full white paper to learn how XRP Ledger’s new token standard is shaping institutional-grade finance.')}

    - ); + ) } const BenefitCard = ({ iconClass, title, description }) => { - const { useTranslate } = useThemeHooks(); - const { translate } = useTranslate(); + const { useTranslate } = useThemeHooks() + const { translate } = useTranslate() return (

    {translate(title)}

    {translate(description)}

    - ); -}; + ) +} function TokenHeroSection() { - const { useTranslate } = useThemeHooks(); - const { translate } = useTranslate(); + const { useTranslate } = useThemeHooks() + const { translate } = useTranslate() return (
    - orange waves + orange waves
    -

    - {translate("Real-World Asset (RWA) Tokenization")} -

    +

    {translate('Real-World Asset (RWA) Tokenization')}

    - - {translate("Get Started Now")} + + {translate('Get Started Now')} - - {translate("Explore Institutional Solutions")} + + {translate('Explore Institutional Solutions')}
    - ); + ) } function TokenBenefitsSection() { - const { useTranslate } = useThemeHooks(); - const { translate } = useTranslate(); + const { useTranslate } = useThemeHooks() + const { translate } = useTranslate() return (
    -

    - {translate( - "Why Financial Developers Choose XRPL as an RWA Tokenization Platform" - )} -

    +

    {translate('Why Financial Developers Choose XRPL as an RWA Tokenization Platform')}

    @@ -452,49 +399,49 @@ function TokenBenefitsSection() {
    - ); + ) } export default function RwaTokenization() { const developerResourcesCards = [ { - title: "Learn & Stay Updated", + title: 'Learn & Stay Updated', description: - "Stay ahead of the curve with the latest developments in RWA tokenization on the XRP Ledger by joining the developer Discord and signing up for the XRPL Community Newsletter.", + 'Stay ahead of the curve with the latest developments in RWA tokenization on the XRP Ledger by joining the developer Discord and signing up for the XRPL Community Newsletter.', links: [ { - text: "Join the Developer Discord", - url: "https://discord.gg/sfX3ERAMjH", + text: 'Join the Developer Discord', + url: 'https://discord.gg/sfX3ERAMjH', }, { - text: "Sign up for the Newsletter", - url: "https://xrplresources.org/subscribe", + text: 'Sign up for the Newsletter', + url: 'https://xrplresources.org/subscribe', }, ], - backgroundClass: "learn-stay-updated", + backgroundClass: 'learn-stay-updated', }, - ]; + ] useEffect(() => { - const script = document.createElement("script"); - script.id = "video-schema"; - script.type = "application/ld+json"; + const script = document.createElement('script') + script.id = 'video-schema' + script.type = 'application/ld+json' script.innerHTML = JSON.stringify({ - "@context": "https://schema.org", - "@type": "VideoObject", - name: "Generate and Send MPTs", + '@context': 'https://schema.org', + '@type': 'VideoObject', + name: 'Generate and Send MPTs', description: - "Use the Account Configurator to create an Issuing account. Use the MPT Generator to create a Multi-purpose Token. Send the MPT from the Issuing account to any account that authorizes receipt of the MPT.", - thumbnailUrl: "https://i.ytimg.com/vi_webp/ZZ2KZTEJECg/sddefault.webp", - uploadDate: "2025-04-11", - embedUrl: "https://www.youtube.com/embed/ZZ2KZTEJECg", - }); - document.head.appendChild(script); + 'Use the Account Configurator to create an Issuing account. Use the MPT Generator to create a Multi-purpose Token. Send the MPT from the Issuing account to any account that authorizes receipt of the MPT.', + thumbnailUrl: 'https://i.ytimg.com/vi_webp/ZZ2KZTEJECg/sddefault.webp', + uploadDate: '2025-04-11', + embedUrl: 'https://www.youtube.com/embed/ZZ2KZTEJECg', + }) + document.head.appendChild(script) // Remove the script from the head when the component unmounts return () => { - document.head.removeChild(script); - }; - }, []); + document.head.removeChild(script) + } + }, []) return (
    @@ -507,5 +454,5 @@ export default function RwaTokenization() {
    - ); + ) } diff --git a/docs/use-cases/tokenization/stablecoin-issuer.md b/docs/use-cases/tokenization/stablecoin-issuer.md index 152a97d671..417c065d14 100644 --- a/docs/use-cases/tokenization/stablecoin-issuer.md +++ b/docs/use-cases/tokenization/stablecoin-issuer.md @@ -2,11 +2,12 @@ html: stablecoin-issuer.html parent: tokenization.html seo: - description: Issue your own stablecoin, based on assets of equal value outside of the XRP Ledger. + description: Issue your own stablecoin, based on assets of equal value outside of the XRP Ledger. labels: - Tokens - Stablecoin --- + # Stablecoin Issuer _As a financial professional, I want to issue a stablecoin so that I can earn revenue by charging fees for withdrawals or transfers of the stablecoin._ @@ -47,7 +48,6 @@ Alternatively, you can use an external node service provider like OpenNode. See For testing purposes, you can implement, deploy, and trade your stablecoin on the XRPL Testnet or Devnet servers. Visit the XRP Faucets page to generate your test network credentials. Use the listed server URIs on that page to connect to and interact with your chosen test network. See [XRP Faucets](/resources/dev-tools/xrp-faucets). - ## Stablecoin Settings Before you mint your new stablecoin, you need to configure settings, some of which are immutable once you issue the first coin. @@ -60,10 +60,9 @@ For more detail on configuration capbilities, see [Stablecoin Issuer Configurati Publish standard information about your stablecoin to enable potential traders to verify the coin's stability. - ### Asset Nomenclature -Choose a 3-character string for your currency code. Per ISO 4217, supranational currency codes begin with the letter _X_ for a currency that is not associated with a country. See [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217#X_currencies_(funds,_precious_metals,_supranationals,_other)). +Choose a 3-character string for your currency code. Per ISO 4217, supranational currency codes begin with the letter _X_ for a currency that is not associated with a country. See [ISO 4217](). Currency codes do not have to be unique. For instance, if you're issuing a stablecoin backed by a national fiat currency, it's better to use the official code for that currency, such as _EUR_. @@ -73,7 +72,6 @@ You can publish information about what currencies you issue, and which XRP Ledge You can use the _Currencies_ table to provide additional information about your stablecoin. This makes the information about your cryptocurrency accessible in an expected place and format, and enhances transparency. See [xrp-ledger.toml File](../../references/xrp-ledger-toml.md#currencies). - ## Account and Key Management ### Multisignature Schemes @@ -138,7 +136,6 @@ To use the Authorized Trust Lines feature, enable the `Require Auth` flag on you See [Authorized Trust Lines](../../concepts/tokens/fungible-tokens/authorized-trust-lines.md). - ### Freeze a Trust Line If you issue tokens in the XRP Ledger, you can enable the _No Freeze_ setting to permanently limit your own ability to use the token freezing features of the XRP Ledger. (As a reminder, this only applies to issued tokens, not XRP.) @@ -147,7 +144,6 @@ If you do not enable the _No Freeze_ setting, when an account shows suspicious a See [Freezing Tokens](../../concepts/tokens/fungible-tokens/freezes.md). - ### Global Freeze If you see signs of suspicious activity, you can enact a global freeze on your account to prevent users from sending your tokens to each other and trading your token in the decentralized exchange. @@ -156,7 +152,6 @@ If you see signs of suspicious activity, you can enact a global freeze on your a See [Enact Global Freeze](../../tutorials/how-tos/use-tokens/enact-global-freeze.md). - ### Clawback Clawback is an optional setting that you can choose before you begin to distribute your stablecoin. For regulatory purposes, some issuers _must_ have the ability to recover issued tokens after they are distributed to accounts. For example, if an issuer were to discover that tokens were sent to an account sanctioned for illegal activity, the issuer could recover, or _claw back_, the funds. @@ -170,8 +165,9 @@ See [Clawback](../../references/protocol/transactions/types/clawback.md). ### Partial Payments Look out for partial payments. Payments with the partial payment flag enabled can be considered "successful" if any non-zero amount is delivered, even minuscule amounts. -* Check the transaction for a `delivered_amount` field. If present, that field indicates how much money _actually_ got delivered to the `Destination` address. -* In xrpl.js, you can use the [`xrpl.getBalanceChanges()` method](https://js.xrpl.org/modules.html#getBalanceChanges) to see how much each address received. In some cases, this can be divided into multiple parts on different trust lines. + +- Check the transaction for a `delivered_amount` field. If present, that field indicates how much money _actually_ got delivered to the `Destination` address. +- In xrpl.js, you can use the [`xrpl.getBalanceChanges()` method](https://js.xrpl.org/modules.html#getBalanceChanges) to see how much each address received. In some cases, this can be divided into multiple parts on different trust lines. See [Partial Payments](../../concepts/payment-types/partial-payments.md). @@ -189,14 +185,14 @@ See [Disable Master Key Pair](../../tutorials/how-tos/manage-account-settings/di The goal of reliably submitting transactions is to achieve the following two properties in a finite amount of time: -* Idempotency - Transactions should be processed once and only once, or not at all. -* Verifiability - Applications can determine the final result of a transaction. +- Idempotency - Transactions should be processed once and only once, or not at all. +- Verifiability - Applications can determine the final result of a transaction. To submit transactions reliably, follow these guidelines: -* Persist details of the transaction before submitting it. -* Use the `LastLedgerSequence` parameter. (Many [client libraries](../../references/client-libraries.md) do this by default.) -* Resubmit a transaction if it has not appeared in a validated ledger whose [ledger index][] is bigger than or equal to the transaction's `LastLedgerSequence` parameter. +- Persist details of the transaction before submitting it. +- Use the `LastLedgerSequence` parameter. (Many [client libraries](../../references/client-libraries.md) do this by default.) +- Resubmit a transaction if it has not appeared in a validated ledger whose [ledger index][] is bigger than or equal to the transaction's `LastLedgerSequence` parameter. For more information, see [Reliable Transaction Submission](../../concepts/transactions/reliable-transaction-submission.md). @@ -204,7 +200,6 @@ For more information, see [Reliable Transaction Submission](../../concepts/trans Decentralized exchanges (DEXes) are integral to the decentralized finance ecosystem. Listing your token on the XRP Ledger's built-in DEX enhances its visibility and accessibility, thereby attracting more liquidity. Begin by placing sell offers using a suitable interface, such as [Sologenic](https://sologenic.org/trade). As a precaution, use a separate account, not your issuing address, to trade. - ### List on an AMM Automated Market Makers (AMMs) are smart contracts that provide liquidity in the XRP Ledger's decentralized exchange. Each AMM holds a pool of two assets and enables users to swap between them at an exchange rate set by a formula. diff --git a/index.page.tsx b/index.page.tsx index b9d9d19e82..9d024816d0 100644 --- a/index.page.tsx +++ b/index.page.tsx @@ -1,13 +1,14 @@ -import { useThemeHooks } from '@redocly/theme/core/hooks'; -import { Link } from '@redocly/theme/components/Link/Link'; -import { BenefitsSection } from 'shared/components/benefits-section'; +import { useThemeHooks } from '@redocly/theme/core/hooks' +import { Link } from '@redocly/theme/components/Link/Link' +import { BenefitsSection } from 'shared/components/benefits-section' export const frontmatter = { seo: { title: 'XRP Ledger Home | XRPL.org', - description: "XRPL.org is a community-driven site for the XRP Ledger (XRPL), an open-source, public blockchain. Gain access to technical documentation, reference materials, and blockchain ledger tools.", - } -}; + description: + 'XRPL.org is a community-driven site for the XRP Ledger (XRPL), an open-source, public blockchain. Gain access to technical documentation, reference materials, and blockchain ledger tools.', + }, +} const cards = [ { @@ -24,9 +25,12 @@ const cards = [ { id: 'low-cost', title: 'Low Cost', - description: <> - At fractions of a penny per transaction, costs are inexpensive enough to enable a wide variety of blockchain use cases - + description: ( + <> + At fractions of a penny per transaction, costs are inexpensive enough to enable a wide variety of{' '} + blockchain use cases + + ), }, { id: 'community', @@ -38,14 +42,13 @@ const cards = [ title: 'Proven Reliability', description: '10+ years of error-free, uninterrupted performance over more than 63 million ledgers', }, -]; +] const cards2 = [ { href: '/docs/concepts/tokens/decentralized-exchange/', title: 'Decentralized Exchange', - description: - 'A high-performance decentralized peer-to-peer multi-currency exchange built directly into the blockchain', + description: 'A high-performance decentralized peer-to-peer multi-currency exchange built directly into the blockchain', }, { href: '/docs/concepts/payment-types/cross-currency-payments/', @@ -54,7 +57,7 @@ const cards2 = [ }, { href: '/docs/concepts/payment-types/payment-channels/', - title: "Payment Channels", + title: 'Payment Channels', description: 'Batched micropayments with unlimited speed, secured with XRP', }, { @@ -65,10 +68,9 @@ const cards2 = [ { href: '/docs/concepts/tokens/', title: 'Tokens', - description: - 'All currencies other than XRP can be represented in the XRP Ledger as tokens', + description: 'All currencies other than XRP can be represented in the XRP Ledger as tokens', }, -]; +] const cards3 = [ { @@ -84,36 +86,42 @@ const cards3 = [ description: 'Find tools, documentation, and sample code in Python, Java, Javascript, or use HTTP APIs', }, { href: '/about/uses', title: 'Get Inspired', description: 'See what your peers have built on the XRPL' }, -]; +] const features = [ { chip: 'In Development', title: 'Smart Contracts', - description: - <> - Hooks are small, efficient WebAssembly modules designed specifically for the XRPL. Check out the hooks amendment and public testnet that enable smart contract functionality. - , + description: ( + <> + Hooks are small, efficient WebAssembly modules designed specifically for the XRPL. Check out the{' '} + + hooks amendment and public testnet + {' '} + that enable smart contract functionality. + + ), href: 'https://hooks-testnet.xrpl-labs.com/', }, { chip: 'Enabled', title: 'Automated Market Makers', - description: "Smart contracts to provide liquidity and earn passive income from facilitating currency exchange, complementary with the order-book DEX already built into the XRPL.", + description: + 'Smart contracts to provide liquidity and earn passive income from facilitating currency exchange, complementary with the order-book DEX already built into the XRPL.', href: '/docs/concepts/tokens/decentralized-exchange/automated-market-makers/', }, -]; +] export default function Index() { - const { useTranslate } = useThemeHooks(); - const { translate } = useTranslate(); + const { useTranslate } = useThemeHooks() + const { translate } = useTranslate() return (
    - (stylized X graphic surrounded by a diverse mix of people) + (stylized X graphic surrounded by a diverse mix of people)
    @@ -138,28 +146,21 @@ export default function Index() {

    {translate('The XRP Ledger: The Blockchain Built for Business')}

    {translate( - 'The XRP Ledger (XRPL) is a decentralized, public blockchain led by a global community of businesses and developers looking to solve problems and create value.' + 'The XRP Ledger (XRPL) is a decentralized, public blockchain led by a global community of businesses and developers looking to solve problems and create value.', )}

    {translate( - 'Proven reliable over more than a decade of error-free functioning, the XRPL offers streamlined development, low transaction costs, high performance, and sustainability. So you can build with confidence–and move your most critical projects forward.' + 'Proven reliable over more than a decade of error-free functioning, the XRPL offers streamlined development, low transaction costs, high performance, and sustainability. So you can build with confidence–and move your most critical projects forward.', )}

    - +

    - {translate( - 'Activate the proven potential of the XRP Ledger and find a trusted foundation for your next innovation' - )} + {translate('Activate the proven potential of the XRP Ledger and find a trusted foundation for your next innovation')}

    {translate('Powerful Features')}
    @@ -200,7 +201,7 @@ export default function Index() {

    {translate('Our Shared Vision for XRPL’s Future')}

    {translate( - "Together, we're building the greenest infrastructure to drive blockchain innovation that doesn't sacrifice utility or performance, to bring the developer community's vision to life." + "Together, we're building the greenest infrastructure to drive blockchain innovation that doesn't sacrifice utility or performance, to bring the developer community's vision to life.", )}

    @@ -211,21 +212,17 @@ export default function Index() {
    -

    - {translate('Explore what the community is building to enable new features and use cases on XRPL')} -

    +

    {translate('Explore what the community is building to enable new features and use cases on XRPL')}

    {translate('Preview New Features')}
      - {features.map(feat => ( + {features.map((feat) => (
    • {translate(feat.chip)}

      {translate(feat.title)}

      -

      - {typeof feat.description === 'string' ? translate(feat.description) : feat.description} -

      +

      {typeof feat.description === 'string' ? translate(feat.description) : feat.description}

    • ))}
    @@ -254,5 +251,5 @@ export default function Index() {
    - ); + ) } diff --git a/redirects.yaml b/redirects.yaml index 0ec2eaab96..9c34ce7d50 100644 --- a/redirects.yaml +++ b/redirects.yaml @@ -1,4659 +1,4659 @@ /resources/contribute-documentation/tutorial-structure/: - to: /resources/contribute-documentation/tutorial-guidelines/ - type: 301 + to: /resources/contribute-documentation/tutorial-guidelines/ + type: 301 /docs/references/protocol/transactions/pseudo-transaction-types/pseudo-transaction-types/: - to: /docs/references/protocol/transactions/pseudo-transaction-types/ - type: 301 + to: /docs/references/protocol/transactions/pseudo-transaction-types/ + type: 301 /docs/concepts/tokens/transfer-fees/: - to: /docs/concepts/tokens/fungible-tokens/transfer-fees/ - type: 301 + to: /docs/concepts/tokens/fungible-tokens/transfer-fees/ + type: 301 /docs/infrastructure/configuration/data-retention/configure-history-sharding/: - to: /docs/infrastructure/configuration/data-retention/ - type: 301 + to: /docs/infrastructure/configuration/data-retention/ + type: 301 /docs/infrastructure/configuration/data-retention/history-sharding/: - to: /docs/infrastructure/configuration/data-retention/ - type: 301 + to: /docs/infrastructure/configuration/data-retention/ + type: 301 /docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/node_to_shard/: - to: /docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ - type: 301 + to: /docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ + type: 301 /docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/crawl_shards/: - to: /docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ - type: 301 + to: /docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ + type: 301 /docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/download_shard/: - to: /docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ - type: 301 + to: /docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ + type: 301 /docs/infrastructure/installation/rippled-1-3-migration-instructions/: - to: /docs/infrastructure/installation/ - type: 301 + to: /docs/infrastructure/installation/ + type: 301 /docs/infrastructure/installation/update-rippled-manually-on-centos-rhel/: - to: /docs/infrastructure/installation/update-rippled-manually-on-rhel/ - type: 301 + to: /docs/infrastructure/installation/update-rippled-manually-on-rhel/ + type: 301 /docs/infrastructure/installation/install-rippled-on-centos-rhel-with-yum/: - to: /docs/infrastructure/installation/install-rippled-on-rhel/ - type: 301 + to: /docs/infrastructure/installation/install-rippled-on-rhel/ + type: 301 /docs/concepts/xrpl-sidechains/price-oracles/: - to: /docs/concepts/decentralized-storage/price-oracles/ - type: 301 + to: /docs/concepts/decentralized-storage/price-oracles/ + type: 301 /docs/concepts/accounts/decentralized-identifiers/: - to: /docs/concepts/decentralized-storage/decentralized-identifiers/ - type: 301 + to: /docs/concepts/decentralized-storage/decentralized-identifiers/ + type: 301 /docs/tutorials/javascript/trade-on-ledger/: - to: /docs/tutorials/javascript/amm/ - type: 301 + to: /docs/tutorials/javascript/amm/ + type: 301 /docs/tutorials/javascript/trade-on-ledger/earn-passive-income-as-a-liquidity-provider: - to: /docs/tutorials/javascript/amm/add-assets-to-amm - type: 301 + to: /docs/tutorials/javascript/amm/add-assets-to-amm + type: 301 /docs/tutorials/javascript/trade-on-ledger/use-amm-auction-slot-for-lower-fees: - to: /docs/tutorials/javascript/amm/trade-with-auction-slot - type: 301 + to: /docs/tutorials/javascript/amm/trade-with-auction-slot + type: 301 /docs/tutorials/how-tos/use-specialized-payment-types/use-checks/look-up-checks-by-recipient: - to: /docs/tutorials/how-tos/use-specialized-payment-types/use-checks/look-up-checks - type: 301 + to: /docs/tutorials/how-tos/use-specialized-payment-types/use-checks/look-up-checks + type: 301 /docs/tutorials/how-tos/use-specialized-payment-types/use-checks/look-up-checks-by-sender: - to: /docs/tutorials/how-tos/use-specialized-payment-types/use-checks/look-up-checks - type: 301 + to: /docs/tutorials/how-tos/use-specialized-payment-types/use-checks/look-up-checks + type: 301 /docs/tutorials/how-tos/use-specialized-payment-types/use-checks/use-checks: - to: /docs/tutorials/how-tos/use-specialized-payment-types/use-checks - type: 301 + to: /docs/tutorials/how-tos/use-specialized-payment-types/use-checks + type: 301 /docs/references/http-websocket-apis/public-api-methods/clio-server: - to: /docs/references/http-websocket-apis/public-api-methods/clio-methods - type: 301 + to: /docs/references/http-websocket-apis/public-api-methods/clio-methods + type: 301 /docs/references/protocol/transactions/transaction-results/transaction-results: - to: /docs/references/protocol/transactions/transaction-results - type: 301 + to: /docs/references/protocol/transactions/transaction-results + type: 301 xrp-ledger-rpc-tool.html: - to: /resources/dev-tools/rpc-tool - type: 301 + to: /resources/dev-tools/rpc-tool + type: 301 xrp-ledger-toml-checker.html: - to: /resources/dev-tools/xrp-ledger-toml-checker - type: 301 + to: /resources/dev-tools/xrp-ledger-toml-checker + type: 301 domain-verification-checker.html: - to: /resources/dev-tools/domain-verification-checker - type: 301 + to: /resources/dev-tools/domain-verification-checker + type: 301 websocket-api-tool.html: - to: /resources/dev-tools/websocket-api-tool - type: 301 + to: /resources/dev-tools/websocket-api-tool + type: 301 xrp-testnet-faucet.html: - to: /resources/dev-tools/xrp-faucets - type: 301 + to: /resources/dev-tools/xrp-faucets + type: 301 xrp-test-net-faucet.html: - to: /resources/dev-tools/xrp-faucets - type: 301 + to: /resources/dev-tools/xrp-faucets + type: 301 /resources/xrp-faucets: - to: /resources/dev-tools/xrp-faucets - type: 301 + to: /resources/dev-tools/xrp-faucets + type: 301 tx-sender.html: - to: /resources/dev-tools/tx-sender - type: 301 + to: /resources/dev-tools/tx-sender + type: 301 index.html: - to: / - type: 301 + to: / + type: 301 uses.html: - to: /about/uses - type: 301 + to: /about/uses + type: 301 docs.html: - to: /docs/ - type: 301 + to: /docs/ + type: 301 tutorials.html: - to: /docs/tutorials/ - type: 301 + to: /docs/tutorials/ + type: 301 xrp-ledger-overview.html: - to: /about/ - type: 301 + to: /about/ + type: 301 xrp-overview.html: - to: /about/xrp - type: 301 + to: /about/xrp + type: 301 overview.html: - to: /about/ - type: 301 + to: /about/ + type: 301 history.html: - to: /about/history - type: 301 + to: /about/history + type: 301 impact.html: - to: /about/impact - type: 301 + to: /about/impact + type: 301 carbon-calculator.html: - to: /about/impact - type: 301 + to: /about/impact + type: 301 contribute.html: - to: /community - type: 301 + to: /community + type: 301 events.html: - to: /community/events - type: 301 + to: /community/events + type: 301 ambassadors.html: - to: /community/ambassadors - type: 301 + to: /community/ambassadors + type: 301 developer-funding.html: - to: /community/developer-funding - type: 301 + to: /community/developer-funding + type: 301 code-samples.html: - to: /resources/code-samples - type: 301 + to: /resources/code-samples + type: 301 dev-tools.html: - to: /resources/dev-tools/ - type: 301 + to: /resources/dev-tools/ + type: 301 dev-tools-dev-tools.html: - to: /resources/dev-tools/ - type: 301 + to: /resources/dev-tools/ + type: 301 validator-domain-verifier.html: - to: /resources/dev-tools/domain-verifier/ - type: 301 + to: /resources/dev-tools/domain-verifier/ + type: 301 docs-index.html: - to: /docs/ - type: 301 + to: /docs/ + type: 301 explore.html: - to: /about/ - type: 301 + to: /about/ + type: 301 wallet.html: - to: /about/xrp - type: 301 + to: /about/xrp + type: 301 exchanges.html: - to: /about/xrp - type: 301 + to: /about/xrp + type: 301 businesses.html: - to: /about/uses - type: 301 + to: /about/uses + type: 301 ripple-txt-validator.html: - to: /resources/dev-tools/xrp-ledger-toml-checker - type: 301 + to: /resources/dev-tools/xrp-ledger-toml-checker + type: 301 production-readiness.html: - to: /docs/tutorials - type: 301 + to: /docs/tutorials + type: 301 get-started.html: - to: /docs/tutorials - type: 301 + to: /docs/tutorials + type: 301 run-rippled-as-a-wallet-server.html: - to: /docs/infrastructure/configuration/server-modes/run-rippled-as-a-stock-server - type: 301 + to: /docs/infrastructure/configuration/server-modes/run-rippled-as-a-stock-server + type: 301 faq: - to: /about/faq - type: 301 + to: /about/faq + type: 301 faq.html: - to: /about/faq - type: 301 + to: /about/faq + type: 301 privacy-policy.html: - to: /about/privacy-policy - type: 301 + to: /about/privacy-policy + type: 301 privacy-policy/: - to: /about/privacy-policy - type: 301 + to: /about/privacy-policy + type: 301 technical-faq.html: - to: /about/faq - type: 301 + to: /about/faq + type: 301 introduction.html: - to: /docs/introduction/ - type: 301 + to: /docs/introduction/ + type: 301 what-is-the-xrp-ledger.html: - to: /docs/introduction/what-is-the-xrp-ledger - type: 301 + to: /docs/introduction/what-is-the-xrp-ledger + type: 301 what-is-xrp.html: - to: /docs/introduction/what-is-xrp - type: 301 + to: /docs/introduction/what-is-xrp + type: 301 xrp.html: - to: /docs/introduction/what-is-xrp - type: 301 + to: /docs/introduction/what-is-xrp + type: 301 crypto-wallets.html: - to: /docs/introduction/crypto-wallets - type: 301 + to: /docs/introduction/crypto-wallets + type: 301 txn-and-requests.html: - to: /docs/introduction/transactions-and-requests - type: 301 + to: /docs/introduction/transactions-and-requests + type: 301 software-ecosystem.html: - to: /docs/introduction/software-ecosystem - type: 301 + to: /docs/introduction/software-ecosystem + type: 301 use-cases.html: - to: /docs/use-cases/ - type: 301 + to: /docs/use-cases/ + type: 301 payments-uc.html: - to: /docs/use-cases/payments/ - type: 301 + to: /docs/use-cases/payments/ + type: 301 peer-to-peer-payments-uc.html: - to: /docs/use-cases/payments/peer-to-peer-payments-uc - type: 301 + to: /docs/use-cases/payments/peer-to-peer-payments-uc + type: 301 restricting-deposits-uc.html: - to: /docs/use-cases/payments/restricting-deposits-uc - type: 301 + to: /docs/use-cases/payments/restricting-deposits-uc + type: 301 escrow-uc.html: - to: /docs/use-cases/payments/smart-contracts-uc - type: 301 + to: /docs/use-cases/payments/smart-contracts-uc + type: 301 tokenization.html: - to: /docs/use-cases/tokenization/ - type: 301 + to: /docs/use-cases/tokenization/ + type: 301 stablecoin-issuer.html: - to: /docs/use-cases/tokenization/stablecoin-issuer - type: 301 + to: /docs/use-cases/tokenization/stablecoin-issuer + type: 301 nft-mkt-overview.html: - to: /docs/use-cases/tokenization/nft-mkt-overview - type: 301 + to: /docs/use-cases/tokenization/nft-mkt-overview + type: 301 nftoken-marketplace.html: - to: /docs/use-cases/tokenization/nftoken-marketplace - type: 301 + to: /docs/use-cases/tokenization/nftoken-marketplace + type: 301 authorized-minter.html: - to: /docs/use-cases/tokenization/authorized-minter - type: 301 + to: /docs/use-cases/tokenization/authorized-minter + type: 301 digital-artist.html: - to: /docs/use-cases/tokenization/digital-artist - type: 301 + to: /docs/use-cases/tokenization/digital-artist + type: 301 defi-uc.html: - to: /docs/use-cases/defi/ - type: 301 + to: /docs/use-cases/defi/ + type: 301 algorithmic-trading.html: - to: /docs/use-cases/defi/algorithmic-trading - type: 301 + to: /docs/use-cases/defi/algorithmic-trading + type: 301 list-xrp-as-an-exchange.html: - to: /docs/use-cases/defi/list-xrp-as-an-exchange - type: 301 + to: /docs/use-cases/defi/list-xrp-as-an-exchange + type: 301 concepts.html: - to: /docs/concepts/ - type: 301 + to: /docs/concepts/ + type: 301 networks-and-servers.html: - to: /docs/concepts/networks-and-servers/ - type: 301 + to: /docs/concepts/networks-and-servers/ + type: 301 xrpl-servers.html: - to: /docs/concepts/networks-and-servers/ - type: 301 + to: /docs/concepts/networks-and-servers/ + type: 301 rippled-server-modes.html: - to: /docs/concepts/networks-and-servers/rippled-server-modes - type: 301 + to: /docs/concepts/networks-and-servers/rippled-server-modes + type: 301 clustering.html: - to: /docs/concepts/networks-and-servers/clustering - type: 301 + to: /docs/concepts/networks-and-servers/clustering + type: 301 ledger-history.html: - to: /docs/concepts/networks-and-servers/ledger-history - type: 301 + to: /docs/concepts/networks-and-servers/ledger-history + type: 301 peer-protocol.html: - to: /docs/concepts/networks-and-servers/peer-protocol - type: 301 + to: /docs/concepts/networks-and-servers/peer-protocol + type: 301 transaction-censorship-detection.html: - to: /docs/concepts/networks-and-servers/transaction-censorship-detection - type: 301 + to: /docs/concepts/networks-and-servers/transaction-censorship-detection + type: 301 parallel-networks.html: - to: /docs/concepts/networks-and-servers/parallel-networks - type: 301 + to: /docs/concepts/networks-and-servers/parallel-networks + type: 301 amendments.html: - to: /docs/concepts/networks-and-servers/amendments - type: 301 + to: /docs/concepts/networks-and-servers/amendments + type: 301 the-clio-server.html: - to: /docs/concepts/networks-and-servers/the-clio-server - type: 301 + to: /docs/concepts/networks-and-servers/the-clio-server + type: 301 consensus.html: - to: /docs/concepts/consensus-protocol/ - type: 301 + to: /docs/concepts/consensus-protocol/ + type: 301 consensus-structure.html: - to: /docs/concepts/consensus-protocol/consensus-structure - type: 301 + to: /docs/concepts/consensus-protocol/consensus-structure + type: 301 consensus-principles-and-rules.html: - to: /docs/concepts/consensus-protocol/consensus-principles-and-rules - type: 301 + to: /docs/concepts/consensus-protocol/consensus-principles-and-rules + type: 301 consensus-protections.html: - to: /docs/concepts/consensus-protocol/consensus-protections - type: 301 + to: /docs/concepts/consensus-protocol/consensus-protections + type: 301 invariant-checking.html: - to: /docs/concepts/consensus-protocol/invariant-checking - type: 301 + to: /docs/concepts/consensus-protocol/invariant-checking + type: 301 fee-voting.html: - to: /docs/concepts/consensus-protocol/fee-voting - type: 301 + to: /docs/concepts/consensus-protocol/fee-voting + type: 301 negative-unl.html: - to: /docs/concepts/consensus-protocol/negative-unl - type: 301 + to: /docs/concepts/consensus-protocol/negative-unl + type: 301 consensus-research.html: - to: /docs/concepts/consensus-protocol/consensus-research - type: 301 + to: /docs/concepts/consensus-protocol/consensus-research + type: 301 ledgers.html: - to: /docs/concepts/ledgers/ - type: 301 + to: /docs/concepts/ledgers/ + type: 301 ledger-structure.html: - to: /docs/concepts/ledgers/ledger-structure - type: 301 + to: /docs/concepts/ledgers/ledger-structure + type: 301 open-closed-validated-ledgers.html: - to: /docs/concepts/ledgers/open-closed-validated-ledgers - type: 301 + to: /docs/concepts/ledgers/open-closed-validated-ledgers + type: 301 ledger-close-times.html: - to: /docs/concepts/ledgers/ledger-close-times - type: 301 + to: /docs/concepts/ledgers/ledger-close-times + type: 301 transactions.html: - to: /docs/concepts/transactions/ - type: 301 + to: /docs/concepts/transactions/ + type: 301 fees.html: - to: /docs/concepts/transactions/fees - type: 301 + to: /docs/concepts/transactions/fees + type: 301 reliable-transaction-submission.html: - to: /docs/concepts/transactions/reliable-transaction-submission - type: 301 + to: /docs/concepts/transactions/reliable-transaction-submission + type: 301 secure-signing.html: - to: /docs/concepts/transactions/secure-signing - type: 301 + to: /docs/concepts/transactions/secure-signing + type: 301 source-and-destination-tags.html: - to: /docs/concepts/transactions/source-and-destination-tags - type: 301 + to: /docs/concepts/transactions/source-and-destination-tags + type: 301 transaction-cost.html: - to: /docs/concepts/transactions/transaction-cost - type: 301 + to: /docs/concepts/transactions/transaction-cost + type: 301 transaction-queue.html: - to: /docs/concepts/transactions/transaction-queue - type: 301 + to: /docs/concepts/transactions/transaction-queue + type: 301 finality-of-results.html: - to: /docs/concepts/transactions/finality-of-results/ - type: 301 + to: /docs/concepts/transactions/finality-of-results/ + type: 301 look-up-transaction-results.html: - to: /docs/concepts/transactions/finality-of-results/look-up-transaction-results - type: 301 + to: /docs/concepts/transactions/finality-of-results/look-up-transaction-results + type: 301 transaction-malleability.html: - to: /docs/concepts/transactions/finality-of-results/transaction-malleability - type: 301 + to: /docs/concepts/transactions/finality-of-results/transaction-malleability + type: 301 canceling-a-transaction.html: - to: /docs/concepts/transactions/finality-of-results/canceling-a-transaction - type: 301 + to: /docs/concepts/transactions/finality-of-results/canceling-a-transaction + type: 301 payment-types.html: - to: /docs/concepts/payment-types/ - type: 301 + to: /docs/concepts/payment-types/ + type: 301 direct-xrp-payments.html: - to: /docs/concepts/payment-types/direct-xrp-payments - type: 301 + to: /docs/concepts/payment-types/direct-xrp-payments + type: 301 cross-currency-payments.html: - to: /docs/concepts/payment-types/cross-currency-payments - type: 301 + to: /docs/concepts/payment-types/cross-currency-payments + type: 301 checks.html: - to: /docs/concepts/payment-types/checks - type: 301 + to: /docs/concepts/payment-types/checks + type: 301 escrow.html: - to: /docs/concepts/payment-types/escrow - type: 301 + to: /docs/concepts/payment-types/escrow + type: 301 partial-payments.html: - to: /docs/concepts/payment-types/partial-payments - type: 301 + to: /docs/concepts/payment-types/partial-payments + type: 301 payment-channels.html: - to: /docs/concepts/payment-types/payment-channels - type: 301 + to: /docs/concepts/payment-types/payment-channels + type: 301 robustly-monitoring-for-payments.html: - to: /docs/concepts/payment-types/robustly-monitoring-for-payments - type: 301 + to: /docs/concepts/payment-types/robustly-monitoring-for-payments + type: 301 sending-payments-to-customers.html: - to: /docs/concepts/payment-types/sending-payments-to-customers - type: 301 + to: /docs/concepts/payment-types/sending-payments-to-customers + type: 301 bouncing-payments.html: - to: /docs/concepts/payment-types/bouncing-payments - type: 301 + to: /docs/concepts/payment-types/bouncing-payments + type: 301 tokens.html: - to: /docs/concepts/tokens/ - type: 301 + to: /docs/concepts/tokens/ + type: 301 trust-lines-and-issuing.html: - to: /docs/concepts/tokens/fungible-tokens/ - type: 301 + to: /docs/concepts/tokens/fungible-tokens/ + type: 301 authorized-trust-lines.html: - to: /docs/concepts/tokens/fungible-tokens/authorized-trust-lines - type: 301 + to: /docs/concepts/tokens/fungible-tokens/authorized-trust-lines + type: 301 stablecoins.html: - to: /docs/concepts/tokens/fungible-tokens/stablecoins/ - type: 301 + to: /docs/concepts/tokens/fungible-tokens/stablecoins/ + type: 301 stablecoin-settings.html: - to: /docs/concepts/tokens/fungible-tokens/stablecoins/settings - type: 301 + to: /docs/concepts/tokens/fungible-tokens/stablecoins/settings + type: 301 stablecoin-configuration.html: - to: /docs/concepts/tokens/fungible-tokens/stablecoins/configuration - type: 301 + to: /docs/concepts/tokens/fungible-tokens/stablecoins/configuration + type: 301 stablecoin-precautions.html: - to: /docs/concepts/tokens/fungible-tokens/stablecoins/precautions - type: 301 + to: /docs/concepts/tokens/fungible-tokens/stablecoins/precautions + type: 301 stablecoin-compliance-guidelines.html: - to: /docs/concepts/tokens/fungible-tokens/stablecoins/compliance-guidelines - type: 301 + to: /docs/concepts/tokens/fungible-tokens/stablecoins/compliance-guidelines + type: 301 clawing-back-tokens.html: - to: /docs/concepts/tokens/fungible-tokens/clawing-back-tokens - type: 301 + to: /docs/concepts/tokens/fungible-tokens/clawing-back-tokens + type: 301 freezes.html: - to: /docs/concepts/tokens/fungible-tokens/freezes - type: 301 + to: /docs/concepts/tokens/fungible-tokens/freezes + type: 301 common-misconceptions-about-freezes.html: - to: /docs/concepts/tokens/fungible-tokens/common-misconceptions-about-freezes - type: 301 + to: /docs/concepts/tokens/fungible-tokens/common-misconceptions-about-freezes + type: 301 paths.html: - to: /docs/concepts/tokens/fungible-tokens/paths - type: 301 + to: /docs/concepts/tokens/fungible-tokens/paths + type: 301 rippling.html: - to: /docs/concepts/tokens/fungible-tokens/rippling - type: 301 + to: /docs/concepts/tokens/fungible-tokens/rippling + type: 301 non-fungible-tokens.html: - to: /docs/concepts/tokens/nfts/ - type: 301 + to: /docs/concepts/tokens/nfts/ + type: 301 nft-storage.html: - to: /docs/concepts/tokens/nfts/payload-storage - type: 301 + to: /docs/concepts/tokens/nfts/payload-storage + type: 301 non-fungible-token-transfers.html: - to: /docs/concepts/tokens/nfts/trading - type: 301 + to: /docs/concepts/tokens/nfts/trading + type: 301 nft-reserve-requirements.html: - to: /docs/concepts/tokens/nfts/reserve-requirements - type: 301 + to: /docs/concepts/tokens/nfts/reserve-requirements + type: 301 nftoken-batch-minting.html: - to: /docs/concepts/tokens/nfts/batch-minting - type: 301 + to: /docs/concepts/tokens/nfts/batch-minting + type: 301 nftoken-authorized-minting.html: - to: /docs/concepts/tokens/nfts/authorizing-another-minter - type: 301 + to: /docs/concepts/tokens/nfts/authorizing-another-minter + type: 301 nftoken-auctions.html: - to: /docs/concepts/tokens/nfts/running-an-nft-auction - type: 301 + to: /docs/concepts/tokens/nfts/running-an-nft-auction + type: 301 nft-collections.html: - to: /docs/concepts/tokens/nfts/collections - type: 301 + to: /docs/concepts/tokens/nfts/collections + type: 301 nft-fixed-supply.html: - to: /docs/concepts/tokens/nfts/guaranteeing-a-fixed-supply - type: 301 + to: /docs/concepts/tokens/nfts/guaranteeing-a-fixed-supply + type: 301 nft-apis.html: - to: /docs/concepts/tokens/nfts/nft-apis - type: 301 + to: /docs/concepts/tokens/nfts/nft-apis + type: 301 transfer-fees.html: - to: /docs/concepts/tokens/transfer-fees - type: 301 + to: /docs/concepts/tokens/transfer-fees + type: 301 demurrage.html: - to: /docs/concepts/tokens/fungible-tokens/demurrage - type: 301 + to: /docs/concepts/tokens/fungible-tokens/demurrage + type: 301 decentralized-exchange.html: - to: /docs/concepts/tokens/decentralized-exchange/ - type: 301 + to: /docs/concepts/tokens/decentralized-exchange/ + type: 301 offers.html: - to: /docs/concepts/tokens/decentralized-exchange/offers - type: 301 + to: /docs/concepts/tokens/decentralized-exchange/offers + type: 301 autobridging.html: - to: /docs/concepts/tokens/decentralized-exchange/autobridging - type: 301 + to: /docs/concepts/tokens/decentralized-exchange/autobridging + type: 301 ticksize.html: - to: /docs/concepts/tokens/decentralized-exchange/ticksize - type: 301 + to: /docs/concepts/tokens/decentralized-exchange/ticksize + type: 301 automated-market-makers.html: - to: /docs/concepts/tokens/decentralized-exchange/automated-market-makers - type: 301 + to: /docs/concepts/tokens/decentralized-exchange/automated-market-makers + type: 301 accounts.html: - to: /docs/concepts/accounts/ - type: 301 + to: /docs/concepts/accounts/ + type: 301 account-types.html: - to: /docs/concepts/accounts/account-types - type: 301 + to: /docs/concepts/accounts/account-types + type: 301 deleting-accounts.html: - to: /docs/concepts/accounts/deleting-accounts - type: 301 + to: /docs/concepts/accounts/deleting-accounts + type: 301 reserves.html: - to: /docs/concepts/accounts/reserves - type: 301 + to: /docs/concepts/accounts/reserves + type: 301 addresses.html: - to: /docs/concepts/accounts/addresses - type: 301 + to: /docs/concepts/accounts/addresses + type: 301 cryptographic-keys.html: - to: /docs/concepts/accounts/cryptographic-keys - type: 301 + to: /docs/concepts/accounts/cryptographic-keys + type: 301 multi-signing.html: - to: /docs/concepts/accounts/multi-signing - type: 301 + to: /docs/concepts/accounts/multi-signing + type: 301 depositauth.html: - to: /docs/concepts/accounts/depositauth - type: 301 + to: /docs/concepts/accounts/depositauth + type: 301 tickets.html: - to: /docs/concepts/accounts/tickets - type: 301 + to: /docs/concepts/accounts/tickets + type: 301 decentralized-identifiers.html: - to: /docs/concepts/accounts/decentralized-identifiers - type: 301 + to: /docs/concepts/accounts/decentralized-identifiers + type: 301 intro-to-consensus.html: - to: /docs/concepts/consensus-protocol/ - type: 301 + to: /docs/concepts/consensus-protocol/ + type: 301 set-up-secure-signing.html: - to: /docs/concepts/transactions/secure-signing - type: 301 + to: /docs/concepts/transactions/secure-signing + type: 301 transaction-basics.html: - to: /docs/concepts/transactions/ - type: 301 + to: /docs/concepts/transactions/ + type: 301 become-an-xrp-ledger-gateway.html: - to: /docs/use-cases/tokenization/stablecoin-issuer - type: 301 + to: /docs/use-cases/tokenization/stablecoin-issuer + type: 301 consensus-network.html: - to: /docs/concepts/consensus-protocol/ - type: 301 + to: /docs/concepts/consensus-protocol/ + type: 301 complex-payment-types.html: - to: /docs/concepts/payment-types/ - type: 301 + to: /docs/concepts/payment-types/ + type: 301 about-canceling-a-transaction.html: - to: /docs/concepts/transactions/finality-of-results/canceling-a-transaction - type: 301 + to: /docs/concepts/transactions/finality-of-results/canceling-a-transaction + type: 301 issuing-and-operational-addresses.html: - to: /docs/concepts/accounts/account-types - type: 301 + to: /docs/concepts/accounts/account-types + type: 301 issued-currencies.html: - to: /docs/concepts/tokens/ - type: 301 + to: /docs/concepts/tokens/ + type: 301 issued-currencies-overview.html: - to: /docs/concepts/tokens/ - type: 301 + to: /docs/concepts/tokens/ + type: 301 federated-sidechains.html: - to: /docs/concepts/xrpl-sidechains/cross-chain-bridges - type: 301 + to: /docs/concepts/xrpl-sidechains/cross-chain-bridges + type: 301 xrpl-interoperability.html: - to: /docs/concepts/xrpl-sidechains/cross-chain-bridges - type: 301 + to: /docs/concepts/xrpl-sidechains/cross-chain-bridges + type: 301 intro-to-evm-sidechain.html: - to: https://docs.xrplevm.org/docs/evm-sidechain/intro-to-evm-sidechain/ - type: 301 + to: https://docs.xrplevm.org/docs/evm-sidechain/intro-to-evm-sidechain/ + type: 301 the-rippled-server.html: - to: /docs/concepts/networks-and-servers/ - type: 301 + to: /docs/concepts/networks-and-servers/ + type: 301 nft-concepts.html: - to: /docs/concepts/tokens/nfts/ - type: 301 + to: /docs/concepts/tokens/nfts/ + type: 301 nft-conceptual-overview.html: - to: /docs/concepts/tokens/nfts/ - type: 301 + to: /docs/concepts/tokens/nfts/ + type: 301 xrpl-sidechains.html: - to: /docs/concepts/xrpl-sidechains/ - type: 301 + to: /docs/concepts/xrpl-sidechains/ + type: 301 cross-chain-bridges.html: - to: /docs/concepts/xrpl-sidechains/cross-chain-bridges - type: 301 + to: /docs/concepts/xrpl-sidechains/cross-chain-bridges + type: 301 witness-servers.html: - to: /docs/concepts/xrpl-sidechains/witness-servers - type: 301 + to: /docs/concepts/xrpl-sidechains/witness-servers + type: 301 public-servers.html: - to: /docs/tutorials/public-servers - type: 301 + to: /docs/tutorials/public-servers + type: 301 python.html: - to: /docs/tutorials/python/ - type: 301 + to: /docs/tutorials/python/ + type: 301 get-started-using-python.html: - to: /docs/tutorials/python/get-started - type: 301 + to: /docs/tutorials/python/get-started + type: 301 docs/tutorials/python/get-started/: - to: docs/tutorials/python/build-apps/get-started/ - type: 301 + to: docs/tutorials/python/build-apps/get-started/ + type: 301 modular-tutorials-in-python.html: - to: /docs/tutorials/python/ - type: 301 + to: /docs/tutorials/python/ + type: 301 send-payments-using-python.html: - to: /docs/tutorials/python/send-payments - type: 301 + to: /docs/tutorials/python/send-payments + type: 301 py-create-accounts-send-xrp.html: - to: /docs/tutorials/python/send-payments/create-accounts-send-xrp - type: 301 + to: /docs/tutorials/python/send-payments/create-accounts-send-xrp + type: 301 py-create-trustline-send-currency.html: - to: /docs/tutorials/python/send-payments/create-trustline-send-currency - type: 301 + to: /docs/tutorials/python/send-payments/create-trustline-send-currency + type: 301 py-create-time-based-escrows.html: - to: /docs/tutorials/python/send-payments/create-time-based-escrows - type: 301 + to: /docs/tutorials/python/send-payments/create-time-based-escrows + type: 301 py-mint-and-burn-nfts.html: - to: /docs/tutorials/python/nfts/mint-and-burn-nfts - type: 301 + to: /docs/tutorials/python/nfts/mint-and-burn-nfts + type: 301 py-transfer-nfts.html: - to: /docs/tutorials/python/nfts/transfer-nfts - type: 301 + to: /docs/tutorials/python/nfts/transfer-nfts + type: 301 py-broker-sale.html: - to: /docs/tutorials/python/nfts/broker-sale - type: 301 + to: /docs/tutorials/python/nfts/broker-sale + type: 301 py-authorize-minter.html: - to: /docs/tutorials/python/nfts/authorize-minter - type: 301 + to: /docs/tutorials/python/nfts/authorize-minter + type: 301 py-batch-minting.html: - to: /docs/tutorials/python/nfts/batch-minting - type: 301 + to: /docs/tutorials/python/nfts/batch-minting + type: 301 build-a-desktop-wallet-in-python.html: - to: /docs/tutorials/python/build-apps/build-a-desktop-wallet-in-python - type: 301 + to: /docs/tutorials/python/build-apps/build-a-desktop-wallet-in-python + type: 301 javascript.html: - to: /docs/tutorials/javascript/ - type: 301 + to: /docs/tutorials/javascript/ + type: 301 get-started-using-javascript.html: - to: /docs/tutorials/javascript/build-apps/get-started - type: 301 + to: /docs/tutorials/javascript/build-apps/get-started + type: 301 docs/tutorials/javascript/get-started: - to: docs/tutorials/javascript/build-apps/get-started/ - type: 301 + to: docs/tutorials/javascript/build-apps/get-started/ + type: 301 docs/tutorials/javascript/get-started/: - to: docs/tutorials/javascript/build-apps/get-started/ - type: 301 + to: docs/tutorials/javascript/build-apps/get-started/ + type: 301 get-started-using-node-js.html: - to: /docs/tutorials/javascript/build-apps/get-started - type: 301 + to: /docs/tutorials/javascript/build-apps/get-started + type: 301 get-started-with-rippleapi-for-javascript.html: - to: /docs/tutorials/javascript/build-apps/get-started - type: 301 + to: /docs/tutorials/javascript/build-apps/get-started + type: 301 modular-tutorials-in-javascript.html: - to: /docs/tutorials/javascript/ - type: 301 + to: /docs/tutorials/javascript/ + type: 301 send-payments-using-javascript.html: - to: /docs/tutorials/javascript/send-payments - type: 301 + to: /docs/tutorials/javascript/send-payments + type: 301 create-accounts-send-xrp-using-javascript.html: - to: /docs/tutorials/javascript/send-payments/create-accounts-send-xrp - type: 301 + to: /docs/tutorials/javascript/send-payments/create-accounts-send-xrp + type: 301 create-trustline-send-currency-using-javascript.html: - to: /docs/tutorials/javascript/send-payments/create-trustline-send-currency - type: 301 + to: /docs/tutorials/javascript/send-payments/create-trustline-send-currency + type: 301 create-time-based-escrows-using-javascript.html: - to: /docs/tutorials/javascript/send-payments/create-time-based-escrows - type: 301 + to: /docs/tutorials/javascript/send-payments/create-time-based-escrows + type: 301 create-conditional-escrows-using-javascript.html: - to: /docs/tutorials/javascript/send-payments/create-conditional-escrows - type: 301 + to: /docs/tutorials/javascript/send-payments/create-conditional-escrows + type: 301 nfts-using-javascript.html: - to: /docs/tutorials/javascript/nfts-using-javascript/ - type: 301 + to: /docs/tutorials/javascript/nfts-using-javascript/ + type: 301 nfts-using-python.html: - to: /docs/tutorials/python/nfts - type: 301 + to: /docs/tutorials/python/nfts + type: 301 mint-and-burn-nfts-using-javascript.html: - to: /docs/tutorials/javascript/nfts/mint-and-burn-nfts - type: 301 + to: /docs/tutorials/javascript/nfts/mint-and-burn-nfts + type: 301 transfer-nfts-using-javascript.html: - to: /docs/tutorials/javascript/nfts/transfer-nfts - type: 301 + to: /docs/tutorials/javascript/nfts/transfer-nfts + type: 301 broker-an-nft-sale-using-javascript.html: - to: /docs/tutorials/javascript/nfts/broker-an-nft-sale - type: 301 + to: /docs/tutorials/javascript/nfts/broker-an-nft-sale + type: 301 assign-an-authorized-minter-using-javascript.html: - to: /docs/tutorials/javascript/nfts/assign-an-authorized-minter - type: 301 + to: /docs/tutorials/javascript/nfts/assign-an-authorized-minter + type: 301 batch-mint-nfts-using-javascript.html: - to: /docs/tutorials/javascript/nfts/batch-mint-nfts - type: 301 + to: /docs/tutorials/javascript/nfts/batch-mint-nfts + type: 301 build-a-browser-wallet-in-javascript.html: - to: /docs/tutorials/javascript/build-apps/build-a-browser-wallet-in-javascript/ - type: 301 + to: /docs/tutorials/javascript/build-apps/build-a-browser-wallet-in-javascript/ + type: 301 build-a-browser-wallet-using-javascript.html: - to: /docs/tutorials/javascript/build-apps/build-a-browser-wallet-in-javascript/ - type: 301 + to: /docs/tutorials/javascript/build-apps/build-a-browser-wallet-in-javascript/ + type: 301 docs/tutorials/javascript/build-a-browser-wallet-in-javascript: - to: docs/tutorials/javascript/build-apps/build-a-browser-wallet-in-javascript/ - type: 301 + to: docs/tutorials/javascript/build-apps/build-a-browser-wallet-in-javascript/ + type: 301 docs/tutorials/javascript/build-a-browser-wallet-in-javascript/: - to: docs/tutorials/javascript/build-apps/build-a-browser-wallet-in-javascript/ - type: 301 + to: docs/tutorials/javascript/build-apps/build-a-browser-wallet-in-javascript/ + type: 301 build-a-desktop-wallet-in-javascript.html: - to: /docs/tutorials/javascript/build-apps/build-a-desktop-wallet-in-javascript - type: 301 + to: /docs/tutorials/javascript/build-apps/build-a-desktop-wallet-in-javascript + type: 301 docs/tutorials/javascript/build-a-desktop-wallet-in-javascript: - to: /docs/tutorials/javascript/build-apps/build-a-desktop-wallet-in-javascript - type: 301 + to: /docs/tutorials/javascript/build-apps/build-a-desktop-wallet-in-javascript + type: 301 docs/tutorials/javascript/build-a-desktop-wallet-in-javascript/: - to: /docs/tutorials/javascript/build-apps/build-a-desktop-wallet-in-javascript - type: 301 + to: /docs/tutorials/javascript/build-apps/build-a-desktop-wallet-in-javascript + type: 301 java.html: - to: /docs/tutorials/java/ - type: 301 + to: /docs/tutorials/java/ + type: 301 get-started-using-java.html: - to: /docs/tutorials/java/build-apps/get-started - type: 301 + to: /docs/tutorials/java/build-apps/get-started + type: 301 docs/tutorials/java/get-started: - to: /docs/tutorials/java/build-apps/get-started - type: 301 + to: /docs/tutorials/java/build-apps/get-started + type: 301 docs/tutorials/java/get-started/: - to: /docs/tutorials/java/build-apps/get-started - type: 301 + to: /docs/tutorials/java/build-apps/get-started + type: 301 php.html: - to: /docs/tutorials/php - type: 301 + to: /docs/tutorials/php + type: 301 get-started-using-php.html: - to: /docs/tutorials/php/build-apps/get-started - type: 301 + to: /docs/tutorials/php/build-apps/get-started + type: 301 http-websocket-apis-tutorials.html: - to: /docs/tutorials/http-websocket-apis/ - type: 301 + to: /docs/tutorials/http-websocket-apis/ + type: 301 get-started-with-the-rippled-api.html: - to: /docs/tutorials/http-websocket-apis/build-apps/get-started - type: 301 + to: /docs/tutorials/http-websocket-apis/build-apps/get-started + type: 301 get-started-using-http-websocket-apis.html: - to: /docs/tutorials/http-websocket-apis/build-apps/get-started/ - type: 301 + to: /docs/tutorials/http-websocket-apis/build-apps/get-started/ + type: 301 docs/tutorials/http-websocket-apis/get-started: - to: /docs/tutorials/http-websocket-apis/build-apps/get-started/ - type: 301 + to: /docs/tutorials/http-websocket-apis/build-apps/get-started/ + type: 301 docs/tutorials/http-websocket-apis/get-started/: - to: /docs/tutorials/http-websocket-apis/build-apps/get-started/ - type: 301 + to: /docs/tutorials/http-websocket-apis/build-apps/get-started/ + type: 301 monitor-incoming-payments-with-websocket.html: - to: /docs/tutorials/http-websocket-apis/build-apps/monitor-incoming-payments-with-websocket - type: 301 + to: /docs/tutorials/http-websocket-apis/build-apps/monitor-incoming-payments-with-websocket + type: 301 tasks.html: - to: /docs/tutorials/how-tos/ - type: 301 + to: /docs/tutorials/how-tos/ + type: 301 manage-account-settings.html: - to: /docs/tutorials/how-tos/manage-account-settings/ - type: 301 + to: /docs/tutorials/how-tos/manage-account-settings/ + type: 301 assign-a-regular-key-pair.html: - to: /docs/tutorials/how-tos/manage-account-settings/assign-a-regular-key-pair - type: 301 + to: /docs/tutorials/how-tos/manage-account-settings/assign-a-regular-key-pair + type: 301 change-or-remove-a-regular-key-pair.html: - to: /docs/tutorials/how-tos/manage-account-settings/change-or-remove-a-regular-key-pair - type: 301 + to: /docs/tutorials/how-tos/manage-account-settings/change-or-remove-a-regular-key-pair + type: 301 disable-master-key-pair.html: - to: /docs/tutorials/how-tos/manage-account-settings/disable-master-key-pair - type: 301 + to: /docs/tutorials/how-tos/manage-account-settings/disable-master-key-pair + type: 301 set-up-multi-signing.html: - to: /docs/tutorials/how-tos/manage-account-settings/set-up-multi-signing - type: 301 + to: /docs/tutorials/how-tos/manage-account-settings/set-up-multi-signing + type: 301 send-a-multi-signed-transaction.html: - to: /docs/tutorials/how-tos/manage-account-settings/send-a-multi-signed-transaction - type: 301 + to: /docs/tutorials/how-tos/manage-account-settings/send-a-multi-signed-transaction + type: 301 require-destination-tags.html: - to: /docs/tutorials/how-tos/manage-account-settings/require-destination-tags - type: 301 + to: /docs/tutorials/how-tos/manage-account-settings/require-destination-tags + type: 301 offline-account-setup.html: - to: /docs/tutorials/how-tos/manage-account-settings/offline-account-setup - type: 301 + to: /docs/tutorials/how-tos/manage-account-settings/offline-account-setup + type: 301 use-tickets.html: - to: /docs/tutorials/how-tos/manage-account-settings/use-tickets - type: 301 + to: /docs/tutorials/how-tos/manage-account-settings/use-tickets + type: 301 send-xrp.html: - to: /docs/tutorials/how-tos/send-xrp - type: 301 + to: /docs/tutorials/how-tos/send-xrp + type: 301 use-specialized-payment-types.html: - to: /docs/tutorials/how-tos/use-specialized-payment-types/ - type: 301 + to: /docs/tutorials/how-tos/use-specialized-payment-types/ + type: 301 use-complex-payment-types.html: - to: /docs/tutorials/how-tos/use-specialized-payment-types/ - type: 301 + to: /docs/tutorials/how-tos/use-specialized-payment-types/ + type: 301 use-escrows.html: - to: /docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/ - type: 301 + to: /docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/ + type: 301 send-a-time-held-escrow.html: - to: /docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/send-a-time-held-escrow - type: 301 + to: /docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/send-a-time-held-escrow + type: 301 send-a-conditionally-held-escrow.html: - to: /docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/send-a-conditionally-held-escrow - type: 301 + to: /docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/send-a-conditionally-held-escrow + type: 301 cancel-an-expired-escrow.html: - to: /docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/cancel-an-expired-escrow - type: 301 + to: /docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/cancel-an-expired-escrow + type: 301 look-up-escrows.html: - to: /docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/look-up-escrows - type: 301 + to: /docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/look-up-escrows + type: 301 use-an-escrow-as-a-smart-contract.html: - to: /docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/use-an-escrow-as-a-smart-contract - type: 301 + to: /docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/use-an-escrow-as-a-smart-contract + type: 301 use-payment-channels.html: - to: /docs/tutorials/how-tos/use-specialized-payment-types/use-payment-channels - type: 301 + to: /docs/tutorials/how-tos/use-specialized-payment-types/use-payment-channels + type: 301 open-a-payment-channel-to-enable-an-inter-exchange-network.html: - to: /docs/tutorials/how-tos/use-specialized-payment-types/open-a-payment-channel-to-enable-an-inter-exchange-network - type: 301 + to: /docs/tutorials/how-tos/use-specialized-payment-types/open-a-payment-channel-to-enable-an-inter-exchange-network + type: 301 use-checks.html: - to: /docs/tutorials/how-tos/use-specialized-payment-types/use-checks/use-checks - type: 301 + to: /docs/tutorials/how-tos/use-specialized-payment-types/use-checks/use-checks + type: 301 send-a-check.html: - to: /docs/tutorials/how-tos/use-specialized-payment-types/use-checks/send-a-check - type: 301 + to: /docs/tutorials/how-tos/use-specialized-payment-types/use-checks/send-a-check + type: 301 cash-a-check-for-an-exact-amount.html: - to: /docs/tutorials/how-tos/use-specialized-payment-types/use-checks/cash-a-check-for-an-exact-amount - type: 301 + to: /docs/tutorials/how-tos/use-specialized-payment-types/use-checks/cash-a-check-for-an-exact-amount + type: 301 cash-a-check-for-a-flexible-amount.html: - to: /docs/tutorials/how-tos/use-specialized-payment-types/use-checks/cash-a-check-for-a-flexible-amount - type: 301 + to: /docs/tutorials/how-tos/use-specialized-payment-types/use-checks/cash-a-check-for-a-flexible-amount + type: 301 cancel-a-check.html: - to: /docs/tutorials/how-tos/use-specialized-payment-types/use-checks/cancel-a-check - type: 301 + to: /docs/tutorials/how-tos/use-specialized-payment-types/use-checks/cancel-a-check + type: 301 look-up-checks-by-sender.html: - to: /docs/tutorials/how-tos/use-specialized-payment-types/use-checks/look-up-checks-by-sender - type: 301 + to: /docs/tutorials/how-tos/use-specialized-payment-types/use-checks/look-up-checks-by-sender + type: 301 look-up-checks-by-recipient.html: - to: /docs/tutorials/how-tos/use-specialized-payment-types/use-checks/look-up-checks-by-recipient - type: 301 + to: /docs/tutorials/how-tos/use-specialized-payment-types/use-checks/look-up-checks-by-recipient + type: 301 use-tokens.html: - to: /docs/tutorials/how-tos/use-tokens/ - type: 301 + to: /docs/tutorials/how-tos/use-tokens/ + type: 301 issue-a-fungible-token.html: - to: /docs/tutorials/how-tos/use-tokens/issue-a-fungible-token - type: 301 + to: /docs/tutorials/how-tos/use-tokens/issue-a-fungible-token + type: 301 trade-in-the-decentralized-exchange.html: - to: /docs/tutorials/how-tos/use-tokens/trade-in-the-decentralized-exchange - type: 301 + to: /docs/tutorials/how-tos/use-tokens/trade-in-the-decentralized-exchange + type: 301 enable-no-freeze.html: - to: /docs/tutorials/how-tos/use-tokens/enable-no-freeze - type: 301 + to: /docs/tutorials/how-tos/use-tokens/enable-no-freeze + type: 301 enact-global-freeze.html: - to: /docs/tutorials/how-tos/use-tokens/enact-global-freeze - type: 301 + to: /docs/tutorials/how-tos/use-tokens/enact-global-freeze + type: 301 freeze-a-trust-line.html: - to: /docs/tutorials/how-tos/use-tokens/freeze-a-trust-line - type: 301 + to: /docs/tutorials/how-tos/use-tokens/freeze-a-trust-line + type: 301 create-an-automated-market-maker.html: - to: /docs/tutorials/how-tos/use-tokens/create-an-automated-market-maker - type: 301 + to: /docs/tutorials/how-tos/use-tokens/create-an-automated-market-maker + type: 301 use-simple-xrp-payments.html: - to: /docs/tutorials/how-tos/send-xrp - type: 301 + to: /docs/tutorials/how-tos/send-xrp + type: 301 cancel-or-skip-a-transaction.html: - to: /docs/concepts/transactions/finality-of-results/canceling-a-transaction - type: 301 + to: /docs/concepts/transactions/finality-of-results/canceling-a-transaction + type: 301 evm-sidechains.html: - to: https://opensource.ripple.com/docs/evm-sidechain/intro-to-evm-sidechain/ - type: 301 + to: https://opensource.ripple.com/docs/evm-sidechain/intro-to-evm-sidechain/ + type: 301 get-started-evm-sidechain.html: - to: https://opensource.ripple.com/docs/evm-sidechain/get-started-evm-sidechain/ - type: 301 + to: https://opensource.ripple.com/docs/evm-sidechain/get-started-evm-sidechain/ + type: 301 connect-metamask-to-xrpl-evm-sidechain.html: - to: https://opensource.ripple.com/docs/evm-sidechain/connect-metamask-to-xrpl-evm-sidechain/ - type: 301 + to: https://opensource.ripple.com/docs/evm-sidechain/connect-metamask-to-xrpl-evm-sidechain/ + type: 301 join-evm-sidechain-devnet.html: - to: https://opensource.ripple.com/docs/evm-sidechain/join-evm-sidechain-devnet/ - type: 301 + to: https://opensource.ripple.com/docs/evm-sidechain/join-evm-sidechain-devnet/ + type: 301 evm-sidechain-validator-security.html: - to: https://opensource.ripple.com/docs/evm-sidechain/evm-sidechain-validator-security/ - type: 301 + to: https://opensource.ripple.com/docs/evm-sidechain/evm-sidechain-validator-security/ + type: 301 evm-sidechain-run-a-validator-node.html: - to: https://opensource.ripple.com/docs/evm-sidechain/evm-sidechain-run-a-validator-node/ - type: 301 + to: https://opensource.ripple.com/docs/evm-sidechain/evm-sidechain-run-a-validator-node/ + type: 301 use-xrpl-sidechains.html: - to: /docs/tutorials/how-tos/use-xrpl-sidechains/ - type: 301 + to: /docs/tutorials/how-tos/use-xrpl-sidechains/ + type: 301 set-up-xrp-xrp-bridge.html: - to: /docs/tutorials/how-tos/use-xrpl-sidechains/set-up-xrp-xrp-bridge - type: 301 + to: /docs/tutorials/how-tos/use-xrpl-sidechains/set-up-xrp-xrp-bridge + type: 301 set-up-iou-iou-bridge.html: - to: /docs/tutorials/how-tos/use-xrpl-sidechains/set-up-iou-iou-bridge - type: 301 + to: /docs/tutorials/how-tos/use-xrpl-sidechains/set-up-iou-iou-bridge + type: 301 submit-cross-chain-transactions.html: - to: /docs/tutorials/how-tos/use-xrpl-sidechains/submit-cross-chain-transaction - type: 301 + to: /docs/tutorials/how-tos/use-xrpl-sidechains/submit-cross-chain-transaction + type: 301 references.html: - to: /docs/references/ - type: 301 + to: /docs/references/ + type: 301 protocol-reference.html: - to: /docs/references/protocol/ - type: 301 + to: /docs/references/protocol/ + type: 301 basic-data-types.html: - to: /docs/references/protocol/data-types/basic-data-types - type: 301 + to: /docs/references/protocol/data-types/basic-data-types + type: 301 base58-encodings.html: - to: /docs/references/protocol/data-types/base58-encodings - type: 301 + to: /docs/references/protocol/data-types/base58-encodings + type: 301 currency-formats.html: - to: /docs/references/protocol/data-types/currency-formats - type: 301 + to: /docs/references/protocol/data-types/currency-formats + type: 301 nftoken.html: - to: /docs/references/protocol/data-types/nftoken - type: 301 + to: /docs/references/protocol/data-types/nftoken + type: 301 ledger-data-formats.html: - to: /docs/references/protocol/ledger-data/ - type: 301 + to: /docs/references/protocol/ledger-data/ + type: 301 ledger-header.html: - to: /docs/references/protocol/ledger-data/ledger-header - type: 301 + to: /docs/references/protocol/ledger-data/ledger-header + type: 301 ledger-entry-common-fields.html: - to: /docs/references/protocol/ledger-data/common-fields - type: 301 + to: /docs/references/protocol/ledger-data/common-fields + type: 301 ledger-entry-types.html: - to: /docs/references/protocol/ledger-data/ledger-entry-types/ - type: 301 + to: /docs/references/protocol/ledger-data/ledger-entry-types/ + type: 301 ledger-object-types.html: - to: /docs/references/protocol/ledger-data/ledger-entry-types/ - type: 301 + to: /docs/references/protocol/ledger-data/ledger-entry-types/ + type: 301 ledger-object-ids.html: - to: /docs/references/protocol/ledger-data/common-fields - type: 301 + to: /docs/references/protocol/ledger-data/common-fields + type: 301 accountroot.html: - to: /docs/references/protocol/ledger-data/ledger-entry-types/accountroot - type: 301 + to: /docs/references/protocol/ledger-data/ledger-entry-types/accountroot + type: 301 amendments-object.html: - to: /docs/references/protocol/ledger-data/ledger-entry-types/amendments - type: 301 + to: /docs/references/protocol/ledger-data/ledger-entry-types/amendments + type: 301 amm.html: - to: /docs/references/protocol/ledger-data/ledger-entry-types/amm - type: 301 + to: /docs/references/protocol/ledger-data/ledger-entry-types/amm + type: 301 bridge.html: - to: /docs/references/protocol/ledger-data/ledger-entry-types/bridge - type: 301 + to: /docs/references/protocol/ledger-data/ledger-entry-types/bridge + type: 301 check.html: - to: /docs/references/protocol/ledger-data/ledger-entry-types/check - type: 301 + to: /docs/references/protocol/ledger-data/ledger-entry-types/check + type: 301 depositpreauth-object.html: - to: /docs/references/protocol/ledger-data/ledger-entry-types/depositpreauth - type: 301 + to: /docs/references/protocol/ledger-data/ledger-entry-types/depositpreauth + type: 301 did.html: - to: /docs/references/protocol/ledger-data/ledger-entry-types/did - type: 301 + to: /docs/references/protocol/ledger-data/ledger-entry-types/did + type: 301 directorynode.html: - to: /docs/references/protocol/ledger-data/ledger-entry-types/directorynode - type: 301 + to: /docs/references/protocol/ledger-data/ledger-entry-types/directorynode + type: 301 escrow-object.html: - to: /docs/references/protocol/ledger-data/ledger-entry-types/escrow - type: 301 + to: /docs/references/protocol/ledger-data/ledger-entry-types/escrow + type: 301 feesettings.html: - to: /docs/references/protocol/ledger-data/ledger-entry-types/feesettings - type: 301 + to: /docs/references/protocol/ledger-data/ledger-entry-types/feesettings + type: 301 ledgerhashes.html: - to: /docs/references/protocol/ledger-data/ledger-entry-types/ledgerhashes - type: 301 + to: /docs/references/protocol/ledger-data/ledger-entry-types/ledgerhashes + type: 301 negativeunl.html: - to: /docs/references/protocol/ledger-data/ledger-entry-types/negativeunl - type: 301 + to: /docs/references/protocol/ledger-data/ledger-entry-types/negativeunl + type: 301 nftokenoffer.html: - to: /docs/references/protocol/ledger-data/ledger-entry-types/nftokenoffer - type: 301 + to: /docs/references/protocol/ledger-data/ledger-entry-types/nftokenoffer + type: 301 nftokenpage.html: - to: /docs/references/protocol/ledger-data/ledger-entry-types/nftokenpage - type: 301 + to: /docs/references/protocol/ledger-data/ledger-entry-types/nftokenpage + type: 301 offer.html: - to: /docs/references/protocol/ledger-data/ledger-entry-types/offer - type: 301 + to: /docs/references/protocol/ledger-data/ledger-entry-types/offer + type: 301 paychannel.html: - to: /docs/references/protocol/ledger-data/ledger-entry-types/paychannel - type: 301 + to: /docs/references/protocol/ledger-data/ledger-entry-types/paychannel + type: 301 ripplestate.html: - to: /docs/references/protocol/ledger-data/ledger-entry-types/ripplestate - type: 301 + to: /docs/references/protocol/ledger-data/ledger-entry-types/ripplestate + type: 301 signerlist.html: - to: /docs/references/protocol/ledger-data/ledger-entry-types/signerlist - type: 301 + to: /docs/references/protocol/ledger-data/ledger-entry-types/signerlist + type: 301 ticket.html: - to: /docs/references/protocol/ledger-data/ledger-entry-types/ticket - type: 301 + to: /docs/references/protocol/ledger-data/ledger-entry-types/ticket + type: 301 xchainownedclaimid.html: - to: /docs/references/protocol/ledger-data/ledger-entry-types/xchainownedclaimid - type: 301 + to: /docs/references/protocol/ledger-data/ledger-entry-types/xchainownedclaimid + type: 301 xchainownedcreateaccountclaimid.html: - to: /docs/references/protocol/ledger-data/ledger-entry-types/xchainownedcreateaccountclaimid - type: 301 + to: /docs/references/protocol/ledger-data/ledger-entry-types/xchainownedcreateaccountclaimid + type: 301 transaction-formats.html: - to: /docs/references/protocol/transactions/ - type: 301 + to: /docs/references/protocol/transactions/ + type: 301 transaction-common-fields.html: - to: /docs/references/protocol/transactions/common-fields - type: 301 + to: /docs/references/protocol/transactions/common-fields + type: 301 transaction-types.html: - to: /docs/references/protocol/transactions/types/ - type: 301 + to: /docs/references/protocol/transactions/types/ + type: 301 accountset.html: - to: /docs/references/protocol/transactions/types/accountset - type: 301 + to: /docs/references/protocol/transactions/types/accountset + type: 301 accountdelete.html: - to: /docs/references/protocol/transactions/types/accountdelete - type: 301 + to: /docs/references/protocol/transactions/types/accountdelete + type: 301 ammbid.html: - to: /docs/references/protocol/transactions/types/ammbid - type: 301 + to: /docs/references/protocol/transactions/types/ammbid + type: 301 ammcreate.html: - to: /docs/references/protocol/transactions/types/ammcreate - type: 301 + to: /docs/references/protocol/transactions/types/ammcreate + type: 301 ammdelete.html: - to: /docs/references/protocol/transactions/types/ammdelete - type: 301 + to: /docs/references/protocol/transactions/types/ammdelete + type: 301 ammdeposit.html: - to: /docs/references/protocol/transactions/types/ammdeposit - type: 301 + to: /docs/references/protocol/transactions/types/ammdeposit + type: 301 ammvote.html: - to: /docs/references/protocol/transactions/types/ammvote - type: 301 + to: /docs/references/protocol/transactions/types/ammvote + type: 301 ammwithdraw.html: - to: /docs/references/protocol/transactions/types/ammwithdraw - type: 301 + to: /docs/references/protocol/transactions/types/ammwithdraw + type: 301 checkcancel.html: - to: /docs/references/protocol/transactions/types/checkcancel - type: 301 + to: /docs/references/protocol/transactions/types/checkcancel + type: 301 checkcash.html: - to: /docs/references/protocol/transactions/types/checkcash - type: 301 + to: /docs/references/protocol/transactions/types/checkcash + type: 301 checkcreate.html: - to: /docs/references/protocol/transactions/types/checkcreate - type: 301 + to: /docs/references/protocol/transactions/types/checkcreate + type: 301 clawback.html: - to: /docs/references/protocol/transactions/types/clawback - type: 301 + to: /docs/references/protocol/transactions/types/clawback + type: 301 depositpreauth.html: - to: /docs/references/protocol/transactions/types/depositpreauth - type: 301 + to: /docs/references/protocol/transactions/types/depositpreauth + type: 301 diddelete.html: - to: /docs/references/protocol/transactions/types/diddelete - type: 301 + to: /docs/references/protocol/transactions/types/diddelete + type: 301 didset.html: - to: /docs/references/protocol/transactions/types/didset - type: 301 + to: /docs/references/protocol/transactions/types/didset + type: 301 escrowcancel.html: - to: /docs/references/protocol/transactions/types/escrowcancel - type: 301 + to: /docs/references/protocol/transactions/types/escrowcancel + type: 301 escrowcreate.html: - to: /docs/references/protocol/transactions/types/escrowcreate - type: 301 + to: /docs/references/protocol/transactions/types/escrowcreate + type: 301 escrowfinish.html: - to: /docs/references/protocol/transactions/types/escrowfinish - type: 301 + to: /docs/references/protocol/transactions/types/escrowfinish + type: 301 nftokenacceptoffer.html: - to: /docs/references/protocol/transactions/types/nftokenacceptoffer - type: 301 + to: /docs/references/protocol/transactions/types/nftokenacceptoffer + type: 301 nftokenburn.html: - to: /docs/references/protocol/transactions/types/nftokenburn - type: 301 + to: /docs/references/protocol/transactions/types/nftokenburn + type: 301 nftokencanceloffer.html: - to: /docs/references/protocol/transactions/types/nftokencanceloffer - type: 301 + to: /docs/references/protocol/transactions/types/nftokencanceloffer + type: 301 nftokencreateoffer.html: - to: /docs/references/protocol/transactions/types/nftokencreateoffer - type: 301 + to: /docs/references/protocol/transactions/types/nftokencreateoffer + type: 301 nftokenmint.html: - to: /docs/references/protocol/transactions/types/nftokenmint - type: 301 + to: /docs/references/protocol/transactions/types/nftokenmint + type: 301 offercancel.html: - to: /docs/references/protocol/transactions/types/offercancel - type: 301 + to: /docs/references/protocol/transactions/types/offercancel + type: 301 offercreate.html: - to: /docs/references/protocol/transactions/types/offercreate - type: 301 + to: /docs/references/protocol/transactions/types/offercreate + type: 301 payment.html: - to: /docs/references/protocol/transactions/types/payment - type: 301 + to: /docs/references/protocol/transactions/types/payment + type: 301 paymentchannelclaim.html: - to: /docs/references/protocol/transactions/types/paymentchannelclaim - type: 301 + to: /docs/references/protocol/transactions/types/paymentchannelclaim + type: 301 paymentchannelcreate.html: - to: /docs/references/protocol/transactions/types/paymentchannelcreate - type: 301 + to: /docs/references/protocol/transactions/types/paymentchannelcreate + type: 301 paymentchannelfund.html: - to: /docs/references/protocol/transactions/types/paymentchannelfund - type: 301 + to: /docs/references/protocol/transactions/types/paymentchannelfund + type: 301 setregularkey.html: - to: /docs/references/protocol/transactions/types/setregularkey - type: 301 + to: /docs/references/protocol/transactions/types/setregularkey + type: 301 signerlistset.html: - to: /docs/references/protocol/transactions/types/signerlistset - type: 301 + to: /docs/references/protocol/transactions/types/signerlistset + type: 301 ticketcreate.html: - to: /docs/references/protocol/transactions/types/ticketcreate - type: 301 + to: /docs/references/protocol/transactions/types/ticketcreate + type: 301 trustset.html: - to: /docs/references/protocol/transactions/types/trustset - type: 301 + to: /docs/references/protocol/transactions/types/trustset + type: 301 xchainaccountcreatecommit.html: - to: /docs/references/protocol/transactions/types/xchainaccountcreatecommit - type: 301 + to: /docs/references/protocol/transactions/types/xchainaccountcreatecommit + type: 301 xchainaddaccountcreateattestation.html: - to: /docs/references/protocol/transactions/types/xchainaddaccountcreateattestation - type: 301 + to: /docs/references/protocol/transactions/types/xchainaddaccountcreateattestation + type: 301 xchainaddclaimattestation.html: - to: /docs/references/protocol/transactions/types/xchainaddclaimattestation - type: 301 + to: /docs/references/protocol/transactions/types/xchainaddclaimattestation + type: 301 xchainclaim.html: - to: /docs/references/protocol/transactions/types/xchainclaim - type: 301 + to: /docs/references/protocol/transactions/types/xchainclaim + type: 301 xchaincommit.html: - to: /docs/references/protocol/transactions/types/xchaincommit - type: 301 + to: /docs/references/protocol/transactions/types/xchaincommit + type: 301 xchaincreatebridge.html: - to: /docs/references/protocol/transactions/types/xchaincreatebridge - type: 301 + to: /docs/references/protocol/transactions/types/xchaincreatebridge + type: 301 xchaincreateclaimid.html: - to: /docs/references/protocol/transactions/types/xchaincreateclaimid - type: 301 + to: /docs/references/protocol/transactions/types/xchaincreateclaimid + type: 301 xchainmodifybridge.html: - to: /docs/references/protocol/transactions/types/xchainmodifybridge - type: 301 + to: /docs/references/protocol/transactions/types/xchainmodifybridge + type: 301 pseudo-transaction-types.html: - to: /docs/references/protocol/transactions/pseudo-transaction-types/pseudo-transaction-types - type: 301 + to: /docs/references/protocol/transactions/pseudo-transaction-types/pseudo-transaction-types + type: 301 enableamendment.html: - to: /docs/references/protocol/transactions/pseudo-transaction-types/enableamendment - type: 301 + to: /docs/references/protocol/transactions/pseudo-transaction-types/enableamendment + type: 301 setfee.html: - to: /docs/references/protocol/transactions/pseudo-transaction-types/setfee - type: 301 + to: /docs/references/protocol/transactions/pseudo-transaction-types/setfee + type: 301 unlmodify.html: - to: /docs/references/protocol/transactions/pseudo-transaction-types/unlmodify - type: 301 + to: /docs/references/protocol/transactions/pseudo-transaction-types/unlmodify + type: 301 transaction-results.html: - to: /docs/references/protocol/transactions/transaction-results/transaction-results - type: 301 + to: /docs/references/protocol/transactions/transaction-results/transaction-results + type: 301 tec-codes.html: - to: /docs/references/protocol/transactions/transaction-results/tec-codes - type: 301 + to: /docs/references/protocol/transactions/transaction-results/tec-codes + type: 301 tef-codes.html: - to: /docs/references/protocol/transactions/transaction-results/tef-codes - type: 301 + to: /docs/references/protocol/transactions/transaction-results/tef-codes + type: 301 tel-codes.html: - to: /docs/references/protocol/transactions/transaction-results/tel-codes - type: 301 + to: /docs/references/protocol/transactions/transaction-results/tel-codes + type: 301 tem-codes.html: - to: /docs/references/protocol/transactions/transaction-results/tem-codes - type: 301 + to: /docs/references/protocol/transactions/transaction-results/tem-codes + type: 301 ter-codes.html: - to: /docs/references/protocol/transactions/transaction-results/ter-codes - type: 301 + to: /docs/references/protocol/transactions/transaction-results/ter-codes + type: 301 tes-success.html: - to: /docs/references/protocol/transactions/transaction-results/tes-success - type: 301 + to: /docs/references/protocol/transactions/transaction-results/tes-success + type: 301 transaction-metadata.html: - to: /docs/references/protocol/transactions/metadata - type: 301 + to: /docs/references/protocol/transactions/metadata + type: 301 modifying-the-ledger.html: - to: /docs/references/protocol/transactions/ - type: 301 + to: /docs/references/protocol/transactions/ + type: 301 serialization.html: - to: /docs/references/protocol/binary-format - type: 301 + to: /docs/references/protocol/binary-format + type: 301 client-libraries.html: - to: /docs/references/client-libraries - type: 301 + to: /docs/references/client-libraries + type: 301 rippleapi-reference.html: - to: https://js.xrpl.org/ - type: 301 + to: https://js.xrpl.org/ + type: 301 xrpljs2-migration-guide.html: - to: /docs/references/xrpljs2-migration-guide - type: 301 + to: /docs/references/xrpljs2-migration-guide + type: 301 http-websocket-apis.html: - to: /docs/references/http-websocket-apis/ - type: 301 + to: /docs/references/http-websocket-apis/ + type: 301 rippled-api.html: - to: /docs/references/http-websocket-apis/ - type: 301 + to: /docs/references/http-websocket-apis/ + type: 301 api-conventions.html: - to: /docs/references/http-websocket-apis/api-conventions/ - type: 301 + to: /docs/references/http-websocket-apis/api-conventions/ + type: 301 request-formatting.html: - to: /docs/references/http-websocket-apis/api-conventions/request-formatting - type: 301 + to: /docs/references/http-websocket-apis/api-conventions/request-formatting + type: 301 response-formatting.html: - to: /docs/references/http-websocket-apis/api-conventions/response-formatting - type: 301 + to: /docs/references/http-websocket-apis/api-conventions/response-formatting + type: 301 error-formatting.html: - to: /docs/references/http-websocket-apis/api-conventions/error-formatting - type: 301 + to: /docs/references/http-websocket-apis/api-conventions/error-formatting + type: 301 markers-and-pagination.html: - to: /docs/references/http-websocket-apis/api-conventions/markers-and-pagination - type: 301 + to: /docs/references/http-websocket-apis/api-conventions/markers-and-pagination + type: 301 rate-limiting.html: - to: /docs/references/http-websocket-apis/api-conventions/rate-limiting - type: 301 + to: /docs/references/http-websocket-apis/api-conventions/rate-limiting + type: 301 rippled-server-states.html: - to: /docs/references/http-websocket-apis/api-conventions/rippled-server-states - type: 301 + to: /docs/references/http-websocket-apis/api-conventions/rippled-server-states + type: 301 ctid.html: - to: /docs/references/http-websocket-apis/api-conventions/ctid - type: 301 + to: /docs/references/http-websocket-apis/api-conventions/ctid + type: 301 public-api-methods.html: - to: /docs/references/http-websocket-apis/public-api-methods/ - type: 301 + to: /docs/references/http-websocket-apis/public-api-methods/ + type: 301 public-rippled-methods.html: - to: /docs/references/http-websocket-apis/public-api-methods/ - type: 301 + to: /docs/references/http-websocket-apis/public-api-methods/ + type: 301 account-methods.html: - to: /docs/references/http-websocket-apis/public-api-methods/account-methods/ - type: 301 + to: /docs/references/http-websocket-apis/public-api-methods/account-methods/ + type: 301 account_channels.html: - to: /docs/references/http-websocket-apis/public-api-methods/account-methods/account_channels - type: 301 + to: /docs/references/http-websocket-apis/public-api-methods/account-methods/account_channels + type: 301 account_currencies.html: - to: /docs/references/http-websocket-apis/public-api-methods/account-methods/account_currencies - type: 301 + to: /docs/references/http-websocket-apis/public-api-methods/account-methods/account_currencies + type: 301 account_info.html: - to: /docs/references/http-websocket-apis/public-api-methods/account-methods/account_info - type: 301 + to: /docs/references/http-websocket-apis/public-api-methods/account-methods/account_info + type: 301 account_lines.html: - to: /docs/references/http-websocket-apis/public-api-methods/account-methods/account_lines - type: 301 + to: /docs/references/http-websocket-apis/public-api-methods/account-methods/account_lines + type: 301 account_nfts.html: - to: /docs/references/http-websocket-apis/public-api-methods/account-methods/account_nfts - type: 301 + to: /docs/references/http-websocket-apis/public-api-methods/account-methods/account_nfts + type: 301 account_objects.html: - to: /docs/references/http-websocket-apis/public-api-methods/account-methods/account_objects - type: 301 + to: /docs/references/http-websocket-apis/public-api-methods/account-methods/account_objects + type: 301 account_offers.html: - to: /docs/references/http-websocket-apis/public-api-methods/account-methods/account_offers - type: 301 + to: /docs/references/http-websocket-apis/public-api-methods/account-methods/account_offers + type: 301 account_tx.html: - to: /docs/references/http-websocket-apis/public-api-methods/account-methods/account_tx - type: 301 + to: /docs/references/http-websocket-apis/public-api-methods/account-methods/account_tx + type: 301 gateway_balances.html: - to: /docs/references/http-websocket-apis/public-api-methods/account-methods/gateway_balances - type: 301 + to: /docs/references/http-websocket-apis/public-api-methods/account-methods/gateway_balances + type: 301 noripple_check.html: - to: /docs/references/http-websocket-apis/public-api-methods/account-methods/noripple_check - type: 301 + to: /docs/references/http-websocket-apis/public-api-methods/account-methods/noripple_check + type: 301 ledger-methods.html: - to: /docs/references/http-websocket-apis/public-api-methods/ledger-methods/ - type: 301 + to: /docs/references/http-websocket-apis/public-api-methods/ledger-methods/ + type: 301 ledger.html: - to: /docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger - type: 301 + to: /docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger + type: 301 ledger_closed.html: - to: /docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_closed - type: 301 + to: /docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_closed + type: 301 ledger_current.html: - to: /docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_current - type: 301 + to: /docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_current + type: 301 ledger_data.html: - to: /docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_data - type: 301 + to: /docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_data + type: 301 ledger_entry.html: - to: /docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_entry - type: 301 + to: /docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_entry + type: 301 transaction-methods.html: - to: /docs/references/http-websocket-apis/public-api-methods/transaction-methods/ - type: 301 + to: /docs/references/http-websocket-apis/public-api-methods/transaction-methods/ + type: 301 submit.html: - to: /docs/references/http-websocket-apis/public-api-methods/transaction-methods/submit - type: 301 + to: /docs/references/http-websocket-apis/public-api-methods/transaction-methods/submit + type: 301 submit_multisigned.html: - to: /docs/references/http-websocket-apis/public-api-methods/transaction-methods/submit_multisigned - type: 301 + to: /docs/references/http-websocket-apis/public-api-methods/transaction-methods/submit_multisigned + type: 301 transaction_entry.html: - to: /docs/references/http-websocket-apis/public-api-methods/transaction-methods/transaction_entry - type: 301 + to: /docs/references/http-websocket-apis/public-api-methods/transaction-methods/transaction_entry + type: 301 tx.html: - to: /docs/references/http-websocket-apis/public-api-methods/transaction-methods/tx - type: 301 + to: /docs/references/http-websocket-apis/public-api-methods/transaction-methods/tx + type: 301 tx_history.html: - to: /docs/references/http-websocket-apis/public-api-methods/transaction-methods/tx_history - type: 301 + to: /docs/references/http-websocket-apis/public-api-methods/transaction-methods/tx_history + type: 301 path-and-order-book-methods.html: - to: /docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/ - type: 301 + to: /docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/ + type: 301 amm_info.html: - to: /docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/amm_info - type: 301 + to: /docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/amm_info + type: 301 book_offers.html: - to: /docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/book_offers - type: 301 + to: /docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/book_offers + type: 301 deposit_authorized.html: - to: /docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/deposit_authorized - type: 301 + to: /docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/deposit_authorized + type: 301 nft_buy_offers.html: - to: /docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_buy_offers - type: 301 + to: /docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_buy_offers + type: 301 nft_sell_offers.html: - to: /docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_sell_offers - type: 301 + to: /docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_sell_offers + type: 301 path_find.html: - to: /docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/path_find - type: 301 + to: /docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/path_find + type: 301 ripple_path_find.html: - to: /docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/ripple_path_find - type: 301 + to: /docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/ripple_path_find + type: 301 payment-channel-methods.html: - to: /docs/references/http-websocket-apis/public-api-methods/payment-channel-methods/ - type: 301 + to: /docs/references/http-websocket-apis/public-api-methods/payment-channel-methods/ + type: 301 channel_authorize.html: - to: /docs/references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_authorize - type: 301 + to: /docs/references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_authorize + type: 301 channel_verify.html: - to: /docs/references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_verify - type: 301 + to: /docs/references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_verify + type: 301 subscription-methods.html: - to: /docs/references/http-websocket-apis/public-api-methods/subscription-methods/ - type: 301 + to: /docs/references/http-websocket-apis/public-api-methods/subscription-methods/ + type: 301 subscribe.html: - to: /docs/references/http-websocket-apis/public-api-methods/subscription-methods/subscribe - type: 301 + to: /docs/references/http-websocket-apis/public-api-methods/subscription-methods/subscribe + type: 301 unsubscribe.html: - to: /docs/references/http-websocket-apis/public-api-methods/subscription-methods/unsubscribe - type: 301 + to: /docs/references/http-websocket-apis/public-api-methods/subscription-methods/unsubscribe + type: 301 server-info-methods.html: - to: /docs/references/http-websocket-apis/public-api-methods/server-info-methods/ - type: 301 + to: /docs/references/http-websocket-apis/public-api-methods/server-info-methods/ + type: 301 fee.html: - to: /docs/references/http-websocket-apis/public-api-methods/server-info-methods/fee - type: 301 + to: /docs/references/http-websocket-apis/public-api-methods/server-info-methods/fee + type: 301 manifest.html: - to: /docs/references/http-websocket-apis/public-api-methods/server-info-methods/manifest - type: 301 + to: /docs/references/http-websocket-apis/public-api-methods/server-info-methods/manifest + type: 301 server_definitions.html: - to: /docs/references/http-websocket-apis/public-api-methods/server-info-methods/server_definitions - type: 301 + to: /docs/references/http-websocket-apis/public-api-methods/server-info-methods/server_definitions + type: 301 server_info.html: - to: /docs/references/http-websocket-apis/public-api-methods/server-info-methods/server_info - type: 301 + to: /docs/references/http-websocket-apis/public-api-methods/server-info-methods/server_info + type: 301 server_state.html: - to: /docs/references/http-websocket-apis/public-api-methods/server-info-methods/server_state - type: 301 + to: /docs/references/http-websocket-apis/public-api-methods/server-info-methods/server_state + type: 301 clio-methods.html: - to: /docs/references/http-websocket-apis/public-api-methods/clio-server/ - type: 301 + to: /docs/references/http-websocket-apis/public-api-methods/clio-server/ + type: 301 server_info-clio.html: - to: /docs/references/http-websocket-apis/public-api-methods/clio-methods/server_info-clio - type: 301 + to: /docs/references/http-websocket-apis/public-api-methods/clio-methods/server_info-clio + type: 301 ledger-clio.html: - to: /docs/references/http-websocket-apis/public-api-methods/clio-methods/ledger-clio - type: 301 + to: /docs/references/http-websocket-apis/public-api-methods/clio-methods/ledger-clio + type: 301 nft_history.html: - to: /docs/references/http-websocket-apis/public-api-methods/clio-methods/nft_history - type: 301 + to: /docs/references/http-websocket-apis/public-api-methods/clio-methods/nft_history + type: 301 nft_info.html: - to: /docs/references/http-websocket-apis/public-api-methods/clio-methods/nft_info - type: 301 + to: /docs/references/http-websocket-apis/public-api-methods/clio-methods/nft_info + type: 301 utility-methods.html: - to: /docs/references/http-websocket-apis/public-api-methods/utility-methods/ - type: 301 + to: /docs/references/http-websocket-apis/public-api-methods/utility-methods/ + type: 301 json.html: - to: /docs/references/http-websocket-apis/public-api-methods/utility-methods/json - type: 301 + to: /docs/references/http-websocket-apis/public-api-methods/utility-methods/json + type: 301 ping.html: - to: /docs/references/http-websocket-apis/public-api-methods/utility-methods/ping - type: 301 + to: /docs/references/http-websocket-apis/public-api-methods/utility-methods/ping + type: 301 random.html: - to: /docs/references/http-websocket-apis/public-api-methods/utility-methods/random - type: 301 + to: /docs/references/http-websocket-apis/public-api-methods/utility-methods/random + type: 301 admin-api-methods.html: - to: /docs/references/http-websocket-apis/admin-api-methods/ - type: 301 + to: /docs/references/http-websocket-apis/admin-api-methods/ + type: 301 admin-rippled-methods.html: - to: /docs/references/http-websocket-apis/admin-api-methods/ - type: 301 + to: /docs/references/http-websocket-apis/admin-api-methods/ + type: 301 key-generation-methods.html: - to: /docs/references/http-websocket-apis/admin-api-methods/key-generation-methods/ - type: 301 + to: /docs/references/http-websocket-apis/admin-api-methods/key-generation-methods/ + type: 301 validation_create.html: - to: /docs/references/http-websocket-apis/admin-api-methods/key-generation-methods/validation_create - type: 301 + to: /docs/references/http-websocket-apis/admin-api-methods/key-generation-methods/validation_create + type: 301 wallet_propose.html: - to: /docs/references/http-websocket-apis/admin-api-methods/key-generation-methods/wallet_propose - type: 301 + to: /docs/references/http-websocket-apis/admin-api-methods/key-generation-methods/wallet_propose + type: 301 logging-and-data-management-methods.html: - to: /docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ - type: 301 + to: /docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ + type: 301 can_delete.html: - to: /docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/can_delete - type: 301 + to: /docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/can_delete + type: 301 crawl_shards.html: - to: /docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ - type: 301 + to: /docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ + type: 301 download_shard.html: - to: /docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ - type: 301 + to: /docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ + type: 301 ledger_cleaner.html: - to: /docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ledger_cleaner - type: 301 + to: /docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ledger_cleaner + type: 301 ledger_request.html: - to: /docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ledger_request - type: 301 + to: /docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ledger_request + type: 301 log_level.html: - to: /docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/log_level - type: 301 + to: /docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/log_level + type: 301 logrotate.html: - to: /docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/logrotate - type: 301 + to: /docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/logrotate + type: 301 node_to_shard.html: - to: /docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ - type: 301 + to: /docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ + type: 301 server-control-methods.html: - to: /docs/references/http-websocket-apis/admin-api-methods/server-control-methods/ - type: 301 + to: /docs/references/http-websocket-apis/admin-api-methods/server-control-methods/ + type: 301 ledger_accept.html: - to: /docs/references/http-websocket-apis/admin-api-methods/server-control-methods/ledger_accept - type: 301 + to: /docs/references/http-websocket-apis/admin-api-methods/server-control-methods/ledger_accept + type: 301 stop.html: - to: /docs/references/http-websocket-apis/admin-api-methods/server-control-methods/stop - type: 301 + to: /docs/references/http-websocket-apis/admin-api-methods/server-control-methods/stop + type: 301 validation_seed.html: - to: /docs/references/http-websocket-apis/public-api-methods/ - type: 301 + to: /docs/references/http-websocket-apis/public-api-methods/ + type: 301 signing-methods.html: - to: /docs/references/http-websocket-apis/admin-api-methods/signing-methods/ - type: 301 + to: /docs/references/http-websocket-apis/admin-api-methods/signing-methods/ + type: 301 sign.html: - to: /docs/references/http-websocket-apis/admin-api-methods/signing-methods/sign - type: 301 + to: /docs/references/http-websocket-apis/admin-api-methods/signing-methods/sign + type: 301 sign_for.html: - to: /docs/references/http-websocket-apis/admin-api-methods/signing-methods/sign_for - type: 301 + to: /docs/references/http-websocket-apis/admin-api-methods/signing-methods/sign_for + type: 301 peer-management-methods.html: - to: /docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/ - type: 301 + to: /docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/ + type: 301 connect.html: - to: /docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/connect - type: 301 + to: /docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/connect + type: 301 peer_reservations_add.html: - to: /docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_add - type: 301 + to: /docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_add + type: 301 peer_reservations_del.html: - to: /docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_del - type: 301 + to: /docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_del + type: 301 peer_reservations_list.html: - to: /docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_list - type: 301 + to: /docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_list + type: 301 peers.html: - to: /docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peers - type: 301 + to: /docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peers + type: 301 status-and-debugging-methods.html: - to: /docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/ - type: 301 + to: /docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/ + type: 301 consensus_info.html: - to: /docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/consensus_info - type: 301 + to: /docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/consensus_info + type: 301 feature.html: - to: /docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/feature - type: 301 + to: /docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/feature + type: 301 fetch_info.html: - to: /docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/fetch_info - type: 301 + to: /docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/fetch_info + type: 301 get_counts.html: - to: /docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/get_counts - type: 301 + to: /docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/get_counts + type: 301 print.html: - to: /docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/print - type: 301 + to: /docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/print + type: 301 validator_info.html: - to: /docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_info - type: 301 + to: /docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_info + type: 301 validator_list_sites.html: - to: /docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_list_sites - type: 301 + to: /docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_list_sites + type: 301 validators.html: - to: /docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validators - type: 301 + to: /docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validators + type: 301 peer-port-methods.html: - to: /docs/references/http-websocket-apis/peer-port-methods/ - type: 301 + to: /docs/references/http-websocket-apis/peer-port-methods/ + type: 301 health-check.html: - to: /docs/references/http-websocket-apis/peer-port-methods/health-check - type: 301 + to: /docs/references/http-websocket-apis/peer-port-methods/health-check + type: 301 peer-crawler.html: - to: /docs/references/http-websocket-apis/peer-port-methods/peer-crawler - type: 301 + to: /docs/references/http-websocket-apis/peer-port-methods/peer-crawler + type: 301 validator-list.html: - to: /docs/references/http-websocket-apis/peer-port-methods/validator-list - type: 301 + to: /docs/references/http-websocket-apis/peer-port-methods/validator-list + type: 301 xrp-api.html: - to: https://xpring-eng.github.io/xrp-api/ - type: 301 + to: https://xpring-eng.github.io/xrp-api/ + type: 301 data-api.html: - to: /docs/references/data-api - type: 301 + to: /docs/references/data-api + type: 301 xrp-ledger-toml.html: - to: /docs/references/xrp-ledger-toml - type: 301 + to: /docs/references/xrp-ledger-toml + type: 301 infrastructure.html: - to: /docs/infrastructure/ - type: 301 + to: /docs/infrastructure/ + type: 301 commandline-usage.html: - to: /docs/infrastructure/commandline-usage - type: 301 + to: /docs/infrastructure/commandline-usage + type: 301 install-rippled.html: - to: /docs/infrastructure/installation/ - type: 301 + to: /docs/infrastructure/installation/ + type: 301 system-requirements.html: - to: /docs/infrastructure/installation/system-requirements - type: 301 + to: /docs/infrastructure/installation/system-requirements + type: 301 install-rippled-on-centos-rhel-with-yum.html: - to: /docs/infrastructure/installation/install-rippled-on-rhel - type: 301 + to: /docs/infrastructure/installation/install-rippled-on-rhel + type: 301 install-rippled-on-ubuntu.html: - to: /docs/infrastructure/installation/install-rippled-on-ubuntu - type: 301 + to: /docs/infrastructure/installation/install-rippled-on-ubuntu + type: 301 install-clio-on-ubuntu.html: - to: /docs/infrastructure/installation/install-clio-on-ubuntu - type: 301 + to: /docs/infrastructure/installation/install-clio-on-ubuntu + type: 301 update-rippled-automatically-on-linux.html: - to: /docs/infrastructure/installation/update-rippled-automatically-on-linux - type: 301 + to: /docs/infrastructure/installation/update-rippled-automatically-on-linux + type: 301 update-rippled-manually-on-centos-rhel.html: - to: /docs/infrastructure/installation/update-rippled-manually-on-rhel - type: 301 + to: /docs/infrastructure/installation/update-rippled-manually-on-rhel + type: 301 update-rippled-manually-on-ubuntu.html: - to: /docs/infrastructure/installation/update-rippled-manually-on-ubuntu - type: 301 + to: /docs/infrastructure/installation/update-rippled-manually-on-ubuntu + type: 301 build-on-linux-mac-windows.html: - to: /docs/infrastructure/installation/build-on-linux-mac-windows - type: 301 + to: /docs/infrastructure/installation/build-on-linux-mac-windows + type: 301 build-run-rippled-in-reporting-mode.html: - to: /docs/infrastructure/installation/build-run-rippled-in-reporting-mode - type: 301 + to: /docs/infrastructure/installation/build-run-rippled-in-reporting-mode + type: 301 capacity-planning.html: - to: /docs/infrastructure/installation/capacity-planning - type: 301 + to: /docs/infrastructure/installation/capacity-planning + type: 301 rippled-1-3-migration-instructions.html: - to: /docs/infrastructure/installation/rippled-1-3-migration-instructions - type: 301 + to: /docs/infrastructure/installation/rippled-1-3-migration-instructions + type: 301 configure-rippled.html: - to: /docs/infrastructure/configuration/ - type: 301 + to: /docs/infrastructure/configuration/ + type: 301 server-modes.html: - to: /docs/infrastructure/configuration/server-modes/ - type: 301 + to: /docs/infrastructure/configuration/server-modes/ + type: 301 run-rippled-as-a-validator.html: - to: /docs/infrastructure/configuration/server-modes/run-rippled-as-a-validator - type: 301 + to: /docs/infrastructure/configuration/server-modes/run-rippled-as-a-validator + type: 301 run-rippled-as-a-stock-server.html: - to: /docs/infrastructure/configuration/server-modes/run-rippled-as-a-stock-server - type: 301 + to: /docs/infrastructure/configuration/server-modes/run-rippled-as-a-stock-server + type: 301 data-retention.html: - to: /docs/infrastructure/configuration/data-retention/ - type: 301 + to: /docs/infrastructure/configuration/data-retention/ + type: 301 configure-full-history.html: - to: /docs/infrastructure/configuration/data-retention/configure-full-history - type: 301 + to: /docs/infrastructure/configuration/data-retention/configure-full-history + type: 301 online-deletion.html: - to: /docs/infrastructure/configuration/data-retention/online-deletion - type: 301 + to: /docs/infrastructure/configuration/data-retention/online-deletion + type: 301 configure-online-deletion.html: - to: /docs/infrastructure/configuration/data-retention/configure-online-deletion - type: 301 + to: /docs/infrastructure/configuration/data-retention/configure-online-deletion + type: 301 configure-advisory-deletion.html: - to: /docs/infrastructure/configuration/data-retention/configure-advisory-deletion - type: 301 + to: /docs/infrastructure/configuration/data-retention/configure-advisory-deletion + type: 301 history-sharding.html: - to: /docs/infrastructure/configuration/data-retention/history-sharding - type: 301 + to: /docs/infrastructure/configuration/data-retention/history-sharding + type: 301 configure-history-sharding.html: - to: /docs/infrastructure/configuration/data-retention/configure-history-sharding - type: 301 + to: /docs/infrastructure/configuration/data-retention/configure-history-sharding + type: 301 configure-peering.html: - to: /docs/infrastructure/configuration/peering/ - type: 301 + to: /docs/infrastructure/configuration/peering/ + type: 301 cluster-rippled-servers.html: - to: /docs/infrastructure/configuration/peering/cluster-rippled-servers - type: 301 + to: /docs/infrastructure/configuration/peering/cluster-rippled-servers + type: 301 configure-a-private-server.html: - to: /docs/infrastructure/configuration/peering/configure-a-private-server - type: 301 + to: /docs/infrastructure/configuration/peering/configure-a-private-server + type: 301 configure-the-peer-crawler.html: - to: /docs/infrastructure/configuration/peering/configure-the-peer-crawler - type: 301 + to: /docs/infrastructure/configuration/peering/configure-the-peer-crawler + type: 301 enable-link-compression.html: - to: /docs/infrastructure/configuration/peering/enable-link-compression - type: 301 + to: /docs/infrastructure/configuration/peering/enable-link-compression + type: 301 forward-ports-for-peering.html: - to: /docs/infrastructure/configuration/peering/forward-ports-for-peering - type: 301 + to: /docs/infrastructure/configuration/peering/forward-ports-for-peering + type: 301 manually-connect-to-a-specific-peer.html: - to: /docs/infrastructure/configuration/peering/manually-connect-to-a-specific-peer - type: 301 + to: /docs/infrastructure/configuration/peering/manually-connect-to-a-specific-peer + type: 301 set-max-number-of-peers.html: - to: /docs/infrastructure/configuration/peering/set-max-number-of-peers - type: 301 + to: /docs/infrastructure/configuration/peering/set-max-number-of-peers + type: 301 use-a-peer-reservation.html: - to: /docs/infrastructure/configuration/peering/use-a-peer-reservation - type: 301 + to: /docs/infrastructure/configuration/peering/use-a-peer-reservation + type: 301 configure-amendment-voting.html: - to: /docs/infrastructure/configuration/configure-amendment-voting - type: 301 + to: /docs/infrastructure/configuration/configure-amendment-voting + type: 301 configure-statsd.html: - to: /docs/infrastructure/configuration/configure-statsd - type: 301 + to: /docs/infrastructure/configuration/configure-statsd + type: 301 connect-your-rippled-to-the-xrp-test-net.html: - to: /docs/infrastructure/configuration/connect-your-rippled-to-the-xrp-test-net - type: 301 + to: /docs/infrastructure/configuration/connect-your-rippled-to-the-xrp-test-net + type: 301 configure-grpc.html: - to: /docs/infrastructure/configuration/configure-grpc - type: 301 + to: /docs/infrastructure/configuration/configure-grpc + type: 301 enable-public-signing.html: - to: /docs/infrastructure/configuration/enable-public-signing - type: 301 + to: /docs/infrastructure/configuration/enable-public-signing + type: 301 use-stand-alone-mode.html: - to: /docs/infrastructure/testing-and-auditing/ - type: 301 + to: /docs/infrastructure/testing-and-auditing/ + type: 301 start-a-new-genesis-ledger-in-stand-alone-mode.html: - to: /docs/infrastructure/testing-and-auditing/start-a-new-genesis-ledger-in-stand-alone-mode - type: 301 + to: /docs/infrastructure/testing-and-auditing/start-a-new-genesis-ledger-in-stand-alone-mode + type: 301 load-a-saved-ledger-in-stand-alone-mode.html: - to: /docs/infrastructure/testing-and-auditing/load-a-saved-ledger-in-stand-alone-mode - type: 301 + to: /docs/infrastructure/testing-and-auditing/load-a-saved-ledger-in-stand-alone-mode + type: 301 advance-the-ledger-in-stand-alone-mode.html: - to: /docs/infrastructure/testing-and-auditing/advance-the-ledger-in-stand-alone-mode - type: 301 + to: /docs/infrastructure/testing-and-auditing/advance-the-ledger-in-stand-alone-mode + type: 301 test-amendments.html: - to: /docs/infrastructure/testing-and-auditing/test-amendments - type: 301 + to: /docs/infrastructure/testing-and-auditing/test-amendments + type: 301 private-network-with-docker.html: - to: /docs/infrastructure/testing-and-auditing/run-private-network-with-docker - type: 301 + to: /docs/infrastructure/testing-and-auditing/run-private-network-with-docker + type: 301 troubleshoot-the-rippled-server.html: - to: /docs/infrastructure/troubleshooting/ - type: 301 + to: /docs/infrastructure/troubleshooting/ + type: 301 diagnosing-problems.html: - to: /docs/infrastructure/troubleshooting/diagnosing-problems - type: 301 + to: /docs/infrastructure/troubleshooting/diagnosing-problems + type: 301 health-check-interventions.html: - to: /docs/infrastructure/troubleshooting/health-check-interventions - type: 301 + to: /docs/infrastructure/troubleshooting/health-check-interventions + type: 301 understanding-log-messages.html: - to: /docs/infrastructure/troubleshooting/understanding-log-messages - type: 301 + to: /docs/infrastructure/troubleshooting/understanding-log-messages + type: 301 server-doesnt-sync.html: - to: /docs/infrastructure/troubleshooting/server-doesnt-sync - type: 301 + to: /docs/infrastructure/troubleshooting/server-doesnt-sync + type: 301 server-is-amendment-blocked.html: - to: /docs/infrastructure/troubleshooting/server-is-amendment-blocked - type: 301 + to: /docs/infrastructure/troubleshooting/server-is-amendment-blocked + type: 301 server-wont-start.html: - to: /docs/infrastructure/troubleshooting/server-wont-start - type: 301 + to: /docs/infrastructure/troubleshooting/server-wont-start + type: 301 fix-sqlite-tx-db-page-size-issue.html: - to: /docs/infrastructure/troubleshooting/fix-sqlite-tx-db-page-size-issue - type: 301 + to: /docs/infrastructure/troubleshooting/fix-sqlite-tx-db-page-size-issue + type: 301 manage-the-rippled-server.html: - to: /docs/infrastructure/installation/install-rippled-on-ubuntu - type: 301 + to: /docs/infrastructure/installation/install-rippled-on-ubuntu + type: 301 build-run-rippled-ubuntu.html: - to: /docs/infrastructure/installation/build-on-linux-mac-windows - type: 301 + to: /docs/infrastructure/installation/build-on-linux-mac-windows + type: 301 build-run-rippled-macos.html: - to: /docs/infrastructure/installation/build-on-linux-mac-windows - type: 301 + to: /docs/infrastructure/installation/build-on-linux-mac-windows + type: 301 update-rippled-automatically-on-centos-rhel.html: - to: /docs/infrastructure/installation/update-rippled-automatically-on-linux - type: 301 + to: /docs/infrastructure/installation/update-rippled-automatically-on-linux + type: 301 install-rippled-on-ubuntu-with-alien.html: - to: /docs/infrastructure/installation/install-rippled-on-ubuntu - type: 301 + to: /docs/infrastructure/installation/install-rippled-on-ubuntu + type: 301 run-a-rippled-validator.html: - to: /docs/infrastructure/configuration/server-modes/run-rippled-as-a-validator - type: 301 + to: /docs/infrastructure/configuration/server-modes/run-rippled-as-a-validator + type: 301 list-xrp-in-your-exchange.html: - to: /docs/use-cases/defi/list-xrp-as-an-exchange - type: 301 + to: /docs/use-cases/defi/list-xrp-as-an-exchange + type: 301 contribute-code-to-rippled.html: - to: /resources/contribute-code - type: 301 + to: /resources/contribute-code + type: 301 contribute-code-to-ripple-lib.html: - to: /resources/contribute-code - type: 301 + to: /resources/contribute-code + type: 301 contribute-code-flow.html: - to: /resources/contribute-code - type: 301 + to: /resources/contribute-code + type: 301 resources.html: - to: /resources/ - type: 301 + to: /resources/ + type: 301 known-amendments.html: - to: /resources/known-amendments - type: 301 + to: /resources/known-amendments + type: 301 contribute-code.html: - to: /resources/contribute-code - type: 301 + to: /resources/contribute-code + type: 301 create-custom-transactors.html: - to: /resources/contribute-code/create-custom-transactors - type: 301 + to: /resources/contribute-code/create-custom-transactors + type: 301 contribute-documentation.html: - to: /resources/contribute-documentation/ - type: 301 + to: /resources/contribute-documentation/ + type: 301 documentation-translations.html: - to: /resources/contribute-documentation/documentation-translations - type: 301 + to: /resources/contribute-documentation/documentation-translations + type: 301 creating-diagrams.html: - to: /resources/contribute-documentation/creating-diagrams - type: 301 + to: /resources/contribute-documentation/creating-diagrams + type: 301 tutorial-guidelines.html: - to: /resources/contribute-documentation/tutorial-guidelines - type: 301 + to: /resources/contribute-documentation/tutorial-guidelines + type: 301 tutorial-structure.html: - to: /resources/contribute-documentation/tutorial-guidelines - type: 301 + to: /resources/contribute-documentation/tutorial-guidelines + type: 301 report-a-scam.html: - to: /contributing/report-a-scam - type: 301 + to: /contributing/report-a-scam + type: 301 wallets.html: - to: /docs/introduction/crypto-wallets - type: 301 + to: /docs/introduction/crypto-wallets + type: 301 blog/2014: - to: /blog - type: 301 + to: /blog + type: 301 blog/2015: - to: /blog - type: 301 + to: /blog + type: 301 blog/2020: - to: /blog - type: 301 + to: /blog + type: 301 blog/2021: - to: /blog - type: 301 + to: /blog + type: 301 blog/2024/rippled-2.2.0.html: - to: /blog/2024/rippled-2.2.0 - type: 301 + to: /blog/2024/rippled-2.2.0 + type: 301 blog/2024/rippled-2.1.0.html: - to: /blog/2024/rippled-2.1.0 - type: 301 + to: /blog/2024/rippled-2.1.0 + type: 301 blog/2024/clio-2.1.0.html: - to: /blog/2024/clio-2.1.0 - type: 301 + to: /blog/2024/clio-2.1.0 + type: 301 blog/2024/rippled-2.0.1.html: - to: /blog/2024/rippled-2.0.1 - type: 301 + to: /blog/2024/rippled-2.0.1 + type: 301 blog/2024/web3auth.html: - to: /blog/2024/web3auth - type: 301 + to: /blog/2024/web3auth + type: 301 blog/2024/rippled-2.0.0.html: - to: /blog/2024/rippled-2.0.0 - type: 301 + to: /blog/2024/rippled-2.0.0 + type: 301 blog/2023/decommissioning-amm-devnet.html: - to: /blog/2023/decommissioning-amm-devnet - type: 301 + to: /blog/2023/decommissioning-amm-devnet + type: 301 blog/2023/gemwallet-update.html: - to: /blog/2023/gemwallet-update - type: 301 + to: /blog/2023/gemwallet-update + type: 301 blog/2023/clio-2.0.0.html: - to: /blog/2023/clio-2.0.0 - type: 301 + to: /blog/2023/clio-2.0.0 + type: 301 blog/2023/santiment.html: - to: /blog/2023/santiment - type: 301 + to: /blog/2023/santiment + type: 301 blog/2023/data-api-v2-deprecated.html: - to: /blog/2023/data-api-v2-deprecated - type: 301 + to: /blog/2023/data-api-v2-deprecated + type: 301 blog/2023/devnet-reset-scheduled-sep-19-2023.html: - to: /blog/2023/devnet-reset-scheduled-sep-19-2023 - type: 301 + to: /blog/2023/devnet-reset-scheduled-sep-19-2023 + type: 301 blog/2023/rippled-1.12.0.html: - to: /blog/2023/rippled-1.12.0 - type: 301 + to: /blog/2023/rippled-1.12.0 + type: 301 blog/2023/upcoming-devnet-reset.html: - to: /blog/2023/upcoming-devnet-reset - type: 301 + to: /blog/2023/upcoming-devnet-reset + type: 301 blog/2023/blockdaemon.html: - to: /blog/2023/blockdaemon - type: 301 + to: /blog/2023/blockdaemon + type: 301 blog/2023/disallowincoming-and-others-expected.html: - to: /blog/2023/disallowincoming-and-others-expected - type: 301 + to: /blog/2023/disallowincoming-and-others-expected + type: 301 blog/2023/xrp-toolkit.html: - to: /blog/2023/xrp-toolkit - type: 301 + to: /blog/2023/xrp-toolkit + type: 301 blog/2023/summarizing-xrpl-docs-iav3.html: - to: /blog/2023/summarizing-xrpl-docs-iav3 - type: 301 + to: /blog/2023/summarizing-xrpl-docs-iav3 + type: 301 blog/2023/xrpl-py-2.0-release.html: - to: /blog/2023/xrpl-py-2.0-release - type: 301 + to: /blog/2023/xrpl-py-2.0-release + type: 301 blog/2023/fieldboss.html: - to: /blog/2023/fieldboss - type: 301 + to: /blog/2023/fieldboss + type: 301 blog/2023/rippled-1.11.0.html: - to: /blog/2023/rippled-1.11.0 - type: 301 + to: /blog/2023/rippled-1.11.0 + type: 301 blog/2023/ciso.html: - to: /blog/2023/ciso - type: 301 + to: /blog/2023/ciso + type: 301 blog/2023/edge.html: - to: /blog/2023/edge - type: 301 + to: /blog/2023/edge + type: 301 blog/2023/xrpcafe.html: - to: /blog/2023/xrpcafe - type: 301 + to: /blog/2023/xrpcafe + type: 301 blog/2023/chispend.html: - to: /blog/2023/chispend - type: 301 + to: /blog/2023/chispend + type: 301 blog/2023/rippled-1.10.0.html: - to: /blog/2023/rippled-1.10.0 - type: 301 + to: /blog/2023/rippled-1.10.0 + type: 301 blog/2023/bei-api.html: - to: /blog/2023/bei-api - type: 301 + to: /blog/2023/bei-api + type: 301 blog/2023/zoetic.html: - to: /blog/2023/zoetic - type: 301 + to: /blog/2023/zoetic + type: 301 blog/2023/mandla-money.html: - to: /blog/2023/mandla-money - type: 301 + to: /blog/2023/mandla-money + type: 301 blog/2023/nft-devnet-decommission.html: - to: /blog/2023/nft-devnet-decommission - type: 301 + to: /blog/2023/nft-devnet-decommission + type: 301 blog/2023/aesthetes.html: - to: /blog/2023/aesthetes - type: 301 + to: /blog/2023/aesthetes + type: 301 blog/2023/stably.html: - to: /blog/2023/stably - type: 301 + to: /blog/2023/stably + type: 301 blog/2022/introducing-xrpl-py-2.0.0beta.html: - to: /blog/2022/introducing-xrpl-py-2.0.0beta - type: 301 + to: /blog/2022/introducing-xrpl-py-2.0.0beta + type: 301 blog/2022/nftmaster.html: - to: /blog/2022/nftmaster - type: 301 + to: /blog/2022/nftmaster + type: 301 blog/2022/xpmarket.html: - to: /blog/2022/xpmarket - type: 301 + to: /blog/2022/xpmarket + type: 301 blog/2022/ziggurat.html: - to: /blog/2022/ziggurat - type: 301 + to: /blog/2022/ziggurat + type: 301 blog/2022/gemwallet.html: - to: /blog/2022/gemwallet - type: 301 + to: /blog/2022/gemwallet + type: 301 blog/2022/cryptoiso20022interop.html: - to: /blog/2022/cryptoiso20022interop - type: 301 + to: /blog/2022/cryptoiso20022interop + type: 301 blog/2022/non-fungible-tokens-are-now-available.html: - to: /blog/2022/non-fungible-tokens-are-now-available - type: 301 + to: /blog/2022/non-fungible-tokens-are-now-available + type: 301 blog/2022/dev-reflections-relaunch.html: - to: /blog/2022/dev-reflections-relaunch - type: 301 + to: /blog/2022/dev-reflections-relaunch + type: 301 blog/2022/expandedsignerlist-enabled-and-nfts-approaching.html: - to: /blog/2022/expandedsignerlist-enabled-and-nfts-approaching - type: 301 + to: /blog/2022/expandedsignerlist-enabled-and-nfts-approaching + type: 301 blog/2022/introducing-learning-portal.html: - to: /blog/2022/introducing-learning-portal - type: 301 + to: /blog/2022/introducing-learning-portal + type: 301 blog/2022/rippled-1.9.4.html: - to: /blog/2022/rippled-1.9.4 - type: 301 + to: /blog/2022/rippled-1.9.4 + type: 301 blog/2022/get-ready-for-nfts.html: - to: /blog/2022/get-ready-for-nfts - type: 301 + to: /blog/2022/get-ready-for-nfts + type: 301 blog/2022/rippled-1.9.3.html: - to: /blog/2022/rippled-1.9.3 - type: 301 + to: /blog/2022/rippled-1.9.3 + type: 301 blog/2022/rippled-1.9.2.html: - to: /blog/2022/rippled-1.9.2 - type: 301 + to: /blog/2022/rippled-1.9.2 + type: 301 blog/2022/clio-1.0.0.html: - to: /blog/2022/clio-1.0.0 - type: 301 + to: /blog/2022/clio-1.0.0 + type: 301 blog/2022/rippled-1.9.1.html: - to: /blog/2022/rippled-1.9.1 - type: 301 + to: /blog/2022/rippled-1.9.1 + type: 301 blog/2022/rippled-1.9.0.html: - to: /blog/2022/rippled-1.9.0 - type: 301 + to: /blog/2022/rippled-1.9.0 + type: 301 blog/2022/introducing-clio.html: - to: /blog/2022/introducing-clio - type: 301 + to: /blog/2022/introducing-clio + type: 301 blog/2022/nft-devnet-reset.html: - to: /blog/2022/nft-devnet-reset - type: 301 + to: /blog/2022/nft-devnet-reset + type: 301 blog/2022/rippled-1.8.5.html: - to: /blog/2022/rippled-1.8.5 - type: 301 + to: /blog/2022/rippled-1.8.5 + type: 301 blog/2022/rippled-1.8.4.html: - to: /blog/2022/rippled-1.8.4 - type: 301 + to: /blog/2022/rippled-1.8.4 + type: 301 blog/2021/rippled-1.8.2.html: - to: /blog/2021/rippled-1.8.2 - type: 301 + to: /blog/2021/rippled-1.8.2 + type: 301 blog/2021/rippled-1.8.1.html: - to: /blog/2021/rippled-1.8.1 - type: 301 + to: /blog/2021/rippled-1.8.1 + type: 301 blog/2021/five-upcoming-amendments.html: - to: /blog/2021/five-upcoming-amendments - type: 301 + to: /blog/2021/five-upcoming-amendments + type: 301 blog/2021/introducing-xrpl-js.html: - to: /blog/2021/introducing-xrpl-js - type: 301 + to: /blog/2021/introducing-xrpl-js + type: 301 blog/2021/sidechain-engineering-preview.html: - to: /blog/2021/sidechain-engineering-preview - type: 301 + to: /blog/2021/sidechain-engineering-preview + type: 301 blog/2021/reserves-lowered.html: - to: /blog/2021/reserves-lowered - type: 301 + to: /blog/2021/reserves-lowered + type: 301 blog/2021/rippled-1.7.3.html: - to: /blog/2021/rippled-1.7.3 - type: 301 + to: /blog/2021/rippled-1.7.3 + type: 301 blog/2021/ripple-lib-drops-lodash-browsers.html: - to: /blog/2021/ripple-lib-drops-lodash-browsers - type: 301 + to: /blog/2021/ripple-lib-drops-lodash-browsers + type: 301 blog/2021/xrpl-grants-funding-the-next-phase-of-open-decentralized-innovation.html: - to: /blog/2021/xrpl-grants-funding-the-next-phase-of-open-decentralized-innovation - type: 301 + to: /blog/2021/xrpl-grants-funding-the-next-phase-of-open-decentralized-innovation + type: 301 blog/2021/rippled-1.7.2.html: - to: /blog/2021/rippled-1.7.2 - type: 301 + to: /blog/2021/rippled-1.7.2 + type: 301 blog/2021/introducing-xrpl4j.html: - to: /blog/2021/introducing-xrpl4j - type: 301 + to: /blog/2021/introducing-xrpl4j + type: 301 blog/2021/xrpl-node-configurator.html: - to: /blog/2021/xrpl-node-configurator - type: 301 + to: /blog/2021/xrpl-node-configurator + type: 301 blog/2021/introducing-xrpl-py-for-pythonistas.html: - to: /blog/2021/introducing-xrpl-py-for-pythonistas - type: 301 + to: /blog/2021/introducing-xrpl-py-for-pythonistas + type: 301 blog/2021/three-amendments-expected.html: - to: /blog/2021/three-amendments-expected - type: 301 + to: /blog/2021/three-amendments-expected + type: 301 blog/2021/message-routing-optimizations-pt-1-proposal-validation-relaying.html: - to: /blog/2021/message-routing-optimizations-pt-1-proposal-validation-relaying - type: 301 + to: /blog/2021/message-routing-optimizations-pt-1-proposal-validation-relaying + type: 301 blog/2021/community-spotlight-developing-wallet-protect.html: - to: /blog/2021/community-spotlight-developing-wallet-protect - type: 301 + to: /blog/2021/community-spotlight-developing-wallet-protect + type: 301 blog/2021/road-to-xrp-ledger-1-7-improving-efficiency-and-security.html: - to: /blog/2021/road-to-xrp-ledger-1-7-improving-efficiency-and-security - type: 301 + to: /blog/2021/road-to-xrp-ledger-1-7-improving-efficiency-and-security + type: 301 blog/2021/rippled-1.7.0.html: - to: /blog/2021/rippled-1.7.0 - type: 301 + to: /blog/2021/rippled-1.7.0 + type: 301 blog/2020/rippled-1.6.0.html: - to: /blog/2020/rippled-1.6.0 - type: 301 + to: /blog/2020/rippled-1.6.0 + type: 301 blog/2020/moving-devnet-to-vl.html: - to: /blog/2020/moving-devnet-to-vl - type: 301 + to: /blog/2020/moving-devnet-to-vl + type: 301 blog/2020/requirefullycanonicalsig-fixqualityupperbound-flowcross-enabled.html: - to: /blog/2020/requirefullycanonicalsig-fixqualityupperbound-flowcross-enabled - type: 301 + to: /blog/2020/requirefullycanonicalsig-fixqualityupperbound-flowcross-enabled + type: 301 blog/2020/developer-reflections-xrp-toolkit.html: - to: /blog/2020/developer-reflections-xrp-toolkit - type: 301 + to: /blog/2020/developer-reflections-xrp-toolkit + type: 301 blog/2020/requirefullycanonicalsig-expected.html: - to: /blog/2020/requirefullycanonicalsig-expected - type: 301 + to: /blog/2020/requirefullycanonicalsig-expected + type: 301 blog/2020/checks-enabled.html: - to: /blog/2020/checks-enabled - type: 301 + to: /blog/2020/checks-enabled + type: 301 blog/2020/checks-expected.html: - to: /blog/2020/checks-expected - type: 301 + to: /blog/2020/checks-expected + type: 301 blog/2020/developer-reflections-xrplorer.html: - to: /blog/2020/developer-reflections-xrplorer - type: 301 + to: /blog/2020/developer-reflections-xrplorer + type: 301 blog/2020/deletableaccounts-enabled.html: - to: /blog/2020/deletableaccounts-enabled - type: 301 + to: /blog/2020/deletableaccounts-enabled + type: 301 blog/2020/get-ready-for-deletable-accounts.html: - to: /blog/2020/get-ready-for-deletable-accounts - type: 301 + to: /blog/2020/get-ready-for-deletable-accounts + type: 301 blog/2020/developer-reflections-xrpscan.html: - to: /blog/2020/developer-reflections-xrpscan - type: 301 + to: /blog/2020/developer-reflections-xrpscan + type: 301 blog/2020/two-fixes-enabled.html: - to: /blog/2020/two-fixes-enabled - type: 301 + to: /blog/2020/two-fixes-enabled + type: 301 blog/2020/deletableaccounts-expected.html: - to: /blog/2020/deletableaccounts-expected - type: 301 + to: /blog/2020/deletableaccounts-expected + type: 301 blog/2020/testnet-amendments-rippled-1.5.0.html: - to: /blog/2020/testnet-amendments-rippled-1.5.0 - type: 301 + to: /blog/2020/testnet-amendments-rippled-1.5.0 + type: 301 blog/2020/rippled-1.5.0.html: - to: /blog/2020/rippled-1.5.0 - type: 301 + to: /blog/2020/rippled-1.5.0 + type: 301 blog/2020/running-an-xrp-ledger-validator.html: - to: /blog/2020/running-an-xrp-ledger-validator - type: 301 + to: /blog/2020/running-an-xrp-ledger-validator + type: 301 blog/2020/fixcheckthreading-fixpaychanrecipientownerdir-lost-majority.html: - to: /blog/2020/fixcheckthreading-fixpaychanrecipientownerdir-lost-majority - type: 301 + to: /blog/2020/fixcheckthreading-fixpaychanrecipientownerdir-lost-majority + type: 301 blog/2020/rippled-1.4.0-upgrade-advisory.html: - to: /blog/2020/rippled-1.4.0-upgrade-advisory - type: 301 + to: /blog/2020/rippled-1.4.0-upgrade-advisory + type: 301 blog/2020/fixcheckthreading-fixpaychanrecipientownerdir-expected.html: - to: /blog/2020/fixcheckthreading-fixpaychanrecipientownerdir-expected - type: 301 + to: /blog/2020/fixcheckthreading-fixpaychanrecipientownerdir-expected + type: 301 blog/2019/rippled-1.4.0.html: - to: /blog/2019/rippled-1.4.0 - type: 301 + to: /blog/2019/rippled-1.4.0 + type: 301 blog/2019/xrpl-devnet-launch.html: - to: /blog/2019/xrpl-devnet-launch - type: 301 + to: /blog/2019/xrpl-devnet-launch + type: 301 blog/2019/fixmasterkeyasregularkey-enabled.html: - to: /blog/2019/fixmasterkeyasregularkey-enabled - type: 301 + to: /blog/2019/fixmasterkeyasregularkey-enabled + type: 301 blog/2019/fixmasterkeyasregularkey-1day.html: - to: /blog/2019/fixmasterkeyasregularkey-1day - type: 301 + to: /blog/2019/fixmasterkeyasregularkey-1day + type: 301 blog/2019/fixmasterkeyasregularkey-expected.html: - to: /blog/2019/fixmasterkeyasregularkey-expected - type: 301 + to: /blog/2019/fixmasterkeyasregularkey-expected + type: 301 blog/2019/testnet-reset.html: - to: /blog/2019/testnet-reset - type: 301 + to: /blog/2019/testnet-reset + type: 301 blog/2019/rippled-1.3.1.html: - to: /blog/2019/rippled-1.3.1 - type: 301 + to: /blog/2019/rippled-1.3.1 + type: 301 blog/2019/labeling-the-internet-of-value.html: - to: /blog/2019/labeling-the-internet-of-value - type: 301 + to: /blog/2019/labeling-the-internet-of-value + type: 301 blog/2019/discover-xrp-ledger-explorer.html: - to: /blog/2019/discover-xrp-ledger-explorer - type: 301 + to: /blog/2019/discover-xrp-ledger-explorer + type: 301 blog/2019/websocket-tool-update.html: - to: /blog/2019/websocket-tool-update - type: 301 + to: /blog/2019/websocket-tool-update + type: 301 blog/2019/welcome-to-xrpl-org.html: - to: /blog/2019/welcome-to-xrpl-org - type: 301 + to: /blog/2019/welcome-to-xrpl-org + type: 301 blog/2019/multisignreserve-enabled.html: - to: /blog/2019/multisignreserve-enabled - type: 301 + to: /blog/2019/multisignreserve-enabled + type: 301 blog/2019/rippled-1.2.4.html: - to: /blog/2019/rippled-1.2.4 - type: 301 + to: /blog/2019/rippled-1.2.4 + type: 301 blog/2019/secure-development-practices.html: - to: /blog/2019/secure-development-practices - type: 301 + to: /blog/2019/secure-development-practices + type: 301 blog/2019/multisignreserve-expected.html: - to: /blog/2019/multisignreserve-expected - type: 301 + to: /blog/2019/multisignreserve-expected + type: 301 blog/2019/corrections-to-data-api-xrp-charts-metrics.html: - to: /blog/2019/corrections-to-data-api-xrp-charts-metrics - type: 301 + to: /blog/2019/corrections-to-data-api-xrp-charts-metrics + type: 301 blog/2019/interledger-checkin.html: - to: /blog/2019/interledger-checkin - type: 301 + to: /blog/2019/interledger-checkin + type: 301 blog/2019/fixtakerdryofferremoval-enabled.html: - to: /blog/2019/fixtakerdryofferremoval-enabled - type: 301 + to: /blog/2019/fixtakerdryofferremoval-enabled + type: 301 blog/2019/rippled-1.2.3.html: - to: /blog/2019/rippled-1.2.3 - type: 301 + to: /blog/2019/rippled-1.2.3 + type: 301 blog/2019/fix1578-enabled.html: - to: /blog/2019/fix1578-enabled - type: 301 + to: /blog/2019/fix1578-enabled + type: 301 blog/2019/fix1578-expected.html: - to: /blog/2019/fix1578-expected - type: 301 + to: /blog/2019/fix1578-expected + type: 301 blog/2019/rippled-1.2.2.html: - to: /blog/2019/rippled-1.2.2 - type: 301 + to: /blog/2019/rippled-1.2.2 + type: 301 blog/2019/rippled-1.2.1.html: - to: /blog/2019/rippled-1.2.1 - type: 301 + to: /blog/2019/rippled-1.2.1 + type: 301 blog/2019/rippled-1.2.0.html: - to: /blog/2019/rippled-1.2.0 - type: 301 + to: /blog/2019/rippled-1.2.0 + type: 301 blog/2019/statement-on-the-biased-nonce-sense-paper.html: - to: /blog/2019/statement-on-the-biased-nonce-sense-paper - type: 301 + to: /blog/2019/statement-on-the-biased-nonce-sense-paper + type: 301 blog/2018/rippled-1.1.2.html: - to: /blog/2018/rippled-1.1.2 - type: 301 + to: /blog/2018/rippled-1.1.2 + type: 301 blog/2018/introducing-history-sharding.html: - to: /blog/2018/introducing-history-sharding - type: 301 + to: /blog/2018/introducing-history-sharding + type: 301 blog/2018/data-api-validations-changes.html: - to: /blog/2018/data-api-validations-changes - type: 301 + to: /blog/2018/data-api-validations-changes + type: 301 blog/2018/rippled-1.1.1.html: - to: /blog/2018/rippled-1.1.1 - type: 301 + to: /blog/2018/rippled-1.1.1 + type: 301 blog/2018/depositpreauth-fix1515-enabled.html: - to: /blog/2018/depositpreauth-fix1515-enabled - type: 301 + to: /blog/2018/depositpreauth-fix1515-enabled + type: 301 blog/2018/rippled-1.1.0.html: - to: /blog/2018/rippled-1.1.0 - type: 301 + to: /blog/2018/rippled-1.1.0 + type: 301 blog/2018/ripple-lib-1.0.0.html: - to: /blog/2018/ripple-lib-1.0.0 - type: 301 + to: /blog/2018/ripple-lib-1.0.0 + type: 301 blog/2018/fix1571-enabled.html: - to: /blog/2018/fix1571-enabled - type: 301 + to: /blog/2018/fix1571-enabled + type: 301 blog/2018/rippled-1.0.1.html: - to: /blog/2018/rippled-1.0.1 - type: 301 + to: /blog/2018/rippled-1.0.1 + type: 301 blog/2018/fix1543-fix1571-fix1623-voting.html: - to: /blog/2018/fix1543-fix1571-fix1623-voting - type: 301 + to: /blog/2018/fix1543-fix1571-fix1623-voting + type: 301 blog/2018/rippled-1.0.0.html: - to: /blog/2018/rippled-1.0.0 - type: 301 + to: /blog/2018/rippled-1.0.0 + type: 301 blog/2018/depositauth-fix1513-available.html: - to: /blog/2018/depositauth-fix1513-available - type: 301 + to: /blog/2018/depositauth-fix1513-available + type: 301 blog/2018/rippled-0.90.1.html: - to: /blog/2018/rippled-0.90.1 - type: 301 + to: /blog/2018/rippled-0.90.1 + type: 301 blog/2018/rippled-0.90.0.html: - to: /blog/2018/rippled-0.90.0 - type: 301 + to: /blog/2018/rippled-0.90.0 + type: 301 blog/2018/rippled-validator-key-replacement.html: - to: /blog/2018/rippled-validator-key-replacement - type: 301 + to: /blog/2018/rippled-validator-key-replacement + type: 301 blog/2018/rippled-boost166-warning.html: - to: /blog/2018/rippled-boost166-warning - type: 301 + to: /blog/2018/rippled-boost166-warning + type: 301 blog/2018/rippled-0.81.0.html: - to: /blog/2018/rippled-0.81.0 - type: 301 + to: /blog/2018/rippled-0.81.0 + type: 301 blog/2017/explanation-of-ripples-xrp-escrow.html: - to: /blog/2017/explanation-of-ripples-xrp-escrow - type: 301 + to: /blog/2017/explanation-of-ripples-xrp-escrow + type: 301 blog/2017/rippled-0.80.2.html: - to: /blog/2017/rippled-0.80.2 - type: 301 + to: /blog/2017/rippled-0.80.2 + type: 301 blog/2017/rippled-0.80.0.html: - to: /blog/2017/rippled-0.80.0 - type: 301 + to: /blog/2017/rippled-0.80.0 + type: 301 blog/2017/decent-strategy-update.html: - to: /blog/2017/decent-strategy-update - type: 301 + to: /blog/2017/decent-strategy-update + type: 301 blog/2017/high-scalability-xrp-ledger.html: - to: /blog/2017/high-scalability-xrp-ledger - type: 301 + to: /blog/2017/high-scalability-xrp-ledger + type: 301 blog/2017/rippled-0.70.2.html: - to: /blog/2017/rippled-0.70.2 - type: 301 + to: /blog/2017/rippled-0.70.2 + type: 301 blog/2017/invariant-checking.html: - to: /blog/2017/invariant-checking - type: 301 + to: /blog/2017/invariant-checking + type: 301 blog/2017/rippled-0.70.1.html: - to: /blog/2017/rippled-0.70.1 - type: 301 + to: /blog/2017/rippled-0.70.1 + type: 301 blog/2017/rippled-0.70.0.html: - to: /blog/2017/rippled-0.70.0 - type: 301 + to: /blog/2017/rippled-0.70.0 + type: 301 blog/2017/rippled-0.60.3.html: - to: /blog/2017/rippled-0.60.3 - type: 301 + to: /blog/2017/rippled-0.60.3 + type: 301 blog/2017/rippled-0.60.2-2-rpm.html: - to: /blog/2017/rippled-0.60.2-2-rpm - type: 301 + to: /blog/2017/rippled-0.60.2-2-rpm + type: 301 blog/2017/rippled-0.60.2.html: - to: /blog/2017/rippled-0.60.2 - type: 301 + to: /blog/2017/rippled-0.60.2 + type: 301 blog/2017/rippled-0.60.1.html: - to: /blog/2017/rippled-0.60.1 - type: 301 + to: /blog/2017/rippled-0.60.1 + type: 301 blog/2017/escrow-paychan-fix1368-reminder.html: - to: /blog/2017/escrow-paychan-fix1368-reminder - type: 301 + to: /blog/2017/escrow-paychan-fix1368-reminder + type: 301 blog/2017/rippled-0.60.0.html: - to: /blog/2017/rippled-0.60.0 - type: 301 + to: /blog/2017/rippled-0.60.0 + type: 301 blog/2017/trust-line-quality-sendmax.html: - to: /blog/2017/trust-line-quality-sendmax - type: 301 + to: /blog/2017/trust-line-quality-sendmax + type: 301 blog/2017/rippled-0.50.3.html: - to: /blog/2017/rippled-0.50.3 - type: 301 + to: /blog/2017/rippled-0.50.3 + type: 301 blog/2017/ripple-consensus-ledger-can-sustain-1000-transactions-per-second.html: - to: /blog/2017/ripple-consensus-ledger-can-sustain-1000-transactions-per-second - type: 301 + to: /blog/2017/ripple-consensus-ledger-can-sustain-1000-transactions-per-second + type: 301 blog/2017/ticksize-available.html: - to: /blog/2017/ticksize-available - type: 301 + to: /blog/2017/ticksize-available + type: 301 blog/2017/ticksize-3days.html: - to: /blog/2017/ticksize-3days - type: 301 + to: /blog/2017/ticksize-3days + type: 301 blog/2017/ticksize-7days.html: - to: /blog/2017/ticksize-7days - type: 301 + to: /blog/2017/ticksize-7days + type: 301 blog/2017/ticksize-voting.html: - to: /blog/2017/ticksize-voting - type: 301 + to: /blog/2017/ticksize-voting + type: 301 blog/2017/rippled-0.50.2.html: - to: /blog/2017/rippled-0.50.2 - type: 301 + to: /blog/2017/rippled-0.50.2 + type: 301 blog/2017/rippled-0.50.0.html: - to: /blog/2017/rippled-0.50.0 - type: 301 + to: /blog/2017/rippled-0.50.0 + type: 301 blog/2017/data-api-load-balancing-test.html: - to: /blog/2017/data-api-load-balancing-test - type: 301 + to: /blog/2017/data-api-load-balancing-test + type: 301 blog/2017/response-to-china-cert-report.html: - to: /blog/2017/response-to-china-cert-report - type: 301 + to: /blog/2017/response-to-china-cert-report + type: 301 blog/2017/rippled-0.40.1.html: - to: /blog/2017/rippled-0.40.1 - type: 301 + to: /blog/2017/rippled-0.40.1 + type: 301 blog/2016/rippled-0.40.0.html: - to: /blog/2016/rippled-0.40.0 - type: 301 + to: /blog/2016/rippled-0.40.0 + type: 301 blog/2016/flow-available.html: - to: /blog/2016/flow-available - type: 301 + to: /blog/2016/flow-available + type: 301 blog/2016/flow-reminder.html: - to: /blog/2016/flow-reminder - type: 301 + to: /blog/2016/flow-reminder + type: 301 blog/2016/flow-voting.html: - to: /blog/2016/flow-voting - type: 301 + to: /blog/2016/flow-voting + type: 301 blog/2016/rippled-0.33.0-hf1.html: - to: /blog/2016/rippled-0.33.0-hf1 - type: 301 + to: /blog/2016/rippled-0.33.0-hf1 + type: 301 blog/2016/rippled-0.33.0.html: - to: /blog/2016/rippled-0.33.0 - type: 301 + to: /blog/2016/rippled-0.33.0 + type: 301 blog/2016/testnet-ledger-reset.html: - to: /blog/2016/testnet-ledger-reset - type: 301 + to: /blog/2016/testnet-ledger-reset + type: 301 blog/2016/flowv2-vetoed.html: - to: /blog/2016/flowv2-vetoed - type: 301 + to: /blog/2016/flowv2-vetoed + type: 301 blog/2016/flowv2-voting.html: - to: /blog/2016/flowv2-voting - type: 301 + to: /blog/2016/flowv2-voting + type: 301 blog/2016/rippled-0.32.1.html: - to: /blog/2016/rippled-0.32.1 - type: 301 + to: /blog/2016/rippled-0.32.1 + type: 301 blog/2016/trustsetauth-available.html: - to: /blog/2016/trustsetauth-available - type: 301 + to: /blog/2016/trustsetauth-available + type: 301 blog/2016/trustsetauth-reminder.html: - to: /blog/2016/trustsetauth-reminder - type: 301 + to: /blog/2016/trustsetauth-reminder + type: 301 blog/2016/trustsetauth-voting.html: - to: /blog/2016/trustsetauth-voting - type: 301 + to: /blog/2016/trustsetauth-voting + type: 301 blog/2016/multisign-available.html: - to: /blog/2016/multisign-available - type: 301 + to: /blog/2016/multisign-available + type: 301 blog/2016/rippled-0.32.0.html: - to: /blog/2016/rippled-0.32.0 - type: 301 + to: /blog/2016/rippled-0.32.0 + type: 301 blog/2016/multisign-reminder.html: - to: /blog/2016/multisign-reminder - type: 301 + to: /blog/2016/multisign-reminder + type: 301 blog/2016/data-api-v2.2.html: - to: /blog/2016/data-api-v2.2 - type: 301 + to: /blog/2016/data-api-v2.2 + type: 301 blog/2016/introducing-rippleapi.html: - to: /blog/2016/introducing-rippleapi - type: 301 + to: /blog/2016/introducing-rippleapi + type: 301 blog/2016/rippled-0.31.2-updates.html: - to: /blog/2016/rippled-0.31.2-updates - type: 301 + to: /blog/2016/rippled-0.31.2-updates + type: 301 blog/2016/rippled-0.30.1.html: - to: /blog/2016/rippled-0.30.1 - type: 301 + to: /blog/2016/rippled-0.30.1 + type: 301 blog/2015/correction-to-ripple-white-paper.html: - to: /blog/2015/correction-to-ripple-white-paper - type: 301 + to: /blog/2015/correction-to-ripple-white-paper + type: 301 blog/2015/validator-registry.html: - to: /blog/2015/validator-registry - type: 301 + to: /blog/2015/validator-registry + type: 301 blog/2015/introducing-the-data-api.html: - to: /blog/2015/introducing-the-data-api - type: 301 + to: /blog/2015/introducing-the-data-api + type: 301 blog/2015/gatewayd-no-longer-available.html: - to: /blog/2015/gatewayd-no-longer-available - type: 301 + to: /blog/2015/gatewayd-no-longer-available + type: 301 blog/2015/ripple-charts-update-payment-volume-and-issued-value.html: - to: /blog/2015/ripple-charts-update-payment-volume-and-issued-value - type: 301 + to: /blog/2015/ripple-charts-update-payment-volume-and-issued-value + type: 301 blog/2015/do-you-have-what-it-takes-to-be-a-gateway.html: - to: /blog/2015/do-you-have-what-it-takes-to-be-a-gateway - type: 301 + to: /blog/2015/do-you-have-what-it-takes-to-be-a-gateway + type: 301 blog/2015/calculating-balance-changes-for-a-transaction.html: - to: /blog/2015/calculating-balance-changes-for-a-transaction - type: 301 + to: /blog/2015/calculating-balance-changes-for-a-transaction + type: 301 blog/2014/turn-your-exchange-into-a-ripple-gateway.html: - to: /blog/2014/turn-your-exchange-into-a-ripple-gateway - type: 301 + to: /blog/2014/turn-your-exchange-into-a-ripple-gateway + type: 301 blog/2014/why-the-stellar-forking-issue-does-not-affect-ripple.html: - to: /blog/2014/why-the-stellar-forking-issue-does-not-affect-ripple - type: 301 + to: /blog/2014/why-the-stellar-forking-issue-does-not-affect-ripple + type: 301 blog/2014/release-notes-3-december-2014.html: - to: /blog/2014/release-notes-3-december-2014 - type: 301 + to: /blog/2014/release-notes-3-december-2014 + type: 301 blog/2014/release-notes-19-november-2014.html: - to: /blog/2014/release-notes-19-november-2014 - type: 301 + to: /blog/2014/release-notes-19-november-2014 + type: 301 blog/2014/ripplerest-1.3-release.html: - to: /blog/2014/ripplerest-1.3-release - type: 301 + to: /blog/2014/ripplerest-1.3-release + type: 301 blog/2014/release-notes-29-october-2014.html: - to: /blog/2014/release-notes-29-october-2014 - type: 301 + to: /blog/2014/release-notes-29-october-2014 + type: 301 blog/2014/gateway-advisory-on-partial-payment-flag.html: - to: /blog/2014/gateway-advisory-on-partial-payment-flag - type: 301 + to: /blog/2014/gateway-advisory-on-partial-payment-flag + type: 301 blog/2014/release-notes-14-october-2014.html: - to: /blog/2014/release-notes-14-october-2014 - type: 301 + to: /blog/2014/release-notes-14-october-2014 + type: 301 blog/2014/how-ripple-labs-supports-gateways.html: - to: /blog/2014/how-ripple-labs-supports-gateways - type: 301 + to: /blog/2014/how-ripple-labs-supports-gateways + type: 301 blog/2014/biweekly-release-notes-17-september-2014.html: - to: /blog/2014/biweekly-release-notes-17-september-2014 - type: 301 + to: /blog/2014/biweekly-release-notes-17-september-2014 + type: 301 blog/2014/biweekly-release-notes-3-september-2014.html: - to: /blog/2014/biweekly-release-notes-3-september-2014 - type: 301 + to: /blog/2014/biweekly-release-notes-3-september-2014 + type: 301 blog/2014/use-of-cpp14-in-rippled.html: - to: /blog/2014/use-of-cpp14-in-rippled - type: 301 + to: /blog/2014/use-of-cpp14-in-rippled + type: 301 blog/2014/biweekly-release-notes-14-august-2014.html: - to: /blog/2014/biweekly-release-notes-14-august-2014 - type: 301 + to: /blog/2014/biweekly-release-notes-14-august-2014 + type: 301 blog/2014/dev-portal-adds-rippled-apis.html: - to: /blog/2014/dev-portal-adds-rippled-apis - type: 301 + to: /blog/2014/dev-portal-adds-rippled-apis + type: 301 blog/2014/biweekly-release-notes-31-july-2014.html: - to: /blog/2014/biweekly-release-notes-31-july-2014 - type: 301 + to: /blog/2014/biweekly-release-notes-31-july-2014 + type: 301 blog/2014/xrp-giveaway-for-developers.html: - to: /blog/2014/xrp-giveaway-for-developers - type: 301 + to: /blog/2014/xrp-giveaway-for-developers + type: 301 blog/2014/ripple-labs-bounty-program-moves-to-bountysource.html: - to: /blog/2014/ripple-labs-bounty-program-moves-to-bountysource - type: 301 + to: /blog/2014/ripple-labs-bounty-program-moves-to-bountysource + type: 301 blog/2014/introducing-offer-autobridging.html: - to: /blog/2014/introducing-offer-autobridging - type: 301 + to: /blog/2014/introducing-offer-autobridging + type: 301 blog/2014/curves-with-a-twist.html: - to: /blog/2014/curves-with-a-twist - type: 301 + to: /blog/2014/curves-with-a-twist + type: 301 blog/2014/introducing-ripple-names.html: - to: /blog/2014/introducing-ripple-names - type: 301 + to: /blog/2014/introducing-ripple-names + type: 301 blog/2014.html: - to: /blog/ - type: 301 + to: /blog/ + type: 301 blog/2015.html: - to: /blog/ - type: 301 + to: /blog/ + type: 301 blog/2016.html: - to: /blog/ - type: 301 + to: /blog/ + type: 301 blog/2017.html: - to: /blog/ - type: 301 + to: /blog/ + type: 301 blog/2018.html: - to: /blog/ - type: 301 + to: /blog/ + type: 301 blog/2019.html: - to: /blog/ - type: 301 + to: /blog/ + type: 301 blog/2020.html: - to: /blog/ - type: 301 + to: /blog/ + type: 301 blog/2021.html: - to: /blog/ - type: 301 + to: /blog/ + type: 301 blog/2022.html: - to: /blog/ - type: 301 + to: /blog/ + type: 301 blog/2023.html: - to: /blog/ - type: 301 + to: /blog/ + type: 301 blog/2024.html: - to: /blog/ - type: 301 + to: /blog/ + type: 301 blog/label/developer-reflections.html: - to: /blog/ - type: 301 + to: /blog/ + type: 301 code_of_conduct/: - to: /code-of-conduct - type: 301 + to: /code-of-conduct + type: 301 code_of_conduct: - to: /code-of-conduct - type: 301 + to: /code-of-conduct + type: 301 code_of_conduct.ja/: - to: /ja/code-of-conduct - type: 301 + to: /ja/code-of-conduct + type: 301 code_of_conduct.ja: - to: /ja/code-of-conduct - type: 301 + to: /ja/code-of-conduct + type: 301 # Japanese /ja/resources/contribute-documentation/tutorial-structure/: - to: /ja/resources/contribute-documentation/tutorial-guidelines/ - type: 301 + to: /ja/resources/contribute-documentation/tutorial-guidelines/ + type: 301 /ja/docs/references/protocol/transactions/pseudo-transaction-types/pseudo-transaction-types/: - to: /ja/docs/references/protocol/transactions/pseudo-transaction-types/ - type: 301 + to: /ja/docs/references/protocol/transactions/pseudo-transaction-types/ + type: 301 /ja/docs/concepts/tokens/transfer-fees/: - to: /ja/docs/concepts/tokens/fungible-tokens/transfer-fees/ - type: 301 + to: /ja/docs/concepts/tokens/fungible-tokens/transfer-fees/ + type: 301 /ja/docs/infrastructure/configuration/data-retention/configure-history-sharding/: - to: /ja/docs/infrastructure/configuration/data-retention/ - type: 301 + to: /ja/docs/infrastructure/configuration/data-retention/ + type: 301 /ja/docs/infrastructure/configuration/data-retention/history-sharding/: - to: /ja/docs/infrastructure/configuration/data-retention/ - type: 301 + to: /ja/docs/infrastructure/configuration/data-retention/ + type: 301 /ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/node_to_shard/: - to: /ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ - type: 301 + to: /ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ + type: 301 /ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/crawl_shards/: - to: /ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ - type: 301 + to: /ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ + type: 301 /ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/download_shard/: - to: /ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ - type: 301 + to: /ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ + type: 301 /ja/docs/infrastructure/installation/rippled-1-3-migration-instructions/: - to: /ja/docs/infrastructure/installation/ - type: 301 + to: /ja/docs/infrastructure/installation/ + type: 301 /ja/docs/infrastructure/installation/update-rippled-manually-on-centos-rhel/: - to: /ja/docs/infrastructure/installation/update-rippled-manually-on-rhel/ - type: 301 + to: /ja/docs/infrastructure/installation/update-rippled-manually-on-rhel/ + type: 301 /ja/docs/infrastructure/installation/install-rippled-on-centos-rhel-with-yum/: - to: /ja/docs/infrastructure/installation/install-rippled-on-rhel/ - type: 301 + to: /ja/docs/infrastructure/installation/install-rippled-on-rhel/ + type: 301 /ja/docs/tutorials/javascript/trade-on-ledger/earn-passive-income-as-a-liquidity-provider: - to: /ja/docs/tutorials/javascript/amm/add-assets-to-amm - type: 301 + to: /ja/docs/tutorials/javascript/amm/add-assets-to-amm + type: 301 /ja/docs/tutorials/javascript/trade-on-ledger/use-amm-auction-slot-for-lower-fees: - to: /ja/docs/tutorials/javascript/amm/trade-with-auction-slot - type: 301 + to: /ja/docs/tutorials/javascript/amm/trade-with-auction-slot + type: 301 /ja/docs/tutorials/how-tos/use-specialized-payment-types/use-checks/look-up-checks-by-recipient: - to: /ja/docs/tutorials/how-tos/use-specialized-payment-types/use-checks/look-up-checks - type: 301 + to: /ja/docs/tutorials/how-tos/use-specialized-payment-types/use-checks/look-up-checks + type: 301 /ja/docs/tutorials/how-tos/use-specialized-payment-types/use-checks/look-up-checks-by-sender: - to: /ja/docs/tutorials/how-tos/use-specialized-payment-types/use-checks/look-up-checks - type: 301 + to: /ja/docs/tutorials/how-tos/use-specialized-payment-types/use-checks/look-up-checks + type: 301 /ja/docs/tutorials/how-tos/use-specialized-payment-types/use-checks/use-checks: - to: /ja/docs/tutorials/how-tos/use-specialized-payment-types/use-checks - type: 301 + to: /ja/docs/tutorials/how-tos/use-specialized-payment-types/use-checks + type: 301 /ja/docs/references/protocol/transactions/transaction-results/transaction-results: - to: /ja/docs/references/protocol/transactions/transaction-results - type: 301 + to: /ja/docs/references/protocol/transactions/transaction-results + type: 301 /ja/xrp-ledger-rpc-tool.html: - to: /ja/resources/dev-tools/rpc-tool - type: 301 + to: /ja/resources/dev-tools/rpc-tool + type: 301 /ja/xrp-ledger-toml-checker.html: - to: /ja/resources/dev-tools/xrp-ledger-toml-checker - type: 301 + to: /ja/resources/dev-tools/xrp-ledger-toml-checker + type: 301 /ja/domain-verification-checker.html: - to: /ja/resources/dev-tools/domain-verification-checker - type: 301 + to: /ja/resources/dev-tools/domain-verification-checker + type: 301 /ja/websocket-api-tool.html: - to: /ja/resources/dev-tools/websocket-api-tool - type: 301 + to: /ja/resources/dev-tools/websocket-api-tool + type: 301 /ja/xrp-testnet-faucet.html: - to: /ja/resources/dev-tools/xrp-faucets - type: 301 + to: /ja/resources/dev-tools/xrp-faucets + type: 301 /ja/xrp-test-net-faucet.html: - to: /ja/resources/dev-tools/xrp-faucets - type: 301 + to: /ja/resources/dev-tools/xrp-faucets + type: 301 /ja/resources/xrp-test-net-faucets: - to: /ja/resources/dev-tools/xrp-faucets - type: 301 + to: /ja/resources/dev-tools/xrp-faucets + type: 301 /ja/tx-sender.html: - to: /ja/resources/dev-tools/tx-sender - type: 301 + to: /ja/resources/dev-tools/tx-sender + type: 301 /ja/index.html: - to: /ja/ - type: 301 + to: /ja/ + type: 301 /ja/uses.html: - to: /ja/about/uses - type: 301 + to: /ja/about/uses + type: 301 /ja/docs.html: - to: /ja/docs/ - type: 301 + to: /ja/docs/ + type: 301 /ja/tutorials.html: - to: /ja/docs/tutorials/ - type: 301 + to: /ja/docs/tutorials/ + type: 301 /ja/xrp-ledger-overview.html: - to: /ja/about/ - type: 301 + to: /ja/about/ + type: 301 /ja/xrp-overview.html: - to: /ja/about/xrp - type: 301 + to: /ja/about/xrp + type: 301 /ja/overview.html: - to: /ja/about/ - type: 301 + to: /ja/about/ + type: 301 /ja/history.html: - to: /ja/about/history - type: 301 + to: /ja/about/history + type: 301 /ja/impact.html: - to: /ja/about/impact - type: 301 + to: /ja/about/impact + type: 301 /ja/impact: - to: /ja/about/impact - type: 301 + to: /ja/about/impact + type: 301 /ja/carbon-calculator.html: - to: /ja/about/impact - type: 301 + to: /ja/about/impact + type: 301 /ja/contribute.html: - to: /ja/community - type: 301 + to: /ja/community + type: 301 /ja/events.html: - to: /ja/community/events - type: 301 + to: /ja/community/events + type: 301 /ja/ambassadors.html: - to: /ja/community/ambassadors - type: 301 + to: /ja/community/ambassadors + type: 301 /ja/developer-funding.html: - to: /ja/community/developer-funding - type: 301 + to: /ja/community/developer-funding + type: 301 /ja/code-samples.html: - to: /ja/resources/code-samples - type: 301 + to: /ja/resources/code-samples + type: 301 /ja/dev-tools.html: - to: /ja/resources/dev-tools/ - type: 301 + to: /ja/resources/dev-tools/ + type: 301 /ja/dev-tools-dev-tools.html: - to: /ja/resources/dev-tools/ - type: 301 + to: /ja/resources/dev-tools/ + type: 301 /ja/validator-domain-verifier.html: - to: /ja/resources/dev-tools/domain-verifier/ - type: 301 + to: /ja/resources/dev-tools/domain-verifier/ + type: 301 /ja/docs-index.html: - to: /ja/docs/ - type: 301 + to: /ja/docs/ + type: 301 /ja/explore.html: - to: /ja/about/ - type: 301 + to: /ja/about/ + type: 301 /ja/wallet.html: - to: /ja/about/xrp - type: 301 + to: /ja/about/xrp + type: 301 /ja/exchanges.html: - to: /ja/about/xrp - type: 301 + to: /ja/about/xrp + type: 301 /ja/businesses.html: - to: /ja/about/uses - type: 301 + to: /ja/about/uses + type: 301 /ja/ripple-txt-validator.html: - to: /ja/resources/dev-tools/xrp-ledger-toml-checker - type: 301 + to: /ja/resources/dev-tools/xrp-ledger-toml-checker + type: 301 /ja/production-readiness.html: - to: /ja/docs/tutorials - type: 301 + to: /ja/docs/tutorials + type: 301 /ja/get-started.html: - to: /ja/docs/tutorials - type: 301 + to: /ja/docs/tutorials + type: 301 /ja/run-rippled-as-a-wallet-server.html: - to: /ja/docs/infrastructure/configuration/server-modes/run-rippled-as-a-stock-server - type: 301 + to: /ja/docs/infrastructure/configuration/server-modes/run-rippled-as-a-stock-server + type: 301 /ja/faq.html: - to: /ja/about/faq - type: 301 + to: /ja/about/faq + type: 301 /ja/faq: - to: /ja/about/faq - type: 301 + to: /ja/about/faq + type: 301 /ja/privacy-policy.html: - to: /ja/about/privacy-policy - type: 301 + to: /ja/about/privacy-policy + type: 301 /ja/privacy-policy/: - to: /ja/about/privacy-policy - type: 301 + to: /ja/about/privacy-policy + type: 301 /ja/technical-faq.html: - to: /ja/about/faq - type: 301 + to: /ja/about/faq + type: 301 /ja/introduction.html: - to: /ja/docs/introduction/ - type: 301 + to: /ja/docs/introduction/ + type: 301 /ja/what-is-the-xrp-ledger.html: - to: /ja/docs/introduction/what-is-the-xrp-ledger - type: 301 + to: /ja/docs/introduction/what-is-the-xrp-ledger + type: 301 /ja/what-is-xrp.html: - to: /ja/docs/introduction/what-is-xrp - type: 301 + to: /ja/docs/introduction/what-is-xrp + type: 301 /ja/xrp.html: - to: /ja/docs/introduction/what-is-xrp - type: 301 + to: /ja/docs/introduction/what-is-xrp + type: 301 /ja/crypto-wallets.html: - to: /ja/docs/introduction/crypto-wallets - type: 301 + to: /ja/docs/introduction/crypto-wallets + type: 301 /ja/txn-and-requests.html: - to: /ja/docs/introduction/transactions-and-requests - type: 301 + to: /ja/docs/introduction/transactions-and-requests + type: 301 /ja/software-ecosystem.html: - to: /ja/docs/introduction/software-ecosystem - type: 301 + to: /ja/docs/introduction/software-ecosystem + type: 301 /ja/use-cases.html: - to: /ja/docs/use-cases/ - type: 301 + to: /ja/docs/use-cases/ + type: 301 /ja/payments-uc.html: - to: /ja/docs/use-cases/payments/ - type: 301 + to: /ja/docs/use-cases/payments/ + type: 301 /ja/peer-to-peer-payments-uc.html: - to: /ja/docs/use-cases/payments/peer-to-peer-payments-uc - type: 301 + to: /ja/docs/use-cases/payments/peer-to-peer-payments-uc + type: 301 /ja/restricting-deposits-uc.html: - to: /ja/docs/use-cases/payments/restricting-deposits-uc - type: 301 + to: /ja/docs/use-cases/payments/restricting-deposits-uc + type: 301 /ja/escrow-uc.html: - to: /ja/docs/use-cases/payments/smart-contracts-uc - type: 301 + to: /ja/docs/use-cases/payments/smart-contracts-uc + type: 301 /ja/tokenization.html: - to: /ja/docs/use-cases/tokenization/ - type: 301 + to: /ja/docs/use-cases/tokenization/ + type: 301 /ja/stablecoin-issuer.html: - to: /ja/docs/use-cases/tokenization/stablecoin-issuer - type: 301 + to: /ja/docs/use-cases/tokenization/stablecoin-issuer + type: 301 /ja/nft-mkt-overview.html: - to: /ja/docs/use-cases/tokenization/nft-mkt-overview - type: 301 + to: /ja/docs/use-cases/tokenization/nft-mkt-overview + type: 301 /ja/nftoken-marketplace.html: - to: /ja/docs/use-cases/tokenization/nftoken-marketplace - type: 301 + to: /ja/docs/use-cases/tokenization/nftoken-marketplace + type: 301 /ja/authorized-minter.html: - to: /ja/docs/use-cases/tokenization/authorized-minter - type: 301 + to: /ja/docs/use-cases/tokenization/authorized-minter + type: 301 /ja/digital-artist.html: - to: /ja/docs/use-cases/tokenization/digital-artist - type: 301 + to: /ja/docs/use-cases/tokenization/digital-artist + type: 301 /ja/defi-uc.html: - to: /ja/docs/use-cases/defi/ - type: 301 + to: /ja/docs/use-cases/defi/ + type: 301 /ja/algorithmic-trading.html: - to: /ja/docs/use-cases/defi/algorithmic-trading - type: 301 + to: /ja/docs/use-cases/defi/algorithmic-trading + type: 301 /ja/list-xrp-as-an-exchange.html: - to: /ja/docs/use-cases/defi/list-xrp-as-an-exchange - type: 301 + to: /ja/docs/use-cases/defi/list-xrp-as-an-exchange + type: 301 /ja/concepts.html: - to: /ja/docs/concepts/ - type: 301 + to: /ja/docs/concepts/ + type: 301 /ja/networks-and-servers.html: - to: /ja/docs/concepts/networks-and-servers/ - type: 301 + to: /ja/docs/concepts/networks-and-servers/ + type: 301 /ja/xrpl-servers.html: - to: /ja/docs/concepts/networks-and-servers/ - type: 301 + to: /ja/docs/concepts/networks-and-servers/ + type: 301 /ja/rippled-server-modes.html: - to: /ja/docs/concepts/networks-and-servers/rippled-server-modes - type: 301 + to: /ja/docs/concepts/networks-and-servers/rippled-server-modes + type: 301 /ja/clustering.html: - to: /ja/docs/concepts/networks-and-servers/clustering - type: 301 + to: /ja/docs/concepts/networks-and-servers/clustering + type: 301 /ja/ledger-history.html: - to: /ja/docs/concepts/networks-and-servers/ledger-history - type: 301 + to: /ja/docs/concepts/networks-and-servers/ledger-history + type: 301 /ja/peer-protocol.html: - to: /ja/docs/concepts/networks-and-servers/peer-protocol - type: 301 + to: /ja/docs/concepts/networks-and-servers/peer-protocol + type: 301 /ja/transaction-censorship-detection.html: - to: /ja/docs/concepts/networks-and-servers/transaction-censorship-detection - type: 301 + to: /ja/docs/concepts/networks-and-servers/transaction-censorship-detection + type: 301 /ja/parallel-networks.html: - to: /ja/docs/concepts/networks-and-servers/parallel-networks - type: 301 + to: /ja/docs/concepts/networks-and-servers/parallel-networks + type: 301 /ja/amendments.html: - to: /ja/docs/concepts/networks-and-servers/amendments - type: 301 + to: /ja/docs/concepts/networks-and-servers/amendments + type: 301 /ja/the-clio-server.html: - to: /ja/docs/concepts/networks-and-servers/the-clio-server - type: 301 + to: /ja/docs/concepts/networks-and-servers/the-clio-server + type: 301 /ja/consensus.html: - to: /ja/docs/concepts/consensus-protocol/ - type: 301 + to: /ja/docs/concepts/consensus-protocol/ + type: 301 /ja/consensus-structure.html: - to: /ja/docs/concepts/consensus-protocol/consensus-structure - type: 301 + to: /ja/docs/concepts/consensus-protocol/consensus-structure + type: 301 /ja/consensus-principles-and-rules.html: - to: /ja/docs/concepts/consensus-protocol/consensus-principles-and-rules - type: 301 + to: /ja/docs/concepts/consensus-protocol/consensus-principles-and-rules + type: 301 /ja/consensus-protections.html: - to: /ja/docs/concepts/consensus-protocol/consensus-protections - type: 301 + to: /ja/docs/concepts/consensus-protocol/consensus-protections + type: 301 /ja/invariant-checking.html: - to: /ja/docs/concepts/consensus-protocol/invariant-checking - type: 301 + to: /ja/docs/concepts/consensus-protocol/invariant-checking + type: 301 /ja/fee-voting.html: - to: /ja/docs/concepts/consensus-protocol/fee-voting - type: 301 + to: /ja/docs/concepts/consensus-protocol/fee-voting + type: 301 /ja/negative-unl.html: - to: /ja/docs/concepts/consensus-protocol/negative-unl - type: 301 + to: /ja/docs/concepts/consensus-protocol/negative-unl + type: 301 /ja/consensus-research.html: - to: /ja/docs/concepts/consensus-protocol/consensus-research - type: 301 + to: /ja/docs/concepts/consensus-protocol/consensus-research + type: 301 /ja/ledgers.html: - to: /ja/docs/concepts/ledgers/ - type: 301 + to: /ja/docs/concepts/ledgers/ + type: 301 /ja/ledger-structure.html: - to: /ja/docs/concepts/ledgers/ledger-structure - type: 301 + to: /ja/docs/concepts/ledgers/ledger-structure + type: 301 /ja/open-closed-validated-ledgers.html: - to: /ja/docs/concepts/ledgers/open-closed-validated-ledgers - type: 301 + to: /ja/docs/concepts/ledgers/open-closed-validated-ledgers + type: 301 /ja/ledger-close-times.html: - to: /ja/docs/concepts/ledgers/ledger-close-times - type: 301 + to: /ja/docs/concepts/ledgers/ledger-close-times + type: 301 /ja/transactions.html: - to: /ja/docs/concepts/transactions/ - type: 301 + to: /ja/docs/concepts/transactions/ + type: 301 /ja/fees.html: - to: /ja/docs/concepts/transactions/fees - type: 301 + to: /ja/docs/concepts/transactions/fees + type: 301 /ja/reliable-transaction-submission.html: - to: /ja/docs/concepts/transactions/reliable-transaction-submission - type: 301 + to: /ja/docs/concepts/transactions/reliable-transaction-submission + type: 301 /ja/secure-signing.html: - to: /ja/docs/concepts/transactions/secure-signing - type: 301 + to: /ja/docs/concepts/transactions/secure-signing + type: 301 /ja/source-and-destination-tags.html: - to: /ja/docs/concepts/transactions/source-and-destination-tags - type: 301 + to: /ja/docs/concepts/transactions/source-and-destination-tags + type: 301 /ja/transaction-cost.html: - to: /ja/docs/concepts/transactions/transaction-cost - type: 301 + to: /ja/docs/concepts/transactions/transaction-cost + type: 301 /ja/transaction-queue.html: - to: /ja/docs/concepts/transactions/transaction-queue - type: 301 + to: /ja/docs/concepts/transactions/transaction-queue + type: 301 /ja/finality-of-results.html: - to: /ja/docs/concepts/transactions/finality-of-results/ - type: 301 + to: /ja/docs/concepts/transactions/finality-of-results/ + type: 301 /ja/look-up-transaction-results.html: - to: /ja/docs/concepts/transactions/finality-of-results/look-up-transaction-results - type: 301 + to: /ja/docs/concepts/transactions/finality-of-results/look-up-transaction-results + type: 301 /ja/transaction-malleability.html: - to: /ja/docs/concepts/transactions/finality-of-results/transaction-malleability - type: 301 + to: /ja/docs/concepts/transactions/finality-of-results/transaction-malleability + type: 301 /ja/canceling-a-transaction.html: - to: /ja/docs/concepts/transactions/finality-of-results/canceling-a-transaction - type: 301 + to: /ja/docs/concepts/transactions/finality-of-results/canceling-a-transaction + type: 301 /ja/payment-types.html: - to: /ja/docs/concepts/payment-types/ - type: 301 + to: /ja/docs/concepts/payment-types/ + type: 301 /ja/direct-xrp-payments.html: - to: /ja/docs/concepts/payment-types/direct-xrp-payments - type: 301 + to: /ja/docs/concepts/payment-types/direct-xrp-payments + type: 301 /ja/cross-currency-payments.html: - to: /ja/docs/concepts/payment-types/cross-currency-payments - type: 301 + to: /ja/docs/concepts/payment-types/cross-currency-payments + type: 301 /ja/checks.html: - to: /ja/docs/concepts/payment-types/checks - type: 301 + to: /ja/docs/concepts/payment-types/checks + type: 301 /ja/escrow.html: - to: /ja/docs/concepts/payment-types/escrow - type: 301 + to: /ja/docs/concepts/payment-types/escrow + type: 301 /ja/partial-payments.html: - to: /ja/docs/concepts/payment-types/partial-payments - type: 301 + to: /ja/docs/concepts/payment-types/partial-payments + type: 301 /ja/payment-channels.html: - to: /ja/docs/concepts/payment-types/payment-channels - type: 301 + to: /ja/docs/concepts/payment-types/payment-channels + type: 301 /ja/robustly-monitoring-for-payments.html: - to: /ja/docs/concepts/payment-types/robustly-monitoring-for-payments - type: 301 + to: /ja/docs/concepts/payment-types/robustly-monitoring-for-payments + type: 301 /ja/sending-payments-to-customers.html: - to: /ja/docs/concepts/payment-types/sending-payments-to-customers - type: 301 + to: /ja/docs/concepts/payment-types/sending-payments-to-customers + type: 301 /ja/bouncing-payments.html: - to: /ja/docs/concepts/payment-types/bouncing-payments - type: 301 + to: /ja/docs/concepts/payment-types/bouncing-payments + type: 301 /ja/tokens.html: - to: /ja/docs/concepts/tokens/ - type: 301 + to: /ja/docs/concepts/tokens/ + type: 301 /ja/trust-lines-and-issuing.html: - to: /ja/docs/concepts/tokens/fungible-tokens/ - type: 301 + to: /ja/docs/concepts/tokens/fungible-tokens/ + type: 301 /ja/authorized-trust-lines.html: - to: /ja/docs/concepts/tokens/fungible-tokens/authorized-trust-lines - type: 301 + to: /ja/docs/concepts/tokens/fungible-tokens/authorized-trust-lines + type: 301 /ja/stablecoins.html: - to: /ja/docs/concepts/tokens/fungible-tokens/stablecoins/ - type: 301 + to: /ja/docs/concepts/tokens/fungible-tokens/stablecoins/ + type: 301 /ja/stablecoin-settings.html: - to: /ja/docs/concepts/tokens/fungible-tokens/stablecoins/settings - type: 301 + to: /ja/docs/concepts/tokens/fungible-tokens/stablecoins/settings + type: 301 /ja/stablecoin-configuration.html: - to: /ja/docs/concepts/tokens/fungible-tokens/stablecoins/configuration - type: 301 + to: /ja/docs/concepts/tokens/fungible-tokens/stablecoins/configuration + type: 301 /ja/stablecoin-precautions.html: - to: /ja/docs/concepts/tokens/fungible-tokens/stablecoins/precautions - type: 301 + to: /ja/docs/concepts/tokens/fungible-tokens/stablecoins/precautions + type: 301 /ja/stablecoin-compliance-guidelines.html: - to: /ja/docs/concepts/tokens/fungible-tokens/stablecoins/compliance-guidelines - type: 301 + to: /ja/docs/concepts/tokens/fungible-tokens/stablecoins/compliance-guidelines + type: 301 /ja/clawing-back-tokens.html: - to: /ja/docs/concepts/tokens/fungible-tokens/clawing-back-tokens - type: 301 + to: /ja/docs/concepts/tokens/fungible-tokens/clawing-back-tokens + type: 301 /ja/freezes.html: - to: /ja/docs/concepts/tokens/fungible-tokens/freezes - type: 301 + to: /ja/docs/concepts/tokens/fungible-tokens/freezes + type: 301 /ja/common-misconceptions-about-freezes.html: - to: /ja/docs/concepts/tokens/fungible-tokens/common-misconceptions-about-freezes - type: 301 + to: /ja/docs/concepts/tokens/fungible-tokens/common-misconceptions-about-freezes + type: 301 /ja/paths.html: - to: /ja/docs/concepts/tokens/fungible-tokens/paths - type: 301 + to: /ja/docs/concepts/tokens/fungible-tokens/paths + type: 301 /ja/rippling.html: - to: /ja/docs/concepts/tokens/fungible-tokens/rippling - type: 301 + to: /ja/docs/concepts/tokens/fungible-tokens/rippling + type: 301 /ja/non-fungible-tokens.html: - to: /ja/docs/concepts/tokens/nfts/ - type: 301 + to: /ja/docs/concepts/tokens/nfts/ + type: 301 /ja/nft-storage.html: - to: /ja/docs/concepts/tokens/nfts/payload-storage - type: 301 + to: /ja/docs/concepts/tokens/nfts/payload-storage + type: 301 /ja/non-fungible-token-transfers.html: - to: /ja/docs/concepts/tokens/nfts/trading - type: 301 + to: /ja/docs/concepts/tokens/nfts/trading + type: 301 /ja/nft-reserve-requirements.html: - to: /ja/docs/concepts/tokens/nfts/reserve-requirements - type: 301 + to: /ja/docs/concepts/tokens/nfts/reserve-requirements + type: 301 /ja/nftoken-batch-minting.html: - to: /ja/docs/concepts/tokens/nfts/batch-minting - type: 301 + to: /ja/docs/concepts/tokens/nfts/batch-minting + type: 301 /ja/nftoken-authorized-minting.html: - to: /ja/docs/concepts/tokens/nfts/authorizing-another-minter - type: 301 + to: /ja/docs/concepts/tokens/nfts/authorizing-another-minter + type: 301 /ja/nftoken-auctions.html: - to: /ja/docs/concepts/tokens/nfts/running-an-nft-auction - type: 301 + to: /ja/docs/concepts/tokens/nfts/running-an-nft-auction + type: 301 /ja/nft-collections.html: - to: /ja/docs/concepts/tokens/nfts/collections - type: 301 + to: /ja/docs/concepts/tokens/nfts/collections + type: 301 /ja/nft-fixed-supply.html: - to: /ja/docs/concepts/tokens/nfts/guaranteeing-a-fixed-supply - type: 301 + to: /ja/docs/concepts/tokens/nfts/guaranteeing-a-fixed-supply + type: 301 /ja/nft-apis.html: - to: /ja/docs/concepts/tokens/nfts/nft-apis - type: 301 + to: /ja/docs/concepts/tokens/nfts/nft-apis + type: 301 /ja/transfer-fees.html: - to: /ja/docs/concepts/tokens/transfer-fees - type: 301 + to: /ja/docs/concepts/tokens/transfer-fees + type: 301 /ja/demurrage.html: - to: /ja/docs/concepts/tokens/fungible-tokens/demurrage - type: 301 + to: /ja/docs/concepts/tokens/fungible-tokens/demurrage + type: 301 /ja/decentralized-exchange.html: - to: /ja/docs/concepts/tokens/decentralized-exchange/ - type: 301 + to: /ja/docs/concepts/tokens/decentralized-exchange/ + type: 301 /ja/offers.html: - to: /ja/docs/concepts/tokens/decentralized-exchange/offers - type: 301 + to: /ja/docs/concepts/tokens/decentralized-exchange/offers + type: 301 /ja/autobridging.html: - to: /ja/docs/concepts/tokens/decentralized-exchange/autobridging - type: 301 + to: /ja/docs/concepts/tokens/decentralized-exchange/autobridging + type: 301 /ja/ticksize.html: - to: /ja/docs/concepts/tokens/decentralized-exchange/ticksize - type: 301 + to: /ja/docs/concepts/tokens/decentralized-exchange/ticksize + type: 301 /ja/automated-market-makers.html: - to: /ja/docs/concepts/tokens/decentralized-exchange/automated-market-makers - type: 301 + to: /ja/docs/concepts/tokens/decentralized-exchange/automated-market-makers + type: 301 /ja/accounts.html: - to: /ja/docs/concepts/accounts/ - type: 301 + to: /ja/docs/concepts/accounts/ + type: 301 /ja/account-types.html: - to: /ja/docs/concepts/accounts/account-types - type: 301 + to: /ja/docs/concepts/accounts/account-types + type: 301 /ja/deleting-accounts.html: - to: /ja/docs/concepts/accounts/deleting-accounts - type: 301 + to: /ja/docs/concepts/accounts/deleting-accounts + type: 301 /ja/reserves.html: - to: /ja/docs/concepts/accounts/reserves - type: 301 + to: /ja/docs/concepts/accounts/reserves + type: 301 /ja/addresses.html: - to: /ja/docs/concepts/accounts/addresses - type: 301 + to: /ja/docs/concepts/accounts/addresses + type: 301 /ja/cryptographic-keys.html: - to: /ja/docs/concepts/accounts/cryptographic-keys - type: 301 + to: /ja/docs/concepts/accounts/cryptographic-keys + type: 301 /ja/multi-signing.html: - to: /ja/docs/concepts/accounts/multi-signing - type: 301 + to: /ja/docs/concepts/accounts/multi-signing + type: 301 /ja/depositauth.html: - to: /ja/docs/concepts/accounts/depositauth - type: 301 + to: /ja/docs/concepts/accounts/depositauth + type: 301 /ja/tickets.html: - to: /ja/docs/concepts/accounts/tickets - type: 301 + to: /ja/docs/concepts/accounts/tickets + type: 301 /ja/decentralized-identifiers.html: - to: /ja/docs/concepts/accounts/decentralized-identifiers - type: 301 + to: /ja/docs/concepts/accounts/decentralized-identifiers + type: 301 /ja/intro-to-consensus.html: - to: /ja/docs/concepts/consensus-protocol/ - type: 301 + to: /ja/docs/concepts/consensus-protocol/ + type: 301 /ja/set-up-secure-signing.html: - to: /ja/docs/concepts/transactions/secure-signing - type: 301 + to: /ja/docs/concepts/transactions/secure-signing + type: 301 /ja/transaction-basics.html: - to: /ja/docs/concepts/transactions/ - type: 301 + to: /ja/docs/concepts/transactions/ + type: 301 /ja/become-an-xrp-ledger-gateway.html: - to: /ja/docs/use-cases/tokenization/stablecoin-issuer - type: 301 + to: /ja/docs/use-cases/tokenization/stablecoin-issuer + type: 301 /ja/consensus-network.html: - to: /ja/docs/concepts/consensus-protocol/ - type: 301 + to: /ja/docs/concepts/consensus-protocol/ + type: 301 /ja/complex-payment-types.html: - to: /ja/docs/concepts/payment-types/ - type: 301 + to: /ja/docs/concepts/payment-types/ + type: 301 /ja/about-canceling-a-transaction.html: - to: /ja/docs/concepts/transactions/finality-of-results/canceling-a-transaction - type: 301 + to: /ja/docs/concepts/transactions/finality-of-results/canceling-a-transaction + type: 301 /ja/issuing-and-operational-addresses.html: - to: /ja/docs/concepts/accounts/account-types - type: 301 + to: /ja/docs/concepts/accounts/account-types + type: 301 /ja/issued-currencies.html: - to: /ja/docs/concepts/tokens/ - type: 301 + to: /ja/docs/concepts/tokens/ + type: 301 /ja/issued-currencies-overview.html: - to: /ja/docs/concepts/tokens/ - type: 301 + to: /ja/docs/concepts/tokens/ + type: 301 /ja/federated-sidechains.html: - to: https://opensource.ripple.com/docs/xls-38d-cross-chain-bridge/cross-chain-bridges/ - type: 301 + to: https://opensource.ripple.com/docs/xls-38d-cross-chain-bridge/cross-chain-bridges/ + type: 301 /ja/xrpl-interoperability.html: - to: https://opensource.ripple.com/docs/xls-38d-cross-chain-bridge/cross-chain-bridges/ - type: 301 + to: https://opensource.ripple.com/docs/xls-38d-cross-chain-bridge/cross-chain-bridges/ + type: 301 /ja/intro-to-evm-sidechain.html: - to: https://opensource.ripple.com/docs/evm-sidechain/intro-to-evm-sidechain/ - type: 301 + to: https://opensource.ripple.com/docs/evm-sidechain/intro-to-evm-sidechain/ + type: 301 /ja/the-rippled-server.html: - to: /ja/docs/concepts/networks-and-servers/ - type: 301 + to: /ja/docs/concepts/networks-and-servers/ + type: 301 /ja/nft-concepts.html: - to: /ja/docs/concepts/tokens/nfts/ - type: 301 + to: /ja/docs/concepts/tokens/nfts/ + type: 301 /ja/nft-conceptual-overview.html: - to: /ja/docs/concepts/tokens/nfts/ - type: 301 + to: /ja/docs/concepts/tokens/nfts/ + type: 301 /ja/xrpl-sidechains.html: - to: /ja/docs/concepts/xrpl-sidechains/ - type: 301 + to: /ja/docs/concepts/xrpl-sidechains/ + type: 301 /ja/cross-chain-bridges.html: - to: /ja/docs/concepts/xrpl-sidechains/cross-chain-bridges - type: 301 + to: /ja/docs/concepts/xrpl-sidechains/cross-chain-bridges + type: 301 /ja/witness-servers.html: - to: /ja/docs/concepts/xrpl-sidechains/witness-servers - type: 301 + to: /ja/docs/concepts/xrpl-sidechains/witness-servers + type: 301 /ja/public-servers.html: - to: /ja/docs/tutorials/public-servers - type: 301 + to: /ja/docs/tutorials/public-servers + type: 301 /ja/python.html: - to: /ja/docs/tutorials/python/ - type: 301 + to: /ja/docs/tutorials/python/ + type: 301 /ja/get-started-using-python.html: - to: /ja/docs/tutorials/python/get-started - type: 301 + to: /ja/docs/tutorials/python/get-started + type: 301 /ja/docs/tutorials/python/get-started/: - to: /ja/docs/tutorials/python/build-apps/get-started/ - type: 301 + to: /ja/docs/tutorials/python/build-apps/get-started/ + type: 301 /ja/modular-tutorials-in-python.html: - to: /ja/docs/tutorials/python/ - type: 301 + to: /ja/docs/tutorials/python/ + type: 301 /ja/send-payments-using-python.html: - to: /ja/docs/tutorials/python/send-payments - type: 301 + to: /ja/docs/tutorials/python/send-payments + type: 301 /ja/py-create-accounts-send-xrp.html: - to: /ja/docs/tutorials/python/send-payments/create-accounts-send-xrp - type: 301 + to: /ja/docs/tutorials/python/send-payments/create-accounts-send-xrp + type: 301 /ja/py-create-trustline-send-currency.html: - to: /ja/docs/tutorials/python/send-payments/create-trustline-send-currency - type: 301 + to: /ja/docs/tutorials/python/send-payments/create-trustline-send-currency + type: 301 /ja/py-create-time-based-escrows.html: - to: /ja/docs/tutorials/python/send-payments/create-time-based-escrows - type: 301 + to: /ja/docs/tutorials/python/send-payments/create-time-based-escrows + type: 301 /ja/py-mint-and-burn-nfts.html: - to: /ja/docs/tutorials/python/nfts/mint-and-burn-nfts - type: 301 + to: /ja/docs/tutorials/python/nfts/mint-and-burn-nfts + type: 301 /ja/py-transfer-nfts.html: - to: /ja/docs/tutorials/python/nfts/transfer-nfts - type: 301 + to: /ja/docs/tutorials/python/nfts/transfer-nfts + type: 301 /ja/py-broker-sale.html: - to: /ja/docs/tutorials/python/nfts/broker-sale - type: 301 + to: /ja/docs/tutorials/python/nfts/broker-sale + type: 301 /ja/py-authorize-minter.html: - to: /ja/docs/tutorials/python/nfts/authorize-minter - type: 301 + to: /ja/docs/tutorials/python/nfts/authorize-minter + type: 301 /ja/py-batch-minting.html: - to: /ja/docs/tutorials/python/nfts/batch-minting - type: 301 + to: /ja/docs/tutorials/python/nfts/batch-minting + type: 301 /ja/build-a-desktop-wallet-in-python.html: - to: /ja/docs/tutorials/python/build-apps/build-a-desktop-wallet-in-python - type: 301 + to: /ja/docs/tutorials/python/build-apps/build-a-desktop-wallet-in-python + type: 301 /ja/javascript.html: - to: /ja/docs/tutorials/javascript/ - type: 301 + to: /ja/docs/tutorials/javascript/ + type: 301 /ja/get-started-using-javascript.html: - to: /ja/docs/tutorials/javascript/build-apps/get-started - type: 301 + to: /ja/docs/tutorials/javascript/build-apps/get-started + type: 301 /ja/docs/tutorials/javascript/get-started: - to: /ja/docs/tutorials/javascript/build-apps/get-started/ - type: 301 + to: /ja/docs/tutorials/javascript/build-apps/get-started/ + type: 301 /ja/docs/tutorials/javascript/get-started/: - to: /ja/docs/tutorials/javascript/build-apps/get-started/ - type: 301 + to: /ja/docs/tutorials/javascript/build-apps/get-started/ + type: 301 /ja/get-started-using-node-js.html: - to: /ja/docs/tutorials/javascript/build-apps/get-started - type: 301 + to: /ja/docs/tutorials/javascript/build-apps/get-started + type: 301 /ja/get-started-with-rippleapi-for-javascript.html: - to: /ja/docs/tutorials/javascript/build-apps/get-started - type: 301 + to: /ja/docs/tutorials/javascript/build-apps/get-started + type: 301 /ja/modular-tutorials-in-javascript.html: - to: /ja/docs/tutorials/javascript/ - type: 301 + to: /ja/docs/tutorials/javascript/ + type: 301 /ja/send-payments-using-javascript.html: - to: /ja/docs/tutorials/javascript/send-payments - type: 301 + to: /ja/docs/tutorials/javascript/send-payments + type: 301 /ja/create-accounts-send-xrp-using-javascript.html: - to: /ja/docs/tutorials/javascript/send-payments/create-accounts-send-xrp - type: 301 + to: /ja/docs/tutorials/javascript/send-payments/create-accounts-send-xrp + type: 301 /ja/create-trustline-send-currency-using-javascript.html: - to: /ja/docs/tutorials/javascript/send-payments/create-trustline-send-currency - type: 301 + to: /ja/docs/tutorials/javascript/send-payments/create-trustline-send-currency + type: 301 /ja/create-time-based-escrows-using-javascript.html: - to: /ja/docs/tutorials/javascript/send-payments/create-time-based-escrows - type: 301 + to: /ja/docs/tutorials/javascript/send-payments/create-time-based-escrows + type: 301 /ja/create-conditional-escrows-using-javascript.html: - to: /ja/docs/tutorials/javascript/send-payments/create-conditional-escrows - type: 301 + to: /ja/docs/tutorials/javascript/send-payments/create-conditional-escrows + type: 301 /ja/nfts-using-javascript.html: - to: /ja/docs/tutorials/javascript/nfts-using-javascript/ - type: 301 + to: /ja/docs/tutorials/javascript/nfts-using-javascript/ + type: 301 /ja/nfts-using-python.html: - to: /ja/docs/tutorials/python/nfts - type: 301 + to: /ja/docs/tutorials/python/nfts + type: 301 /ja/mint-and-burn-nfts-using-javascript.html: - to: /ja/docs/tutorials/javascript/nfts/mint-and-burn-nfts - type: 301 + to: /ja/docs/tutorials/javascript/nfts/mint-and-burn-nfts + type: 301 /ja/transfer-nfts-using-javascript.html: - to: /ja/docs/tutorials/javascript/nfts/transfer-nfts - type: 301 + to: /ja/docs/tutorials/javascript/nfts/transfer-nfts + type: 301 /ja/broker-an-nft-sale-using-javascript.html: - to: /ja/docs/tutorials/javascript/nfts/broker-an-nft-sale - type: 301 + to: /ja/docs/tutorials/javascript/nfts/broker-an-nft-sale + type: 301 /ja/assign-an-authorized-minter-using-javascript.html: - to: /ja/docs/tutorials/javascript/nfts/assign-an-authorized-minter - type: 301 + to: /ja/docs/tutorials/javascript/nfts/assign-an-authorized-minter + type: 301 /ja/batch-mint-nfts-using-javascript.html: - to: /ja/docs/tutorials/javascript/nfts/batch-mint-nfts - type: 301 + to: /ja/docs/tutorials/javascript/nfts/batch-mint-nfts + type: 301 /ja/build-a-browser-wallet-in-javascript.html: - to: /ja/docs/tutorials/javascript/build-apps/build-a-browser-wallet-in-javascript/ - type: 301 + to: /ja/docs/tutorials/javascript/build-apps/build-a-browser-wallet-in-javascript/ + type: 301 /ja/build-a-browser-wallet-using-javascript.html: - to: /ja/docs/tutorials/javascript/build-apps/build-a-browser-wallet-in-javascript/ - type: 301 + to: /ja/docs/tutorials/javascript/build-apps/build-a-browser-wallet-in-javascript/ + type: 301 /ja/docs/tutorials/javascript/build-a-browser-wallet-in-javascript: - to: /ja/docs/tutorials/javascript/build-apps/build-a-browser-wallet-in-javascript/ - type: 301 + to: /ja/docs/tutorials/javascript/build-apps/build-a-browser-wallet-in-javascript/ + type: 301 /ja/docs/tutorials/javascript/build-a-browser-wallet-in-javascript/: - to: /ja/docs/tutorials/javascript/build-apps/build-a-browser-wallet-in-javascript/ - type: 301 + to: /ja/docs/tutorials/javascript/build-apps/build-a-browser-wallet-in-javascript/ + type: 301 /ja/build-a-desktop-wallet-in-javascript.html: - to: /ja/docs/tutorials/javascript/build-apps/build-a-desktop-wallet-in-javascript - type: 301 + to: /ja/docs/tutorials/javascript/build-apps/build-a-desktop-wallet-in-javascript + type: 301 /ja/docs/tutorials/javascript/build-a-desktop-wallet-in-javascript: - to: /ja/docs/tutorials/javascript/build-apps/build-a-desktop-wallet-in-javascript - type: 301 + to: /ja/docs/tutorials/javascript/build-apps/build-a-desktop-wallet-in-javascript + type: 301 /ja/docs/tutorials/javascript/build-a-desktop-wallet-in-javascript/: - to: /ja/docs/tutorials/javascript/build-apps/build-a-desktop-wallet-in-javascript - type: 301 + to: /ja/docs/tutorials/javascript/build-apps/build-a-desktop-wallet-in-javascript + type: 301 /ja/java.html: - to: /ja/docs/tutorials/java/ - type: 301 + to: /ja/docs/tutorials/java/ + type: 301 /ja/get-started-using-java.html: - to: /ja/docs/tutorials/java/build-apps/get-started - type: 301 + to: /ja/docs/tutorials/java/build-apps/get-started + type: 301 /ja/docs/tutorials/java/get-started: - to: /ja/docs/tutorials/java/build-apps/get-started - type: 301 + to: /ja/docs/tutorials/java/build-apps/get-started + type: 301 /ja/docs/tutorials/java/get-started/: - to: /ja/docs/tutorials/java/build-apps/get-started - type: 301 + to: /ja/docs/tutorials/java/build-apps/get-started + type: 301 /ja/php.html: - to: /ja/docs/tutorials/php - type: 301 + to: /ja/docs/tutorials/php + type: 301 /ja/get-started-using-php.html: - to: /ja/docs/tutorials/php/build-apps/get-started - type: 301 + to: /ja/docs/tutorials/php/build-apps/get-started + type: 301 /ja/http-websocket-apis-tutorials.html: - to: /ja/docs/tutorials/http-websocket-apis/ - type: 301 + to: /ja/docs/tutorials/http-websocket-apis/ + type: 301 /ja/get-started-with-the-rippled-api.html: - to: /ja/docs/tutorials/http-websocket-apis/build-apps/get-started - type: 301 + to: /ja/docs/tutorials/http-websocket-apis/build-apps/get-started + type: 301 /ja/get-started-using-http-websocket-apis.html: - to: /ja/docs/tutorials/http-websocket-apis/build-apps/get-started/ - type: 301 + to: /ja/docs/tutorials/http-websocket-apis/build-apps/get-started/ + type: 301 /ja/docs/tutorials/http-websocket-apis/get-started: - to: /ja/docs/tutorials/http-websocket-apis/build-apps/get-started/ - type: 301 + to: /ja/docs/tutorials/http-websocket-apis/build-apps/get-started/ + type: 301 /ja/docs/tutorials/http-websocket-apis/get-started/: - to: /ja/docs/tutorials/http-websocket-apis/build-apps/get-started/ - type: 301 + to: /ja/docs/tutorials/http-websocket-apis/build-apps/get-started/ + type: 301 /ja/monitor-incoming-payments-with-websocket.html: - to: /ja/docs/tutorials/http-websocket-apis/build-apps/monitor-incoming-payments-with-websocket - type: 301 + to: /ja/docs/tutorials/http-websocket-apis/build-apps/monitor-incoming-payments-with-websocket + type: 301 /ja/tasks.html: - to: /ja/docs/tutorials/how-tos/ - type: 301 + to: /ja/docs/tutorials/how-tos/ + type: 301 /ja/manage-account-settings.html: - to: /ja/docs/tutorials/how-tos/manage-account-settings/ - type: 301 + to: /ja/docs/tutorials/how-tos/manage-account-settings/ + type: 301 /ja/assign-a-regular-key-pair.html: - to: /ja/docs/tutorials/how-tos/manage-account-settings/assign-a-regular-key-pair - type: 301 + to: /ja/docs/tutorials/how-tos/manage-account-settings/assign-a-regular-key-pair + type: 301 /ja/change-or-remove-a-regular-key-pair.html: - to: /ja/docs/tutorials/how-tos/manage-account-settings/change-or-remove-a-regular-key-pair - type: 301 + to: /ja/docs/tutorials/how-tos/manage-account-settings/change-or-remove-a-regular-key-pair + type: 301 /ja/disable-master-key-pair.html: - to: /ja/docs/tutorials/how-tos/manage-account-settings/disable-master-key-pair - type: 301 + to: /ja/docs/tutorials/how-tos/manage-account-settings/disable-master-key-pair + type: 301 /ja/set-up-multi-signing.html: - to: /ja/docs/tutorials/how-tos/manage-account-settings/set-up-multi-signing - type: 301 + to: /ja/docs/tutorials/how-tos/manage-account-settings/set-up-multi-signing + type: 301 /ja/send-a-multi-signed-transaction.html: - to: /ja/docs/tutorials/how-tos/manage-account-settings/send-a-multi-signed-transaction - type: 301 + to: /ja/docs/tutorials/how-tos/manage-account-settings/send-a-multi-signed-transaction + type: 301 /ja/require-destination-tags.html: - to: /ja/docs/tutorials/how-tos/manage-account-settings/require-destination-tags - type: 301 + to: /ja/docs/tutorials/how-tos/manage-account-settings/require-destination-tags + type: 301 /ja/offline-account-setup.html: - to: /ja/docs/tutorials/how-tos/manage-account-settings/offline-account-setup - type: 301 + to: /ja/docs/tutorials/how-tos/manage-account-settings/offline-account-setup + type: 301 /ja/use-tickets.html: - to: /ja/docs/tutorials/how-tos/manage-account-settings/use-tickets - type: 301 + to: /ja/docs/tutorials/how-tos/manage-account-settings/use-tickets + type: 301 /ja/send-xrp.html: - to: /ja/docs/tutorials/how-tos/send-xrp - type: 301 + to: /ja/docs/tutorials/how-tos/send-xrp + type: 301 /ja/use-specialized-payment-types.html: - to: /ja/docs/tutorials/how-tos/use-specialized-payment-types/ - type: 301 + to: /ja/docs/tutorials/how-tos/use-specialized-payment-types/ + type: 301 /ja/use-complex-payment-types.html: - to: /ja/docs/tutorials/how-tos/use-specialized-payment-types/ - type: 301 + to: /ja/docs/tutorials/how-tos/use-specialized-payment-types/ + type: 301 /ja/use-escrows.html: - to: /ja/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/ - type: 301 + to: /ja/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/ + type: 301 /ja/send-a-time-held-escrow.html: - to: /ja/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/send-a-time-held-escrow - type: 301 + to: /ja/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/send-a-time-held-escrow + type: 301 /ja/send-a-conditionally-held-escrow.html: - to: /ja/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/send-a-conditionally-held-escrow - type: 301 + to: /ja/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/send-a-conditionally-held-escrow + type: 301 /ja/cancel-an-expired-escrow.html: - to: /ja/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/cancel-an-expired-escrow - type: 301 + to: /ja/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/cancel-an-expired-escrow + type: 301 /ja/look-up-escrows.html: - to: /ja/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/look-up-escrows - type: 301 + to: /ja/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/look-up-escrows + type: 301 /ja/use-an-escrow-as-a-smart-contract.html: - to: /ja/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/use-an-escrow-as-a-smart-contract - type: 301 + to: /ja/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/use-an-escrow-as-a-smart-contract + type: 301 /ja/use-payment-channels.html: - to: /ja/docs/tutorials/how-tos/use-specialized-payment-types/use-payment-channels - type: 301 + to: /ja/docs/tutorials/how-tos/use-specialized-payment-types/use-payment-channels + type: 301 /ja/open-a-payment-channel-to-enable-an-inter-exchange-network.html: - to: /ja/docs/tutorials/how-tos/use-specialized-payment-types/open-a-payment-channel-to-enable-an-inter-exchange-network - type: 301 + to: /ja/docs/tutorials/how-tos/use-specialized-payment-types/open-a-payment-channel-to-enable-an-inter-exchange-network + type: 301 /ja/use-checks.html: - to: /ja/docs/tutorials/how-tos/use-specialized-payment-types/use-checks/use-checks - type: 301 + to: /ja/docs/tutorials/how-tos/use-specialized-payment-types/use-checks/use-checks + type: 301 /ja/send-a-check.html: - to: /ja/docs/tutorials/how-tos/use-specialized-payment-types/use-checks/send-a-check - type: 301 + to: /ja/docs/tutorials/how-tos/use-specialized-payment-types/use-checks/send-a-check + type: 301 /ja/cash-a-check-for-an-exact-amount.html: - to: /ja/docs/tutorials/how-tos/use-specialized-payment-types/use-checks/cash-a-check-for-an-exact-amount - type: 301 + to: /ja/docs/tutorials/how-tos/use-specialized-payment-types/use-checks/cash-a-check-for-an-exact-amount + type: 301 /ja/cash-a-check-for-a-flexible-amount.html: - to: /ja/docs/tutorials/how-tos/use-specialized-payment-types/use-checks/cash-a-check-for-a-flexible-amount - type: 301 + to: /ja/docs/tutorials/how-tos/use-specialized-payment-types/use-checks/cash-a-check-for-a-flexible-amount + type: 301 /ja/cancel-a-check.html: - to: /ja/docs/tutorials/how-tos/use-specialized-payment-types/use-checks/cancel-a-check - type: 301 + to: /ja/docs/tutorials/how-tos/use-specialized-payment-types/use-checks/cancel-a-check + type: 301 /ja/look-up-checks-by-sender.html: - to: /ja/docs/tutorials/how-tos/use-specialized-payment-types/use-checks/look-up-checks-by-sender - type: 301 + to: /ja/docs/tutorials/how-tos/use-specialized-payment-types/use-checks/look-up-checks-by-sender + type: 301 /ja/look-up-checks-by-recipient.html: - to: /ja/docs/tutorials/how-tos/use-specialized-payment-types/use-checks/look-up-checks-by-recipient - type: 301 + to: /ja/docs/tutorials/how-tos/use-specialized-payment-types/use-checks/look-up-checks-by-recipient + type: 301 /ja/use-tokens.html: - to: /ja/docs/tutorials/how-tos/use-tokens/ - type: 301 + to: /ja/docs/tutorials/how-tos/use-tokens/ + type: 301 /ja/issue-a-fungible-token.html: - to: /ja/docs/tutorials/how-tos/use-tokens/issue-a-fungible-token - type: 301 + to: /ja/docs/tutorials/how-tos/use-tokens/issue-a-fungible-token + type: 301 /ja/trade-in-the-decentralized-exchange.html: - to: /ja/docs/tutorials/how-tos/use-tokens/trade-in-the-decentralized-exchange - type: 301 + to: /ja/docs/tutorials/how-tos/use-tokens/trade-in-the-decentralized-exchange + type: 301 /ja/enable-no-freeze.html: - to: /ja/docs/tutorials/how-tos/use-tokens/enable-no-freeze - type: 301 + to: /ja/docs/tutorials/how-tos/use-tokens/enable-no-freeze + type: 301 /ja/enact-global-freeze.html: - to: /ja/docs/tutorials/how-tos/use-tokens/enact-global-freeze - type: 301 + to: /ja/docs/tutorials/how-tos/use-tokens/enact-global-freeze + type: 301 /ja/freeze-a-trust-line.html: - to: /ja/docs/tutorials/how-tos/use-tokens/freeze-a-trust-line - type: 301 + to: /ja/docs/tutorials/how-tos/use-tokens/freeze-a-trust-line + type: 301 /ja/create-an-automated-market-maker.html: - to: /ja/docs/tutorials/how-tos/use-tokens/create-an-automated-market-maker - type: 301 + to: /ja/docs/tutorials/how-tos/use-tokens/create-an-automated-market-maker + type: 301 /ja/use-simple-xrp-payments.html: - to: /ja/docs/tutorials/how-tos/send-xrp - type: 301 + to: /ja/docs/tutorials/how-tos/send-xrp + type: 301 /ja/cancel-or-skip-a-transaction.html: - to: /ja/docs/concepts/transactions/finality-of-results/canceling-a-transaction - type: 301 + to: /ja/docs/concepts/transactions/finality-of-results/canceling-a-transaction + type: 301 /ja/evm-sidechains.html: - to: https://opensource.ripple.com/docs/evm-sidechain/intro-to-evm-sidechain/ - type: 301 + to: https://opensource.ripple.com/docs/evm-sidechain/intro-to-evm-sidechain/ + type: 301 /ja/get-started-evm-sidechain.html: - to: https://opensource.ripple.com/docs/evm-sidechain/get-started-evm-sidechain/ - type: 301 + to: https://opensource.ripple.com/docs/evm-sidechain/get-started-evm-sidechain/ + type: 301 /ja/connect-metamask-to-xrpl-evm-sidechain.html: - to: https://opensource.ripple.com/docs/evm-sidechain/connect-metamask-to-xrpl-evm-sidechain/ - type: 301 + to: https://opensource.ripple.com/docs/evm-sidechain/connect-metamask-to-xrpl-evm-sidechain/ + type: 301 /ja/join-evm-sidechain-devnet.html: - to: https://opensource.ripple.com/docs/evm-sidechain/join-evm-sidechain-devnet/ - type: 301 + to: https://opensource.ripple.com/docs/evm-sidechain/join-evm-sidechain-devnet/ + type: 301 /ja/evm-sidechain-validator-security.html: - to: https://opensource.ripple.com/docs/evm-sidechain/evm-sidechain-validator-security/ - type: 301 + to: https://opensource.ripple.com/docs/evm-sidechain/evm-sidechain-validator-security/ + type: 301 /ja/evm-sidechain-run-a-validator-node.html: - to: https://opensource.ripple.com/docs/evm-sidechain/evm-sidechain-run-a-validator-node/ - type: 301 + to: https://opensource.ripple.com/docs/evm-sidechain/evm-sidechain-run-a-validator-node/ + type: 301 /ja/use-xrpl-sidechains.html: - to: /ja/docs/tutorials/how-tos/use-xrpl-sidechains/ - type: 301 + to: /ja/docs/tutorials/how-tos/use-xrpl-sidechains/ + type: 301 /ja/set-up-xrp-xrp-bridge.html: - to: /ja/docs/tutorials/how-tos/use-xrpl-sidechains/set-up-xrp-xrp-bridge - type: 301 + to: /ja/docs/tutorials/how-tos/use-xrpl-sidechains/set-up-xrp-xrp-bridge + type: 301 /ja/set-up-iou-iou-bridge.html: - to: /ja/docs/tutorials/how-tos/use-xrpl-sidechains/set-up-iou-iou-bridge - type: 301 + to: /ja/docs/tutorials/how-tos/use-xrpl-sidechains/set-up-iou-iou-bridge + type: 301 /ja/submit-cross-chain-transactions.html: - to: /ja/docs/tutorials/how-tos/use-xrpl-sidechains/submit-cross-chain-transaction - type: 301 + to: /ja/docs/tutorials/how-tos/use-xrpl-sidechains/submit-cross-chain-transaction + type: 301 /ja/references.html: - to: /ja/docs/references/ - type: 301 + to: /ja/docs/references/ + type: 301 /ja/protocol-reference.html: - to: /ja/docs/references/protocol/ - type: 301 + to: /ja/docs/references/protocol/ + type: 301 /ja/basic-data-types.html: - to: /ja/docs/references/protocol/data-types/basic-data-types - type: 301 + to: /ja/docs/references/protocol/data-types/basic-data-types + type: 301 /ja/base58-encodings.html: - to: /ja/docs/references/protocol/data-types/base58-encodings - type: 301 + to: /ja/docs/references/protocol/data-types/base58-encodings + type: 301 /ja/currency-formats.html: - to: /ja/docs/references/protocol/data-types/currency-formats - type: 301 + to: /ja/docs/references/protocol/data-types/currency-formats + type: 301 /ja/nftoken.html: - to: /ja/docs/references/protocol/data-types/nftoken - type: 301 + to: /ja/docs/references/protocol/data-types/nftoken + type: 301 /ja/ledger-data-formats.html: - to: /ja/docs/references/protocol/ledger-data/ - type: 301 + to: /ja/docs/references/protocol/ledger-data/ + type: 301 /ja/ledger-header.html: - to: /ja/docs/references/protocol/ledger-data/ledger-header - type: 301 + to: /ja/docs/references/protocol/ledger-data/ledger-header + type: 301 /ja/ledger-entry-common-fields.html: - to: /ja/docs/references/protocol/ledger-data/common-fields - type: 301 + to: /ja/docs/references/protocol/ledger-data/common-fields + type: 301 /ja/ledger-entry-types.html: - to: /ja/docs/references/protocol/ledger-data/ledger-entry-types/ - type: 301 + to: /ja/docs/references/protocol/ledger-data/ledger-entry-types/ + type: 301 /ja/ledger-object-types.html: - to: /ja/docs/references/protocol/ledger-data/ledger-entry-types/ - type: 301 + to: /ja/docs/references/protocol/ledger-data/ledger-entry-types/ + type: 301 /ja/ledger-object-ids.html: - to: /ja/docs/references/protocol/ledger-data/common-fields - type: 301 + to: /ja/docs/references/protocol/ledger-data/common-fields + type: 301 /ja/accountroot.html: - to: /ja/docs/references/protocol/ledger-data/ledger-entry-types/accountroot - type: 301 + to: /ja/docs/references/protocol/ledger-data/ledger-entry-types/accountroot + type: 301 /ja/amendments-object.html: - to: /ja/docs/references/protocol/ledger-data/ledger-entry-types/amendments - type: 301 + to: /ja/docs/references/protocol/ledger-data/ledger-entry-types/amendments + type: 301 /ja/amm.html: - to: /ja/docs/references/protocol/ledger-data/ledger-entry-types/amm - type: 301 + to: /ja/docs/references/protocol/ledger-data/ledger-entry-types/amm + type: 301 /ja/bridge.html: - to: /ja/docs/references/protocol/ledger-data/ledger-entry-types/bridge - type: 301 + to: /ja/docs/references/protocol/ledger-data/ledger-entry-types/bridge + type: 301 /ja/check.html: - to: /ja/docs/references/protocol/ledger-data/ledger-entry-types/check - type: 301 + to: /ja/docs/references/protocol/ledger-data/ledger-entry-types/check + type: 301 /ja/depositpreauth-object.html: - to: /ja/docs/references/protocol/ledger-data/ledger-entry-types/depositpreauth - type: 301 + to: /ja/docs/references/protocol/ledger-data/ledger-entry-types/depositpreauth + type: 301 /ja/did.html: - to: /ja/docs/references/protocol/ledger-data/ledger-entry-types/did - type: 301 + to: /ja/docs/references/protocol/ledger-data/ledger-entry-types/did + type: 301 /ja/directorynode.html: - to: /ja/docs/references/protocol/ledger-data/ledger-entry-types/directorynode - type: 301 + to: /ja/docs/references/protocol/ledger-data/ledger-entry-types/directorynode + type: 301 /ja/escrow-object.html: - to: /ja/docs/references/protocol/ledger-data/ledger-entry-types/escrow - type: 301 + to: /ja/docs/references/protocol/ledger-data/ledger-entry-types/escrow + type: 301 /ja/feesettings.html: - to: /ja/docs/references/protocol/ledger-data/ledger-entry-types/feesettings - type: 301 + to: /ja/docs/references/protocol/ledger-data/ledger-entry-types/feesettings + type: 301 /ja/ledgerhashes.html: - to: /ja/docs/references/protocol/ledger-data/ledger-entry-types/ledgerhashes - type: 301 + to: /ja/docs/references/protocol/ledger-data/ledger-entry-types/ledgerhashes + type: 301 /ja/negativeunl.html: - to: /ja/docs/references/protocol/ledger-data/ledger-entry-types/negativeunl - type: 301 + to: /ja/docs/references/protocol/ledger-data/ledger-entry-types/negativeunl + type: 301 /ja/nftokenoffer.html: - to: /ja/docs/references/protocol/ledger-data/ledger-entry-types/nftokenoffer - type: 301 + to: /ja/docs/references/protocol/ledger-data/ledger-entry-types/nftokenoffer + type: 301 /ja/nftokenpage.html: - to: /ja/docs/references/protocol/ledger-data/ledger-entry-types/nftokenpage - type: 301 + to: /ja/docs/references/protocol/ledger-data/ledger-entry-types/nftokenpage + type: 301 /ja/offer.html: - to: /ja/docs/references/protocol/ledger-data/ledger-entry-types/offer - type: 301 + to: /ja/docs/references/protocol/ledger-data/ledger-entry-types/offer + type: 301 /ja/paychannel.html: - to: /ja/docs/references/protocol/ledger-data/ledger-entry-types/paychannel - type: 301 + to: /ja/docs/references/protocol/ledger-data/ledger-entry-types/paychannel + type: 301 /ja/ripplestate.html: - to: /ja/docs/references/protocol/ledger-data/ledger-entry-types/ripplestate - type: 301 + to: /ja/docs/references/protocol/ledger-data/ledger-entry-types/ripplestate + type: 301 /ja/signerlist.html: - to: /ja/docs/references/protocol/ledger-data/ledger-entry-types/signerlist - type: 301 + to: /ja/docs/references/protocol/ledger-data/ledger-entry-types/signerlist + type: 301 /ja/ticket.html: - to: /ja/docs/references/protocol/ledger-data/ledger-entry-types/ticket - type: 301 + to: /ja/docs/references/protocol/ledger-data/ledger-entry-types/ticket + type: 301 /ja/xchainownedclaimid.html: - to: /ja/docs/references/protocol/ledger-data/ledger-entry-types/xchainownedclaimid - type: 301 + to: /ja/docs/references/protocol/ledger-data/ledger-entry-types/xchainownedclaimid + type: 301 /ja/xchainownedcreateaccountclaimid.html: - to: /ja/docs/references/protocol/ledger-data/ledger-entry-types/xchainownedcreateaccountclaimid - type: 301 + to: /ja/docs/references/protocol/ledger-data/ledger-entry-types/xchainownedcreateaccountclaimid + type: 301 /ja/transaction-formats.html: - to: /ja/docs/references/protocol/transactions/ - type: 301 + to: /ja/docs/references/protocol/transactions/ + type: 301 /ja/transaction-common-fields.html: - to: /ja/docs/references/protocol/transactions/common-fields - type: 301 + to: /ja/docs/references/protocol/transactions/common-fields + type: 301 /ja/transaction-types.html: - to: /ja/docs/references/protocol/transactions/types/ - type: 301 + to: /ja/docs/references/protocol/transactions/types/ + type: 301 /ja/accountset.html: - to: /ja/docs/references/protocol/transactions/types/accountset - type: 301 + to: /ja/docs/references/protocol/transactions/types/accountset + type: 301 /ja/accountdelete.html: - to: /ja/docs/references/protocol/transactions/types/accountdelete - type: 301 + to: /ja/docs/references/protocol/transactions/types/accountdelete + type: 301 /ja/ammbid.html: - to: /ja/docs/references/protocol/transactions/types/ammbid - type: 301 + to: /ja/docs/references/protocol/transactions/types/ammbid + type: 301 /ja/ammcreate.html: - to: /ja/docs/references/protocol/transactions/types/ammcreate - type: 301 + to: /ja/docs/references/protocol/transactions/types/ammcreate + type: 301 /ja/ammdelete.html: - to: /ja/docs/references/protocol/transactions/types/ammdelete - type: 301 + to: /ja/docs/references/protocol/transactions/types/ammdelete + type: 301 /ja/ammdeposit.html: - to: /ja/docs/references/protocol/transactions/types/ammdeposit - type: 301 + to: /ja/docs/references/protocol/transactions/types/ammdeposit + type: 301 /ja/ammvote.html: - to: /ja/docs/references/protocol/transactions/types/ammvote - type: 301 + to: /ja/docs/references/protocol/transactions/types/ammvote + type: 301 /ja/ammwithdraw.html: - to: /ja/docs/references/protocol/transactions/types/ammwithdraw - type: 301 + to: /ja/docs/references/protocol/transactions/types/ammwithdraw + type: 301 /ja/checkcancel.html: - to: /ja/docs/references/protocol/transactions/types/checkcancel - type: 301 + to: /ja/docs/references/protocol/transactions/types/checkcancel + type: 301 /ja/checkcash.html: - to: /ja/docs/references/protocol/transactions/types/checkcash - type: 301 + to: /ja/docs/references/protocol/transactions/types/checkcash + type: 301 /ja/checkcreate.html: - to: /ja/docs/references/protocol/transactions/types/checkcreate - type: 301 + to: /ja/docs/references/protocol/transactions/types/checkcreate + type: 301 /ja/clawback.html: - to: /ja/docs/references/protocol/transactions/types/clawback - type: 301 + to: /ja/docs/references/protocol/transactions/types/clawback + type: 301 /ja/depositpreauth.html: - to: /ja/docs/references/protocol/transactions/types/depositpreauth - type: 301 + to: /ja/docs/references/protocol/transactions/types/depositpreauth + type: 301 /ja/diddelete.html: - to: /ja/docs/references/protocol/transactions/types/diddelete - type: 301 + to: /ja/docs/references/protocol/transactions/types/diddelete + type: 301 /ja/didset.html: - to: /ja/docs/references/protocol/transactions/types/didset - type: 301 + to: /ja/docs/references/protocol/transactions/types/didset + type: 301 /ja/escrowcancel.html: - to: /ja/docs/references/protocol/transactions/types/escrowcancel - type: 301 + to: /ja/docs/references/protocol/transactions/types/escrowcancel + type: 301 /ja/escrowcreate.html: - to: /ja/docs/references/protocol/transactions/types/escrowcreate - type: 301 + to: /ja/docs/references/protocol/transactions/types/escrowcreate + type: 301 /ja/escrowfinish.html: - to: /ja/docs/references/protocol/transactions/types/escrowfinish - type: 301 + to: /ja/docs/references/protocol/transactions/types/escrowfinish + type: 301 /ja/nftokenacceptoffer.html: - to: /ja/docs/references/protocol/transactions/types/nftokenacceptoffer - type: 301 + to: /ja/docs/references/protocol/transactions/types/nftokenacceptoffer + type: 301 /ja/nftokenburn.html: - to: /ja/docs/references/protocol/transactions/types/nftokenburn - type: 301 + to: /ja/docs/references/protocol/transactions/types/nftokenburn + type: 301 /ja/nftokencanceloffer.html: - to: /ja/docs/references/protocol/transactions/types/nftokencanceloffer - type: 301 + to: /ja/docs/references/protocol/transactions/types/nftokencanceloffer + type: 301 /ja/nftokencreateoffer.html: - to: /ja/docs/references/protocol/transactions/types/nftokencreateoffer - type: 301 + to: /ja/docs/references/protocol/transactions/types/nftokencreateoffer + type: 301 /ja/nftokenmint.html: - to: /ja/docs/references/protocol/transactions/types/nftokenmint - type: 301 + to: /ja/docs/references/protocol/transactions/types/nftokenmint + type: 301 /ja/offercancel.html: - to: /ja/docs/references/protocol/transactions/types/offercancel - type: 301 + to: /ja/docs/references/protocol/transactions/types/offercancel + type: 301 /ja/offercreate.html: - to: /ja/docs/references/protocol/transactions/types/offercreate - type: 301 + to: /ja/docs/references/protocol/transactions/types/offercreate + type: 301 /ja/payment.html: - to: /ja/docs/references/protocol/transactions/types/payment - type: 301 + to: /ja/docs/references/protocol/transactions/types/payment + type: 301 /ja/paymentchannelclaim.html: - to: /ja/docs/references/protocol/transactions/types/paymentchannelclaim - type: 301 + to: /ja/docs/references/protocol/transactions/types/paymentchannelclaim + type: 301 /ja/paymentchannelcreate.html: - to: /ja/docs/references/protocol/transactions/types/paymentchannelcreate - type: 301 + to: /ja/docs/references/protocol/transactions/types/paymentchannelcreate + type: 301 /ja/paymentchannelfund.html: - to: /ja/docs/references/protocol/transactions/types/paymentchannelfund - type: 301 + to: /ja/docs/references/protocol/transactions/types/paymentchannelfund + type: 301 /ja/setregularkey.html: - to: /ja/docs/references/protocol/transactions/types/setregularkey - type: 301 + to: /ja/docs/references/protocol/transactions/types/setregularkey + type: 301 /ja/signerlistset.html: - to: /ja/docs/references/protocol/transactions/types/signerlistset - type: 301 + to: /ja/docs/references/protocol/transactions/types/signerlistset + type: 301 /ja/ticketcreate.html: - to: /ja/docs/references/protocol/transactions/types/ticketcreate - type: 301 + to: /ja/docs/references/protocol/transactions/types/ticketcreate + type: 301 /ja/trustset.html: - to: /ja/docs/references/protocol/transactions/types/trustset - type: 301 + to: /ja/docs/references/protocol/transactions/types/trustset + type: 301 /ja/xchainaccountcreatecommit.html: - to: /ja/docs/references/protocol/transactions/types/xchainaccountcreatecommit - type: 301 + to: /ja/docs/references/protocol/transactions/types/xchainaccountcreatecommit + type: 301 /ja/xchainaddaccountcreateattestation.html: - to: /ja/docs/references/protocol/transactions/types/xchainaddaccountcreateattestation - type: 301 + to: /ja/docs/references/protocol/transactions/types/xchainaddaccountcreateattestation + type: 301 /ja/xchainaddclaimattestation.html: - to: /ja/docs/references/protocol/transactions/types/xchainaddclaimattestation - type: 301 + to: /ja/docs/references/protocol/transactions/types/xchainaddclaimattestation + type: 301 /ja/xchainclaim.html: - to: /ja/docs/references/protocol/transactions/types/xchainclaim - type: 301 + to: /ja/docs/references/protocol/transactions/types/xchainclaim + type: 301 /ja/xchaincommit.html: - to: /ja/docs/references/protocol/transactions/types/xchaincommit - type: 301 + to: /ja/docs/references/protocol/transactions/types/xchaincommit + type: 301 /ja/xchaincreatebridge.html: - to: /ja/docs/references/protocol/transactions/types/xchaincreatebridge - type: 301 + to: /ja/docs/references/protocol/transactions/types/xchaincreatebridge + type: 301 /ja/xchaincreateclaimid.html: - to: /ja/docs/references/protocol/transactions/types/xchaincreateclaimid - type: 301 + to: /ja/docs/references/protocol/transactions/types/xchaincreateclaimid + type: 301 /ja/xchainmodifybridge.html: - to: /ja/docs/references/protocol/transactions/types/xchainmodifybridge - type: 301 + to: /ja/docs/references/protocol/transactions/types/xchainmodifybridge + type: 301 /ja/pseudo-transaction-types.html: - to: /ja/docs/references/protocol/transactions/pseudo-transaction-types/pseudo-transaction-types - type: 301 + to: /ja/docs/references/protocol/transactions/pseudo-transaction-types/pseudo-transaction-types + type: 301 /ja/enableamendment.html: - to: /ja/docs/references/protocol/transactions/pseudo-transaction-types/enableamendment - type: 301 + to: /ja/docs/references/protocol/transactions/pseudo-transaction-types/enableamendment + type: 301 /ja/setfee.html: - to: /ja/docs/references/protocol/transactions/pseudo-transaction-types/setfee - type: 301 + to: /ja/docs/references/protocol/transactions/pseudo-transaction-types/setfee + type: 301 /ja/unlmodify.html: - to: /ja/docs/references/protocol/transactions/pseudo-transaction-types/unlmodify - type: 301 + to: /ja/docs/references/protocol/transactions/pseudo-transaction-types/unlmodify + type: 301 /ja/transaction-results.html: - to: /ja/docs/references/protocol/transactions/transaction-results/transaction-results - type: 301 + to: /ja/docs/references/protocol/transactions/transaction-results/transaction-results + type: 301 /ja/tec-codes.html: - to: /ja/docs/references/protocol/transactions/transaction-results/tec-codes - type: 301 + to: /ja/docs/references/protocol/transactions/transaction-results/tec-codes + type: 301 /ja/tef-codes.html: - to: /ja/docs/references/protocol/transactions/transaction-results/tef-codes - type: 301 + to: /ja/docs/references/protocol/transactions/transaction-results/tef-codes + type: 301 /ja/tel-codes.html: - to: /ja/docs/references/protocol/transactions/transaction-results/tel-codes - type: 301 + to: /ja/docs/references/protocol/transactions/transaction-results/tel-codes + type: 301 /ja/tem-codes.html: - to: /ja/docs/references/protocol/transactions/transaction-results/tem-codes - type: 301 + to: /ja/docs/references/protocol/transactions/transaction-results/tem-codes + type: 301 /ja/ter-codes.html: - to: /ja/docs/references/protocol/transactions/transaction-results/ter-codes - type: 301 + to: /ja/docs/references/protocol/transactions/transaction-results/ter-codes + type: 301 /ja/tes-success.html: - to: /ja/docs/references/protocol/transactions/transaction-results/tes-success - type: 301 + to: /ja/docs/references/protocol/transactions/transaction-results/tes-success + type: 301 /ja/transaction-metadata.html: - to: /ja/docs/references/protocol/transactions/metadata - type: 301 + to: /ja/docs/references/protocol/transactions/metadata + type: 301 /ja/modifying-the-ledger.html: - to: /ja/docs/references/protocol/transactions/ - type: 301 + to: /ja/docs/references/protocol/transactions/ + type: 301 /ja/serialization.html: - to: /ja/docs/references/protocol/binary-format - type: 301 + to: /ja/docs/references/protocol/binary-format + type: 301 /ja/client-libraries.html: - to: /ja/docs/references/client-libraries - type: 301 + to: /ja/docs/references/client-libraries + type: 301 /ja/rippleapi-reference.html: - to: https://js.xrpl.org/ - type: 301 + to: https://js.xrpl.org/ + type: 301 /ja/xrpljs2-migration-guide.html: - to: /ja/docs/references/xrpljs2-migration-guide - type: 301 + to: /ja/docs/references/xrpljs2-migration-guide + type: 301 /ja/http-websocket-apis.html: - to: /ja/docs/references/http-websocket-apis/ - type: 301 + to: /ja/docs/references/http-websocket-apis/ + type: 301 /ja/rippled-api.html: - to: /ja/docs/references/http-websocket-apis/ - type: 301 + to: /ja/docs/references/http-websocket-apis/ + type: 301 /ja/api-conventions.html: - to: /ja/docs/references/http-websocket-apis/api-conventions/ - type: 301 + to: /ja/docs/references/http-websocket-apis/api-conventions/ + type: 301 /ja/request-formatting.html: - to: /ja/docs/references/http-websocket-apis/api-conventions/request-formatting - type: 301 + to: /ja/docs/references/http-websocket-apis/api-conventions/request-formatting + type: 301 /ja/response-formatting.html: - to: /ja/docs/references/http-websocket-apis/api-conventions/response-formatting - type: 301 + to: /ja/docs/references/http-websocket-apis/api-conventions/response-formatting + type: 301 /ja/error-formatting.html: - to: /ja/docs/references/http-websocket-apis/api-conventions/error-formatting - type: 301 + to: /ja/docs/references/http-websocket-apis/api-conventions/error-formatting + type: 301 /ja/markers-and-pagination.html: - to: /ja/docs/references/http-websocket-apis/api-conventions/markers-and-pagination - type: 301 + to: /ja/docs/references/http-websocket-apis/api-conventions/markers-and-pagination + type: 301 /ja/rate-limiting.html: - to: /ja/docs/references/http-websocket-apis/api-conventions/rate-limiting - type: 301 + to: /ja/docs/references/http-websocket-apis/api-conventions/rate-limiting + type: 301 /ja/rippled-server-states.html: - to: /ja/docs/references/http-websocket-apis/api-conventions/rippled-server-states - type: 301 + to: /ja/docs/references/http-websocket-apis/api-conventions/rippled-server-states + type: 301 /ja/ctid.html: - to: /ja/docs/references/http-websocket-apis/api-conventions/ctid - type: 301 + to: /ja/docs/references/http-websocket-apis/api-conventions/ctid + type: 301 /ja/public-api-methods.html: - to: /ja/docs/references/http-websocket-apis/public-api-methods/ - type: 301 + to: /ja/docs/references/http-websocket-apis/public-api-methods/ + type: 301 /ja/public-rippled-methods.html: - to: /ja/docs/references/http-websocket-apis/public-api-methods/ - type: 301 + to: /ja/docs/references/http-websocket-apis/public-api-methods/ + type: 301 /ja/account-methods.html: - to: /ja/docs/references/http-websocket-apis/public-api-methods/account-methods/ - type: 301 + to: /ja/docs/references/http-websocket-apis/public-api-methods/account-methods/ + type: 301 /ja/account_channels.html: - to: /ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_channels - type: 301 + to: /ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_channels + type: 301 /ja/account_currencies.html: - to: /ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_currencies - type: 301 + to: /ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_currencies + type: 301 /ja/account_info.html: - to: /ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_info - type: 301 + to: /ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_info + type: 301 /ja/account_lines.html: - to: /ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_lines - type: 301 + to: /ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_lines + type: 301 /ja/account_nfts.html: - to: /ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_nfts - type: 301 + to: /ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_nfts + type: 301 /ja/account_objects.html: - to: /ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_objects - type: 301 + to: /ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_objects + type: 301 /ja/account_offers.html: - to: /ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_offers - type: 301 + to: /ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_offers + type: 301 /ja/account_tx.html: - to: /ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_tx - type: 301 + to: /ja/docs/references/http-websocket-apis/public-api-methods/account-methods/account_tx + type: 301 /ja/gateway_balances.html: - to: /ja/docs/references/http-websocket-apis/public-api-methods/account-methods/gateway_balances - type: 301 + to: /ja/docs/references/http-websocket-apis/public-api-methods/account-methods/gateway_balances + type: 301 /ja/noripple_check.html: - to: /ja/docs/references/http-websocket-apis/public-api-methods/account-methods/noripple_check - type: 301 + to: /ja/docs/references/http-websocket-apis/public-api-methods/account-methods/noripple_check + type: 301 /ja/ledger-methods.html: - to: /ja/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ - type: 301 + to: /ja/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ + type: 301 /ja/ledger.html: - to: /ja/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger - type: 301 + to: /ja/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger + type: 301 /ja/ledger_closed.html: - to: /ja/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_closed - type: 301 + to: /ja/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_closed + type: 301 /ja/ledger_current.html: - to: /ja/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_current - type: 301 + to: /ja/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_current + type: 301 /ja/ledger_data.html: - to: /ja/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_data - type: 301 + to: /ja/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_data + type: 301 /ja/ledger_entry.html: - to: /ja/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_entry - type: 301 + to: /ja/docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_entry + type: 301 /ja/transaction-methods.html: - to: /ja/docs/references/http-websocket-apis/public-api-methods/transaction-methods/ - type: 301 + to: /ja/docs/references/http-websocket-apis/public-api-methods/transaction-methods/ + type: 301 /ja/submit.html: - to: /ja/docs/references/http-websocket-apis/public-api-methods/transaction-methods/submit - type: 301 + to: /ja/docs/references/http-websocket-apis/public-api-methods/transaction-methods/submit + type: 301 /ja/submit_multisigned.html: - to: /ja/docs/references/http-websocket-apis/public-api-methods/transaction-methods/submit_multisigned - type: 301 + to: /ja/docs/references/http-websocket-apis/public-api-methods/transaction-methods/submit_multisigned + type: 301 /ja/transaction_entry.html: - to: /ja/docs/references/http-websocket-apis/public-api-methods/transaction-methods/transaction_entry - type: 301 + to: /ja/docs/references/http-websocket-apis/public-api-methods/transaction-methods/transaction_entry + type: 301 /ja/tx.html: - to: /ja/docs/references/http-websocket-apis/public-api-methods/transaction-methods/tx - type: 301 + to: /ja/docs/references/http-websocket-apis/public-api-methods/transaction-methods/tx + type: 301 /ja/tx_history.html: - to: /ja/docs/references/http-websocket-apis/public-api-methods/transaction-methods/tx_history - type: 301 + to: /ja/docs/references/http-websocket-apis/public-api-methods/transaction-methods/tx_history + type: 301 /ja/path-and-order-book-methods.html: - to: /ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/ - type: 301 + to: /ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/ + type: 301 /ja/amm_info.html: - to: /ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/amm_info - type: 301 + to: /ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/amm_info + type: 301 /ja/book_offers.html: - to: /ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/book_offers - type: 301 + to: /ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/book_offers + type: 301 /ja/deposit_authorized.html: - to: /ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/deposit_authorized - type: 301 + to: /ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/deposit_authorized + type: 301 /ja/nft_buy_offers.html: - to: /ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_buy_offers - type: 301 + to: /ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_buy_offers + type: 301 /ja/nft_sell_offers.html: - to: /ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_sell_offers - type: 301 + to: /ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/nft_sell_offers + type: 301 /ja/path_find.html: - to: /ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/path_find - type: 301 + to: /ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/path_find + type: 301 /ja/ripple_path_find.html: - to: /ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/ripple_path_find - type: 301 + to: /ja/docs/references/http-websocket-apis/public-api-methods/path-and-order-book-methods/ripple_path_find + type: 301 /ja/payment-channel-methods.html: - to: /ja/docs/references/http-websocket-apis/public-api-methods/payment-channel-methods/ - type: 301 + to: /ja/docs/references/http-websocket-apis/public-api-methods/payment-channel-methods/ + type: 301 /ja/channel_authorize.html: - to: /ja/docs/references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_authorize - type: 301 + to: /ja/docs/references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_authorize + type: 301 /ja/channel_verify.html: - to: /ja/docs/references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_verify - type: 301 + to: /ja/docs/references/http-websocket-apis/public-api-methods/payment-channel-methods/channel_verify + type: 301 /ja/subscription-methods.html: - to: /ja/docs/references/http-websocket-apis/public-api-methods/subscription-methods/ - type: 301 + to: /ja/docs/references/http-websocket-apis/public-api-methods/subscription-methods/ + type: 301 /ja/subscribe.html: - to: /ja/docs/references/http-websocket-apis/public-api-methods/subscription-methods/subscribe - type: 301 + to: /ja/docs/references/http-websocket-apis/public-api-methods/subscription-methods/subscribe + type: 301 /ja/unsubscribe.html: - to: /ja/docs/references/http-websocket-apis/public-api-methods/subscription-methods/unsubscribe - type: 301 + to: /ja/docs/references/http-websocket-apis/public-api-methods/subscription-methods/unsubscribe + type: 301 /ja/server-info-methods.html: - to: /ja/docs/references/http-websocket-apis/public-api-methods/server-info-methods/ - type: 301 + to: /ja/docs/references/http-websocket-apis/public-api-methods/server-info-methods/ + type: 301 /ja/fee.html: - to: /ja/docs/references/http-websocket-apis/public-api-methods/server-info-methods/fee - type: 301 + to: /ja/docs/references/http-websocket-apis/public-api-methods/server-info-methods/fee + type: 301 /ja/manifest.html: - to: /ja/docs/references/http-websocket-apis/public-api-methods/server-info-methods/manifest - type: 301 + to: /ja/docs/references/http-websocket-apis/public-api-methods/server-info-methods/manifest + type: 301 /ja/server_definitions.html: - to: /ja/docs/references/http-websocket-apis/public-api-methods/server-info-methods/server_definitions - type: 301 + to: /ja/docs/references/http-websocket-apis/public-api-methods/server-info-methods/server_definitions + type: 301 /ja/server_info.html: - to: /ja/docs/references/http-websocket-apis/public-api-methods/server-info-methods/server_info - type: 301 + to: /ja/docs/references/http-websocket-apis/public-api-methods/server-info-methods/server_info + type: 301 /ja/server_state.html: - to: /ja/docs/references/http-websocket-apis/public-api-methods/server-info-methods/server_state - type: 301 + to: /ja/docs/references/http-websocket-apis/public-api-methods/server-info-methods/server_state + type: 301 /ja/clio-methods.html: - to: /ja/docs/references/http-websocket-apis/public-api-methods/clio-server/ - type: 301 + to: /ja/docs/references/http-websocket-apis/public-api-methods/clio-server/ + type: 301 /ja/server_info-clio.html: - to: /ja/docs/references/http-websocket-apis/public-api-methods/clio-methods/server_info-clio - type: 301 + to: /ja/docs/references/http-websocket-apis/public-api-methods/clio-methods/server_info-clio + type: 301 /ja/ledger-clio.html: - to: /ja/docs/references/http-websocket-apis/public-api-methods/clio-methods/ledger-clio - type: 301 + to: /ja/docs/references/http-websocket-apis/public-api-methods/clio-methods/ledger-clio + type: 301 /ja/nft_history.html: - to: /ja/docs/references/http-websocket-apis/public-api-methods/clio-methods/nft_history - type: 301 + to: /ja/docs/references/http-websocket-apis/public-api-methods/clio-methods/nft_history + type: 301 /ja/nft_info.html: - to: /ja/docs/references/http-websocket-apis/public-api-methods/clio-methods/nft_info - type: 301 + to: /ja/docs/references/http-websocket-apis/public-api-methods/clio-methods/nft_info + type: 301 /ja/utility-methods.html: - to: /ja/docs/references/http-websocket-apis/public-api-methods/utility-methods/ - type: 301 + to: /ja/docs/references/http-websocket-apis/public-api-methods/utility-methods/ + type: 301 /ja/json.html: - to: /ja/docs/references/http-websocket-apis/public-api-methods/utility-methods/json - type: 301 + to: /ja/docs/references/http-websocket-apis/public-api-methods/utility-methods/json + type: 301 /ja/ping.html: - to: /ja/docs/references/http-websocket-apis/public-api-methods/utility-methods/ping - type: 301 + to: /ja/docs/references/http-websocket-apis/public-api-methods/utility-methods/ping + type: 301 /ja/random.html: - to: /ja/docs/references/http-websocket-apis/public-api-methods/utility-methods/random - type: 301 + to: /ja/docs/references/http-websocket-apis/public-api-methods/utility-methods/random + type: 301 /ja/admin-api-methods.html: - to: /ja/docs/references/http-websocket-apis/admin-api-methods/ - type: 301 + to: /ja/docs/references/http-websocket-apis/admin-api-methods/ + type: 301 /ja/admin-rippled-methods.html: - to: /ja/docs/references/http-websocket-apis/admin-api-methods/ - type: 301 + to: /ja/docs/references/http-websocket-apis/admin-api-methods/ + type: 301 /ja/key-generation-methods.html: - to: /ja/docs/references/http-websocket-apis/admin-api-methods/key-generation-methods/ - type: 301 + to: /ja/docs/references/http-websocket-apis/admin-api-methods/key-generation-methods/ + type: 301 /ja/validation_create.html: - to: /ja/docs/references/http-websocket-apis/admin-api-methods/key-generation-methods/validation_create - type: 301 + to: /ja/docs/references/http-websocket-apis/admin-api-methods/key-generation-methods/validation_create + type: 301 /ja/wallet_propose.html: - to: /ja/docs/references/http-websocket-apis/admin-api-methods/key-generation-methods/wallet_propose - type: 301 + to: /ja/docs/references/http-websocket-apis/admin-api-methods/key-generation-methods/wallet_propose + type: 301 /ja/logging-and-data-management-methods.html: - to: /ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ - type: 301 + to: /ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ + type: 301 /ja/can_delete.html: - to: /ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/can_delete - type: 301 + to: /ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/can_delete + type: 301 /ja/crawl_shards.html: - to: /ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/crawl_shards - type: 301 + to: /ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/crawl_shards + type: 301 /ja/download_shard.html: - to: /ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/download_shard - type: 301 + to: /ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/download_shard + type: 301 /ja/ledger_cleaner.html: - to: /ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ledger_cleaner - type: 301 + to: /ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ledger_cleaner + type: 301 /ja/ledger_request.html: - to: /ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ledger_request - type: 301 + to: /ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/ledger_request + type: 301 /ja/log_level.html: - to: /ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/log_level - type: 301 + to: /ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/log_level + type: 301 /ja/logrotate.html: - to: /ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/logrotate - type: 301 + to: /ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/logrotate + type: 301 /ja/node_to_shard.html: - to: /ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/node_to_shard - type: 301 + to: /ja/docs/references/http-websocket-apis/admin-api-methods/logging-and-data-management-methods/node_to_shard + type: 301 /ja/server-control-methods.html: - to: /ja/docs/references/http-websocket-apis/admin-api-methods/server-control-methods/ - type: 301 + to: /ja/docs/references/http-websocket-apis/admin-api-methods/server-control-methods/ + type: 301 /ja/ledger_accept.html: - to: /ja/docs/references/http-websocket-apis/admin-api-methods/server-control-methods/ledger_accept - type: 301 + to: /ja/docs/references/http-websocket-apis/admin-api-methods/server-control-methods/ledger_accept + type: 301 /ja/stop.html: - to: /ja/docs/references/http-websocket-apis/admin-api-methods/server-control-methods/stop - type: 301 + to: /ja/docs/references/http-websocket-apis/admin-api-methods/server-control-methods/stop + type: 301 /ja/validation_seed.html: - to: /ja/docs/references/http-websocket-apis/public-api-methods/ - type: 301 + to: /ja/docs/references/http-websocket-apis/public-api-methods/ + type: 301 /ja/signing-methods.html: - to: /ja/docs/references/http-websocket-apis/admin-api-methods/signing-methods/ - type: 301 + to: /ja/docs/references/http-websocket-apis/admin-api-methods/signing-methods/ + type: 301 /ja/sign.html: - to: /ja/docs/references/http-websocket-apis/admin-api-methods/signing-methods/sign - type: 301 + to: /ja/docs/references/http-websocket-apis/admin-api-methods/signing-methods/sign + type: 301 /ja/sign_for.html: - to: /ja/docs/references/http-websocket-apis/admin-api-methods/signing-methods/sign_for - type: 301 + to: /ja/docs/references/http-websocket-apis/admin-api-methods/signing-methods/sign_for + type: 301 /ja/peer-management-methods.html: - to: /ja/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/ - type: 301 + to: /ja/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/ + type: 301 /ja/connect.html: - to: /ja/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/connect - type: 301 + to: /ja/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/connect + type: 301 /ja/peer_reservations_add.html: - to: /ja/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_add - type: 301 + to: /ja/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_add + type: 301 /ja/peer_reservations_del.html: - to: /ja/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_del - type: 301 + to: /ja/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_del + type: 301 /ja/peer_reservations_list.html: - to: /ja/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_list - type: 301 + to: /ja/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peer_reservations_list + type: 301 /ja/peers.html: - to: /ja/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peers - type: 301 + to: /ja/docs/references/http-websocket-apis/admin-api-methods/peer-management-methods/peers + type: 301 /ja/status-and-debugging-methods.html: - to: /ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/ - type: 301 + to: /ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/ + type: 301 /ja/consensus_info.html: - to: /ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/consensus_info - type: 301 + to: /ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/consensus_info + type: 301 /ja/feature.html: - to: /ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/feature - type: 301 + to: /ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/feature + type: 301 /ja/fetch_info.html: - to: /ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/fetch_info - type: 301 + to: /ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/fetch_info + type: 301 /ja/get_counts.html: - to: /ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/get_counts - type: 301 + to: /ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/get_counts + type: 301 /ja/print.html: - to: /ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/print - type: 301 + to: /ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/print + type: 301 /ja/validator_info.html: - to: /ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_info - type: 301 + to: /ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_info + type: 301 /ja/validator_list_sites.html: - to: /ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_list_sites - type: 301 + to: /ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validator_list_sites + type: 301 /ja/validators.html: - to: /ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validators - type: 301 + to: /ja/docs/references/http-websocket-apis/admin-api-methods/status-and-debugging-methods/validators + type: 301 /ja/peer-port-methods.html: - to: /ja/docs/references/http-websocket-apis/peer-port-methods/ - type: 301 + to: /ja/docs/references/http-websocket-apis/peer-port-methods/ + type: 301 /ja/health-check.html: - to: /ja/docs/references/http-websocket-apis/peer-port-methods/health-check - type: 301 + to: /ja/docs/references/http-websocket-apis/peer-port-methods/health-check + type: 301 /ja/peer-crawler.html: - to: /ja/docs/references/http-websocket-apis/peer-port-methods/peer-crawler - type: 301 + to: /ja/docs/references/http-websocket-apis/peer-port-methods/peer-crawler + type: 301 /ja/validator-list.html: - to: /ja/docs/references/http-websocket-apis/peer-port-methods/validator-list - type: 301 + to: /ja/docs/references/http-websocket-apis/peer-port-methods/validator-list + type: 301 /ja/xrp-api.html: - to: https://xpring-eng.github.io/xrp-api/ - type: 301 + to: https://xpring-eng.github.io/xrp-api/ + type: 301 /ja/data-api.html: - to: /ja/docs/references/data-api - type: 301 + to: /ja/docs/references/data-api + type: 301 /ja/xrp-ledger-toml.html: - to: /ja/docs/references/xrp-ledger-toml - type: 301 + to: /ja/docs/references/xrp-ledger-toml + type: 301 /ja/infrastructure.html: - to: /ja/docs/infrastructure/ - type: 301 + to: /ja/docs/infrastructure/ + type: 301 /ja/commandline-usage.html: - to: /ja/docs/infrastructure/commandline-usage - type: 301 + to: /ja/docs/infrastructure/commandline-usage + type: 301 /ja/install-rippled.html: - to: /ja/docs/infrastructure/installation/ - type: 301 + to: /ja/docs/infrastructure/installation/ + type: 301 /ja/system-requirements.html: - to: /ja/docs/infrastructure/installation/system-requirements - type: 301 + to: /ja/docs/infrastructure/installation/system-requirements + type: 301 /ja/install-rippled-on-centos-rhel-with-yum.html: - to: /ja/docs/infrastructure/installation/install-rippled-on-rhel - type: 301 + to: /ja/docs/infrastructure/installation/install-rippled-on-rhel + type: 301 /ja/install-rippled-on-ubuntu.html: - to: /ja/docs/infrastructure/installation/install-rippled-on-ubuntu - type: 301 + to: /ja/docs/infrastructure/installation/install-rippled-on-ubuntu + type: 301 /ja/install-clio-on-ubuntu.html: - to: /ja/docs/infrastructure/installation/install-clio-on-ubuntu - type: 301 + to: /ja/docs/infrastructure/installation/install-clio-on-ubuntu + type: 301 /ja/update-rippled-automatically-on-linux.html: - to: /ja/docs/infrastructure/installation/update-rippled-automatically-on-linux - type: 301 + to: /ja/docs/infrastructure/installation/update-rippled-automatically-on-linux + type: 301 /ja/update-rippled-manually-on-centos-rhel.html: - to: /ja/docs/infrastructure/installation/update-rippled-manually-on-centos-rhel - type: 301 + to: /ja/docs/infrastructure/installation/update-rippled-manually-on-centos-rhel + type: 301 /ja/update-rippled-manually-on-ubuntu.html: - to: /ja/docs/infrastructure/installation/update-rippled-manually-on-ubuntu - type: 301 + to: /ja/docs/infrastructure/installation/update-rippled-manually-on-ubuntu + type: 301 /ja/build-on-linux-mac-windows.html: - to: /ja/docs/infrastructure/installation/build-on-linux-mac-windows - type: 301 + to: /ja/docs/infrastructure/installation/build-on-linux-mac-windows + type: 301 /ja/build-run-rippled-in-reporting-mode.html: - to: /ja/docs/infrastructure/installation/build-run-rippled-in-reporting-mode - type: 301 + to: /ja/docs/infrastructure/installation/build-run-rippled-in-reporting-mode + type: 301 /ja/capacity-planning.html: - to: /ja/docs/infrastructure/installation/capacity-planning - type: 301 + to: /ja/docs/infrastructure/installation/capacity-planning + type: 301 /ja/rippled-1-3-migration-instructions.html: - to: /ja/docs/infrastructure/installation/rippled-1-3-migration-instructions - type: 301 + to: /ja/docs/infrastructure/installation/rippled-1-3-migration-instructions + type: 301 /ja/configure-rippled.html: - to: /ja/docs/infrastructure/configuration/ - type: 301 + to: /ja/docs/infrastructure/configuration/ + type: 301 /ja/server-modes.html: - to: /ja/docs/infrastructure/configuration/server-modes/ - type: 301 + to: /ja/docs/infrastructure/configuration/server-modes/ + type: 301 /ja/run-rippled-as-a-validator.html: - to: /ja/docs/infrastructure/configuration/server-modes/run-rippled-as-a-validator - type: 301 + to: /ja/docs/infrastructure/configuration/server-modes/run-rippled-as-a-validator + type: 301 /ja/run-rippled-as-a-stock-server.html: - to: /ja/docs/infrastructure/configuration/server-modes/run-rippled-as-a-stock-server - type: 301 + to: /ja/docs/infrastructure/configuration/server-modes/run-rippled-as-a-stock-server + type: 301 /ja/data-retention.html: - to: /ja/docs/infrastructure/configuration/data-retention/ - type: 301 + to: /ja/docs/infrastructure/configuration/data-retention/ + type: 301 /ja/configure-full-history.html: - to: /ja/docs/infrastructure/configuration/data-retention/configure-full-history - type: 301 + to: /ja/docs/infrastructure/configuration/data-retention/configure-full-history + type: 301 /ja/online-deletion.html: - to: /ja/docs/infrastructure/configuration/data-retention/online-deletion - type: 301 + to: /ja/docs/infrastructure/configuration/data-retention/online-deletion + type: 301 /ja/configure-online-deletion.html: - to: /ja/docs/infrastructure/configuration/data-retention/configure-online-deletion - type: 301 + to: /ja/docs/infrastructure/configuration/data-retention/configure-online-deletion + type: 301 /ja/configure-advisory-deletion.html: - to: /ja/docs/infrastructure/configuration/data-retention/configure-advisory-deletion - type: 301 + to: /ja/docs/infrastructure/configuration/data-retention/configure-advisory-deletion + type: 301 /ja/history-sharding.html: - to: /ja/docs/infrastructure/configuration/data-retention/history-sharding - type: 301 + to: /ja/docs/infrastructure/configuration/data-retention/history-sharding + type: 301 /ja/configure-history-sharding.html: - to: /ja/docs/infrastructure/configuration/data-retention/configure-history-sharding - type: 301 + to: /ja/docs/infrastructure/configuration/data-retention/configure-history-sharding + type: 301 /ja/configure-peering.html: - to: /ja/docs/infrastructure/configuration/peering/ - type: 301 + to: /ja/docs/infrastructure/configuration/peering/ + type: 301 /ja/cluster-rippled-servers.html: - to: /ja/docs/infrastructure/configuration/peering/cluster-rippled-servers - type: 301 + to: /ja/docs/infrastructure/configuration/peering/cluster-rippled-servers + type: 301 /ja/configure-a-private-server.html: - to: /ja/docs/infrastructure/configuration/peering/configure-a-private-server - type: 301 + to: /ja/docs/infrastructure/configuration/peering/configure-a-private-server + type: 301 /ja/configure-the-peer-crawler.html: - to: /ja/docs/infrastructure/configuration/peering/configure-the-peer-crawler - type: 301 + to: /ja/docs/infrastructure/configuration/peering/configure-the-peer-crawler + type: 301 /ja/enable-link-compression.html: - to: /ja/docs/infrastructure/configuration/peering/enable-link-compression - type: 301 + to: /ja/docs/infrastructure/configuration/peering/enable-link-compression + type: 301 /ja/forward-ports-for-peering.html: - to: /ja/docs/infrastructure/configuration/peering/forward-ports-for-peering - type: 301 + to: /ja/docs/infrastructure/configuration/peering/forward-ports-for-peering + type: 301 /ja/manually-connect-to-a-specific-peer.html: - to: /ja/docs/infrastructure/configuration/peering/manually-connect-to-a-specific-peer - type: 301 + to: /ja/docs/infrastructure/configuration/peering/manually-connect-to-a-specific-peer + type: 301 /ja/set-max-number-of-peers.html: - to: /ja/docs/infrastructure/configuration/peering/set-max-number-of-peers - type: 301 + to: /ja/docs/infrastructure/configuration/peering/set-max-number-of-peers + type: 301 /ja/use-a-peer-reservation.html: - to: /ja/docs/infrastructure/configuration/peering/use-a-peer-reservation - type: 301 + to: /ja/docs/infrastructure/configuration/peering/use-a-peer-reservation + type: 301 /ja/configure-amendment-voting.html: - to: /ja/docs/infrastructure/configuration/configure-amendment-voting - type: 301 + to: /ja/docs/infrastructure/configuration/configure-amendment-voting + type: 301 /ja/configure-statsd.html: - to: /ja/docs/infrastructure/configuration/configure-statsd - type: 301 + to: /ja/docs/infrastructure/configuration/configure-statsd + type: 301 /ja/connect-your-rippled-to-the-xrp-test-net.html: - to: /ja/docs/infrastructure/configuration/connect-your-rippled-to-the-xrp-test-net - type: 301 + to: /ja/docs/infrastructure/configuration/connect-your-rippled-to-the-xrp-test-net + type: 301 /ja/configure-grpc.html: - to: /ja/docs/infrastructure/configuration/configure-grpc - type: 301 + to: /ja/docs/infrastructure/configuration/configure-grpc + type: 301 /ja/enable-public-signing.html: - to: /ja/docs/infrastructure/configuration/enable-public-signing - type: 301 + to: /ja/docs/infrastructure/configuration/enable-public-signing + type: 301 /ja/use-stand-alone-mode.html: - to: /ja/docs/infrastructure/testing-and-auditing/ - type: 301 + to: /ja/docs/infrastructure/testing-and-auditing/ + type: 301 /ja/start-a-new-genesis-ledger-in-stand-alone-mode.html: - to: /ja/docs/infrastructure/testing-and-auditing/start-a-new-genesis-ledger-in-stand-alone-mode - type: 301 + to: /ja/docs/infrastructure/testing-and-auditing/start-a-new-genesis-ledger-in-stand-alone-mode + type: 301 /ja/load-a-saved-ledger-in-stand-alone-mode.html: - to: /ja/docs/infrastructure/testing-and-auditing/load-a-saved-ledger-in-stand-alone-mode - type: 301 + to: /ja/docs/infrastructure/testing-and-auditing/load-a-saved-ledger-in-stand-alone-mode + type: 301 /ja/advance-the-ledger-in-stand-alone-mode.html: - to: /ja/docs/infrastructure/testing-and-auditing/advance-the-ledger-in-stand-alone-mode - type: 301 + to: /ja/docs/infrastructure/testing-and-auditing/advance-the-ledger-in-stand-alone-mode + type: 301 /ja/test-amendments.html: - to: /ja/docs/infrastructure/testing-and-auditing/test-amendments - type: 301 + to: /ja/docs/infrastructure/testing-and-auditing/test-amendments + type: 301 /ja/private-network-with-docker.html: - to: /ja/docs/infrastructure/testing-and-auditing/run-private-network-with-docker - type: 301 + to: /ja/docs/infrastructure/testing-and-auditing/run-private-network-with-docker + type: 301 /ja/troubleshoot-the-rippled-server.html: - to: /ja/docs/infrastructure/troubleshooting/ - type: 301 + to: /ja/docs/infrastructure/troubleshooting/ + type: 301 /ja/diagnosing-problems.html: - to: /ja/docs/infrastructure/troubleshooting/diagnosing-problems - type: 301 + to: /ja/docs/infrastructure/troubleshooting/diagnosing-problems + type: 301 /ja/health-check-interventions.html: - to: /ja/docs/infrastructure/troubleshooting/health-check-interventions - type: 301 + to: /ja/docs/infrastructure/troubleshooting/health-check-interventions + type: 301 /ja/understanding-log-messages.html: - to: /ja/docs/infrastructure/troubleshooting/understanding-log-messages - type: 301 + to: /ja/docs/infrastructure/troubleshooting/understanding-log-messages + type: 301 /ja/server-doesnt-sync.html: - to: /ja/docs/infrastructure/troubleshooting/server-doesnt-sync - type: 301 + to: /ja/docs/infrastructure/troubleshooting/server-doesnt-sync + type: 301 /ja/server-is-amendment-blocked.html: - to: /ja/docs/infrastructure/troubleshooting/server-is-amendment-blocked - type: 301 + to: /ja/docs/infrastructure/troubleshooting/server-is-amendment-blocked + type: 301 /ja/server-wont-start.html: - to: /ja/docs/infrastructure/troubleshooting/server-wont-start - type: 301 + to: /ja/docs/infrastructure/troubleshooting/server-wont-start + type: 301 /ja/fix-sqlite-tx-db-page-size-issue.html: - to: /ja/docs/infrastructure/troubleshooting/fix-sqlite-tx-db-page-size-issue - type: 301 + to: /ja/docs/infrastructure/troubleshooting/fix-sqlite-tx-db-page-size-issue + type: 301 /ja/manage-the-rippled-server.html: - to: /ja/docs/infrastructure/installation/install-rippled-on-ubuntu - type: 301 + to: /ja/docs/infrastructure/installation/install-rippled-on-ubuntu + type: 301 /ja/build-run-rippled-ubuntu.html: - to: /ja/docs/infrastructure/installation/build-on-linux-mac-windows - type: 301 + to: /ja/docs/infrastructure/installation/build-on-linux-mac-windows + type: 301 /ja/build-run-rippled-macos.html: - to: /ja/docs/infrastructure/installation/build-on-linux-mac-windows - type: 301 + to: /ja/docs/infrastructure/installation/build-on-linux-mac-windows + type: 301 /ja/update-rippled-automatically-on-centos-rhel.html: - to: /ja/docs/infrastructure/installation/update-rippled-automatically-on-linux - type: 301 + to: /ja/docs/infrastructure/installation/update-rippled-automatically-on-linux + type: 301 /ja/install-rippled-on-ubuntu-with-alien.html: - to: /ja/docs/infrastructure/installation/install-rippled-on-ubuntu - type: 301 + to: /ja/docs/infrastructure/installation/install-rippled-on-ubuntu + type: 301 /ja/run-a-rippled-validator.html: - to: /ja/docs/infrastructure/configuration/server-modes/run-rippled-as-a-validator - type: 301 + to: /ja/docs/infrastructure/configuration/server-modes/run-rippled-as-a-validator + type: 301 /ja/list-xrp-in-your-exchange.html: - to: /ja/docs/use-cases/defi/list-xrp-as-an-exchange - type: 301 + to: /ja/docs/use-cases/defi/list-xrp-as-an-exchange + type: 301 /ja/contribute-code-to-rippled.html: - to: /ja/resources/contribute-code - type: 301 + to: /ja/resources/contribute-code + type: 301 /ja/contribute-code-to-ripple-lib.html: - to: /ja/resources/contribute-code - type: 301 + to: /ja/resources/contribute-code + type: 301 /ja/contribute-code-flow.html: - to: /ja/resources/contribute-code - type: 301 + to: /ja/resources/contribute-code + type: 301 /ja/resources.html: - to: /ja/resources/ - type: 301 + to: /ja/resources/ + type: 301 /ja/known-amendments.html: - to: /ja/resources/known-amendments - type: 301 + to: /ja/resources/known-amendments + type: 301 /ja/contribute-code.html: - to: /ja/resources/contribute-code - type: 301 + to: /ja/resources/contribute-code + type: 301 /ja/create-custom-transactors.html: - to: /ja/resources/contribute-code/create-custom-transactors - type: 301 + to: /ja/resources/contribute-code/create-custom-transactors + type: 301 /ja/contribute-documentation.html: - to: /ja/resources/contribute-documentation/ - type: 301 + to: /ja/resources/contribute-documentation/ + type: 301 /ja/documentation-translations.html: - to: /ja/resources/contribute-documentation/documentation-translations - type: 301 + to: /ja/resources/contribute-documentation/documentation-translations + type: 301 /ja/creating-diagrams.html: - to: /ja/resources/contribute-documentation/creating-diagrams - type: 301 + to: /ja/resources/contribute-documentation/creating-diagrams + type: 301 /ja/tutorial-guidelines.html: - to: /ja/resources/contribute-documentation/tutorial-guidelines - type: 301 + to: /ja/resources/contribute-documentation/tutorial-guidelines + type: 301 /ja/tutorial-structure.html: - to: /ja/resources/contribute-documentation/tutorial-guidelines - type: 301 + to: /ja/resources/contribute-documentation/tutorial-guidelines + type: 301 /ja/report-a-scam.html: - to: /ja/contributing/report-a-scam - type: 301 + to: /ja/contributing/report-a-scam + type: 301 /ja/wallets.html: - to: /ja/docs/introduction/crypto-wallets - type: 301 + to: /ja/docs/introduction/crypto-wallets + type: 301 /ja/blog/2024/rippled-2.2.0.html: - to: /ja/blog/2024/rippled-2.2.0 - type: 301 + to: /ja/blog/2024/rippled-2.2.0 + type: 301 /ja/blog/2024/rippled-2.1.0.html: - to: /ja/blog/2024/rippled-2.1.0 - type: 301 + to: /ja/blog/2024/rippled-2.1.0 + type: 301 /ja/blog/2024/clio-2.1.0.html: - to: /ja/blog/2024/clio-2.1.0 - type: 301 + to: /ja/blog/2024/clio-2.1.0 + type: 301 /ja/blog/2024/rippled-2.0.1.html: - to: /ja/blog/2024/rippled-2.0.1 - type: 301 + to: /ja/blog/2024/rippled-2.0.1 + type: 301 /ja/blog/2024/web3auth.html: - to: /ja/blog/2024/web3auth - type: 301 + to: /ja/blog/2024/web3auth + type: 301 /ja/blog/2024/rippled-2.0.0.html: - to: /ja/blog/2024/rippled-2.0.0 - type: 301 + to: /ja/blog/2024/rippled-2.0.0 + type: 301 /ja/blog/2023/decommissioning-amm-devnet.html: - to: /ja/blog/2023/decommissioning-amm-devnet - type: 301 + to: /ja/blog/2023/decommissioning-amm-devnet + type: 301 /ja/blog/2023/gemwallet-update.html: - to: /ja/blog/2023/gemwallet-update - type: 301 + to: /ja/blog/2023/gemwallet-update + type: 301 /ja/blog/2023/clio-2.0.0.html: - to: /ja/blog/2023/clio-2.0.0 - type: 301 + to: /ja/blog/2023/clio-2.0.0 + type: 301 /ja/blog/2023/santiment.html: - to: /ja/blog/2023/santiment - type: 301 + to: /ja/blog/2023/santiment + type: 301 /ja/blog/2023/data-api-v2-deprecated.html: - to: /ja/blog/2023/data-api-v2-deprecated - type: 301 + to: /ja/blog/2023/data-api-v2-deprecated + type: 301 /ja/blog/2023/devnet-reset-scheduled-sep-19-2023.html: - to: /ja/blog/2023/devnet-reset-scheduled-sep-19-2023 - type: 301 + to: /ja/blog/2023/devnet-reset-scheduled-sep-19-2023 + type: 301 /ja/blog/2023/rippled-1.12.0.html: - to: /ja/blog/2023/rippled-1.12.0 - type: 301 + to: /ja/blog/2023/rippled-1.12.0 + type: 301 /ja/blog/2023/upcoming-devnet-reset.html: - to: /ja/blog/2023/upcoming-devnet-reset - type: 301 + to: /ja/blog/2023/upcoming-devnet-reset + type: 301 /ja/blog/2023/blockdaemon.html: - to: /ja/blog/2023/blockdaemon - type: 301 + to: /ja/blog/2023/blockdaemon + type: 301 /ja/blog/2023/disallowincoming-and-others-expected.html: - to: /ja/blog/2023/disallowincoming-and-others-expected - type: 301 + to: /ja/blog/2023/disallowincoming-and-others-expected + type: 301 /ja/blog/2023/xrp-toolkit.html: - to: /ja/blog/2023/xrp-toolkit - type: 301 + to: /ja/blog/2023/xrp-toolkit + type: 301 /ja/blog/2023/summarizing-xrpl-docs-iav3.html: - to: /ja/blog/2023/summarizing-xrpl-docs-iav3 - type: 301 + to: /ja/blog/2023/summarizing-xrpl-docs-iav3 + type: 301 /ja/blog/2023/xrpl-py-2.0-release.html: - to: /ja/blog/2023/xrpl-py-2.0-release - type: 301 + to: /ja/blog/2023/xrpl-py-2.0-release + type: 301 /ja/blog/2023/fieldboss.html: - to: /ja/blog/2023/fieldboss - type: 301 + to: /ja/blog/2023/fieldboss + type: 301 /ja/blog/2023/rippled-1.11.0.html: - to: /ja/blog/2023/rippled-1.11.0 - type: 301 + to: /ja/blog/2023/rippled-1.11.0 + type: 301 /ja/blog/2023/ciso.html: - to: /ja/blog/2023/ciso - type: 301 + to: /ja/blog/2023/ciso + type: 301 /ja/blog/2023/edge.html: - to: /ja/blog/2023/edge - type: 301 + to: /ja/blog/2023/edge + type: 301 /ja/blog/2023/xrpcafe.html: - to: /ja/blog/2023/xrpcafe - type: 301 + to: /ja/blog/2023/xrpcafe + type: 301 /ja/blog/2023/chispend.html: - to: /ja/blog/2023/chispend - type: 301 + to: /ja/blog/2023/chispend + type: 301 /ja/blog/2023/rippled-1.10.0.html: - to: /ja/blog/2023/rippled-1.10.0 - type: 301 + to: /ja/blog/2023/rippled-1.10.0 + type: 301 /ja/blog/2023/bei-api.html: - to: /ja/blog/2023/bei-api - type: 301 + to: /ja/blog/2023/bei-api + type: 301 /ja/blog/2023/zoetic.html: - to: /ja/blog/2023/zoetic - type: 301 + to: /ja/blog/2023/zoetic + type: 301 /ja/blog/2023/mandla-money.html: - to: /ja/blog/2023/mandla-money - type: 301 + to: /ja/blog/2023/mandla-money + type: 301 /ja/blog/2023/nft-devnet-decommission.html: - to: /ja/blog/2023/nft-devnet-decommission - type: 301 + to: /ja/blog/2023/nft-devnet-decommission + type: 301 /ja/blog/2023/aesthetes.html: - to: /ja/blog/2023/aesthetes - type: 301 + to: /ja/blog/2023/aesthetes + type: 301 /ja/blog/2023/stably.html: - to: /ja/blog/2023/stably - type: 301 + to: /ja/blog/2023/stably + type: 301 /ja/blog/2022/introducing-xrpl-py-2.0.0beta.html: - to: /ja/blog/2022/introducing-xrpl-py-2.0.0beta - type: 301 + to: /ja/blog/2022/introducing-xrpl-py-2.0.0beta + type: 301 /ja/blog/2022/nftmaster.html: - to: /ja/blog/2022/nftmaster - type: 301 + to: /ja/blog/2022/nftmaster + type: 301 /ja/blog/2022/xpmarket.html: - to: /ja/blog/2022/xpmarket - type: 301 + to: /ja/blog/2022/xpmarket + type: 301 /ja/blog/2022/ziggurat.html: - to: /ja/blog/2022/ziggurat - type: 301 + to: /ja/blog/2022/ziggurat + type: 301 /ja/blog/2022/gemwallet.html: - to: /ja/blog/2022/gemwallet - type: 301 + to: /ja/blog/2022/gemwallet + type: 301 /ja/blog/2022/cryptoiso20022interop.html: - to: /ja/blog/2022/cryptoiso20022interop - type: 301 + to: /ja/blog/2022/cryptoiso20022interop + type: 301 /ja/blog/2022/non-fungible-tokens-are-now-available.html: - to: /ja/blog/2022/non-fungible-tokens-are-now-available - type: 301 + to: /ja/blog/2022/non-fungible-tokens-are-now-available + type: 301 /ja/blog/2022/dev-reflections-relaunch.html: - to: /ja/blog/2022/dev-reflections-relaunch - type: 301 + to: /ja/blog/2022/dev-reflections-relaunch + type: 301 /ja/blog/2022/expandedsignerlist-enabled-and-nfts-approaching.html: - to: /ja/blog/2022/expandedsignerlist-enabled-and-nfts-approaching - type: 301 + to: /ja/blog/2022/expandedsignerlist-enabled-and-nfts-approaching + type: 301 /ja/blog/2022/introducing-learning-portal.html: - to: /ja/blog/2022/introducing-learning-portal - type: 301 + to: /ja/blog/2022/introducing-learning-portal + type: 301 /ja/blog/2022/rippled-1.9.4.html: - to: /ja/blog/2022/rippled-1.9.4 - type: 301 + to: /ja/blog/2022/rippled-1.9.4 + type: 301 /ja/blog/2022/get-ready-for-nfts.html: - to: /ja/blog/2022/get-ready-for-nfts - type: 301 + to: /ja/blog/2022/get-ready-for-nfts + type: 301 /ja/blog/2022/rippled-1.9.3.html: - to: /ja/blog/2022/rippled-1.9.3 - type: 301 + to: /ja/blog/2022/rippled-1.9.3 + type: 301 /ja/blog/2022/rippled-1.9.2.html: - to: /ja/blog/2022/rippled-1.9.2 - type: 301 + to: /ja/blog/2022/rippled-1.9.2 + type: 301 /ja/blog/2022/clio-1.0.0.html: - to: /ja/blog/2022/clio-1.0.0 - type: 301 + to: /ja/blog/2022/clio-1.0.0 + type: 301 /ja/blog/2022/rippled-1.9.1.html: - to: /ja/blog/2022/rippled-1.9.1 - type: 301 + to: /ja/blog/2022/rippled-1.9.1 + type: 301 /ja/blog/2022/rippled-1.9.0.html: - to: /ja/blog/2022/rippled-1.9.0 - type: 301 + to: /ja/blog/2022/rippled-1.9.0 + type: 301 /ja/blog/2022/introducing-clio.html: - to: /ja/blog/2022/introducing-clio - type: 301 + to: /ja/blog/2022/introducing-clio + type: 301 /ja/blog/2022/nft-devnet-reset.html: - to: /ja/blog/2022/nft-devnet-reset - type: 301 + to: /ja/blog/2022/nft-devnet-reset + type: 301 /ja/blog/2022/rippled-1.8.5.html: - to: /ja/blog/2022/rippled-1.8.5 - type: 301 + to: /ja/blog/2022/rippled-1.8.5 + type: 301 /ja/blog/2022/rippled-1.8.4.html: - to: /ja/blog/2022/rippled-1.8.4 - type: 301 + to: /ja/blog/2022/rippled-1.8.4 + type: 301 /ja/blog/2021/rippled-1.8.2.html: - to: /ja/blog/2021/rippled-1.8.2 - type: 301 + to: /ja/blog/2021/rippled-1.8.2 + type: 301 /ja/blog/2021/rippled-1.8.1.html: - to: /ja/blog/2021/rippled-1.8.1 - type: 301 + to: /ja/blog/2021/rippled-1.8.1 + type: 301 /ja/blog/2021/five-upcoming-amendments.html: - to: /ja/blog/2021/five-upcoming-amendments - type: 301 + to: /ja/blog/2021/five-upcoming-amendments + type: 301 /ja/blog/2021/introducing-xrpl-js.html: - to: /ja/blog/2021/introducing-xrpl-js - type: 301 + to: /ja/blog/2021/introducing-xrpl-js + type: 301 /ja/blog/2021/sidechain-engineering-preview.html: - to: /ja/blog/2021/sidechain-engineering-preview - type: 301 + to: /ja/blog/2021/sidechain-engineering-preview + type: 301 /ja/blog/2021/reserves-lowered.html: - to: /ja/blog/2021/reserves-lowered - type: 301 + to: /ja/blog/2021/reserves-lowered + type: 301 /ja/blog/2021/rippled-1.7.3.html: - to: /ja/blog/2021/rippled-1.7.3 - type: 301 + to: /ja/blog/2021/rippled-1.7.3 + type: 301 /ja/blog/2021/ripple-lib-drops-lodash-browsers.html: - to: /ja/blog/2021/ripple-lib-drops-lodash-browsers - type: 301 + to: /ja/blog/2021/ripple-lib-drops-lodash-browsers + type: 301 /ja/blog/2021/xrpl-grants-funding-the-next-phase-of-open-decentralized-innovation.html: - to: /ja/blog/2021/xrpl-grants-funding-the-next-phase-of-open-decentralized-innovation - type: 301 + to: /ja/blog/2021/xrpl-grants-funding-the-next-phase-of-open-decentralized-innovation + type: 301 /ja/blog/2021/rippled-1.7.2.html: - to: /ja/blog/2021/rippled-1.7.2 - type: 301 + to: /ja/blog/2021/rippled-1.7.2 + type: 301 /ja/blog/2021/introducing-xrpl4j.html: - to: /ja/blog/2021/introducing-xrpl4j - type: 301 + to: /ja/blog/2021/introducing-xrpl4j + type: 301 /ja/blog/2021/xrpl-node-configurator.html: - to: /ja/blog/2021/xrpl-node-configurator - type: 301 + to: /ja/blog/2021/xrpl-node-configurator + type: 301 /ja/blog/2021/introducing-xrpl-py-for-pythonistas.html: - to: /ja/blog/2021/introducing-xrpl-py-for-pythonistas - type: 301 + to: /ja/blog/2021/introducing-xrpl-py-for-pythonistas + type: 301 /ja/blog/2021/three-amendments-expected.html: - to: /ja/blog/2021/three-amendments-expected - type: 301 + to: /ja/blog/2021/three-amendments-expected + type: 301 /ja/blog/2021/message-routing-optimizations-pt-1-proposal-validation-relaying.html: - to: /ja/blog/2021/message-routing-optimizations-pt-1-proposal-validation-relaying - type: 301 + to: /ja/blog/2021/message-routing-optimizations-pt-1-proposal-validation-relaying + type: 301 /ja/blog/2021/community-spotlight-developing-wallet-protect.html: - to: /ja/blog/2021/community-spotlight-developing-wallet-protect - type: 301 + to: /ja/blog/2021/community-spotlight-developing-wallet-protect + type: 301 /ja/blog/2021/road-to-xrp-ledger-1-7-improving-efficiency-and-security.html: - to: /ja/blog/2021/road-to-xrp-ledger-1-7-improving-efficiency-and-security - type: 301 + to: /ja/blog/2021/road-to-xrp-ledger-1-7-improving-efficiency-and-security + type: 301 /ja/blog/2021/rippled-1.7.0.html: - to: /ja/blog/2021/rippled-1.7.0 - type: 301 + to: /ja/blog/2021/rippled-1.7.0 + type: 301 /ja/blog/2020/rippled-1.6.0.html: - to: /ja/blog/2020/rippled-1.6.0 - type: 301 + to: /ja/blog/2020/rippled-1.6.0 + type: 301 /ja/blog/2020/moving-devnet-to-vl.html: - to: /ja/blog/2020/moving-devnet-to-vl - type: 301 + to: /ja/blog/2020/moving-devnet-to-vl + type: 301 /ja/blog/2020/requirefullycanonicalsig-fixqualityupperbound-flowcross-enabled.html: - to: /ja/blog/2020/requirefullycanonicalsig-fixqualityupperbound-flowcross-enabled - type: 301 + to: /ja/blog/2020/requirefullycanonicalsig-fixqualityupperbound-flowcross-enabled + type: 301 /ja/blog/2020/developer-reflections-xrp-toolkit.html: - to: /ja/blog/2020/developer-reflections-xrp-toolkit - type: 301 + to: /ja/blog/2020/developer-reflections-xrp-toolkit + type: 301 /ja/blog/2020/requirefullycanonicalsig-expected.html: - to: /ja/blog/2020/requirefullycanonicalsig-expected - type: 301 + to: /ja/blog/2020/requirefullycanonicalsig-expected + type: 301 /ja/blog/2020/checks-enabled.html: - to: /ja/blog/2020/checks-enabled - type: 301 + to: /ja/blog/2020/checks-enabled + type: 301 /ja/blog/2020/checks-expected.html: - to: /ja/blog/2020/checks-expected - type: 301 + to: /ja/blog/2020/checks-expected + type: 301 /ja/blog/2020/developer-reflections-xrplorer.html: - to: /ja/blog/2020/developer-reflections-xrplorer - type: 301 + to: /ja/blog/2020/developer-reflections-xrplorer + type: 301 /ja/blog/2020/deletableaccounts-enabled.html: - to: /ja/blog/2020/deletableaccounts-enabled - type: 301 + to: /ja/blog/2020/deletableaccounts-enabled + type: 301 /ja/blog/2020/get-ready-for-deletable-accounts.html: - to: /ja/blog/2020/get-ready-for-deletable-accounts - type: 301 + to: /ja/blog/2020/get-ready-for-deletable-accounts + type: 301 /ja/blog/2020/developer-reflections-xrpscan.html: - to: /ja/blog/2020/developer-reflections-xrpscan - type: 301 + to: /ja/blog/2020/developer-reflections-xrpscan + type: 301 /ja/blog/2020/two-fixes-enabled.html: - to: /ja/blog/2020/two-fixes-enabled - type: 301 + to: /ja/blog/2020/two-fixes-enabled + type: 301 /ja/blog/2020/deletableaccounts-expected.html: - to: /ja/blog/2020/deletableaccounts-expected - type: 301 + to: /ja/blog/2020/deletableaccounts-expected + type: 301 /ja/blog/2020/testnet-amendments-rippled-1.5.0.html: - to: /ja/blog/2020/testnet-amendments-rippled-1.5.0 - type: 301 + to: /ja/blog/2020/testnet-amendments-rippled-1.5.0 + type: 301 /ja/blog/2020/rippled-1.5.0.html: - to: /ja/blog/2020/rippled-1.5.0 - type: 301 + to: /ja/blog/2020/rippled-1.5.0 + type: 301 /ja/blog/2020/running-an-xrp-ledger-validator.html: - to: /ja/blog/2020/running-an-xrp-ledger-validator - type: 301 + to: /ja/blog/2020/running-an-xrp-ledger-validator + type: 301 /ja/blog/2020/fixcheckthreading-fixpaychanrecipientownerdir-lost-majority.html: - to: /ja/blog/2020/fixcheckthreading-fixpaychanrecipientownerdir-lost-majority - type: 301 + to: /ja/blog/2020/fixcheckthreading-fixpaychanrecipientownerdir-lost-majority + type: 301 /ja/blog/2020/rippled-1.4.0-upgrade-advisory.html: - to: /ja/blog/2020/rippled-1.4.0-upgrade-advisory - type: 301 + to: /ja/blog/2020/rippled-1.4.0-upgrade-advisory + type: 301 /ja/blog/2020/fixcheckthreading-fixpaychanrecipientownerdir-expected.html: - to: /ja/blog/2020/fixcheckthreading-fixpaychanrecipientownerdir-expected - type: 301 + to: /ja/blog/2020/fixcheckthreading-fixpaychanrecipientownerdir-expected + type: 301 /ja/blog/2019/rippled-1.4.0.html: - to: /ja/blog/2019/rippled-1.4.0 - type: 301 + to: /ja/blog/2019/rippled-1.4.0 + type: 301 /ja/blog/2019/xrpl-devnet-launch.html: - to: /ja/blog/2019/xrpl-devnet-launch - type: 301 + to: /ja/blog/2019/xrpl-devnet-launch + type: 301 /ja/blog/2019/fixmasterkeyasregularkey-enabled.html: - to: /ja/blog/2019/fixmasterkeyasregularkey-enabled - type: 301 + to: /ja/blog/2019/fixmasterkeyasregularkey-enabled + type: 301 /ja/blog/2019/fixmasterkeyasregularkey-1day.html: - to: /ja/blog/2019/fixmasterkeyasregularkey-1day - type: 301 + to: /ja/blog/2019/fixmasterkeyasregularkey-1day + type: 301 /ja/blog/2019/fixmasterkeyasregularkey-expected.html: - to: /ja/blog/2019/fixmasterkeyasregularkey-expected - type: 301 + to: /ja/blog/2019/fixmasterkeyasregularkey-expected + type: 301 /ja/blog/2019/testnet-reset.html: - to: /ja/blog/2019/testnet-reset - type: 301 + to: /ja/blog/2019/testnet-reset + type: 301 /ja/blog/2019/rippled-1.3.1.html: - to: /ja/blog/2019/rippled-1.3.1 - type: 301 + to: /ja/blog/2019/rippled-1.3.1 + type: 301 /ja/blog/2019/labeling-the-internet-of-value.html: - to: /ja/blog/2019/labeling-the-internet-of-value - type: 301 + to: /ja/blog/2019/labeling-the-internet-of-value + type: 301 /ja/blog/2019/discover-xrp-ledger-explorer.html: - to: /ja/blog/2019/discover-xrp-ledger-explorer - type: 301 + to: /ja/blog/2019/discover-xrp-ledger-explorer + type: 301 /ja/blog/2019/websocket-tool-update.html: - to: /ja/blog/2019/websocket-tool-update - type: 301 + to: /ja/blog/2019/websocket-tool-update + type: 301 /ja/blog/2019/welcome-to-xrpl-org.html: - to: /ja/blog/2019/welcome-to-xrpl-org - type: 301 + to: /ja/blog/2019/welcome-to-xrpl-org + type: 301 /ja/blog/2019/multisignreserve-enabled.html: - to: /ja/blog/2019/multisignreserve-enabled - type: 301 + to: /ja/blog/2019/multisignreserve-enabled + type: 301 /ja/blog/2019/rippled-1.2.4.html: - to: /ja/blog/2019/rippled-1.2.4 - type: 301 + to: /ja/blog/2019/rippled-1.2.4 + type: 301 /ja/blog/2019/secure-development-practices.html: - to: /ja/blog/2019/secure-development-practices - type: 301 + to: /ja/blog/2019/secure-development-practices + type: 301 /ja/blog/2019/multisignreserve-expected.html: - to: /ja/blog/2019/multisignreserve-expected - type: 301 + to: /ja/blog/2019/multisignreserve-expected + type: 301 /ja/blog/2019/corrections-to-data-api-xrp-charts-metrics.html: - to: /ja/blog/2019/corrections-to-data-api-xrp-charts-metrics - type: 301 + to: /ja/blog/2019/corrections-to-data-api-xrp-charts-metrics + type: 301 /ja/blog/2019/interledger-checkin.html: - to: /ja/blog/2019/interledger-checkin - type: 301 + to: /ja/blog/2019/interledger-checkin + type: 301 /ja/blog/2019/fixtakerdryofferremoval-enabled.html: - to: /ja/blog/2019/fixtakerdryofferremoval-enabled - type: 301 + to: /ja/blog/2019/fixtakerdryofferremoval-enabled + type: 301 /ja/blog/2019/rippled-1.2.3.html: - to: /ja/blog/2019/rippled-1.2.3 - type: 301 + to: /ja/blog/2019/rippled-1.2.3 + type: 301 /ja/blog/2019/fix1578-enabled.html: - to: /ja/blog/2019/fix1578-enabled - type: 301 + to: /ja/blog/2019/fix1578-enabled + type: 301 /ja/blog/2019/fix1578-expected.html: - to: /ja/blog/2019/fix1578-expected - type: 301 + to: /ja/blog/2019/fix1578-expected + type: 301 /ja/blog/2019/rippled-1.2.2.html: - to: /ja/blog/2019/rippled-1.2.2 - type: 301 + to: /ja/blog/2019/rippled-1.2.2 + type: 301 /ja/blog/2019/rippled-1.2.1.html: - to: /ja/blog/2019/rippled-1.2.1 - type: 301 + to: /ja/blog/2019/rippled-1.2.1 + type: 301 /ja/blog/2019/rippled-1.2.0.html: - to: /ja/blog/2019/rippled-1.2.0 - type: 301 + to: /ja/blog/2019/rippled-1.2.0 + type: 301 /ja/blog/2019/statement-on-the-biased-nonce-sense-paper.html: - to: /ja/blog/2019/statement-on-the-biased-nonce-sense-paper - type: 301 + to: /ja/blog/2019/statement-on-the-biased-nonce-sense-paper + type: 301 /ja/blog/2018/rippled-1.1.2.html: - to: /ja/blog/2018/rippled-1.1.2 - type: 301 + to: /ja/blog/2018/rippled-1.1.2 + type: 301 /ja/blog/2018/introducing-history-sharding.html: - to: /ja/blog/2018/introducing-history-sharding - type: 301 + to: /ja/blog/2018/introducing-history-sharding + type: 301 /ja/blog/2018/data-api-validations-changes.html: - to: /ja/blog/2018/data-api-validations-changes - type: 301 + to: /ja/blog/2018/data-api-validations-changes + type: 301 /ja/blog/2018/rippled-1.1.1.html: - to: /ja/blog/2018/rippled-1.1.1 - type: 301 + to: /ja/blog/2018/rippled-1.1.1 + type: 301 /ja/blog/2018/depositpreauth-fix1515-enabled.html: - to: /ja/blog/2018/depositpreauth-fix1515-enabled - type: 301 + to: /ja/blog/2018/depositpreauth-fix1515-enabled + type: 301 /ja/blog/2018/rippled-1.1.0.html: - to: /ja/blog/2018/rippled-1.1.0 - type: 301 + to: /ja/blog/2018/rippled-1.1.0 + type: 301 /ja/blog/2018/ripple-lib-1.0.0.html: - to: /ja/blog/2018/ripple-lib-1.0.0 - type: 301 + to: /ja/blog/2018/ripple-lib-1.0.0 + type: 301 /ja/blog/2018/fix1571-enabled.html: - to: /ja/blog/2018/fix1571-enabled - type: 301 + to: /ja/blog/2018/fix1571-enabled + type: 301 /ja/blog/2018/rippled-1.0.1.html: - to: /ja/blog/2018/rippled-1.0.1 - type: 301 + to: /ja/blog/2018/rippled-1.0.1 + type: 301 /ja/blog/2018/fix1543-fix1571-fix1623-voting.html: - to: /ja/blog/2018/fix1543-fix1571-fix1623-voting - type: 301 + to: /ja/blog/2018/fix1543-fix1571-fix1623-voting + type: 301 /ja/blog/2018/rippled-1.0.0.html: - to: /ja/blog/2018/rippled-1.0.0 - type: 301 + to: /ja/blog/2018/rippled-1.0.0 + type: 301 /ja/blog/2018/depositauth-fix1513-available.html: - to: /ja/blog/2018/depositauth-fix1513-available - type: 301 + to: /ja/blog/2018/depositauth-fix1513-available + type: 301 /ja/blog/2018/rippled-0.90.1.html: - to: /ja/blog/2018/rippled-0.90.1 - type: 301 + to: /ja/blog/2018/rippled-0.90.1 + type: 301 /ja/blog/2018/rippled-0.90.0.html: - to: /ja/blog/2018/rippled-0.90.0 - type: 301 + to: /ja/blog/2018/rippled-0.90.0 + type: 301 /ja/blog/2018/rippled-validator-key-replacement.html: - to: /ja/blog/2018/rippled-validator-key-replacement - type: 301 + to: /ja/blog/2018/rippled-validator-key-replacement + type: 301 /ja/blog/2018/rippled-boost166-warning.html: - to: /ja/blog/2018/rippled-boost166-warning - type: 301 + to: /ja/blog/2018/rippled-boost166-warning + type: 301 /ja/blog/2018/rippled-0.81.0.html: - to: /ja/blog/2018/rippled-0.81.0 - type: 301 + to: /ja/blog/2018/rippled-0.81.0 + type: 301 /ja/blog/2017/explanation-of-ripples-xrp-escrow.html: - to: /ja/blog/2017/explanation-of-ripples-xrp-escrow - type: 301 + to: /ja/blog/2017/explanation-of-ripples-xrp-escrow + type: 301 /ja/blog/2017/rippled-0.80.2.html: - to: /ja/blog/2017/rippled-0.80.2 - type: 301 + to: /ja/blog/2017/rippled-0.80.2 + type: 301 /ja/blog/2017/rippled-0.80.0.html: - to: /ja/blog/2017/rippled-0.80.0 - type: 301 + to: /ja/blog/2017/rippled-0.80.0 + type: 301 /ja/blog/2017/decent-strategy-update.html: - to: /ja/blog/2017/decent-strategy-update - type: 301 + to: /ja/blog/2017/decent-strategy-update + type: 301 /ja/blog/2017/high-scalability-xrp-ledger.html: - to: /ja/blog/2017/high-scalability-xrp-ledger - type: 301 + to: /ja/blog/2017/high-scalability-xrp-ledger + type: 301 /ja/blog/2017/rippled-0.70.2.html: - to: /ja/blog/2017/rippled-0.70.2 - type: 301 + to: /ja/blog/2017/rippled-0.70.2 + type: 301 /ja/blog/2017/invariant-checking.html: - to: /ja/blog/2017/invariant-checking - type: 301 + to: /ja/blog/2017/invariant-checking + type: 301 /ja/blog/2017/rippled-0.70.1.html: - to: /ja/blog/2017/rippled-0.70.1 - type: 301 + to: /ja/blog/2017/rippled-0.70.1 + type: 301 /ja/blog/2017/rippled-0.70.0.html: - to: /ja/blog/2017/rippled-0.70.0 - type: 301 + to: /ja/blog/2017/rippled-0.70.0 + type: 301 /ja/blog/2017/rippled-0.60.3.html: - to: /ja/blog/2017/rippled-0.60.3 - type: 301 + to: /ja/blog/2017/rippled-0.60.3 + type: 301 /ja/blog/2017/rippled-0.60.2-2-rpm.html: - to: /ja/blog/2017/rippled-0.60.2-2-rpm - type: 301 + to: /ja/blog/2017/rippled-0.60.2-2-rpm + type: 301 /ja/blog/2017/rippled-0.60.2.html: - to: /ja/blog/2017/rippled-0.60.2 - type: 301 + to: /ja/blog/2017/rippled-0.60.2 + type: 301 /ja/blog/2017/rippled-0.60.1.html: - to: /ja/blog/2017/rippled-0.60.1 - type: 301 + to: /ja/blog/2017/rippled-0.60.1 + type: 301 /ja/blog/2017/escrow-paychan-fix1368-reminder.html: - to: /ja/blog/2017/escrow-paychan-fix1368-reminder - type: 301 + to: /ja/blog/2017/escrow-paychan-fix1368-reminder + type: 301 /ja/blog/2017/rippled-0.60.0.html: - to: /ja/blog/2017/rippled-0.60.0 - type: 301 + to: /ja/blog/2017/rippled-0.60.0 + type: 301 /ja/blog/2017/trust-line-quality-sendmax.html: - to: /ja/blog/2017/trust-line-quality-sendmax - type: 301 + to: /ja/blog/2017/trust-line-quality-sendmax + type: 301 /ja/blog/2017/rippled-0.50.3.html: - to: /ja/blog/2017/rippled-0.50.3 - type: 301 + to: /ja/blog/2017/rippled-0.50.3 + type: 301 /ja/blog/2017/ripple-consensus-ledger-can-sustain-1000-transactions-per-second.html: - to: /ja/blog/2017/ripple-consensus-ledger-can-sustain-1000-transactions-per-second - type: 301 + to: /ja/blog/2017/ripple-consensus-ledger-can-sustain-1000-transactions-per-second + type: 301 /ja/blog/2017/ticksize-available.html: - to: /ja/blog/2017/ticksize-available - type: 301 + to: /ja/blog/2017/ticksize-available + type: 301 /ja/blog/2017/ticksize-3days.html: - to: /ja/blog/2017/ticksize-3days - type: 301 + to: /ja/blog/2017/ticksize-3days + type: 301 /ja/blog/2017/ticksize-7days.html: - to: /ja/blog/2017/ticksize-7days - type: 301 + to: /ja/blog/2017/ticksize-7days + type: 301 /ja/blog/2017/ticksize-voting.html: - to: /ja/blog/2017/ticksize-voting - type: 301 + to: /ja/blog/2017/ticksize-voting + type: 301 /ja/blog/2017/rippled-0.50.2.html: - to: /ja/blog/2017/rippled-0.50.2 - type: 301 + to: /ja/blog/2017/rippled-0.50.2 + type: 301 /ja/blog/2017/rippled-0.50.0.html: - to: /ja/blog/2017/rippled-0.50.0 - type: 301 + to: /ja/blog/2017/rippled-0.50.0 + type: 301 /ja/blog/2017/data-api-load-balancing-test.html: - to: /ja/blog/2017/data-api-load-balancing-test - type: 301 + to: /ja/blog/2017/data-api-load-balancing-test + type: 301 /ja/blog/2017/response-to-china-cert-report.html: - to: /ja/blog/2017/response-to-china-cert-report - type: 301 + to: /ja/blog/2017/response-to-china-cert-report + type: 301 /ja/blog/2017/rippled-0.40.1.html: - to: /ja/blog/2017/rippled-0.40.1 - type: 301 + to: /ja/blog/2017/rippled-0.40.1 + type: 301 /ja/blog/2016/rippled-0.40.0.html: - to: /ja/blog/2016/rippled-0.40.0 - type: 301 + to: /ja/blog/2016/rippled-0.40.0 + type: 301 /ja/blog/2016/flow-available.html: - to: /ja/blog/2016/flow-available - type: 301 + to: /ja/blog/2016/flow-available + type: 301 /ja/blog/2016/flow-reminder.html: - to: /ja/blog/2016/flow-reminder - type: 301 + to: /ja/blog/2016/flow-reminder + type: 301 /ja/blog/2016/flow-voting.html: - to: /ja/blog/2016/flow-voting - type: 301 + to: /ja/blog/2016/flow-voting + type: 301 /ja/blog/2016/rippled-0.33.0-hf1.html: - to: /ja/blog/2016/rippled-0.33.0-hf1 - type: 301 + to: /ja/blog/2016/rippled-0.33.0-hf1 + type: 301 /ja/blog/2016/rippled-0.33.0.html: - to: /ja/blog/2016/rippled-0.33.0 - type: 301 + to: /ja/blog/2016/rippled-0.33.0 + type: 301 /ja/blog/2016/testnet-ledger-reset.html: - to: /ja/blog/2016/testnet-ledger-reset - type: 301 + to: /ja/blog/2016/testnet-ledger-reset + type: 301 /ja/blog/2016/flowv2-vetoed.html: - to: /ja/blog/2016/flowv2-vetoed - type: 301 + to: /ja/blog/2016/flowv2-vetoed + type: 301 /ja/blog/2016/flowv2-voting.html: - to: /ja/blog/2016/flowv2-voting - type: 301 + to: /ja/blog/2016/flowv2-voting + type: 301 /ja/blog/2016/rippled-0.32.1.html: - to: /ja/blog/2016/rippled-0.32.1 - type: 301 + to: /ja/blog/2016/rippled-0.32.1 + type: 301 /ja/blog/2016/trustsetauth-available.html: - to: /ja/blog/2016/trustsetauth-available - type: 301 + to: /ja/blog/2016/trustsetauth-available + type: 301 /ja/blog/2016/trustsetauth-reminder.html: - to: /ja/blog/2016/trustsetauth-reminder - type: 301 + to: /ja/blog/2016/trustsetauth-reminder + type: 301 /ja/blog/2016/trustsetauth-voting.html: - to: /ja/blog/2016/trustsetauth-voting - type: 301 + to: /ja/blog/2016/trustsetauth-voting + type: 301 /ja/blog/2016/multisign-available.html: - to: /ja/blog/2016/multisign-available - type: 301 + to: /ja/blog/2016/multisign-available + type: 301 /ja/blog/2016/rippled-0.32.0.html: - to: /ja/blog/2016/rippled-0.32.0 - type: 301 + to: /ja/blog/2016/rippled-0.32.0 + type: 301 /ja/blog/2016/multisign-reminder.html: - to: /ja/blog/2016/multisign-reminder - type: 301 + to: /ja/blog/2016/multisign-reminder + type: 301 /ja/blog/2016/data-api-v2.2.html: - to: /ja/blog/2016/data-api-v2.2 - type: 301 + to: /ja/blog/2016/data-api-v2.2 + type: 301 /ja/blog/2016/introducing-rippleapi.html: - to: /ja/blog/2016/introducing-rippleapi - type: 301 + to: /ja/blog/2016/introducing-rippleapi + type: 301 /ja/blog/2016/rippled-0.31.2-updates.html: - to: /ja/blog/2016/rippled-0.31.2-updates - type: 301 + to: /ja/blog/2016/rippled-0.31.2-updates + type: 301 /ja/blog/2016/rippled-0.30.1.html: - to: /ja/blog/2016/rippled-0.30.1 - type: 301 + to: /ja/blog/2016/rippled-0.30.1 + type: 301 /ja/blog/2015/correction-to-ripple-white-paper.html: - to: /ja/blog/2015/correction-to-ripple-white-paper - type: 301 + to: /ja/blog/2015/correction-to-ripple-white-paper + type: 301 /ja/blog/2015/validator-registry.html: - to: /ja/blog/2015/validator-registry - type: 301 + to: /ja/blog/2015/validator-registry + type: 301 /ja/blog/2015/introducing-the-data-api.html: - to: /ja/blog/2015/introducing-the-data-api - type: 301 + to: /ja/blog/2015/introducing-the-data-api + type: 301 /ja/blog/2015/gatewayd-no-longer-available.html: - to: /ja/blog/2015/gatewayd-no-longer-available - type: 301 + to: /ja/blog/2015/gatewayd-no-longer-available + type: 301 /ja/blog/2015/ripple-charts-update-payment-volume-and-issued-value.html: - to: /ja/blog/2015/ripple-charts-update-payment-volume-and-issued-value - type: 301 + to: /ja/blog/2015/ripple-charts-update-payment-volume-and-issued-value + type: 301 /ja/blog/2015/do-you-have-what-it-takes-to-be-a-gateway.html: - to: /ja/blog/2015/do-you-have-what-it-takes-to-be-a-gateway - type: 301 + to: /ja/blog/2015/do-you-have-what-it-takes-to-be-a-gateway + type: 301 /ja/blog/2015/calculating-balance-changes-for-a-transaction.html: - to: /ja/blog/2015/calculating-balance-changes-for-a-transaction - type: 301 + to: /ja/blog/2015/calculating-balance-changes-for-a-transaction + type: 301 /ja/blog/2014/turn-your-exchange-into-a-ripple-gateway.html: - to: /ja/blog/2014/turn-your-exchange-into-a-ripple-gateway - type: 301 + to: /ja/blog/2014/turn-your-exchange-into-a-ripple-gateway + type: 301 /ja/blog/2014/why-the-stellar-forking-issue-does-not-affect-ripple.html: - to: /ja/blog/2014/why-the-stellar-forking-issue-does-not-affect-ripple - type: 301 + to: /ja/blog/2014/why-the-stellar-forking-issue-does-not-affect-ripple + type: 301 /ja/blog/2014/release-notes-3-december-2014.html: - to: /ja/blog/2014/release-notes-3-december-2014 - type: 301 + to: /ja/blog/2014/release-notes-3-december-2014 + type: 301 /ja/blog/2014/release-notes-19-november-2014.html: - to: /ja/blog/2014/release-notes-19-november-2014 - type: 301 + to: /ja/blog/2014/release-notes-19-november-2014 + type: 301 /ja/blog/2014/ripplerest-1.3-release.html: - to: /ja/blog/2014/ripplerest-1.3-release - type: 301 + to: /ja/blog/2014/ripplerest-1.3-release + type: 301 /ja/blog/2014/release-notes-29-october-2014.html: - to: /ja/blog/2014/release-notes-29-october-2014 - type: 301 + to: /ja/blog/2014/release-notes-29-october-2014 + type: 301 /ja/blog/2014/gateway-advisory-on-partial-payment-flag.html: - to: /ja/blog/2014/gateway-advisory-on-partial-payment-flag - type: 301 + to: /ja/blog/2014/gateway-advisory-on-partial-payment-flag + type: 301 /ja/blog/2014/release-notes-14-october-2014.html: - to: /ja/blog/2014/release-notes-14-october-2014 - type: 301 + to: /ja/blog/2014/release-notes-14-october-2014 + type: 301 /ja/blog/2014/how-ripple-labs-supports-gateways.html: - to: /ja/blog/2014/how-ripple-labs-supports-gateways - type: 301 + to: /ja/blog/2014/how-ripple-labs-supports-gateways + type: 301 /ja/blog/2014/biweekly-release-notes-17-september-2014.html: - to: /ja/blog/2014/biweekly-release-notes-17-september-2014 - type: 301 + to: /ja/blog/2014/biweekly-release-notes-17-september-2014 + type: 301 /ja/blog/2014/biweekly-release-notes-3-september-2014.html: - to: /ja/blog/2014/biweekly-release-notes-3-september-2014 - type: 301 + to: /ja/blog/2014/biweekly-release-notes-3-september-2014 + type: 301 /ja/blog/2014/use-of-cpp14-in-rippled.html: - to: /ja/blog/2014/use-of-cpp14-in-rippled - type: 301 + to: /ja/blog/2014/use-of-cpp14-in-rippled + type: 301 /ja/blog/2014/biweekly-release-notes-14-august-2014.html: - to: /ja/blog/2014/biweekly-release-notes-14-august-2014 - type: 301 + to: /ja/blog/2014/biweekly-release-notes-14-august-2014 + type: 301 /ja/blog/2014/dev-portal-adds-rippled-apis.html: - to: /ja/blog/2014/dev-portal-adds-rippled-apis - type: 301 + to: /ja/blog/2014/dev-portal-adds-rippled-apis + type: 301 /ja/blog/2014/biweekly-release-notes-31-july-2014.html: - to: /ja/blog/2014/biweekly-release-notes-31-july-2014 - type: 301 + to: /ja/blog/2014/biweekly-release-notes-31-july-2014 + type: 301 /ja/blog/2014/xrp-giveaway-for-developers.html: - to: /ja/blog/2014/xrp-giveaway-for-developers - type: 301 + to: /ja/blog/2014/xrp-giveaway-for-developers + type: 301 /ja/blog/2014/ripple-labs-bounty-program-moves-to-bountysource.html: - to: /ja/blog/2014/ripple-labs-bounty-program-moves-to-bountysource - type: 301 + to: /ja/blog/2014/ripple-labs-bounty-program-moves-to-bountysource + type: 301 /ja/blog/2014/introducing-offer-autobridging.html: - to: /ja/blog/2014/introducing-offer-autobridging - type: 301 + to: /ja/blog/2014/introducing-offer-autobridging + type: 301 /ja/blog/2014/curves-with-a-twist.html: - to: /ja/blog/2014/curves-with-a-twist - type: 301 + to: /ja/blog/2014/curves-with-a-twist + type: 301 /ja/blog/2014/introducing-ripple-names.html: - to: /ja/blog/2014/introducing-ripple-names - type: 301 + to: /ja/blog/2014/introducing-ripple-names + type: 301 /ja/code_of_conduct/: - to: /ja/code-of-conduct - type: 301 + to: /ja/code-of-conduct + type: 301 /ja/code_of_conduct: - to: /ja/code-of-conduct - type: 301 + to: /ja/code-of-conduct + type: 301 # code_of_conduct.ja/: # to: /ja/code-of-conduct # type: 301 diff --git a/redocly.yaml b/redocly.yaml index 7ad4789b83..20df42f29d 100644 --- a/redocly.yaml +++ b/redocly.yaml @@ -78,7 +78,7 @@ navbar: items: $ref: top-nav.yaml markdown: - partialsFolders: ["docs/_snippets", "_code-samples", "_api-examples"] + partialsFolders: ['docs/_snippets', '_code-samples', '_api-examples'] editPage: baseUrl: https://github.com/XRPLF/xrpl-dev-portal/tree/master/ hide: false diff --git a/resources/code-samples.page.tsx b/resources/code-samples.page.tsx index c578ec1250..71395a4c5c 100644 --- a/resources/code-samples.page.tsx +++ b/resources/code-samples.page.tsx @@ -1,12 +1,12 @@ -import * as React from 'react'; -import { useThemeHooks } from '@redocly/theme/core/hooks'; +import * as React from 'react' +import { useThemeHooks } from '@redocly/theme/core/hooks' export const frontmatter = { seo: { title: 'Code Samples', - description: "Browse sample code for building common use cases on the XRP Ledger.", - } -}; + description: 'Browse sample code for building common use cases on the XRP Ledger.', + }, +} const langIcons = { cli: require('../static/img/logos/cli.svg'), @@ -17,16 +17,16 @@ const langIcons = { php: require('../static/img/logos/php.svg'), py: require('../static/img/logos/python.svg'), ts: require('../static/img/logos/typescript.svg'), -}; +} const target = { github_forkurl: 'https://github.com/XRPLF/xrpl-dev-portal', github_branch: 'master', -}; +} export default function CodeSamples() { - const { useTranslate, usePageSharedData } = useThemeHooks(); - const { translate } = useTranslate(); - const { codeSamples, langs } = usePageSharedData('code-samples'); + const { useTranslate, usePageSharedData } = useThemeHooks() + const { translate } = useTranslate() + const { codeSamples, langs } = usePageSharedData('code-samples') return (
    @@ -41,28 +41,22 @@ export default function CodeSamples() {
    - orange waves + orange waves
    -

    - {translate('Browse sample code for building common use cases on the XRP Ledger')} -

    +

    {translate('Browse sample code for building common use cases on the XRP Ledger')}

    - {codeSamples.map(card => ( + {codeSamples.map((card) => (
    - {card.langs.map(lang => ( + {card.langs.map((lang) => ( {lang} @@ -82,9 +76,7 @@ export default function CodeSamples() {

    {translate('Contribute Code Samples')}

    -
    - {translate('Help the XRPL community by submitting your own code samples')} -
    +
    {translate('Help the XRPL community by submitting your own code samples')}
    @@ -118,7 +108,10 @@ export default function CodeSamples() {
    {translate('Open a pull request')}

    - {translate('resources.contribute.4.part1', "Open a pull request to the original repo. Maintainers will review your submission and suggest changes if necessary. If the code sample is helpful, it'll be merged and added to XRPL.org!")} + {translate( + 'resources.contribute.4.part1', + "Open a pull request to the original repo. Maintainers will review your submission and suggest changes if necessary. If the code sample is helpful, it'll be merged and added to XRPL.org!", + )}

    @@ -127,5 +120,5 @@ export default function CodeSamples() {
    - ); + ) } diff --git a/resources/contribute-blog/_blog-template.md b/resources/contribute-blog/_blog-template.md index 491097e301..f218e05236 100644 --- a/resources/contribute-blog/_blog-template.md +++ b/resources/contribute-blog/_blog-template.md @@ -2,23 +2,22 @@ category: 2025 date: 2025-mm-dd seo: - title: SEO Optimized Title - description: SEO optimized description (recommend < 155 characters) that accurately reflects the page's content. + title: SEO Optimized Title + description: SEO optimized description (recommend < 155 characters) that accurately reflects the page's content. labels: - - General + - General markdown: - editPage: - hide: true + editPage: + hide: true --- -# SEO Optimized Title +# SEO Optimized Title Congrats on taking the first step toward drafting your blog post! Use this template as a starting point to organize your blog post. - Refer to [Contribute Blog](https://xrpl.org/resources/contribute-blog/) for detailed guidelines and examples. NOTE: Blog posts are currently only available in English and are not yet translated. @@ -29,21 +28,21 @@ To help you get started quickly, here’s a handy guide to the syntax for some o **Title** -Use title case for the title and headings on the blog post. +Use title case for the title and headings on the blog post. -Choose an SEO optimized title for your blog post. +Choose an SEO optimized title for your blog post. It is recommended to limit your title to under 50 characters and keep it same as the meta `seo -> title` field for consistency. **Links** -To include an internal link, use a relative path. For example, to create a link to the Contributing Documentation topic, use the following syntax: +To include an internal link, use a relative path. For example, to create a link to the Contributing Documentation topic, use the following syntax: ``` [Contribute Documentation](../resources/contribute-documentation/index.md). ``` -To include an external link, use the absolute URL instead of a relative path as shown in the following example: +To include an external link, use the absolute URL instead of a relative path as shown in the following example: ``` [Contribute Documentation](https://xrpl.org/resources/contribute-documentation). @@ -61,7 +60,6 @@ To include an ordered list, use the following syntax: 1. List item 1 2. List item 2 - ### Sub-section: Including Images In Your Blog Post To include an image, use the following syntax: @@ -70,7 +68,7 @@ To include an image, use the following syntax: ![image_description](/blog/img/my_image.png) ``` -It is recommended that you store graphics in the `/blog/img` directory. +It is recommended that you store graphics in the `/blog/img` directory. For example, `![XRPL Developer Portal](/blog/img/docs-iav3/xrpl-docs-home.png)` renders as follows. diff --git a/resources/contribute-blog/index.md b/resources/contribute-blog/index.md index 0923fd47a8..2fb49c8b4f 100644 --- a/resources/contribute-blog/index.md +++ b/resources/contribute-blog/index.md @@ -2,10 +2,11 @@ html: contribute-blog.html parent: resources.html seo: - description: Contribution guide for XRPL Blog. + description: Contribution guide for XRPL Blog. labels: - Blockchain --- + # Contribute a Blog Post Thanks for considering a contribution to the XRP Ledger Dev Blog! @@ -14,14 +15,13 @@ This page includes high-level instructions to create a new blog post. Detailed i {% admonition type="info" name="Note" %}Blog posts are currently only available in English and are not yet translated.{% /admonition %} - ## Directory Structure for Blog Posts -The source files are located in the `blog` directory of the public `xrpl-dev-portal` repository. +The source files are located in the `blog` directory of the public `xrpl-dev-portal` repository. The image files used in blog posts are located in the `blog/img` directory. -The blog posts are grouped by year, so all blog posts published in year 2025 are located in the `blog/2025` directory. +The blog posts are grouped by year, so all blog posts published in year 2025 are located in the `blog/2025` directory. ## Steps to Create a New Blog Post @@ -33,10 +33,10 @@ To create a new post, follow these steps: 3. Create a new markdown file in the `blog/{YEAR}` folder, for example https://github.com/XRPLF/xrpl-dev-portal/tree/master/blog/2025 -4. Refer to the template file [`_blog_template.md`](https://github.com/XRPLF/xrpl-dev-portal/tree/master/resources/contribute-blog/_blog-template.md) to compose your draft blog. +4. Refer to the template file [`_blog_template.md`](https://github.com/XRPLF/xrpl-dev-portal/tree/master/resources/contribute-blog/_blog-template.md) to compose your draft blog. 5. Update the `blog/sidebars.yaml` file to include the newly created file. 6. When the draft is ready for review, save and commit your updates. -7. Create a new PR to merge your changes to master. +7. Create a new PR to merge your changes to master. diff --git a/resources/contribute-code/create-custom-transactors.md b/resources/contribute-code/create-custom-transactors.md index 2ebf90b929..5ea9cbe009 100644 --- a/resources/contribute-code/create-custom-transactors.md +++ b/resources/contribute-code/create-custom-transactors.md @@ -1,10 +1,11 @@ --- seo: - description: Create custom transactors to interact with the XRP Ledger. + description: Create custom transactors to interact with the XRP Ledger. labels: - - Development - - Blockchain + - Development + - Blockchain --- + # Create Custom Transactors A _transactor_ is code that processes a transaction and modifies the XRP Ledger. Creating custom transactors enables you to add new functionality to `rippled`. This tutorial walks through coding transactors, but you'll have to go through the amendment process to add it to XRPL. See: [Contribute Code to the XRP Ledger](./index.md). @@ -22,7 +23,6 @@ This tutorial uses the existing `CreateCheck` transactor as an example. You can - [Header File](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/CreateCheck.h) - [CPP File](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/CreateCheck.cpp) - ## Header File Create a header file in this format: @@ -58,7 +58,6 @@ Initializing the transactor with `ApplyContext` gives it access to: - A view of the SLE. - A journal to log errors. - ## CPP File ### 1. Add a `preflight` function. @@ -68,16 +67,16 @@ The `preflight` function checks for errors in the transaction itself before acce - `PreflightContext` doesn't have a view of the ledger. - Use bracket notation to retrieve fields from ledgers and transactions: - ``` - auto const curExpiration = (*sle*)[~sfExpiration]; - (*sle)[sfBalance] = (*sle)[sfBalance] + reqDelta; - ``` + ``` + auto const curExpiration = (*sle*)[~sfExpiration]; + (*sle)[sfBalance] = (*sle)[sfBalance] + reqDelta; + ``` - {% admonition type="info" name="Note" %}The `~` symbol returns an optional type.{% /admonition %} + {% admonition type="info" name="Note" %}The `~` symbol returns an optional type.{% /admonition %} - You can view ledger and transaction schemas here: - - [`ledger_entries.macro`](https://github.com/XRPLF/rippled/blob/master/include/xrpl/protocol/detail/ledger_entries.macro) - - [`transactions.macro`](https://github.com/XRPLF/rippled/blob/master/include/xrpl/protocol/detail/transactions.macro) + - [`ledger_entries.macro`](https://github.com/XRPLF/rippled/blob/master/include/xrpl/protocol/detail/ledger_entries.macro) + - [`transactions.macro`](https://github.com/XRPLF/rippled/blob/master/include/xrpl/protocol/detail/transactions.macro) - `rippled` summarizes transaction results with result codes. See: [Transaction Results](../../docs/references/protocol/transactions/transaction-results/index.md) @@ -134,7 +133,6 @@ CreateCheck::preflight(PreflightContext const& ctx) } ``` - ### 2. Add a `preclaim` function. The `preclaim` function checks for errors that require viewing information on the current ledger. @@ -226,7 +224,6 @@ CreateCheck::preclaim(PreclaimContext const& ctx) } ``` - ### 3. Add a `doApply()` function. The `doApply()` function has read/write access, enabling you to modify the ledger. @@ -312,12 +309,10 @@ CreateCheck::doApply() } ``` - ## Additional Functions You can add more helper functions to your custom transactor as necessary. There are a few special functions that are relevant in special cases. - ### `calculateBaseFee` Most transactions inherit the default [reference transaction cost](../../docs/concepts/transactions/transaction-cost.md). However, if your transactor needs to define a non-standard transaction cost, you can replace the transactor's `calculateBaseFee` method with a custom one. @@ -339,7 +334,6 @@ EscrowFinish::calculateBaseFee(ReadView const& view, STTx const& tx) } ``` - ### `makeTxConsequences` `rippled` uses a [`TxConsequences`](https://github.com/XRPLF/rippled/blob/70d5c624e8cf732a362335642b2f5125ce4b43c1/src/xrpld/app/tx/applySteps.h#L58) class to describe the outcome to an account when applying a transaction. It tracks the fee, maximum possible XRP spent, and how many sequence numbers are consumed by the transaction. There are three types of consequences: @@ -356,7 +350,6 @@ The `makeTxConsequences` function enables you to create custom consequences for {% admonition type="info" name="Note" %}`TxConsequences` only affects the [transaction queue](../../docs/concepts/transactions/transaction-queue.md). If a transaction is likely to claim a fee when applied to the ledger, it will be broadcast to peers. If it's not likely to claim a fee, or that can't be determined, it won't be broadcast.{% /admonition %} - ```c++ SetAccount::makeTxConsequences(PreflightContext const& ctx) { @@ -384,7 +377,6 @@ SetAccount::makeTxConsequences(PreflightContext const& ctx) } ``` - ## Next Steps Re-compile the server with your new transactor and test it in [stand-alone mode](../../docs/infrastructure/testing-and-auditing/index.md). If you coded the transactor behind an amendment, you can [force-enable](../../docs/infrastructure/testing-and-auditing/test-amendments.md) the feature using the config file. diff --git a/resources/contribute-code/index.md b/resources/contribute-code/index.md index 01e8afa011..d64a957a6f 100644 --- a/resources/contribute-code/index.md +++ b/resources/contribute-code/index.md @@ -2,10 +2,11 @@ html: contribute-code.html parent: resources.html seo: - description: Learn how features can be coded into the XRP Ledger protocol. + description: Learn how features can be coded into the XRP Ledger protocol. labels: - Blockchain --- + # Contribute Code The software that powers the XRP Ledger is open source. Anyone can download, modify, extend, or explore it. If you want to contribute code, it's important to work with the community to define the specifications of your changes and test the code before it becomes a part of the XRP Ledger protocol and blockchain. @@ -14,15 +15,14 @@ The software that powers the XRP Ledger is open source. Anyone can download, mod The software that powers the XRP Ledger is open-source, so anyone can download, modify, extend, or explore it. Community involvement makes it better. Look for "[Source]" links in the [documentation](/docs/) to jump directly into the related source code, or browse the source code on GitHub: -| XRP Ledger Source Code | | -|:-----------------------|:----------------------------------------------------| -| Repository | | +| XRP Ledger Source Code | | +| :--------------------- | :------------------------------------------------------------------------------------- | +| Repository | | | License | [Multiple; ISC (permissive)](https://github.com/XRPLF/rippled/blob/develop/LICENSE.md) | -| Programming Language | C++ | +| Programming Language | C++ | If you're not sure where to start, Dev Null Productions provides a detailed and thorough [**Source Code Guide**](https://xrpintel.com/source) that describes the structure and functions of the core XRP Ledger server (`rippled`) implementation. - ## XRP Ledger Standards Changes to `rippled` are tracked by an XRP Ledger Standard (XLS), a document that identifies and details the specifications of a change. Before committing to development, you must start a discussion in the [XRPL-Standards repo](https://github.com/XRPLF/XRPL-Standards/discussions). This provides the community a chance to discuss and provide feedback about your change. @@ -37,7 +37,6 @@ Creating an XLS has its own process, but can be summarized as: For details, see the [XLS contributing guide](https://github.com/XRPLF/XRPL-Standards/blob/master/CONTRIBUTING.md). - ## Amendment Implementation After you've created an XLS draft, you now need to determine if your change requires an amendment. Changes that affect **transaction processing** require amendments, specifically changes that: @@ -58,38 +57,35 @@ Implementing code as an amendment requires you to add the amendment to these fil - **Feature.h**: Increment the `numFeatures` counter and declare an `extern uint256 const` variable. - ## Coding and Deployment The general development path breaks down as follows: 1. Create a fork or branch in the [`rippled` repository](https://github.com/XRPLF/rippled) to develop your code. - {% admonition type="success" name="Tip" %}If you're not sure where to start, _Dev Null Productions_ provides a detailed and thorough [`rippled` Source Code Guide](https://xrpintel.com/source).{% /admonition %} + {% admonition type="success" name="Tip" %}If you're not sure where to start, _Dev Null Productions_ provides a detailed and thorough [`rippled` Source Code Guide](https://xrpintel.com/source).{% /admonition %} 2. Run unit and integration tests. Running a server in _stand-alone mode_ is useful for testing your changes in an isolated environment, but you may want to stand up a private network for extensive changes. 3. Create a pull request on `XRPLF:develop`. - **Note for Amendments:** Update the `Supported` paramter to `yes` in **Feature.cpp**. + **Note for Amendments:** Update the `Supported` paramter to `yes` in **Feature.cpp**. 4. After the pull request is approved by XRP Ledger maintainers, your code is merged into `develop` and additional testing can be done on Devnet. - **Note for Amendments:** - - The `DefaultVote` parameter is now locked. - - If problems are found with the amendment, you must restart the process of making fixes and submitting a new PR. You can change the default vote in the new PR. + **Note for Amendments:** + - The `DefaultVote` parameter is now locked. + - If problems are found with the amendment, you must restart the process of making fixes and submitting a new PR. You can change the default vote in the new PR. 5. On a quarterly basis, a release candidate is built from approved PRs on `develop`. The package is deployed to Testnet and a few nodes on Mainnet. If no issues are found with the release candidate, the code is merged into `master` and nodes on Mainnet can upgrade to this build. 6. New amendments go through the consensus process and validators vote on whether to enable them. - ## Code Flowchart ![Code Flowchart](/docs/img/contribute-code-flowchart.png) - ## See Also - **Concepts:** - - [Amendments](../../docs/concepts/networks-and-servers/amendments.md) + - [Amendments](../../docs/concepts/networks-and-servers/amendments.md) diff --git a/resources/contribute-documentation/_tutorial-template.md b/resources/contribute-documentation/_tutorial-template.md index e09b706a24..39834495e5 100644 --- a/resources/contribute-documentation/_tutorial-template.md +++ b/resources/contribute-documentation/_tutorial-template.md @@ -1,18 +1,18 @@ --- seo: - description: TODO + description: TODO --- + # Tutorial Template -This tutorial shows how to ***TODO: add summary and contextual information. See [Tutorial Guidelines](./tutorial-guidelines.md) for explanation. Parts that you should modify or remove are in bold-italic with the letters TODO.*** - +This tutorial shows how to **_TODO: add summary and contextual information. See [Tutorial Guidelines](./tutorial-guidelines.md) for explanation. Parts that you should modify or remove are in bold-italic with the letters TODO._** ## Goals By following this tutorial, you should learn how to: -- ***TODO: goals of the tutorial.*** -- ***TODO: If the tutorial includes a graphical interface, include a screenshot of the final product here.*** +- **_TODO: goals of the tutorial._** +- **_TODO: If the tutorial includes a graphical interface, include a screenshot of the final product here._** ## Prerequisites @@ -20,18 +20,15 @@ To complete this tutorial, you should: - Have a basic understanding of the XRP Ledger. - Have an XRP Ledger client library, such as **xrpl.js**, installed. -- ***TODO: add and adjust prerequisites as required.*** - +- **_TODO: add and adjust prerequisites as required._** ## Source Code You can find the complete source code for this tutorial's examples in the {% repo-link path="_code-samples/" %}code samples section of this website's repository{% /repo-link %}. - ## Usage -***TODO: For single-file scripts that perform a linear set of steps without user input, omit the Usage section. For sample apps, provide some instructions on how to use the app.*** - +**_TODO: For single-file scripts that perform a linear set of steps without user input, omit the Usage section. For sample apps, provide some instructions on how to use the app._** ## Steps @@ -44,6 +41,7 @@ From the code sample folder, use `npm` to install dependencies: ```sh npm i ``` + {% /tab %} {% tab label="Python" %} @@ -54,12 +52,13 @@ python -m venv .venv source .venv/bin/activate pip install -r requirements.txt ``` + {% /tab %} {% /tabs %} ### 2. Connect and get account(s) -To get started, import the client library and instantiate an API client. ***TODO: mention other details in this section, such as getting wallets/test accounts.*** +To get started, import the client library and instantiate an API client. **_TODO: mention other details in this section, such as getting wallets/test accounts._** {% tabs %} {% tab label="JavaScript" %} @@ -71,10 +70,9 @@ To get started, import the client library and instantiate an API client. ***TODO {% /tab %} {% /tabs %} +### 3. **_TODO: more steps, as necessary_** -### 3. ***TODO: more steps, as necessary*** - -***TODO: a brief description of what happens in this step*** +**_TODO: a brief description of what happens in this step_** {% tabs %} {% tab label="JavaScript" %} @@ -86,12 +84,10 @@ To get started, import the client library and instantiate an API client. ***TODO {% /tab %} {% /tabs %} -***TODO: optional text following the code to describe expected outputs or details you should note for later.*** - +**_TODO: optional text following the code to describe expected outputs or details you should note for later._** ## See Also -***TODO: link related tutorials, references, and use cases.*** - +**_TODO: link related tutorials, references, and use cases._** {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/resources/contribute-documentation/creating-diagrams.md b/resources/contribute-documentation/creating-diagrams.md index 0128e1e89f..6615f263b9 100644 --- a/resources/contribute-documentation/creating-diagrams.md +++ b/resources/contribute-documentation/creating-diagrams.md @@ -2,8 +2,9 @@ html: creating-diagrams.html parent: contribute-documentation.html seo: - description: Create diagrams that interact properly with light and dark mode settings. + description: Create diagrams that interact properly with light and dark mode settings. --- + # Creating Diagrams The site contains code to automatically recolor SVG diagrams for light and dark mode. This is more than just inverting images. The recoloring keeps gradients going the same direction (so that things don't look bottom-lit) and replaces colors with equivalents that fit with the theme rather than their inverse. For example, "Ripple blue" gets recolored to XRPL green, not its inverse orange. Example: diff --git a/resources/contribute-documentation/documentation-translations.md b/resources/contribute-documentation/documentation-translations.md index 77f90a02a6..e269a324aa 100644 --- a/resources/contribute-documentation/documentation-translations.md +++ b/resources/contribute-documentation/documentation-translations.md @@ -1,19 +1,19 @@ --- seo: - description: Learn how to contribute and maintain translations of the documentation on this website. + description: Learn how to contribute and maintain translations of the documentation on this website. --- + # Translations The XRP Ledger Dev Portal (XRPL.org) is mostly written in English, so the English version is generally the most up-to-date and accurate version. However, to broaden the reach of the XRP Ledger software and community, this repository also contains translated versions of the documentation. We strongly encourage members of the community who understand other languages to contribute translations of the dev portal contents in their native languages. The languages currently provided are: -| Language | Code | Status | -|-------------------|------|--------| -| English | (N/A) | Primary language, with most work and updates being done in English first. | -| Japanese (日本語) | `ja` | Available on the site. Maintained on a best-effort basis, but sometimes not as up-to-date as the English version. | -| Spanish (Español) | `es-ES` | Incomplete, not actively maintained. Not currently served on the production site. | - +| Language | Code | Status | +| ----------------- | ------- | ----------------------------------------------------------------------------------------------------------------- | +| English | (N/A) | Primary language, with most work and updates being done in English first. | +| Japanese (日本語) | `ja` | Available on the site. Maintained on a best-effort basis, but sometimes not as up-to-date as the English version. | +| Spanish (Español) | `es-ES` | Incomplete, not actively maintained. Not currently served on the production site. | ## Translations Folder @@ -21,21 +21,18 @@ The `@l10n` folder of the repository contains the translated docs for the site, If there is not a parallel version of a file in the translation folder, the English version displays when you navigate to that page on the translated version of the site. - ## Strings File The `translations.yaml` file contains strings of text that are used in specially-stylized pages (with the `.page.tsx` extension) including dev tools and the "marketing" pages in the `about/` and `community/` sections of the site, and in some cases the `sidebars.yaml` file too. Preferably, strings should use a key such as `topnav.docs.tutorials` to uniquely indicate the text being translated. Strings can also be matched by exactly the English text being translated, but matching by the English text is not ideal because the same text may need to be translated differently based on context, or different segments of text may need to be translated non-exactly to display correctly. The original files should be updated to use translation keys as needed. - ## Moving or Renaming Files When files are moved or renamed, the translated files also need to be moved or renamed the same way. When you add redirects to the `redirects.yaml` file at the repository top, also add redirects for each translation (these are grouped later in the file). - ## Where to Start If you want to translate the XRP Ledger Dev Portal into your native language of choice, start with the {% repo-link path="docs/introduction/what-is-the-xrp-ledger.md" %}"What is the XRP Ledger?" page{% /repo-link %}, which introduces the core concepts behind the XRP Ledger. diff --git a/resources/contribute-documentation/index.md b/resources/contribute-documentation/index.md index 599fb21160..6d594d4b79 100644 --- a/resources/contribute-documentation/index.md +++ b/resources/contribute-documentation/index.md @@ -1,9 +1,10 @@ --- metadata: - indexPage: true + indexPage: true seo: - description: Contribution guides for XRP Ledger documentation. + description: Contribution guides for XRP Ledger documentation. --- + # Contribute Documentation Thanks for considering a contribution to the XRP Ledger Developer Portal! @@ -12,7 +13,6 @@ We're thrilled you're interested and your help is greatly appreciated. Contribut We are happy to review your pull requests. To make the process as smooth as possible, please read this document and follow the stated guidelines. - ## About This Site The XRPL Dev Portal provides comprehensive documentation of the the XRP Ledger, including sample code and other information for developers to start building. @@ -29,9 +29,9 @@ The official source repository for the site is at ` element (the text that displays in the tab name and the title bar of your browser, if it has one) | `seo.title`, falling back to md h1 | -| ``, ``, `` and so on in the `` of the page, which are used when "unfurling" a link (showing a preview) in various chat and social media apps like Discord, Slack, or X (Twitter) | `seo.title`, falling back to md h1 | -| Sidebar navigation | `label` from `sidebars.yaml`, then `seo.title`, and finally md h1 | -| In-page header, that is, the big text in the center column | md h1 only | - +| Location | Which title it uses | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------- | +| `` element (the text that displays in the tab name and the title bar of your browser, if it has one) | `seo.title`, falling back to md h1 | +| `<meta name="title" ...>`, `<meta name="og:title" ...>`, `<meta name="twitter:title" ...>` and so on in the `<head>` of the page, which are used when "unfurling" a link (showing a preview) in various chat and social media apps like Discord, Slack, or X (Twitter) | `seo.title`, falling back to md h1 | +| Sidebar navigation | `label` from `sidebars.yaml`, then `seo.title`, and finally md h1 | +| In-page header, that is, the big text in the center column | md h1 only | ### Next and Previous Buttons -The documentation and blog pages have "Next" and "Previous" buttons at the bottom of the page. +The documentation and blog pages have "Next" and "Previous" buttons at the bottom of the page. -If these buttons don't make sense as a proper reading order in context you can disable them by updating the frontmatter of the page. +If these buttons don't make sense as a proper reading order in context you can disable them by updating the frontmatter of the page. ```yaml --- @@ -283,10 +280,10 @@ The GitHub Flavored Markdown syntax uses the pipe character (|) to separate colu This table displays as follows: -| Key | Value | -|-----|-------| -| Name | H. G. Wells | -| Genre | Science Fiction | +| Key | Value | +| --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Name | H. G. Wells | +| Genre | Science Fiction | | Hyperbole | The greatest story ever told! No one has ever written anything more important than this Victorian era classic. Oh, how swells the heart to ponder the heady philosophies introduced therein! | The cells do not have to be the same width. The renderer aligns the columns and wraps text as needed. However, it is often helpful for editors if you align the columns of the table in the markdown source file. @@ -301,12 +298,11 @@ Optionally, use colons in the heading lines to align columns left (:--), middle | Zhanu | Neon Green | 234,000 XRP | ``` -| Model | Color | Price | -|:--------:|:------|------:| -| Protexra | Electric Blue | 50,000 XRP | -| Joatic | Hot Pink | 165,000 XRP | -| Zhanu | Neon Green | 234,000 XRP | - +| Model | Color | Price | +| :------: | :------------ | ----------: | +| Protexra | Electric Blue | 50,000 XRP | +| Joatic | Hot Pink | 165,000 XRP | +| Zhanu | Neon Green | 234,000 XRP | ## Links @@ -352,12 +348,12 @@ const prepared = await client.autofill({ renders as ```javascript - const prepared = await client.autofill({ - "TransactionType": "Payment", - "Account": standby_wallet.address, - "Amount": xrpl.xrpToDrops(sendAmount), - "Destination": standbyDestinationField.value - }) +const prepared = await client.autofill({ + TransactionType: 'Payment', + Account: standby_wallet.address, + Amount: xrpl.xrpToDrops(sendAmount), + Destination: standbyDestinationField.value, +}) ``` ## Markdoc Tags diff --git a/resources/contribute-documentation/markdoc-tags.md b/resources/contribute-documentation/markdoc-tags.md index 6f80d9bb82..dedef2c6c8 100644 --- a/resources/contribute-documentation/markdoc-tags.md +++ b/resources/contribute-documentation/markdoc-tags.md @@ -1,7 +1,8 @@ --- seo: - description: Read about all the Markdoc tags commonly used in XRPL documentation, including custom tags. + description: Read about all the Markdoc tags commonly used in XRPL documentation, including custom tags. --- + # Markdoc Tags This page serves as a reference of the [Markdoc tags](https://redocly.com/docs/realm/content/markdoc-tags/tag-library) used in XRPL documentation. These extensions of Markdown syntax allow for stylized and dynamic contents. @@ -12,17 +13,16 @@ When using self-closing tags, be sure to include the closing slash in the tag de This section describes the Redocly built-in tags that XRPL documentation uses most often and the conventions for using them in the site. - ### Admonition Show text in a colored box that stands out from regular paragraphs, sometimes referred to as a _callout_. There are four levels of admonition with escalating levels of severity. You can put any text in the `name` attribute, but there are recommended names for each category that can be automatically translated. For historical reasons, the recommended names do not align cleanly with the `type` options. The recommended names are: -| `type` | Color | Recommended `name` | Usage | -|-----------|---------------|--------------------|-------| -| `success` | Green | `Tip` | Optional, additional information, shortcuts, and cases where people might think there's a problem but there actually isn't. | -| `info` | Blue | `Note` | Quirks, background information, or other details that are not critical but may be good to know. | -| `warning` | Yellow/Orange | `Caution` | Common mistakes, misunderstandings, or limitations that may cause confusion and inconvenience. | -| `danger` | Red/Magenta | `Warning` | Mistakes or risks that may cause financial loss, security incidents, or other substantial problems. | +| `type` | Color | Recommended `name` | Usage | +| --------- | ------------- | ------------------ | --------------------------------------------------------------------------------------------------------------------------- | +| `success` | Green | `Tip` | Optional, additional information, shortcuts, and cases where people might think there's a problem but there actually isn't. | +| `info` | Blue | `Note` | Quirks, background information, or other details that are not critical but may be good to know. | +| `warning` | Yellow/Orange | `Caution` | Common mistakes, misunderstandings, or limitations that may cause confusion and inconvenience. | +| `danger` | Red/Magenta | `Warning` | Mistakes or risks that may cause financial loss, security incidents, or other substantial problems. | Example usage: @@ -45,14 +45,14 @@ It is valid to put an admonition's opening and closing tags all on the same line Include an image in SVG format inline in the page's markup. This allows the diagram's color scheme to adapt to the user's current (light/dark) theme. Typically, you should use the tag inside a link that opens the SVG file as a stand-alone image so the user can view it and zoom in or out as needed. For tips on making diagrams compatible with this feature, see [Creating Diagrams](./creating-diagrams.md). This tag is self-closing. Example usage: + <pre><code> [{% inline-svg file="/docs/img/anatomy-of-a-ledger-simplified.svg" /%}](/docs/img/anatomy-of-a-ledger-simplified.svg "Figure 1: Anatomy of a ledger version, which includes transactions, state, and metadata") </code></pre> Demonstration: -[{% inline-svg file="/docs/img/anatomy-of-a-ledger-simplified.svg" /%}](/docs/img/anatomy-of-a-ledger-simplified.svg "Figure 1: Anatomy of a ledger version, which includes transactions, state, and metadata") - +[{% inline-svg file="/docs/img/anatomy-of-a-ledger-simplified.svg" /%}](/docs/img/anatomy-of-a-ledger-simplified.svg 'Figure 1: Anatomy of a ledger version, which includes transactions, state, and metadata') ### Partial and Raw Partial @@ -76,7 +76,6 @@ Example usage: {% raw-partial file="/docs/_snippets/tx-fields-intro.md" /%} </code></pre> - ### Variables Include the contents of a predefined variable, inline in the document. Unlike partials, these are typically only a few words at most. Common use cases include `{% $frontmatter.seo.title %}` for referring to the title of the current page (used in some templates and snippets), and environment variables for the current reserve amounts on the XRP Ledger Mainnet. @@ -93,14 +92,10 @@ Each NFToken page requires a reserve of {% $env.PUBLIC_OWNER_RESERVE %}. {% admonition type="warning" name="Caution" %}Variable references are like self-closing tags, but they don't use a slash like self-closing tags should (`/%}`).{%/admonition%} - - - ## Custom Tags Markdown supports creating custom tags with user-defined functionality. This repository defines several such tags for convenience in editing, as follows. - ### Amendment Disclaimer Show a disclaimer that functionality is based on an amendment to the XRP Ledger protocol, which updates live with the status of the amendment on Mainnet. The `name` parameter is required and is case-sensitive. This tag is self-closing. @@ -115,12 +110,11 @@ Demonstration: {% amendment-disclaimer name="Credentials" /%} -When the amendment is not enabled on Mainnet, the component adds a paragraph that says, "Requires the (name) amendment," with a badge showing the amendment's voting percentage. After the amendment is enabled, the paragraph changes to say, "Added by the (name) amendment," with a badge showing the date the amendment became enabled. +When the amendment is not enabled on Mainnet, the component adds a paragraph that says, "Requires the (name) amendment," with a badge showing the amendment's voting percentage. After the amendment is enabled, the paragraph changes to say, "Added by the (name) amendment," with a badge showing the date the amendment became enabled. The `compact=true` parameter (note, it is an error to put true in quotation marks here) displays only the name of the amendment and the status badge. -The `mode="updated"` parameter (case-sensitive) changes the paragraph so that it says, "The (name) amendment updates this," before the amendment is enabled, and "Updated by the (name) amendment," afterward, with the same badges. - +The `mode="updated"` parameter (case-sensitive) changes the paragraph so that it says, "The (name) amendment updates this," before the amendment is enabled, and "Updated by the (name) amendment," afterward, with the same badges. ### Badge @@ -160,7 +154,6 @@ Demonstration: {% xrpl-card title="Python" body="Using xrpl.py, a pure Python library." href="/docs/tutorials/python/" image="/img/logos/python.svg" imageAlt="Python logo" /%} {% /card-grid %} - ### Child Pages Show a bulleted list of pages that are children of the page using this tag. The descriptions of the pages use the frontmatter's `seo.description` field. This tag is self-closing and takes no parameters. @@ -178,10 +171,9 @@ metadata: indexPage: true ``` - ### Not Enabled -Display a yellow flask icon with a tooltip about how the feature is not available on the production XRP Ledger. Usually, you should use an [amendment-disclaimer](#amendment-disclaimer) instead, but there may be edge cases where you want to include this icon. This tag is self-closing and takes no parameters. +Display a yellow flask icon with a tooltip about how the feature is not available on the production XRP Ledger. Usually, you should use an [amendment-disclaimer](#amendment-disclaimer) instead, but there may be edge cases where you want to include this icon. This tag is self-closing and takes no parameters. Example usage: @@ -193,7 +185,6 @@ Demonstration: {% not-enabled /%} - ### Repo Link Link to a particular file in the source code repository for this site, usually a code sample. If you are working from a fork or branch of the site, all such links can be updated at once with a site configuration change. The contents are the text of the link. @@ -204,12 +195,10 @@ Example usage: {% repo-link path="_code-samples/build-a-desktop-wallet/js/1_ledger-index.js" %}`1-ledger-index/index.js`{% /repo-link %} </code></pre> - -Demonstration: +Demonstration: {% repo-link path="_code-samples/build-a-desktop-wallet/js/1_ledger-index.js" %}`1-ledger-index/index.js`{% /repo-link %} - ### Try It Link to the WebSocket tool as a button. The text of the button is normally "Try it!" in English, and can be translated by setting the `component.tryit` key in the localization's `translations.yaml` file. This tag is self-closing. @@ -226,22 +215,21 @@ Demonstration: This tag takes the following parameters: -| Parameter | Required? | Description | -|---|---|---| -| `method` | Yes | The ID of the anchor to use on the WebSocket Tool page. For most WebSocket API methods, this is the API method exactly, but it could contain more. For example, different `ledger_entry` variations use a suffix like `ledger_entry-nft-page`. If you are documenting a new method, you must also add that method to the WebSocket tool by editing `/resources/dev-tools/components/websocket-api/data/command-list.json`. | -| `server` | No | A specific server to use for the request. You may want to specify the server if a method is specific to Clio or `rippled` servers, or if the example uses data or amendments that are only on a specific test network. | +| Parameter | Required? | Description | +| --------- | --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `method` | Yes | The ID of the anchor to use on the WebSocket Tool page. For most WebSocket API methods, this is the API method exactly, but it could contain more. For example, different `ledger_entry` variations use a suffix like `ledger_entry-nft-page`. If you are documenting a new method, you must also add that method to the WebSocket tool by editing `/resources/dev-tools/components/websocket-api/data/command-list.json`. | +| `server` | No | A specific server to use for the request. You may want to specify the server if a method is specific to Clio or `rippled` servers, or if the example uses data or amendments that are only on a specific test network. | The values you can provide to the `server` parameter are as follows: -| `server` value | Server to use | -|---|---| -| (Omitted) | The WebSocket tool's default server (currently `s1.ripple.com`) | -| `s1` | Ripple's `s1.ripple.com` Mainnet public cluster, typically served by Clio servers. | -| `s2` | Ripple's `s2.ripple.com` Mainnet full-history public cluster, typically served by Clio servers. | -| `xrplcluster` | The `xrplcluster.com` cluster of public servers, typically served by `rippled` servers with a lightweight proxy in front. | -| `devnet` | The `s.altnet.rippletest.net` cluster of Testnet servers. | -| `testnet` | The `s.devnet.rippletest.net` cluster of Devnet servers. | - +| `server` value | Server to use | +| -------------- | ------------------------------------------------------------------------------------------------------------------------- | +| (Omitted) | The WebSocket tool's default server (currently `s1.ripple.com`) | +| `s1` | Ripple's `s1.ripple.com` Mainnet public cluster, typically served by Clio servers. | +| `s2` | Ripple's `s2.ripple.com` Mainnet full-history public cluster, typically served by Clio servers. | +| `xrplcluster` | The `xrplcluster.com` cluster of public servers, typically served by `rippled` servers with a lightweight proxy in front. | +| `devnet` | The `s.altnet.rippletest.net` cluster of Testnet servers. | +| `testnet` | The `s.devnet.rippletest.net` cluster of Devnet servers. | ### Tx Example @@ -259,7 +247,7 @@ Demonstration: This tag takes the following parameters: -| Parameter | Required? | Description | -|---|---|---| -| `txid` | Yes | The unique hash of the transaction to look up. | -| `server` | No | A specific server to use for the request. Possible values are the same as `{% try-it %}` as defined above. For example, you may need to specify `devnet` to show a transaction added by an amendment that isn't enabled on Mainnet. | +| Parameter | Required? | Description | +| --------- | --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `txid` | Yes | The unique hash of the transaction to look up. | +| `server` | No | A specific server to use for the request. Possible values are the same as `{% try-it %}` as defined above. For example, you may need to specify `devnet` to show a transaction added by an amendment that isn't enabled on Mainnet. | diff --git a/resources/contribute-documentation/tutorial-guidelines.md b/resources/contribute-documentation/tutorial-guidelines.md index 5ea436288b..2a50d8e9a4 100644 --- a/resources/contribute-documentation/tutorial-guidelines.md +++ b/resources/contribute-documentation/tutorial-guidelines.md @@ -1,7 +1,8 @@ --- seo: - description: Learn how this site's tutorials are structured and guidelines for contributing quality tutorials. + description: Learn how this site's tutorials are structured and guidelines for contributing quality tutorials. --- + # Tutorial Guidelines We are creating a repository of tutorials and functional code samples that show how various features of the XRP Ledger work. Developers and large language models (LLMs) can use these tutorials and their associated code samples to learn about business solutions, and copy or adapt the scripts for use in their own applications. @@ -33,7 +34,7 @@ The prerequisites help readers recognize when they are in the right place and pr - Knowledge and learning background, especially tutorials that this one builds on top of. - Dev environment setup, especially basic depedencies such as your xrpl client library. - - Do not include dependencies that are specific to this tutorial here, because people tend to skim/gloss over this section. For dependencies specific to this tutorial, include them in the steps later. + - Do not include dependencies that are specific to this tutorial here, because people tend to skim/gloss over this section. For dependencies specific to this tutorial, include them in the steps later. - Specific on-chain structures that need to be in place in advance. For example, to trade against an AMM, the AMM must exist in the ledger. - Amendments that need to be enabled for this tutorial. Use an amendment disclaimer component to show the Mainnet status of the amendment. @@ -82,7 +83,7 @@ Use `{% code-snippet ... %}` tags instead of copy-paste to display the code samp If a script depends on certain ledger data already existing (for example, you are supposed to create it with a different script), the script should have an explicit step to check for the existence of that data. You should also mention the requirement in the [**Prerequisites**](#prerequisites) section. -Each step should directly continue the code sample from the previous step without skipping anything, to the extent possible. +Each step should directly continue the code sample from the previous step without skipping anything, to the extent possible. Optionally, you can provide additional text after the code snippet, such as an explanation of the expected output from this step, or details that you should note down for later. @@ -92,7 +93,6 @@ If the code snippet calls an API method, link to the relevant reference document At the end of the tutorial, provide links to additional resources that would be a sensible next step in the learning journey. This could be more tutorials, use cases, or other pages. It's also a good idea to add links here to reference documentation for any API methods, transaction types, and ledger entries used in the tutorial—even though those links should be redundant with links scattered throughout the text of the tutorial. - ## Sample Code Guidelines Sample code is well commented scripts, snippets, or applications that illustrate common usage patterns and best practices. Advanced users can typically scan the example and use it immediately without a formal tutorial. Not every piece of sample code needs to be associated with a tutorial, but most tutorials will have a piece of sample code that serves as the basis for that tutorial. @@ -154,13 +154,13 @@ If you do have good reason to provide commandline, WebSocket, or JSON-RPC exampl ### Dependencies -Dependencies can be a source of maintenance burden, because you need to stay up-to-date with security fixes and breaking changes to the dependencies. On the other hand, reimplementing common utilities in every code sample is its own maintenance burden, and it's even worse to "roll your own" security-sensitive code. Some users may be working on codebases that are locked into competing/incompatible dependencies, which can make it harder to adapt your code to their situation; the more dependencies you have, the more likely this is to occur. +Dependencies can be a source of maintenance burden, because you need to stay up-to-date with security fixes and breaking changes to the dependencies. On the other hand, reimplementing common utilities in every code sample is its own maintenance burden, and it's even worse to "roll your own" security-sensitive code. Some users may be working on codebases that are locked into competing/incompatible dependencies, which can make it harder to adapt your code to their situation; the more dependencies you have, the more likely this is to occur. Some guidelines: 1. Prefer standard library functions to third-party libraries, even if they're not quite as convenient to use. - - Use third-party libraries when they're _significantly_ more convenient than the standard library. For example, [even Python's official documentation recommends using the Requests lib instead of `urllib.request`](https://docs.python.org/3/library/urllib.request.html#module-urllib.request). - - When updating old code samples, look for cases where dependencies can be eliminated because the standard library has grown to encompass functionality that previously needed a library. + - Use third-party libraries when they're _significantly_ more convenient than the standard library. For example, [even Python's official documentation recommends using the Requests lib instead of `urllib.request`](https://docs.python.org/3/library/urllib.request.html#module-urllib.request). + - When updating old code samples, look for cases where dependencies can be eliminated because the standard library has grown to encompass functionality that previously needed a library. 2. Implement your own functions when they're small and not security-sensitive; use libraries for complex or security-sensitive functions. 3. Prefer widely-used, actively maintained libraries. @@ -169,9 +169,9 @@ Some guidelines: The following guidelines apply for XRP Ledger code samples regardless of language: - Don't hardcode secret keys, even example keys that don't hold real money. Instead, do any of the following: - - Fund a new account using the faucet. - - Prompt the user to paste the seed of the account they want to use. - - Read the secret key from an environment variable. + - Fund a new account using the faucet. + - Prompt the user to paste the seed of the account they want to use. + - Read the secret key from an environment variable. - Use `client` as the name for the API client instance. - Print output to the console, especially before doing any network operations such as calling API methods or submitting transactions. - Use the client library's "submit and wait" function when sending transactions. Autofill, sign, and submit the transaction all in one call. @@ -191,9 +191,9 @@ JavaScript code samples should: - Use `await` instead of `.done(...)` or `.then(...)` - Follow [**JavaScript Standard Style**](https://standardjs.com). - Be compatible with Node.js versions that are currently in maintenance (security) support. - - Preferably, be compatible with most widely-used web browsers too. + - Preferably, be compatible with most widely-used web browsers too. - When writing JSON objects to the console, use `JSON.stringify(example_object, null, 2)` so that Node.js doesn't skip the interesting inner parts of the object. -{% /tab %} + {% /tab %} {% tab label="Python" %} Python code samples should: @@ -203,6 +203,6 @@ Python code samples should: - Use the `JsonRpcClient` unless asynchronous functionality is needed. - Follow [**Black Style**](https://black.readthedocs.io/en/stable/). - Be compatible with Python versions that are currently in maintenance (security) support. -{% /tab %} + {% /tab %} {% /tabs %} diff --git a/resources/dev-tools/components/AlertTemplate.tsx b/resources/dev-tools/components/AlertTemplate.tsx index b500b0444a..dec67872d9 100644 --- a/resources/dev-tools/components/AlertTemplate.tsx +++ b/resources/dev-tools/components/AlertTemplate.tsx @@ -1,22 +1,22 @@ import clsx from 'clsx' import * as React from 'react' import { useThemeHooks } from '@redocly/theme/core/hooks' - + const alertStyle = { - position: "relative", - margin: "0px", - zIndex: "9999", + position: 'relative', + margin: '0px', + zIndex: '9999', } - + function typeToClass(type: string): string { - if(type === "error") { - return "alert-danger" - } else if(type === "success") { - return "alert-success" - } else if(type === "info") { - return "alert-info" + if (type === 'error') { + return 'alert-danger' + } else if (type === 'success') { + return 'alert-success' + } else if (type === 'info') { + return 'alert-info' } else { - return "" + return '' } } @@ -28,15 +28,15 @@ interface AlertTemplateProps { style: any close: any // Callback to close the alert early } - -export default function AlertTemplate ({ message, options, style, close }: AlertTemplateProps): React.JSX.Element { + +export default function AlertTemplate({ message, options, style, close }: AlertTemplateProps): React.JSX.Element { const { useTranslate } = useThemeHooks() const { translate } = useTranslate() - return( - <div className={clsx("bootstrap-growl alert alert-dismissible", typeToClass(options.type))} style={{ ...alertStyle, ...style }}> + return ( + <div className={clsx('bootstrap-growl alert alert-dismissible', typeToClass(options.type))} style={{ ...alertStyle, ...style }}> <button className="close" data-dismiss="alert" type="button" onClick={close}> <span aria-hidden="true">×</span> - <span className="sr-only">{translate("Close")}</span> + <span className="sr-only">{translate('Close')}</span> </button> {message} </div> diff --git a/resources/dev-tools/components/DestinationAddressInput.tsx b/resources/dev-tools/components/DestinationAddressInput.tsx index 54617c879e..e2f7515132 100644 --- a/resources/dev-tools/components/DestinationAddressInput.tsx +++ b/resources/dev-tools/components/DestinationAddressInput.tsx @@ -1,57 +1,61 @@ -import * as React from 'react'; -import { useState } from 'react'; -import { useThemeHooks } from '@redocly/theme/core/hooks'; +import * as React from 'react' +import { useState } from 'react' +import { useThemeHooks } from '@redocly/theme/core/hooks' import { clsx } from 'clsx' import { isValidAddress } from 'xrpl' function onDestinationAddressChange( - event: React.ChangeEvent<HTMLInputElement>, - setDestinationAddress: React.Dispatch<React.SetStateAction<string>>, - setIsValidDestinationAddress: React.Dispatch<React.SetStateAction<boolean>> + event: React.ChangeEvent<HTMLInputElement>, + setDestinationAddress: React.Dispatch<React.SetStateAction<string>>, + setIsValidDestinationAddress: React.Dispatch<React.SetStateAction<boolean>>, ): void { - const newAddress = event.target.value - setDestinationAddress(newAddress) - setIsValidDestinationAddress(isValidAddress(newAddress)) + const newAddress = event.target.value + setDestinationAddress(newAddress) + setIsValidDestinationAddress(isValidAddress(newAddress)) } export interface DestinationAddressInputProps { - defaultDestinationAddress: string, - destinationAddress: string, - setDestinationAddress: React.Dispatch<React.SetStateAction<string>>, + defaultDestinationAddress: string + destinationAddress: string + setDestinationAddress: React.Dispatch<React.SetStateAction<string>> } -export function DestinationAddressInput( - { - defaultDestinationAddress, - destinationAddress, - setDestinationAddress, - } : DestinationAddressInputProps -): React.JSX.Element { - const { useTranslate } = useThemeHooks(); - const { translate } = useTranslate() - const [ isValidDestinationAddress, setIsValidDestinationAddress ] = useState(true) - - return ( +export function DestinationAddressInput({ + defaultDestinationAddress, + destinationAddress, + setDestinationAddress, +}: DestinationAddressInputProps): React.JSX.Element { + const { useTranslate } = useThemeHooks() + const { translate } = useTranslate() + const [isValidDestinationAddress, setIsValidDestinationAddress] = useState(true) + + return ( <div> - <div className="form-group"> - <label htmlFor="destination_address"> - {translate("Destination Address")} - </label> - <input type="text" className={clsx("form-control", - // Defaults to not having "is-valid" / "is-invalid" classes - (destinationAddress !== defaultDestinationAddress) && (isValidDestinationAddress ? "is-valid" : "is-invalid"))} - id="destination_address" - onChange={(event) => onDestinationAddressChange(event, setDestinationAddress, setIsValidDestinationAddress)} - aria-describedby="destination_address_help" - defaultValue={destinationAddress} /> - <small id="destination_address_help" className="form-text text-muted"> - {translate("Send transactions to this XRP Testnet address")} - </small> - </div> - <p className={clsx("devportal-callout caution", !(isValidDestinationAddress && destinationAddress[0] === 'X') && "collapse")} - id="x-address-warning"> - <strong>{translate("Caution:")}</strong> - {translate(" This X-address is intended for use on Mainnet. Testnet X-addresses have a \"T\" prefix instead.")} - </p> - </div>) + <div className="form-group"> + <label htmlFor="destination_address">{translate('Destination Address')}</label> + <input + type="text" + className={clsx( + 'form-control', + // Defaults to not having "is-valid" / "is-invalid" classes + destinationAddress !== defaultDestinationAddress && (isValidDestinationAddress ? 'is-valid' : 'is-invalid'), + )} + id="destination_address" + onChange={(event) => onDestinationAddressChange(event, setDestinationAddress, setIsValidDestinationAddress)} + aria-describedby="destination_address_help" + defaultValue={destinationAddress} + /> + <small id="destination_address_help" className="form-text text-muted"> + {translate('Send transactions to this XRP Testnet address')} + </small> + </div> + <p + className={clsx('devportal-callout caution', !(isValidDestinationAddress && destinationAddress[0] === 'X') && 'collapse')} + id="x-address-warning" + > + <strong>{translate('Caution:')}</strong> + {translate(' This X-address is intended for use on Mainnet. Testnet X-addresses have a "T" prefix instead.')} + </p> + </div> + ) } diff --git a/resources/dev-tools/components/InitButton.tsx b/resources/dev-tools/components/InitButton.tsx index 5025cb8903..64b87c8e3d 100644 --- a/resources/dev-tools/components/InitButton.tsx +++ b/resources/dev-tools/components/InitButton.tsx @@ -1,200 +1,206 @@ -import * as React from 'react'; -import { useThemeHooks } from '@redocly/theme/core/hooks'; +import * as React from 'react' +import { useThemeHooks } from '@redocly/theme/core/hooks' import { clsx } from 'clsx' import { Client, type Wallet, type TxResponse, dropsToXrp } from 'xrpl' import { errorNotif, TESTNET_URL } from '../utils' - export interface InitializationProps { - existingClient: Client | undefined, + existingClient: Client | undefined + alert // From useAlert() + setClient: React.Dispatch<React.SetStateAction<Client | undefined>> + setBalance: React.Dispatch<React.SetStateAction<number>> + setSendingWallet: React.Dispatch<React.SetStateAction<Wallet | undefined>> + setIsInitEnabled: React.Dispatch<React.SetStateAction<boolean>> + setConnectionReady: React.Dispatch<React.SetStateAction<boolean>> + partialPaymentParams: { + setPpIssuerWallet: React.Dispatch<React.SetStateAction<Wallet | undefined>> + setPpWidthPercent: React.Dispatch<React.SetStateAction<number>> + ppCurrencyCode: string + } +} + +async function setUpForPartialPayments( + client: Client, + sendingWallet: Wallet, + setPpIssuerWallet: React.Dispatch<React.SetStateAction<Wallet | undefined>>, + setPpWidthPercent: React.Dispatch<React.SetStateAction<number>>, + ppCurrencyCode: string, +) { + console.debug('Starting partial payment setup...') + + // Causing loader to appear because no longer 0% + setPpWidthPercent(1) + let ppIssuerWallet + + // 1. Get a funded address to use as issuer + try { + ppIssuerWallet = (await client.fundWallet()).wallet + setPpIssuerWallet(ppIssuerWallet) + } catch (error) { + console.log('Error getting issuer address for partial payments:', error) + return + } + + setPpWidthPercent(20) + + // 2. Set Default Ripple on issuer + let resp: TxResponse = await client.submitAndWait( + { + TransactionType: 'AccountSet', + Account: ppIssuerWallet.address, + SetFlag: 8, // asfDefaultRipple + }, + { wallet: ppIssuerWallet }, + ) + if (resp === undefined) { + console.log("Couldn't set Default Ripple for partial payment issuer") + return + } + setPpWidthPercent(40) + + // 3. Make a trust line from sending address to issuer + resp = await client.submitAndWait( + { + TransactionType: 'TrustSet', + Account: sendingWallet.address, + LimitAmount: { + currency: ppCurrencyCode, + value: '1000000000', // arbitrarily, 1 billion fake currency + issuer: ppIssuerWallet.address, + }, + }, + { wallet: sendingWallet }, + ) + if (resp === undefined) { + console.log('Error making trust line to partial payment issuer') + return + } + setPpWidthPercent(60) + + // 4. Issue fake currency to main sending address + resp = await client.submitAndWait( + { + TransactionType: 'Payment', + Account: ppIssuerWallet.address, + Destination: sendingWallet.address, + Amount: { + currency: ppCurrencyCode, + value: '1000000000', + issuer: ppIssuerWallet.address, + }, + }, + { wallet: ppIssuerWallet }, + ) + if (resp === undefined) { + console.log('Error sending fake currency from partial payment issuer') + return + } + setPpWidthPercent(80) + + // 5. Place offer to buy issued currency for XRP + // When sending the partial payment, the sender consumes their own offer (!) + // so they end up paying themselves issued currency then delivering XRP. + resp = await client.submitAndWait( + { + TransactionType: 'OfferCreate', + Account: sendingWallet.address, + TakerGets: '1000000000000000', // 1 billion XRP + TakerPays: { + currency: ppCurrencyCode, + value: '1000000000', + issuer: ppIssuerWallet.address, + }, + }, + { wallet: sendingWallet }, + ) + if (resp === undefined) { + console.log('Error placing order to enable partial payments') + return + } + setPpWidthPercent(100) + + // Done. Enable "Send Partial Payment" button + console.log('Done getting ready to send partial payments.') +} + +async function onInitClick(props: InitializationProps): Promise<void> { + const { + existingClient, alert, // From useAlert() - setClient: React.Dispatch<React.SetStateAction<Client | undefined>>, - setBalance: React.Dispatch<React.SetStateAction<number>>, - setSendingWallet: React.Dispatch<React.SetStateAction<Wallet | undefined>>, - setIsInitEnabled: React.Dispatch<React.SetStateAction<boolean>>, - setConnectionReady: React.Dispatch<React.SetStateAction<boolean>>, - partialPaymentParams: { - setPpIssuerWallet: React.Dispatch<React.SetStateAction<Wallet | undefined>>, - setPpWidthPercent: React.Dispatch<React.SetStateAction<number>>, - ppCurrencyCode: string - } + setClient, + setBalance, + setSendingWallet, + setIsInitEnabled, + setConnectionReady, + partialPaymentParams, + } = { ...props } + + if (existingClient) { + console.log('Already initializing!') + return + } + + console.log('Connecting to Testnet WebSocket...') + const client = new Client(TESTNET_URL) + client.on('connected', () => { + setConnectionReady(true) + }) + + client.on('disconnected', (code) => { + setConnectionReady(false) + }) + setClient(client) + await client.connect() + + console.debug('Getting a sending address from the faucet...') + try { + const fundResponse = await client.fundWallet() + const sendingWallet = fundResponse.wallet + setSendingWallet(sendingWallet) + // Using Number(...) can result in loss of precision since Number is smaller than the precision of XRP, + // but this shouldn't affect the learning tool as that much XRP is not given to any test account. + setBalance(Number(dropsToXrp(fundResponse.balance))) + setIsInitEnabled(false) + await setUpForPartialPayments( + client, + sendingWallet, + partialPaymentParams.setPpIssuerWallet, + partialPaymentParams.setPpWidthPercent, + partialPaymentParams.ppCurrencyCode, + ) + } catch (error) { + console.error(error) + errorNotif(alert, 'There was an error with the XRP Ledger Testnet Faucet. Reload this page to try again.') + return + } } -async function setUpForPartialPayments - ( - client: Client, - sendingWallet: Wallet, - setPpIssuerWallet: React.Dispatch<React.SetStateAction<Wallet | undefined>>, - setPpWidthPercent: React.Dispatch<React.SetStateAction<number>>, - ppCurrencyCode: string, - ) { - console.debug("Starting partial payment setup...") - - // Causing loader to appear because no longer 0% - setPpWidthPercent(1) - let ppIssuerWallet; +export function InitButton({ isInitEnabled, toInit }: { isInitEnabled: boolean; toInit: InitializationProps }): React.JSX.Element { + const { useTranslate } = useThemeHooks() + const { translate } = useTranslate() - // 1. Get a funded address to use as issuer - try { - ppIssuerWallet = (await client.fundWallet()).wallet - setPpIssuerWallet(ppIssuerWallet) - } catch(error) { - console.log("Error getting issuer address for partial payments:", error) - return - } + return ( + <div className="form-group"> + <button + className={clsx('btn btn-primary form-control', isInitEnabled ? '' : 'disabled')} + type="button" + id="init_button" + onClick={() => { + onInitClick(toInit) + }} + disabled={!isInitEnabled} + title={isInitEnabled ? '' : 'done'} + > + {translate('Initialize')} + </button> + {!isInitEnabled && ( + <div> +  <i className="fa fa-check-circle"></i> + </div> + )} - setPpWidthPercent(20) - - // 2. Set Default Ripple on issuer - let resp: TxResponse = await client.submitAndWait({ - TransactionType: "AccountSet", - Account: ppIssuerWallet.address, - SetFlag: 8 // asfDefaultRipple - }, { wallet: ppIssuerWallet }) - if (resp === undefined) { - console.log("Couldn't set Default Ripple for partial payment issuer") - return - } - setPpWidthPercent(40) - - // 3. Make a trust line from sending address to issuer - resp = await client.submitAndWait({ - TransactionType: "TrustSet", - Account: sendingWallet.address, - LimitAmount: { - currency: ppCurrencyCode, - value: "1000000000", // arbitrarily, 1 billion fake currency - issuer: ppIssuerWallet.address - } - }, { wallet: sendingWallet }) - if (resp === undefined) { - console.log("Error making trust line to partial payment issuer") - return - } - setPpWidthPercent(60) - - // 4. Issue fake currency to main sending address - resp = await client.submitAndWait({ - TransactionType: "Payment", - Account: ppIssuerWallet.address, - Destination: sendingWallet.address, - Amount: { - currency: ppCurrencyCode, - value: "1000000000", - issuer: ppIssuerWallet.address - } - }, { wallet: ppIssuerWallet }) - if (resp === undefined) { - console.log("Error sending fake currency from partial payment issuer") - return - } - setPpWidthPercent(80) - - // 5. Place offer to buy issued currency for XRP - // When sending the partial payment, the sender consumes their own offer (!) - // so they end up paying themselves issued currency then delivering XRP. - resp = await client.submitAndWait({ - TransactionType: "OfferCreate", - Account: sendingWallet.address, - TakerGets: "1000000000000000", // 1 billion XRP - TakerPays: { - currency: ppCurrencyCode, - value: "1000000000", - issuer: ppIssuerWallet.address - } - }, { wallet: sendingWallet }) - if (resp === undefined) { - console.log("Error placing order to enable partial payments") - return - } - setPpWidthPercent(100) - - // Done. Enable "Send Partial Payment" button - console.log("Done getting ready to send partial payments.") -} - -async function onInitClick( - props: InitializationProps - ): Promise<void> { - - const { - existingClient, - alert, // From useAlert() - setClient, - setBalance, - setSendingWallet, - setIsInitEnabled, - setConnectionReady, - partialPaymentParams - } = {...props} - - if(existingClient) { - console.log("Already initializing!") - return - } - - console.log("Connecting to Testnet WebSocket...") - const client = new Client(TESTNET_URL) - client.on('connected', () => { - setConnectionReady(true) - }) - - client.on('disconnected', (code) => { - setConnectionReady(false) - }) - setClient(client) - await client.connect() - - console.debug("Getting a sending address from the faucet...") - try { - const fundResponse = await client.fundWallet() - const sendingWallet = fundResponse.wallet - setSendingWallet(sendingWallet) - // Using Number(...) can result in loss of precision since Number is smaller than the precision of XRP, - // but this shouldn't affect the learning tool as that much XRP is not given to any test account. - setBalance(Number(dropsToXrp(fundResponse.balance))) - setIsInitEnabled(false) - await setUpForPartialPayments( - client, - sendingWallet, - partialPaymentParams.setPpIssuerWallet, - partialPaymentParams.setPpWidthPercent, - partialPaymentParams.ppCurrencyCode, - ) - } catch(error) { - console.error(error) - errorNotif(alert, "There was an error with the XRP Ledger Testnet Faucet. Reload this page to try again.") - return - } -} - -export function InitButton({ - isInitEnabled, - toInit -}: { - isInitEnabled: boolean, - toInit: InitializationProps -}): React.JSX.Element { - const { useTranslate } = useThemeHooks(); - const { translate } = useTranslate() - - return (<div className="form-group"> - <button className={clsx("btn btn-primary form-control", isInitEnabled ? "" : "disabled")} - type="button" id="init_button" - onClick={() => { - onInitClick( - toInit, - ) - }} - disabled={!isInitEnabled} - title={isInitEnabled ? "" : "done"}> - {translate("Initialize")} - </button> - {!isInitEnabled && (<div> <i className="fa fa-check-circle"></i></div>)} - - <small className="form-text text-muted"> - {translate("Set up the necessary Testnet XRP addresses to send test payments.")} - </small> - </div>) + <small className="form-text text-muted">{translate('Set up the necessary Testnet XRP addresses to send test payments.')}</small> + </div> + ) } diff --git a/resources/dev-tools/components/LogEntry.tsx b/resources/dev-tools/components/LogEntry.tsx index 61c22eba15..665aa31a50 100644 --- a/resources/dev-tools/components/LogEntry.tsx +++ b/resources/dev-tools/components/LogEntry.tsx @@ -1,23 +1,23 @@ -import * as React from 'react'; -import { useThemeHooks } from '@redocly/theme/core/hooks'; +import * as React from 'react' +import { useThemeHooks } from '@redocly/theme/core/hooks' import { clsx } from 'clsx' -export const CLASS_GOOD = "badge badge-success" -export const CLASS_BAD = "badge badge-danger" +export const CLASS_GOOD = 'badge badge-success' +export const CLASS_BAD = 'badge badge-danger' export interface LogEntryStatus { - icon?: { - label: string, - type: "SUCCESS" | "ERROR" - check?: boolean - } - followUpMessage?: JSX.Element + icon?: { + label: string + type: 'SUCCESS' | 'ERROR' + check?: boolean + } + followUpMessage?: JSX.Element } export interface LogEntryItem { - message: string - id: string - status?: LogEntryStatus + message: string + id: string + status?: LogEntryStatus } /** @@ -26,13 +26,10 @@ export interface LogEntryItem { * @param setLogEntries - A setter to modify a list of LogEntries * @param entry - Data for a new LogEntry */ -export function addNewLogEntry( - setLogEntries: React.Dispatch<React.SetStateAction<LogEntryItem[]>>, - entry: LogEntryItem) -{ - setLogEntries((prev) => { - return [...prev, entry] - }) +export function addNewLogEntry(setLogEntries: React.Dispatch<React.SetStateAction<LogEntryItem[]>>, entry: LogEntryItem) { + setLogEntries((prev) => { + return [...prev, entry] + }) } /** @@ -44,35 +41,32 @@ export function addNewLogEntry( * @param setLogEntries - A setter to modify a list of LogEntries. * @param entryToUpdate - Updated data for an existing LogEntry. */ -export function updateLogEntry( - setLogEntries: React.Dispatch<React.SetStateAction<LogEntryItem[]>>, - entryToUpdate: LogEntryItem) { - setLogEntries((prev) => { - const index = prev.findIndex((entry)=> entryToUpdate.id === entry.id) - prev.splice(index, 1, entryToUpdate) - return [...prev] - }) +export function updateLogEntry(setLogEntries: React.Dispatch<React.SetStateAction<LogEntryItem[]>>, entryToUpdate: LogEntryItem) { + setLogEntries((prev) => { + const index = prev.findIndex((entry) => entryToUpdate.id === entry.id) + prev.splice(index, 1, entryToUpdate) + return [...prev] + }) } -export function LogEntry({ - message, - id, - status -}: LogEntryItem) -{ - const { useTranslate } = useThemeHooks(); - const {translate} = useTranslate() - let icon = undefined - if(!!(status?.icon)) { - icon = <span className={ - clsx(status.icon?.type === "SUCCESS" && CLASS_GOOD, - status.icon?.type === "ERROR" && CLASS_BAD)}> - {status.icon?.label} - {status.icon?.check && <i className="fa fa-check-circle"/>} - </span> - } - - return ( - <li id={id}>{translate(`${message} `)}{icon}{status?.followUpMessage}</li> +export function LogEntry({ message, id, status }: LogEntryItem) { + const { useTranslate } = useThemeHooks() + const { translate } = useTranslate() + let icon = undefined + if (!!status?.icon) { + icon = ( + <span className={clsx(status.icon?.type === 'SUCCESS' && CLASS_GOOD, status.icon?.type === 'ERROR' && CLASS_BAD)}> + {status.icon?.label} + {status.icon?.check && <i className="fa fa-check-circle" />} + </span> ) + } + + return ( + <li id={id}> + {translate(`${message} `)} + {icon} + {status?.followUpMessage} + </li> + ) } diff --git a/resources/dev-tools/components/Modal.tsx b/resources/dev-tools/components/Modal.tsx index ec03fd68bd..8e49279ed7 100644 --- a/resources/dev-tools/components/Modal.tsx +++ b/resources/dev-tools/components/Modal.tsx @@ -1,83 +1,62 @@ -import React, { JSX, ReactElement, ReactNode } from 'react'; -import { useThemeHooks } from '@redocly/theme/core/hooks'; +import React, { JSX, ReactElement, ReactNode } from 'react' +import { useThemeHooks } from '@redocly/theme/core/hooks' interface ModalProps { id: string // used for targeting animations - title: string, - children: ReactNode, - footer?: ReactNode, - onClose: () => void; + title: string + children: ReactNode + footer?: ReactNode + onClose: () => void } /** * Reusable component that leverages bootstrap's jquery library */ -export const Modal = ({title, footer, children, onClose, id}: ModalProps) => { - return <div - className="modal fade" - id={id} - tabIndex={-1} - role="dialog" - aria-hidden="true" - > - <div className="modal-dialog modal-dialog-centered" role="document"> - <div className="modal-content"> - <div className="modal-header"> - <h5 className="modal-title">{title}</h5> - <button - type="button" - className="close" - aria-label="Close" - onClick={onClose} - data-dismiss="modal" - > - <span aria-hidden="true">×</span> - </button> - </div> - <div className="modal-body"> - {children} - </div> - <div className="modal-footer"> - { footer ? footer : ( - <ModalCloseBtn onClick={onClose} /> - )} +export const Modal = ({ title, footer, children, onClose, id }: ModalProps) => { + return ( + <div className="modal fade" id={id} tabIndex={-1} role="dialog" aria-hidden="true"> + <div className="modal-dialog modal-dialog-centered" role="document"> + <div className="modal-content"> + <div className="modal-header"> + <h5 className="modal-title">{title}</h5> + <button type="button" className="close" aria-label="Close" onClick={onClose} data-dismiss="modal"> + <span aria-hidden="true">×</span> + </button> + </div> + <div className="modal-body">{children}</div> + <div className="modal-footer">{footer ? footer : <ModalCloseBtn onClick={onClose} />}</div> </div> </div> </div> - </div> + ) } -export const ModalCloseBtn = ({onClick}) => { - const { useTranslate } = useThemeHooks(); - const { translate } = useTranslate(); +export const ModalCloseBtn = ({ onClick }) => { + const { useTranslate } = useThemeHooks() + const { translate } = useTranslate() - return <button - type="button" - className="btn btn-outline-secondary" - data-dismiss="modal" - onClick={onClick} - > - {translate('Close')} - </button> + return ( + <button type="button" className="btn btn-outline-secondary" data-dismiss="modal" onClick={onClick}> + {translate('Close')} + </button> + ) } -export const ModalClipboardBtn = ({textareaRef}) => { - const { useTranslate } = useThemeHooks(); - const { translate } = useTranslate(); +export const ModalClipboardBtn = ({ textareaRef }) => { + const { useTranslate } = useThemeHooks() + const { translate } = useTranslate() - return <button - title={translate('Copy to clipboard')} - className="btn btn-outline-secondary clipboard-btn" - onClick={() => copyToClipboard(textareaRef)} - > - <i className="fa fa-clipboard"></i> - </button> + return ( + <button title={translate('Copy to clipboard')} className="btn btn-outline-secondary clipboard-btn" onClick={() => copyToClipboard(textareaRef)}> + <i className="fa fa-clipboard"></i> + </button> + ) } const copyToClipboard = async (textareaRef) => { if (textareaRef.current) { - textareaRef.current.select(); - textareaRef.current.focus(); - await navigator.clipboard.writeText(textareaRef.current.value); + textareaRef.current.select() + textareaRef.current.focus() + await navigator.clipboard.writeText(textareaRef.current.value) } -}; +} diff --git a/resources/dev-tools/components/StatusSidebar.tsx b/resources/dev-tools/components/StatusSidebar.tsx index cb07510042..de91fc0eab 100644 --- a/resources/dev-tools/components/StatusSidebar.tsx +++ b/resources/dev-tools/components/StatusSidebar.tsx @@ -1,45 +1,54 @@ -import * as React from 'react'; -import { useThemeHooks } from '@redocly/theme/core/hooks'; +import * as React from 'react' +import { useThemeHooks } from '@redocly/theme/core/hooks' import { clsx } from 'clsx' import { type Wallet } from 'xrpl' export function StatusSidebar({ - balance, - sendingWallet, - connectionReady, - txHistory -}: -{ - balance: number, - sendingWallet: Wallet | undefined, - connectionReady: boolean, - txHistory: React.JSX.Element[], + balance, + sendingWallet, + connectionReady, + txHistory, +}: { + balance: number + sendingWallet: Wallet | undefined + connectionReady: boolean + txHistory: React.JSX.Element[] }) { - const { useTranslate } = useThemeHooks(); - const { translate } = useTranslate(); + const { useTranslate } = useThemeHooks() + const { translate } = useTranslate() - return (<aside className="right-sidebar col-lg-6 order-lg-4"> - <div id="connection-status" className="card"> - <div className="card-header"> - <h4>{translate("Status")}</h4> - </div> - <div className="card-body"> - <ul className="list-group list-group-flush"> - <li className="list-group-item" id="connection-status-label">{translate("XRP Testnet:")}</li> - <li className={clsx("list-group-item", (connectionReady ? 'active' : 'disabled'))} id="connection-status-item">{connectionReady ? translate("Connected") : translate("Not Connected")}</li> - <li className="list-group-item" id="sending-address-label">{translate("Sending Address:")}</li> - <li className="list-group-item disabled sending-address-item">{sendingWallet ? sendingWallet.address : translate("(None)")}</li> - <li className="list-group-item" id="balance-label">{translate("Testnet XRP Available:")}</li> - <li className="list-group-item disabled" id="balance-item">{balance ? translate(balance.toString()) : translate("(None)")}</li> - </ul> - <div id="tx-sender-history"> - <h5 className="m-3">{translate("Transaction History")}</h5> - <ul className="list-group list-group-flush"> - {txHistory} - </ul> - </div> - </div> + return ( + <aside className="right-sidebar col-lg-6 order-lg-4"> + <div id="connection-status" className="card"> + <div className="card-header"> + <h4>{translate('Status')}</h4> </div> - </aside>) + <div className="card-body"> + <ul className="list-group list-group-flush"> + <li className="list-group-item" id="connection-status-label"> + {translate('XRP Testnet:')} + </li> + <li className={clsx('list-group-item', connectionReady ? 'active' : 'disabled')} id="connection-status-item"> + {connectionReady ? translate('Connected') : translate('Not Connected')} + </li> + <li className="list-group-item" id="sending-address-label"> + {translate('Sending Address:')} + </li> + <li className="list-group-item disabled sending-address-item">{sendingWallet ? sendingWallet.address : translate('(None)')}</li> + <li className="list-group-item" id="balance-label"> + {translate('Testnet XRP Available:')} + </li> + <li className="list-group-item disabled" id="balance-item"> + {balance ? translate(balance.toString()) : translate('(None)')} + </li> + </ul> + <div id="tx-sender-history"> + <h5 className="m-3">{translate('Transaction History')}</h5> + <ul className="list-group list-group-flush">{txHistory}</ul> + </div> + </div> + </div> + </aside> + ) } diff --git a/resources/dev-tools/components/TextLookupForm.tsx b/resources/dev-tools/components/TextLookupForm.tsx index 84703b956a..e8a1fcfdd5 100644 --- a/resources/dev-tools/components/TextLookupForm.tsx +++ b/resources/dev-tools/components/TextLookupForm.tsx @@ -1,38 +1,39 @@ -import * as React from 'react'; +import * as React from 'react' import { useState } from 'react' -import { useThemeHooks } from '@redocly/theme/core/hooks'; -import { LogEntry, LogEntryItem } from './LogEntry'; +import { useThemeHooks } from '@redocly/theme/core/hooks' +import { LogEntry, LogEntryItem } from './LogEntry' /** * A button that allows a single field to be submitted & logs displayed underneath. */ export interface TextLookupFormProps { - /** - * The big header above the button. - */ - title: string - /** - * Main description for what the button will do. Usually wrapped in <p> with <a>'s inside. - * All translation must be done before passing in the description. - */ - description: React.JSX.Element, - /** - * 2-3 words that appear on the button itself. - */ - buttonDescription: string - /* - * Triggered when users click the button to submit the form. - * setLogEntries is internally used to display logs to the user as handleSubmit executes. - * fieldValue represents the value they submitted with the form. - */ - handleSubmit: ( - setLogEntries: React.Dispatch<React.SetStateAction<LogEntryItem[]>>, - event: React.FormEvent<HTMLFormElement>, - fieldValue: string) => void - /** - * Optionally include this as an example in the form to hint to users what they should type in. - */ - formPlaceholder?: string + /** + * The big header above the button. + */ + title: string + /** + * Main description for what the button will do. Usually wrapped in <p> with <a>'s inside. + * All translation must be done before passing in the description. + */ + description: React.JSX.Element + /** + * 2-3 words that appear on the button itself. + */ + buttonDescription: string + /* + * Triggered when users click the button to submit the form. + * setLogEntries is internally used to display logs to the user as handleSubmit executes. + * fieldValue represents the value they submitted with the form. + */ + handleSubmit: ( + setLogEntries: React.Dispatch<React.SetStateAction<LogEntryItem[]>>, + event: React.FormEvent<HTMLFormElement>, + fieldValue: string, + ) => void + /** + * Optionally include this as an example in the form to hint to users what they should type in. + */ + formPlaceholder?: string } /** @@ -42,37 +43,43 @@ export interface TextLookupFormProps { * @returns A single-entry form which displays logs after submitting. */ export function TextLookupForm(props: TextLookupFormProps) { - const { useTranslate } = useThemeHooks() - const { translate } = useTranslate() + const { useTranslate } = useThemeHooks() + const { translate } = useTranslate() - const { title, description, buttonDescription, formPlaceholder, handleSubmit } = props + const { title, description, buttonDescription, formPlaceholder, handleSubmit } = props - const [logEntries, setLogEntries] = useState<LogEntryItem[]>([]) - const [fieldValue, setFieldValue] = useState("") + const [logEntries, setLogEntries] = useState<LogEntryItem[]>([]) + const [fieldValue, setFieldValue] = useState('') - return ( + return ( <div className="p-3 pb-5"> <form onSubmit={(event) => handleSubmit(setLogEntries, event, fieldValue)}> - <h4>{translate(title)}</h4> - {description} - <div className="input-group"> - <input type="text" className="form-control" required - placeholder={translate(formPlaceholder)} - onChange={(event) => setFieldValue(event.target.value)} - /> - <br /> - <button className="btn btn-primary form-control">{translate(buttonDescription)}</button> - </div> + <h4>{translate(title)}</h4> + {description} + <div className="input-group"> + <input + type="text" + className="form-control" + required + placeholder={translate(formPlaceholder)} + onChange={(event) => setFieldValue(event.target.value)} + /> + <br /> + <button className="btn btn-primary form-control">{translate(buttonDescription)}</button> + </div> </form> - <br/> - <br/> - {logEntries?.length > 0 && <div> + <br /> + <br /> + {logEntries?.length > 0 && ( + <div> <h5 className="result-title">{translate(`Result`)}</h5> <ul id="log"> - {logEntries.map((log) => { - return <LogEntry message={log.message} id={log.id} key={log.id} status={log.status} /> - })} + {logEntries.map((log) => { + return <LogEntry message={log.message} id={log.id} key={log.id} status={log.status} /> + })} </ul> - </div>} - </div>) + </div> + )} + </div> + ) } diff --git a/resources/dev-tools/components/TransactionButton.tsx b/resources/dev-tools/components/TransactionButton.tsx index 2e3c382d96..9b91fe3593 100644 --- a/resources/dev-tools/components/TransactionButton.tsx +++ b/resources/dev-tools/components/TransactionButton.tsx @@ -1,157 +1,174 @@ -import * as React from 'react'; +import * as React from 'react' import { useState } from 'react' -import { useThemeHooks } from '@redocly/theme/core/hooks'; +import { useThemeHooks } from '@redocly/theme/core/hooks' import { clsx } from 'clsx' import { type Transaction, type Wallet } from 'xrpl' -import { SubmitConstData, submitAndUpdateUI, canSendTransaction } from '../utils'; - +import { SubmitConstData, submitAndUpdateUI, canSendTransaction } from '../utils' export interface TransactionButtonProps { - submitConstData: SubmitConstData, - connectionReady: boolean, - transaction: Transaction, - sendingWallet: Wallet | undefined - id: string, // Used to set all ids within component - content: { - buttonText: string, - units: string, // Displays after the input number - longerDescription: React.JSX.Element // JSX allows for embedding links within the longer description - buttonTitle?: string // Only used while loading bar is activated - }, - inputSettings?: { - defaultValue: number, // Should NOT be a dynamic number - setInputValue: React.Dispatch<React.SetStateAction<number>>, - min: number, - max: number, - }, - loadingBar?: { - id: string, - widthPercent: number, - description: string, - defaultOn: boolean, - }, - checkBox?: { - setCheckValue: React.Dispatch<React.SetStateAction<boolean>>, - defaultValue: boolean, - description: string, - } - customOnClick?: Function + submitConstData: SubmitConstData + connectionReady: boolean + transaction: Transaction + sendingWallet: Wallet | undefined + id: string // Used to set all ids within component + content: { + buttonText: string + units: string // Displays after the input number + longerDescription: React.JSX.Element // JSX allows for embedding links within the longer description + buttonTitle?: string // Only used while loading bar is activated + } + inputSettings?: { + defaultValue: number // Should NOT be a dynamic number + setInputValue: React.Dispatch<React.SetStateAction<number>> + min: number + max: number + } + loadingBar?: { + id: string + widthPercent: number + description: string + defaultOn: boolean + } + checkBox?: { + setCheckValue: React.Dispatch<React.SetStateAction<boolean>> + defaultValue: boolean + description: string + } + customOnClick?: Function } function shouldDisableButton( - connectionReady: boolean, - sendingWallet: Wallet | undefined, - waitingForTransaction: boolean, - loadingBar?: { - widthPercent: number - } + connectionReady: boolean, + sendingWallet: Wallet | undefined, + waitingForTransaction: boolean, + loadingBar?: { + widthPercent: number + }, ): boolean { - return !canSendTransaction(connectionReady, sendingWallet?.address) - || waitingForTransaction - || (!!(loadingBar?.widthPercent) && loadingBar.widthPercent < 100) + return ( + !canSendTransaction(connectionReady, sendingWallet?.address) || + waitingForTransaction || + (!!loadingBar?.widthPercent && loadingBar.widthPercent < 100) + ) } export function TransactionButton({ - id, - submitConstData, - connectionReady, - transaction, - sendingWallet, - content, - inputSettings, - loadingBar, - checkBox, - customOnClick -}: TransactionButtonProps ) { - const { useTranslate } = useThemeHooks() - const { translate } = useTranslate() + id, + submitConstData, + connectionReady, + transaction, + sendingWallet, + content, + inputSettings, + loadingBar, + checkBox, + customOnClick, +}: TransactionButtonProps) { + const { useTranslate } = useThemeHooks() + const { translate } = useTranslate() - const [waitingForTransaction, setWaitingForTransaction] = useState(false) + const [waitingForTransaction, setWaitingForTransaction] = useState(false) - return ( + return ( <div> - <div className="form-group" id={id}> - - {/* Optional loading bar - Used for Partial Payments setup and EscrowFinish wait time */} - {loadingBar?.id && <div className="progress mb-1" id={loadingBar?.id ?? ""}> - <div className={ - clsx("progress-bar progress-bar-striped w-0", - (loadingBar?.widthPercent < 100 && loadingBar?.widthPercent > 0) && "progress-bar-animated")} - style={{width: (Math.min(loadingBar?.widthPercent + (loadingBar?.defaultOn ? 1 : 0), 100)).toString() + "%", - display: (loadingBar?.widthPercent >= 100) ? 'none' : ''}}> -   - </div> - {(loadingBar?.widthPercent < 100 && loadingBar?.widthPercent > 0 || (loadingBar.defaultOn && loadingBar?.widthPercent === 0)) - && <small className="justify-content-center d-flex position-absolute w-100"> - {translate(loadingBar?.description)} - </small>} - </div>} - - <div className="input-group mb-3"> - - {/* Loading icon for when transaction is being submitted */} - <div className="input-group-prepend"> - <span className="input-group-text loader" style={{display: waitingForTransaction ? '' : 'none'}}> - <img className="throbber" src="/img/xrp-loader-96.png" alt={translate("(loading)")} /> - </span> - </div> - - <button className={clsx("btn btn-primary form-control needs-connection", - (shouldDisableButton(connectionReady, sendingWallet, waitingForTransaction, loadingBar) && "disabled"))} - type="button" id={id + "_btn"} - disabled={shouldDisableButton(connectionReady, sendingWallet, waitingForTransaction, loadingBar)} - onClick={async () => { - setWaitingForTransaction(true) - customOnClick ? await customOnClick() : await submitAndUpdateUI(submitConstData, sendingWallet!, transaction) - setWaitingForTransaction(false) - }} - title={(loadingBar && (loadingBar.widthPercent > 0 && loadingBar.widthPercent < 100)) ? translate(content.buttonTitle) : ""} - > - {translate(content.buttonText)} - </button> - - {inputSettings && - <input id={id + "_amount"} className="form-control" type="number" - aria-describedby={id + "amount_help"} - defaultValue={inputSettings?.defaultValue} - min={inputSettings?.min} - max={inputSettings?.max} - onChange={(event: React.ChangeEvent<HTMLInputElement>) => { - // Enforce min / max values - let { value, min, max } = event.target; - const newValue = Math.max(Number(min), Math.min(Number(max), Number(value))); - // Share the value so other logic can update based on it - inputSettings?.setInputValue(newValue) - } - } />} - - {inputSettings && <div className="input-group-append"> - <span className="input-group-text" id={id + "_help"}> - {translate(content.units)} - </span> - </div> - } - - {/* Used for Escrow */} - {checkBox && <span className="input-group-text"> - ( - <input type="checkbox" - id={id + "_checkbox"} - defaultValue={checkBox.defaultValue ? 1 : 0} - onChange={(event: React.ChangeEvent<HTMLInputElement>) => checkBox.setCheckValue(event.target.checked)} /> - <label className="form-check-label" htmlFor={id + "_checkbox"}> - {translate(checkBox.description)} - </label>) - </span>} + <div className="form-group" id={id}> + {/* Optional loading bar - Used for Partial Payments setup and EscrowFinish wait time */} + {loadingBar?.id && ( + <div className="progress mb-1" id={loadingBar?.id ?? ''}> + <div + className={clsx( + 'progress-bar progress-bar-striped w-0', + loadingBar?.widthPercent < 100 && loadingBar?.widthPercent > 0 && 'progress-bar-animated', + )} + style={{ + width: Math.min(loadingBar?.widthPercent + (loadingBar?.defaultOn ? 1 : 0), 100).toString() + '%', + display: loadingBar?.widthPercent >= 100 ? 'none' : '', + }} + > +   </div> + {((loadingBar?.widthPercent < 100 && loadingBar?.widthPercent > 0) || (loadingBar.defaultOn && loadingBar?.widthPercent === 0)) && ( + <small className="justify-content-center d-flex position-absolute w-100">{translate(loadingBar?.description)}</small> + )} + </div> + )} - <small className="form-text text-muted"> - {content.longerDescription} - </small> + <div className="input-group mb-3"> + {/* Loading icon for when transaction is being submitted */} + <div className="input-group-prepend"> + <span className="input-group-text loader" style={{ display: waitingForTransaction ? '' : 'none' }}> + <img className="throbber" src="/img/xrp-loader-96.png" alt={translate('(loading)')} /> + </span> + </div> + <button + className={clsx( + 'btn btn-primary form-control needs-connection', + shouldDisableButton(connectionReady, sendingWallet, waitingForTransaction, loadingBar) && 'disabled', + )} + type="button" + id={id + '_btn'} + disabled={shouldDisableButton(connectionReady, sendingWallet, waitingForTransaction, loadingBar)} + onClick={async () => { + setWaitingForTransaction(true) + customOnClick ? await customOnClick() : await submitAndUpdateUI(submitConstData, sendingWallet!, transaction) + setWaitingForTransaction(false) + }} + title={loadingBar && loadingBar.widthPercent > 0 && loadingBar.widthPercent < 100 ? translate(content.buttonTitle) : ''} + > + {translate(content.buttonText)} + </button> + + {inputSettings && ( + <input + id={id + '_amount'} + className="form-control" + type="number" + aria-describedby={id + 'amount_help'} + defaultValue={inputSettings?.defaultValue} + min={inputSettings?.min} + max={inputSettings?.max} + onChange={(event: React.ChangeEvent<HTMLInputElement>) => { + // Enforce min / max values + let { value, min, max } = event.target + const newValue = Math.max(Number(min), Math.min(Number(max), Number(value))) + // Share the value so other logic can update based on it + inputSettings?.setInputValue(newValue) + }} + /> + )} + + {inputSettings && ( + <div className="input-group-append"> + <span className="input-group-text" id={id + '_help'}> + {translate(content.units)} + </span> + </div> + )} + + {/* Used for Escrow */} + {checkBox && ( + <span className="input-group-text"> + ( + <input + type="checkbox" + id={id + '_checkbox'} + defaultValue={checkBox.defaultValue ? 1 : 0} + onChange={(event: React.ChangeEvent<HTMLInputElement>) => checkBox.setCheckValue(event.target.checked)} + /> + <label className="form-check-label" htmlFor={id + '_checkbox'}> + {translate(checkBox.description)} + </label> + ) + </span> + )} </div> - <hr /> - </div>) + + <small className="form-text text-muted">{content.longerDescription}</small> + </div> + <hr /> + </div> + ) } diff --git a/resources/dev-tools/components/rpc-tool/rpc-response-group.tsx b/resources/dev-tools/components/rpc-tool/rpc-response-group.tsx index e841cef2b2..fca1ac4db6 100644 --- a/resources/dev-tools/components/rpc-tool/rpc-response-group.tsx +++ b/resources/dev-tools/components/rpc-tool/rpc-response-group.tsx @@ -1,49 +1,50 @@ -import { useThemeHooks } from '@redocly/theme/core/hooks'; -import { ReactElement, useState } from 'react'; +import { useThemeHooks } from '@redocly/theme/core/hooks' +import { ReactElement, useState } from 'react' import JsonView from 'react18-json-view' interface RPCResponseGroupProps { response: any anchor: ReactElement - customExpanded?: number, + customExpanded?: number customExpandedText?: string } export const RPCResponseGroup = ({ response, anchor, customExpanded, customExpandedText }: RPCResponseGroupProps) => { const [expanded, setExpanded] = useState<number | false>(1) - return <div className="group group-tx"> - <h3>{anchor}</h3> - <RPCResponseGroupExpanders customExpanded={customExpanded} customExpandedText={customExpandedText} setExpanded={setExpanded} /> - <JsonView - src={response} - collapsed={expanded} - collapseStringsAfterLength={100} - enableClipboard={false} - /> - <RPCResponseGroupExpanders customExpanded={customExpanded} customExpandedText={customExpandedText} setExpanded={setExpanded} /> - </div> + return ( + <div className="group group-tx"> + <h3>{anchor}</h3> + <RPCResponseGroupExpanders customExpanded={customExpanded} customExpandedText={customExpandedText} setExpanded={setExpanded} /> + <JsonView src={response} collapsed={expanded} collapseStringsAfterLength={100} enableClipboard={false} /> + <RPCResponseGroupExpanders customExpanded={customExpanded} customExpandedText={customExpandedText} setExpanded={setExpanded} /> + </div> + ) } const RPCResponseGroupExpanders = ({ customExpanded, customExpandedText, setExpanded }) => { - const { useTranslate } = useThemeHooks(); - const { translate } = useTranslate(); + const { useTranslate } = useThemeHooks() + const { translate } = useTranslate() - return <ul className="nav nav-pills"> - {customExpanded && customExpandedText && ( + return ( + <ul className="nav nav-pills"> + {customExpanded && customExpandedText && ( + <li className="nav-item"> + <a className="nav-link" onClick={() => setExpanded(customExpanded)}> + {customExpandedText} + </a> + </li> + )} <li className="nav-item"> - <a className="nav-link" onClick={() => setExpanded(customExpanded)}> - {customExpandedText} + <a className="nav-link" onClick={() => setExpanded(false)}> + {translate('expand all')} </a> </li> - )} - <li className="nav-item"> - <a className="nav-link" onClick={() => setExpanded(false)}>{translate("expand all")}</a> - </li> - <li className="nav-item"> - <a className="nav-link" onClick={() => setExpanded(1)}> - {translate("collapse all")} - </a> - </li> - </ul> + <li className="nav-item"> + <a className="nav-link" onClick={() => setExpanded(1)}> + {translate('collapse all')} + </a> + </li> + </ul> + ) } diff --git a/resources/dev-tools/components/websocket-api/ClioOnly.tsx b/resources/dev-tools/components/websocket-api/ClioOnly.tsx index 822592a0ca..cb8add9782 100644 --- a/resources/dev-tools/components/websocket-api/ClioOnly.tsx +++ b/resources/dev-tools/components/websocket-api/ClioOnly.tsx @@ -1,15 +1,15 @@ -import { useThemeHooks } from '@redocly/theme/core/hooks'; +import { useThemeHooks } from '@redocly/theme/core/hooks' -export function ClioOnlyIcon () { +export function ClioOnlyIcon() { const { useTranslate } = useThemeHooks() const { translate } = useTranslate() return ( - <span - className="status clio_only" - title={translate("resources.dev-tools.websocket-api.clio-only-tooltip", "This method is only available from the Clio server.")} - > - <i className="fa fa-exclamation-circle"></i> - </span> + <span + className="status clio_only" + title={translate('resources.dev-tools.websocket-api.clio-only-tooltip', 'This method is only available from the Clio server.')} + > + <i className="fa fa-exclamation-circle"></i> + </span> ) } @@ -17,10 +17,9 @@ export function ClioOnlyNotice() { const { useTranslate } = useThemeHooks() const { translate } = useTranslate() return ( - <span className="clio-only-notice" - > + <span className="clio-only-notice"> <ClioOnlyIcon /> - {translate("resources.dev-tools.websocket-api.clio-only-badge", " Clio only")} + {translate('resources.dev-tools.websocket-api.clio-only-badge', ' Clio only')} </span> ) } diff --git a/resources/dev-tools/components/websocket-api/connection-modal.tsx b/resources/dev-tools/components/websocket-api/connection-modal.tsx index c3d203a196..be951cb105 100644 --- a/resources/dev-tools/components/websocket-api/connection-modal.tsx +++ b/resources/dev-tools/components/websocket-api/connection-modal.tsx @@ -1,34 +1,27 @@ -import { useThemeHooks } from '@redocly/theme/core/hooks'; -import { Connection } from './types'; -import { ChangeEvent } from 'react'; -import { Modal } from '../Modal'; +import { useThemeHooks } from '@redocly/theme/core/hooks' +import { Connection } from './types' +import { ChangeEvent } from 'react' +import { Modal } from '../Modal' interface ConnectionButtonProps { - selectedConnection: Connection; - setSelectedConnection: (value: Connection) => void; - connections: Connection[]; + selectedConnection: Connection + setSelectedConnection: (value: Connection) => void + connections: Connection[] } interface ConnectionProps extends ConnectionButtonProps { - closeConnectionModal: any; + closeConnectionModal: any } -export const ConnectionModal: React.FC<ConnectionProps> = ({ - selectedConnection, - setSelectedConnection, - closeConnectionModal, - connections, - }) => { - const { useTranslate } = useThemeHooks(); - const { translate } = useTranslate(); +export const ConnectionModal: React.FC<ConnectionProps> = ({ selectedConnection, setSelectedConnection, closeConnectionModal, connections }) => { + const { useTranslate } = useThemeHooks() + const { translate } = useTranslate() const handleConnectionChange = (event: ChangeEvent<HTMLInputElement>) => { - const selectedValue = event.target.value; - const foundConnection = connections.find( - (conn) => conn.id === selectedValue - ); + const selectedValue = event.target.value + const foundConnection = connections.find((conn) => conn.id === selectedValue) - setSelectedConnection(foundConnection); - }; + setSelectedConnection(foundConnection) + } return ( <Modal id="wstool-1-connection-settings" title={translate('Connection Settings')} onClose={closeConnectionModal}> @@ -49,6 +42,5 @@ export const ConnectionModal: React.FC<ConnectionProps> = ({ </div> ))} </Modal> - ); -}; - + ) +} diff --git a/resources/dev-tools/components/websocket-api/curl-modal.tsx b/resources/dev-tools/components/websocket-api/curl-modal.tsx index d1525f80b0..a48af97b2a 100644 --- a/resources/dev-tools/components/websocket-api/curl-modal.tsx +++ b/resources/dev-tools/components/websocket-api/curl-modal.tsx @@ -1,44 +1,40 @@ -import React, { useRef, useState } from 'react'; -import { useThemeHooks } from '@redocly/theme/core/hooks'; -import { Connection } from './types'; -import { Modal, ModalClipboardBtn, ModalCloseBtn } from '../Modal'; +import React, { useRef, useState } from 'react' +import { useThemeHooks } from '@redocly/theme/core/hooks' +import { Connection } from './types' +import { Modal, ModalClipboardBtn, ModalCloseBtn } from '../Modal' interface CurlButtonProps { - currentBody: any; - selectedConnection: Connection; + currentBody: any + selectedConnection: Connection } -interface CurlProps extends CurlButtonProps{ - closeCurlModal: () => void; +interface CurlProps extends CurlButtonProps { + closeCurlModal: () => void } -export const CurlModal: React.FC<CurlProps> = ({ - closeCurlModal, - currentBody, - selectedConnection, - }) => { - const { useTranslate } = useThemeHooks(); - const { translate } = useTranslate(); - const curlRef = useRef(null); +export const CurlModal: React.FC<CurlProps> = ({ closeCurlModal, currentBody, selectedConnection }) => { + const { useTranslate } = useThemeHooks() + const { translate } = useTranslate() + const curlRef = useRef(null) - const footer = <> - <ModalClipboardBtn textareaRef={curlRef} /> - <ModalCloseBtn onClick={closeCurlModal} /> - </> + const footer = ( + <> + <ModalClipboardBtn textareaRef={curlRef} /> + <ModalCloseBtn onClick={closeCurlModal} /> + </> + ) return ( - <Modal - id="wstool-1-curl" - title={translate("cURL Syntax")} - onClose={() => {}} - footer={footer} - > + <Modal id="wstool-1-curl" title={translate('cURL Syntax')} onClose={() => {}} footer={footer}> <form> <div className="form-group"> <label htmlFor="curl-box-1"> - {translate('resources.dev-tools.websocket-api.curl.modal.desc.part1', 'Use the following syntax to make the equivalent JSON-RPC request using ')} + {translate( + 'resources.dev-tools.websocket-api.curl.modal.desc.part1', + 'Use the following syntax to make the equivalent JSON-RPC request using ', + )} <a href="https://curl.se/">cURL</a> - {translate('resources.dev-tools.websocket-api.curl.modal.desc.part2',' from a commandline interface:')} + {translate('resources.dev-tools.websocket-api.curl.modal.desc.part2', ' from a commandline interface:')} </label> <textarea id="curl-box-1" @@ -51,50 +47,48 @@ export const CurlModal: React.FC<CurlProps> = ({ </div> </form> </Modal> - ); -}; + ) +} -export function CurlButton ({selectedConnection, currentBody}: CurlButtonProps) { - const [showCurlModal, setShowCurlModal] = useState(false); - const { useTranslate } = useThemeHooks(); - const { translate } = useTranslate(); +export function CurlButton({ selectedConnection, currentBody }: CurlButtonProps) { + const [showCurlModal, setShowCurlModal] = useState(false) + const { useTranslate } = useThemeHooks() + const { translate } = useTranslate() - return <> + return ( + <> <button className="btn btn-outline-secondary curl" data-toggle="modal" data-target="#wstool-1-curl" - title={translate("cURL Syntax")} + title={translate('cURL Syntax')} onClick={() => setShowCurlModal(true)} > <i className="fa fa-terminal"></i> </button> {showCurlModal && ( - <CurlModal - closeCurlModal={() => setShowCurlModal(false)} - currentBody={currentBody} - selectedConnection={selectedConnection} - /> + <CurlModal closeCurlModal={() => setShowCurlModal(false)} currentBody={currentBody} selectedConnection={selectedConnection} /> )} - </> + </> + ) } function getCurl(selectedConnection: Connection, currentBody) { - let body : string; + let body: string try { // change WS to JSON-RPC syntax - const params = JSON.parse(currentBody); - delete params.id; - const method = params.command; - delete params.command; - const body_json = { method: method, params: [params] }; - body = JSON.stringify(body_json, null, null); + const params = JSON.parse(currentBody) + delete params.id + const method = params.command + delete params.command + const body_json = { method: method, params: [params] } + body = JSON.stringify(body_json, null, null) } catch (e) { - alert("Can't provide curl format of invalid JSON syntax"); - return; + alert("Can't provide curl format of invalid JSON syntax") + return } - const server = selectedConnection.jsonrpc_url; + const server = selectedConnection.jsonrpc_url - return `curl -H 'Content-Type: application/json' -d '${body}' ${server}`; + return `curl -H 'Content-Type: application/json' -d '${body}' ${server}` } diff --git a/resources/dev-tools/components/websocket-api/data/command-list.json b/resources/dev-tools/components/websocket-api/data/command-list.json index d6f2e991b5..8c0457bf3a 100644 --- a/resources/dev-tools/components/websocket-api/data/command-list.json +++ b/resources/dev-tools/components/websocket-api/data/command-list.json @@ -99,10 +99,7 @@ "id": "example_gateway_balances_1", "command": "gateway_balances", "account": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "hotwallet": [ - "rKm4uWpg9tfwbVSeATv4KxDe6mpE9yPkgJ", - "ra7JkEzrgeKHdzKgo4EUUVBnxggY4z37kt" - ], + "hotwallet": ["rKm4uWpg9tfwbVSeATv4KxDe6mpE9yPkgJ", "ra7JkEzrgeKHdzKgo4EUUVBnxggY4z37kt"], "ledger_index": "validated" } }, @@ -161,7 +158,7 @@ "body": { "id": "example_ledger_data", "command": "ledger_data", - "ledger_hash": "842B57C1CC0613299A686D3E9F310EC0422C84D3911E5056389AA7E5808A93C8", + "ledger_hash": "842B57C1CC0613299A686D3E9F310EC0422C84D3911E5056389AA7E5808A93C8", "limit": 5, "api_version": 2 } @@ -188,11 +185,11 @@ "body": { "id": "example_simulate", "command": "simulate", - "tx_json" : { - "TransactionType" : "Payment", - "Account" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "Destination" : "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "Amount" : "1000000" + "tx_json": { + "TransactionType": "Payment", + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "Amount": "1000000" } } }, @@ -497,12 +494,8 @@ "body": { "id": "Example watch one account and all new ledgers", "command": "subscribe", - "streams": [ - "ledger" - ], - "accounts": [ - "rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1" - ] + "streams": ["ledger"], + "accounts": ["rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1"] } }, { @@ -512,12 +505,8 @@ "body": { "id": "Example stop watching one account and new ledgers", "command": "unsubscribe", - "streams": [ - "ledger" - ], - "accounts": [ - "rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1" - ] + "streams": ["ledger"], + "accounts": ["rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1"] } } ] @@ -720,9 +709,9 @@ "body": { "id": "example_get_oracle", "command": "ledger_entry", - "oracle" : { + "oracle": { "account": "rNZ9m6AP9K7z3EVg6GhPMx36V4QmZKeWds", - "oracle_document_id": 34 + "oracle_document_id": 34 }, "ledger_index": "validated" } @@ -735,10 +724,7 @@ "id": "example_get_ripplestate", "command": "ledger_entry", "ripple_state": { - "accounts": [ - "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW" - ], + "accounts": ["rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW"], "currency": "USD" }, "ledger_index": "validated" @@ -828,7 +814,7 @@ "command": "ledger_entry", "mptoken": { "mpt_issuance_id": "05EECEBE97A7D635DE2393068691A015FED5A89AD203F5AA", - "account":"rsNw23ygZatXv7h8QVSgAE4jktY2uW1iZP" + "account": "rsNw23ygZatXv7h8QVSgAE4jktY2uW1iZP" } } } diff --git a/resources/dev-tools/components/websocket-api/data/connections.json b/resources/dev-tools/components/websocket-api/data/connections.json index 4dfed06ca9..644f35b6f2 100644 --- a/resources/dev-tools/components/websocket-api/data/connections.json +++ b/resources/dev-tools/components/websocket-api/data/connections.json @@ -39,8 +39,7 @@ "ws_url": "ws://localhost:6006/", "jsonrpc_url": "http://localhost:5005/", "shortname": "Local server", - "longname": - "localhost:6006 (Local <code>rippled</code> Server on port 6006) <br/>\n <small>(Requires that you <a href=\"../../docs/infrastructure/installation\">run <code>rippled</code></a> on this machine with default WebSocket settings)</small>" + "longname": "localhost:6006 (Local <code>rippled</code> Server on port 6006) <br/>\n <small>(Requires that you <a href=\"../../docs/infrastructure/installation\">run <code>rippled</code></a> on this machine with default WebSocket settings)</small>" }, { "id": "connection-testnet-clio", diff --git a/resources/dev-tools/components/websocket-api/permalink-modal.tsx b/resources/dev-tools/components/websocket-api/permalink-modal.tsx index 307d5172f2..988d317035 100644 --- a/resources/dev-tools/components/websocket-api/permalink-modal.tsx +++ b/resources/dev-tools/components/websocket-api/permalink-modal.tsx @@ -1,45 +1,34 @@ -import React, { useRef, useState } from 'react'; -import { useThemeHooks } from '@redocly/theme/core/hooks'; -import { Connection } from './types'; -import { Modal, ModalClipboardBtn, ModalCloseBtn } from '../Modal'; +import React, { useRef, useState } from 'react' +import { useThemeHooks } from '@redocly/theme/core/hooks' +import { Connection } from './types' +import { Modal, ModalClipboardBtn, ModalCloseBtn } from '../Modal' interface PermaLinkButtonProps { - currentBody: any; - selectedConnection: Connection; + currentBody: any + selectedConnection: Connection } interface PermaLinkProps extends PermaLinkButtonProps { - closePermalinkModal: () => void; + closePermalinkModal: () => void } -const PermalinkModal: React.FC<PermaLinkProps> = ({ - closePermalinkModal, - currentBody, - selectedConnection -}) => { - const { useTranslate } = useThemeHooks(); - const { translate } = useTranslate(); - const permalinkRef = useRef(null); +const PermalinkModal: React.FC<PermaLinkProps> = ({ closePermalinkModal, currentBody, selectedConnection }) => { + const { useTranslate } = useThemeHooks() + const { translate } = useTranslate() + const permalinkRef = useRef(null) - const footer = <> - <ModalClipboardBtn textareaRef={permalinkRef} /> - <ModalCloseBtn onClick={closePermalinkModal} /> - </> + const footer = ( + <> + <ModalClipboardBtn textareaRef={permalinkRef} /> + <ModalCloseBtn onClick={closePermalinkModal} /> + </> + ) return ( - <Modal - id="wstool-1-permalink" - title={translate("Permalink")} - footer={footer} - onClose={closePermalinkModal} - > + <Modal id="wstool-1-permalink" title={translate('Permalink')} footer={footer} onClose={closePermalinkModal}> <form> <div className="form-group"> - <label htmlFor="permalink-box-1"> - {translate( - "Share the following link to load this page with the currently-loaded inputs:" - )} - </label> + <label htmlFor="permalink-box-1">{translate('Share the following link to load this page with the currently-loaded inputs:')}</label> <textarea id="permalink-box-1" className="form-control" @@ -51,41 +40,39 @@ const PermalinkModal: React.FC<PermaLinkProps> = ({ </div> </form> </Modal> - ); -}; - -export function PermalinkButton ({currentBody, selectedConnection}: PermaLinkButtonProps) { - const [showPermalinkModal, setShowPermalinkModal] = useState(false); - const { useTranslate } = useThemeHooks(); - const { translate } = useTranslate(); - - return <> - <button - className="btn btn-outline-secondary permalink" - data-toggle="modal" - data-target="#wstool-1-permalink" - title={translate("Permalink")} - onClick={() => setShowPermalinkModal(true)} - > - <i className="fa fa-link"></i> - </button> - {showPermalinkModal && ( - <PermalinkModal - closePermalinkModal={() => setShowPermalinkModal(false)} - currentBody={currentBody} - selectedConnection={selectedConnection} - /> - )} - </> + ) } -function getPermalink (selectedConnection: Connection, currentBody) { - const startHref = window.location.origin + window.location.pathname; - const encodedBody = encodeURIComponent(get_compressed_body(currentBody)); - const encodedServer = encodeURIComponent(selectedConnection.ws_url); - return `${startHref}?server=${encodedServer}&req=${encodedBody}`; +export function PermalinkButton({ currentBody, selectedConnection }: PermaLinkButtonProps) { + const [showPermalinkModal, setShowPermalinkModal] = useState(false) + const { useTranslate } = useThemeHooks() + const { translate } = useTranslate() + + return ( + <> + <button + className="btn btn-outline-secondary permalink" + data-toggle="modal" + data-target="#wstool-1-permalink" + title={translate('Permalink')} + onClick={() => setShowPermalinkModal(true)} + > + <i className="fa fa-link"></i> + </button> + {showPermalinkModal && ( + <PermalinkModal closePermalinkModal={() => setShowPermalinkModal(false)} currentBody={currentBody} selectedConnection={selectedConnection} /> + )} + </> + ) +} + +function getPermalink(selectedConnection: Connection, currentBody) { + const startHref = window.location.origin + window.location.pathname + const encodedBody = encodeURIComponent(get_compressed_body(currentBody)) + const encodedServer = encodeURIComponent(selectedConnection.ws_url) + return `${startHref}?server=${encodedServer}&req=${encodedBody}` } function get_compressed_body(currentBody) { - return currentBody.replace("\n", "").trim(); + return currentBody.replace('\n', '').trim() } diff --git a/resources/dev-tools/components/websocket-api/right-sidebar.tsx b/resources/dev-tools/components/websocket-api/right-sidebar.tsx index 41fcf3f552..e255ff7540 100644 --- a/resources/dev-tools/components/websocket-api/right-sidebar.tsx +++ b/resources/dev-tools/components/websocket-api/right-sidebar.tsx @@ -1,61 +1,44 @@ -import React, { Fragment } from 'react'; -import { useThemeHooks } from '@redocly/theme/core/hooks'; -import { Link } from "@redocly/theme/components/Link/Link"; -import { slugify } from "./slugify"; -import { CommandGroup, CommandMethod } from './types'; -import { ClioOnlyIcon } from './ClioOnly'; +import React, { Fragment } from 'react' +import { useThemeHooks } from '@redocly/theme/core/hooks' +import { Link } from '@redocly/theme/components/Link/Link' +import { slugify } from './slugify' +import { CommandGroup, CommandMethod } from './types' +import { ClioOnlyIcon } from './ClioOnly' interface RightSideBarProps { - commandList: CommandGroup[]; - currentMethod: CommandMethod; - setCurrentMethod: any; + commandList: CommandGroup[] + currentMethod: CommandMethod + setCurrentMethod: any } -export const RightSideBar: React.FC<RightSideBarProps> = ({ - commandList, - currentMethod, - setCurrentMethod, - }) => { - const { useTranslate } = useThemeHooks(); - const { translate } = useTranslate(); +export const RightSideBar: React.FC<RightSideBarProps> = ({ commandList, currentMethod, setCurrentMethod }) => { + const { useTranslate } = useThemeHooks() + const { translate } = useTranslate() return ( <div className="command-list-wrapper"> <div className="toc-header"> - <h4>{translate("API Methods")}</h4> + <h4>{translate('API Methods')}</h4> </div> <ul className="command-list" id="command_list"> {commandList.map((list, index) => ( <Fragment key={index}> <li className="separator"> - { - list.group.endsWith("Methods") ? - `${list.group.replace('Methods', '')}${translate('Methods')}` : - list.group.endsWith("Examples") ? - `${list.group.replace('Examples', '')}${translate('Examples')}` : - translate(list.group) - } + {list.group.endsWith('Methods') + ? `${list.group.replace('Methods', '')}${translate('Methods')}` + : list.group.endsWith('Examples') + ? `${list.group.replace('Examples', '')}${translate('Examples')}` + : translate(list.group)} </li> {list.methods.map((method) => ( - <li - className={`method${method === currentMethod ? " active" : ""}`} - key={method.name} - > - <Link - to={`/resources/dev-tools/websocket-api-tool#${slugify(method.name)}`} - onClick={() => setCurrentMethod(method)} - > + <li className={`method${method === currentMethod ? ' active' : ''}`} key={method.name}> + <Link to={`/resources/dev-tools/websocket-api-tool#${slugify(method.name)}`} onClick={() => setCurrentMethod(method)}> {method.name}  - {method.status === "not_enabled" && ( - <span - className="status not_enabled" - title="This feature is not currently enabled on the production XRP Ledger." - > + {method.status === 'not_enabled' && ( + <span className="status not_enabled" title="This feature is not currently enabled on the production XRP Ledger."> <i className="fa fa-flask"></i> </span> )} - {method.clio_only && ( - <ClioOnlyIcon /> - )} + {method.clio_only && <ClioOnlyIcon />} </Link> </li> ))} @@ -63,5 +46,5 @@ export const RightSideBar: React.FC<RightSideBarProps> = ({ ))} </ul> </div> - ); -}; + ) +} diff --git a/resources/dev-tools/components/websocket-api/slugify.ts b/resources/dev-tools/components/websocket-api/slugify.ts index 346f99064b..9fc7fd3d81 100644 --- a/resources/dev-tools/components/websocket-api/slugify.ts +++ b/resources/dev-tools/components/websocket-api/slugify.ts @@ -1,18 +1,18 @@ export const slugify = (str) => { - str = str.replace(/^\s+|\s+$/g, ""); // trim - str = str.toLowerCase(); + str = str.replace(/^\s+|\s+$/g, '') // trim + str = str.toLowerCase() // remove accents, swap ñ for n, etc - const from = "àáäâèéëêìíïîòóöôùúüûñç·/,:;"; - const to = "aaaaeeeeiiiioooouuuunc-----"; + const from = 'àáäâèéëêìíïîòóöôùúüûñç·/,:;' + const to = 'aaaaeeeeiiiioooouuuunc-----' for (let i = 0, l = from.length; i < l; i++) { - str = str.replace(new RegExp(from.charAt(i), "g"), to.charAt(i)); + str = str.replace(new RegExp(from.charAt(i), 'g'), to.charAt(i)) } str = str - .replace(/[^a-z0-9 _-]/g, "") // remove invalid chars - .replace(/\s+/g, "-") // collapse whitespace and replace by - - .replace(/-+/g, "-"); // collapse dashes + .replace(/[^a-z0-9 _-]/g, '') // remove invalid chars + .replace(/\s+/g, '-') // collapse whitespace and replace by - + .replace(/-+/g, '-') // collapse dashes - return str; -}; + return str +} diff --git a/resources/dev-tools/components/websocket-api/types.ts b/resources/dev-tools/components/websocket-api/types.ts index 4903be58a0..0cb583804b 100644 --- a/resources/dev-tools/components/websocket-api/types.ts +++ b/resources/dev-tools/components/websocket-api/types.ts @@ -1,10 +1,10 @@ export interface CommandMethod { name: string - description: string, + description: string link: string body: any - ws_only?: boolean, - status?: 'not_enabled', + ws_only?: boolean + status?: 'not_enabled' clio_only?: boolean } diff --git a/resources/dev-tools/domain-verifier.page.tsx b/resources/dev-tools/domain-verifier.page.tsx index b9d65cc025..1bea8041aa 100644 --- a/resources/dev-tools/domain-verifier.page.tsx +++ b/resources/dev-tools/domain-verifier.page.tsx @@ -1,62 +1,67 @@ -import * as React from "react"; -import { useThemeHooks } from '@redocly/theme/core/hooks'; -import { decode } from "ripple-binary-codec"; -import addressCodec, { encodeNodePublic } from "ripple-address-codec"; -import { verify as keyCodecVerify } from "ripple-keypairs"; -import { parse } from "smol-toml"; -import { TextLookupForm } from "./components/TextLookupForm"; -import { addNewLogEntry, LogEntryItem, updateLogEntry } from "./components/LogEntry"; -import { hexToBytes, hexToString, stringToHex } from "@xrplf/isomorphic/utils"; -import { Link } from "@redocly/theme/components/Link/Link"; +import * as React from 'react' +import { useThemeHooks } from '@redocly/theme/core/hooks' +import { decode } from 'ripple-binary-codec' +import addressCodec, { encodeNodePublic } from 'ripple-address-codec' +import { verify as keyCodecVerify } from 'ripple-keypairs' +import { parse } from 'smol-toml' +import { TextLookupForm } from './components/TextLookupForm' +import { addNewLogEntry, LogEntryItem, updateLogEntry } from './components/LogEntry' +import { hexToBytes, hexToString, stringToHex } from '@xrplf/isomorphic/utils' +import { Link } from '@redocly/theme/components/Link/Link' export const frontmatter = { seo: { title: 'Domain Verifier', - description: "Use this tool to confirm that your rippled validator has domain verification set up correctly", - } -}; + description: 'Use this tool to confirm that your rippled validator has domain verification set up correctly', + }, +} -const TIPS = - <p>Check if the xrp-ledger.toml file is actually hosted in the /.well-known/ location at the domain in your manifest. Check your server\'s HTTPS settings and certificate, and make sure your server provides the required <Link to="../../docs/references/xrp-ledger-toml#cors-setup">CORS header.</Link></p>; +const TIPS = ( + <p> + Check if the xrp-ledger.toml file is actually hosted in the /.well-known/ location at the domain in your manifest. Check your server\'s HTTPS + settings and certificate, and make sure your server provides the required{' '} + <Link to="../../docs/references/xrp-ledger-toml#cors-setup">CORS header.</Link> + </p> +) const DomainVerificationPage = () => { - const { useTranslate } = useThemeHooks(); - const { translate } = useTranslate(); - const TOML_PATH = "/.well-known/xrp-ledger.toml"; - let query_param = 0; + const { useTranslate } = useThemeHooks() + const { translate } = useTranslate() + const TOML_PATH = '/.well-known/xrp-ledger.toml' + let query_param = 0 const parse_xrpl_toml = async (setLogEntries, data, public_key_hex, public_key, message) => { const parsingTomlBase = { message: translate('Parsing TOML data...'), - id: 'parsing-toml' + id: 'parsing-toml', } - let parsed; + let parsed try { - addNewLogEntry(setLogEntries, parsingTomlBase); - parsed = parse(data); + addNewLogEntry(setLogEntries, parsingTomlBase) + parsed = parse(data) updateLogEntry(setLogEntries, { ...parsingTomlBase, status: { icon: { label: translate('Success'), - type: 'SUCCESS' - } - } - }); - } catch(e) { + type: 'SUCCESS', + }, + }, + }) + } catch (e) { updateLogEntry(setLogEntries, { ...parsingTomlBase, status: { icon: { label: e.message, - type: 'SUCCESS' - } - } - }); + type: 'SUCCESS', + }, + }, + }) } - const validator_entries = parsed.VALIDATORS; + const validator_entries = parsed.VALIDATORS if (validator_entries) { if (!Array.isArray(validator_entries)) { @@ -66,61 +71,55 @@ const DomainVerificationPage = () => { status: { icon: { label: translate('Wrong type - should be table-array'), - type: 'SUCCESS' - } - } + type: 'SUCCESS', + }, + }, }) - return; + return } - let validator_found = false; + let validator_found = false for (let i = 0; i < validator_entries.length; i++) { - const pk = validator_entries[i]["public_key"]; + const pk = validator_entries[i]['public_key'] if (pk === public_key) { - validator_found = true; - const attestation = validator_entries[i]["attestation"]; - const verify = keyCodecVerify( - stringToHex(message), - attestation, - public_key_hex - ); + validator_found = true + const attestation = validator_entries[i]['attestation'] + const verify = keyCodecVerify(stringToHex(message), attestation, public_key_hex) if (verify) { addNewLogEntry(setLogEntries, { - message: translate("Domain Verification Succeeded"), - id: "domain-verification-success", - }); + message: translate('Domain Verification Succeeded'), + id: 'domain-verification-success', + }) } else { addNewLogEntry(setLogEntries, { - message: translate("Domain Verification Failed"), - id: "domain-verification-fail", - }); + message: translate('Domain Verification Failed'), + id: 'domain-verification-fail', + }) } - break; + break } } if (!validator_found) { addNewLogEntry(setLogEntries, { - message: translate( - "The validator key for this manifest was not found in the TOML file" - ), - id: "validator-key-not-found", - }); + message: translate('The validator key for this manifest was not found in the TOML file'), + id: 'validator-key-not-found', + }) } } else { addNewLogEntry(setLogEntries, { - message: translate("No Validators Found"), - id: "no-validators", - }); + message: translate('No Validators Found'), + id: 'no-validators', + }) } - }; + } function displayManifest(setLogEntries, manifest) { - for(const key in manifest) { - addNewLogEntry(setLogEntries,{ + for (const key in manifest) { + addNewLogEntry(setLogEntries, { message: `${key}: ${manifest[key]}`, - id: `manifest-${key}` + id: `manifest-${key}`, }) } } @@ -129,54 +128,51 @@ const DomainVerificationPage = () => { let decodedManifest: any try { - decodedManifest = decode(manifest.toUpperCase()); - } catch(e) { + decodedManifest = decode(manifest.toUpperCase()) + } catch (e) { addNewLogEntry(setLogEntries, { message: translate(`Error decoding manifest:`), - id: "error-decoding-manifest", + id: 'error-decoding-manifest', status: { icon: { label: e.message, - type: 'ERROR' - } - } - }); + type: 'ERROR', + }, + }, + }) return } - const publicKeyHex = decodedManifest.PublicKey as string; - const publicKey = encodeNodePublic(hexToBytes(publicKeyHex)); + const publicKeyHex = decodedManifest.PublicKey as string + const publicKey = encodeNodePublic(hexToBytes(publicKeyHex)) const seq = decodedManifest['Sequence'] - const ephemeralPublicKeyHex = decodedManifest["SigningPubKey"]; - const ephemeralPublicKey = addressCodec.encodeNodePublic(hexToBytes(ephemeralPublicKeyHex)); + const ephemeralPublicKeyHex = decodedManifest['SigningPubKey'] + const ephemeralPublicKey = addressCodec.encodeNodePublic(hexToBytes(ephemeralPublicKeyHex)) - let domain: string; + let domain: string try { - domain = hexToString(decodedManifest.Domain as string); + domain = hexToString(decodedManifest.Domain as string) } catch { addNewLogEntry(setLogEntries, { message: translate(`Domain not found in manifest`), - id: "no-domain", - }); + id: 'no-domain', + }) displayManifest(setLogEntries, { - "Sequence": seq, - "Master Public Key": publicKey, - "Ephemeral Public Key": ephemeralPublicKey - }); + Sequence: seq, + 'Master Public Key': publicKey, + 'Ephemeral Public Key': ephemeralPublicKey, + }) return } - displayManifest(setLogEntries, {"Sequence":seq, - "Domain":domain, - "Master Public Key": publicKey, - "Ephemeral Public Key":ephemeralPublicKey}) + displayManifest(setLogEntries, { Sequence: seq, Domain: domain, 'Master Public Key': publicKey, 'Ephemeral Public Key': ephemeralPublicKey }) - const message = `[domain-attestation-blob:${domain}:${publicKey}]`; - const url = `https://${domain}${TOML_PATH}?v=${query_param++}`; + const message = `[domain-attestation-blob:${domain}:${publicKey}]` + const url = `https://${domain}${TOML_PATH}?v=${query_param++}` const baseCheckingToml = { id: 'checking-toml', - message: `${translate('resources.dev-tools.domain-verifier.checking.part1','Checking ')}${url}${translate('resources.dev-tools.domain-verifier.checking.part2','Checking')}}` + message: `${translate('resources.dev-tools.domain-verifier.checking.part1', 'Checking ')}${url}${translate('resources.dev-tools.domain-verifier.checking.part2', 'Checking')}}`, } addNewLogEntry(setLogEntries, baseCheckingToml) @@ -189,9 +185,9 @@ const DomainVerificationPage = () => { status: { icon: { label: translate('Found'), - type: 'SUCCESS' - } - } + type: 'SUCCESS', + }, + }, }) parse_xrpl_toml(setLogEntries, data, publicKeyHex, publicKey, message) }) @@ -201,66 +197,54 @@ const DomainVerificationPage = () => { status: { icon: { label: error.message, - type: 'ERROR' - } - } + type: 'ERROR', + }, + }, }) - }); + }) } catch (e) { addNewLogEntry(setLogEntries, { message: translate(`Error decoding manifest:`), - id: "error-decoding-manifest", + id: 'error-decoding-manifest', status: { followUpMessage: TIPS, icon: { label: e.message, type: 'ERROR', }, - } - }); + }, + }) } - }; + } const handleSubmit = ( setLogEntries: React.Dispatch<React.SetStateAction<LogEntryItem[]>>, event: React.FormEvent<HTMLFormElement>, - fieldValue: string + fieldValue: string, ) => { - event.preventDefault(); - setLogEntries([]); - parseAndVerifyManifest(setLogEntries, fieldValue); - }; + event.preventDefault() + setLogEntries([]) + parseAndVerifyManifest(setLogEntries, fieldValue) + } const formProps = { - title: translate("Domain Verification Checker"), + title: translate('Domain Verification Checker'), description: ( <div> - <p> - {translate( - "This tool allows you to verify that domain verification is properly configured." - )} - </p> - <p> - {translate( - "Enter the manifest found in your validator-keys.json file. Do not confuse this with your validator's secret key." - )} - </p> - <p> - {translate( - "To do this with the validator-keys-tool use the following command:" - )} - </p> + <p>{translate('This tool allows you to verify that domain verification is properly configured.')}</p> + <p>{translate("Enter the manifest found in your validator-keys.json file. Do not confuse this with your validator's secret key.")}</p> + <p>{translate('To do this with the validator-keys-tool use the following command:')}</p> <pre> <code>$ validator-keys show_manifest hex</code> </pre> </div> ), - buttonDescription: translate("Verify"), - formPlaceholder: translate("Your Manifest Here"), + buttonDescription: translate('Verify'), + formPlaceholder: translate('Your Manifest Here'), handleSubmit, - }; + } - return <TextLookupForm {...formProps} />; -}; + return <TextLookupForm {...formProps} /> +} -export default DomainVerificationPage; +export default DomainVerificationPage diff --git a/resources/dev-tools/faucets.json b/resources/dev-tools/faucets.json index c0a53ab99f..cf4060b73f 100644 --- a/resources/dev-tools/faucets.json +++ b/resources/dev-tools/faucets.json @@ -1,44 +1,44 @@ { - "knownFaucets": [ - { - "id": "faucet-select-testnet", - "wsUrl": "wss://s.altnet.rippletest.net:51233/", - "jsonRpcUrl": "https://s.altnet.rippletest.net:51234/", - "faucetHost": "faucet.altnet.rippletest.net", - "shortName": "Testnet", - "desc": "Mainnet-like network for testing applications." - }, - { - "id": "faucet-select-devnet", - "wsUrl": "wss://s.devnet.rippletest.net:51233/", - "jsonRpcUrl": "https://s.devnet.rippletest.net:51234/", - "faucetHost": "faucet.devnet.rippletest.net", - "shortName": "Devnet", - "desc": "Preview of upcoming amendments." - }, - { - "id": "faucet-select-xahau", - "wsUrl": "wss://xahau-test.net/", - "jsonRpcUrl": "https://xahau-test.net/", - "faucetHost": "xahau-test.net", - "shortName": "Xahau-Testnet", - "desc": "Hooks (L1 smart contracts) enabled Xahau testnet." - }, - { - "id": "faucet-select-batch-devnet", - "wsUrl": "wss://batch.nerdnest.xyz", - "jsonRpcUrl": "https://batch.rpc.nerdnest.xyz", - "faucetHost": "batch.faucet.nerdnest.xyz", - "shortName": "Batch-Devnet", - "desc": "Preview of XLS-56d Batch transactions." - }, - { - "id": "faucet-select-lending-devnet", - "wsUrl": "wss://lend.devnet.rippletest.net:51233/", - "jsonRpcUrl": "https://lend.devnet.rippletest.net:51234/", - "faucetHost": "lend-faucet.devnet.rippletest.net", - "shortName": "Lending-Devnet", - "desc": "Preview of XLS-66d Lending Protocol." - } - ] + "knownFaucets": [ + { + "id": "faucet-select-testnet", + "wsUrl": "wss://s.altnet.rippletest.net:51233/", + "jsonRpcUrl": "https://s.altnet.rippletest.net:51234/", + "faucetHost": "faucet.altnet.rippletest.net", + "shortName": "Testnet", + "desc": "Mainnet-like network for testing applications." + }, + { + "id": "faucet-select-devnet", + "wsUrl": "wss://s.devnet.rippletest.net:51233/", + "jsonRpcUrl": "https://s.devnet.rippletest.net:51234/", + "faucetHost": "faucet.devnet.rippletest.net", + "shortName": "Devnet", + "desc": "Preview of upcoming amendments." + }, + { + "id": "faucet-select-xahau", + "wsUrl": "wss://xahau-test.net/", + "jsonRpcUrl": "https://xahau-test.net/", + "faucetHost": "xahau-test.net", + "shortName": "Xahau-Testnet", + "desc": "Hooks (L1 smart contracts) enabled Xahau testnet." + }, + { + "id": "faucet-select-batch-devnet", + "wsUrl": "wss://batch.nerdnest.xyz", + "jsonRpcUrl": "https://batch.rpc.nerdnest.xyz", + "faucetHost": "batch.faucet.nerdnest.xyz", + "shortName": "Batch-Devnet", + "desc": "Preview of XLS-56d Batch transactions." + }, + { + "id": "faucet-select-lending-devnet", + "wsUrl": "wss://lend.devnet.rippletest.net:51233/", + "jsonRpcUrl": "https://lend.devnet.rippletest.net:51234/", + "faucetHost": "lend-faucet.devnet.rippletest.net", + "shortName": "Lending-Devnet", + "desc": "Preview of XLS-66d Lending Protocol." + } + ] } diff --git a/resources/dev-tools/index.page.tsx b/resources/dev-tools/index.page.tsx index 6c0b096d1d..bc03d59904 100644 --- a/resources/dev-tools/index.page.tsx +++ b/resources/dev-tools/index.page.tsx @@ -1,127 +1,117 @@ -import * as React from "react"; -import { useThemeHooks } from '@redocly/theme/core/hooks'; -import { Link } from "@redocly/theme/components/Link/Link"; +import * as React from 'react' +import { useThemeHooks } from '@redocly/theme/core/hooks' +import { Link } from '@redocly/theme/components/Link/Link' export const frontmatter = { seo: { title: 'Dev Tools', - description: "Use these tools to explore, build, and test XRP Ledger technology.", - } -}; + description: 'Use these tools to explore, build, and test XRP Ledger technology.', + }, +} const explorers_tools = [ { - id: "xrp-explorer", - title: "XRPL Explorer", - description: - "View validations of new ledger versions in real-time, or chart the location of servers in the XRP Ledger.", - href: "https://livenet.xrpl.org", - img: require("../../static/img/dev-tools/explorer.png"), + id: 'xrp-explorer', + title: 'XRPL Explorer', + description: 'View validations of new ledger versions in real-time, or chart the location of servers in the XRP Ledger.', + href: 'https://livenet.xrpl.org', + img: require('../../static/img/dev-tools/explorer.png'), }, { - id: "bithomp-explorer", - title: "Bithomp Explorer", - description: - "Explore public ledger data including accounts' transaction history and known names.", - href: "https://bithomp.com/", - img: require("../../static/img/dev-tools/bithomp.png"), + id: 'bithomp-explorer', + title: 'Bithomp Explorer', + description: "Explore public ledger data including accounts' transaction history and known names.", + href: 'https://bithomp.com/', + img: require('../../static/img/dev-tools/bithomp.png'), }, { - id: "xrpscan", - title: "XRPScan", - description: - "Explore ledger activity, view amendment voting in real-time, and get account information. API access is also available.", - href: "https://xrpscan.com/", - img: require("../../static/img/dev-tools/xrpscan.png"), + id: 'xrpscan', + title: 'XRPScan', + description: 'Explore ledger activity, view amendment voting in real-time, and get account information. API access is also available.', + href: 'https://xrpscan.com/', + img: require('../../static/img/dev-tools/xrpscan.png'), }, { - id: "token-list", - title: "Token List", - description: - "See all tokens issued in the XRP Ledger and use preset tools to issue custom tokens at the click of a button.", - href: "https://xrpl.services/tokens", - img: require("../../static/img/dev-tools/tokenlist.png"), + id: 'token-list', + title: 'Token List', + description: 'See all tokens issued in the XRP Ledger and use preset tools to issue custom tokens at the click of a button.', + href: 'https://xrpl.services/tokens', + img: require('../../static/img/dev-tools/tokenlist.png'), }, -]; +] const api_access_tools = [ { - id: "websocket", - title: "WebSocket Tool", - description: - "Send sample requests and get responses from the rippled API.", - href: "/resources/dev-tools/websocket-api-tool", - img: require("../../static/img/dev-tools/websocket-tool.png"), + id: 'websocket', + title: 'WebSocket Tool', + description: 'Send sample requests and get responses from the rippled API.', + href: '/resources/dev-tools/websocket-api-tool', + img: require('../../static/img/dev-tools/websocket-tool.png'), }, { - id: "rpc", - title: "RPC Tool", - description: - "Print raw information about an XRP Ledger account, transaction, or ledger.", - href: "/resources/dev-tools/rpc-tool", - img: require("../../static/img/dev-tools/rpc-tool.png"), + id: 'rpc', + title: 'RPC Tool', + description: 'Print raw information about an XRP Ledger account, transaction, or ledger.', + href: '/resources/dev-tools/rpc-tool', + img: require('../../static/img/dev-tools/rpc-tool.png'), }, { - id: "technical-explorer", - title: "Technical Explorer", - description: "Browse API objects from the ledger with real-time updates.", - href: "https://explorer.xrplf.org/", - img: require("../../static/img/dev-tools/technical-explorer.png"), + id: 'technical-explorer', + title: 'Technical Explorer', + description: 'Browse API objects from the ledger with real-time updates.', + href: 'https://explorer.xrplf.org/', + img: require('../../static/img/dev-tools/technical-explorer.png'), }, { - id: "faucets", - title: "Faucets", - description: - "Get credentials and test-XRP for XRP Ledger Testnet or Devnet.", - href: "/resources/dev-tools/xrp-faucets", - img: require("../../static/img/dev-tools/faucets.png"), + id: 'faucets', + title: 'Faucets', + description: 'Get credentials and test-XRP for XRP Ledger Testnet or Devnet.', + href: '/resources/dev-tools/xrp-faucets', + img: require('../../static/img/dev-tools/faucets.png'), }, { - id: "trasaction-sender", - title: "Transaction Sender", - description: - "Test how your code handles various XRP Ledger transactions by sending them over the Testnet to the address.", - href: "/resources/dev-tools/tx-sender", - img: require("../../static/img/dev-tools/transaction-sender.png"), + id: 'trasaction-sender', + title: 'Transaction Sender', + description: 'Test how your code handles various XRP Ledger transactions by sending them over the Testnet to the address.', + href: '/resources/dev-tools/tx-sender', + img: require('../../static/img/dev-tools/transaction-sender.png'), }, -]; +] const other = [ { - id: "domain", - title: "Domain Verification Checker", + id: 'domain', + title: 'Domain Verification Checker', description: "Verify your validator's domain.", - href: "/resources/dev-tools/domain-verifier", - img: require("../../static/img/dev-tools/domain-checker.png"), + href: '/resources/dev-tools/domain-verifier', + img: require('../../static/img/dev-tools/domain-checker.png'), }, { - id: "xrp-ledger", - title: "xrp-ledger.toml Checker", - description: "Verify that your xrp-ledger.toml file is set up properly.", - href: "/resources/dev-tools/xrp-ledger-toml-checker", - img: require("../../static/img/dev-tools/toml-checker.png"), + id: 'xrp-ledger', + title: 'xrp-ledger.toml Checker', + description: 'Verify that your xrp-ledger.toml file is set up properly.', + href: '/resources/dev-tools/xrp-ledger-toml-checker', + img: require('../../static/img/dev-tools/toml-checker.png'), }, { - id: "binary-visualizer", - title: "Binary Visualizer", - description: - "Parse the XRP Ledger's native binary format with a visual representation breaking down the raw structure into its parts.", - href: "https://richardah.github.io/xrpl-binary-visualizer/", - img: require("../../static/img/dev-tools/binary-visualizer.png"), + id: 'binary-visualizer', + title: 'Binary Visualizer', + description: "Parse the XRP Ledger's native binary format with a visual representation breaking down the raw structure into its parts.", + href: 'https://richardah.github.io/xrpl-binary-visualizer/', + img: require('../../static/img/dev-tools/binary-visualizer.png'), }, { - id: "token-metadata-lookup", - title: "Token Metadata Lookup", - description: - "Query known information about any token issued on the XRP Ledger.", - href: "https://xrplmeta.org/", - img: require("../../static/img/dev-tools/token-metadata.png"), + id: 'token-metadata-lookup', + title: 'Token Metadata Lookup', + description: 'Query known information about any token issued on the XRP Ledger.', + href: 'https://xrplmeta.org/', + img: require('../../static/img/dev-tools/token-metadata.png'), }, -]; +] export default function DevTools() { - const { useTranslate } = useThemeHooks(); - const { translate } = useTranslate(); + const { useTranslate } = useThemeHooks() + const { translate } = useTranslate() return ( <article className="page-dev-tools pt-3 p-md-3"> @@ -129,12 +119,8 @@ export default function DevTools() { <section className="py-20"> <div className="mx-auto text-lg-left"> <div className="d-flex flex-column-reverse"> - <p className="mb-0"> - {translate( - "Use the developer tools to test, explore, and validate XRP Ledger API requests and behavior." - )} - </p> - <h3 className="eyebrow mb-3"> {translate("Dev Tools")}</h3> + <p className="mb-0">{translate('Use the developer tools to test, explore, and validate XRP Ledger API requests and behavior.')}</p> + <h3 className="eyebrow mb-3"> {translate('Dev Tools')}</h3> </div> </div> </section> @@ -152,7 +138,7 @@ export default function DevTools() { aria-controls="explorers" aria-selected="true" > - {translate("Explorers")} + {translate('Explorers')} </button> </li> <li className="nav-item" role="presentation"> @@ -165,7 +151,7 @@ export default function DevTools() { aria-controls="api-access" aria-selected="false" > - {translate("API Access")} + {translate('API Access')} </button> </li> <li className="nav-item" role="presentation"> @@ -178,32 +164,18 @@ export default function DevTools() { aria-controls="other" aria-selected="false" > - {translate("Other")} + {translate('Other')} </button> </li> </ul> </div> <div className="tab-content pt-20"> - <div - className="tab-pane show active" - id="explorers" - role="tabpanel" - aria-labelledby="explorers-tab" - > - <h4> {translate("Explorers")}</h4> + <div className="tab-pane show active" id="explorers" role="tabpanel" aria-labelledby="explorers-tab"> + <h4> {translate('Explorers')}</h4> <div className="row row-cols-1 row-cols-lg-3 card-deck"> {explorers_tools.map((card) => ( - <Link - className="card" - to={card.href} - target="_blank" - rel="noopener noreferrer" - id={card.id} - key={card.id} - > - {card.img && ( - <img src={card.img} alt={`${card.title} Screenshot`} /> - )} + <Link className="card" to={card.href} target="_blank" rel="noopener noreferrer" id={card.id} key={card.id}> + {card.img && <img src={card.img} alt={`${card.title} Screenshot`} />} <div className="card-body"> <h4 className="card-title h5">{translate(card.title)}</h4> <p className="card-text">{translate(card.description)}</p> @@ -213,27 +185,12 @@ export default function DevTools() { ))} </div> </div> - <div - className="tab-pane" - id="api-access" - role="tabpanel" - aria-labelledby="api-access-tab" - > - <h4> {translate("API Access")}</h4> + <div className="tab-pane" id="api-access" role="tabpanel" aria-labelledby="api-access-tab"> + <h4> {translate('API Access')}</h4> <div className="row row-cols-1 row-cols-lg-3 card-deck"> {api_access_tools.map((card) => ( - <Link - className="card" - to={card.href} - target="_blank" - id={card.id} - key={card.id} - > - { - card.img && ( - <img src={card.img} alt={card.title + " Screenshot"} /> - ) - } + <Link className="card" to={card.href} target="_blank" id={card.id} key={card.id}> + {card.img && <img src={card.img} alt={card.title + ' Screenshot'} />} <div className="card-body"> <h4 className="card-title h5">{translate(card.title)}</h4> <p className="card-text">{translate(card.description)}</p> @@ -243,27 +200,12 @@ export default function DevTools() { ))} </div> </div> - <div - className="tab-pane" - id="other" - role="tabpanel" - aria-labelledby="other-tab" - > - <h4> {translate("Other")}</h4> + <div className="tab-pane" id="other" role="tabpanel" aria-labelledby="other-tab"> + <h4> {translate('Other')}</h4> <div className="row row-cols-1 row-cols-lg-3 card-deck"> {other.map((card) => ( - <Link - className="card" - to={card.href} - target="_blank" - id={card.id} - key={card.id} - > - { - card.img && ( - <img src={card.img} alt={card.title + " Screenshot"} /> - ) - } + <Link className="card" to={card.href} target="_blank" id={card.id} key={card.id}> + {card.img && <img src={card.img} alt={card.title + ' Screenshot'} />} <div className="card-body"> <h4 className="card-title h5">{translate(card.title)}</h4> <p className="card-text">{translate(card.description)}</p> @@ -278,35 +220,22 @@ export default function DevTools() { </section> <section className="container-new py-10 px-0"> <div className="col-lg-12 p-6-sm p-10-until-sm br-8 cta-card"> - <img - alt="purple waves" - src={require("../../static/img/backgrounds/cta-home-purple.svg")} - className="d-none-sm cta cta-top-left" - /> - <img - alt="green waves" - src={require("../../static/img/backgrounds/cta-home-green.svg")} - className="cta cta-bottom-right" - /> + <img alt="purple waves" src={require('../../static/img/backgrounds/cta-home-purple.svg')} className="d-none-sm cta cta-top-left" /> + <img alt="green waves" src={require('../../static/img/backgrounds/cta-home-green.svg')} className="cta cta-bottom-right" /> <div className="z-index-1 position-relative"> - <h2 className="h4 mb-8-sm mb-10-until-sm"> - {translate("Have an Idea For a Tool?")} - </h2> + <h2 className="h4 mb-8-sm mb-10-until-sm">{translate('Have an Idea For a Tool?')}</h2> <p className="mb-10"> {translate( - "Contribute to the XRP Ledger community by submitting your idea for a tool or open a pull request if you've developed a tool." + "Contribute to the XRP Ledger community by submitting your idea for a tool or open a pull request if you've developed a tool.", )} </p> - <a - className="btn btn-primary btn-arrow-out" - href="https://github.com/XRPLF/xrpl-dev-portal/" - > - {translate("Open a pull Request")} + <a className="btn btn-primary btn-arrow-out" href="https://github.com/XRPLF/xrpl-dev-portal/"> + {translate('Open a pull Request')} </a> </div> </div> </section> </div> </article> - ); + ) } diff --git a/resources/dev-tools/rpc-tool.page.tsx b/resources/dev-tools/rpc-tool.page.tsx index 660ad04c9e..b010f1bb2e 100644 --- a/resources/dev-tools/rpc-tool.page.tsx +++ b/resources/dev-tools/rpc-tool.page.tsx @@ -1,39 +1,39 @@ -import { useThemeHooks } from '@redocly/theme/core/hooks'; -import { Link } from '@redocly/theme/components/Link/Link'; -import { useState, useEffect } from "react"; -import { useLocation } from "react-router-dom"; +import { useThemeHooks } from '@redocly/theme/core/hooks' +import { Link } from '@redocly/theme/components/Link/Link' +import { useState, useEffect } from 'react' +import { useLocation } from 'react-router-dom' import JsonView from 'react18-json-view' import { Client, isValidAddress } from 'xrpl' -import { RPCResponseGroup } from './components/rpc-tool/rpc-response-group'; -import { clsx } from 'clsx'; +import { RPCResponseGroup } from './components/rpc-tool/rpc-response-group' +import { clsx } from 'clsx' export const frontmatter = { seo: { title: 'RPC Tool', - description: "Quickly query several key details about an XRP Ledger account or transaction", - } -}; + description: 'Quickly query several key details about an XRP Ledger account or transaction', + }, +} export default function RpcTool() { - const { hash: slug } = useLocation(); - const [accountInfoResponse, setAccountInfoResponse] = useState(null); - const [accountLinesResponse, setAccountLinesResponse] = useState(null); - const [accountTxResponse, setAccountTxResponse] = useState(null); - const [accountObjectsResponse, setAccountObjectsResponse] = useState(null); - const [txResponse, setTxResponse] = useState(null); - const [ledgerResponse, setLedgerResponse] = useState(null); - const [inputText, setInputText] = useState(slug ? slug.slice(1) : ""); - const [errorText, setErrorText] = useState(null); - const { useTranslate } = useThemeHooks(); - const { translate } = useTranslate(); - const [inputType, setInputType] = useState(""); - const [showResult, setShowResult] = useState(false); - const [progressBarWidth, setProgressBarWidth] = useState("0%"); + const { hash: slug } = useLocation() + const [accountInfoResponse, setAccountInfoResponse] = useState(null) + const [accountLinesResponse, setAccountLinesResponse] = useState(null) + const [accountTxResponse, setAccountTxResponse] = useState(null) + const [accountObjectsResponse, setAccountObjectsResponse] = useState(null) + const [txResponse, setTxResponse] = useState(null) + const [ledgerResponse, setLedgerResponse] = useState(null) + const [inputText, setInputText] = useState(slug ? slug.slice(1) : '') + const [errorText, setErrorText] = useState(null) + const { useTranslate } = useThemeHooks() + const { translate } = useTranslate() + const [inputType, setInputType] = useState('') + const [showResult, setShowResult] = useState(false) + const [progressBarWidth, setProgressBarWidth] = useState('0%') - const FULL_HISTORY_SERVER = "wss://s2.ripple.com"; - const reTxId = /^[0-9A-Fa-f]{64}$/; - const reLedgerSeq = /^[0-9]+$/; + const FULL_HISTORY_SERVER = 'wss://s2.ripple.com' + const reTxId = /^[0-9A-Fa-f]{64}$/ + const reLedgerSeq = /^[0-9]+$/ /* XRPL requests @@ -45,164 +45,142 @@ export default function RpcTool() { * ledger */ - const accountInfo = async ( - client: Client, - address: string - ): Promise<void> => { + const accountInfo = async (client: Client, address: string): Promise<void> => { const response = await client.request({ - command: "account_info", + command: 'account_info', account: address, - }); - setProgressBarWidth("20%"); - setAccountInfoResponse(response); - }; + }) + setProgressBarWidth('20%') + setAccountInfoResponse(response) + } - const accountLines = async ( - client: Client, - address: string - ): Promise<void> => { + const accountLines = async (client: Client, address: string): Promise<void> => { const response = await client.request({ - command: "account_lines", + command: 'account_lines', account: address, - }); - setProgressBarWidth("40%"); - setAccountLinesResponse(response); - }; + }) + setProgressBarWidth('40%') + setAccountLinesResponse(response) + } - const accountTx = async ( - client: Client, - address: string - ): Promise<void> => { + const accountTx = async (client: Client, address: string): Promise<void> => { const response = await client.request({ - command: "account_tx", + command: 'account_tx', account: address, ledger_index_min: -1, ledger_index_max: -1, binary: false, limit: 20, forward: false, - }); - setProgressBarWidth("60%"); - setAccountTxResponse(response); - }; + }) + setProgressBarWidth('60%') + setAccountTxResponse(response) + } - const accountObjects = async ( - client: Client, - address: string - ): Promise<void> => { + const accountObjects = async (client: Client, address: string): Promise<void> => { const response = await client.request({ - command: "account_objects", + command: 'account_objects', account: address, - }); - setProgressBarWidth("80%"); - setAccountObjectsResponse(response); - }; + }) + setProgressBarWidth('80%') + setAccountObjectsResponse(response) + } - const tx = async ( - client: Client, - transactionId: string - ): Promise<void> => { + const tx = async (client: Client, transactionId: string): Promise<void> => { const response = await client.request({ - command: "tx", + command: 'tx', transaction: transactionId, binary: false, - }); - setProgressBarWidth("100%"); - setTxResponse(response); - }; + }) + setProgressBarWidth('100%') + setTxResponse(response) + } - const ledger = async ( - client: Client, - ledgerSequence: string - ): Promise<void> => { + const ledger = async (client: Client, ledgerSequence: string): Promise<void> => { const response = await client.request({ - command: "ledger", + command: 'ledger', ledger_index: parseInt(ledgerSequence), transactions: true, expand: true, - }); - setProgressBarWidth("100%"); - setLedgerResponse(response); - }; + }) + setProgressBarWidth('100%') + setLedgerResponse(response) + } useEffect(() => { - if (slug && slug !== "") { - getInfo(); + if (slug && slug !== '') { + getInfo() } - }, []); + }, []) const getInfo = async (): Promise<void> => { - setAccountInfoResponse(null); - setAccountLinesResponse(null); - setAccountTxResponse(null); - setAccountObjectsResponse(null); - setTxResponse(null); - setLedgerResponse(null); - setErrorText(null); - setShowResult(true); - setProgressBarWidth("0%"); + setAccountInfoResponse(null) + setAccountLinesResponse(null) + setAccountTxResponse(null) + setAccountObjectsResponse(null) + setTxResponse(null) + setLedgerResponse(null) + setErrorText(null) + setShowResult(true) + setProgressBarWidth('0%') - const client = new Client(FULL_HISTORY_SERVER); - await client.connect(); + const client = new Client(FULL_HISTORY_SERVER) + await client.connect() if (isValidAddress(inputText)) { // Example input: rh3VLyj1GbQjX7eA15BwUagEhSrPHmLkSR - setInputType("accounts"); - setErrorText(""); + setInputType('accounts') + setErrorText('') - setProgressBarWidth("10%"); + setProgressBarWidth('10%') // account_info - await accountInfo(client, inputText); + await accountInfo(client, inputText) // account_lines - await accountLines(client, inputText); + await accountLines(client, inputText) // account_tx - await accountTx(client, inputText); + await accountTx(client, inputText) // account_objects - await accountObjects(client, inputText); - setProgressBarWidth("100%"); + await accountObjects(client, inputText) + setProgressBarWidth('100%') } else if (reTxId.test(inputText)) { // Example input: A25795C88E176FFF85B8D595D1960229F4ACC825BAE634ADF38F6AE38E0D24D8 - setInputType("transactions"); - setErrorText(""); - setProgressBarWidth("10%"); + setInputType('transactions') + setErrorText('') + setProgressBarWidth('10%') // tx - await tx(client, inputText); + await tx(client, inputText) } else if (reLedgerSeq.test(inputText)) { // Example input: 131524184 - setInputType("ledgers"); - setErrorText(""); - setProgressBarWidth("10%"); + setInputType('ledgers') + setErrorText('') + setProgressBarWidth('10%') // ledger - await ledger(client, inputText); + await ledger(client, inputText) } else { - setProgressBarWidth("100%"); + setProgressBarWidth('100%') - setErrorText("Input is not a valid address or transaction hash"); + setErrorText('Input is not a valid address or transaction hash') } - await client.disconnect(); - }; + await client.disconnect() + } return ( <div className="container-fluid rpc-tool" role="document" id="main_content_wrapper"> <div className="row"> - <main - className="main order-md-3" - role="main" - id="main_content_body" - > + <main className="main order-md-3" role="main" id="main_content_body"> <section className="container-fluid pt-3 p-md-3"> <h1>{translate('RPC Tool')}</h1> <div className="content"> <p> {translate( - "This is a debug tool for printing raw information about an account (by classic address), a transaction (by hash) or a ledger (by sequence number)." + 'This is a debug tool for printing raw information about an account (by classic address), a transaction (by hash) or a ledger (by sequence number).', )} </p> <div className="input-group"> @@ -213,32 +191,27 @@ export default function RpcTool() { className="form-control" required type="text" - placeholder={translate( - "XRP Ledger address, transaction ID, or ledger index" - )} + placeholder={translate('XRP Ledger address, transaction ID, or ledger index')} /> </div> <span className="help-block"> <small> - {translate("resourses.rpc-tool.help-block.part1", "Try an account like ")} + {translate('resourses.rpc-tool.help-block.part1', 'Try an account like ')} <em>rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn</em> - {translate("resourses.rpc-tool.help-block.part2", ".")} + {translate('resourses.rpc-tool.help-block.part2', '.')} </small> - </span>  + </span> +   <button className="btn btn-primary" onClick={getInfo}> - {translate("Get info")} + {translate('Get info')} </button> {showResult && ( <div id="result"> - <h2>{translate("Result")}</h2> - <div + <h2>{translate('Result')}</h2> + <div id="progress" className="progress" - style={ - progressBarWidth === "100%" ? - { transition: 'opacity 0.5s ease-out', opacity: 0, } : - { opacity: 1 } - } + style={progressBarWidth === '100%' ? { transition: 'opacity 0.5s ease-out', opacity: 0 } : { opacity: 1 }} > <div className="progress-bar progress-bar-striped progress-bar-animated" @@ -254,33 +227,26 @@ export default function RpcTool() { {translate(errorText)} </div> )} - {errorText === "" && ( + {errorText === '' && ( <ul id="links" className="nav nav-pills"> <li className="nav-link"> - <Link - id="permalink" - to={`/resources/dev-tools/rpc-tool#${inputText}`} - target="_blank" - > - {translate("Permalink")} + <Link id="permalink" to={`/resources/dev-tools/rpc-tool#${inputText}`} target="_blank"> + {translate('Permalink')} </Link> </li> <li className="nav-link"> - <Link - id="explorerlink" - to={`https://livenet.xrpl.org/${inputType}/${inputText}`} - target="_blank" - > - {translate("Explorer")} + <Link id="explorerlink" to={`https://livenet.xrpl.org/${inputType}/${inputText}`} target="_blank"> + {translate('Explorer')} </Link> </li> </ul> )} {txResponse && ( - <RPCResponseGroup response={txResponse} - anchor={<Link to="../../docs/references/http-websocket-apis/public-api-methods/transaction-methods/tx">tx</Link>} - customExpanded={3} - customExpandedText={translate("expand tx")} + <RPCResponseGroup + response={txResponse} + anchor={<Link to="../../docs/references/http-websocket-apis/public-api-methods/transaction-methods/tx">tx</Link>} + customExpanded={3} + customExpandedText={translate('expand tx')} /> )} <div className="group group-account"> @@ -289,37 +255,47 @@ export default function RpcTool() { <h3> <Link to="../../docs/references/http-websocket-apis/public-api-methods/account-methods/account_info">account_info</Link> </h3> - <JsonView - src={accountInfoResponse} - collapsed={1} - collapseStringsAfterLength={100} - enableClipboard={false} - /> + <JsonView src={accountInfoResponse} collapsed={1} collapseStringsAfterLength={100} enableClipboard={false} /> </> )} {accountLinesResponse && ( - <RPCResponseGroup response={accountLinesResponse} - anchor={<Link to="../../docs/references/http-websocket-apis/public-api-methods/account-methods/account_lines">account_lines</Link>} - />) - } + <RPCResponseGroup + response={accountLinesResponse} + anchor={ + <Link to="../../docs/references/http-websocket-apis/public-api-methods/account-methods/account_lines">account_lines</Link> + } + /> + )} {accountTxResponse && ( - <RPCResponseGroup response={accountTxResponse} - anchor={<><Link to="../../docs/references/http-websocket-apis/public-api-methods/account-methods/account_tx">account_tx</Link>{" "} {translate("(last 20)")}</>} - customExpanded={3} - customExpandedText={translate("expand tx")} - />) - } + <RPCResponseGroup + response={accountTxResponse} + anchor={ + <> + <Link to="../../docs/references/http-websocket-apis/public-api-methods/account-methods/account_tx">account_tx</Link>{' '} + {translate('(last 20)')} + </> + } + customExpanded={3} + customExpandedText={translate('expand tx')} + /> + )} {accountObjectsResponse && ( - <RPCResponseGroup response={accountObjectsResponse} - anchor={<Link to="../../docs/references/http-websocket-apis/public-api-methods/account-methods/account_objects">account_objects</Link>} - />) - } + <RPCResponseGroup + response={accountObjectsResponse} + anchor={ + <Link to="../../docs/references/http-websocket-apis/public-api-methods/account-methods/account_objects"> + account_objects + </Link> + } + /> + )} </div> {ledgerResponse && ( - <RPCResponseGroup response={ledgerResponse} - anchor={<Link to="../../docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger">ledger</Link>} - />) - } + <RPCResponseGroup + response={ledgerResponse} + anchor={<Link to="../../docs/references/http-websocket-apis/public-api-methods/ledger-methods/ledger">ledger</Link>} + /> + )} </div> )} </div> @@ -327,5 +303,5 @@ export default function RpcTool() { </main> </div> </div> - ); + ) } diff --git a/resources/dev-tools/toml-checker/ListTomlFields.tsx b/resources/dev-tools/toml-checker/ListTomlFields.tsx index de5af0ee4d..6af2ca61f2 100644 --- a/resources/dev-tools/toml-checker/ListTomlFields.tsx +++ b/resources/dev-tools/toml-checker/ListTomlFields.tsx @@ -1,14 +1,14 @@ import { clsx } from 'clsx' import { Client } from 'xrpl' -import React = require("react"); -import { CLASS_GOOD } from "../components/LogEntry"; -import { AccountFields } from "./XrplToml"; +import React = require('react') +import { CLASS_GOOD } from '../components/LogEntry' +import { AccountFields } from './XrplToml' // Decode a hexadecimal string into a regular string, assuming 8-bit characters. // Not proper unicode decoding, but it'll work for domains which are supposed // to be a subset of ASCII anyway. function decodeHex(hex) { - let str = ''; + let str = '' for (let i = 0; i < hex.length; i += 2) { str += String.fromCharCode(parseInt(hex.substr(i, 2), 16)) } @@ -17,13 +17,13 @@ function decodeHex(hex) { function getWsUrlForNetwork(net: string) { let wsNetworkUrl: string - if (net === "main") { + if (net === 'main') { wsNetworkUrl = 'wss://s1.ripple.com:51233' - } else if (net == "testnet") { + } else if (net == 'testnet') { wsNetworkUrl = 'wss://s.altnet.rippletest.net:51233' - } else if (net === "devnet") { + } else if (net === 'devnet') { wsNetworkUrl = 'wss://s.devnet.rippletest.net:51233/' - } else if (net === "xahau") { + } else if (net === 'xahau') { wsNetworkUrl = 'wss://xahau-test.net:51233' } else { wsNetworkUrl = undefined @@ -32,10 +32,12 @@ function getWsUrlForNetwork(net: string) { } async function validateAddressDomainOnNet(addressToVerify: string, domain: string, net: string) { - if (!domain) { return undefined } // Can't validate an empty domain value - + if (!domain) { + return undefined + } // Can't validate an empty domain value + const wsNetworkUrl = getWsUrlForNetwork(net) - if(!wsNetworkUrl) { + if (!wsNetworkUrl) { console.error(`The XRPL TOML Checker does not currently support verifying addresses on ${net}. Please open an issue to add support for this network.`) return undefined @@ -46,10 +48,10 @@ async function validateAddressDomainOnNet(addressToVerify: string, domain: strin let accountInfoResponse try { accountInfoResponse = await api.request({ - "command": "account_info", - "account": addressToVerify + command: 'account_info', + account: addressToVerify, }) - } catch(e) { + } catch (e) { console.warn(`failed to look up address ${addressToVerify} on ${net} network"`, e) return undefined } finally { @@ -64,99 +66,97 @@ async function validateAddressDomainOnNet(addressToVerify: string, domain: strin let decodedDomain try { decodedDomain = decodeHex(accountInfoResponse.result.account_data.Domain) - } catch(e) { - console.warn("error decoding domain value", accountInfoResponse.result.account_data.Domain, e) + } catch (e) { + console.warn('error decoding domain value', accountInfoResponse.result.account_data.Domain, e) return undefined } - if(decodedDomain) { + if (decodedDomain) { const doesDomainMatch = decodedDomain === domain - if(!doesDomainMatch) { - console.debug(addressToVerify, ": Domain mismatch ("+decodedDomain+" vs. "+domain+")") + if (!doesDomainMatch) { + console.debug(addressToVerify, ': Domain mismatch (' + decodedDomain + ' vs. ' + domain + ')') } return doesDomainMatch } else { - console.debug(addressToVerify, ": Domain is undefined in settings") + console.debug(addressToVerify, ': Domain is undefined in settings') return undefined } } /** * A formatted list item displaying content from a single field of a toml file. - * + * * @param props Field info to display * @returns A formatted list item */ -function FieldListItem(props: { fieldName: string, fieldValue: string}) { - return ( +function FieldListItem(props: { fieldName: string; fieldValue: string }) { + return ( <li key={props.fieldName}> <strong>{props.fieldName}: </strong> - <span className={`fieldName`}> - {props.fieldValue} - </span> - </li>) - } - + <span className={`fieldName`}>{props.fieldValue}</span> + </li> + ) +} + /** - * Get an array of HTML lists that can be used to display toml data. + * Get an array of HTML lists that can be used to display toml data. * If no data exists or none matches the filter it will return an empty array instead. - * + * * @param fields An array of objects to parse into bullet points * @param filter Optional function to filter displayed fields to only ones which return true. */ export async function getListEntries(fields: Object[], filter?: Function, domainToVerify?: string) { const formattedEntries: JSX.Element[] = [] - for(let i = 0; i < fields.length; i++) { + for (let i = 0; i < fields.length; i++) { const entry = fields[i] - if(!filter || filter(entry)) { - + if (!filter || filter(entry)) { const fieldNames = Object.keys(entry) const displayedFields: JSX.Element[] = [] - + fieldNames.forEach((fieldName) => { - if(entry[fieldName] && Array.isArray(entry[fieldName])) { - + if (entry[fieldName] && Array.isArray(entry[fieldName])) { const internalList = [] entry[fieldName].forEach((value) => { - internalList.push( - <FieldListItem key={value} fieldName={fieldName} fieldValue={value}/> - ) + internalList.push(<FieldListItem key={value} fieldName={fieldName} fieldValue={value} />) }) - - displayedFields.push(<ol key={`ol-${displayedFields.length}`}>{internalList}</ol>) + displayedFields.push(<ol key={`ol-${displayedFields.length}`}>{internalList}</ol>) } else { - displayedFields.push( - <FieldListItem key={fieldName} fieldName={fieldName} fieldValue={entry[fieldName]}/> - ) + displayedFields.push(<FieldListItem key={fieldName} fieldName={fieldName} fieldValue={entry[fieldName]} />) } }) const key = `entry-${formattedEntries.length}` const promises = [] - if(domainToVerify) { + if (domainToVerify) { const accountEntry = entry as AccountFields - if(accountEntry.address) { - const net = accountEntry.network ?? "main" - const domainIsValid = validateAddressDomainOnNet(accountEntry.address, domainToVerify, net) + if (accountEntry.address) { + const net = accountEntry.network ?? 'main' + const domainIsValid = validateAddressDomainOnNet(accountEntry.address, domainToVerify, net) domainIsValid.then((wasValidated) => { - if(wasValidated) { + if (wasValidated) { displayedFields.push( - <li className={CLASS_GOOD} key={`${key}-result`}>DOMAIN VALIDATED <i className="fa fa-check-circle"/></li> + <li className={CLASS_GOOD} key={`${key}-result`}> + DOMAIN VALIDATED <i className="fa fa-check-circle" /> + </li>, ) } }) promises.push(domainIsValid) - } + } } await Promise.all(promises) - - formattedEntries.push((<li key={key}> - <ul className={clsx(domainToVerify && 'mb-3')} key={key + "-ul"}>{displayedFields}</ul> - </li>)) + + formattedEntries.push( + <li key={key}> + <ul className={clsx(domainToVerify && 'mb-3')} key={key + '-ul'}> + {displayedFields} + </ul> + </li>, + ) } } return formattedEntries diff --git a/resources/dev-tools/toml-checker/ValidateTomlSteps.tsx b/resources/dev-tools/toml-checker/ValidateTomlSteps.tsx index e8807c616f..0cb3b6de7e 100644 --- a/resources/dev-tools/toml-checker/ValidateTomlSteps.tsx +++ b/resources/dev-tools/toml-checker/ValidateTomlSteps.tsx @@ -1,9 +1,9 @@ -import * as React from 'react'; -import { Link } from "@redocly/theme/components/Link/Link"; -import { parse } from "smol-toml"; -import { getListEntries } from "./ListTomlFields"; -import { addNewLogEntry, updateLogEntry, LogEntryItem, LogEntryStatus } from "../components/LogEntry"; -import { MetadataField, XrplToml, AccountFields, TOML_PATH } from "./XrplToml"; +import * as React from 'react' +import { Link } from '@redocly/theme/components/Link/Link' +import { parse } from 'smol-toml' +import { getListEntries } from './ListTomlFields' +import { addNewLogEntry, updateLogEntry, LogEntryItem, LogEntryStatus } from '../components/LogEntry' +import { MetadataField, XrplToml, AccountFields, TOML_PATH } from './XrplToml' /** * Helper to log a list of fields from a toml file or display a relevant error message. @@ -18,56 +18,51 @@ import { MetadataField, XrplToml, AccountFields, TOML_PATH } from "./XrplToml"; * @returns True if displayed any fields (after applying any given filters) */ async function validateAndDisplayFields( - setLogEntries: React.Dispatch<React.SetStateAction<LogEntryItem[]>>, - headerText: string, - fields?: Object[], - domainToVerify?: string, - filterDisplayedFieldsTo?: Function): Promise<boolean> { + setLogEntries: React.Dispatch<React.SetStateAction<LogEntryItem[]>>, + headerText: string, + fields?: Object[], + domainToVerify?: string, + filterDisplayedFieldsTo?: Function, +): Promise<boolean> { + // Note, apparently this is not an appropriate place + // to call useThemeHooks for translation. + // TODO: Find a way to translate the outputs from this tool. - // Note, apparently this is not an appropriate place - // to call useThemeHooks for translation. - // TODO: Find a way to translate the outputs from this tool. + // If there's no data, do nothing + if (!fields) { + return false + } - // If there's no data, do nothing - if(!fields) { - return false - } - - // Otherwise display all relevant data in the toml file for these field - if(Array.isArray(fields)) { - let icon = undefined; - const formattedEntries = await getListEntries(fields, filterDisplayedFieldsTo, domainToVerify) - const relevantTomlFieldsExist = formattedEntries.length > 0 - if(relevantTomlFieldsExist) { - addNewLogEntry(setLogEntries, - { - message: headerText, - id: headerText, - status: { - followUpMessage: ( - <ol> - {formattedEntries} - </ol> - ), - icon: icon - } - }) - } - return relevantTomlFieldsExist - } else { - // Invalid toml data - addNewLogEntry(setLogEntries, { - message: headerText, - id: headerText, - status: { - icon: { - label: "WRONG TYPE - SHOULD BE TABLE-ARRAY", - type: "ERROR", - } - } - }) - return false + // Otherwise display all relevant data in the toml file for these field + if (Array.isArray(fields)) { + let icon = undefined + const formattedEntries = await getListEntries(fields, filterDisplayedFieldsTo, domainToVerify) + const relevantTomlFieldsExist = formattedEntries.length > 0 + if (relevantTomlFieldsExist) { + addNewLogEntry(setLogEntries, { + message: headerText, + id: headerText, + status: { + followUpMessage: <ol>{formattedEntries}</ol>, + icon: icon, + }, + }) } + return relevantTomlFieldsExist + } else { + // Invalid toml data + addNewLogEntry(setLogEntries, { + message: headerText, + id: headerText, + status: { + icon: { + label: 'WRONG TYPE - SHOULD BE TABLE-ARRAY', + type: 'ERROR', + }, + }, + }) + return false + } } /** @@ -76,59 +71,68 @@ async function validateAndDisplayFields( * @param setLogEntries - A setter to update the logs * @param metadata - Metadata from a toml file being verified */ -function validateAndDisplayMetadata( - setLogEntries: React.Dispatch<React.SetStateAction<LogEntryItem[]>>, - metadata?: MetadataField) { - - if (metadata) { - const metadataId = 'metadata-log' - const metadataLogEntry = { - message: "Metadata section: ", - id: metadataId - } - addNewLogEntry(setLogEntries, metadataLogEntry) - - // Uniquely checks if array, instead of if not array - if (Array.isArray(metadata)) { - updateLogEntry(setLogEntries, {...metadataLogEntry, status: { - icon: { - label: "WRONG TYPE - SHOULD BE TABLE", - type: "ERROR", - }, - }}) - } else { - updateLogEntry(setLogEntries, {...metadataLogEntry, status: { - icon: { - label: "FOUND", - type: "SUCCESS", - }, - }}) - - if (metadata.modified) { - const modifiedLogId = 'modified-date-log' - const modifiedLogEntry = { - message: "Modified date: ", - id: modifiedLogId - } - addNewLogEntry(setLogEntries, modifiedLogEntry) - try { - updateLogEntry(setLogEntries, { ...modifiedLogEntry, status: { - icon: { - label: metadata.modified.toISOString(), - type: "SUCCESS", - }, - }}) - } catch(e) { - updateLogEntry(setLogEntries, { ...modifiedLogEntry, status: { - icon: { - label: "INVALID", - type: "ERROR", - }, - }}) - } - } - } +function validateAndDisplayMetadata(setLogEntries: React.Dispatch<React.SetStateAction<LogEntryItem[]>>, metadata?: MetadataField) { + if (metadata) { + const metadataId = 'metadata-log' + const metadataLogEntry = { + message: 'Metadata section: ', + id: metadataId, } + addNewLogEntry(setLogEntries, metadataLogEntry) + + // Uniquely checks if array, instead of if not array + if (Array.isArray(metadata)) { + updateLogEntry(setLogEntries, { + ...metadataLogEntry, + status: { + icon: { + label: 'WRONG TYPE - SHOULD BE TABLE', + type: 'ERROR', + }, + }, + }) + } else { + updateLogEntry(setLogEntries, { + ...metadataLogEntry, + status: { + icon: { + label: 'FOUND', + type: 'SUCCESS', + }, + }, + }) + + if (metadata.modified) { + const modifiedLogId = 'modified-date-log' + const modifiedLogEntry = { + message: 'Modified date: ', + id: modifiedLogId, + } + addNewLogEntry(setLogEntries, modifiedLogEntry) + try { + updateLogEntry(setLogEntries, { + ...modifiedLogEntry, + status: { + icon: { + label: metadata.modified.toISOString(), + type: 'SUCCESS', + }, + }, + }) + } catch (e) { + updateLogEntry(setLogEntries, { + ...modifiedLogEntry, + status: { + icon: { + label: 'INVALID', + type: 'ERROR', + }, + }, + }) + } + } + } + } } /** @@ -142,99 +146,99 @@ function validateAndDisplayMetadata( * @returns Nothing. */ async function parseXRPLToml( - setLogEntries: React.Dispatch<React.SetStateAction<LogEntryItem[]>>, - tomlData, - addressToVerify?: string, - domain?: string) { + setLogEntries: React.Dispatch<React.SetStateAction<LogEntryItem[]>>, + tomlData, + addressToVerify?: string, + domain?: string, +) { + const parsingTomlLogEntry: LogEntryItem = { + message: 'Parsing TOML data...', + id: 'parsing-toml-data-log', + } + addNewLogEntry(setLogEntries, parsingTomlLogEntry) - const parsingTomlLogEntry: LogEntryItem = { - message: "Parsing TOML data...", - id: 'parsing-toml-data-log', - } - addNewLogEntry(setLogEntries, parsingTomlLogEntry) + let parsed: XrplToml + try { + parsed = parse(tomlData) + updateLogEntry(setLogEntries, { + ...parsingTomlLogEntry, + status: { + icon: { + label: 'SUCCESS', + type: 'SUCCESS', + }, + }, + }) + } catch (e) { + updateLogEntry(setLogEntries, { + ...parsingTomlLogEntry, + status: { + icon: { + label: e, + type: 'ERROR', + }, + }, + }) + return + } - let parsed: XrplToml - try { - parsed = parse(tomlData) - updateLogEntry(setLogEntries, {...parsingTomlLogEntry, status: { - icon: { - label: "SUCCESS", - type: "SUCCESS", - }, - }}) - } catch(e) { - updateLogEntry(setLogEntries, {...parsingTomlLogEntry, status: { - icon: { - label: e, - type: "ERROR", - }, - }}) - return - } + validateAndDisplayMetadata(setLogEntries, parsed.METADATA) - validateAndDisplayMetadata(setLogEntries, parsed.METADATA) + const accountHeader = 'Accounts:' + if (addressToVerify) { + const filterToSpecificAccount = (entry: AccountFields) => entry.address === addressToVerify + const accountFound = await validateAndDisplayFields(setLogEntries, accountHeader, parsed.ACCOUNTS, undefined, filterToSpecificAccount) - const accountHeader = "Accounts:" - if(addressToVerify) { - const filterToSpecificAccount = (entry: AccountFields) => entry.address === addressToVerify - const accountFound = await validateAndDisplayFields( - setLogEntries, - accountHeader, - parsed.ACCOUNTS, - undefined, - filterToSpecificAccount) - - const statusLogId = 'account-found-status-log' - if(accountFound) { - // Then share whether the domain / account pair as a whole has been validated - addNewLogEntry(setLogEntries, { - message: 'Account has been found in TOML file and validated.', - id: statusLogId, - status: { - icon: { - label: "DOMAIN VALIDATED", - type: "SUCCESS", - check: true, - } - } - }) - } else { - // We failed to find any entries which match the account we're looking for - addNewLogEntry(setLogEntries, { - message: "Account:", - id: 'toml-account-entry-log', - status: { - icon: { - label: "NOT FOUND", - type: "ERROR" - } - } - }) - - addNewLogEntry(setLogEntries, { - message: "Account not found in TOML file. Domain cannot be verified.", - id: statusLogId, - status: { - icon: { - label: "VALIDATION FAILED", - type: "ERROR", - } - } - }) - } + const statusLogId = 'account-found-status-log' + if (accountFound) { + // Then share whether the domain / account pair as a whole has been validated + addNewLogEntry(setLogEntries, { + message: 'Account has been found in TOML file and validated.', + id: statusLogId, + status: { + icon: { + label: 'DOMAIN VALIDATED', + type: 'SUCCESS', + check: true, + }, + }, + }) } else { - // The final validation message is displayed under the validated account since in this case we're - // verifying a wallet address, not the toml file itself. - await validateAndDisplayFields(setLogEntries, accountHeader, parsed.ACCOUNTS, domain) + // We failed to find any entries which match the account we're looking for + addNewLogEntry(setLogEntries, { + message: 'Account:', + id: 'toml-account-entry-log', + status: { + icon: { + label: 'NOT FOUND', + type: 'ERROR', + }, + }, + }) - // We then display the rest of the toml as additional information - await validateAndDisplayFields(setLogEntries, "Validators:", parsed.VALIDATORS) - await validateAndDisplayFields(setLogEntries, "Principals:", parsed.PRINCIPALS) - await validateAndDisplayFields(setLogEntries, "Servers:", parsed.SERVERS) - await validateAndDisplayFields(setLogEntries, "Currencies:", parsed.CURRENCIES) + addNewLogEntry(setLogEntries, { + message: 'Account not found in TOML file. Domain cannot be verified.', + id: statusLogId, + status: { + icon: { + label: 'VALIDATION FAILED', + type: 'ERROR', + }, + }, + }) } -} + } else { + // The final validation message is displayed under the validated account since in this case we're + // verifying a wallet address, not the toml file itself. + await validateAndDisplayFields(setLogEntries, accountHeader, parsed.ACCOUNTS, domain) + // We then display the rest of the toml as additional information + await validateAndDisplayFields(setLogEntries, 'Validators:', parsed.VALIDATORS) + await validateAndDisplayFields(setLogEntries, 'Principals:', parsed.PRINCIPALS) + await validateAndDisplayFields(setLogEntries, 'Servers:', parsed.SERVERS) + await validateAndDisplayFields(setLogEntries, 'Currencies:', parsed.CURRENCIES) + } +} /** * Extract and parse a toml file from a url derived via domain. If accountToVerify is @@ -245,50 +249,53 @@ async function parseXRPLToml( * @param domain = The main section of a url - ex. validator.xrpl-labs.com * @param accountToVerify - A wallet to optionally specifically check for. */ -export async function fetchFile( - setLogEntries: React.Dispatch<React.SetStateAction<LogEntryItem[]>>, - domain: string, - accountToVerify?: string) { +export async function fetchFile(setLogEntries: React.Dispatch<React.SetStateAction<LogEntryItem[]>>, domain: string, accountToVerify?: string) { + const url = 'https://' + domain + TOML_PATH + const checkUrlId = `check-url-log` + const logEntry = { + message: `Checking ${url} ...`, + id: checkUrlId, + } + addNewLogEntry(setLogEntries, logEntry) - const url = "https://" + domain + TOML_PATH - const checkUrlId = `check-url-log` - const logEntry = { - message: `Checking ${url} ...`, - id: checkUrlId, - } - addNewLogEntry(setLogEntries, logEntry) - - try { - const data = await fetch(url).then( (response) => { - if (response.status >= 400) { - throw new Error(`Server returned status code ${response.status}`) - } - return response.text() - }) - updateLogEntry(setLogEntries, {...logEntry, status: { - icon: { - label: "FOUND", - type: "SUCCESS", - }, - }}) - - // Continue to the next step of verification - parseXRPLToml(setLogEntries, data, accountToVerify, domain) - - } catch (e) { - const errorUpdate: LogEntryItem = {...logEntry, status: { - icon: { - label: e, - type: "ERROR", - }, - followUpMessage: (<p> - {"Check if the file is actually hosted at the URL above, " - + "check your server's HTTPS settings and certificate, and make sure your server provides the required "} - <Link to="../../docs/references/xrp-ledger-toml#cors-setup">CORS header.</Link> - </p>) - }} - updateLogEntry(setLogEntries, errorUpdate) + try { + const data = await fetch(url).then((response) => { + if (response.status >= 400) { + throw new Error(`Server returned status code ${response.status}`) + } + return response.text() + }) + updateLogEntry(setLogEntries, { + ...logEntry, + status: { + icon: { + label: 'FOUND', + type: 'SUCCESS', + }, + }, + }) + + // Continue to the next step of verification + parseXRPLToml(setLogEntries, data, accountToVerify, domain) + } catch (e) { + const errorUpdate: LogEntryItem = { + ...logEntry, + status: { + icon: { + label: e, + type: 'ERROR', + }, + followUpMessage: ( + <p> + {'Check if the file is actually hosted at the URL above, ' + + "check your server's HTTPS settings and certificate, and make sure your server provides the required "} + <Link to="../../docs/references/xrp-ledger-toml#cors-setup">CORS header.</Link> + </p> + ), + }, } + updateLogEntry(setLogEntries, errorUpdate) + } } /** @@ -296,20 +303,18 @@ export async function fetchFile( * * @param setAccountLogEntries - A setter to update the displayed logs. */ -function displayDecodedWalletLog( - setAccountLogEntries: React.Dispatch<React.SetStateAction<LogEntryItem[]>>,) { - - const logId = 'decoding-domain-hex' - addNewLogEntry(setAccountLogEntries, { - message: 'Decoding domain hex', - id: logId, - status: { - icon: { - label: 'SUCCESS', - type: 'SUCCESS', - }, - } - }) +function displayDecodedWalletLog(setAccountLogEntries: React.Dispatch<React.SetStateAction<LogEntryItem[]>>) { + const logId = 'decoding-domain-hex' + addNewLogEntry(setAccountLogEntries, { + message: 'Decoding domain hex', + id: logId, + status: { + icon: { + label: 'SUCCESS', + type: 'SUCCESS', + }, + }, + }) } /** @@ -319,11 +324,11 @@ function displayDecodedWalletLog( * @returns The decoded string */ function decodeHexWallet(hex: string): string { - let decodedDomain = ''; - for (let i = 0; i < hex.length; i += 2) { - decodedDomain += String.fromCharCode(parseInt(hex.substring(i, i + 2), 16)) - } - return decodedDomain + let decodedDomain = '' + for (let i = 0; i < hex.length; i += 2) { + decodedDomain += String.fromCharCode(parseInt(hex.substring(i, i + 2), 16)) + } + return decodedDomain } /** @@ -334,72 +339,67 @@ function decodeHexWallet(hex: string): string { * @param setAccountLogEntries * @param socket */ -export function fetchWallet( - setAccountLogEntries: React.Dispatch<React.SetStateAction<LogEntryItem[]>>, - accountToVerify: string, - socket?: WebSocket) -{ +export function fetchWallet(setAccountLogEntries: React.Dispatch<React.SetStateAction<LogEntryItem[]>>, accountToVerify: string, socket?: WebSocket) { + // Reset the logs + setAccountLogEntries([]) - // Reset the logs - setAccountLogEntries([]) + const walletLogEntry = { + message: `Checking domain of account`, + id: 'check-domain-account', + } + addNewLogEntry(setAccountLogEntries, walletLogEntry) - const walletLogEntry = { - message: `Checking domain of account`, - id: 'check-domain-account', + const url = 'wss://xrplcluster.com' + if (typeof socket !== 'undefined' && socket.readyState < 2) { + socket.close() + } + + const data = { + command: 'account_info', + account: accountToVerify, + } + socket = new WebSocket(url) + socket.addEventListener('message', (event) => { + let data + // Defaults to error to simplify logic later on + let response: LogEntryStatus = { + icon: { + label: `ERROR`, + type: `ERROR`, + }, } - addNewLogEntry(setAccountLogEntries, walletLogEntry) - - const url = "wss://xrplcluster.com" - if (typeof socket !== "undefined" && socket.readyState < 2) { - socket.close() - } - - const data = { - "command": "account_info", - "account": accountToVerify, - } - socket = new WebSocket(url) - socket.addEventListener('message', (event) => { - let data; - // Defaults to error to simplify logic later on - let response: LogEntryStatus = { - icon: { - label: `ERROR`, - type: `ERROR`, - }, - }; - try { - data = JSON.parse(event.data) - if (data.status === 'success') { - if (data.result.account_data.Domain) { - try { - response = { - icon: { - label: 'SUCCESS', - type: 'SUCCESS', - }, - } - // Continue to the next step of validation - const decodedDomain = decodeHexWallet(data.result.account_data.Domain) - displayDecodedWalletLog(setAccountLogEntries) - fetchFile(setAccountLogEntries, decodedDomain, accountToVerify) - } catch(e) { - console.log(e) - response.followUpMessage = <p>{`Error decoding domain field: ${data.result.account_data.Domain}`}</p> - } - } else { - response.followUpMessage = <p>{"Make sure the account has the Domain field set."}</p> - } - } else { - response.followUpMessage = <p>{"Make sure you are entering a valid XRP Ledger address."}</p> + try { + data = JSON.parse(event.data) + if (data.status === 'success') { + if (data.result.account_data.Domain) { + try { + response = { + icon: { + label: 'SUCCESS', + type: 'SUCCESS', + }, } - updateLogEntry(setAccountLogEntries, { ...walletLogEntry, status: response }) - } catch { - socket.close() - return false + // Continue to the next step of validation + const decodedDomain = decodeHexWallet(data.result.account_data.Domain) + displayDecodedWalletLog(setAccountLogEntries) + fetchFile(setAccountLogEntries, decodedDomain, accountToVerify) + } catch (e) { + console.log(e) + response.followUpMessage = <p>{`Error decoding domain field: ${data.result.account_data.Domain}`}</p> + } + } else { + response.followUpMessage = <p>{'Make sure the account has the Domain field set.'}</p> } - }) - socket.addEventListener('open', () => { - socket.send(JSON.stringify(data)) - }) + } else { + response.followUpMessage = <p>{'Make sure you are entering a valid XRP Ledger address.'}</p> + } + updateLogEntry(setAccountLogEntries, { ...walletLogEntry, status: response }) + } catch { + socket.close() + return false + } + }) + socket.addEventListener('open', () => { + socket.send(JSON.stringify(data)) + }) } diff --git a/resources/dev-tools/toml-checker/XrplToml.tsx b/resources/dev-tools/toml-checker/XrplToml.tsx index 97f7bda3a0..e4d3c539f0 100644 --- a/resources/dev-tools/toml-checker/XrplToml.tsx +++ b/resources/dev-tools/toml-checker/XrplToml.tsx @@ -1,49 +1,49 @@ -export const TOML_PATH = "/.well-known/xrp-ledger.toml" +export const TOML_PATH = '/.well-known/xrp-ledger.toml' export interface AccountFields { - address: string, - network: string, - desc: string + address: string + network: string + desc: string } - + export interface ValidatorFields { - public_key: string, - network: string, - owner_country: string, - server_country: string, - unl: string + public_key: string + network: string + owner_country: string + server_country: string + unl: string } export interface PrincipalFields { - name: string, - email: string, + name: string + email: string } export interface ServerFields { - json_rpc: string, - ws: string, - peer: string, - network: string, + json_rpc: string + ws: string + peer: string + network: string } export interface CurrencyFields { - code: string, - display_decimals: string, - issuer: string, - network: string, - symbol: string + code: string + display_decimals: string + issuer: string + network: string + symbol: string } export interface MetadataField { - // TODO: There could be other fields here, but this is all the existing code used - modified: Date + // TODO: There could be other fields here, but this is all the existing code used + modified: Date } export interface XrplToml { - ACCOUNTS?: AccountFields[], - VALIDATORS?: ValidatorFields[], - PRINCIPALS?: PrincipalFields[], - SERVERS?: ServerFields[], - CURRENCIES?: CurrencyFields[], - METADATA?: MetadataField + ACCOUNTS?: AccountFields[] + VALIDATORS?: ValidatorFields[] + PRINCIPALS?: PrincipalFields[] + SERVERS?: ServerFields[] + CURRENCIES?: CurrencyFields[] + METADATA?: MetadataField } diff --git a/resources/dev-tools/tx-sender.page.tsx b/resources/dev-tools/tx-sender.page.tsx index bba4c79847..458b6d51e3 100644 --- a/resources/dev-tools/tx-sender.page.tsx +++ b/resources/dev-tools/tx-sender.page.tsx @@ -1,454 +1,480 @@ -import * as React from 'react'; +import * as React from 'react' import { useState } from 'react' -import { useThemeHooks } from '@redocly/theme/core/hooks'; -import { Link } from '@redocly/theme/components/Link/Link'; +import { useThemeHooks } from '@redocly/theme/core/hooks' +import { Link } from '@redocly/theme/components/Link/Link' -import { toast, Toaster } from 'react-hot-toast'; -import AlertTemplate from './components/AlertTemplate'; +import { toast, Toaster } from 'react-hot-toast' +import AlertTemplate from './components/AlertTemplate' import { isoTimeToRippleTime, type Client, type Wallet } from 'xrpl' -import { errorNotif, SubmitConstData, timeout, submitAndUpdateUI } from './utils'; +import { errorNotif, SubmitConstData, timeout, submitAndUpdateUI } from './utils' -import { InitButton } from './components/InitButton'; -import { DestinationAddressInput } from './components/DestinationAddressInput'; -import { StatusSidebar } from './components/StatusSidebar'; -import { TransactionButton } from './components/TransactionButton'; +import { InitButton } from './components/InitButton' +import { DestinationAddressInput } from './components/DestinationAddressInput' +import { StatusSidebar } from './components/StatusSidebar' +import { TransactionButton } from './components/TransactionButton' export const frontmatter = { seo: { title: 'Transaction Sender', - description: "Send test transactions to the account of your choice to test how your software handles them.", - } -}; + description: 'Send test transactions to the account of your choice to test how your software handles them.', + }, +} async function onClickCreateEscrow( - submitConstData: SubmitConstData, - sendingWallet: Wallet | undefined, - destinationAddress: string, - durationSeconds: number, - setEscrowWidthPercent: React.Dispatch<React.SetStateAction<number>>, - alsoSendEscrowFinish: boolean) { - if (Number.isNaN(durationSeconds) || durationSeconds < 1) { - errorNotif(submitConstData.alert, "Error: Escrow duration must be a positive number of seconds") - return + submitConstData: SubmitConstData, + sendingWallet: Wallet | undefined, + destinationAddress: string, + durationSeconds: number, + setEscrowWidthPercent: React.Dispatch<React.SetStateAction<number>>, + alsoSendEscrowFinish: boolean, +) { + if (Number.isNaN(durationSeconds) || durationSeconds < 1) { + errorNotif(submitConstData.alert, 'Error: Escrow duration must be a positive number of seconds') + return + } + + // This should never happen + if (sendingWallet === undefined) { + errorNotif(submitConstData.alert, 'Error: No sending wallet specified, so unable to submit EscrowCreate') + return + } + + const finishAfter = isoTimeToRippleTime(new Date()) + durationSeconds + + const escrowCreateResponse = await submitAndUpdateUI(submitConstData, sendingWallet, { + TransactionType: 'EscrowCreate', + Account: sendingWallet.address, + Destination: destinationAddress, + Amount: '1000000', + FinishAfter: finishAfter, + }) + + if (escrowCreateResponse && alsoSendEscrowFinish) { + // Wait until there's a ledger with a close time > FinishAfter + // to submit the EscrowFinish + setEscrowWidthPercent(1) + + const { client } = submitConstData + + let latestCloseTime = -1 + while (latestCloseTime <= finishAfter) { + const secondsLeft = finishAfter - isoTimeToRippleTime(new Date()) + + setEscrowWidthPercent(Math.min(99, Math.max(0, (1 - secondsLeft / durationSeconds) * 100))) + + if (secondsLeft <= 0) { + // System time has advanced past FinishAfter. But is there a new + // enough validated ledger? + latestCloseTime = ( + await client.request({ + command: 'ledger', + ledger_index: 'validated', + }) + ).result.ledger.close_time + } + // Update the progress bar & check again in 1 second. + await timeout(1000) } + setEscrowWidthPercent(0) - // This should never happen - if(sendingWallet === undefined) { - errorNotif(submitConstData.alert, "Error: No sending wallet specified, so unable to submit EscrowCreate") - return - } + if (escrowCreateResponse.result.tx_json.Sequence === undefined) { + errorNotif(submitConstData.alert, 'Error: Unable to get the sequence number from EscrowCreate, so cannot submit an EscrowFinish transaction.') - const finishAfter = isoTimeToRippleTime(new Date()) + durationSeconds - - const escrowCreateResponse = await submitAndUpdateUI(submitConstData, sendingWallet, { - TransactionType: "EscrowCreate", - Account: sendingWallet.address, - Destination: destinationAddress, - Amount: "1000000", - FinishAfter: finishAfter - }) - - if (escrowCreateResponse && alsoSendEscrowFinish) { - // Wait until there's a ledger with a close time > FinishAfter - // to submit the EscrowFinish - setEscrowWidthPercent(1) - - const { client } = submitConstData - - let latestCloseTime = -1 - while (latestCloseTime <= finishAfter) { - const secondsLeft = (finishAfter - isoTimeToRippleTime(new Date())) - - setEscrowWidthPercent(Math.min(99, Math.max(0, (1-(secondsLeft / durationSeconds)) * 100))) - - if (secondsLeft <= 0) { - // System time has advanced past FinishAfter. But is there a new - // enough validated ledger? - latestCloseTime = (await client.request({ - command: "ledger", - "ledger_index": "validated"} - )).result.ledger.close_time - } - // Update the progress bar & check again in 1 second. - await timeout(1000) - } - setEscrowWidthPercent(0) - - if(escrowCreateResponse.result.tx_json.Sequence === undefined) { - - errorNotif(submitConstData.alert, - "Error: Unable to get the sequence number from EscrowCreate, so cannot submit an EscrowFinish transaction.") - - console.error(`EscrowCreate did not return a sequence number. + console.error(`EscrowCreate did not return a sequence number. This may be because we were unable to look up the transaction in a validated ledger. The EscrowCreate response was ${escrowCreateResponse}`) - - } else { - - // Now submit the EscrowFinish - // Future feature: submit from a different sender, just to prove that - // escrows can be finished by a third party - await submitAndUpdateUI(submitConstData, sendingWallet, { - Account: sendingWallet.address, - TransactionType: "EscrowFinish", - Owner: sendingWallet.address, - OfferSequence: escrowCreateResponse.result.tx_json.Sequence - }) - } + } else { + // Now submit the EscrowFinish + // Future feature: submit from a different sender, just to prove that + // escrows can be finished by a third party + await submitAndUpdateUI(submitConstData, sendingWallet, { + Account: sendingWallet.address, + TransactionType: 'EscrowFinish', + Owner: sendingWallet.address, + OfferSequence: escrowCreateResponse.result.tx_json.Sequence, + }) } + } - // Reset in case they click the button again - setEscrowWidthPercent(0) + // Reset in case they click the button again + setEscrowWidthPercent(0) } function TxSenderBody({ alert }: { alert: (message: string, type?: string) => void }): React.JSX.Element { - const { useTranslate } = useThemeHooks(); - const { translate } = useTranslate(); + const { useTranslate } = useThemeHooks() + const { translate } = useTranslate() - const [client, setClient] = useState<Client | undefined>(undefined) + const [client, setClient] = useState<Client | undefined>(undefined) - // Sidebar variables - const [balance, setBalance] = useState(0) - const [sendingWallet, setSendingWallet] = useState<Wallet | undefined>(undefined) - const [connectionReady, setConnectionReady] = useState(false) - const [txHistory, setTxHistory] = useState([]) + // Sidebar variables + const [balance, setBalance] = useState(0) + const [sendingWallet, setSendingWallet] = useState<Wallet | undefined>(undefined) + const [connectionReady, setConnectionReady] = useState(false) + const [txHistory, setTxHistory] = useState([]) - // Used when submitting transactions to trace all transactions in the UI - // We cast here since client may be undefined to begin with, but will never be undefined - // When actually used since all buttons / transactions are disallowed before the Inititalization - // function where Client is defined. (This saves us many unnecessary type assertions later on) - const submitConstData = { - client, - setBalance, - setTxHistory, - alert, - } as SubmitConstData + // Used when submitting transactions to trace all transactions in the UI + // We cast here since client may be undefined to begin with, but will never be undefined + // When actually used since all buttons / transactions are disallowed before the Inititalization + // function where Client is defined. (This saves us many unnecessary type assertions later on) + const submitConstData = { + client, + setBalance, + setTxHistory, + alert, + } as SubmitConstData - // Manage the destinationAddress - const defaultDestinationAddress = "rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe" - const [destinationAddress, setDestinationAddress] = useState(defaultDestinationAddress) - - const [isInitEnabled, setIsInitEnabled] = useState(true) + // Manage the destinationAddress + const defaultDestinationAddress = 'rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe' + const [destinationAddress, setDestinationAddress] = useState(defaultDestinationAddress) - // Partial Payment variables - const [ppWidthPercent, setPpWidthPercent] = useState(0) - const [ppIssuerWallet, setPpIssuerWallet] = useState<Wallet | undefined>(undefined) - const ppCurrencyCode = "BAR" - const partialPaymentParams = { - setPpIssuerWallet, - setPpWidthPercent, - ppCurrencyCode, - } + const [isInitEnabled, setIsInitEnabled] = useState(true) - // Payment button variables - const defaultDropsToSend = 100000 - const [dropsToSendForPayment, setDropsToSendForPayment] = useState(defaultDropsToSend) + // Partial Payment variables + const [ppWidthPercent, setPpWidthPercent] = useState(0) + const [ppIssuerWallet, setPpIssuerWallet] = useState<Wallet | undefined>(undefined) + const ppCurrencyCode = 'BAR' + const partialPaymentParams = { + setPpIssuerWallet, + setPpWidthPercent, + ppCurrencyCode, + } - // Escrow variables - const defaultFinishAfter = 60 - const [finishAfter, setFinishAfter] = useState(defaultFinishAfter) - const [finishEscrowAutomatically, setFinishEscrowAutomatically] = useState(false) - const [escrowWidthPercent, setEscrowWidthPercent] = useState(0) + // Payment button variables + const defaultDropsToSend = 100000 + const [dropsToSendForPayment, setDropsToSendForPayment] = useState(defaultDropsToSend) - // Payment Channel variables - const defaultPaymentChannelAmount = 100000 - const [paymentChannelAmount, setPaymentChannelAmount] = useState(defaultPaymentChannelAmount) + // Escrow variables + const defaultFinishAfter = 60 + const [finishAfter, setFinishAfter] = useState(defaultFinishAfter) + const [finishEscrowAutomatically, setFinishEscrowAutomatically] = useState(false) + const [escrowWidthPercent, setEscrowWidthPercent] = useState(0) - // Issued Currency / Trust Line Variables - const trustCurrencyCode = "FOO" + // Payment Channel variables + const defaultPaymentChannelAmount = 100000 + const [paymentChannelAmount, setPaymentChannelAmount] = useState(defaultPaymentChannelAmount) - const defaultIssueAmount = 100 - const [issueAmount, setIssueAmount] = useState(defaultIssueAmount) + // Issued Currency / Trust Line Variables + const trustCurrencyCode = 'FOO' - const defaultTrustLimit = 100000 - const [trustLimit, setTrustLimit] = useState(defaultTrustLimit) + const defaultIssueAmount = 100 + const [issueAmount, setIssueAmount] = useState(defaultIssueAmount) - const commonTxButtonParams = { - submitConstData, - connectionReady, - sendingWallet - } - - return ( - <div className="row"> - <StatusSidebar balance={balance} sendingWallet={sendingWallet} connectionReady={connectionReady} txHistory={txHistory}/> - - <main className="main col-md-7 col-lg-6 order-md-3 page-tx-sender" role="main" id="main_content_body"> - <section className="container-fluid pt-3 p-md-3"> - <h1>{translate("Transaction Sender")}</h1> - <div className="content"> - <p>{translate("resources.dev-tool.tx-sender.content.part1", "This tool sends transactions to the ")} - <a href="../xrp-faucets">{translate("XRP Testnet")}</a> - {translate("resources.dev-tool.tx-sender.content.part2", " address of your choice so you can test how you monitor and respond to incoming transactions.")} - </p> - <form> - <InitButton - isInitEnabled={isInitEnabled} - toInit={{ - existingClient: client, - alert, - setClient, - setBalance, - setSendingWallet, - setIsInitEnabled, - setConnectionReady, - partialPaymentParams - }}/> + const defaultTrustLimit = 100000 + const [trustLimit, setTrustLimit] = useState(defaultTrustLimit) - <DestinationAddressInput - {...{defaultDestinationAddress, - destinationAddress, - setDestinationAddress, - }}/> + const commonTxButtonParams = { + submitConstData, + connectionReady, + sendingWallet, + } - <h3>{translate("Send Transaction")}</h3> - - {/* Send Payment */} - <TransactionButton - id="send_xrp_payment" - {...commonTxButtonParams} - transaction={ - { - TransactionType: "Payment", - // @ts-expect-error - sendingWallet is guaranteed to be defined by the time this button is clicked. - Account: sendingWallet?.address, - Destination: destinationAddress, - Amount: dropsToSendForPayment.toString() - }} - content= - {{ - buttonText: "Send XRP Payment", - units: "drops of XRP", - longerDescription: (<div>{translate("resources.dev-tool.tx-sender.send-xrp-desc.part1", "Send a ")}<Link to="../../docs/tutorials/how-tos/send-xrp">{translate("resources.dev-tool.tx-sender.send-xrp-desc.part2", "simple XRP-to-XRP payment")}</Link>{translate("resources.dev-tool.tx-sender.send-xrp-desc.part3", ".")}</div>), - }} - inputSettings={ - { - defaultValue: defaultDropsToSend, - setInputValue: setDropsToSendForPayment, - min: 1, - max: 10000000000, - }} - /> - - {/* Partial Payments */} - <TransactionButton - id="send_partial_payment" - {...commonTxButtonParams} - transaction={ - { - TransactionType: "Payment", - // @ts-expect-error - sendingWallet is guaranteed to be defined by the time this button is clicked. - Account: sendingWallet?.address, - Destination: destinationAddress, - Amount: "1000000000000000", // 1 billion XRP - SendMax: { - value: (Math.random()*.01).toPrecision(15), // random very small amount - currency: ppCurrencyCode, - // @ts-expect-error - ppIssuerWallet is guaranteed to be defined by the time this button is clicked. - issuer: ppIssuerWallet?.address - }, - Flags: 0x00020000 // tfPartialPayment - }} - content= - {{ - buttonText: "Send Partial Payment", - units: "drops of XRP", - longerDescription: <div>{translate("Deliver a small amount of XRP with a large ")} - <code>{translate("Amount")}</code>{translate(" value, to test your handling of ")} - <Link to="/docs/concepts/payment-types/partial-payments">{translate("partial payments")}</Link>{translate(".")}</div>, - buttonTitle: "(Please wait for partial payments setup to finish)", - }} - loadingBar={{ - id: "pp_progress", - widthPercent: ppWidthPercent, - description: "(Getting ready to send partial payments)", - defaultOn: true, - }} - /> + return ( + <div className="row"> + <StatusSidebar balance={balance} sendingWallet={sendingWallet} connectionReady={connectionReady} txHistory={txHistory} /> - {/* Escrow */} - <TransactionButton - id="create_escrow" - {...commonTxButtonParams} - transaction={ - { - TransactionType: "EscrowCreate", - // @ts-expect-error - sendingWallet is guaranteed to be defined by the time this button is clicked. - Account: sendingWallet?.address, - Destination: destinationAddress, - Amount: "1000000", - FinishAfter: isoTimeToRippleTime(new Date()) + finishAfter - }} - content= - {{ - buttonText: translate("Create Escrow"), - units: translate("seconds"), - longerDescription: (<div>{translate("Create a ")}<Link to="/docs/concepts/payment-types/escrow">{translate("time-based escrow")}</Link> - {translate(" of 1 XRP for the specified number of seconds.")}</div>), - }} - inputSettings={ - { - defaultValue: defaultFinishAfter, - setInputValue: setFinishAfter, - min: 5, - max: 10000, - }} - loadingBar={{ - id: "escrow_progress", - widthPercent: escrowWidthPercent, - description: translate("(Waiting to release Escrow when it's ready)"), - defaultOn: false, - }} - checkBox={{ - setCheckValue: setFinishEscrowAutomatically, - defaultValue: finishEscrowAutomatically, - description: translate("Finish automatically"), - }} - customOnClick={() => onClickCreateEscrow( - submitConstData, - sendingWallet, - destinationAddress, - finishAfter, - setEscrowWidthPercent, - finishEscrowAutomatically)} - /> + <main className="main col-md-7 col-lg-6 order-md-3 page-tx-sender" role="main" id="main_content_body"> + <section className="container-fluid pt-3 p-md-3"> + <h1>{translate('Transaction Sender')}</h1> + <div className="content"> + <p> + {translate('resources.dev-tool.tx-sender.content.part1', 'This tool sends transactions to the ')} + <a href="../xrp-faucets">{translate('XRP Testnet')}</a> + {translate( + 'resources.dev-tool.tx-sender.content.part2', + ' address of your choice so you can test how you monitor and respond to incoming transactions.', + )} + </p> + <form> + <InitButton + isInitEnabled={isInitEnabled} + toInit={{ + existingClient: client, + alert, + setClient, + setBalance, + setSendingWallet, + setIsInitEnabled, + setConnectionReady, + partialPaymentParams, + }} + /> - {/* Payment Channels + <DestinationAddressInput {...{ defaultDestinationAddress, destinationAddress, setDestinationAddress }} /> + + <h3>{translate('Send Transaction')}</h3> + + {/* Send Payment */} + <TransactionButton + id="send_xrp_payment" + {...commonTxButtonParams} + transaction={{ + TransactionType: 'Payment', + // @ts-expect-error - sendingWallet is guaranteed to be defined by the time this button is clicked. + Account: sendingWallet?.address, + Destination: destinationAddress, + Amount: dropsToSendForPayment.toString(), + }} + content={{ + buttonText: 'Send XRP Payment', + units: 'drops of XRP', + longerDescription: ( + <div> + {translate('resources.dev-tool.tx-sender.send-xrp-desc.part1', 'Send a ')} + <Link to="../../docs/tutorials/how-tos/send-xrp"> + {translate('resources.dev-tool.tx-sender.send-xrp-desc.part2', 'simple XRP-to-XRP payment')} + </Link> + {translate('resources.dev-tool.tx-sender.send-xrp-desc.part3', '.')} + </div> + ), + }} + inputSettings={{ + defaultValue: defaultDropsToSend, + setInputValue: setDropsToSendForPayment, + min: 1, + max: 10000000000, + }} + /> + + {/* Partial Payments */} + <TransactionButton + id="send_partial_payment" + {...commonTxButtonParams} + transaction={{ + TransactionType: 'Payment', + // @ts-expect-error - sendingWallet is guaranteed to be defined by the time this button is clicked. + Account: sendingWallet?.address, + Destination: destinationAddress, + Amount: '1000000000000000', // 1 billion XRP + SendMax: { + value: (Math.random() * 0.01).toPrecision(15), // random very small amount + currency: ppCurrencyCode, + // @ts-expect-error - ppIssuerWallet is guaranteed to be defined by the time this button is clicked. + issuer: ppIssuerWallet?.address, + }, + Flags: 0x00020000, // tfPartialPayment + }} + content={{ + buttonText: 'Send Partial Payment', + units: 'drops of XRP', + longerDescription: ( + <div> + {translate('Deliver a small amount of XRP with a large ')} + <code>{translate('Amount')}</code> + {translate(' value, to test your handling of ')} + <Link to="/docs/concepts/payment-types/partial-payments">{translate('partial payments')}</Link> + {translate('.')} + </div> + ), + buttonTitle: '(Please wait for partial payments setup to finish)', + }} + loadingBar={{ + id: 'pp_progress', + widthPercent: ppWidthPercent, + description: '(Getting ready to send partial payments)', + defaultOn: true, + }} + /> + + {/* Escrow */} + <TransactionButton + id="create_escrow" + {...commonTxButtonParams} + transaction={{ + TransactionType: 'EscrowCreate', + // @ts-expect-error - sendingWallet is guaranteed to be defined by the time this button is clicked. + Account: sendingWallet?.address, + Destination: destinationAddress, + Amount: '1000000', + FinishAfter: isoTimeToRippleTime(new Date()) + finishAfter, + }} + content={{ + buttonText: translate('Create Escrow'), + units: translate('seconds'), + longerDescription: ( + <div> + {translate('Create a ')} + <Link to="/docs/concepts/payment-types/escrow">{translate('time-based escrow')}</Link> + {translate(' of 1 XRP for the specified number of seconds.')} + </div> + ), + }} + inputSettings={{ + defaultValue: defaultFinishAfter, + setInputValue: setFinishAfter, + min: 5, + max: 10000, + }} + loadingBar={{ + id: 'escrow_progress', + widthPercent: escrowWidthPercent, + description: translate("(Waiting to release Escrow when it's ready)"), + defaultOn: false, + }} + checkBox={{ + setCheckValue: setFinishEscrowAutomatically, + defaultValue: finishEscrowAutomatically, + description: translate('Finish automatically'), + }} + customOnClick={() => + onClickCreateEscrow( + submitConstData, + sendingWallet, + destinationAddress, + finishAfter, + setEscrowWidthPercent, + finishEscrowAutomatically, + ) + } + /> + + {/* Payment Channels - Future feature: figure out channel ID and enable a button that creates valid claims for the given payment channel to help test redeeming */} - <TransactionButton - id="create_payment_channel" - {...commonTxButtonParams} - transaction={{ - TransactionType: "PaymentChannelCreate", - // @ts-expect-error - sendingWallet is guaranteed to be defined by the time this button is clicked. - Account: sendingWallet?.address, - Destination: destinationAddress, - Amount: paymentChannelAmount.toString(), - SettleDelay: 30, - // @ts-expect-error - sendingWallet is guaranteed to be defined by the time this button is clicked. - PublicKey: sendingWallet?.publicKey - }} - content={{ - buttonText: translate("Create Payment Channel"), - units: translate("drops of XRP"), - longerDescription: (<div>{translate("Create a ")}<Link to="../../docs/concepts/payment-types/payment-channels">{translate("payment channel")}</Link> - {translate(" and fund it with the specified amount of XRP.")}</div>), - }} - inputSettings={ - { - defaultValue: defaultPaymentChannelAmount, - setInputValue: setPaymentChannelAmount, - min: 1, - max: 10000000000, - }} - /> - - {/* Send Issued Currency */} - {/* Future feature: Add ability to configure custom currency codes */} - <TransactionButton - id="send_issued_currency" - {...commonTxButtonParams} - transaction={ - { - TransactionType: "Payment", - // @ts-expect-error - sendingWallet is guaranteed to be defined by the time this button is clicked. - Account: sendingWallet?.address, - Destination: destinationAddress, - Amount: { - currency: trustCurrencyCode, - value: issueAmount?.toString(), - // @ts-expect-error - sendingWallet is guaranteed to be defined by the time this button is clicked. - issuer: sendingWallet?.address - } - }} - content={{ - buttonText: translate("Send Issued Currency"), - units: translate(trustCurrencyCode), - longerDescription: (<div>{translate("Your destination address needs a ")} - <Link to="../../docs/concepts/tokens/fungible-tokens#trust-lines">{translate("trust line")}</Link>{translate(" to ")} - <span className="sending-address-item">{translate("(the test sender)")}</span> - {translate(" for the currency in question. Otherwise, you'll get tecPATH_DRY.")}</div>), - }} - inputSettings={ - { - defaultValue: defaultIssueAmount, - setInputValue: setIssueAmount, - min: 1, - max: 10000000000, - }} - /> - - {/* Create Trust Line */} - <TransactionButton - id="trust_for" - {...commonTxButtonParams} - transaction={ - { - TransactionType: "TrustSet", - // @ts-expect-error - sendingWallet is guaranteed to be defined by the time this button is clicked. - Account: sendingWallet?.address, - LimitAmount: { - currency: trustCurrencyCode, - value: trustLimit.toString(), - issuer: destinationAddress - } - }} - content={{ - buttonText: translate("Trust for"), - units: translate(trustCurrencyCode), - longerDescription: (<div>{translate("The test sender creates a ")} - <Link to="../../docs/concepts/tokens/fungible-tokens#trust-lines">{translate("trust line")}</Link> - {translate(" to your account for the given currency.")}</div>), - }} - inputSettings={ - { - defaultValue: defaultTrustLimit, - setInputValue: setTrustLimit, - min: 1, - max: 10000000000, - }} - /> - </form> + <TransactionButton + id="create_payment_channel" + {...commonTxButtonParams} + transaction={{ + TransactionType: 'PaymentChannelCreate', + // @ts-expect-error - sendingWallet is guaranteed to be defined by the time this button is clicked. + Account: sendingWallet?.address, + Destination: destinationAddress, + Amount: paymentChannelAmount.toString(), + SettleDelay: 30, + // @ts-expect-error - sendingWallet is guaranteed to be defined by the time this button is clicked. + PublicKey: sendingWallet?.publicKey, + }} + content={{ + buttonText: translate('Create Payment Channel'), + units: translate('drops of XRP'), + longerDescription: ( + <div> + {translate('Create a ')} + <Link to="../../docs/concepts/payment-types/payment-channels">{translate('payment channel')}</Link> + {translate(' and fund it with the specified amount of XRP.')} </div> - </section> - </main> - </div> - ) + ), + }} + inputSettings={{ + defaultValue: defaultPaymentChannelAmount, + setInputValue: setPaymentChannelAmount, + min: 1, + max: 10000000000, + }} + /> + + {/* Send Issued Currency */} + {/* Future feature: Add ability to configure custom currency codes */} + <TransactionButton + id="send_issued_currency" + {...commonTxButtonParams} + transaction={{ + TransactionType: 'Payment', + // @ts-expect-error - sendingWallet is guaranteed to be defined by the time this button is clicked. + Account: sendingWallet?.address, + Destination: destinationAddress, + Amount: { + currency: trustCurrencyCode, + value: issueAmount?.toString(), + // @ts-expect-error - sendingWallet is guaranteed to be defined by the time this button is clicked. + issuer: sendingWallet?.address, + }, + }} + content={{ + buttonText: translate('Send Issued Currency'), + units: translate(trustCurrencyCode), + longerDescription: ( + <div> + {translate('Your destination address needs a ')} + <Link to="../../docs/concepts/tokens/fungible-tokens#trust-lines">{translate('trust line')}</Link> + {translate(' to ')} + <span className="sending-address-item">{translate('(the test sender)')}</span> + {translate(" for the currency in question. Otherwise, you'll get tecPATH_DRY.")} + </div> + ), + }} + inputSettings={{ + defaultValue: defaultIssueAmount, + setInputValue: setIssueAmount, + min: 1, + max: 10000000000, + }} + /> + + {/* Create Trust Line */} + <TransactionButton + id="trust_for" + {...commonTxButtonParams} + transaction={{ + TransactionType: 'TrustSet', + // @ts-expect-error - sendingWallet is guaranteed to be defined by the time this button is clicked. + Account: sendingWallet?.address, + LimitAmount: { + currency: trustCurrencyCode, + value: trustLimit.toString(), + issuer: destinationAddress, + }, + }} + content={{ + buttonText: translate('Trust for'), + units: translate(trustCurrencyCode), + longerDescription: ( + <div> + {translate('The test sender creates a ')} + <Link to="../../docs/concepts/tokens/fungible-tokens#trust-lines">{translate('trust line')}</Link> + {translate(' to your account for the given currency.')} + </div> + ), + }} + inputSettings={{ + defaultValue: defaultTrustLimit, + setInputValue: setTrustLimit, + min: 1, + max: 10000000000, + }} + /> + </form> + </div> + </section> + </main> + </div> + ) } // Wrapper to allow for dynamic alerts when transactions complete export default function TxSender(): React.JSX.Element { - const alert = (message: string, type: string = 'info') => { - toast.custom((t) => ( - <AlertTemplate - message={message} - options={{ type }} - style={{}} - close={() => { - toast.dismiss(t.id); - toast.remove(t.id); - }} - /> - ), { - duration: 7000, - position: 'bottom-right', - }); - }; - - return ( - <> - <TxSenderBody alert={alert} /> - <Toaster - containerStyle={{ - bottom: 8, - right: 8, - }} - /> - </> + const alert = (message: string, type: string = 'info') => { + toast.custom( + (t) => ( + <AlertTemplate + message={message} + options={{ type }} + style={{}} + close={() => { + toast.dismiss(t.id) + toast.remove(t.id) + }} + /> + ), + { + duration: 7000, + position: 'bottom-right', + }, ) -} \ No newline at end of file + } + + return ( + <> + <TxSenderBody alert={alert} /> + <Toaster + containerStyle={{ + bottom: 8, + right: 8, + }} + /> + </> + ) +} diff --git a/resources/dev-tools/utils.tsx b/resources/dev-tools/utils.tsx index c696e1b794..bd3af102b8 100644 --- a/resources/dev-tools/utils.tsx +++ b/resources/dev-tools/utils.tsx @@ -2,99 +2,106 @@ import * as React from 'react' import { type Client, type Wallet, type Transaction, type TransactionMetadata, type TxResponse, SubmittableTransaction } from 'xrpl' import { clsx } from 'clsx' - -export const TESTNET_URL = "wss://s.altnet.rippletest.net:51233" +export const TESTNET_URL = 'wss://s.altnet.rippletest.net:51233' export function timeout(ms: number): Promise<void> { - return new Promise(resolve => setTimeout(resolve, ms)); + return new Promise((resolve) => setTimeout(resolve, ms)) } // Displaying transaction data export function errorNotif(alert: (message: string, type?: string) => void, msg: string): void { console.log(msg) - alert(msg, 'error'); + alert(msg, 'error') } export function successNotif(alert: (message: string, type?: string) => void, msg: string): void { - console.log(msg) - alert(msg, 'success') + console.log(msg) + alert(msg, 'success') } export function logTx(txName: string, hash: string, finalResult: string, setTxHistory: React.Dispatch<React.SetStateAction<React.JSX.Element[]>>) { - let classes - let icon - const txLink = "https://testnet.xrpl.org/transactions/" + hash - if (finalResult === "tesSUCCESS") { - classes = "text-muted" - icon = <i className="fa fa-check-circle"/> - } else { - classes = "list-group-item-danger" - icon = <i className="fa fa-times-circle"/> - } - const li = <li key={hash} className={clsx("list-group-item fade-in p-1", classes)}> - {icon} {txName}: <a href={txLink} target="_blank" className="external-link">{hash}</a> + let classes + let icon + const txLink = 'https://testnet.xrpl.org/transactions/' + hash + if (finalResult === 'tesSUCCESS') { + classes = 'text-muted' + icon = <i className="fa fa-check-circle" /> + } else { + classes = 'list-group-item-danger' + icon = <i className="fa fa-times-circle" /> + } + const li = ( + <li key={hash} className={clsx('list-group-item fade-in p-1', classes)}> + {icon} {txName}:{' '} + <a href={txLink} target="_blank" className="external-link"> + {hash} + </a> </li> + ) - setTxHistory((prevState) => [li].concat(prevState)) + setTxHistory((prevState) => [li].concat(prevState)) } // All unchanging information needed to submit & log data export interface SubmitConstData { - client: Client, - setBalance: React.Dispatch<React.SetStateAction<number>>, - setTxHistory: React.Dispatch<React.SetStateAction<React.JSX.Element[]>>, - alert: (message: string, type?: string) => void + client: Client + setBalance: React.Dispatch<React.SetStateAction<number>> + setTxHistory: React.Dispatch<React.SetStateAction<React.JSX.Element[]>> + alert: (message: string, type?: string) => void } export async function submitAndUpdateUI( - submitConstData: SubmitConstData, - sendingWallet: Wallet, - tx: SubmittableTransaction, - silent: boolean = false): Promise<TxResponse<Transaction> | undefined> { + submitConstData: SubmitConstData, + sendingWallet: Wallet, + tx: SubmittableTransaction, + silent: boolean = false, +): Promise<TxResponse<Transaction> | undefined> { + const { client, setBalance, setTxHistory } = submitConstData - const { client, setBalance, setTxHistory } = submitConstData - - let prepared; - try { - // Auto-fill fields like Fee and Sequence - prepared = await client.autofill(tx) - console.debug("Prepared:", prepared) - } catch(error) { - console.log(error) - if (!silent) { - errorNotif(alert, "Error preparing tx: "+error) - } - return - } - - try { - const {tx_blob, hash} = sendingWallet.sign(prepared) - const result = await client.submitAndWait(tx_blob) - console.log("The result of submitAndWait is ", result) - let finalResult = (result.result.meta as TransactionMetadata).TransactionResult - if (!silent) { - if (finalResult === "tesSUCCESS") { - successNotif(submitConstData.alert, `${tx.TransactionType} tx succeeded (hash: ${hash})`) - } else { - errorNotif(submitConstData.alert, `${tx.TransactionType} tx failed with code ${finalResult} - (hash: ${hash})`) - } - logTx(tx.TransactionType, hash, finalResult, setTxHistory) - } - - setBalance(await client.getXrpBalance(sendingWallet.address)) - return result - } catch (error) { - console.log(error) - if (!silent) { - errorNotif(submitConstData.alert, `Error signing & submitting ${tx.TransactionType} tx: ${error}`) - } - - setBalance(await client.getXrpBalance(sendingWallet.address)) - return + let prepared + try { + // Auto-fill fields like Fee and Sequence + prepared = await client.autofill(tx) + console.debug('Prepared:', prepared) + } catch (error) { + console.log(error) + if (!silent) { + errorNotif(alert, 'Error preparing tx: ' + error) } + return } -export function canSendTransaction(connectionReady: boolean, sendingAddress: string | undefined): boolean { - return connectionReady && !!sendingAddress + try { + const { tx_blob, hash } = sendingWallet.sign(prepared) + const result = await client.submitAndWait(tx_blob) + console.log('The result of submitAndWait is ', result) + let finalResult = (result.result.meta as TransactionMetadata).TransactionResult + if (!silent) { + if (finalResult === 'tesSUCCESS') { + successNotif(submitConstData.alert, `${tx.TransactionType} tx succeeded (hash: ${hash})`) + } else { + errorNotif( + submitConstData.alert, + `${tx.TransactionType} tx failed with code ${finalResult} + (hash: ${hash})`, + ) + } + logTx(tx.TransactionType, hash, finalResult, setTxHistory) + } + + setBalance(await client.getXrpBalance(sendingWallet.address)) + return result + } catch (error) { + console.log(error) + if (!silent) { + errorNotif(submitConstData.alert, `Error signing & submitting ${tx.TransactionType} tx: ${error}`) + } + + setBalance(await client.getXrpBalance(sendingWallet.address)) + return + } +} + +export function canSendTransaction(connectionReady: boolean, sendingAddress: string | undefined): boolean { + return connectionReady && !!sendingAddress } diff --git a/resources/dev-tools/websocket-api-tool.page.tsx b/resources/dev-tools/websocket-api-tool.page.tsx index e491cafd34..fd257471b5 100644 --- a/resources/dev-tools/websocket-api-tool.page.tsx +++ b/resources/dev-tools/websocket-api-tool.page.tsx @@ -1,82 +1,79 @@ -import { useEffect, useState, useRef } from 'react'; -import { useLocation } from "react-router-dom"; -import { useThemeHooks } from '@redocly/theme/core/hooks'; -import { Link } from "@redocly/theme/components/Link/Link"; -import { - JsonParam, - StringParam, - useQueryParams, - withDefault, - QueryParamProvider -} from "use-query-params" -import { ReactRouter6Adapter } from 'use-query-params/adapters/react-router-6'; +import { useEffect, useState, useRef } from 'react' +import { useLocation } from 'react-router-dom' +import { useThemeHooks } from '@redocly/theme/core/hooks' +import { Link } from '@redocly/theme/components/Link/Link' +import { JsonParam, StringParam, useQueryParams, withDefault, QueryParamProvider } from 'use-query-params' +import { ReactRouter6Adapter } from 'use-query-params/adapters/react-router-6' -import { PermalinkButton } from './components/websocket-api/permalink-modal'; -import { CurlButton } from './components/websocket-api/curl-modal'; -import { ConnectionModal } from "./components/websocket-api/connection-modal"; +import { PermalinkButton } from './components/websocket-api/permalink-modal' +import { CurlButton } from './components/websocket-api/curl-modal' +import { ConnectionModal } from './components/websocket-api/connection-modal' -import { RightSideBar } from "./components/websocket-api/right-sidebar"; -import { slugify } from "./components/websocket-api/slugify"; -import { JsonEditor } from '../../shared/editor/json-editor'; -import { CommandGroup, CommandMethod } from './components/websocket-api/types'; +import { RightSideBar } from './components/websocket-api/right-sidebar' +import { slugify } from './components/websocket-api/slugify' +import { JsonEditor } from '../../shared/editor/json-editor' +import { CommandGroup, CommandMethod } from './components/websocket-api/types' -import commandList from "./components/websocket-api/data/command-list.json"; -import connections from "./components/websocket-api/data/connections.json"; -import XRPLoader from '../../@theme/components/XRPLoader'; -import { ClioOnlyNotice } from './components/websocket-api/ClioOnly'; +import commandList from './components/websocket-api/data/command-list.json' +import connections from './components/websocket-api/data/connections.json' +import XRPLoader from '../../@theme/components/XRPLoader' +import { ClioOnlyNotice } from './components/websocket-api/ClioOnly' export const frontmatter = { seo: { title: 'WebSocket API Tool', - description: "Interact directly with XRP Ledger servers using the WebSocket API with this handy tool.", - } -}; + description: 'Interact directly with XRP Ledger servers using the WebSocket API with this handy tool.', + }, +} export function WebsocketApiTool() { - const [params, setParams] = useQueryParams({ server: withDefault(StringParam, null), - req: withDefault(JsonParam, null) + req: withDefault(JsonParam, null), }) - const { hash: slug } = useLocation(); - const { useTranslate } = useThemeHooks(); - const { translate } = useTranslate(); - const [isConnectionModalVisible, setIsConnectionModalVisible] = - useState(false); - const [selectedConnection, setSelectedConnection] = useState((params.server) ? connections.find((connection) => { return connection?.ws_url === params.server }) : connections[0]); const [connected, setConnected] = useState(false); - const [connectionError, setConnectionError] = useState(false); - const [keepLast, setKeepLast] = useState(50); - const [streamPaused, setStreamPaused] = useState(false); - const streamPausedRef = useRef(streamPaused); - const [wsLoading, setWsLoading] = useState(false); - const [sendLoading, setSendLoading] = useState(false); + const { hash: slug } = useLocation() + const { useTranslate } = useThemeHooks() + const { translate } = useTranslate() + const [isConnectionModalVisible, setIsConnectionModalVisible] = useState(false) + const [selectedConnection, setSelectedConnection] = useState( + params.server + ? connections.find((connection) => { + return connection?.ws_url === params.server + }) + : connections[0], + ) + const [connected, setConnected] = useState(false) + const [connectionError, setConnectionError] = useState(false) + const [keepLast, setKeepLast] = useState(50) + const [streamPaused, setStreamPaused] = useState(false) + const streamPausedRef = useRef(streamPaused) + const [wsLoading, setWsLoading] = useState(false) + const [sendLoading, setSendLoading] = useState(false) const getInitialMethod = (): CommandMethod => { - for (const group of (commandList as CommandGroup[])) { + for (const group of commandList as CommandGroup[]) { for (const method of group.methods) { if (params.req?.command === method.body.command) { return method } } } - return commandList[0].methods[0] as CommandMethod; - }; + return commandList[0].methods[0] as CommandMethod + } const setMethod = (method: CommandMethod) => { setCurrentMethod(method) setCurrentBody(JSON.stringify(method.body, null, 2)) } - const [currentMethod, setCurrentMethod] = useState<CommandMethod>(getInitialMethod); - const [currentBody, setCurrentBody] = useState( - JSON.stringify(params.req || currentMethod.body, null, 2) - ); - streamPausedRef.current = streamPaused; + const [currentMethod, setCurrentMethod] = useState<CommandMethod>(getInitialMethod) + const [currentBody, setCurrentBody] = useState(JSON.stringify(params.req || currentMethod.body, null, 2)) + streamPausedRef.current = streamPaused useEffect(() => { if (slug) { - for (const group of (commandList as CommandGroup[])) { + for (const group of commandList as CommandGroup[]) { for (const method of group.methods) { if (slug.slice(1) === slugify(method.name)) { setMethod(method) @@ -88,175 +85,137 @@ export function WebsocketApiTool() { }, [slug]) const handleCurrentBodyChange = (value: any) => { - setCurrentBody(value); - }; + setCurrentBody(value) + } const handleKeepLastChange = (event) => { - const newValue = event.target.value; - setKeepLast(newValue); - }; + const newValue = event.target.value + setKeepLast(newValue) + } const openConnectionModal = () => { - setIsConnectionModalVisible(true); - }; + setIsConnectionModalVisible(true) + } const closeConnectionModal = () => { - setIsConnectionModalVisible(false); - }; + setIsConnectionModalVisible(false) + } - const [ws, setWs] = useState(null); - const [responses, setResponses] = useState([]); + const [ws, setWs] = useState(null) + const [responses, setResponses] = useState([]) useEffect(() => { if (ws && ws.readyState < 2) { - ws.close(); + ws.close() } - const newWs = new WebSocket(selectedConnection.ws_url); - setWs(newWs); - setWsLoading(true); + const newWs = new WebSocket(selectedConnection.ws_url) + setWs(newWs) + setWsLoading(true) newWs.onopen = function handleOpen(event) { - setConnected(true); - setConnectionError(false); - setWsLoading(false); - }; + setConnected(true) + setConnectionError(false) + setWsLoading(false) + } newWs.onclose = function handleClose(event) { if (event.wasClean) { - setConnected(false); - setWsLoading(false); + setConnected(false) + setWsLoading(false) } else { - console.debug( - "socket close event discarded (new socket status already provided):", - event - ); + console.debug('socket close event discarded (new socket status already provided):', event) } - }; + } newWs.onerror = function handleError(event) { - setConnectionError(true); - setWsLoading(false); - console.error("socket error:", event); - }; + setConnectionError(true) + setWsLoading(false) + console.error('socket error:', event) + } newWs.onmessage = function handleMessage(event) { - const message = event.data; - let data; + const message = event.data + let data try { - data = JSON.parse(message); + data = JSON.parse(message) } catch (error) { - console.error("Error parsing validation message", error); - return; + console.error('Error parsing validation message', error) + return } - if (data.type === "response") { - setSendLoading(false); + if (data.type === 'response') { + setSendLoading(false) } - if (data.type === "response" || !streamPausedRef.current) { - setResponses((prevResponses) => - [JSON.stringify(data, null, 2)].concat(prevResponses) - ); + if (data.type === 'response' || !streamPausedRef.current) { + setResponses((prevResponses) => [JSON.stringify(data, null, 2)].concat(prevResponses)) } - }; + } return () => { - newWs.close(); - }; - }, [selectedConnection.ws_url]); + newWs.close() + } + }, [selectedConnection.ws_url]) useEffect(() => { if (responses.length > keepLast) { - setResponses(responses.slice(0, keepLast)); + setResponses(responses.slice(0, keepLast)) } - }, [responses, keepLast]); + }, [responses, keepLast]) const sendWebSocketMessage = (messageBody) => { if (!ws || ws.readyState !== WebSocket.OPEN) { - alert("Can't send request: Must be connected first!"); - return; + alert("Can't send request: Must be connected first!") + return } try { - JSON.parse(messageBody); // we only need the text version, but test JSON syntax + JSON.parse(messageBody) // we only need the text version, but test JSON syntax } catch (e) { - alert("Invalid request JSON"); - return; + alert('Invalid request JSON') + return } - setSendLoading(true); + setSendLoading(true) if (ws && ws.readyState === WebSocket.OPEN) { - ws.send(messageBody); + ws.send(messageBody) } - }; + } return ( <div className="container-fluid" role="document" id="main_content_wrapper"> <div className="row"> - <aside - className="right-sidebar col-lg-3 order-lg-4" - role="complementary" - > - <RightSideBar - commandList={commandList} - currentMethod={currentMethod} - setCurrentMethod={setMethod} - /> + <aside className="right-sidebar col-lg-3 order-lg-4" role="complementary"> + <RightSideBar commandList={commandList} currentMethod={currentMethod} setCurrentMethod={setMethod} /> </aside> - <main - className="main col-lg-9" - role="main" - id="main_content_body" - > - <section - className="container-fluid pt-3 p-md-3 websocket-tool" - id="wstool-1" - > - <h1>{translate("WebSocket Tool")}</h1> + <main className="main col-lg-9" role="main" id="main_content_body"> + <section className="container-fluid pt-3 p-md-3 websocket-tool" id="wstool-1"> + <h1>{translate('WebSocket Tool')}</h1> <div className="api-method-description-wrapper"> <h3> - <Link - to={currentMethod.link} - className="selected_command" - > + <Link to={currentMethod.link} className="selected_command"> {currentMethod.name} </Link> </h3> {currentMethod.description && ( - <p - className="blurb" - > + <p className="blurb"> {currentMethod.description} - {currentMethod.clio_only ? - <ClioOnlyNotice /> : "" - } + {currentMethod.clio_only ? <ClioOnlyNotice /> : ''} </p> )} {currentMethod.link && ( - <Link - className="btn btn-outline-secondary api-readmore" - to={currentMethod.link} - > - {translate("Read more")} + <Link className="btn btn-outline-secondary api-readmore" to={currentMethod.link}> + {translate('Read more')} </Link> )} </div> <div className="api-input-area pt-4"> - <h4>{translate("Request")}</h4> + <h4>{translate('Request')}</h4> <div className="request-body"> - <JsonEditor - value={currentBody} - onChange={handleCurrentBodyChange} - /> + <JsonEditor value={currentBody} onChange={handleCurrentBodyChange} /> </div> - <div - className="btn-toolbar justify-content-between pt-4" - role="toolbar" - > + <div className="btn-toolbar justify-content-between pt-4" role="toolbar"> <div className="btn-group mr-3" role="group"> - <button - className="btn btn-outline-secondary send-request" - onClick={() => sendWebSocketMessage(currentBody)} - > - {translate("Send request")} + <button className="btn btn-outline-secondary send-request" onClick={() => sendWebSocketMessage(currentBody)}> + {translate('Send request')} </button> {sendLoading && ( <div className="input-group loader send-loader"> @@ -268,16 +227,14 @@ export function WebsocketApiTool() { </div> <div className="btn-group request-options" role="group"> <button - className={`btn connection ${ - connected ? "btn-success" : "btn-outline-secondary" - } ${connectionError ?? "btn-danger"}`} + className={`btn connection ${connected ? 'btn-success' : 'btn-outline-secondary'} ${connectionError ?? 'btn-danger'}`} onClick={openConnectionModal} data-toggle="modal" data-target="#wstool-1-connection-settings" > {`${selectedConnection.shortname}${ connected ? ` (${translate('Connected')})` : ` (${translate('Not Connected')})` - }${connectionError ? ` (${translate('Failed to Connect')})` : ""}`} + }${connectionError ? ` (${translate('Failed to Connect')})` : ''}`} </button> {isConnectionModalVisible && ( <ConnectionModal @@ -294,31 +251,20 @@ export function WebsocketApiTool() { </span> </div> )} - <PermalinkButton - currentBody={currentBody} - selectedConnection={selectedConnection} - /> - {!currentMethod.ws_only && - (<CurlButton currentBody={currentBody} selectedConnection={selectedConnection}/>) - } + <PermalinkButton currentBody={currentBody} selectedConnection={selectedConnection} /> + {!currentMethod.ws_only && <CurlButton currentBody={currentBody} selectedConnection={selectedConnection} />} </div> </div> </div> <div className="api-response-area pt-4"> - <h4>{translate("Responses")}</h4> + <h4>{translate('Responses')}</h4> - <div - className="btn-toolbar justify-content-between response-options" - role="toolbar" - > + <div className="btn-toolbar justify-content-between response-options" role="toolbar"> <div className="input-group"> <div className="input-group-prepend"> - <div - className="input-group-text" - id="wstool-1-keep-last-label" - > - {translate("Keep last:")} + <div className="input-group-text" id="wstool-1-keep-last-label"> + {translate('Keep last:')} </div> </div> <input @@ -336,7 +282,7 @@ export function WebsocketApiTool() { {!streamPaused && ( <button className="btn btn-outline-secondary stream-pause" - title={translate("Pause Subscriptions")} + title={translate('Pause Subscriptions')} onClick={() => setStreamPaused(true)} > <i className="fa fa-pause"></i> @@ -345,7 +291,7 @@ export function WebsocketApiTool() { {streamPaused && ( <button className="btn btn-outline-secondary stream-unpause" - title={translate("Unpause Subscriptions")} + title={translate('Unpause Subscriptions')} onClick={() => setStreamPaused(false)} > <i className="fa fa-play"></i> @@ -353,7 +299,7 @@ export function WebsocketApiTool() { )} <button className="btn btn-outline-secondary wipe-responses" - title={translate("Delete All Responses")} + title={translate('Delete All Responses')} onClick={() => setResponses([])} > <i className="fa fa-trash"></i> @@ -364,9 +310,7 @@ export function WebsocketApiTool() { <div className="response-body-wrapper"> {responses.map((response, i) => ( <div className="response-metadata" key={response.id + '_' + i}> - <span className="timestamp"> - {new Date().toISOString()} - </span> + <span className="timestamp">{new Date().toISOString()}</span> <div className="response-json"> <JsonEditor value={response} /> </div> @@ -378,11 +322,13 @@ export function WebsocketApiTool() { </main> </div> </div> - ); + ) } export default function Page() { - return <QueryParamProvider adapter={ReactRouter6Adapter}> - <WebsocketApiTool /> - </QueryParamProvider> + return ( + <QueryParamProvider adapter={ReactRouter6Adapter}> + <WebsocketApiTool /> + </QueryParamProvider> + ) } diff --git a/resources/dev-tools/xrp-faucets.page.tsx b/resources/dev-tools/xrp-faucets.page.tsx index f9986a09f2..e861a2b84c 100644 --- a/resources/dev-tools/xrp-faucets.page.tsx +++ b/resources/dev-tools/xrp-faucets.page.tsx @@ -1,77 +1,84 @@ -import { Link } from "@redocly/theme/components/Link/Link"; -import { useThemeHooks } from '@redocly/theme/core/hooks'; -import * as React from 'react'; -import { useState } from 'react'; -import { Client, dropsToXrp, Wallet } from 'xrpl'; -import XRPLoader from '../../@theme/components/XRPLoader'; -import * as faucetData from './faucets.json'; +import { Link } from '@redocly/theme/components/Link/Link' +import { useThemeHooks } from '@redocly/theme/core/hooks' +import * as React from 'react' +import { useState } from 'react' +import { Client, dropsToXrp, Wallet } from 'xrpl' +import XRPLoader from '../../@theme/components/XRPLoader' +import * as faucetData from './faucets.json' export const frontmatter = { seo: { title: 'XRP Faucets', - description: "Get test XRP for use on various non-production networks.", - } -}; - -interface FaucetInfo { - id: string, - wsUrl: string, - jsonRpcUrl: string, - faucetHost: string, - shortName: string, - desc: string, + description: 'Get test XRP for use on various non-production networks.', + }, } -async function waitForSequence(client: Client, address: string): - Promise<{ sequence: string, balance: string }> - { - let response; +interface FaucetInfo { + id: string + wsUrl: string + jsonRpcUrl: string + faucetHost: string + shortName: string + desc: string +} + +async function waitForSequence(client: Client, address: string): Promise<{ sequence: string; balance: string }> { + let response while (true) { try { response = await client.request({ - command: "account_info", + command: 'account_info', account: address, - ledger_index: "validated" + ledger_index: 'validated', }) break - } catch(e) { - await new Promise(resolve => setTimeout(resolve, 1000)) + } catch (e) { + await new Promise((resolve) => setTimeout(resolve, 1000)) } } console.log(response) - return { sequence: response.result.account_data.Sequence, balance: response.result.account_data.Balance} + return { sequence: response.result.account_data.Sequence, balance: response.result.account_data.Balance } } -function FaucetEndpoints({ faucet, givenKey } : { faucet: FaucetInfo, givenKey: string}) { - const { useTranslate } = useThemeHooks(); - const { translate } = useTranslate(); +function FaucetEndpoints({ faucet, givenKey }: { faucet: FaucetInfo; givenKey: string }) { + const { useTranslate } = useThemeHooks() + const { translate } = useTranslate() - return (<div key={givenKey}> - <h4>{faucet.shortName} {translate(`Servers`)}</h4> - <pre> - <code> - // WebSocket<br/> - {faucet.wsUrl}<br/> - <br/> - // JSON-RPC<br/> - {faucet.jsonRpcUrl} - </code> - </pre> - </div>) + return ( + <div key={givenKey}> + <h4> + {faucet.shortName} {translate(`Servers`)} + </h4> + <pre> + <code> + // WebSocket + <br /> + {faucet.wsUrl} + <br /> + <br /> + // JSON-RPC + <br /> + {faucet.jsonRpcUrl} + </code> + </pre> + </div> + ) } function FaucetSidebar({ faucets }: { faucets: FaucetInfo[] }): React.JSX.Element { - return (<aside className="right-sidebar col-lg-6 order-lg-4" role="complementary"> - {faucets.map( - (faucet) => <FaucetEndpoints faucet={faucet} key={faucet.shortName + " Endpoints"} givenKey={faucet.shortName + " Endpoints"}/> - )} - </aside>) + return ( + <aside className="right-sidebar col-lg-6 order-lg-4" role="complementary"> + {faucets.map((faucet) => ( + <FaucetEndpoints faucet={faucet} key={faucet.shortName + ' Endpoints'} givenKey={faucet.shortName + ' Endpoints'} /> + ))} + </aside> + ) } export default function XRPFaucets(): React.JSX.Element { - const { useTranslate } = useThemeHooks(); - const { translate } = useTranslate(); + const { useTranslate } = useThemeHooks() + const { translate } = useTranslate() const faucets: FaucetInfo[] = faucetData.knownFaucets @@ -80,37 +87,64 @@ export default function XRPFaucets(): React.JSX.Element { return ( <div className="container-fluid" role="document" id="main_content_wrapper"> <div className="row"> - <FaucetSidebar faucets={faucets}/> + <FaucetSidebar faucets={faucets} /> <main className="main col-md-7 col-lg-6 order-md-3" role="main" id="main_content_body"> <section className="container-fluid pt-3 p-md-3"> - <h1>{translate("XRP Faucets")}</h1> + <h1>{translate('XRP Faucets')}</h1> <div className="content"> - <p>{translate("resources.dev-tool.faucet.content.part1", "These ")}<Link to="../../docs/concepts/networks-and-servers/parallel-networks">{translate("resources.dev-tool.faucet.content.part2", "parallel XRP Ledger test networks")}</Link> {translate("resources.dev-tool.faucet.content.part3", "provide platforms for testing changes to the XRP Ledger and software built on it, without using real funds.")}</p> - <p>{translate("resources.dev-tool.faucet.content.part4", "These funds are intended for")} <strong>{translate("resources.dev-tool.faucet.content.part5", "testing")}</strong> {translate("resources.dev-tool.faucet.content.part6", "only. Test networks' ledger history and balances are reset as necessary. Devnets may be reset without warning.")}</p> - <p>{translate("resources.dev-tool.faucet.content.part7", "All balances and XRP on these networks are separate from Mainnet. As a precaution, do not use the Testnet or Devnet credentials on the Mainnet.")}</p> - <p> - {translate("resources.dev-tool.faucet.content.part8", "The tool below will generate credentials for you and recharge it immediately; if you want to top up an already existing address, you can do it here:")} - {' '} - <a - className="external-link" - href="https://test.xrplexplorer.com/faucet" - target="_blank" - >test.xrplexplorer.com/faucet</a> - </p> - - <h3>{translate("Choose Network:")}</h3> - { faucets.map((net) => ( - <div className="form-check" key={"network-" + net.shortName}> - <input onChange={() => setSelectedFaucet(net)} className="form-check-input" type="radio" - name="faucet-selector" id={net.id} checked={selectedFaucet.shortName == net.shortName} /> - <label className="form-check-label" htmlFor={net.id}> - <strong>{translate(net.shortName)}</strong>: {translate(net.desc)} - </label> - </div> - )) } + <p> + {translate('resources.dev-tool.faucet.content.part1', 'These ')} + <Link to="../../docs/concepts/networks-and-servers/parallel-networks"> + {translate('resources.dev-tool.faucet.content.part2', 'parallel XRP Ledger test networks')} + </Link>{' '} + {translate( + 'resources.dev-tool.faucet.content.part3', + 'provide platforms for testing changes to the XRP Ledger and software built on it, without using real funds.', + )} + </p> + <p> + {translate('resources.dev-tool.faucet.content.part4', 'These funds are intended for')}{' '} + <strong>{translate('resources.dev-tool.faucet.content.part5', 'testing')}</strong>{' '} + {translate( + 'resources.dev-tool.faucet.content.part6', + "only. Test networks' ledger history and balances are reset as necessary. Devnets may be reset without warning.", + )} + </p> + <p> + {translate( + 'resources.dev-tool.faucet.content.part7', + 'All balances and XRP on these networks are separate from Mainnet. As a precaution, do not use the Testnet or Devnet credentials on the Mainnet.', + )} + </p> + <p> + {translate( + 'resources.dev-tool.faucet.content.part8', + 'The tool below will generate credentials for you and recharge it immediately; if you want to top up an already existing address, you can do it here:', + )}{' '} + <a className="external-link" href="https://test.xrplexplorer.com/faucet" target="_blank"> + test.xrplexplorer.com/faucet + </a> + </p> - <br/> - <TestCredentials selectedFaucet={selectedFaucet} translate={translate}/> + <h3>{translate('Choose Network:')}</h3> + {faucets.map((net) => ( + <div className="form-check" key={'network-' + net.shortName}> + <input + onChange={() => setSelectedFaucet(net)} + className="form-check-input" + type="radio" + name="faucet-selector" + id={net.id} + checked={selectedFaucet.shortName == net.shortName} + /> + <label className="form-check-label" htmlFor={net.id}> + <strong>{translate(net.shortName)}</strong>: {translate(net.desc)} + </label> + </div> + ))} + + <br /> + <TestCredentials selectedFaucet={selectedFaucet} translate={translate} /> </div> </section> </main> @@ -120,27 +154,26 @@ export default function XRPFaucets(): React.JSX.Element { } async function generateFaucetCredentialsAndUpdateUI( - selectedFaucet: FaucetInfo, + selectedFaucet: FaucetInfo, setButtonClicked: React.Dispatch<React.SetStateAction<boolean>>, - setGeneratedCredentialsFaucet: React.Dispatch<React.SetStateAction<string>>, - setAddress: React.Dispatch<React.SetStateAction<string>>, - setSecret: React.Dispatch<React.SetStateAction<string>>, - setBalance: React.Dispatch<React.SetStateAction<string>>, + setGeneratedCredentialsFaucet: React.Dispatch<React.SetStateAction<string>>, + setAddress: React.Dispatch<React.SetStateAction<string>>, + setSecret: React.Dispatch<React.SetStateAction<string>>, + setBalance: React.Dispatch<React.SetStateAction<string>>, setSequence: React.Dispatch<React.SetStateAction<string>>, - translate: (key: string, options?: string) => string): Promise<void> { - + translate: (key: string, options?: string) => string, +): Promise<void> { setButtonClicked(true) // Clear existing credentials setGeneratedCredentialsFaucet(selectedFaucet.shortName) - setAddress("") - setSecret("") - setBalance("") - setSequence("") - + setAddress('') + setSecret('') + setBalance('') + setSequence('') const wallet = Wallet.generate() - + const client = new Client(selectedFaucet.wsUrl) client.apiVersion = 1 // Workaround for networks that don't support APIv2 await client.connect() @@ -149,75 +182,97 @@ async function generateFaucetCredentialsAndUpdateUI( setAddress(wallet.address) setSecret(wallet.seed) - await client.fundWallet(wallet, { faucetHost: selectedFaucet.faucetHost, usageContext: "xrpl.org-faucet" }) + await client.fundWallet(wallet, { faucetHost: selectedFaucet.faucetHost, usageContext: 'xrpl.org-faucet' }) const response = await waitForSequence(client, wallet.address) setSequence(response.sequence) setBalance(response.balance) - } catch (e) { - alert(`${translate('resources.dev-tools.faucet.error.part1', 'There was an error with the ')}${selectedFaucet.shortName}${translate('resources.dev-tools.faucet.error.part2', ' faucet. Please try again.')}`) + alert( + `${translate('resources.dev-tools.faucet.error.part1', 'There was an error with the ')}${selectedFaucet.shortName}${translate('resources.dev-tools.faucet.error.part2', ' faucet. Please try again.')}`, + ) } setButtonClicked(false) } -function TestCredentials({selectedFaucet, translate}) { - - const [generatedCredentialsFaucet, setGeneratedCredentialsFaucet] = useState("") - const [address, setAddress] = useState("") - const [secret, setSecret] = useState("") - const [balance, setBalance] = useState("") - const [sequence, setSequence] = useState("") +function TestCredentials({ selectedFaucet, translate }) { + const [generatedCredentialsFaucet, setGeneratedCredentialsFaucet] = useState('') + const [address, setAddress] = useState('') + const [secret, setSecret] = useState('') + const [balance, setBalance] = useState('') + const [sequence, setSequence] = useState('') const [buttonClicked, setButtonClicked] = useState(false) - return (<div> + return ( + <div> {/* <XRPLGuard> TODO: Re-add this once we find a good way to avoid browser/server mismatch errors */} - <div className="btn-toolbar" role="toolbar" aria-label="Button"> - <button id="generate-creds-button" onClick={ - () => generateFaucetCredentialsAndUpdateUI( - selectedFaucet, - setButtonClicked, - setGeneratedCredentialsFaucet, - setAddress, - setSecret, - setBalance, - setSequence, - translate) - } className="btn btn-primary mr-2 mb-2"> - {`${translate('resources.dev-tools.faucet.cred-btn.part1', 'Generate ')}${selectedFaucet.shortName}${translate('resources.dev-tools.faucet.cred-btn.part2', ' credentials')}`} - </button> - </div> + <div className="btn-toolbar" role="toolbar" aria-label="Button"> + <button + id="generate-creds-button" + onClick={() => + generateFaucetCredentialsAndUpdateUI( + selectedFaucet, + setButtonClicked, + setGeneratedCredentialsFaucet, + setAddress, + setSecret, + setBalance, + setSequence, + translate, + ) + } + className="btn btn-primary mr-2 mb-2" + > + {`${translate('resources.dev-tools.faucet.cred-btn.part1', 'Generate ')}${selectedFaucet.shortName}${translate('resources.dev-tools.faucet.cred-btn.part2', ' credentials')}`} + </button> + </div> {/* </XRPLGuard> */} + {generatedCredentialsFaucet && ( + <div id="your-credentials"> + <h2>{`${translate('resources.dev-tools.faucet.your-cred.part1', 'Your ')}${generatedCredentialsFaucet}${translate('resources.dev-tools.faucet.your-cred.part2', ' Credentials')}`}</h2> + </div> + )} - {generatedCredentialsFaucet && <div id="your-credentials"> - <h2>{`${translate('resources.dev-tools.faucet.your-cred.part1', 'Your ')}${generatedCredentialsFaucet}${translate('resources.dev-tools.faucet.your-cred.part2', ' Credentials')}`}</h2> - </div>} + {buttonClicked && address === '' && <XRPLoader message={translate('Generating keys..')} />} - {(buttonClicked && address === "") && <XRPLoader message={translate("Generating keys..")}/>} + {address && ( + <div id="address"> + <h3>{translate('Address')}</h3> + {address} + </div> + )} - {address && <div id="address"><h3>{translate("Address")}</h3>{address}</div>} + {secret && ( + <div id="secret"> + <h3>{translate('Secret')}</h3> + {secret} + </div> + )} - {secret && <div id="secret"><h3>{translate("Secret")}</h3>{secret}</div>} - - {(address && !balance) && (<div> - <br/> - <XRPLoader message={translate("Funding account...")}/> - </div>)} - - {balance && <div id="balance"> - <h3>{translate("Balance")}</h3> - {dropsToXrp(balance).toLocaleString("en")} {translate("XRP")} - </div>} - - {sequence && <div id="sequence"> - <h3>{translate("Sequence Number")}</h3> - {sequence} - </div>} - - {(secret && !sequence) && <XRPLoader message={translate("Waiting...")}/>} + {address && !balance && ( + <div> + <br /> + <XRPLoader message={translate('Funding account...')} /> + </div> + )} + {balance && ( + <div id="balance"> + <h3>{translate('Balance')}</h3> + {dropsToXrp(balance).toLocaleString('en')} {translate('XRP')} + </div> + )} + + {sequence && ( + <div id="sequence"> + <h3>{translate('Sequence Number')}</h3> + {sequence} + </div> + )} + + {secret && !sequence && <XRPLoader message={translate('Waiting...')} />} </div> ) } diff --git a/resources/dev-tools/xrp-ledger-toml-checker.page.tsx b/resources/dev-tools/xrp-ledger-toml-checker.page.tsx index 40b1c63c61..f87d14a1fb 100644 --- a/resources/dev-tools/xrp-ledger-toml-checker.page.tsx +++ b/resources/dev-tools/xrp-ledger-toml-checker.page.tsx @@ -1,16 +1,16 @@ -import * as React from 'react'; -import { useThemeHooks } from '@redocly/theme/core/hooks'; -import { Link } from "@redocly/theme/components/Link/Link"; -import { TextLookupForm, type TextLookupFormProps } from './components/TextLookupForm'; -import { fetchFile, fetchWallet } from './toml-checker/ValidateTomlSteps'; -import { LogEntryItem } from './components/LogEntry'; +import * as React from 'react' +import { useThemeHooks } from '@redocly/theme/core/hooks' +import { Link } from '@redocly/theme/components/Link/Link' +import { TextLookupForm, type TextLookupFormProps } from './components/TextLookupForm' +import { fetchFile, fetchWallet } from './toml-checker/ValidateTomlSteps' +import { LogEntryItem } from './components/LogEntry' export const frontmatter = { seo: { title: 'xrp-ledger.toml Checker', description: "Confirm that your site's xrp-ledger.toml file is set up correctly.", - } -}; + }, +} /** * Example data to test the tool with @@ -28,8 +28,8 @@ export const frontmatter = { function handleSubmitWallet( setAccountLogEntries: React.Dispatch<React.SetStateAction<LogEntryItem[]>>, event: React.FormEvent<HTMLFormElement>, - addressToVerify: string) { - + addressToVerify: string, +) { event.preventDefault() setAccountLogEntries([]) fetchWallet(setAccountLogEntries, addressToVerify) @@ -38,52 +38,73 @@ function handleSubmitWallet( function handleSubmitDomain( setDomainLogEntries: React.Dispatch<React.SetStateAction<LogEntryItem[]>>, event: React.FormEvent<HTMLFormElement>, - domainAddress: string) { - - event.preventDefault(); + domainAddress: string, +) { + event.preventDefault() setDomainLogEntries([]) fetchFile(setDomainLogEntries, domainAddress) } export default function TomlChecker() { - const { useTranslate } = useThemeHooks(); - const { translate } = useTranslate(); + const { useTranslate } = useThemeHooks() + const { translate } = useTranslate() const domainButtonProps: TextLookupFormProps = { title: `Look Up By Domain`, - description: <p>{translate('resources.dev-tools.toml-checker.domain.description.part1', `This tool allows you to verify that your `)}<code>{translate(`xrp-ledger.toml`)}</code> - {translate('resources.dev-tools.toml-checker.domain.description.part2', ` file is syntactically correct and deployed properly.`)}</p>, + description: ( + <p> + {translate('resources.dev-tools.toml-checker.domain.description.part1', `This tool allows you to verify that your `)} + <code>{translate(`xrp-ledger.toml`)}</code> + {translate('resources.dev-tools.toml-checker.domain.description.part2', ` file is syntactically correct and deployed properly.`)} + </p> + ), buttonDescription: `Check toml file`, - formPlaceholder: "example.com (Domain name to check)", + formPlaceholder: 'example.com (Domain name to check)', handleSubmit: handleSubmitDomain, } const addressButtonProps: TextLookupFormProps = { title: `Look Up By Account`, - description: <p>{translate('resources.dev-tools.toml-checker.account.description.part1', `Enter an XRP Ledger address to see if that account is claimed by the domain it says owns it.`)}</p>, + description: ( + <p> + {translate( + 'resources.dev-tools.toml-checker.account.description.part1', + `Enter an XRP Ledger address to see if that account is claimed by the domain it says owns it.`, + )} + </p> + ), buttonDescription: `Check account`, - formPlaceholder: `r... (${translate("Wallet Address to check")})`, - handleSubmit: handleSubmitWallet + formPlaceholder: `r... (${translate('Wallet Address to check')})`, + handleSubmit: handleSubmitWallet, } return ( <div className="toml-checker row"> - {/* This aside is empty but it keeps the formatting similar to other pages */} - <aside className="right-sidebar col-lg-3 order-lg-4" role="complementary"/> + {/* This aside is empty but it keeps the formatting similar to other pages */} + <aside className="right-sidebar col-lg-3 order-lg-4" role="complementary" /> - <main className="main col-lg-9" role="main" id="main_content_body"> - <section className="container-fluid"> - <div className="p-3"> - <h1>{translate(`xrp-ledger.toml Checker`)}</h1> - <p>{translate('resources.dev-tools.toml-checker.p.part1', `If you run an XRP Ledger validator or use the XRP Ledger for your business, - you can provide information about your usage of the XRP Ledger to the world in a machine-readable `)} - <Link to="../../docs/references/xrp-ledger-toml"><code>{translate(`xrp-ledger.toml`)}</code>{translate('resources.dev-tools.toml-checker.p.part2', ` file`)}</Link>{translate('resources.dev-tools.toml-checker.p.part3', `.`)}</p> - </div> + <main className="main col-lg-9" role="main" id="main_content_body"> + <section className="container-fluid"> + <div className="p-3"> + <h1>{translate(`xrp-ledger.toml Checker`)}</h1> + <p> + {translate( + 'resources.dev-tools.toml-checker.p.part1', + `If you run an XRP Ledger validator or use the XRP Ledger for your business, + you can provide information about your usage of the XRP Ledger to the world in a machine-readable `, + )} + <Link to="../../docs/references/xrp-ledger-toml"> + <code>{translate(`xrp-ledger.toml`)}</code> + {translate('resources.dev-tools.toml-checker.p.part2', ` file`)} + </Link> + {translate('resources.dev-tools.toml-checker.p.part3', `.`)} + </p> + </div> - <TextLookupForm {...domainButtonProps} /> - <TextLookupForm {...addressButtonProps} /> - </section> - </main> + <TextLookupForm {...domainButtonProps} /> + <TextLookupForm {...addressButtonProps} /> + </section> + </main> </div> ) } diff --git a/resources/index.md b/resources/index.md index ff3ed7a22a..f5ea5f818a 100644 --- a/resources/index.md +++ b/resources/index.md @@ -4,9 +4,9 @@ parent: index.html metadata: indexPage: true --- + # Resources Other resources to help understand the XRP Ledger and develop on it. - {% child-pages /%} diff --git a/resources/known-amendments.md b/resources/known-amendments.md index 323cd24f69..145865e459 100644 --- a/resources/known-amendments.md +++ b/resources/known-amendments.md @@ -1,10 +1,12 @@ --- seo: - description: List of all known amendments to the XRP Ledger protocol and their status. + description: List of all known amendments to the XRP Ledger protocol and their status. labels: - Blockchain --- + # Known Amendments + [[Source]](https://github.com/XRPLF/rippled/blob/develop/include/xrpl/protocol/detail/features.macro "Source") This page lists all known [amendments](../docs/concepts/networks-and-servers/amendments.md) and their statuses. @@ -19,46 +21,45 @@ The following amendments are either already enabled on the XRP Ledger Mainnet or The following is a list of [amendments](../docs/concepts/networks-and-servers/amendments.md) that are being actively developed. They can become open for voting on Mainnet if they are included in a stable server release, and they may already be enabled on [other networks](../docs/concepts/networks-and-servers/parallel-networks.md). -| Name | Status | Additional Information | -|:----------------------------------|:------------------------------------------|:-------------------------------| -| [Hooks][] | {% badge %}In Development: TBD{% /badge %} | [XRPL Hooks](https://hooks.xrpl.org/) | -| [InvariantsV1_1][] | {% badge %}In Development: TBD{% /badge %} | | -| [LendingProtocol][] | {% badge %}In Development: TBD{% /badge %} | [Lending Protocol (Ripple Opensource)](https://opensource.ripple.com/docs/xls-66d-lending-protocol) | -| [SingleAssetVault][] | {% badge %}In Development: TBD{% /badge %} | [Single Asset Vault (Ripple Opensource)](https://opensource.ripple.com/docs/xls-65d-single-asset-vault) | +| Name | Status | Additional Information | +| :------------------- | :----------------------------------------- | :------------------------------------------------------------------------------------------------------ | +| [Hooks][] | {% badge %}In Development: TBD{% /badge %} | [XRPL Hooks](https://hooks.xrpl.org/) | +| [InvariantsV1_1][] | {% badge %}In Development: TBD{% /badge %} | | +| [LendingProtocol][] | {% badge %}In Development: TBD{% /badge %} | [Lending Protocol (Ripple Opensource)](https://opensource.ripple.com/docs/xls-66d-lending-protocol) | +| [SingleAssetVault][] | {% badge %}In Development: TBD{% /badge %} | [Single Asset Vault (Ripple Opensource)](https://opensource.ripple.com/docs/xls-65d-single-asset-vault) | {% admonition type="success" name="Tip" %} This list is updated manually. If you're working on an amendment and have a private network to test the changes, you can edit this page to add your in-development amendment to this list. For more information on contributing to the XRP Ledger, see [Contribute Code to the XRP Ledger](contribute-code/index.md). {% /admonition %} - ## Obsolete Amendments The following is a list of known [amendments](../docs/concepts/networks-and-servers/amendments.md) that have been removed in a previous version of the core server, or are obsolete and have been marked for removal. -| Name | Introduced | Status | -|:----------------------------------|:-----------|:------------------------------| -| [fixNFTokenNegOffer][] | v1.9.2 | {% badge %}Obsolete: To Be Removed{% /badge %} | -| [fixNFTokenDirV1][] | v1.9.1 | {% badge %}Obsolete: To Be Removed{% /badge %} | -| [NonFungibleTokensV1][] | v1.9.0 | {% badge %}Obsolete: To Be Removed{% /badge %} | -| [CryptoConditionsSuite][] | v0.60.0 | {% badge %}Obsolete: To Be Removed{% /badge %} | -| [OwnerPaysFee][] | v0.33.0 | {% badge href="https://xrpl.org/blog/2017/rippled-0.80.0" %}Obsolete: Removed in v0.80.0{% /badge %} | -| [SHAMapV2][] | v0.32.1 | {% badge href="https://xrpl.org/blog/2019/rippled-1.4.0.html" %}Obsolete: Removed in v1.4.0{% /badge %} | -| [Tickets][] | v0.30.1 | {% badge href="https://xrpl.org/blog/2018/rippled-0.90.0.html" %}Obsolete: Removed in v0.90.0{% /badge %} | -| [SusPay][] | v0.31.0 | {% badge href="https://xrpl.org/blog/2017/ticksize-voting.html#upcoming-features" %}Obsolete: Removed in v0.60.0{% /badge %} | -| [FlowV2][] | v0.32.1 | {% badge href="https://xrpl.org/blog/2016/flowv2-vetoed.html" %}Obsolete: Removed in v0.33.0{% /badge %} | - +| Name | Introduced | Status | +| :------------------------ | :--------- | :--------------------------------------------------------------------------------------------------------------------------- | +| [fixNFTokenNegOffer][] | v1.9.2 | {% badge %}Obsolete: To Be Removed{% /badge %} | +| [fixNFTokenDirV1][] | v1.9.1 | {% badge %}Obsolete: To Be Removed{% /badge %} | +| [NonFungibleTokensV1][] | v1.9.0 | {% badge %}Obsolete: To Be Removed{% /badge %} | +| [CryptoConditionsSuite][] | v0.60.0 | {% badge %}Obsolete: To Be Removed{% /badge %} | +| [OwnerPaysFee][] | v0.33.0 | {% badge href="https://xrpl.org/blog/2017/rippled-0.80.0" %}Obsolete: Removed in v0.80.0{% /badge %} | +| [SHAMapV2][] | v0.32.1 | {% badge href="https://xrpl.org/blog/2019/rippled-1.4.0.html" %}Obsolete: Removed in v1.4.0{% /badge %} | +| [Tickets][] | v0.30.1 | {% badge href="https://xrpl.org/blog/2018/rippled-0.90.0.html" %}Obsolete: Removed in v0.90.0{% /badge %} | +| [SusPay][] | v0.31.0 | {% badge href="https://xrpl.org/blog/2017/ticksize-voting.html#upcoming-features" %}Obsolete: Removed in v0.60.0{% /badge %} | +| [FlowV2][] | v0.32.1 | {% badge href="https://xrpl.org/blog/2016/flowv2-vetoed.html" %}Obsolete: Removed in v0.33.0{% /badge %} | ## Details about Known Amendments ### AMM + [AMM]: #amm -| Amendment | AMM | -|:-------------|:----| -| Amendment ID | 8CC0774A3BF66D1D22E76BBDA8E8A232E6B6313834301B3B23E8601196AE6455 | -| Status | Enabled | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | AMM | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 8CC0774A3BF66D1D22E76BBDA8E8A232E6B6313834301B3B23E8601196AE6455 | +| Status | Enabled | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | Adds [XLS-30](https://github.com/XRPLF/XRPL-Standards/tree/master/XLS-0030-automated-market-maker#readme) Automated Market Maker (AMM) functionality to the ledger in a way that is integrated with the existing decentralized exchange. Each pair of assets (tokens or XRP) can have up to one AMM in the ledger, which anyone can contribute liquidity to for a proportional share in the earnings and exchange risk. Each AMM instance has a special account to hold its assets and issue "LP Tokens" to liquidity providers in proportion to their deposits. Liquidity providers can vote on the AMM's trading fee based on their share of LP Tokens. Users can bid LP Tokens on the right to trade with a discounted trading fee for a limited period of time. @@ -80,16 +81,16 @@ Adds a new type of ledger entry, `AMM`, and adds an `AMMID` field to the `Accoun Adds several new transaction result codes. - ### AMMClawback + [AMMClawback]: #ammclawback -| Amendment | AMMClawback | -|:-------------|:------------| -| Amendment ID | 726F944886BCDF7433203787E93DD9AA87FAB74DFE3AF4785BA03BEFC97ADA1F | -| Status | Enabled | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | AMMClawback | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 726F944886BCDF7433203787E93DD9AA87FAB74DFE3AF4785BA03BEFC97ADA1F | +| Status | Enabled | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | Allows tokens with clawback enabled to be used in Automated Market Makers (AMMs). Adds a new transaction: @@ -99,29 +100,29 @@ Also modifies the AMMDeposit transaction type to prevent depositing frozen token For details, see the [XLS-73: AMMClawback specification](https://github.com/XRPLF/XRPL-Standards/discussions/212). - ### Batch + [Batch]: #batch -| Amendment | Batch | -|:-------------|:------| -| Amendment ID | 894646DD5284E97DECFE6674A6D6152686791C4A95F8C132CCA9BAF9E5812FB6 | -| Status | Open for Voting | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | Batch | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 894646DD5284E97DECFE6674A6D6152686791C4A95F8C132CCA9BAF9E5812FB6 | +| Status | Open for Voting | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | Allows multiple transactions to be bundled into a batch that's processed all together. Standard: [XLS-56](https://github.com/XRPLF/XRPL-Standards/tree/master/XLS-0056-batch) - ### CheckCashMakesTrustLine + [CheckCashMakesTrustLine]: #checkcashmakestrustline -| Amendment | CheckCashMakesTrustLine | -|:-------------|:------------------------| -| Amendment ID | 98DECF327BF79997AEC178323AD51A830E457BFC6D454DAF3E46E5EC42DC619F | -| Status | Enabled | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | CheckCashMakesTrustLine | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 98DECF327BF79997AEC178323AD51A830E457BFC6D454DAF3E46E5EC42DC619F | +| Status | Enabled | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | Adjusts the [CheckCash transaction][] so that cashing a [Check](../docs/concepts/payment-types/checks.md) for an issued token automatically creates a [trust line](../docs/concepts/tokens/fungible-tokens/index.md) to hold the token. The new behavior is similar to how the [OfferCreate transaction][] behaves when users buy tokens in the decentralized exchange: the automatic trust line has a limit value of 0. This removes the setup step of setting up a trust line before receiving a token via a Check. (Checks that send XRP are unaffected.) @@ -129,16 +130,16 @@ Without this amendment, users have to separately send a [TrustSet transaction][] This amendment does not change the fact that you cannot force anyone to hold tokens they don't want in the XRP Ledger. - ### Checks + [Checks]: #checks -| Amendment | Checks | -|:-------------|:-------| -| Amendment ID | 157D2D480E006395B76F948E3E07A45A05FE10230D88A7993C71F97AE4B1F2D1 | -| Status | Enabled | -| Default Vote (Latest stable release) | Yes | -| Pre-amendment functionality retired? | No | +| Amendment | Checks | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 157D2D480E006395B76F948E3E07A45A05FE10230D88A7993C71F97AE4B1F2D1 | +| Status | Enabled | +| Default Vote (Latest stable release) | Yes | +| Pre-amendment functionality retired? | No | Introduces "Checks" to the XRP Ledger. Checks work similarly to personal paper checks. The sender signs a transaction to create a Check for a specific maximum amount and destination. Later, the destination can cash the Check to receive up to the specified amount. The actual movement of money only occurs when the Check is cashed, so cashing the Check may fail depending on the sender's current balance and the available liquidity. If cashing the Check fails, the Check object remains in the ledger so it may be successfully cashed later. @@ -146,16 +147,16 @@ The sender or the receiver can cancel a Check at any time before it is cashed. A Introduces three new transaction types: CheckCreate, CheckCancel, and CheckCash, and a new ledger object type, Check. Adds a new transaction result code, `tecEXPIRED`, which occurs when trying to create a Check whose expiration time is in the past. - ### Clawback + [Clawback]: #clawback -| Amendment | Clawback | -|:-------------|:---------| -| Amendment ID | 56B241D7A43D40354D02A9DC4C8DF5C7A1F930D92A9035C4E12291B3CA3E1C2B | -| Status | Enabled | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | Clawback | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 56B241D7A43D40354D02A9DC4C8DF5C7A1F930D92A9035C4E12291B3CA3E1C2B | +| Status | Enabled | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | For regulatory purposes, some issuers must have the ability to recover issued tokens after they are distributed to accounts. For example, if an issuer were to discover that tokens were sent to an account sanctioned for illegal activity, the issuer could recover, or _claw back_ the funds. @@ -163,16 +164,16 @@ Clawback is disabled by default. To use clawback, you must set the `lsfAllowTrus See [Clawback](../docs/concepts/tokens/fungible-tokens/clawing-back-tokens.md) for details on this amendment. - ### Credentials + [Credentials]: #credentials -| Amendment | Credentials | -|:-------------|:------------| -| Amendment ID | 1CB67D082CF7D9102412D34258CEDB400E659352D3B207348889297A6D90F5EF | -| Status | Enabled | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | Credentials | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 1CB67D082CF7D9102412D34258CEDB400E659352D3B207348889297A6D90F5EF | +| Status | Enabled | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | Introduces Credentials, a set of tools for managing authorization and compliance requirements using the XRP Ledger. Adds three new transaction types for managing credentials: @@ -200,44 +201,44 @@ Also extends the `deposit_authorized` API method to check for credential-based a For more details, see the [XLS-70: Credentials specification](https://github.com/XRPLF/XRPL-Standards/tree/master/XLS-0070-credentials). - ### CryptoConditions + [CryptoConditions]: #cryptoconditions -| Amendment | CryptoConditions | -|:-------------|:-----------------| -| Amendment ID | 1562511F573A19AE9BD103B5D6B9E01B3B46805AEC5D3C4805C902B514399146 | -| Status | Enabled | -| Default Vote (Latest stable release) | Yes | -| Pre-amendment functionality retired? | Yes | +| Amendment | CryptoConditions | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 1562511F573A19AE9BD103B5D6B9E01B3B46805AEC5D3C4805C902B514399146 | +| Status | Enabled | +| Default Vote (Latest stable release) | Yes | +| Pre-amendment functionality retired? | Yes | Although this amendment is enabled, it has no effect unless the [SusPay](#suspay) amendment is also enabled. The SusPay amendment was replaced by the [Escrow](#escrow) amendment, so the CryptoConditions amendment has no effect. - ### CryptoConditionsSuite + [CryptoConditionsSuite]: #cryptoconditionssuite -| Amendment | CryptoConditionsSuite | -|:-------------|:----------------------| -| Amendment ID | 86E83A7D2ECE3AD5FA87AB2195AE015C950469ABF0B72EAACED318F74886AE90 | -| Status | Obsolete | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | CryptoConditionsSuite | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 86E83A7D2ECE3AD5FA87AB2195AE015C950469ABF0B72EAACED318F74886AE90 | +| Status | Obsolete | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | This amendment was intended to add support for several types of crypto-conditions from the official [crypto-conditions specification](https://tools.ietf.org/html/draft-thomas-crypto-conditions-03) for use in [EscrowCreate][] and [EscrowFinish][] transactions. However, the amendment was added to `rippled` v0.60.0 before implementation was complete. As a result, this amendment ID refers to incomplete code which does almost nothing. Modifying the existing amendment to add support for other crypto-conditions would cause a conflict with old versions of the amendment already in released software. If a future release adds support for additional crypto-conditions, it must use a new and different amendment ID. - ### DeepFreeze + [DeepFreeze]: #deepfreeze -| Amendment | DeepFreeze | -|:-------------|:-----------| -| Amendment ID | DAF3A6EB04FA5DC51E8E4F23E9B7022B693EFA636F23F22664746C77B5786B23 | -| Status | Enabled | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | DeepFreeze | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | DAF3A6EB04FA5DC51E8E4F23E9B7022B693EFA636F23F22664746C77B5786B23 | +| Status | Enabled | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | This amendment enables issuers to deep freeze trustlines from interacting with payments, offers, AMMs, and the DEX. This prevents deep frozen accounts from sending and receiving frozen assets. With this amendment, four new flags are introduced: @@ -248,16 +249,16 @@ This amendment enables issuers to deep freeze trustlines from interacting with p - `tfSetDeepFreeze` - `tfClearDeepFreeze` - ### DeletableAccounts + [DeletableAccounts]: #deletableaccounts -| Amendment | DeletableAccounts | -|:-------------|:------------------| -| Amendment ID | 30CD365592B8EE40489BA01AE2F7555CAC9C983145871DC82A42A31CF5BAE7D9 | -| Status | Enabled | -| Default Vote (Latest stable release) | Yes | -| Pre-amendment functionality retired? | No | +| Amendment | DeletableAccounts | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 30CD365592B8EE40489BA01AE2F7555CAC9C983145871DC82A42A31CF5BAE7D9 | +| Status | Enabled | +| Default Vote (Latest stable release) | Yes | +| Pre-amendment functionality retired? | No | Makes it possible to delete [accounts](../docs/concepts/accounts/index.md). @@ -265,16 +266,16 @@ Without this amendment, new accounts always start with their `Sequence` numbers With this amendment, new accounts start with their `Sequence` numbers equal to the `Sequence` number matching the [index of the ledger][Ledger Index] in which the account is created. This change protects accounts that are deleted and later re-created from having their old transactions executed again. Adds a new `AccountDelete` transaction type, which deletes an account and certain objects that the account owns in the ledger. Certain types of objects cannot be deleted this way, so an account that is linked to any such objects cannot be deleted. Additionally, an account cannot be deleted if the current ledger index minus 256 is less than the account's current `Sequence` number. See [XRP Community Standards Draft 7](https://github.com/XRPLF/XRPL-Standards/issues/8) for a detailed discussion of this amendment. - ### DepositAuth + [DepositAuth]: #depositauth -| Amendment | DepositAuth | -|:-------------|:------------| -| Amendment ID | F64E1EABBE79D55B3BB82020516CEC2C582A98A6BFE20FBE9BB6A0D233418064 | -| Status | Enabled | -| Default Vote (Latest stable release) | Yes | -| Pre-amendment functionality retired? | No | +| Amendment | DepositAuth | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | F64E1EABBE79D55B3BB82020516CEC2C582A98A6BFE20FBE9BB6A0D233418064 | +| Status | Enabled | +| Default Vote (Latest stable release) | Yes | +| Pre-amendment functionality retired? | No | Adds a new account flag, `DepositAuth`, which lets an account strictly reject any incoming money from transactions sent by other accounts. Businesses can use this flag to comply with strict regulations that require due diligence before receiving money from any source. @@ -284,16 +285,16 @@ As an exception, accounts with `DepositAuth` enabled can receive Payment transac Also fixes a bug in the EscrowCreate and PaymentChannelCreate transactions where they mistakenly enforced the Disallow XRP flag, which is meant to be a non-binding advisory flag. (By not enforcing Disallow XRP in the ledger itself an account can still receive the necessary XRP to meet its [account reserve](../docs/concepts/accounts/reserves.md) and pay [transaction costs](../docs/concepts/transactions/transaction-cost.md).) - ### DepositPreauth + [DepositPreauth]: #depositpreauth -| Amendment | DepositPreauth | -|:-------------|:---------------| -| Amendment ID | 3CBC5C4E630A1B82380295CDA84B32B49DD066602E74E39B85EF64137FA65194 | -| Status | Enabled | -| Default Vote (Latest stable release) | Yes | -| Pre-amendment functionality retired? | No | +| Amendment | DepositPreauth | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 3CBC5C4E630A1B82380295CDA84B32B49DD066602E74E39B85EF64137FA65194 | +| Status | Enabled | +| Default Vote (Latest stable release) | Yes | +| Pre-amendment functionality retired? | No | Provides users of [deposit authorization](../docs/concepts/accounts/depositauth.md) with a way to preauthorize specific senders so those senders are allowed to send payments directly. @@ -303,16 +304,16 @@ Changes the behavior of cross-currency Payments from an account to itself when t Also changes the OfferCreate transaction to return `tecEXPIRED` when trying to create an Offer whose expiration time is in the past. Without this amendment, an OfferCreate whose expiration time is in the past returns `tesSUCCESS` but does not create or execute an Offer. - ### DID + [DID]: #did -| Amendment | DID | -|:-------------|:----| -| Amendment ID | DB432C3A09D9D5DFC7859F39AE5FF767ABC59AED0A9FB441E83B814D8946C109 | -| Status | Enabled | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | DID | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | DB432C3A09D9D5DFC7859F39AE5FF767ABC59AED0A9FB441E83B814D8946C109 | +| Status | Enabled | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | Adds to the ledger Decentralized Identifier (DID) functionality that conforms to the [World Wide Web Consortium](https://www.w3.org/press-releases/2022/did-rec/) standard. DIDs provide a digital identity, not dependent on a centralized authority and controlled by the DID subject. @@ -325,16 +326,16 @@ Adds a new `DID` ledger entry type. Adds several new transaction result codes. - ### DisallowIncoming + [DisallowIncoming]: #disallowincoming -| Amendment | DisallowIncoming | -|:-------------|:-----------------| -| Amendment ID | 47C3002ABA31628447E8E9A8B315FAA935CE30183F9A9B86845E469CA2CDC3DF | -| Status | Enabled | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | DisallowIncoming | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 47C3002ABA31628447E8E9A8B315FAA935CE30183F9A9B86845E469CA2CDC3DF | +| Status | Enabled | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | Provides options to categorically block incoming Checks, Payment Channels, NFTokenOffers, and trust lines from reaching your account. When an account has these options enabled, other accounts cannot create those types of objects with the account as the destination. @@ -349,32 +350,32 @@ Changes transaction processing to check the status of those flags before creatin Without this amendment, any account can create these objects with any object as the destination; while this is usually harmless, it can block an account from later being deleted, and may also be used as part of scams. - ### DynamicNFT + [DynamicNFT]: #dynamicnft -| Amendment | DynamicNFT | -|:-------------|:-----------| -| Amendment ID | C1CE18F2A268E6A849C27B3DE485006771B4C01B2FCEC4F18356FE92ECD6BB74 | -| Status | Enabled | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | DynamicNFT | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | C1CE18F2A268E6A849C27B3DE485006771B4C01B2FCEC4F18356FE92ECD6BB74 | +| Status | Enabled | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | Adds functionality to update the `URI` field of an `NFToken` ledger entry. This amendment introduces a new transaction type and `NFTokenMint` flag: 1. `NFTokenModify`: New transaction type that updates the `URI` field of an NFT. 2. `tfMutable`: New flag that enables authorized accounts to modify the `URI` of an NFT. This flag must be enabled when the NFT is initially minted. - ### EnforceInvariants + [EnforceInvariants]: #enforceinvariants -| Amendment | EnforceInvariants | -|:-------------|:------------------| -| Amendment ID | DC9CA96AEA1DCF83E527D1AFC916EFAF5D27388ECA4060A88817C1238CAEE0BF | -| Status | Enabled | -| Default Vote (Latest stable release) | Yes | -| Pre-amendment functionality retired? | Yes | +| Amendment | EnforceInvariants | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | DC9CA96AEA1DCF83E527D1AFC916EFAF5D27388ECA4060A88817C1238CAEE0BF | +| Status | Enabled | +| Default Vote (Latest stable release) | Yes | +| Pre-amendment functionality retired? | Yes | Adds sanity checks to transaction processing to ensure that certain conditions are always met. This provides an extra, independent layer of protection against bugs in transaction processing that could otherwise cause exploits and vulnerabilities in the XRP Ledger. Future versions of `rippled` may add more invariants without additional amendments. @@ -388,31 +389,31 @@ Examples of invariant checks: - [An entry in the ledger](../docs/references/protocol/ledger-data/ledger-entry-types/index.md) cannot change its type. (The `LedgerEntryType` field is immutable.) - There cannot be a trust line for XRP. - ### Escrow + [Escrow]: #escrow -| Amendment | Escrow | -|:-------------|:-------| -| Amendment ID | 07D43DCE529B15A10827E5E04943B496762F9A88E3268269D69C44BE49E21104 | -| Status | Enabled | -| Default Vote (Latest stable release) | Yes | -| Pre-amendment functionality retired? | Yes | +| Amendment | Escrow | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 07D43DCE529B15A10827E5E04943B496762F9A88E3268269D69C44BE49E21104 | +| Status | Enabled | +| Default Vote (Latest stable release) | Yes | +| Pre-amendment functionality retired? | Yes | Replaces the [SusPay](#suspay) and [CryptoConditions](#cryptoconditions) amendments. Provides "suspended payments" for XRP for escrow within the XRP Ledger, including support for [Interledger Protocol Crypto-Conditions](https://tools.ietf.org/html/draft-thomas-crypto-conditions-02). Creates a new ledger object type for suspended payments and new transaction types to create, execute, and cancel suspended payments. - ### ExpandedSignerList + [ExpandedSignerList]: #expandedsignerlist -| Amendment | ExpandedSignerList | -|:-------------|:-------------------| -| Amendment ID | B2A4DB846F0891BF2C76AB2F2ACC8F5B4EC64437135C6E56F3F859DE5FFD5856 | -| Status | Enabled | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | ExpandedSignerList | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | B2A4DB846F0891BF2C76AB2F2ACC8F5B4EC64437135C6E56F3F859DE5FFD5856 | +| Status | Enabled | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | This amendment expands the maximum signer list size and allows each signer to have optional data associated with it. The additional data can be used to identify the signer, which may be useful for smart contracts, or for identifying who controls a key in a large organization: for example, you could store an IPv6 address or the identifier of a Hardware Security Module (HSM). @@ -420,16 +421,16 @@ Without this amendment, the maximum signer list size is 8 entries, and each entr With this amendment, the maximum [SignerList object][] size is 32 entries. Additionally, each `SignerEntry` object can contain an optional 256-bit (32-byte) `WalletLocator` field containing arbitrary data. This amendment changes the [SignerListSet transaction][] accordingly. - ### FeeEscalation + [FeeEscalation]: #feeescalation -| Amendment | FeeEscalation | -|:-------------|:--------------| -| Amendment ID | 42426C4D4F1009EE67080A9B7965B44656D7714D104A72F9B4369F97ABF044EE | -| Status | Enabled | -| Default Vote (Latest stable release) | Yes | -| Pre-amendment functionality retired? | Yes | +| Amendment | FeeEscalation | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 42426C4D4F1009EE67080A9B7965B44656D7714D104A72F9B4369F97ABF044EE | +| Status | Enabled | +| Default Vote (Latest stable release) | Yes | +| Pre-amendment functionality retired? | Yes | Changes the way the [transaction cost](../docs/concepts/transactions/transaction-cost.md) applies to proposed transactions. Modifies the consensus process to prioritize transactions that pay a higher transaction cost. <!-- STYLE_OVERRIDE: prioritize --> @@ -439,93 +440,93 @@ While the consensus network is under heavy load, legitimate users can pay a high A transaction remains in the queue until one of the following happens: -* It gets applied to a validated ledger (regardless of success or failure) -* It becomes invalid (for example, the [`LastLedgerSequence`](../docs/references/protocol/transactions/common-fields.md) causes it to expire) -* It gets dropped because there are too many transactions in the queue with a higher transaction cost. - +- It gets applied to a validated ledger (regardless of success or failure) +- It becomes invalid (for example, the [`LastLedgerSequence`](../docs/references/protocol/transactions/common-fields.md) causes it to expire) +- It gets dropped because there are too many transactions in the queue with a higher transaction cost. ### fix1201 + [fix1201]: #fix1201 -| Amendment | fix1201 | -|:-------------|:--------| -| Amendment ID | B4D44CC3111ADD964E846FC57760C8B50FFCD5A82C86A72756F6B058DDDF96AD | -| Status | Enabled | -| Default Vote (Latest stable release) | Yes | -| Pre-amendment functionality retired? | Yes | +| Amendment | fix1201 | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | B4D44CC3111ADD964E846FC57760C8B50FFCD5A82C86A72756F6B058DDDF96AD | +| Status | Enabled | +| Default Vote (Latest stable release) | Yes | +| Pre-amendment functionality retired? | Yes | Correctly implements a limit on [transfer fees](../docs/concepts/tokens/fungible-tokens/transfer-fees.md) to a 100% fee, represented by a maximum `TransferRate` value of `2000000000`. (A 100% fee in this case means you must send 2 units of the token for every 1 unit you want to deliver.) Without the amendment, the effective limit is a `TransferRate` value of 2<sup>32</sup>-1, for approximately a 329% fee. With this amendment enabled, an [AccountSet][] transaction that attempts to set `TransferRate` higher than `2000000000` fails with the result code `temBAD_TRANSFER_RATE`. Any existing `TransferRate` which was set to a higher value under the previous rules continues to apply at the higher rate. - ### fix1368 + [fix1368]: #fix1368 -| Amendment | fix1368 | -|:-------------|:--------| -| Amendment ID | E2E6F2866106419B88C50045ACE96368558C345566AC8F2BDF5A5B5587F0E6FA | -| Status | Enabled | -| Default Vote (Latest stable release) | Yes | -| Pre-amendment functionality retired? | Yes | +| Amendment | fix1368 | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | E2E6F2866106419B88C50045ACE96368558C345566AC8F2BDF5A5B5587F0E6FA | +| Status | Enabled | +| Default Vote (Latest stable release) | Yes | +| Pre-amendment functionality retired? | Yes | Fixes a minor bug in transaction processing that causes some payments to fail when they should be valid. Specifically, during payment processing, some payment steps that are expected to produce a certain amount of currency may produce a microscopically different amount, due to a loss of precision related to floating-point number representation. When this occurs, those payments fail because they cannot deliver the exact amount intended. The fix1368 amendment corrects transaction processing so payments can no longer fail in this manner. - ### fix1373 + [fix1373]: #fix1373 -| Amendment | fix1373 | -|:-------------|:--------| -| Amendment ID | 42EEA5E28A97824821D4EF97081FE36A54E9593C6E4F20CBAE098C69D2E072DC | -| Status | Enabled | -| Default Vote (Latest stable release) | Yes | -| Pre-amendment functionality retired? | Yes | +| Amendment | fix1373 | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 42EEA5E28A97824821D4EF97081FE36A54E9593C6E4F20CBAE098C69D2E072DC | +| Status | Enabled | +| Default Vote (Latest stable release) | Yes | +| Pre-amendment functionality retired? | Yes | Fixes a minor bug in transaction processing that causes failures when trying to prepare certain [payment paths](../docs/concepts/tokens/fungible-tokens/paths.md) for processing. As a result, payments could not use certain paths that should have been valid but were invalidly prepared. Without this amendment, those payments are forced to use less-preferable paths or may even fail. The fix1373 amendment corrects the issue so that the paths are properly prepared and payments can use them. It also disables some inappropriate paths that are currently allowed, including paths whose [steps](../docs/concepts/tokens/fungible-tokens/paths.md#path-specifications) include conflicting fields and paths that loop through the same object more than once. - ### fix1512 + [fix1512]: #fix1512 -| Amendment | fix1512 | -|:-------------|:--------| -| Amendment ID | 6C92211186613F9647A89DFFBAB8F94C99D4C7E956D495270789128569177DA1 | -| Status | Enabled | -| Default Vote (Latest stable release) | Yes | -| Pre-amendment functionality retired? | Yes | +| Amendment | fix1512 | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 6C92211186613F9647A89DFFBAB8F94C99D4C7E956D495270789128569177DA1 | +| Status | Enabled | +| Default Vote (Latest stable release) | Yes | +| Pre-amendment functionality retired? | Yes | Fixes a bug in transaction processing that causes some invalid [PaymentChannelClaim][] transactions to fail with the wrong error code. Without this amendment, the transactions have a `tec`-class result code despite not being included in a ledger. With this amendment, the transactions fail with a more appropriate result code, `temBAD_AMOUNT`, instead. - ### fix1513 + [fix1513]: #fix1513 -| Amendment | fix1513 | -|:-------------|:--------| -| Amendment ID | 67A34F2CF55BFC0F93AACD5B281413176FEE195269FA6D95219A2DF738671172 | -| Status | Enabled | -| Default Vote (Latest stable release) | Yes | -| Pre-amendment functionality retired? | No | +| Amendment | fix1513 | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 67A34F2CF55BFC0F93AACD5B281413176FEE195269FA6D95219A2DF738671172 | +| Status | Enabled | +| Default Vote (Latest stable release) | Yes | +| Pre-amendment functionality retired? | No | Fixes a bug that resulted in transaction processing not using new `STAmountCalcSwitchovers` code when the `FeeEscalation` amendment is enabled. With this amendment, the new `STAmountCalcSwitchovers` code applies, which may cause slight changes to transaction processing due to calculation differences. Amounts may be rounded differently and offers may be executed in a different order as a result. - ### fix1515 + [fix1515]: #fix1515 -| Amendment | fix1515 | -|:-------------|:--------| -| Amendment ID | 5D08145F0A4983F23AFFFF514E83FAD355C5ABFBB6CAB76FB5BC8519FF5F33BE | -| Status | Enabled | -| Default Vote (Latest stable release) | Yes | -| Pre-amendment functionality retired? | No | +| Amendment | fix1515 | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 5D08145F0A4983F23AFFFF514E83FAD355C5ABFBB6CAB76FB5BC8519FF5F33BE | +| Status | Enabled | +| Default Vote (Latest stable release) | Yes | +| Pre-amendment functionality retired? | No | Changes how Payment transactions consume offers to remove a minor difference in how payment processing and offer processing consume liquidity. (Also affects how OfferCreate transactions are processed if [FlowCross][] is enabled.) @@ -535,46 +536,46 @@ With this amendment, if any transaction processes over 1000 offers at the same e In both cases, transaction processing can still complete by using liquidity from other paths or exchange rates. - ### fix1523 + [fix1523]: #fix1523 -| Amendment | fix1523 | -|:-------------|:--------| -| Amendment ID | B9E739B8296B4A1BB29BE990B17D66E21B62A300A909F25AC55C22D6C72E1F9D | -| Status | Enabled | -| Default Vote (Latest stable release) | Yes | -| Pre-amendment functionality retired? | Yes | +| Amendment | fix1523 | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | B9E739B8296B4A1BB29BE990B17D66E21B62A300A909F25AC55C22D6C72E1F9D | +| Status | Enabled | +| Default Vote (Latest stable release) | Yes | +| Pre-amendment functionality retired? | Yes | Adds tracking by destination account to [escrows](../docs/concepts/payment-types/escrow.md). Without this amendment, pending escrows are only tracked by sender. This amendment makes it possible to look up pending escrows by the destination address using the [account_objects method][], excluding any pending escrows that were created before this amendment became enabled. This amendment also makes [EscrowCreate transactions][] appear in the destination's transaction history, as viewed with the [account_tx method][]. With this amendment, new escrows are added to the [owner directories](../docs/references/protocol/ledger-data/ledger-entry-types/directorynode.md) of both the sender and receiver. This amendment also adds a new `DestinationNode` field to [Escrow ledger objects](../docs/references/protocol/ledger-data/ledger-entry-types/escrow.md), indicating which page of the destination's owner directory contains the escrow. - ### fix1528 + [fix1528]: #fix1528 -| Amendment | fix1528 | -|:-------------|:--------| -| Amendment ID | 1D3463A5891F9E589C5AE839FFAC4A917CE96197098A1EF22304E1BC5B98A454 | -| Status | Enabled | -| Default Vote (Latest stable release) | Yes | -| Pre-amendment functionality retired? | Yes | +| Amendment | fix1528 | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 1D3463A5891F9E589C5AE839FFAC4A917CE96197098A1EF22304E1BC5B98A454 | +| Status | Enabled | +| Default Vote (Latest stable release) | Yes | +| Pre-amendment functionality retired? | Yes | Fixes a bug where validators could build consensus ledgers with different timestamps, potentially delaying the process of declaring validated ledgers. The circumstances for this to occur require precise timing, so this bug is unlikely to happen outside of controlled test conditions. This amendment changes how validators negotiate the close time of the consensus ledger so that they cannot reach a consensus on ledger contents but build ledger versions with different timestamps. - ### fix1543 + [fix1543]: #fix1543 -| Amendment | fix1543 | -|:-------------|:--------| -| Amendment ID | CA7C02118BA27599528543DFE77BA6838D1B0F43B447D4D7F53523CE6A0E9AC2 | -| Status | Enabled | -| Default Vote (Latest stable release) | Yes | -| Pre-amendment functionality retired? | No | +| Amendment | fix1543 | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | CA7C02118BA27599528543DFE77BA6838D1B0F43B447D4D7F53523CE6A0E9AC2 | +| Status | Enabled | +| Default Vote (Latest stable release) | Yes | +| Pre-amendment functionality retired? | No | Enforces reserved flag ranges on some transaction types that did not correctly enforce them already. Transactions of the affected types are now considered invalid if they enable undefined or unknown flags, or flags from the reserved range. (Transactions unaffected by this change already correctly enforce the same rules.) @@ -585,48 +586,48 @@ The affected transaction types are: - Escrow transactions: [EscrowCancel][], [EscrowCreate][], and [EscrowFinish][] - Payment Channel transactions: [PaymentChannelClaim][], [PaymentChannelCreate][], and [PaymentChannelFund][] - ### fix1571 + [fix1571]: #fix1571 -| Amendment | fix1571 | -|:-------------|:--------| -| Amendment ID | 7117E2EC2DBF119CA55181D69819F1999ECEE1A0225A7FD2B9ED47940968479C | -| Status | Enabled | -| Default Vote (Latest stable release) | Yes | -| Pre-amendment functionality retired? | No | +| Amendment | fix1571 | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 7117E2EC2DBF119CA55181D69819F1999ECEE1A0225A7FD2B9ED47940968479C | +| Status | Enabled | +| Default Vote (Latest stable release) | Yes | +| Pre-amendment functionality retired? | No | Changes Escrow to fix the following issues: - Changes the [EscrowCreate transaction][] to require the `Condition` or `FinishAfter` field (or both). Escrows with neither `Condition` nor `FinishAfter` that were created before this amendment can be finished by anyone at any time before their `CancelAfter` time. - Fixes a flaw that incorrectly prevents time-based Escrows from being finished in some circumstances. - ### fix1578 + [fix1578]: #fix1578 -| Amendment | fix1578 | -|:-------------|:--------| -| Amendment ID | FBD513F1B893AC765B78F250E6FFA6A11B573209D1842ADC787C850696741288 | -| Status | Enabled | -| Default Vote (Latest stable release) | Yes | -| Pre-amendment functionality retired? | No | +| Amendment | fix1578 | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | FBD513F1B893AC765B78F250E6FFA6A11B573209D1842ADC787C850696741288 | +| Status | Enabled | +| Default Vote (Latest stable release) | Yes | +| Pre-amendment functionality retired? | No | Changes the result codes returned by two transaction types: - Changes the [OfferCreate transaction][] to return a new result code, `tecKILLED`, if the offer used the `tfFillOrKill` flag and was killed. Without this amendment, the offer is killed but the transaction result is `tesSUCCESS`. - Changes the [TrustSet transaction][] to fail with `tecNO_PERMISSION` if it tries to enable the [No Ripple flag](../docs/concepts/tokens/fungible-tokens/rippling.md#the-no-ripple-flag) but cannot because the trust line has a negative balance. Without this amendment, the transaction does not enable the No Ripple flag, but the transaction result is `tesSUCCESS` nonetheless. - ### fix1623 + [fix1623]: #fix1623 -| Amendment | fix1623 | -|:-------------|:--------| -| Amendment ID | 58BE9B5968C4DA7C59BA900961828B113E5490699B21877DEF9A31E9D0FE5D5F | -| Status | Enabled | -| Default Vote (Latest stable release) | Yes | -| Pre-amendment functionality retired? | No | +| Amendment | fix1623 | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 58BE9B5968C4DA7C59BA900961828B113E5490699B21877DEF9A31E9D0FE5D5F | +| Status | Enabled | +| Default Vote (Latest stable release) | Yes | +| Pre-amendment functionality retired? | No | Adds delivered amount to metadata for CheckCash transactions cashed for a flexible amount. (Has no effect unless the [Checks](#checks) amendment is enabled.) @@ -634,16 +635,16 @@ With this amendment enabled, transaction processing adds a `DeliveredAmount` fie The fix1623 amendment has no effect on [CheckCash transactions][] for a fixed amount (using the `Amount` field) or any other transaction types. - ### fix1781 + [fix1781]: #fix1781 -| Amendment | fix1781 | -|:-------------|:--------| -| Amendment ID | 25BA44241B3BD880770BFA4DA21C7180576831855368CBEC6A3154FDE4A7676E | -| Status | Enabled | -| Default Vote (Latest stable release) | Yes | -| Pre-amendment functionality retired? | No | +| Amendment | fix1781 | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 25BA44241B3BD880770BFA4DA21C7180576831855368CBEC6A3154FDE4A7676E | +| Status | Enabled | +| Default Vote (Latest stable release) | Yes | +| Pre-amendment functionality retired? | No | Fixes a bug where certain XRP endpoints were not checked when detecting circular paths. @@ -651,133 +652,133 @@ Without this amendment, it is possible to have a [payment path](../docs/concepts With this amendment, those payments fail with the [`temBAD_PATH_LOOP` result code](../docs/references/protocol/transactions/transaction-results/tem-codes.md) instead. - ### fixAmendmentMajorityCalc + [fixAmendmentMajorityCalc]: #fixamendmentmajoritycalc -| Amendment | fixAmendmentMajorityCalc | -|:-------------|:-------------------------| -| Amendment ID | 4F46DF03559967AC60F2EB272FEFE3928A7594A45FF774B87A7E540DB0F8F068 | -| Status | Enabled | -| Default Vote (Latest stable release) | Yes | -| Pre-amendment functionality retired? | No | +| Amendment | fixAmendmentMajorityCalc | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 4F46DF03559967AC60F2EB272FEFE3928A7594A45FF774B87A7E540DB0F8F068 | +| Status | Enabled | +| Default Vote (Latest stable release) | Yes | +| Pre-amendment functionality retired? | No | Fixes a bug that could cause an amendment to achieve a majority and later activate with support of slightly less than 80% of trusted validators due to rounding semantics. Without this amendment, the minimum threshold for amendment activation is any value that rounds to 204/256 of trusted validators, which depends on the number of trusted validators at the time. For example, an amendment could activate with exactly 28 out of 36 validators (approximately 77.8%). With this amendment, the actual minimum number of validators needed is never less than 80% of trusted validators. - ### fixAMMClawbackRounding + [fixAMMClawbackRounding]: #fixammclawbackrounding -| Amendment | fixAMMClawbackRounding | -|:-------------|:-------------------------| -| Amendment ID | 5E9586DB3D765B4C5794658FB6BB385071E9838DF4016027E6E26820C8526724 | -| Status | Open for Voting | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | fixAMMClawbackRounding | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 5E9586DB3D765B4C5794658FB6BB385071E9838DF4016027E6E26820C8526724 | +| Status | Open for Voting | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | Fixes an accounting error that can occur when performing an `AMMClawback` transaction on the last LP token holder. Due to rounding errors, the `LPTokenBalance` of the AMM may not match the holder's trust line balance. This amendment adjusts the `LPTokenBalance` to match the trust line balance before the clawback, so invariant checks pass without errors. - ### fixAMMOverflowOffer + [fixAMMOverflowOffer]: #fixammoverflowoffer -| Amendment | fixAMMOverflowOffer | -|:-------------|:--------------------| -| Amendment ID | 12523DF04B553A0B1AD74F42DDB741DE8DC06A03FC089A0EF197E2A87F1D8107 | -| Status | Enabled | -| Default Vote (Latest stable release) | Yes | -| Pre-amendment functionality retired? | No | +| Amendment | fixAMMOverflowOffer | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 12523DF04B553A0B1AD74F42DDB741DE8DC06A03FC089A0EF197E2A87F1D8107 | +| Status | Enabled | +| Default Vote (Latest stable release) | Yes | +| Pre-amendment functionality retired? | No | This amendment fixes the improper handling of large synthetic AMM offers in the payment engine. Due to the importance of this fix, the default vote in the source code has been set to YES. - ### fixAMMv1_1 + [fixAMMv1_1]: #fixammv1_1 -| Amendment | fixAMMv1_1 | -|:-------------|:-----------| -| Amendment ID | 35291ADD2D79EB6991343BDA0912269C817D0F094B02226C1C14AD2858962ED4 | -| Status | Enabled | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | fixAMMv1_1 | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 35291ADD2D79EB6991343BDA0912269C817D0F094B02226C1C14AD2858962ED4 | +| Status | Enabled | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | Fixes AMM offer rounding and low quality order book offers from blocking the AMM. - ### fixAMMv1_2 + [fixAMMv1_2]: #fixammv1_2 -| Amendment | fixAMMv1_2 | -|:-------------|:-----------| -| Amendment ID | 1E7ED950F2F13C4F8E2A54103B74D57D5D298FFDBD005936164EE9E6484C438C | -| Status | Enabled | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | fixAMMv1_2 | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 1E7ED950F2F13C4F8E2A54103B74D57D5D298FFDBD005936164EE9E6484C438C | +| Status | Enabled | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | Fixes two bugs in Automated Market Maker (AMM) transaction processing: - Fixes a bug that causes AMMWithdraw to not properly apply a reserve check before creating trust lines in some cases. - Fixes a bug in payment processing that causes cross-currency payments not to use the full amount of liquidity available from the combination of AMM and order books in some cases. - ### fixAMMv1_3 + [fixAMMv1_3]: #fixammv1_3 -| Amendment | fixAMMv1_3 | -|:-------------|:-----------| -| Amendment ID | 7CA70A7674A26FA517412858659EBC7EDEEF7D2D608824464E6FDEFD06854E14 | -| Status | Enabled | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | fixAMMv1_3 | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 7CA70A7674A26FA517412858659EBC7EDEEF7D2D608824464E6FDEFD06854E14 | +| Status | Enabled | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | Adds several fixes to Automated Market Maker code, specifically: - Add several invariant checks to ensure that AMMs function as designed. - Add rounding to AMM deposit and withdraw to ensure that the AMM's balance meets the invariant: - - On deposit, tokens out are rounded downward and deposit amount is rounded upward. - - On withdrawal, tokens in are rounded upward and withdrawal amount is rounded downward. + - On deposit, tokens out are rounded downward and deposit amount is rounded upward. + - On withdrawal, tokens in are rounded upward and withdrawal amount is rounded downward. - Fix validation of [AMMBid transactions][] to ensure that `AuthAccounts` cannot contain duplicates or the transaction sender. - ### fixCheckThreading + [fixCheckThreading]: #fixcheckthreading -| Amendment | fixCheckThreading | -|:-------------|:------------------| -| Amendment ID | 8F81B066ED20DAECA20DF57187767685EEF3980B228E0667A650BAF24426D3B4 | -| Status | Enabled | -| Default Vote (Latest stable release) | Yes | -| Pre-amendment functionality retired? | No | +| Amendment | fixCheckThreading | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 8F81B066ED20DAECA20DF57187767685EEF3980B228E0667A650BAF24426D3B4 | +| Status | Enabled | +| Default Vote (Latest stable release) | Yes | +| Pre-amendment functionality retired? | No | Changes the way Checks transactions affect account metadata, so that Checks are properly added to the [account](../docs/concepts/accounts/index.md) history of the receiving account. (Specifically, they update the `PreviousTxnID` and `PreviousTxnLedgerSeq` fields of the receiving account's [AccountRoot object](../docs/references/protocol/ledger-data/ledger-entry-types/accountroot.md), which can be used to trace the "thread" of transactions that affected the account and the objects it owns.) Without this amendment, Checks transactions ([CheckCreate][], [CheckCash][], and [CheckCancel][]) only update the account history of the sender. With this amendment, those transactions affect both the sending and receiving accounts. This amendment has no effect unless the [Checks amendment](#checks) is also enabled. - ### fixDirectoryLimit + [fixDirectoryLimit]: #fixdirectorylimit -| Amendment | fixdirectorylimit | -|:-------------|:----------------------| -| Amendment ID | 41765F664A8D67FF03DDB1C1A893DE6273690BA340A6C2B07C8D29D0DD013D3A | -| Status | Open for Voting | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | fixdirectorylimit | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 41765F664A8D67FF03DDB1C1A893DE6273690BA340A6C2B07C8D29D0DD013D3A | +| Status | Open for Voting | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | This amendment removes the directory page limit. Object reserve requirements provide enough incentive to avoid creating unnecessary objects on the XRP Ledger. - ### fixDisallowIncomingV1 + [fixDisallowIncomingV1]: #fixdisallowincomingv1 -| Amendment | fixDisallowIncomingV1 | -|:-------------|:----------------------| -| Amendment ID | 15D61F0C6DB6A2F86BCF96F1E2444FEC54E705923339EC175BD3E517C8B3FF91 | -| Status | Enabled | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | fixDisallowIncomingV1 | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 15D61F0C6DB6A2F86BCF96F1E2444FEC54E705923339EC175BD3E517C8B3FF91 | +| Status | Enabled | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | This amendment fixes an issue with approving trustlines after a user enables the `lsfDisallowIncomingTrustline` flag on their account. @@ -792,16 +793,16 @@ With this amendment, the issuer can now authorize the trustline. This amendment has no effect unless the [DisallowIncoming][] amendment is enabled. - ### fixEmptyDID + [fixEmptyDID]: #fixemptydid -| Amendment | fixEmptyDID | -|:-------------|:------------| -| Amendment ID | 755C971C29971C9F20C6F080F2ED96F87884E40AD19554A5EBECDCEC8A1F77FE | -| Status | Enabled | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | fixEmptyDID | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 755C971C29971C9F20C6F080F2ED96F87884E40AD19554A5EBECDCEC8A1F77FE | +| Status | Enabled | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | This amendment adds an additional check to prevent empty DID ledger entries from being created. @@ -811,32 +812,32 @@ Without this amendment, an empty DID can be created, which takes up space and co This amendment has no effect unless the [DID][] amendment is enabled. - ### fixEnforceNFTokenTrustline + [fixEnforceNFTokenTrustline]: #fixenforcenftokentrustline -| Amendment | fixEnforceNFTokenTrustline | -|:-------------|:---------------------------| -| Amendment ID | 763C37B352BE8C7A04E810F8E462644C45AFEAD624BF3894A08E5C917CF9FF39 | -| Status | Enabled | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | fixEnforceNFTokenTrustline | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 763C37B352BE8C7A04E810F8E462644C45AFEAD624BF3894A08E5C917CF9FF39 | +| Status | Enabled | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | Fixes two bugs relating to the handling of NFT transfer fees and trust lines: - Adds a check to [NFTokenAcceptOffer transactions][] to ensure that the minter has a trust line to accept the transfer fee. Without this amendment, the check only applies when an NFT trade offer is created, not when the offer is accepted; as a result, if a necessary trust line is removed in between creating and accepting the offer, the trust line is inappropriate re-created when the offer is accepted. With this amendment, the transaction to accept the NFT trade offer fails if the minter no longer has a trust line to accept the transfer fee. (For more detail, see [issue #4925](https://github.com/XRPLF/rippled/issues/4925).) - Adjusts a check for the presence of a trust line when the minter of the NFT is also the issuer of the fungible token that would be paid as a transfer fee. Without this amendment, the [NFTokenCreateOffer transaction][] fails with the result code `tecNO_LINE` if the NFT in question has a transfer fee, the offer amount is denominated in fungible tokens issued by the minter, and the account placing the offer does not have a trust line for those tokens. With the amendment, the offer can be created successfully. (For more detail, see [issue #4941](https://github.com/XRPLF/rippled/issues/4941).) - ### fixEnforceNFTokenTrustlineV2 + [fixEnforceNFTokenTrustlineV2]: #fixenforcenftokentrustlinev2 -| Amendment | fixEnforceNFTokenTrustlineV2 | -|:-------------|:-----------------------------| -| Amendment ID | B32752F7DCC41FB86534118FC4EEC8F56E7BD0A7DB60FD73F93F257233C08E3A | -| Status | Enabled | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | fixEnforceNFTokenTrustlineV2 | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | B32752F7DCC41FB86534118FC4EEC8F56E7BD0A7DB60FD73F93F257233C08E3A | +| Status | Enabled | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | Fix a bug where NFT transfer fees could bypass certain limitations on receiving tokens, specifically: @@ -845,16 +846,16 @@ Fix a bug where NFT transfer fees could bypass certain limitations on receiving Without this amendment, NFT transfer fees could be paid to an NFT issuer circumventing these restrictions. - ### fixFillOrKill + [fixFillOrKill]: #fixfillorkill -| Amendment | fixFillOrKill | -|:-------------|:--------------| -| Amendment ID | 3318EA0CF0755AF15DAC19F2B5C5BCBFF4B78BDD57609ACCAABE2C41309B051A | -| Status | Enabled | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | fixFillOrKill | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 3318EA0CF0755AF15DAC19F2B5C5BCBFF4B78BDD57609ACCAABE2C41309B051A | +| Status | Enabled | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | This amendment fixes an issue introduced in the `FlowCross` amendment. Offers with the `tfFillOrKill` flag set and `tfSell` not set will fail if the exchange rate on the offer is better than, but doesn't exactly match, the order book rate. @@ -862,16 +863,16 @@ This amendment enables the payment engine to properly handle this scenario and a This amendment has no effect unless the [FlowCross][] amendment is enabled. - ### fixFrozenLPTokenTransfer + [fixFrozenLPTokenTransfer]: #fixfrozenlptokentransfer -| Amendment | fixFrozenLPTokenTransfer | -|:-------------|:-------------------------| -| Amendment ID | 83FD6594FF83C1D105BD2B41D7E242D86ECB4A8220BD9AF4DA35CB0F69E39B2A | -| Status | Enabled | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | fixFrozenLPTokenTransfer | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 83FD6594FF83C1D105BD2B41D7E242D86ECB4A8220BD9AF4DA35CB0F69E39B2A | +| Status | Enabled | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | This amendment fixes a loophole that enabled blacklisted accounts to transfer frozen LP tokens through alternative mechanisms, such as such as payments, checks, offers, or NFTs. @@ -880,51 +881,52 @@ With this amendment enabled, if an LP token is associated with a liquidity pool 1. The holder can't send the frozen LP token to other accounts. 2. The holder can receive frozen LP tokens, but can't send them out (similar to frozen trust lines). - ### fixIncludeKeyletFields + [fixIncludeKeyletFields]: #fixincludekeyletfields -| Amendment | fixIncludeKeyletFields | -|:-------------|:--------------------| -| Amendment ID | 6143A27B71F7DAF9330ECA7C5EC3D54C8083A4FDEF7016737EEC06AB61E82EE0 | -| Status | Open for Voting | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | fixIncludeKeyletFields | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 6143A27B71F7DAF9330ECA7C5EC3D54C8083A4FDEF7016737EEC06AB61E82EE0 | +| Status | Open for Voting | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | This amendment adds fields to ledger entries in cases where those fields are part of the identifying information that forms their ledger entry ID: - - Add a `Sequence` field to `Escrow` and `PayChannel` entries. - - Add an `Owner` field to `SignerList` entries. - - Add an `OracleDocumentID` field to `Oracle` entries. + +- Add a `Sequence` field to `Escrow` and `PayChannel` entries. +- Add an `Owner` field to `SignerList` entries. +- Add an `OracleDocumentID` field to `Oracle` entries. Without this amendment, some ledger entries do not store all the data that was used to create their ledger entry ID. After this amendment is enabled, ledger entries of those types have those fields added when the ledger entry is created or modified. Ledger entries that were created before the amendment are not changed until a transaction modifies them. The presence of a `Sequence` field on Escrow ledger entries is especially useful since you need that value to finish or cancel the escrow, and you otherwise might have to look up the sequence number of the transaction that created the escrow. - ### fixInnerObjTemplate + [fixInnerObjTemplate]: #fixinnerobjtemplate -| Amendment | fixInnerObjTemplate | -|:-------------|:--------------------| -| Amendment ID | C393B3AEEBF575E475F0C60D5E4241B2070CC4D0EB6C4846B1A07508FAEFC485 | -| Status | Enabled | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | fixInnerObjTemplate | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | C393B3AEEBF575E475F0C60D5E4241B2070CC4D0EB6C4846B1A07508FAEFC485 | +| Status | Enabled | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | This amendment fixes an issue with accessing the AMM `sfTradingFee` and `sfDiscountedFee` fields in the inner objects of `sfVoteEntry` and `sfAuctionSlot`. Currently, the inner object template isn't set upon object creation. If the object contains an `soeDEFAULT` field and is initially set to the default value, accessing the field results in a `tefEXCEPTION` error in some circumstances. This amendment adds an `STObject` constructor overload that includes an additional boolean argument to set the inner object template. - ### fixInnerObjTemplate2 + [fixInnerObjTemplate2]: #fixinnerobjtemplate2 -| Amendment | fixInnerObjTemplate2 | -|:-------------|:---------------------| -| Amendment ID | 9196110C23EA879B4229E51C286180C7D02166DA712559F634372F5264D0EC59 | -| Status | Enabled | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | fixInnerObjTemplate2 | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 9196110C23EA879B4229E51C286180C7D02166DA712559F634372F5264D0EC59 | +| Status | Enabled | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | This amendment standardizes the way inner objects ([Object-type fields in the canonical binary format](../docs/references/protocol/binary-format.md#object-fields)) have their formats and default values enforced. This is the same type of check that the `fixInnerObjTemplate` applies to AMM-related fields, but this amendment applies to all other types of inner objects, namely: @@ -933,36 +935,36 @@ This amendment standardizes the way inner objects ([Object-type fields in the ca - Members of the [`Signers` array](../docs/references/protocol/transactions/common-fields.md#signers-field) of multi-signed transactions. - Members of the `SignerEntries` array of [SignerList ledger entries][SignerList entry]. - Several parts of the [XChainBridge][] amendment {% not-enabled /%}: - - Members of the `XChainClaimAttestations` array in [XChainOwnedClaimID ledger entries][XChainOwnedClaimID entry] - - Members of the `XChainCreateAccountAttestations` array in [XChainOwnedCreateAccountClaimID ledger entries][XChainOwnedCreateAccountClaimID entry] - - Members of the `XChainClaimAttestationBatch` array in [XChainAddClaimAttestation transactions][] - - Members of the `XChainCreateAccountAttestationBatch` array in [XChainAddClaimAttestation transactions][] + - Members of the `XChainClaimAttestations` array in [XChainOwnedClaimID ledger entries][XChainOwnedClaimID entry] + - Members of the `XChainCreateAccountAttestations` array in [XChainOwnedCreateAccountClaimID ledger entries][XChainOwnedCreateAccountClaimID entry] + - Members of the `XChainClaimAttestationBatch` array in [XChainAddClaimAttestation transactions][] + - Members of the `XChainCreateAccountAttestationBatch` array in [XChainAddClaimAttestation transactions][] It is believed that this change does not affect transaction processing, but it is possible that there are edge cases where it could cause an improperly formatted transaction to receive a different error. With this amendment, any such transactions would fail with a different result code such as `temMALFORMED`; without this amendment, those transactions would be expected to fail with the code `tefEXCEPTION` instead. - ### fixInvalidTxFlags + [fixInvalidTxFlags]: #fixinvalidtxflags -| Amendment | fixInvalidTxFlags | -|:-------------|:------------------| -| Amendment ID | 8EC4304A06AF03BE953EA6EDA494864F6F3F30AA002BABA35869FBB8C6AE5D52 | -| Status | Enabled | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | fixInvalidTxFlags | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 8EC4304A06AF03BE953EA6EDA494864F6F3F30AA002BABA35869FBB8C6AE5D52 | +| Status | Enabled | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | Adds flag checks for `CredentialCreate`, `CredentialAccept`, `CredentialDelete`, and `SignerListSet` transactions. With this amendment enabled, these transactions will return a `temINVALID_FLAG` error if they include a flag that doesn't exist, or a contradictory combination of flags. - ### fixMasterKeyAsRegularKey + [fixMasterKeyAsRegularKey]: #fixmasterkeyasregularkey -| Amendment | fixMasterKeyAsRegularKey | -|:-------------|:-------------------------| -| Amendment ID | C4483A1896170C66C098DEA5B0E024309C60DC960DE5F01CD7AF986AA3D9AD37 | -| Status | Enabled | -| Default Vote (Latest stable release) | Yes | -| Pre-amendment functionality retired? | No | +| Amendment | fixMasterKeyAsRegularKey | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | C4483A1896170C66C098DEA5B0E024309C60DC960DE5F01CD7AF986AA3D9AD37 | +| Status | Enabled | +| Default Vote (Latest stable release) | Yes | +| Pre-amendment functionality retired? | No | Fixes a bug where accounts can set their regular key pair to match their master key pair, but cannot send transactions signed by the key if the master key is disabled. @@ -970,59 +972,59 @@ Without this fix, a user can unintentionally "black hole" their account by setti With this amendment enabled, a SetRegularKey transaction cannot set the regular key to match the master key; such a transaction results in the transaction code `temBAD_REGKEY`. Additionally, this amendment changes the signature verification code so that accounts which _already_ have their regular key set to match their master key can send transactions successfully using the key pair. - ### fixMPTDeliveredAmount + [fixMPTDeliveredAmount]: #fixmptdeliveredamount -| Amendment | fixMPTDeliveredAmount | -|:-------------|:----------------| -| Amendment ID | AB8D932A5F338903FE5BCBD80B611FFED70839ABA3170E9CE01D947C0EDEDCF2 | -| Status | Open for Voting | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | fixMPTDeliveredAmount | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | AB8D932A5F338903FE5BCBD80B611FFED70839ABA3170E9CE01D947C0EDEDCF2 | +| Status | Open for Voting | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | This amendment adds missing `DeliveredAmount` and `delivered_amount` metadata fields from direct MPT `Payment` transactions. Without this amendment, direct MPT payments deliver the full amount but do not have the metadata fields to summarize how much was delivered. - ### fixNFTokenDirV1 + [fixNFTokenDirV1]: #fixnftokendirv1 -| Amendment | fixNFTokenDirV1 | -|:-------------|:----------------| -| Amendment ID | 0285B7E5E08E1A8E4C15636F0591D87F73CB6A7B6452A932AD72BBC8E5D1CBE3 | -| Status | Obsolete | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | fixNFTokenDirV1 | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 0285B7E5E08E1A8E4C15636F0591D87F73CB6A7B6452A932AD72BBC8E5D1CBE3 | +| Status | Obsolete | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | This amendment fixes an off-by-one error that occurred in some corner cases when determining which `NFTokenPage` a `NFToken` object belongs on. It also adjusts the constraints of `NFTokenPage` invariant checks, so that certain error cases fail with a suitable error code such as `tecNO_SUITABLE_TOKEN_PAGE` instead of failing with a `tecINVARIANT_FAILED` error code. This amendment has no effect unless the [NonFungibleTokensV1][] amendment is enabled. This amendment is obsolete because its effects are included as part of [NonFungibleTokensV1_1][]. - ### fixNFTokenNegOffer + [fixNFTokenNegOffer]: #fixnftokennegoffer -| Amendment | fixNFTokenNegOffer | -|:-------------|:-------------------| -| Amendment ID | 36799EA497B1369B170805C078AEFE6188345F9B3E324C21E9CA3FF574E3C3D6 | -| Status | Obsolete | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | fixNFTokenNegOffer | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 36799EA497B1369B170805C078AEFE6188345F9B3E324C21E9CA3FF574E3C3D6 | +| Status | Obsolete | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | This amendment fixes a bug in the [NonFungibleTokensV1][] amendment code where NFTs could be traded for negative amounts of money. Without this fix, users could place and accept an offer to buy or sell a `NFToken` for a negative amount of money, which resulted in the person "buying" the NFT also receiving money from the "seller". With this amendment, NFT offers for negative amounts are considered invalid. This amendment has no effect unless the [NonFungibleTokensV1][] amendment is enabled. This amendment is obsolete because its effects are included as part of [NonFungibleTokensV1_1][]. - ### fixNFTokenPageLinks + [fixNFTokenPageLinks]: #fixnftokenpagelinks -| Amendment | fixNFTokenPageLinks | -|:-------------|:--------------------| -| Amendment ID | C7981B764EC4439123A86CC7CCBA436E9B3FF73B3F10A0AE51882E404522FC41 | -| Status | Enabled | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | fixNFTokenPageLinks | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | C7981B764EC4439123A86CC7CCBA436E9B3FF73B3F10A0AE51882E404522FC41 | +| Status | Enabled | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | This amendment fixes a bug that can cause NFT directories to have missing links in the middle of the directory chain. It also introduces invariant checks that can prevent similar types of corruption from occurring in the future, and introduces a new transaction type: @@ -1030,16 +1032,16 @@ This amendment fixes a bug that can cause NFT directories to have missing links Without this amendment, it is possible in specific circumstances to delete the last page of an NFT directory, then later create a new last page that is missing a link to the previous page. For a detailed description of the scenario that can cause this problem, see [PR #4945](https://github.com/XRPLF/rippled/pull/4945). With this amendment, the bug that caused that corruption is fixed; additionally, a new invariant check ensures that other bugs cannot remove the last page inappropriately. - ### fixNFTokenRemint + [fixNFTokenRemint]: #fixnftokenremint -| Amendment | fixNFTokenRemint | -|:-------------|:-----------------| -| Amendment ID | AE35ABDEFBDE520372B31C957020B34A7A4A9DC3115A69803A44016477C84D6E | -| Status | Enabled | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | fixNFTokenRemint | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | AE35ABDEFBDE520372B31C957020B34A7A4A9DC3115A69803A44016477C84D6E | +| Status | Enabled | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | Amendment `fixNFTokenRemint` would change the way NFT sequence numbers are constructed to prevent a situation where the same NFT could be minted more than once with the same sequence number, creating a possible collision scenario. This amendment would change the construction of NFT sequence numbers to: @@ -1051,29 +1053,29 @@ The amendment also introduces a new account deletion restriction. An account can {% admonition type="danger" name="Warning" %}This is a **breaking change** for projects & tools relying on their own locally computed NFTokenID for minted tokens. If you have code to calculate NFTokenIDs, you must update it to match the new fomula. For an example of how to do so with backwards compatibility, see this [well known reference implementation in JavaScript](https://gist.github.com/N3TC4T/a20fb528931ed009ebdd708be4938748?permalink_comment_id=4738760#gistcomment-4738760).{% /admonition %} - ### fixNFTokenReserve + [fixNFTokenReserve]: #fixnftokenreserve -| Amendment | fixNFTokenReserve | -|:-------------|:------------------| -| Amendment ID | 03BDC0099C4E14163ADA272C1B6F6FABB448CC3E51F522F978041E4B57D9158C | -| Status | Enabled | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | fixNFTokenReserve | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 03BDC0099C4E14163ADA272C1B6F6FABB448CC3E51F522F978041E4B57D9158C | +| Status | Enabled | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | This amendment adds a check to the `NFTokenAcceptOffer` transactor to see if the `OwnerCount` changes. If it does, it makes an additional check that the reserve requirement is met for the updated owner count. - ### fixNonFungibleTokensV1_2 + [fixNonFungibleTokensV1_2]: #fixnonfungibletokensv1_2 -| Amendment | fixNonFungibleTokensV1_2 | -|:-------------|:-------------------------| -| Amendment ID | 73761231F7F3D94EC3D8C63D91BDD0D89045C6F71B917D1925C01253515A6669 | -| Status | Enabled | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | fixNonFungibleTokensV1_2 | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 73761231F7F3D94EC3D8C63D91BDD0D89045C6F71B917D1925C01253515A6669 | +| Status | Enabled | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | Amendment `fixNonFungibleTokensV1_2` is a combination of bug fixes that have been individually merged into feature/nft-fixes through the pull request process. @@ -1105,46 +1107,46 @@ If you set a destination on an NFT offer, only that destination can settle throu See [Issue 4373](https://github.com/XRPLF/rippled/issues/4373). - ### fixPayChanCancelAfter + [fixPayChanCancelAfter]: #fixpaychancancelafter -| Amendment | fixPayChanCancelAfter | -|:-------------|:----------------------| -| Amendment ID | D3456A862DC07E382827981CA02E21946E641877F19B8889031CC57FDCAC83E2 | -| Status | Enabled | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | fixPayChanCancelAfter | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | D3456A862DC07E382827981CA02E21946E641877F19B8889031CC57FDCAC83E2 | +| Status | Enabled | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | Prevents new payment channels from being created with a `CancelAfter` time that is before the current ledger. Instead, the [PaymentChannelCreate transaction][] fails with the result code `tecEXPIRED`. Without this amendment, transactions can create a payment channel whose `CancelAfter` time is in the past. This payment channel is automatically removed as expired by the next transaction to affect it. - ### fixPayChanRecipientOwnerDir + [fixPayChanRecipientOwnerDir]: #fixpaychanrecipientownerdir -| Amendment | fixPayChanRecipientOwnerDir | -|:-------------|:----------------------------| -| Amendment ID | 621A0B264970359869E3C0363A899909AAB7A887C8B73519E4ECF952D33258A8 | -| Status | Enabled | -| Default Vote (Latest stable release) | Yes | -| Pre-amendment functionality retired? | No | +| Amendment | fixPayChanRecipientOwnerDir | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 621A0B264970359869E3C0363A899909AAB7A887C8B73519E4ECF952D33258A8 | +| Status | Enabled | +| Default Vote (Latest stable release) | Yes | +| Pre-amendment functionality retired? | No | Changes the [PaymentChannelCreate transaction][] type so that it adds new [payment channels](../docs/concepts/payment-types/payment-channels.md) to the recipient's [owner directory](../docs/references/protocol/ledger-data/ledger-entry-types/directorynode.md). Without this amendment, new payment channels are added only to the sender's owner directory; with this amendment enabled, newly-created payment channels are added to both owner directories. Existing payment channels are unchanged. This change prevents accounts from being deleted if they are the recipient for open payment channels, except for channels created before this amendment. - ### fixPreviousTxnID + [fixPreviousTxnID]: #fixprevioustxnid -| Amendment | fixPreviousTxnID | -|:-------------|:-----------------| -| Amendment ID | 7BB62DC13EC72B775091E9C71BF8CF97E122647693B50C5E87A80DFD6FCFAC50 | -| Status | Enabled | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | fixPreviousTxnID | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 7BB62DC13EC72B775091E9C71BF8CF97E122647693B50C5E87A80DFD6FCFAC50 | +| Status | Enabled | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | This amendment adds `PreviousTxnID` and `PreviousTxnLgrSequence` fields to ledger entries that did not already have them, namely `DirectoryNode`, `Amendments`, `FeeSettings`, `NegativeUNL`, and `AMM`. @@ -1152,46 +1154,46 @@ Ledger entries that were created before this amendment was enabled will get the Without this amendment, some types of ledger entries don't have those fields, which makes it harder to trace the history of modifications to those ledger entries. - ### fixPriceOracleOrder + [fixPriceOracleOrder]: #fixpriceoracleorder -| Amendment | fixPriceOracleOrder | -|:-------------|:--------------------| -| Amendment ID | FF2D1E13CF6D22427111B967BD504917F63A900CECD320D6FD3AC9FA90344631 | -| Status | Open for Voting | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | fixPriceOracleOrder | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | FF2D1E13CF6D22427111B967BD504917F63A900CECD320D6FD3AC9FA90344631 | +| Status | Open for Voting | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | Fixes an issue where the order of asset pair data is different from when a price oracle is created versus when it is updated. This amendment ensures asset pairs follow a canonical order at all times, so you can predictably look up asset prices. - ### fixQualityUpperBound + [fixQualityUpperBound]: #fixqualityupperbound -| Amendment | fixQualityUpperBound | -|:-------------|:---------------------| -| Amendment ID | 89308AF3B8B10B7192C4E613E1D2E4D9BA64B2EE2D5232402AE82A6A7220D953 | -| Status | Enabled | -| Default Vote (Latest stable release) | Yes | -| Pre-amendment functionality retired? | No | +| Amendment | fixQualityUpperBound | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 89308AF3B8B10B7192C4E613E1D2E4D9BA64B2EE2D5232402AE82A6A7220D953 | +| Status | Enabled | +| Default Vote (Latest stable release) | Yes | +| Pre-amendment functionality retired? | No | Fixes a bug in unused code for estimating the ratio of input to output of individual steps in cross-currency payments. This amendment has no known impact on transaction processing. - ### fixReducedOffersV1 + [fixReducedOffersV1]: #fixreducedoffersv1 -| Amendment | fixReducedOffersV1 | -|:-------------|:-------------------| -| Amendment ID | 27CD95EE8E1E5A537FF2F89B6CEB7C622E78E9374EBD7DCBEDFAE21CD6F16E0A | -| Status | Enabled | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | fixReducedOffersV1 | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 27CD95EE8E1E5A537FF2F89B6CEB7C622E78E9374EBD7DCBEDFAE21CD6F16E0A | +| Status | Enabled | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | Adjusts rounding to prevent order books from being blocked by reduced offers whose exchange rate is affected by rounding of the remaining amounts. @@ -1205,29 +1207,29 @@ With this amendment, the exchange rate of a reduced offer is rounded such that i Without this amendment, an offer with very small amounts remaining can have a a much worse exchange rate after rounding than it had initially. This can cause an offer for very small amounts to "block" better offers in the same order book from being taken. - ### fixReducedOffersV2 + [fixReducedOffersV2]: #fixreducedoffersv2 -| Amendment | fixReducedOffersV2 | -|:-------------|:-------------------| -| Amendment ID | 31E0DA76FB8FB527CADCDF0E61CB9C94120966328EFA9DCA202135BAF319C0BA | -| Status | Enabled | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | fixReducedOffersV2 | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 31E0DA76FB8FB527CADCDF0E61CB9C94120966328EFA9DCA202135BAF319C0BA | +| Status | Enabled | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | This amendment adjusts rounding in an additional case that can cause an order book to become blocked by a "reduced" offer. This addresses the same symptoms as the fixReducedOffersV1 amendment, but in an additional case that was not covered by that amendment. - ### fixRemoveNFTokenAutoTrustLine + [fixRemoveNFTokenAutoTrustLine]: #fixremovenftokenautotrustline -| Amendment | fixRemoveNFTokenAutoTrustLine | -|:-------------|:------------------------------| -| Amendment ID | DF8B4536989BDACE3F934F29423848B9F1D76D09BE6A1FCFE7E7F06AA26ABEAD | -| Status | Enabled | -| Default Vote (Latest stable release) | Yes | -| Pre-amendment functionality retired? | No | +| Amendment | fixRemoveNFTokenAutoTrustLine | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | DF8B4536989BDACE3F934F29423848B9F1D76D09BE6A1FCFE7E7F06AA26ABEAD | +| Status | Enabled | +| Default Vote (Latest stable release) | Yes | +| Pre-amendment functionality retired? | No | Removes the `tfTrustLine` setting on [non-fungible tokens](../docs/concepts/tokens/nfts/index.md), to protect against a denial of service attack on issuers using this flag. With this amendment enabled, a [NFTokenMint transaction](../docs/references/protocol/transactions/types/nftokenmint.md) with the `tfTrustLine` flag enabled is considered invalid and cannot be confirmed by consensus; new `NFToken` objects cannot be minted with the flag. @@ -1237,16 +1239,16 @@ This amendment does not change the code for `NFToken` objects that have already This amendment has no effect unless either [NonFungibleTokensV1][] or [NonFungibleTokensV1_1][] is enabled. To protect issuers, this amendment should be enabled _before_ [NonFungibleTokensV1][] or [NonFungibleTokensV1_1][]. - ### fixRmSmallIncreasedQOffers + [fixRmSmallIncreasedQOffers]: #fixrmsmallincreasedqoffers -| Amendment | fixRmSmallIncreasedQOffers | -|:-------------|:---------------------------| -| Amendment ID | B6B3EEDC0267AB50491FDC450A398AF30DBCD977CECED8BEF2499CAB5DAC19E2 | -| Status | Enabled | -| Default Vote (Latest stable release) | Yes | -| Pre-amendment functionality retired? | No | +| Amendment | fixRmSmallIncreasedQOffers | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | B6B3EEDC0267AB50491FDC450A398AF30DBCD977CECED8BEF2499CAB5DAC19E2 | +| Status | Enabled | +| Default Vote (Latest stable release) | Yes | +| Pre-amendment functionality retired? | No | This amendment fixes an issue where certain Offers, when almost completely consumed, have a much lower exchange rate than when they were first placed. This occurs when the remaining amounts of one or both assets are so small that they cannot be rounded to a similar ratio as when the Offer was placed. @@ -1254,29 +1256,29 @@ Without this amendment, an Offer in this state blocks Offers with better rates d With this amendment, payments and trades can remove these types of Offers the same way that transactions normally remove fully consumed or unfunded Offers. - ### fixSTAmountCanonicalize + [fixSTAmountCanonicalize]: #fixstamountcanonicalize -| Amendment | fixSTAmountCanonicalize | -|:-------------|:------------------------| -| Amendment ID | 452F5906C46D46F407883344BFDD90E672B672C5E9943DB4891E3A34FEEEB9DB | -| Status | Enabled | -| Default Vote (Latest stable release) | Yes | -| Pre-amendment functionality retired? | No | +| Amendment | fixSTAmountCanonicalize | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 452F5906C46D46F407883344BFDD90E672B672C5E9943DB4891E3A34FEEEB9DB | +| Status | Enabled | +| Default Vote (Latest stable release) | Yes | +| Pre-amendment functionality retired? | No | Fixes an edge case in [deserializing](../docs/references/protocol/binary-format.md) Amount-type fields. Without this amendment, in some rare cases the operation could result in otherwise valid serialized amounts overflowing during deserialization. With this amendment, the XRP Ledger detects error conditions more quickly and eliminates the problematic corner cases. - ### fixTakerDryOfferRemoval + [fixTakerDryOfferRemoval]: #fixtakerdryofferremoval -| Amendment | fixTakerDryOfferRemoval | -|:-------------|:------------------------| -| Amendment ID | 2CD5286D8D687E98B41102BDD797198E81EA41DF7BD104E6561FEB104EFF2561 | -| Status | Enabled | -| Default Vote (Latest stable release) | Yes | -| Pre-amendment functionality retired? | No | +| Amendment | fixTakerDryOfferRemoval | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 2CD5286D8D687E98B41102BDD797198E81EA41DF7BD104E6561FEB104EFF2561 | +| Status | Enabled | +| Default Vote (Latest stable release) | Yes | +| Pre-amendment functionality retired? | No | Fixes a bug in [auto-bridging](../docs/concepts/tokens/decentralized-exchange/autobridging.md) that can leave a dry offer in the XRP Ledger. A dry offer is an offer that, if crossed, cannot yield any funds. @@ -1284,61 +1286,61 @@ Without this fix, the dry offer remains on the ledger and counts toward its owne With this amendment enabled, the XRP Ledger removes these dry offers when they're matched in auto-bridging. - ### fixTokenEscrowV1 + [fixTokenEscrowV1]: #fixtokenescrowv1 -| Amendment | fixTokenEscrowV1 | -|:-------------|:-----------------| -| Amendment ID | 32B8614321F7E070419115ABEAB1742EA20F3E3AF34432B5E2F474F8083260DC | -| Status | Open for Voting | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | fixTokenEscrowV1 | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 32B8614321F7E070419115ABEAB1742EA20F3E3AF34432B5E2F474F8083260DC | +| Status | Open for Voting | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | Fixes an accounting error in MPT escrows. Specifically, when an escrow unlocks MPTs that have a transfer fee, the system incorrectly reduces the MPT issuer's locked token balance by the gross amount (without fees) rather than the net amount (with fees). This leads to discrepancies in the token's total supply accounting. This amendment ensures that when escrowed MPTs are unlocked, the issuer's locked amount is reduced by the net amount, and the total supply is reduced by the transfer fees. - ### fixTrustLinesToSelf + [fixTrustLinesToSelf]: #fixtrustlinestoself -| Amendment | fixTrustLinesToSelf | -|:-------------|:--------------------| -| Amendment ID | F1ED6B4A411D8B872E65B9DCB4C8B100375B0DD3D62D07192E011D6D7F339013 | -| Status | Enabled | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | fixTrustLinesToSelf | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | F1ED6B4A411D8B872E65B9DCB4C8B100375B0DD3D62D07192E011D6D7F339013 | +| Status | Enabled | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | This amendment removes two trust lines from an account to itself that were created due to an old bug (both on 2013-05-07). When the amendment becomes enabled, it deletes trust lines with the IDs `2F8F21EFCAFD7ACFB07D5BB04F0D2E18587820C7611305BB674A64EAB0FA71E1` and `326035D5C0560A9DA8636545DD5A1B0DFCFF63E68D491B5522B767BB00564B1A` if they exist. After doing so, the amendment does nothing else. On test networks that do not have these trust lines, the amendment has no effect. - ### fixUniversalNumber + [fixUniversalNumber]: #fixuniversalnumber -| Amendment | fixUniversalNumber | -|:-------------|:-------------------| -| Amendment ID | 2E2FB9CF8A44EB80F4694D38AADAE9B8B7ADAFD2F092E10068E61C98C4F092B0 | -| Status | Enabled | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | fixUniversalNumber | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 2E2FB9CF8A44EB80F4694D38AADAE9B8B7ADAFD2F092E10068E61C98C4F092B0 | +| Status | Enabled | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | Simplifies and unifies the code for decimal floating point math. In some cases, this provides slightly better accuracy than the previous code, resulting in calculations whose least significant digits are different than when calculated with the previous code. The different results may cause other edge case differences where precise calculations are used, such as ranking of Offers or processing of payments that use several different paths. Without this amendment, the code continues to use separate calculations for `STAmount` and `IOUAmount` objects, and [Automated Market Maker (XLS-30d)](https://github.com/XRPLF/XRPL-Standards/discussions/78) uses a third class for calculations. - ### fixXChainRewardRounding + [fixXChainRewardRounding]: #fixxchainrewardrounding -| Amendment | fixXChainRewardRounding | -|:-------------|:------------------------| -| Amendment ID | 2BF037D90E1B676B17592A8AF55E88DB465398B4B597AE46EECEE1399AB05699 | -| Status | Open for Voting | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | fixXChainRewardRounding | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 2BF037D90E1B676B17592A8AF55E88DB465398B4B597AE46EECEE1399AB05699 | +| Status | Open for Voting | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | This amendment ensures that reward shares for cross-chain transactions are always rounded down. This preserves the original intended behavior. @@ -1346,31 +1348,31 @@ Without this amendment, the [XChainBridge][] amendment has an incompatibility wi This amendment restores the intended rounding behavior. It has no effect unless both the [XChainBridge][] and [fixUniversalNumber][] amendments are also enabled. - ### Flow + [Flow]: #flow -| Amendment | Flow | -|:-------------|:-----| -| Amendment ID | 740352F2412A9909880C23A559FCECEDA3BE2126FED62FC7660D628A06927F11 | -| Status | Enabled | -| Default Vote (Latest stable release) | Yes | -| Pre-amendment functionality retired? | No | +| Amendment | Flow | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 740352F2412A9909880C23A559FCECEDA3BE2126FED62FC7660D628A06927F11 | +| Status | Enabled | +| Default Vote (Latest stable release) | Yes | +| Pre-amendment functionality retired? | No | Replaces the payment processing engine with a more robust and efficient rewrite called the Flow engine. The new version of the payment processing engine is intended to follow the same rules as the old one, but occasionally produces different results due to floating point rounding. This Amendment supersedes the [FlowV2](https://xrpl.org/blog/2016/flowv2-vetoed.html) amendment. The Flow Engine also makes it easier to improve and expand the payment engine with further Amendments. - ### FlowCross + [FlowCross]: #flowcross -| Amendment | FlowCross | -|:-------------|:----------| -| Amendment ID | 3012E8230864E95A58C60FD61430D7E1B4D3353195F2981DC12B0C7C0950FFAC | -| Status | Enabled | -| Default Vote (Latest stable release) | Yes | -| Pre-amendment functionality retired? | Yes | +| Amendment | FlowCross | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 3012E8230864E95A58C60FD61430D7E1B4D3353195F2981DC12B0C7C0950FFAC | +| Status | Enabled | +| Default Vote (Latest stable release) | Yes | +| Pre-amendment functionality retired? | Yes | Streamlines the offer crossing logic in the XRP Ledger's decentralized exchange. Uses the updated code from the [Flow](#flow) amendment to power offer crossing, so [OfferCreate transactions][] and [Payment transactions][] share more code. This has subtle differences in how offers are processed: @@ -1378,115 +1380,115 @@ Streamlines the offer crossing logic in the XRP Ledger's decentralized exchange. - Due to differences in rounding, some combinations of offers may be ranked higher or lower than by the old logic, and taken preferentially. - The new logic may delete more or fewer offers than the old logic. (This includes cases caused by differences in rounding and offers that were incorrectly removed as unfunded by the old logic.) - ### FlowSortStrands + [FlowSortStrands]: #flowsortstrands -| Amendment | FlowSortStrands | -|:-------------|:----------------| -| Amendment ID | AF8DF7465C338AE64B1E937D6C8DA138C0D63AD5134A68792BBBE1F63356C422 | -| Status | Enabled | -| Default Vote (Latest stable release) | Yes | -| Pre-amendment functionality retired? | No | +| Amendment | FlowSortStrands | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | AF8DF7465C338AE64B1E937D6C8DA138C0D63AD5134A68792BBBE1F63356C422 | +| Status | Enabled | +| Default Vote (Latest stable release) | Yes | +| Pre-amendment functionality retired? | No | Improves the payment engine's calculations for finding the most cost-efficient way to execute a cross-currency transaction. Without this change, the engine simulates a payment through each possible path to calculate the quality (ratio of input to output) of each path. With this change, the engine calculates the theoretical quality of each path without simulating a full payment. With this amendment, the payment engine executes some cross-currency payments much faster, is able to find the most cost-efficient path in more cases, and can enable some payments to succeed in certain conditions where the old payment engine would fail to find enough liquidity. - ### FlowV2 + [FlowV2]: #flowv2 -| Amendment | FlowV2 | -|:-------------|:-------| -| Amendment ID | 5CC22CFF2864B020BD79E0E1F048F63EF3594F95E650E43B3F837EF1DF5F4B26 | -| Status | Obsolete | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | FlowV2 | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 5CC22CFF2864B020BD79E0E1F048F63EF3594F95E650E43B3F837EF1DF5F4B26 | +| Status | Obsolete | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | This is a previous version of the [Flow](#flow) amendment. It was [rejected due to a bug](https://xrpl.org/blog/2016/flowv2-vetoed.html) and removed in version 0.33.0. - ### HardenedValidations + [HardenedValidations]: #hardenedvalidations -| Amendment | HardenedValidations | -|:-------------|:--------------------| -| Amendment ID | 1F4AFA8FA1BC8827AD4C0F682C03A8B671DCDF6B5C4DE36D44243A684103EF88 | -| Status | Enabled | -| Default Vote (Latest stable release) | Yes | -| Pre-amendment functionality retired? | No | +| Amendment | HardenedValidations | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 1F4AFA8FA1BC8827AD4C0F682C03A8B671DCDF6B5C4DE36D44243A684103EF88 | +| Status | Enabled | +| Default Vote (Latest stable release) | Yes | +| Pre-amendment functionality retired? | No | Allows validators to include a new optional field in their validations to attest to the hash of the latest ledger that the validator considers to be fully validated. The consensus process can use this information to increase the robustness of consensus. - ### Hooks + [Hooks]: #hooks -| Amendment | Hooks | -|:-------------|:------| -| Amendment ID | ECE6819DBA5DB528F1A241695F5A9811EF99467CDE22510954FD357780BBD078 | -| Status | In Development | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | Hooks | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | ECE6819DBA5DB528F1A241695F5A9811EF99467CDE22510954FD357780BBD078 | +| Status | In Development | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | Adds on-chain smart contracts in the form of small pieces of code that can run on an account before or after transactions. For more information, see the [Hooks Documentation](https://xrpl-hooks.readme.io/). - ### ImmediateOfferKilled + [ImmediateOfferKilled]: #immediateofferkilled -| Amendment | ImmediateOfferKilled | -|:-------------|:---------------------| -| Amendment ID | 75A7E01C505DD5A179DFE3E000A9B6F1EDDEB55A12F95579A23E15B15DC8BE5A | -| Status | Enabled | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | ImmediateOfferKilled | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 75A7E01C505DD5A179DFE3E000A9B6F1EDDEB55A12F95579A23E15B15DC8BE5A | +| Status | Enabled | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | Changes OfferCreate transactions so that if an Offer uses `tfImmediateOrCancel` and transaction processing kills the Offer without moving any funds, the transaction uses the result code `tecKILLED` instead of `tesSUCCESS`. If the Offer exchanges any amount of funds, even a small amount, the transaction still uses `tesSUCCESS`. There are no other changes to the processing of the transaction (for example, in terms of whether it cleans up expired and unfunded Offers that were encountered in the ledger during transaction processing). Without this amendment, "Immediate or Cancel" Offers that failed to move any funds returned a `tesSUCCESS` result code, which could be confusing because the transaction effectively did nothing. - ### InvariantsV1_1 + [InvariantsV1_1]: #invariantsv1_1 -| Amendment | InvariantsV1_1 | -|:-------------|:---------------| -| Amendment ID | D8ED3BE0B2673496CB49DE8B5588C8805DF7B1DE203F38FE0367ACE703D36C0F | -| Status | In Development | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | InvariantsV1_1 | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | D8ED3BE0B2673496CB49DE8B5588C8805DF7B1DE203F38FE0367ACE703D36C0F | +| Status | In Development | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | This amendment adds several new invariants to protect the ledger against bugs in transaction processing. The developers intend to set it as open for voting after a set of several invariants are implemented. The invariants included are as follows: - When deleting an account, ensure that certain types of ledger entries are also deleted, including that account's `DirectoryNode`, `SignerList`, `NFTokenPage`, and `AMM` directories, if any, are deleted with it. - ### LendingProtocol + [LendingProtocol]: #lendingprotocol -| Amendment | LendingProtocol | -|:-------------|:-----------------| -| Amendment ID | 565B90CA1AB2B9D42208ED10884188C64F9E19083DECB9634AAF06EB03299509 | -| Status | In Development | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | LendingProtocol | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 565B90CA1AB2B9D42208ED10884188C64F9E19083DECB9634AAF06EB03299509 | +| Status | In Development | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | The Lending Protocol enables on-chain, fixed-term, uncollateralized loans using pooled funds from a Single Asset Vault. This implementation relies on off-chain underwriting and risk management to assess the creditworthiness of borrowers, but offers configurable, peer-to-peer loans. Specification: [XLS-66](https://github.com/Tapanito/XRPL-Standards/tree/xls-66-lending-protocol/XLS-0066d-lending-protocol). - ### MPTokensV1 + [MPTokensV1]: #mptokensv1 -| Amendment | MPTokensV1 | -|:-------------|:-----------| -| Amendment ID | 950AE2EA4654E47F04AA8739C0B214E242097E802FD372D24047A89AB1F5EC38 | -| Status | Enabled | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | MPTokensV1 | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 950AE2EA4654E47F04AA8739C0B214E242097E802FD372D24047A89AB1F5EC38 | +| Status | Enabled | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | Implements a new type of fungible token, called a _Multi-Purpose Token_ (MPT). This token type is optimized to be used for common token use cases such as stablecoins, and are intended to avoid some of the complexity inherent to the XRP Ledger's existing fungible tokens which are stored in bidirectional trust lines. This amendment adds the following: @@ -1509,16 +1511,16 @@ Implements a new type of fungible token, called a _Multi-Purpose Token_ (MPT). T - (New) `mpt_holders` method - Returns a list of accounts that hold a specific MPT issuance. - (Updated) `ledger_entry` method - Can look up MPToken and MPTokenIssuance ledger entry types. - ### MultiSign + [MultiSign]: #multisign -| Amendment | MultiSign | -|:-------------|:----------| -| Amendment ID | 4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373 | -| Status | Enabled | -| Default Vote (Latest stable release) | Yes | -| Pre-amendment functionality retired? | Yes | +| Amendment | MultiSign | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373 | +| Status | Enabled | +| Default Vote (Latest stable release) | Yes | +| Pre-amendment functionality retired? | Yes | Introduces [multi-signing](../docs/concepts/accounts/multi-signing.md) as a way to authorize transactions. Creates the [`SignerList` ledger object type](../docs/references/protocol/ledger-data/ledger-entry-types/signerlist.md) and the [`SignerListSet` transaction type](../docs/references/protocol/transactions/types/signerlistset.md). Adds the optional `Signers` field to all transaction types. Modifies some transaction result codes. @@ -1528,24 +1530,24 @@ Signers can be funded or unfunded addresses. Funded addresses in a signer list c An address with a SignerList can disable the master key even if a regular key is not defined. An address with a SignerList can also remove a regular key even if the master key is disabled. The `tecMASTER_DISABLED` transaction result code is renamed `tecNO_ALTERNATIVE_KEY`. The `tecNO_REGULAR_KEY` transaction result is retired and replaced with `tecNO_ALTERNATIVE_KEY`. Additionally, this amendment adds the following new [transaction result codes](../docs/references/protocol/transactions/transaction-results/index.md): -* `temBAD_SIGNER` -* `temBAD_QUORUM` -* `temBAD_WEIGHT` -* `tefBAD_SIGNATURE` -* `tefBAD_QUORUM` -* `tefNOT_MULTI_SIGNING` -* `tefBAD_AUTH_MASTER` - +- `temBAD_SIGNER` +- `temBAD_QUORUM` +- `temBAD_WEIGHT` +- `tefBAD_SIGNATURE` +- `tefBAD_QUORUM` +- `tefNOT_MULTI_SIGNING` +- `tefBAD_AUTH_MASTER` ### MultiSignReserve + [MultiSignReserve]: #multisignreserve -| Amendment | MultiSignReserve | -|:-------------|:-----------------| -| Amendment ID | 586480873651E106F1D6339B0C4A8945BA705A777F3F4524626FF1FC07EFE41D | -| Status | Enabled | -| Default Vote (Latest stable release) | Yes | -| Pre-amendment functionality retired? | No | +| Amendment | MultiSignReserve | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 586480873651E106F1D6339B0C4A8945BA705A777F3F4524626FF1FC07EFE41D | +| Status | Enabled | +| Default Vote (Latest stable release) | Yes | +| Pre-amendment functionality retired? | No | Reduces the [owner reserve](../docs/concepts/accounts/reserves.md#owner-reserves) counted against your XRP Ledger account when it owns a [multi-signing](../docs/concepts/accounts/multi-signing.md) SignerList. @@ -1553,29 +1555,29 @@ Without this amendment, the owner reserve for a SignerList ranges from 15 to 50 With this amendment enabled, the owner reserve for a new SignerList is 5 XRP, regardless of the number of signers. The reserve requirement for previously-created SignerList objects remains unchanged. To reduce the reserve requirement of SignerList objects created before this amendment was enabled, use a [SignerListSet transaction](../docs/references/protocol/transactions/types/signerlistset.md) to replace the SignerList after this amendment has been enabled. (The replacement can be the same as the previous version.) - ### NegativeUNL + [NegativeUNL]: #negativeunl -| Amendment | NegativeUNL | -|:-------------|:------------| -| Amendment ID | B4E4F5D2D6FB84DF7399960A732309C9FD530EAE5941838160042833625A6076 | -| Status | Enabled | -| Default Vote (Latest stable release) | Yes | -| Pre-amendment functionality retired? | No | +| Amendment | NegativeUNL | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | B4E4F5D2D6FB84DF7399960A732309C9FD530EAE5941838160042833625A6076 | +| Status | Enabled | +| Default Vote (Latest stable release) | Yes | +| Pre-amendment functionality retired? | No | Implements a "Negative UNL" system, where the network can track which validators are temporarily offline and disregard those validators for quorum calculations. This can improve the ability of the network to make progress during periods of network instability. - ### NFTokenMintOffer + [NFTokenMintOffer]: #nftokenmintoffer -| Amendment | NFTokenMintOffer | -|:-------------|:-----------------| -| Amendment ID | EE3CF852F0506782D05E65D49E5DCC3D16D50898CD1B646BAE274863401CC3CE | -| Status | Enabled | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | NFTokenMintOffer | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | EE3CF852F0506782D05E65D49E5DCC3D16D50898CD1B646BAE274863401CC3CE | +| Status | Enabled | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | Modifies the process of minting NFTs so that you can also create a sell offer for the token at the same time. @@ -1587,16 +1589,16 @@ With this amendment, an [NFTokenMint transaction][] can simultaneously place a s Without this amendment, you must separately send an [NFTokenCreateOffer transaction][] after minting an NFT to place a sell offer. - ### NonFungibleTokensV1 + [NonFungibleTokensV1]: #nonfungibletokensv1 -| Amendment | NonFungibleTokensV1 | -|:-------------|:--------------------| -| Amendment ID | 3C43D9A973AA4443EF3FC38E42DD306160FBFFDAB901CD8BAA15D09F2597EB87 | -| Status | Obsolete | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | NonFungibleTokensV1 | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 3C43D9A973AA4443EF3FC38E42DD306160FBFFDAB901CD8BAA15D09F2597EB87 | +| Status | Obsolete | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | Adds native support for [non-fungible tokens](../docs/concepts/tokens/nfts/index.md). Standards Draft: [XLS-20d](https://github.com/XRPLF/XRPL-Standards/discussions/46). <!-- SPELLING_IGNORE: xls, 20d --> @@ -1619,16 +1621,16 @@ Additionally, it modifies the [AccountRoot object][] type to add 3 new optional It also modifies the [AccountSet transaction][] type to allow you to set the `NFTokenMinter` field. - ### NonFungibleTokensV1_1 + [NonFungibleTokensV1_1]: #nonfungibletokensv1_1 -| Amendment | NonFungibleTokensV1_1 | -|:-------------|:----------------------| -| Amendment ID | 32A122F1352A4C7B3A6D790362CC34749C5E57FCE896377BFDC6CCD14F6CD627 | -| Status | Enabled | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | NonFungibleTokensV1_1 | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 32A122F1352A4C7B3A6D790362CC34749C5E57FCE896377BFDC6CCD14F6CD627 | +| Status | Enabled | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | Adds native support for [non-fungible tokens](../docs/concepts/tokens/nfts/index.md), including fixes to several issues that were discovered after [NonFungibleTokensV1][]. @@ -1642,16 +1644,16 @@ It has no other effects. {% admonition type="warning" name="Caution" %}The [fixRemoveNFTokenAutoTrustLine][] fixes an known issue with this amendment. When creating a new test network, you should make sure that these amendments should be enabled together or the fix amendment is enabled first.{% /admonition %} - ### OwnerPaysFee + [OwnerPaysFee]: #ownerpaysfee -| Amendment | OwnerPaysFee | -|:-------------|:-------------| -| Amendment ID | 9178256A980A86CF3D70D0260A7DA6402AAFE43632FDBCB88037978404188871 | -| Status | Obsolete | -| Default Vote (Latest stable release) | N/A | -| Pre-amendment functionality retired? | No | +| Amendment | OwnerPaysFee | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 9178256A980A86CF3D70D0260A7DA6402AAFE43632FDBCB88037978404188871 | +| Status | Obsolete | +| Default Vote (Latest stable release) | N/A | +| Pre-amendment functionality retired? | No | Fixes an inconsistency in the way [transfer fees](../docs/concepts/tokens/fungible-tokens/transfer-fees.md) are calculated between [OfferCreate](../docs/references/protocol/transactions/types/offercreate.md) and [Payment](../docs/references/protocol/transactions/types/payment.md) transaction types. Without this amendment, the holder of the token pays the transfer fee if an offer is executed in offer placement, but the initial sender of a transaction pays the transfer fees for offers that are executed as part of payment processing. With this amendment, the holder of the token always pays the transfer fee, regardless of whether the offer is executed as part of a Payment or an OfferCreate transaction. Offer processing outside of payments is unaffected. @@ -1659,16 +1661,16 @@ This Amendment requires the [Flow Amendment](#flow) to be enabled. {% admonition type="info" name="Note" %}An incomplete version of this amendment was introduced in v0.33.0 and removed in v0.80.0. (It was never enabled.){% /admonition %} - ### PayChan + [PayChan]: #paychan -| Amendment | PayChan | -|:-------------|:--------| -| Amendment ID | 08DE7D96082187F6E6578530258C77FAABABE4C20474BDB82F04B021F1A68647 | -| Status | Enabled | -| Default Vote (Latest stable release) | Yes | -| Pre-amendment functionality retired? | Yes | +| Amendment | PayChan | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 08DE7D96082187F6E6578530258C77FAABABE4C20474BDB82F04B021F1A68647 | +| Status | Enabled | +| Default Vote (Latest stable release) | Yes | +| Pre-amendment functionality retired? | Yes | Creates "Payment Channels" for XRP. Payment channels are a tool for facilitating repeated, unidirectional payments or temporary credit between two parties. This feature is expected to be useful for the [Interledger Protocol](https://interledger.org/). One party creates a Payment Channel and sets aside some XRP in that channel for a predetermined expiration. Then, through off-ledger secure communications, the sender can send "Claim" messages to the receiver. The receiver can redeem the Claim messages before the expiration, or choose not to in case the payment is not needed. The receiver can verify Claims individually without actually distributing them to the network and waiting for the consensus process to redeem them, then redeem the combined content of many small Claims later, as long as it is within the expiration. @@ -1676,76 +1678,76 @@ Creates three new transaction types: [PaymentChannelCreate][], [PaymentChannelCl For more information, see the [Payment Channels Tutorial](../docs/tutorials/how-tos/use-specialized-payment-types/use-payment-channels/index.md). - ### PermissionDelegation + [PermissionDelegation]: #permissiondelegation -| Amendment | PermissionDelegation | -|:-------------|:---------------------| -| Amendment ID | AE6AB9028EEB7299EBB03C7CBCC3F2A4F5FBE00EA28B8223AA3118A0B436C1C5 | -| Status | Open for Voting | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | PermissionDelegation | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | AE6AB9028EEB7299EBB03C7CBCC3F2A4F5FBE00EA28B8223AA3118A0B436C1C5 | +| Status | Open for Voting | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | Allows accounts to delegate some permissions to other accounts. Specification: [XLS-75](https://github.com/XRPLF/XRPL-Standards/tree/master/XLS-0075-permission-delegation). - ### PermissionedDEX + [PermissionedDEX]: #permissioneddex -| Amendment | PermissionedDEX | -|:-------------|:----------------| -| Amendment ID | 677E401A423E3708363A36BA8B3A7D019D21AC5ABD00387BDBEA6BDE4C91247E | -| Status | Open for Voting | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | PermissionedDEX | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 677E401A423E3708363A36BA8B3A7D019D21AC5ABD00387BDBEA6BDE4C91247E | +| Status | Open for Voting | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | Creates Permissioned DEXes, controlled environments for trading within the XRP Ledger's [decentralized exchange (DEX)](/docs/concepts/tokens/decentralized-exchange). Trading in a permissioned DEX works like trading in the open DEX, except that a permissioned domain controls who can place and accept offers. Specification: [XLS-81](https://github.com/XRPLF/XRPL-Standards/pull/281) - ### PermissionedDomains + [PermissionedDomains]: #permissioneddomains -| Amendment | PermissionedDomains | -|:-------------|:--------------------| -| Amendment ID | A730EB18A9D4BB52502C898589558B4CCEB4BE10044500EE5581137A2E80E849 | -| Status | Open for Voting | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | PermissionedDomains | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | A730EB18A9D4BB52502C898589558B4CCEB4BE10044500EE5581137A2E80E849 | +| Status | Open for Voting | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | Permissioned domains are controlled environments within the broader ecosystem of the XRP Ledger blockchain. Domains do nothing on their own, but features such as Permissioned DEXes and Lending Protocols can use domains to restrict access, so that traditional financial institutions can offer services on chain while complying with various compliance rules. This amendment creates a new ledger entry type, `PermissionedDomain`, and new transactions, `PermissionedDomainSet` (creates or modifies permissioned domains) and `PermissionedDomainDelete` (deletes permissioned domains). - ### PriceOracle + [PriceOracle]: #priceoracle -| Amendment | PriceOracle | -|:-------------|:------------| -| Amendment ID | 96FD2F293A519AE1DB6F8BED23E4AD9119342DA7CB6BAFD00953D16C54205D8B | -| Status | Enabled | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | PriceOracle | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 96FD2F293A519AE1DB6F8BED23E4AD9119342DA7CB6BAFD00953D16C54205D8B | +| Status | Enabled | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | This amendment adds a "Price Oracle" feature to the XRP Ledger, as defined in the [XLS-47 specification](https://github.com/XRPLF/XRPL-Standards/blob/master/XLS-0047-PriceOracles/README.md). A blockchain oracle is a system where a service provides to the blockchain about the outside world, which can then be used by decentralized applications (dApps) that run primarily on or using the blockchain. This price oracle is intended to store pricing information about asset pairs that exist outside of the XRP Ledger so that smart contracts that rely on the XRP Ledger can use this information. This amendment creates a new ledger entry type, `PriceOracle`, and new transactions, `OracleSet` (creates or modifies oracle data) and `OracleDelete` (deletes a given oracle). - ### RequireFullyCanonicalSig + [RequireFullyCanonicalSig]: #requirefullycanonicalsig -| Amendment | RequireFullyCanonicalSig | -|:-------------|:-------------------------| -| Amendment ID | 00C1FC4A53E60AB02C864641002B3172F38677E29C26C5406685179B37E1EDAC | -| Status | Enabled | -| Default Vote (Latest stable release) | Yes | -| Pre-amendment functionality retired? | No | +| Amendment | RequireFullyCanonicalSig | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 00C1FC4A53E60AB02C864641002B3172F38677E29C26C5406685179B37E1EDAC | +| Status | Enabled | +| Default Vote (Latest stable release) | Yes | +| Pre-amendment functionality retired? | No | Changes the signature requirements for the XRP Ledger protocol so that non-fully-canonical signatures are no longer valid in any case. This protects against [transaction malleability](../docs/concepts/transactions/finality-of-results/transaction-malleability.md) on _all_ transactions, instead of only transactions with the [`tfFullyCanonicalSig` flag](../docs/references/protocol/transactions/common-fields.md#global-flags) enabled. @@ -1755,117 +1757,117 @@ With this amendment, no single-signed transactions are malleable. ([Multi-signed For more information, see [`rippled` issue #3042](https://github.com/XRPLF/rippled/issues/3042). - ### SHAMapV2 + [SHAMapV2]: #shamapv2 -| Amendment | SHAMapV2 | -|:-------------|:---------| -| Amendment ID | C6970A8B603D8778783B61C0D445C23D1633CCFAEF0D43E7DBCD1521D34BD7C3 | -| Status | Obsolete | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | SHAMapV2 | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | C6970A8B603D8778783B61C0D445C23D1633CCFAEF0D43E7DBCD1521D34BD7C3 | +| Status | Obsolete | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | Changes the hash tree structure that `rippled` uses to represent a ledger. The new structure is more compact and efficient than the previous version. This affects how ledger hashes are calculated, but has no other user-facing consequences. When this amendment is activated, the XRP Ledger will undergo a brief scheduled unavailability while the network calculates the changes to the hash tree structure. <!-- STYLE_OVERRIDE: will --> - ### SingleAssetVault + [SingleAssetVault]: #singleassetvault -| Amendment | SingleAssetVault | -|:-------------|:-----------------| -| Amendment ID | 81BD2619B6B3C8625AC5D0BC01DE17F06C3F0AB95C7C87C93715B87A4FD240D8 | -| Status | In Development | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | SingleAssetVault | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 81BD2619B6B3C8625AC5D0BC01DE17F06C3F0AB95C7C87C93715B87A4FD240D8 | +| Status | In Development | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | Creates a structure for aggregating assets from multiple depositors. This is intended to be used with the proposed on-chain Lending Protocol. Specification: [XLS-65](https://github.com/XRPLF/XRPL-Standards/tree/master/XLS-0065d-single-asset-vault). - ### SortedDirectories + [SortedDirectories]: #sorteddirectories -| Amendment | SortedDirectories | -|:-------------|:------------------| -| Amendment ID | CC5ABAE4F3EC92E94A59B1908C2BE82D2228B6485C00AFF8F22DF930D89C194E | -| Status | Enabled | -| Default Vote (Latest stable release) | Yes | -| Pre-amendment functionality retired? | Yes | +| Amendment | SortedDirectories | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | CC5ABAE4F3EC92E94A59B1908C2BE82D2228B6485C00AFF8F22DF930D89C194E | +| Status | Enabled | +| Default Vote (Latest stable release) | Yes | +| Pre-amendment functionality retired? | Yes | Sorts the entries in [DirectoryNode ledger objects](../docs/references/protocol/ledger-data/ledger-entry-types/directorynode.md) and fixes a bug that occasionally caused pages of owner directories not to be deleted when they should have been. {% admonition type="danger" name="Warning" %}Older versions of `rippled` that do not know about this amendment may crash when they find a DirectoryNode sorted by the new rules. To avoid this problem, [upgrade](../docs/infrastructure/installation/index.md) to `rippled` version 0.80.0 or later.{% /admonition %} - ### SusPay + [SusPay]: #suspay -| Amendment | SusPay | -|:-------------|:-------| -| Amendment ID | DA1BD556B42D85EA9C84066D028D355B52416734D3283F85E216EA5DA6DB7E13 | -| Status | Obsolete | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | SusPay | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | DA1BD556B42D85EA9C84066D028D355B52416734D3283F85E216EA5DA6DB7E13 | +| Status | Obsolete | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | This amendment was replaced by the [Escrow](../docs/references/protocol/ledger-data/ledger-entry-types/escrow.md) amendment. - ### TicketBatch + [TicketBatch]: #ticketbatch -| Amendment | TicketBatch | -|:-------------|:------------| -| Amendment ID | 955DF3FA5891195A9DAEFA1DDC6BB244B545DDE1BAA84CBB25D5F12A8DA68A0C | -| Status | Enabled | -| Default Vote (Latest stable release) | Yes | -| Pre-amendment functionality retired? | No | +| Amendment | TicketBatch | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 955DF3FA5891195A9DAEFA1DDC6BB244B545DDE1BAA84CBB25D5F12A8DA68A0C | +| Status | Enabled | +| Default Vote (Latest stable release) | Yes | +| Pre-amendment functionality retired? | No | This amendment adds [Tickets](../docs/concepts/accounts/tickets.md) as a way of sending transactions out of the typical sequence number order. Standards Draft: [XLS-13d](https://github.com/XRPLF/XRPL-Standards/issues/16). <!-- SPELLING_IGNORE: xls, 13d --> - ### Tickets + [Tickets]: #tickets -| Amendment | Tickets | -|:-------------|:--------| -| Amendment ID | C1B8D934087225F509BEB5A8EC24447854713EE447D277F69545ABFA0E0FD490 | -| Status | Obsolete | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | Tickets | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | C1B8D934087225F509BEB5A8EC24447854713EE447D277F69545ABFA0E0FD490 | +| Status | Obsolete | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | This amendment was replaced by the [TicketBatch][] amendment. - ### TickSize + [TickSize]: #ticksize -| Amendment | TickSize | -|:-------------|:---------| -| Amendment ID | 532651B4FD58DF8922A49BA101AB3E996E5BFBF95A913B3E392504863E63B164 | -| Status | Enabled | -| Default Vote (Latest stable release) | Yes | -| Pre-amendment functionality retired? | Yes | +| Amendment | TickSize | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 532651B4FD58DF8922A49BA101AB3E996E5BFBF95A913B3E392504863E63B164 | +| Status | Enabled | +| Default Vote (Latest stable release) | Yes | +| Pre-amendment functionality retired? | Yes | Changes the way [Offers](../docs/concepts/tokens/decentralized-exchange/offers.md#lifecycle-of-an-offer) are ranked in order books, so that currency issuers can configure how many significant digits are taken into account when ranking Offers by exchange rate. With this amendment, the exchange rates of Offers are rounded to the configured number of significant digits, so that more Offers have the same exact exchange rate. The intent of this change is to require a meaningful improvement in price to outrank a previous Offer. If used by major issuers, this should reduce the incentive to spam the ledger with Offers that are only a tiny fraction of a percentage point better than existing offers. It may also increase the efficiency of order book storage in the ledger, because Offers can be grouped into fewer exchange rates. Introduces a `TickSize` field to accounts, which can be set with the [AccountSet transaction type](../docs/references/protocol/transactions/types/accountset.md). If a currency issuer sets the `TickSize` field, the XRP Ledger truncates the exchange rate (ratio of funds in to funds out) of Offers to trade the issuer's currency, and adjusts the amounts of the Offer to match the truncated exchange rate. If only one currency in the trade has a `TickSize` set, that number of significant digits applies. When trading two currencies that have different `TickSize` values, whichever `TickSize` indicates the fewest significant digits applies. XRP does not have a `TickSize`. - ### TokenEscrow + [TokenEscrow]: #tokenescrow -| Amendment | TokenEscrow | -|:-------------|:------------| -| Amendment ID | 138B968F25822EFBF54C00F97031221C47B1EAB8321D93C7C2AEAF85F04EC5DF | -| Status | Open for Voting | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | TokenEscrow | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 138B968F25822EFBF54C00F97031221C47B1EAB8321D93C7C2AEAF85F04EC5DF | +| Status | Open for Voting | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | Extends escrow functionality to fungible tokens, enabling Trust Line Tokens and Multi-Purpose Tokens (MPTs) to be held in escrow. Issuers can control whether their tokens can be escrowed through flags. To issue Trust Line Tokens, issuers must enable the **Allow TrustLine Locking** flag on their account, or the **Can Escrow** and **Can Transfer** flags for an MPT issuance. @@ -1886,29 +1888,30 @@ Updates existing ledger entry types: Specification: [XLS-85](https://xls.xrpl.org/xls/XLS-0085-token-escrow.html) ### TrustSetAuth + [TrustSetAuth]: #trustsetauth -| Amendment | TrustSetAuth | -|:-------------|:-------------| -| Amendment ID | 6781F8368C4771B83E8B821D88F580202BCB4228075297B19E4FDC5233F1EFDC | -| Status | Enabled | -| Default Vote (Latest stable release) | Yes | -| Pre-amendment functionality retired? | Yes | +| Amendment | TrustSetAuth | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 6781F8368C4771B83E8B821D88F580202BCB4228075297B19E4FDC5233F1EFDC | +| Status | Enabled | +| Default Vote (Latest stable release) | Yes | +| Pre-amendment functionality retired? | Yes | Allows pre-authorization of accounting relationships (zero-balance trust lines) when using [Authorized Trust Lines](../docs/concepts/tokens/fungible-tokens/authorized-trust-lines.md). With this amendment enabled, a `TrustSet` transaction with [`tfSetfAuth` enabled](../docs/references/protocol/transactions/types/trustset.md#trustset-flags) can create a new [`RippleState` ledger object](../docs/references/protocol/ledger-data/ledger-entry-types/ripplestate.md) even if it keeps all the other values of the `RippleState` node in their default state. The new `RippleState` node has the [`lsfLowAuth` or `lsfHighAuth` flag](../docs/references/protocol/ledger-data/ledger-entry-types/ripplestate.md#ripplestate-flags) enabled, depending on whether the sender of the transaction is considered the low node or the high node. The sender of the transaction must have already enabled [`lsfRequireAuth`](../docs/references/protocol/ledger-data/ledger-entry-types/accountroot.md#accountroot-flags) by sending an [AccountSet transaction](../docs/references/protocol/transactions/types/accountset.md) with the [`asfRequireAuth` flag enabled](../docs/references/protocol/transactions/types/accountset.md#accountset-flags). - ### XChainBridge + [XChainBridge]: #xchainbridge -| Amendment | XChainBridge | -|:-------------|:-------------| -| Amendment ID | C98D98EE9616ACD36E81FDEB8D41D349BF5F1B41DD64A0ABC1FE9AA5EA267E9C | -| Status | Open for Voting | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | XChainBridge | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | C98D98EE9616ACD36E81FDEB8D41D349BF5F1B41DD64A0ABC1FE9AA5EA267E9C | +| Status | Open for Voting | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | Adds cross-chain bridges, enabling the transfer of digital assets between networks (for example, between Mainnet and a sidechain). Standards draft: [XLS-0038 Cross-Chain Bridge](https://github.com/XRPLF/XRPL-Standards/blob/master/XLS-0038-cross-chain-bridge/README.md). @@ -1932,16 +1935,16 @@ Adds new ledger entry types: Adds several new transaction result codes. - ### XRPFees + [XRPFees]: #xrpfees -| Amendment | XRPFees | -|:-------------|:--------| -| Amendment ID | 93E516234E35E08CA689FA33A6D38E103881F8DCB53023F728C307AA89D515A7 | -| Status | Enabled | -| Default Vote (Latest stable release) | No | -| Pre-amendment functionality retired? | No | +| Amendment | XRPFees | +| :----------------------------------- | :--------------------------------------------------------------- | +| Amendment ID | 93E516234E35E08CA689FA33A6D38E103881F8DCB53023F728C307AA89D515A7 | +| Status | Enabled | +| Default Vote (Latest stable release) | No | +| Pre-amendment functionality retired? | No | Simplifies transaction cost calculations to use XRP directly rather than calculating indirectly in "fee units" and translating the results to XRP. Updates all instances of "fee units" in the protocol and ledger data to be drops of XRP instead, including: @@ -1951,6 +1954,4 @@ Simplifies transaction cost calculations to use XRP directly rather than calcula Without this amendment, the format of the transaction and ledger entry are the same. - - {% raw-partial file="/docs/_snippets/common-links.md" /%} diff --git a/shared/components/advantages-section.tsx b/shared/components/advantages-section.tsx index 947d7763d8..51e7667aea 100644 --- a/shared/components/advantages-section.tsx +++ b/shared/components/advantages-section.tsx @@ -1,39 +1,39 @@ -import React from "react"; -import { useThemeHooks } from '@redocly/theme/core/hooks'; -import { Link } from "@redocly/theme/components/Link/Link"; +import React from 'react' +import { useThemeHooks } from '@redocly/theme/core/hooks' +import { Link } from '@redocly/theme/components/Link/Link' interface AdvantageContent { - href?: string; - subtitle: string; - description?: string; + href?: string + subtitle: string + description?: string } interface Advantage { - id: string; - title: string; - contents: AdvantageContent[]; + id: string + title: string + contents: AdvantageContent[] } interface AdvantagesSectionProps { - title: string; - description?: string; - advantages: Advantage[]; - className?: string; - useLinks?: boolean; // New prop to control whether to use links or bullet points + title: string + description?: string + advantages: Advantage[] + className?: string + useLinks?: boolean // New prop to control whether to use links or bullet points } const AdvantageCard = (advantageContents: AdvantageContent[], useLinks: boolean = true) => { - const { useTranslate } = useThemeHooks(); - const { translate } = useTranslate(); - + const { useTranslate } = useThemeHooks() + const { translate } = useTranslate() + if (useLinks) { // Original tokenization style with links return advantageContents.map((content) => ( <div key={content.subtitle}> - <Link to={content.href}><h5 className="card-subhead">{translate(content.subtitle)}:</h5></Link> - <div className="card-text"> - {translate(content?.description || "")} - </div> + <Link to={content.href}> + <h5 className="card-subhead">{translate(content.subtitle)}:</h5> + </Link> + <div className="card-text">{translate(content?.description || '')}</div> </div> )) } else { @@ -43,9 +43,7 @@ const AdvantageCard = (advantageContents: AdvantageContent[], useLinks: boolean {advantageContents.map((content) => ( <li key={content.subtitle} className="advantage-item"> <strong>{translate(content.subtitle)}</strong> - {content.description && ( - <span className="advantage-description">{translate(content.description)}</span> - )} + {content.description && <span className="advantage-description">{translate(content.description)}</span>} </li> ))} </ul> @@ -53,38 +51,27 @@ const AdvantageCard = (advantageContents: AdvantageContent[], useLinks: boolean } } -export const AdvantagesSection: React.FC<AdvantagesSectionProps> = ({ - title, - description, - advantages, - className = "", - useLinks = true -}) => { - const { useTranslate } = useThemeHooks(); - const { translate } = useTranslate(); +export const AdvantagesSection: React.FC<AdvantagesSectionProps> = ({ title, description, advantages, className = '', useLinks = true }) => { + const { useTranslate } = useThemeHooks() + const { translate } = useTranslate() // Dynamic grid class based on number of advantages const getGridClass = () => { - const count = advantages.length; - if (count === 3) return "security-card-grid-3"; - if (count === 4) return "security-card-grid-4"; - return "security-card-grid"; // fallback to original - }; + const count = advantages.length + if (count === 3) return 'security-card-grid-3' + if (count === 4) return 'security-card-grid-4' + return 'security-card-grid' // fallback to original + } - const headerSpacingClass = useLinks ? "mb-16" : "mb-8"; // 32px for bullet version, 64px for links + const headerSpacingClass = useLinks ? 'mb-16' : 'mb-8' // 32px for bullet version, 64px for links return ( <section className={`advantages-section container-new py-20 ${className}`}> <div className="d-flex flex-column-reverse"> - <p className={headerSpacingClass}> - {translate(description)} - </p> + <p className={headerSpacingClass}>{translate(description)}</p> <h4 className="eyebrow mb-8">{translate(title)}</h4> </div> - <div - className={`${getGridClass()} nav card-grid`} - id="security-features" - > + <div className={`${getGridClass()} nav card-grid`} id="security-features"> {advantages.map((advantage) => ( <div className="security-card" key={advantage.id}> <div className="card-body p-6"> @@ -95,5 +82,5 @@ export const AdvantagesSection: React.FC<AdvantagesSectionProps> = ({ ))} </div> </section> - ); -}; + ) +} diff --git a/shared/components/benefits-section.tsx b/shared/components/benefits-section.tsx index b42ed05729..9fc8726cb8 100644 --- a/shared/components/benefits-section.tsx +++ b/shared/components/benefits-section.tsx @@ -1,20 +1,20 @@ -import React from "react"; -import { useThemeHooks } from "@redocly/theme/core/hooks"; +import React from 'react' +import { useThemeHooks } from '@redocly/theme/core/hooks' export interface BenefitCard { - id: string; - title: string; - description: React.ReactNode | string; + id: string + title: string + description: React.ReactNode | string } export interface BenefitsSectionProps { - eyebrow?: string; - title: string; - description?: string; - cards: BenefitCard[]; - className?: string; - showImages?: boolean; - listId?: string; + eyebrow?: string + title: string + description?: string + cards: BenefitCard[] + className?: string + showImages?: boolean + listId?: string } export const BenefitsSection: React.FC<BenefitsSectionProps> = ({ @@ -22,12 +22,12 @@ export const BenefitsSection: React.FC<BenefitsSectionProps> = ({ title, description, cards, - className = "", + className = '', showImages = true, - listId = "benefits-list", + listId = 'benefits-list', }) => { - const { useTranslate } = useThemeHooks(); - const { translate } = useTranslate(); + const { useTranslate } = useThemeHooks() + const { translate } = useTranslate() return ( <section className={`container-new py-26 ${className}`}> @@ -35,21 +35,16 @@ export const BenefitsSection: React.FC<BenefitsSectionProps> = ({ <h3 className="h4 h2-sm">{translate(title)}</h3> {eyebrow && <h6 className="eyebrow mb-3">{translate(eyebrow)}</h6>} </div> - {description && ( - <p className="mt-6 mb-0 col-lg-8 col-sm-8 p-0">{translate(description)}</p> - )} + {description && <p className="mt-6 mb-0 col-lg-8 col-sm-8 p-0">{translate(description)}</p>} <ul className="mt-10 card-grid card-grid-3xN" id={listId}> - {cards.map(card => ( + {cards.map((card) => ( <li className="col ls-none" key={card.id}> {showImages && <img id={card.id} alt={card.title + ' Icon'} />} <h4 className="mt-3 mb-0 h5">{translate(card.title)}</h4> - <p className="mt-6-until-sm mt-3 mb-0"> - {typeof card.description === 'string' ? translate(card.description) : card.description} - </p> + <p className="mt-6-until-sm mt-3 mb-0">{typeof card.description === 'string' ? translate(card.description) : card.description}</p> </li> ))} </ul> </section> - ); -}; - + ) +} diff --git a/shared/components/developer-resources-section.tsx b/shared/components/developer-resources-section.tsx index 88aa24bdd5..f3a1988e75 100644 --- a/shared/components/developer-resources-section.tsx +++ b/shared/components/developer-resources-section.tsx @@ -1,30 +1,27 @@ -import React from "react"; -import { useThemeHooks } from "@redocly/theme/core/hooks"; -import { Link } from "@redocly/theme/components/Link/Link"; +import React from 'react' +import { useThemeHooks } from '@redocly/theme/core/hooks' +import { Link } from '@redocly/theme/components/Link/Link' export interface DeveloperResourcesCard { - title: string; - description: string | React.ReactNode; + title: string + description: string | React.ReactNode links: Array<{ - text: string; - url: string; - target?: "_blank" | "_self"; - }>; - backgroundClass?: string; + text: string + url: string + target?: '_blank' | '_self' + }> + backgroundClass?: string } export interface DeveloperResourcesSectionProps { - cards: DeveloperResourcesCard[]; - className?: string; + cards: DeveloperResourcesCard[] + className?: string } -export const DeveloperResourcesSection: React.FC<DeveloperResourcesSectionProps> = ({ - cards, - className = "" -}) => { - const { useTranslate } = useThemeHooks(); - const { translate } = useTranslate(); - const isSingleCard = cards.length === 1; +export const DeveloperResourcesSection: React.FC<DeveloperResourcesSectionProps> = ({ cards, className = '' }) => { + const { useTranslate } = useThemeHooks() + const { translate } = useTranslate() + const isSingleCard = cards.length === 1 return ( <div className={`container developer-resources-section page-community ${className} ${isSingleCard ? 'single-card' : ''}`}> @@ -33,17 +30,10 @@ export const DeveloperResourcesSection: React.FC<DeveloperResourcesSectionProps> <div key={index} className={`com-card ${card.backgroundClass || ''}`}> <div className="card-content custom-gap"> <h6 className="card-title">{translate(card.title)}</h6> - <p className="card-description"> - {typeof card.description === 'string' ? translate(card.description) : card.description} - </p> + <p className="card-description">{typeof card.description === 'string' ? translate(card.description) : card.description}</p> <div className="card-links"> {card.links.map((link, linkIndex) => ( - <Link - key={linkIndex} - className={`com-card-link ${linkIndex === 0 ? 'mt-16' : ''}`} - target={link.target || "_blank"} - to={link.url} - > + <Link key={linkIndex} className={`com-card-link ${linkIndex === 0 ? 'mt-16' : ''}`} target={link.target || '_blank'} to={link.url}> {translate(link.text)} </Link> ))} @@ -53,5 +43,5 @@ export const DeveloperResourcesSection: React.FC<DeveloperResourcesSectionProps> ))} </section> </div> - ); -}; + ) +} diff --git a/shared/components/nav-list.tsx b/shared/components/nav-list.tsx index b41dc9d257..214f175768 100644 --- a/shared/components/nav-list.tsx +++ b/shared/components/nav-list.tsx @@ -1,37 +1,29 @@ -import React from "react"; -import { useThemeHooks } from '@redocly/theme/core/hooks'; -import { Link } from "@redocly/theme/components/Link/Link"; +import React from 'react' +import { useThemeHooks } from '@redocly/theme/core/hooks' +import { Link } from '@redocly/theme/components/Link/Link' interface PageProps { - description: string; - link: string; + description: string + link: string } interface NavListProps { - pages: PageProps[]; - bottomBorder?: boolean; + pages: PageProps[] + bottomBorder?: boolean } -export const NavList: React.FC<NavListProps> = ({ - pages, - bottomBorder = true, -}) => { - const { useTranslate } = useThemeHooks(); - const { translate } = useTranslate(); +export const NavList: React.FC<NavListProps> = ({ pages, bottomBorder = true }) => { + const { useTranslate } = useThemeHooks() + const { translate } = useTranslate() return ( <ul className="nav flex-column"> {pages.map((useCase, index) => ( <li className="nav-item" key={useCase.link}> - <Link - to={useCase.link} - className={`nav-link ${ - index === pages.length - 1 && !bottomBorder ? "border-none" : "" - }`} - > + <Link to={useCase.link} className={`nav-link ${index === pages.length - 1 && !bottomBorder ? 'border-none' : ''}`}> {translate(useCase.description)} </Link> </li> ))} </ul> - ); -}; + ) +} diff --git a/shared/components/project-cards.tsx b/shared/components/project-cards.tsx index d6a1cca5d2..b97c5728e9 100644 --- a/shared/components/project-cards.tsx +++ b/shared/components/project-cards.tsx @@ -1,35 +1,29 @@ -import React, { useState } from "react"; -import { useThemeHooks } from '@redocly/theme/core/hooks'; +import React, { useState } from 'react' +import { useThemeHooks } from '@redocly/theme/core/hooks' interface Project { - id: string; - label: string; - url: string; - description?: string; // New optional field for payments page - buttonText?: string; // Optional button text for battle-tested cards + id: string + label: string + url: string + description?: string // New optional field for payments page + buttonText?: string // Optional button text for battle-tested cards } interface ProjectCardsProps { - title: string; - projects: Project[]; - showCarousel?: boolean; // true for tokenization (carousel), false for payments (grid) - className?: string; + title: string + projects: Project[] + showCarousel?: boolean // true for tokenization (carousel), false for payments (grid) + className?: string } -const ProjectCard = ({ project, index, showCarousel = true }: { - project: Project; - index: number; - showCarousel?: boolean; -}) => { - const { useTranslate } = useThemeHooks(); - const { translate } = useTranslate(); +const ProjectCard = ({ project, index, showCarousel = true }: { project: Project; index: number; showCarousel?: boolean }) => { + const { useTranslate } = useThemeHooks() + const { translate } = useTranslate() return ( <a className={`col card float-up-on-hover ${ - showCarousel - ? (index % 2 === 0 ? "even" : "odd") - : `payments-project-card ${index % 2 === 0 ? "odd" : "even"}` + showCarousel ? (index % 2 === 0 ? 'even' : 'odd') : `payments-project-card ${index % 2 === 0 ? 'odd' : 'even'}` }`} target="_blank" href={project.url} @@ -40,15 +34,15 @@ const ProjectCard = ({ project, index, showCarousel = true }: { {!showCarousel && project.description && ( <div className="project-description"> {(() => { - const words = project.description.split(' '); - const firstWord = words[0]; - const restOfText = words.slice(1).join(' '); + const words = project.description.split(' ') + const firstWord = words[0] + const restOfText = words.slice(1).join(' ') return ( <> <strong className="first-word">{firstWord}</strong> {restOfText && <span className="rest-text"> {restOfText}</span>} </> - ); + ) })()} </div> )} @@ -58,97 +52,63 @@ const ProjectCard = ({ project, index, showCarousel = true }: { </div> )} </a> - ); -}; + ) +} const FeaturedProjectsCarousel = ({ projects }: { projects: Project[] }) => { - const [currentIndex, setCurrentIndex] = useState(0); + const [currentIndex, setCurrentIndex] = useState(0) const handlePrev = () => { if (currentIndex > 0) { - setCurrentIndex(currentIndex - 1); + setCurrentIndex(currentIndex - 1) } - }; + } const handleNext = () => { if (currentIndex < projects.length - 3) { - setCurrentIndex(currentIndex + 1); + setCurrentIndex(currentIndex + 1) } - }; + } return ( <div className="featured-projects"> <div className="project-cards-container card-grid card-grid-3xN"> <ProjectCard project={projects[currentIndex]} index={currentIndex} /> - <ProjectCard - project={projects[currentIndex + 1]} - index={currentIndex + 1} - /> - <ProjectCard - project={projects[currentIndex + 2]} - index={currentIndex + 2} - /> + <ProjectCard project={projects[currentIndex + 1]} index={currentIndex + 1} /> + <ProjectCard project={projects[currentIndex + 2]} index={currentIndex + 2} /> </div> <div className="arrow-wrapper d-flex justify-content-center mt-16"> - <button - className={`arrow-button prev ${ - currentIndex > 0 ? "hover-color" : "" - }`} - onClick={handlePrev} - > + <button className={`arrow-button prev ${currentIndex > 0 ? 'hover-color' : ''}`} onClick={handlePrev}> <img alt="left arrow" /> </button> - <button - className={`arrow-button next ${ - currentIndex < projects.length - 3 ? "hover-color" : "" - }`} - onClick={handleNext} - > + <button className={`arrow-button next ${currentIndex < projects.length - 3 ? 'hover-color' : ''}`} onClick={handleNext}> <img alt="right arrow" /> </button> </div> </div> - ); -}; + ) +} const ProjectsGrid = ({ projects }: { projects: Project[] }) => { return ( <div className="payments-projects-grid card-grid"> {projects.map((project, index) => ( - <ProjectCard - key={project.id} - project={project} - index={index} - showCarousel={false} - /> + <ProjectCard key={project.id} project={project} index={index} showCarousel={false} /> ))} </div> - ); -}; + ) +} -export const ProjectCards: React.FC<ProjectCardsProps> = ({ - title, - projects, - showCarousel = true, - className = "" -}) => { - const { useTranslate } = useThemeHooks(); - const { translate } = useTranslate(); +export const ProjectCards: React.FC<ProjectCardsProps> = ({ title, projects, showCarousel = true, className = '' }) => { + const { useTranslate } = useThemeHooks() + const { translate } = useTranslate() return ( <section className={`container-new py-20 ${className}`}> <div className="d-flex flex-column-reverse"> - <h4 className="eyebrow mb-16"> - {translate(title)} - </h4> - </div> - <div className="project-cards"> - {showCarousel ? ( - <FeaturedProjectsCarousel projects={projects} /> - ) : ( - <ProjectsGrid projects={projects} /> - )} + <h4 className="eyebrow mb-16">{translate(title)}</h4> </div> + <div className="project-cards">{showCarousel ? <FeaturedProjectsCarousel projects={projects} /> : <ProjectsGrid projects={projects} />}</div> </section> - ); -}; + ) +} diff --git a/shared/editor/editor.tsx b/shared/editor/editor.tsx index 98b8022382..7f0eee5194 100644 --- a/shared/editor/editor.tsx +++ b/shared/editor/editor.tsx @@ -1,32 +1,32 @@ -import CodeMirror from '@uiw/react-codemirror'; +import CodeMirror from '@uiw/react-codemirror' import { ViewUpdate } from '@codemirror/view' import { Extension } from '@codemirror/state' import { editorXRPLTheme } from './theme' export interface EditorWrapperProps { - value: string - onChange?: (value: string, viewUpdate: ViewUpdate) => void - readOnly?: boolean - lineNumbers?: boolean + value: string + onChange?: (value: string, viewUpdate: ViewUpdate) => void + readOnly?: boolean + lineNumbers?: boolean } export interface EditorProps extends EditorWrapperProps { - extensions: Extension[] + extensions: Extension[] } -export const Editor = ({value, extensions, onChange = () => {}, readOnly=false, lineNumbers=true }: EditorProps) => { - return ( - <CodeMirror - value={value} - theme={editorXRPLTheme} - extensions={[...extensions]} - onChange={onChange} - basicSetup={{ - highlightActiveLine: false, - highlightActiveLineGutter: false, - lineNumbers - }} - /> - ); +export const Editor = ({ value, extensions, onChange = () => {}, readOnly = false, lineNumbers = true }: EditorProps) => { + return ( + <CodeMirror + value={value} + theme={editorXRPLTheme} + extensions={[...extensions]} + onChange={onChange} + basicSetup={{ + highlightActiveLine: false, + highlightActiveLineGutter: false, + lineNumbers, + }} + /> + ) } diff --git a/shared/editor/javascript-editor.tsx b/shared/editor/javascript-editor.tsx index d3a82f1530..ed01cd13fe 100644 --- a/shared/editor/javascript-editor.tsx +++ b/shared/editor/javascript-editor.tsx @@ -1,15 +1,6 @@ import { javascript } from '@codemirror/lang-javascript' import { Editor, EditorWrapperProps } from './editor' -export const JavascriptEditor = ({value, onChange, readOnly }: EditorWrapperProps) => { - return <Editor - value={value} - onChange={onChange} - readOnly={readOnly} - extensions={ - [ - javascript(), - ] - } - /> +export const JavascriptEditor = ({ value, onChange, readOnly }: EditorWrapperProps) => { + return <Editor value={value} onChange={onChange} readOnly={readOnly} extensions={[javascript()]} /> } diff --git a/shared/editor/json-editor.tsx b/shared/editor/json-editor.tsx index 8460f6c796..be87c6c225 100644 --- a/shared/editor/json-editor.tsx +++ b/shared/editor/json-editor.tsx @@ -4,23 +4,12 @@ import { Extension } from '@codemirror/state' import { Editor, EditorWrapperProps } from './editor' -export const JsonEditor = ({value, onChange, readOnly, lineNumbers }: EditorWrapperProps) => { - const extensions: Extension[] = [ - json() - ] +export const JsonEditor = ({ value, onChange, readOnly, lineNumbers }: EditorWrapperProps) => { + const extensions: Extension[] = [json()] - if(!readOnly) { - extensions.push( - lintGutter(), - linter(jsonParseLinter()) - ) - } + if (!readOnly) { + extensions.push(lintGutter(), linter(jsonParseLinter())) + } - return <Editor - value={value} - onChange={onChange} - readOnly={readOnly} - extensions={extensions} - lineNumbers={lineNumbers} - /> + return <Editor value={value} onChange={onChange} readOnly={readOnly} extensions={extensions} lineNumbers={lineNumbers} /> } diff --git a/shared/editor/theme.ts b/shared/editor/theme.ts index eb7c47af54..0595262988 100644 --- a/shared/editor/theme.ts +++ b/shared/editor/theme.ts @@ -1,5 +1,5 @@ -import { tags as t } from '@lezer/highlight'; -import { createTheme } from '@uiw/codemirror-themes'; +import { tags as t } from '@lezer/highlight' +import { createTheme } from '@uiw/codemirror-themes' const blue200 = '#B2E0FF' const blue500 = '#19A3FF' @@ -10,31 +10,31 @@ const orange500 = '#FF6719' const white = '#FFFFFF' export const editorXRPLTheme = createTheme({ - theme: 'dark', - settings: { - background: gray800, - backgroundImage: '', - fontFamily: 'Space Mono', - foreground: white, - caret: gray500, - lineHighlight: gray800, - gutterBackground: gray800, - }, - styles: [ - { tag: [t.attributeName, t.attributeValue], color: white }, - { tag: t.propertyName, color: green700 }, - { tag: t.comment, color: gray500 }, - { tag: t.variableName, color: white }, - { tag: [t.string, t.special(t.brace)], color: green700 }, - { tag: t.number, color: blue500 }, - { tag: t.atom, color: orange500 }, - { tag: t.bool, color: orange500 }, - { tag: t.null, color: orange500 }, - { tag: t.keyword, color: orange500 }, - { tag: t.operator, color: white }, - { tag: t.definition(t.typeName), color: white }, - { tag: t.tagName, color: white }, - { tag: [t.brace, t.bracket], color: white }, - { tag: t.link, color: blue200 } - ], -}); + theme: 'dark', + settings: { + background: gray800, + backgroundImage: '', + fontFamily: 'Space Mono', + foreground: white, + caret: gray500, + lineHighlight: gray800, + gutterBackground: gray800, + }, + styles: [ + { tag: [t.attributeName, t.attributeValue], color: white }, + { tag: t.propertyName, color: green700 }, + { tag: t.comment, color: gray500 }, + { tag: t.variableName, color: white }, + { tag: [t.string, t.special(t.brace)], color: green700 }, + { tag: t.number, color: blue500 }, + { tag: t.atom, color: orange500 }, + { tag: t.bool, color: orange500 }, + { tag: t.null, color: orange500 }, + { tag: t.keyword, color: orange500 }, + { tag: t.operator, color: white }, + { tag: t.definition(t.typeName), color: white }, + { tag: t.tagName, color: white }, + { tag: [t.brace, t.bracket], color: white }, + { tag: t.link, color: blue200 }, + ], +}) diff --git a/sidebars.yaml b/sidebars.yaml index 971c40b18a..8e33dcfb46 100644 --- a/sidebars.yaml +++ b/sidebars.yaml @@ -44,7 +44,7 @@ - page: docs/use-cases/defi/algorithmic-trading.md - page: docs/use-cases/defi/list-xrp-as-an-exchange.md - page: docs/use-cases/defi/enable-compliance-focused-cross-currency-payments-using-a-permissioned-dex.md - + - page: docs/concepts/index.md expanded: false items: @@ -222,7 +222,7 @@ - page: docs/tutorials/javascript/compliance/index.md items: - page: docs/tutorials/javascript/compliance/create-permissioned-domains.md - - page: docs/tutorials/javascript/compliance/verify-credential.md + - page: docs/tutorials/javascript/compliance/verify-credential.md - page: docs/tutorials/python/index.md expanded: false items: diff --git a/static/css/devportal2024-v1.css b/static/css/devportal2024-v1.css index da5e586e02..b43640a93d 100644 --- a/static/css/devportal2024-v1.css +++ b/static/css/devportal2024-v1.css @@ -1,6 +1,20895 @@ -@font-face{font-family:"Space Mono";font-style:normal;font-weight:400;font-display:auto;src:local("Space Mono"),local("SpaceMono-Regular"),url("../font/SpaceMono-Regular.woff2") format("woff2"),url(https://fonts.gstatic.com/s/spacemono/v4/i7dPIFZifjKcF5UAWdDRYEF8RQ.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Space Mono";font-style:normal;font-weight:700;font-display:auto;src:local("Space Mono Bold"),local("SpaceMono-Bold"),url("../font/SpaceMono-Bold.woff2") format("woff2"),url(https://fonts.gstatic.com/s/spacemono/v4/i7dMIFZifjKcF5UAWdDRaPpZUFWaHg.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Work Sans";font-style:normal;font-weight:400;font-display:swap;src:local("Work Sans"),url("../font/WorkSans-Regular.ttf") format("truetype"),url(https://fonts.gstatic.com/s/worksans/v8/QGY_z_wNahGAdqQ43RhVcIgYT2Xz5u32K0nXBiEJpp_c.woff2) format("woff2");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Work Sans";font-style:normal;font-weight:400;font-display:swap;src:local("Work Sans"),url("../font/WorkSans-Regular.ttf") format("truetype"),url(https://fonts.gstatic.com/s/worksans/v8/QGY_z_wNahGAdqQ43RhVcIgYT2Xz5u32K0nXBi8Jpg.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Work Sans";font-style:normal;font-weight:500;font-display:swap;src:url("../font/WorkSans-Medium.ttf") format("truetype"),url(https://fonts.gstatic.com/s/worksans/v9/QGY_z_wNahGAdqQ43RhVcIgYT2Xz5u32K3vXBiEJpp_c.woff2) format("woff2");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Work Sans";font-style:normal;font-weight:500;font-display:swap;src:url("../font/WorkSans-Medium.ttf") format("truetype"),url(https://fonts.gstatic.com/s/worksans/v9/QGY_z_wNahGAdqQ43RhVcIgYT2Xz5u32K3vXBi8Jpg.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Work Sans";font-style:normal;font-weight:600;font-display:swap;src:url("../font/WorkSans-SemiBold.ttf") format("truetype"),url(https://fonts.gstatic.com/s/worksans/v9/QGY_z_wNahGAdqQ43RhVcIgYT2Xz5u32K5fQBiEJpp_c.woff2) format("woff2");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Work Sans";font-style:normal;font-weight:600;font-display:swap;src:url("../font/WorkSans-SemiBold.ttf") format("truetype"),url(https://fonts.gstatic.com/s/worksans/v9/QGY_z_wNahGAdqQ43RhVcIgYT2Xz5u32K5fQBi8Jpg.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Work Sans";font-style:normal;font-weight:700;font-display:swap;src:local("Work Sans Bold"),url("../font/WorkSans-Bold.ttf") format("truetype"),url(https://fonts.gstatic.com/s/worksans/v8/QGY_z_wNahGAdqQ43RhVcIgYT2Xz5u32K67QBiEJpp_c.woff2) format("woff2");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Work Sans";font-style:normal;font-weight:700;font-display:swap;src:local("Work Sans Bold"),url("../font/WorkSans-Bold.ttf") format("truetype"),url(https://fonts.gstatic.com/s/worksans/v8/QGY_z_wNahGAdqQ43RhVcIgYT2Xz5u32K67QBi8Jpg.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}/*! +@font-face { + font-family: 'Space Mono'; + font-style: normal; + font-weight: 400; + font-display: auto; + src: + local('Space Mono'), + local('SpaceMono-Regular'), + url('../font/SpaceMono-Regular.woff2') format('woff2'), + url(https://fonts.gstatic.com/s/spacemono/v4/i7dPIFZifjKcF5UAWdDRYEF8RQ.woff2) format('woff2'); + unicode-range: + U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, + U+FEFF, U+FFFD; +} +@font-face { + font-family: 'Space Mono'; + font-style: normal; + font-weight: 700; + font-display: auto; + src: + local('Space Mono Bold'), + local('SpaceMono-Bold'), + url('../font/SpaceMono-Bold.woff2') format('woff2'), + url(https://fonts.gstatic.com/s/spacemono/v4/i7dMIFZifjKcF5UAWdDRaPpZUFWaHg.woff2) format('woff2'); + unicode-range: + U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, + U+FEFF, U+FFFD; +} +@font-face { + font-family: 'Work Sans'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: + local('Work Sans'), + url('../font/WorkSans-Regular.ttf') format('truetype'), + url(https://fonts.gstatic.com/s/worksans/v8/QGY_z_wNahGAdqQ43RhVcIgYT2Xz5u32K0nXBiEJpp_c.woff2) format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +@font-face { + font-family: 'Work Sans'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: + local('Work Sans'), + url('../font/WorkSans-Regular.ttf') format('truetype'), + url(https://fonts.gstatic.com/s/worksans/v8/QGY_z_wNahGAdqQ43RhVcIgYT2Xz5u32K0nXBi8Jpg.woff2) format('woff2'); + unicode-range: + U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, + U+FEFF, U+FFFD; +} +@font-face { + font-family: 'Work Sans'; + font-style: normal; + font-weight: 500; + font-display: swap; + src: + url('../font/WorkSans-Medium.ttf') format('truetype'), + url(https://fonts.gstatic.com/s/worksans/v9/QGY_z_wNahGAdqQ43RhVcIgYT2Xz5u32K3vXBiEJpp_c.woff2) format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +@font-face { + font-family: 'Work Sans'; + font-style: normal; + font-weight: 500; + font-display: swap; + src: + url('../font/WorkSans-Medium.ttf') format('truetype'), + url(https://fonts.gstatic.com/s/worksans/v9/QGY_z_wNahGAdqQ43RhVcIgYT2Xz5u32K3vXBi8Jpg.woff2) format('woff2'); + unicode-range: + U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, + U+FEFF, U+FFFD; +} +@font-face { + font-family: 'Work Sans'; + font-style: normal; + font-weight: 600; + font-display: swap; + src: + url('../font/WorkSans-SemiBold.ttf') format('truetype'), + url(https://fonts.gstatic.com/s/worksans/v9/QGY_z_wNahGAdqQ43RhVcIgYT2Xz5u32K5fQBiEJpp_c.woff2) format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +@font-face { + font-family: 'Work Sans'; + font-style: normal; + font-weight: 600; + font-display: swap; + src: + url('../font/WorkSans-SemiBold.ttf') format('truetype'), + url(https://fonts.gstatic.com/s/worksans/v9/QGY_z_wNahGAdqQ43RhVcIgYT2Xz5u32K5fQBi8Jpg.woff2) format('woff2'); + unicode-range: + U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, + U+FEFF, U+FFFD; +} +@font-face { + font-family: 'Work Sans'; + font-style: normal; + font-weight: 700; + font-display: swap; + src: + local('Work Sans Bold'), + url('../font/WorkSans-Bold.ttf') format('truetype'), + url(https://fonts.gstatic.com/s/worksans/v8/QGY_z_wNahGAdqQ43RhVcIgYT2Xz5u32K67QBiEJpp_c.woff2) format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +@font-face { + font-family: 'Work Sans'; + font-style: normal; + font-weight: 700; + font-display: swap; + src: + local('Work Sans Bold'), + url('../font/WorkSans-Bold.ttf') format('truetype'), + url(https://fonts.gstatic.com/s/worksans/v8/QGY_z_wNahGAdqQ43RhVcIgYT2Xz5u32K67QBi8Jpg.woff2) format('woff2'); + unicode-range: + U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, + U+FEFF, U+FFFD; +} /*! * Bootstrap v4.6.2 (https://getbootstrap.com/) * Copyright 2011-2022 The Bootstrap Authors * Copyright 2011-2022 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - */:root{--blue: #19A3FF;--indigo: #6610f2;--purple: #9A52FF;--pink: #FF198B;--red: #dc3545;--orange: #FF6719;--yellow: #FAFF19;--green: #32E685;--teal: #20c997;--cyan: #17a2b8;--white: #FFFFFF;--gray: #454549;--gray-dark: #232325;--primary: #9A52FF;--secondary: #E0E0E1;--success: #32E685;--info: #19A3FF;--warning: #FAFF19;--danger: #FF198B;--light: #FFFFFF;--dark: #111112;--breakpoint-xs: 0;--breakpoint-sm: 576px;--breakpoint-md: 768px;--breakpoint-lg: 992px;--breakpoint-xl: 1200px;--font-family-sans-serif: "Work Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;--font-family-monospace: "Space Mono", monospace}*,*::before,*::after{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:"Work Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:1rem;font-weight:400;line-height:1.5;color:#e0e0e1;text-align:left;background-color:#111112}[tabindex="-1"]:focus:not(:focus-visible){outline:0 !important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[title],abbr[data-original-title]{text-decoration:underline;text-decoration:underline dotted;cursor:help;border-bottom:0;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}a{color:#fff;text-decoration:none;background-color:transparent}a:hover{color:#9a52ff;text-decoration:underline}a:not([href]):not([class]){color:inherit;text-decoration:none}a:not([href]):not([class]):hover{color:inherit;text-decoration:none}pre,code,kbd,samp{font-family:"Space Mono",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#e0e0e1;text-align:left;caption-side:bottom}th{text-align:inherit;text-align:-webkit-match-parent}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus:not(:focus-visible){outline:0}input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button:not(:disabled),[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled){cursor:pointer}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{padding:0;border-style:none}input[type=radio],input[type=checkbox]{box-sizing:border-box;padding:0}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none !important}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{margin-bottom:.5rem;font-weight:500;line-height:1.2;color:#fff}h1,.h1{font-size:2.5rem}h2,.h2{font-size:2rem}h3,.h3{font-size:1.75rem}h4,.h4{font-size:1.5rem}h5,.h5{font-size:1.25rem}h6,.h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}small,.small{font-size:0.875em;font-weight:400}mark,.mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:0.875em;color:#454549}.blockquote-footer::before{content:"— "}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#111112;border:1px solid #c1c1c2;border-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.075);max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#454549}code{font-size:87.5%;color:#e0e0e1;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#111112;border-radius:4px;box-shadow:inset 0 -0.1rem 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;box-shadow:none}pre{display:block;font-size:87.5%;color:#111112}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container,.container-fluid,.container-xl,.container-lg,.container-md,.container-sm{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media(min-width: 576px){.container-sm,.container{max-width:540px}}@media(min-width: 768px){.container-md,.container-sm,.container{max-width:720px}}@media(min-width: 992px){.container-lg,.container-md,.container-sm,.container{max-width:960px}}@media(min-width: 1200px){.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1140px}}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col-xl,.col-xl-auto,.col-xl-12,.col-xl-11,.col-xl-10,.col-xl-9,.col-xl-8,.col-xl-7,.col-xl-6,.col-xl-5,.col-xl-4,.col-xl-3,.col-xl-2,.col-xl-1,.col-lg,.col-lg-auto,.col-lg-12,.col-lg-11,.col-lg-10,.col-lg-9,.col-lg-8,.col-lg-7,.col-lg-6,.col-lg-5,.col-lg-4,.col-lg-3,.col-lg-2,.col-lg-1,.col-md,.col-md-auto,.col-md-12,.col-md-11,.col-md-10,.col-md-9,.col-md-8,.col-md-7,.col-md-6,.col-md-5,.col-md-4,.col-md-3,.col-md-2,.col-md-1,.col-sm,.col-sm-auto,.col-sm-12,.col-sm-11,.col-sm-10,.col-sm-9,.col-sm-8,.col-sm-7,.col-sm-6,.col-sm-5,.col-sm-4,.col-sm-3,.col-sm-2,.col-sm-1,.col,.col-auto,.col-12,.col-11,.col-10,.col-9,.col-8,.col-7,.col-6,.col-5,.col-4,.col-3,.col-2,.col-1{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-1>*{flex:0 0 100%;max-width:100%}.row-cols-2>*{flex:0 0 50%;max-width:50%}.row-cols-3>*{flex:0 0 33.3333333333%;max-width:33.3333333333%}.row-cols-4>*{flex:0 0 25%;max-width:25%}.row-cols-5>*{flex:0 0 20%;max-width:20%}.row-cols-6>*{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1{flex:0 0 8.33333333%;max-width:8.33333333%}.col-2{flex:0 0 16.66666667%;max-width:16.66666667%}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.33333333%;max-width:33.33333333%}.col-5{flex:0 0 41.66666667%;max-width:41.66666667%}.col-6{flex:0 0 50%;max-width:50%}.col-7{flex:0 0 58.33333333%;max-width:58.33333333%}.col-8{flex:0 0 66.66666667%;max-width:66.66666667%}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.33333333%;max-width:83.33333333%}.col-11{flex:0 0 91.66666667%;max-width:91.66666667%}.col-12{flex:0 0 100%;max-width:100%}.order-first{order:-1}.order-last{order:13}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.order-12{order:12}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}@media(min-width: 576px){.col-sm{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-sm-1>*{flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{flex:0 0 33.3333333333%;max-width:33.3333333333%}.row-cols-sm-4>*{flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-sm-auto{flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{flex:0 0 8.33333333%;max-width:8.33333333%}.col-sm-2{flex:0 0 16.66666667%;max-width:16.66666667%}.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.33333333%;max-width:33.33333333%}.col-sm-5{flex:0 0 41.66666667%;max-width:41.66666667%}.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-7{flex:0 0 58.33333333%;max-width:58.33333333%}.col-sm-8{flex:0 0 66.66666667%;max-width:66.66666667%}.col-sm-9{flex:0 0 75%;max-width:75%}.col-sm-10{flex:0 0 83.33333333%;max-width:83.33333333%}.col-sm-11{flex:0 0 91.66666667%;max-width:91.66666667%}.col-sm-12{flex:0 0 100%;max-width:100%}.order-sm-first{order:-1}.order-sm-last{order:13}.order-sm-0{order:0}.order-sm-1{order:1}.order-sm-2{order:2}.order-sm-3{order:3}.order-sm-4{order:4}.order-sm-5{order:5}.order-sm-6{order:6}.order-sm-7{order:7}.order-sm-8{order:8}.order-sm-9{order:9}.order-sm-10{order:10}.order-sm-11{order:11}.order-sm-12{order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}}@media(min-width: 768px){.col-md{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-md-1>*{flex:0 0 100%;max-width:100%}.row-cols-md-2>*{flex:0 0 50%;max-width:50%}.row-cols-md-3>*{flex:0 0 33.3333333333%;max-width:33.3333333333%}.row-cols-md-4>*{flex:0 0 25%;max-width:25%}.row-cols-md-5>*{flex:0 0 20%;max-width:20%}.row-cols-md-6>*{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-md-auto{flex:0 0 auto;width:auto;max-width:100%}.col-md-1{flex:0 0 8.33333333%;max-width:8.33333333%}.col-md-2{flex:0 0 16.66666667%;max-width:16.66666667%}.col-md-3{flex:0 0 25%;max-width:25%}.col-md-4{flex:0 0 33.33333333%;max-width:33.33333333%}.col-md-5{flex:0 0 41.66666667%;max-width:41.66666667%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-7{flex:0 0 58.33333333%;max-width:58.33333333%}.col-md-8{flex:0 0 66.66666667%;max-width:66.66666667%}.col-md-9{flex:0 0 75%;max-width:75%}.col-md-10{flex:0 0 83.33333333%;max-width:83.33333333%}.col-md-11{flex:0 0 91.66666667%;max-width:91.66666667%}.col-md-12{flex:0 0 100%;max-width:100%}.order-md-first{order:-1}.order-md-last{order:13}.order-md-0{order:0}.order-md-1{order:1}.order-md-2{order:2}.order-md-3{order:3}.order-md-4{order:4}.order-md-5{order:5}.order-md-6{order:6}.order-md-7{order:7}.order-md-8{order:8}.order-md-9{order:9}.order-md-10{order:10}.order-md-11{order:11}.order-md-12{order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}}@media(min-width: 992px){.col-lg{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-lg-1>*{flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{flex:0 0 33.3333333333%;max-width:33.3333333333%}.row-cols-lg-4>*{flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-lg-auto{flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{flex:0 0 8.33333333%;max-width:8.33333333%}.col-lg-2{flex:0 0 16.66666667%;max-width:16.66666667%}.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.33333333%;max-width:33.33333333%}.col-lg-5{flex:0 0 41.66666667%;max-width:41.66666667%}.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-7{flex:0 0 58.33333333%;max-width:58.33333333%}.col-lg-8{flex:0 0 66.66666667%;max-width:66.66666667%}.col-lg-9{flex:0 0 75%;max-width:75%}.col-lg-10{flex:0 0 83.33333333%;max-width:83.33333333%}.col-lg-11{flex:0 0 91.66666667%;max-width:91.66666667%}.col-lg-12{flex:0 0 100%;max-width:100%}.order-lg-first{order:-1}.order-lg-last{order:13}.order-lg-0{order:0}.order-lg-1{order:1}.order-lg-2{order:2}.order-lg-3{order:3}.order-lg-4{order:4}.order-lg-5{order:5}.order-lg-6{order:6}.order-lg-7{order:7}.order-lg-8{order:8}.order-lg-9{order:9}.order-lg-10{order:10}.order-lg-11{order:11}.order-lg-12{order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}}@media(min-width: 1200px){.col-xl{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-xl-1>*{flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{flex:0 0 33.3333333333%;max-width:33.3333333333%}.row-cols-xl-4>*{flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-xl-auto{flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{flex:0 0 8.33333333%;max-width:8.33333333%}.col-xl-2{flex:0 0 16.66666667%;max-width:16.66666667%}.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-4{flex:0 0 33.33333333%;max-width:33.33333333%}.col-xl-5{flex:0 0 41.66666667%;max-width:41.66666667%}.col-xl-6{flex:0 0 50%;max-width:50%}.col-xl-7{flex:0 0 58.33333333%;max-width:58.33333333%}.col-xl-8{flex:0 0 66.66666667%;max-width:66.66666667%}.col-xl-9{flex:0 0 75%;max-width:75%}.col-xl-10{flex:0 0 83.33333333%;max-width:83.33333333%}.col-xl-11{flex:0 0 91.66666667%;max-width:91.66666667%}.col-xl-12{flex:0 0 100%;max-width:100%}.order-xl-first{order:-1}.order-xl-last{order:13}.order-xl-0{order:0}.order-xl-1{order:1}.order-xl-2{order:2}.order-xl-3{order:3}.order-xl-4{order:4}.order-xl-5{order:5}.order-xl-6{order:6}.order-xl-7{order:7}.order-xl-8{order:8}.order-xl-9{order:9}.order-xl-10{order:10}.order-xl-11{order:11}.order-xl-12{order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}}.table{width:100%;margin-bottom:1rem;color:#e0e0e1}.table th,.table td{padding:.75rem;vertical-align:top;border-top:1px solid #c1c1c2}.table thead th{vertical-align:bottom;border-bottom:2px solid #c1c1c2}.table tbody+tbody{border-top:2px solid #c1c1c2}.table-sm th,.table-sm td{padding:.3rem}.table-bordered{border:1px solid #c1c1c2}.table-bordered th,.table-bordered td{border:1px solid #c1c1c2}.table-bordered thead th,.table-bordered thead td{border-bottom-width:2px}.table-borderless th,.table-borderless td,.table-borderless thead th,.table-borderless tbody+tbody{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#e0e0e1;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>th,.table-primary>td{background-color:#e3cfff}.table-primary th,.table-primary td,.table-primary thead th,.table-primary tbody+tbody{border-color:#caa5ff}.table-hover .table-primary:hover{background-color:#d4b6ff}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#d4b6ff}.table-secondary,.table-secondary>th,.table-secondary>td{background-color:#f6f6f7}.table-secondary th,.table-secondary td,.table-secondary thead th,.table-secondary tbody+tbody{border-color:#efefef}.table-hover .table-secondary:hover{background-color:#e9e9eb}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#e9e9eb}.table-success,.table-success>th,.table-success>td{background-color:#c6f8dd}.table-success th,.table-success td,.table-success thead th,.table-success tbody+tbody{border-color:#94f2c0}.table-hover .table-success:hover{background-color:#aff5cf}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#aff5cf}.table-info,.table-info>th,.table-info>td{background-color:#bfe5ff}.table-info th,.table-info td,.table-info thead th,.table-info tbody+tbody{border-color:#87cfff}.table-hover .table-info:hover{background-color:#a6dbff}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#a6dbff}.table-warning,.table-warning>th,.table-warning>td{background-color:#feffbf}.table-warning th,.table-warning td,.table-warning thead th,.table-warning tbody+tbody{border-color:#fcff87}.table-hover .table-warning:hover{background-color:#feffa6}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#feffa6}.table-danger,.table-danger>th,.table-danger>td{background-color:#ffbfdf}.table-danger th,.table-danger td,.table-danger thead th,.table-danger tbody+tbody{border-color:#ff87c3}.table-hover .table-danger:hover{background-color:#ffa6d2}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#ffa6d2}.table-light,.table-light>th,.table-light>td{background-color:#fff}.table-light th,.table-light td,.table-light thead th,.table-light tbody+tbody{border-color:#fff}.table-hover .table-light:hover{background-color:#f2f2f2}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#f2f2f2}.table-dark,.table-dark>th,.table-dark>td{background-color:#bcbcbd}.table-dark th,.table-dark td,.table-dark thead th,.table-dark tbody+tbody{border-color:#838384}.table-hover .table-dark:hover{background-color:#afafb0}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#afafb0}.table-active,.table-active>th,.table-active>td{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#232325;border-color:#363639}.table .thead-light th{color:#343437;background-color:#e0e0e1;border-color:#c1c1c2}.table-dark{color:#fff;background-color:#232325}.table-dark th,.table-dark td,.table-dark thead th{border-color:#363639}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:rgba(255,255,255,.075)}@media(max-width: 575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media(max-width: 767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media(max-width: 991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media(max-width: 1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.25em + 2rem + 2px);padding:1rem 1.5rem;font-size:1rem;font-weight:400;line-height:1.25;color:#fff;background-color:#232325;background-clip:padding-box;border:1px solid transparent;border-radius:4px;box-shadow:none;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#fff;background-color:#232325;border-color:#e4d2ff;outline:0;box-shadow:0 0 0 .2rem rgba(154,82,255,.25)}.form-control::placeholder{color:#a2a2a4;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#454549;opacity:1}input[type=date].form-control,input[type=time].form-control,input[type=datetime-local].form-control,input[type=month].form-control{appearance:none}select.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #fff}select.form-control:focus::-ms-value{color:#fff;background-color:#232325}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(1rem + 1px);padding-bottom:calc(1rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.25}.col-form-label-lg{padding-top:calc(0.5rem + 1px);padding-bottom:calc(0.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(0.25rem + 1px);padding-bottom:calc(0.25rem + 1px);font-size:0.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:1rem 0;margin-bottom:0;font-size:1rem;line-height:1.25;color:#e0e0e1;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-sm,.form-control-plaintext.form-control-lg{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + 0.5rem + 2px);padding:.25rem .5rem;font-size:0.875rem;line-height:1.5;border-radius:4px}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:8px}select.form-control[size],select.form-control[multiple]{height:auto}textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input[disabled]~.form-check-label,.form-check-input:disabled~.form-check-label{color:#e0e0e1}.form-check-label{margin-bottom:0}.form-check-inline{display:inline-flex;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:0.875em;color:#32e685}.valid-tooltip{position:absolute;top:100%;left:0;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:0.875rem;line-height:1.5;color:#111112;background-color:rgba(50,230,133,.9);border-radius:4px}.form-row>.col>.valid-tooltip,.form-row>[class*=col-]>.valid-tooltip{left:5px}.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip,.is-valid~.valid-feedback,.is-valid~.valid-tooltip{display:block}.was-validated .form-control:valid,.form-control.is-valid{border-color:#32e685;padding-right:calc(1.25em + 2rem) !important;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2332E685' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(0.3125em + 0.5rem) center;background-size:calc(0.625em + 1rem) calc(0.625em + 1rem)}.was-validated .form-control:valid:focus,.form-control.is-valid:focus{border-color:#32e685;box-shadow:0 0 0 .2rem rgba(50,230,133,.25)}.was-validated select.form-control:valid,select.form-control.is-valid{padding-right:6rem !important;background-position:right 3rem center}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.25em + 2rem);background-position:top calc(0.3125em + 0.5rem) right calc(0.3125em + 0.5rem)}.was-validated .custom-select:valid,.custom-select.is-valid{border-color:#32e685;padding-right:calc(0.75em + 4rem) !important;background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23232325' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right 1.5rem center/8px 10px no-repeat,#232325 url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2332E685' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") center right 2.5rem/calc(0.625em + 1rem) calc(0.625em + 1rem) no-repeat}.was-validated .custom-select:valid:focus,.custom-select.is-valid:focus{border-color:#32e685;box-shadow:0 0 0 .2rem rgba(50,230,133,.25)}.was-validated .form-check-input:valid~.form-check-label,.form-check-input.is-valid~.form-check-label{color:#32e685}.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip,.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip{display:block}.was-validated .custom-control-input:valid~.custom-control-label,.custom-control-input.is-valid~.custom-control-label{color:#32e685}.was-validated .custom-control-input:valid~.custom-control-label::before,.custom-control-input.is-valid~.custom-control-label::before{border-color:#32e685}.was-validated .custom-control-input:valid:checked~.custom-control-label::before,.custom-control-input.is-valid:checked~.custom-control-label::before{border-color:#5feca0;background-color:#5feca0}.was-validated .custom-control-input:valid:focus~.custom-control-label::before,.custom-control-input.is-valid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(50,230,133,.25)}.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label::before,.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label::before{border-color:#32e685}.was-validated .custom-file-input:valid~.custom-file-label,.custom-file-input.is-valid~.custom-file-label{border-color:#32e685}.was-validated .custom-file-input:valid:focus~.custom-file-label,.custom-file-input.is-valid:focus~.custom-file-label{border-color:#32e685;box-shadow:0 0 0 .2rem rgba(50,230,133,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:0.875em;color:#ff198b}.invalid-tooltip{position:absolute;top:100%;left:0;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:0.875rem;line-height:1.5;color:#fff;background-color:rgba(255,25,139,.9);border-radius:4px}.form-row>.col>.invalid-tooltip,.form-row>[class*=col-]>.invalid-tooltip{left:5px}.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip,.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip{display:block}.was-validated .form-control:invalid,.form-control.is-invalid{border-color:#ff198b;padding-right:calc(1.25em + 2rem) !important;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23FF198B' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23FF198B' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(0.3125em + 0.5rem) center;background-size:calc(0.625em + 1rem) calc(0.625em + 1rem)}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:#ff198b;box-shadow:0 0 0 .2rem rgba(255,25,139,.25)}.was-validated select.form-control:invalid,select.form-control.is-invalid{padding-right:6rem !important;background-position:right 3rem center}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.25em + 2rem);background-position:top calc(0.3125em + 0.5rem) right calc(0.3125em + 0.5rem)}.was-validated .custom-select:invalid,.custom-select.is-invalid{border-color:#ff198b;padding-right:calc(0.75em + 4rem) !important;background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23232325' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right 1.5rem center/8px 10px no-repeat,#232325 url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23FF198B' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23FF198B' stroke='none'/%3e%3c/svg%3e") center right 2.5rem/calc(0.625em + 1rem) calc(0.625em + 1rem) no-repeat}.was-validated .custom-select:invalid:focus,.custom-select.is-invalid:focus{border-color:#ff198b;box-shadow:0 0 0 .2rem rgba(255,25,139,.25)}.was-validated .form-check-input:invalid~.form-check-label,.form-check-input.is-invalid~.form-check-label{color:#ff198b}.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip,.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip{display:block}.was-validated .custom-control-input:invalid~.custom-control-label,.custom-control-input.is-invalid~.custom-control-label{color:#ff198b}.was-validated .custom-control-input:invalid~.custom-control-label::before,.custom-control-input.is-invalid~.custom-control-label::before{border-color:#ff198b}.was-validated .custom-control-input:invalid:checked~.custom-control-label::before,.custom-control-input.is-invalid:checked~.custom-control-label::before{border-color:#ff4ca5;background-color:#ff4ca5}.was-validated .custom-control-input:invalid:focus~.custom-control-label::before,.custom-control-input.is-invalid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(255,25,139,.25)}.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label::before,.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label::before{border-color:#ff198b}.was-validated .custom-file-input:invalid~.custom-file-label,.custom-file-input.is-invalid~.custom-file-label{border-color:#ff198b}.was-validated .custom-file-input:invalid:focus~.custom-file-label,.custom-file-input.is-invalid:focus~.custom-file-label{border-color:#ff198b;box-shadow:0 0 0 .2rem rgba(255,25,139,.25)}.form-inline{display:flex;flex-flow:row wrap;align-items:center}.form-inline .form-check{width:100%}@media(min-width: 576px){.form-inline label{display:flex;align-items:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:flex;flex:0 0 auto;flex-flow:row wrap;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .input-group,.form-inline .custom-select{width:auto}.form-inline .form-check{display:flex;align-items:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{align-items:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#e0e0e1;text-align:center;vertical-align:middle;user-select:none;background-color:transparent;border:1px solid transparent;padding:1rem 1.5rem;font-size:0.875rem;line-height:1.25;border-radius:4px;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.btn{transition:none}}.btn:hover{color:#e0e0e1;text-decoration:none}.btn:focus,.btn.focus{outline:0;box-shadow:none}.btn.disabled,.btn:disabled{opacity:.65;box-shadow:none}.btn:not(:disabled):not(.disabled){cursor:pointer}.btn:not(:disabled):not(.disabled):active,.btn:not(:disabled):not(.disabled).active{box-shadow:none}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#9a52ff;border-color:#9a52ff;box-shadow:none}.btn-primary:hover{color:#fff;background-color:#842cff;border-color:#7c1fff}.btn-primary:focus,.btn-primary.focus{color:#fff;background-color:#842cff;border-color:#7c1fff;box-shadow:0 0 0 .2rem rgba(169,108,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#9a52ff;border-color:#9a52ff}.btn-primary:not(:disabled):not(.disabled):active,.btn-primary:not(:disabled):not(.disabled).active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#7c1fff;border-color:#7512ff}.btn-primary:not(:disabled):not(.disabled):active:focus,.btn-primary:not(:disabled):not(.disabled).active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(169,108,255,.5)}.btn-secondary{color:#111112;background-color:#e0e0e1;border-color:#e0e0e1;box-shadow:none}.btn-secondary:hover{color:#111112;background-color:#cdcdce;border-color:#c6c6c8}.btn-secondary:focus,.btn-secondary.focus{color:#111112;background-color:#cdcdce;border-color:#c6c6c8;box-shadow:0 0 0 .2rem rgba(193,193,194,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#111112;background-color:#e0e0e1;border-color:#e0e0e1}.btn-secondary:not(:disabled):not(.disabled):active,.btn-secondary:not(:disabled):not(.disabled).active,.show>.btn-secondary.dropdown-toggle{color:#111112;background-color:#c6c6c8;border-color:#c0c0c2}.btn-secondary:not(:disabled):not(.disabled):active:focus,.btn-secondary:not(:disabled):not(.disabled).active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(193,193,194,.5)}.btn-success{color:#111112;background-color:#32e685;border-color:#32e685;box-shadow:none}.btn-success:hover{color:#fff;background-color:#1ad772;border-color:#19cc6c}.btn-success:focus,.btn-success.focus{color:#fff;background-color:#1ad772;border-color:#19cc6c;box-shadow:0 0 0 .2rem rgba(45,198,116,.5)}.btn-success.disabled,.btn-success:disabled{color:#111112;background-color:#32e685;border-color:#32e685}.btn-success:not(:disabled):not(.disabled):active,.btn-success:not(:disabled):not(.disabled).active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#19cc6c;border-color:#18c166}.btn-success:not(:disabled):not(.disabled):active:focus,.btn-success:not(:disabled):not(.disabled).active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(45,198,116,.5)}.btn-info{color:#fff;background-color:#19a3ff;border-color:#19a3ff;box-shadow:none}.btn-info:hover{color:#fff;background-color:#0091f2;border-color:#0089e5}.btn-info:focus,.btn-info.focus{color:#fff;background-color:#0091f2;border-color:#0089e5;box-shadow:0 0 0 .2rem rgba(60,177,255,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#19a3ff;border-color:#19a3ff}.btn-info:not(:disabled):not(.disabled):active,.btn-info:not(:disabled):not(.disabled).active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#0089e5;border-color:#0082d8}.btn-info:not(:disabled):not(.disabled):active:focus,.btn-info:not(:disabled):not(.disabled).active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(60,177,255,.5)}.btn-warning{color:#111112;background-color:#faff19;border-color:#faff19;box-shadow:none}.btn-warning:hover{color:#111112;background-color:#ecf200;border-color:#e0e500}.btn-warning:focus,.btn-warning.focus{color:#111112;background-color:#ecf200;border-color:#e0e500;box-shadow:0 0 0 .2rem rgba(215,219,24,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#111112;background-color:#faff19;border-color:#faff19}.btn-warning:not(:disabled):not(.disabled):active,.btn-warning:not(:disabled):not(.disabled).active,.show>.btn-warning.dropdown-toggle{color:#111112;background-color:#e0e500;border-color:#d4d800}.btn-warning:not(:disabled):not(.disabled):active:focus,.btn-warning:not(:disabled):not(.disabled).active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(215,219,24,.5)}.btn-danger{color:#fff;background-color:#ff198b;border-color:#ff198b;box-shadow:none}.btn-danger:hover{color:#fff;background-color:#f20078;border-color:#e50072}.btn-danger:focus,.btn-danger.focus{color:#fff;background-color:#f20078;border-color:#e50072;box-shadow:0 0 0 .2rem rgba(255,60,156,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#ff198b;border-color:#ff198b}.btn-danger:not(:disabled):not(.disabled):active,.btn-danger:not(:disabled):not(.disabled).active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#e50072;border-color:#d8006b}.btn-danger:not(:disabled):not(.disabled):active:focus,.btn-danger:not(:disabled):not(.disabled).active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,60,156,.5)}.btn-light{color:#111112;background-color:#fff;border-color:#fff;box-shadow:none}.btn-light:hover{color:#111112;background-color:#ececec;border-color:#e6e6e6}.btn-light:focus,.btn-light.focus{color:#111112;background-color:#ececec;border-color:#e6e6e6;box-shadow:0 0 0 .2rem rgba(219,219,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#111112;background-color:#fff;border-color:#fff}.btn-light:not(:disabled):not(.disabled):active,.btn-light:not(:disabled):not(.disabled).active,.show>.btn-light.dropdown-toggle{color:#111112;background-color:#e6e6e6;border-color:#dfdfdf}.btn-light:not(:disabled):not(.disabled):active:focus,.btn-light:not(:disabled):not(.disabled).active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(219,219,219,.5)}.btn-dark{color:#fff;background-color:#111112;border-color:#111112;box-shadow:none}.btn-dark:hover{color:#fff;background-color:#000;border-color:#000}.btn-dark:focus,.btn-dark.focus{color:#fff;background-color:#000;border-color:#000;box-shadow:0 0 0 .2rem rgba(53,53,54,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#111112;border-color:#111112}.btn-dark:not(:disabled):not(.disabled):active,.btn-dark:not(:disabled):not(.disabled).active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#000;border-color:#000}.btn-dark:not(:disabled):not(.disabled):active:focus,.btn-dark:not(:disabled):not(.disabled).active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(53,53,54,.5)}.btn-outline-primary{color:#9a52ff;border-color:#9a52ff}.btn-outline-primary:hover{color:#fff;background-color:#9a52ff;border-color:#9a52ff}.btn-outline-primary:focus,.btn-outline-primary.focus{box-shadow:0 0 0 .2rem rgba(154,82,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#9a52ff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled):active,.btn-outline-primary:not(:disabled):not(.disabled).active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#9a52ff;border-color:#9a52ff}.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(154,82,255,.5)}.btn-outline-secondary{color:#e0e0e1;border-color:#e0e0e1}.btn-outline-secondary:hover{color:#111112;background-color:#e0e0e1;border-color:#e0e0e1}.btn-outline-secondary:focus,.btn-outline-secondary.focus{box-shadow:0 0 0 .2rem rgba(224,224,225,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#e0e0e1;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled):active,.btn-outline-secondary:not(:disabled):not(.disabled).active,.show>.btn-outline-secondary.dropdown-toggle{color:#111112;background-color:#e0e0e1;border-color:#e0e0e1}.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(224,224,225,.5)}.btn-outline-success{color:#32e685;border-color:#32e685}.btn-outline-success:hover{color:#111112;background-color:#32e685;border-color:#32e685}.btn-outline-success:focus,.btn-outline-success.focus{box-shadow:0 0 0 .2rem rgba(50,230,133,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#32e685;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled):active,.btn-outline-success:not(:disabled):not(.disabled).active,.show>.btn-outline-success.dropdown-toggle{color:#111112;background-color:#32e685;border-color:#32e685}.btn-outline-success:not(:disabled):not(.disabled):active:focus,.btn-outline-success:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(50,230,133,.5)}.btn-outline-info{color:#19a3ff;border-color:#19a3ff}.btn-outline-info:hover{color:#fff;background-color:#19a3ff;border-color:#19a3ff}.btn-outline-info:focus,.btn-outline-info.focus{box-shadow:0 0 0 .2rem rgba(25,163,255,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#19a3ff;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled):active,.btn-outline-info:not(:disabled):not(.disabled).active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#19a3ff;border-color:#19a3ff}.btn-outline-info:not(:disabled):not(.disabled):active:focus,.btn-outline-info:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(25,163,255,.5)}.btn-outline-warning{color:#faff19;border-color:#faff19}.btn-outline-warning:hover{color:#111112;background-color:#faff19;border-color:#faff19}.btn-outline-warning:focus,.btn-outline-warning.focus{box-shadow:0 0 0 .2rem rgba(250,255,25,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#faff19;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled):active,.btn-outline-warning:not(:disabled):not(.disabled).active,.show>.btn-outline-warning.dropdown-toggle{color:#111112;background-color:#faff19;border-color:#faff19}.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(250,255,25,.5)}.btn-outline-danger{color:#ff198b;border-color:#ff198b}.btn-outline-danger:hover{color:#fff;background-color:#ff198b;border-color:#ff198b}.btn-outline-danger:focus,.btn-outline-danger.focus{box-shadow:0 0 0 .2rem rgba(255,25,139,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#ff198b;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled):active,.btn-outline-danger:not(:disabled):not(.disabled).active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#ff198b;border-color:#ff198b}.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,25,139,.5)}.btn-outline-light{color:#fff;border-color:#fff}.btn-outline-light:hover{color:#111112;background-color:#fff;border-color:#fff}.btn-outline-light:focus,.btn-outline-light.focus{box-shadow:0 0 0 .2rem rgba(255,255,255,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#fff;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled):active,.btn-outline-light:not(:disabled):not(.disabled).active,.show>.btn-outline-light.dropdown-toggle{color:#111112;background-color:#fff;border-color:#fff}.btn-outline-light:not(:disabled):not(.disabled):active:focus,.btn-outline-light:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,255,255,.5)}.btn-outline-dark{color:#111112;border-color:#111112}.btn-outline-dark:hover{color:#fff;background-color:#111112;border-color:#111112}.btn-outline-dark:focus,.btn-outline-dark.focus{box-shadow:0 0 0 .2rem rgba(17,17,18,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#111112;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled):active,.btn-outline-dark:not(:disabled):not(.disabled).active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#111112;border-color:#111112}.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(17,17,18,.5)}.btn-link{font-weight:400;color:#fff;text-decoration:none}.btn-link:hover{color:#9a52ff;text-decoration:underline}.btn-link:focus,.btn-link.focus{text-decoration:underline}.btn-link:disabled,.btn-link.disabled{color:#454549;pointer-events:none}.btn-lg,.btn-group-lg>.btn{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:8px}.btn-sm,.btn-group-sm>.btn{padding:.25rem .5rem;font-size:0.875rem;line-height:1.5;border-radius:4px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=submit].btn-block,input[type=reset].btn-block,input[type=button].btn-block{width:100%}.fade{transition:opacity .15s linear}@media(prefers-reduced-motion: reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media(prefers-reduced-motion: reduce){.collapsing{transition:none}}.collapsing.width{width:0;height:auto;transition:width .35s ease}@media(prefers-reduced-motion: reduce){.collapsing.width{transition:none}}.dropup,.dropright,.dropdown,.dropleft{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.34em;vertical-align:.34em;content:"";border-top:.4em solid;border-right:.4em solid transparent;border-bottom:0;border-left:.4em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#e0e0e1;text-align:left;list-style:none;background-color:#111112;background-clip:padding-box;border:1px solid #111112;border-radius:4px;box-shadow:0px 5px 40px #000}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media(min-width: 576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media(min-width: 768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media(min-width: 992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media(min-width: 1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.34em;vertical-align:.34em;content:"";border-top:0;border-right:.4em solid transparent;border-bottom:.4em solid;border-left:.4em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;margin-left:.34em;vertical-align:.34em;content:"";border-top:.4em solid transparent;border-right:0;border-bottom:.4em solid transparent;border-left:.4em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;margin-left:.34em;vertical-align:.34em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;margin-right:.34em;vertical-align:.34em;content:"";border-top:.4em solid transparent;border-right:.4em solid;border-bottom:.4em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-menu[x-placement^=top],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #000}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#fff;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:hover,.dropdown-item:focus{color:#9a52ff;text-decoration:none;background-color:#111112}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:transparent}.dropdown-item.disabled,.dropdown-item:disabled{color:#838386;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:0.875rem;color:#454549;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#fff}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;flex:1 1 auto}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover{z-index:1}.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn.active{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn:not(:first-child),.btn-group>.btn-group:not(:first-child){margin-left:-1px}.btn-group>.btn:not(:last-child):not(.dropdown-toggle),.btn-group>.btn-group:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:not(:first-child),.btn-group>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:1.125rem;padding-left:1.125rem}.dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-sm+.dropdown-toggle-split,.btn-group-sm>.btn+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-lg+.dropdown-toggle-split,.btn-group-lg>.btn+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group.show .dropdown-toggle{box-shadow:none}.btn-group.show .dropdown-toggle.btn-link{box-shadow:none}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle),.btn-group-vertical>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-control-plaintext,.input-group>.custom-select,.input-group>.custom-file{position:relative;flex:1 1 auto;width:1%;min-width:0;margin-bottom:0}.input-group>.form-control+.form-control,.input-group>.form-control+.custom-select,.input-group>.form-control+.custom-file,.input-group>.form-control-plaintext+.form-control,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.custom-file,.input-group>.custom-select+.form-control,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.custom-file,.input-group>.custom-file+.form-control,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.custom-file{margin-left:-1px}.input-group>.form-control:focus,.input-group>.custom-select:focus,.input-group>.custom-file .custom-file-input:focus~.custom-file-label{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.form-control:not(:first-child),.input-group>.custom-select:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:flex;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group:not(.has-validation)>.form-control:not(:last-child),.input-group:not(.has-validation)>.custom-select:not(:last-child),.input-group:not(.has-validation)>.custom-file:not(:last-child) .custom-file-label,.input-group:not(.has-validation)>.custom-file:not(:last-child) .custom-file-label::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>.form-control:nth-last-child(n+3),.input-group.has-validation>.custom-select:nth-last-child(n+3),.input-group.has-validation>.custom-file:nth-last-child(n+3) .custom-file-label,.input-group.has-validation>.custom-file:nth-last-child(n+3) .custom-file-label::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group-prepend,.input-group-append{display:flex}.input-group-prepend .btn,.input-group-append .btn{position:relative;z-index:2}.input-group-prepend .btn:focus,.input-group-append .btn:focus{z-index:3}.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.input-group-text,.input-group-append .input-group-text+.btn{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:flex;align-items:center;padding:1rem 1.5rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.25;color:#fff;text-align:center;white-space:nowrap;background-color:#454549;border:1px solid transparent;border-radius:4px}.input-group-text input[type=radio],.input-group-text input[type=checkbox]{margin-top:0}.input-group-lg>.form-control:not(textarea),.input-group-lg>.custom-select{height:calc(1.5em + 1rem + 2px)}.input-group-lg>.form-control,.input-group-lg>.custom-select,.input-group-lg>.input-group-prepend>.input-group-text,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-append>.btn{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:8px}.input-group-sm>.form-control:not(textarea),.input-group-sm>.custom-select{height:calc(1.5em + 0.5rem + 2px)}.input-group-sm>.form-control,.input-group-sm>.custom-select,.input-group-sm>.input-group-prepend>.input-group-text,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-append>.btn{padding:.25rem .5rem;font-size:0.875rem;line-height:1.5;border-radius:4px}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:2.5rem}.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text,.input-group:not(.has-validation)>.input-group-append:not(:last-child)>.btn,.input-group:not(.has-validation)>.input-group-append:not(:last-child)>.input-group-text,.input-group.has-validation>.input-group-append:nth-last-child(n+3)>.btn,.input-group.has-validation>.input-group-append:nth-last-child(n+3)>.input-group-text,.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;z-index:1;display:block;min-height:1.5rem;padding-left:1.5rem;print-color-adjust:exact}.custom-control-inline{display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label::before{color:#fff;border-color:#9a52ff;background-color:#9a52ff}.custom-control-input:focus~.custom-control-label::before{box-shadow:none,0 0 0 .2rem rgba(154,82,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label::before{border-color:#e4d2ff}.custom-control-input:not(:disabled):active~.custom-control-label::before{color:#fff;background-color:#fff;border-color:#fff}.custom-control-input[disabled]~.custom-control-label,.custom-control-input:disabled~.custom-control-label{color:#454549}.custom-control-input[disabled]~.custom-control-label::before,.custom-control-input:disabled~.custom-control-label::before{background-color:#454549}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";background-color:#232325;border:1px solid #838386;box-shadow:none}.custom-control-label::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background:50%/50% 50% no-repeat}.custom-checkbox .custom-control-label::before{border-radius:4px}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23FFFFFF' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{border-color:#9a52ff;background-color:#9a52ff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23FFFFFF' d='M0 2h4'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(154,82,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(154,82,255,.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23FFFFFF'/%3e%3c/svg%3e")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(154,82,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label::before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label::after{top:calc(0.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#838386;border-radius:.5rem;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.custom-switch .custom-control-label::after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label::after{background-color:#232325;transform:translateX(0.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(154,82,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.25em + 2rem + 2px);padding:1rem 2.5rem 1rem 1.5rem;font-size:1rem;font-weight:400;line-height:1.25;color:#fff;vertical-align:middle;background:#232325 url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23232325' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right 1.5rem center/8px 10px no-repeat;border:1px solid transparent;border-radius:4px;box-shadow:inset 0 1px 2px rgba(0,0,0,.075);appearance:none}.custom-select:focus{border-color:#e4d2ff;outline:0;box-shadow:inset 0 1px 2px rgba(0,0,0,.075),0 0 0 .2rem rgba(154,82,255,.25)}.custom-select:focus::-ms-value{color:#fff;background-color:#232325}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:1.5rem;background-image:none}.custom-select:disabled{color:#454549;background-color:#e0e0e1}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #fff}.custom-select-sm{height:calc(1.5em + 0.5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:0.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{position:relative;display:inline-block;width:100%;height:calc(1.25em + 2rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(1.25em + 2rem + 2px);margin:0;overflow:hidden;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#e4d2ff;box-shadow:0 0 0 .2rem rgba(154,82,255,.25)}.custom-file-input[disabled]~.custom-file-label,.custom-file-input:disabled~.custom-file-label{background-color:#454549}.custom-file-input:lang(en)~.custom-file-label::after{content:"Browse"}.custom-file-input~.custom-file-label[data-browse]::after{content:attr(data-browse)}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(1.25em + 2rem + 2px);padding:1rem 1.5rem;overflow:hidden;font-weight:400;line-height:1.25;color:#fff;background-color:#232325;border:1px solid transparent;border-radius:4px;box-shadow:none}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(1.25em + 2rem);padding:1rem 1.5rem;line-height:1.25;color:#fff;content:"Browse";background-color:#454549;border-left:inherit;border-radius:0 4px 4px 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #111112,0 0 0 .2rem rgba(154,82,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #111112,0 0 0 .2rem rgba(154,82,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #111112,0 0 0 .2rem rgba(154,82,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-0.25rem;background-color:#9a52ff;border:0;border-radius:1rem;box-shadow:0 .1rem .25rem rgba(0,0,0,.1);transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media(prefers-reduced-motion: reduce){.custom-range::-webkit-slider-thumb{transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#fff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#c1c1c2;border-color:transparent;border-radius:1rem;box-shadow:inset 0 .25rem .25rem rgba(0,0,0,.1)}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#9a52ff;border:0;border-radius:1rem;box-shadow:0 .1rem .25rem rgba(0,0,0,.1);transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media(prefers-reduced-motion: reduce){.custom-range::-moz-range-thumb{transition:none}}.custom-range::-moz-range-thumb:active{background-color:#fff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#c1c1c2;border-color:transparent;border-radius:1rem;box-shadow:inset 0 .25rem .25rem rgba(0,0,0,.1)}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#9a52ff;border:0;border-radius:1rem;box-shadow:0 .1rem .25rem rgba(0,0,0,.1);transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media(prefers-reduced-motion: reduce){.custom-range::-ms-thumb{transition:none}}.custom-range::-ms-thumb:active{background-color:#fff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem;box-shadow:inset 0 .25rem .25rem rgba(0,0,0,.1)}.custom-range::-ms-fill-lower{background-color:#c1c1c2;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#c1c1c2;border-radius:1rem}.custom-range:disabled::-webkit-slider-thumb{background-color:#838386}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#838386}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#838386}.custom-control-label::before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.custom-control-label::before,.custom-file-label,.custom-select{transition:none}}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:1rem 2rem}.nav-link:hover,.nav-link:focus{text-decoration:none}.nav-link.disabled{color:#454549;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #c1c1c2}.nav-tabs .nav-link{margin-bottom:-1px;background-color:transparent;border:1px solid transparent;border-top-left-radius:4px;border-top-right-radius:4px}.nav-tabs .nav-link:hover,.nav-tabs .nav-link:focus{isolation:isolate;border-color:#e0e0e1 #e0e0e1 #c1c1c2}.nav-tabs .nav-link.disabled{color:#454549;background-color:transparent;border-color:transparent}.nav-tabs .nav-link.active,.nav-tabs .nav-item.show .nav-link{color:#343437;background-color:#111112;border-color:#c1c1c2 #c1c1c2 #111112}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{background:none;border:0;border-radius:4px}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#9a52ff}.nav-fill>.nav-link,.nav-fill .nav-item{flex:1 1 auto;text-align:center}.nav-justified>.nav-link,.nav-justified .nav-item{flex-basis:0;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:0 1rem}.navbar .container,.navbar .container-fluid,.navbar .container-sm,.navbar .container-md,.navbar .container-lg,.navbar .container-xl{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:1.25rem;padding-bottom:1.25rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:1rem;padding-bottom:1rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:4px}.navbar-toggler:hover,.navbar-toggler:focus{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:50%/100% 100% no-repeat}.navbar-nav-scroll{max-height:75vh;overflow-y:auto}@media(max-width: 575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media(min-width: 576px){.navbar-expand-sm{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:2rem;padding-left:2rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-xl{flex-wrap:nowrap}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media(max-width: 767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-md,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media(min-width: 768px){.navbar-expand-md{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:2rem;padding-left:2rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-md,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-xl{flex-wrap:nowrap}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media(max-width: 991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media(min-width: 992px){.navbar-expand-lg{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:2rem;padding-left:2rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-xl{flex-wrap:nowrap}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media(max-width: 1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media(min-width: 1200px){.navbar-expand-xl{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:2rem;padding-left:2rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-xl{flex-wrap:nowrap}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-sm,.navbar-expand>.container-md,.navbar-expand>.container-lg,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:2rem;padding-left:2rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-sm,.navbar-expand>.container-md,.navbar-expand>.container-lg,.navbar-expand>.container-xl{flex-wrap:nowrap}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:hover,.navbar-light .navbar-brand:focus{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:#454549}.navbar-light .navbar-nav .nav-link:hover,.navbar-light .navbar-nav .nav-link:focus{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .show>.nav-link,.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .nav-link.active{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:#454549;border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='%23454549' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:#454549}.navbar-light .navbar-text a{color:rgba(0,0,0,.9)}.navbar-light .navbar-text a:hover,.navbar-light .navbar-text a:focus{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:hover,.navbar-dark .navbar-brand:focus{color:#fff}.navbar-dark .navbar-nav .nav-link{color:#fff}.navbar-dark .navbar-nav .nav-link:hover,.navbar-dark .navbar-nav .nav-link:focus{color:#9a52ff}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .show>.nav-link,.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .nav-link.active{color:#fff}.navbar-dark .navbar-toggler{color:#fff;border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='%23FFFFFF' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:#fff}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:hover,.navbar-dark .navbar-text a:focus{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#232325;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:8px}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:7px;border-top-right-radius:7px}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:7px;border-bottom-left-radius:7px}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;min-height:1px;padding:2rem}.card-title{margin-bottom:2rem}.card-subtitle{margin-top:-1rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:2rem}.card-header{padding:2rem 2rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:7px 7px 0 0}.card-footer{padding:2rem 2rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 7px 7px}.card-header-tabs{margin-right:-1rem;margin-bottom:-2rem;margin-left:-1rem;border-bottom:0}.card-header-pills{margin-right:-1rem;margin-left:-1rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem;border-radius:7px}.card-img,.card-img-top,.card-img-bottom{flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:7px;border-top-right-radius:7px}.card-img,.card-img-bottom{border-bottom-right-radius:7px;border-bottom-left-radius:7px}.card-deck .card{margin-bottom:1.25rem}@media(min-width: 576px){.card-deck{display:flex;flex-flow:row wrap;margin-right:-1.25rem;margin-left:-1.25rem}.card-deck .card{flex:1 0 0%;margin-right:1.25rem;margin-bottom:0;margin-left:1.25rem}}.card-group>.card{margin-bottom:15px}@media(min-width: 576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-img-top,.card-group>.card:not(:last-child) .card-header{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-img-bottom,.card-group>.card:not(:last-child) .card-footer{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-img-top,.card-group>.card:not(:first-child) .card-header{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-img-bottom,.card-group>.card:not(:first-child) .card-footer{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:2rem}@media(min-width: 576px){.card-columns{column-count:3;column-gap:2rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion{overflow-anchor:none}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#111112;border-radius:4px}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:.5rem;color:#454549;content:"/"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#a2a2a4}.pagination{display:flex;padding-left:0;list-style:none;border-radius:4px}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#fff;background-color:#fff;border:1px solid #c1c1c2}.page-link:hover{z-index:2;color:#9a52ff;text-decoration:none;background-color:#e0e0e1;border-color:#c1c1c2}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(154,82,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.page-item:last-child .page-link{border-top-right-radius:4px;border-bottom-right-radius:4px}.page-item.active .page-link{z-index:3;color:#fff;background-color:#9a52ff;border-color:#9a52ff}.page-item.disabled .page-link{color:#454549;pointer-events:none;cursor:auto;background-color:#fff;border-color:#c1c1c2}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:8px;border-bottom-left-radius:8px}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:8px;border-bottom-right-radius:8px}.pagination-sm .page-link{padding:.25rem .5rem;font-size:0.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:4px;border-bottom-right-radius:4px}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:4px;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.badge{transition:none}}a.badge:hover,a.badge:focus{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#9a52ff}a.badge-primary:hover,a.badge-primary:focus{color:#fff;background-color:#7c1fff}a.badge-primary:focus,a.badge-primary.focus{outline:0;box-shadow:0 0 0 .2rem rgba(154,82,255,.5)}.badge-secondary{color:#111112;background-color:#e0e0e1}a.badge-secondary:hover,a.badge-secondary:focus{color:#111112;background-color:#c6c6c8}a.badge-secondary:focus,a.badge-secondary.focus{outline:0;box-shadow:0 0 0 .2rem rgba(224,224,225,.5)}.badge-success{color:#111112;background-color:#32e685}a.badge-success:hover,a.badge-success:focus{color:#111112;background-color:#19cc6c}a.badge-success:focus,a.badge-success.focus{outline:0;box-shadow:0 0 0 .2rem rgba(50,230,133,.5)}.badge-info{color:#fff;background-color:#19a3ff}a.badge-info:hover,a.badge-info:focus{color:#fff;background-color:#0089e5}a.badge-info:focus,a.badge-info.focus{outline:0;box-shadow:0 0 0 .2rem rgba(25,163,255,.5)}.badge-warning{color:#111112;background-color:#faff19}a.badge-warning:hover,a.badge-warning:focus{color:#111112;background-color:#e0e500}a.badge-warning:focus,a.badge-warning.focus{outline:0;box-shadow:0 0 0 .2rem rgba(250,255,25,.5)}.badge-danger{color:#fff;background-color:#ff198b}a.badge-danger:hover,a.badge-danger:focus{color:#fff;background-color:#e50072}a.badge-danger:focus,a.badge-danger.focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,25,139,.5)}.badge-light{color:#111112;background-color:#fff}a.badge-light:hover,a.badge-light:focus{color:#111112;background-color:#e6e6e6}a.badge-light:focus,a.badge-light.focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,255,255,.5)}.badge-dark{color:#fff;background-color:#111112}a.badge-dark:hover,a.badge-dark:focus{color:#fff;background-color:#000}a.badge-dark:focus,a.badge-dark.focus{outline:0;box-shadow:0 0 0 .2rem rgba(17,17,18,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e0e0e1;border-radius:8px}@media(min-width: 576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:4px}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;z-index:2;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#502b85;background-color:#ebdcff;border-color:#e3cfff}.alert-primary hr{border-top-color:#d4b6ff}.alert-primary .alert-link{color:#391f5e}.alert-secondary{color:#747475;background-color:#f9f9f9;border-color:#f6f6f7}.alert-secondary hr{border-top-color:#e9e9eb}.alert-secondary .alert-link{color:#5b5b5b}.alert-success{color:#1a7845;background-color:#d6fae7;border-color:#c6f8dd}.alert-success hr{border-top-color:#aff5cf}.alert-success .alert-link{color:#114e2d}.alert-info{color:#0d5585;background-color:#d1edff;border-color:#bfe5ff}.alert-info hr{border-top-color:#a6dbff}.alert-info .alert-link{color:#083757}.alert-warning{color:#82850d;background-color:#feffd1;border-color:#feffbf}.alert-warning hr{border-top-color:#feffa6}.alert-warning .alert-link{color:#555708}.alert-danger{color:#850d48;background-color:#ffd1e8;border-color:#ffbfdf}.alert-danger hr{border-top-color:#ffa6d2}.alert-danger .alert-link{color:#57082f}.alert-light{color:#858585;background-color:#fff;border-color:#fff}.alert-light hr{border-top-color:#f2f2f2}.alert-light .alert-link{color:#6c6c6c}.alert-dark{color:#090909;background-color:#cfcfd0;border-color:#bcbcbd}.alert-dark hr{border-top-color:#afafb0}.alert-dark .alert-link{color:#000}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:flex;height:1rem;overflow:hidden;line-height:0;font-size:0.75rem;background-color:#111112;border-radius:4px;box-shadow:inset 0 .1rem .1rem rgba(0,0,0,.1)}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#9a52ff;transition:width .6s ease}@media(prefers-reduced-motion: reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-size:1rem 1rem}.progress-bar-animated{animation:1s linear infinite progress-bar-stripes}@media(prefers-reduced-motion: reduce){.progress-bar-animated{animation:none}}.media{display:flex;align-items:flex-start}.media-body{flex:1}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:4px}.list-group-item-action{width:100%;color:#343437;text-align:inherit}.list-group-item-action:hover,.list-group-item-action:focus{z-index:1;color:#343437;text-decoration:none;background-color:#f5f5f7}.list-group-item-action:active{color:#e0e0e1;background-color:#e0e0e1}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#111112;border:1px solid #232325}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:#e0e0e1;pointer-events:none;background-color:#111112}.list-group-item.active{z-index:2;color:#fff;background-color:#9a52ff;border-color:#9a52ff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:4px;border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-top-right-radius:4px;border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media(min-width: 576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:4px;border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:4px;border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media(min-width: 768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:4px;border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:4px;border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media(min-width: 992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:4px;border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:4px;border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media(min-width: 1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:4px;border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:4px;border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#502b85;background-color:#e3cfff}.list-group-item-primary.list-group-item-action:hover,.list-group-item-primary.list-group-item-action:focus{color:#502b85;background-color:#d4b6ff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#502b85;border-color:#502b85}.list-group-item-secondary{color:#747475;background-color:#f6f6f7}.list-group-item-secondary.list-group-item-action:hover,.list-group-item-secondary.list-group-item-action:focus{color:#747475;background-color:#e9e9eb}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#747475;border-color:#747475}.list-group-item-success{color:#1a7845;background-color:#c6f8dd}.list-group-item-success.list-group-item-action:hover,.list-group-item-success.list-group-item-action:focus{color:#1a7845;background-color:#aff5cf}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#1a7845;border-color:#1a7845}.list-group-item-info{color:#0d5585;background-color:#bfe5ff}.list-group-item-info.list-group-item-action:hover,.list-group-item-info.list-group-item-action:focus{color:#0d5585;background-color:#a6dbff}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0d5585;border-color:#0d5585}.list-group-item-warning{color:#82850d;background-color:#feffbf}.list-group-item-warning.list-group-item-action:hover,.list-group-item-warning.list-group-item-action:focus{color:#82850d;background-color:#feffa6}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#82850d;border-color:#82850d}.list-group-item-danger{color:#850d48;background-color:#ffbfdf}.list-group-item-danger.list-group-item-action:hover,.list-group-item-danger.list-group-item-action:focus{color:#850d48;background-color:#ffa6d2}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#850d48;border-color:#850d48}.list-group-item-light{color:#858585;background-color:#fff}.list-group-item-light.list-group-item-action:hover,.list-group-item-light.list-group-item-action:focus{color:#858585;background-color:#f2f2f2}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#858585;border-color:#858585}.list-group-item-dark{color:#090909;background-color:#bcbcbd}.list-group-item-dark.list-group-item-action:hover,.list-group-item-dark.list-group-item-action:focus{color:#090909;background-color:#afafb0}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#090909;border-color:#090909}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#ff198b;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#ff198b;text-decoration:none}.close:not(:disabled):not(.disabled):hover,.close:not(:disabled):not(.disabled):focus{opacity:.75}button.close{padding:0;background-color:transparent;border:0}a.close.disabled{pointer-events:none}.toast{flex-basis:350px;max-width:350px;font-size:0.875rem;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:flex;align-items:center;padding:.25rem .75rem;color:#454549;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05);border-top-left-radius:calc(0.25rem - 1px);border-top-right-radius:calc(0.25rem - 1px)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translate(0, -50px)}@media(prefers-reduced-motion: reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-header,.modal-dialog-scrollable .modal-footer{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered::before{display:block;height:calc(100vh - 1rem);height:min-content;content:""}.modal-dialog-centered.modal-dialog-scrollable{flex-direction:column;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable::before{content:none}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#000;background-clip:padding-box;border:1px solid #e0e0e1;border-radius:8px;box-shadow:0 .25rem .5rem rgba(0,0,0,.5);outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #c1c1c2;border-top-left-radius:7px;border-top-right-radius:7px}.modal-header .close{padding:1rem 1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:.75rem;border-top:1px solid #c1c1c2;border-bottom-right-radius:7px;border-bottom-left-radius:7px}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media(min-width: 576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered::before{height:calc(100vh - 3.5rem);height:min-content}.modal-content{box-shadow:0 .5rem 1rem rgba(0,0,0,.5)}.modal-sm{max-width:300px}}@media(min-width: 992px){.modal-lg,.modal-xl{max-width:800px}}@media(min-width: 1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:"Work Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:0.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-top,.bs-tooltip-auto[x-placement^=top]{padding:.4rem 0}.bs-tooltip-top .arrow,.bs-tooltip-auto[x-placement^=top] .arrow{bottom:0}.bs-tooltip-top .arrow::before,.bs-tooltip-auto[x-placement^=top] .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-right,.bs-tooltip-auto[x-placement^=right]{padding:0 .4rem}.bs-tooltip-right .arrow,.bs-tooltip-auto[x-placement^=right] .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-right .arrow::before,.bs-tooltip-auto[x-placement^=right] .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-bottom,.bs-tooltip-auto[x-placement^=bottom]{padding:.4rem 0}.bs-tooltip-bottom .arrow,.bs-tooltip-auto[x-placement^=bottom] .arrow{top:0}.bs-tooltip-bottom .arrow::before,.bs-tooltip-auto[x-placement^=bottom] .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-left,.bs-tooltip-auto[x-placement^=left]{padding:0 .4rem}.bs-tooltip-left .arrow,.bs-tooltip-auto[x-placement^=left] .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-left .arrow::before,.bs-tooltip-auto[x-placement^=left] .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:4px}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:"Work Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:0.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:8px;box-shadow:0 .25rem .5rem rgba(0,0,0,.2)}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 8px}.popover .arrow::before,.popover .arrow::after{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-top,.bs-popover-auto[x-placement^=top]{margin-bottom:.5rem}.bs-popover-top>.arrow,.bs-popover-auto[x-placement^=top]>.arrow{bottom:calc(-0.5rem - 1px)}.bs-popover-top>.arrow::before,.bs-popover-auto[x-placement^=top]>.arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-top>.arrow::after,.bs-popover-auto[x-placement^=top]>.arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-right,.bs-popover-auto[x-placement^=right]{margin-left:.5rem}.bs-popover-right>.arrow,.bs-popover-auto[x-placement^=right]>.arrow{left:calc(-0.5rem - 1px);width:.5rem;height:1rem;margin:8px 0}.bs-popover-right>.arrow::before,.bs-popover-auto[x-placement^=right]>.arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-right>.arrow::after,.bs-popover-auto[x-placement^=right]>.arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-bottom,.bs-popover-auto[x-placement^=bottom]{margin-top:.5rem}.bs-popover-bottom>.arrow,.bs-popover-auto[x-placement^=bottom]>.arrow{top:calc(-0.5rem - 1px)}.bs-popover-bottom>.arrow::before,.bs-popover-auto[x-placement^=bottom]>.arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-bottom>.arrow::after,.bs-popover-auto[x-placement^=bottom]>.arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-bottom .popover-header::before,.bs-popover-auto[x-placement^=bottom] .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-0.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-left,.bs-popover-auto[x-placement^=left]{margin-right:.5rem}.bs-popover-left>.arrow,.bs-popover-auto[x-placement^=left]>.arrow{right:calc(-0.5rem - 1px);width:.5rem;height:1rem;margin:8px 0}.bs-popover-left>.arrow::before,.bs-popover-auto[x-placement^=left]>.arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-left>.arrow::after,.bs-popover-auto[x-placement^=left]>.arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;color:#fff;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:7px;border-top-right-radius:7px}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#e0e0e1}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;transition:transform .6s ease-in-out}@media(prefers-reduced-motion: reduce){.carousel-item{transition:none}}.carousel-item.active,.carousel-item-next,.carousel-item-prev{display:block}.carousel-item-next:not(.carousel-item-left),.active.carousel-item-right{transform:translateX(100%)}.carousel-item-prev:not(.carousel-item-right),.active.carousel-item-left{transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item.active,.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:opacity 0s .6s}@media(prefers-reduced-motion: reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-prev,.carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:none;border:0;opacity:.5;transition:opacity .15s ease}@media(prefers-reduced-motion: reduce){.carousel-control-prev,.carousel-control-next{transition:none}}.carousel-control-prev:hover,.carousel-control-prev:focus,.carousel-control-next:hover,.carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-prev-icon,.carousel-control-next-icon{display:inline-block;width:20px;height:20px;background:50%/100% 100% no-repeat}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23FFFFFF' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23FFFFFF' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:flex;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media(prefers-reduced-motion: reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:-0.125em;border:.25em solid currentcolor;border-right-color:transparent;border-radius:50%;animation:.75s linear infinite spinner-border}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:-0.125em;background-color:currentcolor;border-radius:50%;opacity:0;animation:.75s linear infinite spinner-grow}.spinner-grow-sm{width:1rem;height:1rem}@media(prefers-reduced-motion: reduce){.spinner-border,.spinner-grow{animation-duration:1.5s}}.align-baseline{vertical-align:baseline !important}.align-top{vertical-align:top !important}.align-middle{vertical-align:middle !important}.align-bottom{vertical-align:bottom !important}.align-text-bottom{vertical-align:text-bottom !important}.align-text-top{vertical-align:text-top !important}.bg-primary{background-color:#9a52ff !important}a.bg-primary:hover,a.bg-primary:focus,button.bg-primary:hover,button.bg-primary:focus{background-color:#7c1fff !important}.bg-secondary{background-color:#e0e0e1 !important}a.bg-secondary:hover,a.bg-secondary:focus,button.bg-secondary:hover,button.bg-secondary:focus{background-color:#c6c6c8 !important}.bg-success{background-color:#32e685 !important}a.bg-success:hover,a.bg-success:focus,button.bg-success:hover,button.bg-success:focus{background-color:#19cc6c !important}.bg-info{background-color:#19a3ff !important}a.bg-info:hover,a.bg-info:focus,button.bg-info:hover,button.bg-info:focus{background-color:#0089e5 !important}.bg-warning{background-color:#faff19 !important}a.bg-warning:hover,a.bg-warning:focus,button.bg-warning:hover,button.bg-warning:focus{background-color:#e0e500 !important}.bg-danger{background-color:#ff198b !important}a.bg-danger:hover,a.bg-danger:focus,button.bg-danger:hover,button.bg-danger:focus{background-color:#e50072 !important}.bg-light{background-color:#fff !important}a.bg-light:hover,a.bg-light:focus,button.bg-light:hover,button.bg-light:focus{background-color:#e6e6e6 !important}.bg-dark{background-color:#111112 !important}a.bg-dark:hover,a.bg-dark:focus,button.bg-dark:hover,button.bg-dark:focus{background-color:#000 !important}.bg-white{background-color:#fff !important}.bg-transparent{background-color:transparent !important}.border{border:1px solid #c1c1c2 !important}.border-top{border-top:1px solid #c1c1c2 !important}.border-right{border-right:1px solid #c1c1c2 !important}.border-bottom{border-bottom:1px solid #c1c1c2 !important}.border-left{border-left:1px solid #c1c1c2 !important}.border-0{border:0 !important}.border-top-0{border-top:0 !important}.border-right-0{border-right:0 !important}.border-bottom-0{border-bottom:0 !important}.border-left-0{border-left:0 !important}.border-primary{border-color:#9a52ff !important}.border-secondary{border-color:#e0e0e1 !important}.border-success{border-color:#32e685 !important}.border-info{border-color:#19a3ff !important}.border-warning{border-color:#faff19 !important}.border-danger{border-color:#ff198b !important}.border-light{border-color:#fff !important}.border-dark{border-color:#111112 !important}.border-white{border-color:#fff !important}.rounded-sm{border-radius:4px !important}.rounded{border-radius:4px !important}.rounded-top{border-top-left-radius:4px !important;border-top-right-radius:4px !important}.rounded-right{border-top-right-radius:4px !important;border-bottom-right-radius:4px !important}.rounded-bottom{border-bottom-right-radius:4px !important;border-bottom-left-radius:4px !important}.rounded-left{border-top-left-radius:4px !important;border-bottom-left-radius:4px !important}.rounded-lg{border-radius:8px !important}.rounded-circle{border-radius:50% !important}.rounded-pill{border-radius:50rem !important}.rounded-0{border-radius:0 !important}.clearfix::after{display:block;clear:both;content:""}.d-none{display:none !important}.d-inline{display:inline !important}.d-inline-block{display:inline-block !important}.d-block{display:block !important}.d-table{display:table !important}.d-table-row{display:table-row !important}.d-table-cell{display:table-cell !important}.d-flex{display:flex !important}.d-inline-flex{display:inline-flex !important}@media(min-width: 576px){.d-sm-none{display:none !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-block{display:block !important}.d-sm-table{display:table !important}.d-sm-table-row{display:table-row !important}.d-sm-table-cell{display:table-cell !important}.d-sm-flex{display:flex !important}.d-sm-inline-flex{display:inline-flex !important}}@media(min-width: 768px){.d-md-none{display:none !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-block{display:block !important}.d-md-table{display:table !important}.d-md-table-row{display:table-row !important}.d-md-table-cell{display:table-cell !important}.d-md-flex{display:flex !important}.d-md-inline-flex{display:inline-flex !important}}@media(min-width: 992px){.d-lg-none{display:none !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-block{display:block !important}.d-lg-table{display:table !important}.d-lg-table-row{display:table-row !important}.d-lg-table-cell{display:table-cell !important}.d-lg-flex{display:flex !important}.d-lg-inline-flex{display:inline-flex !important}}@media(min-width: 1200px){.d-xl-none{display:none !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-block{display:block !important}.d-xl-table{display:table !important}.d-xl-table-row{display:table-row !important}.d-xl-table-cell{display:table-cell !important}.d-xl-flex{display:flex !important}.d-xl-inline-flex{display:inline-flex !important}}@media print{.d-print-none{display:none !important}.d-print-inline{display:inline !important}.d-print-inline-block{display:inline-block !important}.d-print-block{display:block !important}.d-print-table{display:table !important}.d-print-table-row{display:table-row !important}.d-print-table-cell{display:table-cell !important}.d-print-flex{display:flex !important}.d-print-inline-flex{display:inline-flex !important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.85714286%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{flex-direction:row !important}.flex-column{flex-direction:column !important}.flex-row-reverse{flex-direction:row-reverse !important}.flex-column-reverse{flex-direction:column-reverse !important}.flex-wrap{flex-wrap:wrap !important}.flex-nowrap{flex-wrap:nowrap !important}.flex-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-fill{flex:1 1 auto !important}.flex-grow-0{flex-grow:0 !important}.flex-grow-1{flex-grow:1 !important}.flex-shrink-0{flex-shrink:0 !important}.flex-shrink-1{flex-shrink:1 !important}.justify-content-start{justify-content:flex-start !important}.justify-content-end{justify-content:flex-end !important}.justify-content-center{justify-content:center !important}.justify-content-between{justify-content:space-between !important}.justify-content-around{justify-content:space-around !important}.align-items-start{align-items:flex-start !important}.align-items-end{align-items:flex-end !important}.align-items-center{align-items:center !important}.align-items-baseline{align-items:baseline !important}.align-items-stretch{align-items:stretch !important}.align-content-start{align-content:flex-start !important}.align-content-end{align-content:flex-end !important}.align-content-center{align-content:center !important}.align-content-between{align-content:space-between !important}.align-content-around{align-content:space-around !important}.align-content-stretch{align-content:stretch !important}.align-self-auto{align-self:auto !important}.align-self-start{align-self:flex-start !important}.align-self-end{align-self:flex-end !important}.align-self-center{align-self:center !important}.align-self-baseline{align-self:baseline !important}.align-self-stretch{align-self:stretch !important}@media(min-width: 576px){.flex-sm-row{flex-direction:row !important}.flex-sm-column{flex-direction:column !important}.flex-sm-row-reverse{flex-direction:row-reverse !important}.flex-sm-column-reverse{flex-direction:column-reverse !important}.flex-sm-wrap{flex-wrap:wrap !important}.flex-sm-nowrap{flex-wrap:nowrap !important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-sm-fill{flex:1 1 auto !important}.flex-sm-grow-0{flex-grow:0 !important}.flex-sm-grow-1{flex-grow:1 !important}.flex-sm-shrink-0{flex-shrink:0 !important}.flex-sm-shrink-1{flex-shrink:1 !important}.justify-content-sm-start{justify-content:flex-start !important}.justify-content-sm-end{justify-content:flex-end !important}.justify-content-sm-center{justify-content:center !important}.justify-content-sm-between{justify-content:space-between !important}.justify-content-sm-around{justify-content:space-around !important}.align-items-sm-start{align-items:flex-start !important}.align-items-sm-end{align-items:flex-end !important}.align-items-sm-center{align-items:center !important}.align-items-sm-baseline{align-items:baseline !important}.align-items-sm-stretch{align-items:stretch !important}.align-content-sm-start{align-content:flex-start !important}.align-content-sm-end{align-content:flex-end !important}.align-content-sm-center{align-content:center !important}.align-content-sm-between{align-content:space-between !important}.align-content-sm-around{align-content:space-around !important}.align-content-sm-stretch{align-content:stretch !important}.align-self-sm-auto{align-self:auto !important}.align-self-sm-start{align-self:flex-start !important}.align-self-sm-end{align-self:flex-end !important}.align-self-sm-center{align-self:center !important}.align-self-sm-baseline{align-self:baseline !important}.align-self-sm-stretch{align-self:stretch !important}}@media(min-width: 768px){.flex-md-row{flex-direction:row !important}.flex-md-column{flex-direction:column !important}.flex-md-row-reverse{flex-direction:row-reverse !important}.flex-md-column-reverse{flex-direction:column-reverse !important}.flex-md-wrap{flex-wrap:wrap !important}.flex-md-nowrap{flex-wrap:nowrap !important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-md-fill{flex:1 1 auto !important}.flex-md-grow-0{flex-grow:0 !important}.flex-md-grow-1{flex-grow:1 !important}.flex-md-shrink-0{flex-shrink:0 !important}.flex-md-shrink-1{flex-shrink:1 !important}.justify-content-md-start{justify-content:flex-start !important}.justify-content-md-end{justify-content:flex-end !important}.justify-content-md-center{justify-content:center !important}.justify-content-md-between{justify-content:space-between !important}.justify-content-md-around{justify-content:space-around !important}.align-items-md-start{align-items:flex-start !important}.align-items-md-end{align-items:flex-end !important}.align-items-md-center{align-items:center !important}.align-items-md-baseline{align-items:baseline !important}.align-items-md-stretch{align-items:stretch !important}.align-content-md-start{align-content:flex-start !important}.align-content-md-end{align-content:flex-end !important}.align-content-md-center{align-content:center !important}.align-content-md-between{align-content:space-between !important}.align-content-md-around{align-content:space-around !important}.align-content-md-stretch{align-content:stretch !important}.align-self-md-auto{align-self:auto !important}.align-self-md-start{align-self:flex-start !important}.align-self-md-end{align-self:flex-end !important}.align-self-md-center{align-self:center !important}.align-self-md-baseline{align-self:baseline !important}.align-self-md-stretch{align-self:stretch !important}}@media(min-width: 992px){.flex-lg-row{flex-direction:row !important}.flex-lg-column{flex-direction:column !important}.flex-lg-row-reverse{flex-direction:row-reverse !important}.flex-lg-column-reverse{flex-direction:column-reverse !important}.flex-lg-wrap{flex-wrap:wrap !important}.flex-lg-nowrap{flex-wrap:nowrap !important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-lg-fill{flex:1 1 auto !important}.flex-lg-grow-0{flex-grow:0 !important}.flex-lg-grow-1{flex-grow:1 !important}.flex-lg-shrink-0{flex-shrink:0 !important}.flex-lg-shrink-1{flex-shrink:1 !important}.justify-content-lg-start{justify-content:flex-start !important}.justify-content-lg-end{justify-content:flex-end !important}.justify-content-lg-center{justify-content:center !important}.justify-content-lg-between{justify-content:space-between !important}.justify-content-lg-around{justify-content:space-around !important}.align-items-lg-start{align-items:flex-start !important}.align-items-lg-end{align-items:flex-end !important}.align-items-lg-center{align-items:center !important}.align-items-lg-baseline{align-items:baseline !important}.align-items-lg-stretch{align-items:stretch !important}.align-content-lg-start{align-content:flex-start !important}.align-content-lg-end{align-content:flex-end !important}.align-content-lg-center{align-content:center !important}.align-content-lg-between{align-content:space-between !important}.align-content-lg-around{align-content:space-around !important}.align-content-lg-stretch{align-content:stretch !important}.align-self-lg-auto{align-self:auto !important}.align-self-lg-start{align-self:flex-start !important}.align-self-lg-end{align-self:flex-end !important}.align-self-lg-center{align-self:center !important}.align-self-lg-baseline{align-self:baseline !important}.align-self-lg-stretch{align-self:stretch !important}}@media(min-width: 1200px){.flex-xl-row{flex-direction:row !important}.flex-xl-column{flex-direction:column !important}.flex-xl-row-reverse{flex-direction:row-reverse !important}.flex-xl-column-reverse{flex-direction:column-reverse !important}.flex-xl-wrap{flex-wrap:wrap !important}.flex-xl-nowrap{flex-wrap:nowrap !important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-xl-fill{flex:1 1 auto !important}.flex-xl-grow-0{flex-grow:0 !important}.flex-xl-grow-1{flex-grow:1 !important}.flex-xl-shrink-0{flex-shrink:0 !important}.flex-xl-shrink-1{flex-shrink:1 !important}.justify-content-xl-start{justify-content:flex-start !important}.justify-content-xl-end{justify-content:flex-end !important}.justify-content-xl-center{justify-content:center !important}.justify-content-xl-between{justify-content:space-between !important}.justify-content-xl-around{justify-content:space-around !important}.align-items-xl-start{align-items:flex-start !important}.align-items-xl-end{align-items:flex-end !important}.align-items-xl-center{align-items:center !important}.align-items-xl-baseline{align-items:baseline !important}.align-items-xl-stretch{align-items:stretch !important}.align-content-xl-start{align-content:flex-start !important}.align-content-xl-end{align-content:flex-end !important}.align-content-xl-center{align-content:center !important}.align-content-xl-between{align-content:space-between !important}.align-content-xl-around{align-content:space-around !important}.align-content-xl-stretch{align-content:stretch !important}.align-self-xl-auto{align-self:auto !important}.align-self-xl-start{align-self:flex-start !important}.align-self-xl-end{align-self:flex-end !important}.align-self-xl-center{align-self:center !important}.align-self-xl-baseline{align-self:baseline !important}.align-self-xl-stretch{align-self:stretch !important}}.float-left{float:left !important}.float-right{float:right !important}.float-none{float:none !important}@media(min-width: 576px){.float-sm-left{float:left !important}.float-sm-right{float:right !important}.float-sm-none{float:none !important}}@media(min-width: 768px){.float-md-left{float:left !important}.float-md-right{float:right !important}.float-md-none{float:none !important}}@media(min-width: 992px){.float-lg-left{float:left !important}.float-lg-right{float:right !important}.float-lg-none{float:none !important}}@media(min-width: 1200px){.float-xl-left{float:left !important}.float-xl-right{float:right !important}.float-xl-none{float:none !important}}.user-select-all{user-select:all !important}.user-select-auto{user-select:auto !important}.user-select-none{user-select:none !important}.overflow-auto{overflow:auto !important}.overflow-hidden{overflow:hidden !important}.position-static{position:static !important}.position-relative{position:relative !important}.position-absolute{position:absolute !important}.position-fixed{position:fixed !important}.position-sticky{position:sticky !important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports(position: sticky){.sticky-top{position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075) !important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15) !important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175) !important}.shadow-none{box-shadow:none !important}.w-25{width:25% !important}.w-50{width:50% !important}.w-75{width:75% !important}.w-100{width:100% !important}.w-auto{width:auto !important}.h-25{height:25% !important}.h-50{height:50% !important}.h-75{height:75% !important}.h-100{height:100% !important}.h-auto{height:auto !important}.mw-100{max-width:100% !important}.mh-100{max-height:100% !important}.min-vw-100{min-width:100vw !important}.min-vh-100{min-height:100vh !important}.vw-100{width:100vw !important}.vh-100{height:100vh !important}.m-0{margin:0 !important}.mt-0,.my-0{margin-top:0 !important}.mr-0,.mx-0{margin-right:0 !important}.mb-0,.my-0{margin-bottom:0 !important}.ml-0,.mx-0{margin-left:0 !important}.m-1{margin:.25rem !important}.mt-1,.my-1{margin-top:.25rem !important}.mr-1,.mx-1{margin-right:.25rem !important}.mb-1,.my-1{margin-bottom:.25rem !important}.ml-1,.mx-1{margin-left:.25rem !important}.m-2{margin:.5rem !important}.mt-2,.my-2{margin-top:.5rem !important}.mr-2,.mx-2{margin-right:.5rem !important}.mb-2,.my-2{margin-bottom:.5rem !important}.ml-2,.mx-2{margin-left:.5rem !important}.m-3{margin:1rem !important}.mt-3,.my-3{margin-top:1rem !important}.mr-3,.mx-3{margin-right:1rem !important}.mb-3,.my-3{margin-bottom:1rem !important}.ml-3,.mx-3{margin-left:1rem !important}.m-4{margin:1.5rem !important}.mt-4,.my-4{margin-top:1.5rem !important}.mr-4,.mx-4{margin-right:1.5rem !important}.mb-4,.my-4{margin-bottom:1.5rem !important}.ml-4,.mx-4{margin-left:1.5rem !important}.m-5{margin:3rem !important}.mt-5,.my-5{margin-top:3rem !important}.mr-5,.mx-5{margin-right:3rem !important}.mb-5,.my-5{margin-bottom:3rem !important}.ml-5,.mx-5{margin-left:3rem !important}.p-0{padding:0 !important}.pt-0,.py-0{padding-top:0 !important}.pr-0,.px-0{padding-right:0 !important}.pb-0,.py-0{padding-bottom:0 !important}.pl-0,.px-0{padding-left:0 !important}.p-1{padding:.25rem !important}.pt-1,.py-1{padding-top:.25rem !important}.pr-1,.px-1{padding-right:.25rem !important}.pb-1,.py-1{padding-bottom:.25rem !important}.pl-1,.px-1{padding-left:.25rem !important}.p-2{padding:.5rem !important}.pt-2,.py-2{padding-top:.5rem !important}.pr-2,.px-2{padding-right:.5rem !important}.pb-2,.py-2{padding-bottom:.5rem !important}.pl-2,.px-2{padding-left:.5rem !important}.p-3{padding:1rem !important}.pt-3,.py-3{padding-top:1rem !important}.pr-3,.px-3{padding-right:1rem !important}.pb-3,.py-3{padding-bottom:1rem !important}.pl-3,.px-3{padding-left:1rem !important}.p-4{padding:1.5rem !important}.pt-4,.py-4{padding-top:1.5rem !important}.pr-4,.px-4{padding-right:1.5rem !important}.pb-4,.py-4{padding-bottom:1.5rem !important}.pl-4,.px-4{padding-left:1.5rem !important}.p-5{padding:3rem !important}.pt-5,.py-5{padding-top:3rem !important}.pr-5,.px-5{padding-right:3rem !important}.pb-5,.py-5{padding-bottom:3rem !important}.pl-5,.px-5{padding-left:3rem !important}.m-n1{margin:-0.25rem !important}.mt-n1,.my-n1{margin-top:-0.25rem !important}.mr-n1,.mx-n1{margin-right:-0.25rem !important}.mb-n1,.my-n1{margin-bottom:-0.25rem !important}.ml-n1,.mx-n1{margin-left:-0.25rem !important}.m-n2{margin:-0.5rem !important}.mt-n2,.my-n2{margin-top:-0.5rem !important}.mr-n2,.mx-n2{margin-right:-0.5rem !important}.mb-n2,.my-n2{margin-bottom:-0.5rem !important}.ml-n2,.mx-n2{margin-left:-0.5rem !important}.m-n3{margin:-1rem !important}.mt-n3,.my-n3{margin-top:-1rem !important}.mr-n3,.mx-n3{margin-right:-1rem !important}.mb-n3,.my-n3{margin-bottom:-1rem !important}.ml-n3,.mx-n3{margin-left:-1rem !important}.m-n4{margin:-1.5rem !important}.mt-n4,.my-n4{margin-top:-1.5rem !important}.mr-n4,.mx-n4{margin-right:-1.5rem !important}.mb-n4,.my-n4{margin-bottom:-1.5rem !important}.ml-n4,.mx-n4{margin-left:-1.5rem !important}.m-n5{margin:-3rem !important}.mt-n5,.my-n5{margin-top:-3rem !important}.mr-n5,.mx-n5{margin-right:-3rem !important}.mb-n5,.my-n5{margin-bottom:-3rem !important}.ml-n5,.mx-n5{margin-left:-3rem !important}.m-auto{margin:auto !important}.mt-auto,.my-auto{margin-top:auto !important}.mr-auto,.mx-auto{margin-right:auto !important}.mb-auto,.my-auto{margin-bottom:auto !important}.ml-auto,.mx-auto{margin-left:auto !important}@media(min-width: 576px){.m-sm-0{margin:0 !important}.mt-sm-0,.my-sm-0{margin-top:0 !important}.mr-sm-0,.mx-sm-0{margin-right:0 !important}.mb-sm-0,.my-sm-0{margin-bottom:0 !important}.ml-sm-0,.mx-sm-0{margin-left:0 !important}.m-sm-1{margin:.25rem !important}.mt-sm-1,.my-sm-1{margin-top:.25rem !important}.mr-sm-1,.mx-sm-1{margin-right:.25rem !important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem !important}.ml-sm-1,.mx-sm-1{margin-left:.25rem !important}.m-sm-2{margin:.5rem !important}.mt-sm-2,.my-sm-2{margin-top:.5rem !important}.mr-sm-2,.mx-sm-2{margin-right:.5rem !important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem !important}.ml-sm-2,.mx-sm-2{margin-left:.5rem !important}.m-sm-3{margin:1rem !important}.mt-sm-3,.my-sm-3{margin-top:1rem !important}.mr-sm-3,.mx-sm-3{margin-right:1rem !important}.mb-sm-3,.my-sm-3{margin-bottom:1rem !important}.ml-sm-3,.mx-sm-3{margin-left:1rem !important}.m-sm-4{margin:1.5rem !important}.mt-sm-4,.my-sm-4{margin-top:1.5rem !important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem !important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem !important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem !important}.m-sm-5{margin:3rem !important}.mt-sm-5,.my-sm-5{margin-top:3rem !important}.mr-sm-5,.mx-sm-5{margin-right:3rem !important}.mb-sm-5,.my-sm-5{margin-bottom:3rem !important}.ml-sm-5,.mx-sm-5{margin-left:3rem !important}.p-sm-0{padding:0 !important}.pt-sm-0,.py-sm-0{padding-top:0 !important}.pr-sm-0,.px-sm-0{padding-right:0 !important}.pb-sm-0,.py-sm-0{padding-bottom:0 !important}.pl-sm-0,.px-sm-0{padding-left:0 !important}.p-sm-1{padding:.25rem !important}.pt-sm-1,.py-sm-1{padding-top:.25rem !important}.pr-sm-1,.px-sm-1{padding-right:.25rem !important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem !important}.pl-sm-1,.px-sm-1{padding-left:.25rem !important}.p-sm-2{padding:.5rem !important}.pt-sm-2,.py-sm-2{padding-top:.5rem !important}.pr-sm-2,.px-sm-2{padding-right:.5rem !important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem !important}.pl-sm-2,.px-sm-2{padding-left:.5rem !important}.p-sm-3{padding:1rem !important}.pt-sm-3,.py-sm-3{padding-top:1rem !important}.pr-sm-3,.px-sm-3{padding-right:1rem !important}.pb-sm-3,.py-sm-3{padding-bottom:1rem !important}.pl-sm-3,.px-sm-3{padding-left:1rem !important}.p-sm-4{padding:1.5rem !important}.pt-sm-4,.py-sm-4{padding-top:1.5rem !important}.pr-sm-4,.px-sm-4{padding-right:1.5rem !important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem !important}.pl-sm-4,.px-sm-4{padding-left:1.5rem !important}.p-sm-5{padding:3rem !important}.pt-sm-5,.py-sm-5{padding-top:3rem !important}.pr-sm-5,.px-sm-5{padding-right:3rem !important}.pb-sm-5,.py-sm-5{padding-bottom:3rem !important}.pl-sm-5,.px-sm-5{padding-left:3rem !important}.m-sm-n1{margin:-0.25rem !important}.mt-sm-n1,.my-sm-n1{margin-top:-0.25rem !important}.mr-sm-n1,.mx-sm-n1{margin-right:-0.25rem !important}.mb-sm-n1,.my-sm-n1{margin-bottom:-0.25rem !important}.ml-sm-n1,.mx-sm-n1{margin-left:-0.25rem !important}.m-sm-n2{margin:-0.5rem !important}.mt-sm-n2,.my-sm-n2{margin-top:-0.5rem !important}.mr-sm-n2,.mx-sm-n2{margin-right:-0.5rem !important}.mb-sm-n2,.my-sm-n2{margin-bottom:-0.5rem !important}.ml-sm-n2,.mx-sm-n2{margin-left:-0.5rem !important}.m-sm-n3{margin:-1rem !important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem !important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem !important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem !important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem !important}.m-sm-n4{margin:-1.5rem !important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem !important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem !important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem !important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem !important}.m-sm-n5{margin:-3rem !important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem !important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem !important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem !important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem !important}.m-sm-auto{margin:auto !important}.mt-sm-auto,.my-sm-auto{margin-top:auto !important}.mr-sm-auto,.mx-sm-auto{margin-right:auto !important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto !important}.ml-sm-auto,.mx-sm-auto{margin-left:auto !important}}@media(min-width: 768px){.m-md-0{margin:0 !important}.mt-md-0,.my-md-0{margin-top:0 !important}.mr-md-0,.mx-md-0{margin-right:0 !important}.mb-md-0,.my-md-0{margin-bottom:0 !important}.ml-md-0,.mx-md-0{margin-left:0 !important}.m-md-1{margin:.25rem !important}.mt-md-1,.my-md-1{margin-top:.25rem !important}.mr-md-1,.mx-md-1{margin-right:.25rem !important}.mb-md-1,.my-md-1{margin-bottom:.25rem !important}.ml-md-1,.mx-md-1{margin-left:.25rem !important}.m-md-2{margin:.5rem !important}.mt-md-2,.my-md-2{margin-top:.5rem !important}.mr-md-2,.mx-md-2{margin-right:.5rem !important}.mb-md-2,.my-md-2{margin-bottom:.5rem !important}.ml-md-2,.mx-md-2{margin-left:.5rem !important}.m-md-3{margin:1rem !important}.mt-md-3,.my-md-3{margin-top:1rem !important}.mr-md-3,.mx-md-3{margin-right:1rem !important}.mb-md-3,.my-md-3{margin-bottom:1rem !important}.ml-md-3,.mx-md-3{margin-left:1rem !important}.m-md-4{margin:1.5rem !important}.mt-md-4,.my-md-4{margin-top:1.5rem !important}.mr-md-4,.mx-md-4{margin-right:1.5rem !important}.mb-md-4,.my-md-4{margin-bottom:1.5rem !important}.ml-md-4,.mx-md-4{margin-left:1.5rem !important}.m-md-5{margin:3rem !important}.mt-md-5,.my-md-5{margin-top:3rem !important}.mr-md-5,.mx-md-5{margin-right:3rem !important}.mb-md-5,.my-md-5{margin-bottom:3rem !important}.ml-md-5,.mx-md-5{margin-left:3rem !important}.p-md-0{padding:0 !important}.pt-md-0,.py-md-0{padding-top:0 !important}.pr-md-0,.px-md-0{padding-right:0 !important}.pb-md-0,.py-md-0{padding-bottom:0 !important}.pl-md-0,.px-md-0{padding-left:0 !important}.p-md-1{padding:.25rem !important}.pt-md-1,.py-md-1{padding-top:.25rem !important}.pr-md-1,.px-md-1{padding-right:.25rem !important}.pb-md-1,.py-md-1{padding-bottom:.25rem !important}.pl-md-1,.px-md-1{padding-left:.25rem !important}.p-md-2{padding:.5rem !important}.pt-md-2,.py-md-2{padding-top:.5rem !important}.pr-md-2,.px-md-2{padding-right:.5rem !important}.pb-md-2,.py-md-2{padding-bottom:.5rem !important}.pl-md-2,.px-md-2{padding-left:.5rem !important}.p-md-3{padding:1rem !important}.pt-md-3,.py-md-3{padding-top:1rem !important}.pr-md-3,.px-md-3{padding-right:1rem !important}.pb-md-3,.py-md-3{padding-bottom:1rem !important}.pl-md-3,.px-md-3{padding-left:1rem !important}.p-md-4{padding:1.5rem !important}.pt-md-4,.py-md-4{padding-top:1.5rem !important}.pr-md-4,.px-md-4{padding-right:1.5rem !important}.pb-md-4,.py-md-4{padding-bottom:1.5rem !important}.pl-md-4,.px-md-4{padding-left:1.5rem !important}.p-md-5{padding:3rem !important}.pt-md-5,.py-md-5{padding-top:3rem !important}.pr-md-5,.px-md-5{padding-right:3rem !important}.pb-md-5,.py-md-5{padding-bottom:3rem !important}.pl-md-5,.px-md-5{padding-left:3rem !important}.m-md-n1{margin:-0.25rem !important}.mt-md-n1,.my-md-n1{margin-top:-0.25rem !important}.mr-md-n1,.mx-md-n1{margin-right:-0.25rem !important}.mb-md-n1,.my-md-n1{margin-bottom:-0.25rem !important}.ml-md-n1,.mx-md-n1{margin-left:-0.25rem !important}.m-md-n2{margin:-0.5rem !important}.mt-md-n2,.my-md-n2{margin-top:-0.5rem !important}.mr-md-n2,.mx-md-n2{margin-right:-0.5rem !important}.mb-md-n2,.my-md-n2{margin-bottom:-0.5rem !important}.ml-md-n2,.mx-md-n2{margin-left:-0.5rem !important}.m-md-n3{margin:-1rem !important}.mt-md-n3,.my-md-n3{margin-top:-1rem !important}.mr-md-n3,.mx-md-n3{margin-right:-1rem !important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem !important}.ml-md-n3,.mx-md-n3{margin-left:-1rem !important}.m-md-n4{margin:-1.5rem !important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem !important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem !important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem !important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem !important}.m-md-n5{margin:-3rem !important}.mt-md-n5,.my-md-n5{margin-top:-3rem !important}.mr-md-n5,.mx-md-n5{margin-right:-3rem !important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem !important}.ml-md-n5,.mx-md-n5{margin-left:-3rem !important}.m-md-auto{margin:auto !important}.mt-md-auto,.my-md-auto{margin-top:auto !important}.mr-md-auto,.mx-md-auto{margin-right:auto !important}.mb-md-auto,.my-md-auto{margin-bottom:auto !important}.ml-md-auto,.mx-md-auto{margin-left:auto !important}}@media(min-width: 992px){.m-lg-0{margin:0 !important}.mt-lg-0,.my-lg-0{margin-top:0 !important}.mr-lg-0,.mx-lg-0{margin-right:0 !important}.mb-lg-0,.my-lg-0{margin-bottom:0 !important}.ml-lg-0,.mx-lg-0{margin-left:0 !important}.m-lg-1{margin:.25rem !important}.mt-lg-1,.my-lg-1{margin-top:.25rem !important}.mr-lg-1,.mx-lg-1{margin-right:.25rem !important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem !important}.ml-lg-1,.mx-lg-1{margin-left:.25rem !important}.m-lg-2{margin:.5rem !important}.mt-lg-2,.my-lg-2{margin-top:.5rem !important}.mr-lg-2,.mx-lg-2{margin-right:.5rem !important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem !important}.ml-lg-2,.mx-lg-2{margin-left:.5rem !important}.m-lg-3{margin:1rem !important}.mt-lg-3,.my-lg-3{margin-top:1rem !important}.mr-lg-3,.mx-lg-3{margin-right:1rem !important}.mb-lg-3,.my-lg-3{margin-bottom:1rem !important}.ml-lg-3,.mx-lg-3{margin-left:1rem !important}.m-lg-4{margin:1.5rem !important}.mt-lg-4,.my-lg-4{margin-top:1.5rem !important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem !important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem !important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem !important}.m-lg-5{margin:3rem !important}.mt-lg-5,.my-lg-5{margin-top:3rem !important}.mr-lg-5,.mx-lg-5{margin-right:3rem !important}.mb-lg-5,.my-lg-5{margin-bottom:3rem !important}.ml-lg-5,.mx-lg-5{margin-left:3rem !important}.p-lg-0{padding:0 !important}.pt-lg-0,.py-lg-0{padding-top:0 !important}.pr-lg-0,.px-lg-0{padding-right:0 !important}.pb-lg-0,.py-lg-0{padding-bottom:0 !important}.pl-lg-0,.px-lg-0{padding-left:0 !important}.p-lg-1{padding:.25rem !important}.pt-lg-1,.py-lg-1{padding-top:.25rem !important}.pr-lg-1,.px-lg-1{padding-right:.25rem !important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem !important}.pl-lg-1,.px-lg-1{padding-left:.25rem !important}.p-lg-2{padding:.5rem !important}.pt-lg-2,.py-lg-2{padding-top:.5rem !important}.pr-lg-2,.px-lg-2{padding-right:.5rem !important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem !important}.pl-lg-2,.px-lg-2{padding-left:.5rem !important}.p-lg-3{padding:1rem !important}.pt-lg-3,.py-lg-3{padding-top:1rem !important}.pr-lg-3,.px-lg-3{padding-right:1rem !important}.pb-lg-3,.py-lg-3{padding-bottom:1rem !important}.pl-lg-3,.px-lg-3{padding-left:1rem !important}.p-lg-4{padding:1.5rem !important}.pt-lg-4,.py-lg-4{padding-top:1.5rem !important}.pr-lg-4,.px-lg-4{padding-right:1.5rem !important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem !important}.pl-lg-4,.px-lg-4{padding-left:1.5rem !important}.p-lg-5{padding:3rem !important}.pt-lg-5,.py-lg-5{padding-top:3rem !important}.pr-lg-5,.px-lg-5{padding-right:3rem !important}.pb-lg-5,.py-lg-5{padding-bottom:3rem !important}.pl-lg-5,.px-lg-5{padding-left:3rem !important}.m-lg-n1{margin:-0.25rem !important}.mt-lg-n1,.my-lg-n1{margin-top:-0.25rem !important}.mr-lg-n1,.mx-lg-n1{margin-right:-0.25rem !important}.mb-lg-n1,.my-lg-n1{margin-bottom:-0.25rem !important}.ml-lg-n1,.mx-lg-n1{margin-left:-0.25rem !important}.m-lg-n2{margin:-0.5rem !important}.mt-lg-n2,.my-lg-n2{margin-top:-0.5rem !important}.mr-lg-n2,.mx-lg-n2{margin-right:-0.5rem !important}.mb-lg-n2,.my-lg-n2{margin-bottom:-0.5rem !important}.ml-lg-n2,.mx-lg-n2{margin-left:-0.5rem !important}.m-lg-n3{margin:-1rem !important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem !important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem !important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem !important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem !important}.m-lg-n4{margin:-1.5rem !important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem !important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem !important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem !important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem !important}.m-lg-n5{margin:-3rem !important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem !important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem !important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem !important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem !important}.m-lg-auto{margin:auto !important}.mt-lg-auto,.my-lg-auto{margin-top:auto !important}.mr-lg-auto,.mx-lg-auto{margin-right:auto !important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto !important}.ml-lg-auto,.mx-lg-auto{margin-left:auto !important}}@media(min-width: 1200px){.m-xl-0{margin:0 !important}.mt-xl-0,.my-xl-0{margin-top:0 !important}.mr-xl-0,.mx-xl-0{margin-right:0 !important}.mb-xl-0,.my-xl-0{margin-bottom:0 !important}.ml-xl-0,.mx-xl-0{margin-left:0 !important}.m-xl-1{margin:.25rem !important}.mt-xl-1,.my-xl-1{margin-top:.25rem !important}.mr-xl-1,.mx-xl-1{margin-right:.25rem !important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem !important}.ml-xl-1,.mx-xl-1{margin-left:.25rem !important}.m-xl-2{margin:.5rem !important}.mt-xl-2,.my-xl-2{margin-top:.5rem !important}.mr-xl-2,.mx-xl-2{margin-right:.5rem !important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem !important}.ml-xl-2,.mx-xl-2{margin-left:.5rem !important}.m-xl-3{margin:1rem !important}.mt-xl-3,.my-xl-3{margin-top:1rem !important}.mr-xl-3,.mx-xl-3{margin-right:1rem !important}.mb-xl-3,.my-xl-3{margin-bottom:1rem !important}.ml-xl-3,.mx-xl-3{margin-left:1rem !important}.m-xl-4{margin:1.5rem !important}.mt-xl-4,.my-xl-4{margin-top:1.5rem !important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem !important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem !important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem !important}.m-xl-5{margin:3rem !important}.mt-xl-5,.my-xl-5{margin-top:3rem !important}.mr-xl-5,.mx-xl-5{margin-right:3rem !important}.mb-xl-5,.my-xl-5{margin-bottom:3rem !important}.ml-xl-5,.mx-xl-5{margin-left:3rem !important}.p-xl-0{padding:0 !important}.pt-xl-0,.py-xl-0{padding-top:0 !important}.pr-xl-0,.px-xl-0{padding-right:0 !important}.pb-xl-0,.py-xl-0{padding-bottom:0 !important}.pl-xl-0,.px-xl-0{padding-left:0 !important}.p-xl-1{padding:.25rem !important}.pt-xl-1,.py-xl-1{padding-top:.25rem !important}.pr-xl-1,.px-xl-1{padding-right:.25rem !important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem !important}.pl-xl-1,.px-xl-1{padding-left:.25rem !important}.p-xl-2{padding:.5rem !important}.pt-xl-2,.py-xl-2{padding-top:.5rem !important}.pr-xl-2,.px-xl-2{padding-right:.5rem !important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem !important}.pl-xl-2,.px-xl-2{padding-left:.5rem !important}.p-xl-3{padding:1rem !important}.pt-xl-3,.py-xl-3{padding-top:1rem !important}.pr-xl-3,.px-xl-3{padding-right:1rem !important}.pb-xl-3,.py-xl-3{padding-bottom:1rem !important}.pl-xl-3,.px-xl-3{padding-left:1rem !important}.p-xl-4{padding:1.5rem !important}.pt-xl-4,.py-xl-4{padding-top:1.5rem !important}.pr-xl-4,.px-xl-4{padding-right:1.5rem !important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem !important}.pl-xl-4,.px-xl-4{padding-left:1.5rem !important}.p-xl-5{padding:3rem !important}.pt-xl-5,.py-xl-5{padding-top:3rem !important}.pr-xl-5,.px-xl-5{padding-right:3rem !important}.pb-xl-5,.py-xl-5{padding-bottom:3rem !important}.pl-xl-5,.px-xl-5{padding-left:3rem !important}.m-xl-n1{margin:-0.25rem !important}.mt-xl-n1,.my-xl-n1{margin-top:-0.25rem !important}.mr-xl-n1,.mx-xl-n1{margin-right:-0.25rem !important}.mb-xl-n1,.my-xl-n1{margin-bottom:-0.25rem !important}.ml-xl-n1,.mx-xl-n1{margin-left:-0.25rem !important}.m-xl-n2{margin:-0.5rem !important}.mt-xl-n2,.my-xl-n2{margin-top:-0.5rem !important}.mr-xl-n2,.mx-xl-n2{margin-right:-0.5rem !important}.mb-xl-n2,.my-xl-n2{margin-bottom:-0.5rem !important}.ml-xl-n2,.mx-xl-n2{margin-left:-0.5rem !important}.m-xl-n3{margin:-1rem !important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem !important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem !important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem !important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem !important}.m-xl-n4{margin:-1.5rem !important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem !important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem !important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem !important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem !important}.m-xl-n5{margin:-3rem !important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem !important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem !important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem !important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem !important}.m-xl-auto{margin:auto !important}.mt-xl-auto,.my-xl-auto{margin-top:auto !important}.mr-xl-auto,.mx-xl-auto{margin-right:auto !important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto !important}.ml-xl-auto,.mx-xl-auto{margin-left:auto !important}}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:rgba(0,0,0,0)}.text-monospace{font-family:"Space Mono",monospace !important}.text-justify{text-align:justify !important}.text-wrap{white-space:normal !important}.text-nowrap{white-space:nowrap !important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left !important}.text-right{text-align:right !important}.text-center{text-align:center !important}@media(min-width: 576px){.text-sm-left{text-align:left !important}.text-sm-right{text-align:right !important}.text-sm-center{text-align:center !important}}@media(min-width: 768px){.text-md-left{text-align:left !important}.text-md-right{text-align:right !important}.text-md-center{text-align:center !important}}@media(min-width: 992px){.text-lg-left{text-align:left !important}.text-lg-right{text-align:right !important}.text-lg-center{text-align:center !important}}@media(min-width: 1200px){.text-xl-left{text-align:left !important}.text-xl-right{text-align:right !important}.text-xl-center{text-align:center !important}}.text-lowercase{text-transform:lowercase !important}.text-uppercase{text-transform:uppercase !important}.text-capitalize{text-transform:capitalize !important}.font-weight-light{font-weight:300 !important}.font-weight-lighter{font-weight:lighter !important}.font-weight-normal{font-weight:400 !important}.font-weight-bold{font-weight:700 !important}.font-weight-bolder{font-weight:bolder !important}.font-italic{font-style:italic !important}.text-white{color:#fff !important}.text-primary{color:#9a52ff !important}a.text-primary:hover,a.text-primary:focus{color:#6d06ff !important}.text-secondary{color:#e0e0e1 !important}a.text-secondary:hover,a.text-secondary:focus{color:#b9b9bb !important}.text-success{color:#32e685 !important}a.text-success:hover,a.text-success:focus{color:#16b560 !important}.text-info{color:#19a3ff !important}a.text-info:hover,a.text-info:focus{color:#007acc !important}.text-warning{color:#faff19 !important}a.text-warning:hover,a.text-warning:focus{color:#c7cc00 !important}.text-danger{color:#ff198b !important}a.text-danger:hover,a.text-danger:focus{color:#cc0065 !important}.text-light{color:#fff !important}a.text-light:hover,a.text-light:focus{color:#d9d9d9 !important}.text-dark{color:#111112 !important}a.text-dark:hover,a.text-dark:focus{color:#000 !important}.text-body{color:#e0e0e1 !important}.text-muted{color:#e0e0e1 !important}.text-black-50{color:rgba(0,0,0,.5) !important}.text-white-50{color:rgba(255,255,255,.5) !important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none !important}.text-break{word-break:break-word !important;word-wrap:break-word !important}.text-reset{color:inherit !important}.visible{visibility:visible !important}.invisible{visibility:hidden !important}@media print{*,*::before,*::after{text-shadow:none !important;box-shadow:none !important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap !important}pre,blockquote{border:1px solid #838386;page-break-inside:avoid}tr,img{page-break-inside:avoid}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px !important}.container{min-width:992px !important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #c1c1c2 !important}.table-dark{color:inherit}.table-dark th,.table-dark td,.table-dark thead th,.table-dark tbody+tbody{border-color:#c1c1c2}.table .thead-dark th{color:inherit;border-color:#c1c1c2}}body{text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}pre,code{font-feature-settings:"liga" 0;font-variant-ligatures:none}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-weight:bold}h1,.h1{font-size:3.875rem;line-height:70px}@media(max-width: 480px){h1,.h1{font-size:2.625rem;line-height:48px}}h2,.h2{font-size:3.5rem;line-height:62px}@media(max-width: 767.98px){h2,.h2{font-size:1.75rem;line-height:34px}}@media(max-width: 767.98px){h2-sm,.h2-sm{font-size:1.75rem !important;line-height:34px !important}}h3,.h3{font-size:3rem;line-height:52px}@media(max-width: 767.98px){h3,.h3{font-size:1.5rem;line-height:28px}}@media(max-width: 767.98px){h3-sm,.h3-sm{font-size:1.5rem;line-height:28px}}h4,.h4{font-size:2rem;line-height:38px}@media(max-width: 767.98px){h4,.h4{font-size:1.25rem;line-height:26px}}h5,.h5{font-size:1.5rem;line-height:32px}@media(max-width: 767.98px){h5,.h5{font-size:1.125rem;line-height:26px}}h6,.h6{font-size:1.25rem;line-height:26px}@media(max-width: 767.98px){h6,.h6{font-size:1rem;line-height:24px}}.longform{font-size:1.5rem;line-height:32px;color:#f5f5f7;font-weight:500}@media(max-width: 767.98px){.longform{font-size:1.25rem;line-height:26px}}.numbers{font-size:6rem;line-height:104px;font-weight:bold;color:#fff}@media(max-width: 767.98px){.numbers{font-size:3.875rem;line-height:70px}}p{font-size:1rem;line-height:24px}.fs-base{font-size:1rem}.fs-3{font-size:.75rem;line-height:1rem}.fs-4-5{font-size:1.125rem}.fs-5{font-size:1.25rem}.fs-5-5{font-size:1.375rem}.fs-6{font-size:1.5rem}.normal{font-weight:normal}.bold{font-weight:bold}.text-largest{font-size:1.5rem;font-weight:normal}.text-large{font-size:1.125rem}.text-small{font-size:.875rem}.text-smaller{font-size:.75rem}.text-smallest{font-size:.625rem}.arrow-link{text-decoration:none}.arrow-link:after{content:url(../img/icon-long-arrow.svg);width:28px;padding-left:7px;transition:all .2s ease-in-out;display:inline-block;text-decoration:none}.arrow-link:hover:after{padding-left:14px}.lang-ja{font-family:"Work Sans","Noto Sans JP",sans-serif}.lang-ja h1,.lang-ja h2,.lang-ja h3,.lang-ja h4,.lang-ja h5,.lang-ja .navbar .navbar-nav .nav-link,.lang-ja article .children-display li a,.lang-ja .right-sidebar .level-1 a,.lang-ja .right-sidebar .separator{font-family:"Work Sans","Noto Sans JP",sans-serif}.search .input-group-text{border-width:0;color:#fff;background-color:#232325;border-radius:4px 0 0 4px;padding:.5rem .5rem .5rem 1rem;line-height:1.5}.search .ds-input{background-color:#232325;border-radius:0 4px 4px 0;padding:.75rem 1rem .75rem .5rem;width:100%;border:1px solid #232325}.search .ds-input:focus{box-shadow:none;border-color:#9a52ff}.search .algolia-autocomplete{flex-grow:1}#algolia-autocomplete-listbox-0{z-index:1100 !important}.xrp-ledger-dev-portal .DocSearch-Modal{top:85px;background-color:#232325;box-shadow:none}html .DocSearch-Modal{box-shadow:none}html .DocSearch-Button{height:32px;border-radius:4px}html .DocSearch-Button:hover{border-radius:4px}html .DocSearch-Modal{max-width:55%}@media(min-width: 1200px){html .DocSearch-Modal{margin-right:112px}}@media(max-width: 991.98px){html .algolia-autocomplete .ds-dropdown-menu{min-width:unset}html .DocSearch-Modal{top:112px;max-width:100%;margin-left:0;margin-right:0}}html .DocSearch-Container{z-index:99999 !important;background-color:transparent !important}html #centersearchboxcontainer{justify-content:center}html #topsearchboxcontainer{justify-content:right}html .algolia-autocomplete .ds-dropdown-menu [class^=ds-dataset-]{background-color:#111112;border:0;border-radius:8px}html .algolia-autocomplete .algolia-docsearch-suggestion--category-header{border:0;font-weight:bold}html .algolia-autocomplete .algolia-docsearch-suggestion--text{font-size:.8rem}html .algolia-autocomplete .ds-dropdown-menu::before{border:0}.dark .DocSearch-Modal{background-color:#232325}.dark .DocSearch-Cancel{color:#9a52ff}.dark .DocSearch-Form{box-shadow:inset 0 0 0 2px #9a52ff;background-color:#232325}.dark .DocSearch-Hit-source{color:#9a52ff}.dark .DocSearch-Hits mark{color:#9a52ff}.dark .DocSearch-Hit-source,.dark .DocSearch-Hit-Container,.dark .DocSearch-Footer{background-color:#232325}.dark .DocSearch-Hit a{background-color:#232325;box-shadow:none}.dark .DocSearch-Hit-source{color:#a2a2a4}.dark .DocSearch-Input{color:#fff}.dark .DocSearch-Hit-title,.dark .DocSearch-Hit-path,.dark .DocSearch-Label,.dark .DocSearch-Help{color:#f5f5f7 !important}.dark .DocSearch-Hit[aria-selected=true] a{background:#343437}.dark .DocSearch-Hit[aria-selected=true] a .DocSearch-Hit-Container{background-color:#343437}.dark .DocSearch-Hit[aria-selected=true] a mark{color:#9a52ff !important}.dark .DocSearch-Prefill{color:#9a52ff}.dark .DocSearch-Button{background:#232325}.dark .DocSearch-Button:hover{background:#232325;box-shadow:inset 0 0 0 2px #9a52ff}.dark .DocSearch-Button:hover .DocSearch-Button-Placeholder{color:#fff}.dark .DocSearch-Search-Icon{color:#fff !important}.dark .DocSearch-Logo svg .cls-1,.dark .DocSearch-Logo svg .cls-2{fill:#fff}.dark .DocSearch-Commands-Key{color:#232325}.dark .algolia-autocomplete .algolia-docsearch-suggestion--category-header{color:#fff;border-bottom:2px solid #9a52ff}.dark .algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column{color:#fff}.dark .algolia-autocomplete .algolia-docsearch-suggestion--title{color:#fff}.dark .algolia-autocomplete .algolia-docsearch-suggestion--text{color:#e0e0e1}.dark .algolia-autocomplete .algolia-docsearch-suggestion--highlight{color:#fff;background-color:#343437}.dark .algolia-autocomplete .ds-dropdown-menu::before{background-color:#111112}.dark .algolia-autocomplete .algolia-docsearch-suggestion{background-color:#111112}.dark .algolia-autocomplete .algolia-docsearch-suggestion--category-header .algolia-docsearch-suggestion--category-header-lvl0 .algolia-docsearch-suggestion--highlight,.dark .algolia-autocomplete .algolia-docsearch-suggestion--category-header .algolia-docsearch-suggestion--category-header-lvl1 .algolia-docsearch-suggestion--highlight,.dark .algolia-autocomplete .algolia-docsearch-suggestion--text .algolia-docsearch-suggestion--highlight{box-shadow:none;background-color:#343437}body{position:relative}section{position:relative}.landing{padding:0}.square{position:relative;flex-basis:calc(50% - 30px);margin:15px;box-sizing:border-box;justify-content:center;align-items:center;border-radius:8px}.square::before{content:"";display:block;padding-top:100%}@media(min-width: 992px){.square{flex-basis:calc(25% - 30px)}}.square-50{flex-basis:calc(50% - 30px)}@media(max-width: 767.98px){.square-50{flex-basis:calc(50% - 20px)}}.nav-grid-lg{display:flex;flex-direction:column}.nav-grid-lg .nav-item{width:100%}.nav-grid-lg .nav-item .nav-link{display:flex}.nav-grid-lg .nav-item .nav-link span{flex-grow:0}.nav-grid-lg .nav-item .nav-link img{max-height:2rem}.nav-grid-lg .nav-grid-head{margin-top:2.5rem}@media(min-width: 992px){.nav-grid-lg{display:grid;grid-auto-flow:column;grid-column-gap:80px}.nav-grid-lg .nav-grid-head{margin-top:0}}.col-lg{padding-left:0;padding-right:0}@media(min-width: 992px){.cols-of-1{grid-template-rows:repeat(1, min-content)}}@media(min-width: 992px){.cols-of-2{grid-template-rows:repeat(2, min-content)}}@media(min-width: 992px){.cols-of-3{grid-template-rows:repeat(3, min-content)}}@media(min-width: 992px){.cols-of-4{grid-template-rows:repeat(4, min-content)}}@media(min-width: 992px){.cols-of-5{grid-template-rows:repeat(5, min-content)}}@media(min-width: 992px){.cols-of-6{grid-template-rows:repeat(6, min-content)}}.card-grid{display:grid;grid-gap:40px;padding:0;width:100%;grid-template-columns:1fr}@media(min-width: 992px){.card-grid{grid-gap:80px}}.card-grid .col{padding-left:0;padding-right:0;min-width:100%}.card-grid.card-grid-4xN{grid-auto-rows:auto;grid-template-columns:repeat(2, 1fr)}@media(min-width: 992px){.card-grid.card-grid-4xN{grid-template-columns:repeat(4, 1fr)}}.card-grid.card-grid-3xN{grid-auto-rows:auto}@media(min-width: 992px){.card-grid.card-grid-3xN{grid-template-columns:1fr 1fr 1fr}}.card-grid.card-grid-2xN{grid-template-columns:1fr 1fr;grid-auto-rows:auto}@media(max-width: 991.98px){.card-grid.card-grid-2xN{grid-template-columns:1fr}}.card-grid.card-grid-1x2{grid-template-columns:1fr 2fr;grid-auto-rows:auto}@media(max-width: 991.98px){.card-grid.card-grid-1x2{display:flex}}.card-grid .card{padding:20px;border:0;min-height:264px}@media(min-width: 768px){.card-grid .card{min-height:347px}}@media(min-width: 992px){.card-grid .card{padding:40px}}.card-grid .card .card-body{padding:8px;padding-bottom:24px}.card-grid .card .card-body .card-icon-container{width:50px;height:50px}.card-grid .card .card-body .card-icon-container img{width:70%;height:70%}.card-grid.section-hero{padding-left:0}.container-new{display:flex;flex-wrap:wrap;margin:0 auto;padding:0 32px;max-width:100%;z-index:1}@media(min-width: 768px){.container-new{max-width:608px}}@media(min-width: 992px){.container-new{max-width:942px}}@media(min-width: 1200px){.container-new{max-width:1280px}}@media(max-width: 991.98px){article{overflow-wrap:break-word;word-wrap:break-word;overflow:hidden}}@media(max-width: 480px){html{overflow-x:hidden !important}}@media(max-width: 400px){.navbar .navbar-brand .brand-text{margin-right:0;letter-spacing:-0.08rem}.navbar .navbar-brand{margin-right:0}.navbar .navbar-brand .logo{margin-right:0;margin-left:-1rem}.btn{white-space:normal}}.timeline-wrapper{z-index:999;position:relative}.timeline:before{content:"";position:absolute;top:-40px;left:18px;height:95%;width:4px;background:linear-gradient(180deg, #feff01 0%, #ff2d9a 33%, #a3088f 66%, rgba(44, 4, 128, 0.85) 100%)}@media(max-width: 991.98px){.timeline:before{left:8px}}.timeline-dot{margin-top:94px;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;-ms-flex-negative:0;flex-shrink:0;width:18px;height:18px;border-radius:50%;background:#111112;box-sizing:border-box}.timeline-block:first-child .timeline-dot{border:3px solid #faff19}.timeline-block:nth-child(2) .timeline-dot{border:3px solid #ff884b}.timeline-block:nth-child(3) .timeline-dot{border:3px solid #c000e5}.timeline-block:nth-child(4) .timeline-dot{border:3px solid #40004c}.timeline-block{display:flex;position:relative;z-index:1}.timeline-content{flex-grow:1;position:relative;margin-left:1.25em}.timeline h4{margin-top:-4px}@media(min-width: 768px){.timeline:before{left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.timeline-dot{-ms-flex-order:1;order:1;margin-left:calc(5% - 9px);will-change:transform}.timeline-block:nth-child(even){-ms-flex-direction:row-reverse;flex-direction:row-reverse}.timeline-dot{margin-right:calc(5% - 9px)}.timeline-content{width:45%;-ms-flex-positive:0;flex-grow:0;will-change:transform;margin:0;--line-height-multiplier: 1.2}}@media(min-width: 992px){[data-component-name="TableOfContent/TableOfContent"]{margin-right:32px}}aside li a{color:#fff;text-decoration:none;font-size:1.05rem}aside .sidenav_cat_title{color:#fff}aside a:hover,aside .sidenav_cat_title:hover{color:#9a52ff}aside a.active,aside a.active:hover,aside .active>a,aside .active>a:hover{color:#9a52ff;font-weight:700}aside a.active-parent,aside .active-parent>a{font-weight:700}.page-toc .level-1 a,.command-list .separator{font-weight:700;color:#fff}.nav-toggler{position:absolute;width:1.75em;height:1.75em;line-height:0;display:grid;justify-content:center;align-content:center}.nav-toggler::after{display:inline-block;margin-left:.34em;vertical-align:.34em;content:"";border-top:.4em solid;border-right:.4em solid transparent;border-bottom:0;border-left:.4em solid transparent}.nav-toggler:empty::after{margin-left:0}.nav-toggler::after{transition-duration:.3s}.nav-toggler.collapsed::after{transform:rotate(-90deg)}.dactyl-tree-nav nav{margin-left:1rem;padding-left:0;border-left:1px solid #fff}.dactyl-tree-nav nav .nav-link:hover,.dactyl-tree-nav nav .nav-link:active{border-left:1px solid #9a52ff;margin-left:-1px}.dactyl-tree-nav nav .active>.nav-link{border-left:2px solid #9a52ff;margin-left:-1px;padding-left:calc(1rem - 1px)}.dactyl-tree-nav .nav-item{position:relative}.dactyl-tree-nav .nav-item .nav-link{padding:.25rem 1rem;font-size:.9rem}.dactyl-tree-nav .nav-item.nav-parent{padding-top:0}.dactyl-tree-nav .nav-item.nav-parent .nav-link{padding-left:0;padding-top:0;font-size:1.125rem;line-height:initial}.dactyl-tree-nav .nav-item .nav-toggler+.nav-link{padding-left:2rem}.dactyl-tree-nav>.nav-item{padding:.5rem 0;font-size:1.125rem}.dactyl-tree-nav>.nav-item>.nav-link{font-weight:bold}.dactyl-tree-nav .collapsing.nav{flex-wrap:unset}.toc-header{font-weight:bold;font-size:14px;padding:1rem 0}.toc-header h4{line-height:20px;font-size:1.2em;padding:0;margin:0}#page-toc-wrapper .card-body{list-style-type:none}.page-toc,.command-list{padding-left:0;border-left:1px solid #fff}.page-toc li,.command-list li{list-style-type:none;padding:0}.page-toc li.separator,.command-list li.separator{padding:.25rem 1rem}.page-toc li a,.command-list li a{display:block;margin-top:5px;padding:.25rem 1rem;font-size:.9rem}.page-toc li a:hover,.page-toc li a .active,.command-list li a:hover,.command-list li a .active{text-decoration:none;border-left:1px solid #9a52ff;margin-left:-1px}.page-toc li.active a,.page-toc li.active a:hover,.command-list li.active a,.command-list li.active a:hover{border-left:2px solid #9a52ff;padding-left:calc(1rem - 1px);margin-left:-1px}.page-toc .level-3,.command-list .level-3{margin-left:16px;border-left:1px solid #fff;margin-bottom:0;padding-bottom:5px}.page-toc .level-3 a,.command-list .level-3 a{margin-top:0;padding-bottom:5px}.page-toc.no-sideline,.command-list.no-sideline{border-left:0}.page-toc.no-sideline a:hover,.page-toc.no-sideline a.active,.command-list.no-sideline a:hover,.command-list.no-sideline a.active{border-left:0;margin-left:0}.command-list li a{margin-top:0}.h32{height:32px}.w32{width:32px}.h36{height:36px}.w36{width:36px}.h40{height:40px}.w40{width:40px}.w44{width:44px}.w48{width:48px}.w-100{width:100%}.min-vh100{min-height:100vh}.vw100{width:100vw;min-width:100%}@media(max-width: 767.98px){.mb-3-sm-i{margin-bottom:1rem !important}}.ml-5{margin-left:1.25rem}@media(min-width: 768px){.ml-5-until-md{margin-left:1.25rem}}.mr-5{margin-right:1.25rem}@media(min-width: 768px){.mr-5-until-md{margin-right:1.25rem}}.mb-6{margin-bottom:1.5rem}@media(max-width: 767.98px){.mb-6-sm{margin-bottom:1.5rem}}.mt-6{margin-top:1.5rem}@media(min-width: 576px){.mt-6-until-sm{margin-top:1.5rem !important}}.mb-8{margin-bottom:2rem}@media(max-width: 767.98px){.mb-8-sm{margin-bottom:2rem}}.mt-8{margin-top:2rem}@media(min-width: 576px){.mt-8-until-sm{margin-top:2rem !important}}.mt-9{margin-top:2.25rem}.mb-9{margin-bottom:2.25rem}.mt-10{margin-top:2.5rem}@media(max-width: 767.98px){.mt-10-sm{margin-top:2.5rem}}.mb-10{margin-bottom:2.5rem}@media(min-width: 576px){.mb-10-until-sm{margin-bottom:2.5rem}}@media(max-width: 767.98px){.mb-10-sm{margin-bottom:2.5rem}}.ml-10{margin-left:2.5rem}.mr-10{margin-right:2.5rem}.my-10{margin-top:2.5rem;margin-bottom:2.5rem}.mx-10{margin-left:2.5rem;margin-right:2.5rem}@media(min-width: 576px){.mx-10-until-sm{margin-left:2.5rem;margin-right:2.5rem}}@media(min-width: 768px){.mx-10-until-md{margin-left:2.5rem;margin-right:2.5rem}}@media(max-width: 767.98px){.mx-10-sm{margin-left:2.5rem;margin-right:2.5rem}}.mt-1{margin-top:1rem}.mt-12{margin-top:3rem}.mb-12{margin-bottom:3rem}.my-12{margin-top:3rem;margin-bottom:3rem}.mt-13{margin-top:3.25rem}.mb-13{margin-bottom:3.25rem}.mt-14{margin-top:3.5rem}.mt-16{margin-top:4rem}@media(max-width: 767.98px){.mt-16-sm{margin-top:4rem}}.mb-16{margin-bottom:4rem}@media(max-width: 767.98px){.mb-16-sm{margin-bottom:4rem}}.mb-18{margin-bottom:4.5rem}.mt-20{margin-top:5rem}@media(max-width: 767.98px){.mt-20-sm{margin-top:5rem}}@media(min-width: 576px){.mt-20-until-sm{margin-top:5rem}}.mb-20{margin-bottom:5rem}@media(max-width: 767.98px){.mb-20-sm{margin-bottom:5rem}}@media(min-width: 576px){.mb-20-until-sm{margin-bottom:5rem}}.my-20{margin-top:5rem;margin-bottom:5rem}.my-26{margin-top:6.5rem;margin-bottom:6.5rem}.mb-30{margin-bottom:7.5rem}.mt-30{margin-top:7.5rem}@media(min-width: 576px){.mt-30-until-sm{margin-top:7.5rem}}.mt-40{margin-top:10rem}@media(min-width: 576px){.mt-40-until-sm{margin-top:10rem}}.mb-40{margin-bottom:10rem}@media(min-width: 576px){.mb-40-until-sm{margin-bottom:10rem}}.mb-49{margin-bottom:12.25rem}.mb-50{margin-bottom:12.5rem}@media(min-width: 576px){.mb-50-until-sm{margin-bottom:12.5rem}}@media(max-width: 767.98px){.pl-0-sm{padding-left:0 !important}}@media(max-width: 767.98px){.pr-0-sm{padding-right:0 !important}}@media(max-width: 767.98px){.pt-3-sm{padding-top:1rem !important}}.p-6{padding:1.5rem}@media(max-width: 767.98px){.p-6-sm{padding:1.5rem}}.p-8{padding:2rem}@media(max-width: 767.98px){.p-8-sm{padding:2rem}}.p-10{padding:2.5rem}@media(min-width: 576px){.p-10-until-sm{padding:2.5rem}}.py-20{padding-bottom:5rem;padding-top:5rem}.px-20{padding-left:5rem;padding-right:5rem}.pt-20{padding-top:5rem}.pb-20{padding-bottom:5rem}.py-26{padding-top:6.5rem;padding-bottom:6.5rem}@media(max-width: 767.98px){.py-26{padding-top:2.5rem;padding-bottom:2.5rem}}.pt-26{padding-top:2.5rem}@media(min-width: 576px){.pt-26-until-sm{padding-top:6.5rem}}.pb-26{padding-bottom:6.5rem}@media(min-width: 576px){.pb-26-until-sm{padding-bottom:6.5rem}}.pt-30{padding-top:7.5rem}.pb-30{padding-bottom:7.5rem}.pt-40{padding-top:10rem}@media(min-width: 576px){.pt-40-until-sm{padding-top:10rem}}.pb-40{padding-bottom:10rem}.pb-50{padding-bottom:12.5rem}.pt-50{padding-top:12.5rem}.py-50{padding-bottom:12.5rem;padding-top:12.5rem}@media(min-width: 576px){.py-50-until-sm{padding-bottom:12.5rem;padding-top:12.5rem}}.floating-nav{top:6rem}.last-section{margin-bottom:100px}.bottom-0{bottom:0}.justify-center{justify-content:center}@media(max-width: 767.98px){.justify-center-sm{justify-content:center}}@media(max-width: 575.98px){.overflow-xs{overflow:scroll}.overflow-x-xs{overflow-x:scroll;overflow-y:hidden}}@media(min-width: 768px){.position-sm-absolute{position:absolute}}.va-middle{vertical-align:middle}.ls-none{list-style:none}.no-wrap{white-space:nowrap}.align-items-stretch{align-items:stretch}.underline{text-decoration:underline}@media(max-width: 575.98px){.d-none-xs{display:none}}@media(max-width: 767.98px){.d-none-sm{display:none}}@media(min-width: 992px){.d-none-lg{display:none}}.d-block{display:block}.border-green{border:1px solid #9a52ff}.border-none{border:none !important}.grey-400{color:#a2a2a4}.grey-500{color:#838386}.grey-700{color:#343437}.white{color:#fff}.stat-highlight{color:#32e685}.br-8{border-radius:8px}@media(max-width: 767.98px){br.until-sm{content:""}}.z-index-1{z-index:1}.bb-gray{border-bottom:1px solid #454549}@keyframes arrowDance{0%{padding-left:7px}50%{padding-left:14px}100%{padding-left:7px}}@keyframes arrowDance2{0%{right:0}50%{right:7px}100%{right:0}}@keyframes arrowDanceDiag{0%{right:7px;margin-top:0}50%{right:0;margin-top:-7px}100%{right:7px;margin-top:0}}.btn,article a.button,article .btn{font-weight:bold;cursor:pointer;text-decoration:none;transition:.2s;padding:.5rem 1rem;line-height:16px}article a.button{padding:.5rem 1rem;margin:0 .5rem;display:inline-block}.btn.disabled,button.disabled,.btn[disabled=disabled],button[disabled=disabled]{cursor:not-allowed}.btn-primary code,.btn-secondary code{color:inherit}.btn-primary{background:#7919ff;font-weight:bold;color:#fff;border:none;border-color:transparent}.btn-primary:hover{background:#5f00e5}.btn-primary.disabled,.btn-primary[disabled=disabled]{background:#4a00b2}.btn-primary.disabled:hover,.btn-primary[disabled=disabled]:hover{background:#4a00b2}@media(max-width: 767.98px){.btn-arrow{display:block;width:100%}}.btn-arrow::after{display:inline-block;content:url(../img/icons/arrow-right.svg);position:relative;top:1px;vertical-align:middle;padding-left:8px;-webkit-transition:transform .3s ease-out;-moz-transition:transform .3s ease-out;-ms-transition:transform .3s ease-out;-o-transition:transform .3s ease-out;transition:transform .3s ease-out}.btn-arrow:hover{background:#5f00e5 !important;border:none}.btn-arrow:hover::after{-webkit-transform:translateX(4px);-moz-transform:translateX(4px);-ms-transform:translateX(4px);-o-transform:translateX(4px);transform:translateX(4px)}.btn-arrow-out::after{background-position:left 0px bottom 0px;content:" ";background-image:url(../img/icons/arrow-up-right-white.svg);background-repeat:no-repeat;display:inline-block;padding:4px 8px 4px 12px;transition:background-position .3s ease-in-out;margin-left:4px}.btn-arrow-out:hover::after{background-position:left 4px bottom 4px}@media(max-width: 767.98px){.btn-arrow-out{display:block;width:100%}}.jump-to-top{display:none;position:fixed;bottom:36px;right:36px;font-weight:700;z-index:1000}.jump-to-top::after{display:none}.accordian-row{background:#232325;border-radius:5px;padding:32px}.accordian-row h3 a{position:relative;padding-right:2rem}.accordian-row h3 a:hover{color:#fff}.accordian-row .chevron{position:absolute;top:0;right:0}article table{clear:right;margin-bottom:48px}article table code{word-break:normal;white-space:nowrap;overflow-wrap:normal}article table th{border-bottom:2px solid #e0e0e1}article table tr{border-bottom:1px solid #e0e0e1}article table th,article table td{padding:.2em;vertical-align:text-top}article table td:nth-child(1){font-weight:bold}.landing-table th,.landing-table tr{border-bottom:2px solid #454549}.landing-table td{width:33.33%;padding:16px 40px 16px 0}.landing-table td:nth-child(1){font-weight:normal}@media(max-width: 767.98px){.landing-table td{font-size:.875rem}}.landing-table tr:last-child{border-bottom:none}.landing-table tbody td{color:#e0e0e1}.dblue{color:#454549}#overview-table td:nth-child(1){width:40%}#overview-table td:nth-child(2){width:30%}#overview-table tbody td{padding:2rem .75rem}@media(max-width: 991.98px){#overview-table{font-size:.875rem}#overview-table thead .h4{font-size:1.125rem}}article table{clear:right;margin-bottom:48px}article table code{word-break:normal;white-space:nowrap;overflow-wrap:normal}article table th{border-bottom:2px solid #e0e0e1}article table tr{border-bottom:1px solid #e0e0e1}article table th,article table td{padding:.2em;vertical-align:text-top}article table td:nth-child(1){font-weight:bold}.landing-table th,.landing-table tr{border-bottom:2px solid #454549}.landing-table td{width:33.33%;padding:16px 40px 16px 0}.landing-table td:nth-child(1){font-weight:normal}@media(max-width: 767.98px){.landing-table td{font-size:.875rem}}.landing-table tr:last-child{border-bottom:none}.landing-table tbody td{color:#e0e0e1}.dblue{color:#454549}#overview-table td:nth-child(1){width:40%}#overview-table td:nth-child(2){width:30%}#overview-table tbody td{padding:2rem .75rem}@media(max-width: 991.98px){#overview-table{font-size:.875rem}#overview-table thead .h4{font-size:1.125rem}}.modal-uses.exchanges .logo-item{max-height:58px;margin:5px;width:145px;height:28px;max-width:none}.modal-content-uses .carbonland-trust{max-width:218px}.modal-content-uses .first-ledger-bot{min-height:100px !important;position:relative;bottom:20px;content:url("../img/uses/first-ledger-bot.svg")}.modal-content-uses .orchestra-finance{min-height:56px !important;content:url("../img/uses/orchestra-finance.svg")}.modal-content-uses .moai-finance{min-height:100px !important;position:relative;bottom:20px;content:url("../img/uses/moai-finance.svg")}.modal-content-uses .ledger-city{margin:0px !important;position:relative;bottom:4px;left:6px;max-height:47px !important}.modal-content-uses .zerpmon{margin:0px;min-width:80px;min-height:84px;position:relative;bottom:13px;content:url("../img/uses/zerpmon.png") !important}#use_case_companies_list #threezy .biz-logo{max-height:40px;content:url("../img/uses/modallogos/threezy.png")}html.light .cryptum{content:url(../img/uses/lightmode/cryptum.jpg) !important;height:58px;max-width:max-content;width:184px;max-height:none;margin:0px;padding-bottom:10px}.xrp-ledger{content:url(../img/uses/modallogos/xrp-ledger.png)}html.light .xrp-ledger{content:url(../img/uses/lightmode/xrp-ledger.png)}.gatehub{content:url(../img/uses/modallogos/gatehub.png)}html.light .gatehub{content:url(../img/uses/lightmode/gatehub.png)}.towolabs{content:url(../img/uses/modallogos/towolabs.png)}html.light .towolabs{content:url(../img/uses/lightmode/towolabs.png)}.xrpscan{content:url(../img/uses/modallogos/xrpscan.png)}html.light .xrpscan{content:url(../img/uses/lightmode/xrpscan.png)}.xrp-toolkit{content:url(../img/uses/modallogos/xrp-toolkit.png)}html.light .xrp-toolkit{content:url(../img/uses/lightmode/xrp-toolkit.png)}.bithomp{content:url(../img/uses/modallogos/bithomp.png)}html.light .bithomp{content:url(../img/uses/lightmode/bithomp.png)}.onthedex{content:url(../img/uses/modallogos/onthedex.png)}html.light .onthedex{content:url(../img/uses/lightmode/onthedex.png)}.cryptum{content:url(../img/uses/modallogos/cryptum.png)}html.light .cryptum{content:url(../img/uses/lightmode/cryptum.png)}.evernode{content:url(../img/uses/modallogos/evernode.png)}html.light .evernode{content:url(../img/uses/lightmode/evernode.png)}.threezy{content:url(../img/uses/modallogos/threezy.png)}html.light .threezy{content:url(../img/uses/lightmode/threezy.png)}.tokenize{content:url(../img/uses/modallogos/tokenize.png)}html.light .tokenize{content:url(../img/uses/lightmode/tokenize.png)}.multichain{content:url(../img/uses/modallogos/multichain.png)}html.light .multichain{content:url(../img/uses/lightmode/multichain.png)}.crossmark{content:url(../img/uses/modallogos/crossmark.png)}html.light .crossmark{content:url(../img/uses/lightmode/crossmark.png)}.edge{content:url(../img/uses/modallogos/edge.png)}html.light .edge{content:url(../img/uses/lightmode/edge.png)}.gem-wallet{content:url(../img/uses/modallogos/gem-wallet.png)}html.light .gem-wallet{content:url(../img/uses/lightmode/gem-wallet.png)}.xumm{content:url(../img/uses/modallogos/xumm.png)}html.light .xumm{content:url(../img/uses/lightmode/xumm.png)}.joey-wallet{content:url(../img/uses/modallogos/joey-wallet.png)}html.light .joey-wallet{content:url(../img/uses/lightmode/joey-wallet.png)}.aesthetes{content:url(../img/uses/modallogos/aesthetes.png)}html.light .aesthetes{content:url(../img/uses/lightmode/aesthetes.png)}.audiotarky{content:url(../img/uses/modallogos/audiotarky.png)}html.light .audiotarky{content:url(../img/uses/lightmode/audiotarky.png)}.nftmaster{content:url(../img/uses/modallogos/nftmaster.png)}html.light .nftmaster{content:url(../img/uses/lightmode/nftmaster.png)}.peerkat{content:url(../img/uses/modallogos/peerkat.png)}html.light .peerkat{content:url(../img/uses/lightmode/peerkat.png)}.sologenic_dex{content:url(../img/uses/modallogos/sologenic_dex.png)}html.light .sologenic_dex{content:url(../img/uses/lightmode/sologenic_dex.png)}.xrp-cafe{content:url(../img/uses/modallogos/xrp-cafe.png)}html.light .xrp-cafe{content:url(../img/uses/lightmode/xrp-cafe.png)}.xrp-oval{content:url(../img/uses/modallogos/xrp-oval.png)}html.light .xrp-oval{content:url(../img/uses/lightmode/xrp-oval.png)}.sologenic_dex{content:url(../img/uses/modallogos/sologenic_dex.png)}html.light .sologenic_dex{content:url(../img/uses/lightmode/sologenic_dex.png)}.xpmarket{content:url(../img/uses/modallogos/xpmarket.png)}html.light .xpmarket{content:url(../img/uses/lightmode/xpmarket.png)}.orchestra-finance{content:url(../img/uses/modallogos/orchestra-finance.png)}html.light .orchestra-finance{content:url(../img/uses/lightmode/orchestra-finance.png)}.moai-finance{content:url(../img/uses/modallogos/moai-finance.png)}html.light .moai-finance{content:url(../img/uses/lightmode/moai-finance.png)}.first-ledger-bot{content:url(../img/uses/modallogos/first-ledger-bot.png)}html.light .first-ledger-bot{content:url(../img/uses/lightmode/first-ledger-bot.png)}.forte{content:url(../img/uses/modallogos/forte.png)}html.light .forte{content:url(../img/uses/lightmode/forte.png)}.ledger-city{content:url(../img/uses/modallogos/ledger-city.png)}html.light .ledger-city{content:url(../img/uses/lightmode/ledger-city.png)}.futureverse{content:url(../img/uses/modallogos/futureverse.png)}html.light .futureverse{content:url(../img/uses/lightmode/futureverse.png)}.zerpmon{content:url(../img/uses/modallogos/zerpmon.png)}html.light .zerpmon{content:url(../img/uses/lightmode/zerpmon.png)}.anchain{content:url(../img/uses/modallogos/anchain.png)}html.light .anchain{content:url(../img/uses/lightmode/anchain.png)}.ripple{content:url(../img/uses/modallogos/ripple.png)}html.light .ripple{content:url(../img/uses/lightmode/ripple.png)}.supermojo{content:url(../img/uses/modallogos/supermojo.png)}html.light .supermojo{content:url(../img/uses/lightmode/supermojo.png)}.ripple{content:url(../img/uses/modallogos/ripple.png)}html.light .ripple{content:url(../img/uses/lightmode/ripple.png)}.carbonland-trust{content:url(../img/uses/modallogos/carbonland-trust.png)}html.light .carbonland-trust{content:url(../img/uses/lightmode/carbonland-trust.png)}.gatehub{content:url(../img/uses/modallogos/gatehub.png)}html.light .gatehub{content:url(../img/uses/lightmode/gatehub.png)}.bitgo{content:url(../img/uses/modallogos/bitgo.png)}html.light .bitgo{content:url(../img/uses/lightmode/bitgo.png)}.arrow-button.left-arrow img{content:url(../img/uses/left-arrow.svg)}.arrow-button.right-arrow img{content:url(../img/uses/right-arrow.svg)}.right-arrow-button.right-arrow img{background-color:transparent;border:none;cursor:pointer}.html.light .arrow-button.left-arrow img{content:url(../img/uses/left-arrow-light.svg)}.html.light .arrow-button.right-arrow img{content:url(../img/uses/right-arrow-light.svg)}.related-tasks-links a{color:#454549;text-decoration:none}.related-tasks-links a:hover{color:#000}.arrows-container{position:absolute;top:50%;left:0;right:0;transform:translateY(-50%);display:flex;justify-content:space-between;z-index:10}@media only screen and (max-width: 768px){.arrows-container{top:30px}}.arrow-button{background-color:transparent;border:none;cursor:pointer}.arrow-button img{width:40px;height:40px}.left-arrow{margin-left:40px}@media only screen and (max-width: 768px){.left-arrow{margin-left:0px}}.right-arrow{margin-right:40px}@media only screen and (max-width: 768px){.right-arrow{margin-right:0px}}.modal-uses{display:none;position:fixed;z-index:1000;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:rgba(0,0,0,.4)}.modal-content-uses{padding-top:40px;position:relative;background-color:#232325;position:absolute;left:50%;top:50%;transform:translate(-50%, -50%);padding:40px 20px 20px 20px;width:60% !important;height:520px;display:flex;flex-direction:column;align-items:center;overflow-y:hidden}@media only screen and (max-width: 1024px){.modal-content-uses{overflow-y:auto}}.modal-content-uses::before{content:"";position:absolute;top:0;left:0;width:100%;height:1px;background:linear-gradient(90deg, #b480ff -0.32%, #5f00e6 32.7%, #1aa4ff 61.53%, #19ff83 100.32%, #19ff83 100.32%)}.content-section{width:100%;display:flex;justify-content:center;align-items:center;margin-bottom:20px}.section-image{display:block}.section-text-title{font-family:"Work Sans";font-style:normal;font-weight:500;font-size:24px;line-height:32px;text-align:center;color:#fff}.section-text-description{max-width:320px;font-family:"Work Sans";font-style:normal;font-weight:400;font-size:16px;line-height:24px;text-align:center;color:#c1c1c2}.apps-built{position:relative;top:17px;left:50px;font-family:"Work Sans";font-style:normal;font-weight:600;font-size:12px;line-height:16px;color:#e0e0e1}.numbers-animation{width:218px;height:96px}.arrow-animation{position:relative;right:23px;top:-11px;width:60px !important}.explore-projects{font-family:"Work Sans";font-style:normal;font-weight:600;font-size:12px;line-height:16px;color:#7919ff;position:relative;top:-9px;right:27px}.section-separator{width:50%;border:0;border-top:1px solid #ccc}.logo-item.anchain{height:34px !important;max-width:146px !important}.threezy-logo{margin:4px;max-height:55px !important}.blockforce-logo{margin:0px !important;max-height:45px !important}.Evernode-logo{margin-right:39px}.logo-grid{display:grid;grid-template-rows:repeat(2, 1fr);grid-template-columns:repeat(4, 1fr);grid-gap:8px;justify-items:center}.flex-center{display:flex;justify-content:center}.top-row,.bottom-row{display:flex;justify-content:center;align-items:center;gap:20px;flex-wrap:wrap}@media only screen and (max-width: 768px){.top-row,.bottom-row{justify-content:space-around;gap:10px;margin-bottom:0}}.top-row{margin-bottom:10px}.bottom-row{margin-top:10px}.logo-item{max-height:45px;max-width:108px;margin:5px}.close{color:#aaa;float:right;font-size:28px;font-weight:bold;cursor:pointer}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer}#use-case-card-grid{grid-template-columns:repeat(2, 1fr)}@media(min-width: 768px){#use-case-card-grid{grid-template-columns:repeat(3, 1fr)}}@media(min-width: 992px){#use-case-card-grid{grid-template-columns:repeat(4, 1fr)}}@media(max-width: 1220px)and (min-width: 1024px){#use-case-card-grid{grid-template-columns:repeat(3, 1fr)}}.use-case-circle{display:flex;align-items:center;justify-content:center;aspect-ratio:1/1;border:1px solid #343437;border-radius:50%;margin-bottom:30px;cursor:pointer}@media(min-width: 768px){.use-case-circle{aspect-ratio:1/1;min-width:200px !important;min-height:200px !important}}@media(min-width: 992px){.use-case-circle{aspect-ratio:1/1;min-width:250px !important;min-height:250px !important}}.use-case-circle:hover{border-color:#838386}.circle-content{display:flex;flex-direction:column;align-items:center;gap:13px}.circle-img{width:40px;height:40px}.circle-text{font-family:"Work Sans";font-style:normal;font-weight:700;white-space:nowrap;font-size:16px;margin-bottom:0px}.join-xrpl-section{display:flex;flex-direction:column;align-items:center}.colorful-join-text-wrapper{display:flex;justify-content:center;flex-direction:column;padding:0 5%;box-sizing:border-box}@media(min-width: 992px){.colorful-join-text-wrapper{padding:0 4%}}.colorful-join-text{display:block;width:100%;text-align:left;font-family:"Work Sans";font-style:normal;font-weight:400;font-size:32px;line-height:38px;background:linear-gradient(90deg, #feff01 0%, #ff2d9a 30.82%, #e24cff 64.01%, #9a52ff 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}#numbersAnimation{display:block}#numbersAnimationLight{display:none}html.light .section-separator{background:#c1c1c2}html.light .section-text-description{color:#343437}html.light .modal-content-uses{background:#fff}html.light #numbersAnimation{display:none}html.light #numbersAnimationLight{display:block}html.light .apps-built{position:relative;top:17px;left:50px;font-family:"Work Sans";font-style:normal;font-weight:600;font-size:12px;line-height:16px;color:#232325}html.light .colorful-join-text{display:block;width:100%;text-align:left;font-family:"Work Sans";font-style:normal;font-weight:400;font-size:32px;line-height:38px;background:linear-gradient(90deg, #b480ff -0.32%, #5f00e6 32.7%, #1aa4ff 61.53%, #19ff83 100.32%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}@media(min-width: 992px){html.light .colorful-join-text{width:750px}}@media(min-width: 992px){.colorful-join-text{width:750px}}.pill-box{display:inline-flex;align-items:center;justify-content:center;padding:3.69087px 29.527px;width:73.05px;height:37.38px;background:#7919ff;border:3.69087px solid #5f00e5;border-radius:184.543px}.pill-number{font-family:"Work Sans";font-style:normal;font-weight:600;font-size:22.1452px;color:#f0e5ff}.use-case-steps h2{margin-top:10px;margin-bottom:10px;font-size:1.728em;line-height:32px;font-weight:700}.use-case-steps h2 a{text-decoration:none}.use-case-steps h2:first-of-type:before{display:none}.use-case h1{font-size:2.4em;padding-bottom:10px}.use-case-steps h2:before{margin-top:-30px;height:0}.use-case-steps h2:first-of-type{margin-top:-30px}.related-tasks-links ul{list-style-type:none;padding-left:0}.related-tasks-links ul li{margin:0px;padding-top:2px}.related-tasks-links a:hover::after{padding-left:.5em}.related-tasks-links a::after{content:" ➝";padding-left:0;transition:all .2s ease-in-out}.page-tokenization .tokenization-graphic{content:url("../img/backgrounds/tokenization-illustration.svg");width:100%;height:100%}.page-tokenization .show-md{display:none}@media(max-width: 991.98px){.page-tokenization .show-md{display:block}}.page-tokenization .hide-md{display:block}@media(max-width: 991.98px){.page-tokenization .hide-md{display:none}}.page-tokenization .tokenization-use-case{font-size:12px;display:flex;flex-direction:row;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:10px;border-bottom:1px solid #454549}.page-tokenization .tokenization-use-case .arrow-button img{width:15px;height:15px}.page-tokenization .tokenization-stats{width:100%;height:250px;border-radius:8px;background:linear-gradient(88deg, #9A52FF -14.32%, #32E685 45.35%, #19A3FF 100.76%);padding:4rem 2rem;display:grid;grid-template-columns:repeat(4, 1fr)}@media(max-width: 991.98px){.page-tokenization .tokenization-stats{display:block;height:100%;width:100%;padding:0 25%}}.page-tokenization .stat-container{color:#000;text-align:center;border-right:2px solid #000}@media(max-width: 991.98px){.page-tokenization .stat-container{border-right:none;padding-bottom:3rem;padding-top:2rem;border-bottom:2px solid #000}}.page-tokenization .stat-container:last-child{border:none}.page-tokenization .stat-container .stat{font-size:3rem;font-weight:300}.page-tokenization .stat-container p{font-weight:400}.page-tokenization .video-external-link .link-text{margin-left:.25rem}.page-tokenization .video-external-link{margin-bottom:9px}.page-tokenization .tokenization-color-bar{align-self:stretch;height:.25rem;border-radius:2rem;background:var(--Gradient-3, linear-gradient(90deg, #FEFF01 0%, #FF2D9A 30.82%, #E24CFF 64.01%, #9A52FF 100%))}.page-tokenization .project-cards-container{gap:3rem}.page-tokenization .project-cards{width:100%}.page-tokenization .project-cards .project-name{word-break:break-word}.page-tokenization .project-cards .card{min-height:240px}.page-tokenization .project-cards .col::before{content:"";position:absolute;top:0;left:0;width:100%;height:.25rem;border-top-left-radius:.5rem;border-top-right-radius:.5rem}.page-tokenization .project-cards .col.odd::before{background:linear-gradient(90deg, #D91AFF 26.41%, #1AA4FF 100.32%)}.page-tokenization .project-cards .col.even::before{background:linear-gradient(90deg, #4BB7FF -0.32%, #32E685 30.61%)}.page-tokenization .project-cards .project-logo{width:100%;height:50px;vertical-align:center;padding:0 .5rem}.page-tokenization .project-cards img{max-width:100%;height:auto;display:block;box-sizing:border-box}.page-tokenization .amy{content:url("../img/logos/amy.svg")}.page-tokenization .carbonland{content:url("../img/logos/carbonland.svg")}.page-tokenization .evernode{content:url("../img/logos/evernode.svg")}.page-tokenization .nautilus{content:url("../img/logos/nautilus.svg")}.page-tokenization .onXRP{content:url("../img/logos/onXRP.svg")}.page-tokenization .raised-in-space{content:url("../img/logos/raised-in-space.svg")}.page-tokenization .sologenic{content:url("../img/logos/sologenic.svg")}.page-tokenization .xaman{content:url("../img/logos/xaman-labs.svg")}.page-tokenization .xrpcafe{content:url("../img/logos/xrpcafe.svg")}.page-tokenization .prev img{content:url("../img/icons/prev.svg")}.page-tokenization .next img{content:url("../img/icons/prev.svg");transform:scaleX(-1)}.page-tokenization .arrow-wrapper{gap:1rem}.page-tokenization .arrow-button{background-color:#232325;border-radius:.25rem;align-items:center;justify-content:center}.page-tokenization .next.hover-color:hover img{content:url("../img/icons/next-purple.svg");transform:scaleX(1)}.page-tokenization .prev.hover-color:hover img{content:url("../img/icons/next-purple.svg");transform:scaleX(-1)}.page-tokenization .related-articles{gap:2.5rem}.page-tokenization .related-articles .col{background-color:#000;padding:2rem !important;border-radius:.5rem}.page-tokenization .related-articles .time{position:relative;padding-top:.5rem}.page-tokenization .related-articles .time::before{content:"";position:absolute;top:0;left:0;width:50px;height:4px;background-color:#32e685}.page-tokenization .project-cards a,.page-tokenization .related-articles a{text-decoration:none}.page-tokenization .project-cards a:hover .project-name{color:#9a52ff}.page-tokenization .related-articles a:hover .h5{color:#9a52ff}.page-tokenization .article-card-container{position:relative;width:100%}.page-tokenization .article-card-container:nth-child(1) .article-card-background{background-image:linear-gradient(86deg, #B20058 -21.16%, #E24CFF 31.78%, #9A52FF 101.64%)}.page-tokenization .article-card-container:nth-child(2) .article-card-background{background-image:linear-gradient(22deg, #B480FF -6.54%, #5F00E5 50.87%, #1AA4FF 114.16%)}.page-tokenization .article-card-container:nth-child(3) .article-card-background{background-image:linear-gradient(162deg, #B480FF -11.11%, #1AA4FF 56.26%, #2DCF78 112.84%)}.page-tokenization .article-card-background{height:calc(100% + 1.5rem);width:100%;z-index:1;background-size:cover;position:absolute;top:-0.75rem;border-radius:.5rem}.page-tokenization .article-card{width:100%;height:100%;position:relative;top:0;left:.75rem;z-index:2;display:block}body,.landing.page-uses{overflow-x:hidden}.use-case-payments{padding:0px 120px}@media(max-width: 1199.98px){.use-case-payments{padding:0px 16px}}.use-case-payments__hero{display:flex;flex-direction:row;justify-content:center;gap:80px;align-items:center;max-width:1280px;margin:0 auto;padding:80px 0px}@media(max-width: 1199.98px){.use-case-payments__hero{gap:60px;max-width:942px;padding:80px 0px}}@media(max-width: 991.98px){.use-case-payments__hero{flex-direction:column;gap:32px;max-width:608px;padding:60px 0px}}@media(max-width: 767.98px){.use-case-payments__hero{padding:40px 0px}}.use-case-payments .video-content{width:50%;display:flex;align-items:stretch}.use-case-payments .video-content iframe{width:100%;height:100%;min-height:380px;max-height:560px;border-radius:12px;box-shadow:0 8px 32px rgba(0,0,0,.1)}@media(max-width: 1199.98px){.use-case-payments .video-content iframe{min-height:350px;max-height:450px}}@media(max-width: 991.98px){.use-case-payments .video-content iframe{min-height:300px;max-height:400px}}@media(max-width: 767.98px){.use-case-payments .video-content iframe{min-height:250px;max-height:350px}}@media(max-width: 991.98px){.use-case-payments .video-content{width:100%}}.use-case-payments .text-content{width:50%;display:flex;flex-direction:column;justify-content:center}.use-case-payments .text-content .eyebrow{font-size:18px;font-style:normal;font-weight:700}@media(max-width: 767.98px){.use-case-payments .text-content .eyebrow{font-size:16px}}.use-case-payments .text-content .eyebrow h2{font-size:42px;font-style:normal;font-weight:700}@media(max-width: 767.98px){.use-case-payments .text-content .eyebrow h2{font-size:32px}}.use-case-payments .text-content .eyebrow p{font-size:24px;font-style:normal;font-weight:400}@media(max-width: 767.98px){.use-case-payments .text-content .eyebrow p{font-size:18px}}@media(max-width: 991.98px){.use-case-payments .text-content{width:100%}}.advantages-section .security-card{position:relative;border-radius:.5rem;background-color:transparent;white-space:normal;box-sizing:border-box}.advantages-section .security-card .card-title{margin-bottom:16px}.advantages-section .security-card::before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;padding:1px;background:linear-gradient(90deg, #d91aff 26.41%, #1aa4ff 100.32%);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;-webkit-mask-composite:xor;z-index:-1}.advantages-section .security-card p{margin-bottom:0 !important}@media(max-width: 767.98px){.advantages-section .security-card .h6{font-size:1.25rem}}.advantages-section .security-card-grid,.advantages-section .security-card-grid-3,.advantages-section .security-card-grid-4{gap:1rem;grid-template-columns:repeat(2, 1fr)}@media(max-width: 768px){.advantages-section .security-card-grid,.advantages-section .security-card-grid-3,.advantages-section .security-card-grid-4{grid-template-columns:repeat(1, 1fr)}}@media(min-width: 1200px){.advantages-section .security-card-grid{grid-template-columns:repeat(4, 1fr)}}.advantages-section .security-card-grid-3{gap:2.5rem}@media(min-width: 1200px){.advantages-section .security-card-grid-3{grid-template-columns:repeat(3, 1fr)}}@media(min-width: 1200px){.advantages-section .security-card-grid-4{grid-template-columns:repeat(4, 1fr)}}.advantages-section .advantages-list{list-style:none;padding:0;margin:0}.advantages-section .advantage-item{position:relative;padding-left:20px;margin-bottom:16px}.advantages-section .advantage-item::before{content:"•";position:absolute;left:0;top:0;font-weight:bold;font-size:16px}.advantages-section .advantage-item strong{display:block;margin-bottom:4px;color:#e0e0e1;font-size:16px;font-style:normal;font-weight:400;line-height:24px}.advantages-section .advantage-item .advantage-description{display:block;color:#e0e0e1;font-size:16px;font-style:normal;font-weight:400;line-height:24px}.advantages-section .security-card .card-title{color:var(--Black-Black-0, #FFF);font-size:18px;font-style:normal;font-weight:700;line-height:125%}.use-case-payments .payments-advantages-spacing{padding-top:80px;padding-bottom:20px;padding-right:0px;padding-left:0px}.use-case-payments .payments-projects-grid{display:grid;grid-template-columns:repeat(2, 1fr);gap:40px 40px;row-gap:48px}@media(min-width: 1200px){.use-case-payments .payments-projects-grid{grid-template-columns:repeat(3, 1fr)}}@media(max-width: 768px){.use-case-payments .payments-projects-grid{grid-template-columns:repeat(1, 1fr);gap:40px}}.use-case-payments .payments-project-card{min-height:260px;position:relative;padding:32px}.use-case-payments .payments-project-card .project-description{text-align:left}.use-case-payments .payments-project-card .project-description .first-word{color:#fff;font-size:16px;font-style:normal;font-weight:700;line-height:24px}.use-case-payments .payments-project-card .project-description .rest-text{color:var(--XRPL-Primary-White, #FFF);font-family:"Work Sans";font-size:16px;font-style:normal;font-weight:400;line-height:24px}.use-case-payments .payments-project-card::before{content:"";position:absolute;top:0;left:0;width:100%;height:.25rem;border-top-left-radius:.5rem;border-top-right-radius:.5rem}.use-case-payments .payments-project-card .project-logo{margin-Bottom:32px}.use-case-payments .payments-project-card .project-logo img.ripple-usd{content:url("../img/uses/payments/rlusd.png");width:180px;height:50px}.use-case-payments .payments-project-card .project-logo img.usdc{content:url("../img/uses/payments/usdc.png");width:50px;height:50px}.use-case-payments .payments-project-card .project-logo img.usdb{content:url("../img/uses/payments/usdb.png");width:126px;height:50px}.use-case-payments .payments-project-card .project-logo img.europ{content:url("../img/uses/payments/eroup.png");width:147px;height:50px}.use-case-payments .payments-project-card .project-logo img.xsgd{content:url("../img/uses/payments/XSGD.png");width:50px;height:50px}.use-case-payments .payments-project-card .project-logo img.audd{content:url("../img/uses/payments/AUDD.png");width:50px;height:50px}.use-case-payments .payments-project-card.odd::before{background:linear-gradient(90deg, #D91AFF 26.41%, #1AA4FF 100.32%)}.use-case-payments .payments-project-card.even::before{background:linear-gradient(90deg, #4BB7FF -0.32%, #32E685 30.61%)}.use-case-payments .battle-tested-section h4.eyebrow{font-size:28px !important}.use-case-payments .battle-tested-section .payments-project-card{min-height:384px;display:flex;flex-direction:column}.use-case-payments .battle-tested-section .payments-project-card .project-logo img.coinpayments{content:url("../img/uses/payments/coinpayments.png");width:99px;height:60px}.use-case-payments .battle-tested-section .payments-project-card .project-logo img.ripple{content:url("../img/uses/payments/ripple-white.png");width:100px;height:26px;margin-bottom:11px;margin-top:19px}.use-case-payments .battle-tested-section .payments-project-card .project-logo img.friipay{content:url("../img/uses/payments/friipay.png");width:60px;height:60px}.use-case-payments .battle-tested-section .payments-project-card .project-description{flex-grow:1}.use-case-payments .battle-tested-section .payments-project-card .project-button{margin-top:auto;padding-top:32px;display:flex;justify-content:center}.use-case-payments .battle-tested-section .payments-project-card .project-button .battle-tested-arrow{color:#9a52ff;font-size:16px;font-style:normal;font-weight:700;text-decoration:none;cursor:pointer;display:inline-flex;align-items:center;background:none !important}.use-case-payments .battle-tested-section .payments-project-card .project-button .battle-tested-arrow::after{position:relative;top:-1px;display:inline-block;content:url("../img/icons/arrow-right-purple.svg");margin-left:8px;transition:transform .3s ease-out;width:16px;height:16px}.use-case-payments .battle-tested-section .payments-project-card .project-button .battle-tested-arrow:hover{text-decoration:none;background:none !important}.use-case-payments .battle-tested-section .payments-project-card .project-button .battle-tested-arrow:hover::after{transform:translateX(4px)}.use-case-payments .battle-tested-section .payments-project-card .project-button .battle-tested-arrow:focus{background:none !important;outline:none}.use-case-payments .payments-integration-section .developer-tools{padding:120px 0;max-width:1280px;margin:0 auto}@media(max-width: 1199.98px){.use-case-payments .payments-integration-section .developer-tools{max-width:942px}}@media(max-width: 991.98px){.use-case-payments .payments-integration-section .developer-tools{max-width:608px}}.use-case-payments .payments-integration-section .developer-tools .container{padding:0}.use-case-payments .payments-integration-section .developer-tools .feature-item__title{font-size:16px;font-weight:400;color:#fff}.use-case-payments .payments-integration-section .developer-tools__header{margin-bottom:80px}.use-case-payments .payments-integration-section .developer-tools__header.text-center{text-align:center}.use-case-payments .payments-integration-section .developer-tools__title{font-size:28px;font-weight:700;margin-bottom:0;text-align:left}.use-case-payments .payments-integration-section .row{gap:48px;margin:0;display:flex;flex-wrap:wrap}@media(max-width: 991px){.use-case-payments .payments-integration-section .row{flex-direction:column;gap:32px}}.use-case-payments .payments-integration-section .row .col-lg-6{padding:0;flex:1}@media(max-width: 991px){.use-case-payments .payments-integration-section .row .col-lg-6{flex:none;width:100%}}.use-case-payments .payments-integration-section .integration-column{padding:0px}.use-case-payments .payments-integration-section .integration-column .integration-column__title{color:#fff;font-size:20px;font-weight:700;margin-bottom:0px}.use-case-payments .payments-integration-section .integration-column .integration-column__subtitle{color:#e0e0e1;font-size:16px;font-weight:400;line-height:150%;margin-bottom:32px}.use-case-payments .payments-integration-section .integration-column .developer-tools__list{margin-top:0}@media(max-width: 991px){.use-case-payments .payments-integration-section .developer-tools{padding:80px 0}.use-case-payments .payments-integration-section .developer-tools__header{margin-bottom:60px}.use-case-payments .payments-integration-section .integration-column{padding:0;margin-bottom:40px}.use-case-payments .payments-integration-section .col-lg-6:last-child .integration-column{margin-bottom:0}}@media(max-width: 767px){.use-case-payments .payments-integration-section .developer-tools{padding:60px 20px}.use-case-payments .payments-integration-section .developer-tools__header{margin-bottom:40px}.use-case-payments .payments-integration-section .developer-tools__title{font-size:24px;text-align:center}}.dark [data-component-name="Breadcrumbs/Breadcrumbs"]+div>a>svg>rect{fill:transparent}[data-component-name="layouts/RootLayout"]{padding-top:80px}.top-nav{background-color:#111112;height:80px;padding:0}.top-nav .navbar-brand{text-decoration:none;white-space:pre;-webkit-transition:opacity .2s ease,color .2s ease;transition:opacity .2s ease,color .2s ease;padding-left:2rem}.top-nav .navbar-brand .logo{margin-left:0;content:url(../img/XRPLedger_DevPortal-white.svg);width:162px;height:40px;display:block}.top-nav .navbar-brand:hover{opacity:.75}@media(max-width: 991.98px){.top-nav .navbar-brand{padding-left:2rem}.top-nav .navbar-brand img{width:120px}}.top-nav .nav-item{font-weight:600}@media(min-width: 992px){.top-nav #topnav-pages{flex-grow:1}}.top-nav #topnav-pages .nav-link{color:#f5f5f7;font-size:1rem;line-height:1.25rem;text-decoration:none;font-weight:600}.top-nav .dropdown-toggle{position:relative}.top-nav .dropdown-menu{border-width:0}.top-nav .dropdown-menu h5{font-weight:400;font-size:12px;color:#a2a2a4;margin-bottom:0}.top-nav .dropdown-menu .dropdown-item{line-height:1rem;padding:.75rem 0;white-space:normal}.top-nav .dropdown-menu .dropdown-item.dropdown-hero{width:100%;display:flex;padding:1rem 2rem}.top-nav .dropdown-menu .dropdown-item.dropdown-hero>img{width:68px;height:68px;background-color:#232325;border-radius:4px;flex-grow:0;padding:.75rem;margin-right:2rem;margin-top:auto;margin-bottom:auto}.top-nav .dropdown-menu .dropdown-item.dropdown-hero p{font-size:14px;color:#c1c1c2;margin:0;white-space:normal}.top-nav .dropdown-menu .dropdown-item.dropdown-hero h4{font-size:1.25rem;font-weight:600;margin-bottom:0;line-height:2rem}.top-nav .dropdown-menu .dropdown-item.dropdown-hero:hover h4{color:#9a52ff}.top-nav .dropdown-menu .dropdown-item.dropdown-hero:hover p{font-weight:400}.top-nav .dropdown-menu .dropdown-item:last-child{padding-bottom:0}.top-nav .dropdown-menu .dropdown-item:first-child{padding-top:0}.top-nav .dropdown-menu .col-for-get_started{background-color:#232325}.top-nav .dropdown-menu a:hover{color:#9a52ff;background-color:inherit}.top-nav .dropdown-menu h5:hover{background-color:inherit}.top-nav #topnav-search{flex-grow:1}.top-nav #topnav-search .input-group{flex-grow:1;flex-wrap:nowrap}@media(max-width: 991.98px){.top-nav #topnav-search .form-inline{padding:1rem 2rem}}.top-nav #topnav-search .input-group-text{height:40px}.top-nav #topnav-search .ds-input{height:40px}.top-nav #topnav-language .dropdown-item{font-weight:600}@media(min-width: 992px){.top-nav{padding:0 2rem}.top-nav .navbar-brand{margin-left:0;padding-left:0}.top-nav .dropdown-toggle::after{display:none}.top-nav .dropdown-toggle>span{border-bottom:2px solid transparent}.top-nav .dropdown .dropdown-toggle:hover>span:not(.chevron){padding-bottom:8px;border-bottom:2px solid #9a52ff;margin-bottom:-8px}.top-nav .dropdown-menu{border-radius:0 0 8px 8px;padding:2.5rem}.top-nav .dropdown-menu .dropdown-item.dropdown-hero{padding:0}.top-nav .dropdown-menu.show{display:grid;gap:40px}.top-nav .dropdown-menu.show#topnav_dd_about{grid-template-columns:180px 180px 180px}.top-nav .dropdown-menu.show#topnav_dd_docs{grid-template-columns:180px 180px 260px;left:-200px}.top-nav .dropdown-menu.show#topnav_dd_community{grid-template-columns:200px}.top-nav .dropdown-menu.show#topnav_dd_resources{grid-template-columns:195px 180px 180px;left:-200px}.top-nav .dropdown-menu.show .dropdown-hero{grid-row:1;grid-column:1/4}.top-nav .dropdown-menu.show #dropdown-hero-for-docs{grid-column:1/3}.top-nav .dropdown-menu.show .col-for-xrp_ledger{grid-row:1/3;grid-column:1}.top-nav .dropdown-menu.show .col-for-xrp{grid-column:2}.top-nav .dropdown-menu.show .col-for-sustainability,.top-nav .dropdown-menu.show .col-for-持続可能性{grid-column:2}.top-nav .dropdown-menu.show .col-for-about,.top-nav .dropdown-menu.show .col-for-概要{grid-row:1/3;grid-column:3}.top-nav .dropdown-menu.show .col-for-article_types{grid-column:1;grid-row:2}.top-nav .dropdown-menu.show .col-for-use_cases{grid-column:2;grid-row:2}.top-nav .dropdown-menu.show .col-for-get_started{grid-column:3;grid-row:1/3;margin:-40px -40px -40px 0;padding:40px}.top-nav .dropdown-menu.show .col-for-development{grid-column:1}.top-nav .dropdown-menu.show .col-for-current-status,.top-nav .dropdown-menu.show .col-for-現在のステータス{grid-column:2}.top-nav .dropdown-menu.show .col-for-join-in,.top-nav .dropdown-menu.show .col-for-参加する{grid-column:3}.top-nav .dropdown-menu.smaller-dropdown{min-width:180px;padding:1.25rem}.top-nav #topnav-pages{flex-grow:0}}@media(min-width: 992px)and (min-width: 992px)and (max-width: 1133px){.top-nav #topnav-pages .nav-link{padding:1rem 1rem}}@media(min-width: 992px){.top-nav #topnav-language{flex-grow:0}.top-nav #topnav-language hr{display:none}.top-nav #topnav-language #language_selector_header_btn{padding-right:0}}@media(min-width: 992px)and (min-width: 992px)and (max-width: 1133px){.top-nav #topnav-language #language_selector_header_btn{padding-left:1rem}}@media(min-width: 992px)and (min-width: 1200px){.top-nav #topnav-search{margin-left:3.5rem;margin-right:.5rem}.top-nav #topnav-language{margin-right:.5rem}.top-nav #topnav-button{margin-left:.2rem;margin-right:1rem}}@media(max-width: 991.98px){.top-nav .navbar-toggler{border:0;padding:30px 2rem;font-size:1rem;display:inline-block}.top-nav .navbar-toggler .navbar-toggler-icon{background:none;height:20px;width:20px;position:relative}.top-nav .navbar-toggler .navbar-toggler-icon::after,.top-nav .navbar-toggler .navbar-toggler-icon::before,.top-nav .navbar-toggler .navbar-toggler-icon div{position:absolute;content:" ";background-color:#f5f5f7;display:block;width:100%;height:3px;transition:all .2s ease}.top-nav .navbar-toggler .navbar-toggler-icon::before{top:0}.top-nav .navbar-toggler .navbar-toggler-icon::after{bottom:0}.top-nav .navbar-toggler .navbar-toggler-icon div{top:calc(50% - 1.5px)}.top-nav .navbar-toggler:not(.collapsed) .navbar-toggler-icon::before{transform:translateY(8px) rotate(135deg)}.top-nav .navbar-toggler:not(.collapsed) .navbar-toggler-icon::after{transform:translateY(-9px) rotate(-135deg)}.top-nav .navbar-toggler:not(.collapsed) .navbar-toggler-icon div{transform:scale(0)}.top-nav .navbar-nav{align-items:unset !important}.top-nav .navbar-nav #topnav-button{background-color:#111112;padding:1rem 1.5rem}.top-nav .navbar-nav #topnav-search [data-component-name="Search/SearchTrigger"]{cursor:pointer}.top-nav .navbar-nav .nav-link,.top-nav .navbar-collapse>.nav-item{line-height:150%;background:#111112}.top-nav .navbar-nav .nav-link label,.top-nav .navbar-collapse>.nav-item label{margin-bottom:0}.top-nav .navbar-nav .nav-link{padding:1rem 2rem}.top-nav .dropdown-menu{margin:0;width:100%;overflow:auto;transition:all .2s ease;height:0;display:block;padding:0;border-radius:0}.top-nav .dropdown-menu.show{height:calc(100vh - 80px - 52px)}.top-nav .dropdown-menu.show>:last-child{padding-bottom:4rem}.top-nav .dropdown-menu.show#topnav_dd_docs{display:grid;grid-template-columns:minmax(187px, 1fr) minmax(187px, 1fr);gap:1px;left:-200px}.top-nav .dropdown-menu.show#topnav_dd_docs .dropdown-hero{grid-column:1/3;grid-row:1}.top-nav .dropdown-menu.show#topnav_dd_docs .col-for-document_types{grid-column:1;grid-row:2}.top-nav .dropdown-menu.show#topnav_dd_docs .col-for-use_cases{grid-column:2;grid-row:2}.top-nav .dropdown-menu.show#topnav_dd_docs .col-for-get_started{grid-column:1/3;grid-row:4;margin:-1px;padding-top:33px}.top-nav .dropdown-menu .navcol{padding:1rem 2rem}.top-nav .dropdown-menu.smaller-dropdown{padding:0 2rem}.top-nav .dropdown-menu.smaller-dropdown.show{padding:1rem 2rem;height:auto}.top-nav .dropdown-menu .dropdown-hero:first-child{padding-top:1rem}.top-nav .dropdown-toggle:not(.with-caret)::before,.top-nav .dropdown-toggle:not(.with-caret)::after{border:0;font-family:FontAwesome;color:#9a52ff;font-size:.75rem;transition:all .2s ease;overflow:clip;width:1rem}.top-nav .dropdown-toggle:not(.with-caret)::before{content:"";display:inline-block;margin-bottom:-5px}.top-nav .dropdown-toggle:not(.with-caret)::after{content:"";position:absolute;right:2rem}.top-nav .dropdown.show .dropdown-toggle::after{text-indent:5rem}.top-nav .dropdown:not(.show) .dropdown-toggle::before{width:0;height:0;text-indent:-5rem}.top-nav .dropdown-toggle.with-caret::after{border:0}.top-nav #top-main-nav{background-color:#232325;padding-top:32px;position:relative}.top-nav #top-main-nav.submenu-expanded{padding-top:0}.top-nav #top-main-nav.submenu-expanded .dropdown:not(.show) .dropdown-toggle{display:none}.top-nav #top-main-nav.submenu-expanded #topnav-search,.top-nav #top-main-nav.submenu-expanded #topnav-language,.top-nav #top-main-nav.submenu-expanded #topnav-theme{height:0;overflow:clip;padding-top:0;padding-bottom:0}.top-nav #topnav-search{position:absolute;top:0;right:105px}.top-nav #topnav-search .input-group{flex-wrap:nowrap}.top-nav #topnav-language{position:absolute;top:0;right:65px}.top-nav #topnav-language hr{border-top:1px solid #232325;margin-top:.25rem;margin-bottom:.25rem;display:static}.top-nav #topnav-theme{position:absolute;top:0;right:26px}}article h1:before,article h2:before,article h3:before,article h4:before,article h5:before,article h6:before,.interactive-block:before{display:block;content:" ";margin-top:-24px;height:60px;visibility:hidden;pointer-events:none}article h1:first-of-type:before{margin-top:-40px}.chevron{position:relative;display:inline-block;width:.75rem;height:.5625rem}.chevron span{position:absolute;top:.25rem;display:inline-block;width:.5rem;height:.15rem;background-color:#9a52ff;transition:all .2s ease;border:none}.chevron:not(.expander) span:first-of-type{left:0;transform:rotate(45deg)}.chevron:not(.expander) span:last-of-type{right:0;transform:rotate(-45deg)}.chevron.active span:first-of-type{transform:rotate(-45deg)}.chevron.active span:first-of-type{transform:rotate(45deg)}.dropdown.show .chevron span:first-of-type,.expander:not(.collapsed) .chevron span:first-of-type{transform:rotate(-45deg)}.dropdown.show .chevron span:last-of-type,.expander:not(.collapsed) .chevron span:last-of-type{transform:rotate(45deg)}#topnav-theme>div{border-radius:var(--language-picker-border-radius);color:var(--language-picker-text-color);background-color:var(--language-picker-background-color);border:1px solid var(--language-picker-border-color);padding:var(--language-picker-input-padding-vertical) var(--language-picker-input-padding-horizontal);min-height:var(--language-picker-min-height)}@media(max-width: 991.98px){.navbar-collapse,.dropdown-menu{box-shadow:0px 25px 40px -20px #000}}.web-banner{text-decoration:none;display:flex;justify-content:space-between;height:0;background:#32e685 !important;padding:7px 35px;font-family:"Space Grotesk";z-index:10;cursor:pointer;color:#000 !important;text-align:center;font-family:"Space Grotesk";font-size:26px;font-style:normal;font-weight:600;letter-spacing:-0.32px}.web-banner:hover{text-decoration:none;color:#fff}.web-banner:hover .button-icon{animation:iconJitter .7s cubic-bezier(0.16, 1, 0.3, 1) forwards;transition:transform .7s cubic-bezier(0.16, 1, 0.3, 1)}.web-banner::after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background-color:#e0e500;z-index:0;transform:scaleX(0);transform-origin:left;transition:transform .7s cubic-bezier(0.7, 0, 0.84, 0);will-change:transform}.web-banner:hover::after{transform:scaleX(1);transition:transform .7s cubic-bezier(0.16, 1, 0.3, 1)}.web-banner>*{position:relative;z-index:1}@media(max-width: 768px){.web-banner{font-size:18px;padding:11px 35px}.web-banner .banner-button{gap:11px !important}.web-banner .button-text{margin-bottom:4px}}@media(max-width: 564px){.web-banner{font-size:15px;padding:9px 40px}.web-banner .button-text{margin-bottom:0px}.web-banner .banner-event-details{gap:0px !important;flex-direction:column;text-align:left;line-height:21px}.web-banner .banner-event-details .event-date{position:relative;top:-5px}.web-banner .banner-button{align-self:baseline;gap:8px !important;margin-top:-2px !important;padding-top:0px !important}}.web-banner .banner-button{display:flex;align-items:center;gap:14.5px;padding-top:1px}.web-banner .banner-button img{width:24.5px;height:33.7px}@media(max-width: 768px){.web-banner .banner-button img{width:15.5px;height:17px;margin-top:4px}}@media(max-width: 564px){.web-banner .banner-button img{width:14.5px;height:13.85px}}.web-banner .banner-event-details{display:flex;gap:32px}.web-banner .button-icon{transform-style:preserve-3d;aspect-ratio:.71;object-fit:contain;animation:none;transform:rotateZ(0deg);transition:transform .7s cubic-bezier(0.16, 1, 0.3, 1);align-self:stretch;margin:auto 0;transform-style:preserve-3d}@keyframes iconJitter{from{transform:translate3d(0, 0, 0) scale3d(1, 1, 1) rotateZ(0deg) skew(0deg, 0deg)}to{transform:translate3d(0, 0, 0) scale3d(1, 1, 1) rotateZ(45deg) skew(0deg, 0deg)}}.web-banner a{text-decoration:none}.button-icon{animation:iconJitter .7s ease-in-out;animation-iteration-count:1;transition:transform .7s cubic-bezier(0.16, 1, 0.3, 1)}@keyframes iconReturn{from{transform:translate3d(0, 0, 0) scale3d(1, 1, 1) rotateZ(45deg) skew(0deg, 0deg)}to{transform:translate3d(0, 0, 0) scale3d(1, 1, 1) rotateZ(0deg) skew(0deg, 0deg)}}.web-banner.has-hover:not(:hover) .button-icon{animation:iconReturn .7s ease-in-out forwards;transition:transform .7s cubic-bezier(0.16, 1, 0.3, 1)}[data-component-name="Markdown/Markdown"] article{padding-bottom:50px}[data-component-name="Markdown/Markdown"] article p code,[data-component-name="Markdown/Markdown"] article table code,[data-component-name="Markdown/Markdown"] article li>code{background-color:#0a2e1b;color:#5beb9d}[data-component-name="Markdown/Markdown"] article a{text-decoration:underline}[data-component-name="Markdown/Markdown"] article h1{font-size:3rem;margin-top:32px;line-height:1.2;font-weight:700}[data-component-name="Markdown/Markdown"] article h1:first-child{margin-top:0;line-height:1.2}[data-component-name="Markdown/Markdown"] article h2,[data-component-name="Markdown/Markdown"] article h2.md{margin-top:2.5rem;margin-bottom:1.5rem;font-size:2.5rem;font-weight:600;line-height:1.2}[data-component-name="Markdown/Markdown"] article h3,[data-component-name="Markdown/Markdown"] article h3.md{font-size:2.125rem;margin-top:2rem;margin-bottom:1rem;line-height:1.2}[data-component-name="Markdown/Markdown"] article h4{font-size:1.75rem;margin-top:1.5rem;margin-bottom:.5rem;line-height:1.2}[data-component-name="Markdown/Markdown"] article h5{font-size:1.25rem;margin-top:1.25rem;line-height:1.2;font-weight:700}[data-component-name="Markdown/Markdown"] article h6{font-size:1rem;margin-top:1rem;line-height:1.2;font-weight:700}[data-component-name="Markdown/Markdown"] article>ul li,[data-component-name="Markdown/Markdown"] article>ol li,[data-component-name="Markdown/Markdown"] article .children-display li{margin:6px;margin-top:24px}[data-component-name="Markdown/Markdown"] article>ul li:first-child,[data-component-name="Markdown/Markdown"] article>ol li:first-child,[data-component-name="Markdown/Markdown"] article .children-display li:first-child{margin-top:16px}[data-component-name="Markdown/Markdown"] article>ul li p,[data-component-name="Markdown/Markdown"] article>ol li p,[data-component-name="Markdown/Markdown"] article .children-display li p{margin:0}[data-component-name="Markdown/Markdown"] article [data-component-name="Markdoc/Tabs/Tabs"] li{margin:0}[data-component-name="Markdown/Markdown"] article a[title=Source],[data-component-name="Markdown/Markdown"] article a[title=ソース]{float:right;padding-left:20px}[data-component-name="Markdown/Markdown"] article h1.invisible,[data-component-name="Markdown/Markdown"] article h2.invisible,[data-component-name="Markdown/Markdown"] article h3.invisible,[data-component-name="Markdown/Markdown"] article h4.invisible,[data-component-name="Markdown/Markdown"] article h5.invisible,[data-component-name="Markdown/Markdown"] article h6.invisible{font-size:0;line-height:0;margin:0}[data-component-name="Markdown/Markdown"] article h1.invisible .hover_anchor,[data-component-name="Markdown/Markdown"] article h2.invisible .hover_anchor,[data-component-name="Markdown/Markdown"] article h3.invisible .hover_anchor,[data-component-name="Markdown/Markdown"] article h4.invisible .hover_anchor,[data-component-name="Markdown/Markdown"] article h5.invisible .hover_anchor,[data-component-name="Markdown/Markdown"] article h6.invisible .hover_anchor{display:none}[data-component-name="Markdown/Markdown"] article .shield{display:inline-block !important;vertical-align:middle}.blurb a{text-decoration:underline}.hover_anchor{visibility:hidden;padding-left:1rem;font-size:1.25rem}h1:hover .hover_anchor,h2:hover .hover_anchor,h3:hover .hover_anchor,h4:hover .hover_anchor,h5:hover .hover_anchor,h6:hover .hover_anchor{visibility:visible;text-decoration:none}pre{color:#fff;background-color:#232325;word-wrap:normal;padding:2rem;border-radius:4px}pre code{white-space:pre;color:#fff;background-color:#232325}.multicode{padding:0;z-index:1;position:relative}.multicode pre{background:none;border:none;border-radius:0;padding:0;clear:both}.multicode pre code{overflow:auto;max-height:24em;border-radius:0 4px 4px 4px;display:block;padding:2rem}.multicode pre code.expanded{overflow:visible;max-height:none;position:absolute;min-width:100%}.multicode ul{margin:0 !important;padding:0}.multicode ul li{display:block;float:left;list-style-type:none;margin-right:0px;margin-left:0px;border:0;clear:none}.multicode a{text-decoration:none;color:#fff;background-color:transparent;padding:.75rem 2rem;margin:0;border-radius:4px 4px 0 0}.multicode a.current{background-color:#232325}.multicode a:hover{text-decoration:none;background-color:#232325;color:#9a52ff;padding-bottom:.625rem}.multicode .btn{z-index:10}.multicode .codetabs{position:relative;z-index:10}.clipboard-btn{z-index:10;margin-right:10px}.codehilite{background:#232325;color:#fff}.codehilite .c,.codehilite .ch,.codehilite .cm,.codehilite .cp,.codehilite .cpf,.codehilite .c1,.codehilite .cs{color:#838386}.codehilite .k,.codehilite .kc,.codehilite .kd,.codehilite .kn,.codehilite .kp,.codehilite .kr,.codehilite .kt{color:#ff6719}.codehilite .m,.codehilite .mb,.codehilite .mh,.codehilite .mi,.codehilite .mo,.codehilite .il{color:#19a3ff}.codehilite .n,.codehilite .na,.codehilite .nb,.codehilite .nc,.codehilite .nd,.codehilite .ne,.codehilite .nf,.codehilite .ni,.codehilite .nl,.codehilite .nn,.codehilite .nt,.codehilite .nv,.codehilite .nx,.codehilite .bp,.codehilite .fm,.codehilite .py{color:#fff}.codehilite .p{color:#e0e0e1}.codehilite .s,.codehilite .s1,.codehilite .s2,.codehilite .sa,.codehilite .sb,.codehilite .sc,.codehilite .dl,.codehilite .sd,.codehilite .se,.codehilite .sh,.codehilite .si,.codehilite .sr,.codehilite .ss,.codehilite .sx{color:#28b86a}.codehilite{background:transparent;position:relative}.codehilite .btn-group{top:1rem;right:1rem;position:absolute}.multicode .codehilite .btn-group{top:70px;right:20px}#redocly_root .cm-foldPlaceholder{background-color:#232325;border:none;font-size:18px}#app_root article .code-walkthrough{margin-right:112px;max-width:calc(100% - 112px);padding-right:0;grid-template-columns:5fr 5fr}@media screen and (max-width: 990px){#app_root article .code-walkthrough{margin-right:96px;max-width:calc(100% - 96px)}}@media screen and (min-width: 1600px){#app_root article .code-walkthrough [data-component-name="Markdoc/CodeWalkthrough/CodeFilters"]{margin-left:96px;max-width:calc(100% - 96px)}#app_root article .code-walkthrough [class*=CodeWalkthrough__ContentWrapper]{margin-left:96px;max-width:calc(100% - 200px)}}#app_root article .code-walkthrough .tag-size-large{margin:0 var(--spacing-xs)}#app_root article .code-walkthrough .tag-size-large>div{padding:2px 4px}#app_root article .code-walkthrough [data-component-name="Markdoc/CodeWalkthrough/CodeFilters"]{padding:var(--spacing-xs) var(--spacing-lg)}#app_root article .code-walkthrough [data-component-name="Markdoc/CodeWalkthrough/CodeFilters"]>:first-child>:first-child{margin:auto}#app_root article .code-walkthrough [data-component-name="Markdoc/CodeWalkthrough/CodePanel"]{top:var(--navbar-height);border:0}#app_root article .code-walkthrough [data-component-name="Markdoc/CodeWalkthrough/CodePanel"] [data-component-name="CodeBlock/CodeBlockContainer"]{border-top-left-radius:0;border-top-right-radius:0}#app_root article .code-walkthrough>:first-child>div{border-radius:var(--border-radius-md)}#app_root article .code-walkthrough [data-component-name="Markdoc/CodeWalkthrough/CodeFilters"]{background-color:var(--code-panel-bg-color)}#app_root article .code-walkthrough [data-line-number]::before{padding-left:.8em}article img{max-width:100%;height:auto}article svg{max-width:100%}article .floating-diagram{margin:.5rem;float:left}article li{clear:left}html:not(.light) article svg[fill=black]{fill:#fff;stroke:#fff}html:not(.light) article svg[fill=black] *[fill=white]{fill:#000}html:not(.light) article svg[fill=black] *[stroke=white]{stroke:#000}html:not(.light) article svg[fill=black] *[fill=black]{fill:#fff}html:not(.light) article svg[fill=black] *[stroke=black]{stroke:#fff}html:not(.light) article svg[fill=black] g[fill=blue]{fill:#19a3ff}html:not(.light) article svg[fill=black] g[stroke=blue]{stroke:#19a3ff}html:not(.light) article svg[fill=black] g[fill="rgb(120,120,120)"]{fill:#e0e0e1}html:not(.light) article svg[fill=black] g[stroke="rgb(120,120,120)"]{stroke:#e0e0e1}html:not(.light) article svg[fill=black] g[fill="rgb(200,200,200)"]{fill:#343437}html:not(.light) article svg[fill=black] g[fill="rgb(70,70,70)"]{fill:#838386}html:not(.light) article svg[fill=black] g[stroke="rgb(70,70,70)"]{stroke:#838386}html:not(.light) article svg[fill=black] g[fill="rgb(29,180,255)"]{fill:#9a52ff}html:not(.light) article svg[fill=black] g[stroke="rgb(29,180,255)"]{stroke:#9a52ff}html:not(.light) article svg[fill=black] rect[stroke="rgb(245,247,249)"]{stroke:#000}html:not(.light) article svg[fill=black] g[fill=lime],html:not(.light) article svg[fill=black] g[fill="rgb(0,255,0)"]{fill:#9a52ff}html:not(.light) article svg[fill=black] g[stroke=lime],html:not(.light) article svg[fill=black] g[stroke="rgb(0,255,0)"]{stroke:#9a52ff}html:not(.light) article svg[fill=black] g[fill=yellow],html:not(.light) article svg[fill=black] g[fill="rgb(255,255,0)"]{fill:#faff19}html:not(.light) article svg[fill=black] g[fill=yellow] path[stroke=black],html:not(.light) article svg[fill=black] g[fill="rgb(255,255,0)"] path[stroke=black]{stroke:#000}html:not(.light) article svg[fill=black] g[fill=red],html:not(.light) article svg[fill=black] g[fill="rgb(255,255,0)"]{fill:#ff198b}html:not(.light) article svg[fill=black] g[stroke=red],html:not(.light) article svg[fill=black] g[stroke="rgb(255,255,0)"]{stroke:#ff198b}html:not(.light) article svg[fill=black] g[fill=yellow]+g text,html:not(.light) article svg[fill=black] g[fill="rgb(255,255,0)"]+g text{fill:#000}html:not(.light) article svg[fill=black] g[fill=lime]+g text{fill:#000}html:not(.light) article svg[fill=none] path[fill="#000000"]{fill:#fff}html:not(.light) article svg[fill=none] path[stroke="#000000"]{stroke:#fff}html:not(.light) article svg[fill=none] path[fill="#ffffff"]{fill:#000}html:not(.light) article svg[fill=none] path[stroke="#ffffff"]{stroke:#000}html:not(.light) article svg[fill=none] path[fill="#23292f"],html:not(.light) article svg[fill=none] path[fill="#23282f"]{fill:#fff}html:not(.light) article svg[fill=none] path[stroke="#23292f"],html:not(.light) article svg[fill=none] path[stroke="#23282f"]{stroke:#fff}html:not(.light) article svg[fill=none] path[fill="#2c3e50"],html:not(.light) article svg[fill=none] path[fill="#2b3e51"]{fill:#e0e0e1}html:not(.light) article svg[fill=none] path[stroke="#2c3e50"],html:not(.light) article svg[fill=none] path[stroke="#2b3e51"]{stroke:#e0e0e1}html:not(.light) article svg[fill=none] path[fill="#1c2835"]{fill:#f5f5f7}html:not(.light) article svg[fill=none] path[stroke="#1c2835"]{stroke:#f5f5f7}html:not(.light) article svg[fill=none] path[fill="#21aa47"]{fill:#32e685}html:not(.light) article svg[fill=none] path[stroke="#21aa47"]{stroke:#32e685}html:not(.light) article svg[fill=none] path[fill="#e64b3b"]{fill:#dc3545}html:not(.light) article svg[fill=none] path[stroke="#e64b3b"]{stroke:#dc3545}html:not(.light) article svg[fill=none] path[stroke="#27a2db"],html:not(.light) article svg[fill=none] path[stroke="#00aae4"]{stroke:#9a52ff}html:not(.light) article svg[fill=none] path[fill="#27a2db"],html:not(.light) article svg[fill=none] path[fill="#00aae4"]{fill:#9a52ff}html:not(.light) article svg[fill=none] path[fill="#e6e7e8"]{fill:#232325}html:not(.light) article svg[fill=none] path[stroke="#e6e7e8"]{stroke:#232325}html:not(.light) article svg[fill=none] path[stroke="#ffbf27"]{stroke:#d919ff}html:not(.light) article svg[fill=none] path[fill="#00ff00"]{fill:#32e685}html:not(.light) article svg[fill=none] path[stroke="#00ff00"]{stroke:#32e685}html:not(.light) article svg[fill=none] path[fill="#ff00ff"]{fill:#ff198b}html:not(.light) article svg[fill=none] path[stroke="#ff00ff"]{stroke:#ff198b}html:not(.light) article svg[fill=none] linearGradient stop[stop-color="#ffffff"]{stop-color:#343437}html:not(.light) article svg[fill=none] linearGradient stop[stop-color="#e6e7e8"]{stop-color:#232325}html:not(.light) article svg[fill=none] linearGradient stop[stop-color="#dbdcdd"]{stop-color:#000}html:not(.light) article svg[fill=none] linearGradient stop[stop-color="#b1b3b5"]{stop-color:#111112}html:not(.light) article svg[fill=none] linearGradient stop[stop-color="#29a1da"]{stop-color:#2dcf78}html:not(.light) article svg[fill=none] linearGradient stop[stop-color="#2789b9"]{stop-color:#5beb9d}html:not(.light) article svg[fill=none] linearGradient stop[stop-color="#6bc1ec"]{stop-color:#adf5ce}html:not(.light) article svg[fill=none] linearGradient stop[stop-color="#8ad6f4"]{stop-color:#84f0b6}html:not(.light) article svg[fill=none] linearGradient stop[stop-color="#fab913"]{stop-color:#f2b2ff}html:not(.light) article svg[fill=none] linearGradient stop[stop-color="#fad26b"]{stop-color:#ea80ff}html:not(.light) article svg[fill=none] linearGradient stop[stop-color="#f8a136"]{stop-color:#e24cff}html:not(.light) article svg[fill=none] linearGradient stop[stop-color="#f7931a"]{stop-color:#c000e5}html.light svg[fill=black] g[fill=blue]{fill:#006bb2}html.light svg[fill=black] g[stroke=blue]{stroke:#19a3ff}html.light svg[fill=black] g[fill="rgb(120,120,120)"]{fill:#343437}html.light svg[fill=black] g[stroke="rgb(120,120,120)"]{stroke:#343437}html.light svg[fill=black] g[fill="rgb(200,200,200)"]{fill:#a2a2a4}html.light svg[fill=black] g[fill="rgb(70,70,70)"]{fill:#343437}html.light svg[fill=black] g[stroke="rgb(70,70,70)"]{stroke:#343437}html.light svg[fill=black] g[fill="rgb(29,180,255)"]{fill:#19a3ff}html.light svg[fill=black] g[stroke="rgb(29,180,255)"]{stroke:#006bb2}html.light svg[fill=black] rect[stroke="rgb(245,247,249)"]{stroke:#fcfcfd}html.light svg[fill=black] g[fill=lime],html.light svg[fill=black] g[fill="rgb(0,255,0)"]{fill:#5beb9d}html.light svg[fill=black] g[stroke=lime],html.light svg[fill=black] g[stroke="rgb(0,255,0)"]{stroke:#28b86a}html.light svg[fill=black] g[fill=yellow],html.light svg[fill=black] g[fill="rgb(255,255,0)"]{fill:#fcff80}html.light svg[fill=black] g[fill=red],html.light svg[fill=black] g[fill="rgb(255,255,0)"]{fill:#ff4ba4}html.light svg[fill=black] g[stroke=red],html.light svg[fill=black] g[stroke="rgb(255,255,0)"]{stroke:#ff198b}html.light svg[fill=none] rect[fill="#111112"]{fill:#f5f5f7}html.light svg[fill=none] path[fill=white]{fill:#000}html.light svg[fill=none] path[fill="#343437"]{fill:#c1c1c2}html.light svg[fill=none] path[fill="#A2A2A4"],html.light svg[fill=none] rect[fill="#A2A2A4"],html.light svg[fill=none] ellipse[fill="#A2A2A4"]{fill:#454549}html.light svg[fill=none] path[fill="#232325"]{fill:#e0e0e1}html.light svg[fill=none] path[fill="#F5F5F7"]{fill:#111112}html.light svg[fill=none] path[stroke="#F5F5F7"]{stroke:#111112}html.light svg[fill=none] path[stroke="#FF198B"]{stroke:#b20058}html.light svg[fill=none] linearGradient stop[stop-color="#F5F5F7"]{stop-color:#111112}html.light svg[fill=none] linearGradient stop[stop-color="#C1C1C2"]{stop-color:#343437}.external-link::after{content:" ";background-image:url(../img/icons/arrow-up-right.svg);background-repeat:no-repeat;display:inline-block;background-size:16px;padding:0 4px 0 8px;width:16px;height:16px;background-position:center;transition:transform 100ms ease-in-out}.external-link:hover::after{transform:translate(3px, -3px)}.external-link .fa-external-link{display:none}.top-nav .dropdown .external-link::after,.xrpl-footer .external-link::after{background-position:left 6px bottom 1px;width:2rem}@-moz-document url-prefix(){@supports(animation: calc(0s)){.top-nav .dropdown .external-link::after,.xrpl-footer .external-link::after{background-position:left 8px bottom 2px}}}.top-nav .dropdown .external-link:hover::after,.xrpl-footer .external-link:hover::after{background-position:left 8px bottom 3px}.q-wrapper .external-link::after{background-position:left 0 bottom 7px}.q-wrapper .external-link:hover::after{background-position:left 4px bottom 11px}.li-links{position:relative;border-bottom:2px solid #454549}.li-links a{width:100%;padding:16px 0}.li-links a::after{position:absolute;right:4px;content:" ";background-image:url(../img/icons/arrow-up-right.svg);background-repeat:no-repeat;display:inline-block;background-size:1.5rem;padding:0 .5rem;background-position:left 0 bottom -0.1rem;transition:background-position 100ms ease-in-out}.li-links a:hover::after{background-position:left .2rem bottom .1rem}[data-component-name="Footer/Footer"]{padding:7.5rem 2rem}[data-component-name="Footer/Footer"] [data-component-name="Footer/FooterColumn"]{text-shadow:#111112 0px 0px 2px,#111112 1px 1px 2px,#111112 2px 2px 3px,#111112 2px 2px 4px,#111112 2px 2px 5px,#111112 2px 2px 6px,#111112 -1px -1px 2px,#111112 -2px -2px 3px,#111112 -2px -2px 4px}@media(min-width: 992px){[data-component-name="Footer/Footer"]{background-image:url(../img/backgrounds/footer.svg);background-size:cover;background-repeat:no-repeat;background-position:bottom right}}@media(max-width: 991.98px){[data-component-name="Footer/Footer"] .col-lg:not(:first-child){margin-top:4rem}}[data-component-name="Footer/Footer"] h5{font-size:1rem;font-weight:600;color:#a2a2a4}[data-component-name="Footer/Footer"] .nav-link{padding:.75rem 0;line-height:1}[data-component-name="Footer/Footer"] .absolute-bottom-footer{font-size:10px;line-height:1rem}@media(max-width: 991.98px){[data-component-name="Footer/Footer"] .absolute-bottom-footer .copyright-license{margin-top:3rem}}.devportal-callout.tip,.devportal-callout.ヒント{border-color:#32e685}.devportal-callout.tip>strong:first-child:before,.devportal-callout.ヒント>strong:first-child:before{color:#32e685}.devportal-callout.note>strong:first-child:before,.devportal-callout.注記>strong:first-child:before{color:#19a3ff}.devportal-callout.note,.devportal-callout.注記{border-color:#19a3ff}.devportal-callout.caution,.devportal-callout.注意{border-color:#faff19}.devportal-callout.caution>strong:first-child:before,.devportal-callout.注意>strong:first-child:before{color:#faff19}.devportal-callout.warning,.devportal-callout.警告{border-color:#ff198b}.devportal-callout.warning>strong:first-child:before,.devportal-callout.警告>strong:first-child:before{color:#ff198b}blockquote,.devportal-callout{border-style:solid;border-radius:0;border-width:1px;border-left-width:4px;padding:5px;padding-left:25px;page-break-inside:avoid}.devportal-callout>strong:first-child{display:block;page-break-after:avoid}.devportal-callout.tip>strong:first-child:before{content:"";font-family:FontAwesome;margin-left:-20px;padding-right:5px}.devportal-callout.note>strong:first-child:before{content:"";font-family:FontAwesome;margin-left:-20px;padding-right:5px}.devportal-callout.caution>strong:first-child:before{content:"";font-family:FontAwesome;margin-left:-20px;padding-right:5px}.devportal-callout.warning>strong:first-child:before{content:"";font-family:FontAwesome;margin-left:-20px;padding-right:5px}@media(min-width: 992px){.card,.cta-card,.q-wrapper{box-shadow:0px 5px 40px #000}}#code-samples-deck .card{box-shadow:none;margin:0 2rem 5rem 2rem}#code-samples-deck .card-header{border-bottom:none;background-color:unset}#code-samples-deck .card-footer{background-color:unset;font-size:initial}#code-samples-deck .card-deck .card a{margin:0 2.5rem 5rem 2.5rem}#code-samples-deck .circled-logo{margin-left:-15px}@media(min-width: 992px){.code-contribute{width:75vw;position:relative;left:20%;right:20%;margin-left:-30vw;margin-right:-30vw}}.contribute::before{content:"";display:block;height:2px;width:100%;position:absolute;top:0}.contribute .dot{height:16px;width:16px;background-color:#111112;border-radius:50%;border:3px solid #fbff4c;display:inline-block;position:absolute;top:-7px;left:-6px}@media(max-width: 991.98px){.contribute::before{left:0;height:100%;width:2px;top:15px}.contribute .dot{top:5px;left:-6px}}.contribute_1::before{background:-webkit-linear-gradient(left, #feff01, #ff2d9a)}.contribute_1 .dot{border-color:#fbff4c}.contribute_2::before{background:-webkit-linear-gradient(left, #ff2d9a, #e24cff)}.contribute_2 .dot{border-color:#ff198b}.contribute_3::before{background:-webkit-linear-gradient(left, #e24cff, #9a52ff)}.contribute_3 .dot{border-color:#c000e5}.contribute_4::before{background:-webkit-linear-gradient(left, #9a52ff, #9a52ff)}.contribute_4 .dot{border-color:#9a52ff}.card>img{border-radius:8px 8px 0 0}.card-body>p,.card-body>p:not(:last-child){padding:0;margin-bottom:2rem}main a.card{border:0;color:#fff}a.card:hover,a:hover .card-new,[data-component-name="Markdown/Markdown"] a.card{text-decoration:none !important}a.card:hover h3{text-decoration:underline}.circled-logo{background-color:#454549;border-radius:50%;padding:.65rem;width:50px;height:50px;margin-bottom:.75rem;border:2px solid #232325}.circled-logo img{width:26px;height:26px;display:inline-block}.light .circled-logo{border:none}.cols-of-1{grid-template-rows:repeat(1, min-content)}.cols-of-2{grid-template-rows:repeat(2, min-content)}.cols-of-3{grid-template-rows:repeat(3, min-content)}.cols-of-4{grid-template-rows:repeat(4, min-content)}.cols-of-5{grid-template-rows:repeat(5, min-content)}.cols-of-6{grid-template-rows:repeat(6, min-content)}.cols-of-7{grid-template-rows:repeat(7, min-content)}.cols-of-8{grid-template-rows:repeat(8, min-content)}.cols-of-9{grid-template-rows:repeat(9, min-content)}.cols-of-10{grid-template-rows:repeat(10, min-content)}.card-deck{margin-top:2.5rem;margin-left:-1.25rem;margin-right:-1.25rem;margin-bottom:5rem;flex-grow:1}@media(min-width: 992px){.card-deck{margin-top:5rem}}.card-deck .card{flex-grow:0;flex-basis:100%;margin:0 1.25rem 5rem 1.25rem;background-position:bottom;background-repeat:no-repeat;background-size:contain}.card-deck.row-cols-1 .card{flex-basis:100%;min-height:264px}@media(min-width: 768px){.card-deck.row-cols-1 .card{min-height:347px}}@media(min-width: 1200px){.card-deck.row-cols-lg-3{margin-left:-2.5rem;margin-right:-2.5rem}}@media(min-width: 992px){.card-deck.row-cols-lg-3 .card{flex-basis:calc(33% - 2.5rem )}}@media(min-width: 1200px){.card-deck.row-cols-lg-3 .card{margin:0 2.5rem 5rem 2.5rem;flex-basis:calc(33% - 5rem )}}@media(min-width: 992px){.card-deck.row-cols-lg-4 .card{flex-basis:calc(25% - 2.5rem )}}.card-deck a.card{transition:all .35s ease-out;cursor:pointer}.card-deck a.card:hover{-webkit-transform:translateY(-16px);-moz-transform:translateY(-16px);-ms-transform:translateY(-16px);-o-transform:translateY(-16px);transform:translateY(-16px)}.card-deck .card-footer{font-size:0;padding:1rem;background-position:bottom;background-repeat:no-repeat;background-size:cover;border-top:0}@media(max-width: 991.98px){.card-deck{margin-top:2rem}.card-deck .card-body{padding:1rem}.card-deck.row-cols-1 .card{margin:.75rem .75rem 5rem .75rem;max-width:calc(100% - 1.5rem)}.card-deck.row-cols-2 .card{margin:.75rem;max-width:calc(50% - 1.5rem)}}main article .card-grid.card-grid-3xN{grid-gap:1rem}main article .card-grid.card-grid-3xN .card{padding:0;margin:.5rem}main article .card-grid.card-grid-3xN .card .card-body{padding:1rem}main article .card-grid.card-grid-3xN .card .card-icon-container{width:50px;height:50px;background:#454549;display:flex;justify-content:center;align-items:center;border-radius:50%;margin-bottom:12px}main article .card-grid.card-grid-3xN .card .card-icon-container img{width:70%;height:70%}main article .card-grid.card-grid-3xN .card .card-footer{font-size:0;line-height:0;padding:1rem;background-position:bottom;background-repeat:no-repeat;background-size:cover;border-top:0}main article .card-grid.card-grid-3xN:nth-of-type(0) .card:nth-child(1) .card-footer{background-image:url("../img/cards/3-col-light-blue.svg")}main article .card-grid.card-grid-3xN:nth-of-type(0) .card:nth-child(2) .card-footer{background-image:url("../img/cards/3-col-green-purple.svg")}main article .card-grid.card-grid-3xN:nth-of-type(0) .card:nth-child(3) .card-footer{background-image:url("../img/cards/3col-purple-blue-green.svg")}main article .card-grid.card-grid-3xN:nth-of-type(0) .card:nth-child(4) .card-footer{background-image:url("../img/cards/3col-magenta-3.svg")}main article .card-grid.card-grid-3xN:nth-of-type(0) .card:nth-child(5) .card-footer{background-image:url("../img/cards/3col-green-blue.svg")}main article .card-grid.card-grid-3xN:nth-of-type(0) .card:nth-child(6) .card-footer{background-image:url("../img/cards/3col-light-blue-2.svg")}main article .card-grid.card-grid-3xN:nth-of-type(0) .card:nth-child(7) .card-footer{background-image:url("../img/cards/3col-orange-yellow-2.svg")}main article .card-grid.card-grid-3xN:nth-of-type(0) .card:nth-child(8) .card-footer{background-image:url("../img/cards/3col-pink-purple.svg")}main article .card-grid.card-grid-3xN:nth-of-type(0) .card:nth-child(9) .card-footer{background-image:url("../img/cards/3col-green-purple.svg")}main article .card-grid.card-grid-3xN:nth-of-type(1) .card:nth-child(1) .card-footer{background-image:url("../img/cards/3col-magenta.svg")}main article .card-grid.card-grid-3xN:nth-of-type(1) .card:nth-child(2) .card-footer{background-image:url("../img/cards/3-col-purple2.svg")}main article .card-grid.card-grid-3xN:nth-of-type(1) .card:nth-child(3) .card-footer{background-image:url("../img/cards/3col-neutral-blue.svg")}main article .card-grid.card-grid-3xN:nth-of-type(1) .card:nth-child(4) .card-footer{background-image:url("../img/cards/3col-purple-blue.svg")}main article .card-grid.card-grid-3xN:nth-of-type(1) .card:nth-child(5) .card-footer{background-image:url("../img/cards/3-col-pink2.svg")}main article .card-grid.card-grid-3xN:nth-of-type(1) .card:nth-child(6) .card-footer{background-image:url("../img/cards/3col-orange.svg")}main article .card-grid.card-grid-3xN:nth-of-type(1) .card:nth-child(7) .card-footer{background-image:url("../img/cards/3col-light-green.svg")}main article .card-grid.card-grid-3xN:nth-of-type(1) .card:nth-child(8) .card-footer{background-image:url("../img/cards/3col-blue-light-blue.svg")}main article .card-grid.card-grid-3xN:nth-of-type(1) .card:nth-child(9) .card-footer{background-image:url("../img/cards/3col-green.svg")}main article .card-grid.card-grid-3xN:nth-of-type(2) .card:nth-child(1) .card-footer{background-image:url("../img/cards/3-col-dark-blue.svg")}main article .card-grid.card-grid-3xN:nth-of-type(2) .card:nth-child(2) .card-footer{background-image:url("../img/cards/3-col-purple.svg")}main article .card-grid.card-grid-3xN:nth-of-type(2) .card:nth-child(3) .card-footer{background-image:url("../img/cards/3col-magenta-2.svg")}main article .card-grid.card-grid-3xN:nth-of-type(2) .card:nth-child(4) .card-footer{background-image:url("../img/cards/3-col-light-blue-2.svg")}main article .card-grid.card-grid-3xN:nth-of-type(2) .card:nth-child(5) .card-footer{background-image:url("../img/cards/3col-light-blue.svg")}main article .card-grid.card-grid-3xN:nth-of-type(2) .card:nth-child(6) .card-footer{background-image:url("../img/cards/3col-magenta-orange.svg")}main article .card-grid.card-grid-3xN:nth-of-type(2) .card:nth-child(7) .card-footer{background-image:url("../img/cards/3-col-purple-blue.svg")}main article .card-grid.card-grid-3xN:nth-of-type(2) .card:nth-child(8) .card-footer{background-image:url("../img/cards/3col-orange-3.svg")}main article .card-grid.card-grid-3xN:nth-of-type(2) .card:nth-child(9) .card-footer{background-image:url("../img/cards/3col-blue-green.svg")}main article .card-grid.card-grid-3xN:nth-of-type(3) .card:nth-child(1) .card-footer{background-image:url("../img/cards/3-col-green.svg")}main article .card-grid.card-grid-3xN:nth-of-type(3) .card:nth-child(2) .card-footer{background-image:url("../img/cards/3-col-orange.svg")}main article .card-grid.card-grid-3xN:nth-of-type(3) .card:nth-child(3) .card-footer{background-image:url("../img/cards/3col-purple-blue-2.svg")}main article .card-grid.card-grid-3xN:nth-of-type(3) .card:nth-child(4) .card-footer{background-image:url("../img/cards/3col-purple.svg")}main article .card-grid.card-grid-3xN:nth-of-type(3) .card:nth-child(5) .card-footer{background-image:url("../img/cards/3-col-light-blue2.svg")}main article .card-grid.card-grid-3xN:nth-of-type(3) .card:nth-child(6) .card-footer{background-image:url("../img/cards/3col-orange-yellow.svg")}main article .card-grid.card-grid-3xN:nth-of-type(3) .card:nth-child(7) .card-footer{background-image:url("../img/cards/3-col-pink.svg")}main article .card-grid.card-grid-3xN:nth-of-type(3) .card:nth-child(8) .card-footer{background-image:url("../img/cards/3col-green-2.svg")}main article .card-grid.card-grid-3xN:nth-of-type(3) .card:nth-child(9) .card-footer{background-image:url("../img/cards/3col-orange-2.svg")}.cta-card{text-align:center;background-color:#232325}.card-subhead{font-size:1rem;margin-bottom:.25rem;margin-top:.5rem}.breadcrumbs-wrap{position:relative;z-index:11;padding:0 0 2rem 0}.interactive-block .breadcrumbs-wrap{padding:0}.breadcrumb-item+.breadcrumb-item:before{content:"";font-family:FontAwesome;padding-right:5px}.breadcrumbs-wrap .breadcrumb{padding:0;margin-bottom:0;font-size:.833em}.breadcrumb-item a{color:#e0e0e1;text-decoration:none}.breadcrumb-item a:hover{color:#9a52ff}.landing .container-fluid.section-hero,.landing .section-hero.container-sm,.landing .section-hero.container-md,.landing .section-hero.container-lg,.landing .section-hero.container-xl{padding:48px 0}.landing article .children-display>ul>li,.landing article .curated-links>ul>li{margin-top:24px}.landing article .children-display li a,.landing article .curated-links li a{font-weight:700;font-size:1.25rem;text-decoration:none}.landing article .children-display li a:hover,.landing article .curated-links li a:hover{text-decoration:underline}.landing section:first-of-type h1:first-child{margin-top:0;line-height:1.2}.landing .level-1,.landing .level-2{margin-top:0}.landing .curated-links ul,.landing .curated-links ol,.landing .children-display ul{padding-left:0;margin-bottom:0}.landing .section-hero .blurb{font-size:1.2em;line-height:1.71em}.landing .doc-index .level-1{list-style-type:disc;margin-left:1rem}.landing .doc-index .level-2{list-style-type:circle;margin-left:2rem}.landing .doc-index .level-3{list-style-type:square;margin-left:3rem}.landing .doc-index .level-4{list-style-type:disc;margin-left:4rem}.landing .doc-index .level-5{margin-left:5rem;list-style-type:circle}.landing .doc-index .level-6{margin-left:6rem;list-style-type:square}.landing p a,.landing h5 a{color:#9a52ff;font-weight:600}.landing p a:hover,.landing h5 a:hover{text-decoration:underline}.landing .display-4{margin-bottom:1.5rem}.landing #test-net-servers h3{font-size:1.4rem;font-weight:700}.landing #test-net-servers pre{overflow-x:auto}.landing section:first-of-type{border-top-width:0}.landing #main_content_wrapper{border-bottom:none;margin-top:80px}.landing .marketing-wrapper{margin-top:10rem;margin-bottom:6rem}@media(max-width: 767.98px){.landing .marketing-wrapper{margin-top:6rem}}.landing .nav .nav-link{padding:1rem 2rem 1rem 0;color:#e0e0e1;border-bottom:1px solid #232325;position:relative}.landing .nav .nav-link:hover{color:#9a52ff}.landing .nav .nav-link:not(.external-link)::after{content:" ";background-image:url(../img/icons/arrow-right-purple.svg);background-repeat:no-repeat;background-position:center;background-size:1rem;position:absolute;right:0;width:1.5rem;height:1.5rem;transition:all .2s ease}.landing .nav .nav-link:not(.external-link):hover::after{animation:arrowDance2 1.2s infinite}.landing .nav .nav-link.external-link::after{content:" ";background-image:url(../img/icons/arrow-up-right.svg);background-repeat:no-repeat;position:absolute;background-position:center;background-size:.75rem;right:7px;width:1.5rem;height:1.5rem;transition:all .2s ease}.landing .nav .nav-link.external-link:hover::after{animation:arrowDanceDiag 1.2s infinite}.landing .card-body .nav .nav-link{border-bottom:1px solid #454549}.alert-info{color:#fff;background-color:#006bb2;border-width:0}.alert-info a{text-decoration:underline;color:#fff}.alert-info a:hover{color:#e0e0e1}.highlight-subcard{margin:1.5rem 0;padding:1rem;border:2px solid #fff;background:#111112}.interactive-block-inner{border:1px dashed #9a52ff;padding:10px;margin:5px}.interactive-block-ui>button{margin:10px 0}.interactive-block input:invalid{box-shadow:inset 0 0 5px 5px #ff198b}.interactive-block .breadcrumbs-wrap{margin-bottom:11px}.interactive-block .breadcrumb-item{margin-top:6px}.interactive-block .breadcrumb-item a{text-decoration:none}.interactive-block .breadcrumb-item.current a{font-weight:bold}.interactive-block .breadcrumb-item.active a{color:#b480ff}.interactive-block .breadcrumb-item.disabled a{color:#454549}.interactive-block .breadcrumb-item.done a:after{content:"";font-family:FontAwesome;color:#e0e0e1;padding-right:5px;padding-left:5px}.interactive-block .waiting-for-tx{word-break:break-word}.ws-console{height:200px;overflow:auto}.status{cursor:help;padding:1px 2px;font-weight:normal;text-indent:0}.status.not_enabled{color:#faff19}.status.removed{color:#ff198b}.labels-wrap ul::before{content:"";font-family:FontAwesome;font-size:1.5rem}.labels-wrap .list-inline-item{margin-top:.5rem}.pg-category{color:#a2a2a4}.pg-category::after{content:"";font-family:FontAwesome;padding-left:5px}.label{border-radius:100px;border-width:0;padding:.5rem 1rem;font-weight:bold;text-decoration:none !important;text-align:center;white-space:nowrap;background-color:#111112;color:#c1c1c2}.label .badge-pill{width:24px;height:24px;border-radius:50px;margin-left:.5rem;font-weight:400;line-height:23px;font-size:16px;padding:0;margin-top:-2px}html.light .label{background-color:#e0e0e1;color:#232325}html.light .label .badge-pill{color:#e0e0e1;background-color:#232325}html.light .label:hover{background-color:#c1c1c2;color:#111112}html.light .label:hover .badge-pill{color:#c1c1c2;background-color:#111112}.label .badge-pill{color:#111112;background-color:#c1c1c2}.label:hover{color:#e0e0e1;background-color:#232325}.label:hover .badge-pill{color:#232325;background-color:#e0e0e1}.label.label-accounts,.label.label-payment-channels,.label.label-amm,.label.label-アカウント,.label.label-payment-channel,.label.label-use-infrastructure,.label.label-use-security,.label.blog-category-development,.label.chip-indigo{background-color:#20004c;color:#b480ff}.label.label-accounts .badge-pill,.label.label-payment-channels .badge-pill,.label.label-amm .badge-pill,.label.label-アカウント .badge-pill,.label.label-payment-channel .badge-pill,.label.label-use-infrastructure .badge-pill,.label.label-use-security .badge-pill,.label.blog-category-development .badge-pill,.label.chip-indigo .badge-pill{color:#20004c;background-color:#b480ff}.label.label-accounts:hover,.label.label-payment-channels:hover,.label.label-amm:hover,.label.label-アカウント:hover,.label.label-payment-channel:hover,.label.label-use-infrastructure:hover,.label.label-use-security:hover,.label.blog-category-development:hover,.label.chip-indigo:hover{background-color:#350080;color:#d2b2ff}.label.label-accounts:hover .badge-pill,.label.label-payment-channels:hover .badge-pill,.label.label-amm:hover .badge-pill,.label.label-アカウント:hover .badge-pill,.label.label-payment-channel:hover .badge-pill,.label.label-use-infrastructure:hover .badge-pill,.label.label-use-security:hover .badge-pill,.label.blog-category-development:hover .badge-pill,.label.chip-indigo:hover .badge-pill{color:#350080;background-color:#d2b2ff}html.light .label.label-accounts,html.light .label.label-payment-channels,html.light .label.label-amm,html.light .label.label-アカウント,html.light .label.label-payment-channel,html.light .label.label-use-infrastructure,html.light .label.label-use-security,html.light .label.blog-category-development,html.light .label.chip-indigo{background-color:#d2b2ff;color:#350080}html.light .label.label-accounts .badge-pill,html.light .label.label-payment-channels .badge-pill,html.light .label.label-amm .badge-pill,html.light .label.label-アカウント .badge-pill,html.light .label.label-payment-channel .badge-pill,html.light .label.label-use-infrastructure .badge-pill,html.light .label.label-use-security .badge-pill,html.light .label.blog-category-development .badge-pill,html.light .label.chip-indigo .badge-pill{color:#d2b2ff;background-color:#350080}html.light .label.label-accounts:hover,html.light .label.label-payment-channels:hover,html.light .label.label-amm:hover,html.light .label.label-アカウント:hover,html.light .label.label-payment-channel:hover,html.light .label.label-use-infrastructure:hover,html.light .label.label-use-security:hover,html.light .label.blog-category-development:hover,html.light .label.chip-indigo:hover{background-color:#b480ff;color:#20004c}html.light .label.label-accounts:hover .badge-pill,html.light .label.label-payment-channels:hover .badge-pill,html.light .label.label-amm:hover .badge-pill,html.light .label.label-アカウント:hover .badge-pill,html.light .label.label-payment-channel:hover .badge-pill,html.light .label.label-use-infrastructure:hover .badge-pill,html.light .label.label-use-security:hover .badge-pill,html.light .label.blog-category-development:hover .badge-pill,html.light .label.chip-indigo:hover .badge-pill{color:#b480ff;background-color:#20004c}.label.label-blockchain,.label.label-xrp,.label.label-ブロックチェーン,.label.label-non-fungible-tokens-nfts,.label.label-use-nfts,.label.blog-category-release_notes,.label.blog-category-features,.label.chip-green{background-color:#145c35;color:#84f0b6}.label.label-blockchain .badge-pill,.label.label-xrp .badge-pill,.label.label-ブロックチェーン .badge-pill,.label.label-non-fungible-tokens-nfts .badge-pill,.label.label-use-nfts .badge-pill,.label.blog-category-release_notes .badge-pill,.label.blog-category-features .badge-pill,.label.chip-green .badge-pill{background-color:#84f0b6;color:#145c35}.label.label-blockchain:hover,.label.label-xrp:hover,.label.label-ブロックチェーン:hover,.label.label-non-fungible-tokens-nfts:hover,.label.label-use-nfts:hover,.label.blog-category-release_notes:hover,.label.blog-category-features:hover,.label.chip-green:hover{background-color:#1e8a50;color:#adf5ce}.label.label-blockchain:hover .badge-pill,.label.label-xrp:hover .badge-pill,.label.label-ブロックチェーン:hover .badge-pill,.label.label-non-fungible-tokens-nfts:hover .badge-pill,.label.label-use-nfts:hover .badge-pill,.label.blog-category-release_notes:hover .badge-pill,.label.blog-category-features:hover .badge-pill,.label.chip-green:hover .badge-pill{background-color:#adf5ce;color:#1e8a50}html.light .label.label-blockchain,html.light .label.label-xrp,html.light .label.label-ブロックチェーン,html.light .label.label-non-fungible-tokens-nfts,html.light .label.label-use-nfts,html.light .label.blog-category-release_notes,html.light .label.blog-category-features,html.light .label.chip-green{background-color:#adf5ce;color:#145c35}html.light .label.label-blockchain .badge-pill,html.light .label.label-xrp .badge-pill,html.light .label.label-ブロックチェーン .badge-pill,html.light .label.label-non-fungible-tokens-nfts .badge-pill,html.light .label.label-use-nfts .badge-pill,html.light .label.blog-category-release_notes .badge-pill,html.light .label.blog-category-features .badge-pill,html.light .label.chip-green .badge-pill{color:#adf5ce;background-color:#145c35}html.light .label.label-blockchain:hover,html.light .label.label-xrp:hover,html.light .label.label-ブロックチェーン:hover,html.light .label.label-non-fungible-tokens-nfts:hover,html.light .label.label-use-nfts:hover,html.light .label.blog-category-release_notes:hover,html.light .label.blog-category-features:hover,html.light .label.chip-green:hover{background-color:#84f0b6;color:#000}html.light .label.label-blockchain:hover .badge-pill,html.light .label.label-xrp:hover .badge-pill,html.light .label.label-ブロックチェーン:hover .badge-pill,html.light .label.label-non-fungible-tokens-nfts:hover .badge-pill,html.light .label.label-use-nfts:hover .badge-pill,html.light .label.blog-category-release_notes:hover .badge-pill,html.light .label.blog-category-features:hover .badge-pill,html.light .label.chip-green:hover .badge-pill{color:#84f0b6;background-color:#000}.label.label-checks,.label.label-core-server,.label.label-コアサーバ,.label.label-use-interoperability,.label.label-use-web_monetization,.label.blog-category-gateway_bulletins,.label.chip-purple{background-color:#40004c;color:#ea80ff}.label.label-checks .badge-pill,.label.label-core-server .badge-pill,.label.label-コアサーバ .badge-pill,.label.label-use-interoperability .badge-pill,.label.label-use-web_monetization .badge-pill,.label.blog-category-gateway_bulletins .badge-pill,.label.chip-purple .badge-pill{background-color:#ea80ff;color:#40004c}.label.label-checks:hover,.label.label-core-server:hover,.label.label-コアサーバ:hover,.label.label-use-interoperability:hover,.label.label-use-web_monetization:hover,.label.blog-category-gateway_bulletins:hover,.label.chip-purple:hover{background-color:#6b0080;color:#f2b2ff}.label.label-checks:hover .badge-pill,.label.label-core-server:hover .badge-pill,.label.label-コアサーバ:hover .badge-pill,.label.label-use-interoperability:hover .badge-pill,.label.label-use-web_monetization:hover .badge-pill,.label.blog-category-gateway_bulletins:hover .badge-pill,.label.chip-purple:hover .badge-pill{background-color:#f2b2ff;color:#6b0080}html.light .label.label-checks,html.light .label.label-core-server,html.light .label.label-コアサーバ,html.light .label.label-use-interoperability,html.light .label.label-use-web_monetization,html.light .label.blog-category-gateway_bulletins,html.light .label.chip-purple{background-color:#f2b2ff;color:#6b0080}html.light .label.label-checks .badge-pill,html.light .label.label-core-server .badge-pill,html.light .label.label-コアサーバ .badge-pill,html.light .label.label-use-interoperability .badge-pill,html.light .label.label-use-web_monetization .badge-pill,html.light .label.blog-category-gateway_bulletins .badge-pill,html.light .label.chip-purple .badge-pill{color:#f2b2ff;background-color:#6b0080}html.light .label.label-checks:hover,html.light .label.label-core-server:hover,html.light .label.label-コアサーバ:hover,html.light .label.label-use-interoperability:hover,html.light .label.label-use-web_monetization:hover,html.light .label.blog-category-gateway_bulletins:hover,html.light .label.chip-purple:hover{background-color:#ea80ff;color:#40004c}html.light .label.label-checks:hover .badge-pill,html.light .label.label-core-server:hover .badge-pill,html.light .label.label-コアサーバ:hover .badge-pill,html.light .label.label-use-interoperability:hover .badge-pill,html.light .label.label-use-web_monetization:hover .badge-pill,html.light .label.blog-category-gateway_bulletins:hover .badge-pill,html.light .label.chip-purple:hover .badge-pill{color:#ea80ff;background-color:#40004c}.label.label-cross-currency,.label.label-security,.label.label-クロスカレンシー,.label.label-セキュリティ,.label.label-use-gaming,.label.label-use-defi,.label.blog-category-amendments,.label.chip-yellow{background-color:#4b4c00;color:#fcff80}.label.label-cross-currency .badge-pill,.label.label-security .badge-pill,.label.label-クロスカレンシー .badge-pill,.label.label-セキュリティ .badge-pill,.label.label-use-gaming .badge-pill,.label.label-use-defi .badge-pill,.label.blog-category-amendments .badge-pill,.label.chip-yellow .badge-pill{background-color:#fcff80;color:#4b4c00}.label.label-cross-currency:hover,.label.label-security:hover,.label.label-クロスカレンシー:hover,.label.label-セキュリティ:hover,.label.label-use-gaming:hover,.label.label-use-defi:hover,.label.blog-category-amendments:hover,.label.chip-yellow:hover{background-color:#7d8000;color:#fdffb2}.label.label-cross-currency:hover .badge-pill,.label.label-security:hover .badge-pill,.label.label-クロスカレンシー:hover .badge-pill,.label.label-セキュリティ:hover .badge-pill,.label.label-use-gaming:hover .badge-pill,.label.label-use-defi:hover .badge-pill,.label.blog-category-amendments:hover .badge-pill,.label.chip-yellow:hover .badge-pill{background-color:#fdffb2;color:#7d8000}html.light .label.label-cross-currency,html.light .label.label-security,html.light .label.label-クロスカレンシー,html.light .label.label-セキュリティ,html.light .label.label-use-gaming,html.light .label.label-use-defi,html.light .label.blog-category-amendments,html.light .label.chip-yellow{background-color:#fdffb2;color:#4b4c00}html.light .label.label-cross-currency .badge-pill,html.light .label.label-security .badge-pill,html.light .label.label-クロスカレンシー .badge-pill,html.light .label.label-セキュリティ .badge-pill,html.light .label.label-use-gaming .badge-pill,html.light .label.label-use-defi .badge-pill,html.light .label.blog-category-amendments .badge-pill,html.light .label.chip-yellow .badge-pill{color:#fdffb2;background-color:#4b4c00}html.light .label.label-cross-currency:hover,html.light .label.label-security:hover,html.light .label.label-クロスカレンシー:hover,html.light .label.label-セキュリティ:hover,html.light .label.label-use-gaming:hover,html.light .label.label-use-defi:hover,html.light .label.blog-category-amendments:hover,html.light .label.chip-yellow:hover{background-color:#fcff80;color:#4b4c00}html.light .label.label-cross-currency:hover .badge-pill,html.light .label.label-security:hover .badge-pill,html.light .label.label-クロスカレンシー:hover .badge-pill,html.light .label.label-セキュリティ:hover .badge-pill,html.light .label.label-use-gaming:hover .badge-pill,html.light .label.label-use-defi:hover .badge-pill,html.light .label.blog-category-amendments:hover .badge-pill,html.light .label.chip-yellow:hover .badge-pill{color:#fcff80;background-color:#4b4c00}.label.label-decentralized-exchange,.label.label-smart-contracts,.label.label-transaction-sending,.label.label-分散型取引所,.label.label-スマートコントラクト,.label.label-トランザクション送信,.label.label-use-developer_tooling,.label.label-use-payments,.label.blog-category-developer_reflections,.label.blog-category-case_study,.label.chip-blue{background-color:#002e4c;color:#80ccff}.label.label-decentralized-exchange .badge-pill,.label.label-smart-contracts .badge-pill,.label.label-transaction-sending .badge-pill,.label.label-分散型取引所 .badge-pill,.label.label-スマートコントラクト .badge-pill,.label.label-トランザクション送信 .badge-pill,.label.label-use-developer_tooling .badge-pill,.label.label-use-payments .badge-pill,.label.blog-category-developer_reflections .badge-pill,.label.blog-category-case_study .badge-pill,.label.chip-blue .badge-pill{background-color:#80ccff;color:#002e4c}.label.label-decentralized-exchange:hover,.label.label-smart-contracts:hover,.label.label-transaction-sending:hover,.label.label-分散型取引所:hover,.label.label-スマートコントラクト:hover,.label.label-トランザクション送信:hover,.label.label-use-developer_tooling:hover,.label.label-use-payments:hover,.label.blog-category-developer_reflections:hover,.label.blog-category-case_study:hover,.label.chip-blue:hover{background-color:#004d80;color:#b2e0ff}.label.label-decentralized-exchange:hover .badge-pill,.label.label-smart-contracts:hover .badge-pill,.label.label-transaction-sending:hover .badge-pill,.label.label-分散型取引所:hover .badge-pill,.label.label-スマートコントラクト:hover .badge-pill,.label.label-トランザクション送信:hover .badge-pill,.label.label-use-developer_tooling:hover .badge-pill,.label.label-use-payments:hover .badge-pill,.label.blog-category-developer_reflections:hover .badge-pill,.label.blog-category-case_study:hover .badge-pill,.label.chip-blue:hover .badge-pill{background-color:#b2e0ff;color:#004d80}html.light .label.label-decentralized-exchange,html.light .label.label-smart-contracts,html.light .label.label-transaction-sending,html.light .label.label-分散型取引所,html.light .label.label-スマートコントラクト,html.light .label.label-トランザクション送信,html.light .label.label-use-developer_tooling,html.light .label.label-use-payments,html.light .label.blog-category-developer_reflections,html.light .label.blog-category-case_study,html.light .label.chip-blue{background-color:#b2e0ff;color:#004d80}html.light .label.label-decentralized-exchange .badge-pill,html.light .label.label-smart-contracts .badge-pill,html.light .label.label-transaction-sending .badge-pill,html.light .label.label-分散型取引所 .badge-pill,html.light .label.label-スマートコントラクト .badge-pill,html.light .label.label-トランザクション送信 .badge-pill,html.light .label.label-use-developer_tooling .badge-pill,html.light .label.label-use-payments .badge-pill,html.light .label.blog-category-developer_reflections .badge-pill,html.light .label.blog-category-case_study .badge-pill,html.light .label.chip-blue .badge-pill{color:#b2e0ff;background-color:#004d80}html.light .label.label-decentralized-exchange:hover,html.light .label.label-smart-contracts:hover,html.light .label.label-transaction-sending:hover,html.light .label.label-分散型取引所:hover,html.light .label.label-スマートコントラクト:hover,html.light .label.label-トランザクション送信:hover,html.light .label.label-use-developer_tooling:hover,html.light .label.label-use-payments:hover,html.light .label.blog-category-developer_reflections:hover,html.light .label.blog-category-case_study:hover,html.light .label.chip-blue:hover{background-color:#80ccff;color:#002e4c}html.light .label.label-decentralized-exchange:hover .badge-pill,html.light .label.label-smart-contracts:hover .badge-pill,html.light .label.label-transaction-sending:hover .badge-pill,html.light .label.label-分散型取引所:hover .badge-pill,html.light .label.label-スマートコントラクト:hover .badge-pill,html.light .label.label-トランザクション送信:hover .badge-pill,html.light .label.label-use-developer_tooling:hover .badge-pill,html.light .label.label-use-payments:hover .badge-pill,html.light .label.blog-category-developer_reflections:hover .badge-pill,html.light .label.blog-category-case_study:hover .badge-pill,html.light .label.chip-blue:hover .badge-pill{color:#80ccff;background-color:#002e4c}.label.label-escrow,.label.label-tokens,.label.label-development,.label.label-トークン,.label.label-開発,.label.label-use-wallet,.label.label-use-sustainability,.label.blog-category-advisories,.label.chip-orange{background-color:#4c1a00;color:#ffaa80}.label.label-escrow .badge-pill,.label.label-tokens .badge-pill,.label.label-development .badge-pill,.label.label-トークン .badge-pill,.label.label-開発 .badge-pill,.label.label-use-wallet .badge-pill,.label.label-use-sustainability .badge-pill,.label.blog-category-advisories .badge-pill,.label.chip-orange .badge-pill{background-color:#ffaa80;color:#4c1a00}.label.label-escrow:hover,.label.label-tokens:hover,.label.label-development:hover,.label.label-トークン:hover,.label.label-開発:hover,.label.label-use-wallet:hover,.label.label-use-sustainability:hover,.label.blog-category-advisories:hover,.label.chip-orange:hover{background-color:#802b00;color:#ffccb2}.label.label-escrow:hover .badge-pill,.label.label-tokens:hover .badge-pill,.label.label-development:hover .badge-pill,.label.label-トークン:hover .badge-pill,.label.label-開発:hover .badge-pill,.label.label-use-wallet:hover .badge-pill,.label.label-use-sustainability:hover .badge-pill,.label.blog-category-advisories:hover .badge-pill,.label.chip-orange:hover .badge-pill{background-color:#ffccb2;color:#802b00}html.light .label.label-escrow,html.light .label.label-tokens,html.light .label.label-development,html.light .label.label-トークン,html.light .label.label-開発,html.light .label.label-use-wallet,html.light .label.label-use-sustainability,html.light .label.blog-category-advisories,html.light .label.chip-orange{background-color:#ffccb2;color:#802b00}html.light .label.label-escrow .badge-pill,html.light .label.label-tokens .badge-pill,html.light .label.label-development .badge-pill,html.light .label.label-トークン .badge-pill,html.light .label.label-開発 .badge-pill,html.light .label.label-use-wallet .badge-pill,html.light .label.label-use-sustainability .badge-pill,html.light .label.blog-category-advisories .badge-pill,html.light .label.chip-orange .badge-pill{color:#ffccb2;background-color:#802b00}html.light .label.label-escrow:hover,html.light .label.label-tokens:hover,html.light .label.label-development:hover,html.light .label.label-トークン:hover,html.light .label.label-開発:hover,html.light .label.label-use-wallet:hover,html.light .label.label-use-sustainability:hover,html.light .label.blog-category-advisories:hover,html.light .label.chip-orange:hover{background-color:#ffaa80;color:#4c1a00}html.light .label.label-escrow:hover .badge-pill,html.light .label.label-tokens:hover .badge-pill,html.light .label.label-development:hover .badge-pill,html.light .label.label-トークン:hover .badge-pill,html.light .label.label-開発:hover .badge-pill,html.light .label.label-use-wallet:hover .badge-pill,html.light .label.label-use-sustainability:hover .badge-pill,html.light .label.blog-category-advisories:hover .badge-pill,html.light .label.chip-orange:hover .badge-pill{color:#ffaa80;background-color:#4c1a00}.label.label-fees,.label.label-payments,.label.label-data-retention,.label.label-手数料,.label.label-支払い,.label.label-データ保持,.label.label-use-exchanges,.label.label-use-custody,.label.blog-category-security,.label.chip-magenta{background-color:#4c0026;color:#ff80bf}.label.label-fees .badge-pill,.label.label-payments .badge-pill,.label.label-data-retention .badge-pill,.label.label-手数料 .badge-pill,.label.label-支払い .badge-pill,.label.label-データ保持 .badge-pill,.label.label-use-exchanges .badge-pill,.label.label-use-custody .badge-pill,.label.blog-category-security .badge-pill,.label.chip-magenta .badge-pill{background-color:#ff80bf;color:#4c0026}.label.label-fees:hover,.label.label-payments:hover,.label.label-data-retention:hover,.label.label-手数料:hover,.label.label-支払い:hover,.label.label-データ保持:hover,.label.label-use-exchanges:hover,.label.label-use-custody:hover,.label.blog-category-security:hover,.label.chip-magenta:hover{background-color:#80003f;color:#ffb2d8}.label.label-fees:hover .badge-pill,.label.label-payments:hover .badge-pill,.label.label-data-retention:hover .badge-pill,.label.label-手数料:hover .badge-pill,.label.label-支払い:hover .badge-pill,.label.label-データ保持:hover .badge-pill,.label.label-use-exchanges:hover .badge-pill,.label.label-use-custody:hover .badge-pill,.label.blog-category-security:hover .badge-pill,.label.chip-magenta:hover .badge-pill{background-color:#ffb2d8;color:#80003f}html.light .label.label-fees,html.light .label.label-payments,html.light .label.label-data-retention,html.light .label.label-手数料,html.light .label.label-支払い,html.light .label.label-データ保持,html.light .label.label-use-exchanges,html.light .label.label-use-custody,html.light .label.blog-category-security,html.light .label.chip-magenta{background-color:#ffb2d8;color:#80003f}html.light .label.label-fees .badge-pill,html.light .label.label-payments .badge-pill,html.light .label.label-data-retention .badge-pill,html.light .label.label-手数料 .badge-pill,html.light .label.label-支払い .badge-pill,html.light .label.label-データ保持 .badge-pill,html.light .label.label-use-exchanges .badge-pill,html.light .label.label-use-custody .badge-pill,html.light .label.blog-category-security .badge-pill,html.light .label.chip-magenta .badge-pill{color:#ffb2d8;background-color:#80003f}html.light .label.label-fees:hover,html.light .label.label-payments:hover,html.light .label.label-data-retention:hover,html.light .label.label-手数料:hover,html.light .label.label-支払い:hover,html.light .label.label-データ保持:hover,html.light .label.label-use-exchanges:hover,html.light .label.label-use-custody:hover,html.light .label.blog-category-security:hover,html.light .label.chip-magenta:hover{background-color:#ff80bf;color:#4c0026}html.light .label.label-fees:hover .badge-pill,html.light .label.label-payments:hover .badge-pill,html.light .label.label-data-retention:hover .badge-pill,html.light .label.label-手数料:hover .badge-pill,html.light .label.label-支払い:hover .badge-pill,html.light .label.label-データ保持:hover .badge-pill,html.light .label.label-use-exchanges:hover .badge-pill,html.light .label.label-use-custody:hover .badge-pill,html.light .label.blog-category-security:hover .badge-pill,html.light .label.chip-magenta:hover .badge-pill{color:#ff80bf;background-color:#4c0026}.tag-cloud .list-inline-item{margin-top:1.5rem}.command-list-wrapper{position:sticky;top:calc(var(--navbar-height) + var(--toc-offset-top));max-height:calc(100vh - var(--navbar-height) - var(--toc-offset-top));overflow-y:auto;width:var(--toc-width)}#tx-sender-history .list-group-item{font-size:small;color:#454549}.response-metadata .timestamp{color:#454549}.throbber{width:24px;height:24px}#connection-status .card-body{border-left:0}#connection-status-item.active{background-color:#32e685;border-color:#32e685}.api-input-area .btn-group>.send-request.btn{border-bottom-right-radius:4px;border-top-right-radius:4px}#tx-sender-history ul{overflow:auto;height:220px;border:1px solid #e0e0e1}.progress small{margin-top:.5rem}.page-tx-sender .input-group .form-control,.interactive-block-ui .input-group .form-control{flex:1 1 20%;height:auto}.bootstrap-growl{max-width:90vw !important;overflow:hidden}.list-group-item-danger,#tx-sender-history .list-group-item-danger{background-color:#ff80bf;color:#000}.list-group-item-danger a,#tx-sender-history .list-group-item-danger a{color:#000}.list-group-item-danger a:hover,#tx-sender-history .list-group-item-danger a:hover{color:#000;text-decoration:underline}.rpc-tool .main h1::before,.rpc-tool .main h2::before,.rpc-tool .main h3::before{display:none}.form-text a{text-decoration:underline}@media print{.multicode>div{display:block !important}.multicode>em,.multicode>p>em{display:block !important;page-break-after:avoid}.multicode>p{display:block !important}.code_toggler{display:none}pre{white-space:pre-wrap;max-height:none !important;overflow:visible;page-break-inside:auto;word-wrap:break-word}pre code{white-space:pre-wrap !important;color:#22252b !important}code{white-space:pre-wrap !important;color:#22252b !important}.codehilite .n,.codehilite .na,.codehilite .nb,.codehilite .nc,.codehilite .nd,.codehilite .ne,.codehilite .nf,.codehilite .ni,.codehilite .nl,.codehilite .nn,.codehilite .nt,.codehilite .nv,.codehilite .nx,.codehilite .bp,.codehilite .fm,.codehilite .py{color:#22252b}article a[title=Source]{float:none}header,footer,aside{display:none !important}.navbar{display:none !important}article,#main_content_body{position:static;display:block;width:auto;height:auto;color:#000 !important;max-width:100%;overflow:visible !important}body{overflow:visible;background:#fff}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{color:#000}.interactive-block{display:none}.container{margin-top:1rem !important}}#home-purple{position:absolute;left:0;top:-400px}#home-green{position:absolute;right:-3px;top:60px}.sidelinks:hover{color:#9a52ff}.sidelinks.active{color:#9a52ff;font-weight:bold}.page-home #home-hero-container{display:flex;justify-content:center;align-items:center;width:100%;padding-top:54.8%;overflow:hidden}.page-home #home-hero-graphic{width:100%;max-width:856px;height:auto;object-fit:cover;content:url("../img/home-hero.svg");margin-bottom:24px;display:block;margin-left:auto;margin-right:auto}@media(min-width: 992px){.page-home #home-hero-graphic{min-height:470px}}@media(max-width: 991px)and (min-width: 540px){.page-home #home-hero-graphic{min-height:250px}}@media(max-width: 539px){.page-home #home-hero-graphic{min-height:170px}}.page-home #benefits-list #public{content:url("../img/icons/public.svg")}.page-home #benefits-list #streamlined{content:url("../img/icons/streamlined.svg")}.page-home #benefits-list #performance{content:url("../img/icons/performance.svg")}.page-home #benefits-list #low-cost{content:url("../img/icons/low-cost.svg")}.page-home #benefits-list #community{content:url("../img/icons/community.svg")}.page-home #benefits-list #reliability{content:url("../img/icons/reliability.svg")}.page-home #advanced-features .card:nth-child(1) .card-footer{background-image:url("../img/cards/3col-pink-purple.svg")}.page-home #advanced-features .card:nth-child(2) .card-footer{background-image:url("../img/cards/3col-neutral-blue.svg")}.page-home #advanced-features .card:nth-child(3) .card-footer{background-image:url("../img/cards/3col-light-green.svg")}.page-home #advanced-features .card:nth-child(4) .card-footer{background-image:url("../img/cards/3col-orange.svg")}.page-home #advanced-features .card:nth-child(5) .card-footer{background-image:url("../img/cards/3col-purple-blue-2.svg")}.page-home #get-started .card:nth-child(1) .card-footer{background-image:url("../img/cards/3col-orange-yellow.svg")}.page-home #get-started .card:nth-child(2) .card-footer{background-image:url("../img/cards/3col-magenta-orange.svg")}.page-home #get-started .card:nth-child(3) .card-footer{background-image:url("../img/cards/3col-purple-blue-green.svg")}.page-home #get-started .card:nth-child(4) .card-footer{background-image:url("../img/cards/3col-light-blue.svg")}.page-home #get-started .card:nth-child(5) .card-footer{background-image:url("../img/cards/3col-green-blue.svg")}#embedded-payments-list #digital-wallets{content:url("../img/uses/payments/digital-wallet.png")}#embedded-payments-list #cross-border-remittance{content:url("../img/uses/payments/cross-border.png")}#embedded-payments-list #regulated-foreign-exchange{content:url("../img/uses/payments/regulated.png")}#embedded-payments-list #merchant-settlement{content:url("../img/uses/payments/merchant-settlement.png")}#embedded-payments-list #b2b-payment-rails{content:url("../img/uses/payments/b2b-payment.png")}#embedded-payments-list #compliance-first-payment-acceptance{content:url("../img/uses/payments/compliance.png")}.cta{position:absolute}.cta-top-left{top:0;left:0}.cta-bottom-right{bottom:0;right:0}.landing-bg{opacity:.6}@media(min-width: 768px){.landing-bg{opacity:1}}.landing-builtin-bg::before{content:"";position:absolute;top:0;left:0;background-repeat:no-repeat;background-position-x:left;background-position-y:top;opacity:.6}@media(min-width: 768px){.landing-builtin-bg::before{opacity:1}}#xrp-overview-blue{position:absolute;top:0;left:0}@media(max-width: 767.98px){#xrp-mark-overview{height:40px;margin-top:16px}}#wallets #wallet-ledger{content:url("../img/wallets/ledger.svg")}#wallets #wallet-secalot{content:url("../img/wallets/secalot.svg")}#wallets #wallet-trezor{content:url("../img/wallets/trezor.svg")}#wallets #wallet-xumm{content:url("../img/wallets/xumm.svg")}#wallets #wallet-trust{content:url("../img/wallets/trust.svg")}#wallets #wallet-gatehub{content:url("../img/wallets/gatehub.svg")}#wallets #wallet-towo{content:url("../img/wallets/towo.svg")}#wallets #wallet-keystone{content:url("../img/wallets/keystone.svg")}#wallets #wallet-dcent{content:url("../img/wallets/dcent.svg")}#wallets #wallet-coin{content:url("../img/wallets/coin.svg")}#wallets #wallet-gem{content:url("../img/wallets/gem.svg")}#wallets #wallet-joey{content:url("../img/wallets/joey.svg")}#wallets #wallet-bitfrost{content:url("../img/wallets/bitfrost.png")}#wallets #wallet-crossmark{content:url("../img/wallets/crossmark.png")}#top-exchanges #exch-bitstamp{content:url("../img/exchanges/bitstamp.svg")}#top-exchanges #exch-kraken{content:url("../img/exchanges/kraken.svg")}#top-exchanges #exch-cex-io{content:url("../img/exchanges/cex-io.svg")}#top-exchanges #exch-liquid{content:url("../img/exchanges/liquid.svg")}#top-exchanges #exch-lmax{content:url("../img/exchanges/lmax.svg")}#top-exchanges #exch-bitfinex{content:url("../img/exchanges/bitfinex.svg")}#top-exchanges #exch-etoro{content:url("../img/exchanges/etoro.svg")}#top-exchanges #exch-bittrex{content:url("../img/exchanges/bittrex.png")}#top-exchanges #exch-currency-com{content:url("../img/exchanges/currency-com.png")}#top-exchanges #exch-ftx{content:url("../img/exchanges/ftx.png")}#xrpl-overview-purple{position:absolute;top:40px;left:0}@media(max-width: 767.98px){#xrpl-overview-purple{top:0;left:-20vw}}#xrpl-overview-orange{position:absolute;top:80px;right:-4px}#use-cases-orange{position:absolute;top:-480px;right:-4px}#validator-graphic{content:url(../img/validators.svg)}.page-uses .container-new{padding-left:16px;padding-right:16px}.page-uses h1{font-size:42px}.page-uses::before{transform:scaleX(-1);background-image:url(../img/backgrounds/use-cases-blue.svg)}.page-uses .card-grid{grid-gap:8px}.page-uses .card-grid img{max-height:40px}.page-uses .modal{padding:0}.page-uses .modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#000;background-clip:padding-box;border:none;border-radius:0;box-shadow:none;outline:none;background:#111112}.page-uses .modal-header{border:none;background:#111112;box-shadow:0px 1px 2px #000}.page-uses .modal-header .cancel .chevron{transform:rotate(90deg)}.page-uses .modal-header .apply .chevron{transform:rotate(-90deg)}.page-uses .modal-footer{border:none;background:#111112;box-shadow:0px -1px 2px #000;align-items:unset;padding:.75rem;flex-direction:column;flex-wrap:wrap}.page-uses .card-title{margin-bottom:.5rem;line-height:26px}.page-uses .card-uses{padding:16px;margin:0;text-decoration:none;transition:all .35s ease-out}.page-uses .card-uses:hover{text-decoration:none;color:#e0e0e1;transform:translateY(-16px);text-decoration:none}.page-uses .card-body{background:#232325;border-radius:8px;height:100%;padding:32px;margin:0}.page-uses .page-events .label{font-weight:normal;font-size:14px;margin:0;padding-left:26px}.page-uses .category-header{font-weight:bold;color:#c1c1c2}.page-uses .light .category-checkbox label{color:#fff}.page-uses .category-checkbox{display:flex;align-items:center}.page-uses .category-checkbox label{font-weight:normal;font-size:14px;margin:0;padding-left:26px}.page-uses .category_count{margin-left:8px;padding:2px 16px;width:24px;height:16px;background:#350080;border-radius:100px;font-weight:600;font-size:12px;line-height:16px;color:#b480ff}.page-uses .category_sidebar{position:sticky;top:10px}.page-uses #infrastructure{content:url("../img/icons/usecases/ic_infrastructure.png")}.page-uses #developer_tooling{content:url("../img/icons/usecases/ic_developer_tooling.png")}.page-uses #interoperability{content:url("../img/icons/usecases/ic_interoperability.png")}.page-uses #wallet{content:url("../img/icons/usecases/ic_wallet.png")}.page-uses #nfts{content:url("../img/icons/usecases/ic_nfts.png")}.page-uses #exchanges{content:url("../img/icons/usecases/ic_exchanges.png")}.page-uses #gaming{content:url("../img/icons/usecases/ic_gaming.png")}.page-uses #security{content:url("../img/icons/usecases/ic_security.png")}.page-uses #payments{content:url("../img/icons/usecases/ic_payments.png")}.page-uses #web_monetization{content:url("../img/icons/usecases/ic_web_monetization.png")}.page-uses #sustainability{content:url("../img/icons/usecases/ic_sustainability.png")}.page-uses #cbdc{content:url("../img/icons/usecases/ic_cbdc.png")}.page-uses #other{content:url("../img/icons/usecases/ic_other.png")}.page-uses #carbon_markets{content:url("../img/icons/usecases/ic_carbon_markets.png")}.page-uses #custody{content:url("../img/icons/usecases/ic_custody.png")}.page-uses #defi{content:url("../img/icons/usecases/ic_defi.png")}.page-uses #use_case_companies_list #bithomp .biz-logo{max-height:40px;content:url("../img/uses/bithomp.svg")}.page-uses #use_case_companies_list #onthedex .biz-logo{max-height:40px;content:url("../img/uses/onthedex.svg")}.page-uses #use_case_companies_list #gatehub .biz-logo{max-height:40px;content:url("../img/uses/gatehub.svg")}.page-uses #use_case_companies_list #towo-labs .biz-logo{max-height:40px;content:url("../img/uses/towo-labs.svg")}.page-uses #use_case_companies_list #xrp-toolkit .biz-logo{max-height:40px;content:url("../img/uses/xrp-toolkit.svg")}.page-uses #use_case_companies_list #xrpl-org-ledger-explorer .biz-logo{max-height:40px;content:url("../img/uses/xrpl-org-ledger-explorer.svg")}.page-uses #use_case_companies_list #xrpl-rosetta .biz-logo{max-height:40px;content:url("../img/uses/xrpl-rosetta.svg")}.page-uses #use_case_companies_list #xrpscan .biz-logo{max-height:40px;content:url("../img/uses/xrpscan.svg")}.page-uses #use_case_companies_list #evernode .biz-logo{max-height:40px;content:url("../img/uses/evernode.svg")}.page-uses #use_case_companies_list #cryptum .biz-logo{max-height:40px;content:url("../img/uses/cryptum.svg")}.page-uses #use_case_companies_list #x-tokenize .biz-logo{max-height:40px;content:url("../img/uses/x-tokenize.svg")}.page-uses #use_case_companies_list #multichain .biz-logo{max-height:40px;content:url("../img/uses/multichain.svg")}.page-uses #use_case_companies_list #xumm-wallet .biz-logo{max-height:40px;content:url("../img/uses/xumm-wallet.svg")}.page-uses #use_case_companies_list #gem-wallet .biz-logo{max-height:40px;content:url("../img/uses/gem-wallet.svg")}.page-uses #use_case_companies_list #aesthetes .biz-logo{max-height:40px;content:url("../img/uses/aesthetes.svg")}.page-uses #use_case_companies_list #audiotarky .biz-logo{max-height:40px;content:url("../img/uses/audiotarky.svg")}.page-uses #use_case_companies_list #xrp-cafe .biz-logo{max-height:40px;content:url("../img/uses/xrp-cafe.svg")}.page-uses #use_case_companies_list #nft-master .biz-logo{max-height:40px;content:url("../img/uses/nft-master.svg")}.page-uses #use_case_companies_list #onxrp .biz-logo{max-height:40px;content:url("../img/uses/onxrp.svg")}.page-uses #use_case_companies_list #peerkat .biz-logo{max-height:40px;content:url("../img/uses/peerkat.svg")}.page-uses #use_case_companies_list #sologenic-nft .biz-logo{max-height:40px;content:url("../img/uses/sologenic-nft.svg")}.page-uses #use_case_companies_list #sologenic-dex .biz-logo{max-height:40px;content:url("../img/uses/sologenic-dex.svg")}.page-uses #use_case_companies_list #xp-market .biz-logo{max-height:40px;content:url("../img/uses/xp-market.svg")}.page-uses #use_case_companies_list #ledger-city .biz-logo{max-height:40px;content:url("../img/uses/ledger-city.svg")}.page-uses #use_case_companies_list #forte .biz-logo{max-height:40px;content:url("../img/uses/forte.svg")}.page-uses #use_case_companies_list #futureverse .biz-logo{max-height:40px;content:url("../img/uses/futureverse.svg")}.page-uses #use_case_companies_list #first-ledger-bot .biz-logo{max-height:40px;content:url("../img/uses/first-ledger-bot.svg")}.page-uses #use_case_companies_list #moai-finance .biz-logo{max-height:40px;content:url("../img/uses/moai-finance.svg")}.page-uses #use_case_companies_list #orchestra-finance .biz-logo{max-height:40px;content:url("../img/uses/orchestra-finance.svg")}.page-uses #use_case_companies_list #anchain-ai .biz-logo{max-height:40px;content:url("../img/uses/anchain-ai.svg")}.page-uses #use_case_companies_list #coil .biz-logo{max-height:40px;content:url("../img/uses/coil.svg")}.page-uses #use_case_companies_list #carbonland-trust .biz-logo{max-height:40px;content:url("../img/uses/carbonland-trust.svg")}.page-uses #use_case_companies_list #casino-coin .biz-logo{max-height:40px;content:url("../img/uses/casino-coin.svg")}.page-uses #use_case_companies_list #bitgo .biz-logo{max-height:40px;content:url("../img/uses/bitgo.svg")}.page-uses #use_case_companies_list #bitpay .biz-logo{max-height:40px;content:url("../img/uses/bitpay.svg")}.page-uses #use_case_companies_list #ripples-on-demand-liquidity .biz-logo{max-height:40px;content:url("../img/uses/ripples-on-demand-liquidity.svg")}.page-uses #use_case_companies_list #ripples-cbdc-platform .biz-logo{max-height:40px;content:url("../img/uses/ripples-cbdc-platform.svg")}.page-uses #use_case_companies_list #momento .biz-logo{max-height:40px;content:url("../img/uses/momento.svg")}.page-uses #use_case_companies_list #zerpmon .biz-logo{max-height:40px;content:url("../img/uses/zerpmon.png")}.page-uses #use_case_companies_list #joey-wallet .biz-logo{max-height:40px;content:url("../img/uses/joey-wallet.svg")}.page-uses #use_case_companies_list #Crossmark .biz-logo{max-height:40px;content:url("../img/uses/Crossmark.png")}.page-uses #use_case_companies_list #Edge .biz-logo{max-height:40px;content:url("../img/uses/Edge.png")}.page-uses .orchestra-finance{max-height:52px !important;margin:0 !important}.page-uses #use_case_companies_list #first-ledger-bot .biz-logo{max-height:81px !important}.page-uses #use_case_companies_list #zerpmon .biz-logo{max-height:81px !important}@media(min-width: 992px){.page-uses h1{font-size:62px}.page-uses .container-new{padding-left:64px;padding-right:64px}.page-uses .card-grid img{max-height:48px}.page-uses .card-grid{grid-gap:48px}.page-uses .card-uses{padding:24px}}#history-orange{position:absolute;top:0;right:-4px}#history-purple{position:absolute;top:-480px;left:-4px}.hidden-section{overflow:hidden;visibility:hidden;height:0}.hidden-section.show{overflow:auto;visibility:visible;height:auto}#impact-green{position:absolute;top:0;left:-4px;rotate:180deg}#impact-purple{position:absolute;top:100px;right:-4px}#impact-magenta{position:absolute;top:100px;right:-4px}#foundation-magenta{position:absolute;top:0px;left:0px}#foundation-orange{position:absolute;top:40px;right:-4px}.page-impact #map-light{display:none}.page-impact #map-dark{display:block}.page-impact .connect-list #connect-01{content:url("../img/impact/connect-01.svg")}.page-impact .connect-list #connect-02{content:url("../img/impact/connect-02.svg")}.page-impact .connect-list #connect-03{content:url("../img/impact/connect-03.svg")}.page-impact .connect-list #connect-04{content:url("../img/impact/connect-04.svg")}.page-funding .funding-list #funding-01{content:url("../img/funding/funding-01.svg")}.page-funding .funding-list #funding-02{content:url("../img/funding/funding-02.svg")}.page-funding .funding-list #funding-03{content:url("../img/funding/funding-03.svg")}.page-funding .funding-list #funding-04{content:url("../img/funding/funding-04.svg")}.page-funding #funding-orange{position:absolute;top:132px;left:-4px}@media(min-width: 992px){.page-funding .funding-box{min-height:200px}}.page-ambassadors #benefits-list #benefits-01{content:url("../img/ambassadors/benefits-01.svg")}.page-ambassadors #benefits-list #benefits-02{content:url("../img/ambassadors/benefits-02.svg")}.page-ambassadors #benefits-list #benefits-03{content:url("../img/ambassadors/benefits-03.svg")}.page-ambassadors #benefits-list #benefits-04{content:url("../img/ambassadors/benefits-04.svg")}.page-ambassadors #benefits-list #benefits-05{content:url("../img/ambassadors/benefits-05.svg")}.page-ambassadors #benefits-list #benefits-06{content:url("../img/ambassadors/benefits-06.svg")}.page-ambassadors #eligibility-list #eligibility-01{content:url("../img/ambassadors/eligibility-01.svg")}.page-ambassadors #eligibility-list #eligibility-02{content:url("../img/ambassadors/eligibility-02.svg")}.page-ambassadors #eligibility-list #eligibility-03{content:url("../img/ambassadors/eligibility-03.svg")}.page-ambassadors #eligibility-list #eligibility-04{content:url("../img/ambassadors/eligibility-04.svg")}.page-ambassadors #eligibility-list #eligibility-05{content:url("../img/ambassadors/eligibility-05.svg")}.page-ambassadors .btn{padding:.75rem}.page-ambassadors #container-scroll{height:160px;position:relative;overflow:hidden;margin-top:80px;margin-bottom:64px}.page-ambassadors .photobanner{position:absolute;top:0px;left:0px;overflow:hidden;white-space:nowrap;animation:bannermove 40s linear infinite}.page-ambassadors .photobanner-bottom{top:112px}.page-ambassadors .photobanner img{margin:0 .5em}@keyframes bannermove{0%{transform:translate(0, 0)}100%{transform:translate(-50%, 0)}}.page-ambassadors #carouselSlidesOnly{height:392px;margin-bottom:40px}@media(min-width: 992px){.page-ambassadors #carouselSlidesOnly{height:320px;margin-bottom:104px}}.page-ambassadors h6{font-size:1.25rem}.page-ambassadors .btn-arrow::after{display:inline-block;content:url(../img/icons/arrow-right-purple.svg);vertical-align:middle;padding-left:8px;transition:transform .3s ease-out}.page-ambassadors .btn-arrow:hover{text-decoration:none;background:none !important;border:none}.page-ambassadors .btn-arrow:hover::after{background-position:left 4px bottom 4px;transform:translateX(4px)}.autoscroll-content{animation:autoscroll 15s linear infinite;white-space:nowrap;overflow:hidden;max-width:300px}#community-magenta{position:absolute;top:0px;left:0px}#community-purple{position:absolute;top:160px;right:0px}.page-events #event-hero-image{height:100%;min-height:209px;background:url(../img/events/event-hero1@2x.png);background-size:contain;background-repeat:no-repeat;background-position:center}.page-events #events-orange{position:absolute;top:0px;right:0px}.page-events .event-hero{color:#f5f5f7}.page-events .event-hero p{font-weight:500;font-size:24px;line-height:32px}.page-events .event-save-date{color:#fff;font-weight:bold;font-size:20px;line-height:26px}.page-events .event-small-gray{color:#e0e0e1}.page-events .btn{padding:.75rem}.page-events .event-card{max-width:311px;margin:32px auto;transition:all .35s ease-out;position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-clip:border-box;background-color:#232325;box-shadow:0px 5px 40px #000;border:1px solid rgba(0,0,0,.125);border-radius:8px;font-size:16px;line-height:24px;color:#e0e0e1}.page-events .event-card .event-card-header{position:relative;height:176px;background-size:contain !important;width:100%;border-radius:8px 8px 0 0}.page-events .event-card .event-card-title{position:absolute;bottom:32px;padding:0 32px;color:#f5f5f7;font-weight:bold;font-size:20px;line-height:28px}.page-events .event-card .event-card-body{padding:32px}.page-events .event-card .event-card-footer{padding:0 32px 32px}.page-events .event-card .event-card-footer .icon::before{height:24px;width:24px;content:"";margin-right:8px;background-size:contain;background-repeat:no-repeat}.page-events .event-card .icon-date::before{background:url(../img/events/event-date.svg)}.page-events .event-card .icon-location::before{background:url(../img/events/event-location.svg)}@media(min-width: 992px){.page-events .event-card{max-width:347px;margin:32px}.page-events .event-card-header{height:197px !important}}.page-events a.event-card:hover{transform:translateY(-16px);text-decoration:none}.page-events label{margin:0;padding-left:8px;color:#fff}.page-events .events-filter h6{font-size:16px}.page-events .events-filter{height:20px;width:20px}.page-events .events-filter[type=checkbox]::before{position:relative;display:block;width:20px;height:20px;content:"";background:#111112;border-radius:4px;border-width:2px;border-style:solid;border-color:#a2a2a4}.page-events .events-filter[type=checkbox]::after{position:relative;display:block;top:-20px;width:20px;height:20px;content:"";background-repeat:no-repeat;background-position:center;border-radius:4px;border-width:2px;border-style:solid;border-color:#a2a2a4}.page-events .events-filter[type=checkbox]:checked::before{background:#111112;border:none;border-radius:0}.page-events .events-filter[type=checkbox]:checked::after{background-image:url(../img/events/event-check.svg);background-repeat:no-repeat;background-position:center;background-color:#7919ff;border-width:2px;border-style:solid;border-color:#7919ff;border-radius:4px}.page-events .events-filter[type=checkbox]:not(:disabled):checked:hover::after{background-image:url(../img/events/event-check.svg);background-repeat:no-repeat;background-position:center;border-width:2px;border-style:solid;border-color:#5f00e5;border-radius:4px}.page-events .events-filter[type=checkbox]:not(:disabled):hover::before{background:#111112;border:none;border-radius:0}.page-events .events-filter[type=checkbox]:not(:disabled):hover::after{background:#111112;border:none;border-width:2px;border-style:solid;border-color:#5f00e5;border-radius:4px}#find-us-on-platforms .card-deck .card:nth-child(1) .card-footer{background-image:url(../img/cards/4col-light-blue-3.svg)}#find-us-on-platforms .card-deck .card:nth-child(2) .card-footer{background-image:url(../img/cards/4col-purple-blue-2.svg)}#find-us-on-platforms .card-deck .card:nth-child(3) .card-footer{background-image:url(../img/cards/4col-magenta-3.svg)}#find-us-on-platforms .card-deck .card:nth-child(4) .card-footer{background-image:url(../img/cards/4col-green-2.svg)}#find-us-on-platforms .card-deck .card:nth-child(5) .card-footer{background-image:url(../img/cards/4col-orange-yellow-2.svg)}#find-us-on-platforms .card-deck .card:nth-child(6) .card-footer{background-image:url(../img/cards/4col-blue-purple.svg)}#find-us-on-platforms .card-deck .card:nth-child(7) .card-footer{background-image:url(../img/cards/4col-yellow-2.svg)}#find-us-on-platforms .card-deck .card:nth-child(8) .card-footer{background-image:url(../img/cards/4col-orange-2.svg)}#find-us-on-platforms .card-deck .card{margin-bottom:2.5rem}.page-faq::before{background-image:url(../img/backgrounds/faq-bg.svg)}@media(min-width: 768px){.page-faq::before{background-size:contain}}@media(min-width: 992px){.page-faq article{max-width:704px;margin-left:auto;margin-right:auto}}.page-faq article h6:first-of-type{color:#32e685;margin-bottom:1rem;margin-top:2.5rem;font-size:1.25rem;line-height:26px;text-align:center}.page-faq article h6:first-of-type .hover_anchor{display:none}@media(min-width: 992px){.page-faq article h6:first-of-type{margin-top:6.5rem}}.page-faq article h1:first-of-type{font-size:2.625rem;line-height:1.2;margin-top:0;margin-bottom:5rem;text-align:center}.page-faq article h1:first-of-type .hover_anchor{display:none}@media(min-width: 992px){.page-faq article h1:first-of-type{font-size:3.875rem;margin-bottom:13rem}}.page-faq h2{margin-top:13rem;font-size:2rem;line-height:2.375rem;text-align:center;font-weight:700}.page-faq .q-wrapper,.mini-faq .q-wrapper{background:#232325;border-radius:4px;padding:2rem;padding-right:3rem;margin-bottom:1.5rem;position:relative;z-index:5;width:100%;transform:translateY(0%)}.page-faq .q-wrapper p a,.mini-faq .q-wrapper p a{text-decoration:none;font-weight:600;color:#9a52ff}.page-faq .q-wrapper p a:hover,.mini-faq .q-wrapper p a:hover{text-decoration:underline}.page-faq .q-wrapper h4,.mini-faq .q-wrapper h4{font-size:1.25rem;line-height:1.625rem;margin-top:0}.page-faq .q-wrapper h4::before,.mini-faq .q-wrapper h4::before{display:block;content:" ";margin-top:-40px;height:40px;visibility:hidden;pointer-events:none}.page-faq .q-wrapper h4>a,.mini-faq .q-wrapper h4>a{text-decoration:none}.page-faq .q-wrapper h4>a:hover,.mini-faq .q-wrapper h4>a:hover{text-decoration:underline;color:#fff}@media(max-width: 991.98px){.page-faq .q-wrapper h4,.mini-faq .q-wrapper h4{font-size:1rem;line-height:1.5rem}}.page-faq .q-wrapper h4 .chevron,.mini-faq .q-wrapper h4 .chevron{position:absolute;top:40px;right:2rem}.page-docs-index::before{background-position-x:right}.page-docs-index .center-search .input-group-text{height:56px;padding:.75rem .75rem .75rem 1rem;line-height:2rem}.page-docs-index .center-search .ds-input{height:56px;padding:.75rem 1rem .75rem .5rem}.page-docs-index #software-and-sdks .card-deck .card:nth-child(1) .card-footer{background-image:url(../img/cards/4col-green.svg)}.page-docs-index #software-and-sdks .card-deck .card:nth-child(2) .card-footer{background-image:url(../img/cards/4col-light-blue.svg)}.page-docs-index #software-and-sdks .card-deck .card:nth-child(3) .card-footer{background-image:url(../img/cards/4col-orange.svg)}.page-docs-index #software-and-sdks .card-deck .card:nth-child(4) .card-footer{background-image:url(../img/cards/4col-yellow.svg)}.page-docs-index #doc-types .card-deck .card:nth-child(1) .card-footer{background-image:url(../img/cards/4col-orange-yellow.svg)}.page-docs-index #doc-types .card-deck .card:nth-child(2) .card-footer{background-image:url(../img/cards/4col-magenta.svg)}.page-docs-index #doc-types .card-deck .card:nth-child(3) .card-footer{background-image:url(../img/cards/4col-blue-green.svg)}.page-docs-index #doc-types .card-deck .card:nth-child(4) .card-footer{background-image:url(../img/cards/4col-light-blue-2.svg)}.page-docs-index #docs-hot-topic .longform{margin-top:2.5rem}.page-docs-index #community-heading,.page-community #community-heading{padding-top:25rem;margin-top:0px}@media(max-width: 768px){.page-docs-index #community-heading,.page-community #community-heading{padding-top:31rem}}.page-docs-index #community-heading .hero-title,.page-community #community-heading .hero-title{position:absolute;bottom:0;left:50%;transform:translateX(-50%)}@media(min-width: 992px){.page-docs-index #community-heading,.page-community #community-heading{padding-left:0}.page-docs-index #community-heading .hero-title,.page-community #community-heading .hero-title{min-width:max-content;bottom:-83%}}.page-docs-index #community-heading .parallax,.page-community #community-heading .parallax{position:absolute;-webkit-transition:all .1s ease;-moz-transition:all .1s ease;-ms-transition:all .1s ease;-o-transition:all .1s ease;transition:all .1s ease}.page-docs-index #community-heading .one,.page-community #community-heading .one{top:160px;left:0%;opacity:.4}.page-docs-index #community-heading .two,.page-community #community-heading .two{top:130px;left:56%;height:320px;opacity:.4}.page-docs-index #community-heading .three,.page-community #community-heading .three{top:145px;right:16%;height:67px}.page-docs-index #community-heading .four,.page-community #community-heading .four{top:374px;left:8%;width:107px}.page-docs-index #community-heading .five,.page-community #community-heading .five{top:476px;width:152px;height:102px;right:5%;opacity:.4}.page-docs-index #run-a-network-node .card-deck .card:nth-child(1) .card-footer,.page-community #run-a-network-node .card-deck .card:nth-child(1) .card-footer{background-image:url(../img/cards/4col-yellow-2.svg)}.page-docs-index #run-a-network-node .card-deck .card:nth-child(2) .card-footer,.page-community #run-a-network-node .card-deck .card:nth-child(2) .card-footer{background-image:url(../img/cards/4col-purple.svg)}.page-docs-index #run-a-network-node .card-deck .card:nth-child(3) .card-footer,.page-community #run-a-network-node .card-deck .card:nth-child(3) .card-footer{background-image:url(../img/cards/4col-magenta-2.svg)}.page-docs-index #run-a-network-node .card-deck .card:nth-child(4) .card-footer,.page-community #run-a-network-node .card-deck .card:nth-child(4) .card-footer{background-image:url(../img/cards/4col-light-green.svg)}.page-docs-index #run-a-network-node,.page-community #run-a-network-node{padding-bottom:5rem}@media(min-width: 768px){.page-docs-index #run-a-network-node,.page-community #run-a-network-node{padding-top:104px;padding-bottom:104px}}.page-docs-index #run-a-network-node .text-cards,.page-community #run-a-network-node .text-cards{grid-gap:40px}.page-docs-index #run-a-network-node .text-cards h6::before,.page-community #run-a-network-node .text-cards h6::before{margin-top:0;height:unset}.page-docs-index #run-a-network-node .text-cards a,.page-community #run-a-network-node .text-cards a{font-size:1.25rem;line-height:26px;color:#fff;font-weight:bold}.page-docs-index #run-a-network-node .text-cards a:hover,.page-community #run-a-network-node .text-cards a:hover{text-decoration:none;background:none !important}.page-docs-index #run-a-network-node .text-cards .btn-arrow::after,.page-community #run-a-network-node .text-cards .btn-arrow::after{display:inline-block;content:url(../img/icons/arrow-right-purple.svg);vertical-align:middle;padding-left:8px;-webkit-transition:transform .3s ease-out;-moz-transition:transform .3s ease-out;-ms-transition:transform .3s ease-out;-o-transition:transform .3s ease-out;transition:transform .3s ease-out}.page-docs-index #xrpl-grants,.page-community #xrpl-grants{padding-bottom:5rem}@media(min-width: 768px){.page-docs-index #xrpl-grants,.page-community #xrpl-grants{padding-top:104px;padding-bottom:104px}}.page-docs-index #xrpl-blog,.page-community #xrpl-blog{padding-bottom:5rem}@media(min-width: 768px){.page-docs-index #xrpl-blog,.page-community #xrpl-blog{padding-top:104px;padding-bottom:104px}}.page-docs-index #xrpl-events,.page-community #xrpl-events{padding-bottom:5rem}@media(min-width: 768px){.page-docs-index #xrpl-events,.page-community #xrpl-events{padding-top:104px;padding-bottom:104px}}.page-docs-index #xrpl-careers,.page-community #xrpl-careers{padding-bottom:5rem}@media(min-width: 768px){.page-docs-index #xrpl-careers,.page-community #xrpl-careers{padding-top:104px;padding-bottom:104px}}.page-docs-index #xrpl-design-assets,.page-community #xrpl-design-assets{padding-bottom:5rem}@media(min-width: 768px){.page-docs-index #xrpl-design-assets,.page-community #xrpl-design-assets{padding-top:104px;padding-bottom:208px}}.page-community #platform-github{content:url("../img/logos/github.svg")}.page-community #platform-twitch{content:url("../img/logos/twitch.svg")}.page-community #platform-stack-overflow{content:url("../img/logos/stack-overflow.svg")}.page-community #platform-twitter{content:url("../img/logos/twitter.svg")}.page-community #platform-discord{content:url("../img/logos/discord.svg")}.page-community #platform-youtube{content:url("../img/logos/youtube.svg")}.page-community #platform-devto{content:url("../img/logos/devto.svg")}.page-references #refs-types .card-deck .card:nth-child(1) .card-footer{background-image:url(../img/cards/3col-orange-2.svg)}.page-references #refs-types .card-deck .card:nth-child(2) .card-footer{background-image:url(../img/cards/3col-green-2.svg)}.page-references #refs-types .card-deck .card:nth-child(3) .card-footer{background-image:url(../img/cards/3col-magenta.svg)}.page-references #xrpl-protocol .card-deck .card:nth-child(1) .card-footer{background-image:url(../img/cards/4col-light-blue-4.svg)}.page-references #xrpl-protocol .card-deck .card:nth-child(2) .card-footer{background-image:url(../img/cards/4col-blue-green-2.svg)}.page-references #xrpl-protocol .card-deck .card:nth-child(3) .card-footer{background-image:url(../img/cards/4col-yellow-3.svg)}.page-references #xrpl-protocol .card-deck .card:nth-child(4) .card-footer{background-image:url(../img/cards/4col-purple-blue.svg)}.page-dev-tools #xrp-explorer .card-footer{background-image:url("../img/cards/3-col-orange.svg")}.page-dev-tools #bithomp-explorer .card-footer{background-image:url("../img/cards/3-col-light-blue.svg")}.page-dev-tools #xrpscan .card-footer{background-image:url("../img/cards/3-col-pink.svg")}.page-dev-tools #token-list .card-footer{background-image:url("../img/cards/3-col-pink2.svg")}.page-dev-tools #websocket .card-footer{background-image:url("../img/cards/3-col-purple2.svg")}.page-dev-tools #rpc .card-footer{background-image:url("../img/cards/3-col-green.svg")}.page-dev-tools #technical-explorer .card-footer{background-image:url("../img/cards/3-col-purple-blue.svg")}.page-dev-tools #faucets .card-footer{background-image:url("../img/cards/3-col-pink2.svg")}.page-dev-tools #trasaction-sender .card-footer{background-image:url("../img/cards/3-col-light-blue2.svg")}.page-dev-tools #domain .card-footer{background-image:url("../img/cards/3-col-green-purple.svg")}.page-dev-tools #xrp-ledger .card-footer{background-image:url("../img/cards/3-col-dark-blue.svg")}.page-dev-tools #binary-visualizer .card-footer{background-image:url("../img/cards/3-col-purple-blue.svg")}.page-dev-tools #token-metadata-lookup .card-footer{background-image:url("../img/cards/3-col-pink-purple.svg")}.page-dev-tools .nav-link{color:#a2a2a4;background-color:#111112;border-top:none;border-left:none;border-right:none;border-bottom-color:#454549}@media(max-width: 767.98px){.page-dev-tools .nav-tabs{display:flex;list-style:none;margin-left:0;padding-left:0;justify-content:space-between}.page-dev-tools .nav-item{display:inline-flex;width:auto;list-style:outside none none}.page-dev-tools .nav-link{display:inline-flex;width:auto;padding:1em 1em}}.page-dev-tools .nav-link.active{border-bottom-color:#9a52ff;color:#fff;font-weight:bold}.page-dev-tools .nav-tabs{border-bottom:1px solid #454549}.page-dev-tools .btn{padding:.75rem}html.light .page-dev-tools .nav-link{background-color:#f5f5f7}html.light .page-dev-tools .nav-link.active{border-bottom-color:#9a52ff;color:#000;font-weight:bold}html.light .page-dev-tools .nav-link{color:#000}html.light .page-dev-tools #trasaction-sender .card-footer{background-image:url("../img/cards/3-col-light-blue-2.svg")}.page-rwa-tokenization .developer-tools{padding:180px 0px}.page-rwa-tokenization .right-arrow-item::after,.use-case-payments .right-arrow-item::after{display:inline-block;content:url("../img/icons/arrow-right-purple.svg");position:relative;top:1px;vertical-align:middle;padding-left:8px;transition:transform .3s ease-out}.page-rwa-tokenization #events-orange,.use-case-payments #events-orange{position:absolute;top:0px;right:0px}.page-rwa-tokenization .token-title,.use-case-payments .token-title{color:var(--black-black-0-white, #FFF);text-align:center;font-family:"Work Sans";font-size:62px;font-style:normal;font-weight:700;line-height:70px;max-width:720px;z-index:1}@media(max-width: 991.98px){.page-rwa-tokenization .token-title,.use-case-payments .token-title{line-height:48px;font-size:42px;text-align:left}}.page-rwa-tokenization .token-title-container,.use-case-payments .token-title-container{gap:32px;padding:104px 40px;display:flex;flex-direction:column;align-items:center;justify-content:center}.page-rwa-tokenization .token-title-container .button-container,.use-case-payments .token-title-container .button-container{display:flex;flex-wrap:wrap;gap:32px;justify-content:center;align-items:center}.page-rwa-tokenization .token-title-container .button-container .internal-link,.use-case-payments .token-title-container .button-container .internal-link{color:#9a52ff;font-size:16px;font-style:normal;font-weight:700;text-decoration:none;cursor:pointer;display:inline-flex;align-items:center;background:none !important}@media(max-width: 767px){.page-rwa-tokenization .token-title-container .button-container,.use-case-payments .token-title-container .button-container{padding-bottom:0px;gap:16px;flex-direction:column;width:100%}.page-rwa-tokenization .token-title-container .button-container .btn-primary.p-12,.use-case-payments .token-title-container .button-container .btn-primary.p-12{width:100%}.page-rwa-tokenization .token-title-container .button-container .internal-link,.use-case-payments .token-title-container .button-container .internal-link{width:100%;text-align:center;white-space:normal}}.page-rwa-tokenization .token-title-container .button-container .btn-primary.p-12,.use-case-payments .token-title-container .button-container .btn-primary.p-12{padding:12px}.page-rwa-tokenization .token-video-container,.use-case-payments .token-video-container{padding:104px 64px;display:flex;flex-direction:row;align-items:center;justify-content:center;gap:48px;max-width:1200px;margin:0 auto}@media(max-width: 767px){.page-rwa-tokenization .token-video-container,.use-case-payments .token-video-container{padding-bottom:0px}}.page-rwa-tokenization .token-video-container .__button-container,.use-case-payments .token-video-container .__button-container{margin-top:16px}.page-rwa-tokenization .token-video-container .token-video,.use-case-payments .token-video-container .token-video{width:50%;max-width:602px;height:372px}.page-rwa-tokenization .token-video-container .token-video-text-container,.use-case-payments .token-video-container .token-video-text-container{max-width:520px;width:50%;display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:24px}.page-rwa-tokenization .token-video-container .token-video-text-container p,.use-case-payments .token-video-container .token-video-text-container p{color:var(--black-black-10-gray-200, #E0E0E1);font-family:"Work Sans";font-size:24px;font-style:normal;font-weight:400;line-height:32px;margin:0}@media(max-width: 1145px){.page-rwa-tokenization .token-video-container,.use-case-payments .token-video-container{flex-direction:column;gap:40px;padding:80px 40px;max-width:800px}.page-rwa-tokenization .token-video-container .token-video,.use-case-payments .token-video-container .token-video{width:100%;max-width:100%;height:auto;aspect-ratio:16/9}.page-rwa-tokenization .token-video-container .token-video-text-container,.use-case-payments .token-video-container .token-video-text-container{width:100%;max-width:100%;align-items:flex-start;text-align:left}.page-rwa-tokenization .token-video-container .token-video-text-container p,.use-case-payments .token-video-container .token-video-text-container p{font-size:22px;line-height:30px}}@media(max-width: 767px){.page-rwa-tokenization .token-video-container,.use-case-payments .token-video-container{padding:60px 40px;gap:32px;max-width:100%}.page-rwa-tokenization .token-video-container .token-video-text-container p,.use-case-payments .token-video-container .token-video-text-container p{font-size:18px;line-height:26px}}.page-rwa-tokenization .token-cards-wrapper,.use-case-payments .token-cards-wrapper{display:flex;justify-content:center}.page-rwa-tokenization .token-cards-container,.use-case-payments .token-cards-container{display:flex;padding:100px 40px;flex-direction:column;justify-content:center;align-items:start;gap:40px;max-width:1280px}@media(max-width: 767px){.page-rwa-tokenization .token-cards-container,.use-case-payments .token-cards-container{padding-bottom:0px}}.page-rwa-tokenization .token-cards-container .cards-title-token,.use-case-payments .token-cards-container .cards-title-token{color:var(--black-black-0-white, #FFF);font-family:"Work Sans";font-size:32px;font-style:normal;font-weight:700;line-height:38px;max-width:780px}.page-rwa-tokenization .token-cards-container .benefits-section,.use-case-payments .token-cards-container .benefits-section{display:flex;flex-direction:column;align-items:center;font-family:"Work Sans",sans-serif;overflow:hidden}.page-rwa-tokenization .token-cards-container .section-title,.use-case-payments .token-cards-container .section-title{font-size:32px;color:var(--black-black-0-white, #fff);font-weight:700;line-height:38px;max-width:776px;text-align:center;margin-bottom:40px}.page-rwa-tokenization .token-cards-container .benefits-container,.use-case-payments .token-cards-container .benefits-container{display:grid;grid-template-columns:repeat(4, 1fr);gap:40px;width:100%;max-width:1136px}@media(max-width: 1399px){.page-rwa-tokenization .token-cards-container .benefits-container,.use-case-payments .token-cards-container .benefits-container{grid-template-columns:repeat(3, 1fr)}}@media(max-width: 1145px){.page-rwa-tokenization .token-cards-container .section-title,.use-case-payments .token-cards-container .section-title{font-size:28px;line-height:34px}.page-rwa-tokenization .token-cards-container .benefits-container,.use-case-payments .token-cards-container .benefits-container{grid-template-columns:repeat(2, 1fr);gap:32px}.page-rwa-tokenization .token-cards-container .benefit-card,.use-case-payments .token-cards-container .benefit-card{padding:24px;min-height:280px}}@media(max-width: 767px){.page-rwa-tokenization .token-cards-container .benefits-container,.use-case-payments .token-cards-container .benefits-container{grid-template-columns:1fr;gap:24px}.page-rwa-tokenization .token-cards-container .benefit-card,.use-case-payments .token-cards-container .benefit-card{padding:20px;min-height:240px}}.page-rwa-tokenization .token-cards-container .benefit-card,.use-case-payments .token-cards-container .benefit-card{border-radius:8px;background-color:var(--XRPL-Black-Black-80, #232325);display:flex;flex-direction:column;justify-content:flex-start;padding:32px;min-height:332px}.page-rwa-tokenization .token-cards-container .benefit-icon,.use-case-payments .token-cards-container .benefit-icon{min-width:40px;min-height:40px;background-size:contain;background-repeat:no-repeat}.page-rwa-tokenization .token-cards-container .benefit-icon.low-fees,.use-case-payments .token-cards-container .benefit-icon.low-fees{background-image:url(../img/tokenization/low-fees.png)}.page-rwa-tokenization .token-cards-container .benefit-icon.access,.use-case-payments .token-cards-container .benefit-icon.access{background-image:url(../img/tokenization/cross-chain.png)}.page-rwa-tokenization .token-cards-container .benefit-icon.native-compliance,.use-case-payments .token-cards-container .benefit-icon.native-compliance{background-image:url(../img/tokenization/native-compliance.png)}.page-rwa-tokenization .token-cards-container .benefit-icon.delegated-token-management,.use-case-payments .token-cards-container .benefit-icon.delegated-token-management{background-image:url(../img/tokenization/delegated-token-management.png)}.page-rwa-tokenization .token-cards-container .benefit-title,.use-case-payments .token-cards-container .benefit-title{color:var(--black-black-0-white, #fff);font-size:20px;font-weight:700;line-height:26px;margin-top:-10px}.page-rwa-tokenization .token-cards-container .benefit-description,.use-case-payments .token-cards-container .benefit-description{color:var(--Black-Black-20, #e0e0e1);font-size:16px;font-weight:400;line-height:24px;margin-top:16px}@media(max-width: 991px){.page-rwa-tokenization .token-cards-container .benefit-card,.use-case-payments .token-cards-container .benefit-card{padding:20px}}.page-rwa-tokenization .upcoming-events,.use-case-payments .upcoming-events{display:flex;flex-direction:column;justify-content:center;overflow:hidden;padding:100px 40px;max-width:1200px;width:100%}@media(max-width: 767px){.page-rwa-tokenization .upcoming-events,.use-case-payments .upcoming-events{padding-bottom:0px;padding-top:0px}}.page-rwa-tokenization .upcoming-events__title,.use-case-payments .upcoming-events__title{max-width:630px;align-self:stretch;color:#fff;font:700 32px/38px Work Sans,-apple-system,Roboto,Helvetica,sans-serif;margin-bottom:64px}@media(max-width: 767px){.page-rwa-tokenization .upcoming-events__title,.use-case-payments .upcoming-events__title{text-align:left}}.page-rwa-tokenization .upcoming-events__logo-container,.use-case-payments .upcoming-events__logo-container{display:flex;align-items:center;gap:60px;justify-content:center;flex-wrap:wrap}.page-rwa-tokenization .token-events-wrapper,.use-case-payments .token-events-wrapper{padding-top:0px;display:flex;justify-content:center}.page-rwa-tokenization .company-logo,.use-case-payments .company-logo{flex:0 0 auto;width:140px;aspect-ratio:var(--aspect-ratio);background-size:contain;background-repeat:no-repeat;background-position:center}@media(max-width: 991px){.page-rwa-tokenization .upcoming-events__title,.use-case-payments .upcoming-events__title{margin-bottom:40px}.page-rwa-tokenization .upcoming-events,.use-case-payments .upcoming-events{text-align:center}.page-rwa-tokenization .upcoming-events__logo-container,.use-case-payments .upcoming-events__logo-container{justify-content:center}}@media(max-width: 575.98px){.page-rwa-tokenization .small-100,.use-case-payments .small-100{width:100%}}.page-rwa-tokenization .company-logo,.use-case-payments .company-logo{cursor:pointer;flex:0 0 auto;max-width:140px;aspect-ratio:var(--aspect-ratio);background-size:contain;background-repeat:no-repeat;background-position:center}.page-rwa-tokenization .company-logo.zoniqx,.use-case-payments .company-logo.zoniqx{background-image:url(../img/tokenization/zoniqx.png)}.page-rwa-tokenization .company-logo.archax,.use-case-payments .company-logo.archax{background-image:url(../img/tokenization/archax.png)}.page-rwa-tokenization .company-logo.palisade,.use-case-payments .company-logo.palisade{background-image:url(../img/tokenization/palisade.png)}.page-rwa-tokenization .company-logo.axiology,.use-case-payments .company-logo.axiology{background-image:url(../img/tokenization/axiology.png)}.page-rwa-tokenization .company-logo.open-eden,.use-case-payments .company-logo.open-eden{background-image:url(../img/tokenization/open-eden.png)}.page-rwa-tokenization .company-logo.ondo,.use-case-payments .company-logo.ondo{background-image:url(../img/tokenization/ondo.png)}.page-rwa-tokenization .company-logo.meld,.use-case-payments .company-logo.meld{background-image:url(../img/tokenization/meld.png)}.page-rwa-tokenization .company-logo.ripple-logo,.use-case-payments .company-logo.ripple-logo{background-image:url(../img/tokenization/ripple-logo.png)}.page-rwa-tokenization .company-logo.hidden-road,.use-case-payments .company-logo.hidden-road{background-image:url(../img/tokenization/hidden-road.png)}.page-rwa-tokenization .company-logo,.use-case-payments .company-logo{max-height:66px;max-width:100px;width:100%;height:100%}.page-rwa-tokenization .token-developer-tools-section .developer-tools,.page-rwa-tokenization .payments-integration-section .developer-tools,.use-case-payments .token-developer-tools-section .developer-tools,.use-case-payments .payments-integration-section .developer-tools{font-family:"Work Sans",sans-serif;color:#fff}.page-rwa-tokenization .token-developer-tools-section .developer-tools__header,.page-rwa-tokenization .payments-integration-section .developer-tools__header,.use-case-payments .token-developer-tools-section .developer-tools__header,.use-case-payments .payments-integration-section .developer-tools__header{margin-bottom:64px}.page-rwa-tokenization .token-developer-tools-section .developer-tools__title,.page-rwa-tokenization .payments-integration-section .developer-tools__title,.use-case-payments .token-developer-tools-section .developer-tools__title,.use-case-payments .payments-integration-section .developer-tools__title{font-size:32px;font-weight:700;line-height:1;margin-bottom:24px}.page-rwa-tokenization .token-developer-tools-section .developer-tools__description,.page-rwa-tokenization .payments-integration-section .developer-tools__description,.use-case-payments .token-developer-tools-section .developer-tools__description,.use-case-payments .payments-integration-section .developer-tools__description{font-size:16px;line-height:24px}.page-rwa-tokenization .token-developer-tools-section .developer-tools__list,.page-rwa-tokenization .payments-integration-section .developer-tools__list,.use-case-payments .token-developer-tools-section .developer-tools__list,.use-case-payments .payments-integration-section .developer-tools__list{list-style:none;padding:0;margin:0}.page-rwa-tokenization .token-developer-tools-section .feature-item,.page-rwa-tokenization .payments-integration-section .feature-item,.use-case-payments .token-developer-tools-section .feature-item,.use-case-payments .payments-integration-section .feature-item{margin-bottom:16px;cursor:pointer}.page-rwa-tokenization .token-developer-tools-section .feature-item a:hover,.page-rwa-tokenization .payments-integration-section .feature-item a:hover,.use-case-payments .token-developer-tools-section .feature-item a:hover,.use-case-payments .payments-integration-section .feature-item a:hover{text-decoration:none}.page-rwa-tokenization .token-developer-tools-section .feature-item__content,.page-rwa-tokenization .payments-integration-section .feature-item__content,.use-case-payments .token-developer-tools-section .feature-item__content,.use-case-payments .payments-integration-section .feature-item__content{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;cursor:pointer}.page-rwa-tokenization .token-developer-tools-section .feature-item__content:hover .right-arrow-item::after,.page-rwa-tokenization .payments-integration-section .feature-item__content:hover .right-arrow-item::after,.use-case-payments .token-developer-tools-section .feature-item__content:hover .right-arrow-item::after,.use-case-payments .payments-integration-section .feature-item__content:hover .right-arrow-item::after{transform:translateX(4px)}.page-rwa-tokenization .token-developer-tools-section .feature-item__title,.page-rwa-tokenization .payments-integration-section .feature-item__title,.use-case-payments .token-developer-tools-section .feature-item__title,.use-case-payments .payments-integration-section .feature-item__title{font-size:16px;color:#e0e0e1;cursor:pointer}.page-rwa-tokenization .token-developer-tools-section .feature-item__icon,.page-rwa-tokenization .payments-integration-section .feature-item__icon,.use-case-payments .token-developer-tools-section .feature-item__icon,.use-case-payments .payments-integration-section .feature-item__icon{width:24px;height:24px;object-fit:contain}.page-rwa-tokenization .token-developer-tools-section .feature-item__divider,.page-rwa-tokenization .payments-integration-section .feature-item__divider,.use-case-payments .token-developer-tools-section .feature-item__divider,.use-case-payments .payments-integration-section .feature-item__divider{height:1px;opacity:.3;background-color:#fff}.page-rwa-tokenization .token-developer-tools-section .developer-tools__image,.page-rwa-tokenization .payments-integration-section .developer-tools__image,.use-case-payments .token-developer-tools-section .developer-tools__image,.use-case-payments .payments-integration-section .developer-tools__image{width:110%;height:124%;background-image:url("../img/tokenization/graphic.png");background-size:contain;background-repeat:no-repeat;background-position:center}.page-rwa-tokenization .token-developer-tools-section .m-h-300,.page-rwa-tokenization .payments-integration-section .m-h-300,.use-case-payments .token-developer-tools-section .m-h-300,.use-case-payments .payments-integration-section .m-h-300{min-height:300px}@media(max-width: 991px){.page-rwa-tokenization .token-developer-tools-section .developer-tools,.page-rwa-tokenization .payments-integration-section .developer-tools,.use-case-payments .token-developer-tools-section .developer-tools,.use-case-payments .payments-integration-section .developer-tools{padding:50px 40px}.page-rwa-tokenization .token-developer-tools-section .developer-tools__header,.page-rwa-tokenization .payments-integration-section .developer-tools__header,.use-case-payments .token-developer-tools-section .developer-tools__header,.use-case-payments .payments-integration-section .developer-tools__header{margin-bottom:40px}}.page-rwa-tokenization .token-features-section .rwa-tokenization,.use-case-payments .token-features-section .rwa-tokenization{font-family:"Work Sans",sans-serif;padding:100px 40px;padding-top:0px;color:#fff}.page-rwa-tokenization .token-features-section .container,.use-case-payments .token-features-section .container{max-width:1200px;margin:0 auto}.page-rwa-tokenization .token-features-section .rwa-header,.use-case-payments .token-features-section .rwa-header{text-align:start;margin-bottom:40px}.page-rwa-tokenization .token-features-section .rwa-title,.use-case-payments .token-features-section .rwa-title{font-size:32px;font-weight:700;line-height:38px}.page-rwa-tokenization .token-features-section .cta-container,.use-case-payments .token-features-section .cta-container{display:flex;justify-content:flex-start;gap:24px}.page-rwa-tokenization .token-features-section .btn,.use-case-payments .token-features-section .btn{font-size:16px;font-weight:700;padding:8px 16px;border-radius:4px;text-decoration:none}.page-rwa-tokenization .token-features-section .btn-primary,.use-case-payments .token-features-section .btn-primary{background-color:#7919ff;color:#fff}.page-rwa-tokenization .token-features-section .btn-link,.use-case-payments .token-features-section .btn-link{color:#9a52ff}@media(max-width: 991px){.page-rwa-tokenization .token-features-section .auto-bridge,.use-case-payments .token-features-section .auto-bridge{padding:18px !important}.page-rwa-tokenization .token-features-section .rwa-tokenization,.use-case-payments .token-features-section .rwa-tokenization{padding:50px 20px}.page-rwa-tokenization .token-features-section .feature-grid,.use-case-payments .token-features-section .feature-grid{gap:20px}.page-rwa-tokenization .token-features-section .cta-container,.use-case-payments .token-features-section .cta-container{flex-direction:column;align-items:center}}.page-rwa-tokenization .token-features-section .feature-grid,.use-case-payments .token-features-section .feature-grid{display:flex;flex-wrap:wrap;gap:40px;justify-content:center;margin-bottom:20px}.page-rwa-tokenization .token-features-section .feature-grid .feature-card,.use-case-payments .token-features-section .feature-grid .feature-card{flex:1 0 100%;max-width:100%;margin-bottom:20px;position:relative}@media(min-width: 768px){.page-rwa-tokenization .token-features-section .feature-grid .feature-card,.use-case-payments .token-features-section .feature-grid .feature-card{flex:1 0 calc(50% - 40px);max-width:calc(50% - 40px)}}@media(min-width: 1200px){.page-rwa-tokenization .token-features-section .feature-grid .feature-card,.use-case-payments .token-features-section .feature-grid .feature-card{flex:1 0 calc(25% - 30px);max-width:calc(25% - 30px)}}.page-rwa-tokenization .token-features-section .feature-card:hover .right-arrow-item::after,.use-case-payments .token-features-section .feature-card:hover .right-arrow-item::after{transform:translateX(4px)}.page-rwa-tokenization .token-features-section .feature-header,.use-case-payments .token-features-section .feature-header{margin-bottom:16px;position:relative}.page-rwa-tokenization .token-features-section .feature-title,.use-case-payments .token-features-section .feature-title{display:flex;align-items:flex-start;justify-content:space-between;font-size:20px;font-weight:700;line-height:26px;color:#fff;width:100%;flex-wrap:wrap}@media(max-width: 767px){.page-rwa-tokenization .token-features-section .feature-title,.use-case-payments .token-features-section .feature-title{padding-right:30px;flex-wrap:nowrap;justify-content:flex-start}}@media(min-width: 768px)and (max-width: 1199px){.page-rwa-tokenization .token-features-section .feature-title,.use-case-payments .token-features-section .feature-title{flex-wrap:nowrap;padding-right:30px;justify-content:flex-start}}.page-rwa-tokenization .token-features-section .feature-icon,.use-case-payments .token-features-section .feature-icon{width:16px;height:16px;margin-left:8px}.page-rwa-tokenization .token-features-section .feature-description,.use-case-payments .token-features-section .feature-description{font-size:16px;line-height:24px;color:#e0e0e1}.page-rwa-tokenization .max-w-1150,.use-case-payments .max-w-1150{max-width:1150px !important}.page-rwa-tokenization .custom-gap,.use-case-payments .custom-gap{justify-content:start !important}.page-rwa-tokenization .mt-16,.use-case-payments .mt-16{margin-top:16px}.page-rwa-tokenization .com-card,.use-case-payments .com-card{min-width:auto !important;padding:40px !important;height:fit-content;max-height:388px !important}.page-rwa-tokenization .section-padding,.use-case-payments .section-padding{padding:100px 40px}.page-rwa-tokenization .developer-resources-section .bottom-cards-section.bug-bounty.section-padding,.use-case-payments .developer-resources-section .bottom-cards-section.bug-bounty.section-padding{display:flex !important;flex-wrap:wrap !important;gap:32px;max-width:1200px;margin:80px auto;padding:0px;justify-content:center}@media(min-width: 768px){.page-rwa-tokenization .developer-resources-section .bottom-cards-section.bug-bounty.section-padding,.use-case-payments .developer-resources-section .bottom-cards-section.bug-bounty.section-padding{gap:40px;justify-content:space-between}}@media(max-width: 767px){.page-rwa-tokenization .developer-resources-section .bottom-cards-section.bug-bounty.section-padding,.use-case-payments .developer-resources-section .bottom-cards-section.bug-bounty.section-padding{flex-direction:column;gap:20px;margin:40px auto;padding:0px}}.page-rwa-tokenization .developer-resources-section .bottom-cards-section.bug-bounty.section-padding .com-card,.use-case-payments .developer-resources-section .bottom-cards-section.bug-bounty.section-padding .com-card{flex:1 !important;position:relative;margin:0 !important}@media(min-width: 768px){.page-rwa-tokenization .developer-resources-section .bottom-cards-section.bug-bounty.section-padding .com-card,.use-case-payments .developer-resources-section .bottom-cards-section.bug-bounty.section-padding .com-card{flex:1 1 calc(50% - 20px);max-width:calc(50% - 20px);min-width:calc(50% - 20px);width:auto}}@media(max-width: 767px){.page-rwa-tokenization .developer-resources-section .bottom-cards-section.bug-bounty.section-padding .com-card,.use-case-payments .developer-resources-section .bottom-cards-section.bug-bounty.section-padding .com-card{width:100% !important;max-width:100% !important;min-width:100% !important;margin-bottom:0 !important;flex:none !important}}.page-rwa-tokenization .developer-resources-section .bottom-cards-section.bug-bounty.section-padding .com-card.developer-spotlight,.use-case-payments .developer-resources-section .bottom-cards-section.bug-bounty.section-padding .com-card.developer-spotlight{background-image:url(../img/community/bug-bounty-card-bg.png);background-position:top right;background-size:169px 88px;background-repeat:no-repeat}.page-rwa-tokenization .developer-resources-section .bottom-cards-section.bug-bounty.section-padding .com-card.learn-stay-updated,.use-case-payments .developer-resources-section .bottom-cards-section.bug-bounty.section-padding .com-card.learn-stay-updated{background-image:url(../img/community/bug-bounty-card-bg-2.png);background-position:bottom right;background-size:contain;background-repeat:no-repeat;background-size:136px 177px}@media(max-width: 767px){.page-rwa-tokenization .developer-resources-section .bottom-cards-section.bug-bounty.section-padding .com-card.learn-stay-updated,.use-case-payments .developer-resources-section .bottom-cards-section.bug-bounty.section-padding .com-card.learn-stay-updated{background-image:url(../img/community/bug-bounty-card-bg-2-mobile.png)}}.page-rwa-tokenization .developer-resources-section .bottom-cards-section.bug-bounty.section-padding .com-card .card-content,.use-case-payments .developer-resources-section .bottom-cards-section.bug-bounty.section-padding .com-card .card-content{display:flex;flex-direction:column;height:100%}.page-rwa-tokenization .developer-resources-section .bottom-cards-section.bug-bounty.section-padding .com-card .card-content .card-description,.use-case-payments .developer-resources-section .bottom-cards-section.bug-bounty.section-padding .com-card .card-content .card-description{flex-grow:1;margin-bottom:24px;max-width:560px}@media(max-width: 767px){.page-rwa-tokenization .developer-resources-section .bottom-cards-section.bug-bounty.section-padding .com-card .card-content .card-description,.use-case-payments .developer-resources-section .bottom-cards-section.bug-bounty.section-padding .com-card .card-content .card-description{margin-bottom:20px}}.page-rwa-tokenization .developer-resources-section .bottom-cards-section.bug-bounty.section-padding .com-card .card-content .card-links,.use-case-payments .developer-resources-section .bottom-cards-section.bug-bounty.section-padding .com-card .card-content .card-links{margin-top:auto}@media(max-width: 767px){.page-rwa-tokenization .developer-resources-section .bottom-cards-section.bug-bounty.section-padding .com-card .card-content .card-links,.use-case-payments .developer-resources-section .bottom-cards-section.bug-bounty.section-padding .com-card .card-content .card-links{margin-top:16px}.page-rwa-tokenization .developer-resources-section .bottom-cards-section.bug-bounty.section-padding .com-card .card-content .card-links .com-card-link,.use-case-payments .developer-resources-section .bottom-cards-section.bug-bounty.section-padding .com-card .card-content .card-links .com-card-link{display:block;margin-bottom:12px}.page-rwa-tokenization .developer-resources-section .bottom-cards-section.bug-bounty.section-padding .com-card .card-content .card-links .com-card-link:last-child,.use-case-payments .developer-resources-section .bottom-cards-section.bug-bounty.section-padding .com-card .card-content .card-links .com-card-link:last-child{margin-bottom:0}}.page-rwa-tokenization .developer-resources-section.single-card .bottom-cards-section.bug-bounty.section-padding,.use-case-payments .developer-resources-section.single-card .bottom-cards-section.bug-bounty.section-padding{gap:0 !important}@media(max-width: 767px){.page-rwa-tokenization .developer-resources-section.single-card .bug-bounty-card-bg-2,.use-case-payments .developer-resources-section.single-card .bug-bounty-card-bg-2{content:url("../img/community/bug-bounty-card-bg-2-mobile.png")}}.page-rwa-tokenization .developer-resources-section.single-card .com-card,.use-case-payments .developer-resources-section.single-card .com-card{font-size:24px;max-height:288px !important}@media(max-width: 768px){.page-rwa-tokenization .developer-resources-section.single-card .com-card,.use-case-payments .developer-resources-section.single-card .com-card{min-height:493px !important}}@media(min-width: 768px){.page-rwa-tokenization .developer-resources-section.single-card .com-card,.use-case-payments .developer-resources-section.single-card .com-card{flex:1 1 100% !important;max-width:100% !important;min-width:100% !important}}.page-rwa-tokenization .developer-resources-section.single-card .com-card .bottom-right-img.bug-bounty-card-bg-2,.use-case-payments .developer-resources-section.single-card .com-card .bottom-right-img.bug-bounty-card-bg-2{height:714px;width:auto;object-fit:cover;object-position:right bottom}.page-rwa-tokenization .developer-resources-section.single-card .com-card .card-content,.use-case-payments .developer-resources-section.single-card .com-card .card-content{gap:0}.page-rwa-tokenization .developer-resources-section.single-card .com-card .card-content .card-title,.use-case-payments .developer-resources-section.single-card .com-card .card-content .card-title{margin-bottom:24px;margin-top:0}.page-rwa-tokenization .developer-resources-section.single-card .com-card .card-content .card-description,.use-case-payments .developer-resources-section.single-card .com-card .card-content .card-description{margin-bottom:24px;margin-top:0;flex-grow:0;padding:0}.page-rwa-tokenization .developer-resources-section.single-card .com-card .card-content .card-links,.use-case-payments .developer-resources-section.single-card .com-card .card-content .card-links{margin-top:0;margin-bottom:0}.page-rwa-tokenization .token-utility-section,.use-case-payments .token-utility-section{padding:100px 40px}@media(max-width: 767px){.page-rwa-tokenization .token-utility-section,.use-case-payments .token-utility-section{padding-bottom:0px}}.page-rwa-tokenization .token-utility-section .section-title,.use-case-payments .token-utility-section .section-title{font-size:32px;font-weight:700;line-height:38px;text-align:start;margin-bottom:64px;color:#fff}.page-rwa-tokenization .token-utility-section .utility-grid,.use-case-payments .token-utility-section .utility-grid{display:grid;grid-template-columns:repeat(4, 1fr);gap:40px}@media(max-width: 1199px){.page-rwa-tokenization .token-utility-section .utility-grid,.use-case-payments .token-utility-section .utility-grid{grid-template-columns:repeat(2, 1fr)}}@media(max-width: 767px){.page-rwa-tokenization .token-utility-section .utility-grid,.use-case-payments .token-utility-section .utility-grid{grid-template-columns:1fr}}.page-rwa-tokenization .token-utility-section .utility-card .utility-title,.use-case-payments .token-utility-section .utility-card .utility-title{font-size:20px;font-weight:700;line-height:26px;margin-bottom:16px;color:#fff}.page-rwa-tokenization .token-utility-section .utility-card .utility-description,.use-case-payments .token-utility-section .utility-card .utility-description{font-size:16px;line-height:24px;color:#e0e0e1}.page-rwa-tokenization .token-utility-section .utility-card .utility-description a,.use-case-payments .token-utility-section .utility-card .utility-description a{color:#9a52ff;text-decoration:none}.page-rwa-tokenization .token-utility-section .utility-card .utility-description a:hover,.use-case-payments .token-utility-section .utility-card .utility-description a:hover{text-decoration:underline}.json-view{display:block;color:#4d4d4d;text-align:left;--json-property:#009033;--json-index:#676dff;--json-number:#676dff;--json-string:#b2762e;--json-boolean:#dc155e;--json-null:#dc155e}.json-view .json-view--property{color:var(--json-property)}.json-view .json-view--index{color:var(--json-index)}.json-view .json-view--number{color:var(--json-number)}.json-view .json-view--string{color:var(--json-string)}.json-view .json-view--boolean{color:var(--json-boolean)}.json-view .json-view--null{color:var(--json-null)}.json-view .jv-indent{padding-left:1em}.json-view .jv-chevron{display:inline-block;vertical-align:-20%;cursor:pointer;opacity:.4;width:1em;height:1em}:is(.json-view .jv-chevron:hover, .json-view .jv-size:hover + .jv-chevron){opacity:.8}.json-view .jv-size{cursor:pointer;opacity:.4;font-size:.875em;font-style:italic;margin-left:.5em;vertical-align:-5%;line-height:1}.json-view :is(.json-view--copy, .json-view--edit),.json-view .json-view--link svg{display:none;width:1em;height:1em;margin-left:.25em;cursor:pointer}.json-view .json-view--input{width:120px;margin-left:.25em;border-radius:4px;border:1px solid currentColor;padding:0px 4px;font-size:87.5%;line-height:1.25;background:transparent}.json-view .json-view--deleting{outline:1px solid #da0000;background-color:#da000011;text-decoration-line:line-through}:is(.json-view:hover, .json-view--pair:hover)>:is(.json-view--copy, .json-view--edit),:is(.json-view:hover, .json-view--pair:hover)>.json-view--link svg{display:inline-block}.json-view .jv-button{background:transparent;outline:none;border:none;cursor:pointer;color:inherit}.json-view .cursor-pointer{cursor:pointer}.json-view svg{vertical-align:-10%}.jv-size-chevron~svg{vertical-align:-16%}.json-view_a11y{color:#545454;--json-property:#aa5d00;--json-index:#007299;--json-number:#007299;--json-string:green;--json-boolean:#d91e18;--json-null:#d91e18}.json-view_github{color:#005cc5;--json-property:#005cc5;--json-index:#005cc5;--json-number:#005cc5;--json-string:#032f62;--json-boolean:#005cc5;--json-null:#005cc5}.json-view_vscode{color:#005cc5;--json-property:#0451a5;--json-index:blue;--json-number:blue;--json-string:#a31515;--json-boolean:blue;--json-null:blue}.json-view_atom{color:#383a42;--json-property:#e45649;--json-index:#986801;--json-number:#986801;--json-string:#50a14f;--json-boolean:#0184bc;--json-null:#0184bc}.json-view_winter-is-coming{color:#0431fa;--json-property:#3a9685;--json-index:#ae408b;--json-number:#ae408b;--json-string:#8123a9;--json-boolean:#0184bc;--json-null:#0184bc}.json-view{font-family:"Space Mono",monospace;padding:1em;background:#232325;overflow:hidden;color:#f5f5f7 !important;font-size:14px;letter-spacing:0}.json-view svg{height:11px !important;color:#f5f5f7}.jv-button{color:#ff6719 !important;font-size:14px}.jv-indent{border-left:1px solid #454549;margin:4px}.json-view--boolean{color:#e50071 !important}.json-view--pair{margin:4px}.json-view--property{color:#f5f5f7 !important}.json-view--null,.json-view--undefined{display:inline-block;padding:1px 2px;border-radius:3px;background-color:#454549;color:#f5f5f7 !important;font-size:11px}.json-view--number{color:#84f0b6 !important}.json-view--string{color:#ff6719 !important}.rpc-tool .nav-link{cursor:pointer;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding:6px 9px}.dev-blog .image-container{transform:translateY(15%);z-index:1}.dev-blog .text-bg{background-color:#232325;padding:60px 40px;width:100%;border-radius:30px}@media(min-width: 992px){.dev-blog .image-container{transform:translateX(15%)}.dev-blog .text-bg{padding:50px 60px}}.dev-blog .line-clamp{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.dev-blog #blog-purple{position:absolute;top:0px;left:0px}.dev-blog .card-date{color:#a2a2a4}.dev-blog .hero-post-date{text-decoration:overline solid #32e685 10%}.dev-blog .general .category-list img{content:url("../img/blog/general.png");max-width:100%;width:100%}.dev-blog .general .category-list .label{width:fit-content}.dev-blog .developer_reflections .category-list img{content:url("../img/blog/developer_reflections.png");max-width:100%;width:100%}.dev-blog .developer_reflections .category-list .label{width:fit-content}.dev-blog .amendments .category-list img{content:url("../img/blog/amendments.png");max-width:100%;width:100%}.dev-blog .amendments .category-list .label{width:fit-content}.dev-blog .case_study .category-list img{content:url("../img/blog/case_study.png");max-width:100%;width:100%}.dev-blog .case_study .category-list .label{width:fit-content}.dev-blog .advisories .category-list img{content:url("../img/blog/advisories.png");max-width:100%;width:100%}.dev-blog .advisories .category-list .label{width:fit-content}.dev-blog .release_notes .category-list img{content:url("../img/blog/release_notes.png");max-width:100%;width:100%}.dev-blog .release_notes .category-list .label{width:fit-content}.dev-blog .development .category-list img{content:url("../img/blog/development.png");max-width:100%;width:100%}.dev-blog .development .category-list .label{width:fit-content}.dev-blog .gateway_bulletins .category-list img{content:url("../img/blog/gateway_bulletins.png");max-width:100%;width:100%}.dev-blog .gateway_bulletins .category-list .label{width:fit-content}.dev-blog .features .category-list img{content:url("../img/blog/features.png");max-width:100%;width:100%}.dev-blog .features .category-list .label{width:fit-content}.dev-blog .security .category-list img{content:url("../img/blog/security.png");max-width:100%;width:100%}.dev-blog .security .category-list .label{width:fit-content}@media(min-width: 768px)and (max-width: 991px){.dev-blog .category-list{display:block}.dev-blog .category-list img{display:block;margin-bottom:10px}.dev-blog .category-list .label{display:block !important;margin-bottom:15px}}.dev-blog .category_sidebar{position:sticky;top:80px}.dev-blog .category-checkbox{display:flex;align-items:center}.dev-blog .dropdown{position:relative;display:inline-block}.dev-blog .dropdown-btn{color:#fff;background-color:#232325;border-color:#232325;border-style:solid;border-radius:4px;padding:8px 16px;font-size:16px;cursor:pointer;text-align:start;padding-right:10px}.dev-blog .dropdown-btn img{content:url("../img/icons/chevron-arrow-down.svg");width:10px;height:13px;padding:8px}.dev-blog .dropdown-content{display:flex;align-items:start;background-color:#232325;padding:16px 8px;width:254px;height:auto;border-radius:4px}.dev-blog .category-checkbox label{font-weight:normal;font-size:14px;margin:0;padding-left:26px}.dev-blog .category-header{font-weight:normal;width:200px;color:#f5f5f7}.dev-blog label{margin:0;padding-left:8px;color:#fff}.dev-blog .blog-filter h6{font-size:16px}.dev-blog .blog-filter[type=checkbox]::before{position:relative;display:block;width:20px;height:20px;content:"";background:#111112;border-radius:4px;border-width:2px;border-style:solid;border-color:#a2a2a4}.dev-blog .blog-filter[type=checkbox]::after{position:relative;display:block;top:-20px;width:20px;height:20px;content:"";background-repeat:no-repeat;background-position:center;border-radius:4px;border-width:2px;border-style:solid;border-color:#a2a2a4}.dev-blog .blog-filter[type=checkbox]:checked::before{background:#111112;border:none;border-radius:0}.dev-blog .blog-filter[type=checkbox]:checked::after{background-image:url(../img/blog/blog-check.svg);background-repeat:no-repeat;background-position:center;background-color:#7919ff;border-width:2px;border-style:solid;border-color:#7919ff;border-radius:4px}.dev-blog .blog-filter[type=checkbox]:not(:disabled):checked:hover::after{background-image:url(../img/blog/blog-check.svg);background-repeat:no-repeat;background-position:center;border-width:2px;border-style:solid;border-color:#5f00e5;border-radius:4px}.dev-blog .blog-filter[type=checkbox]:not(:disabled):hover::before{background:#111112;border:none;border-radius:0}.dev-blog .blog-filter[type=checkbox]:not(:disabled):hover::after{background:#111112;border:none;border-width:2px;border-style:solid;border-color:#5f00e5;border-radius:4px}#feedback-content .docked-widget{border:none !important;background-color:transparent !important;position:static !important;box-shadow:none !important;width:auto !important}#feedback-content .widget-form-wrapper{position:static !important;box-shadow:none !important;display:block;background-color:#232325 !important;border-width:0 !important;padding:24px !important;border-radius:8px !important}#feedback-content .widget-form-wrapper div{background-color:#232325 !important}#feedback-content .widget-form-wrapper textarea{background-color:#fff !important;opacity:1 !important;border:none !important;border-radius:4px !important;margin:0 !important;width:100% !important;color:#000 !important}#feedback-content .widget-form-wrapper .widget-header-title{background:none !important;flex-grow:0 !important;padding-right:1rem !important;height:auto !important;padding:0 !important;margin-bottom:10px !important}#feedback-content .widget-form-wrapper .widget-header-footer{background:none !important}#feedback-content .widget-form-wrapper .widget-form-footer{padding-right:0 !important}#feedback-content .widget-form-wrapper .submit{background-color:#7919ff !important;font-weight:bold !important;color:#fff !important;border:none !important;border-color:transparent !important;border-radius:4px !important;margin:0 !important;margin-top:8px !important}#feedback-content .widget-form-wrapper .submit:hover{background:#5f00e5 !important}#feedback-content .widget-form-wrapper .submit.disabled,#feedback-content .widget-form-wrapper .submit[disabled=disabled]{background-color:#4a00b2 !important}#feedback-content .widget-form-wrapper .submit.disabled:hover,#feedback-content .widget-form-wrapper .submit[disabled=disabled]:hover{background-color:#4a00b2 !important}#feedback-content .widget-form-wrapper .cancel{margin:0 !important;margin-top:8px !important;color:#b480ff !important;font-weight:600 !important}#feedback-content #closeFeedback{display:none}#feedback-content .widget-helpful .widget-header{background-color:#232325 !important;border-radius:8px !important}#feedback-content .widget-helpful .widget-header-title{color:#fff !important}.video-image{transition:all .35s ease-out;cursor:pointer}.video-image:hover{-webkit-transform:translateY(-16px);-moz-transform:translateY(-16px);-ms-transform:translateY(-16px);-o-transform:translateY(-16px);transform:translateY(-16px)}#video-overlay{position:fixed;top:0;left:0;z-index:1190;height:100%;width:100%;background:#fff;opacity:.6;display:none}#video{display:none;position:fixed;top:10%;left:15%;width:70%;z-index:1200}#video-container{position:relative;top:50%;left:50%;-ms-transform:translate(-50%, -50%);transform:translate(-50%, -50%);max-width:982px;padding:0 20px}#videoWrapper{position:absolute;top:0;left:0;height:calc(90vh - 100px);width:80vw}#videoWrapper iframe{position:absolute;top:0;left:0;width:100%;height:100%}#video-container iframe{position:absolute;top:0;left:0;width:100%;height:100%}.video-external-link{color:#9a52ff;font-weight:600}.video-external-link::after{content:" ";background-image:url(../img/icons/arrow-up-right.svg);background-repeat:no-repeat;display:inline-block;background-size:24px;padding:9px 4px 0 8px;width:2rem;background-position:left 8px bottom 0px;transition:background-position 100ms ease-in-out}.video-external-link.video-external-link:hover::after{background-position:left 12px bottom 8px}.video-title{line-height:1.2}@media(min-width: 768px){.video-title{font-size:1rem}}@media(max-width: 768px){.page-community .sm-align-items-start{align-items:start !important}}.page-community .numbers-animation{width:218px;height:96px}@keyframes bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}.page-community .bounce-arrow{animation:bounce 1.5s infinite;animation-timing-function:ease-in-out;height:26px;width:26px;position:relative;top:24px}.page-community .m-gif{height:108px}.page-community .middle-image{margin:0 auto;height:35px}.page-community .bg-hero{width:100%;height:635px}.page-community #center-image{cursor:pointer}.page-community .gradient-num-three{background:linear-gradient(35deg, #84F0B6 -0.3%, #B480FF 99.7%);-webkit-background-clip:text;background-clip:text;color:transparent}.page-community .middle-image-two{margin:0 auto;height:52px}.page-community .gradient-num-two{background:linear-gradient(35deg, #EA80FF -0.3%, #80CCFF 99.7%);-webkit-background-clip:text;background-clip:text;color:transparent}.page-community .gradient-num{background:linear-gradient(35deg, #B480FF -0.3%, #FFAA80 99.7%);-webkit-background-clip:text;background-clip:text;color:transparent}.page-community .surround-gradient{background:linear-gradient(35deg, #B480FF -0.3%, #FFAA80 99.7%);-webkit-background-clip:text;background-clip:text;color:transparent;font-size:40px;font-weight:400}.page-community .surround-gradient-two{background:linear-gradient(35deg, #EA80FF -0.3%, #80CCFF 99.7%);-webkit-background-clip:text;background-clip:text;color:transparent;font-size:40px;font-weight:400}.page-community .surround-gradient-three{background:linear-gradient(35deg, #84F0B6 -0.3%, #B480FF 99.7%);-webkit-background-clip:text;background-clip:text;color:transparent;font-size:40px;font-weight:400}.page-community .main-title{color:var(--black-black-0, #FFF);text-align:center;font-family:Work Sans;font-size:62px;font-style:normal;font-weight:700;line-height:70px}@media(max-width: 768px){.page-community .main-title{font-size:42px;line-height:52px;text-align:left}}.page-community .get-funding-btn{width:90%;margin:0 auto}@media(max-width: 768px){.page-community .cd-none-sm{display:none !important}}@media(min-width: 769px){.page-community .cd-none-lg{display:none !important}}.page-community .icon-date{padding-right:4px;content:url(../img/events/event-date.svg)}.page-community .icon-location{padding-right:4px;content:url(../img/events/event-location.svg)}.page-community .builders-wrap{white-space:nowrap}@media(min-width: 768px){.page-community .builders-wrap{white-space:normal}}.page-community #community-table{padding:20px 93px;max-width:1280px;margin:0 auto;border-radius:5px;padding-top:165px}@media(min-width: 992px){.page-community #community-table{padding-top:512px}}@media(max-width: 768px){.page-community #community-table{margin:0;padding:20px;margin-top:100px !important}}.page-community .eyebrow-convo{text-align:start;font-family:Work Sans;font-size:20px;font-style:normal;font-weight:700;line-height:26px;padding-bottom:5px}.page-community .final-tr{border:none !important}.page-community #community-table h4{text-align:start;margin:10px 0;font-family:Work Sans;font-size:32px;font-style:normal;font-weight:700;line-height:38px}.page-community #community-table table{width:100%;margin-top:31px;border-collapse:collapse}.page-community #community-table tr{padding:10px 10px;border-bottom:1px solid #343437}.page-community #community-table td{overflow:hidden;max-width:34vw;position:relative;vertical-align:middle}.page-community .scrolling-text{display:inline-block}.page-community #community-table img{max-width:52px;height:29px}.page-community .td-img{padding:10px;width:69px}.page-community .td-img .discord-icon{content:url(../img/community/ic_discord.png)}.page-community .td-img .twitter-icon{content:url(../img/community/ic_twitter.png)}.page-community .td-img .youtube-icon{content:url(../img/community/ic_youtube.png)}.page-community .td-img .xrpl-icon{content:url(../img/community/ic_xrpl.png)}.page-community .td-img .github-icon{content:url(../img/community/ic_github.png)}.page-community .td-img .stackoverflow-icon{content:url(../img/community/ic_stackoverflow.png)}.page-community .text-external-link{display:inline-flex;align-items:center;margin-left:10px}.page-community .external-link-contribute{display:inline-block;vertical-align:middle;padding-right:41px;height:16px;background:url(../img/icons/arrow-up-right.svg) no-repeat center center;transition:transform .3s ease}.page-community .text-external-link:hover .external-link-contribute{transform:translate(5px, -5px)}.page-community table td{position:relative;padding-right:25px}.page-community table td .text-external-link{position:absolute;right:5px;top:50%;transform:translateY(-50%)}@media(max-width: 768px){.page-community #community-table img{width:96px;height:29px}.page-community #community-table{width:100%}.page-community .td-img{min-width:60px}}.page-community .funding-text{color:var(#FFFFFF);font-family:Work Sans;font-size:20px;font-style:normal;font-weight:700;line-height:44px;padding-bottom:4px}.page-community .xrpl-events-section{padding:50px 40px;margin:100px auto;display:flex;justify-content:space-around;align-items:center;max-width:1280px}@media screen and (max-width: 768px){.page-community .xrpl-events-section{flex-direction:column;align-items:start}.page-community .xrpl-events-section .header-div{text-align:center}.page-community .xrpl-events-section .header{display:flex;flex-direction:column;align-items:start}.page-community .xrpl-events-section .header h6{margin-bottom:.5rem;font-family:Work Sans;font-size:20px;font-style:normal;font-weight:700;line-height:28px}.page-community .xrpl-events-section .header h4{font-family:Work Sans;font-size:28px;font-style:normal;font-weight:700;line-height:34px}.page-community .xrpl-events-section .description{text-align:start;margin-top:2rem;font-family:Work Sans;font-size:24px;font-style:normal;font-weight:500;line-height:28px}.page-community .xrpl-events-section .view-all-events-btn{float:left}.page-community .xrpl-events-section .upcoming-event{text-align:start;margin-top:2rem;padding:1rem 0}.page-community .xrpl-events-section .upcoming-event .days-count{margin-bottom:1rem}}.page-community .xrpl-events-section .header-div{padding-top:27px}.page-community .xrpl-events-section .header h6{padding-left:1.5px;font-family:"Work Sans",sans-serif;font-size:20px;font-weight:700;color:var(--black-black-0, #FFF);text-align:start}.page-community .xrpl-events-section .header h4{text-align:start;font-family:"Work Sans",sans-serif;font-size:32px;font-weight:700;color:var(--black-black-0, #FFF)}.page-community .xrpl-events-section .description{font-family:"Work Sans",sans-serif;font-size:20px;font-weight:500;max-width:444px;color:var(--black-black-10-gray-200, #E0E0E1);line-height:32px}.page-community .xrpl-events-section .view-all-events-btn{display:inline-block;margin-top:1rem}.page-community .xrpl-events-section .upcoming-event{margin-top:2rem}.page-community .xrpl-events-section .upcoming-event .upcoming-label{position:relative;top:7px;font-family:"Work Sans",sans-serif;font-size:12px;font-weight:600;text-transform:uppercase;color:var(--black-black-30, #C1C1C2)}.page-community .xrpl-events-section .upcoming-event .days-count{font-weight:300;margin-bottom:21px;line-height:99px;font-size:88px;background:linear-gradient(35deg, #B480FF -0.3%, #FFAA80 99.7%);-webkit-background-clip:text;background-clip:text;color:transparent;display:inline-block}.page-community .xrpl-events-section .upcoming-event .days-word{vertical-align:bottom;font-weight:normal;margin-bottom:21px;line-height:99px;font-size:40px;background:linear-gradient(35deg, #B480FF -0.3%, #FFAA80 99.7%);-webkit-background-clip:text;background-clip:text;color:transparent;display:inline-block}.page-community .xrpl-events-section .upcoming-event h5{font-family:"Work Sans",sans-serif;font-size:16px;font-weight:700;color:var(--black-black-10, #F5F5F7)}.page-community .xrpl-events-section .upcoming-event .event-details,.page-community .xrpl-events-section .upcoming-event .event-location{font-family:"Work Sans",sans-serif;font-size:12px;font-weight:600;color:var(--black-black-30, #C1C1C2)}.page-community .community-funding{display:flex;flex-wrap:wrap;justify-content:space-between;max-width:1280px;margin:100px auto;padding-right:54px;padding-left:73px;margin-top:120px}.page-community .funding-section{flex:1;padding:20px;color:var(--black-black-0)}.page-community .small-text{color:var(--black-black-30, #C1C1C2);font-family:Work Sans;font-size:12px;font-style:normal;font-weight:600;line-height:16px;text-transform:uppercase;padding-left:11px;text-align:start}.page-community .funding-section h2{font-size:32px;font-weight:700;line-height:38px;margin-top:10px;margin-bottom:40px}.page-community .funding-section p{color:var(--black-black-20);font-size:24px;font-weight:500;line-height:32px;margin-bottom:40px}.page-community .stats{flex:1;display:flex;justify-content:space-between}@media(max-width: 768px){.page-community .stats{flex-direction:column;align-items:start;text-align:start;padding-left:7px}}.page-community .stacked-stats{display:flex;flex-direction:column;justify-content:space-between}.page-community .stat{align-self:center;text-align:center;margin:0 auto;display:flex;flex-direction:column}@media(max-width: 768px){.page-community .stat{margin:0px;text-align:start;align-self:start}}.page-community .number{opacity:1;font-size:88px;display:flex;padding:10px;align-items:center;line-height:96px;font-weight:300}@media screen and (max-width: 768px){.page-community .community-funding{flex-direction:column-reverse;padding-left:16px;padding-right:16px}.page-community .funding-section,.page-community .stats{width:100%}}.page-community .carousel{position:relative;width:1280px;margin:0 auto;margin-top:106px;max-width:100%}.page-community .carousel .flex-align{display:flex;align-items:center}@media(max-width: 768px){.page-community .carousel{width:100%}}.page-community .center-image-wrapper{position:relative;width:552px;height:314px}@media(max-width: 1118px){.page-community .center-image-wrapper{width:55%;height:auto}}@media(max-width: 768px){.page-community .center-image-wrapper{margin:0 auto;width:86%}}.page-community .image-container{display:flex;justify-content:space-around;align-items:center;overflow:hidden}.page-community .image-container img{max-width:100%;transition:transform .7s ease-in-out,opacity .7s ease-in-out}.page-community #center-image{width:100%}.page-community #left-image,.page-community #right-image{width:252px;height:144px;opacity:.7}@media(max-width: 1118px){.page-community #left-image,.page-community #right-image{width:15%;height:auto}}@media(max-width: 768px){.page-community #left-image,.page-community #right-image{display:none;margin:0}}.page-community #left-image.exit,.page-community #right-image.exit{transform:translateX(-100%);opacity:0}.page-community #left-image.enter,.page-community #right-image.enter{transform:translateX(100%);opacity:0}.page-community #center-image.exit{transform:scale(0.8);opacity:0}.page-community #center-image.enter{transform:scale(1);opacity:1}.page-community .nav-btn{position:absolute;top:50%;transform:translateY(-50%);font-size:24px;background:none;border:none;cursor:pointer}.page-community #prev-btn{left:0}.page-community #next-btn{right:0}.page-community .event-info{position:absolute;bottom:10px;left:32px;display:flex;flex-direction:column;gap:4px}@media(max-width: 768px){.page-community .event-info{left:7px}}.page-community .event-info span{color:#fff;font-family:Work Sans;font-size:12px;font-style:normal;font-weight:600;line-height:16px}.page-community .event-info .name{padding-bottom:5px;color:var(--black-black-10, #F5F5F7);font-family:Work Sans;font-size:16px;font-style:normal;font-weight:700;line-height:24px}.page-community .arrow-wrapper{display:flex;justify-content:center;padding-top:24px}.page-community :root{--black-black-0: #FFF;--black-black-10: #F5F5F7;--black-black-30: #C1C1C2}.page-community .community-spotlight-wrapper{display:flex;padding:20px;max-width:1280px;min-height:582px;margin:100px auto;gap:48px;padding-right:54px;padding-left:73px}.page-community .community-spotlight{flex:1;display:flex;flex-direction:column;padding-right:10px}.page-community .projects-wrapper{flex:1;position:relative;display:flex;justify-content:center;gap:48px}@media(max-width: 768px){.page-community .projects-wrapper{gap:48px}}.page-community .project-card{background-color:transparent;border-radius:4px;height:fit-content;width:252px;max-height:456px}@media(max-width: 768px){.page-community .project-card{width:99%}}.page-community .project-card.bottom-right{align-self:end}.page-community .card-image{border-radius:4px;height:144px;width:252px;background-color:#2c2b2b;display:flex;align-items:center}.page-community .spotlight-title,.page-community .project-title{color:var(--black-black-10, #F5F5F7);font-family:Work Sans;font-size:16px;font-style:normal;font-weight:700;line-height:16px}.page-community .spotlight-subtitle{color:var(--black-black-10, #F5F5F7);font-family:Work Sans;font-size:16px;font-style:normal;font-weight:700;line-height:16px}.page-community .project-description{color:var(--black-black-30, #C1C1C2);font-family:Work Sans;font-size:16px;font-style:normal;font-weight:400;line-height:24px}.page-community .card-details{background-color:transparent;display:flex;flex-direction:column;text-align:start;padding:15px;height:fit-content}.page-community .view-project{color:var(--blue-purple-blue-purple-50, #7919FF);font-family:Work Sans;font-size:16px;font-style:normal;font-weight:400;line-height:16px;cursor:pointer;text-decoration:none}@media(max-width: 1076px){.page-community .project-card.bottom-right{align-self:auto}.page-community .community-spotlight-wrapper{flex-direction:column;align-items:center;margin-left:0px;padding-right:26px;padding-left:26px}.page-community .community-spotlight,.page-community .projects-wrapper{width:100%;margin:0;padding:0}.page-community .projects-wrapper{display:flex;flex-direction:column;justify-content:center;align-items:center;position:static}.page-community .card-image{width:100%}.page-community .card-details{gap:16px;margin-top:10px}.page-community .project-card{position:static;margin:20px 0;height:fit-content}}.page-community .w-222{width:222px}.page-community .bottom-cards-section .com-card .card-content{display:flex;flex-direction:column;justify-content:space-between;gap:16px;position:relative;z-index:1;height:100%}.page-community .bottom-cards-section .com-card{border-radius:8px;padding:36px;background:#232325;min-width:352px;height:442px;max-width:352px;position:relative;display:flex;flex-direction:column;justify-content:space-between}.page-community .bottom-cards-section.bug-bounty{justify-content:space-around}.page-community .bottom-cards-section.bug-bounty .com-card{min-width:559px;max-width:559px;height:442px}.page-community .pr-bt16{position:relative;bottom:16px}.page-community .pr-bt28{position:relative;bottom:28px}.page-community .bottom-cards-section{display:flex;flex-direction:row;justify-content:space-around;gap:48px;max-width:1280px;margin:70px auto}.page-community .bottom-cards-section .com-card{padding:36px;background:#232325;min-width:352px;height:442px;max-width:352px;position:relative}.page-community .bottom-cards-section .com-card .top-left-img{position:absolute;top:0;height:292px;left:0;content:url(../img/community/card-bg-1.svg)}.page-community .bottom-cards-section .com-card .top-right-img.bug-bounty-card-bg{content:url(../img/community/bug-bounty-card-bg.png);height:123px}.page-community .bottom-cards-section .com-card .bottom-right-img.bug-bounty-card-bg-2{content:url(../img/community/bug-bounty-card-bg-2.png);height:123px}.page-community .bottom-cards-section .com-card .bottom-right-img{position:absolute;bottom:0;right:0;height:333px;content:url(../img/community/card-bg-2.svg)}.page-community .bottom-cards-section .com-card .top-right-img{height:390px;position:absolute;top:0;right:0;content:url(../img/community/card-bg-3.svg)}.page-community .bottom-cards-section .com-card .card-content{display:flex;flex-direction:column;gap:16px;position:relative;z-index:1}.page-community .bottom-cards-section .com-card .card-content .card-title{margin-bottom:0px !important;color:var(--black-black-0-white, #FFF);white-space:nowrap;font-family:Work Sans;font-size:20px;font-style:normal;font-weight:700;line-height:26px}.page-community .bottom-cards-section .com-card .card-content .card-subtitle{color:var(--black-black-0, #FFF);font-family:Work Sans;font-size:24px;font-style:normal;font-weight:700;line-height:32px;margin-top:2px}.page-community .bottom-cards-section .com-card .card-content .card-description{color:var(--black-black-20, #E0E0E1);font-family:Work Sans;font-size:16px;font-style:normal;font-weight:400;line-height:24px;margin-top:15px;margin-bottom:15px}.page-community .bottom-cards-section .com-card .card-content .card-description a{color:#9a52ff}.page-community .bottom-cards-section .com-card .card-content .card-links{display:flex;flex-direction:column;gap:8px}.page-community .bottom-cards-section .com-card .card-content .com-card-link{text-decoration:none;cursor:pointer;color:#9a52ff;font-family:Work Sans;font-size:16px;font-style:normal;font-weight:600;line-height:24px;white-space:nowrap}@media(max-width: 767.98px){.page-community .bottom-cards-section .com-card .card-content .com-card-link{display:block;width:100%}}.page-community .bottom-cards-section .com-card .card-content .com-card-link::after{display:inline-block;content:url(../img/icons/arrow-right-purple.svg);position:relative;top:1px;vertical-align:middle;padding-left:8px;-webkit-transition:transform .3s ease-out;-moz-transition:transform .3s ease-out;-ms-transition:transform .3s ease-out;-o-transition:transform .3s ease-out;transition:transform .3s ease-out}.page-community .bottom-cards-section .com-card .card-content .com-card-link:hover{border:none}.page-community .bottom-cards-section .com-card .card-content .com-card-link:hover::after{-webkit-transform:translateX(4px);-moz-transform:translateX(4px);-ms-transform:translateX(4px);-o-transform:translateX(4px);transform:translateX(4px)}@media(max-width: 768px){.page-community .pr-bt28{position:relative;bottom:0px}.page-community .pr-bt16{position:relative;bottom:0px}.page-community .bottom-cards-section{flex-direction:column;align-items:center;padding:20px}.page-community .bottom-cards-section.bug-bounty{justify-content:space-around}.page-community .bottom-cards-section.bug-bounty .com-card{min-width:352px;height:fit-content;max-width:352px}.page-community .bottom-cards-section .com-card{margin-bottom:20px;display:block;width:100%}}.page-community .num-separator{width:32px;height:1px;background:var(--black-black-70, #343437);margin-bottom:32px;margin-top:1px}.page-community .stat-separator{width:32px;height:1px;background:var(--black-black-70, #343437);margin-bottom:32px;margin-top:8px}.page-community .ml-8{margin-left:8px}.page-community .ml-19{margin-left:19px}.page-community .ml-14{margin-left:11px}.page-community .header-div .header{gap:10px;display:flex;flex-direction:column;padding-bottom:35px}.page-community .spotlight-subtitle{font-size:32px;font-weight:700;line-height:38px;margin-top:10px;margin-bottom:40px}.page-community .spotlight-description{color:var(--black-black-20);font-size:24px;font-weight:500;line-height:32px;margin-bottom:40px}.sdk-img{align-self:center}.light .sdk-img{content:url(../img/graphics/sdk-white.png)}.light .ref-book-illustration{content:url(../img/graphics/ref-book-light.png)}.light .tutorial-illustration{content:url(../img/graphics/tutorials-illustration-light.png)}.light .concepts-doc-illustration{content:url(../img/graphics/concepts-docs-light.png)}.light .use-cases .wallet-illustration{content:url(../img/graphics/wallet-light.svg)}.light .use-cases .token-illustration{content:url(../img/graphics/tokens-light.png)}.light .use-cases .connections-illustration{content:url(../img/graphics/nodes-light.svg)}.light .quickstart-image{content:url(../img/graphics/getting-started-pages-light.png)}.light .dev-tools-img{content:url(../img/graphics/dev-tools-light.svg)}.light .dev-tools-link:hover p{color:#000}.dark .sdk-img{content:url(../img/graphics/sdk-black.png)}.dark .ref-book-illustration{content:url(../img/graphics/ref-book.png)}.dark .tutorial-illustration{content:url(../img/graphics/tutorials-illustration.png)}.dark .concepts-doc-illustration{content:url(../img/graphics/concepts-doc.png)}.dark .use-cases .wallet-illustration{content:url(../img/graphics/wallet-dark.png)}.dark .use-cases .token-illustration{content:url(../img/graphics/tokens-dark.png)}.dark .use-cases .connections-illustration{content:url(../img/graphics/nodes-dark.png)}.dark .quickstart-image{content:url(../img/graphics/getting-started-pages-dark.svg)}.dark .dev-tools-img{content:url(../img/graphics/dev-tools-dark.png)}.dark .dev-tools-link:hover p{color:#fff}.dark .flat-card-grid .nav-link:hover{color:#e0e0e1}.get-started-img,.flat-card{max-width:100%;max-height:100%}.faded-text{font-family:"Work Sans";font-style:normal;font-weight:400;font-size:15.5667px;line-height:23px}.page-docs-index section{padding-top:64px;padding-bottom:64px}.page-docs-index .dev-tools-link h6::before{margin-top:-20px;height:20px}.page-docs-index .dev-tools-link h6:hover{text-decoration:underline;text-decoration-color:#9a52ff;background:none !important}.page-docs-index .dev-tools-link:hover p{text-decoration:none !important;background:none !important;display:inline-block}.page-docs-index .dev-tools-link a:hover{color:#9a52ff;text-decoration:none !important}.page-docs-index .dev-tools-link .btn-arrow::after{content:url(../img/icons/arrow-right-purple.svg);width:1.5rem;height:1.5rem}.page-docs-index .langs>a{display:block}.page-docs-index .langs h5:hover{text-decoration:underline;text-decoration-color:#9a52ff;background:none !important}.page-docs-index .langs a:hover{text-decoration:none !important}.page-docs-index .langs .btn-arrow::after{content:url(../img/icons/arrow-right-purple.svg);vertical-align:baseline;width:1.5rem;height:1.5rem}.page-docs-index .langs h5{margin-block-start:0 !important}.page-docs-index .langs h5::before{margin-top:0;height:0}.page-docs-index h1{font-size:3.875rem}.page-docs-index .arrow-purple::after{content:url(../img/icons/arrow-right-purple.svg)}.page-docs-index .documentation-index:hover,.page-docs-index .documentation-index::after{color:#9a52ff;text-decoration:none !important;background:none !important}@media(max-width: 765px){.page-docs-index h1{font-size:3rem}.page-docs-index .flat-card-grid{grid-gap:24px}.page-docs-index .flat-card-grid .flat-card{padding:32px 12px}.page-docs-index::before{display:none}}#langs-cards{grid-gap:40px}@media(max-width: 991.98px){.page-docs-index .langs-cards{grid-template-columns:1fr 1fr;grid-auto-rows:auto}}.dev-tools-img{max-width:100%;max-height:100%;margin:auto}.page-docs .h4::before{margin-top:0;height:0}.page-docs .row{margin-right:0;margin-left:0}.page-docs .video-grid{grid-gap:35px}.page-docs .title-space{margin-bottom:16px}.page-docs .circled-logo{margin-left:.1rem}.flat-card-grid{grid-gap:15px;max-width:100%;min-height:384px}.flat-card-grid .flat-card{padding:32px 50px;height:100%;width:100%;box-shadow:none}.flat-card-grid .flat-card-padding{margin-bottom:75px}.flat-card-grid img{width:auto;height:115px;margin-left:auto;margin-right:auto}.flat-card-grid .nav-link{border:none !important}.flat-card-grid .nav-link:hover{text-decoration:underline;text-decoration-color:#9a52ff}.flat-card-grid .nav-link::after{content:none !important}@media(max-width: 991.98px){.flat-card-grid .flat-card-padding{margin-bottom:0}.flat-card-grid .nav-link::after{content:" " !important}.flat-card-grid .flat-card .btn{display:none}}.float-up-on-hover{transition:all .35s ease-out;cursor:pointer}.float-up-on-hover:hover{-webkit-transform:translateY(-16px);-moz-transform:translateY(-16px);-ms-transform:translateY(-16px);-o-transform:translateY(-16px);transform:translateY(-16px)}.float-up-on-hover .video-image:hover{-webkit-transform:none;-moz-transform:none;-ms-transform:none;-o-transform:none;transform:none}@media(min-width: 992px){.align-button-on-bottom .btn-primary{position:absolute;bottom:0}}.center-image{display:flex;justify-content:center}.quickstart-card .quickstart-image{margin-left:-20px;margin-right:-20px;margin-bottom:-20px}@media(min-width: 992px){.quickstart-card{margin-left:-32px;margin-right:-32px;margin-bottom:-32px;width:calc(100% + 64px)}}.explore-links .card-grid{grid-gap:40px}.full-documentation-link{margin-top:-35px}.osano-cm-close{box-sizing:content-box !important}.osano-cm-switch{box-sizing:content-box !important}.osano-cm-widget{right:16px;width:50px;height:50px;border:1px solid transparent}@media(min-width: 992px){.osano-cm-widget{right:32px}}html.light article p code,html.light article table code,html.light article li>code{background-color:#e0e0e1;color:#111112}html.light body{background-color:#f5f5f7;color:#000}html.light #topnav-theme .custom-theme-toggle .custom-control-label::before{background-color:transparent;background-position:bottom right;transform:rotate(-15deg)}html.light h1:not(.chip),html.light h2:not(.chip),html.light h3:not(.chip),html.light h4:not(.chip),html.light h5:not(.chip),html.light h6:not(.chip),html.light .h1:not(.chip),html.light .h2:not(.chip),html.light .h3:not(.chip),html.light .h4:not(.chip),html.light .h5:not(.chip),html.light .h6:not(.chip){color:#000}html.light h1.green-500,html.light h2.green-500,html.light h3.green-500,html.light h4.green-500,html.light h5.green-500,html.light h6.green-500,html.light .h1.green-500,html.light .h2.green-500,html.light .h3.green-500,html.light .h4.green-500,html.light .h5.green-500,html.light .h6.green-500{color:#28b86a;text-shadow:#fff 0 0 2px,#fff -1px -1px 2px,#fff 1px 1px 2px}html.light .bg-grey-800{background-color:#fcfcfd}html.light .grey-400{color:#454549}html.light .text-muted{color:#232325 !important}html.light .longform{color:#232325}html.light .numbers{color:#000}html.light .stat-highlight,html.light .eyebrow{color:#111112}html.light .invertible-img{filter:invert(100%)}html.light .arrow-link::after{content:url("../img/lightmode/icon-long-arrow.svg")}html.light .search .input-group-text,html.light .input-group .input-group-text,html.light .form-group .input-group-text{background-color:#e0e0e1;color:#232325}html.light .search label .input-group-text,html.light .search .form-control:not(.btn),html.light .input-group label .input-group-text,html.light .input-group .form-control:not(.btn),html.light .form-group label .input-group-text,html.light .form-group .form-control:not(.btn){color:#000;background-color:#e0e0e1;border-color:#e0e0e1}html.light .search .ds-input,html.light .input-group .ds-input,html.light .form-group .ds-input{color:#000;background-color:#e0e0e1;border-color:#e0e0e1}html.light .search .ds-input:focus,html.light .input-group .ds-input:focus,html.light .form-group .ds-input:focus{border-color:#9a52ff}html.light .list-group-item{border-color:#232325;background-color:#f5f5f7}html.light .list-group-item.disabled{color:#a2a2a4}html.light .progress{background-color:#e0e0e1}html.light [data-component-name="Search/SearchIcon"]>path{fill:#000}html.light a,html.light nav a,html.light a:not([role=button]){color:#000}html.light a.btn-primary,html.light nav a.btn-primary,html.light a:not([role=button]).btn-primary{color:#fff}html.light a.btn-primary:hover,html.light nav a.btn-primary:hover,html.light a:not([role=button]).btn-primary:hover{color:#fff}html.light a:hover,html.light a:active,html.light a.active,html.light nav a:hover,html.light nav a:active,html.light nav a.active,html.light a:not([role=button]):hover,html.light a:not([role=button]):active,html.light a:not([role=button]).active{color:#7919ff}html.light a:not(.btn):focus,html.light nav a:not(.btn):focus,html.light a:not([role=button]):not(.btn):focus{background-color:transparent}html.light a.card:hover,html.light:active,html.light.active{color:#000}html.light .landing-table tbody td{color:#232325}html.light .btn-outline-secondary,html.light article a.button,html.light .navbar-dark .navbar-nav .nav-link.btn-outline-secondary{color:#111112;border-color:#111112}html.light .btn-outline-secondary:not(:disabled):not(.disabled):hover,html.light .btn-outline-secondary:not(:disabled):not(.disabled):active,html.light article a.button:not(:disabled):not(.disabled):hover,html.light article a.button:not(:disabled):not(.disabled):active,html.light .navbar-dark .navbar-nav .nav-link.btn-outline-secondary:not(:disabled):not(.disabled):hover,html.light .navbar-dark .navbar-nav .nav-link.btn-outline-secondary:not(:disabled):not(.disabled):active{color:#9a52ff;border-color:#9a52ff;background-color:transparent}html.light .breadcrumb{background:#f5f5f7}html.light .breadcrumb-item a{color:#454549}html.light .breadcrumb-item a:hover{color:#9a52ff}html.light .top-nav{background:#f5f5f7}html.light .top-nav #topnav-pages .nav-link{color:#000}html.light .top-nav .navbar-brand .logo{content:url(../img/XRPLedger_DevPortal-black.svg);height:40px}html.light .top-nav #dropdown-hero-for-docs>img{content:url(../img/icons/lightmode/docs.svg)}html.light .top-nav #dropdown-hero-for-community>img{content:url(../img/icons/lightmode/contribute.svg)}html.light .top-nav .dropdown-menu{background-color:#f5f5f7;border-color:#f5f5f7;box-shadow:0px 5px 20px 0px #c1c1c2}html.light .top-nav .dropdown-menu a:hover,html.light .top-nav .dropdown-menu a.active{color:#7919ff}html.light .top-nav .dropdown-menu .dropdown-item.dropdown-hero>img{background-color:#fcfcfd}html.light .top-nav .dropdown-menu .dropdown-item.dropdown-hero p{color:#343437}html.light .top-nav .dropdown-menu .dropdown-item.active{color:#7919ff}html.light .top-nav .dropdown-menu h5{color:#454549}html.light .top-nav .dropdown-menu .col-for-get_started{background-color:#e0e0e1}html.light .top-nav #topnav-button{background-color:#e0e0e1}@media(max-width: 991.98px){html.light .top-nav .navbar-toggler .navbar-toggler-icon::after,html.light .top-nav .navbar-toggler .navbar-toggler-icon::before,html.light .top-nav .navbar-toggler .navbar-toggler-icon div{background-color:#111112}html.light .top-nav .navbar-nav .nav-link,html.light .top-nav .navbar-collapse>.nav-item{background:#e0e0e1}html.light .top-nav #top-main-nav{background-color:#c1c1c2}}html.light aside .sidenav_cat_title{color:#000}html.light .page-toc .level-1 a,html.light .command-list .separator{color:#000}html.light aside a:hover,html.light aside .sidenav_cat_title:hover,html.light aside a.active,html.light aside a.active:hover,html.light aside .active>a,html.light aside .active>a:hover{color:#7919ff}html.light .dactyl-tree-nav nav{border-left:1px solid #000}html.light .dactyl-tree-nav nav .nav-link:hover,html.light .dactyl-tree-nav nav .nav-link:active{border-left-color:#7919ff}html.light .dactyl-tree-nav nav .active>.nav-link{border-left-color:#7919ff}html.light .page-toc,html.light .command-list{border-left:1px solid #000}html.light .page-toc .level-3,html.light .command-list .level-3{border-left:1px solid #000}html.light .page-toc li a:hover,html.light .page-toc li a .active,html.light .command-list li a:hover,html.light .command-list li a .active{border-left-color:#7919ff}html.light .footer-brand .logo{filter:invert(100%)}html.light .copyright-license{text-shadow:#fff 0px 0px 2px,#fff 1px 1px 2px,#fff 2px 2px 3px,#fff 2px 2px 4px,#fff 2px 2px 5px,#fff 2px 2px 6px,#fff -1px -1px 2px,#fff -2px -2px 3px,#fff -2px -2px 4px}html.light a.osano-cm-link{color:#fff}html.light article .card,html.light .landing .card,html.light .cta-card,html.light aside .card{color:#000;background-color:#fcfcfd;box-shadow:0px 5px 20px 0px #c1c1c2}html.light #code-samples-deck .card{box-shadow:0px 5px 20px 0px #c1c1c2}html.light #code-samples-deck .card-header{border-bottom:none;background-color:#fcfcfd}html.light #code-samples-deck .card-footer{background-color:#fcfcfd}html.light .page-faq.landing-builtin-bg::before,html.light .mini-faq.landing-builtin-bg::before{opacity:.6}html.light .page-faq .q-wrapper,html.light .mini-faq .q-wrapper{background-color:#fcfcfd;color:#000;box-shadow:0px 5px 20px 0px #c1c1c2}html.light .page-faq .q-wrapper>h4 a.expander:hover,html.light .mini-faq .q-wrapper>h4 a.expander:hover{color:#000}html.light .page-community .com-card{background:#fff}html.light .page-community .project-description{color:#343437}html.light .page-community #platform-stack-overflow{content:url("../img/logos/lightmode/stack-overflow.svg")}html.light .page-community #platform-discord{content:url("../img/logos/lightmode/discord.svg")}html.light .status.not_enabled{color:#aeb200}html.light .pg-category{color:#454549}html.light .landing .nav .nav-link{color:#232325;border-bottom-color:#c1c1c2}html.light .landing .circled-logo{background-color:#e0e0e1}html.light .landing .circled-logo img[src="assets/img/logos/globe.svg"]{filter:invert(100%)}html.light .landing p a,html.light .landing .longform a{color:#7919ff}html.light .devportal-callout.caution,html.light .devportal-callout.注意{border-color:#aeb200}html.light .devportal-callout.caution>strong:first-child::before,html.light .devportal-callout.注意>strong:first-child::before{color:#aeb200}html.light .devportal-callout.tip,html.light .devportal-callout.ヒント{border-color:#2dcf78}html.light .devportal-callout.tip>strong:first-child::before,html.light .devportal-callout.ヒント>strong:first-child::before{color:#2dcf78}html.light code{color:#000}html.light pre code,html.light pre{background-color:#e0e0e1}html.light .multicode a{color:#000}html.light .multicode a.current{color:#fff}html.light .multicode a:hover{text-decoration:none;background-color:#e0e0e1;color:#fff}html.light .multicode a:focus{background-color:#232325}html.light .codehilite .btn-outline-secondary{background-color:#232325;color:#f5f5f7;border-color:#f5f5f7}html.light .interactive-block .breadcrumb-item.done a::after{color:#145c35}html.light .modal-content{background-color:#fcfcfd}html.light .rpc-tool pre .toggle{color:#fff}html.light .rpc-tool pre .toggle:hover{color:#b480ff}html.light .page-home #home-hero-graphic{content:url("../img/lightmode/home-hero.svg")}html.light .page-home #benefits-list #public{content:url("../img/icons/lightmode/public.svg")}html.light .page-home #benefits-list #streamlined{content:url("../img/icons/lightmode/streamlined.svg")}html.light .page-home #benefits-list #performance{content:url("../img/icons/lightmode/performance.svg")}html.light .page-home #benefits-list #low-cost{content:url("../img/icons/lightmode/low-cost.svg")}html.light .page-home #benefits-list #community{content:url("../img/icons/lightmode/community.svg")}html.light .page-home #benefits-list #reliability{content:url("../img/icons/lightmode/reliability.svg")}html.light #validator-graphic{content:url("../img/lightmode/validators.svg")}html.light #wallets #wallet-xumm{content:url("../img/wallets/lightmode/xumm.svg")}html.light #wallets #wallet-bitfrost{content:url("../img/wallets/lightmode/bitfrost.png")}html.light #wallets #wallet-towo{content:url("../img/wallets/lightmode/towo.svg")}html.light #wallets #wallet-keystone{content:url("../img/wallets/lightmode/keystone.svg")}html.light #wallets #wallet-dcent{content:url("../img/wallets/lightmode/dcent.svg")}html.light #wallets #wallet-coin{content:url("../img/wallets/lightmode/coin.svg")}html.light #wallets #wallet-gem{content:url("../img/wallets/lightmode/gem.svg")}html.light #wallets #wallet-crossmark{content:url("../img/wallets/lightmode/crossmark.png")}html.light #wallets #wallet-joey{content:url("../img/wallets/lightmode/joey.svg")}html.light #top-exchanges #exch-bitstamp{content:url("../img/exchanges/lightmode/bitstamp.svg")}html.light #top-exchanges #exch-cex-io{content:url("../img/exchanges/lightmode/cex-io.svg")}html.light #top-exchanges #exch-liquid{content:url("../img/exchanges/lightmode/liquid.svg")}html.light #top-exchanges #exch-bitfinex{content:url("../img/exchanges/lightmode/bitfinex.svg")}html.light #top-exchanges #exch-bittrex{content:url("../img/exchanges/lightmode/bittrex.png")}html.light #top-exchanges #exch-currency-com{content:url("../img/exchanges/lightmode/currency-com.png")}html.light #top-exchanges #exch-ftx{content:url("../img/exchanges/lightmode/ftx.png")}html.light #top-exchanges #exch-lmax{content:url("../img/exchanges/lightmode/lmax.png")}html.light .timeline-dot{background-color:#f5f5f7}html.light .page-uses .card-body{background:#fff;color:#343437}html.light .page-uses .modal-footer,html.light .page-uses .modal-header{background-color:#fcfcfd}html.light .page-uses #infrastructure{content:url("../img/icons/usecases/lightmode/ic_infrastructure.png")}html.light .page-uses #developer_tooling{content:url("../img/icons/usecases/lightmode/ic_developer_tooling.png")}html.light .page-uses #interoperability{content:url("../img/icons/usecases/lightmode/ic_interoperability.png")}html.light .page-uses #wallet{content:url("../img/icons/usecases/lightmode/ic_wallet.png")}html.light .page-uses #nfts{content:url("../img/icons/usecases/lightmode/ic_nfts.png")}html.light .page-uses #exchanges{content:url("../img/icons/usecases/lightmode/ic_exchanges.png")}html.light .page-uses #gaming{content:url("../img/icons/usecases/lightmode/ic_gaming.png")}html.light .page-uses #security{content:url("../img/icons/usecases/lightmode/ic_security.png")}html.light .page-uses #payments{content:url("../img/icons/usecases/lightmode/ic_payments.png")}html.light .page-uses #web_monetization{content:url("../img/icons/usecases/lightmode/ic_web_monetization.png")}html.light .page-uses #sustainability{content:url("../img/icons/usecases/lightmode/ic_sustainability.png")}html.light .page-uses #cbdc{content:url("../img/icons/usecases/lightmode/ic_cbdc.png")}html.light .page-uses #custody{content:url("../img/icons/usecases/lightmode/ic_custody.png")}html.light .page-uses #other{content:url("../img/icons/usecases/lightmode/ic_other.png")}html.light .page-uses #carbon_markets{content:url("../img/icons/usecases/lightmode/ic_carbon_markets.png")}html.light .page-uses #defi{content:url("../img/icons/usecases/lightmode/ic_defi.png")}html.light .page-uses .category-header{color:#343437}html.light .page-uses .category_count{background:#d2b2ff;color:#350080}html.light .page-uses .section-text-title{color:#000}html.light .page-uses #use_case_companies_list #bitgo .biz-logo{max-height:40px;content:url("../img/uses/lightmode/bitgo.svg")}html.light .page-uses #use_case_companies_list #sologenic-nft .biz-logo{max-height:40px;content:url("../img/uses/lightmode/sologenic-nft.svg")}html.light .page-uses #use_case_companies_list #carbonland-trust .biz-logo{max-height:40px;content:url("../img/uses/lightmode/carbonland-trust.svg")}html.light .page-uses #use_case_companies_list #futureverse .biz-logo{max-height:40px;content:url("../img/uses/lightmode/futureverse.png")}html.light .page-uses #use_case_companies_list #moai-finance .biz-logo{max-height:40px;content:url("../img/uses/lightmode/moai-finance.svg")}html.light .page-uses #use_case_companies_list #orchestra-finance .biz-logo{max-height:40px;content:url("../img/uses/lightmode/orchestra-finance.svg")}html.light .page-uses #use_case_companies_list #x-tokenize .biz-logo{max-height:40px;content:url("../img/uses/lightmode/x-tokenize.svg")}html.light .page-uses #use_case_companies_list #casino-coin .biz-logo{max-height:40px;content:url("../img/uses/lightmode/casino-coin.svg")}html.light .page-uses #use_case_companies_list #xrp-cafe .biz-logo{max-height:40px;content:url("../img/uses/lightmode/xrp-cafe.svg")}html.light .page-uses #use_case_companies_list #coil .biz-logo{max-height:40px;content:url("../img/uses/lightmode/coil.svg")}html.light .page-uses #use_case_companies_list #xrp-toolkit .biz-logo{max-height:40px;content:url("../img/uses/lightmode/xrp-toolkit.svg")}html.light .page-uses #use_case_companies_list #first-ledger-bot .biz-logo{max-height:40px;content:url("../img/uses/lightmode/first-ledger-bot.svg")}html.light .page-uses #use_case_companies_list #cryptum .biz-logo{max-height:40px;content:url("../img/uses/lightmode/cryptum.svg")}html.light .page-uses #use_case_companies_list #xrpl-org-ledger-explorer .biz-logo{max-height:40px;content:url("../img/uses/lightmode/xrpl-org-ledger-explorer.svg")}html.light .page-uses #use_case_companies_list #evernode .biz-logo{max-height:40px;content:url("../img/uses/lightmode/evernode.svg")}html.light .page-uses #use_case_companies_list #xrpl-rosetta .biz-logo{max-height:40px;content:url("../img/uses/lightmode/xrpl-rosetta.svg")}html.light .page-uses #use_case_companies_list #ripples-cbdc-platform .biz-logo{max-height:40px;content:url("../img/uses/lightmode/ripples-cbdc-platform.svg")}html.light .page-uses #use_case_companies_list #xrpscan .biz-logo{max-height:40px;content:url("../img/uses/lightmode/xrpscan.svg")}html.light .page-uses #use_case_companies_list #ripples-on-demand-liquidity .biz-logo{max-height:40px;content:url("../img/uses/lightmode/ripples-on-demand-liquidity.svg")}html.light .page-uses #use_case_companies_list #xumm-wallet .biz-logo{max-height:40px;content:url("../img/uses/lightmode/xumm-wallet.svg")}html.light .page-uses #use_case_companies_list #sologenic-dex .biz-logo{max-height:40px;content:url("../img/uses/lightmode/sologenic-dex.svg")}html.light .page-uses #use_case_companies_list #joey-wallet .biz-logo{max-height:40px;content:url("../img/uses/lightmode/joey-wallet.svg")}html.light .page-uses #use_case_companies_list #Crossmark .biz-logo{max-height:40px;content:url("../img/uses/lightmode/Crossmark.png")}html.light .page-uses #use_case_companies_list #threezy .biz-logo{max-height:40px;content:url("../img/uses/lightmode/threezy.png")}html.light .page-uses .modal-content-uses .first-ledger-bot{content:url("../img/uses/lightmode/first-ledger-bot.svg")}html.light .page-uses .modal-content-uses .moai-finance{content:url("../img/uses/lightmode/moai-finance.svg")}html.light .page-uses .modal-content-uses .orchestra-finance{max-height:52px;margin:0;content:url("../img/uses/lightmode/orchestra-finance.svg")}html.light .page-uses #bitpay .biz-logo,html.light .page-uses #forte .biz-logo,html.light .page-uses #xrplorer .biz-logo,html.light .page-uses #gatehub .biz-logo{filter:invert(100%)}html.light .landing-bg{opacity:.4}@media(min-width: 768px){html.light .landing-bg{opacity:1}}html.light .landing-builtin-bg::before{opacity:.4}@media(min-width: 768px){html.light .landing-builtin-bg::before{opacity:1}}html.light #feedback-content .widget-form-wrapper{background-color:#fff !important}html.light #feedback-content .widget-form-wrapper div{background-color:#fff !important}html.light #feedback-content .widget-form-wrapper textarea{background-color:#f5f5f7 !important}html.light #feedback-content .widget-form-wrapper .widget-header-title{color:#111112 !important}html.light #feedback-content .widget-form-wrapper .cancel{color:#7919ff !important}html.light #feedback-content .widget-helpful .widget-header{background-color:#fff !important}html.light #feedback-content .widget-helpful .widget-header-title{color:#111112 !important}html.light #feedback-content .widget-helpful .widget-header-icon{filter:invert(100%)}html.light .page-docs-index #software-and-sdks .card-deck .card:nth-child(1) .card-footer{background-image:url(../img/cards/lightmode/4col-green.svg)}html.light .page-docs-index #software-and-sdks .card-deck .card:nth-child(2) .card-footer{background-image:url(../img/cards/lightmode/4col-light-blue.svg)}html.light .page-docs-index #software-and-sdks .card-deck .card:nth-child(4) .card-footer{background-image:url(../img/cards/lightmode/4col-yellow.svg)}html.light .page-docs-index #doc-types .card-deck .card:nth-child(4) .card-footer{background-image:url(../img/cards/lightmode/4col-light-blue-2.svg)}html.light .page-docs-index .funding-text,html.light .page-community .funding-text{color:#232325}html.light .page-docs-index .stat .small-text,html.light .page-community .stat .small-text{color:#232325}html.light .page-docs-index .project-card,html.light .page-community .project-card{background-color:transparent}html.light .page-docs-index .card-details,html.light .page-community .card-details{background-color:transparent}html.light .page-docs-index .card-image,html.light .page-community .card-image{background:#e0e0e1}html.light .page-docs-index #community-table tr,html.light .page-community #community-table tr{border-bottom:1px solid #34343740}html.light .page-docs-index .card-description,html.light .page-community .card-description{color:#343437 !important}html.light .page-docs-index .card-subtitle,html.light .page-community .card-subtitle{color:#111112 !important}html.light .page-docs-index .card-title,html.light .page-community .card-title{color:#111112 !important}html.light .page-docs-index .main-title,html.light .page-community .main-title{color:#111112}html.light .page-docs-index .event-location,html.light .page-community .event-location{color:#232325 !important}html.light .page-docs-index .event-details,html.light .page-community .event-details{color:#232325 !important}html.light .page-docs-index .upcoming-event .event-name,html.light .page-community .upcoming-event .event-name{color:#111112}html.light .page-docs-index .upcoming-label,html.light .page-community .upcoming-label{color:#232325 !important}html.light .page-docs-index .description,html.light .page-community .description{color:#232325}html.light .page-docs-index .events-text,html.light .page-community .events-text{color:#111112}html.light .page-docs-index .discord-icon,html.light .page-community .discord-icon{content:url(../img/community/ic_discord_light.png)}html.light .page-docs-index .twitter-icon,html.light .page-community .twitter-icon{content:url(../img/community/ic_twitter_light.png)}html.light .page-docs-index .youtube-icon,html.light .page-community .youtube-icon{content:url(../img/community/ic_youtube_light.png)}html.light .page-docs-index .xrpl-icon,html.light .page-community .xrpl-icon{content:url(../img/community/ic_xrpl_light.png)}html.light .page-docs-index .github-icon,html.light .page-community .github-icon{content:url(../img/community/ic_github_light.png)}html.light .page-docs-index .stackoverflow-icon,html.light .page-community .stackoverflow-icon{content:url(../img/community/ic_stackoverflow_light.png)}html.light .page-docs-index #run-a-network-node .card-deck .card:nth-child(4) .card-footer,html.light .page-community #run-a-network-node .card-deck .card:nth-child(4) .card-footer{background-image:url(../img/cards/lightmode/4col-light-green.svg)}html.light .page-docs-index #run-a-network-node .text-cards a,html.light .page-community #run-a-network-node .text-cards a{color:#000}html.light .page-docs-index #xrpl-blog .blog-graphic,html.light .page-community #xrpl-blog .blog-graphic{content:url(../img/community/lightmode/community-blog@2x.png)}html.light .page-docs-index #xrpl-events .text-light,html.light .page-community #xrpl-events .text-light{color:#000 !important}html.light .page-docs-index #xrplGrantsDark g,html.light .page-docs-index #xrplGrantsDark-small g,html.light .page-docs-index #careersDark g,html.light .page-docs-index #careersDark-small g,html.light .page-community #xrplGrantsDark g,html.light .page-community #xrplGrantsDark-small g,html.light .page-community #careersDark g,html.light .page-community #careersDark-small g{filter:invert(100%) brightness(0.8)}html.light #find-us-on-platforms .card-deck .card:nth-child(2) .card-footer{background-image:url(../img/cards/lightmode/4col-light-blue-3.svg)}html.light .page-references #refs-types .card-deck .card:nth-child(2) .card-footer{background-image:url(../img/cards/lightmode/3col-green-2.svg)}html.light .page-references #xrpl-protocol .card-deck .card:nth-child(1) .card-footer{background-image:url(../img/cards/lightmode/4col-light-blue-4.svg)}html.light ::-webkit-input-placeholder{color:#454549}html.light :-ms-input-placeholder{color:#454549}html.light ::-moz-placeholder{color:#454549;opacity:1}html.light :-moz-placeholder{color:#454549;opacity:1}html.light .page-events label{color:#111112}html.light .page-events .event-card{color:#000;background-color:#fcfcfd;box-shadow:0px 5px 20px 0px #c1c1c2}html.light .page-events a.event-card:hover{color:#000}html.light .page-events .event-hero{color:#111112}html.light .page-events .event-save-date{color:#111112}html.light .page-events .event-small-gray{color:#454549}html.light .page-events #event-hero-image{height:100%;min-height:209px;background:url(../img/events/event-hero1-light@2x.png);background-size:contain;background-repeat:no-repeat;background-position:center}html.light .page-events .icon-date::before{background:url(../img/events/event-date-light.svg)}html.light .page-events .icon-location::before{background:url(../img/events/event-location-light.svg)}html.light .page-events .events-filter[type=checkbox]::before{background-color:#f5f5f7}html.light .page-events .events-filter[type=checkbox]:not(:disabled):checked:hover::after{background-image:url(../img/events/event-check.svg);background-repeat:no-repeat;background-position:center;background-color:#5f00e5;border-width:2px;border-style:solid;border-color:#5f00e5;border-radius:4px}html.light .page-events .events-filter[type=checkbox]:not(:disabled):hover::before{background-color:#f5f5f7}html.light .page-events .events-filter[type=checkbox]:not(:disabled):hover::after{background-color:#f5f5f7}html.light .page-ambassadors #benefits-list #benefits-01{content:url("../img/ambassadors/lightmode/benefits-01.svg")}html.light .page-ambassadors #benefits-list #benefits-02{content:url("../img/ambassadors/lightmode/benefits-02.svg")}html.light .page-ambassadors #benefits-list #benefits-03{content:url("../img/ambassadors/lightmode/benefits-03.svg")}html.light .page-ambassadors #benefits-list #benefits-04{content:url("../img/ambassadors/lightmode/benefits-04.svg")}html.light .page-ambassadors #benefits-list #benefits-05{content:url("../img/ambassadors/lightmode/benefits-05.svg")}html.light .page-ambassadors #benefits-list #benefits-06{content:url("../img/ambassadors/lightmode/benefits-06.svg")}html.light .page-ambassadors #eligibility-list #eligibility-01{content:url("../img/ambassadors/lightmode/eligibility-01.svg")}html.light .page-ambassadors #eligibility-list #eligibility-02{content:url("../img/ambassadors/lightmode/eligibility-02.svg")}html.light .page-ambassadors #eligibility-list #eligibility-03{content:url("../img/ambassadors/lightmode/eligibility-03.svg")}html.light .page-ambassadors #eligibility-list #eligibility-04{content:url("../img/ambassadors/lightmode/eligibility-04.svg")}html.light .page-ambassadors #eligibility-list #eligibility-05{content:url("../img/ambassadors/lightmode/eligibility-05.svg")}html.light .page-funding .funding-list #funding-01{content:url("../img/funding/lightmode/funding-01.svg")}html.light .page-funding .funding-list #funding-02{content:url("../img/funding/lightmode/funding-02.svg")}html.light .page-funding .funding-list #funding-03{content:url("../img/funding/lightmode/funding-03.svg")}html.light .page-funding .funding-list #funding-04{content:url("../img/funding/lightmode/funding-04.svg")}html.light .page-funding #xrplGrantsDark{filter:invert(100%) brightness(0.8)}html.light .page-impact .connect-list #connect-01{content:url("../img/impact/lightmode/connect-01.svg")}html.light .page-impact .connect-list #connect-02{content:url("../img/impact/lightmode/connect-02.svg")}html.light .page-impact .connect-list #connect-03{content:url("../img/impact/lightmode/connect-03.svg")}html.light .page-impact .connect-list #connect-04{content:url("../img/impact/lightmode/connect-04.svg")}html.light .page-impact #map-light{display:block}html.light .page-impact #map-dark{display:none}html.light main article .card-grid{color:#000}html.light main article .card-grid code{background-color:#d6fae7}html.light main article .card-grid .card-icon-container,html.light main article .card-grid.card-grid-3xN .card-icon-container{background:#c1c1c2}html.light [data-component-name="Footer/Footer"] [data-component-name="Footer/FooterColumn"]{text-shadow:#f5f5f7 0px 0px 2px,#f5f5f7 1px 1px 2px,#f5f5f7 2px 2px 3px,#f5f5f7 2px 2px 4px,#f5f5f7 2px 2px 5px,#f5f5f7 2px 2px 6px,#f5f5f7 -1px -1px 2px,#f5f5f7 -2px -2px 3px,#f5f5f7 -2px -2px 4px}html.light .dev-blog .text-bg{background-color:#fff}html.light .dev-blog #card-date{color:#454549}html.light .dev-blog .category-header{color:#111112}html.light .dev-blog label{color:#343437}html.light .dev-blog .blog-filter[type=checkbox]::before{background:#f5f5f7}html.light .dev-blog .blog-filter[type=checkbox]:checked::before{background:#f5f5f7}html.light .dev-blog .blog-filter[type=checkbox]:not(:disabled):checked:hover::after{background-image:url(../img/blog/blog-check-light-mode.svg)}html.light .dev-blog .blog-filter[type=checkbox]:not(:disabled):hover::before{background:#f5f5f7}html.light .dev-blog .blog-filter[type=checkbox]:not(:disabled):hover::after{background:#f5f5f7}html.light .dev-blog .post-date{text-decoration:overline solid #145c35 10%}html.light .dev-blog #general-badge{background-color:#fff;color:#343437}html.light .dev-blog #release_notes-badge{background-color:#32e685;color:#145c35}html.light .dev-blog #advisories-badge{background-color:#ff6719;color:#4c1a00}html.light .dev-blog #amendments-badge{background-color:#faff19;color:#4b4c00}html.light .dev-blog #development-badge{background-color:#7919ff;color:#20004c}html.light .dev-blog #developer_reflections-badge{background-color:#19a3ff;color:#002e4c}html.light .dev-blog #gateway_bulletins-badge{background-color:#d919ff;color:#40004c}html.light .dev-blog #features-badge{background-color:#32e685;color:#145c35}html.light .dev-blog #security-badge{background-color:#ff198b;color:#4c0026}html.light .dev-blog .dropdown-btn{color:#111112;background-color:#e0e0e1;border-color:#e0e0e1}html.light .dev-blog .dropdown-btn img{content:url("../img/icons/lightmode/chevron-arrow-down.svg")}html.light .dev-blog .dropdown-content{background-color:#e0e0e1}html.light .page-tokenization .project-cards .project-logo{filter:invert(100%)}html.light .page-tokenization .article-card{background-color:#fff}html.light .page-tokenization .article-card-background{filter:drop-shadow(0px 1px 18px rgba(24, 24, 24, 0.5))}html.light .page-tokenization .evernode{content:url("../img/logos/evernode.svg")}html.light .page-tokenization .prev img{content:url("../img/icons/prev_light.svg")}html.light .page-tokenization .next img{content:url("../img/icons/prev_light.svg");transform:scaleX(-1)}html.light .page-tokenization .arrow-button{background-color:#e0e0e1}html.light .page-rwa-tokenization .section-title{color:#000}html.light .page-rwa-tokenization .utility-card .utility-title{color:#000}html.light .page-rwa-tokenization .utility-card .utility-description{color:#000}html.light .page-rwa-tokenization .benefit-icon.low-fees{background-image:url(../img/tokenization/lightmode/low-fees.png)}html.light .page-rwa-tokenization .benefit-icon.access{background-image:url(../img/tokenization/lightmode/cross-chain.png)}html.light .page-rwa-tokenization .benefit-icon.native-compliance{background-image:url(../img/tokenization/lightmode/native-compliance.png)}html.light .page-rwa-tokenization .benefit-icon.delegated-token-management{background-image:url(../img/tokenization/lightmode/delegated-token-management.png)}html.light .page-rwa-tokenization .company-logo.open-eden{background-image:url(../img/tokenization/lightmode/open-eden.png)}html.light .page-rwa-tokenization .company-logo.zoniqx{background-image:url(../img/tokenization/lightmode/zoniqx.png)}html.light .page-rwa-tokenization .company-logo.axiology{background-image:url(../img/tokenization/lightmode/axiology.png)}html.light .page-rwa-tokenization .company-logo.archax{background-image:url(../img/tokenization/lightmode/archax.png)}html.light .page-rwa-tokenization .company-logo.meld{background-image:url(../img/tokenization/lightmode/meld.png)}html.light .page-rwa-tokenization .company-logo.palisade{background-image:url(../img/tokenization/lightmode/palisade.png)}html.light .page-rwa-tokenization .company-logo.ripple-logo{background-image:url(../img/tokenization/lightmode/ripple-logo.png)}html.light .page-rwa-tokenization .company-logo.ondo{background-image:url(../img/tokenization/lightmode/ondo.png)}html.light .page-rwa-tokenization .company-logo.hidden-road{background-image:url(../img/tokenization/lightmode/hidden-road.png)}html.light .page-rwa-tokenization .token-features-section .btn-link{color:#7919ff}html.light .page-rwa-tokenization .card-description a{color:#7919ff !important}html.light .page-rwa-tokenization .developer-tools__image{background-image:url("../img/tokenization/lightmode/graphic.png")}html.light .page-rwa-tokenization .right-arrow-item::after{content:url("../img/icons/lightmode/arrow-right-purple.svg")}html.light .page-rwa-tokenization .token-video-text-container p{color:var(--XRPL-Primary-Black, #000)}html.light .page-rwa-tokenization .cards-title-token{color:var(--XRPL-Primary-Black, #000)}html.light .page-rwa-tokenization .benefit-card{background:#fff}html.light .page-rwa-tokenization .benefit-card .benefit-title{color:var(--XRPL-Primary-Black, #000)}html.light .page-rwa-tokenization .benefit-card .benefit-description{color:var(--XRPL-Black-Black-80, #232325)}html.light .page-rwa-tokenization .developer-tools__description{color:var(--XRPL-Primary-Black, #000)}html.light .page-rwa-tokenization .feature-item__title{color:var(--XRPL-Primary-Black, #000)}html.light .page-rwa-tokenization .feature-item__divider{background-color:#000}html.light .page-rwa-tokenization .rwa-subtitle{color:var(--XRPL-Primary-Black, #000)}html.light .page-rwa-tokenization .feature-title{color:var(--XRPL-Primary-Black, #000)}html.light .page-rwa-tokenization .feature-description{color:var(--XRPL-Black-Black-80, #232325)}html.light .page-rwa-tokenization .com-card-link{color:#7919ff !important}html.light .use-case-payments .payments-integration-section .integration-column__title{color:var(--XRPL-Primary-Black, #000)}html.light .use-case-payments .payments-integration-section .integration-column__subtitle{color:var(--XRPL-Black-Black-80, #232325)}html.light .use-case-payments .payments-integration-section .feature-item__title{color:var(--XRPL-Primary-Black, #000)}html.light .use-case-payments .payments-integration-section .feature-item__divider{background-color:#000}html.light .use-case-payments .payments-project-card{background:#fff;box-shadow:none}html.light .use-case-payments .payments-project-card .first-word{color:var(--XRPL-Black-Black-80, #232325)}html.light .use-case-payments .payments-project-card .rest-text{color:var(--XRPL-Black-Black-80, #232325)}html.light .use-case-payments .payments-project-card .project-logo img.ripple-usd{content:url("../img/uses/lightmode/payments/rlusd.png")}html.light .use-case-payments .payments-project-card .project-logo img.usdc{content:url("../img/uses/lightmode/payments/usdc.png")}html.light .use-case-payments .payments-project-card .project-logo img.usdb{content:url("../img/uses/lightmode/payments/usdb.png")}html.light .use-case-payments .payments-project-card .project-logo img.europ{content:url("../img/uses/lightmode/payments/erop.png")}html.light .use-case-payments .payments-project-card .project-logo img.xsgd{content:url("../img/uses/lightmode/payments/xsgd.png")}html.light .use-case-payments .payments-project-card .project-logo img.audd{content:url("../img/uses/lightmode/payments/audd.png")}html.light .use-case-payments .advantages-section .advantage-item strong{color:var(--XRPL-Black-Black-80, #232325)}html.light #embedded-payments-list #digital-wallets{content:url("../img/uses/lightmode/payments/digital-wallet.png")}html.light #embedded-payments-list #cross-border-remittance{content:url("../img/uses/lightmode/payments/cross-border.png")}html.light #embedded-payments-list #regulated-foreign-exchange{content:url("../img/uses/lightmode/payments/regulated.png")}html.light #embedded-payments-list #merchant-settlement{content:url("../img/uses/lightmode/payments/merchant-settlement.png")}html.light #embedded-payments-list #b2b-payment-rails{content:url("../img/uses/lightmode/payments/b2b-payment.png")}html.light #embedded-payments-list #compliance-first-payment-acceptance{content:url("../img/uses/lightmode/payments/compliance.png")}html.light .use-case-payments .battle-tested-section .payments-project-card{background:#fff !important}html.light .use-case-payments .battle-tested-section .payments-project-card .project-logo img.coinpayments{content:url("../img/uses/lightmode/payments/coinpayments.png")}html.light .use-case-payments .battle-tested-section .payments-project-card .project-logo img.ripple{content:url("../img/uses/lightmode/payments/ripple-black.png")}html.light .use-case-payments .battle-tested-section .payments-project-card .project-logo img.friipay{content:url("../img/uses/lightmode/payments/friipay.png")} + */ +:root { + --blue: #19a3ff; + --indigo: #6610f2; + --purple: #9a52ff; + --pink: #ff198b; + --red: #dc3545; + --orange: #ff6719; + --yellow: #faff19; + --green: #32e685; + --teal: #20c997; + --cyan: #17a2b8; + --white: #ffffff; + --gray: #454549; + --gray-dark: #232325; + --primary: #9a52ff; + --secondary: #e0e0e1; + --success: #32e685; + --info: #19a3ff; + --warning: #faff19; + --danger: #ff198b; + --light: #ffffff; + --dark: #111112; + --breakpoint-xs: 0; + --breakpoint-sm: 576px; + --breakpoint-md: 768px; + --breakpoint-lg: 992px; + --breakpoint-xl: 1200px; + --font-family-sans-serif: + 'Work Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif; + --font-family-monospace: 'Space Mono', monospace; +} +*, +*::before, +*::after { + box-sizing: border-box; +} +html { + font-family: sans-serif; + line-height: 1.15; + -webkit-text-size-adjust: 100%; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} +article, +aside, +figcaption, +figure, +footer, +header, +hgroup, +main, +nav, +section { + display: block; +} +body { + margin: 0; + font-family: + 'Work Sans', + -apple-system, + BlinkMacSystemFont, + 'Segoe UI', + Roboto, + Oxygen-Sans, + Ubuntu, + Cantarell, + 'Helvetica Neue', + sans-serif; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #e0e0e1; + text-align: left; + background-color: #111112; +} +[tabindex='-1']:focus:not(:focus-visible) { + outline: 0 !important; +} +hr { + box-sizing: content-box; + height: 0; + overflow: visible; +} +h1, +h2, +h3, +h4, +h5, +h6 { + margin-top: 0; + margin-bottom: 0.5rem; +} +p { + margin-top: 0; + margin-bottom: 1rem; +} +abbr[title], +abbr[data-original-title] { + text-decoration: underline; + text-decoration: underline dotted; + cursor: help; + border-bottom: 0; + text-decoration-skip-ink: none; +} +address { + margin-bottom: 1rem; + font-style: normal; + line-height: inherit; +} +ol, +ul, +dl { + margin-top: 0; + margin-bottom: 1rem; +} +ol ol, +ul ul, +ol ul, +ul ol { + margin-bottom: 0; +} +dt { + font-weight: 700; +} +dd { + margin-bottom: 0.5rem; + margin-left: 0; +} +blockquote { + margin: 0 0 1rem; +} +b, +strong { + font-weight: bolder; +} +small { + font-size: 80%; +} +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} +sub { + bottom: -0.25em; +} +sup { + top: -0.5em; +} +a { + color: #fff; + text-decoration: none; + background-color: transparent; +} +a:hover { + color: #9a52ff; + text-decoration: underline; +} +a:not([href]):not([class]) { + color: inherit; + text-decoration: none; +} +a:not([href]):not([class]):hover { + color: inherit; + text-decoration: none; +} +pre, +code, +kbd, +samp { + font-family: 'Space Mono', monospace; + font-size: 1em; +} +pre { + margin-top: 0; + margin-bottom: 1rem; + overflow: auto; + -ms-overflow-style: scrollbar; +} +figure { + margin: 0 0 1rem; +} +img { + vertical-align: middle; + border-style: none; +} +svg { + overflow: hidden; + vertical-align: middle; +} +table { + border-collapse: collapse; +} +caption { + padding-top: 0.75rem; + padding-bottom: 0.75rem; + color: #e0e0e1; + text-align: left; + caption-side: bottom; +} +th { + text-align: inherit; + text-align: -webkit-match-parent; +} +label { + display: inline-block; + margin-bottom: 0.5rem; +} +button { + border-radius: 0; +} +button:focus:not(:focus-visible) { + outline: 0; +} +input, +button, +select, +optgroup, +textarea { + margin: 0; + font-family: inherit; + font-size: inherit; + line-height: inherit; +} +button, +input { + overflow: visible; +} +button, +select { + text-transform: none; +} +[role='button'] { + cursor: pointer; +} +select { + word-wrap: normal; +} +button, +[type='button'], +[type='reset'], +[type='submit'] { + -webkit-appearance: button; +} +button:not(:disabled), +[type='button']:not(:disabled), +[type='reset']:not(:disabled), +[type='submit']:not(:disabled) { + cursor: pointer; +} +button::-moz-focus-inner, +[type='button']::-moz-focus-inner, +[type='reset']::-moz-focus-inner, +[type='submit']::-moz-focus-inner { + padding: 0; + border-style: none; +} +input[type='radio'], +input[type='checkbox'] { + box-sizing: border-box; + padding: 0; +} +textarea { + overflow: auto; + resize: vertical; +} +fieldset { + min-width: 0; + padding: 0; + margin: 0; + border: 0; +} +legend { + display: block; + width: 100%; + max-width: 100%; + padding: 0; + margin-bottom: 0.5rem; + font-size: 1.5rem; + line-height: inherit; + color: inherit; + white-space: normal; +} +progress { + vertical-align: baseline; +} +[type='number']::-webkit-inner-spin-button, +[type='number']::-webkit-outer-spin-button { + height: auto; +} +[type='search'] { + outline-offset: -2px; + -webkit-appearance: none; +} +[type='search']::-webkit-search-decoration { + -webkit-appearance: none; +} +::-webkit-file-upload-button { + font: inherit; + -webkit-appearance: button; +} +output { + display: inline-block; +} +summary { + display: list-item; + cursor: pointer; +} +template { + display: none; +} +[hidden] { + display: none !important; +} +h1, +h2, +h3, +h4, +h5, +h6, +.h1, +.h2, +.h3, +.h4, +.h5, +.h6 { + margin-bottom: 0.5rem; + font-weight: 500; + line-height: 1.2; + color: #fff; +} +h1, +.h1 { + font-size: 2.5rem; +} +h2, +.h2 { + font-size: 2rem; +} +h3, +.h3 { + font-size: 1.75rem; +} +h4, +.h4 { + font-size: 1.5rem; +} +h5, +.h5 { + font-size: 1.25rem; +} +h6, +.h6 { + font-size: 1rem; +} +.lead { + font-size: 1.25rem; + font-weight: 300; +} +.display-1 { + font-size: 6rem; + font-weight: 300; + line-height: 1.2; +} +.display-2 { + font-size: 5.5rem; + font-weight: 300; + line-height: 1.2; +} +.display-3 { + font-size: 4.5rem; + font-weight: 300; + line-height: 1.2; +} +.display-4 { + font-size: 3.5rem; + font-weight: 300; + line-height: 1.2; +} +hr { + margin-top: 1rem; + margin-bottom: 1rem; + border: 0; + border-top: 1px solid rgba(0, 0, 0, 0.1); +} +small, +.small { + font-size: 0.875em; + font-weight: 400; +} +mark, +.mark { + padding: 0.2em; + background-color: #fcf8e3; +} +.list-unstyled { + padding-left: 0; + list-style: none; +} +.list-inline { + padding-left: 0; + list-style: none; +} +.list-inline-item { + display: inline-block; +} +.list-inline-item:not(:last-child) { + margin-right: 0.5rem; +} +.initialism { + font-size: 90%; + text-transform: uppercase; +} +.blockquote { + margin-bottom: 1rem; + font-size: 1.25rem; +} +.blockquote-footer { + display: block; + font-size: 0.875em; + color: #454549; +} +.blockquote-footer::before { + content: '— '; +} +.img-fluid { + max-width: 100%; + height: auto; +} +.img-thumbnail { + padding: 0.25rem; + background-color: #111112; + border: 1px solid #c1c1c2; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075); + max-width: 100%; + height: auto; +} +.figure { + display: inline-block; +} +.figure-img { + margin-bottom: 0.5rem; + line-height: 1; +} +.figure-caption { + font-size: 90%; + color: #454549; +} +code { + font-size: 87.5%; + color: #e0e0e1; + word-wrap: break-word; +} +a > code { + color: inherit; +} +kbd { + padding: 0.2rem 0.4rem; + font-size: 87.5%; + color: #fff; + background-color: #111112; + border-radius: 4px; + box-shadow: inset 0 -0.1rem 0 rgba(0, 0, 0, 0.25); +} +kbd kbd { + padding: 0; + font-size: 100%; + font-weight: 700; + box-shadow: none; +} +pre { + display: block; + font-size: 87.5%; + color: #111112; +} +pre code { + font-size: inherit; + color: inherit; + word-break: normal; +} +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} +.container, +.container-fluid, +.container-xl, +.container-lg, +.container-md, +.container-sm { + width: 100%; + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; +} +@media (min-width: 576px) { + .container-sm, + .container { + max-width: 540px; + } +} +@media (min-width: 768px) { + .container-md, + .container-sm, + .container { + max-width: 720px; + } +} +@media (min-width: 992px) { + .container-lg, + .container-md, + .container-sm, + .container { + max-width: 960px; + } +} +@media (min-width: 1200px) { + .container-xl, + .container-lg, + .container-md, + .container-sm, + .container { + max-width: 1140px; + } +} +.row { + display: flex; + flex-wrap: wrap; + margin-right: -15px; + margin-left: -15px; +} +.no-gutters { + margin-right: 0; + margin-left: 0; +} +.no-gutters > .col, +.no-gutters > [class*='col-'] { + padding-right: 0; + padding-left: 0; +} +.col-xl, +.col-xl-auto, +.col-xl-12, +.col-xl-11, +.col-xl-10, +.col-xl-9, +.col-xl-8, +.col-xl-7, +.col-xl-6, +.col-xl-5, +.col-xl-4, +.col-xl-3, +.col-xl-2, +.col-xl-1, +.col-lg, +.col-lg-auto, +.col-lg-12, +.col-lg-11, +.col-lg-10, +.col-lg-9, +.col-lg-8, +.col-lg-7, +.col-lg-6, +.col-lg-5, +.col-lg-4, +.col-lg-3, +.col-lg-2, +.col-lg-1, +.col-md, +.col-md-auto, +.col-md-12, +.col-md-11, +.col-md-10, +.col-md-9, +.col-md-8, +.col-md-7, +.col-md-6, +.col-md-5, +.col-md-4, +.col-md-3, +.col-md-2, +.col-md-1, +.col-sm, +.col-sm-auto, +.col-sm-12, +.col-sm-11, +.col-sm-10, +.col-sm-9, +.col-sm-8, +.col-sm-7, +.col-sm-6, +.col-sm-5, +.col-sm-4, +.col-sm-3, +.col-sm-2, +.col-sm-1, +.col, +.col-auto, +.col-12, +.col-11, +.col-10, +.col-9, +.col-8, +.col-7, +.col-6, +.col-5, +.col-4, +.col-3, +.col-2, +.col-1 { + position: relative; + width: 100%; + padding-right: 15px; + padding-left: 15px; +} +.col { + flex-basis: 0; + flex-grow: 1; + max-width: 100%; +} +.row-cols-1 > * { + flex: 0 0 100%; + max-width: 100%; +} +.row-cols-2 > * { + flex: 0 0 50%; + max-width: 50%; +} +.row-cols-3 > * { + flex: 0 0 33.3333333333%; + max-width: 33.3333333333%; +} +.row-cols-4 > * { + flex: 0 0 25%; + max-width: 25%; +} +.row-cols-5 > * { + flex: 0 0 20%; + max-width: 20%; +} +.row-cols-6 > * { + flex: 0 0 16.6666666667%; + max-width: 16.6666666667%; +} +.col-auto { + flex: 0 0 auto; + width: auto; + max-width: 100%; +} +.col-1 { + flex: 0 0 8.33333333%; + max-width: 8.33333333%; +} +.col-2 { + flex: 0 0 16.66666667%; + max-width: 16.66666667%; +} +.col-3 { + flex: 0 0 25%; + max-width: 25%; +} +.col-4 { + flex: 0 0 33.33333333%; + max-width: 33.33333333%; +} +.col-5 { + flex: 0 0 41.66666667%; + max-width: 41.66666667%; +} +.col-6 { + flex: 0 0 50%; + max-width: 50%; +} +.col-7 { + flex: 0 0 58.33333333%; + max-width: 58.33333333%; +} +.col-8 { + flex: 0 0 66.66666667%; + max-width: 66.66666667%; +} +.col-9 { + flex: 0 0 75%; + max-width: 75%; +} +.col-10 { + flex: 0 0 83.33333333%; + max-width: 83.33333333%; +} +.col-11 { + flex: 0 0 91.66666667%; + max-width: 91.66666667%; +} +.col-12 { + flex: 0 0 100%; + max-width: 100%; +} +.order-first { + order: -1; +} +.order-last { + order: 13; +} +.order-0 { + order: 0; +} +.order-1 { + order: 1; +} +.order-2 { + order: 2; +} +.order-3 { + order: 3; +} +.order-4 { + order: 4; +} +.order-5 { + order: 5; +} +.order-6 { + order: 6; +} +.order-7 { + order: 7; +} +.order-8 { + order: 8; +} +.order-9 { + order: 9; +} +.order-10 { + order: 10; +} +.order-11 { + order: 11; +} +.order-12 { + order: 12; +} +.offset-1 { + margin-left: 8.33333333%; +} +.offset-2 { + margin-left: 16.66666667%; +} +.offset-3 { + margin-left: 25%; +} +.offset-4 { + margin-left: 33.33333333%; +} +.offset-5 { + margin-left: 41.66666667%; +} +.offset-6 { + margin-left: 50%; +} +.offset-7 { + margin-left: 58.33333333%; +} +.offset-8 { + margin-left: 66.66666667%; +} +.offset-9 { + margin-left: 75%; +} +.offset-10 { + margin-left: 83.33333333%; +} +.offset-11 { + margin-left: 91.66666667%; +} +@media (min-width: 576px) { + .col-sm { + flex-basis: 0; + flex-grow: 1; + max-width: 100%; + } + .row-cols-sm-1 > * { + flex: 0 0 100%; + max-width: 100%; + } + .row-cols-sm-2 > * { + flex: 0 0 50%; + max-width: 50%; + } + .row-cols-sm-3 > * { + flex: 0 0 33.3333333333%; + max-width: 33.3333333333%; + } + .row-cols-sm-4 > * { + flex: 0 0 25%; + max-width: 25%; + } + .row-cols-sm-5 > * { + flex: 0 0 20%; + max-width: 20%; + } + .row-cols-sm-6 > * { + flex: 0 0 16.6666666667%; + max-width: 16.6666666667%; + } + .col-sm-auto { + flex: 0 0 auto; + width: auto; + max-width: 100%; + } + .col-sm-1 { + flex: 0 0 8.33333333%; + max-width: 8.33333333%; + } + .col-sm-2 { + flex: 0 0 16.66666667%; + max-width: 16.66666667%; + } + .col-sm-3 { + flex: 0 0 25%; + max-width: 25%; + } + .col-sm-4 { + flex: 0 0 33.33333333%; + max-width: 33.33333333%; + } + .col-sm-5 { + flex: 0 0 41.66666667%; + max-width: 41.66666667%; + } + .col-sm-6 { + flex: 0 0 50%; + max-width: 50%; + } + .col-sm-7 { + flex: 0 0 58.33333333%; + max-width: 58.33333333%; + } + .col-sm-8 { + flex: 0 0 66.66666667%; + max-width: 66.66666667%; + } + .col-sm-9 { + flex: 0 0 75%; + max-width: 75%; + } + .col-sm-10 { + flex: 0 0 83.33333333%; + max-width: 83.33333333%; + } + .col-sm-11 { + flex: 0 0 91.66666667%; + max-width: 91.66666667%; + } + .col-sm-12 { + flex: 0 0 100%; + max-width: 100%; + } + .order-sm-first { + order: -1; + } + .order-sm-last { + order: 13; + } + .order-sm-0 { + order: 0; + } + .order-sm-1 { + order: 1; + } + .order-sm-2 { + order: 2; + } + .order-sm-3 { + order: 3; + } + .order-sm-4 { + order: 4; + } + .order-sm-5 { + order: 5; + } + .order-sm-6 { + order: 6; + } + .order-sm-7 { + order: 7; + } + .order-sm-8 { + order: 8; + } + .order-sm-9 { + order: 9; + } + .order-sm-10 { + order: 10; + } + .order-sm-11 { + order: 11; + } + .order-sm-12 { + order: 12; + } + .offset-sm-0 { + margin-left: 0; + } + .offset-sm-1 { + margin-left: 8.33333333%; + } + .offset-sm-2 { + margin-left: 16.66666667%; + } + .offset-sm-3 { + margin-left: 25%; + } + .offset-sm-4 { + margin-left: 33.33333333%; + } + .offset-sm-5 { + margin-left: 41.66666667%; + } + .offset-sm-6 { + margin-left: 50%; + } + .offset-sm-7 { + margin-left: 58.33333333%; + } + .offset-sm-8 { + margin-left: 66.66666667%; + } + .offset-sm-9 { + margin-left: 75%; + } + .offset-sm-10 { + margin-left: 83.33333333%; + } + .offset-sm-11 { + margin-left: 91.66666667%; + } +} +@media (min-width: 768px) { + .col-md { + flex-basis: 0; + flex-grow: 1; + max-width: 100%; + } + .row-cols-md-1 > * { + flex: 0 0 100%; + max-width: 100%; + } + .row-cols-md-2 > * { + flex: 0 0 50%; + max-width: 50%; + } + .row-cols-md-3 > * { + flex: 0 0 33.3333333333%; + max-width: 33.3333333333%; + } + .row-cols-md-4 > * { + flex: 0 0 25%; + max-width: 25%; + } + .row-cols-md-5 > * { + flex: 0 0 20%; + max-width: 20%; + } + .row-cols-md-6 > * { + flex: 0 0 16.6666666667%; + max-width: 16.6666666667%; + } + .col-md-auto { + flex: 0 0 auto; + width: auto; + max-width: 100%; + } + .col-md-1 { + flex: 0 0 8.33333333%; + max-width: 8.33333333%; + } + .col-md-2 { + flex: 0 0 16.66666667%; + max-width: 16.66666667%; + } + .col-md-3 { + flex: 0 0 25%; + max-width: 25%; + } + .col-md-4 { + flex: 0 0 33.33333333%; + max-width: 33.33333333%; + } + .col-md-5 { + flex: 0 0 41.66666667%; + max-width: 41.66666667%; + } + .col-md-6 { + flex: 0 0 50%; + max-width: 50%; + } + .col-md-7 { + flex: 0 0 58.33333333%; + max-width: 58.33333333%; + } + .col-md-8 { + flex: 0 0 66.66666667%; + max-width: 66.66666667%; + } + .col-md-9 { + flex: 0 0 75%; + max-width: 75%; + } + .col-md-10 { + flex: 0 0 83.33333333%; + max-width: 83.33333333%; + } + .col-md-11 { + flex: 0 0 91.66666667%; + max-width: 91.66666667%; + } + .col-md-12 { + flex: 0 0 100%; + max-width: 100%; + } + .order-md-first { + order: -1; + } + .order-md-last { + order: 13; + } + .order-md-0 { + order: 0; + } + .order-md-1 { + order: 1; + } + .order-md-2 { + order: 2; + } + .order-md-3 { + order: 3; + } + .order-md-4 { + order: 4; + } + .order-md-5 { + order: 5; + } + .order-md-6 { + order: 6; + } + .order-md-7 { + order: 7; + } + .order-md-8 { + order: 8; + } + .order-md-9 { + order: 9; + } + .order-md-10 { + order: 10; + } + .order-md-11 { + order: 11; + } + .order-md-12 { + order: 12; + } + .offset-md-0 { + margin-left: 0; + } + .offset-md-1 { + margin-left: 8.33333333%; + } + .offset-md-2 { + margin-left: 16.66666667%; + } + .offset-md-3 { + margin-left: 25%; + } + .offset-md-4 { + margin-left: 33.33333333%; + } + .offset-md-5 { + margin-left: 41.66666667%; + } + .offset-md-6 { + margin-left: 50%; + } + .offset-md-7 { + margin-left: 58.33333333%; + } + .offset-md-8 { + margin-left: 66.66666667%; + } + .offset-md-9 { + margin-left: 75%; + } + .offset-md-10 { + margin-left: 83.33333333%; + } + .offset-md-11 { + margin-left: 91.66666667%; + } +} +@media (min-width: 992px) { + .col-lg { + flex-basis: 0; + flex-grow: 1; + max-width: 100%; + } + .row-cols-lg-1 > * { + flex: 0 0 100%; + max-width: 100%; + } + .row-cols-lg-2 > * { + flex: 0 0 50%; + max-width: 50%; + } + .row-cols-lg-3 > * { + flex: 0 0 33.3333333333%; + max-width: 33.3333333333%; + } + .row-cols-lg-4 > * { + flex: 0 0 25%; + max-width: 25%; + } + .row-cols-lg-5 > * { + flex: 0 0 20%; + max-width: 20%; + } + .row-cols-lg-6 > * { + flex: 0 0 16.6666666667%; + max-width: 16.6666666667%; + } + .col-lg-auto { + flex: 0 0 auto; + width: auto; + max-width: 100%; + } + .col-lg-1 { + flex: 0 0 8.33333333%; + max-width: 8.33333333%; + } + .col-lg-2 { + flex: 0 0 16.66666667%; + max-width: 16.66666667%; + } + .col-lg-3 { + flex: 0 0 25%; + max-width: 25%; + } + .col-lg-4 { + flex: 0 0 33.33333333%; + max-width: 33.33333333%; + } + .col-lg-5 { + flex: 0 0 41.66666667%; + max-width: 41.66666667%; + } + .col-lg-6 { + flex: 0 0 50%; + max-width: 50%; + } + .col-lg-7 { + flex: 0 0 58.33333333%; + max-width: 58.33333333%; + } + .col-lg-8 { + flex: 0 0 66.66666667%; + max-width: 66.66666667%; + } + .col-lg-9 { + flex: 0 0 75%; + max-width: 75%; + } + .col-lg-10 { + flex: 0 0 83.33333333%; + max-width: 83.33333333%; + } + .col-lg-11 { + flex: 0 0 91.66666667%; + max-width: 91.66666667%; + } + .col-lg-12 { + flex: 0 0 100%; + max-width: 100%; + } + .order-lg-first { + order: -1; + } + .order-lg-last { + order: 13; + } + .order-lg-0 { + order: 0; + } + .order-lg-1 { + order: 1; + } + .order-lg-2 { + order: 2; + } + .order-lg-3 { + order: 3; + } + .order-lg-4 { + order: 4; + } + .order-lg-5 { + order: 5; + } + .order-lg-6 { + order: 6; + } + .order-lg-7 { + order: 7; + } + .order-lg-8 { + order: 8; + } + .order-lg-9 { + order: 9; + } + .order-lg-10 { + order: 10; + } + .order-lg-11 { + order: 11; + } + .order-lg-12 { + order: 12; + } + .offset-lg-0 { + margin-left: 0; + } + .offset-lg-1 { + margin-left: 8.33333333%; + } + .offset-lg-2 { + margin-left: 16.66666667%; + } + .offset-lg-3 { + margin-left: 25%; + } + .offset-lg-4 { + margin-left: 33.33333333%; + } + .offset-lg-5 { + margin-left: 41.66666667%; + } + .offset-lg-6 { + margin-left: 50%; + } + .offset-lg-7 { + margin-left: 58.33333333%; + } + .offset-lg-8 { + margin-left: 66.66666667%; + } + .offset-lg-9 { + margin-left: 75%; + } + .offset-lg-10 { + margin-left: 83.33333333%; + } + .offset-lg-11 { + margin-left: 91.66666667%; + } +} +@media (min-width: 1200px) { + .col-xl { + flex-basis: 0; + flex-grow: 1; + max-width: 100%; + } + .row-cols-xl-1 > * { + flex: 0 0 100%; + max-width: 100%; + } + .row-cols-xl-2 > * { + flex: 0 0 50%; + max-width: 50%; + } + .row-cols-xl-3 > * { + flex: 0 0 33.3333333333%; + max-width: 33.3333333333%; + } + .row-cols-xl-4 > * { + flex: 0 0 25%; + max-width: 25%; + } + .row-cols-xl-5 > * { + flex: 0 0 20%; + max-width: 20%; + } + .row-cols-xl-6 > * { + flex: 0 0 16.6666666667%; + max-width: 16.6666666667%; + } + .col-xl-auto { + flex: 0 0 auto; + width: auto; + max-width: 100%; + } + .col-xl-1 { + flex: 0 0 8.33333333%; + max-width: 8.33333333%; + } + .col-xl-2 { + flex: 0 0 16.66666667%; + max-width: 16.66666667%; + } + .col-xl-3 { + flex: 0 0 25%; + max-width: 25%; + } + .col-xl-4 { + flex: 0 0 33.33333333%; + max-width: 33.33333333%; + } + .col-xl-5 { + flex: 0 0 41.66666667%; + max-width: 41.66666667%; + } + .col-xl-6 { + flex: 0 0 50%; + max-width: 50%; + } + .col-xl-7 { + flex: 0 0 58.33333333%; + max-width: 58.33333333%; + } + .col-xl-8 { + flex: 0 0 66.66666667%; + max-width: 66.66666667%; + } + .col-xl-9 { + flex: 0 0 75%; + max-width: 75%; + } + .col-xl-10 { + flex: 0 0 83.33333333%; + max-width: 83.33333333%; + } + .col-xl-11 { + flex: 0 0 91.66666667%; + max-width: 91.66666667%; + } + .col-xl-12 { + flex: 0 0 100%; + max-width: 100%; + } + .order-xl-first { + order: -1; + } + .order-xl-last { + order: 13; + } + .order-xl-0 { + order: 0; + } + .order-xl-1 { + order: 1; + } + .order-xl-2 { + order: 2; + } + .order-xl-3 { + order: 3; + } + .order-xl-4 { + order: 4; + } + .order-xl-5 { + order: 5; + } + .order-xl-6 { + order: 6; + } + .order-xl-7 { + order: 7; + } + .order-xl-8 { + order: 8; + } + .order-xl-9 { + order: 9; + } + .order-xl-10 { + order: 10; + } + .order-xl-11 { + order: 11; + } + .order-xl-12 { + order: 12; + } + .offset-xl-0 { + margin-left: 0; + } + .offset-xl-1 { + margin-left: 8.33333333%; + } + .offset-xl-2 { + margin-left: 16.66666667%; + } + .offset-xl-3 { + margin-left: 25%; + } + .offset-xl-4 { + margin-left: 33.33333333%; + } + .offset-xl-5 { + margin-left: 41.66666667%; + } + .offset-xl-6 { + margin-left: 50%; + } + .offset-xl-7 { + margin-left: 58.33333333%; + } + .offset-xl-8 { + margin-left: 66.66666667%; + } + .offset-xl-9 { + margin-left: 75%; + } + .offset-xl-10 { + margin-left: 83.33333333%; + } + .offset-xl-11 { + margin-left: 91.66666667%; + } +} +.table { + width: 100%; + margin-bottom: 1rem; + color: #e0e0e1; +} +.table th, +.table td { + padding: 0.75rem; + vertical-align: top; + border-top: 1px solid #c1c1c2; +} +.table thead th { + vertical-align: bottom; + border-bottom: 2px solid #c1c1c2; +} +.table tbody + tbody { + border-top: 2px solid #c1c1c2; +} +.table-sm th, +.table-sm td { + padding: 0.3rem; +} +.table-bordered { + border: 1px solid #c1c1c2; +} +.table-bordered th, +.table-bordered td { + border: 1px solid #c1c1c2; +} +.table-bordered thead th, +.table-bordered thead td { + border-bottom-width: 2px; +} +.table-borderless th, +.table-borderless td, +.table-borderless thead th, +.table-borderless tbody + tbody { + border: 0; +} +.table-striped tbody tr:nth-of-type(odd) { + background-color: rgba(0, 0, 0, 0.05); +} +.table-hover tbody tr:hover { + color: #e0e0e1; + background-color: rgba(0, 0, 0, 0.075); +} +.table-primary, +.table-primary > th, +.table-primary > td { + background-color: #e3cfff; +} +.table-primary th, +.table-primary td, +.table-primary thead th, +.table-primary tbody + tbody { + border-color: #caa5ff; +} +.table-hover .table-primary:hover { + background-color: #d4b6ff; +} +.table-hover .table-primary:hover > td, +.table-hover .table-primary:hover > th { + background-color: #d4b6ff; +} +.table-secondary, +.table-secondary > th, +.table-secondary > td { + background-color: #f6f6f7; +} +.table-secondary th, +.table-secondary td, +.table-secondary thead th, +.table-secondary tbody + tbody { + border-color: #efefef; +} +.table-hover .table-secondary:hover { + background-color: #e9e9eb; +} +.table-hover .table-secondary:hover > td, +.table-hover .table-secondary:hover > th { + background-color: #e9e9eb; +} +.table-success, +.table-success > th, +.table-success > td { + background-color: #c6f8dd; +} +.table-success th, +.table-success td, +.table-success thead th, +.table-success tbody + tbody { + border-color: #94f2c0; +} +.table-hover .table-success:hover { + background-color: #aff5cf; +} +.table-hover .table-success:hover > td, +.table-hover .table-success:hover > th { + background-color: #aff5cf; +} +.table-info, +.table-info > th, +.table-info > td { + background-color: #bfe5ff; +} +.table-info th, +.table-info td, +.table-info thead th, +.table-info tbody + tbody { + border-color: #87cfff; +} +.table-hover .table-info:hover { + background-color: #a6dbff; +} +.table-hover .table-info:hover > td, +.table-hover .table-info:hover > th { + background-color: #a6dbff; +} +.table-warning, +.table-warning > th, +.table-warning > td { + background-color: #feffbf; +} +.table-warning th, +.table-warning td, +.table-warning thead th, +.table-warning tbody + tbody { + border-color: #fcff87; +} +.table-hover .table-warning:hover { + background-color: #feffa6; +} +.table-hover .table-warning:hover > td, +.table-hover .table-warning:hover > th { + background-color: #feffa6; +} +.table-danger, +.table-danger > th, +.table-danger > td { + background-color: #ffbfdf; +} +.table-danger th, +.table-danger td, +.table-danger thead th, +.table-danger tbody + tbody { + border-color: #ff87c3; +} +.table-hover .table-danger:hover { + background-color: #ffa6d2; +} +.table-hover .table-danger:hover > td, +.table-hover .table-danger:hover > th { + background-color: #ffa6d2; +} +.table-light, +.table-light > th, +.table-light > td { + background-color: #fff; +} +.table-light th, +.table-light td, +.table-light thead th, +.table-light tbody + tbody { + border-color: #fff; +} +.table-hover .table-light:hover { + background-color: #f2f2f2; +} +.table-hover .table-light:hover > td, +.table-hover .table-light:hover > th { + background-color: #f2f2f2; +} +.table-dark, +.table-dark > th, +.table-dark > td { + background-color: #bcbcbd; +} +.table-dark th, +.table-dark td, +.table-dark thead th, +.table-dark tbody + tbody { + border-color: #838384; +} +.table-hover .table-dark:hover { + background-color: #afafb0; +} +.table-hover .table-dark:hover > td, +.table-hover .table-dark:hover > th { + background-color: #afafb0; +} +.table-active, +.table-active > th, +.table-active > td { + background-color: rgba(0, 0, 0, 0.075); +} +.table-hover .table-active:hover { + background-color: rgba(0, 0, 0, 0.075); +} +.table-hover .table-active:hover > td, +.table-hover .table-active:hover > th { + background-color: rgba(0, 0, 0, 0.075); +} +.table .thead-dark th { + color: #fff; + background-color: #232325; + border-color: #363639; +} +.table .thead-light th { + color: #343437; + background-color: #e0e0e1; + border-color: #c1c1c2; +} +.table-dark { + color: #fff; + background-color: #232325; +} +.table-dark th, +.table-dark td, +.table-dark thead th { + border-color: #363639; +} +.table-dark.table-bordered { + border: 0; +} +.table-dark.table-striped tbody tr:nth-of-type(odd) { + background-color: rgba(255, 255, 255, 0.05); +} +.table-dark.table-hover tbody tr:hover { + color: #fff; + background-color: rgba(255, 255, 255, 0.075); +} +@media (max-width: 575.98px) { + .table-responsive-sm { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } + .table-responsive-sm > .table-bordered { + border: 0; + } +} +@media (max-width: 767.98px) { + .table-responsive-md { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } + .table-responsive-md > .table-bordered { + border: 0; + } +} +@media (max-width: 991.98px) { + .table-responsive-lg { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } + .table-responsive-lg > .table-bordered { + border: 0; + } +} +@media (max-width: 1199.98px) { + .table-responsive-xl { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } + .table-responsive-xl > .table-bordered { + border: 0; + } +} +.table-responsive { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; +} +.table-responsive > .table-bordered { + border: 0; +} +.form-control { + display: block; + width: 100%; + height: calc(1.25em + 2rem + 2px); + padding: 1rem 1.5rem; + font-size: 1rem; + font-weight: 400; + line-height: 1.25; + color: #fff; + background-color: #232325; + background-clip: padding-box; + border: 1px solid transparent; + border-radius: 4px; + box-shadow: none; + transition: + border-color 0.15s ease-in-out, + box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .form-control { + transition: none; + } +} +.form-control::-ms-expand { + background-color: transparent; + border: 0; +} +.form-control:focus { + color: #fff; + background-color: #232325; + border-color: #e4d2ff; + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(154, 82, 255, 0.25); +} +.form-control::placeholder { + color: #a2a2a4; + opacity: 1; +} +.form-control:disabled, +.form-control[readonly] { + background-color: #454549; + opacity: 1; +} +input[type='date'].form-control, +input[type='time'].form-control, +input[type='datetime-local'].form-control, +input[type='month'].form-control { + appearance: none; +} +select.form-control:-moz-focusring { + color: transparent; + text-shadow: 0 0 0 #fff; +} +select.form-control:focus::-ms-value { + color: #fff; + background-color: #232325; +} +.form-control-file, +.form-control-range { + display: block; + width: 100%; +} +.col-form-label { + padding-top: calc(1rem + 1px); + padding-bottom: calc(1rem + 1px); + margin-bottom: 0; + font-size: inherit; + line-height: 1.25; +} +.col-form-label-lg { + padding-top: calc(0.5rem + 1px); + padding-bottom: calc(0.5rem + 1px); + font-size: 1.25rem; + line-height: 1.5; +} +.col-form-label-sm { + padding-top: calc(0.25rem + 1px); + padding-bottom: calc(0.25rem + 1px); + font-size: 0.875rem; + line-height: 1.5; +} +.form-control-plaintext { + display: block; + width: 100%; + padding: 1rem 0; + margin-bottom: 0; + font-size: 1rem; + line-height: 1.25; + color: #e0e0e1; + background-color: transparent; + border: solid transparent; + border-width: 1px 0; +} +.form-control-plaintext.form-control-sm, +.form-control-plaintext.form-control-lg { + padding-right: 0; + padding-left: 0; +} +.form-control-sm { + height: calc(1.5em + 0.5rem + 2px); + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + line-height: 1.5; + border-radius: 4px; +} +.form-control-lg { + height: calc(1.5em + 1rem + 2px); + padding: 0.5rem 1rem; + font-size: 1.25rem; + line-height: 1.5; + border-radius: 8px; +} +select.form-control[size], +select.form-control[multiple] { + height: auto; +} +textarea.form-control { + height: auto; +} +.form-group { + margin-bottom: 1rem; +} +.form-text { + display: block; + margin-top: 0.25rem; +} +.form-row { + display: flex; + flex-wrap: wrap; + margin-right: -5px; + margin-left: -5px; +} +.form-row > .col, +.form-row > [class*='col-'] { + padding-right: 5px; + padding-left: 5px; +} +.form-check { + position: relative; + display: block; + padding-left: 1.25rem; +} +.form-check-input { + position: absolute; + margin-top: 0.3rem; + margin-left: -1.25rem; +} +.form-check-input[disabled] ~ .form-check-label, +.form-check-input:disabled ~ .form-check-label { + color: #e0e0e1; +} +.form-check-label { + margin-bottom: 0; +} +.form-check-inline { + display: inline-flex; + align-items: center; + padding-left: 0; + margin-right: 0.75rem; +} +.form-check-inline .form-check-input { + position: static; + margin-top: 0; + margin-right: 0.3125rem; + margin-left: 0; +} +.valid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 0.875em; + color: #32e685; +} +.valid-tooltip { + position: absolute; + top: 100%; + left: 0; + z-index: 5; + display: none; + max-width: 100%; + padding: 0.25rem 0.5rem; + margin-top: 0.1rem; + font-size: 0.875rem; + line-height: 1.5; + color: #111112; + background-color: rgba(50, 230, 133, 0.9); + border-radius: 4px; +} +.form-row > .col > .valid-tooltip, +.form-row > [class*='col-'] > .valid-tooltip { + left: 5px; +} +.was-validated :valid ~ .valid-feedback, +.was-validated :valid ~ .valid-tooltip, +.is-valid ~ .valid-feedback, +.is-valid ~ .valid-tooltip { + display: block; +} +.was-validated .form-control:valid, +.form-control.is-valid { + border-color: #32e685; + padding-right: calc(1.25em + 2rem) !important; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2332E685' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right calc(0.3125em + 0.5rem) center; + background-size: calc(0.625em + 1rem) calc(0.625em + 1rem); +} +.was-validated .form-control:valid:focus, +.form-control.is-valid:focus { + border-color: #32e685; + box-shadow: 0 0 0 0.2rem rgba(50, 230, 133, 0.25); +} +.was-validated select.form-control:valid, +select.form-control.is-valid { + padding-right: 6rem !important; + background-position: right 3rem center; +} +.was-validated textarea.form-control:valid, +textarea.form-control.is-valid { + padding-right: calc(1.25em + 2rem); + background-position: top calc(0.3125em + 0.5rem) right calc(0.3125em + 0.5rem); +} +.was-validated .custom-select:valid, +.custom-select.is-valid { + border-color: #32e685; + padding-right: calc(0.75em + 4rem) !important; + background: + url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23232325' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") + right 1.5rem center/8px 10px no-repeat, + #232325 + url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2332E685' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") + center right 2.5rem / calc(0.625em + 1rem) calc(0.625em + 1rem) no-repeat; +} +.was-validated .custom-select:valid:focus, +.custom-select.is-valid:focus { + border-color: #32e685; + box-shadow: 0 0 0 0.2rem rgba(50, 230, 133, 0.25); +} +.was-validated .form-check-input:valid ~ .form-check-label, +.form-check-input.is-valid ~ .form-check-label { + color: #32e685; +} +.was-validated .form-check-input:valid ~ .valid-feedback, +.was-validated .form-check-input:valid ~ .valid-tooltip, +.form-check-input.is-valid ~ .valid-feedback, +.form-check-input.is-valid ~ .valid-tooltip { + display: block; +} +.was-validated .custom-control-input:valid ~ .custom-control-label, +.custom-control-input.is-valid ~ .custom-control-label { + color: #32e685; +} +.was-validated .custom-control-input:valid ~ .custom-control-label::before, +.custom-control-input.is-valid ~ .custom-control-label::before { + border-color: #32e685; +} +.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, +.custom-control-input.is-valid:checked ~ .custom-control-label::before { + border-color: #5feca0; + background-color: #5feca0; +} +.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, +.custom-control-input.is-valid:focus ~ .custom-control-label::before { + box-shadow: 0 0 0 0.2rem rgba(50, 230, 133, 0.25); +} +.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, +.custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before { + border-color: #32e685; +} +.was-validated .custom-file-input:valid ~ .custom-file-label, +.custom-file-input.is-valid ~ .custom-file-label { + border-color: #32e685; +} +.was-validated .custom-file-input:valid:focus ~ .custom-file-label, +.custom-file-input.is-valid:focus ~ .custom-file-label { + border-color: #32e685; + box-shadow: 0 0 0 0.2rem rgba(50, 230, 133, 0.25); +} +.invalid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 0.875em; + color: #ff198b; +} +.invalid-tooltip { + position: absolute; + top: 100%; + left: 0; + z-index: 5; + display: none; + max-width: 100%; + padding: 0.25rem 0.5rem; + margin-top: 0.1rem; + font-size: 0.875rem; + line-height: 1.5; + color: #fff; + background-color: rgba(255, 25, 139, 0.9); + border-radius: 4px; +} +.form-row > .col > .invalid-tooltip, +.form-row > [class*='col-'] > .invalid-tooltip { + left: 5px; +} +.was-validated :invalid ~ .invalid-feedback, +.was-validated :invalid ~ .invalid-tooltip, +.is-invalid ~ .invalid-feedback, +.is-invalid ~ .invalid-tooltip { + display: block; +} +.was-validated .form-control:invalid, +.form-control.is-invalid { + border-color: #ff198b; + padding-right: calc(1.25em + 2rem) !important; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23FF198B' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23FF198B' stroke='none'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right calc(0.3125em + 0.5rem) center; + background-size: calc(0.625em + 1rem) calc(0.625em + 1rem); +} +.was-validated .form-control:invalid:focus, +.form-control.is-invalid:focus { + border-color: #ff198b; + box-shadow: 0 0 0 0.2rem rgba(255, 25, 139, 0.25); +} +.was-validated select.form-control:invalid, +select.form-control.is-invalid { + padding-right: 6rem !important; + background-position: right 3rem center; +} +.was-validated textarea.form-control:invalid, +textarea.form-control.is-invalid { + padding-right: calc(1.25em + 2rem); + background-position: top calc(0.3125em + 0.5rem) right calc(0.3125em + 0.5rem); +} +.was-validated .custom-select:invalid, +.custom-select.is-invalid { + border-color: #ff198b; + padding-right: calc(0.75em + 4rem) !important; + background: + url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23232325' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") + right 1.5rem center/8px 10px no-repeat, + #232325 + url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23FF198B' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23FF198B' stroke='none'/%3e%3c/svg%3e") + center right 2.5rem / calc(0.625em + 1rem) calc(0.625em + 1rem) no-repeat; +} +.was-validated .custom-select:invalid:focus, +.custom-select.is-invalid:focus { + border-color: #ff198b; + box-shadow: 0 0 0 0.2rem rgba(255, 25, 139, 0.25); +} +.was-validated .form-check-input:invalid ~ .form-check-label, +.form-check-input.is-invalid ~ .form-check-label { + color: #ff198b; +} +.was-validated .form-check-input:invalid ~ .invalid-feedback, +.was-validated .form-check-input:invalid ~ .invalid-tooltip, +.form-check-input.is-invalid ~ .invalid-feedback, +.form-check-input.is-invalid ~ .invalid-tooltip { + display: block; +} +.was-validated .custom-control-input:invalid ~ .custom-control-label, +.custom-control-input.is-invalid ~ .custom-control-label { + color: #ff198b; +} +.was-validated .custom-control-input:invalid ~ .custom-control-label::before, +.custom-control-input.is-invalid ~ .custom-control-label::before { + border-color: #ff198b; +} +.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, +.custom-control-input.is-invalid:checked ~ .custom-control-label::before { + border-color: #ff4ca5; + background-color: #ff4ca5; +} +.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, +.custom-control-input.is-invalid:focus ~ .custom-control-label::before { + box-shadow: 0 0 0 0.2rem rgba(255, 25, 139, 0.25); +} +.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, +.custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before { + border-color: #ff198b; +} +.was-validated .custom-file-input:invalid ~ .custom-file-label, +.custom-file-input.is-invalid ~ .custom-file-label { + border-color: #ff198b; +} +.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, +.custom-file-input.is-invalid:focus ~ .custom-file-label { + border-color: #ff198b; + box-shadow: 0 0 0 0.2rem rgba(255, 25, 139, 0.25); +} +.form-inline { + display: flex; + flex-flow: row wrap; + align-items: center; +} +.form-inline .form-check { + width: 100%; +} +@media (min-width: 576px) { + .form-inline label { + display: flex; + align-items: center; + justify-content: center; + margin-bottom: 0; + } + .form-inline .form-group { + display: flex; + flex: 0 0 auto; + flex-flow: row wrap; + align-items: center; + margin-bottom: 0; + } + .form-inline .form-control { + display: inline-block; + width: auto; + vertical-align: middle; + } + .form-inline .form-control-plaintext { + display: inline-block; + } + .form-inline .input-group, + .form-inline .custom-select { + width: auto; + } + .form-inline .form-check { + display: flex; + align-items: center; + justify-content: center; + width: auto; + padding-left: 0; + } + .form-inline .form-check-input { + position: relative; + flex-shrink: 0; + margin-top: 0; + margin-right: 0.25rem; + margin-left: 0; + } + .form-inline .custom-control { + align-items: center; + justify-content: center; + } + .form-inline .custom-control-label { + margin-bottom: 0; + } +} +.btn { + display: inline-block; + font-weight: 400; + color: #e0e0e1; + text-align: center; + vertical-align: middle; + user-select: none; + background-color: transparent; + border: 1px solid transparent; + padding: 1rem 1.5rem; + font-size: 0.875rem; + line-height: 1.25; + border-radius: 4px; + transition: + color 0.15s ease-in-out, + background-color 0.15s ease-in-out, + border-color 0.15s ease-in-out, + box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .btn { + transition: none; + } +} +.btn:hover { + color: #e0e0e1; + text-decoration: none; +} +.btn:focus, +.btn.focus { + outline: 0; + box-shadow: none; +} +.btn.disabled, +.btn:disabled { + opacity: 0.65; + box-shadow: none; +} +.btn:not(:disabled):not(.disabled) { + cursor: pointer; +} +.btn:not(:disabled):not(.disabled):active, +.btn:not(:disabled):not(.disabled).active { + box-shadow: none; +} +a.btn.disabled, +fieldset:disabled a.btn { + pointer-events: none; +} +.btn-primary { + color: #fff; + background-color: #9a52ff; + border-color: #9a52ff; + box-shadow: none; +} +.btn-primary:hover { + color: #fff; + background-color: #842cff; + border-color: #7c1fff; +} +.btn-primary:focus, +.btn-primary.focus { + color: #fff; + background-color: #842cff; + border-color: #7c1fff; + box-shadow: 0 0 0 0.2rem rgba(169, 108, 255, 0.5); +} +.btn-primary.disabled, +.btn-primary:disabled { + color: #fff; + background-color: #9a52ff; + border-color: #9a52ff; +} +.btn-primary:not(:disabled):not(.disabled):active, +.btn-primary:not(:disabled):not(.disabled).active, +.show > .btn-primary.dropdown-toggle { + color: #fff; + background-color: #7c1fff; + border-color: #7512ff; +} +.btn-primary:not(:disabled):not(.disabled):active:focus, +.btn-primary:not(:disabled):not(.disabled).active:focus, +.show > .btn-primary.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(169, 108, 255, 0.5); +} +.btn-secondary { + color: #111112; + background-color: #e0e0e1; + border-color: #e0e0e1; + box-shadow: none; +} +.btn-secondary:hover { + color: #111112; + background-color: #cdcdce; + border-color: #c6c6c8; +} +.btn-secondary:focus, +.btn-secondary.focus { + color: #111112; + background-color: #cdcdce; + border-color: #c6c6c8; + box-shadow: 0 0 0 0.2rem rgba(193, 193, 194, 0.5); +} +.btn-secondary.disabled, +.btn-secondary:disabled { + color: #111112; + background-color: #e0e0e1; + border-color: #e0e0e1; +} +.btn-secondary:not(:disabled):not(.disabled):active, +.btn-secondary:not(:disabled):not(.disabled).active, +.show > .btn-secondary.dropdown-toggle { + color: #111112; + background-color: #c6c6c8; + border-color: #c0c0c2; +} +.btn-secondary:not(:disabled):not(.disabled):active:focus, +.btn-secondary:not(:disabled):not(.disabled).active:focus, +.show > .btn-secondary.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(193, 193, 194, 0.5); +} +.btn-success { + color: #111112; + background-color: #32e685; + border-color: #32e685; + box-shadow: none; +} +.btn-success:hover { + color: #fff; + background-color: #1ad772; + border-color: #19cc6c; +} +.btn-success:focus, +.btn-success.focus { + color: #fff; + background-color: #1ad772; + border-color: #19cc6c; + box-shadow: 0 0 0 0.2rem rgba(45, 198, 116, 0.5); +} +.btn-success.disabled, +.btn-success:disabled { + color: #111112; + background-color: #32e685; + border-color: #32e685; +} +.btn-success:not(:disabled):not(.disabled):active, +.btn-success:not(:disabled):not(.disabled).active, +.show > .btn-success.dropdown-toggle { + color: #fff; + background-color: #19cc6c; + border-color: #18c166; +} +.btn-success:not(:disabled):not(.disabled):active:focus, +.btn-success:not(:disabled):not(.disabled).active:focus, +.show > .btn-success.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(45, 198, 116, 0.5); +} +.btn-info { + color: #fff; + background-color: #19a3ff; + border-color: #19a3ff; + box-shadow: none; +} +.btn-info:hover { + color: #fff; + background-color: #0091f2; + border-color: #0089e5; +} +.btn-info:focus, +.btn-info.focus { + color: #fff; + background-color: #0091f2; + border-color: #0089e5; + box-shadow: 0 0 0 0.2rem rgba(60, 177, 255, 0.5); +} +.btn-info.disabled, +.btn-info:disabled { + color: #fff; + background-color: #19a3ff; + border-color: #19a3ff; +} +.btn-info:not(:disabled):not(.disabled):active, +.btn-info:not(:disabled):not(.disabled).active, +.show > .btn-info.dropdown-toggle { + color: #fff; + background-color: #0089e5; + border-color: #0082d8; +} +.btn-info:not(:disabled):not(.disabled):active:focus, +.btn-info:not(:disabled):not(.disabled).active:focus, +.show > .btn-info.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(60, 177, 255, 0.5); +} +.btn-warning { + color: #111112; + background-color: #faff19; + border-color: #faff19; + box-shadow: none; +} +.btn-warning:hover { + color: #111112; + background-color: #ecf200; + border-color: #e0e500; +} +.btn-warning:focus, +.btn-warning.focus { + color: #111112; + background-color: #ecf200; + border-color: #e0e500; + box-shadow: 0 0 0 0.2rem rgba(215, 219, 24, 0.5); +} +.btn-warning.disabled, +.btn-warning:disabled { + color: #111112; + background-color: #faff19; + border-color: #faff19; +} +.btn-warning:not(:disabled):not(.disabled):active, +.btn-warning:not(:disabled):not(.disabled).active, +.show > .btn-warning.dropdown-toggle { + color: #111112; + background-color: #e0e500; + border-color: #d4d800; +} +.btn-warning:not(:disabled):not(.disabled):active:focus, +.btn-warning:not(:disabled):not(.disabled).active:focus, +.show > .btn-warning.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(215, 219, 24, 0.5); +} +.btn-danger { + color: #fff; + background-color: #ff198b; + border-color: #ff198b; + box-shadow: none; +} +.btn-danger:hover { + color: #fff; + background-color: #f20078; + border-color: #e50072; +} +.btn-danger:focus, +.btn-danger.focus { + color: #fff; + background-color: #f20078; + border-color: #e50072; + box-shadow: 0 0 0 0.2rem rgba(255, 60, 156, 0.5); +} +.btn-danger.disabled, +.btn-danger:disabled { + color: #fff; + background-color: #ff198b; + border-color: #ff198b; +} +.btn-danger:not(:disabled):not(.disabled):active, +.btn-danger:not(:disabled):not(.disabled).active, +.show > .btn-danger.dropdown-toggle { + color: #fff; + background-color: #e50072; + border-color: #d8006b; +} +.btn-danger:not(:disabled):not(.disabled):active:focus, +.btn-danger:not(:disabled):not(.disabled).active:focus, +.show > .btn-danger.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(255, 60, 156, 0.5); +} +.btn-light { + color: #111112; + background-color: #fff; + border-color: #fff; + box-shadow: none; +} +.btn-light:hover { + color: #111112; + background-color: #ececec; + border-color: #e6e6e6; +} +.btn-light:focus, +.btn-light.focus { + color: #111112; + background-color: #ececec; + border-color: #e6e6e6; + box-shadow: 0 0 0 0.2rem rgba(219, 219, 219, 0.5); +} +.btn-light.disabled, +.btn-light:disabled { + color: #111112; + background-color: #fff; + border-color: #fff; +} +.btn-light:not(:disabled):not(.disabled):active, +.btn-light:not(:disabled):not(.disabled).active, +.show > .btn-light.dropdown-toggle { + color: #111112; + background-color: #e6e6e6; + border-color: #dfdfdf; +} +.btn-light:not(:disabled):not(.disabled):active:focus, +.btn-light:not(:disabled):not(.disabled).active:focus, +.show > .btn-light.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(219, 219, 219, 0.5); +} +.btn-dark { + color: #fff; + background-color: #111112; + border-color: #111112; + box-shadow: none; +} +.btn-dark:hover { + color: #fff; + background-color: #000; + border-color: #000; +} +.btn-dark:focus, +.btn-dark.focus { + color: #fff; + background-color: #000; + border-color: #000; + box-shadow: 0 0 0 0.2rem rgba(53, 53, 54, 0.5); +} +.btn-dark.disabled, +.btn-dark:disabled { + color: #fff; + background-color: #111112; + border-color: #111112; +} +.btn-dark:not(:disabled):not(.disabled):active, +.btn-dark:not(:disabled):not(.disabled).active, +.show > .btn-dark.dropdown-toggle { + color: #fff; + background-color: #000; + border-color: #000; +} +.btn-dark:not(:disabled):not(.disabled):active:focus, +.btn-dark:not(:disabled):not(.disabled).active:focus, +.show > .btn-dark.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(53, 53, 54, 0.5); +} +.btn-outline-primary { + color: #9a52ff; + border-color: #9a52ff; +} +.btn-outline-primary:hover { + color: #fff; + background-color: #9a52ff; + border-color: #9a52ff; +} +.btn-outline-primary:focus, +.btn-outline-primary.focus { + box-shadow: 0 0 0 0.2rem rgba(154, 82, 255, 0.5); +} +.btn-outline-primary.disabled, +.btn-outline-primary:disabled { + color: #9a52ff; + background-color: transparent; +} +.btn-outline-primary:not(:disabled):not(.disabled):active, +.btn-outline-primary:not(:disabled):not(.disabled).active, +.show > .btn-outline-primary.dropdown-toggle { + color: #fff; + background-color: #9a52ff; + border-color: #9a52ff; +} +.btn-outline-primary:not(:disabled):not(.disabled):active:focus, +.btn-outline-primary:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-primary.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(154, 82, 255, 0.5); +} +.btn-outline-secondary { + color: #e0e0e1; + border-color: #e0e0e1; +} +.btn-outline-secondary:hover { + color: #111112; + background-color: #e0e0e1; + border-color: #e0e0e1; +} +.btn-outline-secondary:focus, +.btn-outline-secondary.focus { + box-shadow: 0 0 0 0.2rem rgba(224, 224, 225, 0.5); +} +.btn-outline-secondary.disabled, +.btn-outline-secondary:disabled { + color: #e0e0e1; + background-color: transparent; +} +.btn-outline-secondary:not(:disabled):not(.disabled):active, +.btn-outline-secondary:not(:disabled):not(.disabled).active, +.show > .btn-outline-secondary.dropdown-toggle { + color: #111112; + background-color: #e0e0e1; + border-color: #e0e0e1; +} +.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, +.btn-outline-secondary:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-secondary.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(224, 224, 225, 0.5); +} +.btn-outline-success { + color: #32e685; + border-color: #32e685; +} +.btn-outline-success:hover { + color: #111112; + background-color: #32e685; + border-color: #32e685; +} +.btn-outline-success:focus, +.btn-outline-success.focus { + box-shadow: 0 0 0 0.2rem rgba(50, 230, 133, 0.5); +} +.btn-outline-success.disabled, +.btn-outline-success:disabled { + color: #32e685; + background-color: transparent; +} +.btn-outline-success:not(:disabled):not(.disabled):active, +.btn-outline-success:not(:disabled):not(.disabled).active, +.show > .btn-outline-success.dropdown-toggle { + color: #111112; + background-color: #32e685; + border-color: #32e685; +} +.btn-outline-success:not(:disabled):not(.disabled):active:focus, +.btn-outline-success:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-success.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(50, 230, 133, 0.5); +} +.btn-outline-info { + color: #19a3ff; + border-color: #19a3ff; +} +.btn-outline-info:hover { + color: #fff; + background-color: #19a3ff; + border-color: #19a3ff; +} +.btn-outline-info:focus, +.btn-outline-info.focus { + box-shadow: 0 0 0 0.2rem rgba(25, 163, 255, 0.5); +} +.btn-outline-info.disabled, +.btn-outline-info:disabled { + color: #19a3ff; + background-color: transparent; +} +.btn-outline-info:not(:disabled):not(.disabled):active, +.btn-outline-info:not(:disabled):not(.disabled).active, +.show > .btn-outline-info.dropdown-toggle { + color: #fff; + background-color: #19a3ff; + border-color: #19a3ff; +} +.btn-outline-info:not(:disabled):not(.disabled):active:focus, +.btn-outline-info:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-info.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(25, 163, 255, 0.5); +} +.btn-outline-warning { + color: #faff19; + border-color: #faff19; +} +.btn-outline-warning:hover { + color: #111112; + background-color: #faff19; + border-color: #faff19; +} +.btn-outline-warning:focus, +.btn-outline-warning.focus { + box-shadow: 0 0 0 0.2rem rgba(250, 255, 25, 0.5); +} +.btn-outline-warning.disabled, +.btn-outline-warning:disabled { + color: #faff19; + background-color: transparent; +} +.btn-outline-warning:not(:disabled):not(.disabled):active, +.btn-outline-warning:not(:disabled):not(.disabled).active, +.show > .btn-outline-warning.dropdown-toggle { + color: #111112; + background-color: #faff19; + border-color: #faff19; +} +.btn-outline-warning:not(:disabled):not(.disabled):active:focus, +.btn-outline-warning:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-warning.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(250, 255, 25, 0.5); +} +.btn-outline-danger { + color: #ff198b; + border-color: #ff198b; +} +.btn-outline-danger:hover { + color: #fff; + background-color: #ff198b; + border-color: #ff198b; +} +.btn-outline-danger:focus, +.btn-outline-danger.focus { + box-shadow: 0 0 0 0.2rem rgba(255, 25, 139, 0.5); +} +.btn-outline-danger.disabled, +.btn-outline-danger:disabled { + color: #ff198b; + background-color: transparent; +} +.btn-outline-danger:not(:disabled):not(.disabled):active, +.btn-outline-danger:not(:disabled):not(.disabled).active, +.show > .btn-outline-danger.dropdown-toggle { + color: #fff; + background-color: #ff198b; + border-color: #ff198b; +} +.btn-outline-danger:not(:disabled):not(.disabled):active:focus, +.btn-outline-danger:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-danger.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(255, 25, 139, 0.5); +} +.btn-outline-light { + color: #fff; + border-color: #fff; +} +.btn-outline-light:hover { + color: #111112; + background-color: #fff; + border-color: #fff; +} +.btn-outline-light:focus, +.btn-outline-light.focus { + box-shadow: 0 0 0 0.2rem rgba(255, 255, 255, 0.5); +} +.btn-outline-light.disabled, +.btn-outline-light:disabled { + color: #fff; + background-color: transparent; +} +.btn-outline-light:not(:disabled):not(.disabled):active, +.btn-outline-light:not(:disabled):not(.disabled).active, +.show > .btn-outline-light.dropdown-toggle { + color: #111112; + background-color: #fff; + border-color: #fff; +} +.btn-outline-light:not(:disabled):not(.disabled):active:focus, +.btn-outline-light:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-light.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(255, 255, 255, 0.5); +} +.btn-outline-dark { + color: #111112; + border-color: #111112; +} +.btn-outline-dark:hover { + color: #fff; + background-color: #111112; + border-color: #111112; +} +.btn-outline-dark:focus, +.btn-outline-dark.focus { + box-shadow: 0 0 0 0.2rem rgba(17, 17, 18, 0.5); +} +.btn-outline-dark.disabled, +.btn-outline-dark:disabled { + color: #111112; + background-color: transparent; +} +.btn-outline-dark:not(:disabled):not(.disabled):active, +.btn-outline-dark:not(:disabled):not(.disabled).active, +.show > .btn-outline-dark.dropdown-toggle { + color: #fff; + background-color: #111112; + border-color: #111112; +} +.btn-outline-dark:not(:disabled):not(.disabled):active:focus, +.btn-outline-dark:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-dark.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(17, 17, 18, 0.5); +} +.btn-link { + font-weight: 400; + color: #fff; + text-decoration: none; +} +.btn-link:hover { + color: #9a52ff; + text-decoration: underline; +} +.btn-link:focus, +.btn-link.focus { + text-decoration: underline; +} +.btn-link:disabled, +.btn-link.disabled { + color: #454549; + pointer-events: none; +} +.btn-lg, +.btn-group-lg > .btn { + padding: 0.5rem 1rem; + font-size: 1.25rem; + line-height: 1.5; + border-radius: 8px; +} +.btn-sm, +.btn-group-sm > .btn { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + line-height: 1.5; + border-radius: 4px; +} +.btn-block { + display: block; + width: 100%; +} +.btn-block + .btn-block { + margin-top: 0.5rem; +} +input[type='submit'].btn-block, +input[type='reset'].btn-block, +input[type='button'].btn-block { + width: 100%; +} +.fade { + transition: opacity 0.15s linear; +} +@media (prefers-reduced-motion: reduce) { + .fade { + transition: none; + } +} +.fade:not(.show) { + opacity: 0; +} +.collapse:not(.show) { + display: none; +} +.collapsing { + position: relative; + height: 0; + overflow: hidden; + transition: height 0.35s ease; +} +@media (prefers-reduced-motion: reduce) { + .collapsing { + transition: none; + } +} +.collapsing.width { + width: 0; + height: auto; + transition: width 0.35s ease; +} +@media (prefers-reduced-motion: reduce) { + .collapsing.width { + transition: none; + } +} +.dropup, +.dropright, +.dropdown, +.dropleft { + position: relative; +} +.dropdown-toggle { + white-space: nowrap; +} +.dropdown-toggle::after { + display: inline-block; + margin-left: 0.34em; + vertical-align: 0.34em; + content: ''; + border-top: 0.4em solid; + border-right: 0.4em solid transparent; + border-bottom: 0; + border-left: 0.4em solid transparent; +} +.dropdown-toggle:empty::after { + margin-left: 0; +} +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 10rem; + padding: 0.5rem 0; + margin: 0.125rem 0 0; + font-size: 1rem; + color: #e0e0e1; + text-align: left; + list-style: none; + background-color: #111112; + background-clip: padding-box; + border: 1px solid #111112; + border-radius: 4px; + box-shadow: 0px 5px 40px #000; +} +.dropdown-menu-left { + right: auto; + left: 0; +} +.dropdown-menu-right { + right: 0; + left: auto; +} +@media (min-width: 576px) { + .dropdown-menu-sm-left { + right: auto; + left: 0; + } + .dropdown-menu-sm-right { + right: 0; + left: auto; + } +} +@media (min-width: 768px) { + .dropdown-menu-md-left { + right: auto; + left: 0; + } + .dropdown-menu-md-right { + right: 0; + left: auto; + } +} +@media (min-width: 992px) { + .dropdown-menu-lg-left { + right: auto; + left: 0; + } + .dropdown-menu-lg-right { + right: 0; + left: auto; + } +} +@media (min-width: 1200px) { + .dropdown-menu-xl-left { + right: auto; + left: 0; + } + .dropdown-menu-xl-right { + right: 0; + left: auto; + } +} +.dropup .dropdown-menu { + top: auto; + bottom: 100%; + margin-top: 0; + margin-bottom: 0.125rem; +} +.dropup .dropdown-toggle::after { + display: inline-block; + margin-left: 0.34em; + vertical-align: 0.34em; + content: ''; + border-top: 0; + border-right: 0.4em solid transparent; + border-bottom: 0.4em solid; + border-left: 0.4em solid transparent; +} +.dropup .dropdown-toggle:empty::after { + margin-left: 0; +} +.dropright .dropdown-menu { + top: 0; + right: auto; + left: 100%; + margin-top: 0; + margin-left: 0.125rem; +} +.dropright .dropdown-toggle::after { + display: inline-block; + margin-left: 0.34em; + vertical-align: 0.34em; + content: ''; + border-top: 0.4em solid transparent; + border-right: 0; + border-bottom: 0.4em solid transparent; + border-left: 0.4em solid; +} +.dropright .dropdown-toggle:empty::after { + margin-left: 0; +} +.dropright .dropdown-toggle::after { + vertical-align: 0; +} +.dropleft .dropdown-menu { + top: 0; + right: 100%; + left: auto; + margin-top: 0; + margin-right: 0.125rem; +} +.dropleft .dropdown-toggle::after { + display: inline-block; + margin-left: 0.34em; + vertical-align: 0.34em; + content: ''; +} +.dropleft .dropdown-toggle::after { + display: none; +} +.dropleft .dropdown-toggle::before { + display: inline-block; + margin-right: 0.34em; + vertical-align: 0.34em; + content: ''; + border-top: 0.4em solid transparent; + border-right: 0.4em solid; + border-bottom: 0.4em solid transparent; +} +.dropleft .dropdown-toggle:empty::after { + margin-left: 0; +} +.dropleft .dropdown-toggle::before { + vertical-align: 0; +} +.dropdown-menu[x-placement^='top'], +.dropdown-menu[x-placement^='right'], +.dropdown-menu[x-placement^='bottom'], +.dropdown-menu[x-placement^='left'] { + right: auto; + bottom: auto; +} +.dropdown-divider { + height: 0; + margin: 0.5rem 0; + overflow: hidden; + border-top: 1px solid #000; +} +.dropdown-item { + display: block; + width: 100%; + padding: 0.25rem 1.5rem; + clear: both; + font-weight: 400; + color: #fff; + text-align: inherit; + white-space: nowrap; + background-color: transparent; + border: 0; +} +.dropdown-item:hover, +.dropdown-item:focus { + color: #9a52ff; + text-decoration: none; + background-color: #111112; +} +.dropdown-item.active, +.dropdown-item:active { + color: #fff; + text-decoration: none; + background-color: transparent; +} +.dropdown-item.disabled, +.dropdown-item:disabled { + color: #838386; + pointer-events: none; + background-color: transparent; +} +.dropdown-menu.show { + display: block; +} +.dropdown-header { + display: block; + padding: 0.5rem 1.5rem; + margin-bottom: 0; + font-size: 0.875rem; + color: #454549; + white-space: nowrap; +} +.dropdown-item-text { + display: block; + padding: 0.25rem 1.5rem; + color: #fff; +} +.btn-group, +.btn-group-vertical { + position: relative; + display: inline-flex; + vertical-align: middle; +} +.btn-group > .btn, +.btn-group-vertical > .btn { + position: relative; + flex: 1 1 auto; +} +.btn-group > .btn:hover, +.btn-group-vertical > .btn:hover { + z-index: 1; +} +.btn-group > .btn:focus, +.btn-group > .btn:active, +.btn-group > .btn.active, +.btn-group-vertical > .btn:focus, +.btn-group-vertical > .btn:active, +.btn-group-vertical > .btn.active { + z-index: 1; +} +.btn-toolbar { + display: flex; + flex-wrap: wrap; + justify-content: flex-start; +} +.btn-toolbar .input-group { + width: auto; +} +.btn-group > .btn:not(:first-child), +.btn-group > .btn-group:not(:first-child) { + margin-left: -1px; +} +.btn-group > .btn:not(:last-child):not(.dropdown-toggle), +.btn-group > .btn-group:not(:last-child) > .btn { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.btn-group > .btn:not(:first-child), +.btn-group > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.dropdown-toggle-split { + padding-right: 1.125rem; + padding-left: 1.125rem; +} +.dropdown-toggle-split::after, +.dropup .dropdown-toggle-split::after, +.dropright .dropdown-toggle-split::after { + margin-left: 0; +} +.dropleft .dropdown-toggle-split::before { + margin-right: 0; +} +.btn-sm + .dropdown-toggle-split, +.btn-group-sm > .btn + .dropdown-toggle-split { + padding-right: 0.375rem; + padding-left: 0.375rem; +} +.btn-lg + .dropdown-toggle-split, +.btn-group-lg > .btn + .dropdown-toggle-split { + padding-right: 0.75rem; + padding-left: 0.75rem; +} +.btn-group.show .dropdown-toggle { + box-shadow: none; +} +.btn-group.show .dropdown-toggle.btn-link { + box-shadow: none; +} +.btn-group-vertical { + flex-direction: column; + align-items: flex-start; + justify-content: center; +} +.btn-group-vertical > .btn, +.btn-group-vertical > .btn-group { + width: 100%; +} +.btn-group-vertical > .btn:not(:first-child), +.btn-group-vertical > .btn-group:not(:first-child) { + margin-top: -1px; +} +.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle), +.btn-group-vertical > .btn-group:not(:last-child) > .btn { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.btn-group-vertical > .btn:not(:first-child), +.btn-group-vertical > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-top-right-radius: 0; +} +.btn-group-toggle > .btn, +.btn-group-toggle > .btn-group > .btn { + margin-bottom: 0; +} +.btn-group-toggle > .btn input[type='radio'], +.btn-group-toggle > .btn input[type='checkbox'], +.btn-group-toggle > .btn-group > .btn input[type='radio'], +.btn-group-toggle > .btn-group > .btn input[type='checkbox'] { + position: absolute; + clip: rect(0, 0, 0, 0); + pointer-events: none; +} +.input-group { + position: relative; + display: flex; + flex-wrap: wrap; + align-items: stretch; + width: 100%; +} +.input-group > .form-control, +.input-group > .form-control-plaintext, +.input-group > .custom-select, +.input-group > .custom-file { + position: relative; + flex: 1 1 auto; + width: 1%; + min-width: 0; + margin-bottom: 0; +} +.input-group > .form-control + .form-control, +.input-group > .form-control + .custom-select, +.input-group > .form-control + .custom-file, +.input-group > .form-control-plaintext + .form-control, +.input-group > .form-control-plaintext + .custom-select, +.input-group > .form-control-plaintext + .custom-file, +.input-group > .custom-select + .form-control, +.input-group > .custom-select + .custom-select, +.input-group > .custom-select + .custom-file, +.input-group > .custom-file + .form-control, +.input-group > .custom-file + .custom-select, +.input-group > .custom-file + .custom-file { + margin-left: -1px; +} +.input-group > .form-control:focus, +.input-group > .custom-select:focus, +.input-group > .custom-file .custom-file-input:focus ~ .custom-file-label { + z-index: 3; +} +.input-group > .custom-file .custom-file-input:focus { + z-index: 4; +} +.input-group > .form-control:not(:first-child), +.input-group > .custom-select:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.input-group > .custom-file { + display: flex; + align-items: center; +} +.input-group > .custom-file:not(:last-child) .custom-file-label, +.input-group > .custom-file:not(:last-child) .custom-file-label::after { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.input-group > .custom-file:not(:first-child) .custom-file-label { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.input-group:not(.has-validation) > .form-control:not(:last-child), +.input-group:not(.has-validation) > .custom-select:not(:last-child), +.input-group:not(.has-validation) > .custom-file:not(:last-child) .custom-file-label, +.input-group:not(.has-validation) > .custom-file:not(:last-child) .custom-file-label::after { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.input-group.has-validation > .form-control:nth-last-child(n + 3), +.input-group.has-validation > .custom-select:nth-last-child(n + 3), +.input-group.has-validation > .custom-file:nth-last-child(n + 3) .custom-file-label, +.input-group.has-validation > .custom-file:nth-last-child(n + 3) .custom-file-label::after { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.input-group-prepend, +.input-group-append { + display: flex; +} +.input-group-prepend .btn, +.input-group-append .btn { + position: relative; + z-index: 2; +} +.input-group-prepend .btn:focus, +.input-group-append .btn:focus { + z-index: 3; +} +.input-group-prepend .btn + .btn, +.input-group-prepend .btn + .input-group-text, +.input-group-prepend .input-group-text + .input-group-text, +.input-group-prepend .input-group-text + .btn, +.input-group-append .btn + .btn, +.input-group-append .btn + .input-group-text, +.input-group-append .input-group-text + .input-group-text, +.input-group-append .input-group-text + .btn { + margin-left: -1px; +} +.input-group-prepend { + margin-right: -1px; +} +.input-group-append { + margin-left: -1px; +} +.input-group-text { + display: flex; + align-items: center; + padding: 1rem 1.5rem; + margin-bottom: 0; + font-size: 1rem; + font-weight: 400; + line-height: 1.25; + color: #fff; + text-align: center; + white-space: nowrap; + background-color: #454549; + border: 1px solid transparent; + border-radius: 4px; +} +.input-group-text input[type='radio'], +.input-group-text input[type='checkbox'] { + margin-top: 0; +} +.input-group-lg > .form-control:not(textarea), +.input-group-lg > .custom-select { + height: calc(1.5em + 1rem + 2px); +} +.input-group-lg > .form-control, +.input-group-lg > .custom-select, +.input-group-lg > .input-group-prepend > .input-group-text, +.input-group-lg > .input-group-append > .input-group-text, +.input-group-lg > .input-group-prepend > .btn, +.input-group-lg > .input-group-append > .btn { + padding: 0.5rem 1rem; + font-size: 1.25rem; + line-height: 1.5; + border-radius: 8px; +} +.input-group-sm > .form-control:not(textarea), +.input-group-sm > .custom-select { + height: calc(1.5em + 0.5rem + 2px); +} +.input-group-sm > .form-control, +.input-group-sm > .custom-select, +.input-group-sm > .input-group-prepend > .input-group-text, +.input-group-sm > .input-group-append > .input-group-text, +.input-group-sm > .input-group-prepend > .btn, +.input-group-sm > .input-group-append > .btn { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + line-height: 1.5; + border-radius: 4px; +} +.input-group-lg > .custom-select, +.input-group-sm > .custom-select { + padding-right: 2.5rem; +} +.input-group > .input-group-prepend > .btn, +.input-group > .input-group-prepend > .input-group-text, +.input-group:not(.has-validation) > .input-group-append:not(:last-child) > .btn, +.input-group:not(.has-validation) > .input-group-append:not(:last-child) > .input-group-text, +.input-group.has-validation > .input-group-append:nth-last-child(n + 3) > .btn, +.input-group.has-validation > .input-group-append:nth-last-child(n + 3) > .input-group-text, +.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle), +.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.input-group > .input-group-append > .btn, +.input-group > .input-group-append > .input-group-text, +.input-group > .input-group-prepend:not(:first-child) > .btn, +.input-group > .input-group-prepend:not(:first-child) > .input-group-text, +.input-group > .input-group-prepend:first-child > .btn:not(:first-child), +.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.custom-control { + position: relative; + z-index: 1; + display: block; + min-height: 1.5rem; + padding-left: 1.5rem; + print-color-adjust: exact; +} +.custom-control-inline { + display: inline-flex; + margin-right: 1rem; +} +.custom-control-input { + position: absolute; + left: 0; + z-index: -1; + width: 1rem; + height: 1.25rem; + opacity: 0; +} +.custom-control-input:checked ~ .custom-control-label::before { + color: #fff; + border-color: #9a52ff; + background-color: #9a52ff; +} +.custom-control-input:focus ~ .custom-control-label::before { + box-shadow: + none, + 0 0 0 0.2rem rgba(154, 82, 255, 0.25); +} +.custom-control-input:focus:not(:checked) ~ .custom-control-label::before { + border-color: #e4d2ff; +} +.custom-control-input:not(:disabled):active ~ .custom-control-label::before { + color: #fff; + background-color: #fff; + border-color: #fff; +} +.custom-control-input[disabled] ~ .custom-control-label, +.custom-control-input:disabled ~ .custom-control-label { + color: #454549; +} +.custom-control-input[disabled] ~ .custom-control-label::before, +.custom-control-input:disabled ~ .custom-control-label::before { + background-color: #454549; +} +.custom-control-label { + position: relative; + margin-bottom: 0; + vertical-align: top; +} +.custom-control-label::before { + position: absolute; + top: 0.25rem; + left: -1.5rem; + display: block; + width: 1rem; + height: 1rem; + pointer-events: none; + content: ''; + background-color: #232325; + border: 1px solid #838386; + box-shadow: none; +} +.custom-control-label::after { + position: absolute; + top: 0.25rem; + left: -1.5rem; + display: block; + width: 1rem; + height: 1rem; + content: ''; + background: 50%/50% 50% no-repeat; +} +.custom-checkbox .custom-control-label::before { + border-radius: 4px; +} +.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23FFFFFF' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e"); +} +.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before { + border-color: #9a52ff; + background-color: #9a52ff; +} +.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23FFFFFF' d='M0 2h4'/%3e%3c/svg%3e"); +} +.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before { + background-color: rgba(154, 82, 255, 0.5); +} +.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before { + background-color: rgba(154, 82, 255, 0.5); +} +.custom-radio .custom-control-label::before { + border-radius: 50%; +} +.custom-radio .custom-control-input:checked ~ .custom-control-label::after { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23FFFFFF'/%3e%3c/svg%3e"); +} +.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before { + background-color: rgba(154, 82, 255, 0.5); +} +.custom-switch { + padding-left: 2.25rem; +} +.custom-switch .custom-control-label::before { + left: -2.25rem; + width: 1.75rem; + pointer-events: all; + border-radius: 0.5rem; +} +.custom-switch .custom-control-label::after { + top: calc(0.25rem + 2px); + left: calc(-2.25rem + 2px); + width: calc(1rem - 4px); + height: calc(1rem - 4px); + background-color: #838386; + border-radius: 0.5rem; + transition: + transform 0.15s ease-in-out, + background-color 0.15s ease-in-out, + border-color 0.15s ease-in-out, + box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .custom-switch .custom-control-label::after { + transition: none; + } +} +.custom-switch .custom-control-input:checked ~ .custom-control-label::after { + background-color: #232325; + transform: translateX(0.75rem); +} +.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before { + background-color: rgba(154, 82, 255, 0.5); +} +.custom-select { + display: inline-block; + width: 100%; + height: calc(1.25em + 2rem + 2px); + padding: 1rem 2.5rem 1rem 1.5rem; + font-size: 1rem; + font-weight: 400; + line-height: 1.25; + color: #fff; + vertical-align: middle; + background: #232325 + url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23232325' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") + right 1.5rem center/8px 10px no-repeat; + border: 1px solid transparent; + border-radius: 4px; + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075); + appearance: none; +} +.custom-select:focus { + border-color: #e4d2ff; + outline: 0; + box-shadow: + inset 0 1px 2px rgba(0, 0, 0, 0.075), + 0 0 0 0.2rem rgba(154, 82, 255, 0.25); +} +.custom-select:focus::-ms-value { + color: #fff; + background-color: #232325; +} +.custom-select[multiple], +.custom-select[size]:not([size='1']) { + height: auto; + padding-right: 1.5rem; + background-image: none; +} +.custom-select:disabled { + color: #454549; + background-color: #e0e0e1; +} +.custom-select::-ms-expand { + display: none; +} +.custom-select:-moz-focusring { + color: transparent; + text-shadow: 0 0 0 #fff; +} +.custom-select-sm { + height: calc(1.5em + 0.5rem + 2px); + padding-top: 0.25rem; + padding-bottom: 0.25rem; + padding-left: 0.5rem; + font-size: 0.875rem; +} +.custom-select-lg { + height: calc(1.5em + 1rem + 2px); + padding-top: 0.5rem; + padding-bottom: 0.5rem; + padding-left: 1rem; + font-size: 1.25rem; +} +.custom-file { + position: relative; + display: inline-block; + width: 100%; + height: calc(1.25em + 2rem + 2px); + margin-bottom: 0; +} +.custom-file-input { + position: relative; + z-index: 2; + width: 100%; + height: calc(1.25em + 2rem + 2px); + margin: 0; + overflow: hidden; + opacity: 0; +} +.custom-file-input:focus ~ .custom-file-label { + border-color: #e4d2ff; + box-shadow: 0 0 0 0.2rem rgba(154, 82, 255, 0.25); +} +.custom-file-input[disabled] ~ .custom-file-label, +.custom-file-input:disabled ~ .custom-file-label { + background-color: #454549; +} +.custom-file-input:lang(en) ~ .custom-file-label::after { + content: 'Browse'; +} +.custom-file-input ~ .custom-file-label[data-browse]::after { + content: attr(data-browse); +} +.custom-file-label { + position: absolute; + top: 0; + right: 0; + left: 0; + z-index: 1; + height: calc(1.25em + 2rem + 2px); + padding: 1rem 1.5rem; + overflow: hidden; + font-weight: 400; + line-height: 1.25; + color: #fff; + background-color: #232325; + border: 1px solid transparent; + border-radius: 4px; + box-shadow: none; +} +.custom-file-label::after { + position: absolute; + top: 0; + right: 0; + bottom: 0; + z-index: 3; + display: block; + height: calc(1.25em + 2rem); + padding: 1rem 1.5rem; + line-height: 1.25; + color: #fff; + content: 'Browse'; + background-color: #454549; + border-left: inherit; + border-radius: 0 4px 4px 0; +} +.custom-range { + width: 100%; + height: 1.4rem; + padding: 0; + background-color: transparent; + appearance: none; +} +.custom-range:focus { + outline: 0; +} +.custom-range:focus::-webkit-slider-thumb { + box-shadow: + 0 0 0 1px #111112, + 0 0 0 0.2rem rgba(154, 82, 255, 0.25); +} +.custom-range:focus::-moz-range-thumb { + box-shadow: + 0 0 0 1px #111112, + 0 0 0 0.2rem rgba(154, 82, 255, 0.25); +} +.custom-range:focus::-ms-thumb { + box-shadow: + 0 0 0 1px #111112, + 0 0 0 0.2rem rgba(154, 82, 255, 0.25); +} +.custom-range::-moz-focus-outer { + border: 0; +} +.custom-range::-webkit-slider-thumb { + width: 1rem; + height: 1rem; + margin-top: -0.25rem; + background-color: #9a52ff; + border: 0; + border-radius: 1rem; + box-shadow: 0 0.1rem 0.25rem rgba(0, 0, 0, 0.1); + transition: + background-color 0.15s ease-in-out, + border-color 0.15s ease-in-out, + box-shadow 0.15s ease-in-out; + appearance: none; +} +@media (prefers-reduced-motion: reduce) { + .custom-range::-webkit-slider-thumb { + transition: none; + } +} +.custom-range::-webkit-slider-thumb:active { + background-color: #fff; +} +.custom-range::-webkit-slider-runnable-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: #c1c1c2; + border-color: transparent; + border-radius: 1rem; + box-shadow: inset 0 0.25rem 0.25rem rgba(0, 0, 0, 0.1); +} +.custom-range::-moz-range-thumb { + width: 1rem; + height: 1rem; + background-color: #9a52ff; + border: 0; + border-radius: 1rem; + box-shadow: 0 0.1rem 0.25rem rgba(0, 0, 0, 0.1); + transition: + background-color 0.15s ease-in-out, + border-color 0.15s ease-in-out, + box-shadow 0.15s ease-in-out; + appearance: none; +} +@media (prefers-reduced-motion: reduce) { + .custom-range::-moz-range-thumb { + transition: none; + } +} +.custom-range::-moz-range-thumb:active { + background-color: #fff; +} +.custom-range::-moz-range-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: #c1c1c2; + border-color: transparent; + border-radius: 1rem; + box-shadow: inset 0 0.25rem 0.25rem rgba(0, 0, 0, 0.1); +} +.custom-range::-ms-thumb { + width: 1rem; + height: 1rem; + margin-top: 0; + margin-right: 0.2rem; + margin-left: 0.2rem; + background-color: #9a52ff; + border: 0; + border-radius: 1rem; + box-shadow: 0 0.1rem 0.25rem rgba(0, 0, 0, 0.1); + transition: + background-color 0.15s ease-in-out, + border-color 0.15s ease-in-out, + box-shadow 0.15s ease-in-out; + appearance: none; +} +@media (prefers-reduced-motion: reduce) { + .custom-range::-ms-thumb { + transition: none; + } +} +.custom-range::-ms-thumb:active { + background-color: #fff; +} +.custom-range::-ms-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: transparent; + border-color: transparent; + border-width: 0.5rem; + box-shadow: inset 0 0.25rem 0.25rem rgba(0, 0, 0, 0.1); +} +.custom-range::-ms-fill-lower { + background-color: #c1c1c2; + border-radius: 1rem; +} +.custom-range::-ms-fill-upper { + margin-right: 15px; + background-color: #c1c1c2; + border-radius: 1rem; +} +.custom-range:disabled::-webkit-slider-thumb { + background-color: #838386; +} +.custom-range:disabled::-webkit-slider-runnable-track { + cursor: default; +} +.custom-range:disabled::-moz-range-thumb { + background-color: #838386; +} +.custom-range:disabled::-moz-range-track { + cursor: default; +} +.custom-range:disabled::-ms-thumb { + background-color: #838386; +} +.custom-control-label::before, +.custom-file-label, +.custom-select { + transition: + background-color 0.15s ease-in-out, + border-color 0.15s ease-in-out, + box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .custom-control-label::before, + .custom-file-label, + .custom-select { + transition: none; + } +} +.nav { + display: flex; + flex-wrap: wrap; + padding-left: 0; + margin-bottom: 0; + list-style: none; +} +.nav-link { + display: block; + padding: 1rem 2rem; +} +.nav-link:hover, +.nav-link:focus { + text-decoration: none; +} +.nav-link.disabled { + color: #454549; + pointer-events: none; + cursor: default; +} +.nav-tabs { + border-bottom: 1px solid #c1c1c2; +} +.nav-tabs .nav-link { + margin-bottom: -1px; + background-color: transparent; + border: 1px solid transparent; + border-top-left-radius: 4px; + border-top-right-radius: 4px; +} +.nav-tabs .nav-link:hover, +.nav-tabs .nav-link:focus { + isolation: isolate; + border-color: #e0e0e1 #e0e0e1 #c1c1c2; +} +.nav-tabs .nav-link.disabled { + color: #454549; + background-color: transparent; + border-color: transparent; +} +.nav-tabs .nav-link.active, +.nav-tabs .nav-item.show .nav-link { + color: #343437; + background-color: #111112; + border-color: #c1c1c2 #c1c1c2 #111112; +} +.nav-tabs .dropdown-menu { + margin-top: -1px; + border-top-left-radius: 0; + border-top-right-radius: 0; +} +.nav-pills .nav-link { + background: none; + border: 0; + border-radius: 4px; +} +.nav-pills .nav-link.active, +.nav-pills .show > .nav-link { + color: #fff; + background-color: #9a52ff; +} +.nav-fill > .nav-link, +.nav-fill .nav-item { + flex: 1 1 auto; + text-align: center; +} +.nav-justified > .nav-link, +.nav-justified .nav-item { + flex-basis: 0; + flex-grow: 1; + text-align: center; +} +.tab-content > .tab-pane { + display: none; +} +.tab-content > .active { + display: block; +} +.navbar { + position: relative; + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: space-between; + padding: 0 1rem; +} +.navbar .container, +.navbar .container-fluid, +.navbar .container-sm, +.navbar .container-md, +.navbar .container-lg, +.navbar .container-xl { + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: space-between; +} +.navbar-brand { + display: inline-block; + padding-top: 1.25rem; + padding-bottom: 1.25rem; + margin-right: 1rem; + font-size: 1.25rem; + line-height: inherit; + white-space: nowrap; +} +.navbar-brand:hover, +.navbar-brand:focus { + text-decoration: none; +} +.navbar-nav { + display: flex; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; + list-style: none; +} +.navbar-nav .nav-link { + padding-right: 0; + padding-left: 0; +} +.navbar-nav .dropdown-menu { + position: static; + float: none; +} +.navbar-text { + display: inline-block; + padding-top: 1rem; + padding-bottom: 1rem; +} +.navbar-collapse { + flex-basis: 100%; + flex-grow: 1; + align-items: center; +} +.navbar-toggler { + padding: 0.25rem 0.75rem; + font-size: 1.25rem; + line-height: 1; + background-color: transparent; + border: 1px solid transparent; + border-radius: 4px; +} +.navbar-toggler:hover, +.navbar-toggler:focus { + text-decoration: none; +} +.navbar-toggler-icon { + display: inline-block; + width: 1.5em; + height: 1.5em; + vertical-align: middle; + content: ''; + background: 50%/100% 100% no-repeat; +} +.navbar-nav-scroll { + max-height: 75vh; + overflow-y: auto; +} +@media (max-width: 575.98px) { + .navbar-expand-sm > .container, + .navbar-expand-sm > .container-fluid, + .navbar-expand-sm > .container-sm, + .navbar-expand-sm > .container-md, + .navbar-expand-sm > .container-lg, + .navbar-expand-sm > .container-xl { + padding-right: 0; + padding-left: 0; + } +} +@media (min-width: 576px) { + .navbar-expand-sm { + flex-flow: row nowrap; + justify-content: flex-start; + } + .navbar-expand-sm .navbar-nav { + flex-direction: row; + } + .navbar-expand-sm .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-sm .navbar-nav .nav-link { + padding-right: 2rem; + padding-left: 2rem; + } + .navbar-expand-sm > .container, + .navbar-expand-sm > .container-fluid, + .navbar-expand-sm > .container-sm, + .navbar-expand-sm > .container-md, + .navbar-expand-sm > .container-lg, + .navbar-expand-sm > .container-xl { + flex-wrap: nowrap; + } + .navbar-expand-sm .navbar-nav-scroll { + overflow: visible; + } + .navbar-expand-sm .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + .navbar-expand-sm .navbar-toggler { + display: none; + } +} +@media (max-width: 767.98px) { + .navbar-expand-md > .container, + .navbar-expand-md > .container-fluid, + .navbar-expand-md > .container-sm, + .navbar-expand-md > .container-md, + .navbar-expand-md > .container-lg, + .navbar-expand-md > .container-xl { + padding-right: 0; + padding-left: 0; + } +} +@media (min-width: 768px) { + .navbar-expand-md { + flex-flow: row nowrap; + justify-content: flex-start; + } + .navbar-expand-md .navbar-nav { + flex-direction: row; + } + .navbar-expand-md .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-md .navbar-nav .nav-link { + padding-right: 2rem; + padding-left: 2rem; + } + .navbar-expand-md > .container, + .navbar-expand-md > .container-fluid, + .navbar-expand-md > .container-sm, + .navbar-expand-md > .container-md, + .navbar-expand-md > .container-lg, + .navbar-expand-md > .container-xl { + flex-wrap: nowrap; + } + .navbar-expand-md .navbar-nav-scroll { + overflow: visible; + } + .navbar-expand-md .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + .navbar-expand-md .navbar-toggler { + display: none; + } +} +@media (max-width: 991.98px) { + .navbar-expand-lg > .container, + .navbar-expand-lg > .container-fluid, + .navbar-expand-lg > .container-sm, + .navbar-expand-lg > .container-md, + .navbar-expand-lg > .container-lg, + .navbar-expand-lg > .container-xl { + padding-right: 0; + padding-left: 0; + } +} +@media (min-width: 992px) { + .navbar-expand-lg { + flex-flow: row nowrap; + justify-content: flex-start; + } + .navbar-expand-lg .navbar-nav { + flex-direction: row; + } + .navbar-expand-lg .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-lg .navbar-nav .nav-link { + padding-right: 2rem; + padding-left: 2rem; + } + .navbar-expand-lg > .container, + .navbar-expand-lg > .container-fluid, + .navbar-expand-lg > .container-sm, + .navbar-expand-lg > .container-md, + .navbar-expand-lg > .container-lg, + .navbar-expand-lg > .container-xl { + flex-wrap: nowrap; + } + .navbar-expand-lg .navbar-nav-scroll { + overflow: visible; + } + .navbar-expand-lg .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + .navbar-expand-lg .navbar-toggler { + display: none; + } +} +@media (max-width: 1199.98px) { + .navbar-expand-xl > .container, + .navbar-expand-xl > .container-fluid, + .navbar-expand-xl > .container-sm, + .navbar-expand-xl > .container-md, + .navbar-expand-xl > .container-lg, + .navbar-expand-xl > .container-xl { + padding-right: 0; + padding-left: 0; + } +} +@media (min-width: 1200px) { + .navbar-expand-xl { + flex-flow: row nowrap; + justify-content: flex-start; + } + .navbar-expand-xl .navbar-nav { + flex-direction: row; + } + .navbar-expand-xl .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-xl .navbar-nav .nav-link { + padding-right: 2rem; + padding-left: 2rem; + } + .navbar-expand-xl > .container, + .navbar-expand-xl > .container-fluid, + .navbar-expand-xl > .container-sm, + .navbar-expand-xl > .container-md, + .navbar-expand-xl > .container-lg, + .navbar-expand-xl > .container-xl { + flex-wrap: nowrap; + } + .navbar-expand-xl .navbar-nav-scroll { + overflow: visible; + } + .navbar-expand-xl .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + .navbar-expand-xl .navbar-toggler { + display: none; + } +} +.navbar-expand { + flex-flow: row nowrap; + justify-content: flex-start; +} +.navbar-expand > .container, +.navbar-expand > .container-fluid, +.navbar-expand > .container-sm, +.navbar-expand > .container-md, +.navbar-expand > .container-lg, +.navbar-expand > .container-xl { + padding-right: 0; + padding-left: 0; +} +.navbar-expand .navbar-nav { + flex-direction: row; +} +.navbar-expand .navbar-nav .dropdown-menu { + position: absolute; +} +.navbar-expand .navbar-nav .nav-link { + padding-right: 2rem; + padding-left: 2rem; +} +.navbar-expand > .container, +.navbar-expand > .container-fluid, +.navbar-expand > .container-sm, +.navbar-expand > .container-md, +.navbar-expand > .container-lg, +.navbar-expand > .container-xl { + flex-wrap: nowrap; +} +.navbar-expand .navbar-nav-scroll { + overflow: visible; +} +.navbar-expand .navbar-collapse { + display: flex !important; + flex-basis: auto; +} +.navbar-expand .navbar-toggler { + display: none; +} +.navbar-light .navbar-brand { + color: rgba(0, 0, 0, 0.9); +} +.navbar-light .navbar-brand:hover, +.navbar-light .navbar-brand:focus { + color: rgba(0, 0, 0, 0.9); +} +.navbar-light .navbar-nav .nav-link { + color: #454549; +} +.navbar-light .navbar-nav .nav-link:hover, +.navbar-light .navbar-nav .nav-link:focus { + color: rgba(0, 0, 0, 0.7); +} +.navbar-light .navbar-nav .nav-link.disabled { + color: rgba(0, 0, 0, 0.3); +} +.navbar-light .navbar-nav .show > .nav-link, +.navbar-light .navbar-nav .active > .nav-link, +.navbar-light .navbar-nav .nav-link.show, +.navbar-light .navbar-nav .nav-link.active { + color: rgba(0, 0, 0, 0.9); +} +.navbar-light .navbar-toggler { + color: #454549; + border-color: rgba(0, 0, 0, 0.1); +} +.navbar-light .navbar-toggler-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='%23454549' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); +} +.navbar-light .navbar-text { + color: #454549; +} +.navbar-light .navbar-text a { + color: rgba(0, 0, 0, 0.9); +} +.navbar-light .navbar-text a:hover, +.navbar-light .navbar-text a:focus { + color: rgba(0, 0, 0, 0.9); +} +.navbar-dark .navbar-brand { + color: #fff; +} +.navbar-dark .navbar-brand:hover, +.navbar-dark .navbar-brand:focus { + color: #fff; +} +.navbar-dark .navbar-nav .nav-link { + color: #fff; +} +.navbar-dark .navbar-nav .nav-link:hover, +.navbar-dark .navbar-nav .nav-link:focus { + color: #9a52ff; +} +.navbar-dark .navbar-nav .nav-link.disabled { + color: rgba(255, 255, 255, 0.25); +} +.navbar-dark .navbar-nav .show > .nav-link, +.navbar-dark .navbar-nav .active > .nav-link, +.navbar-dark .navbar-nav .nav-link.show, +.navbar-dark .navbar-nav .nav-link.active { + color: #fff; +} +.navbar-dark .navbar-toggler { + color: #fff; + border-color: rgba(255, 255, 255, 0.1); +} +.navbar-dark .navbar-toggler-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='%23FFFFFF' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); +} +.navbar-dark .navbar-text { + color: #fff; +} +.navbar-dark .navbar-text a { + color: #fff; +} +.navbar-dark .navbar-text a:hover, +.navbar-dark .navbar-text a:focus { + color: #fff; +} +.card { + position: relative; + display: flex; + flex-direction: column; + min-width: 0; + word-wrap: break-word; + background-color: #232325; + background-clip: border-box; + border: 1px solid rgba(0, 0, 0, 0.125); + border-radius: 8px; +} +.card > hr { + margin-right: 0; + margin-left: 0; +} +.card > .list-group { + border-top: inherit; + border-bottom: inherit; +} +.card > .list-group:first-child { + border-top-width: 0; + border-top-left-radius: 7px; + border-top-right-radius: 7px; +} +.card > .list-group:last-child { + border-bottom-width: 0; + border-bottom-right-radius: 7px; + border-bottom-left-radius: 7px; +} +.card > .card-header + .list-group, +.card > .list-group + .card-footer { + border-top: 0; +} +.card-body { + flex: 1 1 auto; + min-height: 1px; + padding: 2rem; +} +.card-title { + margin-bottom: 2rem; +} +.card-subtitle { + margin-top: -1rem; + margin-bottom: 0; +} +.card-text:last-child { + margin-bottom: 0; +} +.card-link:hover { + text-decoration: none; +} +.card-link + .card-link { + margin-left: 2rem; +} +.card-header { + padding: 2rem 2rem; + margin-bottom: 0; + background-color: rgba(0, 0, 0, 0.03); + border-bottom: 1px solid rgba(0, 0, 0, 0.125); +} +.card-header:first-child { + border-radius: 7px 7px 0 0; +} +.card-footer { + padding: 2rem 2rem; + background-color: rgba(0, 0, 0, 0.03); + border-top: 1px solid rgba(0, 0, 0, 0.125); +} +.card-footer:last-child { + border-radius: 0 0 7px 7px; +} +.card-header-tabs { + margin-right: -1rem; + margin-bottom: -2rem; + margin-left: -1rem; + border-bottom: 0; +} +.card-header-pills { + margin-right: -1rem; + margin-left: -1rem; +} +.card-img-overlay { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + padding: 1.25rem; + border-radius: 7px; +} +.card-img, +.card-img-top, +.card-img-bottom { + flex-shrink: 0; + width: 100%; +} +.card-img, +.card-img-top { + border-top-left-radius: 7px; + border-top-right-radius: 7px; +} +.card-img, +.card-img-bottom { + border-bottom-right-radius: 7px; + border-bottom-left-radius: 7px; +} +.card-deck .card { + margin-bottom: 1.25rem; +} +@media (min-width: 576px) { + .card-deck { + display: flex; + flex-flow: row wrap; + margin-right: -1.25rem; + margin-left: -1.25rem; + } + .card-deck .card { + flex: 1 0 0%; + margin-right: 1.25rem; + margin-bottom: 0; + margin-left: 1.25rem; + } +} +.card-group > .card { + margin-bottom: 15px; +} +@media (min-width: 576px) { + .card-group { + display: flex; + flex-flow: row wrap; + } + .card-group > .card { + flex: 1 0 0%; + margin-bottom: 0; + } + .card-group > .card + .card { + margin-left: 0; + border-left: 0; + } + .card-group > .card:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + } + .card-group > .card:not(:last-child) .card-img-top, + .card-group > .card:not(:last-child) .card-header { + border-top-right-radius: 0; + } + .card-group > .card:not(:last-child) .card-img-bottom, + .card-group > .card:not(:last-child) .card-footer { + border-bottom-right-radius: 0; + } + .card-group > .card:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + } + .card-group > .card:not(:first-child) .card-img-top, + .card-group > .card:not(:first-child) .card-header { + border-top-left-radius: 0; + } + .card-group > .card:not(:first-child) .card-img-bottom, + .card-group > .card:not(:first-child) .card-footer { + border-bottom-left-radius: 0; + } +} +.card-columns .card { + margin-bottom: 2rem; +} +@media (min-width: 576px) { + .card-columns { + column-count: 3; + column-gap: 2rem; + orphans: 1; + widows: 1; + } + .card-columns .card { + display: inline-block; + width: 100%; + } +} +.accordion { + overflow-anchor: none; +} +.accordion > .card { + overflow: hidden; +} +.accordion > .card:not(:last-of-type) { + border-bottom: 0; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.accordion > .card:not(:first-of-type) { + border-top-left-radius: 0; + border-top-right-radius: 0; +} +.accordion > .card > .card-header { + border-radius: 0; + margin-bottom: -1px; +} +.breadcrumb { + display: flex; + flex-wrap: wrap; + padding: 0.75rem 1rem; + margin-bottom: 1rem; + list-style: none; + background-color: #111112; + border-radius: 4px; +} +.breadcrumb-item + .breadcrumb-item { + padding-left: 0.5rem; +} +.breadcrumb-item + .breadcrumb-item::before { + float: left; + padding-right: 0.5rem; + color: #454549; + content: '/'; +} +.breadcrumb-item + .breadcrumb-item:hover::before { + text-decoration: underline; +} +.breadcrumb-item + .breadcrumb-item:hover::before { + text-decoration: none; +} +.breadcrumb-item.active { + color: #a2a2a4; +} +.pagination { + display: flex; + padding-left: 0; + list-style: none; + border-radius: 4px; +} +.page-link { + position: relative; + display: block; + padding: 0.5rem 0.75rem; + margin-left: -1px; + line-height: 1.25; + color: #fff; + background-color: #fff; + border: 1px solid #c1c1c2; +} +.page-link:hover { + z-index: 2; + color: #9a52ff; + text-decoration: none; + background-color: #e0e0e1; + border-color: #c1c1c2; +} +.page-link:focus { + z-index: 3; + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(154, 82, 255, 0.25); +} +.page-item:first-child .page-link { + margin-left: 0; + border-top-left-radius: 4px; + border-bottom-left-radius: 4px; +} +.page-item:last-child .page-link { + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; +} +.page-item.active .page-link { + z-index: 3; + color: #fff; + background-color: #9a52ff; + border-color: #9a52ff; +} +.page-item.disabled .page-link { + color: #454549; + pointer-events: none; + cursor: auto; + background-color: #fff; + border-color: #c1c1c2; +} +.pagination-lg .page-link { + padding: 0.75rem 1.5rem; + font-size: 1.25rem; + line-height: 1.5; +} +.pagination-lg .page-item:first-child .page-link { + border-top-left-radius: 8px; + border-bottom-left-radius: 8px; +} +.pagination-lg .page-item:last-child .page-link { + border-top-right-radius: 8px; + border-bottom-right-radius: 8px; +} +.pagination-sm .page-link { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + line-height: 1.5; +} +.pagination-sm .page-item:first-child .page-link { + border-top-left-radius: 4px; + border-bottom-left-radius: 4px; +} +.pagination-sm .page-item:last-child .page-link { + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; +} +.badge { + display: inline-block; + padding: 0.25em 0.4em; + font-size: 75%; + font-weight: 700; + line-height: 1; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: 4px; + transition: + color 0.15s ease-in-out, + background-color 0.15s ease-in-out, + border-color 0.15s ease-in-out, + box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .badge { + transition: none; + } +} +a.badge:hover, +a.badge:focus { + text-decoration: none; +} +.badge:empty { + display: none; +} +.btn .badge { + position: relative; + top: -1px; +} +.badge-pill { + padding-right: 0.6em; + padding-left: 0.6em; + border-radius: 10rem; +} +.badge-primary { + color: #fff; + background-color: #9a52ff; +} +a.badge-primary:hover, +a.badge-primary:focus { + color: #fff; + background-color: #7c1fff; +} +a.badge-primary:focus, +a.badge-primary.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(154, 82, 255, 0.5); +} +.badge-secondary { + color: #111112; + background-color: #e0e0e1; +} +a.badge-secondary:hover, +a.badge-secondary:focus { + color: #111112; + background-color: #c6c6c8; +} +a.badge-secondary:focus, +a.badge-secondary.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(224, 224, 225, 0.5); +} +.badge-success { + color: #111112; + background-color: #32e685; +} +a.badge-success:hover, +a.badge-success:focus { + color: #111112; + background-color: #19cc6c; +} +a.badge-success:focus, +a.badge-success.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(50, 230, 133, 0.5); +} +.badge-info { + color: #fff; + background-color: #19a3ff; +} +a.badge-info:hover, +a.badge-info:focus { + color: #fff; + background-color: #0089e5; +} +a.badge-info:focus, +a.badge-info.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(25, 163, 255, 0.5); +} +.badge-warning { + color: #111112; + background-color: #faff19; +} +a.badge-warning:hover, +a.badge-warning:focus { + color: #111112; + background-color: #e0e500; +} +a.badge-warning:focus, +a.badge-warning.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(250, 255, 25, 0.5); +} +.badge-danger { + color: #fff; + background-color: #ff198b; +} +a.badge-danger:hover, +a.badge-danger:focus { + color: #fff; + background-color: #e50072; +} +a.badge-danger:focus, +a.badge-danger.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(255, 25, 139, 0.5); +} +.badge-light { + color: #111112; + background-color: #fff; +} +a.badge-light:hover, +a.badge-light:focus { + color: #111112; + background-color: #e6e6e6; +} +a.badge-light:focus, +a.badge-light.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(255, 255, 255, 0.5); +} +.badge-dark { + color: #fff; + background-color: #111112; +} +a.badge-dark:hover, +a.badge-dark:focus { + color: #fff; + background-color: #000; +} +a.badge-dark:focus, +a.badge-dark.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(17, 17, 18, 0.5); +} +.jumbotron { + padding: 2rem 1rem; + margin-bottom: 2rem; + background-color: #e0e0e1; + border-radius: 8px; +} +@media (min-width: 576px) { + .jumbotron { + padding: 4rem 2rem; + } +} +.jumbotron-fluid { + padding-right: 0; + padding-left: 0; + border-radius: 0; +} +.alert { + position: relative; + padding: 0.75rem 1.25rem; + margin-bottom: 1rem; + border: 1px solid transparent; + border-radius: 4px; +} +.alert-heading { + color: inherit; +} +.alert-link { + font-weight: 700; +} +.alert-dismissible { + padding-right: 4rem; +} +.alert-dismissible .close { + position: absolute; + top: 0; + right: 0; + z-index: 2; + padding: 0.75rem 1.25rem; + color: inherit; +} +.alert-primary { + color: #502b85; + background-color: #ebdcff; + border-color: #e3cfff; +} +.alert-primary hr { + border-top-color: #d4b6ff; +} +.alert-primary .alert-link { + color: #391f5e; +} +.alert-secondary { + color: #747475; + background-color: #f9f9f9; + border-color: #f6f6f7; +} +.alert-secondary hr { + border-top-color: #e9e9eb; +} +.alert-secondary .alert-link { + color: #5b5b5b; +} +.alert-success { + color: #1a7845; + background-color: #d6fae7; + border-color: #c6f8dd; +} +.alert-success hr { + border-top-color: #aff5cf; +} +.alert-success .alert-link { + color: #114e2d; +} +.alert-info { + color: #0d5585; + background-color: #d1edff; + border-color: #bfe5ff; +} +.alert-info hr { + border-top-color: #a6dbff; +} +.alert-info .alert-link { + color: #083757; +} +.alert-warning { + color: #82850d; + background-color: #feffd1; + border-color: #feffbf; +} +.alert-warning hr { + border-top-color: #feffa6; +} +.alert-warning .alert-link { + color: #555708; +} +.alert-danger { + color: #850d48; + background-color: #ffd1e8; + border-color: #ffbfdf; +} +.alert-danger hr { + border-top-color: #ffa6d2; +} +.alert-danger .alert-link { + color: #57082f; +} +.alert-light { + color: #858585; + background-color: #fff; + border-color: #fff; +} +.alert-light hr { + border-top-color: #f2f2f2; +} +.alert-light .alert-link { + color: #6c6c6c; +} +.alert-dark { + color: #090909; + background-color: #cfcfd0; + border-color: #bcbcbd; +} +.alert-dark hr { + border-top-color: #afafb0; +} +.alert-dark .alert-link { + color: #000; +} +@keyframes progress-bar-stripes { + from { + background-position: 1rem 0; + } + to { + background-position: 0 0; + } +} +.progress { + display: flex; + height: 1rem; + overflow: hidden; + line-height: 0; + font-size: 0.75rem; + background-color: #111112; + border-radius: 4px; + box-shadow: inset 0 0.1rem 0.1rem rgba(0, 0, 0, 0.1); +} +.progress-bar { + display: flex; + flex-direction: column; + justify-content: center; + overflow: hidden; + color: #fff; + text-align: center; + white-space: nowrap; + background-color: #9a52ff; + transition: width 0.6s ease; +} +@media (prefers-reduced-motion: reduce) { + .progress-bar { + transition: none; + } +} +.progress-bar-striped { + background-image: linear-gradient( + 45deg, + rgba(255, 255, 255, 0.15) 25%, + transparent 25%, + transparent 50%, + rgba(255, 255, 255, 0.15) 50%, + rgba(255, 255, 255, 0.15) 75%, + transparent 75%, + transparent + ); + background-size: 1rem 1rem; +} +.progress-bar-animated { + animation: 1s linear infinite progress-bar-stripes; +} +@media (prefers-reduced-motion: reduce) { + .progress-bar-animated { + animation: none; + } +} +.media { + display: flex; + align-items: flex-start; +} +.media-body { + flex: 1; +} +.list-group { + display: flex; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; + border-radius: 4px; +} +.list-group-item-action { + width: 100%; + color: #343437; + text-align: inherit; +} +.list-group-item-action:hover, +.list-group-item-action:focus { + z-index: 1; + color: #343437; + text-decoration: none; + background-color: #f5f5f7; +} +.list-group-item-action:active { + color: #e0e0e1; + background-color: #e0e0e1; +} +.list-group-item { + position: relative; + display: block; + padding: 0.75rem 1.25rem; + background-color: #111112; + border: 1px solid #232325; +} +.list-group-item:first-child { + border-top-left-radius: inherit; + border-top-right-radius: inherit; +} +.list-group-item:last-child { + border-bottom-right-radius: inherit; + border-bottom-left-radius: inherit; +} +.list-group-item.disabled, +.list-group-item:disabled { + color: #e0e0e1; + pointer-events: none; + background-color: #111112; +} +.list-group-item.active { + z-index: 2; + color: #fff; + background-color: #9a52ff; + border-color: #9a52ff; +} +.list-group-item + .list-group-item { + border-top-width: 0; +} +.list-group-item + .list-group-item.active { + margin-top: -1px; + border-top-width: 1px; +} +.list-group-horizontal { + flex-direction: row; +} +.list-group-horizontal > .list-group-item:first-child { + border-bottom-left-radius: 4px; + border-top-right-radius: 0; +} +.list-group-horizontal > .list-group-item:last-child { + border-top-right-radius: 4px; + border-bottom-left-radius: 0; +} +.list-group-horizontal > .list-group-item.active { + margin-top: 0; +} +.list-group-horizontal > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; +} +.list-group-horizontal > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; +} +@media (min-width: 576px) { + .list-group-horizontal-sm { + flex-direction: row; + } + .list-group-horizontal-sm > .list-group-item:first-child { + border-bottom-left-radius: 4px; + border-top-right-radius: 0; + } + .list-group-horizontal-sm > .list-group-item:last-child { + border-top-right-radius: 4px; + border-bottom-left-radius: 0; + } + .list-group-horizontal-sm > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-sm > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; + } + .list-group-horizontal-sm > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; + } +} +@media (min-width: 768px) { + .list-group-horizontal-md { + flex-direction: row; + } + .list-group-horizontal-md > .list-group-item:first-child { + border-bottom-left-radius: 4px; + border-top-right-radius: 0; + } + .list-group-horizontal-md > .list-group-item:last-child { + border-top-right-radius: 4px; + border-bottom-left-radius: 0; + } + .list-group-horizontal-md > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-md > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; + } + .list-group-horizontal-md > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; + } +} +@media (min-width: 992px) { + .list-group-horizontal-lg { + flex-direction: row; + } + .list-group-horizontal-lg > .list-group-item:first-child { + border-bottom-left-radius: 4px; + border-top-right-radius: 0; + } + .list-group-horizontal-lg > .list-group-item:last-child { + border-top-right-radius: 4px; + border-bottom-left-radius: 0; + } + .list-group-horizontal-lg > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-lg > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; + } + .list-group-horizontal-lg > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; + } +} +@media (min-width: 1200px) { + .list-group-horizontal-xl { + flex-direction: row; + } + .list-group-horizontal-xl > .list-group-item:first-child { + border-bottom-left-radius: 4px; + border-top-right-radius: 0; + } + .list-group-horizontal-xl > .list-group-item:last-child { + border-top-right-radius: 4px; + border-bottom-left-radius: 0; + } + .list-group-horizontal-xl > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-xl > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; + } + .list-group-horizontal-xl > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; + } +} +.list-group-flush { + border-radius: 0; +} +.list-group-flush > .list-group-item { + border-width: 0 0 1px; +} +.list-group-flush > .list-group-item:last-child { + border-bottom-width: 0; +} +.list-group-item-primary { + color: #502b85; + background-color: #e3cfff; +} +.list-group-item-primary.list-group-item-action:hover, +.list-group-item-primary.list-group-item-action:focus { + color: #502b85; + background-color: #d4b6ff; +} +.list-group-item-primary.list-group-item-action.active { + color: #fff; + background-color: #502b85; + border-color: #502b85; +} +.list-group-item-secondary { + color: #747475; + background-color: #f6f6f7; +} +.list-group-item-secondary.list-group-item-action:hover, +.list-group-item-secondary.list-group-item-action:focus { + color: #747475; + background-color: #e9e9eb; +} +.list-group-item-secondary.list-group-item-action.active { + color: #fff; + background-color: #747475; + border-color: #747475; +} +.list-group-item-success { + color: #1a7845; + background-color: #c6f8dd; +} +.list-group-item-success.list-group-item-action:hover, +.list-group-item-success.list-group-item-action:focus { + color: #1a7845; + background-color: #aff5cf; +} +.list-group-item-success.list-group-item-action.active { + color: #fff; + background-color: #1a7845; + border-color: #1a7845; +} +.list-group-item-info { + color: #0d5585; + background-color: #bfe5ff; +} +.list-group-item-info.list-group-item-action:hover, +.list-group-item-info.list-group-item-action:focus { + color: #0d5585; + background-color: #a6dbff; +} +.list-group-item-info.list-group-item-action.active { + color: #fff; + background-color: #0d5585; + border-color: #0d5585; +} +.list-group-item-warning { + color: #82850d; + background-color: #feffbf; +} +.list-group-item-warning.list-group-item-action:hover, +.list-group-item-warning.list-group-item-action:focus { + color: #82850d; + background-color: #feffa6; +} +.list-group-item-warning.list-group-item-action.active { + color: #fff; + background-color: #82850d; + border-color: #82850d; +} +.list-group-item-danger { + color: #850d48; + background-color: #ffbfdf; +} +.list-group-item-danger.list-group-item-action:hover, +.list-group-item-danger.list-group-item-action:focus { + color: #850d48; + background-color: #ffa6d2; +} +.list-group-item-danger.list-group-item-action.active { + color: #fff; + background-color: #850d48; + border-color: #850d48; +} +.list-group-item-light { + color: #858585; + background-color: #fff; +} +.list-group-item-light.list-group-item-action:hover, +.list-group-item-light.list-group-item-action:focus { + color: #858585; + background-color: #f2f2f2; +} +.list-group-item-light.list-group-item-action.active { + color: #fff; + background-color: #858585; + border-color: #858585; +} +.list-group-item-dark { + color: #090909; + background-color: #bcbcbd; +} +.list-group-item-dark.list-group-item-action:hover, +.list-group-item-dark.list-group-item-action:focus { + color: #090909; + background-color: #afafb0; +} +.list-group-item-dark.list-group-item-action.active { + color: #fff; + background-color: #090909; + border-color: #090909; +} +.close { + float: right; + font-size: 1.5rem; + font-weight: 700; + line-height: 1; + color: #ff198b; + text-shadow: 0 1px 0 #fff; + opacity: 0.5; +} +.close:hover { + color: #ff198b; + text-decoration: none; +} +.close:not(:disabled):not(.disabled):hover, +.close:not(:disabled):not(.disabled):focus { + opacity: 0.75; +} +button.close { + padding: 0; + background-color: transparent; + border: 0; +} +a.close.disabled { + pointer-events: none; +} +.toast { + flex-basis: 350px; + max-width: 350px; + font-size: 0.875rem; + background-color: rgba(255, 255, 255, 0.85); + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.1); + box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1); + opacity: 0; + border-radius: 0.25rem; +} +.toast:not(:last-child) { + margin-bottom: 0.75rem; +} +.toast.showing { + opacity: 1; +} +.toast.show { + display: block; + opacity: 1; +} +.toast.hide { + display: none; +} +.toast-header { + display: flex; + align-items: center; + padding: 0.25rem 0.75rem; + color: #454549; + background-color: rgba(255, 255, 255, 0.85); + background-clip: padding-box; + border-bottom: 1px solid rgba(0, 0, 0, 0.05); + border-top-left-radius: calc(0.25rem - 1px); + border-top-right-radius: calc(0.25rem - 1px); +} +.toast-body { + padding: 0.75rem; +} +.modal-open { + overflow: hidden; +} +.modal-open .modal { + overflow-x: hidden; + overflow-y: auto; +} +.modal { + position: fixed; + top: 0; + left: 0; + z-index: 1050; + display: none; + width: 100%; + height: 100%; + overflow: hidden; + outline: 0; +} +.modal-dialog { + position: relative; + width: auto; + margin: 0.5rem; + pointer-events: none; +} +.modal.fade .modal-dialog { + transition: transform 0.3s ease-out; + transform: translate(0, -50px); +} +@media (prefers-reduced-motion: reduce) { + .modal.fade .modal-dialog { + transition: none; + } +} +.modal.show .modal-dialog { + transform: none; +} +.modal.modal-static .modal-dialog { + transform: scale(1.02); +} +.modal-dialog-scrollable { + display: flex; + max-height: calc(100% - 1rem); +} +.modal-dialog-scrollable .modal-content { + max-height: calc(100vh - 1rem); + overflow: hidden; +} +.modal-dialog-scrollable .modal-header, +.modal-dialog-scrollable .modal-footer { + flex-shrink: 0; +} +.modal-dialog-scrollable .modal-body { + overflow-y: auto; +} +.modal-dialog-centered { + display: flex; + align-items: center; + min-height: calc(100% - 1rem); +} +.modal-dialog-centered::before { + display: block; + height: calc(100vh - 1rem); + height: min-content; + content: ''; +} +.modal-dialog-centered.modal-dialog-scrollable { + flex-direction: column; + justify-content: center; + height: 100%; +} +.modal-dialog-centered.modal-dialog-scrollable .modal-content { + max-height: none; +} +.modal-dialog-centered.modal-dialog-scrollable::before { + content: none; +} +.modal-content { + position: relative; + display: flex; + flex-direction: column; + width: 100%; + pointer-events: auto; + background-color: #000; + background-clip: padding-box; + border: 1px solid #e0e0e1; + border-radius: 8px; + box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, 0.5); + outline: 0; +} +.modal-backdrop { + position: fixed; + top: 0; + left: 0; + z-index: 1040; + width: 100vw; + height: 100vh; + background-color: #000; +} +.modal-backdrop.fade { + opacity: 0; +} +.modal-backdrop.show { + opacity: 0.5; +} +.modal-header { + display: flex; + align-items: flex-start; + justify-content: space-between; + padding: 1rem 1rem; + border-bottom: 1px solid #c1c1c2; + border-top-left-radius: 7px; + border-top-right-radius: 7px; +} +.modal-header .close { + padding: 1rem 1rem; + margin: -1rem -1rem -1rem auto; +} +.modal-title { + margin-bottom: 0; + line-height: 1.5; +} +.modal-body { + position: relative; + flex: 1 1 auto; + padding: 1rem; +} +.modal-footer { + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: flex-end; + padding: 0.75rem; + border-top: 1px solid #c1c1c2; + border-bottom-right-radius: 7px; + border-bottom-left-radius: 7px; +} +.modal-footer > * { + margin: 0.25rem; +} +.modal-scrollbar-measure { + position: absolute; + top: -9999px; + width: 50px; + height: 50px; + overflow: scroll; +} +@media (min-width: 576px) { + .modal-dialog { + max-width: 500px; + margin: 1.75rem auto; + } + .modal-dialog-scrollable { + max-height: calc(100% - 3.5rem); + } + .modal-dialog-scrollable .modal-content { + max-height: calc(100vh - 3.5rem); + } + .modal-dialog-centered { + min-height: calc(100% - 3.5rem); + } + .modal-dialog-centered::before { + height: calc(100vh - 3.5rem); + height: min-content; + } + .modal-content { + box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.5); + } + .modal-sm { + max-width: 300px; + } +} +@media (min-width: 992px) { + .modal-lg, + .modal-xl { + max-width: 800px; + } +} +@media (min-width: 1200px) { + .modal-xl { + max-width: 1140px; + } +} +.tooltip { + position: absolute; + z-index: 1070; + display: block; + margin: 0; + font-family: + 'Work Sans', + -apple-system, + BlinkMacSystemFont, + 'Segoe UI', + Roboto, + Oxygen-Sans, + Ubuntu, + Cantarell, + 'Helvetica Neue', + sans-serif; + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + white-space: normal; + word-spacing: normal; + line-break: auto; + font-size: 0.875rem; + word-wrap: break-word; + opacity: 0; +} +.tooltip.show { + opacity: 0.9; +} +.tooltip .arrow { + position: absolute; + display: block; + width: 0.8rem; + height: 0.4rem; +} +.tooltip .arrow::before { + position: absolute; + content: ''; + border-color: transparent; + border-style: solid; +} +.bs-tooltip-top, +.bs-tooltip-auto[x-placement^='top'] { + padding: 0.4rem 0; +} +.bs-tooltip-top .arrow, +.bs-tooltip-auto[x-placement^='top'] .arrow { + bottom: 0; +} +.bs-tooltip-top .arrow::before, +.bs-tooltip-auto[x-placement^='top'] .arrow::before { + top: 0; + border-width: 0.4rem 0.4rem 0; + border-top-color: #000; +} +.bs-tooltip-right, +.bs-tooltip-auto[x-placement^='right'] { + padding: 0 0.4rem; +} +.bs-tooltip-right .arrow, +.bs-tooltip-auto[x-placement^='right'] .arrow { + left: 0; + width: 0.4rem; + height: 0.8rem; +} +.bs-tooltip-right .arrow::before, +.bs-tooltip-auto[x-placement^='right'] .arrow::before { + right: 0; + border-width: 0.4rem 0.4rem 0.4rem 0; + border-right-color: #000; +} +.bs-tooltip-bottom, +.bs-tooltip-auto[x-placement^='bottom'] { + padding: 0.4rem 0; +} +.bs-tooltip-bottom .arrow, +.bs-tooltip-auto[x-placement^='bottom'] .arrow { + top: 0; +} +.bs-tooltip-bottom .arrow::before, +.bs-tooltip-auto[x-placement^='bottom'] .arrow::before { + bottom: 0; + border-width: 0 0.4rem 0.4rem; + border-bottom-color: #000; +} +.bs-tooltip-left, +.bs-tooltip-auto[x-placement^='left'] { + padding: 0 0.4rem; +} +.bs-tooltip-left .arrow, +.bs-tooltip-auto[x-placement^='left'] .arrow { + right: 0; + width: 0.4rem; + height: 0.8rem; +} +.bs-tooltip-left .arrow::before, +.bs-tooltip-auto[x-placement^='left'] .arrow::before { + left: 0; + border-width: 0.4rem 0 0.4rem 0.4rem; + border-left-color: #000; +} +.tooltip-inner { + max-width: 200px; + padding: 0.25rem 0.5rem; + color: #fff; + text-align: center; + background-color: #000; + border-radius: 4px; +} +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1060; + display: block; + max-width: 276px; + font-family: + 'Work Sans', + -apple-system, + BlinkMacSystemFont, + 'Segoe UI', + Roboto, + Oxygen-Sans, + Ubuntu, + Cantarell, + 'Helvetica Neue', + sans-serif; + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + white-space: normal; + word-spacing: normal; + line-break: auto; + font-size: 0.875rem; + word-wrap: break-word; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 8px; + box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, 0.2); +} +.popover .arrow { + position: absolute; + display: block; + width: 1rem; + height: 0.5rem; + margin: 0 8px; +} +.popover .arrow::before, +.popover .arrow::after { + position: absolute; + display: block; + content: ''; + border-color: transparent; + border-style: solid; +} +.bs-popover-top, +.bs-popover-auto[x-placement^='top'] { + margin-bottom: 0.5rem; +} +.bs-popover-top > .arrow, +.bs-popover-auto[x-placement^='top'] > .arrow { + bottom: calc(-0.5rem - 1px); +} +.bs-popover-top > .arrow::before, +.bs-popover-auto[x-placement^='top'] > .arrow::before { + bottom: 0; + border-width: 0.5rem 0.5rem 0; + border-top-color: rgba(0, 0, 0, 0.25); +} +.bs-popover-top > .arrow::after, +.bs-popover-auto[x-placement^='top'] > .arrow::after { + bottom: 1px; + border-width: 0.5rem 0.5rem 0; + border-top-color: #fff; +} +.bs-popover-right, +.bs-popover-auto[x-placement^='right'] { + margin-left: 0.5rem; +} +.bs-popover-right > .arrow, +.bs-popover-auto[x-placement^='right'] > .arrow { + left: calc(-0.5rem - 1px); + width: 0.5rem; + height: 1rem; + margin: 8px 0; +} +.bs-popover-right > .arrow::before, +.bs-popover-auto[x-placement^='right'] > .arrow::before { + left: 0; + border-width: 0.5rem 0.5rem 0.5rem 0; + border-right-color: rgba(0, 0, 0, 0.25); +} +.bs-popover-right > .arrow::after, +.bs-popover-auto[x-placement^='right'] > .arrow::after { + left: 1px; + border-width: 0.5rem 0.5rem 0.5rem 0; + border-right-color: #fff; +} +.bs-popover-bottom, +.bs-popover-auto[x-placement^='bottom'] { + margin-top: 0.5rem; +} +.bs-popover-bottom > .arrow, +.bs-popover-auto[x-placement^='bottom'] > .arrow { + top: calc(-0.5rem - 1px); +} +.bs-popover-bottom > .arrow::before, +.bs-popover-auto[x-placement^='bottom'] > .arrow::before { + top: 0; + border-width: 0 0.5rem 0.5rem 0.5rem; + border-bottom-color: rgba(0, 0, 0, 0.25); +} +.bs-popover-bottom > .arrow::after, +.bs-popover-auto[x-placement^='bottom'] > .arrow::after { + top: 1px; + border-width: 0 0.5rem 0.5rem 0.5rem; + border-bottom-color: #fff; +} +.bs-popover-bottom .popover-header::before, +.bs-popover-auto[x-placement^='bottom'] .popover-header::before { + position: absolute; + top: 0; + left: 50%; + display: block; + width: 1rem; + margin-left: -0.5rem; + content: ''; + border-bottom: 1px solid #f7f7f7; +} +.bs-popover-left, +.bs-popover-auto[x-placement^='left'] { + margin-right: 0.5rem; +} +.bs-popover-left > .arrow, +.bs-popover-auto[x-placement^='left'] > .arrow { + right: calc(-0.5rem - 1px); + width: 0.5rem; + height: 1rem; + margin: 8px 0; +} +.bs-popover-left > .arrow::before, +.bs-popover-auto[x-placement^='left'] > .arrow::before { + right: 0; + border-width: 0.5rem 0 0.5rem 0.5rem; + border-left-color: rgba(0, 0, 0, 0.25); +} +.bs-popover-left > .arrow::after, +.bs-popover-auto[x-placement^='left'] > .arrow::after { + right: 1px; + border-width: 0.5rem 0 0.5rem 0.5rem; + border-left-color: #fff; +} +.popover-header { + padding: 0.5rem 0.75rem; + margin-bottom: 0; + font-size: 1rem; + color: #fff; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + border-top-left-radius: 7px; + border-top-right-radius: 7px; +} +.popover-header:empty { + display: none; +} +.popover-body { + padding: 0.5rem 0.75rem; + color: #e0e0e1; +} +.carousel { + position: relative; +} +.carousel.pointer-event { + touch-action: pan-y; +} +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden; +} +.carousel-inner::after { + display: block; + clear: both; + content: ''; +} +.carousel-item { + position: relative; + display: none; + float: left; + width: 100%; + margin-right: -100%; + backface-visibility: hidden; + transition: transform 0.6s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .carousel-item { + transition: none; + } +} +.carousel-item.active, +.carousel-item-next, +.carousel-item-prev { + display: block; +} +.carousel-item-next:not(.carousel-item-left), +.active.carousel-item-right { + transform: translateX(100%); +} +.carousel-item-prev:not(.carousel-item-right), +.active.carousel-item-left { + transform: translateX(-100%); +} +.carousel-fade .carousel-item { + opacity: 0; + transition-property: opacity; + transform: none; +} +.carousel-fade .carousel-item.active, +.carousel-fade .carousel-item-next.carousel-item-left, +.carousel-fade .carousel-item-prev.carousel-item-right { + z-index: 1; + opacity: 1; +} +.carousel-fade .active.carousel-item-left, +.carousel-fade .active.carousel-item-right { + z-index: 0; + opacity: 0; + transition: opacity 0s 0.6s; +} +@media (prefers-reduced-motion: reduce) { + .carousel-fade .active.carousel-item-left, + .carousel-fade .active.carousel-item-right { + transition: none; + } +} +.carousel-control-prev, +.carousel-control-next { + position: absolute; + top: 0; + bottom: 0; + z-index: 1; + display: flex; + align-items: center; + justify-content: center; + width: 15%; + padding: 0; + color: #fff; + text-align: center; + background: none; + border: 0; + opacity: 0.5; + transition: opacity 0.15s ease; +} +@media (prefers-reduced-motion: reduce) { + .carousel-control-prev, + .carousel-control-next { + transition: none; + } +} +.carousel-control-prev:hover, +.carousel-control-prev:focus, +.carousel-control-next:hover, +.carousel-control-next:focus { + color: #fff; + text-decoration: none; + outline: 0; + opacity: 0.9; +} +.carousel-control-prev { + left: 0; +} +.carousel-control-next { + right: 0; +} +.carousel-control-prev-icon, +.carousel-control-next-icon { + display: inline-block; + width: 20px; + height: 20px; + background: 50%/100% 100% no-repeat; +} +.carousel-control-prev-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23FFFFFF' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e"); +} +.carousel-control-next-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23FFFFFF' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e"); +} +.carousel-indicators { + position: absolute; + right: 0; + bottom: 0; + left: 0; + z-index: 15; + display: flex; + justify-content: center; + padding-left: 0; + margin-right: 15%; + margin-left: 15%; + list-style: none; +} +.carousel-indicators li { + box-sizing: content-box; + flex: 0 1 auto; + width: 30px; + height: 3px; + margin-right: 3px; + margin-left: 3px; + text-indent: -999px; + cursor: pointer; + background-color: #fff; + background-clip: padding-box; + border-top: 10px solid transparent; + border-bottom: 10px solid transparent; + opacity: 0.5; + transition: opacity 0.6s ease; +} +@media (prefers-reduced-motion: reduce) { + .carousel-indicators li { + transition: none; + } +} +.carousel-indicators .active { + opacity: 1; +} +.carousel-caption { + position: absolute; + right: 15%; + bottom: 20px; + left: 15%; + z-index: 10; + padding-top: 20px; + padding-bottom: 20px; + color: #fff; + text-align: center; +} +@keyframes spinner-border { + to { + transform: rotate(360deg); + } +} +.spinner-border { + display: inline-block; + width: 2rem; + height: 2rem; + vertical-align: -0.125em; + border: 0.25em solid currentcolor; + border-right-color: transparent; + border-radius: 50%; + animation: 0.75s linear infinite spinner-border; +} +.spinner-border-sm { + width: 1rem; + height: 1rem; + border-width: 0.2em; +} +@keyframes spinner-grow { + 0% { + transform: scale(0); + } + 50% { + opacity: 1; + transform: none; + } +} +.spinner-grow { + display: inline-block; + width: 2rem; + height: 2rem; + vertical-align: -0.125em; + background-color: currentcolor; + border-radius: 50%; + opacity: 0; + animation: 0.75s linear infinite spinner-grow; +} +.spinner-grow-sm { + width: 1rem; + height: 1rem; +} +@media (prefers-reduced-motion: reduce) { + .spinner-border, + .spinner-grow { + animation-duration: 1.5s; + } +} +.align-baseline { + vertical-align: baseline !important; +} +.align-top { + vertical-align: top !important; +} +.align-middle { + vertical-align: middle !important; +} +.align-bottom { + vertical-align: bottom !important; +} +.align-text-bottom { + vertical-align: text-bottom !important; +} +.align-text-top { + vertical-align: text-top !important; +} +.bg-primary { + background-color: #9a52ff !important; +} +a.bg-primary:hover, +a.bg-primary:focus, +button.bg-primary:hover, +button.bg-primary:focus { + background-color: #7c1fff !important; +} +.bg-secondary { + background-color: #e0e0e1 !important; +} +a.bg-secondary:hover, +a.bg-secondary:focus, +button.bg-secondary:hover, +button.bg-secondary:focus { + background-color: #c6c6c8 !important; +} +.bg-success { + background-color: #32e685 !important; +} +a.bg-success:hover, +a.bg-success:focus, +button.bg-success:hover, +button.bg-success:focus { + background-color: #19cc6c !important; +} +.bg-info { + background-color: #19a3ff !important; +} +a.bg-info:hover, +a.bg-info:focus, +button.bg-info:hover, +button.bg-info:focus { + background-color: #0089e5 !important; +} +.bg-warning { + background-color: #faff19 !important; +} +a.bg-warning:hover, +a.bg-warning:focus, +button.bg-warning:hover, +button.bg-warning:focus { + background-color: #e0e500 !important; +} +.bg-danger { + background-color: #ff198b !important; +} +a.bg-danger:hover, +a.bg-danger:focus, +button.bg-danger:hover, +button.bg-danger:focus { + background-color: #e50072 !important; +} +.bg-light { + background-color: #fff !important; +} +a.bg-light:hover, +a.bg-light:focus, +button.bg-light:hover, +button.bg-light:focus { + background-color: #e6e6e6 !important; +} +.bg-dark { + background-color: #111112 !important; +} +a.bg-dark:hover, +a.bg-dark:focus, +button.bg-dark:hover, +button.bg-dark:focus { + background-color: #000 !important; +} +.bg-white { + background-color: #fff !important; +} +.bg-transparent { + background-color: transparent !important; +} +.border { + border: 1px solid #c1c1c2 !important; +} +.border-top { + border-top: 1px solid #c1c1c2 !important; +} +.border-right { + border-right: 1px solid #c1c1c2 !important; +} +.border-bottom { + border-bottom: 1px solid #c1c1c2 !important; +} +.border-left { + border-left: 1px solid #c1c1c2 !important; +} +.border-0 { + border: 0 !important; +} +.border-top-0 { + border-top: 0 !important; +} +.border-right-0 { + border-right: 0 !important; +} +.border-bottom-0 { + border-bottom: 0 !important; +} +.border-left-0 { + border-left: 0 !important; +} +.border-primary { + border-color: #9a52ff !important; +} +.border-secondary { + border-color: #e0e0e1 !important; +} +.border-success { + border-color: #32e685 !important; +} +.border-info { + border-color: #19a3ff !important; +} +.border-warning { + border-color: #faff19 !important; +} +.border-danger { + border-color: #ff198b !important; +} +.border-light { + border-color: #fff !important; +} +.border-dark { + border-color: #111112 !important; +} +.border-white { + border-color: #fff !important; +} +.rounded-sm { + border-radius: 4px !important; +} +.rounded { + border-radius: 4px !important; +} +.rounded-top { + border-top-left-radius: 4px !important; + border-top-right-radius: 4px !important; +} +.rounded-right { + border-top-right-radius: 4px !important; + border-bottom-right-radius: 4px !important; +} +.rounded-bottom { + border-bottom-right-radius: 4px !important; + border-bottom-left-radius: 4px !important; +} +.rounded-left { + border-top-left-radius: 4px !important; + border-bottom-left-radius: 4px !important; +} +.rounded-lg { + border-radius: 8px !important; +} +.rounded-circle { + border-radius: 50% !important; +} +.rounded-pill { + border-radius: 50rem !important; +} +.rounded-0 { + border-radius: 0 !important; +} +.clearfix::after { + display: block; + clear: both; + content: ''; +} +.d-none { + display: none !important; +} +.d-inline { + display: inline !important; +} +.d-inline-block { + display: inline-block !important; +} +.d-block { + display: block !important; +} +.d-table { + display: table !important; +} +.d-table-row { + display: table-row !important; +} +.d-table-cell { + display: table-cell !important; +} +.d-flex { + display: flex !important; +} +.d-inline-flex { + display: inline-flex !important; +} +@media (min-width: 576px) { + .d-sm-none { + display: none !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-block { + display: block !important; + } + .d-sm-table { + display: table !important; + } + .d-sm-table-row { + display: table-row !important; + } + .d-sm-table-cell { + display: table-cell !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline-flex { + display: inline-flex !important; + } +} +@media (min-width: 768px) { + .d-md-none { + display: none !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-block { + display: block !important; + } + .d-md-table { + display: table !important; + } + .d-md-table-row { + display: table-row !important; + } + .d-md-table-cell { + display: table-cell !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline-flex { + display: inline-flex !important; + } +} +@media (min-width: 992px) { + .d-lg-none { + display: none !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-block { + display: block !important; + } + .d-lg-table { + display: table !important; + } + .d-lg-table-row { + display: table-row !important; + } + .d-lg-table-cell { + display: table-cell !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline-flex { + display: inline-flex !important; + } +} +@media (min-width: 1200px) { + .d-xl-none { + display: none !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-block { + display: block !important; + } + .d-xl-table { + display: table !important; + } + .d-xl-table-row { + display: table-row !important; + } + .d-xl-table-cell { + display: table-cell !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline-flex { + display: inline-flex !important; + } +} +@media print { + .d-print-none { + display: none !important; + } + .d-print-inline { + display: inline !important; + } + .d-print-inline-block { + display: inline-block !important; + } + .d-print-block { + display: block !important; + } + .d-print-table { + display: table !important; + } + .d-print-table-row { + display: table-row !important; + } + .d-print-table-cell { + display: table-cell !important; + } + .d-print-flex { + display: flex !important; + } + .d-print-inline-flex { + display: inline-flex !important; + } +} +.embed-responsive { + position: relative; + display: block; + width: 100%; + padding: 0; + overflow: hidden; +} +.embed-responsive::before { + display: block; + content: ''; +} +.embed-responsive .embed-responsive-item, +.embed-responsive iframe, +.embed-responsive embed, +.embed-responsive object, +.embed-responsive video { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 100%; + height: 100%; + border: 0; +} +.embed-responsive-21by9::before { + padding-top: 42.85714286%; +} +.embed-responsive-16by9::before { + padding-top: 56.25%; +} +.embed-responsive-4by3::before { + padding-top: 75%; +} +.embed-responsive-1by1::before { + padding-top: 100%; +} +.flex-row { + flex-direction: row !important; +} +.flex-column { + flex-direction: column !important; +} +.flex-row-reverse { + flex-direction: row-reverse !important; +} +.flex-column-reverse { + flex-direction: column-reverse !important; +} +.flex-wrap { + flex-wrap: wrap !important; +} +.flex-nowrap { + flex-wrap: nowrap !important; +} +.flex-wrap-reverse { + flex-wrap: wrap-reverse !important; +} +.flex-fill { + flex: 1 1 auto !important; +} +.flex-grow-0 { + flex-grow: 0 !important; +} +.flex-grow-1 { + flex-grow: 1 !important; +} +.flex-shrink-0 { + flex-shrink: 0 !important; +} +.flex-shrink-1 { + flex-shrink: 1 !important; +} +.justify-content-start { + justify-content: flex-start !important; +} +.justify-content-end { + justify-content: flex-end !important; +} +.justify-content-center { + justify-content: center !important; +} +.justify-content-between { + justify-content: space-between !important; +} +.justify-content-around { + justify-content: space-around !important; +} +.align-items-start { + align-items: flex-start !important; +} +.align-items-end { + align-items: flex-end !important; +} +.align-items-center { + align-items: center !important; +} +.align-items-baseline { + align-items: baseline !important; +} +.align-items-stretch { + align-items: stretch !important; +} +.align-content-start { + align-content: flex-start !important; +} +.align-content-end { + align-content: flex-end !important; +} +.align-content-center { + align-content: center !important; +} +.align-content-between { + align-content: space-between !important; +} +.align-content-around { + align-content: space-around !important; +} +.align-content-stretch { + align-content: stretch !important; +} +.align-self-auto { + align-self: auto !important; +} +.align-self-start { + align-self: flex-start !important; +} +.align-self-end { + align-self: flex-end !important; +} +.align-self-center { + align-self: center !important; +} +.align-self-baseline { + align-self: baseline !important; +} +.align-self-stretch { + align-self: stretch !important; +} +@media (min-width: 576px) { + .flex-sm-row { + flex-direction: row !important; + } + .flex-sm-column { + flex-direction: column !important; + } + .flex-sm-row-reverse { + flex-direction: row-reverse !important; + } + .flex-sm-column-reverse { + flex-direction: column-reverse !important; + } + .flex-sm-wrap { + flex-wrap: wrap !important; + } + .flex-sm-nowrap { + flex-wrap: nowrap !important; + } + .flex-sm-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .flex-sm-fill { + flex: 1 1 auto !important; + } + .flex-sm-grow-0 { + flex-grow: 0 !important; + } + .flex-sm-grow-1 { + flex-grow: 1 !important; + } + .flex-sm-shrink-0 { + flex-shrink: 0 !important; + } + .flex-sm-shrink-1 { + flex-shrink: 1 !important; + } + .justify-content-sm-start { + justify-content: flex-start !important; + } + .justify-content-sm-end { + justify-content: flex-end !important; + } + .justify-content-sm-center { + justify-content: center !important; + } + .justify-content-sm-between { + justify-content: space-between !important; + } + .justify-content-sm-around { + justify-content: space-around !important; + } + .align-items-sm-start { + align-items: flex-start !important; + } + .align-items-sm-end { + align-items: flex-end !important; + } + .align-items-sm-center { + align-items: center !important; + } + .align-items-sm-baseline { + align-items: baseline !important; + } + .align-items-sm-stretch { + align-items: stretch !important; + } + .align-content-sm-start { + align-content: flex-start !important; + } + .align-content-sm-end { + align-content: flex-end !important; + } + .align-content-sm-center { + align-content: center !important; + } + .align-content-sm-between { + align-content: space-between !important; + } + .align-content-sm-around { + align-content: space-around !important; + } + .align-content-sm-stretch { + align-content: stretch !important; + } + .align-self-sm-auto { + align-self: auto !important; + } + .align-self-sm-start { + align-self: flex-start !important; + } + .align-self-sm-end { + align-self: flex-end !important; + } + .align-self-sm-center { + align-self: center !important; + } + .align-self-sm-baseline { + align-self: baseline !important; + } + .align-self-sm-stretch { + align-self: stretch !important; + } +} +@media (min-width: 768px) { + .flex-md-row { + flex-direction: row !important; + } + .flex-md-column { + flex-direction: column !important; + } + .flex-md-row-reverse { + flex-direction: row-reverse !important; + } + .flex-md-column-reverse { + flex-direction: column-reverse !important; + } + .flex-md-wrap { + flex-wrap: wrap !important; + } + .flex-md-nowrap { + flex-wrap: nowrap !important; + } + .flex-md-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .flex-md-fill { + flex: 1 1 auto !important; + } + .flex-md-grow-0 { + flex-grow: 0 !important; + } + .flex-md-grow-1 { + flex-grow: 1 !important; + } + .flex-md-shrink-0 { + flex-shrink: 0 !important; + } + .flex-md-shrink-1 { + flex-shrink: 1 !important; + } + .justify-content-md-start { + justify-content: flex-start !important; + } + .justify-content-md-end { + justify-content: flex-end !important; + } + .justify-content-md-center { + justify-content: center !important; + } + .justify-content-md-between { + justify-content: space-between !important; + } + .justify-content-md-around { + justify-content: space-around !important; + } + .align-items-md-start { + align-items: flex-start !important; + } + .align-items-md-end { + align-items: flex-end !important; + } + .align-items-md-center { + align-items: center !important; + } + .align-items-md-baseline { + align-items: baseline !important; + } + .align-items-md-stretch { + align-items: stretch !important; + } + .align-content-md-start { + align-content: flex-start !important; + } + .align-content-md-end { + align-content: flex-end !important; + } + .align-content-md-center { + align-content: center !important; + } + .align-content-md-between { + align-content: space-between !important; + } + .align-content-md-around { + align-content: space-around !important; + } + .align-content-md-stretch { + align-content: stretch !important; + } + .align-self-md-auto { + align-self: auto !important; + } + .align-self-md-start { + align-self: flex-start !important; + } + .align-self-md-end { + align-self: flex-end !important; + } + .align-self-md-center { + align-self: center !important; + } + .align-self-md-baseline { + align-self: baseline !important; + } + .align-self-md-stretch { + align-self: stretch !important; + } +} +@media (min-width: 992px) { + .flex-lg-row { + flex-direction: row !important; + } + .flex-lg-column { + flex-direction: column !important; + } + .flex-lg-row-reverse { + flex-direction: row-reverse !important; + } + .flex-lg-column-reverse { + flex-direction: column-reverse !important; + } + .flex-lg-wrap { + flex-wrap: wrap !important; + } + .flex-lg-nowrap { + flex-wrap: nowrap !important; + } + .flex-lg-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .flex-lg-fill { + flex: 1 1 auto !important; + } + .flex-lg-grow-0 { + flex-grow: 0 !important; + } + .flex-lg-grow-1 { + flex-grow: 1 !important; + } + .flex-lg-shrink-0 { + flex-shrink: 0 !important; + } + .flex-lg-shrink-1 { + flex-shrink: 1 !important; + } + .justify-content-lg-start { + justify-content: flex-start !important; + } + .justify-content-lg-end { + justify-content: flex-end !important; + } + .justify-content-lg-center { + justify-content: center !important; + } + .justify-content-lg-between { + justify-content: space-between !important; + } + .justify-content-lg-around { + justify-content: space-around !important; + } + .align-items-lg-start { + align-items: flex-start !important; + } + .align-items-lg-end { + align-items: flex-end !important; + } + .align-items-lg-center { + align-items: center !important; + } + .align-items-lg-baseline { + align-items: baseline !important; + } + .align-items-lg-stretch { + align-items: stretch !important; + } + .align-content-lg-start { + align-content: flex-start !important; + } + .align-content-lg-end { + align-content: flex-end !important; + } + .align-content-lg-center { + align-content: center !important; + } + .align-content-lg-between { + align-content: space-between !important; + } + .align-content-lg-around { + align-content: space-around !important; + } + .align-content-lg-stretch { + align-content: stretch !important; + } + .align-self-lg-auto { + align-self: auto !important; + } + .align-self-lg-start { + align-self: flex-start !important; + } + .align-self-lg-end { + align-self: flex-end !important; + } + .align-self-lg-center { + align-self: center !important; + } + .align-self-lg-baseline { + align-self: baseline !important; + } + .align-self-lg-stretch { + align-self: stretch !important; + } +} +@media (min-width: 1200px) { + .flex-xl-row { + flex-direction: row !important; + } + .flex-xl-column { + flex-direction: column !important; + } + .flex-xl-row-reverse { + flex-direction: row-reverse !important; + } + .flex-xl-column-reverse { + flex-direction: column-reverse !important; + } + .flex-xl-wrap { + flex-wrap: wrap !important; + } + .flex-xl-nowrap { + flex-wrap: nowrap !important; + } + .flex-xl-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .flex-xl-fill { + flex: 1 1 auto !important; + } + .flex-xl-grow-0 { + flex-grow: 0 !important; + } + .flex-xl-grow-1 { + flex-grow: 1 !important; + } + .flex-xl-shrink-0 { + flex-shrink: 0 !important; + } + .flex-xl-shrink-1 { + flex-shrink: 1 !important; + } + .justify-content-xl-start { + justify-content: flex-start !important; + } + .justify-content-xl-end { + justify-content: flex-end !important; + } + .justify-content-xl-center { + justify-content: center !important; + } + .justify-content-xl-between { + justify-content: space-between !important; + } + .justify-content-xl-around { + justify-content: space-around !important; + } + .align-items-xl-start { + align-items: flex-start !important; + } + .align-items-xl-end { + align-items: flex-end !important; + } + .align-items-xl-center { + align-items: center !important; + } + .align-items-xl-baseline { + align-items: baseline !important; + } + .align-items-xl-stretch { + align-items: stretch !important; + } + .align-content-xl-start { + align-content: flex-start !important; + } + .align-content-xl-end { + align-content: flex-end !important; + } + .align-content-xl-center { + align-content: center !important; + } + .align-content-xl-between { + align-content: space-between !important; + } + .align-content-xl-around { + align-content: space-around !important; + } + .align-content-xl-stretch { + align-content: stretch !important; + } + .align-self-xl-auto { + align-self: auto !important; + } + .align-self-xl-start { + align-self: flex-start !important; + } + .align-self-xl-end { + align-self: flex-end !important; + } + .align-self-xl-center { + align-self: center !important; + } + .align-self-xl-baseline { + align-self: baseline !important; + } + .align-self-xl-stretch { + align-self: stretch !important; + } +} +.float-left { + float: left !important; +} +.float-right { + float: right !important; +} +.float-none { + float: none !important; +} +@media (min-width: 576px) { + .float-sm-left { + float: left !important; + } + .float-sm-right { + float: right !important; + } + .float-sm-none { + float: none !important; + } +} +@media (min-width: 768px) { + .float-md-left { + float: left !important; + } + .float-md-right { + float: right !important; + } + .float-md-none { + float: none !important; + } +} +@media (min-width: 992px) { + .float-lg-left { + float: left !important; + } + .float-lg-right { + float: right !important; + } + .float-lg-none { + float: none !important; + } +} +@media (min-width: 1200px) { + .float-xl-left { + float: left !important; + } + .float-xl-right { + float: right !important; + } + .float-xl-none { + float: none !important; + } +} +.user-select-all { + user-select: all !important; +} +.user-select-auto { + user-select: auto !important; +} +.user-select-none { + user-select: none !important; +} +.overflow-auto { + overflow: auto !important; +} +.overflow-hidden { + overflow: hidden !important; +} +.position-static { + position: static !important; +} +.position-relative { + position: relative !important; +} +.position-absolute { + position: absolute !important; +} +.position-fixed { + position: fixed !important; +} +.position-sticky { + position: sticky !important; +} +.fixed-top { + position: fixed; + top: 0; + right: 0; + left: 0; + z-index: 1030; +} +.fixed-bottom { + position: fixed; + right: 0; + bottom: 0; + left: 0; + z-index: 1030; +} +@supports (position: sticky) { + .sticky-top { + position: sticky; + top: 0; + z-index: 1020; + } +} +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border: 0; +} +.sr-only-focusable:active, +.sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + overflow: visible; + clip: auto; + white-space: normal; +} +.shadow-sm { + box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important; +} +.shadow { + box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important; +} +.shadow-lg { + box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important; +} +.shadow-none { + box-shadow: none !important; +} +.w-25 { + width: 25% !important; +} +.w-50 { + width: 50% !important; +} +.w-75 { + width: 75% !important; +} +.w-100 { + width: 100% !important; +} +.w-auto { + width: auto !important; +} +.h-25 { + height: 25% !important; +} +.h-50 { + height: 50% !important; +} +.h-75 { + height: 75% !important; +} +.h-100 { + height: 100% !important; +} +.h-auto { + height: auto !important; +} +.mw-100 { + max-width: 100% !important; +} +.mh-100 { + max-height: 100% !important; +} +.min-vw-100 { + min-width: 100vw !important; +} +.min-vh-100 { + min-height: 100vh !important; +} +.vw-100 { + width: 100vw !important; +} +.vh-100 { + height: 100vh !important; +} +.m-0 { + margin: 0 !important; +} +.mt-0, +.my-0 { + margin-top: 0 !important; +} +.mr-0, +.mx-0 { + margin-right: 0 !important; +} +.mb-0, +.my-0 { + margin-bottom: 0 !important; +} +.ml-0, +.mx-0 { + margin-left: 0 !important; +} +.m-1 { + margin: 0.25rem !important; +} +.mt-1, +.my-1 { + margin-top: 0.25rem !important; +} +.mr-1, +.mx-1 { + margin-right: 0.25rem !important; +} +.mb-1, +.my-1 { + margin-bottom: 0.25rem !important; +} +.ml-1, +.mx-1 { + margin-left: 0.25rem !important; +} +.m-2 { + margin: 0.5rem !important; +} +.mt-2, +.my-2 { + margin-top: 0.5rem !important; +} +.mr-2, +.mx-2 { + margin-right: 0.5rem !important; +} +.mb-2, +.my-2 { + margin-bottom: 0.5rem !important; +} +.ml-2, +.mx-2 { + margin-left: 0.5rem !important; +} +.m-3 { + margin: 1rem !important; +} +.mt-3, +.my-3 { + margin-top: 1rem !important; +} +.mr-3, +.mx-3 { + margin-right: 1rem !important; +} +.mb-3, +.my-3 { + margin-bottom: 1rem !important; +} +.ml-3, +.mx-3 { + margin-left: 1rem !important; +} +.m-4 { + margin: 1.5rem !important; +} +.mt-4, +.my-4 { + margin-top: 1.5rem !important; +} +.mr-4, +.mx-4 { + margin-right: 1.5rem !important; +} +.mb-4, +.my-4 { + margin-bottom: 1.5rem !important; +} +.ml-4, +.mx-4 { + margin-left: 1.5rem !important; +} +.m-5 { + margin: 3rem !important; +} +.mt-5, +.my-5 { + margin-top: 3rem !important; +} +.mr-5, +.mx-5 { + margin-right: 3rem !important; +} +.mb-5, +.my-5 { + margin-bottom: 3rem !important; +} +.ml-5, +.mx-5 { + margin-left: 3rem !important; +} +.p-0 { + padding: 0 !important; +} +.pt-0, +.py-0 { + padding-top: 0 !important; +} +.pr-0, +.px-0 { + padding-right: 0 !important; +} +.pb-0, +.py-0 { + padding-bottom: 0 !important; +} +.pl-0, +.px-0 { + padding-left: 0 !important; +} +.p-1 { + padding: 0.25rem !important; +} +.pt-1, +.py-1 { + padding-top: 0.25rem !important; +} +.pr-1, +.px-1 { + padding-right: 0.25rem !important; +} +.pb-1, +.py-1 { + padding-bottom: 0.25rem !important; +} +.pl-1, +.px-1 { + padding-left: 0.25rem !important; +} +.p-2 { + padding: 0.5rem !important; +} +.pt-2, +.py-2 { + padding-top: 0.5rem !important; +} +.pr-2, +.px-2 { + padding-right: 0.5rem !important; +} +.pb-2, +.py-2 { + padding-bottom: 0.5rem !important; +} +.pl-2, +.px-2 { + padding-left: 0.5rem !important; +} +.p-3 { + padding: 1rem !important; +} +.pt-3, +.py-3 { + padding-top: 1rem !important; +} +.pr-3, +.px-3 { + padding-right: 1rem !important; +} +.pb-3, +.py-3 { + padding-bottom: 1rem !important; +} +.pl-3, +.px-3 { + padding-left: 1rem !important; +} +.p-4 { + padding: 1.5rem !important; +} +.pt-4, +.py-4 { + padding-top: 1.5rem !important; +} +.pr-4, +.px-4 { + padding-right: 1.5rem !important; +} +.pb-4, +.py-4 { + padding-bottom: 1.5rem !important; +} +.pl-4, +.px-4 { + padding-left: 1.5rem !important; +} +.p-5 { + padding: 3rem !important; +} +.pt-5, +.py-5 { + padding-top: 3rem !important; +} +.pr-5, +.px-5 { + padding-right: 3rem !important; +} +.pb-5, +.py-5 { + padding-bottom: 3rem !important; +} +.pl-5, +.px-5 { + padding-left: 3rem !important; +} +.m-n1 { + margin: -0.25rem !important; +} +.mt-n1, +.my-n1 { + margin-top: -0.25rem !important; +} +.mr-n1, +.mx-n1 { + margin-right: -0.25rem !important; +} +.mb-n1, +.my-n1 { + margin-bottom: -0.25rem !important; +} +.ml-n1, +.mx-n1 { + margin-left: -0.25rem !important; +} +.m-n2 { + margin: -0.5rem !important; +} +.mt-n2, +.my-n2 { + margin-top: -0.5rem !important; +} +.mr-n2, +.mx-n2 { + margin-right: -0.5rem !important; +} +.mb-n2, +.my-n2 { + margin-bottom: -0.5rem !important; +} +.ml-n2, +.mx-n2 { + margin-left: -0.5rem !important; +} +.m-n3 { + margin: -1rem !important; +} +.mt-n3, +.my-n3 { + margin-top: -1rem !important; +} +.mr-n3, +.mx-n3 { + margin-right: -1rem !important; +} +.mb-n3, +.my-n3 { + margin-bottom: -1rem !important; +} +.ml-n3, +.mx-n3 { + margin-left: -1rem !important; +} +.m-n4 { + margin: -1.5rem !important; +} +.mt-n4, +.my-n4 { + margin-top: -1.5rem !important; +} +.mr-n4, +.mx-n4 { + margin-right: -1.5rem !important; +} +.mb-n4, +.my-n4 { + margin-bottom: -1.5rem !important; +} +.ml-n4, +.mx-n4 { + margin-left: -1.5rem !important; +} +.m-n5 { + margin: -3rem !important; +} +.mt-n5, +.my-n5 { + margin-top: -3rem !important; +} +.mr-n5, +.mx-n5 { + margin-right: -3rem !important; +} +.mb-n5, +.my-n5 { + margin-bottom: -3rem !important; +} +.ml-n5, +.mx-n5 { + margin-left: -3rem !important; +} +.m-auto { + margin: auto !important; +} +.mt-auto, +.my-auto { + margin-top: auto !important; +} +.mr-auto, +.mx-auto { + margin-right: auto !important; +} +.mb-auto, +.my-auto { + margin-bottom: auto !important; +} +.ml-auto, +.mx-auto { + margin-left: auto !important; +} +@media (min-width: 576px) { + .m-sm-0 { + margin: 0 !important; + } + .mt-sm-0, + .my-sm-0 { + margin-top: 0 !important; + } + .mr-sm-0, + .mx-sm-0 { + margin-right: 0 !important; + } + .mb-sm-0, + .my-sm-0 { + margin-bottom: 0 !important; + } + .ml-sm-0, + .mx-sm-0 { + margin-left: 0 !important; + } + .m-sm-1 { + margin: 0.25rem !important; + } + .mt-sm-1, + .my-sm-1 { + margin-top: 0.25rem !important; + } + .mr-sm-1, + .mx-sm-1 { + margin-right: 0.25rem !important; + } + .mb-sm-1, + .my-sm-1 { + margin-bottom: 0.25rem !important; + } + .ml-sm-1, + .mx-sm-1 { + margin-left: 0.25rem !important; + } + .m-sm-2 { + margin: 0.5rem !important; + } + .mt-sm-2, + .my-sm-2 { + margin-top: 0.5rem !important; + } + .mr-sm-2, + .mx-sm-2 { + margin-right: 0.5rem !important; + } + .mb-sm-2, + .my-sm-2 { + margin-bottom: 0.5rem !important; + } + .ml-sm-2, + .mx-sm-2 { + margin-left: 0.5rem !important; + } + .m-sm-3 { + margin: 1rem !important; + } + .mt-sm-3, + .my-sm-3 { + margin-top: 1rem !important; + } + .mr-sm-3, + .mx-sm-3 { + margin-right: 1rem !important; + } + .mb-sm-3, + .my-sm-3 { + margin-bottom: 1rem !important; + } + .ml-sm-3, + .mx-sm-3 { + margin-left: 1rem !important; + } + .m-sm-4 { + margin: 1.5rem !important; + } + .mt-sm-4, + .my-sm-4 { + margin-top: 1.5rem !important; + } + .mr-sm-4, + .mx-sm-4 { + margin-right: 1.5rem !important; + } + .mb-sm-4, + .my-sm-4 { + margin-bottom: 1.5rem !important; + } + .ml-sm-4, + .mx-sm-4 { + margin-left: 1.5rem !important; + } + .m-sm-5 { + margin: 3rem !important; + } + .mt-sm-5, + .my-sm-5 { + margin-top: 3rem !important; + } + .mr-sm-5, + .mx-sm-5 { + margin-right: 3rem !important; + } + .mb-sm-5, + .my-sm-5 { + margin-bottom: 3rem !important; + } + .ml-sm-5, + .mx-sm-5 { + margin-left: 3rem !important; + } + .p-sm-0 { + padding: 0 !important; + } + .pt-sm-0, + .py-sm-0 { + padding-top: 0 !important; + } + .pr-sm-0, + .px-sm-0 { + padding-right: 0 !important; + } + .pb-sm-0, + .py-sm-0 { + padding-bottom: 0 !important; + } + .pl-sm-0, + .px-sm-0 { + padding-left: 0 !important; + } + .p-sm-1 { + padding: 0.25rem !important; + } + .pt-sm-1, + .py-sm-1 { + padding-top: 0.25rem !important; + } + .pr-sm-1, + .px-sm-1 { + padding-right: 0.25rem !important; + } + .pb-sm-1, + .py-sm-1 { + padding-bottom: 0.25rem !important; + } + .pl-sm-1, + .px-sm-1 { + padding-left: 0.25rem !important; + } + .p-sm-2 { + padding: 0.5rem !important; + } + .pt-sm-2, + .py-sm-2 { + padding-top: 0.5rem !important; + } + .pr-sm-2, + .px-sm-2 { + padding-right: 0.5rem !important; + } + .pb-sm-2, + .py-sm-2 { + padding-bottom: 0.5rem !important; + } + .pl-sm-2, + .px-sm-2 { + padding-left: 0.5rem !important; + } + .p-sm-3 { + padding: 1rem !important; + } + .pt-sm-3, + .py-sm-3 { + padding-top: 1rem !important; + } + .pr-sm-3, + .px-sm-3 { + padding-right: 1rem !important; + } + .pb-sm-3, + .py-sm-3 { + padding-bottom: 1rem !important; + } + .pl-sm-3, + .px-sm-3 { + padding-left: 1rem !important; + } + .p-sm-4 { + padding: 1.5rem !important; + } + .pt-sm-4, + .py-sm-4 { + padding-top: 1.5rem !important; + } + .pr-sm-4, + .px-sm-4 { + padding-right: 1.5rem !important; + } + .pb-sm-4, + .py-sm-4 { + padding-bottom: 1.5rem !important; + } + .pl-sm-4, + .px-sm-4 { + padding-left: 1.5rem !important; + } + .p-sm-5 { + padding: 3rem !important; + } + .pt-sm-5, + .py-sm-5 { + padding-top: 3rem !important; + } + .pr-sm-5, + .px-sm-5 { + padding-right: 3rem !important; + } + .pb-sm-5, + .py-sm-5 { + padding-bottom: 3rem !important; + } + .pl-sm-5, + .px-sm-5 { + padding-left: 3rem !important; + } + .m-sm-n1 { + margin: -0.25rem !important; + } + .mt-sm-n1, + .my-sm-n1 { + margin-top: -0.25rem !important; + } + .mr-sm-n1, + .mx-sm-n1 { + margin-right: -0.25rem !important; + } + .mb-sm-n1, + .my-sm-n1 { + margin-bottom: -0.25rem !important; + } + .ml-sm-n1, + .mx-sm-n1 { + margin-left: -0.25rem !important; + } + .m-sm-n2 { + margin: -0.5rem !important; + } + .mt-sm-n2, + .my-sm-n2 { + margin-top: -0.5rem !important; + } + .mr-sm-n2, + .mx-sm-n2 { + margin-right: -0.5rem !important; + } + .mb-sm-n2, + .my-sm-n2 { + margin-bottom: -0.5rem !important; + } + .ml-sm-n2, + .mx-sm-n2 { + margin-left: -0.5rem !important; + } + .m-sm-n3 { + margin: -1rem !important; + } + .mt-sm-n3, + .my-sm-n3 { + margin-top: -1rem !important; + } + .mr-sm-n3, + .mx-sm-n3 { + margin-right: -1rem !important; + } + .mb-sm-n3, + .my-sm-n3 { + margin-bottom: -1rem !important; + } + .ml-sm-n3, + .mx-sm-n3 { + margin-left: -1rem !important; + } + .m-sm-n4 { + margin: -1.5rem !important; + } + .mt-sm-n4, + .my-sm-n4 { + margin-top: -1.5rem !important; + } + .mr-sm-n4, + .mx-sm-n4 { + margin-right: -1.5rem !important; + } + .mb-sm-n4, + .my-sm-n4 { + margin-bottom: -1.5rem !important; + } + .ml-sm-n4, + .mx-sm-n4 { + margin-left: -1.5rem !important; + } + .m-sm-n5 { + margin: -3rem !important; + } + .mt-sm-n5, + .my-sm-n5 { + margin-top: -3rem !important; + } + .mr-sm-n5, + .mx-sm-n5 { + margin-right: -3rem !important; + } + .mb-sm-n5, + .my-sm-n5 { + margin-bottom: -3rem !important; + } + .ml-sm-n5, + .mx-sm-n5 { + margin-left: -3rem !important; + } + .m-sm-auto { + margin: auto !important; + } + .mt-sm-auto, + .my-sm-auto { + margin-top: auto !important; + } + .mr-sm-auto, + .mx-sm-auto { + margin-right: auto !important; + } + .mb-sm-auto, + .my-sm-auto { + margin-bottom: auto !important; + } + .ml-sm-auto, + .mx-sm-auto { + margin-left: auto !important; + } +} +@media (min-width: 768px) { + .m-md-0 { + margin: 0 !important; + } + .mt-md-0, + .my-md-0 { + margin-top: 0 !important; + } + .mr-md-0, + .mx-md-0 { + margin-right: 0 !important; + } + .mb-md-0, + .my-md-0 { + margin-bottom: 0 !important; + } + .ml-md-0, + .mx-md-0 { + margin-left: 0 !important; + } + .m-md-1 { + margin: 0.25rem !important; + } + .mt-md-1, + .my-md-1 { + margin-top: 0.25rem !important; + } + .mr-md-1, + .mx-md-1 { + margin-right: 0.25rem !important; + } + .mb-md-1, + .my-md-1 { + margin-bottom: 0.25rem !important; + } + .ml-md-1, + .mx-md-1 { + margin-left: 0.25rem !important; + } + .m-md-2 { + margin: 0.5rem !important; + } + .mt-md-2, + .my-md-2 { + margin-top: 0.5rem !important; + } + .mr-md-2, + .mx-md-2 { + margin-right: 0.5rem !important; + } + .mb-md-2, + .my-md-2 { + margin-bottom: 0.5rem !important; + } + .ml-md-2, + .mx-md-2 { + margin-left: 0.5rem !important; + } + .m-md-3 { + margin: 1rem !important; + } + .mt-md-3, + .my-md-3 { + margin-top: 1rem !important; + } + .mr-md-3, + .mx-md-3 { + margin-right: 1rem !important; + } + .mb-md-3, + .my-md-3 { + margin-bottom: 1rem !important; + } + .ml-md-3, + .mx-md-3 { + margin-left: 1rem !important; + } + .m-md-4 { + margin: 1.5rem !important; + } + .mt-md-4, + .my-md-4 { + margin-top: 1.5rem !important; + } + .mr-md-4, + .mx-md-4 { + margin-right: 1.5rem !important; + } + .mb-md-4, + .my-md-4 { + margin-bottom: 1.5rem !important; + } + .ml-md-4, + .mx-md-4 { + margin-left: 1.5rem !important; + } + .m-md-5 { + margin: 3rem !important; + } + .mt-md-5, + .my-md-5 { + margin-top: 3rem !important; + } + .mr-md-5, + .mx-md-5 { + margin-right: 3rem !important; + } + .mb-md-5, + .my-md-5 { + margin-bottom: 3rem !important; + } + .ml-md-5, + .mx-md-5 { + margin-left: 3rem !important; + } + .p-md-0 { + padding: 0 !important; + } + .pt-md-0, + .py-md-0 { + padding-top: 0 !important; + } + .pr-md-0, + .px-md-0 { + padding-right: 0 !important; + } + .pb-md-0, + .py-md-0 { + padding-bottom: 0 !important; + } + .pl-md-0, + .px-md-0 { + padding-left: 0 !important; + } + .p-md-1 { + padding: 0.25rem !important; + } + .pt-md-1, + .py-md-1 { + padding-top: 0.25rem !important; + } + .pr-md-1, + .px-md-1 { + padding-right: 0.25rem !important; + } + .pb-md-1, + .py-md-1 { + padding-bottom: 0.25rem !important; + } + .pl-md-1, + .px-md-1 { + padding-left: 0.25rem !important; + } + .p-md-2 { + padding: 0.5rem !important; + } + .pt-md-2, + .py-md-2 { + padding-top: 0.5rem !important; + } + .pr-md-2, + .px-md-2 { + padding-right: 0.5rem !important; + } + .pb-md-2, + .py-md-2 { + padding-bottom: 0.5rem !important; + } + .pl-md-2, + .px-md-2 { + padding-left: 0.5rem !important; + } + .p-md-3 { + padding: 1rem !important; + } + .pt-md-3, + .py-md-3 { + padding-top: 1rem !important; + } + .pr-md-3, + .px-md-3 { + padding-right: 1rem !important; + } + .pb-md-3, + .py-md-3 { + padding-bottom: 1rem !important; + } + .pl-md-3, + .px-md-3 { + padding-left: 1rem !important; + } + .p-md-4 { + padding: 1.5rem !important; + } + .pt-md-4, + .py-md-4 { + padding-top: 1.5rem !important; + } + .pr-md-4, + .px-md-4 { + padding-right: 1.5rem !important; + } + .pb-md-4, + .py-md-4 { + padding-bottom: 1.5rem !important; + } + .pl-md-4, + .px-md-4 { + padding-left: 1.5rem !important; + } + .p-md-5 { + padding: 3rem !important; + } + .pt-md-5, + .py-md-5 { + padding-top: 3rem !important; + } + .pr-md-5, + .px-md-5 { + padding-right: 3rem !important; + } + .pb-md-5, + .py-md-5 { + padding-bottom: 3rem !important; + } + .pl-md-5, + .px-md-5 { + padding-left: 3rem !important; + } + .m-md-n1 { + margin: -0.25rem !important; + } + .mt-md-n1, + .my-md-n1 { + margin-top: -0.25rem !important; + } + .mr-md-n1, + .mx-md-n1 { + margin-right: -0.25rem !important; + } + .mb-md-n1, + .my-md-n1 { + margin-bottom: -0.25rem !important; + } + .ml-md-n1, + .mx-md-n1 { + margin-left: -0.25rem !important; + } + .m-md-n2 { + margin: -0.5rem !important; + } + .mt-md-n2, + .my-md-n2 { + margin-top: -0.5rem !important; + } + .mr-md-n2, + .mx-md-n2 { + margin-right: -0.5rem !important; + } + .mb-md-n2, + .my-md-n2 { + margin-bottom: -0.5rem !important; + } + .ml-md-n2, + .mx-md-n2 { + margin-left: -0.5rem !important; + } + .m-md-n3 { + margin: -1rem !important; + } + .mt-md-n3, + .my-md-n3 { + margin-top: -1rem !important; + } + .mr-md-n3, + .mx-md-n3 { + margin-right: -1rem !important; + } + .mb-md-n3, + .my-md-n3 { + margin-bottom: -1rem !important; + } + .ml-md-n3, + .mx-md-n3 { + margin-left: -1rem !important; + } + .m-md-n4 { + margin: -1.5rem !important; + } + .mt-md-n4, + .my-md-n4 { + margin-top: -1.5rem !important; + } + .mr-md-n4, + .mx-md-n4 { + margin-right: -1.5rem !important; + } + .mb-md-n4, + .my-md-n4 { + margin-bottom: -1.5rem !important; + } + .ml-md-n4, + .mx-md-n4 { + margin-left: -1.5rem !important; + } + .m-md-n5 { + margin: -3rem !important; + } + .mt-md-n5, + .my-md-n5 { + margin-top: -3rem !important; + } + .mr-md-n5, + .mx-md-n5 { + margin-right: -3rem !important; + } + .mb-md-n5, + .my-md-n5 { + margin-bottom: -3rem !important; + } + .ml-md-n5, + .mx-md-n5 { + margin-left: -3rem !important; + } + .m-md-auto { + margin: auto !important; + } + .mt-md-auto, + .my-md-auto { + margin-top: auto !important; + } + .mr-md-auto, + .mx-md-auto { + margin-right: auto !important; + } + .mb-md-auto, + .my-md-auto { + margin-bottom: auto !important; + } + .ml-md-auto, + .mx-md-auto { + margin-left: auto !important; + } +} +@media (min-width: 992px) { + .m-lg-0 { + margin: 0 !important; + } + .mt-lg-0, + .my-lg-0 { + margin-top: 0 !important; + } + .mr-lg-0, + .mx-lg-0 { + margin-right: 0 !important; + } + .mb-lg-0, + .my-lg-0 { + margin-bottom: 0 !important; + } + .ml-lg-0, + .mx-lg-0 { + margin-left: 0 !important; + } + .m-lg-1 { + margin: 0.25rem !important; + } + .mt-lg-1, + .my-lg-1 { + margin-top: 0.25rem !important; + } + .mr-lg-1, + .mx-lg-1 { + margin-right: 0.25rem !important; + } + .mb-lg-1, + .my-lg-1 { + margin-bottom: 0.25rem !important; + } + .ml-lg-1, + .mx-lg-1 { + margin-left: 0.25rem !important; + } + .m-lg-2 { + margin: 0.5rem !important; + } + .mt-lg-2, + .my-lg-2 { + margin-top: 0.5rem !important; + } + .mr-lg-2, + .mx-lg-2 { + margin-right: 0.5rem !important; + } + .mb-lg-2, + .my-lg-2 { + margin-bottom: 0.5rem !important; + } + .ml-lg-2, + .mx-lg-2 { + margin-left: 0.5rem !important; + } + .m-lg-3 { + margin: 1rem !important; + } + .mt-lg-3, + .my-lg-3 { + margin-top: 1rem !important; + } + .mr-lg-3, + .mx-lg-3 { + margin-right: 1rem !important; + } + .mb-lg-3, + .my-lg-3 { + margin-bottom: 1rem !important; + } + .ml-lg-3, + .mx-lg-3 { + margin-left: 1rem !important; + } + .m-lg-4 { + margin: 1.5rem !important; + } + .mt-lg-4, + .my-lg-4 { + margin-top: 1.5rem !important; + } + .mr-lg-4, + .mx-lg-4 { + margin-right: 1.5rem !important; + } + .mb-lg-4, + .my-lg-4 { + margin-bottom: 1.5rem !important; + } + .ml-lg-4, + .mx-lg-4 { + margin-left: 1.5rem !important; + } + .m-lg-5 { + margin: 3rem !important; + } + .mt-lg-5, + .my-lg-5 { + margin-top: 3rem !important; + } + .mr-lg-5, + .mx-lg-5 { + margin-right: 3rem !important; + } + .mb-lg-5, + .my-lg-5 { + margin-bottom: 3rem !important; + } + .ml-lg-5, + .mx-lg-5 { + margin-left: 3rem !important; + } + .p-lg-0 { + padding: 0 !important; + } + .pt-lg-0, + .py-lg-0 { + padding-top: 0 !important; + } + .pr-lg-0, + .px-lg-0 { + padding-right: 0 !important; + } + .pb-lg-0, + .py-lg-0 { + padding-bottom: 0 !important; + } + .pl-lg-0, + .px-lg-0 { + padding-left: 0 !important; + } + .p-lg-1 { + padding: 0.25rem !important; + } + .pt-lg-1, + .py-lg-1 { + padding-top: 0.25rem !important; + } + .pr-lg-1, + .px-lg-1 { + padding-right: 0.25rem !important; + } + .pb-lg-1, + .py-lg-1 { + padding-bottom: 0.25rem !important; + } + .pl-lg-1, + .px-lg-1 { + padding-left: 0.25rem !important; + } + .p-lg-2 { + padding: 0.5rem !important; + } + .pt-lg-2, + .py-lg-2 { + padding-top: 0.5rem !important; + } + .pr-lg-2, + .px-lg-2 { + padding-right: 0.5rem !important; + } + .pb-lg-2, + .py-lg-2 { + padding-bottom: 0.5rem !important; + } + .pl-lg-2, + .px-lg-2 { + padding-left: 0.5rem !important; + } + .p-lg-3 { + padding: 1rem !important; + } + .pt-lg-3, + .py-lg-3 { + padding-top: 1rem !important; + } + .pr-lg-3, + .px-lg-3 { + padding-right: 1rem !important; + } + .pb-lg-3, + .py-lg-3 { + padding-bottom: 1rem !important; + } + .pl-lg-3, + .px-lg-3 { + padding-left: 1rem !important; + } + .p-lg-4 { + padding: 1.5rem !important; + } + .pt-lg-4, + .py-lg-4 { + padding-top: 1.5rem !important; + } + .pr-lg-4, + .px-lg-4 { + padding-right: 1.5rem !important; + } + .pb-lg-4, + .py-lg-4 { + padding-bottom: 1.5rem !important; + } + .pl-lg-4, + .px-lg-4 { + padding-left: 1.5rem !important; + } + .p-lg-5 { + padding: 3rem !important; + } + .pt-lg-5, + .py-lg-5 { + padding-top: 3rem !important; + } + .pr-lg-5, + .px-lg-5 { + padding-right: 3rem !important; + } + .pb-lg-5, + .py-lg-5 { + padding-bottom: 3rem !important; + } + .pl-lg-5, + .px-lg-5 { + padding-left: 3rem !important; + } + .m-lg-n1 { + margin: -0.25rem !important; + } + .mt-lg-n1, + .my-lg-n1 { + margin-top: -0.25rem !important; + } + .mr-lg-n1, + .mx-lg-n1 { + margin-right: -0.25rem !important; + } + .mb-lg-n1, + .my-lg-n1 { + margin-bottom: -0.25rem !important; + } + .ml-lg-n1, + .mx-lg-n1 { + margin-left: -0.25rem !important; + } + .m-lg-n2 { + margin: -0.5rem !important; + } + .mt-lg-n2, + .my-lg-n2 { + margin-top: -0.5rem !important; + } + .mr-lg-n2, + .mx-lg-n2 { + margin-right: -0.5rem !important; + } + .mb-lg-n2, + .my-lg-n2 { + margin-bottom: -0.5rem !important; + } + .ml-lg-n2, + .mx-lg-n2 { + margin-left: -0.5rem !important; + } + .m-lg-n3 { + margin: -1rem !important; + } + .mt-lg-n3, + .my-lg-n3 { + margin-top: -1rem !important; + } + .mr-lg-n3, + .mx-lg-n3 { + margin-right: -1rem !important; + } + .mb-lg-n3, + .my-lg-n3 { + margin-bottom: -1rem !important; + } + .ml-lg-n3, + .mx-lg-n3 { + margin-left: -1rem !important; + } + .m-lg-n4 { + margin: -1.5rem !important; + } + .mt-lg-n4, + .my-lg-n4 { + margin-top: -1.5rem !important; + } + .mr-lg-n4, + .mx-lg-n4 { + margin-right: -1.5rem !important; + } + .mb-lg-n4, + .my-lg-n4 { + margin-bottom: -1.5rem !important; + } + .ml-lg-n4, + .mx-lg-n4 { + margin-left: -1.5rem !important; + } + .m-lg-n5 { + margin: -3rem !important; + } + .mt-lg-n5, + .my-lg-n5 { + margin-top: -3rem !important; + } + .mr-lg-n5, + .mx-lg-n5 { + margin-right: -3rem !important; + } + .mb-lg-n5, + .my-lg-n5 { + margin-bottom: -3rem !important; + } + .ml-lg-n5, + .mx-lg-n5 { + margin-left: -3rem !important; + } + .m-lg-auto { + margin: auto !important; + } + .mt-lg-auto, + .my-lg-auto { + margin-top: auto !important; + } + .mr-lg-auto, + .mx-lg-auto { + margin-right: auto !important; + } + .mb-lg-auto, + .my-lg-auto { + margin-bottom: auto !important; + } + .ml-lg-auto, + .mx-lg-auto { + margin-left: auto !important; + } +} +@media (min-width: 1200px) { + .m-xl-0 { + margin: 0 !important; + } + .mt-xl-0, + .my-xl-0 { + margin-top: 0 !important; + } + .mr-xl-0, + .mx-xl-0 { + margin-right: 0 !important; + } + .mb-xl-0, + .my-xl-0 { + margin-bottom: 0 !important; + } + .ml-xl-0, + .mx-xl-0 { + margin-left: 0 !important; + } + .m-xl-1 { + margin: 0.25rem !important; + } + .mt-xl-1, + .my-xl-1 { + margin-top: 0.25rem !important; + } + .mr-xl-1, + .mx-xl-1 { + margin-right: 0.25rem !important; + } + .mb-xl-1, + .my-xl-1 { + margin-bottom: 0.25rem !important; + } + .ml-xl-1, + .mx-xl-1 { + margin-left: 0.25rem !important; + } + .m-xl-2 { + margin: 0.5rem !important; + } + .mt-xl-2, + .my-xl-2 { + margin-top: 0.5rem !important; + } + .mr-xl-2, + .mx-xl-2 { + margin-right: 0.5rem !important; + } + .mb-xl-2, + .my-xl-2 { + margin-bottom: 0.5rem !important; + } + .ml-xl-2, + .mx-xl-2 { + margin-left: 0.5rem !important; + } + .m-xl-3 { + margin: 1rem !important; + } + .mt-xl-3, + .my-xl-3 { + margin-top: 1rem !important; + } + .mr-xl-3, + .mx-xl-3 { + margin-right: 1rem !important; + } + .mb-xl-3, + .my-xl-3 { + margin-bottom: 1rem !important; + } + .ml-xl-3, + .mx-xl-3 { + margin-left: 1rem !important; + } + .m-xl-4 { + margin: 1.5rem !important; + } + .mt-xl-4, + .my-xl-4 { + margin-top: 1.5rem !important; + } + .mr-xl-4, + .mx-xl-4 { + margin-right: 1.5rem !important; + } + .mb-xl-4, + .my-xl-4 { + margin-bottom: 1.5rem !important; + } + .ml-xl-4, + .mx-xl-4 { + margin-left: 1.5rem !important; + } + .m-xl-5 { + margin: 3rem !important; + } + .mt-xl-5, + .my-xl-5 { + margin-top: 3rem !important; + } + .mr-xl-5, + .mx-xl-5 { + margin-right: 3rem !important; + } + .mb-xl-5, + .my-xl-5 { + margin-bottom: 3rem !important; + } + .ml-xl-5, + .mx-xl-5 { + margin-left: 3rem !important; + } + .p-xl-0 { + padding: 0 !important; + } + .pt-xl-0, + .py-xl-0 { + padding-top: 0 !important; + } + .pr-xl-0, + .px-xl-0 { + padding-right: 0 !important; + } + .pb-xl-0, + .py-xl-0 { + padding-bottom: 0 !important; + } + .pl-xl-0, + .px-xl-0 { + padding-left: 0 !important; + } + .p-xl-1 { + padding: 0.25rem !important; + } + .pt-xl-1, + .py-xl-1 { + padding-top: 0.25rem !important; + } + .pr-xl-1, + .px-xl-1 { + padding-right: 0.25rem !important; + } + .pb-xl-1, + .py-xl-1 { + padding-bottom: 0.25rem !important; + } + .pl-xl-1, + .px-xl-1 { + padding-left: 0.25rem !important; + } + .p-xl-2 { + padding: 0.5rem !important; + } + .pt-xl-2, + .py-xl-2 { + padding-top: 0.5rem !important; + } + .pr-xl-2, + .px-xl-2 { + padding-right: 0.5rem !important; + } + .pb-xl-2, + .py-xl-2 { + padding-bottom: 0.5rem !important; + } + .pl-xl-2, + .px-xl-2 { + padding-left: 0.5rem !important; + } + .p-xl-3 { + padding: 1rem !important; + } + .pt-xl-3, + .py-xl-3 { + padding-top: 1rem !important; + } + .pr-xl-3, + .px-xl-3 { + padding-right: 1rem !important; + } + .pb-xl-3, + .py-xl-3 { + padding-bottom: 1rem !important; + } + .pl-xl-3, + .px-xl-3 { + padding-left: 1rem !important; + } + .p-xl-4 { + padding: 1.5rem !important; + } + .pt-xl-4, + .py-xl-4 { + padding-top: 1.5rem !important; + } + .pr-xl-4, + .px-xl-4 { + padding-right: 1.5rem !important; + } + .pb-xl-4, + .py-xl-4 { + padding-bottom: 1.5rem !important; + } + .pl-xl-4, + .px-xl-4 { + padding-left: 1.5rem !important; + } + .p-xl-5 { + padding: 3rem !important; + } + .pt-xl-5, + .py-xl-5 { + padding-top: 3rem !important; + } + .pr-xl-5, + .px-xl-5 { + padding-right: 3rem !important; + } + .pb-xl-5, + .py-xl-5 { + padding-bottom: 3rem !important; + } + .pl-xl-5, + .px-xl-5 { + padding-left: 3rem !important; + } + .m-xl-n1 { + margin: -0.25rem !important; + } + .mt-xl-n1, + .my-xl-n1 { + margin-top: -0.25rem !important; + } + .mr-xl-n1, + .mx-xl-n1 { + margin-right: -0.25rem !important; + } + .mb-xl-n1, + .my-xl-n1 { + margin-bottom: -0.25rem !important; + } + .ml-xl-n1, + .mx-xl-n1 { + margin-left: -0.25rem !important; + } + .m-xl-n2 { + margin: -0.5rem !important; + } + .mt-xl-n2, + .my-xl-n2 { + margin-top: -0.5rem !important; + } + .mr-xl-n2, + .mx-xl-n2 { + margin-right: -0.5rem !important; + } + .mb-xl-n2, + .my-xl-n2 { + margin-bottom: -0.5rem !important; + } + .ml-xl-n2, + .mx-xl-n2 { + margin-left: -0.5rem !important; + } + .m-xl-n3 { + margin: -1rem !important; + } + .mt-xl-n3, + .my-xl-n3 { + margin-top: -1rem !important; + } + .mr-xl-n3, + .mx-xl-n3 { + margin-right: -1rem !important; + } + .mb-xl-n3, + .my-xl-n3 { + margin-bottom: -1rem !important; + } + .ml-xl-n3, + .mx-xl-n3 { + margin-left: -1rem !important; + } + .m-xl-n4 { + margin: -1.5rem !important; + } + .mt-xl-n4, + .my-xl-n4 { + margin-top: -1.5rem !important; + } + .mr-xl-n4, + .mx-xl-n4 { + margin-right: -1.5rem !important; + } + .mb-xl-n4, + .my-xl-n4 { + margin-bottom: -1.5rem !important; + } + .ml-xl-n4, + .mx-xl-n4 { + margin-left: -1.5rem !important; + } + .m-xl-n5 { + margin: -3rem !important; + } + .mt-xl-n5, + .my-xl-n5 { + margin-top: -3rem !important; + } + .mr-xl-n5, + .mx-xl-n5 { + margin-right: -3rem !important; + } + .mb-xl-n5, + .my-xl-n5 { + margin-bottom: -3rem !important; + } + .ml-xl-n5, + .mx-xl-n5 { + margin-left: -3rem !important; + } + .m-xl-auto { + margin: auto !important; + } + .mt-xl-auto, + .my-xl-auto { + margin-top: auto !important; + } + .mr-xl-auto, + .mx-xl-auto { + margin-right: auto !important; + } + .mb-xl-auto, + .my-xl-auto { + margin-bottom: auto !important; + } + .ml-xl-auto, + .mx-xl-auto { + margin-left: auto !important; + } +} +.stretched-link::after { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1; + pointer-events: auto; + content: ''; + background-color: rgba(0, 0, 0, 0); +} +.text-monospace { + font-family: 'Space Mono', monospace !important; +} +.text-justify { + text-align: justify !important; +} +.text-wrap { + white-space: normal !important; +} +.text-nowrap { + white-space: nowrap !important; +} +.text-truncate { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.text-left { + text-align: left !important; +} +.text-right { + text-align: right !important; +} +.text-center { + text-align: center !important; +} +@media (min-width: 576px) { + .text-sm-left { + text-align: left !important; + } + .text-sm-right { + text-align: right !important; + } + .text-sm-center { + text-align: center !important; + } +} +@media (min-width: 768px) { + .text-md-left { + text-align: left !important; + } + .text-md-right { + text-align: right !important; + } + .text-md-center { + text-align: center !important; + } +} +@media (min-width: 992px) { + .text-lg-left { + text-align: left !important; + } + .text-lg-right { + text-align: right !important; + } + .text-lg-center { + text-align: center !important; + } +} +@media (min-width: 1200px) { + .text-xl-left { + text-align: left !important; + } + .text-xl-right { + text-align: right !important; + } + .text-xl-center { + text-align: center !important; + } +} +.text-lowercase { + text-transform: lowercase !important; +} +.text-uppercase { + text-transform: uppercase !important; +} +.text-capitalize { + text-transform: capitalize !important; +} +.font-weight-light { + font-weight: 300 !important; +} +.font-weight-lighter { + font-weight: lighter !important; +} +.font-weight-normal { + font-weight: 400 !important; +} +.font-weight-bold { + font-weight: 700 !important; +} +.font-weight-bolder { + font-weight: bolder !important; +} +.font-italic { + font-style: italic !important; +} +.text-white { + color: #fff !important; +} +.text-primary { + color: #9a52ff !important; +} +a.text-primary:hover, +a.text-primary:focus { + color: #6d06ff !important; +} +.text-secondary { + color: #e0e0e1 !important; +} +a.text-secondary:hover, +a.text-secondary:focus { + color: #b9b9bb !important; +} +.text-success { + color: #32e685 !important; +} +a.text-success:hover, +a.text-success:focus { + color: #16b560 !important; +} +.text-info { + color: #19a3ff !important; +} +a.text-info:hover, +a.text-info:focus { + color: #007acc !important; +} +.text-warning { + color: #faff19 !important; +} +a.text-warning:hover, +a.text-warning:focus { + color: #c7cc00 !important; +} +.text-danger { + color: #ff198b !important; +} +a.text-danger:hover, +a.text-danger:focus { + color: #cc0065 !important; +} +.text-light { + color: #fff !important; +} +a.text-light:hover, +a.text-light:focus { + color: #d9d9d9 !important; +} +.text-dark { + color: #111112 !important; +} +a.text-dark:hover, +a.text-dark:focus { + color: #000 !important; +} +.text-body { + color: #e0e0e1 !important; +} +.text-muted { + color: #e0e0e1 !important; +} +.text-black-50 { + color: rgba(0, 0, 0, 0.5) !important; +} +.text-white-50 { + color: rgba(255, 255, 255, 0.5) !important; +} +.text-hide { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} +.text-decoration-none { + text-decoration: none !important; +} +.text-break { + word-break: break-word !important; + word-wrap: break-word !important; +} +.text-reset { + color: inherit !important; +} +.visible { + visibility: visible !important; +} +.invisible { + visibility: hidden !important; +} +@media print { + *, + *::before, + *::after { + text-shadow: none !important; + box-shadow: none !important; + } + a:not(.btn) { + text-decoration: underline; + } + abbr[title]::after { + content: ' (' attr(title) ')'; + } + pre { + white-space: pre-wrap !important; + } + pre, + blockquote { + border: 1px solid #838386; + page-break-inside: avoid; + } + tr, + img { + page-break-inside: avoid; + } + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + h2, + h3 { + page-break-after: avoid; + } + @page { + size: a3; + } + body { + min-width: 992px !important; + } + .container { + min-width: 992px !important; + } + .navbar { + display: none; + } + .badge { + border: 1px solid #000; + } + .table { + border-collapse: collapse !important; + } + .table td, + .table th { + background-color: #fff !important; + } + .table-bordered th, + .table-bordered td { + border: 1px solid #c1c1c2 !important; + } + .table-dark { + color: inherit; + } + .table-dark th, + .table-dark td, + .table-dark thead th, + .table-dark tbody + tbody { + border-color: #c1c1c2; + } + .table .thead-dark th { + color: inherit; + border-color: #c1c1c2; + } +} +body { + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; +} +pre, +code { + font-feature-settings: 'liga' 0; + font-variant-ligatures: none; +} +h1, +h2, +h3, +h4, +h5, +h6, +.h1, +.h2, +.h3, +.h4, +.h5, +.h6 { + font-weight: bold; +} +h1, +.h1 { + font-size: 3.875rem; + line-height: 70px; +} +@media (max-width: 480px) { + h1, + .h1 { + font-size: 2.625rem; + line-height: 48px; + } +} +h2, +.h2 { + font-size: 3.5rem; + line-height: 62px; +} +@media (max-width: 767.98px) { + h2, + .h2 { + font-size: 1.75rem; + line-height: 34px; + } +} +@media (max-width: 767.98px) { + h2-sm, + .h2-sm { + font-size: 1.75rem !important; + line-height: 34px !important; + } +} +h3, +.h3 { + font-size: 3rem; + line-height: 52px; +} +@media (max-width: 767.98px) { + h3, + .h3 { + font-size: 1.5rem; + line-height: 28px; + } +} +@media (max-width: 767.98px) { + h3-sm, + .h3-sm { + font-size: 1.5rem; + line-height: 28px; + } +} +h4, +.h4 { + font-size: 2rem; + line-height: 38px; +} +@media (max-width: 767.98px) { + h4, + .h4 { + font-size: 1.25rem; + line-height: 26px; + } +} +h5, +.h5 { + font-size: 1.5rem; + line-height: 32px; +} +@media (max-width: 767.98px) { + h5, + .h5 { + font-size: 1.125rem; + line-height: 26px; + } +} +h6, +.h6 { + font-size: 1.25rem; + line-height: 26px; +} +@media (max-width: 767.98px) { + h6, + .h6 { + font-size: 1rem; + line-height: 24px; + } +} +.longform { + font-size: 1.5rem; + line-height: 32px; + color: #f5f5f7; + font-weight: 500; +} +@media (max-width: 767.98px) { + .longform { + font-size: 1.25rem; + line-height: 26px; + } +} +.numbers { + font-size: 6rem; + line-height: 104px; + font-weight: bold; + color: #fff; +} +@media (max-width: 767.98px) { + .numbers { + font-size: 3.875rem; + line-height: 70px; + } +} +p { + font-size: 1rem; + line-height: 24px; +} +.fs-base { + font-size: 1rem; +} +.fs-3 { + font-size: 0.75rem; + line-height: 1rem; +} +.fs-4-5 { + font-size: 1.125rem; +} +.fs-5 { + font-size: 1.25rem; +} +.fs-5-5 { + font-size: 1.375rem; +} +.fs-6 { + font-size: 1.5rem; +} +.normal { + font-weight: normal; +} +.bold { + font-weight: bold; +} +.text-largest { + font-size: 1.5rem; + font-weight: normal; +} +.text-large { + font-size: 1.125rem; +} +.text-small { + font-size: 0.875rem; +} +.text-smaller { + font-size: 0.75rem; +} +.text-smallest { + font-size: 0.625rem; +} +.arrow-link { + text-decoration: none; +} +.arrow-link:after { + content: url(../img/icon-long-arrow.svg); + width: 28px; + padding-left: 7px; + transition: all 0.2s ease-in-out; + display: inline-block; + text-decoration: none; +} +.arrow-link:hover:after { + padding-left: 14px; +} +.lang-ja { + font-family: 'Work Sans', 'Noto Sans JP', sans-serif; +} +.lang-ja h1, +.lang-ja h2, +.lang-ja h3, +.lang-ja h4, +.lang-ja h5, +.lang-ja .navbar .navbar-nav .nav-link, +.lang-ja article .children-display li a, +.lang-ja .right-sidebar .level-1 a, +.lang-ja .right-sidebar .separator { + font-family: 'Work Sans', 'Noto Sans JP', sans-serif; +} +.search .input-group-text { + border-width: 0; + color: #fff; + background-color: #232325; + border-radius: 4px 0 0 4px; + padding: 0.5rem 0.5rem 0.5rem 1rem; + line-height: 1.5; +} +.search .ds-input { + background-color: #232325; + border-radius: 0 4px 4px 0; + padding: 0.75rem 1rem 0.75rem 0.5rem; + width: 100%; + border: 1px solid #232325; +} +.search .ds-input:focus { + box-shadow: none; + border-color: #9a52ff; +} +.search .algolia-autocomplete { + flex-grow: 1; +} +#algolia-autocomplete-listbox-0 { + z-index: 1100 !important; +} +.xrp-ledger-dev-portal .DocSearch-Modal { + top: 85px; + background-color: #232325; + box-shadow: none; +} +html .DocSearch-Modal { + box-shadow: none; +} +html .DocSearch-Button { + height: 32px; + border-radius: 4px; +} +html .DocSearch-Button:hover { + border-radius: 4px; +} +html .DocSearch-Modal { + max-width: 55%; +} +@media (min-width: 1200px) { + html .DocSearch-Modal { + margin-right: 112px; + } +} +@media (max-width: 991.98px) { + html .algolia-autocomplete .ds-dropdown-menu { + min-width: unset; + } + html .DocSearch-Modal { + top: 112px; + max-width: 100%; + margin-left: 0; + margin-right: 0; + } +} +html .DocSearch-Container { + z-index: 99999 !important; + background-color: transparent !important; +} +html #centersearchboxcontainer { + justify-content: center; +} +html #topsearchboxcontainer { + justify-content: right; +} +html .algolia-autocomplete .ds-dropdown-menu [class^='ds-dataset-'] { + background-color: #111112; + border: 0; + border-radius: 8px; +} +html .algolia-autocomplete .algolia-docsearch-suggestion--category-header { + border: 0; + font-weight: bold; +} +html .algolia-autocomplete .algolia-docsearch-suggestion--text { + font-size: 0.8rem; +} +html .algolia-autocomplete .ds-dropdown-menu::before { + border: 0; +} +.dark .DocSearch-Modal { + background-color: #232325; +} +.dark .DocSearch-Cancel { + color: #9a52ff; +} +.dark .DocSearch-Form { + box-shadow: inset 0 0 0 2px #9a52ff; + background-color: #232325; +} +.dark .DocSearch-Hit-source { + color: #9a52ff; +} +.dark .DocSearch-Hits mark { + color: #9a52ff; +} +.dark .DocSearch-Hit-source, +.dark .DocSearch-Hit-Container, +.dark .DocSearch-Footer { + background-color: #232325; +} +.dark .DocSearch-Hit a { + background-color: #232325; + box-shadow: none; +} +.dark .DocSearch-Hit-source { + color: #a2a2a4; +} +.dark .DocSearch-Input { + color: #fff; +} +.dark .DocSearch-Hit-title, +.dark .DocSearch-Hit-path, +.dark .DocSearch-Label, +.dark .DocSearch-Help { + color: #f5f5f7 !important; +} +.dark .DocSearch-Hit[aria-selected='true'] a { + background: #343437; +} +.dark .DocSearch-Hit[aria-selected='true'] a .DocSearch-Hit-Container { + background-color: #343437; +} +.dark .DocSearch-Hit[aria-selected='true'] a mark { + color: #9a52ff !important; +} +.dark .DocSearch-Prefill { + color: #9a52ff; +} +.dark .DocSearch-Button { + background: #232325; +} +.dark .DocSearch-Button:hover { + background: #232325; + box-shadow: inset 0 0 0 2px #9a52ff; +} +.dark .DocSearch-Button:hover .DocSearch-Button-Placeholder { + color: #fff; +} +.dark .DocSearch-Search-Icon { + color: #fff !important; +} +.dark .DocSearch-Logo svg .cls-1, +.dark .DocSearch-Logo svg .cls-2 { + fill: #fff; +} +.dark .DocSearch-Commands-Key { + color: #232325; +} +.dark .algolia-autocomplete .algolia-docsearch-suggestion--category-header { + color: #fff; + border-bottom: 2px solid #9a52ff; +} +.dark .algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column { + color: #fff; +} +.dark .algolia-autocomplete .algolia-docsearch-suggestion--title { + color: #fff; +} +.dark .algolia-autocomplete .algolia-docsearch-suggestion--text { + color: #e0e0e1; +} +.dark .algolia-autocomplete .algolia-docsearch-suggestion--highlight { + color: #fff; + background-color: #343437; +} +.dark .algolia-autocomplete .ds-dropdown-menu::before { + background-color: #111112; +} +.dark .algolia-autocomplete .algolia-docsearch-suggestion { + background-color: #111112; +} +.dark + .algolia-autocomplete + .algolia-docsearch-suggestion--category-header + .algolia-docsearch-suggestion--category-header-lvl0 + .algolia-docsearch-suggestion--highlight, +.dark + .algolia-autocomplete + .algolia-docsearch-suggestion--category-header + .algolia-docsearch-suggestion--category-header-lvl1 + .algolia-docsearch-suggestion--highlight, +.dark .algolia-autocomplete .algolia-docsearch-suggestion--text .algolia-docsearch-suggestion--highlight { + box-shadow: none; + background-color: #343437; +} +body { + position: relative; +} +section { + position: relative; +} +.landing { + padding: 0; +} +.square { + position: relative; + flex-basis: calc(50% - 30px); + margin: 15px; + box-sizing: border-box; + justify-content: center; + align-items: center; + border-radius: 8px; +} +.square::before { + content: ''; + display: block; + padding-top: 100%; +} +@media (min-width: 992px) { + .square { + flex-basis: calc(25% - 30px); + } +} +.square-50 { + flex-basis: calc(50% - 30px); +} +@media (max-width: 767.98px) { + .square-50 { + flex-basis: calc(50% - 20px); + } +} +.nav-grid-lg { + display: flex; + flex-direction: column; +} +.nav-grid-lg .nav-item { + width: 100%; +} +.nav-grid-lg .nav-item .nav-link { + display: flex; +} +.nav-grid-lg .nav-item .nav-link span { + flex-grow: 0; +} +.nav-grid-lg .nav-item .nav-link img { + max-height: 2rem; +} +.nav-grid-lg .nav-grid-head { + margin-top: 2.5rem; +} +@media (min-width: 992px) { + .nav-grid-lg { + display: grid; + grid-auto-flow: column; + grid-column-gap: 80px; + } + .nav-grid-lg .nav-grid-head { + margin-top: 0; + } +} +.col-lg { + padding-left: 0; + padding-right: 0; +} +@media (min-width: 992px) { + .cols-of-1 { + grid-template-rows: repeat(1, min-content); + } +} +@media (min-width: 992px) { + .cols-of-2 { + grid-template-rows: repeat(2, min-content); + } +} +@media (min-width: 992px) { + .cols-of-3 { + grid-template-rows: repeat(3, min-content); + } +} +@media (min-width: 992px) { + .cols-of-4 { + grid-template-rows: repeat(4, min-content); + } +} +@media (min-width: 992px) { + .cols-of-5 { + grid-template-rows: repeat(5, min-content); + } +} +@media (min-width: 992px) { + .cols-of-6 { + grid-template-rows: repeat(6, min-content); + } +} +.card-grid { + display: grid; + grid-gap: 40px; + padding: 0; + width: 100%; + grid-template-columns: 1fr; +} +@media (min-width: 992px) { + .card-grid { + grid-gap: 80px; + } +} +.card-grid .col { + padding-left: 0; + padding-right: 0; + min-width: 100%; +} +.card-grid.card-grid-4xN { + grid-auto-rows: auto; + grid-template-columns: repeat(2, 1fr); +} +@media (min-width: 992px) { + .card-grid.card-grid-4xN { + grid-template-columns: repeat(4, 1fr); + } +} +.card-grid.card-grid-3xN { + grid-auto-rows: auto; +} +@media (min-width: 992px) { + .card-grid.card-grid-3xN { + grid-template-columns: 1fr 1fr 1fr; + } +} +.card-grid.card-grid-2xN { + grid-template-columns: 1fr 1fr; + grid-auto-rows: auto; +} +@media (max-width: 991.98px) { + .card-grid.card-grid-2xN { + grid-template-columns: 1fr; + } +} +.card-grid.card-grid-1x2 { + grid-template-columns: 1fr 2fr; + grid-auto-rows: auto; +} +@media (max-width: 991.98px) { + .card-grid.card-grid-1x2 { + display: flex; + } +} +.card-grid .card { + padding: 20px; + border: 0; + min-height: 264px; +} +@media (min-width: 768px) { + .card-grid .card { + min-height: 347px; + } +} +@media (min-width: 992px) { + .card-grid .card { + padding: 40px; + } +} +.card-grid .card .card-body { + padding: 8px; + padding-bottom: 24px; +} +.card-grid .card .card-body .card-icon-container { + width: 50px; + height: 50px; +} +.card-grid .card .card-body .card-icon-container img { + width: 70%; + height: 70%; +} +.card-grid.section-hero { + padding-left: 0; +} +.container-new { + display: flex; + flex-wrap: wrap; + margin: 0 auto; + padding: 0 32px; + max-width: 100%; + z-index: 1; +} +@media (min-width: 768px) { + .container-new { + max-width: 608px; + } +} +@media (min-width: 992px) { + .container-new { + max-width: 942px; + } +} +@media (min-width: 1200px) { + .container-new { + max-width: 1280px; + } +} +@media (max-width: 991.98px) { + article { + overflow-wrap: break-word; + word-wrap: break-word; + overflow: hidden; + } +} +@media (max-width: 480px) { + html { + overflow-x: hidden !important; + } +} +@media (max-width: 400px) { + .navbar .navbar-brand .brand-text { + margin-right: 0; + letter-spacing: -0.08rem; + } + .navbar .navbar-brand { + margin-right: 0; + } + .navbar .navbar-brand .logo { + margin-right: 0; + margin-left: -1rem; + } + .btn { + white-space: normal; + } +} +.timeline-wrapper { + z-index: 999; + position: relative; +} +.timeline:before { + content: ''; + position: absolute; + top: -40px; + left: 18px; + height: 95%; + width: 4px; + background: linear-gradient(180deg, #feff01 0%, #ff2d9a 33%, #a3088f 66%, rgba(44, 4, 128, 0.85) 100%); +} +@media (max-width: 991.98px) { + .timeline:before { + left: 8px; + } +} +.timeline-dot { + margin-top: 94px; + display: -ms-flexbox; + display: flex; + -ms-flex-pack: center; + justify-content: center; + -ms-flex-align: center; + align-items: center; + -ms-flex-negative: 0; + flex-shrink: 0; + width: 18px; + height: 18px; + border-radius: 50%; + background: #111112; + box-sizing: border-box; +} +.timeline-block:first-child .timeline-dot { + border: 3px solid #faff19; +} +.timeline-block:nth-child(2) .timeline-dot { + border: 3px solid #ff884b; +} +.timeline-block:nth-child(3) .timeline-dot { + border: 3px solid #c000e5; +} +.timeline-block:nth-child(4) .timeline-dot { + border: 3px solid #40004c; +} +.timeline-block { + display: flex; + position: relative; + z-index: 1; +} +.timeline-content { + flex-grow: 1; + position: relative; + margin-left: 1.25em; +} +.timeline h4 { + margin-top: -4px; +} +@media (min-width: 768px) { + .timeline:before { + left: 50%; + -webkit-transform: translateX(-50%); + -ms-transform: translateX(-50%); + transform: translateX(-50%); + } + .timeline-dot { + -ms-flex-order: 1; + order: 1; + margin-left: calc(5% - 9px); + will-change: transform; + } + .timeline-block:nth-child(even) { + -ms-flex-direction: row-reverse; + flex-direction: row-reverse; + } + .timeline-dot { + margin-right: calc(5% - 9px); + } + .timeline-content { + width: 45%; + -ms-flex-positive: 0; + flex-grow: 0; + will-change: transform; + margin: 0; + --line-height-multiplier: 1.2; + } +} +@media (min-width: 992px) { + [data-component-name='TableOfContent/TableOfContent'] { + margin-right: 32px; + } +} +aside li a { + color: #fff; + text-decoration: none; + font-size: 1.05rem; +} +aside .sidenav_cat_title { + color: #fff; +} +aside a:hover, +aside .sidenav_cat_title:hover { + color: #9a52ff; +} +aside a.active, +aside a.active:hover, +aside .active > a, +aside .active > a:hover { + color: #9a52ff; + font-weight: 700; +} +aside a.active-parent, +aside .active-parent > a { + font-weight: 700; +} +.page-toc .level-1 a, +.command-list .separator { + font-weight: 700; + color: #fff; +} +.nav-toggler { + position: absolute; + width: 1.75em; + height: 1.75em; + line-height: 0; + display: grid; + justify-content: center; + align-content: center; +} +.nav-toggler::after { + display: inline-block; + margin-left: 0.34em; + vertical-align: 0.34em; + content: ''; + border-top: 0.4em solid; + border-right: 0.4em solid transparent; + border-bottom: 0; + border-left: 0.4em solid transparent; +} +.nav-toggler:empty::after { + margin-left: 0; +} +.nav-toggler::after { + transition-duration: 0.3s; +} +.nav-toggler.collapsed::after { + transform: rotate(-90deg); +} +.dactyl-tree-nav nav { + margin-left: 1rem; + padding-left: 0; + border-left: 1px solid #fff; +} +.dactyl-tree-nav nav .nav-link:hover, +.dactyl-tree-nav nav .nav-link:active { + border-left: 1px solid #9a52ff; + margin-left: -1px; +} +.dactyl-tree-nav nav .active > .nav-link { + border-left: 2px solid #9a52ff; + margin-left: -1px; + padding-left: calc(1rem - 1px); +} +.dactyl-tree-nav .nav-item { + position: relative; +} +.dactyl-tree-nav .nav-item .nav-link { + padding: 0.25rem 1rem; + font-size: 0.9rem; +} +.dactyl-tree-nav .nav-item.nav-parent { + padding-top: 0; +} +.dactyl-tree-nav .nav-item.nav-parent .nav-link { + padding-left: 0; + padding-top: 0; + font-size: 1.125rem; + line-height: initial; +} +.dactyl-tree-nav .nav-item .nav-toggler + .nav-link { + padding-left: 2rem; +} +.dactyl-tree-nav > .nav-item { + padding: 0.5rem 0; + font-size: 1.125rem; +} +.dactyl-tree-nav > .nav-item > .nav-link { + font-weight: bold; +} +.dactyl-tree-nav .collapsing.nav { + flex-wrap: unset; +} +.toc-header { + font-weight: bold; + font-size: 14px; + padding: 1rem 0; +} +.toc-header h4 { + line-height: 20px; + font-size: 1.2em; + padding: 0; + margin: 0; +} +#page-toc-wrapper .card-body { + list-style-type: none; +} +.page-toc, +.command-list { + padding-left: 0; + border-left: 1px solid #fff; +} +.page-toc li, +.command-list li { + list-style-type: none; + padding: 0; +} +.page-toc li.separator, +.command-list li.separator { + padding: 0.25rem 1rem; +} +.page-toc li a, +.command-list li a { + display: block; + margin-top: 5px; + padding: 0.25rem 1rem; + font-size: 0.9rem; +} +.page-toc li a:hover, +.page-toc li a .active, +.command-list li a:hover, +.command-list li a .active { + text-decoration: none; + border-left: 1px solid #9a52ff; + margin-left: -1px; +} +.page-toc li.active a, +.page-toc li.active a:hover, +.command-list li.active a, +.command-list li.active a:hover { + border-left: 2px solid #9a52ff; + padding-left: calc(1rem - 1px); + margin-left: -1px; +} +.page-toc .level-3, +.command-list .level-3 { + margin-left: 16px; + border-left: 1px solid #fff; + margin-bottom: 0; + padding-bottom: 5px; +} +.page-toc .level-3 a, +.command-list .level-3 a { + margin-top: 0; + padding-bottom: 5px; +} +.page-toc.no-sideline, +.command-list.no-sideline { + border-left: 0; +} +.page-toc.no-sideline a:hover, +.page-toc.no-sideline a.active, +.command-list.no-sideline a:hover, +.command-list.no-sideline a.active { + border-left: 0; + margin-left: 0; +} +.command-list li a { + margin-top: 0; +} +.h32 { + height: 32px; +} +.w32 { + width: 32px; +} +.h36 { + height: 36px; +} +.w36 { + width: 36px; +} +.h40 { + height: 40px; +} +.w40 { + width: 40px; +} +.w44 { + width: 44px; +} +.w48 { + width: 48px; +} +.w-100 { + width: 100%; +} +.min-vh100 { + min-height: 100vh; +} +.vw100 { + width: 100vw; + min-width: 100%; +} +@media (max-width: 767.98px) { + .mb-3-sm-i { + margin-bottom: 1rem !important; + } +} +.ml-5 { + margin-left: 1.25rem; +} +@media (min-width: 768px) { + .ml-5-until-md { + margin-left: 1.25rem; + } +} +.mr-5 { + margin-right: 1.25rem; +} +@media (min-width: 768px) { + .mr-5-until-md { + margin-right: 1.25rem; + } +} +.mb-6 { + margin-bottom: 1.5rem; +} +@media (max-width: 767.98px) { + .mb-6-sm { + margin-bottom: 1.5rem; + } +} +.mt-6 { + margin-top: 1.5rem; +} +@media (min-width: 576px) { + .mt-6-until-sm { + margin-top: 1.5rem !important; + } +} +.mb-8 { + margin-bottom: 2rem; +} +@media (max-width: 767.98px) { + .mb-8-sm { + margin-bottom: 2rem; + } +} +.mt-8 { + margin-top: 2rem; +} +@media (min-width: 576px) { + .mt-8-until-sm { + margin-top: 2rem !important; + } +} +.mt-9 { + margin-top: 2.25rem; +} +.mb-9 { + margin-bottom: 2.25rem; +} +.mt-10 { + margin-top: 2.5rem; +} +@media (max-width: 767.98px) { + .mt-10-sm { + margin-top: 2.5rem; + } +} +.mb-10 { + margin-bottom: 2.5rem; +} +@media (min-width: 576px) { + .mb-10-until-sm { + margin-bottom: 2.5rem; + } +} +@media (max-width: 767.98px) { + .mb-10-sm { + margin-bottom: 2.5rem; + } +} +.ml-10 { + margin-left: 2.5rem; +} +.mr-10 { + margin-right: 2.5rem; +} +.my-10 { + margin-top: 2.5rem; + margin-bottom: 2.5rem; +} +.mx-10 { + margin-left: 2.5rem; + margin-right: 2.5rem; +} +@media (min-width: 576px) { + .mx-10-until-sm { + margin-left: 2.5rem; + margin-right: 2.5rem; + } +} +@media (min-width: 768px) { + .mx-10-until-md { + margin-left: 2.5rem; + margin-right: 2.5rem; + } +} +@media (max-width: 767.98px) { + .mx-10-sm { + margin-left: 2.5rem; + margin-right: 2.5rem; + } +} +.mt-1 { + margin-top: 1rem; +} +.mt-12 { + margin-top: 3rem; +} +.mb-12 { + margin-bottom: 3rem; +} +.my-12 { + margin-top: 3rem; + margin-bottom: 3rem; +} +.mt-13 { + margin-top: 3.25rem; +} +.mb-13 { + margin-bottom: 3.25rem; +} +.mt-14 { + margin-top: 3.5rem; +} +.mt-16 { + margin-top: 4rem; +} +@media (max-width: 767.98px) { + .mt-16-sm { + margin-top: 4rem; + } +} +.mb-16 { + margin-bottom: 4rem; +} +@media (max-width: 767.98px) { + .mb-16-sm { + margin-bottom: 4rem; + } +} +.mb-18 { + margin-bottom: 4.5rem; +} +.mt-20 { + margin-top: 5rem; +} +@media (max-width: 767.98px) { + .mt-20-sm { + margin-top: 5rem; + } +} +@media (min-width: 576px) { + .mt-20-until-sm { + margin-top: 5rem; + } +} +.mb-20 { + margin-bottom: 5rem; +} +@media (max-width: 767.98px) { + .mb-20-sm { + margin-bottom: 5rem; + } +} +@media (min-width: 576px) { + .mb-20-until-sm { + margin-bottom: 5rem; + } +} +.my-20 { + margin-top: 5rem; + margin-bottom: 5rem; +} +.my-26 { + margin-top: 6.5rem; + margin-bottom: 6.5rem; +} +.mb-30 { + margin-bottom: 7.5rem; +} +.mt-30 { + margin-top: 7.5rem; +} +@media (min-width: 576px) { + .mt-30-until-sm { + margin-top: 7.5rem; + } +} +.mt-40 { + margin-top: 10rem; +} +@media (min-width: 576px) { + .mt-40-until-sm { + margin-top: 10rem; + } +} +.mb-40 { + margin-bottom: 10rem; +} +@media (min-width: 576px) { + .mb-40-until-sm { + margin-bottom: 10rem; + } +} +.mb-49 { + margin-bottom: 12.25rem; +} +.mb-50 { + margin-bottom: 12.5rem; +} +@media (min-width: 576px) { + .mb-50-until-sm { + margin-bottom: 12.5rem; + } +} +@media (max-width: 767.98px) { + .pl-0-sm { + padding-left: 0 !important; + } +} +@media (max-width: 767.98px) { + .pr-0-sm { + padding-right: 0 !important; + } +} +@media (max-width: 767.98px) { + .pt-3-sm { + padding-top: 1rem !important; + } +} +.p-6 { + padding: 1.5rem; +} +@media (max-width: 767.98px) { + .p-6-sm { + padding: 1.5rem; + } +} +.p-8 { + padding: 2rem; +} +@media (max-width: 767.98px) { + .p-8-sm { + padding: 2rem; + } +} +.p-10 { + padding: 2.5rem; +} +@media (min-width: 576px) { + .p-10-until-sm { + padding: 2.5rem; + } +} +.py-20 { + padding-bottom: 5rem; + padding-top: 5rem; +} +.px-20 { + padding-left: 5rem; + padding-right: 5rem; +} +.pt-20 { + padding-top: 5rem; +} +.pb-20 { + padding-bottom: 5rem; +} +.py-26 { + padding-top: 6.5rem; + padding-bottom: 6.5rem; +} +@media (max-width: 767.98px) { + .py-26 { + padding-top: 2.5rem; + padding-bottom: 2.5rem; + } +} +.pt-26 { + padding-top: 2.5rem; +} +@media (min-width: 576px) { + .pt-26-until-sm { + padding-top: 6.5rem; + } +} +.pb-26 { + padding-bottom: 6.5rem; +} +@media (min-width: 576px) { + .pb-26-until-sm { + padding-bottom: 6.5rem; + } +} +.pt-30 { + padding-top: 7.5rem; +} +.pb-30 { + padding-bottom: 7.5rem; +} +.pt-40 { + padding-top: 10rem; +} +@media (min-width: 576px) { + .pt-40-until-sm { + padding-top: 10rem; + } +} +.pb-40 { + padding-bottom: 10rem; +} +.pb-50 { + padding-bottom: 12.5rem; +} +.pt-50 { + padding-top: 12.5rem; +} +.py-50 { + padding-bottom: 12.5rem; + padding-top: 12.5rem; +} +@media (min-width: 576px) { + .py-50-until-sm { + padding-bottom: 12.5rem; + padding-top: 12.5rem; + } +} +.floating-nav { + top: 6rem; +} +.last-section { + margin-bottom: 100px; +} +.bottom-0 { + bottom: 0; +} +.justify-center { + justify-content: center; +} +@media (max-width: 767.98px) { + .justify-center-sm { + justify-content: center; + } +} +@media (max-width: 575.98px) { + .overflow-xs { + overflow: scroll; + } + .overflow-x-xs { + overflow-x: scroll; + overflow-y: hidden; + } +} +@media (min-width: 768px) { + .position-sm-absolute { + position: absolute; + } +} +.va-middle { + vertical-align: middle; +} +.ls-none { + list-style: none; +} +.no-wrap { + white-space: nowrap; +} +.align-items-stretch { + align-items: stretch; +} +.underline { + text-decoration: underline; +} +@media (max-width: 575.98px) { + .d-none-xs { + display: none; + } +} +@media (max-width: 767.98px) { + .d-none-sm { + display: none; + } +} +@media (min-width: 992px) { + .d-none-lg { + display: none; + } +} +.d-block { + display: block; +} +.border-green { + border: 1px solid #9a52ff; +} +.border-none { + border: none !important; +} +.grey-400 { + color: #a2a2a4; +} +.grey-500 { + color: #838386; +} +.grey-700 { + color: #343437; +} +.white { + color: #fff; +} +.stat-highlight { + color: #32e685; +} +.br-8 { + border-radius: 8px; +} +@media (max-width: 767.98px) { + br.until-sm { + content: ''; + } +} +.z-index-1 { + z-index: 1; +} +.bb-gray { + border-bottom: 1px solid #454549; +} +@keyframes arrowDance { + 0% { + padding-left: 7px; + } + 50% { + padding-left: 14px; + } + 100% { + padding-left: 7px; + } +} +@keyframes arrowDance2 { + 0% { + right: 0; + } + 50% { + right: 7px; + } + 100% { + right: 0; + } +} +@keyframes arrowDanceDiag { + 0% { + right: 7px; + margin-top: 0; + } + 50% { + right: 0; + margin-top: -7px; + } + 100% { + right: 7px; + margin-top: 0; + } +} +.btn, +article a.button, +article .btn { + font-weight: bold; + cursor: pointer; + text-decoration: none; + transition: 0.2s; + padding: 0.5rem 1rem; + line-height: 16px; +} +article a.button { + padding: 0.5rem 1rem; + margin: 0 0.5rem; + display: inline-block; +} +.btn.disabled, +button.disabled, +.btn[disabled='disabled'], +button[disabled='disabled'] { + cursor: not-allowed; +} +.btn-primary code, +.btn-secondary code { + color: inherit; +} +.btn-primary { + background: #7919ff; + font-weight: bold; + color: #fff; + border: none; + border-color: transparent; +} +.btn-primary:hover { + background: #5f00e5; +} +.btn-primary.disabled, +.btn-primary[disabled='disabled'] { + background: #4a00b2; +} +.btn-primary.disabled:hover, +.btn-primary[disabled='disabled']:hover { + background: #4a00b2; +} +@media (max-width: 767.98px) { + .btn-arrow { + display: block; + width: 100%; + } +} +.btn-arrow::after { + display: inline-block; + content: url(../img/icons/arrow-right.svg); + position: relative; + top: 1px; + vertical-align: middle; + padding-left: 8px; + -webkit-transition: transform 0.3s ease-out; + -moz-transition: transform 0.3s ease-out; + -ms-transition: transform 0.3s ease-out; + -o-transition: transform 0.3s ease-out; + transition: transform 0.3s ease-out; +} +.btn-arrow:hover { + background: #5f00e5 !important; + border: none; +} +.btn-arrow:hover::after { + -webkit-transform: translateX(4px); + -moz-transform: translateX(4px); + -ms-transform: translateX(4px); + -o-transform: translateX(4px); + transform: translateX(4px); +} +.btn-arrow-out::after { + background-position: left 0px bottom 0px; + content: ' '; + background-image: url(../img/icons/arrow-up-right-white.svg); + background-repeat: no-repeat; + display: inline-block; + padding: 4px 8px 4px 12px; + transition: background-position 0.3s ease-in-out; + margin-left: 4px; +} +.btn-arrow-out:hover::after { + background-position: left 4px bottom 4px; +} +@media (max-width: 767.98px) { + .btn-arrow-out { + display: block; + width: 100%; + } +} +.jump-to-top { + display: none; + position: fixed; + bottom: 36px; + right: 36px; + font-weight: 700; + z-index: 1000; +} +.jump-to-top::after { + display: none; +} +.accordian-row { + background: #232325; + border-radius: 5px; + padding: 32px; +} +.accordian-row h3 a { + position: relative; + padding-right: 2rem; +} +.accordian-row h3 a:hover { + color: #fff; +} +.accordian-row .chevron { + position: absolute; + top: 0; + right: 0; +} +article table { + clear: right; + margin-bottom: 48px; +} +article table code { + word-break: normal; + white-space: nowrap; + overflow-wrap: normal; +} +article table th { + border-bottom: 2px solid #e0e0e1; +} +article table tr { + border-bottom: 1px solid #e0e0e1; +} +article table th, +article table td { + padding: 0.2em; + vertical-align: text-top; +} +article table td:nth-child(1) { + font-weight: bold; +} +.landing-table th, +.landing-table tr { + border-bottom: 2px solid #454549; +} +.landing-table td { + width: 33.33%; + padding: 16px 40px 16px 0; +} +.landing-table td:nth-child(1) { + font-weight: normal; +} +@media (max-width: 767.98px) { + .landing-table td { + font-size: 0.875rem; + } +} +.landing-table tr:last-child { + border-bottom: none; +} +.landing-table tbody td { + color: #e0e0e1; +} +.dblue { + color: #454549; +} +#overview-table td:nth-child(1) { + width: 40%; +} +#overview-table td:nth-child(2) { + width: 30%; +} +#overview-table tbody td { + padding: 2rem 0.75rem; +} +@media (max-width: 991.98px) { + #overview-table { + font-size: 0.875rem; + } + #overview-table thead .h4 { + font-size: 1.125rem; + } +} +article table { + clear: right; + margin-bottom: 48px; +} +article table code { + word-break: normal; + white-space: nowrap; + overflow-wrap: normal; +} +article table th { + border-bottom: 2px solid #e0e0e1; +} +article table tr { + border-bottom: 1px solid #e0e0e1; +} +article table th, +article table td { + padding: 0.2em; + vertical-align: text-top; +} +article table td:nth-child(1) { + font-weight: bold; +} +.landing-table th, +.landing-table tr { + border-bottom: 2px solid #454549; +} +.landing-table td { + width: 33.33%; + padding: 16px 40px 16px 0; +} +.landing-table td:nth-child(1) { + font-weight: normal; +} +@media (max-width: 767.98px) { + .landing-table td { + font-size: 0.875rem; + } +} +.landing-table tr:last-child { + border-bottom: none; +} +.landing-table tbody td { + color: #e0e0e1; +} +.dblue { + color: #454549; +} +#overview-table td:nth-child(1) { + width: 40%; +} +#overview-table td:nth-child(2) { + width: 30%; +} +#overview-table tbody td { + padding: 2rem 0.75rem; +} +@media (max-width: 991.98px) { + #overview-table { + font-size: 0.875rem; + } + #overview-table thead .h4 { + font-size: 1.125rem; + } +} +.modal-uses.exchanges .logo-item { + max-height: 58px; + margin: 5px; + width: 145px; + height: 28px; + max-width: none; +} +.modal-content-uses .carbonland-trust { + max-width: 218px; +} +.modal-content-uses .first-ledger-bot { + min-height: 100px !important; + position: relative; + bottom: 20px; + content: url('../img/uses/first-ledger-bot.svg'); +} +.modal-content-uses .orchestra-finance { + min-height: 56px !important; + content: url('../img/uses/orchestra-finance.svg'); +} +.modal-content-uses .moai-finance { + min-height: 100px !important; + position: relative; + bottom: 20px; + content: url('../img/uses/moai-finance.svg'); +} +.modal-content-uses .ledger-city { + margin: 0px !important; + position: relative; + bottom: 4px; + left: 6px; + max-height: 47px !important; +} +.modal-content-uses .zerpmon { + margin: 0px; + min-width: 80px; + min-height: 84px; + position: relative; + bottom: 13px; + content: url('../img/uses/zerpmon.png') !important; +} +#use_case_companies_list #threezy .biz-logo { + max-height: 40px; + content: url('../img/uses/modallogos/threezy.png'); +} +html.light .cryptum { + content: url(../img/uses/lightmode/cryptum.jpg) !important; + height: 58px; + max-width: max-content; + width: 184px; + max-height: none; + margin: 0px; + padding-bottom: 10px; +} +.xrp-ledger { + content: url(../img/uses/modallogos/xrp-ledger.png); +} +html.light .xrp-ledger { + content: url(../img/uses/lightmode/xrp-ledger.png); +} +.gatehub { + content: url(../img/uses/modallogos/gatehub.png); +} +html.light .gatehub { + content: url(../img/uses/lightmode/gatehub.png); +} +.towolabs { + content: url(../img/uses/modallogos/towolabs.png); +} +html.light .towolabs { + content: url(../img/uses/lightmode/towolabs.png); +} +.xrpscan { + content: url(../img/uses/modallogos/xrpscan.png); +} +html.light .xrpscan { + content: url(../img/uses/lightmode/xrpscan.png); +} +.xrp-toolkit { + content: url(../img/uses/modallogos/xrp-toolkit.png); +} +html.light .xrp-toolkit { + content: url(../img/uses/lightmode/xrp-toolkit.png); +} +.bithomp { + content: url(../img/uses/modallogos/bithomp.png); +} +html.light .bithomp { + content: url(../img/uses/lightmode/bithomp.png); +} +.onthedex { + content: url(../img/uses/modallogos/onthedex.png); +} +html.light .onthedex { + content: url(../img/uses/lightmode/onthedex.png); +} +.cryptum { + content: url(../img/uses/modallogos/cryptum.png); +} +html.light .cryptum { + content: url(../img/uses/lightmode/cryptum.png); +} +.evernode { + content: url(../img/uses/modallogos/evernode.png); +} +html.light .evernode { + content: url(../img/uses/lightmode/evernode.png); +} +.threezy { + content: url(../img/uses/modallogos/threezy.png); +} +html.light .threezy { + content: url(../img/uses/lightmode/threezy.png); +} +.tokenize { + content: url(../img/uses/modallogos/tokenize.png); +} +html.light .tokenize { + content: url(../img/uses/lightmode/tokenize.png); +} +.multichain { + content: url(../img/uses/modallogos/multichain.png); +} +html.light .multichain { + content: url(../img/uses/lightmode/multichain.png); +} +.crossmark { + content: url(../img/uses/modallogos/crossmark.png); +} +html.light .crossmark { + content: url(../img/uses/lightmode/crossmark.png); +} +.edge { + content: url(../img/uses/modallogos/edge.png); +} +html.light .edge { + content: url(../img/uses/lightmode/edge.png); +} +.gem-wallet { + content: url(../img/uses/modallogos/gem-wallet.png); +} +html.light .gem-wallet { + content: url(../img/uses/lightmode/gem-wallet.png); +} +.xumm { + content: url(../img/uses/modallogos/xumm.png); +} +html.light .xumm { + content: url(../img/uses/lightmode/xumm.png); +} +.joey-wallet { + content: url(../img/uses/modallogos/joey-wallet.png); +} +html.light .joey-wallet { + content: url(../img/uses/lightmode/joey-wallet.png); +} +.aesthetes { + content: url(../img/uses/modallogos/aesthetes.png); +} +html.light .aesthetes { + content: url(../img/uses/lightmode/aesthetes.png); +} +.audiotarky { + content: url(../img/uses/modallogos/audiotarky.png); +} +html.light .audiotarky { + content: url(../img/uses/lightmode/audiotarky.png); +} +.nftmaster { + content: url(../img/uses/modallogos/nftmaster.png); +} +html.light .nftmaster { + content: url(../img/uses/lightmode/nftmaster.png); +} +.peerkat { + content: url(../img/uses/modallogos/peerkat.png); +} +html.light .peerkat { + content: url(../img/uses/lightmode/peerkat.png); +} +.sologenic_dex { + content: url(../img/uses/modallogos/sologenic_dex.png); +} +html.light .sologenic_dex { + content: url(../img/uses/lightmode/sologenic_dex.png); +} +.xrp-cafe { + content: url(../img/uses/modallogos/xrp-cafe.png); +} +html.light .xrp-cafe { + content: url(../img/uses/lightmode/xrp-cafe.png); +} +.xrp-oval { + content: url(../img/uses/modallogos/xrp-oval.png); +} +html.light .xrp-oval { + content: url(../img/uses/lightmode/xrp-oval.png); +} +.sologenic_dex { + content: url(../img/uses/modallogos/sologenic_dex.png); +} +html.light .sologenic_dex { + content: url(../img/uses/lightmode/sologenic_dex.png); +} +.xpmarket { + content: url(../img/uses/modallogos/xpmarket.png); +} +html.light .xpmarket { + content: url(../img/uses/lightmode/xpmarket.png); +} +.orchestra-finance { + content: url(../img/uses/modallogos/orchestra-finance.png); +} +html.light .orchestra-finance { + content: url(../img/uses/lightmode/orchestra-finance.png); +} +.moai-finance { + content: url(../img/uses/modallogos/moai-finance.png); +} +html.light .moai-finance { + content: url(../img/uses/lightmode/moai-finance.png); +} +.first-ledger-bot { + content: url(../img/uses/modallogos/first-ledger-bot.png); +} +html.light .first-ledger-bot { + content: url(../img/uses/lightmode/first-ledger-bot.png); +} +.forte { + content: url(../img/uses/modallogos/forte.png); +} +html.light .forte { + content: url(../img/uses/lightmode/forte.png); +} +.ledger-city { + content: url(../img/uses/modallogos/ledger-city.png); +} +html.light .ledger-city { + content: url(../img/uses/lightmode/ledger-city.png); +} +.futureverse { + content: url(../img/uses/modallogos/futureverse.png); +} +html.light .futureverse { + content: url(../img/uses/lightmode/futureverse.png); +} +.zerpmon { + content: url(../img/uses/modallogos/zerpmon.png); +} +html.light .zerpmon { + content: url(../img/uses/lightmode/zerpmon.png); +} +.anchain { + content: url(../img/uses/modallogos/anchain.png); +} +html.light .anchain { + content: url(../img/uses/lightmode/anchain.png); +} +.ripple { + content: url(../img/uses/modallogos/ripple.png); +} +html.light .ripple { + content: url(../img/uses/lightmode/ripple.png); +} +.supermojo { + content: url(../img/uses/modallogos/supermojo.png); +} +html.light .supermojo { + content: url(../img/uses/lightmode/supermojo.png); +} +.ripple { + content: url(../img/uses/modallogos/ripple.png); +} +html.light .ripple { + content: url(../img/uses/lightmode/ripple.png); +} +.carbonland-trust { + content: url(../img/uses/modallogos/carbonland-trust.png); +} +html.light .carbonland-trust { + content: url(../img/uses/lightmode/carbonland-trust.png); +} +.gatehub { + content: url(../img/uses/modallogos/gatehub.png); +} +html.light .gatehub { + content: url(../img/uses/lightmode/gatehub.png); +} +.bitgo { + content: url(../img/uses/modallogos/bitgo.png); +} +html.light .bitgo { + content: url(../img/uses/lightmode/bitgo.png); +} +.arrow-button.left-arrow img { + content: url(../img/uses/left-arrow.svg); +} +.arrow-button.right-arrow img { + content: url(../img/uses/right-arrow.svg); +} +.right-arrow-button.right-arrow img { + background-color: transparent; + border: none; + cursor: pointer; +} +.html.light .arrow-button.left-arrow img { + content: url(../img/uses/left-arrow-light.svg); +} +.html.light .arrow-button.right-arrow img { + content: url(../img/uses/right-arrow-light.svg); +} +.related-tasks-links a { + color: #454549; + text-decoration: none; +} +.related-tasks-links a:hover { + color: #000; +} +.arrows-container { + position: absolute; + top: 50%; + left: 0; + right: 0; + transform: translateY(-50%); + display: flex; + justify-content: space-between; + z-index: 10; +} +@media only screen and (max-width: 768px) { + .arrows-container { + top: 30px; + } +} +.arrow-button { + background-color: transparent; + border: none; + cursor: pointer; +} +.arrow-button img { + width: 40px; + height: 40px; +} +.left-arrow { + margin-left: 40px; +} +@media only screen and (max-width: 768px) { + .left-arrow { + margin-left: 0px; + } +} +.right-arrow { + margin-right: 40px; +} +@media only screen and (max-width: 768px) { + .right-arrow { + margin-right: 0px; + } +} +.modal-uses { + display: none; + position: fixed; + z-index: 1000; + left: 0; + top: 0; + width: 100%; + height: 100%; + overflow: auto; + background-color: rgba(0, 0, 0, 0.4); +} +.modal-content-uses { + padding-top: 40px; + position: relative; + background-color: #232325; + position: absolute; + left: 50%; + top: 50%; + transform: translate(-50%, -50%); + padding: 40px 20px 20px 20px; + width: 60% !important; + height: 520px; + display: flex; + flex-direction: column; + align-items: center; + overflow-y: hidden; +} +@media only screen and (max-width: 1024px) { + .modal-content-uses { + overflow-y: auto; + } +} +.modal-content-uses::before { + content: ''; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 1px; + background: linear-gradient(90deg, #b480ff -0.32%, #5f00e6 32.7%, #1aa4ff 61.53%, #19ff83 100.32%, #19ff83 100.32%); +} +.content-section { + width: 100%; + display: flex; + justify-content: center; + align-items: center; + margin-bottom: 20px; +} +.section-image { + display: block; +} +.section-text-title { + font-family: 'Work Sans'; + font-style: normal; + font-weight: 500; + font-size: 24px; + line-height: 32px; + text-align: center; + color: #fff; +} +.section-text-description { + max-width: 320px; + font-family: 'Work Sans'; + font-style: normal; + font-weight: 400; + font-size: 16px; + line-height: 24px; + text-align: center; + color: #c1c1c2; +} +.apps-built { + position: relative; + top: 17px; + left: 50px; + font-family: 'Work Sans'; + font-style: normal; + font-weight: 600; + font-size: 12px; + line-height: 16px; + color: #e0e0e1; +} +.numbers-animation { + width: 218px; + height: 96px; +} +.arrow-animation { + position: relative; + right: 23px; + top: -11px; + width: 60px !important; +} +.explore-projects { + font-family: 'Work Sans'; + font-style: normal; + font-weight: 600; + font-size: 12px; + line-height: 16px; + color: #7919ff; + position: relative; + top: -9px; + right: 27px; +} +.section-separator { + width: 50%; + border: 0; + border-top: 1px solid #ccc; +} +.logo-item.anchain { + height: 34px !important; + max-width: 146px !important; +} +.threezy-logo { + margin: 4px; + max-height: 55px !important; +} +.blockforce-logo { + margin: 0px !important; + max-height: 45px !important; +} +.Evernode-logo { + margin-right: 39px; +} +.logo-grid { + display: grid; + grid-template-rows: repeat(2, 1fr); + grid-template-columns: repeat(4, 1fr); + grid-gap: 8px; + justify-items: center; +} +.flex-center { + display: flex; + justify-content: center; +} +.top-row, +.bottom-row { + display: flex; + justify-content: center; + align-items: center; + gap: 20px; + flex-wrap: wrap; +} +@media only screen and (max-width: 768px) { + .top-row, + .bottom-row { + justify-content: space-around; + gap: 10px; + margin-bottom: 0; + } +} +.top-row { + margin-bottom: 10px; +} +.bottom-row { + margin-top: 10px; +} +.logo-item { + max-height: 45px; + max-width: 108px; + margin: 5px; +} +.close { + color: #aaa; + float: right; + font-size: 28px; + font-weight: bold; + cursor: pointer; +} +.close:hover, +.close:focus { + color: #000; + text-decoration: none; + cursor: pointer; +} +#use-case-card-grid { + grid-template-columns: repeat(2, 1fr); +} +@media (min-width: 768px) { + #use-case-card-grid { + grid-template-columns: repeat(3, 1fr); + } +} +@media (min-width: 992px) { + #use-case-card-grid { + grid-template-columns: repeat(4, 1fr); + } +} +@media (max-width: 1220px) and (min-width: 1024px) { + #use-case-card-grid { + grid-template-columns: repeat(3, 1fr); + } +} +.use-case-circle { + display: flex; + align-items: center; + justify-content: center; + aspect-ratio: 1/1; + border: 1px solid #343437; + border-radius: 50%; + margin-bottom: 30px; + cursor: pointer; +} +@media (min-width: 768px) { + .use-case-circle { + aspect-ratio: 1/1; + min-width: 200px !important; + min-height: 200px !important; + } +} +@media (min-width: 992px) { + .use-case-circle { + aspect-ratio: 1/1; + min-width: 250px !important; + min-height: 250px !important; + } +} +.use-case-circle:hover { + border-color: #838386; +} +.circle-content { + display: flex; + flex-direction: column; + align-items: center; + gap: 13px; +} +.circle-img { + width: 40px; + height: 40px; +} +.circle-text { + font-family: 'Work Sans'; + font-style: normal; + font-weight: 700; + white-space: nowrap; + font-size: 16px; + margin-bottom: 0px; +} +.join-xrpl-section { + display: flex; + flex-direction: column; + align-items: center; +} +.colorful-join-text-wrapper { + display: flex; + justify-content: center; + flex-direction: column; + padding: 0 5%; + box-sizing: border-box; +} +@media (min-width: 992px) { + .colorful-join-text-wrapper { + padding: 0 4%; + } +} +.colorful-join-text { + display: block; + width: 100%; + text-align: left; + font-family: 'Work Sans'; + font-style: normal; + font-weight: 400; + font-size: 32px; + line-height: 38px; + background: linear-gradient(90deg, #feff01 0%, #ff2d9a 30.82%, #e24cff 64.01%, #9a52ff 100%); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} +#numbersAnimation { + display: block; +} +#numbersAnimationLight { + display: none; +} +html.light .section-separator { + background: #c1c1c2; +} +html.light .section-text-description { + color: #343437; +} +html.light .modal-content-uses { + background: #fff; +} +html.light #numbersAnimation { + display: none; +} +html.light #numbersAnimationLight { + display: block; +} +html.light .apps-built { + position: relative; + top: 17px; + left: 50px; + font-family: 'Work Sans'; + font-style: normal; + font-weight: 600; + font-size: 12px; + line-height: 16px; + color: #232325; +} +html.light .colorful-join-text { + display: block; + width: 100%; + text-align: left; + font-family: 'Work Sans'; + font-style: normal; + font-weight: 400; + font-size: 32px; + line-height: 38px; + background: linear-gradient(90deg, #b480ff -0.32%, #5f00e6 32.7%, #1aa4ff 61.53%, #19ff83 100.32%); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} +@media (min-width: 992px) { + html.light .colorful-join-text { + width: 750px; + } +} +@media (min-width: 992px) { + .colorful-join-text { + width: 750px; + } +} +.pill-box { + display: inline-flex; + align-items: center; + justify-content: center; + padding: 3.69087px 29.527px; + width: 73.05px; + height: 37.38px; + background: #7919ff; + border: 3.69087px solid #5f00e5; + border-radius: 184.543px; +} +.pill-number { + font-family: 'Work Sans'; + font-style: normal; + font-weight: 600; + font-size: 22.1452px; + color: #f0e5ff; +} +.use-case-steps h2 { + margin-top: 10px; + margin-bottom: 10px; + font-size: 1.728em; + line-height: 32px; + font-weight: 700; +} +.use-case-steps h2 a { + text-decoration: none; +} +.use-case-steps h2:first-of-type:before { + display: none; +} +.use-case h1 { + font-size: 2.4em; + padding-bottom: 10px; +} +.use-case-steps h2:before { + margin-top: -30px; + height: 0; +} +.use-case-steps h2:first-of-type { + margin-top: -30px; +} +.related-tasks-links ul { + list-style-type: none; + padding-left: 0; +} +.related-tasks-links ul li { + margin: 0px; + padding-top: 2px; +} +.related-tasks-links a:hover::after { + padding-left: 0.5em; +} +.related-tasks-links a::after { + content: ' ➝'; + padding-left: 0; + transition: all 0.2s ease-in-out; +} +.page-tokenization .tokenization-graphic { + content: url('../img/backgrounds/tokenization-illustration.svg'); + width: 100%; + height: 100%; +} +.page-tokenization .show-md { + display: none; +} +@media (max-width: 991.98px) { + .page-tokenization .show-md { + display: block; + } +} +.page-tokenization .hide-md { + display: block; +} +@media (max-width: 991.98px) { + .page-tokenization .hide-md { + display: none; + } +} +.page-tokenization .tokenization-use-case { + font-size: 12px; + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: center; + margin-bottom: 20px; + padding-bottom: 10px; + border-bottom: 1px solid #454549; +} +.page-tokenization .tokenization-use-case .arrow-button img { + width: 15px; + height: 15px; +} +.page-tokenization .tokenization-stats { + width: 100%; + height: 250px; + border-radius: 8px; + background: linear-gradient(88deg, #9a52ff -14.32%, #32e685 45.35%, #19a3ff 100.76%); + padding: 4rem 2rem; + display: grid; + grid-template-columns: repeat(4, 1fr); +} +@media (max-width: 991.98px) { + .page-tokenization .tokenization-stats { + display: block; + height: 100%; + width: 100%; + padding: 0 25%; + } +} +.page-tokenization .stat-container { + color: #000; + text-align: center; + border-right: 2px solid #000; +} +@media (max-width: 991.98px) { + .page-tokenization .stat-container { + border-right: none; + padding-bottom: 3rem; + padding-top: 2rem; + border-bottom: 2px solid #000; + } +} +.page-tokenization .stat-container:last-child { + border: none; +} +.page-tokenization .stat-container .stat { + font-size: 3rem; + font-weight: 300; +} +.page-tokenization .stat-container p { + font-weight: 400; +} +.page-tokenization .video-external-link .link-text { + margin-left: 0.25rem; +} +.page-tokenization .video-external-link { + margin-bottom: 9px; +} +.page-tokenization .tokenization-color-bar { + align-self: stretch; + height: 0.25rem; + border-radius: 2rem; + background: var(--Gradient-3, linear-gradient(90deg, #feff01 0%, #ff2d9a 30.82%, #e24cff 64.01%, #9a52ff 100%)); +} +.page-tokenization .project-cards-container { + gap: 3rem; +} +.page-tokenization .project-cards { + width: 100%; +} +.page-tokenization .project-cards .project-name { + word-break: break-word; +} +.page-tokenization .project-cards .card { + min-height: 240px; +} +.page-tokenization .project-cards .col::before { + content: ''; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 0.25rem; + border-top-left-radius: 0.5rem; + border-top-right-radius: 0.5rem; +} +.page-tokenization .project-cards .col.odd::before { + background: linear-gradient(90deg, #d91aff 26.41%, #1aa4ff 100.32%); +} +.page-tokenization .project-cards .col.even::before { + background: linear-gradient(90deg, #4bb7ff -0.32%, #32e685 30.61%); +} +.page-tokenization .project-cards .project-logo { + width: 100%; + height: 50px; + vertical-align: center; + padding: 0 0.5rem; +} +.page-tokenization .project-cards img { + max-width: 100%; + height: auto; + display: block; + box-sizing: border-box; +} +.page-tokenization .amy { + content: url('../img/logos/amy.svg'); +} +.page-tokenization .carbonland { + content: url('../img/logos/carbonland.svg'); +} +.page-tokenization .evernode { + content: url('../img/logos/evernode.svg'); +} +.page-tokenization .nautilus { + content: url('../img/logos/nautilus.svg'); +} +.page-tokenization .onXRP { + content: url('../img/logos/onXRP.svg'); +} +.page-tokenization .raised-in-space { + content: url('../img/logos/raised-in-space.svg'); +} +.page-tokenization .sologenic { + content: url('../img/logos/sologenic.svg'); +} +.page-tokenization .xaman { + content: url('../img/logos/xaman-labs.svg'); +} +.page-tokenization .xrpcafe { + content: url('../img/logos/xrpcafe.svg'); +} +.page-tokenization .prev img { + content: url('../img/icons/prev.svg'); +} +.page-tokenization .next img { + content: url('../img/icons/prev.svg'); + transform: scaleX(-1); +} +.page-tokenization .arrow-wrapper { + gap: 1rem; +} +.page-tokenization .arrow-button { + background-color: #232325; + border-radius: 0.25rem; + align-items: center; + justify-content: center; +} +.page-tokenization .next.hover-color:hover img { + content: url('../img/icons/next-purple.svg'); + transform: scaleX(1); +} +.page-tokenization .prev.hover-color:hover img { + content: url('../img/icons/next-purple.svg'); + transform: scaleX(-1); +} +.page-tokenization .related-articles { + gap: 2.5rem; +} +.page-tokenization .related-articles .col { + background-color: #000; + padding: 2rem !important; + border-radius: 0.5rem; +} +.page-tokenization .related-articles .time { + position: relative; + padding-top: 0.5rem; +} +.page-tokenization .related-articles .time::before { + content: ''; + position: absolute; + top: 0; + left: 0; + width: 50px; + height: 4px; + background-color: #32e685; +} +.page-tokenization .project-cards a, +.page-tokenization .related-articles a { + text-decoration: none; +} +.page-tokenization .project-cards a:hover .project-name { + color: #9a52ff; +} +.page-tokenization .related-articles a:hover .h5 { + color: #9a52ff; +} +.page-tokenization .article-card-container { + position: relative; + width: 100%; +} +.page-tokenization .article-card-container:nth-child(1) .article-card-background { + background-image: linear-gradient(86deg, #b20058 -21.16%, #e24cff 31.78%, #9a52ff 101.64%); +} +.page-tokenization .article-card-container:nth-child(2) .article-card-background { + background-image: linear-gradient(22deg, #b480ff -6.54%, #5f00e5 50.87%, #1aa4ff 114.16%); +} +.page-tokenization .article-card-container:nth-child(3) .article-card-background { + background-image: linear-gradient(162deg, #b480ff -11.11%, #1aa4ff 56.26%, #2dcf78 112.84%); +} +.page-tokenization .article-card-background { + height: calc(100% + 1.5rem); + width: 100%; + z-index: 1; + background-size: cover; + position: absolute; + top: -0.75rem; + border-radius: 0.5rem; +} +.page-tokenization .article-card { + width: 100%; + height: 100%; + position: relative; + top: 0; + left: 0.75rem; + z-index: 2; + display: block; +} +body, +.landing.page-uses { + overflow-x: hidden; +} +.use-case-payments { + padding: 0px 120px; +} +@media (max-width: 1199.98px) { + .use-case-payments { + padding: 0px 16px; + } +} +.use-case-payments__hero { + display: flex; + flex-direction: row; + justify-content: center; + gap: 80px; + align-items: center; + max-width: 1280px; + margin: 0 auto; + padding: 80px 0px; +} +@media (max-width: 1199.98px) { + .use-case-payments__hero { + gap: 60px; + max-width: 942px; + padding: 80px 0px; + } +} +@media (max-width: 991.98px) { + .use-case-payments__hero { + flex-direction: column; + gap: 32px; + max-width: 608px; + padding: 60px 0px; + } +} +@media (max-width: 767.98px) { + .use-case-payments__hero { + padding: 40px 0px; + } +} +.use-case-payments .video-content { + width: 50%; + display: flex; + align-items: stretch; +} +.use-case-payments .video-content iframe { + width: 100%; + height: 100%; + min-height: 380px; + max-height: 560px; + border-radius: 12px; + box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1); +} +@media (max-width: 1199.98px) { + .use-case-payments .video-content iframe { + min-height: 350px; + max-height: 450px; + } +} +@media (max-width: 991.98px) { + .use-case-payments .video-content iframe { + min-height: 300px; + max-height: 400px; + } +} +@media (max-width: 767.98px) { + .use-case-payments .video-content iframe { + min-height: 250px; + max-height: 350px; + } +} +@media (max-width: 991.98px) { + .use-case-payments .video-content { + width: 100%; + } +} +.use-case-payments .text-content { + width: 50%; + display: flex; + flex-direction: column; + justify-content: center; +} +.use-case-payments .text-content .eyebrow { + font-size: 18px; + font-style: normal; + font-weight: 700; +} +@media (max-width: 767.98px) { + .use-case-payments .text-content .eyebrow { + font-size: 16px; + } +} +.use-case-payments .text-content .eyebrow h2 { + font-size: 42px; + font-style: normal; + font-weight: 700; +} +@media (max-width: 767.98px) { + .use-case-payments .text-content .eyebrow h2 { + font-size: 32px; + } +} +.use-case-payments .text-content .eyebrow p { + font-size: 24px; + font-style: normal; + font-weight: 400; +} +@media (max-width: 767.98px) { + .use-case-payments .text-content .eyebrow p { + font-size: 18px; + } +} +@media (max-width: 991.98px) { + .use-case-payments .text-content { + width: 100%; + } +} +.advantages-section .security-card { + position: relative; + border-radius: 0.5rem; + background-color: transparent; + white-space: normal; + box-sizing: border-box; +} +.advantages-section .security-card .card-title { + margin-bottom: 16px; +} +.advantages-section .security-card::before { + content: ''; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + border-radius: inherit; + padding: 1px; + background: linear-gradient(90deg, #d91aff 26.41%, #1aa4ff 100.32%); + mask: + linear-gradient(#fff 0 0) content-box, + linear-gradient(#fff 0 0); + mask-composite: exclude; + -webkit-mask-composite: xor; + z-index: -1; +} +.advantages-section .security-card p { + margin-bottom: 0 !important; +} +@media (max-width: 767.98px) { + .advantages-section .security-card .h6 { + font-size: 1.25rem; + } +} +.advantages-section .security-card-grid, +.advantages-section .security-card-grid-3, +.advantages-section .security-card-grid-4 { + gap: 1rem; + grid-template-columns: repeat(2, 1fr); +} +@media (max-width: 768px) { + .advantages-section .security-card-grid, + .advantages-section .security-card-grid-3, + .advantages-section .security-card-grid-4 { + grid-template-columns: repeat(1, 1fr); + } +} +@media (min-width: 1200px) { + .advantages-section .security-card-grid { + grid-template-columns: repeat(4, 1fr); + } +} +.advantages-section .security-card-grid-3 { + gap: 2.5rem; +} +@media (min-width: 1200px) { + .advantages-section .security-card-grid-3 { + grid-template-columns: repeat(3, 1fr); + } +} +@media (min-width: 1200px) { + .advantages-section .security-card-grid-4 { + grid-template-columns: repeat(4, 1fr); + } +} +.advantages-section .advantages-list { + list-style: none; + padding: 0; + margin: 0; +} +.advantages-section .advantage-item { + position: relative; + padding-left: 20px; + margin-bottom: 16px; +} +.advantages-section .advantage-item::before { + content: '•'; + position: absolute; + left: 0; + top: 0; + font-weight: bold; + font-size: 16px; +} +.advantages-section .advantage-item strong { + display: block; + margin-bottom: 4px; + color: #e0e0e1; + font-size: 16px; + font-style: normal; + font-weight: 400; + line-height: 24px; +} +.advantages-section .advantage-item .advantage-description { + display: block; + color: #e0e0e1; + font-size: 16px; + font-style: normal; + font-weight: 400; + line-height: 24px; +} +.advantages-section .security-card .card-title { + color: var(--Black-Black-0, #fff); + font-size: 18px; + font-style: normal; + font-weight: 700; + line-height: 125%; +} +.use-case-payments .payments-advantages-spacing { + padding-top: 80px; + padding-bottom: 20px; + padding-right: 0px; + padding-left: 0px; +} +.use-case-payments .payments-projects-grid { + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: 40px 40px; + row-gap: 48px; +} +@media (min-width: 1200px) { + .use-case-payments .payments-projects-grid { + grid-template-columns: repeat(3, 1fr); + } +} +@media (max-width: 768px) { + .use-case-payments .payments-projects-grid { + grid-template-columns: repeat(1, 1fr); + gap: 40px; + } +} +.use-case-payments .payments-project-card { + min-height: 260px; + position: relative; + padding: 32px; +} +.use-case-payments .payments-project-card .project-description { + text-align: left; +} +.use-case-payments .payments-project-card .project-description .first-word { + color: #fff; + font-size: 16px; + font-style: normal; + font-weight: 700; + line-height: 24px; +} +.use-case-payments .payments-project-card .project-description .rest-text { + color: var(--XRPL-Primary-White, #fff); + font-family: 'Work Sans'; + font-size: 16px; + font-style: normal; + font-weight: 400; + line-height: 24px; +} +.use-case-payments .payments-project-card::before { + content: ''; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 0.25rem; + border-top-left-radius: 0.5rem; + border-top-right-radius: 0.5rem; +} +.use-case-payments .payments-project-card .project-logo { + margin-bottom: 32px; +} +.use-case-payments .payments-project-card .project-logo img.ripple-usd { + content: url('../img/uses/payments/rlusd.png'); + width: 180px; + height: 50px; +} +.use-case-payments .payments-project-card .project-logo img.usdc { + content: url('../img/uses/payments/usdc.png'); + width: 50px; + height: 50px; +} +.use-case-payments .payments-project-card .project-logo img.usdb { + content: url('../img/uses/payments/usdb.png'); + width: 126px; + height: 50px; +} +.use-case-payments .payments-project-card .project-logo img.europ { + content: url('../img/uses/payments/eroup.png'); + width: 147px; + height: 50px; +} +.use-case-payments .payments-project-card .project-logo img.xsgd { + content: url('../img/uses/payments/XSGD.png'); + width: 50px; + height: 50px; +} +.use-case-payments .payments-project-card .project-logo img.audd { + content: url('../img/uses/payments/AUDD.png'); + width: 50px; + height: 50px; +} +.use-case-payments .payments-project-card.odd::before { + background: linear-gradient(90deg, #d91aff 26.41%, #1aa4ff 100.32%); +} +.use-case-payments .payments-project-card.even::before { + background: linear-gradient(90deg, #4bb7ff -0.32%, #32e685 30.61%); +} +.use-case-payments .battle-tested-section h4.eyebrow { + font-size: 28px !important; +} +.use-case-payments .battle-tested-section .payments-project-card { + min-height: 384px; + display: flex; + flex-direction: column; +} +.use-case-payments .battle-tested-section .payments-project-card .project-logo img.coinpayments { + content: url('../img/uses/payments/coinpayments.png'); + width: 99px; + height: 60px; +} +.use-case-payments .battle-tested-section .payments-project-card .project-logo img.ripple { + content: url('../img/uses/payments/ripple-white.png'); + width: 100px; + height: 26px; + margin-bottom: 11px; + margin-top: 19px; +} +.use-case-payments .battle-tested-section .payments-project-card .project-logo img.friipay { + content: url('../img/uses/payments/friipay.png'); + width: 60px; + height: 60px; +} +.use-case-payments .battle-tested-section .payments-project-card .project-description { + flex-grow: 1; +} +.use-case-payments .battle-tested-section .payments-project-card .project-button { + margin-top: auto; + padding-top: 32px; + display: flex; + justify-content: center; +} +.use-case-payments .battle-tested-section .payments-project-card .project-button .battle-tested-arrow { + color: #9a52ff; + font-size: 16px; + font-style: normal; + font-weight: 700; + text-decoration: none; + cursor: pointer; + display: inline-flex; + align-items: center; + background: none !important; +} +.use-case-payments .battle-tested-section .payments-project-card .project-button .battle-tested-arrow::after { + position: relative; + top: -1px; + display: inline-block; + content: url('../img/icons/arrow-right-purple.svg'); + margin-left: 8px; + transition: transform 0.3s ease-out; + width: 16px; + height: 16px; +} +.use-case-payments .battle-tested-section .payments-project-card .project-button .battle-tested-arrow:hover { + text-decoration: none; + background: none !important; +} +.use-case-payments .battle-tested-section .payments-project-card .project-button .battle-tested-arrow:hover::after { + transform: translateX(4px); +} +.use-case-payments .battle-tested-section .payments-project-card .project-button .battle-tested-arrow:focus { + background: none !important; + outline: none; +} +.use-case-payments .payments-integration-section .developer-tools { + padding: 120px 0; + max-width: 1280px; + margin: 0 auto; +} +@media (max-width: 1199.98px) { + .use-case-payments .payments-integration-section .developer-tools { + max-width: 942px; + } +} +@media (max-width: 991.98px) { + .use-case-payments .payments-integration-section .developer-tools { + max-width: 608px; + } +} +.use-case-payments .payments-integration-section .developer-tools .container { + padding: 0; +} +.use-case-payments .payments-integration-section .developer-tools .feature-item__title { + font-size: 16px; + font-weight: 400; + color: #fff; +} +.use-case-payments .payments-integration-section .developer-tools__header { + margin-bottom: 80px; +} +.use-case-payments .payments-integration-section .developer-tools__header.text-center { + text-align: center; +} +.use-case-payments .payments-integration-section .developer-tools__title { + font-size: 28px; + font-weight: 700; + margin-bottom: 0; + text-align: left; +} +.use-case-payments .payments-integration-section .row { + gap: 48px; + margin: 0; + display: flex; + flex-wrap: wrap; +} +@media (max-width: 991px) { + .use-case-payments .payments-integration-section .row { + flex-direction: column; + gap: 32px; + } +} +.use-case-payments .payments-integration-section .row .col-lg-6 { + padding: 0; + flex: 1; +} +@media (max-width: 991px) { + .use-case-payments .payments-integration-section .row .col-lg-6 { + flex: none; + width: 100%; + } +} +.use-case-payments .payments-integration-section .integration-column { + padding: 0px; +} +.use-case-payments .payments-integration-section .integration-column .integration-column__title { + color: #fff; + font-size: 20px; + font-weight: 700; + margin-bottom: 0px; +} +.use-case-payments .payments-integration-section .integration-column .integration-column__subtitle { + color: #e0e0e1; + font-size: 16px; + font-weight: 400; + line-height: 150%; + margin-bottom: 32px; +} +.use-case-payments .payments-integration-section .integration-column .developer-tools__list { + margin-top: 0; +} +@media (max-width: 991px) { + .use-case-payments .payments-integration-section .developer-tools { + padding: 80px 0; + } + .use-case-payments .payments-integration-section .developer-tools__header { + margin-bottom: 60px; + } + .use-case-payments .payments-integration-section .integration-column { + padding: 0; + margin-bottom: 40px; + } + .use-case-payments .payments-integration-section .col-lg-6:last-child .integration-column { + margin-bottom: 0; + } +} +@media (max-width: 767px) { + .use-case-payments .payments-integration-section .developer-tools { + padding: 60px 20px; + } + .use-case-payments .payments-integration-section .developer-tools__header { + margin-bottom: 40px; + } + .use-case-payments .payments-integration-section .developer-tools__title { + font-size: 24px; + text-align: center; + } +} +.dark [data-component-name='Breadcrumbs/Breadcrumbs'] + div > a > svg > rect { + fill: transparent; +} +[data-component-name='layouts/RootLayout'] { + padding-top: 80px; +} +.top-nav { + background-color: #111112; + height: 80px; + padding: 0; +} +.top-nav .navbar-brand { + text-decoration: none; + white-space: pre; + -webkit-transition: + opacity 0.2s ease, + color 0.2s ease; + transition: + opacity 0.2s ease, + color 0.2s ease; + padding-left: 2rem; +} +.top-nav .navbar-brand .logo { + margin-left: 0; + content: url(../img/XRPLedger_DevPortal-white.svg); + width: 162px; + height: 40px; + display: block; +} +.top-nav .navbar-brand:hover { + opacity: 0.75; +} +@media (max-width: 991.98px) { + .top-nav .navbar-brand { + padding-left: 2rem; + } + .top-nav .navbar-brand img { + width: 120px; + } +} +.top-nav .nav-item { + font-weight: 600; +} +@media (min-width: 992px) { + .top-nav #topnav-pages { + flex-grow: 1; + } +} +.top-nav #topnav-pages .nav-link { + color: #f5f5f7; + font-size: 1rem; + line-height: 1.25rem; + text-decoration: none; + font-weight: 600; +} +.top-nav .dropdown-toggle { + position: relative; +} +.top-nav .dropdown-menu { + border-width: 0; +} +.top-nav .dropdown-menu h5 { + font-weight: 400; + font-size: 12px; + color: #a2a2a4; + margin-bottom: 0; +} +.top-nav .dropdown-menu .dropdown-item { + line-height: 1rem; + padding: 0.75rem 0; + white-space: normal; +} +.top-nav .dropdown-menu .dropdown-item.dropdown-hero { + width: 100%; + display: flex; + padding: 1rem 2rem; +} +.top-nav .dropdown-menu .dropdown-item.dropdown-hero > img { + width: 68px; + height: 68px; + background-color: #232325; + border-radius: 4px; + flex-grow: 0; + padding: 0.75rem; + margin-right: 2rem; + margin-top: auto; + margin-bottom: auto; +} +.top-nav .dropdown-menu .dropdown-item.dropdown-hero p { + font-size: 14px; + color: #c1c1c2; + margin: 0; + white-space: normal; +} +.top-nav .dropdown-menu .dropdown-item.dropdown-hero h4 { + font-size: 1.25rem; + font-weight: 600; + margin-bottom: 0; + line-height: 2rem; +} +.top-nav .dropdown-menu .dropdown-item.dropdown-hero:hover h4 { + color: #9a52ff; +} +.top-nav .dropdown-menu .dropdown-item.dropdown-hero:hover p { + font-weight: 400; +} +.top-nav .dropdown-menu .dropdown-item:last-child { + padding-bottom: 0; +} +.top-nav .dropdown-menu .dropdown-item:first-child { + padding-top: 0; +} +.top-nav .dropdown-menu .col-for-get_started { + background-color: #232325; +} +.top-nav .dropdown-menu a:hover { + color: #9a52ff; + background-color: inherit; +} +.top-nav .dropdown-menu h5:hover { + background-color: inherit; +} +.top-nav #topnav-search { + flex-grow: 1; +} +.top-nav #topnav-search .input-group { + flex-grow: 1; + flex-wrap: nowrap; +} +@media (max-width: 991.98px) { + .top-nav #topnav-search .form-inline { + padding: 1rem 2rem; + } +} +.top-nav #topnav-search .input-group-text { + height: 40px; +} +.top-nav #topnav-search .ds-input { + height: 40px; +} +.top-nav #topnav-language .dropdown-item { + font-weight: 600; +} +@media (min-width: 992px) { + .top-nav { + padding: 0 2rem; + } + .top-nav .navbar-brand { + margin-left: 0; + padding-left: 0; + } + .top-nav .dropdown-toggle::after { + display: none; + } + .top-nav .dropdown-toggle > span { + border-bottom: 2px solid transparent; + } + .top-nav .dropdown .dropdown-toggle:hover > span:not(.chevron) { + padding-bottom: 8px; + border-bottom: 2px solid #9a52ff; + margin-bottom: -8px; + } + .top-nav .dropdown-menu { + border-radius: 0 0 8px 8px; + padding: 2.5rem; + } + .top-nav .dropdown-menu .dropdown-item.dropdown-hero { + padding: 0; + } + .top-nav .dropdown-menu.show { + display: grid; + gap: 40px; + } + .top-nav .dropdown-menu.show#topnav_dd_about { + grid-template-columns: 180px 180px 180px; + } + .top-nav .dropdown-menu.show#topnav_dd_docs { + grid-template-columns: 180px 180px 260px; + left: -200px; + } + .top-nav .dropdown-menu.show#topnav_dd_community { + grid-template-columns: 200px; + } + .top-nav .dropdown-menu.show#topnav_dd_resources { + grid-template-columns: 195px 180px 180px; + left: -200px; + } + .top-nav .dropdown-menu.show .dropdown-hero { + grid-row: 1; + grid-column: 1/4; + } + .top-nav .dropdown-menu.show #dropdown-hero-for-docs { + grid-column: 1/3; + } + .top-nav .dropdown-menu.show .col-for-xrp_ledger { + grid-row: 1/3; + grid-column: 1; + } + .top-nav .dropdown-menu.show .col-for-xrp { + grid-column: 2; + } + .top-nav .dropdown-menu.show .col-for-sustainability, + .top-nav .dropdown-menu.show .col-for-持続可能性 { + grid-column: 2; + } + .top-nav .dropdown-menu.show .col-for-about, + .top-nav .dropdown-menu.show .col-for-概要 { + grid-row: 1/3; + grid-column: 3; + } + .top-nav .dropdown-menu.show .col-for-article_types { + grid-column: 1; + grid-row: 2; + } + .top-nav .dropdown-menu.show .col-for-use_cases { + grid-column: 2; + grid-row: 2; + } + .top-nav .dropdown-menu.show .col-for-get_started { + grid-column: 3; + grid-row: 1/3; + margin: -40px -40px -40px 0; + padding: 40px; + } + .top-nav .dropdown-menu.show .col-for-development { + grid-column: 1; + } + .top-nav .dropdown-menu.show .col-for-current-status, + .top-nav .dropdown-menu.show .col-for-現在のステータス { + grid-column: 2; + } + .top-nav .dropdown-menu.show .col-for-join-in, + .top-nav .dropdown-menu.show .col-for-参加する { + grid-column: 3; + } + .top-nav .dropdown-menu.smaller-dropdown { + min-width: 180px; + padding: 1.25rem; + } + .top-nav #topnav-pages { + flex-grow: 0; + } +} +@media (min-width: 992px) and (min-width: 992px) and (max-width: 1133px) { + .top-nav #topnav-pages .nav-link { + padding: 1rem 1rem; + } +} +@media (min-width: 992px) { + .top-nav #topnav-language { + flex-grow: 0; + } + .top-nav #topnav-language hr { + display: none; + } + .top-nav #topnav-language #language_selector_header_btn { + padding-right: 0; + } +} +@media (min-width: 992px) and (min-width: 992px) and (max-width: 1133px) { + .top-nav #topnav-language #language_selector_header_btn { + padding-left: 1rem; + } +} +@media (min-width: 992px) and (min-width: 1200px) { + .top-nav #topnav-search { + margin-left: 3.5rem; + margin-right: 0.5rem; + } + .top-nav #topnav-language { + margin-right: 0.5rem; + } + .top-nav #topnav-button { + margin-left: 0.2rem; + margin-right: 1rem; + } +} +@media (max-width: 991.98px) { + .top-nav .navbar-toggler { + border: 0; + padding: 30px 2rem; + font-size: 1rem; + display: inline-block; + } + .top-nav .navbar-toggler .navbar-toggler-icon { + background: none; + height: 20px; + width: 20px; + position: relative; + } + .top-nav .navbar-toggler .navbar-toggler-icon::after, + .top-nav .navbar-toggler .navbar-toggler-icon::before, + .top-nav .navbar-toggler .navbar-toggler-icon div { + position: absolute; + content: ' '; + background-color: #f5f5f7; + display: block; + width: 100%; + height: 3px; + transition: all 0.2s ease; + } + .top-nav .navbar-toggler .navbar-toggler-icon::before { + top: 0; + } + .top-nav .navbar-toggler .navbar-toggler-icon::after { + bottom: 0; + } + .top-nav .navbar-toggler .navbar-toggler-icon div { + top: calc(50% - 1.5px); + } + .top-nav .navbar-toggler:not(.collapsed) .navbar-toggler-icon::before { + transform: translateY(8px) rotate(135deg); + } + .top-nav .navbar-toggler:not(.collapsed) .navbar-toggler-icon::after { + transform: translateY(-9px) rotate(-135deg); + } + .top-nav .navbar-toggler:not(.collapsed) .navbar-toggler-icon div { + transform: scale(0); + } + .top-nav .navbar-nav { + align-items: unset !important; + } + .top-nav .navbar-nav #topnav-button { + background-color: #111112; + padding: 1rem 1.5rem; + } + .top-nav .navbar-nav #topnav-search [data-component-name='Search/SearchTrigger'] { + cursor: pointer; + } + .top-nav .navbar-nav .nav-link, + .top-nav .navbar-collapse > .nav-item { + line-height: 150%; + background: #111112; + } + .top-nav .navbar-nav .nav-link label, + .top-nav .navbar-collapse > .nav-item label { + margin-bottom: 0; + } + .top-nav .navbar-nav .nav-link { + padding: 1rem 2rem; + } + .top-nav .dropdown-menu { + margin: 0; + width: 100%; + overflow: auto; + transition: all 0.2s ease; + height: 0; + display: block; + padding: 0; + border-radius: 0; + } + .top-nav .dropdown-menu.show { + height: calc(100vh - 80px - 52px); + } + .top-nav .dropdown-menu.show > :last-child { + padding-bottom: 4rem; + } + .top-nav .dropdown-menu.show#topnav_dd_docs { + display: grid; + grid-template-columns: minmax(187px, 1fr) minmax(187px, 1fr); + gap: 1px; + left: -200px; + } + .top-nav .dropdown-menu.show#topnav_dd_docs .dropdown-hero { + grid-column: 1/3; + grid-row: 1; + } + .top-nav .dropdown-menu.show#topnav_dd_docs .col-for-document_types { + grid-column: 1; + grid-row: 2; + } + .top-nav .dropdown-menu.show#topnav_dd_docs .col-for-use_cases { + grid-column: 2; + grid-row: 2; + } + .top-nav .dropdown-menu.show#topnav_dd_docs .col-for-get_started { + grid-column: 1/3; + grid-row: 4; + margin: -1px; + padding-top: 33px; + } + .top-nav .dropdown-menu .navcol { + padding: 1rem 2rem; + } + .top-nav .dropdown-menu.smaller-dropdown { + padding: 0 2rem; + } + .top-nav .dropdown-menu.smaller-dropdown.show { + padding: 1rem 2rem; + height: auto; + } + .top-nav .dropdown-menu .dropdown-hero:first-child { + padding-top: 1rem; + } + .top-nav .dropdown-toggle:not(.with-caret)::before, + .top-nav .dropdown-toggle:not(.with-caret)::after { + border: 0; + font-family: FontAwesome; + color: #9a52ff; + font-size: 0.75rem; + transition: all 0.2s ease; + overflow: clip; + width: 1rem; + } + .top-nav .dropdown-toggle:not(.with-caret)::before { + content: ''; + display: inline-block; + margin-bottom: -5px; + } + .top-nav .dropdown-toggle:not(.with-caret)::after { + content: ''; + position: absolute; + right: 2rem; + } + .top-nav .dropdown.show .dropdown-toggle::after { + text-indent: 5rem; + } + .top-nav .dropdown:not(.show) .dropdown-toggle::before { + width: 0; + height: 0; + text-indent: -5rem; + } + .top-nav .dropdown-toggle.with-caret::after { + border: 0; + } + .top-nav #top-main-nav { + background-color: #232325; + padding-top: 32px; + position: relative; + } + .top-nav #top-main-nav.submenu-expanded { + padding-top: 0; + } + .top-nav #top-main-nav.submenu-expanded .dropdown:not(.show) .dropdown-toggle { + display: none; + } + .top-nav #top-main-nav.submenu-expanded #topnav-search, + .top-nav #top-main-nav.submenu-expanded #topnav-language, + .top-nav #top-main-nav.submenu-expanded #topnav-theme { + height: 0; + overflow: clip; + padding-top: 0; + padding-bottom: 0; + } + .top-nav #topnav-search { + position: absolute; + top: 0; + right: 105px; + } + .top-nav #topnav-search .input-group { + flex-wrap: nowrap; + } + .top-nav #topnav-language { + position: absolute; + top: 0; + right: 65px; + } + .top-nav #topnav-language hr { + border-top: 1px solid #232325; + margin-top: 0.25rem; + margin-bottom: 0.25rem; + display: static; + } + .top-nav #topnav-theme { + position: absolute; + top: 0; + right: 26px; + } +} +article h1:before, +article h2:before, +article h3:before, +article h4:before, +article h5:before, +article h6:before, +.interactive-block:before { + display: block; + content: ' '; + margin-top: -24px; + height: 60px; + visibility: hidden; + pointer-events: none; +} +article h1:first-of-type:before { + margin-top: -40px; +} +.chevron { + position: relative; + display: inline-block; + width: 0.75rem; + height: 0.5625rem; +} +.chevron span { + position: absolute; + top: 0.25rem; + display: inline-block; + width: 0.5rem; + height: 0.15rem; + background-color: #9a52ff; + transition: all 0.2s ease; + border: none; +} +.chevron:not(.expander) span:first-of-type { + left: 0; + transform: rotate(45deg); +} +.chevron:not(.expander) span:last-of-type { + right: 0; + transform: rotate(-45deg); +} +.chevron.active span:first-of-type { + transform: rotate(-45deg); +} +.chevron.active span:first-of-type { + transform: rotate(45deg); +} +.dropdown.show .chevron span:first-of-type, +.expander:not(.collapsed) .chevron span:first-of-type { + transform: rotate(-45deg); +} +.dropdown.show .chevron span:last-of-type, +.expander:not(.collapsed) .chevron span:last-of-type { + transform: rotate(45deg); +} +#topnav-theme > div { + border-radius: var(--language-picker-border-radius); + color: var(--language-picker-text-color); + background-color: var(--language-picker-background-color); + border: 1px solid var(--language-picker-border-color); + padding: var(--language-picker-input-padding-vertical) var(--language-picker-input-padding-horizontal); + min-height: var(--language-picker-min-height); +} +@media (max-width: 991.98px) { + .navbar-collapse, + .dropdown-menu { + box-shadow: 0px 25px 40px -20px #000; + } +} +.web-banner { + text-decoration: none; + display: flex; + justify-content: space-between; + height: 0; + background: #32e685 !important; + padding: 7px 35px; + font-family: 'Space Grotesk'; + z-index: 10; + cursor: pointer; + color: #000 !important; + text-align: center; + font-family: 'Space Grotesk'; + font-size: 26px; + font-style: normal; + font-weight: 600; + letter-spacing: -0.32px; +} +.web-banner:hover { + text-decoration: none; + color: #fff; +} +.web-banner:hover .button-icon { + animation: iconJitter 0.7s cubic-bezier(0.16, 1, 0.3, 1) forwards; + transition: transform 0.7s cubic-bezier(0.16, 1, 0.3, 1); +} +.web-banner::after { + content: ''; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: #e0e500; + z-index: 0; + transform: scaleX(0); + transform-origin: left; + transition: transform 0.7s cubic-bezier(0.7, 0, 0.84, 0); + will-change: transform; +} +.web-banner:hover::after { + transform: scaleX(1); + transition: transform 0.7s cubic-bezier(0.16, 1, 0.3, 1); +} +.web-banner > * { + position: relative; + z-index: 1; +} +@media (max-width: 768px) { + .web-banner { + font-size: 18px; + padding: 11px 35px; + } + .web-banner .banner-button { + gap: 11px !important; + } + .web-banner .button-text { + margin-bottom: 4px; + } +} +@media (max-width: 564px) { + .web-banner { + font-size: 15px; + padding: 9px 40px; + } + .web-banner .button-text { + margin-bottom: 0px; + } + .web-banner .banner-event-details { + gap: 0px !important; + flex-direction: column; + text-align: left; + line-height: 21px; + } + .web-banner .banner-event-details .event-date { + position: relative; + top: -5px; + } + .web-banner .banner-button { + align-self: baseline; + gap: 8px !important; + margin-top: -2px !important; + padding-top: 0px !important; + } +} +.web-banner .banner-button { + display: flex; + align-items: center; + gap: 14.5px; + padding-top: 1px; +} +.web-banner .banner-button img { + width: 24.5px; + height: 33.7px; +} +@media (max-width: 768px) { + .web-banner .banner-button img { + width: 15.5px; + height: 17px; + margin-top: 4px; + } +} +@media (max-width: 564px) { + .web-banner .banner-button img { + width: 14.5px; + height: 13.85px; + } +} +.web-banner .banner-event-details { + display: flex; + gap: 32px; +} +.web-banner .button-icon { + transform-style: preserve-3d; + aspect-ratio: 0.71; + object-fit: contain; + animation: none; + transform: rotateZ(0deg); + transition: transform 0.7s cubic-bezier(0.16, 1, 0.3, 1); + align-self: stretch; + margin: auto 0; + transform-style: preserve-3d; +} +@keyframes iconJitter { + from { + transform: translate3d(0, 0, 0) scale3d(1, 1, 1) rotateZ(0deg) skew(0deg, 0deg); + } + to { + transform: translate3d(0, 0, 0) scale3d(1, 1, 1) rotateZ(45deg) skew(0deg, 0deg); + } +} +.web-banner a { + text-decoration: none; +} +.button-icon { + animation: iconJitter 0.7s ease-in-out; + animation-iteration-count: 1; + transition: transform 0.7s cubic-bezier(0.16, 1, 0.3, 1); +} +@keyframes iconReturn { + from { + transform: translate3d(0, 0, 0) scale3d(1, 1, 1) rotateZ(45deg) skew(0deg, 0deg); + } + to { + transform: translate3d(0, 0, 0) scale3d(1, 1, 1) rotateZ(0deg) skew(0deg, 0deg); + } +} +.web-banner.has-hover:not(:hover) .button-icon { + animation: iconReturn 0.7s ease-in-out forwards; + transition: transform 0.7s cubic-bezier(0.16, 1, 0.3, 1); +} +[data-component-name='Markdown/Markdown'] article { + padding-bottom: 50px; +} +[data-component-name='Markdown/Markdown'] article p code, +[data-component-name='Markdown/Markdown'] article table code, +[data-component-name='Markdown/Markdown'] article li > code { + background-color: #0a2e1b; + color: #5beb9d; +} +[data-component-name='Markdown/Markdown'] article a { + text-decoration: underline; +} +[data-component-name='Markdown/Markdown'] article h1 { + font-size: 3rem; + margin-top: 32px; + line-height: 1.2; + font-weight: 700; +} +[data-component-name='Markdown/Markdown'] article h1:first-child { + margin-top: 0; + line-height: 1.2; +} +[data-component-name='Markdown/Markdown'] article h2, +[data-component-name='Markdown/Markdown'] article h2.md { + margin-top: 2.5rem; + margin-bottom: 1.5rem; + font-size: 2.5rem; + font-weight: 600; + line-height: 1.2; +} +[data-component-name='Markdown/Markdown'] article h3, +[data-component-name='Markdown/Markdown'] article h3.md { + font-size: 2.125rem; + margin-top: 2rem; + margin-bottom: 1rem; + line-height: 1.2; +} +[data-component-name='Markdown/Markdown'] article h4 { + font-size: 1.75rem; + margin-top: 1.5rem; + margin-bottom: 0.5rem; + line-height: 1.2; +} +[data-component-name='Markdown/Markdown'] article h5 { + font-size: 1.25rem; + margin-top: 1.25rem; + line-height: 1.2; + font-weight: 700; +} +[data-component-name='Markdown/Markdown'] article h6 { + font-size: 1rem; + margin-top: 1rem; + line-height: 1.2; + font-weight: 700; +} +[data-component-name='Markdown/Markdown'] article > ul li, +[data-component-name='Markdown/Markdown'] article > ol li, +[data-component-name='Markdown/Markdown'] article .children-display li { + margin: 6px; + margin-top: 24px; +} +[data-component-name='Markdown/Markdown'] article > ul li:first-child, +[data-component-name='Markdown/Markdown'] article > ol li:first-child, +[data-component-name='Markdown/Markdown'] article .children-display li:first-child { + margin-top: 16px; +} +[data-component-name='Markdown/Markdown'] article > ul li p, +[data-component-name='Markdown/Markdown'] article > ol li p, +[data-component-name='Markdown/Markdown'] article .children-display li p { + margin: 0; +} +[data-component-name='Markdown/Markdown'] article [data-component-name='Markdoc/Tabs/Tabs'] li { + margin: 0; +} +[data-component-name='Markdown/Markdown'] article a[title='Source'], +[data-component-name='Markdown/Markdown'] article a[title='ソース'] { + float: right; + padding-left: 20px; +} +[data-component-name='Markdown/Markdown'] article h1.invisible, +[data-component-name='Markdown/Markdown'] article h2.invisible, +[data-component-name='Markdown/Markdown'] article h3.invisible, +[data-component-name='Markdown/Markdown'] article h4.invisible, +[data-component-name='Markdown/Markdown'] article h5.invisible, +[data-component-name='Markdown/Markdown'] article h6.invisible { + font-size: 0; + line-height: 0; + margin: 0; +} +[data-component-name='Markdown/Markdown'] article h1.invisible .hover_anchor, +[data-component-name='Markdown/Markdown'] article h2.invisible .hover_anchor, +[data-component-name='Markdown/Markdown'] article h3.invisible .hover_anchor, +[data-component-name='Markdown/Markdown'] article h4.invisible .hover_anchor, +[data-component-name='Markdown/Markdown'] article h5.invisible .hover_anchor, +[data-component-name='Markdown/Markdown'] article h6.invisible .hover_anchor { + display: none; +} +[data-component-name='Markdown/Markdown'] article .shield { + display: inline-block !important; + vertical-align: middle; +} +.blurb a { + text-decoration: underline; +} +.hover_anchor { + visibility: hidden; + padding-left: 1rem; + font-size: 1.25rem; +} +h1:hover .hover_anchor, +h2:hover .hover_anchor, +h3:hover .hover_anchor, +h4:hover .hover_anchor, +h5:hover .hover_anchor, +h6:hover .hover_anchor { + visibility: visible; + text-decoration: none; +} +pre { + color: #fff; + background-color: #232325; + word-wrap: normal; + padding: 2rem; + border-radius: 4px; +} +pre code { + white-space: pre; + color: #fff; + background-color: #232325; +} +.multicode { + padding: 0; + z-index: 1; + position: relative; +} +.multicode pre { + background: none; + border: none; + border-radius: 0; + padding: 0; + clear: both; +} +.multicode pre code { + overflow: auto; + max-height: 24em; + border-radius: 0 4px 4px 4px; + display: block; + padding: 2rem; +} +.multicode pre code.expanded { + overflow: visible; + max-height: none; + position: absolute; + min-width: 100%; +} +.multicode ul { + margin: 0 !important; + padding: 0; +} +.multicode ul li { + display: block; + float: left; + list-style-type: none; + margin-right: 0px; + margin-left: 0px; + border: 0; + clear: none; +} +.multicode a { + text-decoration: none; + color: #fff; + background-color: transparent; + padding: 0.75rem 2rem; + margin: 0; + border-radius: 4px 4px 0 0; +} +.multicode a.current { + background-color: #232325; +} +.multicode a:hover { + text-decoration: none; + background-color: #232325; + color: #9a52ff; + padding-bottom: 0.625rem; +} +.multicode .btn { + z-index: 10; +} +.multicode .codetabs { + position: relative; + z-index: 10; +} +.clipboard-btn { + z-index: 10; + margin-right: 10px; +} +.codehilite { + background: #232325; + color: #fff; +} +.codehilite .c, +.codehilite .ch, +.codehilite .cm, +.codehilite .cp, +.codehilite .cpf, +.codehilite .c1, +.codehilite .cs { + color: #838386; +} +.codehilite .k, +.codehilite .kc, +.codehilite .kd, +.codehilite .kn, +.codehilite .kp, +.codehilite .kr, +.codehilite .kt { + color: #ff6719; +} +.codehilite .m, +.codehilite .mb, +.codehilite .mh, +.codehilite .mi, +.codehilite .mo, +.codehilite .il { + color: #19a3ff; +} +.codehilite .n, +.codehilite .na, +.codehilite .nb, +.codehilite .nc, +.codehilite .nd, +.codehilite .ne, +.codehilite .nf, +.codehilite .ni, +.codehilite .nl, +.codehilite .nn, +.codehilite .nt, +.codehilite .nv, +.codehilite .nx, +.codehilite .bp, +.codehilite .fm, +.codehilite .py { + color: #fff; +} +.codehilite .p { + color: #e0e0e1; +} +.codehilite .s, +.codehilite .s1, +.codehilite .s2, +.codehilite .sa, +.codehilite .sb, +.codehilite .sc, +.codehilite .dl, +.codehilite .sd, +.codehilite .se, +.codehilite .sh, +.codehilite .si, +.codehilite .sr, +.codehilite .ss, +.codehilite .sx { + color: #28b86a; +} +.codehilite { + background: transparent; + position: relative; +} +.codehilite .btn-group { + top: 1rem; + right: 1rem; + position: absolute; +} +.multicode .codehilite .btn-group { + top: 70px; + right: 20px; +} +#redocly_root .cm-foldPlaceholder { + background-color: #232325; + border: none; + font-size: 18px; +} +#app_root article .code-walkthrough { + margin-right: 112px; + max-width: calc(100% - 112px); + padding-right: 0; + grid-template-columns: 5fr 5fr; +} +@media screen and (max-width: 990px) { + #app_root article .code-walkthrough { + margin-right: 96px; + max-width: calc(100% - 96px); + } +} +@media screen and (min-width: 1600px) { + #app_root article .code-walkthrough [data-component-name='Markdoc/CodeWalkthrough/CodeFilters'] { + margin-left: 96px; + max-width: calc(100% - 96px); + } + #app_root article .code-walkthrough [class*='CodeWalkthrough__ContentWrapper'] { + margin-left: 96px; + max-width: calc(100% - 200px); + } +} +#app_root article .code-walkthrough .tag-size-large { + margin: 0 var(--spacing-xs); +} +#app_root article .code-walkthrough .tag-size-large > div { + padding: 2px 4px; +} +#app_root article .code-walkthrough [data-component-name='Markdoc/CodeWalkthrough/CodeFilters'] { + padding: var(--spacing-xs) var(--spacing-lg); +} +#app_root article .code-walkthrough [data-component-name='Markdoc/CodeWalkthrough/CodeFilters'] > :first-child > :first-child { + margin: auto; +} +#app_root article .code-walkthrough [data-component-name='Markdoc/CodeWalkthrough/CodePanel'] { + top: var(--navbar-height); + border: 0; +} +#app_root article .code-walkthrough [data-component-name='Markdoc/CodeWalkthrough/CodePanel'] [data-component-name='CodeBlock/CodeBlockContainer'] { + border-top-left-radius: 0; + border-top-right-radius: 0; +} +#app_root article .code-walkthrough > :first-child > div { + border-radius: var(--border-radius-md); +} +#app_root article .code-walkthrough [data-component-name='Markdoc/CodeWalkthrough/CodeFilters'] { + background-color: var(--code-panel-bg-color); +} +#app_root article .code-walkthrough [data-line-number]::before { + padding-left: 0.8em; +} +article img { + max-width: 100%; + height: auto; +} +article svg { + max-width: 100%; +} +article .floating-diagram { + margin: 0.5rem; + float: left; +} +article li { + clear: left; +} +html:not(.light) article svg[fill='black'] { + fill: #fff; + stroke: #fff; +} +html:not(.light) article svg[fill='black'] *[fill='white'] { + fill: #000; +} +html:not(.light) article svg[fill='black'] *[stroke='white'] { + stroke: #000; +} +html:not(.light) article svg[fill='black'] *[fill='black'] { + fill: #fff; +} +html:not(.light) article svg[fill='black'] *[stroke='black'] { + stroke: #fff; +} +html:not(.light) article svg[fill='black'] g[fill='blue'] { + fill: #19a3ff; +} +html:not(.light) article svg[fill='black'] g[stroke='blue'] { + stroke: #19a3ff; +} +html:not(.light) article svg[fill='black'] g[fill='rgb(120,120,120)'] { + fill: #e0e0e1; +} +html:not(.light) article svg[fill='black'] g[stroke='rgb(120,120,120)'] { + stroke: #e0e0e1; +} +html:not(.light) article svg[fill='black'] g[fill='rgb(200,200,200)'] { + fill: #343437; +} +html:not(.light) article svg[fill='black'] g[fill='rgb(70,70,70)'] { + fill: #838386; +} +html:not(.light) article svg[fill='black'] g[stroke='rgb(70,70,70)'] { + stroke: #838386; +} +html:not(.light) article svg[fill='black'] g[fill='rgb(29,180,255)'] { + fill: #9a52ff; +} +html:not(.light) article svg[fill='black'] g[stroke='rgb(29,180,255)'] { + stroke: #9a52ff; +} +html:not(.light) article svg[fill='black'] rect[stroke='rgb(245,247,249)'] { + stroke: #000; +} +html:not(.light) article svg[fill='black'] g[fill='lime'], +html:not(.light) article svg[fill='black'] g[fill='rgb(0,255,0)'] { + fill: #9a52ff; +} +html:not(.light) article svg[fill='black'] g[stroke='lime'], +html:not(.light) article svg[fill='black'] g[stroke='rgb(0,255,0)'] { + stroke: #9a52ff; +} +html:not(.light) article svg[fill='black'] g[fill='yellow'], +html:not(.light) article svg[fill='black'] g[fill='rgb(255,255,0)'] { + fill: #faff19; +} +html:not(.light) article svg[fill='black'] g[fill='yellow'] path[stroke='black'], +html:not(.light) article svg[fill='black'] g[fill='rgb(255,255,0)'] path[stroke='black'] { + stroke: #000; +} +html:not(.light) article svg[fill='black'] g[fill='red'], +html:not(.light) article svg[fill='black'] g[fill='rgb(255,255,0)'] { + fill: #ff198b; +} +html:not(.light) article svg[fill='black'] g[stroke='red'], +html:not(.light) article svg[fill='black'] g[stroke='rgb(255,255,0)'] { + stroke: #ff198b; +} +html:not(.light) article svg[fill='black'] g[fill='yellow'] + g text, +html:not(.light) article svg[fill='black'] g[fill='rgb(255,255,0)'] + g text { + fill: #000; +} +html:not(.light) article svg[fill='black'] g[fill='lime'] + g text { + fill: #000; +} +html:not(.light) article svg[fill='none'] path[fill='#000000'] { + fill: #fff; +} +html:not(.light) article svg[fill='none'] path[stroke='#000000'] { + stroke: #fff; +} +html:not(.light) article svg[fill='none'] path[fill='#ffffff'] { + fill: #000; +} +html:not(.light) article svg[fill='none'] path[stroke='#ffffff'] { + stroke: #000; +} +html:not(.light) article svg[fill='none'] path[fill='#23292f'], +html:not(.light) article svg[fill='none'] path[fill='#23282f'] { + fill: #fff; +} +html:not(.light) article svg[fill='none'] path[stroke='#23292f'], +html:not(.light) article svg[fill='none'] path[stroke='#23282f'] { + stroke: #fff; +} +html:not(.light) article svg[fill='none'] path[fill='#2c3e50'], +html:not(.light) article svg[fill='none'] path[fill='#2b3e51'] { + fill: #e0e0e1; +} +html:not(.light) article svg[fill='none'] path[stroke='#2c3e50'], +html:not(.light) article svg[fill='none'] path[stroke='#2b3e51'] { + stroke: #e0e0e1; +} +html:not(.light) article svg[fill='none'] path[fill='#1c2835'] { + fill: #f5f5f7; +} +html:not(.light) article svg[fill='none'] path[stroke='#1c2835'] { + stroke: #f5f5f7; +} +html:not(.light) article svg[fill='none'] path[fill='#21aa47'] { + fill: #32e685; +} +html:not(.light) article svg[fill='none'] path[stroke='#21aa47'] { + stroke: #32e685; +} +html:not(.light) article svg[fill='none'] path[fill='#e64b3b'] { + fill: #dc3545; +} +html:not(.light) article svg[fill='none'] path[stroke='#e64b3b'] { + stroke: #dc3545; +} +html:not(.light) article svg[fill='none'] path[stroke='#27a2db'], +html:not(.light) article svg[fill='none'] path[stroke='#00aae4'] { + stroke: #9a52ff; +} +html:not(.light) article svg[fill='none'] path[fill='#27a2db'], +html:not(.light) article svg[fill='none'] path[fill='#00aae4'] { + fill: #9a52ff; +} +html:not(.light) article svg[fill='none'] path[fill='#e6e7e8'] { + fill: #232325; +} +html:not(.light) article svg[fill='none'] path[stroke='#e6e7e8'] { + stroke: #232325; +} +html:not(.light) article svg[fill='none'] path[stroke='#ffbf27'] { + stroke: #d919ff; +} +html:not(.light) article svg[fill='none'] path[fill='#00ff00'] { + fill: #32e685; +} +html:not(.light) article svg[fill='none'] path[stroke='#00ff00'] { + stroke: #32e685; +} +html:not(.light) article svg[fill='none'] path[fill='#ff00ff'] { + fill: #ff198b; +} +html:not(.light) article svg[fill='none'] path[stroke='#ff00ff'] { + stroke: #ff198b; +} +html:not(.light) article svg[fill='none'] linearGradient stop[stop-color='#ffffff'] { + stop-color: #343437; +} +html:not(.light) article svg[fill='none'] linearGradient stop[stop-color='#e6e7e8'] { + stop-color: #232325; +} +html:not(.light) article svg[fill='none'] linearGradient stop[stop-color='#dbdcdd'] { + stop-color: #000; +} +html:not(.light) article svg[fill='none'] linearGradient stop[stop-color='#b1b3b5'] { + stop-color: #111112; +} +html:not(.light) article svg[fill='none'] linearGradient stop[stop-color='#29a1da'] { + stop-color: #2dcf78; +} +html:not(.light) article svg[fill='none'] linearGradient stop[stop-color='#2789b9'] { + stop-color: #5beb9d; +} +html:not(.light) article svg[fill='none'] linearGradient stop[stop-color='#6bc1ec'] { + stop-color: #adf5ce; +} +html:not(.light) article svg[fill='none'] linearGradient stop[stop-color='#8ad6f4'] { + stop-color: #84f0b6; +} +html:not(.light) article svg[fill='none'] linearGradient stop[stop-color='#fab913'] { + stop-color: #f2b2ff; +} +html:not(.light) article svg[fill='none'] linearGradient stop[stop-color='#fad26b'] { + stop-color: #ea80ff; +} +html:not(.light) article svg[fill='none'] linearGradient stop[stop-color='#f8a136'] { + stop-color: #e24cff; +} +html:not(.light) article svg[fill='none'] linearGradient stop[stop-color='#f7931a'] { + stop-color: #c000e5; +} +html.light svg[fill='black'] g[fill='blue'] { + fill: #006bb2; +} +html.light svg[fill='black'] g[stroke='blue'] { + stroke: #19a3ff; +} +html.light svg[fill='black'] g[fill='rgb(120,120,120)'] { + fill: #343437; +} +html.light svg[fill='black'] g[stroke='rgb(120,120,120)'] { + stroke: #343437; +} +html.light svg[fill='black'] g[fill='rgb(200,200,200)'] { + fill: #a2a2a4; +} +html.light svg[fill='black'] g[fill='rgb(70,70,70)'] { + fill: #343437; +} +html.light svg[fill='black'] g[stroke='rgb(70,70,70)'] { + stroke: #343437; +} +html.light svg[fill='black'] g[fill='rgb(29,180,255)'] { + fill: #19a3ff; +} +html.light svg[fill='black'] g[stroke='rgb(29,180,255)'] { + stroke: #006bb2; +} +html.light svg[fill='black'] rect[stroke='rgb(245,247,249)'] { + stroke: #fcfcfd; +} +html.light svg[fill='black'] g[fill='lime'], +html.light svg[fill='black'] g[fill='rgb(0,255,0)'] { + fill: #5beb9d; +} +html.light svg[fill='black'] g[stroke='lime'], +html.light svg[fill='black'] g[stroke='rgb(0,255,0)'] { + stroke: #28b86a; +} +html.light svg[fill='black'] g[fill='yellow'], +html.light svg[fill='black'] g[fill='rgb(255,255,0)'] { + fill: #fcff80; +} +html.light svg[fill='black'] g[fill='red'], +html.light svg[fill='black'] g[fill='rgb(255,255,0)'] { + fill: #ff4ba4; +} +html.light svg[fill='black'] g[stroke='red'], +html.light svg[fill='black'] g[stroke='rgb(255,255,0)'] { + stroke: #ff198b; +} +html.light svg[fill='none'] rect[fill='#111112'] { + fill: #f5f5f7; +} +html.light svg[fill='none'] path[fill='white'] { + fill: #000; +} +html.light svg[fill='none'] path[fill='#343437'] { + fill: #c1c1c2; +} +html.light svg[fill='none'] path[fill='#A2A2A4'], +html.light svg[fill='none'] rect[fill='#A2A2A4'], +html.light svg[fill='none'] ellipse[fill='#A2A2A4'] { + fill: #454549; +} +html.light svg[fill='none'] path[fill='#232325'] { + fill: #e0e0e1; +} +html.light svg[fill='none'] path[fill='#F5F5F7'] { + fill: #111112; +} +html.light svg[fill='none'] path[stroke='#F5F5F7'] { + stroke: #111112; +} +html.light svg[fill='none'] path[stroke='#FF198B'] { + stroke: #b20058; +} +html.light svg[fill='none'] linearGradient stop[stop-color='#F5F5F7'] { + stop-color: #111112; +} +html.light svg[fill='none'] linearGradient stop[stop-color='#C1C1C2'] { + stop-color: #343437; +} +.external-link::after { + content: ' '; + background-image: url(../img/icons/arrow-up-right.svg); + background-repeat: no-repeat; + display: inline-block; + background-size: 16px; + padding: 0 4px 0 8px; + width: 16px; + height: 16px; + background-position: center; + transition: transform 100ms ease-in-out; +} +.external-link:hover::after { + transform: translate(3px, -3px); +} +.external-link .fa-external-link { + display: none; +} +.top-nav .dropdown .external-link::after, +.xrpl-footer .external-link::after { + background-position: left 6px bottom 1px; + width: 2rem; +} +@-moz-document url-prefix() { + @supports (animation: calc(0s)) { + .top-nav .dropdown .external-link::after, + .xrpl-footer .external-link::after { + background-position: left 8px bottom 2px; + } + } +} +.top-nav .dropdown .external-link:hover::after, +.xrpl-footer .external-link:hover::after { + background-position: left 8px bottom 3px; +} +.q-wrapper .external-link::after { + background-position: left 0 bottom 7px; +} +.q-wrapper .external-link:hover::after { + background-position: left 4px bottom 11px; +} +.li-links { + position: relative; + border-bottom: 2px solid #454549; +} +.li-links a { + width: 100%; + padding: 16px 0; +} +.li-links a::after { + position: absolute; + right: 4px; + content: ' '; + background-image: url(../img/icons/arrow-up-right.svg); + background-repeat: no-repeat; + display: inline-block; + background-size: 1.5rem; + padding: 0 0.5rem; + background-position: left 0 bottom -0.1rem; + transition: background-position 100ms ease-in-out; +} +.li-links a:hover::after { + background-position: left 0.2rem bottom 0.1rem; +} +[data-component-name='Footer/Footer'] { + padding: 7.5rem 2rem; +} +[data-component-name='Footer/Footer'] [data-component-name='Footer/FooterColumn'] { + text-shadow: + #111112 0px 0px 2px, + #111112 1px 1px 2px, + #111112 2px 2px 3px, + #111112 2px 2px 4px, + #111112 2px 2px 5px, + #111112 2px 2px 6px, + #111112 -1px -1px 2px, + #111112 -2px -2px 3px, + #111112 -2px -2px 4px; +} +@media (min-width: 992px) { + [data-component-name='Footer/Footer'] { + background-image: url(../img/backgrounds/footer.svg); + background-size: cover; + background-repeat: no-repeat; + background-position: bottom right; + } +} +@media (max-width: 991.98px) { + [data-component-name='Footer/Footer'] .col-lg:not(:first-child) { + margin-top: 4rem; + } +} +[data-component-name='Footer/Footer'] h5 { + font-size: 1rem; + font-weight: 600; + color: #a2a2a4; +} +[data-component-name='Footer/Footer'] .nav-link { + padding: 0.75rem 0; + line-height: 1; +} +[data-component-name='Footer/Footer'] .absolute-bottom-footer { + font-size: 10px; + line-height: 1rem; +} +@media (max-width: 991.98px) { + [data-component-name='Footer/Footer'] .absolute-bottom-footer .copyright-license { + margin-top: 3rem; + } +} +.devportal-callout.tip, +.devportal-callout.ヒント { + border-color: #32e685; +} +.devportal-callout.tip > strong:first-child:before, +.devportal-callout.ヒント > strong:first-child:before { + color: #32e685; +} +.devportal-callout.note > strong:first-child:before, +.devportal-callout.注記 > strong:first-child:before { + color: #19a3ff; +} +.devportal-callout.note, +.devportal-callout.注記 { + border-color: #19a3ff; +} +.devportal-callout.caution, +.devportal-callout.注意 { + border-color: #faff19; +} +.devportal-callout.caution > strong:first-child:before, +.devportal-callout.注意 > strong:first-child:before { + color: #faff19; +} +.devportal-callout.warning, +.devportal-callout.警告 { + border-color: #ff198b; +} +.devportal-callout.warning > strong:first-child:before, +.devportal-callout.警告 > strong:first-child:before { + color: #ff198b; +} +blockquote, +.devportal-callout { + border-style: solid; + border-radius: 0; + border-width: 1px; + border-left-width: 4px; + padding: 5px; + padding-left: 25px; + page-break-inside: avoid; +} +.devportal-callout > strong:first-child { + display: block; + page-break-after: avoid; +} +.devportal-callout.tip > strong:first-child:before { + content: ''; + font-family: FontAwesome; + margin-left: -20px; + padding-right: 5px; +} +.devportal-callout.note > strong:first-child:before { + content: ''; + font-family: FontAwesome; + margin-left: -20px; + padding-right: 5px; +} +.devportal-callout.caution > strong:first-child:before { + content: ''; + font-family: FontAwesome; + margin-left: -20px; + padding-right: 5px; +} +.devportal-callout.warning > strong:first-child:before { + content: ''; + font-family: FontAwesome; + margin-left: -20px; + padding-right: 5px; +} +@media (min-width: 992px) { + .card, + .cta-card, + .q-wrapper { + box-shadow: 0px 5px 40px #000; + } +} +#code-samples-deck .card { + box-shadow: none; + margin: 0 2rem 5rem 2rem; +} +#code-samples-deck .card-header { + border-bottom: none; + background-color: unset; +} +#code-samples-deck .card-footer { + background-color: unset; + font-size: initial; +} +#code-samples-deck .card-deck .card a { + margin: 0 2.5rem 5rem 2.5rem; +} +#code-samples-deck .circled-logo { + margin-left: -15px; +} +@media (min-width: 992px) { + .code-contribute { + width: 75vw; + position: relative; + left: 20%; + right: 20%; + margin-left: -30vw; + margin-right: -30vw; + } +} +.contribute::before { + content: ''; + display: block; + height: 2px; + width: 100%; + position: absolute; + top: 0; +} +.contribute .dot { + height: 16px; + width: 16px; + background-color: #111112; + border-radius: 50%; + border: 3px solid #fbff4c; + display: inline-block; + position: absolute; + top: -7px; + left: -6px; +} +@media (max-width: 991.98px) { + .contribute::before { + left: 0; + height: 100%; + width: 2px; + top: 15px; + } + .contribute .dot { + top: 5px; + left: -6px; + } +} +.contribute_1::before { + background: -webkit-linear-gradient(left, #feff01, #ff2d9a); +} +.contribute_1 .dot { + border-color: #fbff4c; +} +.contribute_2::before { + background: -webkit-linear-gradient(left, #ff2d9a, #e24cff); +} +.contribute_2 .dot { + border-color: #ff198b; +} +.contribute_3::before { + background: -webkit-linear-gradient(left, #e24cff, #9a52ff); +} +.contribute_3 .dot { + border-color: #c000e5; +} +.contribute_4::before { + background: -webkit-linear-gradient(left, #9a52ff, #9a52ff); +} +.contribute_4 .dot { + border-color: #9a52ff; +} +.card > img { + border-radius: 8px 8px 0 0; +} +.card-body > p, +.card-body > p:not(:last-child) { + padding: 0; + margin-bottom: 2rem; +} +main a.card { + border: 0; + color: #fff; +} +a.card:hover, +a:hover .card-new, +[data-component-name='Markdown/Markdown'] a.card { + text-decoration: none !important; +} +a.card:hover h3 { + text-decoration: underline; +} +.circled-logo { + background-color: #454549; + border-radius: 50%; + padding: 0.65rem; + width: 50px; + height: 50px; + margin-bottom: 0.75rem; + border: 2px solid #232325; +} +.circled-logo img { + width: 26px; + height: 26px; + display: inline-block; +} +.light .circled-logo { + border: none; +} +.cols-of-1 { + grid-template-rows: repeat(1, min-content); +} +.cols-of-2 { + grid-template-rows: repeat(2, min-content); +} +.cols-of-3 { + grid-template-rows: repeat(3, min-content); +} +.cols-of-4 { + grid-template-rows: repeat(4, min-content); +} +.cols-of-5 { + grid-template-rows: repeat(5, min-content); +} +.cols-of-6 { + grid-template-rows: repeat(6, min-content); +} +.cols-of-7 { + grid-template-rows: repeat(7, min-content); +} +.cols-of-8 { + grid-template-rows: repeat(8, min-content); +} +.cols-of-9 { + grid-template-rows: repeat(9, min-content); +} +.cols-of-10 { + grid-template-rows: repeat(10, min-content); +} +.card-deck { + margin-top: 2.5rem; + margin-left: -1.25rem; + margin-right: -1.25rem; + margin-bottom: 5rem; + flex-grow: 1; +} +@media (min-width: 992px) { + .card-deck { + margin-top: 5rem; + } +} +.card-deck .card { + flex-grow: 0; + flex-basis: 100%; + margin: 0 1.25rem 5rem 1.25rem; + background-position: bottom; + background-repeat: no-repeat; + background-size: contain; +} +.card-deck.row-cols-1 .card { + flex-basis: 100%; + min-height: 264px; +} +@media (min-width: 768px) { + .card-deck.row-cols-1 .card { + min-height: 347px; + } +} +@media (min-width: 1200px) { + .card-deck.row-cols-lg-3 { + margin-left: -2.5rem; + margin-right: -2.5rem; + } +} +@media (min-width: 992px) { + .card-deck.row-cols-lg-3 .card { + flex-basis: calc(33% - 2.5rem); + } +} +@media (min-width: 1200px) { + .card-deck.row-cols-lg-3 .card { + margin: 0 2.5rem 5rem 2.5rem; + flex-basis: calc(33% - 5rem); + } +} +@media (min-width: 992px) { + .card-deck.row-cols-lg-4 .card { + flex-basis: calc(25% - 2.5rem); + } +} +.card-deck a.card { + transition: all 0.35s ease-out; + cursor: pointer; +} +.card-deck a.card:hover { + -webkit-transform: translateY(-16px); + -moz-transform: translateY(-16px); + -ms-transform: translateY(-16px); + -o-transform: translateY(-16px); + transform: translateY(-16px); +} +.card-deck .card-footer { + font-size: 0; + padding: 1rem; + background-position: bottom; + background-repeat: no-repeat; + background-size: cover; + border-top: 0; +} +@media (max-width: 991.98px) { + .card-deck { + margin-top: 2rem; + } + .card-deck .card-body { + padding: 1rem; + } + .card-deck.row-cols-1 .card { + margin: 0.75rem 0.75rem 5rem 0.75rem; + max-width: calc(100% - 1.5rem); + } + .card-deck.row-cols-2 .card { + margin: 0.75rem; + max-width: calc(50% - 1.5rem); + } +} +main article .card-grid.card-grid-3xN { + grid-gap: 1rem; +} +main article .card-grid.card-grid-3xN .card { + padding: 0; + margin: 0.5rem; +} +main article .card-grid.card-grid-3xN .card .card-body { + padding: 1rem; +} +main article .card-grid.card-grid-3xN .card .card-icon-container { + width: 50px; + height: 50px; + background: #454549; + display: flex; + justify-content: center; + align-items: center; + border-radius: 50%; + margin-bottom: 12px; +} +main article .card-grid.card-grid-3xN .card .card-icon-container img { + width: 70%; + height: 70%; +} +main article .card-grid.card-grid-3xN .card .card-footer { + font-size: 0; + line-height: 0; + padding: 1rem; + background-position: bottom; + background-repeat: no-repeat; + background-size: cover; + border-top: 0; +} +main article .card-grid.card-grid-3xN:nth-of-type(0) .card:nth-child(1) .card-footer { + background-image: url('../img/cards/3-col-light-blue.svg'); +} +main article .card-grid.card-grid-3xN:nth-of-type(0) .card:nth-child(2) .card-footer { + background-image: url('../img/cards/3-col-green-purple.svg'); +} +main article .card-grid.card-grid-3xN:nth-of-type(0) .card:nth-child(3) .card-footer { + background-image: url('../img/cards/3col-purple-blue-green.svg'); +} +main article .card-grid.card-grid-3xN:nth-of-type(0) .card:nth-child(4) .card-footer { + background-image: url('../img/cards/3col-magenta-3.svg'); +} +main article .card-grid.card-grid-3xN:nth-of-type(0) .card:nth-child(5) .card-footer { + background-image: url('../img/cards/3col-green-blue.svg'); +} +main article .card-grid.card-grid-3xN:nth-of-type(0) .card:nth-child(6) .card-footer { + background-image: url('../img/cards/3col-light-blue-2.svg'); +} +main article .card-grid.card-grid-3xN:nth-of-type(0) .card:nth-child(7) .card-footer { + background-image: url('../img/cards/3col-orange-yellow-2.svg'); +} +main article .card-grid.card-grid-3xN:nth-of-type(0) .card:nth-child(8) .card-footer { + background-image: url('../img/cards/3col-pink-purple.svg'); +} +main article .card-grid.card-grid-3xN:nth-of-type(0) .card:nth-child(9) .card-footer { + background-image: url('../img/cards/3col-green-purple.svg'); +} +main article .card-grid.card-grid-3xN:nth-of-type(1) .card:nth-child(1) .card-footer { + background-image: url('../img/cards/3col-magenta.svg'); +} +main article .card-grid.card-grid-3xN:nth-of-type(1) .card:nth-child(2) .card-footer { + background-image: url('../img/cards/3-col-purple2.svg'); +} +main article .card-grid.card-grid-3xN:nth-of-type(1) .card:nth-child(3) .card-footer { + background-image: url('../img/cards/3col-neutral-blue.svg'); +} +main article .card-grid.card-grid-3xN:nth-of-type(1) .card:nth-child(4) .card-footer { + background-image: url('../img/cards/3col-purple-blue.svg'); +} +main article .card-grid.card-grid-3xN:nth-of-type(1) .card:nth-child(5) .card-footer { + background-image: url('../img/cards/3-col-pink2.svg'); +} +main article .card-grid.card-grid-3xN:nth-of-type(1) .card:nth-child(6) .card-footer { + background-image: url('../img/cards/3col-orange.svg'); +} +main article .card-grid.card-grid-3xN:nth-of-type(1) .card:nth-child(7) .card-footer { + background-image: url('../img/cards/3col-light-green.svg'); +} +main article .card-grid.card-grid-3xN:nth-of-type(1) .card:nth-child(8) .card-footer { + background-image: url('../img/cards/3col-blue-light-blue.svg'); +} +main article .card-grid.card-grid-3xN:nth-of-type(1) .card:nth-child(9) .card-footer { + background-image: url('../img/cards/3col-green.svg'); +} +main article .card-grid.card-grid-3xN:nth-of-type(2) .card:nth-child(1) .card-footer { + background-image: url('../img/cards/3-col-dark-blue.svg'); +} +main article .card-grid.card-grid-3xN:nth-of-type(2) .card:nth-child(2) .card-footer { + background-image: url('../img/cards/3-col-purple.svg'); +} +main article .card-grid.card-grid-3xN:nth-of-type(2) .card:nth-child(3) .card-footer { + background-image: url('../img/cards/3col-magenta-2.svg'); +} +main article .card-grid.card-grid-3xN:nth-of-type(2) .card:nth-child(4) .card-footer { + background-image: url('../img/cards/3-col-light-blue-2.svg'); +} +main article .card-grid.card-grid-3xN:nth-of-type(2) .card:nth-child(5) .card-footer { + background-image: url('../img/cards/3col-light-blue.svg'); +} +main article .card-grid.card-grid-3xN:nth-of-type(2) .card:nth-child(6) .card-footer { + background-image: url('../img/cards/3col-magenta-orange.svg'); +} +main article .card-grid.card-grid-3xN:nth-of-type(2) .card:nth-child(7) .card-footer { + background-image: url('../img/cards/3-col-purple-blue.svg'); +} +main article .card-grid.card-grid-3xN:nth-of-type(2) .card:nth-child(8) .card-footer { + background-image: url('../img/cards/3col-orange-3.svg'); +} +main article .card-grid.card-grid-3xN:nth-of-type(2) .card:nth-child(9) .card-footer { + background-image: url('../img/cards/3col-blue-green.svg'); +} +main article .card-grid.card-grid-3xN:nth-of-type(3) .card:nth-child(1) .card-footer { + background-image: url('../img/cards/3-col-green.svg'); +} +main article .card-grid.card-grid-3xN:nth-of-type(3) .card:nth-child(2) .card-footer { + background-image: url('../img/cards/3-col-orange.svg'); +} +main article .card-grid.card-grid-3xN:nth-of-type(3) .card:nth-child(3) .card-footer { + background-image: url('../img/cards/3col-purple-blue-2.svg'); +} +main article .card-grid.card-grid-3xN:nth-of-type(3) .card:nth-child(4) .card-footer { + background-image: url('../img/cards/3col-purple.svg'); +} +main article .card-grid.card-grid-3xN:nth-of-type(3) .card:nth-child(5) .card-footer { + background-image: url('../img/cards/3-col-light-blue2.svg'); +} +main article .card-grid.card-grid-3xN:nth-of-type(3) .card:nth-child(6) .card-footer { + background-image: url('../img/cards/3col-orange-yellow.svg'); +} +main article .card-grid.card-grid-3xN:nth-of-type(3) .card:nth-child(7) .card-footer { + background-image: url('../img/cards/3-col-pink.svg'); +} +main article .card-grid.card-grid-3xN:nth-of-type(3) .card:nth-child(8) .card-footer { + background-image: url('../img/cards/3col-green-2.svg'); +} +main article .card-grid.card-grid-3xN:nth-of-type(3) .card:nth-child(9) .card-footer { + background-image: url('../img/cards/3col-orange-2.svg'); +} +.cta-card { + text-align: center; + background-color: #232325; +} +.card-subhead { + font-size: 1rem; + margin-bottom: 0.25rem; + margin-top: 0.5rem; +} +.breadcrumbs-wrap { + position: relative; + z-index: 11; + padding: 0 0 2rem 0; +} +.interactive-block .breadcrumbs-wrap { + padding: 0; +} +.breadcrumb-item + .breadcrumb-item:before { + content: ''; + font-family: FontAwesome; + padding-right: 5px; +} +.breadcrumbs-wrap .breadcrumb { + padding: 0; + margin-bottom: 0; + font-size: 0.833em; +} +.breadcrumb-item a { + color: #e0e0e1; + text-decoration: none; +} +.breadcrumb-item a:hover { + color: #9a52ff; +} +.landing .container-fluid.section-hero, +.landing .section-hero.container-sm, +.landing .section-hero.container-md, +.landing .section-hero.container-lg, +.landing .section-hero.container-xl { + padding: 48px 0; +} +.landing article .children-display > ul > li, +.landing article .curated-links > ul > li { + margin-top: 24px; +} +.landing article .children-display li a, +.landing article .curated-links li a { + font-weight: 700; + font-size: 1.25rem; + text-decoration: none; +} +.landing article .children-display li a:hover, +.landing article .curated-links li a:hover { + text-decoration: underline; +} +.landing section:first-of-type h1:first-child { + margin-top: 0; + line-height: 1.2; +} +.landing .level-1, +.landing .level-2 { + margin-top: 0; +} +.landing .curated-links ul, +.landing .curated-links ol, +.landing .children-display ul { + padding-left: 0; + margin-bottom: 0; +} +.landing .section-hero .blurb { + font-size: 1.2em; + line-height: 1.71em; +} +.landing .doc-index .level-1 { + list-style-type: disc; + margin-left: 1rem; +} +.landing .doc-index .level-2 { + list-style-type: circle; + margin-left: 2rem; +} +.landing .doc-index .level-3 { + list-style-type: square; + margin-left: 3rem; +} +.landing .doc-index .level-4 { + list-style-type: disc; + margin-left: 4rem; +} +.landing .doc-index .level-5 { + margin-left: 5rem; + list-style-type: circle; +} +.landing .doc-index .level-6 { + margin-left: 6rem; + list-style-type: square; +} +.landing p a, +.landing h5 a { + color: #9a52ff; + font-weight: 600; +} +.landing p a:hover, +.landing h5 a:hover { + text-decoration: underline; +} +.landing .display-4 { + margin-bottom: 1.5rem; +} +.landing #test-net-servers h3 { + font-size: 1.4rem; + font-weight: 700; +} +.landing #test-net-servers pre { + overflow-x: auto; +} +.landing section:first-of-type { + border-top-width: 0; +} +.landing #main_content_wrapper { + border-bottom: none; + margin-top: 80px; +} +.landing .marketing-wrapper { + margin-top: 10rem; + margin-bottom: 6rem; +} +@media (max-width: 767.98px) { + .landing .marketing-wrapper { + margin-top: 6rem; + } +} +.landing .nav .nav-link { + padding: 1rem 2rem 1rem 0; + color: #e0e0e1; + border-bottom: 1px solid #232325; + position: relative; +} +.landing .nav .nav-link:hover { + color: #9a52ff; +} +.landing .nav .nav-link:not(.external-link)::after { + content: ' '; + background-image: url(../img/icons/arrow-right-purple.svg); + background-repeat: no-repeat; + background-position: center; + background-size: 1rem; + position: absolute; + right: 0; + width: 1.5rem; + height: 1.5rem; + transition: all 0.2s ease; +} +.landing .nav .nav-link:not(.external-link):hover::after { + animation: arrowDance2 1.2s infinite; +} +.landing .nav .nav-link.external-link::after { + content: ' '; + background-image: url(../img/icons/arrow-up-right.svg); + background-repeat: no-repeat; + position: absolute; + background-position: center; + background-size: 0.75rem; + right: 7px; + width: 1.5rem; + height: 1.5rem; + transition: all 0.2s ease; +} +.landing .nav .nav-link.external-link:hover::after { + animation: arrowDanceDiag 1.2s infinite; +} +.landing .card-body .nav .nav-link { + border-bottom: 1px solid #454549; +} +.alert-info { + color: #fff; + background-color: #006bb2; + border-width: 0; +} +.alert-info a { + text-decoration: underline; + color: #fff; +} +.alert-info a:hover { + color: #e0e0e1; +} +.highlight-subcard { + margin: 1.5rem 0; + padding: 1rem; + border: 2px solid #fff; + background: #111112; +} +.interactive-block-inner { + border: 1px dashed #9a52ff; + padding: 10px; + margin: 5px; +} +.interactive-block-ui > button { + margin: 10px 0; +} +.interactive-block input:invalid { + box-shadow: inset 0 0 5px 5px #ff198b; +} +.interactive-block .breadcrumbs-wrap { + margin-bottom: 11px; +} +.interactive-block .breadcrumb-item { + margin-top: 6px; +} +.interactive-block .breadcrumb-item a { + text-decoration: none; +} +.interactive-block .breadcrumb-item.current a { + font-weight: bold; +} +.interactive-block .breadcrumb-item.active a { + color: #b480ff; +} +.interactive-block .breadcrumb-item.disabled a { + color: #454549; +} +.interactive-block .breadcrumb-item.done a:after { + content: ''; + font-family: FontAwesome; + color: #e0e0e1; + padding-right: 5px; + padding-left: 5px; +} +.interactive-block .waiting-for-tx { + word-break: break-word; +} +.ws-console { + height: 200px; + overflow: auto; +} +.status { + cursor: help; + padding: 1px 2px; + font-weight: normal; + text-indent: 0; +} +.status.not_enabled { + color: #faff19; +} +.status.removed { + color: #ff198b; +} +.labels-wrap ul::before { + content: ''; + font-family: FontAwesome; + font-size: 1.5rem; +} +.labels-wrap .list-inline-item { + margin-top: 0.5rem; +} +.pg-category { + color: #a2a2a4; +} +.pg-category::after { + content: ''; + font-family: FontAwesome; + padding-left: 5px; +} +.label { + border-radius: 100px; + border-width: 0; + padding: 0.5rem 1rem; + font-weight: bold; + text-decoration: none !important; + text-align: center; + white-space: nowrap; + background-color: #111112; + color: #c1c1c2; +} +.label .badge-pill { + width: 24px; + height: 24px; + border-radius: 50px; + margin-left: 0.5rem; + font-weight: 400; + line-height: 23px; + font-size: 16px; + padding: 0; + margin-top: -2px; +} +html.light .label { + background-color: #e0e0e1; + color: #232325; +} +html.light .label .badge-pill { + color: #e0e0e1; + background-color: #232325; +} +html.light .label:hover { + background-color: #c1c1c2; + color: #111112; +} +html.light .label:hover .badge-pill { + color: #c1c1c2; + background-color: #111112; +} +.label .badge-pill { + color: #111112; + background-color: #c1c1c2; +} +.label:hover { + color: #e0e0e1; + background-color: #232325; +} +.label:hover .badge-pill { + color: #232325; + background-color: #e0e0e1; +} +.label.label-accounts, +.label.label-payment-channels, +.label.label-amm, +.label.label-アカウント, +.label.label-payment-channel, +.label.label-use-infrastructure, +.label.label-use-security, +.label.blog-category-development, +.label.chip-indigo { + background-color: #20004c; + color: #b480ff; +} +.label.label-accounts .badge-pill, +.label.label-payment-channels .badge-pill, +.label.label-amm .badge-pill, +.label.label-アカウント .badge-pill, +.label.label-payment-channel .badge-pill, +.label.label-use-infrastructure .badge-pill, +.label.label-use-security .badge-pill, +.label.blog-category-development .badge-pill, +.label.chip-indigo .badge-pill { + color: #20004c; + background-color: #b480ff; +} +.label.label-accounts:hover, +.label.label-payment-channels:hover, +.label.label-amm:hover, +.label.label-アカウント:hover, +.label.label-payment-channel:hover, +.label.label-use-infrastructure:hover, +.label.label-use-security:hover, +.label.blog-category-development:hover, +.label.chip-indigo:hover { + background-color: #350080; + color: #d2b2ff; +} +.label.label-accounts:hover .badge-pill, +.label.label-payment-channels:hover .badge-pill, +.label.label-amm:hover .badge-pill, +.label.label-アカウント:hover .badge-pill, +.label.label-payment-channel:hover .badge-pill, +.label.label-use-infrastructure:hover .badge-pill, +.label.label-use-security:hover .badge-pill, +.label.blog-category-development:hover .badge-pill, +.label.chip-indigo:hover .badge-pill { + color: #350080; + background-color: #d2b2ff; +} +html.light .label.label-accounts, +html.light .label.label-payment-channels, +html.light .label.label-amm, +html.light .label.label-アカウント, +html.light .label.label-payment-channel, +html.light .label.label-use-infrastructure, +html.light .label.label-use-security, +html.light .label.blog-category-development, +html.light .label.chip-indigo { + background-color: #d2b2ff; + color: #350080; +} +html.light .label.label-accounts .badge-pill, +html.light .label.label-payment-channels .badge-pill, +html.light .label.label-amm .badge-pill, +html.light .label.label-アカウント .badge-pill, +html.light .label.label-payment-channel .badge-pill, +html.light .label.label-use-infrastructure .badge-pill, +html.light .label.label-use-security .badge-pill, +html.light .label.blog-category-development .badge-pill, +html.light .label.chip-indigo .badge-pill { + color: #d2b2ff; + background-color: #350080; +} +html.light .label.label-accounts:hover, +html.light .label.label-payment-channels:hover, +html.light .label.label-amm:hover, +html.light .label.label-アカウント:hover, +html.light .label.label-payment-channel:hover, +html.light .label.label-use-infrastructure:hover, +html.light .label.label-use-security:hover, +html.light .label.blog-category-development:hover, +html.light .label.chip-indigo:hover { + background-color: #b480ff; + color: #20004c; +} +html.light .label.label-accounts:hover .badge-pill, +html.light .label.label-payment-channels:hover .badge-pill, +html.light .label.label-amm:hover .badge-pill, +html.light .label.label-アカウント:hover .badge-pill, +html.light .label.label-payment-channel:hover .badge-pill, +html.light .label.label-use-infrastructure:hover .badge-pill, +html.light .label.label-use-security:hover .badge-pill, +html.light .label.blog-category-development:hover .badge-pill, +html.light .label.chip-indigo:hover .badge-pill { + color: #b480ff; + background-color: #20004c; +} +.label.label-blockchain, +.label.label-xrp, +.label.label-ブロックチェーン, +.label.label-non-fungible-tokens-nfts, +.label.label-use-nfts, +.label.blog-category-release_notes, +.label.blog-category-features, +.label.chip-green { + background-color: #145c35; + color: #84f0b6; +} +.label.label-blockchain .badge-pill, +.label.label-xrp .badge-pill, +.label.label-ブロックチェーン .badge-pill, +.label.label-non-fungible-tokens-nfts .badge-pill, +.label.label-use-nfts .badge-pill, +.label.blog-category-release_notes .badge-pill, +.label.blog-category-features .badge-pill, +.label.chip-green .badge-pill { + background-color: #84f0b6; + color: #145c35; +} +.label.label-blockchain:hover, +.label.label-xrp:hover, +.label.label-ブロックチェーン:hover, +.label.label-non-fungible-tokens-nfts:hover, +.label.label-use-nfts:hover, +.label.blog-category-release_notes:hover, +.label.blog-category-features:hover, +.label.chip-green:hover { + background-color: #1e8a50; + color: #adf5ce; +} +.label.label-blockchain:hover .badge-pill, +.label.label-xrp:hover .badge-pill, +.label.label-ブロックチェーン:hover .badge-pill, +.label.label-non-fungible-tokens-nfts:hover .badge-pill, +.label.label-use-nfts:hover .badge-pill, +.label.blog-category-release_notes:hover .badge-pill, +.label.blog-category-features:hover .badge-pill, +.label.chip-green:hover .badge-pill { + background-color: #adf5ce; + color: #1e8a50; +} +html.light .label.label-blockchain, +html.light .label.label-xrp, +html.light .label.label-ブロックチェーン, +html.light .label.label-non-fungible-tokens-nfts, +html.light .label.label-use-nfts, +html.light .label.blog-category-release_notes, +html.light .label.blog-category-features, +html.light .label.chip-green { + background-color: #adf5ce; + color: #145c35; +} +html.light .label.label-blockchain .badge-pill, +html.light .label.label-xrp .badge-pill, +html.light .label.label-ブロックチェーン .badge-pill, +html.light .label.label-non-fungible-tokens-nfts .badge-pill, +html.light .label.label-use-nfts .badge-pill, +html.light .label.blog-category-release_notes .badge-pill, +html.light .label.blog-category-features .badge-pill, +html.light .label.chip-green .badge-pill { + color: #adf5ce; + background-color: #145c35; +} +html.light .label.label-blockchain:hover, +html.light .label.label-xrp:hover, +html.light .label.label-ブロックチェーン:hover, +html.light .label.label-non-fungible-tokens-nfts:hover, +html.light .label.label-use-nfts:hover, +html.light .label.blog-category-release_notes:hover, +html.light .label.blog-category-features:hover, +html.light .label.chip-green:hover { + background-color: #84f0b6; + color: #000; +} +html.light .label.label-blockchain:hover .badge-pill, +html.light .label.label-xrp:hover .badge-pill, +html.light .label.label-ブロックチェーン:hover .badge-pill, +html.light .label.label-non-fungible-tokens-nfts:hover .badge-pill, +html.light .label.label-use-nfts:hover .badge-pill, +html.light .label.blog-category-release_notes:hover .badge-pill, +html.light .label.blog-category-features:hover .badge-pill, +html.light .label.chip-green:hover .badge-pill { + color: #84f0b6; + background-color: #000; +} +.label.label-checks, +.label.label-core-server, +.label.label-コアサーバ, +.label.label-use-interoperability, +.label.label-use-web_monetization, +.label.blog-category-gateway_bulletins, +.label.chip-purple { + background-color: #40004c; + color: #ea80ff; +} +.label.label-checks .badge-pill, +.label.label-core-server .badge-pill, +.label.label-コアサーバ .badge-pill, +.label.label-use-interoperability .badge-pill, +.label.label-use-web_monetization .badge-pill, +.label.blog-category-gateway_bulletins .badge-pill, +.label.chip-purple .badge-pill { + background-color: #ea80ff; + color: #40004c; +} +.label.label-checks:hover, +.label.label-core-server:hover, +.label.label-コアサーバ:hover, +.label.label-use-interoperability:hover, +.label.label-use-web_monetization:hover, +.label.blog-category-gateway_bulletins:hover, +.label.chip-purple:hover { + background-color: #6b0080; + color: #f2b2ff; +} +.label.label-checks:hover .badge-pill, +.label.label-core-server:hover .badge-pill, +.label.label-コアサーバ:hover .badge-pill, +.label.label-use-interoperability:hover .badge-pill, +.label.label-use-web_monetization:hover .badge-pill, +.label.blog-category-gateway_bulletins:hover .badge-pill, +.label.chip-purple:hover .badge-pill { + background-color: #f2b2ff; + color: #6b0080; +} +html.light .label.label-checks, +html.light .label.label-core-server, +html.light .label.label-コアサーバ, +html.light .label.label-use-interoperability, +html.light .label.label-use-web_monetization, +html.light .label.blog-category-gateway_bulletins, +html.light .label.chip-purple { + background-color: #f2b2ff; + color: #6b0080; +} +html.light .label.label-checks .badge-pill, +html.light .label.label-core-server .badge-pill, +html.light .label.label-コアサーバ .badge-pill, +html.light .label.label-use-interoperability .badge-pill, +html.light .label.label-use-web_monetization .badge-pill, +html.light .label.blog-category-gateway_bulletins .badge-pill, +html.light .label.chip-purple .badge-pill { + color: #f2b2ff; + background-color: #6b0080; +} +html.light .label.label-checks:hover, +html.light .label.label-core-server:hover, +html.light .label.label-コアサーバ:hover, +html.light .label.label-use-interoperability:hover, +html.light .label.label-use-web_monetization:hover, +html.light .label.blog-category-gateway_bulletins:hover, +html.light .label.chip-purple:hover { + background-color: #ea80ff; + color: #40004c; +} +html.light .label.label-checks:hover .badge-pill, +html.light .label.label-core-server:hover .badge-pill, +html.light .label.label-コアサーバ:hover .badge-pill, +html.light .label.label-use-interoperability:hover .badge-pill, +html.light .label.label-use-web_monetization:hover .badge-pill, +html.light .label.blog-category-gateway_bulletins:hover .badge-pill, +html.light .label.chip-purple:hover .badge-pill { + color: #ea80ff; + background-color: #40004c; +} +.label.label-cross-currency, +.label.label-security, +.label.label-クロスカレンシー, +.label.label-セキュリティ, +.label.label-use-gaming, +.label.label-use-defi, +.label.blog-category-amendments, +.label.chip-yellow { + background-color: #4b4c00; + color: #fcff80; +} +.label.label-cross-currency .badge-pill, +.label.label-security .badge-pill, +.label.label-クロスカレンシー .badge-pill, +.label.label-セキュリティ .badge-pill, +.label.label-use-gaming .badge-pill, +.label.label-use-defi .badge-pill, +.label.blog-category-amendments .badge-pill, +.label.chip-yellow .badge-pill { + background-color: #fcff80; + color: #4b4c00; +} +.label.label-cross-currency:hover, +.label.label-security:hover, +.label.label-クロスカレンシー:hover, +.label.label-セキュリティ:hover, +.label.label-use-gaming:hover, +.label.label-use-defi:hover, +.label.blog-category-amendments:hover, +.label.chip-yellow:hover { + background-color: #7d8000; + color: #fdffb2; +} +.label.label-cross-currency:hover .badge-pill, +.label.label-security:hover .badge-pill, +.label.label-クロスカレンシー:hover .badge-pill, +.label.label-セキュリティ:hover .badge-pill, +.label.label-use-gaming:hover .badge-pill, +.label.label-use-defi:hover .badge-pill, +.label.blog-category-amendments:hover .badge-pill, +.label.chip-yellow:hover .badge-pill { + background-color: #fdffb2; + color: #7d8000; +} +html.light .label.label-cross-currency, +html.light .label.label-security, +html.light .label.label-クロスカレンシー, +html.light .label.label-セキュリティ, +html.light .label.label-use-gaming, +html.light .label.label-use-defi, +html.light .label.blog-category-amendments, +html.light .label.chip-yellow { + background-color: #fdffb2; + color: #4b4c00; +} +html.light .label.label-cross-currency .badge-pill, +html.light .label.label-security .badge-pill, +html.light .label.label-クロスカレンシー .badge-pill, +html.light .label.label-セキュリティ .badge-pill, +html.light .label.label-use-gaming .badge-pill, +html.light .label.label-use-defi .badge-pill, +html.light .label.blog-category-amendments .badge-pill, +html.light .label.chip-yellow .badge-pill { + color: #fdffb2; + background-color: #4b4c00; +} +html.light .label.label-cross-currency:hover, +html.light .label.label-security:hover, +html.light .label.label-クロスカレンシー:hover, +html.light .label.label-セキュリティ:hover, +html.light .label.label-use-gaming:hover, +html.light .label.label-use-defi:hover, +html.light .label.blog-category-amendments:hover, +html.light .label.chip-yellow:hover { + background-color: #fcff80; + color: #4b4c00; +} +html.light .label.label-cross-currency:hover .badge-pill, +html.light .label.label-security:hover .badge-pill, +html.light .label.label-クロスカレンシー:hover .badge-pill, +html.light .label.label-セキュリティ:hover .badge-pill, +html.light .label.label-use-gaming:hover .badge-pill, +html.light .label.label-use-defi:hover .badge-pill, +html.light .label.blog-category-amendments:hover .badge-pill, +html.light .label.chip-yellow:hover .badge-pill { + color: #fcff80; + background-color: #4b4c00; +} +.label.label-decentralized-exchange, +.label.label-smart-contracts, +.label.label-transaction-sending, +.label.label-分散型取引所, +.label.label-スマートコントラクト, +.label.label-トランザクション送信, +.label.label-use-developer_tooling, +.label.label-use-payments, +.label.blog-category-developer_reflections, +.label.blog-category-case_study, +.label.chip-blue { + background-color: #002e4c; + color: #80ccff; +} +.label.label-decentralized-exchange .badge-pill, +.label.label-smart-contracts .badge-pill, +.label.label-transaction-sending .badge-pill, +.label.label-分散型取引所 .badge-pill, +.label.label-スマートコントラクト .badge-pill, +.label.label-トランザクション送信 .badge-pill, +.label.label-use-developer_tooling .badge-pill, +.label.label-use-payments .badge-pill, +.label.blog-category-developer_reflections .badge-pill, +.label.blog-category-case_study .badge-pill, +.label.chip-blue .badge-pill { + background-color: #80ccff; + color: #002e4c; +} +.label.label-decentralized-exchange:hover, +.label.label-smart-contracts:hover, +.label.label-transaction-sending:hover, +.label.label-分散型取引所:hover, +.label.label-スマートコントラクト:hover, +.label.label-トランザクション送信:hover, +.label.label-use-developer_tooling:hover, +.label.label-use-payments:hover, +.label.blog-category-developer_reflections:hover, +.label.blog-category-case_study:hover, +.label.chip-blue:hover { + background-color: #004d80; + color: #b2e0ff; +} +.label.label-decentralized-exchange:hover .badge-pill, +.label.label-smart-contracts:hover .badge-pill, +.label.label-transaction-sending:hover .badge-pill, +.label.label-分散型取引所:hover .badge-pill, +.label.label-スマートコントラクト:hover .badge-pill, +.label.label-トランザクション送信:hover .badge-pill, +.label.label-use-developer_tooling:hover .badge-pill, +.label.label-use-payments:hover .badge-pill, +.label.blog-category-developer_reflections:hover .badge-pill, +.label.blog-category-case_study:hover .badge-pill, +.label.chip-blue:hover .badge-pill { + background-color: #b2e0ff; + color: #004d80; +} +html.light .label.label-decentralized-exchange, +html.light .label.label-smart-contracts, +html.light .label.label-transaction-sending, +html.light .label.label-分散型取引所, +html.light .label.label-スマートコントラクト, +html.light .label.label-トランザクション送信, +html.light .label.label-use-developer_tooling, +html.light .label.label-use-payments, +html.light .label.blog-category-developer_reflections, +html.light .label.blog-category-case_study, +html.light .label.chip-blue { + background-color: #b2e0ff; + color: #004d80; +} +html.light .label.label-decentralized-exchange .badge-pill, +html.light .label.label-smart-contracts .badge-pill, +html.light .label.label-transaction-sending .badge-pill, +html.light .label.label-分散型取引所 .badge-pill, +html.light .label.label-スマートコントラクト .badge-pill, +html.light .label.label-トランザクション送信 .badge-pill, +html.light .label.label-use-developer_tooling .badge-pill, +html.light .label.label-use-payments .badge-pill, +html.light .label.blog-category-developer_reflections .badge-pill, +html.light .label.blog-category-case_study .badge-pill, +html.light .label.chip-blue .badge-pill { + color: #b2e0ff; + background-color: #004d80; +} +html.light .label.label-decentralized-exchange:hover, +html.light .label.label-smart-contracts:hover, +html.light .label.label-transaction-sending:hover, +html.light .label.label-分散型取引所:hover, +html.light .label.label-スマートコントラクト:hover, +html.light .label.label-トランザクション送信:hover, +html.light .label.label-use-developer_tooling:hover, +html.light .label.label-use-payments:hover, +html.light .label.blog-category-developer_reflections:hover, +html.light .label.blog-category-case_study:hover, +html.light .label.chip-blue:hover { + background-color: #80ccff; + color: #002e4c; +} +html.light .label.label-decentralized-exchange:hover .badge-pill, +html.light .label.label-smart-contracts:hover .badge-pill, +html.light .label.label-transaction-sending:hover .badge-pill, +html.light .label.label-分散型取引所:hover .badge-pill, +html.light .label.label-スマートコントラクト:hover .badge-pill, +html.light .label.label-トランザクション送信:hover .badge-pill, +html.light .label.label-use-developer_tooling:hover .badge-pill, +html.light .label.label-use-payments:hover .badge-pill, +html.light .label.blog-category-developer_reflections:hover .badge-pill, +html.light .label.blog-category-case_study:hover .badge-pill, +html.light .label.chip-blue:hover .badge-pill { + color: #80ccff; + background-color: #002e4c; +} +.label.label-escrow, +.label.label-tokens, +.label.label-development, +.label.label-トークン, +.label.label-開発, +.label.label-use-wallet, +.label.label-use-sustainability, +.label.blog-category-advisories, +.label.chip-orange { + background-color: #4c1a00; + color: #ffaa80; +} +.label.label-escrow .badge-pill, +.label.label-tokens .badge-pill, +.label.label-development .badge-pill, +.label.label-トークン .badge-pill, +.label.label-開発 .badge-pill, +.label.label-use-wallet .badge-pill, +.label.label-use-sustainability .badge-pill, +.label.blog-category-advisories .badge-pill, +.label.chip-orange .badge-pill { + background-color: #ffaa80; + color: #4c1a00; +} +.label.label-escrow:hover, +.label.label-tokens:hover, +.label.label-development:hover, +.label.label-トークン:hover, +.label.label-開発:hover, +.label.label-use-wallet:hover, +.label.label-use-sustainability:hover, +.label.blog-category-advisories:hover, +.label.chip-orange:hover { + background-color: #802b00; + color: #ffccb2; +} +.label.label-escrow:hover .badge-pill, +.label.label-tokens:hover .badge-pill, +.label.label-development:hover .badge-pill, +.label.label-トークン:hover .badge-pill, +.label.label-開発:hover .badge-pill, +.label.label-use-wallet:hover .badge-pill, +.label.label-use-sustainability:hover .badge-pill, +.label.blog-category-advisories:hover .badge-pill, +.label.chip-orange:hover .badge-pill { + background-color: #ffccb2; + color: #802b00; +} +html.light .label.label-escrow, +html.light .label.label-tokens, +html.light .label.label-development, +html.light .label.label-トークン, +html.light .label.label-開発, +html.light .label.label-use-wallet, +html.light .label.label-use-sustainability, +html.light .label.blog-category-advisories, +html.light .label.chip-orange { + background-color: #ffccb2; + color: #802b00; +} +html.light .label.label-escrow .badge-pill, +html.light .label.label-tokens .badge-pill, +html.light .label.label-development .badge-pill, +html.light .label.label-トークン .badge-pill, +html.light .label.label-開発 .badge-pill, +html.light .label.label-use-wallet .badge-pill, +html.light .label.label-use-sustainability .badge-pill, +html.light .label.blog-category-advisories .badge-pill, +html.light .label.chip-orange .badge-pill { + color: #ffccb2; + background-color: #802b00; +} +html.light .label.label-escrow:hover, +html.light .label.label-tokens:hover, +html.light .label.label-development:hover, +html.light .label.label-トークン:hover, +html.light .label.label-開発:hover, +html.light .label.label-use-wallet:hover, +html.light .label.label-use-sustainability:hover, +html.light .label.blog-category-advisories:hover, +html.light .label.chip-orange:hover { + background-color: #ffaa80; + color: #4c1a00; +} +html.light .label.label-escrow:hover .badge-pill, +html.light .label.label-tokens:hover .badge-pill, +html.light .label.label-development:hover .badge-pill, +html.light .label.label-トークン:hover .badge-pill, +html.light .label.label-開発:hover .badge-pill, +html.light .label.label-use-wallet:hover .badge-pill, +html.light .label.label-use-sustainability:hover .badge-pill, +html.light .label.blog-category-advisories:hover .badge-pill, +html.light .label.chip-orange:hover .badge-pill { + color: #ffaa80; + background-color: #4c1a00; +} +.label.label-fees, +.label.label-payments, +.label.label-data-retention, +.label.label-手数料, +.label.label-支払い, +.label.label-データ保持, +.label.label-use-exchanges, +.label.label-use-custody, +.label.blog-category-security, +.label.chip-magenta { + background-color: #4c0026; + color: #ff80bf; +} +.label.label-fees .badge-pill, +.label.label-payments .badge-pill, +.label.label-data-retention .badge-pill, +.label.label-手数料 .badge-pill, +.label.label-支払い .badge-pill, +.label.label-データ保持 .badge-pill, +.label.label-use-exchanges .badge-pill, +.label.label-use-custody .badge-pill, +.label.blog-category-security .badge-pill, +.label.chip-magenta .badge-pill { + background-color: #ff80bf; + color: #4c0026; +} +.label.label-fees:hover, +.label.label-payments:hover, +.label.label-data-retention:hover, +.label.label-手数料:hover, +.label.label-支払い:hover, +.label.label-データ保持:hover, +.label.label-use-exchanges:hover, +.label.label-use-custody:hover, +.label.blog-category-security:hover, +.label.chip-magenta:hover { + background-color: #80003f; + color: #ffb2d8; +} +.label.label-fees:hover .badge-pill, +.label.label-payments:hover .badge-pill, +.label.label-data-retention:hover .badge-pill, +.label.label-手数料:hover .badge-pill, +.label.label-支払い:hover .badge-pill, +.label.label-データ保持:hover .badge-pill, +.label.label-use-exchanges:hover .badge-pill, +.label.label-use-custody:hover .badge-pill, +.label.blog-category-security:hover .badge-pill, +.label.chip-magenta:hover .badge-pill { + background-color: #ffb2d8; + color: #80003f; +} +html.light .label.label-fees, +html.light .label.label-payments, +html.light .label.label-data-retention, +html.light .label.label-手数料, +html.light .label.label-支払い, +html.light .label.label-データ保持, +html.light .label.label-use-exchanges, +html.light .label.label-use-custody, +html.light .label.blog-category-security, +html.light .label.chip-magenta { + background-color: #ffb2d8; + color: #80003f; +} +html.light .label.label-fees .badge-pill, +html.light .label.label-payments .badge-pill, +html.light .label.label-data-retention .badge-pill, +html.light .label.label-手数料 .badge-pill, +html.light .label.label-支払い .badge-pill, +html.light .label.label-データ保持 .badge-pill, +html.light .label.label-use-exchanges .badge-pill, +html.light .label.label-use-custody .badge-pill, +html.light .label.blog-category-security .badge-pill, +html.light .label.chip-magenta .badge-pill { + color: #ffb2d8; + background-color: #80003f; +} +html.light .label.label-fees:hover, +html.light .label.label-payments:hover, +html.light .label.label-data-retention:hover, +html.light .label.label-手数料:hover, +html.light .label.label-支払い:hover, +html.light .label.label-データ保持:hover, +html.light .label.label-use-exchanges:hover, +html.light .label.label-use-custody:hover, +html.light .label.blog-category-security:hover, +html.light .label.chip-magenta:hover { + background-color: #ff80bf; + color: #4c0026; +} +html.light .label.label-fees:hover .badge-pill, +html.light .label.label-payments:hover .badge-pill, +html.light .label.label-data-retention:hover .badge-pill, +html.light .label.label-手数料:hover .badge-pill, +html.light .label.label-支払い:hover .badge-pill, +html.light .label.label-データ保持:hover .badge-pill, +html.light .label.label-use-exchanges:hover .badge-pill, +html.light .label.label-use-custody:hover .badge-pill, +html.light .label.blog-category-security:hover .badge-pill, +html.light .label.chip-magenta:hover .badge-pill { + color: #ff80bf; + background-color: #4c0026; +} +.tag-cloud .list-inline-item { + margin-top: 1.5rem; +} +.command-list-wrapper { + position: sticky; + top: calc(var(--navbar-height) + var(--toc-offset-top)); + max-height: calc(100vh - var(--navbar-height) - var(--toc-offset-top)); + overflow-y: auto; + width: var(--toc-width); +} +#tx-sender-history .list-group-item { + font-size: small; + color: #454549; +} +.response-metadata .timestamp { + color: #454549; +} +.throbber { + width: 24px; + height: 24px; +} +#connection-status .card-body { + border-left: 0; +} +#connection-status-item.active { + background-color: #32e685; + border-color: #32e685; +} +.api-input-area .btn-group > .send-request.btn { + border-bottom-right-radius: 4px; + border-top-right-radius: 4px; +} +#tx-sender-history ul { + overflow: auto; + height: 220px; + border: 1px solid #e0e0e1; +} +.progress small { + margin-top: 0.5rem; +} +.page-tx-sender .input-group .form-control, +.interactive-block-ui .input-group .form-control { + flex: 1 1 20%; + height: auto; +} +.bootstrap-growl { + max-width: 90vw !important; + overflow: hidden; +} +.list-group-item-danger, +#tx-sender-history .list-group-item-danger { + background-color: #ff80bf; + color: #000; +} +.list-group-item-danger a, +#tx-sender-history .list-group-item-danger a { + color: #000; +} +.list-group-item-danger a:hover, +#tx-sender-history .list-group-item-danger a:hover { + color: #000; + text-decoration: underline; +} +.rpc-tool .main h1::before, +.rpc-tool .main h2::before, +.rpc-tool .main h3::before { + display: none; +} +.form-text a { + text-decoration: underline; +} +@media print { + .multicode > div { + display: block !important; + } + .multicode > em, + .multicode > p > em { + display: block !important; + page-break-after: avoid; + } + .multicode > p { + display: block !important; + } + .code_toggler { + display: none; + } + pre { + white-space: pre-wrap; + max-height: none !important; + overflow: visible; + page-break-inside: auto; + word-wrap: break-word; + } + pre code { + white-space: pre-wrap !important; + color: #22252b !important; + } + code { + white-space: pre-wrap !important; + color: #22252b !important; + } + .codehilite .n, + .codehilite .na, + .codehilite .nb, + .codehilite .nc, + .codehilite .nd, + .codehilite .ne, + .codehilite .nf, + .codehilite .ni, + .codehilite .nl, + .codehilite .nn, + .codehilite .nt, + .codehilite .nv, + .codehilite .nx, + .codehilite .bp, + .codehilite .fm, + .codehilite .py { + color: #22252b; + } + article a[title='Source'] { + float: none; + } + header, + footer, + aside { + display: none !important; + } + .navbar { + display: none !important; + } + article, + #main_content_body { + position: static; + display: block; + width: auto; + height: auto; + color: #000 !important; + max-width: 100%; + overflow: visible !important; + } + body { + overflow: visible; + background: #fff; + } + h1, + h2, + h3, + h4, + h5, + h6, + .h1, + .h2, + .h3, + .h4, + .h5, + .h6 { + color: #000; + } + .interactive-block { + display: none; + } + .container { + margin-top: 1rem !important; + } +} +#home-purple { + position: absolute; + left: 0; + top: -400px; +} +#home-green { + position: absolute; + right: -3px; + top: 60px; +} +.sidelinks:hover { + color: #9a52ff; +} +.sidelinks.active { + color: #9a52ff; + font-weight: bold; +} +.page-home #home-hero-container { + display: flex; + justify-content: center; + align-items: center; + width: 100%; + padding-top: 54.8%; + overflow: hidden; +} +.page-home #home-hero-graphic { + width: 100%; + max-width: 856px; + height: auto; + object-fit: cover; + content: url('../img/home-hero.svg'); + margin-bottom: 24px; + display: block; + margin-left: auto; + margin-right: auto; +} +@media (min-width: 992px) { + .page-home #home-hero-graphic { + min-height: 470px; + } +} +@media (max-width: 991px) and (min-width: 540px) { + .page-home #home-hero-graphic { + min-height: 250px; + } +} +@media (max-width: 539px) { + .page-home #home-hero-graphic { + min-height: 170px; + } +} +.page-home #benefits-list #public { + content: url('../img/icons/public.svg'); +} +.page-home #benefits-list #streamlined { + content: url('../img/icons/streamlined.svg'); +} +.page-home #benefits-list #performance { + content: url('../img/icons/performance.svg'); +} +.page-home #benefits-list #low-cost { + content: url('../img/icons/low-cost.svg'); +} +.page-home #benefits-list #community { + content: url('../img/icons/community.svg'); +} +.page-home #benefits-list #reliability { + content: url('../img/icons/reliability.svg'); +} +.page-home #advanced-features .card:nth-child(1) .card-footer { + background-image: url('../img/cards/3col-pink-purple.svg'); +} +.page-home #advanced-features .card:nth-child(2) .card-footer { + background-image: url('../img/cards/3col-neutral-blue.svg'); +} +.page-home #advanced-features .card:nth-child(3) .card-footer { + background-image: url('../img/cards/3col-light-green.svg'); +} +.page-home #advanced-features .card:nth-child(4) .card-footer { + background-image: url('../img/cards/3col-orange.svg'); +} +.page-home #advanced-features .card:nth-child(5) .card-footer { + background-image: url('../img/cards/3col-purple-blue-2.svg'); +} +.page-home #get-started .card:nth-child(1) .card-footer { + background-image: url('../img/cards/3col-orange-yellow.svg'); +} +.page-home #get-started .card:nth-child(2) .card-footer { + background-image: url('../img/cards/3col-magenta-orange.svg'); +} +.page-home #get-started .card:nth-child(3) .card-footer { + background-image: url('../img/cards/3col-purple-blue-green.svg'); +} +.page-home #get-started .card:nth-child(4) .card-footer { + background-image: url('../img/cards/3col-light-blue.svg'); +} +.page-home #get-started .card:nth-child(5) .card-footer { + background-image: url('../img/cards/3col-green-blue.svg'); +} +#embedded-payments-list #digital-wallets { + content: url('../img/uses/payments/digital-wallet.png'); +} +#embedded-payments-list #cross-border-remittance { + content: url('../img/uses/payments/cross-border.png'); +} +#embedded-payments-list #regulated-foreign-exchange { + content: url('../img/uses/payments/regulated.png'); +} +#embedded-payments-list #merchant-settlement { + content: url('../img/uses/payments/merchant-settlement.png'); +} +#embedded-payments-list #b2b-payment-rails { + content: url('../img/uses/payments/b2b-payment.png'); +} +#embedded-payments-list #compliance-first-payment-acceptance { + content: url('../img/uses/payments/compliance.png'); +} +.cta { + position: absolute; +} +.cta-top-left { + top: 0; + left: 0; +} +.cta-bottom-right { + bottom: 0; + right: 0; +} +.landing-bg { + opacity: 0.6; +} +@media (min-width: 768px) { + .landing-bg { + opacity: 1; + } +} +.landing-builtin-bg::before { + content: ''; + position: absolute; + top: 0; + left: 0; + background-repeat: no-repeat; + background-position-x: left; + background-position-y: top; + opacity: 0.6; +} +@media (min-width: 768px) { + .landing-builtin-bg::before { + opacity: 1; + } +} +#xrp-overview-blue { + position: absolute; + top: 0; + left: 0; +} +@media (max-width: 767.98px) { + #xrp-mark-overview { + height: 40px; + margin-top: 16px; + } +} +#wallets #wallet-ledger { + content: url('../img/wallets/ledger.svg'); +} +#wallets #wallet-secalot { + content: url('../img/wallets/secalot.svg'); +} +#wallets #wallet-trezor { + content: url('../img/wallets/trezor.svg'); +} +#wallets #wallet-xumm { + content: url('../img/wallets/xumm.svg'); +} +#wallets #wallet-trust { + content: url('../img/wallets/trust.svg'); +} +#wallets #wallet-gatehub { + content: url('../img/wallets/gatehub.svg'); +} +#wallets #wallet-towo { + content: url('../img/wallets/towo.svg'); +} +#wallets #wallet-keystone { + content: url('../img/wallets/keystone.svg'); +} +#wallets #wallet-dcent { + content: url('../img/wallets/dcent.svg'); +} +#wallets #wallet-coin { + content: url('../img/wallets/coin.svg'); +} +#wallets #wallet-gem { + content: url('../img/wallets/gem.svg'); +} +#wallets #wallet-joey { + content: url('../img/wallets/joey.svg'); +} +#wallets #wallet-bitfrost { + content: url('../img/wallets/bitfrost.png'); +} +#wallets #wallet-crossmark { + content: url('../img/wallets/crossmark.png'); +} +#top-exchanges #exch-bitstamp { + content: url('../img/exchanges/bitstamp.svg'); +} +#top-exchanges #exch-kraken { + content: url('../img/exchanges/kraken.svg'); +} +#top-exchanges #exch-cex-io { + content: url('../img/exchanges/cex-io.svg'); +} +#top-exchanges #exch-liquid { + content: url('../img/exchanges/liquid.svg'); +} +#top-exchanges #exch-lmax { + content: url('../img/exchanges/lmax.svg'); +} +#top-exchanges #exch-bitfinex { + content: url('../img/exchanges/bitfinex.svg'); +} +#top-exchanges #exch-etoro { + content: url('../img/exchanges/etoro.svg'); +} +#top-exchanges #exch-bittrex { + content: url('../img/exchanges/bittrex.png'); +} +#top-exchanges #exch-currency-com { + content: url('../img/exchanges/currency-com.png'); +} +#top-exchanges #exch-ftx { + content: url('../img/exchanges/ftx.png'); +} +#xrpl-overview-purple { + position: absolute; + top: 40px; + left: 0; +} +@media (max-width: 767.98px) { + #xrpl-overview-purple { + top: 0; + left: -20vw; + } +} +#xrpl-overview-orange { + position: absolute; + top: 80px; + right: -4px; +} +#use-cases-orange { + position: absolute; + top: -480px; + right: -4px; +} +#validator-graphic { + content: url(../img/validators.svg); +} +.page-uses .container-new { + padding-left: 16px; + padding-right: 16px; +} +.page-uses h1 { + font-size: 42px; +} +.page-uses::before { + transform: scaleX(-1); + background-image: url(../img/backgrounds/use-cases-blue.svg); +} +.page-uses .card-grid { + grid-gap: 8px; +} +.page-uses .card-grid img { + max-height: 40px; +} +.page-uses .modal { + padding: 0; +} +.page-uses .modal-content { + position: relative; + display: flex; + flex-direction: column; + width: 100%; + pointer-events: auto; + background-color: #000; + background-clip: padding-box; + border: none; + border-radius: 0; + box-shadow: none; + outline: none; + background: #111112; +} +.page-uses .modal-header { + border: none; + background: #111112; + box-shadow: 0px 1px 2px #000; +} +.page-uses .modal-header .cancel .chevron { + transform: rotate(90deg); +} +.page-uses .modal-header .apply .chevron { + transform: rotate(-90deg); +} +.page-uses .modal-footer { + border: none; + background: #111112; + box-shadow: 0px -1px 2px #000; + align-items: unset; + padding: 0.75rem; + flex-direction: column; + flex-wrap: wrap; +} +.page-uses .card-title { + margin-bottom: 0.5rem; + line-height: 26px; +} +.page-uses .card-uses { + padding: 16px; + margin: 0; + text-decoration: none; + transition: all 0.35s ease-out; +} +.page-uses .card-uses:hover { + text-decoration: none; + color: #e0e0e1; + transform: translateY(-16px); + text-decoration: none; +} +.page-uses .card-body { + background: #232325; + border-radius: 8px; + height: 100%; + padding: 32px; + margin: 0; +} +.page-uses .page-events .label { + font-weight: normal; + font-size: 14px; + margin: 0; + padding-left: 26px; +} +.page-uses .category-header { + font-weight: bold; + color: #c1c1c2; +} +.page-uses .light .category-checkbox label { + color: #fff; +} +.page-uses .category-checkbox { + display: flex; + align-items: center; +} +.page-uses .category-checkbox label { + font-weight: normal; + font-size: 14px; + margin: 0; + padding-left: 26px; +} +.page-uses .category_count { + margin-left: 8px; + padding: 2px 16px; + width: 24px; + height: 16px; + background: #350080; + border-radius: 100px; + font-weight: 600; + font-size: 12px; + line-height: 16px; + color: #b480ff; +} +.page-uses .category_sidebar { + position: sticky; + top: 10px; +} +.page-uses #infrastructure { + content: url('../img/icons/usecases/ic_infrastructure.png'); +} +.page-uses #developer_tooling { + content: url('../img/icons/usecases/ic_developer_tooling.png'); +} +.page-uses #interoperability { + content: url('../img/icons/usecases/ic_interoperability.png'); +} +.page-uses #wallet { + content: url('../img/icons/usecases/ic_wallet.png'); +} +.page-uses #nfts { + content: url('../img/icons/usecases/ic_nfts.png'); +} +.page-uses #exchanges { + content: url('../img/icons/usecases/ic_exchanges.png'); +} +.page-uses #gaming { + content: url('../img/icons/usecases/ic_gaming.png'); +} +.page-uses #security { + content: url('../img/icons/usecases/ic_security.png'); +} +.page-uses #payments { + content: url('../img/icons/usecases/ic_payments.png'); +} +.page-uses #web_monetization { + content: url('../img/icons/usecases/ic_web_monetization.png'); +} +.page-uses #sustainability { + content: url('../img/icons/usecases/ic_sustainability.png'); +} +.page-uses #cbdc { + content: url('../img/icons/usecases/ic_cbdc.png'); +} +.page-uses #other { + content: url('../img/icons/usecases/ic_other.png'); +} +.page-uses #carbon_markets { + content: url('../img/icons/usecases/ic_carbon_markets.png'); +} +.page-uses #custody { + content: url('../img/icons/usecases/ic_custody.png'); +} +.page-uses #defi { + content: url('../img/icons/usecases/ic_defi.png'); +} +.page-uses #use_case_companies_list #bithomp .biz-logo { + max-height: 40px; + content: url('../img/uses/bithomp.svg'); +} +.page-uses #use_case_companies_list #onthedex .biz-logo { + max-height: 40px; + content: url('../img/uses/onthedex.svg'); +} +.page-uses #use_case_companies_list #gatehub .biz-logo { + max-height: 40px; + content: url('../img/uses/gatehub.svg'); +} +.page-uses #use_case_companies_list #towo-labs .biz-logo { + max-height: 40px; + content: url('../img/uses/towo-labs.svg'); +} +.page-uses #use_case_companies_list #xrp-toolkit .biz-logo { + max-height: 40px; + content: url('../img/uses/xrp-toolkit.svg'); +} +.page-uses #use_case_companies_list #xrpl-org-ledger-explorer .biz-logo { + max-height: 40px; + content: url('../img/uses/xrpl-org-ledger-explorer.svg'); +} +.page-uses #use_case_companies_list #xrpl-rosetta .biz-logo { + max-height: 40px; + content: url('../img/uses/xrpl-rosetta.svg'); +} +.page-uses #use_case_companies_list #xrpscan .biz-logo { + max-height: 40px; + content: url('../img/uses/xrpscan.svg'); +} +.page-uses #use_case_companies_list #evernode .biz-logo { + max-height: 40px; + content: url('../img/uses/evernode.svg'); +} +.page-uses #use_case_companies_list #cryptum .biz-logo { + max-height: 40px; + content: url('../img/uses/cryptum.svg'); +} +.page-uses #use_case_companies_list #x-tokenize .biz-logo { + max-height: 40px; + content: url('../img/uses/x-tokenize.svg'); +} +.page-uses #use_case_companies_list #multichain .biz-logo { + max-height: 40px; + content: url('../img/uses/multichain.svg'); +} +.page-uses #use_case_companies_list #xumm-wallet .biz-logo { + max-height: 40px; + content: url('../img/uses/xumm-wallet.svg'); +} +.page-uses #use_case_companies_list #gem-wallet .biz-logo { + max-height: 40px; + content: url('../img/uses/gem-wallet.svg'); +} +.page-uses #use_case_companies_list #aesthetes .biz-logo { + max-height: 40px; + content: url('../img/uses/aesthetes.svg'); +} +.page-uses #use_case_companies_list #audiotarky .biz-logo { + max-height: 40px; + content: url('../img/uses/audiotarky.svg'); +} +.page-uses #use_case_companies_list #xrp-cafe .biz-logo { + max-height: 40px; + content: url('../img/uses/xrp-cafe.svg'); +} +.page-uses #use_case_companies_list #nft-master .biz-logo { + max-height: 40px; + content: url('../img/uses/nft-master.svg'); +} +.page-uses #use_case_companies_list #onxrp .biz-logo { + max-height: 40px; + content: url('../img/uses/onxrp.svg'); +} +.page-uses #use_case_companies_list #peerkat .biz-logo { + max-height: 40px; + content: url('../img/uses/peerkat.svg'); +} +.page-uses #use_case_companies_list #sologenic-nft .biz-logo { + max-height: 40px; + content: url('../img/uses/sologenic-nft.svg'); +} +.page-uses #use_case_companies_list #sologenic-dex .biz-logo { + max-height: 40px; + content: url('../img/uses/sologenic-dex.svg'); +} +.page-uses #use_case_companies_list #xp-market .biz-logo { + max-height: 40px; + content: url('../img/uses/xp-market.svg'); +} +.page-uses #use_case_companies_list #ledger-city .biz-logo { + max-height: 40px; + content: url('../img/uses/ledger-city.svg'); +} +.page-uses #use_case_companies_list #forte .biz-logo { + max-height: 40px; + content: url('../img/uses/forte.svg'); +} +.page-uses #use_case_companies_list #futureverse .biz-logo { + max-height: 40px; + content: url('../img/uses/futureverse.svg'); +} +.page-uses #use_case_companies_list #first-ledger-bot .biz-logo { + max-height: 40px; + content: url('../img/uses/first-ledger-bot.svg'); +} +.page-uses #use_case_companies_list #moai-finance .biz-logo { + max-height: 40px; + content: url('../img/uses/moai-finance.svg'); +} +.page-uses #use_case_companies_list #orchestra-finance .biz-logo { + max-height: 40px; + content: url('../img/uses/orchestra-finance.svg'); +} +.page-uses #use_case_companies_list #anchain-ai .biz-logo { + max-height: 40px; + content: url('../img/uses/anchain-ai.svg'); +} +.page-uses #use_case_companies_list #coil .biz-logo { + max-height: 40px; + content: url('../img/uses/coil.svg'); +} +.page-uses #use_case_companies_list #carbonland-trust .biz-logo { + max-height: 40px; + content: url('../img/uses/carbonland-trust.svg'); +} +.page-uses #use_case_companies_list #casino-coin .biz-logo { + max-height: 40px; + content: url('../img/uses/casino-coin.svg'); +} +.page-uses #use_case_companies_list #bitgo .biz-logo { + max-height: 40px; + content: url('../img/uses/bitgo.svg'); +} +.page-uses #use_case_companies_list #bitpay .biz-logo { + max-height: 40px; + content: url('../img/uses/bitpay.svg'); +} +.page-uses #use_case_companies_list #ripples-on-demand-liquidity .biz-logo { + max-height: 40px; + content: url('../img/uses/ripples-on-demand-liquidity.svg'); +} +.page-uses #use_case_companies_list #ripples-cbdc-platform .biz-logo { + max-height: 40px; + content: url('../img/uses/ripples-cbdc-platform.svg'); +} +.page-uses #use_case_companies_list #momento .biz-logo { + max-height: 40px; + content: url('../img/uses/momento.svg'); +} +.page-uses #use_case_companies_list #zerpmon .biz-logo { + max-height: 40px; + content: url('../img/uses/zerpmon.png'); +} +.page-uses #use_case_companies_list #joey-wallet .biz-logo { + max-height: 40px; + content: url('../img/uses/joey-wallet.svg'); +} +.page-uses #use_case_companies_list #Crossmark .biz-logo { + max-height: 40px; + content: url('../img/uses/Crossmark.png'); +} +.page-uses #use_case_companies_list #Edge .biz-logo { + max-height: 40px; + content: url('../img/uses/Edge.png'); +} +.page-uses .orchestra-finance { + max-height: 52px !important; + margin: 0 !important; +} +.page-uses #use_case_companies_list #first-ledger-bot .biz-logo { + max-height: 81px !important; +} +.page-uses #use_case_companies_list #zerpmon .biz-logo { + max-height: 81px !important; +} +@media (min-width: 992px) { + .page-uses h1 { + font-size: 62px; + } + .page-uses .container-new { + padding-left: 64px; + padding-right: 64px; + } + .page-uses .card-grid img { + max-height: 48px; + } + .page-uses .card-grid { + grid-gap: 48px; + } + .page-uses .card-uses { + padding: 24px; + } +} +#history-orange { + position: absolute; + top: 0; + right: -4px; +} +#history-purple { + position: absolute; + top: -480px; + left: -4px; +} +.hidden-section { + overflow: hidden; + visibility: hidden; + height: 0; +} +.hidden-section.show { + overflow: auto; + visibility: visible; + height: auto; +} +#impact-green { + position: absolute; + top: 0; + left: -4px; + rotate: 180deg; +} +#impact-purple { + position: absolute; + top: 100px; + right: -4px; +} +#impact-magenta { + position: absolute; + top: 100px; + right: -4px; +} +#foundation-magenta { + position: absolute; + top: 0px; + left: 0px; +} +#foundation-orange { + position: absolute; + top: 40px; + right: -4px; +} +.page-impact #map-light { + display: none; +} +.page-impact #map-dark { + display: block; +} +.page-impact .connect-list #connect-01 { + content: url('../img/impact/connect-01.svg'); +} +.page-impact .connect-list #connect-02 { + content: url('../img/impact/connect-02.svg'); +} +.page-impact .connect-list #connect-03 { + content: url('../img/impact/connect-03.svg'); +} +.page-impact .connect-list #connect-04 { + content: url('../img/impact/connect-04.svg'); +} +.page-funding .funding-list #funding-01 { + content: url('../img/funding/funding-01.svg'); +} +.page-funding .funding-list #funding-02 { + content: url('../img/funding/funding-02.svg'); +} +.page-funding .funding-list #funding-03 { + content: url('../img/funding/funding-03.svg'); +} +.page-funding .funding-list #funding-04 { + content: url('../img/funding/funding-04.svg'); +} +.page-funding #funding-orange { + position: absolute; + top: 132px; + left: -4px; +} +@media (min-width: 992px) { + .page-funding .funding-box { + min-height: 200px; + } +} +.page-ambassadors #benefits-list #benefits-01 { + content: url('../img/ambassadors/benefits-01.svg'); +} +.page-ambassadors #benefits-list #benefits-02 { + content: url('../img/ambassadors/benefits-02.svg'); +} +.page-ambassadors #benefits-list #benefits-03 { + content: url('../img/ambassadors/benefits-03.svg'); +} +.page-ambassadors #benefits-list #benefits-04 { + content: url('../img/ambassadors/benefits-04.svg'); +} +.page-ambassadors #benefits-list #benefits-05 { + content: url('../img/ambassadors/benefits-05.svg'); +} +.page-ambassadors #benefits-list #benefits-06 { + content: url('../img/ambassadors/benefits-06.svg'); +} +.page-ambassadors #eligibility-list #eligibility-01 { + content: url('../img/ambassadors/eligibility-01.svg'); +} +.page-ambassadors #eligibility-list #eligibility-02 { + content: url('../img/ambassadors/eligibility-02.svg'); +} +.page-ambassadors #eligibility-list #eligibility-03 { + content: url('../img/ambassadors/eligibility-03.svg'); +} +.page-ambassadors #eligibility-list #eligibility-04 { + content: url('../img/ambassadors/eligibility-04.svg'); +} +.page-ambassadors #eligibility-list #eligibility-05 { + content: url('../img/ambassadors/eligibility-05.svg'); +} +.page-ambassadors .btn { + padding: 0.75rem; +} +.page-ambassadors #container-scroll { + height: 160px; + position: relative; + overflow: hidden; + margin-top: 80px; + margin-bottom: 64px; +} +.page-ambassadors .photobanner { + position: absolute; + top: 0px; + left: 0px; + overflow: hidden; + white-space: nowrap; + animation: bannermove 40s linear infinite; +} +.page-ambassadors .photobanner-bottom { + top: 112px; +} +.page-ambassadors .photobanner img { + margin: 0 0.5em; +} +@keyframes bannermove { + 0% { + transform: translate(0, 0); + } + 100% { + transform: translate(-50%, 0); + } +} +.page-ambassadors #carouselSlidesOnly { + height: 392px; + margin-bottom: 40px; +} +@media (min-width: 992px) { + .page-ambassadors #carouselSlidesOnly { + height: 320px; + margin-bottom: 104px; + } +} +.page-ambassadors h6 { + font-size: 1.25rem; +} +.page-ambassadors .btn-arrow::after { + display: inline-block; + content: url(../img/icons/arrow-right-purple.svg); + vertical-align: middle; + padding-left: 8px; + transition: transform 0.3s ease-out; +} +.page-ambassadors .btn-arrow:hover { + text-decoration: none; + background: none !important; + border: none; +} +.page-ambassadors .btn-arrow:hover::after { + background-position: left 4px bottom 4px; + transform: translateX(4px); +} +.autoscroll-content { + animation: autoscroll 15s linear infinite; + white-space: nowrap; + overflow: hidden; + max-width: 300px; +} +#community-magenta { + position: absolute; + top: 0px; + left: 0px; +} +#community-purple { + position: absolute; + top: 160px; + right: 0px; +} +.page-events #event-hero-image { + height: 100%; + min-height: 209px; + background: url(../img/events/event-hero1@2x.png); + background-size: contain; + background-repeat: no-repeat; + background-position: center; +} +.page-events #events-orange { + position: absolute; + top: 0px; + right: 0px; +} +.page-events .event-hero { + color: #f5f5f7; +} +.page-events .event-hero p { + font-weight: 500; + font-size: 24px; + line-height: 32px; +} +.page-events .event-save-date { + color: #fff; + font-weight: bold; + font-size: 20px; + line-height: 26px; +} +.page-events .event-small-gray { + color: #e0e0e1; +} +.page-events .btn { + padding: 0.75rem; +} +.page-events .event-card { + max-width: 311px; + margin: 32px auto; + transition: all 0.35s ease-out; + position: relative; + display: flex; + flex-direction: column; + min-width: 0; + word-wrap: break-word; + background-clip: border-box; + background-color: #232325; + box-shadow: 0px 5px 40px #000; + border: 1px solid rgba(0, 0, 0, 0.125); + border-radius: 8px; + font-size: 16px; + line-height: 24px; + color: #e0e0e1; +} +.page-events .event-card .event-card-header { + position: relative; + height: 176px; + background-size: contain !important; + width: 100%; + border-radius: 8px 8px 0 0; +} +.page-events .event-card .event-card-title { + position: absolute; + bottom: 32px; + padding: 0 32px; + color: #f5f5f7; + font-weight: bold; + font-size: 20px; + line-height: 28px; +} +.page-events .event-card .event-card-body { + padding: 32px; +} +.page-events .event-card .event-card-footer { + padding: 0 32px 32px; +} +.page-events .event-card .event-card-footer .icon::before { + height: 24px; + width: 24px; + content: ''; + margin-right: 8px; + background-size: contain; + background-repeat: no-repeat; +} +.page-events .event-card .icon-date::before { + background: url(../img/events/event-date.svg); +} +.page-events .event-card .icon-location::before { + background: url(../img/events/event-location.svg); +} +@media (min-width: 992px) { + .page-events .event-card { + max-width: 347px; + margin: 32px; + } + .page-events .event-card-header { + height: 197px !important; + } +} +.page-events a.event-card:hover { + transform: translateY(-16px); + text-decoration: none; +} +.page-events label { + margin: 0; + padding-left: 8px; + color: #fff; +} +.page-events .events-filter h6 { + font-size: 16px; +} +.page-events .events-filter { + height: 20px; + width: 20px; +} +.page-events .events-filter[type='checkbox']::before { + position: relative; + display: block; + width: 20px; + height: 20px; + content: ''; + background: #111112; + border-radius: 4px; + border-width: 2px; + border-style: solid; + border-color: #a2a2a4; +} +.page-events .events-filter[type='checkbox']::after { + position: relative; + display: block; + top: -20px; + width: 20px; + height: 20px; + content: ''; + background-repeat: no-repeat; + background-position: center; + border-radius: 4px; + border-width: 2px; + border-style: solid; + border-color: #a2a2a4; +} +.page-events .events-filter[type='checkbox']:checked::before { + background: #111112; + border: none; + border-radius: 0; +} +.page-events .events-filter[type='checkbox']:checked::after { + background-image: url(../img/events/event-check.svg); + background-repeat: no-repeat; + background-position: center; + background-color: #7919ff; + border-width: 2px; + border-style: solid; + border-color: #7919ff; + border-radius: 4px; +} +.page-events .events-filter[type='checkbox']:not(:disabled):checked:hover::after { + background-image: url(../img/events/event-check.svg); + background-repeat: no-repeat; + background-position: center; + border-width: 2px; + border-style: solid; + border-color: #5f00e5; + border-radius: 4px; +} +.page-events .events-filter[type='checkbox']:not(:disabled):hover::before { + background: #111112; + border: none; + border-radius: 0; +} +.page-events .events-filter[type='checkbox']:not(:disabled):hover::after { + background: #111112; + border: none; + border-width: 2px; + border-style: solid; + border-color: #5f00e5; + border-radius: 4px; +} +#find-us-on-platforms .card-deck .card:nth-child(1) .card-footer { + background-image: url(../img/cards/4col-light-blue-3.svg); +} +#find-us-on-platforms .card-deck .card:nth-child(2) .card-footer { + background-image: url(../img/cards/4col-purple-blue-2.svg); +} +#find-us-on-platforms .card-deck .card:nth-child(3) .card-footer { + background-image: url(../img/cards/4col-magenta-3.svg); +} +#find-us-on-platforms .card-deck .card:nth-child(4) .card-footer { + background-image: url(../img/cards/4col-green-2.svg); +} +#find-us-on-platforms .card-deck .card:nth-child(5) .card-footer { + background-image: url(../img/cards/4col-orange-yellow-2.svg); +} +#find-us-on-platforms .card-deck .card:nth-child(6) .card-footer { + background-image: url(../img/cards/4col-blue-purple.svg); +} +#find-us-on-platforms .card-deck .card:nth-child(7) .card-footer { + background-image: url(../img/cards/4col-yellow-2.svg); +} +#find-us-on-platforms .card-deck .card:nth-child(8) .card-footer { + background-image: url(../img/cards/4col-orange-2.svg); +} +#find-us-on-platforms .card-deck .card { + margin-bottom: 2.5rem; +} +.page-faq::before { + background-image: url(../img/backgrounds/faq-bg.svg); +} +@media (min-width: 768px) { + .page-faq::before { + background-size: contain; + } +} +@media (min-width: 992px) { + .page-faq article { + max-width: 704px; + margin-left: auto; + margin-right: auto; + } +} +.page-faq article h6:first-of-type { + color: #32e685; + margin-bottom: 1rem; + margin-top: 2.5rem; + font-size: 1.25rem; + line-height: 26px; + text-align: center; +} +.page-faq article h6:first-of-type .hover_anchor { + display: none; +} +@media (min-width: 992px) { + .page-faq article h6:first-of-type { + margin-top: 6.5rem; + } +} +.page-faq article h1:first-of-type { + font-size: 2.625rem; + line-height: 1.2; + margin-top: 0; + margin-bottom: 5rem; + text-align: center; +} +.page-faq article h1:first-of-type .hover_anchor { + display: none; +} +@media (min-width: 992px) { + .page-faq article h1:first-of-type { + font-size: 3.875rem; + margin-bottom: 13rem; + } +} +.page-faq h2 { + margin-top: 13rem; + font-size: 2rem; + line-height: 2.375rem; + text-align: center; + font-weight: 700; +} +.page-faq .q-wrapper, +.mini-faq .q-wrapper { + background: #232325; + border-radius: 4px; + padding: 2rem; + padding-right: 3rem; + margin-bottom: 1.5rem; + position: relative; + z-index: 5; + width: 100%; + transform: translateY(0%); +} +.page-faq .q-wrapper p a, +.mini-faq .q-wrapper p a { + text-decoration: none; + font-weight: 600; + color: #9a52ff; +} +.page-faq .q-wrapper p a:hover, +.mini-faq .q-wrapper p a:hover { + text-decoration: underline; +} +.page-faq .q-wrapper h4, +.mini-faq .q-wrapper h4 { + font-size: 1.25rem; + line-height: 1.625rem; + margin-top: 0; +} +.page-faq .q-wrapper h4::before, +.mini-faq .q-wrapper h4::before { + display: block; + content: ' '; + margin-top: -40px; + height: 40px; + visibility: hidden; + pointer-events: none; +} +.page-faq .q-wrapper h4 > a, +.mini-faq .q-wrapper h4 > a { + text-decoration: none; +} +.page-faq .q-wrapper h4 > a:hover, +.mini-faq .q-wrapper h4 > a:hover { + text-decoration: underline; + color: #fff; +} +@media (max-width: 991.98px) { + .page-faq .q-wrapper h4, + .mini-faq .q-wrapper h4 { + font-size: 1rem; + line-height: 1.5rem; + } +} +.page-faq .q-wrapper h4 .chevron, +.mini-faq .q-wrapper h4 .chevron { + position: absolute; + top: 40px; + right: 2rem; +} +.page-docs-index::before { + background-position-x: right; +} +.page-docs-index .center-search .input-group-text { + height: 56px; + padding: 0.75rem 0.75rem 0.75rem 1rem; + line-height: 2rem; +} +.page-docs-index .center-search .ds-input { + height: 56px; + padding: 0.75rem 1rem 0.75rem 0.5rem; +} +.page-docs-index #software-and-sdks .card-deck .card:nth-child(1) .card-footer { + background-image: url(../img/cards/4col-green.svg); +} +.page-docs-index #software-and-sdks .card-deck .card:nth-child(2) .card-footer { + background-image: url(../img/cards/4col-light-blue.svg); +} +.page-docs-index #software-and-sdks .card-deck .card:nth-child(3) .card-footer { + background-image: url(../img/cards/4col-orange.svg); +} +.page-docs-index #software-and-sdks .card-deck .card:nth-child(4) .card-footer { + background-image: url(../img/cards/4col-yellow.svg); +} +.page-docs-index #doc-types .card-deck .card:nth-child(1) .card-footer { + background-image: url(../img/cards/4col-orange-yellow.svg); +} +.page-docs-index #doc-types .card-deck .card:nth-child(2) .card-footer { + background-image: url(../img/cards/4col-magenta.svg); +} +.page-docs-index #doc-types .card-deck .card:nth-child(3) .card-footer { + background-image: url(../img/cards/4col-blue-green.svg); +} +.page-docs-index #doc-types .card-deck .card:nth-child(4) .card-footer { + background-image: url(../img/cards/4col-light-blue-2.svg); +} +.page-docs-index #docs-hot-topic .longform { + margin-top: 2.5rem; +} +.page-docs-index #community-heading, +.page-community #community-heading { + padding-top: 25rem; + margin-top: 0px; +} +@media (max-width: 768px) { + .page-docs-index #community-heading, + .page-community #community-heading { + padding-top: 31rem; + } +} +.page-docs-index #community-heading .hero-title, +.page-community #community-heading .hero-title { + position: absolute; + bottom: 0; + left: 50%; + transform: translateX(-50%); +} +@media (min-width: 992px) { + .page-docs-index #community-heading, + .page-community #community-heading { + padding-left: 0; + } + .page-docs-index #community-heading .hero-title, + .page-community #community-heading .hero-title { + min-width: max-content; + bottom: -83%; + } +} +.page-docs-index #community-heading .parallax, +.page-community #community-heading .parallax { + position: absolute; + -webkit-transition: all 0.1s ease; + -moz-transition: all 0.1s ease; + -ms-transition: all 0.1s ease; + -o-transition: all 0.1s ease; + transition: all 0.1s ease; +} +.page-docs-index #community-heading .one, +.page-community #community-heading .one { + top: 160px; + left: 0%; + opacity: 0.4; +} +.page-docs-index #community-heading .two, +.page-community #community-heading .two { + top: 130px; + left: 56%; + height: 320px; + opacity: 0.4; +} +.page-docs-index #community-heading .three, +.page-community #community-heading .three { + top: 145px; + right: 16%; + height: 67px; +} +.page-docs-index #community-heading .four, +.page-community #community-heading .four { + top: 374px; + left: 8%; + width: 107px; +} +.page-docs-index #community-heading .five, +.page-community #community-heading .five { + top: 476px; + width: 152px; + height: 102px; + right: 5%; + opacity: 0.4; +} +.page-docs-index #run-a-network-node .card-deck .card:nth-child(1) .card-footer, +.page-community #run-a-network-node .card-deck .card:nth-child(1) .card-footer { + background-image: url(../img/cards/4col-yellow-2.svg); +} +.page-docs-index #run-a-network-node .card-deck .card:nth-child(2) .card-footer, +.page-community #run-a-network-node .card-deck .card:nth-child(2) .card-footer { + background-image: url(../img/cards/4col-purple.svg); +} +.page-docs-index #run-a-network-node .card-deck .card:nth-child(3) .card-footer, +.page-community #run-a-network-node .card-deck .card:nth-child(3) .card-footer { + background-image: url(../img/cards/4col-magenta-2.svg); +} +.page-docs-index #run-a-network-node .card-deck .card:nth-child(4) .card-footer, +.page-community #run-a-network-node .card-deck .card:nth-child(4) .card-footer { + background-image: url(../img/cards/4col-light-green.svg); +} +.page-docs-index #run-a-network-node, +.page-community #run-a-network-node { + padding-bottom: 5rem; +} +@media (min-width: 768px) { + .page-docs-index #run-a-network-node, + .page-community #run-a-network-node { + padding-top: 104px; + padding-bottom: 104px; + } +} +.page-docs-index #run-a-network-node .text-cards, +.page-community #run-a-network-node .text-cards { + grid-gap: 40px; +} +.page-docs-index #run-a-network-node .text-cards h6::before, +.page-community #run-a-network-node .text-cards h6::before { + margin-top: 0; + height: unset; +} +.page-docs-index #run-a-network-node .text-cards a, +.page-community #run-a-network-node .text-cards a { + font-size: 1.25rem; + line-height: 26px; + color: #fff; + font-weight: bold; +} +.page-docs-index #run-a-network-node .text-cards a:hover, +.page-community #run-a-network-node .text-cards a:hover { + text-decoration: none; + background: none !important; +} +.page-docs-index #run-a-network-node .text-cards .btn-arrow::after, +.page-community #run-a-network-node .text-cards .btn-arrow::after { + display: inline-block; + content: url(../img/icons/arrow-right-purple.svg); + vertical-align: middle; + padding-left: 8px; + -webkit-transition: transform 0.3s ease-out; + -moz-transition: transform 0.3s ease-out; + -ms-transition: transform 0.3s ease-out; + -o-transition: transform 0.3s ease-out; + transition: transform 0.3s ease-out; +} +.page-docs-index #xrpl-grants, +.page-community #xrpl-grants { + padding-bottom: 5rem; +} +@media (min-width: 768px) { + .page-docs-index #xrpl-grants, + .page-community #xrpl-grants { + padding-top: 104px; + padding-bottom: 104px; + } +} +.page-docs-index #xrpl-blog, +.page-community #xrpl-blog { + padding-bottom: 5rem; +} +@media (min-width: 768px) { + .page-docs-index #xrpl-blog, + .page-community #xrpl-blog { + padding-top: 104px; + padding-bottom: 104px; + } +} +.page-docs-index #xrpl-events, +.page-community #xrpl-events { + padding-bottom: 5rem; +} +@media (min-width: 768px) { + .page-docs-index #xrpl-events, + .page-community #xrpl-events { + padding-top: 104px; + padding-bottom: 104px; + } +} +.page-docs-index #xrpl-careers, +.page-community #xrpl-careers { + padding-bottom: 5rem; +} +@media (min-width: 768px) { + .page-docs-index #xrpl-careers, + .page-community #xrpl-careers { + padding-top: 104px; + padding-bottom: 104px; + } +} +.page-docs-index #xrpl-design-assets, +.page-community #xrpl-design-assets { + padding-bottom: 5rem; +} +@media (min-width: 768px) { + .page-docs-index #xrpl-design-assets, + .page-community #xrpl-design-assets { + padding-top: 104px; + padding-bottom: 208px; + } +} +.page-community #platform-github { + content: url('../img/logos/github.svg'); +} +.page-community #platform-twitch { + content: url('../img/logos/twitch.svg'); +} +.page-community #platform-stack-overflow { + content: url('../img/logos/stack-overflow.svg'); +} +.page-community #platform-twitter { + content: url('../img/logos/twitter.svg'); +} +.page-community #platform-discord { + content: url('../img/logos/discord.svg'); +} +.page-community #platform-youtube { + content: url('../img/logos/youtube.svg'); +} +.page-community #platform-devto { + content: url('../img/logos/devto.svg'); +} +.page-references #refs-types .card-deck .card:nth-child(1) .card-footer { + background-image: url(../img/cards/3col-orange-2.svg); +} +.page-references #refs-types .card-deck .card:nth-child(2) .card-footer { + background-image: url(../img/cards/3col-green-2.svg); +} +.page-references #refs-types .card-deck .card:nth-child(3) .card-footer { + background-image: url(../img/cards/3col-magenta.svg); +} +.page-references #xrpl-protocol .card-deck .card:nth-child(1) .card-footer { + background-image: url(../img/cards/4col-light-blue-4.svg); +} +.page-references #xrpl-protocol .card-deck .card:nth-child(2) .card-footer { + background-image: url(../img/cards/4col-blue-green-2.svg); +} +.page-references #xrpl-protocol .card-deck .card:nth-child(3) .card-footer { + background-image: url(../img/cards/4col-yellow-3.svg); +} +.page-references #xrpl-protocol .card-deck .card:nth-child(4) .card-footer { + background-image: url(../img/cards/4col-purple-blue.svg); +} +.page-dev-tools #xrp-explorer .card-footer { + background-image: url('../img/cards/3-col-orange.svg'); +} +.page-dev-tools #bithomp-explorer .card-footer { + background-image: url('../img/cards/3-col-light-blue.svg'); +} +.page-dev-tools #xrpscan .card-footer { + background-image: url('../img/cards/3-col-pink.svg'); +} +.page-dev-tools #token-list .card-footer { + background-image: url('../img/cards/3-col-pink2.svg'); +} +.page-dev-tools #websocket .card-footer { + background-image: url('../img/cards/3-col-purple2.svg'); +} +.page-dev-tools #rpc .card-footer { + background-image: url('../img/cards/3-col-green.svg'); +} +.page-dev-tools #technical-explorer .card-footer { + background-image: url('../img/cards/3-col-purple-blue.svg'); +} +.page-dev-tools #faucets .card-footer { + background-image: url('../img/cards/3-col-pink2.svg'); +} +.page-dev-tools #trasaction-sender .card-footer { + background-image: url('../img/cards/3-col-light-blue2.svg'); +} +.page-dev-tools #domain .card-footer { + background-image: url('../img/cards/3-col-green-purple.svg'); +} +.page-dev-tools #xrp-ledger .card-footer { + background-image: url('../img/cards/3-col-dark-blue.svg'); +} +.page-dev-tools #binary-visualizer .card-footer { + background-image: url('../img/cards/3-col-purple-blue.svg'); +} +.page-dev-tools #token-metadata-lookup .card-footer { + background-image: url('../img/cards/3-col-pink-purple.svg'); +} +.page-dev-tools .nav-link { + color: #a2a2a4; + background-color: #111112; + border-top: none; + border-left: none; + border-right: none; + border-bottom-color: #454549; +} +@media (max-width: 767.98px) { + .page-dev-tools .nav-tabs { + display: flex; + list-style: none; + margin-left: 0; + padding-left: 0; + justify-content: space-between; + } + .page-dev-tools .nav-item { + display: inline-flex; + width: auto; + list-style: outside none none; + } + .page-dev-tools .nav-link { + display: inline-flex; + width: auto; + padding: 1em 1em; + } +} +.page-dev-tools .nav-link.active { + border-bottom-color: #9a52ff; + color: #fff; + font-weight: bold; +} +.page-dev-tools .nav-tabs { + border-bottom: 1px solid #454549; +} +.page-dev-tools .btn { + padding: 0.75rem; +} +html.light .page-dev-tools .nav-link { + background-color: #f5f5f7; +} +html.light .page-dev-tools .nav-link.active { + border-bottom-color: #9a52ff; + color: #000; + font-weight: bold; +} +html.light .page-dev-tools .nav-link { + color: #000; +} +html.light .page-dev-tools #trasaction-sender .card-footer { + background-image: url('../img/cards/3-col-light-blue-2.svg'); +} +.page-rwa-tokenization .developer-tools { + padding: 180px 0px; +} +.page-rwa-tokenization .right-arrow-item::after, +.use-case-payments .right-arrow-item::after { + display: inline-block; + content: url('../img/icons/arrow-right-purple.svg'); + position: relative; + top: 1px; + vertical-align: middle; + padding-left: 8px; + transition: transform 0.3s ease-out; +} +.page-rwa-tokenization #events-orange, +.use-case-payments #events-orange { + position: absolute; + top: 0px; + right: 0px; +} +.page-rwa-tokenization .token-title, +.use-case-payments .token-title { + color: var(--black-black-0-white, #fff); + text-align: center; + font-family: 'Work Sans'; + font-size: 62px; + font-style: normal; + font-weight: 700; + line-height: 70px; + max-width: 720px; + z-index: 1; +} +@media (max-width: 991.98px) { + .page-rwa-tokenization .token-title, + .use-case-payments .token-title { + line-height: 48px; + font-size: 42px; + text-align: left; + } +} +.page-rwa-tokenization .token-title-container, +.use-case-payments .token-title-container { + gap: 32px; + padding: 104px 40px; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; +} +.page-rwa-tokenization .token-title-container .button-container, +.use-case-payments .token-title-container .button-container { + display: flex; + flex-wrap: wrap; + gap: 32px; + justify-content: center; + align-items: center; +} +.page-rwa-tokenization .token-title-container .button-container .internal-link, +.use-case-payments .token-title-container .button-container .internal-link { + color: #9a52ff; + font-size: 16px; + font-style: normal; + font-weight: 700; + text-decoration: none; + cursor: pointer; + display: inline-flex; + align-items: center; + background: none !important; +} +@media (max-width: 767px) { + .page-rwa-tokenization .token-title-container .button-container, + .use-case-payments .token-title-container .button-container { + padding-bottom: 0px; + gap: 16px; + flex-direction: column; + width: 100%; + } + .page-rwa-tokenization .token-title-container .button-container .btn-primary.p-12, + .use-case-payments .token-title-container .button-container .btn-primary.p-12 { + width: 100%; + } + .page-rwa-tokenization .token-title-container .button-container .internal-link, + .use-case-payments .token-title-container .button-container .internal-link { + width: 100%; + text-align: center; + white-space: normal; + } +} +.page-rwa-tokenization .token-title-container .button-container .btn-primary.p-12, +.use-case-payments .token-title-container .button-container .btn-primary.p-12 { + padding: 12px; +} +.page-rwa-tokenization .token-video-container, +.use-case-payments .token-video-container { + padding: 104px 64px; + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; + gap: 48px; + max-width: 1200px; + margin: 0 auto; +} +@media (max-width: 767px) { + .page-rwa-tokenization .token-video-container, + .use-case-payments .token-video-container { + padding-bottom: 0px; + } +} +.page-rwa-tokenization .token-video-container .__button-container, +.use-case-payments .token-video-container .__button-container { + margin-top: 16px; +} +.page-rwa-tokenization .token-video-container .token-video, +.use-case-payments .token-video-container .token-video { + width: 50%; + max-width: 602px; + height: 372px; +} +.page-rwa-tokenization .token-video-container .token-video-text-container, +.use-case-payments .token-video-container .token-video-text-container { + max-width: 520px; + width: 50%; + display: flex; + flex-direction: column; + align-items: flex-start; + text-align: left; + gap: 24px; +} +.page-rwa-tokenization .token-video-container .token-video-text-container p, +.use-case-payments .token-video-container .token-video-text-container p { + color: var(--black-black-10-gray-200, #e0e0e1); + font-family: 'Work Sans'; + font-size: 24px; + font-style: normal; + font-weight: 400; + line-height: 32px; + margin: 0; +} +@media (max-width: 1145px) { + .page-rwa-tokenization .token-video-container, + .use-case-payments .token-video-container { + flex-direction: column; + gap: 40px; + padding: 80px 40px; + max-width: 800px; + } + .page-rwa-tokenization .token-video-container .token-video, + .use-case-payments .token-video-container .token-video { + width: 100%; + max-width: 100%; + height: auto; + aspect-ratio: 16/9; + } + .page-rwa-tokenization .token-video-container .token-video-text-container, + .use-case-payments .token-video-container .token-video-text-container { + width: 100%; + max-width: 100%; + align-items: flex-start; + text-align: left; + } + .page-rwa-tokenization .token-video-container .token-video-text-container p, + .use-case-payments .token-video-container .token-video-text-container p { + font-size: 22px; + line-height: 30px; + } +} +@media (max-width: 767px) { + .page-rwa-tokenization .token-video-container, + .use-case-payments .token-video-container { + padding: 60px 40px; + gap: 32px; + max-width: 100%; + } + .page-rwa-tokenization .token-video-container .token-video-text-container p, + .use-case-payments .token-video-container .token-video-text-container p { + font-size: 18px; + line-height: 26px; + } +} +.page-rwa-tokenization .token-cards-wrapper, +.use-case-payments .token-cards-wrapper { + display: flex; + justify-content: center; +} +.page-rwa-tokenization .token-cards-container, +.use-case-payments .token-cards-container { + display: flex; + padding: 100px 40px; + flex-direction: column; + justify-content: center; + align-items: start; + gap: 40px; + max-width: 1280px; +} +@media (max-width: 767px) { + .page-rwa-tokenization .token-cards-container, + .use-case-payments .token-cards-container { + padding-bottom: 0px; + } +} +.page-rwa-tokenization .token-cards-container .cards-title-token, +.use-case-payments .token-cards-container .cards-title-token { + color: var(--black-black-0-white, #fff); + font-family: 'Work Sans'; + font-size: 32px; + font-style: normal; + font-weight: 700; + line-height: 38px; + max-width: 780px; +} +.page-rwa-tokenization .token-cards-container .benefits-section, +.use-case-payments .token-cards-container .benefits-section { + display: flex; + flex-direction: column; + align-items: center; + font-family: 'Work Sans', sans-serif; + overflow: hidden; +} +.page-rwa-tokenization .token-cards-container .section-title, +.use-case-payments .token-cards-container .section-title { + font-size: 32px; + color: var(--black-black-0-white, #fff); + font-weight: 700; + line-height: 38px; + max-width: 776px; + text-align: center; + margin-bottom: 40px; +} +.page-rwa-tokenization .token-cards-container .benefits-container, +.use-case-payments .token-cards-container .benefits-container { + display: grid; + grid-template-columns: repeat(4, 1fr); + gap: 40px; + width: 100%; + max-width: 1136px; +} +@media (max-width: 1399px) { + .page-rwa-tokenization .token-cards-container .benefits-container, + .use-case-payments .token-cards-container .benefits-container { + grid-template-columns: repeat(3, 1fr); + } +} +@media (max-width: 1145px) { + .page-rwa-tokenization .token-cards-container .section-title, + .use-case-payments .token-cards-container .section-title { + font-size: 28px; + line-height: 34px; + } + .page-rwa-tokenization .token-cards-container .benefits-container, + .use-case-payments .token-cards-container .benefits-container { + grid-template-columns: repeat(2, 1fr); + gap: 32px; + } + .page-rwa-tokenization .token-cards-container .benefit-card, + .use-case-payments .token-cards-container .benefit-card { + padding: 24px; + min-height: 280px; + } +} +@media (max-width: 767px) { + .page-rwa-tokenization .token-cards-container .benefits-container, + .use-case-payments .token-cards-container .benefits-container { + grid-template-columns: 1fr; + gap: 24px; + } + .page-rwa-tokenization .token-cards-container .benefit-card, + .use-case-payments .token-cards-container .benefit-card { + padding: 20px; + min-height: 240px; + } +} +.page-rwa-tokenization .token-cards-container .benefit-card, +.use-case-payments .token-cards-container .benefit-card { + border-radius: 8px; + background-color: var(--XRPL-Black-Black-80, #232325); + display: flex; + flex-direction: column; + justify-content: flex-start; + padding: 32px; + min-height: 332px; +} +.page-rwa-tokenization .token-cards-container .benefit-icon, +.use-case-payments .token-cards-container .benefit-icon { + min-width: 40px; + min-height: 40px; + background-size: contain; + background-repeat: no-repeat; +} +.page-rwa-tokenization .token-cards-container .benefit-icon.low-fees, +.use-case-payments .token-cards-container .benefit-icon.low-fees { + background-image: url(../img/tokenization/low-fees.png); +} +.page-rwa-tokenization .token-cards-container .benefit-icon.access, +.use-case-payments .token-cards-container .benefit-icon.access { + background-image: url(../img/tokenization/cross-chain.png); +} +.page-rwa-tokenization .token-cards-container .benefit-icon.native-compliance, +.use-case-payments .token-cards-container .benefit-icon.native-compliance { + background-image: url(../img/tokenization/native-compliance.png); +} +.page-rwa-tokenization .token-cards-container .benefit-icon.delegated-token-management, +.use-case-payments .token-cards-container .benefit-icon.delegated-token-management { + background-image: url(../img/tokenization/delegated-token-management.png); +} +.page-rwa-tokenization .token-cards-container .benefit-title, +.use-case-payments .token-cards-container .benefit-title { + color: var(--black-black-0-white, #fff); + font-size: 20px; + font-weight: 700; + line-height: 26px; + margin-top: -10px; +} +.page-rwa-tokenization .token-cards-container .benefit-description, +.use-case-payments .token-cards-container .benefit-description { + color: var(--Black-Black-20, #e0e0e1); + font-size: 16px; + font-weight: 400; + line-height: 24px; + margin-top: 16px; +} +@media (max-width: 991px) { + .page-rwa-tokenization .token-cards-container .benefit-card, + .use-case-payments .token-cards-container .benefit-card { + padding: 20px; + } +} +.page-rwa-tokenization .upcoming-events, +.use-case-payments .upcoming-events { + display: flex; + flex-direction: column; + justify-content: center; + overflow: hidden; + padding: 100px 40px; + max-width: 1200px; + width: 100%; +} +@media (max-width: 767px) { + .page-rwa-tokenization .upcoming-events, + .use-case-payments .upcoming-events { + padding-bottom: 0px; + padding-top: 0px; + } +} +.page-rwa-tokenization .upcoming-events__title, +.use-case-payments .upcoming-events__title { + max-width: 630px; + align-self: stretch; + color: #fff; + font: + 700 32px/38px Work Sans, + -apple-system, + Roboto, + Helvetica, + sans-serif; + margin-bottom: 64px; +} +@media (max-width: 767px) { + .page-rwa-tokenization .upcoming-events__title, + .use-case-payments .upcoming-events__title { + text-align: left; + } +} +.page-rwa-tokenization .upcoming-events__logo-container, +.use-case-payments .upcoming-events__logo-container { + display: flex; + align-items: center; + gap: 60px; + justify-content: center; + flex-wrap: wrap; +} +.page-rwa-tokenization .token-events-wrapper, +.use-case-payments .token-events-wrapper { + padding-top: 0px; + display: flex; + justify-content: center; +} +.page-rwa-tokenization .company-logo, +.use-case-payments .company-logo { + flex: 0 0 auto; + width: 140px; + aspect-ratio: var(--aspect-ratio); + background-size: contain; + background-repeat: no-repeat; + background-position: center; +} +@media (max-width: 991px) { + .page-rwa-tokenization .upcoming-events__title, + .use-case-payments .upcoming-events__title { + margin-bottom: 40px; + } + .page-rwa-tokenization .upcoming-events, + .use-case-payments .upcoming-events { + text-align: center; + } + .page-rwa-tokenization .upcoming-events__logo-container, + .use-case-payments .upcoming-events__logo-container { + justify-content: center; + } +} +@media (max-width: 575.98px) { + .page-rwa-tokenization .small-100, + .use-case-payments .small-100 { + width: 100%; + } +} +.page-rwa-tokenization .company-logo, +.use-case-payments .company-logo { + cursor: pointer; + flex: 0 0 auto; + max-width: 140px; + aspect-ratio: var(--aspect-ratio); + background-size: contain; + background-repeat: no-repeat; + background-position: center; +} +.page-rwa-tokenization .company-logo.zoniqx, +.use-case-payments .company-logo.zoniqx { + background-image: url(../img/tokenization/zoniqx.png); +} +.page-rwa-tokenization .company-logo.archax, +.use-case-payments .company-logo.archax { + background-image: url(../img/tokenization/archax.png); +} +.page-rwa-tokenization .company-logo.palisade, +.use-case-payments .company-logo.palisade { + background-image: url(../img/tokenization/palisade.png); +} +.page-rwa-tokenization .company-logo.axiology, +.use-case-payments .company-logo.axiology { + background-image: url(../img/tokenization/axiology.png); +} +.page-rwa-tokenization .company-logo.open-eden, +.use-case-payments .company-logo.open-eden { + background-image: url(../img/tokenization/open-eden.png); +} +.page-rwa-tokenization .company-logo.ondo, +.use-case-payments .company-logo.ondo { + background-image: url(../img/tokenization/ondo.png); +} +.page-rwa-tokenization .company-logo.meld, +.use-case-payments .company-logo.meld { + background-image: url(../img/tokenization/meld.png); +} +.page-rwa-tokenization .company-logo.ripple-logo, +.use-case-payments .company-logo.ripple-logo { + background-image: url(../img/tokenization/ripple-logo.png); +} +.page-rwa-tokenization .company-logo.hidden-road, +.use-case-payments .company-logo.hidden-road { + background-image: url(../img/tokenization/hidden-road.png); +} +.page-rwa-tokenization .company-logo, +.use-case-payments .company-logo { + max-height: 66px; + max-width: 100px; + width: 100%; + height: 100%; +} +.page-rwa-tokenization .token-developer-tools-section .developer-tools, +.page-rwa-tokenization .payments-integration-section .developer-tools, +.use-case-payments .token-developer-tools-section .developer-tools, +.use-case-payments .payments-integration-section .developer-tools { + font-family: 'Work Sans', sans-serif; + color: #fff; +} +.page-rwa-tokenization .token-developer-tools-section .developer-tools__header, +.page-rwa-tokenization .payments-integration-section .developer-tools__header, +.use-case-payments .token-developer-tools-section .developer-tools__header, +.use-case-payments .payments-integration-section .developer-tools__header { + margin-bottom: 64px; +} +.page-rwa-tokenization .token-developer-tools-section .developer-tools__title, +.page-rwa-tokenization .payments-integration-section .developer-tools__title, +.use-case-payments .token-developer-tools-section .developer-tools__title, +.use-case-payments .payments-integration-section .developer-tools__title { + font-size: 32px; + font-weight: 700; + line-height: 1; + margin-bottom: 24px; +} +.page-rwa-tokenization .token-developer-tools-section .developer-tools__description, +.page-rwa-tokenization .payments-integration-section .developer-tools__description, +.use-case-payments .token-developer-tools-section .developer-tools__description, +.use-case-payments .payments-integration-section .developer-tools__description { + font-size: 16px; + line-height: 24px; +} +.page-rwa-tokenization .token-developer-tools-section .developer-tools__list, +.page-rwa-tokenization .payments-integration-section .developer-tools__list, +.use-case-payments .token-developer-tools-section .developer-tools__list, +.use-case-payments .payments-integration-section .developer-tools__list { + list-style: none; + padding: 0; + margin: 0; +} +.page-rwa-tokenization .token-developer-tools-section .feature-item, +.page-rwa-tokenization .payments-integration-section .feature-item, +.use-case-payments .token-developer-tools-section .feature-item, +.use-case-payments .payments-integration-section .feature-item { + margin-bottom: 16px; + cursor: pointer; +} +.page-rwa-tokenization .token-developer-tools-section .feature-item a:hover, +.page-rwa-tokenization .payments-integration-section .feature-item a:hover, +.use-case-payments .token-developer-tools-section .feature-item a:hover, +.use-case-payments .payments-integration-section .feature-item a:hover { + text-decoration: none; +} +.page-rwa-tokenization .token-developer-tools-section .feature-item__content, +.page-rwa-tokenization .payments-integration-section .feature-item__content, +.use-case-payments .token-developer-tools-section .feature-item__content, +.use-case-payments .payments-integration-section .feature-item__content { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 16px; + cursor: pointer; +} +.page-rwa-tokenization .token-developer-tools-section .feature-item__content:hover .right-arrow-item::after, +.page-rwa-tokenization .payments-integration-section .feature-item__content:hover .right-arrow-item::after, +.use-case-payments .token-developer-tools-section .feature-item__content:hover .right-arrow-item::after, +.use-case-payments .payments-integration-section .feature-item__content:hover .right-arrow-item::after { + transform: translateX(4px); +} +.page-rwa-tokenization .token-developer-tools-section .feature-item__title, +.page-rwa-tokenization .payments-integration-section .feature-item__title, +.use-case-payments .token-developer-tools-section .feature-item__title, +.use-case-payments .payments-integration-section .feature-item__title { + font-size: 16px; + color: #e0e0e1; + cursor: pointer; +} +.page-rwa-tokenization .token-developer-tools-section .feature-item__icon, +.page-rwa-tokenization .payments-integration-section .feature-item__icon, +.use-case-payments .token-developer-tools-section .feature-item__icon, +.use-case-payments .payments-integration-section .feature-item__icon { + width: 24px; + height: 24px; + object-fit: contain; +} +.page-rwa-tokenization .token-developer-tools-section .feature-item__divider, +.page-rwa-tokenization .payments-integration-section .feature-item__divider, +.use-case-payments .token-developer-tools-section .feature-item__divider, +.use-case-payments .payments-integration-section .feature-item__divider { + height: 1px; + opacity: 0.3; + background-color: #fff; +} +.page-rwa-tokenization .token-developer-tools-section .developer-tools__image, +.page-rwa-tokenization .payments-integration-section .developer-tools__image, +.use-case-payments .token-developer-tools-section .developer-tools__image, +.use-case-payments .payments-integration-section .developer-tools__image { + width: 110%; + height: 124%; + background-image: url('../img/tokenization/graphic.png'); + background-size: contain; + background-repeat: no-repeat; + background-position: center; +} +.page-rwa-tokenization .token-developer-tools-section .m-h-300, +.page-rwa-tokenization .payments-integration-section .m-h-300, +.use-case-payments .token-developer-tools-section .m-h-300, +.use-case-payments .payments-integration-section .m-h-300 { + min-height: 300px; +} +@media (max-width: 991px) { + .page-rwa-tokenization .token-developer-tools-section .developer-tools, + .page-rwa-tokenization .payments-integration-section .developer-tools, + .use-case-payments .token-developer-tools-section .developer-tools, + .use-case-payments .payments-integration-section .developer-tools { + padding: 50px 40px; + } + .page-rwa-tokenization .token-developer-tools-section .developer-tools__header, + .page-rwa-tokenization .payments-integration-section .developer-tools__header, + .use-case-payments .token-developer-tools-section .developer-tools__header, + .use-case-payments .payments-integration-section .developer-tools__header { + margin-bottom: 40px; + } +} +.page-rwa-tokenization .token-features-section .rwa-tokenization, +.use-case-payments .token-features-section .rwa-tokenization { + font-family: 'Work Sans', sans-serif; + padding: 100px 40px; + padding-top: 0px; + color: #fff; +} +.page-rwa-tokenization .token-features-section .container, +.use-case-payments .token-features-section .container { + max-width: 1200px; + margin: 0 auto; +} +.page-rwa-tokenization .token-features-section .rwa-header, +.use-case-payments .token-features-section .rwa-header { + text-align: start; + margin-bottom: 40px; +} +.page-rwa-tokenization .token-features-section .rwa-title, +.use-case-payments .token-features-section .rwa-title { + font-size: 32px; + font-weight: 700; + line-height: 38px; +} +.page-rwa-tokenization .token-features-section .cta-container, +.use-case-payments .token-features-section .cta-container { + display: flex; + justify-content: flex-start; + gap: 24px; +} +.page-rwa-tokenization .token-features-section .btn, +.use-case-payments .token-features-section .btn { + font-size: 16px; + font-weight: 700; + padding: 8px 16px; + border-radius: 4px; + text-decoration: none; +} +.page-rwa-tokenization .token-features-section .btn-primary, +.use-case-payments .token-features-section .btn-primary { + background-color: #7919ff; + color: #fff; +} +.page-rwa-tokenization .token-features-section .btn-link, +.use-case-payments .token-features-section .btn-link { + color: #9a52ff; +} +@media (max-width: 991px) { + .page-rwa-tokenization .token-features-section .auto-bridge, + .use-case-payments .token-features-section .auto-bridge { + padding: 18px !important; + } + .page-rwa-tokenization .token-features-section .rwa-tokenization, + .use-case-payments .token-features-section .rwa-tokenization { + padding: 50px 20px; + } + .page-rwa-tokenization .token-features-section .feature-grid, + .use-case-payments .token-features-section .feature-grid { + gap: 20px; + } + .page-rwa-tokenization .token-features-section .cta-container, + .use-case-payments .token-features-section .cta-container { + flex-direction: column; + align-items: center; + } +} +.page-rwa-tokenization .token-features-section .feature-grid, +.use-case-payments .token-features-section .feature-grid { + display: flex; + flex-wrap: wrap; + gap: 40px; + justify-content: center; + margin-bottom: 20px; +} +.page-rwa-tokenization .token-features-section .feature-grid .feature-card, +.use-case-payments .token-features-section .feature-grid .feature-card { + flex: 1 0 100%; + max-width: 100%; + margin-bottom: 20px; + position: relative; +} +@media (min-width: 768px) { + .page-rwa-tokenization .token-features-section .feature-grid .feature-card, + .use-case-payments .token-features-section .feature-grid .feature-card { + flex: 1 0 calc(50% - 40px); + max-width: calc(50% - 40px); + } +} +@media (min-width: 1200px) { + .page-rwa-tokenization .token-features-section .feature-grid .feature-card, + .use-case-payments .token-features-section .feature-grid .feature-card { + flex: 1 0 calc(25% - 30px); + max-width: calc(25% - 30px); + } +} +.page-rwa-tokenization .token-features-section .feature-card:hover .right-arrow-item::after, +.use-case-payments .token-features-section .feature-card:hover .right-arrow-item::after { + transform: translateX(4px); +} +.page-rwa-tokenization .token-features-section .feature-header, +.use-case-payments .token-features-section .feature-header { + margin-bottom: 16px; + position: relative; +} +.page-rwa-tokenization .token-features-section .feature-title, +.use-case-payments .token-features-section .feature-title { + display: flex; + align-items: flex-start; + justify-content: space-between; + font-size: 20px; + font-weight: 700; + line-height: 26px; + color: #fff; + width: 100%; + flex-wrap: wrap; +} +@media (max-width: 767px) { + .page-rwa-tokenization .token-features-section .feature-title, + .use-case-payments .token-features-section .feature-title { + padding-right: 30px; + flex-wrap: nowrap; + justify-content: flex-start; + } +} +@media (min-width: 768px) and (max-width: 1199px) { + .page-rwa-tokenization .token-features-section .feature-title, + .use-case-payments .token-features-section .feature-title { + flex-wrap: nowrap; + padding-right: 30px; + justify-content: flex-start; + } +} +.page-rwa-tokenization .token-features-section .feature-icon, +.use-case-payments .token-features-section .feature-icon { + width: 16px; + height: 16px; + margin-left: 8px; +} +.page-rwa-tokenization .token-features-section .feature-description, +.use-case-payments .token-features-section .feature-description { + font-size: 16px; + line-height: 24px; + color: #e0e0e1; +} +.page-rwa-tokenization .max-w-1150, +.use-case-payments .max-w-1150 { + max-width: 1150px !important; +} +.page-rwa-tokenization .custom-gap, +.use-case-payments .custom-gap { + justify-content: start !important; +} +.page-rwa-tokenization .mt-16, +.use-case-payments .mt-16 { + margin-top: 16px; +} +.page-rwa-tokenization .com-card, +.use-case-payments .com-card { + min-width: auto !important; + padding: 40px !important; + height: fit-content; + max-height: 388px !important; +} +.page-rwa-tokenization .section-padding, +.use-case-payments .section-padding { + padding: 100px 40px; +} +.page-rwa-tokenization .developer-resources-section .bottom-cards-section.bug-bounty.section-padding, +.use-case-payments .developer-resources-section .bottom-cards-section.bug-bounty.section-padding { + display: flex !important; + flex-wrap: wrap !important; + gap: 32px; + max-width: 1200px; + margin: 80px auto; + padding: 0px; + justify-content: center; +} +@media (min-width: 768px) { + .page-rwa-tokenization .developer-resources-section .bottom-cards-section.bug-bounty.section-padding, + .use-case-payments .developer-resources-section .bottom-cards-section.bug-bounty.section-padding { + gap: 40px; + justify-content: space-between; + } +} +@media (max-width: 767px) { + .page-rwa-tokenization .developer-resources-section .bottom-cards-section.bug-bounty.section-padding, + .use-case-payments .developer-resources-section .bottom-cards-section.bug-bounty.section-padding { + flex-direction: column; + gap: 20px; + margin: 40px auto; + padding: 0px; + } +} +.page-rwa-tokenization .developer-resources-section .bottom-cards-section.bug-bounty.section-padding .com-card, +.use-case-payments .developer-resources-section .bottom-cards-section.bug-bounty.section-padding .com-card { + flex: 1 !important; + position: relative; + margin: 0 !important; +} +@media (min-width: 768px) { + .page-rwa-tokenization .developer-resources-section .bottom-cards-section.bug-bounty.section-padding .com-card, + .use-case-payments .developer-resources-section .bottom-cards-section.bug-bounty.section-padding .com-card { + flex: 1 1 calc(50% - 20px); + max-width: calc(50% - 20px); + min-width: calc(50% - 20px); + width: auto; + } +} +@media (max-width: 767px) { + .page-rwa-tokenization .developer-resources-section .bottom-cards-section.bug-bounty.section-padding .com-card, + .use-case-payments .developer-resources-section .bottom-cards-section.bug-bounty.section-padding .com-card { + width: 100% !important; + max-width: 100% !important; + min-width: 100% !important; + margin-bottom: 0 !important; + flex: none !important; + } +} +.page-rwa-tokenization .developer-resources-section .bottom-cards-section.bug-bounty.section-padding .com-card.developer-spotlight, +.use-case-payments .developer-resources-section .bottom-cards-section.bug-bounty.section-padding .com-card.developer-spotlight { + background-image: url(../img/community/bug-bounty-card-bg.png); + background-position: top right; + background-size: 169px 88px; + background-repeat: no-repeat; +} +.page-rwa-tokenization .developer-resources-section .bottom-cards-section.bug-bounty.section-padding .com-card.learn-stay-updated, +.use-case-payments .developer-resources-section .bottom-cards-section.bug-bounty.section-padding .com-card.learn-stay-updated { + background-image: url(../img/community/bug-bounty-card-bg-2.png); + background-position: bottom right; + background-size: contain; + background-repeat: no-repeat; + background-size: 136px 177px; +} +@media (max-width: 767px) { + .page-rwa-tokenization .developer-resources-section .bottom-cards-section.bug-bounty.section-padding .com-card.learn-stay-updated, + .use-case-payments .developer-resources-section .bottom-cards-section.bug-bounty.section-padding .com-card.learn-stay-updated { + background-image: url(../img/community/bug-bounty-card-bg-2-mobile.png); + } +} +.page-rwa-tokenization .developer-resources-section .bottom-cards-section.bug-bounty.section-padding .com-card .card-content, +.use-case-payments .developer-resources-section .bottom-cards-section.bug-bounty.section-padding .com-card .card-content { + display: flex; + flex-direction: column; + height: 100%; +} +.page-rwa-tokenization .developer-resources-section .bottom-cards-section.bug-bounty.section-padding .com-card .card-content .card-description, +.use-case-payments .developer-resources-section .bottom-cards-section.bug-bounty.section-padding .com-card .card-content .card-description { + flex-grow: 1; + margin-bottom: 24px; + max-width: 560px; +} +@media (max-width: 767px) { + .page-rwa-tokenization .developer-resources-section .bottom-cards-section.bug-bounty.section-padding .com-card .card-content .card-description, + .use-case-payments .developer-resources-section .bottom-cards-section.bug-bounty.section-padding .com-card .card-content .card-description { + margin-bottom: 20px; + } +} +.page-rwa-tokenization .developer-resources-section .bottom-cards-section.bug-bounty.section-padding .com-card .card-content .card-links, +.use-case-payments .developer-resources-section .bottom-cards-section.bug-bounty.section-padding .com-card .card-content .card-links { + margin-top: auto; +} +@media (max-width: 767px) { + .page-rwa-tokenization .developer-resources-section .bottom-cards-section.bug-bounty.section-padding .com-card .card-content .card-links, + .use-case-payments .developer-resources-section .bottom-cards-section.bug-bounty.section-padding .com-card .card-content .card-links { + margin-top: 16px; + } + .page-rwa-tokenization + .developer-resources-section + .bottom-cards-section.bug-bounty.section-padding + .com-card + .card-content + .card-links + .com-card-link, + .use-case-payments + .developer-resources-section + .bottom-cards-section.bug-bounty.section-padding + .com-card + .card-content + .card-links + .com-card-link { + display: block; + margin-bottom: 12px; + } + .page-rwa-tokenization + .developer-resources-section + .bottom-cards-section.bug-bounty.section-padding + .com-card + .card-content + .card-links + .com-card-link:last-child, + .use-case-payments + .developer-resources-section + .bottom-cards-section.bug-bounty.section-padding + .com-card + .card-content + .card-links + .com-card-link:last-child { + margin-bottom: 0; + } +} +.page-rwa-tokenization .developer-resources-section.single-card .bottom-cards-section.bug-bounty.section-padding, +.use-case-payments .developer-resources-section.single-card .bottom-cards-section.bug-bounty.section-padding { + gap: 0 !important; +} +@media (max-width: 767px) { + .page-rwa-tokenization .developer-resources-section.single-card .bug-bounty-card-bg-2, + .use-case-payments .developer-resources-section.single-card .bug-bounty-card-bg-2 { + content: url('../img/community/bug-bounty-card-bg-2-mobile.png'); + } +} +.page-rwa-tokenization .developer-resources-section.single-card .com-card, +.use-case-payments .developer-resources-section.single-card .com-card { + font-size: 24px; + max-height: 288px !important; +} +@media (max-width: 768px) { + .page-rwa-tokenization .developer-resources-section.single-card .com-card, + .use-case-payments .developer-resources-section.single-card .com-card { + min-height: 493px !important; + } +} +@media (min-width: 768px) { + .page-rwa-tokenization .developer-resources-section.single-card .com-card, + .use-case-payments .developer-resources-section.single-card .com-card { + flex: 1 1 100% !important; + max-width: 100% !important; + min-width: 100% !important; + } +} +.page-rwa-tokenization .developer-resources-section.single-card .com-card .bottom-right-img.bug-bounty-card-bg-2, +.use-case-payments .developer-resources-section.single-card .com-card .bottom-right-img.bug-bounty-card-bg-2 { + height: 714px; + width: auto; + object-fit: cover; + object-position: right bottom; +} +.page-rwa-tokenization .developer-resources-section.single-card .com-card .card-content, +.use-case-payments .developer-resources-section.single-card .com-card .card-content { + gap: 0; +} +.page-rwa-tokenization .developer-resources-section.single-card .com-card .card-content .card-title, +.use-case-payments .developer-resources-section.single-card .com-card .card-content .card-title { + margin-bottom: 24px; + margin-top: 0; +} +.page-rwa-tokenization .developer-resources-section.single-card .com-card .card-content .card-description, +.use-case-payments .developer-resources-section.single-card .com-card .card-content .card-description { + margin-bottom: 24px; + margin-top: 0; + flex-grow: 0; + padding: 0; +} +.page-rwa-tokenization .developer-resources-section.single-card .com-card .card-content .card-links, +.use-case-payments .developer-resources-section.single-card .com-card .card-content .card-links { + margin-top: 0; + margin-bottom: 0; +} +.page-rwa-tokenization .token-utility-section, +.use-case-payments .token-utility-section { + padding: 100px 40px; +} +@media (max-width: 767px) { + .page-rwa-tokenization .token-utility-section, + .use-case-payments .token-utility-section { + padding-bottom: 0px; + } +} +.page-rwa-tokenization .token-utility-section .section-title, +.use-case-payments .token-utility-section .section-title { + font-size: 32px; + font-weight: 700; + line-height: 38px; + text-align: start; + margin-bottom: 64px; + color: #fff; +} +.page-rwa-tokenization .token-utility-section .utility-grid, +.use-case-payments .token-utility-section .utility-grid { + display: grid; + grid-template-columns: repeat(4, 1fr); + gap: 40px; +} +@media (max-width: 1199px) { + .page-rwa-tokenization .token-utility-section .utility-grid, + .use-case-payments .token-utility-section .utility-grid { + grid-template-columns: repeat(2, 1fr); + } +} +@media (max-width: 767px) { + .page-rwa-tokenization .token-utility-section .utility-grid, + .use-case-payments .token-utility-section .utility-grid { + grid-template-columns: 1fr; + } +} +.page-rwa-tokenization .token-utility-section .utility-card .utility-title, +.use-case-payments .token-utility-section .utility-card .utility-title { + font-size: 20px; + font-weight: 700; + line-height: 26px; + margin-bottom: 16px; + color: #fff; +} +.page-rwa-tokenization .token-utility-section .utility-card .utility-description, +.use-case-payments .token-utility-section .utility-card .utility-description { + font-size: 16px; + line-height: 24px; + color: #e0e0e1; +} +.page-rwa-tokenization .token-utility-section .utility-card .utility-description a, +.use-case-payments .token-utility-section .utility-card .utility-description a { + color: #9a52ff; + text-decoration: none; +} +.page-rwa-tokenization .token-utility-section .utility-card .utility-description a:hover, +.use-case-payments .token-utility-section .utility-card .utility-description a:hover { + text-decoration: underline; +} +.json-view { + display: block; + color: #4d4d4d; + text-align: left; + --json-property: #009033; + --json-index: #676dff; + --json-number: #676dff; + --json-string: #b2762e; + --json-boolean: #dc155e; + --json-null: #dc155e; +} +.json-view .json-view--property { + color: var(--json-property); +} +.json-view .json-view--index { + color: var(--json-index); +} +.json-view .json-view--number { + color: var(--json-number); +} +.json-view .json-view--string { + color: var(--json-string); +} +.json-view .json-view--boolean { + color: var(--json-boolean); +} +.json-view .json-view--null { + color: var(--json-null); +} +.json-view .jv-indent { + padding-left: 1em; +} +.json-view .jv-chevron { + display: inline-block; + vertical-align: -20%; + cursor: pointer; + opacity: 0.4; + width: 1em; + height: 1em; +} +:is(.json-view .jv-chevron:hover, .json-view .jv-size:hover + .jv-chevron) { + opacity: 0.8; +} +.json-view .jv-size { + cursor: pointer; + opacity: 0.4; + font-size: 0.875em; + font-style: italic; + margin-left: 0.5em; + vertical-align: -5%; + line-height: 1; +} +.json-view :is(.json-view--copy, .json-view--edit), +.json-view .json-view--link svg { + display: none; + width: 1em; + height: 1em; + margin-left: 0.25em; + cursor: pointer; +} +.json-view .json-view--input { + width: 120px; + margin-left: 0.25em; + border-radius: 4px; + border: 1px solid currentColor; + padding: 0px 4px; + font-size: 87.5%; + line-height: 1.25; + background: transparent; +} +.json-view .json-view--deleting { + outline: 1px solid #da0000; + background-color: #da000011; + text-decoration-line: line-through; +} +:is(.json-view:hover, .json-view--pair:hover) > :is(.json-view--copy, .json-view--edit), +:is(.json-view:hover, .json-view--pair:hover) > .json-view--link svg { + display: inline-block; +} +.json-view .jv-button { + background: transparent; + outline: none; + border: none; + cursor: pointer; + color: inherit; +} +.json-view .cursor-pointer { + cursor: pointer; +} +.json-view svg { + vertical-align: -10%; +} +.jv-size-chevron ~ svg { + vertical-align: -16%; +} +.json-view_a11y { + color: #545454; + --json-property: #aa5d00; + --json-index: #007299; + --json-number: #007299; + --json-string: green; + --json-boolean: #d91e18; + --json-null: #d91e18; +} +.json-view_github { + color: #005cc5; + --json-property: #005cc5; + --json-index: #005cc5; + --json-number: #005cc5; + --json-string: #032f62; + --json-boolean: #005cc5; + --json-null: #005cc5; +} +.json-view_vscode { + color: #005cc5; + --json-property: #0451a5; + --json-index: blue; + --json-number: blue; + --json-string: #a31515; + --json-boolean: blue; + --json-null: blue; +} +.json-view_atom { + color: #383a42; + --json-property: #e45649; + --json-index: #986801; + --json-number: #986801; + --json-string: #50a14f; + --json-boolean: #0184bc; + --json-null: #0184bc; +} +.json-view_winter-is-coming { + color: #0431fa; + --json-property: #3a9685; + --json-index: #ae408b; + --json-number: #ae408b; + --json-string: #8123a9; + --json-boolean: #0184bc; + --json-null: #0184bc; +} +.json-view { + font-family: 'Space Mono', monospace; + padding: 1em; + background: #232325; + overflow: hidden; + color: #f5f5f7 !important; + font-size: 14px; + letter-spacing: 0; +} +.json-view svg { + height: 11px !important; + color: #f5f5f7; +} +.jv-button { + color: #ff6719 !important; + font-size: 14px; +} +.jv-indent { + border-left: 1px solid #454549; + margin: 4px; +} +.json-view--boolean { + color: #e50071 !important; +} +.json-view--pair { + margin: 4px; +} +.json-view--property { + color: #f5f5f7 !important; +} +.json-view--null, +.json-view--undefined { + display: inline-block; + padding: 1px 2px; + border-radius: 3px; + background-color: #454549; + color: #f5f5f7 !important; + font-size: 11px; +} +.json-view--number { + color: #84f0b6 !important; +} +.json-view--string { + color: #ff6719 !important; +} +.rpc-tool .nav-link { + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + padding: 6px 9px; +} +.dev-blog .image-container { + transform: translateY(15%); + z-index: 1; +} +.dev-blog .text-bg { + background-color: #232325; + padding: 60px 40px; + width: 100%; + border-radius: 30px; +} +@media (min-width: 992px) { + .dev-blog .image-container { + transform: translateX(15%); + } + .dev-blog .text-bg { + padding: 50px 60px; + } +} +.dev-blog .line-clamp { + display: -webkit-box; + -webkit-line-clamp: 4; + -webkit-box-orient: vertical; + overflow: hidden; +} +.dev-blog #blog-purple { + position: absolute; + top: 0px; + left: 0px; +} +.dev-blog .card-date { + color: #a2a2a4; +} +.dev-blog .hero-post-date { + text-decoration: overline solid #32e685 10%; +} +.dev-blog .general .category-list img { + content: url('../img/blog/general.png'); + max-width: 100%; + width: 100%; +} +.dev-blog .general .category-list .label { + width: fit-content; +} +.dev-blog .developer_reflections .category-list img { + content: url('../img/blog/developer_reflections.png'); + max-width: 100%; + width: 100%; +} +.dev-blog .developer_reflections .category-list .label { + width: fit-content; +} +.dev-blog .amendments .category-list img { + content: url('../img/blog/amendments.png'); + max-width: 100%; + width: 100%; +} +.dev-blog .amendments .category-list .label { + width: fit-content; +} +.dev-blog .case_study .category-list img { + content: url('../img/blog/case_study.png'); + max-width: 100%; + width: 100%; +} +.dev-blog .case_study .category-list .label { + width: fit-content; +} +.dev-blog .advisories .category-list img { + content: url('../img/blog/advisories.png'); + max-width: 100%; + width: 100%; +} +.dev-blog .advisories .category-list .label { + width: fit-content; +} +.dev-blog .release_notes .category-list img { + content: url('../img/blog/release_notes.png'); + max-width: 100%; + width: 100%; +} +.dev-blog .release_notes .category-list .label { + width: fit-content; +} +.dev-blog .development .category-list img { + content: url('../img/blog/development.png'); + max-width: 100%; + width: 100%; +} +.dev-blog .development .category-list .label { + width: fit-content; +} +.dev-blog .gateway_bulletins .category-list img { + content: url('../img/blog/gateway_bulletins.png'); + max-width: 100%; + width: 100%; +} +.dev-blog .gateway_bulletins .category-list .label { + width: fit-content; +} +.dev-blog .features .category-list img { + content: url('../img/blog/features.png'); + max-width: 100%; + width: 100%; +} +.dev-blog .features .category-list .label { + width: fit-content; +} +.dev-blog .security .category-list img { + content: url('../img/blog/security.png'); + max-width: 100%; + width: 100%; +} +.dev-blog .security .category-list .label { + width: fit-content; +} +@media (min-width: 768px) and (max-width: 991px) { + .dev-blog .category-list { + display: block; + } + .dev-blog .category-list img { + display: block; + margin-bottom: 10px; + } + .dev-blog .category-list .label { + display: block !important; + margin-bottom: 15px; + } +} +.dev-blog .category_sidebar { + position: sticky; + top: 80px; +} +.dev-blog .category-checkbox { + display: flex; + align-items: center; +} +.dev-blog .dropdown { + position: relative; + display: inline-block; +} +.dev-blog .dropdown-btn { + color: #fff; + background-color: #232325; + border-color: #232325; + border-style: solid; + border-radius: 4px; + padding: 8px 16px; + font-size: 16px; + cursor: pointer; + text-align: start; + padding-right: 10px; +} +.dev-blog .dropdown-btn img { + content: url('../img/icons/chevron-arrow-down.svg'); + width: 10px; + height: 13px; + padding: 8px; +} +.dev-blog .dropdown-content { + display: flex; + align-items: start; + background-color: #232325; + padding: 16px 8px; + width: 254px; + height: auto; + border-radius: 4px; +} +.dev-blog .category-checkbox label { + font-weight: normal; + font-size: 14px; + margin: 0; + padding-left: 26px; +} +.dev-blog .category-header { + font-weight: normal; + width: 200px; + color: #f5f5f7; +} +.dev-blog label { + margin: 0; + padding-left: 8px; + color: #fff; +} +.dev-blog .blog-filter h6 { + font-size: 16px; +} +.dev-blog .blog-filter[type='checkbox']::before { + position: relative; + display: block; + width: 20px; + height: 20px; + content: ''; + background: #111112; + border-radius: 4px; + border-width: 2px; + border-style: solid; + border-color: #a2a2a4; +} +.dev-blog .blog-filter[type='checkbox']::after { + position: relative; + display: block; + top: -20px; + width: 20px; + height: 20px; + content: ''; + background-repeat: no-repeat; + background-position: center; + border-radius: 4px; + border-width: 2px; + border-style: solid; + border-color: #a2a2a4; +} +.dev-blog .blog-filter[type='checkbox']:checked::before { + background: #111112; + border: none; + border-radius: 0; +} +.dev-blog .blog-filter[type='checkbox']:checked::after { + background-image: url(../img/blog/blog-check.svg); + background-repeat: no-repeat; + background-position: center; + background-color: #7919ff; + border-width: 2px; + border-style: solid; + border-color: #7919ff; + border-radius: 4px; +} +.dev-blog .blog-filter[type='checkbox']:not(:disabled):checked:hover::after { + background-image: url(../img/blog/blog-check.svg); + background-repeat: no-repeat; + background-position: center; + border-width: 2px; + border-style: solid; + border-color: #5f00e5; + border-radius: 4px; +} +.dev-blog .blog-filter[type='checkbox']:not(:disabled):hover::before { + background: #111112; + border: none; + border-radius: 0; +} +.dev-blog .blog-filter[type='checkbox']:not(:disabled):hover::after { + background: #111112; + border: none; + border-width: 2px; + border-style: solid; + border-color: #5f00e5; + border-radius: 4px; +} +#feedback-content .docked-widget { + border: none !important; + background-color: transparent !important; + position: static !important; + box-shadow: none !important; + width: auto !important; +} +#feedback-content .widget-form-wrapper { + position: static !important; + box-shadow: none !important; + display: block; + background-color: #232325 !important; + border-width: 0 !important; + padding: 24px !important; + border-radius: 8px !important; +} +#feedback-content .widget-form-wrapper div { + background-color: #232325 !important; +} +#feedback-content .widget-form-wrapper textarea { + background-color: #fff !important; + opacity: 1 !important; + border: none !important; + border-radius: 4px !important; + margin: 0 !important; + width: 100% !important; + color: #000 !important; +} +#feedback-content .widget-form-wrapper .widget-header-title { + background: none !important; + flex-grow: 0 !important; + padding-right: 1rem !important; + height: auto !important; + padding: 0 !important; + margin-bottom: 10px !important; +} +#feedback-content .widget-form-wrapper .widget-header-footer { + background: none !important; +} +#feedback-content .widget-form-wrapper .widget-form-footer { + padding-right: 0 !important; +} +#feedback-content .widget-form-wrapper .submit { + background-color: #7919ff !important; + font-weight: bold !important; + color: #fff !important; + border: none !important; + border-color: transparent !important; + border-radius: 4px !important; + margin: 0 !important; + margin-top: 8px !important; +} +#feedback-content .widget-form-wrapper .submit:hover { + background: #5f00e5 !important; +} +#feedback-content .widget-form-wrapper .submit.disabled, +#feedback-content .widget-form-wrapper .submit[disabled='disabled'] { + background-color: #4a00b2 !important; +} +#feedback-content .widget-form-wrapper .submit.disabled:hover, +#feedback-content .widget-form-wrapper .submit[disabled='disabled']:hover { + background-color: #4a00b2 !important; +} +#feedback-content .widget-form-wrapper .cancel { + margin: 0 !important; + margin-top: 8px !important; + color: #b480ff !important; + font-weight: 600 !important; +} +#feedback-content #closeFeedback { + display: none; +} +#feedback-content .widget-helpful .widget-header { + background-color: #232325 !important; + border-radius: 8px !important; +} +#feedback-content .widget-helpful .widget-header-title { + color: #fff !important; +} +.video-image { + transition: all 0.35s ease-out; + cursor: pointer; +} +.video-image:hover { + -webkit-transform: translateY(-16px); + -moz-transform: translateY(-16px); + -ms-transform: translateY(-16px); + -o-transform: translateY(-16px); + transform: translateY(-16px); +} +#video-overlay { + position: fixed; + top: 0; + left: 0; + z-index: 1190; + height: 100%; + width: 100%; + background: #fff; + opacity: 0.6; + display: none; +} +#video { + display: none; + position: fixed; + top: 10%; + left: 15%; + width: 70%; + z-index: 1200; +} +#video-container { + position: relative; + top: 50%; + left: 50%; + -ms-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); + max-width: 982px; + padding: 0 20px; +} +#videoWrapper { + position: absolute; + top: 0; + left: 0; + height: calc(90vh - 100px); + width: 80vw; +} +#videoWrapper iframe { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} +#video-container iframe { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} +.video-external-link { + color: #9a52ff; + font-weight: 600; +} +.video-external-link::after { + content: ' '; + background-image: url(../img/icons/arrow-up-right.svg); + background-repeat: no-repeat; + display: inline-block; + background-size: 24px; + padding: 9px 4px 0 8px; + width: 2rem; + background-position: left 8px bottom 0px; + transition: background-position 100ms ease-in-out; +} +.video-external-link.video-external-link:hover::after { + background-position: left 12px bottom 8px; +} +.video-title { + line-height: 1.2; +} +@media (min-width: 768px) { + .video-title { + font-size: 1rem; + } +} +@media (max-width: 768px) { + .page-community .sm-align-items-start { + align-items: start !important; + } +} +.page-community .numbers-animation { + width: 218px; + height: 96px; +} +@keyframes bounce { + 0%, + 100% { + transform: translateY(0); + } + 50% { + transform: translateY(-10px); + } +} +.page-community .bounce-arrow { + animation: bounce 1.5s infinite; + animation-timing-function: ease-in-out; + height: 26px; + width: 26px; + position: relative; + top: 24px; +} +.page-community .m-gif { + height: 108px; +} +.page-community .middle-image { + margin: 0 auto; + height: 35px; +} +.page-community .bg-hero { + width: 100%; + height: 635px; +} +.page-community #center-image { + cursor: pointer; +} +.page-community .gradient-num-three { + background: linear-gradient(35deg, #84f0b6 -0.3%, #b480ff 99.7%); + -webkit-background-clip: text; + background-clip: text; + color: transparent; +} +.page-community .middle-image-two { + margin: 0 auto; + height: 52px; +} +.page-community .gradient-num-two { + background: linear-gradient(35deg, #ea80ff -0.3%, #80ccff 99.7%); + -webkit-background-clip: text; + background-clip: text; + color: transparent; +} +.page-community .gradient-num { + background: linear-gradient(35deg, #b480ff -0.3%, #ffaa80 99.7%); + -webkit-background-clip: text; + background-clip: text; + color: transparent; +} +.page-community .surround-gradient { + background: linear-gradient(35deg, #b480ff -0.3%, #ffaa80 99.7%); + -webkit-background-clip: text; + background-clip: text; + color: transparent; + font-size: 40px; + font-weight: 400; +} +.page-community .surround-gradient-two { + background: linear-gradient(35deg, #ea80ff -0.3%, #80ccff 99.7%); + -webkit-background-clip: text; + background-clip: text; + color: transparent; + font-size: 40px; + font-weight: 400; +} +.page-community .surround-gradient-three { + background: linear-gradient(35deg, #84f0b6 -0.3%, #b480ff 99.7%); + -webkit-background-clip: text; + background-clip: text; + color: transparent; + font-size: 40px; + font-weight: 400; +} +.page-community .main-title { + color: var(--black-black-0, #fff); + text-align: center; + font-family: Work Sans; + font-size: 62px; + font-style: normal; + font-weight: 700; + line-height: 70px; +} +@media (max-width: 768px) { + .page-community .main-title { + font-size: 42px; + line-height: 52px; + text-align: left; + } +} +.page-community .get-funding-btn { + width: 90%; + margin: 0 auto; +} +@media (max-width: 768px) { + .page-community .cd-none-sm { + display: none !important; + } +} +@media (min-width: 769px) { + .page-community .cd-none-lg { + display: none !important; + } +} +.page-community .icon-date { + padding-right: 4px; + content: url(../img/events/event-date.svg); +} +.page-community .icon-location { + padding-right: 4px; + content: url(../img/events/event-location.svg); +} +.page-community .builders-wrap { + white-space: nowrap; +} +@media (min-width: 768px) { + .page-community .builders-wrap { + white-space: normal; + } +} +.page-community #community-table { + padding: 20px 93px; + max-width: 1280px; + margin: 0 auto; + border-radius: 5px; + padding-top: 165px; +} +@media (min-width: 992px) { + .page-community #community-table { + padding-top: 512px; + } +} +@media (max-width: 768px) { + .page-community #community-table { + margin: 0; + padding: 20px; + margin-top: 100px !important; + } +} +.page-community .eyebrow-convo { + text-align: start; + font-family: Work Sans; + font-size: 20px; + font-style: normal; + font-weight: 700; + line-height: 26px; + padding-bottom: 5px; +} +.page-community .final-tr { + border: none !important; +} +.page-community #community-table h4 { + text-align: start; + margin: 10px 0; + font-family: Work Sans; + font-size: 32px; + font-style: normal; + font-weight: 700; + line-height: 38px; +} +.page-community #community-table table { + width: 100%; + margin-top: 31px; + border-collapse: collapse; +} +.page-community #community-table tr { + padding: 10px 10px; + border-bottom: 1px solid #343437; +} +.page-community #community-table td { + overflow: hidden; + max-width: 34vw; + position: relative; + vertical-align: middle; +} +.page-community .scrolling-text { + display: inline-block; +} +.page-community #community-table img { + max-width: 52px; + height: 29px; +} +.page-community .td-img { + padding: 10px; + width: 69px; +} +.page-community .td-img .discord-icon { + content: url(../img/community/ic_discord.png); +} +.page-community .td-img .twitter-icon { + content: url(../img/community/ic_twitter.png); +} +.page-community .td-img .youtube-icon { + content: url(../img/community/ic_youtube.png); +} +.page-community .td-img .xrpl-icon { + content: url(../img/community/ic_xrpl.png); +} +.page-community .td-img .github-icon { + content: url(../img/community/ic_github.png); +} +.page-community .td-img .stackoverflow-icon { + content: url(../img/community/ic_stackoverflow.png); +} +.page-community .text-external-link { + display: inline-flex; + align-items: center; + margin-left: 10px; +} +.page-community .external-link-contribute { + display: inline-block; + vertical-align: middle; + padding-right: 41px; + height: 16px; + background: url(../img/icons/arrow-up-right.svg) no-repeat center center; + transition: transform 0.3s ease; +} +.page-community .text-external-link:hover .external-link-contribute { + transform: translate(5px, -5px); +} +.page-community table td { + position: relative; + padding-right: 25px; +} +.page-community table td .text-external-link { + position: absolute; + right: 5px; + top: 50%; + transform: translateY(-50%); +} +@media (max-width: 768px) { + .page-community #community-table img { + width: 96px; + height: 29px; + } + .page-community #community-table { + width: 100%; + } + .page-community .td-img { + min-width: 60px; + } +} +.page-community .funding-text { + color: var(#ffffff); + font-family: Work Sans; + font-size: 20px; + font-style: normal; + font-weight: 700; + line-height: 44px; + padding-bottom: 4px; +} +.page-community .xrpl-events-section { + padding: 50px 40px; + margin: 100px auto; + display: flex; + justify-content: space-around; + align-items: center; + max-width: 1280px; +} +@media screen and (max-width: 768px) { + .page-community .xrpl-events-section { + flex-direction: column; + align-items: start; + } + .page-community .xrpl-events-section .header-div { + text-align: center; + } + .page-community .xrpl-events-section .header { + display: flex; + flex-direction: column; + align-items: start; + } + .page-community .xrpl-events-section .header h6 { + margin-bottom: 0.5rem; + font-family: Work Sans; + font-size: 20px; + font-style: normal; + font-weight: 700; + line-height: 28px; + } + .page-community .xrpl-events-section .header h4 { + font-family: Work Sans; + font-size: 28px; + font-style: normal; + font-weight: 700; + line-height: 34px; + } + .page-community .xrpl-events-section .description { + text-align: start; + margin-top: 2rem; + font-family: Work Sans; + font-size: 24px; + font-style: normal; + font-weight: 500; + line-height: 28px; + } + .page-community .xrpl-events-section .view-all-events-btn { + float: left; + } + .page-community .xrpl-events-section .upcoming-event { + text-align: start; + margin-top: 2rem; + padding: 1rem 0; + } + .page-community .xrpl-events-section .upcoming-event .days-count { + margin-bottom: 1rem; + } +} +.page-community .xrpl-events-section .header-div { + padding-top: 27px; +} +.page-community .xrpl-events-section .header h6 { + padding-left: 1.5px; + font-family: 'Work Sans', sans-serif; + font-size: 20px; + font-weight: 700; + color: var(--black-black-0, #fff); + text-align: start; +} +.page-community .xrpl-events-section .header h4 { + text-align: start; + font-family: 'Work Sans', sans-serif; + font-size: 32px; + font-weight: 700; + color: var(--black-black-0, #fff); +} +.page-community .xrpl-events-section .description { + font-family: 'Work Sans', sans-serif; + font-size: 20px; + font-weight: 500; + max-width: 444px; + color: var(--black-black-10-gray-200, #e0e0e1); + line-height: 32px; +} +.page-community .xrpl-events-section .view-all-events-btn { + display: inline-block; + margin-top: 1rem; +} +.page-community .xrpl-events-section .upcoming-event { + margin-top: 2rem; +} +.page-community .xrpl-events-section .upcoming-event .upcoming-label { + position: relative; + top: 7px; + font-family: 'Work Sans', sans-serif; + font-size: 12px; + font-weight: 600; + text-transform: uppercase; + color: var(--black-black-30, #c1c1c2); +} +.page-community .xrpl-events-section .upcoming-event .days-count { + font-weight: 300; + margin-bottom: 21px; + line-height: 99px; + font-size: 88px; + background: linear-gradient(35deg, #b480ff -0.3%, #ffaa80 99.7%); + -webkit-background-clip: text; + background-clip: text; + color: transparent; + display: inline-block; +} +.page-community .xrpl-events-section .upcoming-event .days-word { + vertical-align: bottom; + font-weight: normal; + margin-bottom: 21px; + line-height: 99px; + font-size: 40px; + background: linear-gradient(35deg, #b480ff -0.3%, #ffaa80 99.7%); + -webkit-background-clip: text; + background-clip: text; + color: transparent; + display: inline-block; +} +.page-community .xrpl-events-section .upcoming-event h5 { + font-family: 'Work Sans', sans-serif; + font-size: 16px; + font-weight: 700; + color: var(--black-black-10, #f5f5f7); +} +.page-community .xrpl-events-section .upcoming-event .event-details, +.page-community .xrpl-events-section .upcoming-event .event-location { + font-family: 'Work Sans', sans-serif; + font-size: 12px; + font-weight: 600; + color: var(--black-black-30, #c1c1c2); +} +.page-community .community-funding { + display: flex; + flex-wrap: wrap; + justify-content: space-between; + max-width: 1280px; + margin: 100px auto; + padding-right: 54px; + padding-left: 73px; + margin-top: 120px; +} +.page-community .funding-section { + flex: 1; + padding: 20px; + color: var(--black-black-0); +} +.page-community .small-text { + color: var(--black-black-30, #c1c1c2); + font-family: Work Sans; + font-size: 12px; + font-style: normal; + font-weight: 600; + line-height: 16px; + text-transform: uppercase; + padding-left: 11px; + text-align: start; +} +.page-community .funding-section h2 { + font-size: 32px; + font-weight: 700; + line-height: 38px; + margin-top: 10px; + margin-bottom: 40px; +} +.page-community .funding-section p { + color: var(--black-black-20); + font-size: 24px; + font-weight: 500; + line-height: 32px; + margin-bottom: 40px; +} +.page-community .stats { + flex: 1; + display: flex; + justify-content: space-between; +} +@media (max-width: 768px) { + .page-community .stats { + flex-direction: column; + align-items: start; + text-align: start; + padding-left: 7px; + } +} +.page-community .stacked-stats { + display: flex; + flex-direction: column; + justify-content: space-between; +} +.page-community .stat { + align-self: center; + text-align: center; + margin: 0 auto; + display: flex; + flex-direction: column; +} +@media (max-width: 768px) { + .page-community .stat { + margin: 0px; + text-align: start; + align-self: start; + } +} +.page-community .number { + opacity: 1; + font-size: 88px; + display: flex; + padding: 10px; + align-items: center; + line-height: 96px; + font-weight: 300; +} +@media screen and (max-width: 768px) { + .page-community .community-funding { + flex-direction: column-reverse; + padding-left: 16px; + padding-right: 16px; + } + .page-community .funding-section, + .page-community .stats { + width: 100%; + } +} +.page-community .carousel { + position: relative; + width: 1280px; + margin: 0 auto; + margin-top: 106px; + max-width: 100%; +} +.page-community .carousel .flex-align { + display: flex; + align-items: center; +} +@media (max-width: 768px) { + .page-community .carousel { + width: 100%; + } +} +.page-community .center-image-wrapper { + position: relative; + width: 552px; + height: 314px; +} +@media (max-width: 1118px) { + .page-community .center-image-wrapper { + width: 55%; + height: auto; + } +} +@media (max-width: 768px) { + .page-community .center-image-wrapper { + margin: 0 auto; + width: 86%; + } +} +.page-community .image-container { + display: flex; + justify-content: space-around; + align-items: center; + overflow: hidden; +} +.page-community .image-container img { + max-width: 100%; + transition: + transform 0.7s ease-in-out, + opacity 0.7s ease-in-out; +} +.page-community #center-image { + width: 100%; +} +.page-community #left-image, +.page-community #right-image { + width: 252px; + height: 144px; + opacity: 0.7; +} +@media (max-width: 1118px) { + .page-community #left-image, + .page-community #right-image { + width: 15%; + height: auto; + } +} +@media (max-width: 768px) { + .page-community #left-image, + .page-community #right-image { + display: none; + margin: 0; + } +} +.page-community #left-image.exit, +.page-community #right-image.exit { + transform: translateX(-100%); + opacity: 0; +} +.page-community #left-image.enter, +.page-community #right-image.enter { + transform: translateX(100%); + opacity: 0; +} +.page-community #center-image.exit { + transform: scale(0.8); + opacity: 0; +} +.page-community #center-image.enter { + transform: scale(1); + opacity: 1; +} +.page-community .nav-btn { + position: absolute; + top: 50%; + transform: translateY(-50%); + font-size: 24px; + background: none; + border: none; + cursor: pointer; +} +.page-community #prev-btn { + left: 0; +} +.page-community #next-btn { + right: 0; +} +.page-community .event-info { + position: absolute; + bottom: 10px; + left: 32px; + display: flex; + flex-direction: column; + gap: 4px; +} +@media (max-width: 768px) { + .page-community .event-info { + left: 7px; + } +} +.page-community .event-info span { + color: #fff; + font-family: Work Sans; + font-size: 12px; + font-style: normal; + font-weight: 600; + line-height: 16px; +} +.page-community .event-info .name { + padding-bottom: 5px; + color: var(--black-black-10, #f5f5f7); + font-family: Work Sans; + font-size: 16px; + font-style: normal; + font-weight: 700; + line-height: 24px; +} +.page-community .arrow-wrapper { + display: flex; + justify-content: center; + padding-top: 24px; +} +.page-community :root { + --black-black-0: #fff; + --black-black-10: #f5f5f7; + --black-black-30: #c1c1c2; +} +.page-community .community-spotlight-wrapper { + display: flex; + padding: 20px; + max-width: 1280px; + min-height: 582px; + margin: 100px auto; + gap: 48px; + padding-right: 54px; + padding-left: 73px; +} +.page-community .community-spotlight { + flex: 1; + display: flex; + flex-direction: column; + padding-right: 10px; +} +.page-community .projects-wrapper { + flex: 1; + position: relative; + display: flex; + justify-content: center; + gap: 48px; +} +@media (max-width: 768px) { + .page-community .projects-wrapper { + gap: 48px; + } +} +.page-community .project-card { + background-color: transparent; + border-radius: 4px; + height: fit-content; + width: 252px; + max-height: 456px; +} +@media (max-width: 768px) { + .page-community .project-card { + width: 99%; + } +} +.page-community .project-card.bottom-right { + align-self: end; +} +.page-community .card-image { + border-radius: 4px; + height: 144px; + width: 252px; + background-color: #2c2b2b; + display: flex; + align-items: center; +} +.page-community .spotlight-title, +.page-community .project-title { + color: var(--black-black-10, #f5f5f7); + font-family: Work Sans; + font-size: 16px; + font-style: normal; + font-weight: 700; + line-height: 16px; +} +.page-community .spotlight-subtitle { + color: var(--black-black-10, #f5f5f7); + font-family: Work Sans; + font-size: 16px; + font-style: normal; + font-weight: 700; + line-height: 16px; +} +.page-community .project-description { + color: var(--black-black-30, #c1c1c2); + font-family: Work Sans; + font-size: 16px; + font-style: normal; + font-weight: 400; + line-height: 24px; +} +.page-community .card-details { + background-color: transparent; + display: flex; + flex-direction: column; + text-align: start; + padding: 15px; + height: fit-content; +} +.page-community .view-project { + color: var(--blue-purple-blue-purple-50, #7919ff); + font-family: Work Sans; + font-size: 16px; + font-style: normal; + font-weight: 400; + line-height: 16px; + cursor: pointer; + text-decoration: none; +} +@media (max-width: 1076px) { + .page-community .project-card.bottom-right { + align-self: auto; + } + .page-community .community-spotlight-wrapper { + flex-direction: column; + align-items: center; + margin-left: 0px; + padding-right: 26px; + padding-left: 26px; + } + .page-community .community-spotlight, + .page-community .projects-wrapper { + width: 100%; + margin: 0; + padding: 0; + } + .page-community .projects-wrapper { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + position: static; + } + .page-community .card-image { + width: 100%; + } + .page-community .card-details { + gap: 16px; + margin-top: 10px; + } + .page-community .project-card { + position: static; + margin: 20px 0; + height: fit-content; + } +} +.page-community .w-222 { + width: 222px; +} +.page-community .bottom-cards-section .com-card .card-content { + display: flex; + flex-direction: column; + justify-content: space-between; + gap: 16px; + position: relative; + z-index: 1; + height: 100%; +} +.page-community .bottom-cards-section .com-card { + border-radius: 8px; + padding: 36px; + background: #232325; + min-width: 352px; + height: 442px; + max-width: 352px; + position: relative; + display: flex; + flex-direction: column; + justify-content: space-between; +} +.page-community .bottom-cards-section.bug-bounty { + justify-content: space-around; +} +.page-community .bottom-cards-section.bug-bounty .com-card { + min-width: 559px; + max-width: 559px; + height: 442px; +} +.page-community .pr-bt16 { + position: relative; + bottom: 16px; +} +.page-community .pr-bt28 { + position: relative; + bottom: 28px; +} +.page-community .bottom-cards-section { + display: flex; + flex-direction: row; + justify-content: space-around; + gap: 48px; + max-width: 1280px; + margin: 70px auto; +} +.page-community .bottom-cards-section .com-card { + padding: 36px; + background: #232325; + min-width: 352px; + height: 442px; + max-width: 352px; + position: relative; +} +.page-community .bottom-cards-section .com-card .top-left-img { + position: absolute; + top: 0; + height: 292px; + left: 0; + content: url(../img/community/card-bg-1.svg); +} +.page-community .bottom-cards-section .com-card .top-right-img.bug-bounty-card-bg { + content: url(../img/community/bug-bounty-card-bg.png); + height: 123px; +} +.page-community .bottom-cards-section .com-card .bottom-right-img.bug-bounty-card-bg-2 { + content: url(../img/community/bug-bounty-card-bg-2.png); + height: 123px; +} +.page-community .bottom-cards-section .com-card .bottom-right-img { + position: absolute; + bottom: 0; + right: 0; + height: 333px; + content: url(../img/community/card-bg-2.svg); +} +.page-community .bottom-cards-section .com-card .top-right-img { + height: 390px; + position: absolute; + top: 0; + right: 0; + content: url(../img/community/card-bg-3.svg); +} +.page-community .bottom-cards-section .com-card .card-content { + display: flex; + flex-direction: column; + gap: 16px; + position: relative; + z-index: 1; +} +.page-community .bottom-cards-section .com-card .card-content .card-title { + margin-bottom: 0px !important; + color: var(--black-black-0-white, #fff); + white-space: nowrap; + font-family: Work Sans; + font-size: 20px; + font-style: normal; + font-weight: 700; + line-height: 26px; +} +.page-community .bottom-cards-section .com-card .card-content .card-subtitle { + color: var(--black-black-0, #fff); + font-family: Work Sans; + font-size: 24px; + font-style: normal; + font-weight: 700; + line-height: 32px; + margin-top: 2px; +} +.page-community .bottom-cards-section .com-card .card-content .card-description { + color: var(--black-black-20, #e0e0e1); + font-family: Work Sans; + font-size: 16px; + font-style: normal; + font-weight: 400; + line-height: 24px; + margin-top: 15px; + margin-bottom: 15px; +} +.page-community .bottom-cards-section .com-card .card-content .card-description a { + color: #9a52ff; +} +.page-community .bottom-cards-section .com-card .card-content .card-links { + display: flex; + flex-direction: column; + gap: 8px; +} +.page-community .bottom-cards-section .com-card .card-content .com-card-link { + text-decoration: none; + cursor: pointer; + color: #9a52ff; + font-family: Work Sans; + font-size: 16px; + font-style: normal; + font-weight: 600; + line-height: 24px; + white-space: nowrap; +} +@media (max-width: 767.98px) { + .page-community .bottom-cards-section .com-card .card-content .com-card-link { + display: block; + width: 100%; + } +} +.page-community .bottom-cards-section .com-card .card-content .com-card-link::after { + display: inline-block; + content: url(../img/icons/arrow-right-purple.svg); + position: relative; + top: 1px; + vertical-align: middle; + padding-left: 8px; + -webkit-transition: transform 0.3s ease-out; + -moz-transition: transform 0.3s ease-out; + -ms-transition: transform 0.3s ease-out; + -o-transition: transform 0.3s ease-out; + transition: transform 0.3s ease-out; +} +.page-community .bottom-cards-section .com-card .card-content .com-card-link:hover { + border: none; +} +.page-community .bottom-cards-section .com-card .card-content .com-card-link:hover::after { + -webkit-transform: translateX(4px); + -moz-transform: translateX(4px); + -ms-transform: translateX(4px); + -o-transform: translateX(4px); + transform: translateX(4px); +} +@media (max-width: 768px) { + .page-community .pr-bt28 { + position: relative; + bottom: 0px; + } + .page-community .pr-bt16 { + position: relative; + bottom: 0px; + } + .page-community .bottom-cards-section { + flex-direction: column; + align-items: center; + padding: 20px; + } + .page-community .bottom-cards-section.bug-bounty { + justify-content: space-around; + } + .page-community .bottom-cards-section.bug-bounty .com-card { + min-width: 352px; + height: fit-content; + max-width: 352px; + } + .page-community .bottom-cards-section .com-card { + margin-bottom: 20px; + display: block; + width: 100%; + } +} +.page-community .num-separator { + width: 32px; + height: 1px; + background: var(--black-black-70, #343437); + margin-bottom: 32px; + margin-top: 1px; +} +.page-community .stat-separator { + width: 32px; + height: 1px; + background: var(--black-black-70, #343437); + margin-bottom: 32px; + margin-top: 8px; +} +.page-community .ml-8 { + margin-left: 8px; +} +.page-community .ml-19 { + margin-left: 19px; +} +.page-community .ml-14 { + margin-left: 11px; +} +.page-community .header-div .header { + gap: 10px; + display: flex; + flex-direction: column; + padding-bottom: 35px; +} +.page-community .spotlight-subtitle { + font-size: 32px; + font-weight: 700; + line-height: 38px; + margin-top: 10px; + margin-bottom: 40px; +} +.page-community .spotlight-description { + color: var(--black-black-20); + font-size: 24px; + font-weight: 500; + line-height: 32px; + margin-bottom: 40px; +} +.sdk-img { + align-self: center; +} +.light .sdk-img { + content: url(../img/graphics/sdk-white.png); +} +.light .ref-book-illustration { + content: url(../img/graphics/ref-book-light.png); +} +.light .tutorial-illustration { + content: url(../img/graphics/tutorials-illustration-light.png); +} +.light .concepts-doc-illustration { + content: url(../img/graphics/concepts-docs-light.png); +} +.light .use-cases .wallet-illustration { + content: url(../img/graphics/wallet-light.svg); +} +.light .use-cases .token-illustration { + content: url(../img/graphics/tokens-light.png); +} +.light .use-cases .connections-illustration { + content: url(../img/graphics/nodes-light.svg); +} +.light .quickstart-image { + content: url(../img/graphics/getting-started-pages-light.png); +} +.light .dev-tools-img { + content: url(../img/graphics/dev-tools-light.svg); +} +.light .dev-tools-link:hover p { + color: #000; +} +.dark .sdk-img { + content: url(../img/graphics/sdk-black.png); +} +.dark .ref-book-illustration { + content: url(../img/graphics/ref-book.png); +} +.dark .tutorial-illustration { + content: url(../img/graphics/tutorials-illustration.png); +} +.dark .concepts-doc-illustration { + content: url(../img/graphics/concepts-doc.png); +} +.dark .use-cases .wallet-illustration { + content: url(../img/graphics/wallet-dark.png); +} +.dark .use-cases .token-illustration { + content: url(../img/graphics/tokens-dark.png); +} +.dark .use-cases .connections-illustration { + content: url(../img/graphics/nodes-dark.png); +} +.dark .quickstart-image { + content: url(../img/graphics/getting-started-pages-dark.svg); +} +.dark .dev-tools-img { + content: url(../img/graphics/dev-tools-dark.png); +} +.dark .dev-tools-link:hover p { + color: #fff; +} +.dark .flat-card-grid .nav-link:hover { + color: #e0e0e1; +} +.get-started-img, +.flat-card { + max-width: 100%; + max-height: 100%; +} +.faded-text { + font-family: 'Work Sans'; + font-style: normal; + font-weight: 400; + font-size: 15.5667px; + line-height: 23px; +} +.page-docs-index section { + padding-top: 64px; + padding-bottom: 64px; +} +.page-docs-index .dev-tools-link h6::before { + margin-top: -20px; + height: 20px; +} +.page-docs-index .dev-tools-link h6:hover { + text-decoration: underline; + text-decoration-color: #9a52ff; + background: none !important; +} +.page-docs-index .dev-tools-link:hover p { + text-decoration: none !important; + background: none !important; + display: inline-block; +} +.page-docs-index .dev-tools-link a:hover { + color: #9a52ff; + text-decoration: none !important; +} +.page-docs-index .dev-tools-link .btn-arrow::after { + content: url(../img/icons/arrow-right-purple.svg); + width: 1.5rem; + height: 1.5rem; +} +.page-docs-index .langs > a { + display: block; +} +.page-docs-index .langs h5:hover { + text-decoration: underline; + text-decoration-color: #9a52ff; + background: none !important; +} +.page-docs-index .langs a:hover { + text-decoration: none !important; +} +.page-docs-index .langs .btn-arrow::after { + content: url(../img/icons/arrow-right-purple.svg); + vertical-align: baseline; + width: 1.5rem; + height: 1.5rem; +} +.page-docs-index .langs h5 { + margin-block-start: 0 !important; +} +.page-docs-index .langs h5::before { + margin-top: 0; + height: 0; +} +.page-docs-index h1 { + font-size: 3.875rem; +} +.page-docs-index .arrow-purple::after { + content: url(../img/icons/arrow-right-purple.svg); +} +.page-docs-index .documentation-index:hover, +.page-docs-index .documentation-index::after { + color: #9a52ff; + text-decoration: none !important; + background: none !important; +} +@media (max-width: 765px) { + .page-docs-index h1 { + font-size: 3rem; + } + .page-docs-index .flat-card-grid { + grid-gap: 24px; + } + .page-docs-index .flat-card-grid .flat-card { + padding: 32px 12px; + } + .page-docs-index::before { + display: none; + } +} +#langs-cards { + grid-gap: 40px; +} +@media (max-width: 991.98px) { + .page-docs-index .langs-cards { + grid-template-columns: 1fr 1fr; + grid-auto-rows: auto; + } +} +.dev-tools-img { + max-width: 100%; + max-height: 100%; + margin: auto; +} +.page-docs .h4::before { + margin-top: 0; + height: 0; +} +.page-docs .row { + margin-right: 0; + margin-left: 0; +} +.page-docs .video-grid { + grid-gap: 35px; +} +.page-docs .title-space { + margin-bottom: 16px; +} +.page-docs .circled-logo { + margin-left: 0.1rem; +} +.flat-card-grid { + grid-gap: 15px; + max-width: 100%; + min-height: 384px; +} +.flat-card-grid .flat-card { + padding: 32px 50px; + height: 100%; + width: 100%; + box-shadow: none; +} +.flat-card-grid .flat-card-padding { + margin-bottom: 75px; +} +.flat-card-grid img { + width: auto; + height: 115px; + margin-left: auto; + margin-right: auto; +} +.flat-card-grid .nav-link { + border: none !important; +} +.flat-card-grid .nav-link:hover { + text-decoration: underline; + text-decoration-color: #9a52ff; +} +.flat-card-grid .nav-link::after { + content: none !important; +} +@media (max-width: 991.98px) { + .flat-card-grid .flat-card-padding { + margin-bottom: 0; + } + .flat-card-grid .nav-link::after { + content: ' ' !important; + } + .flat-card-grid .flat-card .btn { + display: none; + } +} +.float-up-on-hover { + transition: all 0.35s ease-out; + cursor: pointer; +} +.float-up-on-hover:hover { + -webkit-transform: translateY(-16px); + -moz-transform: translateY(-16px); + -ms-transform: translateY(-16px); + -o-transform: translateY(-16px); + transform: translateY(-16px); +} +.float-up-on-hover .video-image:hover { + -webkit-transform: none; + -moz-transform: none; + -ms-transform: none; + -o-transform: none; + transform: none; +} +@media (min-width: 992px) { + .align-button-on-bottom .btn-primary { + position: absolute; + bottom: 0; + } +} +.center-image { + display: flex; + justify-content: center; +} +.quickstart-card .quickstart-image { + margin-left: -20px; + margin-right: -20px; + margin-bottom: -20px; +} +@media (min-width: 992px) { + .quickstart-card { + margin-left: -32px; + margin-right: -32px; + margin-bottom: -32px; + width: calc(100% + 64px); + } +} +.explore-links .card-grid { + grid-gap: 40px; +} +.full-documentation-link { + margin-top: -35px; +} +.osano-cm-close { + box-sizing: content-box !important; +} +.osano-cm-switch { + box-sizing: content-box !important; +} +.osano-cm-widget { + right: 16px; + width: 50px; + height: 50px; + border: 1px solid transparent; +} +@media (min-width: 992px) { + .osano-cm-widget { + right: 32px; + } +} +html.light article p code, +html.light article table code, +html.light article li > code { + background-color: #e0e0e1; + color: #111112; +} +html.light body { + background-color: #f5f5f7; + color: #000; +} +html.light #topnav-theme .custom-theme-toggle .custom-control-label::before { + background-color: transparent; + background-position: bottom right; + transform: rotate(-15deg); +} +html.light h1:not(.chip), +html.light h2:not(.chip), +html.light h3:not(.chip), +html.light h4:not(.chip), +html.light h5:not(.chip), +html.light h6:not(.chip), +html.light .h1:not(.chip), +html.light .h2:not(.chip), +html.light .h3:not(.chip), +html.light .h4:not(.chip), +html.light .h5:not(.chip), +html.light .h6:not(.chip) { + color: #000; +} +html.light h1.green-500, +html.light h2.green-500, +html.light h3.green-500, +html.light h4.green-500, +html.light h5.green-500, +html.light h6.green-500, +html.light .h1.green-500, +html.light .h2.green-500, +html.light .h3.green-500, +html.light .h4.green-500, +html.light .h5.green-500, +html.light .h6.green-500 { + color: #28b86a; + text-shadow: + #fff 0 0 2px, + #fff -1px -1px 2px, + #fff 1px 1px 2px; +} +html.light .bg-grey-800 { + background-color: #fcfcfd; +} +html.light .grey-400 { + color: #454549; +} +html.light .text-muted { + color: #232325 !important; +} +html.light .longform { + color: #232325; +} +html.light .numbers { + color: #000; +} +html.light .stat-highlight, +html.light .eyebrow { + color: #111112; +} +html.light .invertible-img { + filter: invert(100%); +} +html.light .arrow-link::after { + content: url('../img/lightmode/icon-long-arrow.svg'); +} +html.light .search .input-group-text, +html.light .input-group .input-group-text, +html.light .form-group .input-group-text { + background-color: #e0e0e1; + color: #232325; +} +html.light .search label .input-group-text, +html.light .search .form-control:not(.btn), +html.light .input-group label .input-group-text, +html.light .input-group .form-control:not(.btn), +html.light .form-group label .input-group-text, +html.light .form-group .form-control:not(.btn) { + color: #000; + background-color: #e0e0e1; + border-color: #e0e0e1; +} +html.light .search .ds-input, +html.light .input-group .ds-input, +html.light .form-group .ds-input { + color: #000; + background-color: #e0e0e1; + border-color: #e0e0e1; +} +html.light .search .ds-input:focus, +html.light .input-group .ds-input:focus, +html.light .form-group .ds-input:focus { + border-color: #9a52ff; +} +html.light .list-group-item { + border-color: #232325; + background-color: #f5f5f7; +} +html.light .list-group-item.disabled { + color: #a2a2a4; +} +html.light .progress { + background-color: #e0e0e1; +} +html.light [data-component-name='Search/SearchIcon'] > path { + fill: #000; +} +html.light a, +html.light nav a, +html.light a:not([role='button']) { + color: #000; +} +html.light a.btn-primary, +html.light nav a.btn-primary, +html.light a:not([role='button']).btn-primary { + color: #fff; +} +html.light a.btn-primary:hover, +html.light nav a.btn-primary:hover, +html.light a:not([role='button']).btn-primary:hover { + color: #fff; +} +html.light a:hover, +html.light a:active, +html.light a.active, +html.light nav a:hover, +html.light nav a:active, +html.light nav a.active, +html.light a:not([role='button']):hover, +html.light a:not([role='button']):active, +html.light a:not([role='button']).active { + color: #7919ff; +} +html.light a:not(.btn):focus, +html.light nav a:not(.btn):focus, +html.light a:not([role='button']):not(.btn):focus { + background-color: transparent; +} +html.light a.card:hover, +html.light:active, +html.light.active { + color: #000; +} +html.light .landing-table tbody td { + color: #232325; +} +html.light .btn-outline-secondary, +html.light article a.button, +html.light .navbar-dark .navbar-nav .nav-link.btn-outline-secondary { + color: #111112; + border-color: #111112; +} +html.light .btn-outline-secondary:not(:disabled):not(.disabled):hover, +html.light .btn-outline-secondary:not(:disabled):not(.disabled):active, +html.light article a.button:not(:disabled):not(.disabled):hover, +html.light article a.button:not(:disabled):not(.disabled):active, +html.light .navbar-dark .navbar-nav .nav-link.btn-outline-secondary:not(:disabled):not(.disabled):hover, +html.light .navbar-dark .navbar-nav .nav-link.btn-outline-secondary:not(:disabled):not(.disabled):active { + color: #9a52ff; + border-color: #9a52ff; + background-color: transparent; +} +html.light .breadcrumb { + background: #f5f5f7; +} +html.light .breadcrumb-item a { + color: #454549; +} +html.light .breadcrumb-item a:hover { + color: #9a52ff; +} +html.light .top-nav { + background: #f5f5f7; +} +html.light .top-nav #topnav-pages .nav-link { + color: #000; +} +html.light .top-nav .navbar-brand .logo { + content: url(../img/XRPLedger_DevPortal-black.svg); + height: 40px; +} +html.light .top-nav #dropdown-hero-for-docs > img { + content: url(../img/icons/lightmode/docs.svg); +} +html.light .top-nav #dropdown-hero-for-community > img { + content: url(../img/icons/lightmode/contribute.svg); +} +html.light .top-nav .dropdown-menu { + background-color: #f5f5f7; + border-color: #f5f5f7; + box-shadow: 0px 5px 20px 0px #c1c1c2; +} +html.light .top-nav .dropdown-menu a:hover, +html.light .top-nav .dropdown-menu a.active { + color: #7919ff; +} +html.light .top-nav .dropdown-menu .dropdown-item.dropdown-hero > img { + background-color: #fcfcfd; +} +html.light .top-nav .dropdown-menu .dropdown-item.dropdown-hero p { + color: #343437; +} +html.light .top-nav .dropdown-menu .dropdown-item.active { + color: #7919ff; +} +html.light .top-nav .dropdown-menu h5 { + color: #454549; +} +html.light .top-nav .dropdown-menu .col-for-get_started { + background-color: #e0e0e1; +} +html.light .top-nav #topnav-button { + background-color: #e0e0e1; +} +@media (max-width: 991.98px) { + html.light .top-nav .navbar-toggler .navbar-toggler-icon::after, + html.light .top-nav .navbar-toggler .navbar-toggler-icon::before, + html.light .top-nav .navbar-toggler .navbar-toggler-icon div { + background-color: #111112; + } + html.light .top-nav .navbar-nav .nav-link, + html.light .top-nav .navbar-collapse > .nav-item { + background: #e0e0e1; + } + html.light .top-nav #top-main-nav { + background-color: #c1c1c2; + } +} +html.light aside .sidenav_cat_title { + color: #000; +} +html.light .page-toc .level-1 a, +html.light .command-list .separator { + color: #000; +} +html.light aside a:hover, +html.light aside .sidenav_cat_title:hover, +html.light aside a.active, +html.light aside a.active:hover, +html.light aside .active > a, +html.light aside .active > a:hover { + color: #7919ff; +} +html.light .dactyl-tree-nav nav { + border-left: 1px solid #000; +} +html.light .dactyl-tree-nav nav .nav-link:hover, +html.light .dactyl-tree-nav nav .nav-link:active { + border-left-color: #7919ff; +} +html.light .dactyl-tree-nav nav .active > .nav-link { + border-left-color: #7919ff; +} +html.light .page-toc, +html.light .command-list { + border-left: 1px solid #000; +} +html.light .page-toc .level-3, +html.light .command-list .level-3 { + border-left: 1px solid #000; +} +html.light .page-toc li a:hover, +html.light .page-toc li a .active, +html.light .command-list li a:hover, +html.light .command-list li a .active { + border-left-color: #7919ff; +} +html.light .footer-brand .logo { + filter: invert(100%); +} +html.light .copyright-license { + text-shadow: + #fff 0px 0px 2px, + #fff 1px 1px 2px, + #fff 2px 2px 3px, + #fff 2px 2px 4px, + #fff 2px 2px 5px, + #fff 2px 2px 6px, + #fff -1px -1px 2px, + #fff -2px -2px 3px, + #fff -2px -2px 4px; +} +html.light a.osano-cm-link { + color: #fff; +} +html.light article .card, +html.light .landing .card, +html.light .cta-card, +html.light aside .card { + color: #000; + background-color: #fcfcfd; + box-shadow: 0px 5px 20px 0px #c1c1c2; +} +html.light #code-samples-deck .card { + box-shadow: 0px 5px 20px 0px #c1c1c2; +} +html.light #code-samples-deck .card-header { + border-bottom: none; + background-color: #fcfcfd; +} +html.light #code-samples-deck .card-footer { + background-color: #fcfcfd; +} +html.light .page-faq.landing-builtin-bg::before, +html.light .mini-faq.landing-builtin-bg::before { + opacity: 0.6; +} +html.light .page-faq .q-wrapper, +html.light .mini-faq .q-wrapper { + background-color: #fcfcfd; + color: #000; + box-shadow: 0px 5px 20px 0px #c1c1c2; +} +html.light .page-faq .q-wrapper > h4 a.expander:hover, +html.light .mini-faq .q-wrapper > h4 a.expander:hover { + color: #000; +} +html.light .page-community .com-card { + background: #fff; +} +html.light .page-community .project-description { + color: #343437; +} +html.light .page-community #platform-stack-overflow { + content: url('../img/logos/lightmode/stack-overflow.svg'); +} +html.light .page-community #platform-discord { + content: url('../img/logos/lightmode/discord.svg'); +} +html.light .status.not_enabled { + color: #aeb200; +} +html.light .pg-category { + color: #454549; +} +html.light .landing .nav .nav-link { + color: #232325; + border-bottom-color: #c1c1c2; +} +html.light .landing .circled-logo { + background-color: #e0e0e1; +} +html.light .landing .circled-logo img[src='assets/img/logos/globe.svg'] { + filter: invert(100%); +} +html.light .landing p a, +html.light .landing .longform a { + color: #7919ff; +} +html.light .devportal-callout.caution, +html.light .devportal-callout.注意 { + border-color: #aeb200; +} +html.light .devportal-callout.caution > strong:first-child::before, +html.light .devportal-callout.注意 > strong:first-child::before { + color: #aeb200; +} +html.light .devportal-callout.tip, +html.light .devportal-callout.ヒント { + border-color: #2dcf78; +} +html.light .devportal-callout.tip > strong:first-child::before, +html.light .devportal-callout.ヒント > strong:first-child::before { + color: #2dcf78; +} +html.light code { + color: #000; +} +html.light pre code, +html.light pre { + background-color: #e0e0e1; +} +html.light .multicode a { + color: #000; +} +html.light .multicode a.current { + color: #fff; +} +html.light .multicode a:hover { + text-decoration: none; + background-color: #e0e0e1; + color: #fff; +} +html.light .multicode a:focus { + background-color: #232325; +} +html.light .codehilite .btn-outline-secondary { + background-color: #232325; + color: #f5f5f7; + border-color: #f5f5f7; +} +html.light .interactive-block .breadcrumb-item.done a::after { + color: #145c35; +} +html.light .modal-content { + background-color: #fcfcfd; +} +html.light .rpc-tool pre .toggle { + color: #fff; +} +html.light .rpc-tool pre .toggle:hover { + color: #b480ff; +} +html.light .page-home #home-hero-graphic { + content: url('../img/lightmode/home-hero.svg'); +} +html.light .page-home #benefits-list #public { + content: url('../img/icons/lightmode/public.svg'); +} +html.light .page-home #benefits-list #streamlined { + content: url('../img/icons/lightmode/streamlined.svg'); +} +html.light .page-home #benefits-list #performance { + content: url('../img/icons/lightmode/performance.svg'); +} +html.light .page-home #benefits-list #low-cost { + content: url('../img/icons/lightmode/low-cost.svg'); +} +html.light .page-home #benefits-list #community { + content: url('../img/icons/lightmode/community.svg'); +} +html.light .page-home #benefits-list #reliability { + content: url('../img/icons/lightmode/reliability.svg'); +} +html.light #validator-graphic { + content: url('../img/lightmode/validators.svg'); +} +html.light #wallets #wallet-xumm { + content: url('../img/wallets/lightmode/xumm.svg'); +} +html.light #wallets #wallet-bitfrost { + content: url('../img/wallets/lightmode/bitfrost.png'); +} +html.light #wallets #wallet-towo { + content: url('../img/wallets/lightmode/towo.svg'); +} +html.light #wallets #wallet-keystone { + content: url('../img/wallets/lightmode/keystone.svg'); +} +html.light #wallets #wallet-dcent { + content: url('../img/wallets/lightmode/dcent.svg'); +} +html.light #wallets #wallet-coin { + content: url('../img/wallets/lightmode/coin.svg'); +} +html.light #wallets #wallet-gem { + content: url('../img/wallets/lightmode/gem.svg'); +} +html.light #wallets #wallet-crossmark { + content: url('../img/wallets/lightmode/crossmark.png'); +} +html.light #wallets #wallet-joey { + content: url('../img/wallets/lightmode/joey.svg'); +} +html.light #top-exchanges #exch-bitstamp { + content: url('../img/exchanges/lightmode/bitstamp.svg'); +} +html.light #top-exchanges #exch-cex-io { + content: url('../img/exchanges/lightmode/cex-io.svg'); +} +html.light #top-exchanges #exch-liquid { + content: url('../img/exchanges/lightmode/liquid.svg'); +} +html.light #top-exchanges #exch-bitfinex { + content: url('../img/exchanges/lightmode/bitfinex.svg'); +} +html.light #top-exchanges #exch-bittrex { + content: url('../img/exchanges/lightmode/bittrex.png'); +} +html.light #top-exchanges #exch-currency-com { + content: url('../img/exchanges/lightmode/currency-com.png'); +} +html.light #top-exchanges #exch-ftx { + content: url('../img/exchanges/lightmode/ftx.png'); +} +html.light #top-exchanges #exch-lmax { + content: url('../img/exchanges/lightmode/lmax.png'); +} +html.light .timeline-dot { + background-color: #f5f5f7; +} +html.light .page-uses .card-body { + background: #fff; + color: #343437; +} +html.light .page-uses .modal-footer, +html.light .page-uses .modal-header { + background-color: #fcfcfd; +} +html.light .page-uses #infrastructure { + content: url('../img/icons/usecases/lightmode/ic_infrastructure.png'); +} +html.light .page-uses #developer_tooling { + content: url('../img/icons/usecases/lightmode/ic_developer_tooling.png'); +} +html.light .page-uses #interoperability { + content: url('../img/icons/usecases/lightmode/ic_interoperability.png'); +} +html.light .page-uses #wallet { + content: url('../img/icons/usecases/lightmode/ic_wallet.png'); +} +html.light .page-uses #nfts { + content: url('../img/icons/usecases/lightmode/ic_nfts.png'); +} +html.light .page-uses #exchanges { + content: url('../img/icons/usecases/lightmode/ic_exchanges.png'); +} +html.light .page-uses #gaming { + content: url('../img/icons/usecases/lightmode/ic_gaming.png'); +} +html.light .page-uses #security { + content: url('../img/icons/usecases/lightmode/ic_security.png'); +} +html.light .page-uses #payments { + content: url('../img/icons/usecases/lightmode/ic_payments.png'); +} +html.light .page-uses #web_monetization { + content: url('../img/icons/usecases/lightmode/ic_web_monetization.png'); +} +html.light .page-uses #sustainability { + content: url('../img/icons/usecases/lightmode/ic_sustainability.png'); +} +html.light .page-uses #cbdc { + content: url('../img/icons/usecases/lightmode/ic_cbdc.png'); +} +html.light .page-uses #custody { + content: url('../img/icons/usecases/lightmode/ic_custody.png'); +} +html.light .page-uses #other { + content: url('../img/icons/usecases/lightmode/ic_other.png'); +} +html.light .page-uses #carbon_markets { + content: url('../img/icons/usecases/lightmode/ic_carbon_markets.png'); +} +html.light .page-uses #defi { + content: url('../img/icons/usecases/lightmode/ic_defi.png'); +} +html.light .page-uses .category-header { + color: #343437; +} +html.light .page-uses .category_count { + background: #d2b2ff; + color: #350080; +} +html.light .page-uses .section-text-title { + color: #000; +} +html.light .page-uses #use_case_companies_list #bitgo .biz-logo { + max-height: 40px; + content: url('../img/uses/lightmode/bitgo.svg'); +} +html.light .page-uses #use_case_companies_list #sologenic-nft .biz-logo { + max-height: 40px; + content: url('../img/uses/lightmode/sologenic-nft.svg'); +} +html.light .page-uses #use_case_companies_list #carbonland-trust .biz-logo { + max-height: 40px; + content: url('../img/uses/lightmode/carbonland-trust.svg'); +} +html.light .page-uses #use_case_companies_list #futureverse .biz-logo { + max-height: 40px; + content: url('../img/uses/lightmode/futureverse.png'); +} +html.light .page-uses #use_case_companies_list #moai-finance .biz-logo { + max-height: 40px; + content: url('../img/uses/lightmode/moai-finance.svg'); +} +html.light .page-uses #use_case_companies_list #orchestra-finance .biz-logo { + max-height: 40px; + content: url('../img/uses/lightmode/orchestra-finance.svg'); +} +html.light .page-uses #use_case_companies_list #x-tokenize .biz-logo { + max-height: 40px; + content: url('../img/uses/lightmode/x-tokenize.svg'); +} +html.light .page-uses #use_case_companies_list #casino-coin .biz-logo { + max-height: 40px; + content: url('../img/uses/lightmode/casino-coin.svg'); +} +html.light .page-uses #use_case_companies_list #xrp-cafe .biz-logo { + max-height: 40px; + content: url('../img/uses/lightmode/xrp-cafe.svg'); +} +html.light .page-uses #use_case_companies_list #coil .biz-logo { + max-height: 40px; + content: url('../img/uses/lightmode/coil.svg'); +} +html.light .page-uses #use_case_companies_list #xrp-toolkit .biz-logo { + max-height: 40px; + content: url('../img/uses/lightmode/xrp-toolkit.svg'); +} +html.light .page-uses #use_case_companies_list #first-ledger-bot .biz-logo { + max-height: 40px; + content: url('../img/uses/lightmode/first-ledger-bot.svg'); +} +html.light .page-uses #use_case_companies_list #cryptum .biz-logo { + max-height: 40px; + content: url('../img/uses/lightmode/cryptum.svg'); +} +html.light .page-uses #use_case_companies_list #xrpl-org-ledger-explorer .biz-logo { + max-height: 40px; + content: url('../img/uses/lightmode/xrpl-org-ledger-explorer.svg'); +} +html.light .page-uses #use_case_companies_list #evernode .biz-logo { + max-height: 40px; + content: url('../img/uses/lightmode/evernode.svg'); +} +html.light .page-uses #use_case_companies_list #xrpl-rosetta .biz-logo { + max-height: 40px; + content: url('../img/uses/lightmode/xrpl-rosetta.svg'); +} +html.light .page-uses #use_case_companies_list #ripples-cbdc-platform .biz-logo { + max-height: 40px; + content: url('../img/uses/lightmode/ripples-cbdc-platform.svg'); +} +html.light .page-uses #use_case_companies_list #xrpscan .biz-logo { + max-height: 40px; + content: url('../img/uses/lightmode/xrpscan.svg'); +} +html.light .page-uses #use_case_companies_list #ripples-on-demand-liquidity .biz-logo { + max-height: 40px; + content: url('../img/uses/lightmode/ripples-on-demand-liquidity.svg'); +} +html.light .page-uses #use_case_companies_list #xumm-wallet .biz-logo { + max-height: 40px; + content: url('../img/uses/lightmode/xumm-wallet.svg'); +} +html.light .page-uses #use_case_companies_list #sologenic-dex .biz-logo { + max-height: 40px; + content: url('../img/uses/lightmode/sologenic-dex.svg'); +} +html.light .page-uses #use_case_companies_list #joey-wallet .biz-logo { + max-height: 40px; + content: url('../img/uses/lightmode/joey-wallet.svg'); +} +html.light .page-uses #use_case_companies_list #Crossmark .biz-logo { + max-height: 40px; + content: url('../img/uses/lightmode/Crossmark.png'); +} +html.light .page-uses #use_case_companies_list #threezy .biz-logo { + max-height: 40px; + content: url('../img/uses/lightmode/threezy.png'); +} +html.light .page-uses .modal-content-uses .first-ledger-bot { + content: url('../img/uses/lightmode/first-ledger-bot.svg'); +} +html.light .page-uses .modal-content-uses .moai-finance { + content: url('../img/uses/lightmode/moai-finance.svg'); +} +html.light .page-uses .modal-content-uses .orchestra-finance { + max-height: 52px; + margin: 0; + content: url('../img/uses/lightmode/orchestra-finance.svg'); +} +html.light .page-uses #bitpay .biz-logo, +html.light .page-uses #forte .biz-logo, +html.light .page-uses #xrplorer .biz-logo, +html.light .page-uses #gatehub .biz-logo { + filter: invert(100%); +} +html.light .landing-bg { + opacity: 0.4; +} +@media (min-width: 768px) { + html.light .landing-bg { + opacity: 1; + } +} +html.light .landing-builtin-bg::before { + opacity: 0.4; +} +@media (min-width: 768px) { + html.light .landing-builtin-bg::before { + opacity: 1; + } +} +html.light #feedback-content .widget-form-wrapper { + background-color: #fff !important; +} +html.light #feedback-content .widget-form-wrapper div { + background-color: #fff !important; +} +html.light #feedback-content .widget-form-wrapper textarea { + background-color: #f5f5f7 !important; +} +html.light #feedback-content .widget-form-wrapper .widget-header-title { + color: #111112 !important; +} +html.light #feedback-content .widget-form-wrapper .cancel { + color: #7919ff !important; +} +html.light #feedback-content .widget-helpful .widget-header { + background-color: #fff !important; +} +html.light #feedback-content .widget-helpful .widget-header-title { + color: #111112 !important; +} +html.light #feedback-content .widget-helpful .widget-header-icon { + filter: invert(100%); +} +html.light .page-docs-index #software-and-sdks .card-deck .card:nth-child(1) .card-footer { + background-image: url(../img/cards/lightmode/4col-green.svg); +} +html.light .page-docs-index #software-and-sdks .card-deck .card:nth-child(2) .card-footer { + background-image: url(../img/cards/lightmode/4col-light-blue.svg); +} +html.light .page-docs-index #software-and-sdks .card-deck .card:nth-child(4) .card-footer { + background-image: url(../img/cards/lightmode/4col-yellow.svg); +} +html.light .page-docs-index #doc-types .card-deck .card:nth-child(4) .card-footer { + background-image: url(../img/cards/lightmode/4col-light-blue-2.svg); +} +html.light .page-docs-index .funding-text, +html.light .page-community .funding-text { + color: #232325; +} +html.light .page-docs-index .stat .small-text, +html.light .page-community .stat .small-text { + color: #232325; +} +html.light .page-docs-index .project-card, +html.light .page-community .project-card { + background-color: transparent; +} +html.light .page-docs-index .card-details, +html.light .page-community .card-details { + background-color: transparent; +} +html.light .page-docs-index .card-image, +html.light .page-community .card-image { + background: #e0e0e1; +} +html.light .page-docs-index #community-table tr, +html.light .page-community #community-table tr { + border-bottom: 1px solid #34343740; +} +html.light .page-docs-index .card-description, +html.light .page-community .card-description { + color: #343437 !important; +} +html.light .page-docs-index .card-subtitle, +html.light .page-community .card-subtitle { + color: #111112 !important; +} +html.light .page-docs-index .card-title, +html.light .page-community .card-title { + color: #111112 !important; +} +html.light .page-docs-index .main-title, +html.light .page-community .main-title { + color: #111112; +} +html.light .page-docs-index .event-location, +html.light .page-community .event-location { + color: #232325 !important; +} +html.light .page-docs-index .event-details, +html.light .page-community .event-details { + color: #232325 !important; +} +html.light .page-docs-index .upcoming-event .event-name, +html.light .page-community .upcoming-event .event-name { + color: #111112; +} +html.light .page-docs-index .upcoming-label, +html.light .page-community .upcoming-label { + color: #232325 !important; +} +html.light .page-docs-index .description, +html.light .page-community .description { + color: #232325; +} +html.light .page-docs-index .events-text, +html.light .page-community .events-text { + color: #111112; +} +html.light .page-docs-index .discord-icon, +html.light .page-community .discord-icon { + content: url(../img/community/ic_discord_light.png); +} +html.light .page-docs-index .twitter-icon, +html.light .page-community .twitter-icon { + content: url(../img/community/ic_twitter_light.png); +} +html.light .page-docs-index .youtube-icon, +html.light .page-community .youtube-icon { + content: url(../img/community/ic_youtube_light.png); +} +html.light .page-docs-index .xrpl-icon, +html.light .page-community .xrpl-icon { + content: url(../img/community/ic_xrpl_light.png); +} +html.light .page-docs-index .github-icon, +html.light .page-community .github-icon { + content: url(../img/community/ic_github_light.png); +} +html.light .page-docs-index .stackoverflow-icon, +html.light .page-community .stackoverflow-icon { + content: url(../img/community/ic_stackoverflow_light.png); +} +html.light .page-docs-index #run-a-network-node .card-deck .card:nth-child(4) .card-footer, +html.light .page-community #run-a-network-node .card-deck .card:nth-child(4) .card-footer { + background-image: url(../img/cards/lightmode/4col-light-green.svg); +} +html.light .page-docs-index #run-a-network-node .text-cards a, +html.light .page-community #run-a-network-node .text-cards a { + color: #000; +} +html.light .page-docs-index #xrpl-blog .blog-graphic, +html.light .page-community #xrpl-blog .blog-graphic { + content: url(../img/community/lightmode/community-blog@2x.png); +} +html.light .page-docs-index #xrpl-events .text-light, +html.light .page-community #xrpl-events .text-light { + color: #000 !important; +} +html.light .page-docs-index #xrplGrantsDark g, +html.light .page-docs-index #xrplGrantsDark-small g, +html.light .page-docs-index #careersDark g, +html.light .page-docs-index #careersDark-small g, +html.light .page-community #xrplGrantsDark g, +html.light .page-community #xrplGrantsDark-small g, +html.light .page-community #careersDark g, +html.light .page-community #careersDark-small g { + filter: invert(100%) brightness(0.8); +} +html.light #find-us-on-platforms .card-deck .card:nth-child(2) .card-footer { + background-image: url(../img/cards/lightmode/4col-light-blue-3.svg); +} +html.light .page-references #refs-types .card-deck .card:nth-child(2) .card-footer { + background-image: url(../img/cards/lightmode/3col-green-2.svg); +} +html.light .page-references #xrpl-protocol .card-deck .card:nth-child(1) .card-footer { + background-image: url(../img/cards/lightmode/4col-light-blue-4.svg); +} +html.light ::-webkit-input-placeholder { + color: #454549; +} +html.light :-ms-input-placeholder { + color: #454549; +} +html.light ::-moz-placeholder { + color: #454549; + opacity: 1; +} +html.light :-moz-placeholder { + color: #454549; + opacity: 1; +} +html.light .page-events label { + color: #111112; +} +html.light .page-events .event-card { + color: #000; + background-color: #fcfcfd; + box-shadow: 0px 5px 20px 0px #c1c1c2; +} +html.light .page-events a.event-card:hover { + color: #000; +} +html.light .page-events .event-hero { + color: #111112; +} +html.light .page-events .event-save-date { + color: #111112; +} +html.light .page-events .event-small-gray { + color: #454549; +} +html.light .page-events #event-hero-image { + height: 100%; + min-height: 209px; + background: url(../img/events/event-hero1-light@2x.png); + background-size: contain; + background-repeat: no-repeat; + background-position: center; +} +html.light .page-events .icon-date::before { + background: url(../img/events/event-date-light.svg); +} +html.light .page-events .icon-location::before { + background: url(../img/events/event-location-light.svg); +} +html.light .page-events .events-filter[type='checkbox']::before { + background-color: #f5f5f7; +} +html.light .page-events .events-filter[type='checkbox']:not(:disabled):checked:hover::after { + background-image: url(../img/events/event-check.svg); + background-repeat: no-repeat; + background-position: center; + background-color: #5f00e5; + border-width: 2px; + border-style: solid; + border-color: #5f00e5; + border-radius: 4px; +} +html.light .page-events .events-filter[type='checkbox']:not(:disabled):hover::before { + background-color: #f5f5f7; +} +html.light .page-events .events-filter[type='checkbox']:not(:disabled):hover::after { + background-color: #f5f5f7; +} +html.light .page-ambassadors #benefits-list #benefits-01 { + content: url('../img/ambassadors/lightmode/benefits-01.svg'); +} +html.light .page-ambassadors #benefits-list #benefits-02 { + content: url('../img/ambassadors/lightmode/benefits-02.svg'); +} +html.light .page-ambassadors #benefits-list #benefits-03 { + content: url('../img/ambassadors/lightmode/benefits-03.svg'); +} +html.light .page-ambassadors #benefits-list #benefits-04 { + content: url('../img/ambassadors/lightmode/benefits-04.svg'); +} +html.light .page-ambassadors #benefits-list #benefits-05 { + content: url('../img/ambassadors/lightmode/benefits-05.svg'); +} +html.light .page-ambassadors #benefits-list #benefits-06 { + content: url('../img/ambassadors/lightmode/benefits-06.svg'); +} +html.light .page-ambassadors #eligibility-list #eligibility-01 { + content: url('../img/ambassadors/lightmode/eligibility-01.svg'); +} +html.light .page-ambassadors #eligibility-list #eligibility-02 { + content: url('../img/ambassadors/lightmode/eligibility-02.svg'); +} +html.light .page-ambassadors #eligibility-list #eligibility-03 { + content: url('../img/ambassadors/lightmode/eligibility-03.svg'); +} +html.light .page-ambassadors #eligibility-list #eligibility-04 { + content: url('../img/ambassadors/lightmode/eligibility-04.svg'); +} +html.light .page-ambassadors #eligibility-list #eligibility-05 { + content: url('../img/ambassadors/lightmode/eligibility-05.svg'); +} +html.light .page-funding .funding-list #funding-01 { + content: url('../img/funding/lightmode/funding-01.svg'); +} +html.light .page-funding .funding-list #funding-02 { + content: url('../img/funding/lightmode/funding-02.svg'); +} +html.light .page-funding .funding-list #funding-03 { + content: url('../img/funding/lightmode/funding-03.svg'); +} +html.light .page-funding .funding-list #funding-04 { + content: url('../img/funding/lightmode/funding-04.svg'); +} +html.light .page-funding #xrplGrantsDark { + filter: invert(100%) brightness(0.8); +} +html.light .page-impact .connect-list #connect-01 { + content: url('../img/impact/lightmode/connect-01.svg'); +} +html.light .page-impact .connect-list #connect-02 { + content: url('../img/impact/lightmode/connect-02.svg'); +} +html.light .page-impact .connect-list #connect-03 { + content: url('../img/impact/lightmode/connect-03.svg'); +} +html.light .page-impact .connect-list #connect-04 { + content: url('../img/impact/lightmode/connect-04.svg'); +} +html.light .page-impact #map-light { + display: block; +} +html.light .page-impact #map-dark { + display: none; +} +html.light main article .card-grid { + color: #000; +} +html.light main article .card-grid code { + background-color: #d6fae7; +} +html.light main article .card-grid .card-icon-container, +html.light main article .card-grid.card-grid-3xN .card-icon-container { + background: #c1c1c2; +} +html.light [data-component-name='Footer/Footer'] [data-component-name='Footer/FooterColumn'] { + text-shadow: + #f5f5f7 0px 0px 2px, + #f5f5f7 1px 1px 2px, + #f5f5f7 2px 2px 3px, + #f5f5f7 2px 2px 4px, + #f5f5f7 2px 2px 5px, + #f5f5f7 2px 2px 6px, + #f5f5f7 -1px -1px 2px, + #f5f5f7 -2px -2px 3px, + #f5f5f7 -2px -2px 4px; +} +html.light .dev-blog .text-bg { + background-color: #fff; +} +html.light .dev-blog #card-date { + color: #454549; +} +html.light .dev-blog .category-header { + color: #111112; +} +html.light .dev-blog label { + color: #343437; +} +html.light .dev-blog .blog-filter[type='checkbox']::before { + background: #f5f5f7; +} +html.light .dev-blog .blog-filter[type='checkbox']:checked::before { + background: #f5f5f7; +} +html.light .dev-blog .blog-filter[type='checkbox']:not(:disabled):checked:hover::after { + background-image: url(../img/blog/blog-check-light-mode.svg); +} +html.light .dev-blog .blog-filter[type='checkbox']:not(:disabled):hover::before { + background: #f5f5f7; +} +html.light .dev-blog .blog-filter[type='checkbox']:not(:disabled):hover::after { + background: #f5f5f7; +} +html.light .dev-blog .post-date { + text-decoration: overline solid #145c35 10%; +} +html.light .dev-blog #general-badge { + background-color: #fff; + color: #343437; +} +html.light .dev-blog #release_notes-badge { + background-color: #32e685; + color: #145c35; +} +html.light .dev-blog #advisories-badge { + background-color: #ff6719; + color: #4c1a00; +} +html.light .dev-blog #amendments-badge { + background-color: #faff19; + color: #4b4c00; +} +html.light .dev-blog #development-badge { + background-color: #7919ff; + color: #20004c; +} +html.light .dev-blog #developer_reflections-badge { + background-color: #19a3ff; + color: #002e4c; +} +html.light .dev-blog #gateway_bulletins-badge { + background-color: #d919ff; + color: #40004c; +} +html.light .dev-blog #features-badge { + background-color: #32e685; + color: #145c35; +} +html.light .dev-blog #security-badge { + background-color: #ff198b; + color: #4c0026; +} +html.light .dev-blog .dropdown-btn { + color: #111112; + background-color: #e0e0e1; + border-color: #e0e0e1; +} +html.light .dev-blog .dropdown-btn img { + content: url('../img/icons/lightmode/chevron-arrow-down.svg'); +} +html.light .dev-blog .dropdown-content { + background-color: #e0e0e1; +} +html.light .page-tokenization .project-cards .project-logo { + filter: invert(100%); +} +html.light .page-tokenization .article-card { + background-color: #fff; +} +html.light .page-tokenization .article-card-background { + filter: drop-shadow(0px 1px 18px rgba(24, 24, 24, 0.5)); +} +html.light .page-tokenization .evernode { + content: url('../img/logos/evernode.svg'); +} +html.light .page-tokenization .prev img { + content: url('../img/icons/prev_light.svg'); +} +html.light .page-tokenization .next img { + content: url('../img/icons/prev_light.svg'); + transform: scaleX(-1); +} +html.light .page-tokenization .arrow-button { + background-color: #e0e0e1; +} +html.light .page-rwa-tokenization .section-title { + color: #000; +} +html.light .page-rwa-tokenization .utility-card .utility-title { + color: #000; +} +html.light .page-rwa-tokenization .utility-card .utility-description { + color: #000; +} +html.light .page-rwa-tokenization .benefit-icon.low-fees { + background-image: url(../img/tokenization/lightmode/low-fees.png); +} +html.light .page-rwa-tokenization .benefit-icon.access { + background-image: url(../img/tokenization/lightmode/cross-chain.png); +} +html.light .page-rwa-tokenization .benefit-icon.native-compliance { + background-image: url(../img/tokenization/lightmode/native-compliance.png); +} +html.light .page-rwa-tokenization .benefit-icon.delegated-token-management { + background-image: url(../img/tokenization/lightmode/delegated-token-management.png); +} +html.light .page-rwa-tokenization .company-logo.open-eden { + background-image: url(../img/tokenization/lightmode/open-eden.png); +} +html.light .page-rwa-tokenization .company-logo.zoniqx { + background-image: url(../img/tokenization/lightmode/zoniqx.png); +} +html.light .page-rwa-tokenization .company-logo.axiology { + background-image: url(../img/tokenization/lightmode/axiology.png); +} +html.light .page-rwa-tokenization .company-logo.archax { + background-image: url(../img/tokenization/lightmode/archax.png); +} +html.light .page-rwa-tokenization .company-logo.meld { + background-image: url(../img/tokenization/lightmode/meld.png); +} +html.light .page-rwa-tokenization .company-logo.palisade { + background-image: url(../img/tokenization/lightmode/palisade.png); +} +html.light .page-rwa-tokenization .company-logo.ripple-logo { + background-image: url(../img/tokenization/lightmode/ripple-logo.png); +} +html.light .page-rwa-tokenization .company-logo.ondo { + background-image: url(../img/tokenization/lightmode/ondo.png); +} +html.light .page-rwa-tokenization .company-logo.hidden-road { + background-image: url(../img/tokenization/lightmode/hidden-road.png); +} +html.light .page-rwa-tokenization .token-features-section .btn-link { + color: #7919ff; +} +html.light .page-rwa-tokenization .card-description a { + color: #7919ff !important; +} +html.light .page-rwa-tokenization .developer-tools__image { + background-image: url('../img/tokenization/lightmode/graphic.png'); +} +html.light .page-rwa-tokenization .right-arrow-item::after { + content: url('../img/icons/lightmode/arrow-right-purple.svg'); +} +html.light .page-rwa-tokenization .token-video-text-container p { + color: var(--XRPL-Primary-Black, #000); +} +html.light .page-rwa-tokenization .cards-title-token { + color: var(--XRPL-Primary-Black, #000); +} +html.light .page-rwa-tokenization .benefit-card { + background: #fff; +} +html.light .page-rwa-tokenization .benefit-card .benefit-title { + color: var(--XRPL-Primary-Black, #000); +} +html.light .page-rwa-tokenization .benefit-card .benefit-description { + color: var(--XRPL-Black-Black-80, #232325); +} +html.light .page-rwa-tokenization .developer-tools__description { + color: var(--XRPL-Primary-Black, #000); +} +html.light .page-rwa-tokenization .feature-item__title { + color: var(--XRPL-Primary-Black, #000); +} +html.light .page-rwa-tokenization .feature-item__divider { + background-color: #000; +} +html.light .page-rwa-tokenization .rwa-subtitle { + color: var(--XRPL-Primary-Black, #000); +} +html.light .page-rwa-tokenization .feature-title { + color: var(--XRPL-Primary-Black, #000); +} +html.light .page-rwa-tokenization .feature-description { + color: var(--XRPL-Black-Black-80, #232325); +} +html.light .page-rwa-tokenization .com-card-link { + color: #7919ff !important; +} +html.light .use-case-payments .payments-integration-section .integration-column__title { + color: var(--XRPL-Primary-Black, #000); +} +html.light .use-case-payments .payments-integration-section .integration-column__subtitle { + color: var(--XRPL-Black-Black-80, #232325); +} +html.light .use-case-payments .payments-integration-section .feature-item__title { + color: var(--XRPL-Primary-Black, #000); +} +html.light .use-case-payments .payments-integration-section .feature-item__divider { + background-color: #000; +} +html.light .use-case-payments .payments-project-card { + background: #fff; + box-shadow: none; +} +html.light .use-case-payments .payments-project-card .first-word { + color: var(--XRPL-Black-Black-80, #232325); +} +html.light .use-case-payments .payments-project-card .rest-text { + color: var(--XRPL-Black-Black-80, #232325); +} +html.light .use-case-payments .payments-project-card .project-logo img.ripple-usd { + content: url('../img/uses/lightmode/payments/rlusd.png'); +} +html.light .use-case-payments .payments-project-card .project-logo img.usdc { + content: url('../img/uses/lightmode/payments/usdc.png'); +} +html.light .use-case-payments .payments-project-card .project-logo img.usdb { + content: url('../img/uses/lightmode/payments/usdb.png'); +} +html.light .use-case-payments .payments-project-card .project-logo img.europ { + content: url('../img/uses/lightmode/payments/erop.png'); +} +html.light .use-case-payments .payments-project-card .project-logo img.xsgd { + content: url('../img/uses/lightmode/payments/xsgd.png'); +} +html.light .use-case-payments .payments-project-card .project-logo img.audd { + content: url('../img/uses/lightmode/payments/audd.png'); +} +html.light .use-case-payments .advantages-section .advantage-item strong { + color: var(--XRPL-Black-Black-80, #232325); +} +html.light #embedded-payments-list #digital-wallets { + content: url('../img/uses/lightmode/payments/digital-wallet.png'); +} +html.light #embedded-payments-list #cross-border-remittance { + content: url('../img/uses/lightmode/payments/cross-border.png'); +} +html.light #embedded-payments-list #regulated-foreign-exchange { + content: url('../img/uses/lightmode/payments/regulated.png'); +} +html.light #embedded-payments-list #merchant-settlement { + content: url('../img/uses/lightmode/payments/merchant-settlement.png'); +} +html.light #embedded-payments-list #b2b-payment-rails { + content: url('../img/uses/lightmode/payments/b2b-payment.png'); +} +html.light #embedded-payments-list #compliance-first-payment-acceptance { + content: url('../img/uses/lightmode/payments/compliance.png'); +} +html.light .use-case-payments .battle-tested-section .payments-project-card { + background: #fff !important; +} +html.light .use-case-payments .battle-tested-section .payments-project-card .project-logo img.coinpayments { + content: url('../img/uses/lightmode/payments/coinpayments.png'); +} +html.light .use-case-payments .battle-tested-section .payments-project-card .project-logo img.ripple { + content: url('../img/uses/lightmode/payments/ripple-black.png'); +} +html.light .use-case-payments .battle-tested-section .payments-project-card .project-logo img.friipay { + content: url('../img/uses/lightmode/payments/friipay.png'); +} diff --git a/static/css/font-awesome.min.css b/static/css/font-awesome.min.css index be789e54b6..43a5a04fe8 100644 --- a/static/css/font-awesome.min.css +++ b/static/css/font-awesome.min.css @@ -1,4 +1,2198 @@ /*! * Font Awesome 4.6.3 by @davegandy - http://fontawesome.io - @fontawesome * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */@font-face{font-family:'FontAwesome';src:url('../font/fontawesome-webfont.eot?v=4.6.3');src:url('../font/fontawesome-webfont.eot?#iefix&v=4.6.3') format('embedded-opentype'),url('../font/fontawesome-webfont.woff2?v=4.6.3') format('woff2'),url('../font/fontawesome-webfont.woff?v=4.6.3') format('woff'),url('../font/fontawesome-webfont.ttf?v=4.6.3') format('truetype'),url('../font/fontawesome-webfont.svg?v=4.6.3#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto} + */ +@font-face { + font-family: 'FontAwesome'; + src: url('../font/fontawesome-webfont.eot?v=4.6.3'); + src: + url('../font/fontawesome-webfont.eot?#iefix&v=4.6.3') format('embedded-opentype'), + url('../font/fontawesome-webfont.woff2?v=4.6.3') format('woff2'), + url('../font/fontawesome-webfont.woff?v=4.6.3') format('woff'), + url('../font/fontawesome-webfont.ttf?v=4.6.3') format('truetype'), + url('../font/fontawesome-webfont.svg?v=4.6.3#fontawesomeregular') format('svg'); + font-weight: normal; + font-style: normal; +} +.fa { + display: inline-block; + font: normal normal normal 14px/1 FontAwesome; + font-size: inherit; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} +.fa-lg { + font-size: 1.33333333em; + line-height: 0.75em; + vertical-align: -15%; +} +.fa-2x { + font-size: 2em; +} +.fa-3x { + font-size: 3em; +} +.fa-4x { + font-size: 4em; +} +.fa-5x { + font-size: 5em; +} +.fa-fw { + width: 1.28571429em; + text-align: center; +} +.fa-ul { + padding-left: 0; + margin-left: 2.14285714em; + list-style-type: none; +} +.fa-ul > li { + position: relative; +} +.fa-li { + position: absolute; + left: -2.14285714em; + width: 2.14285714em; + top: 0.14285714em; + text-align: center; +} +.fa-li.fa-lg { + left: -1.85714286em; +} +.fa-border { + padding: 0.2em 0.25em 0.15em; + border: solid 0.08em #eee; + border-radius: 0.1em; +} +.fa-pull-left { + float: left; +} +.fa-pull-right { + float: right; +} +.fa.fa-pull-left { + margin-right: 0.3em; +} +.fa.fa-pull-right { + margin-left: 0.3em; +} +.pull-right { + float: right; +} +.pull-left { + float: left; +} +.fa.pull-left { + margin-right: 0.3em; +} +.fa.pull-right { + margin-left: 0.3em; +} +.fa-spin { + -webkit-animation: fa-spin 2s infinite linear; + animation: fa-spin 2s infinite linear; +} +.fa-pulse { + -webkit-animation: fa-spin 1s infinite steps(8); + animation: fa-spin 1s infinite steps(8); +} +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +.fa-rotate-90 { + -ms-filter: 'progid:DXImageTransform.Microsoft.BasicImage(rotation=1)'; + -webkit-transform: rotate(90deg); + -ms-transform: rotate(90deg); + transform: rotate(90deg); +} +.fa-rotate-180 { + -ms-filter: 'progid:DXImageTransform.Microsoft.BasicImage(rotation=2)'; + -webkit-transform: rotate(180deg); + -ms-transform: rotate(180deg); + transform: rotate(180deg); +} +.fa-rotate-270 { + -ms-filter: 'progid:DXImageTransform.Microsoft.BasicImage(rotation=3)'; + -webkit-transform: rotate(270deg); + -ms-transform: rotate(270deg); + transform: rotate(270deg); +} +.fa-flip-horizontal { + -ms-filter: 'progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)'; + -webkit-transform: scale(-1, 1); + -ms-transform: scale(-1, 1); + transform: scale(-1, 1); +} +.fa-flip-vertical { + -ms-filter: 'progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)'; + -webkit-transform: scale(1, -1); + -ms-transform: scale(1, -1); + transform: scale(1, -1); +} +:root .fa-rotate-90, +:root .fa-rotate-180, +:root .fa-rotate-270, +:root .fa-flip-horizontal, +:root .fa-flip-vertical { + filter: none; +} +.fa-stack { + position: relative; + display: inline-block; + width: 2em; + height: 2em; + line-height: 2em; + vertical-align: middle; +} +.fa-stack-1x, +.fa-stack-2x { + position: absolute; + left: 0; + width: 100%; + text-align: center; +} +.fa-stack-1x { + line-height: inherit; +} +.fa-stack-2x { + font-size: 2em; +} +.fa-inverse { + color: #fff; +} +.fa-glass:before { + content: '\f000'; +} +.fa-music:before { + content: '\f001'; +} +.fa-search:before { + content: '\f002'; +} +.fa-envelope-o:before { + content: '\f003'; +} +.fa-heart:before { + content: '\f004'; +} +.fa-star:before { + content: '\f005'; +} +.fa-star-o:before { + content: '\f006'; +} +.fa-user:before { + content: '\f007'; +} +.fa-film:before { + content: '\f008'; +} +.fa-th-large:before { + content: '\f009'; +} +.fa-th:before { + content: '\f00a'; +} +.fa-th-list:before { + content: '\f00b'; +} +.fa-check:before { + content: '\f00c'; +} +.fa-remove:before, +.fa-close:before, +.fa-times:before { + content: '\f00d'; +} +.fa-search-plus:before { + content: '\f00e'; +} +.fa-search-minus:before { + content: '\f010'; +} +.fa-power-off:before { + content: '\f011'; +} +.fa-signal:before { + content: '\f012'; +} +.fa-gear:before, +.fa-cog:before { + content: '\f013'; +} +.fa-trash-o:before { + content: '\f014'; +} +.fa-home:before { + content: '\f015'; +} +.fa-file-o:before { + content: '\f016'; +} +.fa-clock-o:before { + content: '\f017'; +} +.fa-road:before { + content: '\f018'; +} +.fa-download:before { + content: '\f019'; +} +.fa-arrow-circle-o-down:before { + content: '\f01a'; +} +.fa-arrow-circle-o-up:before { + content: '\f01b'; +} +.fa-inbox:before { + content: '\f01c'; +} +.fa-play-circle-o:before { + content: '\f01d'; +} +.fa-rotate-right:before, +.fa-repeat:before { + content: '\f01e'; +} +.fa-refresh:before { + content: '\f021'; +} +.fa-list-alt:before { + content: '\f022'; +} +.fa-lock:before { + content: '\f023'; +} +.fa-flag:before { + content: '\f024'; +} +.fa-headphones:before { + content: '\f025'; +} +.fa-volume-off:before { + content: '\f026'; +} +.fa-volume-down:before { + content: '\f027'; +} +.fa-volume-up:before { + content: '\f028'; +} +.fa-qrcode:before { + content: '\f029'; +} +.fa-barcode:before { + content: '\f02a'; +} +.fa-tag:before { + content: '\f02b'; +} +.fa-tags:before { + content: '\f02c'; +} +.fa-book:before { + content: '\f02d'; +} +.fa-bookmark:before { + content: '\f02e'; +} +.fa-print:before { + content: '\f02f'; +} +.fa-camera:before { + content: '\f030'; +} +.fa-font:before { + content: '\f031'; +} +.fa-bold:before { + content: '\f032'; +} +.fa-italic:before { + content: '\f033'; +} +.fa-text-height:before { + content: '\f034'; +} +.fa-text-width:before { + content: '\f035'; +} +.fa-align-left:before { + content: '\f036'; +} +.fa-align-center:before { + content: '\f037'; +} +.fa-align-right:before { + content: '\f038'; +} +.fa-align-justify:before { + content: '\f039'; +} +.fa-list:before { + content: '\f03a'; +} +.fa-dedent:before, +.fa-outdent:before { + content: '\f03b'; +} +.fa-indent:before { + content: '\f03c'; +} +.fa-video-camera:before { + content: '\f03d'; +} +.fa-photo:before, +.fa-image:before, +.fa-picture-o:before { + content: '\f03e'; +} +.fa-pencil:before { + content: '\f040'; +} +.fa-map-marker:before { + content: '\f041'; +} +.fa-adjust:before { + content: '\f042'; +} +.fa-tint:before { + content: '\f043'; +} +.fa-edit:before, +.fa-pencil-square-o:before { + content: '\f044'; +} +.fa-share-square-o:before { + content: '\f045'; +} +.fa-check-square-o:before { + content: '\f046'; +} +.fa-arrows:before { + content: '\f047'; +} +.fa-step-backward:before { + content: '\f048'; +} +.fa-fast-backward:before { + content: '\f049'; +} +.fa-backward:before { + content: '\f04a'; +} +.fa-play:before { + content: '\f04b'; +} +.fa-pause:before { + content: '\f04c'; +} +.fa-stop:before { + content: '\f04d'; +} +.fa-forward:before { + content: '\f04e'; +} +.fa-fast-forward:before { + content: '\f050'; +} +.fa-step-forward:before { + content: '\f051'; +} +.fa-eject:before { + content: '\f052'; +} +.fa-chevron-left:before { + content: '\f053'; +} +.fa-chevron-right:before { + content: '\f054'; +} +.fa-plus-circle:before { + content: '\f055'; +} +.fa-minus-circle:before { + content: '\f056'; +} +.fa-times-circle:before { + content: '\f057'; +} +.fa-check-circle:before { + content: '\f058'; +} +.fa-question-circle:before { + content: '\f059'; +} +.fa-info-circle:before { + content: '\f05a'; +} +.fa-crosshairs:before { + content: '\f05b'; +} +.fa-times-circle-o:before { + content: '\f05c'; +} +.fa-check-circle-o:before { + content: '\f05d'; +} +.fa-ban:before { + content: '\f05e'; +} +.fa-arrow-left:before { + content: '\f060'; +} +.fa-arrow-right:before { + content: '\f061'; +} +.fa-arrow-up:before { + content: '\f062'; +} +.fa-arrow-down:before { + content: '\f063'; +} +.fa-mail-forward:before, +.fa-share:before { + content: '\f064'; +} +.fa-expand:before { + content: '\f065'; +} +.fa-compress:before { + content: '\f066'; +} +.fa-plus:before { + content: '\f067'; +} +.fa-minus:before { + content: '\f068'; +} +.fa-asterisk:before { + content: '\f069'; +} +.fa-exclamation-circle:before { + content: '\f06a'; +} +.fa-gift:before { + content: '\f06b'; +} +.fa-leaf:before { + content: '\f06c'; +} +.fa-fire:before { + content: '\f06d'; +} +.fa-eye:before { + content: '\f06e'; +} +.fa-eye-slash:before { + content: '\f070'; +} +.fa-warning:before, +.fa-exclamation-triangle:before { + content: '\f071'; +} +.fa-plane:before { + content: '\f072'; +} +.fa-calendar:before { + content: '\f073'; +} +.fa-random:before { + content: '\f074'; +} +.fa-comment:before { + content: '\f075'; +} +.fa-magnet:before { + content: '\f076'; +} +.fa-chevron-up:before { + content: '\f077'; +} +.fa-chevron-down:before { + content: '\f078'; +} +.fa-retweet:before { + content: '\f079'; +} +.fa-shopping-cart:before { + content: '\f07a'; +} +.fa-folder:before { + content: '\f07b'; +} +.fa-folder-open:before { + content: '\f07c'; +} +.fa-arrows-v:before { + content: '\f07d'; +} +.fa-arrows-h:before { + content: '\f07e'; +} +.fa-bar-chart-o:before, +.fa-bar-chart:before { + content: '\f080'; +} +.fa-twitter-square:before { + content: '\f081'; +} +.fa-facebook-square:before { + content: '\f082'; +} +.fa-camera-retro:before { + content: '\f083'; +} +.fa-key:before { + content: '\f084'; +} +.fa-gears:before, +.fa-cogs:before { + content: '\f085'; +} +.fa-comments:before { + content: '\f086'; +} +.fa-thumbs-o-up:before { + content: '\f087'; +} +.fa-thumbs-o-down:before { + content: '\f088'; +} +.fa-star-half:before { + content: '\f089'; +} +.fa-heart-o:before { + content: '\f08a'; +} +.fa-sign-out:before { + content: '\f08b'; +} +.fa-linkedin-square:before { + content: '\f08c'; +} +.fa-thumb-tack:before { + content: '\f08d'; +} +.fa-external-link:before { + content: '\f08e'; +} +.fa-sign-in:before { + content: '\f090'; +} +.fa-trophy:before { + content: '\f091'; +} +.fa-github-square:before { + content: '\f092'; +} +.fa-upload:before { + content: '\f093'; +} +.fa-lemon-o:before { + content: '\f094'; +} +.fa-phone:before { + content: '\f095'; +} +.fa-square-o:before { + content: '\f096'; +} +.fa-bookmark-o:before { + content: '\f097'; +} +.fa-phone-square:before { + content: '\f098'; +} +.fa-twitter:before { + content: '\f099'; +} +.fa-facebook-f:before, +.fa-facebook:before { + content: '\f09a'; +} +.fa-github:before { + content: '\f09b'; +} +.fa-unlock:before { + content: '\f09c'; +} +.fa-credit-card:before { + content: '\f09d'; +} +.fa-feed:before, +.fa-rss:before { + content: '\f09e'; +} +.fa-hdd-o:before { + content: '\f0a0'; +} +.fa-bullhorn:before { + content: '\f0a1'; +} +.fa-bell:before { + content: '\f0f3'; +} +.fa-certificate:before { + content: '\f0a3'; +} +.fa-hand-o-right:before { + content: '\f0a4'; +} +.fa-hand-o-left:before { + content: '\f0a5'; +} +.fa-hand-o-up:before { + content: '\f0a6'; +} +.fa-hand-o-down:before { + content: '\f0a7'; +} +.fa-arrow-circle-left:before { + content: '\f0a8'; +} +.fa-arrow-circle-right:before { + content: '\f0a9'; +} +.fa-arrow-circle-up:before { + content: '\f0aa'; +} +.fa-arrow-circle-down:before { + content: '\f0ab'; +} +.fa-globe:before { + content: '\f0ac'; +} +.fa-wrench:before { + content: '\f0ad'; +} +.fa-tasks:before { + content: '\f0ae'; +} +.fa-filter:before { + content: '\f0b0'; +} +.fa-briefcase:before { + content: '\f0b1'; +} +.fa-arrows-alt:before { + content: '\f0b2'; +} +.fa-group:before, +.fa-users:before { + content: '\f0c0'; +} +.fa-chain:before, +.fa-link:before { + content: '\f0c1'; +} +.fa-cloud:before { + content: '\f0c2'; +} +.fa-flask:before { + content: '\f0c3'; +} +.fa-cut:before, +.fa-scissors:before { + content: '\f0c4'; +} +.fa-copy:before, +.fa-files-o:before { + content: '\f0c5'; +} +.fa-paperclip:before { + content: '\f0c6'; +} +.fa-save:before, +.fa-floppy-o:before { + content: '\f0c7'; +} +.fa-square:before { + content: '\f0c8'; +} +.fa-navicon:before, +.fa-reorder:before, +.fa-bars:before { + content: '\f0c9'; +} +.fa-list-ul:before { + content: '\f0ca'; +} +.fa-list-ol:before { + content: '\f0cb'; +} +.fa-strikethrough:before { + content: '\f0cc'; +} +.fa-underline:before { + content: '\f0cd'; +} +.fa-table:before { + content: '\f0ce'; +} +.fa-magic:before { + content: '\f0d0'; +} +.fa-truck:before { + content: '\f0d1'; +} +.fa-pinterest:before { + content: '\f0d2'; +} +.fa-pinterest-square:before { + content: '\f0d3'; +} +.fa-google-plus-square:before { + content: '\f0d4'; +} +.fa-google-plus:before { + content: '\f0d5'; +} +.fa-money:before { + content: '\f0d6'; +} +.fa-caret-down:before { + content: '\f0d7'; +} +.fa-caret-up:before { + content: '\f0d8'; +} +.fa-caret-left:before { + content: '\f0d9'; +} +.fa-caret-right:before { + content: '\f0da'; +} +.fa-columns:before { + content: '\f0db'; +} +.fa-unsorted:before, +.fa-sort:before { + content: '\f0dc'; +} +.fa-sort-down:before, +.fa-sort-desc:before { + content: '\f0dd'; +} +.fa-sort-up:before, +.fa-sort-asc:before { + content: '\f0de'; +} +.fa-envelope:before { + content: '\f0e0'; +} +.fa-linkedin:before { + content: '\f0e1'; +} +.fa-rotate-left:before, +.fa-undo:before { + content: '\f0e2'; +} +.fa-legal:before, +.fa-gavel:before { + content: '\f0e3'; +} +.fa-dashboard:before, +.fa-tachometer:before { + content: '\f0e4'; +} +.fa-comment-o:before { + content: '\f0e5'; +} +.fa-comments-o:before { + content: '\f0e6'; +} +.fa-flash:before, +.fa-bolt:before { + content: '\f0e7'; +} +.fa-sitemap:before { + content: '\f0e8'; +} +.fa-umbrella:before { + content: '\f0e9'; +} +.fa-paste:before, +.fa-clipboard:before { + content: '\f0ea'; +} +.fa-lightbulb-o:before { + content: '\f0eb'; +} +.fa-exchange:before { + content: '\f0ec'; +} +.fa-cloud-download:before { + content: '\f0ed'; +} +.fa-cloud-upload:before { + content: '\f0ee'; +} +.fa-user-md:before { + content: '\f0f0'; +} +.fa-stethoscope:before { + content: '\f0f1'; +} +.fa-suitcase:before { + content: '\f0f2'; +} +.fa-bell-o:before { + content: '\f0a2'; +} +.fa-coffee:before { + content: '\f0f4'; +} +.fa-cutlery:before { + content: '\f0f5'; +} +.fa-file-text-o:before { + content: '\f0f6'; +} +.fa-building-o:before { + content: '\f0f7'; +} +.fa-hospital-o:before { + content: '\f0f8'; +} +.fa-ambulance:before { + content: '\f0f9'; +} +.fa-medkit:before { + content: '\f0fa'; +} +.fa-fighter-jet:before { + content: '\f0fb'; +} +.fa-beer:before { + content: '\f0fc'; +} +.fa-h-square:before { + content: '\f0fd'; +} +.fa-plus-square:before { + content: '\f0fe'; +} +.fa-angle-double-left:before { + content: '\f100'; +} +.fa-angle-double-right:before { + content: '\f101'; +} +.fa-angle-double-up:before { + content: '\f102'; +} +.fa-angle-double-down:before { + content: '\f103'; +} +.fa-angle-left:before { + content: '\f104'; +} +.fa-angle-right:before { + content: '\f105'; +} +.fa-angle-up:before { + content: '\f106'; +} +.fa-angle-down:before { + content: '\f107'; +} +.fa-desktop:before { + content: '\f108'; +} +.fa-laptop:before { + content: '\f109'; +} +.fa-tablet:before { + content: '\f10a'; +} +.fa-mobile-phone:before, +.fa-mobile:before { + content: '\f10b'; +} +.fa-circle-o:before { + content: '\f10c'; +} +.fa-quote-left:before { + content: '\f10d'; +} +.fa-quote-right:before { + content: '\f10e'; +} +.fa-spinner:before { + content: '\f110'; +} +.fa-circle:before { + content: '\f111'; +} +.fa-mail-reply:before, +.fa-reply:before { + content: '\f112'; +} +.fa-github-alt:before { + content: '\f113'; +} +.fa-folder-o:before { + content: '\f114'; +} +.fa-folder-open-o:before { + content: '\f115'; +} +.fa-smile-o:before { + content: '\f118'; +} +.fa-frown-o:before { + content: '\f119'; +} +.fa-meh-o:before { + content: '\f11a'; +} +.fa-gamepad:before { + content: '\f11b'; +} +.fa-keyboard-o:before { + content: '\f11c'; +} +.fa-flag-o:before { + content: '\f11d'; +} +.fa-flag-checkered:before { + content: '\f11e'; +} +.fa-terminal:before { + content: '\f120'; +} +.fa-code:before { + content: '\f121'; +} +.fa-mail-reply-all:before, +.fa-reply-all:before { + content: '\f122'; +} +.fa-star-half-empty:before, +.fa-star-half-full:before, +.fa-star-half-o:before { + content: '\f123'; +} +.fa-location-arrow:before { + content: '\f124'; +} +.fa-crop:before { + content: '\f125'; +} +.fa-code-fork:before { + content: '\f126'; +} +.fa-unlink:before, +.fa-chain-broken:before { + content: '\f127'; +} +.fa-question:before { + content: '\f128'; +} +.fa-info:before { + content: '\f129'; +} +.fa-exclamation:before { + content: '\f12a'; +} +.fa-superscript:before { + content: '\f12b'; +} +.fa-subscript:before { + content: '\f12c'; +} +.fa-eraser:before { + content: '\f12d'; +} +.fa-puzzle-piece:before { + content: '\f12e'; +} +.fa-microphone:before { + content: '\f130'; +} +.fa-microphone-slash:before { + content: '\f131'; +} +.fa-shield:before { + content: '\f132'; +} +.fa-calendar-o:before { + content: '\f133'; +} +.fa-fire-extinguisher:before { + content: '\f134'; +} +.fa-rocket:before { + content: '\f135'; +} +.fa-maxcdn:before { + content: '\f136'; +} +.fa-chevron-circle-left:before { + content: '\f137'; +} +.fa-chevron-circle-right:before { + content: '\f138'; +} +.fa-chevron-circle-up:before { + content: '\f139'; +} +.fa-chevron-circle-down:before { + content: '\f13a'; +} +.fa-html5:before { + content: '\f13b'; +} +.fa-css3:before { + content: '\f13c'; +} +.fa-anchor:before { + content: '\f13d'; +} +.fa-unlock-alt:before { + content: '\f13e'; +} +.fa-bullseye:before { + content: '\f140'; +} +.fa-ellipsis-h:before { + content: '\f141'; +} +.fa-ellipsis-v:before { + content: '\f142'; +} +.fa-rss-square:before { + content: '\f143'; +} +.fa-play-circle:before { + content: '\f144'; +} +.fa-ticket:before { + content: '\f145'; +} +.fa-minus-square:before { + content: '\f146'; +} +.fa-minus-square-o:before { + content: '\f147'; +} +.fa-level-up:before { + content: '\f148'; +} +.fa-level-down:before { + content: '\f149'; +} +.fa-check-square:before { + content: '\f14a'; +} +.fa-pencil-square:before { + content: '\f14b'; +} +.fa-external-link-square:before { + content: '\f14c'; +} +.fa-share-square:before { + content: '\f14d'; +} +.fa-compass:before { + content: '\f14e'; +} +.fa-toggle-down:before, +.fa-caret-square-o-down:before { + content: '\f150'; +} +.fa-toggle-up:before, +.fa-caret-square-o-up:before { + content: '\f151'; +} +.fa-toggle-right:before, +.fa-caret-square-o-right:before { + content: '\f152'; +} +.fa-euro:before, +.fa-eur:before { + content: '\f153'; +} +.fa-gbp:before { + content: '\f154'; +} +.fa-dollar:before, +.fa-usd:before { + content: '\f155'; +} +.fa-rupee:before, +.fa-inr:before { + content: '\f156'; +} +.fa-cny:before, +.fa-rmb:before, +.fa-yen:before, +.fa-jpy:before { + content: '\f157'; +} +.fa-ruble:before, +.fa-rouble:before, +.fa-rub:before { + content: '\f158'; +} +.fa-won:before, +.fa-krw:before { + content: '\f159'; +} +.fa-bitcoin:before, +.fa-btc:before { + content: '\f15a'; +} +.fa-file:before { + content: '\f15b'; +} +.fa-file-text:before { + content: '\f15c'; +} +.fa-sort-alpha-asc:before { + content: '\f15d'; +} +.fa-sort-alpha-desc:before { + content: '\f15e'; +} +.fa-sort-amount-asc:before { + content: '\f160'; +} +.fa-sort-amount-desc:before { + content: '\f161'; +} +.fa-sort-numeric-asc:before { + content: '\f162'; +} +.fa-sort-numeric-desc:before { + content: '\f163'; +} +.fa-thumbs-up:before { + content: '\f164'; +} +.fa-thumbs-down:before { + content: '\f165'; +} +.fa-youtube-square:before { + content: '\f166'; +} +.fa-youtube:before { + content: '\f167'; +} +.fa-xing:before { + content: '\f168'; +} +.fa-xing-square:before { + content: '\f169'; +} +.fa-youtube-play:before { + content: '\f16a'; +} +.fa-dropbox:before { + content: '\f16b'; +} +.fa-stack-overflow:before { + content: '\f16c'; +} +.fa-instagram:before { + content: '\f16d'; +} +.fa-flickr:before { + content: '\f16e'; +} +.fa-adn:before { + content: '\f170'; +} +.fa-bitbucket:before { + content: '\f171'; +} +.fa-bitbucket-square:before { + content: '\f172'; +} +.fa-tumblr:before { + content: '\f173'; +} +.fa-tumblr-square:before { + content: '\f174'; +} +.fa-long-arrow-down:before { + content: '\f175'; +} +.fa-long-arrow-up:before { + content: '\f176'; +} +.fa-long-arrow-left:before { + content: '\f177'; +} +.fa-long-arrow-right:before { + content: '\f178'; +} +.fa-apple:before { + content: '\f179'; +} +.fa-windows:before { + content: '\f17a'; +} +.fa-android:before { + content: '\f17b'; +} +.fa-linux:before { + content: '\f17c'; +} +.fa-dribbble:before { + content: '\f17d'; +} +.fa-skype:before { + content: '\f17e'; +} +.fa-foursquare:before { + content: '\f180'; +} +.fa-trello:before { + content: '\f181'; +} +.fa-female:before { + content: '\f182'; +} +.fa-male:before { + content: '\f183'; +} +.fa-gittip:before, +.fa-gratipay:before { + content: '\f184'; +} +.fa-sun-o:before { + content: '\f185'; +} +.fa-moon-o:before { + content: '\f186'; +} +.fa-archive:before { + content: '\f187'; +} +.fa-bug:before { + content: '\f188'; +} +.fa-vk:before { + content: '\f189'; +} +.fa-weibo:before { + content: '\f18a'; +} +.fa-renren:before { + content: '\f18b'; +} +.fa-pagelines:before { + content: '\f18c'; +} +.fa-stack-exchange:before { + content: '\f18d'; +} +.fa-arrow-circle-o-right:before { + content: '\f18e'; +} +.fa-arrow-circle-o-left:before { + content: '\f190'; +} +.fa-toggle-left:before, +.fa-caret-square-o-left:before { + content: '\f191'; +} +.fa-dot-circle-o:before { + content: '\f192'; +} +.fa-wheelchair:before { + content: '\f193'; +} +.fa-vimeo-square:before { + content: '\f194'; +} +.fa-turkish-lira:before, +.fa-try:before { + content: '\f195'; +} +.fa-plus-square-o:before { + content: '\f196'; +} +.fa-space-shuttle:before { + content: '\f197'; +} +.fa-slack:before { + content: '\f198'; +} +.fa-envelope-square:before { + content: '\f199'; +} +.fa-wordpress:before { + content: '\f19a'; +} +.fa-openid:before { + content: '\f19b'; +} +.fa-institution:before, +.fa-bank:before, +.fa-university:before { + content: '\f19c'; +} +.fa-mortar-board:before, +.fa-graduation-cap:before { + content: '\f19d'; +} +.fa-yahoo:before { + content: '\f19e'; +} +.fa-google:before { + content: '\f1a0'; +} +.fa-reddit:before { + content: '\f1a1'; +} +.fa-reddit-square:before { + content: '\f1a2'; +} +.fa-stumbleupon-circle:before { + content: '\f1a3'; +} +.fa-stumbleupon:before { + content: '\f1a4'; +} +.fa-delicious:before { + content: '\f1a5'; +} +.fa-digg:before { + content: '\f1a6'; +} +.fa-pied-piper-pp:before { + content: '\f1a7'; +} +.fa-pied-piper-alt:before { + content: '\f1a8'; +} +.fa-drupal:before { + content: '\f1a9'; +} +.fa-joomla:before { + content: '\f1aa'; +} +.fa-language:before { + content: '\f1ab'; +} +.fa-fax:before { + content: '\f1ac'; +} +.fa-building:before { + content: '\f1ad'; +} +.fa-child:before { + content: '\f1ae'; +} +.fa-paw:before { + content: '\f1b0'; +} +.fa-spoon:before { + content: '\f1b1'; +} +.fa-cube:before { + content: '\f1b2'; +} +.fa-cubes:before { + content: '\f1b3'; +} +.fa-behance:before { + content: '\f1b4'; +} +.fa-behance-square:before { + content: '\f1b5'; +} +.fa-steam:before { + content: '\f1b6'; +} +.fa-steam-square:before { + content: '\f1b7'; +} +.fa-recycle:before { + content: '\f1b8'; +} +.fa-automobile:before, +.fa-car:before { + content: '\f1b9'; +} +.fa-cab:before, +.fa-taxi:before { + content: '\f1ba'; +} +.fa-tree:before { + content: '\f1bb'; +} +.fa-spotify:before { + content: '\f1bc'; +} +.fa-deviantart:before { + content: '\f1bd'; +} +.fa-soundcloud:before { + content: '\f1be'; +} +.fa-database:before { + content: '\f1c0'; +} +.fa-file-pdf-o:before { + content: '\f1c1'; +} +.fa-file-word-o:before { + content: '\f1c2'; +} +.fa-file-excel-o:before { + content: '\f1c3'; +} +.fa-file-powerpoint-o:before { + content: '\f1c4'; +} +.fa-file-photo-o:before, +.fa-file-picture-o:before, +.fa-file-image-o:before { + content: '\f1c5'; +} +.fa-file-zip-o:before, +.fa-file-archive-o:before { + content: '\f1c6'; +} +.fa-file-sound-o:before, +.fa-file-audio-o:before { + content: '\f1c7'; +} +.fa-file-movie-o:before, +.fa-file-video-o:before { + content: '\f1c8'; +} +.fa-file-code-o:before { + content: '\f1c9'; +} +.fa-vine:before { + content: '\f1ca'; +} +.fa-codepen:before { + content: '\f1cb'; +} +.fa-jsfiddle:before { + content: '\f1cc'; +} +.fa-life-bouy:before, +.fa-life-buoy:before, +.fa-life-saver:before, +.fa-support:before, +.fa-life-ring:before { + content: '\f1cd'; +} +.fa-circle-o-notch:before { + content: '\f1ce'; +} +.fa-ra:before, +.fa-resistance:before, +.fa-rebel:before { + content: '\f1d0'; +} +.fa-ge:before, +.fa-empire:before { + content: '\f1d1'; +} +.fa-git-square:before { + content: '\f1d2'; +} +.fa-git:before { + content: '\f1d3'; +} +.fa-y-combinator-square:before, +.fa-yc-square:before, +.fa-hacker-news:before { + content: '\f1d4'; +} +.fa-tencent-weibo:before { + content: '\f1d5'; +} +.fa-qq:before { + content: '\f1d6'; +} +.fa-wechat:before, +.fa-weixin:before { + content: '\f1d7'; +} +.fa-send:before, +.fa-paper-plane:before { + content: '\f1d8'; +} +.fa-send-o:before, +.fa-paper-plane-o:before { + content: '\f1d9'; +} +.fa-history:before { + content: '\f1da'; +} +.fa-circle-thin:before { + content: '\f1db'; +} +.fa-header:before { + content: '\f1dc'; +} +.fa-paragraph:before { + content: '\f1dd'; +} +.fa-sliders:before { + content: '\f1de'; +} +.fa-share-alt:before { + content: '\f1e0'; +} +.fa-share-alt-square:before { + content: '\f1e1'; +} +.fa-bomb:before { + content: '\f1e2'; +} +.fa-soccer-ball-o:before, +.fa-futbol-o:before { + content: '\f1e3'; +} +.fa-tty:before { + content: '\f1e4'; +} +.fa-binoculars:before { + content: '\f1e5'; +} +.fa-plug:before { + content: '\f1e6'; +} +.fa-slideshare:before { + content: '\f1e7'; +} +.fa-twitch:before { + content: '\f1e8'; +} +.fa-yelp:before { + content: '\f1e9'; +} +.fa-newspaper-o:before { + content: '\f1ea'; +} +.fa-wifi:before { + content: '\f1eb'; +} +.fa-calculator:before { + content: '\f1ec'; +} +.fa-paypal:before { + content: '\f1ed'; +} +.fa-google-wallet:before { + content: '\f1ee'; +} +.fa-cc-visa:before { + content: '\f1f0'; +} +.fa-cc-mastercard:before { + content: '\f1f1'; +} +.fa-cc-discover:before { + content: '\f1f2'; +} +.fa-cc-amex:before { + content: '\f1f3'; +} +.fa-cc-paypal:before { + content: '\f1f4'; +} +.fa-cc-stripe:before { + content: '\f1f5'; +} +.fa-bell-slash:before { + content: '\f1f6'; +} +.fa-bell-slash-o:before { + content: '\f1f7'; +} +.fa-trash:before { + content: '\f1f8'; +} +.fa-copyright:before { + content: '\f1f9'; +} +.fa-at:before { + content: '\f1fa'; +} +.fa-eyedropper:before { + content: '\f1fb'; +} +.fa-paint-brush:before { + content: '\f1fc'; +} +.fa-birthday-cake:before { + content: '\f1fd'; +} +.fa-area-chart:before { + content: '\f1fe'; +} +.fa-pie-chart:before { + content: '\f200'; +} +.fa-line-chart:before { + content: '\f201'; +} +.fa-lastfm:before { + content: '\f202'; +} +.fa-lastfm-square:before { + content: '\f203'; +} +.fa-toggle-off:before { + content: '\f204'; +} +.fa-toggle-on:before { + content: '\f205'; +} +.fa-bicycle:before { + content: '\f206'; +} +.fa-bus:before { + content: '\f207'; +} +.fa-ioxhost:before { + content: '\f208'; +} +.fa-angellist:before { + content: '\f209'; +} +.fa-cc:before { + content: '\f20a'; +} +.fa-shekel:before, +.fa-sheqel:before, +.fa-ils:before { + content: '\f20b'; +} +.fa-meanpath:before { + content: '\f20c'; +} +.fa-buysellads:before { + content: '\f20d'; +} +.fa-connectdevelop:before { + content: '\f20e'; +} +.fa-dashcube:before { + content: '\f210'; +} +.fa-forumbee:before { + content: '\f211'; +} +.fa-leanpub:before { + content: '\f212'; +} +.fa-sellsy:before { + content: '\f213'; +} +.fa-shirtsinbulk:before { + content: '\f214'; +} +.fa-simplybuilt:before { + content: '\f215'; +} +.fa-skyatlas:before { + content: '\f216'; +} +.fa-cart-plus:before { + content: '\f217'; +} +.fa-cart-arrow-down:before { + content: '\f218'; +} +.fa-diamond:before { + content: '\f219'; +} +.fa-ship:before { + content: '\f21a'; +} +.fa-user-secret:before { + content: '\f21b'; +} +.fa-motorcycle:before { + content: '\f21c'; +} +.fa-street-view:before { + content: '\f21d'; +} +.fa-heartbeat:before { + content: '\f21e'; +} +.fa-venus:before { + content: '\f221'; +} +.fa-mars:before { + content: '\f222'; +} +.fa-mercury:before { + content: '\f223'; +} +.fa-intersex:before, +.fa-transgender:before { + content: '\f224'; +} +.fa-transgender-alt:before { + content: '\f225'; +} +.fa-venus-double:before { + content: '\f226'; +} +.fa-mars-double:before { + content: '\f227'; +} +.fa-venus-mars:before { + content: '\f228'; +} +.fa-mars-stroke:before { + content: '\f229'; +} +.fa-mars-stroke-v:before { + content: '\f22a'; +} +.fa-mars-stroke-h:before { + content: '\f22b'; +} +.fa-neuter:before { + content: '\f22c'; +} +.fa-genderless:before { + content: '\f22d'; +} +.fa-facebook-official:before { + content: '\f230'; +} +.fa-pinterest-p:before { + content: '\f231'; +} +.fa-whatsapp:before { + content: '\f232'; +} +.fa-server:before { + content: '\f233'; +} +.fa-user-plus:before { + content: '\f234'; +} +.fa-user-times:before { + content: '\f235'; +} +.fa-hotel:before, +.fa-bed:before { + content: '\f236'; +} +.fa-viacoin:before { + content: '\f237'; +} +.fa-train:before { + content: '\f238'; +} +.fa-subway:before { + content: '\f239'; +} +.fa-medium:before { + content: '\f23a'; +} +.fa-yc:before, +.fa-y-combinator:before { + content: '\f23b'; +} +.fa-optin-monster:before { + content: '\f23c'; +} +.fa-opencart:before { + content: '\f23d'; +} +.fa-expeditedssl:before { + content: '\f23e'; +} +.fa-battery-4:before, +.fa-battery-full:before { + content: '\f240'; +} +.fa-battery-3:before, +.fa-battery-three-quarters:before { + content: '\f241'; +} +.fa-battery-2:before, +.fa-battery-half:before { + content: '\f242'; +} +.fa-battery-1:before, +.fa-battery-quarter:before { + content: '\f243'; +} +.fa-battery-0:before, +.fa-battery-empty:before { + content: '\f244'; +} +.fa-mouse-pointer:before { + content: '\f245'; +} +.fa-i-cursor:before { + content: '\f246'; +} +.fa-object-group:before { + content: '\f247'; +} +.fa-object-ungroup:before { + content: '\f248'; +} +.fa-sticky-note:before { + content: '\f249'; +} +.fa-sticky-note-o:before { + content: '\f24a'; +} +.fa-cc-jcb:before { + content: '\f24b'; +} +.fa-cc-diners-club:before { + content: '\f24c'; +} +.fa-clone:before { + content: '\f24d'; +} +.fa-balance-scale:before { + content: '\f24e'; +} +.fa-hourglass-o:before { + content: '\f250'; +} +.fa-hourglass-1:before, +.fa-hourglass-start:before { + content: '\f251'; +} +.fa-hourglass-2:before, +.fa-hourglass-half:before { + content: '\f252'; +} +.fa-hourglass-3:before, +.fa-hourglass-end:before { + content: '\f253'; +} +.fa-hourglass:before { + content: '\f254'; +} +.fa-hand-grab-o:before, +.fa-hand-rock-o:before { + content: '\f255'; +} +.fa-hand-stop-o:before, +.fa-hand-paper-o:before { + content: '\f256'; +} +.fa-hand-scissors-o:before { + content: '\f257'; +} +.fa-hand-lizard-o:before { + content: '\f258'; +} +.fa-hand-spock-o:before { + content: '\f259'; +} +.fa-hand-pointer-o:before { + content: '\f25a'; +} +.fa-hand-peace-o:before { + content: '\f25b'; +} +.fa-trademark:before { + content: '\f25c'; +} +.fa-registered:before { + content: '\f25d'; +} +.fa-creative-commons:before { + content: '\f25e'; +} +.fa-gg:before { + content: '\f260'; +} +.fa-gg-circle:before { + content: '\f261'; +} +.fa-tripadvisor:before { + content: '\f262'; +} +.fa-odnoklassniki:before { + content: '\f263'; +} +.fa-odnoklassniki-square:before { + content: '\f264'; +} +.fa-get-pocket:before { + content: '\f265'; +} +.fa-wikipedia-w:before { + content: '\f266'; +} +.fa-safari:before { + content: '\f267'; +} +.fa-chrome:before { + content: '\f268'; +} +.fa-firefox:before { + content: '\f269'; +} +.fa-opera:before { + content: '\f26a'; +} +.fa-internet-explorer:before { + content: '\f26b'; +} +.fa-tv:before, +.fa-television:before { + content: '\f26c'; +} +.fa-contao:before { + content: '\f26d'; +} +.fa-500px:before { + content: '\f26e'; +} +.fa-amazon:before { + content: '\f270'; +} +.fa-calendar-plus-o:before { + content: '\f271'; +} +.fa-calendar-minus-o:before { + content: '\f272'; +} +.fa-calendar-times-o:before { + content: '\f273'; +} +.fa-calendar-check-o:before { + content: '\f274'; +} +.fa-industry:before { + content: '\f275'; +} +.fa-map-pin:before { + content: '\f276'; +} +.fa-map-signs:before { + content: '\f277'; +} +.fa-map-o:before { + content: '\f278'; +} +.fa-map:before { + content: '\f279'; +} +.fa-commenting:before { + content: '\f27a'; +} +.fa-commenting-o:before { + content: '\f27b'; +} +.fa-houzz:before { + content: '\f27c'; +} +.fa-vimeo:before { + content: '\f27d'; +} +.fa-black-tie:before { + content: '\f27e'; +} +.fa-fonticons:before { + content: '\f280'; +} +.fa-reddit-alien:before { + content: '\f281'; +} +.fa-edge:before { + content: '\f282'; +} +.fa-credit-card-alt:before { + content: '\f283'; +} +.fa-codiepie:before { + content: '\f284'; +} +.fa-modx:before { + content: '\f285'; +} +.fa-fort-awesome:before { + content: '\f286'; +} +.fa-usb:before { + content: '\f287'; +} +.fa-product-hunt:before { + content: '\f288'; +} +.fa-mixcloud:before { + content: '\f289'; +} +.fa-scribd:before { + content: '\f28a'; +} +.fa-pause-circle:before { + content: '\f28b'; +} +.fa-pause-circle-o:before { + content: '\f28c'; +} +.fa-stop-circle:before { + content: '\f28d'; +} +.fa-stop-circle-o:before { + content: '\f28e'; +} +.fa-shopping-bag:before { + content: '\f290'; +} +.fa-shopping-basket:before { + content: '\f291'; +} +.fa-hashtag:before { + content: '\f292'; +} +.fa-bluetooth:before { + content: '\f293'; +} +.fa-bluetooth-b:before { + content: '\f294'; +} +.fa-percent:before { + content: '\f295'; +} +.fa-gitlab:before { + content: '\f296'; +} +.fa-wpbeginner:before { + content: '\f297'; +} +.fa-wpforms:before { + content: '\f298'; +} +.fa-envira:before { + content: '\f299'; +} +.fa-universal-access:before { + content: '\f29a'; +} +.fa-wheelchair-alt:before { + content: '\f29b'; +} +.fa-question-circle-o:before { + content: '\f29c'; +} +.fa-blind:before { + content: '\f29d'; +} +.fa-audio-description:before { + content: '\f29e'; +} +.fa-volume-control-phone:before { + content: '\f2a0'; +} +.fa-braille:before { + content: '\f2a1'; +} +.fa-assistive-listening-systems:before { + content: '\f2a2'; +} +.fa-asl-interpreting:before, +.fa-american-sign-language-interpreting:before { + content: '\f2a3'; +} +.fa-deafness:before, +.fa-hard-of-hearing:before, +.fa-deaf:before { + content: '\f2a4'; +} +.fa-glide:before { + content: '\f2a5'; +} +.fa-glide-g:before { + content: '\f2a6'; +} +.fa-signing:before, +.fa-sign-language:before { + content: '\f2a7'; +} +.fa-low-vision:before { + content: '\f2a8'; +} +.fa-viadeo:before { + content: '\f2a9'; +} +.fa-viadeo-square:before { + content: '\f2aa'; +} +.fa-snapchat:before { + content: '\f2ab'; +} +.fa-snapchat-ghost:before { + content: '\f2ac'; +} +.fa-snapchat-square:before { + content: '\f2ad'; +} +.fa-pied-piper:before { + content: '\f2ae'; +} +.fa-first-order:before { + content: '\f2b0'; +} +.fa-yoast:before { + content: '\f2b1'; +} +.fa-themeisle:before { + content: '\f2b2'; +} +.fa-google-plus-circle:before, +.fa-google-plus-official:before { + content: '\f2b3'; +} +.fa-fa:before, +.fa-font-awesome:before { + content: '\f2b4'; +} +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0; +} +.sr-only-focusable:active, +.sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; +} diff --git a/static/css/fonts-ja.css b/static/css/fonts-ja.css index 0802131ab0..f1bc379710 100644 --- a/static/css/fonts-ja.css +++ b/static/css/fonts-ja.css @@ -4,8 +4,26 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.0.woff2) format('woff2'); - unicode-range: U+25ee8, U+25f23, U+25f5c, U+25fd4, U+25fe0, U+25ffb, U+2600c, U+26017, U+26060, U+260ed, U+26222, U+2626a, U+26270, U+26286, U+2634c, U+26402, U+2667e, U+266b0, U+2671d, U+268dd, U+268ea, U+26951, U+2696f, U+26999, U+269dd, U+26a1e, U+26a58, U+26a8c, U+26ab7, U+26aff, U+26c29, U+26c73, U+26c9e, U+26cdd, U+26e40, U+26e65, U+26f94, U+26ff6-26ff8, U+270f4, U+2710d, U+27139, U+273da-273db, U+273fe, U+27410, U+27449, U+27614-27615, U+27631, U+27684, U+27693, U+2770e, U+27723, U+27752, U+278b2, U+27985, U+279b4, U+27a84, U+27bb3, U+27bbe, U+27bc7, U+27c3c, U+27cb8, U+27d73, U+27da0, U+27e10, U+27eaf, U+27fb7, U+2808a, U+280bb, U+28277, U+28282, U+282f3, U+283cd, U+2840c, U+28455, U+284dc, U+2856b, U+285c8-285c9, U+286d7, U+286fa, U+28946, U+28949, U+2896b, U+28987-28988, U+289ba-289bb, U+28a1e, U+28a29, U+28a43, U+28a71, U+28a99, U+28acd, U+28add, U+28ae4, U+28bc1, U+28bef, U+28cdd, U+28d10, U+28d71, U+28dfb, U+28e0f, U+28e17, U+28e1f, U+28e36, U+28e89, U+28eeb, U+28ef6, U+28f32, U+28ff8, U+292a0, U+292b1, U+29490, U+295cf, U+2967f, U+296f0, U+29719, U+29750, U+29810, U+298c6, U+29a72, U+29d4b, U+29ddb, U+29e15, U+29e3d, U+29e49, U+29e8a, U+29ec4, U+29edb, U+29ee9, U+29fce, U+29fd7, U+2a01a, U+2a02f, U+2a082, U+2a0f9, U+2a190, U+2a2b2, U+2a38c, U+2a437, U+2a5f1, U+2a602, U+2a61a, U+2a6b2, U+2a9e6, U+2b746, U+2b751, U+2b753, U+2b75a, U+2b75c, U+2b765, U+2b776-2b777, U+2b77c, U+2b782, U+2b789, U+2b78b, U+2b78e, U+2b794, U+2b7ac, U+2b7af, U+2b7bd, U+2b7c9, U+2b7cf, U+2b7d2, U+2b7d8, U+2b7f0, U+2b80d, U+2b817, U+2b81a, U+2d544, U+2e278, U+2e569, U+2e6ea, U+2f804, U+2f80f, U+2f815, U+2f818, U+2f81a, U+2f822, U+2f828, U+2f82c, U+2f833, U+2f83f, U+2f846, U+2f852, U+2f862, U+2f86d, U+2f873, U+2f877, U+2f884, U+2f899-2f89a, U+2f8a6, U+2f8ac, U+2f8b2, U+2f8b6, U+2f8d3, U+2f8db-2f8dc, U+2f8e1, U+2f8e5, U+2f8ea, U+2f8ed, U+2f8fc, U+2f903, U+2f90b, U+2f90f, U+2f91a, U+2f920-2f921, U+2f945, U+2f947, U+2f96c, U+2f995, U+2f9d0, U+2f9de-2f9df, U+2f9f4; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.0.woff2) format('woff2'); + unicode-range: + U+25ee8, U+25f23, U+25f5c, U+25fd4, U+25fe0, U+25ffb, U+2600c, U+26017, U+26060, U+260ed, U+26222, U+2626a, U+26270, U+26286, U+2634c, U+26402, + U+2667e, U+266b0, U+2671d, U+268dd, U+268ea, U+26951, U+2696f, U+26999, U+269dd, U+26a1e, U+26a58, U+26a8c, U+26ab7, U+26aff, U+26c29, U+26c73, + U+26c9e, U+26cdd, U+26e40, U+26e65, U+26f94, U+26ff6-26ff8, U+270f4, U+2710d, U+27139, U+273da-273db, U+273fe, U+27410, U+27449, U+27614-27615, + U+27631, U+27684, U+27693, U+2770e, U+27723, U+27752, U+278b2, U+27985, U+279b4, U+27a84, U+27bb3, U+27bbe, U+27bc7, U+27c3c, U+27cb8, U+27d73, + U+27da0, U+27e10, U+27eaf, U+27fb7, U+2808a, U+280bb, U+28277, U+28282, U+282f3, U+283cd, U+2840c, U+28455, U+284dc, U+2856b, U+285c8-285c9, + U+286d7, U+286fa, U+28946, U+28949, U+2896b, U+28987-28988, U+289ba-289bb, U+28a1e, U+28a29, U+28a43, U+28a71, U+28a99, U+28acd, U+28add, U+28ae4, + U+28bc1, U+28bef, U+28cdd, U+28d10, U+28d71, U+28dfb, U+28e0f, U+28e17, U+28e1f, U+28e36, U+28e89, U+28eeb, U+28ef6, U+28f32, U+28ff8, U+292a0, + U+292b1, U+29490, U+295cf, U+2967f, U+296f0, U+29719, U+29750, U+29810, U+298c6, U+29a72, U+29d4b, U+29ddb, U+29e15, U+29e3d, U+29e49, U+29e8a, + U+29ec4, U+29edb, U+29ee9, U+29fce, U+29fd7, U+2a01a, U+2a02f, U+2a082, U+2a0f9, U+2a190, U+2a2b2, U+2a38c, U+2a437, U+2a5f1, U+2a602, U+2a61a, + U+2a6b2, U+2a9e6, U+2b746, U+2b751, U+2b753, U+2b75a, U+2b75c, U+2b765, U+2b776-2b777, U+2b77c, U+2b782, U+2b789, U+2b78b, U+2b78e, U+2b794, + U+2b7ac, U+2b7af, U+2b7bd, U+2b7c9, U+2b7cf, U+2b7d2, U+2b7d8, U+2b7f0, U+2b80d, U+2b817, U+2b81a, U+2d544, U+2e278, U+2e569, U+2e6ea, U+2f804, + U+2f80f, U+2f815, U+2f818, U+2f81a, U+2f822, U+2f828, U+2f82c, U+2f833, U+2f83f, U+2f846, U+2f852, U+2f862, U+2f86d, U+2f873, U+2f877, U+2f884, + U+2f899-2f89a, U+2f8a6, U+2f8ac, U+2f8b2, U+2f8b6, U+2f8d3, U+2f8db-2f8dc, U+2f8e1, U+2f8e5, U+2f8ea, U+2f8ed, U+2f8fc, U+2f903, U+2f90b, U+2f90f, + U+2f91a, U+2f920-2f921, U+2f945, U+2f947, U+2f96c, U+2f995, U+2f9d0, U+2f9de-2f9df, U+2f9f4; } /* [1] */ @font-face { @@ -13,8 +31,25 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.1.woff2) format('woff2'); - unicode-range: U+1f235-1f23b, U+1f240-1f248, U+1f250-1f251, U+2000b, U+20089-2008a, U+200a2, U+200a4, U+200b0, U+200f5, U+20158, U+201a2, U+20213, U+2032b, U+20371, U+20381, U+203f9, U+2044a, U+20509, U+2053f, U+205b1, U+205d6, U+20611, U+20628, U+206ec, U+2074f, U+207c8, U+20807, U+2083a, U+208b9, U+2090e, U+2097c, U+20984, U+2099d, U+20a64, U+20ad3, U+20b1d, U+20b9f, U+20bb7, U+20d45, U+20d58, U+20de1, U+20e64, U+20e6d, U+20e95, U+20f5f, U+21201, U+2123d, U+21255, U+21274, U+2127b, U+212d7, U+212e4, U+212fd, U+2131b, U+21336, U+21344, U+213c4, U+2146d-2146e, U+215d7, U+21647, U+216b4, U+21706, U+21742, U+218bd, U+219c3, U+21a1a, U+21c56, U+21d2d, U+21d45, U+21d62, U+21d78, U+21d92, U+21d9c, U+21da1, U+21db7, U+21de0, U+21e33-21e34, U+21f1e, U+21f76, U+21ffa, U+2217b, U+22218, U+2231e, U+223ad, U+22609, U+226f3, U+2285b, U+228ab, U+2298f, U+22ab8, U+22b46, U+22b4f-22b50, U+22ba6, U+22c1d, U+22c24, U+22de1, U+22e42, U+22feb, U+231b6, U+231c3-231c4, U+231f5, U+23372, U+233cc, U+233d0, U+233d2-233d3, U+233d5, U+233da, U+233df, U+233e4, U+233fe, U+2344a-2344b, U+23451, U+23465, U+234e4, U+2355a, U+23594, U+235c4, U+23638-2363a, U+23647, U+2370c, U+2371c, U+2373f, U+23763-23764, U+237e7, U+237f1, U+237ff, U+23824, U+2383d, U+23a98, U+23c7f, U+23cbe, U+23cfe, U+23d00, U+23d0e, U+23d40, U+23dd3, U+23df9-23dfa, U+23f7e, U+2404b, U+24096, U+24103, U+241c6, U+241fe, U+242ee, U+243bc, U+243d0, U+24629, U+246a5, U+247f1, U+24896, U+248e9, U+24a4d, U+24b56, U+24b6f, U+24c16, U+24d14, U+24e04, U+24e0e, U+24e37, U+24e6a, U+24e8b, U+24ff2, U+2504a, U+25055, U+25122, U+251a9, U+251cd, U+251e5, U+2521e, U+2524c, U+2542e, U+2548e, U+254d9, U+2550e, U+255a7, U+2567f, U+25771, U+257a9, U+257b4, U+25874, U+259c4, U+259cc, U+259d4, U+25ad7, U+25ae3-25ae4, U+25af1, U+25bb2, U+25c4b, U+25c64, U+25da1, U+25e2e, U+25e56, U+25e62, U+25e65, U+25ec2, U+25ed8; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.1.woff2) format('woff2'); + unicode-range: + U+1f235-1f23b, U+1f240-1f248, U+1f250-1f251, U+2000b, U+20089-2008a, U+200a2, U+200a4, U+200b0, U+200f5, U+20158, U+201a2, U+20213, U+2032b, + U+20371, U+20381, U+203f9, U+2044a, U+20509, U+2053f, U+205b1, U+205d6, U+20611, U+20628, U+206ec, U+2074f, U+207c8, U+20807, U+2083a, U+208b9, + U+2090e, U+2097c, U+20984, U+2099d, U+20a64, U+20ad3, U+20b1d, U+20b9f, U+20bb7, U+20d45, U+20d58, U+20de1, U+20e64, U+20e6d, U+20e95, U+20f5f, + U+21201, U+2123d, U+21255, U+21274, U+2127b, U+212d7, U+212e4, U+212fd, U+2131b, U+21336, U+21344, U+213c4, U+2146d-2146e, U+215d7, U+21647, + U+216b4, U+21706, U+21742, U+218bd, U+219c3, U+21a1a, U+21c56, U+21d2d, U+21d45, U+21d62, U+21d78, U+21d92, U+21d9c, U+21da1, U+21db7, U+21de0, + U+21e33-21e34, U+21f1e, U+21f76, U+21ffa, U+2217b, U+22218, U+2231e, U+223ad, U+22609, U+226f3, U+2285b, U+228ab, U+2298f, U+22ab8, U+22b46, + U+22b4f-22b50, U+22ba6, U+22c1d, U+22c24, U+22de1, U+22e42, U+22feb, U+231b6, U+231c3-231c4, U+231f5, U+23372, U+233cc, U+233d0, U+233d2-233d3, + U+233d5, U+233da, U+233df, U+233e4, U+233fe, U+2344a-2344b, U+23451, U+23465, U+234e4, U+2355a, U+23594, U+235c4, U+23638-2363a, U+23647, U+2370c, + U+2371c, U+2373f, U+23763-23764, U+237e7, U+237f1, U+237ff, U+23824, U+2383d, U+23a98, U+23c7f, U+23cbe, U+23cfe, U+23d00, U+23d0e, U+23d40, + U+23dd3, U+23df9-23dfa, U+23f7e, U+2404b, U+24096, U+24103, U+241c6, U+241fe, U+242ee, U+243bc, U+243d0, U+24629, U+246a5, U+247f1, U+24896, + U+248e9, U+24a4d, U+24b56, U+24b6f, U+24c16, U+24d14, U+24e04, U+24e0e, U+24e37, U+24e6a, U+24e8b, U+24ff2, U+2504a, U+25055, U+25122, U+251a9, + U+251cd, U+251e5, U+2521e, U+2524c, U+2542e, U+2548e, U+254d9, U+2550e, U+255a7, U+2567f, U+25771, U+257a9, U+257b4, U+25874, U+259c4, U+259cc, + U+259d4, U+25ad7, U+25ae3-25ae4, U+25af1, U+25bb2, U+25c4b, U+25c64, U+25da1, U+25e2e, U+25e56, U+25e62, U+25e65, U+25ec2, U+25ed8; } /* [2] */ @font-face { @@ -22,8 +57,13 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.2.woff2) format('woff2'); - unicode-range: U+ffd7, U+ffda-ffdc, U+ffe0-ffe2, U+ffe4, U+ffe6, U+ffe8-ffee, U+1f100-1f10c, U+1f110-1f16c, U+1f170-1f1ac, U+1f200-1f202, U+1f210-1f234; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.2.woff2) format('woff2'); + unicode-range: + U+ffd7, U+ffda-ffdc, U+ffe0-ffe2, U+ffe4, U+ffe6, U+ffe8-ffee, U+1f100-1f10c, U+1f110-1f16c, U+1f170-1f1ac, U+1f200-1f202, U+1f210-1f234; } /* [3] */ @font-face { @@ -31,8 +71,14 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.3.woff2) format('woff2'); - unicode-range: U+fa10, U+fa12-fa6d, U+fb00-fb04, U+fe10-fe19, U+fe30-fe42, U+fe44-fe52, U+fe54-fe66, U+fe68-fe6b, U+ff02, U+ff04, U+ff07, U+ff51, U+ff5b, U+ff5d, U+ff5f-ff60, U+ff66, U+ff69, U+ff87, U+ffa1-ffbe, U+ffc2-ffc7, U+ffca-ffcf, U+ffd2-ffd6; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.3.woff2) format('woff2'); + unicode-range: + U+fa10, U+fa12-fa6d, U+fb00-fb04, U+fe10-fe19, U+fe30-fe42, U+fe44-fe52, U+fe54-fe66, U+fe68-fe6b, U+ff02, U+ff04, U+ff07, U+ff51, U+ff5b, U+ff5d, + U+ff5f-ff60, U+ff66, U+ff69, U+ff87, U+ffa1-ffbe, U+ffc2-ffc7, U+ffca-ffcf, U+ffd2-ffd6; } /* [4] */ @font-face { @@ -40,7 +86,11 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.4.woff2) format('woff2'); + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.4.woff2) format('woff2'); unicode-range: U+f92d-f959, U+f95b-f9f2, U+f9f4-fa0b, U+fa0e-fa0f; } /* [5] */ @@ -49,8 +99,18 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.5.woff2) format('woff2'); - unicode-range: U+9e8b-9e8c, U+9e8e-9e8f, U+9e91-9e92, U+9e95-9e96, U+9e98, U+9e9b, U+9e9d-9e9e, U+9ea4-9ea5, U+9ea8-9eaa, U+9eac-9eb0, U+9eb3-9eb5, U+9eb8, U+9ebc-9ebf, U+9ec3, U+9ec6, U+9ec8, U+9ecb-9ecd, U+9ecf-9ed1, U+9ed4-9ed5, U+9ed8, U+9edb-9ee0, U+9ee4-9ee5, U+9ee7-9ee8, U+9eec-9ef2, U+9ef4-9ef9, U+9efb-9eff, U+9f02-9f03, U+9f07-9f09, U+9f0e-9f12, U+9f14-9f17, U+9f19-9f1b, U+9f1f-9f22, U+9f26, U+9f2a-9f2c, U+9f2f, U+9f31-9f32, U+9f34, U+9f37, U+9f39-9f3a, U+9f3c-9f3f, U+9f41, U+9f43-9f47, U+9f4a, U+9f4e-9f50, U+9f52-9f58, U+9f5a, U+9f5d-9f61, U+9f63, U+9f66-9f6a, U+9f6c-9f73, U+9f75-9f77, U+9f7a, U+9f7d, U+9f7f, U+9f8f-9f92, U+9f94-9f97, U+9f99, U+9f9c-9fa3, U+9fa5, U+9fb4, U+9fbc-9fc2, U+9fc4, U+9fc6, U+9fcc, U+f900-f92c; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.5.woff2) format('woff2'); + unicode-range: + U+9e8b-9e8c, U+9e8e-9e8f, U+9e91-9e92, U+9e95-9e96, U+9e98, U+9e9b, U+9e9d-9e9e, U+9ea4-9ea5, U+9ea8-9eaa, U+9eac-9eb0, U+9eb3-9eb5, U+9eb8, + U+9ebc-9ebf, U+9ec3, U+9ec6, U+9ec8, U+9ecb-9ecd, U+9ecf-9ed1, U+9ed4-9ed5, U+9ed8, U+9edb-9ee0, U+9ee4-9ee5, U+9ee7-9ee8, U+9eec-9ef2, + U+9ef4-9ef9, U+9efb-9eff, U+9f02-9f03, U+9f07-9f09, U+9f0e-9f12, U+9f14-9f17, U+9f19-9f1b, U+9f1f-9f22, U+9f26, U+9f2a-9f2c, U+9f2f, U+9f31-9f32, + U+9f34, U+9f37, U+9f39-9f3a, U+9f3c-9f3f, U+9f41, U+9f43-9f47, U+9f4a, U+9f4e-9f50, U+9f52-9f58, U+9f5a, U+9f5d-9f61, U+9f63, U+9f66-9f6a, + U+9f6c-9f73, U+9f75-9f77, U+9f7a, U+9f7d, U+9f7f, U+9f8f-9f92, U+9f94-9f97, U+9f99, U+9f9c-9fa3, U+9fa5, U+9fb4, U+9fbc-9fc2, U+9fc4, U+9fc6, + U+9fcc, U+f900-f92c; } /* [6] */ @font-face { @@ -58,8 +118,19 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.6.woff2) format('woff2'); - unicode-range: U+9c3e, U+9c41, U+9c43-9c4a, U+9c4e-9c50, U+9c52-9c54, U+9c56, U+9c58, U+9c5a-9c61, U+9c63, U+9c65, U+9c67-9c6b, U+9c6d-9c6e, U+9c70, U+9c72, U+9c75-9c78, U+9c7a-9c7c, U+9ce6-9ce7, U+9ceb-9cec, U+9cf0, U+9cf2, U+9cf6-9cf7, U+9cf9, U+9d02-9d03, U+9d06-9d09, U+9d0b, U+9d0e, U+9d11-9d12, U+9d15, U+9d17-9d18, U+9d1b-9d1f, U+9d23, U+9d26, U+9d2a-9d2c, U+9d2f-9d30, U+9d32-9d34, U+9d3a, U+9d3c-9d3f, U+9d41-9d48, U+9d4a, U+9d50-9d54, U+9d59, U+9d5d-9d65, U+9d69-9d6c, U+9d6f-9d70, U+9d72-9d73, U+9d76-9d77, U+9d7a-9d7c, U+9d7e, U+9d83-9d84, U+9d86-9d87, U+9d89-9d8a, U+9d8d-9d8e, U+9d92-9d93, U+9d95-9d9a, U+9da1, U+9da4, U+9da9-9dac, U+9dae, U+9db1-9db2, U+9db5, U+9db8-9dbd, U+9dbf-9dc4, U+9dc6-9dc7, U+9dc9-9dca, U+9dcf, U+9dd3-9dd7, U+9dd9-9dda, U+9dde-9de0, U+9de3, U+9de5-9de7, U+9de9, U+9deb, U+9ded-9df0, U+9df3-9df4, U+9df8, U+9dfd-9dfe, U+9e02, U+9e07, U+9e0a, U+9e0d-9e0e, U+9e10-9e12, U+9e15-9e16, U+9e19-9e1f, U+9e75, U+9e79-9e7d, U+9e80-9e85, U+9e87-9e88; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.6.woff2) format('woff2'); + unicode-range: + U+9c3e, U+9c41, U+9c43-9c4a, U+9c4e-9c50, U+9c52-9c54, U+9c56, U+9c58, U+9c5a-9c61, U+9c63, U+9c65, U+9c67-9c6b, U+9c6d-9c6e, U+9c70, U+9c72, + U+9c75-9c78, U+9c7a-9c7c, U+9ce6-9ce7, U+9ceb-9cec, U+9cf0, U+9cf2, U+9cf6-9cf7, U+9cf9, U+9d02-9d03, U+9d06-9d09, U+9d0b, U+9d0e, U+9d11-9d12, + U+9d15, U+9d17-9d18, U+9d1b-9d1f, U+9d23, U+9d26, U+9d2a-9d2c, U+9d2f-9d30, U+9d32-9d34, U+9d3a, U+9d3c-9d3f, U+9d41-9d48, U+9d4a, U+9d50-9d54, + U+9d59, U+9d5d-9d65, U+9d69-9d6c, U+9d6f-9d70, U+9d72-9d73, U+9d76-9d77, U+9d7a-9d7c, U+9d7e, U+9d83-9d84, U+9d86-9d87, U+9d89-9d8a, U+9d8d-9d8e, + U+9d92-9d93, U+9d95-9d9a, U+9da1, U+9da4, U+9da9-9dac, U+9dae, U+9db1-9db2, U+9db5, U+9db8-9dbd, U+9dbf-9dc4, U+9dc6-9dc7, U+9dc9-9dca, U+9dcf, + U+9dd3-9dd7, U+9dd9-9dda, U+9dde-9de0, U+9de3, U+9de5-9de7, U+9de9, U+9deb, U+9ded-9df0, U+9df3-9df4, U+9df8, U+9dfd-9dfe, U+9e02, U+9e07, U+9e0a, + U+9e0d-9e0e, U+9e10-9e12, U+9e15-9e16, U+9e19-9e1f, U+9e75, U+9e79-9e7d, U+9e80-9e85, U+9e87-9e88; } /* [7] */ @font-face { @@ -67,8 +138,18 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.7.woff2) format('woff2'); - unicode-range: U+9ae5-9ae7, U+9ae9, U+9aeb-9aec, U+9aee-9aef, U+9af1-9af5, U+9af7, U+9af9-9afb, U+9afd, U+9aff-9b06, U+9b08-9b09, U+9b0b-9b0e, U+9b10, U+9b12, U+9b16, U+9b18-9b1d, U+9b1f-9b20, U+9b22-9b23, U+9b25-9b2f, U+9b32-9b35, U+9b37, U+9b39-9b3b, U+9b3d, U+9b43-9b44, U+9b48, U+9b4b-9b4f, U+9b51, U+9b55-9b58, U+9b5b, U+9b5e, U+9b61, U+9b63, U+9b65-9b66, U+9b68, U+9b6a-9b6f, U+9b72-9b79, U+9b7f-9b80, U+9b83-9b87, U+9b89-9b8b, U+9b8d, U+9b8f-9b94, U+9b96-9b97, U+9b9a, U+9b9d-9ba0, U+9ba6-9ba7, U+9ba9-9baa, U+9bac, U+9bb0-9bb2, U+9bb4, U+9bb7-9bb9, U+9bbb-9bbc, U+9bbe-9bc1, U+9bc6-9bc8, U+9bca, U+9bce-9bd2, U+9bd4, U+9bd7-9bd8, U+9bdd, U+9bdf, U+9be1-9be5, U+9be7, U+9bea-9beb, U+9bee-9bf3, U+9bf5, U+9bf7-9bfa, U+9bfd, U+9bff-9c00, U+9c02, U+9c04, U+9c06, U+9c08-9c0d, U+9c0f-9c16, U+9c18-9c1e, U+9c21-9c2a, U+9c2d-9c32, U+9c35-9c37, U+9c39-9c3a, U+9c3d; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.7.woff2) format('woff2'); + unicode-range: + U+9ae5-9ae7, U+9ae9, U+9aeb-9aec, U+9aee-9aef, U+9af1-9af5, U+9af7, U+9af9-9afb, U+9afd, U+9aff-9b06, U+9b08-9b09, U+9b0b-9b0e, U+9b10, U+9b12, + U+9b16, U+9b18-9b1d, U+9b1f-9b20, U+9b22-9b23, U+9b25-9b2f, U+9b32-9b35, U+9b37, U+9b39-9b3b, U+9b3d, U+9b43-9b44, U+9b48, U+9b4b-9b4f, U+9b51, + U+9b55-9b58, U+9b5b, U+9b5e, U+9b61, U+9b63, U+9b65-9b66, U+9b68, U+9b6a-9b6f, U+9b72-9b79, U+9b7f-9b80, U+9b83-9b87, U+9b89-9b8b, U+9b8d, + U+9b8f-9b94, U+9b96-9b97, U+9b9a, U+9b9d-9ba0, U+9ba6-9ba7, U+9ba9-9baa, U+9bac, U+9bb0-9bb2, U+9bb4, U+9bb7-9bb9, U+9bbb-9bbc, U+9bbe-9bc1, + U+9bc6-9bc8, U+9bca, U+9bce-9bd2, U+9bd4, U+9bd7-9bd8, U+9bdd, U+9bdf, U+9be1-9be5, U+9be7, U+9bea-9beb, U+9bee-9bf3, U+9bf5, U+9bf7-9bfa, U+9bfd, + U+9bff-9c00, U+9c02, U+9c04, U+9c06, U+9c08-9c0d, U+9c0f-9c16, U+9c18-9c1e, U+9c21-9c2a, U+9c2d-9c32, U+9c35-9c37, U+9c39-9c3a, U+9c3d; } /* [8] */ @font-face { @@ -76,8 +157,19 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.8.woff2) format('woff2'); - unicode-range: U+98eb, U+98ed-98ee, U+98f0-98f1, U+98f3, U+98f6, U+9902, U+9907-9909, U+9911-9912, U+9914-9918, U+991a-9922, U+9924, U+9926-9927, U+992b-992c, U+992e, U+9931-9935, U+9939-993e, U+9940-9942, U+9945-9949, U+994b-994e, U+9950-9952, U+9954-9955, U+9958-9959, U+995b-995c, U+995e-9960, U+9963, U+9997-9998, U+999b, U+999d-999f, U+99a3, U+99a5-99a6, U+99a8, U+99ad-99ae, U+99b0-99b2, U+99b5, U+99b9-99ba, U+99bc-99bd, U+99bf, U+99c1, U+99c3, U+99c8-99c9, U+99d1, U+99d3-99d5, U+99d8-99df, U+99e1-99e2, U+99e7, U+99ea-99ee, U+99f0-99f2, U+99f4-99f5, U+99f8-99f9, U+99fb-99fe, U+9a01-9a05, U+9a08, U+9a0a-9a0c, U+9a0f-9a11, U+9a16, U+9a1a, U+9a1e, U+9a20, U+9a22-9a24, U+9a27, U+9a2b, U+9a2d-9a2e, U+9a31, U+9a33, U+9a35-9a38, U+9a3e, U+9a40-9a45, U+9a47, U+9a4a-9a4e, U+9a51-9a52, U+9a54-9a58, U+9a5b, U+9a5d, U+9a5f, U+9a62, U+9a64-9a65, U+9a69-9a6c, U+9aaa, U+9aac-9ab0, U+9ab2, U+9ab4-9ab7, U+9ab9, U+9abb-9ac1, U+9ac3, U+9ac6, U+9ac8, U+9ace-9ad3, U+9ad5-9ad7, U+9adb-9adc, U+9ade-9ae0, U+9ae2-9ae4; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.8.woff2) format('woff2'); + unicode-range: + U+98eb, U+98ed-98ee, U+98f0-98f1, U+98f3, U+98f6, U+9902, U+9907-9909, U+9911-9912, U+9914-9918, U+991a-9922, U+9924, U+9926-9927, U+992b-992c, + U+992e, U+9931-9935, U+9939-993e, U+9940-9942, U+9945-9949, U+994b-994e, U+9950-9952, U+9954-9955, U+9958-9959, U+995b-995c, U+995e-9960, U+9963, + U+9997-9998, U+999b, U+999d-999f, U+99a3, U+99a5-99a6, U+99a8, U+99ad-99ae, U+99b0-99b2, U+99b5, U+99b9-99ba, U+99bc-99bd, U+99bf, U+99c1, U+99c3, + U+99c8-99c9, U+99d1, U+99d3-99d5, U+99d8-99df, U+99e1-99e2, U+99e7, U+99ea-99ee, U+99f0-99f2, U+99f4-99f5, U+99f8-99f9, U+99fb-99fe, U+9a01-9a05, + U+9a08, U+9a0a-9a0c, U+9a0f-9a11, U+9a16, U+9a1a, U+9a1e, U+9a20, U+9a22-9a24, U+9a27, U+9a2b, U+9a2d-9a2e, U+9a31, U+9a33, U+9a35-9a38, U+9a3e, + U+9a40-9a45, U+9a47, U+9a4a-9a4e, U+9a51-9a52, U+9a54-9a58, U+9a5b, U+9a5d, U+9a5f, U+9a62, U+9a64-9a65, U+9a69-9a6c, U+9aaa, U+9aac-9ab0, U+9ab2, + U+9ab4-9ab7, U+9ab9, U+9abb-9ac1, U+9ac3, U+9ac6, U+9ac8, U+9ace-9ad3, U+9ad5-9ad7, U+9adb-9adc, U+9ade-9ae0, U+9ae2-9ae4; } /* [9] */ @font-face { @@ -85,8 +177,20 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.9.woff2) format('woff2'); - unicode-range: U+971d, U+9721-9724, U+9728, U+972a, U+9730-9731, U+9733, U+9736, U+9738-9739, U+973b, U+973d-973e, U+9741-9744, U+9746-974a, U+974d-974f, U+9751, U+9755, U+9757-9758, U+975a-975c, U+9760-9761, U+9763-9764, U+9766-9768, U+976a-976b, U+976e, U+9771, U+9773, U+9776-977d, U+977f-9781, U+9785-9786, U+9789, U+978b, U+978f-9790, U+9795-9797, U+9799-979a, U+979c, U+979e-97a0, U+97a2-97a3, U+97a6, U+97a8, U+97ab-97ac, U+97ae, U+97b1-97b6, U+97b8-97ba, U+97bc, U+97be-97bf, U+97c1, U+97c3-97ce, U+97d0-97d1, U+97d4, U+97d7-97d9, U+97db-97de, U+97e0-97e1, U+97e4, U+97e6, U+97ed-97ef, U+97f1-97f2, U+97f4-97f8, U+97fa, U+9804, U+9807, U+980a, U+980c-980f, U+9814, U+9816-9817, U+9819-981a, U+981c, U+981e, U+9820-9821, U+9823-9826, U+982b, U+982e-9830, U+9832-9835, U+9837, U+9839, U+983d-983e, U+9844, U+9846-9847, U+984a-984b, U+984f, U+9851-9853, U+9856-9857, U+9859-985b, U+9862-9863, U+9865-9866, U+986a-986c, U+986f-9871, U+9873-9875, U+98aa-98ab, U+98ad-98ae, U+98b0-98b1, U+98b4, U+98b6-98b8, U+98ba-98bc, U+98bf, U+98c2-98c8, U+98cb-98cc, U+98ce, U+98dc, U+98de, U+98e0-98e1, U+98e3, U+98e5-98e7, U+98e9-98ea; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.9.woff2) format('woff2'); + unicode-range: + U+971d, U+9721-9724, U+9728, U+972a, U+9730-9731, U+9733, U+9736, U+9738-9739, U+973b, U+973d-973e, U+9741-9744, U+9746-974a, U+974d-974f, U+9751, + U+9755, U+9757-9758, U+975a-975c, U+9760-9761, U+9763-9764, U+9766-9768, U+976a-976b, U+976e, U+9771, U+9773, U+9776-977d, U+977f-9781, + U+9785-9786, U+9789, U+978b, U+978f-9790, U+9795-9797, U+9799-979a, U+979c, U+979e-97a0, U+97a2-97a3, U+97a6, U+97a8, U+97ab-97ac, U+97ae, + U+97b1-97b6, U+97b8-97ba, U+97bc, U+97be-97bf, U+97c1, U+97c3-97ce, U+97d0-97d1, U+97d4, U+97d7-97d9, U+97db-97de, U+97e0-97e1, U+97e4, U+97e6, + U+97ed-97ef, U+97f1-97f2, U+97f4-97f8, U+97fa, U+9804, U+9807, U+980a, U+980c-980f, U+9814, U+9816-9817, U+9819-981a, U+981c, U+981e, U+9820-9821, + U+9823-9826, U+982b, U+982e-9830, U+9832-9835, U+9837, U+9839, U+983d-983e, U+9844, U+9846-9847, U+984a-984b, U+984f, U+9851-9853, U+9856-9857, + U+9859-985b, U+9862-9863, U+9865-9866, U+986a-986c, U+986f-9871, U+9873-9875, U+98aa-98ab, U+98ad-98ae, U+98b0-98b1, U+98b4, U+98b6-98b8, + U+98ba-98bc, U+98bf, U+98c2-98c8, U+98cb-98cc, U+98ce, U+98dc, U+98de, U+98e0-98e1, U+98e3, U+98e5-98e7, U+98e9-98ea; } /* [10] */ @font-face { @@ -94,8 +198,20 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.10.woff2) format('woff2'); - unicode-range: U+944a, U+944c, U+9452-9453, U+9455, U+9459-945c, U+945e-9463, U+9468, U+946a-946b, U+946d-9472, U+9475, U+9477, U+947c-947f, U+9481, U+9483-9485, U+9578-9579, U+957e-957f, U+9582, U+9584, U+9586-9588, U+958a, U+958c-958f, U+9592, U+9594, U+9596, U+9598-9599, U+959d-95a1, U+95a4, U+95a6-95a9, U+95ab-95ad, U+95b1, U+95b4, U+95b6, U+95b9-95bf, U+95c3, U+95c6, U+95c8-95cd, U+95d0-95d6, U+95d9-95da, U+95dc-95e2, U+95e4-95e6, U+95e8, U+961d-961e, U+9621-9622, U+9624-9626, U+9628, U+962c, U+962e-962f, U+9631, U+9633-9634, U+9637-963a, U+963c-963d, U+9641-9642, U+964b-964c, U+964f, U+9652, U+9654, U+9656-9658, U+965c-965f, U+9661, U+9666, U+966a, U+966c, U+966e, U+9672, U+9674, U+9677, U+967b-967c, U+967e-967f, U+9681-9684, U+9689, U+968b, U+968d, U+9691, U+9695-9698, U+969a, U+969d, U+969f, U+96a4-96aa, U+96ae-96b4, U+96b6, U+96b8-96bb, U+96bd, U+96c1, U+96c9-96cb, U+96cd-96ce, U+96d2, U+96d5-96d6, U+96d8-96da, U+96dc-96df, U+96e9, U+96ef, U+96f1, U+96f9-96fa, U+9702-9706, U+9708-9709, U+970d-970f, U+9711, U+9713-9714, U+9716, U+9719-971b; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.10.woff2) format('woff2'); + unicode-range: + U+944a, U+944c, U+9452-9453, U+9455, U+9459-945c, U+945e-9463, U+9468, U+946a-946b, U+946d-9472, U+9475, U+9477, U+947c-947f, U+9481, U+9483-9485, + U+9578-9579, U+957e-957f, U+9582, U+9584, U+9586-9588, U+958a, U+958c-958f, U+9592, U+9594, U+9596, U+9598-9599, U+959d-95a1, U+95a4, U+95a6-95a9, + U+95ab-95ad, U+95b1, U+95b4, U+95b6, U+95b9-95bf, U+95c3, U+95c6, U+95c8-95cd, U+95d0-95d6, U+95d9-95da, U+95dc-95e2, U+95e4-95e6, U+95e8, + U+961d-961e, U+9621-9622, U+9624-9626, U+9628, U+962c, U+962e-962f, U+9631, U+9633-9634, U+9637-963a, U+963c-963d, U+9641-9642, U+964b-964c, + U+964f, U+9652, U+9654, U+9656-9658, U+965c-965f, U+9661, U+9666, U+966a, U+966c, U+966e, U+9672, U+9674, U+9677, U+967b-967c, U+967e-967f, + U+9681-9684, U+9689, U+968b, U+968d, U+9691, U+9695-9698, U+969a, U+969d, U+969f, U+96a4-96aa, U+96ae-96b4, U+96b6, U+96b8-96bb, U+96bd, U+96c1, + U+96c9-96cb, U+96cd-96ce, U+96d2, U+96d5-96d6, U+96d8-96da, U+96dc-96df, U+96e9, U+96ef, U+96f1, U+96f9-96fa, U+9702-9706, U+9708-9709, + U+970d-970f, U+9711, U+9713-9714, U+9716, U+9719-971b; } /* [11] */ @font-face { @@ -103,8 +219,19 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.11.woff2) format('woff2'); - unicode-range: U+92bc-92bd, U+92bf-92c3, U+92c5-92c8, U+92cb-92d0, U+92d2-92d3, U+92d5, U+92d7-92d9, U+92dc-92dd, U+92df-92e1, U+92e3-92e5, U+92e7-92ea, U+92ec, U+92ee, U+92f0, U+92f2, U+92f7-92fb, U+92ff-9300, U+9302, U+9304, U+9308, U+930d, U+930f-9311, U+9314-9315, U+9318-931a, U+931c-931f, U+9321-9325, U+9327-932b, U+932e, U+9333-9337, U+933a-933b, U+9344, U+9347-934a, U+934d, U+9350-9352, U+9354-9358, U+935a, U+935c, U+935e, U+9360, U+9364-9365, U+9367, U+9369-936d, U+936f-9371, U+9373-9374, U+9376, U+937a, U+937d-9382, U+9388, U+938a-938b, U+938d, U+938f, U+9392, U+9394-9395, U+9397-9398, U+939a-939b, U+939e, U+93a1, U+93a3-93a4, U+93a6, U+93a8-93a9, U+93ab-93ad, U+93b0, U+93b4-93b6, U+93b9-93bb, U+93c1, U+93c3-93cd, U+93d0-93d1, U+93d3, U+93d6-93d9, U+93dc-93df, U+93e2, U+93e4-93e8, U+93f1, U+93f5, U+93f7-93fb, U+93fd, U+9401-9404, U+9407-9409, U+940d-9410, U+9413-9417, U+9419-941a, U+941f, U+9421, U+942b, U+942e-942f, U+9431-9434, U+9436, U+9438, U+943a-943b, U+943d, U+943f, U+9441, U+9443-9445, U+9448; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.11.woff2) format('woff2'); + unicode-range: + U+92bc-92bd, U+92bf-92c3, U+92c5-92c8, U+92cb-92d0, U+92d2-92d3, U+92d5, U+92d7-92d9, U+92dc-92dd, U+92df-92e1, U+92e3-92e5, U+92e7-92ea, U+92ec, + U+92ee, U+92f0, U+92f2, U+92f7-92fb, U+92ff-9300, U+9302, U+9304, U+9308, U+930d, U+930f-9311, U+9314-9315, U+9318-931a, U+931c-931f, U+9321-9325, + U+9327-932b, U+932e, U+9333-9337, U+933a-933b, U+9344, U+9347-934a, U+934d, U+9350-9352, U+9354-9358, U+935a, U+935c, U+935e, U+9360, U+9364-9365, + U+9367, U+9369-936d, U+936f-9371, U+9373-9374, U+9376, U+937a, U+937d-9382, U+9388, U+938a-938b, U+938d, U+938f, U+9392, U+9394-9395, U+9397-9398, + U+939a-939b, U+939e, U+93a1, U+93a3-93a4, U+93a6, U+93a8-93a9, U+93ab-93ad, U+93b0, U+93b4-93b6, U+93b9-93bb, U+93c1, U+93c3-93cd, U+93d0-93d1, + U+93d3, U+93d6-93d9, U+93dc-93df, U+93e2, U+93e4-93e8, U+93f1, U+93f5, U+93f7-93fb, U+93fd, U+9401-9404, U+9407-9409, U+940d-9410, U+9413-9417, + U+9419-941a, U+941f, U+9421, U+942b, U+942e-942f, U+9431-9434, U+9436, U+9438, U+943a-943b, U+943d, U+943f, U+9441, U+9443-9445, U+9448; } /* [12] */ @font-face { @@ -112,8 +239,19 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.12.woff2) format('woff2'); - unicode-range: U+9143, U+9146-914c, U+914f, U+9153, U+9156-915b, U+9161, U+9163-9165, U+9167, U+9169, U+916d, U+9172-9174, U+9179-917b, U+9181-9183, U+9185-9187, U+9189-918b, U+918e, U+9191, U+9193-9195, U+9197-9198, U+919e, U+91a1-91a2, U+91a6, U+91a8, U+91aa-91b6, U+91ba-91bd, U+91bf-91c6, U+91c9, U+91cb, U+91d0, U+91d3-91d4, U+91d6-91d7, U+91d9-91db, U+91de-91df, U+91e1, U+91e4-91e6, U+91e9-91ea, U+91ec-91f1, U+91f5-91f7, U+91f9, U+91fb-91fd, U+91ff-9201, U+9204-9207, U+9209-920a, U+920c, U+920e, U+9210-9218, U+921c-921e, U+9223-9226, U+9228-9229, U+922c, U+922e-9230, U+9233, U+9235-923a, U+923c, U+923e-9240, U+9242-9243, U+9245-924b, U+924d-9251, U+9256-925a, U+925c-925e, U+9260-9261, U+9264-9269, U+926e-9270, U+9275-9279, U+927b-927f, U+9288-928a, U+928d-928e, U+9291-9293, U+9295-9297, U+9299, U+929b-929c, U+929f-92a0, U+92a4-92a5, U+92a7-92a8, U+92ab, U+92af, U+92b2-92b3, U+92b6-92bb; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.12.woff2) format('woff2'); + unicode-range: + U+9143, U+9146-914c, U+914f, U+9153, U+9156-915b, U+9161, U+9163-9165, U+9167, U+9169, U+916d, U+9172-9174, U+9179-917b, U+9181-9183, U+9185-9187, + U+9189-918b, U+918e, U+9191, U+9193-9195, U+9197-9198, U+919e, U+91a1-91a2, U+91a6, U+91a8, U+91aa-91b6, U+91ba-91bd, U+91bf-91c6, U+91c9, U+91cb, + U+91d0, U+91d3-91d4, U+91d6-91d7, U+91d9-91db, U+91de-91df, U+91e1, U+91e4-91e6, U+91e9-91ea, U+91ec-91f1, U+91f5-91f7, U+91f9, U+91fb-91fd, + U+91ff-9201, U+9204-9207, U+9209-920a, U+920c, U+920e, U+9210-9218, U+921c-921e, U+9223-9226, U+9228-9229, U+922c, U+922e-9230, U+9233, + U+9235-923a, U+923c, U+923e-9240, U+9242-9243, U+9245-924b, U+924d-9251, U+9256-925a, U+925c-925e, U+9260-9261, U+9264-9269, U+926e-9270, + U+9275-9279, U+927b-927f, U+9288-928a, U+928d-928e, U+9291-9293, U+9295-9297, U+9299, U+929b-929c, U+929f-92a0, U+92a4-92a5, U+92a7-92a8, U+92ab, + U+92af, U+92b2-92b3, U+92b6-92bb; } /* [13] */ @font-face { @@ -121,8 +259,20 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.13.woff2) format('woff2'); - unicode-range: U+8f52-8f55, U+8f57-8f58, U+8f5c-8f5e, U+8f61-8f66, U+8f9c-8f9d, U+8f9f-8fa2, U+8fa4-8fa8, U+8fad-8faf, U+8fb4-8fb8, U+8fbe, U+8fc0-8fc2, U+8fc6, U+8fc8, U+8fca-8fcb, U+8fcd, U+8fd0, U+8fd2-8fd3, U+8fd5, U+8fda, U+8fe0, U+8fe2-8fe5, U+8fe8-8fea, U+8fed-8fef, U+8ff1, U+8ff4-8ff6, U+8ff8-8ffb, U+8ffe, U+9002, U+9004-9005, U+9008, U+900b-900e, U+9011, U+9013, U+9015-9016, U+9018, U+901b, U+901e, U+9021, U+9027-902a, U+902c-902d, U+902f, U+9033-9037, U+9039, U+903c, U+903e-903f, U+9041, U+9043-9044, U+9049, U+904c, U+904f-9052, U+9056, U+9058, U+905b-905e, U+9062, U+9066-9068, U+906c, U+906f-9070, U+9072, U+9074, U+9076, U+9079, U+9080-9083, U+9085, U+9087-9088, U+908b-908c, U+908e-9090, U+9095, U+9097-9099, U+909b, U+90a0-90a2, U+90a5, U+90a8, U+90af-90b6, U+90bd-90be, U+90c3-90c5, U+90c7-90c9, U+90cc, U+90d2, U+90d5, U+90d7-90d9, U+90db-90df, U+90e2, U+90e4-90e5, U+90eb, U+90ef-90f0, U+90f2, U+90f4, U+90f6, U+90fe-9100, U+9102, U+9104-9106, U+9108, U+910d, U+9110, U+9112, U+9114-911a, U+911c, U+911e, U+9120, U+9122-9123, U+9125, U+9127, U+9129, U+912d-9132, U+9134, U+9136-9137, U+9139-913a, U+913c-913d; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.13.woff2) format('woff2'); + unicode-range: + U+8f52-8f55, U+8f57-8f58, U+8f5c-8f5e, U+8f61-8f66, U+8f9c-8f9d, U+8f9f-8fa2, U+8fa4-8fa8, U+8fad-8faf, U+8fb4-8fb8, U+8fbe, U+8fc0-8fc2, U+8fc6, + U+8fc8, U+8fca-8fcb, U+8fcd, U+8fd0, U+8fd2-8fd3, U+8fd5, U+8fda, U+8fe0, U+8fe2-8fe5, U+8fe8-8fea, U+8fed-8fef, U+8ff1, U+8ff4-8ff6, U+8ff8-8ffb, + U+8ffe, U+9002, U+9004-9005, U+9008, U+900b-900e, U+9011, U+9013, U+9015-9016, U+9018, U+901b, U+901e, U+9021, U+9027-902a, U+902c-902d, U+902f, + U+9033-9037, U+9039, U+903c, U+903e-903f, U+9041, U+9043-9044, U+9049, U+904c, U+904f-9052, U+9056, U+9058, U+905b-905e, U+9062, U+9066-9068, + U+906c, U+906f-9070, U+9072, U+9074, U+9076, U+9079, U+9080-9083, U+9085, U+9087-9088, U+908b-908c, U+908e-9090, U+9095, U+9097-9099, U+909b, + U+90a0-90a2, U+90a5, U+90a8, U+90af-90b6, U+90bd-90be, U+90c3-90c5, U+90c7-90c9, U+90cc, U+90d2, U+90d5, U+90d7-90d9, U+90db-90df, U+90e2, + U+90e4-90e5, U+90eb, U+90ef-90f0, U+90f2, U+90f4, U+90f6, U+90fe-9100, U+9102, U+9104-9106, U+9108, U+910d, U+9110, U+9112, U+9114-911a, U+911c, + U+911e, U+9120, U+9122-9123, U+9125, U+9127, U+9129, U+912d-9132, U+9134, U+9136-9137, U+9139-913a, U+913c-913d; } /* [14] */ @font-face { @@ -130,8 +280,19 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.14.woff2) format('woff2'); - unicode-range: U+8dc0, U+8dc2, U+8dc5-8dc8, U+8dca-8dcc, U+8dce-8dcf, U+8dd1, U+8dd4-8dd7, U+8dd9-8ddb, U+8ddf, U+8de3-8de5, U+8de7, U+8dea-8dec, U+8df0-8df2, U+8df4, U+8dfc-8dfd, U+8dff, U+8e01, U+8e04-8e06, U+8e08-8e09, U+8e0b-8e0c, U+8e10-8e11, U+8e14, U+8e16, U+8e1d-8e23, U+8e26-8e27, U+8e30-8e31, U+8e33-8e39, U+8e3d, U+8e40-8e42, U+8e44, U+8e47-8e50, U+8e54-8e55, U+8e59, U+8e5b-8e64, U+8e69, U+8e6c-8e6d, U+8e6f-8e72, U+8e75-8e77, U+8e79-8e7c, U+8e81-8e85, U+8e89, U+8e8b, U+8e90-8e95, U+8e98-8e9b, U+8e9d-8e9e, U+8ea1-8ea2, U+8ea7, U+8ea9-8eaa, U+8eac-8eb1, U+8eb3, U+8eb5-8eb6, U+8eba-8ebb, U+8ebe, U+8ec0-8ec1, U+8ec3-8ec8, U+8ecb, U+8ecf, U+8ed1, U+8ed4, U+8edb-8edc, U+8ee3, U+8ee8, U+8eeb, U+8eed-8eee, U+8ef0-8ef1, U+8ef7, U+8ef9-8efc, U+8efe, U+8f00, U+8f02, U+8f05, U+8f07-8f08, U+8f0a, U+8f0f-8f10, U+8f12-8f13, U+8f15-8f19, U+8f1b-8f1c, U+8f1e-8f21, U+8f23, U+8f25-8f28, U+8f2b-8f2f, U+8f33-8f37, U+8f39-8f3b, U+8f3e, U+8f40-8f43, U+8f45-8f47, U+8f49-8f4a, U+8f4c-8f4f, U+8f51; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.14.woff2) format('woff2'); + unicode-range: + U+8dc0, U+8dc2, U+8dc5-8dc8, U+8dca-8dcc, U+8dce-8dcf, U+8dd1, U+8dd4-8dd7, U+8dd9-8ddb, U+8ddf, U+8de3-8de5, U+8de7, U+8dea-8dec, U+8df0-8df2, + U+8df4, U+8dfc-8dfd, U+8dff, U+8e01, U+8e04-8e06, U+8e08-8e09, U+8e0b-8e0c, U+8e10-8e11, U+8e14, U+8e16, U+8e1d-8e23, U+8e26-8e27, U+8e30-8e31, + U+8e33-8e39, U+8e3d, U+8e40-8e42, U+8e44, U+8e47-8e50, U+8e54-8e55, U+8e59, U+8e5b-8e64, U+8e69, U+8e6c-8e6d, U+8e6f-8e72, U+8e75-8e77, + U+8e79-8e7c, U+8e81-8e85, U+8e89, U+8e8b, U+8e90-8e95, U+8e98-8e9b, U+8e9d-8e9e, U+8ea1-8ea2, U+8ea7, U+8ea9-8eaa, U+8eac-8eb1, U+8eb3, + U+8eb5-8eb6, U+8eba-8ebb, U+8ebe, U+8ec0-8ec1, U+8ec3-8ec8, U+8ecb, U+8ecf, U+8ed1, U+8ed4, U+8edb-8edc, U+8ee3, U+8ee8, U+8eeb, U+8eed-8eee, + U+8ef0-8ef1, U+8ef7, U+8ef9-8efc, U+8efe, U+8f00, U+8f02, U+8f05, U+8f07-8f08, U+8f0a, U+8f0f-8f10, U+8f12-8f13, U+8f15-8f19, U+8f1b-8f1c, + U+8f1e-8f21, U+8f23, U+8f25-8f28, U+8f2b-8f2f, U+8f33-8f37, U+8f39-8f3b, U+8f3e, U+8f40-8f43, U+8f45-8f47, U+8f49-8f4a, U+8f4c-8f4f, U+8f51; } /* [15] */ @font-face { @@ -139,8 +300,21 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.15.woff2) format('woff2'); - unicode-range: U+8b2d, U+8b30, U+8b37, U+8b3c, U+8b3e, U+8b41-8b46, U+8b48-8b49, U+8b4c-8b4f, U+8b51-8b54, U+8b56, U+8b59, U+8b5b, U+8b5e-8b5f, U+8b63, U+8b69, U+8b6b-8b6d, U+8b6f, U+8b71, U+8b74, U+8b76, U+8b78-8b79, U+8b7c-8b81, U+8b84-8b85, U+8b8a-8b8f, U+8b92-8b96, U+8b99-8b9a, U+8b9c-8ba0, U+8c38-8c3a, U+8c3d-8c3f, U+8c41, U+8c45, U+8c47-8c49, U+8c4b-8c4c, U+8c4e-8c51, U+8c53-8c55, U+8c57-8c59, U+8c5b, U+8c5d, U+8c62-8c64, U+8c66, U+8c68-8c69, U+8c6b-8c6d, U+8c73, U+8c75-8c76, U+8c78, U+8c7a-8c7c, U+8c7e, U+8c82, U+8c85-8c87, U+8c89-8c8b, U+8c8d-8c8e, U+8c90, U+8c92-8c94, U+8c98-8c99, U+8c9b-8c9c, U+8c9f, U+8ca4, U+8cad-8cae, U+8cb2-8cb3, U+8cb6, U+8cb9-8cba, U+8cbd, U+8cc1-8cc2, U+8cc4-8cc6, U+8cc8-8cc9, U+8ccb, U+8ccd-8ccf, U+8cd2, U+8cd5-8cd6, U+8cd9-8cda, U+8cdd, U+8ce1, U+8ce3-8ce4, U+8ce6, U+8ce8, U+8cec, U+8cef-8cf2, U+8cf4-8cf5, U+8cf7-8cf8, U+8cfa-8cfb, U+8cfd-8cff, U+8d01, U+8d03-8d04, U+8d07, U+8d09-8d0b, U+8d0d-8d10, U+8d12-8d14, U+8d16-8d17, U+8d1b-8d1d, U+8d65, U+8d67, U+8d69, U+8d6b-8d6e, U+8d71, U+8d73, U+8d76, U+8d7f, U+8d81-8d82, U+8d84, U+8d88, U+8d8d, U+8d90-8d91, U+8d95, U+8d99, U+8d9e-8da0, U+8da6, U+8da8, U+8dab-8dac, U+8daf, U+8db2, U+8db5, U+8db7, U+8db9-8dbc, U+8dbe; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.15.woff2) format('woff2'); + unicode-range: + U+8b2d, U+8b30, U+8b37, U+8b3c, U+8b3e, U+8b41-8b46, U+8b48-8b49, U+8b4c-8b4f, U+8b51-8b54, U+8b56, U+8b59, U+8b5b, U+8b5e-8b5f, U+8b63, U+8b69, + U+8b6b-8b6d, U+8b6f, U+8b71, U+8b74, U+8b76, U+8b78-8b79, U+8b7c-8b81, U+8b84-8b85, U+8b8a-8b8f, U+8b92-8b96, U+8b99-8b9a, U+8b9c-8ba0, + U+8c38-8c3a, U+8c3d-8c3f, U+8c41, U+8c45, U+8c47-8c49, U+8c4b-8c4c, U+8c4e-8c51, U+8c53-8c55, U+8c57-8c59, U+8c5b, U+8c5d, U+8c62-8c64, U+8c66, + U+8c68-8c69, U+8c6b-8c6d, U+8c73, U+8c75-8c76, U+8c78, U+8c7a-8c7c, U+8c7e, U+8c82, U+8c85-8c87, U+8c89-8c8b, U+8c8d-8c8e, U+8c90, U+8c92-8c94, + U+8c98-8c99, U+8c9b-8c9c, U+8c9f, U+8ca4, U+8cad-8cae, U+8cb2-8cb3, U+8cb6, U+8cb9-8cba, U+8cbd, U+8cc1-8cc2, U+8cc4-8cc6, U+8cc8-8cc9, U+8ccb, + U+8ccd-8ccf, U+8cd2, U+8cd5-8cd6, U+8cd9-8cda, U+8cdd, U+8ce1, U+8ce3-8ce4, U+8ce6, U+8ce8, U+8cec, U+8cef-8cf2, U+8cf4-8cf5, U+8cf7-8cf8, + U+8cfa-8cfb, U+8cfd-8cff, U+8d01, U+8d03-8d04, U+8d07, U+8d09-8d0b, U+8d0d-8d10, U+8d12-8d14, U+8d16-8d17, U+8d1b-8d1d, U+8d65, U+8d67, U+8d69, + U+8d6b-8d6e, U+8d71, U+8d73, U+8d76, U+8d7f, U+8d81-8d82, U+8d84, U+8d88, U+8d8d, U+8d90-8d91, U+8d95, U+8d99, U+8d9e-8da0, U+8da6, U+8da8, + U+8dab-8dac, U+8daf, U+8db2, U+8db5, U+8db7, U+8db9-8dbc, U+8dbe; } /* [16] */ @font-face { @@ -148,8 +322,21 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.16.woff2) format('woff2'); - unicode-range: U+8973-8975, U+8977, U+897a-897e, U+8980, U+8983, U+8988-898a, U+898d, U+8990, U+8993-8995, U+8998, U+899b-899c, U+899f-89a1, U+89a5-89a6, U+89a9, U+89ac, U+89af-89b0, U+89b2, U+89b4-89b7, U+89ba, U+89bc-89bd, U+89bf-89c1, U+89d4-89d8, U+89da, U+89dc-89dd, U+89e5, U+89e7, U+89e9, U+89eb, U+89ed, U+89f1, U+89f3-89f4, U+89f6, U+89f8-89f9, U+89fd, U+89ff, U+8a01, U+8a04-8a05, U+8a07, U+8a0c, U+8a0f-8a12, U+8a14-8a16, U+8a1b, U+8a1d-8a1e, U+8a20-8a22, U+8a24-8a26, U+8a2b-8a2c, U+8a2f, U+8a35-8a37, U+8a3b, U+8a3d-8a3e, U+8a40-8a41, U+8a43, U+8a45-8a49, U+8a4d-8a4e, U+8a51-8a54, U+8a56-8a58, U+8a5b-8a5d, U+8a61-8a62, U+8a65, U+8a67, U+8a6c-8a6d, U+8a75-8a77, U+8a79-8a7c, U+8a7e-8a80, U+8a82-8a86, U+8a8b, U+8a8f-8a92, U+8a96-8a97, U+8a99-8a9a, U+8a9f, U+8aa1, U+8aa3, U+8aa5-8aaa, U+8aae-8aaf, U+8ab3, U+8ab6-8ab7, U+8abb-8abc, U+8abe, U+8ac2-8ac4, U+8ac6, U+8ac8-8aca, U+8acc-8acd, U+8ad0-8ad1, U+8ad3-8ad5, U+8ad7, U+8ada-8ae2, U+8ae4, U+8ae7, U+8aeb-8aec, U+8aee, U+8af0-8af1, U+8af3-8af7, U+8afa, U+8afc, U+8aff, U+8b01-8b02, U+8b04-8b07, U+8b0a-8b0d, U+8b0f-8b11, U+8b14, U+8b16, U+8b1a, U+8b1c, U+8b1e-8b20, U+8b26, U+8b28, U+8b2b-8b2c; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.16.woff2) format('woff2'); + unicode-range: + U+8973-8975, U+8977, U+897a-897e, U+8980, U+8983, U+8988-898a, U+898d, U+8990, U+8993-8995, U+8998, U+899b-899c, U+899f-89a1, U+89a5-89a6, U+89a9, + U+89ac, U+89af-89b0, U+89b2, U+89b4-89b7, U+89ba, U+89bc-89bd, U+89bf-89c1, U+89d4-89d8, U+89da, U+89dc-89dd, U+89e5, U+89e7, U+89e9, U+89eb, + U+89ed, U+89f1, U+89f3-89f4, U+89f6, U+89f8-89f9, U+89fd, U+89ff, U+8a01, U+8a04-8a05, U+8a07, U+8a0c, U+8a0f-8a12, U+8a14-8a16, U+8a1b, + U+8a1d-8a1e, U+8a20-8a22, U+8a24-8a26, U+8a2b-8a2c, U+8a2f, U+8a35-8a37, U+8a3b, U+8a3d-8a3e, U+8a40-8a41, U+8a43, U+8a45-8a49, U+8a4d-8a4e, + U+8a51-8a54, U+8a56-8a58, U+8a5b-8a5d, U+8a61-8a62, U+8a65, U+8a67, U+8a6c-8a6d, U+8a75-8a77, U+8a79-8a7c, U+8a7e-8a80, U+8a82-8a86, U+8a8b, + U+8a8f-8a92, U+8a96-8a97, U+8a99-8a9a, U+8a9f, U+8aa1, U+8aa3, U+8aa5-8aaa, U+8aae-8aaf, U+8ab3, U+8ab6-8ab7, U+8abb-8abc, U+8abe, U+8ac2-8ac4, + U+8ac6, U+8ac8-8aca, U+8acc-8acd, U+8ad0-8ad1, U+8ad3-8ad5, U+8ad7, U+8ada-8ae2, U+8ae4, U+8ae7, U+8aeb-8aec, U+8aee, U+8af0-8af1, U+8af3-8af7, + U+8afa, U+8afc, U+8aff, U+8b01-8b02, U+8b04-8b07, U+8b0a-8b0d, U+8b0f-8b11, U+8b14, U+8b16, U+8b1a, U+8b1c, U+8b1e-8b20, U+8b26, U+8b28, + U+8b2b-8b2c; } /* [17] */ @font-face { @@ -157,8 +344,20 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.17.woff2) format('woff2'); - unicode-range: U+87e2-87e6, U+87ea-87ed, U+87ef, U+87f1, U+87f3, U+87f5-87f8, U+87fa-87fb, U+87fe-87ff, U+8801, U+8803, U+8805-8807, U+8809-880b, U+880d-8816, U+8818-881c, U+881e-881f, U+8821-8822, U+8827-8828, U+882d-882e, U+8830-8832, U+8835-8836, U+8839-883c, U+8841-8845, U+8848-884b, U+884d-884e, U+8851-8852, U+8855-8856, U+8858-885a, U+885c, U+885e-8860, U+8862, U+8864, U+8869, U+886b, U+886e-886f, U+8871-8872, U+8875, U+8877, U+8879, U+887b, U+887d-887e, U+8880-8882, U+8888, U+888d, U+8892, U+8897-889c, U+889e-88a0, U+88a2, U+88a4, U+88a8, U+88aa, U+88ae, U+88b0-88b1, U+88b5, U+88b7, U+88ba, U+88bc-88c0, U+88c3-88c4, U+88c6, U+88ca-88ce, U+88d1-88d4, U+88d8-88d9, U+88db, U+88dd-88e1, U+88e7-88e8, U+88ef-88f2, U+88f4-88f5, U+88f7, U+88f9, U+88fc, U+8901-8902, U+8904, U+8906, U+890a, U+890c-890f, U+8913, U+8915-8916, U+8918-891a, U+891c-891e, U+8920, U+8925-8928, U+892a-892b, U+8930-8932, U+8935-893b, U+893e, U+8940-8946, U+8949, U+894c-894d, U+894f, U+8952, U+8956-8957, U+895a-895c, U+895e, U+8960-8964, U+8966, U+896a-896b, U+896d-8970; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.17.woff2) format('woff2'); + unicode-range: + U+87e2-87e6, U+87ea-87ed, U+87ef, U+87f1, U+87f3, U+87f5-87f8, U+87fa-87fb, U+87fe-87ff, U+8801, U+8803, U+8805-8807, U+8809-880b, U+880d-8816, + U+8818-881c, U+881e-881f, U+8821-8822, U+8827-8828, U+882d-882e, U+8830-8832, U+8835-8836, U+8839-883c, U+8841-8845, U+8848-884b, U+884d-884e, + U+8851-8852, U+8855-8856, U+8858-885a, U+885c, U+885e-8860, U+8862, U+8864, U+8869, U+886b, U+886e-886f, U+8871-8872, U+8875, U+8877, U+8879, + U+887b, U+887d-887e, U+8880-8882, U+8888, U+888d, U+8892, U+8897-889c, U+889e-88a0, U+88a2, U+88a4, U+88a8, U+88aa, U+88ae, U+88b0-88b1, U+88b5, + U+88b7, U+88ba, U+88bc-88c0, U+88c3-88c4, U+88c6, U+88ca-88ce, U+88d1-88d4, U+88d8-88d9, U+88db, U+88dd-88e1, U+88e7-88e8, U+88ef-88f2, + U+88f4-88f5, U+88f7, U+88f9, U+88fc, U+8901-8902, U+8904, U+8906, U+890a, U+890c-890f, U+8913, U+8915-8916, U+8918-891a, U+891c-891e, U+8920, + U+8925-8928, U+892a-892b, U+8930-8932, U+8935-893b, U+893e, U+8940-8946, U+8949, U+894c-894d, U+894f, U+8952, U+8956-8957, U+895a-895c, U+895e, + U+8960-8964, U+8966, U+896a-896b, U+896d-8970; } /* [18] */ @font-face { @@ -166,8 +365,20 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.18.woff2) format('woff2'); - unicode-range: U+8655-8659, U+865b, U+865d-8664, U+8667, U+8669, U+866c, U+866f, U+8671, U+8675-8677, U+867a-867b, U+867d, U+8687-8689, U+868b-868d, U+8691, U+8693, U+8695-8696, U+8698, U+869a, U+869c-869d, U+86a1, U+86a3-86a4, U+86a6-86ab, U+86ad, U+86af-86b1, U+86b3-86b9, U+86bf-86c1, U+86c3-86c6, U+86c9, U+86cb, U+86ce, U+86d1-86d2, U+86d4-86d5, U+86d7, U+86da, U+86dc, U+86de-86e0, U+86e3-86e7, U+86e9, U+86ec-86ed, U+86ef, U+86f8-86fe, U+8700, U+8703-870b, U+870d-8714, U+8719-871a, U+871e-871f, U+8721-8723, U+8725, U+8728-8729, U+872e-872f, U+8731-8732, U+8734, U+8737, U+8739-8740, U+8743, U+8745, U+8749, U+874b-874e, U+8751, U+8753, U+8755, U+8757-8759, U+875d, U+875f-8761, U+8763-8766, U+8768, U+876a, U+876e-876f, U+8771-8772, U+8774, U+8778, U+877b-877c, U+877f, U+8782-8789, U+878b-878c, U+878e, U+8790, U+8793, U+8795, U+8797-8799, U+879e-87a0, U+87a2-87a3, U+87a7, U+87ab-87af, U+87b1, U+87b3, U+87b5, U+87bb, U+87bd-87c1, U+87c4, U+87c6-87cb, U+87ce, U+87d0, U+87d2, U+87d5-87d6, U+87d9-87da, U+87dc, U+87df-87e0; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.18.woff2) format('woff2'); + unicode-range: + U+8655-8659, U+865b, U+865d-8664, U+8667, U+8669, U+866c, U+866f, U+8671, U+8675-8677, U+867a-867b, U+867d, U+8687-8689, U+868b-868d, U+8691, + U+8693, U+8695-8696, U+8698, U+869a, U+869c-869d, U+86a1, U+86a3-86a4, U+86a6-86ab, U+86ad, U+86af-86b1, U+86b3-86b9, U+86bf-86c1, U+86c3-86c6, + U+86c9, U+86cb, U+86ce, U+86d1-86d2, U+86d4-86d5, U+86d7, U+86da, U+86dc, U+86de-86e0, U+86e3-86e7, U+86e9, U+86ec-86ed, U+86ef, U+86f8-86fe, + U+8700, U+8703-870b, U+870d-8714, U+8719-871a, U+871e-871f, U+8721-8723, U+8725, U+8728-8729, U+872e-872f, U+8731-8732, U+8734, U+8737, + U+8739-8740, U+8743, U+8745, U+8749, U+874b-874e, U+8751, U+8753, U+8755, U+8757-8759, U+875d, U+875f-8761, U+8763-8766, U+8768, U+876a, + U+876e-876f, U+8771-8772, U+8774, U+8778, U+877b-877c, U+877f, U+8782-8789, U+878b-878c, U+878e, U+8790, U+8793, U+8795, U+8797-8799, U+879e-87a0, + U+87a2-87a3, U+87a7, U+87ab-87af, U+87b1, U+87b3, U+87b5, U+87bb, U+87bd-87c1, U+87c4, U+87c6-87cb, U+87ce, U+87d0, U+87d2, U+87d5-87d6, + U+87d9-87da, U+87dc, U+87df-87e0; } /* [19] */ @font-face { @@ -175,8 +386,20 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.19.woff2) format('woff2'); - unicode-range: U+84b4, U+84b9-84bb, U+84bd-84c2, U+84c6-84ca, U+84cc-84d1, U+84d3, U+84d6, U+84d9-84da, U+84dc, U+84e7, U+84ea, U+84ec, U+84ef-84f2, U+84f4, U+84f7, U+84fa-84fd, U+84ff-8500, U+8502-8503, U+8506-8507, U+850c, U+850e, U+8510, U+8514-8515, U+8517-8518, U+851a-851c, U+851e-851f, U+8521-8525, U+8527, U+852a-852c, U+852f, U+8532-8534, U+8536, U+853e-8541, U+8543, U+8546, U+8548, U+854a-854b, U+854f-8553, U+8555-855a, U+855c-8564, U+8569-856b, U+856d, U+856f, U+8577, U+8579-857b, U+857d-8581, U+8585-8586, U+8588-858c, U+858f-8591, U+8593, U+8597-8598, U+859b-859d, U+859f-85a0, U+85a2, U+85a4-85a5, U+85a7-85a8, U+85ad-85b0, U+85b4, U+85b6-85ba, U+85bc-85bf, U+85c1-85c2, U+85c7, U+85c9-85cb, U+85ce-85d0, U+85d5, U+85d8-85da, U+85dc, U+85df-85e1, U+85e5-85e6, U+85e8, U+85ed, U+85f3-85f4, U+85f6-85f7, U+85f9-85fa, U+85fc, U+85fe-8600, U+8602, U+8604-8606, U+860a-860b, U+860d-860e, U+8610-8613, U+8616-861b, U+861e, U+8621-8622, U+8624, U+8627, U+8629, U+862f-8630, U+8636, U+8638-863a, U+863c-863d, U+863f-8642, U+8646, U+864d, U+8652-8654; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.19.woff2) format('woff2'); + unicode-range: + U+84b4, U+84b9-84bb, U+84bd-84c2, U+84c6-84ca, U+84cc-84d1, U+84d3, U+84d6, U+84d9-84da, U+84dc, U+84e7, U+84ea, U+84ec, U+84ef-84f2, U+84f4, + U+84f7, U+84fa-84fd, U+84ff-8500, U+8502-8503, U+8506-8507, U+850c, U+850e, U+8510, U+8514-8515, U+8517-8518, U+851a-851c, U+851e-851f, + U+8521-8525, U+8527, U+852a-852c, U+852f, U+8532-8534, U+8536, U+853e-8541, U+8543, U+8546, U+8548, U+854a-854b, U+854f-8553, U+8555-855a, + U+855c-8564, U+8569-856b, U+856d, U+856f, U+8577, U+8579-857b, U+857d-8581, U+8585-8586, U+8588-858c, U+858f-8591, U+8593, U+8597-8598, + U+859b-859d, U+859f-85a0, U+85a2, U+85a4-85a5, U+85a7-85a8, U+85ad-85b0, U+85b4, U+85b6-85ba, U+85bc-85bf, U+85c1-85c2, U+85c7, U+85c9-85cb, + U+85ce-85d0, U+85d5, U+85d8-85da, U+85dc, U+85df-85e1, U+85e5-85e6, U+85e8, U+85ed, U+85f3-85f4, U+85f6-85f7, U+85f9-85fa, U+85fc, U+85fe-8600, + U+8602, U+8604-8606, U+860a-860b, U+860d-860e, U+8610-8613, U+8616-861b, U+861e, U+8621-8622, U+8624, U+8627, U+8629, U+862f-8630, U+8636, + U+8638-863a, U+863c-863d, U+863f-8642, U+8646, U+864d, U+8652-8654; } /* [20] */ @font-face { @@ -184,8 +407,20 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.20.woff2) format('woff2'); - unicode-range: U+82e8, U+82ea, U+82ed, U+82ef, U+82f3-82f4, U+82f6-82f7, U+82f9, U+82fb, U+82fd-82fe, U+8300-8301, U+8303, U+8306-8308, U+830a-830c, U+8316-8318, U+831b, U+831d-831f, U+8321-8323, U+832b-8335, U+8337, U+833a, U+833c-833d, U+8340, U+8342-8347, U+834a, U+834d-8351, U+8353-8357, U+835a, U+8362-8363, U+8370, U+8373, U+8375, U+8378, U+837c-837d, U+837f-8380, U+8382, U+8384-8387, U+838a, U+838d-838e, U+8392-8396, U+8398-83a0, U+83a2, U+83a6-83ad, U+83b1, U+83b5, U+83bd-83c1, U+83c7, U+83c9, U+83ce-83d1, U+83d4, U+83d6, U+83d8, U+83dd, U+83df-83e1, U+83e5, U+83e8, U+83ea-83eb, U+83f0, U+83f2, U+83f4, U+83f6-83f9, U+83fb-83fd, U+8401, U+8403-8404, U+8406-8407, U+840a-840b, U+840d, U+840f, U+8411, U+8413, U+8415, U+8417, U+8419, U+8420, U+8422, U+842a, U+842f, U+8431, U+8435, U+8438-8439, U+843c, U+8445-8448, U+844a, U+844d-844f, U+8451-8452, U+8456, U+8458-845a, U+845c, U+845f-8462, U+8464-8467, U+8469-846b, U+846d-8470, U+8473-8474, U+8476-847a, U+847c-847d, U+8481-8482, U+8484-8485, U+848b, U+8490, U+8492-8493, U+8495, U+8497, U+849c, U+849e-849f, U+84a1, U+84a6, U+84a8-84aa, U+84ad, U+84af, U+84b1; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.20.woff2) format('woff2'); + unicode-range: + U+82e8, U+82ea, U+82ed, U+82ef, U+82f3-82f4, U+82f6-82f7, U+82f9, U+82fb, U+82fd-82fe, U+8300-8301, U+8303, U+8306-8308, U+830a-830c, U+8316-8318, + U+831b, U+831d-831f, U+8321-8323, U+832b-8335, U+8337, U+833a, U+833c-833d, U+8340, U+8342-8347, U+834a, U+834d-8351, U+8353-8357, U+835a, + U+8362-8363, U+8370, U+8373, U+8375, U+8378, U+837c-837d, U+837f-8380, U+8382, U+8384-8387, U+838a, U+838d-838e, U+8392-8396, U+8398-83a0, U+83a2, + U+83a6-83ad, U+83b1, U+83b5, U+83bd-83c1, U+83c7, U+83c9, U+83ce-83d1, U+83d4, U+83d6, U+83d8, U+83dd, U+83df-83e1, U+83e5, U+83e8, U+83ea-83eb, + U+83f0, U+83f2, U+83f4, U+83f6-83f9, U+83fb-83fd, U+8401, U+8403-8404, U+8406-8407, U+840a-840b, U+840d, U+840f, U+8411, U+8413, U+8415, U+8417, + U+8419, U+8420, U+8422, U+842a, U+842f, U+8431, U+8435, U+8438-8439, U+843c, U+8445-8448, U+844a, U+844d-844f, U+8451-8452, U+8456, U+8458-845a, + U+845c, U+845f-8462, U+8464-8467, U+8469-846b, U+846d-8470, U+8473-8474, U+8476-847a, U+847c-847d, U+8481-8482, U+8484-8485, U+848b, U+8490, + U+8492-8493, U+8495, U+8497, U+849c, U+849e-849f, U+84a1, U+84a6, U+84a8-84aa, U+84ad, U+84af, U+84b1; } /* [21] */ @font-face { @@ -193,8 +428,20 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.21.woff2) format('woff2'); - unicode-range: U+814a, U+814c, U+8151-8153, U+8157, U+815f-8161, U+8165-8169, U+816d-816f, U+8171, U+8173-8174, U+8177, U+8180-8186, U+8188, U+818a-818b, U+818e, U+8190, U+8193, U+8195-8196, U+8198, U+819b, U+819e, U+81a0, U+81a2, U+81a4, U+81a9, U+81ae, U+81b0, U+81b2, U+81b4-81b5, U+81b8, U+81ba-81bb, U+81bd-81be, U+81c0-81c3, U+81c5-81c6, U+81c8-81cb, U+81cd-81cf, U+81d1, U+81d5-81db, U+81dd-81e1, U+81e4-81e5, U+81e7, U+81eb-81ec, U+81ef-81f2, U+81f5-81f6, U+81f8-81fb, U+81fd-8205, U+8209-820b, U+820d, U+820f, U+8212-8214, U+8216, U+8219-821d, U+8221-8222, U+8228-8229, U+822b, U+822e, U+8232-8235, U+8237-8238, U+823a, U+823c, U+8240, U+8243-8246, U+8249, U+824b, U+824e-824f, U+8251, U+8256-825a, U+825c-825d, U+825f-8260, U+8262-8264, U+8267-8268, U+826a-826b, U+826d-826e, U+8271, U+8274, U+8277, U+8279, U+827b, U+827d-8281, U+8283-8284, U+8287, U+8289-828a, U+828d-828e, U+8291-8294, U+8296, U+8298-829b, U+829f-82a1, U+82a3-82a4, U+82a7-82ac, U+82ae, U+82b0, U+82b2, U+82b4, U+82b7, U+82ba-82bc, U+82be-82bf, U+82c5-82c6, U+82d0, U+82d2-82d3, U+82d5, U+82d9-82da, U+82dc, U+82de-82e4, U+82e7; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.21.woff2) format('woff2'); + unicode-range: + U+814a, U+814c, U+8151-8153, U+8157, U+815f-8161, U+8165-8169, U+816d-816f, U+8171, U+8173-8174, U+8177, U+8180-8186, U+8188, U+818a-818b, U+818e, + U+8190, U+8193, U+8195-8196, U+8198, U+819b, U+819e, U+81a0, U+81a2, U+81a4, U+81a9, U+81ae, U+81b0, U+81b2, U+81b4-81b5, U+81b8, U+81ba-81bb, + U+81bd-81be, U+81c0-81c3, U+81c5-81c6, U+81c8-81cb, U+81cd-81cf, U+81d1, U+81d5-81db, U+81dd-81e1, U+81e4-81e5, U+81e7, U+81eb-81ec, U+81ef-81f2, + U+81f5-81f6, U+81f8-81fb, U+81fd-8205, U+8209-820b, U+820d, U+820f, U+8212-8214, U+8216, U+8219-821d, U+8221-8222, U+8228-8229, U+822b, U+822e, + U+8232-8235, U+8237-8238, U+823a, U+823c, U+8240, U+8243-8246, U+8249, U+824b, U+824e-824f, U+8251, U+8256-825a, U+825c-825d, U+825f-8260, + U+8262-8264, U+8267-8268, U+826a-826b, U+826d-826e, U+8271, U+8274, U+8277, U+8279, U+827b, U+827d-8281, U+8283-8284, U+8287, U+8289-828a, + U+828d-828e, U+8291-8294, U+8296, U+8298-829b, U+829f-82a1, U+82a3-82a4, U+82a7-82ac, U+82ae, U+82b0, U+82b2, U+82b4, U+82b7, U+82ba-82bc, + U+82be-82bf, U+82c5-82c6, U+82d0, U+82d2-82d3, U+82d5, U+82d9-82da, U+82dc, U+82de-82e4, U+82e7; } /* [22] */ @font-face { @@ -202,8 +449,21 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.22.woff2) format('woff2'); - unicode-range: U+7f77-7f79, U+7f7d-7f80, U+7f82-7f83, U+7f86-7f88, U+7f8b-7f8d, U+7f8f-7f91, U+7f94, U+7f96-7f97, U+7f9a, U+7f9c-7f9d, U+7fa1-7fa3, U+7fa6, U+7faa, U+7fad-7faf, U+7fb2, U+7fb4, U+7fb6, U+7fb8-7fb9, U+7fbc, U+7fbf-7fc0, U+7fc3, U+7fc5-7fc6, U+7fc8, U+7fca, U+7fce-7fcf, U+7fd5, U+7fdb, U+7fdf, U+7fe1, U+7fe3, U+7fe5-7fe6, U+7fe8-7fe9, U+7feb-7fec, U+7fee-7ff0, U+7ff2-7ff3, U+7ff9-7ffa, U+7ffd-7fff, U+8002, U+8004, U+8006-8008, U+800a-800f, U+8011-8014, U+8016, U+8018-8019, U+801c-8021, U+8024, U+8026, U+8028, U+802c, U+802e, U+8030, U+8034-8035, U+8037, U+8039-8040, U+8043-8044, U+8046, U+804a, U+8052, U+8058, U+805a, U+805f-8060, U+8062, U+8064, U+8066, U+8068, U+806d, U+806f-8073, U+8075-8076, U+8079, U+807b, U+807d-8081, U+8084-8088, U+808b, U+808e, U+8093, U+8099-809a, U+809c, U+809e, U+80a4, U+80a6-80a7, U+80ab-80ad, U+80b1, U+80b8-80b9, U+80c4-80c5, U+80c8, U+80ca, U+80cd, U+80cf, U+80d2, U+80d4-80db, U+80dd, U+80e0, U+80e4-80e6, U+80ed-80f3, U+80f5-80f7, U+80f9-80fc, U+80fe, U+8101, U+8103, U+8109, U+810b, U+810d, U+8116-8118, U+811b-811c, U+811e, U+8120, U+8123-8124, U+8127, U+8129, U+812b-812c, U+812f-8130, U+8135, U+8139-813a, U+813c-813e, U+8141, U+8145-8147; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.22.woff2) format('woff2'); + unicode-range: + U+7f77-7f79, U+7f7d-7f80, U+7f82-7f83, U+7f86-7f88, U+7f8b-7f8d, U+7f8f-7f91, U+7f94, U+7f96-7f97, U+7f9a, U+7f9c-7f9d, U+7fa1-7fa3, U+7fa6, + U+7faa, U+7fad-7faf, U+7fb2, U+7fb4, U+7fb6, U+7fb8-7fb9, U+7fbc, U+7fbf-7fc0, U+7fc3, U+7fc5-7fc6, U+7fc8, U+7fca, U+7fce-7fcf, U+7fd5, U+7fdb, + U+7fdf, U+7fe1, U+7fe3, U+7fe5-7fe6, U+7fe8-7fe9, U+7feb-7fec, U+7fee-7ff0, U+7ff2-7ff3, U+7ff9-7ffa, U+7ffd-7fff, U+8002, U+8004, U+8006-8008, + U+800a-800f, U+8011-8014, U+8016, U+8018-8019, U+801c-8021, U+8024, U+8026, U+8028, U+802c, U+802e, U+8030, U+8034-8035, U+8037, U+8039-8040, + U+8043-8044, U+8046, U+804a, U+8052, U+8058, U+805a, U+805f-8060, U+8062, U+8064, U+8066, U+8068, U+806d, U+806f-8073, U+8075-8076, U+8079, + U+807b, U+807d-8081, U+8084-8088, U+808b, U+808e, U+8093, U+8099-809a, U+809c, U+809e, U+80a4, U+80a6-80a7, U+80ab-80ad, U+80b1, U+80b8-80b9, + U+80c4-80c5, U+80c8, U+80ca, U+80cd, U+80cf, U+80d2, U+80d4-80db, U+80dd, U+80e0, U+80e4-80e6, U+80ed-80f3, U+80f5-80f7, U+80f9-80fc, U+80fe, + U+8101, U+8103, U+8109, U+810b, U+810d, U+8116-8118, U+811b-811c, U+811e, U+8120, U+8123-8124, U+8127, U+8129, U+812b-812c, U+812f-8130, U+8135, + U+8139-813a, U+813c-813e, U+8141, U+8145-8147; } /* [23] */ @font-face { @@ -211,8 +471,19 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.23.woff2) format('woff2'); - unicode-range: U+7d57, U+7d59-7d5d, U+7d63, U+7d65, U+7d67, U+7d6a, U+7d6e, U+7d70, U+7d72-7d73, U+7d78, U+7d7a-7d7b, U+7d7d, U+7d7f, U+7d81-7d83, U+7d85-7d86, U+7d88-7d89, U+7d8b-7d8d, U+7d8f, U+7d91, U+7d93, U+7d96-7d97, U+7d9b-7da0, U+7da2-7da3, U+7da6-7da7, U+7daa-7dac, U+7dae-7db0, U+7db3, U+7db5-7db9, U+7dbd, U+7dc0, U+7dc2-7dc7, U+7dcc-7dce, U+7dd0, U+7dd5-7dd9, U+7ddc-7dde, U+7de1-7de6, U+7dea-7ded, U+7df1-7df2, U+7df5-7df6, U+7df9-7dfa, U+7e00, U+7e05, U+7e08-7e0b, U+7e10-7e12, U+7e15, U+7e17, U+7e1c-7e1d, U+7e1f-7e23, U+7e27-7e28, U+7e2c-7e2d, U+7e2f, U+7e31-7e33, U+7e35-7e37, U+7e39-7e3b, U+7e3d, U+7e3f, U+7e43-7e48, U+7e4e, U+7e50, U+7e52, U+7e56, U+7e58-7e5a, U+7e5d-7e5f, U+7e61-7e62, U+7e65-7e67, U+7e69-7e6b, U+7e6d-7e6f, U+7e73, U+7e75, U+7e78-7e79, U+7e7b-7e7f, U+7e81-7e83, U+7e86-7e8a, U+7e8c-7e8e, U+7e90-7e96, U+7e98, U+7e9a-7e9f, U+7f38, U+7f3a-7f3f, U+7f43-7f45, U+7f47, U+7f4c-7f50, U+7f52-7f55, U+7f58, U+7f5b-7f5d, U+7f5f, U+7f61, U+7f63-7f69, U+7f6b, U+7f6d, U+7f71; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.23.woff2) format('woff2'); + unicode-range: + U+7d57, U+7d59-7d5d, U+7d63, U+7d65, U+7d67, U+7d6a, U+7d6e, U+7d70, U+7d72-7d73, U+7d78, U+7d7a-7d7b, U+7d7d, U+7d7f, U+7d81-7d83, U+7d85-7d86, + U+7d88-7d89, U+7d8b-7d8d, U+7d8f, U+7d91, U+7d93, U+7d96-7d97, U+7d9b-7da0, U+7da2-7da3, U+7da6-7da7, U+7daa-7dac, U+7dae-7db0, U+7db3, + U+7db5-7db9, U+7dbd, U+7dc0, U+7dc2-7dc7, U+7dcc-7dce, U+7dd0, U+7dd5-7dd9, U+7ddc-7dde, U+7de1-7de6, U+7dea-7ded, U+7df1-7df2, U+7df5-7df6, + U+7df9-7dfa, U+7e00, U+7e05, U+7e08-7e0b, U+7e10-7e12, U+7e15, U+7e17, U+7e1c-7e1d, U+7e1f-7e23, U+7e27-7e28, U+7e2c-7e2d, U+7e2f, U+7e31-7e33, + U+7e35-7e37, U+7e39-7e3b, U+7e3d, U+7e3f, U+7e43-7e48, U+7e4e, U+7e50, U+7e52, U+7e56, U+7e58-7e5a, U+7e5d-7e5f, U+7e61-7e62, U+7e65-7e67, + U+7e69-7e6b, U+7e6d-7e6f, U+7e73, U+7e75, U+7e78-7e79, U+7e7b-7e7f, U+7e81-7e83, U+7e86-7e8a, U+7e8c-7e8e, U+7e90-7e96, U+7e98, U+7e9a-7e9f, + U+7f38, U+7f3a-7f3f, U+7f43-7f45, U+7f47, U+7f4c-7f50, U+7f52-7f55, U+7f58, U+7f5b-7f5d, U+7f5f, U+7f61, U+7f63-7f69, U+7f6b, U+7f6d, U+7f71; } /* [24] */ @font-face { @@ -220,8 +491,20 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.24.woff2) format('woff2'); - unicode-range: U+7bc8, U+7bca-7bcc, U+7bcf, U+7bd4, U+7bd6-7bd7, U+7bd9-7bdb, U+7bdd, U+7be5-7be6, U+7be8-7bea, U+7bf0, U+7bf2-7bfa, U+7bfc, U+7bfe, U+7c00-7c04, U+7c06-7c07, U+7c09, U+7c0b-7c0f, U+7c11-7c14, U+7c17, U+7c19, U+7c1b, U+7c1e-7c20, U+7c23, U+7c25-7c28, U+7c2a-7c2c, U+7c2f, U+7c31, U+7c33-7c34, U+7c36-7c3a, U+7c3d-7c3e, U+7c40, U+7c42-7c43, U+7c45-7c46, U+7c4a, U+7c4c, U+7c4f-7c5f, U+7c61, U+7c63-7c65, U+7c67, U+7c69, U+7c6c-7c70, U+7c72, U+7c75, U+7c79, U+7c7b-7c7e, U+7c81-7c83, U+7c86-7c87, U+7c8d, U+7c8f-7c90, U+7c94, U+7c9e, U+7ca0-7ca2, U+7ca4-7ca6, U+7ca8, U+7cab, U+7cad-7cae, U+7cb0-7cb3, U+7cb6-7cb7, U+7cb9-7cbd, U+7cbf-7cc0, U+7cc2, U+7cc4-7cc5, U+7cc7-7cca, U+7ccd-7ccf, U+7cd2-7cd5, U+7cd7-7cda, U+7cdc-7cdd, U+7cdf-7ce0, U+7ce2, U+7ce6, U+7ce9, U+7ceb, U+7cef, U+7cf2, U+7cf4-7cf6, U+7cf9-7cfa, U+7cfe, U+7d02-7d03, U+7d06-7d0a, U+7d0f, U+7d11-7d13, U+7d15-7d16, U+7d1c-7d1e, U+7d23, U+7d26, U+7d2a, U+7d2c-7d2e, U+7d31-7d32, U+7d35, U+7d3c-7d41, U+7d43, U+7d45, U+7d47-7d48, U+7d4b, U+7d4d-7d4f, U+7d51, U+7d53, U+7d55-7d56; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.24.woff2) format('woff2'); + unicode-range: + U+7bc8, U+7bca-7bcc, U+7bcf, U+7bd4, U+7bd6-7bd7, U+7bd9-7bdb, U+7bdd, U+7be5-7be6, U+7be8-7bea, U+7bf0, U+7bf2-7bfa, U+7bfc, U+7bfe, U+7c00-7c04, + U+7c06-7c07, U+7c09, U+7c0b-7c0f, U+7c11-7c14, U+7c17, U+7c19, U+7c1b, U+7c1e-7c20, U+7c23, U+7c25-7c28, U+7c2a-7c2c, U+7c2f, U+7c31, U+7c33-7c34, + U+7c36-7c3a, U+7c3d-7c3e, U+7c40, U+7c42-7c43, U+7c45-7c46, U+7c4a, U+7c4c, U+7c4f-7c5f, U+7c61, U+7c63-7c65, U+7c67, U+7c69, U+7c6c-7c70, U+7c72, + U+7c75, U+7c79, U+7c7b-7c7e, U+7c81-7c83, U+7c86-7c87, U+7c8d, U+7c8f-7c90, U+7c94, U+7c9e, U+7ca0-7ca2, U+7ca4-7ca6, U+7ca8, U+7cab, U+7cad-7cae, + U+7cb0-7cb3, U+7cb6-7cb7, U+7cb9-7cbd, U+7cbf-7cc0, U+7cc2, U+7cc4-7cc5, U+7cc7-7cca, U+7ccd-7ccf, U+7cd2-7cd5, U+7cd7-7cda, U+7cdc-7cdd, + U+7cdf-7ce0, U+7ce2, U+7ce6, U+7ce9, U+7ceb, U+7cef, U+7cf2, U+7cf4-7cf6, U+7cf9-7cfa, U+7cfe, U+7d02-7d03, U+7d06-7d0a, U+7d0f, U+7d11-7d13, + U+7d15-7d16, U+7d1c-7d1e, U+7d23, U+7d26, U+7d2a, U+7d2c-7d2e, U+7d31-7d32, U+7d35, U+7d3c-7d41, U+7d43, U+7d45, U+7d47-7d48, U+7d4b, U+7d4d-7d4f, + U+7d51, U+7d53, U+7d55-7d56; } /* [25] */ @font-face { @@ -229,8 +512,20 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.25.woff2) format('woff2'); - unicode-range: U+7a17-7a19, U+7a1b, U+7a1e-7a21, U+7a27, U+7a2b, U+7a2d, U+7a2f-7a31, U+7a34-7a35, U+7a37-7a3b, U+7a3e, U+7a43-7a49, U+7a4c, U+7a4e, U+7a50, U+7a55-7a57, U+7a59, U+7a5c-7a5d, U+7a5f-7a63, U+7a65, U+7a67, U+7a69-7a6a, U+7a6d, U+7a70, U+7a75, U+7a78-7a79, U+7a7d-7a7e, U+7a80, U+7a82, U+7a84-7a86, U+7a88, U+7a8a-7a8b, U+7a90-7a91, U+7a94-7a98, U+7a9e, U+7aa0, U+7aa3, U+7aa9, U+7aac, U+7ab0, U+7ab3, U+7ab5-7ab6, U+7ab9-7abf, U+7ac3, U+7ac5-7aca, U+7acc-7acf, U+7ad1-7ad3, U+7ad5, U+7ada-7adb, U+7add, U+7adf, U+7ae1-7ae2, U+7ae6-7aed, U+7af0-7af1, U+7af4, U+7af8, U+7afa-7afb, U+7afd-7afe, U+7b02, U+7b04, U+7b06-7b08, U+7b0a-7b0b, U+7b0f, U+7b12, U+7b14, U+7b18-7b19, U+7b1e-7b1f, U+7b23, U+7b25, U+7b27-7b2b, U+7b2d-7b31, U+7b33-7b36, U+7b3b, U+7b3d, U+7b3f-7b41, U+7b45, U+7b47, U+7b4c-7b50, U+7b53, U+7b55, U+7b5d, U+7b60, U+7b64-7b66, U+7b69-7b6a, U+7b6c-7b75, U+7b77, U+7b79-7b7a, U+7b7f, U+7b84, U+7b86, U+7b89, U+7b8d-7b92, U+7b96, U+7b98-7ba0, U+7ba5, U+7bac-7bad, U+7baf-7bb0, U+7bb2, U+7bb4-7bb6, U+7bba-7bbd, U+7bc1-7bc2, U+7bc5-7bc6; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.25.woff2) format('woff2'); + unicode-range: + U+7a17-7a19, U+7a1b, U+7a1e-7a21, U+7a27, U+7a2b, U+7a2d, U+7a2f-7a31, U+7a34-7a35, U+7a37-7a3b, U+7a3e, U+7a43-7a49, U+7a4c, U+7a4e, U+7a50, + U+7a55-7a57, U+7a59, U+7a5c-7a5d, U+7a5f-7a63, U+7a65, U+7a67, U+7a69-7a6a, U+7a6d, U+7a70, U+7a75, U+7a78-7a79, U+7a7d-7a7e, U+7a80, U+7a82, + U+7a84-7a86, U+7a88, U+7a8a-7a8b, U+7a90-7a91, U+7a94-7a98, U+7a9e, U+7aa0, U+7aa3, U+7aa9, U+7aac, U+7ab0, U+7ab3, U+7ab5-7ab6, U+7ab9-7abf, + U+7ac3, U+7ac5-7aca, U+7acc-7acf, U+7ad1-7ad3, U+7ad5, U+7ada-7adb, U+7add, U+7adf, U+7ae1-7ae2, U+7ae6-7aed, U+7af0-7af1, U+7af4, U+7af8, + U+7afa-7afb, U+7afd-7afe, U+7b02, U+7b04, U+7b06-7b08, U+7b0a-7b0b, U+7b0f, U+7b12, U+7b14, U+7b18-7b19, U+7b1e-7b1f, U+7b23, U+7b25, U+7b27-7b2b, + U+7b2d-7b31, U+7b33-7b36, U+7b3b, U+7b3d, U+7b3f-7b41, U+7b45, U+7b47, U+7b4c-7b50, U+7b53, U+7b55, U+7b5d, U+7b60, U+7b64-7b66, U+7b69-7b6a, + U+7b6c-7b75, U+7b77, U+7b79-7b7a, U+7b7f, U+7b84, U+7b86, U+7b89, U+7b8d-7b92, U+7b96, U+7b98-7ba0, U+7ba5, U+7bac-7bad, U+7baf-7bb0, U+7bb2, + U+7bb4-7bb6, U+7bba-7bbd, U+7bc1-7bc2, U+7bc5-7bc6; } /* [26] */ @font-face { @@ -238,8 +533,20 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.26.woff2) format('woff2'); - unicode-range: U+7851-7852, U+785c, U+785e, U+7860-7861, U+7863-7864, U+7868, U+786a, U+786e-786f, U+7872, U+7874, U+787a, U+787c, U+787e, U+7886-7887, U+788a, U+788c-788f, U+7893-7895, U+7898, U+789a, U+789d-789f, U+78a1, U+78a3-78a4, U+78a8-78aa, U+78ac-78ad, U+78af-78b3, U+78b5, U+78bb-78bf, U+78c5-78cc, U+78ce, U+78d1-78d6, U+78da-78db, U+78df-78e1, U+78e4, U+78e6-78e7, U+78ea, U+78ec, U+78f2-78f4, U+78f6-78f7, U+78f9-78fb, U+78fd-7901, U+7906-7907, U+790c, U+7910-7912, U+7919-791c, U+791e-7920, U+7925-792e, U+7930-7931, U+7934-7935, U+793b, U+793d, U+793f, U+7941-7942, U+7944-7946, U+794a-794b, U+794f, U+7951, U+7954-7955, U+7957-7958, U+795a-795c, U+795f-7960, U+7962, U+7967, U+7969, U+796b, U+7972, U+7977, U+7979-797c, U+797e-7980, U+798a-798e, U+7991, U+7993-7996, U+7998, U+799b-799d, U+79a1, U+79a6-79ab, U+79ae-79b1, U+79b3-79b4, U+79b8-79bb, U+79bd-79be, U+79c2, U+79c4, U+79c7-79ca, U+79cc-79cd, U+79cf, U+79d4-79d6, U+79da, U+79dd-79e3, U+79e5, U+79e7, U+79ea-79ed, U+79f1, U+79f8, U+79fc, U+7a02-7a03, U+7a05, U+7a07-7a0a, U+7a0c-7a0d, U+7a11, U+7a15; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.26.woff2) format('woff2'); + unicode-range: + U+7851-7852, U+785c, U+785e, U+7860-7861, U+7863-7864, U+7868, U+786a, U+786e-786f, U+7872, U+7874, U+787a, U+787c, U+787e, U+7886-7887, U+788a, + U+788c-788f, U+7893-7895, U+7898, U+789a, U+789d-789f, U+78a1, U+78a3-78a4, U+78a8-78aa, U+78ac-78ad, U+78af-78b3, U+78b5, U+78bb-78bf, + U+78c5-78cc, U+78ce, U+78d1-78d6, U+78da-78db, U+78df-78e1, U+78e4, U+78e6-78e7, U+78ea, U+78ec, U+78f2-78f4, U+78f6-78f7, U+78f9-78fb, + U+78fd-7901, U+7906-7907, U+790c, U+7910-7912, U+7919-791c, U+791e-7920, U+7925-792e, U+7930-7931, U+7934-7935, U+793b, U+793d, U+793f, + U+7941-7942, U+7944-7946, U+794a-794b, U+794f, U+7951, U+7954-7955, U+7957-7958, U+795a-795c, U+795f-7960, U+7962, U+7967, U+7969, U+796b, U+7972, + U+7977, U+7979-797c, U+797e-7980, U+798a-798e, U+7991, U+7993-7996, U+7998, U+799b-799d, U+79a1, U+79a6-79ab, U+79ae-79b1, U+79b3-79b4, + U+79b8-79bb, U+79bd-79be, U+79c2, U+79c4, U+79c7-79ca, U+79cc-79cd, U+79cf, U+79d4-79d6, U+79da, U+79dd-79e3, U+79e5, U+79e7, U+79ea-79ed, U+79f1, + U+79f8, U+79fc, U+7a02-7a03, U+7a05, U+7a07-7a0a, U+7a0c-7a0d, U+7a11, U+7a15; } /* [27] */ @font-face { @@ -247,8 +554,20 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.27.woff2) format('woff2'); - unicode-range: U+768c-768e, U+7690, U+7693, U+7695-7696, U+7699-76a8, U+76aa, U+76ad, U+76af-76b0, U+76b4, U+76b6-76ba, U+76bd, U+76c1-76c3, U+76c5, U+76c8-76c9, U+76cb-76ce, U+76d2, U+76d4, U+76d6, U+76d9, U+76dc, U+76de, U+76e0-76e1, U+76e5-76e8, U+76ea-76ec, U+76f0-76f1, U+76f6, U+76f9, U+76fb-76fc, U+7700, U+7704, U+7706-7708, U+770a, U+770e, U+7712, U+7714-7715, U+7717, U+7719-771c, U+7722, U+7724-7726, U+7728, U+772d-772f, U+7734-7739, U+773d-773e, U+7742, U+7745-7747, U+774a, U+774d-774f, U+7752, U+7756-7758, U+775a-775c, U+775e-7760, U+7762, U+7764-7765, U+7767, U+776a-776c, U+7770, U+7772-7774, U+7779-777a, U+777c-7780, U+7784, U+778b-778e, U+7794-7796, U+779a, U+779e-77a0, U+77a2, U+77a4-77a5, U+77a7, U+77a9-77aa, U+77ae-77b1, U+77b5-77b7, U+77b9, U+77bb-77bf, U+77c3, U+77c7, U+77c9, U+77cd, U+77d1-77d2, U+77d5, U+77d7, U+77d9-77da, U+77dc, U+77de-77e0, U+77e3-77e4, U+77e6-77e7, U+77e9-77ea, U+77ec, U+77ee, U+77f0-77f1, U+77f4, U+77f8, U+77fb-77fc, U+7805-7806, U+7809, U+780c-780e, U+7811-7812, U+7819, U+781d, U+7820-7823, U+7826-7827, U+782c-782e, U+7830, U+7835, U+7837, U+783a, U+783f, U+7843-7845, U+7847-7848, U+784c, U+784e-784f; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.27.woff2) format('woff2'); + unicode-range: + U+768c-768e, U+7690, U+7693, U+7695-7696, U+7699-76a8, U+76aa, U+76ad, U+76af-76b0, U+76b4, U+76b6-76ba, U+76bd, U+76c1-76c3, U+76c5, U+76c8-76c9, + U+76cb-76ce, U+76d2, U+76d4, U+76d6, U+76d9, U+76dc, U+76de, U+76e0-76e1, U+76e5-76e8, U+76ea-76ec, U+76f0-76f1, U+76f6, U+76f9, U+76fb-76fc, + U+7700, U+7704, U+7706-7708, U+770a, U+770e, U+7712, U+7714-7715, U+7717, U+7719-771c, U+7722, U+7724-7726, U+7728, U+772d-772f, U+7734-7739, + U+773d-773e, U+7742, U+7745-7747, U+774a, U+774d-774f, U+7752, U+7756-7758, U+775a-775c, U+775e-7760, U+7762, U+7764-7765, U+7767, U+776a-776c, + U+7770, U+7772-7774, U+7779-777a, U+777c-7780, U+7784, U+778b-778e, U+7794-7796, U+779a, U+779e-77a0, U+77a2, U+77a4-77a5, U+77a7, U+77a9-77aa, + U+77ae-77b1, U+77b5-77b7, U+77b9, U+77bb-77bf, U+77c3, U+77c7, U+77c9, U+77cd, U+77d1-77d2, U+77d5, U+77d7, U+77d9-77da, U+77dc, U+77de-77e0, + U+77e3-77e4, U+77e6-77e7, U+77e9-77ea, U+77ec, U+77ee, U+77f0-77f1, U+77f4, U+77f8, U+77fb-77fc, U+7805-7806, U+7809, U+780c-780e, U+7811-7812, + U+7819, U+781d, U+7820-7823, U+7826-7827, U+782c-782e, U+7830, U+7835, U+7837, U+783a, U+783f, U+7843-7845, U+7847-7848, U+784c, U+784e-784f; } /* [28] */ @font-face { @@ -256,8 +575,19 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.28.woff2) format('woff2'); - unicode-range: U+7511-7513, U+7515-7517, U+751c, U+751e, U+7520-7522, U+7524, U+7526-7527, U+7529-752c, U+752f, U+7536, U+7538-7539, U+753c-7540, U+7543-7544, U+7546-754b, U+754d-7550, U+7552, U+7557, U+755a-755b, U+755d-755f, U+7561-7562, U+7564, U+7566-7567, U+7569, U+756b-756d, U+756f, U+7571-7572, U+7574-757e, U+7581-7582, U+7585-7587, U+7589-758c, U+758f-7590, U+7592-7595, U+7599-759a, U+759c-759d, U+75a2-75a5, U+75b0-75b1, U+75b3-75b5, U+75b7-75b8, U+75ba, U+75bd, U+75bf-75c4, U+75c6, U+75ca, U+75cc-75cf, U+75d3-75d4, U+75d7-75d8, U+75dc-75e1, U+75e3-75e4, U+75e7, U+75ec, U+75ee-75f3, U+75f9, U+75fc, U+75fe-7604, U+7607-760c, U+760f, U+7612-7613, U+7615-7616, U+7618-7619, U+761b-7629, U+762d, U+7630, U+7632-7635, U+7638-763c, U+7640-7641, U+7643-764b, U+764e, U+7655, U+7658-7659, U+765c, U+765f, U+7661-7662, U+7664-7665, U+7667-766a, U+766c-7672, U+7674, U+7676, U+7678, U+7680-7683, U+7685, U+7688, U+768b; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.28.woff2) format('woff2'); + unicode-range: + U+7511-7513, U+7515-7517, U+751c, U+751e, U+7520-7522, U+7524, U+7526-7527, U+7529-752c, U+752f, U+7536, U+7538-7539, U+753c-7540, U+7543-7544, + U+7546-754b, U+754d-7550, U+7552, U+7557, U+755a-755b, U+755d-755f, U+7561-7562, U+7564, U+7566-7567, U+7569, U+756b-756d, U+756f, U+7571-7572, + U+7574-757e, U+7581-7582, U+7585-7587, U+7589-758c, U+758f-7590, U+7592-7595, U+7599-759a, U+759c-759d, U+75a2-75a5, U+75b0-75b1, U+75b3-75b5, + U+75b7-75b8, U+75ba, U+75bd, U+75bf-75c4, U+75c6, U+75ca, U+75cc-75cf, U+75d3-75d4, U+75d7-75d8, U+75dc-75e1, U+75e3-75e4, U+75e7, U+75ec, + U+75ee-75f3, U+75f9, U+75fc, U+75fe-7604, U+7607-760c, U+760f, U+7612-7613, U+7615-7616, U+7618-7619, U+761b-7629, U+762d, U+7630, U+7632-7635, + U+7638-763c, U+7640-7641, U+7643-764b, U+764e, U+7655, U+7658-7659, U+765c, U+765f, U+7661-7662, U+7664-7665, U+7667-766a, U+766c-7672, U+7674, + U+7676, U+7678, U+7680-7683, U+7685, U+7688, U+768b; } /* [29] */ @font-face { @@ -265,8 +595,20 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.29.woff2) format('woff2'); - unicode-range: U+736c, U+736e-7371, U+7375, U+7377-737c, U+7380-7381, U+7383, U+7385-7386, U+738a, U+738e, U+7390, U+7393-7398, U+739c, U+739e-73a0, U+73a2, U+73a5-73a6, U+73a8, U+73aa-73ab, U+73ad, U+73b3, U+73b5, U+73b7, U+73b9-73bd, U+73bf, U+73c5-73c6, U+73c9-73cc, U+73ce-73cf, U+73d2-73d3, U+73d6, U+73d9, U+73dd-73de, U+73e1, U+73e3-73e7, U+73e9-73ea, U+73ee, U+73f1, U+73f4-73f5, U+73f7-73fb, U+73fd, U+73ff-7401, U+7404-7405, U+7407, U+740a, U+7411, U+7413, U+741a-741b, U+7421, U+7424, U+7426, U+7428-7431, U+7433, U+7439-743a, U+743f-7441, U+7443-7444, U+7446-7447, U+744b, U+744d, U+7451-7453, U+7455, U+7457, U+7459-745a, U+745c-745d, U+745f, U+7462-7464, U+7466-746b, U+746d-7473, U+7476, U+747e, U+7480-7481, U+7485-7489, U+748b, U+748f-7492, U+7497-749a, U+749c, U+749e-74a3, U+74a5-74a6, U+74a8-74ab, U+74ae-74af, U+74b1-74b2, U+74b5, U+74b9-74bb, U+74bd, U+74bf, U+74c8-74ca, U+74cc, U+74cf-74d0, U+74d3-74d4, U+74d6, U+74d8, U+74da-74db, U+74de-74e0, U+74e3-74e4, U+74e7-74eb, U+74ee-74f2, U+74f4, U+74f7-74f8, U+74fa-74fc, U+74ff, U+7501, U+7503-7506, U+750c-750e; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.29.woff2) format('woff2'); + unicode-range: + U+736c, U+736e-7371, U+7375, U+7377-737c, U+7380-7381, U+7383, U+7385-7386, U+738a, U+738e, U+7390, U+7393-7398, U+739c, U+739e-73a0, U+73a2, + U+73a5-73a6, U+73a8, U+73aa-73ab, U+73ad, U+73b3, U+73b5, U+73b7, U+73b9-73bd, U+73bf, U+73c5-73c6, U+73c9-73cc, U+73ce-73cf, U+73d2-73d3, U+73d6, + U+73d9, U+73dd-73de, U+73e1, U+73e3-73e7, U+73e9-73ea, U+73ee, U+73f1, U+73f4-73f5, U+73f7-73fb, U+73fd, U+73ff-7401, U+7404-7405, U+7407, U+740a, + U+7411, U+7413, U+741a-741b, U+7421, U+7424, U+7426, U+7428-7431, U+7433, U+7439-743a, U+743f-7441, U+7443-7444, U+7446-7447, U+744b, U+744d, + U+7451-7453, U+7455, U+7457, U+7459-745a, U+745c-745d, U+745f, U+7462-7464, U+7466-746b, U+746d-7473, U+7476, U+747e, U+7480-7481, U+7485-7489, + U+748b, U+748f-7492, U+7497-749a, U+749c, U+749e-74a3, U+74a5-74a6, U+74a8-74ab, U+74ae-74af, U+74b1-74b2, U+74b5, U+74b9-74bb, U+74bd, U+74bf, + U+74c8-74ca, U+74cc, U+74cf-74d0, U+74d3-74d4, U+74d6, U+74d8, U+74da-74db, U+74de-74e0, U+74e3-74e4, U+74e7-74eb, U+74ee-74f2, U+74f4, + U+74f7-74f8, U+74fa-74fc, U+74ff, U+7501, U+7503-7506, U+750c-750e; } /* [30] */ @font-face { @@ -274,8 +616,21 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.30.woff2) format('woff2'); - unicode-range: U+7166, U+7168, U+716c, U+7179, U+7180, U+7184-7185, U+7187-7188, U+718c, U+718f, U+7192, U+7194-7196, U+7199-719b, U+71a0, U+71a2, U+71a8, U+71ac, U+71ae-71b0, U+71b2-71b3, U+71b9-71ba, U+71be-71c1, U+71c4, U+71c9, U+71cb-71cc, U+71ce, U+71d0, U+71d2-71d4, U+71d6-71d7, U+71d9-71da, U+71dc, U+71df-71e0, U+71e6-71e7, U+71ec-71ee, U+71f4-71f5, U+71f8-71f9, U+71fc, U+71fe-7200, U+7207-7209, U+720d, U+7210, U+7213, U+7215, U+7217, U+721a, U+721d, U+721f, U+7224, U+7228, U+722b, U+722d, U+722f-7230, U+7232, U+7234, U+7238-7239, U+723b-723c, U+723e-7243, U+7245-7246, U+724b, U+724e-7250, U+7252-7253, U+7255-7258, U+725a, U+725c, U+725e, U+7260, U+7263, U+7268, U+726b, U+726e-726f, U+7271, U+7274, U+7277-7278, U+727b-727c, U+727e-7282, U+7284, U+7287, U+7289, U+728d-728e, U+7292-7293, U+7296, U+729b, U+72a2, U+72a7-72a8, U+72ad-72ae, U+72b0-72b2, U+72b4, U+72b9, U+72be, U+72c0-72c1, U+72c3-72c4, U+72c6-72c7, U+72c9, U+72cc, U+72ce, U+72d2, U+72d5-72d6, U+72d8, U+72df-72e2, U+72e5, U+72f3-72f4, U+72f7, U+72f9-72fb, U+72fd-72fe, U+7302, U+7304-7305, U+7307, U+730a-730b, U+730d, U+7312-7313, U+7316-7319, U+731c-731e, U+7322, U+7324, U+7327-7329, U+732c, U+732f, U+7331-7337, U+7339-733b, U+733d-733e, U+7343, U+734d-7350, U+7352, U+7356-7358, U+735d-7360, U+7366-736b; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.30.woff2) format('woff2'); + unicode-range: + U+7166, U+7168, U+716c, U+7179, U+7180, U+7184-7185, U+7187-7188, U+718c, U+718f, U+7192, U+7194-7196, U+7199-719b, U+71a0, U+71a2, U+71a8, + U+71ac, U+71ae-71b0, U+71b2-71b3, U+71b9-71ba, U+71be-71c1, U+71c4, U+71c9, U+71cb-71cc, U+71ce, U+71d0, U+71d2-71d4, U+71d6-71d7, U+71d9-71da, + U+71dc, U+71df-71e0, U+71e6-71e7, U+71ec-71ee, U+71f4-71f5, U+71f8-71f9, U+71fc, U+71fe-7200, U+7207-7209, U+720d, U+7210, U+7213, U+7215, U+7217, + U+721a, U+721d, U+721f, U+7224, U+7228, U+722b, U+722d, U+722f-7230, U+7232, U+7234, U+7238-7239, U+723b-723c, U+723e-7243, U+7245-7246, U+724b, + U+724e-7250, U+7252-7253, U+7255-7258, U+725a, U+725c, U+725e, U+7260, U+7263, U+7268, U+726b, U+726e-726f, U+7271, U+7274, U+7277-7278, + U+727b-727c, U+727e-7282, U+7284, U+7287, U+7289, U+728d-728e, U+7292-7293, U+7296, U+729b, U+72a2, U+72a7-72a8, U+72ad-72ae, U+72b0-72b2, U+72b4, + U+72b9, U+72be, U+72c0-72c1, U+72c3-72c4, U+72c6-72c7, U+72c9, U+72cc, U+72ce, U+72d2, U+72d5-72d6, U+72d8, U+72df-72e2, U+72e5, U+72f3-72f4, + U+72f7, U+72f9-72fb, U+72fd-72fe, U+7302, U+7304-7305, U+7307, U+730a-730b, U+730d, U+7312-7313, U+7316-7319, U+731c-731e, U+7322, U+7324, + U+7327-7329, U+732c, U+732f, U+7331-7337, U+7339-733b, U+733d-733e, U+7343, U+734d-7350, U+7352, U+7356-7358, U+735d-7360, U+7366-736b; } /* [31] */ @font-face { @@ -283,8 +638,21 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.31.woff2) format('woff2'); - unicode-range: U+6f58-6f5b, U+6f5d-6f5e, U+6f60-6f62, U+6f66, U+6f68, U+6f6c-6f6d, U+6f6f, U+6f74, U+6f78, U+6f7a, U+6f7c-6f7e, U+6f80, U+6f82-6f83, U+6f86-6f88, U+6f8b-6f8e, U+6f90-6f94, U+6f96-6f98, U+6f9a, U+6f9d, U+6f9f-6fa1, U+6fa3, U+6fa5-6fa8, U+6fae-6fb1, U+6fb3, U+6fb5-6fb7, U+6fb9, U+6fbc, U+6fbe, U+6fc2, U+6fc5-6fca, U+6fd4-6fd5, U+6fd8, U+6fda-6fdb, U+6fde-6fe0, U+6fe4, U+6fe8-6fe9, U+6feb-6fec, U+6fee, U+6ff0, U+6ff3, U+6ff5-6ff6, U+6ff9-6ffa, U+6ffc-6ffe, U+7000-7001, U+7005-7007, U+7009-700b, U+700d, U+700f, U+7011, U+7015, U+7017-7018, U+701a-701b, U+701d-7020, U+7023, U+7026, U+7028, U+702f-7030, U+7032, U+7034, U+7037, U+7039-703a, U+703c, U+703e, U+7043-7044, U+7047-704c, U+704e, U+7051, U+7054-7055, U+705d-705e, U+7064-7065, U+7069, U+706c, U+706e, U+7075-7076, U+707e, U+7081, U+7085-7086, U+7094-7098, U+709b, U+709f, U+70a4, U+70ab-70ac, U+70ae-70b1, U+70b3-70b4, U+70b7, U+70bb, U+70ca-70cb, U+70d1, U+70d3-70d6, U+70d8-70d9, U+70dc-70dd, U+70df, U+70e4, U+70ec, U+70f1, U+70fa, U+70fd, U+7103-7108, U+710b-710c, U+710f, U+7114, U+7119, U+711c, U+711e, U+7120, U+712b, U+712d-7131, U+7138, U+7141, U+7145-7147, U+7149-714b, U+7150-7153, U+7155-7157, U+715a, U+715c, U+715e, U+7160, U+7162, U+7164-7165; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.31.woff2) format('woff2'); + unicode-range: + U+6f58-6f5b, U+6f5d-6f5e, U+6f60-6f62, U+6f66, U+6f68, U+6f6c-6f6d, U+6f6f, U+6f74, U+6f78, U+6f7a, U+6f7c-6f7e, U+6f80, U+6f82-6f83, U+6f86-6f88, + U+6f8b-6f8e, U+6f90-6f94, U+6f96-6f98, U+6f9a, U+6f9d, U+6f9f-6fa1, U+6fa3, U+6fa5-6fa8, U+6fae-6fb1, U+6fb3, U+6fb5-6fb7, U+6fb9, U+6fbc, U+6fbe, + U+6fc2, U+6fc5-6fca, U+6fd4-6fd5, U+6fd8, U+6fda-6fdb, U+6fde-6fe0, U+6fe4, U+6fe8-6fe9, U+6feb-6fec, U+6fee, U+6ff0, U+6ff3, U+6ff5-6ff6, + U+6ff9-6ffa, U+6ffc-6ffe, U+7000-7001, U+7005-7007, U+7009-700b, U+700d, U+700f, U+7011, U+7015, U+7017-7018, U+701a-701b, U+701d-7020, U+7023, + U+7026, U+7028, U+702f-7030, U+7032, U+7034, U+7037, U+7039-703a, U+703c, U+703e, U+7043-7044, U+7047-704c, U+704e, U+7051, U+7054-7055, + U+705d-705e, U+7064-7065, U+7069, U+706c, U+706e, U+7075-7076, U+707e, U+7081, U+7085-7086, U+7094-7098, U+709b, U+709f, U+70a4, U+70ab-70ac, + U+70ae-70b1, U+70b3-70b4, U+70b7, U+70bb, U+70ca-70cb, U+70d1, U+70d3-70d6, U+70d8-70d9, U+70dc-70dd, U+70df, U+70e4, U+70ec, U+70f1, U+70fa, + U+70fd, U+7103-7108, U+710b-710c, U+710f, U+7114, U+7119, U+711c, U+711e, U+7120, U+712b, U+712d-7131, U+7138, U+7141, U+7145-7147, U+7149-714b, + U+7150-7153, U+7155-7157, U+715a, U+715c, U+715e, U+7160, U+7162, U+7164-7165; } /* [32] */ @font-face { @@ -292,8 +660,20 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.32.woff2) format('woff2'); - unicode-range: U+6d7c, U+6d80-6d82, U+6d85, U+6d87, U+6d89-6d8a, U+6d8c-6d8e, U+6d91-6d98, U+6d9c, U+6daa-6dac, U+6dae, U+6db4-6db5, U+6db7-6db9, U+6dbd, U+6dbf, U+6dc2, U+6dc4-6dc8, U+6dca, U+6dcc, U+6dce-6dd0, U+6dd2, U+6dd5-6dd6, U+6dd8-6ddb, U+6ddd-6de0, U+6de2, U+6de4-6de6, U+6de8-6dea, U+6dec, U+6dee-6df0, U+6df2, U+6df4, U+6df6, U+6df8-6dfa, U+6dfc, U+6e00, U+6e04, U+6e0a, U+6e17, U+6e19, U+6e1d-6e20, U+6e22-6e25, U+6e27, U+6e2b, U+6e2d-6e2e, U+6e32, U+6e34, U+6e36, U+6e38-6e3c, U+6e42-6e45, U+6e48-6e49, U+6e4b-6e4f, U+6e51-6e54, U+6e57, U+6e5b-6e5f, U+6e62-6e63, U+6e68, U+6e6b, U+6e6e, U+6e72-6e73, U+6e76, U+6e7b, U+6e7d, U+6e82, U+6e89, U+6e8c-6e8d, U+6e8f, U+6e93, U+6e98-6e99, U+6e9f-6ea0, U+6ea5, U+6ea7, U+6eaa-6eab, U+6ead-6eaf, U+6eb1-6eb4, U+6eb7, U+6ebb-6ebd, U+6ebf-6ec4, U+6ec7-6eca, U+6ecc-6ecf, U+6ed3-6ed5, U+6ed9-6edb, U+6ee6, U+6eeb-6eef, U+6ef7-6ef9, U+6efb, U+6efd-6eff, U+6f04, U+6f08-6f0a, U+6f0c-6f0d, U+6f10-6f11, U+6f13, U+6f15-6f16, U+6f18, U+6f1a-6f1b, U+6f25-6f26, U+6f29-6f2a, U+6f2d, U+6f2f-6f33, U+6f35-6f36, U+6f38, U+6f3b-6f3c, U+6f3e-6f3f, U+6f41, U+6f45, U+6f4f, U+6f51-6f53, U+6f57; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.32.woff2) format('woff2'); + unicode-range: + U+6d7c, U+6d80-6d82, U+6d85, U+6d87, U+6d89-6d8a, U+6d8c-6d8e, U+6d91-6d98, U+6d9c, U+6daa-6dac, U+6dae, U+6db4-6db5, U+6db7-6db9, U+6dbd, U+6dbf, + U+6dc2, U+6dc4-6dc8, U+6dca, U+6dcc, U+6dce-6dd0, U+6dd2, U+6dd5-6dd6, U+6dd8-6ddb, U+6ddd-6de0, U+6de2, U+6de4-6de6, U+6de8-6dea, U+6dec, + U+6dee-6df0, U+6df2, U+6df4, U+6df6, U+6df8-6dfa, U+6dfc, U+6e00, U+6e04, U+6e0a, U+6e17, U+6e19, U+6e1d-6e20, U+6e22-6e25, U+6e27, U+6e2b, + U+6e2d-6e2e, U+6e32, U+6e34, U+6e36, U+6e38-6e3c, U+6e42-6e45, U+6e48-6e49, U+6e4b-6e4f, U+6e51-6e54, U+6e57, U+6e5b-6e5f, U+6e62-6e63, U+6e68, + U+6e6b, U+6e6e, U+6e72-6e73, U+6e76, U+6e7b, U+6e7d, U+6e82, U+6e89, U+6e8c-6e8d, U+6e8f, U+6e93, U+6e98-6e99, U+6e9f-6ea0, U+6ea5, U+6ea7, + U+6eaa-6eab, U+6ead-6eaf, U+6eb1-6eb4, U+6eb7, U+6ebb-6ebd, U+6ebf-6ec4, U+6ec7-6eca, U+6ecc-6ecf, U+6ed3-6ed5, U+6ed9-6edb, U+6ee6, U+6eeb-6eef, + U+6ef7-6ef9, U+6efb, U+6efd-6eff, U+6f04, U+6f08-6f0a, U+6f0c-6f0d, U+6f10-6f11, U+6f13, U+6f15-6f16, U+6f18, U+6f1a-6f1b, U+6f25-6f26, + U+6f29-6f2a, U+6f2d, U+6f2f-6f33, U+6f35-6f36, U+6f38, U+6f3b-6f3c, U+6f3e-6f3f, U+6f41, U+6f45, U+6f4f, U+6f51-6f53, U+6f57; } /* [33] */ @font-face { @@ -301,8 +681,21 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.33.woff2) format('woff2'); - unicode-range: U+6b85, U+6b89, U+6b8d, U+6b95, U+6b97-6b98, U+6b9b, U+6b9e-6ba0, U+6ba2-6ba4, U+6ba8-6bb3, U+6bb7-6bb9, U+6bbc-6bbe, U+6bc0, U+6bc3-6bc4, U+6bc6-6bc9, U+6bcb-6bcc, U+6bcf, U+6bd3, U+6bd6-6bd8, U+6bda, U+6bdf, U+6be1, U+6be3, U+6be6-6be7, U+6beb-6bec, U+6bee, U+6bf1, U+6bf3, U+6bf7, U+6bf9, U+6bff, U+6c02, U+6c04-6c05, U+6c08-6c0a, U+6c0d-6c0e, U+6c10, U+6c12-6c14, U+6c19, U+6c1b, U+6c1f, U+6c24, U+6c26-6c28, U+6c2c, U+6c2e, U+6c33, U+6c35-6c36, U+6c3a-6c3b, U+6c3e-6c40, U+6c4a-6c4b, U+6c4d, U+6c4f, U+6c52, U+6c54-6c55, U+6c59, U+6c5b-6c5e, U+6c62, U+6c67-6c68, U+6c6a-6c6b, U+6c6d, U+6c6f, U+6c73-6c74, U+6c76, U+6c78-6c79, U+6c7b, U+6c7e, U+6c81-6c87, U+6c89, U+6c8c-6c8d, U+6c90, U+6c92-6c95, U+6c97-6c98, U+6c9a-6c9c, U+6c9f, U+6caa-6cae, U+6cb0-6cb2, U+6cb4, U+6cba, U+6cbd-6cbe, U+6cc2, U+6cc5-6cc6, U+6ccd, U+6ccf-6cd4, U+6cd6-6cd7, U+6cd9-6cdd, U+6ce0, U+6ce7, U+6ce9-6cef, U+6cf1-6cf2, U+6cf4, U+6cfb, U+6d00-6d01, U+6d04, U+6d07, U+6d0a, U+6d0c, U+6d0e-6d0f, U+6d11, U+6d13, U+6d19-6d1a, U+6d1f, U+6d24, U+6d26-6d28, U+6d2b, U+6d2e-6d2f, U+6d31, U+6d33-6d36, U+6d38-6d39, U+6d3c-6d3d, U+6d3f, U+6d57-6d5b, U+6d5e-6d61, U+6d64-6d65, U+6d67, U+6d6c, U+6d6f-6d70, U+6d79; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.33.woff2) format('woff2'); + unicode-range: + U+6b85, U+6b89, U+6b8d, U+6b95, U+6b97-6b98, U+6b9b, U+6b9e-6ba0, U+6ba2-6ba4, U+6ba8-6bb3, U+6bb7-6bb9, U+6bbc-6bbe, U+6bc0, U+6bc3-6bc4, + U+6bc6-6bc9, U+6bcb-6bcc, U+6bcf, U+6bd3, U+6bd6-6bd8, U+6bda, U+6bdf, U+6be1, U+6be3, U+6be6-6be7, U+6beb-6bec, U+6bee, U+6bf1, U+6bf3, U+6bf7, + U+6bf9, U+6bff, U+6c02, U+6c04-6c05, U+6c08-6c0a, U+6c0d-6c0e, U+6c10, U+6c12-6c14, U+6c19, U+6c1b, U+6c1f, U+6c24, U+6c26-6c28, U+6c2c, U+6c2e, + U+6c33, U+6c35-6c36, U+6c3a-6c3b, U+6c3e-6c40, U+6c4a-6c4b, U+6c4d, U+6c4f, U+6c52, U+6c54-6c55, U+6c59, U+6c5b-6c5e, U+6c62, U+6c67-6c68, + U+6c6a-6c6b, U+6c6d, U+6c6f, U+6c73-6c74, U+6c76, U+6c78-6c79, U+6c7b, U+6c7e, U+6c81-6c87, U+6c89, U+6c8c-6c8d, U+6c90, U+6c92-6c95, U+6c97-6c98, + U+6c9a-6c9c, U+6c9f, U+6caa-6cae, U+6cb0-6cb2, U+6cb4, U+6cba, U+6cbd-6cbe, U+6cc2, U+6cc5-6cc6, U+6ccd, U+6ccf-6cd4, U+6cd6-6cd7, U+6cd9-6cdd, + U+6ce0, U+6ce7, U+6ce9-6cef, U+6cf1-6cf2, U+6cf4, U+6cfb, U+6d00-6d01, U+6d04, U+6d07, U+6d0a, U+6d0c, U+6d0e-6d0f, U+6d11, U+6d13, U+6d19-6d1a, + U+6d1f, U+6d24, U+6d26-6d28, U+6d2b, U+6d2e-6d2f, U+6d31, U+6d33-6d36, U+6d38-6d39, U+6d3c-6d3d, U+6d3f, U+6d57-6d5b, U+6d5e-6d61, U+6d64-6d65, + U+6d67, U+6d6c, U+6d6f-6d70, U+6d79; } /* [34] */ @font-face { @@ -310,8 +703,20 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.34.woff2) format('woff2'); - unicode-range: U+69dd-69de, U+69e2-69e3, U+69e5, U+69e7-69eb, U+69ed-69ef, U+69f1-69f6, U+69f9, U+69fe-6a01, U+6a03, U+6a05, U+6a0a, U+6a0c, U+6a0f, U+6a11-6a15, U+6a17, U+6a1a-6a1b, U+6a1d-6a20, U+6a22-6a24, U+6a28, U+6a2e, U+6a30, U+6a32-6a38, U+6a3b, U+6a3e-6a3f, U+6a44-6a4a, U+6a4e, U+6a50-6a52, U+6a54-6a56, U+6a5b, U+6a61-6a62, U+6a64, U+6a66-6a67, U+6a6a-6a6b, U+6a71-6a73, U+6a78, U+6a7a, U+6a7e-6a7f, U+6a81, U+6a83-6a84, U+6a86-6a87, U+6a89, U+6a8b, U+6a8d, U+6a90-6a91, U+6a94, U+6a97, U+6a9b, U+6a9d-6aa3, U+6aa5, U+6aaa-6aac, U+6aae-6ab1, U+6ab3-6ab4, U+6ab8, U+6abb, U+6abd-6abf, U+6ac1-6ac3, U+6ac6, U+6ac8-6ac9, U+6acc, U+6ad0-6ad1, U+6ad3-6ad6, U+6ada-6adf, U+6ae2, U+6ae4, U+6ae7-6ae8, U+6aea, U+6aec, U+6af0-6af3, U+6af8, U+6afa, U+6afc-6afd, U+6b02-6b03, U+6b06-6b07, U+6b09-6b0b, U+6b0f-6b12, U+6b16-6b17, U+6b1b, U+6b1d-6b1f, U+6b23-6b24, U+6b28, U+6b2b-6b2c, U+6b2f, U+6b35-6b39, U+6b3b, U+6b3d, U+6b3f, U+6b43, U+6b46-6b47, U+6b49-6b4a, U+6b4d-6b4e, U+6b50, U+6b52, U+6b54, U+6b56, U+6b58-6b59, U+6b5b, U+6b5d, U+6b5f-6b61, U+6b65, U+6b67, U+6b6b-6b6c, U+6b6e, U+6b70, U+6b72, U+6b75, U+6b77-6b7a, U+6b7d-6b84; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.34.woff2) format('woff2'); + unicode-range: + U+69dd-69de, U+69e2-69e3, U+69e5, U+69e7-69eb, U+69ed-69ef, U+69f1-69f6, U+69f9, U+69fe-6a01, U+6a03, U+6a05, U+6a0a, U+6a0c, U+6a0f, U+6a11-6a15, + U+6a17, U+6a1a-6a1b, U+6a1d-6a20, U+6a22-6a24, U+6a28, U+6a2e, U+6a30, U+6a32-6a38, U+6a3b, U+6a3e-6a3f, U+6a44-6a4a, U+6a4e, U+6a50-6a52, + U+6a54-6a56, U+6a5b, U+6a61-6a62, U+6a64, U+6a66-6a67, U+6a6a-6a6b, U+6a71-6a73, U+6a78, U+6a7a, U+6a7e-6a7f, U+6a81, U+6a83-6a84, U+6a86-6a87, + U+6a89, U+6a8b, U+6a8d, U+6a90-6a91, U+6a94, U+6a97, U+6a9b, U+6a9d-6aa3, U+6aa5, U+6aaa-6aac, U+6aae-6ab1, U+6ab3-6ab4, U+6ab8, U+6abb, + U+6abd-6abf, U+6ac1-6ac3, U+6ac6, U+6ac8-6ac9, U+6acc, U+6ad0-6ad1, U+6ad3-6ad6, U+6ada-6adf, U+6ae2, U+6ae4, U+6ae7-6ae8, U+6aea, U+6aec, + U+6af0-6af3, U+6af8, U+6afa, U+6afc-6afd, U+6b02-6b03, U+6b06-6b07, U+6b09-6b0b, U+6b0f-6b12, U+6b16-6b17, U+6b1b, U+6b1d-6b1f, U+6b23-6b24, + U+6b28, U+6b2b-6b2c, U+6b2f, U+6b35-6b39, U+6b3b, U+6b3d, U+6b3f, U+6b43, U+6b46-6b47, U+6b49-6b4a, U+6b4d-6b4e, U+6b50, U+6b52, U+6b54, U+6b56, + U+6b58-6b59, U+6b5b, U+6b5d, U+6b5f-6b61, U+6b65, U+6b67, U+6b6b-6b6c, U+6b6e, U+6b70, U+6b72, U+6b75, U+6b77-6b7a, U+6b7d-6b84; } /* [35] */ @font-face { @@ -319,8 +724,20 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.35.woff2) format('woff2'); - unicode-range: U+6855, U+6857-6859, U+685b, U+685d, U+685f, U+6863, U+6867, U+686b, U+686e-6872, U+6874-6875, U+6877, U+6879-687c, U+687e-687f, U+6882-6884, U+6886, U+6888, U+688d-6890, U+6894, U+6896, U+6898-689c, U+689f-68a3, U+68a5-68a7, U+68a9-68ab, U+68ad-68af, U+68b2-68b5, U+68b9-68bc, U+68c3, U+68c5-68c6, U+68c8-68ca, U+68cc-68cd, U+68cf-68d1, U+68d3-68d9, U+68dc-68dd, U+68e0-68e1, U+68e3-68e5, U+68e7-68e8, U+68ea-68ed, U+68ef-68f1, U+68f5-68f7, U+68f9, U+68fb-68fd, U+6900-6901, U+6903-6904, U+6906-690c, U+690f-6911, U+6913, U+6916-6917, U+6919-691b, U+6921-6923, U+6925-6926, U+6928, U+692a, U+6930-6931, U+6933-6936, U+6938-6939, U+693b, U+693d, U+6942, U+6945-6946, U+6949, U+694e, U+6954, U+6957, U+6959, U+695b-695e, U+6961-6966, U+6968-696c, U+696e-6974, U+6977-697b, U+697e-6981, U+6986, U+698d, U+6991-6992, U+6994-6996, U+6998, U+699c, U+69a0-69a1, U+69a5-69a8, U+69ab, U+69ad, U+69af-69b2, U+69b4, U+69b7-69b8, U+69ba-69bc, U+69be-69c1, U+69c3, U+69c5, U+69c7-69c8, U+69ca, U+69ce-69d1, U+69d3, U+69d6-69d7, U+69d9; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.35.woff2) format('woff2'); + unicode-range: + U+6855, U+6857-6859, U+685b, U+685d, U+685f, U+6863, U+6867, U+686b, U+686e-6872, U+6874-6875, U+6877, U+6879-687c, U+687e-687f, U+6882-6884, + U+6886, U+6888, U+688d-6890, U+6894, U+6896, U+6898-689c, U+689f-68a3, U+68a5-68a7, U+68a9-68ab, U+68ad-68af, U+68b2-68b5, U+68b9-68bc, U+68c3, + U+68c5-68c6, U+68c8-68ca, U+68cc-68cd, U+68cf-68d1, U+68d3-68d9, U+68dc-68dd, U+68e0-68e1, U+68e3-68e5, U+68e7-68e8, U+68ea-68ed, U+68ef-68f1, + U+68f5-68f7, U+68f9, U+68fb-68fd, U+6900-6901, U+6903-6904, U+6906-690c, U+690f-6911, U+6913, U+6916-6917, U+6919-691b, U+6921-6923, U+6925-6926, + U+6928, U+692a, U+6930-6931, U+6933-6936, U+6938-6939, U+693b, U+693d, U+6942, U+6945-6946, U+6949, U+694e, U+6954, U+6957, U+6959, U+695b-695e, + U+6961-6966, U+6968-696c, U+696e-6974, U+6977-697b, U+697e-6981, U+6986, U+698d, U+6991-6992, U+6994-6996, U+6998, U+699c, U+69a0-69a1, + U+69a5-69a8, U+69ab, U+69ad, U+69af-69b2, U+69b4, U+69b7-69b8, U+69ba-69bc, U+69be-69c1, U+69c3, U+69c5, U+69c7-69c8, U+69ca, U+69ce-69d1, U+69d3, + U+69d6-69d7, U+69d9; } /* [36] */ @font-face { @@ -328,8 +745,21 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.36.woff2) format('woff2'); - unicode-range: U+667e-6680, U+6683-6684, U+6688, U+668b-668e, U+6690, U+6692, U+6698-669d, U+669f-66a0, U+66a2, U+66a4, U+66ad, U+66b1-66b3, U+66b5, U+66b8-66b9, U+66bb-66bc, U+66be-66c4, U+66c6, U+66c8-66c9, U+66cc, U+66ce-66cf, U+66d4, U+66da-66db, U+66dd, U+66df-66e0, U+66e6, U+66e8-66e9, U+66eb-66ec, U+66ee, U+66f5, U+66f7, U+66fa-66fc, U+6701, U+6705, U+6707, U+670c, U+670e-6710, U+6712-6716, U+6719, U+671c, U+671e, U+6720, U+6722, U+6725-6726, U+672e, U+6733, U+6735-6738, U+673e-673f, U+6741, U+6743, U+6745-6748, U+674c-674d, U+6753-6755, U+6759, U+675d-675e, U+6760, U+6762-6764, U+6766, U+676a, U+676c, U+676e, U+6770, U+6772-6774, U+6776-6777, U+677b-677c, U+6780-6781, U+6784-6785, U+6787, U+6789, U+678b-678c, U+678e-678f, U+6791-6793, U+6796, U+6798-6799, U+679b, U+67a1, U+67a4, U+67a6, U+67a9, U+67b0-67b5, U+67b7-67b9, U+67bb-67be, U+67c0-67c3, U+67c5-67c6, U+67c8-67c9, U+67ce, U+67d2, U+67d7-67d9, U+67db-67de, U+67e1-67e2, U+67e4, U+67e6-67e7, U+67e9, U+67ec, U+67ee-67f0, U+67f2, U+67f6-67f7, U+67f9-67fa, U+67fc, U+67fe, U+6801-6802, U+6805, U+6810, U+6814, U+6818-6819, U+681d, U+681f, U+6822, U+6827-6829, U+682b-682d, U+682f-6834, U+683b, U+683e-6840, U+6844-6846, U+6849-684a, U+684c-684e, U+6852-6854; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.36.woff2) format('woff2'); + unicode-range: + U+667e-6680, U+6683-6684, U+6688, U+668b-668e, U+6690, U+6692, U+6698-669d, U+669f-66a0, U+66a2, U+66a4, U+66ad, U+66b1-66b3, U+66b5, U+66b8-66b9, + U+66bb-66bc, U+66be-66c4, U+66c6, U+66c8-66c9, U+66cc, U+66ce-66cf, U+66d4, U+66da-66db, U+66dd, U+66df-66e0, U+66e6, U+66e8-66e9, U+66eb-66ec, + U+66ee, U+66f5, U+66f7, U+66fa-66fc, U+6701, U+6705, U+6707, U+670c, U+670e-6710, U+6712-6716, U+6719, U+671c, U+671e, U+6720, U+6722, + U+6725-6726, U+672e, U+6733, U+6735-6738, U+673e-673f, U+6741, U+6743, U+6745-6748, U+674c-674d, U+6753-6755, U+6759, U+675d-675e, U+6760, + U+6762-6764, U+6766, U+676a, U+676c, U+676e, U+6770, U+6772-6774, U+6776-6777, U+677b-677c, U+6780-6781, U+6784-6785, U+6787, U+6789, U+678b-678c, + U+678e-678f, U+6791-6793, U+6796, U+6798-6799, U+679b, U+67a1, U+67a4, U+67a6, U+67a9, U+67b0-67b5, U+67b7-67b9, U+67bb-67be, U+67c0-67c3, + U+67c5-67c6, U+67c8-67c9, U+67ce, U+67d2, U+67d7-67d9, U+67db-67de, U+67e1-67e2, U+67e4, U+67e6-67e7, U+67e9, U+67ec, U+67ee-67f0, U+67f2, + U+67f6-67f7, U+67f9-67fa, U+67fc, U+67fe, U+6801-6802, U+6805, U+6810, U+6814, U+6818-6819, U+681d, U+681f, U+6822, U+6827-6829, U+682b-682d, + U+682f-6834, U+683b, U+683e-6840, U+6844-6846, U+6849-684a, U+684c-684e, U+6852-6854; } /* [37] */ @font-face { @@ -337,8 +767,20 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.37.woff2) format('woff2'); - unicode-range: U+64d2, U+64d4-64d5, U+64d7-64d8, U+64da, U+64e0-64e1, U+64e3-64e5, U+64e7, U+64e9-64ea, U+64ed, U+64ef-64f2, U+64f4-64f7, U+64fa-64fb, U+64fd-6501, U+6504-6505, U+6508-650a, U+650f, U+6513-6514, U+6516, U+6518-6519, U+651b-651f, U+6522, U+6524, U+6526, U+6529-652c, U+652e, U+6531-6532, U+6534-6538, U+653a, U+653c-653d, U+6543-6544, U+6547-6549, U+654d-654e, U+6550, U+6552, U+6554-6556, U+6558, U+655d-6560, U+6567, U+656b, U+6572, U+6578, U+657a, U+657d, U+6581-6585, U+6588, U+658a, U+658c, U+6592, U+6595, U+6598, U+659b, U+659d, U+659f-65a1, U+65a3-65a6, U+65ab, U+65ae, U+65b2-65b5, U+65b7-65b8, U+65be-65bf, U+65c1-65c4, U+65c6, U+65c8-65c9, U+65cc, U+65ce, U+65d0, U+65d2, U+65d4, U+65d6, U+65d8-65d9, U+65db, U+65df-65e1, U+65e3, U+65f0-65f2, U+65f4-65f5, U+65f9, U+65fb-65fc, U+65fe-6600, U+6603-6604, U+6608-660a, U+660d, U+6611-6612, U+6615-6616, U+661c-661e, U+6621-6624, U+6626, U+6629-662c, U+662e, U+6630-6631, U+6633-6637, U+6639-663b, U+663f-6641, U+6644-6646, U+6648-664a, U+664c, U+664e-664f, U+6651, U+6657-6665, U+6667-6668, U+666a-666d, U+6670, U+6673, U+6675, U+6677-6679, U+667b-667c; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.37.woff2) format('woff2'); + unicode-range: + U+64d2, U+64d4-64d5, U+64d7-64d8, U+64da, U+64e0-64e1, U+64e3-64e5, U+64e7, U+64e9-64ea, U+64ed, U+64ef-64f2, U+64f4-64f7, U+64fa-64fb, + U+64fd-6501, U+6504-6505, U+6508-650a, U+650f, U+6513-6514, U+6516, U+6518-6519, U+651b-651f, U+6522, U+6524, U+6526, U+6529-652c, U+652e, + U+6531-6532, U+6534-6538, U+653a, U+653c-653d, U+6543-6544, U+6547-6549, U+654d-654e, U+6550, U+6552, U+6554-6556, U+6558, U+655d-6560, U+6567, + U+656b, U+6572, U+6578, U+657a, U+657d, U+6581-6585, U+6588, U+658a, U+658c, U+6592, U+6595, U+6598, U+659b, U+659d, U+659f-65a1, U+65a3-65a6, + U+65ab, U+65ae, U+65b2-65b5, U+65b7-65b8, U+65be-65bf, U+65c1-65c4, U+65c6, U+65c8-65c9, U+65cc, U+65ce, U+65d0, U+65d2, U+65d4, U+65d6, + U+65d8-65d9, U+65db, U+65df-65e1, U+65e3, U+65f0-65f2, U+65f4-65f5, U+65f9, U+65fb-65fc, U+65fe-6600, U+6603-6604, U+6608-660a, U+660d, + U+6611-6612, U+6615-6616, U+661c-661e, U+6621-6624, U+6626, U+6629-662c, U+662e, U+6630-6631, U+6633-6637, U+6639-663b, U+663f-6641, U+6644-6646, + U+6648-664a, U+664c, U+664e-664f, U+6651, U+6657-6665, U+6667-6668, U+666a-666d, U+6670, U+6673, U+6675, U+6677-6679, U+667b-667c; } /* [38] */ @font-face { @@ -346,8 +788,21 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.38.woff2) format('woff2'); - unicode-range: U+62cf, U+62d1, U+62d4-62d6, U+62da, U+62dc, U+62ea, U+62ee-62ef, U+62f1-62f2, U+62f4-62f5, U+62fc-62fd, U+62ff, U+6302-6304, U+6308-630d, U+6310, U+6313, U+6316, U+6318, U+631b, U+6327, U+6329-632a, U+632d, U+6332, U+6335-6336, U+6339-633c, U+633e, U+6341-6344, U+6346, U+634a-634e, U+6350, U+6352-6354, U+6358-6359, U+635b, U+6365-6366, U+6369, U+636b-636d, U+6371-6372, U+6374-6378, U+637a, U+637c-637d, U+637f-6380, U+6382, U+6384, U+6387, U+6389-638a, U+638e-6390, U+6394-6396, U+6399-639a, U+639e, U+63a0, U+63a3-63a4, U+63a6, U+63a9, U+63ab-63af, U+63b5, U+63bd-63be, U+63c0-63c1, U+63c4-63c6, U+63c8, U+63ce, U+63d1-63d6, U+63dc, U+63e0, U+63e3, U+63e5, U+63e9-63ed, U+63f2-63f3, U+63f5-63f9, U+6406, U+6409-640a, U+640f-6410, U+6412-6414, U+6416-6418, U+641e, U+6420, U+6422, U+6424-6426, U+6428-642a, U+642f-6430, U+6434-6436, U+643d, U+643f, U+644b, U+644e-644f, U+6451-6454, U+645a-645d, U+645f-6461, U+6463, U+6467, U+646d, U+6473-6474, U+6476, U+6478-6479, U+647b, U+647d, U+6485, U+6487-6488, U+648f-6491, U+6493, U+6495, U+6498-649b, U+649d-649f, U+64a1, U+64a3, U+64a6, U+64a8-64a9, U+64ac, U+64b3, U+64bb-64bf, U+64c2, U+64c4-64c5, U+64c7, U+64c9-64cc, U+64ce, U+64d0-64d1; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.38.woff2) format('woff2'); + unicode-range: + U+62cf, U+62d1, U+62d4-62d6, U+62da, U+62dc, U+62ea, U+62ee-62ef, U+62f1-62f2, U+62f4-62f5, U+62fc-62fd, U+62ff, U+6302-6304, U+6308-630d, U+6310, + U+6313, U+6316, U+6318, U+631b, U+6327, U+6329-632a, U+632d, U+6332, U+6335-6336, U+6339-633c, U+633e, U+6341-6344, U+6346, U+634a-634e, U+6350, + U+6352-6354, U+6358-6359, U+635b, U+6365-6366, U+6369, U+636b-636d, U+6371-6372, U+6374-6378, U+637a, U+637c-637d, U+637f-6380, U+6382, U+6384, + U+6387, U+6389-638a, U+638e-6390, U+6394-6396, U+6399-639a, U+639e, U+63a0, U+63a3-63a4, U+63a6, U+63a9, U+63ab-63af, U+63b5, U+63bd-63be, + U+63c0-63c1, U+63c4-63c6, U+63c8, U+63ce, U+63d1-63d6, U+63dc, U+63e0, U+63e3, U+63e5, U+63e9-63ed, U+63f2-63f3, U+63f5-63f9, U+6406, U+6409-640a, + U+640f-6410, U+6412-6414, U+6416-6418, U+641e, U+6420, U+6422, U+6424-6426, U+6428-642a, U+642f-6430, U+6434-6436, U+643d, U+643f, U+644b, + U+644e-644f, U+6451-6454, U+645a-645d, U+645f-6461, U+6463, U+6467, U+646d, U+6473-6474, U+6476, U+6478-6479, U+647b, U+647d, U+6485, U+6487-6488, + U+648f-6491, U+6493, U+6495, U+6498-649b, U+649d-649f, U+64a1, U+64a3, U+64a6, U+64a8-64a9, U+64ac, U+64b3, U+64bb-64bf, U+64c2, U+64c4-64c5, + U+64c7, U+64c9-64cc, U+64ce, U+64d0-64d1; } /* [39] */ @font-face { @@ -355,8 +810,20 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.39.woff2) format('woff2'); - unicode-range: U+6117, U+6119, U+611c, U+611e, U+6120-6122, U+6127-6128, U+612a-612c, U+6130-6131, U+6134-6137, U+6139-613a, U+613c-613f, U+6141-6142, U+6144-6147, U+6149-614a, U+614d, U+6153, U+6158-615a, U+615d-6160, U+6164-6165, U+616b-616c, U+616f, U+6171-6175, U+6177-6178, U+617b-6181, U+6183-6184, U+6187, U+618a-618b, U+618d, U+6192-6194, U+6196-619a, U+619c-619d, U+619f-61a0, U+61a5, U+61a8, U+61aa-61ae, U+61b8-61ba, U+61bc, U+61be, U+61c0-61c3, U+61c6, U+61c8, U+61ca-61cf, U+61d5, U+61dc-61df, U+61e1-61e3, U+61e5-61e9, U+61ec-61ed, U+61ef, U+61f4-61f7, U+61fa, U+61fc-6201, U+6203-6204, U+6207-620a, U+620d-620e, U+6213-6215, U+621b-621e, U+6220-6223, U+6227, U+6229-622b, U+622e, U+6230-6233, U+6236, U+6239, U+623d-623e, U+6241-6244, U+6246, U+6248, U+624c, U+624e, U+6250-6252, U+6254, U+6256, U+6258, U+625a-625c, U+625e, U+6260-6261, U+6263-6264, U+6268, U+626d, U+626f, U+6273, U+627a-627e, U+6282-6283, U+6285, U+6289, U+628d-6290, U+6292-6294, U+6296, U+6299, U+629b, U+62a6, U+62a8, U+62ac, U+62b3, U+62b6-62b7, U+62ba-62bb, U+62be-62bf, U+62c2, U+62c4, U+62c6-62c8, U+62ca, U+62ce; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.39.woff2) format('woff2'); + unicode-range: + U+6117, U+6119, U+611c, U+611e, U+6120-6122, U+6127-6128, U+612a-612c, U+6130-6131, U+6134-6137, U+6139-613a, U+613c-613f, U+6141-6142, + U+6144-6147, U+6149-614a, U+614d, U+6153, U+6158-615a, U+615d-6160, U+6164-6165, U+616b-616c, U+616f, U+6171-6175, U+6177-6178, U+617b-6181, + U+6183-6184, U+6187, U+618a-618b, U+618d, U+6192-6194, U+6196-619a, U+619c-619d, U+619f-61a0, U+61a5, U+61a8, U+61aa-61ae, U+61b8-61ba, U+61bc, + U+61be, U+61c0-61c3, U+61c6, U+61c8, U+61ca-61cf, U+61d5, U+61dc-61df, U+61e1-61e3, U+61e5-61e9, U+61ec-61ed, U+61ef, U+61f4-61f7, U+61fa, + U+61fc-6201, U+6203-6204, U+6207-620a, U+620d-620e, U+6213-6215, U+621b-621e, U+6220-6223, U+6227, U+6229-622b, U+622e, U+6230-6233, U+6236, + U+6239, U+623d-623e, U+6241-6244, U+6246, U+6248, U+624c, U+624e, U+6250-6252, U+6254, U+6256, U+6258, U+625a-625c, U+625e, U+6260-6261, + U+6263-6264, U+6268, U+626d, U+626f, U+6273, U+627a-627e, U+6282-6283, U+6285, U+6289, U+628d-6290, U+6292-6294, U+6296, U+6299, U+629b, U+62a6, + U+62a8, U+62ac, U+62b3, U+62b6-62b7, U+62ba-62bb, U+62be-62bf, U+62c2, U+62c4, U+62c6-62c8, U+62ca, U+62ce; } /* [40] */ @font-face { @@ -364,8 +831,20 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.40.woff2) format('woff2'); - unicode-range: U+5f6c-5f6d, U+5f6f, U+5f72-5f75, U+5f78, U+5f7a, U+5f7d-5f7f, U+5f82-5f83, U+5f87-5f89, U+5f8d, U+5f8f, U+5f91, U+5f96, U+5f99, U+5f9c-5f9d, U+5fa0, U+5fa2, U+5fa4, U+5fa7-5fa8, U+5fab-5fad, U+5faf-5fb1, U+5fb5, U+5fb7-5fb8, U+5fbc-5fbd, U+5fc4, U+5fc7-5fc9, U+5fcb, U+5fd0-5fd4, U+5fdd-5fde, U+5fe1-5fe2, U+5fe4, U+5fe8-5fea, U+5fec-5ff3, U+5ff6, U+5ff8, U+5ffa-5ffd, U+5fff, U+6007, U+600a, U+600d-6010, U+6013-6015, U+6017-601b, U+601f, U+6021-6022, U+6024, U+6026, U+6029, U+602b, U+602d, U+6031, U+6033, U+6035, U+603a, U+6040-6043, U+6046-604a, U+604c-604d, U+6051, U+6054-6057, U+6059-605a, U+605d, U+605f-6064, U+6067, U+606a-606c, U+6070-6071, U+6077, U+607e-607f, U+6081-6086, U+6088-608e, U+6091-6093, U+6095-6098, U+609a-609b, U+609d-609e, U+60a2, U+60a4-60a5, U+60a7-60a8, U+60b0-60b1, U+60b3-60b5, U+60b7-60b8, U+60bb, U+60bd-60be, U+60c2, U+60c4, U+60c6-60cb, U+60ce-60cf, U+60d3-60d5, U+60d8-60d9, U+60db, U+60dd-60df, U+60e1-60e2, U+60e5, U+60ee, U+60f0-60f2, U+60f4-60f8, U+60fa-60fd, U+6100, U+6102-6103, U+6106-6108, U+610a, U+610c-610e, U+6110-6114, U+6116; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.40.woff2) format('woff2'); + unicode-range: + U+5f6c-5f6d, U+5f6f, U+5f72-5f75, U+5f78, U+5f7a, U+5f7d-5f7f, U+5f82-5f83, U+5f87-5f89, U+5f8d, U+5f8f, U+5f91, U+5f96, U+5f99, U+5f9c-5f9d, + U+5fa0, U+5fa2, U+5fa4, U+5fa7-5fa8, U+5fab-5fad, U+5faf-5fb1, U+5fb5, U+5fb7-5fb8, U+5fbc-5fbd, U+5fc4, U+5fc7-5fc9, U+5fcb, U+5fd0-5fd4, + U+5fdd-5fde, U+5fe1-5fe2, U+5fe4, U+5fe8-5fea, U+5fec-5ff3, U+5ff6, U+5ff8, U+5ffa-5ffd, U+5fff, U+6007, U+600a, U+600d-6010, U+6013-6015, + U+6017-601b, U+601f, U+6021-6022, U+6024, U+6026, U+6029, U+602b, U+602d, U+6031, U+6033, U+6035, U+603a, U+6040-6043, U+6046-604a, U+604c-604d, + U+6051, U+6054-6057, U+6059-605a, U+605d, U+605f-6064, U+6067, U+606a-606c, U+6070-6071, U+6077, U+607e-607f, U+6081-6086, U+6088-608e, + U+6091-6093, U+6095-6098, U+609a-609b, U+609d-609e, U+60a2, U+60a4-60a5, U+60a7-60a8, U+60b0-60b1, U+60b3-60b5, U+60b7-60b8, U+60bb, U+60bd-60be, + U+60c2, U+60c4, U+60c6-60cb, U+60ce-60cf, U+60d3-60d5, U+60d8-60d9, U+60db, U+60dd-60df, U+60e1-60e2, U+60e5, U+60ee, U+60f0-60f2, U+60f4-60f8, + U+60fa-60fd, U+6100, U+6102-6103, U+6106-6108, U+610a, U+610c-610e, U+6110-6114, U+6116; } /* [41] */ @font-face { @@ -373,8 +852,21 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.41.woff2) format('woff2'); - unicode-range: U+5d9b, U+5d9d, U+5d9f-5da0, U+5da2, U+5da4, U+5da7, U+5dab-5dac, U+5dae, U+5db0, U+5db2, U+5db4, U+5db7-5db9, U+5dbc-5dbd, U+5dc3, U+5dc7, U+5dc9, U+5dcb-5dce, U+5dd0-5dd3, U+5dd6-5dd9, U+5ddb, U+5de0, U+5de2, U+5de4, U+5de9, U+5df2, U+5df5, U+5df8-5df9, U+5dfd, U+5dff-5e00, U+5e07, U+5e0b, U+5e0d, U+5e11-5e12, U+5e14-5e15, U+5e18-5e1b, U+5e1f-5e20, U+5e25, U+5e28, U+5e2e, U+5e32, U+5e35-5e37, U+5e3e, U+5e40, U+5e43-5e44, U+5e47, U+5e49, U+5e4b, U+5e4e, U+5e50-5e51, U+5e54, U+5e56-5e58, U+5e5b-5e5c, U+5e5e-5e5f, U+5e62, U+5e64, U+5e68, U+5e6a-5e6e, U+5e70, U+5e75-5e77, U+5e7a, U+5e7f-5e80, U+5e87, U+5e8b, U+5e8e, U+5e96, U+5e99-5e9a, U+5ea0, U+5ea2, U+5ea4-5ea5, U+5ea8, U+5eaa, U+5eac, U+5eb1, U+5eb3, U+5eb8-5eb9, U+5ebd-5ebf, U+5ec1-5ec2, U+5ec6, U+5ec8, U+5ecb-5ecc, U+5ece-5ed6, U+5ed9-5ee2, U+5ee5, U+5ee8-5ee9, U+5eeb-5eec, U+5ef0-5ef1, U+5ef3-5ef4, U+5ef8-5ef9, U+5efc-5f00, U+5f02-5f03, U+5f06-5f09, U+5f0b-5f0e, U+5f11, U+5f16-5f17, U+5f19, U+5f1b-5f1e, U+5f21-5f24, U+5f27-5f29, U+5f2b-5f30, U+5f34, U+5f36, U+5f38, U+5f3a-5f3d, U+5f3f-5f41, U+5f44-5f45, U+5f47-5f48, U+5f4a, U+5f4c-5f4e, U+5f50-5f51, U+5f54, U+5f56-5f58, U+5f5b-5f5d, U+5f60, U+5f63-5f65, U+5f67, U+5f6a; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.41.woff2) format('woff2'); + unicode-range: + U+5d9b, U+5d9d, U+5d9f-5da0, U+5da2, U+5da4, U+5da7, U+5dab-5dac, U+5dae, U+5db0, U+5db2, U+5db4, U+5db7-5db9, U+5dbc-5dbd, U+5dc3, U+5dc7, + U+5dc9, U+5dcb-5dce, U+5dd0-5dd3, U+5dd6-5dd9, U+5ddb, U+5de0, U+5de2, U+5de4, U+5de9, U+5df2, U+5df5, U+5df8-5df9, U+5dfd, U+5dff-5e00, U+5e07, + U+5e0b, U+5e0d, U+5e11-5e12, U+5e14-5e15, U+5e18-5e1b, U+5e1f-5e20, U+5e25, U+5e28, U+5e2e, U+5e32, U+5e35-5e37, U+5e3e, U+5e40, U+5e43-5e44, + U+5e47, U+5e49, U+5e4b, U+5e4e, U+5e50-5e51, U+5e54, U+5e56-5e58, U+5e5b-5e5c, U+5e5e-5e5f, U+5e62, U+5e64, U+5e68, U+5e6a-5e6e, U+5e70, + U+5e75-5e77, U+5e7a, U+5e7f-5e80, U+5e87, U+5e8b, U+5e8e, U+5e96, U+5e99-5e9a, U+5ea0, U+5ea2, U+5ea4-5ea5, U+5ea8, U+5eaa, U+5eac, U+5eb1, + U+5eb3, U+5eb8-5eb9, U+5ebd-5ebf, U+5ec1-5ec2, U+5ec6, U+5ec8, U+5ecb-5ecc, U+5ece-5ed6, U+5ed9-5ee2, U+5ee5, U+5ee8-5ee9, U+5eeb-5eec, + U+5ef0-5ef1, U+5ef3-5ef4, U+5ef8-5ef9, U+5efc-5f00, U+5f02-5f03, U+5f06-5f09, U+5f0b-5f0e, U+5f11, U+5f16-5f17, U+5f19, U+5f1b-5f1e, U+5f21-5f24, + U+5f27-5f29, U+5f2b-5f30, U+5f34, U+5f36, U+5f38, U+5f3a-5f3d, U+5f3f-5f41, U+5f44-5f45, U+5f47-5f48, U+5f4a, U+5f4c-5f4e, U+5f50-5f51, U+5f54, + U+5f56-5f58, U+5f5b-5f5d, U+5f60, U+5f63-5f65, U+5f67, U+5f6a; } /* [42] */ @font-face { @@ -382,8 +874,21 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.42.woff2) format('woff2'); - unicode-range: U+5bbc, U+5bc0-5bc1, U+5bc3, U+5bc7, U+5bc9, U+5bcd-5bd0, U+5bd3-5bd4, U+5bd6-5bda, U+5bde, U+5be0-5be2, U+5be4-5be6, U+5be8, U+5beb-5bec, U+5bef-5bf1, U+5bf3-5bf6, U+5bfd, U+5c03, U+5c05, U+5c07-5c09, U+5c0c-5c0d, U+5c12-5c14, U+5c17, U+5c19, U+5c1e-5c20, U+5c22-5c24, U+5c26, U+5c28-5c2e, U+5c30, U+5c32, U+5c35-5c36, U+5c38-5c39, U+5c46, U+5c4d-5c50, U+5c53, U+5c59-5c5c, U+5c5f-5c63, U+5c67-5c69, U+5c6c-5c70, U+5c74-5c76, U+5c79-5c7d, U+5c87-5c88, U+5c8a, U+5c8c, U+5c8f, U+5c91-5c92, U+5c94, U+5c9d, U+5c9f-5ca0, U+5ca2-5ca3, U+5ca6-5ca8, U+5caa-5cab, U+5cad, U+5cb1-5cb2, U+5cb4-5cb7, U+5cba-5cbc, U+5cbe, U+5cc5, U+5cc7, U+5cc9, U+5ccb, U+5cd0, U+5cd2, U+5cd7, U+5cd9, U+5cdd, U+5ce6, U+5ce8-5cea, U+5ced-5cee, U+5cf1-5cf2, U+5cf4-5cf5, U+5cfa-5cfb, U+5cfd, U+5d01, U+5d06, U+5d0b, U+5d0d, U+5d10-5d12, U+5d14-5d15, U+5d17-5d1b, U+5d1d, U+5d1f-5d20, U+5d22-5d24, U+5d26-5d27, U+5d2b, U+5d31, U+5d34, U+5d39, U+5d3d, U+5d3f, U+5d42-5d43, U+5d46-5d48, U+5d4a-5d4b, U+5d4e, U+5d51-5d53, U+5d55, U+5d59, U+5d5c, U+5d5f-5d62, U+5d64, U+5d69-5d6a, U+5d6c-5d6d, U+5d6f-5d70, U+5d73, U+5d76, U+5d79-5d7a, U+5d7e-5d7f, U+5d81-5d84, U+5d87-5d88, U+5d8a, U+5d8c, U+5d90, U+5d92-5d95, U+5d97, U+5d99; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.42.woff2) format('woff2'); + unicode-range: + U+5bbc, U+5bc0-5bc1, U+5bc3, U+5bc7, U+5bc9, U+5bcd-5bd0, U+5bd3-5bd4, U+5bd6-5bda, U+5bde, U+5be0-5be2, U+5be4-5be6, U+5be8, U+5beb-5bec, + U+5bef-5bf1, U+5bf3-5bf6, U+5bfd, U+5c03, U+5c05, U+5c07-5c09, U+5c0c-5c0d, U+5c12-5c14, U+5c17, U+5c19, U+5c1e-5c20, U+5c22-5c24, U+5c26, + U+5c28-5c2e, U+5c30, U+5c32, U+5c35-5c36, U+5c38-5c39, U+5c46, U+5c4d-5c50, U+5c53, U+5c59-5c5c, U+5c5f-5c63, U+5c67-5c69, U+5c6c-5c70, + U+5c74-5c76, U+5c79-5c7d, U+5c87-5c88, U+5c8a, U+5c8c, U+5c8f, U+5c91-5c92, U+5c94, U+5c9d, U+5c9f-5ca0, U+5ca2-5ca3, U+5ca6-5ca8, U+5caa-5cab, + U+5cad, U+5cb1-5cb2, U+5cb4-5cb7, U+5cba-5cbc, U+5cbe, U+5cc5, U+5cc7, U+5cc9, U+5ccb, U+5cd0, U+5cd2, U+5cd7, U+5cd9, U+5cdd, U+5ce6, + U+5ce8-5cea, U+5ced-5cee, U+5cf1-5cf2, U+5cf4-5cf5, U+5cfa-5cfb, U+5cfd, U+5d01, U+5d06, U+5d0b, U+5d0d, U+5d10-5d12, U+5d14-5d15, U+5d17-5d1b, + U+5d1d, U+5d1f-5d20, U+5d22-5d24, U+5d26-5d27, U+5d2b, U+5d31, U+5d34, U+5d39, U+5d3d, U+5d3f, U+5d42-5d43, U+5d46-5d48, U+5d4a-5d4b, U+5d4e, + U+5d51-5d53, U+5d55, U+5d59, U+5d5c, U+5d5f-5d62, U+5d64, U+5d69-5d6a, U+5d6c-5d6d, U+5d6f-5d70, U+5d73, U+5d76, U+5d79-5d7a, U+5d7e-5d7f, + U+5d81-5d84, U+5d87-5d88, U+5d8a, U+5d8c, U+5d90, U+5d92-5d95, U+5d97, U+5d99; } /* [43] */ @font-face { @@ -391,8 +896,22 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.43.woff2) format('woff2'); - unicode-range: U+598b-598e, U+5992, U+5995, U+5997, U+599b, U+599d, U+599f, U+59a3-59a4, U+59a7, U+59ad-59b0, U+59b2-59b3, U+59b7, U+59ba, U+59bc, U+59be, U+59c1, U+59c3-59c4, U+59c6, U+59c8, U+59ca, U+59cd, U+59d2, U+59d9-59da, U+59dd-59df, U+59e3-59e5, U+59e7-59e8, U+59ec, U+59ee-59ef, U+59f1-59f2, U+59f4, U+59f6-59f8, U+5a00, U+5a03-5a04, U+5a09, U+5a0c-5a0e, U+5a11-5a13, U+5a17, U+5a1a-5a1c, U+5a1e-5a1f, U+5a23-5a25, U+5a27-5a28, U+5a2a, U+5a2d, U+5a30, U+5a35-5a36, U+5a40-5a41, U+5a44-5a45, U+5a47-5a49, U+5a4c, U+5a50, U+5a55, U+5a5e, U+5a62-5a63, U+5a65, U+5a67, U+5a6a, U+5a6c-5a6d, U+5a77, U+5a7a-5a7b, U+5a7e, U+5a84, U+5a8b, U+5a90, U+5a93, U+5a96, U+5a99, U+5a9c, U+5a9e-5aa0, U+5aa2, U+5aa7, U+5aac, U+5ab1-5ab3, U+5ab5, U+5ab8, U+5aba-5abf, U+5ac2, U+5ac4, U+5ac6, U+5ac8, U+5acb, U+5acf-5ad0, U+5ad6-5ad7, U+5ada, U+5adc, U+5ae0-5ae1, U+5ae3, U+5ae5-5ae6, U+5ae9-5aea, U+5aee, U+5af0, U+5af5-5af6, U+5afa-5afb, U+5afd, U+5b00-5b01, U+5b08, U+5b0b, U+5b16-5b17, U+5b19, U+5b1b, U+5b1d, U+5b21, U+5b25, U+5b2a, U+5b2c-5b2d, U+5b30, U+5b32, U+5b34, U+5b36, U+5b38, U+5b3e, U+5b40-5b41, U+5b43, U+5b45, U+5b4b-5b4c, U+5b51-5b52, U+5b56, U+5b5a-5b5c, U+5b5e-5b5f, U+5b65, U+5b68-5b69, U+5b6e-5b71, U+5b73, U+5b75-5b76, U+5b7a, U+5b7c-5b84, U+5b86, U+5b8a-5b8b, U+5b8d-5b8e, U+5b90-5b91, U+5b93-5b94, U+5b96, U+5ba5-5ba6, U+5ba8-5ba9, U+5bac-5bad, U+5baf, U+5bb1-5bb2, U+5bb7-5bb8, U+5bba; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.43.woff2) format('woff2'); + unicode-range: + U+598b-598e, U+5992, U+5995, U+5997, U+599b, U+599d, U+599f, U+59a3-59a4, U+59a7, U+59ad-59b0, U+59b2-59b3, U+59b7, U+59ba, U+59bc, U+59be, + U+59c1, U+59c3-59c4, U+59c6, U+59c8, U+59ca, U+59cd, U+59d2, U+59d9-59da, U+59dd-59df, U+59e3-59e5, U+59e7-59e8, U+59ec, U+59ee-59ef, U+59f1-59f2, + U+59f4, U+59f6-59f8, U+5a00, U+5a03-5a04, U+5a09, U+5a0c-5a0e, U+5a11-5a13, U+5a17, U+5a1a-5a1c, U+5a1e-5a1f, U+5a23-5a25, U+5a27-5a28, U+5a2a, + U+5a2d, U+5a30, U+5a35-5a36, U+5a40-5a41, U+5a44-5a45, U+5a47-5a49, U+5a4c, U+5a50, U+5a55, U+5a5e, U+5a62-5a63, U+5a65, U+5a67, U+5a6a, + U+5a6c-5a6d, U+5a77, U+5a7a-5a7b, U+5a7e, U+5a84, U+5a8b, U+5a90, U+5a93, U+5a96, U+5a99, U+5a9c, U+5a9e-5aa0, U+5aa2, U+5aa7, U+5aac, + U+5ab1-5ab3, U+5ab5, U+5ab8, U+5aba-5abf, U+5ac2, U+5ac4, U+5ac6, U+5ac8, U+5acb, U+5acf-5ad0, U+5ad6-5ad7, U+5ada, U+5adc, U+5ae0-5ae1, U+5ae3, + U+5ae5-5ae6, U+5ae9-5aea, U+5aee, U+5af0, U+5af5-5af6, U+5afa-5afb, U+5afd, U+5b00-5b01, U+5b08, U+5b0b, U+5b16-5b17, U+5b19, U+5b1b, U+5b1d, + U+5b21, U+5b25, U+5b2a, U+5b2c-5b2d, U+5b30, U+5b32, U+5b34, U+5b36, U+5b38, U+5b3e, U+5b40-5b41, U+5b43, U+5b45, U+5b4b-5b4c, U+5b51-5b52, + U+5b56, U+5b5a-5b5c, U+5b5e-5b5f, U+5b65, U+5b68-5b69, U+5b6e-5b71, U+5b73, U+5b75-5b76, U+5b7a, U+5b7c-5b84, U+5b86, U+5b8a-5b8b, U+5b8d-5b8e, + U+5b90-5b91, U+5b93-5b94, U+5b96, U+5ba5-5ba6, U+5ba8-5ba9, U+5bac-5bad, U+5baf, U+5bb1-5bb2, U+5bb7-5bb8, U+5bba; } /* [44] */ @font-face { @@ -400,8 +919,20 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.44.woff2) format('woff2'); - unicode-range: U+57b3, U+57b8, U+57bd, U+57c0, U+57c3, U+57c6-57c8, U+57cc, U+57cf, U+57d2-57d7, U+57dc-57de, U+57e0-57e1, U+57e3-57e4, U+57e6-57e7, U+57e9, U+57ed, U+57f0, U+57f4-57f6, U+57f8, U+57fb, U+57fd-57ff, U+5803-5804, U+5808-580d, U+5819, U+581b, U+581d-5821, U+5826-5827, U+582d, U+582f-5830, U+5832, U+5835, U+5839, U+583d, U+583f-5840, U+5849, U+584b-584d, U+584f-5852, U+5855, U+5858-5859, U+585f, U+5861-5862, U+5864, U+5867-5868, U+586d, U+5870, U+5872, U+5878-5879, U+587c, U+587f-5881, U+5885, U+5887-588d, U+588f-5890, U+5894, U+5896, U+5898, U+589d-589e, U+58a0-58a2, U+58a6, U+58a9-58ab, U+58ae, U+58b1-58b3, U+58b8-58bc, U+58be, U+58c2-58c5, U+58c8, U+58cd-58ce, U+58d0-58da, U+58dc-58e2, U+58e4-58e5, U+58e9, U+58ec, U+58ef, U+58f3-58f4, U+58f7, U+58f9, U+58fb-58fd, U+5902, U+5905-5906, U+590a-590d, U+5910, U+5912-5914, U+5918-5919, U+591b, U+591d, U+591f, U+5921, U+5923-5925, U+5928, U+592c-592d, U+592f-5930, U+5932-5933, U+5935-5936, U+5938-5939, U+593d-593f, U+5943, U+5946, U+594e, U+5950, U+5952-5953, U+5955, U+5957-595b, U+595d-5961, U+5963, U+5967, U+5969, U+596b-596d, U+596f, U+5972, U+5975-5976, U+5978-5979, U+597b-597c, U+5981; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.44.woff2) format('woff2'); + unicode-range: + U+57b3, U+57b8, U+57bd, U+57c0, U+57c3, U+57c6-57c8, U+57cc, U+57cf, U+57d2-57d7, U+57dc-57de, U+57e0-57e1, U+57e3-57e4, U+57e6-57e7, U+57e9, + U+57ed, U+57f0, U+57f4-57f6, U+57f8, U+57fb, U+57fd-57ff, U+5803-5804, U+5808-580d, U+5819, U+581b, U+581d-5821, U+5826-5827, U+582d, U+582f-5830, + U+5832, U+5835, U+5839, U+583d, U+583f-5840, U+5849, U+584b-584d, U+584f-5852, U+5855, U+5858-5859, U+585f, U+5861-5862, U+5864, U+5867-5868, + U+586d, U+5870, U+5872, U+5878-5879, U+587c, U+587f-5881, U+5885, U+5887-588d, U+588f-5890, U+5894, U+5896, U+5898, U+589d-589e, U+58a0-58a2, + U+58a6, U+58a9-58ab, U+58ae, U+58b1-58b3, U+58b8-58bc, U+58be, U+58c2-58c5, U+58c8, U+58cd-58ce, U+58d0-58da, U+58dc-58e2, U+58e4-58e5, U+58e9, + U+58ec, U+58ef, U+58f3-58f4, U+58f7, U+58f9, U+58fb-58fd, U+5902, U+5905-5906, U+590a-590d, U+5910, U+5912-5914, U+5918-5919, U+591b, U+591d, + U+591f, U+5921, U+5923-5925, U+5928, U+592c-592d, U+592f-5930, U+5932-5933, U+5935-5936, U+5938-5939, U+593d-593f, U+5943, U+5946, U+594e, U+5950, + U+5952-5953, U+5955, U+5957-595b, U+595d-5961, U+5963, U+5967, U+5969, U+596b-596d, U+596f, U+5972, U+5975-5976, U+5978-5979, U+597b-597c, U+5981; } /* [45] */ @font-face { @@ -409,8 +940,20 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.45.woff2) format('woff2'); - unicode-range: U+5616-5617, U+5619, U+561b, U+5620, U+5628, U+562c, U+562f-5639, U+563b-563d, U+563f-5641, U+5643-5644, U+5646-5647, U+5649, U+564b, U+564d-5650, U+5653-5654, U+565e, U+5660-5664, U+5666, U+5669-566d, U+566f, U+5671-5672, U+5675-5676, U+5678, U+567a, U+5680, U+5684-5688, U+568a-568c, U+568f, U+5694-5695, U+5699-569a, U+569d-56a0, U+56a5-56a9, U+56ab-56ae, U+56b1-56b4, U+56b6-56b7, U+56bc, U+56be, U+56c0, U+56c2-56c3, U+56c5, U+56c8-56d1, U+56d3, U+56d7-56d9, U+56dc-56dd, U+56df, U+56e1, U+56e4-56e8, U+56eb, U+56ed-56ee, U+56f1, U+56f6-56f7, U+56f9, U+56ff-5704, U+5707-570a, U+570c-570d, U+5711, U+5713, U+5715-5716, U+5718, U+571a-571d, U+5720-5726, U+5729-572a, U+572c, U+572e-572f, U+5733-5734, U+5737-5738, U+573b, U+573d-573f, U+5745-5746, U+574c-574f, U+5751-5752, U+5759, U+575f, U+5761-5762, U+5764-5765, U+5767-5769, U+576b, U+576d-5771, U+5773-5775, U+5777, U+5779-577c, U+577e-577f, U+5781, U+5783, U+5788-5789, U+578c, U+5793-5795, U+5797, U+5799-579a, U+579c-57a1, U+57a4, U+57a7-57aa, U+57ac, U+57ae, U+57b0; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.45.woff2) format('woff2'); + unicode-range: + U+5616-5617, U+5619, U+561b, U+5620, U+5628, U+562c, U+562f-5639, U+563b-563d, U+563f-5641, U+5643-5644, U+5646-5647, U+5649, U+564b, U+564d-5650, + U+5653-5654, U+565e, U+5660-5664, U+5666, U+5669-566d, U+566f, U+5671-5672, U+5675-5676, U+5678, U+567a, U+5680, U+5684-5688, U+568a-568c, U+568f, + U+5694-5695, U+5699-569a, U+569d-56a0, U+56a5-56a9, U+56ab-56ae, U+56b1-56b4, U+56b6-56b7, U+56bc, U+56be, U+56c0, U+56c2-56c3, U+56c5, + U+56c8-56d1, U+56d3, U+56d7-56d9, U+56dc-56dd, U+56df, U+56e1, U+56e4-56e8, U+56eb, U+56ed-56ee, U+56f1, U+56f6-56f7, U+56f9, U+56ff-5704, + U+5707-570a, U+570c-570d, U+5711, U+5713, U+5715-5716, U+5718, U+571a-571d, U+5720-5726, U+5729-572a, U+572c, U+572e-572f, U+5733-5734, + U+5737-5738, U+573b, U+573d-573f, U+5745-5746, U+574c-574f, U+5751-5752, U+5759, U+575f, U+5761-5762, U+5764-5765, U+5767-5769, U+576b, + U+576d-5771, U+5773-5775, U+5777, U+5779-577c, U+577e-577f, U+5781, U+5783, U+5788-5789, U+578c, U+5793-5795, U+5797, U+5799-579a, U+579c-57a1, + U+57a4, U+57a7-57aa, U+57ac, U+57ae, U+57b0; } /* [46] */ @font-face { @@ -418,8 +961,20 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.46.woff2) format('woff2'); - unicode-range: U+543f-5440, U+5443-5444, U+5447, U+544c-544f, U+5455, U+545e, U+5462, U+5464, U+5466-5467, U+5469, U+546b-546e, U+5470-5471, U+5474-5477, U+547b, U+547f-5481, U+5483-5486, U+5488-548b, U+548d-5492, U+5495-5496, U+549c, U+549f-54a2, U+54a4, U+54a6-54af, U+54b1, U+54b7-54bc, U+54be-54bf, U+54c2-54c4, U+54c6-54c8, U+54ca, U+54cd-54ce, U+54d8, U+54e0, U+54e2, U+54e5-54e6, U+54e8-54ea, U+54ec-54ef, U+54f1, U+54f3, U+54f6, U+54fc-5501, U+5505, U+5508-5509, U+550c-550f, U+5514-5516, U+5527, U+552a-552b, U+552e, U+5532-5533, U+5535-5536, U+5538-5539, U+553b-553d, U+5540-5541, U+5544-5545, U+5547, U+5549-554a, U+554c-554d, U+5550-5551, U+5556-5558, U+555a-555e, U+5560-5561, U+5563-5564, U+5566, U+557b-5583, U+5586-5588, U+558a, U+558e-558f, U+5591-5594, U+5597, U+5599, U+559e-559f, U+55a3-55a4, U+55a8-55a9, U+55ac-55ae, U+55b2, U+55bf, U+55c1, U+55c3-55c4, U+55c6-55c7, U+55c9, U+55cb-55cc, U+55ce, U+55d1-55d4, U+55d7-55d8, U+55da-55db, U+55dd-55df, U+55e2, U+55e4, U+55e9, U+55ec, U+55ee, U+55f1, U+55f6-55f9, U+55fd-55ff, U+5605, U+5607-5608, U+560a, U+560d-5612; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.46.woff2) format('woff2'); + unicode-range: + U+543f-5440, U+5443-5444, U+5447, U+544c-544f, U+5455, U+545e, U+5462, U+5464, U+5466-5467, U+5469, U+546b-546e, U+5470-5471, U+5474-5477, U+547b, + U+547f-5481, U+5483-5486, U+5488-548b, U+548d-5492, U+5495-5496, U+549c, U+549f-54a2, U+54a4, U+54a6-54af, U+54b1, U+54b7-54bc, U+54be-54bf, + U+54c2-54c4, U+54c6-54c8, U+54ca, U+54cd-54ce, U+54d8, U+54e0, U+54e2, U+54e5-54e6, U+54e8-54ea, U+54ec-54ef, U+54f1, U+54f3, U+54f6, U+54fc-5501, + U+5505, U+5508-5509, U+550c-550f, U+5514-5516, U+5527, U+552a-552b, U+552e, U+5532-5533, U+5535-5536, U+5538-5539, U+553b-553d, U+5540-5541, + U+5544-5545, U+5547, U+5549-554a, U+554c-554d, U+5550-5551, U+5556-5558, U+555a-555e, U+5560-5561, U+5563-5564, U+5566, U+557b-5583, U+5586-5588, + U+558a, U+558e-558f, U+5591-5594, U+5597, U+5599, U+559e-559f, U+55a3-55a4, U+55a8-55a9, U+55ac-55ae, U+55b2, U+55bf, U+55c1, U+55c3-55c4, + U+55c6-55c7, U+55c9, U+55cb-55cc, U+55ce, U+55d1-55d4, U+55d7-55d8, U+55da-55db, U+55dd-55df, U+55e2, U+55e4, U+55e9, U+55ec, U+55ee, U+55f1, + U+55f6-55f9, U+55fd-55ff, U+5605, U+5607-5608, U+560a, U+560d-5612; } /* [47] */ @font-face { @@ -427,8 +982,20 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.47.woff2) format('woff2'); - unicode-range: U+528d, U+5291-5298, U+529a, U+529c, U+52a4-52a7, U+52ab-52ad, U+52af-52b0, U+52b5-52b8, U+52ba-52be, U+52c0-52c1, U+52c4-52c6, U+52c8, U+52ca, U+52cc-52cd, U+52cf-52d2, U+52d4, U+52d6-52d7, U+52db-52dc, U+52de, U+52e0-52e1, U+52e3, U+52e5-52e6, U+52e8-52ea, U+52ec, U+52f0-52f1, U+52f3-52fb, U+5300-5301, U+5303, U+5306-5308, U+530a-530d, U+530f-5311, U+5313, U+5315, U+5318-531f, U+5321, U+5323-5325, U+5327-532d, U+532f-5333, U+5335, U+5338, U+533c-533e, U+5340, U+5342, U+5345-5346, U+5349, U+534b-534c, U+5359, U+535b, U+535e, U+5361, U+5363-5367, U+5369, U+536c-536e, U+5372, U+5377, U+5379-537b, U+537d-537f, U+5382-5383, U+5387-5389, U+538e, U+5393-5394, U+5396, U+5398-5399, U+539d, U+53a0-53a1, U+53a4-53a6, U+53a9-53ab, U+53ad-53b0, U+53b2, U+53b4-53b8, U+53ba, U+53bd, U+53c0-53c1, U+53c3-53c5, U+53cf, U+53d2-53d3, U+53d5, U+53da-53db, U+53dd-53e0, U+53e2, U+53e6-53e8, U+53ed-53ee, U+53f4-53f5, U+53fa, U+5401-5403, U+540b, U+540f, U+5412-5413, U+541a, U+541d-541e, U+5421, U+5424, U+5427-542a, U+542c-542f, U+5431, U+5433-5436, U+543c-543d; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.47.woff2) format('woff2'); + unicode-range: + U+528d, U+5291-5298, U+529a, U+529c, U+52a4-52a7, U+52ab-52ad, U+52af-52b0, U+52b5-52b8, U+52ba-52be, U+52c0-52c1, U+52c4-52c6, U+52c8, U+52ca, + U+52cc-52cd, U+52cf-52d2, U+52d4, U+52d6-52d7, U+52db-52dc, U+52de, U+52e0-52e1, U+52e3, U+52e5-52e6, U+52e8-52ea, U+52ec, U+52f0-52f1, + U+52f3-52fb, U+5300-5301, U+5303, U+5306-5308, U+530a-530d, U+530f-5311, U+5313, U+5315, U+5318-531f, U+5321, U+5323-5325, U+5327-532d, + U+532f-5333, U+5335, U+5338, U+533c-533e, U+5340, U+5342, U+5345-5346, U+5349, U+534b-534c, U+5359, U+535b, U+535e, U+5361, U+5363-5367, U+5369, + U+536c-536e, U+5372, U+5377, U+5379-537b, U+537d-537f, U+5382-5383, U+5387-5389, U+538e, U+5393-5394, U+5396, U+5398-5399, U+539d, U+53a0-53a1, + U+53a4-53a6, U+53a9-53ab, U+53ad-53b0, U+53b2, U+53b4-53b8, U+53ba, U+53bd, U+53c0-53c1, U+53c3-53c5, U+53cf, U+53d2-53d3, U+53d5, U+53da-53db, + U+53dd-53e0, U+53e2, U+53e6-53e8, U+53ed-53ee, U+53f4-53f5, U+53fa, U+5401-5403, U+540b, U+540f, U+5412-5413, U+541a, U+541d-541e, U+5421, U+5424, + U+5427-542a, U+542c-542f, U+5431, U+5433-5436, U+543c-543d; } /* [48] */ @font-face { @@ -436,8 +1003,20 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.48.woff2) format('woff2'); - unicode-range: U+50dd-50df, U+50e1-50e6, U+50e8-50e9, U+50ed-50f6, U+50f9-50fb, U+50fe, U+5101-5103, U+5106-5109, U+510b-510e, U+5110, U+5112, U+5114-511e, U+5121, U+5123, U+5127-5128, U+512c-512d, U+512f, U+5131, U+5133-5135, U+5137-513c, U+513f-5142, U+5147, U+514a, U+514c, U+514f, U+5152-5155, U+5157-5158, U+515f-5160, U+5162, U+5164, U+5166-5167, U+5169-516a, U+516e, U+5173-5174, U+5179, U+517b, U+517e, U+5180, U+5182-5184, U+5189, U+518b-518c, U+518e-5191, U+5193, U+5195-5196, U+5198, U+519d, U+51a1-51a4, U+51a6, U+51a9-51ab, U+51ad, U+51b0-51b3, U+51b5, U+51b8, U+51ba, U+51bc-51bf, U+51c2-51c3, U+51c5, U+51c8-51cb, U+51cf, U+51d1-51d6, U+51d8, U+51de-51e0, U+51e2, U+51e5, U+51e7, U+51e9, U+51ec-51ee, U+51f2-51f5, U+51f7, U+51fe, U+5201-5202, U+5204-5205, U+520b, U+520e, U+5212-5216, U+5218, U+5222, U+5226-5228, U+522a-522b, U+522e, U+5231-5233, U+5235, U+523c, U+5244-5245, U+5249, U+524b-524c, U+524f, U+5254-5255, U+5257-5258, U+525a, U+525c-5261, U+5266, U+5269, U+526c, U+526e, U+5271, U+5273-5274, U+5277-5279, U+527d, U+527f-5280, U+5282-5285, U+5288-528a, U+528c; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.48.woff2) format('woff2'); + unicode-range: + U+50dd-50df, U+50e1-50e6, U+50e8-50e9, U+50ed-50f6, U+50f9-50fb, U+50fe, U+5101-5103, U+5106-5109, U+510b-510e, U+5110, U+5112, U+5114-511e, + U+5121, U+5123, U+5127-5128, U+512c-512d, U+512f, U+5131, U+5133-5135, U+5137-513c, U+513f-5142, U+5147, U+514a, U+514c, U+514f, U+5152-5155, + U+5157-5158, U+515f-5160, U+5162, U+5164, U+5166-5167, U+5169-516a, U+516e, U+5173-5174, U+5179, U+517b, U+517e, U+5180, U+5182-5184, U+5189, + U+518b-518c, U+518e-5191, U+5193, U+5195-5196, U+5198, U+519d, U+51a1-51a4, U+51a6, U+51a9-51ab, U+51ad, U+51b0-51b3, U+51b5, U+51b8, U+51ba, + U+51bc-51bf, U+51c2-51c3, U+51c5, U+51c8-51cb, U+51cf, U+51d1-51d6, U+51d8, U+51de-51e0, U+51e2, U+51e5, U+51e7, U+51e9, U+51ec-51ee, U+51f2-51f5, + U+51f7, U+51fe, U+5201-5202, U+5204-5205, U+520b, U+520e, U+5212-5216, U+5218, U+5222, U+5226-5228, U+522a-522b, U+522e, U+5231-5233, U+5235, + U+523c, U+5244-5245, U+5249, U+524b-524c, U+524f, U+5254-5255, U+5257-5258, U+525a, U+525c-5261, U+5266, U+5269, U+526c, U+526e, U+5271, + U+5273-5274, U+5277-5279, U+527d, U+527f-5280, U+5282-5285, U+5288-528a, U+528c; } /* [49] */ @font-face { @@ -445,8 +1024,19 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.49.woff2) format('woff2'); - unicode-range: U+4f57-4f58, U+4f5a-4f5b, U+4f5d-4f5f, U+4f63-4f64, U+4f69-4f6a, U+4f6c, U+4f6e-4f71, U+4f76-4f7e, U+4f81-4f85, U+4f88-4f8a, U+4f8c, U+4f8e-4f90, U+4f92-4f94, U+4f96-4f9a, U+4f9e-4fa0, U+4fab, U+4fad, U+4faf, U+4fb2, U+4fb7, U+4fb9, U+4fbb-4fbe, U+4fc0-4fc1, U+4fc4-4fc6, U+4fc8-4fc9, U+4fcb-4fd4, U+4fd8, U+4fda-4fdc, U+4fdf-4fe0, U+4fe2, U+4fe4-4fe6, U+4fef-4ff2, U+4ff6, U+4ffc-5002, U+5004-5007, U+500a, U+500c, U+500e-5011, U+5013-5014, U+5016-5018, U+501a-501e, U+5021-5023, U+5025-502a, U+502c-502e, U+5030, U+5032-5033, U+5035, U+5039, U+503b, U+5040-5043, U+5045-5048, U+504a, U+504c, U+504e, U+5050-5053, U+5055-5057, U+5059-505a, U+505f-5060, U+5062-5063, U+5066-5067, U+506a, U+506c-506d, U+5070-5072, U+5077-5078, U+5080-5081, U+5083-5086, U+5088, U+508a, U+508e-5090, U+5092-5096, U+509a-509c, U+509e-50a3, U+50aa, U+50ad, U+50af-50b4, U+50b9-50bb, U+50bd, U+50c0, U+50c2-50c4, U+50c7, U+50c9-50ca, U+50cc, U+50ce, U+50d0-50d1, U+50d3-50d4, U+50d6, U+50d8-50d9, U+50dc; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.49.woff2) format('woff2'); + unicode-range: + U+4f57-4f58, U+4f5a-4f5b, U+4f5d-4f5f, U+4f63-4f64, U+4f69-4f6a, U+4f6c, U+4f6e-4f71, U+4f76-4f7e, U+4f81-4f85, U+4f88-4f8a, U+4f8c, U+4f8e-4f90, + U+4f92-4f94, U+4f96-4f9a, U+4f9e-4fa0, U+4fab, U+4fad, U+4faf, U+4fb2, U+4fb7, U+4fb9, U+4fbb-4fbe, U+4fc0-4fc1, U+4fc4-4fc6, U+4fc8-4fc9, + U+4fcb-4fd4, U+4fd8, U+4fda-4fdc, U+4fdf-4fe0, U+4fe2, U+4fe4-4fe6, U+4fef-4ff2, U+4ff6, U+4ffc-5002, U+5004-5007, U+500a, U+500c, U+500e-5011, + U+5013-5014, U+5016-5018, U+501a-501e, U+5021-5023, U+5025-502a, U+502c-502e, U+5030, U+5032-5033, U+5035, U+5039, U+503b, U+5040-5043, + U+5045-5048, U+504a, U+504c, U+504e, U+5050-5053, U+5055-5057, U+5059-505a, U+505f-5060, U+5062-5063, U+5066-5067, U+506a, U+506c-506d, + U+5070-5072, U+5077-5078, U+5080-5081, U+5083-5086, U+5088, U+508a, U+508e-5090, U+5092-5096, U+509a-509c, U+509e-50a3, U+50aa, U+50ad, + U+50af-50b4, U+50b9-50bb, U+50bd, U+50c0, U+50c2-50c4, U+50c7, U+50c9-50ca, U+50cc, U+50ce, U+50d0-50d1, U+50d3-50d4, U+50d6, U+50d8-50d9, U+50dc; } /* [50] */ @font-face { @@ -454,8 +1044,23 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.50.woff2) format('woff2'); - unicode-range: U+4093, U+4103, U+4105, U+4148, U+414f, U+4163, U+41b4, U+41bf, U+41e6, U+41ee, U+41f3, U+4207, U+420e, U+4264, U+4293, U+42c6, U+42d6, U+42dd, U+4302, U+432b, U+4343, U+43ee, U+43f0, U+4408, U+440c, U+4417, U+441c, U+4422, U+4453, U+445b, U+4476, U+447a, U+4491, U+44b3, U+44be, U+44d4, U+4508, U+450d, U+4525, U+4543, U+457a, U+459d, U+45b8, U+45be, U+45e5, U+45ea, U+460f-4610, U+4641, U+4665, U+46a1, U+46ae-46af, U+470c, U+471f, U+4764, U+47e6, U+47fd, U+4816, U+481e, U+4844, U+484e, U+48b5, U+49b0, U+49e7, U+49fa, U+4a04, U+4a29, U+4abc, U+4b38, U+4b3b, U+4b7e, U+4bc2, U+4bca, U+4bd2, U+4be8, U+4c17, U+4c20, U+4c38, U+4cc4, U+4cd1, U+4ce1, U+4d07, U+4d77, U+4e02, U+4e04-4e05, U+4e0c, U+4e0f-4e12, U+4e15, U+4e17, U+4e19, U+4e1e-4e1f, U+4e23-4e24, U+4e28-4e2c, U+4e2e-4e31, U+4e35-4e37, U+4e3f-4e42, U+4e44, U+4e47-4e48, U+4e4d-4e4e, U+4e51, U+4e55-4e56, U+4e58, U+4e5a-4e5c, U+4e62-4e63, U+4e68-4e69, U+4e74-4e75, U+4e79, U+4e7f, U+4e82, U+4e85, U+4e8a, U+4e8d-4e8e, U+4e96-4e99, U+4e9d-4ea0, U+4ea2, U+4ea5-4ea6, U+4ea8, U+4eaf-4eb0, U+4eb3, U+4eb6, U+4eb9, U+4ebb-4ebc, U+4ec2-4ec4, U+4ec6-4ec8, U+4ecd, U+4ed0, U+4ed7, U+4eda-4edb, U+4edd-4ee2, U+4ee8, U+4eeb, U+4eed, U+4eef, U+4ef1, U+4ef3, U+4ef5, U+4ef7, U+4efc-4f00, U+4f02-4f03, U+4f08-4f09, U+4f0b-4f0d, U+4f12, U+4f15-4f17, U+4f19, U+4f1c, U+4f2b, U+4f2e, U+4f30-4f31, U+4f33, U+4f35-4f37, U+4f39, U+4f3b, U+4f3e, U+4f40, U+4f42-4f43, U+4f48-4f49, U+4f4b-4f4c, U+4f52, U+4f54, U+4f56; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.50.woff2) format('woff2'); + unicode-range: + U+4093, U+4103, U+4105, U+4148, U+414f, U+4163, U+41b4, U+41bf, U+41e6, U+41ee, U+41f3, U+4207, U+420e, U+4264, U+4293, U+42c6, U+42d6, U+42dd, + U+4302, U+432b, U+4343, U+43ee, U+43f0, U+4408, U+440c, U+4417, U+441c, U+4422, U+4453, U+445b, U+4476, U+447a, U+4491, U+44b3, U+44be, U+44d4, + U+4508, U+450d, U+4525, U+4543, U+457a, U+459d, U+45b8, U+45be, U+45e5, U+45ea, U+460f-4610, U+4641, U+4665, U+46a1, U+46ae-46af, U+470c, U+471f, + U+4764, U+47e6, U+47fd, U+4816, U+481e, U+4844, U+484e, U+48b5, U+49b0, U+49e7, U+49fa, U+4a04, U+4a29, U+4abc, U+4b38, U+4b3b, U+4b7e, U+4bc2, + U+4bca, U+4bd2, U+4be8, U+4c17, U+4c20, U+4c38, U+4cc4, U+4cd1, U+4ce1, U+4d07, U+4d77, U+4e02, U+4e04-4e05, U+4e0c, U+4e0f-4e12, U+4e15, U+4e17, + U+4e19, U+4e1e-4e1f, U+4e23-4e24, U+4e28-4e2c, U+4e2e-4e31, U+4e35-4e37, U+4e3f-4e42, U+4e44, U+4e47-4e48, U+4e4d-4e4e, U+4e51, U+4e55-4e56, + U+4e58, U+4e5a-4e5c, U+4e62-4e63, U+4e68-4e69, U+4e74-4e75, U+4e79, U+4e7f, U+4e82, U+4e85, U+4e8a, U+4e8d-4e8e, U+4e96-4e99, U+4e9d-4ea0, U+4ea2, + U+4ea5-4ea6, U+4ea8, U+4eaf-4eb0, U+4eb3, U+4eb6, U+4eb9, U+4ebb-4ebc, U+4ec2-4ec4, U+4ec6-4ec8, U+4ecd, U+4ed0, U+4ed7, U+4eda-4edb, U+4edd-4ee2, + U+4ee8, U+4eeb, U+4eed, U+4eef, U+4ef1, U+4ef3, U+4ef5, U+4ef7, U+4efc-4f00, U+4f02-4f03, U+4f08-4f09, U+4f0b-4f0d, U+4f12, U+4f15-4f17, U+4f19, + U+4f1c, U+4f2b, U+4f2e, U+4f30-4f31, U+4f33, U+4f35-4f37, U+4f39, U+4f3b, U+4f3e, U+4f40, U+4f42-4f43, U+4f48-4f49, U+4f4b-4f4c, U+4f52, U+4f54, + U+4f56; } /* [51] */ @font-face { @@ -463,8 +1068,19 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.51.woff2) format('woff2'); - unicode-range: U+3395-339b, U+339e-33a0, U+33a2-33ff, U+3402, U+3405-3406, U+3427, U+342c, U+342e, U+3468, U+346a, U+3488, U+3492, U+34b5, U+34bc, U+34c1, U+34c7, U+34db, U+351f, U+353e, U+355d-355e, U+3563, U+356e, U+35a6, U+35a8, U+35c5, U+35da, U+35de, U+35f4, U+3605, U+3614, U+364a, U+3691, U+3696, U+3699, U+36cf, U+3761-3762, U+376b-376c, U+3775, U+378d, U+37c1, U+37e2, U+37e8, U+37f4, U+37fd, U+3800, U+382f, U+3836, U+3840, U+385c, U+3861, U+38a1, U+38ad, U+38fa, U+3917, U+391a, U+396f, U+39a4, U+39b8, U+3a5c, U+3a6e, U+3a73, U+3a85, U+3ac4, U+3acb, U+3ad6-3ad7, U+3aea, U+3af3, U+3b0e, U+3b1a, U+3b1c, U+3b22, U+3b35, U+3b6d, U+3b77, U+3b87-3b88, U+3b8d, U+3ba4, U+3bb6, U+3bc3, U+3bcd, U+3bf0, U+3bf3, U+3c0f, U+3c26, U+3cc3, U+3cd2, U+3d11, U+3d1e, U+3d31, U+3d4e, U+3d64, U+3d9a, U+3dc0, U+3dcc, U+3dd4, U+3e05, U+3e3f-3e40, U+3e60, U+3e66, U+3e68, U+3e83, U+3e8a, U+3e94, U+3eda, U+3f57, U+3f72, U+3f75, U+3f77, U+3fae, U+3fb1, U+3fc9, U+3fd7, U+3fdc, U+4039, U+4058; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.51.woff2) format('woff2'); + unicode-range: + U+3395-339b, U+339e-33a0, U+33a2-33ff, U+3402, U+3405-3406, U+3427, U+342c, U+342e, U+3468, U+346a, U+3488, U+3492, U+34b5, U+34bc, U+34c1, + U+34c7, U+34db, U+351f, U+353e, U+355d-355e, U+3563, U+356e, U+35a6, U+35a8, U+35c5, U+35da, U+35de, U+35f4, U+3605, U+3614, U+364a, U+3691, + U+3696, U+3699, U+36cf, U+3761-3762, U+376b-376c, U+3775, U+378d, U+37c1, U+37e2, U+37e8, U+37f4, U+37fd, U+3800, U+382f, U+3836, U+3840, U+385c, + U+3861, U+38a1, U+38ad, U+38fa, U+3917, U+391a, U+396f, U+39a4, U+39b8, U+3a5c, U+3a6e, U+3a73, U+3a85, U+3ac4, U+3acb, U+3ad6-3ad7, U+3aea, + U+3af3, U+3b0e, U+3b1a, U+3b1c, U+3b22, U+3b35, U+3b6d, U+3b77, U+3b87-3b88, U+3b8d, U+3ba4, U+3bb6, U+3bc3, U+3bcd, U+3bf0, U+3bf3, U+3c0f, + U+3c26, U+3cc3, U+3cd2, U+3d11, U+3d1e, U+3d31, U+3d4e, U+3d64, U+3d9a, U+3dc0, U+3dcc, U+3dd4, U+3e05, U+3e3f-3e40, U+3e60, U+3e66, U+3e68, + U+3e83, U+3e8a, U+3e94, U+3eda, U+3f57, U+3f72, U+3f75, U+3f77, U+3fae, U+3fb1, U+3fc9, U+3fd7, U+3fdc, U+4039, U+4058; } /* [52] */ @font-face { @@ -472,7 +1088,11 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.52.woff2) format('woff2'); + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.52.woff2) format('woff2'); unicode-range: U+32b5-332b, U+332d-3394; } /* [53] */ @@ -481,7 +1101,11 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.53.woff2) format('woff2'); + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.53.woff2) format('woff2'); unicode-range: U+31c8-31e3, U+31f0-321e, U+3220-3230, U+3232-32b4; } /* [54] */ @@ -490,7 +1114,11 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.54.woff2) format('woff2'); + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.54.woff2) format('woff2'); unicode-range: U+3028-303f, U+3094-3096, U+309f-30a0, U+30ee, U+30f7-30fa, U+30ff, U+3105-312f, U+3131-3163, U+3165-318e, U+3190-31bb, U+31c0-31c7; } /* [55] */ @@ -499,7 +1127,11 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.55.woff2) format('woff2'); + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.55.woff2) format('woff2'); unicode-range: U+2f14-2fd5, U+2ff0-2ffb, U+3004, U+3013, U+3016-301b, U+301e, U+3020-3027; } /* [56] */ @@ -508,8 +1140,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.56.woff2) format('woff2'); - unicode-range: U+25e4-25e6, U+2601-2603, U+2609, U+260e-260f, U+2616-2617, U+261c-261f, U+262f, U+2641, U+2660, U+2662-2664, U+2666-2668, U+266d-266e, U+2672-267d, U+26bd-26be, U+2702, U+271a, U+273d, U+2740, U+2756, U+2776-2793, U+27a1, U+2934-2935, U+29bf, U+29fa-29fb, U+2b05-2b07, U+2b1a, U+2b95, U+2e3a-2e3b, U+2e80-2e99, U+2e9b-2ef3, U+2f00-2f13; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.56.woff2) format('woff2'); + unicode-range: + U+25e4-25e6, U+2601-2603, U+2609, U+260e-260f, U+2616-2617, U+261c-261f, U+262f, U+2641, U+2660, U+2662-2664, U+2666-2668, U+266d-266e, + U+2672-267d, U+26bd-26be, U+2702, U+271a, U+273d, U+2740, U+2756, U+2776-2793, U+27a1, U+2934-2935, U+29bf, U+29fa-29fb, U+2b05-2b07, U+2b1a, + U+2b95, U+2e3a-2e3b, U+2e80-2e99, U+2e9b-2ef3, U+2f00-2f13; } /* [57] */ @font-face { @@ -517,8 +1156,14 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.57.woff2) format('woff2'); - unicode-range: U+24d1-24ff, U+2503-2513, U+2515-2516, U+2518-251b, U+251d-2522, U+2524-259f, U+25a2-25ab, U+25b1, U+25b7, U+25c0-25c1, U+25c9-25ca, U+25cc, U+25d0-25d3, U+25e2-25e3; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.57.woff2) format('woff2'); + unicode-range: + U+24d1-24ff, U+2503-2513, U+2515-2516, U+2518-251b, U+251d-2522, U+2524-259f, U+25a2-25ab, U+25b1, U+25b7, U+25c0-25c1, U+25c9-25ca, U+25cc, + U+25d0-25d3, U+25e2-25e3; } /* [58] */ @font-face { @@ -526,8 +1171,17 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.58.woff2) format('woff2'); - unicode-range: U+2105, U+2109-210a, U+210f, U+2116, U+2121, U+2126-2127, U+212b, U+212e, U+2135, U+213b, U+2194-2199, U+21b8-21b9, U+21c4-21c6, U+21cb-21cc, U+21d0, U+21e6-21e9, U+21f5, U+2202-2203, U+2205-2206, U+2208-220b, U+220f, U+2211, U+2213, U+2215, U+221a, U+221d, U+2220, U+2223, U+2225-2226, U+2228, U+222a-222e, U+2234-2237, U+223d, U+2243, U+2245, U+2248, U+224c, U+2260, U+2262, U+2264-2265, U+226e-226f, U+2272-2273, U+2276-2277, U+2283-2287, U+228a-228b, U+2295-2299, U+22a0, U+22a5, U+22bf, U+22da-22db, U+22ef, U+2305-2307, U+2318, U+2329-232a, U+23b0-23b1, U+23be-23cc, U+23ce, U+23da-23db, U+2423, U+2469-24d0; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.58.woff2) format('woff2'); + unicode-range: + U+2105, U+2109-210a, U+210f, U+2116, U+2121, U+2126-2127, U+212b, U+212e, U+2135, U+213b, U+2194-2199, U+21b8-21b9, U+21c4-21c6, U+21cb-21cc, + U+21d0, U+21e6-21e9, U+21f5, U+2202-2203, U+2205-2206, U+2208-220b, U+220f, U+2211, U+2213, U+2215, U+221a, U+221d, U+2220, U+2223, U+2225-2226, + U+2228, U+222a-222e, U+2234-2237, U+223d, U+2243, U+2245, U+2248, U+224c, U+2260, U+2262, U+2264-2265, U+226e-226f, U+2272-2273, U+2276-2277, + U+2283-2287, U+228a-228b, U+2295-2299, U+22a0, U+22a5, U+22bf, U+22da-22db, U+22ef, U+2305-2307, U+2318, U+2329-232a, U+23b0-23b1, U+23be-23cc, + U+23ce, U+23da-23db, U+2423, U+2469-24d0; } /* [59] */ @font-face { @@ -535,8 +1189,16 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.59.woff2) format('woff2'); - unicode-range: U+a1-a4, U+a6-a7, U+aa, U+ac-ad, U+b5-b6, U+b8-ba, U+bc-c8, U+ca-cc, U+ce-d5, U+d9-db, U+dd-df, U+e6, U+ee, U+f0, U+f5, U+f7, U+f9, U+fb, U+fe-102, U+110-113, U+11a-11b, U+128-12b, U+143-144, U+147-148, U+14c, U+14e-14f, U+152-153, U+168-16d, U+192, U+1a0-1a1, U+1af, U+1cd-1dc, U+1f8-1f9, U+251, U+261, U+2bb, U+2c7, U+2c9, U+2ea-2eb, U+304, U+307, U+30c, U+1e3e-1e3f, U+1ea0-1ebe, U+1ec0-1ec6, U+1ec8-1ef9, U+2011-2012, U+2016, U+2018-201a, U+201e, U+2021, U+2030, U+2033, U+2035, U+2042, U+2047, U+2051, U+2074, U+20a9, U+20ab-20ac, U+20dd-20de, U+2100; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.59.woff2) format('woff2'); + unicode-range: + U+a1-a4, U+a6-a7, U+aa, U+ac-ad, U+b5-b6, U+b8-ba, U+bc-c8, U+ca-cc, U+ce-d5, U+d9-db, U+dd-df, U+e6, U+ee, U+f0, U+f5, U+f7, U+f9, U+fb, + U+fe-102, U+110-113, U+11a-11b, U+128-12b, U+143-144, U+147-148, U+14c, U+14e-14f, U+152-153, U+168-16d, U+192, U+1a0-1a1, U+1af, U+1cd-1dc, + U+1f8-1f9, U+251, U+261, U+2bb, U+2c7, U+2c9, U+2ea-2eb, U+304, U+307, U+30c, U+1e3e-1e3f, U+1ea0-1ebe, U+1ec0-1ec6, U+1ec8-1ef9, U+2011-2012, + U+2016, U+2018-201a, U+201e, U+2021, U+2030, U+2033, U+2035, U+2042, U+2047, U+2051, U+2074, U+20a9, U+20ab-20ac, U+20dd-20de, U+2100; } /* [60] */ @font-face { @@ -544,8 +1206,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.60.woff2) format('woff2'); - unicode-range: U+2227, U+26a0, U+2713, U+301f, U+4ff8, U+5239, U+526a, U+54fa, U+5740, U+5937, U+5993, U+59fb, U+5a3c, U+5c41, U+6028, U+626e, U+646f, U+647a, U+64b0, U+64e2, U+65a7, U+66fe, U+6727, U+6955, U+6bef, U+6f23, U+724c, U+767c, U+7a83, U+7ac4, U+7b67, U+8000, U+8471, U+8513, U+8599, U+86db, U+8718, U+87f2, U+88f3, U+8ad2, U+8e2a, U+8fa3, U+95a5, U+9798, U+9910, U+9957, U+9bab, U+9c3b, U+9daf, U+ff95; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.60.woff2) format('woff2'); + unicode-range: + U+2227, U+26a0, U+2713, U+301f, U+4ff8, U+5239, U+526a, U+54fa, U+5740, U+5937, U+5993, U+59fb, U+5a3c, U+5c41, U+6028, U+626e, U+646f, U+647a, + U+64b0, U+64e2, U+65a7, U+66fe, U+6727, U+6955, U+6bef, U+6f23, U+724c, U+767c, U+7a83, U+7ac4, U+7b67, U+8000, U+8471, U+8513, U+8599, U+86db, + U+8718, U+87f2, U+88f3, U+8ad2, U+8e2a, U+8fa3, U+95a5, U+9798, U+9910, U+9957, U+9bab, U+9c3b, U+9daf, U+ff95; } /* [61] */ @font-face { @@ -553,8 +1222,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.61.woff2) format('woff2'); - unicode-range: U+a8, U+2032, U+2261, U+2282, U+3090, U+30f1, U+339c, U+535c, U+53d9, U+56a2, U+56c1, U+5806, U+589f, U+59d0, U+5a7f, U+60e0, U+639f, U+65af, U+68fa, U+69ae, U+6d1b, U+6ef2, U+71fb, U+725d, U+7262, U+75bc, U+7768, U+7940, U+79bf, U+7bed, U+7d68, U+7dfb, U+814b, U+8207, U+83e9, U+8494, U+8526, U+8568, U+85ea, U+86d9, U+87ba, U+8861, U+887f, U+8fe6, U+9059, U+9061, U+916a, U+976d, U+97ad, U+9ece; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.61.woff2) format('woff2'); + unicode-range: + U+a8, U+2032, U+2261, U+2282, U+3090, U+30f1, U+339c, U+535c, U+53d9, U+56a2, U+56c1, U+5806, U+589f, U+59d0, U+5a7f, U+60e0, U+639f, U+65af, + U+68fa, U+69ae, U+6d1b, U+6ef2, U+71fb, U+725d, U+7262, U+75bc, U+7768, U+7940, U+79bf, U+7bed, U+7d68, U+7dfb, U+814b, U+8207, U+83e9, U+8494, + U+8526, U+8568, U+85ea, U+86d9, U+87ba, U+8861, U+887f, U+8fe6, U+9059, U+9061, U+916a, U+976d, U+97ad, U+9ece; } /* [62] */ @font-face { @@ -562,8 +1238,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.62.woff2) format('woff2'); - unicode-range: U+2d9, U+21d4, U+301d, U+515c, U+52fe, U+5420, U+5750, U+5766, U+5954, U+5b95, U+5f8a, U+5f98, U+620c, U+621f, U+641c, U+66d9, U+676d, U+6775, U+67f5, U+694a, U+6a02, U+6a3a, U+6a80, U+6c23, U+6c72, U+6dcb, U+6faa, U+707c, U+71c8, U+7422, U+74e2, U+7791, U+7825, U+7a14, U+7a1c, U+7c95, U+7fc1, U+82a5, U+82db, U+8304, U+853d, U+8cd3, U+8de8, U+8f0c, U+8f3f, U+9091, U+91c7, U+929a, U+98af, U+9913; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.62.woff2) format('woff2'); + unicode-range: + U+2d9, U+21d4, U+301d, U+515c, U+52fe, U+5420, U+5750, U+5766, U+5954, U+5b95, U+5f8a, U+5f98, U+620c, U+621f, U+641c, U+66d9, U+676d, U+6775, + U+67f5, U+694a, U+6a02, U+6a3a, U+6a80, U+6c23, U+6c72, U+6dcb, U+6faa, U+707c, U+71c8, U+7422, U+74e2, U+7791, U+7825, U+7a14, U+7a1c, U+7c95, + U+7fc1, U+82a5, U+82db, U+8304, U+853d, U+8cd3, U+8de8, U+8f0c, U+8f3f, U+9091, U+91c7, U+929a, U+98af, U+9913; } /* [63] */ @font-face { @@ -571,8 +1254,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.63.woff2) format('woff2'); - unicode-range: U+2ca-2cb, U+2229, U+2468, U+2669, U+266f, U+273f, U+4ec0, U+4f60, U+4fb6, U+5347, U+540e, U+543b, U+5b0c, U+5d4c, U+5f14, U+5f9e, U+6155, U+62d0, U+6602, U+6666, U+66f3, U+67a2, U+67ca, U+69cc, U+6d29, U+6d9b, U+6e3e, U+6f81, U+7109, U+73c0, U+73c2, U+7425, U+7435-7436, U+7525, U+7554, U+785d, U+786b, U+7ae3, U+7b94, U+7d18, U+81bf, U+8511, U+8549, U+9075, U+9640, U+98e2, U+9e9f, U+ff96; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.63.woff2) format('woff2'); + unicode-range: + U+2ca-2cb, U+2229, U+2468, U+2669, U+266f, U+273f, U+4ec0, U+4f60, U+4fb6, U+5347, U+540e, U+543b, U+5b0c, U+5d4c, U+5f14, U+5f9e, U+6155, U+62d0, + U+6602, U+6666, U+66f3, U+67a2, U+67ca, U+69cc, U+6d29, U+6d9b, U+6e3e, U+6f81, U+7109, U+73c0, U+73c2, U+7425, U+7435-7436, U+7525, U+7554, + U+785d, U+786b, U+7ae3, U+7b94, U+7d18, U+81bf, U+8511, U+8549, U+9075, U+9640, U+98e2, U+9e9f, U+ff96; } /* [64] */ @font-face { @@ -580,8 +1270,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.64.woff2) format('woff2'); - unicode-range: U+2467, U+4ece, U+4ed4, U+4f91, U+4fae, U+534d, U+53c9, U+54b3, U+586b, U+5944, U+5b78, U+5df7, U+5f77, U+6101, U+6167-6168, U+61a4, U+62d9, U+698a, U+699b, U+6a59, U+6cc4, U+6e07, U+7099, U+75d2, U+77ad, U+7953, U+7984, U+7a92, U+7baa, U+7dbb, U+817f, U+82ad, U+85e9, U+868a, U+8caa, U+8f44, U+9017, U+907c, U+908a, U+92f3, U+936e, U+9435, U+978d, U+9838, U+9a28, U+9b41, U+9ba8, U+9c57, U+9eb9; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.64.woff2) format('woff2'); + unicode-range: + U+2467, U+4ece, U+4ed4, U+4f91, U+4fae, U+534d, U+53c9, U+54b3, U+586b, U+5944, U+5b78, U+5df7, U+5f77, U+6101, U+6167-6168, U+61a4, U+62d9, + U+698a, U+699b, U+6a59, U+6cc4, U+6e07, U+7099, U+75d2, U+77ad, U+7953, U+7984, U+7a92, U+7baa, U+7dbb, U+817f, U+82ad, U+85e9, U+868a, U+8caa, + U+8f44, U+9017, U+907c, U+908a, U+92f3, U+936e, U+9435, U+978d, U+9838, U+9a28, U+9b41, U+9ba8, U+9c57, U+9eb9; } /* [65] */ @font-face { @@ -589,8 +1286,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.65.woff2) format('woff2'); - unicode-range: U+b1, U+309b, U+4e5e, U+51f1, U+5506, U+55c5, U+58cc, U+59d1, U+5c51, U+5ef7, U+6284, U+62d7, U+6689, U+673d, U+6a2b, U+6a8e, U+6a9c, U+6d63, U+6dd1, U+70b8, U+7235, U+72db, U+72f8, U+7560, U+7c9b, U+7ce7, U+7e1e, U+80af, U+82eb, U+8463, U+8499, U+85dd, U+86ee, U+8a60, U+8a6e, U+8c79, U+8e87, U+8e8a, U+8f5f, U+9010, U+918d, U+9190, U+965b, U+97fb, U+9ab8, U+9bad, U+9d3b, U+9d5c, U+9dfa, U+9e93; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.65.woff2) format('woff2'); + unicode-range: + U+b1, U+309b, U+4e5e, U+51f1, U+5506, U+55c5, U+58cc, U+59d1, U+5c51, U+5ef7, U+6284, U+62d7, U+6689, U+673d, U+6a2b, U+6a8e, U+6a9c, U+6d63, + U+6dd1, U+70b8, U+7235, U+72db, U+72f8, U+7560, U+7c9b, U+7ce7, U+7e1e, U+80af, U+82eb, U+8463, U+8499, U+85dd, U+86ee, U+8a60, U+8a6e, U+8c79, + U+8e87, U+8e8a, U+8f5f, U+9010, U+918d, U+9190, U+965b, U+97fb, U+9ab8, U+9bad, U+9d3b, U+9d5c, U+9dfa, U+9e93; } /* [66] */ @font-face { @@ -598,8 +1302,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.66.woff2) format('woff2'); - unicode-range: U+2020, U+3003, U+3231, U+4e9b, U+4f3d, U+4f47, U+51b6, U+51dc, U+53e1, U+5bc5, U+602f, U+60bc, U+61c9, U+633d, U+637b, U+6492, U+65fa, U+660f, U+66f0, U+6703, U+681e, U+6876, U+6893, U+6912, U+698e, U+6c7d, U+714c, U+7169, U+71d5, U+725f, U+72d7, U+745b, U+74dc, U+75e2, U+7891, U+7897, U+7dcb, U+810a, U+8218, U+8339, U+840e, U+852d, U+8823, U+8a0a, U+9089, U+919c, U+971c, U+9ad9, U+ff4a, U+ff5a; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.66.woff2) format('woff2'); + unicode-range: + U+2020, U+3003, U+3231, U+4e9b, U+4f3d, U+4f47, U+51b6, U+51dc, U+53e1, U+5bc5, U+602f, U+60bc, U+61c9, U+633d, U+637b, U+6492, U+65fa, U+660f, + U+66f0, U+6703, U+681e, U+6876, U+6893, U+6912, U+698e, U+6c7d, U+714c, U+7169, U+71d5, U+725f, U+72d7, U+745b, U+74dc, U+75e2, U+7891, U+7897, + U+7dcb, U+810a, U+8218, U+8339, U+840e, U+852d, U+8823, U+8a0a, U+9089, U+919c, U+971c, U+9ad9, U+ff4a, U+ff5a; } /* [67] */ @font-face { @@ -607,8 +1318,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.67.woff2) format('woff2'); - unicode-range: U+2466, U+2600, U+4eab, U+4fe3, U+4ff5, U+51a5, U+51f0, U+536f, U+53d4, U+53f1, U+54a5, U+559d, U+55e3, U+58fa, U+5962, U+59ea, U+5c16, U+5cef, U+5d16, U+5f10, U+5fd6, U+6190, U+6216, U+634f, U+63bb, U+66d6, U+6756, U+6bc5, U+6e26, U+727d, U+731f, U+76f2, U+7729, U+7a7f, U+7aff, U+7c9f, U+818f, U+8236, U+82b9, U+8338, U+85aa, U+88b4, U+8b33, U+904d, U+93a7, U+96cc, U+96eb, U+9aed, U+9b8e, U+fa11; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.67.woff2) format('woff2'); + unicode-range: + U+2466, U+2600, U+4eab, U+4fe3, U+4ff5, U+51a5, U+51f0, U+536f, U+53d4, U+53f1, U+54a5, U+559d, U+55e3, U+58fa, U+5962, U+59ea, U+5c16, U+5cef, + U+5d16, U+5f10, U+5fd6, U+6190, U+6216, U+634f, U+63bb, U+66d6, U+6756, U+6bc5, U+6e26, U+727d, U+731f, U+76f2, U+7729, U+7a7f, U+7aff, U+7c9f, + U+818f, U+8236, U+82b9, U+8338, U+85aa, U+88b4, U+8b33, U+904d, U+93a7, U+96cc, U+96eb, U+9aed, U+9b8e, U+fa11; } /* [68] */ @font-face { @@ -616,8 +1334,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.68.woff2) format('woff2'); - unicode-range: U+251c, U+2523, U+4e14, U+545f, U+54bd, U+553e, U+55dc, U+56da, U+589c, U+5b55, U+5bb5, U+5ce1, U+5df4, U+5eb6, U+5ec9, U+6191, U+62f7, U+6357, U+64a5, U+6591, U+65bc, U+6897, U+6e1a, U+7063, U+711a, U+721b, U+722c, U+75b9, U+75d5, U+75fa, U+7766, U+7aae, U+7b48, U+7b8b, U+7d21, U+7e55, U+7f75, U+842c, U+8910, U+8a63, U+8b39, U+8b5a, U+8cdc, U+8d74, U+907d, U+91e7, U+9306, U+96bc, U+98f4, U+9ac4; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.68.woff2) format('woff2'); + unicode-range: + U+251c, U+2523, U+4e14, U+545f, U+54bd, U+553e, U+55dc, U+56da, U+589c, U+5b55, U+5bb5, U+5ce1, U+5df4, U+5eb6, U+5ec9, U+6191, U+62f7, U+6357, + U+64a5, U+6591, U+65bc, U+6897, U+6e1a, U+7063, U+711a, U+721b, U+722c, U+75b9, U+75d5, U+75fa, U+7766, U+7aae, U+7b48, U+7b8b, U+7d21, U+7e55, + U+7f75, U+842c, U+8910, U+8a63, U+8b39, U+8b5a, U+8cdc, U+8d74, U+907d, U+91e7, U+9306, U+96bc, U+98f4, U+9ac4; } /* [69] */ @font-face { @@ -625,8 +1350,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.69.woff2) format('woff2'); - unicode-range: U+2003, U+2312, U+266c, U+4f86, U+51ea, U+5243, U+5256, U+541f, U+5841, U+59dc, U+5df3, U+601c, U+60e7, U+632b, U+638c, U+64ad, U+6881, U+697c, U+69cd, U+6c50, U+6d2a, U+6fc1, U+7027, U+7058, U+70f9, U+714e, U+7345, U+751a, U+760d, U+764c, U+77db, U+7d79, U+7e8f, U+80ce, U+814e, U+81fc, U+8247, U+8278, U+85a9, U+8a03, U+90ed, U+9784, U+9801, U+984e, U+99b3, U+9bc9, U+9bdb, U+9be8, U+9e78, U+ff6b; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.69.woff2) format('woff2'); + unicode-range: + U+2003, U+2312, U+266c, U+4f86, U+51ea, U+5243, U+5256, U+541f, U+5841, U+59dc, U+5df3, U+601c, U+60e7, U+632b, U+638c, U+64ad, U+6881, U+697c, + U+69cd, U+6c50, U+6d2a, U+6fc1, U+7027, U+7058, U+70f9, U+714e, U+7345, U+751a, U+760d, U+764c, U+77db, U+7d79, U+7e8f, U+80ce, U+814e, U+81fc, + U+8247, U+8278, U+85a9, U+8a03, U+90ed, U+9784, U+9801, U+984e, U+99b3, U+9bc9, U+9bdb, U+9be8, U+9e78, U+ff6b; } /* [70] */ @font-face { @@ -634,8 +1366,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.70.woff2) format('woff2'); - unicode-range: U+266b, U+3006, U+5176, U+5197, U+51a8, U+51c6, U+52f2, U+5614, U+5875, U+5a2f, U+5b54, U+5ce0, U+5dba, U+5deb, U+5e63, U+5f59, U+5fcc, U+6068, U+6367, U+68b6, U+6a0b, U+6b64, U+6e15, U+6eba, U+7272, U+72a0, U+7947, U+7985, U+79e6, U+79e9, U+7a3d, U+7a9f, U+7aaf, U+7b95, U+7f60, U+7f9e, U+7fe0, U+8098, U+80ba, U+8106, U+82d4, U+831c, U+87f9, U+8a1f, U+8acf, U+90c1, U+920d, U+9756, U+fe43, U+ff94; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.70.woff2) format('woff2'); + unicode-range: + U+266b, U+3006, U+5176, U+5197, U+51a8, U+51c6, U+52f2, U+5614, U+5875, U+5a2f, U+5b54, U+5ce0, U+5dba, U+5deb, U+5e63, U+5f59, U+5fcc, U+6068, + U+6367, U+68b6, U+6a0b, U+6b64, U+6e15, U+6eba, U+7272, U+72a0, U+7947, U+7985, U+79e6, U+79e9, U+7a3d, U+7a9f, U+7aaf, U+7b95, U+7f60, U+7f9e, + U+7fe0, U+8098, U+80ba, U+8106, U+82d4, U+831c, U+87f9, U+8a1f, U+8acf, U+90c1, U+920d, U+9756, U+fe43, U+ff94; } /* [71] */ @font-face { @@ -643,8 +1382,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.71.woff2) format('woff2'); - unicode-range: U+af, U+2465, U+2517, U+33a1, U+4f10, U+50c5, U+51b4, U+5384, U+5606, U+5bb0, U+5cac, U+5ee3, U+618e, U+61f2, U+62c9, U+66ab, U+66f9, U+6816, U+6960, U+6b3e, U+6f20, U+7078, U+72d0, U+73ed, U+7ad9, U+7b1b, U+7be4, U+7d62, U+7f51, U+80b4, U+80f4, U+8154, U+85fb, U+865c, U+8702, U+895f, U+8aed, U+8b90, U+8ced, U+8fbf, U+91d8, U+9418, U+9583, U+9591, U+9813, U+982c, U+9bd6, U+ff46, U+ff7f, U+ff88; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.71.woff2) format('woff2'); + unicode-range: + U+af, U+2465, U+2517, U+33a1, U+4f10, U+50c5, U+51b4, U+5384, U+5606, U+5bb0, U+5cac, U+5ee3, U+618e, U+61f2, U+62c9, U+66ab, U+66f9, U+6816, + U+6960, U+6b3e, U+6f20, U+7078, U+72d0, U+73ed, U+7ad9, U+7b1b, U+7be4, U+7d62, U+7f51, U+80b4, U+80f4, U+8154, U+85fb, U+865c, U+8702, U+895f, + U+8aed, U+8b90, U+8ced, U+8fbf, U+91d8, U+9418, U+9583, U+9591, U+9813, U+982c, U+9bd6, U+ff46, U+ff7f, U+ff88; } /* [72] */ @font-face { @@ -652,8 +1398,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.72.woff2) format('woff2'); - unicode-range: U+4e91, U+508d, U+50e7, U+514e, U+51f6, U+5446, U+5504, U+584a, U+59a8, U+59d3, U+5a46, U+5ac9, U+6020, U+60a6, U+6148, U+621a, U+6234, U+64c1, U+6523, U+675c, U+67d1, U+6953, U+6ccc, U+6df5, U+6e13, U+6f06, U+723a, U+7325, U+74e6, U+758e, U+75ab, U+75d9, U+7a40, U+8096, U+82fa, U+8587, U+8594, U+8a6b, U+8ab9, U+8b17, U+8b83, U+937c, U+963b, U+9673, U+96db, U+9ce9, U+9f4b, U+ff67, U+ff82, U+ff93; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.72.woff2) format('woff2'); + unicode-range: + U+4e91, U+508d, U+50e7, U+514e, U+51f6, U+5446, U+5504, U+584a, U+59a8, U+59d3, U+5a46, U+5ac9, U+6020, U+60a6, U+6148, U+621a, U+6234, U+64c1, + U+6523, U+675c, U+67d1, U+6953, U+6ccc, U+6df5, U+6e13, U+6f06, U+723a, U+7325, U+74e6, U+758e, U+75ab, U+75d9, U+7a40, U+8096, U+82fa, U+8587, + U+8594, U+8a6b, U+8ab9, U+8b17, U+8b83, U+937c, U+963b, U+9673, U+96db, U+9ce9, U+9f4b, U+ff67, U+ff82, U+ff93; } /* [73] */ @font-face { @@ -661,8 +1414,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.73.woff2) format('woff2'); - unicode-range: U+221e, U+2514, U+51f9, U+5270, U+5449, U+5824, U+59a5, U+5a29, U+5d07, U+5e16, U+60e3, U+614c, U+6276, U+643e, U+64ab, U+6562, U+6681, U+670b, U+6734, U+67af, U+6a3d, U+6b05, U+6dc0, U+6e4a, U+7259, U+732a, U+7409, U+78a7, U+7a6b, U+8015, U+809b, U+817a, U+830e, U+837b, U+85ab, U+8a23, U+8a93, U+8b00, U+8b19, U+8b21, U+8cbf, U+8fb0, U+901d, U+91b8, U+9320, U+932c, U+9688, U+96f6, U+9df2, U+ff6a; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.73.woff2) format('woff2'); + unicode-range: + U+221e, U+2514, U+51f9, U+5270, U+5449, U+5824, U+59a5, U+5a29, U+5d07, U+5e16, U+60e3, U+614c, U+6276, U+643e, U+64ab, U+6562, U+6681, U+670b, + U+6734, U+67af, U+6a3d, U+6b05, U+6dc0, U+6e4a, U+7259, U+732a, U+7409, U+78a7, U+7a6b, U+8015, U+809b, U+817a, U+830e, U+837b, U+85ab, U+8a23, + U+8a93, U+8b00, U+8b19, U+8b21, U+8cbf, U+8fb0, U+901d, U+91b8, U+9320, U+932c, U+9688, U+96f6, U+9df2, U+ff6a; } /* [74] */ @font-face { @@ -670,8 +1430,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.74.woff2) format('woff2'); - unicode-range: U+2002, U+2025, U+4f8d, U+51e1, U+51f8, U+5507, U+5598, U+58f1, U+5983, U+59ac, U+5c3c, U+5de7, U+5e7d, U+5eca, U+5f61, U+606d, U+60f9, U+636e, U+64ec, U+67da, U+67ff, U+6813, U+68f2, U+693f, U+6b6a, U+6bbb, U+6ef4, U+7092, U+717d, U+7261, U+73c8, U+7432, U+7483, U+76fe, U+7709, U+78d0, U+81a3, U+81b3, U+82af, U+8305, U+8309, U+8870, U+88fe, U+8cd1, U+8d66, U+906e, U+971e, U+9812, U+ff79, U+ff90; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.74.woff2) format('woff2'); + unicode-range: + U+2002, U+2025, U+4f8d, U+51e1, U+51f8, U+5507, U+5598, U+58f1, U+5983, U+59ac, U+5c3c, U+5de7, U+5e7d, U+5eca, U+5f61, U+606d, U+60f9, U+636e, + U+64ec, U+67da, U+67ff, U+6813, U+68f2, U+693f, U+6b6a, U+6bbb, U+6ef4, U+7092, U+717d, U+7261, U+73c8, U+7432, U+7483, U+76fe, U+7709, U+78d0, + U+81a3, U+81b3, U+82af, U+8305, U+8309, U+8870, U+88fe, U+8cd1, U+8d66, U+906e, U+971e, U+9812, U+ff79, U+ff90; } /* [75] */ @font-face { @@ -679,8 +1446,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.75.woff2) format('woff2'); - unicode-range: U+2464, U+2501, U+2640, U+2642, U+339d, U+4f0e, U+5091, U+50b5, U+5132, U+51cc, U+558b, U+55aa, U+585e, U+5bee, U+5dfe, U+60b6, U+62b9, U+6349, U+6566, U+6590, U+6842, U+689d, U+6a58, U+6c70, U+6ff1, U+7815, U+7881, U+7aaa, U+7bc7, U+7def, U+7fa8, U+8017, U+8036, U+8061, U+821f, U+8429, U+8ce0, U+8e74, U+9019, U+90ca, U+9162, U+932f, U+93ae, U+9644, U+990c, U+9cf3, U+ff56, U+ff6e, U+ff7e, U+ff85; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.75.woff2) format('woff2'); + unicode-range: + U+2464, U+2501, U+2640, U+2642, U+339d, U+4f0e, U+5091, U+50b5, U+5132, U+51cc, U+558b, U+55aa, U+585e, U+5bee, U+5dfe, U+60b6, U+62b9, U+6349, + U+6566, U+6590, U+6842, U+689d, U+6a58, U+6c70, U+6ff1, U+7815, U+7881, U+7aaa, U+7bc7, U+7def, U+7fa8, U+8017, U+8036, U+8061, U+821f, U+8429, + U+8ce0, U+8e74, U+9019, U+90ca, U+9162, U+932f, U+93ae, U+9644, U+990c, U+9cf3, U+ff56, U+ff6e, U+ff7e, U+ff85; } /* [76] */ @font-face { @@ -688,8 +1462,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.76.woff2) format('woff2'); - unicode-range: U+2266-2267, U+4f2f, U+5208, U+5451, U+546a, U+5589, U+576a, U+5815, U+5a9a, U+5b9b, U+5c3a, U+5efb, U+5faa, U+6109, U+6643, U+6652, U+695a, U+69fd, U+6b86, U+6bb4, U+6daf, U+7089, U+70cf, U+7a00, U+7a4f, U+7b39, U+7d33, U+80e1, U+828b, U+82a6, U+86cd, U+8c8c, U+8cca, U+8df3, U+9077, U+9175, U+91dc, U+925b, U+9262, U+9271, U+92ed, U+9855, U+9905, U+9d28, U+ff3f, U+ff58, U+ff68, U+ff6d, U+ff9c; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.76.woff2) format('woff2'); + unicode-range: + U+2266-2267, U+4f2f, U+5208, U+5451, U+546a, U+5589, U+576a, U+5815, U+5a9a, U+5b9b, U+5c3a, U+5efb, U+5faa, U+6109, U+6643, U+6652, U+695a, + U+69fd, U+6b86, U+6bb4, U+6daf, U+7089, U+70cf, U+7a00, U+7a4f, U+7b39, U+7d33, U+80e1, U+828b, U+82a6, U+86cd, U+8c8c, U+8cca, U+8df3, U+9077, + U+9175, U+91dc, U+925b, U+9262, U+9271, U+92ed, U+9855, U+9905, U+9d28, U+ff3f, U+ff58, U+ff68, U+ff6d, U+ff9c; } /* [77] */ @font-face { @@ -697,8 +1478,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.77.woff2) format('woff2'); - unicode-range: U+2207, U+25ef, U+309c, U+4e4f, U+5146, U+51dd, U+5351, U+540a, U+5629, U+5eb5, U+5f04, U+5f13, U+60dc, U+6212, U+63b4, U+642c, U+6627, U+66a6, U+66c7, U+66fd, U+674e, U+6b96, U+6c4e, U+6df3, U+6e67, U+6f84, U+72fc, U+733f, U+7c97, U+7db1, U+7e4d, U+816b, U+82d1, U+84cb, U+854e, U+8607, U+86c7, U+871c, U+8776, U+8a89, U+8fc4, U+91a4, U+9285, U+9685, U+9903, U+9b31, U+9f13, U+ff42, U+ff74, U+ff91; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.77.woff2) format('woff2'); + unicode-range: + U+2207, U+25ef, U+309c, U+4e4f, U+5146, U+51dd, U+5351, U+540a, U+5629, U+5eb5, U+5f04, U+5f13, U+60dc, U+6212, U+63b4, U+642c, U+6627, U+66a6, + U+66c7, U+66fd, U+674e, U+6b96, U+6c4e, U+6df3, U+6e67, U+6f84, U+72fc, U+733f, U+7c97, U+7db1, U+7e4d, U+816b, U+82d1, U+84cb, U+854e, U+8607, + U+86c7, U+871c, U+8776, U+8a89, U+8fc4, U+91a4, U+9285, U+9685, U+9903, U+9b31, U+9f13, U+ff42, U+ff74, U+ff91; } /* [78] */ @font-face { @@ -706,8 +1494,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.78.woff2) format('woff2'); - unicode-range: U+4e32, U+51db, U+53a8, U+53ea, U+5609, U+5674, U+5a92, U+5e7e, U+6115, U+611a, U+62cc, U+62ed, U+63c9, U+64b9, U+64e6, U+65cb, U+6606, U+6731, U+683d, U+6afb, U+7460, U+771e, U+78ef, U+7b26, U+7b51, U+7cde, U+7d10, U+7d2f, U+7d46, U+80de, U+819c, U+84b2, U+85cd, U+865a, U+8ecc, U+9022, U+90b8, U+9192, U+9675, U+96b7, U+99ff, U+ff44, U+ff55, U+ff6c, U+ff73, U+ff75, U+ff86, U+ff8d, U+ff92, U+ffe3; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.78.woff2) format('woff2'); + unicode-range: + U+4e32, U+51db, U+53a8, U+53ea, U+5609, U+5674, U+5a92, U+5e7e, U+6115, U+611a, U+62cc, U+62ed, U+63c9, U+64b9, U+64e6, U+65cb, U+6606, U+6731, + U+683d, U+6afb, U+7460, U+771e, U+78ef, U+7b26, U+7b51, U+7cde, U+7d10, U+7d2f, U+7d46, U+80de, U+819c, U+84b2, U+85cd, U+865a, U+8ecc, U+9022, + U+90b8, U+9192, U+9675, U+96b7, U+99ff, U+ff44, U+ff55, U+ff6c, U+ff73, U+ff75, U+ff86, U+ff8d, U+ff92, U+ffe3; } /* [79] */ @font-face { @@ -715,8 +1510,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.79.woff2) format('woff2'); - unicode-range: U+25b3, U+30f5, U+4eae, U+4f46, U+4f51, U+5203, U+52ff, U+55a7, U+564c, U+565b, U+57f9, U+5805, U+5b64, U+5e06, U+5f70, U+5f90, U+60e8, U+6182, U+62f3, U+62fe, U+63aa, U+64a4, U+65d7, U+673a, U+6851, U+68cb, U+68df, U+6d1e, U+6e58, U+6e9d, U+77b3, U+7832, U+7c3f, U+7db4, U+7f70, U+80aa, U+80c6, U+8105, U+819d, U+8276, U+8679, U+8986, U+8c9d, U+8fc5, U+916c, U+9665, U+9699, U+96c0, U+9a19, U+ff8b; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.79.woff2) format('woff2'); + unicode-range: + U+25b3, U+30f5, U+4eae, U+4f46, U+4f51, U+5203, U+52ff, U+55a7, U+564c, U+565b, U+57f9, U+5805, U+5b64, U+5e06, U+5f70, U+5f90, U+60e8, U+6182, + U+62f3, U+62fe, U+63aa, U+64a4, U+65d7, U+673a, U+6851, U+68cb, U+68df, U+6d1e, U+6e58, U+6e9d, U+77b3, U+7832, U+7c3f, U+7db4, U+7f70, U+80aa, + U+80c6, U+8105, U+819d, U+8276, U+8679, U+8986, U+8c9d, U+8fc5, U+916c, U+9665, U+9699, U+96c0, U+9a19, U+ff8b; } /* [80] */ @font-face { @@ -724,8 +1526,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.80.woff2) format('woff2'); - unicode-range: U+2463, U+25a1, U+4ef0, U+5076, U+5098, U+51fd, U+5302, U+5448, U+54c9, U+570b, U+583a, U+5893, U+58a8, U+58ee, U+5949, U+5bdb, U+5f26, U+5f81, U+6052, U+6170, U+61c7, U+631f, U+635c, U+664b, U+69fb, U+6f01, U+7070, U+722a, U+745e, U+755c, U+76c6, U+78c1, U+79e4, U+7bb8, U+7d0b, U+81a8, U+82d7, U+8b5c, U+8f14, U+8fb1, U+8fbb, U+9283, U+9298, U+9a30, U+ff03, U+ff50, U+ff59, U+ff7b, U+ff8e-ff8f; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.80.woff2) format('woff2'); + unicode-range: + U+2463, U+25a1, U+4ef0, U+5076, U+5098, U+51fd, U+5302, U+5448, U+54c9, U+570b, U+583a, U+5893, U+58a8, U+58ee, U+5949, U+5bdb, U+5f26, U+5f81, + U+6052, U+6170, U+61c7, U+631f, U+635c, U+664b, U+69fb, U+6f01, U+7070, U+722a, U+745e, U+755c, U+76c6, U+78c1, U+79e4, U+7bb8, U+7d0b, U+81a8, + U+82d7, U+8b5c, U+8f14, U+8fb1, U+8fbb, U+9283, U+9298, U+9a30, U+ff03, U+ff50, U+ff59, U+ff7b, U+ff8e-ff8f; } /* [81] */ @font-face { @@ -733,8 +1542,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.81.woff2) format('woff2'); - unicode-range: U+2010, U+2502, U+25b6, U+4f3a, U+514b, U+5265, U+52c3, U+5339, U+53ec, U+54c0, U+55b0, U+5854, U+5b8f, U+5cb3, U+5e84, U+60da, U+6247, U+6249, U+628a, U+62cd, U+65ac, U+6838, U+690e, U+6cf0, U+6f02, U+6f2c, U+6f70, U+708a, U+7434, U+75be, U+77ef, U+7c60, U+7c98, U+7d1b, U+7e2b, U+80a5, U+81e3, U+820c, U+8210, U+8475, U+862d, U+8650, U+8997, U+906d, U+91c8, U+9700, U+9727, U+9df9, U+ff3a, U+ff9a; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.81.woff2) format('woff2'); + unicode-range: + U+2010, U+2502, U+25b6, U+4f3a, U+514b, U+5265, U+52c3, U+5339, U+53ec, U+54c0, U+55b0, U+5854, U+5b8f, U+5cb3, U+5e84, U+60da, U+6247, U+6249, + U+628a, U+62cd, U+65ac, U+6838, U+690e, U+6cf0, U+6f02, U+6f2c, U+6f70, U+708a, U+7434, U+75be, U+77ef, U+7c60, U+7c98, U+7d1b, U+7e2b, U+80a5, + U+81e3, U+820c, U+8210, U+8475, U+862d, U+8650, U+8997, U+906d, U+91c8, U+9700, U+9727, U+9df9, U+ff3a, U+ff9a; } /* [82] */ @font-face { @@ -742,8 +1558,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.82.woff2) format('woff2'); - unicode-range: U+2103, U+5049, U+52b1, U+5320, U+5553, U+572d, U+58c7, U+5b5d, U+5bc2, U+5de3, U+5e61, U+5f80, U+61a9, U+67d0, U+67f4, U+6c88, U+6ca1, U+6ce5, U+6d78, U+6e9c, U+6f54, U+731b, U+73b2, U+74a7, U+74f6, U+75e9, U+7b20, U+7c8b, U+7f72, U+809d, U+8108, U+82b3, U+82bd, U+84b8, U+84c4, U+88c2, U+8ae6, U+8ef8, U+902e, U+9065, U+9326, U+935b, U+938c, U+9676, U+9694, U+96f7, U+9ed9, U+ff48, U+ff4c, U+ff81; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.82.woff2) format('woff2'); + unicode-range: + U+2103, U+5049, U+52b1, U+5320, U+5553, U+572d, U+58c7, U+5b5d, U+5bc2, U+5de3, U+5e61, U+5f80, U+61a9, U+67d0, U+67f4, U+6c88, U+6ca1, U+6ce5, + U+6d78, U+6e9c, U+6f54, U+731b, U+73b2, U+74a7, U+74f6, U+75e9, U+7b20, U+7c8b, U+7f72, U+809d, U+8108, U+82b3, U+82bd, U+84b8, U+84c4, U+88c2, + U+8ae6, U+8ef8, U+902e, U+9065, U+9326, U+935b, U+938c, U+9676, U+9694, U+96f7, U+9ed9, U+ff48, U+ff4c, U+ff81; } /* [83] */ @font-face { @@ -751,8 +1574,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.83.woff2) format('woff2'); - unicode-range: U+2500, U+3008-3009, U+4ead, U+4f0f, U+4fca, U+53eb, U+543e, U+57a2, U+5cf0, U+5e8f, U+5fe0, U+61b2, U+62d8, U+6442, U+64b2, U+6589, U+659c, U+67f1, U+68c4, U+6cb8, U+6d12, U+6de1, U+6fe1, U+70c8, U+723d, U+73e0, U+7656, U+773a, U+7948, U+7b87, U+7c92, U+7d3a, U+7e1b, U+7e4a, U+819a, U+8358, U+83c5, U+84bc, U+864e, U+8912, U+8c9e, U+8d05, U+92fc, U+9396, U+98fd, U+99d2, U+ff64, U+ff7a, U+ff83; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.83.woff2) format('woff2'); + unicode-range: + U+2500, U+3008-3009, U+4ead, U+4f0f, U+4fca, U+53eb, U+543e, U+57a2, U+5cf0, U+5e8f, U+5fe0, U+61b2, U+62d8, U+6442, U+64b2, U+6589, U+659c, + U+67f1, U+68c4, U+6cb8, U+6d12, U+6de1, U+6fe1, U+70c8, U+723d, U+73e0, U+7656, U+773a, U+7948, U+7b87, U+7c92, U+7d3a, U+7e1b, U+7e4a, U+819a, + U+8358, U+83c5, U+84bc, U+864e, U+8912, U+8c9e, U+8d05, U+92fc, U+9396, U+98fd, U+99d2, U+ff64, U+ff7a, U+ff83; } /* [84] */ @font-face { @@ -760,8 +1590,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.84.woff2) format('woff2'); - unicode-range: U+3014-3015, U+4e3c, U+5036, U+5075, U+533f, U+53e9, U+5531, U+5642, U+5984, U+59e6, U+5a01, U+5b6b, U+5c0b, U+5f25, U+6069, U+60a0, U+614e, U+62b5, U+62d2-62d3, U+6597, U+660c, U+674f, U+67cf, U+6841, U+6905, U+6cf3, U+6d32, U+6d69, U+6f64, U+716e, U+7761, U+7b52, U+7be0, U+7dbf, U+7de9, U+7f36, U+81d3, U+8302, U+8389, U+846c, U+84ee, U+8a69, U+9038, U+9d8f, U+ff47, U+ff4b, U+ff76, U+ff9b; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.84.woff2) format('woff2'); + unicode-range: + U+3014-3015, U+4e3c, U+5036, U+5075, U+533f, U+53e9, U+5531, U+5642, U+5984, U+59e6, U+5a01, U+5b6b, U+5c0b, U+5f25, U+6069, U+60a0, U+614e, + U+62b5, U+62d2-62d3, U+6597, U+660c, U+674f, U+67cf, U+6841, U+6905, U+6cf3, U+6d32, U+6d69, U+6f64, U+716e, U+7761, U+7b52, U+7be0, U+7dbf, + U+7de9, U+7f36, U+81d3, U+8302, U+8389, U+846c, U+84ee, U+8a69, U+9038, U+9d8f, U+ff47, U+ff4b, U+ff76, U+ff9b; } /* [85] */ @font-face { @@ -769,8 +1606,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.85.woff2) format('woff2'); - unicode-range: U+25c7, U+3007, U+504f, U+507d, U+51a0, U+52a3, U+5410, U+5510, U+559a, U+5782, U+582a, U+5c0a, U+5c3f, U+5c48, U+5f6b, U+6176, U+622f, U+6279, U+62bd, U+62dd, U+65ed, U+67b6, U+6817, U+6850, U+6d6a, U+6deb, U+6ea2, U+6edd, U+6f5c, U+72e9, U+73a9, U+7573, U+76bf, U+7950, U+7956, U+7f8a, U+7ffc, U+80a2, U+80c3, U+83ca, U+8a02, U+8a13, U+8df5, U+9375, U+983b, U+99b4, U+ff4e, U+ff71, U+ff89, U+ff97; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.85.woff2) format('woff2'); + unicode-range: + U+25c7, U+3007, U+504f, U+507d, U+51a0, U+52a3, U+5410, U+5510, U+559a, U+5782, U+582a, U+5c0a, U+5c3f, U+5c48, U+5f6b, U+6176, U+622f, U+6279, + U+62bd, U+62dd, U+65ed, U+67b6, U+6817, U+6850, U+6d6a, U+6deb, U+6ea2, U+6edd, U+6f5c, U+72e9, U+73a9, U+7573, U+76bf, U+7950, U+7956, U+7f8a, + U+7ffc, U+80a2, U+80c3, U+83ca, U+8a02, U+8a13, U+8df5, U+9375, U+983b, U+99b4, U+ff4e, U+ff71, U+ff89, U+ff97; } /* [86] */ @font-face { @@ -778,8 +1622,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.86.woff2) format('woff2'); - unicode-range: U+24, U+2022, U+2212, U+221f, U+2665, U+4ecf, U+5100, U+51cd, U+52d8, U+5378, U+53f6, U+574a, U+5982, U+5996, U+5c1a, U+5e1d, U+5f84, U+609f, U+61a7, U+61f8, U+6398, U+63ee, U+6676, U+6691, U+6eb6, U+7126, U+71e5, U+7687, U+7965, U+7d17, U+80a1, U+8107, U+8266, U+85a6, U+8987, U+8ca2, U+8cab, U+8e0a, U+9042, U+95c7, U+9810, U+9867, U+98fc, U+ff52-ff54, U+ff61, U+ff77, U+ff98-ff99; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.86.woff2) format('woff2'); + unicode-range: + U+24, U+2022, U+2212, U+221f, U+2665, U+4ecf, U+5100, U+51cd, U+52d8, U+5378, U+53f6, U+574a, U+5982, U+5996, U+5c1a, U+5e1d, U+5f84, U+609f, + U+61a7, U+61f8, U+6398, U+63ee, U+6676, U+6691, U+6eb6, U+7126, U+71e5, U+7687, U+7965, U+7d17, U+80a1, U+8107, U+8266, U+85a6, U+8987, U+8ca2, + U+8cab, U+8e0a, U+9042, U+95c7, U+9810, U+9867, U+98fc, U+ff52-ff54, U+ff61, U+ff77, U+ff98-ff99; } /* [87] */ @font-face { @@ -787,8 +1638,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.87.woff2) format('woff2'); - unicode-range: U+b0, U+226a, U+2462, U+4e39, U+4fc3, U+4fd7, U+50be, U+50da, U+5200, U+5211, U+54f2, U+5618, U+596a, U+5b22, U+5bb4, U+5d50, U+60a3, U+63fa, U+658e, U+65e8, U+6669, U+6795, U+679d, U+67a0, U+6b3a, U+6e09, U+757f, U+7cd6, U+7dbe, U+7ffb, U+83cc, U+83f1, U+840c, U+845b, U+8846, U+8972, U+8a34, U+8a50, U+8a87, U+8edf, U+8ff0, U+90a6, U+9154, U+95a3, U+9663, U+9686, U+96c7, U+ff3c, U+ff7c, U+ff8a; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.87.woff2) format('woff2'); + unicode-range: + U+b0, U+226a, U+2462, U+4e39, U+4fc3, U+4fd7, U+50be, U+50da, U+5200, U+5211, U+54f2, U+5618, U+596a, U+5b22, U+5bb4, U+5d50, U+60a3, U+63fa, + U+658e, U+65e8, U+6669, U+6795, U+679d, U+67a0, U+6b3a, U+6e09, U+757f, U+7cd6, U+7dbe, U+7ffb, U+83cc, U+83f1, U+840c, U+845b, U+8846, U+8972, + U+8a34, U+8a50, U+8a87, U+8edf, U+8ff0, U+90a6, U+9154, U+95a3, U+9663, U+9686, U+96c7, U+ff3c, U+ff7c, U+ff8a; } /* [88] */ @font-face { @@ -796,8 +1654,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.88.woff2) format('woff2'); - unicode-range: U+25bd, U+4e59, U+4ec1, U+4ff3, U+515a, U+518a, U+525b, U+5375, U+552f, U+57a3, U+5b9c, U+5c3d, U+5e3d, U+5e7b, U+5f0a, U+6094, U+6458, U+654f, U+67f3, U+6b8a, U+6bd2, U+6c37, U+6ce1, U+6e56, U+6e7f, U+6ed1, U+6ede, U+6f0f, U+70ad, U+7267, U+7363, U+786c, U+7a42, U+7db2, U+7f85, U+8178, U+829d, U+8896, U+8c5a, U+8cb0, U+8ce2, U+8ed2, U+9047, U+9177, U+970a, U+9ea6, U+ff1b, U+ff31, U+ff39, U+ff80; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.88.woff2) format('woff2'); + unicode-range: + U+25bd, U+4e59, U+4ec1, U+4ff3, U+515a, U+518a, U+525b, U+5375, U+552f, U+57a3, U+5b9c, U+5c3d, U+5e3d, U+5e7b, U+5f0a, U+6094, U+6458, U+654f, + U+67f3, U+6b8a, U+6bd2, U+6c37, U+6ce1, U+6e56, U+6e7f, U+6ed1, U+6ede, U+6f0f, U+70ad, U+7267, U+7363, U+786c, U+7a42, U+7db2, U+7f85, U+8178, + U+829d, U+8896, U+8c5a, U+8cb0, U+8ce2, U+8ed2, U+9047, U+9177, U+970a, U+9ea6, U+ff1b, U+ff31, U+ff39, U+ff80; } /* [89] */ @font-face { @@ -805,8 +1670,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.89.woff2) format('woff2'); - unicode-range: U+a5, U+4e80, U+4f34, U+4f73, U+4f75, U+511f, U+5192, U+52aa, U+53c8, U+570f, U+57cb, U+596e, U+5d8b, U+5f66, U+5fd9, U+62db, U+62f6, U+6328, U+633f, U+63a7, U+6469, U+6bbf, U+6c41, U+6c57, U+6d44, U+6dbc, U+706f, U+72c2, U+72ed, U+7551, U+75f4, U+7949, U+7e26, U+7fd4, U+8150, U+8af8, U+8b0e, U+8b72, U+8ca7, U+934b, U+9a0e, U+9a12, U+9b42, U+ff41, U+ff43, U+ff45, U+ff49, U+ff4f, U+ff62-ff63; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.89.woff2) format('woff2'); + unicode-range: + U+a5, U+4e80, U+4f34, U+4f73, U+4f75, U+511f, U+5192, U+52aa, U+53c8, U+570f, U+57cb, U+596e, U+5d8b, U+5f66, U+5fd9, U+62db, U+62f6, U+6328, + U+633f, U+63a7, U+6469, U+6bbf, U+6c41, U+6c57, U+6d44, U+6dbc, U+706f, U+72c2, U+72ed, U+7551, U+75f4, U+7949, U+7e26, U+7fd4, U+8150, U+8af8, + U+8b0e, U+8b72, U+8ca7, U+934b, U+9a0e, U+9a12, U+9b42, U+ff41, U+ff43, U+ff45, U+ff49, U+ff4f, U+ff62-ff63; } /* [90] */ @font-face { @@ -814,8 +1686,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.90.woff2) format('woff2'); - unicode-range: U+4e18, U+4fb5, U+5104, U+52c7, U+5353, U+5374, U+53e5, U+587e, U+594f, U+5a20, U+5de1, U+5f18, U+5fcd, U+6291, U+62ab, U+6355, U+6392, U+63da, U+63e1, U+656c, U+6687, U+68b0-68b1, U+68d2, U+68da, U+6b27, U+6cbc, U+7159, U+7344, U+73cd, U+76df, U+790e, U+7cf8, U+8102, U+88c1, U+8aa0, U+8e0f, U+9178, U+92ad, U+9670, U+96c5, U+9cf4, U+9db4, U+ff3e, U+ff6f, U+ff72, U+ff78, U+ff7d, U+ff84, U+ff8c; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.90.woff2) format('woff2'); + unicode-range: + U+4e18, U+4fb5, U+5104, U+52c7, U+5353, U+5374, U+53e5, U+587e, U+594f, U+5a20, U+5de1, U+5f18, U+5fcd, U+6291, U+62ab, U+6355, U+6392, U+63da, + U+63e1, U+656c, U+6687, U+68b0-68b1, U+68d2, U+68da, U+6b27, U+6cbc, U+7159, U+7344, U+73cd, U+76df, U+790e, U+7cf8, U+8102, U+88c1, U+8aa0, + U+8e0f, U+9178, U+92ad, U+9670, U+96c5, U+9cf4, U+9db4, U+ff3e, U+ff6f, U+ff72, U+ff78, U+ff7d, U+ff84, U+ff8c; } /* [91] */ @font-face { @@ -823,8 +1702,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.91.woff2) format('woff2'); - unicode-range: U+60, U+2200, U+226b, U+2461, U+517c, U+526f, U+5800, U+5b97, U+5bf8, U+5c01, U+5d29, U+5e4c, U+5e81, U+6065, U+61d0, U+667a, U+6696, U+6843, U+6c99, U+6d99, U+6ec5, U+6f22, U+6f6e, U+6fa4, U+6fef, U+71c3, U+72d9, U+7384, U+78e8, U+7a1a, U+7a32, U+7a3c, U+7adc, U+7ca7, U+7d2b, U+7dad, U+7e4b, U+80a9, U+8170, U+81ed, U+820e, U+8a17, U+8afe, U+90aa, U+914e, U+963f, U+99c4, U+9eba, U+9f3b, U+ff38; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.91.woff2) format('woff2'); + unicode-range: + U+60, U+2200, U+226b, U+2461, U+517c, U+526f, U+5800, U+5b97, U+5bf8, U+5c01, U+5d29, U+5e4c, U+5e81, U+6065, U+61d0, U+667a, U+6696, U+6843, + U+6c99, U+6d99, U+6ec5, U+6f22, U+6f6e, U+6fa4, U+6fef, U+71c3, U+72d9, U+7384, U+78e8, U+7a1a, U+7a32, U+7a3c, U+7adc, U+7ca7, U+7d2b, U+7dad, + U+7e4b, U+80a9, U+8170, U+81ed, U+820e, U+8a17, U+8afe, U+90aa, U+914e, U+963f, U+99c4, U+9eba, U+9f3b, U+ff38; } /* [92] */ @font-face { @@ -832,8 +1718,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.92.woff2) format('woff2'); - unicode-range: U+2460, U+4e5f, U+4e7e, U+4ed9, U+501f, U+502b, U+5968, U+5974, U+5ac1, U+5b99, U+5ba3, U+5be7, U+5be9, U+5c64, U+5cb8, U+5ec3, U+5f1f, U+616e, U+6297, U+62e0, U+62ec, U+6368, U+642d, U+65e6, U+6717, U+676f, U+6b04, U+732e, U+7652, U+76ca, U+76d7, U+7802, U+7e70, U+7f6a, U+8133, U+81e8, U+866b, U+878d, U+88f8, U+8a5e, U+8cdb, U+8d08, U+907a, U+90e1, U+96f2, U+9f8d, U+ff35, U+ff37, U+ff40, U+ff9d; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.92.woff2) format('woff2'); + unicode-range: + U+2460, U+4e5f, U+4e7e, U+4ed9, U+501f, U+502b, U+5968, U+5974, U+5ac1, U+5b99, U+5ba3, U+5be7, U+5be9, U+5c64, U+5cb8, U+5ec3, U+5f1f, U+616e, + U+6297, U+62e0, U+62ec, U+6368, U+642d, U+65e6, U+6717, U+676f, U+6b04, U+732e, U+7652, U+76ca, U+76d7, U+7802, U+7e70, U+7f6a, U+8133, U+81e8, + U+866b, U+878d, U+88f8, U+8a5e, U+8cdb, U+8d08, U+907a, U+90e1, U+96f2, U+9f8d, U+ff35, U+ff37, U+ff40, U+ff9d; } /* [93] */ @font-face { @@ -841,8 +1734,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.93.woff2) format('woff2'); - unicode-range: U+21d2, U+25ce, U+300a-300b, U+4e89, U+4e9c, U+4ea1, U+5263, U+53cc, U+5426, U+5869, U+5947, U+598a, U+5999, U+5e55, U+5e72, U+5e79, U+5fae, U+5fb9, U+602a, U+6163, U+624d, U+6749, U+6c5a, U+6cbf, U+6d45, U+6dfb, U+6e7e, U+708e, U+725b, U+7763, U+79c0, U+7bc4, U+7c89, U+7e01, U+7e2e, U+8010, U+8033, U+8c6a, U+8cc3, U+8f1d, U+8f9b, U+8fb2, U+907f, U+90f7, U+9707, U+9818, U+9b3c, U+ff0a, U+ff4d; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.93.woff2) format('woff2'); + unicode-range: + U+21d2, U+25ce, U+300a-300b, U+4e89, U+4e9c, U+4ea1, U+5263, U+53cc, U+5426, U+5869, U+5947, U+598a, U+5999, U+5e55, U+5e72, U+5e79, U+5fae, + U+5fb9, U+602a, U+6163, U+624d, U+6749, U+6c5a, U+6cbf, U+6d45, U+6dfb, U+6e7e, U+708e, U+725b, U+7763, U+79c0, U+7bc4, U+7c89, U+7e01, U+7e2e, + U+8010, U+8033, U+8c6a, U+8cc3, U+8f1d, U+8f9b, U+8fb2, U+907f, U+90f7, U+9707, U+9818, U+9b3c, U+ff0a, U+ff4d; } /* [94] */ @font-face { @@ -850,8 +1750,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.94.woff2) format('woff2'); - unicode-range: U+2015, U+2190, U+4e43, U+5019, U+5247, U+52e7, U+5438, U+54b2, U+55ab, U+57f7, U+5bd2, U+5e8a, U+5ef6, U+6016, U+60b2, U+6162, U+6319, U+6551, U+6607, U+66b4, U+675f, U+67d4, U+6b20, U+6b53, U+6ce3, U+719f, U+75b2, U+770b, U+7720, U+77ac, U+79d2, U+7af9, U+7d05, U+7dca, U+8056, U+80f8, U+81f3, U+8352, U+885d, U+8a70, U+8aa4, U+8cbc, U+900f, U+9084, U+91e3, U+9451, U+96c4, U+99c6, U+9ad4, U+ff70; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.94.woff2) format('woff2'); + unicode-range: + U+2015, U+2190, U+4e43, U+5019, U+5247, U+52e7, U+5438, U+54b2, U+55ab, U+57f7, U+5bd2, U+5e8a, U+5ef6, U+6016, U+60b2, U+6162, U+6319, U+6551, + U+6607, U+66b4, U+675f, U+67d4, U+6b20, U+6b53, U+6ce3, U+719f, U+75b2, U+770b, U+7720, U+77ac, U+79d2, U+7af9, U+7d05, U+7dca, U+8056, U+80f8, + U+81f3, U+8352, U+885d, U+8a70, U+8aa4, U+8cbc, U+900f, U+9084, U+91e3, U+9451, U+96c4, U+99c6, U+9ad4, U+ff70; } /* [95] */ @font-face { @@ -859,8 +1766,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.95.woff2) format('woff2'); - unicode-range: U+2193, U+25b2, U+4e4b, U+516d, U+51c4, U+529f, U+52c9, U+5360, U+5442, U+5857, U+5915, U+59eb, U+5a9b, U+5c3b, U+6012, U+61b6, U+62b1, U+6311, U+6577, U+65e2, U+65ec, U+6613, U+6790, U+6cb9, U+7372, U+76ae, U+7d5e, U+7fcc, U+88ab, U+88d5, U+8caf, U+8ddd, U+8ecd, U+8f38, U+8f9e, U+8feb, U+9063, U+90f5, U+93e1, U+968a, U+968f, U+98fe, U+9ec4, U+ff1d, U+ff27, U+ff2a, U+ff36, U+ff3b, U+ff3d, U+ffe5; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.95.woff2) format('woff2'); + unicode-range: + U+2193, U+25b2, U+4e4b, U+516d, U+51c4, U+529f, U+52c9, U+5360, U+5442, U+5857, U+5915, U+59eb, U+5a9b, U+5c3b, U+6012, U+61b6, U+62b1, U+6311, + U+6577, U+65e2, U+65ec, U+6613, U+6790, U+6cb9, U+7372, U+76ae, U+7d5e, U+7fcc, U+88ab, U+88d5, U+8caf, U+8ddd, U+8ecd, U+8f38, U+8f9e, U+8feb, + U+9063, U+90f5, U+93e1, U+968a, U+968f, U+98fe, U+9ec4, U+ff1d, U+ff27, U+ff2a, U+ff36, U+ff3b, U+ff3d, U+ffe5; } /* [96] */ @font-face { @@ -868,8 +1782,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.96.woff2) format('woff2'); - unicode-range: U+4e03, U+4f38, U+50b7, U+5264, U+5348, U+5371, U+585a, U+58ca, U+5951, U+59b9, U+59d4, U+5b98, U+5f8b, U+6388, U+64cd, U+65e7, U+6803, U+6b6f, U+6d66, U+6e0b, U+6ecb, U+6fc3, U+72ac, U+773c, U+77e2, U+7968, U+7a74, U+7dba, U+7dd1, U+7e3e, U+808c, U+811a, U+8179, U+8239, U+8584, U+8a0e, U+8a72, U+8b66, U+8c46, U+8f29, U+90a3, U+9234, U+96f0, U+9769, U+9774, U+9aa8, U+ff26, U+ff28, U+ff9e-ff9f; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.96.woff2) format('woff2'); + unicode-range: + U+4e03, U+4f38, U+50b7, U+5264, U+5348, U+5371, U+585a, U+58ca, U+5951, U+59b9, U+59d4, U+5b98, U+5f8b, U+6388, U+64cd, U+65e7, U+6803, U+6b6f, + U+6d66, U+6e0b, U+6ecb, U+6fc3, U+72ac, U+773c, U+77e2, U+7968, U+7a74, U+7dba, U+7dd1, U+7e3e, U+808c, U+811a, U+8179, U+8239, U+8584, U+8a0e, + U+8a72, U+8b66, U+8c46, U+8f29, U+90a3, U+9234, U+96f0, U+9769, U+9774, U+9aa8, U+ff26, U+ff28, U+ff9e-ff9f; } /* [97] */ @font-face { @@ -877,8 +1798,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.97.woff2) format('woff2'); - unicode-range: U+7e, U+b4, U+25c6, U+2661, U+4e92, U+4eee, U+4ffa, U+5144, U+5237, U+5287, U+52b4, U+58c1, U+5bff, U+5c04, U+5c06, U+5e95, U+5f31, U+5f93, U+63c3, U+640d, U+6557, U+6614, U+662f, U+67d3, U+690d, U+6bba, U+6e6f, U+72af, U+732b, U+7518, U+7ae0, U+7ae5, U+7af6, U+822a, U+89e6, U+8a3a, U+8a98, U+8cb8, U+8de1, U+8e8d, U+95d8, U+961c, U+96a3, U+96ea, U+9bae, U+ff20, U+ff22, U+ff29, U+ff2b-ff2c; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.97.woff2) format('woff2'); + unicode-range: + U+7e, U+b4, U+25c6, U+2661, U+4e92, U+4eee, U+4ffa, U+5144, U+5237, U+5287, U+52b4, U+58c1, U+5bff, U+5c04, U+5c06, U+5e95, U+5f31, U+5f93, + U+63c3, U+640d, U+6557, U+6614, U+662f, U+67d3, U+690d, U+6bba, U+6e6f, U+72af, U+732b, U+7518, U+7ae0, U+7ae5, U+7af6, U+822a, U+89e6, U+8a3a, + U+8a98, U+8cb8, U+8de1, U+8e8d, U+95d8, U+961c, U+96a3, U+96ea, U+9bae, U+ff20, U+ff22, U+ff29, U+ff2b-ff2c; } /* [98] */ @font-face { @@ -886,8 +1814,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.98.woff2) format('woff2'); - unicode-range: U+25cb, U+4e71, U+4f59, U+50d5, U+520a, U+5217, U+5230, U+523a-523b, U+541b, U+5439, U+5747, U+59c9, U+5bdf, U+5c31, U+5de8, U+5e7c, U+5f69, U+6050, U+60d1, U+63cf, U+663c, U+67c4, U+6885, U+6c38, U+6d6e, U+6db2, U+6df7, U+6e2c, U+6f5f, U+7532, U+76e3-76e4, U+7701, U+793c, U+79f0, U+7a93, U+7d00, U+7de0, U+7e54, U+8328, U+8840, U+969c, U+96e8, U+9811, U+9aea, U+9b5a, U+ff24, U+ff2e, U+ff57; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.98.woff2) format('woff2'); + unicode-range: + U+25cb, U+4e71, U+4f59, U+50d5, U+520a, U+5217, U+5230, U+523a-523b, U+541b, U+5439, U+5747, U+59c9, U+5bdf, U+5c31, U+5de8, U+5e7c, U+5f69, + U+6050, U+60d1, U+63cf, U+663c, U+67c4, U+6885, U+6c38, U+6d6e, U+6db2, U+6df7, U+6e2c, U+6f5f, U+7532, U+76e3-76e4, U+7701, U+793c, U+79f0, + U+7a93, U+7d00, U+7de0, U+7e54, U+8328, U+8840, U+969c, U+96e8, U+9811, U+9aea, U+9b5a, U+ff24, U+ff2e, U+ff57; } /* [99] */ @font-face { @@ -895,8 +1830,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.99.woff2) format('woff2'); - unicode-range: U+2191, U+505c, U+52e4, U+5305, U+535a, U+56e0, U+59bb, U+5acc, U+5b09, U+5b87, U+5c90, U+5df1, U+5e2d, U+5e33, U+5f3e, U+6298, U+6383, U+653b, U+6697, U+6804, U+6a39, U+6cca, U+6e90, U+6f2b, U+702c, U+7206, U+7236, U+7559, U+7565, U+7591, U+75c7, U+75db, U+7b4b, U+7bb1, U+7d99, U+7fbd, U+8131, U+885b, U+8b1d, U+8ff7, U+9003, U+9045, U+96a0, U+9732, U+990a, U+99d0, U+9e97, U+9f62, U+ff25, U+ff2d; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.99.woff2) format('woff2'); + unicode-range: + U+2191, U+505c, U+52e4, U+5305, U+535a, U+56e0, U+59bb, U+5acc, U+5b09, U+5b87, U+5c90, U+5df1, U+5e2d, U+5e33, U+5f3e, U+6298, U+6383, U+653b, + U+6697, U+6804, U+6a39, U+6cca, U+6e90, U+6f2b, U+702c, U+7206, U+7236, U+7559, U+7565, U+7591, U+75c7, U+75db, U+7b4b, U+7bb1, U+7d99, U+7fbd, + U+8131, U+885b, U+8b1d, U+8ff7, U+9003, U+9045, U+96a0, U+9732, U+990a, U+99d0, U+9e97, U+9f62, U+ff25, U+ff2d; } /* [100] */ @font-face { @@ -904,8 +1846,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.100.woff2) format('woff2'); - unicode-range: U+4e08, U+4f9d, U+5012, U+514d, U+51b7, U+5275, U+53ca, U+53f8, U+5584, U+57fc, U+5b9d, U+5bfa, U+5c3e, U+5f01, U+5fb4, U+5fd7, U+606f, U+62e1, U+6563, U+6674, U+6cb3, U+6d3e, U+6d74, U+6e1b, U+6e2f, U+718a, U+7247, U+79d8, U+7d14, U+7d66, U+7d71, U+7df4, U+7e41, U+80cc, U+8155, U+83d3, U+8a95, U+8ab2, U+8ad6, U+8ca1, U+9000, U+9006, U+9678, U+97d3, U+9808, U+98ef, U+9a5a, U+9b45, U+ff23, U+ff30; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.100.woff2) format('woff2'); + unicode-range: + U+4e08, U+4f9d, U+5012, U+514d, U+51b7, U+5275, U+53ca, U+53f8, U+5584, U+57fc, U+5b9d, U+5bfa, U+5c3e, U+5f01, U+5fb4, U+5fd7, U+606f, U+62e1, + U+6563, U+6674, U+6cb3, U+6d3e, U+6d74, U+6e1b, U+6e2f, U+718a, U+7247, U+79d8, U+7d14, U+7d66, U+7d71, U+7df4, U+7e41, U+80cc, U+8155, U+83d3, + U+8a95, U+8ab2, U+8ad6, U+8ca1, U+9000, U+9006, U+9678, U+97d3, U+9808, U+98ef, U+9a5a, U+9b45, U+ff23, U+ff30; } /* [101] */ @font-face { @@ -913,8 +1862,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.101.woff2) format('woff2'); - unicode-range: U+25bc, U+3012, U+4ef2, U+4f0a, U+516b, U+5373, U+539a, U+53b3, U+559c, U+56f0, U+5727, U+5742, U+5965, U+59ff, U+5bc6, U+5dfb, U+5e45, U+5ead, U+5fb3, U+6211, U+6253, U+639b, U+63a8, U+6545, U+6575, U+6628, U+672d, U+68a8, U+6bdb, U+6d25, U+707d, U+767e, U+7834, U+7b46, U+7bc9, U+8074, U+82e6, U+8349, U+8a2a, U+8d70, U+8da3, U+8fce, U+91cc, U+967d, U+97ff, U+9996, U+ff1c, U+ff2f, U+ff32, U+ff34; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.101.woff2) format('woff2'); + unicode-range: + U+25bc, U+3012, U+4ef2, U+4f0a, U+516b, U+5373, U+539a, U+53b3, U+559c, U+56f0, U+5727, U+5742, U+5965, U+59ff, U+5bc6, U+5dfb, U+5e45, U+5ead, + U+5fb3, U+6211, U+6253, U+639b, U+63a8, U+6545, U+6575, U+6628, U+672d, U+68a8, U+6bdb, U+6d25, U+707d, U+767e, U+7834, U+7b46, U+7bc9, U+8074, + U+82e6, U+8349, U+8a2a, U+8d70, U+8da3, U+8fce, U+91cc, U+967d, U+97ff, U+9996, U+ff1c, U+ff2f, U+ff32, U+ff34; } /* [102] */ @font-face { @@ -922,8 +1878,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.102.woff2) format('woff2'); - unicode-range: U+3d, U+5e, U+25cf, U+4e0e, U+4e5d, U+4e73, U+4e94, U+4f3c, U+5009, U+5145, U+51ac, U+5238, U+524a, U+53f3, U+547c, U+5802, U+5922, U+5a66, U+5c0e, U+5de6, U+5fd8, U+5feb, U+6797, U+685c, U+6b7b, U+6c5f-6c60, U+6cc9, U+6ce2, U+6d17, U+6e21, U+7167, U+7642, U+76db, U+8001, U+821e, U+8857, U+89d2, U+8b1b, U+8b70, U+8cb4, U+8cde, U+8f03, U+8f2a, U+968e, U+9b54, U+9e7f, U+9ebb, U+ff05, U+ff33; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.102.woff2) format('woff2'); + unicode-range: + U+3d, U+5e, U+25cf, U+4e0e, U+4e5d, U+4e73, U+4e94, U+4f3c, U+5009, U+5145, U+51ac, U+5238, U+524a, U+53f3, U+547c, U+5802, U+5922, U+5a66, + U+5c0e, U+5de6, U+5fd8, U+5feb, U+6797, U+685c, U+6b7b, U+6c5f-6c60, U+6cc9, U+6ce2, U+6d17, U+6e21, U+7167, U+7642, U+76db, U+8001, U+821e, + U+8857, U+89d2, U+8b1b, U+8b70, U+8cb4, U+8cde, U+8f03, U+8f2a, U+968e, U+9b54, U+9e7f, U+9ebb, U+ff05, U+ff33; } /* [103] */ @font-face { @@ -931,8 +1894,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.103.woff2) format('woff2'); - unicode-range: U+500d, U+5074, U+50cd, U+5175, U+52e2, U+5352, U+5354, U+53f2, U+5409, U+56fa, U+5a18, U+5b88, U+5bdd, U+5ca9, U+5f92, U+5fa9, U+60a9, U+623f, U+6483, U+653f, U+666f, U+66ae, U+66f2, U+6a21, U+6b66, U+6bcd, U+6d5c, U+796d, U+7a4d, U+7aef, U+7b56, U+7b97, U+7c4d, U+7e04, U+7fa9, U+8377, U+83dc, U+83ef, U+8535, U+8863, U+88cf, U+88dc, U+8907, U+8acb, U+90ce, U+91dd, U+ff0b, U+ff0d, U+ff19, U+ff65; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.103.woff2) format('woff2'); + unicode-range: + U+500d, U+5074, U+50cd, U+5175, U+52e2, U+5352, U+5354, U+53f2, U+5409, U+56fa, U+5a18, U+5b88, U+5bdd, U+5ca9, U+5f92, U+5fa9, U+60a9, U+623f, + U+6483, U+653f, U+666f, U+66ae, U+66f2, U+6a21, U+6b66, U+6bcd, U+6d5c, U+796d, U+7a4d, U+7aef, U+7b56, U+7b97, U+7c4d, U+7e04, U+7fa9, U+8377, + U+83dc, U+83ef, U+8535, U+8863, U+88cf, U+88dc, U+8907, U+8acb, U+90ce, U+91dd, U+ff0b, U+ff0d, U+ff19, U+ff65; } /* [104] */ @font-face { @@ -940,8 +1910,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.104.woff2) format('woff2'); - unicode-range: U+4e01, U+4e21, U+4e38, U+52a9, U+547d, U+592e, U+5931, U+5b63, U+5c40, U+5dde, U+5e78, U+5efa, U+5fa1, U+604b, U+6075, U+62c5, U+632f, U+6a19, U+6c0f, U+6c11, U+6c96, U+6e05, U+70ba, U+71b1, U+7387, U+7403, U+75c5, U+77ed, U+795d, U+7b54, U+7cbe, U+7d19, U+7fa4, U+8089, U+81f4, U+8208, U+8336, U+8457, U+8a33, U+8c4a, U+8ca0, U+8ca8, U+8cc0, U+9014, U+964d, U+9803, U+983c, U+98db, U+ff17, U+ff21; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.104.woff2) format('woff2'); + unicode-range: + U+4e01, U+4e21, U+4e38, U+52a9, U+547d, U+592e, U+5931, U+5b63, U+5c40, U+5dde, U+5e78, U+5efa, U+5fa1, U+604b, U+6075, U+62c5, U+632f, U+6a19, + U+6c0f, U+6c11, U+6c96, U+6e05, U+70ba, U+71b1, U+7387, U+7403, U+75c5, U+77ed, U+795d, U+7b54, U+7cbe, U+7d19, U+7fa4, U+8089, U+81f4, U+8208, + U+8336, U+8457, U+8a33, U+8c4a, U+8ca0, U+8ca8, U+8cc0, U+9014, U+964d, U+9803, U+983c, U+98db, U+ff17, U+ff21; } /* [105] */ @font-face { @@ -949,8 +1926,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.105.woff2) format('woff2'); - unicode-range: U+25, U+25a0, U+4e26, U+4f4e, U+5341, U+56f2, U+5bbf, U+5c45, U+5c55, U+5c5e, U+5dee, U+5e9c, U+5f7c, U+6255, U+627f, U+62bc, U+65cf, U+661f, U+666e, U+66dc, U+67fb, U+6975, U+6a4b, U+6b32, U+6df1, U+6e29, U+6fc0, U+738b, U+7686, U+7a76, U+7a81, U+7c73, U+7d75, U+7dd2, U+82e5, U+82f1, U+85ac, U+888b, U+899a, U+8a31, U+8a8c, U+8ab0, U+8b58, U+904a, U+9060, U+9280, U+95b2, U+984d, U+9ce5, U+ff18; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.105.woff2) format('woff2'); + unicode-range: + U+25, U+25a0, U+4e26, U+4f4e, U+5341, U+56f2, U+5bbf, U+5c45, U+5c55, U+5c5e, U+5dee, U+5e9c, U+5f7c, U+6255, U+627f, U+62bc, U+65cf, U+661f, + U+666e, U+66dc, U+67fb, U+6975, U+6a4b, U+6b32, U+6df1, U+6e29, U+6fc0, U+738b, U+7686, U+7a76, U+7a81, U+7c73, U+7d75, U+7dd2, U+82e5, U+82f1, + U+85ac, U+888b, U+899a, U+8a31, U+8a8c, U+8ab0, U+8b58, U+904a, U+9060, U+9280, U+95b2, U+984d, U+9ce5, U+ff18; } /* [106] */ @font-face { @@ -958,8 +1942,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.106.woff2) format('woff2'); - unicode-range: U+30f6, U+50ac, U+5178, U+51e6, U+5224, U+52dd, U+5883, U+5897, U+590f, U+5a5a, U+5bb3, U+5c65, U+5e03, U+5e2b, U+5e30, U+5eb7, U+6271, U+63f4, U+64ae, U+6574, U+672b, U+679a, U+6a29-6a2a, U+6ca2, U+6cc1, U+6d0b, U+713c, U+74b0, U+7981, U+7a0b, U+7bc0, U+7d1a, U+7d61, U+7fd2, U+822c, U+8996, U+89aa, U+8cac, U+8cbb, U+8d77, U+8def, U+9020, U+9152, U+9244, U+9662, U+967a, U+96e3, U+9759, U+ff16; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.106.woff2) format('woff2'); + unicode-range: + U+30f6, U+50ac, U+5178, U+51e6, U+5224, U+52dd, U+5883, U+5897, U+590f, U+5a5a, U+5bb3, U+5c65, U+5e03, U+5e2b, U+5e30, U+5eb7, U+6271, U+63f4, + U+64ae, U+6574, U+672b, U+679a, U+6a29-6a2a, U+6ca2, U+6cc1, U+6d0b, U+713c, U+74b0, U+7981, U+7a0b, U+7bc0, U+7d1a, U+7d61, U+7fd2, U+822c, + U+8996, U+89aa, U+8cac, U+8cbb, U+8d77, U+8def, U+9020, U+9152, U+9244, U+9662, U+967a, U+96e3, U+9759, U+ff16; } /* [107] */ @font-face { @@ -967,8 +1958,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.107.woff2) format('woff2'); - unicode-range: U+23, U+3c, U+2192, U+4e45, U+4efb, U+4f50, U+4f8b, U+4fc2, U+5024, U+5150, U+5272, U+5370, U+53bb, U+542b, U+56db, U+56e3, U+57ce, U+5bc4, U+5bcc, U+5f71, U+60aa, U+6238, U+6280, U+629c, U+6539, U+66ff, U+670d, U+677e-677f, U+6839, U+69cb, U+6b4c, U+6bb5, U+6e96, U+6f14, U+72ec, U+7389, U+7814, U+79cb, U+79d1, U+79fb, U+7a0e, U+7d0d, U+85e4, U+8d64, U+9632, U+96e2, U+9805, U+99ac, U+ff1e; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.107.woff2) format('woff2'); + unicode-range: + U+23, U+3c, U+2192, U+4e45, U+4efb, U+4f50, U+4f8b, U+4fc2, U+5024, U+5150, U+5272, U+5370, U+53bb, U+542b, U+56db, U+56e3, U+57ce, U+5bc4, + U+5bcc, U+5f71, U+60aa, U+6238, U+6280, U+629c, U+6539, U+66ff, U+670d, U+677e-677f, U+6839, U+69cb, U+6b4c, U+6bb5, U+6e96, U+6f14, U+72ec, + U+7389, U+7814, U+79cb, U+79d1, U+79fb, U+7a0e, U+7d0d, U+85e4, U+8d64, U+9632, U+96e2, U+9805, U+99ac, U+ff1e; } /* [108] */ @font-face { @@ -976,8 +1974,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.108.woff2) format('woff2'); - unicode-range: U+2605-2606, U+301c, U+4e57, U+4fee, U+5065, U+52df, U+533b, U+5357, U+57df, U+58eb, U+58f0, U+591c, U+592a-592b, U+5948, U+5b85, U+5d0e, U+5ea7, U+5ff5, U+6025, U+63a1, U+63a5, U+63db, U+643a, U+65bd, U+671d, U+68ee, U+6982, U+6b73, U+6bd4, U+6d88, U+7570, U+7b11, U+7d76, U+8077, U+8217, U+8c37, U+8c61, U+8cc7, U+8d85, U+901f, U+962a, U+9802, U+9806, U+9854, U+98f2, U+9928, U+99c5, U+9ed2; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.108.woff2) format('woff2'); + unicode-range: + U+2605-2606, U+301c, U+4e57, U+4fee, U+5065, U+52df, U+533b, U+5357, U+57df, U+58eb, U+58f0, U+591c, U+592a-592b, U+5948, U+5b85, U+5d0e, U+5ea7, + U+5ff5, U+6025, U+63a1, U+63a5, U+63db, U+643a, U+65bd, U+671d, U+68ee, U+6982, U+6b73, U+6bd4, U+6d88, U+7570, U+7b11, U+7d76, U+8077, U+8217, + U+8c37, U+8c61, U+8cc7, U+8d85, U+901f, U+962a, U+9802, U+9806, U+9854, U+98f2, U+9928, U+99c5, U+9ed2; } /* [109] */ @font-face { @@ -985,8 +1990,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.109.woff2) format('woff2'); - unicode-range: U+266a, U+4f11, U+533a, U+5343, U+534a, U+53cd, U+5404, U+56f3, U+5b57-5b58, U+5bae, U+5c4a, U+5e0c, U+5e2f, U+5eab, U+5f35, U+5f79, U+614b, U+6226, U+629e, U+65c5, U+6625, U+6751, U+6821, U+6b69, U+6b8b, U+6bce, U+6c42, U+706b, U+7c21, U+7cfb, U+805e, U+80b2, U+82b8, U+843d, U+8853, U+88c5, U+8a3c, U+8a66, U+8d8a, U+8fba, U+9069, U+91cf, U+9752, U+975e, U+9999, U+ff0f-ff10, U+ff14-ff15; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.109.woff2) format('woff2'); + unicode-range: + U+266a, U+4f11, U+533a, U+5343, U+534a, U+53cd, U+5404, U+56f3, U+5b57-5b58, U+5bae, U+5c4a, U+5e0c, U+5e2f, U+5eab, U+5f35, U+5f79, U+614b, + U+6226, U+629e, U+65c5, U+6625, U+6751, U+6821, U+6b69, U+6b8b, U+6bce, U+6c42, U+706b, U+7c21, U+7cfb, U+805e, U+80b2, U+82b8, U+843d, U+8853, + U+88c5, U+8a3c, U+8a66, U+8d8a, U+8fba, U+9069, U+91cf, U+9752, U+975e, U+9999, U+ff0f-ff10, U+ff14-ff15; } /* [110] */ @font-face { @@ -994,8 +2006,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.110.woff2) format('woff2'); - unicode-range: U+40, U+4e86, U+4e95, U+4f01, U+4f1d, U+4fbf, U+5099, U+5171, U+5177, U+53cb, U+53ce, U+53f0, U+5668, U+5712, U+5ba4, U+5ca1, U+5f85, U+60f3, U+653e, U+65ad, U+65e9, U+6620, U+6750, U+6761, U+6b62, U+6b74, U+6e08, U+6e80, U+7248, U+7531, U+7533, U+753a, U+77f3, U+798f, U+7f6e, U+8449, U+88fd, U+89b3, U+8a55, U+8ac7, U+8b77, U+8db3, U+8efd, U+8fd4, U+9031-9032, U+9580, U+9589, U+96d1, U+985e; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.110.woff2) format('woff2'); + unicode-range: + U+40, U+4e86, U+4e95, U+4f01, U+4f1d, U+4fbf, U+5099, U+5171, U+5177, U+53cb, U+53ce, U+53f0, U+5668, U+5712, U+5ba4, U+5ca1, U+5f85, U+60f3, + U+653e, U+65ad, U+65e9, U+6620, U+6750, U+6761, U+6b62, U+6b74, U+6e08, U+6e80, U+7248, U+7531, U+7533, U+753a, U+77f3, U+798f, U+7f6e, U+8449, + U+88fd, U+89b3, U+8a55, U+8ac7, U+8b77, U+8db3, U+8efd, U+8fd4, U+9031-9032, U+9580, U+9589, U+96d1, U+985e; } /* [111] */ @font-face { @@ -1003,8 +2022,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.111.woff2) format('woff2'); - unicode-range: U+2b, U+d7, U+300e-300f, U+4e07, U+4e8c, U+512a, U+5149, U+518d, U+5236, U+52b9, U+52d9, U+5468, U+578b, U+57fa, U+5b8c, U+5ba2, U+5c02, U+5de5, U+5f37, U+5f62, U+623b, U+63d0, U+652f, U+672a, U+6848, U+6d41, U+7136, U+7537, U+754c, U+76f4, U+79c1, U+7ba1, U+7d44, U+7d4c, U+7dcf, U+7dda, U+7de8, U+82b1, U+897f, U+8ca9, U+8cfc, U+904e, U+9664, U+982d, U+9858, U+98a8, U+9a13, U+ff13, U+ff5c; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.111.woff2) format('woff2'); + unicode-range: + U+2b, U+d7, U+300e-300f, U+4e07, U+4e8c, U+512a, U+5149, U+518d, U+5236, U+52b9, U+52d9, U+5468, U+578b, U+57fa, U+5b8c, U+5ba2, U+5c02, U+5de5, + U+5f37, U+5f62, U+623b, U+63d0, U+652f, U+672a, U+6848, U+6d41, U+7136, U+7537, U+754c, U+76f4, U+79c1, U+7ba1, U+7d44, U+7d4c, U+7dcf, U+7dda, + U+7de8, U+82b1, U+897f, U+8ca9, U+8cfc, U+904e, U+9664, U+982d, U+9858, U+98a8, U+9a13, U+ff13, U+ff5c; } /* [112] */ @font-face { @@ -1012,8 +2038,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.112.woff2) format('woff2'); - unicode-range: U+4e16, U+4e3b, U+4ea4, U+4ee4, U+4f4d, U+4f4f, U+4f55, U+4f9b, U+5317, U+5358, U+53c2, U+53e4, U+548c, U+571f, U+59cb, U+5cf6, U+5e38, U+63a2, U+63b2, U+6559, U+662d, U+679c, U+6c7a, U+72b6, U+7523, U+767d, U+770c, U+7a2e, U+7a3f, U+7a7a, U+7b2c, U+7b49, U+7d20, U+7d42, U+8003, U+8272, U+8a08, U+8aac, U+8cb7, U+8eab, U+8ee2, U+9054-9055, U+90fd, U+914d, U+91cd, U+969b, U+97f3, U+984c, U+ff06; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.112.woff2) format('woff2'); + unicode-range: + U+4e16, U+4e3b, U+4ea4, U+4ee4, U+4f4d, U+4f4f, U+4f55, U+4f9b, U+5317, U+5358, U+53c2, U+53e4, U+548c, U+571f, U+59cb, U+5cf6, U+5e38, U+63a2, + U+63b2, U+6559, U+662d, U+679c, U+6c7a, U+72b6, U+7523, U+767d, U+770c, U+7a2e, U+7a3f, U+7a7a, U+7b2c, U+7b49, U+7d20, U+7d42, U+8003, U+8272, + U+8a08, U+8aac, U+8cb7, U+8eab, U+8ee2, U+9054-9055, U+90fd, U+914d, U+91cd, U+969b, U+97f3, U+984c, U+ff06; } /* [113] */ @font-face { @@ -1021,8 +2054,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.113.woff2) format('woff2'); - unicode-range: U+26, U+5f, U+2026, U+203b, U+4e09, U+4eac, U+4ed5, U+4fa1, U+5143, U+5199, U+5207, U+539f, U+53e3, U+53f7, U+5411, U+5473, U+5546, U+55b6, U+5929, U+597d, U+5bb9, U+5c11, U+5c4b, U+5ddd, U+5f97, U+5fc5, U+6295, U+6301, U+6307, U+671b, U+76f8, U+78ba, U+795e, U+7d30, U+7d39, U+7d9a, U+89e3, U+8a00, U+8a73, U+8a8d, U+8a9e, U+8aad, U+8abf, U+8cea, U+8eca, U+8ffd, U+904b, U+9650, U+ff11-ff12; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.113.woff2) format('woff2'); + unicode-range: + U+26, U+5f, U+2026, U+203b, U+4e09, U+4eac, U+4ed5, U+4fa1, U+5143, U+5199, U+5207, U+539f, U+53e3, U+53f7, U+5411, U+5473, U+5546, U+55b6, + U+5929, U+597d, U+5bb9, U+5c11, U+5c4b, U+5ddd, U+5f97, U+5fc5, U+6295, U+6301, U+6307, U+671b, U+76f8, U+78ba, U+795e, U+7d30, U+7d39, U+7d9a, + U+89e3, U+8a00, U+8a73, U+8a8d, U+8a9e, U+8aad, U+8abf, U+8cea, U+8eca, U+8ffd, U+904b, U+9650, U+ff11-ff12; } /* [114] */ @font-face { @@ -1030,8 +2070,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.114.woff2) format('woff2'); - unicode-range: U+3e, U+3005, U+4e0d, U+4e88, U+4ecb, U+4ee3, U+4ef6, U+4fdd, U+4fe1, U+500b, U+50cf, U+5186, U+5316, U+53d7, U+540c, U+544a, U+54e1, U+5728, U+58f2, U+5973, U+5b89, U+5c71, U+5e02, U+5e97, U+5f15, U+5fc3, U+5fdc, U+601d, U+611b, U+611f, U+671f, U+6728, U+6765, U+683c, U+6b21, U+6ce8, U+6d3b, U+6d77, U+7530, U+7740, U+7acb, U+7d50, U+826f, U+8f09, U+8fbc, U+9001, U+9053, U+91ce, U+9762, U+98df; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.114.woff2) format('woff2'); + unicode-range: + U+3e, U+3005, U+4e0d, U+4e88, U+4ecb, U+4ee3, U+4ef6, U+4fdd, U+4fe1, U+500b, U+50cf, U+5186, U+5316, U+53d7, U+540c, U+544a, U+54e1, U+5728, + U+58f2, U+5973, U+5b89, U+5c71, U+5e02, U+5e97, U+5f15, U+5fc3, U+5fdc, U+601d, U+611b, U+611f, U+671f, U+6728, U+6765, U+683c, U+6b21, U+6ce8, + U+6d3b, U+6d77, U+7530, U+7740, U+7acb, U+7d50, U+826f, U+8f09, U+8fbc, U+9001, U+9053, U+91ce, U+9762, U+98df; } /* [115] */ @font-face { @@ -1039,8 +2086,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.115.woff2) format('woff2'); - unicode-range: U+7c, U+3080, U+4ee5, U+5148, U+516c, U+521d, U+5225, U+529b, U+52a0, U+53ef, U+56de, U+56fd, U+5909, U+591a, U+5b66, U+5b9f, U+5bb6, U+5bfe, U+5e73, U+5e83, U+5ea6, U+5f53, U+6027, U+610f, U+6210, U+6240, U+660e, U+66f4, U+66f8, U+6709, U+6771, U+697d, U+69d8, U+6a5f, U+6c34, U+6cbb, U+73fe, U+756a, U+7684, U+771f, U+793a, U+7f8e, U+898f, U+8a2d, U+8a71, U+8fd1, U+9078, U+9577, U+96fb, U+ff5e; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.115.woff2) format('woff2'); + unicode-range: + U+7c, U+3080, U+4ee5, U+5148, U+516c, U+521d, U+5225, U+529b, U+52a0, U+53ef, U+56de, U+56fd, U+5909, U+591a, U+5b66, U+5b9f, U+5bb6, U+5bfe, + U+5e73, U+5e83, U+5ea6, U+5f53, U+6027, U+610f, U+6210, U+6240, U+660e, U+66f4, U+66f8, U+6709, U+6771, U+697d, U+69d8, U+6a5f, U+6c34, U+6cbb, + U+73fe, U+756a, U+7684, U+771f, U+793a, U+7f8e, U+898f, U+8a2d, U+8a71, U+8fd1, U+9078, U+9577, U+96fb, U+ff5e; } /* [116] */ @font-face { @@ -1048,8 +2102,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.116.woff2) format('woff2'); - unicode-range: U+a9, U+3010-3011, U+30e2, U+4e0b, U+4eca, U+4ed6, U+4ed8, U+4f53, U+4f5c, U+4f7f, U+53d6, U+540d, U+54c1, U+5730, U+5916, U+5b50, U+5c0f, U+5f8c, U+624b, U+6570, U+6587, U+6599, U+691c, U+696d, U+6cd5, U+7269, U+7279, U+7406, U+767a-767b, U+77e5, U+7d04, U+7d22, U+8005, U+80fd, U+81ea, U+8868, U+8981, U+89a7, U+901a, U+9023, U+90e8, U+91d1, U+9332, U+958b, U+96c6, U+9ad8, U+ff1a, U+ff1f; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.116.woff2) format('woff2'); + unicode-range: + U+a9, U+3010-3011, U+30e2, U+4e0b, U+4eca, U+4ed6, U+4ed8, U+4f53, U+4f5c, U+4f7f, U+53d6, U+540d, U+54c1, U+5730, U+5916, U+5b50, U+5c0f, U+5f8c, + U+624b, U+6570, U+6587, U+6599, U+691c, U+696d, U+6cd5, U+7269, U+7279, U+7406, U+767a-767b, U+77e5, U+7d04, U+7d22, U+8005, U+80fd, U+81ea, + U+8868, U+8981, U+89a7, U+901a, U+9023, U+90e8, U+91d1, U+9332, U+958b, U+96c6, U+9ad8, U+ff1a, U+ff1f; } /* [117] */ @font-face { @@ -1057,8 +2118,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.117.woff2) format('woff2'); - unicode-range: U+4e, U+a0, U+3000, U+300c-300d, U+4e00, U+4e0a, U+4e2d, U+4e8b, U+4eba, U+4f1a, U+5165, U+5168, U+5185, U+51fa, U+5206, U+5229, U+524d, U+52d5, U+5408, U+554f, U+5831, U+5834, U+5927, U+5b9a, U+5e74, U+5f0f, U+60c5, U+65b0, U+65b9, U+6642, U+6700, U+672c, U+682a, U+6b63, U+6c17, U+7121, U+751f, U+7528, U+753b, U+76ee, U+793e, U+884c, U+898b, U+8a18, U+9593, U+95a2, U+ff01, U+ff08-ff09; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.117.woff2) format('woff2'); + unicode-range: + U+4e, U+a0, U+3000, U+300c-300d, U+4e00, U+4e0a, U+4e2d, U+4e8b, U+4eba, U+4f1a, U+5165, U+5168, U+5185, U+51fa, U+5206, U+5229, U+524d, U+52d5, + U+5408, U+554f, U+5831, U+5834, U+5927, U+5b9a, U+5e74, U+5f0f, U+60c5, U+65b0, U+65b9, U+6642, U+6700, U+672c, U+682a, U+6b63, U+6c17, U+7121, + U+751f, U+7528, U+753b, U+76ee, U+793e, U+884c, U+898b, U+8a18, U+9593, U+95a2, U+ff01, U+ff08-ff09; } /* [118] */ @font-face { @@ -1066,8 +2134,15 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.118.woff2) format('woff2'); - unicode-range: U+21-22, U+27-2a, U+2c-3b, U+3f, U+41-4d, U+4f-5d, U+61-7b, U+7d, U+ab, U+ae, U+b2-b3, U+b7, U+bb, U+c9, U+cd, U+d6, U+d8, U+dc, U+e0-e5, U+e7-ed, U+ef, U+f1-f4, U+f6, U+f8, U+fa, U+fc-fd, U+103, U+14d, U+1b0, U+300-301, U+1ebf, U+1ec7, U+2013-2014, U+201c-201d, U+2039-203a, U+203c, U+2048-2049, U+2113, U+2122, U+65e5, U+6708, U+70b9; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.118.woff2) format('woff2'); + unicode-range: + U+21-22, U+27-2a, U+2c-3b, U+3f, U+41-4d, U+4f-5d, U+61-7b, U+7d, U+ab, U+ae, U+b2-b3, U+b7, U+bb, U+c9, U+cd, U+d6, U+d8, U+dc, U+e0-e5, U+e7-ed, + U+ef, U+f1-f4, U+f6, U+f8, U+fa, U+fc-fd, U+103, U+14d, U+1b0, U+300-301, U+1ebf, U+1ec7, U+2013-2014, U+201c-201d, U+2039-203a, U+203c, + U+2048-2049, U+2113, U+2122, U+65e5, U+6708, U+70b9; } /* [119] */ @font-face { @@ -1075,8 +2150,14 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Noto Sans Japanese Regular'), local('NotoSansJapanese-Regular'), url("../font/NotoSansJP-Regular.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.119.woff2) format('woff2'); - unicode-range: U+20, U+2027, U+3001-3002, U+3041-307f, U+3081-308f, U+3091-3093, U+3099-309a, U+309d-309e, U+30a1-30e1, U+30e3-30ed, U+30ef-30f0, U+30f2-30f4, U+30fb-30fe, U+ff0c, U+ff0e; + src: + local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('../font/NotoSansJP-Regular.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.119.woff2) format('woff2'); + unicode-range: + U+20, U+2027, U+3001-3002, U+3041-307f, U+3081-308f, U+3091-3093, U+3099-309a, U+309d-309e, U+30a1-30e1, U+30e3-30ed, U+30ef-30f0, U+30f2-30f4, + U+30fb-30fe, U+ff0c, U+ff0e; } /* [0] */ @font-face { @@ -1084,8 +2165,26 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.0.woff2) format('woff2'); - unicode-range: U+25ee8, U+25f23, U+25f5c, U+25fd4, U+25fe0, U+25ffb, U+2600c, U+26017, U+26060, U+260ed, U+26222, U+2626a, U+26270, U+26286, U+2634c, U+26402, U+2667e, U+266b0, U+2671d, U+268dd, U+268ea, U+26951, U+2696f, U+26999, U+269dd, U+26a1e, U+26a58, U+26a8c, U+26ab7, U+26aff, U+26c29, U+26c73, U+26c9e, U+26cdd, U+26e40, U+26e65, U+26f94, U+26ff6-26ff8, U+270f4, U+2710d, U+27139, U+273da-273db, U+273fe, U+27410, U+27449, U+27614-27615, U+27631, U+27684, U+27693, U+2770e, U+27723, U+27752, U+278b2, U+27985, U+279b4, U+27a84, U+27bb3, U+27bbe, U+27bc7, U+27c3c, U+27cb8, U+27d73, U+27da0, U+27e10, U+27eaf, U+27fb7, U+2808a, U+280bb, U+28277, U+28282, U+282f3, U+283cd, U+2840c, U+28455, U+284dc, U+2856b, U+285c8-285c9, U+286d7, U+286fa, U+28946, U+28949, U+2896b, U+28987-28988, U+289ba-289bb, U+28a1e, U+28a29, U+28a43, U+28a71, U+28a99, U+28acd, U+28add, U+28ae4, U+28bc1, U+28bef, U+28cdd, U+28d10, U+28d71, U+28dfb, U+28e0f, U+28e17, U+28e1f, U+28e36, U+28e89, U+28eeb, U+28ef6, U+28f32, U+28ff8, U+292a0, U+292b1, U+29490, U+295cf, U+2967f, U+296f0, U+29719, U+29750, U+29810, U+298c6, U+29a72, U+29d4b, U+29ddb, U+29e15, U+29e3d, U+29e49, U+29e8a, U+29ec4, U+29edb, U+29ee9, U+29fce, U+29fd7, U+2a01a, U+2a02f, U+2a082, U+2a0f9, U+2a190, U+2a2b2, U+2a38c, U+2a437, U+2a5f1, U+2a602, U+2a61a, U+2a6b2, U+2a9e6, U+2b746, U+2b751, U+2b753, U+2b75a, U+2b75c, U+2b765, U+2b776-2b777, U+2b77c, U+2b782, U+2b789, U+2b78b, U+2b78e, U+2b794, U+2b7ac, U+2b7af, U+2b7bd, U+2b7c9, U+2b7cf, U+2b7d2, U+2b7d8, U+2b7f0, U+2b80d, U+2b817, U+2b81a, U+2d544, U+2e278, U+2e569, U+2e6ea, U+2f804, U+2f80f, U+2f815, U+2f818, U+2f81a, U+2f822, U+2f828, U+2f82c, U+2f833, U+2f83f, U+2f846, U+2f852, U+2f862, U+2f86d, U+2f873, U+2f877, U+2f884, U+2f899-2f89a, U+2f8a6, U+2f8ac, U+2f8b2, U+2f8b6, U+2f8d3, U+2f8db-2f8dc, U+2f8e1, U+2f8e5, U+2f8ea, U+2f8ed, U+2f8fc, U+2f903, U+2f90b, U+2f90f, U+2f91a, U+2f920-2f921, U+2f945, U+2f947, U+2f96c, U+2f995, U+2f9d0, U+2f9de-2f9df, U+2f9f4; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.0.woff2) format('woff2'); + unicode-range: + U+25ee8, U+25f23, U+25f5c, U+25fd4, U+25fe0, U+25ffb, U+2600c, U+26017, U+26060, U+260ed, U+26222, U+2626a, U+26270, U+26286, U+2634c, U+26402, + U+2667e, U+266b0, U+2671d, U+268dd, U+268ea, U+26951, U+2696f, U+26999, U+269dd, U+26a1e, U+26a58, U+26a8c, U+26ab7, U+26aff, U+26c29, U+26c73, + U+26c9e, U+26cdd, U+26e40, U+26e65, U+26f94, U+26ff6-26ff8, U+270f4, U+2710d, U+27139, U+273da-273db, U+273fe, U+27410, U+27449, U+27614-27615, + U+27631, U+27684, U+27693, U+2770e, U+27723, U+27752, U+278b2, U+27985, U+279b4, U+27a84, U+27bb3, U+27bbe, U+27bc7, U+27c3c, U+27cb8, U+27d73, + U+27da0, U+27e10, U+27eaf, U+27fb7, U+2808a, U+280bb, U+28277, U+28282, U+282f3, U+283cd, U+2840c, U+28455, U+284dc, U+2856b, U+285c8-285c9, + U+286d7, U+286fa, U+28946, U+28949, U+2896b, U+28987-28988, U+289ba-289bb, U+28a1e, U+28a29, U+28a43, U+28a71, U+28a99, U+28acd, U+28add, U+28ae4, + U+28bc1, U+28bef, U+28cdd, U+28d10, U+28d71, U+28dfb, U+28e0f, U+28e17, U+28e1f, U+28e36, U+28e89, U+28eeb, U+28ef6, U+28f32, U+28ff8, U+292a0, + U+292b1, U+29490, U+295cf, U+2967f, U+296f0, U+29719, U+29750, U+29810, U+298c6, U+29a72, U+29d4b, U+29ddb, U+29e15, U+29e3d, U+29e49, U+29e8a, + U+29ec4, U+29edb, U+29ee9, U+29fce, U+29fd7, U+2a01a, U+2a02f, U+2a082, U+2a0f9, U+2a190, U+2a2b2, U+2a38c, U+2a437, U+2a5f1, U+2a602, U+2a61a, + U+2a6b2, U+2a9e6, U+2b746, U+2b751, U+2b753, U+2b75a, U+2b75c, U+2b765, U+2b776-2b777, U+2b77c, U+2b782, U+2b789, U+2b78b, U+2b78e, U+2b794, + U+2b7ac, U+2b7af, U+2b7bd, U+2b7c9, U+2b7cf, U+2b7d2, U+2b7d8, U+2b7f0, U+2b80d, U+2b817, U+2b81a, U+2d544, U+2e278, U+2e569, U+2e6ea, U+2f804, + U+2f80f, U+2f815, U+2f818, U+2f81a, U+2f822, U+2f828, U+2f82c, U+2f833, U+2f83f, U+2f846, U+2f852, U+2f862, U+2f86d, U+2f873, U+2f877, U+2f884, + U+2f899-2f89a, U+2f8a6, U+2f8ac, U+2f8b2, U+2f8b6, U+2f8d3, U+2f8db-2f8dc, U+2f8e1, U+2f8e5, U+2f8ea, U+2f8ed, U+2f8fc, U+2f903, U+2f90b, U+2f90f, + U+2f91a, U+2f920-2f921, U+2f945, U+2f947, U+2f96c, U+2f995, U+2f9d0, U+2f9de-2f9df, U+2f9f4; } /* [1] */ @font-face { @@ -1093,8 +2192,25 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.1.woff2) format('woff2'); - unicode-range: U+1f235-1f23b, U+1f240-1f248, U+1f250-1f251, U+2000b, U+20089-2008a, U+200a2, U+200a4, U+200b0, U+200f5, U+20158, U+201a2, U+20213, U+2032b, U+20371, U+20381, U+203f9, U+2044a, U+20509, U+2053f, U+205b1, U+205d6, U+20611, U+20628, U+206ec, U+2074f, U+207c8, U+20807, U+2083a, U+208b9, U+2090e, U+2097c, U+20984, U+2099d, U+20a64, U+20ad3, U+20b1d, U+20b9f, U+20bb7, U+20d45, U+20d58, U+20de1, U+20e64, U+20e6d, U+20e95, U+20f5f, U+21201, U+2123d, U+21255, U+21274, U+2127b, U+212d7, U+212e4, U+212fd, U+2131b, U+21336, U+21344, U+213c4, U+2146d-2146e, U+215d7, U+21647, U+216b4, U+21706, U+21742, U+218bd, U+219c3, U+21a1a, U+21c56, U+21d2d, U+21d45, U+21d62, U+21d78, U+21d92, U+21d9c, U+21da1, U+21db7, U+21de0, U+21e33-21e34, U+21f1e, U+21f76, U+21ffa, U+2217b, U+22218, U+2231e, U+223ad, U+22609, U+226f3, U+2285b, U+228ab, U+2298f, U+22ab8, U+22b46, U+22b4f-22b50, U+22ba6, U+22c1d, U+22c24, U+22de1, U+22e42, U+22feb, U+231b6, U+231c3-231c4, U+231f5, U+23372, U+233cc, U+233d0, U+233d2-233d3, U+233d5, U+233da, U+233df, U+233e4, U+233fe, U+2344a-2344b, U+23451, U+23465, U+234e4, U+2355a, U+23594, U+235c4, U+23638-2363a, U+23647, U+2370c, U+2371c, U+2373f, U+23763-23764, U+237e7, U+237f1, U+237ff, U+23824, U+2383d, U+23a98, U+23c7f, U+23cbe, U+23cfe, U+23d00, U+23d0e, U+23d40, U+23dd3, U+23df9-23dfa, U+23f7e, U+2404b, U+24096, U+24103, U+241c6, U+241fe, U+242ee, U+243bc, U+243d0, U+24629, U+246a5, U+247f1, U+24896, U+248e9, U+24a4d, U+24b56, U+24b6f, U+24c16, U+24d14, U+24e04, U+24e0e, U+24e37, U+24e6a, U+24e8b, U+24ff2, U+2504a, U+25055, U+25122, U+251a9, U+251cd, U+251e5, U+2521e, U+2524c, U+2542e, U+2548e, U+254d9, U+2550e, U+255a7, U+2567f, U+25771, U+257a9, U+257b4, U+25874, U+259c4, U+259cc, U+259d4, U+25ad7, U+25ae3-25ae4, U+25af1, U+25bb2, U+25c4b, U+25c64, U+25da1, U+25e2e, U+25e56, U+25e62, U+25e65, U+25ec2, U+25ed8; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.1.woff2) format('woff2'); + unicode-range: + U+1f235-1f23b, U+1f240-1f248, U+1f250-1f251, U+2000b, U+20089-2008a, U+200a2, U+200a4, U+200b0, U+200f5, U+20158, U+201a2, U+20213, U+2032b, + U+20371, U+20381, U+203f9, U+2044a, U+20509, U+2053f, U+205b1, U+205d6, U+20611, U+20628, U+206ec, U+2074f, U+207c8, U+20807, U+2083a, U+208b9, + U+2090e, U+2097c, U+20984, U+2099d, U+20a64, U+20ad3, U+20b1d, U+20b9f, U+20bb7, U+20d45, U+20d58, U+20de1, U+20e64, U+20e6d, U+20e95, U+20f5f, + U+21201, U+2123d, U+21255, U+21274, U+2127b, U+212d7, U+212e4, U+212fd, U+2131b, U+21336, U+21344, U+213c4, U+2146d-2146e, U+215d7, U+21647, + U+216b4, U+21706, U+21742, U+218bd, U+219c3, U+21a1a, U+21c56, U+21d2d, U+21d45, U+21d62, U+21d78, U+21d92, U+21d9c, U+21da1, U+21db7, U+21de0, + U+21e33-21e34, U+21f1e, U+21f76, U+21ffa, U+2217b, U+22218, U+2231e, U+223ad, U+22609, U+226f3, U+2285b, U+228ab, U+2298f, U+22ab8, U+22b46, + U+22b4f-22b50, U+22ba6, U+22c1d, U+22c24, U+22de1, U+22e42, U+22feb, U+231b6, U+231c3-231c4, U+231f5, U+23372, U+233cc, U+233d0, U+233d2-233d3, + U+233d5, U+233da, U+233df, U+233e4, U+233fe, U+2344a-2344b, U+23451, U+23465, U+234e4, U+2355a, U+23594, U+235c4, U+23638-2363a, U+23647, U+2370c, + U+2371c, U+2373f, U+23763-23764, U+237e7, U+237f1, U+237ff, U+23824, U+2383d, U+23a98, U+23c7f, U+23cbe, U+23cfe, U+23d00, U+23d0e, U+23d40, + U+23dd3, U+23df9-23dfa, U+23f7e, U+2404b, U+24096, U+24103, U+241c6, U+241fe, U+242ee, U+243bc, U+243d0, U+24629, U+246a5, U+247f1, U+24896, + U+248e9, U+24a4d, U+24b56, U+24b6f, U+24c16, U+24d14, U+24e04, U+24e0e, U+24e37, U+24e6a, U+24e8b, U+24ff2, U+2504a, U+25055, U+25122, U+251a9, + U+251cd, U+251e5, U+2521e, U+2524c, U+2542e, U+2548e, U+254d9, U+2550e, U+255a7, U+2567f, U+25771, U+257a9, U+257b4, U+25874, U+259c4, U+259cc, + U+259d4, U+25ad7, U+25ae3-25ae4, U+25af1, U+25bb2, U+25c4b, U+25c64, U+25da1, U+25e2e, U+25e56, U+25e62, U+25e65, U+25ec2, U+25ed8; } /* [2] */ @font-face { @@ -1102,8 +2218,13 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.2.woff2) format('woff2'); - unicode-range: U+ffd7, U+ffda-ffdc, U+ffe0-ffe2, U+ffe4, U+ffe6, U+ffe8-ffee, U+1f100-1f10c, U+1f110-1f16c, U+1f170-1f1ac, U+1f200-1f202, U+1f210-1f234; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.2.woff2) format('woff2'); + unicode-range: + U+ffd7, U+ffda-ffdc, U+ffe0-ffe2, U+ffe4, U+ffe6, U+ffe8-ffee, U+1f100-1f10c, U+1f110-1f16c, U+1f170-1f1ac, U+1f200-1f202, U+1f210-1f234; } /* [3] */ @font-face { @@ -1111,8 +2232,14 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.3.woff2) format('woff2'); - unicode-range: U+fa10, U+fa12-fa6d, U+fb00-fb04, U+fe10-fe19, U+fe30-fe42, U+fe44-fe52, U+fe54-fe66, U+fe68-fe6b, U+ff02, U+ff04, U+ff07, U+ff51, U+ff5b, U+ff5d, U+ff5f-ff60, U+ff66, U+ff69, U+ff87, U+ffa1-ffbe, U+ffc2-ffc7, U+ffca-ffcf, U+ffd2-ffd6; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.3.woff2) format('woff2'); + unicode-range: + U+fa10, U+fa12-fa6d, U+fb00-fb04, U+fe10-fe19, U+fe30-fe42, U+fe44-fe52, U+fe54-fe66, U+fe68-fe6b, U+ff02, U+ff04, U+ff07, U+ff51, U+ff5b, U+ff5d, + U+ff5f-ff60, U+ff66, U+ff69, U+ff87, U+ffa1-ffbe, U+ffc2-ffc7, U+ffca-ffcf, U+ffd2-ffd6; } /* [4] */ @font-face { @@ -1120,7 +2247,11 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.4.woff2) format('woff2'); + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.4.woff2) format('woff2'); unicode-range: U+f92d-f959, U+f95b-f9f2, U+f9f4-fa0b, U+fa0e-fa0f; } /* [5] */ @@ -1129,8 +2260,18 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.5.woff2) format('woff2'); - unicode-range: U+9e8b-9e8c, U+9e8e-9e8f, U+9e91-9e92, U+9e95-9e96, U+9e98, U+9e9b, U+9e9d-9e9e, U+9ea4-9ea5, U+9ea8-9eaa, U+9eac-9eb0, U+9eb3-9eb5, U+9eb8, U+9ebc-9ebf, U+9ec3, U+9ec6, U+9ec8, U+9ecb-9ecd, U+9ecf-9ed1, U+9ed4-9ed5, U+9ed8, U+9edb-9ee0, U+9ee4-9ee5, U+9ee7-9ee8, U+9eec-9ef2, U+9ef4-9ef9, U+9efb-9eff, U+9f02-9f03, U+9f07-9f09, U+9f0e-9f12, U+9f14-9f17, U+9f19-9f1b, U+9f1f-9f22, U+9f26, U+9f2a-9f2c, U+9f2f, U+9f31-9f32, U+9f34, U+9f37, U+9f39-9f3a, U+9f3c-9f3f, U+9f41, U+9f43-9f47, U+9f4a, U+9f4e-9f50, U+9f52-9f58, U+9f5a, U+9f5d-9f61, U+9f63, U+9f66-9f6a, U+9f6c-9f73, U+9f75-9f77, U+9f7a, U+9f7d, U+9f7f, U+9f8f-9f92, U+9f94-9f97, U+9f99, U+9f9c-9fa3, U+9fa5, U+9fb4, U+9fbc-9fc2, U+9fc4, U+9fc6, U+9fcc, U+f900-f92c; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.5.woff2) format('woff2'); + unicode-range: + U+9e8b-9e8c, U+9e8e-9e8f, U+9e91-9e92, U+9e95-9e96, U+9e98, U+9e9b, U+9e9d-9e9e, U+9ea4-9ea5, U+9ea8-9eaa, U+9eac-9eb0, U+9eb3-9eb5, U+9eb8, + U+9ebc-9ebf, U+9ec3, U+9ec6, U+9ec8, U+9ecb-9ecd, U+9ecf-9ed1, U+9ed4-9ed5, U+9ed8, U+9edb-9ee0, U+9ee4-9ee5, U+9ee7-9ee8, U+9eec-9ef2, + U+9ef4-9ef9, U+9efb-9eff, U+9f02-9f03, U+9f07-9f09, U+9f0e-9f12, U+9f14-9f17, U+9f19-9f1b, U+9f1f-9f22, U+9f26, U+9f2a-9f2c, U+9f2f, U+9f31-9f32, + U+9f34, U+9f37, U+9f39-9f3a, U+9f3c-9f3f, U+9f41, U+9f43-9f47, U+9f4a, U+9f4e-9f50, U+9f52-9f58, U+9f5a, U+9f5d-9f61, U+9f63, U+9f66-9f6a, + U+9f6c-9f73, U+9f75-9f77, U+9f7a, U+9f7d, U+9f7f, U+9f8f-9f92, U+9f94-9f97, U+9f99, U+9f9c-9fa3, U+9fa5, U+9fb4, U+9fbc-9fc2, U+9fc4, U+9fc6, + U+9fcc, U+f900-f92c; } /* [6] */ @font-face { @@ -1138,8 +2279,19 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.6.woff2) format('woff2'); - unicode-range: U+9c3e, U+9c41, U+9c43-9c4a, U+9c4e-9c50, U+9c52-9c54, U+9c56, U+9c58, U+9c5a-9c61, U+9c63, U+9c65, U+9c67-9c6b, U+9c6d-9c6e, U+9c70, U+9c72, U+9c75-9c78, U+9c7a-9c7c, U+9ce6-9ce7, U+9ceb-9cec, U+9cf0, U+9cf2, U+9cf6-9cf7, U+9cf9, U+9d02-9d03, U+9d06-9d09, U+9d0b, U+9d0e, U+9d11-9d12, U+9d15, U+9d17-9d18, U+9d1b-9d1f, U+9d23, U+9d26, U+9d2a-9d2c, U+9d2f-9d30, U+9d32-9d34, U+9d3a, U+9d3c-9d3f, U+9d41-9d48, U+9d4a, U+9d50-9d54, U+9d59, U+9d5d-9d65, U+9d69-9d6c, U+9d6f-9d70, U+9d72-9d73, U+9d76-9d77, U+9d7a-9d7c, U+9d7e, U+9d83-9d84, U+9d86-9d87, U+9d89-9d8a, U+9d8d-9d8e, U+9d92-9d93, U+9d95-9d9a, U+9da1, U+9da4, U+9da9-9dac, U+9dae, U+9db1-9db2, U+9db5, U+9db8-9dbd, U+9dbf-9dc4, U+9dc6-9dc7, U+9dc9-9dca, U+9dcf, U+9dd3-9dd7, U+9dd9-9dda, U+9dde-9de0, U+9de3, U+9de5-9de7, U+9de9, U+9deb, U+9ded-9df0, U+9df3-9df4, U+9df8, U+9dfd-9dfe, U+9e02, U+9e07, U+9e0a, U+9e0d-9e0e, U+9e10-9e12, U+9e15-9e16, U+9e19-9e1f, U+9e75, U+9e79-9e7d, U+9e80-9e85, U+9e87-9e88; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.6.woff2) format('woff2'); + unicode-range: + U+9c3e, U+9c41, U+9c43-9c4a, U+9c4e-9c50, U+9c52-9c54, U+9c56, U+9c58, U+9c5a-9c61, U+9c63, U+9c65, U+9c67-9c6b, U+9c6d-9c6e, U+9c70, U+9c72, + U+9c75-9c78, U+9c7a-9c7c, U+9ce6-9ce7, U+9ceb-9cec, U+9cf0, U+9cf2, U+9cf6-9cf7, U+9cf9, U+9d02-9d03, U+9d06-9d09, U+9d0b, U+9d0e, U+9d11-9d12, + U+9d15, U+9d17-9d18, U+9d1b-9d1f, U+9d23, U+9d26, U+9d2a-9d2c, U+9d2f-9d30, U+9d32-9d34, U+9d3a, U+9d3c-9d3f, U+9d41-9d48, U+9d4a, U+9d50-9d54, + U+9d59, U+9d5d-9d65, U+9d69-9d6c, U+9d6f-9d70, U+9d72-9d73, U+9d76-9d77, U+9d7a-9d7c, U+9d7e, U+9d83-9d84, U+9d86-9d87, U+9d89-9d8a, U+9d8d-9d8e, + U+9d92-9d93, U+9d95-9d9a, U+9da1, U+9da4, U+9da9-9dac, U+9dae, U+9db1-9db2, U+9db5, U+9db8-9dbd, U+9dbf-9dc4, U+9dc6-9dc7, U+9dc9-9dca, U+9dcf, + U+9dd3-9dd7, U+9dd9-9dda, U+9dde-9de0, U+9de3, U+9de5-9de7, U+9de9, U+9deb, U+9ded-9df0, U+9df3-9df4, U+9df8, U+9dfd-9dfe, U+9e02, U+9e07, U+9e0a, + U+9e0d-9e0e, U+9e10-9e12, U+9e15-9e16, U+9e19-9e1f, U+9e75, U+9e79-9e7d, U+9e80-9e85, U+9e87-9e88; } /* [7] */ @font-face { @@ -1147,8 +2299,18 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.7.woff2) format('woff2'); - unicode-range: U+9ae5-9ae7, U+9ae9, U+9aeb-9aec, U+9aee-9aef, U+9af1-9af5, U+9af7, U+9af9-9afb, U+9afd, U+9aff-9b06, U+9b08-9b09, U+9b0b-9b0e, U+9b10, U+9b12, U+9b16, U+9b18-9b1d, U+9b1f-9b20, U+9b22-9b23, U+9b25-9b2f, U+9b32-9b35, U+9b37, U+9b39-9b3b, U+9b3d, U+9b43-9b44, U+9b48, U+9b4b-9b4f, U+9b51, U+9b55-9b58, U+9b5b, U+9b5e, U+9b61, U+9b63, U+9b65-9b66, U+9b68, U+9b6a-9b6f, U+9b72-9b79, U+9b7f-9b80, U+9b83-9b87, U+9b89-9b8b, U+9b8d, U+9b8f-9b94, U+9b96-9b97, U+9b9a, U+9b9d-9ba0, U+9ba6-9ba7, U+9ba9-9baa, U+9bac, U+9bb0-9bb2, U+9bb4, U+9bb7-9bb9, U+9bbb-9bbc, U+9bbe-9bc1, U+9bc6-9bc8, U+9bca, U+9bce-9bd2, U+9bd4, U+9bd7-9bd8, U+9bdd, U+9bdf, U+9be1-9be5, U+9be7, U+9bea-9beb, U+9bee-9bf3, U+9bf5, U+9bf7-9bfa, U+9bfd, U+9bff-9c00, U+9c02, U+9c04, U+9c06, U+9c08-9c0d, U+9c0f-9c16, U+9c18-9c1e, U+9c21-9c2a, U+9c2d-9c32, U+9c35-9c37, U+9c39-9c3a, U+9c3d; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.7.woff2) format('woff2'); + unicode-range: + U+9ae5-9ae7, U+9ae9, U+9aeb-9aec, U+9aee-9aef, U+9af1-9af5, U+9af7, U+9af9-9afb, U+9afd, U+9aff-9b06, U+9b08-9b09, U+9b0b-9b0e, U+9b10, U+9b12, + U+9b16, U+9b18-9b1d, U+9b1f-9b20, U+9b22-9b23, U+9b25-9b2f, U+9b32-9b35, U+9b37, U+9b39-9b3b, U+9b3d, U+9b43-9b44, U+9b48, U+9b4b-9b4f, U+9b51, + U+9b55-9b58, U+9b5b, U+9b5e, U+9b61, U+9b63, U+9b65-9b66, U+9b68, U+9b6a-9b6f, U+9b72-9b79, U+9b7f-9b80, U+9b83-9b87, U+9b89-9b8b, U+9b8d, + U+9b8f-9b94, U+9b96-9b97, U+9b9a, U+9b9d-9ba0, U+9ba6-9ba7, U+9ba9-9baa, U+9bac, U+9bb0-9bb2, U+9bb4, U+9bb7-9bb9, U+9bbb-9bbc, U+9bbe-9bc1, + U+9bc6-9bc8, U+9bca, U+9bce-9bd2, U+9bd4, U+9bd7-9bd8, U+9bdd, U+9bdf, U+9be1-9be5, U+9be7, U+9bea-9beb, U+9bee-9bf3, U+9bf5, U+9bf7-9bfa, U+9bfd, + U+9bff-9c00, U+9c02, U+9c04, U+9c06, U+9c08-9c0d, U+9c0f-9c16, U+9c18-9c1e, U+9c21-9c2a, U+9c2d-9c32, U+9c35-9c37, U+9c39-9c3a, U+9c3d; } /* [8] */ @font-face { @@ -1156,8 +2318,19 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.8.woff2) format('woff2'); - unicode-range: U+98eb, U+98ed-98ee, U+98f0-98f1, U+98f3, U+98f6, U+9902, U+9907-9909, U+9911-9912, U+9914-9918, U+991a-9922, U+9924, U+9926-9927, U+992b-992c, U+992e, U+9931-9935, U+9939-993e, U+9940-9942, U+9945-9949, U+994b-994e, U+9950-9952, U+9954-9955, U+9958-9959, U+995b-995c, U+995e-9960, U+9963, U+9997-9998, U+999b, U+999d-999f, U+99a3, U+99a5-99a6, U+99a8, U+99ad-99ae, U+99b0-99b2, U+99b5, U+99b9-99ba, U+99bc-99bd, U+99bf, U+99c1, U+99c3, U+99c8-99c9, U+99d1, U+99d3-99d5, U+99d8-99df, U+99e1-99e2, U+99e7, U+99ea-99ee, U+99f0-99f2, U+99f4-99f5, U+99f8-99f9, U+99fb-99fe, U+9a01-9a05, U+9a08, U+9a0a-9a0c, U+9a0f-9a11, U+9a16, U+9a1a, U+9a1e, U+9a20, U+9a22-9a24, U+9a27, U+9a2b, U+9a2d-9a2e, U+9a31, U+9a33, U+9a35-9a38, U+9a3e, U+9a40-9a45, U+9a47, U+9a4a-9a4e, U+9a51-9a52, U+9a54-9a58, U+9a5b, U+9a5d, U+9a5f, U+9a62, U+9a64-9a65, U+9a69-9a6c, U+9aaa, U+9aac-9ab0, U+9ab2, U+9ab4-9ab7, U+9ab9, U+9abb-9ac1, U+9ac3, U+9ac6, U+9ac8, U+9ace-9ad3, U+9ad5-9ad7, U+9adb-9adc, U+9ade-9ae0, U+9ae2-9ae4; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.8.woff2) format('woff2'); + unicode-range: + U+98eb, U+98ed-98ee, U+98f0-98f1, U+98f3, U+98f6, U+9902, U+9907-9909, U+9911-9912, U+9914-9918, U+991a-9922, U+9924, U+9926-9927, U+992b-992c, + U+992e, U+9931-9935, U+9939-993e, U+9940-9942, U+9945-9949, U+994b-994e, U+9950-9952, U+9954-9955, U+9958-9959, U+995b-995c, U+995e-9960, U+9963, + U+9997-9998, U+999b, U+999d-999f, U+99a3, U+99a5-99a6, U+99a8, U+99ad-99ae, U+99b0-99b2, U+99b5, U+99b9-99ba, U+99bc-99bd, U+99bf, U+99c1, U+99c3, + U+99c8-99c9, U+99d1, U+99d3-99d5, U+99d8-99df, U+99e1-99e2, U+99e7, U+99ea-99ee, U+99f0-99f2, U+99f4-99f5, U+99f8-99f9, U+99fb-99fe, U+9a01-9a05, + U+9a08, U+9a0a-9a0c, U+9a0f-9a11, U+9a16, U+9a1a, U+9a1e, U+9a20, U+9a22-9a24, U+9a27, U+9a2b, U+9a2d-9a2e, U+9a31, U+9a33, U+9a35-9a38, U+9a3e, + U+9a40-9a45, U+9a47, U+9a4a-9a4e, U+9a51-9a52, U+9a54-9a58, U+9a5b, U+9a5d, U+9a5f, U+9a62, U+9a64-9a65, U+9a69-9a6c, U+9aaa, U+9aac-9ab0, U+9ab2, + U+9ab4-9ab7, U+9ab9, U+9abb-9ac1, U+9ac3, U+9ac6, U+9ac8, U+9ace-9ad3, U+9ad5-9ad7, U+9adb-9adc, U+9ade-9ae0, U+9ae2-9ae4; } /* [9] */ @font-face { @@ -1165,8 +2338,20 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.9.woff2) format('woff2'); - unicode-range: U+971d, U+9721-9724, U+9728, U+972a, U+9730-9731, U+9733, U+9736, U+9738-9739, U+973b, U+973d-973e, U+9741-9744, U+9746-974a, U+974d-974f, U+9751, U+9755, U+9757-9758, U+975a-975c, U+9760-9761, U+9763-9764, U+9766-9768, U+976a-976b, U+976e, U+9771, U+9773, U+9776-977d, U+977f-9781, U+9785-9786, U+9789, U+978b, U+978f-9790, U+9795-9797, U+9799-979a, U+979c, U+979e-97a0, U+97a2-97a3, U+97a6, U+97a8, U+97ab-97ac, U+97ae, U+97b1-97b6, U+97b8-97ba, U+97bc, U+97be-97bf, U+97c1, U+97c3-97ce, U+97d0-97d1, U+97d4, U+97d7-97d9, U+97db-97de, U+97e0-97e1, U+97e4, U+97e6, U+97ed-97ef, U+97f1-97f2, U+97f4-97f8, U+97fa, U+9804, U+9807, U+980a, U+980c-980f, U+9814, U+9816-9817, U+9819-981a, U+981c, U+981e, U+9820-9821, U+9823-9826, U+982b, U+982e-9830, U+9832-9835, U+9837, U+9839, U+983d-983e, U+9844, U+9846-9847, U+984a-984b, U+984f, U+9851-9853, U+9856-9857, U+9859-985b, U+9862-9863, U+9865-9866, U+986a-986c, U+986f-9871, U+9873-9875, U+98aa-98ab, U+98ad-98ae, U+98b0-98b1, U+98b4, U+98b6-98b8, U+98ba-98bc, U+98bf, U+98c2-98c8, U+98cb-98cc, U+98ce, U+98dc, U+98de, U+98e0-98e1, U+98e3, U+98e5-98e7, U+98e9-98ea; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.9.woff2) format('woff2'); + unicode-range: + U+971d, U+9721-9724, U+9728, U+972a, U+9730-9731, U+9733, U+9736, U+9738-9739, U+973b, U+973d-973e, U+9741-9744, U+9746-974a, U+974d-974f, U+9751, + U+9755, U+9757-9758, U+975a-975c, U+9760-9761, U+9763-9764, U+9766-9768, U+976a-976b, U+976e, U+9771, U+9773, U+9776-977d, U+977f-9781, + U+9785-9786, U+9789, U+978b, U+978f-9790, U+9795-9797, U+9799-979a, U+979c, U+979e-97a0, U+97a2-97a3, U+97a6, U+97a8, U+97ab-97ac, U+97ae, + U+97b1-97b6, U+97b8-97ba, U+97bc, U+97be-97bf, U+97c1, U+97c3-97ce, U+97d0-97d1, U+97d4, U+97d7-97d9, U+97db-97de, U+97e0-97e1, U+97e4, U+97e6, + U+97ed-97ef, U+97f1-97f2, U+97f4-97f8, U+97fa, U+9804, U+9807, U+980a, U+980c-980f, U+9814, U+9816-9817, U+9819-981a, U+981c, U+981e, U+9820-9821, + U+9823-9826, U+982b, U+982e-9830, U+9832-9835, U+9837, U+9839, U+983d-983e, U+9844, U+9846-9847, U+984a-984b, U+984f, U+9851-9853, U+9856-9857, + U+9859-985b, U+9862-9863, U+9865-9866, U+986a-986c, U+986f-9871, U+9873-9875, U+98aa-98ab, U+98ad-98ae, U+98b0-98b1, U+98b4, U+98b6-98b8, + U+98ba-98bc, U+98bf, U+98c2-98c8, U+98cb-98cc, U+98ce, U+98dc, U+98de, U+98e0-98e1, U+98e3, U+98e5-98e7, U+98e9-98ea; } /* [10] */ @font-face { @@ -1174,8 +2359,20 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.10.woff2) format('woff2'); - unicode-range: U+944a, U+944c, U+9452-9453, U+9455, U+9459-945c, U+945e-9463, U+9468, U+946a-946b, U+946d-9472, U+9475, U+9477, U+947c-947f, U+9481, U+9483-9485, U+9578-9579, U+957e-957f, U+9582, U+9584, U+9586-9588, U+958a, U+958c-958f, U+9592, U+9594, U+9596, U+9598-9599, U+959d-95a1, U+95a4, U+95a6-95a9, U+95ab-95ad, U+95b1, U+95b4, U+95b6, U+95b9-95bf, U+95c3, U+95c6, U+95c8-95cd, U+95d0-95d6, U+95d9-95da, U+95dc-95e2, U+95e4-95e6, U+95e8, U+961d-961e, U+9621-9622, U+9624-9626, U+9628, U+962c, U+962e-962f, U+9631, U+9633-9634, U+9637-963a, U+963c-963d, U+9641-9642, U+964b-964c, U+964f, U+9652, U+9654, U+9656-9658, U+965c-965f, U+9661, U+9666, U+966a, U+966c, U+966e, U+9672, U+9674, U+9677, U+967b-967c, U+967e-967f, U+9681-9684, U+9689, U+968b, U+968d, U+9691, U+9695-9698, U+969a, U+969d, U+969f, U+96a4-96aa, U+96ae-96b4, U+96b6, U+96b8-96bb, U+96bd, U+96c1, U+96c9-96cb, U+96cd-96ce, U+96d2, U+96d5-96d6, U+96d8-96da, U+96dc-96df, U+96e9, U+96ef, U+96f1, U+96f9-96fa, U+9702-9706, U+9708-9709, U+970d-970f, U+9711, U+9713-9714, U+9716, U+9719-971b; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.10.woff2) format('woff2'); + unicode-range: + U+944a, U+944c, U+9452-9453, U+9455, U+9459-945c, U+945e-9463, U+9468, U+946a-946b, U+946d-9472, U+9475, U+9477, U+947c-947f, U+9481, U+9483-9485, + U+9578-9579, U+957e-957f, U+9582, U+9584, U+9586-9588, U+958a, U+958c-958f, U+9592, U+9594, U+9596, U+9598-9599, U+959d-95a1, U+95a4, U+95a6-95a9, + U+95ab-95ad, U+95b1, U+95b4, U+95b6, U+95b9-95bf, U+95c3, U+95c6, U+95c8-95cd, U+95d0-95d6, U+95d9-95da, U+95dc-95e2, U+95e4-95e6, U+95e8, + U+961d-961e, U+9621-9622, U+9624-9626, U+9628, U+962c, U+962e-962f, U+9631, U+9633-9634, U+9637-963a, U+963c-963d, U+9641-9642, U+964b-964c, + U+964f, U+9652, U+9654, U+9656-9658, U+965c-965f, U+9661, U+9666, U+966a, U+966c, U+966e, U+9672, U+9674, U+9677, U+967b-967c, U+967e-967f, + U+9681-9684, U+9689, U+968b, U+968d, U+9691, U+9695-9698, U+969a, U+969d, U+969f, U+96a4-96aa, U+96ae-96b4, U+96b6, U+96b8-96bb, U+96bd, U+96c1, + U+96c9-96cb, U+96cd-96ce, U+96d2, U+96d5-96d6, U+96d8-96da, U+96dc-96df, U+96e9, U+96ef, U+96f1, U+96f9-96fa, U+9702-9706, U+9708-9709, + U+970d-970f, U+9711, U+9713-9714, U+9716, U+9719-971b; } /* [11] */ @font-face { @@ -1183,8 +2380,19 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.11.woff2) format('woff2'); - unicode-range: U+92bc-92bd, U+92bf-92c3, U+92c5-92c8, U+92cb-92d0, U+92d2-92d3, U+92d5, U+92d7-92d9, U+92dc-92dd, U+92df-92e1, U+92e3-92e5, U+92e7-92ea, U+92ec, U+92ee, U+92f0, U+92f2, U+92f7-92fb, U+92ff-9300, U+9302, U+9304, U+9308, U+930d, U+930f-9311, U+9314-9315, U+9318-931a, U+931c-931f, U+9321-9325, U+9327-932b, U+932e, U+9333-9337, U+933a-933b, U+9344, U+9347-934a, U+934d, U+9350-9352, U+9354-9358, U+935a, U+935c, U+935e, U+9360, U+9364-9365, U+9367, U+9369-936d, U+936f-9371, U+9373-9374, U+9376, U+937a, U+937d-9382, U+9388, U+938a-938b, U+938d, U+938f, U+9392, U+9394-9395, U+9397-9398, U+939a-939b, U+939e, U+93a1, U+93a3-93a4, U+93a6, U+93a8-93a9, U+93ab-93ad, U+93b0, U+93b4-93b6, U+93b9-93bb, U+93c1, U+93c3-93cd, U+93d0-93d1, U+93d3, U+93d6-93d9, U+93dc-93df, U+93e2, U+93e4-93e8, U+93f1, U+93f5, U+93f7-93fb, U+93fd, U+9401-9404, U+9407-9409, U+940d-9410, U+9413-9417, U+9419-941a, U+941f, U+9421, U+942b, U+942e-942f, U+9431-9434, U+9436, U+9438, U+943a-943b, U+943d, U+943f, U+9441, U+9443-9445, U+9448; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.11.woff2) format('woff2'); + unicode-range: + U+92bc-92bd, U+92bf-92c3, U+92c5-92c8, U+92cb-92d0, U+92d2-92d3, U+92d5, U+92d7-92d9, U+92dc-92dd, U+92df-92e1, U+92e3-92e5, U+92e7-92ea, U+92ec, + U+92ee, U+92f0, U+92f2, U+92f7-92fb, U+92ff-9300, U+9302, U+9304, U+9308, U+930d, U+930f-9311, U+9314-9315, U+9318-931a, U+931c-931f, U+9321-9325, + U+9327-932b, U+932e, U+9333-9337, U+933a-933b, U+9344, U+9347-934a, U+934d, U+9350-9352, U+9354-9358, U+935a, U+935c, U+935e, U+9360, U+9364-9365, + U+9367, U+9369-936d, U+936f-9371, U+9373-9374, U+9376, U+937a, U+937d-9382, U+9388, U+938a-938b, U+938d, U+938f, U+9392, U+9394-9395, U+9397-9398, + U+939a-939b, U+939e, U+93a1, U+93a3-93a4, U+93a6, U+93a8-93a9, U+93ab-93ad, U+93b0, U+93b4-93b6, U+93b9-93bb, U+93c1, U+93c3-93cd, U+93d0-93d1, + U+93d3, U+93d6-93d9, U+93dc-93df, U+93e2, U+93e4-93e8, U+93f1, U+93f5, U+93f7-93fb, U+93fd, U+9401-9404, U+9407-9409, U+940d-9410, U+9413-9417, + U+9419-941a, U+941f, U+9421, U+942b, U+942e-942f, U+9431-9434, U+9436, U+9438, U+943a-943b, U+943d, U+943f, U+9441, U+9443-9445, U+9448; } /* [12] */ @font-face { @@ -1192,8 +2400,19 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.12.woff2) format('woff2'); - unicode-range: U+9143, U+9146-914c, U+914f, U+9153, U+9156-915b, U+9161, U+9163-9165, U+9167, U+9169, U+916d, U+9172-9174, U+9179-917b, U+9181-9183, U+9185-9187, U+9189-918b, U+918e, U+9191, U+9193-9195, U+9197-9198, U+919e, U+91a1-91a2, U+91a6, U+91a8, U+91aa-91b6, U+91ba-91bd, U+91bf-91c6, U+91c9, U+91cb, U+91d0, U+91d3-91d4, U+91d6-91d7, U+91d9-91db, U+91de-91df, U+91e1, U+91e4-91e6, U+91e9-91ea, U+91ec-91f1, U+91f5-91f7, U+91f9, U+91fb-91fd, U+91ff-9201, U+9204-9207, U+9209-920a, U+920c, U+920e, U+9210-9218, U+921c-921e, U+9223-9226, U+9228-9229, U+922c, U+922e-9230, U+9233, U+9235-923a, U+923c, U+923e-9240, U+9242-9243, U+9245-924b, U+924d-9251, U+9256-925a, U+925c-925e, U+9260-9261, U+9264-9269, U+926e-9270, U+9275-9279, U+927b-927f, U+9288-928a, U+928d-928e, U+9291-9293, U+9295-9297, U+9299, U+929b-929c, U+929f-92a0, U+92a4-92a5, U+92a7-92a8, U+92ab, U+92af, U+92b2-92b3, U+92b6-92bb; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.12.woff2) format('woff2'); + unicode-range: + U+9143, U+9146-914c, U+914f, U+9153, U+9156-915b, U+9161, U+9163-9165, U+9167, U+9169, U+916d, U+9172-9174, U+9179-917b, U+9181-9183, U+9185-9187, + U+9189-918b, U+918e, U+9191, U+9193-9195, U+9197-9198, U+919e, U+91a1-91a2, U+91a6, U+91a8, U+91aa-91b6, U+91ba-91bd, U+91bf-91c6, U+91c9, U+91cb, + U+91d0, U+91d3-91d4, U+91d6-91d7, U+91d9-91db, U+91de-91df, U+91e1, U+91e4-91e6, U+91e9-91ea, U+91ec-91f1, U+91f5-91f7, U+91f9, U+91fb-91fd, + U+91ff-9201, U+9204-9207, U+9209-920a, U+920c, U+920e, U+9210-9218, U+921c-921e, U+9223-9226, U+9228-9229, U+922c, U+922e-9230, U+9233, + U+9235-923a, U+923c, U+923e-9240, U+9242-9243, U+9245-924b, U+924d-9251, U+9256-925a, U+925c-925e, U+9260-9261, U+9264-9269, U+926e-9270, + U+9275-9279, U+927b-927f, U+9288-928a, U+928d-928e, U+9291-9293, U+9295-9297, U+9299, U+929b-929c, U+929f-92a0, U+92a4-92a5, U+92a7-92a8, U+92ab, + U+92af, U+92b2-92b3, U+92b6-92bb; } /* [13] */ @font-face { @@ -1201,8 +2420,20 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.13.woff2) format('woff2'); - unicode-range: U+8f52-8f55, U+8f57-8f58, U+8f5c-8f5e, U+8f61-8f66, U+8f9c-8f9d, U+8f9f-8fa2, U+8fa4-8fa8, U+8fad-8faf, U+8fb4-8fb8, U+8fbe, U+8fc0-8fc2, U+8fc6, U+8fc8, U+8fca-8fcb, U+8fcd, U+8fd0, U+8fd2-8fd3, U+8fd5, U+8fda, U+8fe0, U+8fe2-8fe5, U+8fe8-8fea, U+8fed-8fef, U+8ff1, U+8ff4-8ff6, U+8ff8-8ffb, U+8ffe, U+9002, U+9004-9005, U+9008, U+900b-900e, U+9011, U+9013, U+9015-9016, U+9018, U+901b, U+901e, U+9021, U+9027-902a, U+902c-902d, U+902f, U+9033-9037, U+9039, U+903c, U+903e-903f, U+9041, U+9043-9044, U+9049, U+904c, U+904f-9052, U+9056, U+9058, U+905b-905e, U+9062, U+9066-9068, U+906c, U+906f-9070, U+9072, U+9074, U+9076, U+9079, U+9080-9083, U+9085, U+9087-9088, U+908b-908c, U+908e-9090, U+9095, U+9097-9099, U+909b, U+90a0-90a2, U+90a5, U+90a8, U+90af-90b6, U+90bd-90be, U+90c3-90c5, U+90c7-90c9, U+90cc, U+90d2, U+90d5, U+90d7-90d9, U+90db-90df, U+90e2, U+90e4-90e5, U+90eb, U+90ef-90f0, U+90f2, U+90f4, U+90f6, U+90fe-9100, U+9102, U+9104-9106, U+9108, U+910d, U+9110, U+9112, U+9114-911a, U+911c, U+911e, U+9120, U+9122-9123, U+9125, U+9127, U+9129, U+912d-9132, U+9134, U+9136-9137, U+9139-913a, U+913c-913d; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.13.woff2) format('woff2'); + unicode-range: + U+8f52-8f55, U+8f57-8f58, U+8f5c-8f5e, U+8f61-8f66, U+8f9c-8f9d, U+8f9f-8fa2, U+8fa4-8fa8, U+8fad-8faf, U+8fb4-8fb8, U+8fbe, U+8fc0-8fc2, U+8fc6, + U+8fc8, U+8fca-8fcb, U+8fcd, U+8fd0, U+8fd2-8fd3, U+8fd5, U+8fda, U+8fe0, U+8fe2-8fe5, U+8fe8-8fea, U+8fed-8fef, U+8ff1, U+8ff4-8ff6, U+8ff8-8ffb, + U+8ffe, U+9002, U+9004-9005, U+9008, U+900b-900e, U+9011, U+9013, U+9015-9016, U+9018, U+901b, U+901e, U+9021, U+9027-902a, U+902c-902d, U+902f, + U+9033-9037, U+9039, U+903c, U+903e-903f, U+9041, U+9043-9044, U+9049, U+904c, U+904f-9052, U+9056, U+9058, U+905b-905e, U+9062, U+9066-9068, + U+906c, U+906f-9070, U+9072, U+9074, U+9076, U+9079, U+9080-9083, U+9085, U+9087-9088, U+908b-908c, U+908e-9090, U+9095, U+9097-9099, U+909b, + U+90a0-90a2, U+90a5, U+90a8, U+90af-90b6, U+90bd-90be, U+90c3-90c5, U+90c7-90c9, U+90cc, U+90d2, U+90d5, U+90d7-90d9, U+90db-90df, U+90e2, + U+90e4-90e5, U+90eb, U+90ef-90f0, U+90f2, U+90f4, U+90f6, U+90fe-9100, U+9102, U+9104-9106, U+9108, U+910d, U+9110, U+9112, U+9114-911a, U+911c, + U+911e, U+9120, U+9122-9123, U+9125, U+9127, U+9129, U+912d-9132, U+9134, U+9136-9137, U+9139-913a, U+913c-913d; } /* [14] */ @font-face { @@ -1210,8 +2441,19 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.14.woff2) format('woff2'); - unicode-range: U+8dc0, U+8dc2, U+8dc5-8dc8, U+8dca-8dcc, U+8dce-8dcf, U+8dd1, U+8dd4-8dd7, U+8dd9-8ddb, U+8ddf, U+8de3-8de5, U+8de7, U+8dea-8dec, U+8df0-8df2, U+8df4, U+8dfc-8dfd, U+8dff, U+8e01, U+8e04-8e06, U+8e08-8e09, U+8e0b-8e0c, U+8e10-8e11, U+8e14, U+8e16, U+8e1d-8e23, U+8e26-8e27, U+8e30-8e31, U+8e33-8e39, U+8e3d, U+8e40-8e42, U+8e44, U+8e47-8e50, U+8e54-8e55, U+8e59, U+8e5b-8e64, U+8e69, U+8e6c-8e6d, U+8e6f-8e72, U+8e75-8e77, U+8e79-8e7c, U+8e81-8e85, U+8e89, U+8e8b, U+8e90-8e95, U+8e98-8e9b, U+8e9d-8e9e, U+8ea1-8ea2, U+8ea7, U+8ea9-8eaa, U+8eac-8eb1, U+8eb3, U+8eb5-8eb6, U+8eba-8ebb, U+8ebe, U+8ec0-8ec1, U+8ec3-8ec8, U+8ecb, U+8ecf, U+8ed1, U+8ed4, U+8edb-8edc, U+8ee3, U+8ee8, U+8eeb, U+8eed-8eee, U+8ef0-8ef1, U+8ef7, U+8ef9-8efc, U+8efe, U+8f00, U+8f02, U+8f05, U+8f07-8f08, U+8f0a, U+8f0f-8f10, U+8f12-8f13, U+8f15-8f19, U+8f1b-8f1c, U+8f1e-8f21, U+8f23, U+8f25-8f28, U+8f2b-8f2f, U+8f33-8f37, U+8f39-8f3b, U+8f3e, U+8f40-8f43, U+8f45-8f47, U+8f49-8f4a, U+8f4c-8f4f, U+8f51; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.14.woff2) format('woff2'); + unicode-range: + U+8dc0, U+8dc2, U+8dc5-8dc8, U+8dca-8dcc, U+8dce-8dcf, U+8dd1, U+8dd4-8dd7, U+8dd9-8ddb, U+8ddf, U+8de3-8de5, U+8de7, U+8dea-8dec, U+8df0-8df2, + U+8df4, U+8dfc-8dfd, U+8dff, U+8e01, U+8e04-8e06, U+8e08-8e09, U+8e0b-8e0c, U+8e10-8e11, U+8e14, U+8e16, U+8e1d-8e23, U+8e26-8e27, U+8e30-8e31, + U+8e33-8e39, U+8e3d, U+8e40-8e42, U+8e44, U+8e47-8e50, U+8e54-8e55, U+8e59, U+8e5b-8e64, U+8e69, U+8e6c-8e6d, U+8e6f-8e72, U+8e75-8e77, + U+8e79-8e7c, U+8e81-8e85, U+8e89, U+8e8b, U+8e90-8e95, U+8e98-8e9b, U+8e9d-8e9e, U+8ea1-8ea2, U+8ea7, U+8ea9-8eaa, U+8eac-8eb1, U+8eb3, + U+8eb5-8eb6, U+8eba-8ebb, U+8ebe, U+8ec0-8ec1, U+8ec3-8ec8, U+8ecb, U+8ecf, U+8ed1, U+8ed4, U+8edb-8edc, U+8ee3, U+8ee8, U+8eeb, U+8eed-8eee, + U+8ef0-8ef1, U+8ef7, U+8ef9-8efc, U+8efe, U+8f00, U+8f02, U+8f05, U+8f07-8f08, U+8f0a, U+8f0f-8f10, U+8f12-8f13, U+8f15-8f19, U+8f1b-8f1c, + U+8f1e-8f21, U+8f23, U+8f25-8f28, U+8f2b-8f2f, U+8f33-8f37, U+8f39-8f3b, U+8f3e, U+8f40-8f43, U+8f45-8f47, U+8f49-8f4a, U+8f4c-8f4f, U+8f51; } /* [15] */ @font-face { @@ -1219,8 +2461,21 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.15.woff2) format('woff2'); - unicode-range: U+8b2d, U+8b30, U+8b37, U+8b3c, U+8b3e, U+8b41-8b46, U+8b48-8b49, U+8b4c-8b4f, U+8b51-8b54, U+8b56, U+8b59, U+8b5b, U+8b5e-8b5f, U+8b63, U+8b69, U+8b6b-8b6d, U+8b6f, U+8b71, U+8b74, U+8b76, U+8b78-8b79, U+8b7c-8b81, U+8b84-8b85, U+8b8a-8b8f, U+8b92-8b96, U+8b99-8b9a, U+8b9c-8ba0, U+8c38-8c3a, U+8c3d-8c3f, U+8c41, U+8c45, U+8c47-8c49, U+8c4b-8c4c, U+8c4e-8c51, U+8c53-8c55, U+8c57-8c59, U+8c5b, U+8c5d, U+8c62-8c64, U+8c66, U+8c68-8c69, U+8c6b-8c6d, U+8c73, U+8c75-8c76, U+8c78, U+8c7a-8c7c, U+8c7e, U+8c82, U+8c85-8c87, U+8c89-8c8b, U+8c8d-8c8e, U+8c90, U+8c92-8c94, U+8c98-8c99, U+8c9b-8c9c, U+8c9f, U+8ca4, U+8cad-8cae, U+8cb2-8cb3, U+8cb6, U+8cb9-8cba, U+8cbd, U+8cc1-8cc2, U+8cc4-8cc6, U+8cc8-8cc9, U+8ccb, U+8ccd-8ccf, U+8cd2, U+8cd5-8cd6, U+8cd9-8cda, U+8cdd, U+8ce1, U+8ce3-8ce4, U+8ce6, U+8ce8, U+8cec, U+8cef-8cf2, U+8cf4-8cf5, U+8cf7-8cf8, U+8cfa-8cfb, U+8cfd-8cff, U+8d01, U+8d03-8d04, U+8d07, U+8d09-8d0b, U+8d0d-8d10, U+8d12-8d14, U+8d16-8d17, U+8d1b-8d1d, U+8d65, U+8d67, U+8d69, U+8d6b-8d6e, U+8d71, U+8d73, U+8d76, U+8d7f, U+8d81-8d82, U+8d84, U+8d88, U+8d8d, U+8d90-8d91, U+8d95, U+8d99, U+8d9e-8da0, U+8da6, U+8da8, U+8dab-8dac, U+8daf, U+8db2, U+8db5, U+8db7, U+8db9-8dbc, U+8dbe; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.15.woff2) format('woff2'); + unicode-range: + U+8b2d, U+8b30, U+8b37, U+8b3c, U+8b3e, U+8b41-8b46, U+8b48-8b49, U+8b4c-8b4f, U+8b51-8b54, U+8b56, U+8b59, U+8b5b, U+8b5e-8b5f, U+8b63, U+8b69, + U+8b6b-8b6d, U+8b6f, U+8b71, U+8b74, U+8b76, U+8b78-8b79, U+8b7c-8b81, U+8b84-8b85, U+8b8a-8b8f, U+8b92-8b96, U+8b99-8b9a, U+8b9c-8ba0, + U+8c38-8c3a, U+8c3d-8c3f, U+8c41, U+8c45, U+8c47-8c49, U+8c4b-8c4c, U+8c4e-8c51, U+8c53-8c55, U+8c57-8c59, U+8c5b, U+8c5d, U+8c62-8c64, U+8c66, + U+8c68-8c69, U+8c6b-8c6d, U+8c73, U+8c75-8c76, U+8c78, U+8c7a-8c7c, U+8c7e, U+8c82, U+8c85-8c87, U+8c89-8c8b, U+8c8d-8c8e, U+8c90, U+8c92-8c94, + U+8c98-8c99, U+8c9b-8c9c, U+8c9f, U+8ca4, U+8cad-8cae, U+8cb2-8cb3, U+8cb6, U+8cb9-8cba, U+8cbd, U+8cc1-8cc2, U+8cc4-8cc6, U+8cc8-8cc9, U+8ccb, + U+8ccd-8ccf, U+8cd2, U+8cd5-8cd6, U+8cd9-8cda, U+8cdd, U+8ce1, U+8ce3-8ce4, U+8ce6, U+8ce8, U+8cec, U+8cef-8cf2, U+8cf4-8cf5, U+8cf7-8cf8, + U+8cfa-8cfb, U+8cfd-8cff, U+8d01, U+8d03-8d04, U+8d07, U+8d09-8d0b, U+8d0d-8d10, U+8d12-8d14, U+8d16-8d17, U+8d1b-8d1d, U+8d65, U+8d67, U+8d69, + U+8d6b-8d6e, U+8d71, U+8d73, U+8d76, U+8d7f, U+8d81-8d82, U+8d84, U+8d88, U+8d8d, U+8d90-8d91, U+8d95, U+8d99, U+8d9e-8da0, U+8da6, U+8da8, + U+8dab-8dac, U+8daf, U+8db2, U+8db5, U+8db7, U+8db9-8dbc, U+8dbe; } /* [16] */ @font-face { @@ -1228,8 +2483,21 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.16.woff2) format('woff2'); - unicode-range: U+8973-8975, U+8977, U+897a-897e, U+8980, U+8983, U+8988-898a, U+898d, U+8990, U+8993-8995, U+8998, U+899b-899c, U+899f-89a1, U+89a5-89a6, U+89a9, U+89ac, U+89af-89b0, U+89b2, U+89b4-89b7, U+89ba, U+89bc-89bd, U+89bf-89c1, U+89d4-89d8, U+89da, U+89dc-89dd, U+89e5, U+89e7, U+89e9, U+89eb, U+89ed, U+89f1, U+89f3-89f4, U+89f6, U+89f8-89f9, U+89fd, U+89ff, U+8a01, U+8a04-8a05, U+8a07, U+8a0c, U+8a0f-8a12, U+8a14-8a16, U+8a1b, U+8a1d-8a1e, U+8a20-8a22, U+8a24-8a26, U+8a2b-8a2c, U+8a2f, U+8a35-8a37, U+8a3b, U+8a3d-8a3e, U+8a40-8a41, U+8a43, U+8a45-8a49, U+8a4d-8a4e, U+8a51-8a54, U+8a56-8a58, U+8a5b-8a5d, U+8a61-8a62, U+8a65, U+8a67, U+8a6c-8a6d, U+8a75-8a77, U+8a79-8a7c, U+8a7e-8a80, U+8a82-8a86, U+8a8b, U+8a8f-8a92, U+8a96-8a97, U+8a99-8a9a, U+8a9f, U+8aa1, U+8aa3, U+8aa5-8aaa, U+8aae-8aaf, U+8ab3, U+8ab6-8ab7, U+8abb-8abc, U+8abe, U+8ac2-8ac4, U+8ac6, U+8ac8-8aca, U+8acc-8acd, U+8ad0-8ad1, U+8ad3-8ad5, U+8ad7, U+8ada-8ae2, U+8ae4, U+8ae7, U+8aeb-8aec, U+8aee, U+8af0-8af1, U+8af3-8af7, U+8afa, U+8afc, U+8aff, U+8b01-8b02, U+8b04-8b07, U+8b0a-8b0d, U+8b0f-8b11, U+8b14, U+8b16, U+8b1a, U+8b1c, U+8b1e-8b20, U+8b26, U+8b28, U+8b2b-8b2c; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.16.woff2) format('woff2'); + unicode-range: + U+8973-8975, U+8977, U+897a-897e, U+8980, U+8983, U+8988-898a, U+898d, U+8990, U+8993-8995, U+8998, U+899b-899c, U+899f-89a1, U+89a5-89a6, U+89a9, + U+89ac, U+89af-89b0, U+89b2, U+89b4-89b7, U+89ba, U+89bc-89bd, U+89bf-89c1, U+89d4-89d8, U+89da, U+89dc-89dd, U+89e5, U+89e7, U+89e9, U+89eb, + U+89ed, U+89f1, U+89f3-89f4, U+89f6, U+89f8-89f9, U+89fd, U+89ff, U+8a01, U+8a04-8a05, U+8a07, U+8a0c, U+8a0f-8a12, U+8a14-8a16, U+8a1b, + U+8a1d-8a1e, U+8a20-8a22, U+8a24-8a26, U+8a2b-8a2c, U+8a2f, U+8a35-8a37, U+8a3b, U+8a3d-8a3e, U+8a40-8a41, U+8a43, U+8a45-8a49, U+8a4d-8a4e, + U+8a51-8a54, U+8a56-8a58, U+8a5b-8a5d, U+8a61-8a62, U+8a65, U+8a67, U+8a6c-8a6d, U+8a75-8a77, U+8a79-8a7c, U+8a7e-8a80, U+8a82-8a86, U+8a8b, + U+8a8f-8a92, U+8a96-8a97, U+8a99-8a9a, U+8a9f, U+8aa1, U+8aa3, U+8aa5-8aaa, U+8aae-8aaf, U+8ab3, U+8ab6-8ab7, U+8abb-8abc, U+8abe, U+8ac2-8ac4, + U+8ac6, U+8ac8-8aca, U+8acc-8acd, U+8ad0-8ad1, U+8ad3-8ad5, U+8ad7, U+8ada-8ae2, U+8ae4, U+8ae7, U+8aeb-8aec, U+8aee, U+8af0-8af1, U+8af3-8af7, + U+8afa, U+8afc, U+8aff, U+8b01-8b02, U+8b04-8b07, U+8b0a-8b0d, U+8b0f-8b11, U+8b14, U+8b16, U+8b1a, U+8b1c, U+8b1e-8b20, U+8b26, U+8b28, + U+8b2b-8b2c; } /* [17] */ @font-face { @@ -1237,8 +2505,20 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.17.woff2) format('woff2'); - unicode-range: U+87e2-87e6, U+87ea-87ed, U+87ef, U+87f1, U+87f3, U+87f5-87f8, U+87fa-87fb, U+87fe-87ff, U+8801, U+8803, U+8805-8807, U+8809-880b, U+880d-8816, U+8818-881c, U+881e-881f, U+8821-8822, U+8827-8828, U+882d-882e, U+8830-8832, U+8835-8836, U+8839-883c, U+8841-8845, U+8848-884b, U+884d-884e, U+8851-8852, U+8855-8856, U+8858-885a, U+885c, U+885e-8860, U+8862, U+8864, U+8869, U+886b, U+886e-886f, U+8871-8872, U+8875, U+8877, U+8879, U+887b, U+887d-887e, U+8880-8882, U+8888, U+888d, U+8892, U+8897-889c, U+889e-88a0, U+88a2, U+88a4, U+88a8, U+88aa, U+88ae, U+88b0-88b1, U+88b5, U+88b7, U+88ba, U+88bc-88c0, U+88c3-88c4, U+88c6, U+88ca-88ce, U+88d1-88d4, U+88d8-88d9, U+88db, U+88dd-88e1, U+88e7-88e8, U+88ef-88f2, U+88f4-88f5, U+88f7, U+88f9, U+88fc, U+8901-8902, U+8904, U+8906, U+890a, U+890c-890f, U+8913, U+8915-8916, U+8918-891a, U+891c-891e, U+8920, U+8925-8928, U+892a-892b, U+8930-8932, U+8935-893b, U+893e, U+8940-8946, U+8949, U+894c-894d, U+894f, U+8952, U+8956-8957, U+895a-895c, U+895e, U+8960-8964, U+8966, U+896a-896b, U+896d-8970; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.17.woff2) format('woff2'); + unicode-range: + U+87e2-87e6, U+87ea-87ed, U+87ef, U+87f1, U+87f3, U+87f5-87f8, U+87fa-87fb, U+87fe-87ff, U+8801, U+8803, U+8805-8807, U+8809-880b, U+880d-8816, + U+8818-881c, U+881e-881f, U+8821-8822, U+8827-8828, U+882d-882e, U+8830-8832, U+8835-8836, U+8839-883c, U+8841-8845, U+8848-884b, U+884d-884e, + U+8851-8852, U+8855-8856, U+8858-885a, U+885c, U+885e-8860, U+8862, U+8864, U+8869, U+886b, U+886e-886f, U+8871-8872, U+8875, U+8877, U+8879, + U+887b, U+887d-887e, U+8880-8882, U+8888, U+888d, U+8892, U+8897-889c, U+889e-88a0, U+88a2, U+88a4, U+88a8, U+88aa, U+88ae, U+88b0-88b1, U+88b5, + U+88b7, U+88ba, U+88bc-88c0, U+88c3-88c4, U+88c6, U+88ca-88ce, U+88d1-88d4, U+88d8-88d9, U+88db, U+88dd-88e1, U+88e7-88e8, U+88ef-88f2, + U+88f4-88f5, U+88f7, U+88f9, U+88fc, U+8901-8902, U+8904, U+8906, U+890a, U+890c-890f, U+8913, U+8915-8916, U+8918-891a, U+891c-891e, U+8920, + U+8925-8928, U+892a-892b, U+8930-8932, U+8935-893b, U+893e, U+8940-8946, U+8949, U+894c-894d, U+894f, U+8952, U+8956-8957, U+895a-895c, U+895e, + U+8960-8964, U+8966, U+896a-896b, U+896d-8970; } /* [18] */ @font-face { @@ -1246,8 +2526,20 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.18.woff2) format('woff2'); - unicode-range: U+8655-8659, U+865b, U+865d-8664, U+8667, U+8669, U+866c, U+866f, U+8671, U+8675-8677, U+867a-867b, U+867d, U+8687-8689, U+868b-868d, U+8691, U+8693, U+8695-8696, U+8698, U+869a, U+869c-869d, U+86a1, U+86a3-86a4, U+86a6-86ab, U+86ad, U+86af-86b1, U+86b3-86b9, U+86bf-86c1, U+86c3-86c6, U+86c9, U+86cb, U+86ce, U+86d1-86d2, U+86d4-86d5, U+86d7, U+86da, U+86dc, U+86de-86e0, U+86e3-86e7, U+86e9, U+86ec-86ed, U+86ef, U+86f8-86fe, U+8700, U+8703-870b, U+870d-8714, U+8719-871a, U+871e-871f, U+8721-8723, U+8725, U+8728-8729, U+872e-872f, U+8731-8732, U+8734, U+8737, U+8739-8740, U+8743, U+8745, U+8749, U+874b-874e, U+8751, U+8753, U+8755, U+8757-8759, U+875d, U+875f-8761, U+8763-8766, U+8768, U+876a, U+876e-876f, U+8771-8772, U+8774, U+8778, U+877b-877c, U+877f, U+8782-8789, U+878b-878c, U+878e, U+8790, U+8793, U+8795, U+8797-8799, U+879e-87a0, U+87a2-87a3, U+87a7, U+87ab-87af, U+87b1, U+87b3, U+87b5, U+87bb, U+87bd-87c1, U+87c4, U+87c6-87cb, U+87ce, U+87d0, U+87d2, U+87d5-87d6, U+87d9-87da, U+87dc, U+87df-87e0; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.18.woff2) format('woff2'); + unicode-range: + U+8655-8659, U+865b, U+865d-8664, U+8667, U+8669, U+866c, U+866f, U+8671, U+8675-8677, U+867a-867b, U+867d, U+8687-8689, U+868b-868d, U+8691, + U+8693, U+8695-8696, U+8698, U+869a, U+869c-869d, U+86a1, U+86a3-86a4, U+86a6-86ab, U+86ad, U+86af-86b1, U+86b3-86b9, U+86bf-86c1, U+86c3-86c6, + U+86c9, U+86cb, U+86ce, U+86d1-86d2, U+86d4-86d5, U+86d7, U+86da, U+86dc, U+86de-86e0, U+86e3-86e7, U+86e9, U+86ec-86ed, U+86ef, U+86f8-86fe, + U+8700, U+8703-870b, U+870d-8714, U+8719-871a, U+871e-871f, U+8721-8723, U+8725, U+8728-8729, U+872e-872f, U+8731-8732, U+8734, U+8737, + U+8739-8740, U+8743, U+8745, U+8749, U+874b-874e, U+8751, U+8753, U+8755, U+8757-8759, U+875d, U+875f-8761, U+8763-8766, U+8768, U+876a, + U+876e-876f, U+8771-8772, U+8774, U+8778, U+877b-877c, U+877f, U+8782-8789, U+878b-878c, U+878e, U+8790, U+8793, U+8795, U+8797-8799, U+879e-87a0, + U+87a2-87a3, U+87a7, U+87ab-87af, U+87b1, U+87b3, U+87b5, U+87bb, U+87bd-87c1, U+87c4, U+87c6-87cb, U+87ce, U+87d0, U+87d2, U+87d5-87d6, + U+87d9-87da, U+87dc, U+87df-87e0; } /* [19] */ @font-face { @@ -1255,8 +2547,20 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.19.woff2) format('woff2'); - unicode-range: U+84b4, U+84b9-84bb, U+84bd-84c2, U+84c6-84ca, U+84cc-84d1, U+84d3, U+84d6, U+84d9-84da, U+84dc, U+84e7, U+84ea, U+84ec, U+84ef-84f2, U+84f4, U+84f7, U+84fa-84fd, U+84ff-8500, U+8502-8503, U+8506-8507, U+850c, U+850e, U+8510, U+8514-8515, U+8517-8518, U+851a-851c, U+851e-851f, U+8521-8525, U+8527, U+852a-852c, U+852f, U+8532-8534, U+8536, U+853e-8541, U+8543, U+8546, U+8548, U+854a-854b, U+854f-8553, U+8555-855a, U+855c-8564, U+8569-856b, U+856d, U+856f, U+8577, U+8579-857b, U+857d-8581, U+8585-8586, U+8588-858c, U+858f-8591, U+8593, U+8597-8598, U+859b-859d, U+859f-85a0, U+85a2, U+85a4-85a5, U+85a7-85a8, U+85ad-85b0, U+85b4, U+85b6-85ba, U+85bc-85bf, U+85c1-85c2, U+85c7, U+85c9-85cb, U+85ce-85d0, U+85d5, U+85d8-85da, U+85dc, U+85df-85e1, U+85e5-85e6, U+85e8, U+85ed, U+85f3-85f4, U+85f6-85f7, U+85f9-85fa, U+85fc, U+85fe-8600, U+8602, U+8604-8606, U+860a-860b, U+860d-860e, U+8610-8613, U+8616-861b, U+861e, U+8621-8622, U+8624, U+8627, U+8629, U+862f-8630, U+8636, U+8638-863a, U+863c-863d, U+863f-8642, U+8646, U+864d, U+8652-8654; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.19.woff2) format('woff2'); + unicode-range: + U+84b4, U+84b9-84bb, U+84bd-84c2, U+84c6-84ca, U+84cc-84d1, U+84d3, U+84d6, U+84d9-84da, U+84dc, U+84e7, U+84ea, U+84ec, U+84ef-84f2, U+84f4, + U+84f7, U+84fa-84fd, U+84ff-8500, U+8502-8503, U+8506-8507, U+850c, U+850e, U+8510, U+8514-8515, U+8517-8518, U+851a-851c, U+851e-851f, + U+8521-8525, U+8527, U+852a-852c, U+852f, U+8532-8534, U+8536, U+853e-8541, U+8543, U+8546, U+8548, U+854a-854b, U+854f-8553, U+8555-855a, + U+855c-8564, U+8569-856b, U+856d, U+856f, U+8577, U+8579-857b, U+857d-8581, U+8585-8586, U+8588-858c, U+858f-8591, U+8593, U+8597-8598, + U+859b-859d, U+859f-85a0, U+85a2, U+85a4-85a5, U+85a7-85a8, U+85ad-85b0, U+85b4, U+85b6-85ba, U+85bc-85bf, U+85c1-85c2, U+85c7, U+85c9-85cb, + U+85ce-85d0, U+85d5, U+85d8-85da, U+85dc, U+85df-85e1, U+85e5-85e6, U+85e8, U+85ed, U+85f3-85f4, U+85f6-85f7, U+85f9-85fa, U+85fc, U+85fe-8600, + U+8602, U+8604-8606, U+860a-860b, U+860d-860e, U+8610-8613, U+8616-861b, U+861e, U+8621-8622, U+8624, U+8627, U+8629, U+862f-8630, U+8636, + U+8638-863a, U+863c-863d, U+863f-8642, U+8646, U+864d, U+8652-8654; } /* [20] */ @font-face { @@ -1264,8 +2568,20 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.20.woff2) format('woff2'); - unicode-range: U+82e8, U+82ea, U+82ed, U+82ef, U+82f3-82f4, U+82f6-82f7, U+82f9, U+82fb, U+82fd-82fe, U+8300-8301, U+8303, U+8306-8308, U+830a-830c, U+8316-8318, U+831b, U+831d-831f, U+8321-8323, U+832b-8335, U+8337, U+833a, U+833c-833d, U+8340, U+8342-8347, U+834a, U+834d-8351, U+8353-8357, U+835a, U+8362-8363, U+8370, U+8373, U+8375, U+8378, U+837c-837d, U+837f-8380, U+8382, U+8384-8387, U+838a, U+838d-838e, U+8392-8396, U+8398-83a0, U+83a2, U+83a6-83ad, U+83b1, U+83b5, U+83bd-83c1, U+83c7, U+83c9, U+83ce-83d1, U+83d4, U+83d6, U+83d8, U+83dd, U+83df-83e1, U+83e5, U+83e8, U+83ea-83eb, U+83f0, U+83f2, U+83f4, U+83f6-83f9, U+83fb-83fd, U+8401, U+8403-8404, U+8406-8407, U+840a-840b, U+840d, U+840f, U+8411, U+8413, U+8415, U+8417, U+8419, U+8420, U+8422, U+842a, U+842f, U+8431, U+8435, U+8438-8439, U+843c, U+8445-8448, U+844a, U+844d-844f, U+8451-8452, U+8456, U+8458-845a, U+845c, U+845f-8462, U+8464-8467, U+8469-846b, U+846d-8470, U+8473-8474, U+8476-847a, U+847c-847d, U+8481-8482, U+8484-8485, U+848b, U+8490, U+8492-8493, U+8495, U+8497, U+849c, U+849e-849f, U+84a1, U+84a6, U+84a8-84aa, U+84ad, U+84af, U+84b1; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.20.woff2) format('woff2'); + unicode-range: + U+82e8, U+82ea, U+82ed, U+82ef, U+82f3-82f4, U+82f6-82f7, U+82f9, U+82fb, U+82fd-82fe, U+8300-8301, U+8303, U+8306-8308, U+830a-830c, U+8316-8318, + U+831b, U+831d-831f, U+8321-8323, U+832b-8335, U+8337, U+833a, U+833c-833d, U+8340, U+8342-8347, U+834a, U+834d-8351, U+8353-8357, U+835a, + U+8362-8363, U+8370, U+8373, U+8375, U+8378, U+837c-837d, U+837f-8380, U+8382, U+8384-8387, U+838a, U+838d-838e, U+8392-8396, U+8398-83a0, U+83a2, + U+83a6-83ad, U+83b1, U+83b5, U+83bd-83c1, U+83c7, U+83c9, U+83ce-83d1, U+83d4, U+83d6, U+83d8, U+83dd, U+83df-83e1, U+83e5, U+83e8, U+83ea-83eb, + U+83f0, U+83f2, U+83f4, U+83f6-83f9, U+83fb-83fd, U+8401, U+8403-8404, U+8406-8407, U+840a-840b, U+840d, U+840f, U+8411, U+8413, U+8415, U+8417, + U+8419, U+8420, U+8422, U+842a, U+842f, U+8431, U+8435, U+8438-8439, U+843c, U+8445-8448, U+844a, U+844d-844f, U+8451-8452, U+8456, U+8458-845a, + U+845c, U+845f-8462, U+8464-8467, U+8469-846b, U+846d-8470, U+8473-8474, U+8476-847a, U+847c-847d, U+8481-8482, U+8484-8485, U+848b, U+8490, + U+8492-8493, U+8495, U+8497, U+849c, U+849e-849f, U+84a1, U+84a6, U+84a8-84aa, U+84ad, U+84af, U+84b1; } /* [21] */ @font-face { @@ -1273,8 +2589,20 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.21.woff2) format('woff2'); - unicode-range: U+814a, U+814c, U+8151-8153, U+8157, U+815f-8161, U+8165-8169, U+816d-816f, U+8171, U+8173-8174, U+8177, U+8180-8186, U+8188, U+818a-818b, U+818e, U+8190, U+8193, U+8195-8196, U+8198, U+819b, U+819e, U+81a0, U+81a2, U+81a4, U+81a9, U+81ae, U+81b0, U+81b2, U+81b4-81b5, U+81b8, U+81ba-81bb, U+81bd-81be, U+81c0-81c3, U+81c5-81c6, U+81c8-81cb, U+81cd-81cf, U+81d1, U+81d5-81db, U+81dd-81e1, U+81e4-81e5, U+81e7, U+81eb-81ec, U+81ef-81f2, U+81f5-81f6, U+81f8-81fb, U+81fd-8205, U+8209-820b, U+820d, U+820f, U+8212-8214, U+8216, U+8219-821d, U+8221-8222, U+8228-8229, U+822b, U+822e, U+8232-8235, U+8237-8238, U+823a, U+823c, U+8240, U+8243-8246, U+8249, U+824b, U+824e-824f, U+8251, U+8256-825a, U+825c-825d, U+825f-8260, U+8262-8264, U+8267-8268, U+826a-826b, U+826d-826e, U+8271, U+8274, U+8277, U+8279, U+827b, U+827d-8281, U+8283-8284, U+8287, U+8289-828a, U+828d-828e, U+8291-8294, U+8296, U+8298-829b, U+829f-82a1, U+82a3-82a4, U+82a7-82ac, U+82ae, U+82b0, U+82b2, U+82b4, U+82b7, U+82ba-82bc, U+82be-82bf, U+82c5-82c6, U+82d0, U+82d2-82d3, U+82d5, U+82d9-82da, U+82dc, U+82de-82e4, U+82e7; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.21.woff2) format('woff2'); + unicode-range: + U+814a, U+814c, U+8151-8153, U+8157, U+815f-8161, U+8165-8169, U+816d-816f, U+8171, U+8173-8174, U+8177, U+8180-8186, U+8188, U+818a-818b, U+818e, + U+8190, U+8193, U+8195-8196, U+8198, U+819b, U+819e, U+81a0, U+81a2, U+81a4, U+81a9, U+81ae, U+81b0, U+81b2, U+81b4-81b5, U+81b8, U+81ba-81bb, + U+81bd-81be, U+81c0-81c3, U+81c5-81c6, U+81c8-81cb, U+81cd-81cf, U+81d1, U+81d5-81db, U+81dd-81e1, U+81e4-81e5, U+81e7, U+81eb-81ec, U+81ef-81f2, + U+81f5-81f6, U+81f8-81fb, U+81fd-8205, U+8209-820b, U+820d, U+820f, U+8212-8214, U+8216, U+8219-821d, U+8221-8222, U+8228-8229, U+822b, U+822e, + U+8232-8235, U+8237-8238, U+823a, U+823c, U+8240, U+8243-8246, U+8249, U+824b, U+824e-824f, U+8251, U+8256-825a, U+825c-825d, U+825f-8260, + U+8262-8264, U+8267-8268, U+826a-826b, U+826d-826e, U+8271, U+8274, U+8277, U+8279, U+827b, U+827d-8281, U+8283-8284, U+8287, U+8289-828a, + U+828d-828e, U+8291-8294, U+8296, U+8298-829b, U+829f-82a1, U+82a3-82a4, U+82a7-82ac, U+82ae, U+82b0, U+82b2, U+82b4, U+82b7, U+82ba-82bc, + U+82be-82bf, U+82c5-82c6, U+82d0, U+82d2-82d3, U+82d5, U+82d9-82da, U+82dc, U+82de-82e4, U+82e7; } /* [22] */ @font-face { @@ -1282,8 +2610,21 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.22.woff2) format('woff2'); - unicode-range: U+7f77-7f79, U+7f7d-7f80, U+7f82-7f83, U+7f86-7f88, U+7f8b-7f8d, U+7f8f-7f91, U+7f94, U+7f96-7f97, U+7f9a, U+7f9c-7f9d, U+7fa1-7fa3, U+7fa6, U+7faa, U+7fad-7faf, U+7fb2, U+7fb4, U+7fb6, U+7fb8-7fb9, U+7fbc, U+7fbf-7fc0, U+7fc3, U+7fc5-7fc6, U+7fc8, U+7fca, U+7fce-7fcf, U+7fd5, U+7fdb, U+7fdf, U+7fe1, U+7fe3, U+7fe5-7fe6, U+7fe8-7fe9, U+7feb-7fec, U+7fee-7ff0, U+7ff2-7ff3, U+7ff9-7ffa, U+7ffd-7fff, U+8002, U+8004, U+8006-8008, U+800a-800f, U+8011-8014, U+8016, U+8018-8019, U+801c-8021, U+8024, U+8026, U+8028, U+802c, U+802e, U+8030, U+8034-8035, U+8037, U+8039-8040, U+8043-8044, U+8046, U+804a, U+8052, U+8058, U+805a, U+805f-8060, U+8062, U+8064, U+8066, U+8068, U+806d, U+806f-8073, U+8075-8076, U+8079, U+807b, U+807d-8081, U+8084-8088, U+808b, U+808e, U+8093, U+8099-809a, U+809c, U+809e, U+80a4, U+80a6-80a7, U+80ab-80ad, U+80b1, U+80b8-80b9, U+80c4-80c5, U+80c8, U+80ca, U+80cd, U+80cf, U+80d2, U+80d4-80db, U+80dd, U+80e0, U+80e4-80e6, U+80ed-80f3, U+80f5-80f7, U+80f9-80fc, U+80fe, U+8101, U+8103, U+8109, U+810b, U+810d, U+8116-8118, U+811b-811c, U+811e, U+8120, U+8123-8124, U+8127, U+8129, U+812b-812c, U+812f-8130, U+8135, U+8139-813a, U+813c-813e, U+8141, U+8145-8147; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.22.woff2) format('woff2'); + unicode-range: + U+7f77-7f79, U+7f7d-7f80, U+7f82-7f83, U+7f86-7f88, U+7f8b-7f8d, U+7f8f-7f91, U+7f94, U+7f96-7f97, U+7f9a, U+7f9c-7f9d, U+7fa1-7fa3, U+7fa6, + U+7faa, U+7fad-7faf, U+7fb2, U+7fb4, U+7fb6, U+7fb8-7fb9, U+7fbc, U+7fbf-7fc0, U+7fc3, U+7fc5-7fc6, U+7fc8, U+7fca, U+7fce-7fcf, U+7fd5, U+7fdb, + U+7fdf, U+7fe1, U+7fe3, U+7fe5-7fe6, U+7fe8-7fe9, U+7feb-7fec, U+7fee-7ff0, U+7ff2-7ff3, U+7ff9-7ffa, U+7ffd-7fff, U+8002, U+8004, U+8006-8008, + U+800a-800f, U+8011-8014, U+8016, U+8018-8019, U+801c-8021, U+8024, U+8026, U+8028, U+802c, U+802e, U+8030, U+8034-8035, U+8037, U+8039-8040, + U+8043-8044, U+8046, U+804a, U+8052, U+8058, U+805a, U+805f-8060, U+8062, U+8064, U+8066, U+8068, U+806d, U+806f-8073, U+8075-8076, U+8079, + U+807b, U+807d-8081, U+8084-8088, U+808b, U+808e, U+8093, U+8099-809a, U+809c, U+809e, U+80a4, U+80a6-80a7, U+80ab-80ad, U+80b1, U+80b8-80b9, + U+80c4-80c5, U+80c8, U+80ca, U+80cd, U+80cf, U+80d2, U+80d4-80db, U+80dd, U+80e0, U+80e4-80e6, U+80ed-80f3, U+80f5-80f7, U+80f9-80fc, U+80fe, + U+8101, U+8103, U+8109, U+810b, U+810d, U+8116-8118, U+811b-811c, U+811e, U+8120, U+8123-8124, U+8127, U+8129, U+812b-812c, U+812f-8130, U+8135, + U+8139-813a, U+813c-813e, U+8141, U+8145-8147; } /* [23] */ @font-face { @@ -1291,8 +2632,19 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.23.woff2) format('woff2'); - unicode-range: U+7d57, U+7d59-7d5d, U+7d63, U+7d65, U+7d67, U+7d6a, U+7d6e, U+7d70, U+7d72-7d73, U+7d78, U+7d7a-7d7b, U+7d7d, U+7d7f, U+7d81-7d83, U+7d85-7d86, U+7d88-7d89, U+7d8b-7d8d, U+7d8f, U+7d91, U+7d93, U+7d96-7d97, U+7d9b-7da0, U+7da2-7da3, U+7da6-7da7, U+7daa-7dac, U+7dae-7db0, U+7db3, U+7db5-7db9, U+7dbd, U+7dc0, U+7dc2-7dc7, U+7dcc-7dce, U+7dd0, U+7dd5-7dd9, U+7ddc-7dde, U+7de1-7de6, U+7dea-7ded, U+7df1-7df2, U+7df5-7df6, U+7df9-7dfa, U+7e00, U+7e05, U+7e08-7e0b, U+7e10-7e12, U+7e15, U+7e17, U+7e1c-7e1d, U+7e1f-7e23, U+7e27-7e28, U+7e2c-7e2d, U+7e2f, U+7e31-7e33, U+7e35-7e37, U+7e39-7e3b, U+7e3d, U+7e3f, U+7e43-7e48, U+7e4e, U+7e50, U+7e52, U+7e56, U+7e58-7e5a, U+7e5d-7e5f, U+7e61-7e62, U+7e65-7e67, U+7e69-7e6b, U+7e6d-7e6f, U+7e73, U+7e75, U+7e78-7e79, U+7e7b-7e7f, U+7e81-7e83, U+7e86-7e8a, U+7e8c-7e8e, U+7e90-7e96, U+7e98, U+7e9a-7e9f, U+7f38, U+7f3a-7f3f, U+7f43-7f45, U+7f47, U+7f4c-7f50, U+7f52-7f55, U+7f58, U+7f5b-7f5d, U+7f5f, U+7f61, U+7f63-7f69, U+7f6b, U+7f6d, U+7f71; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.23.woff2) format('woff2'); + unicode-range: + U+7d57, U+7d59-7d5d, U+7d63, U+7d65, U+7d67, U+7d6a, U+7d6e, U+7d70, U+7d72-7d73, U+7d78, U+7d7a-7d7b, U+7d7d, U+7d7f, U+7d81-7d83, U+7d85-7d86, + U+7d88-7d89, U+7d8b-7d8d, U+7d8f, U+7d91, U+7d93, U+7d96-7d97, U+7d9b-7da0, U+7da2-7da3, U+7da6-7da7, U+7daa-7dac, U+7dae-7db0, U+7db3, + U+7db5-7db9, U+7dbd, U+7dc0, U+7dc2-7dc7, U+7dcc-7dce, U+7dd0, U+7dd5-7dd9, U+7ddc-7dde, U+7de1-7de6, U+7dea-7ded, U+7df1-7df2, U+7df5-7df6, + U+7df9-7dfa, U+7e00, U+7e05, U+7e08-7e0b, U+7e10-7e12, U+7e15, U+7e17, U+7e1c-7e1d, U+7e1f-7e23, U+7e27-7e28, U+7e2c-7e2d, U+7e2f, U+7e31-7e33, + U+7e35-7e37, U+7e39-7e3b, U+7e3d, U+7e3f, U+7e43-7e48, U+7e4e, U+7e50, U+7e52, U+7e56, U+7e58-7e5a, U+7e5d-7e5f, U+7e61-7e62, U+7e65-7e67, + U+7e69-7e6b, U+7e6d-7e6f, U+7e73, U+7e75, U+7e78-7e79, U+7e7b-7e7f, U+7e81-7e83, U+7e86-7e8a, U+7e8c-7e8e, U+7e90-7e96, U+7e98, U+7e9a-7e9f, + U+7f38, U+7f3a-7f3f, U+7f43-7f45, U+7f47, U+7f4c-7f50, U+7f52-7f55, U+7f58, U+7f5b-7f5d, U+7f5f, U+7f61, U+7f63-7f69, U+7f6b, U+7f6d, U+7f71; } /* [24] */ @font-face { @@ -1300,8 +2652,20 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.24.woff2) format('woff2'); - unicode-range: U+7bc8, U+7bca-7bcc, U+7bcf, U+7bd4, U+7bd6-7bd7, U+7bd9-7bdb, U+7bdd, U+7be5-7be6, U+7be8-7bea, U+7bf0, U+7bf2-7bfa, U+7bfc, U+7bfe, U+7c00-7c04, U+7c06-7c07, U+7c09, U+7c0b-7c0f, U+7c11-7c14, U+7c17, U+7c19, U+7c1b, U+7c1e-7c20, U+7c23, U+7c25-7c28, U+7c2a-7c2c, U+7c2f, U+7c31, U+7c33-7c34, U+7c36-7c3a, U+7c3d-7c3e, U+7c40, U+7c42-7c43, U+7c45-7c46, U+7c4a, U+7c4c, U+7c4f-7c5f, U+7c61, U+7c63-7c65, U+7c67, U+7c69, U+7c6c-7c70, U+7c72, U+7c75, U+7c79, U+7c7b-7c7e, U+7c81-7c83, U+7c86-7c87, U+7c8d, U+7c8f-7c90, U+7c94, U+7c9e, U+7ca0-7ca2, U+7ca4-7ca6, U+7ca8, U+7cab, U+7cad-7cae, U+7cb0-7cb3, U+7cb6-7cb7, U+7cb9-7cbd, U+7cbf-7cc0, U+7cc2, U+7cc4-7cc5, U+7cc7-7cca, U+7ccd-7ccf, U+7cd2-7cd5, U+7cd7-7cda, U+7cdc-7cdd, U+7cdf-7ce0, U+7ce2, U+7ce6, U+7ce9, U+7ceb, U+7cef, U+7cf2, U+7cf4-7cf6, U+7cf9-7cfa, U+7cfe, U+7d02-7d03, U+7d06-7d0a, U+7d0f, U+7d11-7d13, U+7d15-7d16, U+7d1c-7d1e, U+7d23, U+7d26, U+7d2a, U+7d2c-7d2e, U+7d31-7d32, U+7d35, U+7d3c-7d41, U+7d43, U+7d45, U+7d47-7d48, U+7d4b, U+7d4d-7d4f, U+7d51, U+7d53, U+7d55-7d56; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.24.woff2) format('woff2'); + unicode-range: + U+7bc8, U+7bca-7bcc, U+7bcf, U+7bd4, U+7bd6-7bd7, U+7bd9-7bdb, U+7bdd, U+7be5-7be6, U+7be8-7bea, U+7bf0, U+7bf2-7bfa, U+7bfc, U+7bfe, U+7c00-7c04, + U+7c06-7c07, U+7c09, U+7c0b-7c0f, U+7c11-7c14, U+7c17, U+7c19, U+7c1b, U+7c1e-7c20, U+7c23, U+7c25-7c28, U+7c2a-7c2c, U+7c2f, U+7c31, U+7c33-7c34, + U+7c36-7c3a, U+7c3d-7c3e, U+7c40, U+7c42-7c43, U+7c45-7c46, U+7c4a, U+7c4c, U+7c4f-7c5f, U+7c61, U+7c63-7c65, U+7c67, U+7c69, U+7c6c-7c70, U+7c72, + U+7c75, U+7c79, U+7c7b-7c7e, U+7c81-7c83, U+7c86-7c87, U+7c8d, U+7c8f-7c90, U+7c94, U+7c9e, U+7ca0-7ca2, U+7ca4-7ca6, U+7ca8, U+7cab, U+7cad-7cae, + U+7cb0-7cb3, U+7cb6-7cb7, U+7cb9-7cbd, U+7cbf-7cc0, U+7cc2, U+7cc4-7cc5, U+7cc7-7cca, U+7ccd-7ccf, U+7cd2-7cd5, U+7cd7-7cda, U+7cdc-7cdd, + U+7cdf-7ce0, U+7ce2, U+7ce6, U+7ce9, U+7ceb, U+7cef, U+7cf2, U+7cf4-7cf6, U+7cf9-7cfa, U+7cfe, U+7d02-7d03, U+7d06-7d0a, U+7d0f, U+7d11-7d13, + U+7d15-7d16, U+7d1c-7d1e, U+7d23, U+7d26, U+7d2a, U+7d2c-7d2e, U+7d31-7d32, U+7d35, U+7d3c-7d41, U+7d43, U+7d45, U+7d47-7d48, U+7d4b, U+7d4d-7d4f, + U+7d51, U+7d53, U+7d55-7d56; } /* [25] */ @font-face { @@ -1309,8 +2673,20 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.25.woff2) format('woff2'); - unicode-range: U+7a17-7a19, U+7a1b, U+7a1e-7a21, U+7a27, U+7a2b, U+7a2d, U+7a2f-7a31, U+7a34-7a35, U+7a37-7a3b, U+7a3e, U+7a43-7a49, U+7a4c, U+7a4e, U+7a50, U+7a55-7a57, U+7a59, U+7a5c-7a5d, U+7a5f-7a63, U+7a65, U+7a67, U+7a69-7a6a, U+7a6d, U+7a70, U+7a75, U+7a78-7a79, U+7a7d-7a7e, U+7a80, U+7a82, U+7a84-7a86, U+7a88, U+7a8a-7a8b, U+7a90-7a91, U+7a94-7a98, U+7a9e, U+7aa0, U+7aa3, U+7aa9, U+7aac, U+7ab0, U+7ab3, U+7ab5-7ab6, U+7ab9-7abf, U+7ac3, U+7ac5-7aca, U+7acc-7acf, U+7ad1-7ad3, U+7ad5, U+7ada-7adb, U+7add, U+7adf, U+7ae1-7ae2, U+7ae6-7aed, U+7af0-7af1, U+7af4, U+7af8, U+7afa-7afb, U+7afd-7afe, U+7b02, U+7b04, U+7b06-7b08, U+7b0a-7b0b, U+7b0f, U+7b12, U+7b14, U+7b18-7b19, U+7b1e-7b1f, U+7b23, U+7b25, U+7b27-7b2b, U+7b2d-7b31, U+7b33-7b36, U+7b3b, U+7b3d, U+7b3f-7b41, U+7b45, U+7b47, U+7b4c-7b50, U+7b53, U+7b55, U+7b5d, U+7b60, U+7b64-7b66, U+7b69-7b6a, U+7b6c-7b75, U+7b77, U+7b79-7b7a, U+7b7f, U+7b84, U+7b86, U+7b89, U+7b8d-7b92, U+7b96, U+7b98-7ba0, U+7ba5, U+7bac-7bad, U+7baf-7bb0, U+7bb2, U+7bb4-7bb6, U+7bba-7bbd, U+7bc1-7bc2, U+7bc5-7bc6; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.25.woff2) format('woff2'); + unicode-range: + U+7a17-7a19, U+7a1b, U+7a1e-7a21, U+7a27, U+7a2b, U+7a2d, U+7a2f-7a31, U+7a34-7a35, U+7a37-7a3b, U+7a3e, U+7a43-7a49, U+7a4c, U+7a4e, U+7a50, + U+7a55-7a57, U+7a59, U+7a5c-7a5d, U+7a5f-7a63, U+7a65, U+7a67, U+7a69-7a6a, U+7a6d, U+7a70, U+7a75, U+7a78-7a79, U+7a7d-7a7e, U+7a80, U+7a82, + U+7a84-7a86, U+7a88, U+7a8a-7a8b, U+7a90-7a91, U+7a94-7a98, U+7a9e, U+7aa0, U+7aa3, U+7aa9, U+7aac, U+7ab0, U+7ab3, U+7ab5-7ab6, U+7ab9-7abf, + U+7ac3, U+7ac5-7aca, U+7acc-7acf, U+7ad1-7ad3, U+7ad5, U+7ada-7adb, U+7add, U+7adf, U+7ae1-7ae2, U+7ae6-7aed, U+7af0-7af1, U+7af4, U+7af8, + U+7afa-7afb, U+7afd-7afe, U+7b02, U+7b04, U+7b06-7b08, U+7b0a-7b0b, U+7b0f, U+7b12, U+7b14, U+7b18-7b19, U+7b1e-7b1f, U+7b23, U+7b25, U+7b27-7b2b, + U+7b2d-7b31, U+7b33-7b36, U+7b3b, U+7b3d, U+7b3f-7b41, U+7b45, U+7b47, U+7b4c-7b50, U+7b53, U+7b55, U+7b5d, U+7b60, U+7b64-7b66, U+7b69-7b6a, + U+7b6c-7b75, U+7b77, U+7b79-7b7a, U+7b7f, U+7b84, U+7b86, U+7b89, U+7b8d-7b92, U+7b96, U+7b98-7ba0, U+7ba5, U+7bac-7bad, U+7baf-7bb0, U+7bb2, + U+7bb4-7bb6, U+7bba-7bbd, U+7bc1-7bc2, U+7bc5-7bc6; } /* [26] */ @font-face { @@ -1318,8 +2694,20 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.26.woff2) format('woff2'); - unicode-range: U+7851-7852, U+785c, U+785e, U+7860-7861, U+7863-7864, U+7868, U+786a, U+786e-786f, U+7872, U+7874, U+787a, U+787c, U+787e, U+7886-7887, U+788a, U+788c-788f, U+7893-7895, U+7898, U+789a, U+789d-789f, U+78a1, U+78a3-78a4, U+78a8-78aa, U+78ac-78ad, U+78af-78b3, U+78b5, U+78bb-78bf, U+78c5-78cc, U+78ce, U+78d1-78d6, U+78da-78db, U+78df-78e1, U+78e4, U+78e6-78e7, U+78ea, U+78ec, U+78f2-78f4, U+78f6-78f7, U+78f9-78fb, U+78fd-7901, U+7906-7907, U+790c, U+7910-7912, U+7919-791c, U+791e-7920, U+7925-792e, U+7930-7931, U+7934-7935, U+793b, U+793d, U+793f, U+7941-7942, U+7944-7946, U+794a-794b, U+794f, U+7951, U+7954-7955, U+7957-7958, U+795a-795c, U+795f-7960, U+7962, U+7967, U+7969, U+796b, U+7972, U+7977, U+7979-797c, U+797e-7980, U+798a-798e, U+7991, U+7993-7996, U+7998, U+799b-799d, U+79a1, U+79a6-79ab, U+79ae-79b1, U+79b3-79b4, U+79b8-79bb, U+79bd-79be, U+79c2, U+79c4, U+79c7-79ca, U+79cc-79cd, U+79cf, U+79d4-79d6, U+79da, U+79dd-79e3, U+79e5, U+79e7, U+79ea-79ed, U+79f1, U+79f8, U+79fc, U+7a02-7a03, U+7a05, U+7a07-7a0a, U+7a0c-7a0d, U+7a11, U+7a15; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.26.woff2) format('woff2'); + unicode-range: + U+7851-7852, U+785c, U+785e, U+7860-7861, U+7863-7864, U+7868, U+786a, U+786e-786f, U+7872, U+7874, U+787a, U+787c, U+787e, U+7886-7887, U+788a, + U+788c-788f, U+7893-7895, U+7898, U+789a, U+789d-789f, U+78a1, U+78a3-78a4, U+78a8-78aa, U+78ac-78ad, U+78af-78b3, U+78b5, U+78bb-78bf, + U+78c5-78cc, U+78ce, U+78d1-78d6, U+78da-78db, U+78df-78e1, U+78e4, U+78e6-78e7, U+78ea, U+78ec, U+78f2-78f4, U+78f6-78f7, U+78f9-78fb, + U+78fd-7901, U+7906-7907, U+790c, U+7910-7912, U+7919-791c, U+791e-7920, U+7925-792e, U+7930-7931, U+7934-7935, U+793b, U+793d, U+793f, + U+7941-7942, U+7944-7946, U+794a-794b, U+794f, U+7951, U+7954-7955, U+7957-7958, U+795a-795c, U+795f-7960, U+7962, U+7967, U+7969, U+796b, U+7972, + U+7977, U+7979-797c, U+797e-7980, U+798a-798e, U+7991, U+7993-7996, U+7998, U+799b-799d, U+79a1, U+79a6-79ab, U+79ae-79b1, U+79b3-79b4, + U+79b8-79bb, U+79bd-79be, U+79c2, U+79c4, U+79c7-79ca, U+79cc-79cd, U+79cf, U+79d4-79d6, U+79da, U+79dd-79e3, U+79e5, U+79e7, U+79ea-79ed, U+79f1, + U+79f8, U+79fc, U+7a02-7a03, U+7a05, U+7a07-7a0a, U+7a0c-7a0d, U+7a11, U+7a15; } /* [27] */ @font-face { @@ -1327,8 +2715,20 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.27.woff2) format('woff2'); - unicode-range: U+768c-768e, U+7690, U+7693, U+7695-7696, U+7699-76a8, U+76aa, U+76ad, U+76af-76b0, U+76b4, U+76b6-76ba, U+76bd, U+76c1-76c3, U+76c5, U+76c8-76c9, U+76cb-76ce, U+76d2, U+76d4, U+76d6, U+76d9, U+76dc, U+76de, U+76e0-76e1, U+76e5-76e8, U+76ea-76ec, U+76f0-76f1, U+76f6, U+76f9, U+76fb-76fc, U+7700, U+7704, U+7706-7708, U+770a, U+770e, U+7712, U+7714-7715, U+7717, U+7719-771c, U+7722, U+7724-7726, U+7728, U+772d-772f, U+7734-7739, U+773d-773e, U+7742, U+7745-7747, U+774a, U+774d-774f, U+7752, U+7756-7758, U+775a-775c, U+775e-7760, U+7762, U+7764-7765, U+7767, U+776a-776c, U+7770, U+7772-7774, U+7779-777a, U+777c-7780, U+7784, U+778b-778e, U+7794-7796, U+779a, U+779e-77a0, U+77a2, U+77a4-77a5, U+77a7, U+77a9-77aa, U+77ae-77b1, U+77b5-77b7, U+77b9, U+77bb-77bf, U+77c3, U+77c7, U+77c9, U+77cd, U+77d1-77d2, U+77d5, U+77d7, U+77d9-77da, U+77dc, U+77de-77e0, U+77e3-77e4, U+77e6-77e7, U+77e9-77ea, U+77ec, U+77ee, U+77f0-77f1, U+77f4, U+77f8, U+77fb-77fc, U+7805-7806, U+7809, U+780c-780e, U+7811-7812, U+7819, U+781d, U+7820-7823, U+7826-7827, U+782c-782e, U+7830, U+7835, U+7837, U+783a, U+783f, U+7843-7845, U+7847-7848, U+784c, U+784e-784f; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.27.woff2) format('woff2'); + unicode-range: + U+768c-768e, U+7690, U+7693, U+7695-7696, U+7699-76a8, U+76aa, U+76ad, U+76af-76b0, U+76b4, U+76b6-76ba, U+76bd, U+76c1-76c3, U+76c5, U+76c8-76c9, + U+76cb-76ce, U+76d2, U+76d4, U+76d6, U+76d9, U+76dc, U+76de, U+76e0-76e1, U+76e5-76e8, U+76ea-76ec, U+76f0-76f1, U+76f6, U+76f9, U+76fb-76fc, + U+7700, U+7704, U+7706-7708, U+770a, U+770e, U+7712, U+7714-7715, U+7717, U+7719-771c, U+7722, U+7724-7726, U+7728, U+772d-772f, U+7734-7739, + U+773d-773e, U+7742, U+7745-7747, U+774a, U+774d-774f, U+7752, U+7756-7758, U+775a-775c, U+775e-7760, U+7762, U+7764-7765, U+7767, U+776a-776c, + U+7770, U+7772-7774, U+7779-777a, U+777c-7780, U+7784, U+778b-778e, U+7794-7796, U+779a, U+779e-77a0, U+77a2, U+77a4-77a5, U+77a7, U+77a9-77aa, + U+77ae-77b1, U+77b5-77b7, U+77b9, U+77bb-77bf, U+77c3, U+77c7, U+77c9, U+77cd, U+77d1-77d2, U+77d5, U+77d7, U+77d9-77da, U+77dc, U+77de-77e0, + U+77e3-77e4, U+77e6-77e7, U+77e9-77ea, U+77ec, U+77ee, U+77f0-77f1, U+77f4, U+77f8, U+77fb-77fc, U+7805-7806, U+7809, U+780c-780e, U+7811-7812, + U+7819, U+781d, U+7820-7823, U+7826-7827, U+782c-782e, U+7830, U+7835, U+7837, U+783a, U+783f, U+7843-7845, U+7847-7848, U+784c, U+784e-784f; } /* [28] */ @font-face { @@ -1336,8 +2736,19 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.28.woff2) format('woff2'); - unicode-range: U+7511-7513, U+7515-7517, U+751c, U+751e, U+7520-7522, U+7524, U+7526-7527, U+7529-752c, U+752f, U+7536, U+7538-7539, U+753c-7540, U+7543-7544, U+7546-754b, U+754d-7550, U+7552, U+7557, U+755a-755b, U+755d-755f, U+7561-7562, U+7564, U+7566-7567, U+7569, U+756b-756d, U+756f, U+7571-7572, U+7574-757e, U+7581-7582, U+7585-7587, U+7589-758c, U+758f-7590, U+7592-7595, U+7599-759a, U+759c-759d, U+75a2-75a5, U+75b0-75b1, U+75b3-75b5, U+75b7-75b8, U+75ba, U+75bd, U+75bf-75c4, U+75c6, U+75ca, U+75cc-75cf, U+75d3-75d4, U+75d7-75d8, U+75dc-75e1, U+75e3-75e4, U+75e7, U+75ec, U+75ee-75f3, U+75f9, U+75fc, U+75fe-7604, U+7607-760c, U+760f, U+7612-7613, U+7615-7616, U+7618-7619, U+761b-7629, U+762d, U+7630, U+7632-7635, U+7638-763c, U+7640-7641, U+7643-764b, U+764e, U+7655, U+7658-7659, U+765c, U+765f, U+7661-7662, U+7664-7665, U+7667-766a, U+766c-7672, U+7674, U+7676, U+7678, U+7680-7683, U+7685, U+7688, U+768b; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.28.woff2) format('woff2'); + unicode-range: + U+7511-7513, U+7515-7517, U+751c, U+751e, U+7520-7522, U+7524, U+7526-7527, U+7529-752c, U+752f, U+7536, U+7538-7539, U+753c-7540, U+7543-7544, + U+7546-754b, U+754d-7550, U+7552, U+7557, U+755a-755b, U+755d-755f, U+7561-7562, U+7564, U+7566-7567, U+7569, U+756b-756d, U+756f, U+7571-7572, + U+7574-757e, U+7581-7582, U+7585-7587, U+7589-758c, U+758f-7590, U+7592-7595, U+7599-759a, U+759c-759d, U+75a2-75a5, U+75b0-75b1, U+75b3-75b5, + U+75b7-75b8, U+75ba, U+75bd, U+75bf-75c4, U+75c6, U+75ca, U+75cc-75cf, U+75d3-75d4, U+75d7-75d8, U+75dc-75e1, U+75e3-75e4, U+75e7, U+75ec, + U+75ee-75f3, U+75f9, U+75fc, U+75fe-7604, U+7607-760c, U+760f, U+7612-7613, U+7615-7616, U+7618-7619, U+761b-7629, U+762d, U+7630, U+7632-7635, + U+7638-763c, U+7640-7641, U+7643-764b, U+764e, U+7655, U+7658-7659, U+765c, U+765f, U+7661-7662, U+7664-7665, U+7667-766a, U+766c-7672, U+7674, + U+7676, U+7678, U+7680-7683, U+7685, U+7688, U+768b; } /* [29] */ @font-face { @@ -1345,8 +2756,20 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.29.woff2) format('woff2'); - unicode-range: U+736c, U+736e-7371, U+7375, U+7377-737c, U+7380-7381, U+7383, U+7385-7386, U+738a, U+738e, U+7390, U+7393-7398, U+739c, U+739e-73a0, U+73a2, U+73a5-73a6, U+73a8, U+73aa-73ab, U+73ad, U+73b3, U+73b5, U+73b7, U+73b9-73bd, U+73bf, U+73c5-73c6, U+73c9-73cc, U+73ce-73cf, U+73d2-73d3, U+73d6, U+73d9, U+73dd-73de, U+73e1, U+73e3-73e7, U+73e9-73ea, U+73ee, U+73f1, U+73f4-73f5, U+73f7-73fb, U+73fd, U+73ff-7401, U+7404-7405, U+7407, U+740a, U+7411, U+7413, U+741a-741b, U+7421, U+7424, U+7426, U+7428-7431, U+7433, U+7439-743a, U+743f-7441, U+7443-7444, U+7446-7447, U+744b, U+744d, U+7451-7453, U+7455, U+7457, U+7459-745a, U+745c-745d, U+745f, U+7462-7464, U+7466-746b, U+746d-7473, U+7476, U+747e, U+7480-7481, U+7485-7489, U+748b, U+748f-7492, U+7497-749a, U+749c, U+749e-74a3, U+74a5-74a6, U+74a8-74ab, U+74ae-74af, U+74b1-74b2, U+74b5, U+74b9-74bb, U+74bd, U+74bf, U+74c8-74ca, U+74cc, U+74cf-74d0, U+74d3-74d4, U+74d6, U+74d8, U+74da-74db, U+74de-74e0, U+74e3-74e4, U+74e7-74eb, U+74ee-74f2, U+74f4, U+74f7-74f8, U+74fa-74fc, U+74ff, U+7501, U+7503-7506, U+750c-750e; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.29.woff2) format('woff2'); + unicode-range: + U+736c, U+736e-7371, U+7375, U+7377-737c, U+7380-7381, U+7383, U+7385-7386, U+738a, U+738e, U+7390, U+7393-7398, U+739c, U+739e-73a0, U+73a2, + U+73a5-73a6, U+73a8, U+73aa-73ab, U+73ad, U+73b3, U+73b5, U+73b7, U+73b9-73bd, U+73bf, U+73c5-73c6, U+73c9-73cc, U+73ce-73cf, U+73d2-73d3, U+73d6, + U+73d9, U+73dd-73de, U+73e1, U+73e3-73e7, U+73e9-73ea, U+73ee, U+73f1, U+73f4-73f5, U+73f7-73fb, U+73fd, U+73ff-7401, U+7404-7405, U+7407, U+740a, + U+7411, U+7413, U+741a-741b, U+7421, U+7424, U+7426, U+7428-7431, U+7433, U+7439-743a, U+743f-7441, U+7443-7444, U+7446-7447, U+744b, U+744d, + U+7451-7453, U+7455, U+7457, U+7459-745a, U+745c-745d, U+745f, U+7462-7464, U+7466-746b, U+746d-7473, U+7476, U+747e, U+7480-7481, U+7485-7489, + U+748b, U+748f-7492, U+7497-749a, U+749c, U+749e-74a3, U+74a5-74a6, U+74a8-74ab, U+74ae-74af, U+74b1-74b2, U+74b5, U+74b9-74bb, U+74bd, U+74bf, + U+74c8-74ca, U+74cc, U+74cf-74d0, U+74d3-74d4, U+74d6, U+74d8, U+74da-74db, U+74de-74e0, U+74e3-74e4, U+74e7-74eb, U+74ee-74f2, U+74f4, + U+74f7-74f8, U+74fa-74fc, U+74ff, U+7501, U+7503-7506, U+750c-750e; } /* [30] */ @font-face { @@ -1354,8 +2777,21 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.30.woff2) format('woff2'); - unicode-range: U+7166, U+7168, U+716c, U+7179, U+7180, U+7184-7185, U+7187-7188, U+718c, U+718f, U+7192, U+7194-7196, U+7199-719b, U+71a0, U+71a2, U+71a8, U+71ac, U+71ae-71b0, U+71b2-71b3, U+71b9-71ba, U+71be-71c1, U+71c4, U+71c9, U+71cb-71cc, U+71ce, U+71d0, U+71d2-71d4, U+71d6-71d7, U+71d9-71da, U+71dc, U+71df-71e0, U+71e6-71e7, U+71ec-71ee, U+71f4-71f5, U+71f8-71f9, U+71fc, U+71fe-7200, U+7207-7209, U+720d, U+7210, U+7213, U+7215, U+7217, U+721a, U+721d, U+721f, U+7224, U+7228, U+722b, U+722d, U+722f-7230, U+7232, U+7234, U+7238-7239, U+723b-723c, U+723e-7243, U+7245-7246, U+724b, U+724e-7250, U+7252-7253, U+7255-7258, U+725a, U+725c, U+725e, U+7260, U+7263, U+7268, U+726b, U+726e-726f, U+7271, U+7274, U+7277-7278, U+727b-727c, U+727e-7282, U+7284, U+7287, U+7289, U+728d-728e, U+7292-7293, U+7296, U+729b, U+72a2, U+72a7-72a8, U+72ad-72ae, U+72b0-72b2, U+72b4, U+72b9, U+72be, U+72c0-72c1, U+72c3-72c4, U+72c6-72c7, U+72c9, U+72cc, U+72ce, U+72d2, U+72d5-72d6, U+72d8, U+72df-72e2, U+72e5, U+72f3-72f4, U+72f7, U+72f9-72fb, U+72fd-72fe, U+7302, U+7304-7305, U+7307, U+730a-730b, U+730d, U+7312-7313, U+7316-7319, U+731c-731e, U+7322, U+7324, U+7327-7329, U+732c, U+732f, U+7331-7337, U+7339-733b, U+733d-733e, U+7343, U+734d-7350, U+7352, U+7356-7358, U+735d-7360, U+7366-736b; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.30.woff2) format('woff2'); + unicode-range: + U+7166, U+7168, U+716c, U+7179, U+7180, U+7184-7185, U+7187-7188, U+718c, U+718f, U+7192, U+7194-7196, U+7199-719b, U+71a0, U+71a2, U+71a8, + U+71ac, U+71ae-71b0, U+71b2-71b3, U+71b9-71ba, U+71be-71c1, U+71c4, U+71c9, U+71cb-71cc, U+71ce, U+71d0, U+71d2-71d4, U+71d6-71d7, U+71d9-71da, + U+71dc, U+71df-71e0, U+71e6-71e7, U+71ec-71ee, U+71f4-71f5, U+71f8-71f9, U+71fc, U+71fe-7200, U+7207-7209, U+720d, U+7210, U+7213, U+7215, U+7217, + U+721a, U+721d, U+721f, U+7224, U+7228, U+722b, U+722d, U+722f-7230, U+7232, U+7234, U+7238-7239, U+723b-723c, U+723e-7243, U+7245-7246, U+724b, + U+724e-7250, U+7252-7253, U+7255-7258, U+725a, U+725c, U+725e, U+7260, U+7263, U+7268, U+726b, U+726e-726f, U+7271, U+7274, U+7277-7278, + U+727b-727c, U+727e-7282, U+7284, U+7287, U+7289, U+728d-728e, U+7292-7293, U+7296, U+729b, U+72a2, U+72a7-72a8, U+72ad-72ae, U+72b0-72b2, U+72b4, + U+72b9, U+72be, U+72c0-72c1, U+72c3-72c4, U+72c6-72c7, U+72c9, U+72cc, U+72ce, U+72d2, U+72d5-72d6, U+72d8, U+72df-72e2, U+72e5, U+72f3-72f4, + U+72f7, U+72f9-72fb, U+72fd-72fe, U+7302, U+7304-7305, U+7307, U+730a-730b, U+730d, U+7312-7313, U+7316-7319, U+731c-731e, U+7322, U+7324, + U+7327-7329, U+732c, U+732f, U+7331-7337, U+7339-733b, U+733d-733e, U+7343, U+734d-7350, U+7352, U+7356-7358, U+735d-7360, U+7366-736b; } /* [31] */ @font-face { @@ -1363,8 +2799,21 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.31.woff2) format('woff2'); - unicode-range: U+6f58-6f5b, U+6f5d-6f5e, U+6f60-6f62, U+6f66, U+6f68, U+6f6c-6f6d, U+6f6f, U+6f74, U+6f78, U+6f7a, U+6f7c-6f7e, U+6f80, U+6f82-6f83, U+6f86-6f88, U+6f8b-6f8e, U+6f90-6f94, U+6f96-6f98, U+6f9a, U+6f9d, U+6f9f-6fa1, U+6fa3, U+6fa5-6fa8, U+6fae-6fb1, U+6fb3, U+6fb5-6fb7, U+6fb9, U+6fbc, U+6fbe, U+6fc2, U+6fc5-6fca, U+6fd4-6fd5, U+6fd8, U+6fda-6fdb, U+6fde-6fe0, U+6fe4, U+6fe8-6fe9, U+6feb-6fec, U+6fee, U+6ff0, U+6ff3, U+6ff5-6ff6, U+6ff9-6ffa, U+6ffc-6ffe, U+7000-7001, U+7005-7007, U+7009-700b, U+700d, U+700f, U+7011, U+7015, U+7017-7018, U+701a-701b, U+701d-7020, U+7023, U+7026, U+7028, U+702f-7030, U+7032, U+7034, U+7037, U+7039-703a, U+703c, U+703e, U+7043-7044, U+7047-704c, U+704e, U+7051, U+7054-7055, U+705d-705e, U+7064-7065, U+7069, U+706c, U+706e, U+7075-7076, U+707e, U+7081, U+7085-7086, U+7094-7098, U+709b, U+709f, U+70a4, U+70ab-70ac, U+70ae-70b1, U+70b3-70b4, U+70b7, U+70bb, U+70ca-70cb, U+70d1, U+70d3-70d6, U+70d8-70d9, U+70dc-70dd, U+70df, U+70e4, U+70ec, U+70f1, U+70fa, U+70fd, U+7103-7108, U+710b-710c, U+710f, U+7114, U+7119, U+711c, U+711e, U+7120, U+712b, U+712d-7131, U+7138, U+7141, U+7145-7147, U+7149-714b, U+7150-7153, U+7155-7157, U+715a, U+715c, U+715e, U+7160, U+7162, U+7164-7165; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.31.woff2) format('woff2'); + unicode-range: + U+6f58-6f5b, U+6f5d-6f5e, U+6f60-6f62, U+6f66, U+6f68, U+6f6c-6f6d, U+6f6f, U+6f74, U+6f78, U+6f7a, U+6f7c-6f7e, U+6f80, U+6f82-6f83, U+6f86-6f88, + U+6f8b-6f8e, U+6f90-6f94, U+6f96-6f98, U+6f9a, U+6f9d, U+6f9f-6fa1, U+6fa3, U+6fa5-6fa8, U+6fae-6fb1, U+6fb3, U+6fb5-6fb7, U+6fb9, U+6fbc, U+6fbe, + U+6fc2, U+6fc5-6fca, U+6fd4-6fd5, U+6fd8, U+6fda-6fdb, U+6fde-6fe0, U+6fe4, U+6fe8-6fe9, U+6feb-6fec, U+6fee, U+6ff0, U+6ff3, U+6ff5-6ff6, + U+6ff9-6ffa, U+6ffc-6ffe, U+7000-7001, U+7005-7007, U+7009-700b, U+700d, U+700f, U+7011, U+7015, U+7017-7018, U+701a-701b, U+701d-7020, U+7023, + U+7026, U+7028, U+702f-7030, U+7032, U+7034, U+7037, U+7039-703a, U+703c, U+703e, U+7043-7044, U+7047-704c, U+704e, U+7051, U+7054-7055, + U+705d-705e, U+7064-7065, U+7069, U+706c, U+706e, U+7075-7076, U+707e, U+7081, U+7085-7086, U+7094-7098, U+709b, U+709f, U+70a4, U+70ab-70ac, + U+70ae-70b1, U+70b3-70b4, U+70b7, U+70bb, U+70ca-70cb, U+70d1, U+70d3-70d6, U+70d8-70d9, U+70dc-70dd, U+70df, U+70e4, U+70ec, U+70f1, U+70fa, + U+70fd, U+7103-7108, U+710b-710c, U+710f, U+7114, U+7119, U+711c, U+711e, U+7120, U+712b, U+712d-7131, U+7138, U+7141, U+7145-7147, U+7149-714b, + U+7150-7153, U+7155-7157, U+715a, U+715c, U+715e, U+7160, U+7162, U+7164-7165; } /* [32] */ @font-face { @@ -1372,8 +2821,20 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.32.woff2) format('woff2'); - unicode-range: U+6d7c, U+6d80-6d82, U+6d85, U+6d87, U+6d89-6d8a, U+6d8c-6d8e, U+6d91-6d98, U+6d9c, U+6daa-6dac, U+6dae, U+6db4-6db5, U+6db7-6db9, U+6dbd, U+6dbf, U+6dc2, U+6dc4-6dc8, U+6dca, U+6dcc, U+6dce-6dd0, U+6dd2, U+6dd5-6dd6, U+6dd8-6ddb, U+6ddd-6de0, U+6de2, U+6de4-6de6, U+6de8-6dea, U+6dec, U+6dee-6df0, U+6df2, U+6df4, U+6df6, U+6df8-6dfa, U+6dfc, U+6e00, U+6e04, U+6e0a, U+6e17, U+6e19, U+6e1d-6e20, U+6e22-6e25, U+6e27, U+6e2b, U+6e2d-6e2e, U+6e32, U+6e34, U+6e36, U+6e38-6e3c, U+6e42-6e45, U+6e48-6e49, U+6e4b-6e4f, U+6e51-6e54, U+6e57, U+6e5b-6e5f, U+6e62-6e63, U+6e68, U+6e6b, U+6e6e, U+6e72-6e73, U+6e76, U+6e7b, U+6e7d, U+6e82, U+6e89, U+6e8c-6e8d, U+6e8f, U+6e93, U+6e98-6e99, U+6e9f-6ea0, U+6ea5, U+6ea7, U+6eaa-6eab, U+6ead-6eaf, U+6eb1-6eb4, U+6eb7, U+6ebb-6ebd, U+6ebf-6ec4, U+6ec7-6eca, U+6ecc-6ecf, U+6ed3-6ed5, U+6ed9-6edb, U+6ee6, U+6eeb-6eef, U+6ef7-6ef9, U+6efb, U+6efd-6eff, U+6f04, U+6f08-6f0a, U+6f0c-6f0d, U+6f10-6f11, U+6f13, U+6f15-6f16, U+6f18, U+6f1a-6f1b, U+6f25-6f26, U+6f29-6f2a, U+6f2d, U+6f2f-6f33, U+6f35-6f36, U+6f38, U+6f3b-6f3c, U+6f3e-6f3f, U+6f41, U+6f45, U+6f4f, U+6f51-6f53, U+6f57; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.32.woff2) format('woff2'); + unicode-range: + U+6d7c, U+6d80-6d82, U+6d85, U+6d87, U+6d89-6d8a, U+6d8c-6d8e, U+6d91-6d98, U+6d9c, U+6daa-6dac, U+6dae, U+6db4-6db5, U+6db7-6db9, U+6dbd, U+6dbf, + U+6dc2, U+6dc4-6dc8, U+6dca, U+6dcc, U+6dce-6dd0, U+6dd2, U+6dd5-6dd6, U+6dd8-6ddb, U+6ddd-6de0, U+6de2, U+6de4-6de6, U+6de8-6dea, U+6dec, + U+6dee-6df0, U+6df2, U+6df4, U+6df6, U+6df8-6dfa, U+6dfc, U+6e00, U+6e04, U+6e0a, U+6e17, U+6e19, U+6e1d-6e20, U+6e22-6e25, U+6e27, U+6e2b, + U+6e2d-6e2e, U+6e32, U+6e34, U+6e36, U+6e38-6e3c, U+6e42-6e45, U+6e48-6e49, U+6e4b-6e4f, U+6e51-6e54, U+6e57, U+6e5b-6e5f, U+6e62-6e63, U+6e68, + U+6e6b, U+6e6e, U+6e72-6e73, U+6e76, U+6e7b, U+6e7d, U+6e82, U+6e89, U+6e8c-6e8d, U+6e8f, U+6e93, U+6e98-6e99, U+6e9f-6ea0, U+6ea5, U+6ea7, + U+6eaa-6eab, U+6ead-6eaf, U+6eb1-6eb4, U+6eb7, U+6ebb-6ebd, U+6ebf-6ec4, U+6ec7-6eca, U+6ecc-6ecf, U+6ed3-6ed5, U+6ed9-6edb, U+6ee6, U+6eeb-6eef, + U+6ef7-6ef9, U+6efb, U+6efd-6eff, U+6f04, U+6f08-6f0a, U+6f0c-6f0d, U+6f10-6f11, U+6f13, U+6f15-6f16, U+6f18, U+6f1a-6f1b, U+6f25-6f26, + U+6f29-6f2a, U+6f2d, U+6f2f-6f33, U+6f35-6f36, U+6f38, U+6f3b-6f3c, U+6f3e-6f3f, U+6f41, U+6f45, U+6f4f, U+6f51-6f53, U+6f57; } /* [33] */ @font-face { @@ -1381,8 +2842,21 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.33.woff2) format('woff2'); - unicode-range: U+6b85, U+6b89, U+6b8d, U+6b95, U+6b97-6b98, U+6b9b, U+6b9e-6ba0, U+6ba2-6ba4, U+6ba8-6bb3, U+6bb7-6bb9, U+6bbc-6bbe, U+6bc0, U+6bc3-6bc4, U+6bc6-6bc9, U+6bcb-6bcc, U+6bcf, U+6bd3, U+6bd6-6bd8, U+6bda, U+6bdf, U+6be1, U+6be3, U+6be6-6be7, U+6beb-6bec, U+6bee, U+6bf1, U+6bf3, U+6bf7, U+6bf9, U+6bff, U+6c02, U+6c04-6c05, U+6c08-6c0a, U+6c0d-6c0e, U+6c10, U+6c12-6c14, U+6c19, U+6c1b, U+6c1f, U+6c24, U+6c26-6c28, U+6c2c, U+6c2e, U+6c33, U+6c35-6c36, U+6c3a-6c3b, U+6c3e-6c40, U+6c4a-6c4b, U+6c4d, U+6c4f, U+6c52, U+6c54-6c55, U+6c59, U+6c5b-6c5e, U+6c62, U+6c67-6c68, U+6c6a-6c6b, U+6c6d, U+6c6f, U+6c73-6c74, U+6c76, U+6c78-6c79, U+6c7b, U+6c7e, U+6c81-6c87, U+6c89, U+6c8c-6c8d, U+6c90, U+6c92-6c95, U+6c97-6c98, U+6c9a-6c9c, U+6c9f, U+6caa-6cae, U+6cb0-6cb2, U+6cb4, U+6cba, U+6cbd-6cbe, U+6cc2, U+6cc5-6cc6, U+6ccd, U+6ccf-6cd4, U+6cd6-6cd7, U+6cd9-6cdd, U+6ce0, U+6ce7, U+6ce9-6cef, U+6cf1-6cf2, U+6cf4, U+6cfb, U+6d00-6d01, U+6d04, U+6d07, U+6d0a, U+6d0c, U+6d0e-6d0f, U+6d11, U+6d13, U+6d19-6d1a, U+6d1f, U+6d24, U+6d26-6d28, U+6d2b, U+6d2e-6d2f, U+6d31, U+6d33-6d36, U+6d38-6d39, U+6d3c-6d3d, U+6d3f, U+6d57-6d5b, U+6d5e-6d61, U+6d64-6d65, U+6d67, U+6d6c, U+6d6f-6d70, U+6d79; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.33.woff2) format('woff2'); + unicode-range: + U+6b85, U+6b89, U+6b8d, U+6b95, U+6b97-6b98, U+6b9b, U+6b9e-6ba0, U+6ba2-6ba4, U+6ba8-6bb3, U+6bb7-6bb9, U+6bbc-6bbe, U+6bc0, U+6bc3-6bc4, + U+6bc6-6bc9, U+6bcb-6bcc, U+6bcf, U+6bd3, U+6bd6-6bd8, U+6bda, U+6bdf, U+6be1, U+6be3, U+6be6-6be7, U+6beb-6bec, U+6bee, U+6bf1, U+6bf3, U+6bf7, + U+6bf9, U+6bff, U+6c02, U+6c04-6c05, U+6c08-6c0a, U+6c0d-6c0e, U+6c10, U+6c12-6c14, U+6c19, U+6c1b, U+6c1f, U+6c24, U+6c26-6c28, U+6c2c, U+6c2e, + U+6c33, U+6c35-6c36, U+6c3a-6c3b, U+6c3e-6c40, U+6c4a-6c4b, U+6c4d, U+6c4f, U+6c52, U+6c54-6c55, U+6c59, U+6c5b-6c5e, U+6c62, U+6c67-6c68, + U+6c6a-6c6b, U+6c6d, U+6c6f, U+6c73-6c74, U+6c76, U+6c78-6c79, U+6c7b, U+6c7e, U+6c81-6c87, U+6c89, U+6c8c-6c8d, U+6c90, U+6c92-6c95, U+6c97-6c98, + U+6c9a-6c9c, U+6c9f, U+6caa-6cae, U+6cb0-6cb2, U+6cb4, U+6cba, U+6cbd-6cbe, U+6cc2, U+6cc5-6cc6, U+6ccd, U+6ccf-6cd4, U+6cd6-6cd7, U+6cd9-6cdd, + U+6ce0, U+6ce7, U+6ce9-6cef, U+6cf1-6cf2, U+6cf4, U+6cfb, U+6d00-6d01, U+6d04, U+6d07, U+6d0a, U+6d0c, U+6d0e-6d0f, U+6d11, U+6d13, U+6d19-6d1a, + U+6d1f, U+6d24, U+6d26-6d28, U+6d2b, U+6d2e-6d2f, U+6d31, U+6d33-6d36, U+6d38-6d39, U+6d3c-6d3d, U+6d3f, U+6d57-6d5b, U+6d5e-6d61, U+6d64-6d65, + U+6d67, U+6d6c, U+6d6f-6d70, U+6d79; } /* [34] */ @font-face { @@ -1390,8 +2864,20 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.34.woff2) format('woff2'); - unicode-range: U+69dd-69de, U+69e2-69e3, U+69e5, U+69e7-69eb, U+69ed-69ef, U+69f1-69f6, U+69f9, U+69fe-6a01, U+6a03, U+6a05, U+6a0a, U+6a0c, U+6a0f, U+6a11-6a15, U+6a17, U+6a1a-6a1b, U+6a1d-6a20, U+6a22-6a24, U+6a28, U+6a2e, U+6a30, U+6a32-6a38, U+6a3b, U+6a3e-6a3f, U+6a44-6a4a, U+6a4e, U+6a50-6a52, U+6a54-6a56, U+6a5b, U+6a61-6a62, U+6a64, U+6a66-6a67, U+6a6a-6a6b, U+6a71-6a73, U+6a78, U+6a7a, U+6a7e-6a7f, U+6a81, U+6a83-6a84, U+6a86-6a87, U+6a89, U+6a8b, U+6a8d, U+6a90-6a91, U+6a94, U+6a97, U+6a9b, U+6a9d-6aa3, U+6aa5, U+6aaa-6aac, U+6aae-6ab1, U+6ab3-6ab4, U+6ab8, U+6abb, U+6abd-6abf, U+6ac1-6ac3, U+6ac6, U+6ac8-6ac9, U+6acc, U+6ad0-6ad1, U+6ad3-6ad6, U+6ada-6adf, U+6ae2, U+6ae4, U+6ae7-6ae8, U+6aea, U+6aec, U+6af0-6af3, U+6af8, U+6afa, U+6afc-6afd, U+6b02-6b03, U+6b06-6b07, U+6b09-6b0b, U+6b0f-6b12, U+6b16-6b17, U+6b1b, U+6b1d-6b1f, U+6b23-6b24, U+6b28, U+6b2b-6b2c, U+6b2f, U+6b35-6b39, U+6b3b, U+6b3d, U+6b3f, U+6b43, U+6b46-6b47, U+6b49-6b4a, U+6b4d-6b4e, U+6b50, U+6b52, U+6b54, U+6b56, U+6b58-6b59, U+6b5b, U+6b5d, U+6b5f-6b61, U+6b65, U+6b67, U+6b6b-6b6c, U+6b6e, U+6b70, U+6b72, U+6b75, U+6b77-6b7a, U+6b7d-6b84; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.34.woff2) format('woff2'); + unicode-range: + U+69dd-69de, U+69e2-69e3, U+69e5, U+69e7-69eb, U+69ed-69ef, U+69f1-69f6, U+69f9, U+69fe-6a01, U+6a03, U+6a05, U+6a0a, U+6a0c, U+6a0f, U+6a11-6a15, + U+6a17, U+6a1a-6a1b, U+6a1d-6a20, U+6a22-6a24, U+6a28, U+6a2e, U+6a30, U+6a32-6a38, U+6a3b, U+6a3e-6a3f, U+6a44-6a4a, U+6a4e, U+6a50-6a52, + U+6a54-6a56, U+6a5b, U+6a61-6a62, U+6a64, U+6a66-6a67, U+6a6a-6a6b, U+6a71-6a73, U+6a78, U+6a7a, U+6a7e-6a7f, U+6a81, U+6a83-6a84, U+6a86-6a87, + U+6a89, U+6a8b, U+6a8d, U+6a90-6a91, U+6a94, U+6a97, U+6a9b, U+6a9d-6aa3, U+6aa5, U+6aaa-6aac, U+6aae-6ab1, U+6ab3-6ab4, U+6ab8, U+6abb, + U+6abd-6abf, U+6ac1-6ac3, U+6ac6, U+6ac8-6ac9, U+6acc, U+6ad0-6ad1, U+6ad3-6ad6, U+6ada-6adf, U+6ae2, U+6ae4, U+6ae7-6ae8, U+6aea, U+6aec, + U+6af0-6af3, U+6af8, U+6afa, U+6afc-6afd, U+6b02-6b03, U+6b06-6b07, U+6b09-6b0b, U+6b0f-6b12, U+6b16-6b17, U+6b1b, U+6b1d-6b1f, U+6b23-6b24, + U+6b28, U+6b2b-6b2c, U+6b2f, U+6b35-6b39, U+6b3b, U+6b3d, U+6b3f, U+6b43, U+6b46-6b47, U+6b49-6b4a, U+6b4d-6b4e, U+6b50, U+6b52, U+6b54, U+6b56, + U+6b58-6b59, U+6b5b, U+6b5d, U+6b5f-6b61, U+6b65, U+6b67, U+6b6b-6b6c, U+6b6e, U+6b70, U+6b72, U+6b75, U+6b77-6b7a, U+6b7d-6b84; } /* [35] */ @font-face { @@ -1399,8 +2885,20 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.35.woff2) format('woff2'); - unicode-range: U+6855, U+6857-6859, U+685b, U+685d, U+685f, U+6863, U+6867, U+686b, U+686e-6872, U+6874-6875, U+6877, U+6879-687c, U+687e-687f, U+6882-6884, U+6886, U+6888, U+688d-6890, U+6894, U+6896, U+6898-689c, U+689f-68a3, U+68a5-68a7, U+68a9-68ab, U+68ad-68af, U+68b2-68b5, U+68b9-68bc, U+68c3, U+68c5-68c6, U+68c8-68ca, U+68cc-68cd, U+68cf-68d1, U+68d3-68d9, U+68dc-68dd, U+68e0-68e1, U+68e3-68e5, U+68e7-68e8, U+68ea-68ed, U+68ef-68f1, U+68f5-68f7, U+68f9, U+68fb-68fd, U+6900-6901, U+6903-6904, U+6906-690c, U+690f-6911, U+6913, U+6916-6917, U+6919-691b, U+6921-6923, U+6925-6926, U+6928, U+692a, U+6930-6931, U+6933-6936, U+6938-6939, U+693b, U+693d, U+6942, U+6945-6946, U+6949, U+694e, U+6954, U+6957, U+6959, U+695b-695e, U+6961-6966, U+6968-696c, U+696e-6974, U+6977-697b, U+697e-6981, U+6986, U+698d, U+6991-6992, U+6994-6996, U+6998, U+699c, U+69a0-69a1, U+69a5-69a8, U+69ab, U+69ad, U+69af-69b2, U+69b4, U+69b7-69b8, U+69ba-69bc, U+69be-69c1, U+69c3, U+69c5, U+69c7-69c8, U+69ca, U+69ce-69d1, U+69d3, U+69d6-69d7, U+69d9; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.35.woff2) format('woff2'); + unicode-range: + U+6855, U+6857-6859, U+685b, U+685d, U+685f, U+6863, U+6867, U+686b, U+686e-6872, U+6874-6875, U+6877, U+6879-687c, U+687e-687f, U+6882-6884, + U+6886, U+6888, U+688d-6890, U+6894, U+6896, U+6898-689c, U+689f-68a3, U+68a5-68a7, U+68a9-68ab, U+68ad-68af, U+68b2-68b5, U+68b9-68bc, U+68c3, + U+68c5-68c6, U+68c8-68ca, U+68cc-68cd, U+68cf-68d1, U+68d3-68d9, U+68dc-68dd, U+68e0-68e1, U+68e3-68e5, U+68e7-68e8, U+68ea-68ed, U+68ef-68f1, + U+68f5-68f7, U+68f9, U+68fb-68fd, U+6900-6901, U+6903-6904, U+6906-690c, U+690f-6911, U+6913, U+6916-6917, U+6919-691b, U+6921-6923, U+6925-6926, + U+6928, U+692a, U+6930-6931, U+6933-6936, U+6938-6939, U+693b, U+693d, U+6942, U+6945-6946, U+6949, U+694e, U+6954, U+6957, U+6959, U+695b-695e, + U+6961-6966, U+6968-696c, U+696e-6974, U+6977-697b, U+697e-6981, U+6986, U+698d, U+6991-6992, U+6994-6996, U+6998, U+699c, U+69a0-69a1, + U+69a5-69a8, U+69ab, U+69ad, U+69af-69b2, U+69b4, U+69b7-69b8, U+69ba-69bc, U+69be-69c1, U+69c3, U+69c5, U+69c7-69c8, U+69ca, U+69ce-69d1, U+69d3, + U+69d6-69d7, U+69d9; } /* [36] */ @font-face { @@ -1408,8 +2906,21 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.36.woff2) format('woff2'); - unicode-range: U+667e-6680, U+6683-6684, U+6688, U+668b-668e, U+6690, U+6692, U+6698-669d, U+669f-66a0, U+66a2, U+66a4, U+66ad, U+66b1-66b3, U+66b5, U+66b8-66b9, U+66bb-66bc, U+66be-66c4, U+66c6, U+66c8-66c9, U+66cc, U+66ce-66cf, U+66d4, U+66da-66db, U+66dd, U+66df-66e0, U+66e6, U+66e8-66e9, U+66eb-66ec, U+66ee, U+66f5, U+66f7, U+66fa-66fc, U+6701, U+6705, U+6707, U+670c, U+670e-6710, U+6712-6716, U+6719, U+671c, U+671e, U+6720, U+6722, U+6725-6726, U+672e, U+6733, U+6735-6738, U+673e-673f, U+6741, U+6743, U+6745-6748, U+674c-674d, U+6753-6755, U+6759, U+675d-675e, U+6760, U+6762-6764, U+6766, U+676a, U+676c, U+676e, U+6770, U+6772-6774, U+6776-6777, U+677b-677c, U+6780-6781, U+6784-6785, U+6787, U+6789, U+678b-678c, U+678e-678f, U+6791-6793, U+6796, U+6798-6799, U+679b, U+67a1, U+67a4, U+67a6, U+67a9, U+67b0-67b5, U+67b7-67b9, U+67bb-67be, U+67c0-67c3, U+67c5-67c6, U+67c8-67c9, U+67ce, U+67d2, U+67d7-67d9, U+67db-67de, U+67e1-67e2, U+67e4, U+67e6-67e7, U+67e9, U+67ec, U+67ee-67f0, U+67f2, U+67f6-67f7, U+67f9-67fa, U+67fc, U+67fe, U+6801-6802, U+6805, U+6810, U+6814, U+6818-6819, U+681d, U+681f, U+6822, U+6827-6829, U+682b-682d, U+682f-6834, U+683b, U+683e-6840, U+6844-6846, U+6849-684a, U+684c-684e, U+6852-6854; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.36.woff2) format('woff2'); + unicode-range: + U+667e-6680, U+6683-6684, U+6688, U+668b-668e, U+6690, U+6692, U+6698-669d, U+669f-66a0, U+66a2, U+66a4, U+66ad, U+66b1-66b3, U+66b5, U+66b8-66b9, + U+66bb-66bc, U+66be-66c4, U+66c6, U+66c8-66c9, U+66cc, U+66ce-66cf, U+66d4, U+66da-66db, U+66dd, U+66df-66e0, U+66e6, U+66e8-66e9, U+66eb-66ec, + U+66ee, U+66f5, U+66f7, U+66fa-66fc, U+6701, U+6705, U+6707, U+670c, U+670e-6710, U+6712-6716, U+6719, U+671c, U+671e, U+6720, U+6722, + U+6725-6726, U+672e, U+6733, U+6735-6738, U+673e-673f, U+6741, U+6743, U+6745-6748, U+674c-674d, U+6753-6755, U+6759, U+675d-675e, U+6760, + U+6762-6764, U+6766, U+676a, U+676c, U+676e, U+6770, U+6772-6774, U+6776-6777, U+677b-677c, U+6780-6781, U+6784-6785, U+6787, U+6789, U+678b-678c, + U+678e-678f, U+6791-6793, U+6796, U+6798-6799, U+679b, U+67a1, U+67a4, U+67a6, U+67a9, U+67b0-67b5, U+67b7-67b9, U+67bb-67be, U+67c0-67c3, + U+67c5-67c6, U+67c8-67c9, U+67ce, U+67d2, U+67d7-67d9, U+67db-67de, U+67e1-67e2, U+67e4, U+67e6-67e7, U+67e9, U+67ec, U+67ee-67f0, U+67f2, + U+67f6-67f7, U+67f9-67fa, U+67fc, U+67fe, U+6801-6802, U+6805, U+6810, U+6814, U+6818-6819, U+681d, U+681f, U+6822, U+6827-6829, U+682b-682d, + U+682f-6834, U+683b, U+683e-6840, U+6844-6846, U+6849-684a, U+684c-684e, U+6852-6854; } /* [37] */ @font-face { @@ -1417,8 +2928,20 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.37.woff2) format('woff2'); - unicode-range: U+64d2, U+64d4-64d5, U+64d7-64d8, U+64da, U+64e0-64e1, U+64e3-64e5, U+64e7, U+64e9-64ea, U+64ed, U+64ef-64f2, U+64f4-64f7, U+64fa-64fb, U+64fd-6501, U+6504-6505, U+6508-650a, U+650f, U+6513-6514, U+6516, U+6518-6519, U+651b-651f, U+6522, U+6524, U+6526, U+6529-652c, U+652e, U+6531-6532, U+6534-6538, U+653a, U+653c-653d, U+6543-6544, U+6547-6549, U+654d-654e, U+6550, U+6552, U+6554-6556, U+6558, U+655d-6560, U+6567, U+656b, U+6572, U+6578, U+657a, U+657d, U+6581-6585, U+6588, U+658a, U+658c, U+6592, U+6595, U+6598, U+659b, U+659d, U+659f-65a1, U+65a3-65a6, U+65ab, U+65ae, U+65b2-65b5, U+65b7-65b8, U+65be-65bf, U+65c1-65c4, U+65c6, U+65c8-65c9, U+65cc, U+65ce, U+65d0, U+65d2, U+65d4, U+65d6, U+65d8-65d9, U+65db, U+65df-65e1, U+65e3, U+65f0-65f2, U+65f4-65f5, U+65f9, U+65fb-65fc, U+65fe-6600, U+6603-6604, U+6608-660a, U+660d, U+6611-6612, U+6615-6616, U+661c-661e, U+6621-6624, U+6626, U+6629-662c, U+662e, U+6630-6631, U+6633-6637, U+6639-663b, U+663f-6641, U+6644-6646, U+6648-664a, U+664c, U+664e-664f, U+6651, U+6657-6665, U+6667-6668, U+666a-666d, U+6670, U+6673, U+6675, U+6677-6679, U+667b-667c; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.37.woff2) format('woff2'); + unicode-range: + U+64d2, U+64d4-64d5, U+64d7-64d8, U+64da, U+64e0-64e1, U+64e3-64e5, U+64e7, U+64e9-64ea, U+64ed, U+64ef-64f2, U+64f4-64f7, U+64fa-64fb, + U+64fd-6501, U+6504-6505, U+6508-650a, U+650f, U+6513-6514, U+6516, U+6518-6519, U+651b-651f, U+6522, U+6524, U+6526, U+6529-652c, U+652e, + U+6531-6532, U+6534-6538, U+653a, U+653c-653d, U+6543-6544, U+6547-6549, U+654d-654e, U+6550, U+6552, U+6554-6556, U+6558, U+655d-6560, U+6567, + U+656b, U+6572, U+6578, U+657a, U+657d, U+6581-6585, U+6588, U+658a, U+658c, U+6592, U+6595, U+6598, U+659b, U+659d, U+659f-65a1, U+65a3-65a6, + U+65ab, U+65ae, U+65b2-65b5, U+65b7-65b8, U+65be-65bf, U+65c1-65c4, U+65c6, U+65c8-65c9, U+65cc, U+65ce, U+65d0, U+65d2, U+65d4, U+65d6, + U+65d8-65d9, U+65db, U+65df-65e1, U+65e3, U+65f0-65f2, U+65f4-65f5, U+65f9, U+65fb-65fc, U+65fe-6600, U+6603-6604, U+6608-660a, U+660d, + U+6611-6612, U+6615-6616, U+661c-661e, U+6621-6624, U+6626, U+6629-662c, U+662e, U+6630-6631, U+6633-6637, U+6639-663b, U+663f-6641, U+6644-6646, + U+6648-664a, U+664c, U+664e-664f, U+6651, U+6657-6665, U+6667-6668, U+666a-666d, U+6670, U+6673, U+6675, U+6677-6679, U+667b-667c; } /* [38] */ @font-face { @@ -1426,8 +2949,21 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.38.woff2) format('woff2'); - unicode-range: U+62cf, U+62d1, U+62d4-62d6, U+62da, U+62dc, U+62ea, U+62ee-62ef, U+62f1-62f2, U+62f4-62f5, U+62fc-62fd, U+62ff, U+6302-6304, U+6308-630d, U+6310, U+6313, U+6316, U+6318, U+631b, U+6327, U+6329-632a, U+632d, U+6332, U+6335-6336, U+6339-633c, U+633e, U+6341-6344, U+6346, U+634a-634e, U+6350, U+6352-6354, U+6358-6359, U+635b, U+6365-6366, U+6369, U+636b-636d, U+6371-6372, U+6374-6378, U+637a, U+637c-637d, U+637f-6380, U+6382, U+6384, U+6387, U+6389-638a, U+638e-6390, U+6394-6396, U+6399-639a, U+639e, U+63a0, U+63a3-63a4, U+63a6, U+63a9, U+63ab-63af, U+63b5, U+63bd-63be, U+63c0-63c1, U+63c4-63c6, U+63c8, U+63ce, U+63d1-63d6, U+63dc, U+63e0, U+63e3, U+63e5, U+63e9-63ed, U+63f2-63f3, U+63f5-63f9, U+6406, U+6409-640a, U+640f-6410, U+6412-6414, U+6416-6418, U+641e, U+6420, U+6422, U+6424-6426, U+6428-642a, U+642f-6430, U+6434-6436, U+643d, U+643f, U+644b, U+644e-644f, U+6451-6454, U+645a-645d, U+645f-6461, U+6463, U+6467, U+646d, U+6473-6474, U+6476, U+6478-6479, U+647b, U+647d, U+6485, U+6487-6488, U+648f-6491, U+6493, U+6495, U+6498-649b, U+649d-649f, U+64a1, U+64a3, U+64a6, U+64a8-64a9, U+64ac, U+64b3, U+64bb-64bf, U+64c2, U+64c4-64c5, U+64c7, U+64c9-64cc, U+64ce, U+64d0-64d1; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.38.woff2) format('woff2'); + unicode-range: + U+62cf, U+62d1, U+62d4-62d6, U+62da, U+62dc, U+62ea, U+62ee-62ef, U+62f1-62f2, U+62f4-62f5, U+62fc-62fd, U+62ff, U+6302-6304, U+6308-630d, U+6310, + U+6313, U+6316, U+6318, U+631b, U+6327, U+6329-632a, U+632d, U+6332, U+6335-6336, U+6339-633c, U+633e, U+6341-6344, U+6346, U+634a-634e, U+6350, + U+6352-6354, U+6358-6359, U+635b, U+6365-6366, U+6369, U+636b-636d, U+6371-6372, U+6374-6378, U+637a, U+637c-637d, U+637f-6380, U+6382, U+6384, + U+6387, U+6389-638a, U+638e-6390, U+6394-6396, U+6399-639a, U+639e, U+63a0, U+63a3-63a4, U+63a6, U+63a9, U+63ab-63af, U+63b5, U+63bd-63be, + U+63c0-63c1, U+63c4-63c6, U+63c8, U+63ce, U+63d1-63d6, U+63dc, U+63e0, U+63e3, U+63e5, U+63e9-63ed, U+63f2-63f3, U+63f5-63f9, U+6406, U+6409-640a, + U+640f-6410, U+6412-6414, U+6416-6418, U+641e, U+6420, U+6422, U+6424-6426, U+6428-642a, U+642f-6430, U+6434-6436, U+643d, U+643f, U+644b, + U+644e-644f, U+6451-6454, U+645a-645d, U+645f-6461, U+6463, U+6467, U+646d, U+6473-6474, U+6476, U+6478-6479, U+647b, U+647d, U+6485, U+6487-6488, + U+648f-6491, U+6493, U+6495, U+6498-649b, U+649d-649f, U+64a1, U+64a3, U+64a6, U+64a8-64a9, U+64ac, U+64b3, U+64bb-64bf, U+64c2, U+64c4-64c5, + U+64c7, U+64c9-64cc, U+64ce, U+64d0-64d1; } /* [39] */ @font-face { @@ -1435,8 +2971,20 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.39.woff2) format('woff2'); - unicode-range: U+6117, U+6119, U+611c, U+611e, U+6120-6122, U+6127-6128, U+612a-612c, U+6130-6131, U+6134-6137, U+6139-613a, U+613c-613f, U+6141-6142, U+6144-6147, U+6149-614a, U+614d, U+6153, U+6158-615a, U+615d-6160, U+6164-6165, U+616b-616c, U+616f, U+6171-6175, U+6177-6178, U+617b-6181, U+6183-6184, U+6187, U+618a-618b, U+618d, U+6192-6194, U+6196-619a, U+619c-619d, U+619f-61a0, U+61a5, U+61a8, U+61aa-61ae, U+61b8-61ba, U+61bc, U+61be, U+61c0-61c3, U+61c6, U+61c8, U+61ca-61cf, U+61d5, U+61dc-61df, U+61e1-61e3, U+61e5-61e9, U+61ec-61ed, U+61ef, U+61f4-61f7, U+61fa, U+61fc-6201, U+6203-6204, U+6207-620a, U+620d-620e, U+6213-6215, U+621b-621e, U+6220-6223, U+6227, U+6229-622b, U+622e, U+6230-6233, U+6236, U+6239, U+623d-623e, U+6241-6244, U+6246, U+6248, U+624c, U+624e, U+6250-6252, U+6254, U+6256, U+6258, U+625a-625c, U+625e, U+6260-6261, U+6263-6264, U+6268, U+626d, U+626f, U+6273, U+627a-627e, U+6282-6283, U+6285, U+6289, U+628d-6290, U+6292-6294, U+6296, U+6299, U+629b, U+62a6, U+62a8, U+62ac, U+62b3, U+62b6-62b7, U+62ba-62bb, U+62be-62bf, U+62c2, U+62c4, U+62c6-62c8, U+62ca, U+62ce; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.39.woff2) format('woff2'); + unicode-range: + U+6117, U+6119, U+611c, U+611e, U+6120-6122, U+6127-6128, U+612a-612c, U+6130-6131, U+6134-6137, U+6139-613a, U+613c-613f, U+6141-6142, + U+6144-6147, U+6149-614a, U+614d, U+6153, U+6158-615a, U+615d-6160, U+6164-6165, U+616b-616c, U+616f, U+6171-6175, U+6177-6178, U+617b-6181, + U+6183-6184, U+6187, U+618a-618b, U+618d, U+6192-6194, U+6196-619a, U+619c-619d, U+619f-61a0, U+61a5, U+61a8, U+61aa-61ae, U+61b8-61ba, U+61bc, + U+61be, U+61c0-61c3, U+61c6, U+61c8, U+61ca-61cf, U+61d5, U+61dc-61df, U+61e1-61e3, U+61e5-61e9, U+61ec-61ed, U+61ef, U+61f4-61f7, U+61fa, + U+61fc-6201, U+6203-6204, U+6207-620a, U+620d-620e, U+6213-6215, U+621b-621e, U+6220-6223, U+6227, U+6229-622b, U+622e, U+6230-6233, U+6236, + U+6239, U+623d-623e, U+6241-6244, U+6246, U+6248, U+624c, U+624e, U+6250-6252, U+6254, U+6256, U+6258, U+625a-625c, U+625e, U+6260-6261, + U+6263-6264, U+6268, U+626d, U+626f, U+6273, U+627a-627e, U+6282-6283, U+6285, U+6289, U+628d-6290, U+6292-6294, U+6296, U+6299, U+629b, U+62a6, + U+62a8, U+62ac, U+62b3, U+62b6-62b7, U+62ba-62bb, U+62be-62bf, U+62c2, U+62c4, U+62c6-62c8, U+62ca, U+62ce; } /* [40] */ @font-face { @@ -1444,8 +2992,20 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.40.woff2) format('woff2'); - unicode-range: U+5f6c-5f6d, U+5f6f, U+5f72-5f75, U+5f78, U+5f7a, U+5f7d-5f7f, U+5f82-5f83, U+5f87-5f89, U+5f8d, U+5f8f, U+5f91, U+5f96, U+5f99, U+5f9c-5f9d, U+5fa0, U+5fa2, U+5fa4, U+5fa7-5fa8, U+5fab-5fad, U+5faf-5fb1, U+5fb5, U+5fb7-5fb8, U+5fbc-5fbd, U+5fc4, U+5fc7-5fc9, U+5fcb, U+5fd0-5fd4, U+5fdd-5fde, U+5fe1-5fe2, U+5fe4, U+5fe8-5fea, U+5fec-5ff3, U+5ff6, U+5ff8, U+5ffa-5ffd, U+5fff, U+6007, U+600a, U+600d-6010, U+6013-6015, U+6017-601b, U+601f, U+6021-6022, U+6024, U+6026, U+6029, U+602b, U+602d, U+6031, U+6033, U+6035, U+603a, U+6040-6043, U+6046-604a, U+604c-604d, U+6051, U+6054-6057, U+6059-605a, U+605d, U+605f-6064, U+6067, U+606a-606c, U+6070-6071, U+6077, U+607e-607f, U+6081-6086, U+6088-608e, U+6091-6093, U+6095-6098, U+609a-609b, U+609d-609e, U+60a2, U+60a4-60a5, U+60a7-60a8, U+60b0-60b1, U+60b3-60b5, U+60b7-60b8, U+60bb, U+60bd-60be, U+60c2, U+60c4, U+60c6-60cb, U+60ce-60cf, U+60d3-60d5, U+60d8-60d9, U+60db, U+60dd-60df, U+60e1-60e2, U+60e5, U+60ee, U+60f0-60f2, U+60f4-60f8, U+60fa-60fd, U+6100, U+6102-6103, U+6106-6108, U+610a, U+610c-610e, U+6110-6114, U+6116; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.40.woff2) format('woff2'); + unicode-range: + U+5f6c-5f6d, U+5f6f, U+5f72-5f75, U+5f78, U+5f7a, U+5f7d-5f7f, U+5f82-5f83, U+5f87-5f89, U+5f8d, U+5f8f, U+5f91, U+5f96, U+5f99, U+5f9c-5f9d, + U+5fa0, U+5fa2, U+5fa4, U+5fa7-5fa8, U+5fab-5fad, U+5faf-5fb1, U+5fb5, U+5fb7-5fb8, U+5fbc-5fbd, U+5fc4, U+5fc7-5fc9, U+5fcb, U+5fd0-5fd4, + U+5fdd-5fde, U+5fe1-5fe2, U+5fe4, U+5fe8-5fea, U+5fec-5ff3, U+5ff6, U+5ff8, U+5ffa-5ffd, U+5fff, U+6007, U+600a, U+600d-6010, U+6013-6015, + U+6017-601b, U+601f, U+6021-6022, U+6024, U+6026, U+6029, U+602b, U+602d, U+6031, U+6033, U+6035, U+603a, U+6040-6043, U+6046-604a, U+604c-604d, + U+6051, U+6054-6057, U+6059-605a, U+605d, U+605f-6064, U+6067, U+606a-606c, U+6070-6071, U+6077, U+607e-607f, U+6081-6086, U+6088-608e, + U+6091-6093, U+6095-6098, U+609a-609b, U+609d-609e, U+60a2, U+60a4-60a5, U+60a7-60a8, U+60b0-60b1, U+60b3-60b5, U+60b7-60b8, U+60bb, U+60bd-60be, + U+60c2, U+60c4, U+60c6-60cb, U+60ce-60cf, U+60d3-60d5, U+60d8-60d9, U+60db, U+60dd-60df, U+60e1-60e2, U+60e5, U+60ee, U+60f0-60f2, U+60f4-60f8, + U+60fa-60fd, U+6100, U+6102-6103, U+6106-6108, U+610a, U+610c-610e, U+6110-6114, U+6116; } /* [41] */ @font-face { @@ -1453,8 +3013,21 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.41.woff2) format('woff2'); - unicode-range: U+5d9b, U+5d9d, U+5d9f-5da0, U+5da2, U+5da4, U+5da7, U+5dab-5dac, U+5dae, U+5db0, U+5db2, U+5db4, U+5db7-5db9, U+5dbc-5dbd, U+5dc3, U+5dc7, U+5dc9, U+5dcb-5dce, U+5dd0-5dd3, U+5dd6-5dd9, U+5ddb, U+5de0, U+5de2, U+5de4, U+5de9, U+5df2, U+5df5, U+5df8-5df9, U+5dfd, U+5dff-5e00, U+5e07, U+5e0b, U+5e0d, U+5e11-5e12, U+5e14-5e15, U+5e18-5e1b, U+5e1f-5e20, U+5e25, U+5e28, U+5e2e, U+5e32, U+5e35-5e37, U+5e3e, U+5e40, U+5e43-5e44, U+5e47, U+5e49, U+5e4b, U+5e4e, U+5e50-5e51, U+5e54, U+5e56-5e58, U+5e5b-5e5c, U+5e5e-5e5f, U+5e62, U+5e64, U+5e68, U+5e6a-5e6e, U+5e70, U+5e75-5e77, U+5e7a, U+5e7f-5e80, U+5e87, U+5e8b, U+5e8e, U+5e96, U+5e99-5e9a, U+5ea0, U+5ea2, U+5ea4-5ea5, U+5ea8, U+5eaa, U+5eac, U+5eb1, U+5eb3, U+5eb8-5eb9, U+5ebd-5ebf, U+5ec1-5ec2, U+5ec6, U+5ec8, U+5ecb-5ecc, U+5ece-5ed6, U+5ed9-5ee2, U+5ee5, U+5ee8-5ee9, U+5eeb-5eec, U+5ef0-5ef1, U+5ef3-5ef4, U+5ef8-5ef9, U+5efc-5f00, U+5f02-5f03, U+5f06-5f09, U+5f0b-5f0e, U+5f11, U+5f16-5f17, U+5f19, U+5f1b-5f1e, U+5f21-5f24, U+5f27-5f29, U+5f2b-5f30, U+5f34, U+5f36, U+5f38, U+5f3a-5f3d, U+5f3f-5f41, U+5f44-5f45, U+5f47-5f48, U+5f4a, U+5f4c-5f4e, U+5f50-5f51, U+5f54, U+5f56-5f58, U+5f5b-5f5d, U+5f60, U+5f63-5f65, U+5f67, U+5f6a; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.41.woff2) format('woff2'); + unicode-range: + U+5d9b, U+5d9d, U+5d9f-5da0, U+5da2, U+5da4, U+5da7, U+5dab-5dac, U+5dae, U+5db0, U+5db2, U+5db4, U+5db7-5db9, U+5dbc-5dbd, U+5dc3, U+5dc7, + U+5dc9, U+5dcb-5dce, U+5dd0-5dd3, U+5dd6-5dd9, U+5ddb, U+5de0, U+5de2, U+5de4, U+5de9, U+5df2, U+5df5, U+5df8-5df9, U+5dfd, U+5dff-5e00, U+5e07, + U+5e0b, U+5e0d, U+5e11-5e12, U+5e14-5e15, U+5e18-5e1b, U+5e1f-5e20, U+5e25, U+5e28, U+5e2e, U+5e32, U+5e35-5e37, U+5e3e, U+5e40, U+5e43-5e44, + U+5e47, U+5e49, U+5e4b, U+5e4e, U+5e50-5e51, U+5e54, U+5e56-5e58, U+5e5b-5e5c, U+5e5e-5e5f, U+5e62, U+5e64, U+5e68, U+5e6a-5e6e, U+5e70, + U+5e75-5e77, U+5e7a, U+5e7f-5e80, U+5e87, U+5e8b, U+5e8e, U+5e96, U+5e99-5e9a, U+5ea0, U+5ea2, U+5ea4-5ea5, U+5ea8, U+5eaa, U+5eac, U+5eb1, + U+5eb3, U+5eb8-5eb9, U+5ebd-5ebf, U+5ec1-5ec2, U+5ec6, U+5ec8, U+5ecb-5ecc, U+5ece-5ed6, U+5ed9-5ee2, U+5ee5, U+5ee8-5ee9, U+5eeb-5eec, + U+5ef0-5ef1, U+5ef3-5ef4, U+5ef8-5ef9, U+5efc-5f00, U+5f02-5f03, U+5f06-5f09, U+5f0b-5f0e, U+5f11, U+5f16-5f17, U+5f19, U+5f1b-5f1e, U+5f21-5f24, + U+5f27-5f29, U+5f2b-5f30, U+5f34, U+5f36, U+5f38, U+5f3a-5f3d, U+5f3f-5f41, U+5f44-5f45, U+5f47-5f48, U+5f4a, U+5f4c-5f4e, U+5f50-5f51, U+5f54, + U+5f56-5f58, U+5f5b-5f5d, U+5f60, U+5f63-5f65, U+5f67, U+5f6a; } /* [42] */ @font-face { @@ -1462,8 +3035,21 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.42.woff2) format('woff2'); - unicode-range: U+5bbc, U+5bc0-5bc1, U+5bc3, U+5bc7, U+5bc9, U+5bcd-5bd0, U+5bd3-5bd4, U+5bd6-5bda, U+5bde, U+5be0-5be2, U+5be4-5be6, U+5be8, U+5beb-5bec, U+5bef-5bf1, U+5bf3-5bf6, U+5bfd, U+5c03, U+5c05, U+5c07-5c09, U+5c0c-5c0d, U+5c12-5c14, U+5c17, U+5c19, U+5c1e-5c20, U+5c22-5c24, U+5c26, U+5c28-5c2e, U+5c30, U+5c32, U+5c35-5c36, U+5c38-5c39, U+5c46, U+5c4d-5c50, U+5c53, U+5c59-5c5c, U+5c5f-5c63, U+5c67-5c69, U+5c6c-5c70, U+5c74-5c76, U+5c79-5c7d, U+5c87-5c88, U+5c8a, U+5c8c, U+5c8f, U+5c91-5c92, U+5c94, U+5c9d, U+5c9f-5ca0, U+5ca2-5ca3, U+5ca6-5ca8, U+5caa-5cab, U+5cad, U+5cb1-5cb2, U+5cb4-5cb7, U+5cba-5cbc, U+5cbe, U+5cc5, U+5cc7, U+5cc9, U+5ccb, U+5cd0, U+5cd2, U+5cd7, U+5cd9, U+5cdd, U+5ce6, U+5ce8-5cea, U+5ced-5cee, U+5cf1-5cf2, U+5cf4-5cf5, U+5cfa-5cfb, U+5cfd, U+5d01, U+5d06, U+5d0b, U+5d0d, U+5d10-5d12, U+5d14-5d15, U+5d17-5d1b, U+5d1d, U+5d1f-5d20, U+5d22-5d24, U+5d26-5d27, U+5d2b, U+5d31, U+5d34, U+5d39, U+5d3d, U+5d3f, U+5d42-5d43, U+5d46-5d48, U+5d4a-5d4b, U+5d4e, U+5d51-5d53, U+5d55, U+5d59, U+5d5c, U+5d5f-5d62, U+5d64, U+5d69-5d6a, U+5d6c-5d6d, U+5d6f-5d70, U+5d73, U+5d76, U+5d79-5d7a, U+5d7e-5d7f, U+5d81-5d84, U+5d87-5d88, U+5d8a, U+5d8c, U+5d90, U+5d92-5d95, U+5d97, U+5d99; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.42.woff2) format('woff2'); + unicode-range: + U+5bbc, U+5bc0-5bc1, U+5bc3, U+5bc7, U+5bc9, U+5bcd-5bd0, U+5bd3-5bd4, U+5bd6-5bda, U+5bde, U+5be0-5be2, U+5be4-5be6, U+5be8, U+5beb-5bec, + U+5bef-5bf1, U+5bf3-5bf6, U+5bfd, U+5c03, U+5c05, U+5c07-5c09, U+5c0c-5c0d, U+5c12-5c14, U+5c17, U+5c19, U+5c1e-5c20, U+5c22-5c24, U+5c26, + U+5c28-5c2e, U+5c30, U+5c32, U+5c35-5c36, U+5c38-5c39, U+5c46, U+5c4d-5c50, U+5c53, U+5c59-5c5c, U+5c5f-5c63, U+5c67-5c69, U+5c6c-5c70, + U+5c74-5c76, U+5c79-5c7d, U+5c87-5c88, U+5c8a, U+5c8c, U+5c8f, U+5c91-5c92, U+5c94, U+5c9d, U+5c9f-5ca0, U+5ca2-5ca3, U+5ca6-5ca8, U+5caa-5cab, + U+5cad, U+5cb1-5cb2, U+5cb4-5cb7, U+5cba-5cbc, U+5cbe, U+5cc5, U+5cc7, U+5cc9, U+5ccb, U+5cd0, U+5cd2, U+5cd7, U+5cd9, U+5cdd, U+5ce6, + U+5ce8-5cea, U+5ced-5cee, U+5cf1-5cf2, U+5cf4-5cf5, U+5cfa-5cfb, U+5cfd, U+5d01, U+5d06, U+5d0b, U+5d0d, U+5d10-5d12, U+5d14-5d15, U+5d17-5d1b, + U+5d1d, U+5d1f-5d20, U+5d22-5d24, U+5d26-5d27, U+5d2b, U+5d31, U+5d34, U+5d39, U+5d3d, U+5d3f, U+5d42-5d43, U+5d46-5d48, U+5d4a-5d4b, U+5d4e, + U+5d51-5d53, U+5d55, U+5d59, U+5d5c, U+5d5f-5d62, U+5d64, U+5d69-5d6a, U+5d6c-5d6d, U+5d6f-5d70, U+5d73, U+5d76, U+5d79-5d7a, U+5d7e-5d7f, + U+5d81-5d84, U+5d87-5d88, U+5d8a, U+5d8c, U+5d90, U+5d92-5d95, U+5d97, U+5d99; } /* [43] */ @font-face { @@ -1471,8 +3057,22 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.43.woff2) format('woff2'); - unicode-range: U+598b-598e, U+5992, U+5995, U+5997, U+599b, U+599d, U+599f, U+59a3-59a4, U+59a7, U+59ad-59b0, U+59b2-59b3, U+59b7, U+59ba, U+59bc, U+59be, U+59c1, U+59c3-59c4, U+59c6, U+59c8, U+59ca, U+59cd, U+59d2, U+59d9-59da, U+59dd-59df, U+59e3-59e5, U+59e7-59e8, U+59ec, U+59ee-59ef, U+59f1-59f2, U+59f4, U+59f6-59f8, U+5a00, U+5a03-5a04, U+5a09, U+5a0c-5a0e, U+5a11-5a13, U+5a17, U+5a1a-5a1c, U+5a1e-5a1f, U+5a23-5a25, U+5a27-5a28, U+5a2a, U+5a2d, U+5a30, U+5a35-5a36, U+5a40-5a41, U+5a44-5a45, U+5a47-5a49, U+5a4c, U+5a50, U+5a55, U+5a5e, U+5a62-5a63, U+5a65, U+5a67, U+5a6a, U+5a6c-5a6d, U+5a77, U+5a7a-5a7b, U+5a7e, U+5a84, U+5a8b, U+5a90, U+5a93, U+5a96, U+5a99, U+5a9c, U+5a9e-5aa0, U+5aa2, U+5aa7, U+5aac, U+5ab1-5ab3, U+5ab5, U+5ab8, U+5aba-5abf, U+5ac2, U+5ac4, U+5ac6, U+5ac8, U+5acb, U+5acf-5ad0, U+5ad6-5ad7, U+5ada, U+5adc, U+5ae0-5ae1, U+5ae3, U+5ae5-5ae6, U+5ae9-5aea, U+5aee, U+5af0, U+5af5-5af6, U+5afa-5afb, U+5afd, U+5b00-5b01, U+5b08, U+5b0b, U+5b16-5b17, U+5b19, U+5b1b, U+5b1d, U+5b21, U+5b25, U+5b2a, U+5b2c-5b2d, U+5b30, U+5b32, U+5b34, U+5b36, U+5b38, U+5b3e, U+5b40-5b41, U+5b43, U+5b45, U+5b4b-5b4c, U+5b51-5b52, U+5b56, U+5b5a-5b5c, U+5b5e-5b5f, U+5b65, U+5b68-5b69, U+5b6e-5b71, U+5b73, U+5b75-5b76, U+5b7a, U+5b7c-5b84, U+5b86, U+5b8a-5b8b, U+5b8d-5b8e, U+5b90-5b91, U+5b93-5b94, U+5b96, U+5ba5-5ba6, U+5ba8-5ba9, U+5bac-5bad, U+5baf, U+5bb1-5bb2, U+5bb7-5bb8, U+5bba; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.43.woff2) format('woff2'); + unicode-range: + U+598b-598e, U+5992, U+5995, U+5997, U+599b, U+599d, U+599f, U+59a3-59a4, U+59a7, U+59ad-59b0, U+59b2-59b3, U+59b7, U+59ba, U+59bc, U+59be, + U+59c1, U+59c3-59c4, U+59c6, U+59c8, U+59ca, U+59cd, U+59d2, U+59d9-59da, U+59dd-59df, U+59e3-59e5, U+59e7-59e8, U+59ec, U+59ee-59ef, U+59f1-59f2, + U+59f4, U+59f6-59f8, U+5a00, U+5a03-5a04, U+5a09, U+5a0c-5a0e, U+5a11-5a13, U+5a17, U+5a1a-5a1c, U+5a1e-5a1f, U+5a23-5a25, U+5a27-5a28, U+5a2a, + U+5a2d, U+5a30, U+5a35-5a36, U+5a40-5a41, U+5a44-5a45, U+5a47-5a49, U+5a4c, U+5a50, U+5a55, U+5a5e, U+5a62-5a63, U+5a65, U+5a67, U+5a6a, + U+5a6c-5a6d, U+5a77, U+5a7a-5a7b, U+5a7e, U+5a84, U+5a8b, U+5a90, U+5a93, U+5a96, U+5a99, U+5a9c, U+5a9e-5aa0, U+5aa2, U+5aa7, U+5aac, + U+5ab1-5ab3, U+5ab5, U+5ab8, U+5aba-5abf, U+5ac2, U+5ac4, U+5ac6, U+5ac8, U+5acb, U+5acf-5ad0, U+5ad6-5ad7, U+5ada, U+5adc, U+5ae0-5ae1, U+5ae3, + U+5ae5-5ae6, U+5ae9-5aea, U+5aee, U+5af0, U+5af5-5af6, U+5afa-5afb, U+5afd, U+5b00-5b01, U+5b08, U+5b0b, U+5b16-5b17, U+5b19, U+5b1b, U+5b1d, + U+5b21, U+5b25, U+5b2a, U+5b2c-5b2d, U+5b30, U+5b32, U+5b34, U+5b36, U+5b38, U+5b3e, U+5b40-5b41, U+5b43, U+5b45, U+5b4b-5b4c, U+5b51-5b52, + U+5b56, U+5b5a-5b5c, U+5b5e-5b5f, U+5b65, U+5b68-5b69, U+5b6e-5b71, U+5b73, U+5b75-5b76, U+5b7a, U+5b7c-5b84, U+5b86, U+5b8a-5b8b, U+5b8d-5b8e, + U+5b90-5b91, U+5b93-5b94, U+5b96, U+5ba5-5ba6, U+5ba8-5ba9, U+5bac-5bad, U+5baf, U+5bb1-5bb2, U+5bb7-5bb8, U+5bba; } /* [44] */ @font-face { @@ -1480,8 +3080,20 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.44.woff2) format('woff2'); - unicode-range: U+57b3, U+57b8, U+57bd, U+57c0, U+57c3, U+57c6-57c8, U+57cc, U+57cf, U+57d2-57d7, U+57dc-57de, U+57e0-57e1, U+57e3-57e4, U+57e6-57e7, U+57e9, U+57ed, U+57f0, U+57f4-57f6, U+57f8, U+57fb, U+57fd-57ff, U+5803-5804, U+5808-580d, U+5819, U+581b, U+581d-5821, U+5826-5827, U+582d, U+582f-5830, U+5832, U+5835, U+5839, U+583d, U+583f-5840, U+5849, U+584b-584d, U+584f-5852, U+5855, U+5858-5859, U+585f, U+5861-5862, U+5864, U+5867-5868, U+586d, U+5870, U+5872, U+5878-5879, U+587c, U+587f-5881, U+5885, U+5887-588d, U+588f-5890, U+5894, U+5896, U+5898, U+589d-589e, U+58a0-58a2, U+58a6, U+58a9-58ab, U+58ae, U+58b1-58b3, U+58b8-58bc, U+58be, U+58c2-58c5, U+58c8, U+58cd-58ce, U+58d0-58da, U+58dc-58e2, U+58e4-58e5, U+58e9, U+58ec, U+58ef, U+58f3-58f4, U+58f7, U+58f9, U+58fb-58fd, U+5902, U+5905-5906, U+590a-590d, U+5910, U+5912-5914, U+5918-5919, U+591b, U+591d, U+591f, U+5921, U+5923-5925, U+5928, U+592c-592d, U+592f-5930, U+5932-5933, U+5935-5936, U+5938-5939, U+593d-593f, U+5943, U+5946, U+594e, U+5950, U+5952-5953, U+5955, U+5957-595b, U+595d-5961, U+5963, U+5967, U+5969, U+596b-596d, U+596f, U+5972, U+5975-5976, U+5978-5979, U+597b-597c, U+5981; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.44.woff2) format('woff2'); + unicode-range: + U+57b3, U+57b8, U+57bd, U+57c0, U+57c3, U+57c6-57c8, U+57cc, U+57cf, U+57d2-57d7, U+57dc-57de, U+57e0-57e1, U+57e3-57e4, U+57e6-57e7, U+57e9, + U+57ed, U+57f0, U+57f4-57f6, U+57f8, U+57fb, U+57fd-57ff, U+5803-5804, U+5808-580d, U+5819, U+581b, U+581d-5821, U+5826-5827, U+582d, U+582f-5830, + U+5832, U+5835, U+5839, U+583d, U+583f-5840, U+5849, U+584b-584d, U+584f-5852, U+5855, U+5858-5859, U+585f, U+5861-5862, U+5864, U+5867-5868, + U+586d, U+5870, U+5872, U+5878-5879, U+587c, U+587f-5881, U+5885, U+5887-588d, U+588f-5890, U+5894, U+5896, U+5898, U+589d-589e, U+58a0-58a2, + U+58a6, U+58a9-58ab, U+58ae, U+58b1-58b3, U+58b8-58bc, U+58be, U+58c2-58c5, U+58c8, U+58cd-58ce, U+58d0-58da, U+58dc-58e2, U+58e4-58e5, U+58e9, + U+58ec, U+58ef, U+58f3-58f4, U+58f7, U+58f9, U+58fb-58fd, U+5902, U+5905-5906, U+590a-590d, U+5910, U+5912-5914, U+5918-5919, U+591b, U+591d, + U+591f, U+5921, U+5923-5925, U+5928, U+592c-592d, U+592f-5930, U+5932-5933, U+5935-5936, U+5938-5939, U+593d-593f, U+5943, U+5946, U+594e, U+5950, + U+5952-5953, U+5955, U+5957-595b, U+595d-5961, U+5963, U+5967, U+5969, U+596b-596d, U+596f, U+5972, U+5975-5976, U+5978-5979, U+597b-597c, U+5981; } /* [45] */ @font-face { @@ -1489,8 +3101,20 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.45.woff2) format('woff2'); - unicode-range: U+5616-5617, U+5619, U+561b, U+5620, U+5628, U+562c, U+562f-5639, U+563b-563d, U+563f-5641, U+5643-5644, U+5646-5647, U+5649, U+564b, U+564d-5650, U+5653-5654, U+565e, U+5660-5664, U+5666, U+5669-566d, U+566f, U+5671-5672, U+5675-5676, U+5678, U+567a, U+5680, U+5684-5688, U+568a-568c, U+568f, U+5694-5695, U+5699-569a, U+569d-56a0, U+56a5-56a9, U+56ab-56ae, U+56b1-56b4, U+56b6-56b7, U+56bc, U+56be, U+56c0, U+56c2-56c3, U+56c5, U+56c8-56d1, U+56d3, U+56d7-56d9, U+56dc-56dd, U+56df, U+56e1, U+56e4-56e8, U+56eb, U+56ed-56ee, U+56f1, U+56f6-56f7, U+56f9, U+56ff-5704, U+5707-570a, U+570c-570d, U+5711, U+5713, U+5715-5716, U+5718, U+571a-571d, U+5720-5726, U+5729-572a, U+572c, U+572e-572f, U+5733-5734, U+5737-5738, U+573b, U+573d-573f, U+5745-5746, U+574c-574f, U+5751-5752, U+5759, U+575f, U+5761-5762, U+5764-5765, U+5767-5769, U+576b, U+576d-5771, U+5773-5775, U+5777, U+5779-577c, U+577e-577f, U+5781, U+5783, U+5788-5789, U+578c, U+5793-5795, U+5797, U+5799-579a, U+579c-57a1, U+57a4, U+57a7-57aa, U+57ac, U+57ae, U+57b0; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.45.woff2) format('woff2'); + unicode-range: + U+5616-5617, U+5619, U+561b, U+5620, U+5628, U+562c, U+562f-5639, U+563b-563d, U+563f-5641, U+5643-5644, U+5646-5647, U+5649, U+564b, U+564d-5650, + U+5653-5654, U+565e, U+5660-5664, U+5666, U+5669-566d, U+566f, U+5671-5672, U+5675-5676, U+5678, U+567a, U+5680, U+5684-5688, U+568a-568c, U+568f, + U+5694-5695, U+5699-569a, U+569d-56a0, U+56a5-56a9, U+56ab-56ae, U+56b1-56b4, U+56b6-56b7, U+56bc, U+56be, U+56c0, U+56c2-56c3, U+56c5, + U+56c8-56d1, U+56d3, U+56d7-56d9, U+56dc-56dd, U+56df, U+56e1, U+56e4-56e8, U+56eb, U+56ed-56ee, U+56f1, U+56f6-56f7, U+56f9, U+56ff-5704, + U+5707-570a, U+570c-570d, U+5711, U+5713, U+5715-5716, U+5718, U+571a-571d, U+5720-5726, U+5729-572a, U+572c, U+572e-572f, U+5733-5734, + U+5737-5738, U+573b, U+573d-573f, U+5745-5746, U+574c-574f, U+5751-5752, U+5759, U+575f, U+5761-5762, U+5764-5765, U+5767-5769, U+576b, + U+576d-5771, U+5773-5775, U+5777, U+5779-577c, U+577e-577f, U+5781, U+5783, U+5788-5789, U+578c, U+5793-5795, U+5797, U+5799-579a, U+579c-57a1, + U+57a4, U+57a7-57aa, U+57ac, U+57ae, U+57b0; } /* [46] */ @font-face { @@ -1498,8 +3122,20 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.46.woff2) format('woff2'); - unicode-range: U+543f-5440, U+5443-5444, U+5447, U+544c-544f, U+5455, U+545e, U+5462, U+5464, U+5466-5467, U+5469, U+546b-546e, U+5470-5471, U+5474-5477, U+547b, U+547f-5481, U+5483-5486, U+5488-548b, U+548d-5492, U+5495-5496, U+549c, U+549f-54a2, U+54a4, U+54a6-54af, U+54b1, U+54b7-54bc, U+54be-54bf, U+54c2-54c4, U+54c6-54c8, U+54ca, U+54cd-54ce, U+54d8, U+54e0, U+54e2, U+54e5-54e6, U+54e8-54ea, U+54ec-54ef, U+54f1, U+54f3, U+54f6, U+54fc-5501, U+5505, U+5508-5509, U+550c-550f, U+5514-5516, U+5527, U+552a-552b, U+552e, U+5532-5533, U+5535-5536, U+5538-5539, U+553b-553d, U+5540-5541, U+5544-5545, U+5547, U+5549-554a, U+554c-554d, U+5550-5551, U+5556-5558, U+555a-555e, U+5560-5561, U+5563-5564, U+5566, U+557b-5583, U+5586-5588, U+558a, U+558e-558f, U+5591-5594, U+5597, U+5599, U+559e-559f, U+55a3-55a4, U+55a8-55a9, U+55ac-55ae, U+55b2, U+55bf, U+55c1, U+55c3-55c4, U+55c6-55c7, U+55c9, U+55cb-55cc, U+55ce, U+55d1-55d4, U+55d7-55d8, U+55da-55db, U+55dd-55df, U+55e2, U+55e4, U+55e9, U+55ec, U+55ee, U+55f1, U+55f6-55f9, U+55fd-55ff, U+5605, U+5607-5608, U+560a, U+560d-5612; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.46.woff2) format('woff2'); + unicode-range: + U+543f-5440, U+5443-5444, U+5447, U+544c-544f, U+5455, U+545e, U+5462, U+5464, U+5466-5467, U+5469, U+546b-546e, U+5470-5471, U+5474-5477, U+547b, + U+547f-5481, U+5483-5486, U+5488-548b, U+548d-5492, U+5495-5496, U+549c, U+549f-54a2, U+54a4, U+54a6-54af, U+54b1, U+54b7-54bc, U+54be-54bf, + U+54c2-54c4, U+54c6-54c8, U+54ca, U+54cd-54ce, U+54d8, U+54e0, U+54e2, U+54e5-54e6, U+54e8-54ea, U+54ec-54ef, U+54f1, U+54f3, U+54f6, U+54fc-5501, + U+5505, U+5508-5509, U+550c-550f, U+5514-5516, U+5527, U+552a-552b, U+552e, U+5532-5533, U+5535-5536, U+5538-5539, U+553b-553d, U+5540-5541, + U+5544-5545, U+5547, U+5549-554a, U+554c-554d, U+5550-5551, U+5556-5558, U+555a-555e, U+5560-5561, U+5563-5564, U+5566, U+557b-5583, U+5586-5588, + U+558a, U+558e-558f, U+5591-5594, U+5597, U+5599, U+559e-559f, U+55a3-55a4, U+55a8-55a9, U+55ac-55ae, U+55b2, U+55bf, U+55c1, U+55c3-55c4, + U+55c6-55c7, U+55c9, U+55cb-55cc, U+55ce, U+55d1-55d4, U+55d7-55d8, U+55da-55db, U+55dd-55df, U+55e2, U+55e4, U+55e9, U+55ec, U+55ee, U+55f1, + U+55f6-55f9, U+55fd-55ff, U+5605, U+5607-5608, U+560a, U+560d-5612; } /* [47] */ @font-face { @@ -1507,8 +3143,20 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.47.woff2) format('woff2'); - unicode-range: U+528d, U+5291-5298, U+529a, U+529c, U+52a4-52a7, U+52ab-52ad, U+52af-52b0, U+52b5-52b8, U+52ba-52be, U+52c0-52c1, U+52c4-52c6, U+52c8, U+52ca, U+52cc-52cd, U+52cf-52d2, U+52d4, U+52d6-52d7, U+52db-52dc, U+52de, U+52e0-52e1, U+52e3, U+52e5-52e6, U+52e8-52ea, U+52ec, U+52f0-52f1, U+52f3-52fb, U+5300-5301, U+5303, U+5306-5308, U+530a-530d, U+530f-5311, U+5313, U+5315, U+5318-531f, U+5321, U+5323-5325, U+5327-532d, U+532f-5333, U+5335, U+5338, U+533c-533e, U+5340, U+5342, U+5345-5346, U+5349, U+534b-534c, U+5359, U+535b, U+535e, U+5361, U+5363-5367, U+5369, U+536c-536e, U+5372, U+5377, U+5379-537b, U+537d-537f, U+5382-5383, U+5387-5389, U+538e, U+5393-5394, U+5396, U+5398-5399, U+539d, U+53a0-53a1, U+53a4-53a6, U+53a9-53ab, U+53ad-53b0, U+53b2, U+53b4-53b8, U+53ba, U+53bd, U+53c0-53c1, U+53c3-53c5, U+53cf, U+53d2-53d3, U+53d5, U+53da-53db, U+53dd-53e0, U+53e2, U+53e6-53e8, U+53ed-53ee, U+53f4-53f5, U+53fa, U+5401-5403, U+540b, U+540f, U+5412-5413, U+541a, U+541d-541e, U+5421, U+5424, U+5427-542a, U+542c-542f, U+5431, U+5433-5436, U+543c-543d; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.47.woff2) format('woff2'); + unicode-range: + U+528d, U+5291-5298, U+529a, U+529c, U+52a4-52a7, U+52ab-52ad, U+52af-52b0, U+52b5-52b8, U+52ba-52be, U+52c0-52c1, U+52c4-52c6, U+52c8, U+52ca, + U+52cc-52cd, U+52cf-52d2, U+52d4, U+52d6-52d7, U+52db-52dc, U+52de, U+52e0-52e1, U+52e3, U+52e5-52e6, U+52e8-52ea, U+52ec, U+52f0-52f1, + U+52f3-52fb, U+5300-5301, U+5303, U+5306-5308, U+530a-530d, U+530f-5311, U+5313, U+5315, U+5318-531f, U+5321, U+5323-5325, U+5327-532d, + U+532f-5333, U+5335, U+5338, U+533c-533e, U+5340, U+5342, U+5345-5346, U+5349, U+534b-534c, U+5359, U+535b, U+535e, U+5361, U+5363-5367, U+5369, + U+536c-536e, U+5372, U+5377, U+5379-537b, U+537d-537f, U+5382-5383, U+5387-5389, U+538e, U+5393-5394, U+5396, U+5398-5399, U+539d, U+53a0-53a1, + U+53a4-53a6, U+53a9-53ab, U+53ad-53b0, U+53b2, U+53b4-53b8, U+53ba, U+53bd, U+53c0-53c1, U+53c3-53c5, U+53cf, U+53d2-53d3, U+53d5, U+53da-53db, + U+53dd-53e0, U+53e2, U+53e6-53e8, U+53ed-53ee, U+53f4-53f5, U+53fa, U+5401-5403, U+540b, U+540f, U+5412-5413, U+541a, U+541d-541e, U+5421, U+5424, + U+5427-542a, U+542c-542f, U+5431, U+5433-5436, U+543c-543d; } /* [48] */ @font-face { @@ -1516,8 +3164,20 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.48.woff2) format('woff2'); - unicode-range: U+50dd-50df, U+50e1-50e6, U+50e8-50e9, U+50ed-50f6, U+50f9-50fb, U+50fe, U+5101-5103, U+5106-5109, U+510b-510e, U+5110, U+5112, U+5114-511e, U+5121, U+5123, U+5127-5128, U+512c-512d, U+512f, U+5131, U+5133-5135, U+5137-513c, U+513f-5142, U+5147, U+514a, U+514c, U+514f, U+5152-5155, U+5157-5158, U+515f-5160, U+5162, U+5164, U+5166-5167, U+5169-516a, U+516e, U+5173-5174, U+5179, U+517b, U+517e, U+5180, U+5182-5184, U+5189, U+518b-518c, U+518e-5191, U+5193, U+5195-5196, U+5198, U+519d, U+51a1-51a4, U+51a6, U+51a9-51ab, U+51ad, U+51b0-51b3, U+51b5, U+51b8, U+51ba, U+51bc-51bf, U+51c2-51c3, U+51c5, U+51c8-51cb, U+51cf, U+51d1-51d6, U+51d8, U+51de-51e0, U+51e2, U+51e5, U+51e7, U+51e9, U+51ec-51ee, U+51f2-51f5, U+51f7, U+51fe, U+5201-5202, U+5204-5205, U+520b, U+520e, U+5212-5216, U+5218, U+5222, U+5226-5228, U+522a-522b, U+522e, U+5231-5233, U+5235, U+523c, U+5244-5245, U+5249, U+524b-524c, U+524f, U+5254-5255, U+5257-5258, U+525a, U+525c-5261, U+5266, U+5269, U+526c, U+526e, U+5271, U+5273-5274, U+5277-5279, U+527d, U+527f-5280, U+5282-5285, U+5288-528a, U+528c; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.48.woff2) format('woff2'); + unicode-range: + U+50dd-50df, U+50e1-50e6, U+50e8-50e9, U+50ed-50f6, U+50f9-50fb, U+50fe, U+5101-5103, U+5106-5109, U+510b-510e, U+5110, U+5112, U+5114-511e, + U+5121, U+5123, U+5127-5128, U+512c-512d, U+512f, U+5131, U+5133-5135, U+5137-513c, U+513f-5142, U+5147, U+514a, U+514c, U+514f, U+5152-5155, + U+5157-5158, U+515f-5160, U+5162, U+5164, U+5166-5167, U+5169-516a, U+516e, U+5173-5174, U+5179, U+517b, U+517e, U+5180, U+5182-5184, U+5189, + U+518b-518c, U+518e-5191, U+5193, U+5195-5196, U+5198, U+519d, U+51a1-51a4, U+51a6, U+51a9-51ab, U+51ad, U+51b0-51b3, U+51b5, U+51b8, U+51ba, + U+51bc-51bf, U+51c2-51c3, U+51c5, U+51c8-51cb, U+51cf, U+51d1-51d6, U+51d8, U+51de-51e0, U+51e2, U+51e5, U+51e7, U+51e9, U+51ec-51ee, U+51f2-51f5, + U+51f7, U+51fe, U+5201-5202, U+5204-5205, U+520b, U+520e, U+5212-5216, U+5218, U+5222, U+5226-5228, U+522a-522b, U+522e, U+5231-5233, U+5235, + U+523c, U+5244-5245, U+5249, U+524b-524c, U+524f, U+5254-5255, U+5257-5258, U+525a, U+525c-5261, U+5266, U+5269, U+526c, U+526e, U+5271, + U+5273-5274, U+5277-5279, U+527d, U+527f-5280, U+5282-5285, U+5288-528a, U+528c; } /* [49] */ @font-face { @@ -1525,8 +3185,19 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.49.woff2) format('woff2'); - unicode-range: U+4f57-4f58, U+4f5a-4f5b, U+4f5d-4f5f, U+4f63-4f64, U+4f69-4f6a, U+4f6c, U+4f6e-4f71, U+4f76-4f7e, U+4f81-4f85, U+4f88-4f8a, U+4f8c, U+4f8e-4f90, U+4f92-4f94, U+4f96-4f9a, U+4f9e-4fa0, U+4fab, U+4fad, U+4faf, U+4fb2, U+4fb7, U+4fb9, U+4fbb-4fbe, U+4fc0-4fc1, U+4fc4-4fc6, U+4fc8-4fc9, U+4fcb-4fd4, U+4fd8, U+4fda-4fdc, U+4fdf-4fe0, U+4fe2, U+4fe4-4fe6, U+4fef-4ff2, U+4ff6, U+4ffc-5002, U+5004-5007, U+500a, U+500c, U+500e-5011, U+5013-5014, U+5016-5018, U+501a-501e, U+5021-5023, U+5025-502a, U+502c-502e, U+5030, U+5032-5033, U+5035, U+5039, U+503b, U+5040-5043, U+5045-5048, U+504a, U+504c, U+504e, U+5050-5053, U+5055-5057, U+5059-505a, U+505f-5060, U+5062-5063, U+5066-5067, U+506a, U+506c-506d, U+5070-5072, U+5077-5078, U+5080-5081, U+5083-5086, U+5088, U+508a, U+508e-5090, U+5092-5096, U+509a-509c, U+509e-50a3, U+50aa, U+50ad, U+50af-50b4, U+50b9-50bb, U+50bd, U+50c0, U+50c2-50c4, U+50c7, U+50c9-50ca, U+50cc, U+50ce, U+50d0-50d1, U+50d3-50d4, U+50d6, U+50d8-50d9, U+50dc; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.49.woff2) format('woff2'); + unicode-range: + U+4f57-4f58, U+4f5a-4f5b, U+4f5d-4f5f, U+4f63-4f64, U+4f69-4f6a, U+4f6c, U+4f6e-4f71, U+4f76-4f7e, U+4f81-4f85, U+4f88-4f8a, U+4f8c, U+4f8e-4f90, + U+4f92-4f94, U+4f96-4f9a, U+4f9e-4fa0, U+4fab, U+4fad, U+4faf, U+4fb2, U+4fb7, U+4fb9, U+4fbb-4fbe, U+4fc0-4fc1, U+4fc4-4fc6, U+4fc8-4fc9, + U+4fcb-4fd4, U+4fd8, U+4fda-4fdc, U+4fdf-4fe0, U+4fe2, U+4fe4-4fe6, U+4fef-4ff2, U+4ff6, U+4ffc-5002, U+5004-5007, U+500a, U+500c, U+500e-5011, + U+5013-5014, U+5016-5018, U+501a-501e, U+5021-5023, U+5025-502a, U+502c-502e, U+5030, U+5032-5033, U+5035, U+5039, U+503b, U+5040-5043, + U+5045-5048, U+504a, U+504c, U+504e, U+5050-5053, U+5055-5057, U+5059-505a, U+505f-5060, U+5062-5063, U+5066-5067, U+506a, U+506c-506d, + U+5070-5072, U+5077-5078, U+5080-5081, U+5083-5086, U+5088, U+508a, U+508e-5090, U+5092-5096, U+509a-509c, U+509e-50a3, U+50aa, U+50ad, + U+50af-50b4, U+50b9-50bb, U+50bd, U+50c0, U+50c2-50c4, U+50c7, U+50c9-50ca, U+50cc, U+50ce, U+50d0-50d1, U+50d3-50d4, U+50d6, U+50d8-50d9, U+50dc; } /* [50] */ @font-face { @@ -1534,8 +3205,23 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.50.woff2) format('woff2'); - unicode-range: U+4093, U+4103, U+4105, U+4148, U+414f, U+4163, U+41b4, U+41bf, U+41e6, U+41ee, U+41f3, U+4207, U+420e, U+4264, U+4293, U+42c6, U+42d6, U+42dd, U+4302, U+432b, U+4343, U+43ee, U+43f0, U+4408, U+440c, U+4417, U+441c, U+4422, U+4453, U+445b, U+4476, U+447a, U+4491, U+44b3, U+44be, U+44d4, U+4508, U+450d, U+4525, U+4543, U+457a, U+459d, U+45b8, U+45be, U+45e5, U+45ea, U+460f-4610, U+4641, U+4665, U+46a1, U+46ae-46af, U+470c, U+471f, U+4764, U+47e6, U+47fd, U+4816, U+481e, U+4844, U+484e, U+48b5, U+49b0, U+49e7, U+49fa, U+4a04, U+4a29, U+4abc, U+4b38, U+4b3b, U+4b7e, U+4bc2, U+4bca, U+4bd2, U+4be8, U+4c17, U+4c20, U+4c38, U+4cc4, U+4cd1, U+4ce1, U+4d07, U+4d77, U+4e02, U+4e04-4e05, U+4e0c, U+4e0f-4e12, U+4e15, U+4e17, U+4e19, U+4e1e-4e1f, U+4e23-4e24, U+4e28-4e2c, U+4e2e-4e31, U+4e35-4e37, U+4e3f-4e42, U+4e44, U+4e47-4e48, U+4e4d-4e4e, U+4e51, U+4e55-4e56, U+4e58, U+4e5a-4e5c, U+4e62-4e63, U+4e68-4e69, U+4e74-4e75, U+4e79, U+4e7f, U+4e82, U+4e85, U+4e8a, U+4e8d-4e8e, U+4e96-4e99, U+4e9d-4ea0, U+4ea2, U+4ea5-4ea6, U+4ea8, U+4eaf-4eb0, U+4eb3, U+4eb6, U+4eb9, U+4ebb-4ebc, U+4ec2-4ec4, U+4ec6-4ec8, U+4ecd, U+4ed0, U+4ed7, U+4eda-4edb, U+4edd-4ee2, U+4ee8, U+4eeb, U+4eed, U+4eef, U+4ef1, U+4ef3, U+4ef5, U+4ef7, U+4efc-4f00, U+4f02-4f03, U+4f08-4f09, U+4f0b-4f0d, U+4f12, U+4f15-4f17, U+4f19, U+4f1c, U+4f2b, U+4f2e, U+4f30-4f31, U+4f33, U+4f35-4f37, U+4f39, U+4f3b, U+4f3e, U+4f40, U+4f42-4f43, U+4f48-4f49, U+4f4b-4f4c, U+4f52, U+4f54, U+4f56; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.50.woff2) format('woff2'); + unicode-range: + U+4093, U+4103, U+4105, U+4148, U+414f, U+4163, U+41b4, U+41bf, U+41e6, U+41ee, U+41f3, U+4207, U+420e, U+4264, U+4293, U+42c6, U+42d6, U+42dd, + U+4302, U+432b, U+4343, U+43ee, U+43f0, U+4408, U+440c, U+4417, U+441c, U+4422, U+4453, U+445b, U+4476, U+447a, U+4491, U+44b3, U+44be, U+44d4, + U+4508, U+450d, U+4525, U+4543, U+457a, U+459d, U+45b8, U+45be, U+45e5, U+45ea, U+460f-4610, U+4641, U+4665, U+46a1, U+46ae-46af, U+470c, U+471f, + U+4764, U+47e6, U+47fd, U+4816, U+481e, U+4844, U+484e, U+48b5, U+49b0, U+49e7, U+49fa, U+4a04, U+4a29, U+4abc, U+4b38, U+4b3b, U+4b7e, U+4bc2, + U+4bca, U+4bd2, U+4be8, U+4c17, U+4c20, U+4c38, U+4cc4, U+4cd1, U+4ce1, U+4d07, U+4d77, U+4e02, U+4e04-4e05, U+4e0c, U+4e0f-4e12, U+4e15, U+4e17, + U+4e19, U+4e1e-4e1f, U+4e23-4e24, U+4e28-4e2c, U+4e2e-4e31, U+4e35-4e37, U+4e3f-4e42, U+4e44, U+4e47-4e48, U+4e4d-4e4e, U+4e51, U+4e55-4e56, + U+4e58, U+4e5a-4e5c, U+4e62-4e63, U+4e68-4e69, U+4e74-4e75, U+4e79, U+4e7f, U+4e82, U+4e85, U+4e8a, U+4e8d-4e8e, U+4e96-4e99, U+4e9d-4ea0, U+4ea2, + U+4ea5-4ea6, U+4ea8, U+4eaf-4eb0, U+4eb3, U+4eb6, U+4eb9, U+4ebb-4ebc, U+4ec2-4ec4, U+4ec6-4ec8, U+4ecd, U+4ed0, U+4ed7, U+4eda-4edb, U+4edd-4ee2, + U+4ee8, U+4eeb, U+4eed, U+4eef, U+4ef1, U+4ef3, U+4ef5, U+4ef7, U+4efc-4f00, U+4f02-4f03, U+4f08-4f09, U+4f0b-4f0d, U+4f12, U+4f15-4f17, U+4f19, + U+4f1c, U+4f2b, U+4f2e, U+4f30-4f31, U+4f33, U+4f35-4f37, U+4f39, U+4f3b, U+4f3e, U+4f40, U+4f42-4f43, U+4f48-4f49, U+4f4b-4f4c, U+4f52, U+4f54, + U+4f56; } /* [51] */ @font-face { @@ -1543,8 +3229,19 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.51.woff2) format('woff2'); - unicode-range: U+3395-339b, U+339e-33a0, U+33a2-33ff, U+3402, U+3405-3406, U+3427, U+342c, U+342e, U+3468, U+346a, U+3488, U+3492, U+34b5, U+34bc, U+34c1, U+34c7, U+34db, U+351f, U+353e, U+355d-355e, U+3563, U+356e, U+35a6, U+35a8, U+35c5, U+35da, U+35de, U+35f4, U+3605, U+3614, U+364a, U+3691, U+3696, U+3699, U+36cf, U+3761-3762, U+376b-376c, U+3775, U+378d, U+37c1, U+37e2, U+37e8, U+37f4, U+37fd, U+3800, U+382f, U+3836, U+3840, U+385c, U+3861, U+38a1, U+38ad, U+38fa, U+3917, U+391a, U+396f, U+39a4, U+39b8, U+3a5c, U+3a6e, U+3a73, U+3a85, U+3ac4, U+3acb, U+3ad6-3ad7, U+3aea, U+3af3, U+3b0e, U+3b1a, U+3b1c, U+3b22, U+3b35, U+3b6d, U+3b77, U+3b87-3b88, U+3b8d, U+3ba4, U+3bb6, U+3bc3, U+3bcd, U+3bf0, U+3bf3, U+3c0f, U+3c26, U+3cc3, U+3cd2, U+3d11, U+3d1e, U+3d31, U+3d4e, U+3d64, U+3d9a, U+3dc0, U+3dcc, U+3dd4, U+3e05, U+3e3f-3e40, U+3e60, U+3e66, U+3e68, U+3e83, U+3e8a, U+3e94, U+3eda, U+3f57, U+3f72, U+3f75, U+3f77, U+3fae, U+3fb1, U+3fc9, U+3fd7, U+3fdc, U+4039, U+4058; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.51.woff2) format('woff2'); + unicode-range: + U+3395-339b, U+339e-33a0, U+33a2-33ff, U+3402, U+3405-3406, U+3427, U+342c, U+342e, U+3468, U+346a, U+3488, U+3492, U+34b5, U+34bc, U+34c1, + U+34c7, U+34db, U+351f, U+353e, U+355d-355e, U+3563, U+356e, U+35a6, U+35a8, U+35c5, U+35da, U+35de, U+35f4, U+3605, U+3614, U+364a, U+3691, + U+3696, U+3699, U+36cf, U+3761-3762, U+376b-376c, U+3775, U+378d, U+37c1, U+37e2, U+37e8, U+37f4, U+37fd, U+3800, U+382f, U+3836, U+3840, U+385c, + U+3861, U+38a1, U+38ad, U+38fa, U+3917, U+391a, U+396f, U+39a4, U+39b8, U+3a5c, U+3a6e, U+3a73, U+3a85, U+3ac4, U+3acb, U+3ad6-3ad7, U+3aea, + U+3af3, U+3b0e, U+3b1a, U+3b1c, U+3b22, U+3b35, U+3b6d, U+3b77, U+3b87-3b88, U+3b8d, U+3ba4, U+3bb6, U+3bc3, U+3bcd, U+3bf0, U+3bf3, U+3c0f, + U+3c26, U+3cc3, U+3cd2, U+3d11, U+3d1e, U+3d31, U+3d4e, U+3d64, U+3d9a, U+3dc0, U+3dcc, U+3dd4, U+3e05, U+3e3f-3e40, U+3e60, U+3e66, U+3e68, + U+3e83, U+3e8a, U+3e94, U+3eda, U+3f57, U+3f72, U+3f75, U+3f77, U+3fae, U+3fb1, U+3fc9, U+3fd7, U+3fdc, U+4039, U+4058; } /* [52] */ @font-face { @@ -1552,7 +3249,11 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.52.woff2) format('woff2'); + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.52.woff2) format('woff2'); unicode-range: U+32b5-332b, U+332d-3394; } /* [53] */ @@ -1561,7 +3262,11 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.53.woff2) format('woff2'); + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.53.woff2) format('woff2'); unicode-range: U+31c8-31e3, U+31f0-321e, U+3220-3230, U+3232-32b4; } /* [54] */ @@ -1570,7 +3275,11 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.54.woff2) format('woff2'); + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.54.woff2) format('woff2'); unicode-range: U+3028-303f, U+3094-3096, U+309f-30a0, U+30ee, U+30f7-30fa, U+30ff, U+3105-312f, U+3131-3163, U+3165-318e, U+3190-31bb, U+31c0-31c7; } /* [55] */ @@ -1579,7 +3288,11 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.55.woff2) format('woff2'); + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.55.woff2) format('woff2'); unicode-range: U+2f14-2fd5, U+2ff0-2ffb, U+3004, U+3013, U+3016-301b, U+301e, U+3020-3027; } /* [56] */ @@ -1588,8 +3301,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.56.woff2) format('woff2'); - unicode-range: U+25e4-25e6, U+2601-2603, U+2609, U+260e-260f, U+2616-2617, U+261c-261f, U+262f, U+2641, U+2660, U+2662-2664, U+2666-2668, U+266d-266e, U+2672-267d, U+26bd-26be, U+2702, U+271a, U+273d, U+2740, U+2756, U+2776-2793, U+27a1, U+2934-2935, U+29bf, U+29fa-29fb, U+2b05-2b07, U+2b1a, U+2b95, U+2e3a-2e3b, U+2e80-2e99, U+2e9b-2ef3, U+2f00-2f13; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.56.woff2) format('woff2'); + unicode-range: + U+25e4-25e6, U+2601-2603, U+2609, U+260e-260f, U+2616-2617, U+261c-261f, U+262f, U+2641, U+2660, U+2662-2664, U+2666-2668, U+266d-266e, + U+2672-267d, U+26bd-26be, U+2702, U+271a, U+273d, U+2740, U+2756, U+2776-2793, U+27a1, U+2934-2935, U+29bf, U+29fa-29fb, U+2b05-2b07, U+2b1a, + U+2b95, U+2e3a-2e3b, U+2e80-2e99, U+2e9b-2ef3, U+2f00-2f13; } /* [57] */ @font-face { @@ -1597,8 +3317,14 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.57.woff2) format('woff2'); - unicode-range: U+24d1-24ff, U+2503-2513, U+2515-2516, U+2518-251b, U+251d-2522, U+2524-259f, U+25a2-25ab, U+25b1, U+25b7, U+25c0-25c1, U+25c9-25ca, U+25cc, U+25d0-25d3, U+25e2-25e3; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.57.woff2) format('woff2'); + unicode-range: + U+24d1-24ff, U+2503-2513, U+2515-2516, U+2518-251b, U+251d-2522, U+2524-259f, U+25a2-25ab, U+25b1, U+25b7, U+25c0-25c1, U+25c9-25ca, U+25cc, + U+25d0-25d3, U+25e2-25e3; } /* [58] */ @font-face { @@ -1606,8 +3332,17 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.58.woff2) format('woff2'); - unicode-range: U+2105, U+2109-210a, U+210f, U+2116, U+2121, U+2126-2127, U+212b, U+212e, U+2135, U+213b, U+2194-2199, U+21b8-21b9, U+21c4-21c6, U+21cb-21cc, U+21d0, U+21e6-21e9, U+21f5, U+2202-2203, U+2205-2206, U+2208-220b, U+220f, U+2211, U+2213, U+2215, U+221a, U+221d, U+2220, U+2223, U+2225-2226, U+2228, U+222a-222e, U+2234-2237, U+223d, U+2243, U+2245, U+2248, U+224c, U+2260, U+2262, U+2264-2265, U+226e-226f, U+2272-2273, U+2276-2277, U+2283-2287, U+228a-228b, U+2295-2299, U+22a0, U+22a5, U+22bf, U+22da-22db, U+22ef, U+2305-2307, U+2318, U+2329-232a, U+23b0-23b1, U+23be-23cc, U+23ce, U+23da-23db, U+2423, U+2469-24d0; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.58.woff2) format('woff2'); + unicode-range: + U+2105, U+2109-210a, U+210f, U+2116, U+2121, U+2126-2127, U+212b, U+212e, U+2135, U+213b, U+2194-2199, U+21b8-21b9, U+21c4-21c6, U+21cb-21cc, + U+21d0, U+21e6-21e9, U+21f5, U+2202-2203, U+2205-2206, U+2208-220b, U+220f, U+2211, U+2213, U+2215, U+221a, U+221d, U+2220, U+2223, U+2225-2226, + U+2228, U+222a-222e, U+2234-2237, U+223d, U+2243, U+2245, U+2248, U+224c, U+2260, U+2262, U+2264-2265, U+226e-226f, U+2272-2273, U+2276-2277, + U+2283-2287, U+228a-228b, U+2295-2299, U+22a0, U+22a5, U+22bf, U+22da-22db, U+22ef, U+2305-2307, U+2318, U+2329-232a, U+23b0-23b1, U+23be-23cc, + U+23ce, U+23da-23db, U+2423, U+2469-24d0; } /* [59] */ @font-face { @@ -1615,8 +3350,16 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.59.woff2) format('woff2'); - unicode-range: U+a1-a4, U+a6-a7, U+aa, U+ac-ad, U+b5-b6, U+b8-ba, U+bc-c8, U+ca-cc, U+ce-d5, U+d9-db, U+dd-df, U+e6, U+ee, U+f0, U+f5, U+f7, U+f9, U+fb, U+fe-102, U+110-113, U+11a-11b, U+128-12b, U+143-144, U+147-148, U+14c, U+14e-14f, U+152-153, U+168-16d, U+192, U+1a0-1a1, U+1af, U+1cd-1dc, U+1f8-1f9, U+251, U+261, U+2bb, U+2c7, U+2c9, U+2ea-2eb, U+304, U+307, U+30c, U+1e3e-1e3f, U+1ea0-1ebe, U+1ec0-1ec6, U+1ec8-1ef9, U+2011-2012, U+2016, U+2018-201a, U+201e, U+2021, U+2030, U+2033, U+2035, U+2042, U+2047, U+2051, U+2074, U+20a9, U+20ab-20ac, U+20dd-20de, U+2100; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.59.woff2) format('woff2'); + unicode-range: + U+a1-a4, U+a6-a7, U+aa, U+ac-ad, U+b5-b6, U+b8-ba, U+bc-c8, U+ca-cc, U+ce-d5, U+d9-db, U+dd-df, U+e6, U+ee, U+f0, U+f5, U+f7, U+f9, U+fb, + U+fe-102, U+110-113, U+11a-11b, U+128-12b, U+143-144, U+147-148, U+14c, U+14e-14f, U+152-153, U+168-16d, U+192, U+1a0-1a1, U+1af, U+1cd-1dc, + U+1f8-1f9, U+251, U+261, U+2bb, U+2c7, U+2c9, U+2ea-2eb, U+304, U+307, U+30c, U+1e3e-1e3f, U+1ea0-1ebe, U+1ec0-1ec6, U+1ec8-1ef9, U+2011-2012, + U+2016, U+2018-201a, U+201e, U+2021, U+2030, U+2033, U+2035, U+2042, U+2047, U+2051, U+2074, U+20a9, U+20ab-20ac, U+20dd-20de, U+2100; } /* [60] */ @font-face { @@ -1624,8 +3367,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.60.woff2) format('woff2'); - unicode-range: U+2227, U+26a0, U+2713, U+301f, U+4ff8, U+5239, U+526a, U+54fa, U+5740, U+5937, U+5993, U+59fb, U+5a3c, U+5c41, U+6028, U+626e, U+646f, U+647a, U+64b0, U+64e2, U+65a7, U+66fe, U+6727, U+6955, U+6bef, U+6f23, U+724c, U+767c, U+7a83, U+7ac4, U+7b67, U+8000, U+8471, U+8513, U+8599, U+86db, U+8718, U+87f2, U+88f3, U+8ad2, U+8e2a, U+8fa3, U+95a5, U+9798, U+9910, U+9957, U+9bab, U+9c3b, U+9daf, U+ff95; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.60.woff2) format('woff2'); + unicode-range: + U+2227, U+26a0, U+2713, U+301f, U+4ff8, U+5239, U+526a, U+54fa, U+5740, U+5937, U+5993, U+59fb, U+5a3c, U+5c41, U+6028, U+626e, U+646f, U+647a, + U+64b0, U+64e2, U+65a7, U+66fe, U+6727, U+6955, U+6bef, U+6f23, U+724c, U+767c, U+7a83, U+7ac4, U+7b67, U+8000, U+8471, U+8513, U+8599, U+86db, + U+8718, U+87f2, U+88f3, U+8ad2, U+8e2a, U+8fa3, U+95a5, U+9798, U+9910, U+9957, U+9bab, U+9c3b, U+9daf, U+ff95; } /* [61] */ @font-face { @@ -1633,8 +3383,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.61.woff2) format('woff2'); - unicode-range: U+a8, U+2032, U+2261, U+2282, U+3090, U+30f1, U+339c, U+535c, U+53d9, U+56a2, U+56c1, U+5806, U+589f, U+59d0, U+5a7f, U+60e0, U+639f, U+65af, U+68fa, U+69ae, U+6d1b, U+6ef2, U+71fb, U+725d, U+7262, U+75bc, U+7768, U+7940, U+79bf, U+7bed, U+7d68, U+7dfb, U+814b, U+8207, U+83e9, U+8494, U+8526, U+8568, U+85ea, U+86d9, U+87ba, U+8861, U+887f, U+8fe6, U+9059, U+9061, U+916a, U+976d, U+97ad, U+9ece; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.61.woff2) format('woff2'); + unicode-range: + U+a8, U+2032, U+2261, U+2282, U+3090, U+30f1, U+339c, U+535c, U+53d9, U+56a2, U+56c1, U+5806, U+589f, U+59d0, U+5a7f, U+60e0, U+639f, U+65af, + U+68fa, U+69ae, U+6d1b, U+6ef2, U+71fb, U+725d, U+7262, U+75bc, U+7768, U+7940, U+79bf, U+7bed, U+7d68, U+7dfb, U+814b, U+8207, U+83e9, U+8494, + U+8526, U+8568, U+85ea, U+86d9, U+87ba, U+8861, U+887f, U+8fe6, U+9059, U+9061, U+916a, U+976d, U+97ad, U+9ece; } /* [62] */ @font-face { @@ -1642,8 +3399,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.62.woff2) format('woff2'); - unicode-range: U+2d9, U+21d4, U+301d, U+515c, U+52fe, U+5420, U+5750, U+5766, U+5954, U+5b95, U+5f8a, U+5f98, U+620c, U+621f, U+641c, U+66d9, U+676d, U+6775, U+67f5, U+694a, U+6a02, U+6a3a, U+6a80, U+6c23, U+6c72, U+6dcb, U+6faa, U+707c, U+71c8, U+7422, U+74e2, U+7791, U+7825, U+7a14, U+7a1c, U+7c95, U+7fc1, U+82a5, U+82db, U+8304, U+853d, U+8cd3, U+8de8, U+8f0c, U+8f3f, U+9091, U+91c7, U+929a, U+98af, U+9913; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.62.woff2) format('woff2'); + unicode-range: + U+2d9, U+21d4, U+301d, U+515c, U+52fe, U+5420, U+5750, U+5766, U+5954, U+5b95, U+5f8a, U+5f98, U+620c, U+621f, U+641c, U+66d9, U+676d, U+6775, + U+67f5, U+694a, U+6a02, U+6a3a, U+6a80, U+6c23, U+6c72, U+6dcb, U+6faa, U+707c, U+71c8, U+7422, U+74e2, U+7791, U+7825, U+7a14, U+7a1c, U+7c95, + U+7fc1, U+82a5, U+82db, U+8304, U+853d, U+8cd3, U+8de8, U+8f0c, U+8f3f, U+9091, U+91c7, U+929a, U+98af, U+9913; } /* [63] */ @font-face { @@ -1651,8 +3415,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.63.woff2) format('woff2'); - unicode-range: U+2ca-2cb, U+2229, U+2468, U+2669, U+266f, U+273f, U+4ec0, U+4f60, U+4fb6, U+5347, U+540e, U+543b, U+5b0c, U+5d4c, U+5f14, U+5f9e, U+6155, U+62d0, U+6602, U+6666, U+66f3, U+67a2, U+67ca, U+69cc, U+6d29, U+6d9b, U+6e3e, U+6f81, U+7109, U+73c0, U+73c2, U+7425, U+7435-7436, U+7525, U+7554, U+785d, U+786b, U+7ae3, U+7b94, U+7d18, U+81bf, U+8511, U+8549, U+9075, U+9640, U+98e2, U+9e9f, U+ff96; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.63.woff2) format('woff2'); + unicode-range: + U+2ca-2cb, U+2229, U+2468, U+2669, U+266f, U+273f, U+4ec0, U+4f60, U+4fb6, U+5347, U+540e, U+543b, U+5b0c, U+5d4c, U+5f14, U+5f9e, U+6155, U+62d0, + U+6602, U+6666, U+66f3, U+67a2, U+67ca, U+69cc, U+6d29, U+6d9b, U+6e3e, U+6f81, U+7109, U+73c0, U+73c2, U+7425, U+7435-7436, U+7525, U+7554, + U+785d, U+786b, U+7ae3, U+7b94, U+7d18, U+81bf, U+8511, U+8549, U+9075, U+9640, U+98e2, U+9e9f, U+ff96; } /* [64] */ @font-face { @@ -1660,8 +3431,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.64.woff2) format('woff2'); - unicode-range: U+2467, U+4ece, U+4ed4, U+4f91, U+4fae, U+534d, U+53c9, U+54b3, U+586b, U+5944, U+5b78, U+5df7, U+5f77, U+6101, U+6167-6168, U+61a4, U+62d9, U+698a, U+699b, U+6a59, U+6cc4, U+6e07, U+7099, U+75d2, U+77ad, U+7953, U+7984, U+7a92, U+7baa, U+7dbb, U+817f, U+82ad, U+85e9, U+868a, U+8caa, U+8f44, U+9017, U+907c, U+908a, U+92f3, U+936e, U+9435, U+978d, U+9838, U+9a28, U+9b41, U+9ba8, U+9c57, U+9eb9; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.64.woff2) format('woff2'); + unicode-range: + U+2467, U+4ece, U+4ed4, U+4f91, U+4fae, U+534d, U+53c9, U+54b3, U+586b, U+5944, U+5b78, U+5df7, U+5f77, U+6101, U+6167-6168, U+61a4, U+62d9, + U+698a, U+699b, U+6a59, U+6cc4, U+6e07, U+7099, U+75d2, U+77ad, U+7953, U+7984, U+7a92, U+7baa, U+7dbb, U+817f, U+82ad, U+85e9, U+868a, U+8caa, + U+8f44, U+9017, U+907c, U+908a, U+92f3, U+936e, U+9435, U+978d, U+9838, U+9a28, U+9b41, U+9ba8, U+9c57, U+9eb9; } /* [65] */ @font-face { @@ -1669,8 +3447,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.65.woff2) format('woff2'); - unicode-range: U+b1, U+309b, U+4e5e, U+51f1, U+5506, U+55c5, U+58cc, U+59d1, U+5c51, U+5ef7, U+6284, U+62d7, U+6689, U+673d, U+6a2b, U+6a8e, U+6a9c, U+6d63, U+6dd1, U+70b8, U+7235, U+72db, U+72f8, U+7560, U+7c9b, U+7ce7, U+7e1e, U+80af, U+82eb, U+8463, U+8499, U+85dd, U+86ee, U+8a60, U+8a6e, U+8c79, U+8e87, U+8e8a, U+8f5f, U+9010, U+918d, U+9190, U+965b, U+97fb, U+9ab8, U+9bad, U+9d3b, U+9d5c, U+9dfa, U+9e93; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.65.woff2) format('woff2'); + unicode-range: + U+b1, U+309b, U+4e5e, U+51f1, U+5506, U+55c5, U+58cc, U+59d1, U+5c51, U+5ef7, U+6284, U+62d7, U+6689, U+673d, U+6a2b, U+6a8e, U+6a9c, U+6d63, + U+6dd1, U+70b8, U+7235, U+72db, U+72f8, U+7560, U+7c9b, U+7ce7, U+7e1e, U+80af, U+82eb, U+8463, U+8499, U+85dd, U+86ee, U+8a60, U+8a6e, U+8c79, + U+8e87, U+8e8a, U+8f5f, U+9010, U+918d, U+9190, U+965b, U+97fb, U+9ab8, U+9bad, U+9d3b, U+9d5c, U+9dfa, U+9e93; } /* [66] */ @font-face { @@ -1678,8 +3463,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.66.woff2) format('woff2'); - unicode-range: U+2020, U+3003, U+3231, U+4e9b, U+4f3d, U+4f47, U+51b6, U+51dc, U+53e1, U+5bc5, U+602f, U+60bc, U+61c9, U+633d, U+637b, U+6492, U+65fa, U+660f, U+66f0, U+6703, U+681e, U+6876, U+6893, U+6912, U+698e, U+6c7d, U+714c, U+7169, U+71d5, U+725f, U+72d7, U+745b, U+74dc, U+75e2, U+7891, U+7897, U+7dcb, U+810a, U+8218, U+8339, U+840e, U+852d, U+8823, U+8a0a, U+9089, U+919c, U+971c, U+9ad9, U+ff4a, U+ff5a; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.66.woff2) format('woff2'); + unicode-range: + U+2020, U+3003, U+3231, U+4e9b, U+4f3d, U+4f47, U+51b6, U+51dc, U+53e1, U+5bc5, U+602f, U+60bc, U+61c9, U+633d, U+637b, U+6492, U+65fa, U+660f, + U+66f0, U+6703, U+681e, U+6876, U+6893, U+6912, U+698e, U+6c7d, U+714c, U+7169, U+71d5, U+725f, U+72d7, U+745b, U+74dc, U+75e2, U+7891, U+7897, + U+7dcb, U+810a, U+8218, U+8339, U+840e, U+852d, U+8823, U+8a0a, U+9089, U+919c, U+971c, U+9ad9, U+ff4a, U+ff5a; } /* [67] */ @font-face { @@ -1687,8 +3479,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.67.woff2) format('woff2'); - unicode-range: U+2466, U+2600, U+4eab, U+4fe3, U+4ff5, U+51a5, U+51f0, U+536f, U+53d4, U+53f1, U+54a5, U+559d, U+55e3, U+58fa, U+5962, U+59ea, U+5c16, U+5cef, U+5d16, U+5f10, U+5fd6, U+6190, U+6216, U+634f, U+63bb, U+66d6, U+6756, U+6bc5, U+6e26, U+727d, U+731f, U+76f2, U+7729, U+7a7f, U+7aff, U+7c9f, U+818f, U+8236, U+82b9, U+8338, U+85aa, U+88b4, U+8b33, U+904d, U+93a7, U+96cc, U+96eb, U+9aed, U+9b8e, U+fa11; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.67.woff2) format('woff2'); + unicode-range: + U+2466, U+2600, U+4eab, U+4fe3, U+4ff5, U+51a5, U+51f0, U+536f, U+53d4, U+53f1, U+54a5, U+559d, U+55e3, U+58fa, U+5962, U+59ea, U+5c16, U+5cef, + U+5d16, U+5f10, U+5fd6, U+6190, U+6216, U+634f, U+63bb, U+66d6, U+6756, U+6bc5, U+6e26, U+727d, U+731f, U+76f2, U+7729, U+7a7f, U+7aff, U+7c9f, + U+818f, U+8236, U+82b9, U+8338, U+85aa, U+88b4, U+8b33, U+904d, U+93a7, U+96cc, U+96eb, U+9aed, U+9b8e, U+fa11; } /* [68] */ @font-face { @@ -1696,8 +3495,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.68.woff2) format('woff2'); - unicode-range: U+251c, U+2523, U+4e14, U+545f, U+54bd, U+553e, U+55dc, U+56da, U+589c, U+5b55, U+5bb5, U+5ce1, U+5df4, U+5eb6, U+5ec9, U+6191, U+62f7, U+6357, U+64a5, U+6591, U+65bc, U+6897, U+6e1a, U+7063, U+711a, U+721b, U+722c, U+75b9, U+75d5, U+75fa, U+7766, U+7aae, U+7b48, U+7b8b, U+7d21, U+7e55, U+7f75, U+842c, U+8910, U+8a63, U+8b39, U+8b5a, U+8cdc, U+8d74, U+907d, U+91e7, U+9306, U+96bc, U+98f4, U+9ac4; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.68.woff2) format('woff2'); + unicode-range: + U+251c, U+2523, U+4e14, U+545f, U+54bd, U+553e, U+55dc, U+56da, U+589c, U+5b55, U+5bb5, U+5ce1, U+5df4, U+5eb6, U+5ec9, U+6191, U+62f7, U+6357, + U+64a5, U+6591, U+65bc, U+6897, U+6e1a, U+7063, U+711a, U+721b, U+722c, U+75b9, U+75d5, U+75fa, U+7766, U+7aae, U+7b48, U+7b8b, U+7d21, U+7e55, + U+7f75, U+842c, U+8910, U+8a63, U+8b39, U+8b5a, U+8cdc, U+8d74, U+907d, U+91e7, U+9306, U+96bc, U+98f4, U+9ac4; } /* [69] */ @font-face { @@ -1705,8 +3511,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.69.woff2) format('woff2'); - unicode-range: U+2003, U+2312, U+266c, U+4f86, U+51ea, U+5243, U+5256, U+541f, U+5841, U+59dc, U+5df3, U+601c, U+60e7, U+632b, U+638c, U+64ad, U+6881, U+697c, U+69cd, U+6c50, U+6d2a, U+6fc1, U+7027, U+7058, U+70f9, U+714e, U+7345, U+751a, U+760d, U+764c, U+77db, U+7d79, U+7e8f, U+80ce, U+814e, U+81fc, U+8247, U+8278, U+85a9, U+8a03, U+90ed, U+9784, U+9801, U+984e, U+99b3, U+9bc9, U+9bdb, U+9be8, U+9e78, U+ff6b; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.69.woff2) format('woff2'); + unicode-range: + U+2003, U+2312, U+266c, U+4f86, U+51ea, U+5243, U+5256, U+541f, U+5841, U+59dc, U+5df3, U+601c, U+60e7, U+632b, U+638c, U+64ad, U+6881, U+697c, + U+69cd, U+6c50, U+6d2a, U+6fc1, U+7027, U+7058, U+70f9, U+714e, U+7345, U+751a, U+760d, U+764c, U+77db, U+7d79, U+7e8f, U+80ce, U+814e, U+81fc, + U+8247, U+8278, U+85a9, U+8a03, U+90ed, U+9784, U+9801, U+984e, U+99b3, U+9bc9, U+9bdb, U+9be8, U+9e78, U+ff6b; } /* [70] */ @font-face { @@ -1714,8 +3527,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.70.woff2) format('woff2'); - unicode-range: U+266b, U+3006, U+5176, U+5197, U+51a8, U+51c6, U+52f2, U+5614, U+5875, U+5a2f, U+5b54, U+5ce0, U+5dba, U+5deb, U+5e63, U+5f59, U+5fcc, U+6068, U+6367, U+68b6, U+6a0b, U+6b64, U+6e15, U+6eba, U+7272, U+72a0, U+7947, U+7985, U+79e6, U+79e9, U+7a3d, U+7a9f, U+7aaf, U+7b95, U+7f60, U+7f9e, U+7fe0, U+8098, U+80ba, U+8106, U+82d4, U+831c, U+87f9, U+8a1f, U+8acf, U+90c1, U+920d, U+9756, U+fe43, U+ff94; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.70.woff2) format('woff2'); + unicode-range: + U+266b, U+3006, U+5176, U+5197, U+51a8, U+51c6, U+52f2, U+5614, U+5875, U+5a2f, U+5b54, U+5ce0, U+5dba, U+5deb, U+5e63, U+5f59, U+5fcc, U+6068, + U+6367, U+68b6, U+6a0b, U+6b64, U+6e15, U+6eba, U+7272, U+72a0, U+7947, U+7985, U+79e6, U+79e9, U+7a3d, U+7a9f, U+7aaf, U+7b95, U+7f60, U+7f9e, + U+7fe0, U+8098, U+80ba, U+8106, U+82d4, U+831c, U+87f9, U+8a1f, U+8acf, U+90c1, U+920d, U+9756, U+fe43, U+ff94; } /* [71] */ @font-face { @@ -1723,8 +3543,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.71.woff2) format('woff2'); - unicode-range: U+af, U+2465, U+2517, U+33a1, U+4f10, U+50c5, U+51b4, U+5384, U+5606, U+5bb0, U+5cac, U+5ee3, U+618e, U+61f2, U+62c9, U+66ab, U+66f9, U+6816, U+6960, U+6b3e, U+6f20, U+7078, U+72d0, U+73ed, U+7ad9, U+7b1b, U+7be4, U+7d62, U+7f51, U+80b4, U+80f4, U+8154, U+85fb, U+865c, U+8702, U+895f, U+8aed, U+8b90, U+8ced, U+8fbf, U+91d8, U+9418, U+9583, U+9591, U+9813, U+982c, U+9bd6, U+ff46, U+ff7f, U+ff88; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.71.woff2) format('woff2'); + unicode-range: + U+af, U+2465, U+2517, U+33a1, U+4f10, U+50c5, U+51b4, U+5384, U+5606, U+5bb0, U+5cac, U+5ee3, U+618e, U+61f2, U+62c9, U+66ab, U+66f9, U+6816, + U+6960, U+6b3e, U+6f20, U+7078, U+72d0, U+73ed, U+7ad9, U+7b1b, U+7be4, U+7d62, U+7f51, U+80b4, U+80f4, U+8154, U+85fb, U+865c, U+8702, U+895f, + U+8aed, U+8b90, U+8ced, U+8fbf, U+91d8, U+9418, U+9583, U+9591, U+9813, U+982c, U+9bd6, U+ff46, U+ff7f, U+ff88; } /* [72] */ @font-face { @@ -1732,8 +3559,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.72.woff2) format('woff2'); - unicode-range: U+4e91, U+508d, U+50e7, U+514e, U+51f6, U+5446, U+5504, U+584a, U+59a8, U+59d3, U+5a46, U+5ac9, U+6020, U+60a6, U+6148, U+621a, U+6234, U+64c1, U+6523, U+675c, U+67d1, U+6953, U+6ccc, U+6df5, U+6e13, U+6f06, U+723a, U+7325, U+74e6, U+758e, U+75ab, U+75d9, U+7a40, U+8096, U+82fa, U+8587, U+8594, U+8a6b, U+8ab9, U+8b17, U+8b83, U+937c, U+963b, U+9673, U+96db, U+9ce9, U+9f4b, U+ff67, U+ff82, U+ff93; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.72.woff2) format('woff2'); + unicode-range: + U+4e91, U+508d, U+50e7, U+514e, U+51f6, U+5446, U+5504, U+584a, U+59a8, U+59d3, U+5a46, U+5ac9, U+6020, U+60a6, U+6148, U+621a, U+6234, U+64c1, + U+6523, U+675c, U+67d1, U+6953, U+6ccc, U+6df5, U+6e13, U+6f06, U+723a, U+7325, U+74e6, U+758e, U+75ab, U+75d9, U+7a40, U+8096, U+82fa, U+8587, + U+8594, U+8a6b, U+8ab9, U+8b17, U+8b83, U+937c, U+963b, U+9673, U+96db, U+9ce9, U+9f4b, U+ff67, U+ff82, U+ff93; } /* [73] */ @font-face { @@ -1741,8 +3575,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.73.woff2) format('woff2'); - unicode-range: U+221e, U+2514, U+51f9, U+5270, U+5449, U+5824, U+59a5, U+5a29, U+5d07, U+5e16, U+60e3, U+614c, U+6276, U+643e, U+64ab, U+6562, U+6681, U+670b, U+6734, U+67af, U+6a3d, U+6b05, U+6dc0, U+6e4a, U+7259, U+732a, U+7409, U+78a7, U+7a6b, U+8015, U+809b, U+817a, U+830e, U+837b, U+85ab, U+8a23, U+8a93, U+8b00, U+8b19, U+8b21, U+8cbf, U+8fb0, U+901d, U+91b8, U+9320, U+932c, U+9688, U+96f6, U+9df2, U+ff6a; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.73.woff2) format('woff2'); + unicode-range: + U+221e, U+2514, U+51f9, U+5270, U+5449, U+5824, U+59a5, U+5a29, U+5d07, U+5e16, U+60e3, U+614c, U+6276, U+643e, U+64ab, U+6562, U+6681, U+670b, + U+6734, U+67af, U+6a3d, U+6b05, U+6dc0, U+6e4a, U+7259, U+732a, U+7409, U+78a7, U+7a6b, U+8015, U+809b, U+817a, U+830e, U+837b, U+85ab, U+8a23, + U+8a93, U+8b00, U+8b19, U+8b21, U+8cbf, U+8fb0, U+901d, U+91b8, U+9320, U+932c, U+9688, U+96f6, U+9df2, U+ff6a; } /* [74] */ @font-face { @@ -1750,8 +3591,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.74.woff2) format('woff2'); - unicode-range: U+2002, U+2025, U+4f8d, U+51e1, U+51f8, U+5507, U+5598, U+58f1, U+5983, U+59ac, U+5c3c, U+5de7, U+5e7d, U+5eca, U+5f61, U+606d, U+60f9, U+636e, U+64ec, U+67da, U+67ff, U+6813, U+68f2, U+693f, U+6b6a, U+6bbb, U+6ef4, U+7092, U+717d, U+7261, U+73c8, U+7432, U+7483, U+76fe, U+7709, U+78d0, U+81a3, U+81b3, U+82af, U+8305, U+8309, U+8870, U+88fe, U+8cd1, U+8d66, U+906e, U+971e, U+9812, U+ff79, U+ff90; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.74.woff2) format('woff2'); + unicode-range: + U+2002, U+2025, U+4f8d, U+51e1, U+51f8, U+5507, U+5598, U+58f1, U+5983, U+59ac, U+5c3c, U+5de7, U+5e7d, U+5eca, U+5f61, U+606d, U+60f9, U+636e, + U+64ec, U+67da, U+67ff, U+6813, U+68f2, U+693f, U+6b6a, U+6bbb, U+6ef4, U+7092, U+717d, U+7261, U+73c8, U+7432, U+7483, U+76fe, U+7709, U+78d0, + U+81a3, U+81b3, U+82af, U+8305, U+8309, U+8870, U+88fe, U+8cd1, U+8d66, U+906e, U+971e, U+9812, U+ff79, U+ff90; } /* [75] */ @font-face { @@ -1759,8 +3607,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.75.woff2) format('woff2'); - unicode-range: U+2464, U+2501, U+2640, U+2642, U+339d, U+4f0e, U+5091, U+50b5, U+5132, U+51cc, U+558b, U+55aa, U+585e, U+5bee, U+5dfe, U+60b6, U+62b9, U+6349, U+6566, U+6590, U+6842, U+689d, U+6a58, U+6c70, U+6ff1, U+7815, U+7881, U+7aaa, U+7bc7, U+7def, U+7fa8, U+8017, U+8036, U+8061, U+821f, U+8429, U+8ce0, U+8e74, U+9019, U+90ca, U+9162, U+932f, U+93ae, U+9644, U+990c, U+9cf3, U+ff56, U+ff6e, U+ff7e, U+ff85; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.75.woff2) format('woff2'); + unicode-range: + U+2464, U+2501, U+2640, U+2642, U+339d, U+4f0e, U+5091, U+50b5, U+5132, U+51cc, U+558b, U+55aa, U+585e, U+5bee, U+5dfe, U+60b6, U+62b9, U+6349, + U+6566, U+6590, U+6842, U+689d, U+6a58, U+6c70, U+6ff1, U+7815, U+7881, U+7aaa, U+7bc7, U+7def, U+7fa8, U+8017, U+8036, U+8061, U+821f, U+8429, + U+8ce0, U+8e74, U+9019, U+90ca, U+9162, U+932f, U+93ae, U+9644, U+990c, U+9cf3, U+ff56, U+ff6e, U+ff7e, U+ff85; } /* [76] */ @font-face { @@ -1768,8 +3623,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.76.woff2) format('woff2'); - unicode-range: U+2266-2267, U+4f2f, U+5208, U+5451, U+546a, U+5589, U+576a, U+5815, U+5a9a, U+5b9b, U+5c3a, U+5efb, U+5faa, U+6109, U+6643, U+6652, U+695a, U+69fd, U+6b86, U+6bb4, U+6daf, U+7089, U+70cf, U+7a00, U+7a4f, U+7b39, U+7d33, U+80e1, U+828b, U+82a6, U+86cd, U+8c8c, U+8cca, U+8df3, U+9077, U+9175, U+91dc, U+925b, U+9262, U+9271, U+92ed, U+9855, U+9905, U+9d28, U+ff3f, U+ff58, U+ff68, U+ff6d, U+ff9c; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.76.woff2) format('woff2'); + unicode-range: + U+2266-2267, U+4f2f, U+5208, U+5451, U+546a, U+5589, U+576a, U+5815, U+5a9a, U+5b9b, U+5c3a, U+5efb, U+5faa, U+6109, U+6643, U+6652, U+695a, + U+69fd, U+6b86, U+6bb4, U+6daf, U+7089, U+70cf, U+7a00, U+7a4f, U+7b39, U+7d33, U+80e1, U+828b, U+82a6, U+86cd, U+8c8c, U+8cca, U+8df3, U+9077, + U+9175, U+91dc, U+925b, U+9262, U+9271, U+92ed, U+9855, U+9905, U+9d28, U+ff3f, U+ff58, U+ff68, U+ff6d, U+ff9c; } /* [77] */ @font-face { @@ -1777,8 +3639,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.77.woff2) format('woff2'); - unicode-range: U+2207, U+25ef, U+309c, U+4e4f, U+5146, U+51dd, U+5351, U+540a, U+5629, U+5eb5, U+5f04, U+5f13, U+60dc, U+6212, U+63b4, U+642c, U+6627, U+66a6, U+66c7, U+66fd, U+674e, U+6b96, U+6c4e, U+6df3, U+6e67, U+6f84, U+72fc, U+733f, U+7c97, U+7db1, U+7e4d, U+816b, U+82d1, U+84cb, U+854e, U+8607, U+86c7, U+871c, U+8776, U+8a89, U+8fc4, U+91a4, U+9285, U+9685, U+9903, U+9b31, U+9f13, U+ff42, U+ff74, U+ff91; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.77.woff2) format('woff2'); + unicode-range: + U+2207, U+25ef, U+309c, U+4e4f, U+5146, U+51dd, U+5351, U+540a, U+5629, U+5eb5, U+5f04, U+5f13, U+60dc, U+6212, U+63b4, U+642c, U+6627, U+66a6, + U+66c7, U+66fd, U+674e, U+6b96, U+6c4e, U+6df3, U+6e67, U+6f84, U+72fc, U+733f, U+7c97, U+7db1, U+7e4d, U+816b, U+82d1, U+84cb, U+854e, U+8607, + U+86c7, U+871c, U+8776, U+8a89, U+8fc4, U+91a4, U+9285, U+9685, U+9903, U+9b31, U+9f13, U+ff42, U+ff74, U+ff91; } /* [78] */ @font-face { @@ -1786,8 +3655,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.78.woff2) format('woff2'); - unicode-range: U+4e32, U+51db, U+53a8, U+53ea, U+5609, U+5674, U+5a92, U+5e7e, U+6115, U+611a, U+62cc, U+62ed, U+63c9, U+64b9, U+64e6, U+65cb, U+6606, U+6731, U+683d, U+6afb, U+7460, U+771e, U+78ef, U+7b26, U+7b51, U+7cde, U+7d10, U+7d2f, U+7d46, U+80de, U+819c, U+84b2, U+85cd, U+865a, U+8ecc, U+9022, U+90b8, U+9192, U+9675, U+96b7, U+99ff, U+ff44, U+ff55, U+ff6c, U+ff73, U+ff75, U+ff86, U+ff8d, U+ff92, U+ffe3; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.78.woff2) format('woff2'); + unicode-range: + U+4e32, U+51db, U+53a8, U+53ea, U+5609, U+5674, U+5a92, U+5e7e, U+6115, U+611a, U+62cc, U+62ed, U+63c9, U+64b9, U+64e6, U+65cb, U+6606, U+6731, + U+683d, U+6afb, U+7460, U+771e, U+78ef, U+7b26, U+7b51, U+7cde, U+7d10, U+7d2f, U+7d46, U+80de, U+819c, U+84b2, U+85cd, U+865a, U+8ecc, U+9022, + U+90b8, U+9192, U+9675, U+96b7, U+99ff, U+ff44, U+ff55, U+ff6c, U+ff73, U+ff75, U+ff86, U+ff8d, U+ff92, U+ffe3; } /* [79] */ @font-face { @@ -1795,8 +3671,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.79.woff2) format('woff2'); - unicode-range: U+25b3, U+30f5, U+4eae, U+4f46, U+4f51, U+5203, U+52ff, U+55a7, U+564c, U+565b, U+57f9, U+5805, U+5b64, U+5e06, U+5f70, U+5f90, U+60e8, U+6182, U+62f3, U+62fe, U+63aa, U+64a4, U+65d7, U+673a, U+6851, U+68cb, U+68df, U+6d1e, U+6e58, U+6e9d, U+77b3, U+7832, U+7c3f, U+7db4, U+7f70, U+80aa, U+80c6, U+8105, U+819d, U+8276, U+8679, U+8986, U+8c9d, U+8fc5, U+916c, U+9665, U+9699, U+96c0, U+9a19, U+ff8b; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.79.woff2) format('woff2'); + unicode-range: + U+25b3, U+30f5, U+4eae, U+4f46, U+4f51, U+5203, U+52ff, U+55a7, U+564c, U+565b, U+57f9, U+5805, U+5b64, U+5e06, U+5f70, U+5f90, U+60e8, U+6182, + U+62f3, U+62fe, U+63aa, U+64a4, U+65d7, U+673a, U+6851, U+68cb, U+68df, U+6d1e, U+6e58, U+6e9d, U+77b3, U+7832, U+7c3f, U+7db4, U+7f70, U+80aa, + U+80c6, U+8105, U+819d, U+8276, U+8679, U+8986, U+8c9d, U+8fc5, U+916c, U+9665, U+9699, U+96c0, U+9a19, U+ff8b; } /* [80] */ @font-face { @@ -1804,8 +3687,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.80.woff2) format('woff2'); - unicode-range: U+2463, U+25a1, U+4ef0, U+5076, U+5098, U+51fd, U+5302, U+5448, U+54c9, U+570b, U+583a, U+5893, U+58a8, U+58ee, U+5949, U+5bdb, U+5f26, U+5f81, U+6052, U+6170, U+61c7, U+631f, U+635c, U+664b, U+69fb, U+6f01, U+7070, U+722a, U+745e, U+755c, U+76c6, U+78c1, U+79e4, U+7bb8, U+7d0b, U+81a8, U+82d7, U+8b5c, U+8f14, U+8fb1, U+8fbb, U+9283, U+9298, U+9a30, U+ff03, U+ff50, U+ff59, U+ff7b, U+ff8e-ff8f; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.80.woff2) format('woff2'); + unicode-range: + U+2463, U+25a1, U+4ef0, U+5076, U+5098, U+51fd, U+5302, U+5448, U+54c9, U+570b, U+583a, U+5893, U+58a8, U+58ee, U+5949, U+5bdb, U+5f26, U+5f81, + U+6052, U+6170, U+61c7, U+631f, U+635c, U+664b, U+69fb, U+6f01, U+7070, U+722a, U+745e, U+755c, U+76c6, U+78c1, U+79e4, U+7bb8, U+7d0b, U+81a8, + U+82d7, U+8b5c, U+8f14, U+8fb1, U+8fbb, U+9283, U+9298, U+9a30, U+ff03, U+ff50, U+ff59, U+ff7b, U+ff8e-ff8f; } /* [81] */ @font-face { @@ -1813,8 +3703,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.81.woff2) format('woff2'); - unicode-range: U+2010, U+2502, U+25b6, U+4f3a, U+514b, U+5265, U+52c3, U+5339, U+53ec, U+54c0, U+55b0, U+5854, U+5b8f, U+5cb3, U+5e84, U+60da, U+6247, U+6249, U+628a, U+62cd, U+65ac, U+6838, U+690e, U+6cf0, U+6f02, U+6f2c, U+6f70, U+708a, U+7434, U+75be, U+77ef, U+7c60, U+7c98, U+7d1b, U+7e2b, U+80a5, U+81e3, U+820c, U+8210, U+8475, U+862d, U+8650, U+8997, U+906d, U+91c8, U+9700, U+9727, U+9df9, U+ff3a, U+ff9a; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.81.woff2) format('woff2'); + unicode-range: + U+2010, U+2502, U+25b6, U+4f3a, U+514b, U+5265, U+52c3, U+5339, U+53ec, U+54c0, U+55b0, U+5854, U+5b8f, U+5cb3, U+5e84, U+60da, U+6247, U+6249, + U+628a, U+62cd, U+65ac, U+6838, U+690e, U+6cf0, U+6f02, U+6f2c, U+6f70, U+708a, U+7434, U+75be, U+77ef, U+7c60, U+7c98, U+7d1b, U+7e2b, U+80a5, + U+81e3, U+820c, U+8210, U+8475, U+862d, U+8650, U+8997, U+906d, U+91c8, U+9700, U+9727, U+9df9, U+ff3a, U+ff9a; } /* [82] */ @font-face { @@ -1822,8 +3719,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.82.woff2) format('woff2'); - unicode-range: U+2103, U+5049, U+52b1, U+5320, U+5553, U+572d, U+58c7, U+5b5d, U+5bc2, U+5de3, U+5e61, U+5f80, U+61a9, U+67d0, U+67f4, U+6c88, U+6ca1, U+6ce5, U+6d78, U+6e9c, U+6f54, U+731b, U+73b2, U+74a7, U+74f6, U+75e9, U+7b20, U+7c8b, U+7f72, U+809d, U+8108, U+82b3, U+82bd, U+84b8, U+84c4, U+88c2, U+8ae6, U+8ef8, U+902e, U+9065, U+9326, U+935b, U+938c, U+9676, U+9694, U+96f7, U+9ed9, U+ff48, U+ff4c, U+ff81; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.82.woff2) format('woff2'); + unicode-range: + U+2103, U+5049, U+52b1, U+5320, U+5553, U+572d, U+58c7, U+5b5d, U+5bc2, U+5de3, U+5e61, U+5f80, U+61a9, U+67d0, U+67f4, U+6c88, U+6ca1, U+6ce5, + U+6d78, U+6e9c, U+6f54, U+731b, U+73b2, U+74a7, U+74f6, U+75e9, U+7b20, U+7c8b, U+7f72, U+809d, U+8108, U+82b3, U+82bd, U+84b8, U+84c4, U+88c2, + U+8ae6, U+8ef8, U+902e, U+9065, U+9326, U+935b, U+938c, U+9676, U+9694, U+96f7, U+9ed9, U+ff48, U+ff4c, U+ff81; } /* [83] */ @font-face { @@ -1831,8 +3735,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.83.woff2) format('woff2'); - unicode-range: U+2500, U+3008-3009, U+4ead, U+4f0f, U+4fca, U+53eb, U+543e, U+57a2, U+5cf0, U+5e8f, U+5fe0, U+61b2, U+62d8, U+6442, U+64b2, U+6589, U+659c, U+67f1, U+68c4, U+6cb8, U+6d12, U+6de1, U+6fe1, U+70c8, U+723d, U+73e0, U+7656, U+773a, U+7948, U+7b87, U+7c92, U+7d3a, U+7e1b, U+7e4a, U+819a, U+8358, U+83c5, U+84bc, U+864e, U+8912, U+8c9e, U+8d05, U+92fc, U+9396, U+98fd, U+99d2, U+ff64, U+ff7a, U+ff83; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.83.woff2) format('woff2'); + unicode-range: + U+2500, U+3008-3009, U+4ead, U+4f0f, U+4fca, U+53eb, U+543e, U+57a2, U+5cf0, U+5e8f, U+5fe0, U+61b2, U+62d8, U+6442, U+64b2, U+6589, U+659c, + U+67f1, U+68c4, U+6cb8, U+6d12, U+6de1, U+6fe1, U+70c8, U+723d, U+73e0, U+7656, U+773a, U+7948, U+7b87, U+7c92, U+7d3a, U+7e1b, U+7e4a, U+819a, + U+8358, U+83c5, U+84bc, U+864e, U+8912, U+8c9e, U+8d05, U+92fc, U+9396, U+98fd, U+99d2, U+ff64, U+ff7a, U+ff83; } /* [84] */ @font-face { @@ -1840,8 +3751,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.84.woff2) format('woff2'); - unicode-range: U+3014-3015, U+4e3c, U+5036, U+5075, U+533f, U+53e9, U+5531, U+5642, U+5984, U+59e6, U+5a01, U+5b6b, U+5c0b, U+5f25, U+6069, U+60a0, U+614e, U+62b5, U+62d2-62d3, U+6597, U+660c, U+674f, U+67cf, U+6841, U+6905, U+6cf3, U+6d32, U+6d69, U+6f64, U+716e, U+7761, U+7b52, U+7be0, U+7dbf, U+7de9, U+7f36, U+81d3, U+8302, U+8389, U+846c, U+84ee, U+8a69, U+9038, U+9d8f, U+ff47, U+ff4b, U+ff76, U+ff9b; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.84.woff2) format('woff2'); + unicode-range: + U+3014-3015, U+4e3c, U+5036, U+5075, U+533f, U+53e9, U+5531, U+5642, U+5984, U+59e6, U+5a01, U+5b6b, U+5c0b, U+5f25, U+6069, U+60a0, U+614e, + U+62b5, U+62d2-62d3, U+6597, U+660c, U+674f, U+67cf, U+6841, U+6905, U+6cf3, U+6d32, U+6d69, U+6f64, U+716e, U+7761, U+7b52, U+7be0, U+7dbf, + U+7de9, U+7f36, U+81d3, U+8302, U+8389, U+846c, U+84ee, U+8a69, U+9038, U+9d8f, U+ff47, U+ff4b, U+ff76, U+ff9b; } /* [85] */ @font-face { @@ -1849,8 +3767,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.85.woff2) format('woff2'); - unicode-range: U+25c7, U+3007, U+504f, U+507d, U+51a0, U+52a3, U+5410, U+5510, U+559a, U+5782, U+582a, U+5c0a, U+5c3f, U+5c48, U+5f6b, U+6176, U+622f, U+6279, U+62bd, U+62dd, U+65ed, U+67b6, U+6817, U+6850, U+6d6a, U+6deb, U+6ea2, U+6edd, U+6f5c, U+72e9, U+73a9, U+7573, U+76bf, U+7950, U+7956, U+7f8a, U+7ffc, U+80a2, U+80c3, U+83ca, U+8a02, U+8a13, U+8df5, U+9375, U+983b, U+99b4, U+ff4e, U+ff71, U+ff89, U+ff97; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.85.woff2) format('woff2'); + unicode-range: + U+25c7, U+3007, U+504f, U+507d, U+51a0, U+52a3, U+5410, U+5510, U+559a, U+5782, U+582a, U+5c0a, U+5c3f, U+5c48, U+5f6b, U+6176, U+622f, U+6279, + U+62bd, U+62dd, U+65ed, U+67b6, U+6817, U+6850, U+6d6a, U+6deb, U+6ea2, U+6edd, U+6f5c, U+72e9, U+73a9, U+7573, U+76bf, U+7950, U+7956, U+7f8a, + U+7ffc, U+80a2, U+80c3, U+83ca, U+8a02, U+8a13, U+8df5, U+9375, U+983b, U+99b4, U+ff4e, U+ff71, U+ff89, U+ff97; } /* [86] */ @font-face { @@ -1858,8 +3783,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.86.woff2) format('woff2'); - unicode-range: U+24, U+2022, U+2212, U+221f, U+2665, U+4ecf, U+5100, U+51cd, U+52d8, U+5378, U+53f6, U+574a, U+5982, U+5996, U+5c1a, U+5e1d, U+5f84, U+609f, U+61a7, U+61f8, U+6398, U+63ee, U+6676, U+6691, U+6eb6, U+7126, U+71e5, U+7687, U+7965, U+7d17, U+80a1, U+8107, U+8266, U+85a6, U+8987, U+8ca2, U+8cab, U+8e0a, U+9042, U+95c7, U+9810, U+9867, U+98fc, U+ff52-ff54, U+ff61, U+ff77, U+ff98-ff99; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.86.woff2) format('woff2'); + unicode-range: + U+24, U+2022, U+2212, U+221f, U+2665, U+4ecf, U+5100, U+51cd, U+52d8, U+5378, U+53f6, U+574a, U+5982, U+5996, U+5c1a, U+5e1d, U+5f84, U+609f, + U+61a7, U+61f8, U+6398, U+63ee, U+6676, U+6691, U+6eb6, U+7126, U+71e5, U+7687, U+7965, U+7d17, U+80a1, U+8107, U+8266, U+85a6, U+8987, U+8ca2, + U+8cab, U+8e0a, U+9042, U+95c7, U+9810, U+9867, U+98fc, U+ff52-ff54, U+ff61, U+ff77, U+ff98-ff99; } /* [87] */ @font-face { @@ -1867,8 +3799,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.87.woff2) format('woff2'); - unicode-range: U+b0, U+226a, U+2462, U+4e39, U+4fc3, U+4fd7, U+50be, U+50da, U+5200, U+5211, U+54f2, U+5618, U+596a, U+5b22, U+5bb4, U+5d50, U+60a3, U+63fa, U+658e, U+65e8, U+6669, U+6795, U+679d, U+67a0, U+6b3a, U+6e09, U+757f, U+7cd6, U+7dbe, U+7ffb, U+83cc, U+83f1, U+840c, U+845b, U+8846, U+8972, U+8a34, U+8a50, U+8a87, U+8edf, U+8ff0, U+90a6, U+9154, U+95a3, U+9663, U+9686, U+96c7, U+ff3c, U+ff7c, U+ff8a; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.87.woff2) format('woff2'); + unicode-range: + U+b0, U+226a, U+2462, U+4e39, U+4fc3, U+4fd7, U+50be, U+50da, U+5200, U+5211, U+54f2, U+5618, U+596a, U+5b22, U+5bb4, U+5d50, U+60a3, U+63fa, + U+658e, U+65e8, U+6669, U+6795, U+679d, U+67a0, U+6b3a, U+6e09, U+757f, U+7cd6, U+7dbe, U+7ffb, U+83cc, U+83f1, U+840c, U+845b, U+8846, U+8972, + U+8a34, U+8a50, U+8a87, U+8edf, U+8ff0, U+90a6, U+9154, U+95a3, U+9663, U+9686, U+96c7, U+ff3c, U+ff7c, U+ff8a; } /* [88] */ @font-face { @@ -1876,8 +3815,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.88.woff2) format('woff2'); - unicode-range: U+25bd, U+4e59, U+4ec1, U+4ff3, U+515a, U+518a, U+525b, U+5375, U+552f, U+57a3, U+5b9c, U+5c3d, U+5e3d, U+5e7b, U+5f0a, U+6094, U+6458, U+654f, U+67f3, U+6b8a, U+6bd2, U+6c37, U+6ce1, U+6e56, U+6e7f, U+6ed1, U+6ede, U+6f0f, U+70ad, U+7267, U+7363, U+786c, U+7a42, U+7db2, U+7f85, U+8178, U+829d, U+8896, U+8c5a, U+8cb0, U+8ce2, U+8ed2, U+9047, U+9177, U+970a, U+9ea6, U+ff1b, U+ff31, U+ff39, U+ff80; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.88.woff2) format('woff2'); + unicode-range: + U+25bd, U+4e59, U+4ec1, U+4ff3, U+515a, U+518a, U+525b, U+5375, U+552f, U+57a3, U+5b9c, U+5c3d, U+5e3d, U+5e7b, U+5f0a, U+6094, U+6458, U+654f, + U+67f3, U+6b8a, U+6bd2, U+6c37, U+6ce1, U+6e56, U+6e7f, U+6ed1, U+6ede, U+6f0f, U+70ad, U+7267, U+7363, U+786c, U+7a42, U+7db2, U+7f85, U+8178, + U+829d, U+8896, U+8c5a, U+8cb0, U+8ce2, U+8ed2, U+9047, U+9177, U+970a, U+9ea6, U+ff1b, U+ff31, U+ff39, U+ff80; } /* [89] */ @font-face { @@ -1885,8 +3831,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.89.woff2) format('woff2'); - unicode-range: U+a5, U+4e80, U+4f34, U+4f73, U+4f75, U+511f, U+5192, U+52aa, U+53c8, U+570f, U+57cb, U+596e, U+5d8b, U+5f66, U+5fd9, U+62db, U+62f6, U+6328, U+633f, U+63a7, U+6469, U+6bbf, U+6c41, U+6c57, U+6d44, U+6dbc, U+706f, U+72c2, U+72ed, U+7551, U+75f4, U+7949, U+7e26, U+7fd4, U+8150, U+8af8, U+8b0e, U+8b72, U+8ca7, U+934b, U+9a0e, U+9a12, U+9b42, U+ff41, U+ff43, U+ff45, U+ff49, U+ff4f, U+ff62-ff63; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.89.woff2) format('woff2'); + unicode-range: + U+a5, U+4e80, U+4f34, U+4f73, U+4f75, U+511f, U+5192, U+52aa, U+53c8, U+570f, U+57cb, U+596e, U+5d8b, U+5f66, U+5fd9, U+62db, U+62f6, U+6328, + U+633f, U+63a7, U+6469, U+6bbf, U+6c41, U+6c57, U+6d44, U+6dbc, U+706f, U+72c2, U+72ed, U+7551, U+75f4, U+7949, U+7e26, U+7fd4, U+8150, U+8af8, + U+8b0e, U+8b72, U+8ca7, U+934b, U+9a0e, U+9a12, U+9b42, U+ff41, U+ff43, U+ff45, U+ff49, U+ff4f, U+ff62-ff63; } /* [90] */ @font-face { @@ -1894,8 +3847,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.90.woff2) format('woff2'); - unicode-range: U+4e18, U+4fb5, U+5104, U+52c7, U+5353, U+5374, U+53e5, U+587e, U+594f, U+5a20, U+5de1, U+5f18, U+5fcd, U+6291, U+62ab, U+6355, U+6392, U+63da, U+63e1, U+656c, U+6687, U+68b0-68b1, U+68d2, U+68da, U+6b27, U+6cbc, U+7159, U+7344, U+73cd, U+76df, U+790e, U+7cf8, U+8102, U+88c1, U+8aa0, U+8e0f, U+9178, U+92ad, U+9670, U+96c5, U+9cf4, U+9db4, U+ff3e, U+ff6f, U+ff72, U+ff78, U+ff7d, U+ff84, U+ff8c; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.90.woff2) format('woff2'); + unicode-range: + U+4e18, U+4fb5, U+5104, U+52c7, U+5353, U+5374, U+53e5, U+587e, U+594f, U+5a20, U+5de1, U+5f18, U+5fcd, U+6291, U+62ab, U+6355, U+6392, U+63da, + U+63e1, U+656c, U+6687, U+68b0-68b1, U+68d2, U+68da, U+6b27, U+6cbc, U+7159, U+7344, U+73cd, U+76df, U+790e, U+7cf8, U+8102, U+88c1, U+8aa0, + U+8e0f, U+9178, U+92ad, U+9670, U+96c5, U+9cf4, U+9db4, U+ff3e, U+ff6f, U+ff72, U+ff78, U+ff7d, U+ff84, U+ff8c; } /* [91] */ @font-face { @@ -1903,8 +3863,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.91.woff2) format('woff2'); - unicode-range: U+60, U+2200, U+226b, U+2461, U+517c, U+526f, U+5800, U+5b97, U+5bf8, U+5c01, U+5d29, U+5e4c, U+5e81, U+6065, U+61d0, U+667a, U+6696, U+6843, U+6c99, U+6d99, U+6ec5, U+6f22, U+6f6e, U+6fa4, U+6fef, U+71c3, U+72d9, U+7384, U+78e8, U+7a1a, U+7a32, U+7a3c, U+7adc, U+7ca7, U+7d2b, U+7dad, U+7e4b, U+80a9, U+8170, U+81ed, U+820e, U+8a17, U+8afe, U+90aa, U+914e, U+963f, U+99c4, U+9eba, U+9f3b, U+ff38; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.91.woff2) format('woff2'); + unicode-range: + U+60, U+2200, U+226b, U+2461, U+517c, U+526f, U+5800, U+5b97, U+5bf8, U+5c01, U+5d29, U+5e4c, U+5e81, U+6065, U+61d0, U+667a, U+6696, U+6843, + U+6c99, U+6d99, U+6ec5, U+6f22, U+6f6e, U+6fa4, U+6fef, U+71c3, U+72d9, U+7384, U+78e8, U+7a1a, U+7a32, U+7a3c, U+7adc, U+7ca7, U+7d2b, U+7dad, + U+7e4b, U+80a9, U+8170, U+81ed, U+820e, U+8a17, U+8afe, U+90aa, U+914e, U+963f, U+99c4, U+9eba, U+9f3b, U+ff38; } /* [92] */ @font-face { @@ -1912,8 +3879,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.92.woff2) format('woff2'); - unicode-range: U+2460, U+4e5f, U+4e7e, U+4ed9, U+501f, U+502b, U+5968, U+5974, U+5ac1, U+5b99, U+5ba3, U+5be7, U+5be9, U+5c64, U+5cb8, U+5ec3, U+5f1f, U+616e, U+6297, U+62e0, U+62ec, U+6368, U+642d, U+65e6, U+6717, U+676f, U+6b04, U+732e, U+7652, U+76ca, U+76d7, U+7802, U+7e70, U+7f6a, U+8133, U+81e8, U+866b, U+878d, U+88f8, U+8a5e, U+8cdb, U+8d08, U+907a, U+90e1, U+96f2, U+9f8d, U+ff35, U+ff37, U+ff40, U+ff9d; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.92.woff2) format('woff2'); + unicode-range: + U+2460, U+4e5f, U+4e7e, U+4ed9, U+501f, U+502b, U+5968, U+5974, U+5ac1, U+5b99, U+5ba3, U+5be7, U+5be9, U+5c64, U+5cb8, U+5ec3, U+5f1f, U+616e, + U+6297, U+62e0, U+62ec, U+6368, U+642d, U+65e6, U+6717, U+676f, U+6b04, U+732e, U+7652, U+76ca, U+76d7, U+7802, U+7e70, U+7f6a, U+8133, U+81e8, + U+866b, U+878d, U+88f8, U+8a5e, U+8cdb, U+8d08, U+907a, U+90e1, U+96f2, U+9f8d, U+ff35, U+ff37, U+ff40, U+ff9d; } /* [93] */ @font-face { @@ -1921,8 +3895,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.93.woff2) format('woff2'); - unicode-range: U+21d2, U+25ce, U+300a-300b, U+4e89, U+4e9c, U+4ea1, U+5263, U+53cc, U+5426, U+5869, U+5947, U+598a, U+5999, U+5e55, U+5e72, U+5e79, U+5fae, U+5fb9, U+602a, U+6163, U+624d, U+6749, U+6c5a, U+6cbf, U+6d45, U+6dfb, U+6e7e, U+708e, U+725b, U+7763, U+79c0, U+7bc4, U+7c89, U+7e01, U+7e2e, U+8010, U+8033, U+8c6a, U+8cc3, U+8f1d, U+8f9b, U+8fb2, U+907f, U+90f7, U+9707, U+9818, U+9b3c, U+ff0a, U+ff4d; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.93.woff2) format('woff2'); + unicode-range: + U+21d2, U+25ce, U+300a-300b, U+4e89, U+4e9c, U+4ea1, U+5263, U+53cc, U+5426, U+5869, U+5947, U+598a, U+5999, U+5e55, U+5e72, U+5e79, U+5fae, + U+5fb9, U+602a, U+6163, U+624d, U+6749, U+6c5a, U+6cbf, U+6d45, U+6dfb, U+6e7e, U+708e, U+725b, U+7763, U+79c0, U+7bc4, U+7c89, U+7e01, U+7e2e, + U+8010, U+8033, U+8c6a, U+8cc3, U+8f1d, U+8f9b, U+8fb2, U+907f, U+90f7, U+9707, U+9818, U+9b3c, U+ff0a, U+ff4d; } /* [94] */ @font-face { @@ -1930,8 +3911,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.94.woff2) format('woff2'); - unicode-range: U+2015, U+2190, U+4e43, U+5019, U+5247, U+52e7, U+5438, U+54b2, U+55ab, U+57f7, U+5bd2, U+5e8a, U+5ef6, U+6016, U+60b2, U+6162, U+6319, U+6551, U+6607, U+66b4, U+675f, U+67d4, U+6b20, U+6b53, U+6ce3, U+719f, U+75b2, U+770b, U+7720, U+77ac, U+79d2, U+7af9, U+7d05, U+7dca, U+8056, U+80f8, U+81f3, U+8352, U+885d, U+8a70, U+8aa4, U+8cbc, U+900f, U+9084, U+91e3, U+9451, U+96c4, U+99c6, U+9ad4, U+ff70; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.94.woff2) format('woff2'); + unicode-range: + U+2015, U+2190, U+4e43, U+5019, U+5247, U+52e7, U+5438, U+54b2, U+55ab, U+57f7, U+5bd2, U+5e8a, U+5ef6, U+6016, U+60b2, U+6162, U+6319, U+6551, + U+6607, U+66b4, U+675f, U+67d4, U+6b20, U+6b53, U+6ce3, U+719f, U+75b2, U+770b, U+7720, U+77ac, U+79d2, U+7af9, U+7d05, U+7dca, U+8056, U+80f8, + U+81f3, U+8352, U+885d, U+8a70, U+8aa4, U+8cbc, U+900f, U+9084, U+91e3, U+9451, U+96c4, U+99c6, U+9ad4, U+ff70; } /* [95] */ @font-face { @@ -1939,8 +3927,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.95.woff2) format('woff2'); - unicode-range: U+2193, U+25b2, U+4e4b, U+516d, U+51c4, U+529f, U+52c9, U+5360, U+5442, U+5857, U+5915, U+59eb, U+5a9b, U+5c3b, U+6012, U+61b6, U+62b1, U+6311, U+6577, U+65e2, U+65ec, U+6613, U+6790, U+6cb9, U+7372, U+76ae, U+7d5e, U+7fcc, U+88ab, U+88d5, U+8caf, U+8ddd, U+8ecd, U+8f38, U+8f9e, U+8feb, U+9063, U+90f5, U+93e1, U+968a, U+968f, U+98fe, U+9ec4, U+ff1d, U+ff27, U+ff2a, U+ff36, U+ff3b, U+ff3d, U+ffe5; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.95.woff2) format('woff2'); + unicode-range: + U+2193, U+25b2, U+4e4b, U+516d, U+51c4, U+529f, U+52c9, U+5360, U+5442, U+5857, U+5915, U+59eb, U+5a9b, U+5c3b, U+6012, U+61b6, U+62b1, U+6311, + U+6577, U+65e2, U+65ec, U+6613, U+6790, U+6cb9, U+7372, U+76ae, U+7d5e, U+7fcc, U+88ab, U+88d5, U+8caf, U+8ddd, U+8ecd, U+8f38, U+8f9e, U+8feb, + U+9063, U+90f5, U+93e1, U+968a, U+968f, U+98fe, U+9ec4, U+ff1d, U+ff27, U+ff2a, U+ff36, U+ff3b, U+ff3d, U+ffe5; } /* [96] */ @font-face { @@ -1948,8 +3943,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.96.woff2) format('woff2'); - unicode-range: U+4e03, U+4f38, U+50b7, U+5264, U+5348, U+5371, U+585a, U+58ca, U+5951, U+59b9, U+59d4, U+5b98, U+5f8b, U+6388, U+64cd, U+65e7, U+6803, U+6b6f, U+6d66, U+6e0b, U+6ecb, U+6fc3, U+72ac, U+773c, U+77e2, U+7968, U+7a74, U+7dba, U+7dd1, U+7e3e, U+808c, U+811a, U+8179, U+8239, U+8584, U+8a0e, U+8a72, U+8b66, U+8c46, U+8f29, U+90a3, U+9234, U+96f0, U+9769, U+9774, U+9aa8, U+ff26, U+ff28, U+ff9e-ff9f; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.96.woff2) format('woff2'); + unicode-range: + U+4e03, U+4f38, U+50b7, U+5264, U+5348, U+5371, U+585a, U+58ca, U+5951, U+59b9, U+59d4, U+5b98, U+5f8b, U+6388, U+64cd, U+65e7, U+6803, U+6b6f, + U+6d66, U+6e0b, U+6ecb, U+6fc3, U+72ac, U+773c, U+77e2, U+7968, U+7a74, U+7dba, U+7dd1, U+7e3e, U+808c, U+811a, U+8179, U+8239, U+8584, U+8a0e, + U+8a72, U+8b66, U+8c46, U+8f29, U+90a3, U+9234, U+96f0, U+9769, U+9774, U+9aa8, U+ff26, U+ff28, U+ff9e-ff9f; } /* [97] */ @font-face { @@ -1957,8 +3959,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.97.woff2) format('woff2'); - unicode-range: U+7e, U+b4, U+25c6, U+2661, U+4e92, U+4eee, U+4ffa, U+5144, U+5237, U+5287, U+52b4, U+58c1, U+5bff, U+5c04, U+5c06, U+5e95, U+5f31, U+5f93, U+63c3, U+640d, U+6557, U+6614, U+662f, U+67d3, U+690d, U+6bba, U+6e6f, U+72af, U+732b, U+7518, U+7ae0, U+7ae5, U+7af6, U+822a, U+89e6, U+8a3a, U+8a98, U+8cb8, U+8de1, U+8e8d, U+95d8, U+961c, U+96a3, U+96ea, U+9bae, U+ff20, U+ff22, U+ff29, U+ff2b-ff2c; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.97.woff2) format('woff2'); + unicode-range: + U+7e, U+b4, U+25c6, U+2661, U+4e92, U+4eee, U+4ffa, U+5144, U+5237, U+5287, U+52b4, U+58c1, U+5bff, U+5c04, U+5c06, U+5e95, U+5f31, U+5f93, + U+63c3, U+640d, U+6557, U+6614, U+662f, U+67d3, U+690d, U+6bba, U+6e6f, U+72af, U+732b, U+7518, U+7ae0, U+7ae5, U+7af6, U+822a, U+89e6, U+8a3a, + U+8a98, U+8cb8, U+8de1, U+8e8d, U+95d8, U+961c, U+96a3, U+96ea, U+9bae, U+ff20, U+ff22, U+ff29, U+ff2b-ff2c; } /* [98] */ @font-face { @@ -1966,8 +3975,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.98.woff2) format('woff2'); - unicode-range: U+25cb, U+4e71, U+4f59, U+50d5, U+520a, U+5217, U+5230, U+523a-523b, U+541b, U+5439, U+5747, U+59c9, U+5bdf, U+5c31, U+5de8, U+5e7c, U+5f69, U+6050, U+60d1, U+63cf, U+663c, U+67c4, U+6885, U+6c38, U+6d6e, U+6db2, U+6df7, U+6e2c, U+6f5f, U+7532, U+76e3-76e4, U+7701, U+793c, U+79f0, U+7a93, U+7d00, U+7de0, U+7e54, U+8328, U+8840, U+969c, U+96e8, U+9811, U+9aea, U+9b5a, U+ff24, U+ff2e, U+ff57; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.98.woff2) format('woff2'); + unicode-range: + U+25cb, U+4e71, U+4f59, U+50d5, U+520a, U+5217, U+5230, U+523a-523b, U+541b, U+5439, U+5747, U+59c9, U+5bdf, U+5c31, U+5de8, U+5e7c, U+5f69, + U+6050, U+60d1, U+63cf, U+663c, U+67c4, U+6885, U+6c38, U+6d6e, U+6db2, U+6df7, U+6e2c, U+6f5f, U+7532, U+76e3-76e4, U+7701, U+793c, U+79f0, + U+7a93, U+7d00, U+7de0, U+7e54, U+8328, U+8840, U+969c, U+96e8, U+9811, U+9aea, U+9b5a, U+ff24, U+ff2e, U+ff57; } /* [99] */ @font-face { @@ -1975,8 +3991,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.99.woff2) format('woff2'); - unicode-range: U+2191, U+505c, U+52e4, U+5305, U+535a, U+56e0, U+59bb, U+5acc, U+5b09, U+5b87, U+5c90, U+5df1, U+5e2d, U+5e33, U+5f3e, U+6298, U+6383, U+653b, U+6697, U+6804, U+6a39, U+6cca, U+6e90, U+6f2b, U+702c, U+7206, U+7236, U+7559, U+7565, U+7591, U+75c7, U+75db, U+7b4b, U+7bb1, U+7d99, U+7fbd, U+8131, U+885b, U+8b1d, U+8ff7, U+9003, U+9045, U+96a0, U+9732, U+990a, U+99d0, U+9e97, U+9f62, U+ff25, U+ff2d; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.99.woff2) format('woff2'); + unicode-range: + U+2191, U+505c, U+52e4, U+5305, U+535a, U+56e0, U+59bb, U+5acc, U+5b09, U+5b87, U+5c90, U+5df1, U+5e2d, U+5e33, U+5f3e, U+6298, U+6383, U+653b, + U+6697, U+6804, U+6a39, U+6cca, U+6e90, U+6f2b, U+702c, U+7206, U+7236, U+7559, U+7565, U+7591, U+75c7, U+75db, U+7b4b, U+7bb1, U+7d99, U+7fbd, + U+8131, U+885b, U+8b1d, U+8ff7, U+9003, U+9045, U+96a0, U+9732, U+990a, U+99d0, U+9e97, U+9f62, U+ff25, U+ff2d; } /* [100] */ @font-face { @@ -1984,8 +4007,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.100.woff2) format('woff2'); - unicode-range: U+4e08, U+4f9d, U+5012, U+514d, U+51b7, U+5275, U+53ca, U+53f8, U+5584, U+57fc, U+5b9d, U+5bfa, U+5c3e, U+5f01, U+5fb4, U+5fd7, U+606f, U+62e1, U+6563, U+6674, U+6cb3, U+6d3e, U+6d74, U+6e1b, U+6e2f, U+718a, U+7247, U+79d8, U+7d14, U+7d66, U+7d71, U+7df4, U+7e41, U+80cc, U+8155, U+83d3, U+8a95, U+8ab2, U+8ad6, U+8ca1, U+9000, U+9006, U+9678, U+97d3, U+9808, U+98ef, U+9a5a, U+9b45, U+ff23, U+ff30; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.100.woff2) format('woff2'); + unicode-range: + U+4e08, U+4f9d, U+5012, U+514d, U+51b7, U+5275, U+53ca, U+53f8, U+5584, U+57fc, U+5b9d, U+5bfa, U+5c3e, U+5f01, U+5fb4, U+5fd7, U+606f, U+62e1, + U+6563, U+6674, U+6cb3, U+6d3e, U+6d74, U+6e1b, U+6e2f, U+718a, U+7247, U+79d8, U+7d14, U+7d66, U+7d71, U+7df4, U+7e41, U+80cc, U+8155, U+83d3, + U+8a95, U+8ab2, U+8ad6, U+8ca1, U+9000, U+9006, U+9678, U+97d3, U+9808, U+98ef, U+9a5a, U+9b45, U+ff23, U+ff30; } /* [101] */ @font-face { @@ -1993,8 +4023,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.101.woff2) format('woff2'); - unicode-range: U+25bc, U+3012, U+4ef2, U+4f0a, U+516b, U+5373, U+539a, U+53b3, U+559c, U+56f0, U+5727, U+5742, U+5965, U+59ff, U+5bc6, U+5dfb, U+5e45, U+5ead, U+5fb3, U+6211, U+6253, U+639b, U+63a8, U+6545, U+6575, U+6628, U+672d, U+68a8, U+6bdb, U+6d25, U+707d, U+767e, U+7834, U+7b46, U+7bc9, U+8074, U+82e6, U+8349, U+8a2a, U+8d70, U+8da3, U+8fce, U+91cc, U+967d, U+97ff, U+9996, U+ff1c, U+ff2f, U+ff32, U+ff34; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.101.woff2) format('woff2'); + unicode-range: + U+25bc, U+3012, U+4ef2, U+4f0a, U+516b, U+5373, U+539a, U+53b3, U+559c, U+56f0, U+5727, U+5742, U+5965, U+59ff, U+5bc6, U+5dfb, U+5e45, U+5ead, + U+5fb3, U+6211, U+6253, U+639b, U+63a8, U+6545, U+6575, U+6628, U+672d, U+68a8, U+6bdb, U+6d25, U+707d, U+767e, U+7834, U+7b46, U+7bc9, U+8074, + U+82e6, U+8349, U+8a2a, U+8d70, U+8da3, U+8fce, U+91cc, U+967d, U+97ff, U+9996, U+ff1c, U+ff2f, U+ff32, U+ff34; } /* [102] */ @font-face { @@ -2002,8 +4039,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.102.woff2) format('woff2'); - unicode-range: U+3d, U+5e, U+25cf, U+4e0e, U+4e5d, U+4e73, U+4e94, U+4f3c, U+5009, U+5145, U+51ac, U+5238, U+524a, U+53f3, U+547c, U+5802, U+5922, U+5a66, U+5c0e, U+5de6, U+5fd8, U+5feb, U+6797, U+685c, U+6b7b, U+6c5f-6c60, U+6cc9, U+6ce2, U+6d17, U+6e21, U+7167, U+7642, U+76db, U+8001, U+821e, U+8857, U+89d2, U+8b1b, U+8b70, U+8cb4, U+8cde, U+8f03, U+8f2a, U+968e, U+9b54, U+9e7f, U+9ebb, U+ff05, U+ff33; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.102.woff2) format('woff2'); + unicode-range: + U+3d, U+5e, U+25cf, U+4e0e, U+4e5d, U+4e73, U+4e94, U+4f3c, U+5009, U+5145, U+51ac, U+5238, U+524a, U+53f3, U+547c, U+5802, U+5922, U+5a66, + U+5c0e, U+5de6, U+5fd8, U+5feb, U+6797, U+685c, U+6b7b, U+6c5f-6c60, U+6cc9, U+6ce2, U+6d17, U+6e21, U+7167, U+7642, U+76db, U+8001, U+821e, + U+8857, U+89d2, U+8b1b, U+8b70, U+8cb4, U+8cde, U+8f03, U+8f2a, U+968e, U+9b54, U+9e7f, U+9ebb, U+ff05, U+ff33; } /* [103] */ @font-face { @@ -2011,8 +4055,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.103.woff2) format('woff2'); - unicode-range: U+500d, U+5074, U+50cd, U+5175, U+52e2, U+5352, U+5354, U+53f2, U+5409, U+56fa, U+5a18, U+5b88, U+5bdd, U+5ca9, U+5f92, U+5fa9, U+60a9, U+623f, U+6483, U+653f, U+666f, U+66ae, U+66f2, U+6a21, U+6b66, U+6bcd, U+6d5c, U+796d, U+7a4d, U+7aef, U+7b56, U+7b97, U+7c4d, U+7e04, U+7fa9, U+8377, U+83dc, U+83ef, U+8535, U+8863, U+88cf, U+88dc, U+8907, U+8acb, U+90ce, U+91dd, U+ff0b, U+ff0d, U+ff19, U+ff65; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.103.woff2) format('woff2'); + unicode-range: + U+500d, U+5074, U+50cd, U+5175, U+52e2, U+5352, U+5354, U+53f2, U+5409, U+56fa, U+5a18, U+5b88, U+5bdd, U+5ca9, U+5f92, U+5fa9, U+60a9, U+623f, + U+6483, U+653f, U+666f, U+66ae, U+66f2, U+6a21, U+6b66, U+6bcd, U+6d5c, U+796d, U+7a4d, U+7aef, U+7b56, U+7b97, U+7c4d, U+7e04, U+7fa9, U+8377, + U+83dc, U+83ef, U+8535, U+8863, U+88cf, U+88dc, U+8907, U+8acb, U+90ce, U+91dd, U+ff0b, U+ff0d, U+ff19, U+ff65; } /* [104] */ @font-face { @@ -2020,8 +4071,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.104.woff2) format('woff2'); - unicode-range: U+4e01, U+4e21, U+4e38, U+52a9, U+547d, U+592e, U+5931, U+5b63, U+5c40, U+5dde, U+5e78, U+5efa, U+5fa1, U+604b, U+6075, U+62c5, U+632f, U+6a19, U+6c0f, U+6c11, U+6c96, U+6e05, U+70ba, U+71b1, U+7387, U+7403, U+75c5, U+77ed, U+795d, U+7b54, U+7cbe, U+7d19, U+7fa4, U+8089, U+81f4, U+8208, U+8336, U+8457, U+8a33, U+8c4a, U+8ca0, U+8ca8, U+8cc0, U+9014, U+964d, U+9803, U+983c, U+98db, U+ff17, U+ff21; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.104.woff2) format('woff2'); + unicode-range: + U+4e01, U+4e21, U+4e38, U+52a9, U+547d, U+592e, U+5931, U+5b63, U+5c40, U+5dde, U+5e78, U+5efa, U+5fa1, U+604b, U+6075, U+62c5, U+632f, U+6a19, + U+6c0f, U+6c11, U+6c96, U+6e05, U+70ba, U+71b1, U+7387, U+7403, U+75c5, U+77ed, U+795d, U+7b54, U+7cbe, U+7d19, U+7fa4, U+8089, U+81f4, U+8208, + U+8336, U+8457, U+8a33, U+8c4a, U+8ca0, U+8ca8, U+8cc0, U+9014, U+964d, U+9803, U+983c, U+98db, U+ff17, U+ff21; } /* [105] */ @font-face { @@ -2029,8 +4087,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.105.woff2) format('woff2'); - unicode-range: U+25, U+25a0, U+4e26, U+4f4e, U+5341, U+56f2, U+5bbf, U+5c45, U+5c55, U+5c5e, U+5dee, U+5e9c, U+5f7c, U+6255, U+627f, U+62bc, U+65cf, U+661f, U+666e, U+66dc, U+67fb, U+6975, U+6a4b, U+6b32, U+6df1, U+6e29, U+6fc0, U+738b, U+7686, U+7a76, U+7a81, U+7c73, U+7d75, U+7dd2, U+82e5, U+82f1, U+85ac, U+888b, U+899a, U+8a31, U+8a8c, U+8ab0, U+8b58, U+904a, U+9060, U+9280, U+95b2, U+984d, U+9ce5, U+ff18; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.105.woff2) format('woff2'); + unicode-range: + U+25, U+25a0, U+4e26, U+4f4e, U+5341, U+56f2, U+5bbf, U+5c45, U+5c55, U+5c5e, U+5dee, U+5e9c, U+5f7c, U+6255, U+627f, U+62bc, U+65cf, U+661f, + U+666e, U+66dc, U+67fb, U+6975, U+6a4b, U+6b32, U+6df1, U+6e29, U+6fc0, U+738b, U+7686, U+7a76, U+7a81, U+7c73, U+7d75, U+7dd2, U+82e5, U+82f1, + U+85ac, U+888b, U+899a, U+8a31, U+8a8c, U+8ab0, U+8b58, U+904a, U+9060, U+9280, U+95b2, U+984d, U+9ce5, U+ff18; } /* [106] */ @font-face { @@ -2038,8 +4103,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.106.woff2) format('woff2'); - unicode-range: U+30f6, U+50ac, U+5178, U+51e6, U+5224, U+52dd, U+5883, U+5897, U+590f, U+5a5a, U+5bb3, U+5c65, U+5e03, U+5e2b, U+5e30, U+5eb7, U+6271, U+63f4, U+64ae, U+6574, U+672b, U+679a, U+6a29-6a2a, U+6ca2, U+6cc1, U+6d0b, U+713c, U+74b0, U+7981, U+7a0b, U+7bc0, U+7d1a, U+7d61, U+7fd2, U+822c, U+8996, U+89aa, U+8cac, U+8cbb, U+8d77, U+8def, U+9020, U+9152, U+9244, U+9662, U+967a, U+96e3, U+9759, U+ff16; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.106.woff2) format('woff2'); + unicode-range: + U+30f6, U+50ac, U+5178, U+51e6, U+5224, U+52dd, U+5883, U+5897, U+590f, U+5a5a, U+5bb3, U+5c65, U+5e03, U+5e2b, U+5e30, U+5eb7, U+6271, U+63f4, + U+64ae, U+6574, U+672b, U+679a, U+6a29-6a2a, U+6ca2, U+6cc1, U+6d0b, U+713c, U+74b0, U+7981, U+7a0b, U+7bc0, U+7d1a, U+7d61, U+7fd2, U+822c, + U+8996, U+89aa, U+8cac, U+8cbb, U+8d77, U+8def, U+9020, U+9152, U+9244, U+9662, U+967a, U+96e3, U+9759, U+ff16; } /* [107] */ @font-face { @@ -2047,8 +4119,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.107.woff2) format('woff2'); - unicode-range: U+23, U+3c, U+2192, U+4e45, U+4efb, U+4f50, U+4f8b, U+4fc2, U+5024, U+5150, U+5272, U+5370, U+53bb, U+542b, U+56db, U+56e3, U+57ce, U+5bc4, U+5bcc, U+5f71, U+60aa, U+6238, U+6280, U+629c, U+6539, U+66ff, U+670d, U+677e-677f, U+6839, U+69cb, U+6b4c, U+6bb5, U+6e96, U+6f14, U+72ec, U+7389, U+7814, U+79cb, U+79d1, U+79fb, U+7a0e, U+7d0d, U+85e4, U+8d64, U+9632, U+96e2, U+9805, U+99ac, U+ff1e; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.107.woff2) format('woff2'); + unicode-range: + U+23, U+3c, U+2192, U+4e45, U+4efb, U+4f50, U+4f8b, U+4fc2, U+5024, U+5150, U+5272, U+5370, U+53bb, U+542b, U+56db, U+56e3, U+57ce, U+5bc4, + U+5bcc, U+5f71, U+60aa, U+6238, U+6280, U+629c, U+6539, U+66ff, U+670d, U+677e-677f, U+6839, U+69cb, U+6b4c, U+6bb5, U+6e96, U+6f14, U+72ec, + U+7389, U+7814, U+79cb, U+79d1, U+79fb, U+7a0e, U+7d0d, U+85e4, U+8d64, U+9632, U+96e2, U+9805, U+99ac, U+ff1e; } /* [108] */ @font-face { @@ -2056,8 +4135,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.108.woff2) format('woff2'); - unicode-range: U+2605-2606, U+301c, U+4e57, U+4fee, U+5065, U+52df, U+533b, U+5357, U+57df, U+58eb, U+58f0, U+591c, U+592a-592b, U+5948, U+5b85, U+5d0e, U+5ea7, U+5ff5, U+6025, U+63a1, U+63a5, U+63db, U+643a, U+65bd, U+671d, U+68ee, U+6982, U+6b73, U+6bd4, U+6d88, U+7570, U+7b11, U+7d76, U+8077, U+8217, U+8c37, U+8c61, U+8cc7, U+8d85, U+901f, U+962a, U+9802, U+9806, U+9854, U+98f2, U+9928, U+99c5, U+9ed2; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.108.woff2) format('woff2'); + unicode-range: + U+2605-2606, U+301c, U+4e57, U+4fee, U+5065, U+52df, U+533b, U+5357, U+57df, U+58eb, U+58f0, U+591c, U+592a-592b, U+5948, U+5b85, U+5d0e, U+5ea7, + U+5ff5, U+6025, U+63a1, U+63a5, U+63db, U+643a, U+65bd, U+671d, U+68ee, U+6982, U+6b73, U+6bd4, U+6d88, U+7570, U+7b11, U+7d76, U+8077, U+8217, + U+8c37, U+8c61, U+8cc7, U+8d85, U+901f, U+962a, U+9802, U+9806, U+9854, U+98f2, U+9928, U+99c5, U+9ed2; } /* [109] */ @font-face { @@ -2065,8 +4151,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.109.woff2) format('woff2'); - unicode-range: U+266a, U+4f11, U+533a, U+5343, U+534a, U+53cd, U+5404, U+56f3, U+5b57-5b58, U+5bae, U+5c4a, U+5e0c, U+5e2f, U+5eab, U+5f35, U+5f79, U+614b, U+6226, U+629e, U+65c5, U+6625, U+6751, U+6821, U+6b69, U+6b8b, U+6bce, U+6c42, U+706b, U+7c21, U+7cfb, U+805e, U+80b2, U+82b8, U+843d, U+8853, U+88c5, U+8a3c, U+8a66, U+8d8a, U+8fba, U+9069, U+91cf, U+9752, U+975e, U+9999, U+ff0f-ff10, U+ff14-ff15; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.109.woff2) format('woff2'); + unicode-range: + U+266a, U+4f11, U+533a, U+5343, U+534a, U+53cd, U+5404, U+56f3, U+5b57-5b58, U+5bae, U+5c4a, U+5e0c, U+5e2f, U+5eab, U+5f35, U+5f79, U+614b, + U+6226, U+629e, U+65c5, U+6625, U+6751, U+6821, U+6b69, U+6b8b, U+6bce, U+6c42, U+706b, U+7c21, U+7cfb, U+805e, U+80b2, U+82b8, U+843d, U+8853, + U+88c5, U+8a3c, U+8a66, U+8d8a, U+8fba, U+9069, U+91cf, U+9752, U+975e, U+9999, U+ff0f-ff10, U+ff14-ff15; } /* [110] */ @font-face { @@ -2074,8 +4167,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.110.woff2) format('woff2'); - unicode-range: U+40, U+4e86, U+4e95, U+4f01, U+4f1d, U+4fbf, U+5099, U+5171, U+5177, U+53cb, U+53ce, U+53f0, U+5668, U+5712, U+5ba4, U+5ca1, U+5f85, U+60f3, U+653e, U+65ad, U+65e9, U+6620, U+6750, U+6761, U+6b62, U+6b74, U+6e08, U+6e80, U+7248, U+7531, U+7533, U+753a, U+77f3, U+798f, U+7f6e, U+8449, U+88fd, U+89b3, U+8a55, U+8ac7, U+8b77, U+8db3, U+8efd, U+8fd4, U+9031-9032, U+9580, U+9589, U+96d1, U+985e; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.110.woff2) format('woff2'); + unicode-range: + U+40, U+4e86, U+4e95, U+4f01, U+4f1d, U+4fbf, U+5099, U+5171, U+5177, U+53cb, U+53ce, U+53f0, U+5668, U+5712, U+5ba4, U+5ca1, U+5f85, U+60f3, + U+653e, U+65ad, U+65e9, U+6620, U+6750, U+6761, U+6b62, U+6b74, U+6e08, U+6e80, U+7248, U+7531, U+7533, U+753a, U+77f3, U+798f, U+7f6e, U+8449, + U+88fd, U+89b3, U+8a55, U+8ac7, U+8b77, U+8db3, U+8efd, U+8fd4, U+9031-9032, U+9580, U+9589, U+96d1, U+985e; } /* [111] */ @font-face { @@ -2083,8 +4183,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.111.woff2) format('woff2'); - unicode-range: U+2b, U+d7, U+300e-300f, U+4e07, U+4e8c, U+512a, U+5149, U+518d, U+5236, U+52b9, U+52d9, U+5468, U+578b, U+57fa, U+5b8c, U+5ba2, U+5c02, U+5de5, U+5f37, U+5f62, U+623b, U+63d0, U+652f, U+672a, U+6848, U+6d41, U+7136, U+7537, U+754c, U+76f4, U+79c1, U+7ba1, U+7d44, U+7d4c, U+7dcf, U+7dda, U+7de8, U+82b1, U+897f, U+8ca9, U+8cfc, U+904e, U+9664, U+982d, U+9858, U+98a8, U+9a13, U+ff13, U+ff5c; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.111.woff2) format('woff2'); + unicode-range: + U+2b, U+d7, U+300e-300f, U+4e07, U+4e8c, U+512a, U+5149, U+518d, U+5236, U+52b9, U+52d9, U+5468, U+578b, U+57fa, U+5b8c, U+5ba2, U+5c02, U+5de5, + U+5f37, U+5f62, U+623b, U+63d0, U+652f, U+672a, U+6848, U+6d41, U+7136, U+7537, U+754c, U+76f4, U+79c1, U+7ba1, U+7d44, U+7d4c, U+7dcf, U+7dda, + U+7de8, U+82b1, U+897f, U+8ca9, U+8cfc, U+904e, U+9664, U+982d, U+9858, U+98a8, U+9a13, U+ff13, U+ff5c; } /* [112] */ @font-face { @@ -2092,8 +4199,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.112.woff2) format('woff2'); - unicode-range: U+4e16, U+4e3b, U+4ea4, U+4ee4, U+4f4d, U+4f4f, U+4f55, U+4f9b, U+5317, U+5358, U+53c2, U+53e4, U+548c, U+571f, U+59cb, U+5cf6, U+5e38, U+63a2, U+63b2, U+6559, U+662d, U+679c, U+6c7a, U+72b6, U+7523, U+767d, U+770c, U+7a2e, U+7a3f, U+7a7a, U+7b2c, U+7b49, U+7d20, U+7d42, U+8003, U+8272, U+8a08, U+8aac, U+8cb7, U+8eab, U+8ee2, U+9054-9055, U+90fd, U+914d, U+91cd, U+969b, U+97f3, U+984c, U+ff06; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.112.woff2) format('woff2'); + unicode-range: + U+4e16, U+4e3b, U+4ea4, U+4ee4, U+4f4d, U+4f4f, U+4f55, U+4f9b, U+5317, U+5358, U+53c2, U+53e4, U+548c, U+571f, U+59cb, U+5cf6, U+5e38, U+63a2, + U+63b2, U+6559, U+662d, U+679c, U+6c7a, U+72b6, U+7523, U+767d, U+770c, U+7a2e, U+7a3f, U+7a7a, U+7b2c, U+7b49, U+7d20, U+7d42, U+8003, U+8272, + U+8a08, U+8aac, U+8cb7, U+8eab, U+8ee2, U+9054-9055, U+90fd, U+914d, U+91cd, U+969b, U+97f3, U+984c, U+ff06; } /* [113] */ @font-face { @@ -2101,8 +4215,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.113.woff2) format('woff2'); - unicode-range: U+26, U+5f, U+2026, U+203b, U+4e09, U+4eac, U+4ed5, U+4fa1, U+5143, U+5199, U+5207, U+539f, U+53e3, U+53f7, U+5411, U+5473, U+5546, U+55b6, U+5929, U+597d, U+5bb9, U+5c11, U+5c4b, U+5ddd, U+5f97, U+5fc5, U+6295, U+6301, U+6307, U+671b, U+76f8, U+78ba, U+795e, U+7d30, U+7d39, U+7d9a, U+89e3, U+8a00, U+8a73, U+8a8d, U+8a9e, U+8aad, U+8abf, U+8cea, U+8eca, U+8ffd, U+904b, U+9650, U+ff11-ff12; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.113.woff2) format('woff2'); + unicode-range: + U+26, U+5f, U+2026, U+203b, U+4e09, U+4eac, U+4ed5, U+4fa1, U+5143, U+5199, U+5207, U+539f, U+53e3, U+53f7, U+5411, U+5473, U+5546, U+55b6, + U+5929, U+597d, U+5bb9, U+5c11, U+5c4b, U+5ddd, U+5f97, U+5fc5, U+6295, U+6301, U+6307, U+671b, U+76f8, U+78ba, U+795e, U+7d30, U+7d39, U+7d9a, + U+89e3, U+8a00, U+8a73, U+8a8d, U+8a9e, U+8aad, U+8abf, U+8cea, U+8eca, U+8ffd, U+904b, U+9650, U+ff11-ff12; } /* [114] */ @font-face { @@ -2110,8 +4231,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.114.woff2) format('woff2'); - unicode-range: U+3e, U+3005, U+4e0d, U+4e88, U+4ecb, U+4ee3, U+4ef6, U+4fdd, U+4fe1, U+500b, U+50cf, U+5186, U+5316, U+53d7, U+540c, U+544a, U+54e1, U+5728, U+58f2, U+5973, U+5b89, U+5c71, U+5e02, U+5e97, U+5f15, U+5fc3, U+5fdc, U+601d, U+611b, U+611f, U+671f, U+6728, U+6765, U+683c, U+6b21, U+6ce8, U+6d3b, U+6d77, U+7530, U+7740, U+7acb, U+7d50, U+826f, U+8f09, U+8fbc, U+9001, U+9053, U+91ce, U+9762, U+98df; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.114.woff2) format('woff2'); + unicode-range: + U+3e, U+3005, U+4e0d, U+4e88, U+4ecb, U+4ee3, U+4ef6, U+4fdd, U+4fe1, U+500b, U+50cf, U+5186, U+5316, U+53d7, U+540c, U+544a, U+54e1, U+5728, + U+58f2, U+5973, U+5b89, U+5c71, U+5e02, U+5e97, U+5f15, U+5fc3, U+5fdc, U+601d, U+611b, U+611f, U+671f, U+6728, U+6765, U+683c, U+6b21, U+6ce8, + U+6d3b, U+6d77, U+7530, U+7740, U+7acb, U+7d50, U+826f, U+8f09, U+8fbc, U+9001, U+9053, U+91ce, U+9762, U+98df; } /* [115] */ @font-face { @@ -2119,8 +4247,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.115.woff2) format('woff2'); - unicode-range: U+7c, U+3080, U+4ee5, U+5148, U+516c, U+521d, U+5225, U+529b, U+52a0, U+53ef, U+56de, U+56fd, U+5909, U+591a, U+5b66, U+5b9f, U+5bb6, U+5bfe, U+5e73, U+5e83, U+5ea6, U+5f53, U+6027, U+610f, U+6210, U+6240, U+660e, U+66f4, U+66f8, U+6709, U+6771, U+697d, U+69d8, U+6a5f, U+6c34, U+6cbb, U+73fe, U+756a, U+7684, U+771f, U+793a, U+7f8e, U+898f, U+8a2d, U+8a71, U+8fd1, U+9078, U+9577, U+96fb, U+ff5e; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.115.woff2) format('woff2'); + unicode-range: + U+7c, U+3080, U+4ee5, U+5148, U+516c, U+521d, U+5225, U+529b, U+52a0, U+53ef, U+56de, U+56fd, U+5909, U+591a, U+5b66, U+5b9f, U+5bb6, U+5bfe, + U+5e73, U+5e83, U+5ea6, U+5f53, U+6027, U+610f, U+6210, U+6240, U+660e, U+66f4, U+66f8, U+6709, U+6771, U+697d, U+69d8, U+6a5f, U+6c34, U+6cbb, + U+73fe, U+756a, U+7684, U+771f, U+793a, U+7f8e, U+898f, U+8a2d, U+8a71, U+8fd1, U+9078, U+9577, U+96fb, U+ff5e; } /* [116] */ @font-face { @@ -2128,8 +4263,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.116.woff2) format('woff2'); - unicode-range: U+a9, U+3010-3011, U+30e2, U+4e0b, U+4eca, U+4ed6, U+4ed8, U+4f53, U+4f5c, U+4f7f, U+53d6, U+540d, U+54c1, U+5730, U+5916, U+5b50, U+5c0f, U+5f8c, U+624b, U+6570, U+6587, U+6599, U+691c, U+696d, U+6cd5, U+7269, U+7279, U+7406, U+767a-767b, U+77e5, U+7d04, U+7d22, U+8005, U+80fd, U+81ea, U+8868, U+8981, U+89a7, U+901a, U+9023, U+90e8, U+91d1, U+9332, U+958b, U+96c6, U+9ad8, U+ff1a, U+ff1f; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.116.woff2) format('woff2'); + unicode-range: + U+a9, U+3010-3011, U+30e2, U+4e0b, U+4eca, U+4ed6, U+4ed8, U+4f53, U+4f5c, U+4f7f, U+53d6, U+540d, U+54c1, U+5730, U+5916, U+5b50, U+5c0f, U+5f8c, + U+624b, U+6570, U+6587, U+6599, U+691c, U+696d, U+6cd5, U+7269, U+7279, U+7406, U+767a-767b, U+77e5, U+7d04, U+7d22, U+8005, U+80fd, U+81ea, + U+8868, U+8981, U+89a7, U+901a, U+9023, U+90e8, U+91d1, U+9332, U+958b, U+96c6, U+9ad8, U+ff1a, U+ff1f; } /* [117] */ @font-face { @@ -2137,8 +4279,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.117.woff2) format('woff2'); - unicode-range: U+4e, U+a0, U+3000, U+300c-300d, U+4e00, U+4e0a, U+4e2d, U+4e8b, U+4eba, U+4f1a, U+5165, U+5168, U+5185, U+51fa, U+5206, U+5229, U+524d, U+52d5, U+5408, U+554f, U+5831, U+5834, U+5927, U+5b9a, U+5e74, U+5f0f, U+60c5, U+65b0, U+65b9, U+6642, U+6700, U+672c, U+682a, U+6b63, U+6c17, U+7121, U+751f, U+7528, U+753b, U+76ee, U+793e, U+884c, U+898b, U+8a18, U+9593, U+95a2, U+ff01, U+ff08-ff09; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.117.woff2) format('woff2'); + unicode-range: + U+4e, U+a0, U+3000, U+300c-300d, U+4e00, U+4e0a, U+4e2d, U+4e8b, U+4eba, U+4f1a, U+5165, U+5168, U+5185, U+51fa, U+5206, U+5229, U+524d, U+52d5, + U+5408, U+554f, U+5831, U+5834, U+5927, U+5b9a, U+5e74, U+5f0f, U+60c5, U+65b0, U+65b9, U+6642, U+6700, U+672c, U+682a, U+6b63, U+6c17, U+7121, + U+751f, U+7528, U+753b, U+76ee, U+793e, U+884c, U+898b, U+8a18, U+9593, U+95a2, U+ff01, U+ff08-ff09; } /* [118] */ @font-face { @@ -2146,8 +4295,15 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.118.woff2) format('woff2'); - unicode-range: U+21-22, U+27-2a, U+2c-3b, U+3f, U+41-4d, U+4f-5d, U+61-7b, U+7d, U+ab, U+ae, U+b2-b3, U+b7, U+bb, U+c9, U+cd, U+d6, U+d8, U+dc, U+e0-e5, U+e7-ed, U+ef, U+f1-f4, U+f6, U+f8, U+fa, U+fc-fd, U+103, U+14d, U+1b0, U+300-301, U+1ebf, U+1ec7, U+2013-2014, U+201c-201d, U+2039-203a, U+203c, U+2048-2049, U+2113, U+2122, U+65e5, U+6708, U+70b9; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.118.woff2) format('woff2'); + unicode-range: + U+21-22, U+27-2a, U+2c-3b, U+3f, U+41-4d, U+4f-5d, U+61-7b, U+7d, U+ab, U+ae, U+b2-b3, U+b7, U+bb, U+c9, U+cd, U+d6, U+d8, U+dc, U+e0-e5, U+e7-ed, + U+ef, U+f1-f4, U+f6, U+f8, U+fa, U+fc-fd, U+103, U+14d, U+1b0, U+300-301, U+1ebf, U+1ec7, U+2013-2014, U+201c-201d, U+2039-203a, U+203c, + U+2048-2049, U+2113, U+2122, U+65e5, U+6708, U+70b9; } /* [119] */ @font-face { @@ -2155,6 +4311,12 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Noto Sans Japanese Bold'), local('NotoSansJapanese-Bold'), url("../font/NotoSansJP-Bold.otf") format("opentype"), url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.119.woff2) format('woff2'); - unicode-range: U+20, U+2027, U+3001-3002, U+3041-307f, U+3081-308f, U+3091-3093, U+3099-309a, U+309d-309e, U+30a1-30e1, U+30e3-30ed, U+30ef-30f0, U+30f2-30f4, U+30fb-30fe, U+ff0c, U+ff0e; + src: + local('Noto Sans Japanese Bold'), + local('NotoSansJapanese-Bold'), + url('../font/NotoSansJP-Bold.otf') format('opentype'), + url(https://fonts.gstatic.com/s/notosansjp/v27/-F6pfjtqLzI2JPCgQBnw7HFQei0q1xVxjfp_dakBof6Bs-tb3ab2FNISVac.119.woff2) format('woff2'); + unicode-range: + U+20, U+2027, U+3001-3002, U+3041-307f, U+3081-308f, U+3091-3093, U+3099-309a, U+309d-309e, U+30a1-30e1, U+30e3-30ed, U+30ef-30f0, U+30f2-30f4, + U+30fb-30fe, U+ff0c, U+ff0e; } diff --git a/static/css/pdf.css b/static/css/pdf.css index 19dbe0d8a1..d7432daef9 100755 --- a/static/css/pdf.css +++ b/static/css/pdf.css @@ -1,13 +1,13 @@ -a[href^="#"]:after { - display: none !important; +a[href^='#']:after { + display: none !important; } .main code { - color: black; + color: black; } .main .hljs { - background: transparent; + background: transparent; } .main pre { diff --git a/static/favicons/site.webmanifest b/static/favicons/site.webmanifest index 86833cdff4..f6dc189adb 100644 --- a/static/favicons/site.webmanifest +++ b/static/favicons/site.webmanifest @@ -1,19 +1,19 @@ { - "name": "XRP Ledger Dev Portal", - "short_name": "XRP Ledger Dev Portal", - "icons": [ - { - "src": "android-chrome-192x192.png", - "sizes": "192x192", - "type": "image/png" - }, - { - "src": "android-chrome-512x512.png", - "sizes": "512x512", - "type": "image/png" - } - ], - "theme_color": "#25A768", - "background_color": "#25A768", - "start_url": "https://xrpl.org/" + "name": "XRP Ledger Dev Portal", + "short_name": "XRP Ledger Dev Portal", + "icons": [ + { + "src": "android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ], + "theme_color": "#25A768", + "background_color": "#25A768", + "start_url": "https://xrpl.org/" } diff --git a/static/js/apitool-websocket.js b/static/js/apitool-websocket.js index 33d035a96d..5d509f5696 100644 --- a/static/js/apitool-websocket.js +++ b/static/js/apitool-websocket.js @@ -1,13 +1,13 @@ -const commandlist = $("#command_list") -const request_body = $(".request-body") -const response_wrapper = $(".response-body-wrapper") -const request_button = $('.send-request') -const conn_btn = $(".connection") -const stream_pause = $(".stream-pause") -const stream_unpause = $(".stream-unpause") -const trash_button = $(".wipe-responses") -const permalink_button = $(".permalink") -const curl_button = $(".curl") +const commandlist = $('#command_list') +const request_body = $('.request-body') +const response_wrapper = $('.response-body-wrapper') +const request_button = $('.send-request') +const conn_btn = $('.connection') +const stream_pause = $('.stream-pause') +const stream_unpause = $('.stream-unpause') +const trash_button = $('.wipe-responses') +const permalink_button = $('.permalink') +const curl_button = $('.curl') let STREAM_PAUSED = false @@ -16,121 +16,123 @@ function slugify(str) { str = str.toLowerCase() // remove accents, swap ñ for n, etc - const from = "àáäâèéëêìíïîòóöôùúüûñç·/,:;" - const to = "aaaaeeeeiiiioooouuuunc-----" - for (let i=0, l=from.length ; i<l ; i++) { + const from = 'àáäâèéëêìíïîòóöôùúüûñç·/,:;' + const to = 'aaaaeeeeiiiioooouuuunc-----' + for (let i = 0, l = from.length; i < l; i++) { str = str.replace(new RegExp(from.charAt(i), 'g'), to.charAt(i)) } - str = str.replace(/[^a-z0-9 _-]/g, '') // remove invalid chars + str = str + .replace(/[^a-z0-9 _-]/g, '') // remove invalid chars .replace(/\s+/g, '-') // collapse whitespace and replace by - - .replace(/-+/g, '-'); // collapse dashes + .replace(/-+/g, '-') // collapse dashes - return str; + return str } //Build requests -const requests = { }; -const requestlist = []; +const requests = {} +const requestlist = [] function Request(name, obj) { - if (obj === undefined) { - requestlist.push({slug: null,name: name});//separator - return null; - } + if (obj === undefined) { + requestlist.push({ slug: null, name: name }) //separator + return null + } - obj.name = name; - obj.slug = slugify(name); - requests[obj.slug] = obj; - requestlist.push(obj); + obj.name = name + obj.slug = slugify(name) + requests[obj.slug] = obj + requestlist.push(obj) - return obj; -}; + return obj +} function generate_table_of_contents() { - $.each(requestlist, function(i, req) { + $.each(requestlist, function (i, req) { if (req.slug === null) { - commandlist.append("<li class='separator'>"+req.name+"</li>"); + commandlist.append("<li class='separator'>" + req.name + '</li>') } else { - let status_label = "" - if (req.status == "not_enabled") { - status_label = '<span class="status not_enabled" title="This feature is not currently enabled on the production XRP Ledger."><i class="fa fa-flask"></i></span> ' - } - commandlist.append("<li class='method'><a href='#"+req.slug+"'>"+status_label+req.name+"</a></li>"); + let status_label = '' + if (req.status == 'not_enabled') { + status_label = + '<span class="status not_enabled" title="This feature is not currently enabled on the production XRP Ledger."><i class="fa fa-flask"></i></span> ' + } + commandlist.append("<li class='method'><a href='#" + req.slug + "'>" + status_label + req.name + '</a></li>') } - }); + }) } function make_commands_clickable() { - commandlist.children("li").click(function() { - var cmd = slugify($(this).text().trim()); + commandlist.children('li').click(function () { + var cmd = slugify($(this).text().trim()) - if (!requests[cmd]) return; + if (!requests[cmd]) return - select_request(cmd); - window.location.hash = cmd; + select_request(cmd) + window.location.hash = cmd - $(this).siblings().removeClass('active'); - $(this).addClass('active'); - }); + $(this).siblings().removeClass('active') + $(this).addClass('active') + }) } const cm_request = CodeMirror(request_body.get(0), { mode: 'javascript', json: true, smartIndent: false, - gutters: ["CodeMirror-lint-markers"], - lint: CodeMirror.lint.json + gutters: ['CodeMirror-lint-markers'], + lint: CodeMirror.lint.json, }) function select_request(request) { let el if (request === undefined) { - el = commandlist.children("li:not(.separator)").eq(0) + el = commandlist.children('li:not(.separator)').eq(0) request = slugify(el.text()) } else { - el = commandlist.find("li a[href='#"+request+"']").parent() + el = commandlist.find("li a[href='#" + request + "']").parent() } $(el).siblings().removeClass('active') $(el).addClass('active') - const command = requests[request]; + const command = requests[request] if (command === undefined) { - console.warning("Unknown request identifier from # anchor.") + console.warning('Unknown request identifier from # anchor.') return false } if (command.description) { - $(".api-method-description-wrapper .blurb").html(command.description) - $(".api-method-description-wrapper .blurb").show() + $('.api-method-description-wrapper .blurb').html(command.description) + $('.api-method-description-wrapper .blurb').show() } else { - $(".api-method-description-wrapper .blurb").hide() + $('.api-method-description-wrapper .blurb').hide() } if (command.link) { - $(".api-method-description-wrapper .api-readmore").attr("href", command.link) - $(".api-method-description-wrapper .api-readmore").show() + $('.api-method-description-wrapper .api-readmore').attr('href', command.link) + $('.api-method-description-wrapper .api-readmore').show() } else { - $(".api-method-description-wrapper .api-readmore").hide() + $('.api-method-description-wrapper .api-readmore').hide() } if (command.ws_only) { - $(".curl").hide() + $('.curl').hide() } else { - $(".curl").show() + $('.curl').show() } - $(".selected_command").attr('href', command.link).text(command.name) + $('.selected_command').attr('href', command.link).text(command.name) - if (command.hasOwnProperty("body")) { - cm_request.setValue(JSON.stringify(command.body, null, 2)); + if (command.hasOwnProperty('body')) { + cm_request.setValue(JSON.stringify(command.body, null, 2)) } else { - //No body, so wipe out the current contents. - cm_request.setValue("") + //No body, so wipe out the current contents. + cm_request.setValue('') } cm_request.refresh() return true -}; +} function send_request() { - if (typeof socket === "undefined" || socket.readyState !== WebSocket.OPEN) { + if (typeof socket === 'undefined' || socket.readyState !== WebSocket.OPEN) { alert("Can't send request: Must be connected first!") return } @@ -138,59 +140,59 @@ function send_request() { const req_body = cm_request.getValue() try { JSON.parse(req_body) // we only need the text version, but test JSON syntax - } catch(e) { - alert("Invalid request JSON") + } catch (e) { + alert('Invalid request JSON') return } - $(".send-loader").show() + $('.send-loader').show() socket.send(req_body) } -let socket; +let socket function connect_socket() { - if (typeof socket !== "undefined" && socket.readyState < 2) { + if (typeof socket !== 'undefined' && socket.readyState < 2) { socket.close() } - $(".connect-loader").show() + $('.connect-loader').show() const selected_server_el = $("input[name='wstool-1-connection']:checked") const conn_url = selected_server_el.val() socket = new WebSocket(conn_url) socket.addEventListener('open', (event) => { - conn_btn.text(selected_server_el.data("shortname") + " (Connected)") - conn_btn.removeClass("btn-outline-secondary") - conn_btn.removeClass("btn-danger") - conn_btn.addClass("btn-success") - $(".connect-loader").hide() + conn_btn.text(selected_server_el.data('shortname') + ' (Connected)') + conn_btn.removeClass('btn-outline-secondary') + conn_btn.removeClass('btn-danger') + conn_btn.addClass('btn-success') + $('.connect-loader').hide() }) socket.addEventListener('close', (event) => { const new_conn_url = get_current_server() if (event.wasClean && event.originalTarget.url == new_conn_url) { - conn_btn.text(selected_server_el.data("shortname") + " (Not Connected)") - conn_btn.removeClass("btn-success") - conn_btn.removeClass("btn-danger") - conn_btn.addClass("btn-outline-secondary") - $(".connect-loader").hide() + conn_btn.text(selected_server_el.data('shortname') + ' (Not Connected)') + conn_btn.removeClass('btn-success') + conn_btn.removeClass('btn-danger') + conn_btn.addClass('btn-outline-secondary') + $('.connect-loader').hide() } else { - console.debug("socket close event discarded (new socket status already provided):", event) + console.debug('socket close event discarded (new socket status already provided):', event) } }) socket.addEventListener('error', (event) => { const new_conn_url = get_current_server() if (event.originalTarget.url == new_conn_url) { - console.error("socket error:", event) - conn_btn.text(selected_server_el.data("shortname") + " (Failed to Connect)") - conn_btn.removeClass("btn-outline-secondary") - conn_btn.removeClass("btn-success") - conn_btn.addClass("btn-danger") - $(".connect-loader").hide() + console.error('socket error:', event) + conn_btn.text(selected_server_el.data('shortname') + ' (Failed to Connect)') + conn_btn.removeClass('btn-outline-secondary') + conn_btn.removeClass('btn-success') + conn_btn.addClass('btn-danger') + $('.connect-loader').hide() } else { - console.debug("socket error event discarded (new socket status already provided):", event) + console.debug('socket error event discarded (new socket status already provided):', event) } }) socket.addEventListener('message', (event) => { - let data; + let data try { data = JSON.parse(event.data) } catch { @@ -198,56 +200,62 @@ function connect_socket() { return } - if (data.type === "response") { - $(".send-loader").hide() + if (data.type === 'response') { + $('.send-loader').hide() } - if (data.type === "response" || !STREAM_PAUSED) { - const el = $("<div class='response-metadata'><span class='timestamp'>"+(new Date()).toISOString()+"</span><div class='response-json'></div></div>") + if (data.type === 'response' || !STREAM_PAUSED) { + const el = $( + "<div class='response-metadata'><span class='timestamp'>" + new Date().toISOString() + "</span><div class='response-json'></div></div>", + ) response_wrapper.prepend(el) - const new_cm = CodeMirror($(el).find(".response-json")[0], { + const new_cm = CodeMirror($(el).find('.response-json')[0], { value: JSON.stringify(data, null, 2), mode: 'javascript', json: true, smartIndent: false, - gutters: ["CodeMirror-lint-markers"], // not used, but provided for consistent sizing - readOnly: true + gutters: ['CodeMirror-lint-markers'], // not used, but provided for consistent sizing + readOnly: true, }) - new_cm.setSize(null, "auto") + new_cm.setSize(null, 'auto') } // If subscription messages are paused, throw out incoming subscription messages // Trim response entries to the suggested number let keep_last try { - keep_last = parseInt($(".keep-last").val(), 10) - if (keep_last < 0) {keep_last = 0} - } catch(e) { - console.warn("Keep last value invalid:", e) + keep_last = parseInt($('.keep-last').val(), 10) + if (keep_last < 0) { + keep_last = 0 + } + } catch (e) { + console.warn('Keep last value invalid:', e) return } - while ($(".response-metadata").length > keep_last) { - $(".response-metadata").eq(-1).remove() + while ($('.response-metadata').length > keep_last) { + $('.response-metadata').eq(-1).remove() } }) } -const handle_select_server = function(event) { - if (typeof socket !== "undefined") { socket.close(1000) } +const handle_select_server = function (event) { + if (typeof socket !== 'undefined') { + socket.close(1000) + } connect_socket() response_wrapper.empty() } function get_compressed_body() { - let compressed_body; + let compressed_body try { const body_json = JSON.parse(cm_request.getValue()) compressed_body = JSON.stringify(body_json, null, null) - } catch(e) { + } catch (e) { // Probably invalid JSON. We'll make a permalink anyway, but we can't // compress all the whitespace because we don't know what's escaped. We can // assume that newlines are irrelevant because the rippled APIs don't accept // newlines in strings anywhere - compressed_body = cm_request.getValue().replace("\n","").trim() + compressed_body = cm_request.getValue().replace('\n', '').trim() } return compressed_body @@ -257,17 +265,17 @@ function get_current_server() { return $("input[name='wstool-1-connection']:checked").val() } -const update_permalink = function(event) { +const update_permalink = function (event) { const start_href = window.location.origin + window.location.pathname const encoded_body = encodeURIComponent(get_compressed_body()) const encoded_server = encodeURIComponent(get_current_server()) - let permalink = start_href + "?server=" + encoded_server + "&req=" + encoded_body + let permalink = start_href + '?server=' + encoded_server + '&req=' + encoded_body // Future Feature: set the hash if the command matches a known method - $("#permalink-box-1").text(permalink) + $('#permalink-box-1').text(permalink) } -const update_curl = function(event) { +const update_curl = function (event) { let body try { // change WS to JSON-RPC syntax @@ -275,103 +283,102 @@ const update_curl = function(event) { delete params.id const method = params.command delete params.command - const body_json = {"method":method, "params":[params]} + const body_json = { method: method, params: [params] } body = JSON.stringify(body_json, null, null) - } catch(e) { + } catch (e) { alert("Can't provide curl format of invalid JSON syntax") return } - const server = $("input[name='wstool-1-connection']:checked").data("jsonrpcurl") + const server = $("input[name='wstool-1-connection']:checked").data('jsonrpcurl') - const curl_syntax = "curl -H 'Content-Type: application/json' -d '"+body+"' "+server - $("#curl-box-1").text(curl_syntax) + const curl_syntax = "curl -H 'Content-Type: application/json' -d '" + body + "' " + server + $('#curl-box-1').text(curl_syntax) } function server_from_params(params) { - const server = params.get("server") + const server = params.get('server') if (server) { - const server_checkbox = $("input[value='"+server+"']") + const server_checkbox = $("input[value='" + server + "']") if (server_checkbox.length === 1) { - server_checkbox.prop("checked", true) + server_checkbox.prop('checked', true) // relies on connect_socket() being run shortly thereafter } } } function req_from_params(params) { - let req_body = params.get("req") - let cmd_name = "" + let req_body = params.get('req') + let cmd_name = '' if (req_body) { try { req_body_json = JSON.parse(req_body) req_body = JSON.stringify(req_body_json, null, 2) cmd_name = req_body_json.command - } catch(e) { - console.warn("Loaded request body is invalid JSON:", e) + } catch (e) { + console.warn('Loaded request body is invalid JSON:', e) } - $(".selected_command").text(cmd_name) + $('.selected_command').text(cmd_name) if (requests.hasOwnProperty(slugify(cmd_name))) { const req = requests[slugify(cmd_name)] - $(".selected_command").attr('href', req.link) - $(".api-method-description-wrapper .blurb").html(req.description) - $(".api-method-description-wrapper .api-readmore").attr("href", req.link) - $(".api-method-description-wrapper .api-readmore").show() + $('.selected_command').attr('href', req.link) + $('.api-method-description-wrapper .blurb').html(req.description) + $('.api-method-description-wrapper .api-readmore').attr('href', req.link) + $('.api-method-description-wrapper .api-readmore').show() } else { - console.debug("Unknown command:", cmd_name) - $(".selected_command").attr('href', "") - $(".api-method-description-wrapper .blurb").empty() - $(".api-method-description-wrapper .api-readmore").hide() + console.debug('Unknown command:', cmd_name) + $('.selected_command').attr('href', '') + $('.api-method-description-wrapper .blurb').empty() + $('.api-method-description-wrapper .api-readmore').hide() } cm_request.setValue(req_body) } } -$(document).ready(function() { - //wait for the Requests to be populated by another file - generate_table_of_contents() - make_commands_clickable() +$(document).ready(function () { + //wait for the Requests to be populated by another file + generate_table_of_contents() + make_commands_clickable() - const search_params = new URLSearchParams(window.location.search) + const search_params = new URLSearchParams(window.location.search) - if (window.location.hash) { - var cmd = window.location.hash.slice(1).toLowerCase(); - if (!select_request(cmd)) { - // Didn't find a definition for the request from the hash. Use the - // default instead. - select_request() - } - } else if (search_params.has("req")) { - req_from_params(search_params) - } else { + if (window.location.hash) { + var cmd = window.location.hash.slice(1).toLowerCase() + if (!select_request(cmd)) { + // Didn't find a definition for the request from the hash. Use the + // default instead. select_request() } + } else if (search_params.has('req')) { + req_from_params(search_params) + } else { + select_request() + } - if (search_params.has("server")) { - server_from_params(search_params) - } + if (search_params.has('server')) { + server_from_params(search_params) + } - connect_socket() + connect_socket() - request_button.click(send_request) + request_button.click(send_request) - $("input[name='wstool-1-connection']").click(handle_select_server) - stream_pause.click((event) => { - STREAM_PAUSED = true - stream_pause.hide() - stream_unpause.show() - }) - stream_unpause.click((event) => { - STREAM_PAUSED = false - stream_pause.show() - stream_unpause.hide() - }) + $("input[name='wstool-1-connection']").click(handle_select_server) + stream_pause.click((event) => { + STREAM_PAUSED = true + stream_pause.hide() + stream_unpause.show() + }) + stream_unpause.click((event) => { + STREAM_PAUSED = false + stream_pause.show() + stream_unpause.hide() + }) - trash_button.click((event) => { - response_wrapper.empty() - }) - permalink_button.click(update_permalink) - curl_button.click(update_curl) - -}); + trash_button.click((event) => { + response_wrapper.empty() + }) + permalink_button.click(update_permalink) + curl_button.click(update_curl) +}) diff --git a/static/js/bodymovin.min.js b/static/js/bodymovin.min.js index 0e23629e84..134daf3d01 100644 --- a/static/js/bodymovin.min.js +++ b/static/js/bodymovin.min.js @@ -1 +1,9391 @@ -var a,b;"undefined"!=typeof navigator&&(a=window||{},b=function(window){"use strict";var svgNS="http://www.w3.org/2000/svg",locationHref="",initialDefaultFrame=-999999,subframeEnabled=!0,expressionsPlugin,isSafari=/^((?!chrome|android).)*safari/i.test(navigator.userAgent),cachedColors={},bm_rounder=Math.round,bm_rnd,bm_pow=Math.pow,bm_sqrt=Math.sqrt,bm_abs=Math.abs,bm_floor=Math.floor,bm_max=Math.max,bm_min=Math.min,blitter=10,BMMath={};function ProjectInterface(){return{}}!function(){var t,e=["abs","acos","acosh","asin","asinh","atan","atanh","atan2","ceil","cbrt","expm1","clz32","cos","cosh","exp","floor","fround","hypot","imul","log","log1p","log2","log10","max","min","pow","random","round","sign","sin","sinh","sqrt","tan","tanh","trunc","E","LN10","LN2","LOG10E","LOG2E","PI","SQRT1_2","SQRT2"],r=e.length;for(t=0;t<r;t+=1)BMMath[e[t]]=Math[e[t]]}(),BMMath.random=Math.random,BMMath.abs=function(t){if("object"===typeof t&&t.length){var e,r=createSizedArray(t.length),i=t.length;for(e=0;e<i;e+=1)r[e]=Math.abs(t[e]);return r}return Math.abs(t)};var defaultCurveSegments=150,degToRads=Math.PI/180,roundCorner=.5519;function roundValues(t){bm_rnd=t?Math.round:function(t){return t}}function styleDiv(t){t.style.position="absolute",t.style.top=0,t.style.left=0,t.style.display="block",t.style.transformOrigin=t.style.webkitTransformOrigin="0 0",t.style.backfaceVisibility=t.style.webkitBackfaceVisibility="visible",t.style.transformStyle=t.style.webkitTransformStyle=t.style.mozTransformStyle="preserve-3d"}function BMEnterFrameEvent(t,e,r,i){this.type=t,this.currentTime=e,this.totalTime=r,this.direction=i<0?-1:1}function BMCompleteEvent(t,e){this.type=t,this.direction=e<0?-1:1}function BMCompleteLoopEvent(t,e,r,i){this.type=t,this.currentLoop=r,this.totalLoops=e,this.direction=i<0?-1:1}function BMSegmentStartEvent(t,e,r){this.type=t,this.firstFrame=e,this.totalFrames=r}function BMDestroyEvent(t,e){this.type=t,this.target=e}function BMRenderFrameErrorEvent(t,e){this.type="renderFrameError",this.nativeError=t,this.currentTime=e}function BMConfigErrorEvent(t){this.type="configError",this.nativeError=t}function BMAnimationConfigErrorEvent(t,e){this.type=t,this.nativeError=e,this.currentTime=currentTime}roundValues(!1);var createElementID=(I=0,function(){return"__lottie_element_"+ ++I}),I;function HSVtoRGB(t,e,r){var i,s,a,n,o,h,l,p;switch(h=r*(1-e),l=r*(1-(o=6*t-(n=Math.floor(6*t)))*e),p=r*(1-(1-o)*e),n%6){case 0:i=r,s=p,a=h;break;case 1:i=l,s=r,a=h;break;case 2:i=h,s=r,a=p;break;case 3:i=h,s=l,a=r;break;case 4:i=p,s=h,a=r;break;case 5:i=r,s=h,a=l}return[i,s,a]}function RGBtoHSV(t,e,r){var i,s=Math.max(t,e,r),a=Math.min(t,e,r),n=s-a,o=0===s?0:n/s,h=s/255;switch(s){case a:i=0;break;case t:i=e-r+n*(e<r?6:0),i/=6*n;break;case e:i=r-t+2*n,i/=6*n;break;case r:i=t-e+4*n,i/=6*n}return[i,o,h]}function addSaturationToRGB(t,e){var r=RGBtoHSV(255*t[0],255*t[1],255*t[2]);return r[1]+=e,1<r[1]?r[1]=1:r[1]<=0&&(r[1]=0),HSVtoRGB(r[0],r[1],r[2])}function addBrightnessToRGB(t,e){var r=RGBtoHSV(255*t[0],255*t[1],255*t[2]);return r[2]+=e,1<r[2]?r[2]=1:r[2]<0&&(r[2]=0),HSVtoRGB(r[0],r[1],r[2])}function addHueToRGB(t,e){var r=RGBtoHSV(255*t[0],255*t[1],255*t[2]);return r[0]+=e/360,1<r[0]?r[0]-=1:r[0]<0&&(r[0]+=1),HSVtoRGB(r[0],r[1],r[2])}var rgbToHex=function(){var t,e,i=[];for(t=0;t<256;t+=1)e=t.toString(16),i[t]=1==e.length?"0"+e:e;return function(t,e,r){return t<0&&(t=0),e<0&&(e=0),r<0&&(r=0),"#"+i[t]+i[e]+i[r]}}();function BaseEvent(){}BaseEvent.prototype={triggerEvent:function(t,e){if(this._cbs[t])for(var r=this._cbs[t].length,i=0;i<r;i++)this._cbs[t][i](e)},addEventListener:function(t,e){return this._cbs[t]||(this._cbs[t]=[]),this._cbs[t].push(e),function(){this.removeEventListener(t,e)}.bind(this)},removeEventListener:function(t,e){if(e){if(this._cbs[t]){for(var r=0,i=this._cbs[t].length;r<i;)this._cbs[t][r]===e&&(this._cbs[t].splice(r,1),r-=1,i-=1),r+=1;this._cbs[t].length||(this._cbs[t]=null)}}else this._cbs[t]=null}};var createTypedArray="function"==typeof Uint8ClampedArray&&"function"==typeof Float32Array?function(t,e){return"float32"===t?new Float32Array(e):"int16"===t?new Int16Array(e):"uint8c"===t?new Uint8ClampedArray(e):void 0}:function(t,e){var r,i=0,s=[];switch(t){case"int16":case"uint8c":r=1;break;default:r=1.1}for(i=0;i<e;i+=1)s.push(r);return s};function createSizedArray(t){return Array.apply(null,{length:t})}function createNS(t){return document.createElementNS(svgNS,t)}function createTag(t){return document.createElement(t)}function DynamicPropertyContainer(){}DynamicPropertyContainer.prototype={addDynamicProperty:function(t){-1===this.dynamicProperties.indexOf(t)&&(this.dynamicProperties.push(t),this.container.addDynamicProperty(this),this._isAnimated=!0)},iterateDynamicProperties:function(){this._mdf=!1;var t,e=this.dynamicProperties.length;for(t=0;t<e;t+=1)this.dynamicProperties[t].getValue(),this.dynamicProperties[t]._mdf&&(this._mdf=!0)},initDynamicPropertyContainer:function(t){this.container=t,this.dynamicProperties=[],this._mdf=!1,this._isAnimated=!1}};var getBlendMode=(Ra={0:"source-over",1:"multiply",2:"screen",3:"overlay",4:"darken",5:"lighten",6:"color-dodge",7:"color-burn",8:"hard-light",9:"soft-light",10:"difference",11:"exclusion",12:"hue",13:"saturation",14:"color",15:"luminosity"},function(t){return Ra[t]||""}),Ra,Matrix=function(){var s=Math.cos,a=Math.sin,n=Math.tan,i=Math.round;function t(){return this.props[0]=1,this.props[1]=0,this.props[2]=0,this.props[3]=0,this.props[4]=0,this.props[5]=1,this.props[6]=0,this.props[7]=0,this.props[8]=0,this.props[9]=0,this.props[10]=1,this.props[11]=0,this.props[12]=0,this.props[13]=0,this.props[14]=0,this.props[15]=1,this}function e(t){if(0===t)return this;var e=s(t),r=a(t);return this._t(e,-r,0,0,r,e,0,0,0,0,1,0,0,0,0,1)}function r(t){if(0===t)return this;var e=s(t),r=a(t);return this._t(1,0,0,0,0,e,-r,0,0,r,e,0,0,0,0,1)}function o(t){if(0===t)return this;var e=s(t),r=a(t);return this._t(e,0,r,0,0,1,0,0,-r,0,e,0,0,0,0,1)}function h(t){if(0===t)return this;var e=s(t),r=a(t);return this._t(e,-r,0,0,r,e,0,0,0,0,1,0,0,0,0,1)}function l(t,e){return this._t(1,e,t,1,0,0)}function p(t,e){return this.shear(n(t),n(e))}function m(t,e){var r=s(e),i=a(e);return this._t(r,i,0,0,-i,r,0,0,0,0,1,0,0,0,0,1)._t(1,0,0,0,n(t),1,0,0,0,0,1,0,0,0,0,1)._t(r,-i,0,0,i,r,0,0,0,0,1,0,0,0,0,1)}function f(t,e,r){return r||0===r||(r=1),1===t&&1===e&&1===r?this:this._t(t,0,0,0,0,e,0,0,0,0,r,0,0,0,0,1)}function c(t,e,r,i,s,a,n,o,h,l,p,m,f,c,d,u){return this.props[0]=t,this.props[1]=e,this.props[2]=r,this.props[3]=i,this.props[4]=s,this.props[5]=a,this.props[6]=n,this.props[7]=o,this.props[8]=h,this.props[9]=l,this.props[10]=p,this.props[11]=m,this.props[12]=f,this.props[13]=c,this.props[14]=d,this.props[15]=u,this}function d(t,e,r){return r=r||0,0!==t||0!==e||0!==r?this._t(1,0,0,0,0,1,0,0,0,0,1,0,t,e,r,1):this}function u(t,e,r,i,s,a,n,o,h,l,p,m,f,c,d,u){var y=this.props;if(1===t&&0===e&&0===r&&0===i&&0===s&&1===a&&0===n&&0===o&&0===h&&0===l&&1===p&&0===m)return y[12]=y[12]*t+y[15]*f,y[13]=y[13]*a+y[15]*c,y[14]=y[14]*p+y[15]*d,y[15]=y[15]*u,this._identityCalculated=!1,this;var g=y[0],v=y[1],b=y[2],E=y[3],x=y[4],P=y[5],S=y[6],_=y[7],A=y[8],C=y[9],T=y[10],k=y[11],M=y[12],D=y[13],w=y[14],F=y[15];return y[0]=g*t+v*s+b*h+E*f,y[1]=g*e+v*a+b*l+E*c,y[2]=g*r+v*n+b*p+E*d,y[3]=g*i+v*o+b*m+E*u,y[4]=x*t+P*s+S*h+_*f,y[5]=x*e+P*a+S*l+_*c,y[6]=x*r+P*n+S*p+_*d,y[7]=x*i+P*o+S*m+_*u,y[8]=A*t+C*s+T*h+k*f,y[9]=A*e+C*a+T*l+k*c,y[10]=A*r+C*n+T*p+k*d,y[11]=A*i+C*o+T*m+k*u,y[12]=M*t+D*s+w*h+F*f,y[13]=M*e+D*a+w*l+F*c,y[14]=M*r+D*n+w*p+F*d,y[15]=M*i+D*o+w*m+F*u,this._identityCalculated=!1,this}function y(){return this._identityCalculated||(this._identity=!(1!==this.props[0]||0!==this.props[1]||0!==this.props[2]||0!==this.props[3]||0!==this.props[4]||1!==this.props[5]||0!==this.props[6]||0!==this.props[7]||0!==this.props[8]||0!==this.props[9]||1!==this.props[10]||0!==this.props[11]||0!==this.props[12]||0!==this.props[13]||0!==this.props[14]||1!==this.props[15]),this._identityCalculated=!0),this._identity}function g(t){for(var e=0;e<16;){if(t.props[e]!==this.props[e])return!1;e+=1}return!0}function v(t){var e;for(e=0;e<16;e+=1)t.props[e]=this.props[e]}function b(t){var e;for(e=0;e<16;e+=1)this.props[e]=t[e]}function E(t,e,r){return{x:t*this.props[0]+e*this.props[4]+r*this.props[8]+this.props[12],y:t*this.props[1]+e*this.props[5]+r*this.props[9]+this.props[13],z:t*this.props[2]+e*this.props[6]+r*this.props[10]+this.props[14]}}function x(t,e,r){return t*this.props[0]+e*this.props[4]+r*this.props[8]+this.props[12]}function P(t,e,r){return t*this.props[1]+e*this.props[5]+r*this.props[9]+this.props[13]}function S(t,e,r){return t*this.props[2]+e*this.props[6]+r*this.props[10]+this.props[14]}function _(t){var e=this.props[0]*this.props[5]-this.props[1]*this.props[4],r=this.props[5]/e,i=-this.props[1]/e,s=-this.props[4]/e,a=this.props[0]/e,n=(this.props[4]*this.props[13]-this.props[5]*this.props[12])/e,o=-(this.props[0]*this.props[13]-this.props[1]*this.props[12])/e;return[t[0]*r+t[1]*s+n,t[0]*i+t[1]*a+o,0]}function A(t){var e,r=t.length,i=[];for(e=0;e<r;e+=1)i[e]=_(t[e]);return i}function C(t,e,r){var i=createTypedArray("float32",6);if(this.isIdentity())i[0]=t[0],i[1]=t[1],i[2]=e[0],i[3]=e[1],i[4]=r[0],i[5]=r[1];else{var s=this.props[0],a=this.props[1],n=this.props[4],o=this.props[5],h=this.props[12],l=this.props[13];i[0]=t[0]*s+t[1]*n+h,i[1]=t[0]*a+t[1]*o+l,i[2]=e[0]*s+e[1]*n+h,i[3]=e[0]*a+e[1]*o+l,i[4]=r[0]*s+r[1]*n+h,i[5]=r[0]*a+r[1]*o+l}return i}function T(t,e,r){return this.isIdentity()?[t,e,r]:[t*this.props[0]+e*this.props[4]+r*this.props[8]+this.props[12],t*this.props[1]+e*this.props[5]+r*this.props[9]+this.props[13],t*this.props[2]+e*this.props[6]+r*this.props[10]+this.props[14]]}function k(t,e){if(this.isIdentity())return t+","+e;var r=this.props;return Math.round(100*(t*r[0]+e*r[4]+r[12]))/100+","+Math.round(100*(t*r[1]+e*r[5]+r[13]))/100}function M(){for(var t=0,e=this.props,r="matrix3d(";t<16;)r+=i(1e4*e[t])/1e4,r+=15===t?")":",",t+=1;return r}function D(t){return t<1e-6&&0<t||-1e-6<t&&t<0?i(1e4*t)/1e4:t}function w(){var t=this.props;return"matrix("+D(t[0])+","+D(t[1])+","+D(t[4])+","+D(t[5])+","+D(t[12])+","+D(t[13])+")"}return function(){this.reset=t,this.rotate=e,this.rotateX=r,this.rotateY=o,this.rotateZ=h,this.skew=p,this.skewFromAxis=m,this.shear=l,this.scale=f,this.setTransform=c,this.translate=d,this.transform=u,this.applyToPoint=E,this.applyToX=x,this.applyToY=P,this.applyToZ=S,this.applyToPointArray=T,this.applyToTriplePoints=C,this.applyToPointStringified=k,this.toCSS=M,this.to2dCSS=w,this.clone=v,this.cloneFromProps=b,this.equals=g,this.inversePoints=A,this.inversePoint=_,this._t=this.transform,this.isIdentity=y,this._identity=!0,this._identityCalculated=!1,this.props=createTypedArray("float32",16),this.reset()}}();!function(o,h){var l,p=this,m=256,f=6,c="random",d=h.pow(m,f),u=h.pow(2,52),y=2*u,g=m-1;function v(t){var e,r=t.length,n=this,i=0,s=n.i=n.j=0,a=n.S=[];for(r||(t=[r++]);i<m;)a[i]=i++;for(i=0;i<m;i++)a[i]=a[s=g&s+t[i%r]+(e=a[i])],a[s]=e;n.g=function(t){for(var e,r=0,i=n.i,s=n.j,a=n.S;t--;)e=a[i=g&i+1],r=r*m+a[g&(a[i]=a[s=g&s+e])+(a[s]=e)];return n.i=i,n.j=s,r}}function b(t,e){return e.i=t.i,e.j=t.j,e.S=t.S.slice(),e}function E(t,e){for(var r,i=t+"",s=0;s<i.length;)e[g&s]=g&(r^=19*e[g&s])+i.charCodeAt(s++);return x(e)}function x(t){return String.fromCharCode.apply(0,t)}h["seed"+c]=function(t,e,r){var i=[],s=E(function t(e,r){var i,s=[],a=typeof e;if(r&&"object"==a)for(i in e)try{s.push(t(e[i],r-1))}catch(t){}return s.length?s:"string"==a?e:e+"\0"}((e=!0===e?{entropy:!0}:e||{}).entropy?[t,x(o)]:null===t?function(){try{if(l)return x(l.randomBytes(m));var t=new Uint8Array(m);return(p.crypto||p.msCrypto).getRandomValues(t),x(t)}catch(t){var e=p.navigator,r=e&&e.plugins;return[+new Date,p,r,p.screen,x(o)]}}():t,3),i),a=new v(i),n=function(){for(var t=a.g(f),e=d,r=0;t<u;)t=(t+r)*m,e*=m,r=a.g(1);for(;y<=t;)t/=2,e/=2,r>>>=1;return(t+r)/e};return n.int32=function(){return 0|a.g(4)},n.quick=function(){return a.g(4)/4294967296},n.double=n,E(x(a.S),o),(e.pass||r||function(t,e,r,i){return i&&(i.S&&b(i,a),t.state=function(){return b(a,{})}),r?(h[c]=t,e):t})(n,s,"global"in e?e.global:this==h,e.state)},E(h.random(),o)}([],BMMath);var BezierFactory=function(){var t={getBezierEasing:function(t,e,r,i,s){var a=s||("bez_"+t+"_"+e+"_"+r+"_"+i).replace(/\./g,"p");if(o[a])return o[a];var n=new h([t,e,r,i]);return o[a]=n}},o={};var l=11,p=1/(l-1),e="function"==typeof Float32Array;function i(t,e){return 1-3*e+3*t}function s(t,e){return 3*e-6*t}function a(t){return 3*t}function m(t,e,r){return((i(e,r)*t+s(e,r))*t+a(e))*t}function f(t,e,r){return 3*i(e,r)*t*t+2*s(e,r)*t+a(e)}function h(t){this._p=t,this._mSampleValues=e?new Float32Array(l):new Array(l),this._precomputed=!1,this.get=this.get.bind(this)}return h.prototype={get:function(t){var e=this._p[0],r=this._p[1],i=this._p[2],s=this._p[3];return this._precomputed||this._precompute(),e===r&&i===s?t:0===t?0:1===t?1:m(this._getTForX(t),r,s)},_precompute:function(){var t=this._p[0],e=this._p[1],r=this._p[2],i=this._p[3];this._precomputed=!0,t===e&&r===i||this._calcSampleValues()},_calcSampleValues:function(){for(var t=this._p[0],e=this._p[2],r=0;r<l;++r)this._mSampleValues[r]=m(r*p,t,e)},_getTForX:function(t){for(var e=this._p[0],r=this._p[2],i=this._mSampleValues,s=0,a=1,n=l-1;a!==n&&i[a]<=t;++a)s+=p;var o=s+(t-i[--a])/(i[a+1]-i[a])*p,h=f(o,e,r);return.001<=h?function(t,e,r,i){for(var s=0;s<4;++s){var a=f(e,r,i);if(0===a)return e;e-=(m(e,r,i)-t)/a}return e}(t,o,e,r):0===h?o:function(t,e,r,i,s){for(var a,n,o=0;0<(a=m(n=e+(r-e)/2,i,s)-t)?r=n:e=n,1e-7<Math.abs(a)&&++o<10;);return n}(t,s,s+p,e,r)}},t}();function extendPrototype(t,e){var r,i,s=t.length;for(r=0;r<s;r+=1)for(var a in i=t[r].prototype)i.hasOwnProperty(a)&&(e.prototype[a]=i[a])}function getDescriptor(t,e){return Object.getOwnPropertyDescriptor(t,e)}function createProxyFunction(t){function e(){}return e.prototype=t,e}function bezFunction(){Math;function y(t,e,r,i,s,a){var n=t*i+e*s+r*a-s*i-a*t-r*e;return-.001<n&&n<.001}var p=function(t,e,r,i){var s,a,n,o,h,l,p=defaultCurveSegments,m=0,f=[],c=[],d=bezier_length_pool.newElement();for(n=r.length,s=0;s<p;s+=1){for(h=s/(p-1),a=l=0;a<n;a+=1)o=bm_pow(1-h,3)*t[a]+3*bm_pow(1-h,2)*h*r[a]+3*(1-h)*bm_pow(h,2)*i[a]+bm_pow(h,3)*e[a],f[a]=o,null!==c[a]&&(l+=bm_pow(f[a]-c[a],2)),c[a]=f[a];l&&(m+=l=bm_sqrt(l)),d.percents[s]=h,d.lengths[s]=m}return d.addedLength=m,d};function g(t){this.segmentLength=0,this.points=new Array(t)}function v(t,e){this.partialLength=t,this.point=e}var b,t=(b={},function(t,e,r,i){var s=(t[0]+"_"+t[1]+"_"+e[0]+"_"+e[1]+"_"+r[0]+"_"+r[1]+"_"+i[0]+"_"+i[1]).replace(/\./g,"p");if(!b[s]){var a,n,o,h,l,p,m,f=defaultCurveSegments,c=0,d=null;2===t.length&&(t[0]!=e[0]||t[1]!=e[1])&&y(t[0],t[1],e[0],e[1],t[0]+r[0],t[1]+r[1])&&y(t[0],t[1],e[0],e[1],e[0]+i[0],e[1]+i[1])&&(f=2);var u=new g(f);for(o=r.length,a=0;a<f;a+=1){for(m=createSizedArray(o),l=a/(f-1),n=p=0;n<o;n+=1)h=bm_pow(1-l,3)*t[n]+3*bm_pow(1-l,2)*l*(t[n]+r[n])+3*(1-l)*bm_pow(l,2)*(e[n]+i[n])+bm_pow(l,3)*e[n],m[n]=h,null!==d&&(p+=bm_pow(m[n]-d[n],2));c+=p=bm_sqrt(p),u.points[a]=new v(p,m),d=m}u.segmentLength=c,b[s]=u}return b[s]});function M(t,e){var r=e.percents,i=e.lengths,s=r.length,a=bm_floor((s-1)*t),n=t*e.addedLength,o=0;if(a===s-1||0===a||n===i[a])return r[a];for(var h=i[a]>n?-1:1,l=!0;l;)if(i[a]<=n&&i[a+1]>n?(o=(n-i[a])/(i[a+1]-i[a]),l=!1):a+=h,a<0||s-1<=a){if(a===s-1)return r[a];l=!1}return r[a]+(r[a+1]-r[a])*o}var D=createTypedArray("float32",8);return{getSegmentsLength:function(t){var e,r=segments_length_pool.newElement(),i=t.c,s=t.v,a=t.o,n=t.i,o=t._length,h=r.lengths,l=0;for(e=0;e<o-1;e+=1)h[e]=p(s[e],s[e+1],a[e],n[e+1]),l+=h[e].addedLength;return i&&o&&(h[e]=p(s[e],s[0],a[e],n[0]),l+=h[e].addedLength),r.totalLength=l,r},getNewSegment:function(t,e,r,i,s,a,n){var o,h=M(s=s<0?0:1<s?1:s,n),l=M(a=1<a?1:a,n),p=t.length,m=1-h,f=1-l,c=m*m*m,d=h*m*m*3,u=h*h*m*3,y=h*h*h,g=m*m*f,v=h*m*f+m*h*f+m*m*l,b=h*h*f+m*h*l+h*m*l,E=h*h*l,x=m*f*f,P=h*f*f+m*l*f+m*f*l,S=h*l*f+m*l*l+h*f*l,_=h*l*l,A=f*f*f,C=l*f*f+f*l*f+f*f*l,T=l*l*f+f*l*l+l*f*l,k=l*l*l;for(o=0;o<p;o+=1)D[4*o]=Math.round(1e3*(c*t[o]+d*r[o]+u*i[o]+y*e[o]))/1e3,D[4*o+1]=Math.round(1e3*(g*t[o]+v*r[o]+b*i[o]+E*e[o]))/1e3,D[4*o+2]=Math.round(1e3*(x*t[o]+P*r[o]+S*i[o]+_*e[o]))/1e3,D[4*o+3]=Math.round(1e3*(A*t[o]+C*r[o]+T*i[o]+k*e[o]))/1e3;return D},getPointInSegment:function(t,e,r,i,s,a){var n=M(s,a),o=1-n;return[Math.round(1e3*(o*o*o*t[0]+(n*o*o+o*n*o+o*o*n)*r[0]+(n*n*o+o*n*n+n*o*n)*i[0]+n*n*n*e[0]))/1e3,Math.round(1e3*(o*o*o*t[1]+(n*o*o+o*n*o+o*o*n)*r[1]+(n*n*o+o*n*n+n*o*n)*i[1]+n*n*n*e[1]))/1e3]},buildBezierData:t,pointOnLine2D:y,pointOnLine3D:function(t,e,r,i,s,a,n,o,h){if(0===r&&0===a&&0===h)return y(t,e,i,s,n,o);var l,p=Math.sqrt(Math.pow(i-t,2)+Math.pow(s-e,2)+Math.pow(a-r,2)),m=Math.sqrt(Math.pow(n-t,2)+Math.pow(o-e,2)+Math.pow(h-r,2)),f=Math.sqrt(Math.pow(n-i,2)+Math.pow(o-s,2)+Math.pow(h-a,2));return-1e-4<(l=m<p?f<p?p-m-f:f-m-p:m<f?f-m-p:m-p-f)&&l<1e-4}}}!function(){for(var a=0,t=["ms","moz","webkit","o"],e=0;e<t.length&&!window.requestAnimationFrame;++e)window.requestAnimationFrame=window[t[e]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[t[e]+"CancelAnimationFrame"]||window[t[e]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(t,e){var r=(new Date).getTime(),i=Math.max(0,16-(r-a)),s=setTimeout(function(){t(r+i)},i);return a=r+i,s}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(t){clearTimeout(t)})}();var bez=bezFunction();function dataFunctionManager(){function c(t,e){for(var r=0,i=e.length;r<i;){if(e[r].id===t)return e[r].layers.__used?JSON.parse(JSON.stringify(e[r].layers)):(e[r].layers.__used=!0,e[r].layers);r+=1}}function d(t){var e,r,i;for(e=t.length-1;0<=e;e-=1)if("sh"==t[e].ty){if(t[e].ks.k.i)u(t[e].ks.k);else for(i=t[e].ks.k.length,r=0;r<i;r+=1)t[e].ks.k[r].s&&u(t[e].ks.k[r].s[0]),t[e].ks.k[r].e&&u(t[e].ks.k[r].e[0]);!0}else"gr"==t[e].ty&&d(t[e].it)}function u(t){var e,r=t.i.length;for(e=0;e<r;e+=1)t.i[e][0]+=t.v[e][0],t.i[e][1]+=t.v[e][1],t.o[e][0]+=t.v[e][0],t.o[e][1]+=t.v[e][1]}function o(t,e){var r=e?e.split("."):[100,100,100];return t[0]>r[0]||!(r[0]>t[0])&&(t[1]>r[1]||!(r[1]>t[1])&&(t[2]>r[2]||!(r[2]>t[2])&&void 0))}var h,r=function(){var i=[4,4,14];function s(t){var e,r,i,s=t.length;for(e=0;e<s;e+=1)5===t[e].ty&&(r=t[e],void 0,i=r.t.d,r.t.d={k:[{s:i,t:0}]})}return function(t){if(o(i,t.v)&&(s(t.layers),t.assets)){var e,r=t.assets.length;for(e=0;e<r;e+=1)t.assets[e].layers&&s(t.assets[e].layers)}}}(),i=(h=[4,7,99],function(t){if(t.chars&&!o(h,t.v)){var e,r,i,s,a,n=t.chars.length;for(e=0;e<n;e+=1)if(t.chars[e].data&&t.chars[e].data.shapes)for(i=(a=t.chars[e].data.shapes[0].it).length,r=0;r<i;r+=1)(s=a[r].ks.k).__converted||(u(a[r].ks.k),s.__converted=!0)}}),s=function(){var i=[4,1,9];function a(t){var e,r,i,s=t.length;for(e=0;e<s;e+=1)if("gr"===t[e].ty)a(t[e].it);else if("fl"===t[e].ty||"st"===t[e].ty)if(t[e].c.k&&t[e].c.k[0].i)for(i=t[e].c.k.length,r=0;r<i;r+=1)t[e].c.k[r].s&&(t[e].c.k[r].s[0]/=255,t[e].c.k[r].s[1]/=255,t[e].c.k[r].s[2]/=255,t[e].c.k[r].s[3]/=255),t[e].c.k[r].e&&(t[e].c.k[r].e[0]/=255,t[e].c.k[r].e[1]/=255,t[e].c.k[r].e[2]/=255,t[e].c.k[r].e[3]/=255);else t[e].c.k[0]/=255,t[e].c.k[1]/=255,t[e].c.k[2]/=255,t[e].c.k[3]/=255}function s(t){var e,r=t.length;for(e=0;e<r;e+=1)4===t[e].ty&&a(t[e].shapes)}return function(t){if(o(i,t.v)&&(s(t.layers),t.assets)){var e,r=t.assets.length;for(e=0;e<r;e+=1)t.assets[e].layers&&s(t.assets[e].layers)}}}(),a=function(){var i=[4,4,18];function l(t){var e,r,i;for(e=t.length-1;0<=e;e-=1)if("sh"==t[e].ty){if(t[e].ks.k.i)t[e].ks.k.c=t[e].closed;else for(i=t[e].ks.k.length,r=0;r<i;r+=1)t[e].ks.k[r].s&&(t[e].ks.k[r].s[0].c=t[e].closed),t[e].ks.k[r].e&&(t[e].ks.k[r].e[0].c=t[e].closed);!0}else"gr"==t[e].ty&&l(t[e].it)}function s(t){var e,r,i,s,a,n,o=t.length;for(r=0;r<o;r+=1){if((e=t[r]).hasMask){var h=e.masksProperties;for(s=h.length,i=0;i<s;i+=1)if(h[i].pt.k.i)h[i].pt.k.c=h[i].cl;else for(n=h[i].pt.k.length,a=0;a<n;a+=1)h[i].pt.k[a].s&&(h[i].pt.k[a].s[0].c=h[i].cl),h[i].pt.k[a].e&&(h[i].pt.k[a].e[0].c=h[i].cl)}4===e.ty&&l(e.shapes)}}return function(t){if(o(i,t.v)&&(s(t.layers),t.assets)){var e,r=t.assets.length;for(e=0;e<r;e+=1)t.assets[e].layers&&s(t.assets[e].layers)}}}();var t={};return t.completeData=function(t,e){t.__complete||(s(t),r(t),i(t),a(t),function t(e,r,i){var s,a,n,o,h,l,p,m=e.length;for(a=0;a<m;a+=1)if("ks"in(s=e[a])&&!s.completed){if(s.completed=!0,s.tt&&(e[a-1].td=s.tt),s.hasMask){var f=s.masksProperties;for(o=f.length,n=0;n<o;n+=1)if(f[n].pt.k.i)u(f[n].pt.k);else for(l=f[n].pt.k.length,h=0;h<l;h+=1)f[n].pt.k[h].s&&u(f[n].pt.k[h].s[0]),f[n].pt.k[h].e&&u(f[n].pt.k[h].e[0])}0===s.ty?(s.layers=c(s.refId,r),t(s.layers,r,i)):4===s.ty?d(s.shapes):5==s.ty&&(0!==(p=s).t.a.length||"m"in p.t.p||(p.singleShape=!0))}}(t.layers,t.assets,e),t.__complete=!0)},t}var dataManager=dataFunctionManager(),FontManager=function(){var a={w:0,size:0,shapes:[]},t=[];function u(t,e){var r=createTag("span");r.style.fontFamily=e;var i=createTag("span");i.innerHTML="giItT1WQy@!-/#",r.style.position="absolute",r.style.left="-10000px",r.style.top="-10000px",r.style.fontSize="300px",r.style.fontVariant="normal",r.style.fontStyle="normal",r.style.fontWeight="normal",r.style.letterSpacing="0",r.appendChild(i),document.body.appendChild(r);var s=i.offsetWidth;return i.style.fontFamily=t+", "+e,{node:i,w:s,parent:r}}t=t.concat([2304,2305,2306,2307,2362,2363,2364,2364,2366,2367,2368,2369,2370,2371,2372,2373,2374,2375,2376,2377,2378,2379,2380,2381,2382,2383,2387,2388,2389,2390,2391,2402,2403]);var e=function(){this.fonts=[],this.chars=null,this.typekitLoaded=0,this.isLoaded=!1,this.initTime=Date.now()};return e.getCombinedCharacterCodes=function(){return t},e.prototype.addChars=function(t){if(t){this.chars||(this.chars=[]);var e,r,i,s=t.length,a=this.chars.length;for(e=0;e<s;e+=1){for(r=0,i=!1;r<a;)this.chars[r].style===t[e].style&&this.chars[r].fFamily===t[e].fFamily&&this.chars[r].ch===t[e].ch&&(i=!0),r+=1;i||(this.chars.push(t[e]),a+=1)}}},e.prototype.addFonts=function(t,e){if(t){if(this.chars)return this.isLoaded=!0,void(this.fonts=t.list);var r,i,s,a,n=t.list,o=n.length,h=o;for(r=0;r<o;r+=1){var l,p,m=!0;if(n[r].loaded=!1,n[r].monoCase=u(n[r].fFamily,"monospace"),n[r].sansCase=u(n[r].fFamily,"sans-serif"),n[r].fPath){if("p"===n[r].fOrigin||3===n[r].origin){if(0<(l=document.querySelectorAll('style[f-forigin="p"][f-family="'+n[r].fFamily+'"], style[f-origin="3"][f-family="'+n[r].fFamily+'"]')).length&&(m=!1),m){var f=createTag("style");f.setAttribute("f-forigin",n[r].fOrigin),f.setAttribute("f-origin",n[r].origin),f.setAttribute("f-family",n[r].fFamily),f.type="text/css",f.innerHTML="@font-face {font-family: "+n[r].fFamily+"; font-style: normal; src: url('"+n[r].fPath+"');}",e.appendChild(f)}}else if("g"===n[r].fOrigin||1===n[r].origin){for(l=document.querySelectorAll('link[f-forigin="g"], link[f-origin="1"]'),p=0;p<l.length;p++)-1!==l[p].href.indexOf(n[r].fPath)&&(m=!1);if(m){var c=createTag("link");c.setAttribute("f-forigin",n[r].fOrigin),c.setAttribute("f-origin",n[r].origin),c.type="text/css",c.rel="stylesheet",c.href=n[r].fPath,document.body.appendChild(c)}}else if("t"===n[r].fOrigin||2===n[r].origin){for(l=document.querySelectorAll('script[f-forigin="t"], script[f-origin="2"]'),p=0;p<l.length;p++)n[r].fPath===l[p].src&&(m=!1);if(m){var d=createTag("link");d.setAttribute("f-forigin",n[r].fOrigin),d.setAttribute("f-origin",n[r].origin),d.setAttribute("rel","stylesheet"),d.setAttribute("href",n[r].fPath),e.appendChild(d)}}}else n[r].loaded=!0,h-=1;n[r].helper=(i=e,s=n[r],a=void 0,(a=createNS("text")).style.fontSize="100px",a.setAttribute("font-family",s.fFamily),a.setAttribute("font-style",s.fStyle),a.setAttribute("font-weight",s.fWeight),a.textContent="1",s.fClass?(a.style.fontFamily="inherit",a.setAttribute("class",s.fClass)):a.style.fontFamily=s.fFamily,i.appendChild(a),createTag("canvas").getContext("2d").font=s.fWeight+" "+s.fStyle+" 100px "+s.fFamily,a),n[r].cache={},this.fonts.push(n[r])}0===h?this.isLoaded=!0:setTimeout(this.checkLoadedFonts.bind(this),100)}else this.isLoaded=!0},e.prototype.getCharData=function(t,e,r){for(var i=0,s=this.chars.length;i<s;){if(this.chars[i].ch===t&&this.chars[i].style===e&&this.chars[i].fFamily===r)return this.chars[i];i+=1}return("string"==typeof t&&13!==t.charCodeAt(0)||!t)&&console&&console.warn&&console.warn("Missing character from exported characters list: ",t,e,r),a},e.prototype.getFontByName=function(t){for(var e=0,r=this.fonts.length;e<r;){if(this.fonts[e].fName===t)return this.fonts[e];e+=1}return this.fonts[0]},e.prototype.measureText=function(t,e,r){var i=this.getFontByName(e),s=t.charCodeAt(0);if(!i.cache[s+1]){var a=i.helper;if(" "===t){a.textContent="|"+t+"|";var n=a.getComputedTextLength();a.textContent="||";var o=a.getComputedTextLength();i.cache[s+1]=(n-o)/100}else a.textContent=t,i.cache[s+1]=a.getComputedTextLength()/100}return i.cache[s+1]*r},e.prototype.checkLoadedFonts=function(){var t,e,r,i=this.fonts.length,s=i;for(t=0;t<i;t+=1)this.fonts[t].loaded?s-=1:"n"===this.fonts[t].fOrigin||0===this.fonts[t].origin?this.fonts[t].loaded=!0:(e=this.fonts[t].monoCase.node,r=this.fonts[t].monoCase.w,e.offsetWidth!==r?(s-=1,this.fonts[t].loaded=!0):(e=this.fonts[t].sansCase.node,r=this.fonts[t].sansCase.w,e.offsetWidth!==r&&(s-=1,this.fonts[t].loaded=!0)),this.fonts[t].loaded&&(this.fonts[t].sansCase.parent.parentNode.removeChild(this.fonts[t].sansCase.parent),this.fonts[t].monoCase.parent.parentNode.removeChild(this.fonts[t].monoCase.parent)));0!==s&&Date.now()-this.initTime<5e3?setTimeout(this.checkLoadedFonts.bind(this),20):setTimeout(function(){this.isLoaded=!0}.bind(this),0)},e.prototype.loaded=function(){return this.isLoaded},e}(),PropertyFactory=function(){var m=initialDefaultFrame,s=Math.abs;function f(t,e){var r,i=this.offsetTime;"multidimensional"===this.propType&&(r=createTypedArray("float32",this.pv.length));for(var s,a,n,o,h,l,p,m,f=e.lastIndex,c=f,d=this.keyframes.length-1,u=!0;u;){if(s=this.keyframes[c],a=this.keyframes[c+1],c===d-1&&t>=a.t-i){s.h&&(s=a),f=0;break}if(a.t-i>t){f=c;break}c<d-1?c+=1:(f=0,u=!1)}var y,g,v,b,E,x,P,S,_,A,C=a.t-i,T=s.t-i;if(s.to){s.bezierData||(s.bezierData=bez.buildBezierData(s.s,a.s||s.e,s.to,s.ti));var k=s.bezierData;if(C<=t||t<T){var M=C<=t?k.points.length-1:0;for(o=k.points[M].point.length,n=0;n<o;n+=1)r[n]=k.points[M].point[n]}else{s.__fnct?m=s.__fnct:(m=BezierFactory.getBezierEasing(s.o.x,s.o.y,s.i.x,s.i.y,s.n).get,s.__fnct=m),h=m((t-T)/(C-T));var D,w=k.segmentLength*h,F=e.lastFrame<t&&e._lastKeyframeIndex===c?e._lastAddedLength:0;for(p=e.lastFrame<t&&e._lastKeyframeIndex===c?e._lastPoint:0,u=!0,l=k.points.length;u;){if(F+=k.points[p].partialLength,0===w||0===h||p===k.points.length-1){for(o=k.points[p].point.length,n=0;n<o;n+=1)r[n]=k.points[p].point[n];break}if(F<=w&&w<F+k.points[p+1].partialLength){for(D=(w-F)/k.points[p+1].partialLength,o=k.points[p].point.length,n=0;n<o;n+=1)r[n]=k.points[p].point[n]+(k.points[p+1].point[n]-k.points[p].point[n])*D;break}p<l-1?p+=1:u=!1}e._lastPoint=p,e._lastAddedLength=F-k.points[p].partialLength,e._lastKeyframeIndex=c}}else{var I,V,R,B,L;if(d=s.s.length,y=a.s||s.e,this.sh&&1!==s.h)if(C<=t)r[0]=y[0],r[1]=y[1],r[2]=y[2];else if(t<=T)r[0]=s.s[0],r[1]=s.s[1],r[2]=s.s[2];else{var G=N(s.s),z=N(y);g=r,v=function(t,e,r){var i,s,a,n,o,h=[],l=t[0],p=t[1],m=t[2],f=t[3],c=e[0],d=e[1],u=e[2],y=e[3];(s=l*c+p*d+m*u+f*y)<0&&(s=-s,c=-c,d=-d,u=-u,y=-y);o=1e-6<1-s?(i=Math.acos(s),a=Math.sin(i),n=Math.sin((1-r)*i)/a,Math.sin(r*i)/a):(n=1-r,r);return h[0]=n*l+o*c,h[1]=n*p+o*d,h[2]=n*m+o*u,h[3]=n*f+o*y,h}(G,z,(t-T)/(C-T)),b=v[0],E=v[1],x=v[2],P=v[3],S=Math.atan2(2*E*P-2*b*x,1-2*E*E-2*x*x),_=Math.asin(2*b*E+2*x*P),A=Math.atan2(2*b*P-2*E*x,1-2*b*b-2*x*x),g[0]=S/degToRads,g[1]=_/degToRads,g[2]=A/degToRads}else for(c=0;c<d;c+=1)1!==s.h&&(h=C<=t?1:t<T?0:(s.o.x.constructor===Array?(s.__fnct||(s.__fnct=[]),s.__fnct[c]?m=s.__fnct[c]:(I=void 0===s.o.x[c]?s.o.x[0]:s.o.x[c],V=void 0===s.o.y[c]?s.o.y[0]:s.o.y[c],R=void 0===s.i.x[c]?s.i.x[0]:s.i.x[c],B=void 0===s.i.y[c]?s.i.y[0]:s.i.y[c],m=BezierFactory.getBezierEasing(I,V,R,B).get,s.__fnct[c]=m)):s.__fnct?m=s.__fnct:(I=s.o.x,V=s.o.y,R=s.i.x,B=s.i.y,m=BezierFactory.getBezierEasing(I,V,R,B).get,s.__fnct=m),m((t-T)/(C-T)))),y=a.s||s.e,L=1===s.h?s.s[c]:s.s[c]+(y[c]-s.s[c])*h,"multidimensional"===this.propType?r[c]=L:r=L}return e.lastIndex=f,r}function N(t){var e=t[0]*degToRads,r=t[1]*degToRads,i=t[2]*degToRads,s=Math.cos(e/2),a=Math.cos(r/2),n=Math.cos(i/2),o=Math.sin(e/2),h=Math.sin(r/2),l=Math.sin(i/2);return[o*h*n+s*a*l,o*a*n+s*h*l,s*h*n-o*a*l,s*a*n-o*h*l]}function c(){var t=this.comp.renderedFrame-this.offsetTime,e=this.keyframes[0].t-this.offsetTime,r=this.keyframes[this.keyframes.length-1].t-this.offsetTime;if(!(t===this._caching.lastFrame||this._caching.lastFrame!==m&&(this._caching.lastFrame>=r&&r<=t||this._caching.lastFrame<e&&t<e))){this._caching.lastFrame>=t&&(this._caching._lastKeyframeIndex=-1,this._caching.lastIndex=0);var i=this.interpolateValue(t,this._caching);this.pv=i}return this._caching.lastFrame=t,this.pv}function d(t){var e;if("unidimensional"===this.propType)e=t*this.mult,1e-5<s(this.v-e)&&(this.v=e,this._mdf=!0);else for(var r=0,i=this.v.length;r<i;)e=t[r]*this.mult,1e-5<s(this.v[r]-e)&&(this.v[r]=e,this._mdf=!0),r+=1}function u(){if(this.elem.globalData.frameId!==this.frameId&&this.effectsSequence.length)if(this.lock)this.setVValue(this.pv);else{this.lock=!0,this._mdf=this._isFirstFrame;var t,e=this.effectsSequence.length,r=this.kf?this.pv:this.data.k;for(t=0;t<e;t+=1)r=this.effectsSequence[t](r);this.setVValue(r),this._isFirstFrame=!1,this.lock=!1,this.frameId=this.elem.globalData.frameId}}function y(t){this.effectsSequence.push(t),this.container.addDynamicProperty(this)}function n(t,e,r,i){this.propType="unidimensional",this.mult=r||1,this.data=e,this.v=r?e.k*r:e.k,this.pv=e.k,this._mdf=!1,this.elem=t,this.container=i,this.comp=t.comp,this.k=!1,this.kf=!1,this.vel=0,this.effectsSequence=[],this._isFirstFrame=!0,this.getValue=u,this.setVValue=d,this.addEffect=y}function o(t,e,r,i){this.propType="multidimensional",this.mult=r||1,this.data=e,this._mdf=!1,this.elem=t,this.container=i,this.comp=t.comp,this.k=!1,this.kf=!1,this.frameId=-1;var s,a=e.k.length;this.v=createTypedArray("float32",a),this.pv=createTypedArray("float32",a);createTypedArray("float32",a);for(this.vel=createTypedArray("float32",a),s=0;s<a;s+=1)this.v[s]=e.k[s]*this.mult,this.pv[s]=e.k[s];this._isFirstFrame=!0,this.effectsSequence=[],this.getValue=u,this.setVValue=d,this.addEffect=y}function h(t,e,r,i){this.propType="unidimensional",this.keyframes=e.k,this.offsetTime=t.data.st,this.frameId=-1,this._caching={lastFrame:m,lastIndex:0,value:0,_lastKeyframeIndex:-1},this.k=!0,this.kf=!0,this.data=e,this.mult=r||1,this.elem=t,this.container=i,this.comp=t.comp,this.v=m,this.pv=m,this._isFirstFrame=!0,this.getValue=u,this.setVValue=d,this.interpolateValue=f,this.effectsSequence=[c.bind(this)],this.addEffect=y}function l(t,e,r,i){this.propType="multidimensional";var s,a,n,o,h,l=e.k.length;for(s=0;s<l-1;s+=1)e.k[s].to&&e.k[s].s&&e.k[s].e&&(a=e.k[s].s,n=e.k[s].e,o=e.k[s].to,h=e.k[s].ti,(2===a.length&&(a[0]!==n[0]||a[1]!==n[1])&&bez.pointOnLine2D(a[0],a[1],n[0],n[1],a[0]+o[0],a[1]+o[1])&&bez.pointOnLine2D(a[0],a[1],n[0],n[1],n[0]+h[0],n[1]+h[1])||3===a.length&&(a[0]!==n[0]||a[1]!==n[1]||a[2]!==n[2])&&bez.pointOnLine3D(a[0],a[1],a[2],n[0],n[1],n[2],a[0]+o[0],a[1]+o[1],a[2]+o[2])&&bez.pointOnLine3D(a[0],a[1],a[2],n[0],n[1],n[2],n[0]+h[0],n[1]+h[1],n[2]+h[2]))&&(e.k[s].to=null,e.k[s].ti=null),a[0]===n[0]&&a[1]===n[1]&&0===o[0]&&0===o[1]&&0===h[0]&&0===h[1]&&(2===a.length||a[2]===n[2]&&0===o[2]&&0===h[2])&&(e.k[s].to=null,e.k[s].ti=null));this.effectsSequence=[c.bind(this)],this.keyframes=e.k,this.offsetTime=t.data.st,this.k=!0,this.kf=!0,this._isFirstFrame=!0,this.mult=r||1,this.elem=t,this.container=i,this.comp=t.comp,this.getValue=u,this.setVValue=d,this.interpolateValue=f,this.frameId=-1;var p=e.k[0].s.length;for(this.v=createTypedArray("float32",p),this.pv=createTypedArray("float32",p),s=0;s<p;s+=1)this.v[s]=m,this.pv[s]=m;this._caching={lastFrame:m,lastIndex:0,value:createTypedArray("float32",p)},this.addEffect=y}return{getProp:function(t,e,r,i,s){var a;if(e.k.length)if("number"==typeof e.k[0])a=new o(t,e,i,s);else switch(r){case 0:a=new h(t,e,i,s);break;case 1:a=new l(t,e,i,s)}else a=new n(t,e,i,s);return a.effectsSequence.length&&s.addDynamicProperty(a),a}}}(),TransformPropertyFactory=function(){function i(t,e,r){if(this.elem=t,this.frameId=-1,this.propType="transform",this.data=e,this.v=new Matrix,this.pre=new Matrix,this.appliedTransformations=0,this.initDynamicPropertyContainer(r||t),e.p&&e.p.s?(this.px=PropertyFactory.getProp(t,e.p.x,0,0,this),this.py=PropertyFactory.getProp(t,e.p.y,0,0,this),e.p.z&&(this.pz=PropertyFactory.getProp(t,e.p.z,0,0,this))):this.p=PropertyFactory.getProp(t,e.p||{k:[0,0,0]},1,0,this),e.rx){if(this.rx=PropertyFactory.getProp(t,e.rx,0,degToRads,this),this.ry=PropertyFactory.getProp(t,e.ry,0,degToRads,this),this.rz=PropertyFactory.getProp(t,e.rz,0,degToRads,this),e.or.k[0].ti){var i,s=e.or.k.length;for(i=0;i<s;i+=1)e.or.k[i].to=e.or.k[i].ti=null}this.or=PropertyFactory.getProp(t,e.or,1,degToRads,this),this.or.sh=!0}else this.r=PropertyFactory.getProp(t,e.r||{k:0},0,degToRads,this);e.sk&&(this.sk=PropertyFactory.getProp(t,e.sk,0,degToRads,this),this.sa=PropertyFactory.getProp(t,e.sa,0,degToRads,this)),this.a=PropertyFactory.getProp(t,e.a||{k:[0,0,0]},1,0,this),this.s=PropertyFactory.getProp(t,e.s||{k:[100,100,100]},1,.01,this),e.o?this.o=PropertyFactory.getProp(t,e.o,0,.01,t):this.o={_mdf:!1,v:1},this._isDirty=!0,this.dynamicProperties.length||this.getValue(!0)}return i.prototype={applyToMatrix:function(t){var e=this._mdf;this.iterateDynamicProperties(),this._mdf=this._mdf||e,this.a&&t.translate(-this.a.v[0],-this.a.v[1],this.a.v[2]),this.s&&t.scale(this.s.v[0],this.s.v[1],this.s.v[2]),this.sk&&t.skewFromAxis(-this.sk.v,this.sa.v),this.r?t.rotate(-this.r.v):t.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]),this.data.p.s?this.data.p.z?t.translate(this.px.v,this.py.v,-this.pz.v):t.translate(this.px.v,this.py.v,0):t.translate(this.p.v[0],this.p.v[1],-this.p.v[2])},getValue:function(t){if(this.elem.globalData.frameId!==this.frameId){if(this._isDirty&&(this.precalculateMatrix(),this._isDirty=!1),this.iterateDynamicProperties(),this._mdf||t){if(this.v.cloneFromProps(this.pre.props),this.appliedTransformations<1&&this.v.translate(-this.a.v[0],-this.a.v[1],this.a.v[2]),this.appliedTransformations<2&&this.v.scale(this.s.v[0],this.s.v[1],this.s.v[2]),this.sk&&this.appliedTransformations<3&&this.v.skewFromAxis(-this.sk.v,this.sa.v),this.r&&this.appliedTransformations<4?this.v.rotate(-this.r.v):!this.r&&this.appliedTransformations<4&&this.v.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]),this.autoOriented){var e,r,i=this.elem.globalData.frameRate;if(this.p&&this.p.keyframes&&this.p.getValueAtTime)r=this.p._caching.lastFrame+this.p.offsetTime<=this.p.keyframes[0].t?(e=this.p.getValueAtTime((this.p.keyframes[0].t+.01)/i,0),this.p.getValueAtTime(this.p.keyframes[0].t/i,0)):this.p._caching.lastFrame+this.p.offsetTime>=this.p.keyframes[this.p.keyframes.length-1].t?(e=this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length-1].t/i,0),this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length-1].t-.01)/i,0)):(e=this.p.pv,this.p.getValueAtTime((this.p._caching.lastFrame+this.p.offsetTime-.01)/i,this.p.offsetTime));else if(this.px&&this.px.keyframes&&this.py.keyframes&&this.px.getValueAtTime&&this.py.getValueAtTime){e=[],r=[];var s=this.px,a=this.py;s._caching.lastFrame+s.offsetTime<=s.keyframes[0].t?(e[0]=s.getValueAtTime((s.keyframes[0].t+.01)/i,0),e[1]=a.getValueAtTime((a.keyframes[0].t+.01)/i,0),r[0]=s.getValueAtTime(s.keyframes[0].t/i,0),r[1]=a.getValueAtTime(a.keyframes[0].t/i,0)):s._caching.lastFrame+s.offsetTime>=s.keyframes[s.keyframes.length-1].t?(e[0]=s.getValueAtTime(s.keyframes[s.keyframes.length-1].t/i,0),e[1]=a.getValueAtTime(a.keyframes[a.keyframes.length-1].t/i,0),r[0]=s.getValueAtTime((s.keyframes[s.keyframes.length-1].t-.01)/i,0),r[1]=a.getValueAtTime((a.keyframes[a.keyframes.length-1].t-.01)/i,0)):(e=[s.pv,a.pv],r[0]=s.getValueAtTime((s._caching.lastFrame+s.offsetTime-.01)/i,s.offsetTime),r[1]=a.getValueAtTime((a._caching.lastFrame+a.offsetTime-.01)/i,a.offsetTime))}this.v.rotate(-Math.atan2(e[1]-r[1],e[0]-r[0]))}this.data.p&&this.data.p.s?this.data.p.z?this.v.translate(this.px.v,this.py.v,-this.pz.v):this.v.translate(this.px.v,this.py.v,0):this.v.translate(this.p.v[0],this.p.v[1],-this.p.v[2])}this.frameId=this.elem.globalData.frameId}},precalculateMatrix:function(){if(!this.a.k&&(this.pre.translate(-this.a.v[0],-this.a.v[1],this.a.v[2]),this.appliedTransformations=1,!this.s.effectsSequence.length)){if(this.pre.scale(this.s.v[0],this.s.v[1],this.s.v[2]),this.appliedTransformations=2,this.sk){if(this.sk.effectsSequence.length||this.sa.effectsSequence.length)return;this.pre.skewFromAxis(-this.sk.v,this.sa.v),this.appliedTransformations=3}if(this.r){if(this.r.effectsSequence.length)return;this.pre.rotate(-this.r.v),this.appliedTransformations=4}else this.rz.effectsSequence.length||this.ry.effectsSequence.length||this.rx.effectsSequence.length||this.or.effectsSequence.length||(this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]),this.appliedTransformations=4)}},autoOrient:function(){}},extendPrototype([DynamicPropertyContainer],i),i.prototype.addDynamicProperty=function(t){this._addDynamicProperty(t),this.elem.addDynamicProperty(t),this._isDirty=!0},i.prototype._addDynamicProperty=DynamicPropertyContainer.prototype.addDynamicProperty,{getTransformProperty:function(t,e,r){return new i(t,e,r)}}}();function ShapePath(){this.c=!1,this._length=0,this._maxLength=8,this.v=createSizedArray(this._maxLength),this.o=createSizedArray(this._maxLength),this.i=createSizedArray(this._maxLength)}ShapePath.prototype.setPathData=function(t,e){this.c=t,this.setLength(e);for(var r=0;r<e;)this.v[r]=point_pool.newElement(),this.o[r]=point_pool.newElement(),this.i[r]=point_pool.newElement(),r+=1},ShapePath.prototype.setLength=function(t){for(;this._maxLength<t;)this.doubleArrayLength();this._length=t},ShapePath.prototype.doubleArrayLength=function(){this.v=this.v.concat(createSizedArray(this._maxLength)),this.i=this.i.concat(createSizedArray(this._maxLength)),this.o=this.o.concat(createSizedArray(this._maxLength)),this._maxLength*=2},ShapePath.prototype.setXYAt=function(t,e,r,i,s){var a;switch(this._length=Math.max(this._length,i+1),this._length>=this._maxLength&&this.doubleArrayLength(),r){case"v":a=this.v;break;case"i":a=this.i;break;case"o":a=this.o}(!a[i]||a[i]&&!s)&&(a[i]=point_pool.newElement()),a[i][0]=t,a[i][1]=e},ShapePath.prototype.setTripleAt=function(t,e,r,i,s,a,n,o){this.setXYAt(t,e,"v",n,o),this.setXYAt(r,i,"o",n,o),this.setXYAt(s,a,"i",n,o)},ShapePath.prototype.reverse=function(){var t=new ShapePath;t.setPathData(this.c,this._length);var e=this.v,r=this.o,i=this.i,s=0;this.c&&(t.setTripleAt(e[0][0],e[0][1],i[0][0],i[0][1],r[0][0],r[0][1],0,!1),s=1);var a,n=this._length-1,o=this._length;for(a=s;a<o;a+=1)t.setTripleAt(e[n][0],e[n][1],i[n][0],i[n][1],r[n][0],r[n][1],a,!1),n-=1;return t};var ShapePropertyFactory=function(){var s=-999999;function t(t,e,r){var i,s,a,n,o,h,l,p,m,f=r.lastIndex,c=this.keyframes;if(t<c[0].t-this.offsetTime)i=c[0].s[0],a=!0,f=0;else if(t>=c[c.length-1].t-this.offsetTime)i=c[c.length-1].s?c[c.length-1].s[0]:c[c.length-2].e[0],a=!0;else{for(var d,u,y=f,g=c.length-1,v=!0;v&&(d=c[y],!((u=c[y+1]).t-this.offsetTime>t));)y<g-1?y+=1:v=!1;if(f=y,!(a=1===d.h)){if(t>=u.t-this.offsetTime)p=1;else if(t<d.t-this.offsetTime)p=0;else{var b;d.__fnct?b=d.__fnct:(b=BezierFactory.getBezierEasing(d.o.x,d.o.y,d.i.x,d.i.y).get,d.__fnct=b),p=b((t-(d.t-this.offsetTime))/(u.t-this.offsetTime-(d.t-this.offsetTime)))}s=u.s?u.s[0]:d.e[0]}i=d.s[0]}for(h=e._length,l=i.i[0].length,r.lastIndex=f,n=0;n<h;n+=1)for(o=0;o<l;o+=1)m=a?i.i[n][o]:i.i[n][o]+(s.i[n][o]-i.i[n][o])*p,e.i[n][o]=m,m=a?i.o[n][o]:i.o[n][o]+(s.o[n][o]-i.o[n][o])*p,e.o[n][o]=m,m=a?i.v[n][o]:i.v[n][o]+(s.v[n][o]-i.v[n][o])*p,e.v[n][o]=m}function a(){this.paths=this.localShapeCollection}function e(t){(function(t,e){if(t._length!==e._length||t.c!==e.c)return!1;var r,i=t._length;for(r=0;r<i;r+=1)if(t.v[r][0]!==e.v[r][0]||t.v[r][1]!==e.v[r][1]||t.o[r][0]!==e.o[r][0]||t.o[r][1]!==e.o[r][1]||t.i[r][0]!==e.i[r][0]||t.i[r][1]!==e.i[r][1])return!1;return!0})(this.v,t)||(this.v=shape_pool.clone(t),this.localShapeCollection.releaseShapes(),this.localShapeCollection.addShape(this.v),this._mdf=!0,this.paths=this.localShapeCollection)}function r(){if(this.elem.globalData.frameId!==this.frameId)if(this.effectsSequence.length)if(this.lock)this.setVValue(this.pv);else{this.lock=!0,this._mdf=!1;var t,e=this.kf?this.pv:this.data.ks?this.data.ks.k:this.data.pt.k,r=this.effectsSequence.length;for(t=0;t<r;t+=1)e=this.effectsSequence[t](e);this.setVValue(e),this.lock=!1,this.frameId=this.elem.globalData.frameId}else this._mdf=!1}function n(t,e,r){this.propType="shape",this.comp=t.comp,this.container=t,this.elem=t,this.data=e,this.k=!1,this.kf=!1,this._mdf=!1;var i=3===r?e.pt.k:e.ks.k;this.v=shape_pool.clone(i),this.pv=shape_pool.clone(this.v),this.localShapeCollection=shapeCollection_pool.newShapeCollection(),this.paths=this.localShapeCollection,this.paths.addShape(this.v),this.reset=a,this.effectsSequence=[]}function i(t){this.effectsSequence.push(t),this.container.addDynamicProperty(this)}function o(t,e,r){this.propType="shape",this.comp=t.comp,this.elem=t,this.container=t,this.offsetTime=t.data.st,this.keyframes=3===r?e.pt.k:e.ks.k,this.k=!0,this.kf=!0;var i=this.keyframes[0].s[0].i.length;this.keyframes[0].s[0].i[0].length;this.v=shape_pool.newElement(),this.v.setPathData(this.keyframes[0].s[0].c,i),this.pv=shape_pool.clone(this.v),this.localShapeCollection=shapeCollection_pool.newShapeCollection(),this.paths=this.localShapeCollection,this.paths.addShape(this.v),this.lastFrame=s,this.reset=a,this._caching={lastFrame:s,lastIndex:0},this.effectsSequence=[function(){var t=this.comp.renderedFrame-this.offsetTime,e=this.keyframes[0].t-this.offsetTime,r=this.keyframes[this.keyframes.length-1].t-this.offsetTime,i=this._caching.lastFrame;return i!==s&&(i<e&&t<e||r<i&&r<t)||(this._caching.lastIndex=i<t?this._caching.lastIndex:0,this.interpolateShape(t,this.pv,this._caching)),this._caching.lastFrame=t,this.pv}.bind(this)]}n.prototype.interpolateShape=t,n.prototype.getValue=r,n.prototype.setVValue=e,n.prototype.addEffect=i,o.prototype.getValue=r,o.prototype.interpolateShape=t,o.prototype.setVValue=e,o.prototype.addEffect=i;var h=function(){var n=roundCorner;function t(t,e){this.v=shape_pool.newElement(),this.v.setPathData(!0,4),this.localShapeCollection=shapeCollection_pool.newShapeCollection(),this.paths=this.localShapeCollection,this.localShapeCollection.addShape(this.v),this.d=e.d,this.elem=t,this.comp=t.comp,this.frameId=-1,this.initDynamicPropertyContainer(t),this.p=PropertyFactory.getProp(t,e.p,1,0,this),this.s=PropertyFactory.getProp(t,e.s,1,0,this),this.dynamicProperties.length?this.k=!0:(this.k=!1,this.convertEllToPath())}return t.prototype={reset:a,getValue:function(){this.elem.globalData.frameId!==this.frameId&&(this.frameId=this.elem.globalData.frameId,this.iterateDynamicProperties(),this._mdf&&this.convertEllToPath())},convertEllToPath:function(){var t=this.p.v[0],e=this.p.v[1],r=this.s.v[0]/2,i=this.s.v[1]/2,s=3!==this.d,a=this.v;a.v[0][0]=t,a.v[0][1]=e-i,a.v[1][0]=s?t+r:t-r,a.v[1][1]=e,a.v[2][0]=t,a.v[2][1]=e+i,a.v[3][0]=s?t-r:t+r,a.v[3][1]=e,a.i[0][0]=s?t-r*n:t+r*n,a.i[0][1]=e-i,a.i[1][0]=s?t+r:t-r,a.i[1][1]=e-i*n,a.i[2][0]=s?t+r*n:t-r*n,a.i[2][1]=e+i,a.i[3][0]=s?t-r:t+r,a.i[3][1]=e+i*n,a.o[0][0]=s?t+r*n:t-r*n,a.o[0][1]=e-i,a.o[1][0]=s?t+r:t-r,a.o[1][1]=e+i*n,a.o[2][0]=s?t-r*n:t+r*n,a.o[2][1]=e+i,a.o[3][0]=s?t-r:t+r,a.o[3][1]=e-i*n}},extendPrototype([DynamicPropertyContainer],t),t}(),l=function(){function t(t,e){this.v=shape_pool.newElement(),this.v.setPathData(!0,0),this.elem=t,this.comp=t.comp,this.data=e,this.frameId=-1,this.d=e.d,this.initDynamicPropertyContainer(t),1===e.sy?(this.ir=PropertyFactory.getProp(t,e.ir,0,0,this),this.is=PropertyFactory.getProp(t,e.is,0,.01,this),this.convertToPath=this.convertStarToPath):this.convertToPath=this.convertPolygonToPath,this.pt=PropertyFactory.getProp(t,e.pt,0,0,this),this.p=PropertyFactory.getProp(t,e.p,1,0,this),this.r=PropertyFactory.getProp(t,e.r,0,degToRads,this),this.or=PropertyFactory.getProp(t,e.or,0,0,this),this.os=PropertyFactory.getProp(t,e.os,0,.01,this),this.localShapeCollection=shapeCollection_pool.newShapeCollection(),this.localShapeCollection.addShape(this.v),this.paths=this.localShapeCollection,this.dynamicProperties.length?this.k=!0:(this.k=!1,this.convertToPath())}return t.prototype={reset:a,getValue:function(){this.elem.globalData.frameId!==this.frameId&&(this.frameId=this.elem.globalData.frameId,this.iterateDynamicProperties(),this._mdf&&this.convertToPath())},convertStarToPath:function(){var t,e,r,i,s=2*Math.floor(this.pt.v),a=2*Math.PI/s,n=!0,o=this.or.v,h=this.ir.v,l=this.os.v,p=this.is.v,m=2*Math.PI*o/(2*s),f=2*Math.PI*h/(2*s),c=-Math.PI/2;c+=this.r.v;var d=3===this.data.d?-1:1;for(t=this.v._length=0;t<s;t+=1){r=n?l:p,i=n?m:f;var u=(e=n?o:h)*Math.cos(c),y=e*Math.sin(c),g=0===u&&0===y?0:y/Math.sqrt(u*u+y*y),v=0===u&&0===y?0:-u/Math.sqrt(u*u+y*y);u+=+this.p.v[0],y+=+this.p.v[1],this.v.setTripleAt(u,y,u-g*i*r*d,y-v*i*r*d,u+g*i*r*d,y+v*i*r*d,t,!0),n=!n,c+=a*d}},convertPolygonToPath:function(){var t,e=Math.floor(this.pt.v),r=2*Math.PI/e,i=this.or.v,s=this.os.v,a=2*Math.PI*i/(4*e),n=-Math.PI/2,o=3===this.data.d?-1:1;for(n+=this.r.v,t=this.v._length=0;t<e;t+=1){var h=i*Math.cos(n),l=i*Math.sin(n),p=0===h&&0===l?0:l/Math.sqrt(h*h+l*l),m=0===h&&0===l?0:-h/Math.sqrt(h*h+l*l);h+=+this.p.v[0],l+=+this.p.v[1],this.v.setTripleAt(h,l,h-p*a*s*o,l-m*a*s*o,h+p*a*s*o,l+m*a*s*o,t,!0),n+=r*o}this.paths.length=0,this.paths[0]=this.v}},extendPrototype([DynamicPropertyContainer],t),t}(),p=function(){function t(t,e){this.v=shape_pool.newElement(),this.v.c=!0,this.localShapeCollection=shapeCollection_pool.newShapeCollection(),this.localShapeCollection.addShape(this.v),this.paths=this.localShapeCollection,this.elem=t,this.comp=t.comp,this.frameId=-1,this.d=e.d,this.initDynamicPropertyContainer(t),this.p=PropertyFactory.getProp(t,e.p,1,0,this),this.s=PropertyFactory.getProp(t,e.s,1,0,this),this.r=PropertyFactory.getProp(t,e.r,0,0,this),this.dynamicProperties.length?this.k=!0:(this.k=!1,this.convertRectToPath())}return t.prototype={convertRectToPath:function(){var t=this.p.v[0],e=this.p.v[1],r=this.s.v[0]/2,i=this.s.v[1]/2,s=bm_min(r,i,this.r.v),a=s*(1-roundCorner);this.v._length=0,2===this.d||1===this.d?(this.v.setTripleAt(t+r,e-i+s,t+r,e-i+s,t+r,e-i+a,0,!0),this.v.setTripleAt(t+r,e+i-s,t+r,e+i-a,t+r,e+i-s,1,!0),0!==s?(this.v.setTripleAt(t+r-s,e+i,t+r-s,e+i,t+r-a,e+i,2,!0),this.v.setTripleAt(t-r+s,e+i,t-r+a,e+i,t-r+s,e+i,3,!0),this.v.setTripleAt(t-r,e+i-s,t-r,e+i-s,t-r,e+i-a,4,!0),this.v.setTripleAt(t-r,e-i+s,t-r,e-i+a,t-r,e-i+s,5,!0),this.v.setTripleAt(t-r+s,e-i,t-r+s,e-i,t-r+a,e-i,6,!0),this.v.setTripleAt(t+r-s,e-i,t+r-a,e-i,t+r-s,e-i,7,!0)):(this.v.setTripleAt(t-r,e+i,t-r+a,e+i,t-r,e+i,2),this.v.setTripleAt(t-r,e-i,t-r,e-i+a,t-r,e-i,3))):(this.v.setTripleAt(t+r,e-i+s,t+r,e-i+a,t+r,e-i+s,0,!0),0!==s?(this.v.setTripleAt(t+r-s,e-i,t+r-s,e-i,t+r-a,e-i,1,!0),this.v.setTripleAt(t-r+s,e-i,t-r+a,e-i,t-r+s,e-i,2,!0),this.v.setTripleAt(t-r,e-i+s,t-r,e-i+s,t-r,e-i+a,3,!0),this.v.setTripleAt(t-r,e+i-s,t-r,e+i-a,t-r,e+i-s,4,!0),this.v.setTripleAt(t-r+s,e+i,t-r+s,e+i,t-r+a,e+i,5,!0),this.v.setTripleAt(t+r-s,e+i,t+r-a,e+i,t+r-s,e+i,6,!0),this.v.setTripleAt(t+r,e+i-s,t+r,e+i-s,t+r,e+i-a,7,!0)):(this.v.setTripleAt(t-r,e-i,t-r+a,e-i,t-r,e-i,1,!0),this.v.setTripleAt(t-r,e+i,t-r,e+i-a,t-r,e+i,2,!0),this.v.setTripleAt(t+r,e+i,t+r-a,e+i,t+r,e+i,3,!0)))},getValue:function(t){this.elem.globalData.frameId!==this.frameId&&(this.frameId=this.elem.globalData.frameId,this.iterateDynamicProperties(),this._mdf&&this.convertRectToPath())},reset:a},extendPrototype([DynamicPropertyContainer],t),t}();var m={getShapeProp:function(t,e,r){var i;return 3===r||4===r?i=(3===r?e.pt:e.ks).k.length?new o(t,e,r):new n(t,e,r):5===r?i=new p(t,e):6===r?i=new h(t,e):7===r&&(i=new l(t,e)),i.k&&t.addDynamicProperty(i),i},getConstructorFunction:function(){return n},getKeyframedConstructorFunction:function(){return o}};return m}(),ShapeModifiers=(Yr={},Zr={},Yr.registerModifier=function(t,e){Zr[t]||(Zr[t]=e)},Yr.getModifier=function(t,e,r){return new Zr[t](e,r)},Yr),Yr,Zr;function ShapeModifier(){}function TrimModifier(){}function RoundCornersModifier(){}function RepeaterModifier(){}function ShapeCollection(){this._length=0,this._maxLength=4,this.shapes=createSizedArray(this._maxLength)}function DashProperty(t,e,r,i){this.elem=t,this.frameId=-1,this.dataProps=createSizedArray(e.length),this.renderer=r,this.k=!1,this.dashStr="",this.dashArray=createTypedArray("float32",e.length?e.length-1:0),this.dashoffset=createTypedArray("float32",1),this.initDynamicPropertyContainer(i);var s,a,n=e.length||0;for(s=0;s<n;s+=1)a=PropertyFactory.getProp(t,e[s].v,0,0,this),this.k=a.k||this.k,this.dataProps[s]={n:e[s].n,p:a};this.k||this.getValue(!0),this._isAnimated=this.k}function GradientProperty(t,e,r){this.data=e,this.c=createTypedArray("uint8c",4*e.p);var i=e.k.k[0].s?e.k.k[0].s.length-4*e.p:e.k.k.length-4*e.p;this.o=createTypedArray("float32",i),this._cmdf=!1,this._omdf=!1,this._collapsable=this.checkCollapsable(),this._hasOpacity=i,this.initDynamicPropertyContainer(r),this.prop=PropertyFactory.getProp(t,e.k,1,null,this),this.k=this.prop.k,this.getValue(!0)}ShapeModifier.prototype.initModifierProperties=function(){},ShapeModifier.prototype.addShapeToModifier=function(){},ShapeModifier.prototype.addShape=function(t){if(!this.closed){t.sh.container.addDynamicProperty(t.sh);var e={shape:t.sh,data:t,localShapeCollection:shapeCollection_pool.newShapeCollection()};this.shapes.push(e),this.addShapeToModifier(e),this._isAnimated&&t.setAsAnimated()}},ShapeModifier.prototype.init=function(t,e){this.shapes=[],this.elem=t,this.initDynamicPropertyContainer(t),this.initModifierProperties(t,e),this.frameId=initialDefaultFrame,this.closed=!1,this.k=!1,this.dynamicProperties.length?this.k=!0:this.getValue(!0)},ShapeModifier.prototype.processKeys=function(){this.elem.globalData.frameId!==this.frameId&&(this.frameId=this.elem.globalData.frameId,this.iterateDynamicProperties())},extendPrototype([DynamicPropertyContainer],ShapeModifier),extendPrototype([ShapeModifier],TrimModifier),TrimModifier.prototype.initModifierProperties=function(t,e){this.s=PropertyFactory.getProp(t,e.s,0,.01,this),this.e=PropertyFactory.getProp(t,e.e,0,.01,this),this.o=PropertyFactory.getProp(t,e.o,0,0,this),this.sValue=0,this.eValue=0,this.getValue=this.processKeys,this.m=e.m,this._isAnimated=!!this.s.effectsSequence.length||!!this.e.effectsSequence.length||!!this.o.effectsSequence.length},TrimModifier.prototype.addShapeToModifier=function(t){t.pathsData=[]},TrimModifier.prototype.calculateShapeEdges=function(t,e,r,i,s){var a=[];e<=1?a.push({s:t,e:e}):1<=t?a.push({s:t-1,e:e-1}):(a.push({s:t,e:1}),a.push({s:0,e:e-1}));var n,o,h=[],l=a.length;for(n=0;n<l;n+=1){var p,m;if((o=a[n]).e*s<i||o.s*s>i+r);else p=o.s*s<=i?0:(o.s*s-i)/r,m=o.e*s>=i+r?1:(o.e*s-i)/r,h.push([p,m])}return h.length||h.push([0,0]),h},TrimModifier.prototype.releasePathsData=function(t){var e,r=t.length;for(e=0;e<r;e+=1)segments_length_pool.release(t[e]);return t.length=0,t},TrimModifier.prototype.processShapes=function(t){var e,r,i;if(this._mdf||t){var s=this.o.v%360/360;if(s<0&&(s+=1),e=(1<this.s.v?1:this.s.v<0?0:this.s.v)+s,(r=(1<this.e.v?1:this.e.v<0?0:this.e.v)+s)<e){var a=e;e=r,r=a}e=1e-4*Math.round(1e4*e),r=1e-4*Math.round(1e4*r),this.sValue=e,this.eValue=r}else e=this.sValue,r=this.eValue;var n,o,h,l,p,m,f=this.shapes.length,c=0;if(r===e)for(n=0;n<f;n+=1)this.shapes[n].localShapeCollection.releaseShapes(),this.shapes[n].shape._mdf=!0,this.shapes[n].shape.paths=this.shapes[n].localShapeCollection;else if(1===r&&0===e||0===r&&1===e){if(this._mdf)for(n=0;n<f;n+=1)this.shapes[n].pathsData.length=0,this.shapes[n].shape._mdf=!0}else{var d,u,y=[];for(n=0;n<f;n+=1)if((d=this.shapes[n]).shape._mdf||this._mdf||t||2===this.m){if(h=(i=d.shape.paths)._length,m=0,!d.shape._mdf&&d.pathsData.length)m=d.totalShapeLength;else{for(l=this.releasePathsData(d.pathsData),o=0;o<h;o+=1)p=bez.getSegmentsLength(i.shapes[o]),l.push(p),m+=p.totalLength;d.totalShapeLength=m,d.pathsData=l}c+=m,d.shape._mdf=!0}else d.shape.paths=d.localShapeCollection;var g,v=e,b=r,E=0;for(n=f-1;0<=n;n-=1)if((d=this.shapes[n]).shape._mdf){for((u=d.localShapeCollection).releaseShapes(),2===this.m&&1<f?(g=this.calculateShapeEdges(e,r,d.totalShapeLength,E,c),E+=d.totalShapeLength):g=[[v,b]],h=g.length,o=0;o<h;o+=1){v=g[o][0],b=g[o][1],y.length=0,b<=1?y.push({s:d.totalShapeLength*v,e:d.totalShapeLength*b}):1<=v?y.push({s:d.totalShapeLength*(v-1),e:d.totalShapeLength*(b-1)}):(y.push({s:d.totalShapeLength*v,e:d.totalShapeLength}),y.push({s:0,e:d.totalShapeLength*(b-1)}));var x=this.addShapes(d,y[0]);if(y[0].s!==y[0].e){if(1<y.length)if(d.shape.paths.shapes[d.shape.paths._length-1].c){var P=x.pop();this.addPaths(x,u),x=this.addShapes(d,y[1],P)}else this.addPaths(x,u),x=this.addShapes(d,y[1]);this.addPaths(x,u)}}d.shape.paths=u}}},TrimModifier.prototype.addPaths=function(t,e){var r,i=t.length;for(r=0;r<i;r+=1)e.addShape(t[r])},TrimModifier.prototype.addSegment=function(t,e,r,i,s,a,n){s.setXYAt(e[0],e[1],"o",a),s.setXYAt(r[0],r[1],"i",a+1),n&&s.setXYAt(t[0],t[1],"v",a),s.setXYAt(i[0],i[1],"v",a+1)},TrimModifier.prototype.addSegmentFromArray=function(t,e,r,i){e.setXYAt(t[1],t[5],"o",r),e.setXYAt(t[2],t[6],"i",r+1),i&&e.setXYAt(t[0],t[4],"v",r),e.setXYAt(t[3],t[7],"v",r+1)},TrimModifier.prototype.addShapes=function(t,e,r){var i,s,a,n,o,h,l,p,m=t.pathsData,f=t.shape.paths.shapes,c=t.shape.paths._length,d=0,u=[],y=!0;for(p=r?(o=r._length,r._length):(r=shape_pool.newElement(),o=0),u.push(r),i=0;i<c;i+=1){for(h=m[i].lengths,r.c=f[i].c,a=f[i].c?h.length:h.length+1,s=1;s<a;s+=1)if(d+(n=h[s-1]).addedLength<e.s)d+=n.addedLength,r.c=!1;else{if(d>e.e){r.c=!1;break}e.s<=d&&e.e>=d+n.addedLength?(this.addSegment(f[i].v[s-1],f[i].o[s-1],f[i].i[s],f[i].v[s],r,o,y),y=!1):(l=bez.getNewSegment(f[i].v[s-1],f[i].v[s],f[i].o[s-1],f[i].i[s],(e.s-d)/n.addedLength,(e.e-d)/n.addedLength,h[s-1]),this.addSegmentFromArray(l,r,o,y),y=!1,r.c=!1),d+=n.addedLength,o+=1}if(f[i].c&&h.length){if(n=h[s-1],d<=e.e){var g=h[s-1].addedLength;e.s<=d&&e.e>=d+g?(this.addSegment(f[i].v[s-1],f[i].o[s-1],f[i].i[0],f[i].v[0],r,o,y),y=!1):(l=bez.getNewSegment(f[i].v[s-1],f[i].v[0],f[i].o[s-1],f[i].i[0],(e.s-d)/g,(e.e-d)/g,h[s-1]),this.addSegmentFromArray(l,r,o,y),y=!1,r.c=!1)}else r.c=!1;d+=n.addedLength,o+=1}if(r._length&&(r.setXYAt(r.v[p][0],r.v[p][1],"i",p),r.setXYAt(r.v[r._length-1][0],r.v[r._length-1][1],"o",r._length-1)),d>e.e)break;i<c-1&&(r=shape_pool.newElement(),y=!0,u.push(r),o=0)}return u},ShapeModifiers.registerModifier("tm",TrimModifier),extendPrototype([ShapeModifier],RoundCornersModifier),RoundCornersModifier.prototype.initModifierProperties=function(t,e){this.getValue=this.processKeys,this.rd=PropertyFactory.getProp(t,e.r,0,null,this),this._isAnimated=!!this.rd.effectsSequence.length},RoundCornersModifier.prototype.processPath=function(t,e){var r=shape_pool.newElement();r.c=t.c;var i,s,a,n,o,h,l,p,m,f,c,d,u,y=t._length,g=0;for(i=0;i<y;i+=1)s=t.v[i],n=t.o[i],a=t.i[i],s[0]===n[0]&&s[1]===n[1]&&s[0]===a[0]&&s[1]===a[1]?0!==i&&i!==y-1||t.c?(o=0===i?t.v[y-1]:t.v[i-1],l=(h=Math.sqrt(Math.pow(s[0]-o[0],2)+Math.pow(s[1]-o[1],2)))?Math.min(h/2,e)/h:0,p=d=s[0]+(o[0]-s[0])*l,m=u=s[1]-(s[1]-o[1])*l,f=p-(p-s[0])*roundCorner,c=m-(m-s[1])*roundCorner,r.setTripleAt(p,m,f,c,d,u,g),g+=1,o=i===y-1?t.v[0]:t.v[i+1],l=(h=Math.sqrt(Math.pow(s[0]-o[0],2)+Math.pow(s[1]-o[1],2)))?Math.min(h/2,e)/h:0,p=f=s[0]+(o[0]-s[0])*l,m=c=s[1]+(o[1]-s[1])*l,d=p-(p-s[0])*roundCorner,u=m-(m-s[1])*roundCorner,r.setTripleAt(p,m,f,c,d,u,g)):r.setTripleAt(s[0],s[1],n[0],n[1],a[0],a[1],g):r.setTripleAt(t.v[i][0],t.v[i][1],t.o[i][0],t.o[i][1],t.i[i][0],t.i[i][1],g),g+=1;return r},RoundCornersModifier.prototype.processShapes=function(t){var e,r,i,s,a,n,o=this.shapes.length,h=this.rd.v;if(0!==h)for(r=0;r<o;r+=1){if((a=this.shapes[r]).shape.paths,n=a.localShapeCollection,a.shape._mdf||this._mdf||t)for(n.releaseShapes(),a.shape._mdf=!0,e=a.shape.paths.shapes,s=a.shape.paths._length,i=0;i<s;i+=1)n.addShape(this.processPath(e[i],h));a.shape.paths=a.localShapeCollection}this.dynamicProperties.length||(this._mdf=!1)},ShapeModifiers.registerModifier("rd",RoundCornersModifier),extendPrototype([ShapeModifier],RepeaterModifier),RepeaterModifier.prototype.initModifierProperties=function(t,e){this.getValue=this.processKeys,this.c=PropertyFactory.getProp(t,e.c,0,null,this),this.o=PropertyFactory.getProp(t,e.o,0,null,this),this.tr=TransformPropertyFactory.getTransformProperty(t,e.tr,this),this.so=PropertyFactory.getProp(t,e.tr.so,0,.01,this),this.eo=PropertyFactory.getProp(t,e.tr.eo,0,.01,this),this.data=e,this.dynamicProperties.length||this.getValue(!0),this._isAnimated=!!this.dynamicProperties.length,this.pMatrix=new Matrix,this.rMatrix=new Matrix,this.sMatrix=new Matrix,this.tMatrix=new Matrix,this.matrix=new Matrix},RepeaterModifier.prototype.applyTransforms=function(t,e,r,i,s,a){var n=a?-1:1,o=i.s.v[0]+(1-i.s.v[0])*(1-s),h=i.s.v[1]+(1-i.s.v[1])*(1-s);t.translate(i.p.v[0]*n*s,i.p.v[1]*n*s,i.p.v[2]),e.translate(-i.a.v[0],-i.a.v[1],i.a.v[2]),e.rotate(-i.r.v*n*s),e.translate(i.a.v[0],i.a.v[1],i.a.v[2]),r.translate(-i.a.v[0],-i.a.v[1],i.a.v[2]),r.scale(a?1/o:o,a?1/h:h),r.translate(i.a.v[0],i.a.v[1],i.a.v[2])},RepeaterModifier.prototype.init=function(t,e,r,i){this.elem=t,this.arr=e,this.pos=r,this.elemsData=i,this._currentCopies=0,this._elements=[],this._groups=[],this.frameId=-1,this.initDynamicPropertyContainer(t),this.initModifierProperties(t,e[r]);for(;0<r;)r-=1,this._elements.unshift(e[r]),1;this.dynamicProperties.length?this.k=!0:this.getValue(!0)},RepeaterModifier.prototype.resetElements=function(t){var e,r=t.length;for(e=0;e<r;e+=1)t[e]._processed=!1,"gr"===t[e].ty&&this.resetElements(t[e].it)},RepeaterModifier.prototype.cloneElements=function(t){t.length;var e=JSON.parse(JSON.stringify(t));return this.resetElements(e),e},RepeaterModifier.prototype.changeGroupRender=function(t,e){var r,i=t.length;for(r=0;r<i;r+=1)t[r]._render=e,"gr"===t[r].ty&&this.changeGroupRender(t[r].it,e)},RepeaterModifier.prototype.processShapes=function(t){var e,r,i,s,a;if(this._mdf||t){var n,o=Math.ceil(this.c.v);if(this._groups.length<o){for(;this._groups.length<o;){var h={it:this.cloneElements(this._elements),ty:"gr"};h.it.push({a:{a:0,ix:1,k:[0,0]},nm:"Transform",o:{a:0,ix:7,k:100},p:{a:0,ix:2,k:[0,0]},r:{a:1,ix:6,k:[{s:0,e:0,t:0},{s:0,e:0,t:1}]},s:{a:0,ix:3,k:[100,100]},sa:{a:0,ix:5,k:0},sk:{a:0,ix:4,k:0},ty:"tr"}),this.arr.splice(0,0,h),this._groups.splice(0,0,h),this._currentCopies+=1}this.elem.reloadShapes()}for(i=a=0;i<=this._groups.length-1;i+=1)n=a<o,this._groups[i]._render=n,this.changeGroupRender(this._groups[i].it,n),a+=1;this._currentCopies=o;var l=this.o.v,p=l%1,m=0<l?Math.floor(l):Math.ceil(l),f=(this.tr.v.props,this.pMatrix.props),c=this.rMatrix.props,d=this.sMatrix.props;this.pMatrix.reset(),this.rMatrix.reset(),this.sMatrix.reset(),this.tMatrix.reset(),this.matrix.reset();var u,y,g=0;if(0<l){for(;g<m;)this.applyTransforms(this.pMatrix,this.rMatrix,this.sMatrix,this.tr,1,!1),g+=1;p&&(this.applyTransforms(this.pMatrix,this.rMatrix,this.sMatrix,this.tr,p,!1),g+=p)}else if(l<0){for(;m<g;)this.applyTransforms(this.pMatrix,this.rMatrix,this.sMatrix,this.tr,1,!0),g-=1;p&&(this.applyTransforms(this.pMatrix,this.rMatrix,this.sMatrix,this.tr,-p,!0),g-=p)}for(i=1===this.data.m?0:this._currentCopies-1,s=1===this.data.m?1:-1,a=this._currentCopies;a;){if(y=(r=(e=this.elemsData[i].it)[e.length-1].transform.mProps.v.props).length,e[e.length-1].transform.mProps._mdf=!0,e[e.length-1].transform.op._mdf=!0,e[e.length-1].transform.op.v=this.so.v+(this.eo.v-this.so.v)*(i/(this._currentCopies-1)),0!==g){for((0!==i&&1===s||i!==this._currentCopies-1&&-1===s)&&this.applyTransforms(this.pMatrix,this.rMatrix,this.sMatrix,this.tr,1,!1),this.matrix.transform(c[0],c[1],c[2],c[3],c[4],c[5],c[6],c[7],c[8],c[9],c[10],c[11],c[12],c[13],c[14],c[15]),this.matrix.transform(d[0],d[1],d[2],d[3],d[4],d[5],d[6],d[7],d[8],d[9],d[10],d[11],d[12],d[13],d[14],d[15]),this.matrix.transform(f[0],f[1],f[2],f[3],f[4],f[5],f[6],f[7],f[8],f[9],f[10],f[11],f[12],f[13],f[14],f[15]),u=0;u<y;u+=1)r[u]=this.matrix.props[u];this.matrix.reset()}else for(this.matrix.reset(),u=0;u<y;u+=1)r[u]=this.matrix.props[u];g+=1,a-=1,i+=s}}else for(a=this._currentCopies,i=0,s=1;a;)r=(e=this.elemsData[i].it)[e.length-1].transform.mProps.v.props,e[e.length-1].transform.mProps._mdf=!1,e[e.length-1].transform.op._mdf=!1,a-=1,i+=s},RepeaterModifier.prototype.addShape=function(){},ShapeModifiers.registerModifier("rp",RepeaterModifier),ShapeCollection.prototype.addShape=function(t){this._length===this._maxLength&&(this.shapes=this.shapes.concat(createSizedArray(this._maxLength)),this._maxLength*=2),this.shapes[this._length]=t,this._length+=1},ShapeCollection.prototype.releaseShapes=function(){var t;for(t=0;t<this._length;t+=1)shape_pool.release(this.shapes[t]);this._length=0},DashProperty.prototype.getValue=function(t){if((this.elem.globalData.frameId!==this.frameId||t)&&(this.frameId=this.elem.globalData.frameId,this.iterateDynamicProperties(),this._mdf=this._mdf||t,this._mdf)){var e=0,r=this.dataProps.length;for("svg"===this.renderer&&(this.dashStr=""),e=0;e<r;e+=1)"o"!=this.dataProps[e].n?"svg"===this.renderer?this.dashStr+=" "+this.dataProps[e].p.v:this.dashArray[e]=this.dataProps[e].p.v:this.dashoffset[0]=this.dataProps[e].p.v}},extendPrototype([DynamicPropertyContainer],DashProperty),GradientProperty.prototype.comparePoints=function(t,e){for(var r=0,i=this.o.length/2;r<i;){if(.01<Math.abs(t[4*r]-t[4*e+2*r]))return!1;r+=1}return!0},GradientProperty.prototype.checkCollapsable=function(){if(this.o.length/2!=this.c.length/4)return!1;if(this.data.k.k[0].s)for(var t=0,e=this.data.k.k.length;t<e;){if(!this.comparePoints(this.data.k.k[t].s,this.data.p))return!1;t+=1}else if(!this.comparePoints(this.data.k.k,this.data.p))return!1;return!0},GradientProperty.prototype.getValue=function(t){if(this.prop.getValue(),this._mdf=!1,this._cmdf=!1,this._omdf=!1,this.prop._mdf||t){var e,r,i,s=4*this.data.p;for(e=0;e<s;e+=1)r=e%4==0?100:255,i=Math.round(this.prop.v[e]*r),this.c[e]!==i&&(this.c[e]=i,this._cmdf=!t);if(this.o.length)for(s=this.prop.v.length,e=4*this.data.p;e<s;e+=1)r=e%2==0?100:1,i=e%2==0?Math.round(100*this.prop.v[e]):this.prop.v[e],this.o[e-4*this.data.p]!==i&&(this.o[e-4*this.data.p]=i,this._omdf=!t);this._mdf=!t}},extendPrototype([DynamicPropertyContainer],GradientProperty);var buildShapeString=function(t,e,r,i){if(0===e)return"";var s,a=t.o,n=t.i,o=t.v,h=" M"+i.applyToPointStringified(o[0][0],o[0][1]);for(s=1;s<e;s+=1)h+=" C"+i.applyToPointStringified(a[s-1][0],a[s-1][1])+" "+i.applyToPointStringified(n[s][0],n[s][1])+" "+i.applyToPointStringified(o[s][0],o[s][1]);return r&&e&&(h+=" C"+i.applyToPointStringified(a[s-1][0],a[s-1][1])+" "+i.applyToPointStringified(n[0][0],n[0][1])+" "+i.applyToPointStringified(o[0][0],o[0][1]),h+="z"),h},ImagePreloader=function(){var s=function(){var t=createTag("canvas");t.width=1,t.height=1;var e=t.getContext("2d");return e.fillStyle="rgba(0,0,0,0)",e.fillRect(0,0,1,1),t}();function t(){this.loadedAssets+=1,this.loadedAssets===this.totalImages&&this.imagesLoadedCb&&this.imagesLoadedCb(null)}function e(t){var e=function(t,e,r){var i="";if(t.e)i=t.p;else if(e){var s=t.p;-1!==s.indexOf("images/")&&(s=s.split("/")[1]),i=e+s}else i=r,i+=t.u?t.u:"",i+=t.p;return i}(t,this.assetsPath,this.path),r=createTag("img");r.crossOrigin="anonymous",r.addEventListener("load",this._imageLoaded.bind(this),!1),r.addEventListener("error",function(){i.img=s,this._imageLoaded()}.bind(this),!1),r.src=e;var i={img:r,assetData:t};return i}function r(t,e){this.imagesLoadedCb=e;var r,i=t.length;for(r=0;r<i;r+=1)t[r].layers||(this.totalImages+=1,this.images.push(this._createImageData(t[r])))}function i(t){this.path=t||""}function a(t){this.assetsPath=t||""}function n(t){for(var e=0,r=this.images.length;e<r;){if(this.images[e].assetData===t)return this.images[e].img;e+=1}}function o(){this.imagesLoadedCb=null,this.images.length=0}function h(){return this.totalImages===this.loadedAssets}return function(){this.loadAssets=r,this.setAssetsPath=a,this.setPath=i,this.loaded=h,this.destroy=o,this.getImage=n,this._createImageData=e,this._imageLoaded=t,this.assetsPath="",this.path="",this.totalImages=0,this.loadedAssets=0,this.imagesLoadedCb=null,this.images=[]}}(),featureSupport=(qw={maskType:!0},(/MSIE 10/i.test(navigator.userAgent)||/MSIE 9/i.test(navigator.userAgent)||/rv:11.0/i.test(navigator.userAgent)||/Edge\/\d./i.test(navigator.userAgent))&&(qw.maskType=!1),qw),qw,filtersFactory=(rw={},rw.createFilter=function(t){var e=createNS("filter");return e.setAttribute("id",t),e.setAttribute("filterUnits","objectBoundingBox"),e.setAttribute("x","0%"),e.setAttribute("y","0%"),e.setAttribute("width","100%"),e.setAttribute("height","100%"),e},rw.createAlphaToLuminanceFilter=function(){var t=createNS("feColorMatrix");return t.setAttribute("type","matrix"),t.setAttribute("color-interpolation-filters","sRGB"),t.setAttribute("values","0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1"),t},rw),rw,assetLoader=function(){function a(t){return t.response&&"object"==typeof t.response?t.response:t.response&&"string"==typeof t.response?JSON.parse(t.response):t.responseText?JSON.parse(t.responseText):void 0}return{load:function(t,e,r){var i,s=new XMLHttpRequest;s.open("GET",t,!0);try{s.responseType="json"}catch(t){}s.send(),s.onreadystatechange=function(){if(4==s.readyState)if(200==s.status)i=a(s),e(i);else try{i=a(s),e(i)}catch(t){r&&r(t)}}}}}();function TextAnimatorProperty(t,e,r){this._isFirstFrame=!0,this._hasMaskedPath=!1,this._frameId=-1,this._textData=t,this._renderType=e,this._elem=r,this._animatorsData=createSizedArray(this._textData.a.length),this._pathData={},this._moreOptions={alignment:{}},this.renderedLetters=[],this.lettersChangedFlag=!1,this.initDynamicPropertyContainer(r)}function TextAnimatorDataProperty(t,e,r){var i={propType:!1},s=PropertyFactory.getProp,a=e.a;this.a={r:a.r?s(t,a.r,0,degToRads,r):i,rx:a.rx?s(t,a.rx,0,degToRads,r):i,ry:a.ry?s(t,a.ry,0,degToRads,r):i,sk:a.sk?s(t,a.sk,0,degToRads,r):i,sa:a.sa?s(t,a.sa,0,degToRads,r):i,s:a.s?s(t,a.s,1,.01,r):i,a:a.a?s(t,a.a,1,0,r):i,o:a.o?s(t,a.o,0,.01,r):i,p:a.p?s(t,a.p,1,0,r):i,sw:a.sw?s(t,a.sw,0,0,r):i,sc:a.sc?s(t,a.sc,1,0,r):i,fc:a.fc?s(t,a.fc,1,0,r):i,fh:a.fh?s(t,a.fh,0,0,r):i,fs:a.fs?s(t,a.fs,0,.01,r):i,fb:a.fb?s(t,a.fb,0,.01,r):i,t:a.t?s(t,a.t,0,0,r):i},this.s=TextSelectorProp.getTextSelectorProp(t,e.s,r),this.s.t=e.s.t}function LetterProps(t,e,r,i,s,a){this.o=t,this.sw=e,this.sc=r,this.fc=i,this.m=s,this.p=a,this._mdf={o:!0,sw:!!e,sc:!!r,fc:!!i,m:!0,p:!0}}function TextProperty(t,e){this._frameId=initialDefaultFrame,this.pv="",this.v="",this.kf=!1,this._isFirstFrame=!0,this._mdf=!1,this.data=e,this.elem=t,this.comp=this.elem.comp,this.keysIndex=0,this.canResize=!1,this.minimumFontSize=1,this.effectsSequence=[],this.currentData={ascent:0,boxWidth:this.defaultBoxWidth,f:"",fStyle:"",fWeight:"",fc:"",j:"",justifyOffset:"",l:[],lh:0,lineWidths:[],ls:"",of:"",s:"",sc:"",sw:0,t:0,tr:0,sz:0,ps:null,fillColorAnim:!1,strokeColorAnim:!1,strokeWidthAnim:!1,yOffset:0,finalSize:0,finalText:[],finalLineHeight:0,__complete:!1},this.copyData(this.currentData,this.data.d.k[0].s),this.searchProperty()||this.completeTextData(this.currentData)}TextAnimatorProperty.prototype.searchProperties=function(){var t,e,r=this._textData.a.length,i=PropertyFactory.getProp;for(t=0;t<r;t+=1)e=this._textData.a[t],this._animatorsData[t]=new TextAnimatorDataProperty(this._elem,e,this);this._textData.p&&"m"in this._textData.p?(this._pathData={f:i(this._elem,this._textData.p.f,0,0,this),l:i(this._elem,this._textData.p.l,0,0,this),r:this._textData.p.r,m:this._elem.maskManager.getMaskProperty(this._textData.p.m)},this._hasMaskedPath=!0):this._hasMaskedPath=!1,this._moreOptions.alignment=i(this._elem,this._textData.m.a,1,0,this)},TextAnimatorProperty.prototype.getMeasures=function(t,e){if(this.lettersChangedFlag=e,this._mdf||this._isFirstFrame||e||this._hasMaskedPath&&this._pathData.m._mdf){this._isFirstFrame=!1;var r,i,s,a,n,o,h,l,p,m,f,c,d,u,y,g,v,b,E,x=this._moreOptions.alignment.v,P=this._animatorsData,S=this._textData,_=this.mHelper,A=this._renderType,C=this.renderedLetters.length,T=(this.data,t.l);if(this._hasMaskedPath){if(E=this._pathData.m,!this._pathData.n||this._pathData._mdf){var k,M=E.v;for(this._pathData.r&&(M=M.reverse()),n={tLength:0,segments:[]},a=M._length-1,s=g=0;s<a;s+=1)k=bez.buildBezierData(M.v[s],M.v[s+1],[M.o[s][0]-M.v[s][0],M.o[s][1]-M.v[s][1]],[M.i[s+1][0]-M.v[s+1][0],M.i[s+1][1]-M.v[s+1][1]]),n.tLength+=k.segmentLength,n.segments.push(k),g+=k.segmentLength;s=a,E.v.c&&(k=bez.buildBezierData(M.v[s],M.v[0],[M.o[s][0]-M.v[s][0],M.o[s][1]-M.v[s][1]],[M.i[0][0]-M.v[0][0],M.i[0][1]-M.v[0][1]]),n.tLength+=k.segmentLength,n.segments.push(k),g+=k.segmentLength),this._pathData.pi=n}if(n=this._pathData.pi,o=this._pathData.f.v,m=1,p=!(l=f=0),u=n.segments,o<0&&E.v.c)for(n.tLength<Math.abs(o)&&(o=-Math.abs(o)%n.tLength),m=(d=u[f=u.length-1].points).length-1;o<0;)o+=d[m].partialLength,(m-=1)<0&&(m=(d=u[f-=1].points).length-1);c=(d=u[f].points)[m-1],y=(h=d[m]).partialLength}a=T.length,i=r=0;var D,w,F,I,V=1.2*t.finalSize*.714,R=!0;F=P.length;var B,L,G,z,N,O,H,j,q,W,Y,X,$,K=-1,Z=o,J=f,Q=m,U=-1,tt="",et=this.defaultPropsArray;if(2===t.j||1===t.j){var rt=0,it=0,st=2===t.j?-.5:-1,at=0,nt=!0;for(s=0;s<a;s+=1)if(T[s].n){for(rt&&(rt+=it);at<s;)T[at].animatorJustifyOffset=rt,at+=1;nt=!(rt=0)}else{for(w=0;w<F;w+=1)(D=P[w].a).t.propType&&(nt&&2===t.j&&(it+=D.t.v*st),(B=P[w].s.getMult(T[s].anIndexes[w],S.a[w].s.totalChars)).length?rt+=D.t.v*B[0]*st:rt+=D.t.v*B*st);nt=!1}for(rt&&(rt+=it);at<s;)T[at].animatorJustifyOffset=rt,at+=1}for(s=0;s<a;s+=1){if(_.reset(),N=1,T[s].n)r=0,i+=t.yOffset,i+=R?1:0,o=Z,R=!1,0,this._hasMaskedPath&&(m=Q,c=(d=u[f=J].points)[m-1],y=(h=d[m]).partialLength,l=0),$=W=X=tt="",et=this.defaultPropsArray;else{if(this._hasMaskedPath){if(U!==T[s].line){switch(t.j){case 1:o+=g-t.lineWidths[T[s].line];break;case 2:o+=(g-t.lineWidths[T[s].line])/2}U=T[s].line}K!==T[s].ind&&(T[K]&&(o+=T[K].extra),o+=T[s].an/2,K=T[s].ind),o+=x[0]*T[s].an/200;var ot=0;for(w=0;w<F;w+=1)(D=P[w].a).p.propType&&((B=P[w].s.getMult(T[s].anIndexes[w],S.a[w].s.totalChars)).length?ot+=D.p.v[0]*B[0]:ot+=D.p.v[0]*B),D.a.propType&&((B=P[w].s.getMult(T[s].anIndexes[w],S.a[w].s.totalChars)).length?ot+=D.a.v[0]*B[0]:ot+=D.a.v[0]*B);for(p=!0;p;)o+ot<=l+y||!d?(v=(o+ot-l)/h.partialLength,G=c.point[0]+(h.point[0]-c.point[0])*v,z=c.point[1]+(h.point[1]-c.point[1])*v,_.translate(-x[0]*T[s].an/200,-x[1]*V/100),p=!1):d&&(l+=h.partialLength,(m+=1)>=d.length&&(m=0,d=u[f+=1]?u[f].points:E.v.c?u[f=m=0].points:(l-=h.partialLength,null)),d&&(c=h,y=(h=d[m]).partialLength));L=T[s].an/2-T[s].add,_.translate(-L,0,0)}else L=T[s].an/2-T[s].add,_.translate(-L,0,0),_.translate(-x[0]*T[s].an/200,-x[1]*V/100,0);for(T[s].l/2,w=0;w<F;w+=1)(D=P[w].a).t.propType&&(B=P[w].s.getMult(T[s].anIndexes[w],S.a[w].s.totalChars),0===r&&0===t.j||(this._hasMaskedPath?B.length?o+=D.t.v*B[0]:o+=D.t.v*B:B.length?r+=D.t.v*B[0]:r+=D.t.v*B));for(T[s].l/2,t.strokeWidthAnim&&(H=t.sw||0),t.strokeColorAnim&&(O=t.sc?[t.sc[0],t.sc[1],t.sc[2]]:[0,0,0]),t.fillColorAnim&&t.fc&&(j=[t.fc[0],t.fc[1],t.fc[2]]),w=0;w<F;w+=1)(D=P[w].a).a.propType&&((B=P[w].s.getMult(T[s].anIndexes[w],S.a[w].s.totalChars)).length?_.translate(-D.a.v[0]*B[0],-D.a.v[1]*B[1],D.a.v[2]*B[2]):_.translate(-D.a.v[0]*B,-D.a.v[1]*B,D.a.v[2]*B));for(w=0;w<F;w+=1)(D=P[w].a).s.propType&&((B=P[w].s.getMult(T[s].anIndexes[w],S.a[w].s.totalChars)).length?_.scale(1+(D.s.v[0]-1)*B[0],1+(D.s.v[1]-1)*B[1],1):_.scale(1+(D.s.v[0]-1)*B,1+(D.s.v[1]-1)*B,1));for(w=0;w<F;w+=1){if(D=P[w].a,B=P[w].s.getMult(T[s].anIndexes[w],S.a[w].s.totalChars),D.sk.propType&&(B.length?_.skewFromAxis(-D.sk.v*B[0],D.sa.v*B[1]):_.skewFromAxis(-D.sk.v*B,D.sa.v*B)),D.r.propType&&(B.length?_.rotateZ(-D.r.v*B[2]):_.rotateZ(-D.r.v*B)),D.ry.propType&&(B.length?_.rotateY(D.ry.v*B[1]):_.rotateY(D.ry.v*B)),D.rx.propType&&(B.length?_.rotateX(D.rx.v*B[0]):_.rotateX(D.rx.v*B)),D.o.propType&&(B.length?N+=(D.o.v*B[0]-N)*B[0]:N+=(D.o.v*B-N)*B),t.strokeWidthAnim&&D.sw.propType&&(B.length?H+=D.sw.v*B[0]:H+=D.sw.v*B),t.strokeColorAnim&&D.sc.propType)for(q=0;q<3;q+=1)B.length?O[q]=O[q]+(D.sc.v[q]-O[q])*B[0]:O[q]=O[q]+(D.sc.v[q]-O[q])*B;if(t.fillColorAnim&&t.fc){if(D.fc.propType)for(q=0;q<3;q+=1)B.length?j[q]=j[q]+(D.fc.v[q]-j[q])*B[0]:j[q]=j[q]+(D.fc.v[q]-j[q])*B;D.fh.propType&&(j=B.length?addHueToRGB(j,D.fh.v*B[0]):addHueToRGB(j,D.fh.v*B)),D.fs.propType&&(j=B.length?addSaturationToRGB(j,D.fs.v*B[0]):addSaturationToRGB(j,D.fs.v*B)),D.fb.propType&&(j=B.length?addBrightnessToRGB(j,D.fb.v*B[0]):addBrightnessToRGB(j,D.fb.v*B))}}for(w=0;w<F;w+=1)(D=P[w].a).p.propType&&(B=P[w].s.getMult(T[s].anIndexes[w],S.a[w].s.totalChars),this._hasMaskedPath?B.length?_.translate(0,D.p.v[1]*B[0],-D.p.v[2]*B[1]):_.translate(0,D.p.v[1]*B,-D.p.v[2]*B):B.length?_.translate(D.p.v[0]*B[0],D.p.v[1]*B[1],-D.p.v[2]*B[2]):_.translate(D.p.v[0]*B,D.p.v[1]*B,-D.p.v[2]*B));if(t.strokeWidthAnim&&(W=H<0?0:H),t.strokeColorAnim&&(Y="rgb("+Math.round(255*O[0])+","+Math.round(255*O[1])+","+Math.round(255*O[2])+")"),t.fillColorAnim&&t.fc&&(X="rgb("+Math.round(255*j[0])+","+Math.round(255*j[1])+","+Math.round(255*j[2])+")"),this._hasMaskedPath){if(_.translate(0,-t.ls),_.translate(0,x[1]*V/100+i,0),S.p.p){b=(h.point[1]-c.point[1])/(h.point[0]-c.point[0]);var ht=180*Math.atan(b)/Math.PI;h.point[0]<c.point[0]&&(ht+=180),_.rotate(-ht*Math.PI/180)}_.translate(G,z,0),o-=x[0]*T[s].an/200,T[s+1]&&K!==T[s+1].ind&&(o+=T[s].an/2,o+=t.tr/1e3*t.finalSize)}else{switch(_.translate(r,i,0),t.ps&&_.translate(t.ps[0],t.ps[1]+t.ascent,0),t.j){case 1:_.translate(T[s].animatorJustifyOffset+t.justifyOffset+(t.boxWidth-t.lineWidths[T[s].line]),0,0);break;case 2:_.translate(T[s].animatorJustifyOffset+t.justifyOffset+(t.boxWidth-t.lineWidths[T[s].line])/2,0,0)}_.translate(0,-t.ls),_.translate(L,0,0),_.translate(x[0]*T[s].an/200,x[1]*V/100,0),r+=T[s].l+t.tr/1e3*t.finalSize}"html"===A?tt=_.toCSS():"svg"===A?tt=_.to2dCSS():et=[_.props[0],_.props[1],_.props[2],_.props[3],_.props[4],_.props[5],_.props[6],_.props[7],_.props[8],_.props[9],_.props[10],_.props[11],_.props[12],_.props[13],_.props[14],_.props[15]],$=N}this.lettersChangedFlag=C<=s?(I=new LetterProps($,W,Y,X,tt,et),this.renderedLetters.push(I),C+=1,!0):(I=this.renderedLetters[s]).update($,W,Y,X,tt,et)||this.lettersChangedFlag}}},TextAnimatorProperty.prototype.getValue=function(){this._elem.globalData.frameId!==this._frameId&&(this._frameId=this._elem.globalData.frameId,this.iterateDynamicProperties())},TextAnimatorProperty.prototype.mHelper=new Matrix,TextAnimatorProperty.prototype.defaultPropsArray=[],extendPrototype([DynamicPropertyContainer],TextAnimatorProperty),LetterProps.prototype.update=function(t,e,r,i,s,a){this._mdf.o=!1,this._mdf.sw=!1,this._mdf.sc=!1,this._mdf.fc=!1,this._mdf.m=!1;var n=this._mdf.p=!1;return this.o!==t&&(this.o=t,n=this._mdf.o=!0),this.sw!==e&&(this.sw=e,n=this._mdf.sw=!0),this.sc!==r&&(this.sc=r,n=this._mdf.sc=!0),this.fc!==i&&(this.fc=i,n=this._mdf.fc=!0),this.m!==s&&(this.m=s,n=this._mdf.m=!0),!a.length||this.p[0]===a[0]&&this.p[1]===a[1]&&this.p[4]===a[4]&&this.p[5]===a[5]&&this.p[12]===a[12]&&this.p[13]===a[13]||(this.p=a,n=this._mdf.p=!0),n},TextProperty.prototype.defaultBoxWidth=[0,0],TextProperty.prototype.copyData=function(t,e){for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);return t},TextProperty.prototype.setCurrentData=function(t){t.__complete||this.completeTextData(t),this.currentData=t,this.currentData.boxWidth=this.currentData.boxWidth||this.defaultBoxWidth,this._mdf=!0},TextProperty.prototype.searchProperty=function(){return this.searchKeyframes()},TextProperty.prototype.searchKeyframes=function(){return this.kf=1<this.data.d.k.length,this.kf&&this.addEffect(this.getKeyframeValue.bind(this)),this.kf},TextProperty.prototype.addEffect=function(t){this.effectsSequence.push(t),this.elem.addDynamicProperty(this)},TextProperty.prototype.getValue=function(t){if(this.elem.globalData.frameId!==this.frameId&&this.effectsSequence.length||t){this.currentData.t=this.data.d.k[this.keysIndex].s.t;var e=this.currentData,r=this.keysIndex;if(this.lock)this.setCurrentData(this.currentData);else{this.lock=!0,this._mdf=!1;var i,s=this.effectsSequence.length,a=t||this.data.d.k[this.keysIndex].s;for(i=0;i<s;i+=1)a=r!==this.keysIndex?this.effectsSequence[i](a,a.t):this.effectsSequence[i](this.currentData,a.t);e!==a&&this.setCurrentData(a),this.pv=this.v=this.currentData,this.lock=!1,this.frameId=this.elem.globalData.frameId}}},TextProperty.prototype.getKeyframeValue=function(){for(var t=this.data.d.k,e=this.elem.comp.renderedFrame,r=0,i=t.length;r<=i-1&&(t[r].s,!(r===i-1||t[r+1].t>e));)r+=1;return this.keysIndex!==r&&(this.keysIndex=r),this.data.d.k[this.keysIndex].s},TextProperty.prototype.buildFinalText=function(t){for(var e,r=FontManager.getCombinedCharacterCodes(),i=[],s=0,a=t.length;s<a;)e=t.charCodeAt(s),-1!==r.indexOf(e)?i[i.length-1]+=t.charAt(s):55296<=e&&e<=56319&&56320<=(e=t.charCodeAt(s+1))&&e<=57343?(i.push(t.substr(s,2)),++s):i.push(t.charAt(s)),s+=1;return i},TextProperty.prototype.completeTextData=function(t){t.__complete=!0;var e,r,i,s,a,n,o,h=this.elem.globalData.fontManager,l=this.data,p=[],m=0,f=l.m.g,c=0,d=0,u=0,y=[],g=0,v=0,b=h.getFontByName(t.f),E=0,x=b.fStyle?b.fStyle.split(" "):[],P="normal",S="normal";for(r=x.length,e=0;e<r;e+=1)switch(x[e].toLowerCase()){case"italic":S="italic";break;case"bold":P="700";break;case"black":P="900";break;case"medium":P="500";break;case"regular":case"normal":P="400";break;case"light":case"thin":P="200"}t.fWeight=b.fWeight||P,t.fStyle=S,t.finalSize=t.s,t.finalText=this.buildFinalText(t.t),r=t.finalText.length,t.finalLineHeight=t.lh;var _,A=t.tr/1e3*t.finalSize;if(t.sz)for(var C,T,k=!0,M=t.sz[0],D=t.sz[1];k;){g=C=0,r=(T=this.buildFinalText(t.t)).length,A=t.tr/1e3*t.finalSize;var w=-1;for(e=0;e<r;e+=1)_=T[e].charCodeAt(0),i=!1," "===T[e]?w=e:13!==_&&3!==_||(i=!(g=0),C+=t.finalLineHeight||1.2*t.finalSize),M<g+(E=h.chars?(o=h.getCharData(T[e],b.fStyle,b.fFamily),i?0:o.w*t.finalSize/100):h.measureText(T[e],t.f,t.finalSize))&&" "!==T[e]?(-1===w?r+=1:e=w,C+=t.finalLineHeight||1.2*t.finalSize,T.splice(e,w===e?1:0,"\r"),w=-1,g=0):(g+=E,g+=A);C+=b.ascent*t.finalSize/100,this.canResize&&t.finalSize>this.minimumFontSize&&D<C?(t.finalSize-=1,t.finalLineHeight=t.finalSize*t.lh/t.s):(t.finalText=T,r=t.finalText.length,k=!1)}g=-A;var F,I=E=0;for(e=0;e<r;e+=1)if(i=!1,_=(F=t.finalText[e]).charCodeAt(0)," "===F?s="\xa0":13===_||3===_?(I=0,y.push(g),v=v<g?g:v,g=-2*A,i=!(s=""),u+=1):s=t.finalText[e],E=h.chars?(o=h.getCharData(F,b.fStyle,h.getFontByName(t.f).fFamily),i?0:o.w*t.finalSize/100):h.measureText(s,t.f,t.finalSize)," "===F?I+=E+A:(g+=E+A+I,I=0),p.push({l:E,an:E,add:c,n:i,anIndexes:[],val:s,line:u,animatorJustifyOffset:0}),2==f){if(c+=E,""===s||"\xa0"===s||e===r-1){for(""!==s&&"\xa0"!==s||(c-=E);d<=e;)p[d].an=c,p[d].ind=m,p[d].extra=E,d+=1;m+=1,c=0}}else if(3==f){if(c+=E,""===s||e===r-1){for(""===s&&(c-=E);d<=e;)p[d].an=c,p[d].ind=m,p[d].extra=E,d+=1;c=0,m+=1}}else p[m].ind=m,p[m].extra=0,m+=1;if(t.l=p,v=v<g?g:v,y.push(g),t.sz)t.boxWidth=t.sz[0],t.justifyOffset=0;else switch(t.boxWidth=v,t.j){case 1:t.justifyOffset=-t.boxWidth;break;case 2:t.justifyOffset=-t.boxWidth/2;break;default:t.justifyOffset=0}t.lineWidths=y;var V,R,B=l.a;n=B.length;var L,G,z=[];for(a=0;a<n;a+=1){for((V=B[a]).a.sc&&(t.strokeColorAnim=!0),V.a.sw&&(t.strokeWidthAnim=!0),(V.a.fc||V.a.fh||V.a.fs||V.a.fb)&&(t.fillColorAnim=!0),G=0,L=V.s.b,e=0;e<r;e+=1)(R=p[e]).anIndexes[a]=G,(1==L&&""!==R.val||2==L&&""!==R.val&&"\xa0"!==R.val||3==L&&(R.n||"\xa0"==R.val||e==r-1)||4==L&&(R.n||e==r-1))&&(1===V.s.rn&&z.push(G),G+=1);l.a[a].s.totalChars=G;var N,O=-1;if(1===V.s.rn)for(e=0;e<r;e+=1)O!=(R=p[e]).anIndexes[a]&&(O=R.anIndexes[a],N=z.splice(Math.floor(Math.random()*z.length),1)[0]),R.anIndexes[a]=N}t.yOffset=t.finalLineHeight||1.2*t.finalSize,t.ls=t.ls||0,t.ascent=b.ascent*t.finalSize/100},TextProperty.prototype.updateDocumentData=function(t,e){e=void 0===e?this.keysIndex:e;var r=this.copyData({},this.data.d.k[e].s);r=this.copyData(r,t),this.data.d.k[e].s=r,this.recalculate(e),this.elem.addDynamicProperty(this)},TextProperty.prototype.recalculate=function(t){var e=this.data.d.k[t].s;e.__complete=!1,this.keysIndex=0,this._isFirstFrame=!0,this.getValue(e)},TextProperty.prototype.canResizeFont=function(t){this.canResize=t,this.recalculate(this.keysIndex),this.elem.addDynamicProperty(this)},TextProperty.prototype.setMinimumFontSize=function(t){this.minimumFontSize=Math.floor(t)||1,this.recalculate(this.keysIndex),this.elem.addDynamicProperty(this)};var TextSelectorProp=function(){var l=Math.max,p=Math.min,m=Math.floor;function i(t,e){this._currentTextLength=-1,this.k=!1,this.data=e,this.elem=t,this.comp=t.comp,this.finalS=0,this.finalE=0,this.initDynamicPropertyContainer(t),this.s=PropertyFactory.getProp(t,e.s||{k:0},0,0,this),this.e="e"in e?PropertyFactory.getProp(t,e.e,0,0,this):{v:100},this.o=PropertyFactory.getProp(t,e.o||{k:0},0,0,this),this.xe=PropertyFactory.getProp(t,e.xe||{k:0},0,0,this),this.ne=PropertyFactory.getProp(t,e.ne||{k:0},0,0,this),this.a=PropertyFactory.getProp(t,e.a,0,.01,this),this.dynamicProperties.length||this.getValue()}return i.prototype={getMult:function(t){this._currentTextLength!==this.elem.textProperty.currentData.l.length&&this.getValue();var e=BezierFactory.getBezierEasing(this.ne.v/100,0,1-this.xe.v/100,1).get,r=0,i=this.finalS,s=this.finalE,a=this.data.sh;if(2==a)r=e(r=s===i?s<=t?1:0:l(0,p(.5/(s-i)+(t-i)/(s-i),1)));else if(3==a)r=e(r=s===i?s<=t?0:1:1-l(0,p(.5/(s-i)+(t-i)/(s-i),1)));else if(4==a)s===i?r=0:(r=l(0,p(.5/(s-i)+(t-i)/(s-i),1)))<.5?r*=2:r=1-2*(r-.5),r=e(r);else if(5==a){if(s===i)r=0;else{var n=s-i,o=-n/2+(t=p(l(0,t+.5-i),s-i)),h=n/2;r=Math.sqrt(1-o*o/(h*h))}r=e(r)}else r=6==a?e(r=s===i?0:(t=p(l(0,t+.5-i),s-i),(1+Math.cos(Math.PI+2*Math.PI*t/(s-i)))/2)):(t>=m(i)&&(r=t-i<0?1-(i-t):l(0,p(s-t,1))),e(r));return r*this.a.v},getValue:function(t){this.iterateDynamicProperties(),this._mdf=t||this._mdf,this._currentTextLength=this.elem.textProperty.currentData.l.length||0,t&&2===this.data.r&&(this.e.v=this._currentTextLength);var e=2===this.data.r?1:100/this.data.totalChars,r=this.o.v/e,i=this.s.v/e+r,s=this.e.v/e+r;if(s<i){var a=i;i=s,s=a}this.finalS=i,this.finalE=s}},extendPrototype([DynamicPropertyContainer],i),{getTextSelectorProp:function(t,e,r){return new i(t,e,r)}}}(),pool_factory=function(t,e,r,i){var s=0,a=t,n=createSizedArray(a);function o(){return s?n[s-=1]:e()}return{newElement:o,release:function(t){s===a&&(n=pooling.double(n),a*=2),r&&r(t),n[s]=t,s+=1}}},pooling={double:function(t){return t.concat(createSizedArray(t.length))}},point_pool=pool_factory(8,function(){return createTypedArray("float32",2)}),shape_pool=(EA=pool_factory(4,function(){return new ShapePath},function(t){var e,r=t._length;for(e=0;e<r;e+=1)point_pool.release(t.v[e]),point_pool.release(t.i[e]),point_pool.release(t.o[e]),t.v[e]=null,t.i[e]=null,t.o[e]=null;t._length=0,t.c=!1}),EA.clone=function(t){var e,r=EA.newElement(),i=void 0===t._length?t.v.length:t._length;for(r.setLength(i),r.c=t.c,e=0;e<i;e+=1)r.setTripleAt(t.v[e][0],t.v[e][1],t.o[e][0],t.o[e][1],t.i[e][0],t.i[e][1],e);return r},EA),EA,shapeCollection_pool=(NA={newShapeCollection:function(){var t;t=OA?QA[OA-=1]:new ShapeCollection;return t},release:function(t){var e,r=t._length;for(e=0;e<r;e+=1)shape_pool.release(t.shapes[e]);t._length=0,OA===PA&&(QA=pooling.double(QA),PA*=2);QA[OA]=t,OA+=1}},OA=0,PA=4,QA=createSizedArray(PA),NA),NA,OA,PA,QA,segments_length_pool=pool_factory(8,function(){return{lengths:[],totalLength:0}},function(t){var e,r=t.lengths.length;for(e=0;e<r;e+=1)bezier_length_pool.release(t.lengths[e]);t.lengths.length=0}),bezier_length_pool=pool_factory(8,function(){return{addedLength:0,percents:createTypedArray("float32",defaultCurveSegments),lengths:createTypedArray("float32",defaultCurveSegments)}});function BaseRenderer(){}function SVGRenderer(t,e){this.animationItem=t,this.layers=null,this.renderedFrame=-1,this.svgElement=createNS("svg");var r="";if(e&&e.title){var i=createNS("title"),s=createElementID();i.setAttribute("id",s),i.textContent=e.title,this.svgElement.appendChild(i),r+=s}if(e&&e.description){var a=createNS("desc"),n=createElementID();a.setAttribute("id",n),a.textContent=e.description,this.svgElement.appendChild(a),r+=" "+n}r&&this.svgElement.setAttribute("aria-labelledby",r);var o=createNS("defs");this.svgElement.appendChild(o);var h=createNS("g");this.svgElement.appendChild(h),this.layerElement=h,this.renderConfig={preserveAspectRatio:e&&e.preserveAspectRatio||"xMidYMid meet",imagePreserveAspectRatio:e&&e.imagePreserveAspectRatio||"xMidYMid slice",progressiveLoad:e&&e.progressiveLoad||!1,hideOnTransparent:!e||!1!==e.hideOnTransparent,viewBoxOnly:e&&e.viewBoxOnly||!1,viewBoxSize:e&&e.viewBoxSize||!1,className:e&&e.className||"",focusable:e&&e.focusable},this.globalData={_mdf:!1,frameNum:-1,defs:o,renderConfig:this.renderConfig},this.elements=[],this.pendingElements=[],this.destroyed=!1,this.rendererType="svg"}function CanvasRenderer(t,e){this.animationItem=t,this.renderConfig={clearCanvas:!e||void 0===e.clearCanvas||e.clearCanvas,context:e&&e.context||null,progressiveLoad:e&&e.progressiveLoad||!1,preserveAspectRatio:e&&e.preserveAspectRatio||"xMidYMid meet",imagePreserveAspectRatio:e&&e.imagePreserveAspectRatio||"xMidYMid slice",className:e&&e.className||""},this.renderConfig.dpr=e&&e.dpr||1,this.animationItem.wrapper&&(this.renderConfig.dpr=e&&e.dpr||window.devicePixelRatio||1),this.renderedFrame=-1,this.globalData={frameNum:-1,_mdf:!1,renderConfig:this.renderConfig,currentGlobalAlpha:-1},this.contextData=new CVContextData,this.elements=[],this.pendingElements=[],this.transformMat=new Matrix,this.completeLayers=!1,this.rendererType="canvas"}function HybridRenderer(t,e){this.animationItem=t,this.layers=null,this.renderedFrame=-1,this.renderConfig={className:e&&e.className||"",imagePreserveAspectRatio:e&&e.imagePreserveAspectRatio||"xMidYMid slice",hideOnTransparent:!e||!1!==e.hideOnTransparent},this.globalData={_mdf:!1,frameNum:-1,renderConfig:this.renderConfig},this.pendingElements=[],this.elements=[],this.threeDElements=[],this.destroyed=!1,this.camera=null,this.supports3d=!0,this.rendererType="html"}function MaskElement(t,e,r){this.data=t,this.element=e,this.globalData=r,this.storedData=[],this.masksProperties=this.data.masksProperties||[],this.maskElement=null;var i,s=this.globalData.defs,a=this.masksProperties?this.masksProperties.length:0;this.viewData=createSizedArray(a),this.solidPath="";var n,o,h,l,p,m,f,c=this.masksProperties,d=0,u=[],y=createElementID(),g="clipPath",v="clip-path";for(i=0;i<a;i++)if(("a"!==c[i].mode&&"n"!==c[i].mode||c[i].inv||100!==c[i].o.k||c[i].o.x)&&(v=g="mask"),"s"!=c[i].mode&&"i"!=c[i].mode||0!==d?l=null:((l=createNS("rect")).setAttribute("fill","#ffffff"),l.setAttribute("width",this.element.comp.data.w||0),l.setAttribute("height",this.element.comp.data.h||0),u.push(l)),n=createNS("path"),"n"!=c[i].mode){var b;if(d+=1,n.setAttribute("fill","s"===c[i].mode?"#000000":"#ffffff"),n.setAttribute("clip-rule","nonzero"),0!==c[i].x.k?(v=g="mask",f=PropertyFactory.getProp(this.element,c[i].x,0,null,this.element),b=createElementID(),(p=createNS("filter")).setAttribute("id",b),(m=createNS("feMorphology")).setAttribute("operator","erode"),m.setAttribute("in","SourceGraphic"),m.setAttribute("radius","0"),p.appendChild(m),s.appendChild(p),n.setAttribute("stroke","s"===c[i].mode?"#000000":"#ffffff")):f=m=null,this.storedData[i]={elem:n,x:f,expan:m,lastPath:"",lastOperator:"",filterId:b,lastRadius:0},"i"==c[i].mode){h=u.length;var E=createNS("g");for(o=0;o<h;o+=1)E.appendChild(u[o]);var x=createNS("mask");x.setAttribute("mask-type","alpha"),x.setAttribute("id",y+"_"+d),x.appendChild(n),s.appendChild(x),E.setAttribute("mask","url("+locationHref+"#"+y+"_"+d+")"),u.length=0,u.push(E)}else u.push(n);c[i].inv&&!this.solidPath&&(this.solidPath=this.createLayerSolidPath()),this.viewData[i]={elem:n,lastPath:"",op:PropertyFactory.getProp(this.element,c[i].o,0,.01,this.element),prop:ShapePropertyFactory.getShapeProp(this.element,c[i],3),invRect:l},this.viewData[i].prop.k||this.drawPath(c[i],this.viewData[i].prop.v,this.viewData[i])}else this.viewData[i]={op:PropertyFactory.getProp(this.element,c[i].o,0,.01,this.element),prop:ShapePropertyFactory.getShapeProp(this.element,c[i],3),elem:n,lastPath:""},s.appendChild(n);for(this.maskElement=createNS(g),a=u.length,i=0;i<a;i+=1)this.maskElement.appendChild(u[i]);0<d&&(this.maskElement.setAttribute("id",y),this.element.maskedElement.setAttribute(v,"url("+locationHref+"#"+y+")"),s.appendChild(this.maskElement)),this.viewData.length&&this.element.addRenderableComponent(this)}function HierarchyElement(){}function FrameElement(){}function TransformElement(){}function RenderableElement(){}function RenderableDOMElement(){}function ProcessedElement(t,e){this.elem=t,this.pos=e}function SVGStyleData(t,e){this.data=t,this.type=t.ty,this.d="",this.lvl=e,this._mdf=!1,this.closed=!0===t.hd,this.pElem=createNS("path"),this.msElem=null}function SVGShapeData(t,e,r){this.caches=[],this.styles=[],this.transformers=t,this.lStr="",this.sh=r,this.lvl=e,this._isAnimated=!!r.k;for(var i=0,s=t.length;i<s;){if(t[i].mProps.dynamicProperties.length){this._isAnimated=!0;break}i+=1}}function SVGTransformData(t,e,r){this.transform={mProps:t,op:e,container:r},this.elements=[],this._isAnimated=this.transform.mProps.dynamicProperties.length||this.transform.op.effectsSequence.length}function SVGStrokeStyleData(t,e,r){this.initDynamicPropertyContainer(t),this.getValue=this.iterateDynamicProperties,this.o=PropertyFactory.getProp(t,e.o,0,.01,this),this.w=PropertyFactory.getProp(t,e.w,0,null,this),this.d=new DashProperty(t,e.d||{},"svg",this),this.c=PropertyFactory.getProp(t,e.c,1,255,this),this.style=r,this._isAnimated=!!this._isAnimated}function SVGFillStyleData(t,e,r){this.initDynamicPropertyContainer(t),this.getValue=this.iterateDynamicProperties,this.o=PropertyFactory.getProp(t,e.o,0,.01,this),this.c=PropertyFactory.getProp(t,e.c,1,255,this),this.style=r}function SVGGradientFillStyleData(t,e,r){this.initDynamicPropertyContainer(t),this.getValue=this.iterateDynamicProperties,this.initGradientData(t,e,r)}function SVGGradientStrokeStyleData(t,e,r){this.initDynamicPropertyContainer(t),this.getValue=this.iterateDynamicProperties,this.w=PropertyFactory.getProp(t,e.w,0,null,this),this.d=new DashProperty(t,e.d||{},"svg",this),this.initGradientData(t,e,r),this._isAnimated=!!this._isAnimated}function ShapeGroupData(){this.it=[],this.prevViewData=[],this.gr=createNS("g")}BaseRenderer.prototype.checkLayers=function(t){var e,r,i=this.layers.length;for(this.completeLayers=!0,e=i-1;0<=e;e--)this.elements[e]||(r=this.layers[e]).ip-r.st<=t-this.layers[e].st&&r.op-r.st>t-this.layers[e].st&&this.buildItem(e),this.completeLayers=!!this.elements[e]&&this.completeLayers;this.checkPendingElements()},BaseRenderer.prototype.createItem=function(t){switch(t.ty){case 2:return this.createImage(t);case 0:return this.createComp(t);case 1:return this.createSolid(t);case 3:return this.createNull(t);case 4:return this.createShape(t);case 5:return this.createText(t);case 13:return this.createCamera(t)}return this.createNull(t)},BaseRenderer.prototype.createCamera=function(){throw new Error("You're using a 3d camera. Try the html renderer.")},BaseRenderer.prototype.buildAllItems=function(){var t,e=this.layers.length;for(t=0;t<e;t+=1)this.buildItem(t);this.checkPendingElements()},BaseRenderer.prototype.includeLayers=function(t){this.completeLayers=!1;var e,r,i=t.length,s=this.layers.length;for(e=0;e<i;e+=1)for(r=0;r<s;){if(this.layers[r].id==t[e].id){this.layers[r]=t[e];break}r+=1}},BaseRenderer.prototype.setProjectInterface=function(t){this.globalData.projectInterface=t},BaseRenderer.prototype.initItems=function(){this.globalData.progressiveLoad||this.buildAllItems()},BaseRenderer.prototype.buildElementParenting=function(t,e,r){for(var i=this.elements,s=this.layers,a=0,n=s.length;a<n;)s[a].ind==e&&(i[a]&&!0!==i[a]?(r.push(i[a]),i[a].setAsParent(),void 0!==s[a].parent?this.buildElementParenting(t,s[a].parent,r):t.setHierarchy(r)):(this.buildItem(a),this.addPendingElement(t))),a+=1},BaseRenderer.prototype.addPendingElement=function(t){this.pendingElements.push(t)},BaseRenderer.prototype.searchExtraCompositions=function(t){var e,r=t.length;for(e=0;e<r;e+=1)if(t[e].xt){var i=this.createComp(t[e]);i.initExpressions(),this.globalData.projectInterface.registerComposition(i)}},BaseRenderer.prototype.setupGlobalData=function(t,e){this.globalData.fontManager=new FontManager,this.globalData.fontManager.addChars(t.chars),this.globalData.fontManager.addFonts(t.fonts,e),this.globalData.getAssetData=this.animationItem.getAssetData.bind(this.animationItem),this.globalData.getAssetsPath=this.animationItem.getAssetsPath.bind(this.animationItem),this.globalData.imageLoader=this.animationItem.imagePreloader,this.globalData.frameId=0,this.globalData.frameRate=t.fr,this.globalData.nm=t.nm,this.globalData.compSize={w:t.w,h:t.h}},extendPrototype([BaseRenderer],SVGRenderer),SVGRenderer.prototype.createNull=function(t){return new NullElement(t,this.globalData,this)},SVGRenderer.prototype.createShape=function(t){return new SVGShapeElement(t,this.globalData,this)},SVGRenderer.prototype.createText=function(t){return new SVGTextElement(t,this.globalData,this)},SVGRenderer.prototype.createImage=function(t){return new IImageElement(t,this.globalData,this)},SVGRenderer.prototype.createComp=function(t){return new SVGCompElement(t,this.globalData,this)},SVGRenderer.prototype.createSolid=function(t){return new ISolidElement(t,this.globalData,this)},SVGRenderer.prototype.configAnimation=function(t){this.svgElement.setAttribute("xmlns","http://www.w3.org/2000/svg"),this.renderConfig.viewBoxSize?this.svgElement.setAttribute("viewBox",this.renderConfig.viewBoxSize):this.svgElement.setAttribute("viewBox","0 0 "+t.w+" "+t.h),this.renderConfig.viewBoxOnly||(this.svgElement.setAttribute("width",t.w),this.svgElement.setAttribute("height",t.h),this.svgElement.style.width="100%",this.svgElement.style.height="100%",this.svgElement.style.transform="translate3d(0,0,0)"),this.renderConfig.className&&this.svgElement.setAttribute("class",this.renderConfig.className),void 0!==this.renderConfig.focusable&&this.svgElement.setAttribute("focusable",this.renderConfig.focusable),this.svgElement.setAttribute("preserveAspectRatio",this.renderConfig.preserveAspectRatio),this.animationItem.wrapper.appendChild(this.svgElement);var e=this.globalData.defs;this.setupGlobalData(t,e),this.globalData.progressiveLoad=this.renderConfig.progressiveLoad,this.data=t;var r=createNS("clipPath"),i=createNS("rect");i.setAttribute("width",t.w),i.setAttribute("height",t.h),i.setAttribute("x",0),i.setAttribute("y",0);var s=createElementID();r.setAttribute("id",s),r.appendChild(i),this.layerElement.setAttribute("clip-path","url("+locationHref+"#"+s+")"),e.appendChild(r),this.layers=t.layers,this.elements=createSizedArray(t.layers.length)},SVGRenderer.prototype.destroy=function(){this.animationItem.wrapper.innerHTML="",this.layerElement=null,this.globalData.defs=null;var t,e=this.layers?this.layers.length:0;for(t=0;t<e;t++)this.elements[t]&&this.elements[t].destroy();this.elements.length=0,this.destroyed=!0,this.animationItem=null},SVGRenderer.prototype.updateContainerSize=function(){},SVGRenderer.prototype.buildItem=function(t){var e=this.elements;if(!e[t]&&99!=this.layers[t].ty){e[t]=!0;var r=this.createItem(this.layers[t]);e[t]=r,expressionsPlugin&&(0===this.layers[t].ty&&this.globalData.projectInterface.registerComposition(r),r.initExpressions()),this.appendElementInPos(r,t),this.layers[t].tt&&(this.elements[t-1]&&!0!==this.elements[t-1]?r.setMatte(e[t-1].layerId):(this.buildItem(t-1),this.addPendingElement(r)))}},SVGRenderer.prototype.checkPendingElements=function(){for(;this.pendingElements.length;){var t=this.pendingElements.pop();if(t.checkParenting(),t.data.tt)for(var e=0,r=this.elements.length;e<r;){if(this.elements[e]===t){t.setMatte(this.elements[e-1].layerId);break}e+=1}}},SVGRenderer.prototype.renderFrame=function(t){if(this.renderedFrame!==t&&!this.destroyed){null===t?t=this.renderedFrame:this.renderedFrame=t,this.globalData.frameNum=t,this.globalData.frameId+=1,this.globalData.projectInterface.currentFrame=t,this.globalData._mdf=!1;var e,r=this.layers.length;for(this.completeLayers||this.checkLayers(t),e=r-1;0<=e;e--)(this.completeLayers||this.elements[e])&&this.elements[e].prepareFrame(t-this.layers[e].st);if(this.globalData._mdf)for(e=0;e<r;e+=1)(this.completeLayers||this.elements[e])&&this.elements[e].renderFrame()}},SVGRenderer.prototype.appendElementInPos=function(t,e){var r=t.getBaseElement();if(r){for(var i,s=0;s<e;)this.elements[s]&&!0!==this.elements[s]&&this.elements[s].getBaseElement()&&(i=this.elements[s].getBaseElement()),s+=1;i?this.layerElement.insertBefore(r,i):this.layerElement.appendChild(r)}},SVGRenderer.prototype.hide=function(){this.layerElement.style.display="none"},SVGRenderer.prototype.show=function(){this.layerElement.style.display="block"},extendPrototype([BaseRenderer],CanvasRenderer),CanvasRenderer.prototype.createShape=function(t){return new CVShapeElement(t,this.globalData,this)},CanvasRenderer.prototype.createText=function(t){return new CVTextElement(t,this.globalData,this)},CanvasRenderer.prototype.createImage=function(t){return new CVImageElement(t,this.globalData,this)},CanvasRenderer.prototype.createComp=function(t){return new CVCompElement(t,this.globalData,this)},CanvasRenderer.prototype.createSolid=function(t){return new CVSolidElement(t,this.globalData,this)},CanvasRenderer.prototype.createNull=SVGRenderer.prototype.createNull,CanvasRenderer.prototype.ctxTransform=function(t){if(1!==t[0]||0!==t[1]||0!==t[4]||1!==t[5]||0!==t[12]||0!==t[13])if(this.renderConfig.clearCanvas){this.transformMat.cloneFromProps(t);var e=this.contextData.cTr.props;this.transformMat.transform(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15]),this.contextData.cTr.cloneFromProps(this.transformMat.props);var r=this.contextData.cTr.props;this.canvasContext.setTransform(r[0],r[1],r[4],r[5],r[12],r[13])}else this.canvasContext.transform(t[0],t[1],t[4],t[5],t[12],t[13])},CanvasRenderer.prototype.ctxOpacity=function(t){if(!this.renderConfig.clearCanvas)return this.canvasContext.globalAlpha*=t<0?0:t,void(this.globalData.currentGlobalAlpha=this.contextData.cO);this.contextData.cO*=t<0?0:t,this.globalData.currentGlobalAlpha!==this.contextData.cO&&(this.canvasContext.globalAlpha=this.contextData.cO,this.globalData.currentGlobalAlpha=this.contextData.cO)},CanvasRenderer.prototype.reset=function(){this.renderConfig.clearCanvas?this.contextData.reset():this.canvasContext.restore()},CanvasRenderer.prototype.save=function(t){if(this.renderConfig.clearCanvas){t&&this.canvasContext.save();var e=this.contextData.cTr.props;this.contextData._length<=this.contextData.cArrPos&&this.contextData.duplicate();var r,i=this.contextData.saved[this.contextData.cArrPos];for(r=0;r<16;r+=1)i[r]=e[r];this.contextData.savedOp[this.contextData.cArrPos]=this.contextData.cO,this.contextData.cArrPos+=1}else this.canvasContext.save()},CanvasRenderer.prototype.restore=function(t){if(this.renderConfig.clearCanvas){t&&(this.canvasContext.restore(),this.globalData.blendMode="source-over"),this.contextData.cArrPos-=1;var e,r=this.contextData.saved[this.contextData.cArrPos],i=this.contextData.cTr.props;for(e=0;e<16;e+=1)i[e]=r[e];this.canvasContext.setTransform(r[0],r[1],r[4],r[5],r[12],r[13]),r=this.contextData.savedOp[this.contextData.cArrPos],this.contextData.cO=r,this.globalData.currentGlobalAlpha!==r&&(this.canvasContext.globalAlpha=r,this.globalData.currentGlobalAlpha=r)}else this.canvasContext.restore()},CanvasRenderer.prototype.configAnimation=function(t){this.animationItem.wrapper?(this.animationItem.container=createTag("canvas"),this.animationItem.container.style.width="100%",this.animationItem.container.style.height="100%",this.animationItem.container.style.transformOrigin=this.animationItem.container.style.mozTransformOrigin=this.animationItem.container.style.webkitTransformOrigin=this.animationItem.container.style["-webkit-transform"]="0px 0px 0px",this.animationItem.wrapper.appendChild(this.animationItem.container),this.canvasContext=this.animationItem.container.getContext("2d"),this.renderConfig.className&&this.animationItem.container.setAttribute("class",this.renderConfig.className)):this.canvasContext=this.renderConfig.context,this.data=t,this.layers=t.layers,this.transformCanvas={w:t.w,h:t.h,sx:0,sy:0,tx:0,ty:0},this.setupGlobalData(t,document.body),this.globalData.canvasContext=this.canvasContext,(this.globalData.renderer=this).globalData.isDashed=!1,this.globalData.progressiveLoad=this.renderConfig.progressiveLoad,this.globalData.transformCanvas=this.transformCanvas,this.elements=createSizedArray(t.layers.length),this.updateContainerSize()},CanvasRenderer.prototype.updateContainerSize=function(){var t,e,r,i;if(this.reset(),this.animationItem.wrapper&&this.animationItem.container?(t=this.animationItem.wrapper.offsetWidth,e=this.animationItem.wrapper.offsetHeight,this.animationItem.container.setAttribute("width",t*this.renderConfig.dpr),this.animationItem.container.setAttribute("height",e*this.renderConfig.dpr)):(t=this.canvasContext.canvas.width*this.renderConfig.dpr,e=this.canvasContext.canvas.height*this.renderConfig.dpr),-1!==this.renderConfig.preserveAspectRatio.indexOf("meet")||-1!==this.renderConfig.preserveAspectRatio.indexOf("slice")){var s=this.renderConfig.preserveAspectRatio.split(" "),a=s[1]||"meet",n=s[0]||"xMidYMid",o=n.substr(0,4),h=n.substr(4);r=t/e,i=this.transformCanvas.w/this.transformCanvas.h,this.transformCanvas.sy=r<i&&"meet"===a||i<r&&"slice"===a?(this.transformCanvas.sx=t/(this.transformCanvas.w/this.renderConfig.dpr),t/(this.transformCanvas.w/this.renderConfig.dpr)):(this.transformCanvas.sx=e/(this.transformCanvas.h/this.renderConfig.dpr),e/(this.transformCanvas.h/this.renderConfig.dpr)),this.transformCanvas.tx="xMid"===o&&(i<r&&"meet"===a||r<i&&"slice"===a)?(t-this.transformCanvas.w*(e/this.transformCanvas.h))/2*this.renderConfig.dpr:"xMax"===o&&(i<r&&"meet"===a||r<i&&"slice"===a)?(t-this.transformCanvas.w*(e/this.transformCanvas.h))*this.renderConfig.dpr:0,this.transformCanvas.ty="YMid"===h&&(r<i&&"meet"===a||i<r&&"slice"===a)?(e-this.transformCanvas.h*(t/this.transformCanvas.w))/2*this.renderConfig.dpr:"YMax"===h&&(r<i&&"meet"===a||i<r&&"slice"===a)?(e-this.transformCanvas.h*(t/this.transformCanvas.w))*this.renderConfig.dpr:0}else"none"==this.renderConfig.preserveAspectRatio?(this.transformCanvas.sx=t/(this.transformCanvas.w/this.renderConfig.dpr),this.transformCanvas.sy=e/(this.transformCanvas.h/this.renderConfig.dpr)):(this.transformCanvas.sx=this.renderConfig.dpr,this.transformCanvas.sy=this.renderConfig.dpr),this.transformCanvas.tx=0,this.transformCanvas.ty=0;this.transformCanvas.props=[this.transformCanvas.sx,0,0,0,0,this.transformCanvas.sy,0,0,0,0,1,0,this.transformCanvas.tx,this.transformCanvas.ty,0,1],this.ctxTransform(this.transformCanvas.props),this.canvasContext.beginPath(),this.canvasContext.rect(0,0,this.transformCanvas.w,this.transformCanvas.h),this.canvasContext.closePath(),this.canvasContext.clip(),this.renderFrame(this.renderedFrame,!0)},CanvasRenderer.prototype.destroy=function(){var t;for(this.renderConfig.clearCanvas&&(this.animationItem.wrapper.innerHTML=""),t=(this.layers?this.layers.length:0)-1;0<=t;t-=1)this.elements[t]&&this.elements[t].destroy();this.elements.length=0,this.globalData.canvasContext=null,this.animationItem.container=null,this.destroyed=!0},CanvasRenderer.prototype.renderFrame=function(t,e){if((this.renderedFrame!==t||!0!==this.renderConfig.clearCanvas||e)&&!this.destroyed&&-1!==t){this.renderedFrame=t,this.globalData.frameNum=t-this.animationItem._isFirstFrame,this.globalData.frameId+=1,this.globalData._mdf=!this.renderConfig.clearCanvas||e,this.globalData.projectInterface.currentFrame=t;var r,i=this.layers.length;for(this.completeLayers||this.checkLayers(t),r=0;r<i;r++)(this.completeLayers||this.elements[r])&&this.elements[r].prepareFrame(t-this.layers[r].st);if(this.globalData._mdf){for(!0===this.renderConfig.clearCanvas?this.canvasContext.clearRect(0,0,this.transformCanvas.w,this.transformCanvas.h):this.save(),r=i-1;0<=r;r-=1)(this.completeLayers||this.elements[r])&&this.elements[r].renderFrame();!0!==this.renderConfig.clearCanvas&&this.restore()}}},CanvasRenderer.prototype.buildItem=function(t){var e=this.elements;if(!e[t]&&99!=this.layers[t].ty){var r=this.createItem(this.layers[t],this,this.globalData);(e[t]=r).initExpressions()}},CanvasRenderer.prototype.checkPendingElements=function(){for(;this.pendingElements.length;){this.pendingElements.pop().checkParenting()}},CanvasRenderer.prototype.hide=function(){this.animationItem.container.style.display="none"},CanvasRenderer.prototype.show=function(){this.animationItem.container.style.display="block"},extendPrototype([BaseRenderer],HybridRenderer),HybridRenderer.prototype.buildItem=SVGRenderer.prototype.buildItem,HybridRenderer.prototype.checkPendingElements=function(){for(;this.pendingElements.length;){this.pendingElements.pop().checkParenting()}},HybridRenderer.prototype.appendElementInPos=function(t,e){var r=t.getBaseElement();if(r){var i=this.layers[e];if(i.ddd&&this.supports3d)this.addTo3dContainer(r,e);else if(this.threeDElements)this.addTo3dContainer(r,e);else{for(var s,a,n=0;n<e;)this.elements[n]&&!0!==this.elements[n]&&this.elements[n].getBaseElement&&(a=this.elements[n],s=(this.layers[n].ddd?this.getThreeDContainerByPos(n):a.getBaseElement())||s),n+=1;s?i.ddd&&this.supports3d||this.layerElement.insertBefore(r,s):i.ddd&&this.supports3d||this.layerElement.appendChild(r)}}},HybridRenderer.prototype.createShape=function(t){return this.supports3d?new HShapeElement(t,this.globalData,this):new SVGShapeElement(t,this.globalData,this)},HybridRenderer.prototype.createText=function(t){return this.supports3d?new HTextElement(t,this.globalData,this):new SVGTextElement(t,this.globalData,this)},HybridRenderer.prototype.createCamera=function(t){return this.camera=new HCameraElement(t,this.globalData,this),this.camera},HybridRenderer.prototype.createImage=function(t){return this.supports3d?new HImageElement(t,this.globalData,this):new IImageElement(t,this.globalData,this)},HybridRenderer.prototype.createComp=function(t){return this.supports3d?new HCompElement(t,this.globalData,this):new SVGCompElement(t,this.globalData,this)},HybridRenderer.prototype.createSolid=function(t){return this.supports3d?new HSolidElement(t,this.globalData,this):new ISolidElement(t,this.globalData,this)},HybridRenderer.prototype.createNull=SVGRenderer.prototype.createNull,HybridRenderer.prototype.getThreeDContainerByPos=function(t){for(var e=0,r=this.threeDElements.length;e<r;){if(this.threeDElements[e].startPos<=t&&this.threeDElements[e].endPos>=t)return this.threeDElements[e].perspectiveElem;e+=1}},HybridRenderer.prototype.createThreeDContainer=function(t,e){var r=createTag("div");styleDiv(r);var i=createTag("div");styleDiv(i),"3d"===e&&(r.style.width=this.globalData.compSize.w+"px",r.style.height=this.globalData.compSize.h+"px",r.style.transformOrigin=r.style.mozTransformOrigin=r.style.webkitTransformOrigin="50% 50%",i.style.transform=i.style.webkitTransform="matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)"),r.appendChild(i);var s={container:i,perspectiveElem:r,startPos:t,endPos:t,type:e};return this.threeDElements.push(s),s},HybridRenderer.prototype.build3dContainers=function(){var t,e,r=this.layers.length,i="";for(t=0;t<r;t+=1)this.layers[t].ddd&&3!==this.layers[t].ty?"3d"!==i&&(i="3d",e=this.createThreeDContainer(t,"3d")):"2d"!==i&&(i="2d",e=this.createThreeDContainer(t,"2d")),e.endPos=Math.max(e.endPos,t);for(t=(r=this.threeDElements.length)-1;0<=t;t--)this.resizerElem.appendChild(this.threeDElements[t].perspectiveElem)},HybridRenderer.prototype.addTo3dContainer=function(t,e){for(var r=0,i=this.threeDElements.length;r<i;){if(e<=this.threeDElements[r].endPos){for(var s,a=this.threeDElements[r].startPos;a<e;)this.elements[a]&&this.elements[a].getBaseElement&&(s=this.elements[a].getBaseElement()),a+=1;s?this.threeDElements[r].container.insertBefore(t,s):this.threeDElements[r].container.appendChild(t);break}r+=1}},HybridRenderer.prototype.configAnimation=function(t){var e=createTag("div"),r=this.animationItem.wrapper;e.style.width=t.w+"px",e.style.height=t.h+"px",styleDiv(this.resizerElem=e),e.style.transformStyle=e.style.webkitTransformStyle=e.style.mozTransformStyle="flat",this.renderConfig.className&&e.setAttribute("class",this.renderConfig.className),r.appendChild(e),e.style.overflow="hidden";var i=createNS("svg");i.setAttribute("width","1"),i.setAttribute("height","1"),styleDiv(i),this.resizerElem.appendChild(i);var s=createNS("defs");i.appendChild(s),this.data=t,this.setupGlobalData(t,i),this.globalData.defs=s,this.layers=t.layers,this.layerElement=this.resizerElem,this.build3dContainers(),this.updateContainerSize()},HybridRenderer.prototype.destroy=function(){this.animationItem.wrapper.innerHTML="",this.animationItem.container=null,this.globalData.defs=null;var t,e=this.layers?this.layers.length:0;for(t=0;t<e;t++)this.elements[t].destroy();this.elements.length=0,this.destroyed=!0,this.animationItem=null},HybridRenderer.prototype.updateContainerSize=function(){var t,e,r,i,s=this.animationItem.wrapper.offsetWidth,a=this.animationItem.wrapper.offsetHeight;i=s/a<this.globalData.compSize.w/this.globalData.compSize.h?(t=s/this.globalData.compSize.w,e=s/this.globalData.compSize.w,r=0,(a-this.globalData.compSize.h*(s/this.globalData.compSize.w))/2):(t=a/this.globalData.compSize.h,e=a/this.globalData.compSize.h,r=(s-this.globalData.compSize.w*(a/this.globalData.compSize.h))/2,0),this.resizerElem.style.transform=this.resizerElem.style.webkitTransform="matrix3d("+t+",0,0,0,0,"+e+",0,0,0,0,1,0,"+r+","+i+",0,1)"},HybridRenderer.prototype.renderFrame=SVGRenderer.prototype.renderFrame,HybridRenderer.prototype.hide=function(){this.resizerElem.style.display="none"},HybridRenderer.prototype.show=function(){this.resizerElem.style.display="block"},HybridRenderer.prototype.initItems=function(){if(this.buildAllItems(),this.camera)this.camera.setup();else{var t,e=this.globalData.compSize.w,r=this.globalData.compSize.h,i=this.threeDElements.length;for(t=0;t<i;t+=1)this.threeDElements[t].perspectiveElem.style.perspective=this.threeDElements[t].perspectiveElem.style.webkitPerspective=Math.sqrt(Math.pow(e,2)+Math.pow(r,2))+"px"}},HybridRenderer.prototype.searchExtraCompositions=function(t){var e,r=t.length,i=createTag("div");for(e=0;e<r;e+=1)if(t[e].xt){var s=this.createComp(t[e],i,this.globalData.comp,null);s.initExpressions(),this.globalData.projectInterface.registerComposition(s)}},MaskElement.prototype.getMaskProperty=function(t){return this.viewData[t].prop},MaskElement.prototype.renderFrame=function(t){var e,r=this.element.finalTransform.mat,i=this.masksProperties.length;for(e=0;e<i;e++)if((this.viewData[e].prop._mdf||t)&&this.drawPath(this.masksProperties[e],this.viewData[e].prop.v,this.viewData[e]),(this.viewData[e].op._mdf||t)&&this.viewData[e].elem.setAttribute("fill-opacity",this.viewData[e].op.v),"n"!==this.masksProperties[e].mode&&(this.viewData[e].invRect&&(this.element.finalTransform.mProp._mdf||t)&&(this.viewData[e].invRect.setAttribute("x",-r.props[12]),this.viewData[e].invRect.setAttribute("y",-r.props[13])),this.storedData[e].x&&(this.storedData[e].x._mdf||t))){var s=this.storedData[e].expan;this.storedData[e].x.v<0?("erode"!==this.storedData[e].lastOperator&&(this.storedData[e].lastOperator="erode",this.storedData[e].elem.setAttribute("filter","url("+locationHref+"#"+this.storedData[e].filterId+")")),s.setAttribute("radius",-this.storedData[e].x.v)):("dilate"!==this.storedData[e].lastOperator&&(this.storedData[e].lastOperator="dilate",this.storedData[e].elem.setAttribute("filter",null)),this.storedData[e].elem.setAttribute("stroke-width",2*this.storedData[e].x.v))}},MaskElement.prototype.getMaskelement=function(){return this.maskElement},MaskElement.prototype.createLayerSolidPath=function(){var t="M0,0 ";return t+=" h"+this.globalData.compSize.w,t+=" v"+this.globalData.compSize.h,t+=" h-"+this.globalData.compSize.w,t+=" v-"+this.globalData.compSize.h+" "},MaskElement.prototype.drawPath=function(t,e,r){var i,s,a=" M"+e.v[0][0]+","+e.v[0][1];for(s=e._length,i=1;i<s;i+=1)a+=" C"+e.o[i-1][0]+","+e.o[i-1][1]+" "+e.i[i][0]+","+e.i[i][1]+" "+e.v[i][0]+","+e.v[i][1];if(e.c&&1<s&&(a+=" C"+e.o[i-1][0]+","+e.o[i-1][1]+" "+e.i[0][0]+","+e.i[0][1]+" "+e.v[0][0]+","+e.v[0][1]),r.lastPath!==a){var n="";r.elem&&(e.c&&(n=t.inv?this.solidPath+a:a),r.elem.setAttribute("d",n)),r.lastPath=a}},MaskElement.prototype.destroy=function(){this.element=null,this.globalData=null,this.maskElement=null,this.data=null,this.masksProperties=null},HierarchyElement.prototype={initHierarchy:function(){this.hierarchy=[],this._isParent=!1,this.checkParenting()},setHierarchy:function(t){this.hierarchy=t},setAsParent:function(){this._isParent=!0},checkParenting:function(){void 0!==this.data.parent&&this.comp.buildElementParenting(this,this.data.parent,[])}},FrameElement.prototype={initFrame:function(){this._isFirstFrame=!1,this.dynamicProperties=[],this._mdf=!1},prepareProperties:function(t,e){var r,i=this.dynamicProperties.length;for(r=0;r<i;r+=1)(e||this._isParent&&"transform"===this.dynamicProperties[r].propType)&&(this.dynamicProperties[r].getValue(),this.dynamicProperties[r]._mdf&&(this.globalData._mdf=!0,this._mdf=!0))},addDynamicProperty:function(t){-1===this.dynamicProperties.indexOf(t)&&this.dynamicProperties.push(t)}},TransformElement.prototype={initTransform:function(){this.finalTransform={mProp:this.data.ks?TransformPropertyFactory.getTransformProperty(this,this.data.ks,this):{o:0},_matMdf:!1,_opMdf:!1,mat:new Matrix},this.data.ao&&(this.finalTransform.mProp.autoOriented=!0),this.data.ty},renderTransform:function(){if(this.finalTransform._opMdf=this.finalTransform.mProp.o._mdf||this._isFirstFrame,this.finalTransform._matMdf=this.finalTransform.mProp._mdf||this._isFirstFrame,this.hierarchy){var t,e=this.finalTransform.mat,r=0,i=this.hierarchy.length;if(!this.finalTransform._matMdf)for(;r<i;){if(this.hierarchy[r].finalTransform.mProp._mdf){this.finalTransform._matMdf=!0;break}r+=1}if(this.finalTransform._matMdf)for(t=this.finalTransform.mProp.v.props,e.cloneFromProps(t),r=0;r<i;r+=1)t=this.hierarchy[r].finalTransform.mProp.v.props,e.transform(t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15])}},globalToLocal:function(t){var e=[];e.push(this.finalTransform);for(var r=!0,i=this.comp;r;)i.finalTransform?(i.data.hasMask&&e.splice(0,0,i.finalTransform),i=i.comp):r=!1;var s,a,n=e.length;for(s=0;s<n;s+=1)a=e[s].mat.applyToPointArray(0,0,0),t=[t[0]-a[0],t[1]-a[1],0];return t},mHelper:new Matrix},RenderableElement.prototype={initRenderable:function(){this.isInRange=!1,this.hidden=!1,this.isTransparent=!1,this.renderableComponents=[]},addRenderableComponent:function(t){-1===this.renderableComponents.indexOf(t)&&this.renderableComponents.push(t)},removeRenderableComponent:function(t){-1!==this.renderableComponents.indexOf(t)&&this.renderableComponents.splice(this.renderableComponents.indexOf(t),1)},prepareRenderableFrame:function(t){this.checkLayerLimits(t)},checkTransparency:function(){this.finalTransform.mProp.o.v<=0?!this.isTransparent&&this.globalData.renderConfig.hideOnTransparent&&(this.isTransparent=!0,this.hide()):this.isTransparent&&(this.isTransparent=!1,this.show())},checkLayerLimits:function(t){this.data.ip-this.data.st<=t&&this.data.op-this.data.st>t?!0!==this.isInRange&&(this.globalData._mdf=!0,this._mdf=!0,this.isInRange=!0,this.show()):!1!==this.isInRange&&(this.globalData._mdf=!0,this.isInRange=!1,this.hide())},renderRenderable:function(){var t,e=this.renderableComponents.length;for(t=0;t<e;t+=1)this.renderableComponents[t].renderFrame(this._isFirstFrame)},sourceRectAtTime:function(){return{top:0,left:0,width:100,height:100}},getLayerSize:function(){return 5===this.data.ty?{w:this.data.textData.width,h:this.data.textData.height}:{w:this.data.width,h:this.data.height}}},extendPrototype([RenderableElement,createProxyFunction({initElement:function(t,e,r){this.initFrame(),this.initBaseData(t,e,r),this.initTransform(t,e,r),this.initHierarchy(),this.initRenderable(),this.initRendererElement(),this.createContainerElements(),this.createRenderableComponents(),this.createContent(),this.hide()},hide:function(){this.hidden||this.isInRange&&!this.isTransparent||((this.baseElement||this.layerElement).style.display="none",this.hidden=!0)},show:function(){this.isInRange&&!this.isTransparent&&(this.data.hd||((this.baseElement||this.layerElement).style.display="block"),this.hidden=!1,this._isFirstFrame=!0)},renderFrame:function(){this.data.hd||this.hidden||(this.renderTransform(),this.renderRenderable(),this.renderElement(),this.renderInnerContent(),this._isFirstFrame&&(this._isFirstFrame=!1))},renderInnerContent:function(){},prepareFrame:function(t){this._mdf=!1,this.prepareRenderableFrame(t),this.prepareProperties(t,this.isInRange),this.checkTransparency()},destroy:function(){this.innerElem=null,this.destroyBaseElement()}})],RenderableDOMElement),SVGStyleData.prototype.reset=function(){this.d="",this._mdf=!1},SVGShapeData.prototype.setAsAnimated=function(){this._isAnimated=!0},extendPrototype([DynamicPropertyContainer],SVGStrokeStyleData),extendPrototype([DynamicPropertyContainer],SVGFillStyleData),SVGGradientFillStyleData.prototype.initGradientData=function(t,e,r){this.o=PropertyFactory.getProp(t,e.o,0,.01,this),this.s=PropertyFactory.getProp(t,e.s,1,null,this),this.e=PropertyFactory.getProp(t,e.e,1,null,this),this.h=PropertyFactory.getProp(t,e.h||{k:0},0,.01,this),this.a=PropertyFactory.getProp(t,e.a||{k:0},0,degToRads,this),this.g=new GradientProperty(t,e.g,this),this.style=r,this.stops=[],this.setGradientData(r.pElem,e),this.setGradientOpacity(e,r),this._isAnimated=!!this._isAnimated},SVGGradientFillStyleData.prototype.setGradientData=function(t,e){var r=createElementID(),i=createNS(1===e.t?"linearGradient":"radialGradient");i.setAttribute("id",r),i.setAttribute("spreadMethod","pad"),i.setAttribute("gradientUnits","userSpaceOnUse");var s,a,n,o=[];for(n=4*e.g.p,a=0;a<n;a+=4)s=createNS("stop"),i.appendChild(s),o.push(s);t.setAttribute("gf"===e.ty?"fill":"stroke","url("+locationHref+"#"+r+")"),this.gf=i,this.cst=o},SVGGradientFillStyleData.prototype.setGradientOpacity=function(t,e){if(this.g._hasOpacity&&!this.g._collapsable){var r,i,s,a=createNS("mask"),n=createNS("path");a.appendChild(n);var o=createElementID(),h=createElementID();a.setAttribute("id",h);var l=createNS(1===t.t?"linearGradient":"radialGradient");l.setAttribute("id",o),l.setAttribute("spreadMethod","pad"),l.setAttribute("gradientUnits","userSpaceOnUse"),s=t.g.k.k[0].s?t.g.k.k[0].s.length:t.g.k.k.length;var p=this.stops;for(i=4*t.g.p;i<s;i+=2)(r=createNS("stop")).setAttribute("stop-color","rgb(255,255,255)"),l.appendChild(r),p.push(r);n.setAttribute("gf"===t.ty?"fill":"stroke","url("+locationHref+"#"+o+")"),this.of=l,this.ms=a,this.ost=p,this.maskId=h,e.msElem=n}},extendPrototype([DynamicPropertyContainer],SVGGradientFillStyleData),extendPrototype([SVGGradientFillStyleData,DynamicPropertyContainer],SVGGradientStrokeStyleData);var SVGElementsRenderer=function(){var y=new Matrix,g=new Matrix;function e(t,e,r){(r||e.transform.op._mdf)&&e.transform.container.setAttribute("opacity",e.transform.op.v),(r||e.transform.mProps._mdf)&&e.transform.container.setAttribute("transform",e.transform.mProps.v.to2dCSS())}function r(t,e,r){var i,s,a,n,o,h,l,p,m,f,c,d=e.styles.length,u=e.lvl;for(h=0;h<d;h+=1){if(n=e.sh._mdf||r,e.styles[h].lvl<u){for(p=g.reset(),f=u-e.styles[h].lvl,c=e.transformers.length-1;!n&&0<f;)n=e.transformers[c].mProps._mdf||n,f--,c--;if(n)for(f=u-e.styles[h].lvl,c=e.transformers.length-1;0<f;)m=e.transformers[c].mProps.v.props,p.transform(m[0],m[1],m[2],m[3],m[4],m[5],m[6],m[7],m[8],m[9],m[10],m[11],m[12],m[13],m[14],m[15]),f--,c--}else p=y;if(s=(l=e.sh.paths)._length,n){for(a="",i=0;i<s;i+=1)(o=l.shapes[i])&&o._length&&(a+=buildShapeString(o,o._length,o.c,p));e.caches[h]=a}else a=e.caches[h];e.styles[h].d+=!0===t.hd?"":a,e.styles[h]._mdf=n||e.styles[h]._mdf}}function i(t,e,r){var i=e.style;(e.c._mdf||r)&&i.pElem.setAttribute("fill","rgb("+bm_floor(e.c.v[0])+","+bm_floor(e.c.v[1])+","+bm_floor(e.c.v[2])+")"),(e.o._mdf||r)&&i.pElem.setAttribute("fill-opacity",e.o.v)}function s(t,e,r){a(t,e,r),n(t,e,r)}function a(t,e,r){var i,s,a,n,o,h=e.gf,l=e.g._hasOpacity,p=e.s.v,m=e.e.v;if(e.o._mdf||r){var f="gf"===t.ty?"fill-opacity":"stroke-opacity";e.style.pElem.setAttribute(f,e.o.v)}if(e.s._mdf||r){var c=1===t.t?"x1":"cx",d="x1"===c?"y1":"cy";h.setAttribute(c,p[0]),h.setAttribute(d,p[1]),l&&!e.g._collapsable&&(e.of.setAttribute(c,p[0]),e.of.setAttribute(d,p[1]))}if(e.g._cmdf||r){i=e.cst;var u=e.g.c;for(a=i.length,s=0;s<a;s+=1)(n=i[s]).setAttribute("offset",u[4*s]+"%"),n.setAttribute("stop-color","rgb("+u[4*s+1]+","+u[4*s+2]+","+u[4*s+3]+")")}if(l&&(e.g._omdf||r)){var y=e.g.o;for(a=(i=e.g._collapsable?e.cst:e.ost).length,s=0;s<a;s+=1)n=i[s],e.g._collapsable||n.setAttribute("offset",y[2*s]+"%"),n.setAttribute("stop-opacity",y[2*s+1])}if(1===t.t)(e.e._mdf||r)&&(h.setAttribute("x2",m[0]),h.setAttribute("y2",m[1]),l&&!e.g._collapsable&&(e.of.setAttribute("x2",m[0]),e.of.setAttribute("y2",m[1])));else if((e.s._mdf||e.e._mdf||r)&&(o=Math.sqrt(Math.pow(p[0]-m[0],2)+Math.pow(p[1]-m[1],2)),h.setAttribute("r",o),l&&!e.g._collapsable&&e.of.setAttribute("r",o)),e.e._mdf||e.h._mdf||e.a._mdf||r){o||(o=Math.sqrt(Math.pow(p[0]-m[0],2)+Math.pow(p[1]-m[1],2)));var g=Math.atan2(m[1]-p[1],m[0]-p[0]),v=o*(1<=e.h.v?.99:e.h.v<=-1?-.99:e.h.v),b=Math.cos(g+e.a.v)*v+p[0],E=Math.sin(g+e.a.v)*v+p[1];h.setAttribute("fx",b),h.setAttribute("fy",E),l&&!e.g._collapsable&&(e.of.setAttribute("fx",b),e.of.setAttribute("fy",E))}}function n(t,e,r){var i=e.style,s=e.d;s&&(s._mdf||r)&&s.dashStr&&(i.pElem.setAttribute("stroke-dasharray",s.dashStr),i.pElem.setAttribute("stroke-dashoffset",s.dashoffset[0])),e.c&&(e.c._mdf||r)&&i.pElem.setAttribute("stroke","rgb("+bm_floor(e.c.v[0])+","+bm_floor(e.c.v[1])+","+bm_floor(e.c.v[2])+")"),(e.o._mdf||r)&&i.pElem.setAttribute("stroke-opacity",e.o.v),(e.w._mdf||r)&&(i.pElem.setAttribute("stroke-width",e.w.v),i.msElem&&i.msElem.setAttribute("stroke-width",e.w.v))}return{createRenderFunction:function(t){t.ty;switch(t.ty){case"fl":return i;case"gf":return a;case"gs":return s;case"st":return n;case"sh":case"el":case"rc":case"sr":return r;case"tr":return e}}}}();function ShapeTransformManager(){this.sequences={},this.sequenceList=[],this.transform_key_count=0}function CVShapeData(t,e,r,i){this.styledShapes=[],this.tr=[0,0,0,0,0,0];var s=4;"rc"==e.ty?s=5:"el"==e.ty?s=6:"sr"==e.ty&&(s=7),this.sh=ShapePropertyFactory.getShapeProp(t,e,s,t);var a,n,o=r.length;for(a=0;a<o;a+=1)r[a].closed||(n={transforms:i.addTransformSequence(r[a].transforms),trNodes:[]},this.styledShapes.push(n),r[a].elements.push(n))}function BaseElement(){}function NullElement(t,e,r){this.initFrame(),this.initBaseData(t,e,r),this.initFrame(),this.initTransform(t,e,r),this.initHierarchy()}function SVGBaseElement(){}function IShapeElement(){}function ITextElement(){}function ICompElement(){}function IImageElement(t,e,r){this.assetData=e.getAssetData(t.refId),this.initElement(t,e,r),this.sourceRect={top:0,left:0,width:this.assetData.w,height:this.assetData.h}}function ISolidElement(t,e,r){this.initElement(t,e,r)}function SVGCompElement(t,e,r){this.layers=t.layers,this.supports3d=!0,this.completeLayers=!1,this.pendingElements=[],this.elements=this.layers?createSizedArray(this.layers.length):[],this.initElement(t,e,r),this.tm=t.tm?PropertyFactory.getProp(this,t.tm,0,e.frameRate,this):{_placeholder:!0}}function SVGTextElement(t,e,r){this.textSpans=[],this.renderType="svg",this.initElement(t,e,r)}function SVGShapeElement(t,e,r){this.shapes=[],this.shapesData=t.shapes,this.stylesList=[],this.shapeModifiers=[],this.itemsData=[],this.processedElements=[],this.animatedContents=[],this.initElement(t,e,r),this.prevViewData=[]}function SVGTintFilter(t,e){this.filterManager=e;var r=createNS("feColorMatrix");if(r.setAttribute("type","matrix"),r.setAttribute("color-interpolation-filters","linearRGB"),r.setAttribute("values","0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0"),r.setAttribute("result","f1"),t.appendChild(r),(r=createNS("feColorMatrix")).setAttribute("type","matrix"),r.setAttribute("color-interpolation-filters","sRGB"),r.setAttribute("values","1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0"),r.setAttribute("result","f2"),t.appendChild(r),this.matrixFilter=r,100!==e.effectElements[2].p.v||e.effectElements[2].p.k){var i,s=createNS("feMerge");t.appendChild(s),(i=createNS("feMergeNode")).setAttribute("in","SourceGraphic"),s.appendChild(i),(i=createNS("feMergeNode")).setAttribute("in","f2"),s.appendChild(i)}}function SVGFillFilter(t,e){this.filterManager=e;var r=createNS("feColorMatrix");r.setAttribute("type","matrix"),r.setAttribute("color-interpolation-filters","sRGB"),r.setAttribute("values","1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0"),t.appendChild(r),this.matrixFilter=r}function SVGGaussianBlurEffect(t,e){t.setAttribute("x","-100%"),t.setAttribute("y","-100%"),t.setAttribute("width","300%"),t.setAttribute("height","300%"),this.filterManager=e;var r=createNS("feGaussianBlur");t.appendChild(r),this.feGaussianBlur=r}function SVGStrokeEffect(t,e){this.initialized=!1,this.filterManager=e,this.elem=t,this.paths=[]}function SVGTritoneFilter(t,e){this.filterManager=e;var r=createNS("feColorMatrix");r.setAttribute("type","matrix"),r.setAttribute("color-interpolation-filters","linearRGB"),r.setAttribute("values","0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0"),r.setAttribute("result","f1"),t.appendChild(r);var i=createNS("feComponentTransfer");i.setAttribute("color-interpolation-filters","sRGB"),t.appendChild(i),this.matrixFilter=i;var s=createNS("feFuncR");s.setAttribute("type","table"),i.appendChild(s),this.feFuncR=s;var a=createNS("feFuncG");a.setAttribute("type","table"),i.appendChild(a),this.feFuncG=a;var n=createNS("feFuncB");n.setAttribute("type","table"),i.appendChild(n),this.feFuncB=n}function SVGProLevelsFilter(t,e){this.filterManager=e;var r=this.filterManager.effectElements,i=createNS("feComponentTransfer");(r[10].p.k||0!==r[10].p.v||r[11].p.k||1!==r[11].p.v||r[12].p.k||1!==r[12].p.v||r[13].p.k||0!==r[13].p.v||r[14].p.k||1!==r[14].p.v)&&(this.feFuncR=this.createFeFunc("feFuncR",i)),(r[17].p.k||0!==r[17].p.v||r[18].p.k||1!==r[18].p.v||r[19].p.k||1!==r[19].p.v||r[20].p.k||0!==r[20].p.v||r[21].p.k||1!==r[21].p.v)&&(this.feFuncG=this.createFeFunc("feFuncG",i)),(r[24].p.k||0!==r[24].p.v||r[25].p.k||1!==r[25].p.v||r[26].p.k||1!==r[26].p.v||r[27].p.k||0!==r[27].p.v||r[28].p.k||1!==r[28].p.v)&&(this.feFuncB=this.createFeFunc("feFuncB",i)),(r[31].p.k||0!==r[31].p.v||r[32].p.k||1!==r[32].p.v||r[33].p.k||1!==r[33].p.v||r[34].p.k||0!==r[34].p.v||r[35].p.k||1!==r[35].p.v)&&(this.feFuncA=this.createFeFunc("feFuncA",i)),(this.feFuncR||this.feFuncG||this.feFuncB||this.feFuncA)&&(i.setAttribute("color-interpolation-filters","sRGB"),t.appendChild(i),i=createNS("feComponentTransfer")),(r[3].p.k||0!==r[3].p.v||r[4].p.k||1!==r[4].p.v||r[5].p.k||1!==r[5].p.v||r[6].p.k||0!==r[6].p.v||r[7].p.k||1!==r[7].p.v)&&(i.setAttribute("color-interpolation-filters","sRGB"),t.appendChild(i),this.feFuncRComposed=this.createFeFunc("feFuncR",i),this.feFuncGComposed=this.createFeFunc("feFuncG",i),this.feFuncBComposed=this.createFeFunc("feFuncB",i))}function SVGDropShadowEffect(t,e){t.setAttribute("x","-100%"),t.setAttribute("y","-100%"),t.setAttribute("width","400%"),t.setAttribute("height","400%"),this.filterManager=e;var r=createNS("feGaussianBlur");r.setAttribute("in","SourceAlpha"),r.setAttribute("result","drop_shadow_1"),r.setAttribute("stdDeviation","0"),this.feGaussianBlur=r,t.appendChild(r);var i=createNS("feOffset");i.setAttribute("dx","25"),i.setAttribute("dy","0"),i.setAttribute("in","drop_shadow_1"),i.setAttribute("result","drop_shadow_2"),this.feOffset=i,t.appendChild(i);var s=createNS("feFlood");s.setAttribute("flood-color","#00ff00"),s.setAttribute("flood-opacity","1"),s.setAttribute("result","drop_shadow_3"),this.feFlood=s,t.appendChild(s);var a=createNS("feComposite");a.setAttribute("in","drop_shadow_3"),a.setAttribute("in2","drop_shadow_2"),a.setAttribute("operator","in"),a.setAttribute("result","drop_shadow_4"),t.appendChild(a);var n,o=createNS("feMerge");t.appendChild(o),n=createNS("feMergeNode"),o.appendChild(n),(n=createNS("feMergeNode")).setAttribute("in","SourceGraphic"),this.feMergeNode=n,this.feMerge=o,this.originalNodeAdded=!1,o.appendChild(n)}ShapeTransformManager.prototype={addTransformSequence:function(t){var e,r=t.length,i="_";for(e=0;e<r;e+=1)i+=t[e].transform.key+"_";var s=this.sequences[i];return s||(s={transforms:[].concat(t),finalTransform:new Matrix,_mdf:!1},this.sequences[i]=s,this.sequenceList.push(s)),s},processSequence:function(t,e){for(var r,i=0,s=t.transforms.length,a=e;i<s&&!e;){if(t.transforms[i].transform.mProps._mdf){a=!0;break}i+=1}if(a)for(t.finalTransform.reset(),i=s-1;0<=i;i-=1)r=t.transforms[i].transform.mProps.v.props,t.finalTransform.transform(r[0],r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8],r[9],r[10],r[11],r[12],r[13],r[14],r[15]);t._mdf=a},processSequences:function(t){var e,r=this.sequenceList.length;for(e=0;e<r;e+=1)this.processSequence(this.sequenceList[e],t)},getNewKey:function(){return"_"+this.transform_key_count++}},CVShapeData.prototype.setAsAnimated=SVGShapeData.prototype.setAsAnimated,BaseElement.prototype={checkMasks:function(){if(!this.data.hasMask)return!1;for(var t=0,e=this.data.masksProperties.length;t<e;){if("n"!==this.data.masksProperties[t].mode&&!1!==this.data.masksProperties[t].cl)return!0;t+=1}return!1},initExpressions:function(){this.layerInterface=LayerExpressionInterface(this),this.data.hasMask&&this.maskManager&&this.layerInterface.registerMaskInterface(this.maskManager);var t=EffectsExpressionInterface.createEffectsInterface(this,this.layerInterface);this.layerInterface.registerEffectsInterface(t),0===this.data.ty||this.data.xt?this.compInterface=CompExpressionInterface(this):4===this.data.ty?(this.layerInterface.shapeInterface=ShapeExpressionInterface(this.shapesData,this.itemsData,this.layerInterface),this.layerInterface.content=this.layerInterface.shapeInterface):5===this.data.ty&&(this.layerInterface.textInterface=TextExpressionInterface(this),this.layerInterface.text=this.layerInterface.textInterface)},setBlendMode:function(){var t=getBlendMode(this.data.bm);(this.baseElement||this.layerElement).style["mix-blend-mode"]=t},initBaseData:function(t,e,r){this.globalData=e,this.comp=r,this.data=t,this.layerId=createElementID(),this.data.sr||(this.data.sr=1),this.effectsManager=new EffectsManager(this.data,this,this.dynamicProperties)},getType:function(){return this.type},sourceRectAtTime:function(){}},NullElement.prototype.prepareFrame=function(t){this.prepareProperties(t,!0)},NullElement.prototype.renderFrame=function(){},NullElement.prototype.getBaseElement=function(){return null},NullElement.prototype.destroy=function(){},NullElement.prototype.sourceRectAtTime=function(){},NullElement.prototype.hide=function(){},extendPrototype([BaseElement,TransformElement,HierarchyElement,FrameElement],NullElement),SVGBaseElement.prototype={initRendererElement:function(){this.layerElement=createNS("g")},createContainerElements:function(){this.matteElement=createNS("g"),this.transformedElement=this.layerElement,this.maskedElement=this.layerElement,this._sizeChanged=!1;var t,e,r,i=null;if(this.data.td){if(3==this.data.td||1==this.data.td){var s=createNS("mask");s.setAttribute("id",this.layerId),s.setAttribute("mask-type",3==this.data.td?"luminance":"alpha"),s.appendChild(this.layerElement),i=s,this.globalData.defs.appendChild(s),featureSupport.maskType||1!=this.data.td||(s.setAttribute("mask-type","luminance"),t=createElementID(),e=filtersFactory.createFilter(t),this.globalData.defs.appendChild(e),e.appendChild(filtersFactory.createAlphaToLuminanceFilter()),(r=createNS("g")).appendChild(this.layerElement),i=r,s.appendChild(r),r.setAttribute("filter","url("+locationHref+"#"+t+")"))}else if(2==this.data.td){var a=createNS("mask");a.setAttribute("id",this.layerId),a.setAttribute("mask-type","alpha");var n=createNS("g");a.appendChild(n),t=createElementID(),e=filtersFactory.createFilter(t);var o=createNS("feComponentTransfer");o.setAttribute("in","SourceGraphic"),e.appendChild(o);var h=createNS("feFuncA");h.setAttribute("type","table"),h.setAttribute("tableValues","1.0 0.0"),o.appendChild(h),this.globalData.defs.appendChild(e);var l=createNS("rect");l.setAttribute("width",this.comp.data.w),l.setAttribute("height",this.comp.data.h),l.setAttribute("x","0"),l.setAttribute("y","0"),l.setAttribute("fill","#ffffff"),l.setAttribute("opacity","0"),n.setAttribute("filter","url("+locationHref+"#"+t+")"),n.appendChild(l),n.appendChild(this.layerElement),i=n,featureSupport.maskType||(a.setAttribute("mask-type","luminance"),e.appendChild(filtersFactory.createAlphaToLuminanceFilter()),r=createNS("g"),n.appendChild(l),r.appendChild(this.layerElement),i=r,n.appendChild(r)),this.globalData.defs.appendChild(a)}}else this.data.tt?(this.matteElement.appendChild(this.layerElement),i=this.matteElement,this.baseElement=this.matteElement):this.baseElement=this.layerElement;if(this.data.ln&&this.layerElement.setAttribute("id",this.data.ln),this.data.cl&&this.layerElement.setAttribute("class",this.data.cl),0===this.data.ty&&!this.data.hd){var p=createNS("clipPath"),m=createNS("path");m.setAttribute("d","M0,0 L"+this.data.w+",0 L"+this.data.w+","+this.data.h+" L0,"+this.data.h+"z");var f=createElementID();if(p.setAttribute("id",f),p.appendChild(m),this.globalData.defs.appendChild(p),this.checkMasks()){var c=createNS("g");c.setAttribute("clip-path","url("+locationHref+"#"+f+")"),c.appendChild(this.layerElement),this.transformedElement=c,i?i.appendChild(this.transformedElement):this.baseElement=this.transformedElement}else this.layerElement.setAttribute("clip-path","url("+locationHref+"#"+f+")")}0!==this.data.bm&&this.setBlendMode()},renderElement:function(){this.finalTransform._matMdf&&this.transformedElement.setAttribute("transform",this.finalTransform.mat.to2dCSS()),this.finalTransform._opMdf&&this.transformedElement.setAttribute("opacity",this.finalTransform.mProp.o.v)},destroyBaseElement:function(){this.layerElement=null,this.matteElement=null,this.maskManager.destroy()},getBaseElement:function(){return this.data.hd?null:this.baseElement},createRenderableComponents:function(){this.maskManager=new MaskElement(this.data,this,this.globalData),this.renderableEffectsManager=new SVGEffects(this)},setMatte:function(t){this.matteElement&&this.matteElement.setAttribute("mask","url("+locationHref+"#"+t+")")}},IShapeElement.prototype={addShapeToModifiers:function(t){var e,r=this.shapeModifiers.length;for(e=0;e<r;e+=1)this.shapeModifiers[e].addShape(t)},isShapeInAnimatedModifiers:function(t){for(var e=this.shapeModifiers.length;0<e;)if(this.shapeModifiers[0].isAnimatedWithShape(t))return!0;return!1},renderModifiers:function(){if(this.shapeModifiers.length){var t,e=this.shapes.length;for(t=0;t<e;t+=1)this.shapes[t].sh.reset();for(t=(e=this.shapeModifiers.length)-1;0<=t;t-=1)this.shapeModifiers[t].processShapes(this._isFirstFrame)}},lcEnum:{1:"butt",2:"round",3:"square"},ljEnum:{1:"miter",2:"round",3:"bevel"},searchProcessedElement:function(t){for(var e=this.processedElements,r=0,i=e.length;r<i;){if(e[r].elem===t)return e[r].pos;r+=1}return 0},addProcessedElement:function(t,e){for(var r=this.processedElements,i=r.length;i;)if(r[i-=1].elem===t)return void(r[i].pos=e);r.push(new ProcessedElement(t,e))},prepareFrame:function(t){this.prepareRenderableFrame(t),this.prepareProperties(t,this.isInRange)}},ITextElement.prototype.initElement=function(t,e,r){this.lettersChangedFlag=!0,this.initFrame(),this.initBaseData(t,e,r),this.textProperty=new TextProperty(this,t.t,this.dynamicProperties),this.textAnimator=new TextAnimatorProperty(t.t,this.renderType,this),this.initTransform(t,e,r),this.initHierarchy(),this.initRenderable(),this.initRendererElement(),this.createContainerElements(),this.createRenderableComponents(),this.createContent(),this.hide(),this.textAnimator.searchProperties(this.dynamicProperties)},ITextElement.prototype.prepareFrame=function(t){this._mdf=!1,this.prepareRenderableFrame(t),this.prepareProperties(t,this.isInRange),(this.textProperty._mdf||this.textProperty._isFirstFrame)&&(this.buildNewText(),this.textProperty._isFirstFrame=!1,this.textProperty._mdf=!1)},ITextElement.prototype.createPathShape=function(t,e){var r,i,s=e.length,a="";for(r=0;r<s;r+=1)i=e[r].ks.k,a+=buildShapeString(i,i.i.length,!0,t);return a},ITextElement.prototype.updateDocumentData=function(t,e){this.textProperty.updateDocumentData(t,e)},ITextElement.prototype.canResizeFont=function(t){this.textProperty.canResizeFont(t)},ITextElement.prototype.setMinimumFontSize=function(t){this.textProperty.setMinimumFontSize(t)},ITextElement.prototype.applyTextPropertiesToMatrix=function(t,e,r,i,s){switch(t.ps&&e.translate(t.ps[0],t.ps[1]+t.ascent,0),e.translate(0,-t.ls,0),t.j){case 1:e.translate(t.justifyOffset+(t.boxWidth-t.lineWidths[r]),0,0);break;case 2:e.translate(t.justifyOffset+(t.boxWidth-t.lineWidths[r])/2,0,0)}e.translate(i,s,0)},ITextElement.prototype.buildColor=function(t){return"rgb("+Math.round(255*t[0])+","+Math.round(255*t[1])+","+Math.round(255*t[2])+")"},ITextElement.prototype.emptyProp=new LetterProps,ITextElement.prototype.destroy=function(){},extendPrototype([BaseElement,TransformElement,HierarchyElement,FrameElement,RenderableDOMElement],ICompElement),ICompElement.prototype.initElement=function(t,e,r){this.initFrame(),this.initBaseData(t,e,r),this.initTransform(t,e,r),this.initRenderable(),this.initHierarchy(),this.initRendererElement(),this.createContainerElements(),this.createRenderableComponents(),!this.data.xt&&e.progressiveLoad||this.buildAllItems(),this.hide()},ICompElement.prototype.prepareFrame=function(t){if(this._mdf=!1,this.prepareRenderableFrame(t),this.prepareProperties(t,this.isInRange),this.isInRange||this.data.xt){if(this.tm._placeholder)this.renderedFrame=t/this.data.sr;else{var e=this.tm.v;e===this.data.op&&(e=this.data.op-1),this.renderedFrame=e}var r,i=this.elements.length;for(this.completeLayers||this.checkLayers(this.renderedFrame),r=i-1;0<=r;r-=1)(this.completeLayers||this.elements[r])&&(this.elements[r].prepareFrame(this.renderedFrame-this.layers[r].st),this.elements[r]._mdf&&(this._mdf=!0))}},ICompElement.prototype.renderInnerContent=function(){var t,e=this.layers.length;for(t=0;t<e;t+=1)(this.completeLayers||this.elements[t])&&this.elements[t].renderFrame()},ICompElement.prototype.setElements=function(t){this.elements=t},ICompElement.prototype.getElements=function(){return this.elements},ICompElement.prototype.destroyElements=function(){var t,e=this.layers.length;for(t=0;t<e;t+=1)this.elements[t]&&this.elements[t].destroy()},ICompElement.prototype.destroy=function(){this.destroyElements(),this.destroyBaseElement()},extendPrototype([BaseElement,TransformElement,SVGBaseElement,HierarchyElement,FrameElement,RenderableDOMElement],IImageElement),IImageElement.prototype.createContent=function(){var t=this.globalData.getAssetsPath(this.assetData);this.innerElem=createNS("image"),this.innerElem.setAttribute("width",this.assetData.w+"px"),this.innerElem.setAttribute("height",this.assetData.h+"px"),this.innerElem.setAttribute("preserveAspectRatio",this.assetData.pr||this.globalData.renderConfig.imagePreserveAspectRatio),this.innerElem.setAttributeNS("http://www.w3.org/1999/xlink","href",t),this.layerElement.appendChild(this.innerElem)},IImageElement.prototype.sourceRectAtTime=function(){return this.sourceRect},extendPrototype([IImageElement],ISolidElement),ISolidElement.prototype.createContent=function(){var t=createNS("rect");t.setAttribute("width",this.data.sw),t.setAttribute("height",this.data.sh),t.setAttribute("fill",this.data.sc),this.layerElement.appendChild(t)},extendPrototype([SVGRenderer,ICompElement,SVGBaseElement],SVGCompElement),extendPrototype([BaseElement,TransformElement,SVGBaseElement,HierarchyElement,FrameElement,RenderableDOMElement,ITextElement],SVGTextElement),SVGTextElement.prototype.createContent=function(){this.data.singleShape&&!this.globalData.fontManager.chars&&(this.textContainer=createNS("text"))},SVGTextElement.prototype.buildTextContents=function(t){for(var e=0,r=t.length,i=[],s="";e<r;)t[e]===String.fromCharCode(13)||t[e]===String.fromCharCode(3)?(i.push(s),s=""):s+=t[e],e+=1;return i.push(s),i},SVGTextElement.prototype.buildNewText=function(){var t,e,r=this.textProperty.currentData;this.renderedLetters=createSizedArray(r?r.l.length:0),r.fc?this.layerElement.setAttribute("fill",this.buildColor(r.fc)):this.layerElement.setAttribute("fill","rgba(0,0,0,0)"),r.sc&&(this.layerElement.setAttribute("stroke",this.buildColor(r.sc)),this.layerElement.setAttribute("stroke-width",r.sw)),this.layerElement.setAttribute("font-size",r.finalSize);var i=this.globalData.fontManager.getFontByName(r.f);if(i.fClass)this.layerElement.setAttribute("class",i.fClass);else{this.layerElement.setAttribute("font-family",i.fFamily);var s=r.fWeight,a=r.fStyle;this.layerElement.setAttribute("font-style",a),this.layerElement.setAttribute("font-weight",s)}this.layerElement.setAttribute("aria-label",r.t);var n,o=r.l||[],h=!!this.globalData.fontManager.chars;e=o.length;var l,p=this.mHelper,m="",f=this.data.singleShape,c=0,d=0,u=!0,y=r.tr/1e3*r.finalSize;if(!f||h||r.sz){var g,v,b=this.textSpans.length;for(t=0;t<e;t+=1)h&&f&&0!==t||(n=t<b?this.textSpans[t]:createNS(h?"path":"text"),b<=t&&(n.setAttribute("stroke-linecap","butt"),n.setAttribute("stroke-linejoin","round"),n.setAttribute("stroke-miterlimit","4"),this.textSpans[t]=n,this.layerElement.appendChild(n)),n.style.display="inherit"),p.reset(),p.scale(r.finalSize/100,r.finalSize/100),f&&(o[t].n&&(c=-y,d+=r.yOffset,d+=u?1:0,u=!1),this.applyTextPropertiesToMatrix(r,p,o[t].line,c,d),c+=o[t].l||0,c+=y),h?(l=(g=(v=this.globalData.fontManager.getCharData(r.finalText[t],i.fStyle,this.globalData.fontManager.getFontByName(r.f).fFamily))&&v.data||{}).shapes?g.shapes[0].it:[],f?m+=this.createPathShape(p,l):n.setAttribute("d",this.createPathShape(p,l))):(f&&n.setAttribute("transform","translate("+p.props[12]+","+p.props[13]+")"),n.textContent=o[t].val,n.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"));f&&n&&n.setAttribute("d",m)}else{var E=this.textContainer,x="start";switch(r.j){case 1:x="end";break;case 2:x="middle"}E.setAttribute("text-anchor",x),E.setAttribute("letter-spacing",y);var P=this.buildTextContents(r.finalText);for(e=P.length,d=r.ps?r.ps[1]+r.ascent:0,t=0;t<e;t+=1)(n=this.textSpans[t]||createNS("tspan")).textContent=P[t],n.setAttribute("x",0),n.setAttribute("y",d),n.style.display="inherit",E.appendChild(n),this.textSpans[t]=n,d+=r.finalLineHeight;this.layerElement.appendChild(E)}for(;t<this.textSpans.length;)this.textSpans[t].style.display="none",t+=1;this._sizeChanged=!0},SVGTextElement.prototype.sourceRectAtTime=function(t){if(this.prepareFrame(this.comp.renderedFrame-this.data.st),this.renderInnerContent(),this._sizeChanged){this._sizeChanged=!1;var e=this.layerElement.getBBox();this.bbox={top:e.y,left:e.x,width:e.width,height:e.height}}return this.bbox},SVGTextElement.prototype.renderInnerContent=function(){if(!this.data.singleShape&&(this.textAnimator.getMeasures(this.textProperty.currentData,this.lettersChangedFlag),this.lettersChangedFlag||this.textAnimator.lettersChangedFlag)){var t,e;this._sizeChanged=!0;var r,i,s=this.textAnimator.renderedLetters,a=this.textProperty.currentData.l;for(e=a.length,t=0;t<e;t+=1)a[t].n||(r=s[t],i=this.textSpans[t],r._mdf.m&&i.setAttribute("transform",r.m),r._mdf.o&&i.setAttribute("opacity",r.o),r._mdf.sw&&i.setAttribute("stroke-width",r.sw),r._mdf.sc&&i.setAttribute("stroke",r.sc),r._mdf.fc&&i.setAttribute("fill",r.fc))}},extendPrototype([BaseElement,TransformElement,SVGBaseElement,IShapeElement,HierarchyElement,FrameElement,RenderableDOMElement],SVGShapeElement),SVGShapeElement.prototype.initSecondaryElement=function(){},SVGShapeElement.prototype.identityMatrix=new Matrix,SVGShapeElement.prototype.buildExpressionInterface=function(){},SVGShapeElement.prototype.createContent=function(){this.searchShapes(this.shapesData,this.itemsData,this.prevViewData,this.layerElement,0,[],!0),this.filterUniqueShapes()},SVGShapeElement.prototype.filterUniqueShapes=function(){var t,e,r,i,s=this.shapes.length,a=this.stylesList.length,n=[],o=!1;for(r=0;r<a;r+=1){for(i=this.stylesList[r],o=!1,t=n.length=0;t<s;t+=1)-1!==(e=this.shapes[t]).styles.indexOf(i)&&(n.push(e),o=e._isAnimated||o);1<n.length&&o&&this.setShapesAsAnimated(n)}},SVGShapeElement.prototype.setShapesAsAnimated=function(t){var e,r=t.length;for(e=0;e<r;e+=1)t[e].setAsAnimated()},SVGShapeElement.prototype.createStyleElement=function(t,e){var r,i=new SVGStyleData(t,e),s=i.pElem;if("st"===t.ty)r=new SVGStrokeStyleData(this,t,i);else if("fl"===t.ty)r=new SVGFillStyleData(this,t,i);else if("gf"===t.ty||"gs"===t.ty){r=new("gf"===t.ty?SVGGradientFillStyleData:SVGGradientStrokeStyleData)(this,t,i),this.globalData.defs.appendChild(r.gf),r.maskId&&(this.globalData.defs.appendChild(r.ms),this.globalData.defs.appendChild(r.of),s.setAttribute("mask","url("+locationHref+"#"+r.maskId+")"))}return"st"!==t.ty&&"gs"!==t.ty||(s.setAttribute("stroke-linecap",this.lcEnum[t.lc]||"round"),s.setAttribute("stroke-linejoin",this.ljEnum[t.lj]||"round"),s.setAttribute("fill-opacity","0"),1===t.lj&&s.setAttribute("stroke-miterlimit",t.ml)),2===t.r&&s.setAttribute("fill-rule","evenodd"),t.ln&&s.setAttribute("id",t.ln),t.cl&&s.setAttribute("class",t.cl),t.bm&&(s.style["mix-blend-mode"]=getBlendMode(t.bm)),this.stylesList.push(i),this.addToAnimatedContents(t,r),r},SVGShapeElement.prototype.createGroupElement=function(t){var e=new ShapeGroupData;return t.ln&&e.gr.setAttribute("id",t.ln),t.cl&&e.gr.setAttribute("class",t.cl),t.bm&&(e.gr.style["mix-blend-mode"]=getBlendMode(t.bm)),e},SVGShapeElement.prototype.createTransformElement=function(t,e){var r=TransformPropertyFactory.getTransformProperty(this,t,this),i=new SVGTransformData(r,r.o,e);return this.addToAnimatedContents(t,i),i},SVGShapeElement.prototype.createShapeElement=function(t,e,r){var i=4;"rc"===t.ty?i=5:"el"===t.ty?i=6:"sr"===t.ty&&(i=7);var s=new SVGShapeData(e,r,ShapePropertyFactory.getShapeProp(this,t,i,this));return this.shapes.push(s),this.addShapeToModifiers(s),this.addToAnimatedContents(t,s),s},SVGShapeElement.prototype.addToAnimatedContents=function(t,e){for(var r=0,i=this.animatedContents.length;r<i;){if(this.animatedContents[r].element===e)return;r+=1}this.animatedContents.push({fn:SVGElementsRenderer.createRenderFunction(t),element:e,data:t})},SVGShapeElement.prototype.setElementStyles=function(t){var e,r=t.styles,i=this.stylesList.length;for(e=0;e<i;e+=1)this.stylesList[e].closed||r.push(this.stylesList[e])},SVGShapeElement.prototype.reloadShapes=function(){this._isFirstFrame=!0;var t,e=this.itemsData.length;for(t=0;t<e;t+=1)this.prevViewData[t]=this.itemsData[t];for(this.searchShapes(this.shapesData,this.itemsData,this.prevViewData,this.layerElement,0,[],!0),this.filterUniqueShapes(),e=this.dynamicProperties.length,t=0;t<e;t+=1)this.dynamicProperties[t].getValue();this.renderModifiers()},SVGShapeElement.prototype.searchShapes=function(t,e,r,i,s,a,n){var o,h,l,p,m,f,c=[].concat(a),d=t.length-1,u=[],y=[];for(o=d;0<=o;o-=1){if((f=this.searchProcessedElement(t[o]))?e[o]=r[f-1]:t[o]._render=n,"fl"==t[o].ty||"st"==t[o].ty||"gf"==t[o].ty||"gs"==t[o].ty)f?e[o].style.closed=!1:e[o]=this.createStyleElement(t[o],s),t[o]._render&&i.appendChild(e[o].style.pElem),u.push(e[o].style);else if("gr"==t[o].ty){if(f)for(l=e[o].it.length,h=0;h<l;h+=1)e[o].prevViewData[h]=e[o].it[h];else e[o]=this.createGroupElement(t[o]);this.searchShapes(t[o].it,e[o].it,e[o].prevViewData,e[o].gr,s+1,c,n),t[o]._render&&i.appendChild(e[o].gr)}else"tr"==t[o].ty?(f||(e[o]=this.createTransformElement(t[o],i)),p=e[o].transform,c.push(p)):"sh"==t[o].ty||"rc"==t[o].ty||"el"==t[o].ty||"sr"==t[o].ty?(f||(e[o]=this.createShapeElement(t[o],c,s)),this.setElementStyles(e[o])):"tm"==t[o].ty||"rd"==t[o].ty||"ms"==t[o].ty?(f?(m=e[o]).closed=!1:((m=ShapeModifiers.getModifier(t[o].ty)).init(this,t[o]),e[o]=m,this.shapeModifiers.push(m)),y.push(m)):"rp"==t[o].ty&&(f?(m=e[o]).closed=!0:(m=ShapeModifiers.getModifier(t[o].ty),(e[o]=m).init(this,t,o,e),this.shapeModifiers.push(m),n=!1),y.push(m));this.addProcessedElement(t[o],o+1)}for(d=u.length,o=0;o<d;o+=1)u[o].closed=!0;for(d=y.length,o=0;o<d;o+=1)y[o].closed=!0},SVGShapeElement.prototype.renderInnerContent=function(){this.renderModifiers();var t,e=this.stylesList.length;for(t=0;t<e;t+=1)this.stylesList[t].reset();for(this.renderShape(),t=0;t<e;t+=1)(this.stylesList[t]._mdf||this._isFirstFrame)&&(this.stylesList[t].msElem&&(this.stylesList[t].msElem.setAttribute("d",this.stylesList[t].d),this.stylesList[t].d="M0 0"+this.stylesList[t].d),this.stylesList[t].pElem.setAttribute("d",this.stylesList[t].d||"M0 0"))},SVGShapeElement.prototype.renderShape=function(){var t,e,r=this.animatedContents.length;for(t=0;t<r;t+=1)e=this.animatedContents[t],(this._isFirstFrame||e.element._isAnimated)&&!0!==e.data&&e.fn(e.data,e.element,this._isFirstFrame)},SVGShapeElement.prototype.destroy=function(){this.destroyBaseElement(),this.shapesData=null,this.itemsData=null},SVGTintFilter.prototype.renderFrame=function(t){if(t||this.filterManager._mdf){var e=this.filterManager.effectElements[0].p.v,r=this.filterManager.effectElements[1].p.v,i=this.filterManager.effectElements[2].p.v/100;this.matrixFilter.setAttribute("values",r[0]-e[0]+" 0 0 0 "+e[0]+" "+(r[1]-e[1])+" 0 0 0 "+e[1]+" "+(r[2]-e[2])+" 0 0 0 "+e[2]+" 0 0 0 "+i+" 0")}},SVGFillFilter.prototype.renderFrame=function(t){if(t||this.filterManager._mdf){var e=this.filterManager.effectElements[2].p.v,r=this.filterManager.effectElements[6].p.v;this.matrixFilter.setAttribute("values","0 0 0 0 "+e[0]+" 0 0 0 0 "+e[1]+" 0 0 0 0 "+e[2]+" 0 0 0 "+r+" 0")}},SVGGaussianBlurEffect.prototype.renderFrame=function(t){if(t||this.filterManager._mdf){var e=.3*this.filterManager.effectElements[0].p.v,r=this.filterManager.effectElements[1].p.v,i=3==r?0:e,s=2==r?0:e;this.feGaussianBlur.setAttribute("stdDeviation",i+" "+s);var a=1==this.filterManager.effectElements[2].p.v?"wrap":"duplicate";this.feGaussianBlur.setAttribute("edgeMode",a)}},SVGStrokeEffect.prototype.initialize=function(){var t,e,r,i,s=this.elem.layerElement.children||this.elem.layerElement.childNodes;for(1===this.filterManager.effectElements[1].p.v?(i=this.elem.maskManager.masksProperties.length,r=0):i=(r=this.filterManager.effectElements[0].p.v-1)+1,(e=createNS("g")).setAttribute("fill","none"),e.setAttribute("stroke-linecap","round"),e.setAttribute("stroke-dashoffset",1);r<i;r+=1)t=createNS("path"),e.appendChild(t),this.paths.push({p:t,m:r});if(3===this.filterManager.effectElements[10].p.v){var a=createNS("mask"),n=createElementID();a.setAttribute("id",n),a.setAttribute("mask-type","alpha"),a.appendChild(e),this.elem.globalData.defs.appendChild(a);var o=createNS("g");for(o.setAttribute("mask","url("+locationHref+"#"+n+")");s[0];)o.appendChild(s[0]);this.elem.layerElement.appendChild(o),this.masker=a,e.setAttribute("stroke","#fff")}else if(1===this.filterManager.effectElements[10].p.v||2===this.filterManager.effectElements[10].p.v){if(2===this.filterManager.effectElements[10].p.v)for(s=this.elem.layerElement.children||this.elem.layerElement.childNodes;s.length;)this.elem.layerElement.removeChild(s[0]);this.elem.layerElement.appendChild(e),this.elem.layerElement.removeAttribute("mask"),e.setAttribute("stroke","#fff")}this.initialized=!0,this.pathMasker=e},SVGStrokeEffect.prototype.renderFrame=function(t){this.initialized||this.initialize();var e,r,i,s=this.paths.length;for(e=0;e<s;e+=1)if(-1!==this.paths[e].m&&(r=this.elem.maskManager.viewData[this.paths[e].m],i=this.paths[e].p,(t||this.filterManager._mdf||r.prop._mdf)&&i.setAttribute("d",r.lastPath),t||this.filterManager.effectElements[9].p._mdf||this.filterManager.effectElements[4].p._mdf||this.filterManager.effectElements[7].p._mdf||this.filterManager.effectElements[8].p._mdf||r.prop._mdf)){var a;if(0!==this.filterManager.effectElements[7].p.v||100!==this.filterManager.effectElements[8].p.v){var n=Math.min(this.filterManager.effectElements[7].p.v,this.filterManager.effectElements[8].p.v)/100,o=Math.max(this.filterManager.effectElements[7].p.v,this.filterManager.effectElements[8].p.v)/100,h=i.getTotalLength();a="0 0 0 "+h*n+" ";var l,p=h*(o-n),m=1+2*this.filterManager.effectElements[4].p.v*this.filterManager.effectElements[9].p.v/100,f=Math.floor(p/m);for(l=0;l<f;l+=1)a+="1 "+2*this.filterManager.effectElements[4].p.v*this.filterManager.effectElements[9].p.v/100+" ";a+="0 "+10*h+" 0 0"}else a="1 "+2*this.filterManager.effectElements[4].p.v*this.filterManager.effectElements[9].p.v/100;i.setAttribute("stroke-dasharray",a)}if((t||this.filterManager.effectElements[4].p._mdf)&&this.pathMasker.setAttribute("stroke-width",2*this.filterManager.effectElements[4].p.v),(t||this.filterManager.effectElements[6].p._mdf)&&this.pathMasker.setAttribute("opacity",this.filterManager.effectElements[6].p.v),(1===this.filterManager.effectElements[10].p.v||2===this.filterManager.effectElements[10].p.v)&&(t||this.filterManager.effectElements[3].p._mdf)){var c=this.filterManager.effectElements[3].p.v;this.pathMasker.setAttribute("stroke","rgb("+bm_floor(255*c[0])+","+bm_floor(255*c[1])+","+bm_floor(255*c[2])+")")}},SVGTritoneFilter.prototype.renderFrame=function(t){if(t||this.filterManager._mdf){var e=this.filterManager.effectElements[0].p.v,r=this.filterManager.effectElements[1].p.v,i=this.filterManager.effectElements[2].p.v,s=i[0]+" "+r[0]+" "+e[0],a=i[1]+" "+r[1]+" "+e[1],n=i[2]+" "+r[2]+" "+e[2];this.feFuncR.setAttribute("tableValues",s),this.feFuncG.setAttribute("tableValues",a),this.feFuncB.setAttribute("tableValues",n)}},SVGProLevelsFilter.prototype.createFeFunc=function(t,e){var r=createNS(t);return r.setAttribute("type","table"),e.appendChild(r),r},SVGProLevelsFilter.prototype.getTableValue=function(t,e,r,i,s){for(var a,n,o=0,h=Math.min(t,e),l=Math.max(t,e),p=Array.call(null,{length:256}),m=0,f=s-i,c=e-t;o<=256;)n=(a=o/256)<=h?c<0?s:i:l<=a?c<0?i:s:i+f*Math.pow((a-t)/c,1/r),p[m++]=n,o+=256/255;return p.join(" ")},SVGProLevelsFilter.prototype.renderFrame=function(t){if(t||this.filterManager._mdf){var e,r=this.filterManager.effectElements;this.feFuncRComposed&&(t||r[3].p._mdf||r[4].p._mdf||r[5].p._mdf||r[6].p._mdf||r[7].p._mdf)&&(e=this.getTableValue(r[3].p.v,r[4].p.v,r[5].p.v,r[6].p.v,r[7].p.v),this.feFuncRComposed.setAttribute("tableValues",e),this.feFuncGComposed.setAttribute("tableValues",e),this.feFuncBComposed.setAttribute("tableValues",e)),this.feFuncR&&(t||r[10].p._mdf||r[11].p._mdf||r[12].p._mdf||r[13].p._mdf||r[14].p._mdf)&&(e=this.getTableValue(r[10].p.v,r[11].p.v,r[12].p.v,r[13].p.v,r[14].p.v),this.feFuncR.setAttribute("tableValues",e)),this.feFuncG&&(t||r[17].p._mdf||r[18].p._mdf||r[19].p._mdf||r[20].p._mdf||r[21].p._mdf)&&(e=this.getTableValue(r[17].p.v,r[18].p.v,r[19].p.v,r[20].p.v,r[21].p.v),this.feFuncG.setAttribute("tableValues",e)),this.feFuncB&&(t||r[24].p._mdf||r[25].p._mdf||r[26].p._mdf||r[27].p._mdf||r[28].p._mdf)&&(e=this.getTableValue(r[24].p.v,r[25].p.v,r[26].p.v,r[27].p.v,r[28].p.v),this.feFuncB.setAttribute("tableValues",e)),this.feFuncA&&(t||r[31].p._mdf||r[32].p._mdf||r[33].p._mdf||r[34].p._mdf||r[35].p._mdf)&&(e=this.getTableValue(r[31].p.v,r[32].p.v,r[33].p.v,r[34].p.v,r[35].p.v),this.feFuncA.setAttribute("tableValues",e))}},SVGDropShadowEffect.prototype.renderFrame=function(t){if(t||this.filterManager._mdf){if((t||this.filterManager.effectElements[4].p._mdf)&&this.feGaussianBlur.setAttribute("stdDeviation",this.filterManager.effectElements[4].p.v/4),t||this.filterManager.effectElements[0].p._mdf){var e=this.filterManager.effectElements[0].p.v;this.feFlood.setAttribute("flood-color",rgbToHex(Math.round(255*e[0]),Math.round(255*e[1]),Math.round(255*e[2])))}if((t||this.filterManager.effectElements[1].p._mdf)&&this.feFlood.setAttribute("flood-opacity",this.filterManager.effectElements[1].p.v/255),t||this.filterManager.effectElements[2].p._mdf||this.filterManager.effectElements[3].p._mdf){var r=this.filterManager.effectElements[3].p.v,i=(this.filterManager.effectElements[2].p.v-90)*degToRads,s=r*Math.cos(i),a=r*Math.sin(i);this.feOffset.setAttribute("dx",s),this.feOffset.setAttribute("dy",a)}}};var _svgMatteSymbols=[];function SVGMatte3Effect(t,e,r){this.initialized=!1,this.filterManager=e,this.filterElem=t,(this.elem=r).matteElement=createNS("g"),r.matteElement.appendChild(r.layerElement),r.matteElement.appendChild(r.transformedElement),r.baseElement=r.matteElement}function SVGEffects(t){var e,r,i=t.data.ef?t.data.ef.length:0,s=createElementID(),a=filtersFactory.createFilter(s),n=0;for(this.filters=[],e=0;e<i;e+=1)r=null,20===t.data.ef[e].ty?(n+=1,r=new SVGTintFilter(a,t.effectsManager.effectElements[e])):21===t.data.ef[e].ty?(n+=1,r=new SVGFillFilter(a,t.effectsManager.effectElements[e])):22===t.data.ef[e].ty?r=new SVGStrokeEffect(t,t.effectsManager.effectElements[e]):23===t.data.ef[e].ty?(n+=1,r=new SVGTritoneFilter(a,t.effectsManager.effectElements[e])):24===t.data.ef[e].ty?(n+=1,r=new SVGProLevelsFilter(a,t.effectsManager.effectElements[e])):25===t.data.ef[e].ty?(n+=1,r=new SVGDropShadowEffect(a,t.effectsManager.effectElements[e])):28===t.data.ef[e].ty?r=new SVGMatte3Effect(a,t.effectsManager.effectElements[e],t):29===t.data.ef[e].ty&&(n+=1,r=new SVGGaussianBlurEffect(a,t.effectsManager.effectElements[e])),r&&this.filters.push(r);n&&(t.globalData.defs.appendChild(a),t.layerElement.setAttribute("filter","url("+locationHref+"#"+s+")")),this.filters.length&&t.addRenderableComponent(this)}function CVContextData(){this.saved=[],this.cArrPos=0,this.cTr=new Matrix,this.cO=1;var t;for(this.savedOp=createTypedArray("float32",15),t=0;t<15;t+=1)this.saved[t]=createTypedArray("float32",16);this._length=15}function CVBaseElement(){}function CVImageElement(t,e,r){this.assetData=e.getAssetData(t.refId),this.img=e.imageLoader.getImage(this.assetData),this.initElement(t,e,r)}function CVCompElement(t,e,r){this.completeLayers=!1,this.layers=t.layers,this.pendingElements=[],this.elements=createSizedArray(this.layers.length),this.initElement(t,e,r),this.tm=t.tm?PropertyFactory.getProp(this,t.tm,0,e.frameRate,this):{_placeholder:!0}}function CVMaskElement(t,e){this.data=t,this.element=e,this.masksProperties=this.data.masksProperties||[],this.viewData=createSizedArray(this.masksProperties.length);var r,i=this.masksProperties.length,s=!1;for(r=0;r<i;r++)"n"!==this.masksProperties[r].mode&&(s=!0),this.viewData[r]=ShapePropertyFactory.getShapeProp(this.element,this.masksProperties[r],3);(this.hasMasks=s)&&this.element.addRenderableComponent(this)}function CVShapeElement(t,e,r){this.shapes=[],this.shapesData=t.shapes,this.stylesList=[],this.itemsData=[],this.prevViewData=[],this.shapeModifiers=[],this.processedElements=[],this.transformsManager=new ShapeTransformManager,this.initElement(t,e,r)}function CVSolidElement(t,e,r){this.initElement(t,e,r)}function CVTextElement(t,e,r){this.textSpans=[],this.yOffset=0,this.fillColorAnim=!1,this.strokeColorAnim=!1,this.strokeWidthAnim=!1,this.stroke=!1,this.fill=!1,this.justifyOffset=0,this.currentRender=null,this.renderType="canvas",this.values={fill:"rgba(0,0,0,0)",stroke:"rgba(0,0,0,0)",sWidth:0,fValue:""},this.initElement(t,e,r)}function CVEffects(){}function HBaseElement(t,e,r){}function HSolidElement(t,e,r){this.initElement(t,e,r)}function HCompElement(t,e,r){this.layers=t.layers,this.supports3d=!t.hasMask,this.completeLayers=!1,this.pendingElements=[],this.elements=this.layers?createSizedArray(this.layers.length):[],this.initElement(t,e,r),this.tm=t.tm?PropertyFactory.getProp(this,t.tm,0,e.frameRate,this):{_placeholder:!0}}function HShapeElement(t,e,r){this.shapes=[],this.shapesData=t.shapes,this.stylesList=[],this.shapeModifiers=[],this.itemsData=[],this.processedElements=[],this.animatedContents=[],this.shapesContainer=createNS("g"),this.initElement(t,e,r),this.prevViewData=[],this.currentBBox={x:999999,y:-999999,h:0,w:0}}function HTextElement(t,e,r){this.textSpans=[],this.textPaths=[],this.currentBBox={x:999999,y:-999999,h:0,w:0},this.renderType="svg",this.isMasked=!1,this.initElement(t,e,r)}function HImageElement(t,e,r){this.assetData=e.getAssetData(t.refId),this.initElement(t,e,r)}function HCameraElement(t,e,r){this.initFrame(),this.initBaseData(t,e,r),this.initHierarchy();var i=PropertyFactory.getProp;if(this.pe=i(this,t.pe,0,0,this),t.ks.p.s?(this.px=i(this,t.ks.p.x,1,0,this),this.py=i(this,t.ks.p.y,1,0,this),this.pz=i(this,t.ks.p.z,1,0,this)):this.p=i(this,t.ks.p,1,0,this),t.ks.a&&(this.a=i(this,t.ks.a,1,0,this)),t.ks.or.k.length&&t.ks.or.k[0].to){var s,a=t.ks.or.k.length;for(s=0;s<a;s+=1)t.ks.or.k[s].to=null,t.ks.or.k[s].ti=null}this.or=i(this,t.ks.or,1,degToRads,this),this.or.sh=!0,this.rx=i(this,t.ks.rx,0,degToRads,this),this.ry=i(this,t.ks.ry,0,degToRads,this),this.rz=i(this,t.ks.rz,0,degToRads,this),this.mat=new Matrix,this._prevMat=new Matrix,this._isFirstFrame=!0,this.finalTransform={mProp:this}}function HEffects(){}SVGMatte3Effect.prototype.findSymbol=function(t){for(var e=0,r=_svgMatteSymbols.length;e<r;){if(_svgMatteSymbols[e]===t)return _svgMatteSymbols[e];e+=1}return null},SVGMatte3Effect.prototype.replaceInParent=function(t,e){var r=t.layerElement.parentNode;if(r){for(var i,s=r.children,a=0,n=s.length;a<n&&s[a]!==t.layerElement;)a+=1;a<=n-2&&(i=s[a+1]);var o=createNS("use");o.setAttribute("href","#"+e),i?r.insertBefore(o,i):r.appendChild(o)}},SVGMatte3Effect.prototype.setElementAsMask=function(t,e){if(!this.findSymbol(e)){var r=createElementID(),i=createNS("mask");i.setAttribute("id",e.layerId),i.setAttribute("mask-type","alpha"),_svgMatteSymbols.push(e);var s=t.globalData.defs;s.appendChild(i);var a=createNS("symbol");a.setAttribute("id",r),this.replaceInParent(e,r),a.appendChild(e.layerElement),s.appendChild(a);var n=createNS("use");n.setAttribute("href","#"+r),i.appendChild(n),e.data.hd=!1,e.show()}t.setMatte(e.layerId)},SVGMatte3Effect.prototype.initialize=function(){for(var t=this.filterManager.effectElements[0].p.v,e=this.elem.comp.elements,r=0,i=e.length;r<i;)e[r]&&e[r].data.ind===t&&this.setElementAsMask(this.elem,e[r]),r+=1;this.initialized=!0},SVGMatte3Effect.prototype.renderFrame=function(){this.initialized||this.initialize()},SVGEffects.prototype.renderFrame=function(t){var e,r=this.filters.length;for(e=0;e<r;e+=1)this.filters[e].renderFrame(t)},CVContextData.prototype.duplicate=function(){var t=2*this._length,e=this.savedOp;this.savedOp=createTypedArray("float32",t),this.savedOp.set(e);var r=0;for(r=this._length;r<t;r+=1)this.saved[r]=createTypedArray("float32",16);this._length=t},CVContextData.prototype.reset=function(){this.cArrPos=0,this.cTr.reset(),this.cO=1},CVBaseElement.prototype={createElements:function(){},initRendererElement:function(){},createContainerElements:function(){this.canvasContext=this.globalData.canvasContext,this.renderableEffectsManager=new CVEffects(this)},createContent:function(){},setBlendMode:function(){var t=this.globalData;if(t.blendMode!==this.data.bm){t.blendMode=this.data.bm;var e=getBlendMode(this.data.bm);t.canvasContext.globalCompositeOperation=e}},createRenderableComponents:function(){this.maskManager=new CVMaskElement(this.data,this)},hideElement:function(){this.hidden||this.isInRange&&!this.isTransparent||(this.hidden=!0)},showElement:function(){this.isInRange&&!this.isTransparent&&(this.hidden=!1,this._isFirstFrame=!0,this.maskManager._isFirstFrame=!0)},renderFrame:function(){this.hidden||this.data.hd||(this.renderTransform(),this.renderRenderable(),this.setBlendMode(),this.globalData.renderer.save(),this.globalData.renderer.ctxTransform(this.finalTransform.mat.props),this.globalData.renderer.ctxOpacity(this.finalTransform.mProp.o.v),this.renderInnerContent(),this.globalData.renderer.restore(),this.maskManager.hasMasks&&this.globalData.renderer.restore(!0),this._isFirstFrame&&(this._isFirstFrame=!1))},destroy:function(){this.canvasContext=null,this.data=null,this.globalData=null,this.maskManager.destroy()},mHelper:new Matrix},CVBaseElement.prototype.hide=CVBaseElement.prototype.hideElement,CVBaseElement.prototype.show=CVBaseElement.prototype.showElement,extendPrototype([BaseElement,TransformElement,CVBaseElement,HierarchyElement,FrameElement,RenderableElement],CVImageElement),CVImageElement.prototype.initElement=SVGShapeElement.prototype.initElement,CVImageElement.prototype.prepareFrame=IImageElement.prototype.prepareFrame,CVImageElement.prototype.createContent=function(){if(this.img.width&&(this.assetData.w!==this.img.width||this.assetData.h!==this.img.height)){var t=createTag("canvas");t.width=this.assetData.w,t.height=this.assetData.h;var e,r,i=t.getContext("2d"),s=this.img.width,a=this.img.height,n=s/a,o=this.assetData.w/this.assetData.h,h=this.assetData.pr||this.globalData.renderConfig.imagePreserveAspectRatio;o<n&&"xMidYMid slice"===h||n<o&&"xMidYMid slice"!==h?e=(r=a)*o:r=(e=s)/o,i.drawImage(this.img,(s-e)/2,(a-r)/2,e,r,0,0,this.assetData.w,this.assetData.h),this.img=t}},CVImageElement.prototype.renderInnerContent=function(t){this.canvasContext.drawImage(this.img,0,0)},CVImageElement.prototype.destroy=function(){this.img=null},extendPrototype([CanvasRenderer,ICompElement,CVBaseElement],CVCompElement),CVCompElement.prototype.renderInnerContent=function(){var t;for(t=this.layers.length-1;0<=t;t-=1)(this.completeLayers||this.elements[t])&&this.elements[t].renderFrame()},CVCompElement.prototype.destroy=function(){var t;for(t=this.layers.length-1;0<=t;t-=1)this.elements[t]&&this.elements[t].destroy();this.layers=null,this.elements=null},CVMaskElement.prototype.renderFrame=function(){if(this.hasMasks){var t,e,r,i,s=this.element.finalTransform.mat,a=this.element.canvasContext,n=this.masksProperties.length;for(a.beginPath(),t=0;t<n;t++)if("n"!==this.masksProperties[t].mode){this.masksProperties[t].inv&&(a.moveTo(0,0),a.lineTo(this.element.globalData.compSize.w,0),a.lineTo(this.element.globalData.compSize.w,this.element.globalData.compSize.h),a.lineTo(0,this.element.globalData.compSize.h),a.lineTo(0,0)),i=this.viewData[t].v,e=s.applyToPointArray(i.v[0][0],i.v[0][1],0),a.moveTo(e[0],e[1]);var o,h=i._length;for(o=1;o<h;o++)r=s.applyToTriplePoints(i.o[o-1],i.i[o],i.v[o]),a.bezierCurveTo(r[0],r[1],r[2],r[3],r[4],r[5]);r=s.applyToTriplePoints(i.o[o-1],i.i[0],i.v[0]),a.bezierCurveTo(r[0],r[1],r[2],r[3],r[4],r[5])}this.element.globalData.renderer.save(!0),a.clip()}},CVMaskElement.prototype.getMaskProperty=MaskElement.prototype.getMaskProperty,CVMaskElement.prototype.destroy=function(){this.element=null},extendPrototype([BaseElement,TransformElement,CVBaseElement,IShapeElement,HierarchyElement,FrameElement,RenderableElement],CVShapeElement),CVShapeElement.prototype.initElement=RenderableDOMElement.prototype.initElement,CVShapeElement.prototype.transformHelper={opacity:1,_opMdf:!1},CVShapeElement.prototype.dashResetter=[],CVShapeElement.prototype.createContent=function(){this.searchShapes(this.shapesData,this.itemsData,this.prevViewData,!0,[])},CVShapeElement.prototype.createStyleElement=function(t,e){var r={data:t,type:t.ty,preTransforms:this.transformsManager.addTransformSequence(e),transforms:[],elements:[],closed:!0===t.hd},i={};if("fl"==t.ty||"st"==t.ty?(i.c=PropertyFactory.getProp(this,t.c,1,255,this),i.c.k||(r.co="rgb("+bm_floor(i.c.v[0])+","+bm_floor(i.c.v[1])+","+bm_floor(i.c.v[2])+")")):"gf"!==t.ty&&"gs"!==t.ty||(i.s=PropertyFactory.getProp(this,t.s,1,null,this),i.e=PropertyFactory.getProp(this,t.e,1,null,this),i.h=PropertyFactory.getProp(this,t.h||{k:0},0,.01,this),i.a=PropertyFactory.getProp(this,t.a||{k:0},0,degToRads,this),i.g=new GradientProperty(this,t.g,this)),i.o=PropertyFactory.getProp(this,t.o,0,.01,this),"st"==t.ty||"gs"==t.ty){if(r.lc=this.lcEnum[t.lc]||"round",r.lj=this.ljEnum[t.lj]||"round",1==t.lj&&(r.ml=t.ml),i.w=PropertyFactory.getProp(this,t.w,0,null,this),i.w.k||(r.wi=i.w.v),t.d){var s=new DashProperty(this,t.d,"canvas",this);i.d=s,i.d.k||(r.da=i.d.dashArray,r.do=i.d.dashoffset[0])}}else r.r=2===t.r?"evenodd":"nonzero";return this.stylesList.push(r),i.style=r,i},CVShapeElement.prototype.createGroupElement=function(t){return{it:[],prevViewData:[]}},CVShapeElement.prototype.createTransformElement=function(t){return{transform:{opacity:1,_opMdf:!1,key:this.transformsManager.getNewKey(),op:PropertyFactory.getProp(this,t.o,0,.01,this),mProps:TransformPropertyFactory.getTransformProperty(this,t,this)}}},CVShapeElement.prototype.createShapeElement=function(t){var e=new CVShapeData(this,t,this.stylesList,this.transformsManager);return this.shapes.push(e),this.addShapeToModifiers(e),e},CVShapeElement.prototype.reloadShapes=function(){this._isFirstFrame=!0;var t,e=this.itemsData.length;for(t=0;t<e;t+=1)this.prevViewData[t]=this.itemsData[t];for(this.searchShapes(this.shapesData,this.itemsData,this.prevViewData,!0,[]),e=this.dynamicProperties.length,t=0;t<e;t+=1)this.dynamicProperties[t].getValue();this.renderModifiers(),this.transformsManager.processSequences(this._isFirstFrame)},CVShapeElement.prototype.addTransformToStyleList=function(t){var e,r=this.stylesList.length;for(e=0;e<r;e+=1)this.stylesList[e].closed||this.stylesList[e].transforms.push(t)},CVShapeElement.prototype.removeTransformFromStyleList=function(){var t,e=this.stylesList.length;for(t=0;t<e;t+=1)this.stylesList[t].closed||this.stylesList[t].transforms.pop()},CVShapeElement.prototype.closeStyles=function(t){var e,r=t.length;for(e=0;e<r;e+=1)t[e].closed=!0},CVShapeElement.prototype.searchShapes=function(t,e,r,i,s){var a,n,o,h,l,p,m=t.length-1,f=[],c=[],d=[].concat(s);for(a=m;0<=a;a-=1){if((h=this.searchProcessedElement(t[a]))?e[a]=r[h-1]:t[a]._shouldRender=i,"fl"==t[a].ty||"st"==t[a].ty||"gf"==t[a].ty||"gs"==t[a].ty)h?e[a].style.closed=!1:e[a]=this.createStyleElement(t[a],d),f.push(e[a].style);else if("gr"==t[a].ty){if(h)for(o=e[a].it.length,n=0;n<o;n+=1)e[a].prevViewData[n]=e[a].it[n];else e[a]=this.createGroupElement(t[a]);this.searchShapes(t[a].it,e[a].it,e[a].prevViewData,i,d)}else"tr"==t[a].ty?(h||(p=this.createTransformElement(t[a]),e[a]=p),d.push(e[a]),this.addTransformToStyleList(e[a])):"sh"==t[a].ty||"rc"==t[a].ty||"el"==t[a].ty||"sr"==t[a].ty?h||(e[a]=this.createShapeElement(t[a])):"tm"==t[a].ty||"rd"==t[a].ty?(h?(l=e[a]).closed=!1:((l=ShapeModifiers.getModifier(t[a].ty)).init(this,t[a]),e[a]=l,this.shapeModifiers.push(l)),c.push(l)):"rp"==t[a].ty&&(h?(l=e[a]).closed=!0:(l=ShapeModifiers.getModifier(t[a].ty),(e[a]=l).init(this,t,a,e),this.shapeModifiers.push(l),i=!1),c.push(l));this.addProcessedElement(t[a],a+1)}for(this.removeTransformFromStyleList(),this.closeStyles(f),m=c.length,a=0;a<m;a+=1)c[a].closed=!0},CVShapeElement.prototype.renderInnerContent=function(){this.transformHelper.opacity=1,this.transformHelper._opMdf=!1,this.renderModifiers(),this.transformsManager.processSequences(this._isFirstFrame),this.renderShape(this.transformHelper,this.shapesData,this.itemsData,!0)},CVShapeElement.prototype.renderShapeTransform=function(t,e){(t._opMdf||e.op._mdf||this._isFirstFrame)&&(e.opacity=t.opacity,e.opacity*=e.op.v,e._opMdf=!0)},CVShapeElement.prototype.drawLayer=function(){var t,e,r,i,s,a,n,o,h,l=this.stylesList.length,p=this.globalData.renderer,m=this.globalData.canvasContext;for(t=0;t<l;t+=1)if(("st"!==(o=(h=this.stylesList[t]).type)&&"gs"!==o||0!==h.wi)&&h.data._shouldRender&&0!==h.coOp&&0!==this.globalData.currentGlobalAlpha){for(p.save(),a=h.elements,"st"===o||"gs"===o?(m.strokeStyle="st"===o?h.co:h.grd,m.lineWidth=h.wi,m.lineCap=h.lc,m.lineJoin=h.lj,m.miterLimit=h.ml||0):m.fillStyle="fl"===o?h.co:h.grd,p.ctxOpacity(h.coOp),"st"!==o&&"gs"!==o&&m.beginPath(),p.ctxTransform(h.preTransforms.finalTransform.props),r=a.length,e=0;e<r;e+=1){for("st"!==o&&"gs"!==o||(m.beginPath(),h.da&&(m.setLineDash(h.da),m.lineDashOffset=h.do)),s=(n=a[e].trNodes).length,i=0;i<s;i+=1)"m"==n[i].t?m.moveTo(n[i].p[0],n[i].p[1]):"c"==n[i].t?m.bezierCurveTo(n[i].pts[0],n[i].pts[1],n[i].pts[2],n[i].pts[3],n[i].pts[4],n[i].pts[5]):m.closePath();"st"!==o&&"gs"!==o||(m.stroke(),h.da&&m.setLineDash(this.dashResetter))}"st"!==o&&"gs"!==o&&m.fill(h.r),p.restore()}},CVShapeElement.prototype.renderShape=function(t,e,r,i){var s,a;for(a=t,s=e.length-1;0<=s;s-=1)"tr"==e[s].ty?(a=r[s].transform,this.renderShapeTransform(t,a)):"sh"==e[s].ty||"el"==e[s].ty||"rc"==e[s].ty||"sr"==e[s].ty?this.renderPath(e[s],r[s]):"fl"==e[s].ty?this.renderFill(e[s],r[s],a):"st"==e[s].ty?this.renderStroke(e[s],r[s],a):"gf"==e[s].ty||"gs"==e[s].ty?this.renderGradientFill(e[s],r[s],a):"gr"==e[s].ty?this.renderShape(a,e[s].it,r[s].it):e[s].ty;i&&this.drawLayer()},CVShapeElement.prototype.renderStyledShape=function(t,e){if(this._isFirstFrame||e._mdf||t.transforms._mdf){var r,i,s,a=t.trNodes,n=e.paths,o=n._length;a.length=0;var h=t.transforms.finalTransform;for(s=0;s<o;s+=1){var l=n.shapes[s];if(l&&l.v){for(i=l._length,r=1;r<i;r+=1)1===r&&a.push({t:"m",p:h.applyToPointArray(l.v[0][0],l.v[0][1],0)}),a.push({t:"c",pts:h.applyToTriplePoints(l.o[r-1],l.i[r],l.v[r])});1===i&&a.push({t:"m",p:h.applyToPointArray(l.v[0][0],l.v[0][1],0)}),l.c&&i&&(a.push({t:"c",pts:h.applyToTriplePoints(l.o[r-1],l.i[0],l.v[0])}),a.push({t:"z"}))}}t.trNodes=a}},CVShapeElement.prototype.renderPath=function(t,e){if(!0!==t.hd&&t._shouldRender){var r,i=e.styledShapes.length;for(r=0;r<i;r+=1)this.renderStyledShape(e.styledShapes[r],e.sh)}},CVShapeElement.prototype.renderFill=function(t,e,r){var i=e.style;(e.c._mdf||this._isFirstFrame)&&(i.co="rgb("+bm_floor(e.c.v[0])+","+bm_floor(e.c.v[1])+","+bm_floor(e.c.v[2])+")"),(e.o._mdf||r._opMdf||this._isFirstFrame)&&(i.coOp=e.o.v*r.opacity)},CVShapeElement.prototype.renderGradientFill=function(t,e,r){var i=e.style;if(!i.grd||e.g._mdf||e.s._mdf||e.e._mdf||1!==t.t&&(e.h._mdf||e.a._mdf)){var s=this.globalData.canvasContext,a=e.s.v,n=e.e.v;if(1===t.t)f=s.createLinearGradient(a[0],a[1],n[0],n[1]);else var o=Math.sqrt(Math.pow(a[0]-n[0],2)+Math.pow(a[1]-n[1],2)),h=Math.atan2(n[1]-a[1],n[0]-a[0]),l=o*(1<=e.h.v?.99:e.h.v<=-1?-.99:e.h.v),p=Math.cos(h+e.a.v)*l+a[0],m=Math.sin(h+e.a.v)*l+a[1],f=s.createRadialGradient(p,m,0,a[0],a[1],o);var c,d=t.g.p,u=e.g.c,y=1;for(c=0;c<d;c+=1)e.g._hasOpacity&&e.g._collapsable&&(y=e.g.o[2*c+1]),f.addColorStop(u[4*c]/100,"rgba("+u[4*c+1]+","+u[4*c+2]+","+u[4*c+3]+","+y+")");i.grd=f}i.coOp=e.o.v*r.opacity},CVShapeElement.prototype.renderStroke=function(t,e,r){var i=e.style,s=e.d;s&&(s._mdf||this._isFirstFrame)&&(i.da=s.dashArray,i.do=s.dashoffset[0]),(e.c._mdf||this._isFirstFrame)&&(i.co="rgb("+bm_floor(e.c.v[0])+","+bm_floor(e.c.v[1])+","+bm_floor(e.c.v[2])+")"),(e.o._mdf||r._opMdf||this._isFirstFrame)&&(i.coOp=e.o.v*r.opacity),(e.w._mdf||this._isFirstFrame)&&(i.wi=e.w.v)},CVShapeElement.prototype.destroy=function(){this.shapesData=null,this.globalData=null,this.canvasContext=null,this.stylesList.length=0,this.itemsData.length=0},extendPrototype([BaseElement,TransformElement,CVBaseElement,HierarchyElement,FrameElement,RenderableElement],CVSolidElement),CVSolidElement.prototype.initElement=SVGShapeElement.prototype.initElement,CVSolidElement.prototype.prepareFrame=IImageElement.prototype.prepareFrame,CVSolidElement.prototype.renderInnerContent=function(){var t=this.canvasContext;t.fillStyle=this.data.sc,t.fillRect(0,0,this.data.sw,this.data.sh)},extendPrototype([BaseElement,TransformElement,CVBaseElement,HierarchyElement,FrameElement,RenderableElement,ITextElement],CVTextElement),CVTextElement.prototype.tHelper=createTag("canvas").getContext("2d"),CVTextElement.prototype.buildNewText=function(){var t=this.textProperty.currentData;this.renderedLetters=createSizedArray(t.l?t.l.length:0);var e=!1;t.fc?(e=!0,this.values.fill=this.buildColor(t.fc)):this.values.fill="rgba(0,0,0,0)",this.fill=e;var r=!1;t.sc&&(r=!0,this.values.stroke=this.buildColor(t.sc),this.values.sWidth=t.sw);var i,s,a=this.globalData.fontManager.getFontByName(t.f),n=t.l,o=this.mHelper;this.stroke=r,this.values.fValue=t.finalSize+"px "+this.globalData.fontManager.getFontByName(t.f).fFamily,s=t.finalText.length;var h,l,p,m,f,c,d,u,y,g,v=this.data.singleShape,b=t.tr/1e3*t.finalSize,E=0,x=0,P=!0,S=0;for(i=0;i<s;i+=1){for(l=(h=this.globalData.fontManager.getCharData(t.finalText[i],a.fStyle,this.globalData.fontManager.getFontByName(t.f).fFamily))&&h.data||{},o.reset(),v&&n[i].n&&(E=-b,x+=t.yOffset,x+=P?1:0,P=!1),d=(f=l.shapes?l.shapes[0].it:[]).length,o.scale(t.finalSize/100,t.finalSize/100),v&&this.applyTextPropertiesToMatrix(t,o,n[i].line,E,x),y=createSizedArray(d),c=0;c<d;c+=1){for(m=f[c].ks.k.i.length,u=f[c].ks.k,g=[],p=1;p<m;p+=1)1==p&&g.push(o.applyToX(u.v[0][0],u.v[0][1],0),o.applyToY(u.v[0][0],u.v[0][1],0)),g.push(o.applyToX(u.o[p-1][0],u.o[p-1][1],0),o.applyToY(u.o[p-1][0],u.o[p-1][1],0),o.applyToX(u.i[p][0],u.i[p][1],0),o.applyToY(u.i[p][0],u.i[p][1],0),o.applyToX(u.v[p][0],u.v[p][1],0),o.applyToY(u.v[p][0],u.v[p][1],0));g.push(o.applyToX(u.o[p-1][0],u.o[p-1][1],0),o.applyToY(u.o[p-1][0],u.o[p-1][1],0),o.applyToX(u.i[0][0],u.i[0][1],0),o.applyToY(u.i[0][0],u.i[0][1],0),o.applyToX(u.v[0][0],u.v[0][1],0),o.applyToY(u.v[0][0],u.v[0][1],0)),y[c]=g}v&&(E+=n[i].l,E+=b),this.textSpans[S]?this.textSpans[S].elem=y:this.textSpans[S]={elem:y},S+=1}},CVTextElement.prototype.renderInnerContent=function(){var t,e,r,i,s,a,n=this.canvasContext;this.finalTransform.mat.props;n.font=this.values.fValue,n.lineCap="butt",n.lineJoin="miter",n.miterLimit=4,this.data.singleShape||this.textAnimator.getMeasures(this.textProperty.currentData,this.lettersChangedFlag);var o,h=this.textAnimator.renderedLetters,l=this.textProperty.currentData.l;e=l.length;var p,m,f=null,c=null,d=null;for(t=0;t<e;t+=1)if(!l[t].n){if((o=h[t])&&(this.globalData.renderer.save(),this.globalData.renderer.ctxTransform(o.p),this.globalData.renderer.ctxOpacity(o.o)),this.fill){for(o&&o.fc?f!==o.fc&&(f=o.fc,n.fillStyle=o.fc):f!==this.values.fill&&(f=this.values.fill,n.fillStyle=this.values.fill),i=(p=this.textSpans[t].elem).length,this.globalData.canvasContext.beginPath(),r=0;r<i;r+=1)for(a=(m=p[r]).length,this.globalData.canvasContext.moveTo(m[0],m[1]),s=2;s<a;s+=6)this.globalData.canvasContext.bezierCurveTo(m[s],m[s+1],m[s+2],m[s+3],m[s+4],m[s+5]);this.globalData.canvasContext.closePath(),this.globalData.canvasContext.fill()}if(this.stroke){for(o&&o.sw?d!==o.sw&&(d=o.sw,n.lineWidth=o.sw):d!==this.values.sWidth&&(d=this.values.sWidth,n.lineWidth=this.values.sWidth),o&&o.sc?c!==o.sc&&(c=o.sc,n.strokeStyle=o.sc):c!==this.values.stroke&&(c=this.values.stroke,n.strokeStyle=this.values.stroke),i=(p=this.textSpans[t].elem).length,this.globalData.canvasContext.beginPath(),r=0;r<i;r+=1)for(a=(m=p[r]).length,this.globalData.canvasContext.moveTo(m[0],m[1]),s=2;s<a;s+=6)this.globalData.canvasContext.bezierCurveTo(m[s],m[s+1],m[s+2],m[s+3],m[s+4],m[s+5]);this.globalData.canvasContext.closePath(),this.globalData.canvasContext.stroke()}o&&this.globalData.renderer.restore()}},CVEffects.prototype.renderFrame=function(){},HBaseElement.prototype={checkBlendMode:function(){},initRendererElement:function(){this.baseElement=createTag(this.data.tg||"div"),this.data.hasMask?(this.svgElement=createNS("svg"),this.layerElement=createNS("g"),this.maskedElement=this.layerElement,this.svgElement.appendChild(this.layerElement),this.baseElement.appendChild(this.svgElement)):this.layerElement=this.baseElement,styleDiv(this.baseElement)},createContainerElements:function(){this.renderableEffectsManager=new CVEffects(this),this.transformedElement=this.baseElement,this.maskedElement=this.layerElement,this.data.ln&&this.layerElement.setAttribute("id",this.data.ln),this.data.cl&&this.layerElement.setAttribute("class",this.data.cl),0!==this.data.bm&&this.setBlendMode()},renderElement:function(){this.finalTransform._matMdf&&(this.transformedElement.style.transform=this.transformedElement.style.webkitTransform=this.finalTransform.mat.toCSS()),this.finalTransform._opMdf&&(this.transformedElement.style.opacity=this.finalTransform.mProp.o.v)},renderFrame:function(){this.data.hd||this.hidden||(this.renderTransform(),this.renderRenderable(),this.renderElement(),this.renderInnerContent(),this._isFirstFrame&&(this._isFirstFrame=!1))},destroy:function(){this.layerElement=null,this.transformedElement=null,this.matteElement&&(this.matteElement=null),this.maskManager&&(this.maskManager.destroy(),this.maskManager=null)},createRenderableComponents:function(){this.maskManager=new MaskElement(this.data,this,this.globalData)},addEffects:function(){},setMatte:function(){}},HBaseElement.prototype.getBaseElement=SVGBaseElement.prototype.getBaseElement,HBaseElement.prototype.destroyBaseElement=HBaseElement.prototype.destroy,HBaseElement.prototype.buildElementParenting=HybridRenderer.prototype.buildElementParenting,extendPrototype([BaseElement,TransformElement,HBaseElement,HierarchyElement,FrameElement,RenderableDOMElement],HSolidElement),HSolidElement.prototype.createContent=function(){var t;this.data.hasMask?((t=createNS("rect")).setAttribute("width",this.data.sw),t.setAttribute("height",this.data.sh),t.setAttribute("fill",this.data.sc),this.svgElement.setAttribute("width",this.data.sw),this.svgElement.setAttribute("height",this.data.sh)):((t=createTag("div")).style.width=this.data.sw+"px",t.style.height=this.data.sh+"px",t.style.backgroundColor=this.data.sc),this.layerElement.appendChild(t)},extendPrototype([HybridRenderer,ICompElement,HBaseElement],HCompElement),HCompElement.prototype._createBaseContainerElements=HCompElement.prototype.createContainerElements,HCompElement.prototype.createContainerElements=function(){this._createBaseContainerElements(),this.data.hasMask?(this.svgElement.setAttribute("width",this.data.w),this.svgElement.setAttribute("height",this.data.h),this.transformedElement=this.baseElement):this.transformedElement=this.layerElement},HCompElement.prototype.addTo3dContainer=function(t,e){for(var r,i=0;i<e;)this.elements[i]&&this.elements[i].getBaseElement&&(r=this.elements[i].getBaseElement()),i+=1;r?this.layerElement.insertBefore(t,r):this.layerElement.appendChild(t)},extendPrototype([BaseElement,TransformElement,HSolidElement,SVGShapeElement,HBaseElement,HierarchyElement,FrameElement,RenderableElement],HShapeElement),HShapeElement.prototype._renderShapeFrame=HShapeElement.prototype.renderInnerContent,HShapeElement.prototype.createContent=function(){var t;if(this.baseElement.style.fontSize=0,this.data.hasMask)this.layerElement.appendChild(this.shapesContainer),t=this.svgElement;else{t=createNS("svg");var e=this.comp.data?this.comp.data:this.globalData.compSize;t.setAttribute("width",e.w),t.setAttribute("height",e.h),t.appendChild(this.shapesContainer),this.layerElement.appendChild(t)}this.searchShapes(this.shapesData,this.itemsData,this.prevViewData,this.shapesContainer,0,[],!0),this.filterUniqueShapes(),this.shapeCont=t},HShapeElement.prototype.getTransformedPoint=function(t,e){var r,i=t.length;for(r=0;r<i;r+=1)e=t[r].mProps.v.applyToPointArray(e[0],e[1],0);return e},HShapeElement.prototype.calculateShapeBoundingBox=function(t,e){var r,i,s,a,n,o=t.sh.v,h=t.transformers,l=o._length;if(!(l<=1)){for(r=0;r<l-1;r+=1)i=this.getTransformedPoint(h,o.v[r]),s=this.getTransformedPoint(h,o.o[r]),a=this.getTransformedPoint(h,o.i[r+1]),n=this.getTransformedPoint(h,o.v[r+1]),this.checkBounds(i,s,a,n,e);o.c&&(i=this.getTransformedPoint(h,o.v[r]),s=this.getTransformedPoint(h,o.o[r]),a=this.getTransformedPoint(h,o.i[0]),n=this.getTransformedPoint(h,o.v[0]),this.checkBounds(i,s,a,n,e))}},HShapeElement.prototype.checkBounds=function(t,e,r,i,s){this.getBoundsOfCurve(t,e,r,i);var a=this.shapeBoundingBox;s.x=bm_min(a.left,s.x),s.xMax=bm_max(a.right,s.xMax),s.y=bm_min(a.top,s.y),s.yMax=bm_max(a.bottom,s.yMax)},HShapeElement.prototype.shapeBoundingBox={left:0,right:0,top:0,bottom:0},HShapeElement.prototype.tempBoundingBox={x:0,xMax:0,y:0,yMax:0,width:0,height:0},HShapeElement.prototype.getBoundsOfCurve=function(t,e,r,i){for(var s,a,n,o,h,l,p,m=[[t[0],i[0]],[t[1],i[1]]],f=0;f<2;++f)if(a=6*t[f]-12*e[f]+6*r[f],s=-3*t[f]+9*e[f]-9*r[f]+3*i[f],n=3*e[f]-3*t[f],a|=0,n|=0,0!==(s|=0))(h=a*a-4*n*s)<0||(0<(l=(-a+bm_sqrt(h))/(2*s))&&l<1&&m[f].push(this.calculateF(l,t,e,r,i,f)),0<(p=(-a-bm_sqrt(h))/(2*s))&&p<1&&m[f].push(this.calculateF(p,t,e,r,i,f)));else{if(0===a)continue;0<(o=-n/a)&&o<1&&m[f].push(this.calculateF(o,t,e,r,i,f))}this.shapeBoundingBox.left=bm_min.apply(null,m[0]),this.shapeBoundingBox.top=bm_min.apply(null,m[1]),this.shapeBoundingBox.right=bm_max.apply(null,m[0]),this.shapeBoundingBox.bottom=bm_max.apply(null,m[1])},HShapeElement.prototype.calculateF=function(t,e,r,i,s,a){return bm_pow(1-t,3)*e[a]+3*bm_pow(1-t,2)*t*r[a]+3*(1-t)*bm_pow(t,2)*i[a]+bm_pow(t,3)*s[a]},HShapeElement.prototype.calculateBoundingBox=function(t,e){var r,i=t.length;for(r=0;r<i;r+=1)t[r]&&t[r].sh?this.calculateShapeBoundingBox(t[r],e):t[r]&&t[r].it&&this.calculateBoundingBox(t[r].it,e)},HShapeElement.prototype.currentBoxContains=function(t){return this.currentBBox.x<=t.x&&this.currentBBox.y<=t.y&&this.currentBBox.width+this.currentBBox.x>=t.x+t.width&&this.currentBBox.height+this.currentBBox.y>=t.y+t.height},HShapeElement.prototype.renderInnerContent=function(){if(this._renderShapeFrame(),!this.hidden&&(this._isFirstFrame||this._mdf)){var t=this.tempBoundingBox,e=999999;if(t.x=e,t.xMax=-e,t.y=e,t.yMax=-e,this.calculateBoundingBox(this.itemsData,t),t.width=t.xMax<t.x?0:t.xMax-t.x,t.height=t.yMax<t.y?0:t.yMax-t.y,this.currentBoxContains(t))return;var r=!1;this.currentBBox.w!==t.width&&(this.currentBBox.w=t.width,this.shapeCont.setAttribute("width",t.width),r=!0),this.currentBBox.h!==t.height&&(this.currentBBox.h=t.height,this.shapeCont.setAttribute("height",t.height),r=!0),(r||this.currentBBox.x!==t.x||this.currentBBox.y!==t.y)&&(this.currentBBox.w=t.width,this.currentBBox.h=t.height,this.currentBBox.x=t.x,this.currentBBox.y=t.y,this.shapeCont.setAttribute("viewBox",this.currentBBox.x+" "+this.currentBBox.y+" "+this.currentBBox.w+" "+this.currentBBox.h),this.shapeCont.style.transform=this.shapeCont.style.webkitTransform="translate("+this.currentBBox.x+"px,"+this.currentBBox.y+"px)")}},extendPrototype([BaseElement,TransformElement,HBaseElement,HierarchyElement,FrameElement,RenderableDOMElement,ITextElement],HTextElement),HTextElement.prototype.createContent=function(){if(this.isMasked=this.checkMasks(),this.isMasked){this.renderType="svg",this.compW=this.comp.data.w,this.compH=this.comp.data.h,this.svgElement.setAttribute("width",this.compW),this.svgElement.setAttribute("height",this.compH);var t=createNS("g");this.maskedElement.appendChild(t),this.innerElem=t}else this.renderType="html",this.innerElem=this.layerElement;this.checkParenting()},HTextElement.prototype.buildNewText=function(){var t=this.textProperty.currentData;this.renderedLetters=createSizedArray(t.l?t.l.length:0);var e=this.innerElem.style;e.color=e.fill=t.fc?this.buildColor(t.fc):"rgba(0,0,0,0)",t.sc&&(e.stroke=this.buildColor(t.sc),e.strokeWidth=t.sw+"px");var r,i,s=this.globalData.fontManager.getFontByName(t.f);if(!this.globalData.fontManager.chars)if(e.fontSize=t.finalSize+"px",e.lineHeight=t.finalSize+"px",s.fClass)this.innerElem.className=s.fClass;else{e.fontFamily=s.fFamily;var a=t.fWeight,n=t.fStyle;e.fontStyle=n,e.fontWeight=a}var o,h,l,p=t.l;i=p.length;var m,f=this.mHelper,c="",d=0;for(r=0;r<i;r+=1){if(this.globalData.fontManager.chars?(this.textPaths[d]?o=this.textPaths[d]:((o=createNS("path")).setAttribute("stroke-linecap","butt"),o.setAttribute("stroke-linejoin","round"),o.setAttribute("stroke-miterlimit","4")),this.isMasked||(this.textSpans[d]?l=(h=this.textSpans[d]).children[0]:((h=createTag("div")).style.lineHeight=0,(l=createNS("svg")).appendChild(o),styleDiv(h)))):this.isMasked?o=this.textPaths[d]?this.textPaths[d]:createNS("text"):this.textSpans[d]?(h=this.textSpans[d],o=this.textPaths[d]):(styleDiv(h=createTag("span")),styleDiv(o=createTag("span")),h.appendChild(o)),this.globalData.fontManager.chars){var u,y=this.globalData.fontManager.getCharData(t.finalText[r],s.fStyle,this.globalData.fontManager.getFontByName(t.f).fFamily);if(u=y?y.data:null,f.reset(),u&&u.shapes&&(m=u.shapes[0].it,f.scale(t.finalSize/100,t.finalSize/100),c=this.createPathShape(f,m),o.setAttribute("d",c)),this.isMasked)this.innerElem.appendChild(o);else{if(this.innerElem.appendChild(h),u&&u.shapes){document.body.appendChild(l);var g=l.getBBox();l.setAttribute("width",g.width+2),l.setAttribute("height",g.height+2),l.setAttribute("viewBox",g.x-1+" "+(g.y-1)+" "+(g.width+2)+" "+(g.height+2)),l.style.transform=l.style.webkitTransform="translate("+(g.x-1)+"px,"+(g.y-1)+"px)",p[r].yOffset=g.y-1}else l.setAttribute("width",1),l.setAttribute("height",1);h.appendChild(l)}}else o.textContent=p[r].val,o.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),this.isMasked?this.innerElem.appendChild(o):(this.innerElem.appendChild(h),o.style.transform=o.style.webkitTransform="translate3d(0,"+-t.finalSize/1.2+"px,0)");this.isMasked?this.textSpans[d]=o:this.textSpans[d]=h,this.textSpans[d].style.display="block",this.textPaths[d]=o,d+=1}for(;d<this.textSpans.length;)this.textSpans[d].style.display="none",d+=1},HTextElement.prototype.renderInnerContent=function(){if(this.data.singleShape){if(!this._isFirstFrame&&!this.lettersChangedFlag)return;this.isMasked&&this.finalTransform._matMdf&&(this.svgElement.setAttribute("viewBox",-this.finalTransform.mProp.p.v[0]+" "+-this.finalTransform.mProp.p.v[1]+" "+this.compW+" "+this.compH),this.svgElement.style.transform=this.svgElement.style.webkitTransform="translate("+-this.finalTransform.mProp.p.v[0]+"px,"+-this.finalTransform.mProp.p.v[1]+"px)")}if(this.textAnimator.getMeasures(this.textProperty.currentData,this.lettersChangedFlag),this.lettersChangedFlag||this.textAnimator.lettersChangedFlag){var t,e,r,i,s,a=0,n=this.textAnimator.renderedLetters,o=this.textProperty.currentData.l;for(e=o.length,t=0;t<e;t+=1)o[t].n?a+=1:(i=this.textSpans[t],s=this.textPaths[t],r=n[a],a+=1,r._mdf.m&&(this.isMasked?i.setAttribute("transform",r.m):i.style.transform=i.style.webkitTransform=r.m),i.style.opacity=r.o,r.sw&&r._mdf.sw&&s.setAttribute("stroke-width",r.sw),r.sc&&r._mdf.sc&&s.setAttribute("stroke",r.sc),r.fc&&r._mdf.fc&&(s.setAttribute("fill",r.fc),s.style.color=r.fc));if(this.innerElem.getBBox&&!this.hidden&&(this._isFirstFrame||this._mdf)){var h=this.innerElem.getBBox();this.currentBBox.w!==h.width&&(this.currentBBox.w=h.width,this.svgElement.setAttribute("width",h.width)),this.currentBBox.h!==h.height&&(this.currentBBox.h=h.height,this.svgElement.setAttribute("height",h.height));this.currentBBox.w===h.width+2&&this.currentBBox.h===h.height+2&&this.currentBBox.x===h.x-1&&this.currentBBox.y===h.y-1||(this.currentBBox.w=h.width+2,this.currentBBox.h=h.height+2,this.currentBBox.x=h.x-1,this.currentBBox.y=h.y-1,this.svgElement.setAttribute("viewBox",this.currentBBox.x+" "+this.currentBBox.y+" "+this.currentBBox.w+" "+this.currentBBox.h),this.svgElement.style.transform=this.svgElement.style.webkitTransform="translate("+this.currentBBox.x+"px,"+this.currentBBox.y+"px)")}}},extendPrototype([BaseElement,TransformElement,HBaseElement,HSolidElement,HierarchyElement,FrameElement,RenderableElement],HImageElement),HImageElement.prototype.createContent=function(){var t=this.globalData.getAssetsPath(this.assetData),e=new Image;this.data.hasMask?(this.imageElem=createNS("image"),this.imageElem.setAttribute("width",this.assetData.w+"px"),this.imageElem.setAttribute("height",this.assetData.h+"px"),this.imageElem.setAttributeNS("http://www.w3.org/1999/xlink","href",t),this.layerElement.appendChild(this.imageElem),this.baseElement.setAttribute("width",this.assetData.w),this.baseElement.setAttribute("height",this.assetData.h)):this.layerElement.appendChild(e),e.src=t,this.data.ln&&this.baseElement.setAttribute("id",this.data.ln)},extendPrototype([BaseElement,FrameElement,HierarchyElement],HCameraElement),HCameraElement.prototype.setup=function(){var t,e,r=this.comp.threeDElements.length;for(t=0;t<r;t+=1)"3d"===(e=this.comp.threeDElements[t]).type&&(e.perspectiveElem.style.perspective=e.perspectiveElem.style.webkitPerspective=this.pe.v+"px",e.container.style.transformOrigin=e.container.style.mozTransformOrigin=e.container.style.webkitTransformOrigin="0px 0px 0px",e.perspectiveElem.style.transform=e.perspectiveElem.style.webkitTransform="matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)")},HCameraElement.prototype.createElements=function(){},HCameraElement.prototype.hide=function(){},HCameraElement.prototype.renderFrame=function(){var t,e,r=this._isFirstFrame;if(this.hierarchy)for(e=this.hierarchy.length,t=0;t<e;t+=1)r=this.hierarchy[t].finalTransform.mProp._mdf||r;if(r||this.pe._mdf||this.p&&this.p._mdf||this.px&&(this.px._mdf||this.py._mdf||this.pz._mdf)||this.rx._mdf||this.ry._mdf||this.rz._mdf||this.or._mdf||this.a&&this.a._mdf){if(this.mat.reset(),this.hierarchy)for(t=e=this.hierarchy.length-1;0<=t;t-=1){var i=this.hierarchy[t].finalTransform.mProp;this.mat.translate(-i.p.v[0],-i.p.v[1],i.p.v[2]),this.mat.rotateX(-i.or.v[0]).rotateY(-i.or.v[1]).rotateZ(i.or.v[2]),this.mat.rotateX(-i.rx.v).rotateY(-i.ry.v).rotateZ(i.rz.v),this.mat.scale(1/i.s.v[0],1/i.s.v[1],1/i.s.v[2]),this.mat.translate(i.a.v[0],i.a.v[1],i.a.v[2])}if(this.p?this.mat.translate(-this.p.v[0],-this.p.v[1],this.p.v[2]):this.mat.translate(-this.px.v,-this.py.v,this.pz.v),this.a){var s;s=this.p?[this.p.v[0]-this.a.v[0],this.p.v[1]-this.a.v[1],this.p.v[2]-this.a.v[2]]:[this.px.v-this.a.v[0],this.py.v-this.a.v[1],this.pz.v-this.a.v[2]];var a=Math.sqrt(Math.pow(s[0],2)+Math.pow(s[1],2)+Math.pow(s[2],2)),n=[s[0]/a,s[1]/a,s[2]/a],o=Math.sqrt(n[2]*n[2]+n[0]*n[0]),h=Math.atan2(n[1],o),l=Math.atan2(n[0],-n[2]);this.mat.rotateY(l).rotateX(-h)}this.mat.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v),this.mat.rotateX(-this.or.v[0]).rotateY(-this.or.v[1]).rotateZ(this.or.v[2]),this.mat.translate(this.globalData.compSize.w/2,this.globalData.compSize.h/2,0),this.mat.translate(0,0,this.pe.v);var p=!this._prevMat.equals(this.mat);if((p||this.pe._mdf)&&this.comp.threeDElements){var m;for(e=this.comp.threeDElements.length,t=0;t<e;t+=1)"3d"===(m=this.comp.threeDElements[t]).type&&(p&&(m.container.style.transform=m.container.style.webkitTransform=this.mat.toCSS()),this.pe._mdf&&(m.perspectiveElem.style.perspective=m.perspectiveElem.style.webkitPerspective=this.pe.v+"px"));this.mat.clone(this._prevMat)}}this._isFirstFrame=!1},HCameraElement.prototype.prepareFrame=function(t){this.prepareProperties(t,!0)},HCameraElement.prototype.destroy=function(){},HCameraElement.prototype.getBaseElement=function(){return null},HEffects.prototype.renderFrame=function(){};var animationManager=function(){var t={},s=[],i=0,a=0,n=0,o=!0,h=!1;function r(t){for(var e=0,r=t.target;e<a;)s[e].animation===r&&(s.splice(e,1),e-=1,a-=1,r.isPaused||m()),e+=1}function l(t,e){if(!t)return null;for(var r=0;r<a;){if(s[r].elem==t&&null!==s[r].elem)return s[r].animation;r+=1}var i=new AnimationItem;return f(i,t),i.setData(t,e),i}function p(){n+=1,d()}function m(){n-=1}function f(t,e){t.addEventListener("destroy",r),t.addEventListener("_active",p),t.addEventListener("_idle",m),s.push({elem:e,animation:t}),a+=1}function c(t){var e,r=t-i;for(e=0;e<a;e+=1)s[e].animation.advanceTime(r);i=t,n&&!h?window.requestAnimationFrame(c):o=!0}function e(t){i=t,window.requestAnimationFrame(c)}function d(){!h&&n&&o&&(window.requestAnimationFrame(e),o=!1)}return t.registerAnimation=l,t.loadAnimation=function(t){var e=new AnimationItem;return f(e,null),e.setParams(t),e},t.setSpeed=function(t,e){var r;for(r=0;r<a;r+=1)s[r].animation.setSpeed(t,e)},t.setDirection=function(t,e){var r;for(r=0;r<a;r+=1)s[r].animation.setDirection(t,e)},t.play=function(t){var e;for(e=0;e<a;e+=1)s[e].animation.play(t)},t.pause=function(t){var e;for(e=0;e<a;e+=1)s[e].animation.pause(t)},t.stop=function(t){var e;for(e=0;e<a;e+=1)s[e].animation.stop(t)},t.togglePause=function(t){var e;for(e=0;e<a;e+=1)s[e].animation.togglePause(t)},t.searchAnimations=function(t,e,r){var i,s=[].concat([].slice.call(document.getElementsByClassName("lottie")),[].slice.call(document.getElementsByClassName("bodymovin"))),a=s.length;for(i=0;i<a;i+=1)r&&s[i].setAttribute("data-bm-type",r),l(s[i],t);if(e&&0===a){r||(r="svg");var n=document.getElementsByTagName("body")[0];n.innerHTML="";var o=createTag("div");o.style.width="100%",o.style.height="100%",o.setAttribute("data-bm-type",r),n.appendChild(o),l(o,t)}},t.resize=function(){var t;for(t=0;t<a;t+=1)s[t].animation.resize()},t.goToAndStop=function(t,e,r){var i;for(i=0;i<a;i+=1)s[i].animation.goToAndStop(t,e,r)},t.destroy=function(t){var e;for(e=a-1;0<=e;e-=1)s[e].animation.destroy(t)},t.freeze=function(){h=!0},t.unfreeze=function(){h=!1,d()},t.getRegisteredAnimations=function(){var t,e=s.length,r=[];for(t=0;t<e;t+=1)r.push(s[t].animation);return r},t}(),AnimationItem=function(){this._cbs=[],this.name="",this.path="",this.isLoaded=!1,this.currentFrame=0,this.currentRawFrame=0,this.totalFrames=0,this.frameRate=0,this.frameMult=0,this.playSpeed=1,this.playDirection=1,this.playCount=0,this.animationData={},this.assets=[],this.isPaused=!0,this.autoplay=!1,this.loop=!0,this.renderer=null,this.animationID=createElementID(),this.assetsPath="",this.timeCompleted=0,this.segmentPos=0,this.subframeEnabled=subframeEnabled,this.segments=[],this._idle=!0,this._completedLoop=!1,this.projectInterface=ProjectInterface(),this.imagePreloader=new ImagePreloader};extendPrototype([BaseEvent],AnimationItem),AnimationItem.prototype.setParams=function(t){t.context&&(this.context=t.context),(t.wrapper||t.container)&&(this.wrapper=t.wrapper||t.container);var e=t.animType?t.animType:t.renderer?t.renderer:"svg";switch(e){case"canvas":this.renderer=new CanvasRenderer(this,t.rendererSettings);break;case"svg":this.renderer=new SVGRenderer(this,t.rendererSettings);break;default:this.renderer=new HybridRenderer(this,t.rendererSettings)}this.renderer.setProjectInterface(this.projectInterface),this.animType=e,""===t.loop||null===t.loop||(!1===t.loop?this.loop=!1:!0===t.loop?this.loop=!0:this.loop=parseInt(t.loop)),this.autoplay=!("autoplay"in t)||t.autoplay,this.name=t.name?t.name:"",this.autoloadSegments=!t.hasOwnProperty("autoloadSegments")||t.autoloadSegments,this.assetsPath=t.assetsPath,t.animationData?this.configAnimation(t.animationData):t.path&&(-1!==t.path.lastIndexOf("\\")?this.path=t.path.substr(0,t.path.lastIndexOf("\\")+1):this.path=t.path.substr(0,t.path.lastIndexOf("/")+1),this.fileName=t.path.substr(t.path.lastIndexOf("/")+1),this.fileName=this.fileName.substr(0,this.fileName.lastIndexOf(".json")),assetLoader.load(t.path,this.configAnimation.bind(this),function(){this.trigger("data_failed")}.bind(this)))},AnimationItem.prototype.setData=function(t,e){var r={wrapper:t,animationData:e?"object"==typeof e?e:JSON.parse(e):null},i=t.attributes;r.path=i.getNamedItem("data-animation-path")?i.getNamedItem("data-animation-path").value:i.getNamedItem("data-bm-path")?i.getNamedItem("data-bm-path").value:i.getNamedItem("bm-path")?i.getNamedItem("bm-path").value:"",r.animType=i.getNamedItem("data-anim-type")?i.getNamedItem("data-anim-type").value:i.getNamedItem("data-bm-type")?i.getNamedItem("data-bm-type").value:i.getNamedItem("bm-type")?i.getNamedItem("bm-type").value:i.getNamedItem("data-bm-renderer")?i.getNamedItem("data-bm-renderer").value:i.getNamedItem("bm-renderer")?i.getNamedItem("bm-renderer").value:"canvas";var s=i.getNamedItem("data-anim-loop")?i.getNamedItem("data-anim-loop").value:i.getNamedItem("data-bm-loop")?i.getNamedItem("data-bm-loop").value:i.getNamedItem("bm-loop")?i.getNamedItem("bm-loop").value:"";""===s||(r.loop="false"!==s&&("true"===s||parseInt(s)));var a=i.getNamedItem("data-anim-autoplay")?i.getNamedItem("data-anim-autoplay").value:i.getNamedItem("data-bm-autoplay")?i.getNamedItem("data-bm-autoplay").value:!i.getNamedItem("bm-autoplay")||i.getNamedItem("bm-autoplay").value;r.autoplay="false"!==a,r.name=i.getNamedItem("data-name")?i.getNamedItem("data-name").value:i.getNamedItem("data-bm-name")?i.getNamedItem("data-bm-name").value:i.getNamedItem("bm-name")?i.getNamedItem("bm-name").value:"","false"===(i.getNamedItem("data-anim-prerender")?i.getNamedItem("data-anim-prerender").value:i.getNamedItem("data-bm-prerender")?i.getNamedItem("data-bm-prerender").value:i.getNamedItem("bm-prerender")?i.getNamedItem("bm-prerender").value:"")&&(r.prerender=!1),this.setParams(r)},AnimationItem.prototype.includeLayers=function(t){t.op>this.animationData.op&&(this.animationData.op=t.op,this.totalFrames=Math.floor(t.op-this.animationData.ip));var e,r,i=this.animationData.layers,s=i.length,a=t.layers,n=a.length;for(r=0;r<n;r+=1)for(e=0;e<s;){if(i[e].id==a[r].id){i[e]=a[r];break}e+=1}if((t.chars||t.fonts)&&(this.renderer.globalData.fontManager.addChars(t.chars),this.renderer.globalData.fontManager.addFonts(t.fonts,this.renderer.globalData.defs)),t.assets)for(s=t.assets.length,e=0;e<s;e+=1)this.animationData.assets.push(t.assets[e]);this.animationData.__complete=!1,dataManager.completeData(this.animationData,this.renderer.globalData.fontManager),this.renderer.includeLayers(t.layers),expressionsPlugin&&expressionsPlugin.initExpressions(this),this.loadNextSegment()},AnimationItem.prototype.loadNextSegment=function(){var t=this.animationData.segments;if(!t||0===t.length||!this.autoloadSegments)return this.trigger("data_ready"),void(this.timeCompleted=this.totalFrames);var e=t.shift();this.timeCompleted=e.time*this.frameRate;var r=this.path+this.fileName+"_"+this.segmentPos+".json";this.segmentPos+=1,assetLoader.load(r,this.includeLayers.bind(this),function(){this.trigger("data_failed")}.bind(this))},AnimationItem.prototype.loadSegments=function(){this.animationData.segments||(this.timeCompleted=this.totalFrames),this.loadNextSegment()},AnimationItem.prototype.imagesLoaded=function(){this.trigger("loaded_images"),this.checkLoaded()},AnimationItem.prototype.preloadImages=function(){this.imagePreloader.setAssetsPath(this.assetsPath),this.imagePreloader.setPath(this.path),this.imagePreloader.loadAssets(this.animationData.assets,this.imagesLoaded.bind(this))},AnimationItem.prototype.configAnimation=function(t){if(this.renderer)try{this.animationData=t,this.totalFrames=Math.floor(this.animationData.op-this.animationData.ip),this.renderer.configAnimation(t),t.assets||(t.assets=[]),this.assets=this.animationData.assets,this.frameRate=this.animationData.fr,this.firstFrame=Math.round(this.animationData.ip),this.frameMult=this.animationData.fr/1e3,this.renderer.searchExtraCompositions(t.assets),this.trigger("config_ready"),this.preloadImages(),this.loadSegments(),this.updaFrameModifier(),this.waitForFontsLoaded()}catch(t){this.triggerConfigError(t)}},AnimationItem.prototype.waitForFontsLoaded=function(){this.renderer&&(this.renderer.globalData.fontManager.loaded()?this.checkLoaded():setTimeout(this.waitForFontsLoaded.bind(this),20))},AnimationItem.prototype.checkLoaded=function(){this.isLoaded||!this.renderer.globalData.fontManager.loaded()||!this.imagePreloader.loaded()&&"canvas"===this.renderer.rendererType||(this.isLoaded=!0,dataManager.completeData(this.animationData,this.renderer.globalData.fontManager),expressionsPlugin&&expressionsPlugin.initExpressions(this),this.renderer.initItems(),setTimeout(function(){this.trigger("DOMLoaded")}.bind(this),0),this.gotoFrame(),this.autoplay&&this.play())},AnimationItem.prototype.resize=function(){this.renderer.updateContainerSize()},AnimationItem.prototype.setSubframe=function(t){this.subframeEnabled=!!t},AnimationItem.prototype.gotoFrame=function(){this.currentFrame=this.subframeEnabled?this.currentRawFrame:~~this.currentRawFrame,this.timeCompleted!==this.totalFrames&&this.currentFrame>this.timeCompleted&&(this.currentFrame=this.timeCompleted),this.trigger("enterFrame"),this.renderFrame()},AnimationItem.prototype.renderFrame=function(){if(!1!==this.isLoaded)try{this.renderer.renderFrame(this.currentFrame+this.firstFrame)}catch(t){this.triggerRenderFrameError(t)}},AnimationItem.prototype.play=function(t){t&&this.name!=t||!0===this.isPaused&&(this.isPaused=!1,this._idle&&(this._idle=!1,this.trigger("_active")))},AnimationItem.prototype.pause=function(t){t&&this.name!=t||!1===this.isPaused&&(this.isPaused=!0,this._idle=!0,this.trigger("_idle"))},AnimationItem.prototype.togglePause=function(t){t&&this.name!=t||(!0===this.isPaused?this.play():this.pause())},AnimationItem.prototype.stop=function(t){t&&this.name!=t||(this.pause(),this.playCount=0,this._completedLoop=!1,this.setCurrentRawFrameValue(0))},AnimationItem.prototype.goToAndStop=function(t,e,r){r&&this.name!=r||(e?this.setCurrentRawFrameValue(t):this.setCurrentRawFrameValue(t*this.frameModifier),this.pause())},AnimationItem.prototype.goToAndPlay=function(t,e,r){this.goToAndStop(t,e,r),this.play()},AnimationItem.prototype.advanceTime=function(t){if(!0!==this.isPaused&&!1!==this.isLoaded){var e=this.currentRawFrame+t*this.frameModifier,r=!1;e>=this.totalFrames-1&&0<this.frameModifier?this.loop&&this.playCount!==this.loop?e>=this.totalFrames?(this.playCount+=1,this.checkSegments(e%this.totalFrames)||(this.setCurrentRawFrameValue(e%this.totalFrames),this._completedLoop=!0,this.trigger("loopComplete"))):this.setCurrentRawFrameValue(e):this.checkSegments(e>this.totalFrames?e%this.totalFrames:0)||(r=!0,e=this.totalFrames-1):e<0?this.checkSegments(e%this.totalFrames)||(!this.loop||this.playCount--<=0&&!0!==this.loop?(r=!0,e=0):(this.setCurrentRawFrameValue(this.totalFrames+e%this.totalFrames),this._completedLoop?this.trigger("loopComplete"):this._completedLoop=!0)):this.setCurrentRawFrameValue(e),r&&(this.setCurrentRawFrameValue(e),this.pause(),this.trigger("complete"))}},AnimationItem.prototype.adjustSegment=function(t,e){this.playCount=0,t[1]<t[0]?(0<this.frameModifier&&(this.playSpeed<0?this.setSpeed(-this.playSpeed):this.setDirection(-1)),this.timeCompleted=this.totalFrames=t[0]-t[1],this.firstFrame=t[1],this.setCurrentRawFrameValue(this.totalFrames-.001-e)):t[1]>t[0]&&(this.frameModifier<0&&(this.playSpeed<0?this.setSpeed(-this.playSpeed):this.setDirection(1)),this.timeCompleted=this.totalFrames=t[1]-t[0],this.firstFrame=t[0],this.setCurrentRawFrameValue(.001+e)),this.trigger("segmentStart")},AnimationItem.prototype.setSegment=function(t,e){var r=-1;this.isPaused&&(this.currentRawFrame+this.firstFrame<t?r=t:this.currentRawFrame+this.firstFrame>e&&(r=e-t)),this.firstFrame=t,this.timeCompleted=this.totalFrames=e-t,-1!==r&&this.goToAndStop(r,!0)},AnimationItem.prototype.playSegments=function(t,e){if(e&&(this.segments.length=0),"object"==typeof t[0]){var r,i=t.length;for(r=0;r<i;r+=1)this.segments.push(t[r])}else this.segments.push(t);this.segments.length&&e&&this.adjustSegment(this.segments.shift(),0),this.isPaused&&this.play()},AnimationItem.prototype.resetSegments=function(t){this.segments.length=0,this.segments.push([this.animationData.ip,this.animationData.op]),t&&this.checkSegments(0)},AnimationItem.prototype.checkSegments=function(t){return!!this.segments.length&&(this.adjustSegment(this.segments.shift(),t),!0)},AnimationItem.prototype.destroy=function(t){t&&this.name!=t||!this.renderer||(this.renderer.destroy(),this.imagePreloader.destroy(),this.trigger("destroy"),this._cbs=null,this.onEnterFrame=this.onLoopComplete=this.onComplete=this.onSegmentStart=this.onDestroy=null,this.renderer=null)},AnimationItem.prototype.setCurrentRawFrameValue=function(t){this.currentRawFrame=t,this.gotoFrame()},AnimationItem.prototype.setSpeed=function(t){this.playSpeed=t,this.updaFrameModifier()},AnimationItem.prototype.setDirection=function(t){this.playDirection=t<0?-1:1,this.updaFrameModifier()},AnimationItem.prototype.updaFrameModifier=function(){this.frameModifier=this.frameMult*this.playSpeed*this.playDirection},AnimationItem.prototype.getPath=function(){return this.path},AnimationItem.prototype.getAssetsPath=function(t){var e="";if(t.e)e=t.p;else if(this.assetsPath){var r=t.p;-1!==r.indexOf("images/")&&(r=r.split("/")[1]),e=this.assetsPath+r}else e=this.path,e+=t.u?t.u:"",e+=t.p;return e},AnimationItem.prototype.getAssetData=function(t){for(var e=0,r=this.assets.length;e<r;){if(t==this.assets[e].id)return this.assets[e];e+=1}},AnimationItem.prototype.hide=function(){this.renderer.hide()},AnimationItem.prototype.show=function(){this.renderer.show()},AnimationItem.prototype.getDuration=function(t){return t?this.totalFrames:this.totalFrames/this.frameRate},AnimationItem.prototype.trigger=function(t){if(this._cbs&&this._cbs[t])switch(t){case"enterFrame":this.triggerEvent(t,new BMEnterFrameEvent(t,this.currentFrame,this.totalFrames,this.frameModifier));break;case"loopComplete":this.triggerEvent(t,new BMCompleteLoopEvent(t,this.loop,this.playCount,this.frameMult));break;case"complete":this.triggerEvent(t,new BMCompleteEvent(t,this.frameMult));break;case"segmentStart":this.triggerEvent(t,new BMSegmentStartEvent(t,this.firstFrame,this.totalFrames));break;case"destroy":this.triggerEvent(t,new BMDestroyEvent(t,this));break;default:this.triggerEvent(t)}"enterFrame"===t&&this.onEnterFrame&&this.onEnterFrame.call(this,new BMEnterFrameEvent(t,this.currentFrame,this.totalFrames,this.frameMult)),"loopComplete"===t&&this.onLoopComplete&&this.onLoopComplete.call(this,new BMCompleteLoopEvent(t,this.loop,this.playCount,this.frameMult)),"complete"===t&&this.onComplete&&this.onComplete.call(this,new BMCompleteEvent(t,this.frameMult)),"segmentStart"===t&&this.onSegmentStart&&this.onSegmentStart.call(this,new BMSegmentStartEvent(t,this.firstFrame,this.totalFrames)),"destroy"===t&&this.onDestroy&&this.onDestroy.call(this,new BMDestroyEvent(t,this))},AnimationItem.prototype.triggerRenderFrameError=function(t){var e=new BMRenderFrameErrorEvent(t,this.currentFrame);this.triggerEvent("error",e),this.onError&&this.onError.call(this,e)},AnimationItem.prototype.triggerConfigError=function(t){var e=new BMConfigErrorEvent(t,this.currentFrame);this.triggerEvent("error",e),this.onError&&this.onError.call(this,e)};var Expressions=(zW={},zW.initExpressions=function(t){var e=0,r=[];function i(){var t,e=r.length;for(t=0;t<e;t+=1)r[t].release();r.length=0}t.renderer.compInterface=CompExpressionInterface(t.renderer),t.renderer.globalData.projectInterface.registerComposition(t.renderer),t.renderer.globalData.pushExpression=function(){e+=1},t.renderer.globalData.popExpression=function(){0==(e-=1)&&i()},t.renderer.globalData.registerExpressionProperty=function(t){-1===r.indexOf(t)&&r.push(t)}},zW),zW;expressionsPlugin=Expressions;var ExpressionManager=function(){var ob={},Math=BMMath,window=null,document=null;function $bm_isInstanceOfArray(t){return t.constructor===Array||t.constructor===Float32Array}function isNumerable(t,e){return"number"===t||"boolean"===t||"string"===t||e instanceof Number}function $bm_neg(t){var e=typeof t;if("number"===e||"boolean"===e||t instanceof Number)return-t;if($bm_isInstanceOfArray(t)){var r,i=t.length,s=[];for(r=0;r<i;r+=1)s[r]=-t[r];return s}return t.propType?t.v:void 0}var easeInBez=BezierFactory.getBezierEasing(.333,0,.833,.833,"easeIn").get,easeOutBez=BezierFactory.getBezierEasing(.167,.167,.667,1,"easeOut").get,easeInOutBez=BezierFactory.getBezierEasing(.33,0,.667,1,"easeInOut").get;function sum(t,e){var r=typeof t,i=typeof e;if("string"===r||"string"===i)return t+e;if(isNumerable(r,t)&&isNumerable(i,e))return t+e;if($bm_isInstanceOfArray(t)&&isNumerable(i,e))return(t=t.slice(0))[0]=t[0]+e,t;if(isNumerable(r,t)&&$bm_isInstanceOfArray(e))return(e=e.slice(0))[0]=t+e[0],e;if($bm_isInstanceOfArray(t)&&$bm_isInstanceOfArray(e)){for(var s=0,a=t.length,n=e.length,o=[];s<a||s<n;)("number"==typeof t[s]||t[s]instanceof Number)&&("number"==typeof e[s]||e[s]instanceof Number)?o[s]=t[s]+e[s]:o[s]=void 0===e[s]?t[s]:t[s]||e[s],s+=1;return o}return 0}var add=sum;function sub(t,e){var r=typeof t,i=typeof e;if(isNumerable(r,t)&&isNumerable(i,e))return"string"===r&&(t=parseInt(t)),"string"===i&&(e=parseInt(e)),t-e;if($bm_isInstanceOfArray(t)&&isNumerable(i,e))return(t=t.slice(0))[0]=t[0]-e,t;if(isNumerable(r,t)&&$bm_isInstanceOfArray(e))return(e=e.slice(0))[0]=t-e[0],e;if($bm_isInstanceOfArray(t)&&$bm_isInstanceOfArray(e)){for(var s=0,a=t.length,n=e.length,o=[];s<a||s<n;)("number"==typeof t[s]||t[s]instanceof Number)&&("number"==typeof e[s]||e[s]instanceof Number)?o[s]=t[s]-e[s]:o[s]=void 0===e[s]?t[s]:t[s]||e[s],s+=1;return o}return 0}function mul(t,e){var r,i,s,a=typeof t,n=typeof e;if(isNumerable(a,t)&&isNumerable(n,e))return t*e;if($bm_isInstanceOfArray(t)&&isNumerable(n,e)){for(s=t.length,r=createTypedArray("float32",s),i=0;i<s;i+=1)r[i]=t[i]*e;return r}if(isNumerable(a,t)&&$bm_isInstanceOfArray(e)){for(s=e.length,r=createTypedArray("float32",s),i=0;i<s;i+=1)r[i]=t*e[i];return r}return 0}function div(t,e){var r,i,s,a=typeof t,n=typeof e;if(isNumerable(a,t)&&isNumerable(n,e))return t/e;if($bm_isInstanceOfArray(t)&&isNumerable(n,e)){for(s=t.length,r=createTypedArray("float32",s),i=0;i<s;i+=1)r[i]=t[i]/e;return r}if(isNumerable(a,t)&&$bm_isInstanceOfArray(e)){for(s=e.length,r=createTypedArray("float32",s),i=0;i<s;i+=1)r[i]=t/e[i];return r}return 0}function mod(t,e){return"string"==typeof t&&(t=parseInt(t)),"string"==typeof e&&(e=parseInt(e)),t%e}var $bm_sum=sum,$bm_sub=sub,$bm_mul=mul,$bm_div=div,$bm_mod=mod;function clamp(t,e,r){if(r<e){var i=r;r=e,e=i}return Math.min(Math.max(t,e),r)}function radiansToDegrees(t){return t/degToRads}var radians_to_degrees=radiansToDegrees;function degreesToRadians(t){return t*degToRads}var degrees_to_radians=radiansToDegrees,helperLengthArray=[0,0,0,0,0,0];function length(t,e){if("number"==typeof t||t instanceof Number)return e=e||0,Math.abs(t-e);e||(e=helperLengthArray);var r,i=Math.min(t.length,e.length),s=0;for(r=0;r<i;r+=1)s+=Math.pow(e[r]-t[r],2);return Math.sqrt(s)}function normalize(t){return div(t,length(t))}function rgbToHsl(t){var e,r,i=t[0],s=t[1],a=t[2],n=Math.max(i,s,a),o=Math.min(i,s,a),h=(n+o)/2;if(n==o)e=r=0;else{var l=n-o;switch(r=.5<h?l/(2-n-o):l/(n+o),n){case i:e=(s-a)/l+(s<a?6:0);break;case s:e=(a-i)/l+2;break;case a:e=(i-s)/l+4}e/=6}return[e,r,h,t[3]]}function hue2rgb(t,e,r){return r<0&&(r+=1),1<r&&(r-=1),r<1/6?t+6*(e-t)*r:r<.5?e:r<2/3?t+(e-t)*(2/3-r)*6:t}function hslToRgb(t){var e,r,i,s=t[0],a=t[1],n=t[2];if(0===a)e=r=i=n;else{var o=n<.5?n*(1+a):n+a-n*a,h=2*n-o;e=hue2rgb(h,o,s+1/3),r=hue2rgb(h,o,s),i=hue2rgb(h,o,s-1/3)}return[e,r,i,t[3]]}function linear(t,e,r,i,s){if(void 0!==i&&void 0!==s||(i=e,s=r,e=0,r=1),r<e){var a=r;r=e,e=a}if(t<=e)return i;if(r<=t)return s;var n=r===e?0:(t-e)/(r-e);if(!i.length)return i+(s-i)*n;var o,h=i.length,l=createTypedArray("float32",h);for(o=0;o<h;o+=1)l[o]=i[o]+(s[o]-i[o])*n;return l}function random(t,e){if(void 0===e&&(void 0===t?(t=0,e=1):(e=t,t=void 0)),e.length){var r,i=e.length;t||(t=createTypedArray("float32",i));var s=createTypedArray("float32",i),a=BMMath.random();for(r=0;r<i;r+=1)s[r]=t[r]+a*(e[r]-t[r]);return s}return void 0===t&&(t=0),t+BMMath.random()*(e-t)}function createPath(t,e,r,i){var s,a=t.length,n=shape_pool.newElement();n.setPathData(!!i,a);var o,h,l=[0,0];for(s=0;s<a;s+=1)o=e&&e[s]?e[s]:l,h=r&&r[s]?r[s]:l,n.setTripleAt(t[s][0],t[s][1],h[0]+t[s][0],h[1]+t[s][1],o[0]+t[s][0],o[1]+t[s][1],s,!0);return n}function initiateExpression(elem,data,property){var val=data.x,needsVelocity=/velocity(?![\w\d])/.test(val),_needsRandom=-1!==val.indexOf("random"),elemType=elem.data.ty,transform,$bm_transform,content,effect,thisProperty=property;thisProperty.valueAtTime=thisProperty.getValueAtTime,Object.defineProperty(thisProperty,"value",{get:function(){return thisProperty.v}}),elem.comp.frameDuration=1/elem.comp.globalData.frameRate,elem.comp.displayStartTime=0;var inPoint=elem.data.ip/elem.comp.globalData.frameRate,outPoint=elem.data.op/elem.comp.globalData.frameRate,width=elem.data.sw?elem.data.sw:0,height=elem.data.sh?elem.data.sh:0,name=elem.data.nm,loopIn,loop_in,loopOut,loop_out,smooth,toWorld,fromWorld,fromComp,toComp,fromCompToSurface,position,rotation,anchorPoint,scale,thisLayer,thisComp,mask,valueAtTime,velocityAtTime,__expression_functions=[],scoped_bm_rt;if(data.xf){var i,len=data.xf.length;for(i=0;i<len;i+=1)__expression_functions[i]=eval("(function(){ return "+data.xf[i]+"}())")}var expression_function=eval("[function _expression_function(){"+val+";scoped_bm_rt=$bm_rt}]")[0],numKeys=property.kf?data.k.length:0,active=!this.data||!0!==this.data.hd,wiggle=function(t,e){var r,i,s=this.pv.length?this.pv.length:1,a=createTypedArray("float32",s);var n=Math.floor(5*time);for(i=r=0;r<n;){for(i=0;i<s;i+=1)a[i]+=-e+2*e*BMMath.random();r+=1}var o=5*time,h=o-Math.floor(o),l=createTypedArray("float32",s);if(1<s){for(i=0;i<s;i+=1)l[i]=this.pv[i]+a[i]+(-e+2*e*BMMath.random())*h;return l}return this.pv+a[0]+(-e+2*e*BMMath.random())*h}.bind(this);function loopInDuration(t,e){return loopIn(t,e,!0)}function loopOutDuration(t,e){return loopOut(t,e,!0)}thisProperty.loopIn&&(loopIn=thisProperty.loopIn.bind(thisProperty),loop_in=loopIn),thisProperty.loopOut&&(loopOut=thisProperty.loopOut.bind(thisProperty),loop_out=loopOut),thisProperty.smooth&&(smooth=thisProperty.smooth.bind(thisProperty)),this.getValueAtTime&&(valueAtTime=this.getValueAtTime.bind(this)),this.getVelocityAtTime&&(velocityAtTime=this.getVelocityAtTime.bind(this));var comp=elem.comp.globalData.projectInterface.bind(elem.comp.globalData.projectInterface),time,velocity,value,text,textIndex,textTotal,selectorValue;function lookAt(t,e){var r=[e[0]-t[0],e[1]-t[1],e[2]-t[2]],i=Math.atan2(r[0],Math.sqrt(r[1]*r[1]+r[2]*r[2]))/degToRads;return[-Math.atan2(r[1],r[2])/degToRads,i,0]}function easeOut(t,e,r,i,s){return applyEase(easeOutBez,t,e,r,i,s)}function easeIn(t,e,r,i,s){return applyEase(easeInBez,t,e,r,i,s)}function ease(t,e,r,i,s){return applyEase(easeInOutBez,t,e,r,i,s)}function applyEase(t,e,r,i,s,a){void 0===s?(s=r,a=i):e=(e-r)/(i-r);var n=t(e=1<e?1:e<0?0:e);if($bm_isInstanceOfArray(s)){var o,h=s.length,l=createTypedArray("float32",h);for(o=0;o<h;o+=1)l[o]=(a[o]-s[o])*n+s[o];return l}return(a-s)*n+s}function nearestKey(t){var e,r,i,s=data.k.length;if(data.k.length&&"number"!=typeof data.k[0])if(r=-1,(t*=elem.comp.globalData.frameRate)<data.k[0].t)r=1,i=data.k[0].t;else{for(e=0;e<s-1;e+=1){if(t===data.k[e].t){r=e+1,i=data.k[e].t;break}if(t>data.k[e].t&&t<data.k[e+1].t){i=t-data.k[e].t>data.k[e+1].t-t?(r=e+2,data.k[e+1].t):(r=e+1,data.k[e].t);break}}-1===r&&(r=e+1,i=data.k[e].t)}else i=r=0;var a={};return a.index=r,a.time=i/elem.comp.globalData.frameRate,a}function key(t){var e,r,i;if(!data.k.length||"number"==typeof data.k[0])throw new Error("The property has no keyframe at index "+t);t-=1,e={time:data.k[t].t/elem.comp.globalData.frameRate,value:[]};var s=data.k[t].hasOwnProperty("s")?data.k[t].s:data.k[t-1].e;for(i=s.length,r=0;r<i;r+=1)e[r]=s[r],e.value[r]=s[r];return e}function framesToTime(t,e){return e||(e=elem.comp.globalData.frameRate),t/e}function timeToFrames(t,e){return t||0===t||(t=time),e||(e=elem.comp.globalData.frameRate),t*e}function seedRandom(t){BMMath.seedrandom(randSeed+t)}function sourceRectAtTime(){return elem.sourceRectAtTime()}function substring(t,e){return"string"==typeof value?void 0===e?value.substring(t):value.substring(t,e):""}function substr(t,e){return"string"==typeof value?void 0===e?value.substr(t):value.substr(t,e):""}var index=elem.data.ind,hasParent=!(!elem.hierarchy||!elem.hierarchy.length),parent,randSeed=Math.floor(1e6*Math.random()),globalData=elem.globalData;function executeExpression(t){return value=t,_needsRandom&&seedRandom(randSeed),this.frameExpressionId===elem.globalData.frameId&&"textSelector"!==this.propType?value:("textSelector"===this.propType&&(textIndex=this.textIndex,textTotal=this.textTotal,selectorValue=this.selectorValue),thisLayer||(text=elem.layerInterface.text,thisLayer=elem.layerInterface,thisComp=elem.comp.compInterface,toWorld=thisLayer.toWorld.bind(thisLayer),fromWorld=thisLayer.fromWorld.bind(thisLayer),fromComp=thisLayer.fromComp.bind(thisLayer),toComp=thisLayer.toComp.bind(thisLayer),mask=thisLayer.mask?thisLayer.mask.bind(thisLayer):null,fromCompToSurface=fromComp),transform||(transform=elem.layerInterface("ADBE Transform Group"),($bm_transform=transform)&&(anchorPoint=transform.anchorPoint)),4!==elemType||content||(content=thisLayer("ADBE Root Vectors Group")),effect||(effect=thisLayer(4)),(hasParent=!(!elem.hierarchy||!elem.hierarchy.length))&&!parent&&(parent=elem.hierarchy[0].layerInterface),time=this.comp.renderedFrame/this.comp.globalData.frameRate,needsVelocity&&(velocity=velocityAtTime(time)),expression_function(),this.frameExpressionId=elem.globalData.frameId,"shape"===scoped_bm_rt.propType&&(scoped_bm_rt=scoped_bm_rt.v),scoped_bm_rt)}return executeExpression}return ob.initiateExpression=initiateExpression,ob}(),expressionHelpers={searchExpressions:function(t,e,r){e.x&&(r.k=!0,r.x=!0,r.initiateExpression=ExpressionManager.initiateExpression,r.effectsSequence.push(r.initiateExpression(t,e,r).bind(r)))},getSpeedAtTime:function(t){var e=this.getValueAtTime(t),r=this.getValueAtTime(t+-.01),i=0;if(e.length){var s;for(s=0;s<e.length;s+=1)i+=Math.pow(r[s]-e[s],2);i=100*Math.sqrt(i)}else i=0;return i},getVelocityAtTime:function(t){if(void 0!==this.vel)return this.vel;var e,r,i=this.getValueAtTime(t),s=this.getValueAtTime(t+-.001);if(i.length)for(e=createTypedArray("float32",i.length),r=0;r<i.length;r+=1)e[r]=(s[r]-i[r])/-.001;else e=(s-i)/-.001;return e},getValueAtTime:function(t){return t*=this.elem.globalData.frameRate,(t-=this.offsetTime)!==this._cachingAtTime.lastFrame&&(this._cachingAtTime.lastIndex=this._cachingAtTime.lastFrame<t?this._cachingAtTime.lastIndex:0,this._cachingAtTime.value=this.interpolateValue(t,this._cachingAtTime),this._cachingAtTime.lastFrame=t),this._cachingAtTime.value},getStaticValueAtTime:function(){return this.pv},setGroupProperty:function(t){this.propertyGroup=t}};!function(){function o(t,e,r){if(!this.k||!this.keyframes)return this.pv;t=t?t.toLowerCase():"";var i,s,a,n,o,h=this.comp.renderedFrame,l=this.keyframes,p=l[l.length-1].t;if(h<=p)return this.pv;if(r?s=p-(i=e?Math.abs(p-elem.comp.globalData.frameRate*e):Math.max(0,p-this.elem.data.ip)):((!e||e>l.length-1)&&(e=l.length-1),i=p-(s=l[l.length-1-e].t)),"pingpong"===t){if(Math.floor((h-s)/i)%2!=0)return this.getValueAtTime((i-(h-s)%i+s)/this.comp.globalData.frameRate,0)}else{if("offset"===t){var m=this.getValueAtTime(s/this.comp.globalData.frameRate,0),f=this.getValueAtTime(p/this.comp.globalData.frameRate,0),c=this.getValueAtTime(((h-s)%i+s)/this.comp.globalData.frameRate,0),d=Math.floor((h-s)/i);if(this.pv.length){for(n=(o=new Array(m.length)).length,a=0;a<n;a+=1)o[a]=(f[a]-m[a])*d+c[a];return o}return(f-m)*d+c}if("continue"===t){var u=this.getValueAtTime(p/this.comp.globalData.frameRate,0),y=this.getValueAtTime((p-.001)/this.comp.globalData.frameRate,0);if(this.pv.length){for(n=(o=new Array(u.length)).length,a=0;a<n;a+=1)o[a]=u[a]+(u[a]-y[a])*((h-p)/this.comp.globalData.frameRate)/5e-4;return o}return u+(h-p)/.001*(u-y)}}return this.getValueAtTime(((h-s)%i+s)/this.comp.globalData.frameRate,0)}function h(t,e,r){if(!this.k)return this.pv;t=t?t.toLowerCase():"";var i,s,a,n,o,h=this.comp.renderedFrame,l=this.keyframes,p=l[0].t;if(p<=h)return this.pv;if(r?s=p+(i=e?Math.abs(elem.comp.globalData.frameRate*e):Math.max(0,this.elem.data.op-p)):((!e||e>l.length-1)&&(e=l.length-1),i=(s=l[e].t)-p),"pingpong"===t){if(Math.floor((p-h)/i)%2==0)return this.getValueAtTime(((p-h)%i+p)/this.comp.globalData.frameRate,0)}else{if("offset"===t){var m=this.getValueAtTime(p/this.comp.globalData.frameRate,0),f=this.getValueAtTime(s/this.comp.globalData.frameRate,0),c=this.getValueAtTime((i-(p-h)%i+p)/this.comp.globalData.frameRate,0),d=Math.floor((p-h)/i)+1;if(this.pv.length){for(n=(o=new Array(m.length)).length,a=0;a<n;a+=1)o[a]=c[a]-(f[a]-m[a])*d;return o}return c-(f-m)*d}if("continue"===t){var u=this.getValueAtTime(p/this.comp.globalData.frameRate,0),y=this.getValueAtTime((p+.001)/this.comp.globalData.frameRate,0);if(this.pv.length){for(n=(o=new Array(u.length)).length,a=0;a<n;a+=1)o[a]=u[a]+(u[a]-y[a])*(p-h)/.001;return o}return u+(u-y)*(p-h)/.001}}return this.getValueAtTime((i-(p-h)%i+p)/this.comp.globalData.frameRate,0)}function l(t,e){if(!this.k)return this.pv;if(t=.5*(t||.4),(e=Math.floor(e||5))<=1)return this.pv;var r,i,s=this.comp.renderedFrame/this.comp.globalData.frameRate,a=s-t,n=1<e?(s+t-a)/(e-1):1,o=0,h=0;for(r=this.pv.length?createTypedArray("float32",this.pv.length):0;o<e;){if(i=this.getValueAtTime(a+o*n),this.pv.length)for(h=0;h<this.pv.length;h+=1)r[h]+=i[h];else r+=i;o+=1}if(this.pv.length)for(h=0;h<this.pv.length;h+=1)r[h]/=e;else r/=e;return r}var s=TransformPropertyFactory.getTransformProperty;TransformPropertyFactory.getTransformProperty=function(t,e,r){var i=s(t,e,r);return i.dynamicProperties.length?i.getValueAtTime=function(t){console.warn("Transform at time not supported")}.bind(i):i.getValueAtTime=function(t){}.bind(i),i.setGroupProperty=expressionHelpers.setGroupProperty,i};var p=PropertyFactory.getProp;PropertyFactory.getProp=function(t,e,r,i,s){var a=p(t,e,r,i,s);a.kf?a.getValueAtTime=expressionHelpers.getValueAtTime.bind(a):a.getValueAtTime=expressionHelpers.getStaticValueAtTime.bind(a),a.setGroupProperty=expressionHelpers.setGroupProperty,a.loopOut=o,a.loopIn=h,a.smooth=l,a.getVelocityAtTime=expressionHelpers.getVelocityAtTime.bind(a),a.getSpeedAtTime=expressionHelpers.getSpeedAtTime.bind(a),a.numKeys=1===e.a?e.k.length:0,a.propertyIndex=e.ix;var n=0;return 0!==r&&(n=createTypedArray("float32",1===e.a?e.k[0].s.length:e.k.length)),a._cachingAtTime={lastFrame:initialDefaultFrame,lastIndex:0,value:n},expressionHelpers.searchExpressions(t,e,a),a.k&&s.addDynamicProperty(a),a};var t=ShapePropertyFactory.getConstructorFunction(),e=ShapePropertyFactory.getKeyframedConstructorFunction();function r(){}r.prototype={vertices:function(t,e){this.k&&this.getValue();var r=this.v;void 0!==e&&(r=this.getValueAtTime(e,0));var i,s=r._length,a=r[t],n=r.v,o=createSizedArray(s);for(i=0;i<s;i+=1)o[i]="i"===t||"o"===t?[a[i][0]-n[i][0],a[i][1]-n[i][1]]:[a[i][0],a[i][1]];return o},points:function(t){return this.vertices("v",t)},inTangents:function(t){return this.vertices("i",t)},outTangents:function(t){return this.vertices("o",t)},isClosed:function(){return this.v.c},pointOnPath:function(t,e){var r=this.v;void 0!==e&&(r=this.getValueAtTime(e,0)),this._segmentsLength||(this._segmentsLength=bez.getSegmentsLength(r));for(var i,s=this._segmentsLength,a=s.lengths,n=s.totalLength*t,o=0,h=a.length,l=0;o<h;){if(l+a[o].addedLength>n){var p=o,m=r.c&&o===h-1?0:o+1,f=(n-l)/a[o].addedLength;i=bez.getPointInSegment(r.v[p],r.v[m],r.o[p],r.i[m],f,a[o]);break}l+=a[o].addedLength,o+=1}return i||(i=r.c?[r.v[0][0],r.v[0][1]]:[r.v[r._length-1][0],r.v[r._length-1][1]]),i},vectorOnPath:function(t,e,r){t=1==t?this.v.c?0:.999:t;var i=this.pointOnPath(t,e),s=this.pointOnPath(t+.001,e),a=s[0]-i[0],n=s[1]-i[1],o=Math.sqrt(Math.pow(a,2)+Math.pow(n,2));return 0===o?[0,0]:"tangent"===r?[a/o,n/o]:[-n/o,a/o]},tangentOnPath:function(t,e){return this.vectorOnPath(t,e,"tangent")},normalOnPath:function(t,e){return this.vectorOnPath(t,e,"normal")},setGroupProperty:expressionHelpers.setGroupProperty,getValueAtTime:expressionHelpers.getStaticValueAtTime},extendPrototype([r],t),extendPrototype([r],e),e.prototype.getValueAtTime=function(t){return this._cachingAtTime||(this._cachingAtTime={shapeValue:shape_pool.clone(this.pv),lastIndex:0,lastTime:initialDefaultFrame}),t*=this.elem.globalData.frameRate,(t-=this.offsetTime)!==this._cachingAtTime.lastTime&&(this._cachingAtTime.lastIndex=this._cachingAtTime.lastTime<t?this._caching.lastIndex:0,this._cachingAtTime.lastTime=t,this.interpolateShape(t,this._cachingAtTime.shapeValue,this._cachingAtTime)),this._cachingAtTime.shapeValue},e.prototype.initiateExpression=ExpressionManager.initiateExpression;var n=ShapePropertyFactory.getShapeProp;ShapePropertyFactory.getShapeProp=function(t,e,r,i,s){var a=n(t,e,r,i,s);return a.propertyIndex=e.ix,a.lock=!1,3===r?expressionHelpers.searchExpressions(t,e.pt,a):4===r&&expressionHelpers.searchExpressions(t,e.ks,a),a.k&&t.addDynamicProperty(a),a}}(),TextProperty.prototype.getExpressionValue=function(t,e){var r=this.calculateExpression(e);if(t.t===r)return t;var i={};return this.copyData(i,t),i.t=r.toString(),i.__complete=!1,i},TextProperty.prototype.searchProperty=function(){var t=this.searchKeyframes(),e=this.searchExpressions();return this.kf=t||e,this.kf},TextProperty.prototype.searchExpressions=function(){if(this.data.d.x)return this.calculateExpression=ExpressionManager.initiateExpression.bind(this)(this.elem,this.data.d,this),this.addEffect(this.getExpressionValue.bind(this)),!0};var ShapeExpressionInterface=function(){function m(t,e,r){var i,s=[],a=t?t.length:0;for(i=0;i<a;i+=1)"gr"==t[i].ty?s.push(n(t[i],e[i],r)):"fl"==t[i].ty?s.push(o(t[i],e[i],r)):"st"==t[i].ty?s.push(h(t[i],e[i],r)):"tm"==t[i].ty?s.push(l(t[i],e[i],r)):"tr"==t[i].ty||("el"==t[i].ty?s.push(p(t[i],e[i],r)):"sr"==t[i].ty?s.push(f(t[i],e[i],r)):"sh"==t[i].ty?s.push(y(t[i],e[i],r)):"rc"==t[i].ty?s.push(c(t[i],e[i],r)):"rd"==t[i].ty?s.push(d(t[i],e[i],r)):"rp"==t[i].ty&&s.push(u(t[i],e[i],r)));return s}function n(t,e,r){var i=function(t){switch(t){case"ADBE Vectors Group":case"Contents":case 2:return i.content;default:return i.transform}};i.propertyGroup=function(t){return 1===t?i:r(t-1)};var s,a,n,o,h,l=(s=t,a=e,n=i.propertyGroup,(h=function(t){for(var e=0,r=o.length;e<r;){if(o[e]._name===t||o[e].mn===t||o[e].propertyIndex===t||o[e].ix===t||o[e].ind===t)return o[e];e+=1}if("number"==typeof t)return o[t-1]}).propertyGroup=function(t){return 1===t?h:n(t-1)},o=m(s.it,a.it,h.propertyGroup),h.numProperties=o.length,h.propertyIndex=s.cix,h._name=s.nm,h),p=function(e,t,r){function i(t){return 1==t?s:r(--t)}t.transform.mProps.o.setGroupProperty(i),t.transform.mProps.p.setGroupProperty(i),t.transform.mProps.a.setGroupProperty(i),t.transform.mProps.s.setGroupProperty(i),t.transform.mProps.r.setGroupProperty(i),t.transform.mProps.sk&&(t.transform.mProps.sk.setGroupProperty(i),t.transform.mProps.sa.setGroupProperty(i));function s(t){return e.a.ix===t||"Anchor Point"===t?s.anchorPoint:e.o.ix===t||"Opacity"===t?s.opacity:e.p.ix===t||"Position"===t?s.position:e.r.ix===t||"Rotation"===t||"ADBE Vector Rotation"===t?s.rotation:e.s.ix===t||"Scale"===t?s.scale:e.sk&&e.sk.ix===t||"Skew"===t?s.skew:e.sa&&e.sa.ix===t||"Skew Axis"===t?s.skewAxis:void 0}return t.transform.op.setGroupProperty(i),Object.defineProperties(s,{opacity:{get:ExpressionPropertyInterface(t.transform.mProps.o)},position:{get:ExpressionPropertyInterface(t.transform.mProps.p)},anchorPoint:{get:ExpressionPropertyInterface(t.transform.mProps.a)},scale:{get:ExpressionPropertyInterface(t.transform.mProps.s)},rotation:{get:ExpressionPropertyInterface(t.transform.mProps.r)},skew:{get:ExpressionPropertyInterface(t.transform.mProps.sk)},skewAxis:{get:ExpressionPropertyInterface(t.transform.mProps.sa)},_name:{value:e.nm}}),s.ty="tr",s.mn=e.mn,s.propertyGroup=r,s}(t.it[t.it.length-1],e.it[e.it.length-1],i.propertyGroup);return i.content=l,i.transform=p,Object.defineProperty(i,"_name",{get:function(){return t.nm}}),i.numProperties=t.np,i.propertyIndex=t.ix,i.nm=t.nm,i.mn=t.mn,i}function o(t,e,r){function i(t){return"Color"===t||"color"===t?i.color:"Opacity"===t||"opacity"===t?i.opacity:void 0}return Object.defineProperties(i,{color:{get:ExpressionPropertyInterface(e.c)},opacity:{get:ExpressionPropertyInterface(e.o)},_name:{value:t.nm},mn:{value:t.mn}}),e.c.setGroupProperty(r),e.o.setGroupProperty(r),i}function h(t,e,r){function i(t){return 1===t?ob:r(t-1)}function s(t){return 1===t?h:i(t-1)}var a,n,o=t.d?t.d.length:0,h={};for(a=0;a<o;a+=1)n=a,Object.defineProperty(h,t.d[n].nm,{get:ExpressionPropertyInterface(e.d.dataProps[n].p)}),e.d.dataProps[a].p.setGroupProperty(s);function l(t){return"Color"===t||"color"===t?l.color:"Opacity"===t||"opacity"===t?l.opacity:"Stroke Width"===t||"stroke width"===t?l.strokeWidth:void 0}return Object.defineProperties(l,{color:{get:ExpressionPropertyInterface(e.c)},opacity:{get:ExpressionPropertyInterface(e.o)},strokeWidth:{get:ExpressionPropertyInterface(e.w)},dash:{get:function(){return h}},_name:{value:t.nm},mn:{value:t.mn}}),e.c.setGroupProperty(i),e.o.setGroupProperty(i),e.w.setGroupProperty(i),l}function l(e,t,r){function i(t){return 1==t?s:r(--t)}function s(t){return t===e.e.ix||"End"===t||"end"===t?s.end:t===e.s.ix?s.start:t===e.o.ix?s.offset:void 0}return s.propertyIndex=e.ix,t.s.setGroupProperty(i),t.e.setGroupProperty(i),t.o.setGroupProperty(i),s.propertyIndex=e.ix,s.propertyGroup=r,Object.defineProperties(s,{start:{get:ExpressionPropertyInterface(t.s)},end:{get:ExpressionPropertyInterface(t.e)},offset:{get:ExpressionPropertyInterface(t.o)},_name:{value:e.nm}}),s.mn=e.mn,s}function p(e,t,r){function i(t){return 1==t?a:r(--t)}a.propertyIndex=e.ix;var s="tm"===t.sh.ty?t.sh.prop:t.sh;function a(t){return e.p.ix===t?a.position:e.s.ix===t?a.size:void 0}return s.s.setGroupProperty(i),s.p.setGroupProperty(i),Object.defineProperties(a,{size:{get:ExpressionPropertyInterface(s.s)},position:{get:ExpressionPropertyInterface(s.p)},_name:{value:e.nm}}),a.mn=e.mn,a}function f(e,t,r){function i(t){return 1==t?a:r(--t)}var s="tm"===t.sh.ty?t.sh.prop:t.sh;function a(t){return e.p.ix===t?a.position:e.r.ix===t?a.rotation:e.pt.ix===t?a.points:e.or.ix===t||"ADBE Vector Star Outer Radius"===t?a.outerRadius:e.os.ix===t?a.outerRoundness:!e.ir||e.ir.ix!==t&&"ADBE Vector Star Inner Radius"!==t?e.is&&e.is.ix===t?a.innerRoundness:void 0:a.innerRadius}return a.propertyIndex=e.ix,s.or.setGroupProperty(i),s.os.setGroupProperty(i),s.pt.setGroupProperty(i),s.p.setGroupProperty(i),s.r.setGroupProperty(i),e.ir&&(s.ir.setGroupProperty(i),s.is.setGroupProperty(i)),Object.defineProperties(a,{position:{get:ExpressionPropertyInterface(s.p)},rotation:{get:ExpressionPropertyInterface(s.r)},points:{get:ExpressionPropertyInterface(s.pt)},outerRadius:{get:ExpressionPropertyInterface(s.or)},outerRoundness:{get:ExpressionPropertyInterface(s.os)},innerRadius:{get:ExpressionPropertyInterface(s.ir)},innerRoundness:{get:ExpressionPropertyInterface(s.is)},_name:{value:e.nm}}),a.mn=e.mn,a}function c(e,t,r){function i(t){return 1==t?a:r(--t)}var s="tm"===t.sh.ty?t.sh.prop:t.sh;function a(t){return e.p.ix===t?a.position:e.r.ix===t?a.roundness:e.s.ix===t||"Size"===t||"ADBE Vector Rect Size"===t?a.size:void 0}return a.propertyIndex=e.ix,s.p.setGroupProperty(i),s.s.setGroupProperty(i),s.r.setGroupProperty(i),Object.defineProperties(a,{position:{get:ExpressionPropertyInterface(s.p)},roundness:{get:ExpressionPropertyInterface(s.r)},size:{get:ExpressionPropertyInterface(s.s)},_name:{value:e.nm}}),a.mn=e.mn,a}function d(e,t,r){var i=t;function s(t){if(e.r.ix===t||"Round Corners 1"===t)return s.radius}return s.propertyIndex=e.ix,i.rd.setGroupProperty(function(t){return 1==t?s:r(--t)}),Object.defineProperties(s,{radius:{get:ExpressionPropertyInterface(i.rd)},_name:{value:e.nm}}),s.mn=e.mn,s}function u(e,t,r){function i(t){return 1==t?a:r(--t)}var s=t;function a(t){return e.c.ix===t||"Copies"===t?a.copies:e.o.ix===t||"Offset"===t?a.offset:void 0}return a.propertyIndex=e.ix,s.c.setGroupProperty(i),s.o.setGroupProperty(i),Object.defineProperties(a,{copies:{get:ExpressionPropertyInterface(s.c)},offset:{get:ExpressionPropertyInterface(s.o)},_name:{value:e.nm}}),a.mn=e.mn,a}function y(t,e,r){var i=e.sh;function s(t){if("Shape"===t||"shape"===t||"Path"===t||"path"===t||"ADBE Vector Shape"===t||2===t)return s.path}return i.setGroupProperty(function(t){return 1==t?s:r(--t)}),Object.defineProperties(s,{path:{get:function(){return i.k&&i.getValue(),i}},shape:{get:function(){return i.k&&i.getValue(),i}},_name:{value:t.nm},ix:{value:t.ix},propertyIndex:{value:t.ix},mn:{value:t.mn}}),s}return function(t,e,r){var i;function s(t){if("number"==typeof t)return i[t-1];for(var e=0,r=i.length;e<r;){if(i[e]._name===t)return i[e];e+=1}}return s.propertyGroup=r,i=m(t,e,s),s.numProperties=i.length,s}}(),TextExpressionInterface=function(e){var r;function t(){}return Object.defineProperty(t,"sourceText",{get:function(){e.textProperty.getValue();var t=e.textProperty.currentData.t;return void 0!==t&&(e.textProperty.currentData.t=void 0,(r=new String(t)).value=t||new String(t)),r}}),t},LayerExpressionInterface=function(){function s(t,e){var r=new Matrix;if(r.reset(),this._elem.finalTransform.mProp.applyToMatrix(r),this._elem.hierarchy&&this._elem.hierarchy.length){var i,s=this._elem.hierarchy.length;for(i=0;i<s;i+=1)this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(r);return r.applyToPointArray(t[0],t[1],t[2]||0)}return r.applyToPointArray(t[0],t[1],t[2]||0)}function a(t,e){var r=new Matrix;if(r.reset(),this._elem.finalTransform.mProp.applyToMatrix(r),this._elem.hierarchy&&this._elem.hierarchy.length){var i,s=this._elem.hierarchy.length;for(i=0;i<s;i+=1)this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(r);return r.inversePoint(t)}return r.inversePoint(t)}function n(t){var e=new Matrix;if(e.reset(),this._elem.finalTransform.mProp.applyToMatrix(e),this._elem.hierarchy&&this._elem.hierarchy.length){var r,i=this._elem.hierarchy.length;for(r=0;r<i;r+=1)this._elem.hierarchy[r].finalTransform.mProp.applyToMatrix(e);return e.inversePoint(t)}return e.inversePoint(t)}function o(){return[1,1,1,1]}return function(e){var r;function i(t){switch(t){case"ADBE Root Vectors Group":case"Contents":case 2:return i.shapeInterface;case 1:case 6:case"Transform":case"transform":case"ADBE Transform Group":return r;case 4:case"ADBE Effect Parade":case"effects":case"Effects":return i.effect}}i.toWorld=s,i.fromWorld=a,i.toComp=s,i.fromComp=n,i.sampleImage=o,i.sourceRectAtTime=e.sourceRectAtTime.bind(e);var t=getDescriptor(r=TransformExpressionInterface((i._elem=e).finalTransform.mProp),"anchorPoint");return Object.defineProperties(i,{hasParent:{get:function(){return e.hierarchy.length}},parent:{get:function(){return e.hierarchy[0].layerInterface}},rotation:getDescriptor(r,"rotation"),scale:getDescriptor(r,"scale"),position:getDescriptor(r,"position"),opacity:getDescriptor(r,"opacity"),anchorPoint:t,anchor_point:t,transform:{get:function(){return r}},active:{get:function(){return e.isInRange}}}),i.startTime=e.data.st,i.index=e.data.ind,i.source=e.data.refId,i.height=0===e.data.ty?e.data.h:100,i.width=0===e.data.ty?e.data.w:100,i.inPoint=e.data.ip/e.comp.globalData.frameRate,i.outPoint=e.data.op/e.comp.globalData.frameRate,i._name=e.data.nm,i.registerMaskInterface=function(t){i.mask=new MaskManagerInterface(t,e)},i.registerEffectsInterface=function(t){i.effect=t},i}}(),CompExpressionInterface=function(i){function t(t){for(var e=0,r=i.layers.length;e<r;){if(i.layers[e].nm===t||i.layers[e].ind===t)return i.elements[e].layerInterface;e+=1}return null}return Object.defineProperty(t,"_name",{value:i.data.nm}),(t.layer=t).pixelAspect=1,t.height=i.data.h||i.globalData.compSize.h,t.width=i.data.w||i.globalData.compSize.w,t.pixelAspect=1,t.frameDuration=1/i.globalData.frameRate,t.displayStartTime=0,t.numLayers=i.layers.length,t},TransformExpressionInterface=function(t){function e(t){switch(t){case"scale":case"Scale":case"ADBE Scale":case 6:return e.scale;case"rotation":case"Rotation":case"ADBE Rotation":case"ADBE Rotate Z":case 10:return e.rotation;case"ADBE Rotate X":return e.xRotation;case"ADBE Rotate Y":return e.yRotation;case"position":case"Position":case"ADBE Position":case 2:return e.position;case"ADBE Position_0":return e.xPosition;case"ADBE Position_1":return e.yPosition;case"ADBE Position_2":return e.zPosition;case"anchorPoint":case"AnchorPoint":case"Anchor Point":case"ADBE AnchorPoint":case 1:return e.anchorPoint;case"opacity":case"Opacity":case 11:return e.opacity}}if(Object.defineProperty(e,"rotation",{get:ExpressionPropertyInterface(t.r||t.rz)}),Object.defineProperty(e,"zRotation",{get:ExpressionPropertyInterface(t.rz||t.r)}),Object.defineProperty(e,"xRotation",{get:ExpressionPropertyInterface(t.rx)}),Object.defineProperty(e,"yRotation",{get:ExpressionPropertyInterface(t.ry)}),Object.defineProperty(e,"scale",{get:ExpressionPropertyInterface(t.s)}),t.p)var r=ExpressionPropertyInterface(t.p);return Object.defineProperty(e,"position",{get:function(){return t.p?r():[t.px.v,t.py.v,t.pz?t.pz.v:0]}}),Object.defineProperty(e,"xPosition",{get:ExpressionPropertyInterface(t.px)}),Object.defineProperty(e,"yPosition",{get:ExpressionPropertyInterface(t.py)}),Object.defineProperty(e,"zPosition",{get:ExpressionPropertyInterface(t.pz)}),Object.defineProperty(e,"anchorPoint",{get:ExpressionPropertyInterface(t.a)}),Object.defineProperty(e,"opacity",{get:ExpressionPropertyInterface(t.o)}),Object.defineProperty(e,"skew",{get:ExpressionPropertyInterface(t.sk)}),Object.defineProperty(e,"skewAxis",{get:ExpressionPropertyInterface(t.sa)}),Object.defineProperty(e,"orientation",{get:ExpressionPropertyInterface(t.or)}),e},ProjectInterface=function(){function e(t){this.compositions.push(t)}return function(){function t(t){for(var e=0,r=this.compositions.length;e<r;){if(this.compositions[e].data&&this.compositions[e].data.nm===t)return this.compositions[e].prepareFrame&&this.compositions[e].data.xt&&this.compositions[e].prepareFrame(this.currentFrame),this.compositions[e].compInterface;e+=1}}return t.compositions=[],t.currentFrame=0,t.registerComposition=e,t}}(),EffectsExpressionInterface=function(){function l(s,t,e,r){var i,a=[],n=s.ef.length;for(i=0;i<n;i+=1)5===s.ef[i].ty?a.push(l(s.ef[i],t.effectElements[i],t.effectElements[i].propertyGroup,r)):a.push(p(t.effectElements[i],s.ef[i].ty,r,o));function o(t){return 1===t?h:e(t-1)}var h=function(t){for(var e=s.ef,r=0,i=e.length;r<i;){if(t===e[r].nm||t===e[r].mn||t===e[r].ix)return 5===e[r].ty?a[r]:a[r]();r+=1}return a[0]()};return h.propertyGroup=o,"ADBE Color Control"===s.mn&&Object.defineProperty(h,"color",{get:function(){return a[0]()}}),Object.defineProperty(h,"numProperties",{get:function(){return s.np}}),h.active=h.enabled=0!==s.en,h}function p(t,e,r,i){var s=ExpressionPropertyInterface(t.p);return t.p.setGroupProperty&&t.p.setGroupProperty(i),function(){return 10===e?r.comp.compInterface(t.p.v):s()}}return{createEffectsInterface:function(s,t){if(s.effectsManager){var e,a=[],r=s.data.ef,i=s.effectsManager.effectElements.length;for(e=0;e<i;e+=1)a.push(l(r[e],s.effectsManager.effectElements[e],t,s));return function(t){for(var e=s.data.ef||[],r=0,i=e.length;r<i;){if(t===e[r].nm||t===e[r].mn||t===e[r].ix)return a[r];r+=1}}}}}}(),MaskManagerInterface=function(){function a(t,e){this._mask=t,this._data=e}Object.defineProperty(a.prototype,"maskPath",{get:function(){return this._mask.prop.k&&this._mask.prop.getValue(),this._mask.prop}}),Object.defineProperty(a.prototype,"maskOpacity",{get:function(){return this._mask.op.k&&this._mask.op.getValue(),100*this._mask.op.v}});return function(e,t){var r,i=createSizedArray(e.viewData.length),s=e.viewData.length;for(r=0;r<s;r+=1)i[r]=new a(e.viewData[r],e.masksProperties[r]);return function(t){for(r=0;r<s;){if(e.masksProperties[r].nm===t)return i[r];r+=1}}}}(),ExpressionPropertyInterface=function(){var s={pv:0,v:0,mult:1},n={pv:[0,0,0],v:[0,0,0],mult:1};function o(i,s,a){Object.defineProperty(i,"velocity",{get:function(){return s.getVelocityAtTime(s.comp.currentFrame)}}),i.numKeys=s.keyframes?s.keyframes.length:0,i.key=function(t){if(i.numKeys){var e="";e="s"in s.keyframes[t-1]?s.keyframes[t-1].s:"e"in s.keyframes[t-2]?s.keyframes[t-2].e:s.keyframes[t-2].s;var r="unidimensional"===a?new Number(e):Object.assign({},e);return r.time=s.keyframes[t-1].t/s.elem.comp.globalData.frameRate,r}return 0},i.valueAtTime=s.getValueAtTime,i.speedAtTime=s.getSpeedAtTime,i.velocityAtTime=s.getVelocityAtTime,i.propertyGroup=s.propertyGroup}function e(){return s}return function(t){return t?"unidimensional"===t.propType?function(t){t&&"pv"in t||(t=s);var e=1/t.mult,r=t.pv*e,i=new Number(r);return i.value=r,o(i,t,"unidimensional"),function(){return t.k&&t.getValue(),r=t.v*e,i.value!==r&&((i=new Number(r)).value=r,o(i,t,"unidimensional")),i}}(t):function(e){e&&"pv"in e||(e=n);var r=1/e.mult,i=e.pv.length,s=createTypedArray("float32",i),a=createTypedArray("float32",i);return s.value=a,o(s,e,"multidimensional"),function(){e.k&&e.getValue();for(var t=0;t<i;t+=1)s[t]=a[t]=e.v[t]*r;return s}}(t):e}}(),h5,i5;function SliderEffect(t,e,r){this.p=PropertyFactory.getProp(e,t.v,0,0,r)}function AngleEffect(t,e,r){this.p=PropertyFactory.getProp(e,t.v,0,0,r)}function ColorEffect(t,e,r){this.p=PropertyFactory.getProp(e,t.v,1,0,r)}function PointEffect(t,e,r){this.p=PropertyFactory.getProp(e,t.v,1,0,r)}function LayerIndexEffect(t,e,r){this.p=PropertyFactory.getProp(e,t.v,0,0,r)}function MaskIndexEffect(t,e,r){this.p=PropertyFactory.getProp(e,t.v,0,0,r)}function CheckboxEffect(t,e,r){this.p=PropertyFactory.getProp(e,t.v,0,0,r)}function NoValueEffect(){this.p={}}function EffectsManager(){}function EffectsManager(t,e){var r=t.ef||[];this.effectElements=[];var i,s,a=r.length;for(i=0;i<a;i++)s=new GroupEffect(r[i],e),this.effectElements.push(s)}function GroupEffect(t,e){this.init(t,e)}h5=function(){function r(t,e){return this.textIndex=t+1,this.textTotal=e,this.v=this.getValue()*this.mult,this.v}return function(t,e){this.pv=1,this.comp=t.comp,this.elem=t,this.mult=.01,this.propType="textSelector",this.textTotal=e.totalChars,this.selectorValue=100,this.lastValue=[1,1,1],this.k=!0,this.x=!0,this.getValue=ExpressionManager.initiateExpression.bind(this)(t,e,this),this.getMult=r,this.getVelocityAtTime=expressionHelpers.getVelocityAtTime,this.kf?this.getValueAtTime=expressionHelpers.getValueAtTime.bind(this):this.getValueAtTime=expressionHelpers.getStaticValueAtTime.bind(this),this.setGroupProperty=expressionHelpers.setGroupProperty}}(),i5=TextSelectorProp.getTextSelectorProp,TextSelectorProp.getTextSelectorProp=function(t,e,r){return 1===e.t?new h5(t,e,r):i5(t,e,r)},extendPrototype([DynamicPropertyContainer],GroupEffect),GroupEffect.prototype.getValue=GroupEffect.prototype.iterateDynamicProperties,GroupEffect.prototype.init=function(t,e){this.data=t,this.effectElements=[],this.initDynamicPropertyContainer(e);var r,i,s=this.data.ef.length,a=this.data.ef;for(r=0;r<s;r+=1){switch(i=null,a[r].ty){case 0:i=new SliderEffect(a[r],e,this);break;case 1:i=new AngleEffect(a[r],e,this);break;case 2:i=new ColorEffect(a[r],e,this);break;case 3:i=new PointEffect(a[r],e,this);break;case 4:case 7:i=new CheckboxEffect(a[r],e,this);break;case 10:i=new LayerIndexEffect(a[r],e,this);break;case 11:i=new MaskIndexEffect(a[r],e,this);break;case 5:i=new EffectsManager(a[r],e,this);break;default:i=new NoValueEffect(a[r],e,this)}i&&this.effectElements.push(i)}};var lottiejs={},_isFrozen=!1;function setLocationHref(t){locationHref=t}function searchAnimations(){!0===standalone?animationManager.searchAnimations(animationData,standalone,renderer):animationManager.searchAnimations()}function setSubframeRendering(t){subframeEnabled=t}function loadAnimation(t){return!0===standalone&&(t.animationData=JSON.parse(animationData)),animationManager.loadAnimation(t)}function setQuality(t){if("string"==typeof t)switch(t){case"high":defaultCurveSegments=200;break;case"medium":defaultCurveSegments=50;break;case"low":defaultCurveSegments=10}else!isNaN(t)&&1<t&&(defaultCurveSegments=t);roundValues(!(50<=defaultCurveSegments))}function inBrowser(){return"undefined"!=typeof navigator}function installPlugin(t,e){"expressions"===t&&(expressionsPlugin=e)}function getFactory(t){switch(t){case"propertyFactory":return PropertyFactory;case"shapePropertyFactory":return ShapePropertyFactory;case"matrix":return Matrix}}function checkReady(){"complete"===document.readyState&&(clearInterval(readyStateCheckInterval),searchAnimations())}function getQueryVariable(t){for(var e=queryString.split("&"),r=0;r<e.length;r++){var i=e[r].split("=");if(decodeURIComponent(i[0])==t)return decodeURIComponent(i[1])}}lottiejs.play=animationManager.play,lottiejs.pause=animationManager.pause,lottiejs.setLocationHref=setLocationHref,lottiejs.togglePause=animationManager.togglePause,lottiejs.setSpeed=animationManager.setSpeed,lottiejs.setDirection=animationManager.setDirection,lottiejs.stop=animationManager.stop,lottiejs.searchAnimations=searchAnimations,lottiejs.registerAnimation=animationManager.registerAnimation,lottiejs.loadAnimation=loadAnimation,lottiejs.setSubframeRendering=setSubframeRendering,lottiejs.resize=animationManager.resize,lottiejs.goToAndStop=animationManager.goToAndStop,lottiejs.destroy=animationManager.destroy,lottiejs.setQuality=setQuality,lottiejs.inBrowser=inBrowser,lottiejs.installPlugin=installPlugin,lottiejs.freeze=animationManager.freeze,lottiejs.unfreeze=animationManager.unfreeze,lottiejs.getRegisteredAnimations=animationManager.getRegisteredAnimations,lottiejs.__getFactory=getFactory,lottiejs.version="5.5.8";var standalone="__[STANDALONE]__",animationData="__[ANIMATIONDATA]__",renderer="";if(standalone){var scripts=document.getElementsByTagName("script"),index=scripts.length-1,myScript=scripts[index]||{src:""},queryString=myScript.src.replace(/^[^\?]+\??/,"");renderer=getQueryVariable("renderer")}var readyStateCheckInterval=setInterval(checkReady,100);return lottiejs},"function"==typeof define&&define.amd?define(function(){return b(a)}):"object"==typeof module&&module.exports?module.exports=b(a):(a.lottie=b(a),a.bodymovin=a.lottie)); \ No newline at end of file +var a, b +'undefined' != typeof navigator && + ((a = window || {}), + (b = function (window) { + 'use strict' + var svgNS = 'http://www.w3.org/2000/svg', + locationHref = '', + initialDefaultFrame = -999999, + subframeEnabled = !0, + expressionsPlugin, + isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent), + cachedColors = {}, + bm_rounder = Math.round, + bm_rnd, + bm_pow = Math.pow, + bm_sqrt = Math.sqrt, + bm_abs = Math.abs, + bm_floor = Math.floor, + bm_max = Math.max, + bm_min = Math.min, + blitter = 10, + BMMath = {} + function ProjectInterface() { + return {} + } + ;(!(function () { + var t, + e = [ + 'abs', + 'acos', + 'acosh', + 'asin', + 'asinh', + 'atan', + 'atanh', + 'atan2', + 'ceil', + 'cbrt', + 'expm1', + 'clz32', + 'cos', + 'cosh', + 'exp', + 'floor', + 'fround', + 'hypot', + 'imul', + 'log', + 'log1p', + 'log2', + 'log10', + 'max', + 'min', + 'pow', + 'random', + 'round', + 'sign', + 'sin', + 'sinh', + 'sqrt', + 'tan', + 'tanh', + 'trunc', + 'E', + 'LN10', + 'LN2', + 'LOG10E', + 'LOG2E', + 'PI', + 'SQRT1_2', + 'SQRT2', + ], + r = e.length + for (t = 0; t < r; t += 1) BMMath[e[t]] = Math[e[t]] + })(), + (BMMath.random = Math.random), + (BMMath.abs = function (t) { + if ('object' === typeof t && t.length) { + var e, + r = createSizedArray(t.length), + i = t.length + for (e = 0; e < i; e += 1) r[e] = Math.abs(t[e]) + return r + } + return Math.abs(t) + })) + var defaultCurveSegments = 150, + degToRads = Math.PI / 180, + roundCorner = 0.5519 + function roundValues(t) { + bm_rnd = t + ? Math.round + : function (t) { + return t + } + } + function styleDiv(t) { + ;((t.style.position = 'absolute'), + (t.style.top = 0), + (t.style.left = 0), + (t.style.display = 'block'), + (t.style.transformOrigin = t.style.webkitTransformOrigin = '0 0'), + (t.style.backfaceVisibility = t.style.webkitBackfaceVisibility = 'visible'), + (t.style.transformStyle = t.style.webkitTransformStyle = t.style.mozTransformStyle = 'preserve-3d')) + } + function BMEnterFrameEvent(t, e, r, i) { + ;((this.type = t), (this.currentTime = e), (this.totalTime = r), (this.direction = i < 0 ? -1 : 1)) + } + function BMCompleteEvent(t, e) { + ;((this.type = t), (this.direction = e < 0 ? -1 : 1)) + } + function BMCompleteLoopEvent(t, e, r, i) { + ;((this.type = t), (this.currentLoop = r), (this.totalLoops = e), (this.direction = i < 0 ? -1 : 1)) + } + function BMSegmentStartEvent(t, e, r) { + ;((this.type = t), (this.firstFrame = e), (this.totalFrames = r)) + } + function BMDestroyEvent(t, e) { + ;((this.type = t), (this.target = e)) + } + function BMRenderFrameErrorEvent(t, e) { + ;((this.type = 'renderFrameError'), (this.nativeError = t), (this.currentTime = e)) + } + function BMConfigErrorEvent(t) { + ;((this.type = 'configError'), (this.nativeError = t)) + } + function BMAnimationConfigErrorEvent(t, e) { + ;((this.type = t), (this.nativeError = e), (this.currentTime = currentTime)) + } + roundValues(!1) + var createElementID = + ((I = 0), + function () { + return '__lottie_element_' + ++I + }), + I + function HSVtoRGB(t, e, r) { + var i, s, a, n, o, h, l, p + switch (((h = r * (1 - e)), (l = r * (1 - (o = 6 * t - (n = Math.floor(6 * t))) * e)), (p = r * (1 - (1 - o) * e)), n % 6)) { + case 0: + ;((i = r), (s = p), (a = h)) + break + case 1: + ;((i = l), (s = r), (a = h)) + break + case 2: + ;((i = h), (s = r), (a = p)) + break + case 3: + ;((i = h), (s = l), (a = r)) + break + case 4: + ;((i = p), (s = h), (a = r)) + break + case 5: + ;((i = r), (s = h), (a = l)) + } + return [i, s, a] + } + function RGBtoHSV(t, e, r) { + var i, + s = Math.max(t, e, r), + a = Math.min(t, e, r), + n = s - a, + o = 0 === s ? 0 : n / s, + h = s / 255 + switch (s) { + case a: + i = 0 + break + case t: + ;((i = e - r + n * (e < r ? 6 : 0)), (i /= 6 * n)) + break + case e: + ;((i = r - t + 2 * n), (i /= 6 * n)) + break + case r: + ;((i = t - e + 4 * n), (i /= 6 * n)) + } + return [i, o, h] + } + function addSaturationToRGB(t, e) { + var r = RGBtoHSV(255 * t[0], 255 * t[1], 255 * t[2]) + return ((r[1] += e), 1 < r[1] ? (r[1] = 1) : r[1] <= 0 && (r[1] = 0), HSVtoRGB(r[0], r[1], r[2])) + } + function addBrightnessToRGB(t, e) { + var r = RGBtoHSV(255 * t[0], 255 * t[1], 255 * t[2]) + return ((r[2] += e), 1 < r[2] ? (r[2] = 1) : r[2] < 0 && (r[2] = 0), HSVtoRGB(r[0], r[1], r[2])) + } + function addHueToRGB(t, e) { + var r = RGBtoHSV(255 * t[0], 255 * t[1], 255 * t[2]) + return ((r[0] += e / 360), 1 < r[0] ? (r[0] -= 1) : r[0] < 0 && (r[0] += 1), HSVtoRGB(r[0], r[1], r[2])) + } + var rgbToHex = (function () { + var t, + e, + i = [] + for (t = 0; t < 256; t += 1) ((e = t.toString(16)), (i[t] = 1 == e.length ? '0' + e : e)) + return function (t, e, r) { + return (t < 0 && (t = 0), e < 0 && (e = 0), r < 0 && (r = 0), '#' + i[t] + i[e] + i[r]) + } + })() + function BaseEvent() {} + BaseEvent.prototype = { + triggerEvent: function (t, e) { + if (this._cbs[t]) for (var r = this._cbs[t].length, i = 0; i < r; i++) this._cbs[t][i](e) + }, + addEventListener: function (t, e) { + return ( + this._cbs[t] || (this._cbs[t] = []), + this._cbs[t].push(e), + function () { + this.removeEventListener(t, e) + }.bind(this) + ) + }, + removeEventListener: function (t, e) { + if (e) { + if (this._cbs[t]) { + for (var r = 0, i = this._cbs[t].length; r < i; ) (this._cbs[t][r] === e && (this._cbs[t].splice(r, 1), (r -= 1), (i -= 1)), (r += 1)) + this._cbs[t].length || (this._cbs[t] = null) + } + } else this._cbs[t] = null + }, + } + var createTypedArray = + 'function' == typeof Uint8ClampedArray && 'function' == typeof Float32Array + ? function (t, e) { + return 'float32' === t ? new Float32Array(e) : 'int16' === t ? new Int16Array(e) : 'uint8c' === t ? new Uint8ClampedArray(e) : void 0 + } + : function (t, e) { + var r, + i = 0, + s = [] + switch (t) { + case 'int16': + case 'uint8c': + r = 1 + break + default: + r = 1.1 + } + for (i = 0; i < e; i += 1) s.push(r) + return s + } + function createSizedArray(t) { + return Array.apply(null, { length: t }) + } + function createNS(t) { + return document.createElementNS(svgNS, t) + } + function createTag(t) { + return document.createElement(t) + } + function DynamicPropertyContainer() {} + DynamicPropertyContainer.prototype = { + addDynamicProperty: function (t) { + ;-1 === this.dynamicProperties.indexOf(t) && + (this.dynamicProperties.push(t), this.container.addDynamicProperty(this), (this._isAnimated = !0)) + }, + iterateDynamicProperties: function () { + this._mdf = !1 + var t, + e = this.dynamicProperties.length + for (t = 0; t < e; t += 1) (this.dynamicProperties[t].getValue(), this.dynamicProperties[t]._mdf && (this._mdf = !0)) + }, + initDynamicPropertyContainer: function (t) { + ;((this.container = t), (this.dynamicProperties = []), (this._mdf = !1), (this._isAnimated = !1)) + }, + } + var getBlendMode = + ((Ra = { + 0: 'source-over', + 1: 'multiply', + 2: 'screen', + 3: 'overlay', + 4: 'darken', + 5: 'lighten', + 6: 'color-dodge', + 7: 'color-burn', + 8: 'hard-light', + 9: 'soft-light', + 10: 'difference', + 11: 'exclusion', + 12: 'hue', + 13: 'saturation', + 14: 'color', + 15: 'luminosity', + }), + function (t) { + return Ra[t] || '' + }), + Ra, + Matrix = (function () { + var s = Math.cos, + a = Math.sin, + n = Math.tan, + i = Math.round + function t() { + return ( + (this.props[0] = 1), + (this.props[1] = 0), + (this.props[2] = 0), + (this.props[3] = 0), + (this.props[4] = 0), + (this.props[5] = 1), + (this.props[6] = 0), + (this.props[7] = 0), + (this.props[8] = 0), + (this.props[9] = 0), + (this.props[10] = 1), + (this.props[11] = 0), + (this.props[12] = 0), + (this.props[13] = 0), + (this.props[14] = 0), + (this.props[15] = 1), + this + ) + } + function e(t) { + if (0 === t) return this + var e = s(t), + r = a(t) + return this._t(e, -r, 0, 0, r, e, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1) + } + function r(t) { + if (0 === t) return this + var e = s(t), + r = a(t) + return this._t(1, 0, 0, 0, 0, e, -r, 0, 0, r, e, 0, 0, 0, 0, 1) + } + function o(t) { + if (0 === t) return this + var e = s(t), + r = a(t) + return this._t(e, 0, r, 0, 0, 1, 0, 0, -r, 0, e, 0, 0, 0, 0, 1) + } + function h(t) { + if (0 === t) return this + var e = s(t), + r = a(t) + return this._t(e, -r, 0, 0, r, e, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1) + } + function l(t, e) { + return this._t(1, e, t, 1, 0, 0) + } + function p(t, e) { + return this.shear(n(t), n(e)) + } + function m(t, e) { + var r = s(e), + i = a(e) + return this._t(r, i, 0, 0, -i, r, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1) + ._t(1, 0, 0, 0, n(t), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1) + ._t(r, -i, 0, 0, i, r, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1) + } + function f(t, e, r) { + return (r || 0 === r || (r = 1), 1 === t && 1 === e && 1 === r ? this : this._t(t, 0, 0, 0, 0, e, 0, 0, 0, 0, r, 0, 0, 0, 0, 1)) + } + function c(t, e, r, i, s, a, n, o, h, l, p, m, f, c, d, u) { + return ( + (this.props[0] = t), + (this.props[1] = e), + (this.props[2] = r), + (this.props[3] = i), + (this.props[4] = s), + (this.props[5] = a), + (this.props[6] = n), + (this.props[7] = o), + (this.props[8] = h), + (this.props[9] = l), + (this.props[10] = p), + (this.props[11] = m), + (this.props[12] = f), + (this.props[13] = c), + (this.props[14] = d), + (this.props[15] = u), + this + ) + } + function d(t, e, r) { + return ((r = r || 0), 0 !== t || 0 !== e || 0 !== r ? this._t(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, t, e, r, 1) : this) + } + function u(t, e, r, i, s, a, n, o, h, l, p, m, f, c, d, u) { + var y = this.props + if (1 === t && 0 === e && 0 === r && 0 === i && 0 === s && 1 === a && 0 === n && 0 === o && 0 === h && 0 === l && 1 === p && 0 === m) + return ( + (y[12] = y[12] * t + y[15] * f), + (y[13] = y[13] * a + y[15] * c), + (y[14] = y[14] * p + y[15] * d), + (y[15] = y[15] * u), + (this._identityCalculated = !1), + this + ) + var g = y[0], + v = y[1], + b = y[2], + E = y[3], + x = y[4], + P = y[5], + S = y[6], + _ = y[7], + A = y[8], + C = y[9], + T = y[10], + k = y[11], + M = y[12], + D = y[13], + w = y[14], + F = y[15] + return ( + (y[0] = g * t + v * s + b * h + E * f), + (y[1] = g * e + v * a + b * l + E * c), + (y[2] = g * r + v * n + b * p + E * d), + (y[3] = g * i + v * o + b * m + E * u), + (y[4] = x * t + P * s + S * h + _ * f), + (y[5] = x * e + P * a + S * l + _ * c), + (y[6] = x * r + P * n + S * p + _ * d), + (y[7] = x * i + P * o + S * m + _ * u), + (y[8] = A * t + C * s + T * h + k * f), + (y[9] = A * e + C * a + T * l + k * c), + (y[10] = A * r + C * n + T * p + k * d), + (y[11] = A * i + C * o + T * m + k * u), + (y[12] = M * t + D * s + w * h + F * f), + (y[13] = M * e + D * a + w * l + F * c), + (y[14] = M * r + D * n + w * p + F * d), + (y[15] = M * i + D * o + w * m + F * u), + (this._identityCalculated = !1), + this + ) + } + function y() { + return ( + this._identityCalculated || + ((this._identity = !( + 1 !== this.props[0] || + 0 !== this.props[1] || + 0 !== this.props[2] || + 0 !== this.props[3] || + 0 !== this.props[4] || + 1 !== this.props[5] || + 0 !== this.props[6] || + 0 !== this.props[7] || + 0 !== this.props[8] || + 0 !== this.props[9] || + 1 !== this.props[10] || + 0 !== this.props[11] || + 0 !== this.props[12] || + 0 !== this.props[13] || + 0 !== this.props[14] || + 1 !== this.props[15] + )), + (this._identityCalculated = !0)), + this._identity + ) + } + function g(t) { + for (var e = 0; e < 16; ) { + if (t.props[e] !== this.props[e]) return !1 + e += 1 + } + return !0 + } + function v(t) { + var e + for (e = 0; e < 16; e += 1) t.props[e] = this.props[e] + } + function b(t) { + var e + for (e = 0; e < 16; e += 1) this.props[e] = t[e] + } + function E(t, e, r) { + return { + x: t * this.props[0] + e * this.props[4] + r * this.props[8] + this.props[12], + y: t * this.props[1] + e * this.props[5] + r * this.props[9] + this.props[13], + z: t * this.props[2] + e * this.props[6] + r * this.props[10] + this.props[14], + } + } + function x(t, e, r) { + return t * this.props[0] + e * this.props[4] + r * this.props[8] + this.props[12] + } + function P(t, e, r) { + return t * this.props[1] + e * this.props[5] + r * this.props[9] + this.props[13] + } + function S(t, e, r) { + return t * this.props[2] + e * this.props[6] + r * this.props[10] + this.props[14] + } + function _(t) { + var e = this.props[0] * this.props[5] - this.props[1] * this.props[4], + r = this.props[5] / e, + i = -this.props[1] / e, + s = -this.props[4] / e, + a = this.props[0] / e, + n = (this.props[4] * this.props[13] - this.props[5] * this.props[12]) / e, + o = -(this.props[0] * this.props[13] - this.props[1] * this.props[12]) / e + return [t[0] * r + t[1] * s + n, t[0] * i + t[1] * a + o, 0] + } + function A(t) { + var e, + r = t.length, + i = [] + for (e = 0; e < r; e += 1) i[e] = _(t[e]) + return i + } + function C(t, e, r) { + var i = createTypedArray('float32', 6) + if (this.isIdentity()) ((i[0] = t[0]), (i[1] = t[1]), (i[2] = e[0]), (i[3] = e[1]), (i[4] = r[0]), (i[5] = r[1])) + else { + var s = this.props[0], + a = this.props[1], + n = this.props[4], + o = this.props[5], + h = this.props[12], + l = this.props[13] + ;((i[0] = t[0] * s + t[1] * n + h), + (i[1] = t[0] * a + t[1] * o + l), + (i[2] = e[0] * s + e[1] * n + h), + (i[3] = e[0] * a + e[1] * o + l), + (i[4] = r[0] * s + r[1] * n + h), + (i[5] = r[0] * a + r[1] * o + l)) + } + return i + } + function T(t, e, r) { + return this.isIdentity() + ? [t, e, r] + : [ + t * this.props[0] + e * this.props[4] + r * this.props[8] + this.props[12], + t * this.props[1] + e * this.props[5] + r * this.props[9] + this.props[13], + t * this.props[2] + e * this.props[6] + r * this.props[10] + this.props[14], + ] + } + function k(t, e) { + if (this.isIdentity()) return t + ',' + e + var r = this.props + return Math.round(100 * (t * r[0] + e * r[4] + r[12])) / 100 + ',' + Math.round(100 * (t * r[1] + e * r[5] + r[13])) / 100 + } + function M() { + for (var t = 0, e = this.props, r = 'matrix3d('; t < 16; ) ((r += i(1e4 * e[t]) / 1e4), (r += 15 === t ? ')' : ','), (t += 1)) + return r + } + function D(t) { + return (t < 1e-6 && 0 < t) || (-1e-6 < t && t < 0) ? i(1e4 * t) / 1e4 : t + } + function w() { + var t = this.props + return 'matrix(' + D(t[0]) + ',' + D(t[1]) + ',' + D(t[4]) + ',' + D(t[5]) + ',' + D(t[12]) + ',' + D(t[13]) + ')' + } + return function () { + ;((this.reset = t), + (this.rotate = e), + (this.rotateX = r), + (this.rotateY = o), + (this.rotateZ = h), + (this.skew = p), + (this.skewFromAxis = m), + (this.shear = l), + (this.scale = f), + (this.setTransform = c), + (this.translate = d), + (this.transform = u), + (this.applyToPoint = E), + (this.applyToX = x), + (this.applyToY = P), + (this.applyToZ = S), + (this.applyToPointArray = T), + (this.applyToTriplePoints = C), + (this.applyToPointStringified = k), + (this.toCSS = M), + (this.to2dCSS = w), + (this.clone = v), + (this.cloneFromProps = b), + (this.equals = g), + (this.inversePoints = A), + (this.inversePoint = _), + (this._t = this.transform), + (this.isIdentity = y), + (this._identity = !0), + (this._identityCalculated = !1), + (this.props = createTypedArray('float32', 16)), + this.reset()) + } + })() + !(function (o, h) { + var l, + p = this, + m = 256, + f = 6, + c = 'random', + d = h.pow(m, f), + u = h.pow(2, 52), + y = 2 * u, + g = m - 1 + function v(t) { + var e, + r = t.length, + n = this, + i = 0, + s = (n.i = n.j = 0), + a = (n.S = []) + for (r || (t = [r++]); i < m; ) a[i] = i++ + for (i = 0; i < m; i++) ((a[i] = a[(s = g & (s + t[i % r] + (e = a[i])))]), (a[s] = e)) + n.g = function (t) { + for (var e, r = 0, i = n.i, s = n.j, a = n.S; t--; ) + ((e = a[(i = g & (i + 1))]), (r = r * m + a[g & ((a[i] = a[(s = g & (s + e))]) + (a[s] = e))])) + return ((n.i = i), (n.j = s), r) + } + } + function b(t, e) { + return ((e.i = t.i), (e.j = t.j), (e.S = t.S.slice()), e) + } + function E(t, e) { + for (var r, i = t + '', s = 0; s < i.length; ) e[g & s] = g & ((r ^= 19 * e[g & s]) + i.charCodeAt(s++)) + return x(e) + } + function x(t) { + return String.fromCharCode.apply(0, t) + } + ;((h['seed' + c] = function (t, e, r) { + var i = [], + s = E( + (function t(e, r) { + var i, + s = [], + a = typeof e + if (r && 'object' == a) + for (i in e) + try { + s.push(t(e[i], r - 1)) + } catch (t) {} + return s.length ? s : 'string' == a ? e : e + '\0' + })( + (e = !0 === e ? { entropy: !0 } : e || {}).entropy + ? [t, x(o)] + : null === t + ? (function () { + try { + if (l) return x(l.randomBytes(m)) + var t = new Uint8Array(m) + return ((p.crypto || p.msCrypto).getRandomValues(t), x(t)) + } catch (t) { + var e = p.navigator, + r = e && e.plugins + return [+new Date(), p, r, p.screen, x(o)] + } + })() + : t, + 3, + ), + i, + ), + a = new v(i), + n = function () { + for (var t = a.g(f), e = d, r = 0; t < u; ) ((t = (t + r) * m), (e *= m), (r = a.g(1))) + for (; y <= t; ) ((t /= 2), (e /= 2), (r >>>= 1)) + return (t + r) / e + } + return ( + (n.int32 = function () { + return 0 | a.g(4) + }), + (n.quick = function () { + return a.g(4) / 4294967296 + }), + (n.double = n), + E(x(a.S), o), + ( + e.pass || + r || + function (t, e, r, i) { + return ( + i && + (i.S && b(i, a), + (t.state = function () { + return b(a, {}) + })), + r ? ((h[c] = t), e) : t + ) + } + )(n, s, 'global' in e ? e.global : this == h, e.state) + ) + }), + E(h.random(), o)) + })([], BMMath) + var BezierFactory = (function () { + var t = { + getBezierEasing: function (t, e, r, i, s) { + var a = s || ('bez_' + t + '_' + e + '_' + r + '_' + i).replace(/\./g, 'p') + if (o[a]) return o[a] + var n = new h([t, e, r, i]) + return (o[a] = n) + }, + }, + o = {} + var l = 11, + p = 1 / (l - 1), + e = 'function' == typeof Float32Array + function i(t, e) { + return 1 - 3 * e + 3 * t + } + function s(t, e) { + return 3 * e - 6 * t + } + function a(t) { + return 3 * t + } + function m(t, e, r) { + return ((i(e, r) * t + s(e, r)) * t + a(e)) * t + } + function f(t, e, r) { + return 3 * i(e, r) * t * t + 2 * s(e, r) * t + a(e) + } + function h(t) { + ;((this._p = t), (this._mSampleValues = e ? new Float32Array(l) : new Array(l)), (this._precomputed = !1), (this.get = this.get.bind(this))) + } + return ( + (h.prototype = { + get: function (t) { + var e = this._p[0], + r = this._p[1], + i = this._p[2], + s = this._p[3] + return (this._precomputed || this._precompute(), e === r && i === s ? t : 0 === t ? 0 : 1 === t ? 1 : m(this._getTForX(t), r, s)) + }, + _precompute: function () { + var t = this._p[0], + e = this._p[1], + r = this._p[2], + i = this._p[3] + ;((this._precomputed = !0), (t === e && r === i) || this._calcSampleValues()) + }, + _calcSampleValues: function () { + for (var t = this._p[0], e = this._p[2], r = 0; r < l; ++r) this._mSampleValues[r] = m(r * p, t, e) + }, + _getTForX: function (t) { + for (var e = this._p[0], r = this._p[2], i = this._mSampleValues, s = 0, a = 1, n = l - 1; a !== n && i[a] <= t; ++a) s += p + var o = s + ((t - i[--a]) / (i[a + 1] - i[a])) * p, + h = f(o, e, r) + return 0.001 <= h + ? (function (t, e, r, i) { + for (var s = 0; s < 4; ++s) { + var a = f(e, r, i) + if (0 === a) return e + e -= (m(e, r, i) - t) / a + } + return e + })(t, o, e, r) + : 0 === h + ? o + : (function (t, e, r, i, s) { + for (var a, n, o = 0; 0 < (a = m((n = e + (r - e) / 2), i, s) - t) ? (r = n) : (e = n), 1e-7 < Math.abs(a) && ++o < 10; ); + return n + })(t, s, s + p, e, r) + }, + }), + t + ) + })() + function extendPrototype(t, e) { + var r, + i, + s = t.length + for (r = 0; r < s; r += 1) for (var a in (i = t[r].prototype)) i.hasOwnProperty(a) && (e.prototype[a] = i[a]) + } + function getDescriptor(t, e) { + return Object.getOwnPropertyDescriptor(t, e) + } + function createProxyFunction(t) { + function e() {} + return ((e.prototype = t), e) + } + function bezFunction() { + Math + function y(t, e, r, i, s, a) { + var n = t * i + e * s + r * a - s * i - a * t - r * e + return -0.001 < n && n < 0.001 + } + var p = function (t, e, r, i) { + var s, + a, + n, + o, + h, + l, + p = defaultCurveSegments, + m = 0, + f = [], + c = [], + d = bezier_length_pool.newElement() + for (n = r.length, s = 0; s < p; s += 1) { + for (h = s / (p - 1), a = l = 0; a < n; a += 1) + ((o = bm_pow(1 - h, 3) * t[a] + 3 * bm_pow(1 - h, 2) * h * r[a] + 3 * (1 - h) * bm_pow(h, 2) * i[a] + bm_pow(h, 3) * e[a]), + (f[a] = o), + null !== c[a] && (l += bm_pow(f[a] - c[a], 2)), + (c[a] = f[a])) + ;(l && (m += l = bm_sqrt(l)), (d.percents[s] = h), (d.lengths[s] = m)) + } + return ((d.addedLength = m), d) + } + function g(t) { + ;((this.segmentLength = 0), (this.points = new Array(t))) + } + function v(t, e) { + ;((this.partialLength = t), (this.point = e)) + } + var b, + t = + ((b = {}), + function (t, e, r, i) { + var s = (t[0] + '_' + t[1] + '_' + e[0] + '_' + e[1] + '_' + r[0] + '_' + r[1] + '_' + i[0] + '_' + i[1]).replace(/\./g, 'p') + if (!b[s]) { + var a, + n, + o, + h, + l, + p, + m, + f = defaultCurveSegments, + c = 0, + d = null + 2 === t.length && + (t[0] != e[0] || t[1] != e[1]) && + y(t[0], t[1], e[0], e[1], t[0] + r[0], t[1] + r[1]) && + y(t[0], t[1], e[0], e[1], e[0] + i[0], e[1] + i[1]) && + (f = 2) + var u = new g(f) + for (o = r.length, a = 0; a < f; a += 1) { + for (m = createSizedArray(o), l = a / (f - 1), n = p = 0; n < o; n += 1) + ((h = + bm_pow(1 - l, 3) * t[n] + + 3 * bm_pow(1 - l, 2) * l * (t[n] + r[n]) + + 3 * (1 - l) * bm_pow(l, 2) * (e[n] + i[n]) + + bm_pow(l, 3) * e[n]), + (m[n] = h), + null !== d && (p += bm_pow(m[n] - d[n], 2))) + ;((c += p = bm_sqrt(p)), (u.points[a] = new v(p, m)), (d = m)) + } + ;((u.segmentLength = c), (b[s] = u)) + } + return b[s] + }) + function M(t, e) { + var r = e.percents, + i = e.lengths, + s = r.length, + a = bm_floor((s - 1) * t), + n = t * e.addedLength, + o = 0 + if (a === s - 1 || 0 === a || n === i[a]) return r[a] + for (var h = i[a] > n ? -1 : 1, l = !0; l; ) + if ((i[a] <= n && i[a + 1] > n ? ((o = (n - i[a]) / (i[a + 1] - i[a])), (l = !1)) : (a += h), a < 0 || s - 1 <= a)) { + if (a === s - 1) return r[a] + l = !1 + } + return r[a] + (r[a + 1] - r[a]) * o + } + var D = createTypedArray('float32', 8) + return { + getSegmentsLength: function (t) { + var e, + r = segments_length_pool.newElement(), + i = t.c, + s = t.v, + a = t.o, + n = t.i, + o = t._length, + h = r.lengths, + l = 0 + for (e = 0; e < o - 1; e += 1) ((h[e] = p(s[e], s[e + 1], a[e], n[e + 1])), (l += h[e].addedLength)) + return (i && o && ((h[e] = p(s[e], s[0], a[e], n[0])), (l += h[e].addedLength)), (r.totalLength = l), r) + }, + getNewSegment: function (t, e, r, i, s, a, n) { + var o, + h = M((s = s < 0 ? 0 : 1 < s ? 1 : s), n), + l = M((a = 1 < a ? 1 : a), n), + p = t.length, + m = 1 - h, + f = 1 - l, + c = m * m * m, + d = h * m * m * 3, + u = h * h * m * 3, + y = h * h * h, + g = m * m * f, + v = h * m * f + m * h * f + m * m * l, + b = h * h * f + m * h * l + h * m * l, + E = h * h * l, + x = m * f * f, + P = h * f * f + m * l * f + m * f * l, + S = h * l * f + m * l * l + h * f * l, + _ = h * l * l, + A = f * f * f, + C = l * f * f + f * l * f + f * f * l, + T = l * l * f + f * l * l + l * f * l, + k = l * l * l + for (o = 0; o < p; o += 1) + ((D[4 * o] = Math.round(1e3 * (c * t[o] + d * r[o] + u * i[o] + y * e[o])) / 1e3), + (D[4 * o + 1] = Math.round(1e3 * (g * t[o] + v * r[o] + b * i[o] + E * e[o])) / 1e3), + (D[4 * o + 2] = Math.round(1e3 * (x * t[o] + P * r[o] + S * i[o] + _ * e[o])) / 1e3), + (D[4 * o + 3] = Math.round(1e3 * (A * t[o] + C * r[o] + T * i[o] + k * e[o])) / 1e3)) + return D + }, + getPointInSegment: function (t, e, r, i, s, a) { + var n = M(s, a), + o = 1 - n + return [ + Math.round( + 1e3 * (o * o * o * t[0] + (n * o * o + o * n * o + o * o * n) * r[0] + (n * n * o + o * n * n + n * o * n) * i[0] + n * n * n * e[0]), + ) / 1e3, + Math.round( + 1e3 * (o * o * o * t[1] + (n * o * o + o * n * o + o * o * n) * r[1] + (n * n * o + o * n * n + n * o * n) * i[1] + n * n * n * e[1]), + ) / 1e3, + ] + }, + buildBezierData: t, + pointOnLine2D: y, + pointOnLine3D: function (t, e, r, i, s, a, n, o, h) { + if (0 === r && 0 === a && 0 === h) return y(t, e, i, s, n, o) + var l, + p = Math.sqrt(Math.pow(i - t, 2) + Math.pow(s - e, 2) + Math.pow(a - r, 2)), + m = Math.sqrt(Math.pow(n - t, 2) + Math.pow(o - e, 2) + Math.pow(h - r, 2)), + f = Math.sqrt(Math.pow(n - i, 2) + Math.pow(o - s, 2) + Math.pow(h - a, 2)) + return -1e-4 < (l = m < p ? (f < p ? p - m - f : f - m - p) : m < f ? f - m - p : m - p - f) && l < 1e-4 + }, + } + } + !(function () { + for (var a = 0, t = ['ms', 'moz', 'webkit', 'o'], e = 0; e < t.length && !window.requestAnimationFrame; ++e) + ((window.requestAnimationFrame = window[t[e] + 'RequestAnimationFrame']), + (window.cancelAnimationFrame = window[t[e] + 'CancelAnimationFrame'] || window[t[e] + 'CancelRequestAnimationFrame'])) + ;(window.requestAnimationFrame || + (window.requestAnimationFrame = function (t, e) { + var r = new Date().getTime(), + i = Math.max(0, 16 - (r - a)), + s = setTimeout(function () { + t(r + i) + }, i) + return ((a = r + i), s) + }), + window.cancelAnimationFrame || + (window.cancelAnimationFrame = function (t) { + clearTimeout(t) + })) + })() + var bez = bezFunction() + function dataFunctionManager() { + function c(t, e) { + for (var r = 0, i = e.length; r < i; ) { + if (e[r].id === t) return e[r].layers.__used ? JSON.parse(JSON.stringify(e[r].layers)) : ((e[r].layers.__used = !0), e[r].layers) + r += 1 + } + } + function d(t) { + var e, r, i + for (e = t.length - 1; 0 <= e; e -= 1) + if ('sh' == t[e].ty) { + if (t[e].ks.k.i) u(t[e].ks.k) + else for (i = t[e].ks.k.length, r = 0; r < i; r += 1) (t[e].ks.k[r].s && u(t[e].ks.k[r].s[0]), t[e].ks.k[r].e && u(t[e].ks.k[r].e[0])) + !0 + } else 'gr' == t[e].ty && d(t[e].it) + } + function u(t) { + var e, + r = t.i.length + for (e = 0; e < r; e += 1) ((t.i[e][0] += t.v[e][0]), (t.i[e][1] += t.v[e][1]), (t.o[e][0] += t.v[e][0]), (t.o[e][1] += t.v[e][1])) + } + function o(t, e) { + var r = e ? e.split('.') : [100, 100, 100] + return t[0] > r[0] || (!(r[0] > t[0]) && (t[1] > r[1] || (!(r[1] > t[1]) && (t[2] > r[2] || (!(r[2] > t[2]) && void 0))))) + } + var h, + r = (function () { + var i = [4, 4, 14] + function s(t) { + var e, + r, + i, + s = t.length + for (e = 0; e < s; e += 1) 5 === t[e].ty && ((r = t[e]), void 0, (i = r.t.d), (r.t.d = { k: [{ s: i, t: 0 }] })) + } + return function (t) { + if (o(i, t.v) && (s(t.layers), t.assets)) { + var e, + r = t.assets.length + for (e = 0; e < r; e += 1) t.assets[e].layers && s(t.assets[e].layers) + } + } + })(), + i = + ((h = [4, 7, 99]), + function (t) { + if (t.chars && !o(h, t.v)) { + var e, + r, + i, + s, + a, + n = t.chars.length + for (e = 0; e < n; e += 1) + if (t.chars[e].data && t.chars[e].data.shapes) + for (i = (a = t.chars[e].data.shapes[0].it).length, r = 0; r < i; r += 1) + (s = a[r].ks.k).__converted || (u(a[r].ks.k), (s.__converted = !0)) + } + }), + s = (function () { + var i = [4, 1, 9] + function a(t) { + var e, + r, + i, + s = t.length + for (e = 0; e < s; e += 1) + if ('gr' === t[e].ty) a(t[e].it) + else if ('fl' === t[e].ty || 'st' === t[e].ty) + if (t[e].c.k && t[e].c.k[0].i) + for (i = t[e].c.k.length, r = 0; r < i; r += 1) + (t[e].c.k[r].s && ((t[e].c.k[r].s[0] /= 255), (t[e].c.k[r].s[1] /= 255), (t[e].c.k[r].s[2] /= 255), (t[e].c.k[r].s[3] /= 255)), + t[e].c.k[r].e && ((t[e].c.k[r].e[0] /= 255), (t[e].c.k[r].e[1] /= 255), (t[e].c.k[r].e[2] /= 255), (t[e].c.k[r].e[3] /= 255))) + else ((t[e].c.k[0] /= 255), (t[e].c.k[1] /= 255), (t[e].c.k[2] /= 255), (t[e].c.k[3] /= 255)) + } + function s(t) { + var e, + r = t.length + for (e = 0; e < r; e += 1) 4 === t[e].ty && a(t[e].shapes) + } + return function (t) { + if (o(i, t.v) && (s(t.layers), t.assets)) { + var e, + r = t.assets.length + for (e = 0; e < r; e += 1) t.assets[e].layers && s(t.assets[e].layers) + } + } + })(), + a = (function () { + var i = [4, 4, 18] + function l(t) { + var e, r, i + for (e = t.length - 1; 0 <= e; e -= 1) + if ('sh' == t[e].ty) { + if (t[e].ks.k.i) t[e].ks.k.c = t[e].closed + else + for (i = t[e].ks.k.length, r = 0; r < i; r += 1) + (t[e].ks.k[r].s && (t[e].ks.k[r].s[0].c = t[e].closed), t[e].ks.k[r].e && (t[e].ks.k[r].e[0].c = t[e].closed)) + !0 + } else 'gr' == t[e].ty && l(t[e].it) + } + function s(t) { + var e, + r, + i, + s, + a, + n, + o = t.length + for (r = 0; r < o; r += 1) { + if ((e = t[r]).hasMask) { + var h = e.masksProperties + for (s = h.length, i = 0; i < s; i += 1) + if (h[i].pt.k.i) h[i].pt.k.c = h[i].cl + else + for (n = h[i].pt.k.length, a = 0; a < n; a += 1) + (h[i].pt.k[a].s && (h[i].pt.k[a].s[0].c = h[i].cl), h[i].pt.k[a].e && (h[i].pt.k[a].e[0].c = h[i].cl)) + } + 4 === e.ty && l(e.shapes) + } + } + return function (t) { + if (o(i, t.v) && (s(t.layers), t.assets)) { + var e, + r = t.assets.length + for (e = 0; e < r; e += 1) t.assets[e].layers && s(t.assets[e].layers) + } + } + })() + var t = {} + return ( + (t.completeData = function (t, e) { + t.__complete || + (s(t), + r(t), + i(t), + a(t), + (function t(e, r, i) { + var s, + a, + n, + o, + h, + l, + p, + m = e.length + for (a = 0; a < m; a += 1) + if ('ks' in (s = e[a]) && !s.completed) { + if (((s.completed = !0), s.tt && (e[a - 1].td = s.tt), s.hasMask)) { + var f = s.masksProperties + for (o = f.length, n = 0; n < o; n += 1) + if (f[n].pt.k.i) u(f[n].pt.k) + else + for (l = f[n].pt.k.length, h = 0; h < l; h += 1) + (f[n].pt.k[h].s && u(f[n].pt.k[h].s[0]), f[n].pt.k[h].e && u(f[n].pt.k[h].e[0])) + } + 0 === s.ty + ? ((s.layers = c(s.refId, r)), t(s.layers, r, i)) + : 4 === s.ty + ? d(s.shapes) + : 5 == s.ty && (0 !== (p = s).t.a.length || 'm' in p.t.p || (p.singleShape = !0)) + } + })(t.layers, t.assets, e), + (t.__complete = !0)) + }), + t + ) + } + var dataManager = dataFunctionManager(), + FontManager = (function () { + var a = { w: 0, size: 0, shapes: [] }, + t = [] + function u(t, e) { + var r = createTag('span') + r.style.fontFamily = e + var i = createTag('span') + ;((i.innerHTML = 'giItT1WQy@!-/#'), + (r.style.position = 'absolute'), + (r.style.left = '-10000px'), + (r.style.top = '-10000px'), + (r.style.fontSize = '300px'), + (r.style.fontVariant = 'normal'), + (r.style.fontStyle = 'normal'), + (r.style.fontWeight = 'normal'), + (r.style.letterSpacing = '0'), + r.appendChild(i), + document.body.appendChild(r)) + var s = i.offsetWidth + return ((i.style.fontFamily = t + ', ' + e), { node: i, w: s, parent: r }) + } + t = t.concat([ + 2304, 2305, 2306, 2307, 2362, 2363, 2364, 2364, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, + 2381, 2382, 2383, 2387, 2388, 2389, 2390, 2391, 2402, 2403, + ]) + var e = function () { + ;((this.fonts = []), (this.chars = null), (this.typekitLoaded = 0), (this.isLoaded = !1), (this.initTime = Date.now())) + } + return ( + (e.getCombinedCharacterCodes = function () { + return t + }), + (e.prototype.addChars = function (t) { + if (t) { + this.chars || (this.chars = []) + var e, + r, + i, + s = t.length, + a = this.chars.length + for (e = 0; e < s; e += 1) { + for (r = 0, i = !1; r < a; ) + (this.chars[r].style === t[e].style && this.chars[r].fFamily === t[e].fFamily && this.chars[r].ch === t[e].ch && (i = !0), (r += 1)) + i || (this.chars.push(t[e]), (a += 1)) + } + } + }), + (e.prototype.addFonts = function (t, e) { + if (t) { + if (this.chars) return ((this.isLoaded = !0), void (this.fonts = t.list)) + var r, + i, + s, + a, + n = t.list, + o = n.length, + h = o + for (r = 0; r < o; r += 1) { + var l, + p, + m = !0 + if ( + ((n[r].loaded = !1), (n[r].monoCase = u(n[r].fFamily, 'monospace')), (n[r].sansCase = u(n[r].fFamily, 'sans-serif')), n[r].fPath) + ) { + if ('p' === n[r].fOrigin || 3 === n[r].origin) { + if ( + (0 < + (l = document.querySelectorAll( + 'style[f-forigin="p"][f-family="' + n[r].fFamily + '"], style[f-origin="3"][f-family="' + n[r].fFamily + '"]', + )).length && (m = !1), + m) + ) { + var f = createTag('style') + ;(f.setAttribute('f-forigin', n[r].fOrigin), + f.setAttribute('f-origin', n[r].origin), + f.setAttribute('f-family', n[r].fFamily), + (f.type = 'text/css'), + (f.innerHTML = '@font-face {font-family: ' + n[r].fFamily + "; font-style: normal; src: url('" + n[r].fPath + "');}"), + e.appendChild(f)) + } + } else if ('g' === n[r].fOrigin || 1 === n[r].origin) { + for (l = document.querySelectorAll('link[f-forigin="g"], link[f-origin="1"]'), p = 0; p < l.length; p++) + -1 !== l[p].href.indexOf(n[r].fPath) && (m = !1) + if (m) { + var c = createTag('link') + ;(c.setAttribute('f-forigin', n[r].fOrigin), + c.setAttribute('f-origin', n[r].origin), + (c.type = 'text/css'), + (c.rel = 'stylesheet'), + (c.href = n[r].fPath), + document.body.appendChild(c)) + } + } else if ('t' === n[r].fOrigin || 2 === n[r].origin) { + for (l = document.querySelectorAll('script[f-forigin="t"], script[f-origin="2"]'), p = 0; p < l.length; p++) + n[r].fPath === l[p].src && (m = !1) + if (m) { + var d = createTag('link') + ;(d.setAttribute('f-forigin', n[r].fOrigin), + d.setAttribute('f-origin', n[r].origin), + d.setAttribute('rel', 'stylesheet'), + d.setAttribute('href', n[r].fPath), + e.appendChild(d)) + } + } + } else ((n[r].loaded = !0), (h -= 1)) + ;((n[r].helper = + ((i = e), + (s = n[r]), + (a = void 0), + ((a = createNS('text')).style.fontSize = '100px'), + a.setAttribute('font-family', s.fFamily), + a.setAttribute('font-style', s.fStyle), + a.setAttribute('font-weight', s.fWeight), + (a.textContent = '1'), + s.fClass ? ((a.style.fontFamily = 'inherit'), a.setAttribute('class', s.fClass)) : (a.style.fontFamily = s.fFamily), + i.appendChild(a), + (createTag('canvas').getContext('2d').font = s.fWeight + ' ' + s.fStyle + ' 100px ' + s.fFamily), + a)), + (n[r].cache = {}), + this.fonts.push(n[r])) + } + 0 === h ? (this.isLoaded = !0) : setTimeout(this.checkLoadedFonts.bind(this), 100) + } else this.isLoaded = !0 + }), + (e.prototype.getCharData = function (t, e, r) { + for (var i = 0, s = this.chars.length; i < s; ) { + if (this.chars[i].ch === t && this.chars[i].style === e && this.chars[i].fFamily === r) return this.chars[i] + i += 1 + } + return ( + (('string' == typeof t && 13 !== t.charCodeAt(0)) || !t) && + console && + console.warn && + console.warn('Missing character from exported characters list: ', t, e, r), + a + ) + }), + (e.prototype.getFontByName = function (t) { + for (var e = 0, r = this.fonts.length; e < r; ) { + if (this.fonts[e].fName === t) return this.fonts[e] + e += 1 + } + return this.fonts[0] + }), + (e.prototype.measureText = function (t, e, r) { + var i = this.getFontByName(e), + s = t.charCodeAt(0) + if (!i.cache[s + 1]) { + var a = i.helper + if (' ' === t) { + a.textContent = '|' + t + '|' + var n = a.getComputedTextLength() + a.textContent = '||' + var o = a.getComputedTextLength() + i.cache[s + 1] = (n - o) / 100 + } else ((a.textContent = t), (i.cache[s + 1] = a.getComputedTextLength() / 100)) + } + return i.cache[s + 1] * r + }), + (e.prototype.checkLoadedFonts = function () { + var t, + e, + r, + i = this.fonts.length, + s = i + for (t = 0; t < i; t += 1) + this.fonts[t].loaded + ? (s -= 1) + : 'n' === this.fonts[t].fOrigin || 0 === this.fonts[t].origin + ? (this.fonts[t].loaded = !0) + : ((e = this.fonts[t].monoCase.node), + (r = this.fonts[t].monoCase.w), + e.offsetWidth !== r + ? ((s -= 1), (this.fonts[t].loaded = !0)) + : ((e = this.fonts[t].sansCase.node), + (r = this.fonts[t].sansCase.w), + e.offsetWidth !== r && ((s -= 1), (this.fonts[t].loaded = !0))), + this.fonts[t].loaded && + (this.fonts[t].sansCase.parent.parentNode.removeChild(this.fonts[t].sansCase.parent), + this.fonts[t].monoCase.parent.parentNode.removeChild(this.fonts[t].monoCase.parent))) + 0 !== s && Date.now() - this.initTime < 5e3 + ? setTimeout(this.checkLoadedFonts.bind(this), 20) + : setTimeout( + function () { + this.isLoaded = !0 + }.bind(this), + 0, + ) + }), + (e.prototype.loaded = function () { + return this.isLoaded + }), + e + ) + })(), + PropertyFactory = (function () { + var m = initialDefaultFrame, + s = Math.abs + function f(t, e) { + var r, + i = this.offsetTime + 'multidimensional' === this.propType && (r = createTypedArray('float32', this.pv.length)) + for (var s, a, n, o, h, l, p, m, f = e.lastIndex, c = f, d = this.keyframes.length - 1, u = !0; u; ) { + if (((s = this.keyframes[c]), (a = this.keyframes[c + 1]), c === d - 1 && t >= a.t - i)) { + ;(s.h && (s = a), (f = 0)) + break + } + if (a.t - i > t) { + f = c + break + } + c < d - 1 ? (c += 1) : ((f = 0), (u = !1)) + } + var y, + g, + v, + b, + E, + x, + P, + S, + _, + A, + C = a.t - i, + T = s.t - i + if (s.to) { + s.bezierData || (s.bezierData = bez.buildBezierData(s.s, a.s || s.e, s.to, s.ti)) + var k = s.bezierData + if (C <= t || t < T) { + var M = C <= t ? k.points.length - 1 : 0 + for (o = k.points[M].point.length, n = 0; n < o; n += 1) r[n] = k.points[M].point[n] + } else { + ;(s.__fnct ? (m = s.__fnct) : ((m = BezierFactory.getBezierEasing(s.o.x, s.o.y, s.i.x, s.i.y, s.n).get), (s.__fnct = m)), + (h = m((t - T) / (C - T)))) + var D, + w = k.segmentLength * h, + F = e.lastFrame < t && e._lastKeyframeIndex === c ? e._lastAddedLength : 0 + for (p = e.lastFrame < t && e._lastKeyframeIndex === c ? e._lastPoint : 0, u = !0, l = k.points.length; u; ) { + if (((F += k.points[p].partialLength), 0 === w || 0 === h || p === k.points.length - 1)) { + for (o = k.points[p].point.length, n = 0; n < o; n += 1) r[n] = k.points[p].point[n] + break + } + if (F <= w && w < F + k.points[p + 1].partialLength) { + for (D = (w - F) / k.points[p + 1].partialLength, o = k.points[p].point.length, n = 0; n < o; n += 1) + r[n] = k.points[p].point[n] + (k.points[p + 1].point[n] - k.points[p].point[n]) * D + break + } + p < l - 1 ? (p += 1) : (u = !1) + } + ;((e._lastPoint = p), (e._lastAddedLength = F - k.points[p].partialLength), (e._lastKeyframeIndex = c)) + } + } else { + var I, V, R, B, L + if (((d = s.s.length), (y = a.s || s.e), this.sh && 1 !== s.h)) + if (C <= t) ((r[0] = y[0]), (r[1] = y[1]), (r[2] = y[2])) + else if (t <= T) ((r[0] = s.s[0]), (r[1] = s.s[1]), (r[2] = s.s[2])) + else { + var G = N(s.s), + z = N(y) + ;((g = r), + (v = (function (t, e, r) { + var i, + s, + a, + n, + o, + h = [], + l = t[0], + p = t[1], + m = t[2], + f = t[3], + c = e[0], + d = e[1], + u = e[2], + y = e[3] + ;(s = l * c + p * d + m * u + f * y) < 0 && ((s = -s), (c = -c), (d = -d), (u = -u), (y = -y)) + o = + 1e-6 < 1 - s ? ((i = Math.acos(s)), (a = Math.sin(i)), (n = Math.sin((1 - r) * i) / a), Math.sin(r * i) / a) : ((n = 1 - r), r) + return ((h[0] = n * l + o * c), (h[1] = n * p + o * d), (h[2] = n * m + o * u), (h[3] = n * f + o * y), h) + })(G, z, (t - T) / (C - T))), + (b = v[0]), + (E = v[1]), + (x = v[2]), + (P = v[3]), + (S = Math.atan2(2 * E * P - 2 * b * x, 1 - 2 * E * E - 2 * x * x)), + (_ = Math.asin(2 * b * E + 2 * x * P)), + (A = Math.atan2(2 * b * P - 2 * E * x, 1 - 2 * b * b - 2 * x * x)), + (g[0] = S / degToRads), + (g[1] = _ / degToRads), + (g[2] = A / degToRads)) + } + else + for (c = 0; c < d; c += 1) + (1 !== s.h && + (h = + C <= t + ? 1 + : t < T + ? 0 + : (s.o.x.constructor === Array + ? (s.__fnct || (s.__fnct = []), + s.__fnct[c] + ? (m = s.__fnct[c]) + : ((I = void 0 === s.o.x[c] ? s.o.x[0] : s.o.x[c]), + (V = void 0 === s.o.y[c] ? s.o.y[0] : s.o.y[c]), + (R = void 0 === s.i.x[c] ? s.i.x[0] : s.i.x[c]), + (B = void 0 === s.i.y[c] ? s.i.y[0] : s.i.y[c]), + (m = BezierFactory.getBezierEasing(I, V, R, B).get), + (s.__fnct[c] = m))) + : s.__fnct + ? (m = s.__fnct) + : ((I = s.o.x), + (V = s.o.y), + (R = s.i.x), + (B = s.i.y), + (m = BezierFactory.getBezierEasing(I, V, R, B).get), + (s.__fnct = m)), + m((t - T) / (C - T)))), + (y = a.s || s.e), + (L = 1 === s.h ? s.s[c] : s.s[c] + (y[c] - s.s[c]) * h), + 'multidimensional' === this.propType ? (r[c] = L) : (r = L)) + } + return ((e.lastIndex = f), r) + } + function N(t) { + var e = t[0] * degToRads, + r = t[1] * degToRads, + i = t[2] * degToRads, + s = Math.cos(e / 2), + a = Math.cos(r / 2), + n = Math.cos(i / 2), + o = Math.sin(e / 2), + h = Math.sin(r / 2), + l = Math.sin(i / 2) + return [o * h * n + s * a * l, o * a * n + s * h * l, s * h * n - o * a * l, s * a * n - o * h * l] + } + function c() { + var t = this.comp.renderedFrame - this.offsetTime, + e = this.keyframes[0].t - this.offsetTime, + r = this.keyframes[this.keyframes.length - 1].t - this.offsetTime + if ( + !( + t === this._caching.lastFrame || + (this._caching.lastFrame !== m && ((this._caching.lastFrame >= r && r <= t) || (this._caching.lastFrame < e && t < e))) + ) + ) { + this._caching.lastFrame >= t && ((this._caching._lastKeyframeIndex = -1), (this._caching.lastIndex = 0)) + var i = this.interpolateValue(t, this._caching) + this.pv = i + } + return ((this._caching.lastFrame = t), this.pv) + } + function d(t) { + var e + if ('unidimensional' === this.propType) ((e = t * this.mult), 1e-5 < s(this.v - e) && ((this.v = e), (this._mdf = !0))) + else + for (var r = 0, i = this.v.length; r < i; ) + ((e = t[r] * this.mult), 1e-5 < s(this.v[r] - e) && ((this.v[r] = e), (this._mdf = !0)), (r += 1)) + } + function u() { + if (this.elem.globalData.frameId !== this.frameId && this.effectsSequence.length) + if (this.lock) this.setVValue(this.pv) + else { + ;((this.lock = !0), (this._mdf = this._isFirstFrame)) + var t, + e = this.effectsSequence.length, + r = this.kf ? this.pv : this.data.k + for (t = 0; t < e; t += 1) r = this.effectsSequence[t](r) + ;(this.setVValue(r), (this._isFirstFrame = !1), (this.lock = !1), (this.frameId = this.elem.globalData.frameId)) + } + } + function y(t) { + ;(this.effectsSequence.push(t), this.container.addDynamicProperty(this)) + } + function n(t, e, r, i) { + ;((this.propType = 'unidimensional'), + (this.mult = r || 1), + (this.data = e), + (this.v = r ? e.k * r : e.k), + (this.pv = e.k), + (this._mdf = !1), + (this.elem = t), + (this.container = i), + (this.comp = t.comp), + (this.k = !1), + (this.kf = !1), + (this.vel = 0), + (this.effectsSequence = []), + (this._isFirstFrame = !0), + (this.getValue = u), + (this.setVValue = d), + (this.addEffect = y)) + } + function o(t, e, r, i) { + ;((this.propType = 'multidimensional'), + (this.mult = r || 1), + (this.data = e), + (this._mdf = !1), + (this.elem = t), + (this.container = i), + (this.comp = t.comp), + (this.k = !1), + (this.kf = !1), + (this.frameId = -1)) + var s, + a = e.k.length + ;((this.v = createTypedArray('float32', a)), (this.pv = createTypedArray('float32', a))) + createTypedArray('float32', a) + for (this.vel = createTypedArray('float32', a), s = 0; s < a; s += 1) ((this.v[s] = e.k[s] * this.mult), (this.pv[s] = e.k[s])) + ;((this._isFirstFrame = !0), (this.effectsSequence = []), (this.getValue = u), (this.setVValue = d), (this.addEffect = y)) + } + function h(t, e, r, i) { + ;((this.propType = 'unidimensional'), + (this.keyframes = e.k), + (this.offsetTime = t.data.st), + (this.frameId = -1), + (this._caching = { lastFrame: m, lastIndex: 0, value: 0, _lastKeyframeIndex: -1 }), + (this.k = !0), + (this.kf = !0), + (this.data = e), + (this.mult = r || 1), + (this.elem = t), + (this.container = i), + (this.comp = t.comp), + (this.v = m), + (this.pv = m), + (this._isFirstFrame = !0), + (this.getValue = u), + (this.setVValue = d), + (this.interpolateValue = f), + (this.effectsSequence = [c.bind(this)]), + (this.addEffect = y)) + } + function l(t, e, r, i) { + this.propType = 'multidimensional' + var s, + a, + n, + o, + h, + l = e.k.length + for (s = 0; s < l - 1; s += 1) + e.k[s].to && + e.k[s].s && + e.k[s].e && + ((a = e.k[s].s), + (n = e.k[s].e), + (o = e.k[s].to), + (h = e.k[s].ti), + ((2 === a.length && + (a[0] !== n[0] || a[1] !== n[1]) && + bez.pointOnLine2D(a[0], a[1], n[0], n[1], a[0] + o[0], a[1] + o[1]) && + bez.pointOnLine2D(a[0], a[1], n[0], n[1], n[0] + h[0], n[1] + h[1])) || + (3 === a.length && + (a[0] !== n[0] || a[1] !== n[1] || a[2] !== n[2]) && + bez.pointOnLine3D(a[0], a[1], a[2], n[0], n[1], n[2], a[0] + o[0], a[1] + o[1], a[2] + o[2]) && + bez.pointOnLine3D(a[0], a[1], a[2], n[0], n[1], n[2], n[0] + h[0], n[1] + h[1], n[2] + h[2]))) && + ((e.k[s].to = null), (e.k[s].ti = null)), + a[0] === n[0] && + a[1] === n[1] && + 0 === o[0] && + 0 === o[1] && + 0 === h[0] && + 0 === h[1] && + (2 === a.length || (a[2] === n[2] && 0 === o[2] && 0 === h[2])) && + ((e.k[s].to = null), (e.k[s].ti = null))) + ;((this.effectsSequence = [c.bind(this)]), + (this.keyframes = e.k), + (this.offsetTime = t.data.st), + (this.k = !0), + (this.kf = !0), + (this._isFirstFrame = !0), + (this.mult = r || 1), + (this.elem = t), + (this.container = i), + (this.comp = t.comp), + (this.getValue = u), + (this.setVValue = d), + (this.interpolateValue = f), + (this.frameId = -1)) + var p = e.k[0].s.length + for (this.v = createTypedArray('float32', p), this.pv = createTypedArray('float32', p), s = 0; s < p; s += 1) + ((this.v[s] = m), (this.pv[s] = m)) + ;((this._caching = { lastFrame: m, lastIndex: 0, value: createTypedArray('float32', p) }), (this.addEffect = y)) + } + return { + getProp: function (t, e, r, i, s) { + var a + if (e.k.length) + if ('number' == typeof e.k[0]) a = new o(t, e, i, s) + else + switch (r) { + case 0: + a = new h(t, e, i, s) + break + case 1: + a = new l(t, e, i, s) + } + else a = new n(t, e, i, s) + return (a.effectsSequence.length && s.addDynamicProperty(a), a) + }, + } + })(), + TransformPropertyFactory = (function () { + function i(t, e, r) { + if ( + ((this.elem = t), + (this.frameId = -1), + (this.propType = 'transform'), + (this.data = e), + (this.v = new Matrix()), + (this.pre = new Matrix()), + (this.appliedTransformations = 0), + this.initDynamicPropertyContainer(r || t), + e.p && e.p.s + ? ((this.px = PropertyFactory.getProp(t, e.p.x, 0, 0, this)), + (this.py = PropertyFactory.getProp(t, e.p.y, 0, 0, this)), + e.p.z && (this.pz = PropertyFactory.getProp(t, e.p.z, 0, 0, this))) + : (this.p = PropertyFactory.getProp(t, e.p || { k: [0, 0, 0] }, 1, 0, this)), + e.rx) + ) { + if ( + ((this.rx = PropertyFactory.getProp(t, e.rx, 0, degToRads, this)), + (this.ry = PropertyFactory.getProp(t, e.ry, 0, degToRads, this)), + (this.rz = PropertyFactory.getProp(t, e.rz, 0, degToRads, this)), + e.or.k[0].ti) + ) { + var i, + s = e.or.k.length + for (i = 0; i < s; i += 1) e.or.k[i].to = e.or.k[i].ti = null + } + ;((this.or = PropertyFactory.getProp(t, e.or, 1, degToRads, this)), (this.or.sh = !0)) + } else this.r = PropertyFactory.getProp(t, e.r || { k: 0 }, 0, degToRads, this) + ;(e.sk && + ((this.sk = PropertyFactory.getProp(t, e.sk, 0, degToRads, this)), (this.sa = PropertyFactory.getProp(t, e.sa, 0, degToRads, this))), + (this.a = PropertyFactory.getProp(t, e.a || { k: [0, 0, 0] }, 1, 0, this)), + (this.s = PropertyFactory.getProp(t, e.s || { k: [100, 100, 100] }, 1, 0.01, this)), + e.o ? (this.o = PropertyFactory.getProp(t, e.o, 0, 0.01, t)) : (this.o = { _mdf: !1, v: 1 }), + (this._isDirty = !0), + this.dynamicProperties.length || this.getValue(!0)) + } + return ( + (i.prototype = { + applyToMatrix: function (t) { + var e = this._mdf + ;(this.iterateDynamicProperties(), + (this._mdf = this._mdf || e), + this.a && t.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]), + this.s && t.scale(this.s.v[0], this.s.v[1], this.s.v[2]), + this.sk && t.skewFromAxis(-this.sk.v, this.sa.v), + this.r + ? t.rotate(-this.r.v) + : t.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]), + this.data.p.s + ? this.data.p.z + ? t.translate(this.px.v, this.py.v, -this.pz.v) + : t.translate(this.px.v, this.py.v, 0) + : t.translate(this.p.v[0], this.p.v[1], -this.p.v[2])) + }, + getValue: function (t) { + if (this.elem.globalData.frameId !== this.frameId) { + if ((this._isDirty && (this.precalculateMatrix(), (this._isDirty = !1)), this.iterateDynamicProperties(), this._mdf || t)) { + if ( + (this.v.cloneFromProps(this.pre.props), + this.appliedTransformations < 1 && this.v.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]), + this.appliedTransformations < 2 && this.v.scale(this.s.v[0], this.s.v[1], this.s.v[2]), + this.sk && this.appliedTransformations < 3 && this.v.skewFromAxis(-this.sk.v, this.sa.v), + this.r && this.appliedTransformations < 4 + ? this.v.rotate(-this.r.v) + : !this.r && + this.appliedTransformations < 4 && + this.v + .rotateZ(-this.rz.v) + .rotateY(this.ry.v) + .rotateX(this.rx.v) + .rotateZ(-this.or.v[2]) + .rotateY(this.or.v[1]) + .rotateX(this.or.v[0]), + this.autoOriented) + ) { + var e, + r, + i = this.elem.globalData.frameRate + if (this.p && this.p.keyframes && this.p.getValueAtTime) + r = + this.p._caching.lastFrame + this.p.offsetTime <= this.p.keyframes[0].t + ? ((e = this.p.getValueAtTime((this.p.keyframes[0].t + 0.01) / i, 0)), this.p.getValueAtTime(this.p.keyframes[0].t / i, 0)) + : this.p._caching.lastFrame + this.p.offsetTime >= this.p.keyframes[this.p.keyframes.length - 1].t + ? ((e = this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length - 1].t / i, 0)), + this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t - 0.01) / i, 0)) + : ((e = this.p.pv), this.p.getValueAtTime((this.p._caching.lastFrame + this.p.offsetTime - 0.01) / i, this.p.offsetTime)) + else if (this.px && this.px.keyframes && this.py.keyframes && this.px.getValueAtTime && this.py.getValueAtTime) { + ;((e = []), (r = [])) + var s = this.px, + a = this.py + s._caching.lastFrame + s.offsetTime <= s.keyframes[0].t + ? ((e[0] = s.getValueAtTime((s.keyframes[0].t + 0.01) / i, 0)), + (e[1] = a.getValueAtTime((a.keyframes[0].t + 0.01) / i, 0)), + (r[0] = s.getValueAtTime(s.keyframes[0].t / i, 0)), + (r[1] = a.getValueAtTime(a.keyframes[0].t / i, 0))) + : s._caching.lastFrame + s.offsetTime >= s.keyframes[s.keyframes.length - 1].t + ? ((e[0] = s.getValueAtTime(s.keyframes[s.keyframes.length - 1].t / i, 0)), + (e[1] = a.getValueAtTime(a.keyframes[a.keyframes.length - 1].t / i, 0)), + (r[0] = s.getValueAtTime((s.keyframes[s.keyframes.length - 1].t - 0.01) / i, 0)), + (r[1] = a.getValueAtTime((a.keyframes[a.keyframes.length - 1].t - 0.01) / i, 0))) + : ((e = [s.pv, a.pv]), + (r[0] = s.getValueAtTime((s._caching.lastFrame + s.offsetTime - 0.01) / i, s.offsetTime)), + (r[1] = a.getValueAtTime((a._caching.lastFrame + a.offsetTime - 0.01) / i, a.offsetTime))) + } + this.v.rotate(-Math.atan2(e[1] - r[1], e[0] - r[0])) + } + this.data.p && this.data.p.s + ? this.data.p.z + ? this.v.translate(this.px.v, this.py.v, -this.pz.v) + : this.v.translate(this.px.v, this.py.v, 0) + : this.v.translate(this.p.v[0], this.p.v[1], -this.p.v[2]) + } + this.frameId = this.elem.globalData.frameId + } + }, + precalculateMatrix: function () { + if ( + !this.a.k && + (this.pre.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]), (this.appliedTransformations = 1), !this.s.effectsSequence.length) + ) { + if ((this.pre.scale(this.s.v[0], this.s.v[1], this.s.v[2]), (this.appliedTransformations = 2), this.sk)) { + if (this.sk.effectsSequence.length || this.sa.effectsSequence.length) return + ;(this.pre.skewFromAxis(-this.sk.v, this.sa.v), (this.appliedTransformations = 3)) + } + if (this.r) { + if (this.r.effectsSequence.length) return + ;(this.pre.rotate(-this.r.v), (this.appliedTransformations = 4)) + } else + this.rz.effectsSequence.length || + this.ry.effectsSequence.length || + this.rx.effectsSequence.length || + this.or.effectsSequence.length || + (this.pre + .rotateZ(-this.rz.v) + .rotateY(this.ry.v) + .rotateX(this.rx.v) + .rotateZ(-this.or.v[2]) + .rotateY(this.or.v[1]) + .rotateX(this.or.v[0]), + (this.appliedTransformations = 4)) + } + }, + autoOrient: function () {}, + }), + extendPrototype([DynamicPropertyContainer], i), + (i.prototype.addDynamicProperty = function (t) { + ;(this._addDynamicProperty(t), this.elem.addDynamicProperty(t), (this._isDirty = !0)) + }), + (i.prototype._addDynamicProperty = DynamicPropertyContainer.prototype.addDynamicProperty), + { + getTransformProperty: function (t, e, r) { + return new i(t, e, r) + }, + } + ) + })() + function ShapePath() { + ;((this.c = !1), + (this._length = 0), + (this._maxLength = 8), + (this.v = createSizedArray(this._maxLength)), + (this.o = createSizedArray(this._maxLength)), + (this.i = createSizedArray(this._maxLength))) + } + ;((ShapePath.prototype.setPathData = function (t, e) { + ;((this.c = t), this.setLength(e)) + for (var r = 0; r < e; ) + ((this.v[r] = point_pool.newElement()), (this.o[r] = point_pool.newElement()), (this.i[r] = point_pool.newElement()), (r += 1)) + }), + (ShapePath.prototype.setLength = function (t) { + for (; this._maxLength < t; ) this.doubleArrayLength() + this._length = t + }), + (ShapePath.prototype.doubleArrayLength = function () { + ;((this.v = this.v.concat(createSizedArray(this._maxLength))), + (this.i = this.i.concat(createSizedArray(this._maxLength))), + (this.o = this.o.concat(createSizedArray(this._maxLength))), + (this._maxLength *= 2)) + }), + (ShapePath.prototype.setXYAt = function (t, e, r, i, s) { + var a + switch (((this._length = Math.max(this._length, i + 1)), this._length >= this._maxLength && this.doubleArrayLength(), r)) { + case 'v': + a = this.v + break + case 'i': + a = this.i + break + case 'o': + a = this.o + } + ;((!a[i] || (a[i] && !s)) && (a[i] = point_pool.newElement()), (a[i][0] = t), (a[i][1] = e)) + }), + (ShapePath.prototype.setTripleAt = function (t, e, r, i, s, a, n, o) { + ;(this.setXYAt(t, e, 'v', n, o), this.setXYAt(r, i, 'o', n, o), this.setXYAt(s, a, 'i', n, o)) + }), + (ShapePath.prototype.reverse = function () { + var t = new ShapePath() + t.setPathData(this.c, this._length) + var e = this.v, + r = this.o, + i = this.i, + s = 0 + this.c && (t.setTripleAt(e[0][0], e[0][1], i[0][0], i[0][1], r[0][0], r[0][1], 0, !1), (s = 1)) + var a, + n = this._length - 1, + o = this._length + for (a = s; a < o; a += 1) (t.setTripleAt(e[n][0], e[n][1], i[n][0], i[n][1], r[n][0], r[n][1], a, !1), (n -= 1)) + return t + })) + var ShapePropertyFactory = (function () { + var s = -999999 + function t(t, e, r) { + var i, + s, + a, + n, + o, + h, + l, + p, + m, + f = r.lastIndex, + c = this.keyframes + if (t < c[0].t - this.offsetTime) ((i = c[0].s[0]), (a = !0), (f = 0)) + else if (t >= c[c.length - 1].t - this.offsetTime) ((i = c[c.length - 1].s ? c[c.length - 1].s[0] : c[c.length - 2].e[0]), (a = !0)) + else { + for (var d, u, y = f, g = c.length - 1, v = !0; v && ((d = c[y]), !((u = c[y + 1]).t - this.offsetTime > t)); ) + y < g - 1 ? (y += 1) : (v = !1) + if (((f = y), !(a = 1 === d.h))) { + if (t >= u.t - this.offsetTime) p = 1 + else if (t < d.t - this.offsetTime) p = 0 + else { + var b + ;(d.__fnct ? (b = d.__fnct) : ((b = BezierFactory.getBezierEasing(d.o.x, d.o.y, d.i.x, d.i.y).get), (d.__fnct = b)), + (p = b((t - (d.t - this.offsetTime)) / (u.t - this.offsetTime - (d.t - this.offsetTime))))) + } + s = u.s ? u.s[0] : d.e[0] + } + i = d.s[0] + } + for (h = e._length, l = i.i[0].length, r.lastIndex = f, n = 0; n < h; n += 1) + for (o = 0; o < l; o += 1) + ((m = a ? i.i[n][o] : i.i[n][o] + (s.i[n][o] - i.i[n][o]) * p), + (e.i[n][o] = m), + (m = a ? i.o[n][o] : i.o[n][o] + (s.o[n][o] - i.o[n][o]) * p), + (e.o[n][o] = m), + (m = a ? i.v[n][o] : i.v[n][o] + (s.v[n][o] - i.v[n][o]) * p), + (e.v[n][o] = m)) + } + function a() { + this.paths = this.localShapeCollection + } + function e(t) { + ;(function (t, e) { + if (t._length !== e._length || t.c !== e.c) return !1 + var r, + i = t._length + for (r = 0; r < i; r += 1) + if ( + t.v[r][0] !== e.v[r][0] || + t.v[r][1] !== e.v[r][1] || + t.o[r][0] !== e.o[r][0] || + t.o[r][1] !== e.o[r][1] || + t.i[r][0] !== e.i[r][0] || + t.i[r][1] !== e.i[r][1] + ) + return !1 + return !0 + })(this.v, t) || + ((this.v = shape_pool.clone(t)), + this.localShapeCollection.releaseShapes(), + this.localShapeCollection.addShape(this.v), + (this._mdf = !0), + (this.paths = this.localShapeCollection)) + } + function r() { + if (this.elem.globalData.frameId !== this.frameId) + if (this.effectsSequence.length) + if (this.lock) this.setVValue(this.pv) + else { + ;((this.lock = !0), (this._mdf = !1)) + var t, + e = this.kf ? this.pv : this.data.ks ? this.data.ks.k : this.data.pt.k, + r = this.effectsSequence.length + for (t = 0; t < r; t += 1) e = this.effectsSequence[t](e) + ;(this.setVValue(e), (this.lock = !1), (this.frameId = this.elem.globalData.frameId)) + } + else this._mdf = !1 + } + function n(t, e, r) { + ;((this.propType = 'shape'), + (this.comp = t.comp), + (this.container = t), + (this.elem = t), + (this.data = e), + (this.k = !1), + (this.kf = !1), + (this._mdf = !1)) + var i = 3 === r ? e.pt.k : e.ks.k + ;((this.v = shape_pool.clone(i)), + (this.pv = shape_pool.clone(this.v)), + (this.localShapeCollection = shapeCollection_pool.newShapeCollection()), + (this.paths = this.localShapeCollection), + this.paths.addShape(this.v), + (this.reset = a), + (this.effectsSequence = [])) + } + function i(t) { + ;(this.effectsSequence.push(t), this.container.addDynamicProperty(this)) + } + function o(t, e, r) { + ;((this.propType = 'shape'), + (this.comp = t.comp), + (this.elem = t), + (this.container = t), + (this.offsetTime = t.data.st), + (this.keyframes = 3 === r ? e.pt.k : e.ks.k), + (this.k = !0), + (this.kf = !0)) + var i = this.keyframes[0].s[0].i.length + this.keyframes[0].s[0].i[0].length + ;((this.v = shape_pool.newElement()), + this.v.setPathData(this.keyframes[0].s[0].c, i), + (this.pv = shape_pool.clone(this.v)), + (this.localShapeCollection = shapeCollection_pool.newShapeCollection()), + (this.paths = this.localShapeCollection), + this.paths.addShape(this.v), + (this.lastFrame = s), + (this.reset = a), + (this._caching = { lastFrame: s, lastIndex: 0 }), + (this.effectsSequence = [ + function () { + var t = this.comp.renderedFrame - this.offsetTime, + e = this.keyframes[0].t - this.offsetTime, + r = this.keyframes[this.keyframes.length - 1].t - this.offsetTime, + i = this._caching.lastFrame + return ( + (i !== s && ((i < e && t < e) || (r < i && r < t))) || + ((this._caching.lastIndex = i < t ? this._caching.lastIndex : 0), this.interpolateShape(t, this.pv, this._caching)), + (this._caching.lastFrame = t), + this.pv + ) + }.bind(this), + ])) + } + ;((n.prototype.interpolateShape = t), + (n.prototype.getValue = r), + (n.prototype.setVValue = e), + (n.prototype.addEffect = i), + (o.prototype.getValue = r), + (o.prototype.interpolateShape = t), + (o.prototype.setVValue = e), + (o.prototype.addEffect = i)) + var h = (function () { + var n = roundCorner + function t(t, e) { + ;((this.v = shape_pool.newElement()), + this.v.setPathData(!0, 4), + (this.localShapeCollection = shapeCollection_pool.newShapeCollection()), + (this.paths = this.localShapeCollection), + this.localShapeCollection.addShape(this.v), + (this.d = e.d), + (this.elem = t), + (this.comp = t.comp), + (this.frameId = -1), + this.initDynamicPropertyContainer(t), + (this.p = PropertyFactory.getProp(t, e.p, 1, 0, this)), + (this.s = PropertyFactory.getProp(t, e.s, 1, 0, this)), + this.dynamicProperties.length ? (this.k = !0) : ((this.k = !1), this.convertEllToPath())) + } + return ( + (t.prototype = { + reset: a, + getValue: function () { + this.elem.globalData.frameId !== this.frameId && + ((this.frameId = this.elem.globalData.frameId), this.iterateDynamicProperties(), this._mdf && this.convertEllToPath()) + }, + convertEllToPath: function () { + var t = this.p.v[0], + e = this.p.v[1], + r = this.s.v[0] / 2, + i = this.s.v[1] / 2, + s = 3 !== this.d, + a = this.v + ;((a.v[0][0] = t), + (a.v[0][1] = e - i), + (a.v[1][0] = s ? t + r : t - r), + (a.v[1][1] = e), + (a.v[2][0] = t), + (a.v[2][1] = e + i), + (a.v[3][0] = s ? t - r : t + r), + (a.v[3][1] = e), + (a.i[0][0] = s ? t - r * n : t + r * n), + (a.i[0][1] = e - i), + (a.i[1][0] = s ? t + r : t - r), + (a.i[1][1] = e - i * n), + (a.i[2][0] = s ? t + r * n : t - r * n), + (a.i[2][1] = e + i), + (a.i[3][0] = s ? t - r : t + r), + (a.i[3][1] = e + i * n), + (a.o[0][0] = s ? t + r * n : t - r * n), + (a.o[0][1] = e - i), + (a.o[1][0] = s ? t + r : t - r), + (a.o[1][1] = e + i * n), + (a.o[2][0] = s ? t - r * n : t + r * n), + (a.o[2][1] = e + i), + (a.o[3][0] = s ? t - r : t + r), + (a.o[3][1] = e - i * n)) + }, + }), + extendPrototype([DynamicPropertyContainer], t), + t + ) + })(), + l = (function () { + function t(t, e) { + ;((this.v = shape_pool.newElement()), + this.v.setPathData(!0, 0), + (this.elem = t), + (this.comp = t.comp), + (this.data = e), + (this.frameId = -1), + (this.d = e.d), + this.initDynamicPropertyContainer(t), + 1 === e.sy + ? ((this.ir = PropertyFactory.getProp(t, e.ir, 0, 0, this)), + (this.is = PropertyFactory.getProp(t, e.is, 0, 0.01, this)), + (this.convertToPath = this.convertStarToPath)) + : (this.convertToPath = this.convertPolygonToPath), + (this.pt = PropertyFactory.getProp(t, e.pt, 0, 0, this)), + (this.p = PropertyFactory.getProp(t, e.p, 1, 0, this)), + (this.r = PropertyFactory.getProp(t, e.r, 0, degToRads, this)), + (this.or = PropertyFactory.getProp(t, e.or, 0, 0, this)), + (this.os = PropertyFactory.getProp(t, e.os, 0, 0.01, this)), + (this.localShapeCollection = shapeCollection_pool.newShapeCollection()), + this.localShapeCollection.addShape(this.v), + (this.paths = this.localShapeCollection), + this.dynamicProperties.length ? (this.k = !0) : ((this.k = !1), this.convertToPath())) + } + return ( + (t.prototype = { + reset: a, + getValue: function () { + this.elem.globalData.frameId !== this.frameId && + ((this.frameId = this.elem.globalData.frameId), this.iterateDynamicProperties(), this._mdf && this.convertToPath()) + }, + convertStarToPath: function () { + var t, + e, + r, + i, + s = 2 * Math.floor(this.pt.v), + a = (2 * Math.PI) / s, + n = !0, + o = this.or.v, + h = this.ir.v, + l = this.os.v, + p = this.is.v, + m = (2 * Math.PI * o) / (2 * s), + f = (2 * Math.PI * h) / (2 * s), + c = -Math.PI / 2 + c += this.r.v + var d = 3 === this.data.d ? -1 : 1 + for (t = this.v._length = 0; t < s; t += 1) { + ;((r = n ? l : p), (i = n ? m : f)) + var u = (e = n ? o : h) * Math.cos(c), + y = e * Math.sin(c), + g = 0 === u && 0 === y ? 0 : y / Math.sqrt(u * u + y * y), + v = 0 === u && 0 === y ? 0 : -u / Math.sqrt(u * u + y * y) + ;((u += +this.p.v[0]), + (y += +this.p.v[1]), + this.v.setTripleAt(u, y, u - g * i * r * d, y - v * i * r * d, u + g * i * r * d, y + v * i * r * d, t, !0), + (n = !n), + (c += a * d)) + } + }, + convertPolygonToPath: function () { + var t, + e = Math.floor(this.pt.v), + r = (2 * Math.PI) / e, + i = this.or.v, + s = this.os.v, + a = (2 * Math.PI * i) / (4 * e), + n = -Math.PI / 2, + o = 3 === this.data.d ? -1 : 1 + for (n += this.r.v, t = this.v._length = 0; t < e; t += 1) { + var h = i * Math.cos(n), + l = i * Math.sin(n), + p = 0 === h && 0 === l ? 0 : l / Math.sqrt(h * h + l * l), + m = 0 === h && 0 === l ? 0 : -h / Math.sqrt(h * h + l * l) + ;((h += +this.p.v[0]), + (l += +this.p.v[1]), + this.v.setTripleAt(h, l, h - p * a * s * o, l - m * a * s * o, h + p * a * s * o, l + m * a * s * o, t, !0), + (n += r * o)) + } + ;((this.paths.length = 0), (this.paths[0] = this.v)) + }, + }), + extendPrototype([DynamicPropertyContainer], t), + t + ) + })(), + p = (function () { + function t(t, e) { + ;((this.v = shape_pool.newElement()), + (this.v.c = !0), + (this.localShapeCollection = shapeCollection_pool.newShapeCollection()), + this.localShapeCollection.addShape(this.v), + (this.paths = this.localShapeCollection), + (this.elem = t), + (this.comp = t.comp), + (this.frameId = -1), + (this.d = e.d), + this.initDynamicPropertyContainer(t), + (this.p = PropertyFactory.getProp(t, e.p, 1, 0, this)), + (this.s = PropertyFactory.getProp(t, e.s, 1, 0, this)), + (this.r = PropertyFactory.getProp(t, e.r, 0, 0, this)), + this.dynamicProperties.length ? (this.k = !0) : ((this.k = !1), this.convertRectToPath())) + } + return ( + (t.prototype = { + convertRectToPath: function () { + var t = this.p.v[0], + e = this.p.v[1], + r = this.s.v[0] / 2, + i = this.s.v[1] / 2, + s = bm_min(r, i, this.r.v), + a = s * (1 - roundCorner) + ;((this.v._length = 0), + 2 === this.d || 1 === this.d + ? (this.v.setTripleAt(t + r, e - i + s, t + r, e - i + s, t + r, e - i + a, 0, !0), + this.v.setTripleAt(t + r, e + i - s, t + r, e + i - a, t + r, e + i - s, 1, !0), + 0 !== s + ? (this.v.setTripleAt(t + r - s, e + i, t + r - s, e + i, t + r - a, e + i, 2, !0), + this.v.setTripleAt(t - r + s, e + i, t - r + a, e + i, t - r + s, e + i, 3, !0), + this.v.setTripleAt(t - r, e + i - s, t - r, e + i - s, t - r, e + i - a, 4, !0), + this.v.setTripleAt(t - r, e - i + s, t - r, e - i + a, t - r, e - i + s, 5, !0), + this.v.setTripleAt(t - r + s, e - i, t - r + s, e - i, t - r + a, e - i, 6, !0), + this.v.setTripleAt(t + r - s, e - i, t + r - a, e - i, t + r - s, e - i, 7, !0)) + : (this.v.setTripleAt(t - r, e + i, t - r + a, e + i, t - r, e + i, 2), + this.v.setTripleAt(t - r, e - i, t - r, e - i + a, t - r, e - i, 3))) + : (this.v.setTripleAt(t + r, e - i + s, t + r, e - i + a, t + r, e - i + s, 0, !0), + 0 !== s + ? (this.v.setTripleAt(t + r - s, e - i, t + r - s, e - i, t + r - a, e - i, 1, !0), + this.v.setTripleAt(t - r + s, e - i, t - r + a, e - i, t - r + s, e - i, 2, !0), + this.v.setTripleAt(t - r, e - i + s, t - r, e - i + s, t - r, e - i + a, 3, !0), + this.v.setTripleAt(t - r, e + i - s, t - r, e + i - a, t - r, e + i - s, 4, !0), + this.v.setTripleAt(t - r + s, e + i, t - r + s, e + i, t - r + a, e + i, 5, !0), + this.v.setTripleAt(t + r - s, e + i, t + r - a, e + i, t + r - s, e + i, 6, !0), + this.v.setTripleAt(t + r, e + i - s, t + r, e + i - s, t + r, e + i - a, 7, !0)) + : (this.v.setTripleAt(t - r, e - i, t - r + a, e - i, t - r, e - i, 1, !0), + this.v.setTripleAt(t - r, e + i, t - r, e + i - a, t - r, e + i, 2, !0), + this.v.setTripleAt(t + r, e + i, t + r - a, e + i, t + r, e + i, 3, !0)))) + }, + getValue: function (t) { + this.elem.globalData.frameId !== this.frameId && + ((this.frameId = this.elem.globalData.frameId), this.iterateDynamicProperties(), this._mdf && this.convertRectToPath()) + }, + reset: a, + }), + extendPrototype([DynamicPropertyContainer], t), + t + ) + })() + var m = { + getShapeProp: function (t, e, r) { + var i + return ( + 3 === r || 4 === r + ? (i = (3 === r ? e.pt : e.ks).k.length ? new o(t, e, r) : new n(t, e, r)) + : 5 === r + ? (i = new p(t, e)) + : 6 === r + ? (i = new h(t, e)) + : 7 === r && (i = new l(t, e)), + i.k && t.addDynamicProperty(i), + i + ) + }, + getConstructorFunction: function () { + return n + }, + getKeyframedConstructorFunction: function () { + return o + }, + } + return m + })(), + ShapeModifiers = + ((Yr = {}), + (Zr = {}), + (Yr.registerModifier = function (t, e) { + Zr[t] || (Zr[t] = e) + }), + (Yr.getModifier = function (t, e, r) { + return new Zr[t](e, r) + }), + Yr), + Yr, + Zr + function ShapeModifier() {} + function TrimModifier() {} + function RoundCornersModifier() {} + function RepeaterModifier() {} + function ShapeCollection() { + ;((this._length = 0), (this._maxLength = 4), (this.shapes = createSizedArray(this._maxLength))) + } + function DashProperty(t, e, r, i) { + ;((this.elem = t), + (this.frameId = -1), + (this.dataProps = createSizedArray(e.length)), + (this.renderer = r), + (this.k = !1), + (this.dashStr = ''), + (this.dashArray = createTypedArray('float32', e.length ? e.length - 1 : 0)), + (this.dashoffset = createTypedArray('float32', 1)), + this.initDynamicPropertyContainer(i)) + var s, + a, + n = e.length || 0 + for (s = 0; s < n; s += 1) + ((a = PropertyFactory.getProp(t, e[s].v, 0, 0, this)), (this.k = a.k || this.k), (this.dataProps[s] = { n: e[s].n, p: a })) + ;(this.k || this.getValue(!0), (this._isAnimated = this.k)) + } + function GradientProperty(t, e, r) { + ;((this.data = e), (this.c = createTypedArray('uint8c', 4 * e.p))) + var i = e.k.k[0].s ? e.k.k[0].s.length - 4 * e.p : e.k.k.length - 4 * e.p + ;((this.o = createTypedArray('float32', i)), + (this._cmdf = !1), + (this._omdf = !1), + (this._collapsable = this.checkCollapsable()), + (this._hasOpacity = i), + this.initDynamicPropertyContainer(r), + (this.prop = PropertyFactory.getProp(t, e.k, 1, null, this)), + (this.k = this.prop.k), + this.getValue(!0)) + } + ;((ShapeModifier.prototype.initModifierProperties = function () {}), + (ShapeModifier.prototype.addShapeToModifier = function () {}), + (ShapeModifier.prototype.addShape = function (t) { + if (!this.closed) { + t.sh.container.addDynamicProperty(t.sh) + var e = { shape: t.sh, data: t, localShapeCollection: shapeCollection_pool.newShapeCollection() } + ;(this.shapes.push(e), this.addShapeToModifier(e), this._isAnimated && t.setAsAnimated()) + } + }), + (ShapeModifier.prototype.init = function (t, e) { + ;((this.shapes = []), + (this.elem = t), + this.initDynamicPropertyContainer(t), + this.initModifierProperties(t, e), + (this.frameId = initialDefaultFrame), + (this.closed = !1), + (this.k = !1), + this.dynamicProperties.length ? (this.k = !0) : this.getValue(!0)) + }), + (ShapeModifier.prototype.processKeys = function () { + this.elem.globalData.frameId !== this.frameId && ((this.frameId = this.elem.globalData.frameId), this.iterateDynamicProperties()) + }), + extendPrototype([DynamicPropertyContainer], ShapeModifier), + extendPrototype([ShapeModifier], TrimModifier), + (TrimModifier.prototype.initModifierProperties = function (t, e) { + ;((this.s = PropertyFactory.getProp(t, e.s, 0, 0.01, this)), + (this.e = PropertyFactory.getProp(t, e.e, 0, 0.01, this)), + (this.o = PropertyFactory.getProp(t, e.o, 0, 0, this)), + (this.sValue = 0), + (this.eValue = 0), + (this.getValue = this.processKeys), + (this.m = e.m), + (this._isAnimated = !!this.s.effectsSequence.length || !!this.e.effectsSequence.length || !!this.o.effectsSequence.length)) + }), + (TrimModifier.prototype.addShapeToModifier = function (t) { + t.pathsData = [] + }), + (TrimModifier.prototype.calculateShapeEdges = function (t, e, r, i, s) { + var a = [] + e <= 1 ? a.push({ s: t, e: e }) : 1 <= t ? a.push({ s: t - 1, e: e - 1 }) : (a.push({ s: t, e: 1 }), a.push({ s: 0, e: e - 1 })) + var n, + o, + h = [], + l = a.length + for (n = 0; n < l; n += 1) { + var p, m + if ((o = a[n]).e * s < i || o.s * s > i + r); + else ((p = o.s * s <= i ? 0 : (o.s * s - i) / r), (m = o.e * s >= i + r ? 1 : (o.e * s - i) / r), h.push([p, m])) + } + return (h.length || h.push([0, 0]), h) + }), + (TrimModifier.prototype.releasePathsData = function (t) { + var e, + r = t.length + for (e = 0; e < r; e += 1) segments_length_pool.release(t[e]) + return ((t.length = 0), t) + }), + (TrimModifier.prototype.processShapes = function (t) { + var e, r, i + if (this._mdf || t) { + var s = (this.o.v % 360) / 360 + if ( + (s < 0 && (s += 1), + (e = (1 < this.s.v ? 1 : this.s.v < 0 ? 0 : this.s.v) + s), + (r = (1 < this.e.v ? 1 : this.e.v < 0 ? 0 : this.e.v) + s) < e) + ) { + var a = e + ;((e = r), (r = a)) + } + ;((e = 1e-4 * Math.round(1e4 * e)), (r = 1e-4 * Math.round(1e4 * r)), (this.sValue = e), (this.eValue = r)) + } else ((e = this.sValue), (r = this.eValue)) + var n, + o, + h, + l, + p, + m, + f = this.shapes.length, + c = 0 + if (r === e) + for (n = 0; n < f; n += 1) + (this.shapes[n].localShapeCollection.releaseShapes(), + (this.shapes[n].shape._mdf = !0), + (this.shapes[n].shape.paths = this.shapes[n].localShapeCollection)) + else if ((1 === r && 0 === e) || (0 === r && 1 === e)) { + if (this._mdf) for (n = 0; n < f; n += 1) ((this.shapes[n].pathsData.length = 0), (this.shapes[n].shape._mdf = !0)) + } else { + var d, + u, + y = [] + for (n = 0; n < f; n += 1) + if ((d = this.shapes[n]).shape._mdf || this._mdf || t || 2 === this.m) { + if (((h = (i = d.shape.paths)._length), (m = 0), !d.shape._mdf && d.pathsData.length)) m = d.totalShapeLength + else { + for (l = this.releasePathsData(d.pathsData), o = 0; o < h; o += 1) + ((p = bez.getSegmentsLength(i.shapes[o])), l.push(p), (m += p.totalLength)) + ;((d.totalShapeLength = m), (d.pathsData = l)) + } + ;((c += m), (d.shape._mdf = !0)) + } else d.shape.paths = d.localShapeCollection + var g, + v = e, + b = r, + E = 0 + for (n = f - 1; 0 <= n; n -= 1) + if ((d = this.shapes[n]).shape._mdf) { + for ( + (u = d.localShapeCollection).releaseShapes(), + 2 === this.m && 1 < f + ? ((g = this.calculateShapeEdges(e, r, d.totalShapeLength, E, c)), (E += d.totalShapeLength)) + : (g = [[v, b]]), + h = g.length, + o = 0; + o < h; + o += 1 + ) { + ;((v = g[o][0]), + (b = g[o][1]), + (y.length = 0), + b <= 1 + ? y.push({ s: d.totalShapeLength * v, e: d.totalShapeLength * b }) + : 1 <= v + ? y.push({ s: d.totalShapeLength * (v - 1), e: d.totalShapeLength * (b - 1) }) + : (y.push({ s: d.totalShapeLength * v, e: d.totalShapeLength }), y.push({ s: 0, e: d.totalShapeLength * (b - 1) }))) + var x = this.addShapes(d, y[0]) + if (y[0].s !== y[0].e) { + if (1 < y.length) + if (d.shape.paths.shapes[d.shape.paths._length - 1].c) { + var P = x.pop() + ;(this.addPaths(x, u), (x = this.addShapes(d, y[1], P))) + } else (this.addPaths(x, u), (x = this.addShapes(d, y[1]))) + this.addPaths(x, u) + } + } + d.shape.paths = u + } + } + }), + (TrimModifier.prototype.addPaths = function (t, e) { + var r, + i = t.length + for (r = 0; r < i; r += 1) e.addShape(t[r]) + }), + (TrimModifier.prototype.addSegment = function (t, e, r, i, s, a, n) { + ;(s.setXYAt(e[0], e[1], 'o', a), s.setXYAt(r[0], r[1], 'i', a + 1), n && s.setXYAt(t[0], t[1], 'v', a), s.setXYAt(i[0], i[1], 'v', a + 1)) + }), + (TrimModifier.prototype.addSegmentFromArray = function (t, e, r, i) { + ;(e.setXYAt(t[1], t[5], 'o', r), e.setXYAt(t[2], t[6], 'i', r + 1), i && e.setXYAt(t[0], t[4], 'v', r), e.setXYAt(t[3], t[7], 'v', r + 1)) + }), + (TrimModifier.prototype.addShapes = function (t, e, r) { + var i, + s, + a, + n, + o, + h, + l, + p, + m = t.pathsData, + f = t.shape.paths.shapes, + c = t.shape.paths._length, + d = 0, + u = [], + y = !0 + for (p = r ? ((o = r._length), r._length) : ((r = shape_pool.newElement()), (o = 0)), u.push(r), i = 0; i < c; i += 1) { + for (h = m[i].lengths, r.c = f[i].c, a = f[i].c ? h.length : h.length + 1, s = 1; s < a; s += 1) + if (d + (n = h[s - 1]).addedLength < e.s) ((d += n.addedLength), (r.c = !1)) + else { + if (d > e.e) { + r.c = !1 + break + } + ;(e.s <= d && e.e >= d + n.addedLength + ? (this.addSegment(f[i].v[s - 1], f[i].o[s - 1], f[i].i[s], f[i].v[s], r, o, y), (y = !1)) + : ((l = bez.getNewSegment( + f[i].v[s - 1], + f[i].v[s], + f[i].o[s - 1], + f[i].i[s], + (e.s - d) / n.addedLength, + (e.e - d) / n.addedLength, + h[s - 1], + )), + this.addSegmentFromArray(l, r, o, y), + (y = !1), + (r.c = !1)), + (d += n.addedLength), + (o += 1)) + } + if (f[i].c && h.length) { + if (((n = h[s - 1]), d <= e.e)) { + var g = h[s - 1].addedLength + e.s <= d && e.e >= d + g + ? (this.addSegment(f[i].v[s - 1], f[i].o[s - 1], f[i].i[0], f[i].v[0], r, o, y), (y = !1)) + : ((l = bez.getNewSegment(f[i].v[s - 1], f[i].v[0], f[i].o[s - 1], f[i].i[0], (e.s - d) / g, (e.e - d) / g, h[s - 1])), + this.addSegmentFromArray(l, r, o, y), + (y = !1), + (r.c = !1)) + } else r.c = !1 + ;((d += n.addedLength), (o += 1)) + } + if ( + (r._length && (r.setXYAt(r.v[p][0], r.v[p][1], 'i', p), r.setXYAt(r.v[r._length - 1][0], r.v[r._length - 1][1], 'o', r._length - 1)), + d > e.e) + ) + break + i < c - 1 && ((r = shape_pool.newElement()), (y = !0), u.push(r), (o = 0)) + } + return u + }), + ShapeModifiers.registerModifier('tm', TrimModifier), + extendPrototype([ShapeModifier], RoundCornersModifier), + (RoundCornersModifier.prototype.initModifierProperties = function (t, e) { + ;((this.getValue = this.processKeys), + (this.rd = PropertyFactory.getProp(t, e.r, 0, null, this)), + (this._isAnimated = !!this.rd.effectsSequence.length)) + }), + (RoundCornersModifier.prototype.processPath = function (t, e) { + var r = shape_pool.newElement() + r.c = t.c + var i, + s, + a, + n, + o, + h, + l, + p, + m, + f, + c, + d, + u, + y = t._length, + g = 0 + for (i = 0; i < y; i += 1) + ((s = t.v[i]), + (n = t.o[i]), + (a = t.i[i]), + s[0] === n[0] && s[1] === n[1] && s[0] === a[0] && s[1] === a[1] + ? (0 !== i && i !== y - 1) || t.c + ? ((o = 0 === i ? t.v[y - 1] : t.v[i - 1]), + (l = (h = Math.sqrt(Math.pow(s[0] - o[0], 2) + Math.pow(s[1] - o[1], 2))) ? Math.min(h / 2, e) / h : 0), + (p = d = s[0] + (o[0] - s[0]) * l), + (m = u = s[1] - (s[1] - o[1]) * l), + (f = p - (p - s[0]) * roundCorner), + (c = m - (m - s[1]) * roundCorner), + r.setTripleAt(p, m, f, c, d, u, g), + (g += 1), + (o = i === y - 1 ? t.v[0] : t.v[i + 1]), + (l = (h = Math.sqrt(Math.pow(s[0] - o[0], 2) + Math.pow(s[1] - o[1], 2))) ? Math.min(h / 2, e) / h : 0), + (p = f = s[0] + (o[0] - s[0]) * l), + (m = c = s[1] + (o[1] - s[1]) * l), + (d = p - (p - s[0]) * roundCorner), + (u = m - (m - s[1]) * roundCorner), + r.setTripleAt(p, m, f, c, d, u, g)) + : r.setTripleAt(s[0], s[1], n[0], n[1], a[0], a[1], g) + : r.setTripleAt(t.v[i][0], t.v[i][1], t.o[i][0], t.o[i][1], t.i[i][0], t.i[i][1], g), + (g += 1)) + return r + }), + (RoundCornersModifier.prototype.processShapes = function (t) { + var e, + r, + i, + s, + a, + n, + o = this.shapes.length, + h = this.rd.v + if (0 !== h) + for (r = 0; r < o; r += 1) { + if (((a = this.shapes[r]).shape.paths, (n = a.localShapeCollection), a.shape._mdf || this._mdf || t)) + for (n.releaseShapes(), a.shape._mdf = !0, e = a.shape.paths.shapes, s = a.shape.paths._length, i = 0; i < s; i += 1) + n.addShape(this.processPath(e[i], h)) + a.shape.paths = a.localShapeCollection + } + this.dynamicProperties.length || (this._mdf = !1) + }), + ShapeModifiers.registerModifier('rd', RoundCornersModifier), + extendPrototype([ShapeModifier], RepeaterModifier), + (RepeaterModifier.prototype.initModifierProperties = function (t, e) { + ;((this.getValue = this.processKeys), + (this.c = PropertyFactory.getProp(t, e.c, 0, null, this)), + (this.o = PropertyFactory.getProp(t, e.o, 0, null, this)), + (this.tr = TransformPropertyFactory.getTransformProperty(t, e.tr, this)), + (this.so = PropertyFactory.getProp(t, e.tr.so, 0, 0.01, this)), + (this.eo = PropertyFactory.getProp(t, e.tr.eo, 0, 0.01, this)), + (this.data = e), + this.dynamicProperties.length || this.getValue(!0), + (this._isAnimated = !!this.dynamicProperties.length), + (this.pMatrix = new Matrix()), + (this.rMatrix = new Matrix()), + (this.sMatrix = new Matrix()), + (this.tMatrix = new Matrix()), + (this.matrix = new Matrix())) + }), + (RepeaterModifier.prototype.applyTransforms = function (t, e, r, i, s, a) { + var n = a ? -1 : 1, + o = i.s.v[0] + (1 - i.s.v[0]) * (1 - s), + h = i.s.v[1] + (1 - i.s.v[1]) * (1 - s) + ;(t.translate(i.p.v[0] * n * s, i.p.v[1] * n * s, i.p.v[2]), + e.translate(-i.a.v[0], -i.a.v[1], i.a.v[2]), + e.rotate(-i.r.v * n * s), + e.translate(i.a.v[0], i.a.v[1], i.a.v[2]), + r.translate(-i.a.v[0], -i.a.v[1], i.a.v[2]), + r.scale(a ? 1 / o : o, a ? 1 / h : h), + r.translate(i.a.v[0], i.a.v[1], i.a.v[2])) + }), + (RepeaterModifier.prototype.init = function (t, e, r, i) { + ;((this.elem = t), + (this.arr = e), + (this.pos = r), + (this.elemsData = i), + (this._currentCopies = 0), + (this._elements = []), + (this._groups = []), + (this.frameId = -1), + this.initDynamicPropertyContainer(t), + this.initModifierProperties(t, e[r])) + for (; 0 < r; ) ((r -= 1), this._elements.unshift(e[r]), 1) + this.dynamicProperties.length ? (this.k = !0) : this.getValue(!0) + }), + (RepeaterModifier.prototype.resetElements = function (t) { + var e, + r = t.length + for (e = 0; e < r; e += 1) ((t[e]._processed = !1), 'gr' === t[e].ty && this.resetElements(t[e].it)) + }), + (RepeaterModifier.prototype.cloneElements = function (t) { + t.length + var e = JSON.parse(JSON.stringify(t)) + return (this.resetElements(e), e) + }), + (RepeaterModifier.prototype.changeGroupRender = function (t, e) { + var r, + i = t.length + for (r = 0; r < i; r += 1) ((t[r]._render = e), 'gr' === t[r].ty && this.changeGroupRender(t[r].it, e)) + }), + (RepeaterModifier.prototype.processShapes = function (t) { + var e, r, i, s, a + if (this._mdf || t) { + var n, + o = Math.ceil(this.c.v) + if (this._groups.length < o) { + for (; this._groups.length < o; ) { + var h = { it: this.cloneElements(this._elements), ty: 'gr' } + ;(h.it.push({ + a: { a: 0, ix: 1, k: [0, 0] }, + nm: 'Transform', + o: { a: 0, ix: 7, k: 100 }, + p: { a: 0, ix: 2, k: [0, 0] }, + r: { + a: 1, + ix: 6, + k: [ + { s: 0, e: 0, t: 0 }, + { s: 0, e: 0, t: 1 }, + ], + }, + s: { a: 0, ix: 3, k: [100, 100] }, + sa: { a: 0, ix: 5, k: 0 }, + sk: { a: 0, ix: 4, k: 0 }, + ty: 'tr', + }), + this.arr.splice(0, 0, h), + this._groups.splice(0, 0, h), + (this._currentCopies += 1)) + } + this.elem.reloadShapes() + } + for (i = a = 0; i <= this._groups.length - 1; i += 1) + ((n = a < o), (this._groups[i]._render = n), this.changeGroupRender(this._groups[i].it, n), (a += 1)) + this._currentCopies = o + var l = this.o.v, + p = l % 1, + m = 0 < l ? Math.floor(l) : Math.ceil(l), + f = (this.tr.v.props, this.pMatrix.props), + c = this.rMatrix.props, + d = this.sMatrix.props + ;(this.pMatrix.reset(), this.rMatrix.reset(), this.sMatrix.reset(), this.tMatrix.reset(), this.matrix.reset()) + var u, + y, + g = 0 + if (0 < l) { + for (; g < m; ) (this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, !1), (g += 1)) + p && (this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, p, !1), (g += p)) + } else if (l < 0) { + for (; m < g; ) (this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, !0), (g -= 1)) + p && (this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, -p, !0), (g -= p)) + } + for (i = 1 === this.data.m ? 0 : this._currentCopies - 1, s = 1 === this.data.m ? 1 : -1, a = this._currentCopies; a; ) { + if ( + ((y = (r = (e = this.elemsData[i].it)[e.length - 1].transform.mProps.v.props).length), + (e[e.length - 1].transform.mProps._mdf = !0), + (e[e.length - 1].transform.op._mdf = !0), + (e[e.length - 1].transform.op.v = this.so.v + (this.eo.v - this.so.v) * (i / (this._currentCopies - 1))), + 0 !== g) + ) { + for ( + ((0 !== i && 1 === s) || (i !== this._currentCopies - 1 && -1 === s)) && + this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, !1), + this.matrix.transform(c[0], c[1], c[2], c[3], c[4], c[5], c[6], c[7], c[8], c[9], c[10], c[11], c[12], c[13], c[14], c[15]), + this.matrix.transform(d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7], d[8], d[9], d[10], d[11], d[12], d[13], d[14], d[15]), + this.matrix.transform(f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7], f[8], f[9], f[10], f[11], f[12], f[13], f[14], f[15]), + u = 0; + u < y; + u += 1 + ) + r[u] = this.matrix.props[u] + this.matrix.reset() + } else for (this.matrix.reset(), u = 0; u < y; u += 1) r[u] = this.matrix.props[u] + ;((g += 1), (a -= 1), (i += s)) + } + } else + for (a = this._currentCopies, i = 0, s = 1; a; ) + ((r = (e = this.elemsData[i].it)[e.length - 1].transform.mProps.v.props), + (e[e.length - 1].transform.mProps._mdf = !1), + (e[e.length - 1].transform.op._mdf = !1), + (a -= 1), + (i += s)) + }), + (RepeaterModifier.prototype.addShape = function () {}), + ShapeModifiers.registerModifier('rp', RepeaterModifier), + (ShapeCollection.prototype.addShape = function (t) { + ;(this._length === this._maxLength && ((this.shapes = this.shapes.concat(createSizedArray(this._maxLength))), (this._maxLength *= 2)), + (this.shapes[this._length] = t), + (this._length += 1)) + }), + (ShapeCollection.prototype.releaseShapes = function () { + var t + for (t = 0; t < this._length; t += 1) shape_pool.release(this.shapes[t]) + this._length = 0 + }), + (DashProperty.prototype.getValue = function (t) { + if ( + (this.elem.globalData.frameId !== this.frameId || t) && + ((this.frameId = this.elem.globalData.frameId), this.iterateDynamicProperties(), (this._mdf = this._mdf || t), this._mdf) + ) { + var e = 0, + r = this.dataProps.length + for ('svg' === this.renderer && (this.dashStr = ''), e = 0; e < r; e += 1) + 'o' != this.dataProps[e].n + ? 'svg' === this.renderer + ? (this.dashStr += ' ' + this.dataProps[e].p.v) + : (this.dashArray[e] = this.dataProps[e].p.v) + : (this.dashoffset[0] = this.dataProps[e].p.v) + } + }), + extendPrototype([DynamicPropertyContainer], DashProperty), + (GradientProperty.prototype.comparePoints = function (t, e) { + for (var r = 0, i = this.o.length / 2; r < i; ) { + if (0.01 < Math.abs(t[4 * r] - t[4 * e + 2 * r])) return !1 + r += 1 + } + return !0 + }), + (GradientProperty.prototype.checkCollapsable = function () { + if (this.o.length / 2 != this.c.length / 4) return !1 + if (this.data.k.k[0].s) + for (var t = 0, e = this.data.k.k.length; t < e; ) { + if (!this.comparePoints(this.data.k.k[t].s, this.data.p)) return !1 + t += 1 + } + else if (!this.comparePoints(this.data.k.k, this.data.p)) return !1 + return !0 + }), + (GradientProperty.prototype.getValue = function (t) { + if ((this.prop.getValue(), (this._mdf = !1), (this._cmdf = !1), (this._omdf = !1), this.prop._mdf || t)) { + var e, + r, + i, + s = 4 * this.data.p + for (e = 0; e < s; e += 1) + ((r = e % 4 == 0 ? 100 : 255), (i = Math.round(this.prop.v[e] * r)), this.c[e] !== i && ((this.c[e] = i), (this._cmdf = !t))) + if (this.o.length) + for (s = this.prop.v.length, e = 4 * this.data.p; e < s; e += 1) + ((r = e % 2 == 0 ? 100 : 1), + (i = e % 2 == 0 ? Math.round(100 * this.prop.v[e]) : this.prop.v[e]), + this.o[e - 4 * this.data.p] !== i && ((this.o[e - 4 * this.data.p] = i), (this._omdf = !t))) + this._mdf = !t + } + }), + extendPrototype([DynamicPropertyContainer], GradientProperty)) + var buildShapeString = function (t, e, r, i) { + if (0 === e) return '' + var s, + a = t.o, + n = t.i, + o = t.v, + h = ' M' + i.applyToPointStringified(o[0][0], o[0][1]) + for (s = 1; s < e; s += 1) + h += + ' C' + + i.applyToPointStringified(a[s - 1][0], a[s - 1][1]) + + ' ' + + i.applyToPointStringified(n[s][0], n[s][1]) + + ' ' + + i.applyToPointStringified(o[s][0], o[s][1]) + return ( + r && + e && + ((h += + ' C' + + i.applyToPointStringified(a[s - 1][0], a[s - 1][1]) + + ' ' + + i.applyToPointStringified(n[0][0], n[0][1]) + + ' ' + + i.applyToPointStringified(o[0][0], o[0][1])), + (h += 'z')), + h + ) + }, + ImagePreloader = (function () { + var s = (function () { + var t = createTag('canvas') + ;((t.width = 1), (t.height = 1)) + var e = t.getContext('2d') + return ((e.fillStyle = 'rgba(0,0,0,0)'), e.fillRect(0, 0, 1, 1), t) + })() + function t() { + ;((this.loadedAssets += 1), this.loadedAssets === this.totalImages && this.imagesLoadedCb && this.imagesLoadedCb(null)) + } + function e(t) { + var e = (function (t, e, r) { + var i = '' + if (t.e) i = t.p + else if (e) { + var s = t.p + ;(-1 !== s.indexOf('images/') && (s = s.split('/')[1]), (i = e + s)) + } else ((i = r), (i += t.u ? t.u : ''), (i += t.p)) + return i + })(t, this.assetsPath, this.path), + r = createTag('img') + ;((r.crossOrigin = 'anonymous'), + r.addEventListener('load', this._imageLoaded.bind(this), !1), + r.addEventListener( + 'error', + function () { + ;((i.img = s), this._imageLoaded()) + }.bind(this), + !1, + ), + (r.src = e)) + var i = { img: r, assetData: t } + return i + } + function r(t, e) { + this.imagesLoadedCb = e + var r, + i = t.length + for (r = 0; r < i; r += 1) t[r].layers || ((this.totalImages += 1), this.images.push(this._createImageData(t[r]))) + } + function i(t) { + this.path = t || '' + } + function a(t) { + this.assetsPath = t || '' + } + function n(t) { + for (var e = 0, r = this.images.length; e < r; ) { + if (this.images[e].assetData === t) return this.images[e].img + e += 1 + } + } + function o() { + ;((this.imagesLoadedCb = null), (this.images.length = 0)) + } + function h() { + return this.totalImages === this.loadedAssets + } + return function () { + ;((this.loadAssets = r), + (this.setAssetsPath = a), + (this.setPath = i), + (this.loaded = h), + (this.destroy = o), + (this.getImage = n), + (this._createImageData = e), + (this._imageLoaded = t), + (this.assetsPath = ''), + (this.path = ''), + (this.totalImages = 0), + (this.loadedAssets = 0), + (this.imagesLoadedCb = null), + (this.images = [])) + } + })(), + featureSupport = + ((qw = { maskType: !0 }), + (/MSIE 10/i.test(navigator.userAgent) || + /MSIE 9/i.test(navigator.userAgent) || + /rv:11.0/i.test(navigator.userAgent) || + /Edge\/\d./i.test(navigator.userAgent)) && + (qw.maskType = !1), + qw), + qw, + filtersFactory = + ((rw = {}), + (rw.createFilter = function (t) { + var e = createNS('filter') + return ( + e.setAttribute('id', t), + e.setAttribute('filterUnits', 'objectBoundingBox'), + e.setAttribute('x', '0%'), + e.setAttribute('y', '0%'), + e.setAttribute('width', '100%'), + e.setAttribute('height', '100%'), + e + ) + }), + (rw.createAlphaToLuminanceFilter = function () { + var t = createNS('feColorMatrix') + return ( + t.setAttribute('type', 'matrix'), + t.setAttribute('color-interpolation-filters', 'sRGB'), + t.setAttribute('values', '0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1'), + t + ) + }), + rw), + rw, + assetLoader = (function () { + function a(t) { + return t.response && 'object' == typeof t.response + ? t.response + : t.response && 'string' == typeof t.response + ? JSON.parse(t.response) + : t.responseText + ? JSON.parse(t.responseText) + : void 0 + } + return { + load: function (t, e, r) { + var i, + s = new XMLHttpRequest() + s.open('GET', t, !0) + try { + s.responseType = 'json' + } catch (t) {} + ;(s.send(), + (s.onreadystatechange = function () { + if (4 == s.readyState) + if (200 == s.status) ((i = a(s)), e(i)) + else + try { + ;((i = a(s)), e(i)) + } catch (t) { + r && r(t) + } + })) + }, + } + })() + function TextAnimatorProperty(t, e, r) { + ;((this._isFirstFrame = !0), + (this._hasMaskedPath = !1), + (this._frameId = -1), + (this._textData = t), + (this._renderType = e), + (this._elem = r), + (this._animatorsData = createSizedArray(this._textData.a.length)), + (this._pathData = {}), + (this._moreOptions = { alignment: {} }), + (this.renderedLetters = []), + (this.lettersChangedFlag = !1), + this.initDynamicPropertyContainer(r)) + } + function TextAnimatorDataProperty(t, e, r) { + var i = { propType: !1 }, + s = PropertyFactory.getProp, + a = e.a + ;((this.a = { + r: a.r ? s(t, a.r, 0, degToRads, r) : i, + rx: a.rx ? s(t, a.rx, 0, degToRads, r) : i, + ry: a.ry ? s(t, a.ry, 0, degToRads, r) : i, + sk: a.sk ? s(t, a.sk, 0, degToRads, r) : i, + sa: a.sa ? s(t, a.sa, 0, degToRads, r) : i, + s: a.s ? s(t, a.s, 1, 0.01, r) : i, + a: a.a ? s(t, a.a, 1, 0, r) : i, + o: a.o ? s(t, a.o, 0, 0.01, r) : i, + p: a.p ? s(t, a.p, 1, 0, r) : i, + sw: a.sw ? s(t, a.sw, 0, 0, r) : i, + sc: a.sc ? s(t, a.sc, 1, 0, r) : i, + fc: a.fc ? s(t, a.fc, 1, 0, r) : i, + fh: a.fh ? s(t, a.fh, 0, 0, r) : i, + fs: a.fs ? s(t, a.fs, 0, 0.01, r) : i, + fb: a.fb ? s(t, a.fb, 0, 0.01, r) : i, + t: a.t ? s(t, a.t, 0, 0, r) : i, + }), + (this.s = TextSelectorProp.getTextSelectorProp(t, e.s, r)), + (this.s.t = e.s.t)) + } + function LetterProps(t, e, r, i, s, a) { + ;((this.o = t), + (this.sw = e), + (this.sc = r), + (this.fc = i), + (this.m = s), + (this.p = a), + (this._mdf = { o: !0, sw: !!e, sc: !!r, fc: !!i, m: !0, p: !0 })) + } + function TextProperty(t, e) { + ;((this._frameId = initialDefaultFrame), + (this.pv = ''), + (this.v = ''), + (this.kf = !1), + (this._isFirstFrame = !0), + (this._mdf = !1), + (this.data = e), + (this.elem = t), + (this.comp = this.elem.comp), + (this.keysIndex = 0), + (this.canResize = !1), + (this.minimumFontSize = 1), + (this.effectsSequence = []), + (this.currentData = { + ascent: 0, + boxWidth: this.defaultBoxWidth, + f: '', + fStyle: '', + fWeight: '', + fc: '', + j: '', + justifyOffset: '', + l: [], + lh: 0, + lineWidths: [], + ls: '', + of: '', + s: '', + sc: '', + sw: 0, + t: 0, + tr: 0, + sz: 0, + ps: null, + fillColorAnim: !1, + strokeColorAnim: !1, + strokeWidthAnim: !1, + yOffset: 0, + finalSize: 0, + finalText: [], + finalLineHeight: 0, + __complete: !1, + }), + this.copyData(this.currentData, this.data.d.k[0].s), + this.searchProperty() || this.completeTextData(this.currentData)) + } + ;((TextAnimatorProperty.prototype.searchProperties = function () { + var t, + e, + r = this._textData.a.length, + i = PropertyFactory.getProp + for (t = 0; t < r; t += 1) ((e = this._textData.a[t]), (this._animatorsData[t] = new TextAnimatorDataProperty(this._elem, e, this))) + ;(this._textData.p && 'm' in this._textData.p + ? ((this._pathData = { + f: i(this._elem, this._textData.p.f, 0, 0, this), + l: i(this._elem, this._textData.p.l, 0, 0, this), + r: this._textData.p.r, + m: this._elem.maskManager.getMaskProperty(this._textData.p.m), + }), + (this._hasMaskedPath = !0)) + : (this._hasMaskedPath = !1), + (this._moreOptions.alignment = i(this._elem, this._textData.m.a, 1, 0, this))) + }), + (TextAnimatorProperty.prototype.getMeasures = function (t, e) { + if (((this.lettersChangedFlag = e), this._mdf || this._isFirstFrame || e || (this._hasMaskedPath && this._pathData.m._mdf))) { + this._isFirstFrame = !1 + var r, + i, + s, + a, + n, + o, + h, + l, + p, + m, + f, + c, + d, + u, + y, + g, + v, + b, + E, + x = this._moreOptions.alignment.v, + P = this._animatorsData, + S = this._textData, + _ = this.mHelper, + A = this._renderType, + C = this.renderedLetters.length, + T = (this.data, t.l) + if (this._hasMaskedPath) { + if (((E = this._pathData.m), !this._pathData.n || this._pathData._mdf)) { + var k, + M = E.v + for (this._pathData.r && (M = M.reverse()), n = { tLength: 0, segments: [] }, a = M._length - 1, s = g = 0; s < a; s += 1) + ((k = bez.buildBezierData( + M.v[s], + M.v[s + 1], + [M.o[s][0] - M.v[s][0], M.o[s][1] - M.v[s][1]], + [M.i[s + 1][0] - M.v[s + 1][0], M.i[s + 1][1] - M.v[s + 1][1]], + )), + (n.tLength += k.segmentLength), + n.segments.push(k), + (g += k.segmentLength)) + ;((s = a), + E.v.c && + ((k = bez.buildBezierData( + M.v[s], + M.v[0], + [M.o[s][0] - M.v[s][0], M.o[s][1] - M.v[s][1]], + [M.i[0][0] - M.v[0][0], M.i[0][1] - M.v[0][1]], + )), + (n.tLength += k.segmentLength), + n.segments.push(k), + (g += k.segmentLength)), + (this._pathData.pi = n)) + } + if (((n = this._pathData.pi), (o = this._pathData.f.v), (m = 1), (p = !(l = f = 0)), (u = n.segments), o < 0 && E.v.c)) + for (n.tLength < Math.abs(o) && (o = -Math.abs(o) % n.tLength), m = (d = u[(f = u.length - 1)].points).length - 1; o < 0; ) + ((o += d[m].partialLength), (m -= 1) < 0 && (m = (d = u[(f -= 1)].points).length - 1)) + ;((c = (d = u[f].points)[m - 1]), (y = (h = d[m]).partialLength)) + } + ;((a = T.length), (i = r = 0)) + var D, + w, + F, + I, + V = 1.2 * t.finalSize * 0.714, + R = !0 + F = P.length + var B, + L, + G, + z, + N, + O, + H, + j, + q, + W, + Y, + X, + $, + K = -1, + Z = o, + J = f, + Q = m, + U = -1, + tt = '', + et = this.defaultPropsArray + if (2 === t.j || 1 === t.j) { + var rt = 0, + it = 0, + st = 2 === t.j ? -0.5 : -1, + at = 0, + nt = !0 + for (s = 0; s < a; s += 1) + if (T[s].n) { + for (rt && (rt += it); at < s; ) ((T[at].animatorJustifyOffset = rt), (at += 1)) + nt = !(rt = 0) + } else { + for (w = 0; w < F; w += 1) + (D = P[w].a).t.propType && + (nt && 2 === t.j && (it += D.t.v * st), + (B = P[w].s.getMult(T[s].anIndexes[w], S.a[w].s.totalChars)).length ? (rt += D.t.v * B[0] * st) : (rt += D.t.v * B * st)) + nt = !1 + } + for (rt && (rt += it); at < s; ) ((T[at].animatorJustifyOffset = rt), (at += 1)) + } + for (s = 0; s < a; s += 1) { + if ((_.reset(), (N = 1), T[s].n)) + ((r = 0), + (i += t.yOffset), + (i += R ? 1 : 0), + (o = Z), + (R = !1), + 0, + this._hasMaskedPath && ((m = Q), (c = (d = u[(f = J)].points)[m - 1]), (y = (h = d[m]).partialLength), (l = 0)), + ($ = W = X = tt = ''), + (et = this.defaultPropsArray)) + else { + if (this._hasMaskedPath) { + if (U !== T[s].line) { + switch (t.j) { + case 1: + o += g - t.lineWidths[T[s].line] + break + case 2: + o += (g - t.lineWidths[T[s].line]) / 2 + } + U = T[s].line + } + ;(K !== T[s].ind && (T[K] && (o += T[K].extra), (o += T[s].an / 2), (K = T[s].ind)), (o += (x[0] * T[s].an) / 200)) + var ot = 0 + for (w = 0; w < F; w += 1) + ((D = P[w].a).p.propType && + ((B = P[w].s.getMult(T[s].anIndexes[w], S.a[w].s.totalChars)).length ? (ot += D.p.v[0] * B[0]) : (ot += D.p.v[0] * B)), + D.a.propType && + ((B = P[w].s.getMult(T[s].anIndexes[w], S.a[w].s.totalChars)).length ? (ot += D.a.v[0] * B[0]) : (ot += D.a.v[0] * B))) + for (p = !0; p; ) + o + ot <= l + y || !d + ? ((v = (o + ot - l) / h.partialLength), + (G = c.point[0] + (h.point[0] - c.point[0]) * v), + (z = c.point[1] + (h.point[1] - c.point[1]) * v), + _.translate((-x[0] * T[s].an) / 200, (-x[1] * V) / 100), + (p = !1)) + : d && + ((l += h.partialLength), + (m += 1) >= d.length && + ((m = 0), (d = u[(f += 1)] ? u[f].points : E.v.c ? u[(f = m = 0)].points : ((l -= h.partialLength), null))), + d && ((c = h), (y = (h = d[m]).partialLength))) + ;((L = T[s].an / 2 - T[s].add), _.translate(-L, 0, 0)) + } else ((L = T[s].an / 2 - T[s].add), _.translate(-L, 0, 0), _.translate((-x[0] * T[s].an) / 200, (-x[1] * V) / 100, 0)) + for (T[s].l / 2, w = 0; w < F; w += 1) + (D = P[w].a).t.propType && + ((B = P[w].s.getMult(T[s].anIndexes[w], S.a[w].s.totalChars)), + (0 === r && 0 === t.j) || + (this._hasMaskedPath ? (B.length ? (o += D.t.v * B[0]) : (o += D.t.v * B)) : B.length ? (r += D.t.v * B[0]) : (r += D.t.v * B))) + for ( + T[s].l / 2, + t.strokeWidthAnim && (H = t.sw || 0), + t.strokeColorAnim && (O = t.sc ? [t.sc[0], t.sc[1], t.sc[2]] : [0, 0, 0]), + t.fillColorAnim && t.fc && (j = [t.fc[0], t.fc[1], t.fc[2]]), + w = 0; + w < F; + w += 1 + ) + (D = P[w].a).a.propType && + ((B = P[w].s.getMult(T[s].anIndexes[w], S.a[w].s.totalChars)).length + ? _.translate(-D.a.v[0] * B[0], -D.a.v[1] * B[1], D.a.v[2] * B[2]) + : _.translate(-D.a.v[0] * B, -D.a.v[1] * B, D.a.v[2] * B)) + for (w = 0; w < F; w += 1) + (D = P[w].a).s.propType && + ((B = P[w].s.getMult(T[s].anIndexes[w], S.a[w].s.totalChars)).length + ? _.scale(1 + (D.s.v[0] - 1) * B[0], 1 + (D.s.v[1] - 1) * B[1], 1) + : _.scale(1 + (D.s.v[0] - 1) * B, 1 + (D.s.v[1] - 1) * B, 1)) + for (w = 0; w < F; w += 1) { + if ( + ((D = P[w].a), + (B = P[w].s.getMult(T[s].anIndexes[w], S.a[w].s.totalChars)), + D.sk.propType && (B.length ? _.skewFromAxis(-D.sk.v * B[0], D.sa.v * B[1]) : _.skewFromAxis(-D.sk.v * B, D.sa.v * B)), + D.r.propType && (B.length ? _.rotateZ(-D.r.v * B[2]) : _.rotateZ(-D.r.v * B)), + D.ry.propType && (B.length ? _.rotateY(D.ry.v * B[1]) : _.rotateY(D.ry.v * B)), + D.rx.propType && (B.length ? _.rotateX(D.rx.v * B[0]) : _.rotateX(D.rx.v * B)), + D.o.propType && (B.length ? (N += (D.o.v * B[0] - N) * B[0]) : (N += (D.o.v * B - N) * B)), + t.strokeWidthAnim && D.sw.propType && (B.length ? (H += D.sw.v * B[0]) : (H += D.sw.v * B)), + t.strokeColorAnim && D.sc.propType) + ) + for (q = 0; q < 3; q += 1) B.length ? (O[q] = O[q] + (D.sc.v[q] - O[q]) * B[0]) : (O[q] = O[q] + (D.sc.v[q] - O[q]) * B) + if (t.fillColorAnim && t.fc) { + if (D.fc.propType) + for (q = 0; q < 3; q += 1) B.length ? (j[q] = j[q] + (D.fc.v[q] - j[q]) * B[0]) : (j[q] = j[q] + (D.fc.v[q] - j[q]) * B) + ;(D.fh.propType && (j = B.length ? addHueToRGB(j, D.fh.v * B[0]) : addHueToRGB(j, D.fh.v * B)), + D.fs.propType && (j = B.length ? addSaturationToRGB(j, D.fs.v * B[0]) : addSaturationToRGB(j, D.fs.v * B)), + D.fb.propType && (j = B.length ? addBrightnessToRGB(j, D.fb.v * B[0]) : addBrightnessToRGB(j, D.fb.v * B))) + } + } + for (w = 0; w < F; w += 1) + (D = P[w].a).p.propType && + ((B = P[w].s.getMult(T[s].anIndexes[w], S.a[w].s.totalChars)), + this._hasMaskedPath + ? B.length + ? _.translate(0, D.p.v[1] * B[0], -D.p.v[2] * B[1]) + : _.translate(0, D.p.v[1] * B, -D.p.v[2] * B) + : B.length + ? _.translate(D.p.v[0] * B[0], D.p.v[1] * B[1], -D.p.v[2] * B[2]) + : _.translate(D.p.v[0] * B, D.p.v[1] * B, -D.p.v[2] * B)) + if ( + (t.strokeWidthAnim && (W = H < 0 ? 0 : H), + t.strokeColorAnim && (Y = 'rgb(' + Math.round(255 * O[0]) + ',' + Math.round(255 * O[1]) + ',' + Math.round(255 * O[2]) + ')'), + t.fillColorAnim && t.fc && (X = 'rgb(' + Math.round(255 * j[0]) + ',' + Math.round(255 * j[1]) + ',' + Math.round(255 * j[2]) + ')'), + this._hasMaskedPath) + ) { + if ((_.translate(0, -t.ls), _.translate(0, (x[1] * V) / 100 + i, 0), S.p.p)) { + b = (h.point[1] - c.point[1]) / (h.point[0] - c.point[0]) + var ht = (180 * Math.atan(b)) / Math.PI + ;(h.point[0] < c.point[0] && (ht += 180), _.rotate((-ht * Math.PI) / 180)) + } + ;(_.translate(G, z, 0), + (o -= (x[0] * T[s].an) / 200), + T[s + 1] && K !== T[s + 1].ind && ((o += T[s].an / 2), (o += (t.tr / 1e3) * t.finalSize))) + } else { + switch ((_.translate(r, i, 0), t.ps && _.translate(t.ps[0], t.ps[1] + t.ascent, 0), t.j)) { + case 1: + _.translate(T[s].animatorJustifyOffset + t.justifyOffset + (t.boxWidth - t.lineWidths[T[s].line]), 0, 0) + break + case 2: + _.translate(T[s].animatorJustifyOffset + t.justifyOffset + (t.boxWidth - t.lineWidths[T[s].line]) / 2, 0, 0) + } + ;(_.translate(0, -t.ls), + _.translate(L, 0, 0), + _.translate((x[0] * T[s].an) / 200, (x[1] * V) / 100, 0), + (r += T[s].l + (t.tr / 1e3) * t.finalSize)) + } + ;('html' === A + ? (tt = _.toCSS()) + : 'svg' === A + ? (tt = _.to2dCSS()) + : (et = [ + _.props[0], + _.props[1], + _.props[2], + _.props[3], + _.props[4], + _.props[5], + _.props[6], + _.props[7], + _.props[8], + _.props[9], + _.props[10], + _.props[11], + _.props[12], + _.props[13], + _.props[14], + _.props[15], + ]), + ($ = N)) + } + this.lettersChangedFlag = + C <= s + ? ((I = new LetterProps($, W, Y, X, tt, et)), this.renderedLetters.push(I), (C += 1), !0) + : (I = this.renderedLetters[s]).update($, W, Y, X, tt, et) || this.lettersChangedFlag + } + } + }), + (TextAnimatorProperty.prototype.getValue = function () { + this._elem.globalData.frameId !== this._frameId && ((this._frameId = this._elem.globalData.frameId), this.iterateDynamicProperties()) + }), + (TextAnimatorProperty.prototype.mHelper = new Matrix()), + (TextAnimatorProperty.prototype.defaultPropsArray = []), + extendPrototype([DynamicPropertyContainer], TextAnimatorProperty), + (LetterProps.prototype.update = function (t, e, r, i, s, a) { + ;((this._mdf.o = !1), (this._mdf.sw = !1), (this._mdf.sc = !1), (this._mdf.fc = !1), (this._mdf.m = !1)) + var n = (this._mdf.p = !1) + return ( + this.o !== t && ((this.o = t), (n = this._mdf.o = !0)), + this.sw !== e && ((this.sw = e), (n = this._mdf.sw = !0)), + this.sc !== r && ((this.sc = r), (n = this._mdf.sc = !0)), + this.fc !== i && ((this.fc = i), (n = this._mdf.fc = !0)), + this.m !== s && ((this.m = s), (n = this._mdf.m = !0)), + !a.length || + (this.p[0] === a[0] && this.p[1] === a[1] && this.p[4] === a[4] && this.p[5] === a[5] && this.p[12] === a[12] && this.p[13] === a[13]) || + ((this.p = a), (n = this._mdf.p = !0)), + n + ) + }), + (TextProperty.prototype.defaultBoxWidth = [0, 0]), + (TextProperty.prototype.copyData = function (t, e) { + for (var r in e) e.hasOwnProperty(r) && (t[r] = e[r]) + return t + }), + (TextProperty.prototype.setCurrentData = function (t) { + ;(t.__complete || this.completeTextData(t), + (this.currentData = t), + (this.currentData.boxWidth = this.currentData.boxWidth || this.defaultBoxWidth), + (this._mdf = !0)) + }), + (TextProperty.prototype.searchProperty = function () { + return this.searchKeyframes() + }), + (TextProperty.prototype.searchKeyframes = function () { + return ((this.kf = 1 < this.data.d.k.length), this.kf && this.addEffect(this.getKeyframeValue.bind(this)), this.kf) + }), + (TextProperty.prototype.addEffect = function (t) { + ;(this.effectsSequence.push(t), this.elem.addDynamicProperty(this)) + }), + (TextProperty.prototype.getValue = function (t) { + if ((this.elem.globalData.frameId !== this.frameId && this.effectsSequence.length) || t) { + this.currentData.t = this.data.d.k[this.keysIndex].s.t + var e = this.currentData, + r = this.keysIndex + if (this.lock) this.setCurrentData(this.currentData) + else { + ;((this.lock = !0), (this._mdf = !1)) + var i, + s = this.effectsSequence.length, + a = t || this.data.d.k[this.keysIndex].s + for (i = 0; i < s; i += 1) a = r !== this.keysIndex ? this.effectsSequence[i](a, a.t) : this.effectsSequence[i](this.currentData, a.t) + ;(e !== a && this.setCurrentData(a), + (this.pv = this.v = this.currentData), + (this.lock = !1), + (this.frameId = this.elem.globalData.frameId)) + } + } + }), + (TextProperty.prototype.getKeyframeValue = function () { + for (var t = this.data.d.k, e = this.elem.comp.renderedFrame, r = 0, i = t.length; r <= i - 1 && (t[r].s, !(r === i - 1 || t[r + 1].t > e)); ) + r += 1 + return (this.keysIndex !== r && (this.keysIndex = r), this.data.d.k[this.keysIndex].s) + }), + (TextProperty.prototype.buildFinalText = function (t) { + for (var e, r = FontManager.getCombinedCharacterCodes(), i = [], s = 0, a = t.length; s < a; ) + ((e = t.charCodeAt(s)), + -1 !== r.indexOf(e) + ? (i[i.length - 1] += t.charAt(s)) + : 55296 <= e && e <= 56319 && 56320 <= (e = t.charCodeAt(s + 1)) && e <= 57343 + ? (i.push(t.substr(s, 2)), ++s) + : i.push(t.charAt(s)), + (s += 1)) + return i + }), + (TextProperty.prototype.completeTextData = function (t) { + t.__complete = !0 + var e, + r, + i, + s, + a, + n, + o, + h = this.elem.globalData.fontManager, + l = this.data, + p = [], + m = 0, + f = l.m.g, + c = 0, + d = 0, + u = 0, + y = [], + g = 0, + v = 0, + b = h.getFontByName(t.f), + E = 0, + x = b.fStyle ? b.fStyle.split(' ') : [], + P = 'normal', + S = 'normal' + for (r = x.length, e = 0; e < r; e += 1) + switch (x[e].toLowerCase()) { + case 'italic': + S = 'italic' + break + case 'bold': + P = '700' + break + case 'black': + P = '900' + break + case 'medium': + P = '500' + break + case 'regular': + case 'normal': + P = '400' + break + case 'light': + case 'thin': + P = '200' + } + ;((t.fWeight = b.fWeight || P), + (t.fStyle = S), + (t.finalSize = t.s), + (t.finalText = this.buildFinalText(t.t)), + (r = t.finalText.length), + (t.finalLineHeight = t.lh)) + var _, + A = (t.tr / 1e3) * t.finalSize + if (t.sz) + for (var C, T, k = !0, M = t.sz[0], D = t.sz[1]; k; ) { + ;((g = C = 0), (r = (T = this.buildFinalText(t.t)).length), (A = (t.tr / 1e3) * t.finalSize)) + var w = -1 + for (e = 0; e < r; e += 1) + ((_ = T[e].charCodeAt(0)), + (i = !1), + ' ' === T[e] ? (w = e) : (13 !== _ && 3 !== _) || ((i = !(g = 0)), (C += t.finalLineHeight || 1.2 * t.finalSize)), + M < + g + + (E = h.chars + ? ((o = h.getCharData(T[e], b.fStyle, b.fFamily)), i ? 0 : (o.w * t.finalSize) / 100) + : h.measureText(T[e], t.f, t.finalSize)) && ' ' !== T[e] + ? (-1 === w ? (r += 1) : (e = w), + (C += t.finalLineHeight || 1.2 * t.finalSize), + T.splice(e, w === e ? 1 : 0, '\r'), + (w = -1), + (g = 0)) + : ((g += E), (g += A))) + ;((C += (b.ascent * t.finalSize) / 100), + this.canResize && t.finalSize > this.minimumFontSize && D < C + ? ((t.finalSize -= 1), (t.finalLineHeight = (t.finalSize * t.lh) / t.s)) + : ((t.finalText = T), (r = t.finalText.length), (k = !1))) + } + g = -A + var F, + I = (E = 0) + for (e = 0; e < r; e += 1) + if ( + ((i = !1), + (_ = (F = t.finalText[e]).charCodeAt(0)), + ' ' === F + ? (s = '\xa0') + : 13 === _ || 3 === _ + ? ((I = 0), y.push(g), (v = v < g ? g : v), (g = -2 * A), (i = !(s = '')), (u += 1)) + : (s = t.finalText[e]), + (E = h.chars + ? ((o = h.getCharData(F, b.fStyle, h.getFontByName(t.f).fFamily)), i ? 0 : (o.w * t.finalSize) / 100) + : h.measureText(s, t.f, t.finalSize)), + ' ' === F ? (I += E + A) : ((g += E + A + I), (I = 0)), + p.push({ l: E, an: E, add: c, n: i, anIndexes: [], val: s, line: u, animatorJustifyOffset: 0 }), + 2 == f) + ) { + if (((c += E), '' === s || '\xa0' === s || e === r - 1)) { + for (('' !== s && '\xa0' !== s) || (c -= E); d <= e; ) ((p[d].an = c), (p[d].ind = m), (p[d].extra = E), (d += 1)) + ;((m += 1), (c = 0)) + } + } else if (3 == f) { + if (((c += E), '' === s || e === r - 1)) { + for ('' === s && (c -= E); d <= e; ) ((p[d].an = c), (p[d].ind = m), (p[d].extra = E), (d += 1)) + ;((c = 0), (m += 1)) + } + } else ((p[m].ind = m), (p[m].extra = 0), (m += 1)) + if (((t.l = p), (v = v < g ? g : v), y.push(g), t.sz)) ((t.boxWidth = t.sz[0]), (t.justifyOffset = 0)) + else + switch (((t.boxWidth = v), t.j)) { + case 1: + t.justifyOffset = -t.boxWidth + break + case 2: + t.justifyOffset = -t.boxWidth / 2 + break + default: + t.justifyOffset = 0 + } + t.lineWidths = y + var V, + R, + B = l.a + n = B.length + var L, + G, + z = [] + for (a = 0; a < n; a += 1) { + for ( + (V = B[a]).a.sc && (t.strokeColorAnim = !0), + V.a.sw && (t.strokeWidthAnim = !0), + (V.a.fc || V.a.fh || V.a.fs || V.a.fb) && (t.fillColorAnim = !0), + G = 0, + L = V.s.b, + e = 0; + e < r; + e += 1 + ) + (((R = p[e]).anIndexes[a] = G), + ((1 == L && '' !== R.val) || + (2 == L && '' !== R.val && '\xa0' !== R.val) || + (3 == L && (R.n || '\xa0' == R.val || e == r - 1)) || + (4 == L && (R.n || e == r - 1))) && + (1 === V.s.rn && z.push(G), (G += 1))) + l.a[a].s.totalChars = G + var N, + O = -1 + if (1 === V.s.rn) + for (e = 0; e < r; e += 1) + (O != (R = p[e]).anIndexes[a] && ((O = R.anIndexes[a]), (N = z.splice(Math.floor(Math.random() * z.length), 1)[0])), + (R.anIndexes[a] = N)) + } + ;((t.yOffset = t.finalLineHeight || 1.2 * t.finalSize), (t.ls = t.ls || 0), (t.ascent = (b.ascent * t.finalSize) / 100)) + }), + (TextProperty.prototype.updateDocumentData = function (t, e) { + e = void 0 === e ? this.keysIndex : e + var r = this.copyData({}, this.data.d.k[e].s) + ;((r = this.copyData(r, t)), (this.data.d.k[e].s = r), this.recalculate(e), this.elem.addDynamicProperty(this)) + }), + (TextProperty.prototype.recalculate = function (t) { + var e = this.data.d.k[t].s + ;((e.__complete = !1), (this.keysIndex = 0), (this._isFirstFrame = !0), this.getValue(e)) + }), + (TextProperty.prototype.canResizeFont = function (t) { + ;((this.canResize = t), this.recalculate(this.keysIndex), this.elem.addDynamicProperty(this)) + }), + (TextProperty.prototype.setMinimumFontSize = function (t) { + ;((this.minimumFontSize = Math.floor(t) || 1), this.recalculate(this.keysIndex), this.elem.addDynamicProperty(this)) + })) + var TextSelectorProp = (function () { + var l = Math.max, + p = Math.min, + m = Math.floor + function i(t, e) { + ;((this._currentTextLength = -1), + (this.k = !1), + (this.data = e), + (this.elem = t), + (this.comp = t.comp), + (this.finalS = 0), + (this.finalE = 0), + this.initDynamicPropertyContainer(t), + (this.s = PropertyFactory.getProp(t, e.s || { k: 0 }, 0, 0, this)), + (this.e = 'e' in e ? PropertyFactory.getProp(t, e.e, 0, 0, this) : { v: 100 }), + (this.o = PropertyFactory.getProp(t, e.o || { k: 0 }, 0, 0, this)), + (this.xe = PropertyFactory.getProp(t, e.xe || { k: 0 }, 0, 0, this)), + (this.ne = PropertyFactory.getProp(t, e.ne || { k: 0 }, 0, 0, this)), + (this.a = PropertyFactory.getProp(t, e.a, 0, 0.01, this)), + this.dynamicProperties.length || this.getValue()) + } + return ( + (i.prototype = { + getMult: function (t) { + this._currentTextLength !== this.elem.textProperty.currentData.l.length && this.getValue() + var e = BezierFactory.getBezierEasing(this.ne.v / 100, 0, 1 - this.xe.v / 100, 1).get, + r = 0, + i = this.finalS, + s = this.finalE, + a = this.data.sh + if (2 == a) r = e((r = s === i ? (s <= t ? 1 : 0) : l(0, p(0.5 / (s - i) + (t - i) / (s - i), 1)))) + else if (3 == a) r = e((r = s === i ? (s <= t ? 0 : 1) : 1 - l(0, p(0.5 / (s - i) + (t - i) / (s - i), 1)))) + else if (4 == a) + (s === i ? (r = 0) : (r = l(0, p(0.5 / (s - i) + (t - i) / (s - i), 1))) < 0.5 ? (r *= 2) : (r = 1 - 2 * (r - 0.5)), (r = e(r))) + else if (5 == a) { + if (s === i) r = 0 + else { + var n = s - i, + o = -n / 2 + (t = p(l(0, t + 0.5 - i), s - i)), + h = n / 2 + r = Math.sqrt(1 - (o * o) / (h * h)) + } + r = e(r) + } else + r = + 6 == a + ? e((r = s === i ? 0 : ((t = p(l(0, t + 0.5 - i), s - i)), (1 + Math.cos(Math.PI + (2 * Math.PI * t) / (s - i))) / 2))) + : (t >= m(i) && (r = t - i < 0 ? 1 - (i - t) : l(0, p(s - t, 1))), e(r)) + return r * this.a.v + }, + getValue: function (t) { + ;(this.iterateDynamicProperties(), + (this._mdf = t || this._mdf), + (this._currentTextLength = this.elem.textProperty.currentData.l.length || 0), + t && 2 === this.data.r && (this.e.v = this._currentTextLength)) + var e = 2 === this.data.r ? 1 : 100 / this.data.totalChars, + r = this.o.v / e, + i = this.s.v / e + r, + s = this.e.v / e + r + if (s < i) { + var a = i + ;((i = s), (s = a)) + } + ;((this.finalS = i), (this.finalE = s)) + }, + }), + extendPrototype([DynamicPropertyContainer], i), + { + getTextSelectorProp: function (t, e, r) { + return new i(t, e, r) + }, + } + ) + })(), + pool_factory = function (t, e, r, i) { + var s = 0, + a = t, + n = createSizedArray(a) + function o() { + return s ? n[(s -= 1)] : e() + } + return { + newElement: o, + release: function (t) { + ;(s === a && ((n = pooling.double(n)), (a *= 2)), r && r(t), (n[s] = t), (s += 1)) + }, + } + }, + pooling = { + double: function (t) { + return t.concat(createSizedArray(t.length)) + }, + }, + point_pool = pool_factory(8, function () { + return createTypedArray('float32', 2) + }), + shape_pool = + ((EA = pool_factory( + 4, + function () { + return new ShapePath() + }, + function (t) { + var e, + r = t._length + for (e = 0; e < r; e += 1) + (point_pool.release(t.v[e]), point_pool.release(t.i[e]), point_pool.release(t.o[e]), (t.v[e] = null), (t.i[e] = null), (t.o[e] = null)) + ;((t._length = 0), (t.c = !1)) + }, + )), + (EA.clone = function (t) { + var e, + r = EA.newElement(), + i = void 0 === t._length ? t.v.length : t._length + for (r.setLength(i), r.c = t.c, e = 0; e < i; e += 1) r.setTripleAt(t.v[e][0], t.v[e][1], t.o[e][0], t.o[e][1], t.i[e][0], t.i[e][1], e) + return r + }), + EA), + EA, + shapeCollection_pool = + ((NA = { + newShapeCollection: function () { + var t + t = OA ? QA[(OA -= 1)] : new ShapeCollection() + return t + }, + release: function (t) { + var e, + r = t._length + for (e = 0; e < r; e += 1) shape_pool.release(t.shapes[e]) + ;((t._length = 0), OA === PA && ((QA = pooling.double(QA)), (PA *= 2))) + ;((QA[OA] = t), (OA += 1)) + }, + }), + (OA = 0), + (PA = 4), + (QA = createSizedArray(PA)), + NA), + NA, + OA, + PA, + QA, + segments_length_pool = pool_factory( + 8, + function () { + return { lengths: [], totalLength: 0 } + }, + function (t) { + var e, + r = t.lengths.length + for (e = 0; e < r; e += 1) bezier_length_pool.release(t.lengths[e]) + t.lengths.length = 0 + }, + ), + bezier_length_pool = pool_factory(8, function () { + return { + addedLength: 0, + percents: createTypedArray('float32', defaultCurveSegments), + lengths: createTypedArray('float32', defaultCurveSegments), + } + }) + function BaseRenderer() {} + function SVGRenderer(t, e) { + ;((this.animationItem = t), (this.layers = null), (this.renderedFrame = -1), (this.svgElement = createNS('svg'))) + var r = '' + if (e && e.title) { + var i = createNS('title'), + s = createElementID() + ;(i.setAttribute('id', s), (i.textContent = e.title), this.svgElement.appendChild(i), (r += s)) + } + if (e && e.description) { + var a = createNS('desc'), + n = createElementID() + ;(a.setAttribute('id', n), (a.textContent = e.description), this.svgElement.appendChild(a), (r += ' ' + n)) + } + r && this.svgElement.setAttribute('aria-labelledby', r) + var o = createNS('defs') + this.svgElement.appendChild(o) + var h = createNS('g') + ;(this.svgElement.appendChild(h), + (this.layerElement = h), + (this.renderConfig = { + preserveAspectRatio: (e && e.preserveAspectRatio) || 'xMidYMid meet', + imagePreserveAspectRatio: (e && e.imagePreserveAspectRatio) || 'xMidYMid slice', + progressiveLoad: (e && e.progressiveLoad) || !1, + hideOnTransparent: !e || !1 !== e.hideOnTransparent, + viewBoxOnly: (e && e.viewBoxOnly) || !1, + viewBoxSize: (e && e.viewBoxSize) || !1, + className: (e && e.className) || '', + focusable: e && e.focusable, + }), + (this.globalData = { _mdf: !1, frameNum: -1, defs: o, renderConfig: this.renderConfig }), + (this.elements = []), + (this.pendingElements = []), + (this.destroyed = !1), + (this.rendererType = 'svg')) + } + function CanvasRenderer(t, e) { + ;((this.animationItem = t), + (this.renderConfig = { + clearCanvas: !e || void 0 === e.clearCanvas || e.clearCanvas, + context: (e && e.context) || null, + progressiveLoad: (e && e.progressiveLoad) || !1, + preserveAspectRatio: (e && e.preserveAspectRatio) || 'xMidYMid meet', + imagePreserveAspectRatio: (e && e.imagePreserveAspectRatio) || 'xMidYMid slice', + className: (e && e.className) || '', + }), + (this.renderConfig.dpr = (e && e.dpr) || 1), + this.animationItem.wrapper && (this.renderConfig.dpr = (e && e.dpr) || window.devicePixelRatio || 1), + (this.renderedFrame = -1), + (this.globalData = { frameNum: -1, _mdf: !1, renderConfig: this.renderConfig, currentGlobalAlpha: -1 }), + (this.contextData = new CVContextData()), + (this.elements = []), + (this.pendingElements = []), + (this.transformMat = new Matrix()), + (this.completeLayers = !1), + (this.rendererType = 'canvas')) + } + function HybridRenderer(t, e) { + ;((this.animationItem = t), + (this.layers = null), + (this.renderedFrame = -1), + (this.renderConfig = { + className: (e && e.className) || '', + imagePreserveAspectRatio: (e && e.imagePreserveAspectRatio) || 'xMidYMid slice', + hideOnTransparent: !e || !1 !== e.hideOnTransparent, + }), + (this.globalData = { _mdf: !1, frameNum: -1, renderConfig: this.renderConfig }), + (this.pendingElements = []), + (this.elements = []), + (this.threeDElements = []), + (this.destroyed = !1), + (this.camera = null), + (this.supports3d = !0), + (this.rendererType = 'html')) + } + function MaskElement(t, e, r) { + ;((this.data = t), + (this.element = e), + (this.globalData = r), + (this.storedData = []), + (this.masksProperties = this.data.masksProperties || []), + (this.maskElement = null)) + var i, + s = this.globalData.defs, + a = this.masksProperties ? this.masksProperties.length : 0 + ;((this.viewData = createSizedArray(a)), (this.solidPath = '')) + var n, + o, + h, + l, + p, + m, + f, + c = this.masksProperties, + d = 0, + u = [], + y = createElementID(), + g = 'clipPath', + v = 'clip-path' + for (i = 0; i < a; i++) + if ( + ((('a' !== c[i].mode && 'n' !== c[i].mode) || c[i].inv || 100 !== c[i].o.k || c[i].o.x) && (v = g = 'mask'), + ('s' != c[i].mode && 'i' != c[i].mode) || 0 !== d + ? (l = null) + : ((l = createNS('rect')).setAttribute('fill', '#ffffff'), + l.setAttribute('width', this.element.comp.data.w || 0), + l.setAttribute('height', this.element.comp.data.h || 0), + u.push(l)), + (n = createNS('path')), + 'n' != c[i].mode) + ) { + var b + if ( + ((d += 1), + n.setAttribute('fill', 's' === c[i].mode ? '#000000' : '#ffffff'), + n.setAttribute('clip-rule', 'nonzero'), + 0 !== c[i].x.k + ? ((v = g = 'mask'), + (f = PropertyFactory.getProp(this.element, c[i].x, 0, null, this.element)), + (b = createElementID()), + (p = createNS('filter')).setAttribute('id', b), + (m = createNS('feMorphology')).setAttribute('operator', 'erode'), + m.setAttribute('in', 'SourceGraphic'), + m.setAttribute('radius', '0'), + p.appendChild(m), + s.appendChild(p), + n.setAttribute('stroke', 's' === c[i].mode ? '#000000' : '#ffffff')) + : (f = m = null), + (this.storedData[i] = { elem: n, x: f, expan: m, lastPath: '', lastOperator: '', filterId: b, lastRadius: 0 }), + 'i' == c[i].mode) + ) { + h = u.length + var E = createNS('g') + for (o = 0; o < h; o += 1) E.appendChild(u[o]) + var x = createNS('mask') + ;(x.setAttribute('mask-type', 'alpha'), + x.setAttribute('id', y + '_' + d), + x.appendChild(n), + s.appendChild(x), + E.setAttribute('mask', 'url(' + locationHref + '#' + y + '_' + d + ')'), + (u.length = 0), + u.push(E)) + } else u.push(n) + ;(c[i].inv && !this.solidPath && (this.solidPath = this.createLayerSolidPath()), + (this.viewData[i] = { + elem: n, + lastPath: '', + op: PropertyFactory.getProp(this.element, c[i].o, 0, 0.01, this.element), + prop: ShapePropertyFactory.getShapeProp(this.element, c[i], 3), + invRect: l, + }), + this.viewData[i].prop.k || this.drawPath(c[i], this.viewData[i].prop.v, this.viewData[i])) + } else + ((this.viewData[i] = { + op: PropertyFactory.getProp(this.element, c[i].o, 0, 0.01, this.element), + prop: ShapePropertyFactory.getShapeProp(this.element, c[i], 3), + elem: n, + lastPath: '', + }), + s.appendChild(n)) + for (this.maskElement = createNS(g), a = u.length, i = 0; i < a; i += 1) this.maskElement.appendChild(u[i]) + ;(0 < d && + (this.maskElement.setAttribute('id', y), + this.element.maskedElement.setAttribute(v, 'url(' + locationHref + '#' + y + ')'), + s.appendChild(this.maskElement)), + this.viewData.length && this.element.addRenderableComponent(this)) + } + function HierarchyElement() {} + function FrameElement() {} + function TransformElement() {} + function RenderableElement() {} + function RenderableDOMElement() {} + function ProcessedElement(t, e) { + ;((this.elem = t), (this.pos = e)) + } + function SVGStyleData(t, e) { + ;((this.data = t), + (this.type = t.ty), + (this.d = ''), + (this.lvl = e), + (this._mdf = !1), + (this.closed = !0 === t.hd), + (this.pElem = createNS('path')), + (this.msElem = null)) + } + function SVGShapeData(t, e, r) { + ;((this.caches = []), (this.styles = []), (this.transformers = t), (this.lStr = ''), (this.sh = r), (this.lvl = e), (this._isAnimated = !!r.k)) + for (var i = 0, s = t.length; i < s; ) { + if (t[i].mProps.dynamicProperties.length) { + this._isAnimated = !0 + break + } + i += 1 + } + } + function SVGTransformData(t, e, r) { + ;((this.transform = { mProps: t, op: e, container: r }), + (this.elements = []), + (this._isAnimated = this.transform.mProps.dynamicProperties.length || this.transform.op.effectsSequence.length)) + } + function SVGStrokeStyleData(t, e, r) { + ;(this.initDynamicPropertyContainer(t), + (this.getValue = this.iterateDynamicProperties), + (this.o = PropertyFactory.getProp(t, e.o, 0, 0.01, this)), + (this.w = PropertyFactory.getProp(t, e.w, 0, null, this)), + (this.d = new DashProperty(t, e.d || {}, 'svg', this)), + (this.c = PropertyFactory.getProp(t, e.c, 1, 255, this)), + (this.style = r), + (this._isAnimated = !!this._isAnimated)) + } + function SVGFillStyleData(t, e, r) { + ;(this.initDynamicPropertyContainer(t), + (this.getValue = this.iterateDynamicProperties), + (this.o = PropertyFactory.getProp(t, e.o, 0, 0.01, this)), + (this.c = PropertyFactory.getProp(t, e.c, 1, 255, this)), + (this.style = r)) + } + function SVGGradientFillStyleData(t, e, r) { + ;(this.initDynamicPropertyContainer(t), (this.getValue = this.iterateDynamicProperties), this.initGradientData(t, e, r)) + } + function SVGGradientStrokeStyleData(t, e, r) { + ;(this.initDynamicPropertyContainer(t), + (this.getValue = this.iterateDynamicProperties), + (this.w = PropertyFactory.getProp(t, e.w, 0, null, this)), + (this.d = new DashProperty(t, e.d || {}, 'svg', this)), + this.initGradientData(t, e, r), + (this._isAnimated = !!this._isAnimated)) + } + function ShapeGroupData() { + ;((this.it = []), (this.prevViewData = []), (this.gr = createNS('g'))) + } + ;((BaseRenderer.prototype.checkLayers = function (t) { + var e, + r, + i = this.layers.length + for (this.completeLayers = !0, e = i - 1; 0 <= e; e--) + (this.elements[e] || ((r = this.layers[e]).ip - r.st <= t - this.layers[e].st && r.op - r.st > t - this.layers[e].st && this.buildItem(e)), + (this.completeLayers = !!this.elements[e] && this.completeLayers)) + this.checkPendingElements() + }), + (BaseRenderer.prototype.createItem = function (t) { + switch (t.ty) { + case 2: + return this.createImage(t) + case 0: + return this.createComp(t) + case 1: + return this.createSolid(t) + case 3: + return this.createNull(t) + case 4: + return this.createShape(t) + case 5: + return this.createText(t) + case 13: + return this.createCamera(t) + } + return this.createNull(t) + }), + (BaseRenderer.prototype.createCamera = function () { + throw new Error("You're using a 3d camera. Try the html renderer.") + }), + (BaseRenderer.prototype.buildAllItems = function () { + var t, + e = this.layers.length + for (t = 0; t < e; t += 1) this.buildItem(t) + this.checkPendingElements() + }), + (BaseRenderer.prototype.includeLayers = function (t) { + this.completeLayers = !1 + var e, + r, + i = t.length, + s = this.layers.length + for (e = 0; e < i; e += 1) + for (r = 0; r < s; ) { + if (this.layers[r].id == t[e].id) { + this.layers[r] = t[e] + break + } + r += 1 + } + }), + (BaseRenderer.prototype.setProjectInterface = function (t) { + this.globalData.projectInterface = t + }), + (BaseRenderer.prototype.initItems = function () { + this.globalData.progressiveLoad || this.buildAllItems() + }), + (BaseRenderer.prototype.buildElementParenting = function (t, e, r) { + for (var i = this.elements, s = this.layers, a = 0, n = s.length; a < n; ) + (s[a].ind == e && + (i[a] && !0 !== i[a] + ? (r.push(i[a]), i[a].setAsParent(), void 0 !== s[a].parent ? this.buildElementParenting(t, s[a].parent, r) : t.setHierarchy(r)) + : (this.buildItem(a), this.addPendingElement(t))), + (a += 1)) + }), + (BaseRenderer.prototype.addPendingElement = function (t) { + this.pendingElements.push(t) + }), + (BaseRenderer.prototype.searchExtraCompositions = function (t) { + var e, + r = t.length + for (e = 0; e < r; e += 1) + if (t[e].xt) { + var i = this.createComp(t[e]) + ;(i.initExpressions(), this.globalData.projectInterface.registerComposition(i)) + } + }), + (BaseRenderer.prototype.setupGlobalData = function (t, e) { + ;((this.globalData.fontManager = new FontManager()), + this.globalData.fontManager.addChars(t.chars), + this.globalData.fontManager.addFonts(t.fonts, e), + (this.globalData.getAssetData = this.animationItem.getAssetData.bind(this.animationItem)), + (this.globalData.getAssetsPath = this.animationItem.getAssetsPath.bind(this.animationItem)), + (this.globalData.imageLoader = this.animationItem.imagePreloader), + (this.globalData.frameId = 0), + (this.globalData.frameRate = t.fr), + (this.globalData.nm = t.nm), + (this.globalData.compSize = { w: t.w, h: t.h })) + }), + extendPrototype([BaseRenderer], SVGRenderer), + (SVGRenderer.prototype.createNull = function (t) { + return new NullElement(t, this.globalData, this) + }), + (SVGRenderer.prototype.createShape = function (t) { + return new SVGShapeElement(t, this.globalData, this) + }), + (SVGRenderer.prototype.createText = function (t) { + return new SVGTextElement(t, this.globalData, this) + }), + (SVGRenderer.prototype.createImage = function (t) { + return new IImageElement(t, this.globalData, this) + }), + (SVGRenderer.prototype.createComp = function (t) { + return new SVGCompElement(t, this.globalData, this) + }), + (SVGRenderer.prototype.createSolid = function (t) { + return new ISolidElement(t, this.globalData, this) + }), + (SVGRenderer.prototype.configAnimation = function (t) { + ;(this.svgElement.setAttribute('xmlns', 'http://www.w3.org/2000/svg'), + this.renderConfig.viewBoxSize + ? this.svgElement.setAttribute('viewBox', this.renderConfig.viewBoxSize) + : this.svgElement.setAttribute('viewBox', '0 0 ' + t.w + ' ' + t.h), + this.renderConfig.viewBoxOnly || + (this.svgElement.setAttribute('width', t.w), + this.svgElement.setAttribute('height', t.h), + (this.svgElement.style.width = '100%'), + (this.svgElement.style.height = '100%'), + (this.svgElement.style.transform = 'translate3d(0,0,0)')), + this.renderConfig.className && this.svgElement.setAttribute('class', this.renderConfig.className), + void 0 !== this.renderConfig.focusable && this.svgElement.setAttribute('focusable', this.renderConfig.focusable), + this.svgElement.setAttribute('preserveAspectRatio', this.renderConfig.preserveAspectRatio), + this.animationItem.wrapper.appendChild(this.svgElement)) + var e = this.globalData.defs + ;(this.setupGlobalData(t, e), (this.globalData.progressiveLoad = this.renderConfig.progressiveLoad), (this.data = t)) + var r = createNS('clipPath'), + i = createNS('rect') + ;(i.setAttribute('width', t.w), i.setAttribute('height', t.h), i.setAttribute('x', 0), i.setAttribute('y', 0)) + var s = createElementID() + ;(r.setAttribute('id', s), + r.appendChild(i), + this.layerElement.setAttribute('clip-path', 'url(' + locationHref + '#' + s + ')'), + e.appendChild(r), + (this.layers = t.layers), + (this.elements = createSizedArray(t.layers.length))) + }), + (SVGRenderer.prototype.destroy = function () { + ;((this.animationItem.wrapper.innerHTML = ''), (this.layerElement = null), (this.globalData.defs = null)) + var t, + e = this.layers ? this.layers.length : 0 + for (t = 0; t < e; t++) this.elements[t] && this.elements[t].destroy() + ;((this.elements.length = 0), (this.destroyed = !0), (this.animationItem = null)) + }), + (SVGRenderer.prototype.updateContainerSize = function () {}), + (SVGRenderer.prototype.buildItem = function (t) { + var e = this.elements + if (!e[t] && 99 != this.layers[t].ty) { + e[t] = !0 + var r = this.createItem(this.layers[t]) + ;((e[t] = r), + expressionsPlugin && (0 === this.layers[t].ty && this.globalData.projectInterface.registerComposition(r), r.initExpressions()), + this.appendElementInPos(r, t), + this.layers[t].tt && + (this.elements[t - 1] && !0 !== this.elements[t - 1] + ? r.setMatte(e[t - 1].layerId) + : (this.buildItem(t - 1), this.addPendingElement(r)))) + } + }), + (SVGRenderer.prototype.checkPendingElements = function () { + for (; this.pendingElements.length; ) { + var t = this.pendingElements.pop() + if ((t.checkParenting(), t.data.tt)) + for (var e = 0, r = this.elements.length; e < r; ) { + if (this.elements[e] === t) { + t.setMatte(this.elements[e - 1].layerId) + break + } + e += 1 + } + } + }), + (SVGRenderer.prototype.renderFrame = function (t) { + if (this.renderedFrame !== t && !this.destroyed) { + ;(null === t ? (t = this.renderedFrame) : (this.renderedFrame = t), + (this.globalData.frameNum = t), + (this.globalData.frameId += 1), + (this.globalData.projectInterface.currentFrame = t), + (this.globalData._mdf = !1)) + var e, + r = this.layers.length + for (this.completeLayers || this.checkLayers(t), e = r - 1; 0 <= e; e--) + (this.completeLayers || this.elements[e]) && this.elements[e].prepareFrame(t - this.layers[e].st) + if (this.globalData._mdf) for (e = 0; e < r; e += 1) (this.completeLayers || this.elements[e]) && this.elements[e].renderFrame() + } + }), + (SVGRenderer.prototype.appendElementInPos = function (t, e) { + var r = t.getBaseElement() + if (r) { + for (var i, s = 0; s < e; ) + (this.elements[s] && !0 !== this.elements[s] && this.elements[s].getBaseElement() && (i = this.elements[s].getBaseElement()), (s += 1)) + i ? this.layerElement.insertBefore(r, i) : this.layerElement.appendChild(r) + } + }), + (SVGRenderer.prototype.hide = function () { + this.layerElement.style.display = 'none' + }), + (SVGRenderer.prototype.show = function () { + this.layerElement.style.display = 'block' + }), + extendPrototype([BaseRenderer], CanvasRenderer), + (CanvasRenderer.prototype.createShape = function (t) { + return new CVShapeElement(t, this.globalData, this) + }), + (CanvasRenderer.prototype.createText = function (t) { + return new CVTextElement(t, this.globalData, this) + }), + (CanvasRenderer.prototype.createImage = function (t) { + return new CVImageElement(t, this.globalData, this) + }), + (CanvasRenderer.prototype.createComp = function (t) { + return new CVCompElement(t, this.globalData, this) + }), + (CanvasRenderer.prototype.createSolid = function (t) { + return new CVSolidElement(t, this.globalData, this) + }), + (CanvasRenderer.prototype.createNull = SVGRenderer.prototype.createNull), + (CanvasRenderer.prototype.ctxTransform = function (t) { + if (1 !== t[0] || 0 !== t[1] || 0 !== t[4] || 1 !== t[5] || 0 !== t[12] || 0 !== t[13]) + if (this.renderConfig.clearCanvas) { + this.transformMat.cloneFromProps(t) + var e = this.contextData.cTr.props + ;(this.transformMat.transform(e[0], e[1], e[2], e[3], e[4], e[5], e[6], e[7], e[8], e[9], e[10], e[11], e[12], e[13], e[14], e[15]), + this.contextData.cTr.cloneFromProps(this.transformMat.props)) + var r = this.contextData.cTr.props + this.canvasContext.setTransform(r[0], r[1], r[4], r[5], r[12], r[13]) + } else this.canvasContext.transform(t[0], t[1], t[4], t[5], t[12], t[13]) + }), + (CanvasRenderer.prototype.ctxOpacity = function (t) { + if (!this.renderConfig.clearCanvas) + return ((this.canvasContext.globalAlpha *= t < 0 ? 0 : t), void (this.globalData.currentGlobalAlpha = this.contextData.cO)) + ;((this.contextData.cO *= t < 0 ? 0 : t), + this.globalData.currentGlobalAlpha !== this.contextData.cO && + ((this.canvasContext.globalAlpha = this.contextData.cO), (this.globalData.currentGlobalAlpha = this.contextData.cO))) + }), + (CanvasRenderer.prototype.reset = function () { + this.renderConfig.clearCanvas ? this.contextData.reset() : this.canvasContext.restore() + }), + (CanvasRenderer.prototype.save = function (t) { + if (this.renderConfig.clearCanvas) { + t && this.canvasContext.save() + var e = this.contextData.cTr.props + this.contextData._length <= this.contextData.cArrPos && this.contextData.duplicate() + var r, + i = this.contextData.saved[this.contextData.cArrPos] + for (r = 0; r < 16; r += 1) i[r] = e[r] + ;((this.contextData.savedOp[this.contextData.cArrPos] = this.contextData.cO), (this.contextData.cArrPos += 1)) + } else this.canvasContext.save() + }), + (CanvasRenderer.prototype.restore = function (t) { + if (this.renderConfig.clearCanvas) { + ;(t && (this.canvasContext.restore(), (this.globalData.blendMode = 'source-over')), (this.contextData.cArrPos -= 1)) + var e, + r = this.contextData.saved[this.contextData.cArrPos], + i = this.contextData.cTr.props + for (e = 0; e < 16; e += 1) i[e] = r[e] + ;(this.canvasContext.setTransform(r[0], r[1], r[4], r[5], r[12], r[13]), + (r = this.contextData.savedOp[this.contextData.cArrPos]), + (this.contextData.cO = r), + this.globalData.currentGlobalAlpha !== r && ((this.canvasContext.globalAlpha = r), (this.globalData.currentGlobalAlpha = r))) + } else this.canvasContext.restore() + }), + (CanvasRenderer.prototype.configAnimation = function (t) { + ;(this.animationItem.wrapper + ? ((this.animationItem.container = createTag('canvas')), + (this.animationItem.container.style.width = '100%'), + (this.animationItem.container.style.height = '100%'), + (this.animationItem.container.style.transformOrigin = + this.animationItem.container.style.mozTransformOrigin = + this.animationItem.container.style.webkitTransformOrigin = + this.animationItem.container.style['-webkit-transform'] = + '0px 0px 0px'), + this.animationItem.wrapper.appendChild(this.animationItem.container), + (this.canvasContext = this.animationItem.container.getContext('2d')), + this.renderConfig.className && this.animationItem.container.setAttribute('class', this.renderConfig.className)) + : (this.canvasContext = this.renderConfig.context), + (this.data = t), + (this.layers = t.layers), + (this.transformCanvas = { w: t.w, h: t.h, sx: 0, sy: 0, tx: 0, ty: 0 }), + this.setupGlobalData(t, document.body), + (this.globalData.canvasContext = this.canvasContext), + ((this.globalData.renderer = this).globalData.isDashed = !1), + (this.globalData.progressiveLoad = this.renderConfig.progressiveLoad), + (this.globalData.transformCanvas = this.transformCanvas), + (this.elements = createSizedArray(t.layers.length)), + this.updateContainerSize()) + }), + (CanvasRenderer.prototype.updateContainerSize = function () { + var t, e, r, i + if ( + (this.reset(), + this.animationItem.wrapper && this.animationItem.container + ? ((t = this.animationItem.wrapper.offsetWidth), + (e = this.animationItem.wrapper.offsetHeight), + this.animationItem.container.setAttribute('width', t * this.renderConfig.dpr), + this.animationItem.container.setAttribute('height', e * this.renderConfig.dpr)) + : ((t = this.canvasContext.canvas.width * this.renderConfig.dpr), (e = this.canvasContext.canvas.height * this.renderConfig.dpr)), + -1 !== this.renderConfig.preserveAspectRatio.indexOf('meet') || -1 !== this.renderConfig.preserveAspectRatio.indexOf('slice')) + ) { + var s = this.renderConfig.preserveAspectRatio.split(' '), + a = s[1] || 'meet', + n = s[0] || 'xMidYMid', + o = n.substr(0, 4), + h = n.substr(4) + ;((r = t / e), + (i = this.transformCanvas.w / this.transformCanvas.h), + (this.transformCanvas.sy = + (r < i && 'meet' === a) || (i < r && 'slice' === a) + ? ((this.transformCanvas.sx = t / (this.transformCanvas.w / this.renderConfig.dpr)), + t / (this.transformCanvas.w / this.renderConfig.dpr)) + : ((this.transformCanvas.sx = e / (this.transformCanvas.h / this.renderConfig.dpr)), + e / (this.transformCanvas.h / this.renderConfig.dpr))), + (this.transformCanvas.tx = + 'xMid' === o && ((i < r && 'meet' === a) || (r < i && 'slice' === a)) + ? ((t - this.transformCanvas.w * (e / this.transformCanvas.h)) / 2) * this.renderConfig.dpr + : 'xMax' === o && ((i < r && 'meet' === a) || (r < i && 'slice' === a)) + ? (t - this.transformCanvas.w * (e / this.transformCanvas.h)) * this.renderConfig.dpr + : 0), + (this.transformCanvas.ty = + 'YMid' === h && ((r < i && 'meet' === a) || (i < r && 'slice' === a)) + ? ((e - this.transformCanvas.h * (t / this.transformCanvas.w)) / 2) * this.renderConfig.dpr + : 'YMax' === h && ((r < i && 'meet' === a) || (i < r && 'slice' === a)) + ? (e - this.transformCanvas.h * (t / this.transformCanvas.w)) * this.renderConfig.dpr + : 0)) + } else + ('none' == this.renderConfig.preserveAspectRatio + ? ((this.transformCanvas.sx = t / (this.transformCanvas.w / this.renderConfig.dpr)), + (this.transformCanvas.sy = e / (this.transformCanvas.h / this.renderConfig.dpr))) + : ((this.transformCanvas.sx = this.renderConfig.dpr), (this.transformCanvas.sy = this.renderConfig.dpr)), + (this.transformCanvas.tx = 0), + (this.transformCanvas.ty = 0)) + ;((this.transformCanvas.props = [ + this.transformCanvas.sx, + 0, + 0, + 0, + 0, + this.transformCanvas.sy, + 0, + 0, + 0, + 0, + 1, + 0, + this.transformCanvas.tx, + this.transformCanvas.ty, + 0, + 1, + ]), + this.ctxTransform(this.transformCanvas.props), + this.canvasContext.beginPath(), + this.canvasContext.rect(0, 0, this.transformCanvas.w, this.transformCanvas.h), + this.canvasContext.closePath(), + this.canvasContext.clip(), + this.renderFrame(this.renderedFrame, !0)) + }), + (CanvasRenderer.prototype.destroy = function () { + var t + for ( + this.renderConfig.clearCanvas && (this.animationItem.wrapper.innerHTML = ''), t = (this.layers ? this.layers.length : 0) - 1; + 0 <= t; + t -= 1 + ) + this.elements[t] && this.elements[t].destroy() + ;((this.elements.length = 0), (this.globalData.canvasContext = null), (this.animationItem.container = null), (this.destroyed = !0)) + }), + (CanvasRenderer.prototype.renderFrame = function (t, e) { + if ((this.renderedFrame !== t || !0 !== this.renderConfig.clearCanvas || e) && !this.destroyed && -1 !== t) { + ;((this.renderedFrame = t), + (this.globalData.frameNum = t - this.animationItem._isFirstFrame), + (this.globalData.frameId += 1), + (this.globalData._mdf = !this.renderConfig.clearCanvas || e), + (this.globalData.projectInterface.currentFrame = t)) + var r, + i = this.layers.length + for (this.completeLayers || this.checkLayers(t), r = 0; r < i; r++) + (this.completeLayers || this.elements[r]) && this.elements[r].prepareFrame(t - this.layers[r].st) + if (this.globalData._mdf) { + for ( + !0 === this.renderConfig.clearCanvas ? this.canvasContext.clearRect(0, 0, this.transformCanvas.w, this.transformCanvas.h) : this.save(), + r = i - 1; + 0 <= r; + r -= 1 + ) + (this.completeLayers || this.elements[r]) && this.elements[r].renderFrame() + !0 !== this.renderConfig.clearCanvas && this.restore() + } + } + }), + (CanvasRenderer.prototype.buildItem = function (t) { + var e = this.elements + if (!e[t] && 99 != this.layers[t].ty) { + var r = this.createItem(this.layers[t], this, this.globalData) + ;(e[t] = r).initExpressions() + } + }), + (CanvasRenderer.prototype.checkPendingElements = function () { + for (; this.pendingElements.length; ) { + this.pendingElements.pop().checkParenting() + } + }), + (CanvasRenderer.prototype.hide = function () { + this.animationItem.container.style.display = 'none' + }), + (CanvasRenderer.prototype.show = function () { + this.animationItem.container.style.display = 'block' + }), + extendPrototype([BaseRenderer], HybridRenderer), + (HybridRenderer.prototype.buildItem = SVGRenderer.prototype.buildItem), + (HybridRenderer.prototype.checkPendingElements = function () { + for (; this.pendingElements.length; ) { + this.pendingElements.pop().checkParenting() + } + }), + (HybridRenderer.prototype.appendElementInPos = function (t, e) { + var r = t.getBaseElement() + if (r) { + var i = this.layers[e] + if (i.ddd && this.supports3d) this.addTo3dContainer(r, e) + else if (this.threeDElements) this.addTo3dContainer(r, e) + else { + for (var s, a, n = 0; n < e; ) + (this.elements[n] && + !0 !== this.elements[n] && + this.elements[n].getBaseElement && + ((a = this.elements[n]), (s = (this.layers[n].ddd ? this.getThreeDContainerByPos(n) : a.getBaseElement()) || s)), + (n += 1)) + s ? (i.ddd && this.supports3d) || this.layerElement.insertBefore(r, s) : (i.ddd && this.supports3d) || this.layerElement.appendChild(r) + } + } + }), + (HybridRenderer.prototype.createShape = function (t) { + return this.supports3d ? new HShapeElement(t, this.globalData, this) : new SVGShapeElement(t, this.globalData, this) + }), + (HybridRenderer.prototype.createText = function (t) { + return this.supports3d ? new HTextElement(t, this.globalData, this) : new SVGTextElement(t, this.globalData, this) + }), + (HybridRenderer.prototype.createCamera = function (t) { + return ((this.camera = new HCameraElement(t, this.globalData, this)), this.camera) + }), + (HybridRenderer.prototype.createImage = function (t) { + return this.supports3d ? new HImageElement(t, this.globalData, this) : new IImageElement(t, this.globalData, this) + }), + (HybridRenderer.prototype.createComp = function (t) { + return this.supports3d ? new HCompElement(t, this.globalData, this) : new SVGCompElement(t, this.globalData, this) + }), + (HybridRenderer.prototype.createSolid = function (t) { + return this.supports3d ? new HSolidElement(t, this.globalData, this) : new ISolidElement(t, this.globalData, this) + }), + (HybridRenderer.prototype.createNull = SVGRenderer.prototype.createNull), + (HybridRenderer.prototype.getThreeDContainerByPos = function (t) { + for (var e = 0, r = this.threeDElements.length; e < r; ) { + if (this.threeDElements[e].startPos <= t && this.threeDElements[e].endPos >= t) return this.threeDElements[e].perspectiveElem + e += 1 + } + }), + (HybridRenderer.prototype.createThreeDContainer = function (t, e) { + var r = createTag('div') + styleDiv(r) + var i = createTag('div') + ;(styleDiv(i), + '3d' === e && + ((r.style.width = this.globalData.compSize.w + 'px'), + (r.style.height = this.globalData.compSize.h + 'px'), + (r.style.transformOrigin = r.style.mozTransformOrigin = r.style.webkitTransformOrigin = '50% 50%'), + (i.style.transform = i.style.webkitTransform = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)')), + r.appendChild(i)) + var s = { container: i, perspectiveElem: r, startPos: t, endPos: t, type: e } + return (this.threeDElements.push(s), s) + }), + (HybridRenderer.prototype.build3dContainers = function () { + var t, + e, + r = this.layers.length, + i = '' + for (t = 0; t < r; t += 1) + (this.layers[t].ddd && 3 !== this.layers[t].ty + ? '3d' !== i && ((i = '3d'), (e = this.createThreeDContainer(t, '3d'))) + : '2d' !== i && ((i = '2d'), (e = this.createThreeDContainer(t, '2d'))), + (e.endPos = Math.max(e.endPos, t))) + for (t = (r = this.threeDElements.length) - 1; 0 <= t; t--) this.resizerElem.appendChild(this.threeDElements[t].perspectiveElem) + }), + (HybridRenderer.prototype.addTo3dContainer = function (t, e) { + for (var r = 0, i = this.threeDElements.length; r < i; ) { + if (e <= this.threeDElements[r].endPos) { + for (var s, a = this.threeDElements[r].startPos; a < e; ) + (this.elements[a] && this.elements[a].getBaseElement && (s = this.elements[a].getBaseElement()), (a += 1)) + s ? this.threeDElements[r].container.insertBefore(t, s) : this.threeDElements[r].container.appendChild(t) + break + } + r += 1 + } + }), + (HybridRenderer.prototype.configAnimation = function (t) { + var e = createTag('div'), + r = this.animationItem.wrapper + ;((e.style.width = t.w + 'px'), + (e.style.height = t.h + 'px'), + styleDiv((this.resizerElem = e)), + (e.style.transformStyle = e.style.webkitTransformStyle = e.style.mozTransformStyle = 'flat'), + this.renderConfig.className && e.setAttribute('class', this.renderConfig.className), + r.appendChild(e), + (e.style.overflow = 'hidden')) + var i = createNS('svg') + ;(i.setAttribute('width', '1'), i.setAttribute('height', '1'), styleDiv(i), this.resizerElem.appendChild(i)) + var s = createNS('defs') + ;(i.appendChild(s), + (this.data = t), + this.setupGlobalData(t, i), + (this.globalData.defs = s), + (this.layers = t.layers), + (this.layerElement = this.resizerElem), + this.build3dContainers(), + this.updateContainerSize()) + }), + (HybridRenderer.prototype.destroy = function () { + ;((this.animationItem.wrapper.innerHTML = ''), (this.animationItem.container = null), (this.globalData.defs = null)) + var t, + e = this.layers ? this.layers.length : 0 + for (t = 0; t < e; t++) this.elements[t].destroy() + ;((this.elements.length = 0), (this.destroyed = !0), (this.animationItem = null)) + }), + (HybridRenderer.prototype.updateContainerSize = function () { + var t, + e, + r, + i, + s = this.animationItem.wrapper.offsetWidth, + a = this.animationItem.wrapper.offsetHeight + ;((i = + s / a < this.globalData.compSize.w / this.globalData.compSize.h + ? ((t = s / this.globalData.compSize.w), + (e = s / this.globalData.compSize.w), + (r = 0), + (a - this.globalData.compSize.h * (s / this.globalData.compSize.w)) / 2) + : ((t = a / this.globalData.compSize.h), + (e = a / this.globalData.compSize.h), + (r = (s - this.globalData.compSize.w * (a / this.globalData.compSize.h)) / 2), + 0)), + (this.resizerElem.style.transform = this.resizerElem.style.webkitTransform = + 'matrix3d(' + t + ',0,0,0,0,' + e + ',0,0,0,0,1,0,' + r + ',' + i + ',0,1)')) + }), + (HybridRenderer.prototype.renderFrame = SVGRenderer.prototype.renderFrame), + (HybridRenderer.prototype.hide = function () { + this.resizerElem.style.display = 'none' + }), + (HybridRenderer.prototype.show = function () { + this.resizerElem.style.display = 'block' + }), + (HybridRenderer.prototype.initItems = function () { + if ((this.buildAllItems(), this.camera)) this.camera.setup() + else { + var t, + e = this.globalData.compSize.w, + r = this.globalData.compSize.h, + i = this.threeDElements.length + for (t = 0; t < i; t += 1) + this.threeDElements[t].perspectiveElem.style.perspective = this.threeDElements[t].perspectiveElem.style.webkitPerspective = + Math.sqrt(Math.pow(e, 2) + Math.pow(r, 2)) + 'px' + } + }), + (HybridRenderer.prototype.searchExtraCompositions = function (t) { + var e, + r = t.length, + i = createTag('div') + for (e = 0; e < r; e += 1) + if (t[e].xt) { + var s = this.createComp(t[e], i, this.globalData.comp, null) + ;(s.initExpressions(), this.globalData.projectInterface.registerComposition(s)) + } + }), + (MaskElement.prototype.getMaskProperty = function (t) { + return this.viewData[t].prop + }), + (MaskElement.prototype.renderFrame = function (t) { + var e, + r = this.element.finalTransform.mat, + i = this.masksProperties.length + for (e = 0; e < i; e++) + if ( + ((this.viewData[e].prop._mdf || t) && this.drawPath(this.masksProperties[e], this.viewData[e].prop.v, this.viewData[e]), + (this.viewData[e].op._mdf || t) && this.viewData[e].elem.setAttribute('fill-opacity', this.viewData[e].op.v), + 'n' !== this.masksProperties[e].mode && + (this.viewData[e].invRect && + (this.element.finalTransform.mProp._mdf || t) && + (this.viewData[e].invRect.setAttribute('x', -r.props[12]), this.viewData[e].invRect.setAttribute('y', -r.props[13])), + this.storedData[e].x && (this.storedData[e].x._mdf || t))) + ) { + var s = this.storedData[e].expan + this.storedData[e].x.v < 0 + ? ('erode' !== this.storedData[e].lastOperator && + ((this.storedData[e].lastOperator = 'erode'), + this.storedData[e].elem.setAttribute('filter', 'url(' + locationHref + '#' + this.storedData[e].filterId + ')')), + s.setAttribute('radius', -this.storedData[e].x.v)) + : ('dilate' !== this.storedData[e].lastOperator && + ((this.storedData[e].lastOperator = 'dilate'), this.storedData[e].elem.setAttribute('filter', null)), + this.storedData[e].elem.setAttribute('stroke-width', 2 * this.storedData[e].x.v)) + } + }), + (MaskElement.prototype.getMaskelement = function () { + return this.maskElement + }), + (MaskElement.prototype.createLayerSolidPath = function () { + var t = 'M0,0 ' + return ( + (t += ' h' + this.globalData.compSize.w), + (t += ' v' + this.globalData.compSize.h), + (t += ' h-' + this.globalData.compSize.w), + (t += ' v-' + this.globalData.compSize.h + ' ') + ) + }), + (MaskElement.prototype.drawPath = function (t, e, r) { + var i, + s, + a = ' M' + e.v[0][0] + ',' + e.v[0][1] + for (s = e._length, i = 1; i < s; i += 1) + a += ' C' + e.o[i - 1][0] + ',' + e.o[i - 1][1] + ' ' + e.i[i][0] + ',' + e.i[i][1] + ' ' + e.v[i][0] + ',' + e.v[i][1] + if ( + (e.c && 1 < s && (a += ' C' + e.o[i - 1][0] + ',' + e.o[i - 1][1] + ' ' + e.i[0][0] + ',' + e.i[0][1] + ' ' + e.v[0][0] + ',' + e.v[0][1]), + r.lastPath !== a) + ) { + var n = '' + ;(r.elem && (e.c && (n = t.inv ? this.solidPath + a : a), r.elem.setAttribute('d', n)), (r.lastPath = a)) + } + }), + (MaskElement.prototype.destroy = function () { + ;((this.element = null), (this.globalData = null), (this.maskElement = null), (this.data = null), (this.masksProperties = null)) + }), + (HierarchyElement.prototype = { + initHierarchy: function () { + ;((this.hierarchy = []), (this._isParent = !1), this.checkParenting()) + }, + setHierarchy: function (t) { + this.hierarchy = t + }, + setAsParent: function () { + this._isParent = !0 + }, + checkParenting: function () { + void 0 !== this.data.parent && this.comp.buildElementParenting(this, this.data.parent, []) + }, + }), + (FrameElement.prototype = { + initFrame: function () { + ;((this._isFirstFrame = !1), (this.dynamicProperties = []), (this._mdf = !1)) + }, + prepareProperties: function (t, e) { + var r, + i = this.dynamicProperties.length + for (r = 0; r < i; r += 1) + (e || (this._isParent && 'transform' === this.dynamicProperties[r].propType)) && + (this.dynamicProperties[r].getValue(), this.dynamicProperties[r]._mdf && ((this.globalData._mdf = !0), (this._mdf = !0))) + }, + addDynamicProperty: function (t) { + ;-1 === this.dynamicProperties.indexOf(t) && this.dynamicProperties.push(t) + }, + }), + (TransformElement.prototype = { + initTransform: function () { + ;((this.finalTransform = { + mProp: this.data.ks ? TransformPropertyFactory.getTransformProperty(this, this.data.ks, this) : { o: 0 }, + _matMdf: !1, + _opMdf: !1, + mat: new Matrix(), + }), + this.data.ao && (this.finalTransform.mProp.autoOriented = !0), + this.data.ty) + }, + renderTransform: function () { + if ( + ((this.finalTransform._opMdf = this.finalTransform.mProp.o._mdf || this._isFirstFrame), + (this.finalTransform._matMdf = this.finalTransform.mProp._mdf || this._isFirstFrame), + this.hierarchy) + ) { + var t, + e = this.finalTransform.mat, + r = 0, + i = this.hierarchy.length + if (!this.finalTransform._matMdf) + for (; r < i; ) { + if (this.hierarchy[r].finalTransform.mProp._mdf) { + this.finalTransform._matMdf = !0 + break + } + r += 1 + } + if (this.finalTransform._matMdf) + for (t = this.finalTransform.mProp.v.props, e.cloneFromProps(t), r = 0; r < i; r += 1) + ((t = this.hierarchy[r].finalTransform.mProp.v.props), + e.transform(t[0], t[1], t[2], t[3], t[4], t[5], t[6], t[7], t[8], t[9], t[10], t[11], t[12], t[13], t[14], t[15])) + } + }, + globalToLocal: function (t) { + var e = [] + e.push(this.finalTransform) + for (var r = !0, i = this.comp; r; ) i.finalTransform ? (i.data.hasMask && e.splice(0, 0, i.finalTransform), (i = i.comp)) : (r = !1) + var s, + a, + n = e.length + for (s = 0; s < n; s += 1) ((a = e[s].mat.applyToPointArray(0, 0, 0)), (t = [t[0] - a[0], t[1] - a[1], 0])) + return t + }, + mHelper: new Matrix(), + }), + (RenderableElement.prototype = { + initRenderable: function () { + ;((this.isInRange = !1), (this.hidden = !1), (this.isTransparent = !1), (this.renderableComponents = [])) + }, + addRenderableComponent: function (t) { + ;-1 === this.renderableComponents.indexOf(t) && this.renderableComponents.push(t) + }, + removeRenderableComponent: function (t) { + ;-1 !== this.renderableComponents.indexOf(t) && this.renderableComponents.splice(this.renderableComponents.indexOf(t), 1) + }, + prepareRenderableFrame: function (t) { + this.checkLayerLimits(t) + }, + checkTransparency: function () { + this.finalTransform.mProp.o.v <= 0 + ? !this.isTransparent && this.globalData.renderConfig.hideOnTransparent && ((this.isTransparent = !0), this.hide()) + : this.isTransparent && ((this.isTransparent = !1), this.show()) + }, + checkLayerLimits: function (t) { + this.data.ip - this.data.st <= t && this.data.op - this.data.st > t + ? !0 !== this.isInRange && ((this.globalData._mdf = !0), (this._mdf = !0), (this.isInRange = !0), this.show()) + : !1 !== this.isInRange && ((this.globalData._mdf = !0), (this.isInRange = !1), this.hide()) + }, + renderRenderable: function () { + var t, + e = this.renderableComponents.length + for (t = 0; t < e; t += 1) this.renderableComponents[t].renderFrame(this._isFirstFrame) + }, + sourceRectAtTime: function () { + return { top: 0, left: 0, width: 100, height: 100 } + }, + getLayerSize: function () { + return 5 === this.data.ty ? { w: this.data.textData.width, h: this.data.textData.height } : { w: this.data.width, h: this.data.height } + }, + }), + extendPrototype( + [ + RenderableElement, + createProxyFunction({ + initElement: function (t, e, r) { + ;(this.initFrame(), + this.initBaseData(t, e, r), + this.initTransform(t, e, r), + this.initHierarchy(), + this.initRenderable(), + this.initRendererElement(), + this.createContainerElements(), + this.createRenderableComponents(), + this.createContent(), + this.hide()) + }, + hide: function () { + this.hidden || + (this.isInRange && !this.isTransparent) || + (((this.baseElement || this.layerElement).style.display = 'none'), (this.hidden = !0)) + }, + show: function () { + this.isInRange && + !this.isTransparent && + (this.data.hd || ((this.baseElement || this.layerElement).style.display = 'block'), (this.hidden = !1), (this._isFirstFrame = !0)) + }, + renderFrame: function () { + this.data.hd || + this.hidden || + (this.renderTransform(), + this.renderRenderable(), + this.renderElement(), + this.renderInnerContent(), + this._isFirstFrame && (this._isFirstFrame = !1)) + }, + renderInnerContent: function () {}, + prepareFrame: function (t) { + ;((this._mdf = !1), this.prepareRenderableFrame(t), this.prepareProperties(t, this.isInRange), this.checkTransparency()) + }, + destroy: function () { + ;((this.innerElem = null), this.destroyBaseElement()) + }, + }), + ], + RenderableDOMElement, + ), + (SVGStyleData.prototype.reset = function () { + ;((this.d = ''), (this._mdf = !1)) + }), + (SVGShapeData.prototype.setAsAnimated = function () { + this._isAnimated = !0 + }), + extendPrototype([DynamicPropertyContainer], SVGStrokeStyleData), + extendPrototype([DynamicPropertyContainer], SVGFillStyleData), + (SVGGradientFillStyleData.prototype.initGradientData = function (t, e, r) { + ;((this.o = PropertyFactory.getProp(t, e.o, 0, 0.01, this)), + (this.s = PropertyFactory.getProp(t, e.s, 1, null, this)), + (this.e = PropertyFactory.getProp(t, e.e, 1, null, this)), + (this.h = PropertyFactory.getProp(t, e.h || { k: 0 }, 0, 0.01, this)), + (this.a = PropertyFactory.getProp(t, e.a || { k: 0 }, 0, degToRads, this)), + (this.g = new GradientProperty(t, e.g, this)), + (this.style = r), + (this.stops = []), + this.setGradientData(r.pElem, e), + this.setGradientOpacity(e, r), + (this._isAnimated = !!this._isAnimated)) + }), + (SVGGradientFillStyleData.prototype.setGradientData = function (t, e) { + var r = createElementID(), + i = createNS(1 === e.t ? 'linearGradient' : 'radialGradient') + ;(i.setAttribute('id', r), i.setAttribute('spreadMethod', 'pad'), i.setAttribute('gradientUnits', 'userSpaceOnUse')) + var s, + a, + n, + o = [] + for (n = 4 * e.g.p, a = 0; a < n; a += 4) ((s = createNS('stop')), i.appendChild(s), o.push(s)) + ;(t.setAttribute('gf' === e.ty ? 'fill' : 'stroke', 'url(' + locationHref + '#' + r + ')'), (this.gf = i), (this.cst = o)) + }), + (SVGGradientFillStyleData.prototype.setGradientOpacity = function (t, e) { + if (this.g._hasOpacity && !this.g._collapsable) { + var r, + i, + s, + a = createNS('mask'), + n = createNS('path') + a.appendChild(n) + var o = createElementID(), + h = createElementID() + a.setAttribute('id', h) + var l = createNS(1 === t.t ? 'linearGradient' : 'radialGradient') + ;(l.setAttribute('id', o), + l.setAttribute('spreadMethod', 'pad'), + l.setAttribute('gradientUnits', 'userSpaceOnUse'), + (s = t.g.k.k[0].s ? t.g.k.k[0].s.length : t.g.k.k.length)) + var p = this.stops + for (i = 4 * t.g.p; i < s; i += 2) ((r = createNS('stop')).setAttribute('stop-color', 'rgb(255,255,255)'), l.appendChild(r), p.push(r)) + ;(n.setAttribute('gf' === t.ty ? 'fill' : 'stroke', 'url(' + locationHref + '#' + o + ')'), + (this.of = l), + (this.ms = a), + (this.ost = p), + (this.maskId = h), + (e.msElem = n)) + } + }), + extendPrototype([DynamicPropertyContainer], SVGGradientFillStyleData), + extendPrototype([SVGGradientFillStyleData, DynamicPropertyContainer], SVGGradientStrokeStyleData)) + var SVGElementsRenderer = (function () { + var y = new Matrix(), + g = new Matrix() + function e(t, e, r) { + ;((r || e.transform.op._mdf) && e.transform.container.setAttribute('opacity', e.transform.op.v), + (r || e.transform.mProps._mdf) && e.transform.container.setAttribute('transform', e.transform.mProps.v.to2dCSS())) + } + function r(t, e, r) { + var i, + s, + a, + n, + o, + h, + l, + p, + m, + f, + c, + d = e.styles.length, + u = e.lvl + for (h = 0; h < d; h += 1) { + if (((n = e.sh._mdf || r), e.styles[h].lvl < u)) { + for (p = g.reset(), f = u - e.styles[h].lvl, c = e.transformers.length - 1; !n && 0 < f; ) + ((n = e.transformers[c].mProps._mdf || n), f--, c--) + if (n) + for (f = u - e.styles[h].lvl, c = e.transformers.length - 1; 0 < f; ) + ((m = e.transformers[c].mProps.v.props), + p.transform(m[0], m[1], m[2], m[3], m[4], m[5], m[6], m[7], m[8], m[9], m[10], m[11], m[12], m[13], m[14], m[15]), + f--, + c--) + } else p = y + if (((s = (l = e.sh.paths)._length), n)) { + for (a = '', i = 0; i < s; i += 1) (o = l.shapes[i]) && o._length && (a += buildShapeString(o, o._length, o.c, p)) + e.caches[h] = a + } else a = e.caches[h] + ;((e.styles[h].d += !0 === t.hd ? '' : a), (e.styles[h]._mdf = n || e.styles[h]._mdf)) + } + } + function i(t, e, r) { + var i = e.style + ;((e.c._mdf || r) && i.pElem.setAttribute('fill', 'rgb(' + bm_floor(e.c.v[0]) + ',' + bm_floor(e.c.v[1]) + ',' + bm_floor(e.c.v[2]) + ')'), + (e.o._mdf || r) && i.pElem.setAttribute('fill-opacity', e.o.v)) + } + function s(t, e, r) { + ;(a(t, e, r), n(t, e, r)) + } + function a(t, e, r) { + var i, + s, + a, + n, + o, + h = e.gf, + l = e.g._hasOpacity, + p = e.s.v, + m = e.e.v + if (e.o._mdf || r) { + var f = 'gf' === t.ty ? 'fill-opacity' : 'stroke-opacity' + e.style.pElem.setAttribute(f, e.o.v) + } + if (e.s._mdf || r) { + var c = 1 === t.t ? 'x1' : 'cx', + d = 'x1' === c ? 'y1' : 'cy' + ;(h.setAttribute(c, p[0]), h.setAttribute(d, p[1]), l && !e.g._collapsable && (e.of.setAttribute(c, p[0]), e.of.setAttribute(d, p[1]))) + } + if (e.g._cmdf || r) { + i = e.cst + var u = e.g.c + for (a = i.length, s = 0; s < a; s += 1) + ((n = i[s]).setAttribute('offset', u[4 * s] + '%'), + n.setAttribute('stop-color', 'rgb(' + u[4 * s + 1] + ',' + u[4 * s + 2] + ',' + u[4 * s + 3] + ')')) + } + if (l && (e.g._omdf || r)) { + var y = e.g.o + for (a = (i = e.g._collapsable ? e.cst : e.ost).length, s = 0; s < a; s += 1) + ((n = i[s]), e.g._collapsable || n.setAttribute('offset', y[2 * s] + '%'), n.setAttribute('stop-opacity', y[2 * s + 1])) + } + if (1 === t.t) + (e.e._mdf || r) && + (h.setAttribute('x2', m[0]), + h.setAttribute('y2', m[1]), + l && !e.g._collapsable && (e.of.setAttribute('x2', m[0]), e.of.setAttribute('y2', m[1]))) + else if ( + ((e.s._mdf || e.e._mdf || r) && + ((o = Math.sqrt(Math.pow(p[0] - m[0], 2) + Math.pow(p[1] - m[1], 2))), + h.setAttribute('r', o), + l && !e.g._collapsable && e.of.setAttribute('r', o)), + e.e._mdf || e.h._mdf || e.a._mdf || r) + ) { + o || (o = Math.sqrt(Math.pow(p[0] - m[0], 2) + Math.pow(p[1] - m[1], 2))) + var g = Math.atan2(m[1] - p[1], m[0] - p[0]), + v = o * (1 <= e.h.v ? 0.99 : e.h.v <= -1 ? -0.99 : e.h.v), + b = Math.cos(g + e.a.v) * v + p[0], + E = Math.sin(g + e.a.v) * v + p[1] + ;(h.setAttribute('fx', b), h.setAttribute('fy', E), l && !e.g._collapsable && (e.of.setAttribute('fx', b), e.of.setAttribute('fy', E))) + } + } + function n(t, e, r) { + var i = e.style, + s = e.d + ;(s && + (s._mdf || r) && + s.dashStr && + (i.pElem.setAttribute('stroke-dasharray', s.dashStr), i.pElem.setAttribute('stroke-dashoffset', s.dashoffset[0])), + e.c && + (e.c._mdf || r) && + i.pElem.setAttribute('stroke', 'rgb(' + bm_floor(e.c.v[0]) + ',' + bm_floor(e.c.v[1]) + ',' + bm_floor(e.c.v[2]) + ')'), + (e.o._mdf || r) && i.pElem.setAttribute('stroke-opacity', e.o.v), + (e.w._mdf || r) && (i.pElem.setAttribute('stroke-width', e.w.v), i.msElem && i.msElem.setAttribute('stroke-width', e.w.v))) + } + return { + createRenderFunction: function (t) { + t.ty + switch (t.ty) { + case 'fl': + return i + case 'gf': + return a + case 'gs': + return s + case 'st': + return n + case 'sh': + case 'el': + case 'rc': + case 'sr': + return r + case 'tr': + return e + } + }, + } + })() + function ShapeTransformManager() { + ;((this.sequences = {}), (this.sequenceList = []), (this.transform_key_count = 0)) + } + function CVShapeData(t, e, r, i) { + ;((this.styledShapes = []), (this.tr = [0, 0, 0, 0, 0, 0])) + var s = 4 + ;('rc' == e.ty ? (s = 5) : 'el' == e.ty ? (s = 6) : 'sr' == e.ty && (s = 7), (this.sh = ShapePropertyFactory.getShapeProp(t, e, s, t))) + var a, + n, + o = r.length + for (a = 0; a < o; a += 1) + r[a].closed || ((n = { transforms: i.addTransformSequence(r[a].transforms), trNodes: [] }), this.styledShapes.push(n), r[a].elements.push(n)) + } + function BaseElement() {} + function NullElement(t, e, r) { + ;(this.initFrame(), this.initBaseData(t, e, r), this.initFrame(), this.initTransform(t, e, r), this.initHierarchy()) + } + function SVGBaseElement() {} + function IShapeElement() {} + function ITextElement() {} + function ICompElement() {} + function IImageElement(t, e, r) { + ;((this.assetData = e.getAssetData(t.refId)), + this.initElement(t, e, r), + (this.sourceRect = { top: 0, left: 0, width: this.assetData.w, height: this.assetData.h })) + } + function ISolidElement(t, e, r) { + this.initElement(t, e, r) + } + function SVGCompElement(t, e, r) { + ;((this.layers = t.layers), + (this.supports3d = !0), + (this.completeLayers = !1), + (this.pendingElements = []), + (this.elements = this.layers ? createSizedArray(this.layers.length) : []), + this.initElement(t, e, r), + (this.tm = t.tm ? PropertyFactory.getProp(this, t.tm, 0, e.frameRate, this) : { _placeholder: !0 })) + } + function SVGTextElement(t, e, r) { + ;((this.textSpans = []), (this.renderType = 'svg'), this.initElement(t, e, r)) + } + function SVGShapeElement(t, e, r) { + ;((this.shapes = []), + (this.shapesData = t.shapes), + (this.stylesList = []), + (this.shapeModifiers = []), + (this.itemsData = []), + (this.processedElements = []), + (this.animatedContents = []), + this.initElement(t, e, r), + (this.prevViewData = [])) + } + function SVGTintFilter(t, e) { + this.filterManager = e + var r = createNS('feColorMatrix') + if ( + (r.setAttribute('type', 'matrix'), + r.setAttribute('color-interpolation-filters', 'linearRGB'), + r.setAttribute('values', '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0'), + r.setAttribute('result', 'f1'), + t.appendChild(r), + (r = createNS('feColorMatrix')).setAttribute('type', 'matrix'), + r.setAttribute('color-interpolation-filters', 'sRGB'), + r.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0'), + r.setAttribute('result', 'f2'), + t.appendChild(r), + (this.matrixFilter = r), + 100 !== e.effectElements[2].p.v || e.effectElements[2].p.k) + ) { + var i, + s = createNS('feMerge') + ;(t.appendChild(s), + (i = createNS('feMergeNode')).setAttribute('in', 'SourceGraphic'), + s.appendChild(i), + (i = createNS('feMergeNode')).setAttribute('in', 'f2'), + s.appendChild(i)) + } + } + function SVGFillFilter(t, e) { + this.filterManager = e + var r = createNS('feColorMatrix') + ;(r.setAttribute('type', 'matrix'), + r.setAttribute('color-interpolation-filters', 'sRGB'), + r.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0'), + t.appendChild(r), + (this.matrixFilter = r)) + } + function SVGGaussianBlurEffect(t, e) { + ;(t.setAttribute('x', '-100%'), + t.setAttribute('y', '-100%'), + t.setAttribute('width', '300%'), + t.setAttribute('height', '300%'), + (this.filterManager = e)) + var r = createNS('feGaussianBlur') + ;(t.appendChild(r), (this.feGaussianBlur = r)) + } + function SVGStrokeEffect(t, e) { + ;((this.initialized = !1), (this.filterManager = e), (this.elem = t), (this.paths = [])) + } + function SVGTritoneFilter(t, e) { + this.filterManager = e + var r = createNS('feColorMatrix') + ;(r.setAttribute('type', 'matrix'), + r.setAttribute('color-interpolation-filters', 'linearRGB'), + r.setAttribute('values', '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0'), + r.setAttribute('result', 'f1'), + t.appendChild(r)) + var i = createNS('feComponentTransfer') + ;(i.setAttribute('color-interpolation-filters', 'sRGB'), t.appendChild(i), (this.matrixFilter = i)) + var s = createNS('feFuncR') + ;(s.setAttribute('type', 'table'), i.appendChild(s), (this.feFuncR = s)) + var a = createNS('feFuncG') + ;(a.setAttribute('type', 'table'), i.appendChild(a), (this.feFuncG = a)) + var n = createNS('feFuncB') + ;(n.setAttribute('type', 'table'), i.appendChild(n), (this.feFuncB = n)) + } + function SVGProLevelsFilter(t, e) { + this.filterManager = e + var r = this.filterManager.effectElements, + i = createNS('feComponentTransfer') + ;((r[10].p.k || + 0 !== r[10].p.v || + r[11].p.k || + 1 !== r[11].p.v || + r[12].p.k || + 1 !== r[12].p.v || + r[13].p.k || + 0 !== r[13].p.v || + r[14].p.k || + 1 !== r[14].p.v) && + (this.feFuncR = this.createFeFunc('feFuncR', i)), + (r[17].p.k || + 0 !== r[17].p.v || + r[18].p.k || + 1 !== r[18].p.v || + r[19].p.k || + 1 !== r[19].p.v || + r[20].p.k || + 0 !== r[20].p.v || + r[21].p.k || + 1 !== r[21].p.v) && + (this.feFuncG = this.createFeFunc('feFuncG', i)), + (r[24].p.k || + 0 !== r[24].p.v || + r[25].p.k || + 1 !== r[25].p.v || + r[26].p.k || + 1 !== r[26].p.v || + r[27].p.k || + 0 !== r[27].p.v || + r[28].p.k || + 1 !== r[28].p.v) && + (this.feFuncB = this.createFeFunc('feFuncB', i)), + (r[31].p.k || + 0 !== r[31].p.v || + r[32].p.k || + 1 !== r[32].p.v || + r[33].p.k || + 1 !== r[33].p.v || + r[34].p.k || + 0 !== r[34].p.v || + r[35].p.k || + 1 !== r[35].p.v) && + (this.feFuncA = this.createFeFunc('feFuncA', i)), + (this.feFuncR || this.feFuncG || this.feFuncB || this.feFuncA) && + (i.setAttribute('color-interpolation-filters', 'sRGB'), t.appendChild(i), (i = createNS('feComponentTransfer'))), + (r[3].p.k || + 0 !== r[3].p.v || + r[4].p.k || + 1 !== r[4].p.v || + r[5].p.k || + 1 !== r[5].p.v || + r[6].p.k || + 0 !== r[6].p.v || + r[7].p.k || + 1 !== r[7].p.v) && + (i.setAttribute('color-interpolation-filters', 'sRGB'), + t.appendChild(i), + (this.feFuncRComposed = this.createFeFunc('feFuncR', i)), + (this.feFuncGComposed = this.createFeFunc('feFuncG', i)), + (this.feFuncBComposed = this.createFeFunc('feFuncB', i)))) + } + function SVGDropShadowEffect(t, e) { + ;(t.setAttribute('x', '-100%'), + t.setAttribute('y', '-100%'), + t.setAttribute('width', '400%'), + t.setAttribute('height', '400%'), + (this.filterManager = e)) + var r = createNS('feGaussianBlur') + ;(r.setAttribute('in', 'SourceAlpha'), + r.setAttribute('result', 'drop_shadow_1'), + r.setAttribute('stdDeviation', '0'), + (this.feGaussianBlur = r), + t.appendChild(r)) + var i = createNS('feOffset') + ;(i.setAttribute('dx', '25'), + i.setAttribute('dy', '0'), + i.setAttribute('in', 'drop_shadow_1'), + i.setAttribute('result', 'drop_shadow_2'), + (this.feOffset = i), + t.appendChild(i)) + var s = createNS('feFlood') + ;(s.setAttribute('flood-color', '#00ff00'), + s.setAttribute('flood-opacity', '1'), + s.setAttribute('result', 'drop_shadow_3'), + (this.feFlood = s), + t.appendChild(s)) + var a = createNS('feComposite') + ;(a.setAttribute('in', 'drop_shadow_3'), + a.setAttribute('in2', 'drop_shadow_2'), + a.setAttribute('operator', 'in'), + a.setAttribute('result', 'drop_shadow_4'), + t.appendChild(a)) + var n, + o = createNS('feMerge') + ;(t.appendChild(o), + (n = createNS('feMergeNode')), + o.appendChild(n), + (n = createNS('feMergeNode')).setAttribute('in', 'SourceGraphic'), + (this.feMergeNode = n), + (this.feMerge = o), + (this.originalNodeAdded = !1), + o.appendChild(n)) + } + ;((ShapeTransformManager.prototype = { + addTransformSequence: function (t) { + var e, + r = t.length, + i = '_' + for (e = 0; e < r; e += 1) i += t[e].transform.key + '_' + var s = this.sequences[i] + return ( + s || ((s = { transforms: [].concat(t), finalTransform: new Matrix(), _mdf: !1 }), (this.sequences[i] = s), this.sequenceList.push(s)), + s + ) + }, + processSequence: function (t, e) { + for (var r, i = 0, s = t.transforms.length, a = e; i < s && !e; ) { + if (t.transforms[i].transform.mProps._mdf) { + a = !0 + break + } + i += 1 + } + if (a) + for (t.finalTransform.reset(), i = s - 1; 0 <= i; i -= 1) + ((r = t.transforms[i].transform.mProps.v.props), + t.finalTransform.transform(r[0], r[1], r[2], r[3], r[4], r[5], r[6], r[7], r[8], r[9], r[10], r[11], r[12], r[13], r[14], r[15])) + t._mdf = a + }, + processSequences: function (t) { + var e, + r = this.sequenceList.length + for (e = 0; e < r; e += 1) this.processSequence(this.sequenceList[e], t) + }, + getNewKey: function () { + return '_' + this.transform_key_count++ + }, + }), + (CVShapeData.prototype.setAsAnimated = SVGShapeData.prototype.setAsAnimated), + (BaseElement.prototype = { + checkMasks: function () { + if (!this.data.hasMask) return !1 + for (var t = 0, e = this.data.masksProperties.length; t < e; ) { + if ('n' !== this.data.masksProperties[t].mode && !1 !== this.data.masksProperties[t].cl) return !0 + t += 1 + } + return !1 + }, + initExpressions: function () { + ;((this.layerInterface = LayerExpressionInterface(this)), + this.data.hasMask && this.maskManager && this.layerInterface.registerMaskInterface(this.maskManager)) + var t = EffectsExpressionInterface.createEffectsInterface(this, this.layerInterface) + ;(this.layerInterface.registerEffectsInterface(t), + 0 === this.data.ty || this.data.xt + ? (this.compInterface = CompExpressionInterface(this)) + : 4 === this.data.ty + ? ((this.layerInterface.shapeInterface = ShapeExpressionInterface(this.shapesData, this.itemsData, this.layerInterface)), + (this.layerInterface.content = this.layerInterface.shapeInterface)) + : 5 === this.data.ty && + ((this.layerInterface.textInterface = TextExpressionInterface(this)), + (this.layerInterface.text = this.layerInterface.textInterface))) + }, + setBlendMode: function () { + var t = getBlendMode(this.data.bm) + ;(this.baseElement || this.layerElement).style['mix-blend-mode'] = t + }, + initBaseData: function (t, e, r) { + ;((this.globalData = e), + (this.comp = r), + (this.data = t), + (this.layerId = createElementID()), + this.data.sr || (this.data.sr = 1), + (this.effectsManager = new EffectsManager(this.data, this, this.dynamicProperties))) + }, + getType: function () { + return this.type + }, + sourceRectAtTime: function () {}, + }), + (NullElement.prototype.prepareFrame = function (t) { + this.prepareProperties(t, !0) + }), + (NullElement.prototype.renderFrame = function () {}), + (NullElement.prototype.getBaseElement = function () { + return null + }), + (NullElement.prototype.destroy = function () {}), + (NullElement.prototype.sourceRectAtTime = function () {}), + (NullElement.prototype.hide = function () {}), + extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement], NullElement), + (SVGBaseElement.prototype = { + initRendererElement: function () { + this.layerElement = createNS('g') + }, + createContainerElements: function () { + ;((this.matteElement = createNS('g')), + (this.transformedElement = this.layerElement), + (this.maskedElement = this.layerElement), + (this._sizeChanged = !1)) + var t, + e, + r, + i = null + if (this.data.td) { + if (3 == this.data.td || 1 == this.data.td) { + var s = createNS('mask') + ;(s.setAttribute('id', this.layerId), + s.setAttribute('mask-type', 3 == this.data.td ? 'luminance' : 'alpha'), + s.appendChild(this.layerElement), + (i = s), + this.globalData.defs.appendChild(s), + featureSupport.maskType || + 1 != this.data.td || + (s.setAttribute('mask-type', 'luminance'), + (t = createElementID()), + (e = filtersFactory.createFilter(t)), + this.globalData.defs.appendChild(e), + e.appendChild(filtersFactory.createAlphaToLuminanceFilter()), + (r = createNS('g')).appendChild(this.layerElement), + (i = r), + s.appendChild(r), + r.setAttribute('filter', 'url(' + locationHref + '#' + t + ')'))) + } else if (2 == this.data.td) { + var a = createNS('mask') + ;(a.setAttribute('id', this.layerId), a.setAttribute('mask-type', 'alpha')) + var n = createNS('g') + ;(a.appendChild(n), (t = createElementID()), (e = filtersFactory.createFilter(t))) + var o = createNS('feComponentTransfer') + ;(o.setAttribute('in', 'SourceGraphic'), e.appendChild(o)) + var h = createNS('feFuncA') + ;(h.setAttribute('type', 'table'), h.setAttribute('tableValues', '1.0 0.0'), o.appendChild(h), this.globalData.defs.appendChild(e)) + var l = createNS('rect') + ;(l.setAttribute('width', this.comp.data.w), + l.setAttribute('height', this.comp.data.h), + l.setAttribute('x', '0'), + l.setAttribute('y', '0'), + l.setAttribute('fill', '#ffffff'), + l.setAttribute('opacity', '0'), + n.setAttribute('filter', 'url(' + locationHref + '#' + t + ')'), + n.appendChild(l), + n.appendChild(this.layerElement), + (i = n), + featureSupport.maskType || + (a.setAttribute('mask-type', 'luminance'), + e.appendChild(filtersFactory.createAlphaToLuminanceFilter()), + (r = createNS('g')), + n.appendChild(l), + r.appendChild(this.layerElement), + (i = r), + n.appendChild(r)), + this.globalData.defs.appendChild(a)) + } + } else + this.data.tt + ? (this.matteElement.appendChild(this.layerElement), (i = this.matteElement), (this.baseElement = this.matteElement)) + : (this.baseElement = this.layerElement) + if ( + (this.data.ln && this.layerElement.setAttribute('id', this.data.ln), + this.data.cl && this.layerElement.setAttribute('class', this.data.cl), + 0 === this.data.ty && !this.data.hd) + ) { + var p = createNS('clipPath'), + m = createNS('path') + m.setAttribute('d', 'M0,0 L' + this.data.w + ',0 L' + this.data.w + ',' + this.data.h + ' L0,' + this.data.h + 'z') + var f = createElementID() + if ((p.setAttribute('id', f), p.appendChild(m), this.globalData.defs.appendChild(p), this.checkMasks())) { + var c = createNS('g') + ;(c.setAttribute('clip-path', 'url(' + locationHref + '#' + f + ')'), + c.appendChild(this.layerElement), + (this.transformedElement = c), + i ? i.appendChild(this.transformedElement) : (this.baseElement = this.transformedElement)) + } else this.layerElement.setAttribute('clip-path', 'url(' + locationHref + '#' + f + ')') + } + 0 !== this.data.bm && this.setBlendMode() + }, + renderElement: function () { + ;(this.finalTransform._matMdf && this.transformedElement.setAttribute('transform', this.finalTransform.mat.to2dCSS()), + this.finalTransform._opMdf && this.transformedElement.setAttribute('opacity', this.finalTransform.mProp.o.v)) + }, + destroyBaseElement: function () { + ;((this.layerElement = null), (this.matteElement = null), this.maskManager.destroy()) + }, + getBaseElement: function () { + return this.data.hd ? null : this.baseElement + }, + createRenderableComponents: function () { + ;((this.maskManager = new MaskElement(this.data, this, this.globalData)), (this.renderableEffectsManager = new SVGEffects(this))) + }, + setMatte: function (t) { + this.matteElement && this.matteElement.setAttribute('mask', 'url(' + locationHref + '#' + t + ')') + }, + }), + (IShapeElement.prototype = { + addShapeToModifiers: function (t) { + var e, + r = this.shapeModifiers.length + for (e = 0; e < r; e += 1) this.shapeModifiers[e].addShape(t) + }, + isShapeInAnimatedModifiers: function (t) { + for (var e = this.shapeModifiers.length; 0 < e; ) if (this.shapeModifiers[0].isAnimatedWithShape(t)) return !0 + return !1 + }, + renderModifiers: function () { + if (this.shapeModifiers.length) { + var t, + e = this.shapes.length + for (t = 0; t < e; t += 1) this.shapes[t].sh.reset() + for (t = (e = this.shapeModifiers.length) - 1; 0 <= t; t -= 1) this.shapeModifiers[t].processShapes(this._isFirstFrame) + } + }, + lcEnum: { 1: 'butt', 2: 'round', 3: 'square' }, + ljEnum: { 1: 'miter', 2: 'round', 3: 'bevel' }, + searchProcessedElement: function (t) { + for (var e = this.processedElements, r = 0, i = e.length; r < i; ) { + if (e[r].elem === t) return e[r].pos + r += 1 + } + return 0 + }, + addProcessedElement: function (t, e) { + for (var r = this.processedElements, i = r.length; i; ) if (r[(i -= 1)].elem === t) return void (r[i].pos = e) + r.push(new ProcessedElement(t, e)) + }, + prepareFrame: function (t) { + ;(this.prepareRenderableFrame(t), this.prepareProperties(t, this.isInRange)) + }, + }), + (ITextElement.prototype.initElement = function (t, e, r) { + ;((this.lettersChangedFlag = !0), + this.initFrame(), + this.initBaseData(t, e, r), + (this.textProperty = new TextProperty(this, t.t, this.dynamicProperties)), + (this.textAnimator = new TextAnimatorProperty(t.t, this.renderType, this)), + this.initTransform(t, e, r), + this.initHierarchy(), + this.initRenderable(), + this.initRendererElement(), + this.createContainerElements(), + this.createRenderableComponents(), + this.createContent(), + this.hide(), + this.textAnimator.searchProperties(this.dynamicProperties)) + }), + (ITextElement.prototype.prepareFrame = function (t) { + ;((this._mdf = !1), + this.prepareRenderableFrame(t), + this.prepareProperties(t, this.isInRange), + (this.textProperty._mdf || this.textProperty._isFirstFrame) && + (this.buildNewText(), (this.textProperty._isFirstFrame = !1), (this.textProperty._mdf = !1))) + }), + (ITextElement.prototype.createPathShape = function (t, e) { + var r, + i, + s = e.length, + a = '' + for (r = 0; r < s; r += 1) ((i = e[r].ks.k), (a += buildShapeString(i, i.i.length, !0, t))) + return a + }), + (ITextElement.prototype.updateDocumentData = function (t, e) { + this.textProperty.updateDocumentData(t, e) + }), + (ITextElement.prototype.canResizeFont = function (t) { + this.textProperty.canResizeFont(t) + }), + (ITextElement.prototype.setMinimumFontSize = function (t) { + this.textProperty.setMinimumFontSize(t) + }), + (ITextElement.prototype.applyTextPropertiesToMatrix = function (t, e, r, i, s) { + switch ((t.ps && e.translate(t.ps[0], t.ps[1] + t.ascent, 0), e.translate(0, -t.ls, 0), t.j)) { + case 1: + e.translate(t.justifyOffset + (t.boxWidth - t.lineWidths[r]), 0, 0) + break + case 2: + e.translate(t.justifyOffset + (t.boxWidth - t.lineWidths[r]) / 2, 0, 0) + } + e.translate(i, s, 0) + }), + (ITextElement.prototype.buildColor = function (t) { + return 'rgb(' + Math.round(255 * t[0]) + ',' + Math.round(255 * t[1]) + ',' + Math.round(255 * t[2]) + ')' + }), + (ITextElement.prototype.emptyProp = new LetterProps()), + (ITextElement.prototype.destroy = function () {}), + extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement], ICompElement), + (ICompElement.prototype.initElement = function (t, e, r) { + ;(this.initFrame(), + this.initBaseData(t, e, r), + this.initTransform(t, e, r), + this.initRenderable(), + this.initHierarchy(), + this.initRendererElement(), + this.createContainerElements(), + this.createRenderableComponents(), + (!this.data.xt && e.progressiveLoad) || this.buildAllItems(), + this.hide()) + }), + (ICompElement.prototype.prepareFrame = function (t) { + if (((this._mdf = !1), this.prepareRenderableFrame(t), this.prepareProperties(t, this.isInRange), this.isInRange || this.data.xt)) { + if (this.tm._placeholder) this.renderedFrame = t / this.data.sr + else { + var e = this.tm.v + ;(e === this.data.op && (e = this.data.op - 1), (this.renderedFrame = e)) + } + var r, + i = this.elements.length + for (this.completeLayers || this.checkLayers(this.renderedFrame), r = i - 1; 0 <= r; r -= 1) + (this.completeLayers || this.elements[r]) && + (this.elements[r].prepareFrame(this.renderedFrame - this.layers[r].st), this.elements[r]._mdf && (this._mdf = !0)) + } + }), + (ICompElement.prototype.renderInnerContent = function () { + var t, + e = this.layers.length + for (t = 0; t < e; t += 1) (this.completeLayers || this.elements[t]) && this.elements[t].renderFrame() + }), + (ICompElement.prototype.setElements = function (t) { + this.elements = t + }), + (ICompElement.prototype.getElements = function () { + return this.elements + }), + (ICompElement.prototype.destroyElements = function () { + var t, + e = this.layers.length + for (t = 0; t < e; t += 1) this.elements[t] && this.elements[t].destroy() + }), + (ICompElement.prototype.destroy = function () { + ;(this.destroyElements(), this.destroyBaseElement()) + }), + extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], IImageElement), + (IImageElement.prototype.createContent = function () { + var t = this.globalData.getAssetsPath(this.assetData) + ;((this.innerElem = createNS('image')), + this.innerElem.setAttribute('width', this.assetData.w + 'px'), + this.innerElem.setAttribute('height', this.assetData.h + 'px'), + this.innerElem.setAttribute('preserveAspectRatio', this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio), + this.innerElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', t), + this.layerElement.appendChild(this.innerElem)) + }), + (IImageElement.prototype.sourceRectAtTime = function () { + return this.sourceRect + }), + extendPrototype([IImageElement], ISolidElement), + (ISolidElement.prototype.createContent = function () { + var t = createNS('rect') + ;(t.setAttribute('width', this.data.sw), + t.setAttribute('height', this.data.sh), + t.setAttribute('fill', this.data.sc), + this.layerElement.appendChild(t)) + }), + extendPrototype([SVGRenderer, ICompElement, SVGBaseElement], SVGCompElement), + extendPrototype( + [BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], + SVGTextElement, + ), + (SVGTextElement.prototype.createContent = function () { + this.data.singleShape && !this.globalData.fontManager.chars && (this.textContainer = createNS('text')) + }), + (SVGTextElement.prototype.buildTextContents = function (t) { + for (var e = 0, r = t.length, i = [], s = ''; e < r; ) + (t[e] === String.fromCharCode(13) || t[e] === String.fromCharCode(3) ? (i.push(s), (s = '')) : (s += t[e]), (e += 1)) + return (i.push(s), i) + }), + (SVGTextElement.prototype.buildNewText = function () { + var t, + e, + r = this.textProperty.currentData + ;((this.renderedLetters = createSizedArray(r ? r.l.length : 0)), + r.fc ? this.layerElement.setAttribute('fill', this.buildColor(r.fc)) : this.layerElement.setAttribute('fill', 'rgba(0,0,0,0)'), + r.sc && (this.layerElement.setAttribute('stroke', this.buildColor(r.sc)), this.layerElement.setAttribute('stroke-width', r.sw)), + this.layerElement.setAttribute('font-size', r.finalSize)) + var i = this.globalData.fontManager.getFontByName(r.f) + if (i.fClass) this.layerElement.setAttribute('class', i.fClass) + else { + this.layerElement.setAttribute('font-family', i.fFamily) + var s = r.fWeight, + a = r.fStyle + ;(this.layerElement.setAttribute('font-style', a), this.layerElement.setAttribute('font-weight', s)) + } + this.layerElement.setAttribute('aria-label', r.t) + var n, + o = r.l || [], + h = !!this.globalData.fontManager.chars + e = o.length + var l, + p = this.mHelper, + m = '', + f = this.data.singleShape, + c = 0, + d = 0, + u = !0, + y = (r.tr / 1e3) * r.finalSize + if (!f || h || r.sz) { + var g, + v, + b = this.textSpans.length + for (t = 0; t < e; t += 1) + ((h && f && 0 !== t) || + ((n = t < b ? this.textSpans[t] : createNS(h ? 'path' : 'text')), + b <= t && + (n.setAttribute('stroke-linecap', 'butt'), + n.setAttribute('stroke-linejoin', 'round'), + n.setAttribute('stroke-miterlimit', '4'), + (this.textSpans[t] = n), + this.layerElement.appendChild(n)), + (n.style.display = 'inherit')), + p.reset(), + p.scale(r.finalSize / 100, r.finalSize / 100), + f && + (o[t].n && ((c = -y), (d += r.yOffset), (d += u ? 1 : 0), (u = !1)), + this.applyTextPropertiesToMatrix(r, p, o[t].line, c, d), + (c += o[t].l || 0), + (c += y)), + h + ? ((l = (g = + ((v = this.globalData.fontManager.getCharData( + r.finalText[t], + i.fStyle, + this.globalData.fontManager.getFontByName(r.f).fFamily, + )) && + v.data) || + {}).shapes + ? g.shapes[0].it + : []), + f ? (m += this.createPathShape(p, l)) : n.setAttribute('d', this.createPathShape(p, l))) + : (f && n.setAttribute('transform', 'translate(' + p.props[12] + ',' + p.props[13] + ')'), + (n.textContent = o[t].val), + n.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve'))) + f && n && n.setAttribute('d', m) + } else { + var E = this.textContainer, + x = 'start' + switch (r.j) { + case 1: + x = 'end' + break + case 2: + x = 'middle' + } + ;(E.setAttribute('text-anchor', x), E.setAttribute('letter-spacing', y)) + var P = this.buildTextContents(r.finalText) + for (e = P.length, d = r.ps ? r.ps[1] + r.ascent : 0, t = 0; t < e; t += 1) + (((n = this.textSpans[t] || createNS('tspan')).textContent = P[t]), + n.setAttribute('x', 0), + n.setAttribute('y', d), + (n.style.display = 'inherit'), + E.appendChild(n), + (this.textSpans[t] = n), + (d += r.finalLineHeight)) + this.layerElement.appendChild(E) + } + for (; t < this.textSpans.length; ) ((this.textSpans[t].style.display = 'none'), (t += 1)) + this._sizeChanged = !0 + }), + (SVGTextElement.prototype.sourceRectAtTime = function (t) { + if ((this.prepareFrame(this.comp.renderedFrame - this.data.st), this.renderInnerContent(), this._sizeChanged)) { + this._sizeChanged = !1 + var e = this.layerElement.getBBox() + this.bbox = { top: e.y, left: e.x, width: e.width, height: e.height } + } + return this.bbox + }), + (SVGTextElement.prototype.renderInnerContent = function () { + if ( + !this.data.singleShape && + (this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag), + this.lettersChangedFlag || this.textAnimator.lettersChangedFlag) + ) { + var t, e + this._sizeChanged = !0 + var r, + i, + s = this.textAnimator.renderedLetters, + a = this.textProperty.currentData.l + for (e = a.length, t = 0; t < e; t += 1) + a[t].n || + ((r = s[t]), + (i = this.textSpans[t]), + r._mdf.m && i.setAttribute('transform', r.m), + r._mdf.o && i.setAttribute('opacity', r.o), + r._mdf.sw && i.setAttribute('stroke-width', r.sw), + r._mdf.sc && i.setAttribute('stroke', r.sc), + r._mdf.fc && i.setAttribute('fill', r.fc)) + } + }), + extendPrototype( + [BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableDOMElement], + SVGShapeElement, + ), + (SVGShapeElement.prototype.initSecondaryElement = function () {}), + (SVGShapeElement.prototype.identityMatrix = new Matrix()), + (SVGShapeElement.prototype.buildExpressionInterface = function () {}), + (SVGShapeElement.prototype.createContent = function () { + ;(this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], !0), this.filterUniqueShapes()) + }), + (SVGShapeElement.prototype.filterUniqueShapes = function () { + var t, + e, + r, + i, + s = this.shapes.length, + a = this.stylesList.length, + n = [], + o = !1 + for (r = 0; r < a; r += 1) { + for (i = this.stylesList[r], o = !1, t = n.length = 0; t < s; t += 1) + -1 !== (e = this.shapes[t]).styles.indexOf(i) && (n.push(e), (o = e._isAnimated || o)) + 1 < n.length && o && this.setShapesAsAnimated(n) + } + }), + (SVGShapeElement.prototype.setShapesAsAnimated = function (t) { + var e, + r = t.length + for (e = 0; e < r; e += 1) t[e].setAsAnimated() + }), + (SVGShapeElement.prototype.createStyleElement = function (t, e) { + var r, + i = new SVGStyleData(t, e), + s = i.pElem + if ('st' === t.ty) r = new SVGStrokeStyleData(this, t, i) + else if ('fl' === t.ty) r = new SVGFillStyleData(this, t, i) + else if ('gf' === t.ty || 'gs' === t.ty) { + ;((r = new ('gf' === t.ty ? SVGGradientFillStyleData : SVGGradientStrokeStyleData)(this, t, i)), + this.globalData.defs.appendChild(r.gf), + r.maskId && + (this.globalData.defs.appendChild(r.ms), + this.globalData.defs.appendChild(r.of), + s.setAttribute('mask', 'url(' + locationHref + '#' + r.maskId + ')'))) + } + return ( + ('st' !== t.ty && 'gs' !== t.ty) || + (s.setAttribute('stroke-linecap', this.lcEnum[t.lc] || 'round'), + s.setAttribute('stroke-linejoin', this.ljEnum[t.lj] || 'round'), + s.setAttribute('fill-opacity', '0'), + 1 === t.lj && s.setAttribute('stroke-miterlimit', t.ml)), + 2 === t.r && s.setAttribute('fill-rule', 'evenodd'), + t.ln && s.setAttribute('id', t.ln), + t.cl && s.setAttribute('class', t.cl), + t.bm && (s.style['mix-blend-mode'] = getBlendMode(t.bm)), + this.stylesList.push(i), + this.addToAnimatedContents(t, r), + r + ) + }), + (SVGShapeElement.prototype.createGroupElement = function (t) { + var e = new ShapeGroupData() + return ( + t.ln && e.gr.setAttribute('id', t.ln), + t.cl && e.gr.setAttribute('class', t.cl), + t.bm && (e.gr.style['mix-blend-mode'] = getBlendMode(t.bm)), + e + ) + }), + (SVGShapeElement.prototype.createTransformElement = function (t, e) { + var r = TransformPropertyFactory.getTransformProperty(this, t, this), + i = new SVGTransformData(r, r.o, e) + return (this.addToAnimatedContents(t, i), i) + }), + (SVGShapeElement.prototype.createShapeElement = function (t, e, r) { + var i = 4 + 'rc' === t.ty ? (i = 5) : 'el' === t.ty ? (i = 6) : 'sr' === t.ty && (i = 7) + var s = new SVGShapeData(e, r, ShapePropertyFactory.getShapeProp(this, t, i, this)) + return (this.shapes.push(s), this.addShapeToModifiers(s), this.addToAnimatedContents(t, s), s) + }), + (SVGShapeElement.prototype.addToAnimatedContents = function (t, e) { + for (var r = 0, i = this.animatedContents.length; r < i; ) { + if (this.animatedContents[r].element === e) return + r += 1 + } + this.animatedContents.push({ fn: SVGElementsRenderer.createRenderFunction(t), element: e, data: t }) + }), + (SVGShapeElement.prototype.setElementStyles = function (t) { + var e, + r = t.styles, + i = this.stylesList.length + for (e = 0; e < i; e += 1) this.stylesList[e].closed || r.push(this.stylesList[e]) + }), + (SVGShapeElement.prototype.reloadShapes = function () { + this._isFirstFrame = !0 + var t, + e = this.itemsData.length + for (t = 0; t < e; t += 1) this.prevViewData[t] = this.itemsData[t] + for ( + this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], !0), + this.filterUniqueShapes(), + e = this.dynamicProperties.length, + t = 0; + t < e; + t += 1 + ) + this.dynamicProperties[t].getValue() + this.renderModifiers() + }), + (SVGShapeElement.prototype.searchShapes = function (t, e, r, i, s, a, n) { + var o, + h, + l, + p, + m, + f, + c = [].concat(a), + d = t.length - 1, + u = [], + y = [] + for (o = d; 0 <= o; o -= 1) { + if ( + ((f = this.searchProcessedElement(t[o])) ? (e[o] = r[f - 1]) : (t[o]._render = n), + 'fl' == t[o].ty || 'st' == t[o].ty || 'gf' == t[o].ty || 'gs' == t[o].ty) + ) + (f ? (e[o].style.closed = !1) : (e[o] = this.createStyleElement(t[o], s)), + t[o]._render && i.appendChild(e[o].style.pElem), + u.push(e[o].style)) + else if ('gr' == t[o].ty) { + if (f) for (l = e[o].it.length, h = 0; h < l; h += 1) e[o].prevViewData[h] = e[o].it[h] + else e[o] = this.createGroupElement(t[o]) + ;(this.searchShapes(t[o].it, e[o].it, e[o].prevViewData, e[o].gr, s + 1, c, n), t[o]._render && i.appendChild(e[o].gr)) + } else + 'tr' == t[o].ty + ? (f || (e[o] = this.createTransformElement(t[o], i)), (p = e[o].transform), c.push(p)) + : 'sh' == t[o].ty || 'rc' == t[o].ty || 'el' == t[o].ty || 'sr' == t[o].ty + ? (f || (e[o] = this.createShapeElement(t[o], c, s)), this.setElementStyles(e[o])) + : 'tm' == t[o].ty || 'rd' == t[o].ty || 'ms' == t[o].ty + ? (f + ? ((m = e[o]).closed = !1) + : ((m = ShapeModifiers.getModifier(t[o].ty)).init(this, t[o]), (e[o] = m), this.shapeModifiers.push(m)), + y.push(m)) + : 'rp' == t[o].ty && + (f + ? ((m = e[o]).closed = !0) + : ((m = ShapeModifiers.getModifier(t[o].ty)), (e[o] = m).init(this, t, o, e), this.shapeModifiers.push(m), (n = !1)), + y.push(m)) + this.addProcessedElement(t[o], o + 1) + } + for (d = u.length, o = 0; o < d; o += 1) u[o].closed = !0 + for (d = y.length, o = 0; o < d; o += 1) y[o].closed = !0 + }), + (SVGShapeElement.prototype.renderInnerContent = function () { + this.renderModifiers() + var t, + e = this.stylesList.length + for (t = 0; t < e; t += 1) this.stylesList[t].reset() + for (this.renderShape(), t = 0; t < e; t += 1) + (this.stylesList[t]._mdf || this._isFirstFrame) && + (this.stylesList[t].msElem && + (this.stylesList[t].msElem.setAttribute('d', this.stylesList[t].d), (this.stylesList[t].d = 'M0 0' + this.stylesList[t].d)), + this.stylesList[t].pElem.setAttribute('d', this.stylesList[t].d || 'M0 0')) + }), + (SVGShapeElement.prototype.renderShape = function () { + var t, + e, + r = this.animatedContents.length + for (t = 0; t < r; t += 1) + ((e = this.animatedContents[t]), + (this._isFirstFrame || e.element._isAnimated) && !0 !== e.data && e.fn(e.data, e.element, this._isFirstFrame)) + }), + (SVGShapeElement.prototype.destroy = function () { + ;(this.destroyBaseElement(), (this.shapesData = null), (this.itemsData = null)) + }), + (SVGTintFilter.prototype.renderFrame = function (t) { + if (t || this.filterManager._mdf) { + var e = this.filterManager.effectElements[0].p.v, + r = this.filterManager.effectElements[1].p.v, + i = this.filterManager.effectElements[2].p.v / 100 + this.matrixFilter.setAttribute( + 'values', + r[0] - e[0] + ' 0 0 0 ' + e[0] + ' ' + (r[1] - e[1]) + ' 0 0 0 ' + e[1] + ' ' + (r[2] - e[2]) + ' 0 0 0 ' + e[2] + ' 0 0 0 ' + i + ' 0', + ) + } + }), + (SVGFillFilter.prototype.renderFrame = function (t) { + if (t || this.filterManager._mdf) { + var e = this.filterManager.effectElements[2].p.v, + r = this.filterManager.effectElements[6].p.v + this.matrixFilter.setAttribute('values', '0 0 0 0 ' + e[0] + ' 0 0 0 0 ' + e[1] + ' 0 0 0 0 ' + e[2] + ' 0 0 0 ' + r + ' 0') + } + }), + (SVGGaussianBlurEffect.prototype.renderFrame = function (t) { + if (t || this.filterManager._mdf) { + var e = 0.3 * this.filterManager.effectElements[0].p.v, + r = this.filterManager.effectElements[1].p.v, + i = 3 == r ? 0 : e, + s = 2 == r ? 0 : e + this.feGaussianBlur.setAttribute('stdDeviation', i + ' ' + s) + var a = 1 == this.filterManager.effectElements[2].p.v ? 'wrap' : 'duplicate' + this.feGaussianBlur.setAttribute('edgeMode', a) + } + }), + (SVGStrokeEffect.prototype.initialize = function () { + var t, + e, + r, + i, + s = this.elem.layerElement.children || this.elem.layerElement.childNodes + for ( + 1 === this.filterManager.effectElements[1].p.v + ? ((i = this.elem.maskManager.masksProperties.length), (r = 0)) + : (i = (r = this.filterManager.effectElements[0].p.v - 1) + 1), + (e = createNS('g')).setAttribute('fill', 'none'), + e.setAttribute('stroke-linecap', 'round'), + e.setAttribute('stroke-dashoffset', 1); + r < i; + r += 1 + ) + ((t = createNS('path')), e.appendChild(t), this.paths.push({ p: t, m: r })) + if (3 === this.filterManager.effectElements[10].p.v) { + var a = createNS('mask'), + n = createElementID() + ;(a.setAttribute('id', n), a.setAttribute('mask-type', 'alpha'), a.appendChild(e), this.elem.globalData.defs.appendChild(a)) + var o = createNS('g') + for (o.setAttribute('mask', 'url(' + locationHref + '#' + n + ')'); s[0]; ) o.appendChild(s[0]) + ;(this.elem.layerElement.appendChild(o), (this.masker = a), e.setAttribute('stroke', '#fff')) + } else if (1 === this.filterManager.effectElements[10].p.v || 2 === this.filterManager.effectElements[10].p.v) { + if (2 === this.filterManager.effectElements[10].p.v) + for (s = this.elem.layerElement.children || this.elem.layerElement.childNodes; s.length; ) this.elem.layerElement.removeChild(s[0]) + ;(this.elem.layerElement.appendChild(e), this.elem.layerElement.removeAttribute('mask'), e.setAttribute('stroke', '#fff')) + } + ;((this.initialized = !0), (this.pathMasker = e)) + }), + (SVGStrokeEffect.prototype.renderFrame = function (t) { + this.initialized || this.initialize() + var e, + r, + i, + s = this.paths.length + for (e = 0; e < s; e += 1) + if ( + -1 !== this.paths[e].m && + ((r = this.elem.maskManager.viewData[this.paths[e].m]), + (i = this.paths[e].p), + (t || this.filterManager._mdf || r.prop._mdf) && i.setAttribute('d', r.lastPath), + t || + this.filterManager.effectElements[9].p._mdf || + this.filterManager.effectElements[4].p._mdf || + this.filterManager.effectElements[7].p._mdf || + this.filterManager.effectElements[8].p._mdf || + r.prop._mdf) + ) { + var a + if (0 !== this.filterManager.effectElements[7].p.v || 100 !== this.filterManager.effectElements[8].p.v) { + var n = Math.min(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) / 100, + o = Math.max(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) / 100, + h = i.getTotalLength() + a = '0 0 0 ' + h * n + ' ' + var l, + p = h * (o - n), + m = 1 + (2 * this.filterManager.effectElements[4].p.v * this.filterManager.effectElements[9].p.v) / 100, + f = Math.floor(p / m) + for (l = 0; l < f; l += 1) + a += '1 ' + (2 * this.filterManager.effectElements[4].p.v * this.filterManager.effectElements[9].p.v) / 100 + ' ' + a += '0 ' + 10 * h + ' 0 0' + } else a = '1 ' + (2 * this.filterManager.effectElements[4].p.v * this.filterManager.effectElements[9].p.v) / 100 + i.setAttribute('stroke-dasharray', a) + } + if ( + ((t || this.filterManager.effectElements[4].p._mdf) && + this.pathMasker.setAttribute('stroke-width', 2 * this.filterManager.effectElements[4].p.v), + (t || this.filterManager.effectElements[6].p._mdf) && this.pathMasker.setAttribute('opacity', this.filterManager.effectElements[6].p.v), + (1 === this.filterManager.effectElements[10].p.v || 2 === this.filterManager.effectElements[10].p.v) && + (t || this.filterManager.effectElements[3].p._mdf)) + ) { + var c = this.filterManager.effectElements[3].p.v + this.pathMasker.setAttribute('stroke', 'rgb(' + bm_floor(255 * c[0]) + ',' + bm_floor(255 * c[1]) + ',' + bm_floor(255 * c[2]) + ')') + } + }), + (SVGTritoneFilter.prototype.renderFrame = function (t) { + if (t || this.filterManager._mdf) { + var e = this.filterManager.effectElements[0].p.v, + r = this.filterManager.effectElements[1].p.v, + i = this.filterManager.effectElements[2].p.v, + s = i[0] + ' ' + r[0] + ' ' + e[0], + a = i[1] + ' ' + r[1] + ' ' + e[1], + n = i[2] + ' ' + r[2] + ' ' + e[2] + ;(this.feFuncR.setAttribute('tableValues', s), this.feFuncG.setAttribute('tableValues', a), this.feFuncB.setAttribute('tableValues', n)) + } + }), + (SVGProLevelsFilter.prototype.createFeFunc = function (t, e) { + var r = createNS(t) + return (r.setAttribute('type', 'table'), e.appendChild(r), r) + }), + (SVGProLevelsFilter.prototype.getTableValue = function (t, e, r, i, s) { + for (var a, n, o = 0, h = Math.min(t, e), l = Math.max(t, e), p = Array.call(null, { length: 256 }), m = 0, f = s - i, c = e - t; o <= 256; ) + ((n = (a = o / 256) <= h ? (c < 0 ? s : i) : l <= a ? (c < 0 ? i : s) : i + f * Math.pow((a - t) / c, 1 / r)), + (p[m++] = n), + (o += 256 / 255)) + return p.join(' ') + }), + (SVGProLevelsFilter.prototype.renderFrame = function (t) { + if (t || this.filterManager._mdf) { + var e, + r = this.filterManager.effectElements + ;(this.feFuncRComposed && + (t || r[3].p._mdf || r[4].p._mdf || r[5].p._mdf || r[6].p._mdf || r[7].p._mdf) && + ((e = this.getTableValue(r[3].p.v, r[4].p.v, r[5].p.v, r[6].p.v, r[7].p.v)), + this.feFuncRComposed.setAttribute('tableValues', e), + this.feFuncGComposed.setAttribute('tableValues', e), + this.feFuncBComposed.setAttribute('tableValues', e)), + this.feFuncR && + (t || r[10].p._mdf || r[11].p._mdf || r[12].p._mdf || r[13].p._mdf || r[14].p._mdf) && + ((e = this.getTableValue(r[10].p.v, r[11].p.v, r[12].p.v, r[13].p.v, r[14].p.v)), this.feFuncR.setAttribute('tableValues', e)), + this.feFuncG && + (t || r[17].p._mdf || r[18].p._mdf || r[19].p._mdf || r[20].p._mdf || r[21].p._mdf) && + ((e = this.getTableValue(r[17].p.v, r[18].p.v, r[19].p.v, r[20].p.v, r[21].p.v)), this.feFuncG.setAttribute('tableValues', e)), + this.feFuncB && + (t || r[24].p._mdf || r[25].p._mdf || r[26].p._mdf || r[27].p._mdf || r[28].p._mdf) && + ((e = this.getTableValue(r[24].p.v, r[25].p.v, r[26].p.v, r[27].p.v, r[28].p.v)), this.feFuncB.setAttribute('tableValues', e)), + this.feFuncA && + (t || r[31].p._mdf || r[32].p._mdf || r[33].p._mdf || r[34].p._mdf || r[35].p._mdf) && + ((e = this.getTableValue(r[31].p.v, r[32].p.v, r[33].p.v, r[34].p.v, r[35].p.v)), this.feFuncA.setAttribute('tableValues', e))) + } + }), + (SVGDropShadowEffect.prototype.renderFrame = function (t) { + if (t || this.filterManager._mdf) { + if ( + ((t || this.filterManager.effectElements[4].p._mdf) && + this.feGaussianBlur.setAttribute('stdDeviation', this.filterManager.effectElements[4].p.v / 4), + t || this.filterManager.effectElements[0].p._mdf) + ) { + var e = this.filterManager.effectElements[0].p.v + this.feFlood.setAttribute('flood-color', rgbToHex(Math.round(255 * e[0]), Math.round(255 * e[1]), Math.round(255 * e[2]))) + } + if ( + ((t || this.filterManager.effectElements[1].p._mdf) && + this.feFlood.setAttribute('flood-opacity', this.filterManager.effectElements[1].p.v / 255), + t || this.filterManager.effectElements[2].p._mdf || this.filterManager.effectElements[3].p._mdf) + ) { + var r = this.filterManager.effectElements[3].p.v, + i = (this.filterManager.effectElements[2].p.v - 90) * degToRads, + s = r * Math.cos(i), + a = r * Math.sin(i) + ;(this.feOffset.setAttribute('dx', s), this.feOffset.setAttribute('dy', a)) + } + } + })) + var _svgMatteSymbols = [] + function SVGMatte3Effect(t, e, r) { + ;((this.initialized = !1), + (this.filterManager = e), + (this.filterElem = t), + ((this.elem = r).matteElement = createNS('g')), + r.matteElement.appendChild(r.layerElement), + r.matteElement.appendChild(r.transformedElement), + (r.baseElement = r.matteElement)) + } + function SVGEffects(t) { + var e, + r, + i = t.data.ef ? t.data.ef.length : 0, + s = createElementID(), + a = filtersFactory.createFilter(s), + n = 0 + for (this.filters = [], e = 0; e < i; e += 1) + ((r = null), + 20 === t.data.ef[e].ty + ? ((n += 1), (r = new SVGTintFilter(a, t.effectsManager.effectElements[e]))) + : 21 === t.data.ef[e].ty + ? ((n += 1), (r = new SVGFillFilter(a, t.effectsManager.effectElements[e]))) + : 22 === t.data.ef[e].ty + ? (r = new SVGStrokeEffect(t, t.effectsManager.effectElements[e])) + : 23 === t.data.ef[e].ty + ? ((n += 1), (r = new SVGTritoneFilter(a, t.effectsManager.effectElements[e]))) + : 24 === t.data.ef[e].ty + ? ((n += 1), (r = new SVGProLevelsFilter(a, t.effectsManager.effectElements[e]))) + : 25 === t.data.ef[e].ty + ? ((n += 1), (r = new SVGDropShadowEffect(a, t.effectsManager.effectElements[e]))) + : 28 === t.data.ef[e].ty + ? (r = new SVGMatte3Effect(a, t.effectsManager.effectElements[e], t)) + : 29 === t.data.ef[e].ty && ((n += 1), (r = new SVGGaussianBlurEffect(a, t.effectsManager.effectElements[e]))), + r && this.filters.push(r)) + ;(n && (t.globalData.defs.appendChild(a), t.layerElement.setAttribute('filter', 'url(' + locationHref + '#' + s + ')')), + this.filters.length && t.addRenderableComponent(this)) + } + function CVContextData() { + ;((this.saved = []), (this.cArrPos = 0), (this.cTr = new Matrix()), (this.cO = 1)) + var t + for (this.savedOp = createTypedArray('float32', 15), t = 0; t < 15; t += 1) this.saved[t] = createTypedArray('float32', 16) + this._length = 15 + } + function CVBaseElement() {} + function CVImageElement(t, e, r) { + ;((this.assetData = e.getAssetData(t.refId)), (this.img = e.imageLoader.getImage(this.assetData)), this.initElement(t, e, r)) + } + function CVCompElement(t, e, r) { + ;((this.completeLayers = !1), + (this.layers = t.layers), + (this.pendingElements = []), + (this.elements = createSizedArray(this.layers.length)), + this.initElement(t, e, r), + (this.tm = t.tm ? PropertyFactory.getProp(this, t.tm, 0, e.frameRate, this) : { _placeholder: !0 })) + } + function CVMaskElement(t, e) { + ;((this.data = t), + (this.element = e), + (this.masksProperties = this.data.masksProperties || []), + (this.viewData = createSizedArray(this.masksProperties.length))) + var r, + i = this.masksProperties.length, + s = !1 + for (r = 0; r < i; r++) + ('n' !== this.masksProperties[r].mode && (s = !0), + (this.viewData[r] = ShapePropertyFactory.getShapeProp(this.element, this.masksProperties[r], 3))) + ;(this.hasMasks = s) && this.element.addRenderableComponent(this) + } + function CVShapeElement(t, e, r) { + ;((this.shapes = []), + (this.shapesData = t.shapes), + (this.stylesList = []), + (this.itemsData = []), + (this.prevViewData = []), + (this.shapeModifiers = []), + (this.processedElements = []), + (this.transformsManager = new ShapeTransformManager()), + this.initElement(t, e, r)) + } + function CVSolidElement(t, e, r) { + this.initElement(t, e, r) + } + function CVTextElement(t, e, r) { + ;((this.textSpans = []), + (this.yOffset = 0), + (this.fillColorAnim = !1), + (this.strokeColorAnim = !1), + (this.strokeWidthAnim = !1), + (this.stroke = !1), + (this.fill = !1), + (this.justifyOffset = 0), + (this.currentRender = null), + (this.renderType = 'canvas'), + (this.values = { fill: 'rgba(0,0,0,0)', stroke: 'rgba(0,0,0,0)', sWidth: 0, fValue: '' }), + this.initElement(t, e, r)) + } + function CVEffects() {} + function HBaseElement(t, e, r) {} + function HSolidElement(t, e, r) { + this.initElement(t, e, r) + } + function HCompElement(t, e, r) { + ;((this.layers = t.layers), + (this.supports3d = !t.hasMask), + (this.completeLayers = !1), + (this.pendingElements = []), + (this.elements = this.layers ? createSizedArray(this.layers.length) : []), + this.initElement(t, e, r), + (this.tm = t.tm ? PropertyFactory.getProp(this, t.tm, 0, e.frameRate, this) : { _placeholder: !0 })) + } + function HShapeElement(t, e, r) { + ;((this.shapes = []), + (this.shapesData = t.shapes), + (this.stylesList = []), + (this.shapeModifiers = []), + (this.itemsData = []), + (this.processedElements = []), + (this.animatedContents = []), + (this.shapesContainer = createNS('g')), + this.initElement(t, e, r), + (this.prevViewData = []), + (this.currentBBox = { x: 999999, y: -999999, h: 0, w: 0 })) + } + function HTextElement(t, e, r) { + ;((this.textSpans = []), + (this.textPaths = []), + (this.currentBBox = { x: 999999, y: -999999, h: 0, w: 0 }), + (this.renderType = 'svg'), + (this.isMasked = !1), + this.initElement(t, e, r)) + } + function HImageElement(t, e, r) { + ;((this.assetData = e.getAssetData(t.refId)), this.initElement(t, e, r)) + } + function HCameraElement(t, e, r) { + ;(this.initFrame(), this.initBaseData(t, e, r), this.initHierarchy()) + var i = PropertyFactory.getProp + if ( + ((this.pe = i(this, t.pe, 0, 0, this)), + t.ks.p.s + ? ((this.px = i(this, t.ks.p.x, 1, 0, this)), (this.py = i(this, t.ks.p.y, 1, 0, this)), (this.pz = i(this, t.ks.p.z, 1, 0, this))) + : (this.p = i(this, t.ks.p, 1, 0, this)), + t.ks.a && (this.a = i(this, t.ks.a, 1, 0, this)), + t.ks.or.k.length && t.ks.or.k[0].to) + ) { + var s, + a = t.ks.or.k.length + for (s = 0; s < a; s += 1) ((t.ks.or.k[s].to = null), (t.ks.or.k[s].ti = null)) + } + ;((this.or = i(this, t.ks.or, 1, degToRads, this)), + (this.or.sh = !0), + (this.rx = i(this, t.ks.rx, 0, degToRads, this)), + (this.ry = i(this, t.ks.ry, 0, degToRads, this)), + (this.rz = i(this, t.ks.rz, 0, degToRads, this)), + (this.mat = new Matrix()), + (this._prevMat = new Matrix()), + (this._isFirstFrame = !0), + (this.finalTransform = { mProp: this })) + } + function HEffects() {} + ;((SVGMatte3Effect.prototype.findSymbol = function (t) { + for (var e = 0, r = _svgMatteSymbols.length; e < r; ) { + if (_svgMatteSymbols[e] === t) return _svgMatteSymbols[e] + e += 1 + } + return null + }), + (SVGMatte3Effect.prototype.replaceInParent = function (t, e) { + var r = t.layerElement.parentNode + if (r) { + for (var i, s = r.children, a = 0, n = s.length; a < n && s[a] !== t.layerElement; ) a += 1 + a <= n - 2 && (i = s[a + 1]) + var o = createNS('use') + ;(o.setAttribute('href', '#' + e), i ? r.insertBefore(o, i) : r.appendChild(o)) + } + }), + (SVGMatte3Effect.prototype.setElementAsMask = function (t, e) { + if (!this.findSymbol(e)) { + var r = createElementID(), + i = createNS('mask') + ;(i.setAttribute('id', e.layerId), i.setAttribute('mask-type', 'alpha'), _svgMatteSymbols.push(e)) + var s = t.globalData.defs + s.appendChild(i) + var a = createNS('symbol') + ;(a.setAttribute('id', r), this.replaceInParent(e, r), a.appendChild(e.layerElement), s.appendChild(a)) + var n = createNS('use') + ;(n.setAttribute('href', '#' + r), i.appendChild(n), (e.data.hd = !1), e.show()) + } + t.setMatte(e.layerId) + }), + (SVGMatte3Effect.prototype.initialize = function () { + for (var t = this.filterManager.effectElements[0].p.v, e = this.elem.comp.elements, r = 0, i = e.length; r < i; ) + (e[r] && e[r].data.ind === t && this.setElementAsMask(this.elem, e[r]), (r += 1)) + this.initialized = !0 + }), + (SVGMatte3Effect.prototype.renderFrame = function () { + this.initialized || this.initialize() + }), + (SVGEffects.prototype.renderFrame = function (t) { + var e, + r = this.filters.length + for (e = 0; e < r; e += 1) this.filters[e].renderFrame(t) + }), + (CVContextData.prototype.duplicate = function () { + var t = 2 * this._length, + e = this.savedOp + ;((this.savedOp = createTypedArray('float32', t)), this.savedOp.set(e)) + var r = 0 + for (r = this._length; r < t; r += 1) this.saved[r] = createTypedArray('float32', 16) + this._length = t + }), + (CVContextData.prototype.reset = function () { + ;((this.cArrPos = 0), this.cTr.reset(), (this.cO = 1)) + }), + (CVBaseElement.prototype = { + createElements: function () {}, + initRendererElement: function () {}, + createContainerElements: function () { + ;((this.canvasContext = this.globalData.canvasContext), (this.renderableEffectsManager = new CVEffects(this))) + }, + createContent: function () {}, + setBlendMode: function () { + var t = this.globalData + if (t.blendMode !== this.data.bm) { + t.blendMode = this.data.bm + var e = getBlendMode(this.data.bm) + t.canvasContext.globalCompositeOperation = e + } + }, + createRenderableComponents: function () { + this.maskManager = new CVMaskElement(this.data, this) + }, + hideElement: function () { + this.hidden || (this.isInRange && !this.isTransparent) || (this.hidden = !0) + }, + showElement: function () { + this.isInRange && !this.isTransparent && ((this.hidden = !1), (this._isFirstFrame = !0), (this.maskManager._isFirstFrame = !0)) + }, + renderFrame: function () { + this.hidden || + this.data.hd || + (this.renderTransform(), + this.renderRenderable(), + this.setBlendMode(), + this.globalData.renderer.save(), + this.globalData.renderer.ctxTransform(this.finalTransform.mat.props), + this.globalData.renderer.ctxOpacity(this.finalTransform.mProp.o.v), + this.renderInnerContent(), + this.globalData.renderer.restore(), + this.maskManager.hasMasks && this.globalData.renderer.restore(!0), + this._isFirstFrame && (this._isFirstFrame = !1)) + }, + destroy: function () { + ;((this.canvasContext = null), (this.data = null), (this.globalData = null), this.maskManager.destroy()) + }, + mHelper: new Matrix(), + }), + (CVBaseElement.prototype.hide = CVBaseElement.prototype.hideElement), + (CVBaseElement.prototype.show = CVBaseElement.prototype.showElement), + extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVImageElement), + (CVImageElement.prototype.initElement = SVGShapeElement.prototype.initElement), + (CVImageElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame), + (CVImageElement.prototype.createContent = function () { + if (this.img.width && (this.assetData.w !== this.img.width || this.assetData.h !== this.img.height)) { + var t = createTag('canvas') + ;((t.width = this.assetData.w), (t.height = this.assetData.h)) + var e, + r, + i = t.getContext('2d'), + s = this.img.width, + a = this.img.height, + n = s / a, + o = this.assetData.w / this.assetData.h, + h = this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio + ;((o < n && 'xMidYMid slice' === h) || (n < o && 'xMidYMid slice' !== h) ? (e = (r = a) * o) : (r = (e = s) / o), + i.drawImage(this.img, (s - e) / 2, (a - r) / 2, e, r, 0, 0, this.assetData.w, this.assetData.h), + (this.img = t)) + } + }), + (CVImageElement.prototype.renderInnerContent = function (t) { + this.canvasContext.drawImage(this.img, 0, 0) + }), + (CVImageElement.prototype.destroy = function () { + this.img = null + }), + extendPrototype([CanvasRenderer, ICompElement, CVBaseElement], CVCompElement), + (CVCompElement.prototype.renderInnerContent = function () { + var t + for (t = this.layers.length - 1; 0 <= t; t -= 1) (this.completeLayers || this.elements[t]) && this.elements[t].renderFrame() + }), + (CVCompElement.prototype.destroy = function () { + var t + for (t = this.layers.length - 1; 0 <= t; t -= 1) this.elements[t] && this.elements[t].destroy() + ;((this.layers = null), (this.elements = null)) + }), + (CVMaskElement.prototype.renderFrame = function () { + if (this.hasMasks) { + var t, + e, + r, + i, + s = this.element.finalTransform.mat, + a = this.element.canvasContext, + n = this.masksProperties.length + for (a.beginPath(), t = 0; t < n; t++) + if ('n' !== this.masksProperties[t].mode) { + ;(this.masksProperties[t].inv && + (a.moveTo(0, 0), + a.lineTo(this.element.globalData.compSize.w, 0), + a.lineTo(this.element.globalData.compSize.w, this.element.globalData.compSize.h), + a.lineTo(0, this.element.globalData.compSize.h), + a.lineTo(0, 0)), + (i = this.viewData[t].v), + (e = s.applyToPointArray(i.v[0][0], i.v[0][1], 0)), + a.moveTo(e[0], e[1])) + var o, + h = i._length + for (o = 1; o < h; o++) ((r = s.applyToTriplePoints(i.o[o - 1], i.i[o], i.v[o])), a.bezierCurveTo(r[0], r[1], r[2], r[3], r[4], r[5])) + ;((r = s.applyToTriplePoints(i.o[o - 1], i.i[0], i.v[0])), a.bezierCurveTo(r[0], r[1], r[2], r[3], r[4], r[5])) + } + ;(this.element.globalData.renderer.save(!0), a.clip()) + } + }), + (CVMaskElement.prototype.getMaskProperty = MaskElement.prototype.getMaskProperty), + (CVMaskElement.prototype.destroy = function () { + this.element = null + }), + extendPrototype( + [BaseElement, TransformElement, CVBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableElement], + CVShapeElement, + ), + (CVShapeElement.prototype.initElement = RenderableDOMElement.prototype.initElement), + (CVShapeElement.prototype.transformHelper = { opacity: 1, _opMdf: !1 }), + (CVShapeElement.prototype.dashResetter = []), + (CVShapeElement.prototype.createContent = function () { + this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, !0, []) + }), + (CVShapeElement.prototype.createStyleElement = function (t, e) { + var r = { + data: t, + type: t.ty, + preTransforms: this.transformsManager.addTransformSequence(e), + transforms: [], + elements: [], + closed: !0 === t.hd, + }, + i = {} + if ( + ('fl' == t.ty || 'st' == t.ty + ? ((i.c = PropertyFactory.getProp(this, t.c, 1, 255, this)), + i.c.k || (r.co = 'rgb(' + bm_floor(i.c.v[0]) + ',' + bm_floor(i.c.v[1]) + ',' + bm_floor(i.c.v[2]) + ')')) + : ('gf' !== t.ty && 'gs' !== t.ty) || + ((i.s = PropertyFactory.getProp(this, t.s, 1, null, this)), + (i.e = PropertyFactory.getProp(this, t.e, 1, null, this)), + (i.h = PropertyFactory.getProp(this, t.h || { k: 0 }, 0, 0.01, this)), + (i.a = PropertyFactory.getProp(this, t.a || { k: 0 }, 0, degToRads, this)), + (i.g = new GradientProperty(this, t.g, this))), + (i.o = PropertyFactory.getProp(this, t.o, 0, 0.01, this)), + 'st' == t.ty || 'gs' == t.ty) + ) { + if ( + ((r.lc = this.lcEnum[t.lc] || 'round'), + (r.lj = this.ljEnum[t.lj] || 'round'), + 1 == t.lj && (r.ml = t.ml), + (i.w = PropertyFactory.getProp(this, t.w, 0, null, this)), + i.w.k || (r.wi = i.w.v), + t.d) + ) { + var s = new DashProperty(this, t.d, 'canvas', this) + ;((i.d = s), i.d.k || ((r.da = i.d.dashArray), (r.do = i.d.dashoffset[0]))) + } + } else r.r = 2 === t.r ? 'evenodd' : 'nonzero' + return (this.stylesList.push(r), (i.style = r), i) + }), + (CVShapeElement.prototype.createGroupElement = function (t) { + return { it: [], prevViewData: [] } + }), + (CVShapeElement.prototype.createTransformElement = function (t) { + return { + transform: { + opacity: 1, + _opMdf: !1, + key: this.transformsManager.getNewKey(), + op: PropertyFactory.getProp(this, t.o, 0, 0.01, this), + mProps: TransformPropertyFactory.getTransformProperty(this, t, this), + }, + } + }), + (CVShapeElement.prototype.createShapeElement = function (t) { + var e = new CVShapeData(this, t, this.stylesList, this.transformsManager) + return (this.shapes.push(e), this.addShapeToModifiers(e), e) + }), + (CVShapeElement.prototype.reloadShapes = function () { + this._isFirstFrame = !0 + var t, + e = this.itemsData.length + for (t = 0; t < e; t += 1) this.prevViewData[t] = this.itemsData[t] + for (this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, !0, []), e = this.dynamicProperties.length, t = 0; t < e; t += 1) + this.dynamicProperties[t].getValue() + ;(this.renderModifiers(), this.transformsManager.processSequences(this._isFirstFrame)) + }), + (CVShapeElement.prototype.addTransformToStyleList = function (t) { + var e, + r = this.stylesList.length + for (e = 0; e < r; e += 1) this.stylesList[e].closed || this.stylesList[e].transforms.push(t) + }), + (CVShapeElement.prototype.removeTransformFromStyleList = function () { + var t, + e = this.stylesList.length + for (t = 0; t < e; t += 1) this.stylesList[t].closed || this.stylesList[t].transforms.pop() + }), + (CVShapeElement.prototype.closeStyles = function (t) { + var e, + r = t.length + for (e = 0; e < r; e += 1) t[e].closed = !0 + }), + (CVShapeElement.prototype.searchShapes = function (t, e, r, i, s) { + var a, + n, + o, + h, + l, + p, + m = t.length - 1, + f = [], + c = [], + d = [].concat(s) + for (a = m; 0 <= a; a -= 1) { + if ( + ((h = this.searchProcessedElement(t[a])) ? (e[a] = r[h - 1]) : (t[a]._shouldRender = i), + 'fl' == t[a].ty || 'st' == t[a].ty || 'gf' == t[a].ty || 'gs' == t[a].ty) + ) + (h ? (e[a].style.closed = !1) : (e[a] = this.createStyleElement(t[a], d)), f.push(e[a].style)) + else if ('gr' == t[a].ty) { + if (h) for (o = e[a].it.length, n = 0; n < o; n += 1) e[a].prevViewData[n] = e[a].it[n] + else e[a] = this.createGroupElement(t[a]) + this.searchShapes(t[a].it, e[a].it, e[a].prevViewData, i, d) + } else + 'tr' == t[a].ty + ? (h || ((p = this.createTransformElement(t[a])), (e[a] = p)), d.push(e[a]), this.addTransformToStyleList(e[a])) + : 'sh' == t[a].ty || 'rc' == t[a].ty || 'el' == t[a].ty || 'sr' == t[a].ty + ? h || (e[a] = this.createShapeElement(t[a])) + : 'tm' == t[a].ty || 'rd' == t[a].ty + ? (h + ? ((l = e[a]).closed = !1) + : ((l = ShapeModifiers.getModifier(t[a].ty)).init(this, t[a]), (e[a] = l), this.shapeModifiers.push(l)), + c.push(l)) + : 'rp' == t[a].ty && + (h + ? ((l = e[a]).closed = !0) + : ((l = ShapeModifiers.getModifier(t[a].ty)), (e[a] = l).init(this, t, a, e), this.shapeModifiers.push(l), (i = !1)), + c.push(l)) + this.addProcessedElement(t[a], a + 1) + } + for (this.removeTransformFromStyleList(), this.closeStyles(f), m = c.length, a = 0; a < m; a += 1) c[a].closed = !0 + }), + (CVShapeElement.prototype.renderInnerContent = function () { + ;((this.transformHelper.opacity = 1), + (this.transformHelper._opMdf = !1), + this.renderModifiers(), + this.transformsManager.processSequences(this._isFirstFrame), + this.renderShape(this.transformHelper, this.shapesData, this.itemsData, !0)) + }), + (CVShapeElement.prototype.renderShapeTransform = function (t, e) { + ;(t._opMdf || e.op._mdf || this._isFirstFrame) && ((e.opacity = t.opacity), (e.opacity *= e.op.v), (e._opMdf = !0)) + }), + (CVShapeElement.prototype.drawLayer = function () { + var t, + e, + r, + i, + s, + a, + n, + o, + h, + l = this.stylesList.length, + p = this.globalData.renderer, + m = this.globalData.canvasContext + for (t = 0; t < l; t += 1) + if ( + (('st' !== (o = (h = this.stylesList[t]).type) && 'gs' !== o) || 0 !== h.wi) && + h.data._shouldRender && + 0 !== h.coOp && + 0 !== this.globalData.currentGlobalAlpha + ) { + for ( + p.save(), + a = h.elements, + 'st' === o || 'gs' === o + ? ((m.strokeStyle = 'st' === o ? h.co : h.grd), + (m.lineWidth = h.wi), + (m.lineCap = h.lc), + (m.lineJoin = h.lj), + (m.miterLimit = h.ml || 0)) + : (m.fillStyle = 'fl' === o ? h.co : h.grd), + p.ctxOpacity(h.coOp), + 'st' !== o && 'gs' !== o && m.beginPath(), + p.ctxTransform(h.preTransforms.finalTransform.props), + r = a.length, + e = 0; + e < r; + e += 1 + ) { + for ( + ('st' !== o && 'gs' !== o) || (m.beginPath(), h.da && (m.setLineDash(h.da), (m.lineDashOffset = h.do))), + s = (n = a[e].trNodes).length, + i = 0; + i < s; + i += 1 + ) + 'm' == n[i].t + ? m.moveTo(n[i].p[0], n[i].p[1]) + : 'c' == n[i].t + ? m.bezierCurveTo(n[i].pts[0], n[i].pts[1], n[i].pts[2], n[i].pts[3], n[i].pts[4], n[i].pts[5]) + : m.closePath() + ;('st' !== o && 'gs' !== o) || (m.stroke(), h.da && m.setLineDash(this.dashResetter)) + } + ;('st' !== o && 'gs' !== o && m.fill(h.r), p.restore()) + } + }), + (CVShapeElement.prototype.renderShape = function (t, e, r, i) { + var s, a + for (a = t, s = e.length - 1; 0 <= s; s -= 1) + 'tr' == e[s].ty + ? ((a = r[s].transform), this.renderShapeTransform(t, a)) + : 'sh' == e[s].ty || 'el' == e[s].ty || 'rc' == e[s].ty || 'sr' == e[s].ty + ? this.renderPath(e[s], r[s]) + : 'fl' == e[s].ty + ? this.renderFill(e[s], r[s], a) + : 'st' == e[s].ty + ? this.renderStroke(e[s], r[s], a) + : 'gf' == e[s].ty || 'gs' == e[s].ty + ? this.renderGradientFill(e[s], r[s], a) + : 'gr' == e[s].ty + ? this.renderShape(a, e[s].it, r[s].it) + : e[s].ty + i && this.drawLayer() + }), + (CVShapeElement.prototype.renderStyledShape = function (t, e) { + if (this._isFirstFrame || e._mdf || t.transforms._mdf) { + var r, + i, + s, + a = t.trNodes, + n = e.paths, + o = n._length + a.length = 0 + var h = t.transforms.finalTransform + for (s = 0; s < o; s += 1) { + var l = n.shapes[s] + if (l && l.v) { + for (i = l._length, r = 1; r < i; r += 1) + (1 === r && a.push({ t: 'm', p: h.applyToPointArray(l.v[0][0], l.v[0][1], 0) }), + a.push({ t: 'c', pts: h.applyToTriplePoints(l.o[r - 1], l.i[r], l.v[r]) })) + ;(1 === i && a.push({ t: 'm', p: h.applyToPointArray(l.v[0][0], l.v[0][1], 0) }), + l.c && i && (a.push({ t: 'c', pts: h.applyToTriplePoints(l.o[r - 1], l.i[0], l.v[0]) }), a.push({ t: 'z' }))) + } + } + t.trNodes = a + } + }), + (CVShapeElement.prototype.renderPath = function (t, e) { + if (!0 !== t.hd && t._shouldRender) { + var r, + i = e.styledShapes.length + for (r = 0; r < i; r += 1) this.renderStyledShape(e.styledShapes[r], e.sh) + } + }), + (CVShapeElement.prototype.renderFill = function (t, e, r) { + var i = e.style + ;((e.c._mdf || this._isFirstFrame) && (i.co = 'rgb(' + bm_floor(e.c.v[0]) + ',' + bm_floor(e.c.v[1]) + ',' + bm_floor(e.c.v[2]) + ')'), + (e.o._mdf || r._opMdf || this._isFirstFrame) && (i.coOp = e.o.v * r.opacity)) + }), + (CVShapeElement.prototype.renderGradientFill = function (t, e, r) { + var i = e.style + if (!i.grd || e.g._mdf || e.s._mdf || e.e._mdf || (1 !== t.t && (e.h._mdf || e.a._mdf))) { + var s = this.globalData.canvasContext, + a = e.s.v, + n = e.e.v + if (1 === t.t) f = s.createLinearGradient(a[0], a[1], n[0], n[1]) + else + var o = Math.sqrt(Math.pow(a[0] - n[0], 2) + Math.pow(a[1] - n[1], 2)), + h = Math.atan2(n[1] - a[1], n[0] - a[0]), + l = o * (1 <= e.h.v ? 0.99 : e.h.v <= -1 ? -0.99 : e.h.v), + p = Math.cos(h + e.a.v) * l + a[0], + m = Math.sin(h + e.a.v) * l + a[1], + f = s.createRadialGradient(p, m, 0, a[0], a[1], o) + var c, + d = t.g.p, + u = e.g.c, + y = 1 + for (c = 0; c < d; c += 1) + (e.g._hasOpacity && e.g._collapsable && (y = e.g.o[2 * c + 1]), + f.addColorStop(u[4 * c] / 100, 'rgba(' + u[4 * c + 1] + ',' + u[4 * c + 2] + ',' + u[4 * c + 3] + ',' + y + ')')) + i.grd = f + } + i.coOp = e.o.v * r.opacity + }), + (CVShapeElement.prototype.renderStroke = function (t, e, r) { + var i = e.style, + s = e.d + ;(s && (s._mdf || this._isFirstFrame) && ((i.da = s.dashArray), (i.do = s.dashoffset[0])), + (e.c._mdf || this._isFirstFrame) && (i.co = 'rgb(' + bm_floor(e.c.v[0]) + ',' + bm_floor(e.c.v[1]) + ',' + bm_floor(e.c.v[2]) + ')'), + (e.o._mdf || r._opMdf || this._isFirstFrame) && (i.coOp = e.o.v * r.opacity), + (e.w._mdf || this._isFirstFrame) && (i.wi = e.w.v)) + }), + (CVShapeElement.prototype.destroy = function () { + ;((this.shapesData = null), (this.globalData = null), (this.canvasContext = null), (this.stylesList.length = 0), (this.itemsData.length = 0)) + }), + extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVSolidElement), + (CVSolidElement.prototype.initElement = SVGShapeElement.prototype.initElement), + (CVSolidElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame), + (CVSolidElement.prototype.renderInnerContent = function () { + var t = this.canvasContext + ;((t.fillStyle = this.data.sc), t.fillRect(0, 0, this.data.sw, this.data.sh)) + }), + extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement, ITextElement], CVTextElement), + (CVTextElement.prototype.tHelper = createTag('canvas').getContext('2d')), + (CVTextElement.prototype.buildNewText = function () { + var t = this.textProperty.currentData + this.renderedLetters = createSizedArray(t.l ? t.l.length : 0) + var e = !1 + ;(t.fc ? ((e = !0), (this.values.fill = this.buildColor(t.fc))) : (this.values.fill = 'rgba(0,0,0,0)'), (this.fill = e)) + var r = !1 + t.sc && ((r = !0), (this.values.stroke = this.buildColor(t.sc)), (this.values.sWidth = t.sw)) + var i, + s, + a = this.globalData.fontManager.getFontByName(t.f), + n = t.l, + o = this.mHelper + ;((this.stroke = r), + (this.values.fValue = t.finalSize + 'px ' + this.globalData.fontManager.getFontByName(t.f).fFamily), + (s = t.finalText.length)) + var h, + l, + p, + m, + f, + c, + d, + u, + y, + g, + v = this.data.singleShape, + b = (t.tr / 1e3) * t.finalSize, + E = 0, + x = 0, + P = !0, + S = 0 + for (i = 0; i < s; i += 1) { + for ( + l = + ((h = this.globalData.fontManager.getCharData(t.finalText[i], a.fStyle, this.globalData.fontManager.getFontByName(t.f).fFamily)) && + h.data) || + {}, + o.reset(), + v && n[i].n && ((E = -b), (x += t.yOffset), (x += P ? 1 : 0), (P = !1)), + d = (f = l.shapes ? l.shapes[0].it : []).length, + o.scale(t.finalSize / 100, t.finalSize / 100), + v && this.applyTextPropertiesToMatrix(t, o, n[i].line, E, x), + y = createSizedArray(d), + c = 0; + c < d; + c += 1 + ) { + for (m = f[c].ks.k.i.length, u = f[c].ks.k, g = [], p = 1; p < m; p += 1) + (1 == p && g.push(o.applyToX(u.v[0][0], u.v[0][1], 0), o.applyToY(u.v[0][0], u.v[0][1], 0)), + g.push( + o.applyToX(u.o[p - 1][0], u.o[p - 1][1], 0), + o.applyToY(u.o[p - 1][0], u.o[p - 1][1], 0), + o.applyToX(u.i[p][0], u.i[p][1], 0), + o.applyToY(u.i[p][0], u.i[p][1], 0), + o.applyToX(u.v[p][0], u.v[p][1], 0), + o.applyToY(u.v[p][0], u.v[p][1], 0), + )) + ;(g.push( + o.applyToX(u.o[p - 1][0], u.o[p - 1][1], 0), + o.applyToY(u.o[p - 1][0], u.o[p - 1][1], 0), + o.applyToX(u.i[0][0], u.i[0][1], 0), + o.applyToY(u.i[0][0], u.i[0][1], 0), + o.applyToX(u.v[0][0], u.v[0][1], 0), + o.applyToY(u.v[0][0], u.v[0][1], 0), + ), + (y[c] = g)) + } + ;(v && ((E += n[i].l), (E += b)), this.textSpans[S] ? (this.textSpans[S].elem = y) : (this.textSpans[S] = { elem: y }), (S += 1)) + } + }), + (CVTextElement.prototype.renderInnerContent = function () { + var t, + e, + r, + i, + s, + a, + n = this.canvasContext + this.finalTransform.mat.props + ;((n.font = this.values.fValue), + (n.lineCap = 'butt'), + (n.lineJoin = 'miter'), + (n.miterLimit = 4), + this.data.singleShape || this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag)) + var o, + h = this.textAnimator.renderedLetters, + l = this.textProperty.currentData.l + e = l.length + var p, + m, + f = null, + c = null, + d = null + for (t = 0; t < e; t += 1) + if (!l[t].n) { + if ( + ((o = h[t]) && (this.globalData.renderer.save(), this.globalData.renderer.ctxTransform(o.p), this.globalData.renderer.ctxOpacity(o.o)), + this.fill) + ) { + for ( + o && o.fc + ? f !== o.fc && ((f = o.fc), (n.fillStyle = o.fc)) + : f !== this.values.fill && ((f = this.values.fill), (n.fillStyle = this.values.fill)), + i = (p = this.textSpans[t].elem).length, + this.globalData.canvasContext.beginPath(), + r = 0; + r < i; + r += 1 + ) + for (a = (m = p[r]).length, this.globalData.canvasContext.moveTo(m[0], m[1]), s = 2; s < a; s += 6) + this.globalData.canvasContext.bezierCurveTo(m[s], m[s + 1], m[s + 2], m[s + 3], m[s + 4], m[s + 5]) + ;(this.globalData.canvasContext.closePath(), this.globalData.canvasContext.fill()) + } + if (this.stroke) { + for ( + o && o.sw + ? d !== o.sw && ((d = o.sw), (n.lineWidth = o.sw)) + : d !== this.values.sWidth && ((d = this.values.sWidth), (n.lineWidth = this.values.sWidth)), + o && o.sc + ? c !== o.sc && ((c = o.sc), (n.strokeStyle = o.sc)) + : c !== this.values.stroke && ((c = this.values.stroke), (n.strokeStyle = this.values.stroke)), + i = (p = this.textSpans[t].elem).length, + this.globalData.canvasContext.beginPath(), + r = 0; + r < i; + r += 1 + ) + for (a = (m = p[r]).length, this.globalData.canvasContext.moveTo(m[0], m[1]), s = 2; s < a; s += 6) + this.globalData.canvasContext.bezierCurveTo(m[s], m[s + 1], m[s + 2], m[s + 3], m[s + 4], m[s + 5]) + ;(this.globalData.canvasContext.closePath(), this.globalData.canvasContext.stroke()) + } + o && this.globalData.renderer.restore() + } + }), + (CVEffects.prototype.renderFrame = function () {}), + (HBaseElement.prototype = { + checkBlendMode: function () {}, + initRendererElement: function () { + ;((this.baseElement = createTag(this.data.tg || 'div')), + this.data.hasMask + ? ((this.svgElement = createNS('svg')), + (this.layerElement = createNS('g')), + (this.maskedElement = this.layerElement), + this.svgElement.appendChild(this.layerElement), + this.baseElement.appendChild(this.svgElement)) + : (this.layerElement = this.baseElement), + styleDiv(this.baseElement)) + }, + createContainerElements: function () { + ;((this.renderableEffectsManager = new CVEffects(this)), + (this.transformedElement = this.baseElement), + (this.maskedElement = this.layerElement), + this.data.ln && this.layerElement.setAttribute('id', this.data.ln), + this.data.cl && this.layerElement.setAttribute('class', this.data.cl), + 0 !== this.data.bm && this.setBlendMode()) + }, + renderElement: function () { + ;(this.finalTransform._matMdf && + (this.transformedElement.style.transform = this.transformedElement.style.webkitTransform = this.finalTransform.mat.toCSS()), + this.finalTransform._opMdf && (this.transformedElement.style.opacity = this.finalTransform.mProp.o.v)) + }, + renderFrame: function () { + this.data.hd || + this.hidden || + (this.renderTransform(), + this.renderRenderable(), + this.renderElement(), + this.renderInnerContent(), + this._isFirstFrame && (this._isFirstFrame = !1)) + }, + destroy: function () { + ;((this.layerElement = null), + (this.transformedElement = null), + this.matteElement && (this.matteElement = null), + this.maskManager && (this.maskManager.destroy(), (this.maskManager = null))) + }, + createRenderableComponents: function () { + this.maskManager = new MaskElement(this.data, this, this.globalData) + }, + addEffects: function () {}, + setMatte: function () {}, + }), + (HBaseElement.prototype.getBaseElement = SVGBaseElement.prototype.getBaseElement), + (HBaseElement.prototype.destroyBaseElement = HBaseElement.prototype.destroy), + (HBaseElement.prototype.buildElementParenting = HybridRenderer.prototype.buildElementParenting), + extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], HSolidElement), + (HSolidElement.prototype.createContent = function () { + var t + ;(this.data.hasMask + ? ((t = createNS('rect')).setAttribute('width', this.data.sw), + t.setAttribute('height', this.data.sh), + t.setAttribute('fill', this.data.sc), + this.svgElement.setAttribute('width', this.data.sw), + this.svgElement.setAttribute('height', this.data.sh)) + : (((t = createTag('div')).style.width = this.data.sw + 'px'), + (t.style.height = this.data.sh + 'px'), + (t.style.backgroundColor = this.data.sc)), + this.layerElement.appendChild(t)) + }), + extendPrototype([HybridRenderer, ICompElement, HBaseElement], HCompElement), + (HCompElement.prototype._createBaseContainerElements = HCompElement.prototype.createContainerElements), + (HCompElement.prototype.createContainerElements = function () { + ;(this._createBaseContainerElements(), + this.data.hasMask + ? (this.svgElement.setAttribute('width', this.data.w), + this.svgElement.setAttribute('height', this.data.h), + (this.transformedElement = this.baseElement)) + : (this.transformedElement = this.layerElement)) + }), + (HCompElement.prototype.addTo3dContainer = function (t, e) { + for (var r, i = 0; i < e; ) (this.elements[i] && this.elements[i].getBaseElement && (r = this.elements[i].getBaseElement()), (i += 1)) + r ? this.layerElement.insertBefore(t, r) : this.layerElement.appendChild(t) + }), + extendPrototype( + [BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement, HierarchyElement, FrameElement, RenderableElement], + HShapeElement, + ), + (HShapeElement.prototype._renderShapeFrame = HShapeElement.prototype.renderInnerContent), + (HShapeElement.prototype.createContent = function () { + var t + if (((this.baseElement.style.fontSize = 0), this.data.hasMask)) (this.layerElement.appendChild(this.shapesContainer), (t = this.svgElement)) + else { + t = createNS('svg') + var e = this.comp.data ? this.comp.data : this.globalData.compSize + ;(t.setAttribute('width', e.w), t.setAttribute('height', e.h), t.appendChild(this.shapesContainer), this.layerElement.appendChild(t)) + } + ;(this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.shapesContainer, 0, [], !0), + this.filterUniqueShapes(), + (this.shapeCont = t)) + }), + (HShapeElement.prototype.getTransformedPoint = function (t, e) { + var r, + i = t.length + for (r = 0; r < i; r += 1) e = t[r].mProps.v.applyToPointArray(e[0], e[1], 0) + return e + }), + (HShapeElement.prototype.calculateShapeBoundingBox = function (t, e) { + var r, + i, + s, + a, + n, + o = t.sh.v, + h = t.transformers, + l = o._length + if (!(l <= 1)) { + for (r = 0; r < l - 1; r += 1) + ((i = this.getTransformedPoint(h, o.v[r])), + (s = this.getTransformedPoint(h, o.o[r])), + (a = this.getTransformedPoint(h, o.i[r + 1])), + (n = this.getTransformedPoint(h, o.v[r + 1])), + this.checkBounds(i, s, a, n, e)) + o.c && + ((i = this.getTransformedPoint(h, o.v[r])), + (s = this.getTransformedPoint(h, o.o[r])), + (a = this.getTransformedPoint(h, o.i[0])), + (n = this.getTransformedPoint(h, o.v[0])), + this.checkBounds(i, s, a, n, e)) + } + }), + (HShapeElement.prototype.checkBounds = function (t, e, r, i, s) { + this.getBoundsOfCurve(t, e, r, i) + var a = this.shapeBoundingBox + ;((s.x = bm_min(a.left, s.x)), (s.xMax = bm_max(a.right, s.xMax)), (s.y = bm_min(a.top, s.y)), (s.yMax = bm_max(a.bottom, s.yMax))) + }), + (HShapeElement.prototype.shapeBoundingBox = { left: 0, right: 0, top: 0, bottom: 0 }), + (HShapeElement.prototype.tempBoundingBox = { x: 0, xMax: 0, y: 0, yMax: 0, width: 0, height: 0 }), + (HShapeElement.prototype.getBoundsOfCurve = function (t, e, r, i) { + for ( + var s, + a, + n, + o, + h, + l, + p, + m = [ + [t[0], i[0]], + [t[1], i[1]], + ], + f = 0; + f < 2; + ++f + ) + if ( + ((a = 6 * t[f] - 12 * e[f] + 6 * r[f]), + (s = -3 * t[f] + 9 * e[f] - 9 * r[f] + 3 * i[f]), + (n = 3 * e[f] - 3 * t[f]), + (a |= 0), + (n |= 0), + 0 !== (s |= 0)) + ) + (h = a * a - 4 * n * s) < 0 || + (0 < (l = (-a + bm_sqrt(h)) / (2 * s)) && l < 1 && m[f].push(this.calculateF(l, t, e, r, i, f)), + 0 < (p = (-a - bm_sqrt(h)) / (2 * s)) && p < 1 && m[f].push(this.calculateF(p, t, e, r, i, f))) + else { + if (0 === a) continue + 0 < (o = -n / a) && o < 1 && m[f].push(this.calculateF(o, t, e, r, i, f)) + } + ;((this.shapeBoundingBox.left = bm_min.apply(null, m[0])), + (this.shapeBoundingBox.top = bm_min.apply(null, m[1])), + (this.shapeBoundingBox.right = bm_max.apply(null, m[0])), + (this.shapeBoundingBox.bottom = bm_max.apply(null, m[1]))) + }), + (HShapeElement.prototype.calculateF = function (t, e, r, i, s, a) { + return bm_pow(1 - t, 3) * e[a] + 3 * bm_pow(1 - t, 2) * t * r[a] + 3 * (1 - t) * bm_pow(t, 2) * i[a] + bm_pow(t, 3) * s[a] + }), + (HShapeElement.prototype.calculateBoundingBox = function (t, e) { + var r, + i = t.length + for (r = 0; r < i; r += 1) + t[r] && t[r].sh ? this.calculateShapeBoundingBox(t[r], e) : t[r] && t[r].it && this.calculateBoundingBox(t[r].it, e) + }), + (HShapeElement.prototype.currentBoxContains = function (t) { + return ( + this.currentBBox.x <= t.x && + this.currentBBox.y <= t.y && + this.currentBBox.width + this.currentBBox.x >= t.x + t.width && + this.currentBBox.height + this.currentBBox.y >= t.y + t.height + ) + }), + (HShapeElement.prototype.renderInnerContent = function () { + if ((this._renderShapeFrame(), !this.hidden && (this._isFirstFrame || this._mdf))) { + var t = this.tempBoundingBox, + e = 999999 + if ( + ((t.x = e), + (t.xMax = -e), + (t.y = e), + (t.yMax = -e), + this.calculateBoundingBox(this.itemsData, t), + (t.width = t.xMax < t.x ? 0 : t.xMax - t.x), + (t.height = t.yMax < t.y ? 0 : t.yMax - t.y), + this.currentBoxContains(t)) + ) + return + var r = !1 + ;(this.currentBBox.w !== t.width && ((this.currentBBox.w = t.width), this.shapeCont.setAttribute('width', t.width), (r = !0)), + this.currentBBox.h !== t.height && ((this.currentBBox.h = t.height), this.shapeCont.setAttribute('height', t.height), (r = !0)), + (r || this.currentBBox.x !== t.x || this.currentBBox.y !== t.y) && + ((this.currentBBox.w = t.width), + (this.currentBBox.h = t.height), + (this.currentBBox.x = t.x), + (this.currentBBox.y = t.y), + this.shapeCont.setAttribute( + 'viewBox', + this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h, + ), + (this.shapeCont.style.transform = this.shapeCont.style.webkitTransform = + 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)'))) + } + }), + extendPrototype( + [BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], + HTextElement, + ), + (HTextElement.prototype.createContent = function () { + if (((this.isMasked = this.checkMasks()), this.isMasked)) { + ;((this.renderType = 'svg'), + (this.compW = this.comp.data.w), + (this.compH = this.comp.data.h), + this.svgElement.setAttribute('width', this.compW), + this.svgElement.setAttribute('height', this.compH)) + var t = createNS('g') + ;(this.maskedElement.appendChild(t), (this.innerElem = t)) + } else ((this.renderType = 'html'), (this.innerElem = this.layerElement)) + this.checkParenting() + }), + (HTextElement.prototype.buildNewText = function () { + var t = this.textProperty.currentData + this.renderedLetters = createSizedArray(t.l ? t.l.length : 0) + var e = this.innerElem.style + ;((e.color = e.fill = t.fc ? this.buildColor(t.fc) : 'rgba(0,0,0,0)'), + t.sc && ((e.stroke = this.buildColor(t.sc)), (e.strokeWidth = t.sw + 'px'))) + var r, + i, + s = this.globalData.fontManager.getFontByName(t.f) + if (!this.globalData.fontManager.chars) + if (((e.fontSize = t.finalSize + 'px'), (e.lineHeight = t.finalSize + 'px'), s.fClass)) this.innerElem.className = s.fClass + else { + e.fontFamily = s.fFamily + var a = t.fWeight, + n = t.fStyle + ;((e.fontStyle = n), (e.fontWeight = a)) + } + var o, + h, + l, + p = t.l + i = p.length + var m, + f = this.mHelper, + c = '', + d = 0 + for (r = 0; r < i; r += 1) { + if ( + (this.globalData.fontManager.chars + ? (this.textPaths[d] + ? (o = this.textPaths[d]) + : ((o = createNS('path')).setAttribute('stroke-linecap', 'butt'), + o.setAttribute('stroke-linejoin', 'round'), + o.setAttribute('stroke-miterlimit', '4')), + this.isMasked || + (this.textSpans[d] + ? (l = (h = this.textSpans[d]).children[0]) + : (((h = createTag('div')).style.lineHeight = 0), (l = createNS('svg')).appendChild(o), styleDiv(h)))) + : this.isMasked + ? (o = this.textPaths[d] ? this.textPaths[d] : createNS('text')) + : this.textSpans[d] + ? ((h = this.textSpans[d]), (o = this.textPaths[d])) + : (styleDiv((h = createTag('span'))), styleDiv((o = createTag('span'))), h.appendChild(o)), + this.globalData.fontManager.chars) + ) { + var u, + y = this.globalData.fontManager.getCharData(t.finalText[r], s.fStyle, this.globalData.fontManager.getFontByName(t.f).fFamily) + if ( + ((u = y ? y.data : null), + f.reset(), + u && + u.shapes && + ((m = u.shapes[0].it), f.scale(t.finalSize / 100, t.finalSize / 100), (c = this.createPathShape(f, m)), o.setAttribute('d', c)), + this.isMasked) + ) + this.innerElem.appendChild(o) + else { + if ((this.innerElem.appendChild(h), u && u.shapes)) { + document.body.appendChild(l) + var g = l.getBBox() + ;(l.setAttribute('width', g.width + 2), + l.setAttribute('height', g.height + 2), + l.setAttribute('viewBox', g.x - 1 + ' ' + (g.y - 1) + ' ' + (g.width + 2) + ' ' + (g.height + 2)), + (l.style.transform = l.style.webkitTransform = 'translate(' + (g.x - 1) + 'px,' + (g.y - 1) + 'px)'), + (p[r].yOffset = g.y - 1)) + } else (l.setAttribute('width', 1), l.setAttribute('height', 1)) + h.appendChild(l) + } + } else + ((o.textContent = p[r].val), + o.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve'), + this.isMasked + ? this.innerElem.appendChild(o) + : (this.innerElem.appendChild(h), (o.style.transform = o.style.webkitTransform = 'translate3d(0,' + -t.finalSize / 1.2 + 'px,0)'))) + ;(this.isMasked ? (this.textSpans[d] = o) : (this.textSpans[d] = h), + (this.textSpans[d].style.display = 'block'), + (this.textPaths[d] = o), + (d += 1)) + } + for (; d < this.textSpans.length; ) ((this.textSpans[d].style.display = 'none'), (d += 1)) + }), + (HTextElement.prototype.renderInnerContent = function () { + if (this.data.singleShape) { + if (!this._isFirstFrame && !this.lettersChangedFlag) return + this.isMasked && + this.finalTransform._matMdf && + (this.svgElement.setAttribute( + 'viewBox', + -this.finalTransform.mProp.p.v[0] + ' ' + -this.finalTransform.mProp.p.v[1] + ' ' + this.compW + ' ' + this.compH, + ), + (this.svgElement.style.transform = this.svgElement.style.webkitTransform = + 'translate(' + -this.finalTransform.mProp.p.v[0] + 'px,' + -this.finalTransform.mProp.p.v[1] + 'px)')) + } + if ( + (this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag), + this.lettersChangedFlag || this.textAnimator.lettersChangedFlag) + ) { + var t, + e, + r, + i, + s, + a = 0, + n = this.textAnimator.renderedLetters, + o = this.textProperty.currentData.l + for (e = o.length, t = 0; t < e; t += 1) + o[t].n + ? (a += 1) + : ((i = this.textSpans[t]), + (s = this.textPaths[t]), + (r = n[a]), + (a += 1), + r._mdf.m && (this.isMasked ? i.setAttribute('transform', r.m) : (i.style.transform = i.style.webkitTransform = r.m)), + (i.style.opacity = r.o), + r.sw && r._mdf.sw && s.setAttribute('stroke-width', r.sw), + r.sc && r._mdf.sc && s.setAttribute('stroke', r.sc), + r.fc && r._mdf.fc && (s.setAttribute('fill', r.fc), (s.style.color = r.fc))) + if (this.innerElem.getBBox && !this.hidden && (this._isFirstFrame || this._mdf)) { + var h = this.innerElem.getBBox() + ;(this.currentBBox.w !== h.width && ((this.currentBBox.w = h.width), this.svgElement.setAttribute('width', h.width)), + this.currentBBox.h !== h.height && ((this.currentBBox.h = h.height), this.svgElement.setAttribute('height', h.height))) + ;(this.currentBBox.w === h.width + 2 && + this.currentBBox.h === h.height + 2 && + this.currentBBox.x === h.x - 1 && + this.currentBBox.y === h.y - 1) || + ((this.currentBBox.w = h.width + 2), + (this.currentBBox.h = h.height + 2), + (this.currentBBox.x = h.x - 1), + (this.currentBBox.y = h.y - 1), + this.svgElement.setAttribute( + 'viewBox', + this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h, + ), + (this.svgElement.style.transform = this.svgElement.style.webkitTransform = + 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)')) + } + } + }), + extendPrototype([BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement, FrameElement, RenderableElement], HImageElement), + (HImageElement.prototype.createContent = function () { + var t = this.globalData.getAssetsPath(this.assetData), + e = new Image() + ;(this.data.hasMask + ? ((this.imageElem = createNS('image')), + this.imageElem.setAttribute('width', this.assetData.w + 'px'), + this.imageElem.setAttribute('height', this.assetData.h + 'px'), + this.imageElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', t), + this.layerElement.appendChild(this.imageElem), + this.baseElement.setAttribute('width', this.assetData.w), + this.baseElement.setAttribute('height', this.assetData.h)) + : this.layerElement.appendChild(e), + (e.src = t), + this.data.ln && this.baseElement.setAttribute('id', this.data.ln)) + }), + extendPrototype([BaseElement, FrameElement, HierarchyElement], HCameraElement), + (HCameraElement.prototype.setup = function () { + var t, + e, + r = this.comp.threeDElements.length + for (t = 0; t < r; t += 1) + '3d' === (e = this.comp.threeDElements[t]).type && + ((e.perspectiveElem.style.perspective = e.perspectiveElem.style.webkitPerspective = this.pe.v + 'px'), + (e.container.style.transformOrigin = e.container.style.mozTransformOrigin = e.container.style.webkitTransformOrigin = '0px 0px 0px'), + (e.perspectiveElem.style.transform = e.perspectiveElem.style.webkitTransform = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)')) + }), + (HCameraElement.prototype.createElements = function () {}), + (HCameraElement.prototype.hide = function () {}), + (HCameraElement.prototype.renderFrame = function () { + var t, + e, + r = this._isFirstFrame + if (this.hierarchy) for (e = this.hierarchy.length, t = 0; t < e; t += 1) r = this.hierarchy[t].finalTransform.mProp._mdf || r + if ( + r || + this.pe._mdf || + (this.p && this.p._mdf) || + (this.px && (this.px._mdf || this.py._mdf || this.pz._mdf)) || + this.rx._mdf || + this.ry._mdf || + this.rz._mdf || + this.or._mdf || + (this.a && this.a._mdf) + ) { + if ((this.mat.reset(), this.hierarchy)) + for (t = e = this.hierarchy.length - 1; 0 <= t; t -= 1) { + var i = this.hierarchy[t].finalTransform.mProp + ;(this.mat.translate(-i.p.v[0], -i.p.v[1], i.p.v[2]), + this.mat.rotateX(-i.or.v[0]).rotateY(-i.or.v[1]).rotateZ(i.or.v[2]), + this.mat.rotateX(-i.rx.v).rotateY(-i.ry.v).rotateZ(i.rz.v), + this.mat.scale(1 / i.s.v[0], 1 / i.s.v[1], 1 / i.s.v[2]), + this.mat.translate(i.a.v[0], i.a.v[1], i.a.v[2])) + } + if ( + (this.p ? this.mat.translate(-this.p.v[0], -this.p.v[1], this.p.v[2]) : this.mat.translate(-this.px.v, -this.py.v, this.pz.v), this.a) + ) { + var s + s = this.p + ? [this.p.v[0] - this.a.v[0], this.p.v[1] - this.a.v[1], this.p.v[2] - this.a.v[2]] + : [this.px.v - this.a.v[0], this.py.v - this.a.v[1], this.pz.v - this.a.v[2]] + var a = Math.sqrt(Math.pow(s[0], 2) + Math.pow(s[1], 2) + Math.pow(s[2], 2)), + n = [s[0] / a, s[1] / a, s[2] / a], + o = Math.sqrt(n[2] * n[2] + n[0] * n[0]), + h = Math.atan2(n[1], o), + l = Math.atan2(n[0], -n[2]) + this.mat.rotateY(l).rotateX(-h) + } + ;(this.mat.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v), + this.mat.rotateX(-this.or.v[0]).rotateY(-this.or.v[1]).rotateZ(this.or.v[2]), + this.mat.translate(this.globalData.compSize.w / 2, this.globalData.compSize.h / 2, 0), + this.mat.translate(0, 0, this.pe.v)) + var p = !this._prevMat.equals(this.mat) + if ((p || this.pe._mdf) && this.comp.threeDElements) { + var m + for (e = this.comp.threeDElements.length, t = 0; t < e; t += 1) + '3d' === (m = this.comp.threeDElements[t]).type && + (p && (m.container.style.transform = m.container.style.webkitTransform = this.mat.toCSS()), + this.pe._mdf && (m.perspectiveElem.style.perspective = m.perspectiveElem.style.webkitPerspective = this.pe.v + 'px')) + this.mat.clone(this._prevMat) + } + } + this._isFirstFrame = !1 + }), + (HCameraElement.prototype.prepareFrame = function (t) { + this.prepareProperties(t, !0) + }), + (HCameraElement.prototype.destroy = function () {}), + (HCameraElement.prototype.getBaseElement = function () { + return null + }), + (HEffects.prototype.renderFrame = function () {})) + var animationManager = (function () { + var t = {}, + s = [], + i = 0, + a = 0, + n = 0, + o = !0, + h = !1 + function r(t) { + for (var e = 0, r = t.target; e < a; ) (s[e].animation === r && (s.splice(e, 1), (e -= 1), (a -= 1), r.isPaused || m()), (e += 1)) + } + function l(t, e) { + if (!t) return null + for (var r = 0; r < a; ) { + if (s[r].elem == t && null !== s[r].elem) return s[r].animation + r += 1 + } + var i = new AnimationItem() + return (f(i, t), i.setData(t, e), i) + } + function p() { + ;((n += 1), d()) + } + function m() { + n -= 1 + } + function f(t, e) { + ;(t.addEventListener('destroy', r), + t.addEventListener('_active', p), + t.addEventListener('_idle', m), + s.push({ elem: e, animation: t }), + (a += 1)) + } + function c(t) { + var e, + r = t - i + for (e = 0; e < a; e += 1) s[e].animation.advanceTime(r) + ;((i = t), n && !h ? window.requestAnimationFrame(c) : (o = !0)) + } + function e(t) { + ;((i = t), window.requestAnimationFrame(c)) + } + function d() { + !h && n && o && (window.requestAnimationFrame(e), (o = !1)) + } + return ( + (t.registerAnimation = l), + (t.loadAnimation = function (t) { + var e = new AnimationItem() + return (f(e, null), e.setParams(t), e) + }), + (t.setSpeed = function (t, e) { + var r + for (r = 0; r < a; r += 1) s[r].animation.setSpeed(t, e) + }), + (t.setDirection = function (t, e) { + var r + for (r = 0; r < a; r += 1) s[r].animation.setDirection(t, e) + }), + (t.play = function (t) { + var e + for (e = 0; e < a; e += 1) s[e].animation.play(t) + }), + (t.pause = function (t) { + var e + for (e = 0; e < a; e += 1) s[e].animation.pause(t) + }), + (t.stop = function (t) { + var e + for (e = 0; e < a; e += 1) s[e].animation.stop(t) + }), + (t.togglePause = function (t) { + var e + for (e = 0; e < a; e += 1) s[e].animation.togglePause(t) + }), + (t.searchAnimations = function (t, e, r) { + var i, + s = [].concat([].slice.call(document.getElementsByClassName('lottie')), [].slice.call(document.getElementsByClassName('bodymovin'))), + a = s.length + for (i = 0; i < a; i += 1) (r && s[i].setAttribute('data-bm-type', r), l(s[i], t)) + if (e && 0 === a) { + r || (r = 'svg') + var n = document.getElementsByTagName('body')[0] + n.innerHTML = '' + var o = createTag('div') + ;((o.style.width = '100%'), (o.style.height = '100%'), o.setAttribute('data-bm-type', r), n.appendChild(o), l(o, t)) + } + }), + (t.resize = function () { + var t + for (t = 0; t < a; t += 1) s[t].animation.resize() + }), + (t.goToAndStop = function (t, e, r) { + var i + for (i = 0; i < a; i += 1) s[i].animation.goToAndStop(t, e, r) + }), + (t.destroy = function (t) { + var e + for (e = a - 1; 0 <= e; e -= 1) s[e].animation.destroy(t) + }), + (t.freeze = function () { + h = !0 + }), + (t.unfreeze = function () { + ;((h = !1), d()) + }), + (t.getRegisteredAnimations = function () { + var t, + e = s.length, + r = [] + for (t = 0; t < e; t += 1) r.push(s[t].animation) + return r + }), + t + ) + })(), + AnimationItem = function () { + ;((this._cbs = []), + (this.name = ''), + (this.path = ''), + (this.isLoaded = !1), + (this.currentFrame = 0), + (this.currentRawFrame = 0), + (this.totalFrames = 0), + (this.frameRate = 0), + (this.frameMult = 0), + (this.playSpeed = 1), + (this.playDirection = 1), + (this.playCount = 0), + (this.animationData = {}), + (this.assets = []), + (this.isPaused = !0), + (this.autoplay = !1), + (this.loop = !0), + (this.renderer = null), + (this.animationID = createElementID()), + (this.assetsPath = ''), + (this.timeCompleted = 0), + (this.segmentPos = 0), + (this.subframeEnabled = subframeEnabled), + (this.segments = []), + (this._idle = !0), + (this._completedLoop = !1), + (this.projectInterface = ProjectInterface()), + (this.imagePreloader = new ImagePreloader())) + } + ;(extendPrototype([BaseEvent], AnimationItem), + (AnimationItem.prototype.setParams = function (t) { + ;(t.context && (this.context = t.context), (t.wrapper || t.container) && (this.wrapper = t.wrapper || t.container)) + var e = t.animType ? t.animType : t.renderer ? t.renderer : 'svg' + switch (e) { + case 'canvas': + this.renderer = new CanvasRenderer(this, t.rendererSettings) + break + case 'svg': + this.renderer = new SVGRenderer(this, t.rendererSettings) + break + default: + this.renderer = new HybridRenderer(this, t.rendererSettings) + } + ;(this.renderer.setProjectInterface(this.projectInterface), + (this.animType = e), + '' === t.loop || null === t.loop || (!1 === t.loop ? (this.loop = !1) : !0 === t.loop ? (this.loop = !0) : (this.loop = parseInt(t.loop))), + (this.autoplay = !('autoplay' in t) || t.autoplay), + (this.name = t.name ? t.name : ''), + (this.autoloadSegments = !t.hasOwnProperty('autoloadSegments') || t.autoloadSegments), + (this.assetsPath = t.assetsPath), + t.animationData + ? this.configAnimation(t.animationData) + : t.path && + (-1 !== t.path.lastIndexOf('\\') + ? (this.path = t.path.substr(0, t.path.lastIndexOf('\\') + 1)) + : (this.path = t.path.substr(0, t.path.lastIndexOf('/') + 1)), + (this.fileName = t.path.substr(t.path.lastIndexOf('/') + 1)), + (this.fileName = this.fileName.substr(0, this.fileName.lastIndexOf('.json'))), + assetLoader.load( + t.path, + this.configAnimation.bind(this), + function () { + this.trigger('data_failed') + }.bind(this), + ))) + }), + (AnimationItem.prototype.setData = function (t, e) { + var r = { wrapper: t, animationData: e ? ('object' == typeof e ? e : JSON.parse(e)) : null }, + i = t.attributes + ;((r.path = i.getNamedItem('data-animation-path') + ? i.getNamedItem('data-animation-path').value + : i.getNamedItem('data-bm-path') + ? i.getNamedItem('data-bm-path').value + : i.getNamedItem('bm-path') + ? i.getNamedItem('bm-path').value + : ''), + (r.animType = i.getNamedItem('data-anim-type') + ? i.getNamedItem('data-anim-type').value + : i.getNamedItem('data-bm-type') + ? i.getNamedItem('data-bm-type').value + : i.getNamedItem('bm-type') + ? i.getNamedItem('bm-type').value + : i.getNamedItem('data-bm-renderer') + ? i.getNamedItem('data-bm-renderer').value + : i.getNamedItem('bm-renderer') + ? i.getNamedItem('bm-renderer').value + : 'canvas')) + var s = i.getNamedItem('data-anim-loop') + ? i.getNamedItem('data-anim-loop').value + : i.getNamedItem('data-bm-loop') + ? i.getNamedItem('data-bm-loop').value + : i.getNamedItem('bm-loop') + ? i.getNamedItem('bm-loop').value + : '' + '' === s || (r.loop = 'false' !== s && ('true' === s || parseInt(s))) + var a = i.getNamedItem('data-anim-autoplay') + ? i.getNamedItem('data-anim-autoplay').value + : i.getNamedItem('data-bm-autoplay') + ? i.getNamedItem('data-bm-autoplay').value + : !i.getNamedItem('bm-autoplay') || i.getNamedItem('bm-autoplay').value + ;((r.autoplay = 'false' !== a), + (r.name = i.getNamedItem('data-name') + ? i.getNamedItem('data-name').value + : i.getNamedItem('data-bm-name') + ? i.getNamedItem('data-bm-name').value + : i.getNamedItem('bm-name') + ? i.getNamedItem('bm-name').value + : ''), + 'false' === + (i.getNamedItem('data-anim-prerender') + ? i.getNamedItem('data-anim-prerender').value + : i.getNamedItem('data-bm-prerender') + ? i.getNamedItem('data-bm-prerender').value + : i.getNamedItem('bm-prerender') + ? i.getNamedItem('bm-prerender').value + : '') && (r.prerender = !1), + this.setParams(r)) + }), + (AnimationItem.prototype.includeLayers = function (t) { + t.op > this.animationData.op && ((this.animationData.op = t.op), (this.totalFrames = Math.floor(t.op - this.animationData.ip))) + var e, + r, + i = this.animationData.layers, + s = i.length, + a = t.layers, + n = a.length + for (r = 0; r < n; r += 1) + for (e = 0; e < s; ) { + if (i[e].id == a[r].id) { + i[e] = a[r] + break + } + e += 1 + } + if ( + ((t.chars || t.fonts) && + (this.renderer.globalData.fontManager.addChars(t.chars), + this.renderer.globalData.fontManager.addFonts(t.fonts, this.renderer.globalData.defs)), + t.assets) + ) + for (s = t.assets.length, e = 0; e < s; e += 1) this.animationData.assets.push(t.assets[e]) + ;((this.animationData.__complete = !1), + dataManager.completeData(this.animationData, this.renderer.globalData.fontManager), + this.renderer.includeLayers(t.layers), + expressionsPlugin && expressionsPlugin.initExpressions(this), + this.loadNextSegment()) + }), + (AnimationItem.prototype.loadNextSegment = function () { + var t = this.animationData.segments + if (!t || 0 === t.length || !this.autoloadSegments) return (this.trigger('data_ready'), void (this.timeCompleted = this.totalFrames)) + var e = t.shift() + this.timeCompleted = e.time * this.frameRate + var r = this.path + this.fileName + '_' + this.segmentPos + '.json' + ;((this.segmentPos += 1), + assetLoader.load( + r, + this.includeLayers.bind(this), + function () { + this.trigger('data_failed') + }.bind(this), + )) + }), + (AnimationItem.prototype.loadSegments = function () { + ;(this.animationData.segments || (this.timeCompleted = this.totalFrames), this.loadNextSegment()) + }), + (AnimationItem.prototype.imagesLoaded = function () { + ;(this.trigger('loaded_images'), this.checkLoaded()) + }), + (AnimationItem.prototype.preloadImages = function () { + ;(this.imagePreloader.setAssetsPath(this.assetsPath), + this.imagePreloader.setPath(this.path), + this.imagePreloader.loadAssets(this.animationData.assets, this.imagesLoaded.bind(this))) + }), + (AnimationItem.prototype.configAnimation = function (t) { + if (this.renderer) + try { + ;((this.animationData = t), + (this.totalFrames = Math.floor(this.animationData.op - this.animationData.ip)), + this.renderer.configAnimation(t), + t.assets || (t.assets = []), + (this.assets = this.animationData.assets), + (this.frameRate = this.animationData.fr), + (this.firstFrame = Math.round(this.animationData.ip)), + (this.frameMult = this.animationData.fr / 1e3), + this.renderer.searchExtraCompositions(t.assets), + this.trigger('config_ready'), + this.preloadImages(), + this.loadSegments(), + this.updaFrameModifier(), + this.waitForFontsLoaded()) + } catch (t) { + this.triggerConfigError(t) + } + }), + (AnimationItem.prototype.waitForFontsLoaded = function () { + this.renderer && (this.renderer.globalData.fontManager.loaded() ? this.checkLoaded() : setTimeout(this.waitForFontsLoaded.bind(this), 20)) + }), + (AnimationItem.prototype.checkLoaded = function () { + this.isLoaded || + !this.renderer.globalData.fontManager.loaded() || + (!this.imagePreloader.loaded() && 'canvas' === this.renderer.rendererType) || + ((this.isLoaded = !0), + dataManager.completeData(this.animationData, this.renderer.globalData.fontManager), + expressionsPlugin && expressionsPlugin.initExpressions(this), + this.renderer.initItems(), + setTimeout( + function () { + this.trigger('DOMLoaded') + }.bind(this), + 0, + ), + this.gotoFrame(), + this.autoplay && this.play()) + }), + (AnimationItem.prototype.resize = function () { + this.renderer.updateContainerSize() + }), + (AnimationItem.prototype.setSubframe = function (t) { + this.subframeEnabled = !!t + }), + (AnimationItem.prototype.gotoFrame = function () { + ;((this.currentFrame = this.subframeEnabled ? this.currentRawFrame : ~~this.currentRawFrame), + this.timeCompleted !== this.totalFrames && this.currentFrame > this.timeCompleted && (this.currentFrame = this.timeCompleted), + this.trigger('enterFrame'), + this.renderFrame()) + }), + (AnimationItem.prototype.renderFrame = function () { + if (!1 !== this.isLoaded) + try { + this.renderer.renderFrame(this.currentFrame + this.firstFrame) + } catch (t) { + this.triggerRenderFrameError(t) + } + }), + (AnimationItem.prototype.play = function (t) { + ;(t && this.name != t) || (!0 === this.isPaused && ((this.isPaused = !1), this._idle && ((this._idle = !1), this.trigger('_active')))) + }), + (AnimationItem.prototype.pause = function (t) { + ;(t && this.name != t) || (!1 === this.isPaused && ((this.isPaused = !0), (this._idle = !0), this.trigger('_idle'))) + }), + (AnimationItem.prototype.togglePause = function (t) { + ;(t && this.name != t) || (!0 === this.isPaused ? this.play() : this.pause()) + }), + (AnimationItem.prototype.stop = function (t) { + ;(t && this.name != t) || (this.pause(), (this.playCount = 0), (this._completedLoop = !1), this.setCurrentRawFrameValue(0)) + }), + (AnimationItem.prototype.goToAndStop = function (t, e, r) { + ;(r && this.name != r) || (e ? this.setCurrentRawFrameValue(t) : this.setCurrentRawFrameValue(t * this.frameModifier), this.pause()) + }), + (AnimationItem.prototype.goToAndPlay = function (t, e, r) { + ;(this.goToAndStop(t, e, r), this.play()) + }), + (AnimationItem.prototype.advanceTime = function (t) { + if (!0 !== this.isPaused && !1 !== this.isLoaded) { + var e = this.currentRawFrame + t * this.frameModifier, + r = !1 + ;(e >= this.totalFrames - 1 && 0 < this.frameModifier + ? this.loop && this.playCount !== this.loop + ? e >= this.totalFrames + ? ((this.playCount += 1), + this.checkSegments(e % this.totalFrames) || + (this.setCurrentRawFrameValue(e % this.totalFrames), (this._completedLoop = !0), this.trigger('loopComplete'))) + : this.setCurrentRawFrameValue(e) + : this.checkSegments(e > this.totalFrames ? e % this.totalFrames : 0) || ((r = !0), (e = this.totalFrames - 1)) + : e < 0 + ? this.checkSegments(e % this.totalFrames) || + (!this.loop || (this.playCount-- <= 0 && !0 !== this.loop) + ? ((r = !0), (e = 0)) + : (this.setCurrentRawFrameValue(this.totalFrames + (e % this.totalFrames)), + this._completedLoop ? this.trigger('loopComplete') : (this._completedLoop = !0))) + : this.setCurrentRawFrameValue(e), + r && (this.setCurrentRawFrameValue(e), this.pause(), this.trigger('complete'))) + } + }), + (AnimationItem.prototype.adjustSegment = function (t, e) { + ;((this.playCount = 0), + t[1] < t[0] + ? (0 < this.frameModifier && (this.playSpeed < 0 ? this.setSpeed(-this.playSpeed) : this.setDirection(-1)), + (this.timeCompleted = this.totalFrames = t[0] - t[1]), + (this.firstFrame = t[1]), + this.setCurrentRawFrameValue(this.totalFrames - 0.001 - e)) + : t[1] > t[0] && + (this.frameModifier < 0 && (this.playSpeed < 0 ? this.setSpeed(-this.playSpeed) : this.setDirection(1)), + (this.timeCompleted = this.totalFrames = t[1] - t[0]), + (this.firstFrame = t[0]), + this.setCurrentRawFrameValue(0.001 + e)), + this.trigger('segmentStart')) + }), + (AnimationItem.prototype.setSegment = function (t, e) { + var r = -1 + ;(this.isPaused && (this.currentRawFrame + this.firstFrame < t ? (r = t) : this.currentRawFrame + this.firstFrame > e && (r = e - t)), + (this.firstFrame = t), + (this.timeCompleted = this.totalFrames = e - t), + -1 !== r && this.goToAndStop(r, !0)) + }), + (AnimationItem.prototype.playSegments = function (t, e) { + if ((e && (this.segments.length = 0), 'object' == typeof t[0])) { + var r, + i = t.length + for (r = 0; r < i; r += 1) this.segments.push(t[r]) + } else this.segments.push(t) + ;(this.segments.length && e && this.adjustSegment(this.segments.shift(), 0), this.isPaused && this.play()) + }), + (AnimationItem.prototype.resetSegments = function (t) { + ;((this.segments.length = 0), this.segments.push([this.animationData.ip, this.animationData.op]), t && this.checkSegments(0)) + }), + (AnimationItem.prototype.checkSegments = function (t) { + return !!this.segments.length && (this.adjustSegment(this.segments.shift(), t), !0) + }), + (AnimationItem.prototype.destroy = function (t) { + ;(t && this.name != t) || + !this.renderer || + (this.renderer.destroy(), + this.imagePreloader.destroy(), + this.trigger('destroy'), + (this._cbs = null), + (this.onEnterFrame = this.onLoopComplete = this.onComplete = this.onSegmentStart = this.onDestroy = null), + (this.renderer = null)) + }), + (AnimationItem.prototype.setCurrentRawFrameValue = function (t) { + ;((this.currentRawFrame = t), this.gotoFrame()) + }), + (AnimationItem.prototype.setSpeed = function (t) { + ;((this.playSpeed = t), this.updaFrameModifier()) + }), + (AnimationItem.prototype.setDirection = function (t) { + ;((this.playDirection = t < 0 ? -1 : 1), this.updaFrameModifier()) + }), + (AnimationItem.prototype.updaFrameModifier = function () { + this.frameModifier = this.frameMult * this.playSpeed * this.playDirection + }), + (AnimationItem.prototype.getPath = function () { + return this.path + }), + (AnimationItem.prototype.getAssetsPath = function (t) { + var e = '' + if (t.e) e = t.p + else if (this.assetsPath) { + var r = t.p + ;(-1 !== r.indexOf('images/') && (r = r.split('/')[1]), (e = this.assetsPath + r)) + } else ((e = this.path), (e += t.u ? t.u : ''), (e += t.p)) + return e + }), + (AnimationItem.prototype.getAssetData = function (t) { + for (var e = 0, r = this.assets.length; e < r; ) { + if (t == this.assets[e].id) return this.assets[e] + e += 1 + } + }), + (AnimationItem.prototype.hide = function () { + this.renderer.hide() + }), + (AnimationItem.prototype.show = function () { + this.renderer.show() + }), + (AnimationItem.prototype.getDuration = function (t) { + return t ? this.totalFrames : this.totalFrames / this.frameRate + }), + (AnimationItem.prototype.trigger = function (t) { + if (this._cbs && this._cbs[t]) + switch (t) { + case 'enterFrame': + this.triggerEvent(t, new BMEnterFrameEvent(t, this.currentFrame, this.totalFrames, this.frameModifier)) + break + case 'loopComplete': + this.triggerEvent(t, new BMCompleteLoopEvent(t, this.loop, this.playCount, this.frameMult)) + break + case 'complete': + this.triggerEvent(t, new BMCompleteEvent(t, this.frameMult)) + break + case 'segmentStart': + this.triggerEvent(t, new BMSegmentStartEvent(t, this.firstFrame, this.totalFrames)) + break + case 'destroy': + this.triggerEvent(t, new BMDestroyEvent(t, this)) + break + default: + this.triggerEvent(t) + } + ;('enterFrame' === t && + this.onEnterFrame && + this.onEnterFrame.call(this, new BMEnterFrameEvent(t, this.currentFrame, this.totalFrames, this.frameMult)), + 'loopComplete' === t && + this.onLoopComplete && + this.onLoopComplete.call(this, new BMCompleteLoopEvent(t, this.loop, this.playCount, this.frameMult)), + 'complete' === t && this.onComplete && this.onComplete.call(this, new BMCompleteEvent(t, this.frameMult)), + 'segmentStart' === t && + this.onSegmentStart && + this.onSegmentStart.call(this, new BMSegmentStartEvent(t, this.firstFrame, this.totalFrames)), + 'destroy' === t && this.onDestroy && this.onDestroy.call(this, new BMDestroyEvent(t, this))) + }), + (AnimationItem.prototype.triggerRenderFrameError = function (t) { + var e = new BMRenderFrameErrorEvent(t, this.currentFrame) + ;(this.triggerEvent('error', e), this.onError && this.onError.call(this, e)) + }), + (AnimationItem.prototype.triggerConfigError = function (t) { + var e = new BMConfigErrorEvent(t, this.currentFrame) + ;(this.triggerEvent('error', e), this.onError && this.onError.call(this, e)) + })) + var Expressions = + ((zW = {}), + (zW.initExpressions = function (t) { + var e = 0, + r = [] + function i() { + var t, + e = r.length + for (t = 0; t < e; t += 1) r[t].release() + r.length = 0 + } + ;((t.renderer.compInterface = CompExpressionInterface(t.renderer)), + t.renderer.globalData.projectInterface.registerComposition(t.renderer), + (t.renderer.globalData.pushExpression = function () { + e += 1 + }), + (t.renderer.globalData.popExpression = function () { + 0 == (e -= 1) && i() + }), + (t.renderer.globalData.registerExpressionProperty = function (t) { + ;-1 === r.indexOf(t) && r.push(t) + })) + }), + zW), + zW + expressionsPlugin = Expressions + var ExpressionManager = (function () { + var ob = {}, + Math = BMMath, + window = null, + document = null + function $bm_isInstanceOfArray(t) { + return t.constructor === Array || t.constructor === Float32Array + } + function isNumerable(t, e) { + return 'number' === t || 'boolean' === t || 'string' === t || e instanceof Number + } + function $bm_neg(t) { + var e = typeof t + if ('number' === e || 'boolean' === e || t instanceof Number) return -t + if ($bm_isInstanceOfArray(t)) { + var r, + i = t.length, + s = [] + for (r = 0; r < i; r += 1) s[r] = -t[r] + return s + } + return t.propType ? t.v : void 0 + } + var easeInBez = BezierFactory.getBezierEasing(0.333, 0, 0.833, 0.833, 'easeIn').get, + easeOutBez = BezierFactory.getBezierEasing(0.167, 0.167, 0.667, 1, 'easeOut').get, + easeInOutBez = BezierFactory.getBezierEasing(0.33, 0, 0.667, 1, 'easeInOut').get + function sum(t, e) { + var r = typeof t, + i = typeof e + if ('string' === r || 'string' === i) return t + e + if (isNumerable(r, t) && isNumerable(i, e)) return t + e + if ($bm_isInstanceOfArray(t) && isNumerable(i, e)) return (((t = t.slice(0))[0] = t[0] + e), t) + if (isNumerable(r, t) && $bm_isInstanceOfArray(e)) return (((e = e.slice(0))[0] = t + e[0]), e) + if ($bm_isInstanceOfArray(t) && $bm_isInstanceOfArray(e)) { + for (var s = 0, a = t.length, n = e.length, o = []; s < a || s < n; ) + (('number' == typeof t[s] || t[s] instanceof Number) && ('number' == typeof e[s] || e[s] instanceof Number) + ? (o[s] = t[s] + e[s]) + : (o[s] = void 0 === e[s] ? t[s] : t[s] || e[s]), + (s += 1)) + return o + } + return 0 + } + var add = sum + function sub(t, e) { + var r = typeof t, + i = typeof e + if (isNumerable(r, t) && isNumerable(i, e)) return ('string' === r && (t = parseInt(t)), 'string' === i && (e = parseInt(e)), t - e) + if ($bm_isInstanceOfArray(t) && isNumerable(i, e)) return (((t = t.slice(0))[0] = t[0] - e), t) + if (isNumerable(r, t) && $bm_isInstanceOfArray(e)) return (((e = e.slice(0))[0] = t - e[0]), e) + if ($bm_isInstanceOfArray(t) && $bm_isInstanceOfArray(e)) { + for (var s = 0, a = t.length, n = e.length, o = []; s < a || s < n; ) + (('number' == typeof t[s] || t[s] instanceof Number) && ('number' == typeof e[s] || e[s] instanceof Number) + ? (o[s] = t[s] - e[s]) + : (o[s] = void 0 === e[s] ? t[s] : t[s] || e[s]), + (s += 1)) + return o + } + return 0 + } + function mul(t, e) { + var r, + i, + s, + a = typeof t, + n = typeof e + if (isNumerable(a, t) && isNumerable(n, e)) return t * e + if ($bm_isInstanceOfArray(t) && isNumerable(n, e)) { + for (s = t.length, r = createTypedArray('float32', s), i = 0; i < s; i += 1) r[i] = t[i] * e + return r + } + if (isNumerable(a, t) && $bm_isInstanceOfArray(e)) { + for (s = e.length, r = createTypedArray('float32', s), i = 0; i < s; i += 1) r[i] = t * e[i] + return r + } + return 0 + } + function div(t, e) { + var r, + i, + s, + a = typeof t, + n = typeof e + if (isNumerable(a, t) && isNumerable(n, e)) return t / e + if ($bm_isInstanceOfArray(t) && isNumerable(n, e)) { + for (s = t.length, r = createTypedArray('float32', s), i = 0; i < s; i += 1) r[i] = t[i] / e + return r + } + if (isNumerable(a, t) && $bm_isInstanceOfArray(e)) { + for (s = e.length, r = createTypedArray('float32', s), i = 0; i < s; i += 1) r[i] = t / e[i] + return r + } + return 0 + } + function mod(t, e) { + return ('string' == typeof t && (t = parseInt(t)), 'string' == typeof e && (e = parseInt(e)), t % e) + } + var $bm_sum = sum, + $bm_sub = sub, + $bm_mul = mul, + $bm_div = div, + $bm_mod = mod + function clamp(t, e, r) { + if (r < e) { + var i = r + ;((r = e), (e = i)) + } + return Math.min(Math.max(t, e), r) + } + function radiansToDegrees(t) { + return t / degToRads + } + var radians_to_degrees = radiansToDegrees + function degreesToRadians(t) { + return t * degToRads + } + var degrees_to_radians = radiansToDegrees, + helperLengthArray = [0, 0, 0, 0, 0, 0] + function length(t, e) { + if ('number' == typeof t || t instanceof Number) return ((e = e || 0), Math.abs(t - e)) + e || (e = helperLengthArray) + var r, + i = Math.min(t.length, e.length), + s = 0 + for (r = 0; r < i; r += 1) s += Math.pow(e[r] - t[r], 2) + return Math.sqrt(s) + } + function normalize(t) { + return div(t, length(t)) + } + function rgbToHsl(t) { + var e, + r, + i = t[0], + s = t[1], + a = t[2], + n = Math.max(i, s, a), + o = Math.min(i, s, a), + h = (n + o) / 2 + if (n == o) e = r = 0 + else { + var l = n - o + switch (((r = 0.5 < h ? l / (2 - n - o) : l / (n + o)), n)) { + case i: + e = (s - a) / l + (s < a ? 6 : 0) + break + case s: + e = (a - i) / l + 2 + break + case a: + e = (i - s) / l + 4 + } + e /= 6 + } + return [e, r, h, t[3]] + } + function hue2rgb(t, e, r) { + return (r < 0 && (r += 1), 1 < r && (r -= 1), r < 1 / 6 ? t + 6 * (e - t) * r : r < 0.5 ? e : r < 2 / 3 ? t + (e - t) * (2 / 3 - r) * 6 : t) + } + function hslToRgb(t) { + var e, + r, + i, + s = t[0], + a = t[1], + n = t[2] + if (0 === a) e = r = i = n + else { + var o = n < 0.5 ? n * (1 + a) : n + a - n * a, + h = 2 * n - o + ;((e = hue2rgb(h, o, s + 1 / 3)), (r = hue2rgb(h, o, s)), (i = hue2rgb(h, o, s - 1 / 3))) + } + return [e, r, i, t[3]] + } + function linear(t, e, r, i, s) { + if (((void 0 !== i && void 0 !== s) || ((i = e), (s = r), (e = 0), (r = 1)), r < e)) { + var a = r + ;((r = e), (e = a)) + } + if (t <= e) return i + if (r <= t) return s + var n = r === e ? 0 : (t - e) / (r - e) + if (!i.length) return i + (s - i) * n + var o, + h = i.length, + l = createTypedArray('float32', h) + for (o = 0; o < h; o += 1) l[o] = i[o] + (s[o] - i[o]) * n + return l + } + function random(t, e) { + if ((void 0 === e && (void 0 === t ? ((t = 0), (e = 1)) : ((e = t), (t = void 0))), e.length)) { + var r, + i = e.length + t || (t = createTypedArray('float32', i)) + var s = createTypedArray('float32', i), + a = BMMath.random() + for (r = 0; r < i; r += 1) s[r] = t[r] + a * (e[r] - t[r]) + return s + } + return (void 0 === t && (t = 0), t + BMMath.random() * (e - t)) + } + function createPath(t, e, r, i) { + var s, + a = t.length, + n = shape_pool.newElement() + n.setPathData(!!i, a) + var o, + h, + l = [0, 0] + for (s = 0; s < a; s += 1) + ((o = e && e[s] ? e[s] : l), + (h = r && r[s] ? r[s] : l), + n.setTripleAt(t[s][0], t[s][1], h[0] + t[s][0], h[1] + t[s][1], o[0] + t[s][0], o[1] + t[s][1], s, !0)) + return n + } + function initiateExpression(elem, data, property) { + var val = data.x, + needsVelocity = /velocity(?![\w\d])/.test(val), + _needsRandom = -1 !== val.indexOf('random'), + elemType = elem.data.ty, + transform, + $bm_transform, + content, + effect, + thisProperty = property + ;((thisProperty.valueAtTime = thisProperty.getValueAtTime), + Object.defineProperty(thisProperty, 'value', { + get: function () { + return thisProperty.v + }, + }), + (elem.comp.frameDuration = 1 / elem.comp.globalData.frameRate), + (elem.comp.displayStartTime = 0)) + var inPoint = elem.data.ip / elem.comp.globalData.frameRate, + outPoint = elem.data.op / elem.comp.globalData.frameRate, + width = elem.data.sw ? elem.data.sw : 0, + height = elem.data.sh ? elem.data.sh : 0, + name = elem.data.nm, + loopIn, + loop_in, + loopOut, + loop_out, + smooth, + toWorld, + fromWorld, + fromComp, + toComp, + fromCompToSurface, + position, + rotation, + anchorPoint, + scale, + thisLayer, + thisComp, + mask, + valueAtTime, + velocityAtTime, + __expression_functions = [], + scoped_bm_rt + if (data.xf) { + var i, + len = data.xf.length + for (i = 0; i < len; i += 1) __expression_functions[i] = eval('(function(){ return ' + data.xf[i] + '}())') + } + var expression_function = eval('[function _expression_function(){' + val + ';scoped_bm_rt=$bm_rt}]')[0], + numKeys = property.kf ? data.k.length : 0, + active = !this.data || !0 !== this.data.hd, + wiggle = function (t, e) { + var r, + i, + s = this.pv.length ? this.pv.length : 1, + a = createTypedArray('float32', s) + var n = Math.floor(5 * time) + for (i = r = 0; r < n; ) { + for (i = 0; i < s; i += 1) a[i] += -e + 2 * e * BMMath.random() + r += 1 + } + var o = 5 * time, + h = o - Math.floor(o), + l = createTypedArray('float32', s) + if (1 < s) { + for (i = 0; i < s; i += 1) l[i] = this.pv[i] + a[i] + (-e + 2 * e * BMMath.random()) * h + return l + } + return this.pv + a[0] + (-e + 2 * e * BMMath.random()) * h + }.bind(this) + function loopInDuration(t, e) { + return loopIn(t, e, !0) + } + function loopOutDuration(t, e) { + return loopOut(t, e, !0) + } + ;(thisProperty.loopIn && ((loopIn = thisProperty.loopIn.bind(thisProperty)), (loop_in = loopIn)), + thisProperty.loopOut && ((loopOut = thisProperty.loopOut.bind(thisProperty)), (loop_out = loopOut)), + thisProperty.smooth && (smooth = thisProperty.smooth.bind(thisProperty)), + this.getValueAtTime && (valueAtTime = this.getValueAtTime.bind(this)), + this.getVelocityAtTime && (velocityAtTime = this.getVelocityAtTime.bind(this))) + var comp = elem.comp.globalData.projectInterface.bind(elem.comp.globalData.projectInterface), + time, + velocity, + value, + text, + textIndex, + textTotal, + selectorValue + function lookAt(t, e) { + var r = [e[0] - t[0], e[1] - t[1], e[2] - t[2]], + i = Math.atan2(r[0], Math.sqrt(r[1] * r[1] + r[2] * r[2])) / degToRads + return [-Math.atan2(r[1], r[2]) / degToRads, i, 0] + } + function easeOut(t, e, r, i, s) { + return applyEase(easeOutBez, t, e, r, i, s) + } + function easeIn(t, e, r, i, s) { + return applyEase(easeInBez, t, e, r, i, s) + } + function ease(t, e, r, i, s) { + return applyEase(easeInOutBez, t, e, r, i, s) + } + function applyEase(t, e, r, i, s, a) { + void 0 === s ? ((s = r), (a = i)) : (e = (e - r) / (i - r)) + var n = t((e = 1 < e ? 1 : e < 0 ? 0 : e)) + if ($bm_isInstanceOfArray(s)) { + var o, + h = s.length, + l = createTypedArray('float32', h) + for (o = 0; o < h; o += 1) l[o] = (a[o] - s[o]) * n + s[o] + return l + } + return (a - s) * n + s + } + function nearestKey(t) { + var e, + r, + i, + s = data.k.length + if (data.k.length && 'number' != typeof data.k[0]) + if (((r = -1), (t *= elem.comp.globalData.frameRate) < data.k[0].t)) ((r = 1), (i = data.k[0].t)) + else { + for (e = 0; e < s - 1; e += 1) { + if (t === data.k[e].t) { + ;((r = e + 1), (i = data.k[e].t)) + break + } + if (t > data.k[e].t && t < data.k[e + 1].t) { + i = t - data.k[e].t > data.k[e + 1].t - t ? ((r = e + 2), data.k[e + 1].t) : ((r = e + 1), data.k[e].t) + break + } + } + ;-1 === r && ((r = e + 1), (i = data.k[e].t)) + } + else i = r = 0 + var a = {} + return ((a.index = r), (a.time = i / elem.comp.globalData.frameRate), a) + } + function key(t) { + var e, r, i + if (!data.k.length || 'number' == typeof data.k[0]) throw new Error('The property has no keyframe at index ' + t) + ;((t -= 1), (e = { time: data.k[t].t / elem.comp.globalData.frameRate, value: [] })) + var s = data.k[t].hasOwnProperty('s') ? data.k[t].s : data.k[t - 1].e + for (i = s.length, r = 0; r < i; r += 1) ((e[r] = s[r]), (e.value[r] = s[r])) + return e + } + function framesToTime(t, e) { + return (e || (e = elem.comp.globalData.frameRate), t / e) + } + function timeToFrames(t, e) { + return (t || 0 === t || (t = time), e || (e = elem.comp.globalData.frameRate), t * e) + } + function seedRandom(t) { + BMMath.seedrandom(randSeed + t) + } + function sourceRectAtTime() { + return elem.sourceRectAtTime() + } + function substring(t, e) { + return 'string' == typeof value ? (void 0 === e ? value.substring(t) : value.substring(t, e)) : '' + } + function substr(t, e) { + return 'string' == typeof value ? (void 0 === e ? value.substr(t) : value.substr(t, e)) : '' + } + var index = elem.data.ind, + hasParent = !(!elem.hierarchy || !elem.hierarchy.length), + parent, + randSeed = Math.floor(1e6 * Math.random()), + globalData = elem.globalData + function executeExpression(t) { + return ( + (value = t), + _needsRandom && seedRandom(randSeed), + this.frameExpressionId === elem.globalData.frameId && 'textSelector' !== this.propType + ? value + : ('textSelector' === this.propType && + ((textIndex = this.textIndex), (textTotal = this.textTotal), (selectorValue = this.selectorValue)), + thisLayer || + ((text = elem.layerInterface.text), + (thisLayer = elem.layerInterface), + (thisComp = elem.comp.compInterface), + (toWorld = thisLayer.toWorld.bind(thisLayer)), + (fromWorld = thisLayer.fromWorld.bind(thisLayer)), + (fromComp = thisLayer.fromComp.bind(thisLayer)), + (toComp = thisLayer.toComp.bind(thisLayer)), + (mask = thisLayer.mask ? thisLayer.mask.bind(thisLayer) : null), + (fromCompToSurface = fromComp)), + transform || + ((transform = elem.layerInterface('ADBE Transform Group')), ($bm_transform = transform) && (anchorPoint = transform.anchorPoint)), + 4 !== elemType || content || (content = thisLayer('ADBE Root Vectors Group')), + effect || (effect = thisLayer(4)), + (hasParent = !(!elem.hierarchy || !elem.hierarchy.length)) && !parent && (parent = elem.hierarchy[0].layerInterface), + (time = this.comp.renderedFrame / this.comp.globalData.frameRate), + needsVelocity && (velocity = velocityAtTime(time)), + expression_function(), + (this.frameExpressionId = elem.globalData.frameId), + 'shape' === scoped_bm_rt.propType && (scoped_bm_rt = scoped_bm_rt.v), + scoped_bm_rt) + ) + } + return executeExpression + } + return ((ob.initiateExpression = initiateExpression), ob) + })(), + expressionHelpers = { + searchExpressions: function (t, e, r) { + e.x && + ((r.k = !0), + (r.x = !0), + (r.initiateExpression = ExpressionManager.initiateExpression), + r.effectsSequence.push(r.initiateExpression(t, e, r).bind(r))) + }, + getSpeedAtTime: function (t) { + var e = this.getValueAtTime(t), + r = this.getValueAtTime(t + -0.01), + i = 0 + if (e.length) { + var s + for (s = 0; s < e.length; s += 1) i += Math.pow(r[s] - e[s], 2) + i = 100 * Math.sqrt(i) + } else i = 0 + return i + }, + getVelocityAtTime: function (t) { + if (void 0 !== this.vel) return this.vel + var e, + r, + i = this.getValueAtTime(t), + s = this.getValueAtTime(t + -0.001) + if (i.length) for (e = createTypedArray('float32', i.length), r = 0; r < i.length; r += 1) e[r] = (s[r] - i[r]) / -0.001 + else e = (s - i) / -0.001 + return e + }, + getValueAtTime: function (t) { + return ( + (t *= this.elem.globalData.frameRate), + (t -= this.offsetTime) !== this._cachingAtTime.lastFrame && + ((this._cachingAtTime.lastIndex = this._cachingAtTime.lastFrame < t ? this._cachingAtTime.lastIndex : 0), + (this._cachingAtTime.value = this.interpolateValue(t, this._cachingAtTime)), + (this._cachingAtTime.lastFrame = t)), + this._cachingAtTime.value + ) + }, + getStaticValueAtTime: function () { + return this.pv + }, + setGroupProperty: function (t) { + this.propertyGroup = t + }, + } + ;(!(function () { + function o(t, e, r) { + if (!this.k || !this.keyframes) return this.pv + t = t ? t.toLowerCase() : '' + var i, + s, + a, + n, + o, + h = this.comp.renderedFrame, + l = this.keyframes, + p = l[l.length - 1].t + if (h <= p) return this.pv + if ( + (r + ? (s = p - (i = e ? Math.abs(p - elem.comp.globalData.frameRate * e) : Math.max(0, p - this.elem.data.ip))) + : ((!e || e > l.length - 1) && (e = l.length - 1), (i = p - (s = l[l.length - 1 - e].t))), + 'pingpong' === t) + ) { + if (Math.floor((h - s) / i) % 2 != 0) return this.getValueAtTime((i - ((h - s) % i) + s) / this.comp.globalData.frameRate, 0) + } else { + if ('offset' === t) { + var m = this.getValueAtTime(s / this.comp.globalData.frameRate, 0), + f = this.getValueAtTime(p / this.comp.globalData.frameRate, 0), + c = this.getValueAtTime((((h - s) % i) + s) / this.comp.globalData.frameRate, 0), + d = Math.floor((h - s) / i) + if (this.pv.length) { + for (n = (o = new Array(m.length)).length, a = 0; a < n; a += 1) o[a] = (f[a] - m[a]) * d + c[a] + return o + } + return (f - m) * d + c + } + if ('continue' === t) { + var u = this.getValueAtTime(p / this.comp.globalData.frameRate, 0), + y = this.getValueAtTime((p - 0.001) / this.comp.globalData.frameRate, 0) + if (this.pv.length) { + for (n = (o = new Array(u.length)).length, a = 0; a < n; a += 1) + o[a] = u[a] + ((u[a] - y[a]) * ((h - p) / this.comp.globalData.frameRate)) / 5e-4 + return o + } + return u + ((h - p) / 0.001) * (u - y) + } + } + return this.getValueAtTime((((h - s) % i) + s) / this.comp.globalData.frameRate, 0) + } + function h(t, e, r) { + if (!this.k) return this.pv + t = t ? t.toLowerCase() : '' + var i, + s, + a, + n, + o, + h = this.comp.renderedFrame, + l = this.keyframes, + p = l[0].t + if (p <= h) return this.pv + if ( + (r + ? (s = p + (i = e ? Math.abs(elem.comp.globalData.frameRate * e) : Math.max(0, this.elem.data.op - p))) + : ((!e || e > l.length - 1) && (e = l.length - 1), (i = (s = l[e].t) - p)), + 'pingpong' === t) + ) { + if (Math.floor((p - h) / i) % 2 == 0) return this.getValueAtTime((((p - h) % i) + p) / this.comp.globalData.frameRate, 0) + } else { + if ('offset' === t) { + var m = this.getValueAtTime(p / this.comp.globalData.frameRate, 0), + f = this.getValueAtTime(s / this.comp.globalData.frameRate, 0), + c = this.getValueAtTime((i - ((p - h) % i) + p) / this.comp.globalData.frameRate, 0), + d = Math.floor((p - h) / i) + 1 + if (this.pv.length) { + for (n = (o = new Array(m.length)).length, a = 0; a < n; a += 1) o[a] = c[a] - (f[a] - m[a]) * d + return o + } + return c - (f - m) * d + } + if ('continue' === t) { + var u = this.getValueAtTime(p / this.comp.globalData.frameRate, 0), + y = this.getValueAtTime((p + 0.001) / this.comp.globalData.frameRate, 0) + if (this.pv.length) { + for (n = (o = new Array(u.length)).length, a = 0; a < n; a += 1) o[a] = u[a] + ((u[a] - y[a]) * (p - h)) / 0.001 + return o + } + return u + ((u - y) * (p - h)) / 0.001 + } + } + return this.getValueAtTime((i - ((p - h) % i) + p) / this.comp.globalData.frameRate, 0) + } + function l(t, e) { + if (!this.k) return this.pv + if (((t = 0.5 * (t || 0.4)), (e = Math.floor(e || 5)) <= 1)) return this.pv + var r, + i, + s = this.comp.renderedFrame / this.comp.globalData.frameRate, + a = s - t, + n = 1 < e ? (s + t - a) / (e - 1) : 1, + o = 0, + h = 0 + for (r = this.pv.length ? createTypedArray('float32', this.pv.length) : 0; o < e; ) { + if (((i = this.getValueAtTime(a + o * n)), this.pv.length)) for (h = 0; h < this.pv.length; h += 1) r[h] += i[h] + else r += i + o += 1 + } + if (this.pv.length) for (h = 0; h < this.pv.length; h += 1) r[h] /= e + else r /= e + return r + } + var s = TransformPropertyFactory.getTransformProperty + TransformPropertyFactory.getTransformProperty = function (t, e, r) { + var i = s(t, e, r) + return ( + i.dynamicProperties.length + ? (i.getValueAtTime = function (t) { + console.warn('Transform at time not supported') + }.bind(i)) + : (i.getValueAtTime = function (t) {}.bind(i)), + (i.setGroupProperty = expressionHelpers.setGroupProperty), + i + ) + } + var p = PropertyFactory.getProp + PropertyFactory.getProp = function (t, e, r, i, s) { + var a = p(t, e, r, i, s) + ;(a.kf ? (a.getValueAtTime = expressionHelpers.getValueAtTime.bind(a)) : (a.getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(a)), + (a.setGroupProperty = expressionHelpers.setGroupProperty), + (a.loopOut = o), + (a.loopIn = h), + (a.smooth = l), + (a.getVelocityAtTime = expressionHelpers.getVelocityAtTime.bind(a)), + (a.getSpeedAtTime = expressionHelpers.getSpeedAtTime.bind(a)), + (a.numKeys = 1 === e.a ? e.k.length : 0), + (a.propertyIndex = e.ix)) + var n = 0 + return ( + 0 !== r && (n = createTypedArray('float32', 1 === e.a ? e.k[0].s.length : e.k.length)), + (a._cachingAtTime = { lastFrame: initialDefaultFrame, lastIndex: 0, value: n }), + expressionHelpers.searchExpressions(t, e, a), + a.k && s.addDynamicProperty(a), + a + ) + } + var t = ShapePropertyFactory.getConstructorFunction(), + e = ShapePropertyFactory.getKeyframedConstructorFunction() + function r() {} + ;((r.prototype = { + vertices: function (t, e) { + this.k && this.getValue() + var r = this.v + void 0 !== e && (r = this.getValueAtTime(e, 0)) + var i, + s = r._length, + a = r[t], + n = r.v, + o = createSizedArray(s) + for (i = 0; i < s; i += 1) o[i] = 'i' === t || 'o' === t ? [a[i][0] - n[i][0], a[i][1] - n[i][1]] : [a[i][0], a[i][1]] + return o + }, + points: function (t) { + return this.vertices('v', t) + }, + inTangents: function (t) { + return this.vertices('i', t) + }, + outTangents: function (t) { + return this.vertices('o', t) + }, + isClosed: function () { + return this.v.c + }, + pointOnPath: function (t, e) { + var r = this.v + ;(void 0 !== e && (r = this.getValueAtTime(e, 0)), this._segmentsLength || (this._segmentsLength = bez.getSegmentsLength(r))) + for (var i, s = this._segmentsLength, a = s.lengths, n = s.totalLength * t, o = 0, h = a.length, l = 0; o < h; ) { + if (l + a[o].addedLength > n) { + var p = o, + m = r.c && o === h - 1 ? 0 : o + 1, + f = (n - l) / a[o].addedLength + i = bez.getPointInSegment(r.v[p], r.v[m], r.o[p], r.i[m], f, a[o]) + break + } + ;((l += a[o].addedLength), (o += 1)) + } + return (i || (i = r.c ? [r.v[0][0], r.v[0][1]] : [r.v[r._length - 1][0], r.v[r._length - 1][1]]), i) + }, + vectorOnPath: function (t, e, r) { + t = 1 == t ? (this.v.c ? 0 : 0.999) : t + var i = this.pointOnPath(t, e), + s = this.pointOnPath(t + 0.001, e), + a = s[0] - i[0], + n = s[1] - i[1], + o = Math.sqrt(Math.pow(a, 2) + Math.pow(n, 2)) + return 0 === o ? [0, 0] : 'tangent' === r ? [a / o, n / o] : [-n / o, a / o] + }, + tangentOnPath: function (t, e) { + return this.vectorOnPath(t, e, 'tangent') + }, + normalOnPath: function (t, e) { + return this.vectorOnPath(t, e, 'normal') + }, + setGroupProperty: expressionHelpers.setGroupProperty, + getValueAtTime: expressionHelpers.getStaticValueAtTime, + }), + extendPrototype([r], t), + extendPrototype([r], e), + (e.prototype.getValueAtTime = function (t) { + return ( + this._cachingAtTime || (this._cachingAtTime = { shapeValue: shape_pool.clone(this.pv), lastIndex: 0, lastTime: initialDefaultFrame }), + (t *= this.elem.globalData.frameRate), + (t -= this.offsetTime) !== this._cachingAtTime.lastTime && + ((this._cachingAtTime.lastIndex = this._cachingAtTime.lastTime < t ? this._caching.lastIndex : 0), + (this._cachingAtTime.lastTime = t), + this.interpolateShape(t, this._cachingAtTime.shapeValue, this._cachingAtTime)), + this._cachingAtTime.shapeValue + ) + }), + (e.prototype.initiateExpression = ExpressionManager.initiateExpression)) + var n = ShapePropertyFactory.getShapeProp + ShapePropertyFactory.getShapeProp = function (t, e, r, i, s) { + var a = n(t, e, r, i, s) + return ( + (a.propertyIndex = e.ix), + (a.lock = !1), + 3 === r ? expressionHelpers.searchExpressions(t, e.pt, a) : 4 === r && expressionHelpers.searchExpressions(t, e.ks, a), + a.k && t.addDynamicProperty(a), + a + ) + } + })(), + (TextProperty.prototype.getExpressionValue = function (t, e) { + var r = this.calculateExpression(e) + if (t.t === r) return t + var i = {} + return (this.copyData(i, t), (i.t = r.toString()), (i.__complete = !1), i) + }), + (TextProperty.prototype.searchProperty = function () { + var t = this.searchKeyframes(), + e = this.searchExpressions() + return ((this.kf = t || e), this.kf) + }), + (TextProperty.prototype.searchExpressions = function () { + if (this.data.d.x) + return ( + (this.calculateExpression = ExpressionManager.initiateExpression.bind(this)(this.elem, this.data.d, this)), + this.addEffect(this.getExpressionValue.bind(this)), + !0 + ) + })) + var ShapeExpressionInterface = (function () { + function m(t, e, r) { + var i, + s = [], + a = t ? t.length : 0 + for (i = 0; i < a; i += 1) + 'gr' == t[i].ty + ? s.push(n(t[i], e[i], r)) + : 'fl' == t[i].ty + ? s.push(o(t[i], e[i], r)) + : 'st' == t[i].ty + ? s.push(h(t[i], e[i], r)) + : 'tm' == t[i].ty + ? s.push(l(t[i], e[i], r)) + : 'tr' == t[i].ty || + ('el' == t[i].ty + ? s.push(p(t[i], e[i], r)) + : 'sr' == t[i].ty + ? s.push(f(t[i], e[i], r)) + : 'sh' == t[i].ty + ? s.push(y(t[i], e[i], r)) + : 'rc' == t[i].ty + ? s.push(c(t[i], e[i], r)) + : 'rd' == t[i].ty + ? s.push(d(t[i], e[i], r)) + : 'rp' == t[i].ty && s.push(u(t[i], e[i], r))) + return s + } + function n(t, e, r) { + var i = function (t) { + switch (t) { + case 'ADBE Vectors Group': + case 'Contents': + case 2: + return i.content + default: + return i.transform + } + } + i.propertyGroup = function (t) { + return 1 === t ? i : r(t - 1) + } + var s, + a, + n, + o, + h, + l = + ((s = t), + (a = e), + (n = i.propertyGroup), + ((h = function (t) { + for (var e = 0, r = o.length; e < r; ) { + if (o[e]._name === t || o[e].mn === t || o[e].propertyIndex === t || o[e].ix === t || o[e].ind === t) return o[e] + e += 1 + } + if ('number' == typeof t) return o[t - 1] + }).propertyGroup = function (t) { + return 1 === t ? h : n(t - 1) + }), + (o = m(s.it, a.it, h.propertyGroup)), + (h.numProperties = o.length), + (h.propertyIndex = s.cix), + (h._name = s.nm), + h), + p = (function (e, t, r) { + function i(t) { + return 1 == t ? s : r(--t) + } + ;(t.transform.mProps.o.setGroupProperty(i), + t.transform.mProps.p.setGroupProperty(i), + t.transform.mProps.a.setGroupProperty(i), + t.transform.mProps.s.setGroupProperty(i), + t.transform.mProps.r.setGroupProperty(i), + t.transform.mProps.sk && (t.transform.mProps.sk.setGroupProperty(i), t.transform.mProps.sa.setGroupProperty(i))) + function s(t) { + return e.a.ix === t || 'Anchor Point' === t + ? s.anchorPoint + : e.o.ix === t || 'Opacity' === t + ? s.opacity + : e.p.ix === t || 'Position' === t + ? s.position + : e.r.ix === t || 'Rotation' === t || 'ADBE Vector Rotation' === t + ? s.rotation + : e.s.ix === t || 'Scale' === t + ? s.scale + : (e.sk && e.sk.ix === t) || 'Skew' === t + ? s.skew + : (e.sa && e.sa.ix === t) || 'Skew Axis' === t + ? s.skewAxis + : void 0 + } + return ( + t.transform.op.setGroupProperty(i), + Object.defineProperties(s, { + opacity: { get: ExpressionPropertyInterface(t.transform.mProps.o) }, + position: { get: ExpressionPropertyInterface(t.transform.mProps.p) }, + anchorPoint: { get: ExpressionPropertyInterface(t.transform.mProps.a) }, + scale: { get: ExpressionPropertyInterface(t.transform.mProps.s) }, + rotation: { get: ExpressionPropertyInterface(t.transform.mProps.r) }, + skew: { get: ExpressionPropertyInterface(t.transform.mProps.sk) }, + skewAxis: { get: ExpressionPropertyInterface(t.transform.mProps.sa) }, + _name: { value: e.nm }, + }), + (s.ty = 'tr'), + (s.mn = e.mn), + (s.propertyGroup = r), + s + ) + })(t.it[t.it.length - 1], e.it[e.it.length - 1], i.propertyGroup) + return ( + (i.content = l), + (i.transform = p), + Object.defineProperty(i, '_name', { + get: function () { + return t.nm + }, + }), + (i.numProperties = t.np), + (i.propertyIndex = t.ix), + (i.nm = t.nm), + (i.mn = t.mn), + i + ) + } + function o(t, e, r) { + function i(t) { + return 'Color' === t || 'color' === t ? i.color : 'Opacity' === t || 'opacity' === t ? i.opacity : void 0 + } + return ( + Object.defineProperties(i, { + color: { get: ExpressionPropertyInterface(e.c) }, + opacity: { get: ExpressionPropertyInterface(e.o) }, + _name: { value: t.nm }, + mn: { value: t.mn }, + }), + e.c.setGroupProperty(r), + e.o.setGroupProperty(r), + i + ) + } + function h(t, e, r) { + function i(t) { + return 1 === t ? ob : r(t - 1) + } + function s(t) { + return 1 === t ? h : i(t - 1) + } + var a, + n, + o = t.d ? t.d.length : 0, + h = {} + for (a = 0; a < o; a += 1) + ((n = a), + Object.defineProperty(h, t.d[n].nm, { get: ExpressionPropertyInterface(e.d.dataProps[n].p) }), + e.d.dataProps[a].p.setGroupProperty(s)) + function l(t) { + return 'Color' === t || 'color' === t + ? l.color + : 'Opacity' === t || 'opacity' === t + ? l.opacity + : 'Stroke Width' === t || 'stroke width' === t + ? l.strokeWidth + : void 0 + } + return ( + Object.defineProperties(l, { + color: { get: ExpressionPropertyInterface(e.c) }, + opacity: { get: ExpressionPropertyInterface(e.o) }, + strokeWidth: { get: ExpressionPropertyInterface(e.w) }, + dash: { + get: function () { + return h + }, + }, + _name: { value: t.nm }, + mn: { value: t.mn }, + }), + e.c.setGroupProperty(i), + e.o.setGroupProperty(i), + e.w.setGroupProperty(i), + l + ) + } + function l(e, t, r) { + function i(t) { + return 1 == t ? s : r(--t) + } + function s(t) { + return t === e.e.ix || 'End' === t || 'end' === t ? s.end : t === e.s.ix ? s.start : t === e.o.ix ? s.offset : void 0 + } + return ( + (s.propertyIndex = e.ix), + t.s.setGroupProperty(i), + t.e.setGroupProperty(i), + t.o.setGroupProperty(i), + (s.propertyIndex = e.ix), + (s.propertyGroup = r), + Object.defineProperties(s, { + start: { get: ExpressionPropertyInterface(t.s) }, + end: { get: ExpressionPropertyInterface(t.e) }, + offset: { get: ExpressionPropertyInterface(t.o) }, + _name: { value: e.nm }, + }), + (s.mn = e.mn), + s + ) + } + function p(e, t, r) { + function i(t) { + return 1 == t ? a : r(--t) + } + a.propertyIndex = e.ix + var s = 'tm' === t.sh.ty ? t.sh.prop : t.sh + function a(t) { + return e.p.ix === t ? a.position : e.s.ix === t ? a.size : void 0 + } + return ( + s.s.setGroupProperty(i), + s.p.setGroupProperty(i), + Object.defineProperties(a, { + size: { get: ExpressionPropertyInterface(s.s) }, + position: { get: ExpressionPropertyInterface(s.p) }, + _name: { value: e.nm }, + }), + (a.mn = e.mn), + a + ) + } + function f(e, t, r) { + function i(t) { + return 1 == t ? a : r(--t) + } + var s = 'tm' === t.sh.ty ? t.sh.prop : t.sh + function a(t) { + return e.p.ix === t + ? a.position + : e.r.ix === t + ? a.rotation + : e.pt.ix === t + ? a.points + : e.or.ix === t || 'ADBE Vector Star Outer Radius' === t + ? a.outerRadius + : e.os.ix === t + ? a.outerRoundness + : !e.ir || (e.ir.ix !== t && 'ADBE Vector Star Inner Radius' !== t) + ? e.is && e.is.ix === t + ? a.innerRoundness + : void 0 + : a.innerRadius + } + return ( + (a.propertyIndex = e.ix), + s.or.setGroupProperty(i), + s.os.setGroupProperty(i), + s.pt.setGroupProperty(i), + s.p.setGroupProperty(i), + s.r.setGroupProperty(i), + e.ir && (s.ir.setGroupProperty(i), s.is.setGroupProperty(i)), + Object.defineProperties(a, { + position: { get: ExpressionPropertyInterface(s.p) }, + rotation: { get: ExpressionPropertyInterface(s.r) }, + points: { get: ExpressionPropertyInterface(s.pt) }, + outerRadius: { get: ExpressionPropertyInterface(s.or) }, + outerRoundness: { get: ExpressionPropertyInterface(s.os) }, + innerRadius: { get: ExpressionPropertyInterface(s.ir) }, + innerRoundness: { get: ExpressionPropertyInterface(s.is) }, + _name: { value: e.nm }, + }), + (a.mn = e.mn), + a + ) + } + function c(e, t, r) { + function i(t) { + return 1 == t ? a : r(--t) + } + var s = 'tm' === t.sh.ty ? t.sh.prop : t.sh + function a(t) { + return e.p.ix === t + ? a.position + : e.r.ix === t + ? a.roundness + : e.s.ix === t || 'Size' === t || 'ADBE Vector Rect Size' === t + ? a.size + : void 0 + } + return ( + (a.propertyIndex = e.ix), + s.p.setGroupProperty(i), + s.s.setGroupProperty(i), + s.r.setGroupProperty(i), + Object.defineProperties(a, { + position: { get: ExpressionPropertyInterface(s.p) }, + roundness: { get: ExpressionPropertyInterface(s.r) }, + size: { get: ExpressionPropertyInterface(s.s) }, + _name: { value: e.nm }, + }), + (a.mn = e.mn), + a + ) + } + function d(e, t, r) { + var i = t + function s(t) { + if (e.r.ix === t || 'Round Corners 1' === t) return s.radius + } + return ( + (s.propertyIndex = e.ix), + i.rd.setGroupProperty(function (t) { + return 1 == t ? s : r(--t) + }), + Object.defineProperties(s, { radius: { get: ExpressionPropertyInterface(i.rd) }, _name: { value: e.nm } }), + (s.mn = e.mn), + s + ) + } + function u(e, t, r) { + function i(t) { + return 1 == t ? a : r(--t) + } + var s = t + function a(t) { + return e.c.ix === t || 'Copies' === t ? a.copies : e.o.ix === t || 'Offset' === t ? a.offset : void 0 + } + return ( + (a.propertyIndex = e.ix), + s.c.setGroupProperty(i), + s.o.setGroupProperty(i), + Object.defineProperties(a, { + copies: { get: ExpressionPropertyInterface(s.c) }, + offset: { get: ExpressionPropertyInterface(s.o) }, + _name: { value: e.nm }, + }), + (a.mn = e.mn), + a + ) + } + function y(t, e, r) { + var i = e.sh + function s(t) { + if ('Shape' === t || 'shape' === t || 'Path' === t || 'path' === t || 'ADBE Vector Shape' === t || 2 === t) return s.path + } + return ( + i.setGroupProperty(function (t) { + return 1 == t ? s : r(--t) + }), + Object.defineProperties(s, { + path: { + get: function () { + return (i.k && i.getValue(), i) + }, + }, + shape: { + get: function () { + return (i.k && i.getValue(), i) + }, + }, + _name: { value: t.nm }, + ix: { value: t.ix }, + propertyIndex: { value: t.ix }, + mn: { value: t.mn }, + }), + s + ) + } + return function (t, e, r) { + var i + function s(t) { + if ('number' == typeof t) return i[t - 1] + for (var e = 0, r = i.length; e < r; ) { + if (i[e]._name === t) return i[e] + e += 1 + } + } + return ((s.propertyGroup = r), (i = m(t, e, s)), (s.numProperties = i.length), s) + } + })(), + TextExpressionInterface = function (e) { + var r + function t() {} + return ( + Object.defineProperty(t, 'sourceText', { + get: function () { + e.textProperty.getValue() + var t = e.textProperty.currentData.t + return (void 0 !== t && ((e.textProperty.currentData.t = void 0), ((r = new String(t)).value = t || new String(t))), r) + }, + }), + t + ) + }, + LayerExpressionInterface = (function () { + function s(t, e) { + var r = new Matrix() + if ((r.reset(), this._elem.finalTransform.mProp.applyToMatrix(r), this._elem.hierarchy && this._elem.hierarchy.length)) { + var i, + s = this._elem.hierarchy.length + for (i = 0; i < s; i += 1) this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(r) + return r.applyToPointArray(t[0], t[1], t[2] || 0) + } + return r.applyToPointArray(t[0], t[1], t[2] || 0) + } + function a(t, e) { + var r = new Matrix() + if ((r.reset(), this._elem.finalTransform.mProp.applyToMatrix(r), this._elem.hierarchy && this._elem.hierarchy.length)) { + var i, + s = this._elem.hierarchy.length + for (i = 0; i < s; i += 1) this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(r) + return r.inversePoint(t) + } + return r.inversePoint(t) + } + function n(t) { + var e = new Matrix() + if ((e.reset(), this._elem.finalTransform.mProp.applyToMatrix(e), this._elem.hierarchy && this._elem.hierarchy.length)) { + var r, + i = this._elem.hierarchy.length + for (r = 0; r < i; r += 1) this._elem.hierarchy[r].finalTransform.mProp.applyToMatrix(e) + return e.inversePoint(t) + } + return e.inversePoint(t) + } + function o() { + return [1, 1, 1, 1] + } + return function (e) { + var r + function i(t) { + switch (t) { + case 'ADBE Root Vectors Group': + case 'Contents': + case 2: + return i.shapeInterface + case 1: + case 6: + case 'Transform': + case 'transform': + case 'ADBE Transform Group': + return r + case 4: + case 'ADBE Effect Parade': + case 'effects': + case 'Effects': + return i.effect + } + } + ;((i.toWorld = s), + (i.fromWorld = a), + (i.toComp = s), + (i.fromComp = n), + (i.sampleImage = o), + (i.sourceRectAtTime = e.sourceRectAtTime.bind(e))) + var t = getDescriptor((r = TransformExpressionInterface((i._elem = e).finalTransform.mProp)), 'anchorPoint') + return ( + Object.defineProperties(i, { + hasParent: { + get: function () { + return e.hierarchy.length + }, + }, + parent: { + get: function () { + return e.hierarchy[0].layerInterface + }, + }, + rotation: getDescriptor(r, 'rotation'), + scale: getDescriptor(r, 'scale'), + position: getDescriptor(r, 'position'), + opacity: getDescriptor(r, 'opacity'), + anchorPoint: t, + anchor_point: t, + transform: { + get: function () { + return r + }, + }, + active: { + get: function () { + return e.isInRange + }, + }, + }), + (i.startTime = e.data.st), + (i.index = e.data.ind), + (i.source = e.data.refId), + (i.height = 0 === e.data.ty ? e.data.h : 100), + (i.width = 0 === e.data.ty ? e.data.w : 100), + (i.inPoint = e.data.ip / e.comp.globalData.frameRate), + (i.outPoint = e.data.op / e.comp.globalData.frameRate), + (i._name = e.data.nm), + (i.registerMaskInterface = function (t) { + i.mask = new MaskManagerInterface(t, e) + }), + (i.registerEffectsInterface = function (t) { + i.effect = t + }), + i + ) + } + })(), + CompExpressionInterface = function (i) { + function t(t) { + for (var e = 0, r = i.layers.length; e < r; ) { + if (i.layers[e].nm === t || i.layers[e].ind === t) return i.elements[e].layerInterface + e += 1 + } + return null + } + return ( + Object.defineProperty(t, '_name', { value: i.data.nm }), + ((t.layer = t).pixelAspect = 1), + (t.height = i.data.h || i.globalData.compSize.h), + (t.width = i.data.w || i.globalData.compSize.w), + (t.pixelAspect = 1), + (t.frameDuration = 1 / i.globalData.frameRate), + (t.displayStartTime = 0), + (t.numLayers = i.layers.length), + t + ) + }, + TransformExpressionInterface = function (t) { + function e(t) { + switch (t) { + case 'scale': + case 'Scale': + case 'ADBE Scale': + case 6: + return e.scale + case 'rotation': + case 'Rotation': + case 'ADBE Rotation': + case 'ADBE Rotate Z': + case 10: + return e.rotation + case 'ADBE Rotate X': + return e.xRotation + case 'ADBE Rotate Y': + return e.yRotation + case 'position': + case 'Position': + case 'ADBE Position': + case 2: + return e.position + case 'ADBE Position_0': + return e.xPosition + case 'ADBE Position_1': + return e.yPosition + case 'ADBE Position_2': + return e.zPosition + case 'anchorPoint': + case 'AnchorPoint': + case 'Anchor Point': + case 'ADBE AnchorPoint': + case 1: + return e.anchorPoint + case 'opacity': + case 'Opacity': + case 11: + return e.opacity + } + } + if ( + (Object.defineProperty(e, 'rotation', { get: ExpressionPropertyInterface(t.r || t.rz) }), + Object.defineProperty(e, 'zRotation', { get: ExpressionPropertyInterface(t.rz || t.r) }), + Object.defineProperty(e, 'xRotation', { get: ExpressionPropertyInterface(t.rx) }), + Object.defineProperty(e, 'yRotation', { get: ExpressionPropertyInterface(t.ry) }), + Object.defineProperty(e, 'scale', { get: ExpressionPropertyInterface(t.s) }), + t.p) + ) + var r = ExpressionPropertyInterface(t.p) + return ( + Object.defineProperty(e, 'position', { + get: function () { + return t.p ? r() : [t.px.v, t.py.v, t.pz ? t.pz.v : 0] + }, + }), + Object.defineProperty(e, 'xPosition', { get: ExpressionPropertyInterface(t.px) }), + Object.defineProperty(e, 'yPosition', { get: ExpressionPropertyInterface(t.py) }), + Object.defineProperty(e, 'zPosition', { get: ExpressionPropertyInterface(t.pz) }), + Object.defineProperty(e, 'anchorPoint', { get: ExpressionPropertyInterface(t.a) }), + Object.defineProperty(e, 'opacity', { get: ExpressionPropertyInterface(t.o) }), + Object.defineProperty(e, 'skew', { get: ExpressionPropertyInterface(t.sk) }), + Object.defineProperty(e, 'skewAxis', { get: ExpressionPropertyInterface(t.sa) }), + Object.defineProperty(e, 'orientation', { get: ExpressionPropertyInterface(t.or) }), + e + ) + }, + ProjectInterface = (function () { + function e(t) { + this.compositions.push(t) + } + return function () { + function t(t) { + for (var e = 0, r = this.compositions.length; e < r; ) { + if (this.compositions[e].data && this.compositions[e].data.nm === t) + return ( + this.compositions[e].prepareFrame && this.compositions[e].data.xt && this.compositions[e].prepareFrame(this.currentFrame), + this.compositions[e].compInterface + ) + e += 1 + } + } + return ((t.compositions = []), (t.currentFrame = 0), (t.registerComposition = e), t) + } + })(), + EffectsExpressionInterface = (function () { + function l(s, t, e, r) { + var i, + a = [], + n = s.ef.length + for (i = 0; i < n; i += 1) + 5 === s.ef[i].ty + ? a.push(l(s.ef[i], t.effectElements[i], t.effectElements[i].propertyGroup, r)) + : a.push(p(t.effectElements[i], s.ef[i].ty, r, o)) + function o(t) { + return 1 === t ? h : e(t - 1) + } + var h = function (t) { + for (var e = s.ef, r = 0, i = e.length; r < i; ) { + if (t === e[r].nm || t === e[r].mn || t === e[r].ix) return 5 === e[r].ty ? a[r] : a[r]() + r += 1 + } + return a[0]() + } + return ( + (h.propertyGroup = o), + 'ADBE Color Control' === s.mn && + Object.defineProperty(h, 'color', { + get: function () { + return a[0]() + }, + }), + Object.defineProperty(h, 'numProperties', { + get: function () { + return s.np + }, + }), + (h.active = h.enabled = 0 !== s.en), + h + ) + } + function p(t, e, r, i) { + var s = ExpressionPropertyInterface(t.p) + return ( + t.p.setGroupProperty && t.p.setGroupProperty(i), + function () { + return 10 === e ? r.comp.compInterface(t.p.v) : s() + } + ) + } + return { + createEffectsInterface: function (s, t) { + if (s.effectsManager) { + var e, + a = [], + r = s.data.ef, + i = s.effectsManager.effectElements.length + for (e = 0; e < i; e += 1) a.push(l(r[e], s.effectsManager.effectElements[e], t, s)) + return function (t) { + for (var e = s.data.ef || [], r = 0, i = e.length; r < i; ) { + if (t === e[r].nm || t === e[r].mn || t === e[r].ix) return a[r] + r += 1 + } + } + } + }, + } + })(), + MaskManagerInterface = (function () { + function a(t, e) { + ;((this._mask = t), (this._data = e)) + } + ;(Object.defineProperty(a.prototype, 'maskPath', { + get: function () { + return (this._mask.prop.k && this._mask.prop.getValue(), this._mask.prop) + }, + }), + Object.defineProperty(a.prototype, 'maskOpacity', { + get: function () { + return (this._mask.op.k && this._mask.op.getValue(), 100 * this._mask.op.v) + }, + })) + return function (e, t) { + var r, + i = createSizedArray(e.viewData.length), + s = e.viewData.length + for (r = 0; r < s; r += 1) i[r] = new a(e.viewData[r], e.masksProperties[r]) + return function (t) { + for (r = 0; r < s; ) { + if (e.masksProperties[r].nm === t) return i[r] + r += 1 + } + } + } + })(), + ExpressionPropertyInterface = (function () { + var s = { pv: 0, v: 0, mult: 1 }, + n = { pv: [0, 0, 0], v: [0, 0, 0], mult: 1 } + function o(i, s, a) { + ;(Object.defineProperty(i, 'velocity', { + get: function () { + return s.getVelocityAtTime(s.comp.currentFrame) + }, + }), + (i.numKeys = s.keyframes ? s.keyframes.length : 0), + (i.key = function (t) { + if (i.numKeys) { + var e = '' + e = 's' in s.keyframes[t - 1] ? s.keyframes[t - 1].s : 'e' in s.keyframes[t - 2] ? s.keyframes[t - 2].e : s.keyframes[t - 2].s + var r = 'unidimensional' === a ? new Number(e) : Object.assign({}, e) + return ((r.time = s.keyframes[t - 1].t / s.elem.comp.globalData.frameRate), r) + } + return 0 + }), + (i.valueAtTime = s.getValueAtTime), + (i.speedAtTime = s.getSpeedAtTime), + (i.velocityAtTime = s.getVelocityAtTime), + (i.propertyGroup = s.propertyGroup)) + } + function e() { + return s + } + return function (t) { + return t + ? 'unidimensional' === t.propType + ? (function (t) { + ;(t && 'pv' in t) || (t = s) + var e = 1 / t.mult, + r = t.pv * e, + i = new Number(r) + return ( + (i.value = r), + o(i, t, 'unidimensional'), + function () { + return (t.k && t.getValue(), (r = t.v * e), i.value !== r && (((i = new Number(r)).value = r), o(i, t, 'unidimensional')), i) + } + ) + })(t) + : (function (e) { + ;(e && 'pv' in e) || (e = n) + var r = 1 / e.mult, + i = e.pv.length, + s = createTypedArray('float32', i), + a = createTypedArray('float32', i) + return ( + (s.value = a), + o(s, e, 'multidimensional'), + function () { + e.k && e.getValue() + for (var t = 0; t < i; t += 1) s[t] = a[t] = e.v[t] * r + return s + } + ) + })(t) + : e + } + })(), + h5, + i5 + function SliderEffect(t, e, r) { + this.p = PropertyFactory.getProp(e, t.v, 0, 0, r) + } + function AngleEffect(t, e, r) { + this.p = PropertyFactory.getProp(e, t.v, 0, 0, r) + } + function ColorEffect(t, e, r) { + this.p = PropertyFactory.getProp(e, t.v, 1, 0, r) + } + function PointEffect(t, e, r) { + this.p = PropertyFactory.getProp(e, t.v, 1, 0, r) + } + function LayerIndexEffect(t, e, r) { + this.p = PropertyFactory.getProp(e, t.v, 0, 0, r) + } + function MaskIndexEffect(t, e, r) { + this.p = PropertyFactory.getProp(e, t.v, 0, 0, r) + } + function CheckboxEffect(t, e, r) { + this.p = PropertyFactory.getProp(e, t.v, 0, 0, r) + } + function NoValueEffect() { + this.p = {} + } + function EffectsManager() {} + function EffectsManager(t, e) { + var r = t.ef || [] + this.effectElements = [] + var i, + s, + a = r.length + for (i = 0; i < a; i++) ((s = new GroupEffect(r[i], e)), this.effectElements.push(s)) + } + function GroupEffect(t, e) { + this.init(t, e) + } + ;((h5 = (function () { + function r(t, e) { + return ((this.textIndex = t + 1), (this.textTotal = e), (this.v = this.getValue() * this.mult), this.v) + } + return function (t, e) { + ;((this.pv = 1), + (this.comp = t.comp), + (this.elem = t), + (this.mult = 0.01), + (this.propType = 'textSelector'), + (this.textTotal = e.totalChars), + (this.selectorValue = 100), + (this.lastValue = [1, 1, 1]), + (this.k = !0), + (this.x = !0), + (this.getValue = ExpressionManager.initiateExpression.bind(this)(t, e, this)), + (this.getMult = r), + (this.getVelocityAtTime = expressionHelpers.getVelocityAtTime), + this.kf + ? (this.getValueAtTime = expressionHelpers.getValueAtTime.bind(this)) + : (this.getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(this)), + (this.setGroupProperty = expressionHelpers.setGroupProperty)) + } + })()), + (i5 = TextSelectorProp.getTextSelectorProp), + (TextSelectorProp.getTextSelectorProp = function (t, e, r) { + return 1 === e.t ? new h5(t, e, r) : i5(t, e, r) + }), + extendPrototype([DynamicPropertyContainer], GroupEffect), + (GroupEffect.prototype.getValue = GroupEffect.prototype.iterateDynamicProperties), + (GroupEffect.prototype.init = function (t, e) { + ;((this.data = t), (this.effectElements = []), this.initDynamicPropertyContainer(e)) + var r, + i, + s = this.data.ef.length, + a = this.data.ef + for (r = 0; r < s; r += 1) { + switch (((i = null), a[r].ty)) { + case 0: + i = new SliderEffect(a[r], e, this) + break + case 1: + i = new AngleEffect(a[r], e, this) + break + case 2: + i = new ColorEffect(a[r], e, this) + break + case 3: + i = new PointEffect(a[r], e, this) + break + case 4: + case 7: + i = new CheckboxEffect(a[r], e, this) + break + case 10: + i = new LayerIndexEffect(a[r], e, this) + break + case 11: + i = new MaskIndexEffect(a[r], e, this) + break + case 5: + i = new EffectsManager(a[r], e, this) + break + default: + i = new NoValueEffect(a[r], e, this) + } + i && this.effectElements.push(i) + } + })) + var lottiejs = {}, + _isFrozen = !1 + function setLocationHref(t) { + locationHref = t + } + function searchAnimations() { + !0 === standalone ? animationManager.searchAnimations(animationData, standalone, renderer) : animationManager.searchAnimations() + } + function setSubframeRendering(t) { + subframeEnabled = t + } + function loadAnimation(t) { + return (!0 === standalone && (t.animationData = JSON.parse(animationData)), animationManager.loadAnimation(t)) + } + function setQuality(t) { + if ('string' == typeof t) + switch (t) { + case 'high': + defaultCurveSegments = 200 + break + case 'medium': + defaultCurveSegments = 50 + break + case 'low': + defaultCurveSegments = 10 + } + else !isNaN(t) && 1 < t && (defaultCurveSegments = t) + roundValues(!(50 <= defaultCurveSegments)) + } + function inBrowser() { + return 'undefined' != typeof navigator + } + function installPlugin(t, e) { + 'expressions' === t && (expressionsPlugin = e) + } + function getFactory(t) { + switch (t) { + case 'propertyFactory': + return PropertyFactory + case 'shapePropertyFactory': + return ShapePropertyFactory + case 'matrix': + return Matrix + } + } + function checkReady() { + 'complete' === document.readyState && (clearInterval(readyStateCheckInterval), searchAnimations()) + } + function getQueryVariable(t) { + for (var e = queryString.split('&'), r = 0; r < e.length; r++) { + var i = e[r].split('=') + if (decodeURIComponent(i[0]) == t) return decodeURIComponent(i[1]) + } + } + ;((lottiejs.play = animationManager.play), + (lottiejs.pause = animationManager.pause), + (lottiejs.setLocationHref = setLocationHref), + (lottiejs.togglePause = animationManager.togglePause), + (lottiejs.setSpeed = animationManager.setSpeed), + (lottiejs.setDirection = animationManager.setDirection), + (lottiejs.stop = animationManager.stop), + (lottiejs.searchAnimations = searchAnimations), + (lottiejs.registerAnimation = animationManager.registerAnimation), + (lottiejs.loadAnimation = loadAnimation), + (lottiejs.setSubframeRendering = setSubframeRendering), + (lottiejs.resize = animationManager.resize), + (lottiejs.goToAndStop = animationManager.goToAndStop), + (lottiejs.destroy = animationManager.destroy), + (lottiejs.setQuality = setQuality), + (lottiejs.inBrowser = inBrowser), + (lottiejs.installPlugin = installPlugin), + (lottiejs.freeze = animationManager.freeze), + (lottiejs.unfreeze = animationManager.unfreeze), + (lottiejs.getRegisteredAnimations = animationManager.getRegisteredAnimations), + (lottiejs.__getFactory = getFactory), + (lottiejs.version = '5.5.8')) + var standalone = '__[STANDALONE]__', + animationData = '__[ANIMATIONDATA]__', + renderer = '' + if (standalone) { + var scripts = document.getElementsByTagName('script'), + index = scripts.length - 1, + myScript = scripts[index] || { src: '' }, + queryString = myScript.src.replace(/^[^\?]+\??/, '') + renderer = getQueryVariable('renderer') + } + var readyStateCheckInterval = setInterval(checkReady, 100) + return lottiejs + }), + 'function' == typeof define && define.amd + ? define(function () { + return b(a) + }) + : 'object' == typeof module && module.exports + ? (module.exports = b(a)) + : ((a.lottie = b(a)), (a.bodymovin = a.lottie))) diff --git a/static/js/bootstrap-modal.js b/static/js/bootstrap-modal.js index cdb8fea858..c4af01b19e 100644 --- a/static/js/bootstrap-modal.js +++ b/static/js/bootstrap-modal.js @@ -1,9 +1,11 @@ /** -* bootstrap.js v3.0.0 by @fat and @mdo -* Copyright 2013 Twitter Inc. -* http://www.apache.org/licenses/LICENSE-2.0 -*/ -if (!jQuery) { throw new Error("Bootstrap requires jQuery") } + * bootstrap.js v3.0.0 by @fat and @mdo + * Copyright 2013 Twitter Inc. + * http://www.apache.org/licenses/LICENSE-2.0 + */ +if (!jQuery) { + throw new Error('Bootstrap requires jQuery') +} /* ======================================================================== * Bootstrap: transition.js v3.0.0 @@ -24,8 +26,8 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") } * limitations under the License. * ======================================================================== */ - -+function ($) { "use strict"; +;+(function ($) { + 'use strict' // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/) // ============================================================ @@ -34,10 +36,10 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") } var el = document.createElement('bootstrap') var transEndEventNames = { - 'WebkitTransition' : 'webkitTransitionEnd' - , 'MozTransition' : 'transitionend' - , 'OTransition' : 'oTransitionEnd otransitionend' - , 'transition' : 'transitionend' + WebkitTransition: 'webkitTransitionEnd', + MozTransition: 'transitionend', + OTransition: 'oTransitionEnd otransitionend', + transition: 'transitionend', } for (var name in transEndEventNames) { @@ -49,9 +51,14 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") } // http://blog.alexmaccaw.com/css-transitions $.fn.emulateTransitionEnd = function (duration) { - var called = false, $el = this - $(this).one($.support.transition.end, function () { called = true }) - var callback = function () { if (!called) $($el).trigger($.support.transition.end) } + var called = false, + $el = this + $(this).one($.support.transition.end, function () { + called = true + }) + var callback = function () { + if (!called) $($el).trigger($.support.transition.end) + } setTimeout(callback, duration) return this } @@ -59,29 +66,26 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") } $(function () { $.support.transition = transitionEnd() }) +})(window.jQuery) -}(window.jQuery); - - - -+function ($) { "use strict"; +;+(function ($) { + 'use strict' // MODAL CLASS DEFINITION // ====================== var Modal = function (element, options) { - this.options = options - this.$element = $(element) - this.$backdrop = - this.isShown = null + this.options = options + this.$element = $(element) + this.$backdrop = this.isShown = null if (this.options.remote) this.$element.load(this.options.remote) } Modal.DEFAULTS = { - backdrop: true - , keyboard: true - , show: true + backdrop: true, + keyboard: true, + show: true, } Modal.prototype.toggle = function (_relatedTarget) { @@ -90,7 +94,7 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") } Modal.prototype.show = function (_relatedTarget) { var that = this - var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget }) + var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget }) this.$element.trigger(e) @@ -115,21 +119,20 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") } that.$element[0].offsetWidth // force reflow } - that.$element - .addClass('in') - .attr('aria-hidden', false) + that.$element.addClass('in').attr('aria-hidden', false) that.enforceFocus() var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget }) - transition ? - that.$element.find('.modal-dialog') // wait for modal to slide in - .one($.support.transition.end, function () { - that.$element.focus().trigger(e) - }) - .emulateTransitionEnd(300) : - that.$element.focus().trigger(e) + transition + ? that.$element + .find('.modal-dialog') // wait for modal to slide in + .one($.support.transition.end, function () { + that.$element.focus().trigger(e) + }) + .emulateTransitionEnd(300) + : that.$element.focus().trigger(e) }) } @@ -148,33 +151,34 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") } $(document).off('focusin.bs.modal') - this.$element - .removeClass('in') - .attr('aria-hidden', true) - .off('click.dismiss.modal') + this.$element.removeClass('in').attr('aria-hidden', true).off('click.dismiss.modal') - $.support.transition && this.$element.hasClass('fade') ? - this.$element - .one($.support.transition.end, $.proxy(this.hideModal, this)) - .emulateTransitionEnd(300) : - this.hideModal() + $.support.transition && this.$element.hasClass('fade') + ? this.$element.one($.support.transition.end, $.proxy(this.hideModal, this)).emulateTransitionEnd(300) + : this.hideModal() } Modal.prototype.enforceFocus = function () { $(document) .off('focusin.bs.modal') // guard against infinite focus loop - .on('focusin.bs.modal', $.proxy(function (e) { - if (this.$element[0] !== e.target && !this.$element.has(e.target).length) { - this.$element.focus() - } - }, this)) + .on( + 'focusin.bs.modal', + $.proxy(function (e) { + if (this.$element[0] !== e.target && !this.$element.has(e.target).length) { + this.$element.focus() + } + }, this), + ) } Modal.prototype.escape = function () { if (this.isShown && this.options.keyboard) { - this.$element.on('keyup.dismiss.bs.modal', $.proxy(function (e) { - e.which == 27 && this.hide() - }, this)) + this.$element.on( + 'keyup.dismiss.bs.modal', + $.proxy(function (e) { + e.which == 27 && this.hide() + }, this), + ) } else if (!this.isShown) { this.$element.off('keyup.dismiss.bs.modal') } @@ -195,21 +199,21 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") } } Modal.prototype.backdrop = function (callback) { - var that = this + var that = this var animate = this.$element.hasClass('fade') ? 'fade' : '' if (this.isShown && this.options.backdrop) { var doAnimate = $.support.transition && animate - this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />') - .appendTo(document.body) + this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />').appendTo(document.body) - this.$element.on('click.dismiss.modal', $.proxy(function (e) { - if (e.target !== e.currentTarget) return - this.options.backdrop == 'static' - ? this.$element[0].focus.call(this.$element[0]) - : this.hide.call(this) - }, this)) + this.$element.on( + 'click.dismiss.modal', + $.proxy(function (e) { + if (e.target !== e.currentTarget) return + this.options.backdrop == 'static' ? this.$element[0].focus.call(this.$element[0]) : this.hide.call(this) + }, this), + ) if (doAnimate) this.$backdrop[0].offsetWidth // force reflow @@ -217,27 +221,18 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") } if (!callback) return - doAnimate ? - this.$backdrop - .one($.support.transition.end, callback) - .emulateTransitionEnd(150) : - callback() - + doAnimate ? this.$backdrop.one($.support.transition.end, callback).emulateTransitionEnd(150) : callback() } else if (!this.isShown && this.$backdrop) { this.$backdrop.removeClass('in') - $.support.transition && this.$element.hasClass('fade')? - this.$backdrop - .one($.support.transition.end, callback) - .emulateTransitionEnd(150) : - callback() - + $.support.transition && this.$element.hasClass('fade') + ? this.$backdrop.one($.support.transition.end, callback).emulateTransitionEnd(150) + : callback() } else if (callback) { callback() } } - // MODAL PLUGIN DEFINITION // ======================= @@ -245,8 +240,8 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") } $.fn.modal = function (option, _relatedTarget) { return this.each(function () { - var $this = $(this) - var data = $this.data('bs.modal') + var $this = $(this) + var data = $this.data('bs.modal') var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option) if (!data) $this.data('bs.modal', (data = new Modal(this, options))) @@ -257,7 +252,6 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") } $.fn.modal.Constructor = Modal - // MODAL NO CONFLICT // ================= @@ -266,28 +260,23 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") } return this } - // MODAL DATA-API // ============== $(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (e) { - var $this = $(this) - var href = $this.attr('href') + var $this = $(this) + var href = $this.attr('href') var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) //strip for ie7 - var option = $target.data('modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data()) + var option = $target.data('modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data()) e.preventDefault() - $target - .modal(option, this) - .one('hide', function () { - $this.is(':visible') && $this.focus() - }) + $target.modal(option, this).one('hide', function () { + $this.is(':visible') && $this.focus() + }) }) // $(document) // .on('show.bs.modal', '.modal', function () { $(document.body).addClass('modal-open') }) // .on('hidden.bs.modal', '.modal', function () { $(document.body).removeClass('modal-open') }) - -}(window.jQuery); - +})(window.jQuery) diff --git a/static/js/code-samples.js b/static/js/code-samples.js index b95b4948bc..84cc3f2d89 100644 --- a/static/js/code-samples.js +++ b/static/js/code-samples.js @@ -1,18 +1,18 @@ $(document).ready(() => { - $(".single_lang input").change((event) => { + $('.single_lang input').change((event) => { const lang = $(event.target).val() - const lang_checked = $(event.target).prop("checked") + const lang_checked = $(event.target).prop('checked') if (lang_checked) { // Enabling a language //$("#input_all").prop("checked", false) - $("#code_samples_list .card").hide() + $('#code_samples_list .card').hide() $(`#code_samples_list .card.lang_${lang}`).show() } // Disabling a language? Let the other element's handler do it }) - $("#input_all").change((event) => { + $('#input_all').change((event) => { const lang = $(event.target).val() - $("#code_samples_list .card").show() + $('#code_samples_list .card').show() }) }) diff --git a/static/js/community/CareersDark.json b/static/js/community/CareersDark.json index 100465b0e0..f3335ef908 100644 --- a/static/js/community/CareersDark.json +++ b/static/js/community/CareersDark.json @@ -131,9 +131,8 @@ "k": { "a": 0, "k": [ - 0, 0.996, 1, 0.004, 0.165, 0.998, 0.588, 0.304, 0.33, 1, - 0.176, 0.604, 0.495, 0.943, 0.237, 0.802, 0.66, 0.886, - 0.298, 1, 0.83, 0.745, 0.31, 1, 1, 0.604, 0.322, 1 + 0, 0.996, 1, 0.004, 0.165, 0.998, 0.588, 0.304, 0.33, 1, 0.176, 0.604, 0.495, 0.943, 0.237, 0.802, 0.66, 0.886, 0.298, 1, + 0.83, 0.745, 0.31, 1, 1, 0.604, 0.322, 1 ], "ix": 9 } @@ -776,11 +775,7 @@ "p": 5, "k": { "a": 0, - "k": [ - 0, 1, 0.102, 0.545, 0.25, 1, 0.253, 0.324, 0.5, 1, - 0.404, 0.102, 0.75, 0.99, 0.702, 0.102, 1, 0.98, 1, - 0.102 - ], + "k": [0, 1, 0.102, 0.545, 0.25, 1, 0.253, 0.324, 0.5, 1, 0.404, 0.102, 0.75, 0.99, 0.702, 0.102, 1, 0.98, 1, 0.102], "ix": 9 } }, @@ -1095,10 +1090,8 @@ "k": { "a": 0, "k": [ - 0, 0.706, 0.502, 1, 0.165, 0.539, 0.251, 0.949, 0.33, - 0.373, 0, 0.898, 0.495, 0.237, 0.322, 0.949, 0.66, - 0.102, 0.643, 1, 0.83, 0.1, 0.822, 0.757, 1, 0.098, 1, - 0.514 + 0, 0.706, 0.502, 1, 0.165, 0.539, 0.251, 0.949, 0.33, 0.373, 0, 0.898, 0.495, 0.237, 0.322, 0.949, 0.66, 0.102, 0.643, 1, + 0.83, 0.1, 0.822, 0.757, 1, 0.098, 1, 0.514 ], "ix": 9 } @@ -1226,9 +1219,8 @@ "k": { "a": 0, "k": [ - 0, 0.996, 1, 0.004, 0.165, 0.998, 0.588, 0.304, 0.33, 1, - 0.176, 0.604, 0.495, 0.943, 0.237, 0.802, 0.66, 0.886, - 0.298, 1, 0.83, 0.745, 0.31, 1, 1, 0.604, 0.322, 1 + 0, 0.996, 1, 0.004, 0.165, 0.998, 0.588, 0.304, 0.33, 1, 0.176, 0.604, 0.495, 0.943, 0.237, 0.802, 0.66, 0.886, 0.298, 1, + 0.83, 0.745, 0.31, 1, 1, 0.604, 0.322, 1 ], "ix": 9 } @@ -1732,10 +1724,8 @@ "k": { "a": 0, "k": [ - 0, 0.98, 1, 0.098, 0.165, 0.578, 0.906, 0.284, 0.33, - 0.176, 0.812, 0.471, 0.495, 0.137, 0.725, 0.735, 0.66, - 0.098, 0.639, 1, 0.83, 0.351, 0.48, 1, 1, 0.604, 0.322, - 1 + 0, 0.98, 1, 0.098, 0.165, 0.578, 0.906, 0.284, 0.33, 0.176, 0.812, 0.471, 0.495, 0.137, 0.725, 0.735, 0.66, 0.098, 0.639, 1, + 0.83, 0.351, 0.48, 1, 1, 0.604, 0.322, 1 ], "ix": 9 } @@ -1862,10 +1852,7 @@ "p": 3, "k": { "a": 0, - "k": [ - 0, 0.851, 0.102, 1, 0.5, 0.476, 0.373, 1, 1, 0.102, - 0.643, 1 - ], + "k": [0, 0.851, 0.102, 1, 0.5, 0.476, 0.373, 1, 1, 0.102, 0.643, 1], "ix": 9 } }, @@ -2180,10 +2167,8 @@ "k": { "a": 0, "k": [ - 0, 0.706, 0.502, 1, 0.165, 0.539, 0.251, 0.949, 0.33, - 0.373, 0, 0.898, 0.495, 0.237, 0.322, 0.949, 0.66, - 0.102, 0.643, 1, 0.83, 0.1, 0.822, 0.757, 1, 0.098, 1, - 0.514 + 0, 0.706, 0.502, 1, 0.165, 0.539, 0.251, 0.949, 0.33, 0.373, 0, 0.898, 0.495, 0.237, 0.322, 0.949, 0.66, 0.102, 0.643, 1, + 0.83, 0.1, 0.822, 0.757, 1, 0.098, 1, 0.514 ], "ix": 9 } @@ -2687,9 +2672,8 @@ "k": { "a": 0, "k": [ - 0, 0.996, 1, 0.004, 0.165, 0.998, 0.588, 0.304, 0.33, 1, - 0.176, 0.604, 0.495, 0.943, 0.237, 0.802, 0.66, 0.886, - 0.298, 1, 0.83, 0.745, 0.31, 1, 1, 0.604, 0.322, 1 + 0, 0.996, 1, 0.004, 0.165, 0.998, 0.588, 0.304, 0.33, 1, 0.176, 0.604, 0.495, 0.943, 0.237, 0.802, 0.66, 0.886, 0.298, 1, + 0.83, 0.745, 0.31, 1, 1, 0.604, 0.322, 1 ], "ix": 9 } @@ -2816,10 +2800,7 @@ "p": 3, "k": { "a": 0, - "k": [ - 0, 0.851, 0.102, 1, 0.5, 0.476, 0.373, 1, 1, 0.102, - 0.643, 1 - ], + "k": [0, 0.851, 0.102, 1, 0.5, 0.476, 0.373, 1, 1, 0.102, 0.643, 1], "ix": 9 } }, @@ -3134,10 +3115,8 @@ "k": { "a": 0, "k": [ - 0, 0.706, 0.502, 1, 0.165, 0.539, 0.251, 0.949, 0.33, - 0.373, 0, 0.898, 0.495, 0.237, 0.322, 0.949, 0.66, - 0.102, 0.643, 1, 0.83, 0.1, 0.822, 0.757, 1, 0.098, 1, - 0.514 + 0, 0.706, 0.502, 1, 0.165, 0.539, 0.251, 0.949, 0.33, 0.373, 0, 0.898, 0.495, 0.237, 0.322, 0.949, 0.66, 0.102, 0.643, 1, + 0.83, 0.1, 0.822, 0.757, 1, 0.098, 1, 0.514 ], "ix": 9 } @@ -3648,10 +3627,8 @@ "k": { "a": 0, "k": [ - 0, 0.706, 0.502, 1, 0.165, 0.539, 0.251, 0.949, 0.33, - 0.373, 0, 0.898, 0.495, 0.237, 0.322, 0.949, 0.66, - 0.102, 0.643, 1, 0.83, 0.1, 0.822, 0.757, 1, 0.098, 1, - 0.514 + 0, 0.706, 0.502, 1, 0.165, 0.539, 0.251, 0.949, 0.33, 0.373, 0, 0.898, 0.495, 0.237, 0.322, 0.949, 0.66, 0.102, 0.643, 1, + 0.83, 0.1, 0.822, 0.757, 1, 0.098, 1, 0.514 ], "ix": 9 } @@ -3966,10 +3943,7 @@ "p": 3, "k": { "a": 0, - "k": [ - 0, 0.851, 0.102, 1, 0.5, 0.476, 0.373, 1, 1, 0.102, - 0.643, 1 - ], + "k": [0, 0.851, 0.102, 1, 0.5, 0.476, 0.373, 1, 1, 0.102, 0.643, 1], "ix": 9 } }, @@ -4096,9 +4070,8 @@ "k": { "a": 0, "k": [ - 0, 0.996, 1, 0.004, 0.165, 0.998, 0.588, 0.304, 0.33, 1, - 0.176, 0.604, 0.495, 0.943, 0.237, 0.802, 0.66, 0.886, - 0.298, 1, 0.83, 0.745, 0.31, 1, 1, 0.604, 0.322, 1 + 0, 0.996, 1, 0.004, 0.165, 0.998, 0.588, 0.304, 0.33, 1, 0.176, 0.604, 0.495, 0.943, 0.237, 0.802, 0.66, 0.886, 0.298, 1, + 0.83, 0.745, 0.31, 1, 1, 0.604, 0.322, 1 ], "ix": 9 } @@ -4602,10 +4575,8 @@ "k": { "a": 0, "k": [ - 0, 0.706, 0.502, 1, 0.165, 0.539, 0.251, 0.949, 0.33, - 0.373, 0, 0.898, 0.495, 0.237, 0.322, 0.949, 0.66, - 0.102, 0.643, 1, 0.83, 0.1, 0.822, 0.757, 1, 0.098, 1, - 0.514 + 0, 0.706, 0.502, 1, 0.165, 0.539, 0.251, 0.949, 0.33, 0.373, 0, 0.898, 0.495, 0.237, 0.322, 0.949, 0.66, 0.102, 0.643, 1, + 0.83, 0.1, 0.822, 0.757, 1, 0.098, 1, 0.514 ], "ix": 9 } @@ -4920,10 +4891,7 @@ "p": 3, "k": { "a": 0, - "k": [ - 0, 0.851, 0.102, 1, 0.5, 0.476, 0.373, 1, 1, 0.102, - 0.643, 1 - ], + "k": [0, 0.851, 0.102, 1, 0.5, 0.476, 0.373, 1, 1, 0.102, 0.643, 1], "ix": 9 } }, @@ -5050,10 +5018,8 @@ "k": { "a": 0, "k": [ - 0, 0.98, 1, 0.098, 0.165, 0.578, 0.906, 0.284, 0.33, - 0.176, 0.812, 0.471, 0.495, 0.137, 0.725, 0.735, 0.66, - 0.098, 0.639, 1, 0.83, 0.351, 0.48, 1, 1, 0.604, 0.322, - 1 + 0, 0.98, 1, 0.098, 0.165, 0.578, 0.906, 0.284, 0.33, 0.176, 0.812, 0.471, 0.495, 0.137, 0.725, 0.735, 0.66, 0.098, 0.639, 1, + 0.83, 0.351, 0.48, 1, 1, 0.604, 0.322, 1 ], "ix": 9 } @@ -5557,9 +5523,8 @@ "k": { "a": 0, "k": [ - 0, 0.996, 1, 0.004, 0.165, 0.998, 0.588, 0.304, 0.33, 1, - 0.176, 0.604, 0.495, 0.943, 0.237, 0.802, 0.66, 0.886, - 0.298, 1, 0.83, 0.745, 0.31, 1, 1, 0.604, 0.322, 1 + 0, 0.996, 1, 0.004, 0.165, 0.998, 0.588, 0.304, 0.33, 1, 0.176, 0.604, 0.495, 0.943, 0.237, 0.802, 0.66, 0.886, 0.298, 1, + 0.83, 0.745, 0.31, 1, 1, 0.604, 0.322, 1 ], "ix": 9 } @@ -5687,10 +5652,8 @@ "k": { "a": 0, "k": [ - 0, 0.706, 0.502, 1, 0.165, 0.539, 0.251, 0.949, 0.33, - 0.373, 0, 0.898, 0.495, 0.237, 0.322, 0.949, 0.66, - 0.102, 0.643, 1, 0.83, 0.1, 0.822, 0.757, 1, 0.098, 1, - 0.514 + 0, 0.706, 0.502, 1, 0.165, 0.539, 0.251, 0.949, 0.33, 0.373, 0, 0.898, 0.495, 0.237, 0.322, 0.949, 0.66, 0.102, 0.643, 1, + 0.83, 0.1, 0.822, 0.757, 1, 0.098, 1, 0.514 ], "ix": 9 } diff --git a/static/js/community/NetworkNodeLight.json b/static/js/community/NetworkNodeLight.json index fbeff4b01c..d985631dd8 100644 --- a/static/js/community/NetworkNodeLight.json +++ b/static/js/community/NetworkNodeLight.json @@ -1253,10 +1253,7 @@ "p": 3, "k": { "a": 0, - "k": [ - 0, 0.635, 0.635, 0.643, 0.5, 0.635, 0.635, 0.643, 1, 0.635, - 0.635, 0.643, 0, 0, 0.25, 0.5, 0.5, 1, 0.75, 0.5, 1, 0 - ], + "k": [0, 0.635, 0.635, 0.643, 0.5, 0.635, 0.635, 0.643, 1, 0.635, 0.635, 0.643, 0, 0, 0.25, 0.5, 0.5, 1, 0.75, 0.5, 1, 0], "ix": 8 } }, @@ -1361,10 +1358,7 @@ "p": 3, "k": { "a": 0, - "k": [ - 0, 0.635, 0.635, 0.643, 0.5, 0.635, 0.635, 0.643, 1, 0.635, - 0.635, 0.643, 0, 0, 0.25, 0.5, 0.5, 1, 0.75, 0.5, 1, 0 - ], + "k": [0, 0.635, 0.635, 0.643, 0.5, 0.635, 0.635, 0.643, 1, 0.635, 0.635, 0.643, 0, 0, 0.25, 0.5, 0.5, 1, 0.75, 0.5, 1, 0], "ix": 8 } }, @@ -1469,10 +1463,7 @@ "p": 3, "k": { "a": 0, - "k": [ - 0, 0.635, 0.635, 0.643, 0.5, 0.635, 0.635, 0.643, 1, 0.635, - 0.635, 0.643, 0, 0, 0.25, 0.5, 0.5, 1, 0.75, 0.5, 1, 0 - ], + "k": [0, 0.635, 0.635, 0.643, 0.5, 0.635, 0.635, 0.643, 1, 0.635, 0.635, 0.643, 0, 0, 0.25, 0.5, 0.5, 1, 0.75, 0.5, 1, 0], "ix": 8 } }, @@ -1577,10 +1568,7 @@ "p": 3, "k": { "a": 0, - "k": [ - 0, 0.635, 0.635, 0.643, 0.5, 0.635, 0.635, 0.643, 1, 0.635, - 0.635, 0.643, 0, 0, 0.25, 0.5, 0.5, 1, 0.75, 0.5, 1, 0 - ], + "k": [0, 0.635, 0.635, 0.643, 0.5, 0.635, 0.635, 0.643, 1, 0.635, 0.635, 0.643, 0, 0, 0.25, 0.5, 0.5, 1, 0.75, 0.5, 1, 0], "ix": 8 } }, diff --git a/static/js/contribute-carousel.js b/static/js/contribute-carousel.js index 5941f340c4..89c455c25c 100644 --- a/static/js/contribute-carousel.js +++ b/static/js/contribute-carousel.js @@ -1,78 +1,76 @@ -let currentIndex = 1; +let currentIndex = 1 -let isFirstLoad = true; // Add a flag to determine if it's the initial load +let isFirstLoad = true // Add a flag to determine if it's the initial load function updateCarousel() { - const centerImage = document.getElementById("center-image"); - const leftImage = document.getElementById("left-image"); - const rightImage = document.getElementById("right-image"); + const centerImage = document.getElementById('center-image') + const leftImage = document.getElementById('left-image') + const rightImage = document.getElementById('right-image') if (!isFirstLoad) { // Only run the exit animation if it's not the first load - centerImage.classList.add("exit"); - leftImage.classList.add("exit"); - rightImage.classList.add("exit"); + centerImage.classList.add('exit') + leftImage.classList.add('exit') + rightImage.classList.add('exit') } setTimeout( () => { if (events[currentIndex - 1]) { - document.getElementById("prev-btn").style.opacity = 1; - leftImage.style.visibility = "visible"; - leftImage.src = `assets/img/events/${events[currentIndex - 1].image}`; + document.getElementById('prev-btn').style.opacity = 1 + leftImage.style.visibility = 'visible' + leftImage.src = `assets/img/events/${events[currentIndex - 1].image}` } else { - document.getElementById("prev-btn").style.opacity = 0.5; - leftImage.style.visibility = "hidden"; + document.getElementById('prev-btn').style.opacity = 0.5 + leftImage.style.visibility = 'hidden' } - centerImage.src = `assets/img/events/${events[currentIndex].image}`; - centerImage.onclick = function() { // Add an onclick event to the main image - window.open(events[currentIndex].link, '_blank'); // Open a new tab with the event link - }; + centerImage.src = `assets/img/events/${events[currentIndex].image}` + centerImage.onclick = function () { + // Add an onclick event to the main image + window.open(events[currentIndex].link, '_blank') // Open a new tab with the event link + } if (events[currentIndex + 1]) { - document.getElementById("next-btn").style.opacity = 1; - rightImage.style.visibility = "visible"; - rightImage.src = `assets/img/events/${events[currentIndex + 1].image}`; + document.getElementById('next-btn').style.opacity = 1 + rightImage.style.visibility = 'visible' + rightImage.src = `assets/img/events/${events[currentIndex + 1].image}` } else { - document.getElementById("next-btn").style.opacity = 0.5; - rightImage.style.visibility = "hidden"; + document.getElementById('next-btn').style.opacity = 0.5 + rightImage.style.visibility = 'hidden' } - document.getElementById("event-name").textContent = - events[currentIndex].name; - document.getElementById("event-location").textContent = - events[currentIndex].location; - document.getElementById("event-date").textContent = - events[currentIndex].date; + document.getElementById('event-name').textContent = events[currentIndex].name + document.getElementById('event-location').textContent = events[currentIndex].location + document.getElementById('event-date').textContent = events[currentIndex].date if (!isFirstLoad) { // Only run the enter animation if it's not the first load - centerImage.classList.remove("exit"); - leftImage.classList.remove("exit"); - rightImage.classList.remove("exit"); + centerImage.classList.remove('exit') + leftImage.classList.remove('exit') + rightImage.classList.remove('exit') } }, - isFirstLoad ? 0 : 700 - ); // If it's the first load, update immediately; otherwise, wait for the transition + isFirstLoad ? 0 : 700, + ) // If it's the first load, update immediately; otherwise, wait for the transition // After the initial setup, set isFirstLoad to false - isFirstLoad = false; + isFirstLoad = false } -document.getElementById("prev-btn").addEventListener("click", function () { +document.getElementById('prev-btn').addEventListener('click', function () { if (currentIndex > 0) { - currentIndex--; - updateCarousel(); + currentIndex-- + updateCarousel() } -}); +}) -document.getElementById("next-btn").addEventListener("click", function () { +document.getElementById('next-btn').addEventListener('click', function () { if (currentIndex < events.length - 1) { - currentIndex++; - updateCarousel(); + currentIndex++ + updateCarousel() } -}); +}) // Initial setup -updateCarousel(); +updateCarousel() diff --git a/static/js/domain-verifier-bundle.js b/static/js/domain-verifier-bundle.js index f9df7aae21..4c49edc008 100644 --- a/static/js/domain-verifier-bundle.js +++ b/static/js/domain-verifier-bundle.js @@ -1,27 +1,18606 @@ -!function(t){var e={};function n(r){if(e[r])return e[r].exports;var i=e[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)n.d(r,i,function(e){return t[e]}.bind(null,i));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=63)}([function(t,e,n){"use strict";var r=n(12),i=n(1);function o(t,e){Object.keys(t||{}).forEach((function(n){e(t[n],n)}))}t.exports=function(t,e){var n=e||t,s="function"==typeof t?t:null;if(null===s)for(var a in n)if(a[0].match(/[A-Z]/)){s=n[a];break}var u=n.inherits;u&&(null===s&&(s=function(){u.apply(this,arguments)}),i(s,u),r.defaults(s,u)),null===s&&(s=function(){});var f,c=s.prototype;function h(t,e,n){c[e]=n||t}if((n.getters||[]).forEach((function(t){var e="_"+t;c[t]=function(){return this[e]}})),o(n.virtuals,(function(t,e){h(t,e,(function(){throw new Error("unimplemented")}))})),o(n.methods,h),o(n,(function(t,e){r.isFunction(t)&&t!==s&&h(t,e)})),r.assign(s,n.statics),"function"==typeof s.init&&s.init(),o(n.cached,(function(t,e){var n="_"+e;h(t,e,(function(){var e=this[n];return void 0===e&&(e=this[n]=t.call(this)),e}))})),n.mixins){var d={};(f=n.mixins,Array.isArray(f)?f:[f]).reverse().forEach((function(t){r.defaults(d,t)})),r.defaults(c,d)}return s}},function(t,e){"function"==typeof Object.create?t.exports=function(t,e){e&&(t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:t.exports=function(t,e){if(e){t.super_=e;var n=function(){};n.prototype=e.prototype,t.prototype=new n,t.prototype.constructor=t}}},function(t,e,n){"use strict";(function(e){var r=n(67); -/*! - * The buffer module from node.js, for the browser. - * - * @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org> - * @license MIT - */function i(t,e){if(t===e)return 0;for(var n=t.length,r=e.length,i=0,o=Math.min(n,r);i<o;++i)if(t[i]!==e[i]){n=t[i],r=e[i];break}return n<r?-1:r<n?1:0}function o(t){return e.Buffer&&"function"==typeof e.Buffer.isBuffer?e.Buffer.isBuffer(t):!(null==t||!t._isBuffer)}var s=n(68),a=Object.prototype.hasOwnProperty,u=Array.prototype.slice,f="foo"===function(){}.name;function c(t){return Object.prototype.toString.call(t)}function h(t){return!o(t)&&("function"==typeof e.ArrayBuffer&&("function"==typeof ArrayBuffer.isView?ArrayBuffer.isView(t):!!t&&(t instanceof DataView||!!(t.buffer&&t.buffer instanceof ArrayBuffer))))}var d=t.exports=m,l=/\s*function\s+([^\(\s]*)\s*/;function p(t){if(s.isFunction(t)){if(f)return t.name;var e=t.toString().match(l);return e&&e[1]}}function b(t,e){return"string"==typeof t?t.length<e?t:t.slice(0,e):t}function g(t){if(f||!s.isFunction(t))return s.inspect(t);var e=p(t);return"[Function"+(e?": "+e:"")+"]"}function v(t,e,n,r,i){throw new d.AssertionError({message:n,actual:t,expected:e,operator:r,stackStartFunction:i})}function m(t,e){t||v(t,!0,e,"==",d.ok)}function y(t,e,n,r){if(t===e)return!0;if(o(t)&&o(e))return 0===i(t,e);if(s.isDate(t)&&s.isDate(e))return t.getTime()===e.getTime();if(s.isRegExp(t)&&s.isRegExp(e))return t.source===e.source&&t.global===e.global&&t.multiline===e.multiline&&t.lastIndex===e.lastIndex&&t.ignoreCase===e.ignoreCase;if(null!==t&&"object"==typeof t||null!==e&&"object"==typeof e){if(h(t)&&h(e)&&c(t)===c(e)&&!(t instanceof Float32Array||t instanceof Float64Array))return 0===i(new Uint8Array(t.buffer),new Uint8Array(e.buffer));if(o(t)!==o(e))return!1;var a=(r=r||{actual:[],expected:[]}).actual.indexOf(t);return-1!==a&&a===r.expected.indexOf(e)||(r.actual.push(t),r.expected.push(e),function(t,e,n,r){if(null==t||null==e)return!1;if(s.isPrimitive(t)||s.isPrimitive(e))return t===e;if(n&&Object.getPrototypeOf(t)!==Object.getPrototypeOf(e))return!1;var i=w(t),o=w(e);if(i&&!o||!i&&o)return!1;if(i)return t=u.call(t),e=u.call(e),y(t,e,n);var a,f,c=M(t),h=M(e);if(c.length!==h.length)return!1;for(c.sort(),h.sort(),f=c.length-1;f>=0;f--)if(c[f]!==h[f])return!1;for(f=c.length-1;f>=0;f--)if(a=c[f],!y(t[a],e[a],n,r))return!1;return!0}(t,e,n,r))}return n?t===e:t==e}function w(t){return"[object Arguments]"==Object.prototype.toString.call(t)}function _(t,e){if(!t||!e)return!1;if("[object RegExp]"==Object.prototype.toString.call(e))return e.test(t);try{if(t instanceof e)return!0}catch(t){}return!Error.isPrototypeOf(e)&&!0===e.call({},t)}function S(t,e,n,r){var i;if("function"!=typeof e)throw new TypeError('"block" argument must be a function');"string"==typeof n&&(r=n,n=null),i=function(t){var e;try{t()}catch(t){e=t}return e}(e),r=(n&&n.name?" ("+n.name+").":".")+(r?" "+r:"."),t&&!i&&v(i,n,"Missing expected exception"+r);var o="string"==typeof r,a=!t&&i&&!n;if((!t&&s.isError(i)&&o&&_(i,n)||a)&&v(i,n,"Got unwanted exception"+r),t&&i&&n&&!_(i,n)||!t&&i)throw i}d.AssertionError=function(t){this.name="AssertionError",this.actual=t.actual,this.expected=t.expected,this.operator=t.operator,t.message?(this.message=t.message,this.generatedMessage=!1):(this.message=function(t){return b(g(t.actual),128)+" "+t.operator+" "+b(g(t.expected),128)}(this),this.generatedMessage=!0);var e=t.stackStartFunction||v;if(Error.captureStackTrace)Error.captureStackTrace(this,e);else{var n=new Error;if(n.stack){var r=n.stack,i=p(e),o=r.indexOf("\n"+i);if(o>=0){var s=r.indexOf("\n",o+1);r=r.substring(s+1)}this.stack=r}}},s.inherits(d.AssertionError,Error),d.fail=v,d.ok=m,d.equal=function(t,e,n){t!=e&&v(t,e,n,"==",d.equal)},d.notEqual=function(t,e,n){t==e&&v(t,e,n,"!=",d.notEqual)},d.deepEqual=function(t,e,n){y(t,e,!1)||v(t,e,n,"deepEqual",d.deepEqual)},d.deepStrictEqual=function(t,e,n){y(t,e,!0)||v(t,e,n,"deepStrictEqual",d.deepStrictEqual)},d.notDeepEqual=function(t,e,n){y(t,e,!1)&&v(t,e,n,"notDeepEqual",d.notDeepEqual)},d.notDeepStrictEqual=function t(e,n,r){y(e,n,!0)&&v(e,n,r,"notDeepStrictEqual",t)},d.strictEqual=function(t,e,n){t!==e&&v(t,e,n,"===",d.strictEqual)},d.notStrictEqual=function(t,e,n){t===e&&v(t,e,n,"!==",d.notStrictEqual)},d.throws=function(t,e,n){S(!0,t,e,n)},d.doesNotThrow=function(t,e,n){S(!1,t,e,n)},d.ifError=function(t){if(t)throw t},d.strict=r((function t(e,n){e||v(e,!0,n,"==",t)}),d,{equal:d.strictEqual,deepEqual:d.deepStrictEqual,notEqual:d.notStrictEqual,notDeepEqual:d.notDeepStrictEqual}),d.strict.strict=d.strict;var M=Object.keys||function(t){var e=[];for(var n in t)a.call(t,n)&&e.push(n);return e}}).call(this,n(9))},function(t,e,n){"use strict";var r=n(2);function i(t,e){return t<e?-1:t===e?0:1}var o=function(){for(var t={},e=t.reverse=new Array(256),n=0;n<16;n++){var r=n.toString(16).toUpperCase();t[r]=n;for(var i=0;i<16;i++){var o=i.toString(16).toUpperCase(),s=(n<<4)+i,a=r+o;t[a]=s,e[s]=a}}return t}(),s=o.reverse;function a(t){var e=o[t];if(void 0===e)throw new Error("`"+t+"` is not a valid hex representation of a byte");return e}t.exports={parseBytes:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Array;if(!t||void 0===t.length)throw new Error(t+" is not a sequence");if("string"==typeof t){for(var n=t.length%2,r=new e((t.length+n)/2),i=t.length,o=r.length-1;o>=n;i-=2,o--)r[o]=a(t.slice(i-2,i));return 1===n&&(r[0]=a(t[0])),r}if(t instanceof e)return t;if(e===Uint8Array)return new e(t);for(var s=new e(t.length),u=t.length-1;u>=0;u--)s[u]=t[u];return s},bytesToHex:function(t){for(var e=Array(t.length),n=t.length-1;n>=0;n--)e[n]=s[t[n]];return e.join("")},slice:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t.length,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:t.constructor;e<0&&(e+=t.length),n<0&&(n+=t.length);for(var i=n-e,o=new r(i),s=n-1;s>=e;s--)o[s-e]=t[s];return o},compareBytes:function(t,e){r(t.length===e.length);for(var n=0;n<t.length;n++){var o=i(t[n],e[n]);if(0!==o)return o}return 0},serializeUIntN:function(t,e){for(var n=new Uint8Array(e),r=e-1,i=0;i<e;i++)n[r-i]=t>>>8*i&255;return n}}},function(t,e,n){"use strict";var r=e,i=n(8),o=n(14),s=n(61);r.assert=o,r.toArray=s.toArray,r.zero2=s.zero2,r.toHex=s.toHex,r.encode=s.encode,r.getNAF=function(t,e,n){var r=new Array(Math.max(t.bitLength(),n)+1);r.fill(0);for(var i=1<<e+1,o=t.clone(),s=0;s<r.length;s++){var a,u=o.andln(i-1);o.isOdd()?(a=u>(i>>1)-1?(i>>1)-u:u,o.isubn(a)):a=0,r[s]=a,o.iushrn(1)}return r},r.getJSF=function(t,e){var n=[[],[]];t=t.clone(),e=e.clone();for(var r=0,i=0;t.cmpn(-r)>0||e.cmpn(-i)>0;){var o,s,a,u=t.andln(3)+r&3,f=e.andln(3)+i&3;if(3===u&&(u=-1),3===f&&(f=-1),0==(1&u))o=0;else o=3!==(a=t.andln(7)+r&7)&&5!==a||2!==f?u:-u;if(n[0].push(o),0==(1&f))s=0;else s=3!==(a=e.andln(7)+i&7)&&5!==a||2!==u?f:-f;n[1].push(s),2*r===o+1&&(r=1-r),2*i===s+1&&(i=1-i),t.iushrn(1),e.iushrn(1)}return n},r.cachedProperty=function(t,e,n){var r="_"+e;t.prototype[e]=function(){return void 0!==this[r]?this[r]:this[r]=n.call(this)}},r.parseBytes=function(t){return"string"==typeof t?r.toArray(t,"hex"):t},r.intFromLE=function(t){return new i(t,"hex","le")}},function(t,e,n){"use strict";(function(t){ -/*! - * The buffer module from node.js, for the browser. - * - * @author Feross Aboukhadijeh <http://feross.org> - * @license MIT - */ -var r=n(64),i=n(65),o=n(41);function s(){return u.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function a(t,e){if(s()<e)throw new RangeError("Invalid typed array length");return u.TYPED_ARRAY_SUPPORT?(t=new Uint8Array(e)).__proto__=u.prototype:(null===t&&(t=new u(e)),t.length=e),t}function u(t,e,n){if(!(u.TYPED_ARRAY_SUPPORT||this instanceof u))return new u(t,e,n);if("number"==typeof t){if("string"==typeof e)throw new Error("If encoding is specified then the first argument must be a string");return h(this,t)}return f(this,t,e,n)}function f(t,e,n,r){if("number"==typeof e)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer?function(t,e,n,r){if(e.byteLength,n<0||e.byteLength<n)throw new RangeError("'offset' is out of bounds");if(e.byteLength<n+(r||0))throw new RangeError("'length' is out of bounds");e=void 0===n&&void 0===r?new Uint8Array(e):void 0===r?new Uint8Array(e,n):new Uint8Array(e,n,r);u.TYPED_ARRAY_SUPPORT?(t=e).__proto__=u.prototype:t=d(t,e);return t}(t,e,n,r):"string"==typeof e?function(t,e,n){"string"==typeof n&&""!==n||(n="utf8");if(!u.isEncoding(n))throw new TypeError('"encoding" must be a valid string encoding');var r=0|p(e,n),i=(t=a(t,r)).write(e,n);i!==r&&(t=t.slice(0,i));return t}(t,e,n):function(t,e){if(u.isBuffer(e)){var n=0|l(e.length);return 0===(t=a(t,n)).length||e.copy(t,0,0,n),t}if(e){if("undefined"!=typeof ArrayBuffer&&e.buffer instanceof ArrayBuffer||"length"in e)return"number"!=typeof e.length||(r=e.length)!=r?a(t,0):d(t,e);if("Buffer"===e.type&&o(e.data))return d(t,e.data)}var r;throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}(t,e)}function c(t){if("number"!=typeof t)throw new TypeError('"size" argument must be a number');if(t<0)throw new RangeError('"size" argument must not be negative')}function h(t,e){if(c(e),t=a(t,e<0?0:0|l(e)),!u.TYPED_ARRAY_SUPPORT)for(var n=0;n<e;++n)t[n]=0;return t}function d(t,e){var n=e.length<0?0:0|l(e.length);t=a(t,n);for(var r=0;r<n;r+=1)t[r]=255&e[r];return t}function l(t){if(t>=s())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+s().toString(16)+" bytes");return 0|t}function p(t,e){if(u.isBuffer(t))return t.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;"string"!=typeof t&&(t=""+t);var n=t.length;if(0===n)return 0;for(var r=!1;;)switch(e){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return C(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return D(t).length;default:if(r)return C(t).length;e=(""+e).toLowerCase(),r=!0}}function b(t,e,n){var r=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return k(this,e,n);case"utf8":case"utf-8":return x(this,e,n);case"ascii":return I(this,e,n);case"latin1":case"binary":return T(this,e,n);case"base64":return A(this,e,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return L(this,e,n);default:if(r)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),r=!0}}function g(t,e,n){var r=t[e];t[e]=t[n],t[n]=r}function v(t,e,n,r,i){if(0===t.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=i?0:t.length-1),n<0&&(n=t.length+n),n>=t.length){if(i)return-1;n=t.length-1}else if(n<0){if(!i)return-1;n=0}if("string"==typeof e&&(e=u.from(e,r)),u.isBuffer(e))return 0===e.length?-1:m(t,e,n,r,i);if("number"==typeof e)return e&=255,u.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,n):Uint8Array.prototype.lastIndexOf.call(t,e,n):m(t,[e],n,r,i);throw new TypeError("val must be string, number or Buffer")}function m(t,e,n,r,i){var o,s=1,a=t.length,u=e.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(t.length<2||e.length<2)return-1;s=2,a/=2,u/=2,n/=2}function f(t,e){return 1===s?t[e]:t.readUInt16BE(e*s)}if(i){var c=-1;for(o=n;o<a;o++)if(f(t,o)===f(e,-1===c?0:o-c)){if(-1===c&&(c=o),o-c+1===u)return c*s}else-1!==c&&(o-=o-c),c=-1}else for(n+u>a&&(n=a-u),o=n;o>=0;o--){for(var h=!0,d=0;d<u;d++)if(f(t,o+d)!==f(e,d)){h=!1;break}if(h)return o}return-1}function y(t,e,n,r){n=Number(n)||0;var i=t.length-n;r?(r=Number(r))>i&&(r=i):r=i;var o=e.length;if(o%2!=0)throw new TypeError("Invalid hex string");r>o/2&&(r=o/2);for(var s=0;s<r;++s){var a=parseInt(e.substr(2*s,2),16);if(isNaN(a))return s;t[n+s]=a}return s}function w(t,e,n,r){return q(C(e,t.length-n),t,n,r)}function _(t,e,n,r){return q(function(t){for(var e=[],n=0;n<t.length;++n)e.push(255&t.charCodeAt(n));return e}(e),t,n,r)}function S(t,e,n,r){return _(t,e,n,r)}function M(t,e,n,r){return q(D(e),t,n,r)}function E(t,e,n,r){return q(function(t,e){for(var n,r,i,o=[],s=0;s<t.length&&!((e-=2)<0);++s)n=t.charCodeAt(s),r=n>>8,i=n%256,o.push(i),o.push(r);return o}(e,t.length-n),t,n,r)}function A(t,e,n){return 0===e&&n===t.length?r.fromByteArray(t):r.fromByteArray(t.slice(e,n))}function x(t,e,n){n=Math.min(t.length,n);for(var r=[],i=e;i<n;){var o,s,a,u,f=t[i],c=null,h=f>239?4:f>223?3:f>191?2:1;if(i+h<=n)switch(h){case 1:f<128&&(c=f);break;case 2:128==(192&(o=t[i+1]))&&(u=(31&f)<<6|63&o)>127&&(c=u);break;case 3:o=t[i+1],s=t[i+2],128==(192&o)&&128==(192&s)&&(u=(15&f)<<12|(63&o)<<6|63&s)>2047&&(u<55296||u>57343)&&(c=u);break;case 4:o=t[i+1],s=t[i+2],a=t[i+3],128==(192&o)&&128==(192&s)&&128==(192&a)&&(u=(15&f)<<18|(63&o)<<12|(63&s)<<6|63&a)>65535&&u<1114112&&(c=u)}null===c?(c=65533,h=1):c>65535&&(c-=65536,r.push(c>>>10&1023|55296),c=56320|1023&c),r.push(c),i+=h}return function(t){var e=t.length;if(e<=4096)return String.fromCharCode.apply(String,t);var n="",r=0;for(;r<e;)n+=String.fromCharCode.apply(String,t.slice(r,r+=4096));return n}(r)}e.Buffer=u,e.SlowBuffer=function(t){+t!=t&&(t=0);return u.alloc(+t)},e.INSPECT_MAX_BYTES=50,u.TYPED_ARRAY_SUPPORT=void 0!==t.TYPED_ARRAY_SUPPORT?t.TYPED_ARRAY_SUPPORT:function(){try{var t=new Uint8Array(1);return t.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===t.foo()&&"function"==typeof t.subarray&&0===t.subarray(1,1).byteLength}catch(t){return!1}}(),e.kMaxLength=s(),u.poolSize=8192,u._augment=function(t){return t.__proto__=u.prototype,t},u.from=function(t,e,n){return f(null,t,e,n)},u.TYPED_ARRAY_SUPPORT&&(u.prototype.__proto__=Uint8Array.prototype,u.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&u[Symbol.species]===u&&Object.defineProperty(u,Symbol.species,{value:null,configurable:!0})),u.alloc=function(t,e,n){return function(t,e,n,r){return c(e),e<=0?a(t,e):void 0!==n?"string"==typeof r?a(t,e).fill(n,r):a(t,e).fill(n):a(t,e)}(null,t,e,n)},u.allocUnsafe=function(t){return h(null,t)},u.allocUnsafeSlow=function(t){return h(null,t)},u.isBuffer=function(t){return!(null==t||!t._isBuffer)},u.compare=function(t,e){if(!u.isBuffer(t)||!u.isBuffer(e))throw new TypeError("Arguments must be Buffers");if(t===e)return 0;for(var n=t.length,r=e.length,i=0,o=Math.min(n,r);i<o;++i)if(t[i]!==e[i]){n=t[i],r=e[i];break}return n<r?-1:r<n?1:0},u.isEncoding=function(t){switch(String(t).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},u.concat=function(t,e){if(!o(t))throw new TypeError('"list" argument must be an Array of Buffers');if(0===t.length)return u.alloc(0);var n;if(void 0===e)for(e=0,n=0;n<t.length;++n)e+=t[n].length;var r=u.allocUnsafe(e),i=0;for(n=0;n<t.length;++n){var s=t[n];if(!u.isBuffer(s))throw new TypeError('"list" argument must be an Array of Buffers');s.copy(r,i),i+=s.length}return r},u.byteLength=p,u.prototype._isBuffer=!0,u.prototype.swap16=function(){var t=this.length;if(t%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var e=0;e<t;e+=2)g(this,e,e+1);return this},u.prototype.swap32=function(){var t=this.length;if(t%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var e=0;e<t;e+=4)g(this,e,e+3),g(this,e+1,e+2);return this},u.prototype.swap64=function(){var t=this.length;if(t%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var e=0;e<t;e+=8)g(this,e,e+7),g(this,e+1,e+6),g(this,e+2,e+5),g(this,e+3,e+4);return this},u.prototype.toString=function(){var t=0|this.length;return 0===t?"":0===arguments.length?x(this,0,t):b.apply(this,arguments)},u.prototype.equals=function(t){if(!u.isBuffer(t))throw new TypeError("Argument must be a Buffer");return this===t||0===u.compare(this,t)},u.prototype.inspect=function(){var t="",n=e.INSPECT_MAX_BYTES;return this.length>0&&(t=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(t+=" ... ")),"<Buffer "+t+">"},u.prototype.compare=function(t,e,n,r,i){if(!u.isBuffer(t))throw new TypeError("Argument must be a Buffer");if(void 0===e&&(e=0),void 0===n&&(n=t?t.length:0),void 0===r&&(r=0),void 0===i&&(i=this.length),e<0||n>t.length||r<0||i>this.length)throw new RangeError("out of range index");if(r>=i&&e>=n)return 0;if(r>=i)return-1;if(e>=n)return 1;if(this===t)return 0;for(var o=(i>>>=0)-(r>>>=0),s=(n>>>=0)-(e>>>=0),a=Math.min(o,s),f=this.slice(r,i),c=t.slice(e,n),h=0;h<a;++h)if(f[h]!==c[h]){o=f[h],s=c[h];break}return o<s?-1:s<o?1:0},u.prototype.includes=function(t,e,n){return-1!==this.indexOf(t,e,n)},u.prototype.indexOf=function(t,e,n){return v(this,t,e,n,!0)},u.prototype.lastIndexOf=function(t,e,n){return v(this,t,e,n,!1)},u.prototype.write=function(t,e,n,r){if(void 0===e)r="utf8",n=this.length,e=0;else if(void 0===n&&"string"==typeof e)r=e,n=this.length,e=0;else{if(!isFinite(e))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");e|=0,isFinite(n)?(n|=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}var i=this.length-e;if((void 0===n||n>i)&&(n=i),t.length>0&&(n<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var o=!1;;)switch(r){case"hex":return y(this,t,e,n);case"utf8":case"utf-8":return w(this,t,e,n);case"ascii":return _(this,t,e,n);case"latin1":case"binary":return S(this,t,e,n);case"base64":return M(this,t,e,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return E(this,t,e,n);default:if(o)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),o=!0}},u.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function I(t,e,n){var r="";n=Math.min(t.length,n);for(var i=e;i<n;++i)r+=String.fromCharCode(127&t[i]);return r}function T(t,e,n){var r="";n=Math.min(t.length,n);for(var i=e;i<n;++i)r+=String.fromCharCode(t[i]);return r}function k(t,e,n){var r=t.length;(!e||e<0)&&(e=0),(!n||n<0||n>r)&&(n=r);for(var i="",o=e;o<n;++o)i+=j(t[o]);return i}function L(t,e,n){for(var r=t.slice(e,n),i="",o=0;o<r.length;o+=2)i+=String.fromCharCode(r[o]+256*r[o+1]);return i}function N(t,e,n){if(t%1!=0||t<0)throw new RangeError("offset is not uint");if(t+e>n)throw new RangeError("Trying to access beyond buffer length")}function R(t,e,n,r,i,o){if(!u.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>i||e<o)throw new RangeError('"value" argument is out of bounds');if(n+r>t.length)throw new RangeError("Index out of range")}function O(t,e,n,r){e<0&&(e=65535+e+1);for(var i=0,o=Math.min(t.length-n,2);i<o;++i)t[n+i]=(e&255<<8*(r?i:1-i))>>>8*(r?i:1-i)}function B(t,e,n,r){e<0&&(e=4294967295+e+1);for(var i=0,o=Math.min(t.length-n,4);i<o;++i)t[n+i]=e>>>8*(r?i:3-i)&255}function z(t,e,n,r,i,o){if(n+r>t.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function P(t,e,n,r,o){return o||z(t,0,n,4),i.write(t,e,n,r,23,4),n+4}function U(t,e,n,r,o){return o||z(t,0,n,8),i.write(t,e,n,r,52,8),n+8}u.prototype.slice=function(t,e){var n,r=this.length;if((t=~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),(e=void 0===e?r:~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),e<t&&(e=t),u.TYPED_ARRAY_SUPPORT)(n=this.subarray(t,e)).__proto__=u.prototype;else{var i=e-t;n=new u(i,void 0);for(var o=0;o<i;++o)n[o]=this[o+t]}return n},u.prototype.readUIntLE=function(t,e,n){t|=0,e|=0,n||N(t,e,this.length);for(var r=this[t],i=1,o=0;++o<e&&(i*=256);)r+=this[t+o]*i;return r},u.prototype.readUIntBE=function(t,e,n){t|=0,e|=0,n||N(t,e,this.length);for(var r=this[t+--e],i=1;e>0&&(i*=256);)r+=this[t+--e]*i;return r},u.prototype.readUInt8=function(t,e){return e||N(t,1,this.length),this[t]},u.prototype.readUInt16LE=function(t,e){return e||N(t,2,this.length),this[t]|this[t+1]<<8},u.prototype.readUInt16BE=function(t,e){return e||N(t,2,this.length),this[t]<<8|this[t+1]},u.prototype.readUInt32LE=function(t,e){return e||N(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},u.prototype.readUInt32BE=function(t,e){return e||N(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},u.prototype.readIntLE=function(t,e,n){t|=0,e|=0,n||N(t,e,this.length);for(var r=this[t],i=1,o=0;++o<e&&(i*=256);)r+=this[t+o]*i;return r>=(i*=128)&&(r-=Math.pow(2,8*e)),r},u.prototype.readIntBE=function(t,e,n){t|=0,e|=0,n||N(t,e,this.length);for(var r=e,i=1,o=this[t+--r];r>0&&(i*=256);)o+=this[t+--r]*i;return o>=(i*=128)&&(o-=Math.pow(2,8*e)),o},u.prototype.readInt8=function(t,e){return e||N(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},u.prototype.readInt16LE=function(t,e){e||N(t,2,this.length);var n=this[t]|this[t+1]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt16BE=function(t,e){e||N(t,2,this.length);var n=this[t+1]|this[t]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt32LE=function(t,e){return e||N(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},u.prototype.readInt32BE=function(t,e){return e||N(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},u.prototype.readFloatLE=function(t,e){return e||N(t,4,this.length),i.read(this,t,!0,23,4)},u.prototype.readFloatBE=function(t,e){return e||N(t,4,this.length),i.read(this,t,!1,23,4)},u.prototype.readDoubleLE=function(t,e){return e||N(t,8,this.length),i.read(this,t,!0,52,8)},u.prototype.readDoubleBE=function(t,e){return e||N(t,8,this.length),i.read(this,t,!1,52,8)},u.prototype.writeUIntLE=function(t,e,n,r){(t=+t,e|=0,n|=0,r)||R(this,t,e,n,Math.pow(2,8*n)-1,0);var i=1,o=0;for(this[e]=255&t;++o<n&&(i*=256);)this[e+o]=t/i&255;return e+n},u.prototype.writeUIntBE=function(t,e,n,r){(t=+t,e|=0,n|=0,r)||R(this,t,e,n,Math.pow(2,8*n)-1,0);var i=n-1,o=1;for(this[e+i]=255&t;--i>=0&&(o*=256);)this[e+i]=t/o&255;return e+n},u.prototype.writeUInt8=function(t,e,n){return t=+t,e|=0,n||R(this,t,e,1,255,0),u.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[e]=255&t,e+1},u.prototype.writeUInt16LE=function(t,e,n){return t=+t,e|=0,n||R(this,t,e,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):O(this,t,e,!0),e+2},u.prototype.writeUInt16BE=function(t,e,n){return t=+t,e|=0,n||R(this,t,e,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):O(this,t,e,!1),e+2},u.prototype.writeUInt32LE=function(t,e,n){return t=+t,e|=0,n||R(this,t,e,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t):B(this,t,e,!0),e+4},u.prototype.writeUInt32BE=function(t,e,n){return t=+t,e|=0,n||R(this,t,e,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):B(this,t,e,!1),e+4},u.prototype.writeIntLE=function(t,e,n,r){if(t=+t,e|=0,!r){var i=Math.pow(2,8*n-1);R(this,t,e,n,i-1,-i)}var o=0,s=1,a=0;for(this[e]=255&t;++o<n&&(s*=256);)t<0&&0===a&&0!==this[e+o-1]&&(a=1),this[e+o]=(t/s>>0)-a&255;return e+n},u.prototype.writeIntBE=function(t,e,n,r){if(t=+t,e|=0,!r){var i=Math.pow(2,8*n-1);R(this,t,e,n,i-1,-i)}var o=n-1,s=1,a=0;for(this[e+o]=255&t;--o>=0&&(s*=256);)t<0&&0===a&&0!==this[e+o+1]&&(a=1),this[e+o]=(t/s>>0)-a&255;return e+n},u.prototype.writeInt8=function(t,e,n){return t=+t,e|=0,n||R(this,t,e,1,127,-128),u.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[e]=255&t,e+1},u.prototype.writeInt16LE=function(t,e,n){return t=+t,e|=0,n||R(this,t,e,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):O(this,t,e,!0),e+2},u.prototype.writeInt16BE=function(t,e,n){return t=+t,e|=0,n||R(this,t,e,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):O(this,t,e,!1),e+2},u.prototype.writeInt32LE=function(t,e,n){return t=+t,e|=0,n||R(this,t,e,4,2147483647,-2147483648),u.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24):B(this,t,e,!0),e+4},u.prototype.writeInt32BE=function(t,e,n){return t=+t,e|=0,n||R(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):B(this,t,e,!1),e+4},u.prototype.writeFloatLE=function(t,e,n){return P(this,t,e,!0,n)},u.prototype.writeFloatBE=function(t,e,n){return P(this,t,e,!1,n)},u.prototype.writeDoubleLE=function(t,e,n){return U(this,t,e,!0,n)},u.prototype.writeDoubleBE=function(t,e,n){return U(this,t,e,!1,n)},u.prototype.copy=function(t,e,n,r){if(n||(n=0),r||0===r||(r=this.length),e>=t.length&&(e=t.length),e||(e=0),r>0&&r<n&&(r=n),r===n)return 0;if(0===t.length||0===this.length)return 0;if(e<0)throw new RangeError("targetStart out of bounds");if(n<0||n>=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),t.length-e<r-n&&(r=t.length-e+n);var i,o=r-n;if(this===t&&n<e&&e<r)for(i=o-1;i>=0;--i)t[i+e]=this[i+n];else if(o<1e3||!u.TYPED_ARRAY_SUPPORT)for(i=0;i<o;++i)t[i+e]=this[i+n];else Uint8Array.prototype.set.call(t,this.subarray(n,n+o),e);return o},u.prototype.fill=function(t,e,n,r){if("string"==typeof t){if("string"==typeof e?(r=e,e=0,n=this.length):"string"==typeof n&&(r=n,n=this.length),1===t.length){var i=t.charCodeAt(0);i<256&&(t=i)}if(void 0!==r&&"string"!=typeof r)throw new TypeError("encoding must be a string");if("string"==typeof r&&!u.isEncoding(r))throw new TypeError("Unknown encoding: "+r)}else"number"==typeof t&&(t&=255);if(e<0||this.length<e||this.length<n)throw new RangeError("Out of range index");if(n<=e)return this;var o;if(e>>>=0,n=void 0===n?this.length:n>>>0,t||(t=0),"number"==typeof t)for(o=e;o<n;++o)this[o]=t;else{var s=u.isBuffer(t)?t:C(new u(t,r).toString()),a=s.length;for(o=0;o<n-e;++o)this[o+e]=s[o%a]}return this};var F=/[^+\/0-9A-Za-z-_]/g;function j(t){return t<16?"0"+t.toString(16):t.toString(16)}function C(t,e){var n;e=e||1/0;for(var r=t.length,i=null,o=[],s=0;s<r;++s){if((n=t.charCodeAt(s))>55295&&n<57344){if(!i){if(n>56319){(e-=3)>-1&&o.push(239,191,189);continue}if(s+1===r){(e-=3)>-1&&o.push(239,191,189);continue}i=n;continue}if(n<56320){(e-=3)>-1&&o.push(239,191,189),i=n;continue}n=65536+(i-55296<<10|n-56320)}else i&&(e-=3)>-1&&o.push(239,191,189);if(i=null,n<128){if((e-=1)<0)break;o.push(n)}else if(n<2048){if((e-=2)<0)break;o.push(n>>6|192,63&n|128)}else if(n<65536){if((e-=3)<0)break;o.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;o.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return o}function D(t){return r.toByteArray(function(t){if((t=function(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}(t).replace(F,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function q(t,e,n,r){for(var i=0;i<r&&!(i+n>=e.length||i>=t.length);++i)e[i+n]=t[i];return i}}).call(this,n(9))},function(t,e,n){var r=n(5),i=r.Buffer;function o(t,e){for(var n in t)e[n]=t[n]}function s(t,e,n){return i(t,e,n)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?t.exports=r:(o(r,e),e.Buffer=s),s.prototype=Object.create(i.prototype),o(i,s),s.from=function(t,e,n){if("number"==typeof t)throw new TypeError("Argument must not be a number");return i(t,e,n)},s.alloc=function(t,e,n){if("number"!=typeof t)throw new TypeError("Argument must be a number");var r=i(t);return void 0!==e?"string"==typeof n?r.fill(e,n):r.fill(e):r.fill(0),r},s.allocUnsafe=function(t){if("number"!=typeof t)throw new TypeError("Argument must be a number");return i(t)},s.allocUnsafeSlow=function(t){if("number"!=typeof t)throw new TypeError("Argument must be a number");return r.SlowBuffer(t)}},function(t,e,n){"use strict";var r=n(14),i=n(1);function o(t,e){return 55296==(64512&t.charCodeAt(e))&&(!(e<0||e+1>=t.length)&&56320==(64512&t.charCodeAt(e+1)))}function s(t){return(t>>>24|t>>>8&65280|t<<8&16711680|(255&t)<<24)>>>0}function a(t){return 1===t.length?"0"+t:t}function u(t){return 7===t.length?"0"+t:6===t.length?"00"+t:5===t.length?"000"+t:4===t.length?"0000"+t:3===t.length?"00000"+t:2===t.length?"000000"+t:1===t.length?"0000000"+t:t}e.inherits=i,e.toArray=function(t,e){if(Array.isArray(t))return t.slice();if(!t)return[];var n=[];if("string"==typeof t)if(e){if("hex"===e)for((t=t.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(t="0"+t),i=0;i<t.length;i+=2)n.push(parseInt(t[i]+t[i+1],16))}else for(var r=0,i=0;i<t.length;i++){var s=t.charCodeAt(i);s<128?n[r++]=s:s<2048?(n[r++]=s>>6|192,n[r++]=63&s|128):o(t,i)?(s=65536+((1023&s)<<10)+(1023&t.charCodeAt(++i)),n[r++]=s>>18|240,n[r++]=s>>12&63|128,n[r++]=s>>6&63|128,n[r++]=63&s|128):(n[r++]=s>>12|224,n[r++]=s>>6&63|128,n[r++]=63&s|128)}else for(i=0;i<t.length;i++)n[i]=0|t[i];return n},e.toHex=function(t){for(var e="",n=0;n<t.length;n++)e+=a(t[n].toString(16));return e},e.htonl=s,e.toHex32=function(t,e){for(var n="",r=0;r<t.length;r++){var i=t[r];"little"===e&&(i=s(i)),n+=u(i.toString(16))}return n},e.zero2=a,e.zero8=u,e.join32=function(t,e,n,i){var o=n-e;r(o%4==0);for(var s=new Array(o/4),a=0,u=e;a<s.length;a++,u+=4){var f;f="big"===i?t[u]<<24|t[u+1]<<16|t[u+2]<<8|t[u+3]:t[u+3]<<24|t[u+2]<<16|t[u+1]<<8|t[u],s[a]=f>>>0}return s},e.split32=function(t,e){for(var n=new Array(4*t.length),r=0,i=0;r<t.length;r++,i+=4){var o=t[r];"big"===e?(n[i]=o>>>24,n[i+1]=o>>>16&255,n[i+2]=o>>>8&255,n[i+3]=255&o):(n[i+3]=o>>>24,n[i+2]=o>>>16&255,n[i+1]=o>>>8&255,n[i]=255&o)}return n},e.rotr32=function(t,e){return t>>>e|t<<32-e},e.rotl32=function(t,e){return t<<e|t>>>32-e},e.sum32=function(t,e){return t+e>>>0},e.sum32_3=function(t,e,n){return t+e+n>>>0},e.sum32_4=function(t,e,n,r){return t+e+n+r>>>0},e.sum32_5=function(t,e,n,r,i){return t+e+n+r+i>>>0},e.sum64=function(t,e,n,r){var i=t[e],o=r+t[e+1]>>>0,s=(o<r?1:0)+n+i;t[e]=s>>>0,t[e+1]=o},e.sum64_hi=function(t,e,n,r){return(e+r>>>0<e?1:0)+t+n>>>0},e.sum64_lo=function(t,e,n,r){return e+r>>>0},e.sum64_4_hi=function(t,e,n,r,i,o,s,a){var u=0,f=e;return u+=(f=f+r>>>0)<e?1:0,u+=(f=f+o>>>0)<o?1:0,t+n+i+s+(u+=(f=f+a>>>0)<a?1:0)>>>0},e.sum64_4_lo=function(t,e,n,r,i,o,s,a){return e+r+o+a>>>0},e.sum64_5_hi=function(t,e,n,r,i,o,s,a,u,f){var c=0,h=e;return c+=(h=h+r>>>0)<e?1:0,c+=(h=h+o>>>0)<o?1:0,c+=(h=h+a>>>0)<a?1:0,t+n+i+s+u+(c+=(h=h+f>>>0)<f?1:0)>>>0},e.sum64_5_lo=function(t,e,n,r,i,o,s,a,u,f){return e+r+o+a+f>>>0},e.rotr64_hi=function(t,e,n){return(e<<32-n|t>>>n)>>>0},e.rotr64_lo=function(t,e,n){return(t<<32-n|e>>>n)>>>0},e.shr64_hi=function(t,e,n){return t>>>n},e.shr64_lo=function(t,e,n){return(t<<32-n|e>>>n)>>>0}},function(t,e,n){(function(t){!function(t,e){"use strict";function r(t,e){if(!t)throw new Error(e||"Assertion failed")}function i(t,e){t.super_=e;var n=function(){};n.prototype=e.prototype,t.prototype=new n,t.prototype.constructor=t}function o(t,e,n){if(o.isBN(t))return t;this.negative=0,this.words=null,this.length=0,this.red=null,null!==t&&("le"!==e&&"be"!==e||(n=e,e=10),this._init(t||0,e||10,n||"be"))}var s;"object"==typeof t?t.exports=o:e.BN=o,o.BN=o,o.wordSize=26;try{s=n(118).Buffer}catch(t){}function a(t,e,n){for(var r=0,i=Math.min(t.length,n),o=e;o<i;o++){var s=t.charCodeAt(o)-48;r<<=4,r|=s>=49&&s<=54?s-49+10:s>=17&&s<=22?s-17+10:15&s}return r}function u(t,e,n,r){for(var i=0,o=Math.min(t.length,n),s=e;s<o;s++){var a=t.charCodeAt(s)-48;i*=r,i+=a>=49?a-49+10:a>=17?a-17+10:a}return i}o.isBN=function(t){return t instanceof o||null!==t&&"object"==typeof t&&t.constructor.wordSize===o.wordSize&&Array.isArray(t.words)},o.max=function(t,e){return t.cmp(e)>0?t:e},o.min=function(t,e){return t.cmp(e)<0?t:e},o.prototype._init=function(t,e,n){if("number"==typeof t)return this._initNumber(t,e,n);if("object"==typeof t)return this._initArray(t,e,n);"hex"===e&&(e=16),r(e===(0|e)&&e>=2&&e<=36);var i=0;"-"===(t=t.toString().replace(/\s+/g,""))[0]&&i++,16===e?this._parseHex(t,i):this._parseBase(t,e,i),"-"===t[0]&&(this.negative=1),this.strip(),"le"===n&&this._initArray(this.toArray(),e,n)},o.prototype._initNumber=function(t,e,n){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(r(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),"le"===n&&this._initArray(this.toArray(),e,n)},o.prototype._initArray=function(t,e,n){if(r("number"==typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var i=0;i<this.length;i++)this.words[i]=0;var o,s,a=0;if("be"===n)for(i=t.length-1,o=0;i>=0;i-=3)s=t[i]|t[i-1]<<8|t[i-2]<<16,this.words[o]|=s<<a&67108863,this.words[o+1]=s>>>26-a&67108863,(a+=24)>=26&&(a-=26,o++);else if("le"===n)for(i=0,o=0;i<t.length;i+=3)s=t[i]|t[i+1]<<8|t[i+2]<<16,this.words[o]|=s<<a&67108863,this.words[o+1]=s>>>26-a&67108863,(a+=24)>=26&&(a-=26,o++);return this.strip()},o.prototype._parseHex=function(t,e){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var n=0;n<this.length;n++)this.words[n]=0;var r,i,o=0;for(n=t.length-6,r=0;n>=e;n-=6)i=a(t,n,n+6),this.words[r]|=i<<o&67108863,this.words[r+1]|=i>>>26-o&4194303,(o+=24)>=26&&(o-=26,r++);n+6!==e&&(i=a(t,e,n+6),this.words[r]|=i<<o&67108863,this.words[r+1]|=i>>>26-o&4194303),this.strip()},o.prototype._parseBase=function(t,e,n){this.words=[0],this.length=1;for(var r=0,i=1;i<=67108863;i*=e)r++;r--,i=i/e|0;for(var o=t.length-n,s=o%r,a=Math.min(o,o-s)+n,f=0,c=n;c<a;c+=r)f=u(t,c,c+r,e),this.imuln(i),this.words[0]+f<67108864?this.words[0]+=f:this._iaddn(f);if(0!==s){var h=1;for(f=u(t,c,t.length,e),c=0;c<s;c++)h*=e;this.imuln(h),this.words[0]+f<67108864?this.words[0]+=f:this._iaddn(f)}},o.prototype.copy=function(t){t.words=new Array(this.length);for(var e=0;e<this.length;e++)t.words[e]=this.words[e];t.length=this.length,t.negative=this.negative,t.red=this.red},o.prototype.clone=function(){var t=new o(null);return this.copy(t),t},o.prototype._expand=function(t){for(;this.length<t;)this.words[this.length++]=0;return this},o.prototype.strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"};var f=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],c=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],h=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function d(t,e,n){n.negative=e.negative^t.negative;var r=t.length+e.length|0;n.length=r,r=r-1|0;var i=0|t.words[0],o=0|e.words[0],s=i*o,a=67108863&s,u=s/67108864|0;n.words[0]=a;for(var f=1;f<r;f++){for(var c=u>>>26,h=67108863&u,d=Math.min(f,e.length-1),l=Math.max(0,f-t.length+1);l<=d;l++){var p=f-l|0;c+=(s=(i=0|t.words[p])*(o=0|e.words[l])+h)/67108864|0,h=67108863&s}n.words[f]=0|h,u=0|c}return 0!==u?n.words[f]=0|u:n.length--,n.strip()}o.prototype.toString=function(t,e){var n;if(e=0|e||1,16===(t=t||10)||"hex"===t){n="";for(var i=0,o=0,s=0;s<this.length;s++){var a=this.words[s],u=(16777215&(a<<i|o)).toString(16);n=0!==(o=a>>>24-i&16777215)||s!==this.length-1?f[6-u.length]+u+n:u+n,(i+=2)>=26&&(i-=26,s--)}for(0!==o&&(n=o.toString(16)+n);n.length%e!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(t===(0|t)&&t>=2&&t<=36){var d=c[t],l=h[t];n="";var p=this.clone();for(p.negative=0;!p.isZero();){var b=p.modn(l).toString(t);n=(p=p.idivn(l)).isZero()?b+n:f[d-b.length]+b+n}for(this.isZero()&&(n="0"+n);n.length%e!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}r(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(t,e){return r(void 0!==s),this.toArrayLike(s,t,e)},o.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},o.prototype.toArrayLike=function(t,e,n){var i=this.byteLength(),o=n||Math.max(1,i);r(i<=o,"byte array longer than desired length"),r(o>0,"Requested array length <= 0"),this.strip();var s,a,u="le"===e,f=new t(o),c=this.clone();if(u){for(a=0;!c.isZero();a++)s=c.andln(255),c.iushrn(8),f[a]=s;for(;a<o;a++)f[a]=0}else{for(a=0;a<o-i;a++)f[a]=0;for(a=0;!c.isZero();a++)s=c.andln(255),c.iushrn(8),f[o-a-1]=s}return f},Math.clz32?o.prototype._countBits=function(t){return 32-Math.clz32(t)}:o.prototype._countBits=function(t){var e=t,n=0;return e>=4096&&(n+=13,e>>>=13),e>=64&&(n+=7,e>>>=7),e>=8&&(n+=4,e>>>=4),e>=2&&(n+=2,e>>>=2),n+e},o.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,n=0;return 0==(8191&e)&&(n+=13,e>>>=13),0==(127&e)&&(n+=7,e>>>=7),0==(15&e)&&(n+=4,e>>>=4),0==(3&e)&&(n+=2,e>>>=2),0==(1&e)&&n++,n},o.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;e<this.length;e++){var n=this._zeroBits(this.words[e]);if(t+=n,26!==n)break}return t},o.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},o.prototype.toTwos=function(t){return 0!==this.negative?this.abs().inotn(t).iaddn(1):this.clone()},o.prototype.fromTwos=function(t){return this.testn(t-1)?this.notn(t).iaddn(1).ineg():this.clone()},o.prototype.isNeg=function(){return 0!==this.negative},o.prototype.neg=function(){return this.clone().ineg()},o.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},o.prototype.iuor=function(t){for(;this.length<t.length;)this.words[this.length++]=0;for(var e=0;e<t.length;e++)this.words[e]=this.words[e]|t.words[e];return this.strip()},o.prototype.ior=function(t){return r(0==(this.negative|t.negative)),this.iuor(t)},o.prototype.or=function(t){return this.length>t.length?this.clone().ior(t):t.clone().ior(this)},o.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},o.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var n=0;n<e.length;n++)this.words[n]=this.words[n]&t.words[n];return this.length=e.length,this.strip()},o.prototype.iand=function(t){return r(0==(this.negative|t.negative)),this.iuand(t)},o.prototype.and=function(t){return this.length>t.length?this.clone().iand(t):t.clone().iand(this)},o.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},o.prototype.iuxor=function(t){var e,n;this.length>t.length?(e=this,n=t):(e=t,n=this);for(var r=0;r<n.length;r++)this.words[r]=e.words[r]^n.words[r];if(this!==e)for(;r<e.length;r++)this.words[r]=e.words[r];return this.length=e.length,this.strip()},o.prototype.ixor=function(t){return r(0==(this.negative|t.negative)),this.iuxor(t)},o.prototype.xor=function(t){return this.length>t.length?this.clone().ixor(t):t.clone().ixor(this)},o.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},o.prototype.inotn=function(t){r("number"==typeof t&&t>=0);var e=0|Math.ceil(t/26),n=t%26;this._expand(e),n>0&&e--;for(var i=0;i<e;i++)this.words[i]=67108863&~this.words[i];return n>0&&(this.words[i]=~this.words[i]&67108863>>26-n),this.strip()},o.prototype.notn=function(t){return this.clone().inotn(t)},o.prototype.setn=function(t,e){r("number"==typeof t&&t>=0);var n=t/26|0,i=t%26;return this._expand(n+1),this.words[n]=e?this.words[n]|1<<i:this.words[n]&~(1<<i),this.strip()},o.prototype.iadd=function(t){var e,n,r;if(0!==this.negative&&0===t.negative)return this.negative=0,e=this.isub(t),this.negative^=1,this._normSign();if(0===this.negative&&0!==t.negative)return t.negative=0,e=this.isub(t),t.negative=1,e._normSign();this.length>t.length?(n=this,r=t):(n=t,r=this);for(var i=0,o=0;o<r.length;o++)e=(0|n.words[o])+(0|r.words[o])+i,this.words[o]=67108863&e,i=e>>>26;for(;0!==i&&o<n.length;o++)e=(0|n.words[o])+i,this.words[o]=67108863&e,i=e>>>26;if(this.length=n.length,0!==i)this.words[this.length]=i,this.length++;else if(n!==this)for(;o<n.length;o++)this.words[o]=n.words[o];return this},o.prototype.add=function(t){var e;return 0!==t.negative&&0===this.negative?(t.negative=0,e=this.sub(t),t.negative^=1,e):0===t.negative&&0!==this.negative?(this.negative=0,e=t.sub(this),this.negative=1,e):this.length>t.length?this.clone().iadd(t):t.clone().iadd(this)},o.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var n,r,i=this.cmp(t);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(n=this,r=t):(n=t,r=this);for(var o=0,s=0;s<r.length;s++)o=(e=(0|n.words[s])-(0|r.words[s])+o)>>26,this.words[s]=67108863&e;for(;0!==o&&s<n.length;s++)o=(e=(0|n.words[s])+o)>>26,this.words[s]=67108863&e;if(0===o&&s<n.length&&n!==this)for(;s<n.length;s++)this.words[s]=n.words[s];return this.length=Math.max(this.length,s),n!==this&&(this.negative=1),this.strip()},o.prototype.sub=function(t){return this.clone().isub(t)};var l=function(t,e,n){var r,i,o,s=t.words,a=e.words,u=n.words,f=0,c=0|s[0],h=8191&c,d=c>>>13,l=0|s[1],p=8191&l,b=l>>>13,g=0|s[2],v=8191&g,m=g>>>13,y=0|s[3],w=8191&y,_=y>>>13,S=0|s[4],M=8191&S,E=S>>>13,A=0|s[5],x=8191&A,I=A>>>13,T=0|s[6],k=8191&T,L=T>>>13,N=0|s[7],R=8191&N,O=N>>>13,B=0|s[8],z=8191&B,P=B>>>13,U=0|s[9],F=8191&U,j=U>>>13,C=0|a[0],D=8191&C,q=C>>>13,V=0|a[1],H=8191&V,W=V>>>13,Z=0|a[2],Y=8191&Z,J=Z>>>13,K=0|a[3],$=8191&K,X=K>>>13,G=0|a[4],Q=8191&G,tt=G>>>13,et=0|a[5],nt=8191&et,rt=et>>>13,it=0|a[6],ot=8191&it,st=it>>>13,at=0|a[7],ut=8191&at,ft=at>>>13,ct=0|a[8],ht=8191&ct,dt=ct>>>13,lt=0|a[9],pt=8191<,bt=lt>>>13;n.negative=t.negative^e.negative,n.length=19;var gt=(f+(r=Math.imul(h,D))|0)+((8191&(i=(i=Math.imul(h,q))+Math.imul(d,D)|0))<<13)|0;f=((o=Math.imul(d,q))+(i>>>13)|0)+(gt>>>26)|0,gt&=67108863,r=Math.imul(p,D),i=(i=Math.imul(p,q))+Math.imul(b,D)|0,o=Math.imul(b,q);var vt=(f+(r=r+Math.imul(h,H)|0)|0)+((8191&(i=(i=i+Math.imul(h,W)|0)+Math.imul(d,H)|0))<<13)|0;f=((o=o+Math.imul(d,W)|0)+(i>>>13)|0)+(vt>>>26)|0,vt&=67108863,r=Math.imul(v,D),i=(i=Math.imul(v,q))+Math.imul(m,D)|0,o=Math.imul(m,q),r=r+Math.imul(p,H)|0,i=(i=i+Math.imul(p,W)|0)+Math.imul(b,H)|0,o=o+Math.imul(b,W)|0;var mt=(f+(r=r+Math.imul(h,Y)|0)|0)+((8191&(i=(i=i+Math.imul(h,J)|0)+Math.imul(d,Y)|0))<<13)|0;f=((o=o+Math.imul(d,J)|0)+(i>>>13)|0)+(mt>>>26)|0,mt&=67108863,r=Math.imul(w,D),i=(i=Math.imul(w,q))+Math.imul(_,D)|0,o=Math.imul(_,q),r=r+Math.imul(v,H)|0,i=(i=i+Math.imul(v,W)|0)+Math.imul(m,H)|0,o=o+Math.imul(m,W)|0,r=r+Math.imul(p,Y)|0,i=(i=i+Math.imul(p,J)|0)+Math.imul(b,Y)|0,o=o+Math.imul(b,J)|0;var yt=(f+(r=r+Math.imul(h,$)|0)|0)+((8191&(i=(i=i+Math.imul(h,X)|0)+Math.imul(d,$)|0))<<13)|0;f=((o=o+Math.imul(d,X)|0)+(i>>>13)|0)+(yt>>>26)|0,yt&=67108863,r=Math.imul(M,D),i=(i=Math.imul(M,q))+Math.imul(E,D)|0,o=Math.imul(E,q),r=r+Math.imul(w,H)|0,i=(i=i+Math.imul(w,W)|0)+Math.imul(_,H)|0,o=o+Math.imul(_,W)|0,r=r+Math.imul(v,Y)|0,i=(i=i+Math.imul(v,J)|0)+Math.imul(m,Y)|0,o=o+Math.imul(m,J)|0,r=r+Math.imul(p,$)|0,i=(i=i+Math.imul(p,X)|0)+Math.imul(b,$)|0,o=o+Math.imul(b,X)|0;var wt=(f+(r=r+Math.imul(h,Q)|0)|0)+((8191&(i=(i=i+Math.imul(h,tt)|0)+Math.imul(d,Q)|0))<<13)|0;f=((o=o+Math.imul(d,tt)|0)+(i>>>13)|0)+(wt>>>26)|0,wt&=67108863,r=Math.imul(x,D),i=(i=Math.imul(x,q))+Math.imul(I,D)|0,o=Math.imul(I,q),r=r+Math.imul(M,H)|0,i=(i=i+Math.imul(M,W)|0)+Math.imul(E,H)|0,o=o+Math.imul(E,W)|0,r=r+Math.imul(w,Y)|0,i=(i=i+Math.imul(w,J)|0)+Math.imul(_,Y)|0,o=o+Math.imul(_,J)|0,r=r+Math.imul(v,$)|0,i=(i=i+Math.imul(v,X)|0)+Math.imul(m,$)|0,o=o+Math.imul(m,X)|0,r=r+Math.imul(p,Q)|0,i=(i=i+Math.imul(p,tt)|0)+Math.imul(b,Q)|0,o=o+Math.imul(b,tt)|0;var _t=(f+(r=r+Math.imul(h,nt)|0)|0)+((8191&(i=(i=i+Math.imul(h,rt)|0)+Math.imul(d,nt)|0))<<13)|0;f=((o=o+Math.imul(d,rt)|0)+(i>>>13)|0)+(_t>>>26)|0,_t&=67108863,r=Math.imul(k,D),i=(i=Math.imul(k,q))+Math.imul(L,D)|0,o=Math.imul(L,q),r=r+Math.imul(x,H)|0,i=(i=i+Math.imul(x,W)|0)+Math.imul(I,H)|0,o=o+Math.imul(I,W)|0,r=r+Math.imul(M,Y)|0,i=(i=i+Math.imul(M,J)|0)+Math.imul(E,Y)|0,o=o+Math.imul(E,J)|0,r=r+Math.imul(w,$)|0,i=(i=i+Math.imul(w,X)|0)+Math.imul(_,$)|0,o=o+Math.imul(_,X)|0,r=r+Math.imul(v,Q)|0,i=(i=i+Math.imul(v,tt)|0)+Math.imul(m,Q)|0,o=o+Math.imul(m,tt)|0,r=r+Math.imul(p,nt)|0,i=(i=i+Math.imul(p,rt)|0)+Math.imul(b,nt)|0,o=o+Math.imul(b,rt)|0;var St=(f+(r=r+Math.imul(h,ot)|0)|0)+((8191&(i=(i=i+Math.imul(h,st)|0)+Math.imul(d,ot)|0))<<13)|0;f=((o=o+Math.imul(d,st)|0)+(i>>>13)|0)+(St>>>26)|0,St&=67108863,r=Math.imul(R,D),i=(i=Math.imul(R,q))+Math.imul(O,D)|0,o=Math.imul(O,q),r=r+Math.imul(k,H)|0,i=(i=i+Math.imul(k,W)|0)+Math.imul(L,H)|0,o=o+Math.imul(L,W)|0,r=r+Math.imul(x,Y)|0,i=(i=i+Math.imul(x,J)|0)+Math.imul(I,Y)|0,o=o+Math.imul(I,J)|0,r=r+Math.imul(M,$)|0,i=(i=i+Math.imul(M,X)|0)+Math.imul(E,$)|0,o=o+Math.imul(E,X)|0,r=r+Math.imul(w,Q)|0,i=(i=i+Math.imul(w,tt)|0)+Math.imul(_,Q)|0,o=o+Math.imul(_,tt)|0,r=r+Math.imul(v,nt)|0,i=(i=i+Math.imul(v,rt)|0)+Math.imul(m,nt)|0,o=o+Math.imul(m,rt)|0,r=r+Math.imul(p,ot)|0,i=(i=i+Math.imul(p,st)|0)+Math.imul(b,ot)|0,o=o+Math.imul(b,st)|0;var Mt=(f+(r=r+Math.imul(h,ut)|0)|0)+((8191&(i=(i=i+Math.imul(h,ft)|0)+Math.imul(d,ut)|0))<<13)|0;f=((o=o+Math.imul(d,ft)|0)+(i>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,r=Math.imul(z,D),i=(i=Math.imul(z,q))+Math.imul(P,D)|0,o=Math.imul(P,q),r=r+Math.imul(R,H)|0,i=(i=i+Math.imul(R,W)|0)+Math.imul(O,H)|0,o=o+Math.imul(O,W)|0,r=r+Math.imul(k,Y)|0,i=(i=i+Math.imul(k,J)|0)+Math.imul(L,Y)|0,o=o+Math.imul(L,J)|0,r=r+Math.imul(x,$)|0,i=(i=i+Math.imul(x,X)|0)+Math.imul(I,$)|0,o=o+Math.imul(I,X)|0,r=r+Math.imul(M,Q)|0,i=(i=i+Math.imul(M,tt)|0)+Math.imul(E,Q)|0,o=o+Math.imul(E,tt)|0,r=r+Math.imul(w,nt)|0,i=(i=i+Math.imul(w,rt)|0)+Math.imul(_,nt)|0,o=o+Math.imul(_,rt)|0,r=r+Math.imul(v,ot)|0,i=(i=i+Math.imul(v,st)|0)+Math.imul(m,ot)|0,o=o+Math.imul(m,st)|0,r=r+Math.imul(p,ut)|0,i=(i=i+Math.imul(p,ft)|0)+Math.imul(b,ut)|0,o=o+Math.imul(b,ft)|0;var Et=(f+(r=r+Math.imul(h,ht)|0)|0)+((8191&(i=(i=i+Math.imul(h,dt)|0)+Math.imul(d,ht)|0))<<13)|0;f=((o=o+Math.imul(d,dt)|0)+(i>>>13)|0)+(Et>>>26)|0,Et&=67108863,r=Math.imul(F,D),i=(i=Math.imul(F,q))+Math.imul(j,D)|0,o=Math.imul(j,q),r=r+Math.imul(z,H)|0,i=(i=i+Math.imul(z,W)|0)+Math.imul(P,H)|0,o=o+Math.imul(P,W)|0,r=r+Math.imul(R,Y)|0,i=(i=i+Math.imul(R,J)|0)+Math.imul(O,Y)|0,o=o+Math.imul(O,J)|0,r=r+Math.imul(k,$)|0,i=(i=i+Math.imul(k,X)|0)+Math.imul(L,$)|0,o=o+Math.imul(L,X)|0,r=r+Math.imul(x,Q)|0,i=(i=i+Math.imul(x,tt)|0)+Math.imul(I,Q)|0,o=o+Math.imul(I,tt)|0,r=r+Math.imul(M,nt)|0,i=(i=i+Math.imul(M,rt)|0)+Math.imul(E,nt)|0,o=o+Math.imul(E,rt)|0,r=r+Math.imul(w,ot)|0,i=(i=i+Math.imul(w,st)|0)+Math.imul(_,ot)|0,o=o+Math.imul(_,st)|0,r=r+Math.imul(v,ut)|0,i=(i=i+Math.imul(v,ft)|0)+Math.imul(m,ut)|0,o=o+Math.imul(m,ft)|0,r=r+Math.imul(p,ht)|0,i=(i=i+Math.imul(p,dt)|0)+Math.imul(b,ht)|0,o=o+Math.imul(b,dt)|0;var At=(f+(r=r+Math.imul(h,pt)|0)|0)+((8191&(i=(i=i+Math.imul(h,bt)|0)+Math.imul(d,pt)|0))<<13)|0;f=((o=o+Math.imul(d,bt)|0)+(i>>>13)|0)+(At>>>26)|0,At&=67108863,r=Math.imul(F,H),i=(i=Math.imul(F,W))+Math.imul(j,H)|0,o=Math.imul(j,W),r=r+Math.imul(z,Y)|0,i=(i=i+Math.imul(z,J)|0)+Math.imul(P,Y)|0,o=o+Math.imul(P,J)|0,r=r+Math.imul(R,$)|0,i=(i=i+Math.imul(R,X)|0)+Math.imul(O,$)|0,o=o+Math.imul(O,X)|0,r=r+Math.imul(k,Q)|0,i=(i=i+Math.imul(k,tt)|0)+Math.imul(L,Q)|0,o=o+Math.imul(L,tt)|0,r=r+Math.imul(x,nt)|0,i=(i=i+Math.imul(x,rt)|0)+Math.imul(I,nt)|0,o=o+Math.imul(I,rt)|0,r=r+Math.imul(M,ot)|0,i=(i=i+Math.imul(M,st)|0)+Math.imul(E,ot)|0,o=o+Math.imul(E,st)|0,r=r+Math.imul(w,ut)|0,i=(i=i+Math.imul(w,ft)|0)+Math.imul(_,ut)|0,o=o+Math.imul(_,ft)|0,r=r+Math.imul(v,ht)|0,i=(i=i+Math.imul(v,dt)|0)+Math.imul(m,ht)|0,o=o+Math.imul(m,dt)|0;var xt=(f+(r=r+Math.imul(p,pt)|0)|0)+((8191&(i=(i=i+Math.imul(p,bt)|0)+Math.imul(b,pt)|0))<<13)|0;f=((o=o+Math.imul(b,bt)|0)+(i>>>13)|0)+(xt>>>26)|0,xt&=67108863,r=Math.imul(F,Y),i=(i=Math.imul(F,J))+Math.imul(j,Y)|0,o=Math.imul(j,J),r=r+Math.imul(z,$)|0,i=(i=i+Math.imul(z,X)|0)+Math.imul(P,$)|0,o=o+Math.imul(P,X)|0,r=r+Math.imul(R,Q)|0,i=(i=i+Math.imul(R,tt)|0)+Math.imul(O,Q)|0,o=o+Math.imul(O,tt)|0,r=r+Math.imul(k,nt)|0,i=(i=i+Math.imul(k,rt)|0)+Math.imul(L,nt)|0,o=o+Math.imul(L,rt)|0,r=r+Math.imul(x,ot)|0,i=(i=i+Math.imul(x,st)|0)+Math.imul(I,ot)|0,o=o+Math.imul(I,st)|0,r=r+Math.imul(M,ut)|0,i=(i=i+Math.imul(M,ft)|0)+Math.imul(E,ut)|0,o=o+Math.imul(E,ft)|0,r=r+Math.imul(w,ht)|0,i=(i=i+Math.imul(w,dt)|0)+Math.imul(_,ht)|0,o=o+Math.imul(_,dt)|0;var It=(f+(r=r+Math.imul(v,pt)|0)|0)+((8191&(i=(i=i+Math.imul(v,bt)|0)+Math.imul(m,pt)|0))<<13)|0;f=((o=o+Math.imul(m,bt)|0)+(i>>>13)|0)+(It>>>26)|0,It&=67108863,r=Math.imul(F,$),i=(i=Math.imul(F,X))+Math.imul(j,$)|0,o=Math.imul(j,X),r=r+Math.imul(z,Q)|0,i=(i=i+Math.imul(z,tt)|0)+Math.imul(P,Q)|0,o=o+Math.imul(P,tt)|0,r=r+Math.imul(R,nt)|0,i=(i=i+Math.imul(R,rt)|0)+Math.imul(O,nt)|0,o=o+Math.imul(O,rt)|0,r=r+Math.imul(k,ot)|0,i=(i=i+Math.imul(k,st)|0)+Math.imul(L,ot)|0,o=o+Math.imul(L,st)|0,r=r+Math.imul(x,ut)|0,i=(i=i+Math.imul(x,ft)|0)+Math.imul(I,ut)|0,o=o+Math.imul(I,ft)|0,r=r+Math.imul(M,ht)|0,i=(i=i+Math.imul(M,dt)|0)+Math.imul(E,ht)|0,o=o+Math.imul(E,dt)|0;var Tt=(f+(r=r+Math.imul(w,pt)|0)|0)+((8191&(i=(i=i+Math.imul(w,bt)|0)+Math.imul(_,pt)|0))<<13)|0;f=((o=o+Math.imul(_,bt)|0)+(i>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,r=Math.imul(F,Q),i=(i=Math.imul(F,tt))+Math.imul(j,Q)|0,o=Math.imul(j,tt),r=r+Math.imul(z,nt)|0,i=(i=i+Math.imul(z,rt)|0)+Math.imul(P,nt)|0,o=o+Math.imul(P,rt)|0,r=r+Math.imul(R,ot)|0,i=(i=i+Math.imul(R,st)|0)+Math.imul(O,ot)|0,o=o+Math.imul(O,st)|0,r=r+Math.imul(k,ut)|0,i=(i=i+Math.imul(k,ft)|0)+Math.imul(L,ut)|0,o=o+Math.imul(L,ft)|0,r=r+Math.imul(x,ht)|0,i=(i=i+Math.imul(x,dt)|0)+Math.imul(I,ht)|0,o=o+Math.imul(I,dt)|0;var kt=(f+(r=r+Math.imul(M,pt)|0)|0)+((8191&(i=(i=i+Math.imul(M,bt)|0)+Math.imul(E,pt)|0))<<13)|0;f=((o=o+Math.imul(E,bt)|0)+(i>>>13)|0)+(kt>>>26)|0,kt&=67108863,r=Math.imul(F,nt),i=(i=Math.imul(F,rt))+Math.imul(j,nt)|0,o=Math.imul(j,rt),r=r+Math.imul(z,ot)|0,i=(i=i+Math.imul(z,st)|0)+Math.imul(P,ot)|0,o=o+Math.imul(P,st)|0,r=r+Math.imul(R,ut)|0,i=(i=i+Math.imul(R,ft)|0)+Math.imul(O,ut)|0,o=o+Math.imul(O,ft)|0,r=r+Math.imul(k,ht)|0,i=(i=i+Math.imul(k,dt)|0)+Math.imul(L,ht)|0,o=o+Math.imul(L,dt)|0;var Lt=(f+(r=r+Math.imul(x,pt)|0)|0)+((8191&(i=(i=i+Math.imul(x,bt)|0)+Math.imul(I,pt)|0))<<13)|0;f=((o=o+Math.imul(I,bt)|0)+(i>>>13)|0)+(Lt>>>26)|0,Lt&=67108863,r=Math.imul(F,ot),i=(i=Math.imul(F,st))+Math.imul(j,ot)|0,o=Math.imul(j,st),r=r+Math.imul(z,ut)|0,i=(i=i+Math.imul(z,ft)|0)+Math.imul(P,ut)|0,o=o+Math.imul(P,ft)|0,r=r+Math.imul(R,ht)|0,i=(i=i+Math.imul(R,dt)|0)+Math.imul(O,ht)|0,o=o+Math.imul(O,dt)|0;var Nt=(f+(r=r+Math.imul(k,pt)|0)|0)+((8191&(i=(i=i+Math.imul(k,bt)|0)+Math.imul(L,pt)|0))<<13)|0;f=((o=o+Math.imul(L,bt)|0)+(i>>>13)|0)+(Nt>>>26)|0,Nt&=67108863,r=Math.imul(F,ut),i=(i=Math.imul(F,ft))+Math.imul(j,ut)|0,o=Math.imul(j,ft),r=r+Math.imul(z,ht)|0,i=(i=i+Math.imul(z,dt)|0)+Math.imul(P,ht)|0,o=o+Math.imul(P,dt)|0;var Rt=(f+(r=r+Math.imul(R,pt)|0)|0)+((8191&(i=(i=i+Math.imul(R,bt)|0)+Math.imul(O,pt)|0))<<13)|0;f=((o=o+Math.imul(O,bt)|0)+(i>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,r=Math.imul(F,ht),i=(i=Math.imul(F,dt))+Math.imul(j,ht)|0,o=Math.imul(j,dt);var Ot=(f+(r=r+Math.imul(z,pt)|0)|0)+((8191&(i=(i=i+Math.imul(z,bt)|0)+Math.imul(P,pt)|0))<<13)|0;f=((o=o+Math.imul(P,bt)|0)+(i>>>13)|0)+(Ot>>>26)|0,Ot&=67108863;var Bt=(f+(r=Math.imul(F,pt))|0)+((8191&(i=(i=Math.imul(F,bt))+Math.imul(j,pt)|0))<<13)|0;return f=((o=Math.imul(j,bt))+(i>>>13)|0)+(Bt>>>26)|0,Bt&=67108863,u[0]=gt,u[1]=vt,u[2]=mt,u[3]=yt,u[4]=wt,u[5]=_t,u[6]=St,u[7]=Mt,u[8]=Et,u[9]=At,u[10]=xt,u[11]=It,u[12]=Tt,u[13]=kt,u[14]=Lt,u[15]=Nt,u[16]=Rt,u[17]=Ot,u[18]=Bt,0!==f&&(u[19]=f,n.length++),n};function p(t,e,n){return(new b).mulp(t,e,n)}function b(t,e){this.x=t,this.y=e}Math.imul||(l=d),o.prototype.mulTo=function(t,e){var n=this.length+t.length;return 10===this.length&&10===t.length?l(this,t,e):n<63?d(this,t,e):n<1024?function(t,e,n){n.negative=e.negative^t.negative,n.length=t.length+e.length;for(var r=0,i=0,o=0;o<n.length-1;o++){var s=i;i=0;for(var a=67108863&r,u=Math.min(o,e.length-1),f=Math.max(0,o-t.length+1);f<=u;f++){var c=o-f,h=(0|t.words[c])*(0|e.words[f]),d=67108863&h;a=67108863&(d=d+a|0),i+=(s=(s=s+(h/67108864|0)|0)+(d>>>26)|0)>>>26,s&=67108863}n.words[o]=a,r=s,s=i}return 0!==r?n.words[o]=r:n.length--,n.strip()}(this,t,e):p(this,t,e)},b.prototype.makeRBT=function(t){for(var e=new Array(t),n=o.prototype._countBits(t)-1,r=0;r<t;r++)e[r]=this.revBin(r,n,t);return e},b.prototype.revBin=function(t,e,n){if(0===t||t===n-1)return t;for(var r=0,i=0;i<e;i++)r|=(1&t)<<e-i-1,t>>=1;return r},b.prototype.permute=function(t,e,n,r,i,o){for(var s=0;s<o;s++)r[s]=e[t[s]],i[s]=n[t[s]]},b.prototype.transform=function(t,e,n,r,i,o){this.permute(o,t,e,n,r,i);for(var s=1;s<i;s<<=1)for(var a=s<<1,u=Math.cos(2*Math.PI/a),f=Math.sin(2*Math.PI/a),c=0;c<i;c+=a)for(var h=u,d=f,l=0;l<s;l++){var p=n[c+l],b=r[c+l],g=n[c+l+s],v=r[c+l+s],m=h*g-d*v;v=h*v+d*g,g=m,n[c+l]=p+g,r[c+l]=b+v,n[c+l+s]=p-g,r[c+l+s]=b-v,l!==a&&(m=u*h-f*d,d=u*d+f*h,h=m)}},b.prototype.guessLen13b=function(t,e){var n=1|Math.max(e,t),r=1&n,i=0;for(n=n/2|0;n;n>>>=1)i++;return 1<<i+1+r},b.prototype.conjugate=function(t,e,n){if(!(n<=1))for(var r=0;r<n/2;r++){var i=t[r];t[r]=t[n-r-1],t[n-r-1]=i,i=e[r],e[r]=-e[n-r-1],e[n-r-1]=-i}},b.prototype.normalize13b=function(t,e){for(var n=0,r=0;r<e/2;r++){var i=8192*Math.round(t[2*r+1]/e)+Math.round(t[2*r]/e)+n;t[r]=67108863&i,n=i<67108864?0:i/67108864|0}return t},b.prototype.convert13b=function(t,e,n,i){for(var o=0,s=0;s<e;s++)o+=0|t[s],n[2*s]=8191&o,o>>>=13,n[2*s+1]=8191&o,o>>>=13;for(s=2*e;s<i;++s)n[s]=0;r(0===o),r(0==(-8192&o))},b.prototype.stub=function(t){for(var e=new Array(t),n=0;n<t;n++)e[n]=0;return e},b.prototype.mulp=function(t,e,n){var r=2*this.guessLen13b(t.length,e.length),i=this.makeRBT(r),o=this.stub(r),s=new Array(r),a=new Array(r),u=new Array(r),f=new Array(r),c=new Array(r),h=new Array(r),d=n.words;d.length=r,this.convert13b(t.words,t.length,s,r),this.convert13b(e.words,e.length,f,r),this.transform(s,o,a,u,r,i),this.transform(f,o,c,h,r,i);for(var l=0;l<r;l++){var p=a[l]*c[l]-u[l]*h[l];u[l]=a[l]*h[l]+u[l]*c[l],a[l]=p}return this.conjugate(a,u,r),this.transform(a,u,d,o,r,i),this.conjugate(d,o,r),this.normalize13b(d,r),n.negative=t.negative^e.negative,n.length=t.length+e.length,n.strip()},o.prototype.mul=function(t){var e=new o(null);return e.words=new Array(this.length+t.length),this.mulTo(t,e)},o.prototype.mulf=function(t){var e=new o(null);return e.words=new Array(this.length+t.length),p(this,t,e)},o.prototype.imul=function(t){return this.clone().mulTo(t,this)},o.prototype.imuln=function(t){r("number"==typeof t),r(t<67108864);for(var e=0,n=0;n<this.length;n++){var i=(0|this.words[n])*t,o=(67108863&i)+(67108863&e);e>>=26,e+=i/67108864|0,e+=o>>>26,this.words[n]=67108863&o}return 0!==e&&(this.words[n]=e,this.length++),this},o.prototype.muln=function(t){return this.clone().imuln(t)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(t){var e=function(t){for(var e=new Array(t.bitLength()),n=0;n<e.length;n++){var r=n/26|0,i=n%26;e[n]=(t.words[r]&1<<i)>>>i}return e}(t);if(0===e.length)return new o(1);for(var n=this,r=0;r<e.length&&0===e[r];r++,n=n.sqr());if(++r<e.length)for(var i=n.sqr();r<e.length;r++,i=i.sqr())0!==e[r]&&(n=n.mul(i));return n},o.prototype.iushln=function(t){r("number"==typeof t&&t>=0);var e,n=t%26,i=(t-n)/26,o=67108863>>>26-n<<26-n;if(0!==n){var s=0;for(e=0;e<this.length;e++){var a=this.words[e]&o,u=(0|this.words[e])-a<<n;this.words[e]=u|s,s=a>>>26-n}s&&(this.words[e]=s,this.length++)}if(0!==i){for(e=this.length-1;e>=0;e--)this.words[e+i]=this.words[e];for(e=0;e<i;e++)this.words[e]=0;this.length+=i}return this.strip()},o.prototype.ishln=function(t){return r(0===this.negative),this.iushln(t)},o.prototype.iushrn=function(t,e,n){var i;r("number"==typeof t&&t>=0),i=e?(e-e%26)/26:0;var o=t%26,s=Math.min((t-o)/26,this.length),a=67108863^67108863>>>o<<o,u=n;if(i-=s,i=Math.max(0,i),u){for(var f=0;f<s;f++)u.words[f]=this.words[f];u.length=s}if(0===s);else if(this.length>s)for(this.length-=s,f=0;f<this.length;f++)this.words[f]=this.words[f+s];else this.words[0]=0,this.length=1;var c=0;for(f=this.length-1;f>=0&&(0!==c||f>=i);f--){var h=0|this.words[f];this.words[f]=c<<26-o|h>>>o,c=h&a}return u&&0!==c&&(u.words[u.length++]=c),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(t,e,n){return r(0===this.negative),this.iushrn(t,e,n)},o.prototype.shln=function(t){return this.clone().ishln(t)},o.prototype.ushln=function(t){return this.clone().iushln(t)},o.prototype.shrn=function(t){return this.clone().ishrn(t)},o.prototype.ushrn=function(t){return this.clone().iushrn(t)},o.prototype.testn=function(t){r("number"==typeof t&&t>=0);var e=t%26,n=(t-e)/26,i=1<<e;return!(this.length<=n)&&!!(this.words[n]&i)},o.prototype.imaskn=function(t){r("number"==typeof t&&t>=0);var e=t%26,n=(t-e)/26;if(r(0===this.negative,"imaskn works only with positive numbers"),this.length<=n)return this;if(0!==e&&n++,this.length=Math.min(n,this.length),0!==e){var i=67108863^67108863>>>e<<e;this.words[this.length-1]&=i}return this.strip()},o.prototype.maskn=function(t){return this.clone().imaskn(t)},o.prototype.iaddn=function(t){return r("number"==typeof t),r(t<67108864),t<0?this.isubn(-t):0!==this.negative?1===this.length&&(0|this.words[0])<t?(this.words[0]=t-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(t),this.negative=1,this):this._iaddn(t)},o.prototype._iaddn=function(t){this.words[0]+=t;for(var e=0;e<this.length&&this.words[e]>=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},o.prototype.isubn=function(t){if(r("number"==typeof t),r(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e<this.length&&this.words[e]<0;e++)this.words[e]+=67108864,this.words[e+1]-=1;return this.strip()},o.prototype.addn=function(t){return this.clone().iaddn(t)},o.prototype.subn=function(t){return this.clone().isubn(t)},o.prototype.iabs=function(){return this.negative=0,this},o.prototype.abs=function(){return this.clone().iabs()},o.prototype._ishlnsubmul=function(t,e,n){var i,o,s=t.length+n;this._expand(s);var a=0;for(i=0;i<t.length;i++){o=(0|this.words[i+n])+a;var u=(0|t.words[i])*e;a=((o-=67108863&u)>>26)-(u/67108864|0),this.words[i+n]=67108863&o}for(;i<this.length-n;i++)a=(o=(0|this.words[i+n])+a)>>26,this.words[i+n]=67108863&o;if(0===a)return this.strip();for(r(-1===a),a=0,i=0;i<this.length;i++)a=(o=-(0|this.words[i])+a)>>26,this.words[i]=67108863&o;return this.negative=1,this.strip()},o.prototype._wordDiv=function(t,e){var n=(this.length,t.length),r=this.clone(),i=t,s=0|i.words[i.length-1];0!==(n=26-this._countBits(s))&&(i=i.ushln(n),r.iushln(n),s=0|i.words[i.length-1]);var a,u=r.length-i.length;if("mod"!==e){(a=new o(null)).length=u+1,a.words=new Array(a.length);for(var f=0;f<a.length;f++)a.words[f]=0}var c=r.clone()._ishlnsubmul(i,1,u);0===c.negative&&(r=c,a&&(a.words[u]=1));for(var h=u-1;h>=0;h--){var d=67108864*(0|r.words[i.length+h])+(0|r.words[i.length+h-1]);for(d=Math.min(d/s|0,67108863),r._ishlnsubmul(i,d,h);0!==r.negative;)d--,r.negative=0,r._ishlnsubmul(i,1,h),r.isZero()||(r.negative^=1);a&&(a.words[h]=d)}return a&&a.strip(),r.strip(),"div"!==e&&0!==n&&r.iushrn(n),{div:a||null,mod:r}},o.prototype.divmod=function(t,e,n){return r(!t.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===t.negative?(a=this.neg().divmod(t,e),"mod"!==e&&(i=a.div.neg()),"div"!==e&&(s=a.mod.neg(),n&&0!==s.negative&&s.iadd(t)),{div:i,mod:s}):0===this.negative&&0!==t.negative?(a=this.divmod(t.neg(),e),"mod"!==e&&(i=a.div.neg()),{div:i,mod:a.mod}):0!=(this.negative&t.negative)?(a=this.neg().divmod(t.neg(),e),"div"!==e&&(s=a.mod.neg(),n&&0!==s.negative&&s.isub(t)),{div:a.div,mod:s}):t.length>this.length||this.cmp(t)<0?{div:new o(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new o(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new o(this.modn(t.words[0]))}:this._wordDiv(t,e);var i,s,a},o.prototype.div=function(t){return this.divmod(t,"div",!1).div},o.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},o.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},o.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var n=0!==e.div.negative?e.mod.isub(t):e.mod,r=t.ushrn(1),i=t.andln(1),o=n.cmp(r);return o<0||1===i&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},o.prototype.modn=function(t){r(t<=67108863);for(var e=(1<<26)%t,n=0,i=this.length-1;i>=0;i--)n=(e*n+(0|this.words[i]))%t;return n},o.prototype.idivn=function(t){r(t<=67108863);for(var e=0,n=this.length-1;n>=0;n--){var i=(0|this.words[n])+67108864*e;this.words[n]=i/t|0,e=i%t}return this.strip()},o.prototype.divn=function(t){return this.clone().idivn(t)},o.prototype.egcd=function(t){r(0===t.negative),r(!t.isZero());var e=this,n=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var i=new o(1),s=new o(0),a=new o(0),u=new o(1),f=0;e.isEven()&&n.isEven();)e.iushrn(1),n.iushrn(1),++f;for(var c=n.clone(),h=e.clone();!e.isZero();){for(var d=0,l=1;0==(e.words[0]&l)&&d<26;++d,l<<=1);if(d>0)for(e.iushrn(d);d-- >0;)(i.isOdd()||s.isOdd())&&(i.iadd(c),s.isub(h)),i.iushrn(1),s.iushrn(1);for(var p=0,b=1;0==(n.words[0]&b)&&p<26;++p,b<<=1);if(p>0)for(n.iushrn(p);p-- >0;)(a.isOdd()||u.isOdd())&&(a.iadd(c),u.isub(h)),a.iushrn(1),u.iushrn(1);e.cmp(n)>=0?(e.isub(n),i.isub(a),s.isub(u)):(n.isub(e),a.isub(i),u.isub(s))}return{a:a,b:u,gcd:n.iushln(f)}},o.prototype._invmp=function(t){r(0===t.negative),r(!t.isZero());var e=this,n=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var i,s=new o(1),a=new o(0),u=n.clone();e.cmpn(1)>0&&n.cmpn(1)>0;){for(var f=0,c=1;0==(e.words[0]&c)&&f<26;++f,c<<=1);if(f>0)for(e.iushrn(f);f-- >0;)s.isOdd()&&s.iadd(u),s.iushrn(1);for(var h=0,d=1;0==(n.words[0]&d)&&h<26;++h,d<<=1);if(h>0)for(n.iushrn(h);h-- >0;)a.isOdd()&&a.iadd(u),a.iushrn(1);e.cmp(n)>=0?(e.isub(n),s.isub(a)):(n.isub(e),a.isub(s))}return(i=0===e.cmpn(1)?s:a).cmpn(0)<0&&i.iadd(t),i},o.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),n=t.clone();e.negative=0,n.negative=0;for(var r=0;e.isEven()&&n.isEven();r++)e.iushrn(1),n.iushrn(1);for(;;){for(;e.isEven();)e.iushrn(1);for(;n.isEven();)n.iushrn(1);var i=e.cmp(n);if(i<0){var o=e;e=n,n=o}else if(0===i||0===n.cmpn(1))break;e.isub(n)}return n.iushln(r)},o.prototype.invm=function(t){return this.egcd(t).a.umod(t)},o.prototype.isEven=function(){return 0==(1&this.words[0])},o.prototype.isOdd=function(){return 1==(1&this.words[0])},o.prototype.andln=function(t){return this.words[0]&t},o.prototype.bincn=function(t){r("number"==typeof t);var e=t%26,n=(t-e)/26,i=1<<e;if(this.length<=n)return this._expand(n+1),this.words[n]|=i,this;for(var o=i,s=n;0!==o&&s<this.length;s++){var a=0|this.words[s];o=(a+=o)>>>26,a&=67108863,this.words[s]=a}return 0!==o&&(this.words[s]=o,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(t){var e,n=t<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this.strip(),this.length>1)e=1;else{n&&(t=-t),r(t<=67108863,"Number is too big");var i=0|this.words[0];e=i===t?0:i<t?-1:1}return 0!==this.negative?0|-e:e},o.prototype.cmp=function(t){if(0!==this.negative&&0===t.negative)return-1;if(0===this.negative&&0!==t.negative)return 1;var e=this.ucmp(t);return 0!==this.negative?0|-e:e},o.prototype.ucmp=function(t){if(this.length>t.length)return 1;if(this.length<t.length)return-1;for(var e=0,n=this.length-1;n>=0;n--){var r=0|this.words[n],i=0|t.words[n];if(r!==i){r<i?e=-1:r>i&&(e=1);break}}return e},o.prototype.gtn=function(t){return 1===this.cmpn(t)},o.prototype.gt=function(t){return 1===this.cmp(t)},o.prototype.gten=function(t){return this.cmpn(t)>=0},o.prototype.gte=function(t){return this.cmp(t)>=0},o.prototype.ltn=function(t){return-1===this.cmpn(t)},o.prototype.lt=function(t){return-1===this.cmp(t)},o.prototype.lten=function(t){return this.cmpn(t)<=0},o.prototype.lte=function(t){return this.cmp(t)<=0},o.prototype.eqn=function(t){return 0===this.cmpn(t)},o.prototype.eq=function(t){return 0===this.cmp(t)},o.red=function(t){return new S(t)},o.prototype.toRed=function(t){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},o.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(t){return this.red=t,this},o.prototype.forceRed=function(t){return r(!this.red,"Already a number in reduction context"),this._forceRed(t)},o.prototype.redAdd=function(t){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},o.prototype.redIAdd=function(t){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},o.prototype.redSub=function(t){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},o.prototype.redISub=function(t){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},o.prototype.redShl=function(t){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},o.prototype.redMul=function(t){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},o.prototype.redIMul=function(t){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},o.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(t){return r(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var g={k256:null,p224:null,p192:null,p25519:null};function v(t,e){this.name=t,this.p=new o(e,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function m(){v.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function y(){v.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function w(){v.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function _(){v.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function S(t){if("string"==typeof t){var e=o._prime(t);this.m=e.p,this.prime=e}else r(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function M(t){S.call(this,t),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}v.prototype._tmp=function(){var t=new o(null);return t.words=new Array(Math.ceil(this.n/13)),t},v.prototype.ireduce=function(t){var e,n=t;do{this.split(n,this.tmp),e=(n=(n=this.imulK(n)).iadd(this.tmp)).bitLength()}while(e>this.n);var r=e<this.n?-1:n.ucmp(this.p);return 0===r?(n.words[0]=0,n.length=1):r>0?n.isub(this.p):n.strip(),n},v.prototype.split=function(t,e){t.iushrn(this.n,0,e)},v.prototype.imulK=function(t){return t.imul(this.k)},i(m,v),m.prototype.split=function(t,e){for(var n=Math.min(t.length,9),r=0;r<n;r++)e.words[r]=t.words[r];if(e.length=n,t.length<=9)return t.words[0]=0,void(t.length=1);var i=t.words[9];for(e.words[e.length++]=4194303&i,r=10;r<t.length;r++){var o=0|t.words[r];t.words[r-10]=(4194303&o)<<4|i>>>22,i=o}i>>>=22,t.words[r-10]=i,0===i&&t.length>10?t.length-=10:t.length-=9},m.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,n=0;n<t.length;n++){var r=0|t.words[n];e+=977*r,t.words[n]=67108863&e,e=64*r+(e/67108864|0)}return 0===t.words[t.length-1]&&(t.length--,0===t.words[t.length-1]&&t.length--),t},i(y,v),i(w,v),i(_,v),_.prototype.imulK=function(t){for(var e=0,n=0;n<t.length;n++){var r=19*(0|t.words[n])+e,i=67108863&r;r>>>=26,t.words[n]=i,e=r}return 0!==e&&(t.words[t.length++]=e),t},o._prime=function(t){if(g[t])return g[t];var e;if("k256"===t)e=new m;else if("p224"===t)e=new y;else if("p192"===t)e=new w;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new _}return g[t]=e,e},S.prototype._verify1=function(t){r(0===t.negative,"red works only with positives"),r(t.red,"red works only with red numbers")},S.prototype._verify2=function(t,e){r(0==(t.negative|e.negative),"red works only with positives"),r(t.red&&t.red===e.red,"red works only with red numbers")},S.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},S.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},S.prototype.add=function(t,e){this._verify2(t,e);var n=t.add(e);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},S.prototype.iadd=function(t,e){this._verify2(t,e);var n=t.iadd(e);return n.cmp(this.m)>=0&&n.isub(this.m),n},S.prototype.sub=function(t,e){this._verify2(t,e);var n=t.sub(e);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},S.prototype.isub=function(t,e){this._verify2(t,e);var n=t.isub(e);return n.cmpn(0)<0&&n.iadd(this.m),n},S.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},S.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},S.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},S.prototype.isqr=function(t){return this.imul(t,t.clone())},S.prototype.sqr=function(t){return this.mul(t,t)},S.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(r(e%2==1),3===e){var n=this.m.add(new o(1)).iushrn(2);return this.pow(t,n)}for(var i=this.m.subn(1),s=0;!i.isZero()&&0===i.andln(1);)s++,i.iushrn(1);r(!i.isZero());var a=new o(1).toRed(this),u=a.redNeg(),f=this.m.subn(1).iushrn(1),c=this.m.bitLength();for(c=new o(2*c*c).toRed(this);0!==this.pow(c,f).cmp(u);)c.redIAdd(u);for(var h=this.pow(c,i),d=this.pow(t,i.addn(1).iushrn(1)),l=this.pow(t,i),p=s;0!==l.cmp(a);){for(var b=l,g=0;0!==b.cmp(a);g++)b=b.redSqr();r(g<p);var v=this.pow(h,new o(1).iushln(p-g-1));d=d.redMul(v),h=v.redSqr(),l=l.redMul(h),p=g}return d},S.prototype.invm=function(t){var e=t._invmp(this.m);return 0!==e.negative?(e.negative=0,this.imod(e).redNeg()):this.imod(e)},S.prototype.pow=function(t,e){if(e.isZero())return new o(1).toRed(this);if(0===e.cmpn(1))return t.clone();var n=new Array(16);n[0]=new o(1).toRed(this),n[1]=t;for(var r=2;r<n.length;r++)n[r]=this.mul(n[r-1],t);var i=n[0],s=0,a=0,u=e.bitLength()%26;for(0===u&&(u=26),r=e.length-1;r>=0;r--){for(var f=e.words[r],c=u-1;c>=0;c--){var h=f>>c&1;i!==n[0]&&(i=this.sqr(i)),0!==h||0!==s?(s<<=1,s|=h,(4===++a||0===r&&0===c)&&(i=this.mul(i,n[s]),a=0,s=0)):a=0}u=26}return i},S.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},S.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},o.mont=function(t){return new M(t)},i(M,S),M.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},M.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},M.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var n=t.imul(e),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=n.isub(r).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},M.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new o(0)._forceRed(this);var n=t.mul(e),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=n.isub(r).iushrn(this.shift),s=i;return i.cmp(this.m)>=0?s=i.isub(this.m):i.cmpn(0)<0&&(s=i.iadd(this.m)),s._forceRed(this)},M.prototype.invm=function(t){return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this)}}(t,this)}).call(this,n(27)(t))},function(t,e){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(t){"object"==typeof window&&(n=window)}t.exports=n},function(t,e,n){"use strict";var r=n(3),i=r.bytesToHex,o=r.slice,s=n(37).BytesList,a={toBytesSink:function(t){t.put(this._bytes)},toHex:function(){return i(this.toBytes())},toBytes:function(){if(this._bytes)return o(this._bytes);var t=new s;return this.toBytesSink(t),t.toBytes()},toJSON:function(){return this.toHex()},toString:function(){return this.toHex()}};t.exports={ensureArrayLikeIs:function(t,e){return{withChildren:function(n){if(e instanceof t)return e;for(var r=new t,i=0;i<e.length;i++)r.push(n.from(e[i]));return r}}},SerializedType:a,Comparable:{lt:function(t){return this.compareTo(t)<0},eq:function(t){return 0===this.compareTo(t)},gt:function(t){return this.compareTo(t)>0},gte:function(t){return this.compareTo(t)>-1},lte:function(t){return this.compareTo(t)<1}}}},function(t,e,n){(function(t){!function(t,e){"use strict";function r(t,e){if(!t)throw new Error(e||"Assertion failed")}function i(t,e){t.super_=e;var n=function(){};n.prototype=e.prototype,t.prototype=new n,t.prototype.constructor=t}function o(t,e,n){if(o.isBN(t))return t;this.negative=0,this.words=null,this.length=0,this.red=null,null!==t&&("le"!==e&&"be"!==e||(n=e,e=10),this._init(t||0,e||10,n||"be"))}var s;"object"==typeof t?t.exports=o:e.BN=o,o.BN=o,o.wordSize=26;try{s=n(97).Buffer}catch(t){}function a(t,e,n){for(var i=0,o=Math.min(t.length,n),s=0,a=e;a<o;a++){var u,f=t.charCodeAt(a)-48;i<<=4,i|=u=f>=49&&f<=54?f-49+10:f>=17&&f<=22?f-17+10:f,s|=u}return r(!(240&s),"Invalid character in "+t),i}function u(t,e,n,i){for(var o=0,s=0,a=Math.min(t.length,n),u=e;u<a;u++){var f=t.charCodeAt(u)-48;o*=i,s=f>=49?f-49+10:f>=17?f-17+10:f,r(f>=0&&s<i,"Invalid character"),o+=s}return o}function f(t,e){t.words=e.words,t.length=e.length,t.negative=e.negative,t.red=e.red}function c(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"}o.isBN=function(t){return t instanceof o||null!==t&&"object"==typeof t&&t.constructor.wordSize===o.wordSize&&Array.isArray(t.words)},o.max=function(t,e){return t.cmp(e)>0?t:e},o.min=function(t,e){return t.cmp(e)<0?t:e},o.prototype._init=function(t,e,n){if("number"==typeof t)return this._initNumber(t,e,n);if("object"==typeof t)return this._initArray(t,e,n);"hex"===e&&(e=16),r(e===(0|e)&&e>=2&&e<=36);var i=0;"-"===(t=t.toString().replace(/\s+/g,""))[0]&&i++,16===e?this._parseHex(t,i):this._parseBase(t,e,i),"-"===t[0]&&(this.negative=1),this._strip(),"le"===n&&this._initArray(this.toArray(),e,n)},o.prototype._initNumber=function(t,e,n){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(r(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),"le"===n&&this._initArray(this.toArray(),e,n)},o.prototype._initArray=function(t,e,n){if(r("number"==typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var i=0;i<this.length;i++)this.words[i]=0;var o,s,a=0;if("be"===n)for(i=t.length-1,o=0;i>=0;i-=3)s=t[i]|t[i-1]<<8|t[i-2]<<16,this.words[o]|=s<<a&67108863,this.words[o+1]=s>>>26-a&67108863,(a+=24)>=26&&(a-=26,o++);else if("le"===n)for(i=0,o=0;i<t.length;i+=3)s=t[i]|t[i+1]<<8|t[i+2]<<16,this.words[o]|=s<<a&67108863,this.words[o+1]=s>>>26-a&67108863,(a+=24)>=26&&(a-=26,o++);return this._strip()},o.prototype._parseHex=function(t,e){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var n=0;n<this.length;n++)this.words[n]=0;var r,i,o=0;for(n=t.length-6,r=0;n>=e;n-=6)i=a(t,n,n+6),this.words[r]|=i<<o&67108863,this.words[r+1]|=i>>>26-o&4194303,(o+=24)>=26&&(o-=26,r++);n+6!==e&&(i=a(t,e,n+6),this.words[r]|=i<<o&67108863,this.words[r+1]|=i>>>26-o&4194303),this._strip()},o.prototype._parseBase=function(t,e,n){this.words=[0],this.length=1;for(var r=0,i=1;i<=67108863;i*=e)r++;r--,i=i/e|0;for(var o=t.length-n,s=o%r,a=Math.min(o,o-s)+n,f=0,c=n;c<a;c+=r)f=u(t,c,c+r,e),this.imuln(i),this.words[0]+f<67108864?this.words[0]+=f:this._iaddn(f);if(0!==s){var h=1;for(f=u(t,c,t.length,e),c=0;c<s;c++)h*=e;this.imuln(h),this.words[0]+f<67108864?this.words[0]+=f:this._iaddn(f)}},o.prototype.copy=function(t){t.words=new Array(this.length);for(var e=0;e<this.length;e++)t.words[e]=this.words[e];t.length=this.length,t.negative=this.negative,t.red=this.red},o.prototype._move=function(t){f(t,this)},o.prototype.clone=function(){var t=new o(null);return this.copy(t),t},o.prototype._expand=function(t){for(;this.length<t;)this.words[this.length++]=0;return this},o.prototype._strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},"undefined"!=typeof Symbol&&"function"==typeof Symbol.for?o.prototype[Symbol.for("nodejs.util.inspect.custom")]=c:o.prototype.inspect=c;var h=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],d=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],l=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];o.prototype.toString=function(t,e){var n;if(e=0|e||1,16===(t=t||10)||"hex"===t){n="";for(var i=0,o=0,s=0;s<this.length;s++){var a=this.words[s],u=(16777215&(a<<i|o)).toString(16);n=0!==(o=a>>>24-i&16777215)||s!==this.length-1?h[6-u.length]+u+n:u+n,(i+=2)>=26&&(i-=26,s--)}for(0!==o&&(n=o.toString(16)+n);n.length%e!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(t===(0|t)&&t>=2&&t<=36){var f=d[t],c=l[t];n="";var p=this.clone();for(p.negative=0;!p.isZero();){var b=p.modrn(c).toString(t);n=(p=p.idivn(c)).isZero()?b+n:h[f-b.length]+b+n}for(this.isZero()&&(n="0"+n);n.length%e!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}r(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},o.prototype.toJSON=function(){return this.toString(16,2)},s&&(o.prototype.toBuffer=function(t,e){return this.toArrayLike(s,t,e)}),o.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)};function p(t,e,n){n.negative=e.negative^t.negative;var r=t.length+e.length|0;n.length=r,r=r-1|0;var i=0|t.words[0],o=0|e.words[0],s=i*o,a=67108863&s,u=s/67108864|0;n.words[0]=a;for(var f=1;f<r;f++){for(var c=u>>>26,h=67108863&u,d=Math.min(f,e.length-1),l=Math.max(0,f-t.length+1);l<=d;l++){var p=f-l|0;c+=(s=(i=0|t.words[p])*(o=0|e.words[l])+h)/67108864|0,h=67108863&s}n.words[f]=0|h,u=0|c}return 0!==u?n.words[f]=0|u:n.length--,n._strip()}o.prototype.toArrayLike=function(t,e,n){this._strip();var i=this.byteLength(),o=n||Math.max(1,i);r(i<=o,"byte array longer than desired length"),r(o>0,"Requested array length <= 0");var s=function(t,e){return t.allocUnsafe?t.allocUnsafe(e):new t(e)}(t,o);return this["_toArrayLike"+("le"===e?"LE":"BE")](s,i),s},o.prototype._toArrayLikeLE=function(t,e){for(var n=0,r=0,i=0,o=0;i<this.length;i++){var s=this.words[i]<<o|r;t[n++]=255&s,n<t.length&&(t[n++]=s>>8&255),n<t.length&&(t[n++]=s>>16&255),6===o?(n<t.length&&(t[n++]=s>>24&255),r=0,o=0):(r=s>>>24,o+=2)}if(n<t.length)for(t[n++]=r;n<t.length;)t[n++]=0},o.prototype._toArrayLikeBE=function(t,e){for(var n=t.length-1,r=0,i=0,o=0;i<this.length;i++){var s=this.words[i]<<o|r;t[n--]=255&s,n>=0&&(t[n--]=s>>8&255),n>=0&&(t[n--]=s>>16&255),6===o?(n>=0&&(t[n--]=s>>24&255),r=0,o=0):(r=s>>>24,o+=2)}if(n>=0)for(t[n--]=r;n>=0;)t[n--]=0},Math.clz32?o.prototype._countBits=function(t){return 32-Math.clz32(t)}:o.prototype._countBits=function(t){var e=t,n=0;return e>=4096&&(n+=13,e>>>=13),e>=64&&(n+=7,e>>>=7),e>=8&&(n+=4,e>>>=4),e>=2&&(n+=2,e>>>=2),n+e},o.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,n=0;return 0==(8191&e)&&(n+=13,e>>>=13),0==(127&e)&&(n+=7,e>>>=7),0==(15&e)&&(n+=4,e>>>=4),0==(3&e)&&(n+=2,e>>>=2),0==(1&e)&&n++,n},o.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;e<this.length;e++){var n=this._zeroBits(this.words[e]);if(t+=n,26!==n)break}return t},o.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},o.prototype.toTwos=function(t){return 0!==this.negative?this.abs().inotn(t).iaddn(1):this.clone()},o.prototype.fromTwos=function(t){return this.testn(t-1)?this.notn(t).iaddn(1).ineg():this.clone()},o.prototype.isNeg=function(){return 0!==this.negative},o.prototype.neg=function(){return this.clone().ineg()},o.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},o.prototype.iuor=function(t){for(;this.length<t.length;)this.words[this.length++]=0;for(var e=0;e<t.length;e++)this.words[e]=this.words[e]|t.words[e];return this._strip()},o.prototype.ior=function(t){return r(0==(this.negative|t.negative)),this.iuor(t)},o.prototype.or=function(t){return this.length>t.length?this.clone().ior(t):t.clone().ior(this)},o.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},o.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var n=0;n<e.length;n++)this.words[n]=this.words[n]&t.words[n];return this.length=e.length,this._strip()},o.prototype.iand=function(t){return r(0==(this.negative|t.negative)),this.iuand(t)},o.prototype.and=function(t){return this.length>t.length?this.clone().iand(t):t.clone().iand(this)},o.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},o.prototype.iuxor=function(t){var e,n;this.length>t.length?(e=this,n=t):(e=t,n=this);for(var r=0;r<n.length;r++)this.words[r]=e.words[r]^n.words[r];if(this!==e)for(;r<e.length;r++)this.words[r]=e.words[r];return this.length=e.length,this._strip()},o.prototype.ixor=function(t){return r(0==(this.negative|t.negative)),this.iuxor(t)},o.prototype.xor=function(t){return this.length>t.length?this.clone().ixor(t):t.clone().ixor(this)},o.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},o.prototype.inotn=function(t){r("number"==typeof t&&t>=0);var e=0|Math.ceil(t/26),n=t%26;this._expand(e),n>0&&e--;for(var i=0;i<e;i++)this.words[i]=67108863&~this.words[i];return n>0&&(this.words[i]=~this.words[i]&67108863>>26-n),this._strip()},o.prototype.notn=function(t){return this.clone().inotn(t)},o.prototype.setn=function(t,e){r("number"==typeof t&&t>=0);var n=t/26|0,i=t%26;return this._expand(n+1),this.words[n]=e?this.words[n]|1<<i:this.words[n]&~(1<<i),this._strip()},o.prototype.iadd=function(t){var e,n,r;if(0!==this.negative&&0===t.negative)return this.negative=0,e=this.isub(t),this.negative^=1,this._normSign();if(0===this.negative&&0!==t.negative)return t.negative=0,e=this.isub(t),t.negative=1,e._normSign();this.length>t.length?(n=this,r=t):(n=t,r=this);for(var i=0,o=0;o<r.length;o++)e=(0|n.words[o])+(0|r.words[o])+i,this.words[o]=67108863&e,i=e>>>26;for(;0!==i&&o<n.length;o++)e=(0|n.words[o])+i,this.words[o]=67108863&e,i=e>>>26;if(this.length=n.length,0!==i)this.words[this.length]=i,this.length++;else if(n!==this)for(;o<n.length;o++)this.words[o]=n.words[o];return this},o.prototype.add=function(t){var e;return 0!==t.negative&&0===this.negative?(t.negative=0,e=this.sub(t),t.negative^=1,e):0===t.negative&&0!==this.negative?(this.negative=0,e=t.sub(this),this.negative=1,e):this.length>t.length?this.clone().iadd(t):t.clone().iadd(this)},o.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var n,r,i=this.cmp(t);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(n=this,r=t):(n=t,r=this);for(var o=0,s=0;s<r.length;s++)o=(e=(0|n.words[s])-(0|r.words[s])+o)>>26,this.words[s]=67108863&e;for(;0!==o&&s<n.length;s++)o=(e=(0|n.words[s])+o)>>26,this.words[s]=67108863&e;if(0===o&&s<n.length&&n!==this)for(;s<n.length;s++)this.words[s]=n.words[s];return this.length=Math.max(this.length,s),n!==this&&(this.negative=1),this._strip()},o.prototype.sub=function(t){return this.clone().isub(t)};var b=function(t,e,n){var r,i,o,s=t.words,a=e.words,u=n.words,f=0,c=0|s[0],h=8191&c,d=c>>>13,l=0|s[1],p=8191&l,b=l>>>13,g=0|s[2],v=8191&g,m=g>>>13,y=0|s[3],w=8191&y,_=y>>>13,S=0|s[4],M=8191&S,E=S>>>13,A=0|s[5],x=8191&A,I=A>>>13,T=0|s[6],k=8191&T,L=T>>>13,N=0|s[7],R=8191&N,O=N>>>13,B=0|s[8],z=8191&B,P=B>>>13,U=0|s[9],F=8191&U,j=U>>>13,C=0|a[0],D=8191&C,q=C>>>13,V=0|a[1],H=8191&V,W=V>>>13,Z=0|a[2],Y=8191&Z,J=Z>>>13,K=0|a[3],$=8191&K,X=K>>>13,G=0|a[4],Q=8191&G,tt=G>>>13,et=0|a[5],nt=8191&et,rt=et>>>13,it=0|a[6],ot=8191&it,st=it>>>13,at=0|a[7],ut=8191&at,ft=at>>>13,ct=0|a[8],ht=8191&ct,dt=ct>>>13,lt=0|a[9],pt=8191<,bt=lt>>>13;n.negative=t.negative^e.negative,n.length=19;var gt=(f+(r=Math.imul(h,D))|0)+((8191&(i=(i=Math.imul(h,q))+Math.imul(d,D)|0))<<13)|0;f=((o=Math.imul(d,q))+(i>>>13)|0)+(gt>>>26)|0,gt&=67108863,r=Math.imul(p,D),i=(i=Math.imul(p,q))+Math.imul(b,D)|0,o=Math.imul(b,q);var vt=(f+(r=r+Math.imul(h,H)|0)|0)+((8191&(i=(i=i+Math.imul(h,W)|0)+Math.imul(d,H)|0))<<13)|0;f=((o=o+Math.imul(d,W)|0)+(i>>>13)|0)+(vt>>>26)|0,vt&=67108863,r=Math.imul(v,D),i=(i=Math.imul(v,q))+Math.imul(m,D)|0,o=Math.imul(m,q),r=r+Math.imul(p,H)|0,i=(i=i+Math.imul(p,W)|0)+Math.imul(b,H)|0,o=o+Math.imul(b,W)|0;var mt=(f+(r=r+Math.imul(h,Y)|0)|0)+((8191&(i=(i=i+Math.imul(h,J)|0)+Math.imul(d,Y)|0))<<13)|0;f=((o=o+Math.imul(d,J)|0)+(i>>>13)|0)+(mt>>>26)|0,mt&=67108863,r=Math.imul(w,D),i=(i=Math.imul(w,q))+Math.imul(_,D)|0,o=Math.imul(_,q),r=r+Math.imul(v,H)|0,i=(i=i+Math.imul(v,W)|0)+Math.imul(m,H)|0,o=o+Math.imul(m,W)|0,r=r+Math.imul(p,Y)|0,i=(i=i+Math.imul(p,J)|0)+Math.imul(b,Y)|0,o=o+Math.imul(b,J)|0;var yt=(f+(r=r+Math.imul(h,$)|0)|0)+((8191&(i=(i=i+Math.imul(h,X)|0)+Math.imul(d,$)|0))<<13)|0;f=((o=o+Math.imul(d,X)|0)+(i>>>13)|0)+(yt>>>26)|0,yt&=67108863,r=Math.imul(M,D),i=(i=Math.imul(M,q))+Math.imul(E,D)|0,o=Math.imul(E,q),r=r+Math.imul(w,H)|0,i=(i=i+Math.imul(w,W)|0)+Math.imul(_,H)|0,o=o+Math.imul(_,W)|0,r=r+Math.imul(v,Y)|0,i=(i=i+Math.imul(v,J)|0)+Math.imul(m,Y)|0,o=o+Math.imul(m,J)|0,r=r+Math.imul(p,$)|0,i=(i=i+Math.imul(p,X)|0)+Math.imul(b,$)|0,o=o+Math.imul(b,X)|0;var wt=(f+(r=r+Math.imul(h,Q)|0)|0)+((8191&(i=(i=i+Math.imul(h,tt)|0)+Math.imul(d,Q)|0))<<13)|0;f=((o=o+Math.imul(d,tt)|0)+(i>>>13)|0)+(wt>>>26)|0,wt&=67108863,r=Math.imul(x,D),i=(i=Math.imul(x,q))+Math.imul(I,D)|0,o=Math.imul(I,q),r=r+Math.imul(M,H)|0,i=(i=i+Math.imul(M,W)|0)+Math.imul(E,H)|0,o=o+Math.imul(E,W)|0,r=r+Math.imul(w,Y)|0,i=(i=i+Math.imul(w,J)|0)+Math.imul(_,Y)|0,o=o+Math.imul(_,J)|0,r=r+Math.imul(v,$)|0,i=(i=i+Math.imul(v,X)|0)+Math.imul(m,$)|0,o=o+Math.imul(m,X)|0,r=r+Math.imul(p,Q)|0,i=(i=i+Math.imul(p,tt)|0)+Math.imul(b,Q)|0,o=o+Math.imul(b,tt)|0;var _t=(f+(r=r+Math.imul(h,nt)|0)|0)+((8191&(i=(i=i+Math.imul(h,rt)|0)+Math.imul(d,nt)|0))<<13)|0;f=((o=o+Math.imul(d,rt)|0)+(i>>>13)|0)+(_t>>>26)|0,_t&=67108863,r=Math.imul(k,D),i=(i=Math.imul(k,q))+Math.imul(L,D)|0,o=Math.imul(L,q),r=r+Math.imul(x,H)|0,i=(i=i+Math.imul(x,W)|0)+Math.imul(I,H)|0,o=o+Math.imul(I,W)|0,r=r+Math.imul(M,Y)|0,i=(i=i+Math.imul(M,J)|0)+Math.imul(E,Y)|0,o=o+Math.imul(E,J)|0,r=r+Math.imul(w,$)|0,i=(i=i+Math.imul(w,X)|0)+Math.imul(_,$)|0,o=o+Math.imul(_,X)|0,r=r+Math.imul(v,Q)|0,i=(i=i+Math.imul(v,tt)|0)+Math.imul(m,Q)|0,o=o+Math.imul(m,tt)|0,r=r+Math.imul(p,nt)|0,i=(i=i+Math.imul(p,rt)|0)+Math.imul(b,nt)|0,o=o+Math.imul(b,rt)|0;var St=(f+(r=r+Math.imul(h,ot)|0)|0)+((8191&(i=(i=i+Math.imul(h,st)|0)+Math.imul(d,ot)|0))<<13)|0;f=((o=o+Math.imul(d,st)|0)+(i>>>13)|0)+(St>>>26)|0,St&=67108863,r=Math.imul(R,D),i=(i=Math.imul(R,q))+Math.imul(O,D)|0,o=Math.imul(O,q),r=r+Math.imul(k,H)|0,i=(i=i+Math.imul(k,W)|0)+Math.imul(L,H)|0,o=o+Math.imul(L,W)|0,r=r+Math.imul(x,Y)|0,i=(i=i+Math.imul(x,J)|0)+Math.imul(I,Y)|0,o=o+Math.imul(I,J)|0,r=r+Math.imul(M,$)|0,i=(i=i+Math.imul(M,X)|0)+Math.imul(E,$)|0,o=o+Math.imul(E,X)|0,r=r+Math.imul(w,Q)|0,i=(i=i+Math.imul(w,tt)|0)+Math.imul(_,Q)|0,o=o+Math.imul(_,tt)|0,r=r+Math.imul(v,nt)|0,i=(i=i+Math.imul(v,rt)|0)+Math.imul(m,nt)|0,o=o+Math.imul(m,rt)|0,r=r+Math.imul(p,ot)|0,i=(i=i+Math.imul(p,st)|0)+Math.imul(b,ot)|0,o=o+Math.imul(b,st)|0;var Mt=(f+(r=r+Math.imul(h,ut)|0)|0)+((8191&(i=(i=i+Math.imul(h,ft)|0)+Math.imul(d,ut)|0))<<13)|0;f=((o=o+Math.imul(d,ft)|0)+(i>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,r=Math.imul(z,D),i=(i=Math.imul(z,q))+Math.imul(P,D)|0,o=Math.imul(P,q),r=r+Math.imul(R,H)|0,i=(i=i+Math.imul(R,W)|0)+Math.imul(O,H)|0,o=o+Math.imul(O,W)|0,r=r+Math.imul(k,Y)|0,i=(i=i+Math.imul(k,J)|0)+Math.imul(L,Y)|0,o=o+Math.imul(L,J)|0,r=r+Math.imul(x,$)|0,i=(i=i+Math.imul(x,X)|0)+Math.imul(I,$)|0,o=o+Math.imul(I,X)|0,r=r+Math.imul(M,Q)|0,i=(i=i+Math.imul(M,tt)|0)+Math.imul(E,Q)|0,o=o+Math.imul(E,tt)|0,r=r+Math.imul(w,nt)|0,i=(i=i+Math.imul(w,rt)|0)+Math.imul(_,nt)|0,o=o+Math.imul(_,rt)|0,r=r+Math.imul(v,ot)|0,i=(i=i+Math.imul(v,st)|0)+Math.imul(m,ot)|0,o=o+Math.imul(m,st)|0,r=r+Math.imul(p,ut)|0,i=(i=i+Math.imul(p,ft)|0)+Math.imul(b,ut)|0,o=o+Math.imul(b,ft)|0;var Et=(f+(r=r+Math.imul(h,ht)|0)|0)+((8191&(i=(i=i+Math.imul(h,dt)|0)+Math.imul(d,ht)|0))<<13)|0;f=((o=o+Math.imul(d,dt)|0)+(i>>>13)|0)+(Et>>>26)|0,Et&=67108863,r=Math.imul(F,D),i=(i=Math.imul(F,q))+Math.imul(j,D)|0,o=Math.imul(j,q),r=r+Math.imul(z,H)|0,i=(i=i+Math.imul(z,W)|0)+Math.imul(P,H)|0,o=o+Math.imul(P,W)|0,r=r+Math.imul(R,Y)|0,i=(i=i+Math.imul(R,J)|0)+Math.imul(O,Y)|0,o=o+Math.imul(O,J)|0,r=r+Math.imul(k,$)|0,i=(i=i+Math.imul(k,X)|0)+Math.imul(L,$)|0,o=o+Math.imul(L,X)|0,r=r+Math.imul(x,Q)|0,i=(i=i+Math.imul(x,tt)|0)+Math.imul(I,Q)|0,o=o+Math.imul(I,tt)|0,r=r+Math.imul(M,nt)|0,i=(i=i+Math.imul(M,rt)|0)+Math.imul(E,nt)|0,o=o+Math.imul(E,rt)|0,r=r+Math.imul(w,ot)|0,i=(i=i+Math.imul(w,st)|0)+Math.imul(_,ot)|0,o=o+Math.imul(_,st)|0,r=r+Math.imul(v,ut)|0,i=(i=i+Math.imul(v,ft)|0)+Math.imul(m,ut)|0,o=o+Math.imul(m,ft)|0,r=r+Math.imul(p,ht)|0,i=(i=i+Math.imul(p,dt)|0)+Math.imul(b,ht)|0,o=o+Math.imul(b,dt)|0;var At=(f+(r=r+Math.imul(h,pt)|0)|0)+((8191&(i=(i=i+Math.imul(h,bt)|0)+Math.imul(d,pt)|0))<<13)|0;f=((o=o+Math.imul(d,bt)|0)+(i>>>13)|0)+(At>>>26)|0,At&=67108863,r=Math.imul(F,H),i=(i=Math.imul(F,W))+Math.imul(j,H)|0,o=Math.imul(j,W),r=r+Math.imul(z,Y)|0,i=(i=i+Math.imul(z,J)|0)+Math.imul(P,Y)|0,o=o+Math.imul(P,J)|0,r=r+Math.imul(R,$)|0,i=(i=i+Math.imul(R,X)|0)+Math.imul(O,$)|0,o=o+Math.imul(O,X)|0,r=r+Math.imul(k,Q)|0,i=(i=i+Math.imul(k,tt)|0)+Math.imul(L,Q)|0,o=o+Math.imul(L,tt)|0,r=r+Math.imul(x,nt)|0,i=(i=i+Math.imul(x,rt)|0)+Math.imul(I,nt)|0,o=o+Math.imul(I,rt)|0,r=r+Math.imul(M,ot)|0,i=(i=i+Math.imul(M,st)|0)+Math.imul(E,ot)|0,o=o+Math.imul(E,st)|0,r=r+Math.imul(w,ut)|0,i=(i=i+Math.imul(w,ft)|0)+Math.imul(_,ut)|0,o=o+Math.imul(_,ft)|0,r=r+Math.imul(v,ht)|0,i=(i=i+Math.imul(v,dt)|0)+Math.imul(m,ht)|0,o=o+Math.imul(m,dt)|0;var xt=(f+(r=r+Math.imul(p,pt)|0)|0)+((8191&(i=(i=i+Math.imul(p,bt)|0)+Math.imul(b,pt)|0))<<13)|0;f=((o=o+Math.imul(b,bt)|0)+(i>>>13)|0)+(xt>>>26)|0,xt&=67108863,r=Math.imul(F,Y),i=(i=Math.imul(F,J))+Math.imul(j,Y)|0,o=Math.imul(j,J),r=r+Math.imul(z,$)|0,i=(i=i+Math.imul(z,X)|0)+Math.imul(P,$)|0,o=o+Math.imul(P,X)|0,r=r+Math.imul(R,Q)|0,i=(i=i+Math.imul(R,tt)|0)+Math.imul(O,Q)|0,o=o+Math.imul(O,tt)|0,r=r+Math.imul(k,nt)|0,i=(i=i+Math.imul(k,rt)|0)+Math.imul(L,nt)|0,o=o+Math.imul(L,rt)|0,r=r+Math.imul(x,ot)|0,i=(i=i+Math.imul(x,st)|0)+Math.imul(I,ot)|0,o=o+Math.imul(I,st)|0,r=r+Math.imul(M,ut)|0,i=(i=i+Math.imul(M,ft)|0)+Math.imul(E,ut)|0,o=o+Math.imul(E,ft)|0,r=r+Math.imul(w,ht)|0,i=(i=i+Math.imul(w,dt)|0)+Math.imul(_,ht)|0,o=o+Math.imul(_,dt)|0;var It=(f+(r=r+Math.imul(v,pt)|0)|0)+((8191&(i=(i=i+Math.imul(v,bt)|0)+Math.imul(m,pt)|0))<<13)|0;f=((o=o+Math.imul(m,bt)|0)+(i>>>13)|0)+(It>>>26)|0,It&=67108863,r=Math.imul(F,$),i=(i=Math.imul(F,X))+Math.imul(j,$)|0,o=Math.imul(j,X),r=r+Math.imul(z,Q)|0,i=(i=i+Math.imul(z,tt)|0)+Math.imul(P,Q)|0,o=o+Math.imul(P,tt)|0,r=r+Math.imul(R,nt)|0,i=(i=i+Math.imul(R,rt)|0)+Math.imul(O,nt)|0,o=o+Math.imul(O,rt)|0,r=r+Math.imul(k,ot)|0,i=(i=i+Math.imul(k,st)|0)+Math.imul(L,ot)|0,o=o+Math.imul(L,st)|0,r=r+Math.imul(x,ut)|0,i=(i=i+Math.imul(x,ft)|0)+Math.imul(I,ut)|0,o=o+Math.imul(I,ft)|0,r=r+Math.imul(M,ht)|0,i=(i=i+Math.imul(M,dt)|0)+Math.imul(E,ht)|0,o=o+Math.imul(E,dt)|0;var Tt=(f+(r=r+Math.imul(w,pt)|0)|0)+((8191&(i=(i=i+Math.imul(w,bt)|0)+Math.imul(_,pt)|0))<<13)|0;f=((o=o+Math.imul(_,bt)|0)+(i>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,r=Math.imul(F,Q),i=(i=Math.imul(F,tt))+Math.imul(j,Q)|0,o=Math.imul(j,tt),r=r+Math.imul(z,nt)|0,i=(i=i+Math.imul(z,rt)|0)+Math.imul(P,nt)|0,o=o+Math.imul(P,rt)|0,r=r+Math.imul(R,ot)|0,i=(i=i+Math.imul(R,st)|0)+Math.imul(O,ot)|0,o=o+Math.imul(O,st)|0,r=r+Math.imul(k,ut)|0,i=(i=i+Math.imul(k,ft)|0)+Math.imul(L,ut)|0,o=o+Math.imul(L,ft)|0,r=r+Math.imul(x,ht)|0,i=(i=i+Math.imul(x,dt)|0)+Math.imul(I,ht)|0,o=o+Math.imul(I,dt)|0;var kt=(f+(r=r+Math.imul(M,pt)|0)|0)+((8191&(i=(i=i+Math.imul(M,bt)|0)+Math.imul(E,pt)|0))<<13)|0;f=((o=o+Math.imul(E,bt)|0)+(i>>>13)|0)+(kt>>>26)|0,kt&=67108863,r=Math.imul(F,nt),i=(i=Math.imul(F,rt))+Math.imul(j,nt)|0,o=Math.imul(j,rt),r=r+Math.imul(z,ot)|0,i=(i=i+Math.imul(z,st)|0)+Math.imul(P,ot)|0,o=o+Math.imul(P,st)|0,r=r+Math.imul(R,ut)|0,i=(i=i+Math.imul(R,ft)|0)+Math.imul(O,ut)|0,o=o+Math.imul(O,ft)|0,r=r+Math.imul(k,ht)|0,i=(i=i+Math.imul(k,dt)|0)+Math.imul(L,ht)|0,o=o+Math.imul(L,dt)|0;var Lt=(f+(r=r+Math.imul(x,pt)|0)|0)+((8191&(i=(i=i+Math.imul(x,bt)|0)+Math.imul(I,pt)|0))<<13)|0;f=((o=o+Math.imul(I,bt)|0)+(i>>>13)|0)+(Lt>>>26)|0,Lt&=67108863,r=Math.imul(F,ot),i=(i=Math.imul(F,st))+Math.imul(j,ot)|0,o=Math.imul(j,st),r=r+Math.imul(z,ut)|0,i=(i=i+Math.imul(z,ft)|0)+Math.imul(P,ut)|0,o=o+Math.imul(P,ft)|0,r=r+Math.imul(R,ht)|0,i=(i=i+Math.imul(R,dt)|0)+Math.imul(O,ht)|0,o=o+Math.imul(O,dt)|0;var Nt=(f+(r=r+Math.imul(k,pt)|0)|0)+((8191&(i=(i=i+Math.imul(k,bt)|0)+Math.imul(L,pt)|0))<<13)|0;f=((o=o+Math.imul(L,bt)|0)+(i>>>13)|0)+(Nt>>>26)|0,Nt&=67108863,r=Math.imul(F,ut),i=(i=Math.imul(F,ft))+Math.imul(j,ut)|0,o=Math.imul(j,ft),r=r+Math.imul(z,ht)|0,i=(i=i+Math.imul(z,dt)|0)+Math.imul(P,ht)|0,o=o+Math.imul(P,dt)|0;var Rt=(f+(r=r+Math.imul(R,pt)|0)|0)+((8191&(i=(i=i+Math.imul(R,bt)|0)+Math.imul(O,pt)|0))<<13)|0;f=((o=o+Math.imul(O,bt)|0)+(i>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,r=Math.imul(F,ht),i=(i=Math.imul(F,dt))+Math.imul(j,ht)|0,o=Math.imul(j,dt);var Ot=(f+(r=r+Math.imul(z,pt)|0)|0)+((8191&(i=(i=i+Math.imul(z,bt)|0)+Math.imul(P,pt)|0))<<13)|0;f=((o=o+Math.imul(P,bt)|0)+(i>>>13)|0)+(Ot>>>26)|0,Ot&=67108863;var Bt=(f+(r=Math.imul(F,pt))|0)+((8191&(i=(i=Math.imul(F,bt))+Math.imul(j,pt)|0))<<13)|0;return f=((o=Math.imul(j,bt))+(i>>>13)|0)+(Bt>>>26)|0,Bt&=67108863,u[0]=gt,u[1]=vt,u[2]=mt,u[3]=yt,u[4]=wt,u[5]=_t,u[6]=St,u[7]=Mt,u[8]=Et,u[9]=At,u[10]=xt,u[11]=It,u[12]=Tt,u[13]=kt,u[14]=Lt,u[15]=Nt,u[16]=Rt,u[17]=Ot,u[18]=Bt,0!==f&&(u[19]=f,n.length++),n};function g(t,e,n){n.negative=e.negative^t.negative,n.length=t.length+e.length;for(var r=0,i=0,o=0;o<n.length-1;o++){var s=i;i=0;for(var a=67108863&r,u=Math.min(o,e.length-1),f=Math.max(0,o-t.length+1);f<=u;f++){var c=o-f,h=(0|t.words[c])*(0|e.words[f]),d=67108863&h;a=67108863&(d=d+a|0),i+=(s=(s=s+(h/67108864|0)|0)+(d>>>26)|0)>>>26,s&=67108863}n.words[o]=a,r=s,s=i}return 0!==r?n.words[o]=r:n.length--,n._strip()}function v(t,e,n){return g(t,e,n)}function m(t,e){this.x=t,this.y=e}Math.imul||(b=p),o.prototype.mulTo=function(t,e){var n=this.length+t.length;return 10===this.length&&10===t.length?b(this,t,e):n<63?p(this,t,e):n<1024?g(this,t,e):v(this,t,e)},m.prototype.makeRBT=function(t){for(var e=new Array(t),n=o.prototype._countBits(t)-1,r=0;r<t;r++)e[r]=this.revBin(r,n,t);return e},m.prototype.revBin=function(t,e,n){if(0===t||t===n-1)return t;for(var r=0,i=0;i<e;i++)r|=(1&t)<<e-i-1,t>>=1;return r},m.prototype.permute=function(t,e,n,r,i,o){for(var s=0;s<o;s++)r[s]=e[t[s]],i[s]=n[t[s]]},m.prototype.transform=function(t,e,n,r,i,o){this.permute(o,t,e,n,r,i);for(var s=1;s<i;s<<=1)for(var a=s<<1,u=Math.cos(2*Math.PI/a),f=Math.sin(2*Math.PI/a),c=0;c<i;c+=a)for(var h=u,d=f,l=0;l<s;l++){var p=n[c+l],b=r[c+l],g=n[c+l+s],v=r[c+l+s],m=h*g-d*v;v=h*v+d*g,g=m,n[c+l]=p+g,r[c+l]=b+v,n[c+l+s]=p-g,r[c+l+s]=b-v,l!==a&&(m=u*h-f*d,d=u*d+f*h,h=m)}},m.prototype.guessLen13b=function(t,e){var n=1|Math.max(e,t),r=1&n,i=0;for(n=n/2|0;n;n>>>=1)i++;return 1<<i+1+r},m.prototype.conjugate=function(t,e,n){if(!(n<=1))for(var r=0;r<n/2;r++){var i=t[r];t[r]=t[n-r-1],t[n-r-1]=i,i=e[r],e[r]=-e[n-r-1],e[n-r-1]=-i}},m.prototype.normalize13b=function(t,e){for(var n=0,r=0;r<e/2;r++){var i=8192*Math.round(t[2*r+1]/e)+Math.round(t[2*r]/e)+n;t[r]=67108863&i,n=i<67108864?0:i/67108864|0}return t},m.prototype.convert13b=function(t,e,n,i){for(var o=0,s=0;s<e;s++)o+=0|t[s],n[2*s]=8191&o,o>>>=13,n[2*s+1]=8191&o,o>>>=13;for(s=2*e;s<i;++s)n[s]=0;r(0===o),r(0==(-8192&o))},m.prototype.stub=function(t){for(var e=new Array(t),n=0;n<t;n++)e[n]=0;return e},m.prototype.mulp=function(t,e,n){var r=2*this.guessLen13b(t.length,e.length),i=this.makeRBT(r),o=this.stub(r),s=new Array(r),a=new Array(r),u=new Array(r),f=new Array(r),c=new Array(r),h=new Array(r),d=n.words;d.length=r,this.convert13b(t.words,t.length,s,r),this.convert13b(e.words,e.length,f,r),this.transform(s,o,a,u,r,i),this.transform(f,o,c,h,r,i);for(var l=0;l<r;l++){var p=a[l]*c[l]-u[l]*h[l];u[l]=a[l]*h[l]+u[l]*c[l],a[l]=p}return this.conjugate(a,u,r),this.transform(a,u,d,o,r,i),this.conjugate(d,o,r),this.normalize13b(d,r),n.negative=t.negative^e.negative,n.length=t.length+e.length,n._strip()},o.prototype.mul=function(t){var e=new o(null);return e.words=new Array(this.length+t.length),this.mulTo(t,e)},o.prototype.mulf=function(t){var e=new o(null);return e.words=new Array(this.length+t.length),v(this,t,e)},o.prototype.imul=function(t){return this.clone().mulTo(t,this)},o.prototype.imuln=function(t){var e=t<0;e&&(t=-t),r("number"==typeof t),r(t<67108864);for(var n=0,i=0;i<this.length;i++){var o=(0|this.words[i])*t,s=(67108863&o)+(67108863&n);n>>=26,n+=o/67108864|0,n+=s>>>26,this.words[i]=67108863&s}return 0!==n&&(this.words[i]=n,this.length++),e?this.ineg():this},o.prototype.muln=function(t){return this.clone().imuln(t)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(t){var e=function(t){for(var e=new Array(t.bitLength()),n=0;n<e.length;n++){var r=n/26|0,i=n%26;e[n]=t.words[r]>>>i&1}return e}(t);if(0===e.length)return new o(1);for(var n=this,r=0;r<e.length&&0===e[r];r++,n=n.sqr());if(++r<e.length)for(var i=n.sqr();r<e.length;r++,i=i.sqr())0!==e[r]&&(n=n.mul(i));return n},o.prototype.iushln=function(t){r("number"==typeof t&&t>=0);var e,n=t%26,i=(t-n)/26,o=67108863>>>26-n<<26-n;if(0!==n){var s=0;for(e=0;e<this.length;e++){var a=this.words[e]&o,u=(0|this.words[e])-a<<n;this.words[e]=u|s,s=a>>>26-n}s&&(this.words[e]=s,this.length++)}if(0!==i){for(e=this.length-1;e>=0;e--)this.words[e+i]=this.words[e];for(e=0;e<i;e++)this.words[e]=0;this.length+=i}return this._strip()},o.prototype.ishln=function(t){return r(0===this.negative),this.iushln(t)},o.prototype.iushrn=function(t,e,n){var i;r("number"==typeof t&&t>=0),i=e?(e-e%26)/26:0;var o=t%26,s=Math.min((t-o)/26,this.length),a=67108863^67108863>>>o<<o,u=n;if(i-=s,i=Math.max(0,i),u){for(var f=0;f<s;f++)u.words[f]=this.words[f];u.length=s}if(0===s);else if(this.length>s)for(this.length-=s,f=0;f<this.length;f++)this.words[f]=this.words[f+s];else this.words[0]=0,this.length=1;var c=0;for(f=this.length-1;f>=0&&(0!==c||f>=i);f--){var h=0|this.words[f];this.words[f]=c<<26-o|h>>>o,c=h&a}return u&&0!==c&&(u.words[u.length++]=c),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},o.prototype.ishrn=function(t,e,n){return r(0===this.negative),this.iushrn(t,e,n)},o.prototype.shln=function(t){return this.clone().ishln(t)},o.prototype.ushln=function(t){return this.clone().iushln(t)},o.prototype.shrn=function(t){return this.clone().ishrn(t)},o.prototype.ushrn=function(t){return this.clone().iushrn(t)},o.prototype.testn=function(t){r("number"==typeof t&&t>=0);var e=t%26,n=(t-e)/26,i=1<<e;return!(this.length<=n)&&!!(this.words[n]&i)},o.prototype.imaskn=function(t){r("number"==typeof t&&t>=0);var e=t%26,n=(t-e)/26;if(r(0===this.negative,"imaskn works only with positive numbers"),this.length<=n)return this;if(0!==e&&n++,this.length=Math.min(n,this.length),0!==e){var i=67108863^67108863>>>e<<e;this.words[this.length-1]&=i}return this._strip()},o.prototype.maskn=function(t){return this.clone().imaskn(t)},o.prototype.iaddn=function(t){return r("number"==typeof t),r(t<67108864),t<0?this.isubn(-t):0!==this.negative?1===this.length&&(0|this.words[0])<=t?(this.words[0]=t-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(t),this.negative=1,this):this._iaddn(t)},o.prototype._iaddn=function(t){this.words[0]+=t;for(var e=0;e<this.length&&this.words[e]>=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},o.prototype.isubn=function(t){if(r("number"==typeof t),r(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e<this.length&&this.words[e]<0;e++)this.words[e]+=67108864,this.words[e+1]-=1;return this._strip()},o.prototype.addn=function(t){return this.clone().iaddn(t)},o.prototype.subn=function(t){return this.clone().isubn(t)},o.prototype.iabs=function(){return this.negative=0,this},o.prototype.abs=function(){return this.clone().iabs()},o.prototype._ishlnsubmul=function(t,e,n){var i,o,s=t.length+n;this._expand(s);var a=0;for(i=0;i<t.length;i++){o=(0|this.words[i+n])+a;var u=(0|t.words[i])*e;a=((o-=67108863&u)>>26)-(u/67108864|0),this.words[i+n]=67108863&o}for(;i<this.length-n;i++)a=(o=(0|this.words[i+n])+a)>>26,this.words[i+n]=67108863&o;if(0===a)return this._strip();for(r(-1===a),a=0,i=0;i<this.length;i++)a=(o=-(0|this.words[i])+a)>>26,this.words[i]=67108863&o;return this.negative=1,this._strip()},o.prototype._wordDiv=function(t,e){var n=(this.length,t.length),r=this.clone(),i=t,s=0|i.words[i.length-1];0!==(n=26-this._countBits(s))&&(i=i.ushln(n),r.iushln(n),s=0|i.words[i.length-1]);var a,u=r.length-i.length;if("mod"!==e){(a=new o(null)).length=u+1,a.words=new Array(a.length);for(var f=0;f<a.length;f++)a.words[f]=0}var c=r.clone()._ishlnsubmul(i,1,u);0===c.negative&&(r=c,a&&(a.words[u]=1));for(var h=u-1;h>=0;h--){var d=67108864*(0|r.words[i.length+h])+(0|r.words[i.length+h-1]);for(d=Math.min(d/s|0,67108863),r._ishlnsubmul(i,d,h);0!==r.negative;)d--,r.negative=0,r._ishlnsubmul(i,1,h),r.isZero()||(r.negative^=1);a&&(a.words[h]=d)}return a&&a._strip(),r._strip(),"div"!==e&&0!==n&&r.iushrn(n),{div:a||null,mod:r}},o.prototype.divmod=function(t,e,n){return r(!t.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===t.negative?(a=this.neg().divmod(t,e),"mod"!==e&&(i=a.div.neg()),"div"!==e&&(s=a.mod.neg(),n&&0!==s.negative&&s.iadd(t)),{div:i,mod:s}):0===this.negative&&0!==t.negative?(a=this.divmod(t.neg(),e),"mod"!==e&&(i=a.div.neg()),{div:i,mod:a.mod}):0!=(this.negative&t.negative)?(a=this.neg().divmod(t.neg(),e),"div"!==e&&(s=a.mod.neg(),n&&0!==s.negative&&s.isub(t)),{div:a.div,mod:s}):t.length>this.length||this.cmp(t)<0?{div:new o(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new o(this.modrn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new o(this.modrn(t.words[0]))}:this._wordDiv(t,e);var i,s,a},o.prototype.div=function(t){return this.divmod(t,"div",!1).div},o.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},o.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},o.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var n=0!==e.div.negative?e.mod.isub(t):e.mod,r=t.ushrn(1),i=t.andln(1),o=n.cmp(r);return o<0||1===i&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},o.prototype.modrn=function(t){var e=t<0;e&&(t=-t),r(t<=67108863);for(var n=(1<<26)%t,i=0,o=this.length-1;o>=0;o--)i=(n*i+(0|this.words[o]))%t;return e?-i:i},o.prototype.modn=function(t){return this.modrn(t)},o.prototype.idivn=function(t){var e=t<0;e&&(t=-t),r(t<=67108863);for(var n=0,i=this.length-1;i>=0;i--){var o=(0|this.words[i])+67108864*n;this.words[i]=o/t|0,n=o%t}return this._strip(),e?this.ineg():this},o.prototype.divn=function(t){return this.clone().idivn(t)},o.prototype.egcd=function(t){r(0===t.negative),r(!t.isZero());var e=this,n=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var i=new o(1),s=new o(0),a=new o(0),u=new o(1),f=0;e.isEven()&&n.isEven();)e.iushrn(1),n.iushrn(1),++f;for(var c=n.clone(),h=e.clone();!e.isZero();){for(var d=0,l=1;0==(e.words[0]&l)&&d<26;++d,l<<=1);if(d>0)for(e.iushrn(d);d-- >0;)(i.isOdd()||s.isOdd())&&(i.iadd(c),s.isub(h)),i.iushrn(1),s.iushrn(1);for(var p=0,b=1;0==(n.words[0]&b)&&p<26;++p,b<<=1);if(p>0)for(n.iushrn(p);p-- >0;)(a.isOdd()||u.isOdd())&&(a.iadd(c),u.isub(h)),a.iushrn(1),u.iushrn(1);e.cmp(n)>=0?(e.isub(n),i.isub(a),s.isub(u)):(n.isub(e),a.isub(i),u.isub(s))}return{a:a,b:u,gcd:n.iushln(f)}},o.prototype._invmp=function(t){r(0===t.negative),r(!t.isZero());var e=this,n=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var i,s=new o(1),a=new o(0),u=n.clone();e.cmpn(1)>0&&n.cmpn(1)>0;){for(var f=0,c=1;0==(e.words[0]&c)&&f<26;++f,c<<=1);if(f>0)for(e.iushrn(f);f-- >0;)s.isOdd()&&s.iadd(u),s.iushrn(1);for(var h=0,d=1;0==(n.words[0]&d)&&h<26;++h,d<<=1);if(h>0)for(n.iushrn(h);h-- >0;)a.isOdd()&&a.iadd(u),a.iushrn(1);e.cmp(n)>=0?(e.isub(n),s.isub(a)):(n.isub(e),a.isub(s))}return(i=0===e.cmpn(1)?s:a).cmpn(0)<0&&i.iadd(t),i},o.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),n=t.clone();e.negative=0,n.negative=0;for(var r=0;e.isEven()&&n.isEven();r++)e.iushrn(1),n.iushrn(1);for(;;){for(;e.isEven();)e.iushrn(1);for(;n.isEven();)n.iushrn(1);var i=e.cmp(n);if(i<0){var o=e;e=n,n=o}else if(0===i||0===n.cmpn(1))break;e.isub(n)}return n.iushln(r)},o.prototype.invm=function(t){return this.egcd(t).a.umod(t)},o.prototype.isEven=function(){return 0==(1&this.words[0])},o.prototype.isOdd=function(){return 1==(1&this.words[0])},o.prototype.andln=function(t){return this.words[0]&t},o.prototype.bincn=function(t){r("number"==typeof t);var e=t%26,n=(t-e)/26,i=1<<e;if(this.length<=n)return this._expand(n+1),this.words[n]|=i,this;for(var o=i,s=n;0!==o&&s<this.length;s++){var a=0|this.words[s];o=(a+=o)>>>26,a&=67108863,this.words[s]=a}return 0!==o&&(this.words[s]=o,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(t){var e,n=t<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this._strip(),this.length>1)e=1;else{n&&(t=-t),r(t<=67108863,"Number is too big");var i=0|this.words[0];e=i===t?0:i<t?-1:1}return 0!==this.negative?0|-e:e},o.prototype.cmp=function(t){if(0!==this.negative&&0===t.negative)return-1;if(0===this.negative&&0!==t.negative)return 1;var e=this.ucmp(t);return 0!==this.negative?0|-e:e},o.prototype.ucmp=function(t){if(this.length>t.length)return 1;if(this.length<t.length)return-1;for(var e=0,n=this.length-1;n>=0;n--){var r=0|this.words[n],i=0|t.words[n];if(r!==i){r<i?e=-1:r>i&&(e=1);break}}return e},o.prototype.gtn=function(t){return 1===this.cmpn(t)},o.prototype.gt=function(t){return 1===this.cmp(t)},o.prototype.gten=function(t){return this.cmpn(t)>=0},o.prototype.gte=function(t){return this.cmp(t)>=0},o.prototype.ltn=function(t){return-1===this.cmpn(t)},o.prototype.lt=function(t){return-1===this.cmp(t)},o.prototype.lten=function(t){return this.cmpn(t)<=0},o.prototype.lte=function(t){return this.cmp(t)<=0},o.prototype.eqn=function(t){return 0===this.cmpn(t)},o.prototype.eq=function(t){return 0===this.cmp(t)},o.red=function(t){return new A(t)},o.prototype.toRed=function(t){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},o.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(t){return this.red=t,this},o.prototype.forceRed=function(t){return r(!this.red,"Already a number in reduction context"),this._forceRed(t)},o.prototype.redAdd=function(t){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},o.prototype.redIAdd=function(t){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},o.prototype.redSub=function(t){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},o.prototype.redISub=function(t){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},o.prototype.redShl=function(t){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},o.prototype.redMul=function(t){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},o.prototype.redIMul=function(t){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},o.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(t){return r(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var y={k256:null,p224:null,p192:null,p25519:null};function w(t,e){this.name=t,this.p=new o(e,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function _(){w.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function S(){w.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function M(){w.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function E(){w.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function A(t){if("string"==typeof t){var e=o._prime(t);this.m=e.p,this.prime=e}else r(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function x(t){A.call(this,t),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}w.prototype._tmp=function(){var t=new o(null);return t.words=new Array(Math.ceil(this.n/13)),t},w.prototype.ireduce=function(t){var e,n=t;do{this.split(n,this.tmp),e=(n=(n=this.imulK(n)).iadd(this.tmp)).bitLength()}while(e>this.n);var r=e<this.n?-1:n.ucmp(this.p);return 0===r?(n.words[0]=0,n.length=1):r>0?n.isub(this.p):n._strip(),n},w.prototype.split=function(t,e){t.iushrn(this.n,0,e)},w.prototype.imulK=function(t){return t.imul(this.k)},i(_,w),_.prototype.split=function(t,e){for(var n=Math.min(t.length,9),r=0;r<n;r++)e.words[r]=t.words[r];if(e.length=n,t.length<=9)return t.words[0]=0,void(t.length=1);var i=t.words[9];for(e.words[e.length++]=4194303&i,r=10;r<t.length;r++){var o=0|t.words[r];t.words[r-10]=(4194303&o)<<4|i>>>22,i=o}i>>>=22,t.words[r-10]=i,0===i&&t.length>10?t.length-=10:t.length-=9},_.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,n=0;n<t.length;n++){var r=0|t.words[n];e+=977*r,t.words[n]=67108863&e,e=64*r+(e/67108864|0)}return 0===t.words[t.length-1]&&(t.length--,0===t.words[t.length-1]&&t.length--),t},i(S,w),i(M,w),i(E,w),E.prototype.imulK=function(t){for(var e=0,n=0;n<t.length;n++){var r=19*(0|t.words[n])+e,i=67108863&r;r>>>=26,t.words[n]=i,e=r}return 0!==e&&(t.words[t.length++]=e),t},o._prime=function(t){if(y[t])return y[t];var e;if("k256"===t)e=new _;else if("p224"===t)e=new S;else if("p192"===t)e=new M;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new E}return y[t]=e,e},A.prototype._verify1=function(t){r(0===t.negative,"red works only with positives"),r(t.red,"red works only with red numbers")},A.prototype._verify2=function(t,e){r(0==(t.negative|e.negative),"red works only with positives"),r(t.red&&t.red===e.red,"red works only with red numbers")},A.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):(f(t,t.umod(this.m)._forceRed(this)),t)},A.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},A.prototype.add=function(t,e){this._verify2(t,e);var n=t.add(e);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},A.prototype.iadd=function(t,e){this._verify2(t,e);var n=t.iadd(e);return n.cmp(this.m)>=0&&n.isub(this.m),n},A.prototype.sub=function(t,e){this._verify2(t,e);var n=t.sub(e);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},A.prototype.isub=function(t,e){this._verify2(t,e);var n=t.isub(e);return n.cmpn(0)<0&&n.iadd(this.m),n},A.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},A.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},A.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},A.prototype.isqr=function(t){return this.imul(t,t.clone())},A.prototype.sqr=function(t){return this.mul(t,t)},A.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(r(e%2==1),3===e){var n=this.m.add(new o(1)).iushrn(2);return this.pow(t,n)}for(var i=this.m.subn(1),s=0;!i.isZero()&&0===i.andln(1);)s++,i.iushrn(1);r(!i.isZero());var a=new o(1).toRed(this),u=a.redNeg(),f=this.m.subn(1).iushrn(1),c=this.m.bitLength();for(c=new o(2*c*c).toRed(this);0!==this.pow(c,f).cmp(u);)c.redIAdd(u);for(var h=this.pow(c,i),d=this.pow(t,i.addn(1).iushrn(1)),l=this.pow(t,i),p=s;0!==l.cmp(a);){for(var b=l,g=0;0!==b.cmp(a);g++)b=b.redSqr();r(g<p);var v=this.pow(h,new o(1).iushln(p-g-1));d=d.redMul(v),h=v.redSqr(),l=l.redMul(h),p=g}return d},A.prototype.invm=function(t){var e=t._invmp(this.m);return 0!==e.negative?(e.negative=0,this.imod(e).redNeg()):this.imod(e)},A.prototype.pow=function(t,e){if(e.isZero())return new o(1).toRed(this);if(0===e.cmpn(1))return t.clone();var n=new Array(16);n[0]=new o(1).toRed(this),n[1]=t;for(var r=2;r<n.length;r++)n[r]=this.mul(n[r-1],t);var i=n[0],s=0,a=0,u=e.bitLength()%26;for(0===u&&(u=26),r=e.length-1;r>=0;r--){for(var f=e.words[r],c=u-1;c>=0;c--){var h=f>>c&1;i!==n[0]&&(i=this.sqr(i)),0!==h||0!==s?(s<<=1,s|=h,(4===++a||0===r&&0===c)&&(i=this.mul(i,n[s]),a=0,s=0)):a=0}u=26}return i},A.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},A.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},o.mont=function(t){return new x(t)},i(x,A),x.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},x.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},x.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var n=t.imul(e),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=n.isub(r).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},x.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new o(0)._forceRed(this);var n=t.mul(e),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=n.isub(r).iushrn(this.shift),s=i;return i.cmp(this.m)>=0?s=i.isub(this.m):i.cmpn(0)<0&&(s=i.iadd(this.m)),s._forceRed(this)},x.prototype.invm=function(t){return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this)}}(t,this)}).call(this,n(27)(t))},function(t,e,n){(function(t,r){var i; -/** - * @license - * Lodash <https://lodash.com/> - * Copyright OpenJS Foundation and other contributors <https://openjsf.org/> - * Released under MIT license <https://lodash.com/license> - * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE> - * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - */(function(){var o="Expected a function",s="__lodash_placeholder__",a=[["ary",128],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",32],["partialRight",64],["rearg",256]],u="[object Arguments]",f="[object Array]",c="[object Boolean]",h="[object Date]",d="[object Error]",l="[object Function]",p="[object GeneratorFunction]",b="[object Map]",g="[object Number]",v="[object Object]",m="[object RegExp]",y="[object Set]",w="[object String]",_="[object Symbol]",S="[object WeakMap]",M="[object ArrayBuffer]",E="[object DataView]",A="[object Float32Array]",x="[object Float64Array]",I="[object Int8Array]",T="[object Int16Array]",k="[object Int32Array]",L="[object Uint8Array]",N="[object Uint16Array]",R="[object Uint32Array]",O=/\b__p \+= '';/g,B=/\b(__p \+=) '' \+/g,z=/(__e\(.*?\)|\b__t\)) \+\n'';/g,P=/&(?:amp|lt|gt|quot|#39);/g,U=/[&<>"']/g,F=RegExp(P.source),j=RegExp(U.source),C=/<%-([\s\S]+?)%>/g,D=/<%([\s\S]+?)%>/g,q=/<%=([\s\S]+?)%>/g,V=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,H=/^\w*$/,W=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Z=/[\\^$.*+?()[\]{}|]/g,Y=RegExp(Z.source),J=/^\s+|\s+$/g,K=/^\s+/,$=/\s+$/,X=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,G=/\{\n\/\* \[wrapped with (.+)\] \*/,Q=/,? & /,tt=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,et=/\\(\\)?/g,nt=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,rt=/\w*$/,it=/^[-+]0x[0-9a-f]+$/i,ot=/^0b[01]+$/i,st=/^\[object .+?Constructor\]$/,at=/^0o[0-7]+$/i,ut=/^(?:0|[1-9]\d*)$/,ft=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,ct=/($^)/,ht=/['\n\r\u2028\u2029\\]/g,dt="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",lt="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",pt="[\\ud800-\\udfff]",bt="["+lt+"]",gt="["+dt+"]",vt="\\d+",mt="[\\u2700-\\u27bf]",yt="[a-z\\xdf-\\xf6\\xf8-\\xff]",wt="[^\\ud800-\\udfff"+lt+vt+"\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]",_t="\\ud83c[\\udffb-\\udfff]",St="[^\\ud800-\\udfff]",Mt="(?:\\ud83c[\\udde6-\\uddff]){2}",Et="[\\ud800-\\udbff][\\udc00-\\udfff]",At="[A-Z\\xc0-\\xd6\\xd8-\\xde]",xt="(?:"+yt+"|"+wt+")",It="(?:"+At+"|"+wt+")",Tt="(?:"+gt+"|"+_t+")"+"?",kt="[\\ufe0e\\ufe0f]?"+Tt+("(?:\\u200d(?:"+[St,Mt,Et].join("|")+")[\\ufe0e\\ufe0f]?"+Tt+")*"),Lt="(?:"+[mt,Mt,Et].join("|")+")"+kt,Nt="(?:"+[St+gt+"?",gt,Mt,Et,pt].join("|")+")",Rt=RegExp("['’]","g"),Ot=RegExp(gt,"g"),Bt=RegExp(_t+"(?="+_t+")|"+Nt+kt,"g"),zt=RegExp([At+"?"+yt+"+(?:['’](?:d|ll|m|re|s|t|ve))?(?="+[bt,At,"$"].join("|")+")",It+"+(?:['’](?:D|LL|M|RE|S|T|VE))?(?="+[bt,At+xt,"$"].join("|")+")",At+"?"+xt+"+(?:['’](?:d|ll|m|re|s|t|ve))?",At+"+(?:['’](?:D|LL|M|RE|S|T|VE))?","\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",vt,Lt].join("|"),"g"),Pt=RegExp("[\\u200d\\ud800-\\udfff"+dt+"\\ufe0e\\ufe0f]"),Ut=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Ft=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],jt=-1,Ct={};Ct[A]=Ct[x]=Ct[I]=Ct[T]=Ct[k]=Ct[L]=Ct["[object Uint8ClampedArray]"]=Ct[N]=Ct[R]=!0,Ct[u]=Ct[f]=Ct[M]=Ct[c]=Ct[E]=Ct[h]=Ct[d]=Ct[l]=Ct[b]=Ct[g]=Ct[v]=Ct[m]=Ct[y]=Ct[w]=Ct[S]=!1;var Dt={};Dt[u]=Dt[f]=Dt[M]=Dt[E]=Dt[c]=Dt[h]=Dt[A]=Dt[x]=Dt[I]=Dt[T]=Dt[k]=Dt[b]=Dt[g]=Dt[v]=Dt[m]=Dt[y]=Dt[w]=Dt[_]=Dt[L]=Dt["[object Uint8ClampedArray]"]=Dt[N]=Dt[R]=!0,Dt[d]=Dt[l]=Dt[S]=!1;var qt={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Vt=parseFloat,Ht=parseInt,Wt="object"==typeof t&&t&&t.Object===Object&&t,Zt="object"==typeof self&&self&&self.Object===Object&&self,Yt=Wt||Zt||Function("return this")(),Jt=e&&!e.nodeType&&e,Kt=Jt&&"object"==typeof r&&r&&!r.nodeType&&r,$t=Kt&&Kt.exports===Jt,Xt=$t&&Wt.process,Gt=function(){try{var t=Kt&&Kt.require&&Kt.require("util").types;return t||Xt&&Xt.binding&&Xt.binding("util")}catch(t){}}(),Qt=Gt&&Gt.isArrayBuffer,te=Gt&&Gt.isDate,ee=Gt&&Gt.isMap,ne=Gt&&Gt.isRegExp,re=Gt&&Gt.isSet,ie=Gt&&Gt.isTypedArray;function oe(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)}function se(t,e,n,r){for(var i=-1,o=null==t?0:t.length;++i<o;){var s=t[i];e(r,s,n(s),t)}return r}function ae(t,e){for(var n=-1,r=null==t?0:t.length;++n<r&&!1!==e(t[n],n,t););return t}function ue(t,e){for(var n=null==t?0:t.length;n--&&!1!==e(t[n],n,t););return t}function fe(t,e){for(var n=-1,r=null==t?0:t.length;++n<r;)if(!e(t[n],n,t))return!1;return!0}function ce(t,e){for(var n=-1,r=null==t?0:t.length,i=0,o=[];++n<r;){var s=t[n];e(s,n,t)&&(o[i++]=s)}return o}function he(t,e){return!!(null==t?0:t.length)&&_e(t,e,0)>-1}function de(t,e,n){for(var r=-1,i=null==t?0:t.length;++r<i;)if(n(e,t[r]))return!0;return!1}function le(t,e){for(var n=-1,r=null==t?0:t.length,i=Array(r);++n<r;)i[n]=e(t[n],n,t);return i}function pe(t,e){for(var n=-1,r=e.length,i=t.length;++n<r;)t[i+n]=e[n];return t}function be(t,e,n,r){var i=-1,o=null==t?0:t.length;for(r&&o&&(n=t[++i]);++i<o;)n=e(n,t[i],i,t);return n}function ge(t,e,n,r){var i=null==t?0:t.length;for(r&&i&&(n=t[--i]);i--;)n=e(n,t[i],i,t);return n}function ve(t,e){for(var n=-1,r=null==t?0:t.length;++n<r;)if(e(t[n],n,t))return!0;return!1}var me=Ae("length");function ye(t,e,n){var r;return n(t,(function(t,n,i){if(e(t,n,i))return r=n,!1})),r}function we(t,e,n,r){for(var i=t.length,o=n+(r?1:-1);r?o--:++o<i;)if(e(t[o],o,t))return o;return-1}function _e(t,e,n){return e==e?function(t,e,n){var r=n-1,i=t.length;for(;++r<i;)if(t[r]===e)return r;return-1}(t,e,n):we(t,Me,n)}function Se(t,e,n,r){for(var i=n-1,o=t.length;++i<o;)if(r(t[i],e))return i;return-1}function Me(t){return t!=t}function Ee(t,e){var n=null==t?0:t.length;return n?Te(t,e)/n:NaN}function Ae(t){return function(e){return null==e?void 0:e[t]}}function xe(t){return function(e){return null==t?void 0:t[e]}}function Ie(t,e,n,r,i){return i(t,(function(t,i,o){n=r?(r=!1,t):e(n,t,i,o)})),n}function Te(t,e){for(var n,r=-1,i=t.length;++r<i;){var o=e(t[r]);void 0!==o&&(n=void 0===n?o:n+o)}return n}function ke(t,e){for(var n=-1,r=Array(t);++n<t;)r[n]=e(n);return r}function Le(t){return function(e){return t(e)}}function Ne(t,e){return le(e,(function(e){return t[e]}))}function Re(t,e){return t.has(e)}function Oe(t,e){for(var n=-1,r=t.length;++n<r&&_e(e,t[n],0)>-1;);return n}function Be(t,e){for(var n=t.length;n--&&_e(e,t[n],0)>-1;);return n}function ze(t,e){for(var n=t.length,r=0;n--;)t[n]===e&&++r;return r}var Pe=xe({"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"}),Ue=xe({"&":"&","<":"<",">":">",'"':""","'":"'"});function Fe(t){return"\\"+qt[t]}function je(t){return Pt.test(t)}function Ce(t){var e=-1,n=Array(t.size);return t.forEach((function(t,r){n[++e]=[r,t]})),n}function De(t,e){return function(n){return t(e(n))}}function qe(t,e){for(var n=-1,r=t.length,i=0,o=[];++n<r;){var a=t[n];a!==e&&a!==s||(t[n]=s,o[i++]=n)}return o}function Ve(t){var e=-1,n=Array(t.size);return t.forEach((function(t){n[++e]=t})),n}function He(t){var e=-1,n=Array(t.size);return t.forEach((function(t){n[++e]=[t,t]})),n}function We(t){return je(t)?function(t){var e=Bt.lastIndex=0;for(;Bt.test(t);)++e;return e}(t):me(t)}function Ze(t){return je(t)?function(t){return t.match(Bt)||[]}(t):function(t){return t.split("")}(t)}var Ye=xe({"&":"&","<":"<",">":">",""":'"',"'":"'"});var Je=function t(e){var n,r=(e=null==e?Yt:Je.defaults(Yt.Object(),e,Je.pick(Yt,Ft))).Array,i=e.Date,dt=e.Error,lt=e.Function,pt=e.Math,bt=e.Object,gt=e.RegExp,vt=e.String,mt=e.TypeError,yt=r.prototype,wt=lt.prototype,_t=bt.prototype,St=e["__core-js_shared__"],Mt=wt.toString,Et=_t.hasOwnProperty,At=0,xt=(n=/[^.]+$/.exec(St&&St.keys&&St.keys.IE_PROTO||""))?"Symbol(src)_1."+n:"",It=_t.toString,Tt=Mt.call(bt),kt=Yt._,Lt=gt("^"+Mt.call(Et).replace(Z,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Nt=$t?e.Buffer:void 0,Bt=e.Symbol,Pt=e.Uint8Array,qt=Nt?Nt.allocUnsafe:void 0,Wt=De(bt.getPrototypeOf,bt),Zt=bt.create,Jt=_t.propertyIsEnumerable,Kt=yt.splice,Xt=Bt?Bt.isConcatSpreadable:void 0,Gt=Bt?Bt.iterator:void 0,me=Bt?Bt.toStringTag:void 0,xe=function(){try{var t=Qi(bt,"defineProperty");return t({},"",{}),t}catch(t){}}(),Ke=e.clearTimeout!==Yt.clearTimeout&&e.clearTimeout,$e=i&&i.now!==Yt.Date.now&&i.now,Xe=e.setTimeout!==Yt.setTimeout&&e.setTimeout,Ge=pt.ceil,Qe=pt.floor,tn=bt.getOwnPropertySymbols,en=Nt?Nt.isBuffer:void 0,nn=e.isFinite,rn=yt.join,on=De(bt.keys,bt),sn=pt.max,an=pt.min,un=i.now,fn=e.parseInt,cn=pt.random,hn=yt.reverse,dn=Qi(e,"DataView"),ln=Qi(e,"Map"),pn=Qi(e,"Promise"),bn=Qi(e,"Set"),gn=Qi(e,"WeakMap"),vn=Qi(bt,"create"),mn=gn&&new gn,yn={},wn=Io(dn),_n=Io(ln),Sn=Io(pn),Mn=Io(bn),En=Io(gn),An=Bt?Bt.prototype:void 0,xn=An?An.valueOf:void 0,In=An?An.toString:void 0;function Tn(t){if(Hs(t)&&!Os(t)&&!(t instanceof Rn)){if(t instanceof Nn)return t;if(Et.call(t,"__wrapped__"))return To(t)}return new Nn(t)}var kn=function(){function t(){}return function(e){if(!Vs(e))return{};if(Zt)return Zt(e);t.prototype=e;var n=new t;return t.prototype=void 0,n}}();function Ln(){}function Nn(t,e){this.__wrapped__=t,this.__actions__=[],this.__chain__=!!e,this.__index__=0,this.__values__=void 0}function Rn(t){this.__wrapped__=t,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=4294967295,this.__views__=[]}function On(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}function Bn(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}function zn(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}function Pn(t){var e=-1,n=null==t?0:t.length;for(this.__data__=new zn;++e<n;)this.add(t[e])}function Un(t){var e=this.__data__=new Bn(t);this.size=e.size}function Fn(t,e){var n=Os(t),r=!n&&Rs(t),i=!n&&!r&&Us(t),o=!n&&!r&&!i&&Gs(t),s=n||r||i||o,a=s?ke(t.length,vt):[],u=a.length;for(var f in t)!e&&!Et.call(t,f)||s&&("length"==f||i&&("offset"==f||"parent"==f)||o&&("buffer"==f||"byteLength"==f||"byteOffset"==f)||so(f,u))||a.push(f);return a}function jn(t){var e=t.length;return e?t[Pr(0,e-1)]:void 0}function Cn(t,e){return Eo(vi(t),Kn(e,0,t.length))}function Dn(t){return Eo(vi(t))}function qn(t,e,n){(void 0===n||ks(t[e],n))&&(void 0!==n||e in t)||Yn(t,e,n)}function Vn(t,e,n){var r=t[e];Et.call(t,e)&&ks(r,n)&&(void 0!==n||e in t)||Yn(t,e,n)}function Hn(t,e){for(var n=t.length;n--;)if(ks(t[n][0],e))return n;return-1}function Wn(t,e,n,r){return tr(t,(function(t,i,o){e(r,t,n(t),o)})),r}function Zn(t,e){return t&&mi(e,wa(e),t)}function Yn(t,e,n){"__proto__"==e&&xe?xe(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n}function Jn(t,e){for(var n=-1,i=e.length,o=r(i),s=null==t;++n<i;)o[n]=s?void 0:ba(t,e[n]);return o}function Kn(t,e,n){return t==t&&(void 0!==n&&(t=t<=n?t:n),void 0!==e&&(t=t>=e?t:e)),t}function $n(t,e,n,r,i,o){var s,a=1&e,f=2&e,d=4&e;if(n&&(s=i?n(t,r,i,o):n(t)),void 0!==s)return s;if(!Vs(t))return t;var S=Os(t);if(S){if(s=function(t){var e=t.length,n=new t.constructor(e);e&&"string"==typeof t[0]&&Et.call(t,"index")&&(n.index=t.index,n.input=t.input);return n}(t),!a)return vi(t,s)}else{var O=no(t),B=O==l||O==p;if(Us(t))return hi(t,a);if(O==v||O==u||B&&!i){if(s=f||B?{}:io(t),!a)return f?function(t,e){return mi(t,eo(t),e)}(t,function(t,e){return t&&mi(e,_a(e),t)}(s,t)):function(t,e){return mi(t,to(t),e)}(t,Zn(s,t))}else{if(!Dt[O])return i?t:{};s=function(t,e,n){var r=t.constructor;switch(e){case M:return di(t);case c:case h:return new r(+t);case E:return function(t,e){var n=e?di(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.byteLength)}(t,n);case A:case x:case I:case T:case k:case L:case"[object Uint8ClampedArray]":case N:case R:return li(t,n);case b:return new r;case g:case w:return new r(t);case m:return function(t){var e=new t.constructor(t.source,rt.exec(t));return e.lastIndex=t.lastIndex,e}(t);case y:return new r;case _:return i=t,xn?bt(xn.call(i)):{}}var i}(t,O,a)}}o||(o=new Un);var z=o.get(t);if(z)return z;o.set(t,s),Ks(t)?t.forEach((function(r){s.add($n(r,e,n,r,t,o))})):Ws(t)&&t.forEach((function(r,i){s.set(i,$n(r,e,n,i,t,o))}));var P=S?void 0:(d?f?Zi:Wi:f?_a:wa)(t);return ae(P||t,(function(r,i){P&&(r=t[i=r]),Vn(s,i,$n(r,e,n,i,t,o))})),s}function Xn(t,e,n){var r=n.length;if(null==t)return!r;for(t=bt(t);r--;){var i=n[r],o=e[i],s=t[i];if(void 0===s&&!(i in t)||!o(s))return!1}return!0}function Gn(t,e,n){if("function"!=typeof t)throw new mt(o);return wo((function(){t.apply(void 0,n)}),e)}function Qn(t,e,n,r){var i=-1,o=he,s=!0,a=t.length,u=[],f=e.length;if(!a)return u;n&&(e=le(e,Le(n))),r?(o=de,s=!1):e.length>=200&&(o=Re,s=!1,e=new Pn(e));t:for(;++i<a;){var c=t[i],h=null==n?c:n(c);if(c=r||0!==c?c:0,s&&h==h){for(var d=f;d--;)if(e[d]===h)continue t;u.push(c)}else o(e,h,r)||u.push(c)}return u}Tn.templateSettings={escape:C,evaluate:D,interpolate:q,variable:"",imports:{_:Tn}},Tn.prototype=Ln.prototype,Tn.prototype.constructor=Tn,Nn.prototype=kn(Ln.prototype),Nn.prototype.constructor=Nn,Rn.prototype=kn(Ln.prototype),Rn.prototype.constructor=Rn,On.prototype.clear=function(){this.__data__=vn?vn(null):{},this.size=0},On.prototype.delete=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e},On.prototype.get=function(t){var e=this.__data__;if(vn){var n=e[t];return"__lodash_hash_undefined__"===n?void 0:n}return Et.call(e,t)?e[t]:void 0},On.prototype.has=function(t){var e=this.__data__;return vn?void 0!==e[t]:Et.call(e,t)},On.prototype.set=function(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=vn&&void 0===e?"__lodash_hash_undefined__":e,this},Bn.prototype.clear=function(){this.__data__=[],this.size=0},Bn.prototype.delete=function(t){var e=this.__data__,n=Hn(e,t);return!(n<0)&&(n==e.length-1?e.pop():Kt.call(e,n,1),--this.size,!0)},Bn.prototype.get=function(t){var e=this.__data__,n=Hn(e,t);return n<0?void 0:e[n][1]},Bn.prototype.has=function(t){return Hn(this.__data__,t)>-1},Bn.prototype.set=function(t,e){var n=this.__data__,r=Hn(n,t);return r<0?(++this.size,n.push([t,e])):n[r][1]=e,this},zn.prototype.clear=function(){this.size=0,this.__data__={hash:new On,map:new(ln||Bn),string:new On}},zn.prototype.delete=function(t){var e=Xi(this,t).delete(t);return this.size-=e?1:0,e},zn.prototype.get=function(t){return Xi(this,t).get(t)},zn.prototype.has=function(t){return Xi(this,t).has(t)},zn.prototype.set=function(t,e){var n=Xi(this,t),r=n.size;return n.set(t,e),this.size+=n.size==r?0:1,this},Pn.prototype.add=Pn.prototype.push=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this},Pn.prototype.has=function(t){return this.__data__.has(t)},Un.prototype.clear=function(){this.__data__=new Bn,this.size=0},Un.prototype.delete=function(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n},Un.prototype.get=function(t){return this.__data__.get(t)},Un.prototype.has=function(t){return this.__data__.has(t)},Un.prototype.set=function(t,e){var n=this.__data__;if(n instanceof Bn){var r=n.__data__;if(!ln||r.length<199)return r.push([t,e]),this.size=++n.size,this;n=this.__data__=new zn(r)}return n.set(t,e),this.size=n.size,this};var tr=_i(ur),er=_i(fr,!0);function nr(t,e){var n=!0;return tr(t,(function(t,r,i){return n=!!e(t,r,i)})),n}function rr(t,e,n){for(var r=-1,i=t.length;++r<i;){var o=t[r],s=e(o);if(null!=s&&(void 0===a?s==s&&!Xs(s):n(s,a)))var a=s,u=o}return u}function ir(t,e){var n=[];return tr(t,(function(t,r,i){e(t,r,i)&&n.push(t)})),n}function or(t,e,n,r,i){var o=-1,s=t.length;for(n||(n=oo),i||(i=[]);++o<s;){var a=t[o];e>0&&n(a)?e>1?or(a,e-1,n,r,i):pe(i,a):r||(i[i.length]=a)}return i}var sr=Si(),ar=Si(!0);function ur(t,e){return t&&sr(t,e,wa)}function fr(t,e){return t&&ar(t,e,wa)}function cr(t,e){return ce(e,(function(e){return Cs(t[e])}))}function hr(t,e){for(var n=0,r=(e=ai(e,t)).length;null!=t&&n<r;)t=t[xo(e[n++])];return n&&n==r?t:void 0}function dr(t,e,n){var r=e(t);return Os(t)?r:pe(r,n(t))}function lr(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":me&&me in bt(t)?function(t){var e=Et.call(t,me),n=t[me];try{t[me]=void 0;var r=!0}catch(t){}var i=It.call(t);r&&(e?t[me]=n:delete t[me]);return i}(t):function(t){return It.call(t)}(t)}function pr(t,e){return t>e}function br(t,e){return null!=t&&Et.call(t,e)}function gr(t,e){return null!=t&&e in bt(t)}function vr(t,e,n){for(var i=n?de:he,o=t[0].length,s=t.length,a=s,u=r(s),f=1/0,c=[];a--;){var h=t[a];a&&e&&(h=le(h,Le(e))),f=an(h.length,f),u[a]=!n&&(e||o>=120&&h.length>=120)?new Pn(a&&h):void 0}h=t[0];var d=-1,l=u[0];t:for(;++d<o&&c.length<f;){var p=h[d],b=e?e(p):p;if(p=n||0!==p?p:0,!(l?Re(l,b):i(c,b,n))){for(a=s;--a;){var g=u[a];if(!(g?Re(g,b):i(t[a],b,n)))continue t}l&&l.push(b),c.push(p)}}return c}function mr(t,e,n){var r=null==(t=go(t,e=ai(e,t)))?t:t[xo(jo(e))];return null==r?void 0:oe(r,t,n)}function yr(t){return Hs(t)&&lr(t)==u}function wr(t,e,n,r,i){return t===e||(null==t||null==e||!Hs(t)&&!Hs(e)?t!=t&&e!=e:function(t,e,n,r,i,o){var s=Os(t),a=Os(e),l=s?f:no(t),p=a?f:no(e),S=(l=l==u?v:l)==v,A=(p=p==u?v:p)==v,x=l==p;if(x&&Us(t)){if(!Us(e))return!1;s=!0,S=!1}if(x&&!S)return o||(o=new Un),s||Gs(t)?Vi(t,e,n,r,i,o):function(t,e,n,r,i,o,s){switch(n){case E:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case M:return!(t.byteLength!=e.byteLength||!o(new Pt(t),new Pt(e)));case c:case h:case g:return ks(+t,+e);case d:return t.name==e.name&&t.message==e.message;case m:case w:return t==e+"";case b:var a=Ce;case y:var u=1&r;if(a||(a=Ve),t.size!=e.size&&!u)return!1;var f=s.get(t);if(f)return f==e;r|=2,s.set(t,e);var l=Vi(a(t),a(e),r,i,o,s);return s.delete(t),l;case _:if(xn)return xn.call(t)==xn.call(e)}return!1}(t,e,l,n,r,i,o);if(!(1&n)){var I=S&&Et.call(t,"__wrapped__"),T=A&&Et.call(e,"__wrapped__");if(I||T){var k=I?t.value():t,L=T?e.value():e;return o||(o=new Un),i(k,L,n,r,o)}}if(!x)return!1;return o||(o=new Un),function(t,e,n,r,i,o){var s=1&n,a=Wi(t),u=a.length,f=Wi(e).length;if(u!=f&&!s)return!1;var c=u;for(;c--;){var h=a[c];if(!(s?h in e:Et.call(e,h)))return!1}var d=o.get(t);if(d&&o.get(e))return d==e;var l=!0;o.set(t,e),o.set(e,t);var p=s;for(;++c<u;){h=a[c];var b=t[h],g=e[h];if(r)var v=s?r(g,b,h,e,t,o):r(b,g,h,t,e,o);if(!(void 0===v?b===g||i(b,g,n,r,o):v)){l=!1;break}p||(p="constructor"==h)}if(l&&!p){var m=t.constructor,y=e.constructor;m!=y&&"constructor"in t&&"constructor"in e&&!("function"==typeof m&&m instanceof m&&"function"==typeof y&&y instanceof y)&&(l=!1)}return o.delete(t),o.delete(e),l}(t,e,n,r,i,o)}(t,e,n,r,wr,i))}function _r(t,e,n,r){var i=n.length,o=i,s=!r;if(null==t)return!o;for(t=bt(t);i--;){var a=n[i];if(s&&a[2]?a[1]!==t[a[0]]:!(a[0]in t))return!1}for(;++i<o;){var u=(a=n[i])[0],f=t[u],c=a[1];if(s&&a[2]){if(void 0===f&&!(u in t))return!1}else{var h=new Un;if(r)var d=r(f,c,u,t,e,h);if(!(void 0===d?wr(c,f,3,r,h):d))return!1}}return!0}function Sr(t){return!(!Vs(t)||(e=t,xt&&xt in e))&&(Cs(t)?Lt:st).test(Io(t));var e}function Mr(t){return"function"==typeof t?t:null==t?Za:"object"==typeof t?Os(t)?kr(t[0],t[1]):Tr(t):eu(t)}function Er(t){if(!ho(t))return on(t);var e=[];for(var n in bt(t))Et.call(t,n)&&"constructor"!=n&&e.push(n);return e}function Ar(t){if(!Vs(t))return function(t){var e=[];if(null!=t)for(var n in bt(t))e.push(n);return e}(t);var e=ho(t),n=[];for(var r in t)("constructor"!=r||!e&&Et.call(t,r))&&n.push(r);return n}function xr(t,e){return t<e}function Ir(t,e){var n=-1,i=zs(t)?r(t.length):[];return tr(t,(function(t,r,o){i[++n]=e(t,r,o)})),i}function Tr(t){var e=Gi(t);return 1==e.length&&e[0][2]?po(e[0][0],e[0][1]):function(n){return n===t||_r(n,t,e)}}function kr(t,e){return uo(t)&&lo(e)?po(xo(t),e):function(n){var r=ba(n,t);return void 0===r&&r===e?ga(n,t):wr(e,r,3)}}function Lr(t,e,n,r,i){t!==e&&sr(e,(function(o,s){if(i||(i=new Un),Vs(o))!function(t,e,n,r,i,o,s){var a=mo(t,n),u=mo(e,n),f=s.get(u);if(f)return void qn(t,n,f);var c=o?o(a,u,n+"",t,e,s):void 0,h=void 0===c;if(h){var d=Os(u),l=!d&&Us(u),p=!d&&!l&&Gs(u);c=u,d||l||p?Os(a)?c=a:Ps(a)?c=vi(a):l?(h=!1,c=hi(u,!0)):p?(h=!1,c=li(u,!0)):c=[]:Ys(u)||Rs(u)?(c=a,Rs(a)?c=sa(a):Vs(a)&&!Cs(a)||(c=io(u))):h=!1}h&&(s.set(u,c),i(c,u,r,o,s),s.delete(u));qn(t,n,c)}(t,e,s,n,Lr,r,i);else{var a=r?r(mo(t,s),o,s+"",t,e,i):void 0;void 0===a&&(a=o),qn(t,s,a)}}),_a)}function Nr(t,e){var n=t.length;if(n)return so(e+=e<0?n:0,n)?t[e]:void 0}function Rr(t,e,n){var r=-1;return e=le(e.length?e:[Za],Le($i())),function(t,e){var n=t.length;for(t.sort(e);n--;)t[n]=t[n].value;return t}(Ir(t,(function(t,n,i){return{criteria:le(e,(function(e){return e(t)})),index:++r,value:t}})),(function(t,e){return function(t,e,n){var r=-1,i=t.criteria,o=e.criteria,s=i.length,a=n.length;for(;++r<s;){var u=pi(i[r],o[r]);if(u){if(r>=a)return u;var f=n[r];return u*("desc"==f?-1:1)}}return t.index-e.index}(t,e,n)}))}function Or(t,e,n){for(var r=-1,i=e.length,o={};++r<i;){var s=e[r],a=hr(t,s);n(a,s)&&Dr(o,ai(s,t),a)}return o}function Br(t,e,n,r){var i=r?Se:_e,o=-1,s=e.length,a=t;for(t===e&&(e=vi(e)),n&&(a=le(t,Le(n)));++o<s;)for(var u=0,f=e[o],c=n?n(f):f;(u=i(a,c,u,r))>-1;)a!==t&&Kt.call(a,u,1),Kt.call(t,u,1);return t}function zr(t,e){for(var n=t?e.length:0,r=n-1;n--;){var i=e[n];if(n==r||i!==o){var o=i;so(i)?Kt.call(t,i,1):Qr(t,i)}}return t}function Pr(t,e){return t+Qe(cn()*(e-t+1))}function Ur(t,e){var n="";if(!t||e<1||e>9007199254740991)return n;do{e%2&&(n+=t),(e=Qe(e/2))&&(t+=t)}while(e);return n}function Fr(t,e){return _o(bo(t,e,Za),t+"")}function jr(t){return jn(ka(t))}function Cr(t,e){var n=ka(t);return Eo(n,Kn(e,0,n.length))}function Dr(t,e,n,r){if(!Vs(t))return t;for(var i=-1,o=(e=ai(e,t)).length,s=o-1,a=t;null!=a&&++i<o;){var u=xo(e[i]),f=n;if(i!=s){var c=a[u];void 0===(f=r?r(c,u,a):void 0)&&(f=Vs(c)?c:so(e[i+1])?[]:{})}Vn(a,u,f),a=a[u]}return t}var qr=mn?function(t,e){return mn.set(t,e),t}:Za,Vr=xe?function(t,e){return xe(t,"toString",{configurable:!0,enumerable:!1,value:Va(e),writable:!0})}:Za;function Hr(t){return Eo(ka(t))}function Wr(t,e,n){var i=-1,o=t.length;e<0&&(e=-e>o?0:o+e),(n=n>o?o:n)<0&&(n+=o),o=e>n?0:n-e>>>0,e>>>=0;for(var s=r(o);++i<o;)s[i]=t[i+e];return s}function Zr(t,e){var n;return tr(t,(function(t,r,i){return!(n=e(t,r,i))})),!!n}function Yr(t,e,n){var r=0,i=null==t?r:t.length;if("number"==typeof e&&e==e&&i<=2147483647){for(;r<i;){var o=r+i>>>1,s=t[o];null!==s&&!Xs(s)&&(n?s<=e:s<e)?r=o+1:i=o}return i}return Jr(t,e,Za,n)}function Jr(t,e,n,r){e=n(e);for(var i=0,o=null==t?0:t.length,s=e!=e,a=null===e,u=Xs(e),f=void 0===e;i<o;){var c=Qe((i+o)/2),h=n(t[c]),d=void 0!==h,l=null===h,p=h==h,b=Xs(h);if(s)var g=r||p;else g=f?p&&(r||d):a?p&&d&&(r||!l):u?p&&d&&!l&&(r||!b):!l&&!b&&(r?h<=e:h<e);g?i=c+1:o=c}return an(o,4294967294)}function Kr(t,e){for(var n=-1,r=t.length,i=0,o=[];++n<r;){var s=t[n],a=e?e(s):s;if(!n||!ks(a,u)){var u=a;o[i++]=0===s?0:s}}return o}function $r(t){return"number"==typeof t?t:Xs(t)?NaN:+t}function Xr(t){if("string"==typeof t)return t;if(Os(t))return le(t,Xr)+"";if(Xs(t))return In?In.call(t):"";var e=t+"";return"0"==e&&1/t==-1/0?"-0":e}function Gr(t,e,n){var r=-1,i=he,o=t.length,s=!0,a=[],u=a;if(n)s=!1,i=de;else if(o>=200){var f=e?null:Ui(t);if(f)return Ve(f);s=!1,i=Re,u=new Pn}else u=e?[]:a;t:for(;++r<o;){var c=t[r],h=e?e(c):c;if(c=n||0!==c?c:0,s&&h==h){for(var d=u.length;d--;)if(u[d]===h)continue t;e&&u.push(h),a.push(c)}else i(u,h,n)||(u!==a&&u.push(h),a.push(c))}return a}function Qr(t,e){return null==(t=go(t,e=ai(e,t)))||delete t[xo(jo(e))]}function ti(t,e,n,r){return Dr(t,e,n(hr(t,e)),r)}function ei(t,e,n,r){for(var i=t.length,o=r?i:-1;(r?o--:++o<i)&&e(t[o],o,t););return n?Wr(t,r?0:o,r?o+1:i):Wr(t,r?o+1:0,r?i:o)}function ni(t,e){var n=t;return n instanceof Rn&&(n=n.value()),be(e,(function(t,e){return e.func.apply(e.thisArg,pe([t],e.args))}),n)}function ri(t,e,n){var i=t.length;if(i<2)return i?Gr(t[0]):[];for(var o=-1,s=r(i);++o<i;)for(var a=t[o],u=-1;++u<i;)u!=o&&(s[o]=Qn(s[o]||a,t[u],e,n));return Gr(or(s,1),e,n)}function ii(t,e,n){for(var r=-1,i=t.length,o=e.length,s={};++r<i;){var a=r<o?e[r]:void 0;n(s,t[r],a)}return s}function oi(t){return Ps(t)?t:[]}function si(t){return"function"==typeof t?t:Za}function ai(t,e){return Os(t)?t:uo(t,e)?[t]:Ao(aa(t))}var ui=Fr;function fi(t,e,n){var r=t.length;return n=void 0===n?r:n,!e&&n>=r?t:Wr(t,e,n)}var ci=Ke||function(t){return Yt.clearTimeout(t)};function hi(t,e){if(e)return t.slice();var n=t.length,r=qt?qt(n):new t.constructor(n);return t.copy(r),r}function di(t){var e=new t.constructor(t.byteLength);return new Pt(e).set(new Pt(t)),e}function li(t,e){var n=e?di(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.length)}function pi(t,e){if(t!==e){var n=void 0!==t,r=null===t,i=t==t,o=Xs(t),s=void 0!==e,a=null===e,u=e==e,f=Xs(e);if(!a&&!f&&!o&&t>e||o&&s&&u&&!a&&!f||r&&s&&u||!n&&u||!i)return 1;if(!r&&!o&&!f&&t<e||f&&n&&i&&!r&&!o||a&&n&&i||!s&&i||!u)return-1}return 0}function bi(t,e,n,i){for(var o=-1,s=t.length,a=n.length,u=-1,f=e.length,c=sn(s-a,0),h=r(f+c),d=!i;++u<f;)h[u]=e[u];for(;++o<a;)(d||o<s)&&(h[n[o]]=t[o]);for(;c--;)h[u++]=t[o++];return h}function gi(t,e,n,i){for(var o=-1,s=t.length,a=-1,u=n.length,f=-1,c=e.length,h=sn(s-u,0),d=r(h+c),l=!i;++o<h;)d[o]=t[o];for(var p=o;++f<c;)d[p+f]=e[f];for(;++a<u;)(l||o<s)&&(d[p+n[a]]=t[o++]);return d}function vi(t,e){var n=-1,i=t.length;for(e||(e=r(i));++n<i;)e[n]=t[n];return e}function mi(t,e,n,r){var i=!n;n||(n={});for(var o=-1,s=e.length;++o<s;){var a=e[o],u=r?r(n[a],t[a],a,n,t):void 0;void 0===u&&(u=t[a]),i?Yn(n,a,u):Vn(n,a,u)}return n}function yi(t,e){return function(n,r){var i=Os(n)?se:Wn,o=e?e():{};return i(n,t,$i(r,2),o)}}function wi(t){return Fr((function(e,n){var r=-1,i=n.length,o=i>1?n[i-1]:void 0,s=i>2?n[2]:void 0;for(o=t.length>3&&"function"==typeof o?(i--,o):void 0,s&&ao(n[0],n[1],s)&&(o=i<3?void 0:o,i=1),e=bt(e);++r<i;){var a=n[r];a&&t(e,a,r,o)}return e}))}function _i(t,e){return function(n,r){if(null==n)return n;if(!zs(n))return t(n,r);for(var i=n.length,o=e?i:-1,s=bt(n);(e?o--:++o<i)&&!1!==r(s[o],o,s););return n}}function Si(t){return function(e,n,r){for(var i=-1,o=bt(e),s=r(e),a=s.length;a--;){var u=s[t?a:++i];if(!1===n(o[u],u,o))break}return e}}function Mi(t){return function(e){var n=je(e=aa(e))?Ze(e):void 0,r=n?n[0]:e.charAt(0),i=n?fi(n,1).join(""):e.slice(1);return r[t]()+i}}function Ei(t){return function(e){return be(Ca(Ra(e).replace(Rt,"")),t,"")}}function Ai(t){return function(){var e=arguments;switch(e.length){case 0:return new t;case 1:return new t(e[0]);case 2:return new t(e[0],e[1]);case 3:return new t(e[0],e[1],e[2]);case 4:return new t(e[0],e[1],e[2],e[3]);case 5:return new t(e[0],e[1],e[2],e[3],e[4]);case 6:return new t(e[0],e[1],e[2],e[3],e[4],e[5]);case 7:return new t(e[0],e[1],e[2],e[3],e[4],e[5],e[6])}var n=kn(t.prototype),r=t.apply(n,e);return Vs(r)?r:n}}function xi(t){return function(e,n,r){var i=bt(e);if(!zs(e)){var o=$i(n,3);e=wa(e),n=function(t){return o(i[t],t,i)}}var s=t(e,n,r);return s>-1?i[o?e[s]:s]:void 0}}function Ii(t){return Hi((function(e){var n=e.length,r=n,i=Nn.prototype.thru;for(t&&e.reverse();r--;){var s=e[r];if("function"!=typeof s)throw new mt(o);if(i&&!a&&"wrapper"==Ji(s))var a=new Nn([],!0)}for(r=a?r:n;++r<n;){var u=Ji(s=e[r]),f="wrapper"==u?Yi(s):void 0;a=f&&fo(f[0])&&424==f[1]&&!f[4].length&&1==f[9]?a[Ji(f[0])].apply(a,f[3]):1==s.length&&fo(s)?a[u]():a.thru(s)}return function(){var t=arguments,r=t[0];if(a&&1==t.length&&Os(r))return a.plant(r).value();for(var i=0,o=n?e[i].apply(this,t):r;++i<n;)o=e[i].call(this,o);return o}}))}function Ti(t,e,n,i,o,s,a,u,f,c){var h=128&e,d=1&e,l=2&e,p=24&e,b=512&e,g=l?void 0:Ai(t);return function v(){for(var m=arguments.length,y=r(m),w=m;w--;)y[w]=arguments[w];if(p)var _=Ki(v),S=ze(y,_);if(i&&(y=bi(y,i,o,p)),s&&(y=gi(y,s,a,p)),m-=S,p&&m<c){var M=qe(y,_);return zi(t,e,Ti,v.placeholder,n,y,M,u,f,c-m)}var E=d?n:this,A=l?E[t]:t;return m=y.length,u?y=vo(y,u):b&&m>1&&y.reverse(),h&&f<m&&(y.length=f),this&&this!==Yt&&this instanceof v&&(A=g||Ai(A)),A.apply(E,y)}}function ki(t,e){return function(n,r){return function(t,e,n,r){return ur(t,(function(t,i,o){e(r,n(t),i,o)})),r}(n,t,e(r),{})}}function Li(t,e){return function(n,r){var i;if(void 0===n&&void 0===r)return e;if(void 0!==n&&(i=n),void 0!==r){if(void 0===i)return r;"string"==typeof n||"string"==typeof r?(n=Xr(n),r=Xr(r)):(n=$r(n),r=$r(r)),i=t(n,r)}return i}}function Ni(t){return Hi((function(e){return e=le(e,Le($i())),Fr((function(n){var r=this;return t(e,(function(t){return oe(t,r,n)}))}))}))}function Ri(t,e){var n=(e=void 0===e?" ":Xr(e)).length;if(n<2)return n?Ur(e,t):e;var r=Ur(e,Ge(t/We(e)));return je(e)?fi(Ze(r),0,t).join(""):r.slice(0,t)}function Oi(t){return function(e,n,i){return i&&"number"!=typeof i&&ao(e,n,i)&&(n=i=void 0),e=na(e),void 0===n?(n=e,e=0):n=na(n),function(t,e,n,i){for(var o=-1,s=sn(Ge((e-t)/(n||1)),0),a=r(s);s--;)a[i?s:++o]=t,t+=n;return a}(e,n,i=void 0===i?e<n?1:-1:na(i),t)}}function Bi(t){return function(e,n){return"string"==typeof e&&"string"==typeof n||(e=oa(e),n=oa(n)),t(e,n)}}function zi(t,e,n,r,i,o,s,a,u,f){var c=8&e;e|=c?32:64,4&(e&=~(c?64:32))||(e&=-4);var h=[t,e,i,c?o:void 0,c?s:void 0,c?void 0:o,c?void 0:s,a,u,f],d=n.apply(void 0,h);return fo(t)&&yo(d,h),d.placeholder=r,So(d,t,e)}function Pi(t){var e=pt[t];return function(t,n){if(t=oa(t),(n=null==n?0:an(ra(n),292))&&nn(t)){var r=(aa(t)+"e").split("e");return+((r=(aa(e(r[0]+"e"+(+r[1]+n)))+"e").split("e"))[0]+"e"+(+r[1]-n))}return e(t)}}var Ui=bn&&1/Ve(new bn([,-0]))[1]==1/0?function(t){return new bn(t)}:Xa;function Fi(t){return function(e){var n=no(e);return n==b?Ce(e):n==y?He(e):function(t,e){return le(e,(function(e){return[e,t[e]]}))}(e,t(e))}}function ji(t,e,n,i,a,u,f,c){var h=2&e;if(!h&&"function"!=typeof t)throw new mt(o);var d=i?i.length:0;if(d||(e&=-97,i=a=void 0),f=void 0===f?f:sn(ra(f),0),c=void 0===c?c:ra(c),d-=a?a.length:0,64&e){var l=i,p=a;i=a=void 0}var b=h?void 0:Yi(t),g=[t,e,n,i,a,l,p,u,f,c];if(b&&function(t,e){var n=t[1],r=e[1],i=n|r,o=i<131,a=128==r&&8==n||128==r&&256==n&&t[7].length<=e[8]||384==r&&e[7].length<=e[8]&&8==n;if(!o&&!a)return t;1&r&&(t[2]=e[2],i|=1&n?0:4);var u=e[3];if(u){var f=t[3];t[3]=f?bi(f,u,e[4]):u,t[4]=f?qe(t[3],s):e[4]}(u=e[5])&&(f=t[5],t[5]=f?gi(f,u,e[6]):u,t[6]=f?qe(t[5],s):e[6]);(u=e[7])&&(t[7]=u);128&r&&(t[8]=null==t[8]?e[8]:an(t[8],e[8]));null==t[9]&&(t[9]=e[9]);t[0]=e[0],t[1]=i}(g,b),t=g[0],e=g[1],n=g[2],i=g[3],a=g[4],!(c=g[9]=void 0===g[9]?h?0:t.length:sn(g[9]-d,0))&&24&e&&(e&=-25),e&&1!=e)v=8==e||16==e?function(t,e,n){var i=Ai(t);return function o(){for(var s=arguments.length,a=r(s),u=s,f=Ki(o);u--;)a[u]=arguments[u];var c=s<3&&a[0]!==f&&a[s-1]!==f?[]:qe(a,f);if((s-=c.length)<n)return zi(t,e,Ti,o.placeholder,void 0,a,c,void 0,void 0,n-s);var h=this&&this!==Yt&&this instanceof o?i:t;return oe(h,this,a)}}(t,e,c):32!=e&&33!=e||a.length?Ti.apply(void 0,g):function(t,e,n,i){var o=1&e,s=Ai(t);return function e(){for(var a=-1,u=arguments.length,f=-1,c=i.length,h=r(c+u),d=this&&this!==Yt&&this instanceof e?s:t;++f<c;)h[f]=i[f];for(;u--;)h[f++]=arguments[++a];return oe(d,o?n:this,h)}}(t,e,n,i);else var v=function(t,e,n){var r=1&e,i=Ai(t);return function e(){var o=this&&this!==Yt&&this instanceof e?i:t;return o.apply(r?n:this,arguments)}}(t,e,n);return So((b?qr:yo)(v,g),t,e)}function Ci(t,e,n,r){return void 0===t||ks(t,_t[n])&&!Et.call(r,n)?e:t}function Di(t,e,n,r,i,o){return Vs(t)&&Vs(e)&&(o.set(e,t),Lr(t,e,void 0,Di,o),o.delete(e)),t}function qi(t){return Ys(t)?void 0:t}function Vi(t,e,n,r,i,o){var s=1&n,a=t.length,u=e.length;if(a!=u&&!(s&&u>a))return!1;var f=o.get(t);if(f&&o.get(e))return f==e;var c=-1,h=!0,d=2&n?new Pn:void 0;for(o.set(t,e),o.set(e,t);++c<a;){var l=t[c],p=e[c];if(r)var b=s?r(p,l,c,e,t,o):r(l,p,c,t,e,o);if(void 0!==b){if(b)continue;h=!1;break}if(d){if(!ve(e,(function(t,e){if(!Re(d,e)&&(l===t||i(l,t,n,r,o)))return d.push(e)}))){h=!1;break}}else if(l!==p&&!i(l,p,n,r,o)){h=!1;break}}return o.delete(t),o.delete(e),h}function Hi(t){return _o(bo(t,void 0,Bo),t+"")}function Wi(t){return dr(t,wa,to)}function Zi(t){return dr(t,_a,eo)}var Yi=mn?function(t){return mn.get(t)}:Xa;function Ji(t){for(var e=t.name+"",n=yn[e],r=Et.call(yn,e)?n.length:0;r--;){var i=n[r],o=i.func;if(null==o||o==t)return i.name}return e}function Ki(t){return(Et.call(Tn,"placeholder")?Tn:t).placeholder}function $i(){var t=Tn.iteratee||Ya;return t=t===Ya?Mr:t,arguments.length?t(arguments[0],arguments[1]):t}function Xi(t,e){var n,r,i=t.__data__;return("string"==(r=typeof(n=e))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?i["string"==typeof e?"string":"hash"]:i.map}function Gi(t){for(var e=wa(t),n=e.length;n--;){var r=e[n],i=t[r];e[n]=[r,i,lo(i)]}return e}function Qi(t,e){var n=function(t,e){return null==t?void 0:t[e]}(t,e);return Sr(n)?n:void 0}var to=tn?function(t){return null==t?[]:(t=bt(t),ce(tn(t),(function(e){return Jt.call(t,e)})))}:iu,eo=tn?function(t){for(var e=[];t;)pe(e,to(t)),t=Wt(t);return e}:iu,no=lr;function ro(t,e,n){for(var r=-1,i=(e=ai(e,t)).length,o=!1;++r<i;){var s=xo(e[r]);if(!(o=null!=t&&n(t,s)))break;t=t[s]}return o||++r!=i?o:!!(i=null==t?0:t.length)&&qs(i)&&so(s,i)&&(Os(t)||Rs(t))}function io(t){return"function"!=typeof t.constructor||ho(t)?{}:kn(Wt(t))}function oo(t){return Os(t)||Rs(t)||!!(Xt&&t&&t[Xt])}function so(t,e){var n=typeof t;return!!(e=null==e?9007199254740991:e)&&("number"==n||"symbol"!=n&&ut.test(t))&&t>-1&&t%1==0&&t<e}function ao(t,e,n){if(!Vs(n))return!1;var r=typeof e;return!!("number"==r?zs(n)&&so(e,n.length):"string"==r&&e in n)&&ks(n[e],t)}function uo(t,e){if(Os(t))return!1;var n=typeof t;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=t&&!Xs(t))||(H.test(t)||!V.test(t)||null!=e&&t in bt(e))}function fo(t){var e=Ji(t),n=Tn[e];if("function"!=typeof n||!(e in Rn.prototype))return!1;if(t===n)return!0;var r=Yi(n);return!!r&&t===r[0]}(dn&&no(new dn(new ArrayBuffer(1)))!=E||ln&&no(new ln)!=b||pn&&"[object Promise]"!=no(pn.resolve())||bn&&no(new bn)!=y||gn&&no(new gn)!=S)&&(no=function(t){var e=lr(t),n=e==v?t.constructor:void 0,r=n?Io(n):"";if(r)switch(r){case wn:return E;case _n:return b;case Sn:return"[object Promise]";case Mn:return y;case En:return S}return e});var co=St?Cs:ou;function ho(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||_t)}function lo(t){return t==t&&!Vs(t)}function po(t,e){return function(n){return null!=n&&(n[t]===e&&(void 0!==e||t in bt(n)))}}function bo(t,e,n){return e=sn(void 0===e?t.length-1:e,0),function(){for(var i=arguments,o=-1,s=sn(i.length-e,0),a=r(s);++o<s;)a[o]=i[e+o];o=-1;for(var u=r(e+1);++o<e;)u[o]=i[o];return u[e]=n(a),oe(t,this,u)}}function go(t,e){return e.length<2?t:hr(t,Wr(e,0,-1))}function vo(t,e){for(var n=t.length,r=an(e.length,n),i=vi(t);r--;){var o=e[r];t[r]=so(o,n)?i[o]:void 0}return t}function mo(t,e){if(("constructor"!==e||"function"!=typeof t[e])&&"__proto__"!=e)return t[e]}var yo=Mo(qr),wo=Xe||function(t,e){return Yt.setTimeout(t,e)},_o=Mo(Vr);function So(t,e,n){var r=e+"";return _o(t,function(t,e){var n=e.length;if(!n)return t;var r=n-1;return e[r]=(n>1?"& ":"")+e[r],e=e.join(n>2?", ":" "),t.replace(X,"{\n/* [wrapped with "+e+"] */\n")}(r,function(t,e){return ae(a,(function(n){var r="_."+n[0];e&n[1]&&!he(t,r)&&t.push(r)})),t.sort()}(function(t){var e=t.match(G);return e?e[1].split(Q):[]}(r),n)))}function Mo(t){var e=0,n=0;return function(){var r=un(),i=16-(r-n);if(n=r,i>0){if(++e>=800)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}function Eo(t,e){var n=-1,r=t.length,i=r-1;for(e=void 0===e?r:e;++n<e;){var o=Pr(n,i),s=t[o];t[o]=t[n],t[n]=s}return t.length=e,t}var Ao=function(t){var e=Ms(t,(function(t){return 500===n.size&&n.clear(),t})),n=e.cache;return e}((function(t){var e=[];return 46===t.charCodeAt(0)&&e.push(""),t.replace(W,(function(t,n,r,i){e.push(r?i.replace(et,"$1"):n||t)})),e}));function xo(t){if("string"==typeof t||Xs(t))return t;var e=t+"";return"0"==e&&1/t==-1/0?"-0":e}function Io(t){if(null!=t){try{return Mt.call(t)}catch(t){}try{return t+""}catch(t){}}return""}function To(t){if(t instanceof Rn)return t.clone();var e=new Nn(t.__wrapped__,t.__chain__);return e.__actions__=vi(t.__actions__),e.__index__=t.__index__,e.__values__=t.__values__,e}var ko=Fr((function(t,e){return Ps(t)?Qn(t,or(e,1,Ps,!0)):[]})),Lo=Fr((function(t,e){var n=jo(e);return Ps(n)&&(n=void 0),Ps(t)?Qn(t,or(e,1,Ps,!0),$i(n,2)):[]})),No=Fr((function(t,e){var n=jo(e);return Ps(n)&&(n=void 0),Ps(t)?Qn(t,or(e,1,Ps,!0),void 0,n):[]}));function Ro(t,e,n){var r=null==t?0:t.length;if(!r)return-1;var i=null==n?0:ra(n);return i<0&&(i=sn(r+i,0)),we(t,$i(e,3),i)}function Oo(t,e,n){var r=null==t?0:t.length;if(!r)return-1;var i=r-1;return void 0!==n&&(i=ra(n),i=n<0?sn(r+i,0):an(i,r-1)),we(t,$i(e,3),i,!0)}function Bo(t){return(null==t?0:t.length)?or(t,1):[]}function zo(t){return t&&t.length?t[0]:void 0}var Po=Fr((function(t){var e=le(t,oi);return e.length&&e[0]===t[0]?vr(e):[]})),Uo=Fr((function(t){var e=jo(t),n=le(t,oi);return e===jo(n)?e=void 0:n.pop(),n.length&&n[0]===t[0]?vr(n,$i(e,2)):[]})),Fo=Fr((function(t){var e=jo(t),n=le(t,oi);return(e="function"==typeof e?e:void 0)&&n.pop(),n.length&&n[0]===t[0]?vr(n,void 0,e):[]}));function jo(t){var e=null==t?0:t.length;return e?t[e-1]:void 0}var Co=Fr(Do);function Do(t,e){return t&&t.length&&e&&e.length?Br(t,e):t}var qo=Hi((function(t,e){var n=null==t?0:t.length,r=Jn(t,e);return zr(t,le(e,(function(t){return so(t,n)?+t:t})).sort(pi)),r}));function Vo(t){return null==t?t:hn.call(t)}var Ho=Fr((function(t){return Gr(or(t,1,Ps,!0))})),Wo=Fr((function(t){var e=jo(t);return Ps(e)&&(e=void 0),Gr(or(t,1,Ps,!0),$i(e,2))})),Zo=Fr((function(t){var e=jo(t);return e="function"==typeof e?e:void 0,Gr(or(t,1,Ps,!0),void 0,e)}));function Yo(t){if(!t||!t.length)return[];var e=0;return t=ce(t,(function(t){if(Ps(t))return e=sn(t.length,e),!0})),ke(e,(function(e){return le(t,Ae(e))}))}function Jo(t,e){if(!t||!t.length)return[];var n=Yo(t);return null==e?n:le(n,(function(t){return oe(e,void 0,t)}))}var Ko=Fr((function(t,e){return Ps(t)?Qn(t,e):[]})),$o=Fr((function(t){return ri(ce(t,Ps))})),Xo=Fr((function(t){var e=jo(t);return Ps(e)&&(e=void 0),ri(ce(t,Ps),$i(e,2))})),Go=Fr((function(t){var e=jo(t);return e="function"==typeof e?e:void 0,ri(ce(t,Ps),void 0,e)})),Qo=Fr(Yo);var ts=Fr((function(t){var e=t.length,n=e>1?t[e-1]:void 0;return n="function"==typeof n?(t.pop(),n):void 0,Jo(t,n)}));function es(t){var e=Tn(t);return e.__chain__=!0,e}function ns(t,e){return e(t)}var rs=Hi((function(t){var e=t.length,n=e?t[0]:0,r=this.__wrapped__,i=function(e){return Jn(e,t)};return!(e>1||this.__actions__.length)&&r instanceof Rn&&so(n)?((r=r.slice(n,+n+(e?1:0))).__actions__.push({func:ns,args:[i],thisArg:void 0}),new Nn(r,this.__chain__).thru((function(t){return e&&!t.length&&t.push(void 0),t}))):this.thru(i)}));var is=yi((function(t,e,n){Et.call(t,n)?++t[n]:Yn(t,n,1)}));var os=xi(Ro),ss=xi(Oo);function as(t,e){return(Os(t)?ae:tr)(t,$i(e,3))}function us(t,e){return(Os(t)?ue:er)(t,$i(e,3))}var fs=yi((function(t,e,n){Et.call(t,n)?t[n].push(e):Yn(t,n,[e])}));var cs=Fr((function(t,e,n){var i=-1,o="function"==typeof e,s=zs(t)?r(t.length):[];return tr(t,(function(t){s[++i]=o?oe(e,t,n):mr(t,e,n)})),s})),hs=yi((function(t,e,n){Yn(t,n,e)}));function ds(t,e){return(Os(t)?le:Ir)(t,$i(e,3))}var ls=yi((function(t,e,n){t[n?0:1].push(e)}),(function(){return[[],[]]}));var ps=Fr((function(t,e){if(null==t)return[];var n=e.length;return n>1&&ao(t,e[0],e[1])?e=[]:n>2&&ao(e[0],e[1],e[2])&&(e=[e[0]]),Rr(t,or(e,1),[])})),bs=$e||function(){return Yt.Date.now()};function gs(t,e,n){return e=n?void 0:e,ji(t,128,void 0,void 0,void 0,void 0,e=t&&null==e?t.length:e)}function vs(t,e){var n;if("function"!=typeof e)throw new mt(o);return t=ra(t),function(){return--t>0&&(n=e.apply(this,arguments)),t<=1&&(e=void 0),n}}var ms=Fr((function(t,e,n){var r=1;if(n.length){var i=qe(n,Ki(ms));r|=32}return ji(t,r,e,n,i)})),ys=Fr((function(t,e,n){var r=3;if(n.length){var i=qe(n,Ki(ys));r|=32}return ji(e,r,t,n,i)}));function ws(t,e,n){var r,i,s,a,u,f,c=0,h=!1,d=!1,l=!0;if("function"!=typeof t)throw new mt(o);function p(e){var n=r,o=i;return r=i=void 0,c=e,a=t.apply(o,n)}function b(t){return c=t,u=wo(v,e),h?p(t):a}function g(t){var n=t-f;return void 0===f||n>=e||n<0||d&&t-c>=s}function v(){var t=bs();if(g(t))return m(t);u=wo(v,function(t){var n=e-(t-f);return d?an(n,s-(t-c)):n}(t))}function m(t){return u=void 0,l&&r?p(t):(r=i=void 0,a)}function y(){var t=bs(),n=g(t);if(r=arguments,i=this,f=t,n){if(void 0===u)return b(f);if(d)return ci(u),u=wo(v,e),p(f)}return void 0===u&&(u=wo(v,e)),a}return e=oa(e)||0,Vs(n)&&(h=!!n.leading,s=(d="maxWait"in n)?sn(oa(n.maxWait)||0,e):s,l="trailing"in n?!!n.trailing:l),y.cancel=function(){void 0!==u&&ci(u),c=0,r=f=i=u=void 0},y.flush=function(){return void 0===u?a:m(bs())},y}var _s=Fr((function(t,e){return Gn(t,1,e)})),Ss=Fr((function(t,e,n){return Gn(t,oa(e)||0,n)}));function Ms(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new mt(o);var n=function(){var r=arguments,i=e?e.apply(this,r):r[0],o=n.cache;if(o.has(i))return o.get(i);var s=t.apply(this,r);return n.cache=o.set(i,s)||o,s};return n.cache=new(Ms.Cache||zn),n}function Es(t){if("function"!=typeof t)throw new mt(o);return function(){var e=arguments;switch(e.length){case 0:return!t.call(this);case 1:return!t.call(this,e[0]);case 2:return!t.call(this,e[0],e[1]);case 3:return!t.call(this,e[0],e[1],e[2])}return!t.apply(this,e)}}Ms.Cache=zn;var As=ui((function(t,e){var n=(e=1==e.length&&Os(e[0])?le(e[0],Le($i())):le(or(e,1),Le($i()))).length;return Fr((function(r){for(var i=-1,o=an(r.length,n);++i<o;)r[i]=e[i].call(this,r[i]);return oe(t,this,r)}))})),xs=Fr((function(t,e){return ji(t,32,void 0,e,qe(e,Ki(xs)))})),Is=Fr((function(t,e){return ji(t,64,void 0,e,qe(e,Ki(Is)))})),Ts=Hi((function(t,e){return ji(t,256,void 0,void 0,void 0,e)}));function ks(t,e){return t===e||t!=t&&e!=e}var Ls=Bi(pr),Ns=Bi((function(t,e){return t>=e})),Rs=yr(function(){return arguments}())?yr:function(t){return Hs(t)&&Et.call(t,"callee")&&!Jt.call(t,"callee")},Os=r.isArray,Bs=Qt?Le(Qt):function(t){return Hs(t)&&lr(t)==M};function zs(t){return null!=t&&qs(t.length)&&!Cs(t)}function Ps(t){return Hs(t)&&zs(t)}var Us=en||ou,Fs=te?Le(te):function(t){return Hs(t)&&lr(t)==h};function js(t){if(!Hs(t))return!1;var e=lr(t);return e==d||"[object DOMException]"==e||"string"==typeof t.message&&"string"==typeof t.name&&!Ys(t)}function Cs(t){if(!Vs(t))return!1;var e=lr(t);return e==l||e==p||"[object AsyncFunction]"==e||"[object Proxy]"==e}function Ds(t){return"number"==typeof t&&t==ra(t)}function qs(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=9007199254740991}function Vs(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}function Hs(t){return null!=t&&"object"==typeof t}var Ws=ee?Le(ee):function(t){return Hs(t)&&no(t)==b};function Zs(t){return"number"==typeof t||Hs(t)&&lr(t)==g}function Ys(t){if(!Hs(t)||lr(t)!=v)return!1;var e=Wt(t);if(null===e)return!0;var n=Et.call(e,"constructor")&&e.constructor;return"function"==typeof n&&n instanceof n&&Mt.call(n)==Tt}var Js=ne?Le(ne):function(t){return Hs(t)&&lr(t)==m};var Ks=re?Le(re):function(t){return Hs(t)&&no(t)==y};function $s(t){return"string"==typeof t||!Os(t)&&Hs(t)&&lr(t)==w}function Xs(t){return"symbol"==typeof t||Hs(t)&&lr(t)==_}var Gs=ie?Le(ie):function(t){return Hs(t)&&qs(t.length)&&!!Ct[lr(t)]};var Qs=Bi(xr),ta=Bi((function(t,e){return t<=e}));function ea(t){if(!t)return[];if(zs(t))return $s(t)?Ze(t):vi(t);if(Gt&&t[Gt])return function(t){for(var e,n=[];!(e=t.next()).done;)n.push(e.value);return n}(t[Gt]());var e=no(t);return(e==b?Ce:e==y?Ve:ka)(t)}function na(t){return t?(t=oa(t))===1/0||t===-1/0?17976931348623157e292*(t<0?-1:1):t==t?t:0:0===t?t:0}function ra(t){var e=na(t),n=e%1;return e==e?n?e-n:e:0}function ia(t){return t?Kn(ra(t),0,4294967295):0}function oa(t){if("number"==typeof t)return t;if(Xs(t))return NaN;if(Vs(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=Vs(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(J,"");var n=ot.test(t);return n||at.test(t)?Ht(t.slice(2),n?2:8):it.test(t)?NaN:+t}function sa(t){return mi(t,_a(t))}function aa(t){return null==t?"":Xr(t)}var ua=wi((function(t,e){if(ho(e)||zs(e))mi(e,wa(e),t);else for(var n in e)Et.call(e,n)&&Vn(t,n,e[n])})),fa=wi((function(t,e){mi(e,_a(e),t)})),ca=wi((function(t,e,n,r){mi(e,_a(e),t,r)})),ha=wi((function(t,e,n,r){mi(e,wa(e),t,r)})),da=Hi(Jn);var la=Fr((function(t,e){t=bt(t);var n=-1,r=e.length,i=r>2?e[2]:void 0;for(i&&ao(e[0],e[1],i)&&(r=1);++n<r;)for(var o=e[n],s=_a(o),a=-1,u=s.length;++a<u;){var f=s[a],c=t[f];(void 0===c||ks(c,_t[f])&&!Et.call(t,f))&&(t[f]=o[f])}return t})),pa=Fr((function(t){return t.push(void 0,Di),oe(Ma,void 0,t)}));function ba(t,e,n){var r=null==t?void 0:hr(t,e);return void 0===r?n:r}function ga(t,e){return null!=t&&ro(t,e,gr)}var va=ki((function(t,e,n){null!=e&&"function"!=typeof e.toString&&(e=It.call(e)),t[e]=n}),Va(Za)),ma=ki((function(t,e,n){null!=e&&"function"!=typeof e.toString&&(e=It.call(e)),Et.call(t,e)?t[e].push(n):t[e]=[n]}),$i),ya=Fr(mr);function wa(t){return zs(t)?Fn(t):Er(t)}function _a(t){return zs(t)?Fn(t,!0):Ar(t)}var Sa=wi((function(t,e,n){Lr(t,e,n)})),Ma=wi((function(t,e,n,r){Lr(t,e,n,r)})),Ea=Hi((function(t,e){var n={};if(null==t)return n;var r=!1;e=le(e,(function(e){return e=ai(e,t),r||(r=e.length>1),e})),mi(t,Zi(t),n),r&&(n=$n(n,7,qi));for(var i=e.length;i--;)Qr(n,e[i]);return n}));var Aa=Hi((function(t,e){return null==t?{}:function(t,e){return Or(t,e,(function(e,n){return ga(t,n)}))}(t,e)}));function xa(t,e){if(null==t)return{};var n=le(Zi(t),(function(t){return[t]}));return e=$i(e),Or(t,n,(function(t,n){return e(t,n[0])}))}var Ia=Fi(wa),Ta=Fi(_a);function ka(t){return null==t?[]:Ne(t,wa(t))}var La=Ei((function(t,e,n){return e=e.toLowerCase(),t+(n?Na(e):e)}));function Na(t){return ja(aa(t).toLowerCase())}function Ra(t){return(t=aa(t))&&t.replace(ft,Pe).replace(Ot,"")}var Oa=Ei((function(t,e,n){return t+(n?"-":"")+e.toLowerCase()})),Ba=Ei((function(t,e,n){return t+(n?" ":"")+e.toLowerCase()})),za=Mi("toLowerCase");var Pa=Ei((function(t,e,n){return t+(n?"_":"")+e.toLowerCase()}));var Ua=Ei((function(t,e,n){return t+(n?" ":"")+ja(e)}));var Fa=Ei((function(t,e,n){return t+(n?" ":"")+e.toUpperCase()})),ja=Mi("toUpperCase");function Ca(t,e,n){return t=aa(t),void 0===(e=n?void 0:e)?function(t){return Ut.test(t)}(t)?function(t){return t.match(zt)||[]}(t):function(t){return t.match(tt)||[]}(t):t.match(e)||[]}var Da=Fr((function(t,e){try{return oe(t,void 0,e)}catch(t){return js(t)?t:new dt(t)}})),qa=Hi((function(t,e){return ae(e,(function(e){e=xo(e),Yn(t,e,ms(t[e],t))})),t}));function Va(t){return function(){return t}}var Ha=Ii(),Wa=Ii(!0);function Za(t){return t}function Ya(t){return Mr("function"==typeof t?t:$n(t,1))}var Ja=Fr((function(t,e){return function(n){return mr(n,t,e)}})),Ka=Fr((function(t,e){return function(n){return mr(t,n,e)}}));function $a(t,e,n){var r=wa(e),i=cr(e,r);null!=n||Vs(e)&&(i.length||!r.length)||(n=e,e=t,t=this,i=cr(e,wa(e)));var o=!(Vs(n)&&"chain"in n&&!n.chain),s=Cs(t);return ae(i,(function(n){var r=e[n];t[n]=r,s&&(t.prototype[n]=function(){var e=this.__chain__;if(o||e){var n=t(this.__wrapped__),i=n.__actions__=vi(this.__actions__);return i.push({func:r,args:arguments,thisArg:t}),n.__chain__=e,n}return r.apply(t,pe([this.value()],arguments))})})),t}function Xa(){}var Ga=Ni(le),Qa=Ni(fe),tu=Ni(ve);function eu(t){return uo(t)?Ae(xo(t)):function(t){return function(e){return hr(e,t)}}(t)}var nu=Oi(),ru=Oi(!0);function iu(){return[]}function ou(){return!1}var su=Li((function(t,e){return t+e}),0),au=Pi("ceil"),uu=Li((function(t,e){return t/e}),1),fu=Pi("floor");var cu,hu=Li((function(t,e){return t*e}),1),du=Pi("round"),lu=Li((function(t,e){return t-e}),0);return Tn.after=function(t,e){if("function"!=typeof e)throw new mt(o);return t=ra(t),function(){if(--t<1)return e.apply(this,arguments)}},Tn.ary=gs,Tn.assign=ua,Tn.assignIn=fa,Tn.assignInWith=ca,Tn.assignWith=ha,Tn.at=da,Tn.before=vs,Tn.bind=ms,Tn.bindAll=qa,Tn.bindKey=ys,Tn.castArray=function(){if(!arguments.length)return[];var t=arguments[0];return Os(t)?t:[t]},Tn.chain=es,Tn.chunk=function(t,e,n){e=(n?ao(t,e,n):void 0===e)?1:sn(ra(e),0);var i=null==t?0:t.length;if(!i||e<1)return[];for(var o=0,s=0,a=r(Ge(i/e));o<i;)a[s++]=Wr(t,o,o+=e);return a},Tn.compact=function(t){for(var e=-1,n=null==t?0:t.length,r=0,i=[];++e<n;){var o=t[e];o&&(i[r++]=o)}return i},Tn.concat=function(){var t=arguments.length;if(!t)return[];for(var e=r(t-1),n=arguments[0],i=t;i--;)e[i-1]=arguments[i];return pe(Os(n)?vi(n):[n],or(e,1))},Tn.cond=function(t){var e=null==t?0:t.length,n=$i();return t=e?le(t,(function(t){if("function"!=typeof t[1])throw new mt(o);return[n(t[0]),t[1]]})):[],Fr((function(n){for(var r=-1;++r<e;){var i=t[r];if(oe(i[0],this,n))return oe(i[1],this,n)}}))},Tn.conforms=function(t){return function(t){var e=wa(t);return function(n){return Xn(n,t,e)}}($n(t,1))},Tn.constant=Va,Tn.countBy=is,Tn.create=function(t,e){var n=kn(t);return null==e?n:Zn(n,e)},Tn.curry=function t(e,n,r){var i=ji(e,8,void 0,void 0,void 0,void 0,void 0,n=r?void 0:n);return i.placeholder=t.placeholder,i},Tn.curryRight=function t(e,n,r){var i=ji(e,16,void 0,void 0,void 0,void 0,void 0,n=r?void 0:n);return i.placeholder=t.placeholder,i},Tn.debounce=ws,Tn.defaults=la,Tn.defaultsDeep=pa,Tn.defer=_s,Tn.delay=Ss,Tn.difference=ko,Tn.differenceBy=Lo,Tn.differenceWith=No,Tn.drop=function(t,e,n){var r=null==t?0:t.length;return r?Wr(t,(e=n||void 0===e?1:ra(e))<0?0:e,r):[]},Tn.dropRight=function(t,e,n){var r=null==t?0:t.length;return r?Wr(t,0,(e=r-(e=n||void 0===e?1:ra(e)))<0?0:e):[]},Tn.dropRightWhile=function(t,e){return t&&t.length?ei(t,$i(e,3),!0,!0):[]},Tn.dropWhile=function(t,e){return t&&t.length?ei(t,$i(e,3),!0):[]},Tn.fill=function(t,e,n,r){var i=null==t?0:t.length;return i?(n&&"number"!=typeof n&&ao(t,e,n)&&(n=0,r=i),function(t,e,n,r){var i=t.length;for((n=ra(n))<0&&(n=-n>i?0:i+n),(r=void 0===r||r>i?i:ra(r))<0&&(r+=i),r=n>r?0:ia(r);n<r;)t[n++]=e;return t}(t,e,n,r)):[]},Tn.filter=function(t,e){return(Os(t)?ce:ir)(t,$i(e,3))},Tn.flatMap=function(t,e){return or(ds(t,e),1)},Tn.flatMapDeep=function(t,e){return or(ds(t,e),1/0)},Tn.flatMapDepth=function(t,e,n){return n=void 0===n?1:ra(n),or(ds(t,e),n)},Tn.flatten=Bo,Tn.flattenDeep=function(t){return(null==t?0:t.length)?or(t,1/0):[]},Tn.flattenDepth=function(t,e){return(null==t?0:t.length)?or(t,e=void 0===e?1:ra(e)):[]},Tn.flip=function(t){return ji(t,512)},Tn.flow=Ha,Tn.flowRight=Wa,Tn.fromPairs=function(t){for(var e=-1,n=null==t?0:t.length,r={};++e<n;){var i=t[e];r[i[0]]=i[1]}return r},Tn.functions=function(t){return null==t?[]:cr(t,wa(t))},Tn.functionsIn=function(t){return null==t?[]:cr(t,_a(t))},Tn.groupBy=fs,Tn.initial=function(t){return(null==t?0:t.length)?Wr(t,0,-1):[]},Tn.intersection=Po,Tn.intersectionBy=Uo,Tn.intersectionWith=Fo,Tn.invert=va,Tn.invertBy=ma,Tn.invokeMap=cs,Tn.iteratee=Ya,Tn.keyBy=hs,Tn.keys=wa,Tn.keysIn=_a,Tn.map=ds,Tn.mapKeys=function(t,e){var n={};return e=$i(e,3),ur(t,(function(t,r,i){Yn(n,e(t,r,i),t)})),n},Tn.mapValues=function(t,e){var n={};return e=$i(e,3),ur(t,(function(t,r,i){Yn(n,r,e(t,r,i))})),n},Tn.matches=function(t){return Tr($n(t,1))},Tn.matchesProperty=function(t,e){return kr(t,$n(e,1))},Tn.memoize=Ms,Tn.merge=Sa,Tn.mergeWith=Ma,Tn.method=Ja,Tn.methodOf=Ka,Tn.mixin=$a,Tn.negate=Es,Tn.nthArg=function(t){return t=ra(t),Fr((function(e){return Nr(e,t)}))},Tn.omit=Ea,Tn.omitBy=function(t,e){return xa(t,Es($i(e)))},Tn.once=function(t){return vs(2,t)},Tn.orderBy=function(t,e,n,r){return null==t?[]:(Os(e)||(e=null==e?[]:[e]),Os(n=r?void 0:n)||(n=null==n?[]:[n]),Rr(t,e,n))},Tn.over=Ga,Tn.overArgs=As,Tn.overEvery=Qa,Tn.overSome=tu,Tn.partial=xs,Tn.partialRight=Is,Tn.partition=ls,Tn.pick=Aa,Tn.pickBy=xa,Tn.property=eu,Tn.propertyOf=function(t){return function(e){return null==t?void 0:hr(t,e)}},Tn.pull=Co,Tn.pullAll=Do,Tn.pullAllBy=function(t,e,n){return t&&t.length&&e&&e.length?Br(t,e,$i(n,2)):t},Tn.pullAllWith=function(t,e,n){return t&&t.length&&e&&e.length?Br(t,e,void 0,n):t},Tn.pullAt=qo,Tn.range=nu,Tn.rangeRight=ru,Tn.rearg=Ts,Tn.reject=function(t,e){return(Os(t)?ce:ir)(t,Es($i(e,3)))},Tn.remove=function(t,e){var n=[];if(!t||!t.length)return n;var r=-1,i=[],o=t.length;for(e=$i(e,3);++r<o;){var s=t[r];e(s,r,t)&&(n.push(s),i.push(r))}return zr(t,i),n},Tn.rest=function(t,e){if("function"!=typeof t)throw new mt(o);return Fr(t,e=void 0===e?e:ra(e))},Tn.reverse=Vo,Tn.sampleSize=function(t,e,n){return e=(n?ao(t,e,n):void 0===e)?1:ra(e),(Os(t)?Cn:Cr)(t,e)},Tn.set=function(t,e,n){return null==t?t:Dr(t,e,n)},Tn.setWith=function(t,e,n,r){return r="function"==typeof r?r:void 0,null==t?t:Dr(t,e,n,r)},Tn.shuffle=function(t){return(Os(t)?Dn:Hr)(t)},Tn.slice=function(t,e,n){var r=null==t?0:t.length;return r?(n&&"number"!=typeof n&&ao(t,e,n)?(e=0,n=r):(e=null==e?0:ra(e),n=void 0===n?r:ra(n)),Wr(t,e,n)):[]},Tn.sortBy=ps,Tn.sortedUniq=function(t){return t&&t.length?Kr(t):[]},Tn.sortedUniqBy=function(t,e){return t&&t.length?Kr(t,$i(e,2)):[]},Tn.split=function(t,e,n){return n&&"number"!=typeof n&&ao(t,e,n)&&(e=n=void 0),(n=void 0===n?4294967295:n>>>0)?(t=aa(t))&&("string"==typeof e||null!=e&&!Js(e))&&!(e=Xr(e))&&je(t)?fi(Ze(t),0,n):t.split(e,n):[]},Tn.spread=function(t,e){if("function"!=typeof t)throw new mt(o);return e=null==e?0:sn(ra(e),0),Fr((function(n){var r=n[e],i=fi(n,0,e);return r&&pe(i,r),oe(t,this,i)}))},Tn.tail=function(t){var e=null==t?0:t.length;return e?Wr(t,1,e):[]},Tn.take=function(t,e,n){return t&&t.length?Wr(t,0,(e=n||void 0===e?1:ra(e))<0?0:e):[]},Tn.takeRight=function(t,e,n){var r=null==t?0:t.length;return r?Wr(t,(e=r-(e=n||void 0===e?1:ra(e)))<0?0:e,r):[]},Tn.takeRightWhile=function(t,e){return t&&t.length?ei(t,$i(e,3),!1,!0):[]},Tn.takeWhile=function(t,e){return t&&t.length?ei(t,$i(e,3)):[]},Tn.tap=function(t,e){return e(t),t},Tn.throttle=function(t,e,n){var r=!0,i=!0;if("function"!=typeof t)throw new mt(o);return Vs(n)&&(r="leading"in n?!!n.leading:r,i="trailing"in n?!!n.trailing:i),ws(t,e,{leading:r,maxWait:e,trailing:i})},Tn.thru=ns,Tn.toArray=ea,Tn.toPairs=Ia,Tn.toPairsIn=Ta,Tn.toPath=function(t){return Os(t)?le(t,xo):Xs(t)?[t]:vi(Ao(aa(t)))},Tn.toPlainObject=sa,Tn.transform=function(t,e,n){var r=Os(t),i=r||Us(t)||Gs(t);if(e=$i(e,4),null==n){var o=t&&t.constructor;n=i?r?new o:[]:Vs(t)&&Cs(o)?kn(Wt(t)):{}}return(i?ae:ur)(t,(function(t,r,i){return e(n,t,r,i)})),n},Tn.unary=function(t){return gs(t,1)},Tn.union=Ho,Tn.unionBy=Wo,Tn.unionWith=Zo,Tn.uniq=function(t){return t&&t.length?Gr(t):[]},Tn.uniqBy=function(t,e){return t&&t.length?Gr(t,$i(e,2)):[]},Tn.uniqWith=function(t,e){return e="function"==typeof e?e:void 0,t&&t.length?Gr(t,void 0,e):[]},Tn.unset=function(t,e){return null==t||Qr(t,e)},Tn.unzip=Yo,Tn.unzipWith=Jo,Tn.update=function(t,e,n){return null==t?t:ti(t,e,si(n))},Tn.updateWith=function(t,e,n,r){return r="function"==typeof r?r:void 0,null==t?t:ti(t,e,si(n),r)},Tn.values=ka,Tn.valuesIn=function(t){return null==t?[]:Ne(t,_a(t))},Tn.without=Ko,Tn.words=Ca,Tn.wrap=function(t,e){return xs(si(e),t)},Tn.xor=$o,Tn.xorBy=Xo,Tn.xorWith=Go,Tn.zip=Qo,Tn.zipObject=function(t,e){return ii(t||[],e||[],Vn)},Tn.zipObjectDeep=function(t,e){return ii(t||[],e||[],Dr)},Tn.zipWith=ts,Tn.entries=Ia,Tn.entriesIn=Ta,Tn.extend=fa,Tn.extendWith=ca,$a(Tn,Tn),Tn.add=su,Tn.attempt=Da,Tn.camelCase=La,Tn.capitalize=Na,Tn.ceil=au,Tn.clamp=function(t,e,n){return void 0===n&&(n=e,e=void 0),void 0!==n&&(n=(n=oa(n))==n?n:0),void 0!==e&&(e=(e=oa(e))==e?e:0),Kn(oa(t),e,n)},Tn.clone=function(t){return $n(t,4)},Tn.cloneDeep=function(t){return $n(t,5)},Tn.cloneDeepWith=function(t,e){return $n(t,5,e="function"==typeof e?e:void 0)},Tn.cloneWith=function(t,e){return $n(t,4,e="function"==typeof e?e:void 0)},Tn.conformsTo=function(t,e){return null==e||Xn(t,e,wa(e))},Tn.deburr=Ra,Tn.defaultTo=function(t,e){return null==t||t!=t?e:t},Tn.divide=uu,Tn.endsWith=function(t,e,n){t=aa(t),e=Xr(e);var r=t.length,i=n=void 0===n?r:Kn(ra(n),0,r);return(n-=e.length)>=0&&t.slice(n,i)==e},Tn.eq=ks,Tn.escape=function(t){return(t=aa(t))&&j.test(t)?t.replace(U,Ue):t},Tn.escapeRegExp=function(t){return(t=aa(t))&&Y.test(t)?t.replace(Z,"\\$&"):t},Tn.every=function(t,e,n){var r=Os(t)?fe:nr;return n&&ao(t,e,n)&&(e=void 0),r(t,$i(e,3))},Tn.find=os,Tn.findIndex=Ro,Tn.findKey=function(t,e){return ye(t,$i(e,3),ur)},Tn.findLast=ss,Tn.findLastIndex=Oo,Tn.findLastKey=function(t,e){return ye(t,$i(e,3),fr)},Tn.floor=fu,Tn.forEach=as,Tn.forEachRight=us,Tn.forIn=function(t,e){return null==t?t:sr(t,$i(e,3),_a)},Tn.forInRight=function(t,e){return null==t?t:ar(t,$i(e,3),_a)},Tn.forOwn=function(t,e){return t&&ur(t,$i(e,3))},Tn.forOwnRight=function(t,e){return t&&fr(t,$i(e,3))},Tn.get=ba,Tn.gt=Ls,Tn.gte=Ns,Tn.has=function(t,e){return null!=t&&ro(t,e,br)},Tn.hasIn=ga,Tn.head=zo,Tn.identity=Za,Tn.includes=function(t,e,n,r){t=zs(t)?t:ka(t),n=n&&!r?ra(n):0;var i=t.length;return n<0&&(n=sn(i+n,0)),$s(t)?n<=i&&t.indexOf(e,n)>-1:!!i&&_e(t,e,n)>-1},Tn.indexOf=function(t,e,n){var r=null==t?0:t.length;if(!r)return-1;var i=null==n?0:ra(n);return i<0&&(i=sn(r+i,0)),_e(t,e,i)},Tn.inRange=function(t,e,n){return e=na(e),void 0===n?(n=e,e=0):n=na(n),function(t,e,n){return t>=an(e,n)&&t<sn(e,n)}(t=oa(t),e,n)},Tn.invoke=ya,Tn.isArguments=Rs,Tn.isArray=Os,Tn.isArrayBuffer=Bs,Tn.isArrayLike=zs,Tn.isArrayLikeObject=Ps,Tn.isBoolean=function(t){return!0===t||!1===t||Hs(t)&&lr(t)==c},Tn.isBuffer=Us,Tn.isDate=Fs,Tn.isElement=function(t){return Hs(t)&&1===t.nodeType&&!Ys(t)},Tn.isEmpty=function(t){if(null==t)return!0;if(zs(t)&&(Os(t)||"string"==typeof t||"function"==typeof t.splice||Us(t)||Gs(t)||Rs(t)))return!t.length;var e=no(t);if(e==b||e==y)return!t.size;if(ho(t))return!Er(t).length;for(var n in t)if(Et.call(t,n))return!1;return!0},Tn.isEqual=function(t,e){return wr(t,e)},Tn.isEqualWith=function(t,e,n){var r=(n="function"==typeof n?n:void 0)?n(t,e):void 0;return void 0===r?wr(t,e,void 0,n):!!r},Tn.isError=js,Tn.isFinite=function(t){return"number"==typeof t&&nn(t)},Tn.isFunction=Cs,Tn.isInteger=Ds,Tn.isLength=qs,Tn.isMap=Ws,Tn.isMatch=function(t,e){return t===e||_r(t,e,Gi(e))},Tn.isMatchWith=function(t,e,n){return n="function"==typeof n?n:void 0,_r(t,e,Gi(e),n)},Tn.isNaN=function(t){return Zs(t)&&t!=+t},Tn.isNative=function(t){if(co(t))throw new dt("Unsupported core-js use. Try https://npms.io/search?q=ponyfill.");return Sr(t)},Tn.isNil=function(t){return null==t},Tn.isNull=function(t){return null===t},Tn.isNumber=Zs,Tn.isObject=Vs,Tn.isObjectLike=Hs,Tn.isPlainObject=Ys,Tn.isRegExp=Js,Tn.isSafeInteger=function(t){return Ds(t)&&t>=-9007199254740991&&t<=9007199254740991},Tn.isSet=Ks,Tn.isString=$s,Tn.isSymbol=Xs,Tn.isTypedArray=Gs,Tn.isUndefined=function(t){return void 0===t},Tn.isWeakMap=function(t){return Hs(t)&&no(t)==S},Tn.isWeakSet=function(t){return Hs(t)&&"[object WeakSet]"==lr(t)},Tn.join=function(t,e){return null==t?"":rn.call(t,e)},Tn.kebabCase=Oa,Tn.last=jo,Tn.lastIndexOf=function(t,e,n){var r=null==t?0:t.length;if(!r)return-1;var i=r;return void 0!==n&&(i=(i=ra(n))<0?sn(r+i,0):an(i,r-1)),e==e?function(t,e,n){for(var r=n+1;r--;)if(t[r]===e)return r;return r}(t,e,i):we(t,Me,i,!0)},Tn.lowerCase=Ba,Tn.lowerFirst=za,Tn.lt=Qs,Tn.lte=ta,Tn.max=function(t){return t&&t.length?rr(t,Za,pr):void 0},Tn.maxBy=function(t,e){return t&&t.length?rr(t,$i(e,2),pr):void 0},Tn.mean=function(t){return Ee(t,Za)},Tn.meanBy=function(t,e){return Ee(t,$i(e,2))},Tn.min=function(t){return t&&t.length?rr(t,Za,xr):void 0},Tn.minBy=function(t,e){return t&&t.length?rr(t,$i(e,2),xr):void 0},Tn.stubArray=iu,Tn.stubFalse=ou,Tn.stubObject=function(){return{}},Tn.stubString=function(){return""},Tn.stubTrue=function(){return!0},Tn.multiply=hu,Tn.nth=function(t,e){return t&&t.length?Nr(t,ra(e)):void 0},Tn.noConflict=function(){return Yt._===this&&(Yt._=kt),this},Tn.noop=Xa,Tn.now=bs,Tn.pad=function(t,e,n){t=aa(t);var r=(e=ra(e))?We(t):0;if(!e||r>=e)return t;var i=(e-r)/2;return Ri(Qe(i),n)+t+Ri(Ge(i),n)},Tn.padEnd=function(t,e,n){t=aa(t);var r=(e=ra(e))?We(t):0;return e&&r<e?t+Ri(e-r,n):t},Tn.padStart=function(t,e,n){t=aa(t);var r=(e=ra(e))?We(t):0;return e&&r<e?Ri(e-r,n)+t:t},Tn.parseInt=function(t,e,n){return n||null==e?e=0:e&&(e=+e),fn(aa(t).replace(K,""),e||0)},Tn.random=function(t,e,n){if(n&&"boolean"!=typeof n&&ao(t,e,n)&&(e=n=void 0),void 0===n&&("boolean"==typeof e?(n=e,e=void 0):"boolean"==typeof t&&(n=t,t=void 0)),void 0===t&&void 0===e?(t=0,e=1):(t=na(t),void 0===e?(e=t,t=0):e=na(e)),t>e){var r=t;t=e,e=r}if(n||t%1||e%1){var i=cn();return an(t+i*(e-t+Vt("1e-"+((i+"").length-1))),e)}return Pr(t,e)},Tn.reduce=function(t,e,n){var r=Os(t)?be:Ie,i=arguments.length<3;return r(t,$i(e,4),n,i,tr)},Tn.reduceRight=function(t,e,n){var r=Os(t)?ge:Ie,i=arguments.length<3;return r(t,$i(e,4),n,i,er)},Tn.repeat=function(t,e,n){return e=(n?ao(t,e,n):void 0===e)?1:ra(e),Ur(aa(t),e)},Tn.replace=function(){var t=arguments,e=aa(t[0]);return t.length<3?e:e.replace(t[1],t[2])},Tn.result=function(t,e,n){var r=-1,i=(e=ai(e,t)).length;for(i||(i=1,t=void 0);++r<i;){var o=null==t?void 0:t[xo(e[r])];void 0===o&&(r=i,o=n),t=Cs(o)?o.call(t):o}return t},Tn.round=du,Tn.runInContext=t,Tn.sample=function(t){return(Os(t)?jn:jr)(t)},Tn.size=function(t){if(null==t)return 0;if(zs(t))return $s(t)?We(t):t.length;var e=no(t);return e==b||e==y?t.size:Er(t).length},Tn.snakeCase=Pa,Tn.some=function(t,e,n){var r=Os(t)?ve:Zr;return n&&ao(t,e,n)&&(e=void 0),r(t,$i(e,3))},Tn.sortedIndex=function(t,e){return Yr(t,e)},Tn.sortedIndexBy=function(t,e,n){return Jr(t,e,$i(n,2))},Tn.sortedIndexOf=function(t,e){var n=null==t?0:t.length;if(n){var r=Yr(t,e);if(r<n&&ks(t[r],e))return r}return-1},Tn.sortedLastIndex=function(t,e){return Yr(t,e,!0)},Tn.sortedLastIndexBy=function(t,e,n){return Jr(t,e,$i(n,2),!0)},Tn.sortedLastIndexOf=function(t,e){if(null==t?0:t.length){var n=Yr(t,e,!0)-1;if(ks(t[n],e))return n}return-1},Tn.startCase=Ua,Tn.startsWith=function(t,e,n){return t=aa(t),n=null==n?0:Kn(ra(n),0,t.length),e=Xr(e),t.slice(n,n+e.length)==e},Tn.subtract=lu,Tn.sum=function(t){return t&&t.length?Te(t,Za):0},Tn.sumBy=function(t,e){return t&&t.length?Te(t,$i(e,2)):0},Tn.template=function(t,e,n){var r=Tn.templateSettings;n&&ao(t,e,n)&&(e=void 0),t=aa(t),e=ca({},e,r,Ci);var i,o,s=ca({},e.imports,r.imports,Ci),a=wa(s),u=Ne(s,a),f=0,c=e.interpolate||ct,h="__p += '",d=gt((e.escape||ct).source+"|"+c.source+"|"+(c===q?nt:ct).source+"|"+(e.evaluate||ct).source+"|$","g"),l="//# sourceURL="+(Et.call(e,"sourceURL")?(e.sourceURL+"").replace(/[\r\n]/g," "):"lodash.templateSources["+ ++jt+"]")+"\n";t.replace(d,(function(e,n,r,s,a,u){return r||(r=s),h+=t.slice(f,u).replace(ht,Fe),n&&(i=!0,h+="' +\n__e("+n+") +\n'"),a&&(o=!0,h+="';\n"+a+";\n__p += '"),r&&(h+="' +\n((__t = ("+r+")) == null ? '' : __t) +\n'"),f=u+e.length,e})),h+="';\n";var p=Et.call(e,"variable")&&e.variable;p||(h="with (obj) {\n"+h+"\n}\n"),h=(o?h.replace(O,""):h).replace(B,"$1").replace(z,"$1;"),h="function("+(p||"obj")+") {\n"+(p?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(i?", __e = _.escape":"")+(o?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+h+"return __p\n}";var b=Da((function(){return lt(a,l+"return "+h).apply(void 0,u)}));if(b.source=h,js(b))throw b;return b},Tn.times=function(t,e){if((t=ra(t))<1||t>9007199254740991)return[];var n=4294967295,r=an(t,4294967295);t-=4294967295;for(var i=ke(r,e=$i(e));++n<t;)e(n);return i},Tn.toFinite=na,Tn.toInteger=ra,Tn.toLength=ia,Tn.toLower=function(t){return aa(t).toLowerCase()},Tn.toNumber=oa,Tn.toSafeInteger=function(t){return t?Kn(ra(t),-9007199254740991,9007199254740991):0===t?t:0},Tn.toString=aa,Tn.toUpper=function(t){return aa(t).toUpperCase()},Tn.trim=function(t,e,n){if((t=aa(t))&&(n||void 0===e))return t.replace(J,"");if(!t||!(e=Xr(e)))return t;var r=Ze(t),i=Ze(e);return fi(r,Oe(r,i),Be(r,i)+1).join("")},Tn.trimEnd=function(t,e,n){if((t=aa(t))&&(n||void 0===e))return t.replace($,"");if(!t||!(e=Xr(e)))return t;var r=Ze(t);return fi(r,0,Be(r,Ze(e))+1).join("")},Tn.trimStart=function(t,e,n){if((t=aa(t))&&(n||void 0===e))return t.replace(K,"");if(!t||!(e=Xr(e)))return t;var r=Ze(t);return fi(r,Oe(r,Ze(e))).join("")},Tn.truncate=function(t,e){var n=30,r="...";if(Vs(e)){var i="separator"in e?e.separator:i;n="length"in e?ra(e.length):n,r="omission"in e?Xr(e.omission):r}var o=(t=aa(t)).length;if(je(t)){var s=Ze(t);o=s.length}if(n>=o)return t;var a=n-We(r);if(a<1)return r;var u=s?fi(s,0,a).join(""):t.slice(0,a);if(void 0===i)return u+r;if(s&&(a+=u.length-a),Js(i)){if(t.slice(a).search(i)){var f,c=u;for(i.global||(i=gt(i.source,aa(rt.exec(i))+"g")),i.lastIndex=0;f=i.exec(c);)var h=f.index;u=u.slice(0,void 0===h?a:h)}}else if(t.indexOf(Xr(i),a)!=a){var d=u.lastIndexOf(i);d>-1&&(u=u.slice(0,d))}return u+r},Tn.unescape=function(t){return(t=aa(t))&&F.test(t)?t.replace(P,Ye):t},Tn.uniqueId=function(t){var e=++At;return aa(t)+e},Tn.upperCase=Fa,Tn.upperFirst=ja,Tn.each=as,Tn.eachRight=us,Tn.first=zo,$a(Tn,(cu={},ur(Tn,(function(t,e){Et.call(Tn.prototype,e)||(cu[e]=t)})),cu),{chain:!1}),Tn.VERSION="4.17.15",ae(["bind","bindKey","curry","curryRight","partial","partialRight"],(function(t){Tn[t].placeholder=Tn})),ae(["drop","take"],(function(t,e){Rn.prototype[t]=function(n){n=void 0===n?1:sn(ra(n),0);var r=this.__filtered__&&!e?new Rn(this):this.clone();return r.__filtered__?r.__takeCount__=an(n,r.__takeCount__):r.__views__.push({size:an(n,4294967295),type:t+(r.__dir__<0?"Right":"")}),r},Rn.prototype[t+"Right"]=function(e){return this.reverse()[t](e).reverse()}})),ae(["filter","map","takeWhile"],(function(t,e){var n=e+1,r=1==n||3==n;Rn.prototype[t]=function(t){var e=this.clone();return e.__iteratees__.push({iteratee:$i(t,3),type:n}),e.__filtered__=e.__filtered__||r,e}})),ae(["head","last"],(function(t,e){var n="take"+(e?"Right":"");Rn.prototype[t]=function(){return this[n](1).value()[0]}})),ae(["initial","tail"],(function(t,e){var n="drop"+(e?"":"Right");Rn.prototype[t]=function(){return this.__filtered__?new Rn(this):this[n](1)}})),Rn.prototype.compact=function(){return this.filter(Za)},Rn.prototype.find=function(t){return this.filter(t).head()},Rn.prototype.findLast=function(t){return this.reverse().find(t)},Rn.prototype.invokeMap=Fr((function(t,e){return"function"==typeof t?new Rn(this):this.map((function(n){return mr(n,t,e)}))})),Rn.prototype.reject=function(t){return this.filter(Es($i(t)))},Rn.prototype.slice=function(t,e){t=ra(t);var n=this;return n.__filtered__&&(t>0||e<0)?new Rn(n):(t<0?n=n.takeRight(-t):t&&(n=n.drop(t)),void 0!==e&&(n=(e=ra(e))<0?n.dropRight(-e):n.take(e-t)),n)},Rn.prototype.takeRightWhile=function(t){return this.reverse().takeWhile(t).reverse()},Rn.prototype.toArray=function(){return this.take(4294967295)},ur(Rn.prototype,(function(t,e){var n=/^(?:filter|find|map|reject)|While$/.test(e),r=/^(?:head|last)$/.test(e),i=Tn[r?"take"+("last"==e?"Right":""):e],o=r||/^find/.test(e);i&&(Tn.prototype[e]=function(){var e=this.__wrapped__,s=r?[1]:arguments,a=e instanceof Rn,u=s[0],f=a||Os(e),c=function(t){var e=i.apply(Tn,pe([t],s));return r&&h?e[0]:e};f&&n&&"function"==typeof u&&1!=u.length&&(a=f=!1);var h=this.__chain__,d=!!this.__actions__.length,l=o&&!h,p=a&&!d;if(!o&&f){e=p?e:new Rn(this);var b=t.apply(e,s);return b.__actions__.push({func:ns,args:[c],thisArg:void 0}),new Nn(b,h)}return l&&p?t.apply(this,s):(b=this.thru(c),l?r?b.value()[0]:b.value():b)})})),ae(["pop","push","shift","sort","splice","unshift"],(function(t){var e=yt[t],n=/^(?:push|sort|unshift)$/.test(t)?"tap":"thru",r=/^(?:pop|shift)$/.test(t);Tn.prototype[t]=function(){var t=arguments;if(r&&!this.__chain__){var i=this.value();return e.apply(Os(i)?i:[],t)}return this[n]((function(n){return e.apply(Os(n)?n:[],t)}))}})),ur(Rn.prototype,(function(t,e){var n=Tn[e];if(n){var r=n.name+"";Et.call(yn,r)||(yn[r]=[]),yn[r].push({name:e,func:n})}})),yn[Ti(void 0,2).name]=[{name:"wrapper",func:void 0}],Rn.prototype.clone=function(){var t=new Rn(this.__wrapped__);return t.__actions__=vi(this.__actions__),t.__dir__=this.__dir__,t.__filtered__=this.__filtered__,t.__iteratees__=vi(this.__iteratees__),t.__takeCount__=this.__takeCount__,t.__views__=vi(this.__views__),t},Rn.prototype.reverse=function(){if(this.__filtered__){var t=new Rn(this);t.__dir__=-1,t.__filtered__=!0}else(t=this.clone()).__dir__*=-1;return t},Rn.prototype.value=function(){var t=this.__wrapped__.value(),e=this.__dir__,n=Os(t),r=e<0,i=n?t.length:0,o=function(t,e,n){var r=-1,i=n.length;for(;++r<i;){var o=n[r],s=o.size;switch(o.type){case"drop":t+=s;break;case"dropRight":e-=s;break;case"take":e=an(e,t+s);break;case"takeRight":t=sn(t,e-s)}}return{start:t,end:e}}(0,i,this.__views__),s=o.start,a=o.end,u=a-s,f=r?a:s-1,c=this.__iteratees__,h=c.length,d=0,l=an(u,this.__takeCount__);if(!n||!r&&i==u&&l==u)return ni(t,this.__actions__);var p=[];t:for(;u--&&d<l;){for(var b=-1,g=t[f+=e];++b<h;){var v=c[b],m=v.iteratee,y=v.type,w=m(g);if(2==y)g=w;else if(!w){if(1==y)continue t;break t}}p[d++]=g}return p},Tn.prototype.at=rs,Tn.prototype.chain=function(){return es(this)},Tn.prototype.commit=function(){return new Nn(this.value(),this.__chain__)},Tn.prototype.next=function(){void 0===this.__values__&&(this.__values__=ea(this.value()));var t=this.__index__>=this.__values__.length;return{done:t,value:t?void 0:this.__values__[this.__index__++]}},Tn.prototype.plant=function(t){for(var e,n=this;n instanceof Ln;){var r=To(n);r.__index__=0,r.__values__=void 0,e?i.__wrapped__=r:e=r;var i=r;n=n.__wrapped__}return i.__wrapped__=t,e},Tn.prototype.reverse=function(){var t=this.__wrapped__;if(t instanceof Rn){var e=t;return this.__actions__.length&&(e=new Rn(this)),(e=e.reverse()).__actions__.push({func:ns,args:[Vo],thisArg:void 0}),new Nn(e,this.__chain__)}return this.thru(Vo)},Tn.prototype.toJSON=Tn.prototype.valueOf=Tn.prototype.value=function(){return ni(this.__wrapped__,this.__actions__)},Tn.prototype.first=Tn.prototype.head,Gt&&(Tn.prototype[Gt]=function(){return this}),Tn}();Yt._=Je,void 0===(i=function(){return Je}.call(e,n,e,r))||(r.exports=i)}).call(this)}).call(this,n(9),n(27)(t))},function(t,e,n){"use strict";var r=n(23),i=Object.keys||function(t){var e=[];for(var n in t)e.push(n);return e};t.exports=h;var o=Object.create(n(20));o.inherits=n(1);var s=n(45),a=n(33);o.inherits(h,s);for(var u=i(a.prototype),f=0;f<u.length;f++){var c=u[f];h.prototype[c]||(h.prototype[c]=a.prototype[c])}function h(t){if(!(this instanceof h))return new h(t);s.call(this,t),a.call(this,t),t&&!1===t.readable&&(this.readable=!1),t&&!1===t.writable&&(this.writable=!1),this.allowHalfOpen=!0,t&&!1===t.allowHalfOpen&&(this.allowHalfOpen=!1),this.once("end",d)}function d(){this.allowHalfOpen||this._writableState.ended||r.nextTick(l,this)}function l(t){t.end()}Object.defineProperty(h.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(h.prototype,"destroyed",{get:function(){return void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed&&this._writableState.destroyed)},set:function(t){void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed=t,this._writableState.destroyed=t)}}),h.prototype._destroy=function(t,e){this.push(null),this.end(),r.nextTick(e,t)}},function(t,e){function n(t,e){if(!t)throw new Error(e||"Assertion failed")}t.exports=n,n.equal=function(t,e,n){if(t!=e)throw new Error(n||"Assertion failed: "+t+" != "+e)}},function(t,e,n){"use strict";var r=function(t,e){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return function(t,e){var n=[],r=!0,i=!1,o=void 0;try{for(var s,a=t[Symbol.iterator]();!(r=(s=a.next()).done)&&(n.push(s.value),!e||n.length!==e);r=!0);}catch(t){i=!0,o=t}finally{try{!r&&a.return&&a.return()}finally{if(i)throw o}}return n}(t,e);throw new TypeError("Invalid attempt to destructure non-iterable instance")},i=n(2),o=n(12),s=n(3),a=s.parseBytes,u=s.serializeUIntN,f=n(0),c=n(72);var h=f({EnumType:function(t){o.assign(this,t),i(this.bytes instanceof Uint8Array),i("number"==typeof this.ordinal),i("string"==typeof this.name)},toString:function(){return this.name},toJSON:function(){return this.name},toBytesSink:function(t){t.put(this.bytes)},statics:{ordinalByteWidth:1,fromParser:function(t){return this.from(t.readUIntN(this.ordinalByteWidth))},from:function(t){var e=t instanceof this?t:this[t];if(!e)throw new Error(t+" is not a valid name or ordinal for "+this.enumName);return e},valuesByName:function(){var t=this;return o.transform(this.initVals,(function(e,n,r){var i=u(n,t.ordinalByteWidth),o=new t({name:r,ordinal:n,bytes:i});e[r]=o}))},init:function(){var t,e,n=this.valuesByName();return o.assign(this,(t=n,e="ordinal",o.transform(t,(function(t,n,r){t[r]=n,t[n[e]]=n})))),this.values=o.values(n),this}}});var d,l,p=(d=function(t,e,n){t[n]=function(t,e){return f({inherits:h,statics:o.assign(e,{enumName:t})})}(n,e)},l={Type:{initVals:c.TYPES},LedgerEntryType:{initVals:c.LEDGER_ENTRY_TYPES,ordinalByteWidth:2},TransactionType:{initVals:c.TRANSACTION_TYPES,ordinalByteWidth:2},TransactionResult:{initVals:c.TRANSACTION_RESULTS,ordinalByteWidth:1}},o.transform(l,d));p.Field=f({inherits:h,statics:{enumName:"Field",initVals:c.FIELDS,valuesByName:function(){var t=this,e=o.map(this.initVals,(function(e){var n=r(e,2),i=n[0],s=n[1],a=p.Type[s.type],u=t.header(a.ordinal,s.nth),f={ordinal:a.ordinal<<16|s.nth,name:i,type:a,bytes:u};return new t(o.assign(s,f))}));return o.keyBy(e,"name")},header:function(t,e){var n=e,r=[],i=r.push.bind(r);return t<16?n<16?i(t<<4|n):i(t<<4,n):n<16?i(n,t):i(0,t,n),a(r,Uint8Array)}}}),t.exports=p},function(t,e,n){"use strict";var r=n(15),i=r.Field,o=n(28).AccountID,s=n(96).Amount,a=n(98).Blob,u=n(38).Currency,f=n(99).Hash128,c=n(35).Hash160,h=n(53).Hash256,d=n(100).PathSet,l=n(101).STArray,p=n(54).STObject,b=n(102).UInt16,g=n(103).UInt32,v=n(52).UInt64,m={AccountID:o,Amount:s,Blob:a,Currency:u,Hash128:f,Hash160:c,Hash256:h,PathSet:d,STArray:l,STObject:p,UInt8:n(104).UInt8,UInt16:b,UInt32:g,UInt64:v,Vector256:n(105).Vector256};i.values.forEach((function(t){t.associatedType=m[t.type]})),i.TransactionType.associatedType=r.TransactionType,i.TransactionResult.associatedType=r.TransactionResult,i.LedgerEntryType.associatedType=r.LedgerEntryType,t.exports=m},function(t,e,n){var r=n(6).Buffer;function i(t,e){this._block=r.alloc(t),this._finalSize=e,this._blockSize=t,this._len=0}i.prototype.update=function(t,e){"string"==typeof t&&(e=e||"utf8",t=r.from(t,e));for(var n=this._block,i=this._blockSize,o=t.length,s=this._len,a=0;a<o;){for(var u=s%i,f=Math.min(o-a,i-u),c=0;c<f;c++)n[u+c]=t[a+c];a+=f,(s+=f)%i==0&&this._update(n)}return this._len+=o,this},i.prototype.digest=function(t){var e=this._len%this._blockSize;this._block[e]=128,this._block.fill(0,e+1),e>=this._finalSize&&(this._update(this._block),this._block.fill(0));var n=8*this._len;if(n<=4294967295)this._block.writeUInt32BE(n,this._blockSize-4);else{var r=(4294967295&n)>>>0,i=(n-r)/4294967296;this._block.writeUInt32BE(i,this._blockSize-8),this._block.writeUInt32BE(r,this._blockSize-4)}this._update(this._block);var o=this._hash();return t?o.toString(t):o},i.prototype._update=function(){throw new Error("_update must be implemented by subclass")},t.exports=i},function(t,e,n){var r=e;r.utils=n(7),r.common=n(22),r.sha=n(111),r.ripemd=n(115),r.hmac=n(116),r.sha1=r.sha.sha1,r.sha256=r.sha.sha256,r.sha224=r.sha.sha224,r.sha384=r.sha.sha384,r.sha512=r.sha.sha512,r.ripemd160=r.ripemd.ripemd160},function(t,e){var n,r,i=t.exports={};function o(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}function a(t){if(n===setTimeout)return setTimeout(t,0);if((n===o||!n)&&setTimeout)return n=setTimeout,setTimeout(t,0);try{return n(t,0)}catch(e){try{return n.call(null,t,0)}catch(e){return n.call(this,t,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:o}catch(t){n=o}try{r="function"==typeof clearTimeout?clearTimeout:s}catch(t){r=s}}();var u,f=[],c=!1,h=-1;function d(){c&&u&&(c=!1,u.length?f=u.concat(f):h=-1,f.length&&l())}function l(){if(!c){var t=a(d);c=!0;for(var e=f.length;e;){for(u=f,f=[];++h<e;)u&&u[h].run();h=-1,e=f.length}u=null,c=!1,function(t){if(r===clearTimeout)return clearTimeout(t);if((r===s||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(t);try{r(t)}catch(e){try{return r.call(null,t)}catch(e){return r.call(this,t)}}}(t)}}function p(t,e){this.fun=t,this.array=e}function b(){}i.nextTick=function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)e[n-1]=arguments[n];f.push(new p(t,e)),1!==f.length||c||a(l)},p.prototype.run=function(){this.fun.apply(null,this.array)},i.title="browser",i.browser=!0,i.env={},i.argv=[],i.version="",i.versions={},i.on=b,i.addListener=b,i.once=b,i.off=b,i.removeListener=b,i.removeAllListeners=b,i.emit=b,i.prependListener=b,i.prependOnceListener=b,i.listeners=function(t){return[]},i.binding=function(t){throw new Error("process.binding is not supported")},i.cwd=function(){return"/"},i.chdir=function(t){throw new Error("process.chdir is not supported")},i.umask=function(){return 0}},function(t,e,n){(function(t){function n(t){return Object.prototype.toString.call(t)}e.isArray=function(t){return Array.isArray?Array.isArray(t):"[object Array]"===n(t)},e.isBoolean=function(t){return"boolean"==typeof t},e.isNull=function(t){return null===t},e.isNullOrUndefined=function(t){return null==t},e.isNumber=function(t){return"number"==typeof t},e.isString=function(t){return"string"==typeof t},e.isSymbol=function(t){return"symbol"==typeof t},e.isUndefined=function(t){return void 0===t},e.isRegExp=function(t){return"[object RegExp]"===n(t)},e.isObject=function(t){return"object"==typeof t&&null!==t},e.isDate=function(t){return"[object Date]"===n(t)},e.isError=function(t){return"[object Error]"===n(t)||t instanceof Error},e.isFunction=function(t){return"function"==typeof t},e.isPrimitive=function(t){return null===t||"boolean"==typeof t||"number"==typeof t||"string"==typeof t||"symbol"==typeof t||void 0===t},e.isBuffer=t.isBuffer}).call(this,n(5).Buffer)},function(t,e,n){"use strict";var r=n(3).serializeUIntN;function i(t){return r(t,4)}var o={transactionID:i(1415073280),transaction:i(1397638144),accountStateEntry:i(1296846336),innerNode:i(1296649728),ledgerHeader:i(1280791040),transactionSig:i(1398036480),transactionMultiSig:i(1397576704),validation:i(1447119872),proposal:i(1347571712),paymentChannelClaim:i(1129073920)};t.exports={HashPrefix:o}},function(t,e,n){"use strict";var r=n(7),i=n(14);function o(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}e.BlockHash=o,o.prototype.update=function(t,e){if(t=r.toArray(t,e),this.pending?this.pending=this.pending.concat(t):this.pending=t,this.pendingTotal+=t.length,this.pending.length>=this._delta8){var n=(t=this.pending).length%this._delta8;this.pending=t.slice(t.length-n,t.length),0===this.pending.length&&(this.pending=null),t=r.join32(t,0,t.length-n,this.endian);for(var i=0;i<t.length;i+=this._delta32)this._update(t,i,i+this._delta32)}return this},o.prototype.digest=function(t){return this.update(this._pad()),i(null===this.pending),this._digest(t)},o.prototype._pad=function(){var t=this.pendingTotal,e=this._delta8,n=e-(t+this.padLength)%e,r=new Array(n+this.padLength);r[0]=128;for(var i=1;i<n;i++)r[i]=0;if(t<<=3,"big"===this.endian){for(var o=8;o<this.padLength;o++)r[i++]=0;r[i++]=0,r[i++]=0,r[i++]=0,r[i++]=0,r[i++]=t>>>24&255,r[i++]=t>>>16&255,r[i++]=t>>>8&255,r[i++]=255&t}else for(r[i++]=255&t,r[i++]=t>>>8&255,r[i++]=t>>>16&255,r[i++]=t>>>24&255,r[i++]=0,r[i++]=0,r[i++]=0,r[i++]=0,o=8;o<this.padLength;o++)r[i++]=0;return r}},function(t,e,n){"use strict";(function(e){void 0===e||!e.version||0===e.version.indexOf("v0.")||0===e.version.indexOf("v1.")&&0!==e.version.indexOf("v1.8.")?t.exports={nextTick:function(t,n,r,i){if("function"!=typeof t)throw new TypeError('"callback" argument must be a function');var o,s,a=arguments.length;switch(a){case 0:case 1:return e.nextTick(t);case 2:return e.nextTick((function(){t.call(null,n)}));case 3:return e.nextTick((function(){t.call(null,n,r)}));case 4:return e.nextTick((function(){t.call(null,n,r,i)}));default:for(o=new Array(a-1),s=0;s<o.length;)o[s++]=arguments[s];return e.nextTick((function(){t.apply(null,o)}))}}}:t.exports=e}).call(this,n(19))},function(t,e,n){"use strict";var r=n(2),i=n(11),o=n(0),s=n(10),a=s.Comparable,u=s.SerializedType,f=n(3).serializeUIntN,c=[0,255,65535,16777215,4294967295];var h=o({mixins:[a,u],UInt:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=c[this.constructor.width];if(t<0||!(t<=e))throw new Error(t+" not in range 0 <= $val <= "+e);this.val=t},statics:{width:0,fromParser:function(t){return new this(this.width>4?t.read(this.width):t.readUIntN(this.width))},from:function(t){return t instanceof this?t:new this(t)}},toJSON:function(){return this.val},valueOf:function(){return this.val},compareTo:function(t){var e,n,o=this.valueOf(),s=t.valueOf();return o instanceof i?s instanceof i?o.cmp(s):o.cmpn(s):s instanceof i?-t.compareTo(this):(r("number"==typeof s),(e=o)<(n=s)?-1:e===n?0:1)},toBytesSink:function(t){t.put(this.toBytes())},toBytes:function(){return f(this.val,this.constructor.width)}});t.exports={UInt:h}},function(t,e,n){"use strict";(function(e){var r=n(0),i=n(21).HashPrefix,o=n(16).Hash256,s=n(3).parseBytes,a=n(42),u=r({Sha512Half:function(){this.hash=a("sha512")},statics:{put:function(t){return(new this).put(t)}},put:function(t){return this.hash.update(s(t,e)),this},finish256:function(){return this.hash.digest().slice(0,32)},finish:function(){return new o(this.finish256())}});function f(){for(var t=new u,e=arguments.length,n=Array(e),r=0;r<e;r++)n[r]=arguments[r];return n.forEach((function(e){return t.put(e)})),s(t.finish256(),Uint8Array)}t.exports={Sha512Half:u,sha512Half:f,transactionID:function(t){return new o(f(i.transactionID,t))}}}).call(this,n(5).Buffer)},function(t,e,n){"use strict";var r=n(8),i=n(4),o=i.getNAF,s=i.getJSF,a=i.assert;function u(t,e){this.type=t,this.p=new r(e.p,16),this.red=e.prime?r.red(e.prime):r.mont(this.p),this.zero=new r(0).toRed(this.red),this.one=new r(1).toRed(this.red),this.two=new r(2).toRed(this.red),this.n=e.n&&new r(e.n,16),this.g=e.g&&this.pointFromJSON(e.g,e.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var n=this.n&&this.p.div(this.n);!n||n.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}function f(t,e){this.curve=t,this.type=e,this.precomputed=null}t.exports=u,u.prototype.point=function(){throw new Error("Not implemented")},u.prototype.validate=function(){throw new Error("Not implemented")},u.prototype._fixedNafMul=function(t,e){a(t.precomputed);var n=t._getDoubles(),r=o(e,1,this._bitLength),i=(1<<n.step+1)-(n.step%2==0?2:1);i/=3;for(var s=[],u=0;u<r.length;u+=n.step){var f=0;for(e=u+n.step-1;e>=u;e--)f=(f<<1)+r[e];s.push(f)}for(var c=this.jpoint(null,null,null),h=this.jpoint(null,null,null),d=i;d>0;d--){for(u=0;u<s.length;u++){(f=s[u])===d?h=h.mixedAdd(n.points[u]):f===-d&&(h=h.mixedAdd(n.points[u].neg()))}c=c.add(h)}return c.toP()},u.prototype._wnafMul=function(t,e){var n=4,r=t._getNAFPoints(n);n=r.wnd;for(var i=r.points,s=o(e,n,this._bitLength),u=this.jpoint(null,null,null),f=s.length-1;f>=0;f--){for(e=0;f>=0&&0===s[f];f--)e++;if(f>=0&&e++,u=u.dblp(e),f<0)break;var c=s[f];a(0!==c),u="affine"===t.type?c>0?u.mixedAdd(i[c-1>>1]):u.mixedAdd(i[-c-1>>1].neg()):c>0?u.add(i[c-1>>1]):u.add(i[-c-1>>1].neg())}return"affine"===t.type?u.toP():u},u.prototype._wnafMulAdd=function(t,e,n,r,i){for(var a=this._wnafT1,u=this._wnafT2,f=this._wnafT3,c=0,h=0;h<r;h++){var d=(A=e[h])._getNAFPoints(t);a[h]=d.wnd,u[h]=d.points}for(h=r-1;h>=1;h-=2){var l=h-1,p=h;if(1===a[l]&&1===a[p]){var b=[e[l],null,null,e[p]];0===e[l].y.cmp(e[p].y)?(b[1]=e[l].add(e[p]),b[2]=e[l].toJ().mixedAdd(e[p].neg())):0===e[l].y.cmp(e[p].y.redNeg())?(b[1]=e[l].toJ().mixedAdd(e[p]),b[2]=e[l].add(e[p].neg())):(b[1]=e[l].toJ().mixedAdd(e[p]),b[2]=e[l].toJ().mixedAdd(e[p].neg()));var g=[-3,-1,-5,-7,0,7,5,1,3],v=s(n[l],n[p]);c=Math.max(v[0].length,c),f[l]=new Array(c),f[p]=new Array(c);for(var m=0;m<c;m++){var y=0|v[0][m],w=0|v[1][m];f[l][m]=g[3*(y+1)+(w+1)],f[p][m]=0,u[l]=b}}else f[l]=o(n[l],a[l],this._bitLength),f[p]=o(n[p],a[p],this._bitLength),c=Math.max(f[l].length,c),c=Math.max(f[p].length,c)}var _=this.jpoint(null,null,null),S=this._wnafT4;for(h=c;h>=0;h--){for(var M=0;h>=0;){var E=!0;for(m=0;m<r;m++)S[m]=0|f[m][h],0!==S[m]&&(E=!1);if(!E)break;M++,h--}if(h>=0&&M++,_=_.dblp(M),h<0)break;for(m=0;m<r;m++){var A,x=S[m];0!==x&&(x>0?A=u[m][x-1>>1]:x<0&&(A=u[m][-x-1>>1].neg()),_="affine"===A.type?_.mixedAdd(A):_.add(A))}}for(h=0;h<r;h++)u[h]=null;return i?_:_.toP()},u.BasePoint=f,f.prototype.eq=function(){throw new Error("Not implemented")},f.prototype.validate=function(){return this.curve.validate(this)},u.prototype.decodePoint=function(t,e){t=i.toArray(t,e);var n=this.p.byteLength();if((4===t[0]||6===t[0]||7===t[0])&&t.length-1==2*n)return 6===t[0]?a(t[t.length-1]%2==0):7===t[0]&&a(t[t.length-1]%2==1),this.point(t.slice(1,1+n),t.slice(1+n,1+2*n));if((2===t[0]||3===t[0])&&t.length-1===n)return this.pointFromX(t.slice(1,1+n),3===t[0]);throw new Error("Unknown point format")},f.prototype.encodeCompressed=function(t){return this.encode(t,!0)},f.prototype._encode=function(t){var e=this.curve.p.byteLength(),n=this.getX().toArray("be",e);return t?[this.getY().isEven()?2:3].concat(n):[4].concat(n,this.getY().toArray("be",e))},f.prototype.encode=function(t,e){return i.encode(this._encode(e),t)},f.prototype.precompute=function(t){if(this.precomputed)return this;var e={doubles:null,naf:null,beta:null};return e.naf=this._getNAFPoints(8),e.doubles=this._getDoubles(4,t),e.beta=this._getBeta(),this.precomputed=e,this},f.prototype._hasDoubles=function(t){if(!this.precomputed)return!1;var e=this.precomputed.doubles;return!!e&&e.points.length>=Math.ceil((t.bitLength()+1)/e.step)},f.prototype._getDoubles=function(t,e){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var n=[this],r=this,i=0;i<e;i+=t){for(var o=0;o<t;o++)r=r.dbl();n.push(r)}return{step:t,points:n}},f.prototype._getNAFPoints=function(t){if(this.precomputed&&this.precomputed.naf)return this.precomputed.naf;for(var e=[this],n=(1<<t)-1,r=1===n?null:this.dbl(),i=1;i<n;i++)e[i]=e[i-1].add(r);return{wnd:t,points:e}},f.prototype._getBeta=function(){return null},f.prototype.dblp=function(t){for(var e=this,n=0;n<t;n++)e=e.dbl();return e}},function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}},function(t,e,n){"use strict";var r=n(0),i=n(29),o=i.decodeAccountID,s=i.encodeAccountID,a=n(35).Hash160,u=r({AccountID:function(t){a.call(this,t)},inherits:a,statics:{from:function(t){return t instanceof this?t:/^r/.test(t)?this.fromBase58(t):new this(t)},cache:{},fromCache:function(t){var e=this.cache[t];return e||(e=this.cache[t]=this.fromBase58(t)),e},fromBase58:function(t){var e=new this(o(t));return e._toBase58=t,e}},toJSON:function(){return this.toBase58()},cached:{toBase58:function(){return s(this._bytes)}}});t.exports={AccountID:u}},function(t,e,n){"use strict";(function(t){Object.defineProperty(e,"__esModule",{value:!0});const r=n(73);e.codec=r.codec,e.encodeSeed=r.encodeSeed,e.decodeSeed=r.decodeSeed,e.encodeAccountID=r.encodeAccountID,e.decodeAccountID=r.decodeAccountID,e.encodeNodePublic=r.encodeNodePublic,e.decodeNodePublic=r.decodeNodePublic,e.encodeAccountPublic=r.encodeAccountPublic,e.decodeAccountPublic=r.decodeAccountPublic,e.isValidClassicAddress=r.isValidClassicAddress;const i=n(2),o={MAIN:t.from([5,68]),TEST:t.from([4,147])};function s(e,n,i){if(20!==e.length)throw new Error("Account ID must be 20 bytes");const s=!1===n?0:n<=4294967295?1:2;if(2===s)throw new Error("Invalid tag");!1===n&&(n=0);const a=t.concat([i?o.TEST:o.MAIN,e,t.from([s,255&n,n>>8&255,n>>16&255,n>>24&255,0,0,0,0])]);return r.codec.encodeChecked(a)}function a(e){const n=r.codec.decodeChecked(e),s=function(t){const e=t.slice(0,2);if(o.MAIN.equals(e))return!1;if(o.TEST.equals(e))return!0;throw new Error("Invalid X-address: bad prefix")}(n);return{accountId:n.slice(2,22),tag:function(e){const n=e[22];if(n>=2)throw new Error("Unsupported X-address");if(1===n)return e[23]+256*e[24]+65536*e[25]+16777216*e[26];return i.strictEqual(n,0,"flag must be zero to indicate no tag"),i.ok(t.from("0000000000000000","hex").equals(e.slice(23,31)),"remaining bytes must be zero"),!1}(n),test:s}}e.classicAddressToXAddress=function(t,e,n){return s(r.decodeAccountID(t),e,n)},e.encodeXAddress=s,e.xAddressToClassicAddress=function(t){const{accountId:e,tag:n,test:i}=a(t);return{classicAddress:r.encodeAccountID(e),tag:n,test:i}},e.decodeXAddress=a,e.isValidXAddress=function(t){try{a(t)}catch(t){return!1}return!0}}).call(this,n(5).Buffer)},function(t,e,n){"use strict";var r,i="object"==typeof Reflect?Reflect:null,o=i&&"function"==typeof i.apply?i.apply:function(t,e,n){return Function.prototype.apply.call(t,e,n)};r=i&&"function"==typeof i.ownKeys?i.ownKeys:Object.getOwnPropertySymbols?function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:function(t){return Object.getOwnPropertyNames(t)};var s=Number.isNaN||function(t){return t!=t};function a(){a.init.call(this)}t.exports=a,a.EventEmitter=a,a.prototype._events=void 0,a.prototype._eventsCount=0,a.prototype._maxListeners=void 0;var u=10;function f(t){if("function"!=typeof t)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t)}function c(t){return void 0===t._maxListeners?a.defaultMaxListeners:t._maxListeners}function h(t,e,n,r){var i,o,s,a;if(f(n),void 0===(o=t._events)?(o=t._events=Object.create(null),t._eventsCount=0):(void 0!==o.newListener&&(t.emit("newListener",e,n.listener?n.listener:n),o=t._events),s=o[e]),void 0===s)s=o[e]=n,++t._eventsCount;else if("function"==typeof s?s=o[e]=r?[n,s]:[s,n]:r?s.unshift(n):s.push(n),(i=c(t))>0&&s.length>i&&!s.warned){s.warned=!0;var u=new Error("Possible EventEmitter memory leak detected. "+s.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");u.name="MaxListenersExceededWarning",u.emitter=t,u.type=e,u.count=s.length,a=u,console&&console.warn&&console.warn(a)}return t}function d(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function l(t,e,n){var r={fired:!1,wrapFn:void 0,target:t,type:e,listener:n},i=d.bind(r);return i.listener=n,r.wrapFn=i,i}function p(t,e,n){var r=t._events;if(void 0===r)return[];var i=r[e];return void 0===i?[]:"function"==typeof i?n?[i.listener||i]:[i]:n?function(t){for(var e=new Array(t.length),n=0;n<e.length;++n)e[n]=t[n].listener||t[n];return e}(i):g(i,i.length)}function b(t){var e=this._events;if(void 0!==e){var n=e[t];if("function"==typeof n)return 1;if(void 0!==n)return n.length}return 0}function g(t,e){for(var n=new Array(e),r=0;r<e;++r)n[r]=t[r];return n}Object.defineProperty(a,"defaultMaxListeners",{enumerable:!0,get:function(){return u},set:function(t){if("number"!=typeof t||t<0||s(t))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+t+".");u=t}}),a.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},a.prototype.setMaxListeners=function(t){if("number"!=typeof t||t<0||s(t))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+t+".");return this._maxListeners=t,this},a.prototype.getMaxListeners=function(){return c(this)},a.prototype.emit=function(t){for(var e=[],n=1;n<arguments.length;n++)e.push(arguments[n]);var r="error"===t,i=this._events;if(void 0!==i)r=r&&void 0===i.error;else if(!r)return!1;if(r){var s;if(e.length>0&&(s=e[0]),s instanceof Error)throw s;var a=new Error("Unhandled error."+(s?" ("+s.message+")":""));throw a.context=s,a}var u=i[t];if(void 0===u)return!1;if("function"==typeof u)o(u,this,e);else{var f=u.length,c=g(u,f);for(n=0;n<f;++n)o(c[n],this,e)}return!0},a.prototype.addListener=function(t,e){return h(this,t,e,!1)},a.prototype.on=a.prototype.addListener,a.prototype.prependListener=function(t,e){return h(this,t,e,!0)},a.prototype.once=function(t,e){return f(e),this.on(t,l(this,t,e)),this},a.prototype.prependOnceListener=function(t,e){return f(e),this.prependListener(t,l(this,t,e)),this},a.prototype.removeListener=function(t,e){var n,r,i,o,s;if(f(e),void 0===(r=this._events))return this;if(void 0===(n=r[t]))return this;if(n===e||n.listener===e)0==--this._eventsCount?this._events=Object.create(null):(delete r[t],r.removeListener&&this.emit("removeListener",t,n.listener||e));else if("function"!=typeof n){for(i=-1,o=n.length-1;o>=0;o--)if(n[o]===e||n[o].listener===e){s=n[o].listener,i=o;break}if(i<0)return this;0===i?n.shift():function(t,e){for(;e+1<t.length;e++)t[e]=t[e+1];t.pop()}(n,i),1===n.length&&(r[t]=n[0]),void 0!==r.removeListener&&this.emit("removeListener",t,s||e)}return this},a.prototype.off=a.prototype.removeListener,a.prototype.removeAllListeners=function(t){var e,n,r;if(void 0===(n=this._events))return this;if(void 0===n.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==n[t]&&(0==--this._eventsCount?this._events=Object.create(null):delete n[t]),this;if(0===arguments.length){var i,o=Object.keys(n);for(r=0;r<o.length;++r)"removeListener"!==(i=o[r])&&this.removeAllListeners(i);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if("function"==typeof(e=n[t]))this.removeListener(t,e);else if(void 0!==e)for(r=e.length-1;r>=0;r--)this.removeListener(t,e[r]);return this},a.prototype.listeners=function(t){return p(this,t,!0)},a.prototype.rawListeners=function(t){return p(this,t,!1)},a.listenerCount=function(t,e){return"function"==typeof t.listenerCount?t.listenerCount(e):b.call(t,e)},a.prototype.listenerCount=b,a.prototype.eventNames=function(){return this._eventsCount>0?r(this._events):[]}},function(t,e,n){(e=t.exports=n(45)).Stream=e,e.Readable=e,e.Writable=n(33),e.Duplex=n(13),e.Transform=n(48),e.PassThrough=n(84)},function(t,e,n){var r=n(5),i=r.Buffer;function o(t,e){for(var n in t)e[n]=t[n]}function s(t,e,n){return i(t,e,n)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?t.exports=r:(o(r,e),e.Buffer=s),o(i,s),s.from=function(t,e,n){if("number"==typeof t)throw new TypeError("Argument must not be a number");return i(t,e,n)},s.alloc=function(t,e,n){if("number"!=typeof t)throw new TypeError("Argument must be a number");var r=i(t);return void 0!==e?"string"==typeof n?r.fill(e,n):r.fill(e):r.fill(0),r},s.allocUnsafe=function(t){if("number"!=typeof t)throw new TypeError("Argument must be a number");return i(t)},s.allocUnsafeSlow=function(t){if("number"!=typeof t)throw new TypeError("Argument must be a number");return r.SlowBuffer(t)}},function(t,e,n){"use strict";(function(e,r,i){var o=n(23);function s(t){var e=this;this.next=null,this.entry=null,this.finish=function(){!function(t,e,n){var r=t.entry;t.entry=null;for(;r;){var i=r.callback;e.pendingcb--,i(n),r=r.next}e.corkedRequestsFree?e.corkedRequestsFree.next=t:e.corkedRequestsFree=t}(e,t)}}t.exports=m;var a,u=!e.browser&&["v0.10","v0.9."].indexOf(e.version.slice(0,5))>-1?r:o.nextTick;m.WritableState=v;var f=Object.create(n(20));f.inherits=n(1);var c={deprecate:n(82)},h=n(46),d=n(32).Buffer,l=i.Uint8Array||function(){};var p,b=n(47);function g(){}function v(t,e){a=a||n(13),t=t||{};var r=e instanceof a;this.objectMode=!!t.objectMode,r&&(this.objectMode=this.objectMode||!!t.writableObjectMode);var i=t.highWaterMark,f=t.writableHighWaterMark,c=this.objectMode?16:16384;this.highWaterMark=i||0===i?i:r&&(f||0===f)?f:c,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var h=!1===t.decodeStrings;this.decodeStrings=!h,this.defaultEncoding=t.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(t){!function(t,e){var n=t._writableState,r=n.sync,i=n.writecb;if(function(t){t.writing=!1,t.writecb=null,t.length-=t.writelen,t.writelen=0}(n),e)!function(t,e,n,r,i){--e.pendingcb,n?(o.nextTick(i,r),o.nextTick(E,t,e),t._writableState.errorEmitted=!0,t.emit("error",r)):(i(r),t._writableState.errorEmitted=!0,t.emit("error",r),E(t,e))}(t,n,r,e,i);else{var s=S(n);s||n.corked||n.bufferProcessing||!n.bufferedRequest||_(t,n),r?u(w,t,n,s,i):w(t,n,s,i)}}(e,t)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new s(this)}function m(t){if(a=a||n(13),!(p.call(m,this)||this instanceof a))return new m(t);this._writableState=new v(t,this),this.writable=!0,t&&("function"==typeof t.write&&(this._write=t.write),"function"==typeof t.writev&&(this._writev=t.writev),"function"==typeof t.destroy&&(this._destroy=t.destroy),"function"==typeof t.final&&(this._final=t.final)),h.call(this)}function y(t,e,n,r,i,o,s){e.writelen=r,e.writecb=s,e.writing=!0,e.sync=!0,n?t._writev(i,e.onwrite):t._write(i,o,e.onwrite),e.sync=!1}function w(t,e,n,r){n||function(t,e){0===e.length&&e.needDrain&&(e.needDrain=!1,t.emit("drain"))}(t,e),e.pendingcb--,r(),E(t,e)}function _(t,e){e.bufferProcessing=!0;var n=e.bufferedRequest;if(t._writev&&n&&n.next){var r=e.bufferedRequestCount,i=new Array(r),o=e.corkedRequestsFree;o.entry=n;for(var a=0,u=!0;n;)i[a]=n,n.isBuf||(u=!1),n=n.next,a+=1;i.allBuffers=u,y(t,e,!0,e.length,i,"",o.finish),e.pendingcb++,e.lastBufferedRequest=null,o.next?(e.corkedRequestsFree=o.next,o.next=null):e.corkedRequestsFree=new s(e),e.bufferedRequestCount=0}else{for(;n;){var f=n.chunk,c=n.encoding,h=n.callback;if(y(t,e,!1,e.objectMode?1:f.length,f,c,h),n=n.next,e.bufferedRequestCount--,e.writing)break}null===n&&(e.lastBufferedRequest=null)}e.bufferedRequest=n,e.bufferProcessing=!1}function S(t){return t.ending&&0===t.length&&null===t.bufferedRequest&&!t.finished&&!t.writing}function M(t,e){t._final((function(n){e.pendingcb--,n&&t.emit("error",n),e.prefinished=!0,t.emit("prefinish"),E(t,e)}))}function E(t,e){var n=S(e);return n&&(!function(t,e){e.prefinished||e.finalCalled||("function"==typeof t._final?(e.pendingcb++,e.finalCalled=!0,o.nextTick(M,t,e)):(e.prefinished=!0,t.emit("prefinish")))}(t,e),0===e.pendingcb&&(e.finished=!0,t.emit("finish"))),n}f.inherits(m,h),v.prototype.getBuffer=function(){for(var t=this.bufferedRequest,e=[];t;)e.push(t),t=t.next;return e},function(){try{Object.defineProperty(v.prototype,"buffer",{get:c.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(t){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(p=Function.prototype[Symbol.hasInstance],Object.defineProperty(m,Symbol.hasInstance,{value:function(t){return!!p.call(this,t)||this===m&&(t&&t._writableState instanceof v)}})):p=function(t){return t instanceof this},m.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},m.prototype.write=function(t,e,n){var r,i=this._writableState,s=!1,a=!i.objectMode&&(r=t,d.isBuffer(r)||r instanceof l);return a&&!d.isBuffer(t)&&(t=function(t){return d.from(t)}(t)),"function"==typeof e&&(n=e,e=null),a?e="buffer":e||(e=i.defaultEncoding),"function"!=typeof n&&(n=g),i.ended?function(t,e){var n=new Error("write after end");t.emit("error",n),o.nextTick(e,n)}(this,n):(a||function(t,e,n,r){var i=!0,s=!1;return null===n?s=new TypeError("May not write null values to stream"):"string"==typeof n||void 0===n||e.objectMode||(s=new TypeError("Invalid non-string/buffer chunk")),s&&(t.emit("error",s),o.nextTick(r,s),i=!1),i}(this,i,t,n))&&(i.pendingcb++,s=function(t,e,n,r,i,o){if(!n){var s=function(t,e,n){t.objectMode||!1===t.decodeStrings||"string"!=typeof e||(e=d.from(e,n));return e}(e,r,i);r!==s&&(n=!0,i="buffer",r=s)}var a=e.objectMode?1:r.length;e.length+=a;var u=e.length<e.highWaterMark;u||(e.needDrain=!0);if(e.writing||e.corked){var f=e.lastBufferedRequest;e.lastBufferedRequest={chunk:r,encoding:i,isBuf:n,callback:o,next:null},f?f.next=e.lastBufferedRequest:e.bufferedRequest=e.lastBufferedRequest,e.bufferedRequestCount+=1}else y(t,e,!1,a,r,i,o);return u}(this,i,a,t,e,n)),s},m.prototype.cork=function(){this._writableState.corked++},m.prototype.uncork=function(){var t=this._writableState;t.corked&&(t.corked--,t.writing||t.corked||t.finished||t.bufferProcessing||!t.bufferedRequest||_(this,t))},m.prototype.setDefaultEncoding=function(t){if("string"==typeof t&&(t=t.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((t+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+t);return this._writableState.defaultEncoding=t,this},Object.defineProperty(m.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),m.prototype._write=function(t,e,n){n(new Error("_write() is not implemented"))},m.prototype._writev=null,m.prototype.end=function(t,e,n){var r=this._writableState;"function"==typeof t?(n=t,t=null,e=null):"function"==typeof e&&(n=e,e=null),null!=t&&this.write(t,e),r.corked&&(r.corked=1,this.uncork()),r.ending||r.finished||function(t,e,n){e.ending=!0,E(t,e),n&&(e.finished?o.nextTick(n):t.once("finish",n));e.ended=!0,t.writable=!1}(this,r,n)},Object.defineProperty(m.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(t){this._writableState&&(this._writableState.destroyed=t)}}),m.prototype.destroy=b.destroy,m.prototype._undestroy=b.undestroy,m.prototype._destroy=function(t,e){this.end(),e(t)}}).call(this,n(19),n(80).setImmediate,n(9))},function(t,e,n){"use strict";var r=n(83).Buffer,i=r.isEncoding||function(t){switch((t=""+t)&&t.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function o(t){var e;switch(this.encoding=function(t){var e=function(t){if(!t)return"utf8";for(var e;;)switch(t){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return t;default:if(e)return;t=(""+t).toLowerCase(),e=!0}}(t);if("string"!=typeof e&&(r.isEncoding===i||!i(t)))throw new Error("Unknown encoding: "+t);return e||t}(t),this.encoding){case"utf16le":this.text=u,this.end=f,e=4;break;case"utf8":this.fillLast=a,e=4;break;case"base64":this.text=c,this.end=h,e=3;break;default:return this.write=d,void(this.end=l)}this.lastNeed=0,this.lastTotal=0,this.lastChar=r.allocUnsafe(e)}function s(t){return t<=127?0:t>>5==6?2:t>>4==14?3:t>>3==30?4:t>>6==2?-1:-2}function a(t){var e=this.lastTotal-this.lastNeed,n=function(t,e,n){if(128!=(192&e[0]))return t.lastNeed=0,"�";if(t.lastNeed>1&&e.length>1){if(128!=(192&e[1]))return t.lastNeed=1,"�";if(t.lastNeed>2&&e.length>2&&128!=(192&e[2]))return t.lastNeed=2,"�"}}(this,t);return void 0!==n?n:this.lastNeed<=t.length?(t.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(t.copy(this.lastChar,e,0,t.length),void(this.lastNeed-=t.length))}function u(t,e){if((t.length-e)%2==0){var n=t.toString("utf16le",e);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=t[t.length-1],t.toString("utf16le",e,t.length-1)}function f(t){var e=t&&t.length?this.write(t):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,n)}return e}function c(t,e){var n=(t.length-e)%3;return 0===n?t.toString("base64",e):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=t[t.length-1]:(this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1]),t.toString("base64",e,t.length-n))}function h(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function d(t){return t.toString(this.encoding)}function l(t){return t&&t.length?this.write(t):""}e.StringDecoder=o,o.prototype.write=function(t){if(0===t.length)return"";var e,n;if(this.lastNeed){if(void 0===(e=this.fillLast(t)))return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n<t.length?e?e+this.text(t,n):this.text(t,n):e||""},o.prototype.end=function(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+"�":e},o.prototype.text=function(t,e){var n=function(t,e,n){var r=e.length-1;if(r<n)return 0;var i=s(e[r]);if(i>=0)return i>0&&(t.lastNeed=i-1),i;if(--r<n||-2===i)return 0;if((i=s(e[r]))>=0)return i>0&&(t.lastNeed=i-2),i;if(--r<n||-2===i)return 0;if((i=s(e[r]))>=0)return i>0&&(2===i?i=0:t.lastNeed=i-3),i;return 0}(this,t,e);if(!this.lastNeed)return t.toString("utf8",e);this.lastTotal=n;var r=t.length-(n-this.lastNeed);return t.copy(this.lastChar,0,r),t.toString("utf8",e,r)},o.prototype.fillLast=function(t){if(this.lastNeed<=t.length)return t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,t.length),this.lastNeed-=t.length}},function(t,e,n){"use strict";var r=n(0)({inherits:n(36).Hash,statics:{width:20}});t.exports={Hash160:r}},function(t,e,n){"use strict";var r=n(2),i=n(0),o=n(10),s=o.Comparable,a=o.SerializedType,u=n(3),f=u.compareBytes,c=u.parseBytes,h=i({Hash:function(t){var e=this.constructor.width;this._bytes=t?c(t,Uint8Array):new Uint8Array(e),r.equal(this._bytes.length,e)},mixins:[s,a],statics:{width:NaN,from:function(t){return t instanceof this?t:new this(c(t))},fromParser:function(t,e){return new this(t.read(e||this.width))}},compareTo:function(t){return f(this._bytes,this.constructor.from(t)._bytes)},toString:function(){return this.toHex()},nibblet:function(t){var e=t>0?t/2|0:0,n=this._bytes[e];return t%2==0?n=(240&n)>>>4:n&=15,n}});t.exports={Hash:h}},function(t,e,n){"use strict";var r=n(2),i=n(3),o=i.parseBytes,s=i.bytesToHex,a=n(0),u=n(15),f=u.Type,c=u.Field,h=a({implementing:{put:function(){}},BytesList:function(){this.arrays=[],this.length=0},put:function(t){var e=o(t,Uint8Array);return this.length+=e.length,this.arrays.push(e),this},toBytesSink:function(t){this.arrays.forEach((function(e){t.put(e)}))},toBytes:function(){var t=new Uint8Array(this.length),e=0;return this.arrays.forEach((function(n){t.set(n,e),e+=n.length})),t},toHex:function(){return s(this.toBytes())}}),d=a({BinarySerializer:function(t){this.sink=t},write:function(t){t.toBytesSink(this.sink)},put:function(t){this.sink.put(t)},writeType:function(t,e){this.write(t.from(e))},writeBytesList:function(t){t.toBytesSink(this.sink)},encodeVL:function(t){var e=t,n=new Uint8Array(4);if(e<=192)return n[0]=e,n.subarray(0,1);if(e<=12480)return e-=193,n[0]=193+(e>>>8),n[1]=255&e,n.subarray(0,2);if(e<=918744)return e-=12481,n[0]=241+(e>>>16),n[1]=e>>8&255,n[2]=255&e,n.subarray(0,3);throw new Error("Overflow error")},writeFieldAndValue:function(t,e){var n=this.sink,i=t.associatedType.from(e);r(i.toBytesSink,t),n.put(t.bytes),t.isVLEncoded?this.writeLengthEncoded(i):(i.toBytesSink(n),t.type===f.STObject?n.put(c.ObjectEndMarker.bytes):t.type===f.STArray&&n.put(c.ArrayEndMarker.bytes))},writeLengthEncoded:function(t){var e=new h;t.toBytesSink(e),this.put(this.encodeVL(e.length)),this.writeBytesList(e)}});t.exports={BytesList:h,BinarySerializer:d}},function(t,e,n){"use strict";var r=n(12),i=n(0),o=n(3).slice,s=n(35).Hash160,a=/^[A-Z0-9]{3}$/,u=/^[A-F0-9]{40}$/;function f(t){return r.isString(t)&&(function(t){return 3===t.length}(t)||function(t){return u.test(t)}(t))}function c(t){if(function(t){return f(t)||function(t){return 20===t.length}(t)}(t))return 3===t.length?function(t){var e=new Uint8Array(20);if("XRP"!==t){var n=t.split("").map((function(t){return t.charCodeAt(0)}));e.set(n,12)}return e}(t):t;throw new Error("Unsupported Currency repr: "+t)}var h=s.prototype,d=i({inherits:s,getters:["isNative","iso"],statics:{init:function(){this.XRP=new this(new Uint8Array(20))},from:function(t){return t instanceof this?t:new this(c(t))}},Currency:function(t){s.call(this,t),this.classify()},classify:function(){for(var t=!0,e=this._bytes,n=o(this._bytes,12,15,Array),i=n.map((function(t){return String.fromCharCode(t)})).join(""),s=e.length-1;s>=0;s--)if(0!==e[s]&&12!==s&&13!==s&&14!==s){t=!1;break}var u=t&&"XRP"!==i&&a.test(i);this._isNative=t&&r.isEqual(n,[0,0,0]),this._iso=this._isNative?"XRP":u?i:null},toJSON:function(){return this.iso()?this.iso():h.toJSON.call(this)}});t.exports={Currency:d}},function(t,e,n){var r;function i(t){this.rand=t}if(t.exports=function(t){return r||(r=new i(null)),r.generate(t)},t.exports.Rand=i,i.prototype.generate=function(t){return this._rand(t)},i.prototype._rand=function(t){if(this.rand.getBytes)return this.rand.getBytes(t);for(var e=new Uint8Array(t),n=0;n<e.length;n++)e[n]=this.rand.getByte();return e},"object"==typeof self)self.crypto&&self.crypto.getRandomValues?i.prototype._rand=function(t){var e=new Uint8Array(t);return self.crypto.getRandomValues(e),e}:self.msCrypto&&self.msCrypto.getRandomValues?i.prototype._rand=function(t){var e=new Uint8Array(t);return self.msCrypto.getRandomValues(e),e}:"object"==typeof window&&(i.prototype._rand=function(){throw new Error("Not implemented yet")});else try{var o=n(110);if("function"!=typeof o.randomBytes)throw new Error("Not supported");i.prototype._rand=function(t){return o.randomBytes(t)}}catch(t){}},function(t,e,n){"use strict";var r,i=e,o=n(18),s=n(62),a=n(4).assert;function u(t){"short"===t.type?this.curve=new s.short(t):"edwards"===t.type?this.curve=new s.edwards(t):this.curve=new s.mont(t),this.g=this.curve.g,this.n=this.curve.n,this.hash=t.hash,a(this.g.validate(),"Invalid curve"),a(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function f(t,e){Object.defineProperty(i,t,{configurable:!0,enumerable:!0,get:function(){var n=new u(e);return Object.defineProperty(i,t,{configurable:!0,enumerable:!0,value:n}),n}})}i.PresetCurve=u,f("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:o.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),f("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:o.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),f("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:o.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),f("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:o.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),f("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:o.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),f("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:o.sha256,gRed:!1,g:["9"]}),f("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:o.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{r=n(122)}catch(t){r=void 0}f("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:o.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",r]})},function(t,e){var n={}.toString;t.exports=Array.isArray||function(t){return"[object Array]"==n.call(t)}},function(t,e,n){"use strict";var r=n(1),i=n(76),o=n(89),s=n(90),a=n(95);function u(t){a.call(this,"digest"),this._hash=t}r(u,a),u.prototype._update=function(t){this._hash.update(t)},u.prototype._final=function(){return this._hash.digest()},t.exports=function(t){return"md5"===(t=t.toLowerCase())?new i:"rmd160"===t||"ripemd160"===t?new o:new u(s(t))}},function(t,e,n){"use strict";var r=n(6).Buffer,i=n(44).Transform;function o(t){i.call(this),this._block=r.allocUnsafe(t),this._blockSize=t,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}n(1)(o,i),o.prototype._transform=function(t,e,n){var r=null;try{this.update(t,e)}catch(t){r=t}n(r)},o.prototype._flush=function(t){var e=null;try{this.push(this.digest())}catch(t){e=t}t(e)},o.prototype.update=function(t,e){if(function(t,e){if(!r.isBuffer(t)&&"string"!=typeof t)throw new TypeError(e+" must be a string or a buffer")}(t,"Data"),this._finalized)throw new Error("Digest already called");r.isBuffer(t)||(t=r.from(t,e));for(var n=this._block,i=0;this._blockOffset+t.length-i>=this._blockSize;){for(var o=this._blockOffset;o<this._blockSize;)n[o++]=t[i++];this._update(),this._blockOffset=0}for(;i<t.length;)n[this._blockOffset++]=t[i++];for(var s=0,a=8*t.length;a>0;++s)this._length[s]+=a,(a=this._length[s]/4294967296|0)>0&&(this._length[s]-=4294967296*a);return this},o.prototype._update=function(){throw new Error("_update is not implemented")},o.prototype.digest=function(t){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var e=this._digest();void 0!==t&&(e=e.toString(t)),this._block.fill(0),this._blockOffset=0;for(var n=0;n<4;++n)this._length[n]=0;return e},o.prototype._digest=function(){throw new Error("_digest is not implemented")},t.exports=o},function(t,e,n){t.exports=i;var r=n(30).EventEmitter;function i(){r.call(this)}n(1)(i,r),i.Readable=n(31),i.Writable=n(85),i.Duplex=n(86),i.Transform=n(87),i.PassThrough=n(88),i.Stream=i,i.prototype.pipe=function(t,e){var n=this;function i(e){t.writable&&!1===t.write(e)&&n.pause&&n.pause()}function o(){n.readable&&n.resume&&n.resume()}n.on("data",i),t.on("drain",o),t._isStdio||e&&!1===e.end||(n.on("end",a),n.on("close",u));var s=!1;function a(){s||(s=!0,t.end())}function u(){s||(s=!0,"function"==typeof t.destroy&&t.destroy())}function f(t){if(c(),0===r.listenerCount(this,"error"))throw t}function c(){n.removeListener("data",i),t.removeListener("drain",o),n.removeListener("end",a),n.removeListener("close",u),n.removeListener("error",f),t.removeListener("error",f),n.removeListener("end",c),n.removeListener("close",c),t.removeListener("close",c)}return n.on("error",f),t.on("error",f),n.on("end",c),n.on("close",c),t.on("close",c),t.emit("pipe",n),t}},function(t,e,n){"use strict";(function(e,r){var i=n(23);t.exports=y;var o,s=n(41);y.ReadableState=m;n(30).EventEmitter;var a=function(t,e){return t.listeners(e).length},u=n(46),f=n(32).Buffer,c=e.Uint8Array||function(){};var h=Object.create(n(20));h.inherits=n(1);var d=n(77),l=void 0;l=d&&d.debuglog?d.debuglog("stream"):function(){};var p,b=n(78),g=n(47);h.inherits(y,u);var v=["error","close","destroy","pause","resume"];function m(t,e){t=t||{};var r=e instanceof(o=o||n(13));this.objectMode=!!t.objectMode,r&&(this.objectMode=this.objectMode||!!t.readableObjectMode);var i=t.highWaterMark,s=t.readableHighWaterMark,a=this.objectMode?16:16384;this.highWaterMark=i||0===i?i:r&&(s||0===s)?s:a,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new b,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=t.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,t.encoding&&(p||(p=n(34).StringDecoder),this.decoder=new p(t.encoding),this.encoding=t.encoding)}function y(t){if(o=o||n(13),!(this instanceof y))return new y(t);this._readableState=new m(t,this),this.readable=!0,t&&("function"==typeof t.read&&(this._read=t.read),"function"==typeof t.destroy&&(this._destroy=t.destroy)),u.call(this)}function w(t,e,n,r,i){var o,s=t._readableState;null===e?(s.reading=!1,function(t,e){if(e.ended)return;if(e.decoder){var n=e.decoder.end();n&&n.length&&(e.buffer.push(n),e.length+=e.objectMode?1:n.length)}e.ended=!0,M(t)}(t,s)):(i||(o=function(t,e){var n;r=e,f.isBuffer(r)||r instanceof c||"string"==typeof e||void 0===e||t.objectMode||(n=new TypeError("Invalid non-string/buffer chunk"));var r;return n}(s,e)),o?t.emit("error",o):s.objectMode||e&&e.length>0?("string"==typeof e||s.objectMode||Object.getPrototypeOf(e)===f.prototype||(e=function(t){return f.from(t)}(e)),r?s.endEmitted?t.emit("error",new Error("stream.unshift() after end event")):_(t,s,e,!0):s.ended?t.emit("error",new Error("stream.push() after EOF")):(s.reading=!1,s.decoder&&!n?(e=s.decoder.write(e),s.objectMode||0!==e.length?_(t,s,e,!1):A(t,s)):_(t,s,e,!1))):r||(s.reading=!1));return function(t){return!t.ended&&(t.needReadable||t.length<t.highWaterMark||0===t.length)}(s)}function _(t,e,n,r){e.flowing&&0===e.length&&!e.sync?(t.emit("data",n),t.read(0)):(e.length+=e.objectMode?1:n.length,r?e.buffer.unshift(n):e.buffer.push(n),e.needReadable&&M(t)),A(t,e)}Object.defineProperty(y.prototype,"destroyed",{get:function(){return void 0!==this._readableState&&this._readableState.destroyed},set:function(t){this._readableState&&(this._readableState.destroyed=t)}}),y.prototype.destroy=g.destroy,y.prototype._undestroy=g.undestroy,y.prototype._destroy=function(t,e){this.push(null),e(t)},y.prototype.push=function(t,e){var n,r=this._readableState;return r.objectMode?n=!0:"string"==typeof t&&((e=e||r.defaultEncoding)!==r.encoding&&(t=f.from(t,e),e=""),n=!0),w(this,t,e,!1,n)},y.prototype.unshift=function(t){return w(this,t,null,!0,!1)},y.prototype.isPaused=function(){return!1===this._readableState.flowing},y.prototype.setEncoding=function(t){return p||(p=n(34).StringDecoder),this._readableState.decoder=new p(t),this._readableState.encoding=t,this};function S(t,e){return t<=0||0===e.length&&e.ended?0:e.objectMode?1:t!=t?e.flowing&&e.length?e.buffer.head.data.length:e.length:(t>e.highWaterMark&&(e.highWaterMark=function(t){return t>=8388608?t=8388608:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}function M(t){var e=t._readableState;e.needReadable=!1,e.emittedReadable||(l("emitReadable",e.flowing),e.emittedReadable=!0,e.sync?i.nextTick(E,t):E(t))}function E(t){l("emit readable"),t.emit("readable"),k(t)}function A(t,e){e.readingMore||(e.readingMore=!0,i.nextTick(x,t,e))}function x(t,e){for(var n=e.length;!e.reading&&!e.flowing&&!e.ended&&e.length<e.highWaterMark&&(l("maybeReadMore read 0"),t.read(0),n!==e.length);)n=e.length;e.readingMore=!1}function I(t){l("readable nexttick read 0"),t.read(0)}function T(t,e){e.reading||(l("resume read 0"),t.read(0)),e.resumeScheduled=!1,e.awaitDrain=0,t.emit("resume"),k(t),e.flowing&&!e.reading&&t.read(0)}function k(t){var e=t._readableState;for(l("flow",e.flowing);e.flowing&&null!==t.read(););}function L(t,e){return 0===e.length?null:(e.objectMode?n=e.buffer.shift():!t||t>=e.length?(n=e.decoder?e.buffer.join(""):1===e.buffer.length?e.buffer.head.data:e.buffer.concat(e.length),e.buffer.clear()):n=function(t,e,n){var r;t<e.head.data.length?(r=e.head.data.slice(0,t),e.head.data=e.head.data.slice(t)):r=t===e.head.data.length?e.shift():n?function(t,e){var n=e.head,r=1,i=n.data;t-=i.length;for(;n=n.next;){var o=n.data,s=t>o.length?o.length:t;if(s===o.length?i+=o:i+=o.slice(0,t),0===(t-=s)){s===o.length?(++r,n.next?e.head=n.next:e.head=e.tail=null):(e.head=n,n.data=o.slice(s));break}++r}return e.length-=r,i}(t,e):function(t,e){var n=f.allocUnsafe(t),r=e.head,i=1;r.data.copy(n),t-=r.data.length;for(;r=r.next;){var o=r.data,s=t>o.length?o.length:t;if(o.copy(n,n.length-t,0,s),0===(t-=s)){s===o.length?(++i,r.next?e.head=r.next:e.head=e.tail=null):(e.head=r,r.data=o.slice(s));break}++i}return e.length-=i,n}(t,e);return r}(t,e.buffer,e.decoder),n);var n}function N(t){var e=t._readableState;if(e.length>0)throw new Error('"endReadable()" called on non-empty stream');e.endEmitted||(e.ended=!0,i.nextTick(R,e,t))}function R(t,e){t.endEmitted||0!==t.length||(t.endEmitted=!0,e.readable=!1,e.emit("end"))}function O(t,e){for(var n=0,r=t.length;n<r;n++)if(t[n]===e)return n;return-1}y.prototype.read=function(t){l("read",t),t=parseInt(t,10);var e=this._readableState,n=t;if(0!==t&&(e.emittedReadable=!1),0===t&&e.needReadable&&(e.length>=e.highWaterMark||e.ended))return l("read: emitReadable",e.length,e.ended),0===e.length&&e.ended?N(this):M(this),null;if(0===(t=S(t,e))&&e.ended)return 0===e.length&&N(this),null;var r,i=e.needReadable;return l("need readable",i),(0===e.length||e.length-t<e.highWaterMark)&&l("length less than watermark",i=!0),e.ended||e.reading?l("reading or ended",i=!1):i&&(l("do read"),e.reading=!0,e.sync=!0,0===e.length&&(e.needReadable=!0),this._read(e.highWaterMark),e.sync=!1,e.reading||(t=S(n,e))),null===(r=t>0?L(t,e):null)?(e.needReadable=!0,t=0):e.length-=t,0===e.length&&(e.ended||(e.needReadable=!0),n!==t&&e.ended&&N(this)),null!==r&&this.emit("data",r),r},y.prototype._read=function(t){this.emit("error",new Error("_read() is not implemented"))},y.prototype.pipe=function(t,e){var n=this,o=this._readableState;switch(o.pipesCount){case 0:o.pipes=t;break;case 1:o.pipes=[o.pipes,t];break;default:o.pipes.push(t)}o.pipesCount+=1,l("pipe count=%d opts=%j",o.pipesCount,e);var u=(!e||!1!==e.end)&&t!==r.stdout&&t!==r.stderr?c:y;function f(e,r){l("onunpipe"),e===n&&r&&!1===r.hasUnpiped&&(r.hasUnpiped=!0,l("cleanup"),t.removeListener("close",v),t.removeListener("finish",m),t.removeListener("drain",h),t.removeListener("error",g),t.removeListener("unpipe",f),n.removeListener("end",c),n.removeListener("end",y),n.removeListener("data",b),d=!0,!o.awaitDrain||t._writableState&&!t._writableState.needDrain||h())}function c(){l("onend"),t.end()}o.endEmitted?i.nextTick(u):n.once("end",u),t.on("unpipe",f);var h=function(t){return function(){var e=t._readableState;l("pipeOnDrain",e.awaitDrain),e.awaitDrain&&e.awaitDrain--,0===e.awaitDrain&&a(t,"data")&&(e.flowing=!0,k(t))}}(n);t.on("drain",h);var d=!1;var p=!1;function b(e){l("ondata"),p=!1,!1!==t.write(e)||p||((1===o.pipesCount&&o.pipes===t||o.pipesCount>1&&-1!==O(o.pipes,t))&&!d&&(l("false write response, pause",n._readableState.awaitDrain),n._readableState.awaitDrain++,p=!0),n.pause())}function g(e){l("onerror",e),y(),t.removeListener("error",g),0===a(t,"error")&&t.emit("error",e)}function v(){t.removeListener("finish",m),y()}function m(){l("onfinish"),t.removeListener("close",v),y()}function y(){l("unpipe"),n.unpipe(t)}return n.on("data",b),function(t,e,n){if("function"==typeof t.prependListener)return t.prependListener(e,n);t._events&&t._events[e]?s(t._events[e])?t._events[e].unshift(n):t._events[e]=[n,t._events[e]]:t.on(e,n)}(t,"error",g),t.once("close",v),t.once("finish",m),t.emit("pipe",n),o.flowing||(l("pipe resume"),n.resume()),t},y.prototype.unpipe=function(t){var e=this._readableState,n={hasUnpiped:!1};if(0===e.pipesCount)return this;if(1===e.pipesCount)return t&&t!==e.pipes||(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit("unpipe",this,n)),this;if(!t){var r=e.pipes,i=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var o=0;o<i;o++)r[o].emit("unpipe",this,n);return this}var s=O(e.pipes,t);return-1===s||(e.pipes.splice(s,1),e.pipesCount-=1,1===e.pipesCount&&(e.pipes=e.pipes[0]),t.emit("unpipe",this,n)),this},y.prototype.on=function(t,e){var n=u.prototype.on.call(this,t,e);if("data"===t)!1!==this._readableState.flowing&&this.resume();else if("readable"===t){var r=this._readableState;r.endEmitted||r.readableListening||(r.readableListening=r.needReadable=!0,r.emittedReadable=!1,r.reading?r.length&&M(this):i.nextTick(I,this))}return n},y.prototype.addListener=y.prototype.on,y.prototype.resume=function(){var t=this._readableState;return t.flowing||(l("resume"),t.flowing=!0,function(t,e){e.resumeScheduled||(e.resumeScheduled=!0,i.nextTick(T,t,e))}(this,t)),this},y.prototype.pause=function(){return l("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(l("pause"),this._readableState.flowing=!1,this.emit("pause")),this},y.prototype.wrap=function(t){var e=this,n=this._readableState,r=!1;for(var i in t.on("end",(function(){if(l("wrapped end"),n.decoder&&!n.ended){var t=n.decoder.end();t&&t.length&&e.push(t)}e.push(null)})),t.on("data",(function(i){(l("wrapped data"),n.decoder&&(i=n.decoder.write(i)),n.objectMode&&null==i)||(n.objectMode||i&&i.length)&&(e.push(i)||(r=!0,t.pause()))})),t)void 0===this[i]&&"function"==typeof t[i]&&(this[i]=function(e){return function(){return t[e].apply(t,arguments)}}(i));for(var o=0;o<v.length;o++)t.on(v[o],this.emit.bind(this,v[o]));return this._read=function(e){l("wrapped _read",e),r&&(r=!1,t.resume())},this},Object.defineProperty(y.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),y._fromList=L}).call(this,n(9),n(19))},function(t,e,n){t.exports=n(30).EventEmitter},function(t,e,n){"use strict";var r=n(23);function i(t,e){t.emit("error",e)}t.exports={destroy:function(t,e){var n=this,o=this._readableState&&this._readableState.destroyed,s=this._writableState&&this._writableState.destroyed;return o||s?(e?e(t):!t||this._writableState&&this._writableState.errorEmitted||r.nextTick(i,this,t),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(t||null,(function(t){!e&&t?(r.nextTick(i,n,t),n._writableState&&(n._writableState.errorEmitted=!0)):e&&e(t)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}}},function(t,e,n){"use strict";t.exports=s;var r=n(13),i=Object.create(n(20));function o(t,e){var n=this._transformState;n.transforming=!1;var r=n.writecb;if(!r)return this.emit("error",new Error("write callback called multiple times"));n.writechunk=null,n.writecb=null,null!=e&&this.push(e),r(t);var i=this._readableState;i.reading=!1,(i.needReadable||i.length<i.highWaterMark)&&this._read(i.highWaterMark)}function s(t){if(!(this instanceof s))return new s(t);r.call(this,t),this._transformState={afterTransform:o.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,t&&("function"==typeof t.transform&&(this._transform=t.transform),"function"==typeof t.flush&&(this._flush=t.flush)),this.on("prefinish",a)}function a(){var t=this;"function"==typeof this._flush?this._flush((function(e,n){u(t,e,n)})):u(this,null,null)}function u(t,e,n){if(e)return t.emit("error",e);if(null!=n&&t.push(n),t._writableState.length)throw new Error("Calling transform done when ws.length != 0");if(t._transformState.transforming)throw new Error("Calling transform done when still transforming");return t.push(null)}i.inherits=n(1),i.inherits(s,r),s.prototype.push=function(t,e){return this._transformState.needTransform=!1,r.prototype.push.call(this,t,e)},s.prototype._transform=function(t,e,n){throw new Error("_transform() is not implemented")},s.prototype._write=function(t,e,n){var r=this._transformState;if(r.writecb=n,r.writechunk=t,r.writeencoding=e,!r.transforming){var i=this._readableState;(r.needTransform||i.needReadable||i.length<i.highWaterMark)&&this._read(i.highWaterMark)}},s.prototype._read=function(t){var e=this._transformState;null!==e.writechunk&&e.writecb&&!e.transforming?(e.transforming=!0,this._transform(e.writechunk,e.writeencoding,e.afterTransform)):e.needTransform=!0},s.prototype._destroy=function(t,e){var n=this;r.prototype._destroy.call(this,t,(function(t){e(t),n.emit("close")}))}},function(t,e,n){var r=n(1),i=n(17),o=n(6).Buffer,s=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],a=new Array(64);function u(){this.init(),this._w=a,i.call(this,64,56)}function f(t,e,n){return n^t&(e^n)}function c(t,e,n){return t&e|n&(t|e)}function h(t){return(t>>>2|t<<30)^(t>>>13|t<<19)^(t>>>22|t<<10)}function d(t){return(t>>>6|t<<26)^(t>>>11|t<<21)^(t>>>25|t<<7)}function l(t){return(t>>>7|t<<25)^(t>>>18|t<<14)^t>>>3}function p(t){return(t>>>17|t<<15)^(t>>>19|t<<13)^t>>>10}r(u,i),u.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this},u.prototype._update=function(t){for(var e=this._w,n=0|this._a,r=0|this._b,i=0|this._c,o=0|this._d,a=0|this._e,u=0|this._f,b=0|this._g,g=0|this._h,v=0;v<16;++v)e[v]=t.readInt32BE(4*v);for(;v<64;++v)e[v]=p(e[v-2])+e[v-7]+l(e[v-15])+e[v-16]|0;for(var m=0;m<64;++m){var y=g+d(a)+f(a,u,b)+s[m]+e[m]|0,w=h(n)+c(n,r,i)|0;g=b,b=u,u=a,a=o+y|0,o=i,i=r,r=n,n=y+w|0}this._a=n+this._a|0,this._b=r+this._b|0,this._c=i+this._c|0,this._d=o+this._d|0,this._e=a+this._e|0,this._f=u+this._f|0,this._g=b+this._g|0,this._h=g+this._h|0},u.prototype._hash=function(){var t=o.allocUnsafe(32);return t.writeInt32BE(this._a,0),t.writeInt32BE(this._b,4),t.writeInt32BE(this._c,8),t.writeInt32BE(this._d,12),t.writeInt32BE(this._e,16),t.writeInt32BE(this._f,20),t.writeInt32BE(this._g,24),t.writeInt32BE(this._h,28),t},t.exports=u},function(t,e,n){var r=n(1),i=n(17),o=n(6).Buffer,s=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],a=new Array(160);function u(){this.init(),this._w=a,i.call(this,128,112)}function f(t,e,n){return n^t&(e^n)}function c(t,e,n){return t&e|n&(t|e)}function h(t,e){return(t>>>28|e<<4)^(e>>>2|t<<30)^(e>>>7|t<<25)}function d(t,e){return(t>>>14|e<<18)^(t>>>18|e<<14)^(e>>>9|t<<23)}function l(t,e){return(t>>>1|e<<31)^(t>>>8|e<<24)^t>>>7}function p(t,e){return(t>>>1|e<<31)^(t>>>8|e<<24)^(t>>>7|e<<25)}function b(t,e){return(t>>>19|e<<13)^(e>>>29|t<<3)^t>>>6}function g(t,e){return(t>>>19|e<<13)^(e>>>29|t<<3)^(t>>>6|e<<26)}function v(t,e){return t>>>0<e>>>0?1:0}r(u,i),u.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this},u.prototype._update=function(t){for(var e=this._w,n=0|this._ah,r=0|this._bh,i=0|this._ch,o=0|this._dh,a=0|this._eh,u=0|this._fh,m=0|this._gh,y=0|this._hh,w=0|this._al,_=0|this._bl,S=0|this._cl,M=0|this._dl,E=0|this._el,A=0|this._fl,x=0|this._gl,I=0|this._hl,T=0;T<32;T+=2)e[T]=t.readInt32BE(4*T),e[T+1]=t.readInt32BE(4*T+4);for(;T<160;T+=2){var k=e[T-30],L=e[T-30+1],N=l(k,L),R=p(L,k),O=b(k=e[T-4],L=e[T-4+1]),B=g(L,k),z=e[T-14],P=e[T-14+1],U=e[T-32],F=e[T-32+1],j=R+P|0,C=N+z+v(j,R)|0;C=(C=C+O+v(j=j+B|0,B)|0)+U+v(j=j+F|0,F)|0,e[T]=C,e[T+1]=j}for(var D=0;D<160;D+=2){C=e[D],j=e[D+1];var q=c(n,r,i),V=c(w,_,S),H=h(n,w),W=h(w,n),Z=d(a,E),Y=d(E,a),J=s[D],K=s[D+1],$=f(a,u,m),X=f(E,A,x),G=I+Y|0,Q=y+Z+v(G,I)|0;Q=(Q=(Q=Q+$+v(G=G+X|0,X)|0)+J+v(G=G+K|0,K)|0)+C+v(G=G+j|0,j)|0;var tt=W+V|0,et=H+q+v(tt,W)|0;y=m,I=x,m=u,x=A,u=a,A=E,a=o+Q+v(E=M+G|0,M)|0,o=i,M=S,i=r,S=_,r=n,_=w,n=Q+et+v(w=G+tt|0,G)|0}this._al=this._al+w|0,this._bl=this._bl+_|0,this._cl=this._cl+S|0,this._dl=this._dl+M|0,this._el=this._el+E|0,this._fl=this._fl+A|0,this._gl=this._gl+x|0,this._hl=this._hl+I|0,this._ah=this._ah+n+v(this._al,w)|0,this._bh=this._bh+r+v(this._bl,_)|0,this._ch=this._ch+i+v(this._cl,S)|0,this._dh=this._dh+o+v(this._dl,M)|0,this._eh=this._eh+a+v(this._el,E)|0,this._fh=this._fh+u+v(this._fl,A)|0,this._gh=this._gh+m+v(this._gl,x)|0,this._hh=this._hh+y+v(this._hl,I)|0},u.prototype._hash=function(){var t=o.allocUnsafe(64);function e(e,n,r){t.writeInt32BE(e,r),t.writeInt32BE(n,r+4)}return e(this._ah,this._al,0),e(this._bh,this._bl,8),e(this._ch,this._cl,16),e(this._dh,this._dl,24),e(this._eh,this._el,32),e(this._fh,this._fl,40),e(this._gh,this._gl,48),e(this._hh,this._hl,56),t},t.exports=u},function(t,e,n){var r;!function(i){"use strict";var o,s,a,u="0123456789abcdef",f="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",c="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",h={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-9e15,maxE:9e15,crypto:!1},d=!0,l="[DecimalError] Invalid argument: ",p=Math.floor,b=Math.pow,g=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,v=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,m=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,y=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,w=f.length-1,_=c.length-1,S={name:"[object Decimal]"};function M(t){var e,n,r,i=t.length-1,o="",s=t[0];if(i>0){for(o+=s,e=1;e<i;e++)(n=7-(r=t[e]+"").length)&&(o+=B(n)),o+=r;(n=7-(r=(s=t[e])+"").length)&&(o+=B(n))}else if(0===s)return"0";for(;s%10==0;)s/=10;return o+s}function E(t,e,n){if(t!==~~t||t<e||t>n)throw Error(l+t)}function A(t,e,n,r){var i,o,s,a;for(o=t[0];o>=10;o/=10)--e;return--e<0?(e+=7,i=0):(i=Math.ceil((e+1)/7),e%=7),o=b(10,7-e),a=t[i]%o|0,null==r?e<3?(0==e?a=a/100|0:1==e&&(a=a/10|0),s=n<4&&99999==a||n>3&&49999==a||5e4==a||0==a):s=(n<4&&a+1==o||n>3&&a+1==o/2)&&(t[i+1]/o/100|0)==b(10,e-2)-1||(a==o/2||0==a)&&0==(t[i+1]/o/100|0):e<4?(0==e?a=a/1e3|0:1==e?a=a/100|0:2==e&&(a=a/10|0),s=(r||n<4)&&9999==a||!r&&n>3&&4999==a):s=((r||n<4)&&a+1==o||!r&&n>3&&a+1==o/2)&&(t[i+1]/o/1e3|0)==b(10,e-3)-1,s}function x(t,e,n){for(var r,i,o=[0],s=0,a=t.length;s<a;){for(i=o.length;i--;)o[i]*=e;for(o[0]+=u.indexOf(t.charAt(s++)),r=0;r<o.length;r++)o[r]>n-1&&(void 0===o[r+1]&&(o[r+1]=0),o[r+1]+=o[r]/n|0,o[r]%=n)}return o.reverse()}S.absoluteValue=S.abs=function(){var t=new this.constructor(this);return t.s<0&&(t.s=1),T(t)},S.ceil=function(){return T(new this.constructor(this),this.e+1,2)},S.comparedTo=S.cmp=function(t){var e,n,r,i,o=this,s=o.d,a=(t=new o.constructor(t)).d,u=o.s,f=t.s;if(!s||!a)return u&&f?u!==f?u:s===a?0:!s^u<0?1:-1:NaN;if(!s[0]||!a[0])return s[0]?u:a[0]?-f:0;if(u!==f)return u;if(o.e!==t.e)return o.e>t.e^u<0?1:-1;for(e=0,n=(r=s.length)<(i=a.length)?r:i;e<n;++e)if(s[e]!==a[e])return s[e]>a[e]^u<0?1:-1;return r===i?0:r>i^u<0?1:-1},S.cosine=S.cos=function(){var t,e,n=this,r=n.constructor;return n.d?n.d[0]?(t=r.precision,e=r.rounding,r.precision=t+Math.max(n.e,n.sd())+7,r.rounding=1,n=function(t,e){var n,r,i=e.d.length;i<32?(n=Math.ceil(i/3),r=(1/H(4,n)).toString()):(n=16,r="2.3283064365386962890625e-10");t.precision+=n,e=V(t,1,e.times(r),new t(1));for(var o=n;o--;){var s=e.times(e);e=s.times(s).minus(s).times(8).plus(1)}return t.precision-=n,e}(r,W(r,n)),r.precision=t,r.rounding=e,T(2==a||3==a?n.neg():n,t,e,!0)):new r(1):new r(NaN)},S.cubeRoot=S.cbrt=function(){var t,e,n,r,i,o,s,a,u,f,c=this,h=c.constructor;if(!c.isFinite()||c.isZero())return new h(c);for(d=!1,(o=c.s*b(c.s*c,1/3))&&Math.abs(o)!=1/0?r=new h(o.toString()):(n=M(c.d),(o=((t=c.e)-n.length+1)%3)&&(n+=1==o||-2==o?"0":"00"),o=b(n,1/3),t=p((t+1)/3)-(t%3==(t<0?-1:2)),(r=new h(n=o==1/0?"5e"+t:(n=o.toExponential()).slice(0,n.indexOf("e")+1)+t)).s=c.s),s=(t=h.precision)+3;;)if(f=(u=(a=r).times(a).times(a)).plus(c),r=I(f.plus(c).times(a),f.plus(u),s+2,1),M(a.d).slice(0,s)===(n=M(r.d)).slice(0,s)){if("9999"!=(n=n.slice(s-3,s+1))&&(i||"4999"!=n)){+n&&(+n.slice(1)||"5"!=n.charAt(0))||(T(r,t+1,1),e=!r.times(r).times(r).eq(c));break}if(!i&&(T(a,t+1,0),a.times(a).times(a).eq(c))){r=a;break}s+=4,i=1}return d=!0,T(r,t,h.rounding,e)},S.decimalPlaces=S.dp=function(){var t,e=this.d,n=NaN;if(e){if(n=7*((t=e.length-1)-p(this.e/7)),t=e[t])for(;t%10==0;t/=10)n--;n<0&&(n=0)}return n},S.dividedBy=S.div=function(t){return I(this,new this.constructor(t))},S.dividedToIntegerBy=S.divToInt=function(t){var e=this.constructor;return T(I(this,new e(t),0,1,1),e.precision,e.rounding)},S.equals=S.eq=function(t){return 0===this.cmp(t)},S.floor=function(){return T(new this.constructor(this),this.e+1,3)},S.greaterThan=S.gt=function(t){return this.cmp(t)>0},S.greaterThanOrEqualTo=S.gte=function(t){var e=this.cmp(t);return 1==e||0===e},S.hyperbolicCosine=S.cosh=function(){var t,e,n,r,i,o=this,s=o.constructor,a=new s(1);if(!o.isFinite())return new s(o.s?1/0:NaN);if(o.isZero())return a;n=s.precision,r=s.rounding,s.precision=n+Math.max(o.e,o.sd())+4,s.rounding=1,(i=o.d.length)<32?e=(1/H(4,t=Math.ceil(i/3))).toString():(t=16,e="2.3283064365386962890625e-10"),o=V(s,1,o.times(e),new s(1),!0);for(var u,f=t,c=new s(8);f--;)u=o.times(o),o=a.minus(u.times(c.minus(u.times(c))));return T(o,s.precision=n,s.rounding=r,!0)},S.hyperbolicSine=S.sinh=function(){var t,e,n,r,i=this,o=i.constructor;if(!i.isFinite()||i.isZero())return new o(i);if(e=o.precision,n=o.rounding,o.precision=e+Math.max(i.e,i.sd())+4,o.rounding=1,(r=i.d.length)<3)i=V(o,2,i,i,!0);else{t=(t=1.4*Math.sqrt(r))>16?16:0|t,i=V(o,2,i=i.times(1/H(5,t)),i,!0);for(var s,a=new o(5),u=new o(16),f=new o(20);t--;)s=i.times(i),i=i.times(a.plus(s.times(u.times(s).plus(f))))}return o.precision=e,o.rounding=n,T(i,e,n,!0)},S.hyperbolicTangent=S.tanh=function(){var t,e,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(t=r.precision,e=r.rounding,r.precision=t+7,r.rounding=1,I(n.sinh(),n.cosh(),r.precision=t,r.rounding=e)):new r(n.s)},S.inverseCosine=S.acos=function(){var t,e=this,n=e.constructor,r=e.abs().cmp(1),i=n.precision,o=n.rounding;return-1!==r?0===r?e.isNeg()?R(n,i,o):new n(0):new n(NaN):e.isZero()?R(n,i+4,o).times(.5):(n.precision=i+6,n.rounding=1,e=e.asin(),t=R(n,i+4,o).times(.5),n.precision=i,n.rounding=o,t.minus(e))},S.inverseHyperbolicCosine=S.acosh=function(){var t,e,n=this,r=n.constructor;return n.lte(1)?new r(n.eq(1)?0:NaN):n.isFinite()?(t=r.precision,e=r.rounding,r.precision=t+Math.max(Math.abs(n.e),n.sd())+4,r.rounding=1,d=!1,n=n.times(n).minus(1).sqrt().plus(n),d=!0,r.precision=t,r.rounding=e,n.ln()):new r(n)},S.inverseHyperbolicSine=S.asinh=function(){var t,e,n=this,r=n.constructor;return!n.isFinite()||n.isZero()?new r(n):(t=r.precision,e=r.rounding,r.precision=t+2*Math.max(Math.abs(n.e),n.sd())+6,r.rounding=1,d=!1,n=n.times(n).plus(1).sqrt().plus(n),d=!0,r.precision=t,r.rounding=e,n.ln())},S.inverseHyperbolicTangent=S.atanh=function(){var t,e,n,r,i=this,o=i.constructor;return i.isFinite()?i.e>=0?new o(i.abs().eq(1)?i.s/0:i.isZero()?i:NaN):(t=o.precision,e=o.rounding,r=i.sd(),Math.max(r,t)<2*-i.e-1?T(new o(i),t,e,!0):(o.precision=n=r-i.e,i=I(i.plus(1),new o(1).minus(i),n+t,1),o.precision=t+4,o.rounding=1,i=i.ln(),o.precision=t,o.rounding=e,i.times(.5))):new o(NaN)},S.inverseSine=S.asin=function(){var t,e,n,r,i=this,o=i.constructor;return i.isZero()?new o(i):(e=i.abs().cmp(1),n=o.precision,r=o.rounding,-1!==e?0===e?((t=R(o,n+4,r).times(.5)).s=i.s,t):new o(NaN):(o.precision=n+6,o.rounding=1,i=i.div(new o(1).minus(i.times(i)).sqrt().plus(1)).atan(),o.precision=n,o.rounding=r,i.times(2)))},S.inverseTangent=S.atan=function(){var t,e,n,r,i,o,s,a,u,f=this,c=f.constructor,h=c.precision,l=c.rounding;if(f.isFinite()){if(f.isZero())return new c(f);if(f.abs().eq(1)&&h+4<=_)return(s=R(c,h+4,l).times(.25)).s=f.s,s}else{if(!f.s)return new c(NaN);if(h+4<=_)return(s=R(c,h+4,l).times(.5)).s=f.s,s}for(c.precision=a=h+10,c.rounding=1,t=n=Math.min(28,a/7+2|0);t;--t)f=f.div(f.times(f).plus(1).sqrt().plus(1));for(d=!1,e=Math.ceil(a/7),r=1,u=f.times(f),s=new c(f),i=f;-1!==t;)if(i=i.times(u),o=s.minus(i.div(r+=2)),i=i.times(u),void 0!==(s=o.plus(i.div(r+=2))).d[e])for(t=e;s.d[t]===o.d[t]&&t--;);return n&&(s=s.times(2<<n-1)),d=!0,T(s,c.precision=h,c.rounding=l,!0)},S.isFinite=function(){return!!this.d},S.isInteger=S.isInt=function(){return!!this.d&&p(this.e/7)>this.d.length-2},S.isNaN=function(){return!this.s},S.isNegative=S.isNeg=function(){return this.s<0},S.isPositive=S.isPos=function(){return this.s>0},S.isZero=function(){return!!this.d&&0===this.d[0]},S.lessThan=S.lt=function(t){return this.cmp(t)<0},S.lessThanOrEqualTo=S.lte=function(t){return this.cmp(t)<1},S.logarithm=S.log=function(t){var e,n,r,i,o,s,a,u,f=this.constructor,c=f.precision,h=f.rounding;if(null==t)t=new f(10),e=!0;else{if(n=(t=new f(t)).d,t.s<0||!n||!n[0]||t.eq(1))return new f(NaN);e=t.eq(10)}if(n=this.d,this.s<0||!n||!n[0]||this.eq(1))return new f(n&&!n[0]?-1/0:1!=this.s?NaN:n?0:1/0);if(e)if(n.length>1)o=!0;else{for(i=n[0];i%10==0;)i/=10;o=1!==i}if(d=!1,s=j(this,a=c+5),r=e?N(f,a+10):j(t,a),A((u=I(s,r,a,1)).d,i=c,h))do{if(s=j(this,a+=10),r=e?N(f,a+10):j(t,a),u=I(s,r,a,1),!o){+M(u.d).slice(i+1,i+15)+1==1e14&&(u=T(u,c+1,0));break}}while(A(u.d,i+=10,h));return d=!0,T(u,c,h)},S.minus=S.sub=function(t){var e,n,r,i,o,s,a,u,f,c,h,l,b=this,g=b.constructor;if(t=new g(t),!b.d||!t.d)return b.s&&t.s?b.d?t.s=-t.s:t=new g(t.d||b.s!==t.s?b:NaN):t=new g(NaN),t;if(b.s!=t.s)return t.s=-t.s,b.plus(t);if(f=b.d,l=t.d,a=g.precision,u=g.rounding,!f[0]||!l[0]){if(l[0])t.s=-t.s;else{if(!f[0])return new g(3===u?-0:0);t=new g(b)}return d?T(t,a,u):t}if(n=p(t.e/7),c=p(b.e/7),f=f.slice(),o=c-n){for((h=o<0)?(e=f,o=-o,s=l.length):(e=l,n=c,s=f.length),o>(r=Math.max(Math.ceil(a/7),s)+2)&&(o=r,e.length=1),e.reverse(),r=o;r--;)e.push(0);e.reverse()}else{for((h=(r=f.length)<(s=l.length))&&(s=r),r=0;r<s;r++)if(f[r]!=l[r]){h=f[r]<l[r];break}o=0}for(h&&(e=f,f=l,l=e,t.s=-t.s),s=f.length,r=l.length-s;r>0;--r)f[s++]=0;for(r=l.length;r>o;){if(f[--r]<l[r]){for(i=r;i&&0===f[--i];)f[i]=1e7-1;--f[i],f[r]+=1e7}f[r]-=l[r]}for(;0===f[--s];)f.pop();for(;0===f[0];f.shift())--n;return f[0]?(t.d=f,t.e=L(f,n),d?T(t,a,u):t):new g(3===u?-0:0)},S.modulo=S.mod=function(t){var e,n=this,r=n.constructor;return t=new r(t),!n.d||!t.s||t.d&&!t.d[0]?new r(NaN):!t.d||n.d&&!n.d[0]?T(new r(n),r.precision,r.rounding):(d=!1,9==r.modulo?(e=I(n,t.abs(),0,3,1)).s*=t.s:e=I(n,t,0,r.modulo,1),e=e.times(t),d=!0,n.minus(e))},S.naturalExponential=S.exp=function(){return F(this)},S.naturalLogarithm=S.ln=function(){return j(this)},S.negated=S.neg=function(){var t=new this.constructor(this);return t.s=-t.s,T(t)},S.plus=S.add=function(t){var e,n,r,i,o,s,a,u,f,c,h=this,l=h.constructor;if(t=new l(t),!h.d||!t.d)return h.s&&t.s?h.d||(t=new l(t.d||h.s===t.s?h:NaN)):t=new l(NaN),t;if(h.s!=t.s)return t.s=-t.s,h.minus(t);if(f=h.d,c=t.d,a=l.precision,u=l.rounding,!f[0]||!c[0])return c[0]||(t=new l(h)),d?T(t,a,u):t;if(o=p(h.e/7),r=p(t.e/7),f=f.slice(),i=o-r){for(i<0?(n=f,i=-i,s=c.length):(n=c,r=o,s=f.length),i>(s=(o=Math.ceil(a/7))>s?o+1:s+1)&&(i=s,n.length=1),n.reverse();i--;)n.push(0);n.reverse()}for((s=f.length)-(i=c.length)<0&&(i=s,n=c,c=f,f=n),e=0;i;)e=(f[--i]=f[i]+c[i]+e)/1e7|0,f[i]%=1e7;for(e&&(f.unshift(e),++r),s=f.length;0==f[--s];)f.pop();return t.d=f,t.e=L(f,r),d?T(t,a,u):t},S.precision=S.sd=function(t){var e,n=this;if(void 0!==t&&t!==!!t&&1!==t&&0!==t)throw Error(l+t);return n.d?(e=O(n.d),t&&n.e+1>e&&(e=n.e+1)):e=NaN,e},S.round=function(){var t=this,e=t.constructor;return T(new e(t),t.e+1,e.rounding)},S.sine=S.sin=function(){var t,e,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(t=r.precision,e=r.rounding,r.precision=t+Math.max(n.e,n.sd())+7,r.rounding=1,n=function(t,e){var n,r=e.d.length;if(r<3)return V(t,2,e,e);n=(n=1.4*Math.sqrt(r))>16?16:0|n,e=e.times(1/H(5,n)),e=V(t,2,e,e);for(var i,o=new t(5),s=new t(16),a=new t(20);n--;)i=e.times(e),e=e.times(o.plus(i.times(s.times(i).minus(a))));return e}(r,W(r,n)),r.precision=t,r.rounding=e,T(a>2?n.neg():n,t,e,!0)):new r(NaN)},S.squareRoot=S.sqrt=function(){var t,e,n,r,i,o,s=this,a=s.d,u=s.e,f=s.s,c=s.constructor;if(1!==f||!a||!a[0])return new c(!f||f<0&&(!a||a[0])?NaN:a?s:1/0);for(d=!1,0==(f=Math.sqrt(+s))||f==1/0?(((e=M(a)).length+u)%2==0&&(e+="0"),f=Math.sqrt(e),u=p((u+1)/2)-(u<0||u%2),r=new c(e=f==1/0?"1e"+u:(e=f.toExponential()).slice(0,e.indexOf("e")+1)+u)):r=new c(f.toString()),n=(u=c.precision)+3;;)if(r=(o=r).plus(I(s,o,n+2,1)).times(.5),M(o.d).slice(0,n)===(e=M(r.d)).slice(0,n)){if("9999"!=(e=e.slice(n-3,n+1))&&(i||"4999"!=e)){+e&&(+e.slice(1)||"5"!=e.charAt(0))||(T(r,u+1,1),t=!r.times(r).eq(s));break}if(!i&&(T(o,u+1,0),o.times(o).eq(s))){r=o;break}n+=4,i=1}return d=!0,T(r,u,c.rounding,t)},S.tangent=S.tan=function(){var t,e,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(t=r.precision,e=r.rounding,r.precision=t+10,r.rounding=1,(n=n.sin()).s=1,n=I(n,new r(1).minus(n.times(n)).sqrt(),t+10,0),r.precision=t,r.rounding=e,T(2==a||4==a?n.neg():n,t,e,!0)):new r(NaN)},S.times=S.mul=function(t){var e,n,r,i,o,s,a,u,f,c=this,h=c.constructor,l=c.d,b=(t=new h(t)).d;if(t.s*=c.s,!(l&&l[0]&&b&&b[0]))return new h(!t.s||l&&!l[0]&&!b||b&&!b[0]&&!l?NaN:l&&b?0*t.s:t.s/0);for(n=p(c.e/7)+p(t.e/7),(u=l.length)<(f=b.length)&&(o=l,l=b,b=o,s=u,u=f,f=s),o=[],r=s=u+f;r--;)o.push(0);for(r=f;--r>=0;){for(e=0,i=u+r;i>r;)a=o[i]+b[r]*l[i-r-1]+e,o[i--]=a%1e7|0,e=a/1e7|0;o[i]=(o[i]+e)%1e7|0}for(;!o[--s];)o.pop();return e?++n:o.shift(),t.d=o,t.e=L(o,n),d?T(t,h.precision,h.rounding):t},S.toBinary=function(t,e){return Z(this,2,t,e)},S.toDecimalPlaces=S.toDP=function(t,e){var n=this,r=n.constructor;return n=new r(n),void 0===t?n:(E(t,0,1e9),void 0===e?e=r.rounding:E(e,0,8),T(n,t+n.e+1,e))},S.toExponential=function(t,e){var n,r=this,i=r.constructor;return void 0===t?n=k(r,!0):(E(t,0,1e9),void 0===e?e=i.rounding:E(e,0,8),n=k(r=T(new i(r),t+1,e),!0,t+1)),r.isNeg()&&!r.isZero()?"-"+n:n},S.toFixed=function(t,e){var n,r,i=this,o=i.constructor;return void 0===t?n=k(i):(E(t,0,1e9),void 0===e?e=o.rounding:E(e,0,8),n=k(r=T(new o(i),t+i.e+1,e),!1,t+r.e+1)),i.isNeg()&&!i.isZero()?"-"+n:n},S.toFraction=function(t){var e,n,r,i,o,s,a,u,f,c,h,p,g=this,v=g.d,m=g.constructor;if(!v)return new m(g);if(f=n=new m(1),r=u=new m(0),s=(o=(e=new m(r)).e=O(v)-g.e-1)%7,e.d[0]=b(10,s<0?7+s:s),null==t)t=o>0?e:f;else{if(!(a=new m(t)).isInt()||a.lt(f))throw Error(l+a);t=a.gt(e)?o>0?e:f:a}for(d=!1,a=new m(M(v)),c=m.precision,m.precision=o=7*v.length*2;h=I(a,e,0,1,1),1!=(i=n.plus(h.times(r))).cmp(t);)n=r,r=i,i=f,f=u.plus(h.times(i)),u=i,i=e,e=a.minus(h.times(i)),a=i;return i=I(t.minus(n),r,0,1,1),u=u.plus(i.times(f)),n=n.plus(i.times(r)),u.s=f.s=g.s,p=I(f,r,o,1).minus(g).abs().cmp(I(u,n,o,1).minus(g).abs())<1?[f,r]:[u,n],m.precision=c,d=!0,p},S.toHexadecimal=S.toHex=function(t,e){return Z(this,16,t,e)},S.toNearest=function(t,e){var n=this,r=n.constructor;if(n=new r(n),null==t){if(!n.d)return n;t=new r(1),e=r.rounding}else{if(t=new r(t),void 0===e?e=r.rounding:E(e,0,8),!n.d)return t.s?n:t;if(!t.d)return t.s&&(t.s=n.s),t}return t.d[0]?(d=!1,n=I(n,t,0,e,1).times(t),d=!0,T(n)):(t.s=n.s,n=t),n},S.toNumber=function(){return+this},S.toOctal=function(t,e){return Z(this,8,t,e)},S.toPower=S.pow=function(t){var e,n,r,i,o,s,a=this,u=a.constructor,f=+(t=new u(t));if(!(a.d&&t.d&&a.d[0]&&t.d[0]))return new u(b(+a,f));if((a=new u(a)).eq(1))return a;if(r=u.precision,o=u.rounding,t.eq(1))return T(a,r,o);if((e=p(t.e/7))>=t.d.length-1&&(n=f<0?-f:f)<=9007199254740991)return i=z(u,a,n,r),t.s<0?new u(1).div(i):T(i,r,o);if((s=a.s)<0){if(e<t.d.length-1)return new u(NaN);if(0==(1&t.d[e])&&(s=1),0==a.e&&1==a.d[0]&&1==a.d.length)return a.s=s,a}return(e=0!=(n=b(+a,f))&&isFinite(n)?new u(n+"").e:p(f*(Math.log("0."+M(a.d))/Math.LN10+a.e+1)))>u.maxE+1||e<u.minE-1?new u(e>0?s/0:0):(d=!1,u.rounding=a.s=1,n=Math.min(12,(e+"").length),(i=F(t.times(j(a,r+n)),r)).d&&A((i=T(i,r+5,1)).d,r,o)&&(e=r+10,+M((i=T(F(t.times(j(a,e+n)),e),e+5,1)).d).slice(r+1,r+15)+1==1e14&&(i=T(i,r+1,0))),i.s=s,d=!0,u.rounding=o,T(i,r,o))},S.toPrecision=function(t,e){var n,r=this,i=r.constructor;return void 0===t?n=k(r,r.e<=i.toExpNeg||r.e>=i.toExpPos):(E(t,1,1e9),void 0===e?e=i.rounding:E(e,0,8),n=k(r=T(new i(r),t,e),t<=r.e||r.e<=i.toExpNeg,t)),r.isNeg()&&!r.isZero()?"-"+n:n},S.toSignificantDigits=S.toSD=function(t,e){var n=this.constructor;return void 0===t?(t=n.precision,e=n.rounding):(E(t,1,1e9),void 0===e?e=n.rounding:E(e,0,8)),T(new n(this),t,e)},S.toString=function(){var t=this,e=t.constructor,n=k(t,t.e<=e.toExpNeg||t.e>=e.toExpPos);return t.isNeg()&&!t.isZero()?"-"+n:n},S.truncated=S.trunc=function(){return T(new this.constructor(this),this.e+1,1)},S.valueOf=S.toJSON=function(){var t=this,e=t.constructor,n=k(t,t.e<=e.toExpNeg||t.e>=e.toExpPos);return t.isNeg()?"-"+n:n};var I=function(){function t(t,e,n){var r,i=0,o=t.length;for(t=t.slice();o--;)r=t[o]*e+i,t[o]=r%n|0,i=r/n|0;return i&&t.unshift(i),t}function e(t,e,n,r){var i,o;if(n!=r)o=n>r?1:-1;else for(i=o=0;i<n;i++)if(t[i]!=e[i]){o=t[i]>e[i]?1:-1;break}return o}function n(t,e,n,r){for(var i=0;n--;)t[n]-=i,i=t[n]<e[n]?1:0,t[n]=i*r+t[n]-e[n];for(;!t[0]&&t.length>1;)t.shift()}return function(r,i,o,a,u,f){var c,h,d,l,b,g,v,m,y,w,_,S,M,E,A,x,I,k,L,N,R=r.constructor,O=r.s==i.s?1:-1,B=r.d,z=i.d;if(!(B&&B[0]&&z&&z[0]))return new R(r.s&&i.s&&(B?!z||B[0]!=z[0]:z)?B&&0==B[0]||!z?0*O:O/0:NaN);for(f?(b=1,h=r.e-i.e):(f=1e7,b=7,h=p(r.e/b)-p(i.e/b)),L=z.length,I=B.length,w=(y=new R(O)).d=[],d=0;z[d]==(B[d]||0);d++);if(z[d]>(B[d]||0)&&h--,null==o?(E=o=R.precision,a=R.rounding):E=u?o+(r.e-i.e)+1:o,E<0)w.push(1),g=!0;else{if(E=E/b+2|0,d=0,1==L){for(l=0,z=z[0],E++;(d<I||l)&&E--;d++)A=l*f+(B[d]||0),w[d]=A/z|0,l=A%z|0;g=l||d<I}else{for((l=f/(z[0]+1)|0)>1&&(z=t(z,l,f),B=t(B,l,f),L=z.length,I=B.length),x=L,S=(_=B.slice(0,L)).length;S<L;)_[S++]=0;(N=z.slice()).unshift(0),k=z[0],z[1]>=f/2&&++k;do{l=0,(c=e(z,_,L,S))<0?(M=_[0],L!=S&&(M=M*f+(_[1]||0)),(l=M/k|0)>1?(l>=f&&(l=f-1),1==(c=e(v=t(z,l,f),_,m=v.length,S=_.length))&&(l--,n(v,L<m?N:z,m,f))):(0==l&&(c=l=1),v=z.slice()),(m=v.length)<S&&v.unshift(0),n(_,v,S,f),-1==c&&(c=e(z,_,L,S=_.length))<1&&(l++,n(_,L<S?N:z,S,f)),S=_.length):0===c&&(l++,_=[0]),w[d++]=l,c&&_[0]?_[S++]=B[x]||0:(_=[B[x]],S=1)}while((x++<I||void 0!==_[0])&&E--);g=void 0!==_[0]}w[0]||w.shift()}if(1==b)y.e=h,s=g;else{for(d=1,l=w[0];l>=10;l/=10)d++;y.e=d+h*b-1,T(y,u?o+y.e+1:o,a,g)}return y}}();function T(t,e,n,r){var i,o,s,a,u,f,c,h,l,p=t.constructor;t:if(null!=e){if(!(h=t.d))return t;for(i=1,a=h[0];a>=10;a/=10)i++;if((o=e-i)<0)o+=7,s=e,u=(c=h[l=0])/b(10,i-s-1)%10|0;else if((l=Math.ceil((o+1)/7))>=(a=h.length)){if(!r)break t;for(;a++<=l;)h.push(0);c=u=0,i=1,s=(o%=7)-7+1}else{for(c=a=h[l],i=1;a>=10;a/=10)i++;u=(s=(o%=7)-7+i)<0?0:c/b(10,i-s-1)%10|0}if(r=r||e<0||void 0!==h[l+1]||(s<0?c:c%b(10,i-s-1)),f=n<4?(u||r)&&(0==n||n==(t.s<0?3:2)):u>5||5==u&&(4==n||r||6==n&&(o>0?s>0?c/b(10,i-s):0:h[l-1])%10&1||n==(t.s<0?8:7)),e<1||!h[0])return h.length=0,f?(e-=t.e+1,h[0]=b(10,(7-e%7)%7),t.e=-e||0):h[0]=t.e=0,t;if(0==o?(h.length=l,a=1,l--):(h.length=l+1,a=b(10,7-o),h[l]=s>0?(c/b(10,i-s)%b(10,s)|0)*a:0),f)for(;;){if(0==l){for(o=1,s=h[0];s>=10;s/=10)o++;for(s=h[0]+=a,a=1;s>=10;s/=10)a++;o!=a&&(t.e++,1e7==h[0]&&(h[0]=1));break}if(h[l]+=a,1e7!=h[l])break;h[l--]=0,a=1}for(o=h.length;0===h[--o];)h.pop()}return d&&(t.e>p.maxE?(t.d=null,t.e=NaN):t.e<p.minE&&(t.e=0,t.d=[0])),t}function k(t,e,n){if(!t.isFinite())return C(t);var r,i=t.e,o=M(t.d),s=o.length;return e?(n&&(r=n-s)>0?o=o.charAt(0)+"."+o.slice(1)+B(r):s>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(t.e<0?"e":"e+")+t.e):i<0?(o="0."+B(-i-1)+o,n&&(r=n-s)>0&&(o+=B(r))):i>=s?(o+=B(i+1-s),n&&(r=n-i-1)>0&&(o=o+"."+B(r))):((r=i+1)<s&&(o=o.slice(0,r)+"."+o.slice(r)),n&&(r=n-s)>0&&(i+1===s&&(o+="."),o+=B(r))),o}function L(t,e){var n=t[0];for(e*=7;n>=10;n/=10)e++;return e}function N(t,e,n){if(e>w)throw d=!0,n&&(t.precision=n),Error("[DecimalError] Precision limit exceeded");return T(new t(f),e,1,!0)}function R(t,e,n){if(e>_)throw Error("[DecimalError] Precision limit exceeded");return T(new t(c),e,n,!0)}function O(t){var e=t.length-1,n=7*e+1;if(e=t[e]){for(;e%10==0;e/=10)n--;for(e=t[0];e>=10;e/=10)n++}return n}function B(t){for(var e="";t--;)e+="0";return e}function z(t,e,n,r){var i,o=new t(1),s=Math.ceil(r/7+4);for(d=!1;;){if(n%2&&Y((o=o.times(e)).d,s)&&(i=!0),0===(n=p(n/2))){n=o.d.length-1,i&&0===o.d[n]&&++o.d[n];break}Y((e=e.times(e)).d,s)}return d=!0,o}function P(t){return 1&t.d[t.d.length-1]}function U(t,e,n){for(var r,i=new t(e[0]),o=0;++o<e.length;){if(!(r=new t(e[o])).s){i=r;break}i[n](r)&&(i=r)}return i}function F(t,e){var n,r,i,o,s,a,u,f=0,c=0,h=0,l=t.constructor,p=l.rounding,g=l.precision;if(!t.d||!t.d[0]||t.e>17)return new l(t.d?t.d[0]?t.s<0?0:1/0:1:t.s?t.s<0?0:t:NaN);for(null==e?(d=!1,u=g):u=e,a=new l(.03125);t.e>-2;)t=t.times(a),h+=5;for(u+=r=Math.log(b(2,h))/Math.LN10*2+5|0,n=o=s=new l(1),l.precision=u;;){if(o=T(o.times(t),u,1),n=n.times(++c),M((a=s.plus(I(o,n,u,1))).d).slice(0,u)===M(s.d).slice(0,u)){for(i=h;i--;)s=T(s.times(s),u,1);if(null!=e)return l.precision=g,s;if(!(f<3&&A(s.d,u-r,p,f)))return T(s,l.precision=g,p,d=!0);l.precision=u+=10,n=o=a=new l(1),c=0,f++}s=a}}function j(t,e){var n,r,i,o,s,a,u,f,c,h,l,p=1,b=t,g=b.d,v=b.constructor,m=v.rounding,y=v.precision;if(b.s<0||!g||!g[0]||!b.e&&1==g[0]&&1==g.length)return new v(g&&!g[0]?-1/0:1!=b.s?NaN:g?0:b);if(null==e?(d=!1,c=y):c=e,v.precision=c+=10,r=(n=M(g)).charAt(0),!(Math.abs(o=b.e)<15e14))return f=N(v,c+2,y).times(o+""),b=j(new v(r+"."+n.slice(1)),c-10).plus(f),v.precision=y,null==e?T(b,y,m,d=!0):b;for(;r<7&&1!=r||1==r&&n.charAt(1)>3;)r=(n=M((b=b.times(t)).d)).charAt(0),p++;for(o=b.e,r>1?(b=new v("0."+n),o++):b=new v(r+"."+n.slice(1)),h=b,u=s=b=I(b.minus(1),b.plus(1),c,1),l=T(b.times(b),c,1),i=3;;){if(s=T(s.times(l),c,1),M((f=u.plus(I(s,new v(i),c,1))).d).slice(0,c)===M(u.d).slice(0,c)){if(u=u.times(2),0!==o&&(u=u.plus(N(v,c+2,y).times(o+""))),u=I(u,new v(p),c,1),null!=e)return v.precision=y,u;if(!A(u.d,c-10,m,a))return T(u,v.precision=y,m,d=!0);v.precision=c+=10,f=s=b=I(h.minus(1),h.plus(1),c,1),l=T(b.times(b),c,1),i=a=1}u=f,i+=2}}function C(t){return String(t.s*t.s/0)}function D(t,e){var n,r,i;for((n=e.indexOf("."))>-1&&(e=e.replace(".","")),(r=e.search(/e/i))>0?(n<0&&(n=r),n+=+e.slice(r+1),e=e.substring(0,r)):n<0&&(n=e.length),r=0;48===e.charCodeAt(r);r++);for(i=e.length;48===e.charCodeAt(i-1);--i);if(e=e.slice(r,i)){if(i-=r,t.e=n=n-r-1,t.d=[],r=(n+1)%7,n<0&&(r+=7),r<i){for(r&&t.d.push(+e.slice(0,r)),i-=7;r<i;)t.d.push(+e.slice(r,r+=7));r=7-(e=e.slice(r)).length}else r-=i;for(;r--;)e+="0";t.d.push(+e),d&&(t.e>t.constructor.maxE?(t.d=null,t.e=NaN):t.e<t.constructor.minE&&(t.e=0,t.d=[0]))}else t.e=0,t.d=[0];return t}function q(t,e){var n,r,i,s,a,u,f,c,h;if("Infinity"===e||"NaN"===e)return+e||(t.s=NaN),t.e=NaN,t.d=null,t;if(v.test(e))n=16,e=e.toLowerCase();else if(g.test(e))n=2;else{if(!m.test(e))throw Error(l+e);n=8}for((s=e.search(/p/i))>0?(f=+e.slice(s+1),e=e.substring(2,s)):e=e.slice(2),a=(s=e.indexOf("."))>=0,r=t.constructor,a&&(s=(u=(e=e.replace(".","")).length)-s,i=z(r,new r(n),s,2*s)),s=h=(c=x(e,n,1e7)).length-1;0===c[s];--s)c.pop();return s<0?new r(0*t.s):(t.e=L(c,h),t.d=c,d=!1,a&&(t=I(t,i,4*u)),f&&(t=t.times(Math.abs(f)<54?b(2,f):o.pow(2,f))),d=!0,t)}function V(t,e,n,r,i){var o,s,a,u,f=t.precision,c=Math.ceil(f/7);for(d=!1,u=n.times(n),a=new t(r);;){if(s=I(a.times(u),new t(e++*e++),f,1),a=i?r.plus(s):r.minus(s),r=I(s.times(u),new t(e++*e++),f,1),void 0!==(s=a.plus(r)).d[c]){for(o=c;s.d[o]===a.d[o]&&o--;);if(-1==o)break}o=a,a=r,r=s,s=o}return d=!0,s.d.length=c+1,s}function H(t,e){for(var n=t;--e;)n*=t;return n}function W(t,e){var n,r=e.s<0,i=R(t,t.precision,1),o=i.times(.5);if((e=e.abs()).lte(o))return a=r?4:1,e;if((n=e.divToInt(i)).isZero())a=r?3:2;else{if((e=e.minus(n.times(i))).lte(o))return a=P(n)?r?2:3:r?4:1,e;a=P(n)?r?1:4:r?3:2}return e.minus(i).abs()}function Z(t,e,n,r){var i,o,a,f,c,h,d,l,p,b=t.constructor,g=void 0!==n;if(g?(E(n,1,1e9),void 0===r?r=b.rounding:E(r,0,8)):(n=b.precision,r=b.rounding),t.isFinite()){for(g?(i=2,16==e?n=4*n-3:8==e&&(n=3*n-2)):i=e,(a=(d=k(t)).indexOf("."))>=0&&(d=d.replace(".",""),(p=new b(1)).e=d.length-a,p.d=x(k(p),10,i),p.e=p.d.length),o=c=(l=x(d,10,i)).length;0==l[--c];)l.pop();if(l[0]){if(a<0?o--:((t=new b(t)).d=l,t.e=o,l=(t=I(t,p,n,r,0,i)).d,o=t.e,h=s),a=l[n],f=i/2,h=h||void 0!==l[n+1],h=r<4?(void 0!==a||h)&&(0===r||r===(t.s<0?3:2)):a>f||a===f&&(4===r||h||6===r&&1&l[n-1]||r===(t.s<0?8:7)),l.length=n,h)for(;++l[--n]>i-1;)l[n]=0,n||(++o,l.unshift(1));for(c=l.length;!l[c-1];--c);for(a=0,d="";a<c;a++)d+=u.charAt(l[a]);if(g){if(c>1)if(16==e||8==e){for(a=16==e?4:3,--c;c%a;c++)d+="0";for(c=(l=x(d,i,e)).length;!l[c-1];--c);for(a=1,d="1.";a<c;a++)d+=u.charAt(l[a])}else d=d.charAt(0)+"."+d.slice(1);d=d+(o<0?"p":"p+")+o}else if(o<0){for(;++o;)d="0"+d;d="0."+d}else if(++o>c)for(o-=c;o--;)d+="0";else o<c&&(d=d.slice(0,o)+"."+d.slice(o))}else d=g?"0p+0":"0";d=(16==e?"0x":2==e?"0b":8==e?"0o":"")+d}else d=C(t);return t.s<0?"-"+d:d}function Y(t,e){if(t.length>e)return t.length=e,!0}function J(t){return new this(t).abs()}function K(t){return new this(t).acos()}function $(t){return new this(t).acosh()}function X(t,e){return new this(t).plus(e)}function G(t){return new this(t).asin()}function Q(t){return new this(t).asinh()}function tt(t){return new this(t).atan()}function et(t){return new this(t).atanh()}function nt(t,e){t=new this(t),e=new this(e);var n,r=this.precision,i=this.rounding,o=r+4;return t.s&&e.s?t.d||e.d?!e.d||t.isZero()?(n=e.s<0?R(this,r,i):new this(0)).s=t.s:!t.d||e.isZero()?(n=R(this,o,1).times(.5)).s=t.s:e.s<0?(this.precision=o,this.rounding=1,n=this.atan(I(t,e,o,1)),e=R(this,o,1),this.precision=r,this.rounding=i,n=t.s<0?n.minus(e):n.plus(e)):n=this.atan(I(t,e,o,1)):(n=R(this,o,1).times(e.s>0?.25:.75)).s=t.s:n=new this(NaN),n}function rt(t){return new this(t).cbrt()}function it(t){return T(t=new this(t),t.e+1,2)}function ot(t){if(!t||"object"!=typeof t)throw Error("[DecimalError] Object expected");var e,n,r,i=!0===t.defaults,o=["precision",1,1e9,"rounding",0,8,"toExpNeg",-9e15,0,"toExpPos",0,9e15,"maxE",0,9e15,"minE",-9e15,0,"modulo",0,9];for(e=0;e<o.length;e+=3)if(n=o[e],i&&(this[n]=h[n]),void 0!==(r=t[n])){if(!(p(r)===r&&r>=o[e+1]&&r<=o[e+2]))throw Error(l+n+": "+r);this[n]=r}if(n="crypto",i&&(this[n]=h[n]),void 0!==(r=t[n])){if(!0!==r&&!1!==r&&0!==r&&1!==r)throw Error(l+n+": "+r);if(r){if("undefined"==typeof crypto||!crypto||!crypto.getRandomValues&&!crypto.randomBytes)throw Error("[DecimalError] crypto unavailable");this[n]=!0}else this[n]=!1}return this}function st(t){return new this(t).cos()}function at(t){return new this(t).cosh()}function ut(t,e){return new this(t).div(e)}function ft(t){return new this(t).exp()}function ct(t){return T(t=new this(t),t.e+1,3)}function ht(){var t,e,n=new this(0);for(d=!1,t=0;t<arguments.length;)if((e=new this(arguments[t++])).d)n.d&&(n=n.plus(e.times(e)));else{if(e.s)return d=!0,new this(1/0);n=e}return d=!0,n.sqrt()}function dt(t){return t instanceof o||t&&"[object Decimal]"===t.name||!1}function lt(t){return new this(t).ln()}function pt(t,e){return new this(t).log(e)}function bt(t){return new this(t).log(2)}function gt(t){return new this(t).log(10)}function vt(){return U(this,arguments,"lt")}function mt(){return U(this,arguments,"gt")}function yt(t,e){return new this(t).mod(e)}function wt(t,e){return new this(t).mul(e)}function _t(t,e){return new this(t).pow(e)}function St(t){var e,n,r,i,o=0,s=new this(1),a=[];if(void 0===t?t=this.precision:E(t,1,1e9),r=Math.ceil(t/7),this.crypto)if(crypto.getRandomValues)for(e=crypto.getRandomValues(new Uint32Array(r));o<r;)(i=e[o])>=429e7?e[o]=crypto.getRandomValues(new Uint32Array(1))[0]:a[o++]=i%1e7;else{if(!crypto.randomBytes)throw Error("[DecimalError] crypto unavailable");for(e=crypto.randomBytes(r*=4);o<r;)(i=e[o]+(e[o+1]<<8)+(e[o+2]<<16)+((127&e[o+3])<<24))>=214e7?crypto.randomBytes(4).copy(e,o):(a.push(i%1e7),o+=4);o=r/4}else for(;o<r;)a[o++]=1e7*Math.random()|0;for(t%=7,(r=a[--o])&&t&&(i=b(10,7-t),a[o]=(r/i|0)*i);0===a[o];o--)a.pop();if(o<0)n=0,a=[0];else{for(n=-1;0===a[0];n-=7)a.shift();for(r=1,i=a[0];i>=10;i/=10)r++;r<7&&(n-=7-r)}return s.e=n,s.d=a,s}function Mt(t){return T(t=new this(t),t.e+1,this.rounding)}function Et(t){return(t=new this(t)).d?t.d[0]?t.s:0*t.s:t.s||NaN}function At(t){return new this(t).sin()}function xt(t){return new this(t).sinh()}function It(t){return new this(t).sqrt()}function Tt(t,e){return new this(t).sub(e)}function kt(t){return new this(t).tan()}function Lt(t){return new this(t).tanh()}function Nt(t){return T(t=new this(t),t.e+1,1)}(o=function t(e){var n,r,i;function o(t){var e,n,r,i=this;if(!(i instanceof o))return new o(t);if(i.constructor=o,t instanceof o)return i.s=t.s,void(d?!t.d||t.e>o.maxE?(i.e=NaN,i.d=null):t.e<o.minE?(i.e=0,i.d=[0]):(i.e=t.e,i.d=t.d.slice()):(i.e=t.e,i.d=t.d?t.d.slice():t.d));if("number"===(r=typeof t)){if(0===t)return i.s=1/t<0?-1:1,i.e=0,void(i.d=[0]);if(t<0?(t=-t,i.s=-1):i.s=1,t===~~t&&t<1e7){for(e=0,n=t;n>=10;n/=10)e++;return void(d?e>o.maxE?(i.e=NaN,i.d=null):e<o.minE?(i.e=0,i.d=[0]):(i.e=e,i.d=[t]):(i.e=e,i.d=[t]))}return 0*t!=0?(t||(i.s=NaN),i.e=NaN,void(i.d=null)):D(i,t.toString())}if("string"!==r)throw Error(l+t);return 45===(n=t.charCodeAt(0))?(t=t.slice(1),i.s=-1):(43===n&&(t=t.slice(1)),i.s=1),y.test(t)?D(i,t):q(i,t)}if(o.prototype=S,o.ROUND_UP=0,o.ROUND_DOWN=1,o.ROUND_CEIL=2,o.ROUND_FLOOR=3,o.ROUND_HALF_UP=4,o.ROUND_HALF_DOWN=5,o.ROUND_HALF_EVEN=6,o.ROUND_HALF_CEIL=7,o.ROUND_HALF_FLOOR=8,o.EUCLID=9,o.config=o.set=ot,o.clone=t,o.isDecimal=dt,o.abs=J,o.acos=K,o.acosh=$,o.add=X,o.asin=G,o.asinh=Q,o.atan=tt,o.atanh=et,o.atan2=nt,o.cbrt=rt,o.ceil=it,o.cos=st,o.cosh=at,o.div=ut,o.exp=ft,o.floor=ct,o.hypot=ht,o.ln=lt,o.log=pt,o.log10=gt,o.log2=bt,o.max=vt,o.min=mt,o.mod=yt,o.mul=wt,o.pow=_t,o.random=St,o.round=Mt,o.sign=Et,o.sin=At,o.sinh=xt,o.sqrt=It,o.sub=Tt,o.tan=kt,o.tanh=Lt,o.trunc=Nt,void 0===e&&(e={}),e&&!0!==e.defaults)for(i=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],n=0;n<i.length;)e.hasOwnProperty(r=i[n++])||(e[r]=this[r]);return o.config(e),o}(h)).default=o.Decimal=o,f=new o(f),c=new o(c),void 0===(r=function(){return o}.call(e,n,e,t))||(t.exports=r)}()},function(t,e,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i=n(2),o=n(11),s=n(0),a=n(3),u=a.bytesToHex,f=a.parseBytes,c=a.serializeUIntN,h=n(24).UInt,d=/^[A-F0-9]{16}$/,l=s({inherits:h,statics:{width:8},UInt64:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=void 0===t?"undefined":r(t);if("number"===e)i(t>=0),this._bytes=new Uint8Array(8),this._bytes.set(c(t,4),4);else if(t instanceof o)this._bytes=f(t.toArray("be",8),Uint8Array),this._toBN=t;else{if("string"===e&&!d.test(t))throw new Error(t+" is not a valid UInt64 hex string");this._bytes=f(t,Uint8Array)}i(8===this._bytes.length)},toJSON:function(){return u(this._bytes)},valueOf:function(){return this.toBN()},cached:{toBN:function(){return new o(this._bytes)}},toBytes:function(){return this._bytes}});t.exports={UInt64:l}},function(t,e,n){"use strict";var r=n(0)({inherits:n(36).Hash,statics:{width:32,init:function(){this.ZERO_256=new this(new Uint8Array(this.width))}}});t.exports={Hash256:r}},function(t,e,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i=n(12),o=n(0),s=n(15).Field,a=n(37).BinarySerializer,u=s.ObjectEndMarker,f=o({mixins:n(10).SerializedType,statics:{fromParser:function(t,e){for(var n="number"==typeof e?t.pos()+e:null,r=new this;!t.end(n);){var i=t.readField();if(i===u)break;r[i]=t.readFieldValue(i)}return r},from:function(t){if(t instanceof this)return t;if("object"===(void 0===t?"undefined":r(t)))return i.transform(t,(function(t,e,n){var r=s[n];r?t[r]=r.associatedType.from(e):t[n]=e}),new this);throw new Error(t+" is unsupported")}},fieldKeys:function(){return Object.keys(this).map((function(t){return s[t]})).filter(Boolean)},toJSON:function(){return i.transform(this,(function(t,e,n){t[n]=e&&e.toJSON?e.toJSON():e}),{})},toBytesSink:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){return!0},r=new a(t),o=this.fieldKeys(),s=i.sortBy(o,"ordinal");s.filter(n).forEach((function(t){var n=e[t];t.isSerialized&&r.writeFieldAndValue(t,n)}))}});t.exports={STObject:f}},function(t,e,n){"use strict";var r=n(11),i=n(16),o=n(21).HashPrefix,s=n(106).BinaryParser,a=n(37),u=a.BinarySerializer,f=a.BytesList,c=n(3),h=c.bytesToHex,d=c.slice,l=c.parseBytes,p=n(25),b=p.sha512Half,g=p.transactionID,v=function(t){return new s(t)},m=function(t){return t.readType(i.STObject).toJSON()};function y(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.prefix,r=e.suffix,o=e.signingFieldsOnly,s=void 0!==o&&o,a=new f;n&&a.put(n);var u=s?function(t){return t.isSigningField}:void 0;return i.STObject.from(t).toBytesSink(a,u),r&&a.put(r),a.toBytes()}t.exports={BinaryParser:s,BinarySerializer:u,BytesList:f,makeParser:v,serializeObject:y,readJSON:m,bytesToHex:h,parseBytes:l,multiSigningData:function(t,e){return y(t,{prefix:o.transactionMultiSig,suffix:i.AccountID.from(e).toBytes(),signingFieldsOnly:!0})},signingData:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:o.transactionSig;return y(t,{prefix:e,signingFieldsOnly:!0})},signingClaimData:function(t){var e=o.paymentChannelClaim,n=i.Hash256.from(t.channel).toBytes(),s=new i.UInt64(new r(t.amount)).toBytes(),a=new f;return a.put(e),a.put(n),a.put(s),a.toBytes()},binaryToJSON:function(t){return m(v(t))},sha512Half:b,transactionID:g,slice:d}},function(t,e,n){"use strict";var r=n(2),i=n(0),o=n(16).Hash256,s=n(21).HashPrefix,a=n(25).Sha512Half,u=i({virtuals:{hashPrefix:function(){},isLeaf:function(){},isInner:function(){}},cached:{hash:function(){var t=a.put(this.hashPrefix());return this.toBytesSink(t),t.finish()}}}),f=i({inherits:u,ShaMapLeaf:function(t,e){u.call(this),this.index=t,this.item=e},isLeaf:function(){return!0},isInner:function(){return!1},hashPrefix:function(){return this.item.hashPrefix()},toBytesSink:function(t){this.item.toBytesSink(t),this.index.toBytesSink(t)}}),c=u.prototype,h=i({inherits:u,ShaMapInner:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;u.call(this),this.depth=t,this.slotBits=0,this.branches=Array(16)},isInner:function(){return!0},isLeaf:function(){return!1},hashPrefix:function(){return s.innerNode},setBranch:function(t,e){this.slotBits=this.slotBits|1<<t,this.branches[t]=e},empty:function(){return 0===this.slotBits},hash:function(){return this.empty()?o.ZERO_256:c.hash.call(this)},toBytesSink:function(t){for(var e=0;e<this.branches.length;e++){var n=this.branches[e];(n?n.hash():o.ZERO_256).toBytesSink(t)}},addItem:function(t,e,n){r(t instanceof o);var i=t.nibblet(this.depth),s=this.branches[i];if(s)if(s.isLeaf()){var a=new h(this.depth+1);a.addItem(s.index,null,s),a.addItem(t,e,n),this.setBranch(i,a)}else s.isInner()?s.addItem(t,e,n):r(!1);else this.setBranch(i,n||new f(t,e))}}),d=i({inherits:h});t.exports={ShaMap:d}},function(t,e,n){"use strict";var r=n(7).rotr32;function i(t,e,n){return t&e^~t&n}function o(t,e,n){return t&e^t&n^e&n}function s(t,e,n){return t^e^n}e.ft_1=function(t,e,n,r){return 0===t?i(e,n,r):1===t||3===t?s(e,n,r):2===t?o(e,n,r):void 0},e.ch32=i,e.maj32=o,e.p32=s,e.s0_256=function(t){return r(t,2)^r(t,13)^r(t,22)},e.s1_256=function(t){return r(t,6)^r(t,11)^r(t,25)},e.g0_256=function(t){return r(t,7)^r(t,18)^t>>>3},e.g1_256=function(t){return r(t,17)^r(t,19)^t>>>10}},function(t,e,n){"use strict";var r=n(7),i=n(22),o=n(57),s=n(14),a=r.sum32,u=r.sum32_4,f=r.sum32_5,c=o.ch32,h=o.maj32,d=o.s0_256,l=o.s1_256,p=o.g0_256,b=o.g1_256,g=i.BlockHash,v=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];function m(){if(!(this instanceof m))return new m;g.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=v,this.W=new Array(64)}r.inherits(m,g),t.exports=m,m.blockSize=512,m.outSize=256,m.hmacStrength=192,m.padLength=64,m.prototype._update=function(t,e){for(var n=this.W,r=0;r<16;r++)n[r]=t[e+r];for(;r<n.length;r++)n[r]=u(b(n[r-2]),n[r-7],p(n[r-15]),n[r-16]);var i=this.h[0],o=this.h[1],g=this.h[2],v=this.h[3],m=this.h[4],y=this.h[5],w=this.h[6],_=this.h[7];for(s(this.k.length===n.length),r=0;r<n.length;r++){var S=f(_,l(m),c(m,y,w),this.k[r],n[r]),M=a(d(i),h(i,o,g));_=w,w=y,y=m,m=a(v,S),v=g,g=o,o=i,i=a(S,M)}this.h[0]=a(this.h[0],i),this.h[1]=a(this.h[1],o),this.h[2]=a(this.h[2],g),this.h[3]=a(this.h[3],v),this.h[4]=a(this.h[4],m),this.h[5]=a(this.h[5],y),this.h[6]=a(this.h[6],w),this.h[7]=a(this.h[7],_)},m.prototype._digest=function(t){return"hex"===t?r.toHex32(this.h,"big"):r.split32(this.h,"big")}},function(t,e,n){"use strict";var r=n(7),i=n(22),o=n(14),s=r.rotr64_hi,a=r.rotr64_lo,u=r.shr64_hi,f=r.shr64_lo,c=r.sum64,h=r.sum64_hi,d=r.sum64_lo,l=r.sum64_4_hi,p=r.sum64_4_lo,b=r.sum64_5_hi,g=r.sum64_5_lo,v=i.BlockHash,m=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function y(){if(!(this instanceof y))return new y;v.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=m,this.W=new Array(160)}function w(t,e,n,r,i){var o=t&n^~t&i;return o<0&&(o+=4294967296),o}function _(t,e,n,r,i,o){var s=e&r^~e&o;return s<0&&(s+=4294967296),s}function S(t,e,n,r,i){var o=t&n^t&i^n&i;return o<0&&(o+=4294967296),o}function M(t,e,n,r,i,o){var s=e&r^e&o^r&o;return s<0&&(s+=4294967296),s}function E(t,e){var n=s(t,e,28)^s(e,t,2)^s(e,t,7);return n<0&&(n+=4294967296),n}function A(t,e){var n=a(t,e,28)^a(e,t,2)^a(e,t,7);return n<0&&(n+=4294967296),n}function x(t,e){var n=s(t,e,14)^s(t,e,18)^s(e,t,9);return n<0&&(n+=4294967296),n}function I(t,e){var n=a(t,e,14)^a(t,e,18)^a(e,t,9);return n<0&&(n+=4294967296),n}function T(t,e){var n=s(t,e,1)^s(t,e,8)^u(t,e,7);return n<0&&(n+=4294967296),n}function k(t,e){var n=a(t,e,1)^a(t,e,8)^f(t,e,7);return n<0&&(n+=4294967296),n}function L(t,e){var n=s(t,e,19)^s(e,t,29)^u(t,e,6);return n<0&&(n+=4294967296),n}function N(t,e){var n=a(t,e,19)^a(e,t,29)^f(t,e,6);return n<0&&(n+=4294967296),n}r.inherits(y,v),t.exports=y,y.blockSize=1024,y.outSize=512,y.hmacStrength=192,y.padLength=128,y.prototype._prepareBlock=function(t,e){for(var n=this.W,r=0;r<32;r++)n[r]=t[e+r];for(;r<n.length;r+=2){var i=L(n[r-4],n[r-3]),o=N(n[r-4],n[r-3]),s=n[r-14],a=n[r-13],u=T(n[r-30],n[r-29]),f=k(n[r-30],n[r-29]),c=n[r-32],h=n[r-31];n[r]=l(i,o,s,a,u,f,c,h),n[r+1]=p(i,o,s,a,u,f,c,h)}},y.prototype._update=function(t,e){this._prepareBlock(t,e);var n=this.W,r=this.h[0],i=this.h[1],s=this.h[2],a=this.h[3],u=this.h[4],f=this.h[5],l=this.h[6],p=this.h[7],v=this.h[8],m=this.h[9],y=this.h[10],T=this.h[11],k=this.h[12],L=this.h[13],N=this.h[14],R=this.h[15];o(this.k.length===n.length);for(var O=0;O<n.length;O+=2){var B=N,z=R,P=x(v,m),U=I(v,m),F=w(v,m,y,T,k),j=_(v,m,y,T,k,L),C=this.k[O],D=this.k[O+1],q=n[O],V=n[O+1],H=b(B,z,P,U,F,j,C,D,q,V),W=g(B,z,P,U,F,j,C,D,q,V);B=E(r,i),z=A(r,i),P=S(r,i,s,a,u),U=M(r,i,s,a,u,f);var Z=h(B,z,P,U),Y=d(B,z,P,U);N=k,R=L,k=y,L=T,y=v,T=m,v=h(l,p,H,W),m=d(p,p,H,W),l=u,p=f,u=s,f=a,s=r,a=i,r=h(H,W,Z,Y),i=d(H,W,Z,Y)}c(this.h,0,r,i),c(this.h,2,s,a),c(this.h,4,u,f),c(this.h,6,l,p),c(this.h,8,v,m),c(this.h,10,y,T),c(this.h,12,k,L),c(this.h,14,N,R)},y.prototype._digest=function(t){return"hex"===t?r.toHex32(this.h,"big"):r.split32(this.h,"big")}},function(t,e,n){"use strict";var r=e;r.version=n(117).version,r.utils=n(4),r.rand=n(39),r.curve=n(62),r.curves=n(40),r.ec=n(123),r.eddsa=n(127)},function(t,e,n){"use strict";var r=e;function i(t){return 1===t.length?"0"+t:t}function o(t){for(var e="",n=0;n<t.length;n++)e+=i(t[n].toString(16));return e}r.toArray=function(t,e){if(Array.isArray(t))return t.slice();if(!t)return[];var n=[];if("string"!=typeof t){for(var r=0;r<t.length;r++)n[r]=0|t[r];return n}if("hex"===e){(t=t.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(t="0"+t);for(r=0;r<t.length;r+=2)n.push(parseInt(t[r]+t[r+1],16))}else for(r=0;r<t.length;r++){var i=t.charCodeAt(r),o=i>>8,s=255&i;o?n.push(o,s):n.push(s)}return n},r.zero2=i,r.toHex=o,r.encode=function(t,e){return"hex"===e?o(t):t}},function(t,e,n){"use strict";var r=e;r.base=n(26),r.short=n(119),r.mont=n(120),r.edwards=n(121)},function(t,e,n){(function(t){const e=n(66),r=n(29),o=n(109),s="badge badge-danger";var a=0;function u(t,e){let n;return n=e?$("<li></li>").appendTo("#log").append(t):$("<li></li>").text(t+" ").appendTo("#log"),n.resolve=function(t){return $("<span></span>").html(t).appendTo(n)},n}function f(t){for(x in t)log=u(x+": "+t[x])}function c(){const n=$("#manifest").val().toUpperCase();try{var c=e.decode(n)}catch(t){return void u("Error decoding manifest").resolve(t).addClass(s)}let d=c.Sequence,l=c.PublicKey,p=new t(l,"hex").toJSON().data,b=r.encodeNodePublic(p),g=c.SigningPubKey,v=new t(g,"hex").toJSON().data,m=r.encodeNodePublic(v);try{var y=function(t){for(var e=t.toString(),n="",r=0;r<e.length;r+=2)n+=String.fromCharCode(parseInt(e.substr(r,2),16));return n}(c.Domain)}catch{return u("Domain not found in manifest").addClass(s),void f({Sequence:d,"Master Public Key":b,"Ephemeral Public Key":m})}f({Sequence:d,Domain:y,"Master Public Key":b,"Ephemeral Public Key":m});let w="[domain-attestation-blob:"+y+":"+b+"]";const _="https://"+y+"/.well-known/xrp-ledger.toml?v="+a++,S=u("Checking "+_+"...");$.ajax({url:_,dataType:"text",success:function(t){S.resolve("FOUND").addClass("badge badge-success"),async function(t,e,n,r){let a,f=u("Parsing TOML data...");try{a=TOML(t),f.resolve("SUCCESS").addClass("badge badge-success")}catch(t){return void f.resolve(t).addClass(s)}console.log(a);let c=a.VALIDATORS;if(c)if(Array.isArray(c)){let t=!1;for(i=0;i<c.length;i++){if(c[i].public_key==n){t=!0;try{var d=c[i].attestation}catch{u("Attestation Not found").addClass(s)}try{var l=o.verify(h(r),d,e)}catch(t){u("Domain Verification Failed").resolve(t).addClass(s)}l?u("Domain Verification Succeeded").addClass("badge badge-success"):u("Domain Verification Failed").addClass(s)}}t||u("The validator key for this manifest was not found in the TOML file").addClass(s)}else u("Validators:").resolve("Wrong type - should be table-array").addClass(s);else u("No Validators Found").resolve("Failure").addClass(s)}(t,l,b,w)},error:function(t,e,n){switch(e){case"timeout":err="TIMEOUT";break;case"abort":err="ABORTED";break;case"error":err="ERROR";break;default:err="UNKNOWN"}S.resolve(err).addClass(s).after('<p>Check if the xrp-ledger.toml file is actually hosted in the /.well-known/ location at the domain in your manifest. Check your server\'s HTTPS settings and certificate, and make sure your server provides the required <a href="xrp-ledger-toml.html#cors-setup">CORS header.</a></p>')}})}function h(t){for(var e=[],n=0,r=t.length;n<r;n++){var i=Number(t.charCodeAt(n)).toString(16);e.push(i)}return e.join("")}function d(t){t.preventDefault(),$(".result-title").show(),$("#result").show(),$("#log").empty(),c()}$(document).ready(()=>{$("#manifest-entry").submit(d)})}).call(this,n(5).Buffer)},function(t,e,n){"use strict";e.byteLength=function(t){var e=f(t),n=e[0],r=e[1];return 3*(n+r)/4-r},e.toByteArray=function(t){var e,n,r=f(t),s=r[0],a=r[1],u=new o(function(t,e,n){return 3*(e+n)/4-n}(0,s,a)),c=0,h=a>0?s-4:s;for(n=0;n<h;n+=4)e=i[t.charCodeAt(n)]<<18|i[t.charCodeAt(n+1)]<<12|i[t.charCodeAt(n+2)]<<6|i[t.charCodeAt(n+3)],u[c++]=e>>16&255,u[c++]=e>>8&255,u[c++]=255&e;2===a&&(e=i[t.charCodeAt(n)]<<2|i[t.charCodeAt(n+1)]>>4,u[c++]=255&e);1===a&&(e=i[t.charCodeAt(n)]<<10|i[t.charCodeAt(n+1)]<<4|i[t.charCodeAt(n+2)]>>2,u[c++]=e>>8&255,u[c++]=255&e);return u},e.fromByteArray=function(t){for(var e,n=t.length,i=n%3,o=[],s=0,a=n-i;s<a;s+=16383)o.push(c(t,s,s+16383>a?a:s+16383));1===i?(e=t[n-1],o.push(r[e>>2]+r[e<<4&63]+"==")):2===i&&(e=(t[n-2]<<8)+t[n-1],o.push(r[e>>10]+r[e>>4&63]+r[e<<2&63]+"="));return o.join("")};for(var r=[],i=[],o="undefined"!=typeof Uint8Array?Uint8Array:Array,s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=0,u=s.length;a<u;++a)r[a]=s[a],i[s.charCodeAt(a)]=a;function f(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=t.indexOf("=");return-1===n&&(n=e),[n,n===e?0:4-n%4]}function c(t,e,n){for(var i,o,s=[],a=e;a<n;a+=3)i=(t[a]<<16&16711680)+(t[a+1]<<8&65280)+(255&t[a+2]),s.push(r[(o=i)>>18&63]+r[o>>12&63]+r[o>>6&63]+r[63&o]);return s.join("")}i["-".charCodeAt(0)]=62,i["_".charCodeAt(0)]=63},function(t,e){e.read=function(t,e,n,r,i){var o,s,a=8*i-r-1,u=(1<<a)-1,f=u>>1,c=-7,h=n?i-1:0,d=n?-1:1,l=t[e+h];for(h+=d,o=l&(1<<-c)-1,l>>=-c,c+=a;c>0;o=256*o+t[e+h],h+=d,c-=8);for(s=o&(1<<-c)-1,o>>=-c,c+=r;c>0;s=256*s+t[e+h],h+=d,c-=8);if(0===o)o=1-f;else{if(o===u)return s?NaN:1/0*(l?-1:1);s+=Math.pow(2,r),o-=f}return(l?-1:1)*s*Math.pow(2,o-r)},e.write=function(t,e,n,r,i,o){var s,a,u,f=8*o-i-1,c=(1<<f)-1,h=c>>1,d=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,l=r?0:o-1,p=r?1:-1,b=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,s=c):(s=Math.floor(Math.log(e)/Math.LN2),e*(u=Math.pow(2,-s))<1&&(s--,u*=2),(e+=s+h>=1?d/u:d*Math.pow(2,1-h))*u>=2&&(s++,u/=2),s+h>=c?(a=0,s=c):s+h>=1?(a=(e*u-1)*Math.pow(2,i),s+=h):(a=e*Math.pow(2,h-1)*Math.pow(2,i),s=0));i>=8;t[n+l]=255&a,l+=p,a/=256,i-=8);for(s=s<<i|a,f+=i;f>0;t[n+l]=255&s,l+=p,s/=256,f-=8);t[n+l-p]|=128*b}},function(t,e,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i=n(2),o=n(71),s=o.quality,a=o.binary,u=a.bytesToHex,f=a.signingData,c=a.signingClaimData,h=a.multiSigningData,d=a.binaryToJSON,l=a.serializeObject,p=a.BinaryParser;t.exports={decode:function(t){return i("string"==typeof t,"binary must be a hex string"),d(t)},encode:function(t){return i("object"===(void 0===t?"undefined":r(t))),u(l(t))},encodeForSigning:function(t){return i("object"===(void 0===t?"undefined":r(t))),u(f(t))},encodeForSigningClaim:function(t){return i("object"===(void 0===t?"undefined":r(t))),u(c(t))},encodeForMultisigning:function(t,e){return i("object"===(void 0===t?"undefined":r(t))),i.equal(t.SigningPubKey,""),u(h(t,e))},encodeQuality:function(t){return i("string"==typeof t),u(s.encode(t))},decodeQuality:function(t){return i("string"==typeof t),s.decode(t).toString()},decodeLedgerData:function(t){i("string"==typeof t,"binary must be a hex string");var e=new p(t);return{ledger_index:e.readUInt32(),total_coins:e.readType(o.UInt64).valueOf().toString(),parent_hash:e.readType(o.Hash256).toHex(),transaction_hash:e.readType(o.Hash256).toHex(),account_hash:e.readType(o.Hash256).toHex(),parent_close_time:e.readUInt32(),close_time:e.readUInt32(),close_time_resolution:e.readUInt8(),close_flags:e.readUInt8()}}}},function(t,e,n){"use strict"; -/* +!(function (t) { + var e = {} + function n(r) { + if (e[r]) return e[r].exports + var i = (e[r] = { i: r, l: !1, exports: {} }) + return (t[r].call(i.exports, i, i.exports, n), (i.l = !0), i.exports) + } + ;((n.m = t), + (n.c = e), + (n.d = function (t, e, r) { + n.o(t, e) || Object.defineProperty(t, e, { enumerable: !0, get: r }) + }), + (n.r = function (t) { + ;('undefined' != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, { value: 'Module' }), + Object.defineProperty(t, '__esModule', { value: !0 })) + }), + (n.t = function (t, e) { + if ((1 & e && (t = n(t)), 8 & e)) return t + if (4 & e && 'object' == typeof t && t && t.__esModule) return t + var r = Object.create(null) + if ((n.r(r), Object.defineProperty(r, 'default', { enumerable: !0, value: t }), 2 & e && 'string' != typeof t)) + for (var i in t) + n.d( + r, + i, + function (e) { + return t[e] + }.bind(null, i), + ) + return r + }), + (n.n = function (t) { + var e = + t && t.__esModule + ? function () { + return t.default + } + : function () { + return t + } + return (n.d(e, 'a', e), e) + }), + (n.o = function (t, e) { + return Object.prototype.hasOwnProperty.call(t, e) + }), + (n.p = ''), + n((n.s = 63))) +})([ + function (t, e, n) { + 'use strict' + var r = n(12), + i = n(1) + function o(t, e) { + Object.keys(t || {}).forEach(function (n) { + e(t[n], n) + }) + } + t.exports = function (t, e) { + var n = e || t, + s = 'function' == typeof t ? t : null + if (null === s) + for (var a in n) + if (a[0].match(/[A-Z]/)) { + s = n[a] + break + } + var u = n.inherits + ;(u && + (null === s && + (s = function () { + u.apply(this, arguments) + }), + i(s, u), + r.defaults(s, u)), + null === s && (s = function () {})) + var f, + c = s.prototype + function h(t, e, n) { + c[e] = n || t + } + if ( + ((n.getters || []).forEach(function (t) { + var e = '_' + t + c[t] = function () { + return this[e] + } + }), + o(n.virtuals, function (t, e) { + h(t, e, function () { + throw new Error('unimplemented') + }) + }), + o(n.methods, h), + o(n, function (t, e) { + r.isFunction(t) && t !== s && h(t, e) + }), + r.assign(s, n.statics), + 'function' == typeof s.init && s.init(), + o(n.cached, function (t, e) { + var n = '_' + e + h(t, e, function () { + var e = this[n] + return (void 0 === e && (e = this[n] = t.call(this)), e) + }) + }), + n.mixins) + ) { + var d = {} + ;(((f = n.mixins), Array.isArray(f) ? f : [f]).reverse().forEach(function (t) { + r.defaults(d, t) + }), + r.defaults(c, d)) + } + return s + } + }, + function (t, e) { + 'function' == typeof Object.create + ? (t.exports = function (t, e) { + e && + ((t.super_ = e), + (t.prototype = Object.create(e.prototype, { constructor: { value: t, enumerable: !1, writable: !0, configurable: !0 } }))) + }) + : (t.exports = function (t, e) { + if (e) { + t.super_ = e + var n = function () {} + ;((n.prototype = e.prototype), (t.prototype = new n()), (t.prototype.constructor = t)) + } + }) + }, + function (t, e, n) { + 'use strict' + ;(function (e) { + var r = n(67) + /*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org> + * @license MIT + */ function i(t, e) { + if (t === e) return 0 + for (var n = t.length, r = e.length, i = 0, o = Math.min(n, r); i < o; ++i) + if (t[i] !== e[i]) { + ;((n = t[i]), (r = e[i])) + break + } + return n < r ? -1 : r < n ? 1 : 0 + } + function o(t) { + return e.Buffer && 'function' == typeof e.Buffer.isBuffer ? e.Buffer.isBuffer(t) : !(null == t || !t._isBuffer) + } + var s = n(68), + a = Object.prototype.hasOwnProperty, + u = Array.prototype.slice, + f = 'foo' === function () {}.name + function c(t) { + return Object.prototype.toString.call(t) + } + function h(t) { + return ( + !o(t) && + 'function' == typeof e.ArrayBuffer && + ('function' == typeof ArrayBuffer.isView + ? ArrayBuffer.isView(t) + : !!t && (t instanceof DataView || !!(t.buffer && t.buffer instanceof ArrayBuffer))) + ) + } + var d = (t.exports = m), + l = /\s*function\s+([^\(\s]*)\s*/ + function p(t) { + if (s.isFunction(t)) { + if (f) return t.name + var e = t.toString().match(l) + return e && e[1] + } + } + function b(t, e) { + return 'string' == typeof t ? (t.length < e ? t : t.slice(0, e)) : t + } + function g(t) { + if (f || !s.isFunction(t)) return s.inspect(t) + var e = p(t) + return '[Function' + (e ? ': ' + e : '') + ']' + } + function v(t, e, n, r, i) { + throw new d.AssertionError({ message: n, actual: t, expected: e, operator: r, stackStartFunction: i }) + } + function m(t, e) { + t || v(t, !0, e, '==', d.ok) + } + function y(t, e, n, r) { + if (t === e) return !0 + if (o(t) && o(e)) return 0 === i(t, e) + if (s.isDate(t) && s.isDate(e)) return t.getTime() === e.getTime() + if (s.isRegExp(t) && s.isRegExp(e)) + return ( + t.source === e.source && + t.global === e.global && + t.multiline === e.multiline && + t.lastIndex === e.lastIndex && + t.ignoreCase === e.ignoreCase + ) + if ((null !== t && 'object' == typeof t) || (null !== e && 'object' == typeof e)) { + if (h(t) && h(e) && c(t) === c(e) && !(t instanceof Float32Array || t instanceof Float64Array)) + return 0 === i(new Uint8Array(t.buffer), new Uint8Array(e.buffer)) + if (o(t) !== o(e)) return !1 + var a = (r = r || { actual: [], expected: [] }).actual.indexOf(t) + return ( + (-1 !== a && a === r.expected.indexOf(e)) || + (r.actual.push(t), + r.expected.push(e), + (function (t, e, n, r) { + if (null == t || null == e) return !1 + if (s.isPrimitive(t) || s.isPrimitive(e)) return t === e + if (n && Object.getPrototypeOf(t) !== Object.getPrototypeOf(e)) return !1 + var i = w(t), + o = w(e) + if ((i && !o) || (!i && o)) return !1 + if (i) return ((t = u.call(t)), (e = u.call(e)), y(t, e, n)) + var a, + f, + c = M(t), + h = M(e) + if (c.length !== h.length) return !1 + for (c.sort(), h.sort(), f = c.length - 1; f >= 0; f--) if (c[f] !== h[f]) return !1 + for (f = c.length - 1; f >= 0; f--) if (((a = c[f]), !y(t[a], e[a], n, r))) return !1 + return !0 + })(t, e, n, r)) + ) + } + return n ? t === e : t == e + } + function w(t) { + return '[object Arguments]' == Object.prototype.toString.call(t) + } + function _(t, e) { + if (!t || !e) return !1 + if ('[object RegExp]' == Object.prototype.toString.call(e)) return e.test(t) + try { + if (t instanceof e) return !0 + } catch (t) {} + return !Error.isPrototypeOf(e) && !0 === e.call({}, t) + } + function S(t, e, n, r) { + var i + if ('function' != typeof e) throw new TypeError('"block" argument must be a function') + ;('string' == typeof n && ((r = n), (n = null)), + (i = (function (t) { + var e + try { + t() + } catch (t) { + e = t + } + return e + })(e)), + (r = (n && n.name ? ' (' + n.name + ').' : '.') + (r ? ' ' + r : '.')), + t && !i && v(i, n, 'Missing expected exception' + r)) + var o = 'string' == typeof r, + a = !t && i && !n + if ((((!t && s.isError(i) && o && _(i, n)) || a) && v(i, n, 'Got unwanted exception' + r), (t && i && n && !_(i, n)) || (!t && i))) throw i + } + ;((d.AssertionError = function (t) { + ;((this.name = 'AssertionError'), + (this.actual = t.actual), + (this.expected = t.expected), + (this.operator = t.operator), + t.message + ? ((this.message = t.message), (this.generatedMessage = !1)) + : ((this.message = (function (t) { + return b(g(t.actual), 128) + ' ' + t.operator + ' ' + b(g(t.expected), 128) + })(this)), + (this.generatedMessage = !0))) + var e = t.stackStartFunction || v + if (Error.captureStackTrace) Error.captureStackTrace(this, e) + else { + var n = new Error() + if (n.stack) { + var r = n.stack, + i = p(e), + o = r.indexOf('\n' + i) + if (o >= 0) { + var s = r.indexOf('\n', o + 1) + r = r.substring(s + 1) + } + this.stack = r + } + } + }), + s.inherits(d.AssertionError, Error), + (d.fail = v), + (d.ok = m), + (d.equal = function (t, e, n) { + t != e && v(t, e, n, '==', d.equal) + }), + (d.notEqual = function (t, e, n) { + t == e && v(t, e, n, '!=', d.notEqual) + }), + (d.deepEqual = function (t, e, n) { + y(t, e, !1) || v(t, e, n, 'deepEqual', d.deepEqual) + }), + (d.deepStrictEqual = function (t, e, n) { + y(t, e, !0) || v(t, e, n, 'deepStrictEqual', d.deepStrictEqual) + }), + (d.notDeepEqual = function (t, e, n) { + y(t, e, !1) && v(t, e, n, 'notDeepEqual', d.notDeepEqual) + }), + (d.notDeepStrictEqual = function t(e, n, r) { + y(e, n, !0) && v(e, n, r, 'notDeepStrictEqual', t) + }), + (d.strictEqual = function (t, e, n) { + t !== e && v(t, e, n, '===', d.strictEqual) + }), + (d.notStrictEqual = function (t, e, n) { + t === e && v(t, e, n, '!==', d.notStrictEqual) + }), + (d.throws = function (t, e, n) { + S(!0, t, e, n) + }), + (d.doesNotThrow = function (t, e, n) { + S(!1, t, e, n) + }), + (d.ifError = function (t) { + if (t) throw t + }), + (d.strict = r( + function t(e, n) { + e || v(e, !0, n, '==', t) + }, + d, + { equal: d.strictEqual, deepEqual: d.deepStrictEqual, notEqual: d.notStrictEqual, notDeepEqual: d.notDeepStrictEqual }, + )), + (d.strict.strict = d.strict)) + var M = + Object.keys || + function (t) { + var e = [] + for (var n in t) a.call(t, n) && e.push(n) + return e + } + }).call(this, n(9)) + }, + function (t, e, n) { + 'use strict' + var r = n(2) + function i(t, e) { + return t < e ? -1 : t === e ? 0 : 1 + } + var o = (function () { + for (var t = {}, e = (t.reverse = new Array(256)), n = 0; n < 16; n++) { + var r = n.toString(16).toUpperCase() + t[r] = n + for (var i = 0; i < 16; i++) { + var o = i.toString(16).toUpperCase(), + s = (n << 4) + i, + a = r + o + ;((t[a] = s), (e[s] = a)) + } + } + return t + })(), + s = o.reverse + function a(t) { + var e = o[t] + if (void 0 === e) throw new Error('`' + t + '` is not a valid hex representation of a byte') + return e + } + t.exports = { + parseBytes: function (t) { + var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : Array + if (!t || void 0 === t.length) throw new Error(t + ' is not a sequence') + if ('string' == typeof t) { + for (var n = t.length % 2, r = new e((t.length + n) / 2), i = t.length, o = r.length - 1; o >= n; i -= 2, o--) r[o] = a(t.slice(i - 2, i)) + return (1 === n && (r[0] = a(t[0])), r) + } + if (t instanceof e) return t + if (e === Uint8Array) return new e(t) + for (var s = new e(t.length), u = t.length - 1; u >= 0; u--) s[u] = t[u] + return s + }, + bytesToHex: function (t) { + for (var e = Array(t.length), n = t.length - 1; n >= 0; n--) e[n] = s[t[n]] + return e.join('') + }, + slice: function (t) { + var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0, + n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : t.length, + r = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : t.constructor + ;(e < 0 && (e += t.length), n < 0 && (n += t.length)) + for (var i = n - e, o = new r(i), s = n - 1; s >= e; s--) o[s - e] = t[s] + return o + }, + compareBytes: function (t, e) { + r(t.length === e.length) + for (var n = 0; n < t.length; n++) { + var o = i(t[n], e[n]) + if (0 !== o) return o + } + return 0 + }, + serializeUIntN: function (t, e) { + for (var n = new Uint8Array(e), r = e - 1, i = 0; i < e; i++) n[r - i] = (t >>> (8 * i)) & 255 + return n + }, + } + }, + function (t, e, n) { + 'use strict' + var r = e, + i = n(8), + o = n(14), + s = n(61) + ;((r.assert = o), + (r.toArray = s.toArray), + (r.zero2 = s.zero2), + (r.toHex = s.toHex), + (r.encode = s.encode), + (r.getNAF = function (t, e, n) { + var r = new Array(Math.max(t.bitLength(), n) + 1) + r.fill(0) + for (var i = 1 << (e + 1), o = t.clone(), s = 0; s < r.length; s++) { + var a, + u = o.andln(i - 1) + ;(o.isOdd() ? ((a = u > (i >> 1) - 1 ? (i >> 1) - u : u), o.isubn(a)) : (a = 0), (r[s] = a), o.iushrn(1)) + } + return r + }), + (r.getJSF = function (t, e) { + var n = [[], []] + ;((t = t.clone()), (e = e.clone())) + for (var r = 0, i = 0; t.cmpn(-r) > 0 || e.cmpn(-i) > 0; ) { + var o, + s, + a, + u = (t.andln(3) + r) & 3, + f = (e.andln(3) + i) & 3 + if ((3 === u && (u = -1), 3 === f && (f = -1), 0 == (1 & u))) o = 0 + else o = (3 !== (a = (t.andln(7) + r) & 7) && 5 !== a) || 2 !== f ? u : -u + if ((n[0].push(o), 0 == (1 & f))) s = 0 + else s = (3 !== (a = (e.andln(7) + i) & 7) && 5 !== a) || 2 !== u ? f : -f + ;(n[1].push(s), 2 * r === o + 1 && (r = 1 - r), 2 * i === s + 1 && (i = 1 - i), t.iushrn(1), e.iushrn(1)) + } + return n + }), + (r.cachedProperty = function (t, e, n) { + var r = '_' + e + t.prototype[e] = function () { + return void 0 !== this[r] ? this[r] : (this[r] = n.call(this)) + } + }), + (r.parseBytes = function (t) { + return 'string' == typeof t ? r.toArray(t, 'hex') : t + }), + (r.intFromLE = function (t) { + return new i(t, 'hex', 'le') + })) + }, + function (t, e, n) { + 'use strict' + ;(function (t) { + /*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh <http://feross.org> + * @license MIT + */ + var r = n(64), + i = n(65), + o = n(41) + function s() { + return u.TYPED_ARRAY_SUPPORT ? 2147483647 : 1073741823 + } + function a(t, e) { + if (s() < e) throw new RangeError('Invalid typed array length') + return (u.TYPED_ARRAY_SUPPORT ? ((t = new Uint8Array(e)).__proto__ = u.prototype) : (null === t && (t = new u(e)), (t.length = e)), t) + } + function u(t, e, n) { + if (!(u.TYPED_ARRAY_SUPPORT || this instanceof u)) return new u(t, e, n) + if ('number' == typeof t) { + if ('string' == typeof e) throw new Error('If encoding is specified then the first argument must be a string') + return h(this, t) + } + return f(this, t, e, n) + } + function f(t, e, n, r) { + if ('number' == typeof e) throw new TypeError('"value" argument must not be a number') + return 'undefined' != typeof ArrayBuffer && e instanceof ArrayBuffer + ? (function (t, e, n, r) { + if ((e.byteLength, n < 0 || e.byteLength < n)) throw new RangeError("'offset' is out of bounds") + if (e.byteLength < n + (r || 0)) throw new RangeError("'length' is out of bounds") + e = void 0 === n && void 0 === r ? new Uint8Array(e) : void 0 === r ? new Uint8Array(e, n) : new Uint8Array(e, n, r) + u.TYPED_ARRAY_SUPPORT ? ((t = e).__proto__ = u.prototype) : (t = d(t, e)) + return t + })(t, e, n, r) + : 'string' == typeof e + ? (function (t, e, n) { + ;('string' == typeof n && '' !== n) || (n = 'utf8') + if (!u.isEncoding(n)) throw new TypeError('"encoding" must be a valid string encoding') + var r = 0 | p(e, n), + i = (t = a(t, r)).write(e, n) + i !== r && (t = t.slice(0, i)) + return t + })(t, e, n) + : (function (t, e) { + if (u.isBuffer(e)) { + var n = 0 | l(e.length) + return (0 === (t = a(t, n)).length || e.copy(t, 0, 0, n), t) + } + if (e) { + if (('undefined' != typeof ArrayBuffer && e.buffer instanceof ArrayBuffer) || 'length' in e) + return 'number' != typeof e.length || (r = e.length) != r ? a(t, 0) : d(t, e) + if ('Buffer' === e.type && o(e.data)) return d(t, e.data) + } + var r + throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.') + })(t, e) + } + function c(t) { + if ('number' != typeof t) throw new TypeError('"size" argument must be a number') + if (t < 0) throw new RangeError('"size" argument must not be negative') + } + function h(t, e) { + if ((c(e), (t = a(t, e < 0 ? 0 : 0 | l(e))), !u.TYPED_ARRAY_SUPPORT)) for (var n = 0; n < e; ++n) t[n] = 0 + return t + } + function d(t, e) { + var n = e.length < 0 ? 0 : 0 | l(e.length) + t = a(t, n) + for (var r = 0; r < n; r += 1) t[r] = 255 & e[r] + return t + } + function l(t) { + if (t >= s()) throw new RangeError('Attempt to allocate Buffer larger than maximum size: 0x' + s().toString(16) + ' bytes') + return 0 | t + } + function p(t, e) { + if (u.isBuffer(t)) return t.length + if ('undefined' != typeof ArrayBuffer && 'function' == typeof ArrayBuffer.isView && (ArrayBuffer.isView(t) || t instanceof ArrayBuffer)) + return t.byteLength + 'string' != typeof t && (t = '' + t) + var n = t.length + if (0 === n) return 0 + for (var r = !1; ; ) + switch (e) { + case 'ascii': + case 'latin1': + case 'binary': + return n + case 'utf8': + case 'utf-8': + case void 0: + return C(t).length + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return 2 * n + case 'hex': + return n >>> 1 + case 'base64': + return D(t).length + default: + if (r) return C(t).length + ;((e = ('' + e).toLowerCase()), (r = !0)) + } + } + function b(t, e, n) { + var r = !1 + if (((void 0 === e || e < 0) && (e = 0), e > this.length)) return '' + if (((void 0 === n || n > this.length) && (n = this.length), n <= 0)) return '' + if ((n >>>= 0) <= (e >>>= 0)) return '' + for (t || (t = 'utf8'); ; ) + switch (t) { + case 'hex': + return k(this, e, n) + case 'utf8': + case 'utf-8': + return x(this, e, n) + case 'ascii': + return I(this, e, n) + case 'latin1': + case 'binary': + return T(this, e, n) + case 'base64': + return A(this, e, n) + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return L(this, e, n) + default: + if (r) throw new TypeError('Unknown encoding: ' + t) + ;((t = (t + '').toLowerCase()), (r = !0)) + } + } + function g(t, e, n) { + var r = t[e] + ;((t[e] = t[n]), (t[n] = r)) + } + function v(t, e, n, r, i) { + if (0 === t.length) return -1 + if ( + ('string' == typeof n ? ((r = n), (n = 0)) : n > 2147483647 ? (n = 2147483647) : n < -2147483648 && (n = -2147483648), + (n = +n), + isNaN(n) && (n = i ? 0 : t.length - 1), + n < 0 && (n = t.length + n), + n >= t.length) + ) { + if (i) return -1 + n = t.length - 1 + } else if (n < 0) { + if (!i) return -1 + n = 0 + } + if (('string' == typeof e && (e = u.from(e, r)), u.isBuffer(e))) return 0 === e.length ? -1 : m(t, e, n, r, i) + if ('number' == typeof e) + return ( + (e &= 255), + u.TYPED_ARRAY_SUPPORT && 'function' == typeof Uint8Array.prototype.indexOf + ? i + ? Uint8Array.prototype.indexOf.call(t, e, n) + : Uint8Array.prototype.lastIndexOf.call(t, e, n) + : m(t, [e], n, r, i) + ) + throw new TypeError('val must be string, number or Buffer') + } + function m(t, e, n, r, i) { + var o, + s = 1, + a = t.length, + u = e.length + if (void 0 !== r && ('ucs2' === (r = String(r).toLowerCase()) || 'ucs-2' === r || 'utf16le' === r || 'utf-16le' === r)) { + if (t.length < 2 || e.length < 2) return -1 + ;((s = 2), (a /= 2), (u /= 2), (n /= 2)) + } + function f(t, e) { + return 1 === s ? t[e] : t.readUInt16BE(e * s) + } + if (i) { + var c = -1 + for (o = n; o < a; o++) + if (f(t, o) === f(e, -1 === c ? 0 : o - c)) { + if ((-1 === c && (c = o), o - c + 1 === u)) return c * s + } else (-1 !== c && (o -= o - c), (c = -1)) + } else + for (n + u > a && (n = a - u), o = n; o >= 0; o--) { + for (var h = !0, d = 0; d < u; d++) + if (f(t, o + d) !== f(e, d)) { + h = !1 + break + } + if (h) return o + } + return -1 + } + function y(t, e, n, r) { + n = Number(n) || 0 + var i = t.length - n + r ? (r = Number(r)) > i && (r = i) : (r = i) + var o = e.length + if (o % 2 != 0) throw new TypeError('Invalid hex string') + r > o / 2 && (r = o / 2) + for (var s = 0; s < r; ++s) { + var a = parseInt(e.substr(2 * s, 2), 16) + if (isNaN(a)) return s + t[n + s] = a + } + return s + } + function w(t, e, n, r) { + return q(C(e, t.length - n), t, n, r) + } + function _(t, e, n, r) { + return q( + (function (t) { + for (var e = [], n = 0; n < t.length; ++n) e.push(255 & t.charCodeAt(n)) + return e + })(e), + t, + n, + r, + ) + } + function S(t, e, n, r) { + return _(t, e, n, r) + } + function M(t, e, n, r) { + return q(D(e), t, n, r) + } + function E(t, e, n, r) { + return q( + (function (t, e) { + for (var n, r, i, o = [], s = 0; s < t.length && !((e -= 2) < 0); ++s) + ((n = t.charCodeAt(s)), (r = n >> 8), (i = n % 256), o.push(i), o.push(r)) + return o + })(e, t.length - n), + t, + n, + r, + ) + } + function A(t, e, n) { + return 0 === e && n === t.length ? r.fromByteArray(t) : r.fromByteArray(t.slice(e, n)) + } + function x(t, e, n) { + n = Math.min(t.length, n) + for (var r = [], i = e; i < n; ) { + var o, + s, + a, + u, + f = t[i], + c = null, + h = f > 239 ? 4 : f > 223 ? 3 : f > 191 ? 2 : 1 + if (i + h <= n) + switch (h) { + case 1: + f < 128 && (c = f) + break + case 2: + 128 == (192 & (o = t[i + 1])) && (u = ((31 & f) << 6) | (63 & o)) > 127 && (c = u) + break + case 3: + ;((o = t[i + 1]), + (s = t[i + 2]), + 128 == (192 & o) && + 128 == (192 & s) && + (u = ((15 & f) << 12) | ((63 & o) << 6) | (63 & s)) > 2047 && + (u < 55296 || u > 57343) && + (c = u)) + break + case 4: + ;((o = t[i + 1]), + (s = t[i + 2]), + (a = t[i + 3]), + 128 == (192 & o) && + 128 == (192 & s) && + 128 == (192 & a) && + (u = ((15 & f) << 18) | ((63 & o) << 12) | ((63 & s) << 6) | (63 & a)) > 65535 && + u < 1114112 && + (c = u)) + } + ;(null === c ? ((c = 65533), (h = 1)) : c > 65535 && ((c -= 65536), r.push(((c >>> 10) & 1023) | 55296), (c = 56320 | (1023 & c))), + r.push(c), + (i += h)) + } + return (function (t) { + var e = t.length + if (e <= 4096) return String.fromCharCode.apply(String, t) + var n = '', + r = 0 + for (; r < e; ) n += String.fromCharCode.apply(String, t.slice(r, (r += 4096))) + return n + })(r) + } + ;((e.Buffer = u), + (e.SlowBuffer = function (t) { + ;+t != t && (t = 0) + return u.alloc(+t) + }), + (e.INSPECT_MAX_BYTES = 50), + (u.TYPED_ARRAY_SUPPORT = + void 0 !== t.TYPED_ARRAY_SUPPORT + ? t.TYPED_ARRAY_SUPPORT + : (function () { + try { + var t = new Uint8Array(1) + return ( + (t.__proto__ = { + __proto__: Uint8Array.prototype, + foo: function () { + return 42 + }, + }), + 42 === t.foo() && 'function' == typeof t.subarray && 0 === t.subarray(1, 1).byteLength + ) + } catch (t) { + return !1 + } + })()), + (e.kMaxLength = s()), + (u.poolSize = 8192), + (u._augment = function (t) { + return ((t.__proto__ = u.prototype), t) + }), + (u.from = function (t, e, n) { + return f(null, t, e, n) + }), + u.TYPED_ARRAY_SUPPORT && + ((u.prototype.__proto__ = Uint8Array.prototype), + (u.__proto__ = Uint8Array), + 'undefined' != typeof Symbol && + Symbol.species && + u[Symbol.species] === u && + Object.defineProperty(u, Symbol.species, { value: null, configurable: !0 })), + (u.alloc = function (t, e, n) { + return (function (t, e, n, r) { + return (c(e), e <= 0 ? a(t, e) : void 0 !== n ? ('string' == typeof r ? a(t, e).fill(n, r) : a(t, e).fill(n)) : a(t, e)) + })(null, t, e, n) + }), + (u.allocUnsafe = function (t) { + return h(null, t) + }), + (u.allocUnsafeSlow = function (t) { + return h(null, t) + }), + (u.isBuffer = function (t) { + return !(null == t || !t._isBuffer) + }), + (u.compare = function (t, e) { + if (!u.isBuffer(t) || !u.isBuffer(e)) throw new TypeError('Arguments must be Buffers') + if (t === e) return 0 + for (var n = t.length, r = e.length, i = 0, o = Math.min(n, r); i < o; ++i) + if (t[i] !== e[i]) { + ;((n = t[i]), (r = e[i])) + break + } + return n < r ? -1 : r < n ? 1 : 0 + }), + (u.isEncoding = function (t) { + switch (String(t).toLowerCase()) { + case 'hex': + case 'utf8': + case 'utf-8': + case 'ascii': + case 'latin1': + case 'binary': + case 'base64': + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return !0 + default: + return !1 + } + }), + (u.concat = function (t, e) { + if (!o(t)) throw new TypeError('"list" argument must be an Array of Buffers') + if (0 === t.length) return u.alloc(0) + var n + if (void 0 === e) for (e = 0, n = 0; n < t.length; ++n) e += t[n].length + var r = u.allocUnsafe(e), + i = 0 + for (n = 0; n < t.length; ++n) { + var s = t[n] + if (!u.isBuffer(s)) throw new TypeError('"list" argument must be an Array of Buffers') + ;(s.copy(r, i), (i += s.length)) + } + return r + }), + (u.byteLength = p), + (u.prototype._isBuffer = !0), + (u.prototype.swap16 = function () { + var t = this.length + if (t % 2 != 0) throw new RangeError('Buffer size must be a multiple of 16-bits') + for (var e = 0; e < t; e += 2) g(this, e, e + 1) + return this + }), + (u.prototype.swap32 = function () { + var t = this.length + if (t % 4 != 0) throw new RangeError('Buffer size must be a multiple of 32-bits') + for (var e = 0; e < t; e += 4) (g(this, e, e + 3), g(this, e + 1, e + 2)) + return this + }), + (u.prototype.swap64 = function () { + var t = this.length + if (t % 8 != 0) throw new RangeError('Buffer size must be a multiple of 64-bits') + for (var e = 0; e < t; e += 8) (g(this, e, e + 7), g(this, e + 1, e + 6), g(this, e + 2, e + 5), g(this, e + 3, e + 4)) + return this + }), + (u.prototype.toString = function () { + var t = 0 | this.length + return 0 === t ? '' : 0 === arguments.length ? x(this, 0, t) : b.apply(this, arguments) + }), + (u.prototype.equals = function (t) { + if (!u.isBuffer(t)) throw new TypeError('Argument must be a Buffer') + return this === t || 0 === u.compare(this, t) + }), + (u.prototype.inspect = function () { + var t = '', + n = e.INSPECT_MAX_BYTES + return ( + this.length > 0 && ((t = this.toString('hex', 0, n).match(/.{2}/g).join(' ')), this.length > n && (t += ' ... ')), + '<Buffer ' + t + '>' + ) + }), + (u.prototype.compare = function (t, e, n, r, i) { + if (!u.isBuffer(t)) throw new TypeError('Argument must be a Buffer') + if ( + (void 0 === e && (e = 0), + void 0 === n && (n = t ? t.length : 0), + void 0 === r && (r = 0), + void 0 === i && (i = this.length), + e < 0 || n > t.length || r < 0 || i > this.length) + ) + throw new RangeError('out of range index') + if (r >= i && e >= n) return 0 + if (r >= i) return -1 + if (e >= n) return 1 + if (this === t) return 0 + for ( + var o = (i >>>= 0) - (r >>>= 0), s = (n >>>= 0) - (e >>>= 0), a = Math.min(o, s), f = this.slice(r, i), c = t.slice(e, n), h = 0; + h < a; + ++h + ) + if (f[h] !== c[h]) { + ;((o = f[h]), (s = c[h])) + break + } + return o < s ? -1 : s < o ? 1 : 0 + }), + (u.prototype.includes = function (t, e, n) { + return -1 !== this.indexOf(t, e, n) + }), + (u.prototype.indexOf = function (t, e, n) { + return v(this, t, e, n, !0) + }), + (u.prototype.lastIndexOf = function (t, e, n) { + return v(this, t, e, n, !1) + }), + (u.prototype.write = function (t, e, n, r) { + if (void 0 === e) ((r = 'utf8'), (n = this.length), (e = 0)) + else if (void 0 === n && 'string' == typeof e) ((r = e), (n = this.length), (e = 0)) + else { + if (!isFinite(e)) throw new Error('Buffer.write(string, encoding, offset[, length]) is no longer supported') + ;((e |= 0), isFinite(n) ? ((n |= 0), void 0 === r && (r = 'utf8')) : ((r = n), (n = void 0))) + } + var i = this.length - e + if (((void 0 === n || n > i) && (n = i), (t.length > 0 && (n < 0 || e < 0)) || e > this.length)) + throw new RangeError('Attempt to write outside buffer bounds') + r || (r = 'utf8') + for (var o = !1; ; ) + switch (r) { + case 'hex': + return y(this, t, e, n) + case 'utf8': + case 'utf-8': + return w(this, t, e, n) + case 'ascii': + return _(this, t, e, n) + case 'latin1': + case 'binary': + return S(this, t, e, n) + case 'base64': + return M(this, t, e, n) + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return E(this, t, e, n) + default: + if (o) throw new TypeError('Unknown encoding: ' + r) + ;((r = ('' + r).toLowerCase()), (o = !0)) + } + }), + (u.prototype.toJSON = function () { + return { type: 'Buffer', data: Array.prototype.slice.call(this._arr || this, 0) } + })) + function I(t, e, n) { + var r = '' + n = Math.min(t.length, n) + for (var i = e; i < n; ++i) r += String.fromCharCode(127 & t[i]) + return r + } + function T(t, e, n) { + var r = '' + n = Math.min(t.length, n) + for (var i = e; i < n; ++i) r += String.fromCharCode(t[i]) + return r + } + function k(t, e, n) { + var r = t.length + ;((!e || e < 0) && (e = 0), (!n || n < 0 || n > r) && (n = r)) + for (var i = '', o = e; o < n; ++o) i += j(t[o]) + return i + } + function L(t, e, n) { + for (var r = t.slice(e, n), i = '', o = 0; o < r.length; o += 2) i += String.fromCharCode(r[o] + 256 * r[o + 1]) + return i + } + function N(t, e, n) { + if (t % 1 != 0 || t < 0) throw new RangeError('offset is not uint') + if (t + e > n) throw new RangeError('Trying to access beyond buffer length') + } + function R(t, e, n, r, i, o) { + if (!u.isBuffer(t)) throw new TypeError('"buffer" argument must be a Buffer instance') + if (e > i || e < o) throw new RangeError('"value" argument is out of bounds') + if (n + r > t.length) throw new RangeError('Index out of range') + } + function O(t, e, n, r) { + e < 0 && (e = 65535 + e + 1) + for (var i = 0, o = Math.min(t.length - n, 2); i < o; ++i) t[n + i] = (e & (255 << (8 * (r ? i : 1 - i)))) >>> (8 * (r ? i : 1 - i)) + } + function B(t, e, n, r) { + e < 0 && (e = 4294967295 + e + 1) + for (var i = 0, o = Math.min(t.length - n, 4); i < o; ++i) t[n + i] = (e >>> (8 * (r ? i : 3 - i))) & 255 + } + function z(t, e, n, r, i, o) { + if (n + r > t.length) throw new RangeError('Index out of range') + if (n < 0) throw new RangeError('Index out of range') + } + function P(t, e, n, r, o) { + return (o || z(t, 0, n, 4), i.write(t, e, n, r, 23, 4), n + 4) + } + function U(t, e, n, r, o) { + return (o || z(t, 0, n, 8), i.write(t, e, n, r, 52, 8), n + 8) + } + ;((u.prototype.slice = function (t, e) { + var n, + r = this.length + if ( + ((t = ~~t) < 0 ? (t += r) < 0 && (t = 0) : t > r && (t = r), + (e = void 0 === e ? r : ~~e) < 0 ? (e += r) < 0 && (e = 0) : e > r && (e = r), + e < t && (e = t), + u.TYPED_ARRAY_SUPPORT) + ) + (n = this.subarray(t, e)).__proto__ = u.prototype + else { + var i = e - t + n = new u(i, void 0) + for (var o = 0; o < i; ++o) n[o] = this[o + t] + } + return n + }), + (u.prototype.readUIntLE = function (t, e, n) { + ;((t |= 0), (e |= 0), n || N(t, e, this.length)) + for (var r = this[t], i = 1, o = 0; ++o < e && (i *= 256); ) r += this[t + o] * i + return r + }), + (u.prototype.readUIntBE = function (t, e, n) { + ;((t |= 0), (e |= 0), n || N(t, e, this.length)) + for (var r = this[t + --e], i = 1; e > 0 && (i *= 256); ) r += this[t + --e] * i + return r + }), + (u.prototype.readUInt8 = function (t, e) { + return (e || N(t, 1, this.length), this[t]) + }), + (u.prototype.readUInt16LE = function (t, e) { + return (e || N(t, 2, this.length), this[t] | (this[t + 1] << 8)) + }), + (u.prototype.readUInt16BE = function (t, e) { + return (e || N(t, 2, this.length), (this[t] << 8) | this[t + 1]) + }), + (u.prototype.readUInt32LE = function (t, e) { + return (e || N(t, 4, this.length), (this[t] | (this[t + 1] << 8) | (this[t + 2] << 16)) + 16777216 * this[t + 3]) + }), + (u.prototype.readUInt32BE = function (t, e) { + return (e || N(t, 4, this.length), 16777216 * this[t] + ((this[t + 1] << 16) | (this[t + 2] << 8) | this[t + 3])) + }), + (u.prototype.readIntLE = function (t, e, n) { + ;((t |= 0), (e |= 0), n || N(t, e, this.length)) + for (var r = this[t], i = 1, o = 0; ++o < e && (i *= 256); ) r += this[t + o] * i + return (r >= (i *= 128) && (r -= Math.pow(2, 8 * e)), r) + }), + (u.prototype.readIntBE = function (t, e, n) { + ;((t |= 0), (e |= 0), n || N(t, e, this.length)) + for (var r = e, i = 1, o = this[t + --r]; r > 0 && (i *= 256); ) o += this[t + --r] * i + return (o >= (i *= 128) && (o -= Math.pow(2, 8 * e)), o) + }), + (u.prototype.readInt8 = function (t, e) { + return (e || N(t, 1, this.length), 128 & this[t] ? -1 * (255 - this[t] + 1) : this[t]) + }), + (u.prototype.readInt16LE = function (t, e) { + e || N(t, 2, this.length) + var n = this[t] | (this[t + 1] << 8) + return 32768 & n ? 4294901760 | n : n + }), + (u.prototype.readInt16BE = function (t, e) { + e || N(t, 2, this.length) + var n = this[t + 1] | (this[t] << 8) + return 32768 & n ? 4294901760 | n : n + }), + (u.prototype.readInt32LE = function (t, e) { + return (e || N(t, 4, this.length), this[t] | (this[t + 1] << 8) | (this[t + 2] << 16) | (this[t + 3] << 24)) + }), + (u.prototype.readInt32BE = function (t, e) { + return (e || N(t, 4, this.length), (this[t] << 24) | (this[t + 1] << 16) | (this[t + 2] << 8) | this[t + 3]) + }), + (u.prototype.readFloatLE = function (t, e) { + return (e || N(t, 4, this.length), i.read(this, t, !0, 23, 4)) + }), + (u.prototype.readFloatBE = function (t, e) { + return (e || N(t, 4, this.length), i.read(this, t, !1, 23, 4)) + }), + (u.prototype.readDoubleLE = function (t, e) { + return (e || N(t, 8, this.length), i.read(this, t, !0, 52, 8)) + }), + (u.prototype.readDoubleBE = function (t, e) { + return (e || N(t, 8, this.length), i.read(this, t, !1, 52, 8)) + }), + (u.prototype.writeUIntLE = function (t, e, n, r) { + ;((t = +t), (e |= 0), (n |= 0), r) || R(this, t, e, n, Math.pow(2, 8 * n) - 1, 0) + var i = 1, + o = 0 + for (this[e] = 255 & t; ++o < n && (i *= 256); ) this[e + o] = (t / i) & 255 + return e + n + }), + (u.prototype.writeUIntBE = function (t, e, n, r) { + ;((t = +t), (e |= 0), (n |= 0), r) || R(this, t, e, n, Math.pow(2, 8 * n) - 1, 0) + var i = n - 1, + o = 1 + for (this[e + i] = 255 & t; --i >= 0 && (o *= 256); ) this[e + i] = (t / o) & 255 + return e + n + }), + (u.prototype.writeUInt8 = function (t, e, n) { + return ((t = +t), (e |= 0), n || R(this, t, e, 1, 255, 0), u.TYPED_ARRAY_SUPPORT || (t = Math.floor(t)), (this[e] = 255 & t), e + 1) + }), + (u.prototype.writeUInt16LE = function (t, e, n) { + return ( + (t = +t), + (e |= 0), + n || R(this, t, e, 2, 65535, 0), + u.TYPED_ARRAY_SUPPORT ? ((this[e] = 255 & t), (this[e + 1] = t >>> 8)) : O(this, t, e, !0), + e + 2 + ) + }), + (u.prototype.writeUInt16BE = function (t, e, n) { + return ( + (t = +t), + (e |= 0), + n || R(this, t, e, 2, 65535, 0), + u.TYPED_ARRAY_SUPPORT ? ((this[e] = t >>> 8), (this[e + 1] = 255 & t)) : O(this, t, e, !1), + e + 2 + ) + }), + (u.prototype.writeUInt32LE = function (t, e, n) { + return ( + (t = +t), + (e |= 0), + n || R(this, t, e, 4, 4294967295, 0), + u.TYPED_ARRAY_SUPPORT + ? ((this[e + 3] = t >>> 24), (this[e + 2] = t >>> 16), (this[e + 1] = t >>> 8), (this[e] = 255 & t)) + : B(this, t, e, !0), + e + 4 + ) + }), + (u.prototype.writeUInt32BE = function (t, e, n) { + return ( + (t = +t), + (e |= 0), + n || R(this, t, e, 4, 4294967295, 0), + u.TYPED_ARRAY_SUPPORT + ? ((this[e] = t >>> 24), (this[e + 1] = t >>> 16), (this[e + 2] = t >>> 8), (this[e + 3] = 255 & t)) + : B(this, t, e, !1), + e + 4 + ) + }), + (u.prototype.writeIntLE = function (t, e, n, r) { + if (((t = +t), (e |= 0), !r)) { + var i = Math.pow(2, 8 * n - 1) + R(this, t, e, n, i - 1, -i) + } + var o = 0, + s = 1, + a = 0 + for (this[e] = 255 & t; ++o < n && (s *= 256); ) + (t < 0 && 0 === a && 0 !== this[e + o - 1] && (a = 1), (this[e + o] = (((t / s) >> 0) - a) & 255)) + return e + n + }), + (u.prototype.writeIntBE = function (t, e, n, r) { + if (((t = +t), (e |= 0), !r)) { + var i = Math.pow(2, 8 * n - 1) + R(this, t, e, n, i - 1, -i) + } + var o = n - 1, + s = 1, + a = 0 + for (this[e + o] = 255 & t; --o >= 0 && (s *= 256); ) + (t < 0 && 0 === a && 0 !== this[e + o + 1] && (a = 1), (this[e + o] = (((t / s) >> 0) - a) & 255)) + return e + n + }), + (u.prototype.writeInt8 = function (t, e, n) { + return ( + (t = +t), + (e |= 0), + n || R(this, t, e, 1, 127, -128), + u.TYPED_ARRAY_SUPPORT || (t = Math.floor(t)), + t < 0 && (t = 255 + t + 1), + (this[e] = 255 & t), + e + 1 + ) + }), + (u.prototype.writeInt16LE = function (t, e, n) { + return ( + (t = +t), + (e |= 0), + n || R(this, t, e, 2, 32767, -32768), + u.TYPED_ARRAY_SUPPORT ? ((this[e] = 255 & t), (this[e + 1] = t >>> 8)) : O(this, t, e, !0), + e + 2 + ) + }), + (u.prototype.writeInt16BE = function (t, e, n) { + return ( + (t = +t), + (e |= 0), + n || R(this, t, e, 2, 32767, -32768), + u.TYPED_ARRAY_SUPPORT ? ((this[e] = t >>> 8), (this[e + 1] = 255 & t)) : O(this, t, e, !1), + e + 2 + ) + }), + (u.prototype.writeInt32LE = function (t, e, n) { + return ( + (t = +t), + (e |= 0), + n || R(this, t, e, 4, 2147483647, -2147483648), + u.TYPED_ARRAY_SUPPORT + ? ((this[e] = 255 & t), (this[e + 1] = t >>> 8), (this[e + 2] = t >>> 16), (this[e + 3] = t >>> 24)) + : B(this, t, e, !0), + e + 4 + ) + }), + (u.prototype.writeInt32BE = function (t, e, n) { + return ( + (t = +t), + (e |= 0), + n || R(this, t, e, 4, 2147483647, -2147483648), + t < 0 && (t = 4294967295 + t + 1), + u.TYPED_ARRAY_SUPPORT + ? ((this[e] = t >>> 24), (this[e + 1] = t >>> 16), (this[e + 2] = t >>> 8), (this[e + 3] = 255 & t)) + : B(this, t, e, !1), + e + 4 + ) + }), + (u.prototype.writeFloatLE = function (t, e, n) { + return P(this, t, e, !0, n) + }), + (u.prototype.writeFloatBE = function (t, e, n) { + return P(this, t, e, !1, n) + }), + (u.prototype.writeDoubleLE = function (t, e, n) { + return U(this, t, e, !0, n) + }), + (u.prototype.writeDoubleBE = function (t, e, n) { + return U(this, t, e, !1, n) + }), + (u.prototype.copy = function (t, e, n, r) { + if ((n || (n = 0), r || 0 === r || (r = this.length), e >= t.length && (e = t.length), e || (e = 0), r > 0 && r < n && (r = n), r === n)) + return 0 + if (0 === t.length || 0 === this.length) return 0 + if (e < 0) throw new RangeError('targetStart out of bounds') + if (n < 0 || n >= this.length) throw new RangeError('sourceStart out of bounds') + if (r < 0) throw new RangeError('sourceEnd out of bounds') + ;(r > this.length && (r = this.length), t.length - e < r - n && (r = t.length - e + n)) + var i, + o = r - n + if (this === t && n < e && e < r) for (i = o - 1; i >= 0; --i) t[i + e] = this[i + n] + else if (o < 1e3 || !u.TYPED_ARRAY_SUPPORT) for (i = 0; i < o; ++i) t[i + e] = this[i + n] + else Uint8Array.prototype.set.call(t, this.subarray(n, n + o), e) + return o + }), + (u.prototype.fill = function (t, e, n, r) { + if ('string' == typeof t) { + if ( + ('string' == typeof e ? ((r = e), (e = 0), (n = this.length)) : 'string' == typeof n && ((r = n), (n = this.length)), 1 === t.length) + ) { + var i = t.charCodeAt(0) + i < 256 && (t = i) + } + if (void 0 !== r && 'string' != typeof r) throw new TypeError('encoding must be a string') + if ('string' == typeof r && !u.isEncoding(r)) throw new TypeError('Unknown encoding: ' + r) + } else 'number' == typeof t && (t &= 255) + if (e < 0 || this.length < e || this.length < n) throw new RangeError('Out of range index') + if (n <= e) return this + var o + if (((e >>>= 0), (n = void 0 === n ? this.length : n >>> 0), t || (t = 0), 'number' == typeof t)) for (o = e; o < n; ++o) this[o] = t + else { + var s = u.isBuffer(t) ? t : C(new u(t, r).toString()), + a = s.length + for (o = 0; o < n - e; ++o) this[o + e] = s[o % a] + } + return this + })) + var F = /[^+\/0-9A-Za-z-_]/g + function j(t) { + return t < 16 ? '0' + t.toString(16) : t.toString(16) + } + function C(t, e) { + var n + e = e || 1 / 0 + for (var r = t.length, i = null, o = [], s = 0; s < r; ++s) { + if ((n = t.charCodeAt(s)) > 55295 && n < 57344) { + if (!i) { + if (n > 56319) { + ;(e -= 3) > -1 && o.push(239, 191, 189) + continue + } + if (s + 1 === r) { + ;(e -= 3) > -1 && o.push(239, 191, 189) + continue + } + i = n + continue + } + if (n < 56320) { + ;((e -= 3) > -1 && o.push(239, 191, 189), (i = n)) + continue + } + n = 65536 + (((i - 55296) << 10) | (n - 56320)) + } else i && (e -= 3) > -1 && o.push(239, 191, 189) + if (((i = null), n < 128)) { + if ((e -= 1) < 0) break + o.push(n) + } else if (n < 2048) { + if ((e -= 2) < 0) break + o.push((n >> 6) | 192, (63 & n) | 128) + } else if (n < 65536) { + if ((e -= 3) < 0) break + o.push((n >> 12) | 224, ((n >> 6) & 63) | 128, (63 & n) | 128) + } else { + if (!(n < 1114112)) throw new Error('Invalid code point') + if ((e -= 4) < 0) break + o.push((n >> 18) | 240, ((n >> 12) & 63) | 128, ((n >> 6) & 63) | 128, (63 & n) | 128) + } + } + return o + } + function D(t) { + return r.toByteArray( + (function (t) { + if ( + (t = (function (t) { + return t.trim ? t.trim() : t.replace(/^\s+|\s+$/g, '') + })(t).replace(F, '')).length < 2 + ) + return '' + for (; t.length % 4 != 0; ) t += '=' + return t + })(t), + ) + } + function q(t, e, n, r) { + for (var i = 0; i < r && !(i + n >= e.length || i >= t.length); ++i) e[i + n] = t[i] + return i + } + }).call(this, n(9)) + }, + function (t, e, n) { + var r = n(5), + i = r.Buffer + function o(t, e) { + for (var n in t) e[n] = t[n] + } + function s(t, e, n) { + return i(t, e, n) + } + ;(i.from && i.alloc && i.allocUnsafe && i.allocUnsafeSlow ? (t.exports = r) : (o(r, e), (e.Buffer = s)), + (s.prototype = Object.create(i.prototype)), + o(i, s), + (s.from = function (t, e, n) { + if ('number' == typeof t) throw new TypeError('Argument must not be a number') + return i(t, e, n) + }), + (s.alloc = function (t, e, n) { + if ('number' != typeof t) throw new TypeError('Argument must be a number') + var r = i(t) + return (void 0 !== e ? ('string' == typeof n ? r.fill(e, n) : r.fill(e)) : r.fill(0), r) + }), + (s.allocUnsafe = function (t) { + if ('number' != typeof t) throw new TypeError('Argument must be a number') + return i(t) + }), + (s.allocUnsafeSlow = function (t) { + if ('number' != typeof t) throw new TypeError('Argument must be a number') + return r.SlowBuffer(t) + })) + }, + function (t, e, n) { + 'use strict' + var r = n(14), + i = n(1) + function o(t, e) { + return 55296 == (64512 & t.charCodeAt(e)) && !(e < 0 || e + 1 >= t.length) && 56320 == (64512 & t.charCodeAt(e + 1)) + } + function s(t) { + return ((t >>> 24) | ((t >>> 8) & 65280) | ((t << 8) & 16711680) | ((255 & t) << 24)) >>> 0 + } + function a(t) { + return 1 === t.length ? '0' + t : t + } + function u(t) { + return 7 === t.length + ? '0' + t + : 6 === t.length + ? '00' + t + : 5 === t.length + ? '000' + t + : 4 === t.length + ? '0000' + t + : 3 === t.length + ? '00000' + t + : 2 === t.length + ? '000000' + t + : 1 === t.length + ? '0000000' + t + : t + } + ;((e.inherits = i), + (e.toArray = function (t, e) { + if (Array.isArray(t)) return t.slice() + if (!t) return [] + var n = [] + if ('string' == typeof t) + if (e) { + if ('hex' === e) + for ((t = t.replace(/[^a-z0-9]+/gi, '')).length % 2 != 0 && (t = '0' + t), i = 0; i < t.length; i += 2) + n.push(parseInt(t[i] + t[i + 1], 16)) + } else + for (var r = 0, i = 0; i < t.length; i++) { + var s = t.charCodeAt(i) + s < 128 + ? (n[r++] = s) + : s < 2048 + ? ((n[r++] = (s >> 6) | 192), (n[r++] = (63 & s) | 128)) + : o(t, i) + ? ((s = 65536 + ((1023 & s) << 10) + (1023 & t.charCodeAt(++i))), + (n[r++] = (s >> 18) | 240), + (n[r++] = ((s >> 12) & 63) | 128), + (n[r++] = ((s >> 6) & 63) | 128), + (n[r++] = (63 & s) | 128)) + : ((n[r++] = (s >> 12) | 224), (n[r++] = ((s >> 6) & 63) | 128), (n[r++] = (63 & s) | 128)) + } + else for (i = 0; i < t.length; i++) n[i] = 0 | t[i] + return n + }), + (e.toHex = function (t) { + for (var e = '', n = 0; n < t.length; n++) e += a(t[n].toString(16)) + return e + }), + (e.htonl = s), + (e.toHex32 = function (t, e) { + for (var n = '', r = 0; r < t.length; r++) { + var i = t[r] + ;('little' === e && (i = s(i)), (n += u(i.toString(16)))) + } + return n + }), + (e.zero2 = a), + (e.zero8 = u), + (e.join32 = function (t, e, n, i) { + var o = n - e + r(o % 4 == 0) + for (var s = new Array(o / 4), a = 0, u = e; a < s.length; a++, u += 4) { + var f + ;((f = + 'big' === i + ? (t[u] << 24) | (t[u + 1] << 16) | (t[u + 2] << 8) | t[u + 3] + : (t[u + 3] << 24) | (t[u + 2] << 16) | (t[u + 1] << 8) | t[u]), + (s[a] = f >>> 0)) + } + return s + }), + (e.split32 = function (t, e) { + for (var n = new Array(4 * t.length), r = 0, i = 0; r < t.length; r++, i += 4) { + var o = t[r] + 'big' === e + ? ((n[i] = o >>> 24), (n[i + 1] = (o >>> 16) & 255), (n[i + 2] = (o >>> 8) & 255), (n[i + 3] = 255 & o)) + : ((n[i + 3] = o >>> 24), (n[i + 2] = (o >>> 16) & 255), (n[i + 1] = (o >>> 8) & 255), (n[i] = 255 & o)) + } + return n + }), + (e.rotr32 = function (t, e) { + return (t >>> e) | (t << (32 - e)) + }), + (e.rotl32 = function (t, e) { + return (t << e) | (t >>> (32 - e)) + }), + (e.sum32 = function (t, e) { + return (t + e) >>> 0 + }), + (e.sum32_3 = function (t, e, n) { + return (t + e + n) >>> 0 + }), + (e.sum32_4 = function (t, e, n, r) { + return (t + e + n + r) >>> 0 + }), + (e.sum32_5 = function (t, e, n, r, i) { + return (t + e + n + r + i) >>> 0 + }), + (e.sum64 = function (t, e, n, r) { + var i = t[e], + o = (r + t[e + 1]) >>> 0, + s = (o < r ? 1 : 0) + n + i + ;((t[e] = s >>> 0), (t[e + 1] = o)) + }), + (e.sum64_hi = function (t, e, n, r) { + return (((e + r) >>> 0 < e ? 1 : 0) + t + n) >>> 0 + }), + (e.sum64_lo = function (t, e, n, r) { + return (e + r) >>> 0 + }), + (e.sum64_4_hi = function (t, e, n, r, i, o, s, a) { + var u = 0, + f = e + return ( + (u += (f = (f + r) >>> 0) < e ? 1 : 0), + (u += (f = (f + o) >>> 0) < o ? 1 : 0), + (t + n + i + s + (u += (f = (f + a) >>> 0) < a ? 1 : 0)) >>> 0 + ) + }), + (e.sum64_4_lo = function (t, e, n, r, i, o, s, a) { + return (e + r + o + a) >>> 0 + }), + (e.sum64_5_hi = function (t, e, n, r, i, o, s, a, u, f) { + var c = 0, + h = e + return ( + (c += (h = (h + r) >>> 0) < e ? 1 : 0), + (c += (h = (h + o) >>> 0) < o ? 1 : 0), + (c += (h = (h + a) >>> 0) < a ? 1 : 0), + (t + n + i + s + u + (c += (h = (h + f) >>> 0) < f ? 1 : 0)) >>> 0 + ) + }), + (e.sum64_5_lo = function (t, e, n, r, i, o, s, a, u, f) { + return (e + r + o + a + f) >>> 0 + }), + (e.rotr64_hi = function (t, e, n) { + return ((e << (32 - n)) | (t >>> n)) >>> 0 + }), + (e.rotr64_lo = function (t, e, n) { + return ((t << (32 - n)) | (e >>> n)) >>> 0 + }), + (e.shr64_hi = function (t, e, n) { + return t >>> n + }), + (e.shr64_lo = function (t, e, n) { + return ((t << (32 - n)) | (e >>> n)) >>> 0 + })) + }, + function (t, e, n) { + ;(function (t) { + !(function (t, e) { + 'use strict' + function r(t, e) { + if (!t) throw new Error(e || 'Assertion failed') + } + function i(t, e) { + t.super_ = e + var n = function () {} + ;((n.prototype = e.prototype), (t.prototype = new n()), (t.prototype.constructor = t)) + } + function o(t, e, n) { + if (o.isBN(t)) return t + ;((this.negative = 0), + (this.words = null), + (this.length = 0), + (this.red = null), + null !== t && (('le' !== e && 'be' !== e) || ((n = e), (e = 10)), this._init(t || 0, e || 10, n || 'be'))) + } + var s + ;('object' == typeof t ? (t.exports = o) : (e.BN = o), (o.BN = o), (o.wordSize = 26)) + try { + s = n(118).Buffer + } catch (t) {} + function a(t, e, n) { + for (var r = 0, i = Math.min(t.length, n), o = e; o < i; o++) { + var s = t.charCodeAt(o) - 48 + ;((r <<= 4), (r |= s >= 49 && s <= 54 ? s - 49 + 10 : s >= 17 && s <= 22 ? s - 17 + 10 : 15 & s)) + } + return r + } + function u(t, e, n, r) { + for (var i = 0, o = Math.min(t.length, n), s = e; s < o; s++) { + var a = t.charCodeAt(s) - 48 + ;((i *= r), (i += a >= 49 ? a - 49 + 10 : a >= 17 ? a - 17 + 10 : a)) + } + return i + } + ;((o.isBN = function (t) { + return t instanceof o || (null !== t && 'object' == typeof t && t.constructor.wordSize === o.wordSize && Array.isArray(t.words)) + }), + (o.max = function (t, e) { + return t.cmp(e) > 0 ? t : e + }), + (o.min = function (t, e) { + return t.cmp(e) < 0 ? t : e + }), + (o.prototype._init = function (t, e, n) { + if ('number' == typeof t) return this._initNumber(t, e, n) + if ('object' == typeof t) return this._initArray(t, e, n) + ;('hex' === e && (e = 16), r(e === (0 | e) && e >= 2 && e <= 36)) + var i = 0 + ;('-' === (t = t.toString().replace(/\s+/g, ''))[0] && i++, + 16 === e ? this._parseHex(t, i) : this._parseBase(t, e, i), + '-' === t[0] && (this.negative = 1), + this.strip(), + 'le' === n && this._initArray(this.toArray(), e, n)) + }), + (o.prototype._initNumber = function (t, e, n) { + ;(t < 0 && ((this.negative = 1), (t = -t)), + t < 67108864 + ? ((this.words = [67108863 & t]), (this.length = 1)) + : t < 4503599627370496 + ? ((this.words = [67108863 & t, (t / 67108864) & 67108863]), (this.length = 2)) + : (r(t < 9007199254740992), (this.words = [67108863 & t, (t / 67108864) & 67108863, 1]), (this.length = 3)), + 'le' === n && this._initArray(this.toArray(), e, n)) + }), + (o.prototype._initArray = function (t, e, n) { + if ((r('number' == typeof t.length), t.length <= 0)) return ((this.words = [0]), (this.length = 1), this) + ;((this.length = Math.ceil(t.length / 3)), (this.words = new Array(this.length))) + for (var i = 0; i < this.length; i++) this.words[i] = 0 + var o, + s, + a = 0 + if ('be' === n) + for (i = t.length - 1, o = 0; i >= 0; i -= 3) + ((s = t[i] | (t[i - 1] << 8) | (t[i - 2] << 16)), + (this.words[o] |= (s << a) & 67108863), + (this.words[o + 1] = (s >>> (26 - a)) & 67108863), + (a += 24) >= 26 && ((a -= 26), o++)) + else if ('le' === n) + for (i = 0, o = 0; i < t.length; i += 3) + ((s = t[i] | (t[i + 1] << 8) | (t[i + 2] << 16)), + (this.words[o] |= (s << a) & 67108863), + (this.words[o + 1] = (s >>> (26 - a)) & 67108863), + (a += 24) >= 26 && ((a -= 26), o++)) + return this.strip() + }), + (o.prototype._parseHex = function (t, e) { + ;((this.length = Math.ceil((t.length - e) / 6)), (this.words = new Array(this.length))) + for (var n = 0; n < this.length; n++) this.words[n] = 0 + var r, + i, + o = 0 + for (n = t.length - 6, r = 0; n >= e; n -= 6) + ((i = a(t, n, n + 6)), + (this.words[r] |= (i << o) & 67108863), + (this.words[r + 1] |= (i >>> (26 - o)) & 4194303), + (o += 24) >= 26 && ((o -= 26), r++)) + ;(n + 6 !== e && ((i = a(t, e, n + 6)), (this.words[r] |= (i << o) & 67108863), (this.words[r + 1] |= (i >>> (26 - o)) & 4194303)), + this.strip()) + }), + (o.prototype._parseBase = function (t, e, n) { + ;((this.words = [0]), (this.length = 1)) + for (var r = 0, i = 1; i <= 67108863; i *= e) r++ + ;(r--, (i = (i / e) | 0)) + for (var o = t.length - n, s = o % r, a = Math.min(o, o - s) + n, f = 0, c = n; c < a; c += r) + ((f = u(t, c, c + r, e)), this.imuln(i), this.words[0] + f < 67108864 ? (this.words[0] += f) : this._iaddn(f)) + if (0 !== s) { + var h = 1 + for (f = u(t, c, t.length, e), c = 0; c < s; c++) h *= e + ;(this.imuln(h), this.words[0] + f < 67108864 ? (this.words[0] += f) : this._iaddn(f)) + } + }), + (o.prototype.copy = function (t) { + t.words = new Array(this.length) + for (var e = 0; e < this.length; e++) t.words[e] = this.words[e] + ;((t.length = this.length), (t.negative = this.negative), (t.red = this.red)) + }), + (o.prototype.clone = function () { + var t = new o(null) + return (this.copy(t), t) + }), + (o.prototype._expand = function (t) { + for (; this.length < t; ) this.words[this.length++] = 0 + return this + }), + (o.prototype.strip = function () { + for (; this.length > 1 && 0 === this.words[this.length - 1]; ) this.length-- + return this._normSign() + }), + (o.prototype._normSign = function () { + return (1 === this.length && 0 === this.words[0] && (this.negative = 0), this) + }), + (o.prototype.inspect = function () { + return (this.red ? '<BN-R: ' : '<BN: ') + this.toString(16) + '>' + })) + var f = [ + '', + '0', + '00', + '000', + '0000', + '00000', + '000000', + '0000000', + '00000000', + '000000000', + '0000000000', + '00000000000', + '000000000000', + '0000000000000', + '00000000000000', + '000000000000000', + '0000000000000000', + '00000000000000000', + '000000000000000000', + '0000000000000000000', + '00000000000000000000', + '000000000000000000000', + '0000000000000000000000', + '00000000000000000000000', + '000000000000000000000000', + '0000000000000000000000000', + ], + c = [0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5], + h = [ + 0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, 1e7, 19487171, 35831808, 62748517, 7529536, + 11390625, 16777216, 24137569, 34012224, 47045881, 64e6, 4084101, 5153632, 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, + 20511149, 243e5, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176, + ] + function d(t, e, n) { + n.negative = e.negative ^ t.negative + var r = (t.length + e.length) | 0 + ;((n.length = r), (r = (r - 1) | 0)) + var i = 0 | t.words[0], + o = 0 | e.words[0], + s = i * o, + a = 67108863 & s, + u = (s / 67108864) | 0 + n.words[0] = a + for (var f = 1; f < r; f++) { + for (var c = u >>> 26, h = 67108863 & u, d = Math.min(f, e.length - 1), l = Math.max(0, f - t.length + 1); l <= d; l++) { + var p = (f - l) | 0 + ;((c += ((s = (i = 0 | t.words[p]) * (o = 0 | e.words[l]) + h) / 67108864) | 0), (h = 67108863 & s)) + } + ;((n.words[f] = 0 | h), (u = 0 | c)) + } + return (0 !== u ? (n.words[f] = 0 | u) : n.length--, n.strip()) + } + ;((o.prototype.toString = function (t, e) { + var n + if (((e = 0 | e || 1), 16 === (t = t || 10) || 'hex' === t)) { + n = '' + for (var i = 0, o = 0, s = 0; s < this.length; s++) { + var a = this.words[s], + u = (16777215 & ((a << i) | o)).toString(16) + ;((n = 0 !== (o = (a >>> (24 - i)) & 16777215) || s !== this.length - 1 ? f[6 - u.length] + u + n : u + n), + (i += 2) >= 26 && ((i -= 26), s--)) + } + for (0 !== o && (n = o.toString(16) + n); n.length % e != 0; ) n = '0' + n + return (0 !== this.negative && (n = '-' + n), n) + } + if (t === (0 | t) && t >= 2 && t <= 36) { + var d = c[t], + l = h[t] + n = '' + var p = this.clone() + for (p.negative = 0; !p.isZero(); ) { + var b = p.modn(l).toString(t) + n = (p = p.idivn(l)).isZero() ? b + n : f[d - b.length] + b + n + } + for (this.isZero() && (n = '0' + n); n.length % e != 0; ) n = '0' + n + return (0 !== this.negative && (n = '-' + n), n) + } + r(!1, 'Base should be between 2 and 36') + }), + (o.prototype.toNumber = function () { + var t = this.words[0] + return ( + 2 === this.length + ? (t += 67108864 * this.words[1]) + : 3 === this.length && 1 === this.words[2] + ? (t += 4503599627370496 + 67108864 * this.words[1]) + : this.length > 2 && r(!1, 'Number can only safely store up to 53 bits'), + 0 !== this.negative ? -t : t + ) + }), + (o.prototype.toJSON = function () { + return this.toString(16) + }), + (o.prototype.toBuffer = function (t, e) { + return (r(void 0 !== s), this.toArrayLike(s, t, e)) + }), + (o.prototype.toArray = function (t, e) { + return this.toArrayLike(Array, t, e) + }), + (o.prototype.toArrayLike = function (t, e, n) { + var i = this.byteLength(), + o = n || Math.max(1, i) + ;(r(i <= o, 'byte array longer than desired length'), r(o > 0, 'Requested array length <= 0'), this.strip()) + var s, + a, + u = 'le' === e, + f = new t(o), + c = this.clone() + if (u) { + for (a = 0; !c.isZero(); a++) ((s = c.andln(255)), c.iushrn(8), (f[a] = s)) + for (; a < o; a++) f[a] = 0 + } else { + for (a = 0; a < o - i; a++) f[a] = 0 + for (a = 0; !c.isZero(); a++) ((s = c.andln(255)), c.iushrn(8), (f[o - a - 1] = s)) + } + return f + }), + Math.clz32 + ? (o.prototype._countBits = function (t) { + return 32 - Math.clz32(t) + }) + : (o.prototype._countBits = function (t) { + var e = t, + n = 0 + return ( + e >= 4096 && ((n += 13), (e >>>= 13)), + e >= 64 && ((n += 7), (e >>>= 7)), + e >= 8 && ((n += 4), (e >>>= 4)), + e >= 2 && ((n += 2), (e >>>= 2)), + n + e + ) + }), + (o.prototype._zeroBits = function (t) { + if (0 === t) return 26 + var e = t, + n = 0 + return ( + 0 == (8191 & e) && ((n += 13), (e >>>= 13)), + 0 == (127 & e) && ((n += 7), (e >>>= 7)), + 0 == (15 & e) && ((n += 4), (e >>>= 4)), + 0 == (3 & e) && ((n += 2), (e >>>= 2)), + 0 == (1 & e) && n++, + n + ) + }), + (o.prototype.bitLength = function () { + var t = this.words[this.length - 1], + e = this._countBits(t) + return 26 * (this.length - 1) + e + }), + (o.prototype.zeroBits = function () { + if (this.isZero()) return 0 + for (var t = 0, e = 0; e < this.length; e++) { + var n = this._zeroBits(this.words[e]) + if (((t += n), 26 !== n)) break + } + return t + }), + (o.prototype.byteLength = function () { + return Math.ceil(this.bitLength() / 8) + }), + (o.prototype.toTwos = function (t) { + return 0 !== this.negative ? this.abs().inotn(t).iaddn(1) : this.clone() + }), + (o.prototype.fromTwos = function (t) { + return this.testn(t - 1) ? this.notn(t).iaddn(1).ineg() : this.clone() + }), + (o.prototype.isNeg = function () { + return 0 !== this.negative + }), + (o.prototype.neg = function () { + return this.clone().ineg() + }), + (o.prototype.ineg = function () { + return (this.isZero() || (this.negative ^= 1), this) + }), + (o.prototype.iuor = function (t) { + for (; this.length < t.length; ) this.words[this.length++] = 0 + for (var e = 0; e < t.length; e++) this.words[e] = this.words[e] | t.words[e] + return this.strip() + }), + (o.prototype.ior = function (t) { + return (r(0 == (this.negative | t.negative)), this.iuor(t)) + }), + (o.prototype.or = function (t) { + return this.length > t.length ? this.clone().ior(t) : t.clone().ior(this) + }), + (o.prototype.uor = function (t) { + return this.length > t.length ? this.clone().iuor(t) : t.clone().iuor(this) + }), + (o.prototype.iuand = function (t) { + var e + e = this.length > t.length ? t : this + for (var n = 0; n < e.length; n++) this.words[n] = this.words[n] & t.words[n] + return ((this.length = e.length), this.strip()) + }), + (o.prototype.iand = function (t) { + return (r(0 == (this.negative | t.negative)), this.iuand(t)) + }), + (o.prototype.and = function (t) { + return this.length > t.length ? this.clone().iand(t) : t.clone().iand(this) + }), + (o.prototype.uand = function (t) { + return this.length > t.length ? this.clone().iuand(t) : t.clone().iuand(this) + }), + (o.prototype.iuxor = function (t) { + var e, n + this.length > t.length ? ((e = this), (n = t)) : ((e = t), (n = this)) + for (var r = 0; r < n.length; r++) this.words[r] = e.words[r] ^ n.words[r] + if (this !== e) for (; r < e.length; r++) this.words[r] = e.words[r] + return ((this.length = e.length), this.strip()) + }), + (o.prototype.ixor = function (t) { + return (r(0 == (this.negative | t.negative)), this.iuxor(t)) + }), + (o.prototype.xor = function (t) { + return this.length > t.length ? this.clone().ixor(t) : t.clone().ixor(this) + }), + (o.prototype.uxor = function (t) { + return this.length > t.length ? this.clone().iuxor(t) : t.clone().iuxor(this) + }), + (o.prototype.inotn = function (t) { + r('number' == typeof t && t >= 0) + var e = 0 | Math.ceil(t / 26), + n = t % 26 + ;(this._expand(e), n > 0 && e--) + for (var i = 0; i < e; i++) this.words[i] = 67108863 & ~this.words[i] + return (n > 0 && (this.words[i] = ~this.words[i] & (67108863 >> (26 - n))), this.strip()) + }), + (o.prototype.notn = function (t) { + return this.clone().inotn(t) + }), + (o.prototype.setn = function (t, e) { + r('number' == typeof t && t >= 0) + var n = (t / 26) | 0, + i = t % 26 + return (this._expand(n + 1), (this.words[n] = e ? this.words[n] | (1 << i) : this.words[n] & ~(1 << i)), this.strip()) + }), + (o.prototype.iadd = function (t) { + var e, n, r + if (0 !== this.negative && 0 === t.negative) return ((this.negative = 0), (e = this.isub(t)), (this.negative ^= 1), this._normSign()) + if (0 === this.negative && 0 !== t.negative) return ((t.negative = 0), (e = this.isub(t)), (t.negative = 1), e._normSign()) + this.length > t.length ? ((n = this), (r = t)) : ((n = t), (r = this)) + for (var i = 0, o = 0; o < r.length; o++) ((e = (0 | n.words[o]) + (0 | r.words[o]) + i), (this.words[o] = 67108863 & e), (i = e >>> 26)) + for (; 0 !== i && o < n.length; o++) ((e = (0 | n.words[o]) + i), (this.words[o] = 67108863 & e), (i = e >>> 26)) + if (((this.length = n.length), 0 !== i)) ((this.words[this.length] = i), this.length++) + else if (n !== this) for (; o < n.length; o++) this.words[o] = n.words[o] + return this + }), + (o.prototype.add = function (t) { + var e + return 0 !== t.negative && 0 === this.negative + ? ((t.negative = 0), (e = this.sub(t)), (t.negative ^= 1), e) + : 0 === t.negative && 0 !== this.negative + ? ((this.negative = 0), (e = t.sub(this)), (this.negative = 1), e) + : this.length > t.length + ? this.clone().iadd(t) + : t.clone().iadd(this) + }), + (o.prototype.isub = function (t) { + if (0 !== t.negative) { + t.negative = 0 + var e = this.iadd(t) + return ((t.negative = 1), e._normSign()) + } + if (0 !== this.negative) return ((this.negative = 0), this.iadd(t), (this.negative = 1), this._normSign()) + var n, + r, + i = this.cmp(t) + if (0 === i) return ((this.negative = 0), (this.length = 1), (this.words[0] = 0), this) + i > 0 ? ((n = this), (r = t)) : ((n = t), (r = this)) + for (var o = 0, s = 0; s < r.length; s++) ((o = (e = (0 | n.words[s]) - (0 | r.words[s]) + o) >> 26), (this.words[s] = 67108863 & e)) + for (; 0 !== o && s < n.length; s++) ((o = (e = (0 | n.words[s]) + o) >> 26), (this.words[s] = 67108863 & e)) + if (0 === o && s < n.length && n !== this) for (; s < n.length; s++) this.words[s] = n.words[s] + return ((this.length = Math.max(this.length, s)), n !== this && (this.negative = 1), this.strip()) + }), + (o.prototype.sub = function (t) { + return this.clone().isub(t) + })) + var l = function (t, e, n) { + var r, + i, + o, + s = t.words, + a = e.words, + u = n.words, + f = 0, + c = 0 | s[0], + h = 8191 & c, + d = c >>> 13, + l = 0 | s[1], + p = 8191 & l, + b = l >>> 13, + g = 0 | s[2], + v = 8191 & g, + m = g >>> 13, + y = 0 | s[3], + w = 8191 & y, + _ = y >>> 13, + S = 0 | s[4], + M = 8191 & S, + E = S >>> 13, + A = 0 | s[5], + x = 8191 & A, + I = A >>> 13, + T = 0 | s[6], + k = 8191 & T, + L = T >>> 13, + N = 0 | s[7], + R = 8191 & N, + O = N >>> 13, + B = 0 | s[8], + z = 8191 & B, + P = B >>> 13, + U = 0 | s[9], + F = 8191 & U, + j = U >>> 13, + C = 0 | a[0], + D = 8191 & C, + q = C >>> 13, + V = 0 | a[1], + H = 8191 & V, + W = V >>> 13, + Z = 0 | a[2], + Y = 8191 & Z, + J = Z >>> 13, + K = 0 | a[3], + $ = 8191 & K, + X = K >>> 13, + G = 0 | a[4], + Q = 8191 & G, + tt = G >>> 13, + et = 0 | a[5], + nt = 8191 & et, + rt = et >>> 13, + it = 0 | a[6], + ot = 8191 & it, + st = it >>> 13, + at = 0 | a[7], + ut = 8191 & at, + ft = at >>> 13, + ct = 0 | a[8], + ht = 8191 & ct, + dt = ct >>> 13, + lt = 0 | a[9], + pt = 8191 & lt, + bt = lt >>> 13 + ;((n.negative = t.negative ^ e.negative), (n.length = 19)) + var gt = (((f + (r = Math.imul(h, D))) | 0) + ((8191 & (i = ((i = Math.imul(h, q)) + Math.imul(d, D)) | 0)) << 13)) | 0 + ;((f = ((((o = Math.imul(d, q)) + (i >>> 13)) | 0) + (gt >>> 26)) | 0), + (gt &= 67108863), + (r = Math.imul(p, D)), + (i = ((i = Math.imul(p, q)) + Math.imul(b, D)) | 0), + (o = Math.imul(b, q))) + var vt = (((f + (r = (r + Math.imul(h, H)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(h, W)) | 0) + Math.imul(d, H)) | 0)) << 13)) | 0 + ;((f = ((((o = (o + Math.imul(d, W)) | 0) + (i >>> 13)) | 0) + (vt >>> 26)) | 0), + (vt &= 67108863), + (r = Math.imul(v, D)), + (i = ((i = Math.imul(v, q)) + Math.imul(m, D)) | 0), + (o = Math.imul(m, q)), + (r = (r + Math.imul(p, H)) | 0), + (i = ((i = (i + Math.imul(p, W)) | 0) + Math.imul(b, H)) | 0), + (o = (o + Math.imul(b, W)) | 0)) + var mt = (((f + (r = (r + Math.imul(h, Y)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(h, J)) | 0) + Math.imul(d, Y)) | 0)) << 13)) | 0 + ;((f = ((((o = (o + Math.imul(d, J)) | 0) + (i >>> 13)) | 0) + (mt >>> 26)) | 0), + (mt &= 67108863), + (r = Math.imul(w, D)), + (i = ((i = Math.imul(w, q)) + Math.imul(_, D)) | 0), + (o = Math.imul(_, q)), + (r = (r + Math.imul(v, H)) | 0), + (i = ((i = (i + Math.imul(v, W)) | 0) + Math.imul(m, H)) | 0), + (o = (o + Math.imul(m, W)) | 0), + (r = (r + Math.imul(p, Y)) | 0), + (i = ((i = (i + Math.imul(p, J)) | 0) + Math.imul(b, Y)) | 0), + (o = (o + Math.imul(b, J)) | 0)) + var yt = (((f + (r = (r + Math.imul(h, $)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(h, X)) | 0) + Math.imul(d, $)) | 0)) << 13)) | 0 + ;((f = ((((o = (o + Math.imul(d, X)) | 0) + (i >>> 13)) | 0) + (yt >>> 26)) | 0), + (yt &= 67108863), + (r = Math.imul(M, D)), + (i = ((i = Math.imul(M, q)) + Math.imul(E, D)) | 0), + (o = Math.imul(E, q)), + (r = (r + Math.imul(w, H)) | 0), + (i = ((i = (i + Math.imul(w, W)) | 0) + Math.imul(_, H)) | 0), + (o = (o + Math.imul(_, W)) | 0), + (r = (r + Math.imul(v, Y)) | 0), + (i = ((i = (i + Math.imul(v, J)) | 0) + Math.imul(m, Y)) | 0), + (o = (o + Math.imul(m, J)) | 0), + (r = (r + Math.imul(p, $)) | 0), + (i = ((i = (i + Math.imul(p, X)) | 0) + Math.imul(b, $)) | 0), + (o = (o + Math.imul(b, X)) | 0)) + var wt = (((f + (r = (r + Math.imul(h, Q)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(h, tt)) | 0) + Math.imul(d, Q)) | 0)) << 13)) | 0 + ;((f = ((((o = (o + Math.imul(d, tt)) | 0) + (i >>> 13)) | 0) + (wt >>> 26)) | 0), + (wt &= 67108863), + (r = Math.imul(x, D)), + (i = ((i = Math.imul(x, q)) + Math.imul(I, D)) | 0), + (o = Math.imul(I, q)), + (r = (r + Math.imul(M, H)) | 0), + (i = ((i = (i + Math.imul(M, W)) | 0) + Math.imul(E, H)) | 0), + (o = (o + Math.imul(E, W)) | 0), + (r = (r + Math.imul(w, Y)) | 0), + (i = ((i = (i + Math.imul(w, J)) | 0) + Math.imul(_, Y)) | 0), + (o = (o + Math.imul(_, J)) | 0), + (r = (r + Math.imul(v, $)) | 0), + (i = ((i = (i + Math.imul(v, X)) | 0) + Math.imul(m, $)) | 0), + (o = (o + Math.imul(m, X)) | 0), + (r = (r + Math.imul(p, Q)) | 0), + (i = ((i = (i + Math.imul(p, tt)) | 0) + Math.imul(b, Q)) | 0), + (o = (o + Math.imul(b, tt)) | 0)) + var _t = + (((f + (r = (r + Math.imul(h, nt)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(h, rt)) | 0) + Math.imul(d, nt)) | 0)) << 13)) | 0 + ;((f = ((((o = (o + Math.imul(d, rt)) | 0) + (i >>> 13)) | 0) + (_t >>> 26)) | 0), + (_t &= 67108863), + (r = Math.imul(k, D)), + (i = ((i = Math.imul(k, q)) + Math.imul(L, D)) | 0), + (o = Math.imul(L, q)), + (r = (r + Math.imul(x, H)) | 0), + (i = ((i = (i + Math.imul(x, W)) | 0) + Math.imul(I, H)) | 0), + (o = (o + Math.imul(I, W)) | 0), + (r = (r + Math.imul(M, Y)) | 0), + (i = ((i = (i + Math.imul(M, J)) | 0) + Math.imul(E, Y)) | 0), + (o = (o + Math.imul(E, J)) | 0), + (r = (r + Math.imul(w, $)) | 0), + (i = ((i = (i + Math.imul(w, X)) | 0) + Math.imul(_, $)) | 0), + (o = (o + Math.imul(_, X)) | 0), + (r = (r + Math.imul(v, Q)) | 0), + (i = ((i = (i + Math.imul(v, tt)) | 0) + Math.imul(m, Q)) | 0), + (o = (o + Math.imul(m, tt)) | 0), + (r = (r + Math.imul(p, nt)) | 0), + (i = ((i = (i + Math.imul(p, rt)) | 0) + Math.imul(b, nt)) | 0), + (o = (o + Math.imul(b, rt)) | 0)) + var St = + (((f + (r = (r + Math.imul(h, ot)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(h, st)) | 0) + Math.imul(d, ot)) | 0)) << 13)) | 0 + ;((f = ((((o = (o + Math.imul(d, st)) | 0) + (i >>> 13)) | 0) + (St >>> 26)) | 0), + (St &= 67108863), + (r = Math.imul(R, D)), + (i = ((i = Math.imul(R, q)) + Math.imul(O, D)) | 0), + (o = Math.imul(O, q)), + (r = (r + Math.imul(k, H)) | 0), + (i = ((i = (i + Math.imul(k, W)) | 0) + Math.imul(L, H)) | 0), + (o = (o + Math.imul(L, W)) | 0), + (r = (r + Math.imul(x, Y)) | 0), + (i = ((i = (i + Math.imul(x, J)) | 0) + Math.imul(I, Y)) | 0), + (o = (o + Math.imul(I, J)) | 0), + (r = (r + Math.imul(M, $)) | 0), + (i = ((i = (i + Math.imul(M, X)) | 0) + Math.imul(E, $)) | 0), + (o = (o + Math.imul(E, X)) | 0), + (r = (r + Math.imul(w, Q)) | 0), + (i = ((i = (i + Math.imul(w, tt)) | 0) + Math.imul(_, Q)) | 0), + (o = (o + Math.imul(_, tt)) | 0), + (r = (r + Math.imul(v, nt)) | 0), + (i = ((i = (i + Math.imul(v, rt)) | 0) + Math.imul(m, nt)) | 0), + (o = (o + Math.imul(m, rt)) | 0), + (r = (r + Math.imul(p, ot)) | 0), + (i = ((i = (i + Math.imul(p, st)) | 0) + Math.imul(b, ot)) | 0), + (o = (o + Math.imul(b, st)) | 0)) + var Mt = + (((f + (r = (r + Math.imul(h, ut)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(h, ft)) | 0) + Math.imul(d, ut)) | 0)) << 13)) | 0 + ;((f = ((((o = (o + Math.imul(d, ft)) | 0) + (i >>> 13)) | 0) + (Mt >>> 26)) | 0), + (Mt &= 67108863), + (r = Math.imul(z, D)), + (i = ((i = Math.imul(z, q)) + Math.imul(P, D)) | 0), + (o = Math.imul(P, q)), + (r = (r + Math.imul(R, H)) | 0), + (i = ((i = (i + Math.imul(R, W)) | 0) + Math.imul(O, H)) | 0), + (o = (o + Math.imul(O, W)) | 0), + (r = (r + Math.imul(k, Y)) | 0), + (i = ((i = (i + Math.imul(k, J)) | 0) + Math.imul(L, Y)) | 0), + (o = (o + Math.imul(L, J)) | 0), + (r = (r + Math.imul(x, $)) | 0), + (i = ((i = (i + Math.imul(x, X)) | 0) + Math.imul(I, $)) | 0), + (o = (o + Math.imul(I, X)) | 0), + (r = (r + Math.imul(M, Q)) | 0), + (i = ((i = (i + Math.imul(M, tt)) | 0) + Math.imul(E, Q)) | 0), + (o = (o + Math.imul(E, tt)) | 0), + (r = (r + Math.imul(w, nt)) | 0), + (i = ((i = (i + Math.imul(w, rt)) | 0) + Math.imul(_, nt)) | 0), + (o = (o + Math.imul(_, rt)) | 0), + (r = (r + Math.imul(v, ot)) | 0), + (i = ((i = (i + Math.imul(v, st)) | 0) + Math.imul(m, ot)) | 0), + (o = (o + Math.imul(m, st)) | 0), + (r = (r + Math.imul(p, ut)) | 0), + (i = ((i = (i + Math.imul(p, ft)) | 0) + Math.imul(b, ut)) | 0), + (o = (o + Math.imul(b, ft)) | 0)) + var Et = + (((f + (r = (r + Math.imul(h, ht)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(h, dt)) | 0) + Math.imul(d, ht)) | 0)) << 13)) | 0 + ;((f = ((((o = (o + Math.imul(d, dt)) | 0) + (i >>> 13)) | 0) + (Et >>> 26)) | 0), + (Et &= 67108863), + (r = Math.imul(F, D)), + (i = ((i = Math.imul(F, q)) + Math.imul(j, D)) | 0), + (o = Math.imul(j, q)), + (r = (r + Math.imul(z, H)) | 0), + (i = ((i = (i + Math.imul(z, W)) | 0) + Math.imul(P, H)) | 0), + (o = (o + Math.imul(P, W)) | 0), + (r = (r + Math.imul(R, Y)) | 0), + (i = ((i = (i + Math.imul(R, J)) | 0) + Math.imul(O, Y)) | 0), + (o = (o + Math.imul(O, J)) | 0), + (r = (r + Math.imul(k, $)) | 0), + (i = ((i = (i + Math.imul(k, X)) | 0) + Math.imul(L, $)) | 0), + (o = (o + Math.imul(L, X)) | 0), + (r = (r + Math.imul(x, Q)) | 0), + (i = ((i = (i + Math.imul(x, tt)) | 0) + Math.imul(I, Q)) | 0), + (o = (o + Math.imul(I, tt)) | 0), + (r = (r + Math.imul(M, nt)) | 0), + (i = ((i = (i + Math.imul(M, rt)) | 0) + Math.imul(E, nt)) | 0), + (o = (o + Math.imul(E, rt)) | 0), + (r = (r + Math.imul(w, ot)) | 0), + (i = ((i = (i + Math.imul(w, st)) | 0) + Math.imul(_, ot)) | 0), + (o = (o + Math.imul(_, st)) | 0), + (r = (r + Math.imul(v, ut)) | 0), + (i = ((i = (i + Math.imul(v, ft)) | 0) + Math.imul(m, ut)) | 0), + (o = (o + Math.imul(m, ft)) | 0), + (r = (r + Math.imul(p, ht)) | 0), + (i = ((i = (i + Math.imul(p, dt)) | 0) + Math.imul(b, ht)) | 0), + (o = (o + Math.imul(b, dt)) | 0)) + var At = + (((f + (r = (r + Math.imul(h, pt)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(h, bt)) | 0) + Math.imul(d, pt)) | 0)) << 13)) | 0 + ;((f = ((((o = (o + Math.imul(d, bt)) | 0) + (i >>> 13)) | 0) + (At >>> 26)) | 0), + (At &= 67108863), + (r = Math.imul(F, H)), + (i = ((i = Math.imul(F, W)) + Math.imul(j, H)) | 0), + (o = Math.imul(j, W)), + (r = (r + Math.imul(z, Y)) | 0), + (i = ((i = (i + Math.imul(z, J)) | 0) + Math.imul(P, Y)) | 0), + (o = (o + Math.imul(P, J)) | 0), + (r = (r + Math.imul(R, $)) | 0), + (i = ((i = (i + Math.imul(R, X)) | 0) + Math.imul(O, $)) | 0), + (o = (o + Math.imul(O, X)) | 0), + (r = (r + Math.imul(k, Q)) | 0), + (i = ((i = (i + Math.imul(k, tt)) | 0) + Math.imul(L, Q)) | 0), + (o = (o + Math.imul(L, tt)) | 0), + (r = (r + Math.imul(x, nt)) | 0), + (i = ((i = (i + Math.imul(x, rt)) | 0) + Math.imul(I, nt)) | 0), + (o = (o + Math.imul(I, rt)) | 0), + (r = (r + Math.imul(M, ot)) | 0), + (i = ((i = (i + Math.imul(M, st)) | 0) + Math.imul(E, ot)) | 0), + (o = (o + Math.imul(E, st)) | 0), + (r = (r + Math.imul(w, ut)) | 0), + (i = ((i = (i + Math.imul(w, ft)) | 0) + Math.imul(_, ut)) | 0), + (o = (o + Math.imul(_, ft)) | 0), + (r = (r + Math.imul(v, ht)) | 0), + (i = ((i = (i + Math.imul(v, dt)) | 0) + Math.imul(m, ht)) | 0), + (o = (o + Math.imul(m, dt)) | 0)) + var xt = + (((f + (r = (r + Math.imul(p, pt)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(p, bt)) | 0) + Math.imul(b, pt)) | 0)) << 13)) | 0 + ;((f = ((((o = (o + Math.imul(b, bt)) | 0) + (i >>> 13)) | 0) + (xt >>> 26)) | 0), + (xt &= 67108863), + (r = Math.imul(F, Y)), + (i = ((i = Math.imul(F, J)) + Math.imul(j, Y)) | 0), + (o = Math.imul(j, J)), + (r = (r + Math.imul(z, $)) | 0), + (i = ((i = (i + Math.imul(z, X)) | 0) + Math.imul(P, $)) | 0), + (o = (o + Math.imul(P, X)) | 0), + (r = (r + Math.imul(R, Q)) | 0), + (i = ((i = (i + Math.imul(R, tt)) | 0) + Math.imul(O, Q)) | 0), + (o = (o + Math.imul(O, tt)) | 0), + (r = (r + Math.imul(k, nt)) | 0), + (i = ((i = (i + Math.imul(k, rt)) | 0) + Math.imul(L, nt)) | 0), + (o = (o + Math.imul(L, rt)) | 0), + (r = (r + Math.imul(x, ot)) | 0), + (i = ((i = (i + Math.imul(x, st)) | 0) + Math.imul(I, ot)) | 0), + (o = (o + Math.imul(I, st)) | 0), + (r = (r + Math.imul(M, ut)) | 0), + (i = ((i = (i + Math.imul(M, ft)) | 0) + Math.imul(E, ut)) | 0), + (o = (o + Math.imul(E, ft)) | 0), + (r = (r + Math.imul(w, ht)) | 0), + (i = ((i = (i + Math.imul(w, dt)) | 0) + Math.imul(_, ht)) | 0), + (o = (o + Math.imul(_, dt)) | 0)) + var It = + (((f + (r = (r + Math.imul(v, pt)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(v, bt)) | 0) + Math.imul(m, pt)) | 0)) << 13)) | 0 + ;((f = ((((o = (o + Math.imul(m, bt)) | 0) + (i >>> 13)) | 0) + (It >>> 26)) | 0), + (It &= 67108863), + (r = Math.imul(F, $)), + (i = ((i = Math.imul(F, X)) + Math.imul(j, $)) | 0), + (o = Math.imul(j, X)), + (r = (r + Math.imul(z, Q)) | 0), + (i = ((i = (i + Math.imul(z, tt)) | 0) + Math.imul(P, Q)) | 0), + (o = (o + Math.imul(P, tt)) | 0), + (r = (r + Math.imul(R, nt)) | 0), + (i = ((i = (i + Math.imul(R, rt)) | 0) + Math.imul(O, nt)) | 0), + (o = (o + Math.imul(O, rt)) | 0), + (r = (r + Math.imul(k, ot)) | 0), + (i = ((i = (i + Math.imul(k, st)) | 0) + Math.imul(L, ot)) | 0), + (o = (o + Math.imul(L, st)) | 0), + (r = (r + Math.imul(x, ut)) | 0), + (i = ((i = (i + Math.imul(x, ft)) | 0) + Math.imul(I, ut)) | 0), + (o = (o + Math.imul(I, ft)) | 0), + (r = (r + Math.imul(M, ht)) | 0), + (i = ((i = (i + Math.imul(M, dt)) | 0) + Math.imul(E, ht)) | 0), + (o = (o + Math.imul(E, dt)) | 0)) + var Tt = + (((f + (r = (r + Math.imul(w, pt)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(w, bt)) | 0) + Math.imul(_, pt)) | 0)) << 13)) | 0 + ;((f = ((((o = (o + Math.imul(_, bt)) | 0) + (i >>> 13)) | 0) + (Tt >>> 26)) | 0), + (Tt &= 67108863), + (r = Math.imul(F, Q)), + (i = ((i = Math.imul(F, tt)) + Math.imul(j, Q)) | 0), + (o = Math.imul(j, tt)), + (r = (r + Math.imul(z, nt)) | 0), + (i = ((i = (i + Math.imul(z, rt)) | 0) + Math.imul(P, nt)) | 0), + (o = (o + Math.imul(P, rt)) | 0), + (r = (r + Math.imul(R, ot)) | 0), + (i = ((i = (i + Math.imul(R, st)) | 0) + Math.imul(O, ot)) | 0), + (o = (o + Math.imul(O, st)) | 0), + (r = (r + Math.imul(k, ut)) | 0), + (i = ((i = (i + Math.imul(k, ft)) | 0) + Math.imul(L, ut)) | 0), + (o = (o + Math.imul(L, ft)) | 0), + (r = (r + Math.imul(x, ht)) | 0), + (i = ((i = (i + Math.imul(x, dt)) | 0) + Math.imul(I, ht)) | 0), + (o = (o + Math.imul(I, dt)) | 0)) + var kt = + (((f + (r = (r + Math.imul(M, pt)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(M, bt)) | 0) + Math.imul(E, pt)) | 0)) << 13)) | 0 + ;((f = ((((o = (o + Math.imul(E, bt)) | 0) + (i >>> 13)) | 0) + (kt >>> 26)) | 0), + (kt &= 67108863), + (r = Math.imul(F, nt)), + (i = ((i = Math.imul(F, rt)) + Math.imul(j, nt)) | 0), + (o = Math.imul(j, rt)), + (r = (r + Math.imul(z, ot)) | 0), + (i = ((i = (i + Math.imul(z, st)) | 0) + Math.imul(P, ot)) | 0), + (o = (o + Math.imul(P, st)) | 0), + (r = (r + Math.imul(R, ut)) | 0), + (i = ((i = (i + Math.imul(R, ft)) | 0) + Math.imul(O, ut)) | 0), + (o = (o + Math.imul(O, ft)) | 0), + (r = (r + Math.imul(k, ht)) | 0), + (i = ((i = (i + Math.imul(k, dt)) | 0) + Math.imul(L, ht)) | 0), + (o = (o + Math.imul(L, dt)) | 0)) + var Lt = + (((f + (r = (r + Math.imul(x, pt)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(x, bt)) | 0) + Math.imul(I, pt)) | 0)) << 13)) | 0 + ;((f = ((((o = (o + Math.imul(I, bt)) | 0) + (i >>> 13)) | 0) + (Lt >>> 26)) | 0), + (Lt &= 67108863), + (r = Math.imul(F, ot)), + (i = ((i = Math.imul(F, st)) + Math.imul(j, ot)) | 0), + (o = Math.imul(j, st)), + (r = (r + Math.imul(z, ut)) | 0), + (i = ((i = (i + Math.imul(z, ft)) | 0) + Math.imul(P, ut)) | 0), + (o = (o + Math.imul(P, ft)) | 0), + (r = (r + Math.imul(R, ht)) | 0), + (i = ((i = (i + Math.imul(R, dt)) | 0) + Math.imul(O, ht)) | 0), + (o = (o + Math.imul(O, dt)) | 0)) + var Nt = + (((f + (r = (r + Math.imul(k, pt)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(k, bt)) | 0) + Math.imul(L, pt)) | 0)) << 13)) | 0 + ;((f = ((((o = (o + Math.imul(L, bt)) | 0) + (i >>> 13)) | 0) + (Nt >>> 26)) | 0), + (Nt &= 67108863), + (r = Math.imul(F, ut)), + (i = ((i = Math.imul(F, ft)) + Math.imul(j, ut)) | 0), + (o = Math.imul(j, ft)), + (r = (r + Math.imul(z, ht)) | 0), + (i = ((i = (i + Math.imul(z, dt)) | 0) + Math.imul(P, ht)) | 0), + (o = (o + Math.imul(P, dt)) | 0)) + var Rt = + (((f + (r = (r + Math.imul(R, pt)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(R, bt)) | 0) + Math.imul(O, pt)) | 0)) << 13)) | 0 + ;((f = ((((o = (o + Math.imul(O, bt)) | 0) + (i >>> 13)) | 0) + (Rt >>> 26)) | 0), + (Rt &= 67108863), + (r = Math.imul(F, ht)), + (i = ((i = Math.imul(F, dt)) + Math.imul(j, ht)) | 0), + (o = Math.imul(j, dt))) + var Ot = + (((f + (r = (r + Math.imul(z, pt)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(z, bt)) | 0) + Math.imul(P, pt)) | 0)) << 13)) | 0 + ;((f = ((((o = (o + Math.imul(P, bt)) | 0) + (i >>> 13)) | 0) + (Ot >>> 26)) | 0), (Ot &= 67108863)) + var Bt = (((f + (r = Math.imul(F, pt))) | 0) + ((8191 & (i = ((i = Math.imul(F, bt)) + Math.imul(j, pt)) | 0)) << 13)) | 0 + return ( + (f = ((((o = Math.imul(j, bt)) + (i >>> 13)) | 0) + (Bt >>> 26)) | 0), + (Bt &= 67108863), + (u[0] = gt), + (u[1] = vt), + (u[2] = mt), + (u[3] = yt), + (u[4] = wt), + (u[5] = _t), + (u[6] = St), + (u[7] = Mt), + (u[8] = Et), + (u[9] = At), + (u[10] = xt), + (u[11] = It), + (u[12] = Tt), + (u[13] = kt), + (u[14] = Lt), + (u[15] = Nt), + (u[16] = Rt), + (u[17] = Ot), + (u[18] = Bt), + 0 !== f && ((u[19] = f), n.length++), + n + ) + } + function p(t, e, n) { + return new b().mulp(t, e, n) + } + function b(t, e) { + ;((this.x = t), (this.y = e)) + } + ;(Math.imul || (l = d), + (o.prototype.mulTo = function (t, e) { + var n = this.length + t.length + return 10 === this.length && 10 === t.length + ? l(this, t, e) + : n < 63 + ? d(this, t, e) + : n < 1024 + ? (function (t, e, n) { + ;((n.negative = e.negative ^ t.negative), (n.length = t.length + e.length)) + for (var r = 0, i = 0, o = 0; o < n.length - 1; o++) { + var s = i + i = 0 + for (var a = 67108863 & r, u = Math.min(o, e.length - 1), f = Math.max(0, o - t.length + 1); f <= u; f++) { + var c = o - f, + h = (0 | t.words[c]) * (0 | e.words[f]), + d = 67108863 & h + ;((a = 67108863 & (d = (d + a) | 0)), + (i += (s = ((s = (s + ((h / 67108864) | 0)) | 0) + (d >>> 26)) | 0) >>> 26), + (s &= 67108863)) + } + ;((n.words[o] = a), (r = s), (s = i)) + } + return (0 !== r ? (n.words[o] = r) : n.length--, n.strip()) + })(this, t, e) + : p(this, t, e) + }), + (b.prototype.makeRBT = function (t) { + for (var e = new Array(t), n = o.prototype._countBits(t) - 1, r = 0; r < t; r++) e[r] = this.revBin(r, n, t) + return e + }), + (b.prototype.revBin = function (t, e, n) { + if (0 === t || t === n - 1) return t + for (var r = 0, i = 0; i < e; i++) ((r |= (1 & t) << (e - i - 1)), (t >>= 1)) + return r + }), + (b.prototype.permute = function (t, e, n, r, i, o) { + for (var s = 0; s < o; s++) ((r[s] = e[t[s]]), (i[s] = n[t[s]])) + }), + (b.prototype.transform = function (t, e, n, r, i, o) { + this.permute(o, t, e, n, r, i) + for (var s = 1; s < i; s <<= 1) + for (var a = s << 1, u = Math.cos((2 * Math.PI) / a), f = Math.sin((2 * Math.PI) / a), c = 0; c < i; c += a) + for (var h = u, d = f, l = 0; l < s; l++) { + var p = n[c + l], + b = r[c + l], + g = n[c + l + s], + v = r[c + l + s], + m = h * g - d * v + ;((v = h * v + d * g), + (g = m), + (n[c + l] = p + g), + (r[c + l] = b + v), + (n[c + l + s] = p - g), + (r[c + l + s] = b - v), + l !== a && ((m = u * h - f * d), (d = u * d + f * h), (h = m))) + } + }), + (b.prototype.guessLen13b = function (t, e) { + var n = 1 | Math.max(e, t), + r = 1 & n, + i = 0 + for (n = (n / 2) | 0; n; n >>>= 1) i++ + return 1 << (i + 1 + r) + }), + (b.prototype.conjugate = function (t, e, n) { + if (!(n <= 1)) + for (var r = 0; r < n / 2; r++) { + var i = t[r] + ;((t[r] = t[n - r - 1]), (t[n - r - 1] = i), (i = e[r]), (e[r] = -e[n - r - 1]), (e[n - r - 1] = -i)) + } + }), + (b.prototype.normalize13b = function (t, e) { + for (var n = 0, r = 0; r < e / 2; r++) { + var i = 8192 * Math.round(t[2 * r + 1] / e) + Math.round(t[2 * r] / e) + n + ;((t[r] = 67108863 & i), (n = i < 67108864 ? 0 : (i / 67108864) | 0)) + } + return t + }), + (b.prototype.convert13b = function (t, e, n, i) { + for (var o = 0, s = 0; s < e; s++) ((o += 0 | t[s]), (n[2 * s] = 8191 & o), (o >>>= 13), (n[2 * s + 1] = 8191 & o), (o >>>= 13)) + for (s = 2 * e; s < i; ++s) n[s] = 0 + ;(r(0 === o), r(0 == (-8192 & o))) + }), + (b.prototype.stub = function (t) { + for (var e = new Array(t), n = 0; n < t; n++) e[n] = 0 + return e + }), + (b.prototype.mulp = function (t, e, n) { + var r = 2 * this.guessLen13b(t.length, e.length), + i = this.makeRBT(r), + o = this.stub(r), + s = new Array(r), + a = new Array(r), + u = new Array(r), + f = new Array(r), + c = new Array(r), + h = new Array(r), + d = n.words + ;((d.length = r), + this.convert13b(t.words, t.length, s, r), + this.convert13b(e.words, e.length, f, r), + this.transform(s, o, a, u, r, i), + this.transform(f, o, c, h, r, i)) + for (var l = 0; l < r; l++) { + var p = a[l] * c[l] - u[l] * h[l] + ;((u[l] = a[l] * h[l] + u[l] * c[l]), (a[l] = p)) + } + return ( + this.conjugate(a, u, r), + this.transform(a, u, d, o, r, i), + this.conjugate(d, o, r), + this.normalize13b(d, r), + (n.negative = t.negative ^ e.negative), + (n.length = t.length + e.length), + n.strip() + ) + }), + (o.prototype.mul = function (t) { + var e = new o(null) + return ((e.words = new Array(this.length + t.length)), this.mulTo(t, e)) + }), + (o.prototype.mulf = function (t) { + var e = new o(null) + return ((e.words = new Array(this.length + t.length)), p(this, t, e)) + }), + (o.prototype.imul = function (t) { + return this.clone().mulTo(t, this) + }), + (o.prototype.imuln = function (t) { + ;(r('number' == typeof t), r(t < 67108864)) + for (var e = 0, n = 0; n < this.length; n++) { + var i = (0 | this.words[n]) * t, + o = (67108863 & i) + (67108863 & e) + ;((e >>= 26), (e += (i / 67108864) | 0), (e += o >>> 26), (this.words[n] = 67108863 & o)) + } + return (0 !== e && ((this.words[n] = e), this.length++), this) + }), + (o.prototype.muln = function (t) { + return this.clone().imuln(t) + }), + (o.prototype.sqr = function () { + return this.mul(this) + }), + (o.prototype.isqr = function () { + return this.imul(this.clone()) + }), + (o.prototype.pow = function (t) { + var e = (function (t) { + for (var e = new Array(t.bitLength()), n = 0; n < e.length; n++) { + var r = (n / 26) | 0, + i = n % 26 + e[n] = (t.words[r] & (1 << i)) >>> i + } + return e + })(t) + if (0 === e.length) return new o(1) + for (var n = this, r = 0; r < e.length && 0 === e[r]; r++, n = n.sqr()); + if (++r < e.length) for (var i = n.sqr(); r < e.length; r++, i = i.sqr()) 0 !== e[r] && (n = n.mul(i)) + return n + }), + (o.prototype.iushln = function (t) { + r('number' == typeof t && t >= 0) + var e, + n = t % 26, + i = (t - n) / 26, + o = (67108863 >>> (26 - n)) << (26 - n) + if (0 !== n) { + var s = 0 + for (e = 0; e < this.length; e++) { + var a = this.words[e] & o, + u = ((0 | this.words[e]) - a) << n + ;((this.words[e] = u | s), (s = a >>> (26 - n))) + } + s && ((this.words[e] = s), this.length++) + } + if (0 !== i) { + for (e = this.length - 1; e >= 0; e--) this.words[e + i] = this.words[e] + for (e = 0; e < i; e++) this.words[e] = 0 + this.length += i + } + return this.strip() + }), + (o.prototype.ishln = function (t) { + return (r(0 === this.negative), this.iushln(t)) + }), + (o.prototype.iushrn = function (t, e, n) { + var i + ;(r('number' == typeof t && t >= 0), (i = e ? (e - (e % 26)) / 26 : 0)) + var o = t % 26, + s = Math.min((t - o) / 26, this.length), + a = 67108863 ^ ((67108863 >>> o) << o), + u = n + if (((i -= s), (i = Math.max(0, i)), u)) { + for (var f = 0; f < s; f++) u.words[f] = this.words[f] + u.length = s + } + if (0 === s); + else if (this.length > s) for (this.length -= s, f = 0; f < this.length; f++) this.words[f] = this.words[f + s] + else ((this.words[0] = 0), (this.length = 1)) + var c = 0 + for (f = this.length - 1; f >= 0 && (0 !== c || f >= i); f--) { + var h = 0 | this.words[f] + ;((this.words[f] = (c << (26 - o)) | (h >>> o)), (c = h & a)) + } + return (u && 0 !== c && (u.words[u.length++] = c), 0 === this.length && ((this.words[0] = 0), (this.length = 1)), this.strip()) + }), + (o.prototype.ishrn = function (t, e, n) { + return (r(0 === this.negative), this.iushrn(t, e, n)) + }), + (o.prototype.shln = function (t) { + return this.clone().ishln(t) + }), + (o.prototype.ushln = function (t) { + return this.clone().iushln(t) + }), + (o.prototype.shrn = function (t) { + return this.clone().ishrn(t) + }), + (o.prototype.ushrn = function (t) { + return this.clone().iushrn(t) + }), + (o.prototype.testn = function (t) { + r('number' == typeof t && t >= 0) + var e = t % 26, + n = (t - e) / 26, + i = 1 << e + return !(this.length <= n) && !!(this.words[n] & i) + }), + (o.prototype.imaskn = function (t) { + r('number' == typeof t && t >= 0) + var e = t % 26, + n = (t - e) / 26 + if ((r(0 === this.negative, 'imaskn works only with positive numbers'), this.length <= n)) return this + if ((0 !== e && n++, (this.length = Math.min(n, this.length)), 0 !== e)) { + var i = 67108863 ^ ((67108863 >>> e) << e) + this.words[this.length - 1] &= i + } + return this.strip() + }), + (o.prototype.maskn = function (t) { + return this.clone().imaskn(t) + }), + (o.prototype.iaddn = function (t) { + return ( + r('number' == typeof t), + r(t < 67108864), + t < 0 + ? this.isubn(-t) + : 0 !== this.negative + ? 1 === this.length && (0 | this.words[0]) < t + ? ((this.words[0] = t - (0 | this.words[0])), (this.negative = 0), this) + : ((this.negative = 0), this.isubn(t), (this.negative = 1), this) + : this._iaddn(t) + ) + }), + (o.prototype._iaddn = function (t) { + this.words[0] += t + for (var e = 0; e < this.length && this.words[e] >= 67108864; e++) + ((this.words[e] -= 67108864), e === this.length - 1 ? (this.words[e + 1] = 1) : this.words[e + 1]++) + return ((this.length = Math.max(this.length, e + 1)), this) + }), + (o.prototype.isubn = function (t) { + if ((r('number' == typeof t), r(t < 67108864), t < 0)) return this.iaddn(-t) + if (0 !== this.negative) return ((this.negative = 0), this.iaddn(t), (this.negative = 1), this) + if (((this.words[0] -= t), 1 === this.length && this.words[0] < 0)) ((this.words[0] = -this.words[0]), (this.negative = 1)) + else for (var e = 0; e < this.length && this.words[e] < 0; e++) ((this.words[e] += 67108864), (this.words[e + 1] -= 1)) + return this.strip() + }), + (o.prototype.addn = function (t) { + return this.clone().iaddn(t) + }), + (o.prototype.subn = function (t) { + return this.clone().isubn(t) + }), + (o.prototype.iabs = function () { + return ((this.negative = 0), this) + }), + (o.prototype.abs = function () { + return this.clone().iabs() + }), + (o.prototype._ishlnsubmul = function (t, e, n) { + var i, + o, + s = t.length + n + this._expand(s) + var a = 0 + for (i = 0; i < t.length; i++) { + o = (0 | this.words[i + n]) + a + var u = (0 | t.words[i]) * e + ;((a = ((o -= 67108863 & u) >> 26) - ((u / 67108864) | 0)), (this.words[i + n] = 67108863 & o)) + } + for (; i < this.length - n; i++) ((a = (o = (0 | this.words[i + n]) + a) >> 26), (this.words[i + n] = 67108863 & o)) + if (0 === a) return this.strip() + for (r(-1 === a), a = 0, i = 0; i < this.length; i++) ((a = (o = -(0 | this.words[i]) + a) >> 26), (this.words[i] = 67108863 & o)) + return ((this.negative = 1), this.strip()) + }), + (o.prototype._wordDiv = function (t, e) { + var n = (this.length, t.length), + r = this.clone(), + i = t, + s = 0 | i.words[i.length - 1] + 0 !== (n = 26 - this._countBits(s)) && ((i = i.ushln(n)), r.iushln(n), (s = 0 | i.words[i.length - 1])) + var a, + u = r.length - i.length + if ('mod' !== e) { + ;(((a = new o(null)).length = u + 1), (a.words = new Array(a.length))) + for (var f = 0; f < a.length; f++) a.words[f] = 0 + } + var c = r.clone()._ishlnsubmul(i, 1, u) + 0 === c.negative && ((r = c), a && (a.words[u] = 1)) + for (var h = u - 1; h >= 0; h--) { + var d = 67108864 * (0 | r.words[i.length + h]) + (0 | r.words[i.length + h - 1]) + for (d = Math.min((d / s) | 0, 67108863), r._ishlnsubmul(i, d, h); 0 !== r.negative; ) + (d--, (r.negative = 0), r._ishlnsubmul(i, 1, h), r.isZero() || (r.negative ^= 1)) + a && (a.words[h] = d) + } + return (a && a.strip(), r.strip(), 'div' !== e && 0 !== n && r.iushrn(n), { div: a || null, mod: r }) + }), + (o.prototype.divmod = function (t, e, n) { + return ( + r(!t.isZero()), + this.isZero() + ? { div: new o(0), mod: new o(0) } + : 0 !== this.negative && 0 === t.negative + ? ((a = this.neg().divmod(t, e)), + 'mod' !== e && (i = a.div.neg()), + 'div' !== e && ((s = a.mod.neg()), n && 0 !== s.negative && s.iadd(t)), + { div: i, mod: s }) + : 0 === this.negative && 0 !== t.negative + ? ((a = this.divmod(t.neg(), e)), 'mod' !== e && (i = a.div.neg()), { div: i, mod: a.mod }) + : 0 != (this.negative & t.negative) + ? ((a = this.neg().divmod(t.neg(), e)), + 'div' !== e && ((s = a.mod.neg()), n && 0 !== s.negative && s.isub(t)), + { div: a.div, mod: s }) + : t.length > this.length || this.cmp(t) < 0 + ? { div: new o(0), mod: this } + : 1 === t.length + ? 'div' === e + ? { div: this.divn(t.words[0]), mod: null } + : 'mod' === e + ? { div: null, mod: new o(this.modn(t.words[0])) } + : { div: this.divn(t.words[0]), mod: new o(this.modn(t.words[0])) } + : this._wordDiv(t, e) + ) + var i, s, a + }), + (o.prototype.div = function (t) { + return this.divmod(t, 'div', !1).div + }), + (o.prototype.mod = function (t) { + return this.divmod(t, 'mod', !1).mod + }), + (o.prototype.umod = function (t) { + return this.divmod(t, 'mod', !0).mod + }), + (o.prototype.divRound = function (t) { + var e = this.divmod(t) + if (e.mod.isZero()) return e.div + var n = 0 !== e.div.negative ? e.mod.isub(t) : e.mod, + r = t.ushrn(1), + i = t.andln(1), + o = n.cmp(r) + return o < 0 || (1 === i && 0 === o) ? e.div : 0 !== e.div.negative ? e.div.isubn(1) : e.div.iaddn(1) + }), + (o.prototype.modn = function (t) { + r(t <= 67108863) + for (var e = (1 << 26) % t, n = 0, i = this.length - 1; i >= 0; i--) n = (e * n + (0 | this.words[i])) % t + return n + }), + (o.prototype.idivn = function (t) { + r(t <= 67108863) + for (var e = 0, n = this.length - 1; n >= 0; n--) { + var i = (0 | this.words[n]) + 67108864 * e + ;((this.words[n] = (i / t) | 0), (e = i % t)) + } + return this.strip() + }), + (o.prototype.divn = function (t) { + return this.clone().idivn(t) + }), + (o.prototype.egcd = function (t) { + ;(r(0 === t.negative), r(!t.isZero())) + var e = this, + n = t.clone() + e = 0 !== e.negative ? e.umod(t) : e.clone() + for (var i = new o(1), s = new o(0), a = new o(0), u = new o(1), f = 0; e.isEven() && n.isEven(); ) (e.iushrn(1), n.iushrn(1), ++f) + for (var c = n.clone(), h = e.clone(); !e.isZero(); ) { + for (var d = 0, l = 1; 0 == (e.words[0] & l) && d < 26; ++d, l <<= 1); + if (d > 0) for (e.iushrn(d); d-- > 0; ) ((i.isOdd() || s.isOdd()) && (i.iadd(c), s.isub(h)), i.iushrn(1), s.iushrn(1)) + for (var p = 0, b = 1; 0 == (n.words[0] & b) && p < 26; ++p, b <<= 1); + if (p > 0) for (n.iushrn(p); p-- > 0; ) ((a.isOdd() || u.isOdd()) && (a.iadd(c), u.isub(h)), a.iushrn(1), u.iushrn(1)) + e.cmp(n) >= 0 ? (e.isub(n), i.isub(a), s.isub(u)) : (n.isub(e), a.isub(i), u.isub(s)) + } + return { a: a, b: u, gcd: n.iushln(f) } + }), + (o.prototype._invmp = function (t) { + ;(r(0 === t.negative), r(!t.isZero())) + var e = this, + n = t.clone() + e = 0 !== e.negative ? e.umod(t) : e.clone() + for (var i, s = new o(1), a = new o(0), u = n.clone(); e.cmpn(1) > 0 && n.cmpn(1) > 0; ) { + for (var f = 0, c = 1; 0 == (e.words[0] & c) && f < 26; ++f, c <<= 1); + if (f > 0) for (e.iushrn(f); f-- > 0; ) (s.isOdd() && s.iadd(u), s.iushrn(1)) + for (var h = 0, d = 1; 0 == (n.words[0] & d) && h < 26; ++h, d <<= 1); + if (h > 0) for (n.iushrn(h); h-- > 0; ) (a.isOdd() && a.iadd(u), a.iushrn(1)) + e.cmp(n) >= 0 ? (e.isub(n), s.isub(a)) : (n.isub(e), a.isub(s)) + } + return ((i = 0 === e.cmpn(1) ? s : a).cmpn(0) < 0 && i.iadd(t), i) + }), + (o.prototype.gcd = function (t) { + if (this.isZero()) return t.abs() + if (t.isZero()) return this.abs() + var e = this.clone(), + n = t.clone() + ;((e.negative = 0), (n.negative = 0)) + for (var r = 0; e.isEven() && n.isEven(); r++) (e.iushrn(1), n.iushrn(1)) + for (;;) { + for (; e.isEven(); ) e.iushrn(1) + for (; n.isEven(); ) n.iushrn(1) + var i = e.cmp(n) + if (i < 0) { + var o = e + ;((e = n), (n = o)) + } else if (0 === i || 0 === n.cmpn(1)) break + e.isub(n) + } + return n.iushln(r) + }), + (o.prototype.invm = function (t) { + return this.egcd(t).a.umod(t) + }), + (o.prototype.isEven = function () { + return 0 == (1 & this.words[0]) + }), + (o.prototype.isOdd = function () { + return 1 == (1 & this.words[0]) + }), + (o.prototype.andln = function (t) { + return this.words[0] & t + }), + (o.prototype.bincn = function (t) { + r('number' == typeof t) + var e = t % 26, + n = (t - e) / 26, + i = 1 << e + if (this.length <= n) return (this._expand(n + 1), (this.words[n] |= i), this) + for (var o = i, s = n; 0 !== o && s < this.length; s++) { + var a = 0 | this.words[s] + ;((o = (a += o) >>> 26), (a &= 67108863), (this.words[s] = a)) + } + return (0 !== o && ((this.words[s] = o), this.length++), this) + }), + (o.prototype.isZero = function () { + return 1 === this.length && 0 === this.words[0] + }), + (o.prototype.cmpn = function (t) { + var e, + n = t < 0 + if (0 !== this.negative && !n) return -1 + if (0 === this.negative && n) return 1 + if ((this.strip(), this.length > 1)) e = 1 + else { + ;(n && (t = -t), r(t <= 67108863, 'Number is too big')) + var i = 0 | this.words[0] + e = i === t ? 0 : i < t ? -1 : 1 + } + return 0 !== this.negative ? 0 | -e : e + }), + (o.prototype.cmp = function (t) { + if (0 !== this.negative && 0 === t.negative) return -1 + if (0 === this.negative && 0 !== t.negative) return 1 + var e = this.ucmp(t) + return 0 !== this.negative ? 0 | -e : e + }), + (o.prototype.ucmp = function (t) { + if (this.length > t.length) return 1 + if (this.length < t.length) return -1 + for (var e = 0, n = this.length - 1; n >= 0; n--) { + var r = 0 | this.words[n], + i = 0 | t.words[n] + if (r !== i) { + r < i ? (e = -1) : r > i && (e = 1) + break + } + } + return e + }), + (o.prototype.gtn = function (t) { + return 1 === this.cmpn(t) + }), + (o.prototype.gt = function (t) { + return 1 === this.cmp(t) + }), + (o.prototype.gten = function (t) { + return this.cmpn(t) >= 0 + }), + (o.prototype.gte = function (t) { + return this.cmp(t) >= 0 + }), + (o.prototype.ltn = function (t) { + return -1 === this.cmpn(t) + }), + (o.prototype.lt = function (t) { + return -1 === this.cmp(t) + }), + (o.prototype.lten = function (t) { + return this.cmpn(t) <= 0 + }), + (o.prototype.lte = function (t) { + return this.cmp(t) <= 0 + }), + (o.prototype.eqn = function (t) { + return 0 === this.cmpn(t) + }), + (o.prototype.eq = function (t) { + return 0 === this.cmp(t) + }), + (o.red = function (t) { + return new S(t) + }), + (o.prototype.toRed = function (t) { + return ( + r(!this.red, 'Already a number in reduction context'), + r(0 === this.negative, 'red works only with positives'), + t.convertTo(this)._forceRed(t) + ) + }), + (o.prototype.fromRed = function () { + return (r(this.red, 'fromRed works only with numbers in reduction context'), this.red.convertFrom(this)) + }), + (o.prototype._forceRed = function (t) { + return ((this.red = t), this) + }), + (o.prototype.forceRed = function (t) { + return (r(!this.red, 'Already a number in reduction context'), this._forceRed(t)) + }), + (o.prototype.redAdd = function (t) { + return (r(this.red, 'redAdd works only with red numbers'), this.red.add(this, t)) + }), + (o.prototype.redIAdd = function (t) { + return (r(this.red, 'redIAdd works only with red numbers'), this.red.iadd(this, t)) + }), + (o.prototype.redSub = function (t) { + return (r(this.red, 'redSub works only with red numbers'), this.red.sub(this, t)) + }), + (o.prototype.redISub = function (t) { + return (r(this.red, 'redISub works only with red numbers'), this.red.isub(this, t)) + }), + (o.prototype.redShl = function (t) { + return (r(this.red, 'redShl works only with red numbers'), this.red.shl(this, t)) + }), + (o.prototype.redMul = function (t) { + return (r(this.red, 'redMul works only with red numbers'), this.red._verify2(this, t), this.red.mul(this, t)) + }), + (o.prototype.redIMul = function (t) { + return (r(this.red, 'redMul works only with red numbers'), this.red._verify2(this, t), this.red.imul(this, t)) + }), + (o.prototype.redSqr = function () { + return (r(this.red, 'redSqr works only with red numbers'), this.red._verify1(this), this.red.sqr(this)) + }), + (o.prototype.redISqr = function () { + return (r(this.red, 'redISqr works only with red numbers'), this.red._verify1(this), this.red.isqr(this)) + }), + (o.prototype.redSqrt = function () { + return (r(this.red, 'redSqrt works only with red numbers'), this.red._verify1(this), this.red.sqrt(this)) + }), + (o.prototype.redInvm = function () { + return (r(this.red, 'redInvm works only with red numbers'), this.red._verify1(this), this.red.invm(this)) + }), + (o.prototype.redNeg = function () { + return (r(this.red, 'redNeg works only with red numbers'), this.red._verify1(this), this.red.neg(this)) + }), + (o.prototype.redPow = function (t) { + return (r(this.red && !t.red, 'redPow(normalNum)'), this.red._verify1(this), this.red.pow(this, t)) + })) + var g = { k256: null, p224: null, p192: null, p25519: null } + function v(t, e) { + ;((this.name = t), + (this.p = new o(e, 16)), + (this.n = this.p.bitLength()), + (this.k = new o(1).iushln(this.n).isub(this.p)), + (this.tmp = this._tmp())) + } + function m() { + v.call(this, 'k256', 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f') + } + function y() { + v.call(this, 'p224', 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001') + } + function w() { + v.call(this, 'p192', 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff') + } + function _() { + v.call(this, '25519', '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed') + } + function S(t) { + if ('string' == typeof t) { + var e = o._prime(t) + ;((this.m = e.p), (this.prime = e)) + } else (r(t.gtn(1), 'modulus must be greater than 1'), (this.m = t), (this.prime = null)) + } + function M(t) { + ;(S.call(this, t), + (this.shift = this.m.bitLength()), + this.shift % 26 != 0 && (this.shift += 26 - (this.shift % 26)), + (this.r = new o(1).iushln(this.shift)), + (this.r2 = this.imod(this.r.sqr())), + (this.rinv = this.r._invmp(this.m)), + (this.minv = this.rinv.mul(this.r).isubn(1).div(this.m)), + (this.minv = this.minv.umod(this.r)), + (this.minv = this.r.sub(this.minv))) + } + ;((v.prototype._tmp = function () { + var t = new o(null) + return ((t.words = new Array(Math.ceil(this.n / 13))), t) + }), + (v.prototype.ireduce = function (t) { + var e, + n = t + do { + ;(this.split(n, this.tmp), (e = (n = (n = this.imulK(n)).iadd(this.tmp)).bitLength())) + } while (e > this.n) + var r = e < this.n ? -1 : n.ucmp(this.p) + return (0 === r ? ((n.words[0] = 0), (n.length = 1)) : r > 0 ? n.isub(this.p) : n.strip(), n) + }), + (v.prototype.split = function (t, e) { + t.iushrn(this.n, 0, e) + }), + (v.prototype.imulK = function (t) { + return t.imul(this.k) + }), + i(m, v), + (m.prototype.split = function (t, e) { + for (var n = Math.min(t.length, 9), r = 0; r < n; r++) e.words[r] = t.words[r] + if (((e.length = n), t.length <= 9)) return ((t.words[0] = 0), void (t.length = 1)) + var i = t.words[9] + for (e.words[e.length++] = 4194303 & i, r = 10; r < t.length; r++) { + var o = 0 | t.words[r] + ;((t.words[r - 10] = ((4194303 & o) << 4) | (i >>> 22)), (i = o)) + } + ;((i >>>= 22), (t.words[r - 10] = i), 0 === i && t.length > 10 ? (t.length -= 10) : (t.length -= 9)) + }), + (m.prototype.imulK = function (t) { + ;((t.words[t.length] = 0), (t.words[t.length + 1] = 0), (t.length += 2)) + for (var e = 0, n = 0; n < t.length; n++) { + var r = 0 | t.words[n] + ;((e += 977 * r), (t.words[n] = 67108863 & e), (e = 64 * r + ((e / 67108864) | 0))) + } + return (0 === t.words[t.length - 1] && (t.length--, 0 === t.words[t.length - 1] && t.length--), t) + }), + i(y, v), + i(w, v), + i(_, v), + (_.prototype.imulK = function (t) { + for (var e = 0, n = 0; n < t.length; n++) { + var r = 19 * (0 | t.words[n]) + e, + i = 67108863 & r + ;((r >>>= 26), (t.words[n] = i), (e = r)) + } + return (0 !== e && (t.words[t.length++] = e), t) + }), + (o._prime = function (t) { + if (g[t]) return g[t] + var e + if ('k256' === t) e = new m() + else if ('p224' === t) e = new y() + else if ('p192' === t) e = new w() + else { + if ('p25519' !== t) throw new Error('Unknown prime ' + t) + e = new _() + } + return ((g[t] = e), e) + }), + (S.prototype._verify1 = function (t) { + ;(r(0 === t.negative, 'red works only with positives'), r(t.red, 'red works only with red numbers')) + }), + (S.prototype._verify2 = function (t, e) { + ;(r(0 == (t.negative | e.negative), 'red works only with positives'), r(t.red && t.red === e.red, 'red works only with red numbers')) + }), + (S.prototype.imod = function (t) { + return this.prime ? this.prime.ireduce(t)._forceRed(this) : t.umod(this.m)._forceRed(this) + }), + (S.prototype.neg = function (t) { + return t.isZero() ? t.clone() : this.m.sub(t)._forceRed(this) + }), + (S.prototype.add = function (t, e) { + this._verify2(t, e) + var n = t.add(e) + return (n.cmp(this.m) >= 0 && n.isub(this.m), n._forceRed(this)) + }), + (S.prototype.iadd = function (t, e) { + this._verify2(t, e) + var n = t.iadd(e) + return (n.cmp(this.m) >= 0 && n.isub(this.m), n) + }), + (S.prototype.sub = function (t, e) { + this._verify2(t, e) + var n = t.sub(e) + return (n.cmpn(0) < 0 && n.iadd(this.m), n._forceRed(this)) + }), + (S.prototype.isub = function (t, e) { + this._verify2(t, e) + var n = t.isub(e) + return (n.cmpn(0) < 0 && n.iadd(this.m), n) + }), + (S.prototype.shl = function (t, e) { + return (this._verify1(t), this.imod(t.ushln(e))) + }), + (S.prototype.imul = function (t, e) { + return (this._verify2(t, e), this.imod(t.imul(e))) + }), + (S.prototype.mul = function (t, e) { + return (this._verify2(t, e), this.imod(t.mul(e))) + }), + (S.prototype.isqr = function (t) { + return this.imul(t, t.clone()) + }), + (S.prototype.sqr = function (t) { + return this.mul(t, t) + }), + (S.prototype.sqrt = function (t) { + if (t.isZero()) return t.clone() + var e = this.m.andln(3) + if ((r(e % 2 == 1), 3 === e)) { + var n = this.m.add(new o(1)).iushrn(2) + return this.pow(t, n) + } + for (var i = this.m.subn(1), s = 0; !i.isZero() && 0 === i.andln(1); ) (s++, i.iushrn(1)) + r(!i.isZero()) + var a = new o(1).toRed(this), + u = a.redNeg(), + f = this.m.subn(1).iushrn(1), + c = this.m.bitLength() + for (c = new o(2 * c * c).toRed(this); 0 !== this.pow(c, f).cmp(u); ) c.redIAdd(u) + for (var h = this.pow(c, i), d = this.pow(t, i.addn(1).iushrn(1)), l = this.pow(t, i), p = s; 0 !== l.cmp(a); ) { + for (var b = l, g = 0; 0 !== b.cmp(a); g++) b = b.redSqr() + r(g < p) + var v = this.pow(h, new o(1).iushln(p - g - 1)) + ;((d = d.redMul(v)), (h = v.redSqr()), (l = l.redMul(h)), (p = g)) + } + return d + }), + (S.prototype.invm = function (t) { + var e = t._invmp(this.m) + return 0 !== e.negative ? ((e.negative = 0), this.imod(e).redNeg()) : this.imod(e) + }), + (S.prototype.pow = function (t, e) { + if (e.isZero()) return new o(1).toRed(this) + if (0 === e.cmpn(1)) return t.clone() + var n = new Array(16) + ;((n[0] = new o(1).toRed(this)), (n[1] = t)) + for (var r = 2; r < n.length; r++) n[r] = this.mul(n[r - 1], t) + var i = n[0], + s = 0, + a = 0, + u = e.bitLength() % 26 + for (0 === u && (u = 26), r = e.length - 1; r >= 0; r--) { + for (var f = e.words[r], c = u - 1; c >= 0; c--) { + var h = (f >> c) & 1 + ;(i !== n[0] && (i = this.sqr(i)), + 0 !== h || 0 !== s + ? ((s <<= 1), (s |= h), (4 === ++a || (0 === r && 0 === c)) && ((i = this.mul(i, n[s])), (a = 0), (s = 0))) + : (a = 0)) + } + u = 26 + } + return i + }), + (S.prototype.convertTo = function (t) { + var e = t.umod(this.m) + return e === t ? e.clone() : e + }), + (S.prototype.convertFrom = function (t) { + var e = t.clone() + return ((e.red = null), e) + }), + (o.mont = function (t) { + return new M(t) + }), + i(M, S), + (M.prototype.convertTo = function (t) { + return this.imod(t.ushln(this.shift)) + }), + (M.prototype.convertFrom = function (t) { + var e = this.imod(t.mul(this.rinv)) + return ((e.red = null), e) + }), + (M.prototype.imul = function (t, e) { + if (t.isZero() || e.isZero()) return ((t.words[0] = 0), (t.length = 1), t) + var n = t.imul(e), + r = n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m), + i = n.isub(r).iushrn(this.shift), + o = i + return (i.cmp(this.m) >= 0 ? (o = i.isub(this.m)) : i.cmpn(0) < 0 && (o = i.iadd(this.m)), o._forceRed(this)) + }), + (M.prototype.mul = function (t, e) { + if (t.isZero() || e.isZero()) return new o(0)._forceRed(this) + var n = t.mul(e), + r = n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m), + i = n.isub(r).iushrn(this.shift), + s = i + return (i.cmp(this.m) >= 0 ? (s = i.isub(this.m)) : i.cmpn(0) < 0 && (s = i.iadd(this.m)), s._forceRed(this)) + }), + (M.prototype.invm = function (t) { + return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this) + })) + })(t, this) + }).call(this, n(27)(t)) + }, + function (t, e) { + var n + n = (function () { + return this + })() + try { + n = n || new Function('return this')() + } catch (t) { + 'object' == typeof window && (n = window) + } + t.exports = n + }, + function (t, e, n) { + 'use strict' + var r = n(3), + i = r.bytesToHex, + o = r.slice, + s = n(37).BytesList, + a = { + toBytesSink: function (t) { + t.put(this._bytes) + }, + toHex: function () { + return i(this.toBytes()) + }, + toBytes: function () { + if (this._bytes) return o(this._bytes) + var t = new s() + return (this.toBytesSink(t), t.toBytes()) + }, + toJSON: function () { + return this.toHex() + }, + toString: function () { + return this.toHex() + }, + } + t.exports = { + ensureArrayLikeIs: function (t, e) { + return { + withChildren: function (n) { + if (e instanceof t) return e + for (var r = new t(), i = 0; i < e.length; i++) r.push(n.from(e[i])) + return r + }, + } + }, + SerializedType: a, + Comparable: { + lt: function (t) { + return this.compareTo(t) < 0 + }, + eq: function (t) { + return 0 === this.compareTo(t) + }, + gt: function (t) { + return this.compareTo(t) > 0 + }, + gte: function (t) { + return this.compareTo(t) > -1 + }, + lte: function (t) { + return this.compareTo(t) < 1 + }, + }, + } + }, + function (t, e, n) { + ;(function (t) { + !(function (t, e) { + 'use strict' + function r(t, e) { + if (!t) throw new Error(e || 'Assertion failed') + } + function i(t, e) { + t.super_ = e + var n = function () {} + ;((n.prototype = e.prototype), (t.prototype = new n()), (t.prototype.constructor = t)) + } + function o(t, e, n) { + if (o.isBN(t)) return t + ;((this.negative = 0), + (this.words = null), + (this.length = 0), + (this.red = null), + null !== t && (('le' !== e && 'be' !== e) || ((n = e), (e = 10)), this._init(t || 0, e || 10, n || 'be'))) + } + var s + ;('object' == typeof t ? (t.exports = o) : (e.BN = o), (o.BN = o), (o.wordSize = 26)) + try { + s = n(97).Buffer + } catch (t) {} + function a(t, e, n) { + for (var i = 0, o = Math.min(t.length, n), s = 0, a = e; a < o; a++) { + var u, + f = t.charCodeAt(a) - 48 + ;((i <<= 4), (i |= u = f >= 49 && f <= 54 ? f - 49 + 10 : f >= 17 && f <= 22 ? f - 17 + 10 : f), (s |= u)) + } + return (r(!(240 & s), 'Invalid character in ' + t), i) + } + function u(t, e, n, i) { + for (var o = 0, s = 0, a = Math.min(t.length, n), u = e; u < a; u++) { + var f = t.charCodeAt(u) - 48 + ;((o *= i), (s = f >= 49 ? f - 49 + 10 : f >= 17 ? f - 17 + 10 : f), r(f >= 0 && s < i, 'Invalid character'), (o += s)) + } + return o + } + function f(t, e) { + ;((t.words = e.words), (t.length = e.length), (t.negative = e.negative), (t.red = e.red)) + } + function c() { + return (this.red ? '<BN-R: ' : '<BN: ') + this.toString(16) + '>' + } + ;((o.isBN = function (t) { + return t instanceof o || (null !== t && 'object' == typeof t && t.constructor.wordSize === o.wordSize && Array.isArray(t.words)) + }), + (o.max = function (t, e) { + return t.cmp(e) > 0 ? t : e + }), + (o.min = function (t, e) { + return t.cmp(e) < 0 ? t : e + }), + (o.prototype._init = function (t, e, n) { + if ('number' == typeof t) return this._initNumber(t, e, n) + if ('object' == typeof t) return this._initArray(t, e, n) + ;('hex' === e && (e = 16), r(e === (0 | e) && e >= 2 && e <= 36)) + var i = 0 + ;('-' === (t = t.toString().replace(/\s+/g, ''))[0] && i++, + 16 === e ? this._parseHex(t, i) : this._parseBase(t, e, i), + '-' === t[0] && (this.negative = 1), + this._strip(), + 'le' === n && this._initArray(this.toArray(), e, n)) + }), + (o.prototype._initNumber = function (t, e, n) { + ;(t < 0 && ((this.negative = 1), (t = -t)), + t < 67108864 + ? ((this.words = [67108863 & t]), (this.length = 1)) + : t < 4503599627370496 + ? ((this.words = [67108863 & t, (t / 67108864) & 67108863]), (this.length = 2)) + : (r(t < 9007199254740992), (this.words = [67108863 & t, (t / 67108864) & 67108863, 1]), (this.length = 3)), + 'le' === n && this._initArray(this.toArray(), e, n)) + }), + (o.prototype._initArray = function (t, e, n) { + if ((r('number' == typeof t.length), t.length <= 0)) return ((this.words = [0]), (this.length = 1), this) + ;((this.length = Math.ceil(t.length / 3)), (this.words = new Array(this.length))) + for (var i = 0; i < this.length; i++) this.words[i] = 0 + var o, + s, + a = 0 + if ('be' === n) + for (i = t.length - 1, o = 0; i >= 0; i -= 3) + ((s = t[i] | (t[i - 1] << 8) | (t[i - 2] << 16)), + (this.words[o] |= (s << a) & 67108863), + (this.words[o + 1] = (s >>> (26 - a)) & 67108863), + (a += 24) >= 26 && ((a -= 26), o++)) + else if ('le' === n) + for (i = 0, o = 0; i < t.length; i += 3) + ((s = t[i] | (t[i + 1] << 8) | (t[i + 2] << 16)), + (this.words[o] |= (s << a) & 67108863), + (this.words[o + 1] = (s >>> (26 - a)) & 67108863), + (a += 24) >= 26 && ((a -= 26), o++)) + return this._strip() + }), + (o.prototype._parseHex = function (t, e) { + ;((this.length = Math.ceil((t.length - e) / 6)), (this.words = new Array(this.length))) + for (var n = 0; n < this.length; n++) this.words[n] = 0 + var r, + i, + o = 0 + for (n = t.length - 6, r = 0; n >= e; n -= 6) + ((i = a(t, n, n + 6)), + (this.words[r] |= (i << o) & 67108863), + (this.words[r + 1] |= (i >>> (26 - o)) & 4194303), + (o += 24) >= 26 && ((o -= 26), r++)) + ;(n + 6 !== e && ((i = a(t, e, n + 6)), (this.words[r] |= (i << o) & 67108863), (this.words[r + 1] |= (i >>> (26 - o)) & 4194303)), + this._strip()) + }), + (o.prototype._parseBase = function (t, e, n) { + ;((this.words = [0]), (this.length = 1)) + for (var r = 0, i = 1; i <= 67108863; i *= e) r++ + ;(r--, (i = (i / e) | 0)) + for (var o = t.length - n, s = o % r, a = Math.min(o, o - s) + n, f = 0, c = n; c < a; c += r) + ((f = u(t, c, c + r, e)), this.imuln(i), this.words[0] + f < 67108864 ? (this.words[0] += f) : this._iaddn(f)) + if (0 !== s) { + var h = 1 + for (f = u(t, c, t.length, e), c = 0; c < s; c++) h *= e + ;(this.imuln(h), this.words[0] + f < 67108864 ? (this.words[0] += f) : this._iaddn(f)) + } + }), + (o.prototype.copy = function (t) { + t.words = new Array(this.length) + for (var e = 0; e < this.length; e++) t.words[e] = this.words[e] + ;((t.length = this.length), (t.negative = this.negative), (t.red = this.red)) + }), + (o.prototype._move = function (t) { + f(t, this) + }), + (o.prototype.clone = function () { + var t = new o(null) + return (this.copy(t), t) + }), + (o.prototype._expand = function (t) { + for (; this.length < t; ) this.words[this.length++] = 0 + return this + }), + (o.prototype._strip = function () { + for (; this.length > 1 && 0 === this.words[this.length - 1]; ) this.length-- + return this._normSign() + }), + (o.prototype._normSign = function () { + return (1 === this.length && 0 === this.words[0] && (this.negative = 0), this) + }), + 'undefined' != typeof Symbol && 'function' == typeof Symbol.for + ? (o.prototype[Symbol.for('nodejs.util.inspect.custom')] = c) + : (o.prototype.inspect = c)) + var h = [ + '', + '0', + '00', + '000', + '0000', + '00000', + '000000', + '0000000', + '00000000', + '000000000', + '0000000000', + '00000000000', + '000000000000', + '0000000000000', + '00000000000000', + '000000000000000', + '0000000000000000', + '00000000000000000', + '000000000000000000', + '0000000000000000000', + '00000000000000000000', + '000000000000000000000', + '0000000000000000000000', + '00000000000000000000000', + '000000000000000000000000', + '0000000000000000000000000', + ], + d = [0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5], + l = [ + 0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, 1e7, 19487171, 35831808, 62748517, 7529536, + 11390625, 16777216, 24137569, 34012224, 47045881, 64e6, 4084101, 5153632, 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, + 20511149, 243e5, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176, + ] + ;((o.prototype.toString = function (t, e) { + var n + if (((e = 0 | e || 1), 16 === (t = t || 10) || 'hex' === t)) { + n = '' + for (var i = 0, o = 0, s = 0; s < this.length; s++) { + var a = this.words[s], + u = (16777215 & ((a << i) | o)).toString(16) + ;((n = 0 !== (o = (a >>> (24 - i)) & 16777215) || s !== this.length - 1 ? h[6 - u.length] + u + n : u + n), + (i += 2) >= 26 && ((i -= 26), s--)) + } + for (0 !== o && (n = o.toString(16) + n); n.length % e != 0; ) n = '0' + n + return (0 !== this.negative && (n = '-' + n), n) + } + if (t === (0 | t) && t >= 2 && t <= 36) { + var f = d[t], + c = l[t] + n = '' + var p = this.clone() + for (p.negative = 0; !p.isZero(); ) { + var b = p.modrn(c).toString(t) + n = (p = p.idivn(c)).isZero() ? b + n : h[f - b.length] + b + n + } + for (this.isZero() && (n = '0' + n); n.length % e != 0; ) n = '0' + n + return (0 !== this.negative && (n = '-' + n), n) + } + r(!1, 'Base should be between 2 and 36') + }), + (o.prototype.toNumber = function () { + var t = this.words[0] + return ( + 2 === this.length + ? (t += 67108864 * this.words[1]) + : 3 === this.length && 1 === this.words[2] + ? (t += 4503599627370496 + 67108864 * this.words[1]) + : this.length > 2 && r(!1, 'Number can only safely store up to 53 bits'), + 0 !== this.negative ? -t : t + ) + }), + (o.prototype.toJSON = function () { + return this.toString(16, 2) + }), + s && + (o.prototype.toBuffer = function (t, e) { + return this.toArrayLike(s, t, e) + }), + (o.prototype.toArray = function (t, e) { + return this.toArrayLike(Array, t, e) + })) + function p(t, e, n) { + n.negative = e.negative ^ t.negative + var r = (t.length + e.length) | 0 + ;((n.length = r), (r = (r - 1) | 0)) + var i = 0 | t.words[0], + o = 0 | e.words[0], + s = i * o, + a = 67108863 & s, + u = (s / 67108864) | 0 + n.words[0] = a + for (var f = 1; f < r; f++) { + for (var c = u >>> 26, h = 67108863 & u, d = Math.min(f, e.length - 1), l = Math.max(0, f - t.length + 1); l <= d; l++) { + var p = (f - l) | 0 + ;((c += ((s = (i = 0 | t.words[p]) * (o = 0 | e.words[l]) + h) / 67108864) | 0), (h = 67108863 & s)) + } + ;((n.words[f] = 0 | h), (u = 0 | c)) + } + return (0 !== u ? (n.words[f] = 0 | u) : n.length--, n._strip()) + } + ;((o.prototype.toArrayLike = function (t, e, n) { + this._strip() + var i = this.byteLength(), + o = n || Math.max(1, i) + ;(r(i <= o, 'byte array longer than desired length'), r(o > 0, 'Requested array length <= 0')) + var s = (function (t, e) { + return t.allocUnsafe ? t.allocUnsafe(e) : new t(e) + })(t, o) + return (this['_toArrayLike' + ('le' === e ? 'LE' : 'BE')](s, i), s) + }), + (o.prototype._toArrayLikeLE = function (t, e) { + for (var n = 0, r = 0, i = 0, o = 0; i < this.length; i++) { + var s = (this.words[i] << o) | r + ;((t[n++] = 255 & s), + n < t.length && (t[n++] = (s >> 8) & 255), + n < t.length && (t[n++] = (s >> 16) & 255), + 6 === o ? (n < t.length && (t[n++] = (s >> 24) & 255), (r = 0), (o = 0)) : ((r = s >>> 24), (o += 2))) + } + if (n < t.length) for (t[n++] = r; n < t.length; ) t[n++] = 0 + }), + (o.prototype._toArrayLikeBE = function (t, e) { + for (var n = t.length - 1, r = 0, i = 0, o = 0; i < this.length; i++) { + var s = (this.words[i] << o) | r + ;((t[n--] = 255 & s), + n >= 0 && (t[n--] = (s >> 8) & 255), + n >= 0 && (t[n--] = (s >> 16) & 255), + 6 === o ? (n >= 0 && (t[n--] = (s >> 24) & 255), (r = 0), (o = 0)) : ((r = s >>> 24), (o += 2))) + } + if (n >= 0) for (t[n--] = r; n >= 0; ) t[n--] = 0 + }), + Math.clz32 + ? (o.prototype._countBits = function (t) { + return 32 - Math.clz32(t) + }) + : (o.prototype._countBits = function (t) { + var e = t, + n = 0 + return ( + e >= 4096 && ((n += 13), (e >>>= 13)), + e >= 64 && ((n += 7), (e >>>= 7)), + e >= 8 && ((n += 4), (e >>>= 4)), + e >= 2 && ((n += 2), (e >>>= 2)), + n + e + ) + }), + (o.prototype._zeroBits = function (t) { + if (0 === t) return 26 + var e = t, + n = 0 + return ( + 0 == (8191 & e) && ((n += 13), (e >>>= 13)), + 0 == (127 & e) && ((n += 7), (e >>>= 7)), + 0 == (15 & e) && ((n += 4), (e >>>= 4)), + 0 == (3 & e) && ((n += 2), (e >>>= 2)), + 0 == (1 & e) && n++, + n + ) + }), + (o.prototype.bitLength = function () { + var t = this.words[this.length - 1], + e = this._countBits(t) + return 26 * (this.length - 1) + e + }), + (o.prototype.zeroBits = function () { + if (this.isZero()) return 0 + for (var t = 0, e = 0; e < this.length; e++) { + var n = this._zeroBits(this.words[e]) + if (((t += n), 26 !== n)) break + } + return t + }), + (o.prototype.byteLength = function () { + return Math.ceil(this.bitLength() / 8) + }), + (o.prototype.toTwos = function (t) { + return 0 !== this.negative ? this.abs().inotn(t).iaddn(1) : this.clone() + }), + (o.prototype.fromTwos = function (t) { + return this.testn(t - 1) ? this.notn(t).iaddn(1).ineg() : this.clone() + }), + (o.prototype.isNeg = function () { + return 0 !== this.negative + }), + (o.prototype.neg = function () { + return this.clone().ineg() + }), + (o.prototype.ineg = function () { + return (this.isZero() || (this.negative ^= 1), this) + }), + (o.prototype.iuor = function (t) { + for (; this.length < t.length; ) this.words[this.length++] = 0 + for (var e = 0; e < t.length; e++) this.words[e] = this.words[e] | t.words[e] + return this._strip() + }), + (o.prototype.ior = function (t) { + return (r(0 == (this.negative | t.negative)), this.iuor(t)) + }), + (o.prototype.or = function (t) { + return this.length > t.length ? this.clone().ior(t) : t.clone().ior(this) + }), + (o.prototype.uor = function (t) { + return this.length > t.length ? this.clone().iuor(t) : t.clone().iuor(this) + }), + (o.prototype.iuand = function (t) { + var e + e = this.length > t.length ? t : this + for (var n = 0; n < e.length; n++) this.words[n] = this.words[n] & t.words[n] + return ((this.length = e.length), this._strip()) + }), + (o.prototype.iand = function (t) { + return (r(0 == (this.negative | t.negative)), this.iuand(t)) + }), + (o.prototype.and = function (t) { + return this.length > t.length ? this.clone().iand(t) : t.clone().iand(this) + }), + (o.prototype.uand = function (t) { + return this.length > t.length ? this.clone().iuand(t) : t.clone().iuand(this) + }), + (o.prototype.iuxor = function (t) { + var e, n + this.length > t.length ? ((e = this), (n = t)) : ((e = t), (n = this)) + for (var r = 0; r < n.length; r++) this.words[r] = e.words[r] ^ n.words[r] + if (this !== e) for (; r < e.length; r++) this.words[r] = e.words[r] + return ((this.length = e.length), this._strip()) + }), + (o.prototype.ixor = function (t) { + return (r(0 == (this.negative | t.negative)), this.iuxor(t)) + }), + (o.prototype.xor = function (t) { + return this.length > t.length ? this.clone().ixor(t) : t.clone().ixor(this) + }), + (o.prototype.uxor = function (t) { + return this.length > t.length ? this.clone().iuxor(t) : t.clone().iuxor(this) + }), + (o.prototype.inotn = function (t) { + r('number' == typeof t && t >= 0) + var e = 0 | Math.ceil(t / 26), + n = t % 26 + ;(this._expand(e), n > 0 && e--) + for (var i = 0; i < e; i++) this.words[i] = 67108863 & ~this.words[i] + return (n > 0 && (this.words[i] = ~this.words[i] & (67108863 >> (26 - n))), this._strip()) + }), + (o.prototype.notn = function (t) { + return this.clone().inotn(t) + }), + (o.prototype.setn = function (t, e) { + r('number' == typeof t && t >= 0) + var n = (t / 26) | 0, + i = t % 26 + return (this._expand(n + 1), (this.words[n] = e ? this.words[n] | (1 << i) : this.words[n] & ~(1 << i)), this._strip()) + }), + (o.prototype.iadd = function (t) { + var e, n, r + if (0 !== this.negative && 0 === t.negative) return ((this.negative = 0), (e = this.isub(t)), (this.negative ^= 1), this._normSign()) + if (0 === this.negative && 0 !== t.negative) return ((t.negative = 0), (e = this.isub(t)), (t.negative = 1), e._normSign()) + this.length > t.length ? ((n = this), (r = t)) : ((n = t), (r = this)) + for (var i = 0, o = 0; o < r.length; o++) ((e = (0 | n.words[o]) + (0 | r.words[o]) + i), (this.words[o] = 67108863 & e), (i = e >>> 26)) + for (; 0 !== i && o < n.length; o++) ((e = (0 | n.words[o]) + i), (this.words[o] = 67108863 & e), (i = e >>> 26)) + if (((this.length = n.length), 0 !== i)) ((this.words[this.length] = i), this.length++) + else if (n !== this) for (; o < n.length; o++) this.words[o] = n.words[o] + return this + }), + (o.prototype.add = function (t) { + var e + return 0 !== t.negative && 0 === this.negative + ? ((t.negative = 0), (e = this.sub(t)), (t.negative ^= 1), e) + : 0 === t.negative && 0 !== this.negative + ? ((this.negative = 0), (e = t.sub(this)), (this.negative = 1), e) + : this.length > t.length + ? this.clone().iadd(t) + : t.clone().iadd(this) + }), + (o.prototype.isub = function (t) { + if (0 !== t.negative) { + t.negative = 0 + var e = this.iadd(t) + return ((t.negative = 1), e._normSign()) + } + if (0 !== this.negative) return ((this.negative = 0), this.iadd(t), (this.negative = 1), this._normSign()) + var n, + r, + i = this.cmp(t) + if (0 === i) return ((this.negative = 0), (this.length = 1), (this.words[0] = 0), this) + i > 0 ? ((n = this), (r = t)) : ((n = t), (r = this)) + for (var o = 0, s = 0; s < r.length; s++) ((o = (e = (0 | n.words[s]) - (0 | r.words[s]) + o) >> 26), (this.words[s] = 67108863 & e)) + for (; 0 !== o && s < n.length; s++) ((o = (e = (0 | n.words[s]) + o) >> 26), (this.words[s] = 67108863 & e)) + if (0 === o && s < n.length && n !== this) for (; s < n.length; s++) this.words[s] = n.words[s] + return ((this.length = Math.max(this.length, s)), n !== this && (this.negative = 1), this._strip()) + }), + (o.prototype.sub = function (t) { + return this.clone().isub(t) + })) + var b = function (t, e, n) { + var r, + i, + o, + s = t.words, + a = e.words, + u = n.words, + f = 0, + c = 0 | s[0], + h = 8191 & c, + d = c >>> 13, + l = 0 | s[1], + p = 8191 & l, + b = l >>> 13, + g = 0 | s[2], + v = 8191 & g, + m = g >>> 13, + y = 0 | s[3], + w = 8191 & y, + _ = y >>> 13, + S = 0 | s[4], + M = 8191 & S, + E = S >>> 13, + A = 0 | s[5], + x = 8191 & A, + I = A >>> 13, + T = 0 | s[6], + k = 8191 & T, + L = T >>> 13, + N = 0 | s[7], + R = 8191 & N, + O = N >>> 13, + B = 0 | s[8], + z = 8191 & B, + P = B >>> 13, + U = 0 | s[9], + F = 8191 & U, + j = U >>> 13, + C = 0 | a[0], + D = 8191 & C, + q = C >>> 13, + V = 0 | a[1], + H = 8191 & V, + W = V >>> 13, + Z = 0 | a[2], + Y = 8191 & Z, + J = Z >>> 13, + K = 0 | a[3], + $ = 8191 & K, + X = K >>> 13, + G = 0 | a[4], + Q = 8191 & G, + tt = G >>> 13, + et = 0 | a[5], + nt = 8191 & et, + rt = et >>> 13, + it = 0 | a[6], + ot = 8191 & it, + st = it >>> 13, + at = 0 | a[7], + ut = 8191 & at, + ft = at >>> 13, + ct = 0 | a[8], + ht = 8191 & ct, + dt = ct >>> 13, + lt = 0 | a[9], + pt = 8191 & lt, + bt = lt >>> 13 + ;((n.negative = t.negative ^ e.negative), (n.length = 19)) + var gt = (((f + (r = Math.imul(h, D))) | 0) + ((8191 & (i = ((i = Math.imul(h, q)) + Math.imul(d, D)) | 0)) << 13)) | 0 + ;((f = ((((o = Math.imul(d, q)) + (i >>> 13)) | 0) + (gt >>> 26)) | 0), + (gt &= 67108863), + (r = Math.imul(p, D)), + (i = ((i = Math.imul(p, q)) + Math.imul(b, D)) | 0), + (o = Math.imul(b, q))) + var vt = (((f + (r = (r + Math.imul(h, H)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(h, W)) | 0) + Math.imul(d, H)) | 0)) << 13)) | 0 + ;((f = ((((o = (o + Math.imul(d, W)) | 0) + (i >>> 13)) | 0) + (vt >>> 26)) | 0), + (vt &= 67108863), + (r = Math.imul(v, D)), + (i = ((i = Math.imul(v, q)) + Math.imul(m, D)) | 0), + (o = Math.imul(m, q)), + (r = (r + Math.imul(p, H)) | 0), + (i = ((i = (i + Math.imul(p, W)) | 0) + Math.imul(b, H)) | 0), + (o = (o + Math.imul(b, W)) | 0)) + var mt = (((f + (r = (r + Math.imul(h, Y)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(h, J)) | 0) + Math.imul(d, Y)) | 0)) << 13)) | 0 + ;((f = ((((o = (o + Math.imul(d, J)) | 0) + (i >>> 13)) | 0) + (mt >>> 26)) | 0), + (mt &= 67108863), + (r = Math.imul(w, D)), + (i = ((i = Math.imul(w, q)) + Math.imul(_, D)) | 0), + (o = Math.imul(_, q)), + (r = (r + Math.imul(v, H)) | 0), + (i = ((i = (i + Math.imul(v, W)) | 0) + Math.imul(m, H)) | 0), + (o = (o + Math.imul(m, W)) | 0), + (r = (r + Math.imul(p, Y)) | 0), + (i = ((i = (i + Math.imul(p, J)) | 0) + Math.imul(b, Y)) | 0), + (o = (o + Math.imul(b, J)) | 0)) + var yt = (((f + (r = (r + Math.imul(h, $)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(h, X)) | 0) + Math.imul(d, $)) | 0)) << 13)) | 0 + ;((f = ((((o = (o + Math.imul(d, X)) | 0) + (i >>> 13)) | 0) + (yt >>> 26)) | 0), + (yt &= 67108863), + (r = Math.imul(M, D)), + (i = ((i = Math.imul(M, q)) + Math.imul(E, D)) | 0), + (o = Math.imul(E, q)), + (r = (r + Math.imul(w, H)) | 0), + (i = ((i = (i + Math.imul(w, W)) | 0) + Math.imul(_, H)) | 0), + (o = (o + Math.imul(_, W)) | 0), + (r = (r + Math.imul(v, Y)) | 0), + (i = ((i = (i + Math.imul(v, J)) | 0) + Math.imul(m, Y)) | 0), + (o = (o + Math.imul(m, J)) | 0), + (r = (r + Math.imul(p, $)) | 0), + (i = ((i = (i + Math.imul(p, X)) | 0) + Math.imul(b, $)) | 0), + (o = (o + Math.imul(b, X)) | 0)) + var wt = (((f + (r = (r + Math.imul(h, Q)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(h, tt)) | 0) + Math.imul(d, Q)) | 0)) << 13)) | 0 + ;((f = ((((o = (o + Math.imul(d, tt)) | 0) + (i >>> 13)) | 0) + (wt >>> 26)) | 0), + (wt &= 67108863), + (r = Math.imul(x, D)), + (i = ((i = Math.imul(x, q)) + Math.imul(I, D)) | 0), + (o = Math.imul(I, q)), + (r = (r + Math.imul(M, H)) | 0), + (i = ((i = (i + Math.imul(M, W)) | 0) + Math.imul(E, H)) | 0), + (o = (o + Math.imul(E, W)) | 0), + (r = (r + Math.imul(w, Y)) | 0), + (i = ((i = (i + Math.imul(w, J)) | 0) + Math.imul(_, Y)) | 0), + (o = (o + Math.imul(_, J)) | 0), + (r = (r + Math.imul(v, $)) | 0), + (i = ((i = (i + Math.imul(v, X)) | 0) + Math.imul(m, $)) | 0), + (o = (o + Math.imul(m, X)) | 0), + (r = (r + Math.imul(p, Q)) | 0), + (i = ((i = (i + Math.imul(p, tt)) | 0) + Math.imul(b, Q)) | 0), + (o = (o + Math.imul(b, tt)) | 0)) + var _t = + (((f + (r = (r + Math.imul(h, nt)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(h, rt)) | 0) + Math.imul(d, nt)) | 0)) << 13)) | 0 + ;((f = ((((o = (o + Math.imul(d, rt)) | 0) + (i >>> 13)) | 0) + (_t >>> 26)) | 0), + (_t &= 67108863), + (r = Math.imul(k, D)), + (i = ((i = Math.imul(k, q)) + Math.imul(L, D)) | 0), + (o = Math.imul(L, q)), + (r = (r + Math.imul(x, H)) | 0), + (i = ((i = (i + Math.imul(x, W)) | 0) + Math.imul(I, H)) | 0), + (o = (o + Math.imul(I, W)) | 0), + (r = (r + Math.imul(M, Y)) | 0), + (i = ((i = (i + Math.imul(M, J)) | 0) + Math.imul(E, Y)) | 0), + (o = (o + Math.imul(E, J)) | 0), + (r = (r + Math.imul(w, $)) | 0), + (i = ((i = (i + Math.imul(w, X)) | 0) + Math.imul(_, $)) | 0), + (o = (o + Math.imul(_, X)) | 0), + (r = (r + Math.imul(v, Q)) | 0), + (i = ((i = (i + Math.imul(v, tt)) | 0) + Math.imul(m, Q)) | 0), + (o = (o + Math.imul(m, tt)) | 0), + (r = (r + Math.imul(p, nt)) | 0), + (i = ((i = (i + Math.imul(p, rt)) | 0) + Math.imul(b, nt)) | 0), + (o = (o + Math.imul(b, rt)) | 0)) + var St = + (((f + (r = (r + Math.imul(h, ot)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(h, st)) | 0) + Math.imul(d, ot)) | 0)) << 13)) | 0 + ;((f = ((((o = (o + Math.imul(d, st)) | 0) + (i >>> 13)) | 0) + (St >>> 26)) | 0), + (St &= 67108863), + (r = Math.imul(R, D)), + (i = ((i = Math.imul(R, q)) + Math.imul(O, D)) | 0), + (o = Math.imul(O, q)), + (r = (r + Math.imul(k, H)) | 0), + (i = ((i = (i + Math.imul(k, W)) | 0) + Math.imul(L, H)) | 0), + (o = (o + Math.imul(L, W)) | 0), + (r = (r + Math.imul(x, Y)) | 0), + (i = ((i = (i + Math.imul(x, J)) | 0) + Math.imul(I, Y)) | 0), + (o = (o + Math.imul(I, J)) | 0), + (r = (r + Math.imul(M, $)) | 0), + (i = ((i = (i + Math.imul(M, X)) | 0) + Math.imul(E, $)) | 0), + (o = (o + Math.imul(E, X)) | 0), + (r = (r + Math.imul(w, Q)) | 0), + (i = ((i = (i + Math.imul(w, tt)) | 0) + Math.imul(_, Q)) | 0), + (o = (o + Math.imul(_, tt)) | 0), + (r = (r + Math.imul(v, nt)) | 0), + (i = ((i = (i + Math.imul(v, rt)) | 0) + Math.imul(m, nt)) | 0), + (o = (o + Math.imul(m, rt)) | 0), + (r = (r + Math.imul(p, ot)) | 0), + (i = ((i = (i + Math.imul(p, st)) | 0) + Math.imul(b, ot)) | 0), + (o = (o + Math.imul(b, st)) | 0)) + var Mt = + (((f + (r = (r + Math.imul(h, ut)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(h, ft)) | 0) + Math.imul(d, ut)) | 0)) << 13)) | 0 + ;((f = ((((o = (o + Math.imul(d, ft)) | 0) + (i >>> 13)) | 0) + (Mt >>> 26)) | 0), + (Mt &= 67108863), + (r = Math.imul(z, D)), + (i = ((i = Math.imul(z, q)) + Math.imul(P, D)) | 0), + (o = Math.imul(P, q)), + (r = (r + Math.imul(R, H)) | 0), + (i = ((i = (i + Math.imul(R, W)) | 0) + Math.imul(O, H)) | 0), + (o = (o + Math.imul(O, W)) | 0), + (r = (r + Math.imul(k, Y)) | 0), + (i = ((i = (i + Math.imul(k, J)) | 0) + Math.imul(L, Y)) | 0), + (o = (o + Math.imul(L, J)) | 0), + (r = (r + Math.imul(x, $)) | 0), + (i = ((i = (i + Math.imul(x, X)) | 0) + Math.imul(I, $)) | 0), + (o = (o + Math.imul(I, X)) | 0), + (r = (r + Math.imul(M, Q)) | 0), + (i = ((i = (i + Math.imul(M, tt)) | 0) + Math.imul(E, Q)) | 0), + (o = (o + Math.imul(E, tt)) | 0), + (r = (r + Math.imul(w, nt)) | 0), + (i = ((i = (i + Math.imul(w, rt)) | 0) + Math.imul(_, nt)) | 0), + (o = (o + Math.imul(_, rt)) | 0), + (r = (r + Math.imul(v, ot)) | 0), + (i = ((i = (i + Math.imul(v, st)) | 0) + Math.imul(m, ot)) | 0), + (o = (o + Math.imul(m, st)) | 0), + (r = (r + Math.imul(p, ut)) | 0), + (i = ((i = (i + Math.imul(p, ft)) | 0) + Math.imul(b, ut)) | 0), + (o = (o + Math.imul(b, ft)) | 0)) + var Et = + (((f + (r = (r + Math.imul(h, ht)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(h, dt)) | 0) + Math.imul(d, ht)) | 0)) << 13)) | 0 + ;((f = ((((o = (o + Math.imul(d, dt)) | 0) + (i >>> 13)) | 0) + (Et >>> 26)) | 0), + (Et &= 67108863), + (r = Math.imul(F, D)), + (i = ((i = Math.imul(F, q)) + Math.imul(j, D)) | 0), + (o = Math.imul(j, q)), + (r = (r + Math.imul(z, H)) | 0), + (i = ((i = (i + Math.imul(z, W)) | 0) + Math.imul(P, H)) | 0), + (o = (o + Math.imul(P, W)) | 0), + (r = (r + Math.imul(R, Y)) | 0), + (i = ((i = (i + Math.imul(R, J)) | 0) + Math.imul(O, Y)) | 0), + (o = (o + Math.imul(O, J)) | 0), + (r = (r + Math.imul(k, $)) | 0), + (i = ((i = (i + Math.imul(k, X)) | 0) + Math.imul(L, $)) | 0), + (o = (o + Math.imul(L, X)) | 0), + (r = (r + Math.imul(x, Q)) | 0), + (i = ((i = (i + Math.imul(x, tt)) | 0) + Math.imul(I, Q)) | 0), + (o = (o + Math.imul(I, tt)) | 0), + (r = (r + Math.imul(M, nt)) | 0), + (i = ((i = (i + Math.imul(M, rt)) | 0) + Math.imul(E, nt)) | 0), + (o = (o + Math.imul(E, rt)) | 0), + (r = (r + Math.imul(w, ot)) | 0), + (i = ((i = (i + Math.imul(w, st)) | 0) + Math.imul(_, ot)) | 0), + (o = (o + Math.imul(_, st)) | 0), + (r = (r + Math.imul(v, ut)) | 0), + (i = ((i = (i + Math.imul(v, ft)) | 0) + Math.imul(m, ut)) | 0), + (o = (o + Math.imul(m, ft)) | 0), + (r = (r + Math.imul(p, ht)) | 0), + (i = ((i = (i + Math.imul(p, dt)) | 0) + Math.imul(b, ht)) | 0), + (o = (o + Math.imul(b, dt)) | 0)) + var At = + (((f + (r = (r + Math.imul(h, pt)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(h, bt)) | 0) + Math.imul(d, pt)) | 0)) << 13)) | 0 + ;((f = ((((o = (o + Math.imul(d, bt)) | 0) + (i >>> 13)) | 0) + (At >>> 26)) | 0), + (At &= 67108863), + (r = Math.imul(F, H)), + (i = ((i = Math.imul(F, W)) + Math.imul(j, H)) | 0), + (o = Math.imul(j, W)), + (r = (r + Math.imul(z, Y)) | 0), + (i = ((i = (i + Math.imul(z, J)) | 0) + Math.imul(P, Y)) | 0), + (o = (o + Math.imul(P, J)) | 0), + (r = (r + Math.imul(R, $)) | 0), + (i = ((i = (i + Math.imul(R, X)) | 0) + Math.imul(O, $)) | 0), + (o = (o + Math.imul(O, X)) | 0), + (r = (r + Math.imul(k, Q)) | 0), + (i = ((i = (i + Math.imul(k, tt)) | 0) + Math.imul(L, Q)) | 0), + (o = (o + Math.imul(L, tt)) | 0), + (r = (r + Math.imul(x, nt)) | 0), + (i = ((i = (i + Math.imul(x, rt)) | 0) + Math.imul(I, nt)) | 0), + (o = (o + Math.imul(I, rt)) | 0), + (r = (r + Math.imul(M, ot)) | 0), + (i = ((i = (i + Math.imul(M, st)) | 0) + Math.imul(E, ot)) | 0), + (o = (o + Math.imul(E, st)) | 0), + (r = (r + Math.imul(w, ut)) | 0), + (i = ((i = (i + Math.imul(w, ft)) | 0) + Math.imul(_, ut)) | 0), + (o = (o + Math.imul(_, ft)) | 0), + (r = (r + Math.imul(v, ht)) | 0), + (i = ((i = (i + Math.imul(v, dt)) | 0) + Math.imul(m, ht)) | 0), + (o = (o + Math.imul(m, dt)) | 0)) + var xt = + (((f + (r = (r + Math.imul(p, pt)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(p, bt)) | 0) + Math.imul(b, pt)) | 0)) << 13)) | 0 + ;((f = ((((o = (o + Math.imul(b, bt)) | 0) + (i >>> 13)) | 0) + (xt >>> 26)) | 0), + (xt &= 67108863), + (r = Math.imul(F, Y)), + (i = ((i = Math.imul(F, J)) + Math.imul(j, Y)) | 0), + (o = Math.imul(j, J)), + (r = (r + Math.imul(z, $)) | 0), + (i = ((i = (i + Math.imul(z, X)) | 0) + Math.imul(P, $)) | 0), + (o = (o + Math.imul(P, X)) | 0), + (r = (r + Math.imul(R, Q)) | 0), + (i = ((i = (i + Math.imul(R, tt)) | 0) + Math.imul(O, Q)) | 0), + (o = (o + Math.imul(O, tt)) | 0), + (r = (r + Math.imul(k, nt)) | 0), + (i = ((i = (i + Math.imul(k, rt)) | 0) + Math.imul(L, nt)) | 0), + (o = (o + Math.imul(L, rt)) | 0), + (r = (r + Math.imul(x, ot)) | 0), + (i = ((i = (i + Math.imul(x, st)) | 0) + Math.imul(I, ot)) | 0), + (o = (o + Math.imul(I, st)) | 0), + (r = (r + Math.imul(M, ut)) | 0), + (i = ((i = (i + Math.imul(M, ft)) | 0) + Math.imul(E, ut)) | 0), + (o = (o + Math.imul(E, ft)) | 0), + (r = (r + Math.imul(w, ht)) | 0), + (i = ((i = (i + Math.imul(w, dt)) | 0) + Math.imul(_, ht)) | 0), + (o = (o + Math.imul(_, dt)) | 0)) + var It = + (((f + (r = (r + Math.imul(v, pt)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(v, bt)) | 0) + Math.imul(m, pt)) | 0)) << 13)) | 0 + ;((f = ((((o = (o + Math.imul(m, bt)) | 0) + (i >>> 13)) | 0) + (It >>> 26)) | 0), + (It &= 67108863), + (r = Math.imul(F, $)), + (i = ((i = Math.imul(F, X)) + Math.imul(j, $)) | 0), + (o = Math.imul(j, X)), + (r = (r + Math.imul(z, Q)) | 0), + (i = ((i = (i + Math.imul(z, tt)) | 0) + Math.imul(P, Q)) | 0), + (o = (o + Math.imul(P, tt)) | 0), + (r = (r + Math.imul(R, nt)) | 0), + (i = ((i = (i + Math.imul(R, rt)) | 0) + Math.imul(O, nt)) | 0), + (o = (o + Math.imul(O, rt)) | 0), + (r = (r + Math.imul(k, ot)) | 0), + (i = ((i = (i + Math.imul(k, st)) | 0) + Math.imul(L, ot)) | 0), + (o = (o + Math.imul(L, st)) | 0), + (r = (r + Math.imul(x, ut)) | 0), + (i = ((i = (i + Math.imul(x, ft)) | 0) + Math.imul(I, ut)) | 0), + (o = (o + Math.imul(I, ft)) | 0), + (r = (r + Math.imul(M, ht)) | 0), + (i = ((i = (i + Math.imul(M, dt)) | 0) + Math.imul(E, ht)) | 0), + (o = (o + Math.imul(E, dt)) | 0)) + var Tt = + (((f + (r = (r + Math.imul(w, pt)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(w, bt)) | 0) + Math.imul(_, pt)) | 0)) << 13)) | 0 + ;((f = ((((o = (o + Math.imul(_, bt)) | 0) + (i >>> 13)) | 0) + (Tt >>> 26)) | 0), + (Tt &= 67108863), + (r = Math.imul(F, Q)), + (i = ((i = Math.imul(F, tt)) + Math.imul(j, Q)) | 0), + (o = Math.imul(j, tt)), + (r = (r + Math.imul(z, nt)) | 0), + (i = ((i = (i + Math.imul(z, rt)) | 0) + Math.imul(P, nt)) | 0), + (o = (o + Math.imul(P, rt)) | 0), + (r = (r + Math.imul(R, ot)) | 0), + (i = ((i = (i + Math.imul(R, st)) | 0) + Math.imul(O, ot)) | 0), + (o = (o + Math.imul(O, st)) | 0), + (r = (r + Math.imul(k, ut)) | 0), + (i = ((i = (i + Math.imul(k, ft)) | 0) + Math.imul(L, ut)) | 0), + (o = (o + Math.imul(L, ft)) | 0), + (r = (r + Math.imul(x, ht)) | 0), + (i = ((i = (i + Math.imul(x, dt)) | 0) + Math.imul(I, ht)) | 0), + (o = (o + Math.imul(I, dt)) | 0)) + var kt = + (((f + (r = (r + Math.imul(M, pt)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(M, bt)) | 0) + Math.imul(E, pt)) | 0)) << 13)) | 0 + ;((f = ((((o = (o + Math.imul(E, bt)) | 0) + (i >>> 13)) | 0) + (kt >>> 26)) | 0), + (kt &= 67108863), + (r = Math.imul(F, nt)), + (i = ((i = Math.imul(F, rt)) + Math.imul(j, nt)) | 0), + (o = Math.imul(j, rt)), + (r = (r + Math.imul(z, ot)) | 0), + (i = ((i = (i + Math.imul(z, st)) | 0) + Math.imul(P, ot)) | 0), + (o = (o + Math.imul(P, st)) | 0), + (r = (r + Math.imul(R, ut)) | 0), + (i = ((i = (i + Math.imul(R, ft)) | 0) + Math.imul(O, ut)) | 0), + (o = (o + Math.imul(O, ft)) | 0), + (r = (r + Math.imul(k, ht)) | 0), + (i = ((i = (i + Math.imul(k, dt)) | 0) + Math.imul(L, ht)) | 0), + (o = (o + Math.imul(L, dt)) | 0)) + var Lt = + (((f + (r = (r + Math.imul(x, pt)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(x, bt)) | 0) + Math.imul(I, pt)) | 0)) << 13)) | 0 + ;((f = ((((o = (o + Math.imul(I, bt)) | 0) + (i >>> 13)) | 0) + (Lt >>> 26)) | 0), + (Lt &= 67108863), + (r = Math.imul(F, ot)), + (i = ((i = Math.imul(F, st)) + Math.imul(j, ot)) | 0), + (o = Math.imul(j, st)), + (r = (r + Math.imul(z, ut)) | 0), + (i = ((i = (i + Math.imul(z, ft)) | 0) + Math.imul(P, ut)) | 0), + (o = (o + Math.imul(P, ft)) | 0), + (r = (r + Math.imul(R, ht)) | 0), + (i = ((i = (i + Math.imul(R, dt)) | 0) + Math.imul(O, ht)) | 0), + (o = (o + Math.imul(O, dt)) | 0)) + var Nt = + (((f + (r = (r + Math.imul(k, pt)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(k, bt)) | 0) + Math.imul(L, pt)) | 0)) << 13)) | 0 + ;((f = ((((o = (o + Math.imul(L, bt)) | 0) + (i >>> 13)) | 0) + (Nt >>> 26)) | 0), + (Nt &= 67108863), + (r = Math.imul(F, ut)), + (i = ((i = Math.imul(F, ft)) + Math.imul(j, ut)) | 0), + (o = Math.imul(j, ft)), + (r = (r + Math.imul(z, ht)) | 0), + (i = ((i = (i + Math.imul(z, dt)) | 0) + Math.imul(P, ht)) | 0), + (o = (o + Math.imul(P, dt)) | 0)) + var Rt = + (((f + (r = (r + Math.imul(R, pt)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(R, bt)) | 0) + Math.imul(O, pt)) | 0)) << 13)) | 0 + ;((f = ((((o = (o + Math.imul(O, bt)) | 0) + (i >>> 13)) | 0) + (Rt >>> 26)) | 0), + (Rt &= 67108863), + (r = Math.imul(F, ht)), + (i = ((i = Math.imul(F, dt)) + Math.imul(j, ht)) | 0), + (o = Math.imul(j, dt))) + var Ot = + (((f + (r = (r + Math.imul(z, pt)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(z, bt)) | 0) + Math.imul(P, pt)) | 0)) << 13)) | 0 + ;((f = ((((o = (o + Math.imul(P, bt)) | 0) + (i >>> 13)) | 0) + (Ot >>> 26)) | 0), (Ot &= 67108863)) + var Bt = (((f + (r = Math.imul(F, pt))) | 0) + ((8191 & (i = ((i = Math.imul(F, bt)) + Math.imul(j, pt)) | 0)) << 13)) | 0 + return ( + (f = ((((o = Math.imul(j, bt)) + (i >>> 13)) | 0) + (Bt >>> 26)) | 0), + (Bt &= 67108863), + (u[0] = gt), + (u[1] = vt), + (u[2] = mt), + (u[3] = yt), + (u[4] = wt), + (u[5] = _t), + (u[6] = St), + (u[7] = Mt), + (u[8] = Et), + (u[9] = At), + (u[10] = xt), + (u[11] = It), + (u[12] = Tt), + (u[13] = kt), + (u[14] = Lt), + (u[15] = Nt), + (u[16] = Rt), + (u[17] = Ot), + (u[18] = Bt), + 0 !== f && ((u[19] = f), n.length++), + n + ) + } + function g(t, e, n) { + ;((n.negative = e.negative ^ t.negative), (n.length = t.length + e.length)) + for (var r = 0, i = 0, o = 0; o < n.length - 1; o++) { + var s = i + i = 0 + for (var a = 67108863 & r, u = Math.min(o, e.length - 1), f = Math.max(0, o - t.length + 1); f <= u; f++) { + var c = o - f, + h = (0 | t.words[c]) * (0 | e.words[f]), + d = 67108863 & h + ;((a = 67108863 & (d = (d + a) | 0)), (i += (s = ((s = (s + ((h / 67108864) | 0)) | 0) + (d >>> 26)) | 0) >>> 26), (s &= 67108863)) + } + ;((n.words[o] = a), (r = s), (s = i)) + } + return (0 !== r ? (n.words[o] = r) : n.length--, n._strip()) + } + function v(t, e, n) { + return g(t, e, n) + } + function m(t, e) { + ;((this.x = t), (this.y = e)) + } + ;(Math.imul || (b = p), + (o.prototype.mulTo = function (t, e) { + var n = this.length + t.length + return 10 === this.length && 10 === t.length ? b(this, t, e) : n < 63 ? p(this, t, e) : n < 1024 ? g(this, t, e) : v(this, t, e) + }), + (m.prototype.makeRBT = function (t) { + for (var e = new Array(t), n = o.prototype._countBits(t) - 1, r = 0; r < t; r++) e[r] = this.revBin(r, n, t) + return e + }), + (m.prototype.revBin = function (t, e, n) { + if (0 === t || t === n - 1) return t + for (var r = 0, i = 0; i < e; i++) ((r |= (1 & t) << (e - i - 1)), (t >>= 1)) + return r + }), + (m.prototype.permute = function (t, e, n, r, i, o) { + for (var s = 0; s < o; s++) ((r[s] = e[t[s]]), (i[s] = n[t[s]])) + }), + (m.prototype.transform = function (t, e, n, r, i, o) { + this.permute(o, t, e, n, r, i) + for (var s = 1; s < i; s <<= 1) + for (var a = s << 1, u = Math.cos((2 * Math.PI) / a), f = Math.sin((2 * Math.PI) / a), c = 0; c < i; c += a) + for (var h = u, d = f, l = 0; l < s; l++) { + var p = n[c + l], + b = r[c + l], + g = n[c + l + s], + v = r[c + l + s], + m = h * g - d * v + ;((v = h * v + d * g), + (g = m), + (n[c + l] = p + g), + (r[c + l] = b + v), + (n[c + l + s] = p - g), + (r[c + l + s] = b - v), + l !== a && ((m = u * h - f * d), (d = u * d + f * h), (h = m))) + } + }), + (m.prototype.guessLen13b = function (t, e) { + var n = 1 | Math.max(e, t), + r = 1 & n, + i = 0 + for (n = (n / 2) | 0; n; n >>>= 1) i++ + return 1 << (i + 1 + r) + }), + (m.prototype.conjugate = function (t, e, n) { + if (!(n <= 1)) + for (var r = 0; r < n / 2; r++) { + var i = t[r] + ;((t[r] = t[n - r - 1]), (t[n - r - 1] = i), (i = e[r]), (e[r] = -e[n - r - 1]), (e[n - r - 1] = -i)) + } + }), + (m.prototype.normalize13b = function (t, e) { + for (var n = 0, r = 0; r < e / 2; r++) { + var i = 8192 * Math.round(t[2 * r + 1] / e) + Math.round(t[2 * r] / e) + n + ;((t[r] = 67108863 & i), (n = i < 67108864 ? 0 : (i / 67108864) | 0)) + } + return t + }), + (m.prototype.convert13b = function (t, e, n, i) { + for (var o = 0, s = 0; s < e; s++) ((o += 0 | t[s]), (n[2 * s] = 8191 & o), (o >>>= 13), (n[2 * s + 1] = 8191 & o), (o >>>= 13)) + for (s = 2 * e; s < i; ++s) n[s] = 0 + ;(r(0 === o), r(0 == (-8192 & o))) + }), + (m.prototype.stub = function (t) { + for (var e = new Array(t), n = 0; n < t; n++) e[n] = 0 + return e + }), + (m.prototype.mulp = function (t, e, n) { + var r = 2 * this.guessLen13b(t.length, e.length), + i = this.makeRBT(r), + o = this.stub(r), + s = new Array(r), + a = new Array(r), + u = new Array(r), + f = new Array(r), + c = new Array(r), + h = new Array(r), + d = n.words + ;((d.length = r), + this.convert13b(t.words, t.length, s, r), + this.convert13b(e.words, e.length, f, r), + this.transform(s, o, a, u, r, i), + this.transform(f, o, c, h, r, i)) + for (var l = 0; l < r; l++) { + var p = a[l] * c[l] - u[l] * h[l] + ;((u[l] = a[l] * h[l] + u[l] * c[l]), (a[l] = p)) + } + return ( + this.conjugate(a, u, r), + this.transform(a, u, d, o, r, i), + this.conjugate(d, o, r), + this.normalize13b(d, r), + (n.negative = t.negative ^ e.negative), + (n.length = t.length + e.length), + n._strip() + ) + }), + (o.prototype.mul = function (t) { + var e = new o(null) + return ((e.words = new Array(this.length + t.length)), this.mulTo(t, e)) + }), + (o.prototype.mulf = function (t) { + var e = new o(null) + return ((e.words = new Array(this.length + t.length)), v(this, t, e)) + }), + (o.prototype.imul = function (t) { + return this.clone().mulTo(t, this) + }), + (o.prototype.imuln = function (t) { + var e = t < 0 + ;(e && (t = -t), r('number' == typeof t), r(t < 67108864)) + for (var n = 0, i = 0; i < this.length; i++) { + var o = (0 | this.words[i]) * t, + s = (67108863 & o) + (67108863 & n) + ;((n >>= 26), (n += (o / 67108864) | 0), (n += s >>> 26), (this.words[i] = 67108863 & s)) + } + return (0 !== n && ((this.words[i] = n), this.length++), e ? this.ineg() : this) + }), + (o.prototype.muln = function (t) { + return this.clone().imuln(t) + }), + (o.prototype.sqr = function () { + return this.mul(this) + }), + (o.prototype.isqr = function () { + return this.imul(this.clone()) + }), + (o.prototype.pow = function (t) { + var e = (function (t) { + for (var e = new Array(t.bitLength()), n = 0; n < e.length; n++) { + var r = (n / 26) | 0, + i = n % 26 + e[n] = (t.words[r] >>> i) & 1 + } + return e + })(t) + if (0 === e.length) return new o(1) + for (var n = this, r = 0; r < e.length && 0 === e[r]; r++, n = n.sqr()); + if (++r < e.length) for (var i = n.sqr(); r < e.length; r++, i = i.sqr()) 0 !== e[r] && (n = n.mul(i)) + return n + }), + (o.prototype.iushln = function (t) { + r('number' == typeof t && t >= 0) + var e, + n = t % 26, + i = (t - n) / 26, + o = (67108863 >>> (26 - n)) << (26 - n) + if (0 !== n) { + var s = 0 + for (e = 0; e < this.length; e++) { + var a = this.words[e] & o, + u = ((0 | this.words[e]) - a) << n + ;((this.words[e] = u | s), (s = a >>> (26 - n))) + } + s && ((this.words[e] = s), this.length++) + } + if (0 !== i) { + for (e = this.length - 1; e >= 0; e--) this.words[e + i] = this.words[e] + for (e = 0; e < i; e++) this.words[e] = 0 + this.length += i + } + return this._strip() + }), + (o.prototype.ishln = function (t) { + return (r(0 === this.negative), this.iushln(t)) + }), + (o.prototype.iushrn = function (t, e, n) { + var i + ;(r('number' == typeof t && t >= 0), (i = e ? (e - (e % 26)) / 26 : 0)) + var o = t % 26, + s = Math.min((t - o) / 26, this.length), + a = 67108863 ^ ((67108863 >>> o) << o), + u = n + if (((i -= s), (i = Math.max(0, i)), u)) { + for (var f = 0; f < s; f++) u.words[f] = this.words[f] + u.length = s + } + if (0 === s); + else if (this.length > s) for (this.length -= s, f = 0; f < this.length; f++) this.words[f] = this.words[f + s] + else ((this.words[0] = 0), (this.length = 1)) + var c = 0 + for (f = this.length - 1; f >= 0 && (0 !== c || f >= i); f--) { + var h = 0 | this.words[f] + ;((this.words[f] = (c << (26 - o)) | (h >>> o)), (c = h & a)) + } + return (u && 0 !== c && (u.words[u.length++] = c), 0 === this.length && ((this.words[0] = 0), (this.length = 1)), this._strip()) + }), + (o.prototype.ishrn = function (t, e, n) { + return (r(0 === this.negative), this.iushrn(t, e, n)) + }), + (o.prototype.shln = function (t) { + return this.clone().ishln(t) + }), + (o.prototype.ushln = function (t) { + return this.clone().iushln(t) + }), + (o.prototype.shrn = function (t) { + return this.clone().ishrn(t) + }), + (o.prototype.ushrn = function (t) { + return this.clone().iushrn(t) + }), + (o.prototype.testn = function (t) { + r('number' == typeof t && t >= 0) + var e = t % 26, + n = (t - e) / 26, + i = 1 << e + return !(this.length <= n) && !!(this.words[n] & i) + }), + (o.prototype.imaskn = function (t) { + r('number' == typeof t && t >= 0) + var e = t % 26, + n = (t - e) / 26 + if ((r(0 === this.negative, 'imaskn works only with positive numbers'), this.length <= n)) return this + if ((0 !== e && n++, (this.length = Math.min(n, this.length)), 0 !== e)) { + var i = 67108863 ^ ((67108863 >>> e) << e) + this.words[this.length - 1] &= i + } + return this._strip() + }), + (o.prototype.maskn = function (t) { + return this.clone().imaskn(t) + }), + (o.prototype.iaddn = function (t) { + return ( + r('number' == typeof t), + r(t < 67108864), + t < 0 + ? this.isubn(-t) + : 0 !== this.negative + ? 1 === this.length && (0 | this.words[0]) <= t + ? ((this.words[0] = t - (0 | this.words[0])), (this.negative = 0), this) + : ((this.negative = 0), this.isubn(t), (this.negative = 1), this) + : this._iaddn(t) + ) + }), + (o.prototype._iaddn = function (t) { + this.words[0] += t + for (var e = 0; e < this.length && this.words[e] >= 67108864; e++) + ((this.words[e] -= 67108864), e === this.length - 1 ? (this.words[e + 1] = 1) : this.words[e + 1]++) + return ((this.length = Math.max(this.length, e + 1)), this) + }), + (o.prototype.isubn = function (t) { + if ((r('number' == typeof t), r(t < 67108864), t < 0)) return this.iaddn(-t) + if (0 !== this.negative) return ((this.negative = 0), this.iaddn(t), (this.negative = 1), this) + if (((this.words[0] -= t), 1 === this.length && this.words[0] < 0)) ((this.words[0] = -this.words[0]), (this.negative = 1)) + else for (var e = 0; e < this.length && this.words[e] < 0; e++) ((this.words[e] += 67108864), (this.words[e + 1] -= 1)) + return this._strip() + }), + (o.prototype.addn = function (t) { + return this.clone().iaddn(t) + }), + (o.prototype.subn = function (t) { + return this.clone().isubn(t) + }), + (o.prototype.iabs = function () { + return ((this.negative = 0), this) + }), + (o.prototype.abs = function () { + return this.clone().iabs() + }), + (o.prototype._ishlnsubmul = function (t, e, n) { + var i, + o, + s = t.length + n + this._expand(s) + var a = 0 + for (i = 0; i < t.length; i++) { + o = (0 | this.words[i + n]) + a + var u = (0 | t.words[i]) * e + ;((a = ((o -= 67108863 & u) >> 26) - ((u / 67108864) | 0)), (this.words[i + n] = 67108863 & o)) + } + for (; i < this.length - n; i++) ((a = (o = (0 | this.words[i + n]) + a) >> 26), (this.words[i + n] = 67108863 & o)) + if (0 === a) return this._strip() + for (r(-1 === a), a = 0, i = 0; i < this.length; i++) ((a = (o = -(0 | this.words[i]) + a) >> 26), (this.words[i] = 67108863 & o)) + return ((this.negative = 1), this._strip()) + }), + (o.prototype._wordDiv = function (t, e) { + var n = (this.length, t.length), + r = this.clone(), + i = t, + s = 0 | i.words[i.length - 1] + 0 !== (n = 26 - this._countBits(s)) && ((i = i.ushln(n)), r.iushln(n), (s = 0 | i.words[i.length - 1])) + var a, + u = r.length - i.length + if ('mod' !== e) { + ;(((a = new o(null)).length = u + 1), (a.words = new Array(a.length))) + for (var f = 0; f < a.length; f++) a.words[f] = 0 + } + var c = r.clone()._ishlnsubmul(i, 1, u) + 0 === c.negative && ((r = c), a && (a.words[u] = 1)) + for (var h = u - 1; h >= 0; h--) { + var d = 67108864 * (0 | r.words[i.length + h]) + (0 | r.words[i.length + h - 1]) + for (d = Math.min((d / s) | 0, 67108863), r._ishlnsubmul(i, d, h); 0 !== r.negative; ) + (d--, (r.negative = 0), r._ishlnsubmul(i, 1, h), r.isZero() || (r.negative ^= 1)) + a && (a.words[h] = d) + } + return (a && a._strip(), r._strip(), 'div' !== e && 0 !== n && r.iushrn(n), { div: a || null, mod: r }) + }), + (o.prototype.divmod = function (t, e, n) { + return ( + r(!t.isZero()), + this.isZero() + ? { div: new o(0), mod: new o(0) } + : 0 !== this.negative && 0 === t.negative + ? ((a = this.neg().divmod(t, e)), + 'mod' !== e && (i = a.div.neg()), + 'div' !== e && ((s = a.mod.neg()), n && 0 !== s.negative && s.iadd(t)), + { div: i, mod: s }) + : 0 === this.negative && 0 !== t.negative + ? ((a = this.divmod(t.neg(), e)), 'mod' !== e && (i = a.div.neg()), { div: i, mod: a.mod }) + : 0 != (this.negative & t.negative) + ? ((a = this.neg().divmod(t.neg(), e)), + 'div' !== e && ((s = a.mod.neg()), n && 0 !== s.negative && s.isub(t)), + { div: a.div, mod: s }) + : t.length > this.length || this.cmp(t) < 0 + ? { div: new o(0), mod: this } + : 1 === t.length + ? 'div' === e + ? { div: this.divn(t.words[0]), mod: null } + : 'mod' === e + ? { div: null, mod: new o(this.modrn(t.words[0])) } + : { div: this.divn(t.words[0]), mod: new o(this.modrn(t.words[0])) } + : this._wordDiv(t, e) + ) + var i, s, a + }), + (o.prototype.div = function (t) { + return this.divmod(t, 'div', !1).div + }), + (o.prototype.mod = function (t) { + return this.divmod(t, 'mod', !1).mod + }), + (o.prototype.umod = function (t) { + return this.divmod(t, 'mod', !0).mod + }), + (o.prototype.divRound = function (t) { + var e = this.divmod(t) + if (e.mod.isZero()) return e.div + var n = 0 !== e.div.negative ? e.mod.isub(t) : e.mod, + r = t.ushrn(1), + i = t.andln(1), + o = n.cmp(r) + return o < 0 || (1 === i && 0 === o) ? e.div : 0 !== e.div.negative ? e.div.isubn(1) : e.div.iaddn(1) + }), + (o.prototype.modrn = function (t) { + var e = t < 0 + ;(e && (t = -t), r(t <= 67108863)) + for (var n = (1 << 26) % t, i = 0, o = this.length - 1; o >= 0; o--) i = (n * i + (0 | this.words[o])) % t + return e ? -i : i + }), + (o.prototype.modn = function (t) { + return this.modrn(t) + }), + (o.prototype.idivn = function (t) { + var e = t < 0 + ;(e && (t = -t), r(t <= 67108863)) + for (var n = 0, i = this.length - 1; i >= 0; i--) { + var o = (0 | this.words[i]) + 67108864 * n + ;((this.words[i] = (o / t) | 0), (n = o % t)) + } + return (this._strip(), e ? this.ineg() : this) + }), + (o.prototype.divn = function (t) { + return this.clone().idivn(t) + }), + (o.prototype.egcd = function (t) { + ;(r(0 === t.negative), r(!t.isZero())) + var e = this, + n = t.clone() + e = 0 !== e.negative ? e.umod(t) : e.clone() + for (var i = new o(1), s = new o(0), a = new o(0), u = new o(1), f = 0; e.isEven() && n.isEven(); ) (e.iushrn(1), n.iushrn(1), ++f) + for (var c = n.clone(), h = e.clone(); !e.isZero(); ) { + for (var d = 0, l = 1; 0 == (e.words[0] & l) && d < 26; ++d, l <<= 1); + if (d > 0) for (e.iushrn(d); d-- > 0; ) ((i.isOdd() || s.isOdd()) && (i.iadd(c), s.isub(h)), i.iushrn(1), s.iushrn(1)) + for (var p = 0, b = 1; 0 == (n.words[0] & b) && p < 26; ++p, b <<= 1); + if (p > 0) for (n.iushrn(p); p-- > 0; ) ((a.isOdd() || u.isOdd()) && (a.iadd(c), u.isub(h)), a.iushrn(1), u.iushrn(1)) + e.cmp(n) >= 0 ? (e.isub(n), i.isub(a), s.isub(u)) : (n.isub(e), a.isub(i), u.isub(s)) + } + return { a: a, b: u, gcd: n.iushln(f) } + }), + (o.prototype._invmp = function (t) { + ;(r(0 === t.negative), r(!t.isZero())) + var e = this, + n = t.clone() + e = 0 !== e.negative ? e.umod(t) : e.clone() + for (var i, s = new o(1), a = new o(0), u = n.clone(); e.cmpn(1) > 0 && n.cmpn(1) > 0; ) { + for (var f = 0, c = 1; 0 == (e.words[0] & c) && f < 26; ++f, c <<= 1); + if (f > 0) for (e.iushrn(f); f-- > 0; ) (s.isOdd() && s.iadd(u), s.iushrn(1)) + for (var h = 0, d = 1; 0 == (n.words[0] & d) && h < 26; ++h, d <<= 1); + if (h > 0) for (n.iushrn(h); h-- > 0; ) (a.isOdd() && a.iadd(u), a.iushrn(1)) + e.cmp(n) >= 0 ? (e.isub(n), s.isub(a)) : (n.isub(e), a.isub(s)) + } + return ((i = 0 === e.cmpn(1) ? s : a).cmpn(0) < 0 && i.iadd(t), i) + }), + (o.prototype.gcd = function (t) { + if (this.isZero()) return t.abs() + if (t.isZero()) return this.abs() + var e = this.clone(), + n = t.clone() + ;((e.negative = 0), (n.negative = 0)) + for (var r = 0; e.isEven() && n.isEven(); r++) (e.iushrn(1), n.iushrn(1)) + for (;;) { + for (; e.isEven(); ) e.iushrn(1) + for (; n.isEven(); ) n.iushrn(1) + var i = e.cmp(n) + if (i < 0) { + var o = e + ;((e = n), (n = o)) + } else if (0 === i || 0 === n.cmpn(1)) break + e.isub(n) + } + return n.iushln(r) + }), + (o.prototype.invm = function (t) { + return this.egcd(t).a.umod(t) + }), + (o.prototype.isEven = function () { + return 0 == (1 & this.words[0]) + }), + (o.prototype.isOdd = function () { + return 1 == (1 & this.words[0]) + }), + (o.prototype.andln = function (t) { + return this.words[0] & t + }), + (o.prototype.bincn = function (t) { + r('number' == typeof t) + var e = t % 26, + n = (t - e) / 26, + i = 1 << e + if (this.length <= n) return (this._expand(n + 1), (this.words[n] |= i), this) + for (var o = i, s = n; 0 !== o && s < this.length; s++) { + var a = 0 | this.words[s] + ;((o = (a += o) >>> 26), (a &= 67108863), (this.words[s] = a)) + } + return (0 !== o && ((this.words[s] = o), this.length++), this) + }), + (o.prototype.isZero = function () { + return 1 === this.length && 0 === this.words[0] + }), + (o.prototype.cmpn = function (t) { + var e, + n = t < 0 + if (0 !== this.negative && !n) return -1 + if (0 === this.negative && n) return 1 + if ((this._strip(), this.length > 1)) e = 1 + else { + ;(n && (t = -t), r(t <= 67108863, 'Number is too big')) + var i = 0 | this.words[0] + e = i === t ? 0 : i < t ? -1 : 1 + } + return 0 !== this.negative ? 0 | -e : e + }), + (o.prototype.cmp = function (t) { + if (0 !== this.negative && 0 === t.negative) return -1 + if (0 === this.negative && 0 !== t.negative) return 1 + var e = this.ucmp(t) + return 0 !== this.negative ? 0 | -e : e + }), + (o.prototype.ucmp = function (t) { + if (this.length > t.length) return 1 + if (this.length < t.length) return -1 + for (var e = 0, n = this.length - 1; n >= 0; n--) { + var r = 0 | this.words[n], + i = 0 | t.words[n] + if (r !== i) { + r < i ? (e = -1) : r > i && (e = 1) + break + } + } + return e + }), + (o.prototype.gtn = function (t) { + return 1 === this.cmpn(t) + }), + (o.prototype.gt = function (t) { + return 1 === this.cmp(t) + }), + (o.prototype.gten = function (t) { + return this.cmpn(t) >= 0 + }), + (o.prototype.gte = function (t) { + return this.cmp(t) >= 0 + }), + (o.prototype.ltn = function (t) { + return -1 === this.cmpn(t) + }), + (o.prototype.lt = function (t) { + return -1 === this.cmp(t) + }), + (o.prototype.lten = function (t) { + return this.cmpn(t) <= 0 + }), + (o.prototype.lte = function (t) { + return this.cmp(t) <= 0 + }), + (o.prototype.eqn = function (t) { + return 0 === this.cmpn(t) + }), + (o.prototype.eq = function (t) { + return 0 === this.cmp(t) + }), + (o.red = function (t) { + return new A(t) + }), + (o.prototype.toRed = function (t) { + return ( + r(!this.red, 'Already a number in reduction context'), + r(0 === this.negative, 'red works only with positives'), + t.convertTo(this)._forceRed(t) + ) + }), + (o.prototype.fromRed = function () { + return (r(this.red, 'fromRed works only with numbers in reduction context'), this.red.convertFrom(this)) + }), + (o.prototype._forceRed = function (t) { + return ((this.red = t), this) + }), + (o.prototype.forceRed = function (t) { + return (r(!this.red, 'Already a number in reduction context'), this._forceRed(t)) + }), + (o.prototype.redAdd = function (t) { + return (r(this.red, 'redAdd works only with red numbers'), this.red.add(this, t)) + }), + (o.prototype.redIAdd = function (t) { + return (r(this.red, 'redIAdd works only with red numbers'), this.red.iadd(this, t)) + }), + (o.prototype.redSub = function (t) { + return (r(this.red, 'redSub works only with red numbers'), this.red.sub(this, t)) + }), + (o.prototype.redISub = function (t) { + return (r(this.red, 'redISub works only with red numbers'), this.red.isub(this, t)) + }), + (o.prototype.redShl = function (t) { + return (r(this.red, 'redShl works only with red numbers'), this.red.shl(this, t)) + }), + (o.prototype.redMul = function (t) { + return (r(this.red, 'redMul works only with red numbers'), this.red._verify2(this, t), this.red.mul(this, t)) + }), + (o.prototype.redIMul = function (t) { + return (r(this.red, 'redMul works only with red numbers'), this.red._verify2(this, t), this.red.imul(this, t)) + }), + (o.prototype.redSqr = function () { + return (r(this.red, 'redSqr works only with red numbers'), this.red._verify1(this), this.red.sqr(this)) + }), + (o.prototype.redISqr = function () { + return (r(this.red, 'redISqr works only with red numbers'), this.red._verify1(this), this.red.isqr(this)) + }), + (o.prototype.redSqrt = function () { + return (r(this.red, 'redSqrt works only with red numbers'), this.red._verify1(this), this.red.sqrt(this)) + }), + (o.prototype.redInvm = function () { + return (r(this.red, 'redInvm works only with red numbers'), this.red._verify1(this), this.red.invm(this)) + }), + (o.prototype.redNeg = function () { + return (r(this.red, 'redNeg works only with red numbers'), this.red._verify1(this), this.red.neg(this)) + }), + (o.prototype.redPow = function (t) { + return (r(this.red && !t.red, 'redPow(normalNum)'), this.red._verify1(this), this.red.pow(this, t)) + })) + var y = { k256: null, p224: null, p192: null, p25519: null } + function w(t, e) { + ;((this.name = t), + (this.p = new o(e, 16)), + (this.n = this.p.bitLength()), + (this.k = new o(1).iushln(this.n).isub(this.p)), + (this.tmp = this._tmp())) + } + function _() { + w.call(this, 'k256', 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f') + } + function S() { + w.call(this, 'p224', 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001') + } + function M() { + w.call(this, 'p192', 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff') + } + function E() { + w.call(this, '25519', '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed') + } + function A(t) { + if ('string' == typeof t) { + var e = o._prime(t) + ;((this.m = e.p), (this.prime = e)) + } else (r(t.gtn(1), 'modulus must be greater than 1'), (this.m = t), (this.prime = null)) + } + function x(t) { + ;(A.call(this, t), + (this.shift = this.m.bitLength()), + this.shift % 26 != 0 && (this.shift += 26 - (this.shift % 26)), + (this.r = new o(1).iushln(this.shift)), + (this.r2 = this.imod(this.r.sqr())), + (this.rinv = this.r._invmp(this.m)), + (this.minv = this.rinv.mul(this.r).isubn(1).div(this.m)), + (this.minv = this.minv.umod(this.r)), + (this.minv = this.r.sub(this.minv))) + } + ;((w.prototype._tmp = function () { + var t = new o(null) + return ((t.words = new Array(Math.ceil(this.n / 13))), t) + }), + (w.prototype.ireduce = function (t) { + var e, + n = t + do { + ;(this.split(n, this.tmp), (e = (n = (n = this.imulK(n)).iadd(this.tmp)).bitLength())) + } while (e > this.n) + var r = e < this.n ? -1 : n.ucmp(this.p) + return (0 === r ? ((n.words[0] = 0), (n.length = 1)) : r > 0 ? n.isub(this.p) : n._strip(), n) + }), + (w.prototype.split = function (t, e) { + t.iushrn(this.n, 0, e) + }), + (w.prototype.imulK = function (t) { + return t.imul(this.k) + }), + i(_, w), + (_.prototype.split = function (t, e) { + for (var n = Math.min(t.length, 9), r = 0; r < n; r++) e.words[r] = t.words[r] + if (((e.length = n), t.length <= 9)) return ((t.words[0] = 0), void (t.length = 1)) + var i = t.words[9] + for (e.words[e.length++] = 4194303 & i, r = 10; r < t.length; r++) { + var o = 0 | t.words[r] + ;((t.words[r - 10] = ((4194303 & o) << 4) | (i >>> 22)), (i = o)) + } + ;((i >>>= 22), (t.words[r - 10] = i), 0 === i && t.length > 10 ? (t.length -= 10) : (t.length -= 9)) + }), + (_.prototype.imulK = function (t) { + ;((t.words[t.length] = 0), (t.words[t.length + 1] = 0), (t.length += 2)) + for (var e = 0, n = 0; n < t.length; n++) { + var r = 0 | t.words[n] + ;((e += 977 * r), (t.words[n] = 67108863 & e), (e = 64 * r + ((e / 67108864) | 0))) + } + return (0 === t.words[t.length - 1] && (t.length--, 0 === t.words[t.length - 1] && t.length--), t) + }), + i(S, w), + i(M, w), + i(E, w), + (E.prototype.imulK = function (t) { + for (var e = 0, n = 0; n < t.length; n++) { + var r = 19 * (0 | t.words[n]) + e, + i = 67108863 & r + ;((r >>>= 26), (t.words[n] = i), (e = r)) + } + return (0 !== e && (t.words[t.length++] = e), t) + }), + (o._prime = function (t) { + if (y[t]) return y[t] + var e + if ('k256' === t) e = new _() + else if ('p224' === t) e = new S() + else if ('p192' === t) e = new M() + else { + if ('p25519' !== t) throw new Error('Unknown prime ' + t) + e = new E() + } + return ((y[t] = e), e) + }), + (A.prototype._verify1 = function (t) { + ;(r(0 === t.negative, 'red works only with positives'), r(t.red, 'red works only with red numbers')) + }), + (A.prototype._verify2 = function (t, e) { + ;(r(0 == (t.negative | e.negative), 'red works only with positives'), r(t.red && t.red === e.red, 'red works only with red numbers')) + }), + (A.prototype.imod = function (t) { + return this.prime ? this.prime.ireduce(t)._forceRed(this) : (f(t, t.umod(this.m)._forceRed(this)), t) + }), + (A.prototype.neg = function (t) { + return t.isZero() ? t.clone() : this.m.sub(t)._forceRed(this) + }), + (A.prototype.add = function (t, e) { + this._verify2(t, e) + var n = t.add(e) + return (n.cmp(this.m) >= 0 && n.isub(this.m), n._forceRed(this)) + }), + (A.prototype.iadd = function (t, e) { + this._verify2(t, e) + var n = t.iadd(e) + return (n.cmp(this.m) >= 0 && n.isub(this.m), n) + }), + (A.prototype.sub = function (t, e) { + this._verify2(t, e) + var n = t.sub(e) + return (n.cmpn(0) < 0 && n.iadd(this.m), n._forceRed(this)) + }), + (A.prototype.isub = function (t, e) { + this._verify2(t, e) + var n = t.isub(e) + return (n.cmpn(0) < 0 && n.iadd(this.m), n) + }), + (A.prototype.shl = function (t, e) { + return (this._verify1(t), this.imod(t.ushln(e))) + }), + (A.prototype.imul = function (t, e) { + return (this._verify2(t, e), this.imod(t.imul(e))) + }), + (A.prototype.mul = function (t, e) { + return (this._verify2(t, e), this.imod(t.mul(e))) + }), + (A.prototype.isqr = function (t) { + return this.imul(t, t.clone()) + }), + (A.prototype.sqr = function (t) { + return this.mul(t, t) + }), + (A.prototype.sqrt = function (t) { + if (t.isZero()) return t.clone() + var e = this.m.andln(3) + if ((r(e % 2 == 1), 3 === e)) { + var n = this.m.add(new o(1)).iushrn(2) + return this.pow(t, n) + } + for (var i = this.m.subn(1), s = 0; !i.isZero() && 0 === i.andln(1); ) (s++, i.iushrn(1)) + r(!i.isZero()) + var a = new o(1).toRed(this), + u = a.redNeg(), + f = this.m.subn(1).iushrn(1), + c = this.m.bitLength() + for (c = new o(2 * c * c).toRed(this); 0 !== this.pow(c, f).cmp(u); ) c.redIAdd(u) + for (var h = this.pow(c, i), d = this.pow(t, i.addn(1).iushrn(1)), l = this.pow(t, i), p = s; 0 !== l.cmp(a); ) { + for (var b = l, g = 0; 0 !== b.cmp(a); g++) b = b.redSqr() + r(g < p) + var v = this.pow(h, new o(1).iushln(p - g - 1)) + ;((d = d.redMul(v)), (h = v.redSqr()), (l = l.redMul(h)), (p = g)) + } + return d + }), + (A.prototype.invm = function (t) { + var e = t._invmp(this.m) + return 0 !== e.negative ? ((e.negative = 0), this.imod(e).redNeg()) : this.imod(e) + }), + (A.prototype.pow = function (t, e) { + if (e.isZero()) return new o(1).toRed(this) + if (0 === e.cmpn(1)) return t.clone() + var n = new Array(16) + ;((n[0] = new o(1).toRed(this)), (n[1] = t)) + for (var r = 2; r < n.length; r++) n[r] = this.mul(n[r - 1], t) + var i = n[0], + s = 0, + a = 0, + u = e.bitLength() % 26 + for (0 === u && (u = 26), r = e.length - 1; r >= 0; r--) { + for (var f = e.words[r], c = u - 1; c >= 0; c--) { + var h = (f >> c) & 1 + ;(i !== n[0] && (i = this.sqr(i)), + 0 !== h || 0 !== s + ? ((s <<= 1), (s |= h), (4 === ++a || (0 === r && 0 === c)) && ((i = this.mul(i, n[s])), (a = 0), (s = 0))) + : (a = 0)) + } + u = 26 + } + return i + }), + (A.prototype.convertTo = function (t) { + var e = t.umod(this.m) + return e === t ? e.clone() : e + }), + (A.prototype.convertFrom = function (t) { + var e = t.clone() + return ((e.red = null), e) + }), + (o.mont = function (t) { + return new x(t) + }), + i(x, A), + (x.prototype.convertTo = function (t) { + return this.imod(t.ushln(this.shift)) + }), + (x.prototype.convertFrom = function (t) { + var e = this.imod(t.mul(this.rinv)) + return ((e.red = null), e) + }), + (x.prototype.imul = function (t, e) { + if (t.isZero() || e.isZero()) return ((t.words[0] = 0), (t.length = 1), t) + var n = t.imul(e), + r = n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m), + i = n.isub(r).iushrn(this.shift), + o = i + return (i.cmp(this.m) >= 0 ? (o = i.isub(this.m)) : i.cmpn(0) < 0 && (o = i.iadd(this.m)), o._forceRed(this)) + }), + (x.prototype.mul = function (t, e) { + if (t.isZero() || e.isZero()) return new o(0)._forceRed(this) + var n = t.mul(e), + r = n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m), + i = n.isub(r).iushrn(this.shift), + s = i + return (i.cmp(this.m) >= 0 ? (s = i.isub(this.m)) : i.cmpn(0) < 0 && (s = i.iadd(this.m)), s._forceRed(this)) + }), + (x.prototype.invm = function (t) { + return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this) + })) + })(t, this) + }).call(this, n(27)(t)) + }, + function (t, e, n) { + ;(function (t, r) { + var i + /** + * @license + * Lodash <https://lodash.com/> + * Copyright OpenJS Foundation and other contributors <https://openjsf.org/> + * Released under MIT license <https://lodash.com/license> + * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE> + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + */ ;(function () { + var o = 'Expected a function', + s = '__lodash_placeholder__', + a = [ + ['ary', 128], + ['bind', 1], + ['bindKey', 2], + ['curry', 8], + ['curryRight', 16], + ['flip', 512], + ['partial', 32], + ['partialRight', 64], + ['rearg', 256], + ], + u = '[object Arguments]', + f = '[object Array]', + c = '[object Boolean]', + h = '[object Date]', + d = '[object Error]', + l = '[object Function]', + p = '[object GeneratorFunction]', + b = '[object Map]', + g = '[object Number]', + v = '[object Object]', + m = '[object RegExp]', + y = '[object Set]', + w = '[object String]', + _ = '[object Symbol]', + S = '[object WeakMap]', + M = '[object ArrayBuffer]', + E = '[object DataView]', + A = '[object Float32Array]', + x = '[object Float64Array]', + I = '[object Int8Array]', + T = '[object Int16Array]', + k = '[object Int32Array]', + L = '[object Uint8Array]', + N = '[object Uint16Array]', + R = '[object Uint32Array]', + O = /\b__p \+= '';/g, + B = /\b(__p \+=) '' \+/g, + z = /(__e\(.*?\)|\b__t\)) \+\n'';/g, + P = /&(?:amp|lt|gt|quot|#39);/g, + U = /[&<>"']/g, + F = RegExp(P.source), + j = RegExp(U.source), + C = /<%-([\s\S]+?)%>/g, + D = /<%([\s\S]+?)%>/g, + q = /<%=([\s\S]+?)%>/g, + V = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, + H = /^\w*$/, + W = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g, + Z = /[\\^$.*+?()[\]{}|]/g, + Y = RegExp(Z.source), + J = /^\s+|\s+$/g, + K = /^\s+/, + $ = /\s+$/, + X = /\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/, + G = /\{\n\/\* \[wrapped with (.+)\] \*/, + Q = /,? & /, + tt = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g, + et = /\\(\\)?/g, + nt = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g, + rt = /\w*$/, + it = /^[-+]0x[0-9a-f]+$/i, + ot = /^0b[01]+$/i, + st = /^\[object .+?Constructor\]$/, + at = /^0o[0-7]+$/i, + ut = /^(?:0|[1-9]\d*)$/, + ft = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g, + ct = /($^)/, + ht = /['\n\r\u2028\u2029\\]/g, + dt = '\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff', + lt = + '\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000', + pt = '[\\ud800-\\udfff]', + bt = '[' + lt + ']', + gt = '[' + dt + ']', + vt = '\\d+', + mt = '[\\u2700-\\u27bf]', + yt = '[a-z\\xdf-\\xf6\\xf8-\\xff]', + wt = '[^\\ud800-\\udfff' + lt + vt + '\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]', + _t = '\\ud83c[\\udffb-\\udfff]', + St = '[^\\ud800-\\udfff]', + Mt = '(?:\\ud83c[\\udde6-\\uddff]){2}', + Et = '[\\ud800-\\udbff][\\udc00-\\udfff]', + At = '[A-Z\\xc0-\\xd6\\xd8-\\xde]', + xt = '(?:' + yt + '|' + wt + ')', + It = '(?:' + At + '|' + wt + ')', + Tt = '(?:' + gt + '|' + _t + ')' + '?', + kt = '[\\ufe0e\\ufe0f]?' + Tt + ('(?:\\u200d(?:' + [St, Mt, Et].join('|') + ')[\\ufe0e\\ufe0f]?' + Tt + ')*'), + Lt = '(?:' + [mt, Mt, Et].join('|') + ')' + kt, + Nt = '(?:' + [St + gt + '?', gt, Mt, Et, pt].join('|') + ')', + Rt = RegExp("['’]", 'g'), + Ot = RegExp(gt, 'g'), + Bt = RegExp(_t + '(?=' + _t + ')|' + Nt + kt, 'g'), + zt = RegExp( + [ + At + '?' + yt + "+(?:['’](?:d|ll|m|re|s|t|ve))?(?=" + [bt, At, '$'].join('|') + ')', + It + "+(?:['’](?:D|LL|M|RE|S|T|VE))?(?=" + [bt, At + xt, '$'].join('|') + ')', + At + '?' + xt + "+(?:['’](?:d|ll|m|re|s|t|ve))?", + At + "+(?:['’](?:D|LL|M|RE|S|T|VE))?", + '\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])', + '\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])', + vt, + Lt, + ].join('|'), + 'g', + ), + Pt = RegExp('[\\u200d\\ud800-\\udfff' + dt + '\\ufe0e\\ufe0f]'), + Ut = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/, + Ft = [ + 'Array', + 'Buffer', + 'DataView', + 'Date', + 'Error', + 'Float32Array', + 'Float64Array', + 'Function', + 'Int8Array', + 'Int16Array', + 'Int32Array', + 'Map', + 'Math', + 'Object', + 'Promise', + 'RegExp', + 'Set', + 'String', + 'Symbol', + 'TypeError', + 'Uint8Array', + 'Uint8ClampedArray', + 'Uint16Array', + 'Uint32Array', + 'WeakMap', + '_', + 'clearTimeout', + 'isFinite', + 'parseInt', + 'setTimeout', + ], + jt = -1, + Ct = {} + ;((Ct[A] = Ct[x] = Ct[I] = Ct[T] = Ct[k] = Ct[L] = Ct['[object Uint8ClampedArray]'] = Ct[N] = Ct[R] = !0), + (Ct[u] = Ct[f] = Ct[M] = Ct[c] = Ct[E] = Ct[h] = Ct[d] = Ct[l] = Ct[b] = Ct[g] = Ct[v] = Ct[m] = Ct[y] = Ct[w] = Ct[S] = !1)) + var Dt = {} + ;((Dt[u] = + Dt[f] = + Dt[M] = + Dt[E] = + Dt[c] = + Dt[h] = + Dt[A] = + Dt[x] = + Dt[I] = + Dt[T] = + Dt[k] = + Dt[b] = + Dt[g] = + Dt[v] = + Dt[m] = + Dt[y] = + Dt[w] = + Dt[_] = + Dt[L] = + Dt['[object Uint8ClampedArray]'] = + Dt[N] = + Dt[R] = + !0), + (Dt[d] = Dt[l] = Dt[S] = !1)) + var qt = { '\\': '\\', "'": "'", '\n': 'n', '\r': 'r', '\u2028': 'u2028', '\u2029': 'u2029' }, + Vt = parseFloat, + Ht = parseInt, + Wt = 'object' == typeof t && t && t.Object === Object && t, + Zt = 'object' == typeof self && self && self.Object === Object && self, + Yt = Wt || Zt || Function('return this')(), + Jt = e && !e.nodeType && e, + Kt = Jt && 'object' == typeof r && r && !r.nodeType && r, + $t = Kt && Kt.exports === Jt, + Xt = $t && Wt.process, + Gt = (function () { + try { + var t = Kt && Kt.require && Kt.require('util').types + return t || (Xt && Xt.binding && Xt.binding('util')) + } catch (t) {} + })(), + Qt = Gt && Gt.isArrayBuffer, + te = Gt && Gt.isDate, + ee = Gt && Gt.isMap, + ne = Gt && Gt.isRegExp, + re = Gt && Gt.isSet, + ie = Gt && Gt.isTypedArray + function oe(t, e, n) { + switch (n.length) { + case 0: + return t.call(e) + case 1: + return t.call(e, n[0]) + case 2: + return t.call(e, n[0], n[1]) + case 3: + return t.call(e, n[0], n[1], n[2]) + } + return t.apply(e, n) + } + function se(t, e, n, r) { + for (var i = -1, o = null == t ? 0 : t.length; ++i < o; ) { + var s = t[i] + e(r, s, n(s), t) + } + return r + } + function ae(t, e) { + for (var n = -1, r = null == t ? 0 : t.length; ++n < r && !1 !== e(t[n], n, t); ); + return t + } + function ue(t, e) { + for (var n = null == t ? 0 : t.length; n-- && !1 !== e(t[n], n, t); ); + return t + } + function fe(t, e) { + for (var n = -1, r = null == t ? 0 : t.length; ++n < r; ) if (!e(t[n], n, t)) return !1 + return !0 + } + function ce(t, e) { + for (var n = -1, r = null == t ? 0 : t.length, i = 0, o = []; ++n < r; ) { + var s = t[n] + e(s, n, t) && (o[i++] = s) + } + return o + } + function he(t, e) { + return !!(null == t ? 0 : t.length) && _e(t, e, 0) > -1 + } + function de(t, e, n) { + for (var r = -1, i = null == t ? 0 : t.length; ++r < i; ) if (n(e, t[r])) return !0 + return !1 + } + function le(t, e) { + for (var n = -1, r = null == t ? 0 : t.length, i = Array(r); ++n < r; ) i[n] = e(t[n], n, t) + return i + } + function pe(t, e) { + for (var n = -1, r = e.length, i = t.length; ++n < r; ) t[i + n] = e[n] + return t + } + function be(t, e, n, r) { + var i = -1, + o = null == t ? 0 : t.length + for (r && o && (n = t[++i]); ++i < o; ) n = e(n, t[i], i, t) + return n + } + function ge(t, e, n, r) { + var i = null == t ? 0 : t.length + for (r && i && (n = t[--i]); i--; ) n = e(n, t[i], i, t) + return n + } + function ve(t, e) { + for (var n = -1, r = null == t ? 0 : t.length; ++n < r; ) if (e(t[n], n, t)) return !0 + return !1 + } + var me = Ae('length') + function ye(t, e, n) { + var r + return ( + n(t, function (t, n, i) { + if (e(t, n, i)) return ((r = n), !1) + }), + r + ) + } + function we(t, e, n, r) { + for (var i = t.length, o = n + (r ? 1 : -1); r ? o-- : ++o < i; ) if (e(t[o], o, t)) return o + return -1 + } + function _e(t, e, n) { + return e == e + ? (function (t, e, n) { + var r = n - 1, + i = t.length + for (; ++r < i; ) if (t[r] === e) return r + return -1 + })(t, e, n) + : we(t, Me, n) + } + function Se(t, e, n, r) { + for (var i = n - 1, o = t.length; ++i < o; ) if (r(t[i], e)) return i + return -1 + } + function Me(t) { + return t != t + } + function Ee(t, e) { + var n = null == t ? 0 : t.length + return n ? Te(t, e) / n : NaN + } + function Ae(t) { + return function (e) { + return null == e ? void 0 : e[t] + } + } + function xe(t) { + return function (e) { + return null == t ? void 0 : t[e] + } + } + function Ie(t, e, n, r, i) { + return ( + i(t, function (t, i, o) { + n = r ? ((r = !1), t) : e(n, t, i, o) + }), + n + ) + } + function Te(t, e) { + for (var n, r = -1, i = t.length; ++r < i; ) { + var o = e(t[r]) + void 0 !== o && (n = void 0 === n ? o : n + o) + } + return n + } + function ke(t, e) { + for (var n = -1, r = Array(t); ++n < t; ) r[n] = e(n) + return r + } + function Le(t) { + return function (e) { + return t(e) + } + } + function Ne(t, e) { + return le(e, function (e) { + return t[e] + }) + } + function Re(t, e) { + return t.has(e) + } + function Oe(t, e) { + for (var n = -1, r = t.length; ++n < r && _e(e, t[n], 0) > -1; ); + return n + } + function Be(t, e) { + for (var n = t.length; n-- && _e(e, t[n], 0) > -1; ); + return n + } + function ze(t, e) { + for (var n = t.length, r = 0; n--; ) t[n] === e && ++r + return r + } + var Pe = xe({ + À: 'A', + Á: 'A', + Â: 'A', + Ã: 'A', + Ä: 'A', + Å: 'A', + à: 'a', + á: 'a', + â: 'a', + ã: 'a', + ä: 'a', + å: 'a', + Ç: 'C', + ç: 'c', + Ð: 'D', + ð: 'd', + È: 'E', + É: 'E', + Ê: 'E', + Ë: 'E', + è: 'e', + é: 'e', + ê: 'e', + ë: 'e', + Ì: 'I', + Í: 'I', + Î: 'I', + Ï: 'I', + ì: 'i', + í: 'i', + î: 'i', + ï: 'i', + Ñ: 'N', + ñ: 'n', + Ò: 'O', + Ó: 'O', + Ô: 'O', + Õ: 'O', + Ö: 'O', + Ø: 'O', + ò: 'o', + ó: 'o', + ô: 'o', + õ: 'o', + ö: 'o', + ø: 'o', + Ù: 'U', + Ú: 'U', + Û: 'U', + Ü: 'U', + ù: 'u', + ú: 'u', + û: 'u', + ü: 'u', + Ý: 'Y', + ý: 'y', + ÿ: 'y', + Æ: 'Ae', + æ: 'ae', + Þ: 'Th', + þ: 'th', + ß: 'ss', + Ā: 'A', + Ă: 'A', + Ą: 'A', + ā: 'a', + ă: 'a', + ą: 'a', + Ć: 'C', + Ĉ: 'C', + Ċ: 'C', + Č: 'C', + ć: 'c', + ĉ: 'c', + ċ: 'c', + č: 'c', + Ď: 'D', + Đ: 'D', + ď: 'd', + đ: 'd', + Ē: 'E', + Ĕ: 'E', + Ė: 'E', + Ę: 'E', + Ě: 'E', + ē: 'e', + ĕ: 'e', + ė: 'e', + ę: 'e', + ě: 'e', + Ĝ: 'G', + Ğ: 'G', + Ġ: 'G', + Ģ: 'G', + ĝ: 'g', + ğ: 'g', + ġ: 'g', + ģ: 'g', + Ĥ: 'H', + Ħ: 'H', + ĥ: 'h', + ħ: 'h', + Ĩ: 'I', + Ī: 'I', + Ĭ: 'I', + Į: 'I', + İ: 'I', + ĩ: 'i', + ī: 'i', + ĭ: 'i', + į: 'i', + ı: 'i', + Ĵ: 'J', + ĵ: 'j', + Ķ: 'K', + ķ: 'k', + ĸ: 'k', + Ĺ: 'L', + Ļ: 'L', + Ľ: 'L', + Ŀ: 'L', + Ł: 'L', + ĺ: 'l', + ļ: 'l', + ľ: 'l', + ŀ: 'l', + ł: 'l', + Ń: 'N', + Ņ: 'N', + Ň: 'N', + Ŋ: 'N', + ń: 'n', + ņ: 'n', + ň: 'n', + ŋ: 'n', + Ō: 'O', + Ŏ: 'O', + Ő: 'O', + ō: 'o', + ŏ: 'o', + ő: 'o', + Ŕ: 'R', + Ŗ: 'R', + Ř: 'R', + ŕ: 'r', + ŗ: 'r', + ř: 'r', + Ś: 'S', + Ŝ: 'S', + Ş: 'S', + Š: 'S', + ś: 's', + ŝ: 's', + ş: 's', + š: 's', + Ţ: 'T', + Ť: 'T', + Ŧ: 'T', + ţ: 't', + ť: 't', + ŧ: 't', + Ũ: 'U', + Ū: 'U', + Ŭ: 'U', + Ů: 'U', + Ű: 'U', + Ų: 'U', + ũ: 'u', + ū: 'u', + ŭ: 'u', + ů: 'u', + ű: 'u', + ų: 'u', + Ŵ: 'W', + ŵ: 'w', + Ŷ: 'Y', + ŷ: 'y', + Ÿ: 'Y', + Ź: 'Z', + Ż: 'Z', + Ž: 'Z', + ź: 'z', + ż: 'z', + ž: 'z', + IJ: 'IJ', + ij: 'ij', + Œ: 'Oe', + œ: 'oe', + ʼn: "'n", + ſ: 's', + }), + Ue = xe({ '&': '&', '<': '<', '>': '>', '"': '"', "'": ''' }) + function Fe(t) { + return '\\' + qt[t] + } + function je(t) { + return Pt.test(t) + } + function Ce(t) { + var e = -1, + n = Array(t.size) + return ( + t.forEach(function (t, r) { + n[++e] = [r, t] + }), + n + ) + } + function De(t, e) { + return function (n) { + return t(e(n)) + } + } + function qe(t, e) { + for (var n = -1, r = t.length, i = 0, o = []; ++n < r; ) { + var a = t[n] + ;(a !== e && a !== s) || ((t[n] = s), (o[i++] = n)) + } + return o + } + function Ve(t) { + var e = -1, + n = Array(t.size) + return ( + t.forEach(function (t) { + n[++e] = t + }), + n + ) + } + function He(t) { + var e = -1, + n = Array(t.size) + return ( + t.forEach(function (t) { + n[++e] = [t, t] + }), + n + ) + } + function We(t) { + return je(t) + ? (function (t) { + var e = (Bt.lastIndex = 0) + for (; Bt.test(t); ) ++e + return e + })(t) + : me(t) + } + function Ze(t) { + return je(t) + ? (function (t) { + return t.match(Bt) || [] + })(t) + : (function (t) { + return t.split('') + })(t) + } + var Ye = xe({ '&': '&', '<': '<', '>': '>', '"': '"', ''': "'" }) + var Je = (function t(e) { + var n, + r = (e = null == e ? Yt : Je.defaults(Yt.Object(), e, Je.pick(Yt, Ft))).Array, + i = e.Date, + dt = e.Error, + lt = e.Function, + pt = e.Math, + bt = e.Object, + gt = e.RegExp, + vt = e.String, + mt = e.TypeError, + yt = r.prototype, + wt = lt.prototype, + _t = bt.prototype, + St = e['__core-js_shared__'], + Mt = wt.toString, + Et = _t.hasOwnProperty, + At = 0, + xt = (n = /[^.]+$/.exec((St && St.keys && St.keys.IE_PROTO) || '')) ? 'Symbol(src)_1.' + n : '', + It = _t.toString, + Tt = Mt.call(bt), + kt = Yt._, + Lt = gt( + '^' + + Mt.call(Et) + .replace(Z, '\\$&') + .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + + '$', + ), + Nt = $t ? e.Buffer : void 0, + Bt = e.Symbol, + Pt = e.Uint8Array, + qt = Nt ? Nt.allocUnsafe : void 0, + Wt = De(bt.getPrototypeOf, bt), + Zt = bt.create, + Jt = _t.propertyIsEnumerable, + Kt = yt.splice, + Xt = Bt ? Bt.isConcatSpreadable : void 0, + Gt = Bt ? Bt.iterator : void 0, + me = Bt ? Bt.toStringTag : void 0, + xe = (function () { + try { + var t = Qi(bt, 'defineProperty') + return (t({}, '', {}), t) + } catch (t) {} + })(), + Ke = e.clearTimeout !== Yt.clearTimeout && e.clearTimeout, + $e = i && i.now !== Yt.Date.now && i.now, + Xe = e.setTimeout !== Yt.setTimeout && e.setTimeout, + Ge = pt.ceil, + Qe = pt.floor, + tn = bt.getOwnPropertySymbols, + en = Nt ? Nt.isBuffer : void 0, + nn = e.isFinite, + rn = yt.join, + on = De(bt.keys, bt), + sn = pt.max, + an = pt.min, + un = i.now, + fn = e.parseInt, + cn = pt.random, + hn = yt.reverse, + dn = Qi(e, 'DataView'), + ln = Qi(e, 'Map'), + pn = Qi(e, 'Promise'), + bn = Qi(e, 'Set'), + gn = Qi(e, 'WeakMap'), + vn = Qi(bt, 'create'), + mn = gn && new gn(), + yn = {}, + wn = Io(dn), + _n = Io(ln), + Sn = Io(pn), + Mn = Io(bn), + En = Io(gn), + An = Bt ? Bt.prototype : void 0, + xn = An ? An.valueOf : void 0, + In = An ? An.toString : void 0 + function Tn(t) { + if (Hs(t) && !Os(t) && !(t instanceof Rn)) { + if (t instanceof Nn) return t + if (Et.call(t, '__wrapped__')) return To(t) + } + return new Nn(t) + } + var kn = (function () { + function t() {} + return function (e) { + if (!Vs(e)) return {} + if (Zt) return Zt(e) + t.prototype = e + var n = new t() + return ((t.prototype = void 0), n) + } + })() + function Ln() {} + function Nn(t, e) { + ;((this.__wrapped__ = t), (this.__actions__ = []), (this.__chain__ = !!e), (this.__index__ = 0), (this.__values__ = void 0)) + } + function Rn(t) { + ;((this.__wrapped__ = t), + (this.__actions__ = []), + (this.__dir__ = 1), + (this.__filtered__ = !1), + (this.__iteratees__ = []), + (this.__takeCount__ = 4294967295), + (this.__views__ = [])) + } + function On(t) { + var e = -1, + n = null == t ? 0 : t.length + for (this.clear(); ++e < n; ) { + var r = t[e] + this.set(r[0], r[1]) + } + } + function Bn(t) { + var e = -1, + n = null == t ? 0 : t.length + for (this.clear(); ++e < n; ) { + var r = t[e] + this.set(r[0], r[1]) + } + } + function zn(t) { + var e = -1, + n = null == t ? 0 : t.length + for (this.clear(); ++e < n; ) { + var r = t[e] + this.set(r[0], r[1]) + } + } + function Pn(t) { + var e = -1, + n = null == t ? 0 : t.length + for (this.__data__ = new zn(); ++e < n; ) this.add(t[e]) + } + function Un(t) { + var e = (this.__data__ = new Bn(t)) + this.size = e.size + } + function Fn(t, e) { + var n = Os(t), + r = !n && Rs(t), + i = !n && !r && Us(t), + o = !n && !r && !i && Gs(t), + s = n || r || i || o, + a = s ? ke(t.length, vt) : [], + u = a.length + for (var f in t) + (!e && !Et.call(t, f)) || + (s && + ('length' == f || + (i && ('offset' == f || 'parent' == f)) || + (o && ('buffer' == f || 'byteLength' == f || 'byteOffset' == f)) || + so(f, u))) || + a.push(f) + return a + } + function jn(t) { + var e = t.length + return e ? t[Pr(0, e - 1)] : void 0 + } + function Cn(t, e) { + return Eo(vi(t), Kn(e, 0, t.length)) + } + function Dn(t) { + return Eo(vi(t)) + } + function qn(t, e, n) { + ;((void 0 === n || ks(t[e], n)) && (void 0 !== n || e in t)) || Yn(t, e, n) + } + function Vn(t, e, n) { + var r = t[e] + ;(Et.call(t, e) && ks(r, n) && (void 0 !== n || e in t)) || Yn(t, e, n) + } + function Hn(t, e) { + for (var n = t.length; n--; ) if (ks(t[n][0], e)) return n + return -1 + } + function Wn(t, e, n, r) { + return ( + tr(t, function (t, i, o) { + e(r, t, n(t), o) + }), + r + ) + } + function Zn(t, e) { + return t && mi(e, wa(e), t) + } + function Yn(t, e, n) { + '__proto__' == e && xe ? xe(t, e, { configurable: !0, enumerable: !0, value: n, writable: !0 }) : (t[e] = n) + } + function Jn(t, e) { + for (var n = -1, i = e.length, o = r(i), s = null == t; ++n < i; ) o[n] = s ? void 0 : ba(t, e[n]) + return o + } + function Kn(t, e, n) { + return (t == t && (void 0 !== n && (t = t <= n ? t : n), void 0 !== e && (t = t >= e ? t : e)), t) + } + function $n(t, e, n, r, i, o) { + var s, + a = 1 & e, + f = 2 & e, + d = 4 & e + if ((n && (s = i ? n(t, r, i, o) : n(t)), void 0 !== s)) return s + if (!Vs(t)) return t + var S = Os(t) + if (S) { + if ( + ((s = (function (t) { + var e = t.length, + n = new t.constructor(e) + e && 'string' == typeof t[0] && Et.call(t, 'index') && ((n.index = t.index), (n.input = t.input)) + return n + })(t)), + !a) + ) + return vi(t, s) + } else { + var O = no(t), + B = O == l || O == p + if (Us(t)) return hi(t, a) + if (O == v || O == u || (B && !i)) { + if (((s = f || B ? {} : io(t)), !a)) + return f + ? (function (t, e) { + return mi(t, eo(t), e) + })( + t, + (function (t, e) { + return t && mi(e, _a(e), t) + })(s, t), + ) + : (function (t, e) { + return mi(t, to(t), e) + })(t, Zn(s, t)) + } else { + if (!Dt[O]) return i ? t : {} + s = (function (t, e, n) { + var r = t.constructor + switch (e) { + case M: + return di(t) + case c: + case h: + return new r(+t) + case E: + return (function (t, e) { + var n = e ? di(t.buffer) : t.buffer + return new t.constructor(n, t.byteOffset, t.byteLength) + })(t, n) + case A: + case x: + case I: + case T: + case k: + case L: + case '[object Uint8ClampedArray]': + case N: + case R: + return li(t, n) + case b: + return new r() + case g: + case w: + return new r(t) + case m: + return (function (t) { + var e = new t.constructor(t.source, rt.exec(t)) + return ((e.lastIndex = t.lastIndex), e) + })(t) + case y: + return new r() + case _: + return ((i = t), xn ? bt(xn.call(i)) : {}) + } + var i + })(t, O, a) + } + } + o || (o = new Un()) + var z = o.get(t) + if (z) return z + ;(o.set(t, s), + Ks(t) + ? t.forEach(function (r) { + s.add($n(r, e, n, r, t, o)) + }) + : Ws(t) && + t.forEach(function (r, i) { + s.set(i, $n(r, e, n, i, t, o)) + })) + var P = S ? void 0 : (d ? (f ? Zi : Wi) : f ? _a : wa)(t) + return ( + ae(P || t, function (r, i) { + ;(P && (r = t[(i = r)]), Vn(s, i, $n(r, e, n, i, t, o))) + }), + s + ) + } + function Xn(t, e, n) { + var r = n.length + if (null == t) return !r + for (t = bt(t); r--; ) { + var i = n[r], + o = e[i], + s = t[i] + if ((void 0 === s && !(i in t)) || !o(s)) return !1 + } + return !0 + } + function Gn(t, e, n) { + if ('function' != typeof t) throw new mt(o) + return wo(function () { + t.apply(void 0, n) + }, e) + } + function Qn(t, e, n, r) { + var i = -1, + o = he, + s = !0, + a = t.length, + u = [], + f = e.length + if (!a) return u + ;(n && (e = le(e, Le(n))), r ? ((o = de), (s = !1)) : e.length >= 200 && ((o = Re), (s = !1), (e = new Pn(e)))) + t: for (; ++i < a; ) { + var c = t[i], + h = null == n ? c : n(c) + if (((c = r || 0 !== c ? c : 0), s && h == h)) { + for (var d = f; d--; ) if (e[d] === h) continue t + u.push(c) + } else o(e, h, r) || u.push(c) + } + return u + } + ;((Tn.templateSettings = { escape: C, evaluate: D, interpolate: q, variable: '', imports: { _: Tn } }), + (Tn.prototype = Ln.prototype), + (Tn.prototype.constructor = Tn), + (Nn.prototype = kn(Ln.prototype)), + (Nn.prototype.constructor = Nn), + (Rn.prototype = kn(Ln.prototype)), + (Rn.prototype.constructor = Rn), + (On.prototype.clear = function () { + ;((this.__data__ = vn ? vn(null) : {}), (this.size = 0)) + }), + (On.prototype.delete = function (t) { + var e = this.has(t) && delete this.__data__[t] + return ((this.size -= e ? 1 : 0), e) + }), + (On.prototype.get = function (t) { + var e = this.__data__ + if (vn) { + var n = e[t] + return '__lodash_hash_undefined__' === n ? void 0 : n + } + return Et.call(e, t) ? e[t] : void 0 + }), + (On.prototype.has = function (t) { + var e = this.__data__ + return vn ? void 0 !== e[t] : Et.call(e, t) + }), + (On.prototype.set = function (t, e) { + var n = this.__data__ + return ((this.size += this.has(t) ? 0 : 1), (n[t] = vn && void 0 === e ? '__lodash_hash_undefined__' : e), this) + }), + (Bn.prototype.clear = function () { + ;((this.__data__ = []), (this.size = 0)) + }), + (Bn.prototype.delete = function (t) { + var e = this.__data__, + n = Hn(e, t) + return !(n < 0) && (n == e.length - 1 ? e.pop() : Kt.call(e, n, 1), --this.size, !0) + }), + (Bn.prototype.get = function (t) { + var e = this.__data__, + n = Hn(e, t) + return n < 0 ? void 0 : e[n][1] + }), + (Bn.prototype.has = function (t) { + return Hn(this.__data__, t) > -1 + }), + (Bn.prototype.set = function (t, e) { + var n = this.__data__, + r = Hn(n, t) + return (r < 0 ? (++this.size, n.push([t, e])) : (n[r][1] = e), this) + }), + (zn.prototype.clear = function () { + ;((this.size = 0), (this.__data__ = { hash: new On(), map: new (ln || Bn)(), string: new On() })) + }), + (zn.prototype.delete = function (t) { + var e = Xi(this, t).delete(t) + return ((this.size -= e ? 1 : 0), e) + }), + (zn.prototype.get = function (t) { + return Xi(this, t).get(t) + }), + (zn.prototype.has = function (t) { + return Xi(this, t).has(t) + }), + (zn.prototype.set = function (t, e) { + var n = Xi(this, t), + r = n.size + return (n.set(t, e), (this.size += n.size == r ? 0 : 1), this) + }), + (Pn.prototype.add = Pn.prototype.push = + function (t) { + return (this.__data__.set(t, '__lodash_hash_undefined__'), this) + }), + (Pn.prototype.has = function (t) { + return this.__data__.has(t) + }), + (Un.prototype.clear = function () { + ;((this.__data__ = new Bn()), (this.size = 0)) + }), + (Un.prototype.delete = function (t) { + var e = this.__data__, + n = e.delete(t) + return ((this.size = e.size), n) + }), + (Un.prototype.get = function (t) { + return this.__data__.get(t) + }), + (Un.prototype.has = function (t) { + return this.__data__.has(t) + }), + (Un.prototype.set = function (t, e) { + var n = this.__data__ + if (n instanceof Bn) { + var r = n.__data__ + if (!ln || r.length < 199) return (r.push([t, e]), (this.size = ++n.size), this) + n = this.__data__ = new zn(r) + } + return (n.set(t, e), (this.size = n.size), this) + })) + var tr = _i(ur), + er = _i(fr, !0) + function nr(t, e) { + var n = !0 + return ( + tr(t, function (t, r, i) { + return (n = !!e(t, r, i)) + }), + n + ) + } + function rr(t, e, n) { + for (var r = -1, i = t.length; ++r < i; ) { + var o = t[r], + s = e(o) + if (null != s && (void 0 === a ? s == s && !Xs(s) : n(s, a))) + var a = s, + u = o + } + return u + } + function ir(t, e) { + var n = [] + return ( + tr(t, function (t, r, i) { + e(t, r, i) && n.push(t) + }), + n + ) + } + function or(t, e, n, r, i) { + var o = -1, + s = t.length + for (n || (n = oo), i || (i = []); ++o < s; ) { + var a = t[o] + e > 0 && n(a) ? (e > 1 ? or(a, e - 1, n, r, i) : pe(i, a)) : r || (i[i.length] = a) + } + return i + } + var sr = Si(), + ar = Si(!0) + function ur(t, e) { + return t && sr(t, e, wa) + } + function fr(t, e) { + return t && ar(t, e, wa) + } + function cr(t, e) { + return ce(e, function (e) { + return Cs(t[e]) + }) + } + function hr(t, e) { + for (var n = 0, r = (e = ai(e, t)).length; null != t && n < r; ) t = t[xo(e[n++])] + return n && n == r ? t : void 0 + } + function dr(t, e, n) { + var r = e(t) + return Os(t) ? r : pe(r, n(t)) + } + function lr(t) { + return null == t + ? void 0 === t + ? '[object Undefined]' + : '[object Null]' + : me && me in bt(t) + ? (function (t) { + var e = Et.call(t, me), + n = t[me] + try { + t[me] = void 0 + var r = !0 + } catch (t) {} + var i = It.call(t) + r && (e ? (t[me] = n) : delete t[me]) + return i + })(t) + : (function (t) { + return It.call(t) + })(t) + } + function pr(t, e) { + return t > e + } + function br(t, e) { + return null != t && Et.call(t, e) + } + function gr(t, e) { + return null != t && e in bt(t) + } + function vr(t, e, n) { + for (var i = n ? de : he, o = t[0].length, s = t.length, a = s, u = r(s), f = 1 / 0, c = []; a--; ) { + var h = t[a] + ;(a && e && (h = le(h, Le(e))), (f = an(h.length, f)), (u[a] = !n && (e || (o >= 120 && h.length >= 120)) ? new Pn(a && h) : void 0)) + } + h = t[0] + var d = -1, + l = u[0] + t: for (; ++d < o && c.length < f; ) { + var p = h[d], + b = e ? e(p) : p + if (((p = n || 0 !== p ? p : 0), !(l ? Re(l, b) : i(c, b, n)))) { + for (a = s; --a; ) { + var g = u[a] + if (!(g ? Re(g, b) : i(t[a], b, n))) continue t + } + ;(l && l.push(b), c.push(p)) + } + } + return c + } + function mr(t, e, n) { + var r = null == (t = go(t, (e = ai(e, t)))) ? t : t[xo(jo(e))] + return null == r ? void 0 : oe(r, t, n) + } + function yr(t) { + return Hs(t) && lr(t) == u + } + function wr(t, e, n, r, i) { + return ( + t === e || + (null == t || null == e || (!Hs(t) && !Hs(e)) + ? t != t && e != e + : (function (t, e, n, r, i, o) { + var s = Os(t), + a = Os(e), + l = s ? f : no(t), + p = a ? f : no(e), + S = (l = l == u ? v : l) == v, + A = (p = p == u ? v : p) == v, + x = l == p + if (x && Us(t)) { + if (!Us(e)) return !1 + ;((s = !0), (S = !1)) + } + if (x && !S) + return ( + o || (o = new Un()), + s || Gs(t) + ? Vi(t, e, n, r, i, o) + : (function (t, e, n, r, i, o, s) { + switch (n) { + case E: + if (t.byteLength != e.byteLength || t.byteOffset != e.byteOffset) return !1 + ;((t = t.buffer), (e = e.buffer)) + case M: + return !(t.byteLength != e.byteLength || !o(new Pt(t), new Pt(e))) + case c: + case h: + case g: + return ks(+t, +e) + case d: + return t.name == e.name && t.message == e.message + case m: + case w: + return t == e + '' + case b: + var a = Ce + case y: + var u = 1 & r + if ((a || (a = Ve), t.size != e.size && !u)) return !1 + var f = s.get(t) + if (f) return f == e + ;((r |= 2), s.set(t, e)) + var l = Vi(a(t), a(e), r, i, o, s) + return (s.delete(t), l) + case _: + if (xn) return xn.call(t) == xn.call(e) + } + return !1 + })(t, e, l, n, r, i, o) + ) + if (!(1 & n)) { + var I = S && Et.call(t, '__wrapped__'), + T = A && Et.call(e, '__wrapped__') + if (I || T) { + var k = I ? t.value() : t, + L = T ? e.value() : e + return (o || (o = new Un()), i(k, L, n, r, o)) + } + } + if (!x) return !1 + return ( + o || (o = new Un()), + (function (t, e, n, r, i, o) { + var s = 1 & n, + a = Wi(t), + u = a.length, + f = Wi(e).length + if (u != f && !s) return !1 + var c = u + for (; c--; ) { + var h = a[c] + if (!(s ? h in e : Et.call(e, h))) return !1 + } + var d = o.get(t) + if (d && o.get(e)) return d == e + var l = !0 + ;(o.set(t, e), o.set(e, t)) + var p = s + for (; ++c < u; ) { + h = a[c] + var b = t[h], + g = e[h] + if (r) var v = s ? r(g, b, h, e, t, o) : r(b, g, h, t, e, o) + if (!(void 0 === v ? b === g || i(b, g, n, r, o) : v)) { + l = !1 + break + } + p || (p = 'constructor' == h) + } + if (l && !p) { + var m = t.constructor, + y = e.constructor + m != y && + 'constructor' in t && + 'constructor' in e && + !('function' == typeof m && m instanceof m && 'function' == typeof y && y instanceof y) && + (l = !1) + } + return (o.delete(t), o.delete(e), l) + })(t, e, n, r, i, o) + ) + })(t, e, n, r, wr, i)) + ) + } + function _r(t, e, n, r) { + var i = n.length, + o = i, + s = !r + if (null == t) return !o + for (t = bt(t); i--; ) { + var a = n[i] + if (s && a[2] ? a[1] !== t[a[0]] : !(a[0] in t)) return !1 + } + for (; ++i < o; ) { + var u = (a = n[i])[0], + f = t[u], + c = a[1] + if (s && a[2]) { + if (void 0 === f && !(u in t)) return !1 + } else { + var h = new Un() + if (r) var d = r(f, c, u, t, e, h) + if (!(void 0 === d ? wr(c, f, 3, r, h) : d)) return !1 + } + } + return !0 + } + function Sr(t) { + return !(!Vs(t) || ((e = t), xt && xt in e)) && (Cs(t) ? Lt : st).test(Io(t)) + var e + } + function Mr(t) { + return 'function' == typeof t ? t : null == t ? Za : 'object' == typeof t ? (Os(t) ? kr(t[0], t[1]) : Tr(t)) : eu(t) + } + function Er(t) { + if (!ho(t)) return on(t) + var e = [] + for (var n in bt(t)) Et.call(t, n) && 'constructor' != n && e.push(n) + return e + } + function Ar(t) { + if (!Vs(t)) + return (function (t) { + var e = [] + if (null != t) for (var n in bt(t)) e.push(n) + return e + })(t) + var e = ho(t), + n = [] + for (var r in t) ('constructor' != r || (!e && Et.call(t, r))) && n.push(r) + return n + } + function xr(t, e) { + return t < e + } + function Ir(t, e) { + var n = -1, + i = zs(t) ? r(t.length) : [] + return ( + tr(t, function (t, r, o) { + i[++n] = e(t, r, o) + }), + i + ) + } + function Tr(t) { + var e = Gi(t) + return 1 == e.length && e[0][2] + ? po(e[0][0], e[0][1]) + : function (n) { + return n === t || _r(n, t, e) + } + } + function kr(t, e) { + return uo(t) && lo(e) + ? po(xo(t), e) + : function (n) { + var r = ba(n, t) + return void 0 === r && r === e ? ga(n, t) : wr(e, r, 3) + } + } + function Lr(t, e, n, r, i) { + t !== e && + sr( + e, + function (o, s) { + if ((i || (i = new Un()), Vs(o))) + !(function (t, e, n, r, i, o, s) { + var a = mo(t, n), + u = mo(e, n), + f = s.get(u) + if (f) return void qn(t, n, f) + var c = o ? o(a, u, n + '', t, e, s) : void 0, + h = void 0 === c + if (h) { + var d = Os(u), + l = !d && Us(u), + p = !d && !l && Gs(u) + ;((c = u), + d || l || p + ? Os(a) + ? (c = a) + : Ps(a) + ? (c = vi(a)) + : l + ? ((h = !1), (c = hi(u, !0))) + : p + ? ((h = !1), (c = li(u, !0))) + : (c = []) + : Ys(u) || Rs(u) + ? ((c = a), Rs(a) ? (c = sa(a)) : (Vs(a) && !Cs(a)) || (c = io(u))) + : (h = !1)) + } + h && (s.set(u, c), i(c, u, r, o, s), s.delete(u)) + qn(t, n, c) + })(t, e, s, n, Lr, r, i) + else { + var a = r ? r(mo(t, s), o, s + '', t, e, i) : void 0 + ;(void 0 === a && (a = o), qn(t, s, a)) + } + }, + _a, + ) + } + function Nr(t, e) { + var n = t.length + if (n) return so((e += e < 0 ? n : 0), n) ? t[e] : void 0 + } + function Rr(t, e, n) { + var r = -1 + return ( + (e = le(e.length ? e : [Za], Le($i()))), + (function (t, e) { + var n = t.length + for (t.sort(e); n--; ) t[n] = t[n].value + return t + })( + Ir(t, function (t, n, i) { + return { + criteria: le(e, function (e) { + return e(t) + }), + index: ++r, + value: t, + } + }), + function (t, e) { + return (function (t, e, n) { + var r = -1, + i = t.criteria, + o = e.criteria, + s = i.length, + a = n.length + for (; ++r < s; ) { + var u = pi(i[r], o[r]) + if (u) { + if (r >= a) return u + var f = n[r] + return u * ('desc' == f ? -1 : 1) + } + } + return t.index - e.index + })(t, e, n) + }, + ) + ) + } + function Or(t, e, n) { + for (var r = -1, i = e.length, o = {}; ++r < i; ) { + var s = e[r], + a = hr(t, s) + n(a, s) && Dr(o, ai(s, t), a) + } + return o + } + function Br(t, e, n, r) { + var i = r ? Se : _e, + o = -1, + s = e.length, + a = t + for (t === e && (e = vi(e)), n && (a = le(t, Le(n))); ++o < s; ) + for (var u = 0, f = e[o], c = n ? n(f) : f; (u = i(a, c, u, r)) > -1; ) (a !== t && Kt.call(a, u, 1), Kt.call(t, u, 1)) + return t + } + function zr(t, e) { + for (var n = t ? e.length : 0, r = n - 1; n--; ) { + var i = e[n] + if (n == r || i !== o) { + var o = i + so(i) ? Kt.call(t, i, 1) : Qr(t, i) + } + } + return t + } + function Pr(t, e) { + return t + Qe(cn() * (e - t + 1)) + } + function Ur(t, e) { + var n = '' + if (!t || e < 1 || e > 9007199254740991) return n + do { + ;(e % 2 && (n += t), (e = Qe(e / 2)) && (t += t)) + } while (e) + return n + } + function Fr(t, e) { + return _o(bo(t, e, Za), t + '') + } + function jr(t) { + return jn(ka(t)) + } + function Cr(t, e) { + var n = ka(t) + return Eo(n, Kn(e, 0, n.length)) + } + function Dr(t, e, n, r) { + if (!Vs(t)) return t + for (var i = -1, o = (e = ai(e, t)).length, s = o - 1, a = t; null != a && ++i < o; ) { + var u = xo(e[i]), + f = n + if (i != s) { + var c = a[u] + void 0 === (f = r ? r(c, u, a) : void 0) && (f = Vs(c) ? c : so(e[i + 1]) ? [] : {}) + } + ;(Vn(a, u, f), (a = a[u])) + } + return t + } + var qr = mn + ? function (t, e) { + return (mn.set(t, e), t) + } + : Za, + Vr = xe + ? function (t, e) { + return xe(t, 'toString', { configurable: !0, enumerable: !1, value: Va(e), writable: !0 }) + } + : Za + function Hr(t) { + return Eo(ka(t)) + } + function Wr(t, e, n) { + var i = -1, + o = t.length + ;(e < 0 && (e = -e > o ? 0 : o + e), (n = n > o ? o : n) < 0 && (n += o), (o = e > n ? 0 : (n - e) >>> 0), (e >>>= 0)) + for (var s = r(o); ++i < o; ) s[i] = t[i + e] + return s + } + function Zr(t, e) { + var n + return ( + tr(t, function (t, r, i) { + return !(n = e(t, r, i)) + }), + !!n + ) + } + function Yr(t, e, n) { + var r = 0, + i = null == t ? r : t.length + if ('number' == typeof e && e == e && i <= 2147483647) { + for (; r < i; ) { + var o = (r + i) >>> 1, + s = t[o] + null !== s && !Xs(s) && (n ? s <= e : s < e) ? (r = o + 1) : (i = o) + } + return i + } + return Jr(t, e, Za, n) + } + function Jr(t, e, n, r) { + e = n(e) + for (var i = 0, o = null == t ? 0 : t.length, s = e != e, a = null === e, u = Xs(e), f = void 0 === e; i < o; ) { + var c = Qe((i + o) / 2), + h = n(t[c]), + d = void 0 !== h, + l = null === h, + p = h == h, + b = Xs(h) + if (s) var g = r || p + else g = f ? p && (r || d) : a ? p && d && (r || !l) : u ? p && d && !l && (r || !b) : !l && !b && (r ? h <= e : h < e) + g ? (i = c + 1) : (o = c) + } + return an(o, 4294967294) + } + function Kr(t, e) { + for (var n = -1, r = t.length, i = 0, o = []; ++n < r; ) { + var s = t[n], + a = e ? e(s) : s + if (!n || !ks(a, u)) { + var u = a + o[i++] = 0 === s ? 0 : s + } + } + return o + } + function $r(t) { + return 'number' == typeof t ? t : Xs(t) ? NaN : +t + } + function Xr(t) { + if ('string' == typeof t) return t + if (Os(t)) return le(t, Xr) + '' + if (Xs(t)) return In ? In.call(t) : '' + var e = t + '' + return '0' == e && 1 / t == -1 / 0 ? '-0' : e + } + function Gr(t, e, n) { + var r = -1, + i = he, + o = t.length, + s = !0, + a = [], + u = a + if (n) ((s = !1), (i = de)) + else if (o >= 200) { + var f = e ? null : Ui(t) + if (f) return Ve(f) + ;((s = !1), (i = Re), (u = new Pn())) + } else u = e ? [] : a + t: for (; ++r < o; ) { + var c = t[r], + h = e ? e(c) : c + if (((c = n || 0 !== c ? c : 0), s && h == h)) { + for (var d = u.length; d--; ) if (u[d] === h) continue t + ;(e && u.push(h), a.push(c)) + } else i(u, h, n) || (u !== a && u.push(h), a.push(c)) + } + return a + } + function Qr(t, e) { + return null == (t = go(t, (e = ai(e, t)))) || delete t[xo(jo(e))] + } + function ti(t, e, n, r) { + return Dr(t, e, n(hr(t, e)), r) + } + function ei(t, e, n, r) { + for (var i = t.length, o = r ? i : -1; (r ? o-- : ++o < i) && e(t[o], o, t); ); + return n ? Wr(t, r ? 0 : o, r ? o + 1 : i) : Wr(t, r ? o + 1 : 0, r ? i : o) + } + function ni(t, e) { + var n = t + return ( + n instanceof Rn && (n = n.value()), + be( + e, + function (t, e) { + return e.func.apply(e.thisArg, pe([t], e.args)) + }, + n, + ) + ) + } + function ri(t, e, n) { + var i = t.length + if (i < 2) return i ? Gr(t[0]) : [] + for (var o = -1, s = r(i); ++o < i; ) for (var a = t[o], u = -1; ++u < i; ) u != o && (s[o] = Qn(s[o] || a, t[u], e, n)) + return Gr(or(s, 1), e, n) + } + function ii(t, e, n) { + for (var r = -1, i = t.length, o = e.length, s = {}; ++r < i; ) { + var a = r < o ? e[r] : void 0 + n(s, t[r], a) + } + return s + } + function oi(t) { + return Ps(t) ? t : [] + } + function si(t) { + return 'function' == typeof t ? t : Za + } + function ai(t, e) { + return Os(t) ? t : uo(t, e) ? [t] : Ao(aa(t)) + } + var ui = Fr + function fi(t, e, n) { + var r = t.length + return ((n = void 0 === n ? r : n), !e && n >= r ? t : Wr(t, e, n)) + } + var ci = + Ke || + function (t) { + return Yt.clearTimeout(t) + } + function hi(t, e) { + if (e) return t.slice() + var n = t.length, + r = qt ? qt(n) : new t.constructor(n) + return (t.copy(r), r) + } + function di(t) { + var e = new t.constructor(t.byteLength) + return (new Pt(e).set(new Pt(t)), e) + } + function li(t, e) { + var n = e ? di(t.buffer) : t.buffer + return new t.constructor(n, t.byteOffset, t.length) + } + function pi(t, e) { + if (t !== e) { + var n = void 0 !== t, + r = null === t, + i = t == t, + o = Xs(t), + s = void 0 !== e, + a = null === e, + u = e == e, + f = Xs(e) + if ((!a && !f && !o && t > e) || (o && s && u && !a && !f) || (r && s && u) || (!n && u) || !i) return 1 + if ((!r && !o && !f && t < e) || (f && n && i && !r && !o) || (a && n && i) || (!s && i) || !u) return -1 + } + return 0 + } + function bi(t, e, n, i) { + for (var o = -1, s = t.length, a = n.length, u = -1, f = e.length, c = sn(s - a, 0), h = r(f + c), d = !i; ++u < f; ) h[u] = e[u] + for (; ++o < a; ) (d || o < s) && (h[n[o]] = t[o]) + for (; c--; ) h[u++] = t[o++] + return h + } + function gi(t, e, n, i) { + for (var o = -1, s = t.length, a = -1, u = n.length, f = -1, c = e.length, h = sn(s - u, 0), d = r(h + c), l = !i; ++o < h; ) d[o] = t[o] + for (var p = o; ++f < c; ) d[p + f] = e[f] + for (; ++a < u; ) (l || o < s) && (d[p + n[a]] = t[o++]) + return d + } + function vi(t, e) { + var n = -1, + i = t.length + for (e || (e = r(i)); ++n < i; ) e[n] = t[n] + return e + } + function mi(t, e, n, r) { + var i = !n + n || (n = {}) + for (var o = -1, s = e.length; ++o < s; ) { + var a = e[o], + u = r ? r(n[a], t[a], a, n, t) : void 0 + ;(void 0 === u && (u = t[a]), i ? Yn(n, a, u) : Vn(n, a, u)) + } + return n + } + function yi(t, e) { + return function (n, r) { + var i = Os(n) ? se : Wn, + o = e ? e() : {} + return i(n, t, $i(r, 2), o) + } + } + function wi(t) { + return Fr(function (e, n) { + var r = -1, + i = n.length, + o = i > 1 ? n[i - 1] : void 0, + s = i > 2 ? n[2] : void 0 + for ( + o = t.length > 3 && 'function' == typeof o ? (i--, o) : void 0, + s && ao(n[0], n[1], s) && ((o = i < 3 ? void 0 : o), (i = 1)), + e = bt(e); + ++r < i; + ) { + var a = n[r] + a && t(e, a, r, o) + } + return e + }) + } + function _i(t, e) { + return function (n, r) { + if (null == n) return n + if (!zs(n)) return t(n, r) + for (var i = n.length, o = e ? i : -1, s = bt(n); (e ? o-- : ++o < i) && !1 !== r(s[o], o, s); ); + return n + } + } + function Si(t) { + return function (e, n, r) { + for (var i = -1, o = bt(e), s = r(e), a = s.length; a--; ) { + var u = s[t ? a : ++i] + if (!1 === n(o[u], u, o)) break + } + return e + } + } + function Mi(t) { + return function (e) { + var n = je((e = aa(e))) ? Ze(e) : void 0, + r = n ? n[0] : e.charAt(0), + i = n ? fi(n, 1).join('') : e.slice(1) + return r[t]() + i + } + } + function Ei(t) { + return function (e) { + return be(Ca(Ra(e).replace(Rt, '')), t, '') + } + } + function Ai(t) { + return function () { + var e = arguments + switch (e.length) { + case 0: + return new t() + case 1: + return new t(e[0]) + case 2: + return new t(e[0], e[1]) + case 3: + return new t(e[0], e[1], e[2]) + case 4: + return new t(e[0], e[1], e[2], e[3]) + case 5: + return new t(e[0], e[1], e[2], e[3], e[4]) + case 6: + return new t(e[0], e[1], e[2], e[3], e[4], e[5]) + case 7: + return new t(e[0], e[1], e[2], e[3], e[4], e[5], e[6]) + } + var n = kn(t.prototype), + r = t.apply(n, e) + return Vs(r) ? r : n + } + } + function xi(t) { + return function (e, n, r) { + var i = bt(e) + if (!zs(e)) { + var o = $i(n, 3) + ;((e = wa(e)), + (n = function (t) { + return o(i[t], t, i) + })) + } + var s = t(e, n, r) + return s > -1 ? i[o ? e[s] : s] : void 0 + } + } + function Ii(t) { + return Hi(function (e) { + var n = e.length, + r = n, + i = Nn.prototype.thru + for (t && e.reverse(); r--; ) { + var s = e[r] + if ('function' != typeof s) throw new mt(o) + if (i && !a && 'wrapper' == Ji(s)) var a = new Nn([], !0) + } + for (r = a ? r : n; ++r < n; ) { + var u = Ji((s = e[r])), + f = 'wrapper' == u ? Yi(s) : void 0 + a = + f && fo(f[0]) && 424 == f[1] && !f[4].length && 1 == f[9] ? a[Ji(f[0])].apply(a, f[3]) : 1 == s.length && fo(s) ? a[u]() : a.thru(s) + } + return function () { + var t = arguments, + r = t[0] + if (a && 1 == t.length && Os(r)) return a.plant(r).value() + for (var i = 0, o = n ? e[i].apply(this, t) : r; ++i < n; ) o = e[i].call(this, o) + return o + } + }) + } + function Ti(t, e, n, i, o, s, a, u, f, c) { + var h = 128 & e, + d = 1 & e, + l = 2 & e, + p = 24 & e, + b = 512 & e, + g = l ? void 0 : Ai(t) + return function v() { + for (var m = arguments.length, y = r(m), w = m; w--; ) y[w] = arguments[w] + if (p) + var _ = Ki(v), + S = ze(y, _) + if ((i && (y = bi(y, i, o, p)), s && (y = gi(y, s, a, p)), (m -= S), p && m < c)) { + var M = qe(y, _) + return zi(t, e, Ti, v.placeholder, n, y, M, u, f, c - m) + } + var E = d ? n : this, + A = l ? E[t] : t + return ( + (m = y.length), + u ? (y = vo(y, u)) : b && m > 1 && y.reverse(), + h && f < m && (y.length = f), + this && this !== Yt && this instanceof v && (A = g || Ai(A)), + A.apply(E, y) + ) + } + } + function ki(t, e) { + return function (n, r) { + return (function (t, e, n, r) { + return ( + ur(t, function (t, i, o) { + e(r, n(t), i, o) + }), + r + ) + })(n, t, e(r), {}) + } + } + function Li(t, e) { + return function (n, r) { + var i + if (void 0 === n && void 0 === r) return e + if ((void 0 !== n && (i = n), void 0 !== r)) { + if (void 0 === i) return r + ;('string' == typeof n || 'string' == typeof r ? ((n = Xr(n)), (r = Xr(r))) : ((n = $r(n)), (r = $r(r))), (i = t(n, r))) + } + return i + } + } + function Ni(t) { + return Hi(function (e) { + return ( + (e = le(e, Le($i()))), + Fr(function (n) { + var r = this + return t(e, function (t) { + return oe(t, r, n) + }) + }) + ) + }) + } + function Ri(t, e) { + var n = (e = void 0 === e ? ' ' : Xr(e)).length + if (n < 2) return n ? Ur(e, t) : e + var r = Ur(e, Ge(t / We(e))) + return je(e) ? fi(Ze(r), 0, t).join('') : r.slice(0, t) + } + function Oi(t) { + return function (e, n, i) { + return ( + i && 'number' != typeof i && ao(e, n, i) && (n = i = void 0), + (e = na(e)), + void 0 === n ? ((n = e), (e = 0)) : (n = na(n)), + (function (t, e, n, i) { + for (var o = -1, s = sn(Ge((e - t) / (n || 1)), 0), a = r(s); s--; ) ((a[i ? s : ++o] = t), (t += n)) + return a + })(e, n, (i = void 0 === i ? (e < n ? 1 : -1) : na(i)), t) + ) + } + } + function Bi(t) { + return function (e, n) { + return (('string' == typeof e && 'string' == typeof n) || ((e = oa(e)), (n = oa(n))), t(e, n)) + } + } + function zi(t, e, n, r, i, o, s, a, u, f) { + var c = 8 & e + ;((e |= c ? 32 : 64), 4 & (e &= ~(c ? 64 : 32)) || (e &= -4)) + var h = [t, e, i, c ? o : void 0, c ? s : void 0, c ? void 0 : o, c ? void 0 : s, a, u, f], + d = n.apply(void 0, h) + return (fo(t) && yo(d, h), (d.placeholder = r), So(d, t, e)) + } + function Pi(t) { + var e = pt[t] + return function (t, n) { + if (((t = oa(t)), (n = null == n ? 0 : an(ra(n), 292)) && nn(t))) { + var r = (aa(t) + 'e').split('e') + return +((r = (aa(e(r[0] + 'e' + (+r[1] + n))) + 'e').split('e'))[0] + 'e' + (+r[1] - n)) + } + return e(t) + } + } + var Ui = + bn && 1 / Ve(new bn([, -0]))[1] == 1 / 0 + ? function (t) { + return new bn(t) + } + : Xa + function Fi(t) { + return function (e) { + var n = no(e) + return n == b + ? Ce(e) + : n == y + ? He(e) + : (function (t, e) { + return le(e, function (e) { + return [e, t[e]] + }) + })(e, t(e)) + } + } + function ji(t, e, n, i, a, u, f, c) { + var h = 2 & e + if (!h && 'function' != typeof t) throw new mt(o) + var d = i ? i.length : 0 + if ( + (d || ((e &= -97), (i = a = void 0)), + (f = void 0 === f ? f : sn(ra(f), 0)), + (c = void 0 === c ? c : ra(c)), + (d -= a ? a.length : 0), + 64 & e) + ) { + var l = i, + p = a + i = a = void 0 + } + var b = h ? void 0 : Yi(t), + g = [t, e, n, i, a, l, p, u, f, c] + if ( + (b && + (function (t, e) { + var n = t[1], + r = e[1], + i = n | r, + o = i < 131, + a = (128 == r && 8 == n) || (128 == r && 256 == n && t[7].length <= e[8]) || (384 == r && e[7].length <= e[8] && 8 == n) + if (!o && !a) return t + 1 & r && ((t[2] = e[2]), (i |= 1 & n ? 0 : 4)) + var u = e[3] + if (u) { + var f = t[3] + ;((t[3] = f ? bi(f, u, e[4]) : u), (t[4] = f ? qe(t[3], s) : e[4])) + } + ;(u = e[5]) && ((f = t[5]), (t[5] = f ? gi(f, u, e[6]) : u), (t[6] = f ? qe(t[5], s) : e[6])) + ;(u = e[7]) && (t[7] = u) + 128 & r && (t[8] = null == t[8] ? e[8] : an(t[8], e[8])) + null == t[9] && (t[9] = e[9]) + ;((t[0] = e[0]), (t[1] = i)) + })(g, b), + (t = g[0]), + (e = g[1]), + (n = g[2]), + (i = g[3]), + (a = g[4]), + !(c = g[9] = void 0 === g[9] ? (h ? 0 : t.length) : sn(g[9] - d, 0)) && 24 & e && (e &= -25), + e && 1 != e) + ) + v = + 8 == e || 16 == e + ? (function (t, e, n) { + var i = Ai(t) + return function o() { + for (var s = arguments.length, a = r(s), u = s, f = Ki(o); u--; ) a[u] = arguments[u] + var c = s < 3 && a[0] !== f && a[s - 1] !== f ? [] : qe(a, f) + if ((s -= c.length) < n) return zi(t, e, Ti, o.placeholder, void 0, a, c, void 0, void 0, n - s) + var h = this && this !== Yt && this instanceof o ? i : t + return oe(h, this, a) + } + })(t, e, c) + : (32 != e && 33 != e) || a.length + ? Ti.apply(void 0, g) + : (function (t, e, n, i) { + var o = 1 & e, + s = Ai(t) + return function e() { + for ( + var a = -1, + u = arguments.length, + f = -1, + c = i.length, + h = r(c + u), + d = this && this !== Yt && this instanceof e ? s : t; + ++f < c; + ) + h[f] = i[f] + for (; u--; ) h[f++] = arguments[++a] + return oe(d, o ? n : this, h) + } + })(t, e, n, i) + else + var v = (function (t, e, n) { + var r = 1 & e, + i = Ai(t) + return function e() { + var o = this && this !== Yt && this instanceof e ? i : t + return o.apply(r ? n : this, arguments) + } + })(t, e, n) + return So((b ? qr : yo)(v, g), t, e) + } + function Ci(t, e, n, r) { + return void 0 === t || (ks(t, _t[n]) && !Et.call(r, n)) ? e : t + } + function Di(t, e, n, r, i, o) { + return (Vs(t) && Vs(e) && (o.set(e, t), Lr(t, e, void 0, Di, o), o.delete(e)), t) + } + function qi(t) { + return Ys(t) ? void 0 : t + } + function Vi(t, e, n, r, i, o) { + var s = 1 & n, + a = t.length, + u = e.length + if (a != u && !(s && u > a)) return !1 + var f = o.get(t) + if (f && o.get(e)) return f == e + var c = -1, + h = !0, + d = 2 & n ? new Pn() : void 0 + for (o.set(t, e), o.set(e, t); ++c < a; ) { + var l = t[c], + p = e[c] + if (r) var b = s ? r(p, l, c, e, t, o) : r(l, p, c, t, e, o) + if (void 0 !== b) { + if (b) continue + h = !1 + break + } + if (d) { + if ( + !ve(e, function (t, e) { + if (!Re(d, e) && (l === t || i(l, t, n, r, o))) return d.push(e) + }) + ) { + h = !1 + break + } + } else if (l !== p && !i(l, p, n, r, o)) { + h = !1 + break + } + } + return (o.delete(t), o.delete(e), h) + } + function Hi(t) { + return _o(bo(t, void 0, Bo), t + '') + } + function Wi(t) { + return dr(t, wa, to) + } + function Zi(t) { + return dr(t, _a, eo) + } + var Yi = mn + ? function (t) { + return mn.get(t) + } + : Xa + function Ji(t) { + for (var e = t.name + '', n = yn[e], r = Et.call(yn, e) ? n.length : 0; r--; ) { + var i = n[r], + o = i.func + if (null == o || o == t) return i.name + } + return e + } + function Ki(t) { + return (Et.call(Tn, 'placeholder') ? Tn : t).placeholder + } + function $i() { + var t = Tn.iteratee || Ya + return ((t = t === Ya ? Mr : t), arguments.length ? t(arguments[0], arguments[1]) : t) + } + function Xi(t, e) { + var n, + r, + i = t.__data__ + return ('string' == (r = typeof (n = e)) || 'number' == r || 'symbol' == r || 'boolean' == r ? '__proto__' !== n : null === n) + ? i['string' == typeof e ? 'string' : 'hash'] + : i.map + } + function Gi(t) { + for (var e = wa(t), n = e.length; n--; ) { + var r = e[n], + i = t[r] + e[n] = [r, i, lo(i)] + } + return e + } + function Qi(t, e) { + var n = (function (t, e) { + return null == t ? void 0 : t[e] + })(t, e) + return Sr(n) ? n : void 0 + } + var to = tn + ? function (t) { + return null == t + ? [] + : ((t = bt(t)), + ce(tn(t), function (e) { + return Jt.call(t, e) + })) + } + : iu, + eo = tn + ? function (t) { + for (var e = []; t; ) (pe(e, to(t)), (t = Wt(t))) + return e + } + : iu, + no = lr + function ro(t, e, n) { + for (var r = -1, i = (e = ai(e, t)).length, o = !1; ++r < i; ) { + var s = xo(e[r]) + if (!(o = null != t && n(t, s))) break + t = t[s] + } + return o || ++r != i ? o : !!(i = null == t ? 0 : t.length) && qs(i) && so(s, i) && (Os(t) || Rs(t)) + } + function io(t) { + return 'function' != typeof t.constructor || ho(t) ? {} : kn(Wt(t)) + } + function oo(t) { + return Os(t) || Rs(t) || !!(Xt && t && t[Xt]) + } + function so(t, e) { + var n = typeof t + return !!(e = null == e ? 9007199254740991 : e) && ('number' == n || ('symbol' != n && ut.test(t))) && t > -1 && t % 1 == 0 && t < e + } + function ao(t, e, n) { + if (!Vs(n)) return !1 + var r = typeof e + return !!('number' == r ? zs(n) && so(e, n.length) : 'string' == r && e in n) && ks(n[e], t) + } + function uo(t, e) { + if (Os(t)) return !1 + var n = typeof t + return !('number' != n && 'symbol' != n && 'boolean' != n && null != t && !Xs(t)) || H.test(t) || !V.test(t) || (null != e && t in bt(e)) + } + function fo(t) { + var e = Ji(t), + n = Tn[e] + if ('function' != typeof n || !(e in Rn.prototype)) return !1 + if (t === n) return !0 + var r = Yi(n) + return !!r && t === r[0] + } + ;((dn && no(new dn(new ArrayBuffer(1))) != E) || + (ln && no(new ln()) != b) || + (pn && '[object Promise]' != no(pn.resolve())) || + (bn && no(new bn()) != y) || + (gn && no(new gn()) != S)) && + (no = function (t) { + var e = lr(t), + n = e == v ? t.constructor : void 0, + r = n ? Io(n) : '' + if (r) + switch (r) { + case wn: + return E + case _n: + return b + case Sn: + return '[object Promise]' + case Mn: + return y + case En: + return S + } + return e + }) + var co = St ? Cs : ou + function ho(t) { + var e = t && t.constructor + return t === (('function' == typeof e && e.prototype) || _t) + } + function lo(t) { + return t == t && !Vs(t) + } + function po(t, e) { + return function (n) { + return null != n && n[t] === e && (void 0 !== e || t in bt(n)) + } + } + function bo(t, e, n) { + return ( + (e = sn(void 0 === e ? t.length - 1 : e, 0)), + function () { + for (var i = arguments, o = -1, s = sn(i.length - e, 0), a = r(s); ++o < s; ) a[o] = i[e + o] + o = -1 + for (var u = r(e + 1); ++o < e; ) u[o] = i[o] + return ((u[e] = n(a)), oe(t, this, u)) + } + ) + } + function go(t, e) { + return e.length < 2 ? t : hr(t, Wr(e, 0, -1)) + } + function vo(t, e) { + for (var n = t.length, r = an(e.length, n), i = vi(t); r--; ) { + var o = e[r] + t[r] = so(o, n) ? i[o] : void 0 + } + return t + } + function mo(t, e) { + if (('constructor' !== e || 'function' != typeof t[e]) && '__proto__' != e) return t[e] + } + var yo = Mo(qr), + wo = + Xe || + function (t, e) { + return Yt.setTimeout(t, e) + }, + _o = Mo(Vr) + function So(t, e, n) { + var r = e + '' + return _o( + t, + (function (t, e) { + var n = e.length + if (!n) return t + var r = n - 1 + return ((e[r] = (n > 1 ? '& ' : '') + e[r]), (e = e.join(n > 2 ? ', ' : ' ')), t.replace(X, '{\n/* [wrapped with ' + e + '] */\n')) + })( + r, + (function (t, e) { + return ( + ae(a, function (n) { + var r = '_.' + n[0] + e & n[1] && !he(t, r) && t.push(r) + }), + t.sort() + ) + })( + (function (t) { + var e = t.match(G) + return e ? e[1].split(Q) : [] + })(r), + n, + ), + ), + ) + } + function Mo(t) { + var e = 0, + n = 0 + return function () { + var r = un(), + i = 16 - (r - n) + if (((n = r), i > 0)) { + if (++e >= 800) return arguments[0] + } else e = 0 + return t.apply(void 0, arguments) + } + } + function Eo(t, e) { + var n = -1, + r = t.length, + i = r - 1 + for (e = void 0 === e ? r : e; ++n < e; ) { + var o = Pr(n, i), + s = t[o] + ;((t[o] = t[n]), (t[n] = s)) + } + return ((t.length = e), t) + } + var Ao = (function (t) { + var e = Ms(t, function (t) { + return (500 === n.size && n.clear(), t) + }), + n = e.cache + return e + })(function (t) { + var e = [] + return ( + 46 === t.charCodeAt(0) && e.push(''), + t.replace(W, function (t, n, r, i) { + e.push(r ? i.replace(et, '$1') : n || t) + }), + e + ) + }) + function xo(t) { + if ('string' == typeof t || Xs(t)) return t + var e = t + '' + return '0' == e && 1 / t == -1 / 0 ? '-0' : e + } + function Io(t) { + if (null != t) { + try { + return Mt.call(t) + } catch (t) {} + try { + return t + '' + } catch (t) {} + } + return '' + } + function To(t) { + if (t instanceof Rn) return t.clone() + var e = new Nn(t.__wrapped__, t.__chain__) + return ((e.__actions__ = vi(t.__actions__)), (e.__index__ = t.__index__), (e.__values__ = t.__values__), e) + } + var ko = Fr(function (t, e) { + return Ps(t) ? Qn(t, or(e, 1, Ps, !0)) : [] + }), + Lo = Fr(function (t, e) { + var n = jo(e) + return (Ps(n) && (n = void 0), Ps(t) ? Qn(t, or(e, 1, Ps, !0), $i(n, 2)) : []) + }), + No = Fr(function (t, e) { + var n = jo(e) + return (Ps(n) && (n = void 0), Ps(t) ? Qn(t, or(e, 1, Ps, !0), void 0, n) : []) + }) + function Ro(t, e, n) { + var r = null == t ? 0 : t.length + if (!r) return -1 + var i = null == n ? 0 : ra(n) + return (i < 0 && (i = sn(r + i, 0)), we(t, $i(e, 3), i)) + } + function Oo(t, e, n) { + var r = null == t ? 0 : t.length + if (!r) return -1 + var i = r - 1 + return (void 0 !== n && ((i = ra(n)), (i = n < 0 ? sn(r + i, 0) : an(i, r - 1))), we(t, $i(e, 3), i, !0)) + } + function Bo(t) { + return (null == t ? 0 : t.length) ? or(t, 1) : [] + } + function zo(t) { + return t && t.length ? t[0] : void 0 + } + var Po = Fr(function (t) { + var e = le(t, oi) + return e.length && e[0] === t[0] ? vr(e) : [] + }), + Uo = Fr(function (t) { + var e = jo(t), + n = le(t, oi) + return (e === jo(n) ? (e = void 0) : n.pop(), n.length && n[0] === t[0] ? vr(n, $i(e, 2)) : []) + }), + Fo = Fr(function (t) { + var e = jo(t), + n = le(t, oi) + return ((e = 'function' == typeof e ? e : void 0) && n.pop(), n.length && n[0] === t[0] ? vr(n, void 0, e) : []) + }) + function jo(t) { + var e = null == t ? 0 : t.length + return e ? t[e - 1] : void 0 + } + var Co = Fr(Do) + function Do(t, e) { + return t && t.length && e && e.length ? Br(t, e) : t + } + var qo = Hi(function (t, e) { + var n = null == t ? 0 : t.length, + r = Jn(t, e) + return ( + zr( + t, + le(e, function (t) { + return so(t, n) ? +t : t + }).sort(pi), + ), + r + ) + }) + function Vo(t) { + return null == t ? t : hn.call(t) + } + var Ho = Fr(function (t) { + return Gr(or(t, 1, Ps, !0)) + }), + Wo = Fr(function (t) { + var e = jo(t) + return (Ps(e) && (e = void 0), Gr(or(t, 1, Ps, !0), $i(e, 2))) + }), + Zo = Fr(function (t) { + var e = jo(t) + return ((e = 'function' == typeof e ? e : void 0), Gr(or(t, 1, Ps, !0), void 0, e)) + }) + function Yo(t) { + if (!t || !t.length) return [] + var e = 0 + return ( + (t = ce(t, function (t) { + if (Ps(t)) return ((e = sn(t.length, e)), !0) + })), + ke(e, function (e) { + return le(t, Ae(e)) + }) + ) + } + function Jo(t, e) { + if (!t || !t.length) return [] + var n = Yo(t) + return null == e + ? n + : le(n, function (t) { + return oe(e, void 0, t) + }) + } + var Ko = Fr(function (t, e) { + return Ps(t) ? Qn(t, e) : [] + }), + $o = Fr(function (t) { + return ri(ce(t, Ps)) + }), + Xo = Fr(function (t) { + var e = jo(t) + return (Ps(e) && (e = void 0), ri(ce(t, Ps), $i(e, 2))) + }), + Go = Fr(function (t) { + var e = jo(t) + return ((e = 'function' == typeof e ? e : void 0), ri(ce(t, Ps), void 0, e)) + }), + Qo = Fr(Yo) + var ts = Fr(function (t) { + var e = t.length, + n = e > 1 ? t[e - 1] : void 0 + return ((n = 'function' == typeof n ? (t.pop(), n) : void 0), Jo(t, n)) + }) + function es(t) { + var e = Tn(t) + return ((e.__chain__ = !0), e) + } + function ns(t, e) { + return e(t) + } + var rs = Hi(function (t) { + var e = t.length, + n = e ? t[0] : 0, + r = this.__wrapped__, + i = function (e) { + return Jn(e, t) + } + return !(e > 1 || this.__actions__.length) && r instanceof Rn && so(n) + ? ((r = r.slice(n, +n + (e ? 1 : 0))).__actions__.push({ func: ns, args: [i], thisArg: void 0 }), + new Nn(r, this.__chain__).thru(function (t) { + return (e && !t.length && t.push(void 0), t) + })) + : this.thru(i) + }) + var is = yi(function (t, e, n) { + Et.call(t, n) ? ++t[n] : Yn(t, n, 1) + }) + var os = xi(Ro), + ss = xi(Oo) + function as(t, e) { + return (Os(t) ? ae : tr)(t, $i(e, 3)) + } + function us(t, e) { + return (Os(t) ? ue : er)(t, $i(e, 3)) + } + var fs = yi(function (t, e, n) { + Et.call(t, n) ? t[n].push(e) : Yn(t, n, [e]) + }) + var cs = Fr(function (t, e, n) { + var i = -1, + o = 'function' == typeof e, + s = zs(t) ? r(t.length) : [] + return ( + tr(t, function (t) { + s[++i] = o ? oe(e, t, n) : mr(t, e, n) + }), + s + ) + }), + hs = yi(function (t, e, n) { + Yn(t, n, e) + }) + function ds(t, e) { + return (Os(t) ? le : Ir)(t, $i(e, 3)) + } + var ls = yi( + function (t, e, n) { + t[n ? 0 : 1].push(e) + }, + function () { + return [[], []] + }, + ) + var ps = Fr(function (t, e) { + if (null == t) return [] + var n = e.length + return (n > 1 && ao(t, e[0], e[1]) ? (e = []) : n > 2 && ao(e[0], e[1], e[2]) && (e = [e[0]]), Rr(t, or(e, 1), [])) + }), + bs = + $e || + function () { + return Yt.Date.now() + } + function gs(t, e, n) { + return ((e = n ? void 0 : e), ji(t, 128, void 0, void 0, void 0, void 0, (e = t && null == e ? t.length : e))) + } + function vs(t, e) { + var n + if ('function' != typeof e) throw new mt(o) + return ( + (t = ra(t)), + function () { + return (--t > 0 && (n = e.apply(this, arguments)), t <= 1 && (e = void 0), n) + } + ) + } + var ms = Fr(function (t, e, n) { + var r = 1 + if (n.length) { + var i = qe(n, Ki(ms)) + r |= 32 + } + return ji(t, r, e, n, i) + }), + ys = Fr(function (t, e, n) { + var r = 3 + if (n.length) { + var i = qe(n, Ki(ys)) + r |= 32 + } + return ji(e, r, t, n, i) + }) + function ws(t, e, n) { + var r, + i, + s, + a, + u, + f, + c = 0, + h = !1, + d = !1, + l = !0 + if ('function' != typeof t) throw new mt(o) + function p(e) { + var n = r, + o = i + return ((r = i = void 0), (c = e), (a = t.apply(o, n))) + } + function b(t) { + return ((c = t), (u = wo(v, e)), h ? p(t) : a) + } + function g(t) { + var n = t - f + return void 0 === f || n >= e || n < 0 || (d && t - c >= s) + } + function v() { + var t = bs() + if (g(t)) return m(t) + u = wo( + v, + (function (t) { + var n = e - (t - f) + return d ? an(n, s - (t - c)) : n + })(t), + ) + } + function m(t) { + return ((u = void 0), l && r ? p(t) : ((r = i = void 0), a)) + } + function y() { + var t = bs(), + n = g(t) + if (((r = arguments), (i = this), (f = t), n)) { + if (void 0 === u) return b(f) + if (d) return (ci(u), (u = wo(v, e)), p(f)) + } + return (void 0 === u && (u = wo(v, e)), a) + } + return ( + (e = oa(e) || 0), + Vs(n) && ((h = !!n.leading), (s = (d = 'maxWait' in n) ? sn(oa(n.maxWait) || 0, e) : s), (l = 'trailing' in n ? !!n.trailing : l)), + (y.cancel = function () { + ;(void 0 !== u && ci(u), (c = 0), (r = f = i = u = void 0)) + }), + (y.flush = function () { + return void 0 === u ? a : m(bs()) + }), + y + ) + } + var _s = Fr(function (t, e) { + return Gn(t, 1, e) + }), + Ss = Fr(function (t, e, n) { + return Gn(t, oa(e) || 0, n) + }) + function Ms(t, e) { + if ('function' != typeof t || (null != e && 'function' != typeof e)) throw new mt(o) + var n = function () { + var r = arguments, + i = e ? e.apply(this, r) : r[0], + o = n.cache + if (o.has(i)) return o.get(i) + var s = t.apply(this, r) + return ((n.cache = o.set(i, s) || o), s) + } + return ((n.cache = new (Ms.Cache || zn)()), n) + } + function Es(t) { + if ('function' != typeof t) throw new mt(o) + return function () { + var e = arguments + switch (e.length) { + case 0: + return !t.call(this) + case 1: + return !t.call(this, e[0]) + case 2: + return !t.call(this, e[0], e[1]) + case 3: + return !t.call(this, e[0], e[1], e[2]) + } + return !t.apply(this, e) + } + } + Ms.Cache = zn + var As = ui(function (t, e) { + var n = (e = 1 == e.length && Os(e[0]) ? le(e[0], Le($i())) : le(or(e, 1), Le($i()))).length + return Fr(function (r) { + for (var i = -1, o = an(r.length, n); ++i < o; ) r[i] = e[i].call(this, r[i]) + return oe(t, this, r) + }) + }), + xs = Fr(function (t, e) { + return ji(t, 32, void 0, e, qe(e, Ki(xs))) + }), + Is = Fr(function (t, e) { + return ji(t, 64, void 0, e, qe(e, Ki(Is))) + }), + Ts = Hi(function (t, e) { + return ji(t, 256, void 0, void 0, void 0, e) + }) + function ks(t, e) { + return t === e || (t != t && e != e) + } + var Ls = Bi(pr), + Ns = Bi(function (t, e) { + return t >= e + }), + Rs = yr( + (function () { + return arguments + })(), + ) + ? yr + : function (t) { + return Hs(t) && Et.call(t, 'callee') && !Jt.call(t, 'callee') + }, + Os = r.isArray, + Bs = Qt + ? Le(Qt) + : function (t) { + return Hs(t) && lr(t) == M + } + function zs(t) { + return null != t && qs(t.length) && !Cs(t) + } + function Ps(t) { + return Hs(t) && zs(t) + } + var Us = en || ou, + Fs = te + ? Le(te) + : function (t) { + return Hs(t) && lr(t) == h + } + function js(t) { + if (!Hs(t)) return !1 + var e = lr(t) + return e == d || '[object DOMException]' == e || ('string' == typeof t.message && 'string' == typeof t.name && !Ys(t)) + } + function Cs(t) { + if (!Vs(t)) return !1 + var e = lr(t) + return e == l || e == p || '[object AsyncFunction]' == e || '[object Proxy]' == e + } + function Ds(t) { + return 'number' == typeof t && t == ra(t) + } + function qs(t) { + return 'number' == typeof t && t > -1 && t % 1 == 0 && t <= 9007199254740991 + } + function Vs(t) { + var e = typeof t + return null != t && ('object' == e || 'function' == e) + } + function Hs(t) { + return null != t && 'object' == typeof t + } + var Ws = ee + ? Le(ee) + : function (t) { + return Hs(t) && no(t) == b + } + function Zs(t) { + return 'number' == typeof t || (Hs(t) && lr(t) == g) + } + function Ys(t) { + if (!Hs(t) || lr(t) != v) return !1 + var e = Wt(t) + if (null === e) return !0 + var n = Et.call(e, 'constructor') && e.constructor + return 'function' == typeof n && n instanceof n && Mt.call(n) == Tt + } + var Js = ne + ? Le(ne) + : function (t) { + return Hs(t) && lr(t) == m + } + var Ks = re + ? Le(re) + : function (t) { + return Hs(t) && no(t) == y + } + function $s(t) { + return 'string' == typeof t || (!Os(t) && Hs(t) && lr(t) == w) + } + function Xs(t) { + return 'symbol' == typeof t || (Hs(t) && lr(t) == _) + } + var Gs = ie + ? Le(ie) + : function (t) { + return Hs(t) && qs(t.length) && !!Ct[lr(t)] + } + var Qs = Bi(xr), + ta = Bi(function (t, e) { + return t <= e + }) + function ea(t) { + if (!t) return [] + if (zs(t)) return $s(t) ? Ze(t) : vi(t) + if (Gt && t[Gt]) + return (function (t) { + for (var e, n = []; !(e = t.next()).done; ) n.push(e.value) + return n + })(t[Gt]()) + var e = no(t) + return (e == b ? Ce : e == y ? Ve : ka)(t) + } + function na(t) { + return t ? ((t = oa(t)) === 1 / 0 || t === -1 / 0 ? 17976931348623157e292 * (t < 0 ? -1 : 1) : t == t ? t : 0) : 0 === t ? t : 0 + } + function ra(t) { + var e = na(t), + n = e % 1 + return e == e ? (n ? e - n : e) : 0 + } + function ia(t) { + return t ? Kn(ra(t), 0, 4294967295) : 0 + } + function oa(t) { + if ('number' == typeof t) return t + if (Xs(t)) return NaN + if (Vs(t)) { + var e = 'function' == typeof t.valueOf ? t.valueOf() : t + t = Vs(e) ? e + '' : e + } + if ('string' != typeof t) return 0 === t ? t : +t + t = t.replace(J, '') + var n = ot.test(t) + return n || at.test(t) ? Ht(t.slice(2), n ? 2 : 8) : it.test(t) ? NaN : +t + } + function sa(t) { + return mi(t, _a(t)) + } + function aa(t) { + return null == t ? '' : Xr(t) + } + var ua = wi(function (t, e) { + if (ho(e) || zs(e)) mi(e, wa(e), t) + else for (var n in e) Et.call(e, n) && Vn(t, n, e[n]) + }), + fa = wi(function (t, e) { + mi(e, _a(e), t) + }), + ca = wi(function (t, e, n, r) { + mi(e, _a(e), t, r) + }), + ha = wi(function (t, e, n, r) { + mi(e, wa(e), t, r) + }), + da = Hi(Jn) + var la = Fr(function (t, e) { + t = bt(t) + var n = -1, + r = e.length, + i = r > 2 ? e[2] : void 0 + for (i && ao(e[0], e[1], i) && (r = 1); ++n < r; ) + for (var o = e[n], s = _a(o), a = -1, u = s.length; ++a < u; ) { + var f = s[a], + c = t[f] + ;(void 0 === c || (ks(c, _t[f]) && !Et.call(t, f))) && (t[f] = o[f]) + } + return t + }), + pa = Fr(function (t) { + return (t.push(void 0, Di), oe(Ma, void 0, t)) + }) + function ba(t, e, n) { + var r = null == t ? void 0 : hr(t, e) + return void 0 === r ? n : r + } + function ga(t, e) { + return null != t && ro(t, e, gr) + } + var va = ki(function (t, e, n) { + ;(null != e && 'function' != typeof e.toString && (e = It.call(e)), (t[e] = n)) + }, Va(Za)), + ma = ki(function (t, e, n) { + ;(null != e && 'function' != typeof e.toString && (e = It.call(e)), Et.call(t, e) ? t[e].push(n) : (t[e] = [n])) + }, $i), + ya = Fr(mr) + function wa(t) { + return zs(t) ? Fn(t) : Er(t) + } + function _a(t) { + return zs(t) ? Fn(t, !0) : Ar(t) + } + var Sa = wi(function (t, e, n) { + Lr(t, e, n) + }), + Ma = wi(function (t, e, n, r) { + Lr(t, e, n, r) + }), + Ea = Hi(function (t, e) { + var n = {} + if (null == t) return n + var r = !1 + ;((e = le(e, function (e) { + return ((e = ai(e, t)), r || (r = e.length > 1), e) + })), + mi(t, Zi(t), n), + r && (n = $n(n, 7, qi))) + for (var i = e.length; i--; ) Qr(n, e[i]) + return n + }) + var Aa = Hi(function (t, e) { + return null == t + ? {} + : (function (t, e) { + return Or(t, e, function (e, n) { + return ga(t, n) + }) + })(t, e) + }) + function xa(t, e) { + if (null == t) return {} + var n = le(Zi(t), function (t) { + return [t] + }) + return ( + (e = $i(e)), + Or(t, n, function (t, n) { + return e(t, n[0]) + }) + ) + } + var Ia = Fi(wa), + Ta = Fi(_a) + function ka(t) { + return null == t ? [] : Ne(t, wa(t)) + } + var La = Ei(function (t, e, n) { + return ((e = e.toLowerCase()), t + (n ? Na(e) : e)) + }) + function Na(t) { + return ja(aa(t).toLowerCase()) + } + function Ra(t) { + return (t = aa(t)) && t.replace(ft, Pe).replace(Ot, '') + } + var Oa = Ei(function (t, e, n) { + return t + (n ? '-' : '') + e.toLowerCase() + }), + Ba = Ei(function (t, e, n) { + return t + (n ? ' ' : '') + e.toLowerCase() + }), + za = Mi('toLowerCase') + var Pa = Ei(function (t, e, n) { + return t + (n ? '_' : '') + e.toLowerCase() + }) + var Ua = Ei(function (t, e, n) { + return t + (n ? ' ' : '') + ja(e) + }) + var Fa = Ei(function (t, e, n) { + return t + (n ? ' ' : '') + e.toUpperCase() + }), + ja = Mi('toUpperCase') + function Ca(t, e, n) { + return ( + (t = aa(t)), + void 0 === (e = n ? void 0 : e) + ? (function (t) { + return Ut.test(t) + })(t) + ? (function (t) { + return t.match(zt) || [] + })(t) + : (function (t) { + return t.match(tt) || [] + })(t) + : t.match(e) || [] + ) + } + var Da = Fr(function (t, e) { + try { + return oe(t, void 0, e) + } catch (t) { + return js(t) ? t : new dt(t) + } + }), + qa = Hi(function (t, e) { + return ( + ae(e, function (e) { + ;((e = xo(e)), Yn(t, e, ms(t[e], t))) + }), + t + ) + }) + function Va(t) { + return function () { + return t + } + } + var Ha = Ii(), + Wa = Ii(!0) + function Za(t) { + return t + } + function Ya(t) { + return Mr('function' == typeof t ? t : $n(t, 1)) + } + var Ja = Fr(function (t, e) { + return function (n) { + return mr(n, t, e) + } + }), + Ka = Fr(function (t, e) { + return function (n) { + return mr(t, n, e) + } + }) + function $a(t, e, n) { + var r = wa(e), + i = cr(e, r) + null != n || (Vs(e) && (i.length || !r.length)) || ((n = e), (e = t), (t = this), (i = cr(e, wa(e)))) + var o = !(Vs(n) && 'chain' in n && !n.chain), + s = Cs(t) + return ( + ae(i, function (n) { + var r = e[n] + ;((t[n] = r), + s && + (t.prototype[n] = function () { + var e = this.__chain__ + if (o || e) { + var n = t(this.__wrapped__), + i = (n.__actions__ = vi(this.__actions__)) + return (i.push({ func: r, args: arguments, thisArg: t }), (n.__chain__ = e), n) + } + return r.apply(t, pe([this.value()], arguments)) + })) + }), + t + ) + } + function Xa() {} + var Ga = Ni(le), + Qa = Ni(fe), + tu = Ni(ve) + function eu(t) { + return uo(t) + ? Ae(xo(t)) + : (function (t) { + return function (e) { + return hr(e, t) + } + })(t) + } + var nu = Oi(), + ru = Oi(!0) + function iu() { + return [] + } + function ou() { + return !1 + } + var su = Li(function (t, e) { + return t + e + }, 0), + au = Pi('ceil'), + uu = Li(function (t, e) { + return t / e + }, 1), + fu = Pi('floor') + var cu, + hu = Li(function (t, e) { + return t * e + }, 1), + du = Pi('round'), + lu = Li(function (t, e) { + return t - e + }, 0) + return ( + (Tn.after = function (t, e) { + if ('function' != typeof e) throw new mt(o) + return ( + (t = ra(t)), + function () { + if (--t < 1) return e.apply(this, arguments) + } + ) + }), + (Tn.ary = gs), + (Tn.assign = ua), + (Tn.assignIn = fa), + (Tn.assignInWith = ca), + (Tn.assignWith = ha), + (Tn.at = da), + (Tn.before = vs), + (Tn.bind = ms), + (Tn.bindAll = qa), + (Tn.bindKey = ys), + (Tn.castArray = function () { + if (!arguments.length) return [] + var t = arguments[0] + return Os(t) ? t : [t] + }), + (Tn.chain = es), + (Tn.chunk = function (t, e, n) { + e = (n ? ao(t, e, n) : void 0 === e) ? 1 : sn(ra(e), 0) + var i = null == t ? 0 : t.length + if (!i || e < 1) return [] + for (var o = 0, s = 0, a = r(Ge(i / e)); o < i; ) a[s++] = Wr(t, o, (o += e)) + return a + }), + (Tn.compact = function (t) { + for (var e = -1, n = null == t ? 0 : t.length, r = 0, i = []; ++e < n; ) { + var o = t[e] + o && (i[r++] = o) + } + return i + }), + (Tn.concat = function () { + var t = arguments.length + if (!t) return [] + for (var e = r(t - 1), n = arguments[0], i = t; i--; ) e[i - 1] = arguments[i] + return pe(Os(n) ? vi(n) : [n], or(e, 1)) + }), + (Tn.cond = function (t) { + var e = null == t ? 0 : t.length, + n = $i() + return ( + (t = e + ? le(t, function (t) { + if ('function' != typeof t[1]) throw new mt(o) + return [n(t[0]), t[1]] + }) + : []), + Fr(function (n) { + for (var r = -1; ++r < e; ) { + var i = t[r] + if (oe(i[0], this, n)) return oe(i[1], this, n) + } + }) + ) + }), + (Tn.conforms = function (t) { + return (function (t) { + var e = wa(t) + return function (n) { + return Xn(n, t, e) + } + })($n(t, 1)) + }), + (Tn.constant = Va), + (Tn.countBy = is), + (Tn.create = function (t, e) { + var n = kn(t) + return null == e ? n : Zn(n, e) + }), + (Tn.curry = function t(e, n, r) { + var i = ji(e, 8, void 0, void 0, void 0, void 0, void 0, (n = r ? void 0 : n)) + return ((i.placeholder = t.placeholder), i) + }), + (Tn.curryRight = function t(e, n, r) { + var i = ji(e, 16, void 0, void 0, void 0, void 0, void 0, (n = r ? void 0 : n)) + return ((i.placeholder = t.placeholder), i) + }), + (Tn.debounce = ws), + (Tn.defaults = la), + (Tn.defaultsDeep = pa), + (Tn.defer = _s), + (Tn.delay = Ss), + (Tn.difference = ko), + (Tn.differenceBy = Lo), + (Tn.differenceWith = No), + (Tn.drop = function (t, e, n) { + var r = null == t ? 0 : t.length + return r ? Wr(t, (e = n || void 0 === e ? 1 : ra(e)) < 0 ? 0 : e, r) : [] + }), + (Tn.dropRight = function (t, e, n) { + var r = null == t ? 0 : t.length + return r ? Wr(t, 0, (e = r - (e = n || void 0 === e ? 1 : ra(e))) < 0 ? 0 : e) : [] + }), + (Tn.dropRightWhile = function (t, e) { + return t && t.length ? ei(t, $i(e, 3), !0, !0) : [] + }), + (Tn.dropWhile = function (t, e) { + return t && t.length ? ei(t, $i(e, 3), !0) : [] + }), + (Tn.fill = function (t, e, n, r) { + var i = null == t ? 0 : t.length + return i + ? (n && 'number' != typeof n && ao(t, e, n) && ((n = 0), (r = i)), + (function (t, e, n, r) { + var i = t.length + for ( + (n = ra(n)) < 0 && (n = -n > i ? 0 : i + n), (r = void 0 === r || r > i ? i : ra(r)) < 0 && (r += i), r = n > r ? 0 : ia(r); + n < r; + ) + t[n++] = e + return t + })(t, e, n, r)) + : [] + }), + (Tn.filter = function (t, e) { + return (Os(t) ? ce : ir)(t, $i(e, 3)) + }), + (Tn.flatMap = function (t, e) { + return or(ds(t, e), 1) + }), + (Tn.flatMapDeep = function (t, e) { + return or(ds(t, e), 1 / 0) + }), + (Tn.flatMapDepth = function (t, e, n) { + return ((n = void 0 === n ? 1 : ra(n)), or(ds(t, e), n)) + }), + (Tn.flatten = Bo), + (Tn.flattenDeep = function (t) { + return (null == t ? 0 : t.length) ? or(t, 1 / 0) : [] + }), + (Tn.flattenDepth = function (t, e) { + return (null == t ? 0 : t.length) ? or(t, (e = void 0 === e ? 1 : ra(e))) : [] + }), + (Tn.flip = function (t) { + return ji(t, 512) + }), + (Tn.flow = Ha), + (Tn.flowRight = Wa), + (Tn.fromPairs = function (t) { + for (var e = -1, n = null == t ? 0 : t.length, r = {}; ++e < n; ) { + var i = t[e] + r[i[0]] = i[1] + } + return r + }), + (Tn.functions = function (t) { + return null == t ? [] : cr(t, wa(t)) + }), + (Tn.functionsIn = function (t) { + return null == t ? [] : cr(t, _a(t)) + }), + (Tn.groupBy = fs), + (Tn.initial = function (t) { + return (null == t ? 0 : t.length) ? Wr(t, 0, -1) : [] + }), + (Tn.intersection = Po), + (Tn.intersectionBy = Uo), + (Tn.intersectionWith = Fo), + (Tn.invert = va), + (Tn.invertBy = ma), + (Tn.invokeMap = cs), + (Tn.iteratee = Ya), + (Tn.keyBy = hs), + (Tn.keys = wa), + (Tn.keysIn = _a), + (Tn.map = ds), + (Tn.mapKeys = function (t, e) { + var n = {} + return ( + (e = $i(e, 3)), + ur(t, function (t, r, i) { + Yn(n, e(t, r, i), t) + }), + n + ) + }), + (Tn.mapValues = function (t, e) { + var n = {} + return ( + (e = $i(e, 3)), + ur(t, function (t, r, i) { + Yn(n, r, e(t, r, i)) + }), + n + ) + }), + (Tn.matches = function (t) { + return Tr($n(t, 1)) + }), + (Tn.matchesProperty = function (t, e) { + return kr(t, $n(e, 1)) + }), + (Tn.memoize = Ms), + (Tn.merge = Sa), + (Tn.mergeWith = Ma), + (Tn.method = Ja), + (Tn.methodOf = Ka), + (Tn.mixin = $a), + (Tn.negate = Es), + (Tn.nthArg = function (t) { + return ( + (t = ra(t)), + Fr(function (e) { + return Nr(e, t) + }) + ) + }), + (Tn.omit = Ea), + (Tn.omitBy = function (t, e) { + return xa(t, Es($i(e))) + }), + (Tn.once = function (t) { + return vs(2, t) + }), + (Tn.orderBy = function (t, e, n, r) { + return null == t ? [] : (Os(e) || (e = null == e ? [] : [e]), Os((n = r ? void 0 : n)) || (n = null == n ? [] : [n]), Rr(t, e, n)) + }), + (Tn.over = Ga), + (Tn.overArgs = As), + (Tn.overEvery = Qa), + (Tn.overSome = tu), + (Tn.partial = xs), + (Tn.partialRight = Is), + (Tn.partition = ls), + (Tn.pick = Aa), + (Tn.pickBy = xa), + (Tn.property = eu), + (Tn.propertyOf = function (t) { + return function (e) { + return null == t ? void 0 : hr(t, e) + } + }), + (Tn.pull = Co), + (Tn.pullAll = Do), + (Tn.pullAllBy = function (t, e, n) { + return t && t.length && e && e.length ? Br(t, e, $i(n, 2)) : t + }), + (Tn.pullAllWith = function (t, e, n) { + return t && t.length && e && e.length ? Br(t, e, void 0, n) : t + }), + (Tn.pullAt = qo), + (Tn.range = nu), + (Tn.rangeRight = ru), + (Tn.rearg = Ts), + (Tn.reject = function (t, e) { + return (Os(t) ? ce : ir)(t, Es($i(e, 3))) + }), + (Tn.remove = function (t, e) { + var n = [] + if (!t || !t.length) return n + var r = -1, + i = [], + o = t.length + for (e = $i(e, 3); ++r < o; ) { + var s = t[r] + e(s, r, t) && (n.push(s), i.push(r)) + } + return (zr(t, i), n) + }), + (Tn.rest = function (t, e) { + if ('function' != typeof t) throw new mt(o) + return Fr(t, (e = void 0 === e ? e : ra(e))) + }), + (Tn.reverse = Vo), + (Tn.sampleSize = function (t, e, n) { + return ((e = (n ? ao(t, e, n) : void 0 === e) ? 1 : ra(e)), (Os(t) ? Cn : Cr)(t, e)) + }), + (Tn.set = function (t, e, n) { + return null == t ? t : Dr(t, e, n) + }), + (Tn.setWith = function (t, e, n, r) { + return ((r = 'function' == typeof r ? r : void 0), null == t ? t : Dr(t, e, n, r)) + }), + (Tn.shuffle = function (t) { + return (Os(t) ? Dn : Hr)(t) + }), + (Tn.slice = function (t, e, n) { + var r = null == t ? 0 : t.length + return r + ? (n && 'number' != typeof n && ao(t, e, n) ? ((e = 0), (n = r)) : ((e = null == e ? 0 : ra(e)), (n = void 0 === n ? r : ra(n))), + Wr(t, e, n)) + : [] + }), + (Tn.sortBy = ps), + (Tn.sortedUniq = function (t) { + return t && t.length ? Kr(t) : [] + }), + (Tn.sortedUniqBy = function (t, e) { + return t && t.length ? Kr(t, $i(e, 2)) : [] + }), + (Tn.split = function (t, e, n) { + return ( + n && 'number' != typeof n && ao(t, e, n) && (e = n = void 0), + (n = void 0 === n ? 4294967295 : n >>> 0) + ? (t = aa(t)) && ('string' == typeof e || (null != e && !Js(e))) && !(e = Xr(e)) && je(t) + ? fi(Ze(t), 0, n) + : t.split(e, n) + : [] + ) + }), + (Tn.spread = function (t, e) { + if ('function' != typeof t) throw new mt(o) + return ( + (e = null == e ? 0 : sn(ra(e), 0)), + Fr(function (n) { + var r = n[e], + i = fi(n, 0, e) + return (r && pe(i, r), oe(t, this, i)) + }) + ) + }), + (Tn.tail = function (t) { + var e = null == t ? 0 : t.length + return e ? Wr(t, 1, e) : [] + }), + (Tn.take = function (t, e, n) { + return t && t.length ? Wr(t, 0, (e = n || void 0 === e ? 1 : ra(e)) < 0 ? 0 : e) : [] + }), + (Tn.takeRight = function (t, e, n) { + var r = null == t ? 0 : t.length + return r ? Wr(t, (e = r - (e = n || void 0 === e ? 1 : ra(e))) < 0 ? 0 : e, r) : [] + }), + (Tn.takeRightWhile = function (t, e) { + return t && t.length ? ei(t, $i(e, 3), !1, !0) : [] + }), + (Tn.takeWhile = function (t, e) { + return t && t.length ? ei(t, $i(e, 3)) : [] + }), + (Tn.tap = function (t, e) { + return (e(t), t) + }), + (Tn.throttle = function (t, e, n) { + var r = !0, + i = !0 + if ('function' != typeof t) throw new mt(o) + return ( + Vs(n) && ((r = 'leading' in n ? !!n.leading : r), (i = 'trailing' in n ? !!n.trailing : i)), + ws(t, e, { leading: r, maxWait: e, trailing: i }) + ) + }), + (Tn.thru = ns), + (Tn.toArray = ea), + (Tn.toPairs = Ia), + (Tn.toPairsIn = Ta), + (Tn.toPath = function (t) { + return Os(t) ? le(t, xo) : Xs(t) ? [t] : vi(Ao(aa(t))) + }), + (Tn.toPlainObject = sa), + (Tn.transform = function (t, e, n) { + var r = Os(t), + i = r || Us(t) || Gs(t) + if (((e = $i(e, 4)), null == n)) { + var o = t && t.constructor + n = i ? (r ? new o() : []) : Vs(t) && Cs(o) ? kn(Wt(t)) : {} + } + return ( + (i ? ae : ur)(t, function (t, r, i) { + return e(n, t, r, i) + }), + n + ) + }), + (Tn.unary = function (t) { + return gs(t, 1) + }), + (Tn.union = Ho), + (Tn.unionBy = Wo), + (Tn.unionWith = Zo), + (Tn.uniq = function (t) { + return t && t.length ? Gr(t) : [] + }), + (Tn.uniqBy = function (t, e) { + return t && t.length ? Gr(t, $i(e, 2)) : [] + }), + (Tn.uniqWith = function (t, e) { + return ((e = 'function' == typeof e ? e : void 0), t && t.length ? Gr(t, void 0, e) : []) + }), + (Tn.unset = function (t, e) { + return null == t || Qr(t, e) + }), + (Tn.unzip = Yo), + (Tn.unzipWith = Jo), + (Tn.update = function (t, e, n) { + return null == t ? t : ti(t, e, si(n)) + }), + (Tn.updateWith = function (t, e, n, r) { + return ((r = 'function' == typeof r ? r : void 0), null == t ? t : ti(t, e, si(n), r)) + }), + (Tn.values = ka), + (Tn.valuesIn = function (t) { + return null == t ? [] : Ne(t, _a(t)) + }), + (Tn.without = Ko), + (Tn.words = Ca), + (Tn.wrap = function (t, e) { + return xs(si(e), t) + }), + (Tn.xor = $o), + (Tn.xorBy = Xo), + (Tn.xorWith = Go), + (Tn.zip = Qo), + (Tn.zipObject = function (t, e) { + return ii(t || [], e || [], Vn) + }), + (Tn.zipObjectDeep = function (t, e) { + return ii(t || [], e || [], Dr) + }), + (Tn.zipWith = ts), + (Tn.entries = Ia), + (Tn.entriesIn = Ta), + (Tn.extend = fa), + (Tn.extendWith = ca), + $a(Tn, Tn), + (Tn.add = su), + (Tn.attempt = Da), + (Tn.camelCase = La), + (Tn.capitalize = Na), + (Tn.ceil = au), + (Tn.clamp = function (t, e, n) { + return ( + void 0 === n && ((n = e), (e = void 0)), + void 0 !== n && (n = (n = oa(n)) == n ? n : 0), + void 0 !== e && (e = (e = oa(e)) == e ? e : 0), + Kn(oa(t), e, n) + ) + }), + (Tn.clone = function (t) { + return $n(t, 4) + }), + (Tn.cloneDeep = function (t) { + return $n(t, 5) + }), + (Tn.cloneDeepWith = function (t, e) { + return $n(t, 5, (e = 'function' == typeof e ? e : void 0)) + }), + (Tn.cloneWith = function (t, e) { + return $n(t, 4, (e = 'function' == typeof e ? e : void 0)) + }), + (Tn.conformsTo = function (t, e) { + return null == e || Xn(t, e, wa(e)) + }), + (Tn.deburr = Ra), + (Tn.defaultTo = function (t, e) { + return null == t || t != t ? e : t + }), + (Tn.divide = uu), + (Tn.endsWith = function (t, e, n) { + ;((t = aa(t)), (e = Xr(e))) + var r = t.length, + i = (n = void 0 === n ? r : Kn(ra(n), 0, r)) + return (n -= e.length) >= 0 && t.slice(n, i) == e + }), + (Tn.eq = ks), + (Tn.escape = function (t) { + return (t = aa(t)) && j.test(t) ? t.replace(U, Ue) : t + }), + (Tn.escapeRegExp = function (t) { + return (t = aa(t)) && Y.test(t) ? t.replace(Z, '\\$&') : t + }), + (Tn.every = function (t, e, n) { + var r = Os(t) ? fe : nr + return (n && ao(t, e, n) && (e = void 0), r(t, $i(e, 3))) + }), + (Tn.find = os), + (Tn.findIndex = Ro), + (Tn.findKey = function (t, e) { + return ye(t, $i(e, 3), ur) + }), + (Tn.findLast = ss), + (Tn.findLastIndex = Oo), + (Tn.findLastKey = function (t, e) { + return ye(t, $i(e, 3), fr) + }), + (Tn.floor = fu), + (Tn.forEach = as), + (Tn.forEachRight = us), + (Tn.forIn = function (t, e) { + return null == t ? t : sr(t, $i(e, 3), _a) + }), + (Tn.forInRight = function (t, e) { + return null == t ? t : ar(t, $i(e, 3), _a) + }), + (Tn.forOwn = function (t, e) { + return t && ur(t, $i(e, 3)) + }), + (Tn.forOwnRight = function (t, e) { + return t && fr(t, $i(e, 3)) + }), + (Tn.get = ba), + (Tn.gt = Ls), + (Tn.gte = Ns), + (Tn.has = function (t, e) { + return null != t && ro(t, e, br) + }), + (Tn.hasIn = ga), + (Tn.head = zo), + (Tn.identity = Za), + (Tn.includes = function (t, e, n, r) { + ;((t = zs(t) ? t : ka(t)), (n = n && !r ? ra(n) : 0)) + var i = t.length + return (n < 0 && (n = sn(i + n, 0)), $s(t) ? n <= i && t.indexOf(e, n) > -1 : !!i && _e(t, e, n) > -1) + }), + (Tn.indexOf = function (t, e, n) { + var r = null == t ? 0 : t.length + if (!r) return -1 + var i = null == n ? 0 : ra(n) + return (i < 0 && (i = sn(r + i, 0)), _e(t, e, i)) + }), + (Tn.inRange = function (t, e, n) { + return ( + (e = na(e)), + void 0 === n ? ((n = e), (e = 0)) : (n = na(n)), + (function (t, e, n) { + return t >= an(e, n) && t < sn(e, n) + })((t = oa(t)), e, n) + ) + }), + (Tn.invoke = ya), + (Tn.isArguments = Rs), + (Tn.isArray = Os), + (Tn.isArrayBuffer = Bs), + (Tn.isArrayLike = zs), + (Tn.isArrayLikeObject = Ps), + (Tn.isBoolean = function (t) { + return !0 === t || !1 === t || (Hs(t) && lr(t) == c) + }), + (Tn.isBuffer = Us), + (Tn.isDate = Fs), + (Tn.isElement = function (t) { + return Hs(t) && 1 === t.nodeType && !Ys(t) + }), + (Tn.isEmpty = function (t) { + if (null == t) return !0 + if (zs(t) && (Os(t) || 'string' == typeof t || 'function' == typeof t.splice || Us(t) || Gs(t) || Rs(t))) return !t.length + var e = no(t) + if (e == b || e == y) return !t.size + if (ho(t)) return !Er(t).length + for (var n in t) if (Et.call(t, n)) return !1 + return !0 + }), + (Tn.isEqual = function (t, e) { + return wr(t, e) + }), + (Tn.isEqualWith = function (t, e, n) { + var r = (n = 'function' == typeof n ? n : void 0) ? n(t, e) : void 0 + return void 0 === r ? wr(t, e, void 0, n) : !!r + }), + (Tn.isError = js), + (Tn.isFinite = function (t) { + return 'number' == typeof t && nn(t) + }), + (Tn.isFunction = Cs), + (Tn.isInteger = Ds), + (Tn.isLength = qs), + (Tn.isMap = Ws), + (Tn.isMatch = function (t, e) { + return t === e || _r(t, e, Gi(e)) + }), + (Tn.isMatchWith = function (t, e, n) { + return ((n = 'function' == typeof n ? n : void 0), _r(t, e, Gi(e), n)) + }), + (Tn.isNaN = function (t) { + return Zs(t) && t != +t + }), + (Tn.isNative = function (t) { + if (co(t)) throw new dt('Unsupported core-js use. Try https://npms.io/search?q=ponyfill.') + return Sr(t) + }), + (Tn.isNil = function (t) { + return null == t + }), + (Tn.isNull = function (t) { + return null === t + }), + (Tn.isNumber = Zs), + (Tn.isObject = Vs), + (Tn.isObjectLike = Hs), + (Tn.isPlainObject = Ys), + (Tn.isRegExp = Js), + (Tn.isSafeInteger = function (t) { + return Ds(t) && t >= -9007199254740991 && t <= 9007199254740991 + }), + (Tn.isSet = Ks), + (Tn.isString = $s), + (Tn.isSymbol = Xs), + (Tn.isTypedArray = Gs), + (Tn.isUndefined = function (t) { + return void 0 === t + }), + (Tn.isWeakMap = function (t) { + return Hs(t) && no(t) == S + }), + (Tn.isWeakSet = function (t) { + return Hs(t) && '[object WeakSet]' == lr(t) + }), + (Tn.join = function (t, e) { + return null == t ? '' : rn.call(t, e) + }), + (Tn.kebabCase = Oa), + (Tn.last = jo), + (Tn.lastIndexOf = function (t, e, n) { + var r = null == t ? 0 : t.length + if (!r) return -1 + var i = r + return ( + void 0 !== n && (i = (i = ra(n)) < 0 ? sn(r + i, 0) : an(i, r - 1)), + e == e + ? (function (t, e, n) { + for (var r = n + 1; r--; ) if (t[r] === e) return r + return r + })(t, e, i) + : we(t, Me, i, !0) + ) + }), + (Tn.lowerCase = Ba), + (Tn.lowerFirst = za), + (Tn.lt = Qs), + (Tn.lte = ta), + (Tn.max = function (t) { + return t && t.length ? rr(t, Za, pr) : void 0 + }), + (Tn.maxBy = function (t, e) { + return t && t.length ? rr(t, $i(e, 2), pr) : void 0 + }), + (Tn.mean = function (t) { + return Ee(t, Za) + }), + (Tn.meanBy = function (t, e) { + return Ee(t, $i(e, 2)) + }), + (Tn.min = function (t) { + return t && t.length ? rr(t, Za, xr) : void 0 + }), + (Tn.minBy = function (t, e) { + return t && t.length ? rr(t, $i(e, 2), xr) : void 0 + }), + (Tn.stubArray = iu), + (Tn.stubFalse = ou), + (Tn.stubObject = function () { + return {} + }), + (Tn.stubString = function () { + return '' + }), + (Tn.stubTrue = function () { + return !0 + }), + (Tn.multiply = hu), + (Tn.nth = function (t, e) { + return t && t.length ? Nr(t, ra(e)) : void 0 + }), + (Tn.noConflict = function () { + return (Yt._ === this && (Yt._ = kt), this) + }), + (Tn.noop = Xa), + (Tn.now = bs), + (Tn.pad = function (t, e, n) { + t = aa(t) + var r = (e = ra(e)) ? We(t) : 0 + if (!e || r >= e) return t + var i = (e - r) / 2 + return Ri(Qe(i), n) + t + Ri(Ge(i), n) + }), + (Tn.padEnd = function (t, e, n) { + t = aa(t) + var r = (e = ra(e)) ? We(t) : 0 + return e && r < e ? t + Ri(e - r, n) : t + }), + (Tn.padStart = function (t, e, n) { + t = aa(t) + var r = (e = ra(e)) ? We(t) : 0 + return e && r < e ? Ri(e - r, n) + t : t + }), + (Tn.parseInt = function (t, e, n) { + return (n || null == e ? (e = 0) : e && (e = +e), fn(aa(t).replace(K, ''), e || 0)) + }), + (Tn.random = function (t, e, n) { + if ( + (n && 'boolean' != typeof n && ao(t, e, n) && (e = n = void 0), + void 0 === n && ('boolean' == typeof e ? ((n = e), (e = void 0)) : 'boolean' == typeof t && ((n = t), (t = void 0))), + void 0 === t && void 0 === e ? ((t = 0), (e = 1)) : ((t = na(t)), void 0 === e ? ((e = t), (t = 0)) : (e = na(e))), + t > e) + ) { + var r = t + ;((t = e), (e = r)) + } + if (n || t % 1 || e % 1) { + var i = cn() + return an(t + i * (e - t + Vt('1e-' + ((i + '').length - 1))), e) + } + return Pr(t, e) + }), + (Tn.reduce = function (t, e, n) { + var r = Os(t) ? be : Ie, + i = arguments.length < 3 + return r(t, $i(e, 4), n, i, tr) + }), + (Tn.reduceRight = function (t, e, n) { + var r = Os(t) ? ge : Ie, + i = arguments.length < 3 + return r(t, $i(e, 4), n, i, er) + }), + (Tn.repeat = function (t, e, n) { + return ((e = (n ? ao(t, e, n) : void 0 === e) ? 1 : ra(e)), Ur(aa(t), e)) + }), + (Tn.replace = function () { + var t = arguments, + e = aa(t[0]) + return t.length < 3 ? e : e.replace(t[1], t[2]) + }), + (Tn.result = function (t, e, n) { + var r = -1, + i = (e = ai(e, t)).length + for (i || ((i = 1), (t = void 0)); ++r < i; ) { + var o = null == t ? void 0 : t[xo(e[r])] + ;(void 0 === o && ((r = i), (o = n)), (t = Cs(o) ? o.call(t) : o)) + } + return t + }), + (Tn.round = du), + (Tn.runInContext = t), + (Tn.sample = function (t) { + return (Os(t) ? jn : jr)(t) + }), + (Tn.size = function (t) { + if (null == t) return 0 + if (zs(t)) return $s(t) ? We(t) : t.length + var e = no(t) + return e == b || e == y ? t.size : Er(t).length + }), + (Tn.snakeCase = Pa), + (Tn.some = function (t, e, n) { + var r = Os(t) ? ve : Zr + return (n && ao(t, e, n) && (e = void 0), r(t, $i(e, 3))) + }), + (Tn.sortedIndex = function (t, e) { + return Yr(t, e) + }), + (Tn.sortedIndexBy = function (t, e, n) { + return Jr(t, e, $i(n, 2)) + }), + (Tn.sortedIndexOf = function (t, e) { + var n = null == t ? 0 : t.length + if (n) { + var r = Yr(t, e) + if (r < n && ks(t[r], e)) return r + } + return -1 + }), + (Tn.sortedLastIndex = function (t, e) { + return Yr(t, e, !0) + }), + (Tn.sortedLastIndexBy = function (t, e, n) { + return Jr(t, e, $i(n, 2), !0) + }), + (Tn.sortedLastIndexOf = function (t, e) { + if (null == t ? 0 : t.length) { + var n = Yr(t, e, !0) - 1 + if (ks(t[n], e)) return n + } + return -1 + }), + (Tn.startCase = Ua), + (Tn.startsWith = function (t, e, n) { + return ((t = aa(t)), (n = null == n ? 0 : Kn(ra(n), 0, t.length)), (e = Xr(e)), t.slice(n, n + e.length) == e) + }), + (Tn.subtract = lu), + (Tn.sum = function (t) { + return t && t.length ? Te(t, Za) : 0 + }), + (Tn.sumBy = function (t, e) { + return t && t.length ? Te(t, $i(e, 2)) : 0 + }), + (Tn.template = function (t, e, n) { + var r = Tn.templateSettings + ;(n && ao(t, e, n) && (e = void 0), (t = aa(t)), (e = ca({}, e, r, Ci))) + var i, + o, + s = ca({}, e.imports, r.imports, Ci), + a = wa(s), + u = Ne(s, a), + f = 0, + c = e.interpolate || ct, + h = "__p += '", + d = gt((e.escape || ct).source + '|' + c.source + '|' + (c === q ? nt : ct).source + '|' + (e.evaluate || ct).source + '|$', 'g'), + l = + '//# sourceURL=' + + (Et.call(e, 'sourceURL') ? (e.sourceURL + '').replace(/[\r\n]/g, ' ') : 'lodash.templateSources[' + ++jt + ']') + + '\n' + ;(t.replace(d, function (e, n, r, s, a, u) { + return ( + r || (r = s), + (h += t.slice(f, u).replace(ht, Fe)), + n && ((i = !0), (h += "' +\n__e(" + n + ") +\n'")), + a && ((o = !0), (h += "';\n" + a + ";\n__p += '")), + r && (h += "' +\n((__t = (" + r + ")) == null ? '' : __t) +\n'"), + (f = u + e.length), + e + ) + }), + (h += "';\n")) + var p = Et.call(e, 'variable') && e.variable + ;(p || (h = 'with (obj) {\n' + h + '\n}\n'), + (h = (o ? h.replace(O, '') : h).replace(B, '$1').replace(z, '$1;')), + (h = + 'function(' + + (p || 'obj') + + ') {\n' + + (p ? '' : 'obj || (obj = {});\n') + + "var __t, __p = ''" + + (i ? ', __e = _.escape' : '') + + (o ? ", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n" : ';\n') + + h + + 'return __p\n}')) + var b = Da(function () { + return lt(a, l + 'return ' + h).apply(void 0, u) + }) + if (((b.source = h), js(b))) throw b + return b + }), + (Tn.times = function (t, e) { + if ((t = ra(t)) < 1 || t > 9007199254740991) return [] + var n = 4294967295, + r = an(t, 4294967295) + t -= 4294967295 + for (var i = ke(r, (e = $i(e))); ++n < t; ) e(n) + return i + }), + (Tn.toFinite = na), + (Tn.toInteger = ra), + (Tn.toLength = ia), + (Tn.toLower = function (t) { + return aa(t).toLowerCase() + }), + (Tn.toNumber = oa), + (Tn.toSafeInteger = function (t) { + return t ? Kn(ra(t), -9007199254740991, 9007199254740991) : 0 === t ? t : 0 + }), + (Tn.toString = aa), + (Tn.toUpper = function (t) { + return aa(t).toUpperCase() + }), + (Tn.trim = function (t, e, n) { + if ((t = aa(t)) && (n || void 0 === e)) return t.replace(J, '') + if (!t || !(e = Xr(e))) return t + var r = Ze(t), + i = Ze(e) + return fi(r, Oe(r, i), Be(r, i) + 1).join('') + }), + (Tn.trimEnd = function (t, e, n) { + if ((t = aa(t)) && (n || void 0 === e)) return t.replace($, '') + if (!t || !(e = Xr(e))) return t + var r = Ze(t) + return fi(r, 0, Be(r, Ze(e)) + 1).join('') + }), + (Tn.trimStart = function (t, e, n) { + if ((t = aa(t)) && (n || void 0 === e)) return t.replace(K, '') + if (!t || !(e = Xr(e))) return t + var r = Ze(t) + return fi(r, Oe(r, Ze(e))).join('') + }), + (Tn.truncate = function (t, e) { + var n = 30, + r = '...' + if (Vs(e)) { + var i = 'separator' in e ? e.separator : i + ;((n = 'length' in e ? ra(e.length) : n), (r = 'omission' in e ? Xr(e.omission) : r)) + } + var o = (t = aa(t)).length + if (je(t)) { + var s = Ze(t) + o = s.length + } + if (n >= o) return t + var a = n - We(r) + if (a < 1) return r + var u = s ? fi(s, 0, a).join('') : t.slice(0, a) + if (void 0 === i) return u + r + if ((s && (a += u.length - a), Js(i))) { + if (t.slice(a).search(i)) { + var f, + c = u + for (i.global || (i = gt(i.source, aa(rt.exec(i)) + 'g')), i.lastIndex = 0; (f = i.exec(c)); ) var h = f.index + u = u.slice(0, void 0 === h ? a : h) + } + } else if (t.indexOf(Xr(i), a) != a) { + var d = u.lastIndexOf(i) + d > -1 && (u = u.slice(0, d)) + } + return u + r + }), + (Tn.unescape = function (t) { + return (t = aa(t)) && F.test(t) ? t.replace(P, Ye) : t + }), + (Tn.uniqueId = function (t) { + var e = ++At + return aa(t) + e + }), + (Tn.upperCase = Fa), + (Tn.upperFirst = ja), + (Tn.each = as), + (Tn.eachRight = us), + (Tn.first = zo), + $a( + Tn, + ((cu = {}), + ur(Tn, function (t, e) { + Et.call(Tn.prototype, e) || (cu[e] = t) + }), + cu), + { chain: !1 }, + ), + (Tn.VERSION = '4.17.15'), + ae(['bind', 'bindKey', 'curry', 'curryRight', 'partial', 'partialRight'], function (t) { + Tn[t].placeholder = Tn + }), + ae(['drop', 'take'], function (t, e) { + ;((Rn.prototype[t] = function (n) { + n = void 0 === n ? 1 : sn(ra(n), 0) + var r = this.__filtered__ && !e ? new Rn(this) : this.clone() + return ( + r.__filtered__ + ? (r.__takeCount__ = an(n, r.__takeCount__)) + : r.__views__.push({ size: an(n, 4294967295), type: t + (r.__dir__ < 0 ? 'Right' : '') }), + r + ) + }), + (Rn.prototype[t + 'Right'] = function (e) { + return this.reverse()[t](e).reverse() + })) + }), + ae(['filter', 'map', 'takeWhile'], function (t, e) { + var n = e + 1, + r = 1 == n || 3 == n + Rn.prototype[t] = function (t) { + var e = this.clone() + return (e.__iteratees__.push({ iteratee: $i(t, 3), type: n }), (e.__filtered__ = e.__filtered__ || r), e) + } + }), + ae(['head', 'last'], function (t, e) { + var n = 'take' + (e ? 'Right' : '') + Rn.prototype[t] = function () { + return this[n](1).value()[0] + } + }), + ae(['initial', 'tail'], function (t, e) { + var n = 'drop' + (e ? '' : 'Right') + Rn.prototype[t] = function () { + return this.__filtered__ ? new Rn(this) : this[n](1) + } + }), + (Rn.prototype.compact = function () { + return this.filter(Za) + }), + (Rn.prototype.find = function (t) { + return this.filter(t).head() + }), + (Rn.prototype.findLast = function (t) { + return this.reverse().find(t) + }), + (Rn.prototype.invokeMap = Fr(function (t, e) { + return 'function' == typeof t + ? new Rn(this) + : this.map(function (n) { + return mr(n, t, e) + }) + })), + (Rn.prototype.reject = function (t) { + return this.filter(Es($i(t))) + }), + (Rn.prototype.slice = function (t, e) { + t = ra(t) + var n = this + return n.__filtered__ && (t > 0 || e < 0) + ? new Rn(n) + : (t < 0 ? (n = n.takeRight(-t)) : t && (n = n.drop(t)), void 0 !== e && (n = (e = ra(e)) < 0 ? n.dropRight(-e) : n.take(e - t)), n) + }), + (Rn.prototype.takeRightWhile = function (t) { + return this.reverse().takeWhile(t).reverse() + }), + (Rn.prototype.toArray = function () { + return this.take(4294967295) + }), + ur(Rn.prototype, function (t, e) { + var n = /^(?:filter|find|map|reject)|While$/.test(e), + r = /^(?:head|last)$/.test(e), + i = Tn[r ? 'take' + ('last' == e ? 'Right' : '') : e], + o = r || /^find/.test(e) + i && + (Tn.prototype[e] = function () { + var e = this.__wrapped__, + s = r ? [1] : arguments, + a = e instanceof Rn, + u = s[0], + f = a || Os(e), + c = function (t) { + var e = i.apply(Tn, pe([t], s)) + return r && h ? e[0] : e + } + f && n && 'function' == typeof u && 1 != u.length && (a = f = !1) + var h = this.__chain__, + d = !!this.__actions__.length, + l = o && !h, + p = a && !d + if (!o && f) { + e = p ? e : new Rn(this) + var b = t.apply(e, s) + return (b.__actions__.push({ func: ns, args: [c], thisArg: void 0 }), new Nn(b, h)) + } + return l && p ? t.apply(this, s) : ((b = this.thru(c)), l ? (r ? b.value()[0] : b.value()) : b) + }) + }), + ae(['pop', 'push', 'shift', 'sort', 'splice', 'unshift'], function (t) { + var e = yt[t], + n = /^(?:push|sort|unshift)$/.test(t) ? 'tap' : 'thru', + r = /^(?:pop|shift)$/.test(t) + Tn.prototype[t] = function () { + var t = arguments + if (r && !this.__chain__) { + var i = this.value() + return e.apply(Os(i) ? i : [], t) + } + return this[n](function (n) { + return e.apply(Os(n) ? n : [], t) + }) + } + }), + ur(Rn.prototype, function (t, e) { + var n = Tn[e] + if (n) { + var r = n.name + '' + ;(Et.call(yn, r) || (yn[r] = []), yn[r].push({ name: e, func: n })) + } + }), + (yn[Ti(void 0, 2).name] = [{ name: 'wrapper', func: void 0 }]), + (Rn.prototype.clone = function () { + var t = new Rn(this.__wrapped__) + return ( + (t.__actions__ = vi(this.__actions__)), + (t.__dir__ = this.__dir__), + (t.__filtered__ = this.__filtered__), + (t.__iteratees__ = vi(this.__iteratees__)), + (t.__takeCount__ = this.__takeCount__), + (t.__views__ = vi(this.__views__)), + t + ) + }), + (Rn.prototype.reverse = function () { + if (this.__filtered__) { + var t = new Rn(this) + ;((t.__dir__ = -1), (t.__filtered__ = !0)) + } else (t = this.clone()).__dir__ *= -1 + return t + }), + (Rn.prototype.value = function () { + var t = this.__wrapped__.value(), + e = this.__dir__, + n = Os(t), + r = e < 0, + i = n ? t.length : 0, + o = (function (t, e, n) { + var r = -1, + i = n.length + for (; ++r < i; ) { + var o = n[r], + s = o.size + switch (o.type) { + case 'drop': + t += s + break + case 'dropRight': + e -= s + break + case 'take': + e = an(e, t + s) + break + case 'takeRight': + t = sn(t, e - s) + } + } + return { start: t, end: e } + })(0, i, this.__views__), + s = o.start, + a = o.end, + u = a - s, + f = r ? a : s - 1, + c = this.__iteratees__, + h = c.length, + d = 0, + l = an(u, this.__takeCount__) + if (!n || (!r && i == u && l == u)) return ni(t, this.__actions__) + var p = [] + t: for (; u-- && d < l; ) { + for (var b = -1, g = t[(f += e)]; ++b < h; ) { + var v = c[b], + m = v.iteratee, + y = v.type, + w = m(g) + if (2 == y) g = w + else if (!w) { + if (1 == y) continue t + break t + } + } + p[d++] = g + } + return p + }), + (Tn.prototype.at = rs), + (Tn.prototype.chain = function () { + return es(this) + }), + (Tn.prototype.commit = function () { + return new Nn(this.value(), this.__chain__) + }), + (Tn.prototype.next = function () { + void 0 === this.__values__ && (this.__values__ = ea(this.value())) + var t = this.__index__ >= this.__values__.length + return { done: t, value: t ? void 0 : this.__values__[this.__index__++] } + }), + (Tn.prototype.plant = function (t) { + for (var e, n = this; n instanceof Ln; ) { + var r = To(n) + ;((r.__index__ = 0), (r.__values__ = void 0), e ? (i.__wrapped__ = r) : (e = r)) + var i = r + n = n.__wrapped__ + } + return ((i.__wrapped__ = t), e) + }), + (Tn.prototype.reverse = function () { + var t = this.__wrapped__ + if (t instanceof Rn) { + var e = t + return ( + this.__actions__.length && (e = new Rn(this)), + (e = e.reverse()).__actions__.push({ func: ns, args: [Vo], thisArg: void 0 }), + new Nn(e, this.__chain__) + ) + } + return this.thru(Vo) + }), + (Tn.prototype.toJSON = + Tn.prototype.valueOf = + Tn.prototype.value = + function () { + return ni(this.__wrapped__, this.__actions__) + }), + (Tn.prototype.first = Tn.prototype.head), + Gt && + (Tn.prototype[Gt] = function () { + return this + }), + Tn + ) + })() + ;((Yt._ = Je), + void 0 === + (i = function () { + return Je + }.call(e, n, e, r)) || (r.exports = i)) + }).call(this) + }).call(this, n(9), n(27)(t)) + }, + function (t, e, n) { + 'use strict' + var r = n(23), + i = + Object.keys || + function (t) { + var e = [] + for (var n in t) e.push(n) + return e + } + t.exports = h + var o = Object.create(n(20)) + o.inherits = n(1) + var s = n(45), + a = n(33) + o.inherits(h, s) + for (var u = i(a.prototype), f = 0; f < u.length; f++) { + var c = u[f] + h.prototype[c] || (h.prototype[c] = a.prototype[c]) + } + function h(t) { + if (!(this instanceof h)) return new h(t) + ;(s.call(this, t), + a.call(this, t), + t && !1 === t.readable && (this.readable = !1), + t && !1 === t.writable && (this.writable = !1), + (this.allowHalfOpen = !0), + t && !1 === t.allowHalfOpen && (this.allowHalfOpen = !1), + this.once('end', d)) + } + function d() { + this.allowHalfOpen || this._writableState.ended || r.nextTick(l, this) + } + function l(t) { + t.end() + } + ;(Object.defineProperty(h.prototype, 'writableHighWaterMark', { + enumerable: !1, + get: function () { + return this._writableState.highWaterMark + }, + }), + Object.defineProperty(h.prototype, 'destroyed', { + get: function () { + return void 0 !== this._readableState && void 0 !== this._writableState && this._readableState.destroyed && this._writableState.destroyed + }, + set: function (t) { + void 0 !== this._readableState && + void 0 !== this._writableState && + ((this._readableState.destroyed = t), (this._writableState.destroyed = t)) + }, + }), + (h.prototype._destroy = function (t, e) { + ;(this.push(null), this.end(), r.nextTick(e, t)) + })) + }, + function (t, e) { + function n(t, e) { + if (!t) throw new Error(e || 'Assertion failed') + } + ;((t.exports = n), + (n.equal = function (t, e, n) { + if (t != e) throw new Error(n || 'Assertion failed: ' + t + ' != ' + e) + })) + }, + function (t, e, n) { + 'use strict' + var r = function (t, e) { + if (Array.isArray(t)) return t + if (Symbol.iterator in Object(t)) + return (function (t, e) { + var n = [], + r = !0, + i = !1, + o = void 0 + try { + for (var s, a = t[Symbol.iterator](); !(r = (s = a.next()).done) && (n.push(s.value), !e || n.length !== e); r = !0); + } catch (t) { + ;((i = !0), (o = t)) + } finally { + try { + !r && a.return && a.return() + } finally { + if (i) throw o + } + } + return n + })(t, e) + throw new TypeError('Invalid attempt to destructure non-iterable instance') + }, + i = n(2), + o = n(12), + s = n(3), + a = s.parseBytes, + u = s.serializeUIntN, + f = n(0), + c = n(72) + var h = f({ + EnumType: function (t) { + ;(o.assign(this, t), i(this.bytes instanceof Uint8Array), i('number' == typeof this.ordinal), i('string' == typeof this.name)) + }, + toString: function () { + return this.name + }, + toJSON: function () { + return this.name + }, + toBytesSink: function (t) { + t.put(this.bytes) + }, + statics: { + ordinalByteWidth: 1, + fromParser: function (t) { + return this.from(t.readUIntN(this.ordinalByteWidth)) + }, + from: function (t) { + var e = t instanceof this ? t : this[t] + if (!e) throw new Error(t + ' is not a valid name or ordinal for ' + this.enumName) + return e + }, + valuesByName: function () { + var t = this + return o.transform(this.initVals, function (e, n, r) { + var i = u(n, t.ordinalByteWidth), + o = new t({ name: r, ordinal: n, bytes: i }) + e[r] = o + }) + }, + init: function () { + var t, + e, + n = this.valuesByName() + return ( + o.assign( + this, + ((t = n), + (e = 'ordinal'), + o.transform(t, function (t, n, r) { + ;((t[r] = n), (t[n[e]] = n)) + })), + ), + (this.values = o.values(n)), + this + ) + }, + }, + }) + var d, + l, + p = + ((d = function (t, e, n) { + t[n] = (function (t, e) { + return f({ inherits: h, statics: o.assign(e, { enumName: t }) }) + })(n, e) + }), + (l = { + Type: { initVals: c.TYPES }, + LedgerEntryType: { initVals: c.LEDGER_ENTRY_TYPES, ordinalByteWidth: 2 }, + TransactionType: { initVals: c.TRANSACTION_TYPES, ordinalByteWidth: 2 }, + TransactionResult: { initVals: c.TRANSACTION_RESULTS, ordinalByteWidth: 1 }, + }), + o.transform(l, d)) + ;((p.Field = f({ + inherits: h, + statics: { + enumName: 'Field', + initVals: c.FIELDS, + valuesByName: function () { + var t = this, + e = o.map(this.initVals, function (e) { + var n = r(e, 2), + i = n[0], + s = n[1], + a = p.Type[s.type], + u = t.header(a.ordinal, s.nth), + f = { ordinal: (a.ordinal << 16) | s.nth, name: i, type: a, bytes: u } + return new t(o.assign(s, f)) + }) + return o.keyBy(e, 'name') + }, + header: function (t, e) { + var n = e, + r = [], + i = r.push.bind(r) + return (t < 16 ? (n < 16 ? i((t << 4) | n) : i(t << 4, n)) : n < 16 ? i(n, t) : i(0, t, n), a(r, Uint8Array)) + }, + }, + })), + (t.exports = p)) + }, + function (t, e, n) { + 'use strict' + var r = n(15), + i = r.Field, + o = n(28).AccountID, + s = n(96).Amount, + a = n(98).Blob, + u = n(38).Currency, + f = n(99).Hash128, + c = n(35).Hash160, + h = n(53).Hash256, + d = n(100).PathSet, + l = n(101).STArray, + p = n(54).STObject, + b = n(102).UInt16, + g = n(103).UInt32, + v = n(52).UInt64, + m = { + AccountID: o, + Amount: s, + Blob: a, + Currency: u, + Hash128: f, + Hash160: c, + Hash256: h, + PathSet: d, + STArray: l, + STObject: p, + UInt8: n(104).UInt8, + UInt16: b, + UInt32: g, + UInt64: v, + Vector256: n(105).Vector256, + } + ;(i.values.forEach(function (t) { + t.associatedType = m[t.type] + }), + (i.TransactionType.associatedType = r.TransactionType), + (i.TransactionResult.associatedType = r.TransactionResult), + (i.LedgerEntryType.associatedType = r.LedgerEntryType), + (t.exports = m)) + }, + function (t, e, n) { + var r = n(6).Buffer + function i(t, e) { + ;((this._block = r.alloc(t)), (this._finalSize = e), (this._blockSize = t), (this._len = 0)) + } + ;((i.prototype.update = function (t, e) { + 'string' == typeof t && ((e = e || 'utf8'), (t = r.from(t, e))) + for (var n = this._block, i = this._blockSize, o = t.length, s = this._len, a = 0; a < o; ) { + for (var u = s % i, f = Math.min(o - a, i - u), c = 0; c < f; c++) n[u + c] = t[a + c] + ;((a += f), (s += f) % i == 0 && this._update(n)) + } + return ((this._len += o), this) + }), + (i.prototype.digest = function (t) { + var e = this._len % this._blockSize + ;((this._block[e] = 128), this._block.fill(0, e + 1), e >= this._finalSize && (this._update(this._block), this._block.fill(0))) + var n = 8 * this._len + if (n <= 4294967295) this._block.writeUInt32BE(n, this._blockSize - 4) + else { + var r = (4294967295 & n) >>> 0, + i = (n - r) / 4294967296 + ;(this._block.writeUInt32BE(i, this._blockSize - 8), this._block.writeUInt32BE(r, this._blockSize - 4)) + } + this._update(this._block) + var o = this._hash() + return t ? o.toString(t) : o + }), + (i.prototype._update = function () { + throw new Error('_update must be implemented by subclass') + }), + (t.exports = i)) + }, + function (t, e, n) { + var r = e + ;((r.utils = n(7)), + (r.common = n(22)), + (r.sha = n(111)), + (r.ripemd = n(115)), + (r.hmac = n(116)), + (r.sha1 = r.sha.sha1), + (r.sha256 = r.sha.sha256), + (r.sha224 = r.sha.sha224), + (r.sha384 = r.sha.sha384), + (r.sha512 = r.sha.sha512), + (r.ripemd160 = r.ripemd.ripemd160)) + }, + function (t, e) { + var n, + r, + i = (t.exports = {}) + function o() { + throw new Error('setTimeout has not been defined') + } + function s() { + throw new Error('clearTimeout has not been defined') + } + function a(t) { + if (n === setTimeout) return setTimeout(t, 0) + if ((n === o || !n) && setTimeout) return ((n = setTimeout), setTimeout(t, 0)) + try { + return n(t, 0) + } catch (e) { + try { + return n.call(null, t, 0) + } catch (e) { + return n.call(this, t, 0) + } + } + } + !(function () { + try { + n = 'function' == typeof setTimeout ? setTimeout : o + } catch (t) { + n = o + } + try { + r = 'function' == typeof clearTimeout ? clearTimeout : s + } catch (t) { + r = s + } + })() + var u, + f = [], + c = !1, + h = -1 + function d() { + c && u && ((c = !1), u.length ? (f = u.concat(f)) : (h = -1), f.length && l()) + } + function l() { + if (!c) { + var t = a(d) + c = !0 + for (var e = f.length; e; ) { + for (u = f, f = []; ++h < e; ) u && u[h].run() + ;((h = -1), (e = f.length)) + } + ;((u = null), + (c = !1), + (function (t) { + if (r === clearTimeout) return clearTimeout(t) + if ((r === s || !r) && clearTimeout) return ((r = clearTimeout), clearTimeout(t)) + try { + r(t) + } catch (e) { + try { + return r.call(null, t) + } catch (e) { + return r.call(this, t) + } + } + })(t)) + } + } + function p(t, e) { + ;((this.fun = t), (this.array = e)) + } + function b() {} + ;((i.nextTick = function (t) { + var e = new Array(arguments.length - 1) + if (arguments.length > 1) for (var n = 1; n < arguments.length; n++) e[n - 1] = arguments[n] + ;(f.push(new p(t, e)), 1 !== f.length || c || a(l)) + }), + (p.prototype.run = function () { + this.fun.apply(null, this.array) + }), + (i.title = 'browser'), + (i.browser = !0), + (i.env = {}), + (i.argv = []), + (i.version = ''), + (i.versions = {}), + (i.on = b), + (i.addListener = b), + (i.once = b), + (i.off = b), + (i.removeListener = b), + (i.removeAllListeners = b), + (i.emit = b), + (i.prependListener = b), + (i.prependOnceListener = b), + (i.listeners = function (t) { + return [] + }), + (i.binding = function (t) { + throw new Error('process.binding is not supported') + }), + (i.cwd = function () { + return '/' + }), + (i.chdir = function (t) { + throw new Error('process.chdir is not supported') + }), + (i.umask = function () { + return 0 + })) + }, + function (t, e, n) { + ;(function (t) { + function n(t) { + return Object.prototype.toString.call(t) + } + ;((e.isArray = function (t) { + return Array.isArray ? Array.isArray(t) : '[object Array]' === n(t) + }), + (e.isBoolean = function (t) { + return 'boolean' == typeof t + }), + (e.isNull = function (t) { + return null === t + }), + (e.isNullOrUndefined = function (t) { + return null == t + }), + (e.isNumber = function (t) { + return 'number' == typeof t + }), + (e.isString = function (t) { + return 'string' == typeof t + }), + (e.isSymbol = function (t) { + return 'symbol' == typeof t + }), + (e.isUndefined = function (t) { + return void 0 === t + }), + (e.isRegExp = function (t) { + return '[object RegExp]' === n(t) + }), + (e.isObject = function (t) { + return 'object' == typeof t && null !== t + }), + (e.isDate = function (t) { + return '[object Date]' === n(t) + }), + (e.isError = function (t) { + return '[object Error]' === n(t) || t instanceof Error + }), + (e.isFunction = function (t) { + return 'function' == typeof t + }), + (e.isPrimitive = function (t) { + return null === t || 'boolean' == typeof t || 'number' == typeof t || 'string' == typeof t || 'symbol' == typeof t || void 0 === t + }), + (e.isBuffer = t.isBuffer)) + }).call(this, n(5).Buffer) + }, + function (t, e, n) { + 'use strict' + var r = n(3).serializeUIntN + function i(t) { + return r(t, 4) + } + var o = { + transactionID: i(1415073280), + transaction: i(1397638144), + accountStateEntry: i(1296846336), + innerNode: i(1296649728), + ledgerHeader: i(1280791040), + transactionSig: i(1398036480), + transactionMultiSig: i(1397576704), + validation: i(1447119872), + proposal: i(1347571712), + paymentChannelClaim: i(1129073920), + } + t.exports = { HashPrefix: o } + }, + function (t, e, n) { + 'use strict' + var r = n(7), + i = n(14) + function o() { + ;((this.pending = null), + (this.pendingTotal = 0), + (this.blockSize = this.constructor.blockSize), + (this.outSize = this.constructor.outSize), + (this.hmacStrength = this.constructor.hmacStrength), + (this.padLength = this.constructor.padLength / 8), + (this.endian = 'big'), + (this._delta8 = this.blockSize / 8), + (this._delta32 = this.blockSize / 32)) + } + ;((e.BlockHash = o), + (o.prototype.update = function (t, e) { + if ( + ((t = r.toArray(t, e)), + this.pending ? (this.pending = this.pending.concat(t)) : (this.pending = t), + (this.pendingTotal += t.length), + this.pending.length >= this._delta8) + ) { + var n = (t = this.pending).length % this._delta8 + ;((this.pending = t.slice(t.length - n, t.length)), + 0 === this.pending.length && (this.pending = null), + (t = r.join32(t, 0, t.length - n, this.endian))) + for (var i = 0; i < t.length; i += this._delta32) this._update(t, i, i + this._delta32) + } + return this + }), + (o.prototype.digest = function (t) { + return (this.update(this._pad()), i(null === this.pending), this._digest(t)) + }), + (o.prototype._pad = function () { + var t = this.pendingTotal, + e = this._delta8, + n = e - ((t + this.padLength) % e), + r = new Array(n + this.padLength) + r[0] = 128 + for (var i = 1; i < n; i++) r[i] = 0 + if (((t <<= 3), 'big' === this.endian)) { + for (var o = 8; o < this.padLength; o++) r[i++] = 0 + ;((r[i++] = 0), + (r[i++] = 0), + (r[i++] = 0), + (r[i++] = 0), + (r[i++] = (t >>> 24) & 255), + (r[i++] = (t >>> 16) & 255), + (r[i++] = (t >>> 8) & 255), + (r[i++] = 255 & t)) + } else + for ( + r[i++] = 255 & t, + r[i++] = (t >>> 8) & 255, + r[i++] = (t >>> 16) & 255, + r[i++] = (t >>> 24) & 255, + r[i++] = 0, + r[i++] = 0, + r[i++] = 0, + r[i++] = 0, + o = 8; + o < this.padLength; + o++ + ) + r[i++] = 0 + return r + })) + }, + function (t, e, n) { + 'use strict' + ;(function (e) { + void 0 === e || !e.version || 0 === e.version.indexOf('v0.') || (0 === e.version.indexOf('v1.') && 0 !== e.version.indexOf('v1.8.')) + ? (t.exports = { + nextTick: function (t, n, r, i) { + if ('function' != typeof t) throw new TypeError('"callback" argument must be a function') + var o, + s, + a = arguments.length + switch (a) { + case 0: + case 1: + return e.nextTick(t) + case 2: + return e.nextTick(function () { + t.call(null, n) + }) + case 3: + return e.nextTick(function () { + t.call(null, n, r) + }) + case 4: + return e.nextTick(function () { + t.call(null, n, r, i) + }) + default: + for (o = new Array(a - 1), s = 0; s < o.length; ) o[s++] = arguments[s] + return e.nextTick(function () { + t.apply(null, o) + }) + } + }, + }) + : (t.exports = e) + }).call(this, n(19)) + }, + function (t, e, n) { + 'use strict' + var r = n(2), + i = n(11), + o = n(0), + s = n(10), + a = s.Comparable, + u = s.SerializedType, + f = n(3).serializeUIntN, + c = [0, 255, 65535, 16777215, 4294967295] + var h = o({ + mixins: [a, u], + UInt: function () { + var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0, + e = c[this.constructor.width] + if (t < 0 || !(t <= e)) throw new Error(t + ' not in range 0 <= $val <= ' + e) + this.val = t + }, + statics: { + width: 0, + fromParser: function (t) { + return new this(this.width > 4 ? t.read(this.width) : t.readUIntN(this.width)) + }, + from: function (t) { + return t instanceof this ? t : new this(t) + }, + }, + toJSON: function () { + return this.val + }, + valueOf: function () { + return this.val + }, + compareTo: function (t) { + var e, + n, + o = this.valueOf(), + s = t.valueOf() + return o instanceof i + ? s instanceof i + ? o.cmp(s) + : o.cmpn(s) + : s instanceof i + ? -t.compareTo(this) + : (r('number' == typeof s), (e = o) < (n = s) ? -1 : e === n ? 0 : 1) + }, + toBytesSink: function (t) { + t.put(this.toBytes()) + }, + toBytes: function () { + return f(this.val, this.constructor.width) + }, + }) + t.exports = { UInt: h } + }, + function (t, e, n) { + 'use strict' + ;(function (e) { + var r = n(0), + i = n(21).HashPrefix, + o = n(16).Hash256, + s = n(3).parseBytes, + a = n(42), + u = r({ + Sha512Half: function () { + this.hash = a('sha512') + }, + statics: { + put: function (t) { + return new this().put(t) + }, + }, + put: function (t) { + return (this.hash.update(s(t, e)), this) + }, + finish256: function () { + return this.hash.digest().slice(0, 32) + }, + finish: function () { + return new o(this.finish256()) + }, + }) + function f() { + for (var t = new u(), e = arguments.length, n = Array(e), r = 0; r < e; r++) n[r] = arguments[r] + return ( + n.forEach(function (e) { + return t.put(e) + }), + s(t.finish256(), Uint8Array) + ) + } + t.exports = { + Sha512Half: u, + sha512Half: f, + transactionID: function (t) { + return new o(f(i.transactionID, t)) + }, + } + }).call(this, n(5).Buffer) + }, + function (t, e, n) { + 'use strict' + var r = n(8), + i = n(4), + o = i.getNAF, + s = i.getJSF, + a = i.assert + function u(t, e) { + ;((this.type = t), + (this.p = new r(e.p, 16)), + (this.red = e.prime ? r.red(e.prime) : r.mont(this.p)), + (this.zero = new r(0).toRed(this.red)), + (this.one = new r(1).toRed(this.red)), + (this.two = new r(2).toRed(this.red)), + (this.n = e.n && new r(e.n, 16)), + (this.g = e.g && this.pointFromJSON(e.g, e.gRed)), + (this._wnafT1 = new Array(4)), + (this._wnafT2 = new Array(4)), + (this._wnafT3 = new Array(4)), + (this._wnafT4 = new Array(4)), + (this._bitLength = this.n ? this.n.bitLength() : 0)) + var n = this.n && this.p.div(this.n) + !n || n.cmpn(100) > 0 ? (this.redN = null) : ((this._maxwellTrick = !0), (this.redN = this.n.toRed(this.red))) + } + function f(t, e) { + ;((this.curve = t), (this.type = e), (this.precomputed = null)) + } + ;((t.exports = u), + (u.prototype.point = function () { + throw new Error('Not implemented') + }), + (u.prototype.validate = function () { + throw new Error('Not implemented') + }), + (u.prototype._fixedNafMul = function (t, e) { + a(t.precomputed) + var n = t._getDoubles(), + r = o(e, 1, this._bitLength), + i = (1 << (n.step + 1)) - (n.step % 2 == 0 ? 2 : 1) + i /= 3 + for (var s = [], u = 0; u < r.length; u += n.step) { + var f = 0 + for (e = u + n.step - 1; e >= u; e--) f = (f << 1) + r[e] + s.push(f) + } + for (var c = this.jpoint(null, null, null), h = this.jpoint(null, null, null), d = i; d > 0; d--) { + for (u = 0; u < s.length; u++) { + ;(f = s[u]) === d ? (h = h.mixedAdd(n.points[u])) : f === -d && (h = h.mixedAdd(n.points[u].neg())) + } + c = c.add(h) + } + return c.toP() + }), + (u.prototype._wnafMul = function (t, e) { + var n = 4, + r = t._getNAFPoints(n) + n = r.wnd + for (var i = r.points, s = o(e, n, this._bitLength), u = this.jpoint(null, null, null), f = s.length - 1; f >= 0; f--) { + for (e = 0; f >= 0 && 0 === s[f]; f--) e++ + if ((f >= 0 && e++, (u = u.dblp(e)), f < 0)) break + var c = s[f] + ;(a(0 !== c), + (u = + 'affine' === t.type + ? c > 0 + ? u.mixedAdd(i[(c - 1) >> 1]) + : u.mixedAdd(i[(-c - 1) >> 1].neg()) + : c > 0 + ? u.add(i[(c - 1) >> 1]) + : u.add(i[(-c - 1) >> 1].neg()))) + } + return 'affine' === t.type ? u.toP() : u + }), + (u.prototype._wnafMulAdd = function (t, e, n, r, i) { + for (var a = this._wnafT1, u = this._wnafT2, f = this._wnafT3, c = 0, h = 0; h < r; h++) { + var d = (A = e[h])._getNAFPoints(t) + ;((a[h] = d.wnd), (u[h] = d.points)) + } + for (h = r - 1; h >= 1; h -= 2) { + var l = h - 1, + p = h + if (1 === a[l] && 1 === a[p]) { + var b = [e[l], null, null, e[p]] + 0 === e[l].y.cmp(e[p].y) + ? ((b[1] = e[l].add(e[p])), (b[2] = e[l].toJ().mixedAdd(e[p].neg()))) + : 0 === e[l].y.cmp(e[p].y.redNeg()) + ? ((b[1] = e[l].toJ().mixedAdd(e[p])), (b[2] = e[l].add(e[p].neg()))) + : ((b[1] = e[l].toJ().mixedAdd(e[p])), (b[2] = e[l].toJ().mixedAdd(e[p].neg()))) + var g = [-3, -1, -5, -7, 0, 7, 5, 1, 3], + v = s(n[l], n[p]) + ;((c = Math.max(v[0].length, c)), (f[l] = new Array(c)), (f[p] = new Array(c))) + for (var m = 0; m < c; m++) { + var y = 0 | v[0][m], + w = 0 | v[1][m] + ;((f[l][m] = g[3 * (y + 1) + (w + 1)]), (f[p][m] = 0), (u[l] = b)) + } + } else + ((f[l] = o(n[l], a[l], this._bitLength)), + (f[p] = o(n[p], a[p], this._bitLength)), + (c = Math.max(f[l].length, c)), + (c = Math.max(f[p].length, c))) + } + var _ = this.jpoint(null, null, null), + S = this._wnafT4 + for (h = c; h >= 0; h--) { + for (var M = 0; h >= 0; ) { + var E = !0 + for (m = 0; m < r; m++) ((S[m] = 0 | f[m][h]), 0 !== S[m] && (E = !1)) + if (!E) break + ;(M++, h--) + } + if ((h >= 0 && M++, (_ = _.dblp(M)), h < 0)) break + for (m = 0; m < r; m++) { + var A, + x = S[m] + 0 !== x && + (x > 0 ? (A = u[m][(x - 1) >> 1]) : x < 0 && (A = u[m][(-x - 1) >> 1].neg()), (_ = 'affine' === A.type ? _.mixedAdd(A) : _.add(A))) + } + } + for (h = 0; h < r; h++) u[h] = null + return i ? _ : _.toP() + }), + (u.BasePoint = f), + (f.prototype.eq = function () { + throw new Error('Not implemented') + }), + (f.prototype.validate = function () { + return this.curve.validate(this) + }), + (u.prototype.decodePoint = function (t, e) { + t = i.toArray(t, e) + var n = this.p.byteLength() + if ((4 === t[0] || 6 === t[0] || 7 === t[0]) && t.length - 1 == 2 * n) + return ( + 6 === t[0] ? a(t[t.length - 1] % 2 == 0) : 7 === t[0] && a(t[t.length - 1] % 2 == 1), + this.point(t.slice(1, 1 + n), t.slice(1 + n, 1 + 2 * n)) + ) + if ((2 === t[0] || 3 === t[0]) && t.length - 1 === n) return this.pointFromX(t.slice(1, 1 + n), 3 === t[0]) + throw new Error('Unknown point format') + }), + (f.prototype.encodeCompressed = function (t) { + return this.encode(t, !0) + }), + (f.prototype._encode = function (t) { + var e = this.curve.p.byteLength(), + n = this.getX().toArray('be', e) + return t ? [this.getY().isEven() ? 2 : 3].concat(n) : [4].concat(n, this.getY().toArray('be', e)) + }), + (f.prototype.encode = function (t, e) { + return i.encode(this._encode(e), t) + }), + (f.prototype.precompute = function (t) { + if (this.precomputed) return this + var e = { doubles: null, naf: null, beta: null } + return ((e.naf = this._getNAFPoints(8)), (e.doubles = this._getDoubles(4, t)), (e.beta = this._getBeta()), (this.precomputed = e), this) + }), + (f.prototype._hasDoubles = function (t) { + if (!this.precomputed) return !1 + var e = this.precomputed.doubles + return !!e && e.points.length >= Math.ceil((t.bitLength() + 1) / e.step) + }), + (f.prototype._getDoubles = function (t, e) { + if (this.precomputed && this.precomputed.doubles) return this.precomputed.doubles + for (var n = [this], r = this, i = 0; i < e; i += t) { + for (var o = 0; o < t; o++) r = r.dbl() + n.push(r) + } + return { step: t, points: n } + }), + (f.prototype._getNAFPoints = function (t) { + if (this.precomputed && this.precomputed.naf) return this.precomputed.naf + for (var e = [this], n = (1 << t) - 1, r = 1 === n ? null : this.dbl(), i = 1; i < n; i++) e[i] = e[i - 1].add(r) + return { wnd: t, points: e } + }), + (f.prototype._getBeta = function () { + return null + }), + (f.prototype.dblp = function (t) { + for (var e = this, n = 0; n < t; n++) e = e.dbl() + return e + })) + }, + function (t, e) { + t.exports = function (t) { + return ( + t.webpackPolyfill || + ((t.deprecate = function () {}), + (t.paths = []), + t.children || (t.children = []), + Object.defineProperty(t, 'loaded', { + enumerable: !0, + get: function () { + return t.l + }, + }), + Object.defineProperty(t, 'id', { + enumerable: !0, + get: function () { + return t.i + }, + }), + (t.webpackPolyfill = 1)), + t + ) + } + }, + function (t, e, n) { + 'use strict' + var r = n(0), + i = n(29), + o = i.decodeAccountID, + s = i.encodeAccountID, + a = n(35).Hash160, + u = r({ + AccountID: function (t) { + a.call(this, t) + }, + inherits: a, + statics: { + from: function (t) { + return t instanceof this ? t : /^r/.test(t) ? this.fromBase58(t) : new this(t) + }, + cache: {}, + fromCache: function (t) { + var e = this.cache[t] + return (e || (e = this.cache[t] = this.fromBase58(t)), e) + }, + fromBase58: function (t) { + var e = new this(o(t)) + return ((e._toBase58 = t), e) + }, + }, + toJSON: function () { + return this.toBase58() + }, + cached: { + toBase58: function () { + return s(this._bytes) + }, + }, + }) + t.exports = { AccountID: u } + }, + function (t, e, n) { + 'use strict' + ;(function (t) { + Object.defineProperty(e, '__esModule', { value: !0 }) + const r = n(73) + ;((e.codec = r.codec), + (e.encodeSeed = r.encodeSeed), + (e.decodeSeed = r.decodeSeed), + (e.encodeAccountID = r.encodeAccountID), + (e.decodeAccountID = r.decodeAccountID), + (e.encodeNodePublic = r.encodeNodePublic), + (e.decodeNodePublic = r.decodeNodePublic), + (e.encodeAccountPublic = r.encodeAccountPublic), + (e.decodeAccountPublic = r.decodeAccountPublic), + (e.isValidClassicAddress = r.isValidClassicAddress)) + const i = n(2), + o = { MAIN: t.from([5, 68]), TEST: t.from([4, 147]) } + function s(e, n, i) { + if (20 !== e.length) throw new Error('Account ID must be 20 bytes') + const s = !1 === n ? 0 : n <= 4294967295 ? 1 : 2 + if (2 === s) throw new Error('Invalid tag') + !1 === n && (n = 0) + const a = t.concat([i ? o.TEST : o.MAIN, e, t.from([s, 255 & n, (n >> 8) & 255, (n >> 16) & 255, (n >> 24) & 255, 0, 0, 0, 0])]) + return r.codec.encodeChecked(a) + } + function a(e) { + const n = r.codec.decodeChecked(e), + s = (function (t) { + const e = t.slice(0, 2) + if (o.MAIN.equals(e)) return !1 + if (o.TEST.equals(e)) return !0 + throw new Error('Invalid X-address: bad prefix') + })(n) + return { + accountId: n.slice(2, 22), + tag: (function (e) { + const n = e[22] + if (n >= 2) throw new Error('Unsupported X-address') + if (1 === n) return e[23] + 256 * e[24] + 65536 * e[25] + 16777216 * e[26] + return ( + i.strictEqual(n, 0, 'flag must be zero to indicate no tag'), + i.ok(t.from('0000000000000000', 'hex').equals(e.slice(23, 31)), 'remaining bytes must be zero'), + !1 + ) + })(n), + test: s, + } + } + ;((e.classicAddressToXAddress = function (t, e, n) { + return s(r.decodeAccountID(t), e, n) + }), + (e.encodeXAddress = s), + (e.xAddressToClassicAddress = function (t) { + const { accountId: e, tag: n, test: i } = a(t) + return { classicAddress: r.encodeAccountID(e), tag: n, test: i } + }), + (e.decodeXAddress = a), + (e.isValidXAddress = function (t) { + try { + a(t) + } catch (t) { + return !1 + } + return !0 + })) + }).call(this, n(5).Buffer) + }, + function (t, e, n) { + 'use strict' + var r, + i = 'object' == typeof Reflect ? Reflect : null, + o = + i && 'function' == typeof i.apply + ? i.apply + : function (t, e, n) { + return Function.prototype.apply.call(t, e, n) + } + r = + i && 'function' == typeof i.ownKeys + ? i.ownKeys + : Object.getOwnPropertySymbols + ? function (t) { + return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t)) + } + : function (t) { + return Object.getOwnPropertyNames(t) + } + var s = + Number.isNaN || + function (t) { + return t != t + } + function a() { + a.init.call(this) + } + ;((t.exports = a), (a.EventEmitter = a), (a.prototype._events = void 0), (a.prototype._eventsCount = 0), (a.prototype._maxListeners = void 0)) + var u = 10 + function f(t) { + if ('function' != typeof t) throw new TypeError('The "listener" argument must be of type Function. Received type ' + typeof t) + } + function c(t) { + return void 0 === t._maxListeners ? a.defaultMaxListeners : t._maxListeners + } + function h(t, e, n, r) { + var i, o, s, a + if ( + (f(n), + void 0 === (o = t._events) + ? ((o = t._events = Object.create(null)), (t._eventsCount = 0)) + : (void 0 !== o.newListener && (t.emit('newListener', e, n.listener ? n.listener : n), (o = t._events)), (s = o[e])), + void 0 === s) + ) + ((s = o[e] = n), ++t._eventsCount) + else if ( + ('function' == typeof s ? (s = o[e] = r ? [n, s] : [s, n]) : r ? s.unshift(n) : s.push(n), (i = c(t)) > 0 && s.length > i && !s.warned) + ) { + s.warned = !0 + var u = new Error( + 'Possible EventEmitter memory leak detected. ' + + s.length + + ' ' + + String(e) + + ' listeners added. Use emitter.setMaxListeners() to increase limit', + ) + ;((u.name = 'MaxListenersExceededWarning'), + (u.emitter = t), + (u.type = e), + (u.count = s.length), + (a = u), + console && console.warn && console.warn(a)) + } + return t + } + function d() { + if (!this.fired) + return ( + this.target.removeListener(this.type, this.wrapFn), + (this.fired = !0), + 0 === arguments.length ? this.listener.call(this.target) : this.listener.apply(this.target, arguments) + ) + } + function l(t, e, n) { + var r = { fired: !1, wrapFn: void 0, target: t, type: e, listener: n }, + i = d.bind(r) + return ((i.listener = n), (r.wrapFn = i), i) + } + function p(t, e, n) { + var r = t._events + if (void 0 === r) return [] + var i = r[e] + return void 0 === i + ? [] + : 'function' == typeof i + ? n + ? [i.listener || i] + : [i] + : n + ? (function (t) { + for (var e = new Array(t.length), n = 0; n < e.length; ++n) e[n] = t[n].listener || t[n] + return e + })(i) + : g(i, i.length) + } + function b(t) { + var e = this._events + if (void 0 !== e) { + var n = e[t] + if ('function' == typeof n) return 1 + if (void 0 !== n) return n.length + } + return 0 + } + function g(t, e) { + for (var n = new Array(e), r = 0; r < e; ++r) n[r] = t[r] + return n + } + ;(Object.defineProperty(a, 'defaultMaxListeners', { + enumerable: !0, + get: function () { + return u + }, + set: function (t) { + if ('number' != typeof t || t < 0 || s(t)) + throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received ' + t + '.') + u = t + }, + }), + (a.init = function () { + ;((void 0 !== this._events && this._events !== Object.getPrototypeOf(this)._events) || + ((this._events = Object.create(null)), (this._eventsCount = 0)), + (this._maxListeners = this._maxListeners || void 0)) + }), + (a.prototype.setMaxListeners = function (t) { + if ('number' != typeof t || t < 0 || s(t)) + throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received ' + t + '.') + return ((this._maxListeners = t), this) + }), + (a.prototype.getMaxListeners = function () { + return c(this) + }), + (a.prototype.emit = function (t) { + for (var e = [], n = 1; n < arguments.length; n++) e.push(arguments[n]) + var r = 'error' === t, + i = this._events + if (void 0 !== i) r = r && void 0 === i.error + else if (!r) return !1 + if (r) { + var s + if ((e.length > 0 && (s = e[0]), s instanceof Error)) throw s + var a = new Error('Unhandled error.' + (s ? ' (' + s.message + ')' : '')) + throw ((a.context = s), a) + } + var u = i[t] + if (void 0 === u) return !1 + if ('function' == typeof u) o(u, this, e) + else { + var f = u.length, + c = g(u, f) + for (n = 0; n < f; ++n) o(c[n], this, e) + } + return !0 + }), + (a.prototype.addListener = function (t, e) { + return h(this, t, e, !1) + }), + (a.prototype.on = a.prototype.addListener), + (a.prototype.prependListener = function (t, e) { + return h(this, t, e, !0) + }), + (a.prototype.once = function (t, e) { + return (f(e), this.on(t, l(this, t, e)), this) + }), + (a.prototype.prependOnceListener = function (t, e) { + return (f(e), this.prependListener(t, l(this, t, e)), this) + }), + (a.prototype.removeListener = function (t, e) { + var n, r, i, o, s + if ((f(e), void 0 === (r = this._events))) return this + if (void 0 === (n = r[t])) return this + if (n === e || n.listener === e) + 0 == --this._eventsCount + ? (this._events = Object.create(null)) + : (delete r[t], r.removeListener && this.emit('removeListener', t, n.listener || e)) + else if ('function' != typeof n) { + for (i = -1, o = n.length - 1; o >= 0; o--) + if (n[o] === e || n[o].listener === e) { + ;((s = n[o].listener), (i = o)) + break + } + if (i < 0) return this + ;(0 === i + ? n.shift() + : (function (t, e) { + for (; e + 1 < t.length; e++) t[e] = t[e + 1] + t.pop() + })(n, i), + 1 === n.length && (r[t] = n[0]), + void 0 !== r.removeListener && this.emit('removeListener', t, s || e)) + } + return this + }), + (a.prototype.off = a.prototype.removeListener), + (a.prototype.removeAllListeners = function (t) { + var e, n, r + if (void 0 === (n = this._events)) return this + if (void 0 === n.removeListener) + return ( + 0 === arguments.length + ? ((this._events = Object.create(null)), (this._eventsCount = 0)) + : void 0 !== n[t] && (0 == --this._eventsCount ? (this._events = Object.create(null)) : delete n[t]), + this + ) + if (0 === arguments.length) { + var i, + o = Object.keys(n) + for (r = 0; r < o.length; ++r) 'removeListener' !== (i = o[r]) && this.removeAllListeners(i) + return (this.removeAllListeners('removeListener'), (this._events = Object.create(null)), (this._eventsCount = 0), this) + } + if ('function' == typeof (e = n[t])) this.removeListener(t, e) + else if (void 0 !== e) for (r = e.length - 1; r >= 0; r--) this.removeListener(t, e[r]) + return this + }), + (a.prototype.listeners = function (t) { + return p(this, t, !0) + }), + (a.prototype.rawListeners = function (t) { + return p(this, t, !1) + }), + (a.listenerCount = function (t, e) { + return 'function' == typeof t.listenerCount ? t.listenerCount(e) : b.call(t, e) + }), + (a.prototype.listenerCount = b), + (a.prototype.eventNames = function () { + return this._eventsCount > 0 ? r(this._events) : [] + })) + }, + function (t, e, n) { + ;(((e = t.exports = n(45)).Stream = e), + (e.Readable = e), + (e.Writable = n(33)), + (e.Duplex = n(13)), + (e.Transform = n(48)), + (e.PassThrough = n(84))) + }, + function (t, e, n) { + var r = n(5), + i = r.Buffer + function o(t, e) { + for (var n in t) e[n] = t[n] + } + function s(t, e, n) { + return i(t, e, n) + } + ;(i.from && i.alloc && i.allocUnsafe && i.allocUnsafeSlow ? (t.exports = r) : (o(r, e), (e.Buffer = s)), + o(i, s), + (s.from = function (t, e, n) { + if ('number' == typeof t) throw new TypeError('Argument must not be a number') + return i(t, e, n) + }), + (s.alloc = function (t, e, n) { + if ('number' != typeof t) throw new TypeError('Argument must be a number') + var r = i(t) + return (void 0 !== e ? ('string' == typeof n ? r.fill(e, n) : r.fill(e)) : r.fill(0), r) + }), + (s.allocUnsafe = function (t) { + if ('number' != typeof t) throw new TypeError('Argument must be a number') + return i(t) + }), + (s.allocUnsafeSlow = function (t) { + if ('number' != typeof t) throw new TypeError('Argument must be a number') + return r.SlowBuffer(t) + })) + }, + function (t, e, n) { + 'use strict' + ;(function (e, r, i) { + var o = n(23) + function s(t) { + var e = this + ;((this.next = null), + (this.entry = null), + (this.finish = function () { + !(function (t, e, n) { + var r = t.entry + t.entry = null + for (; r; ) { + var i = r.callback + ;(e.pendingcb--, i(n), (r = r.next)) + } + e.corkedRequestsFree ? (e.corkedRequestsFree.next = t) : (e.corkedRequestsFree = t) + })(e, t) + })) + } + t.exports = m + var a, + u = !e.browser && ['v0.10', 'v0.9.'].indexOf(e.version.slice(0, 5)) > -1 ? r : o.nextTick + m.WritableState = v + var f = Object.create(n(20)) + f.inherits = n(1) + var c = { deprecate: n(82) }, + h = n(46), + d = n(32).Buffer, + l = i.Uint8Array || function () {} + var p, + b = n(47) + function g() {} + function v(t, e) { + ;((a = a || n(13)), (t = t || {})) + var r = e instanceof a + ;((this.objectMode = !!t.objectMode), r && (this.objectMode = this.objectMode || !!t.writableObjectMode)) + var i = t.highWaterMark, + f = t.writableHighWaterMark, + c = this.objectMode ? 16 : 16384 + ;((this.highWaterMark = i || 0 === i ? i : r && (f || 0 === f) ? f : c), + (this.highWaterMark = Math.floor(this.highWaterMark)), + (this.finalCalled = !1), + (this.needDrain = !1), + (this.ending = !1), + (this.ended = !1), + (this.finished = !1), + (this.destroyed = !1)) + var h = !1 === t.decodeStrings + ;((this.decodeStrings = !h), + (this.defaultEncoding = t.defaultEncoding || 'utf8'), + (this.length = 0), + (this.writing = !1), + (this.corked = 0), + (this.sync = !0), + (this.bufferProcessing = !1), + (this.onwrite = function (t) { + !(function (t, e) { + var n = t._writableState, + r = n.sync, + i = n.writecb + if ( + ((function (t) { + ;((t.writing = !1), (t.writecb = null), (t.length -= t.writelen), (t.writelen = 0)) + })(n), + e) + ) + !(function (t, e, n, r, i) { + ;(--e.pendingcb, + n + ? (o.nextTick(i, r), o.nextTick(E, t, e), (t._writableState.errorEmitted = !0), t.emit('error', r)) + : (i(r), (t._writableState.errorEmitted = !0), t.emit('error', r), E(t, e))) + })(t, n, r, e, i) + else { + var s = S(n) + ;(s || n.corked || n.bufferProcessing || !n.bufferedRequest || _(t, n), r ? u(w, t, n, s, i) : w(t, n, s, i)) + } + })(e, t) + }), + (this.writecb = null), + (this.writelen = 0), + (this.bufferedRequest = null), + (this.lastBufferedRequest = null), + (this.pendingcb = 0), + (this.prefinished = !1), + (this.errorEmitted = !1), + (this.bufferedRequestCount = 0), + (this.corkedRequestsFree = new s(this))) + } + function m(t) { + if (((a = a || n(13)), !(p.call(m, this) || this instanceof a))) return new m(t) + ;((this._writableState = new v(t, this)), + (this.writable = !0), + t && + ('function' == typeof t.write && (this._write = t.write), + 'function' == typeof t.writev && (this._writev = t.writev), + 'function' == typeof t.destroy && (this._destroy = t.destroy), + 'function' == typeof t.final && (this._final = t.final)), + h.call(this)) + } + function y(t, e, n, r, i, o, s) { + ;((e.writelen = r), (e.writecb = s), (e.writing = !0), (e.sync = !0), n ? t._writev(i, e.onwrite) : t._write(i, o, e.onwrite), (e.sync = !1)) + } + function w(t, e, n, r) { + ;(n || + (function (t, e) { + 0 === e.length && e.needDrain && ((e.needDrain = !1), t.emit('drain')) + })(t, e), + e.pendingcb--, + r(), + E(t, e)) + } + function _(t, e) { + e.bufferProcessing = !0 + var n = e.bufferedRequest + if (t._writev && n && n.next) { + var r = e.bufferedRequestCount, + i = new Array(r), + o = e.corkedRequestsFree + o.entry = n + for (var a = 0, u = !0; n; ) ((i[a] = n), n.isBuf || (u = !1), (n = n.next), (a += 1)) + ;((i.allBuffers = u), + y(t, e, !0, e.length, i, '', o.finish), + e.pendingcb++, + (e.lastBufferedRequest = null), + o.next ? ((e.corkedRequestsFree = o.next), (o.next = null)) : (e.corkedRequestsFree = new s(e)), + (e.bufferedRequestCount = 0)) + } else { + for (; n; ) { + var f = n.chunk, + c = n.encoding, + h = n.callback + if ((y(t, e, !1, e.objectMode ? 1 : f.length, f, c, h), (n = n.next), e.bufferedRequestCount--, e.writing)) break + } + null === n && (e.lastBufferedRequest = null) + } + ;((e.bufferedRequest = n), (e.bufferProcessing = !1)) + } + function S(t) { + return t.ending && 0 === t.length && null === t.bufferedRequest && !t.finished && !t.writing + } + function M(t, e) { + t._final(function (n) { + ;(e.pendingcb--, n && t.emit('error', n), (e.prefinished = !0), t.emit('prefinish'), E(t, e)) + }) + } + function E(t, e) { + var n = S(e) + return ( + n && + (!(function (t, e) { + e.prefinished || + e.finalCalled || + ('function' == typeof t._final + ? (e.pendingcb++, (e.finalCalled = !0), o.nextTick(M, t, e)) + : ((e.prefinished = !0), t.emit('prefinish'))) + })(t, e), + 0 === e.pendingcb && ((e.finished = !0), t.emit('finish'))), + n + ) + } + ;(f.inherits(m, h), + (v.prototype.getBuffer = function () { + for (var t = this.bufferedRequest, e = []; t; ) (e.push(t), (t = t.next)) + return e + }), + (function () { + try { + Object.defineProperty(v.prototype, 'buffer', { + get: c.deprecate( + function () { + return this.getBuffer() + }, + '_writableState.buffer is deprecated. Use _writableState.getBuffer instead.', + 'DEP0003', + ), + }) + } catch (t) {} + })(), + 'function' == typeof Symbol && Symbol.hasInstance && 'function' == typeof Function.prototype[Symbol.hasInstance] + ? ((p = Function.prototype[Symbol.hasInstance]), + Object.defineProperty(m, Symbol.hasInstance, { + value: function (t) { + return !!p.call(this, t) || (this === m && t && t._writableState instanceof v) + }, + })) + : (p = function (t) { + return t instanceof this + }), + (m.prototype.pipe = function () { + this.emit('error', new Error('Cannot pipe, not readable')) + }), + (m.prototype.write = function (t, e, n) { + var r, + i = this._writableState, + s = !1, + a = !i.objectMode && ((r = t), d.isBuffer(r) || r instanceof l) + return ( + a && + !d.isBuffer(t) && + (t = (function (t) { + return d.from(t) + })(t)), + 'function' == typeof e && ((n = e), (e = null)), + a ? (e = 'buffer') : e || (e = i.defaultEncoding), + 'function' != typeof n && (n = g), + i.ended + ? (function (t, e) { + var n = new Error('write after end') + ;(t.emit('error', n), o.nextTick(e, n)) + })(this, n) + : (a || + (function (t, e, n, r) { + var i = !0, + s = !1 + return ( + null === n + ? (s = new TypeError('May not write null values to stream')) + : 'string' == typeof n || void 0 === n || e.objectMode || (s = new TypeError('Invalid non-string/buffer chunk')), + s && (t.emit('error', s), o.nextTick(r, s), (i = !1)), + i + ) + })(this, i, t, n)) && + (i.pendingcb++, + (s = (function (t, e, n, r, i, o) { + if (!n) { + var s = (function (t, e, n) { + t.objectMode || !1 === t.decodeStrings || 'string' != typeof e || (e = d.from(e, n)) + return e + })(e, r, i) + r !== s && ((n = !0), (i = 'buffer'), (r = s)) + } + var a = e.objectMode ? 1 : r.length + e.length += a + var u = e.length < e.highWaterMark + u || (e.needDrain = !0) + if (e.writing || e.corked) { + var f = e.lastBufferedRequest + ;((e.lastBufferedRequest = { chunk: r, encoding: i, isBuf: n, callback: o, next: null }), + f ? (f.next = e.lastBufferedRequest) : (e.bufferedRequest = e.lastBufferedRequest), + (e.bufferedRequestCount += 1)) + } else y(t, e, !1, a, r, i, o) + return u + })(this, i, a, t, e, n))), + s + ) + }), + (m.prototype.cork = function () { + this._writableState.corked++ + }), + (m.prototype.uncork = function () { + var t = this._writableState + t.corked && (t.corked--, t.writing || t.corked || t.finished || t.bufferProcessing || !t.bufferedRequest || _(this, t)) + }), + (m.prototype.setDefaultEncoding = function (t) { + if ( + ('string' == typeof t && (t = t.toLowerCase()), + !( + ['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((t + '').toLowerCase()) > + -1 + )) + ) + throw new TypeError('Unknown encoding: ' + t) + return ((this._writableState.defaultEncoding = t), this) + }), + Object.defineProperty(m.prototype, 'writableHighWaterMark', { + enumerable: !1, + get: function () { + return this._writableState.highWaterMark + }, + }), + (m.prototype._write = function (t, e, n) { + n(new Error('_write() is not implemented')) + }), + (m.prototype._writev = null), + (m.prototype.end = function (t, e, n) { + var r = this._writableState + ;('function' == typeof t ? ((n = t), (t = null), (e = null)) : 'function' == typeof e && ((n = e), (e = null)), + null != t && this.write(t, e), + r.corked && ((r.corked = 1), this.uncork()), + r.ending || + r.finished || + (function (t, e, n) { + ;((e.ending = !0), E(t, e), n && (e.finished ? o.nextTick(n) : t.once('finish', n))) + ;((e.ended = !0), (t.writable = !1)) + })(this, r, n)) + }), + Object.defineProperty(m.prototype, 'destroyed', { + get: function () { + return void 0 !== this._writableState && this._writableState.destroyed + }, + set: function (t) { + this._writableState && (this._writableState.destroyed = t) + }, + }), + (m.prototype.destroy = b.destroy), + (m.prototype._undestroy = b.undestroy), + (m.prototype._destroy = function (t, e) { + ;(this.end(), e(t)) + })) + }).call(this, n(19), n(80).setImmediate, n(9)) + }, + function (t, e, n) { + 'use strict' + var r = n(83).Buffer, + i = + r.isEncoding || + function (t) { + switch ((t = '' + t) && t.toLowerCase()) { + case 'hex': + case 'utf8': + case 'utf-8': + case 'ascii': + case 'binary': + case 'base64': + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + case 'raw': + return !0 + default: + return !1 + } + } + function o(t) { + var e + switch ( + ((this.encoding = (function (t) { + var e = (function (t) { + if (!t) return 'utf8' + for (var e; ; ) + switch (t) { + case 'utf8': + case 'utf-8': + return 'utf8' + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return 'utf16le' + case 'latin1': + case 'binary': + return 'latin1' + case 'base64': + case 'ascii': + case 'hex': + return t + default: + if (e) return + ;((t = ('' + t).toLowerCase()), (e = !0)) + } + })(t) + if ('string' != typeof e && (r.isEncoding === i || !i(t))) throw new Error('Unknown encoding: ' + t) + return e || t + })(t)), + this.encoding) + ) { + case 'utf16le': + ;((this.text = u), (this.end = f), (e = 4)) + break + case 'utf8': + ;((this.fillLast = a), (e = 4)) + break + case 'base64': + ;((this.text = c), (this.end = h), (e = 3)) + break + default: + return ((this.write = d), void (this.end = l)) + } + ;((this.lastNeed = 0), (this.lastTotal = 0), (this.lastChar = r.allocUnsafe(e))) + } + function s(t) { + return t <= 127 ? 0 : t >> 5 == 6 ? 2 : t >> 4 == 14 ? 3 : t >> 3 == 30 ? 4 : t >> 6 == 2 ? -1 : -2 + } + function a(t) { + var e = this.lastTotal - this.lastNeed, + n = (function (t, e, n) { + if (128 != (192 & e[0])) return ((t.lastNeed = 0), '�') + if (t.lastNeed > 1 && e.length > 1) { + if (128 != (192 & e[1])) return ((t.lastNeed = 1), '�') + if (t.lastNeed > 2 && e.length > 2 && 128 != (192 & e[2])) return ((t.lastNeed = 2), '�') + } + })(this, t) + return void 0 !== n + ? n + : this.lastNeed <= t.length + ? (t.copy(this.lastChar, e, 0, this.lastNeed), this.lastChar.toString(this.encoding, 0, this.lastTotal)) + : (t.copy(this.lastChar, e, 0, t.length), void (this.lastNeed -= t.length)) + } + function u(t, e) { + if ((t.length - e) % 2 == 0) { + var n = t.toString('utf16le', e) + if (n) { + var r = n.charCodeAt(n.length - 1) + if (r >= 55296 && r <= 56319) + return ( + (this.lastNeed = 2), + (this.lastTotal = 4), + (this.lastChar[0] = t[t.length - 2]), + (this.lastChar[1] = t[t.length - 1]), + n.slice(0, -1) + ) + } + return n + } + return ((this.lastNeed = 1), (this.lastTotal = 2), (this.lastChar[0] = t[t.length - 1]), t.toString('utf16le', e, t.length - 1)) + } + function f(t) { + var e = t && t.length ? this.write(t) : '' + if (this.lastNeed) { + var n = this.lastTotal - this.lastNeed + return e + this.lastChar.toString('utf16le', 0, n) + } + return e + } + function c(t, e) { + var n = (t.length - e) % 3 + return 0 === n + ? t.toString('base64', e) + : ((this.lastNeed = 3 - n), + (this.lastTotal = 3), + 1 === n ? (this.lastChar[0] = t[t.length - 1]) : ((this.lastChar[0] = t[t.length - 2]), (this.lastChar[1] = t[t.length - 1])), + t.toString('base64', e, t.length - n)) + } + function h(t) { + var e = t && t.length ? this.write(t) : '' + return this.lastNeed ? e + this.lastChar.toString('base64', 0, 3 - this.lastNeed) : e + } + function d(t) { + return t.toString(this.encoding) + } + function l(t) { + return t && t.length ? this.write(t) : '' + } + ;((e.StringDecoder = o), + (o.prototype.write = function (t) { + if (0 === t.length) return '' + var e, n + if (this.lastNeed) { + if (void 0 === (e = this.fillLast(t))) return '' + ;((n = this.lastNeed), (this.lastNeed = 0)) + } else n = 0 + return n < t.length ? (e ? e + this.text(t, n) : this.text(t, n)) : e || '' + }), + (o.prototype.end = function (t) { + var e = t && t.length ? this.write(t) : '' + return this.lastNeed ? e + '�' : e + }), + (o.prototype.text = function (t, e) { + var n = (function (t, e, n) { + var r = e.length - 1 + if (r < n) return 0 + var i = s(e[r]) + if (i >= 0) return (i > 0 && (t.lastNeed = i - 1), i) + if (--r < n || -2 === i) return 0 + if ((i = s(e[r])) >= 0) return (i > 0 && (t.lastNeed = i - 2), i) + if (--r < n || -2 === i) return 0 + if ((i = s(e[r])) >= 0) return (i > 0 && (2 === i ? (i = 0) : (t.lastNeed = i - 3)), i) + return 0 + })(this, t, e) + if (!this.lastNeed) return t.toString('utf8', e) + this.lastTotal = n + var r = t.length - (n - this.lastNeed) + return (t.copy(this.lastChar, 0, r), t.toString('utf8', e, r)) + }), + (o.prototype.fillLast = function (t) { + if (this.lastNeed <= t.length) + return (t.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed), this.lastChar.toString(this.encoding, 0, this.lastTotal)) + ;(t.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, t.length), (this.lastNeed -= t.length)) + })) + }, + function (t, e, n) { + 'use strict' + var r = n(0)({ inherits: n(36).Hash, statics: { width: 20 } }) + t.exports = { Hash160: r } + }, + function (t, e, n) { + 'use strict' + var r = n(2), + i = n(0), + o = n(10), + s = o.Comparable, + a = o.SerializedType, + u = n(3), + f = u.compareBytes, + c = u.parseBytes, + h = i({ + Hash: function (t) { + var e = this.constructor.width + ;((this._bytes = t ? c(t, Uint8Array) : new Uint8Array(e)), r.equal(this._bytes.length, e)) + }, + mixins: [s, a], + statics: { + width: NaN, + from: function (t) { + return t instanceof this ? t : new this(c(t)) + }, + fromParser: function (t, e) { + return new this(t.read(e || this.width)) + }, + }, + compareTo: function (t) { + return f(this._bytes, this.constructor.from(t)._bytes) + }, + toString: function () { + return this.toHex() + }, + nibblet: function (t) { + var e = t > 0 ? (t / 2) | 0 : 0, + n = this._bytes[e] + return (t % 2 == 0 ? (n = (240 & n) >>> 4) : (n &= 15), n) + }, + }) + t.exports = { Hash: h } + }, + function (t, e, n) { + 'use strict' + var r = n(2), + i = n(3), + o = i.parseBytes, + s = i.bytesToHex, + a = n(0), + u = n(15), + f = u.Type, + c = u.Field, + h = a({ + implementing: { put: function () {} }, + BytesList: function () { + ;((this.arrays = []), (this.length = 0)) + }, + put: function (t) { + var e = o(t, Uint8Array) + return ((this.length += e.length), this.arrays.push(e), this) + }, + toBytesSink: function (t) { + this.arrays.forEach(function (e) { + t.put(e) + }) + }, + toBytes: function () { + var t = new Uint8Array(this.length), + e = 0 + return ( + this.arrays.forEach(function (n) { + ;(t.set(n, e), (e += n.length)) + }), + t + ) + }, + toHex: function () { + return s(this.toBytes()) + }, + }), + d = a({ + BinarySerializer: function (t) { + this.sink = t + }, + write: function (t) { + t.toBytesSink(this.sink) + }, + put: function (t) { + this.sink.put(t) + }, + writeType: function (t, e) { + this.write(t.from(e)) + }, + writeBytesList: function (t) { + t.toBytesSink(this.sink) + }, + encodeVL: function (t) { + var e = t, + n = new Uint8Array(4) + if (e <= 192) return ((n[0] = e), n.subarray(0, 1)) + if (e <= 12480) return ((e -= 193), (n[0] = 193 + (e >>> 8)), (n[1] = 255 & e), n.subarray(0, 2)) + if (e <= 918744) return ((e -= 12481), (n[0] = 241 + (e >>> 16)), (n[1] = (e >> 8) & 255), (n[2] = 255 & e), n.subarray(0, 3)) + throw new Error('Overflow error') + }, + writeFieldAndValue: function (t, e) { + var n = this.sink, + i = t.associatedType.from(e) + ;(r(i.toBytesSink, t), + n.put(t.bytes), + t.isVLEncoded + ? this.writeLengthEncoded(i) + : (i.toBytesSink(n), t.type === f.STObject ? n.put(c.ObjectEndMarker.bytes) : t.type === f.STArray && n.put(c.ArrayEndMarker.bytes))) + }, + writeLengthEncoded: function (t) { + var e = new h() + ;(t.toBytesSink(e), this.put(this.encodeVL(e.length)), this.writeBytesList(e)) + }, + }) + t.exports = { BytesList: h, BinarySerializer: d } + }, + function (t, e, n) { + 'use strict' + var r = n(12), + i = n(0), + o = n(3).slice, + s = n(35).Hash160, + a = /^[A-Z0-9]{3}$/, + u = /^[A-F0-9]{40}$/ + function f(t) { + return ( + r.isString(t) && + ((function (t) { + return 3 === t.length + })(t) || + (function (t) { + return u.test(t) + })(t)) + ) + } + function c(t) { + if ( + (function (t) { + return ( + f(t) || + (function (t) { + return 20 === t.length + })(t) + ) + })(t) + ) + return 3 === t.length + ? (function (t) { + var e = new Uint8Array(20) + if ('XRP' !== t) { + var n = t.split('').map(function (t) { + return t.charCodeAt(0) + }) + e.set(n, 12) + } + return e + })(t) + : t + throw new Error('Unsupported Currency repr: ' + t) + } + var h = s.prototype, + d = i({ + inherits: s, + getters: ['isNative', 'iso'], + statics: { + init: function () { + this.XRP = new this(new Uint8Array(20)) + }, + from: function (t) { + return t instanceof this ? t : new this(c(t)) + }, + }, + Currency: function (t) { + ;(s.call(this, t), this.classify()) + }, + classify: function () { + for ( + var t = !0, + e = this._bytes, + n = o(this._bytes, 12, 15, Array), + i = n + .map(function (t) { + return String.fromCharCode(t) + }) + .join(''), + s = e.length - 1; + s >= 0; + s-- + ) + if (0 !== e[s] && 12 !== s && 13 !== s && 14 !== s) { + t = !1 + break + } + var u = t && 'XRP' !== i && a.test(i) + ;((this._isNative = t && r.isEqual(n, [0, 0, 0])), (this._iso = this._isNative ? 'XRP' : u ? i : null)) + }, + toJSON: function () { + return this.iso() ? this.iso() : h.toJSON.call(this) + }, + }) + t.exports = { Currency: d } + }, + function (t, e, n) { + var r + function i(t) { + this.rand = t + } + if ( + ((t.exports = function (t) { + return (r || (r = new i(null)), r.generate(t)) + }), + (t.exports.Rand = i), + (i.prototype.generate = function (t) { + return this._rand(t) + }), + (i.prototype._rand = function (t) { + if (this.rand.getBytes) return this.rand.getBytes(t) + for (var e = new Uint8Array(t), n = 0; n < e.length; n++) e[n] = this.rand.getByte() + return e + }), + 'object' == typeof self) + ) + self.crypto && self.crypto.getRandomValues + ? (i.prototype._rand = function (t) { + var e = new Uint8Array(t) + return (self.crypto.getRandomValues(e), e) + }) + : self.msCrypto && self.msCrypto.getRandomValues + ? (i.prototype._rand = function (t) { + var e = new Uint8Array(t) + return (self.msCrypto.getRandomValues(e), e) + }) + : 'object' == typeof window && + (i.prototype._rand = function () { + throw new Error('Not implemented yet') + }) + else + try { + var o = n(110) + if ('function' != typeof o.randomBytes) throw new Error('Not supported') + i.prototype._rand = function (t) { + return o.randomBytes(t) + } + } catch (t) {} + }, + function (t, e, n) { + 'use strict' + var r, + i = e, + o = n(18), + s = n(62), + a = n(4).assert + function u(t) { + ;('short' === t.type ? (this.curve = new s.short(t)) : 'edwards' === t.type ? (this.curve = new s.edwards(t)) : (this.curve = new s.mont(t)), + (this.g = this.curve.g), + (this.n = this.curve.n), + (this.hash = t.hash), + a(this.g.validate(), 'Invalid curve'), + a(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O')) + } + function f(t, e) { + Object.defineProperty(i, t, { + configurable: !0, + enumerable: !0, + get: function () { + var n = new u(e) + return (Object.defineProperty(i, t, { configurable: !0, enumerable: !0, value: n }), n) + }, + }) + } + ;((i.PresetCurve = u), + f('p192', { + type: 'short', + prime: 'p192', + p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff', + a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc', + b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1', + n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831', + hash: o.sha256, + gRed: !1, + g: ['188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012', '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811'], + }), + f('p224', { + type: 'short', + prime: 'p224', + p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001', + a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe', + b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4', + n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d', + hash: o.sha256, + gRed: !1, + g: ['b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21', 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34'], + }), + f('p256', { + type: 'short', + prime: null, + p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff', + a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc', + b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b', + n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551', + hash: o.sha256, + gRed: !1, + g: [ + '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296', + '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5', + ], + }), + f('p384', { + type: 'short', + prime: null, + p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff', + a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc', + b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef', + n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973', + hash: o.sha384, + gRed: !1, + g: [ + 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7', + '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f', + ], + }), + f('p521', { + type: 'short', + prime: null, + p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff', + a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc', + b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00', + n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409', + hash: o.sha512, + gRed: !1, + g: [ + '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66', + '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650', + ], + }), + f('curve25519', { + type: 'mont', + prime: 'p25519', + p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed', + a: '76d06', + b: '1', + n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed', + hash: o.sha256, + gRed: !1, + g: ['9'], + }), + f('ed25519', { + type: 'edwards', + prime: 'p25519', + p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed', + a: '-1', + c: '1', + d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3', + n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed', + hash: o.sha256, + gRed: !1, + g: ['216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a', '6666666666666666666666666666666666666666666666666666666666666658'], + })) + try { + r = n(122) + } catch (t) { + r = void 0 + } + f('secp256k1', { + type: 'short', + prime: 'k256', + p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f', + a: '0', + b: '7', + n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141', + h: '1', + hash: o.sha256, + beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee', + lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72', + basis: [ + { a: '3086d221a7d46bcde86c90e49284eb15', b: '-e4437ed6010e88286f547fa90abfe4c3' }, + { a: '114ca50f7a8e2f3f657c1108d9d44cfd8', b: '3086d221a7d46bcde86c90e49284eb15' }, + ], + gRed: !1, + g: ['79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798', '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8', r], + }) + }, + function (t, e) { + var n = {}.toString + t.exports = + Array.isArray || + function (t) { + return '[object Array]' == n.call(t) + } + }, + function (t, e, n) { + 'use strict' + var r = n(1), + i = n(76), + o = n(89), + s = n(90), + a = n(95) + function u(t) { + ;(a.call(this, 'digest'), (this._hash = t)) + } + ;(r(u, a), + (u.prototype._update = function (t) { + this._hash.update(t) + }), + (u.prototype._final = function () { + return this._hash.digest() + }), + (t.exports = function (t) { + return 'md5' === (t = t.toLowerCase()) ? new i() : 'rmd160' === t || 'ripemd160' === t ? new o() : new u(s(t)) + })) + }, + function (t, e, n) { + 'use strict' + var r = n(6).Buffer, + i = n(44).Transform + function o(t) { + ;(i.call(this), + (this._block = r.allocUnsafe(t)), + (this._blockSize = t), + (this._blockOffset = 0), + (this._length = [0, 0, 0, 0]), + (this._finalized = !1)) + } + ;(n(1)(o, i), + (o.prototype._transform = function (t, e, n) { + var r = null + try { + this.update(t, e) + } catch (t) { + r = t + } + n(r) + }), + (o.prototype._flush = function (t) { + var e = null + try { + this.push(this.digest()) + } catch (t) { + e = t + } + t(e) + }), + (o.prototype.update = function (t, e) { + if ( + ((function (t, e) { + if (!r.isBuffer(t) && 'string' != typeof t) throw new TypeError(e + ' must be a string or a buffer') + })(t, 'Data'), + this._finalized) + ) + throw new Error('Digest already called') + r.isBuffer(t) || (t = r.from(t, e)) + for (var n = this._block, i = 0; this._blockOffset + t.length - i >= this._blockSize; ) { + for (var o = this._blockOffset; o < this._blockSize; ) n[o++] = t[i++] + ;(this._update(), (this._blockOffset = 0)) + } + for (; i < t.length; ) n[this._blockOffset++] = t[i++] + for (var s = 0, a = 8 * t.length; a > 0; ++s) + ((this._length[s] += a), (a = (this._length[s] / 4294967296) | 0) > 0 && (this._length[s] -= 4294967296 * a)) + return this + }), + (o.prototype._update = function () { + throw new Error('_update is not implemented') + }), + (o.prototype.digest = function (t) { + if (this._finalized) throw new Error('Digest already called') + this._finalized = !0 + var e = this._digest() + ;(void 0 !== t && (e = e.toString(t)), this._block.fill(0), (this._blockOffset = 0)) + for (var n = 0; n < 4; ++n) this._length[n] = 0 + return e + }), + (o.prototype._digest = function () { + throw new Error('_digest is not implemented') + }), + (t.exports = o)) + }, + function (t, e, n) { + t.exports = i + var r = n(30).EventEmitter + function i() { + r.call(this) + } + ;(n(1)(i, r), + (i.Readable = n(31)), + (i.Writable = n(85)), + (i.Duplex = n(86)), + (i.Transform = n(87)), + (i.PassThrough = n(88)), + (i.Stream = i), + (i.prototype.pipe = function (t, e) { + var n = this + function i(e) { + t.writable && !1 === t.write(e) && n.pause && n.pause() + } + function o() { + n.readable && n.resume && n.resume() + } + ;(n.on('data', i), t.on('drain', o), t._isStdio || (e && !1 === e.end) || (n.on('end', a), n.on('close', u))) + var s = !1 + function a() { + s || ((s = !0), t.end()) + } + function u() { + s || ((s = !0), 'function' == typeof t.destroy && t.destroy()) + } + function f(t) { + if ((c(), 0 === r.listenerCount(this, 'error'))) throw t + } + function c() { + ;(n.removeListener('data', i), + t.removeListener('drain', o), + n.removeListener('end', a), + n.removeListener('close', u), + n.removeListener('error', f), + t.removeListener('error', f), + n.removeListener('end', c), + n.removeListener('close', c), + t.removeListener('close', c)) + } + return (n.on('error', f), t.on('error', f), n.on('end', c), n.on('close', c), t.on('close', c), t.emit('pipe', n), t) + })) + }, + function (t, e, n) { + 'use strict' + ;(function (e, r) { + var i = n(23) + t.exports = y + var o, + s = n(41) + y.ReadableState = m + n(30).EventEmitter + var a = function (t, e) { + return t.listeners(e).length + }, + u = n(46), + f = n(32).Buffer, + c = e.Uint8Array || function () {} + var h = Object.create(n(20)) + h.inherits = n(1) + var d = n(77), + l = void 0 + l = d && d.debuglog ? d.debuglog('stream') : function () {} + var p, + b = n(78), + g = n(47) + h.inherits(y, u) + var v = ['error', 'close', 'destroy', 'pause', 'resume'] + function m(t, e) { + t = t || {} + var r = e instanceof (o = o || n(13)) + ;((this.objectMode = !!t.objectMode), r && (this.objectMode = this.objectMode || !!t.readableObjectMode)) + var i = t.highWaterMark, + s = t.readableHighWaterMark, + a = this.objectMode ? 16 : 16384 + ;((this.highWaterMark = i || 0 === i ? i : r && (s || 0 === s) ? s : a), + (this.highWaterMark = Math.floor(this.highWaterMark)), + (this.buffer = new b()), + (this.length = 0), + (this.pipes = null), + (this.pipesCount = 0), + (this.flowing = null), + (this.ended = !1), + (this.endEmitted = !1), + (this.reading = !1), + (this.sync = !0), + (this.needReadable = !1), + (this.emittedReadable = !1), + (this.readableListening = !1), + (this.resumeScheduled = !1), + (this.destroyed = !1), + (this.defaultEncoding = t.defaultEncoding || 'utf8'), + (this.awaitDrain = 0), + (this.readingMore = !1), + (this.decoder = null), + (this.encoding = null), + t.encoding && (p || (p = n(34).StringDecoder), (this.decoder = new p(t.encoding)), (this.encoding = t.encoding))) + } + function y(t) { + if (((o = o || n(13)), !(this instanceof y))) return new y(t) + ;((this._readableState = new m(t, this)), + (this.readable = !0), + t && ('function' == typeof t.read && (this._read = t.read), 'function' == typeof t.destroy && (this._destroy = t.destroy)), + u.call(this)) + } + function w(t, e, n, r, i) { + var o, + s = t._readableState + null === e + ? ((s.reading = !1), + (function (t, e) { + if (e.ended) return + if (e.decoder) { + var n = e.decoder.end() + n && n.length && (e.buffer.push(n), (e.length += e.objectMode ? 1 : n.length)) + } + ;((e.ended = !0), M(t)) + })(t, s)) + : (i || + (o = (function (t, e) { + var n + ;((r = e), + f.isBuffer(r) || + r instanceof c || + 'string' == typeof e || + void 0 === e || + t.objectMode || + (n = new TypeError('Invalid non-string/buffer chunk'))) + var r + return n + })(s, e)), + o + ? t.emit('error', o) + : s.objectMode || (e && e.length > 0) + ? ('string' == typeof e || + s.objectMode || + Object.getPrototypeOf(e) === f.prototype || + (e = (function (t) { + return f.from(t) + })(e)), + r + ? s.endEmitted + ? t.emit('error', new Error('stream.unshift() after end event')) + : _(t, s, e, !0) + : s.ended + ? t.emit('error', new Error('stream.push() after EOF')) + : ((s.reading = !1), + s.decoder && !n ? ((e = s.decoder.write(e)), s.objectMode || 0 !== e.length ? _(t, s, e, !1) : A(t, s)) : _(t, s, e, !1))) + : r || (s.reading = !1)) + return (function (t) { + return !t.ended && (t.needReadable || t.length < t.highWaterMark || 0 === t.length) + })(s) + } + function _(t, e, n, r) { + ;(e.flowing && 0 === e.length && !e.sync + ? (t.emit('data', n), t.read(0)) + : ((e.length += e.objectMode ? 1 : n.length), r ? e.buffer.unshift(n) : e.buffer.push(n), e.needReadable && M(t)), + A(t, e)) + } + ;(Object.defineProperty(y.prototype, 'destroyed', { + get: function () { + return void 0 !== this._readableState && this._readableState.destroyed + }, + set: function (t) { + this._readableState && (this._readableState.destroyed = t) + }, + }), + (y.prototype.destroy = g.destroy), + (y.prototype._undestroy = g.undestroy), + (y.prototype._destroy = function (t, e) { + ;(this.push(null), e(t)) + }), + (y.prototype.push = function (t, e) { + var n, + r = this._readableState + return ( + r.objectMode + ? (n = !0) + : 'string' == typeof t && ((e = e || r.defaultEncoding) !== r.encoding && ((t = f.from(t, e)), (e = '')), (n = !0)), + w(this, t, e, !1, n) + ) + }), + (y.prototype.unshift = function (t) { + return w(this, t, null, !0, !1) + }), + (y.prototype.isPaused = function () { + return !1 === this._readableState.flowing + }), + (y.prototype.setEncoding = function (t) { + return (p || (p = n(34).StringDecoder), (this._readableState.decoder = new p(t)), (this._readableState.encoding = t), this) + })) + function S(t, e) { + return t <= 0 || (0 === e.length && e.ended) + ? 0 + : e.objectMode + ? 1 + : t != t + ? e.flowing && e.length + ? e.buffer.head.data.length + : e.length + : (t > e.highWaterMark && + (e.highWaterMark = (function (t) { + return ( + t >= 8388608 ? (t = 8388608) : (t--, (t |= t >>> 1), (t |= t >>> 2), (t |= t >>> 4), (t |= t >>> 8), (t |= t >>> 16), t++), + t + ) + })(t)), + t <= e.length ? t : e.ended ? e.length : ((e.needReadable = !0), 0)) + } + function M(t) { + var e = t._readableState + ;((e.needReadable = !1), e.emittedReadable || (l('emitReadable', e.flowing), (e.emittedReadable = !0), e.sync ? i.nextTick(E, t) : E(t))) + } + function E(t) { + ;(l('emit readable'), t.emit('readable'), k(t)) + } + function A(t, e) { + e.readingMore || ((e.readingMore = !0), i.nextTick(x, t, e)) + } + function x(t, e) { + for ( + var n = e.length; + !e.reading && !e.flowing && !e.ended && e.length < e.highWaterMark && (l('maybeReadMore read 0'), t.read(0), n !== e.length); + ) + n = e.length + e.readingMore = !1 + } + function I(t) { + ;(l('readable nexttick read 0'), t.read(0)) + } + function T(t, e) { + ;(e.reading || (l('resume read 0'), t.read(0)), + (e.resumeScheduled = !1), + (e.awaitDrain = 0), + t.emit('resume'), + k(t), + e.flowing && !e.reading && t.read(0)) + } + function k(t) { + var e = t._readableState + for (l('flow', e.flowing); e.flowing && null !== t.read(); ); + } + function L(t, e) { + return 0 === e.length + ? null + : (e.objectMode + ? (n = e.buffer.shift()) + : !t || t >= e.length + ? ((n = e.decoder ? e.buffer.join('') : 1 === e.buffer.length ? e.buffer.head.data : e.buffer.concat(e.length)), e.buffer.clear()) + : (n = (function (t, e, n) { + var r + t < e.head.data.length + ? ((r = e.head.data.slice(0, t)), (e.head.data = e.head.data.slice(t))) + : (r = + t === e.head.data.length + ? e.shift() + : n + ? (function (t, e) { + var n = e.head, + r = 1, + i = n.data + t -= i.length + for (; (n = n.next); ) { + var o = n.data, + s = t > o.length ? o.length : t + if ((s === o.length ? (i += o) : (i += o.slice(0, t)), 0 === (t -= s))) { + s === o.length + ? (++r, n.next ? (e.head = n.next) : (e.head = e.tail = null)) + : ((e.head = n), (n.data = o.slice(s))) + break + } + ++r + } + return ((e.length -= r), i) + })(t, e) + : (function (t, e) { + var n = f.allocUnsafe(t), + r = e.head, + i = 1 + ;(r.data.copy(n), (t -= r.data.length)) + for (; (r = r.next); ) { + var o = r.data, + s = t > o.length ? o.length : t + if ((o.copy(n, n.length - t, 0, s), 0 === (t -= s))) { + s === o.length + ? (++i, r.next ? (e.head = r.next) : (e.head = e.tail = null)) + : ((e.head = r), (r.data = o.slice(s))) + break + } + ++i + } + return ((e.length -= i), n) + })(t, e)) + return r + })(t, e.buffer, e.decoder)), + n) + var n + } + function N(t) { + var e = t._readableState + if (e.length > 0) throw new Error('"endReadable()" called on non-empty stream') + e.endEmitted || ((e.ended = !0), i.nextTick(R, e, t)) + } + function R(t, e) { + t.endEmitted || 0 !== t.length || ((t.endEmitted = !0), (e.readable = !1), e.emit('end')) + } + function O(t, e) { + for (var n = 0, r = t.length; n < r; n++) if (t[n] === e) return n + return -1 + } + ;((y.prototype.read = function (t) { + ;(l('read', t), (t = parseInt(t, 10))) + var e = this._readableState, + n = t + if ((0 !== t && (e.emittedReadable = !1), 0 === t && e.needReadable && (e.length >= e.highWaterMark || e.ended))) + return (l('read: emitReadable', e.length, e.ended), 0 === e.length && e.ended ? N(this) : M(this), null) + if (0 === (t = S(t, e)) && e.ended) return (0 === e.length && N(this), null) + var r, + i = e.needReadable + return ( + l('need readable', i), + (0 === e.length || e.length - t < e.highWaterMark) && l('length less than watermark', (i = !0)), + e.ended || e.reading + ? l('reading or ended', (i = !1)) + : i && + (l('do read'), + (e.reading = !0), + (e.sync = !0), + 0 === e.length && (e.needReadable = !0), + this._read(e.highWaterMark), + (e.sync = !1), + e.reading || (t = S(n, e))), + null === (r = t > 0 ? L(t, e) : null) ? ((e.needReadable = !0), (t = 0)) : (e.length -= t), + 0 === e.length && (e.ended || (e.needReadable = !0), n !== t && e.ended && N(this)), + null !== r && this.emit('data', r), + r + ) + }), + (y.prototype._read = function (t) { + this.emit('error', new Error('_read() is not implemented')) + }), + (y.prototype.pipe = function (t, e) { + var n = this, + o = this._readableState + switch (o.pipesCount) { + case 0: + o.pipes = t + break + case 1: + o.pipes = [o.pipes, t] + break + default: + o.pipes.push(t) + } + ;((o.pipesCount += 1), l('pipe count=%d opts=%j', o.pipesCount, e)) + var u = (!e || !1 !== e.end) && t !== r.stdout && t !== r.stderr ? c : y + function f(e, r) { + ;(l('onunpipe'), + e === n && + r && + !1 === r.hasUnpiped && + ((r.hasUnpiped = !0), + l('cleanup'), + t.removeListener('close', v), + t.removeListener('finish', m), + t.removeListener('drain', h), + t.removeListener('error', g), + t.removeListener('unpipe', f), + n.removeListener('end', c), + n.removeListener('end', y), + n.removeListener('data', b), + (d = !0), + !o.awaitDrain || (t._writableState && !t._writableState.needDrain) || h())) + } + function c() { + ;(l('onend'), t.end()) + } + ;(o.endEmitted ? i.nextTick(u) : n.once('end', u), t.on('unpipe', f)) + var h = (function (t) { + return function () { + var e = t._readableState + ;(l('pipeOnDrain', e.awaitDrain), e.awaitDrain && e.awaitDrain--, 0 === e.awaitDrain && a(t, 'data') && ((e.flowing = !0), k(t))) + } + })(n) + t.on('drain', h) + var d = !1 + var p = !1 + function b(e) { + ;(l('ondata'), + (p = !1), + !1 !== t.write(e) || + p || + (((1 === o.pipesCount && o.pipes === t) || (o.pipesCount > 1 && -1 !== O(o.pipes, t))) && + !d && + (l('false write response, pause', n._readableState.awaitDrain), n._readableState.awaitDrain++, (p = !0)), + n.pause())) + } + function g(e) { + ;(l('onerror', e), y(), t.removeListener('error', g), 0 === a(t, 'error') && t.emit('error', e)) + } + function v() { + ;(t.removeListener('finish', m), y()) + } + function m() { + ;(l('onfinish'), t.removeListener('close', v), y()) + } + function y() { + ;(l('unpipe'), n.unpipe(t)) + } + return ( + n.on('data', b), + (function (t, e, n) { + if ('function' == typeof t.prependListener) return t.prependListener(e, n) + t._events && t._events[e] ? (s(t._events[e]) ? t._events[e].unshift(n) : (t._events[e] = [n, t._events[e]])) : t.on(e, n) + })(t, 'error', g), + t.once('close', v), + t.once('finish', m), + t.emit('pipe', n), + o.flowing || (l('pipe resume'), n.resume()), + t + ) + }), + (y.prototype.unpipe = function (t) { + var e = this._readableState, + n = { hasUnpiped: !1 } + if (0 === e.pipesCount) return this + if (1 === e.pipesCount) + return ( + (t && t !== e.pipes) || (t || (t = e.pipes), (e.pipes = null), (e.pipesCount = 0), (e.flowing = !1), t && t.emit('unpipe', this, n)), + this + ) + if (!t) { + var r = e.pipes, + i = e.pipesCount + ;((e.pipes = null), (e.pipesCount = 0), (e.flowing = !1)) + for (var o = 0; o < i; o++) r[o].emit('unpipe', this, n) + return this + } + var s = O(e.pipes, t) + return ( + -1 === s || (e.pipes.splice(s, 1), (e.pipesCount -= 1), 1 === e.pipesCount && (e.pipes = e.pipes[0]), t.emit('unpipe', this, n)), + this + ) + }), + (y.prototype.on = function (t, e) { + var n = u.prototype.on.call(this, t, e) + if ('data' === t) !1 !== this._readableState.flowing && this.resume() + else if ('readable' === t) { + var r = this._readableState + r.endEmitted || + r.readableListening || + ((r.readableListening = r.needReadable = !0), (r.emittedReadable = !1), r.reading ? r.length && M(this) : i.nextTick(I, this)) + } + return n + }), + (y.prototype.addListener = y.prototype.on), + (y.prototype.resume = function () { + var t = this._readableState + return ( + t.flowing || + (l('resume'), + (t.flowing = !0), + (function (t, e) { + e.resumeScheduled || ((e.resumeScheduled = !0), i.nextTick(T, t, e)) + })(this, t)), + this + ) + }), + (y.prototype.pause = function () { + return ( + l('call pause flowing=%j', this._readableState.flowing), + !1 !== this._readableState.flowing && (l('pause'), (this._readableState.flowing = !1), this.emit('pause')), + this + ) + }), + (y.prototype.wrap = function (t) { + var e = this, + n = this._readableState, + r = !1 + for (var i in (t.on('end', function () { + if ((l('wrapped end'), n.decoder && !n.ended)) { + var t = n.decoder.end() + t && t.length && e.push(t) + } + e.push(null) + }), + t.on('data', function (i) { + ;(l('wrapped data'), n.decoder && (i = n.decoder.write(i)), n.objectMode && null == i) || + ((n.objectMode || (i && i.length)) && (e.push(i) || ((r = !0), t.pause()))) + }), + t)) + void 0 === this[i] && + 'function' == typeof t[i] && + (this[i] = (function (e) { + return function () { + return t[e].apply(t, arguments) + } + })(i)) + for (var o = 0; o < v.length; o++) t.on(v[o], this.emit.bind(this, v[o])) + return ( + (this._read = function (e) { + ;(l('wrapped _read', e), r && ((r = !1), t.resume())) + }), + this + ) + }), + Object.defineProperty(y.prototype, 'readableHighWaterMark', { + enumerable: !1, + get: function () { + return this._readableState.highWaterMark + }, + }), + (y._fromList = L)) + }).call(this, n(9), n(19)) + }, + function (t, e, n) { + t.exports = n(30).EventEmitter + }, + function (t, e, n) { + 'use strict' + var r = n(23) + function i(t, e) { + t.emit('error', e) + } + t.exports = { + destroy: function (t, e) { + var n = this, + o = this._readableState && this._readableState.destroyed, + s = this._writableState && this._writableState.destroyed + return o || s + ? (e ? e(t) : !t || (this._writableState && this._writableState.errorEmitted) || r.nextTick(i, this, t), this) + : (this._readableState && (this._readableState.destroyed = !0), + this._writableState && (this._writableState.destroyed = !0), + this._destroy(t || null, function (t) { + !e && t ? (r.nextTick(i, n, t), n._writableState && (n._writableState.errorEmitted = !0)) : e && e(t) + }), + this) + }, + undestroy: function () { + ;(this._readableState && + ((this._readableState.destroyed = !1), + (this._readableState.reading = !1), + (this._readableState.ended = !1), + (this._readableState.endEmitted = !1)), + this._writableState && + ((this._writableState.destroyed = !1), + (this._writableState.ended = !1), + (this._writableState.ending = !1), + (this._writableState.finished = !1), + (this._writableState.errorEmitted = !1))) + }, + } + }, + function (t, e, n) { + 'use strict' + t.exports = s + var r = n(13), + i = Object.create(n(20)) + function o(t, e) { + var n = this._transformState + n.transforming = !1 + var r = n.writecb + if (!r) return this.emit('error', new Error('write callback called multiple times')) + ;((n.writechunk = null), (n.writecb = null), null != e && this.push(e), r(t)) + var i = this._readableState + ;((i.reading = !1), (i.needReadable || i.length < i.highWaterMark) && this._read(i.highWaterMark)) + } + function s(t) { + if (!(this instanceof s)) return new s(t) + ;(r.call(this, t), + (this._transformState = { + afterTransform: o.bind(this), + needTransform: !1, + transforming: !1, + writecb: null, + writechunk: null, + writeencoding: null, + }), + (this._readableState.needReadable = !0), + (this._readableState.sync = !1), + t && ('function' == typeof t.transform && (this._transform = t.transform), 'function' == typeof t.flush && (this._flush = t.flush)), + this.on('prefinish', a)) + } + function a() { + var t = this + 'function' == typeof this._flush + ? this._flush(function (e, n) { + u(t, e, n) + }) + : u(this, null, null) + } + function u(t, e, n) { + if (e) return t.emit('error', e) + if ((null != n && t.push(n), t._writableState.length)) throw new Error('Calling transform done when ws.length != 0') + if (t._transformState.transforming) throw new Error('Calling transform done when still transforming') + return t.push(null) + } + ;((i.inherits = n(1)), + i.inherits(s, r), + (s.prototype.push = function (t, e) { + return ((this._transformState.needTransform = !1), r.prototype.push.call(this, t, e)) + }), + (s.prototype._transform = function (t, e, n) { + throw new Error('_transform() is not implemented') + }), + (s.prototype._write = function (t, e, n) { + var r = this._transformState + if (((r.writecb = n), (r.writechunk = t), (r.writeencoding = e), !r.transforming)) { + var i = this._readableState + ;(r.needTransform || i.needReadable || i.length < i.highWaterMark) && this._read(i.highWaterMark) + } + }), + (s.prototype._read = function (t) { + var e = this._transformState + null !== e.writechunk && e.writecb && !e.transforming + ? ((e.transforming = !0), this._transform(e.writechunk, e.writeencoding, e.afterTransform)) + : (e.needTransform = !0) + }), + (s.prototype._destroy = function (t, e) { + var n = this + r.prototype._destroy.call(this, t, function (t) { + ;(e(t), n.emit('close')) + }) + })) + }, + function (t, e, n) { + var r = n(1), + i = n(17), + o = n(6).Buffer, + s = [ + 1116352408, 1899447441, 3049323471, 3921009573, 961987163, 1508970993, 2453635748, 2870763221, 3624381080, 310598401, 607225278, 1426881987, + 1925078388, 2162078206, 2614888103, 3248222580, 3835390401, 4022224774, 264347078, 604807628, 770255983, 1249150122, 1555081692, 1996064986, + 2554220882, 2821834349, 2952996808, 3210313671, 3336571891, 3584528711, 113926993, 338241895, 666307205, 773529912, 1294757372, 1396182291, + 1695183700, 1986661051, 2177026350, 2456956037, 2730485921, 2820302411, 3259730800, 3345764771, 3516065817, 3600352804, 4094571909, 275423344, + 430227734, 506948616, 659060556, 883997877, 958139571, 1322822218, 1537002063, 1747873779, 1955562222, 2024104815, 2227730452, 2361852424, + 2428436474, 2756734187, 3204031479, 3329325298, + ], + a = new Array(64) + function u() { + ;(this.init(), (this._w = a), i.call(this, 64, 56)) + } + function f(t, e, n) { + return n ^ (t & (e ^ n)) + } + function c(t, e, n) { + return (t & e) | (n & (t | e)) + } + function h(t) { + return ((t >>> 2) | (t << 30)) ^ ((t >>> 13) | (t << 19)) ^ ((t >>> 22) | (t << 10)) + } + function d(t) { + return ((t >>> 6) | (t << 26)) ^ ((t >>> 11) | (t << 21)) ^ ((t >>> 25) | (t << 7)) + } + function l(t) { + return ((t >>> 7) | (t << 25)) ^ ((t >>> 18) | (t << 14)) ^ (t >>> 3) + } + function p(t) { + return ((t >>> 17) | (t << 15)) ^ ((t >>> 19) | (t << 13)) ^ (t >>> 10) + } + ;(r(u, i), + (u.prototype.init = function () { + return ( + (this._a = 1779033703), + (this._b = 3144134277), + (this._c = 1013904242), + (this._d = 2773480762), + (this._e = 1359893119), + (this._f = 2600822924), + (this._g = 528734635), + (this._h = 1541459225), + this + ) + }), + (u.prototype._update = function (t) { + for ( + var e = this._w, + n = 0 | this._a, + r = 0 | this._b, + i = 0 | this._c, + o = 0 | this._d, + a = 0 | this._e, + u = 0 | this._f, + b = 0 | this._g, + g = 0 | this._h, + v = 0; + v < 16; + ++v + ) + e[v] = t.readInt32BE(4 * v) + for (; v < 64; ++v) e[v] = (p(e[v - 2]) + e[v - 7] + l(e[v - 15]) + e[v - 16]) | 0 + for (var m = 0; m < 64; ++m) { + var y = (g + d(a) + f(a, u, b) + s[m] + e[m]) | 0, + w = (h(n) + c(n, r, i)) | 0 + ;((g = b), (b = u), (u = a), (a = (o + y) | 0), (o = i), (i = r), (r = n), (n = (y + w) | 0)) + } + ;((this._a = (n + this._a) | 0), + (this._b = (r + this._b) | 0), + (this._c = (i + this._c) | 0), + (this._d = (o + this._d) | 0), + (this._e = (a + this._e) | 0), + (this._f = (u + this._f) | 0), + (this._g = (b + this._g) | 0), + (this._h = (g + this._h) | 0)) + }), + (u.prototype._hash = function () { + var t = o.allocUnsafe(32) + return ( + t.writeInt32BE(this._a, 0), + t.writeInt32BE(this._b, 4), + t.writeInt32BE(this._c, 8), + t.writeInt32BE(this._d, 12), + t.writeInt32BE(this._e, 16), + t.writeInt32BE(this._f, 20), + t.writeInt32BE(this._g, 24), + t.writeInt32BE(this._h, 28), + t + ) + }), + (t.exports = u)) + }, + function (t, e, n) { + var r = n(1), + i = n(17), + o = n(6).Buffer, + s = [ + 1116352408, 3609767458, 1899447441, 602891725, 3049323471, 3964484399, 3921009573, 2173295548, 961987163, 4081628472, 1508970993, 3053834265, + 2453635748, 2937671579, 2870763221, 3664609560, 3624381080, 2734883394, 310598401, 1164996542, 607225278, 1323610764, 1426881987, 3590304994, + 1925078388, 4068182383, 2162078206, 991336113, 2614888103, 633803317, 3248222580, 3479774868, 3835390401, 2666613458, 4022224774, 944711139, + 264347078, 2341262773, 604807628, 2007800933, 770255983, 1495990901, 1249150122, 1856431235, 1555081692, 3175218132, 1996064986, 2198950837, + 2554220882, 3999719339, 2821834349, 766784016, 2952996808, 2566594879, 3210313671, 3203337956, 3336571891, 1034457026, 3584528711, 2466948901, + 113926993, 3758326383, 338241895, 168717936, 666307205, 1188179964, 773529912, 1546045734, 1294757372, 1522805485, 1396182291, 2643833823, + 1695183700, 2343527390, 1986661051, 1014477480, 2177026350, 1206759142, 2456956037, 344077627, 2730485921, 1290863460, 2820302411, 3158454273, + 3259730800, 3505952657, 3345764771, 106217008, 3516065817, 3606008344, 3600352804, 1432725776, 4094571909, 1467031594, 275423344, 851169720, + 430227734, 3100823752, 506948616, 1363258195, 659060556, 3750685593, 883997877, 3785050280, 958139571, 3318307427, 1322822218, 3812723403, + 1537002063, 2003034995, 1747873779, 3602036899, 1955562222, 1575990012, 2024104815, 1125592928, 2227730452, 2716904306, 2361852424, 442776044, + 2428436474, 593698344, 2756734187, 3733110249, 3204031479, 2999351573, 3329325298, 3815920427, 3391569614, 3928383900, 3515267271, 566280711, + 3940187606, 3454069534, 4118630271, 4000239992, 116418474, 1914138554, 174292421, 2731055270, 289380356, 3203993006, 460393269, 320620315, + 685471733, 587496836, 852142971, 1086792851, 1017036298, 365543100, 1126000580, 2618297676, 1288033470, 3409855158, 1501505948, 4234509866, + 1607167915, 987167468, 1816402316, 1246189591, + ], + a = new Array(160) + function u() { + ;(this.init(), (this._w = a), i.call(this, 128, 112)) + } + function f(t, e, n) { + return n ^ (t & (e ^ n)) + } + function c(t, e, n) { + return (t & e) | (n & (t | e)) + } + function h(t, e) { + return ((t >>> 28) | (e << 4)) ^ ((e >>> 2) | (t << 30)) ^ ((e >>> 7) | (t << 25)) + } + function d(t, e) { + return ((t >>> 14) | (e << 18)) ^ ((t >>> 18) | (e << 14)) ^ ((e >>> 9) | (t << 23)) + } + function l(t, e) { + return ((t >>> 1) | (e << 31)) ^ ((t >>> 8) | (e << 24)) ^ (t >>> 7) + } + function p(t, e) { + return ((t >>> 1) | (e << 31)) ^ ((t >>> 8) | (e << 24)) ^ ((t >>> 7) | (e << 25)) + } + function b(t, e) { + return ((t >>> 19) | (e << 13)) ^ ((e >>> 29) | (t << 3)) ^ (t >>> 6) + } + function g(t, e) { + return ((t >>> 19) | (e << 13)) ^ ((e >>> 29) | (t << 3)) ^ ((t >>> 6) | (e << 26)) + } + function v(t, e) { + return t >>> 0 < e >>> 0 ? 1 : 0 + } + ;(r(u, i), + (u.prototype.init = function () { + return ( + (this._ah = 1779033703), + (this._bh = 3144134277), + (this._ch = 1013904242), + (this._dh = 2773480762), + (this._eh = 1359893119), + (this._fh = 2600822924), + (this._gh = 528734635), + (this._hh = 1541459225), + (this._al = 4089235720), + (this._bl = 2227873595), + (this._cl = 4271175723), + (this._dl = 1595750129), + (this._el = 2917565137), + (this._fl = 725511199), + (this._gl = 4215389547), + (this._hl = 327033209), + this + ) + }), + (u.prototype._update = function (t) { + for ( + var e = this._w, + n = 0 | this._ah, + r = 0 | this._bh, + i = 0 | this._ch, + o = 0 | this._dh, + a = 0 | this._eh, + u = 0 | this._fh, + m = 0 | this._gh, + y = 0 | this._hh, + w = 0 | this._al, + _ = 0 | this._bl, + S = 0 | this._cl, + M = 0 | this._dl, + E = 0 | this._el, + A = 0 | this._fl, + x = 0 | this._gl, + I = 0 | this._hl, + T = 0; + T < 32; + T += 2 + ) + ((e[T] = t.readInt32BE(4 * T)), (e[T + 1] = t.readInt32BE(4 * T + 4))) + for (; T < 160; T += 2) { + var k = e[T - 30], + L = e[T - 30 + 1], + N = l(k, L), + R = p(L, k), + O = b((k = e[T - 4]), (L = e[T - 4 + 1])), + B = g(L, k), + z = e[T - 14], + P = e[T - 14 + 1], + U = e[T - 32], + F = e[T - 32 + 1], + j = (R + P) | 0, + C = (N + z + v(j, R)) | 0 + ;((C = ((C = (C + O + v((j = (j + B) | 0), B)) | 0) + U + v((j = (j + F) | 0), F)) | 0), (e[T] = C), (e[T + 1] = j)) + } + for (var D = 0; D < 160; D += 2) { + ;((C = e[D]), (j = e[D + 1])) + var q = c(n, r, i), + V = c(w, _, S), + H = h(n, w), + W = h(w, n), + Z = d(a, E), + Y = d(E, a), + J = s[D], + K = s[D + 1], + $ = f(a, u, m), + X = f(E, A, x), + G = (I + Y) | 0, + Q = (y + Z + v(G, I)) | 0 + Q = ((Q = ((Q = (Q + $ + v((G = (G + X) | 0), X)) | 0) + J + v((G = (G + K) | 0), K)) | 0) + C + v((G = (G + j) | 0), j)) | 0 + var tt = (W + V) | 0, + et = (H + q + v(tt, W)) | 0 + ;((y = m), + (I = x), + (m = u), + (x = A), + (u = a), + (A = E), + (a = (o + Q + v((E = (M + G) | 0), M)) | 0), + (o = i), + (M = S), + (i = r), + (S = _), + (r = n), + (_ = w), + (n = (Q + et + v((w = (G + tt) | 0), G)) | 0)) + } + ;((this._al = (this._al + w) | 0), + (this._bl = (this._bl + _) | 0), + (this._cl = (this._cl + S) | 0), + (this._dl = (this._dl + M) | 0), + (this._el = (this._el + E) | 0), + (this._fl = (this._fl + A) | 0), + (this._gl = (this._gl + x) | 0), + (this._hl = (this._hl + I) | 0), + (this._ah = (this._ah + n + v(this._al, w)) | 0), + (this._bh = (this._bh + r + v(this._bl, _)) | 0), + (this._ch = (this._ch + i + v(this._cl, S)) | 0), + (this._dh = (this._dh + o + v(this._dl, M)) | 0), + (this._eh = (this._eh + a + v(this._el, E)) | 0), + (this._fh = (this._fh + u + v(this._fl, A)) | 0), + (this._gh = (this._gh + m + v(this._gl, x)) | 0), + (this._hh = (this._hh + y + v(this._hl, I)) | 0)) + }), + (u.prototype._hash = function () { + var t = o.allocUnsafe(64) + function e(e, n, r) { + ;(t.writeInt32BE(e, r), t.writeInt32BE(n, r + 4)) + } + return ( + e(this._ah, this._al, 0), + e(this._bh, this._bl, 8), + e(this._ch, this._cl, 16), + e(this._dh, this._dl, 24), + e(this._eh, this._el, 32), + e(this._fh, this._fl, 40), + e(this._gh, this._gl, 48), + e(this._hh, this._hl, 56), + t + ) + }), + (t.exports = u)) + }, + function (t, e, n) { + var r + !(function (i) { + 'use strict' + var o, + s, + a, + u = '0123456789abcdef', + f = + '2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058', + c = + '3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789', + h = { precision: 20, rounding: 4, modulo: 1, toExpNeg: -7, toExpPos: 21, minE: -9e15, maxE: 9e15, crypto: !1 }, + d = !0, + l = '[DecimalError] Invalid argument: ', + p = Math.floor, + b = Math.pow, + g = /^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i, + v = /^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i, + m = /^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i, + y = /^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i, + w = f.length - 1, + _ = c.length - 1, + S = { name: '[object Decimal]' } + function M(t) { + var e, + n, + r, + i = t.length - 1, + o = '', + s = t[0] + if (i > 0) { + for (o += s, e = 1; e < i; e++) ((n = 7 - (r = t[e] + '').length) && (o += B(n)), (o += r)) + ;(n = 7 - (r = (s = t[e]) + '').length) && (o += B(n)) + } else if (0 === s) return '0' + for (; s % 10 == 0; ) s /= 10 + return o + s + } + function E(t, e, n) { + if (t !== ~~t || t < e || t > n) throw Error(l + t) + } + function A(t, e, n, r) { + var i, o, s, a + for (o = t[0]; o >= 10; o /= 10) --e + return ( + --e < 0 ? ((e += 7), (i = 0)) : ((i = Math.ceil((e + 1) / 7)), (e %= 7)), + (o = b(10, 7 - e)), + (a = (t[i] % o) | 0), + null == r + ? e < 3 + ? (0 == e ? (a = (a / 100) | 0) : 1 == e && (a = (a / 10) | 0), + (s = (n < 4 && 99999 == a) || (n > 3 && 49999 == a) || 5e4 == a || 0 == a)) + : (s = + (((n < 4 && a + 1 == o) || (n > 3 && a + 1 == o / 2)) && ((t[i + 1] / o / 100) | 0) == b(10, e - 2) - 1) || + ((a == o / 2 || 0 == a) && 0 == ((t[i + 1] / o / 100) | 0))) + : e < 4 + ? (0 == e ? (a = (a / 1e3) | 0) : 1 == e ? (a = (a / 100) | 0) : 2 == e && (a = (a / 10) | 0), + (s = ((r || n < 4) && 9999 == a) || (!r && n > 3 && 4999 == a))) + : (s = (((r || n < 4) && a + 1 == o) || (!r && n > 3 && a + 1 == o / 2)) && ((t[i + 1] / o / 1e3) | 0) == b(10, e - 3) - 1), + s + ) + } + function x(t, e, n) { + for (var r, i, o = [0], s = 0, a = t.length; s < a; ) { + for (i = o.length; i--; ) o[i] *= e + for (o[0] += u.indexOf(t.charAt(s++)), r = 0; r < o.length; r++) + o[r] > n - 1 && (void 0 === o[r + 1] && (o[r + 1] = 0), (o[r + 1] += (o[r] / n) | 0), (o[r] %= n)) + } + return o.reverse() + } + ;((S.absoluteValue = S.abs = + function () { + var t = new this.constructor(this) + return (t.s < 0 && (t.s = 1), T(t)) + }), + (S.ceil = function () { + return T(new this.constructor(this), this.e + 1, 2) + }), + (S.comparedTo = S.cmp = + function (t) { + var e, + n, + r, + i, + o = this, + s = o.d, + a = (t = new o.constructor(t)).d, + u = o.s, + f = t.s + if (!s || !a) return u && f ? (u !== f ? u : s === a ? 0 : !s ^ (u < 0) ? 1 : -1) : NaN + if (!s[0] || !a[0]) return s[0] ? u : a[0] ? -f : 0 + if (u !== f) return u + if (o.e !== t.e) return (o.e > t.e) ^ (u < 0) ? 1 : -1 + for (e = 0, n = (r = s.length) < (i = a.length) ? r : i; e < n; ++e) if (s[e] !== a[e]) return (s[e] > a[e]) ^ (u < 0) ? 1 : -1 + return r === i ? 0 : (r > i) ^ (u < 0) ? 1 : -1 + }), + (S.cosine = S.cos = + function () { + var t, + e, + n = this, + r = n.constructor + return n.d + ? n.d[0] + ? ((t = r.precision), + (e = r.rounding), + (r.precision = t + Math.max(n.e, n.sd()) + 7), + (r.rounding = 1), + (n = (function (t, e) { + var n, + r, + i = e.d.length + i < 32 ? ((n = Math.ceil(i / 3)), (r = (1 / H(4, n)).toString())) : ((n = 16), (r = '2.3283064365386962890625e-10')) + ;((t.precision += n), (e = V(t, 1, e.times(r), new t(1)))) + for (var o = n; o--; ) { + var s = e.times(e) + e = s.times(s).minus(s).times(8).plus(1) + } + return ((t.precision -= n), e) + })(r, W(r, n))), + (r.precision = t), + (r.rounding = e), + T(2 == a || 3 == a ? n.neg() : n, t, e, !0)) + : new r(1) + : new r(NaN) + }), + (S.cubeRoot = S.cbrt = + function () { + var t, + e, + n, + r, + i, + o, + s, + a, + u, + f, + c = this, + h = c.constructor + if (!c.isFinite() || c.isZero()) return new h(c) + for ( + d = !1, + (o = c.s * b(c.s * c, 1 / 3)) && Math.abs(o) != 1 / 0 + ? (r = new h(o.toString())) + : ((n = M(c.d)), + (o = ((t = c.e) - n.length + 1) % 3) && (n += 1 == o || -2 == o ? '0' : '00'), + (o = b(n, 1 / 3)), + (t = p((t + 1) / 3) - (t % 3 == (t < 0 ? -1 : 2))), + ((r = new h((n = o == 1 / 0 ? '5e' + t : (n = o.toExponential()).slice(0, n.indexOf('e') + 1) + t))).s = c.s)), + s = (t = h.precision) + 3; + ; + ) + if ( + ((f = (u = (a = r).times(a).times(a)).plus(c)), + (r = I(f.plus(c).times(a), f.plus(u), s + 2, 1)), + M(a.d).slice(0, s) === (n = M(r.d)).slice(0, s)) + ) { + if ('9999' != (n = n.slice(s - 3, s + 1)) && (i || '4999' != n)) { + ;(+n && (+n.slice(1) || '5' != n.charAt(0))) || (T(r, t + 1, 1), (e = !r.times(r).times(r).eq(c))) + break + } + if (!i && (T(a, t + 1, 0), a.times(a).times(a).eq(c))) { + r = a + break + } + ;((s += 4), (i = 1)) + } + return ((d = !0), T(r, t, h.rounding, e)) + }), + (S.decimalPlaces = S.dp = + function () { + var t, + e = this.d, + n = NaN + if (e) { + if (((n = 7 * ((t = e.length - 1) - p(this.e / 7))), (t = e[t]))) for (; t % 10 == 0; t /= 10) n-- + n < 0 && (n = 0) + } + return n + }), + (S.dividedBy = S.div = + function (t) { + return I(this, new this.constructor(t)) + }), + (S.dividedToIntegerBy = S.divToInt = + function (t) { + var e = this.constructor + return T(I(this, new e(t), 0, 1, 1), e.precision, e.rounding) + }), + (S.equals = S.eq = + function (t) { + return 0 === this.cmp(t) + }), + (S.floor = function () { + return T(new this.constructor(this), this.e + 1, 3) + }), + (S.greaterThan = S.gt = + function (t) { + return this.cmp(t) > 0 + }), + (S.greaterThanOrEqualTo = S.gte = + function (t) { + var e = this.cmp(t) + return 1 == e || 0 === e + }), + (S.hyperbolicCosine = S.cosh = + function () { + var t, + e, + n, + r, + i, + o = this, + s = o.constructor, + a = new s(1) + if (!o.isFinite()) return new s(o.s ? 1 / 0 : NaN) + if (o.isZero()) return a + ;((n = s.precision), + (r = s.rounding), + (s.precision = n + Math.max(o.e, o.sd()) + 4), + (s.rounding = 1), + (i = o.d.length) < 32 ? (e = (1 / H(4, (t = Math.ceil(i / 3)))).toString()) : ((t = 16), (e = '2.3283064365386962890625e-10')), + (o = V(s, 1, o.times(e), new s(1), !0))) + for (var u, f = t, c = new s(8); f--; ) ((u = o.times(o)), (o = a.minus(u.times(c.minus(u.times(c)))))) + return T(o, (s.precision = n), (s.rounding = r), !0) + }), + (S.hyperbolicSine = S.sinh = + function () { + var t, + e, + n, + r, + i = this, + o = i.constructor + if (!i.isFinite() || i.isZero()) return new o(i) + if (((e = o.precision), (n = o.rounding), (o.precision = e + Math.max(i.e, i.sd()) + 4), (o.rounding = 1), (r = i.d.length) < 3)) + i = V(o, 2, i, i, !0) + else { + ;((t = (t = 1.4 * Math.sqrt(r)) > 16 ? 16 : 0 | t), (i = V(o, 2, (i = i.times(1 / H(5, t))), i, !0))) + for (var s, a = new o(5), u = new o(16), f = new o(20); t--; ) ((s = i.times(i)), (i = i.times(a.plus(s.times(u.times(s).plus(f)))))) + } + return ((o.precision = e), (o.rounding = n), T(i, e, n, !0)) + }), + (S.hyperbolicTangent = S.tanh = + function () { + var t, + e, + n = this, + r = n.constructor + return n.isFinite() + ? n.isZero() + ? new r(n) + : ((t = r.precision), + (e = r.rounding), + (r.precision = t + 7), + (r.rounding = 1), + I(n.sinh(), n.cosh(), (r.precision = t), (r.rounding = e))) + : new r(n.s) + }), + (S.inverseCosine = S.acos = + function () { + var t, + e = this, + n = e.constructor, + r = e.abs().cmp(1), + i = n.precision, + o = n.rounding + return -1 !== r + ? 0 === r + ? e.isNeg() + ? R(n, i, o) + : new n(0) + : new n(NaN) + : e.isZero() + ? R(n, i + 4, o).times(0.5) + : ((n.precision = i + 6), + (n.rounding = 1), + (e = e.asin()), + (t = R(n, i + 4, o).times(0.5)), + (n.precision = i), + (n.rounding = o), + t.minus(e)) + }), + (S.inverseHyperbolicCosine = S.acosh = + function () { + var t, + e, + n = this, + r = n.constructor + return n.lte(1) + ? new r(n.eq(1) ? 0 : NaN) + : n.isFinite() + ? ((t = r.precision), + (e = r.rounding), + (r.precision = t + Math.max(Math.abs(n.e), n.sd()) + 4), + (r.rounding = 1), + (d = !1), + (n = n.times(n).minus(1).sqrt().plus(n)), + (d = !0), + (r.precision = t), + (r.rounding = e), + n.ln()) + : new r(n) + }), + (S.inverseHyperbolicSine = S.asinh = + function () { + var t, + e, + n = this, + r = n.constructor + return !n.isFinite() || n.isZero() + ? new r(n) + : ((t = r.precision), + (e = r.rounding), + (r.precision = t + 2 * Math.max(Math.abs(n.e), n.sd()) + 6), + (r.rounding = 1), + (d = !1), + (n = n.times(n).plus(1).sqrt().plus(n)), + (d = !0), + (r.precision = t), + (r.rounding = e), + n.ln()) + }), + (S.inverseHyperbolicTangent = S.atanh = + function () { + var t, + e, + n, + r, + i = this, + o = i.constructor + return i.isFinite() + ? i.e >= 0 + ? new o(i.abs().eq(1) ? i.s / 0 : i.isZero() ? i : NaN) + : ((t = o.precision), + (e = o.rounding), + (r = i.sd()), + Math.max(r, t) < 2 * -i.e - 1 + ? T(new o(i), t, e, !0) + : ((o.precision = n = r - i.e), + (i = I(i.plus(1), new o(1).minus(i), n + t, 1)), + (o.precision = t + 4), + (o.rounding = 1), + (i = i.ln()), + (o.precision = t), + (o.rounding = e), + i.times(0.5))) + : new o(NaN) + }), + (S.inverseSine = S.asin = + function () { + var t, + e, + n, + r, + i = this, + o = i.constructor + return i.isZero() + ? new o(i) + : ((e = i.abs().cmp(1)), + (n = o.precision), + (r = o.rounding), + -1 !== e + ? 0 === e + ? (((t = R(o, n + 4, r).times(0.5)).s = i.s), t) + : new o(NaN) + : ((o.precision = n + 6), + (o.rounding = 1), + (i = i.div(new o(1).minus(i.times(i)).sqrt().plus(1)).atan()), + (o.precision = n), + (o.rounding = r), + i.times(2))) + }), + (S.inverseTangent = S.atan = + function () { + var t, + e, + n, + r, + i, + o, + s, + a, + u, + f = this, + c = f.constructor, + h = c.precision, + l = c.rounding + if (f.isFinite()) { + if (f.isZero()) return new c(f) + if (f.abs().eq(1) && h + 4 <= _) return (((s = R(c, h + 4, l).times(0.25)).s = f.s), s) + } else { + if (!f.s) return new c(NaN) + if (h + 4 <= _) return (((s = R(c, h + 4, l).times(0.5)).s = f.s), s) + } + for (c.precision = a = h + 10, c.rounding = 1, t = n = Math.min(28, (a / 7 + 2) | 0); t; --t) f = f.div(f.times(f).plus(1).sqrt().plus(1)) + for (d = !1, e = Math.ceil(a / 7), r = 1, u = f.times(f), s = new c(f), i = f; -1 !== t; ) + if (((i = i.times(u)), (o = s.minus(i.div((r += 2)))), (i = i.times(u)), void 0 !== (s = o.plus(i.div((r += 2)))).d[e])) + for (t = e; s.d[t] === o.d[t] && t--; ); + return (n && (s = s.times(2 << (n - 1))), (d = !0), T(s, (c.precision = h), (c.rounding = l), !0)) + }), + (S.isFinite = function () { + return !!this.d + }), + (S.isInteger = S.isInt = + function () { + return !!this.d && p(this.e / 7) > this.d.length - 2 + }), + (S.isNaN = function () { + return !this.s + }), + (S.isNegative = S.isNeg = + function () { + return this.s < 0 + }), + (S.isPositive = S.isPos = + function () { + return this.s > 0 + }), + (S.isZero = function () { + return !!this.d && 0 === this.d[0] + }), + (S.lessThan = S.lt = + function (t) { + return this.cmp(t) < 0 + }), + (S.lessThanOrEqualTo = S.lte = + function (t) { + return this.cmp(t) < 1 + }), + (S.logarithm = S.log = + function (t) { + var e, + n, + r, + i, + o, + s, + a, + u, + f = this.constructor, + c = f.precision, + h = f.rounding + if (null == t) ((t = new f(10)), (e = !0)) + else { + if (((n = (t = new f(t)).d), t.s < 0 || !n || !n[0] || t.eq(1))) return new f(NaN) + e = t.eq(10) + } + if (((n = this.d), this.s < 0 || !n || !n[0] || this.eq(1))) return new f(n && !n[0] ? -1 / 0 : 1 != this.s ? NaN : n ? 0 : 1 / 0) + if (e) + if (n.length > 1) o = !0 + else { + for (i = n[0]; i % 10 == 0; ) i /= 10 + o = 1 !== i + } + if (((d = !1), (s = j(this, (a = c + 5))), (r = e ? N(f, a + 10) : j(t, a)), A((u = I(s, r, a, 1)).d, (i = c), h))) + do { + if (((s = j(this, (a += 10))), (r = e ? N(f, a + 10) : j(t, a)), (u = I(s, r, a, 1)), !o)) { + ;+M(u.d).slice(i + 1, i + 15) + 1 == 1e14 && (u = T(u, c + 1, 0)) + break + } + } while (A(u.d, (i += 10), h)) + return ((d = !0), T(u, c, h)) + }), + (S.minus = S.sub = + function (t) { + var e, + n, + r, + i, + o, + s, + a, + u, + f, + c, + h, + l, + b = this, + g = b.constructor + if (((t = new g(t)), !b.d || !t.d)) + return (b.s && t.s ? (b.d ? (t.s = -t.s) : (t = new g(t.d || b.s !== t.s ? b : NaN))) : (t = new g(NaN)), t) + if (b.s != t.s) return ((t.s = -t.s), b.plus(t)) + if (((f = b.d), (l = t.d), (a = g.precision), (u = g.rounding), !f[0] || !l[0])) { + if (l[0]) t.s = -t.s + else { + if (!f[0]) return new g(3 === u ? -0 : 0) + t = new g(b) + } + return d ? T(t, a, u) : t + } + if (((n = p(t.e / 7)), (c = p(b.e / 7)), (f = f.slice()), (o = c - n))) { + for ( + (h = o < 0) ? ((e = f), (o = -o), (s = l.length)) : ((e = l), (n = c), (s = f.length)), + o > (r = Math.max(Math.ceil(a / 7), s) + 2) && ((o = r), (e.length = 1)), + e.reverse(), + r = o; + r--; + ) + e.push(0) + e.reverse() + } else { + for ((h = (r = f.length) < (s = l.length)) && (s = r), r = 0; r < s; r++) + if (f[r] != l[r]) { + h = f[r] < l[r] + break + } + o = 0 + } + for (h && ((e = f), (f = l), (l = e), (t.s = -t.s)), s = f.length, r = l.length - s; r > 0; --r) f[s++] = 0 + for (r = l.length; r > o; ) { + if (f[--r] < l[r]) { + for (i = r; i && 0 === f[--i]; ) f[i] = 1e7 - 1 + ;(--f[i], (f[r] += 1e7)) + } + f[r] -= l[r] + } + for (; 0 === f[--s]; ) f.pop() + for (; 0 === f[0]; f.shift()) --n + return f[0] ? ((t.d = f), (t.e = L(f, n)), d ? T(t, a, u) : t) : new g(3 === u ? -0 : 0) + }), + (S.modulo = S.mod = + function (t) { + var e, + n = this, + r = n.constructor + return ( + (t = new r(t)), + !n.d || !t.s || (t.d && !t.d[0]) + ? new r(NaN) + : !t.d || (n.d && !n.d[0]) + ? T(new r(n), r.precision, r.rounding) + : ((d = !1), + 9 == r.modulo ? ((e = I(n, t.abs(), 0, 3, 1)).s *= t.s) : (e = I(n, t, 0, r.modulo, 1)), + (e = e.times(t)), + (d = !0), + n.minus(e)) + ) + }), + (S.naturalExponential = S.exp = + function () { + return F(this) + }), + (S.naturalLogarithm = S.ln = + function () { + return j(this) + }), + (S.negated = S.neg = + function () { + var t = new this.constructor(this) + return ((t.s = -t.s), T(t)) + }), + (S.plus = S.add = + function (t) { + var e, + n, + r, + i, + o, + s, + a, + u, + f, + c, + h = this, + l = h.constructor + if (((t = new l(t)), !h.d || !t.d)) return (h.s && t.s ? h.d || (t = new l(t.d || h.s === t.s ? h : NaN)) : (t = new l(NaN)), t) + if (h.s != t.s) return ((t.s = -t.s), h.minus(t)) + if (((f = h.d), (c = t.d), (a = l.precision), (u = l.rounding), !f[0] || !c[0])) return (c[0] || (t = new l(h)), d ? T(t, a, u) : t) + if (((o = p(h.e / 7)), (r = p(t.e / 7)), (f = f.slice()), (i = o - r))) { + for ( + i < 0 ? ((n = f), (i = -i), (s = c.length)) : ((n = c), (r = o), (s = f.length)), + i > (s = (o = Math.ceil(a / 7)) > s ? o + 1 : s + 1) && ((i = s), (n.length = 1)), + n.reverse(); + i--; + ) + n.push(0) + n.reverse() + } + for ((s = f.length) - (i = c.length) < 0 && ((i = s), (n = c), (c = f), (f = n)), e = 0; i; ) + ((e = ((f[--i] = f[i] + c[i] + e) / 1e7) | 0), (f[i] %= 1e7)) + for (e && (f.unshift(e), ++r), s = f.length; 0 == f[--s]; ) f.pop() + return ((t.d = f), (t.e = L(f, r)), d ? T(t, a, u) : t) + }), + (S.precision = S.sd = + function (t) { + var e, + n = this + if (void 0 !== t && t !== !!t && 1 !== t && 0 !== t) throw Error(l + t) + return (n.d ? ((e = O(n.d)), t && n.e + 1 > e && (e = n.e + 1)) : (e = NaN), e) + }), + (S.round = function () { + var t = this, + e = t.constructor + return T(new e(t), t.e + 1, e.rounding) + }), + (S.sine = S.sin = + function () { + var t, + e, + n = this, + r = n.constructor + return n.isFinite() + ? n.isZero() + ? new r(n) + : ((t = r.precision), + (e = r.rounding), + (r.precision = t + Math.max(n.e, n.sd()) + 7), + (r.rounding = 1), + (n = (function (t, e) { + var n, + r = e.d.length + if (r < 3) return V(t, 2, e, e) + ;((n = (n = 1.4 * Math.sqrt(r)) > 16 ? 16 : 0 | n), (e = e.times(1 / H(5, n))), (e = V(t, 2, e, e))) + for (var i, o = new t(5), s = new t(16), a = new t(20); n--; ) + ((i = e.times(e)), (e = e.times(o.plus(i.times(s.times(i).minus(a)))))) + return e + })(r, W(r, n))), + (r.precision = t), + (r.rounding = e), + T(a > 2 ? n.neg() : n, t, e, !0)) + : new r(NaN) + }), + (S.squareRoot = S.sqrt = + function () { + var t, + e, + n, + r, + i, + o, + s = this, + a = s.d, + u = s.e, + f = s.s, + c = s.constructor + if (1 !== f || !a || !a[0]) return new c(!f || (f < 0 && (!a || a[0])) ? NaN : a ? s : 1 / 0) + for ( + d = !1, + 0 == (f = Math.sqrt(+s)) || f == 1 / 0 + ? (((e = M(a)).length + u) % 2 == 0 && (e += '0'), + (f = Math.sqrt(e)), + (u = p((u + 1) / 2) - (u < 0 || u % 2)), + (r = new c((e = f == 1 / 0 ? '1e' + u : (e = f.toExponential()).slice(0, e.indexOf('e') + 1) + u)))) + : (r = new c(f.toString())), + n = (u = c.precision) + 3; + ; + ) + if (((r = (o = r).plus(I(s, o, n + 2, 1)).times(0.5)), M(o.d).slice(0, n) === (e = M(r.d)).slice(0, n))) { + if ('9999' != (e = e.slice(n - 3, n + 1)) && (i || '4999' != e)) { + ;(+e && (+e.slice(1) || '5' != e.charAt(0))) || (T(r, u + 1, 1), (t = !r.times(r).eq(s))) + break + } + if (!i && (T(o, u + 1, 0), o.times(o).eq(s))) { + r = o + break + } + ;((n += 4), (i = 1)) + } + return ((d = !0), T(r, u, c.rounding, t)) + }), + (S.tangent = S.tan = + function () { + var t, + e, + n = this, + r = n.constructor + return n.isFinite() + ? n.isZero() + ? new r(n) + : ((t = r.precision), + (e = r.rounding), + (r.precision = t + 10), + (r.rounding = 1), + ((n = n.sin()).s = 1), + (n = I(n, new r(1).minus(n.times(n)).sqrt(), t + 10, 0)), + (r.precision = t), + (r.rounding = e), + T(2 == a || 4 == a ? n.neg() : n, t, e, !0)) + : new r(NaN) + }), + (S.times = S.mul = + function (t) { + var e, + n, + r, + i, + o, + s, + a, + u, + f, + c = this, + h = c.constructor, + l = c.d, + b = (t = new h(t)).d + if (((t.s *= c.s), !(l && l[0] && b && b[0]))) + return new h(!t.s || (l && !l[0] && !b) || (b && !b[0] && !l) ? NaN : l && b ? 0 * t.s : t.s / 0) + for ( + n = p(c.e / 7) + p(t.e / 7), + (u = l.length) < (f = b.length) && ((o = l), (l = b), (b = o), (s = u), (u = f), (f = s)), + o = [], + r = s = u + f; + r--; + ) + o.push(0) + for (r = f; --r >= 0; ) { + for (e = 0, i = u + r; i > r; ) ((a = o[i] + b[r] * l[i - r - 1] + e), (o[i--] = (a % 1e7) | 0), (e = (a / 1e7) | 0)) + o[i] = ((o[i] + e) % 1e7) | 0 + } + for (; !o[--s]; ) o.pop() + return (e ? ++n : o.shift(), (t.d = o), (t.e = L(o, n)), d ? T(t, h.precision, h.rounding) : t) + }), + (S.toBinary = function (t, e) { + return Z(this, 2, t, e) + }), + (S.toDecimalPlaces = S.toDP = + function (t, e) { + var n = this, + r = n.constructor + return ((n = new r(n)), void 0 === t ? n : (E(t, 0, 1e9), void 0 === e ? (e = r.rounding) : E(e, 0, 8), T(n, t + n.e + 1, e))) + }), + (S.toExponential = function (t, e) { + var n, + r = this, + i = r.constructor + return ( + void 0 === t + ? (n = k(r, !0)) + : (E(t, 0, 1e9), void 0 === e ? (e = i.rounding) : E(e, 0, 8), (n = k((r = T(new i(r), t + 1, e)), !0, t + 1))), + r.isNeg() && !r.isZero() ? '-' + n : n + ) + }), + (S.toFixed = function (t, e) { + var n, + r, + i = this, + o = i.constructor + return ( + void 0 === t + ? (n = k(i)) + : (E(t, 0, 1e9), void 0 === e ? (e = o.rounding) : E(e, 0, 8), (n = k((r = T(new o(i), t + i.e + 1, e)), !1, t + r.e + 1))), + i.isNeg() && !i.isZero() ? '-' + n : n + ) + }), + (S.toFraction = function (t) { + var e, + n, + r, + i, + o, + s, + a, + u, + f, + c, + h, + p, + g = this, + v = g.d, + m = g.constructor + if (!v) return new m(g) + if ( + ((f = n = new m(1)), + (r = u = new m(0)), + (s = (o = (e = new m(r)).e = O(v) - g.e - 1) % 7), + (e.d[0] = b(10, s < 0 ? 7 + s : s)), + null == t) + ) + t = o > 0 ? e : f + else { + if (!(a = new m(t)).isInt() || a.lt(f)) throw Error(l + a) + t = a.gt(e) ? (o > 0 ? e : f) : a + } + for ( + d = !1, a = new m(M(v)), c = m.precision, m.precision = o = 7 * v.length * 2; + (h = I(a, e, 0, 1, 1)), 1 != (i = n.plus(h.times(r))).cmp(t); + ) + ((n = r), (r = i), (i = f), (f = u.plus(h.times(i))), (u = i), (i = e), (e = a.minus(h.times(i))), (a = i)) + return ( + (i = I(t.minus(n), r, 0, 1, 1)), + (u = u.plus(i.times(f))), + (n = n.plus(i.times(r))), + (u.s = f.s = g.s), + (p = + I(f, r, o, 1) + .minus(g) + .abs() + .cmp(I(u, n, o, 1).minus(g).abs()) < 1 + ? [f, r] + : [u, n]), + (m.precision = c), + (d = !0), + p + ) + }), + (S.toHexadecimal = S.toHex = + function (t, e) { + return Z(this, 16, t, e) + }), + (S.toNearest = function (t, e) { + var n = this, + r = n.constructor + if (((n = new r(n)), null == t)) { + if (!n.d) return n + ;((t = new r(1)), (e = r.rounding)) + } else { + if (((t = new r(t)), void 0 === e ? (e = r.rounding) : E(e, 0, 8), !n.d)) return t.s ? n : t + if (!t.d) return (t.s && (t.s = n.s), t) + } + return (t.d[0] ? ((d = !1), (n = I(n, t, 0, e, 1).times(t)), (d = !0), T(n)) : ((t.s = n.s), (n = t)), n) + }), + (S.toNumber = function () { + return +this + }), + (S.toOctal = function (t, e) { + return Z(this, 8, t, e) + }), + (S.toPower = S.pow = + function (t) { + var e, + n, + r, + i, + o, + s, + a = this, + u = a.constructor, + f = +(t = new u(t)) + if (!(a.d && t.d && a.d[0] && t.d[0])) return new u(b(+a, f)) + if ((a = new u(a)).eq(1)) return a + if (((r = u.precision), (o = u.rounding), t.eq(1))) return T(a, r, o) + if ((e = p(t.e / 7)) >= t.d.length - 1 && (n = f < 0 ? -f : f) <= 9007199254740991) + return ((i = z(u, a, n, r)), t.s < 0 ? new u(1).div(i) : T(i, r, o)) + if ((s = a.s) < 0) { + if (e < t.d.length - 1) return new u(NaN) + if ((0 == (1 & t.d[e]) && (s = 1), 0 == a.e && 1 == a.d[0] && 1 == a.d.length)) return ((a.s = s), a) + } + return (e = 0 != (n = b(+a, f)) && isFinite(n) ? new u(n + '').e : p(f * (Math.log('0.' + M(a.d)) / Math.LN10 + a.e + 1))) > u.maxE + 1 || + e < u.minE - 1 + ? new u(e > 0 ? s / 0 : 0) + : ((d = !1), + (u.rounding = a.s = 1), + (n = Math.min(12, (e + '').length)), + (i = F(t.times(j(a, r + n)), r)).d && + A((i = T(i, r + 5, 1)).d, r, o) && + ((e = r + 10), +M((i = T(F(t.times(j(a, e + n)), e), e + 5, 1)).d).slice(r + 1, r + 15) + 1 == 1e14 && (i = T(i, r + 1, 0))), + (i.s = s), + (d = !0), + (u.rounding = o), + T(i, r, o)) + }), + (S.toPrecision = function (t, e) { + var n, + r = this, + i = r.constructor + return ( + void 0 === t + ? (n = k(r, r.e <= i.toExpNeg || r.e >= i.toExpPos)) + : (E(t, 1, 1e9), void 0 === e ? (e = i.rounding) : E(e, 0, 8), (n = k((r = T(new i(r), t, e)), t <= r.e || r.e <= i.toExpNeg, t))), + r.isNeg() && !r.isZero() ? '-' + n : n + ) + }), + (S.toSignificantDigits = S.toSD = + function (t, e) { + var n = this.constructor + return ( + void 0 === t ? ((t = n.precision), (e = n.rounding)) : (E(t, 1, 1e9), void 0 === e ? (e = n.rounding) : E(e, 0, 8)), + T(new n(this), t, e) + ) + }), + (S.toString = function () { + var t = this, + e = t.constructor, + n = k(t, t.e <= e.toExpNeg || t.e >= e.toExpPos) + return t.isNeg() && !t.isZero() ? '-' + n : n + }), + (S.truncated = S.trunc = + function () { + return T(new this.constructor(this), this.e + 1, 1) + }), + (S.valueOf = S.toJSON = + function () { + var t = this, + e = t.constructor, + n = k(t, t.e <= e.toExpNeg || t.e >= e.toExpPos) + return t.isNeg() ? '-' + n : n + })) + var I = (function () { + function t(t, e, n) { + var r, + i = 0, + o = t.length + for (t = t.slice(); o--; ) ((r = t[o] * e + i), (t[o] = (r % n) | 0), (i = (r / n) | 0)) + return (i && t.unshift(i), t) + } + function e(t, e, n, r) { + var i, o + if (n != r) o = n > r ? 1 : -1 + else + for (i = o = 0; i < n; i++) + if (t[i] != e[i]) { + o = t[i] > e[i] ? 1 : -1 + break + } + return o + } + function n(t, e, n, r) { + for (var i = 0; n--; ) ((t[n] -= i), (i = t[n] < e[n] ? 1 : 0), (t[n] = i * r + t[n] - e[n])) + for (; !t[0] && t.length > 1; ) t.shift() + } + return function (r, i, o, a, u, f) { + var c, + h, + d, + l, + b, + g, + v, + m, + y, + w, + _, + S, + M, + E, + A, + x, + I, + k, + L, + N, + R = r.constructor, + O = r.s == i.s ? 1 : -1, + B = r.d, + z = i.d + if (!(B && B[0] && z && z[0])) return new R(r.s && i.s && (B ? !z || B[0] != z[0] : z) ? ((B && 0 == B[0]) || !z ? 0 * O : O / 0) : NaN) + for ( + f ? ((b = 1), (h = r.e - i.e)) : ((f = 1e7), (b = 7), (h = p(r.e / b) - p(i.e / b))), + L = z.length, + I = B.length, + w = (y = new R(O)).d = [], + d = 0; + z[d] == (B[d] || 0); + d++ + ); + if ((z[d] > (B[d] || 0) && h--, null == o ? ((E = o = R.precision), (a = R.rounding)) : (E = u ? o + (r.e - i.e) + 1 : o), E < 0)) + (w.push(1), (g = !0)) + else { + if (((E = (E / b + 2) | 0), (d = 0), 1 == L)) { + for (l = 0, z = z[0], E++; (d < I || l) && E--; d++) ((A = l * f + (B[d] || 0)), (w[d] = (A / z) | 0), (l = (A % z) | 0)) + g = l || d < I + } else { + for ( + (l = (f / (z[0] + 1)) | 0) > 1 && ((z = t(z, l, f)), (B = t(B, l, f)), (L = z.length), (I = B.length)), + x = L, + S = (_ = B.slice(0, L)).length; + S < L; + ) + _[S++] = 0 + ;((N = z.slice()).unshift(0), (k = z[0]), z[1] >= f / 2 && ++k) + do { + ;((l = 0), + (c = e(z, _, L, S)) < 0 + ? ((M = _[0]), + L != S && (M = M * f + (_[1] || 0)), + (l = (M / k) | 0) > 1 + ? (l >= f && (l = f - 1), + 1 == (c = e((v = t(z, l, f)), _, (m = v.length), (S = _.length))) && (l--, n(v, L < m ? N : z, m, f))) + : (0 == l && (c = l = 1), (v = z.slice())), + (m = v.length) < S && v.unshift(0), + n(_, v, S, f), + -1 == c && (c = e(z, _, L, (S = _.length))) < 1 && (l++, n(_, L < S ? N : z, S, f)), + (S = _.length)) + : 0 === c && (l++, (_ = [0])), + (w[d++] = l), + c && _[0] ? (_[S++] = B[x] || 0) : ((_ = [B[x]]), (S = 1))) + } while ((x++ < I || void 0 !== _[0]) && E--) + g = void 0 !== _[0] + } + w[0] || w.shift() + } + if (1 == b) ((y.e = h), (s = g)) + else { + for (d = 1, l = w[0]; l >= 10; l /= 10) d++ + ;((y.e = d + h * b - 1), T(y, u ? o + y.e + 1 : o, a, g)) + } + return y + } + })() + function T(t, e, n, r) { + var i, + o, + s, + a, + u, + f, + c, + h, + l, + p = t.constructor + t: if (null != e) { + if (!(h = t.d)) return t + for (i = 1, a = h[0]; a >= 10; a /= 10) i++ + if ((o = e - i) < 0) ((o += 7), (s = e), (u = (((c = h[(l = 0)]) / b(10, i - s - 1)) % 10) | 0)) + else if ((l = Math.ceil((o + 1) / 7)) >= (a = h.length)) { + if (!r) break t + for (; a++ <= l; ) h.push(0) + ;((c = u = 0), (i = 1), (s = (o %= 7) - 7 + 1)) + } else { + for (c = a = h[l], i = 1; a >= 10; a /= 10) i++ + u = (s = (o %= 7) - 7 + i) < 0 ? 0 : ((c / b(10, i - s - 1)) % 10) | 0 + } + if ( + ((r = r || e < 0 || void 0 !== h[l + 1] || (s < 0 ? c : c % b(10, i - s - 1))), + (f = + n < 4 + ? (u || r) && (0 == n || n == (t.s < 0 ? 3 : 2)) + : u > 5 || + (5 == u && (4 == n || r || (6 == n && ((o > 0 ? (s > 0 ? c / b(10, i - s) : 0) : h[l - 1]) % 10) & 1) || n == (t.s < 0 ? 8 : 7)))), + e < 1 || !h[0]) + ) + return ((h.length = 0), f ? ((e -= t.e + 1), (h[0] = b(10, (7 - (e % 7)) % 7)), (t.e = -e || 0)) : (h[0] = t.e = 0), t) + if ( + (0 == o + ? ((h.length = l), (a = 1), l--) + : ((h.length = l + 1), (a = b(10, 7 - o)), (h[l] = s > 0 ? (((c / b(10, i - s)) % b(10, s)) | 0) * a : 0)), + f) + ) + for (;;) { + if (0 == l) { + for (o = 1, s = h[0]; s >= 10; s /= 10) o++ + for (s = h[0] += a, a = 1; s >= 10; s /= 10) a++ + o != a && (t.e++, 1e7 == h[0] && (h[0] = 1)) + break + } + if (((h[l] += a), 1e7 != h[l])) break + ;((h[l--] = 0), (a = 1)) + } + for (o = h.length; 0 === h[--o]; ) h.pop() + } + return (d && (t.e > p.maxE ? ((t.d = null), (t.e = NaN)) : t.e < p.minE && ((t.e = 0), (t.d = [0]))), t) + } + function k(t, e, n) { + if (!t.isFinite()) return C(t) + var r, + i = t.e, + o = M(t.d), + s = o.length + return ( + e + ? (n && (r = n - s) > 0 ? (o = o.charAt(0) + '.' + o.slice(1) + B(r)) : s > 1 && (o = o.charAt(0) + '.' + o.slice(1)), + (o = o + (t.e < 0 ? 'e' : 'e+') + t.e)) + : i < 0 + ? ((o = '0.' + B(-i - 1) + o), n && (r = n - s) > 0 && (o += B(r))) + : i >= s + ? ((o += B(i + 1 - s)), n && (r = n - i - 1) > 0 && (o = o + '.' + B(r))) + : ((r = i + 1) < s && (o = o.slice(0, r) + '.' + o.slice(r)), n && (r = n - s) > 0 && (i + 1 === s && (o += '.'), (o += B(r)))), + o + ) + } + function L(t, e) { + var n = t[0] + for (e *= 7; n >= 10; n /= 10) e++ + return e + } + function N(t, e, n) { + if (e > w) throw ((d = !0), n && (t.precision = n), Error('[DecimalError] Precision limit exceeded')) + return T(new t(f), e, 1, !0) + } + function R(t, e, n) { + if (e > _) throw Error('[DecimalError] Precision limit exceeded') + return T(new t(c), e, n, !0) + } + function O(t) { + var e = t.length - 1, + n = 7 * e + 1 + if ((e = t[e])) { + for (; e % 10 == 0; e /= 10) n-- + for (e = t[0]; e >= 10; e /= 10) n++ + } + return n + } + function B(t) { + for (var e = ''; t--; ) e += '0' + return e + } + function z(t, e, n, r) { + var i, + o = new t(1), + s = Math.ceil(r / 7 + 4) + for (d = !1; ; ) { + if ((n % 2 && Y((o = o.times(e)).d, s) && (i = !0), 0 === (n = p(n / 2)))) { + ;((n = o.d.length - 1), i && 0 === o.d[n] && ++o.d[n]) + break + } + Y((e = e.times(e)).d, s) + } + return ((d = !0), o) + } + function P(t) { + return 1 & t.d[t.d.length - 1] + } + function U(t, e, n) { + for (var r, i = new t(e[0]), o = 0; ++o < e.length; ) { + if (!(r = new t(e[o])).s) { + i = r + break + } + i[n](r) && (i = r) + } + return i + } + function F(t, e) { + var n, + r, + i, + o, + s, + a, + u, + f = 0, + c = 0, + h = 0, + l = t.constructor, + p = l.rounding, + g = l.precision + if (!t.d || !t.d[0] || t.e > 17) return new l(t.d ? (t.d[0] ? (t.s < 0 ? 0 : 1 / 0) : 1) : t.s ? (t.s < 0 ? 0 : t) : NaN) + for (null == e ? ((d = !1), (u = g)) : (u = e), a = new l(0.03125); t.e > -2; ) ((t = t.times(a)), (h += 5)) + for (u += r = ((Math.log(b(2, h)) / Math.LN10) * 2 + 5) | 0, n = o = s = new l(1), l.precision = u; ; ) { + if (((o = T(o.times(t), u, 1)), (n = n.times(++c)), M((a = s.plus(I(o, n, u, 1))).d).slice(0, u) === M(s.d).slice(0, u))) { + for (i = h; i--; ) s = T(s.times(s), u, 1) + if (null != e) return ((l.precision = g), s) + if (!(f < 3 && A(s.d, u - r, p, f))) return T(s, (l.precision = g), p, (d = !0)) + ;((l.precision = u += 10), (n = o = a = new l(1)), (c = 0), f++) + } + s = a + } + } + function j(t, e) { + var n, + r, + i, + o, + s, + a, + u, + f, + c, + h, + l, + p = 1, + b = t, + g = b.d, + v = b.constructor, + m = v.rounding, + y = v.precision + if (b.s < 0 || !g || !g[0] || (!b.e && 1 == g[0] && 1 == g.length)) return new v(g && !g[0] ? -1 / 0 : 1 != b.s ? NaN : g ? 0 : b) + if ((null == e ? ((d = !1), (c = y)) : (c = e), (v.precision = c += 10), (r = (n = M(g)).charAt(0)), !(Math.abs((o = b.e)) < 15e14))) + return ( + (f = N(v, c + 2, y).times(o + '')), + (b = j(new v(r + '.' + n.slice(1)), c - 10).plus(f)), + (v.precision = y), + null == e ? T(b, y, m, (d = !0)) : b + ) + for (; (r < 7 && 1 != r) || (1 == r && n.charAt(1) > 3); ) ((r = (n = M((b = b.times(t)).d)).charAt(0)), p++) + for ( + o = b.e, + r > 1 ? ((b = new v('0.' + n)), o++) : (b = new v(r + '.' + n.slice(1))), + h = b, + u = s = b = I(b.minus(1), b.plus(1), c, 1), + l = T(b.times(b), c, 1), + i = 3; + ; + ) { + if (((s = T(s.times(l), c, 1)), M((f = u.plus(I(s, new v(i), c, 1))).d).slice(0, c) === M(u.d).slice(0, c))) { + if (((u = u.times(2)), 0 !== o && (u = u.plus(N(v, c + 2, y).times(o + ''))), (u = I(u, new v(p), c, 1)), null != e)) + return ((v.precision = y), u) + if (!A(u.d, c - 10, m, a)) return T(u, (v.precision = y), m, (d = !0)) + ;((v.precision = c += 10), (f = s = b = I(h.minus(1), h.plus(1), c, 1)), (l = T(b.times(b), c, 1)), (i = a = 1)) + } + ;((u = f), (i += 2)) + } + } + function C(t) { + return String((t.s * t.s) / 0) + } + function D(t, e) { + var n, r, i + for ( + (n = e.indexOf('.')) > -1 && (e = e.replace('.', '')), + (r = e.search(/e/i)) > 0 ? (n < 0 && (n = r), (n += +e.slice(r + 1)), (e = e.substring(0, r))) : n < 0 && (n = e.length), + r = 0; + 48 === e.charCodeAt(r); + r++ + ); + for (i = e.length; 48 === e.charCodeAt(i - 1); --i); + if ((e = e.slice(r, i))) { + if (((i -= r), (t.e = n = n - r - 1), (t.d = []), (r = (n + 1) % 7), n < 0 && (r += 7), r < i)) { + for (r && t.d.push(+e.slice(0, r)), i -= 7; r < i; ) t.d.push(+e.slice(r, (r += 7))) + r = 7 - (e = e.slice(r)).length + } else r -= i + for (; r--; ) e += '0' + ;(t.d.push(+e), d && (t.e > t.constructor.maxE ? ((t.d = null), (t.e = NaN)) : t.e < t.constructor.minE && ((t.e = 0), (t.d = [0])))) + } else ((t.e = 0), (t.d = [0])) + return t + } + function q(t, e) { + var n, r, i, s, a, u, f, c, h + if ('Infinity' === e || 'NaN' === e) return (+e || (t.s = NaN), (t.e = NaN), (t.d = null), t) + if (v.test(e)) ((n = 16), (e = e.toLowerCase())) + else if (g.test(e)) n = 2 + else { + if (!m.test(e)) throw Error(l + e) + n = 8 + } + for ( + (s = e.search(/p/i)) > 0 ? ((f = +e.slice(s + 1)), (e = e.substring(2, s))) : (e = e.slice(2)), + a = (s = e.indexOf('.')) >= 0, + r = t.constructor, + a && ((s = (u = (e = e.replace('.', '')).length) - s), (i = z(r, new r(n), s, 2 * s))), + s = h = (c = x(e, n, 1e7)).length - 1; + 0 === c[s]; + --s + ) + c.pop() + return s < 0 + ? new r(0 * t.s) + : ((t.e = L(c, h)), + (t.d = c), + (d = !1), + a && (t = I(t, i, 4 * u)), + f && (t = t.times(Math.abs(f) < 54 ? b(2, f) : o.pow(2, f))), + (d = !0), + t) + } + function V(t, e, n, r, i) { + var o, + s, + a, + u, + f = t.precision, + c = Math.ceil(f / 7) + for (d = !1, u = n.times(n), a = new t(r); ; ) { + if ( + ((s = I(a.times(u), new t(e++ * e++), f, 1)), + (a = i ? r.plus(s) : r.minus(s)), + (r = I(s.times(u), new t(e++ * e++), f, 1)), + void 0 !== (s = a.plus(r)).d[c]) + ) { + for (o = c; s.d[o] === a.d[o] && o--; ); + if (-1 == o) break + } + ;((o = a), (a = r), (r = s), (s = o)) + } + return ((d = !0), (s.d.length = c + 1), s) + } + function H(t, e) { + for (var n = t; --e; ) n *= t + return n + } + function W(t, e) { + var n, + r = e.s < 0, + i = R(t, t.precision, 1), + o = i.times(0.5) + if ((e = e.abs()).lte(o)) return ((a = r ? 4 : 1), e) + if ((n = e.divToInt(i)).isZero()) a = r ? 3 : 2 + else { + if ((e = e.minus(n.times(i))).lte(o)) return ((a = P(n) ? (r ? 2 : 3) : r ? 4 : 1), e) + a = P(n) ? (r ? 1 : 4) : r ? 3 : 2 + } + return e.minus(i).abs() + } + function Z(t, e, n, r) { + var i, + o, + a, + f, + c, + h, + d, + l, + p, + b = t.constructor, + g = void 0 !== n + if ((g ? (E(n, 1, 1e9), void 0 === r ? (r = b.rounding) : E(r, 0, 8)) : ((n = b.precision), (r = b.rounding)), t.isFinite())) { + for ( + g ? ((i = 2), 16 == e ? (n = 4 * n - 3) : 8 == e && (n = 3 * n - 2)) : (i = e), + (a = (d = k(t)).indexOf('.')) >= 0 && + ((d = d.replace('.', '')), ((p = new b(1)).e = d.length - a), (p.d = x(k(p), 10, i)), (p.e = p.d.length)), + o = c = (l = x(d, 10, i)).length; + 0 == l[--c]; + ) + l.pop() + if (l[0]) { + if ( + (a < 0 ? o-- : (((t = new b(t)).d = l), (t.e = o), (l = (t = I(t, p, n, r, 0, i)).d), (o = t.e), (h = s)), + (a = l[n]), + (f = i / 2), + (h = h || void 0 !== l[n + 1]), + (h = + r < 4 + ? (void 0 !== a || h) && (0 === r || r === (t.s < 0 ? 3 : 2)) + : a > f || (a === f && (4 === r || h || (6 === r && 1 & l[n - 1]) || r === (t.s < 0 ? 8 : 7)))), + (l.length = n), + h) + ) + for (; ++l[--n] > i - 1; ) ((l[n] = 0), n || (++o, l.unshift(1))) + for (c = l.length; !l[c - 1]; --c); + for (a = 0, d = ''; a < c; a++) d += u.charAt(l[a]) + if (g) { + if (c > 1) + if (16 == e || 8 == e) { + for (a = 16 == e ? 4 : 3, --c; c % a; c++) d += '0' + for (c = (l = x(d, i, e)).length; !l[c - 1]; --c); + for (a = 1, d = '1.'; a < c; a++) d += u.charAt(l[a]) + } else d = d.charAt(0) + '.' + d.slice(1) + d = d + (o < 0 ? 'p' : 'p+') + o + } else if (o < 0) { + for (; ++o; ) d = '0' + d + d = '0.' + d + } else if (++o > c) for (o -= c; o--; ) d += '0' + else o < c && (d = d.slice(0, o) + '.' + d.slice(o)) + } else d = g ? '0p+0' : '0' + d = (16 == e ? '0x' : 2 == e ? '0b' : 8 == e ? '0o' : '') + d + } else d = C(t) + return t.s < 0 ? '-' + d : d + } + function Y(t, e) { + if (t.length > e) return ((t.length = e), !0) + } + function J(t) { + return new this(t).abs() + } + function K(t) { + return new this(t).acos() + } + function $(t) { + return new this(t).acosh() + } + function X(t, e) { + return new this(t).plus(e) + } + function G(t) { + return new this(t).asin() + } + function Q(t) { + return new this(t).asinh() + } + function tt(t) { + return new this(t).atan() + } + function et(t) { + return new this(t).atanh() + } + function nt(t, e) { + ;((t = new this(t)), (e = new this(e))) + var n, + r = this.precision, + i = this.rounding, + o = r + 4 + return ( + t.s && e.s + ? t.d || e.d + ? !e.d || t.isZero() + ? ((n = e.s < 0 ? R(this, r, i) : new this(0)).s = t.s) + : !t.d || e.isZero() + ? ((n = R(this, o, 1).times(0.5)).s = t.s) + : e.s < 0 + ? ((this.precision = o), + (this.rounding = 1), + (n = this.atan(I(t, e, o, 1))), + (e = R(this, o, 1)), + (this.precision = r), + (this.rounding = i), + (n = t.s < 0 ? n.minus(e) : n.plus(e))) + : (n = this.atan(I(t, e, o, 1))) + : ((n = R(this, o, 1).times(e.s > 0 ? 0.25 : 0.75)).s = t.s) + : (n = new this(NaN)), + n + ) + } + function rt(t) { + return new this(t).cbrt() + } + function it(t) { + return T((t = new this(t)), t.e + 1, 2) + } + function ot(t) { + if (!t || 'object' != typeof t) throw Error('[DecimalError] Object expected') + var e, + n, + r, + i = !0 === t.defaults, + o = ['precision', 1, 1e9, 'rounding', 0, 8, 'toExpNeg', -9e15, 0, 'toExpPos', 0, 9e15, 'maxE', 0, 9e15, 'minE', -9e15, 0, 'modulo', 0, 9] + for (e = 0; e < o.length; e += 3) + if (((n = o[e]), i && (this[n] = h[n]), void 0 !== (r = t[n]))) { + if (!(p(r) === r && r >= o[e + 1] && r <= o[e + 2])) throw Error(l + n + ': ' + r) + this[n] = r + } + if (((n = 'crypto'), i && (this[n] = h[n]), void 0 !== (r = t[n]))) { + if (!0 !== r && !1 !== r && 0 !== r && 1 !== r) throw Error(l + n + ': ' + r) + if (r) { + if ('undefined' == typeof crypto || !crypto || (!crypto.getRandomValues && !crypto.randomBytes)) + throw Error('[DecimalError] crypto unavailable') + this[n] = !0 + } else this[n] = !1 + } + return this + } + function st(t) { + return new this(t).cos() + } + function at(t) { + return new this(t).cosh() + } + function ut(t, e) { + return new this(t).div(e) + } + function ft(t) { + return new this(t).exp() + } + function ct(t) { + return T((t = new this(t)), t.e + 1, 3) + } + function ht() { + var t, + e, + n = new this(0) + for (d = !1, t = 0; t < arguments.length; ) + if ((e = new this(arguments[t++])).d) n.d && (n = n.plus(e.times(e))) + else { + if (e.s) return ((d = !0), new this(1 / 0)) + n = e + } + return ((d = !0), n.sqrt()) + } + function dt(t) { + return t instanceof o || (t && '[object Decimal]' === t.name) || !1 + } + function lt(t) { + return new this(t).ln() + } + function pt(t, e) { + return new this(t).log(e) + } + function bt(t) { + return new this(t).log(2) + } + function gt(t) { + return new this(t).log(10) + } + function vt() { + return U(this, arguments, 'lt') + } + function mt() { + return U(this, arguments, 'gt') + } + function yt(t, e) { + return new this(t).mod(e) + } + function wt(t, e) { + return new this(t).mul(e) + } + function _t(t, e) { + return new this(t).pow(e) + } + function St(t) { + var e, + n, + r, + i, + o = 0, + s = new this(1), + a = [] + if ((void 0 === t ? (t = this.precision) : E(t, 1, 1e9), (r = Math.ceil(t / 7)), this.crypto)) + if (crypto.getRandomValues) + for (e = crypto.getRandomValues(new Uint32Array(r)); o < r; ) + (i = e[o]) >= 429e7 ? (e[o] = crypto.getRandomValues(new Uint32Array(1))[0]) : (a[o++] = i % 1e7) + else { + if (!crypto.randomBytes) throw Error('[DecimalError] crypto unavailable') + for (e = crypto.randomBytes((r *= 4)); o < r; ) + (i = e[o] + (e[o + 1] << 8) + (e[o + 2] << 16) + ((127 & e[o + 3]) << 24)) >= 214e7 + ? crypto.randomBytes(4).copy(e, o) + : (a.push(i % 1e7), (o += 4)) + o = r / 4 + } + else for (; o < r; ) a[o++] = (1e7 * Math.random()) | 0 + for (t %= 7, (r = a[--o]) && t && ((i = b(10, 7 - t)), (a[o] = ((r / i) | 0) * i)); 0 === a[o]; o--) a.pop() + if (o < 0) ((n = 0), (a = [0])) + else { + for (n = -1; 0 === a[0]; n -= 7) a.shift() + for (r = 1, i = a[0]; i >= 10; i /= 10) r++ + r < 7 && (n -= 7 - r) + } + return ((s.e = n), (s.d = a), s) + } + function Mt(t) { + return T((t = new this(t)), t.e + 1, this.rounding) + } + function Et(t) { + return (t = new this(t)).d ? (t.d[0] ? t.s : 0 * t.s) : t.s || NaN + } + function At(t) { + return new this(t).sin() + } + function xt(t) { + return new this(t).sinh() + } + function It(t) { + return new this(t).sqrt() + } + function Tt(t, e) { + return new this(t).sub(e) + } + function kt(t) { + return new this(t).tan() + } + function Lt(t) { + return new this(t).tanh() + } + function Nt(t) { + return T((t = new this(t)), t.e + 1, 1) + } + ;(((o = (function t(e) { + var n, r, i + function o(t) { + var e, + n, + r, + i = this + if (!(i instanceof o)) return new o(t) + if (((i.constructor = o), t instanceof o)) + return ( + (i.s = t.s), + void (d + ? !t.d || t.e > o.maxE + ? ((i.e = NaN), (i.d = null)) + : t.e < o.minE + ? ((i.e = 0), (i.d = [0])) + : ((i.e = t.e), (i.d = t.d.slice())) + : ((i.e = t.e), (i.d = t.d ? t.d.slice() : t.d))) + ) + if ('number' === (r = typeof t)) { + if (0 === t) return ((i.s = 1 / t < 0 ? -1 : 1), (i.e = 0), void (i.d = [0])) + if ((t < 0 ? ((t = -t), (i.s = -1)) : (i.s = 1), t === ~~t && t < 1e7)) { + for (e = 0, n = t; n >= 10; n /= 10) e++ + return void (d + ? e > o.maxE + ? ((i.e = NaN), (i.d = null)) + : e < o.minE + ? ((i.e = 0), (i.d = [0])) + : ((i.e = e), (i.d = [t])) + : ((i.e = e), (i.d = [t]))) + } + return 0 * t != 0 ? (t || (i.s = NaN), (i.e = NaN), void (i.d = null)) : D(i, t.toString()) + } + if ('string' !== r) throw Error(l + t) + return ( + 45 === (n = t.charCodeAt(0)) ? ((t = t.slice(1)), (i.s = -1)) : (43 === n && (t = t.slice(1)), (i.s = 1)), + y.test(t) ? D(i, t) : q(i, t) + ) + } + if ( + ((o.prototype = S), + (o.ROUND_UP = 0), + (o.ROUND_DOWN = 1), + (o.ROUND_CEIL = 2), + (o.ROUND_FLOOR = 3), + (o.ROUND_HALF_UP = 4), + (o.ROUND_HALF_DOWN = 5), + (o.ROUND_HALF_EVEN = 6), + (o.ROUND_HALF_CEIL = 7), + (o.ROUND_HALF_FLOOR = 8), + (o.EUCLID = 9), + (o.config = o.set = ot), + (o.clone = t), + (o.isDecimal = dt), + (o.abs = J), + (o.acos = K), + (o.acosh = $), + (o.add = X), + (o.asin = G), + (o.asinh = Q), + (o.atan = tt), + (o.atanh = et), + (o.atan2 = nt), + (o.cbrt = rt), + (o.ceil = it), + (o.cos = st), + (o.cosh = at), + (o.div = ut), + (o.exp = ft), + (o.floor = ct), + (o.hypot = ht), + (o.ln = lt), + (o.log = pt), + (o.log10 = gt), + (o.log2 = bt), + (o.max = vt), + (o.min = mt), + (o.mod = yt), + (o.mul = wt), + (o.pow = _t), + (o.random = St), + (o.round = Mt), + (o.sign = Et), + (o.sin = At), + (o.sinh = xt), + (o.sqrt = It), + (o.sub = Tt), + (o.tan = kt), + (o.tanh = Lt), + (o.trunc = Nt), + void 0 === e && (e = {}), + e && !0 !== e.defaults) + ) + for (i = ['precision', 'rounding', 'toExpNeg', 'toExpPos', 'maxE', 'minE', 'modulo', 'crypto'], n = 0; n < i.length; ) + e.hasOwnProperty((r = i[n++])) || (e[r] = this[r]) + return (o.config(e), o) + })(h)).default = o.Decimal = + o), + (f = new o(f)), + (c = new o(c)), + void 0 === + (r = function () { + return o + }.call(e, n, e, t)) || (t.exports = r)) + })() + }, + function (t, e, n) { + 'use strict' + var r = + 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator + ? function (t) { + return typeof t + } + : function (t) { + return t && 'function' == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? 'symbol' : typeof t + }, + i = n(2), + o = n(11), + s = n(0), + a = n(3), + u = a.bytesToHex, + f = a.parseBytes, + c = a.serializeUIntN, + h = n(24).UInt, + d = /^[A-F0-9]{16}$/, + l = s({ + inherits: h, + statics: { width: 8 }, + UInt64: function () { + var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0, + e = void 0 === t ? 'undefined' : r(t) + if ('number' === e) (i(t >= 0), (this._bytes = new Uint8Array(8)), this._bytes.set(c(t, 4), 4)) + else if (t instanceof o) ((this._bytes = f(t.toArray('be', 8), Uint8Array)), (this._toBN = t)) + else { + if ('string' === e && !d.test(t)) throw new Error(t + ' is not a valid UInt64 hex string') + this._bytes = f(t, Uint8Array) + } + i(8 === this._bytes.length) + }, + toJSON: function () { + return u(this._bytes) + }, + valueOf: function () { + return this.toBN() + }, + cached: { + toBN: function () { + return new o(this._bytes) + }, + }, + toBytes: function () { + return this._bytes + }, + }) + t.exports = { UInt64: l } + }, + function (t, e, n) { + 'use strict' + var r = n(0)({ + inherits: n(36).Hash, + statics: { + width: 32, + init: function () { + this.ZERO_256 = new this(new Uint8Array(this.width)) + }, + }, + }) + t.exports = { Hash256: r } + }, + function (t, e, n) { + 'use strict' + var r = + 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator + ? function (t) { + return typeof t + } + : function (t) { + return t && 'function' == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? 'symbol' : typeof t + }, + i = n(12), + o = n(0), + s = n(15).Field, + a = n(37).BinarySerializer, + u = s.ObjectEndMarker, + f = o({ + mixins: n(10).SerializedType, + statics: { + fromParser: function (t, e) { + for (var n = 'number' == typeof e ? t.pos() + e : null, r = new this(); !t.end(n); ) { + var i = t.readField() + if (i === u) break + r[i] = t.readFieldValue(i) + } + return r + }, + from: function (t) { + if (t instanceof this) return t + if ('object' === (void 0 === t ? 'undefined' : r(t))) + return i.transform( + t, + function (t, e, n) { + var r = s[n] + r ? (t[r] = r.associatedType.from(e)) : (t[n] = e) + }, + new this(), + ) + throw new Error(t + ' is unsupported') + }, + }, + fieldKeys: function () { + return Object.keys(this) + .map(function (t) { + return s[t] + }) + .filter(Boolean) + }, + toJSON: function () { + return i.transform( + this, + function (t, e, n) { + t[n] = e && e.toJSON ? e.toJSON() : e + }, + {}, + ) + }, + toBytesSink: function (t) { + var e = this, + n = + arguments.length > 1 && void 0 !== arguments[1] + ? arguments[1] + : function () { + return !0 + }, + r = new a(t), + o = this.fieldKeys(), + s = i.sortBy(o, 'ordinal') + s.filter(n).forEach(function (t) { + var n = e[t] + t.isSerialized && r.writeFieldAndValue(t, n) + }) + }, + }) + t.exports = { STObject: f } + }, + function (t, e, n) { + 'use strict' + var r = n(11), + i = n(16), + o = n(21).HashPrefix, + s = n(106).BinaryParser, + a = n(37), + u = a.BinarySerializer, + f = a.BytesList, + c = n(3), + h = c.bytesToHex, + d = c.slice, + l = c.parseBytes, + p = n(25), + b = p.sha512Half, + g = p.transactionID, + v = function (t) { + return new s(t) + }, + m = function (t) { + return t.readType(i.STObject).toJSON() + } + function y(t) { + var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, + n = e.prefix, + r = e.suffix, + o = e.signingFieldsOnly, + s = void 0 !== o && o, + a = new f() + n && a.put(n) + var u = s + ? function (t) { + return t.isSigningField + } + : void 0 + return (i.STObject.from(t).toBytesSink(a, u), r && a.put(r), a.toBytes()) + } + t.exports = { + BinaryParser: s, + BinarySerializer: u, + BytesList: f, + makeParser: v, + serializeObject: y, + readJSON: m, + bytesToHex: h, + parseBytes: l, + multiSigningData: function (t, e) { + return y(t, { prefix: o.transactionMultiSig, suffix: i.AccountID.from(e).toBytes(), signingFieldsOnly: !0 }) + }, + signingData: function (t) { + var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : o.transactionSig + return y(t, { prefix: e, signingFieldsOnly: !0 }) + }, + signingClaimData: function (t) { + var e = o.paymentChannelClaim, + n = i.Hash256.from(t.channel).toBytes(), + s = new i.UInt64(new r(t.amount)).toBytes(), + a = new f() + return (a.put(e), a.put(n), a.put(s), a.toBytes()) + }, + binaryToJSON: function (t) { + return m(v(t)) + }, + sha512Half: b, + transactionID: g, + slice: d, + } + }, + function (t, e, n) { + 'use strict' + var r = n(2), + i = n(0), + o = n(16).Hash256, + s = n(21).HashPrefix, + a = n(25).Sha512Half, + u = i({ + virtuals: { hashPrefix: function () {}, isLeaf: function () {}, isInner: function () {} }, + cached: { + hash: function () { + var t = a.put(this.hashPrefix()) + return (this.toBytesSink(t), t.finish()) + }, + }, + }), + f = i({ + inherits: u, + ShaMapLeaf: function (t, e) { + ;(u.call(this), (this.index = t), (this.item = e)) + }, + isLeaf: function () { + return !0 + }, + isInner: function () { + return !1 + }, + hashPrefix: function () { + return this.item.hashPrefix() + }, + toBytesSink: function (t) { + ;(this.item.toBytesSink(t), this.index.toBytesSink(t)) + }, + }), + c = u.prototype, + h = i({ + inherits: u, + ShaMapInner: function () { + var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0 + ;(u.call(this), (this.depth = t), (this.slotBits = 0), (this.branches = Array(16))) + }, + isInner: function () { + return !0 + }, + isLeaf: function () { + return !1 + }, + hashPrefix: function () { + return s.innerNode + }, + setBranch: function (t, e) { + ;((this.slotBits = this.slotBits | (1 << t)), (this.branches[t] = e)) + }, + empty: function () { + return 0 === this.slotBits + }, + hash: function () { + return this.empty() ? o.ZERO_256 : c.hash.call(this) + }, + toBytesSink: function (t) { + for (var e = 0; e < this.branches.length; e++) { + var n = this.branches[e] + ;(n ? n.hash() : o.ZERO_256).toBytesSink(t) + } + }, + addItem: function (t, e, n) { + r(t instanceof o) + var i = t.nibblet(this.depth), + s = this.branches[i] + if (s) + if (s.isLeaf()) { + var a = new h(this.depth + 1) + ;(a.addItem(s.index, null, s), a.addItem(t, e, n), this.setBranch(i, a)) + } else s.isInner() ? s.addItem(t, e, n) : r(!1) + else this.setBranch(i, n || new f(t, e)) + }, + }), + d = i({ inherits: h }) + t.exports = { ShaMap: d } + }, + function (t, e, n) { + 'use strict' + var r = n(7).rotr32 + function i(t, e, n) { + return (t & e) ^ (~t & n) + } + function o(t, e, n) { + return (t & e) ^ (t & n) ^ (e & n) + } + function s(t, e, n) { + return t ^ e ^ n + } + ;((e.ft_1 = function (t, e, n, r) { + return 0 === t ? i(e, n, r) : 1 === t || 3 === t ? s(e, n, r) : 2 === t ? o(e, n, r) : void 0 + }), + (e.ch32 = i), + (e.maj32 = o), + (e.p32 = s), + (e.s0_256 = function (t) { + return r(t, 2) ^ r(t, 13) ^ r(t, 22) + }), + (e.s1_256 = function (t) { + return r(t, 6) ^ r(t, 11) ^ r(t, 25) + }), + (e.g0_256 = function (t) { + return r(t, 7) ^ r(t, 18) ^ (t >>> 3) + }), + (e.g1_256 = function (t) { + return r(t, 17) ^ r(t, 19) ^ (t >>> 10) + })) + }, + function (t, e, n) { + 'use strict' + var r = n(7), + i = n(22), + o = n(57), + s = n(14), + a = r.sum32, + u = r.sum32_4, + f = r.sum32_5, + c = o.ch32, + h = o.maj32, + d = o.s0_256, + l = o.s1_256, + p = o.g0_256, + b = o.g1_256, + g = i.BlockHash, + v = [ + 1116352408, 1899447441, 3049323471, 3921009573, 961987163, 1508970993, 2453635748, 2870763221, 3624381080, 310598401, 607225278, 1426881987, + 1925078388, 2162078206, 2614888103, 3248222580, 3835390401, 4022224774, 264347078, 604807628, 770255983, 1249150122, 1555081692, 1996064986, + 2554220882, 2821834349, 2952996808, 3210313671, 3336571891, 3584528711, 113926993, 338241895, 666307205, 773529912, 1294757372, 1396182291, + 1695183700, 1986661051, 2177026350, 2456956037, 2730485921, 2820302411, 3259730800, 3345764771, 3516065817, 3600352804, 4094571909, 275423344, + 430227734, 506948616, 659060556, 883997877, 958139571, 1322822218, 1537002063, 1747873779, 1955562222, 2024104815, 2227730452, 2361852424, + 2428436474, 2756734187, 3204031479, 3329325298, + ] + function m() { + if (!(this instanceof m)) return new m() + ;(g.call(this), + (this.h = [1779033703, 3144134277, 1013904242, 2773480762, 1359893119, 2600822924, 528734635, 1541459225]), + (this.k = v), + (this.W = new Array(64))) + } + ;(r.inherits(m, g), + (t.exports = m), + (m.blockSize = 512), + (m.outSize = 256), + (m.hmacStrength = 192), + (m.padLength = 64), + (m.prototype._update = function (t, e) { + for (var n = this.W, r = 0; r < 16; r++) n[r] = t[e + r] + for (; r < n.length; r++) n[r] = u(b(n[r - 2]), n[r - 7], p(n[r - 15]), n[r - 16]) + var i = this.h[0], + o = this.h[1], + g = this.h[2], + v = this.h[3], + m = this.h[4], + y = this.h[5], + w = this.h[6], + _ = this.h[7] + for (s(this.k.length === n.length), r = 0; r < n.length; r++) { + var S = f(_, l(m), c(m, y, w), this.k[r], n[r]), + M = a(d(i), h(i, o, g)) + ;((_ = w), (w = y), (y = m), (m = a(v, S)), (v = g), (g = o), (o = i), (i = a(S, M))) + } + ;((this.h[0] = a(this.h[0], i)), + (this.h[1] = a(this.h[1], o)), + (this.h[2] = a(this.h[2], g)), + (this.h[3] = a(this.h[3], v)), + (this.h[4] = a(this.h[4], m)), + (this.h[5] = a(this.h[5], y)), + (this.h[6] = a(this.h[6], w)), + (this.h[7] = a(this.h[7], _))) + }), + (m.prototype._digest = function (t) { + return 'hex' === t ? r.toHex32(this.h, 'big') : r.split32(this.h, 'big') + })) + }, + function (t, e, n) { + 'use strict' + var r = n(7), + i = n(22), + o = n(14), + s = r.rotr64_hi, + a = r.rotr64_lo, + u = r.shr64_hi, + f = r.shr64_lo, + c = r.sum64, + h = r.sum64_hi, + d = r.sum64_lo, + l = r.sum64_4_hi, + p = r.sum64_4_lo, + b = r.sum64_5_hi, + g = r.sum64_5_lo, + v = i.BlockHash, + m = [ + 1116352408, 3609767458, 1899447441, 602891725, 3049323471, 3964484399, 3921009573, 2173295548, 961987163, 4081628472, 1508970993, 3053834265, + 2453635748, 2937671579, 2870763221, 3664609560, 3624381080, 2734883394, 310598401, 1164996542, 607225278, 1323610764, 1426881987, 3590304994, + 1925078388, 4068182383, 2162078206, 991336113, 2614888103, 633803317, 3248222580, 3479774868, 3835390401, 2666613458, 4022224774, 944711139, + 264347078, 2341262773, 604807628, 2007800933, 770255983, 1495990901, 1249150122, 1856431235, 1555081692, 3175218132, 1996064986, 2198950837, + 2554220882, 3999719339, 2821834349, 766784016, 2952996808, 2566594879, 3210313671, 3203337956, 3336571891, 1034457026, 3584528711, 2466948901, + 113926993, 3758326383, 338241895, 168717936, 666307205, 1188179964, 773529912, 1546045734, 1294757372, 1522805485, 1396182291, 2643833823, + 1695183700, 2343527390, 1986661051, 1014477480, 2177026350, 1206759142, 2456956037, 344077627, 2730485921, 1290863460, 2820302411, 3158454273, + 3259730800, 3505952657, 3345764771, 106217008, 3516065817, 3606008344, 3600352804, 1432725776, 4094571909, 1467031594, 275423344, 851169720, + 430227734, 3100823752, 506948616, 1363258195, 659060556, 3750685593, 883997877, 3785050280, 958139571, 3318307427, 1322822218, 3812723403, + 1537002063, 2003034995, 1747873779, 3602036899, 1955562222, 1575990012, 2024104815, 1125592928, 2227730452, 2716904306, 2361852424, 442776044, + 2428436474, 593698344, 2756734187, 3733110249, 3204031479, 2999351573, 3329325298, 3815920427, 3391569614, 3928383900, 3515267271, 566280711, + 3940187606, 3454069534, 4118630271, 4000239992, 116418474, 1914138554, 174292421, 2731055270, 289380356, 3203993006, 460393269, 320620315, + 685471733, 587496836, 852142971, 1086792851, 1017036298, 365543100, 1126000580, 2618297676, 1288033470, 3409855158, 1501505948, 4234509866, + 1607167915, 987167468, 1816402316, 1246189591, + ] + function y() { + if (!(this instanceof y)) return new y() + ;(v.call(this), + (this.h = [ + 1779033703, 4089235720, 3144134277, 2227873595, 1013904242, 4271175723, 2773480762, 1595750129, 1359893119, 2917565137, 2600822924, + 725511199, 528734635, 4215389547, 1541459225, 327033209, + ]), + (this.k = m), + (this.W = new Array(160))) + } + function w(t, e, n, r, i) { + var o = (t & n) ^ (~t & i) + return (o < 0 && (o += 4294967296), o) + } + function _(t, e, n, r, i, o) { + var s = (e & r) ^ (~e & o) + return (s < 0 && (s += 4294967296), s) + } + function S(t, e, n, r, i) { + var o = (t & n) ^ (t & i) ^ (n & i) + return (o < 0 && (o += 4294967296), o) + } + function M(t, e, n, r, i, o) { + var s = (e & r) ^ (e & o) ^ (r & o) + return (s < 0 && (s += 4294967296), s) + } + function E(t, e) { + var n = s(t, e, 28) ^ s(e, t, 2) ^ s(e, t, 7) + return (n < 0 && (n += 4294967296), n) + } + function A(t, e) { + var n = a(t, e, 28) ^ a(e, t, 2) ^ a(e, t, 7) + return (n < 0 && (n += 4294967296), n) + } + function x(t, e) { + var n = s(t, e, 14) ^ s(t, e, 18) ^ s(e, t, 9) + return (n < 0 && (n += 4294967296), n) + } + function I(t, e) { + var n = a(t, e, 14) ^ a(t, e, 18) ^ a(e, t, 9) + return (n < 0 && (n += 4294967296), n) + } + function T(t, e) { + var n = s(t, e, 1) ^ s(t, e, 8) ^ u(t, e, 7) + return (n < 0 && (n += 4294967296), n) + } + function k(t, e) { + var n = a(t, e, 1) ^ a(t, e, 8) ^ f(t, e, 7) + return (n < 0 && (n += 4294967296), n) + } + function L(t, e) { + var n = s(t, e, 19) ^ s(e, t, 29) ^ u(t, e, 6) + return (n < 0 && (n += 4294967296), n) + } + function N(t, e) { + var n = a(t, e, 19) ^ a(e, t, 29) ^ f(t, e, 6) + return (n < 0 && (n += 4294967296), n) + } + ;(r.inherits(y, v), + (t.exports = y), + (y.blockSize = 1024), + (y.outSize = 512), + (y.hmacStrength = 192), + (y.padLength = 128), + (y.prototype._prepareBlock = function (t, e) { + for (var n = this.W, r = 0; r < 32; r++) n[r] = t[e + r] + for (; r < n.length; r += 2) { + var i = L(n[r - 4], n[r - 3]), + o = N(n[r - 4], n[r - 3]), + s = n[r - 14], + a = n[r - 13], + u = T(n[r - 30], n[r - 29]), + f = k(n[r - 30], n[r - 29]), + c = n[r - 32], + h = n[r - 31] + ;((n[r] = l(i, o, s, a, u, f, c, h)), (n[r + 1] = p(i, o, s, a, u, f, c, h))) + } + }), + (y.prototype._update = function (t, e) { + this._prepareBlock(t, e) + var n = this.W, + r = this.h[0], + i = this.h[1], + s = this.h[2], + a = this.h[3], + u = this.h[4], + f = this.h[5], + l = this.h[6], + p = this.h[7], + v = this.h[8], + m = this.h[9], + y = this.h[10], + T = this.h[11], + k = this.h[12], + L = this.h[13], + N = this.h[14], + R = this.h[15] + o(this.k.length === n.length) + for (var O = 0; O < n.length; O += 2) { + var B = N, + z = R, + P = x(v, m), + U = I(v, m), + F = w(v, m, y, T, k), + j = _(v, m, y, T, k, L), + C = this.k[O], + D = this.k[O + 1], + q = n[O], + V = n[O + 1], + H = b(B, z, P, U, F, j, C, D, q, V), + W = g(B, z, P, U, F, j, C, D, q, V) + ;((B = E(r, i)), (z = A(r, i)), (P = S(r, i, s, a, u)), (U = M(r, i, s, a, u, f))) + var Z = h(B, z, P, U), + Y = d(B, z, P, U) + ;((N = k), + (R = L), + (k = y), + (L = T), + (y = v), + (T = m), + (v = h(l, p, H, W)), + (m = d(p, p, H, W)), + (l = u), + (p = f), + (u = s), + (f = a), + (s = r), + (a = i), + (r = h(H, W, Z, Y)), + (i = d(H, W, Z, Y))) + } + ;(c(this.h, 0, r, i), + c(this.h, 2, s, a), + c(this.h, 4, u, f), + c(this.h, 6, l, p), + c(this.h, 8, v, m), + c(this.h, 10, y, T), + c(this.h, 12, k, L), + c(this.h, 14, N, R)) + }), + (y.prototype._digest = function (t) { + return 'hex' === t ? r.toHex32(this.h, 'big') : r.split32(this.h, 'big') + })) + }, + function (t, e, n) { + 'use strict' + var r = e + ;((r.version = n(117).version), (r.utils = n(4)), (r.rand = n(39)), (r.curve = n(62)), (r.curves = n(40)), (r.ec = n(123)), (r.eddsa = n(127))) + }, + function (t, e, n) { + 'use strict' + var r = e + function i(t) { + return 1 === t.length ? '0' + t : t + } + function o(t) { + for (var e = '', n = 0; n < t.length; n++) e += i(t[n].toString(16)) + return e + } + ;((r.toArray = function (t, e) { + if (Array.isArray(t)) return t.slice() + if (!t) return [] + var n = [] + if ('string' != typeof t) { + for (var r = 0; r < t.length; r++) n[r] = 0 | t[r] + return n + } + if ('hex' === e) { + ;(t = t.replace(/[^a-z0-9]+/gi, '')).length % 2 != 0 && (t = '0' + t) + for (r = 0; r < t.length; r += 2) n.push(parseInt(t[r] + t[r + 1], 16)) + } else + for (r = 0; r < t.length; r++) { + var i = t.charCodeAt(r), + o = i >> 8, + s = 255 & i + o ? n.push(o, s) : n.push(s) + } + return n + }), + (r.zero2 = i), + (r.toHex = o), + (r.encode = function (t, e) { + return 'hex' === e ? o(t) : t + })) + }, + function (t, e, n) { + 'use strict' + var r = e + ;((r.base = n(26)), (r.short = n(119)), (r.mont = n(120)), (r.edwards = n(121))) + }, + function (t, e, n) { + ;(function (t) { + const e = n(66), + r = n(29), + o = n(109), + s = 'badge badge-danger' + var a = 0 + function u(t, e) { + let n + return ( + (n = e + ? $('<li></li>').appendTo('#log').append(t) + : $('<li></li>') + .text(t + ' ') + .appendTo('#log')), + (n.resolve = function (t) { + return $('<span></span>').html(t).appendTo(n) + }), + n + ) + } + function f(t) { + for (x in t) log = u(x + ': ' + t[x]) + } + function c() { + const n = $('#manifest').val().toUpperCase() + try { + var c = e.decode(n) + } catch (t) { + return void u('Error decoding manifest').resolve(t).addClass(s) + } + let d = c.Sequence, + l = c.PublicKey, + p = new t(l, 'hex').toJSON().data, + b = r.encodeNodePublic(p), + g = c.SigningPubKey, + v = new t(g, 'hex').toJSON().data, + m = r.encodeNodePublic(v) + try { + var y = (function (t) { + for (var e = t.toString(), n = '', r = 0; r < e.length; r += 2) n += String.fromCharCode(parseInt(e.substr(r, 2), 16)) + return n + })(c.Domain) + } catch { + return (u('Domain not found in manifest').addClass(s), void f({ Sequence: d, 'Master Public Key': b, 'Ephemeral Public Key': m })) + } + f({ Sequence: d, Domain: y, 'Master Public Key': b, 'Ephemeral Public Key': m }) + let w = '[domain-attestation-blob:' + y + ':' + b + ']' + const _ = 'https://' + y + '/.well-known/xrp-ledger.toml?v=' + a++, + S = u('Checking ' + _ + '...') + $.ajax({ + url: _, + dataType: 'text', + success: function (t) { + ;(S.resolve('FOUND').addClass('badge badge-success'), + (async function (t, e, n, r) { + let a, + f = u('Parsing TOML data...') + try { + ;((a = TOML(t)), f.resolve('SUCCESS').addClass('badge badge-success')) + } catch (t) { + return void f.resolve(t).addClass(s) + } + console.log(a) + let c = a.VALIDATORS + if (c) + if (Array.isArray(c)) { + let t = !1 + for (i = 0; i < c.length; i++) { + if (c[i].public_key == n) { + t = !0 + try { + var d = c[i].attestation + } catch { + u('Attestation Not found').addClass(s) + } + try { + var l = o.verify(h(r), d, e) + } catch (t) { + u('Domain Verification Failed').resolve(t).addClass(s) + } + l ? u('Domain Verification Succeeded').addClass('badge badge-success') : u('Domain Verification Failed').addClass(s) + } + } + t || u('The validator key for this manifest was not found in the TOML file').addClass(s) + } else u('Validators:').resolve('Wrong type - should be table-array').addClass(s) + else u('No Validators Found').resolve('Failure').addClass(s) + })(t, l, b, w)) + }, + error: function (t, e, n) { + switch (e) { + case 'timeout': + err = 'TIMEOUT' + break + case 'abort': + err = 'ABORTED' + break + case 'error': + err = 'ERROR' + break + default: + err = 'UNKNOWN' + } + S.resolve(err) + .addClass(s) + .after( + '<p>Check if the xrp-ledger.toml file is actually hosted in the /.well-known/ location at the domain in your manifest. Check your server\'s HTTPS settings and certificate, and make sure your server provides the required <a href="xrp-ledger-toml.html#cors-setup">CORS header.</a></p>', + ) + }, + }) + } + function h(t) { + for (var e = [], n = 0, r = t.length; n < r; n++) { + var i = Number(t.charCodeAt(n)).toString(16) + e.push(i) + } + return e.join('') + } + function d(t) { + ;(t.preventDefault(), $('.result-title').show(), $('#result').show(), $('#log').empty(), c()) + } + $(document).ready(() => { + $('#manifest-entry').submit(d) + }) + }).call(this, n(5).Buffer) + }, + function (t, e, n) { + 'use strict' + ;((e.byteLength = function (t) { + var e = f(t), + n = e[0], + r = e[1] + return (3 * (n + r)) / 4 - r + }), + (e.toByteArray = function (t) { + var e, + n, + r = f(t), + s = r[0], + a = r[1], + u = new o( + (function (t, e, n) { + return (3 * (e + n)) / 4 - n + })(0, s, a), + ), + c = 0, + h = a > 0 ? s - 4 : s + for (n = 0; n < h; n += 4) + ((e = (i[t.charCodeAt(n)] << 18) | (i[t.charCodeAt(n + 1)] << 12) | (i[t.charCodeAt(n + 2)] << 6) | i[t.charCodeAt(n + 3)]), + (u[c++] = (e >> 16) & 255), + (u[c++] = (e >> 8) & 255), + (u[c++] = 255 & e)) + 2 === a && ((e = (i[t.charCodeAt(n)] << 2) | (i[t.charCodeAt(n + 1)] >> 4)), (u[c++] = 255 & e)) + 1 === a && + ((e = (i[t.charCodeAt(n)] << 10) | (i[t.charCodeAt(n + 1)] << 4) | (i[t.charCodeAt(n + 2)] >> 2)), + (u[c++] = (e >> 8) & 255), + (u[c++] = 255 & e)) + return u + }), + (e.fromByteArray = function (t) { + for (var e, n = t.length, i = n % 3, o = [], s = 0, a = n - i; s < a; s += 16383) o.push(c(t, s, s + 16383 > a ? a : s + 16383)) + 1 === i + ? ((e = t[n - 1]), o.push(r[e >> 2] + r[(e << 4) & 63] + '==')) + : 2 === i && ((e = (t[n - 2] << 8) + t[n - 1]), o.push(r[e >> 10] + r[(e >> 4) & 63] + r[(e << 2) & 63] + '=')) + return o.join('') + })) + for ( + var r = [], + i = [], + o = 'undefined' != typeof Uint8Array ? Uint8Array : Array, + s = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/', + a = 0, + u = s.length; + a < u; + ++a + ) + ((r[a] = s[a]), (i[s.charCodeAt(a)] = a)) + function f(t) { + var e = t.length + if (e % 4 > 0) throw new Error('Invalid string. Length must be a multiple of 4') + var n = t.indexOf('=') + return (-1 === n && (n = e), [n, n === e ? 0 : 4 - (n % 4)]) + } + function c(t, e, n) { + for (var i, o, s = [], a = e; a < n; a += 3) + ((i = ((t[a] << 16) & 16711680) + ((t[a + 1] << 8) & 65280) + (255 & t[a + 2])), + s.push(r[((o = i) >> 18) & 63] + r[(o >> 12) & 63] + r[(o >> 6) & 63] + r[63 & o])) + return s.join('') + } + ;((i['-'.charCodeAt(0)] = 62), (i['_'.charCodeAt(0)] = 63)) + }, + function (t, e) { + ;((e.read = function (t, e, n, r, i) { + var o, + s, + a = 8 * i - r - 1, + u = (1 << a) - 1, + f = u >> 1, + c = -7, + h = n ? i - 1 : 0, + d = n ? -1 : 1, + l = t[e + h] + for (h += d, o = l & ((1 << -c) - 1), l >>= -c, c += a; c > 0; o = 256 * o + t[e + h], h += d, c -= 8); + for (s = o & ((1 << -c) - 1), o >>= -c, c += r; c > 0; s = 256 * s + t[e + h], h += d, c -= 8); + if (0 === o) o = 1 - f + else { + if (o === u) return s ? NaN : (1 / 0) * (l ? -1 : 1) + ;((s += Math.pow(2, r)), (o -= f)) + } + return (l ? -1 : 1) * s * Math.pow(2, o - r) + }), + (e.write = function (t, e, n, r, i, o) { + var s, + a, + u, + f = 8 * o - i - 1, + c = (1 << f) - 1, + h = c >> 1, + d = 23 === i ? Math.pow(2, -24) - Math.pow(2, -77) : 0, + l = r ? 0 : o - 1, + p = r ? 1 : -1, + b = e < 0 || (0 === e && 1 / e < 0) ? 1 : 0 + for ( + e = Math.abs(e), + isNaN(e) || e === 1 / 0 + ? ((a = isNaN(e) ? 1 : 0), (s = c)) + : ((s = Math.floor(Math.log(e) / Math.LN2)), + e * (u = Math.pow(2, -s)) < 1 && (s--, (u *= 2)), + (e += s + h >= 1 ? d / u : d * Math.pow(2, 1 - h)) * u >= 2 && (s++, (u /= 2)), + s + h >= c + ? ((a = 0), (s = c)) + : s + h >= 1 + ? ((a = (e * u - 1) * Math.pow(2, i)), (s += h)) + : ((a = e * Math.pow(2, h - 1) * Math.pow(2, i)), (s = 0))); + i >= 8; + t[n + l] = 255 & a, l += p, a /= 256, i -= 8 + ); + for (s = (s << i) | a, f += i; f > 0; t[n + l] = 255 & s, l += p, s /= 256, f -= 8); + t[n + l - p] |= 128 * b + })) + }, + function (t, e, n) { + 'use strict' + var r = + 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator + ? function (t) { + return typeof t + } + : function (t) { + return t && 'function' == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? 'symbol' : typeof t + }, + i = n(2), + o = n(71), + s = o.quality, + a = o.binary, + u = a.bytesToHex, + f = a.signingData, + c = a.signingClaimData, + h = a.multiSigningData, + d = a.binaryToJSON, + l = a.serializeObject, + p = a.BinaryParser + t.exports = { + decode: function (t) { + return (i('string' == typeof t, 'binary must be a hex string'), d(t)) + }, + encode: function (t) { + return (i('object' === (void 0 === t ? 'undefined' : r(t))), u(l(t))) + }, + encodeForSigning: function (t) { + return (i('object' === (void 0 === t ? 'undefined' : r(t))), u(f(t))) + }, + encodeForSigningClaim: function (t) { + return (i('object' === (void 0 === t ? 'undefined' : r(t))), u(c(t))) + }, + encodeForMultisigning: function (t, e) { + return (i('object' === (void 0 === t ? 'undefined' : r(t))), i.equal(t.SigningPubKey, ''), u(h(t, e))) + }, + encodeQuality: function (t) { + return (i('string' == typeof t), u(s.encode(t))) + }, + decodeQuality: function (t) { + return (i('string' == typeof t), s.decode(t).toString()) + }, + decodeLedgerData: function (t) { + i('string' == typeof t, 'binary must be a hex string') + var e = new p(t) + return { + ledger_index: e.readUInt32(), + total_coins: e.readType(o.UInt64).valueOf().toString(), + parent_hash: e.readType(o.Hash256).toHex(), + transaction_hash: e.readType(o.Hash256).toHex(), + account_hash: e.readType(o.Hash256).toHex(), + parent_close_time: e.readUInt32(), + close_time: e.readUInt32(), + close_time_resolution: e.readUInt8(), + close_flags: e.readUInt8(), + } + }, + } + }, + function (t, e, n) { + 'use strict' + /* object-assign (c) Sindre Sorhus @license MIT -*/var r=Object.getOwnPropertySymbols,i=Object.prototype.hasOwnProperty,o=Object.prototype.propertyIsEnumerable;function s(t){if(null==t)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}t.exports=function(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},n=0;n<10;n++)e["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(e).map((function(t){return e[t]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(t){r[t]=t})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(t){return!1}}()?Object.assign:function(t,e){for(var n,a,u=s(t),f=1;f<arguments.length;f++){for(var c in n=Object(arguments[f]))i.call(n,c)&&(u[c]=n[c]);if(r){a=r(n);for(var h=0;h<a.length;h++)o.call(n,a[h])&&(u[a[h]]=n[a[h]])}}return u}},function(t,e,n){(function(t){var r=Object.getOwnPropertyDescriptors||function(t){for(var e=Object.keys(t),n={},r=0;r<e.length;r++)n[e[r]]=Object.getOwnPropertyDescriptor(t,e[r]);return n},i=/%[sdj%]/g;e.format=function(t){if(!v(t)){for(var e=[],n=0;n<arguments.length;n++)e.push(a(arguments[n]));return e.join(" ")}n=1;for(var r=arguments,o=r.length,s=String(t).replace(i,(function(t){if("%%"===t)return"%";if(n>=o)return t;switch(t){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(t){return"[Circular]"}default:return t}})),u=r[n];n<o;u=r[++n])b(u)||!w(u)?s+=" "+u:s+=" "+a(u);return s},e.deprecate=function(n,r){if(void 0!==t&&!0===t.noDeprecation)return n;if(void 0===t)return function(){return e.deprecate(n,r).apply(this,arguments)};var i=!1;return function(){if(!i){if(t.throwDeprecation)throw new Error(r);t.traceDeprecation?console.trace(r):console.error(r),i=!0}return n.apply(this,arguments)}};var o,s={};function a(t,n){var r={seen:[],stylize:f};return arguments.length>=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),p(n)?r.showHidden=n:n&&e._extend(r,n),m(r.showHidden)&&(r.showHidden=!1),m(r.depth)&&(r.depth=2),m(r.colors)&&(r.colors=!1),m(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=u),c(r,t,r.depth)}function u(t,e){var n=a.styles[e];return n?"["+a.colors[n][0]+"m"+t+"["+a.colors[n][1]+"m":t}function f(t,e){return t}function c(t,n,r){if(t.customInspect&&n&&M(n.inspect)&&n.inspect!==e.inspect&&(!n.constructor||n.constructor.prototype!==n)){var i=n.inspect(r,t);return v(i)||(i=c(t,i,r)),i}var o=function(t,e){if(m(e))return t.stylize("undefined","undefined");if(v(e)){var n="'"+JSON.stringify(e).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return t.stylize(n,"string")}if(g(e))return t.stylize(""+e,"number");if(p(e))return t.stylize(""+e,"boolean");if(b(e))return t.stylize("null","null")}(t,n);if(o)return o;var s=Object.keys(n),a=function(t){var e={};return t.forEach((function(t,n){e[t]=!0})),e}(s);if(t.showHidden&&(s=Object.getOwnPropertyNames(n)),S(n)&&(s.indexOf("message")>=0||s.indexOf("description")>=0))return h(n);if(0===s.length){if(M(n)){var u=n.name?": "+n.name:"";return t.stylize("[Function"+u+"]","special")}if(y(n))return t.stylize(RegExp.prototype.toString.call(n),"regexp");if(_(n))return t.stylize(Date.prototype.toString.call(n),"date");if(S(n))return h(n)}var f,w="",E=!1,A=["{","}"];(l(n)&&(E=!0,A=["[","]"]),M(n))&&(w=" [Function"+(n.name?": "+n.name:"")+"]");return y(n)&&(w=" "+RegExp.prototype.toString.call(n)),_(n)&&(w=" "+Date.prototype.toUTCString.call(n)),S(n)&&(w=" "+h(n)),0!==s.length||E&&0!=n.length?r<0?y(n)?t.stylize(RegExp.prototype.toString.call(n),"regexp"):t.stylize("[Object]","special"):(t.seen.push(n),f=E?function(t,e,n,r,i){for(var o=[],s=0,a=e.length;s<a;++s)T(e,String(s))?o.push(d(t,e,n,r,String(s),!0)):o.push("");return i.forEach((function(i){i.match(/^\d+$/)||o.push(d(t,e,n,r,i,!0))})),o}(t,n,r,a,s):s.map((function(e){return d(t,n,r,a,e,E)})),t.seen.pop(),function(t,e,n){if(t.reduce((function(t,e){return e.indexOf("\n")>=0&&0,t+e.replace(/\u001b\[\d\d?m/g,"").length+1}),0)>60)return n[0]+(""===e?"":e+"\n ")+" "+t.join(",\n ")+" "+n[1];return n[0]+e+" "+t.join(", ")+" "+n[1]}(f,w,A)):A[0]+w+A[1]}function h(t){return"["+Error.prototype.toString.call(t)+"]"}function d(t,e,n,r,i,o){var s,a,u;if((u=Object.getOwnPropertyDescriptor(e,i)||{value:e[i]}).get?a=u.set?t.stylize("[Getter/Setter]","special"):t.stylize("[Getter]","special"):u.set&&(a=t.stylize("[Setter]","special")),T(r,i)||(s="["+i+"]"),a||(t.seen.indexOf(u.value)<0?(a=b(n)?c(t,u.value,null):c(t,u.value,n-1)).indexOf("\n")>-1&&(a=o?a.split("\n").map((function(t){return" "+t})).join("\n").substr(2):"\n"+a.split("\n").map((function(t){return" "+t})).join("\n")):a=t.stylize("[Circular]","special")),m(s)){if(o&&i.match(/^\d+$/))return a;(s=JSON.stringify(""+i)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(s=s.substr(1,s.length-2),s=t.stylize(s,"name")):(s=s.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),s=t.stylize(s,"string"))}return s+": "+a}function l(t){return Array.isArray(t)}function p(t){return"boolean"==typeof t}function b(t){return null===t}function g(t){return"number"==typeof t}function v(t){return"string"==typeof t}function m(t){return void 0===t}function y(t){return w(t)&&"[object RegExp]"===E(t)}function w(t){return"object"==typeof t&&null!==t}function _(t){return w(t)&&"[object Date]"===E(t)}function S(t){return w(t)&&("[object Error]"===E(t)||t instanceof Error)}function M(t){return"function"==typeof t}function E(t){return Object.prototype.toString.call(t)}function A(t){return t<10?"0"+t.toString(10):t.toString(10)}e.debuglog=function(n){if(m(o)&&(o=t.env.NODE_DEBUG||""),n=n.toUpperCase(),!s[n])if(new RegExp("\\b"+n+"\\b","i").test(o)){var r=t.pid;s[n]=function(){var t=e.format.apply(e,arguments);console.error("%s %d: %s",n,r,t)}}else s[n]=function(){};return s[n]},e.inspect=a,a.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},a.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},e.isArray=l,e.isBoolean=p,e.isNull=b,e.isNullOrUndefined=function(t){return null==t},e.isNumber=g,e.isString=v,e.isSymbol=function(t){return"symbol"==typeof t},e.isUndefined=m,e.isRegExp=y,e.isObject=w,e.isDate=_,e.isError=S,e.isFunction=M,e.isPrimitive=function(t){return null===t||"boolean"==typeof t||"number"==typeof t||"string"==typeof t||"symbol"==typeof t||void 0===t},e.isBuffer=n(69);var x=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function I(){var t=new Date,e=[A(t.getHours()),A(t.getMinutes()),A(t.getSeconds())].join(":");return[t.getDate(),x[t.getMonth()],e].join(" ")}function T(t,e){return Object.prototype.hasOwnProperty.call(t,e)}e.log=function(){console.log("%s - %s",I(),e.format.apply(e,arguments))},e.inherits=n(70),e._extend=function(t,e){if(!e||!w(e))return t;for(var n=Object.keys(e),r=n.length;r--;)t[n[r]]=e[n[r]];return t};var k="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function L(t,e){if(!t){var n=new Error("Promise was rejected with a falsy value");n.reason=t,t=n}return e(t)}e.promisify=function(t){if("function"!=typeof t)throw new TypeError('The "original" argument must be of type Function');if(k&&t[k]){var e;if("function"!=typeof(e=t[k]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(e,k,{value:e,enumerable:!1,writable:!1,configurable:!0}),e}function e(){for(var e,n,r=new Promise((function(t,r){e=t,n=r})),i=[],o=0;o<arguments.length;o++)i.push(arguments[o]);i.push((function(t,r){t?n(t):e(r)}));try{t.apply(this,i)}catch(t){n(t)}return r}return Object.setPrototypeOf(e,Object.getPrototypeOf(t)),k&&Object.defineProperty(e,k,{value:e,enumerable:!1,writable:!1,configurable:!0}),Object.defineProperties(e,r(t))},e.promisify.custom=k,e.callbackify=function(e){if("function"!=typeof e)throw new TypeError('The "original" argument must be of type Function');function n(){for(var n=[],r=0;r<arguments.length;r++)n.push(arguments[r]);var i=n.pop();if("function"!=typeof i)throw new TypeError("The last argument must be of type Function");var o=this,s=function(){return i.apply(o,arguments)};e.apply(this,n).then((function(e){t.nextTick(s,null,e)}),(function(e){t.nextTick(L,e,s)}))}return Object.setPrototypeOf(n,Object.getPrototypeOf(e)),Object.defineProperties(n,r(e)),n}}).call(this,n(19))},function(t,e){t.exports=function(t){return t&&"object"==typeof t&&"function"==typeof t.copy&&"function"==typeof t.fill&&"function"==typeof t.readUInt8}},function(t,e){"function"==typeof Object.create?t.exports=function(t,e){t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}})}:t.exports=function(t,e){t.super_=e;var n=function(){};n.prototype=e.prototype,t.prototype=new n,t.prototype.constructor=t}},function(t,e,n){"use strict";var r=n(12),i=n(15),o=i.Field,s=n(16),a=n(55),u=n(56).ShaMap,f=n(107),c=n(25),h=n(108),d=n(21).HashPrefix;t.exports=r.assign({hashes:r.assign({},c,f),binary:a,enums:i,quality:h,Field:o,HashPrefix:d,ShaMap:u},s)},function(t){t.exports=JSON.parse('{"TYPES":{"Validation":10003,"Done":-1,"Hash128":4,"Blob":7,"AccountID":8,"Amount":6,"Hash256":5,"UInt8":16,"Vector256":19,"STObject":14,"Unknown":-2,"Transaction":10001,"Hash160":17,"PathSet":18,"LedgerEntry":10002,"UInt16":1,"NotPresent":0,"UInt64":3,"UInt32":2,"STArray":15},"LEDGER_ENTRY_TYPES":{"Any":-3,"Child":-2,"Invalid":-1,"AccountRoot":97,"DirectoryNode":100,"RippleState":114,"Ticket":84,"SignerList":83,"Offer":111,"LedgerHashes":104,"Amendments":102,"FeeSettings":115,"Escrow":117,"PayChannel":120,"DepositPreauth":112,"Check":67,"Nickname":110,"Contract":99,"GeneratorMap":103},"FIELDS":[["Generic",{"nth":0,"isVLEncoded":false,"isSerialized":false,"isSigningField":false,"type":"Unknown"}],["Invalid",{"nth":-1,"isVLEncoded":false,"isSerialized":false,"isSigningField":false,"type":"Unknown"}],["LedgerEntryType",{"nth":1,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt16"}],["TransactionType",{"nth":2,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt16"}],["SignerWeight",{"nth":3,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt16"}],["Flags",{"nth":2,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["SourceTag",{"nth":3,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["Sequence",{"nth":4,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["PreviousTxnLgrSeq",{"nth":5,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["LedgerSequence",{"nth":6,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["CloseTime",{"nth":7,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["ParentCloseTime",{"nth":8,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["SigningTime",{"nth":9,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["Expiration",{"nth":10,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["TransferRate",{"nth":11,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["WalletSize",{"nth":12,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["OwnerCount",{"nth":13,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["DestinationTag",{"nth":14,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["HighQualityIn",{"nth":16,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["HighQualityOut",{"nth":17,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["LowQualityIn",{"nth":18,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["LowQualityOut",{"nth":19,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["QualityIn",{"nth":20,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["QualityOut",{"nth":21,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["StampEscrow",{"nth":22,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["BondAmount",{"nth":23,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["LoadFee",{"nth":24,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["OfferSequence",{"nth":25,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["FirstLedgerSequence",{"nth":26,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["LastLedgerSequence",{"nth":27,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["TransactionIndex",{"nth":28,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["OperationLimit",{"nth":29,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["ReferenceFeeUnits",{"nth":30,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["ReserveBase",{"nth":31,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["ReserveIncrement",{"nth":32,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["SetFlag",{"nth":33,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["ClearFlag",{"nth":34,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["SignerQuorum",{"nth":35,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["CancelAfter",{"nth":36,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["FinishAfter",{"nth":37,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["IndexNext",{"nth":1,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt64"}],["IndexPrevious",{"nth":2,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt64"}],["BookNode",{"nth":3,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt64"}],["OwnerNode",{"nth":4,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt64"}],["BaseFee",{"nth":5,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt64"}],["ExchangeRate",{"nth":6,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt64"}],["LowNode",{"nth":7,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt64"}],["HighNode",{"nth":8,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt64"}],["EmailHash",{"nth":1,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash128"}],["LedgerHash",{"nth":1,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["ParentHash",{"nth":2,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["TransactionHash",{"nth":3,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["AccountHash",{"nth":4,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["PreviousTxnID",{"nth":5,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["LedgerIndex",{"nth":6,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["WalletLocator",{"nth":7,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["RootIndex",{"nth":8,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["AccountTxnID",{"nth":9,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["BookDirectory",{"nth":16,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["InvoiceID",{"nth":17,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["Nickname",{"nth":18,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["Amendment",{"nth":19,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["TicketID",{"nth":20,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["Digest",{"nth":21,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["hash",{"nth":257,"isVLEncoded":false,"isSerialized":false,"isSigningField":false,"type":"Hash256"}],["index",{"nth":258,"isVLEncoded":false,"isSerialized":false,"isSigningField":false,"type":"Hash256"}],["Amount",{"nth":1,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["Balance",{"nth":2,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["LimitAmount",{"nth":3,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["TakerPays",{"nth":4,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["TakerGets",{"nth":5,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["LowLimit",{"nth":6,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["HighLimit",{"nth":7,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["Fee",{"nth":8,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["SendMax",{"nth":9,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["DeliverMin",{"nth":10,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["MinimumOffer",{"nth":16,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["RippleEscrow",{"nth":17,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["DeliveredAmount",{"nth":18,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["taker_gets_funded",{"nth":258,"isVLEncoded":false,"isSerialized":false,"isSigningField":false,"type":"Amount"}],["taker_pays_funded",{"nth":259,"isVLEncoded":false,"isSerialized":false,"isSigningField":false,"type":"Amount"}],["PublicKey",{"nth":1,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["MessageKey",{"nth":2,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["SigningPubKey",{"nth":3,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["TxnSignature",{"nth":4,"isVLEncoded":true,"isSerialized":true,"isSigningField":false,"type":"Blob"}],["Generator",{"nth":5,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["Signature",{"nth":6,"isVLEncoded":true,"isSerialized":true,"isSigningField":false,"type":"Blob"}],["Domain",{"nth":7,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["FundCode",{"nth":8,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["RemoveCode",{"nth":9,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["ExpireCode",{"nth":10,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["CreateCode",{"nth":11,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["MemoType",{"nth":12,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["MemoData",{"nth":13,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["MemoFormat",{"nth":14,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["Fulfillment",{"nth":16,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["Condition",{"nth":17,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["MasterSignature",{"nth":18,"isVLEncoded":true,"isSerialized":true,"isSigningField":false,"type":"Blob"}],["Account",{"nth":1,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"AccountID"}],["Owner",{"nth":2,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"AccountID"}],["Destination",{"nth":3,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"AccountID"}],["Issuer",{"nth":4,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"AccountID"}],["Authorize",{"nth":5,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"AccountID"}],["Unauthorize",{"nth":6,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"AccountID"}],["Target",{"nth":7,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"AccountID"}],["RegularKey",{"nth":8,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"AccountID"}],["ObjectEndMarker",{"nth":1,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["TransactionMetaData",{"nth":2,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["CreatedNode",{"nth":3,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["DeletedNode",{"nth":4,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["ModifiedNode",{"nth":5,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["PreviousFields",{"nth":6,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["FinalFields",{"nth":7,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["NewFields",{"nth":8,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["TemplateEntry",{"nth":9,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["Memo",{"nth":10,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["SignerEntry",{"nth":11,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["Signer",{"nth":16,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["Majority",{"nth":18,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["ArrayEndMarker",{"nth":1,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STArray"}],["Signers",{"nth":3,"isVLEncoded":false,"isSerialized":true,"isSigningField":false,"type":"STArray"}],["SignerEntries",{"nth":4,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STArray"}],["Template",{"nth":5,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STArray"}],["Necessary",{"nth":6,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STArray"}],["Sufficient",{"nth":7,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STArray"}],["AffectedNodes",{"nth":8,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STArray"}],["Memos",{"nth":9,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STArray"}],["Majorities",{"nth":16,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STArray"}],["CloseResolution",{"nth":1,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt8"}],["Method",{"nth":2,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt8"}],["TransactionResult",{"nth":3,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt8"}],["TakerPaysCurrency",{"nth":1,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash160"}],["TakerPaysIssuer",{"nth":2,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash160"}],["TakerGetsCurrency",{"nth":3,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash160"}],["TakerGetsIssuer",{"nth":4,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash160"}],["Paths",{"nth":1,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"PathSet"}],["Indexes",{"nth":1,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Vector256"}],["Hashes",{"nth":2,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Vector256"}],["Amendments",{"nth":3,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Vector256"}],["Transaction",{"nth":1,"isVLEncoded":false,"isSerialized":false,"isSigningField":false,"type":"Transaction"}],["LedgerEntry",{"nth":1,"isVLEncoded":false,"isSerialized":false,"isSigningField":false,"type":"LedgerEntry"}],["Validation",{"nth":1,"isVLEncoded":false,"isSerialized":false,"isSigningField":false,"type":"Validation"}],["SignerListID",{"nth":38,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["SettleDelay",{"nth":39,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["Channel",{"nth":22,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["ConsensusHash",{"nth":23,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["CheckID",{"nth":24,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["TickSize",{"nth":16,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt8"}],["DestinationNode",{"nth":9,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt64"}]],"TRANSACTION_RESULTS":{"telLOCAL_ERROR":-399,"telBAD_DOMAIN":-398,"telBAD_PATH_COUNT":-397,"telBAD_PUBLIC_KEY":-396,"telFAILED_PROCESSING":-395,"telINSUF_FEE_P":-394,"telNO_DST_PARTIAL":-393,"telCAN_NOT_QUEUE":-392,"telCAN_NOT_QUEUE_BALANCE":-391,"telCAN_NOT_QUEUE_BLOCKS":-390,"telCAN_NOT_QUEUE_BLOCKED":-389,"telCAN_NOT_QUEUE_FEE":-388,"telCAN_NOT_QUEUE_FULL":-387,"temMALFORMED":-299,"temBAD_AMOUNT":-298,"temBAD_CURRENCY":-297,"temBAD_EXPIRATION":-296,"temBAD_FEE":-295,"temBAD_ISSUER":-294,"temBAD_LIMIT":-293,"temBAD_OFFER":-292,"temBAD_PATH":-291,"temBAD_PATH_LOOP":-290,"temBAD_REGKEY":-289,"temBAD_SEND_XRP_LIMIT":-288,"temBAD_SEND_XRP_MAX":-287,"temBAD_SEND_XRP_NO_DIRECT":-286,"temBAD_SEND_XRP_PARTIAL":-285,"temBAD_SEND_XRP_PATHS":-284,"temBAD_SEQUENCE":-283,"temBAD_SIGNATURE":-282,"temBAD_SRC_ACCOUNT":-281,"temBAD_TRANSFER_RATE":-280,"temDST_IS_SRC":-279,"temDST_NEEDED":-278,"temINVALID":-277,"temINVALID_FLAG":-276,"temREDUNDANT":-275,"temRIPPLE_EMPTY":-274,"temDISABLED":-273,"temBAD_SIGNER":-272,"temBAD_QUORUM":-271,"temBAD_WEIGHT":-270,"temBAD_TICK_SIZE":-269,"temINVALID_ACCOUNT_ID":-268,"temCANNOT_PREAUTH_SELF":-267,"temUNCERTAIN":-266,"temUNKNOWN":-265,"tefFAILURE":-199,"tefALREADY":-198,"tefBAD_ADD_AUTH":-197,"tefBAD_AUTH":-196,"tefBAD_LEDGER":-195,"tefCREATED":-194,"tefEXCEPTION":-193,"tefINTERNAL":-192,"tefNO_AUTH_REQUIRED":-191,"tefPAST_SEQ":-190,"tefWRONG_PRIOR":-189,"tefMASTER_DISABLED":-188,"tefMAX_LEDGER":-187,"tefBAD_SIGNATURE":-186,"tefBAD_QUORUM":-185,"tefNOT_MULTI_SIGNING":-184,"tefBAD_AUTH_MASTER":-183,"tefINVARIANT_FAILED":-182,"tefTOO_BIG":-181,"terRETRY":-99,"terFUNDS_SPENT":-98,"terINSUF_FEE_B":-97,"terNO_ACCOUNT":-96,"terNO_AUTH":-95,"terNO_LINE":-94,"terOWNERS":-93,"terPRE_SEQ":-92,"terLAST":-91,"terNO_RIPPLE":-90,"terQUEUED":-89,"tesSUCCESS":0,"tecCLAIM":100,"tecPATH_PARTIAL":101,"tecUNFUNDED_ADD":102,"tecUNFUNDED_OFFER":103,"tecUNFUNDED_PAYMENT":104,"tecFAILED_PROCESSING":105,"tecDIR_FULL":121,"tecINSUF_RESERVE_LINE":122,"tecINSUF_RESERVE_OFFER":123,"tecNO_DST":124,"tecNO_DST_INSUF_XRP":125,"tecNO_LINE_INSUF_RESERVE":126,"tecNO_LINE_REDUNDANT":127,"tecPATH_DRY":128,"tecUNFUNDED":129,"tecNO_ALTERNATIVE_KEY":130,"tecNO_REGULAR_KEY":131,"tecOWNERS":132,"tecNO_ISSUER":133,"tecNO_AUTH":134,"tecNO_LINE":135,"tecINSUFF_FEE":136,"tecFROZEN":137,"tecNO_TARGET":138,"tecNO_PERMISSION":139,"tecNO_ENTRY":140,"tecINSUFFICIENT_RESERVE":141,"tecNEED_MASTER_KEY":142,"tecDST_TAG_NEEDED":143,"tecINTERNAL":144,"tecOVERSIZE":145,"tecCRYPTOCONDITION_ERROR":146,"tecINVARIANT_FAILED":147,"tecEXPIRED":148,"tecDUPLICATE":149,"tecKILLED":150,"tecHAS_OBLIGATIONS":151,"tecTOO_SOON":152},"TRANSACTION_TYPES":{"Invalid":-1,"Payment":0,"EscrowCreate":1,"EscrowFinish":2,"AccountSet":3,"EscrowCancel":4,"SetRegularKey":5,"NickNameSet":6,"OfferCreate":7,"OfferCancel":8,"Contract":9,"TicketCreate":10,"TicketCancel":11,"SignerListSet":12,"PaymentChannelCreate":13,"PaymentChannelFund":14,"PaymentChannelClaim":15,"CheckCreate":16,"CheckCash":17,"CheckCancel":18,"DepositPreauth":19,"TrustSet":20,"AccountDelete":21,"EnableAmendment":100,"SetFee":101}}')},function(t,e,n){"use strict";(function(t){Object.defineProperty(e,"__esModule",{value:!0});const r=n(74),i=n(75);const o=n(42),s=[1,225,75],a=new class{constructor(t){this.sha256=t.sha256,this.alphabet=t.alphabet,this.codec=r(this.alphabet),this.base=this.alphabet.length}encode(t,e){const n=e.versions;return this.encodeVersioned(t,n,e.expectedLength)}encodeVersioned(e,n,r){if(r&&e.length!==r)throw new Error("unexpected_payload_length: bytes.length does not match expectedLength. Ensure that the bytes are a Buffer.");return this.encodeChecked(t.from(i.concatArgs(n,e)))}encodeChecked(e){const n=this.sha256(this.sha256(e)).slice(0,4);return this.encodeRaw(t.from(i.concatArgs(e,n)))}encodeRaw(t){return this.codec.encode(t)}decode(t,e){const n=e.versions,r=e.versionTypes,o=this.decodeChecked(t);if(n.length>1&&!e.expectedLength)throw new Error("expectedLength is required because there are >= 2 possible versions");const s="number"==typeof n[0]?1:n[0].length,a=e.expectedLength||o.length-s,u=o.slice(0,-a),f=o.slice(-a);for(let t=0;t<n.length;t++){const e=Array.isArray(n[t])?n[t]:[n[t]];if(i.seqEqual(u,e))return{version:e,bytes:f,type:r?r[t]:null}}throw new Error("version_invalid: version bytes do not match any of the provided version(s)")}decodeChecked(t){const e=this.decodeRaw(t);if(e.length<5)throw new Error("invalid_input_size: decoded data must have length >= 5");if(!this.verifyCheckSum(e))throw new Error("checksum_invalid");return e.slice(0,-4)}decodeRaw(t){return this.codec.decode(t)}verifyCheckSum(t){const e=this.sha256(this.sha256(t.slice(0,-4))).slice(0,4),n=t.slice(-4);return i.seqEqual(e,n)}}({sha256:function(e){return o("sha256").update(t.from(e)).digest()},alphabet:"rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz"});function u(t){const e={versions:[0],expectedLength:20};return a.encode(t,e)}function f(t){const e={versions:[0],expectedLength:20};return a.decode(t,e).bytes}e.codec=a,e.encodeSeed=function(t,e){if(16!==t.length)throw new Error("entropy must have length 16");const n={expectedLength:16,versions:"ed25519"===e?s:[33]};return a.encode(t,n)},e.decodeSeed=function(t,e={versionTypes:["ed25519","secp256k1"],versions:[s,33],expectedLength:16}){return a.decode(t,e)},e.encodeAccountID=u,e.encodeAddress=u,e.decodeAccountID=f,e.decodeAddress=f,e.decodeNodePublic=function(t){const e={versions:[28],expectedLength:33};return a.decode(t,e).bytes},e.encodeNodePublic=function(t){const e={versions:[28],expectedLength:33};return a.encode(t,e)},e.encodeAccountPublic=function(t){const e={versions:[35],expectedLength:33};return a.encode(t,e)},e.decodeAccountPublic=function(t){const e={versions:[35],expectedLength:33};return a.decode(t,e).bytes},e.isValidClassicAddress=function(t){try{f(t)}catch(t){return!1}return!0}}).call(this,n(5).Buffer)},function(t,e,n){"use strict";var r=n(6).Buffer;t.exports=function(t){if(t.length>=255)throw new TypeError("Alphabet too long");var e=new Uint8Array(256);e.fill(255);for(var n=0;n<t.length;n++){var i=t.charAt(n),o=i.charCodeAt(0);if(255!==e[o])throw new TypeError(i+" is ambiguous");e[o]=n}var s=t.length,a=t.charAt(0),u=Math.log(s)/Math.log(256),f=Math.log(256)/Math.log(s);function c(t){if("string"!=typeof t)throw new TypeError("Expected String");if(0===t.length)return r.alloc(0);var n=0;if(" "!==t[n]){for(var i=0,o=0;t[n]===a;)i++,n++;for(var f=(t.length-n)*u+1>>>0,c=new Uint8Array(f);t[n];){var h=e[t.charCodeAt(n)];if(255===h)return;for(var d=0,l=f-1;(0!==h||d<o)&&-1!==l;l--,d++)h+=s*c[l]>>>0,c[l]=h%256>>>0,h=h/256>>>0;if(0!==h)throw new Error("Non-zero carry");o=d,n++}if(" "!==t[n]){for(var p=f-o;p!==f&&0===c[p];)p++;var b=r.allocUnsafe(i+(f-p));b.fill(0,0,i);for(var g=i;p!==f;)b[g++]=c[p++];return b}}}return{encode:function(e){if(!r.isBuffer(e))throw new TypeError("Expected Buffer");if(0===e.length)return"";for(var n=0,i=0,o=0,u=e.length;o!==u&&0===e[o];)o++,n++;for(var c=(u-o)*f+1>>>0,h=new Uint8Array(c);o!==u;){for(var d=e[o],l=0,p=c-1;(0!==d||l<i)&&-1!==p;p--,l++)d+=256*h[p]>>>0,h[p]=d%s>>>0,d=d/s>>>0;if(0!==d)throw new Error("Non-zero carry");i=l,o++}for(var b=c-i;b!==c&&0===h[b];)b++;for(var g=a.repeat(n);b<c;++b)g+=t.charAt(h[b]);return g},decodeUnsafe:c,decode:function(t){var e=c(t);if(e)return e;throw new Error("Non-base"+s+" character")}}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.seqEqual=function(t,e){if(t.length!==e.length)return!1;for(let n=0;n<t.length;n++)if(t[n]!==e[n])return!1;return!0},e.concatArgs=function(...t){const e=[];return t.forEach((function(t){if(void 0!==t.length)for(let n=0;n<t.length;n++)e.push(t[n]);else e.push(t)})),e}},function(t,e,n){"use strict";var r=n(1),i=n(43),o=n(6).Buffer,s=new Array(16);function a(){i.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}function u(t,e){return t<<e|t>>>32-e}function f(t,e,n,r,i,o,s){return u(t+(e&n|~e&r)+i+o|0,s)+e|0}function c(t,e,n,r,i,o,s){return u(t+(e&r|n&~r)+i+o|0,s)+e|0}function h(t,e,n,r,i,o,s){return u(t+(e^n^r)+i+o|0,s)+e|0}function d(t,e,n,r,i,o,s){return u(t+(n^(e|~r))+i+o|0,s)+e|0}r(a,i),a.prototype._update=function(){for(var t=s,e=0;e<16;++e)t[e]=this._block.readInt32LE(4*e);var n=this._a,r=this._b,i=this._c,o=this._d;n=f(n,r,i,o,t[0],3614090360,7),o=f(o,n,r,i,t[1],3905402710,12),i=f(i,o,n,r,t[2],606105819,17),r=f(r,i,o,n,t[3],3250441966,22),n=f(n,r,i,o,t[4],4118548399,7),o=f(o,n,r,i,t[5],1200080426,12),i=f(i,o,n,r,t[6],2821735955,17),r=f(r,i,o,n,t[7],4249261313,22),n=f(n,r,i,o,t[8],1770035416,7),o=f(o,n,r,i,t[9],2336552879,12),i=f(i,o,n,r,t[10],4294925233,17),r=f(r,i,o,n,t[11],2304563134,22),n=f(n,r,i,o,t[12],1804603682,7),o=f(o,n,r,i,t[13],4254626195,12),i=f(i,o,n,r,t[14],2792965006,17),n=c(n,r=f(r,i,o,n,t[15],1236535329,22),i,o,t[1],4129170786,5),o=c(o,n,r,i,t[6],3225465664,9),i=c(i,o,n,r,t[11],643717713,14),r=c(r,i,o,n,t[0],3921069994,20),n=c(n,r,i,o,t[5],3593408605,5),o=c(o,n,r,i,t[10],38016083,9),i=c(i,o,n,r,t[15],3634488961,14),r=c(r,i,o,n,t[4],3889429448,20),n=c(n,r,i,o,t[9],568446438,5),o=c(o,n,r,i,t[14],3275163606,9),i=c(i,o,n,r,t[3],4107603335,14),r=c(r,i,o,n,t[8],1163531501,20),n=c(n,r,i,o,t[13],2850285829,5),o=c(o,n,r,i,t[2],4243563512,9),i=c(i,o,n,r,t[7],1735328473,14),n=h(n,r=c(r,i,o,n,t[12],2368359562,20),i,o,t[5],4294588738,4),o=h(o,n,r,i,t[8],2272392833,11),i=h(i,o,n,r,t[11],1839030562,16),r=h(r,i,o,n,t[14],4259657740,23),n=h(n,r,i,o,t[1],2763975236,4),o=h(o,n,r,i,t[4],1272893353,11),i=h(i,o,n,r,t[7],4139469664,16),r=h(r,i,o,n,t[10],3200236656,23),n=h(n,r,i,o,t[13],681279174,4),o=h(o,n,r,i,t[0],3936430074,11),i=h(i,o,n,r,t[3],3572445317,16),r=h(r,i,o,n,t[6],76029189,23),n=h(n,r,i,o,t[9],3654602809,4),o=h(o,n,r,i,t[12],3873151461,11),i=h(i,o,n,r,t[15],530742520,16),n=d(n,r=h(r,i,o,n,t[2],3299628645,23),i,o,t[0],4096336452,6),o=d(o,n,r,i,t[7],1126891415,10),i=d(i,o,n,r,t[14],2878612391,15),r=d(r,i,o,n,t[5],4237533241,21),n=d(n,r,i,o,t[12],1700485571,6),o=d(o,n,r,i,t[3],2399980690,10),i=d(i,o,n,r,t[10],4293915773,15),r=d(r,i,o,n,t[1],2240044497,21),n=d(n,r,i,o,t[8],1873313359,6),o=d(o,n,r,i,t[15],4264355552,10),i=d(i,o,n,r,t[6],2734768916,15),r=d(r,i,o,n,t[13],1309151649,21),n=d(n,r,i,o,t[4],4149444226,6),o=d(o,n,r,i,t[11],3174756917,10),i=d(i,o,n,r,t[2],718787259,15),r=d(r,i,o,n,t[9],3951481745,21),this._a=this._a+n|0,this._b=this._b+r|0,this._c=this._c+i|0,this._d=this._d+o|0},a.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var t=o.allocUnsafe(16);return t.writeInt32LE(this._a,0),t.writeInt32LE(this._b,4),t.writeInt32LE(this._c,8),t.writeInt32LE(this._d,12),t},t.exports=a},function(t,e){},function(t,e,n){"use strict";var r=n(32).Buffer,i=n(79);t.exports=function(){function t(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.head=null,this.tail=null,this.length=0}return t.prototype.push=function(t){var e={data:t,next:null};this.length>0?this.tail.next=e:this.head=e,this.tail=e,++this.length},t.prototype.unshift=function(t){var e={data:t,next:this.head};0===this.length&&(this.tail=e),this.head=e,++this.length},t.prototype.shift=function(){if(0!==this.length){var t=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,t}},t.prototype.clear=function(){this.head=this.tail=null,this.length=0},t.prototype.join=function(t){if(0===this.length)return"";for(var e=this.head,n=""+e.data;e=e.next;)n+=t+e.data;return n},t.prototype.concat=function(t){if(0===this.length)return r.alloc(0);if(1===this.length)return this.head.data;for(var e,n,i,o=r.allocUnsafe(t>>>0),s=this.head,a=0;s;)e=s.data,n=o,i=a,e.copy(n,i),a+=s.data.length,s=s.next;return o},t}(),i&&i.inspect&&i.inspect.custom&&(t.exports.prototype[i.inspect.custom]=function(){var t=i.inspect({length:this.length});return this.constructor.name+" "+t})},function(t,e){},function(t,e,n){(function(t){var r=void 0!==t&&t||"undefined"!=typeof self&&self||window,i=Function.prototype.apply;function o(t,e){this._id=t,this._clearFn=e}e.setTimeout=function(){return new o(i.call(setTimeout,r,arguments),clearTimeout)},e.setInterval=function(){return new o(i.call(setInterval,r,arguments),clearInterval)},e.clearTimeout=e.clearInterval=function(t){t&&t.close()},o.prototype.unref=o.prototype.ref=function(){},o.prototype.close=function(){this._clearFn.call(r,this._id)},e.enroll=function(t,e){clearTimeout(t._idleTimeoutId),t._idleTimeout=e},e.unenroll=function(t){clearTimeout(t._idleTimeoutId),t._idleTimeout=-1},e._unrefActive=e.active=function(t){clearTimeout(t._idleTimeoutId);var e=t._idleTimeout;e>=0&&(t._idleTimeoutId=setTimeout((function(){t._onTimeout&&t._onTimeout()}),e))},n(81),e.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==t&&t.setImmediate||this&&this.setImmediate,e.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==t&&t.clearImmediate||this&&this.clearImmediate}).call(this,n(9))},function(t,e,n){(function(t,e){!function(t,n){"use strict";if(!t.setImmediate){var r,i,o,s,a,u=1,f={},c=!1,h=t.document,d=Object.getPrototypeOf&&Object.getPrototypeOf(t);d=d&&d.setTimeout?d:t,"[object process]"==={}.toString.call(t.process)?r=function(t){e.nextTick((function(){p(t)}))}:!function(){if(t.postMessage&&!t.importScripts){var e=!0,n=t.onmessage;return t.onmessage=function(){e=!1},t.postMessage("","*"),t.onmessage=n,e}}()?t.MessageChannel?((o=new MessageChannel).port1.onmessage=function(t){p(t.data)},r=function(t){o.port2.postMessage(t)}):h&&"onreadystatechange"in h.createElement("script")?(i=h.documentElement,r=function(t){var e=h.createElement("script");e.onreadystatechange=function(){p(t),e.onreadystatechange=null,i.removeChild(e),e=null},i.appendChild(e)}):r=function(t){setTimeout(p,0,t)}:(s="setImmediate$"+Math.random()+"$",a=function(e){e.source===t&&"string"==typeof e.data&&0===e.data.indexOf(s)&&p(+e.data.slice(s.length))},t.addEventListener?t.addEventListener("message",a,!1):t.attachEvent("onmessage",a),r=function(e){t.postMessage(s+e,"*")}),d.setImmediate=function(t){"function"!=typeof t&&(t=new Function(""+t));for(var e=new Array(arguments.length-1),n=0;n<e.length;n++)e[n]=arguments[n+1];var i={callback:t,args:e};return f[u]=i,r(u),u++},d.clearImmediate=l}function l(t){delete f[t]}function p(t){if(c)setTimeout(p,0,t);else{var e=f[t];if(e){c=!0;try{!function(t){var e=t.callback,n=t.args;switch(n.length){case 0:e();break;case 1:e(n[0]);break;case 2:e(n[0],n[1]);break;case 3:e(n[0],n[1],n[2]);break;default:e.apply(void 0,n)}}(e)}finally{l(t),c=!1}}}}}("undefined"==typeof self?void 0===t?this:t:self)}).call(this,n(9),n(19))},function(t,e,n){(function(e){function n(t){try{if(!e.localStorage)return!1}catch(t){return!1}var n=e.localStorage[t];return null!=n&&"true"===String(n).toLowerCase()}t.exports=function(t,e){if(n("noDeprecation"))return t;var r=!1;return function(){if(!r){if(n("throwDeprecation"))throw new Error(e);n("traceDeprecation")?console.trace(e):console.warn(e),r=!0}return t.apply(this,arguments)}}}).call(this,n(9))},function(t,e,n){var r=n(5),i=r.Buffer;function o(t,e){for(var n in t)e[n]=t[n]}function s(t,e,n){return i(t,e,n)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?t.exports=r:(o(r,e),e.Buffer=s),o(i,s),s.from=function(t,e,n){if("number"==typeof t)throw new TypeError("Argument must not be a number");return i(t,e,n)},s.alloc=function(t,e,n){if("number"!=typeof t)throw new TypeError("Argument must be a number");var r=i(t);return void 0!==e?"string"==typeof n?r.fill(e,n):r.fill(e):r.fill(0),r},s.allocUnsafe=function(t){if("number"!=typeof t)throw new TypeError("Argument must be a number");return i(t)},s.allocUnsafeSlow=function(t){if("number"!=typeof t)throw new TypeError("Argument must be a number");return r.SlowBuffer(t)}},function(t,e,n){"use strict";t.exports=o;var r=n(48),i=Object.create(n(20));function o(t){if(!(this instanceof o))return new o(t);r.call(this,t)}i.inherits=n(1),i.inherits(o,r),o.prototype._transform=function(t,e,n){n(null,t)}},function(t,e,n){t.exports=n(33)},function(t,e,n){t.exports=n(13)},function(t,e,n){t.exports=n(31).Transform},function(t,e,n){t.exports=n(31).PassThrough},function(t,e,n){"use strict";var r=n(5).Buffer,i=n(1),o=n(43),s=new Array(16),a=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],u=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],f=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],c=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],h=[0,1518500249,1859775393,2400959708,2840853838],d=[1352829926,1548603684,1836072691,2053994217,0];function l(){o.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}function p(t,e){return t<<e|t>>>32-e}function b(t,e,n,r,i,o,s,a){return p(t+(e^n^r)+o+s|0,a)+i|0}function g(t,e,n,r,i,o,s,a){return p(t+(e&n|~e&r)+o+s|0,a)+i|0}function v(t,e,n,r,i,o,s,a){return p(t+((e|~n)^r)+o+s|0,a)+i|0}function m(t,e,n,r,i,o,s,a){return p(t+(e&r|n&~r)+o+s|0,a)+i|0}function y(t,e,n,r,i,o,s,a){return p(t+(e^(n|~r))+o+s|0,a)+i|0}i(l,o),l.prototype._update=function(){for(var t=s,e=0;e<16;++e)t[e]=this._block.readInt32LE(4*e);for(var n=0|this._a,r=0|this._b,i=0|this._c,o=0|this._d,l=0|this._e,w=0|this._a,_=0|this._b,S=0|this._c,M=0|this._d,E=0|this._e,A=0;A<80;A+=1){var x,I;A<16?(x=b(n,r,i,o,l,t[a[A]],h[0],f[A]),I=y(w,_,S,M,E,t[u[A]],d[0],c[A])):A<32?(x=g(n,r,i,o,l,t[a[A]],h[1],f[A]),I=m(w,_,S,M,E,t[u[A]],d[1],c[A])):A<48?(x=v(n,r,i,o,l,t[a[A]],h[2],f[A]),I=v(w,_,S,M,E,t[u[A]],d[2],c[A])):A<64?(x=m(n,r,i,o,l,t[a[A]],h[3],f[A]),I=g(w,_,S,M,E,t[u[A]],d[3],c[A])):(x=y(n,r,i,o,l,t[a[A]],h[4],f[A]),I=b(w,_,S,M,E,t[u[A]],d[4],c[A])),n=l,l=o,o=p(i,10),i=r,r=x,w=E,E=M,M=p(S,10),S=_,_=I}var T=this._b+i+M|0;this._b=this._c+o+E|0,this._c=this._d+l+w|0,this._d=this._e+n+_|0,this._e=this._a+r+S|0,this._a=T},l.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var t=r.alloc?r.alloc(20):new r(20);return t.writeInt32LE(this._a,0),t.writeInt32LE(this._b,4),t.writeInt32LE(this._c,8),t.writeInt32LE(this._d,12),t.writeInt32LE(this._e,16),t},t.exports=l},function(t,e,n){(e=t.exports=function(t){t=t.toLowerCase();var n=e[t];if(!n)throw new Error(t+" is not supported (we accept pull requests)");return new n}).sha=n(91),e.sha1=n(92),e.sha224=n(93),e.sha256=n(49),e.sha384=n(94),e.sha512=n(50)},function(t,e,n){var r=n(1),i=n(17),o=n(6).Buffer,s=[1518500249,1859775393,-1894007588,-899497514],a=new Array(80);function u(){this.init(),this._w=a,i.call(this,64,56)}function f(t){return t<<30|t>>>2}function c(t,e,n,r){return 0===t?e&n|~e&r:2===t?e&n|e&r|n&r:e^n^r}r(u,i),u.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},u.prototype._update=function(t){for(var e,n=this._w,r=0|this._a,i=0|this._b,o=0|this._c,a=0|this._d,u=0|this._e,h=0;h<16;++h)n[h]=t.readInt32BE(4*h);for(;h<80;++h)n[h]=n[h-3]^n[h-8]^n[h-14]^n[h-16];for(var d=0;d<80;++d){var l=~~(d/20),p=0|((e=r)<<5|e>>>27)+c(l,i,o,a)+u+n[d]+s[l];u=a,a=o,o=f(i),i=r,r=p}this._a=r+this._a|0,this._b=i+this._b|0,this._c=o+this._c|0,this._d=a+this._d|0,this._e=u+this._e|0},u.prototype._hash=function(){var t=o.allocUnsafe(20);return t.writeInt32BE(0|this._a,0),t.writeInt32BE(0|this._b,4),t.writeInt32BE(0|this._c,8),t.writeInt32BE(0|this._d,12),t.writeInt32BE(0|this._e,16),t},t.exports=u},function(t,e,n){var r=n(1),i=n(17),o=n(6).Buffer,s=[1518500249,1859775393,-1894007588,-899497514],a=new Array(80);function u(){this.init(),this._w=a,i.call(this,64,56)}function f(t){return t<<5|t>>>27}function c(t){return t<<30|t>>>2}function h(t,e,n,r){return 0===t?e&n|~e&r:2===t?e&n|e&r|n&r:e^n^r}r(u,i),u.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},u.prototype._update=function(t){for(var e,n=this._w,r=0|this._a,i=0|this._b,o=0|this._c,a=0|this._d,u=0|this._e,d=0;d<16;++d)n[d]=t.readInt32BE(4*d);for(;d<80;++d)n[d]=(e=n[d-3]^n[d-8]^n[d-14]^n[d-16])<<1|e>>>31;for(var l=0;l<80;++l){var p=~~(l/20),b=f(r)+h(p,i,o,a)+u+n[l]+s[p]|0;u=a,a=o,o=c(i),i=r,r=b}this._a=r+this._a|0,this._b=i+this._b|0,this._c=o+this._c|0,this._d=a+this._d|0,this._e=u+this._e|0},u.prototype._hash=function(){var t=o.allocUnsafe(20);return t.writeInt32BE(0|this._a,0),t.writeInt32BE(0|this._b,4),t.writeInt32BE(0|this._c,8),t.writeInt32BE(0|this._d,12),t.writeInt32BE(0|this._e,16),t},t.exports=u},function(t,e,n){var r=n(1),i=n(49),o=n(17),s=n(6).Buffer,a=new Array(64);function u(){this.init(),this._w=a,o.call(this,64,56)}r(u,i),u.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},u.prototype._hash=function(){var t=s.allocUnsafe(28);return t.writeInt32BE(this._a,0),t.writeInt32BE(this._b,4),t.writeInt32BE(this._c,8),t.writeInt32BE(this._d,12),t.writeInt32BE(this._e,16),t.writeInt32BE(this._f,20),t.writeInt32BE(this._g,24),t},t.exports=u},function(t,e,n){var r=n(1),i=n(50),o=n(17),s=n(6).Buffer,a=new Array(160);function u(){this.init(),this._w=a,o.call(this,128,112)}r(u,i),u.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},u.prototype._hash=function(){var t=s.allocUnsafe(48);function e(e,n,r){t.writeInt32BE(e,r),t.writeInt32BE(n,r+4)}return e(this._ah,this._al,0),e(this._bh,this._bl,8),e(this._ch,this._cl,16),e(this._dh,this._dl,24),e(this._eh,this._el,32),e(this._fh,this._fl,40),t},t.exports=u},function(t,e,n){var r=n(6).Buffer,i=n(44).Transform,o=n(34).StringDecoder;function s(t){i.call(this),this.hashMode="string"==typeof t,this.hashMode?this[t]=this._finalOrDigest:this.final=this._finalOrDigest,this._final&&(this.__final=this._final,this._final=null),this._decoder=null,this._encoding=null}n(1)(s,i),s.prototype.update=function(t,e,n){"string"==typeof t&&(t=r.from(t,e));var i=this._update(t);return this.hashMode?this:(n&&(i=this._toString(i,n)),i)},s.prototype.setAutoPadding=function(){},s.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")},s.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")},s.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")},s.prototype._transform=function(t,e,n){var r;try{this.hashMode?this._update(t):this.push(this._update(t))}catch(t){r=t}finally{n(r)}},s.prototype._flush=function(t){var e;try{this.push(this.__final())}catch(t){e=t}t(e)},s.prototype._finalOrDigest=function(t){var e=this.__final()||r.alloc(0);return t&&(e=this._toString(e,t,!0)),e},s.prototype._toString=function(t,e,n){if(this._decoder||(this._decoder=new o(e),this._encoding=e),this._encoding!==e)throw new Error("can't switch encodings");var r=this._decoder.write(t);return n&&(r+=this._decoder.end()),r},t.exports=s},function(t,e,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};var i=n(12),o=n(2),s=n(11),a=n(51),u=n(0),f=n(10).SerializedType,c=n(3).bytesToHex,h=n(38).Currency,d=n(28).AccountID,l=n(52).UInt64,p=new a("9999999999999999e80"),b=new a("1000000000000000e-96"),g=new a("1e6"),v=new a("1e17"),m=new a("1e-6"),y=v.dividedBy(g);a.config({toExpPos:96,toExpNeg:-112});var w="\nNative values must be described in drops, a million of which equal one XRP.\nThis must be an integer number, with the absolute value not exceeding "+v+"\n\nIOU values must have a maximum precision of 16 significant digits. They are serialized as\na canonicalised mantissa and exponent.\n\nThe valid range for a mantissa is between 1000000000000000 and 9999999999999999\nThe exponent must be >= "+-96+" and <= 80\n\nThus the largest serializable IOU value is:\n"+p.toString()+"\n\nAnd the smallest:\n"+b.toString()+"\n";function _(t){return!i.isUndefined(t)}function S(t){throw new Error(t.toString()+" is an illegal amount\n"+w)}var M={string:function(t){return t.match(/^\d+$/)||S(t),[new a(t).dividedBy(g),h.XRP]},object:function(t){return o(_(t.currency),"currency must be defined"),o(_(t.issuer),"issuer must be defined"),[new a(t.value),h.from(t.currency),d.from(t.issuer)]}},E=u({Amount:function(t,e,n){var r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];this.value=t||new a("0"),this.currency=e||h.XRP,this.issuer=n||null,r&&this.assertValueIsValid()},mixins:f,statics:{from:function(t){if(t instanceof this)return t;var e=M[void 0===t?"undefined":r(t)];if(e)return new(Function.prototype.bind.apply(this,[null].concat(function(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e<t.length;e++)n[e]=t[e];return n}return Array.from(t)}(e(t)))));throw new Error("unsupported value: "+t)},fromParser:function(t){var e=t.read(8),n=e[0],r=e[1],i=64&n?"":"-";if(128&n){e[0]=0;var o=t.readType(h),s=t.readType(d),u=((63&n)<<2)+((255&r)>>6)-97;return e[1]&=63,new this(new a(i+"0x"+c(e)).times("1e"+u),o,s,!1)}return e[0]&=63,new this(new a(i+"0x"+c(e)).dividedBy(g),h.XRP,null,!1)}},assertValueIsValid:function(){if(!this.isZero())if(this.isNative()){var t=this.value.abs();(t.lt(m)||t.gt(y))&&S(this.value.times(g)),this.verifyNoDecimal(this.value)}else{var e=this.value.precision(),n=this.exponent();(e>16||n>80||n<-96)&&S(this.value)}},isNative:function(){return this.currency.isNative()},mantissa:function(){var t=this.verifyNoDecimal();return new l(new s(t))},verifyNoDecimal:function(){var t=this.value.times("1e"+-this.exponent()).abs().toString();return-1!==t.indexOf(".")&&S(t),t},isZero:function(){return this.value.isZero()},exponent:function(){return this.isNative()?-6:this.value.e-15},valueString:function(){return(this.isNative()?this.value.times(g):this.value).toString()},toBytesSink:function(t){var e=this.isNative(),n=!this.value.isNegative(),r=this.mantissa().toBytes();if(e)r[0]|=n?64:0,t.put(r);else{if(r[0]|=128,!this.isZero()){n&&(r[0]|=64);var i=97+(this.value.e-15);r[0]|=i>>>2,r[1]|=(3&i)<<6}t.put(r),this.currency.toBytesSink(t),this.issuer.toBytesSink(t)}},toJSON:function(){var t=this.valueString();return this.isNative()?t:{value:t,currency:this.currency.toJSON(),issuer:this.issuer.toJSON()}}});t.exports={Amount:E}},function(t,e){},function(t,e,n){"use strict";var r=n(0),i=n(3).parseBytes,o=r({mixins:n(10).SerializedType,Blob:function(t){this._bytes=t?i(t,Uint8Array):new Uint8Array(0)},statics:{fromParser:function(t,e){return new this(t.read(e))},from:function(t){return t instanceof this?t:new this(t)}}});t.exports={Blob:o}},function(t,e,n){"use strict";var r=n(0)({inherits:n(36).Hash,statics:{width:16}});t.exports={Hash128:r}},function(t,e,n){"use strict";var r=n(0),i=n(10),o=i.SerializedType,s=i.ensureArrayLikeIs,a=n(38).Currency,u=n(28).AccountID,f=r({statics:{from:function(t){if(t instanceof this)return t;var e=new f;return t.issuer&&(e.issuer=u.from(t.issuer)),t.account&&(e.account=u.from(t.account)),t.currency&&(e.currency=a.from(t.currency)),e},parse:function(t,e){var n=new f;return 1&e&&(n.account=u.fromParser(t)),16&e&&(n.currency=a.fromParser(t)),32&e&&(n.issuer=u.fromParser(t)),n}},toJSON:function(){var t=this.type(),e={};return 1&t&&(e.account=this.account.toJSON()),32&t&&(e.issuer=this.issuer.toJSON()),16&t&&(e.currency=this.currency.toJSON()),e},type:function(){var t=0;return this.issuer&&(t+=32),this.account&&(t+=1),this.currency&&(t+=16),t}}),c=r({inherits:Array,statics:{from:function(t){return s(c,t).withChildren(f)}},toJSON:function(){return this.map((function(t){return t.toJSON()}))}}),h=r({mixins:o,inherits:Array,statics:{from:function(t){return s(h,t).withChildren(c)},fromParser:function(t){for(var e=new this,n=void 0;!t.end();){var r=t.readUInt8();if(0===r)break;255!==r?(n||(n=new c,e.push(n)),n.push(f.parse(t,r))):n=null}return e}},toJSON:function(){return this.map((function(t){return t.toJSON()}))},toBytesSink:function(t){var e=0;this.forEach((function(n){0!=e++&&t.put([255]),n.forEach((function(e){t.put([e.type()]),e.account&&e.account.toBytesSink(t),e.currency&&e.currency.toBytesSink(t),e.issuer&&e.issuer.toBytesSink(t)}))})),t.put([0])}});t.exports={PathSet:h}},function(t,e,n){"use strict";var r=n(0),i=n(10),o=i.ensureArrayLikeIs,s=i.SerializedType,a=n(15).Field,u=n(54).STObject,f=a.ArrayEndMarker,c=r({mixins:s,inherits:Array,statics:{fromParser:function(t){for(var e=new c;!t.end();){var n=t.readField();if(n===f)break;var r=new u;r[n]=t.readFieldValue(n),e.push(r)}return e},from:function(t){return o(c,t).withChildren(u)}},toJSON:function(){return this.map((function(t){return t.toJSON()}))},toBytesSink:function(t){this.forEach((function(e){return e.toBytesSink(t)}))}});t.exports={STArray:c}},function(t,e,n){"use strict";var r=n(0)({inherits:n(24).UInt,statics:{width:2}});t.exports={UInt16:r}},function(t,e,n){"use strict";var r=n(0)({inherits:n(24).UInt,statics:{width:4}});t.exports={UInt32:r}},function(t,e,n){"use strict";var r=n(0)({inherits:n(24).UInt,statics:{width:1}});t.exports={UInt8:r}},function(t,e,n){"use strict";var r=n(0),i=n(53).Hash256,o=n(10),s=o.ensureArrayLikeIs,a=r({mixins:o.SerializedType,inherits:Array,statics:{fromParser:function(t,e){for(var n=new this,r=(null!==e?e:t.size()-t.pos())/32,o=0;o<r;o++)n.push(i.fromParser(t));return n},from:function(t){return s(a,t).withChildren(i)}},toBytesSink:function(t){this.forEach((function(e){return e.toBytesSink(t)}))},toJSON:function(){return this.map((function(t){return t.toJSON()}))}});t.exports={Vector256:a}},function(t,e,n){"use strict";var r=n(2),i=n(0),o=n(15).Field,s=n(3),a=s.slice,u=s.parseBytes,f=i({BinaryParser:function(t){this._buf=u(t,Uint8Array),this._length=this._buf.length,this._cursor=0},skip:function(t){this._cursor+=t},read:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Uint8Array,n=this._cursor,i=this._cursor+t;return r(i<=this._buf.length),this._cursor=i,a(this._buf,n,i,e)},readUIntN:function(t){return this.read(t,Array).reduce((function(t,e){return t<<8|e}))>>>0},readUInt8:function(){return this._buf[this._cursor++]},readUInt16:function(){return this.readUIntN(2)},readUInt32:function(){return this.readUIntN(4)},pos:function(){return this._cursor},size:function(){return this._buf.length},end:function(t){var e=this.pos();return e>=this._length||null!==t&&e>=t},readVL:function(){return this.read(this.readVLLength())},readVLLength:function(){var t=this.readUInt8();if(t<=192)return t;if(t<=240)return 193+256*(t-193)+this.readUInt8();if(t<=254)return 12481+65536*(t-241)+256*this.readUInt8()+this.readUInt8();throw new Error("Invalid varint length indicator")},readFieldOrdinal:function(){var t=this.readUInt8();return((240&t)>>>4||this.readUInt8())<<16|(15&t||this.readUInt8())},readField:function(){return o.from(this.readFieldOrdinal())},readType:function(t){return t.fromParser(this)},typeForField:function(t){return t.associatedType},readFieldValue:function(t){var e=this.typeForField(t);if(!e)throw new Error("unsupported: ("+t.name+", "+t.type.name+")");var n=t.isVLEncoded?this.readVLLength():null,r=e.fromParser(this,n);if(void 0===r)throw new Error("fromParser for ("+t.name+", "+t.type.name+") -> undefined ");return r},readFieldAndValue:function(){var t=this.readField();return[t,this.readFieldValue(t)]}});t.exports={BinaryParser:f}},function(t,e,n){"use strict";var r=n(12),i=n(11),o=n(2),s=n(16),a=s.STObject,u=s.Hash256,f=n(56).ShaMap,c=n(21).HashPrefix,h=n(25).Sha512Half,d=n(55),l=d.BinarySerializer,p=d.serializeObject;function b(t,e){var n=new f;return e.forEach((function(e){return n.addItem.apply(n,function(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e<t.length;e++)n[e]=t[e];return n}return Array.from(t)}(t(e)))})),n.hash()}var g=r.partial(b,(function(t){return o(t.hash),[u.from(t.hash),{hashPrefix:function(){return c.transaction},toBytesSink:function(e){var n=new l(e);n.writeLengthEncoded(a.from(t)),n.writeLengthEncoded(a.from(t.metaData))}}]})),v=r.partial(b,(function(t){var e=u.from(t.index),n=p(t);return[e,{hashPrefix:function(){return c.accountStateEntry},toBytesSink:function(t){t.put(n)}}]}));t.exports={accountStateHash:v,transactionTreeHash:g,ledgerHash:function(t){var e=new h;return e.put(c.ledgerHeader),o(void 0!==t.parent_close_time),o(void 0!==t.close_flags),s.UInt32.from(t.ledger_index).toBytesSink(e),s.UInt64.from(new i(t.total_coins)).toBytesSink(e),s.Hash256.from(t.parent_hash).toBytesSink(e),s.Hash256.from(t.transaction_hash).toBytesSink(e),s.Hash256.from(t.account_hash).toBytesSink(e),s.UInt32.from(t.parent_close_time).toBytesSink(e),s.UInt32.from(t.close_time).toBytesSink(e),s.UInt8.from(t.close_time_resolution).toBytesSink(e),s.UInt8.from(t.close_flags).toBytesSink(e),e.finish()}}},function(t,e,n){"use strict";var r=n(51),i=n(3),o=i.bytesToHex,s=i.slice,a=i.parseBytes,u=n(16).UInt64,f=n(11);t.exports={encode:function(t){var e=t instanceof r?t:new r(t),n=e.e-15,i=e.times("1e"+-n).abs().toString(),o=new u(new f(i)).toBytes();return o[0]=n+100,o},decode:function(t){var e=s(a(t),-8),n=e[0]-100;return new r("0x"+o(s(e,1))).times("1e"+n)}}},function(t,e,n){"use strict";(function(e){const r=n(2),i=n(39),o=n(18),s=n(60),a=n(29),u=n(130),f=n(132),c=s.eddsa("ed25519"),h=s.ec("secp256k1"),{hexToBytes:d}=f,{bytesToHex:l}=f;function p(t){return o.sha512().update(t).digest().slice(0,32)}const b={deriveKeypair(t,e){const n="00"+u.derivePrivateKey(t,e).toString(16,64).toUpperCase(),r=l(h.keyFromPrivate(n.slice(2)).getPublic().encodeCompressed());return{privateKey:n,publicKey:r}},sign:(t,e)=>l(h.sign(p(t),d(e),{canonical:!0}).toDER()),verify:(t,e,n)=>h.verify(p(t),e,d(n))},g={deriveKeypair(t){const e=p(t);return{privateKey:"ED"+l(e),publicKey:"ED"+l(c.keyFromSecret(e).pubBytes())}},sign:(t,e)=>(r(Array.isArray(t),"message must be array of octets"),l(c.sign(t,d(e).slice(1)).toBytes())),verify:(t,e,n)=>c.verify(t,d(e),d(n).slice(1))};function v(t){return{"ecdsa-secp256k1":b,ed25519:g}[t]}function m(t){const e=d(t);return 33===e.length&&237===e[0]?"ed25519":"ecdsa-secp256k1"}function y(t){return a.encodeAccountID(f.computePublicKeyHash(t))}const{decodeSeed:w}=a;t.exports={generateSeed:function(t={}){r(!t.entropy||t.entropy.length>=16,"entropy too short");const e=t.entropy?t.entropy.slice(0,16):i(16),n="ed25519"===t.algorithm?"ed25519":"secp256k1";return a.encodeSeed(e,n)},deriveKeypair:function(t,e){const n=a.decodeSeed(t),r=v("ed25519"===n.type?"ed25519":"ecdsa-secp256k1"),i=r.deriveKeypair(n.bytes,e),o=p("This test message should verify."),s=r.sign(o,i.privateKey);if(!0!==r.verify(o,s,i.publicKey))throw new Error("derived keypair did not generate verifiable signature");return i},sign:function(t,e){return v(m(e)).sign(d(t),e)},verify:function(t,e,n){return v(m(n)).verify(d(t),e,n)},deriveAddress:function(t){return y(e.from(d(t)))},deriveNodeAddress:function(t){const e=a.decodeNodePublic(t);return y(u.accountPublicFromPublicGenerator(e))},decodeSeed:w}}).call(this,n(5).Buffer)},function(t,e){},function(t,e,n){"use strict";e.sha1=n(112),e.sha224=n(113),e.sha256=n(58),e.sha384=n(114),e.sha512=n(59)},function(t,e,n){"use strict";var r=n(7),i=n(22),o=n(57),s=r.rotl32,a=r.sum32,u=r.sum32_5,f=o.ft_1,c=i.BlockHash,h=[1518500249,1859775393,2400959708,3395469782];function d(){if(!(this instanceof d))return new d;c.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}r.inherits(d,c),t.exports=d,d.blockSize=512,d.outSize=160,d.hmacStrength=80,d.padLength=64,d.prototype._update=function(t,e){for(var n=this.W,r=0;r<16;r++)n[r]=t[e+r];for(;r<n.length;r++)n[r]=s(n[r-3]^n[r-8]^n[r-14]^n[r-16],1);var i=this.h[0],o=this.h[1],c=this.h[2],d=this.h[3],l=this.h[4];for(r=0;r<n.length;r++){var p=~~(r/20),b=u(s(i,5),f(p,o,c,d),l,n[r],h[p]);l=d,d=c,c=s(o,30),o=i,i=b}this.h[0]=a(this.h[0],i),this.h[1]=a(this.h[1],o),this.h[2]=a(this.h[2],c),this.h[3]=a(this.h[3],d),this.h[4]=a(this.h[4],l)},d.prototype._digest=function(t){return"hex"===t?r.toHex32(this.h,"big"):r.split32(this.h,"big")}},function(t,e,n){"use strict";var r=n(7),i=n(58);function o(){if(!(this instanceof o))return new o;i.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}r.inherits(o,i),t.exports=o,o.blockSize=512,o.outSize=224,o.hmacStrength=192,o.padLength=64,o.prototype._digest=function(t){return"hex"===t?r.toHex32(this.h.slice(0,7),"big"):r.split32(this.h.slice(0,7),"big")}},function(t,e,n){"use strict";var r=n(7),i=n(59);function o(){if(!(this instanceof o))return new o;i.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}r.inherits(o,i),t.exports=o,o.blockSize=1024,o.outSize=384,o.hmacStrength=192,o.padLength=128,o.prototype._digest=function(t){return"hex"===t?r.toHex32(this.h.slice(0,12),"big"):r.split32(this.h.slice(0,12),"big")}},function(t,e,n){"use strict";var r=n(7),i=n(22),o=r.rotl32,s=r.sum32,a=r.sum32_3,u=r.sum32_4,f=i.BlockHash;function c(){if(!(this instanceof c))return new c;f.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}function h(t,e,n,r){return t<=15?e^n^r:t<=31?e&n|~e&r:t<=47?(e|~n)^r:t<=63?e&r|n&~r:e^(n|~r)}function d(t){return t<=15?0:t<=31?1518500249:t<=47?1859775393:t<=63?2400959708:2840853838}function l(t){return t<=15?1352829926:t<=31?1548603684:t<=47?1836072691:t<=63?2053994217:0}r.inherits(c,f),e.ripemd160=c,c.blockSize=512,c.outSize=160,c.hmacStrength=192,c.padLength=64,c.prototype._update=function(t,e){for(var n=this.h[0],r=this.h[1],i=this.h[2],f=this.h[3],c=this.h[4],m=n,y=r,w=i,_=f,S=c,M=0;M<80;M++){var E=s(o(u(n,h(M,r,i,f),t[p[M]+e],d(M)),g[M]),c);n=c,c=f,f=o(i,10),i=r,r=E,E=s(o(u(m,h(79-M,y,w,_),t[b[M]+e],l(M)),v[M]),S),m=S,S=_,_=o(w,10),w=y,y=E}E=a(this.h[1],i,_),this.h[1]=a(this.h[2],f,S),this.h[2]=a(this.h[3],c,m),this.h[3]=a(this.h[4],n,y),this.h[4]=a(this.h[0],r,w),this.h[0]=E},c.prototype._digest=function(t){return"hex"===t?r.toHex32(this.h,"little"):r.split32(this.h,"little")};var p=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],b=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],g=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],v=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]},function(t,e,n){"use strict";var r=n(7),i=n(14);function o(t,e,n){if(!(this instanceof o))return new o(t,e,n);this.Hash=t,this.blockSize=t.blockSize/8,this.outSize=t.outSize/8,this.inner=null,this.outer=null,this._init(r.toArray(e,n))}t.exports=o,o.prototype._init=function(t){t.length>this.blockSize&&(t=(new this.Hash).update(t).digest()),i(t.length<=this.blockSize);for(var e=t.length;e<this.blockSize;e++)t.push(0);for(e=0;e<t.length;e++)t[e]^=54;for(this.inner=(new this.Hash).update(t),e=0;e<t.length;e++)t[e]^=106;this.outer=(new this.Hash).update(t)},o.prototype.update=function(t,e){return this.inner.update(t,e),this},o.prototype.digest=function(t){return this.outer.update(this.inner.digest()),this.outer.digest(t)}},function(t){t.exports=JSON.parse('{"_from":"elliptic@^6.5.2","_id":"elliptic@6.5.2","_inBundle":false,"_integrity":"sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw==","_location":"/elliptic","_phantomChildren":{},"_requested":{"type":"range","registry":true,"raw":"elliptic@^6.5.2","name":"elliptic","escapedName":"elliptic","rawSpec":"^6.5.2","saveSpec":null,"fetchSpec":"^6.5.2"},"_requiredBy":["/ripple-keypairs"],"_resolved":"https://registry.npmjs.org/elliptic/-/elliptic-6.5.2.tgz","_shasum":"05c5678d7173c049d8ca433552224a495d0e3762","_spec":"elliptic@^6.5.2","_where":"/Users/mbhandary/node_modules/ripple-keypairs","author":{"name":"Fedor Indutny","email":"fedor@indutny.com"},"bugs":{"url":"https://github.com/indutny/elliptic/issues"},"bundleDependencies":false,"dependencies":{"bn.js":"^4.4.0","brorand":"^1.0.1","hash.js":"^1.0.0","hmac-drbg":"^1.0.0","inherits":"^2.0.1","minimalistic-assert":"^1.0.0","minimalistic-crypto-utils":"^1.0.0"},"deprecated":false,"description":"EC cryptography","devDependencies":{"brfs":"^1.4.3","coveralls":"^3.0.8","grunt":"^1.0.4","grunt-browserify":"^5.0.0","grunt-cli":"^1.2.0","grunt-contrib-connect":"^1.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^1.0.1","grunt-mocha-istanbul":"^3.0.1","grunt-saucelabs":"^9.0.1","istanbul":"^0.4.2","jscs":"^3.0.7","jshint":"^2.10.3","mocha":"^6.2.2"},"files":["lib"],"homepage":"https://github.com/indutny/elliptic","keywords":["EC","Elliptic","curve","Cryptography"],"license":"MIT","main":"lib/elliptic.js","name":"elliptic","repository":{"type":"git","url":"git+ssh://git@github.com/indutny/elliptic.git"},"scripts":{"jscs":"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js","jshint":"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js","lint":"npm run jscs && npm run jshint","test":"npm run lint && npm run unit","unit":"istanbul test _mocha --reporter=spec test/index.js","version":"grunt dist && git add dist/"},"version":"6.5.2"}')},function(t,e){},function(t,e,n){"use strict";var r=n(4),i=n(8),o=n(1),s=n(26),a=r.assert;function u(t){s.call(this,"short",t),this.a=new i(t.a,16).toRed(this.red),this.b=new i(t.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(t),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}function f(t,e,n,r){s.BasePoint.call(this,t,"affine"),null===e&&null===n?(this.x=null,this.y=null,this.inf=!0):(this.x=new i(e,16),this.y=new i(n,16),r&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function c(t,e,n,r){s.BasePoint.call(this,t,"jacobian"),null===e&&null===n&&null===r?(this.x=this.curve.one,this.y=this.curve.one,this.z=new i(0)):(this.x=new i(e,16),this.y=new i(n,16),this.z=new i(r,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}o(u,s),t.exports=u,u.prototype._getEndomorphism=function(t){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var e,n;if(t.beta)e=new i(t.beta,16).toRed(this.red);else{var r=this._getEndoRoots(this.p);e=(e=r[0].cmp(r[1])<0?r[0]:r[1]).toRed(this.red)}if(t.lambda)n=new i(t.lambda,16);else{var o=this._getEndoRoots(this.n);0===this.g.mul(o[0]).x.cmp(this.g.x.redMul(e))?n=o[0]:(n=o[1],a(0===this.g.mul(n).x.cmp(this.g.x.redMul(e))))}return{beta:e,lambda:n,basis:t.basis?t.basis.map((function(t){return{a:new i(t.a,16),b:new i(t.b,16)}})):this._getEndoBasis(n)}}},u.prototype._getEndoRoots=function(t){var e=t===this.p?this.red:i.mont(t),n=new i(2).toRed(e).redInvm(),r=n.redNeg(),o=new i(3).toRed(e).redNeg().redSqrt().redMul(n);return[r.redAdd(o).fromRed(),r.redSub(o).fromRed()]},u.prototype._getEndoBasis=function(t){for(var e,n,r,o,s,a,u,f,c,h=this.n.ushrn(Math.floor(this.n.bitLength()/2)),d=t,l=this.n.clone(),p=new i(1),b=new i(0),g=new i(0),v=new i(1),m=0;0!==d.cmpn(0);){var y=l.div(d);f=l.sub(y.mul(d)),c=g.sub(y.mul(p));var w=v.sub(y.mul(b));if(!r&&f.cmp(h)<0)e=u.neg(),n=p,r=f.neg(),o=c;else if(r&&2==++m)break;u=f,l=d,d=f,g=p,p=c,v=b,b=w}s=f.neg(),a=c;var _=r.sqr().add(o.sqr());return s.sqr().add(a.sqr()).cmp(_)>=0&&(s=e,a=n),r.negative&&(r=r.neg(),o=o.neg()),s.negative&&(s=s.neg(),a=a.neg()),[{a:r,b:o},{a:s,b:a}]},u.prototype._endoSplit=function(t){var e=this.endo.basis,n=e[0],r=e[1],i=r.b.mul(t).divRound(this.n),o=n.b.neg().mul(t).divRound(this.n),s=i.mul(n.a),a=o.mul(r.a),u=i.mul(n.b),f=o.mul(r.b);return{k1:t.sub(s).sub(a),k2:u.add(f).neg()}},u.prototype.pointFromX=function(t,e){(t=new i(t,16)).red||(t=t.toRed(this.red));var n=t.redSqr().redMul(t).redIAdd(t.redMul(this.a)).redIAdd(this.b),r=n.redSqrt();if(0!==r.redSqr().redSub(n).cmp(this.zero))throw new Error("invalid point");var o=r.fromRed().isOdd();return(e&&!o||!e&&o)&&(r=r.redNeg()),this.point(t,r)},u.prototype.validate=function(t){if(t.inf)return!0;var e=t.x,n=t.y,r=this.a.redMul(e),i=e.redSqr().redMul(e).redIAdd(r).redIAdd(this.b);return 0===n.redSqr().redISub(i).cmpn(0)},u.prototype._endoWnafMulAdd=function(t,e,n){for(var r=this._endoWnafT1,i=this._endoWnafT2,o=0;o<t.length;o++){var s=this._endoSplit(e[o]),a=t[o],u=a._getBeta();s.k1.negative&&(s.k1.ineg(),a=a.neg(!0)),s.k2.negative&&(s.k2.ineg(),u=u.neg(!0)),r[2*o]=a,r[2*o+1]=u,i[2*o]=s.k1,i[2*o+1]=s.k2}for(var f=this._wnafMulAdd(1,r,i,2*o,n),c=0;c<2*o;c++)r[c]=null,i[c]=null;return f},o(f,s.BasePoint),u.prototype.point=function(t,e,n){return new f(this,t,e,n)},u.prototype.pointFromJSON=function(t,e){return f.fromJSON(this,t,e)},f.prototype._getBeta=function(){if(this.curve.endo){var t=this.precomputed;if(t&&t.beta)return t.beta;var e=this.curve.point(this.x.redMul(this.curve.endo.beta),this.y);if(t){var n=this.curve,r=function(t){return n.point(t.x.redMul(n.endo.beta),t.y)};t.beta=e,e.precomputed={beta:null,naf:t.naf&&{wnd:t.naf.wnd,points:t.naf.points.map(r)},doubles:t.doubles&&{step:t.doubles.step,points:t.doubles.points.map(r)}}}return e}},f.prototype.toJSON=function(){return this.precomputed?[this.x,this.y,this.precomputed&&{doubles:this.precomputed.doubles&&{step:this.precomputed.doubles.step,points:this.precomputed.doubles.points.slice(1)},naf:this.precomputed.naf&&{wnd:this.precomputed.naf.wnd,points:this.precomputed.naf.points.slice(1)}}]:[this.x,this.y]},f.fromJSON=function(t,e,n){"string"==typeof e&&(e=JSON.parse(e));var r=t.point(e[0],e[1],n);if(!e[2])return r;function i(e){return t.point(e[0],e[1],n)}var o=e[2];return r.precomputed={beta:null,doubles:o.doubles&&{step:o.doubles.step,points:[r].concat(o.doubles.points.map(i))},naf:o.naf&&{wnd:o.naf.wnd,points:[r].concat(o.naf.points.map(i))}},r},f.prototype.inspect=function(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+this.x.fromRed().toString(16,2)+" y: "+this.y.fromRed().toString(16,2)+">"},f.prototype.isInfinity=function(){return this.inf},f.prototype.add=function(t){if(this.inf)return t;if(t.inf)return this;if(this.eq(t))return this.dbl();if(this.neg().eq(t))return this.curve.point(null,null);if(0===this.x.cmp(t.x))return this.curve.point(null,null);var e=this.y.redSub(t.y);0!==e.cmpn(0)&&(e=e.redMul(this.x.redSub(t.x).redInvm()));var n=e.redSqr().redISub(this.x).redISub(t.x),r=e.redMul(this.x.redSub(n)).redISub(this.y);return this.curve.point(n,r)},f.prototype.dbl=function(){if(this.inf)return this;var t=this.y.redAdd(this.y);if(0===t.cmpn(0))return this.curve.point(null,null);var e=this.curve.a,n=this.x.redSqr(),r=t.redInvm(),i=n.redAdd(n).redIAdd(n).redIAdd(e).redMul(r),o=i.redSqr().redISub(this.x.redAdd(this.x)),s=i.redMul(this.x.redSub(o)).redISub(this.y);return this.curve.point(o,s)},f.prototype.getX=function(){return this.x.fromRed()},f.prototype.getY=function(){return this.y.fromRed()},f.prototype.mul=function(t){return t=new i(t,16),this.isInfinity()?this:this._hasDoubles(t)?this.curve._fixedNafMul(this,t):this.curve.endo?this.curve._endoWnafMulAdd([this],[t]):this.curve._wnafMul(this,t)},f.prototype.mulAdd=function(t,e,n){var r=[this,e],i=[t,n];return this.curve.endo?this.curve._endoWnafMulAdd(r,i):this.curve._wnafMulAdd(1,r,i,2)},f.prototype.jmulAdd=function(t,e,n){var r=[this,e],i=[t,n];return this.curve.endo?this.curve._endoWnafMulAdd(r,i,!0):this.curve._wnafMulAdd(1,r,i,2,!0)},f.prototype.eq=function(t){return this===t||this.inf===t.inf&&(this.inf||0===this.x.cmp(t.x)&&0===this.y.cmp(t.y))},f.prototype.neg=function(t){if(this.inf)return this;var e=this.curve.point(this.x,this.y.redNeg());if(t&&this.precomputed){var n=this.precomputed,r=function(t){return t.neg()};e.precomputed={naf:n.naf&&{wnd:n.naf.wnd,points:n.naf.points.map(r)},doubles:n.doubles&&{step:n.doubles.step,points:n.doubles.points.map(r)}}}return e},f.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},o(c,s.BasePoint),u.prototype.jpoint=function(t,e,n){return new c(this,t,e,n)},c.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var t=this.z.redInvm(),e=t.redSqr(),n=this.x.redMul(e),r=this.y.redMul(e).redMul(t);return this.curve.point(n,r)},c.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},c.prototype.add=function(t){if(this.isInfinity())return t;if(t.isInfinity())return this;var e=t.z.redSqr(),n=this.z.redSqr(),r=this.x.redMul(e),i=t.x.redMul(n),o=this.y.redMul(e.redMul(t.z)),s=t.y.redMul(n.redMul(this.z)),a=r.redSub(i),u=o.redSub(s);if(0===a.cmpn(0))return 0!==u.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var f=a.redSqr(),c=f.redMul(a),h=r.redMul(f),d=u.redSqr().redIAdd(c).redISub(h).redISub(h),l=u.redMul(h.redISub(d)).redISub(o.redMul(c)),p=this.z.redMul(t.z).redMul(a);return this.curve.jpoint(d,l,p)},c.prototype.mixedAdd=function(t){if(this.isInfinity())return t.toJ();if(t.isInfinity())return this;var e=this.z.redSqr(),n=this.x,r=t.x.redMul(e),i=this.y,o=t.y.redMul(e).redMul(this.z),s=n.redSub(r),a=i.redSub(o);if(0===s.cmpn(0))return 0!==a.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var u=s.redSqr(),f=u.redMul(s),c=n.redMul(u),h=a.redSqr().redIAdd(f).redISub(c).redISub(c),d=a.redMul(c.redISub(h)).redISub(i.redMul(f)),l=this.z.redMul(s);return this.curve.jpoint(h,d,l)},c.prototype.dblp=function(t){if(0===t)return this;if(this.isInfinity())return this;if(!t)return this.dbl();if(this.curve.zeroA||this.curve.threeA){for(var e=this,n=0;n<t;n++)e=e.dbl();return e}var r=this.curve.a,i=this.curve.tinv,o=this.x,s=this.y,a=this.z,u=a.redSqr().redSqr(),f=s.redAdd(s);for(n=0;n<t;n++){var c=o.redSqr(),h=f.redSqr(),d=h.redSqr(),l=c.redAdd(c).redIAdd(c).redIAdd(r.redMul(u)),p=o.redMul(h),b=l.redSqr().redISub(p.redAdd(p)),g=p.redISub(b),v=l.redMul(g);v=v.redIAdd(v).redISub(d);var m=f.redMul(a);n+1<t&&(u=u.redMul(d)),o=b,a=m,f=v}return this.curve.jpoint(o,f.redMul(i),a)},c.prototype.dbl=function(){return this.isInfinity()?this:this.curve.zeroA?this._zeroDbl():this.curve.threeA?this._threeDbl():this._dbl()},c.prototype._zeroDbl=function(){var t,e,n;if(this.zOne){var r=this.x.redSqr(),i=this.y.redSqr(),o=i.redSqr(),s=this.x.redAdd(i).redSqr().redISub(r).redISub(o);s=s.redIAdd(s);var a=r.redAdd(r).redIAdd(r),u=a.redSqr().redISub(s).redISub(s),f=o.redIAdd(o);f=(f=f.redIAdd(f)).redIAdd(f),t=u,e=a.redMul(s.redISub(u)).redISub(f),n=this.y.redAdd(this.y)}else{var c=this.x.redSqr(),h=this.y.redSqr(),d=h.redSqr(),l=this.x.redAdd(h).redSqr().redISub(c).redISub(d);l=l.redIAdd(l);var p=c.redAdd(c).redIAdd(c),b=p.redSqr(),g=d.redIAdd(d);g=(g=g.redIAdd(g)).redIAdd(g),t=b.redISub(l).redISub(l),e=p.redMul(l.redISub(t)).redISub(g),n=(n=this.y.redMul(this.z)).redIAdd(n)}return this.curve.jpoint(t,e,n)},c.prototype._threeDbl=function(){var t,e,n;if(this.zOne){var r=this.x.redSqr(),i=this.y.redSqr(),o=i.redSqr(),s=this.x.redAdd(i).redSqr().redISub(r).redISub(o);s=s.redIAdd(s);var a=r.redAdd(r).redIAdd(r).redIAdd(this.curve.a),u=a.redSqr().redISub(s).redISub(s);t=u;var f=o.redIAdd(o);f=(f=f.redIAdd(f)).redIAdd(f),e=a.redMul(s.redISub(u)).redISub(f),n=this.y.redAdd(this.y)}else{var c=this.z.redSqr(),h=this.y.redSqr(),d=this.x.redMul(h),l=this.x.redSub(c).redMul(this.x.redAdd(c));l=l.redAdd(l).redIAdd(l);var p=d.redIAdd(d),b=(p=p.redIAdd(p)).redAdd(p);t=l.redSqr().redISub(b),n=this.y.redAdd(this.z).redSqr().redISub(h).redISub(c);var g=h.redSqr();g=(g=(g=g.redIAdd(g)).redIAdd(g)).redIAdd(g),e=l.redMul(p.redISub(t)).redISub(g)}return this.curve.jpoint(t,e,n)},c.prototype._dbl=function(){var t=this.curve.a,e=this.x,n=this.y,r=this.z,i=r.redSqr().redSqr(),o=e.redSqr(),s=n.redSqr(),a=o.redAdd(o).redIAdd(o).redIAdd(t.redMul(i)),u=e.redAdd(e),f=(u=u.redIAdd(u)).redMul(s),c=a.redSqr().redISub(f.redAdd(f)),h=f.redISub(c),d=s.redSqr();d=(d=(d=d.redIAdd(d)).redIAdd(d)).redIAdd(d);var l=a.redMul(h).redISub(d),p=n.redAdd(n).redMul(r);return this.curve.jpoint(c,l,p)},c.prototype.trpl=function(){if(!this.curve.zeroA)return this.dbl().add(this);var t=this.x.redSqr(),e=this.y.redSqr(),n=this.z.redSqr(),r=e.redSqr(),i=t.redAdd(t).redIAdd(t),o=i.redSqr(),s=this.x.redAdd(e).redSqr().redISub(t).redISub(r),a=(s=(s=(s=s.redIAdd(s)).redAdd(s).redIAdd(s)).redISub(o)).redSqr(),u=r.redIAdd(r);u=(u=(u=u.redIAdd(u)).redIAdd(u)).redIAdd(u);var f=i.redIAdd(s).redSqr().redISub(o).redISub(a).redISub(u),c=e.redMul(f);c=(c=c.redIAdd(c)).redIAdd(c);var h=this.x.redMul(a).redISub(c);h=(h=h.redIAdd(h)).redIAdd(h);var d=this.y.redMul(f.redMul(u.redISub(f)).redISub(s.redMul(a)));d=(d=(d=d.redIAdd(d)).redIAdd(d)).redIAdd(d);var l=this.z.redAdd(s).redSqr().redISub(n).redISub(a);return this.curve.jpoint(h,d,l)},c.prototype.mul=function(t,e){return t=new i(t,e),this.curve._wnafMul(this,t)},c.prototype.eq=function(t){if("affine"===t.type)return this.eq(t.toJ());if(this===t)return!0;var e=this.z.redSqr(),n=t.z.redSqr();if(0!==this.x.redMul(n).redISub(t.x.redMul(e)).cmpn(0))return!1;var r=e.redMul(this.z),i=n.redMul(t.z);return 0===this.y.redMul(i).redISub(t.y.redMul(r)).cmpn(0)},c.prototype.eqXToP=function(t){var e=this.z.redSqr(),n=t.toRed(this.curve.red).redMul(e);if(0===this.x.cmp(n))return!0;for(var r=t.clone(),i=this.curve.redN.redMul(e);;){if(r.iadd(this.curve.n),r.cmp(this.curve.p)>=0)return!1;if(n.redIAdd(i),0===this.x.cmp(n))return!0}},c.prototype.inspect=function(){return this.isInfinity()?"<EC JPoint Infinity>":"<EC JPoint x: "+this.x.toString(16,2)+" y: "+this.y.toString(16,2)+" z: "+this.z.toString(16,2)+">"},c.prototype.isInfinity=function(){return 0===this.z.cmpn(0)}},function(t,e,n){"use strict";var r=n(8),i=n(1),o=n(26),s=n(4);function a(t){o.call(this,"mont",t),this.a=new r(t.a,16).toRed(this.red),this.b=new r(t.b,16).toRed(this.red),this.i4=new r(4).toRed(this.red).redInvm(),this.two=new r(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}function u(t,e,n){o.BasePoint.call(this,t,"projective"),null===e&&null===n?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new r(e,16),this.z=new r(n,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}i(a,o),t.exports=a,a.prototype.validate=function(t){var e=t.normalize().x,n=e.redSqr(),r=n.redMul(e).redAdd(n.redMul(this.a)).redAdd(e);return 0===r.redSqrt().redSqr().cmp(r)},i(u,o.BasePoint),a.prototype.decodePoint=function(t,e){return this.point(s.toArray(t,e),1)},a.prototype.point=function(t,e){return new u(this,t,e)},a.prototype.pointFromJSON=function(t){return u.fromJSON(this,t)},u.prototype.precompute=function(){},u.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},u.fromJSON=function(t,e){return new u(t,e[0],e[1]||t.one)},u.prototype.inspect=function(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+this.x.fromRed().toString(16,2)+" z: "+this.z.fromRed().toString(16,2)+">"},u.prototype.isInfinity=function(){return 0===this.z.cmpn(0)},u.prototype.dbl=function(){var t=this.x.redAdd(this.z).redSqr(),e=this.x.redSub(this.z).redSqr(),n=t.redSub(e),r=t.redMul(e),i=n.redMul(e.redAdd(this.curve.a24.redMul(n)));return this.curve.point(r,i)},u.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},u.prototype.diffAdd=function(t,e){var n=this.x.redAdd(this.z),r=this.x.redSub(this.z),i=t.x.redAdd(t.z),o=t.x.redSub(t.z).redMul(n),s=i.redMul(r),a=e.z.redMul(o.redAdd(s).redSqr()),u=e.x.redMul(o.redISub(s).redSqr());return this.curve.point(a,u)},u.prototype.mul=function(t){for(var e=t.clone(),n=this,r=this.curve.point(null,null),i=[];0!==e.cmpn(0);e.iushrn(1))i.push(e.andln(1));for(var o=i.length-1;o>=0;o--)0===i[o]?(n=n.diffAdd(r,this),r=r.dbl()):(r=n.diffAdd(r,this),n=n.dbl());return r},u.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},u.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},u.prototype.eq=function(t){return 0===this.getX().cmp(t.getX())},u.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},u.prototype.getX=function(){return this.normalize(),this.x.fromRed()}},function(t,e,n){"use strict";var r=n(4),i=n(8),o=n(1),s=n(26),a=r.assert;function u(t){this.twisted=1!=(0|t.a),this.mOneA=this.twisted&&-1==(0|t.a),this.extended=this.mOneA,s.call(this,"edwards",t),this.a=new i(t.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new i(t.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new i(t.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),a(!this.twisted||0===this.c.fromRed().cmpn(1)),this.oneC=1==(0|t.c)}function f(t,e,n,r,o){s.BasePoint.call(this,t,"projective"),null===e&&null===n&&null===r?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new i(e,16),this.y=new i(n,16),this.z=r?new i(r,16):this.curve.one,this.t=o&&new i(o,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}o(u,s),t.exports=u,u.prototype._mulA=function(t){return this.mOneA?t.redNeg():this.a.redMul(t)},u.prototype._mulC=function(t){return this.oneC?t:this.c.redMul(t)},u.prototype.jpoint=function(t,e,n,r){return this.point(t,e,n,r)},u.prototype.pointFromX=function(t,e){(t=new i(t,16)).red||(t=t.toRed(this.red));var n=t.redSqr(),r=this.c2.redSub(this.a.redMul(n)),o=this.one.redSub(this.c2.redMul(this.d).redMul(n)),s=r.redMul(o.redInvm()),a=s.redSqrt();if(0!==a.redSqr().redSub(s).cmp(this.zero))throw new Error("invalid point");var u=a.fromRed().isOdd();return(e&&!u||!e&&u)&&(a=a.redNeg()),this.point(t,a)},u.prototype.pointFromY=function(t,e){(t=new i(t,16)).red||(t=t.toRed(this.red));var n=t.redSqr(),r=n.redSub(this.c2),o=n.redMul(this.d).redMul(this.c2).redSub(this.a),s=r.redMul(o.redInvm());if(0===s.cmp(this.zero)){if(e)throw new Error("invalid point");return this.point(this.zero,t)}var a=s.redSqrt();if(0!==a.redSqr().redSub(s).cmp(this.zero))throw new Error("invalid point");return a.fromRed().isOdd()!==e&&(a=a.redNeg()),this.point(a,t)},u.prototype.validate=function(t){if(t.isInfinity())return!0;t.normalize();var e=t.x.redSqr(),n=t.y.redSqr(),r=e.redMul(this.a).redAdd(n),i=this.c2.redMul(this.one.redAdd(this.d.redMul(e).redMul(n)));return 0===r.cmp(i)},o(f,s.BasePoint),u.prototype.pointFromJSON=function(t){return f.fromJSON(this,t)},u.prototype.point=function(t,e,n,r){return new f(this,t,e,n,r)},f.fromJSON=function(t,e){return new f(t,e[0],e[1],e[2])},f.prototype.inspect=function(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+this.x.fromRed().toString(16,2)+" y: "+this.y.fromRed().toString(16,2)+" z: "+this.z.fromRed().toString(16,2)+">"},f.prototype.isInfinity=function(){return 0===this.x.cmpn(0)&&(0===this.y.cmp(this.z)||this.zOne&&0===this.y.cmp(this.curve.c))},f.prototype._extDbl=function(){var t=this.x.redSqr(),e=this.y.redSqr(),n=this.z.redSqr();n=n.redIAdd(n);var r=this.curve._mulA(t),i=this.x.redAdd(this.y).redSqr().redISub(t).redISub(e),o=r.redAdd(e),s=o.redSub(n),a=r.redSub(e),u=i.redMul(s),f=o.redMul(a),c=i.redMul(a),h=s.redMul(o);return this.curve.point(u,f,h,c)},f.prototype._projDbl=function(){var t,e,n,r=this.x.redAdd(this.y).redSqr(),i=this.x.redSqr(),o=this.y.redSqr();if(this.curve.twisted){var s=(f=this.curve._mulA(i)).redAdd(o);if(this.zOne)t=r.redSub(i).redSub(o).redMul(s.redSub(this.curve.two)),e=s.redMul(f.redSub(o)),n=s.redSqr().redSub(s).redSub(s);else{var a=this.z.redSqr(),u=s.redSub(a).redISub(a);t=r.redSub(i).redISub(o).redMul(u),e=s.redMul(f.redSub(o)),n=s.redMul(u)}}else{var f=i.redAdd(o);a=this.curve._mulC(this.z).redSqr(),u=f.redSub(a).redSub(a);t=this.curve._mulC(r.redISub(f)).redMul(u),e=this.curve._mulC(f).redMul(i.redISub(o)),n=f.redMul(u)}return this.curve.point(t,e,n)},f.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},f.prototype._extAdd=function(t){var e=this.y.redSub(this.x).redMul(t.y.redSub(t.x)),n=this.y.redAdd(this.x).redMul(t.y.redAdd(t.x)),r=this.t.redMul(this.curve.dd).redMul(t.t),i=this.z.redMul(t.z.redAdd(t.z)),o=n.redSub(e),s=i.redSub(r),a=i.redAdd(r),u=n.redAdd(e),f=o.redMul(s),c=a.redMul(u),h=o.redMul(u),d=s.redMul(a);return this.curve.point(f,c,d,h)},f.prototype._projAdd=function(t){var e,n,r=this.z.redMul(t.z),i=r.redSqr(),o=this.x.redMul(t.x),s=this.y.redMul(t.y),a=this.curve.d.redMul(o).redMul(s),u=i.redSub(a),f=i.redAdd(a),c=this.x.redAdd(this.y).redMul(t.x.redAdd(t.y)).redISub(o).redISub(s),h=r.redMul(u).redMul(c);return this.curve.twisted?(e=r.redMul(f).redMul(s.redSub(this.curve._mulA(o))),n=u.redMul(f)):(e=r.redMul(f).redMul(s.redSub(o)),n=this.curve._mulC(u).redMul(f)),this.curve.point(h,e,n)},f.prototype.add=function(t){return this.isInfinity()?t:t.isInfinity()?this:this.curve.extended?this._extAdd(t):this._projAdd(t)},f.prototype.mul=function(t){return this._hasDoubles(t)?this.curve._fixedNafMul(this,t):this.curve._wnafMul(this,t)},f.prototype.mulAdd=function(t,e,n){return this.curve._wnafMulAdd(1,[this,e],[t,n],2,!1)},f.prototype.jmulAdd=function(t,e,n){return this.curve._wnafMulAdd(1,[this,e],[t,n],2,!0)},f.prototype.normalize=function(){if(this.zOne)return this;var t=this.z.redInvm();return this.x=this.x.redMul(t),this.y=this.y.redMul(t),this.t&&(this.t=this.t.redMul(t)),this.z=this.curve.one,this.zOne=!0,this},f.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},f.prototype.getX=function(){return this.normalize(),this.x.fromRed()},f.prototype.getY=function(){return this.normalize(),this.y.fromRed()},f.prototype.eq=function(t){return this===t||0===this.getX().cmp(t.getX())&&0===this.getY().cmp(t.getY())},f.prototype.eqXToP=function(t){var e=t.toRed(this.curve.red).redMul(this.z);if(0===this.x.cmp(e))return!0;for(var n=t.clone(),r=this.curve.redN.redMul(this.z);;){if(n.iadd(this.curve.n),n.cmp(this.curve.p)>=0)return!1;if(e.redIAdd(r),0===this.x.cmp(e))return!0}},f.prototype.toP=f.prototype.normalize,f.prototype.mixedAdd=f.prototype.add},function(t,e){t.exports={doubles:{step:4,points:[["e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a","f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821"],["8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508","11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf"],["175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739","d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695"],["363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640","4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9"],["8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c","4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36"],["723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda","96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f"],["eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa","5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999"],["100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0","cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09"],["e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d","9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d"],["feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d","e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088"],["da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1","9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d"],["53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0","5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8"],["8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047","10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a"],["385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862","283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453"],["6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7","7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160"],["3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd","56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0"],["85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83","7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6"],["948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a","53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589"],["6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8","bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17"],["e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d","4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda"],["e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725","7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd"],["213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754","4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2"],["4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c","17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6"],["fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6","6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f"],["76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39","c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01"],["c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891","893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3"],["d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b","febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f"],["b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03","2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7"],["e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d","eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78"],["a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070","7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1"],["90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4","e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150"],["8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da","662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82"],["e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11","1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc"],["8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e","efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b"],["e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41","2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51"],["b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef","67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45"],["d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8","db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120"],["324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d","648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84"],["4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96","35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d"],["9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd","ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d"],["6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5","9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8"],["a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266","40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8"],["7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71","34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac"],["928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac","c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f"],["85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751","1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962"],["ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e","493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907"],["827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241","c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec"],["eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3","be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d"],["e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f","4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414"],["1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19","aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd"],["146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be","b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0"],["fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9","6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811"],["da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2","8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1"],["a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13","7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c"],["174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c","ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73"],["959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba","2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd"],["d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151","e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405"],["64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073","d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589"],["8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458","38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e"],["13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b","69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27"],["bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366","d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1"],["8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa","40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482"],["8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0","620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945"],["dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787","7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573"],["f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e","ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82"]]},naf:{wnd:7,points:[["f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9","388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672"],["2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4","d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6"],["5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc","6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da"],["acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe","cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37"],["774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb","d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b"],["f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8","ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81"],["d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e","581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58"],["defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34","4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77"],["2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c","85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a"],["352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5","321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c"],["2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f","2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67"],["9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714","73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402"],["daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729","a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55"],["c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db","2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482"],["6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4","e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82"],["1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5","b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396"],["605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479","2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49"],["62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d","80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf"],["80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f","1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a"],["7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb","d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7"],["d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9","eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933"],["49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963","758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a"],["77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74","958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6"],["f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530","e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37"],["463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b","5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e"],["f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247","cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6"],["caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1","cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476"],["2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120","4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40"],["7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435","91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61"],["754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18","673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683"],["e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8","59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5"],["186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb","3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b"],["df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f","55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417"],["5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143","efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868"],["290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba","e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a"],["af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45","f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6"],["766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a","744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996"],["59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e","c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e"],["f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8","e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d"],["7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c","30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2"],["948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519","e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e"],["7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab","100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437"],["3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca","ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311"],["d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf","8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4"],["1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610","68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575"],["733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4","f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d"],["15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c","d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d"],["a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940","edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629"],["e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980","a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06"],["311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3","66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374"],["34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf","9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee"],["f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63","4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1"],["d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448","fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b"],["32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf","5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661"],["7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5","8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6"],["ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6","8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e"],["16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5","5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d"],["eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99","f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc"],["78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51","f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4"],["494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5","42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c"],["a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5","204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b"],["c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997","4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913"],["841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881","73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154"],["5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5","39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865"],["36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66","d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc"],["336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726","ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224"],["8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede","6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e"],["1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94","60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6"],["85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31","3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511"],["29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51","b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b"],["a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252","ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2"],["4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5","cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c"],["d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b","6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3"],["ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4","322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d"],["af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f","6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700"],["e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889","2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4"],["591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246","b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196"],["11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984","998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4"],["3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a","b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257"],["cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030","bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13"],["c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197","6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096"],["c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593","c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38"],["a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef","21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f"],["347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38","60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448"],["da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a","49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a"],["c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111","5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4"],["4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502","7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437"],["3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea","be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7"],["cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26","8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d"],["b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986","39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a"],["d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e","62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54"],["48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4","25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77"],["dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda","ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517"],["6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859","cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10"],["e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f","f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125"],["eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c","6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e"],["13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942","fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1"],["ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a","1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2"],["b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80","5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423"],["ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d","438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8"],["8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1","cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758"],["52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63","c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375"],["e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352","6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d"],["7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193","ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec"],["5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00","9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0"],["32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58","ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c"],["e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7","d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4"],["8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8","c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f"],["4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e","67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649"],["3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d","cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826"],["674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b","299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5"],["d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f","f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87"],["30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6","462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b"],["be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297","62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc"],["93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a","7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c"],["b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c","ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f"],["d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52","4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a"],["d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb","bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46"],["463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065","bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f"],["7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917","603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03"],["74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9","cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08"],["30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3","553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8"],["9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57","712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373"],["176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66","ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3"],["75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8","9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8"],["809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721","9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1"],["1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180","4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9"]]}}},function(t,e,n){"use strict";var r=n(8),i=n(124),o=n(4),s=n(40),a=n(39),u=o.assert,f=n(125),c=n(126);function h(t){if(!(this instanceof h))return new h(t);"string"==typeof t&&(u(s.hasOwnProperty(t),"Unknown curve "+t),t=s[t]),t instanceof s.PresetCurve&&(t={curve:t}),this.curve=t.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=t.curve.g,this.g.precompute(t.curve.n.bitLength()+1),this.hash=t.hash||t.curve.hash}t.exports=h,h.prototype.keyPair=function(t){return new f(this,t)},h.prototype.keyFromPrivate=function(t,e){return f.fromPrivate(this,t,e)},h.prototype.keyFromPublic=function(t,e){return f.fromPublic(this,t,e)},h.prototype.genKeyPair=function(t){t||(t={});for(var e=new i({hash:this.hash,pers:t.pers,persEnc:t.persEnc||"utf8",entropy:t.entropy||a(this.hash.hmacStrength),entropyEnc:t.entropy&&t.entropyEnc||"utf8",nonce:this.n.toArray()}),n=this.n.byteLength(),o=this.n.sub(new r(2));;){var s=new r(e.generate(n));if(!(s.cmp(o)>0))return s.iaddn(1),this.keyFromPrivate(s)}},h.prototype._truncateToN=function(t,e){var n=8*t.byteLength()-this.n.bitLength();return n>0&&(t=t.ushrn(n)),!e&&t.cmp(this.n)>=0?t.sub(this.n):t},h.prototype.sign=function(t,e,n,o){"object"==typeof n&&(o=n,n=null),o||(o={}),e=this.keyFromPrivate(e,n),t=this._truncateToN(new r(t,16));for(var s=this.n.byteLength(),a=e.getPrivate().toArray("be",s),u=t.toArray("be",s),f=new i({hash:this.hash,entropy:a,nonce:u,pers:o.pers,persEnc:o.persEnc||"utf8"}),h=this.n.sub(new r(1)),d=0;;d++){var l=o.k?o.k(d):new r(f.generate(this.n.byteLength()));if(!((l=this._truncateToN(l,!0)).cmpn(1)<=0||l.cmp(h)>=0)){var p=this.g.mul(l);if(!p.isInfinity()){var b=p.getX(),g=b.umod(this.n);if(0!==g.cmpn(0)){var v=l.invm(this.n).mul(g.mul(e.getPrivate()).iadd(t));if(0!==(v=v.umod(this.n)).cmpn(0)){var m=(p.getY().isOdd()?1:0)|(0!==b.cmp(g)?2:0);return o.canonical&&v.cmp(this.nh)>0&&(v=this.n.sub(v),m^=1),new c({r:g,s:v,recoveryParam:m})}}}}}},h.prototype.verify=function(t,e,n,i){t=this._truncateToN(new r(t,16)),n=this.keyFromPublic(n,i);var o=(e=new c(e,"hex")).r,s=e.s;if(o.cmpn(1)<0||o.cmp(this.n)>=0)return!1;if(s.cmpn(1)<0||s.cmp(this.n)>=0)return!1;var a,u=s.invm(this.n),f=u.mul(t).umod(this.n),h=u.mul(o).umod(this.n);return this.curve._maxwellTrick?!(a=this.g.jmulAdd(f,n.getPublic(),h)).isInfinity()&&a.eqXToP(o):!(a=this.g.mulAdd(f,n.getPublic(),h)).isInfinity()&&0===a.getX().umod(this.n).cmp(o)},h.prototype.recoverPubKey=function(t,e,n,i){u((3&n)===n,"The recovery param is more than two bits"),e=new c(e,i);var o=this.n,s=new r(t),a=e.r,f=e.s,h=1&n,d=n>>1;if(a.cmp(this.curve.p.umod(this.curve.n))>=0&&d)throw new Error("Unable to find sencond key candinate");a=d?this.curve.pointFromX(a.add(this.curve.n),h):this.curve.pointFromX(a,h);var l=e.r.invm(o),p=o.sub(s).mul(l).umod(o),b=f.mul(l).umod(o);return this.g.mulAdd(p,a,b)},h.prototype.getKeyRecoveryParam=function(t,e,n,r){if(null!==(e=new c(e,r)).recoveryParam)return e.recoveryParam;for(var i=0;i<4;i++){var o;try{o=this.recoverPubKey(t,e,i)}catch(t){continue}if(o.eq(n))return i}throw new Error("Unable to find valid recovery factor")}},function(t,e,n){"use strict";var r=n(18),i=n(61),o=n(14);function s(t){if(!(this instanceof s))return new s(t);this.hash=t.hash,this.predResist=!!t.predResist,this.outLen=this.hash.outSize,this.minEntropy=t.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var e=i.toArray(t.entropy,t.entropyEnc||"hex"),n=i.toArray(t.nonce,t.nonceEnc||"hex"),r=i.toArray(t.pers,t.persEnc||"hex");o(e.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(e,n,r)}t.exports=s,s.prototype._init=function(t,e,n){var r=t.concat(e).concat(n);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var i=0;i<this.V.length;i++)this.K[i]=0,this.V[i]=1;this._update(r),this._reseed=1,this.reseedInterval=281474976710656},s.prototype._hmac=function(){return new r.hmac(this.hash,this.K)},s.prototype._update=function(t){var e=this._hmac().update(this.V).update([0]);t&&(e=e.update(t)),this.K=e.digest(),this.V=this._hmac().update(this.V).digest(),t&&(this.K=this._hmac().update(this.V).update([1]).update(t).digest(),this.V=this._hmac().update(this.V).digest())},s.prototype.reseed=function(t,e,n,r){"string"!=typeof e&&(r=n,n=e,e=null),t=i.toArray(t,e),n=i.toArray(n,r),o(t.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(t.concat(n||[])),this._reseed=1},s.prototype.generate=function(t,e,n,r){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof e&&(r=n,n=e,e=null),n&&(n=i.toArray(n,r||"hex"),this._update(n));for(var o=[];o.length<t;)this.V=this._hmac().update(this.V).digest(),o=o.concat(this.V);var s=o.slice(0,t);return this._update(n),this._reseed++,i.encode(s,e)}},function(t,e,n){"use strict";var r=n(8),i=n(4).assert;function o(t,e){this.ec=t,this.priv=null,this.pub=null,e.priv&&this._importPrivate(e.priv,e.privEnc),e.pub&&this._importPublic(e.pub,e.pubEnc)}t.exports=o,o.fromPublic=function(t,e,n){return e instanceof o?e:new o(t,{pub:e,pubEnc:n})},o.fromPrivate=function(t,e,n){return e instanceof o?e:new o(t,{priv:e,privEnc:n})},o.prototype.validate=function(){var t=this.getPublic();return t.isInfinity()?{result:!1,reason:"Invalid public key"}:t.validate()?t.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},o.prototype.getPublic=function(t,e){return"string"==typeof t&&(e=t,t=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),e?this.pub.encode(e,t):this.pub},o.prototype.getPrivate=function(t){return"hex"===t?this.priv.toString(16,2):this.priv},o.prototype._importPrivate=function(t,e){this.priv=new r(t,e||16),this.priv=this.priv.umod(this.ec.curve.n)},o.prototype._importPublic=function(t,e){if(t.x||t.y)return"mont"===this.ec.curve.type?i(t.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||i(t.x&&t.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(t.x,t.y));this.pub=this.ec.curve.decodePoint(t,e)},o.prototype.derive=function(t){return t.mul(this.priv).getX()},o.prototype.sign=function(t,e,n){return this.ec.sign(t,this,e,n)},o.prototype.verify=function(t,e){return this.ec.verify(t,e,this)},o.prototype.inspect=function(){return"<Key priv: "+(this.priv&&this.priv.toString(16,2))+" pub: "+(this.pub&&this.pub.inspect())+" >"}},function(t,e,n){"use strict";var r=n(8),i=n(4),o=i.assert;function s(t,e){if(t instanceof s)return t;this._importDER(t,e)||(o(t.r&&t.s,"Signature without r or s"),this.r=new r(t.r,16),this.s=new r(t.s,16),void 0===t.recoveryParam?this.recoveryParam=null:this.recoveryParam=t.recoveryParam)}function a(){this.place=0}function u(t,e){var n=t[e.place++];if(!(128&n))return n;for(var r=15&n,i=0,o=0,s=e.place;o<r;o++,s++)i<<=8,i|=t[s];return e.place=s,i}function f(t){for(var e=0,n=t.length-1;!t[e]&&!(128&t[e+1])&&e<n;)e++;return 0===e?t:t.slice(e)}function c(t,e){if(e<128)t.push(e);else{var n=1+(Math.log(e)/Math.LN2>>>3);for(t.push(128|n);--n;)t.push(e>>>(n<<3)&255);t.push(e)}}t.exports=s,s.prototype._importDER=function(t,e){t=i.toArray(t,e);var n=new a;if(48!==t[n.place++])return!1;if(u(t,n)+n.place!==t.length)return!1;if(2!==t[n.place++])return!1;var o=u(t,n),s=t.slice(n.place,o+n.place);if(n.place+=o,2!==t[n.place++])return!1;var f=u(t,n);if(t.length!==f+n.place)return!1;var c=t.slice(n.place,f+n.place);return 0===s[0]&&128&s[1]&&(s=s.slice(1)),0===c[0]&&128&c[1]&&(c=c.slice(1)),this.r=new r(s),this.s=new r(c),this.recoveryParam=null,!0},s.prototype.toDER=function(t){var e=this.r.toArray(),n=this.s.toArray();for(128&e[0]&&(e=[0].concat(e)),128&n[0]&&(n=[0].concat(n)),e=f(e),n=f(n);!(n[0]||128&n[1]);)n=n.slice(1);var r=[2];c(r,e.length),(r=r.concat(e)).push(2),c(r,n.length);var o=r.concat(n),s=[48];return c(s,o.length),s=s.concat(o),i.encode(s,t)}},function(t,e,n){"use strict";var r=n(18),i=n(40),o=n(4),s=o.assert,a=o.parseBytes,u=n(128),f=n(129);function c(t){if(s("ed25519"===t,"only tested with ed25519 so far"),!(this instanceof c))return new c(t);t=i[t].curve;this.curve=t,this.g=t.g,this.g.precompute(t.n.bitLength()+1),this.pointClass=t.point().constructor,this.encodingLength=Math.ceil(t.n.bitLength()/8),this.hash=r.sha512}t.exports=c,c.prototype.sign=function(t,e){t=a(t);var n=this.keyFromSecret(e),r=this.hashInt(n.messagePrefix(),t),i=this.g.mul(r),o=this.encodePoint(i),s=this.hashInt(o,n.pubBytes(),t).mul(n.priv()),u=r.add(s).umod(this.curve.n);return this.makeSignature({R:i,S:u,Rencoded:o})},c.prototype.verify=function(t,e,n){t=a(t),e=this.makeSignature(e);var r=this.keyFromPublic(n),i=this.hashInt(e.Rencoded(),r.pubBytes(),t),o=this.g.mul(e.S());return e.R().add(r.pub().mul(i)).eq(o)},c.prototype.hashInt=function(){for(var t=this.hash(),e=0;e<arguments.length;e++)t.update(arguments[e]);return o.intFromLE(t.digest()).umod(this.curve.n)},c.prototype.keyFromPublic=function(t){return u.fromPublic(this,t)},c.prototype.keyFromSecret=function(t){return u.fromSecret(this,t)},c.prototype.makeSignature=function(t){return t instanceof f?t:new f(this,t)},c.prototype.encodePoint=function(t){var e=t.getY().toArray("le",this.encodingLength);return e[this.encodingLength-1]|=t.getX().isOdd()?128:0,e},c.prototype.decodePoint=function(t){var e=(t=o.parseBytes(t)).length-1,n=t.slice(0,e).concat(-129&t[e]),r=0!=(128&t[e]),i=o.intFromLE(n);return this.curve.pointFromY(i,r)},c.prototype.encodeInt=function(t){return t.toArray("le",this.encodingLength)},c.prototype.decodeInt=function(t){return o.intFromLE(t)},c.prototype.isPoint=function(t){return t instanceof this.pointClass}},function(t,e,n){"use strict";var r=n(4),i=r.assert,o=r.parseBytes,s=r.cachedProperty;function a(t,e){this.eddsa=t,this._secret=o(e.secret),t.isPoint(e.pub)?this._pub=e.pub:this._pubBytes=o(e.pub)}a.fromPublic=function(t,e){return e instanceof a?e:new a(t,{pub:e})},a.fromSecret=function(t,e){return e instanceof a?e:new a(t,{secret:e})},a.prototype.secret=function(){return this._secret},s(a,"pubBytes",(function(){return this.eddsa.encodePoint(this.pub())})),s(a,"pub",(function(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())})),s(a,"privBytes",(function(){var t=this.eddsa,e=this.hash(),n=t.encodingLength-1,r=e.slice(0,t.encodingLength);return r[0]&=248,r[n]&=127,r[n]|=64,r})),s(a,"priv",(function(){return this.eddsa.decodeInt(this.privBytes())})),s(a,"hash",(function(){return this.eddsa.hash().update(this.secret()).digest()})),s(a,"messagePrefix",(function(){return this.hash().slice(this.eddsa.encodingLength)})),a.prototype.sign=function(t){return i(this._secret,"KeyPair can only verify"),this.eddsa.sign(t,this)},a.prototype.verify=function(t,e){return this.eddsa.verify(t,e,this)},a.prototype.getSecret=function(t){return i(this._secret,"KeyPair is public only"),r.encode(this.secret(),t)},a.prototype.getPublic=function(t){return r.encode(this.pubBytes(),t)},t.exports=a},function(t,e,n){"use strict";var r=n(8),i=n(4),o=i.assert,s=i.cachedProperty,a=i.parseBytes;function u(t,e){this.eddsa=t,"object"!=typeof e&&(e=a(e)),Array.isArray(e)&&(e={R:e.slice(0,t.encodingLength),S:e.slice(t.encodingLength)}),o(e.R&&e.S,"Signature without R or S"),t.isPoint(e.R)&&(this._R=e.R),e.S instanceof r&&(this._S=e.S),this._Rencoded=Array.isArray(e.R)?e.R:e.Rencoded,this._Sencoded=Array.isArray(e.S)?e.S:e.Sencoded}s(u,"S",(function(){return this.eddsa.decodeInt(this.Sencoded())})),s(u,"R",(function(){return this.eddsa.decodePoint(this.Rencoded())})),s(u,"Rencoded",(function(){return this.eddsa.encodePoint(this.R())})),s(u,"Sencoded",(function(){return this.eddsa.encodeInt(this.S())})),u.prototype.toBytes=function(){return this.Rencoded().concat(this.Sencoded())},u.prototype.toHex=function(){return i.encode(this.toBytes(),"hex").toUpperCase()},t.exports=u},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const r=n(60),i=n(131),o=r.ec("secp256k1");function s(t,e){const n=o.curve.n;for(let r=0;r<=4294967295;r++){const o=(new i.default).add(t);void 0!==e&&o.addU32(e),o.addU32(r);const s=o.first256BN();if(s.cmpn(0)>0&&s.cmp(n)<0)return s}throw new Error("impossible unicorn ;)")}e.derivePrivateKey=function(t,e={}){const n=e.validator,r=o.curve.n,i=s(t);if(n)return i;const a=o.g.mul(i),u=e.accountIndex||0;return s(a.encodeCompressed(),u).add(i).mod(r)},e.accountPublicFromPublicGenerator=function(t){const e=o.curve.decodePoint(t),n=s(t,0),r=o.g.mul(n);return e.add(r).encodeCompressed()}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const r=n(18),i=n(11);e.default=class{constructor(){this.hash=r.sha512()}add(t){return this.hash.update(t),this}addU32(t){return this.add([t>>>24&255,t>>>16&255,t>>>8&255,255&t])}finish(){return this.hash.digest()}first256(){return this.finish().slice(0,32)}first256BN(){return new i(this.first256())}}},function(t,e,n){"use strict";(function(t){Object.defineProperty(e,"__esModule",{value:!0});const r=n(2),i=n(18),o=n(11);e.bytesToHex=function(t){return t.map(t=>{const e=t.toString(16).toUpperCase();return e.length>1?e:`0${e}`}).join("")},e.hexToBytes=function(t){return r(t.length%2==0),new o(t,16).toArray(null,t.length/2)},e.computePublicKeyHash=function(e){const n=i.sha256().update(e).digest(),r=i.ripemd160().update(n).digest();return t.from(r)}}).call(this,n(5).Buffer)}]); \ No newline at end of file +*/ var r = Object.getOwnPropertySymbols, + i = Object.prototype.hasOwnProperty, + o = Object.prototype.propertyIsEnumerable + function s(t) { + if (null == t) throw new TypeError('Object.assign cannot be called with null or undefined') + return Object(t) + } + t.exports = (function () { + try { + if (!Object.assign) return !1 + var t = new String('abc') + if (((t[5] = 'de'), '5' === Object.getOwnPropertyNames(t)[0])) return !1 + for (var e = {}, n = 0; n < 10; n++) e['_' + String.fromCharCode(n)] = n + if ( + '0123456789' !== + Object.getOwnPropertyNames(e) + .map(function (t) { + return e[t] + }) + .join('') + ) + return !1 + var r = {} + return ( + 'abcdefghijklmnopqrst'.split('').forEach(function (t) { + r[t] = t + }), + 'abcdefghijklmnopqrst' === Object.keys(Object.assign({}, r)).join('') + ) + } catch (t) { + return !1 + } + })() + ? Object.assign + : function (t, e) { + for (var n, a, u = s(t), f = 1; f < arguments.length; f++) { + for (var c in (n = Object(arguments[f]))) i.call(n, c) && (u[c] = n[c]) + if (r) { + a = r(n) + for (var h = 0; h < a.length; h++) o.call(n, a[h]) && (u[a[h]] = n[a[h]]) + } + } + return u + } + }, + function (t, e, n) { + ;(function (t) { + var r = + Object.getOwnPropertyDescriptors || + function (t) { + for (var e = Object.keys(t), n = {}, r = 0; r < e.length; r++) n[e[r]] = Object.getOwnPropertyDescriptor(t, e[r]) + return n + }, + i = /%[sdj%]/g + ;((e.format = function (t) { + if (!v(t)) { + for (var e = [], n = 0; n < arguments.length; n++) e.push(a(arguments[n])) + return e.join(' ') + } + n = 1 + for ( + var r = arguments, + o = r.length, + s = String(t).replace(i, function (t) { + if ('%%' === t) return '%' + if (n >= o) return t + switch (t) { + case '%s': + return String(r[n++]) + case '%d': + return Number(r[n++]) + case '%j': + try { + return JSON.stringify(r[n++]) + } catch (t) { + return '[Circular]' + } + default: + return t + } + }), + u = r[n]; + n < o; + u = r[++n] + ) + b(u) || !w(u) ? (s += ' ' + u) : (s += ' ' + a(u)) + return s + }), + (e.deprecate = function (n, r) { + if (void 0 !== t && !0 === t.noDeprecation) return n + if (void 0 === t) + return function () { + return e.deprecate(n, r).apply(this, arguments) + } + var i = !1 + return function () { + if (!i) { + if (t.throwDeprecation) throw new Error(r) + ;(t.traceDeprecation ? console.trace(r) : console.error(r), (i = !0)) + } + return n.apply(this, arguments) + } + })) + var o, + s = {} + function a(t, n) { + var r = { seen: [], stylize: f } + return ( + arguments.length >= 3 && (r.depth = arguments[2]), + arguments.length >= 4 && (r.colors = arguments[3]), + p(n) ? (r.showHidden = n) : n && e._extend(r, n), + m(r.showHidden) && (r.showHidden = !1), + m(r.depth) && (r.depth = 2), + m(r.colors) && (r.colors = !1), + m(r.customInspect) && (r.customInspect = !0), + r.colors && (r.stylize = u), + c(r, t, r.depth) + ) + } + function u(t, e) { + var n = a.styles[e] + return n ? '[' + a.colors[n][0] + 'm' + t + '[' + a.colors[n][1] + 'm' : t + } + function f(t, e) { + return t + } + function c(t, n, r) { + if (t.customInspect && n && M(n.inspect) && n.inspect !== e.inspect && (!n.constructor || n.constructor.prototype !== n)) { + var i = n.inspect(r, t) + return (v(i) || (i = c(t, i, r)), i) + } + var o = (function (t, e) { + if (m(e)) return t.stylize('undefined', 'undefined') + if (v(e)) { + var n = "'" + JSON.stringify(e).replace(/^"|"$/g, '').replace(/'/g, "\\'").replace(/\\"/g, '"') + "'" + return t.stylize(n, 'string') + } + if (g(e)) return t.stylize('' + e, 'number') + if (p(e)) return t.stylize('' + e, 'boolean') + if (b(e)) return t.stylize('null', 'null') + })(t, n) + if (o) return o + var s = Object.keys(n), + a = (function (t) { + var e = {} + return ( + t.forEach(function (t, n) { + e[t] = !0 + }), + e + ) + })(s) + if ((t.showHidden && (s = Object.getOwnPropertyNames(n)), S(n) && (s.indexOf('message') >= 0 || s.indexOf('description') >= 0))) return h(n) + if (0 === s.length) { + if (M(n)) { + var u = n.name ? ': ' + n.name : '' + return t.stylize('[Function' + u + ']', 'special') + } + if (y(n)) return t.stylize(RegExp.prototype.toString.call(n), 'regexp') + if (_(n)) return t.stylize(Date.prototype.toString.call(n), 'date') + if (S(n)) return h(n) + } + var f, + w = '', + E = !1, + A = ['{', '}'] + ;(l(n) && ((E = !0), (A = ['[', ']'])), M(n)) && (w = ' [Function' + (n.name ? ': ' + n.name : '') + ']') + return ( + y(n) && (w = ' ' + RegExp.prototype.toString.call(n)), + _(n) && (w = ' ' + Date.prototype.toUTCString.call(n)), + S(n) && (w = ' ' + h(n)), + 0 !== s.length || (E && 0 != n.length) + ? r < 0 + ? y(n) + ? t.stylize(RegExp.prototype.toString.call(n), 'regexp') + : t.stylize('[Object]', 'special') + : (t.seen.push(n), + (f = E + ? (function (t, e, n, r, i) { + for (var o = [], s = 0, a = e.length; s < a; ++s) T(e, String(s)) ? o.push(d(t, e, n, r, String(s), !0)) : o.push('') + return ( + i.forEach(function (i) { + i.match(/^\d+$/) || o.push(d(t, e, n, r, i, !0)) + }), + o + ) + })(t, n, r, a, s) + : s.map(function (e) { + return d(t, n, r, a, e, E) + })), + t.seen.pop(), + (function (t, e, n) { + if ( + t.reduce(function (t, e) { + return (e.indexOf('\n') >= 0 && 0, t + e.replace(/\u001b\[\d\d?m/g, '').length + 1) + }, 0) > 60 + ) + return n[0] + ('' === e ? '' : e + '\n ') + ' ' + t.join(',\n ') + ' ' + n[1] + return n[0] + e + ' ' + t.join(', ') + ' ' + n[1] + })(f, w, A)) + : A[0] + w + A[1] + ) + } + function h(t) { + return '[' + Error.prototype.toString.call(t) + ']' + } + function d(t, e, n, r, i, o) { + var s, a, u + if ( + ((u = Object.getOwnPropertyDescriptor(e, i) || { value: e[i] }).get + ? (a = u.set ? t.stylize('[Getter/Setter]', 'special') : t.stylize('[Getter]', 'special')) + : u.set && (a = t.stylize('[Setter]', 'special')), + T(r, i) || (s = '[' + i + ']'), + a || + (t.seen.indexOf(u.value) < 0 + ? (a = b(n) ? c(t, u.value, null) : c(t, u.value, n - 1)).indexOf('\n') > -1 && + (a = o + ? a + .split('\n') + .map(function (t) { + return ' ' + t + }) + .join('\n') + .substr(2) + : '\n' + + a + .split('\n') + .map(function (t) { + return ' ' + t + }) + .join('\n')) + : (a = t.stylize('[Circular]', 'special'))), + m(s)) + ) { + if (o && i.match(/^\d+$/)) return a + ;(s = JSON.stringify('' + i)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/) + ? ((s = s.substr(1, s.length - 2)), (s = t.stylize(s, 'name'))) + : ((s = s + .replace(/'/g, "\\'") + .replace(/\\"/g, '"') + .replace(/(^"|"$)/g, "'")), + (s = t.stylize(s, 'string'))) + } + return s + ': ' + a + } + function l(t) { + return Array.isArray(t) + } + function p(t) { + return 'boolean' == typeof t + } + function b(t) { + return null === t + } + function g(t) { + return 'number' == typeof t + } + function v(t) { + return 'string' == typeof t + } + function m(t) { + return void 0 === t + } + function y(t) { + return w(t) && '[object RegExp]' === E(t) + } + function w(t) { + return 'object' == typeof t && null !== t + } + function _(t) { + return w(t) && '[object Date]' === E(t) + } + function S(t) { + return w(t) && ('[object Error]' === E(t) || t instanceof Error) + } + function M(t) { + return 'function' == typeof t + } + function E(t) { + return Object.prototype.toString.call(t) + } + function A(t) { + return t < 10 ? '0' + t.toString(10) : t.toString(10) + } + ;((e.debuglog = function (n) { + if ((m(o) && (o = t.env.NODE_DEBUG || ''), (n = n.toUpperCase()), !s[n])) + if (new RegExp('\\b' + n + '\\b', 'i').test(o)) { + var r = t.pid + s[n] = function () { + var t = e.format.apply(e, arguments) + console.error('%s %d: %s', n, r, t) + } + } else s[n] = function () {} + return s[n] + }), + (e.inspect = a), + (a.colors = { + bold: [1, 22], + italic: [3, 23], + underline: [4, 24], + inverse: [7, 27], + white: [37, 39], + grey: [90, 39], + black: [30, 39], + blue: [34, 39], + cyan: [36, 39], + green: [32, 39], + magenta: [35, 39], + red: [31, 39], + yellow: [33, 39], + }), + (a.styles = { + special: 'cyan', + number: 'yellow', + boolean: 'yellow', + undefined: 'grey', + null: 'bold', + string: 'green', + date: 'magenta', + regexp: 'red', + }), + (e.isArray = l), + (e.isBoolean = p), + (e.isNull = b), + (e.isNullOrUndefined = function (t) { + return null == t + }), + (e.isNumber = g), + (e.isString = v), + (e.isSymbol = function (t) { + return 'symbol' == typeof t + }), + (e.isUndefined = m), + (e.isRegExp = y), + (e.isObject = w), + (e.isDate = _), + (e.isError = S), + (e.isFunction = M), + (e.isPrimitive = function (t) { + return null === t || 'boolean' == typeof t || 'number' == typeof t || 'string' == typeof t || 'symbol' == typeof t || void 0 === t + }), + (e.isBuffer = n(69))) + var x = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] + function I() { + var t = new Date(), + e = [A(t.getHours()), A(t.getMinutes()), A(t.getSeconds())].join(':') + return [t.getDate(), x[t.getMonth()], e].join(' ') + } + function T(t, e) { + return Object.prototype.hasOwnProperty.call(t, e) + } + ;((e.log = function () { + console.log('%s - %s', I(), e.format.apply(e, arguments)) + }), + (e.inherits = n(70)), + (e._extend = function (t, e) { + if (!e || !w(e)) return t + for (var n = Object.keys(e), r = n.length; r--; ) t[n[r]] = e[n[r]] + return t + })) + var k = 'undefined' != typeof Symbol ? Symbol('util.promisify.custom') : void 0 + function L(t, e) { + if (!t) { + var n = new Error('Promise was rejected with a falsy value') + ;((n.reason = t), (t = n)) + } + return e(t) + } + ;((e.promisify = function (t) { + if ('function' != typeof t) throw new TypeError('The "original" argument must be of type Function') + if (k && t[k]) { + var e + if ('function' != typeof (e = t[k])) throw new TypeError('The "util.promisify.custom" argument must be of type Function') + return (Object.defineProperty(e, k, { value: e, enumerable: !1, writable: !1, configurable: !0 }), e) + } + function e() { + for ( + var e, + n, + r = new Promise(function (t, r) { + ;((e = t), (n = r)) + }), + i = [], + o = 0; + o < arguments.length; + o++ + ) + i.push(arguments[o]) + i.push(function (t, r) { + t ? n(t) : e(r) + }) + try { + t.apply(this, i) + } catch (t) { + n(t) + } + return r + } + return ( + Object.setPrototypeOf(e, Object.getPrototypeOf(t)), + k && Object.defineProperty(e, k, { value: e, enumerable: !1, writable: !1, configurable: !0 }), + Object.defineProperties(e, r(t)) + ) + }), + (e.promisify.custom = k), + (e.callbackify = function (e) { + if ('function' != typeof e) throw new TypeError('The "original" argument must be of type Function') + function n() { + for (var n = [], r = 0; r < arguments.length; r++) n.push(arguments[r]) + var i = n.pop() + if ('function' != typeof i) throw new TypeError('The last argument must be of type Function') + var o = this, + s = function () { + return i.apply(o, arguments) + } + e.apply(this, n).then( + function (e) { + t.nextTick(s, null, e) + }, + function (e) { + t.nextTick(L, e, s) + }, + ) + } + return (Object.setPrototypeOf(n, Object.getPrototypeOf(e)), Object.defineProperties(n, r(e)), n) + })) + }).call(this, n(19)) + }, + function (t, e) { + t.exports = function (t) { + return t && 'object' == typeof t && 'function' == typeof t.copy && 'function' == typeof t.fill && 'function' == typeof t.readUInt8 + } + }, + function (t, e) { + 'function' == typeof Object.create + ? (t.exports = function (t, e) { + ;((t.super_ = e), (t.prototype = Object.create(e.prototype, { constructor: { value: t, enumerable: !1, writable: !0, configurable: !0 } }))) + }) + : (t.exports = function (t, e) { + t.super_ = e + var n = function () {} + ;((n.prototype = e.prototype), (t.prototype = new n()), (t.prototype.constructor = t)) + }) + }, + function (t, e, n) { + 'use strict' + var r = n(12), + i = n(15), + o = i.Field, + s = n(16), + a = n(55), + u = n(56).ShaMap, + f = n(107), + c = n(25), + h = n(108), + d = n(21).HashPrefix + t.exports = r.assign({ hashes: r.assign({}, c, f), binary: a, enums: i, quality: h, Field: o, HashPrefix: d, ShaMap: u }, s) + }, + function (t) { + t.exports = JSON.parse( + '{"TYPES":{"Validation":10003,"Done":-1,"Hash128":4,"Blob":7,"AccountID":8,"Amount":6,"Hash256":5,"UInt8":16,"Vector256":19,"STObject":14,"Unknown":-2,"Transaction":10001,"Hash160":17,"PathSet":18,"LedgerEntry":10002,"UInt16":1,"NotPresent":0,"UInt64":3,"UInt32":2,"STArray":15},"LEDGER_ENTRY_TYPES":{"Any":-3,"Child":-2,"Invalid":-1,"AccountRoot":97,"DirectoryNode":100,"RippleState":114,"Ticket":84,"SignerList":83,"Offer":111,"LedgerHashes":104,"Amendments":102,"FeeSettings":115,"Escrow":117,"PayChannel":120,"DepositPreauth":112,"Check":67,"Nickname":110,"Contract":99,"GeneratorMap":103},"FIELDS":[["Generic",{"nth":0,"isVLEncoded":false,"isSerialized":false,"isSigningField":false,"type":"Unknown"}],["Invalid",{"nth":-1,"isVLEncoded":false,"isSerialized":false,"isSigningField":false,"type":"Unknown"}],["LedgerEntryType",{"nth":1,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt16"}],["TransactionType",{"nth":2,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt16"}],["SignerWeight",{"nth":3,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt16"}],["Flags",{"nth":2,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["SourceTag",{"nth":3,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["Sequence",{"nth":4,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["PreviousTxnLgrSeq",{"nth":5,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["LedgerSequence",{"nth":6,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["CloseTime",{"nth":7,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["ParentCloseTime",{"nth":8,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["SigningTime",{"nth":9,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["Expiration",{"nth":10,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["TransferRate",{"nth":11,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["WalletSize",{"nth":12,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["OwnerCount",{"nth":13,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["DestinationTag",{"nth":14,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["HighQualityIn",{"nth":16,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["HighQualityOut",{"nth":17,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["LowQualityIn",{"nth":18,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["LowQualityOut",{"nth":19,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["QualityIn",{"nth":20,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["QualityOut",{"nth":21,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["StampEscrow",{"nth":22,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["BondAmount",{"nth":23,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["LoadFee",{"nth":24,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["OfferSequence",{"nth":25,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["FirstLedgerSequence",{"nth":26,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["LastLedgerSequence",{"nth":27,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["TransactionIndex",{"nth":28,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["OperationLimit",{"nth":29,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["ReferenceFeeUnits",{"nth":30,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["ReserveBase",{"nth":31,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["ReserveIncrement",{"nth":32,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["SetFlag",{"nth":33,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["ClearFlag",{"nth":34,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["SignerQuorum",{"nth":35,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["CancelAfter",{"nth":36,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["FinishAfter",{"nth":37,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["IndexNext",{"nth":1,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt64"}],["IndexPrevious",{"nth":2,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt64"}],["BookNode",{"nth":3,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt64"}],["OwnerNode",{"nth":4,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt64"}],["BaseFee",{"nth":5,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt64"}],["ExchangeRate",{"nth":6,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt64"}],["LowNode",{"nth":7,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt64"}],["HighNode",{"nth":8,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt64"}],["EmailHash",{"nth":1,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash128"}],["LedgerHash",{"nth":1,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["ParentHash",{"nth":2,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["TransactionHash",{"nth":3,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["AccountHash",{"nth":4,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["PreviousTxnID",{"nth":5,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["LedgerIndex",{"nth":6,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["WalletLocator",{"nth":7,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["RootIndex",{"nth":8,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["AccountTxnID",{"nth":9,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["BookDirectory",{"nth":16,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["InvoiceID",{"nth":17,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["Nickname",{"nth":18,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["Amendment",{"nth":19,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["TicketID",{"nth":20,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["Digest",{"nth":21,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["hash",{"nth":257,"isVLEncoded":false,"isSerialized":false,"isSigningField":false,"type":"Hash256"}],["index",{"nth":258,"isVLEncoded":false,"isSerialized":false,"isSigningField":false,"type":"Hash256"}],["Amount",{"nth":1,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["Balance",{"nth":2,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["LimitAmount",{"nth":3,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["TakerPays",{"nth":4,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["TakerGets",{"nth":5,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["LowLimit",{"nth":6,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["HighLimit",{"nth":7,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["Fee",{"nth":8,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["SendMax",{"nth":9,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["DeliverMin",{"nth":10,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["MinimumOffer",{"nth":16,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["RippleEscrow",{"nth":17,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["DeliveredAmount",{"nth":18,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["taker_gets_funded",{"nth":258,"isVLEncoded":false,"isSerialized":false,"isSigningField":false,"type":"Amount"}],["taker_pays_funded",{"nth":259,"isVLEncoded":false,"isSerialized":false,"isSigningField":false,"type":"Amount"}],["PublicKey",{"nth":1,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["MessageKey",{"nth":2,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["SigningPubKey",{"nth":3,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["TxnSignature",{"nth":4,"isVLEncoded":true,"isSerialized":true,"isSigningField":false,"type":"Blob"}],["Generator",{"nth":5,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["Signature",{"nth":6,"isVLEncoded":true,"isSerialized":true,"isSigningField":false,"type":"Blob"}],["Domain",{"nth":7,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["FundCode",{"nth":8,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["RemoveCode",{"nth":9,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["ExpireCode",{"nth":10,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["CreateCode",{"nth":11,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["MemoType",{"nth":12,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["MemoData",{"nth":13,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["MemoFormat",{"nth":14,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["Fulfillment",{"nth":16,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["Condition",{"nth":17,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["MasterSignature",{"nth":18,"isVLEncoded":true,"isSerialized":true,"isSigningField":false,"type":"Blob"}],["Account",{"nth":1,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"AccountID"}],["Owner",{"nth":2,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"AccountID"}],["Destination",{"nth":3,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"AccountID"}],["Issuer",{"nth":4,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"AccountID"}],["Authorize",{"nth":5,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"AccountID"}],["Unauthorize",{"nth":6,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"AccountID"}],["Target",{"nth":7,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"AccountID"}],["RegularKey",{"nth":8,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"AccountID"}],["ObjectEndMarker",{"nth":1,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["TransactionMetaData",{"nth":2,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["CreatedNode",{"nth":3,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["DeletedNode",{"nth":4,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["ModifiedNode",{"nth":5,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["PreviousFields",{"nth":6,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["FinalFields",{"nth":7,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["NewFields",{"nth":8,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["TemplateEntry",{"nth":9,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["Memo",{"nth":10,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["SignerEntry",{"nth":11,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["Signer",{"nth":16,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["Majority",{"nth":18,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["ArrayEndMarker",{"nth":1,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STArray"}],["Signers",{"nth":3,"isVLEncoded":false,"isSerialized":true,"isSigningField":false,"type":"STArray"}],["SignerEntries",{"nth":4,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STArray"}],["Template",{"nth":5,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STArray"}],["Necessary",{"nth":6,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STArray"}],["Sufficient",{"nth":7,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STArray"}],["AffectedNodes",{"nth":8,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STArray"}],["Memos",{"nth":9,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STArray"}],["Majorities",{"nth":16,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STArray"}],["CloseResolution",{"nth":1,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt8"}],["Method",{"nth":2,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt8"}],["TransactionResult",{"nth":3,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt8"}],["TakerPaysCurrency",{"nth":1,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash160"}],["TakerPaysIssuer",{"nth":2,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash160"}],["TakerGetsCurrency",{"nth":3,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash160"}],["TakerGetsIssuer",{"nth":4,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash160"}],["Paths",{"nth":1,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"PathSet"}],["Indexes",{"nth":1,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Vector256"}],["Hashes",{"nth":2,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Vector256"}],["Amendments",{"nth":3,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Vector256"}],["Transaction",{"nth":1,"isVLEncoded":false,"isSerialized":false,"isSigningField":false,"type":"Transaction"}],["LedgerEntry",{"nth":1,"isVLEncoded":false,"isSerialized":false,"isSigningField":false,"type":"LedgerEntry"}],["Validation",{"nth":1,"isVLEncoded":false,"isSerialized":false,"isSigningField":false,"type":"Validation"}],["SignerListID",{"nth":38,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["SettleDelay",{"nth":39,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["Channel",{"nth":22,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["ConsensusHash",{"nth":23,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["CheckID",{"nth":24,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["TickSize",{"nth":16,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt8"}],["DestinationNode",{"nth":9,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt64"}]],"TRANSACTION_RESULTS":{"telLOCAL_ERROR":-399,"telBAD_DOMAIN":-398,"telBAD_PATH_COUNT":-397,"telBAD_PUBLIC_KEY":-396,"telFAILED_PROCESSING":-395,"telINSUF_FEE_P":-394,"telNO_DST_PARTIAL":-393,"telCAN_NOT_QUEUE":-392,"telCAN_NOT_QUEUE_BALANCE":-391,"telCAN_NOT_QUEUE_BLOCKS":-390,"telCAN_NOT_QUEUE_BLOCKED":-389,"telCAN_NOT_QUEUE_FEE":-388,"telCAN_NOT_QUEUE_FULL":-387,"temMALFORMED":-299,"temBAD_AMOUNT":-298,"temBAD_CURRENCY":-297,"temBAD_EXPIRATION":-296,"temBAD_FEE":-295,"temBAD_ISSUER":-294,"temBAD_LIMIT":-293,"temBAD_OFFER":-292,"temBAD_PATH":-291,"temBAD_PATH_LOOP":-290,"temBAD_REGKEY":-289,"temBAD_SEND_XRP_LIMIT":-288,"temBAD_SEND_XRP_MAX":-287,"temBAD_SEND_XRP_NO_DIRECT":-286,"temBAD_SEND_XRP_PARTIAL":-285,"temBAD_SEND_XRP_PATHS":-284,"temBAD_SEQUENCE":-283,"temBAD_SIGNATURE":-282,"temBAD_SRC_ACCOUNT":-281,"temBAD_TRANSFER_RATE":-280,"temDST_IS_SRC":-279,"temDST_NEEDED":-278,"temINVALID":-277,"temINVALID_FLAG":-276,"temREDUNDANT":-275,"temRIPPLE_EMPTY":-274,"temDISABLED":-273,"temBAD_SIGNER":-272,"temBAD_QUORUM":-271,"temBAD_WEIGHT":-270,"temBAD_TICK_SIZE":-269,"temINVALID_ACCOUNT_ID":-268,"temCANNOT_PREAUTH_SELF":-267,"temUNCERTAIN":-266,"temUNKNOWN":-265,"tefFAILURE":-199,"tefALREADY":-198,"tefBAD_ADD_AUTH":-197,"tefBAD_AUTH":-196,"tefBAD_LEDGER":-195,"tefCREATED":-194,"tefEXCEPTION":-193,"tefINTERNAL":-192,"tefNO_AUTH_REQUIRED":-191,"tefPAST_SEQ":-190,"tefWRONG_PRIOR":-189,"tefMASTER_DISABLED":-188,"tefMAX_LEDGER":-187,"tefBAD_SIGNATURE":-186,"tefBAD_QUORUM":-185,"tefNOT_MULTI_SIGNING":-184,"tefBAD_AUTH_MASTER":-183,"tefINVARIANT_FAILED":-182,"tefTOO_BIG":-181,"terRETRY":-99,"terFUNDS_SPENT":-98,"terINSUF_FEE_B":-97,"terNO_ACCOUNT":-96,"terNO_AUTH":-95,"terNO_LINE":-94,"terOWNERS":-93,"terPRE_SEQ":-92,"terLAST":-91,"terNO_RIPPLE":-90,"terQUEUED":-89,"tesSUCCESS":0,"tecCLAIM":100,"tecPATH_PARTIAL":101,"tecUNFUNDED_ADD":102,"tecUNFUNDED_OFFER":103,"tecUNFUNDED_PAYMENT":104,"tecFAILED_PROCESSING":105,"tecDIR_FULL":121,"tecINSUF_RESERVE_LINE":122,"tecINSUF_RESERVE_OFFER":123,"tecNO_DST":124,"tecNO_DST_INSUF_XRP":125,"tecNO_LINE_INSUF_RESERVE":126,"tecNO_LINE_REDUNDANT":127,"tecPATH_DRY":128,"tecUNFUNDED":129,"tecNO_ALTERNATIVE_KEY":130,"tecNO_REGULAR_KEY":131,"tecOWNERS":132,"tecNO_ISSUER":133,"tecNO_AUTH":134,"tecNO_LINE":135,"tecINSUFF_FEE":136,"tecFROZEN":137,"tecNO_TARGET":138,"tecNO_PERMISSION":139,"tecNO_ENTRY":140,"tecINSUFFICIENT_RESERVE":141,"tecNEED_MASTER_KEY":142,"tecDST_TAG_NEEDED":143,"tecINTERNAL":144,"tecOVERSIZE":145,"tecCRYPTOCONDITION_ERROR":146,"tecINVARIANT_FAILED":147,"tecEXPIRED":148,"tecDUPLICATE":149,"tecKILLED":150,"tecHAS_OBLIGATIONS":151,"tecTOO_SOON":152},"TRANSACTION_TYPES":{"Invalid":-1,"Payment":0,"EscrowCreate":1,"EscrowFinish":2,"AccountSet":3,"EscrowCancel":4,"SetRegularKey":5,"NickNameSet":6,"OfferCreate":7,"OfferCancel":8,"Contract":9,"TicketCreate":10,"TicketCancel":11,"SignerListSet":12,"PaymentChannelCreate":13,"PaymentChannelFund":14,"PaymentChannelClaim":15,"CheckCreate":16,"CheckCash":17,"CheckCancel":18,"DepositPreauth":19,"TrustSet":20,"AccountDelete":21,"EnableAmendment":100,"SetFee":101}}', + ) + }, + function (t, e, n) { + 'use strict' + ;(function (t) { + Object.defineProperty(e, '__esModule', { value: !0 }) + const r = n(74), + i = n(75) + const o = n(42), + s = [1, 225, 75], + a = new (class { + constructor(t) { + ;((this.sha256 = t.sha256), (this.alphabet = t.alphabet), (this.codec = r(this.alphabet)), (this.base = this.alphabet.length)) + } + encode(t, e) { + const n = e.versions + return this.encodeVersioned(t, n, e.expectedLength) + } + encodeVersioned(e, n, r) { + if (r && e.length !== r) + throw new Error('unexpected_payload_length: bytes.length does not match expectedLength. Ensure that the bytes are a Buffer.') + return this.encodeChecked(t.from(i.concatArgs(n, e))) + } + encodeChecked(e) { + const n = this.sha256(this.sha256(e)).slice(0, 4) + return this.encodeRaw(t.from(i.concatArgs(e, n))) + } + encodeRaw(t) { + return this.codec.encode(t) + } + decode(t, e) { + const n = e.versions, + r = e.versionTypes, + o = this.decodeChecked(t) + if (n.length > 1 && !e.expectedLength) throw new Error('expectedLength is required because there are >= 2 possible versions') + const s = 'number' == typeof n[0] ? 1 : n[0].length, + a = e.expectedLength || o.length - s, + u = o.slice(0, -a), + f = o.slice(-a) + for (let t = 0; t < n.length; t++) { + const e = Array.isArray(n[t]) ? n[t] : [n[t]] + if (i.seqEqual(u, e)) return { version: e, bytes: f, type: r ? r[t] : null } + } + throw new Error('version_invalid: version bytes do not match any of the provided version(s)') + } + decodeChecked(t) { + const e = this.decodeRaw(t) + if (e.length < 5) throw new Error('invalid_input_size: decoded data must have length >= 5') + if (!this.verifyCheckSum(e)) throw new Error('checksum_invalid') + return e.slice(0, -4) + } + decodeRaw(t) { + return this.codec.decode(t) + } + verifyCheckSum(t) { + const e = this.sha256(this.sha256(t.slice(0, -4))).slice(0, 4), + n = t.slice(-4) + return i.seqEqual(e, n) + } + })({ + sha256: function (e) { + return o('sha256').update(t.from(e)).digest() + }, + alphabet: 'rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz', + }) + function u(t) { + const e = { versions: [0], expectedLength: 20 } + return a.encode(t, e) + } + function f(t) { + const e = { versions: [0], expectedLength: 20 } + return a.decode(t, e).bytes + } + ;((e.codec = a), + (e.encodeSeed = function (t, e) { + if (16 !== t.length) throw new Error('entropy must have length 16') + const n = { expectedLength: 16, versions: 'ed25519' === e ? s : [33] } + return a.encode(t, n) + }), + (e.decodeSeed = function (t, e = { versionTypes: ['ed25519', 'secp256k1'], versions: [s, 33], expectedLength: 16 }) { + return a.decode(t, e) + }), + (e.encodeAccountID = u), + (e.encodeAddress = u), + (e.decodeAccountID = f), + (e.decodeAddress = f), + (e.decodeNodePublic = function (t) { + const e = { versions: [28], expectedLength: 33 } + return a.decode(t, e).bytes + }), + (e.encodeNodePublic = function (t) { + const e = { versions: [28], expectedLength: 33 } + return a.encode(t, e) + }), + (e.encodeAccountPublic = function (t) { + const e = { versions: [35], expectedLength: 33 } + return a.encode(t, e) + }), + (e.decodeAccountPublic = function (t) { + const e = { versions: [35], expectedLength: 33 } + return a.decode(t, e).bytes + }), + (e.isValidClassicAddress = function (t) { + try { + f(t) + } catch (t) { + return !1 + } + return !0 + })) + }).call(this, n(5).Buffer) + }, + function (t, e, n) { + 'use strict' + var r = n(6).Buffer + t.exports = function (t) { + if (t.length >= 255) throw new TypeError('Alphabet too long') + var e = new Uint8Array(256) + e.fill(255) + for (var n = 0; n < t.length; n++) { + var i = t.charAt(n), + o = i.charCodeAt(0) + if (255 !== e[o]) throw new TypeError(i + ' is ambiguous') + e[o] = n + } + var s = t.length, + a = t.charAt(0), + u = Math.log(s) / Math.log(256), + f = Math.log(256) / Math.log(s) + function c(t) { + if ('string' != typeof t) throw new TypeError('Expected String') + if (0 === t.length) return r.alloc(0) + var n = 0 + if (' ' !== t[n]) { + for (var i = 0, o = 0; t[n] === a; ) (i++, n++) + for (var f = ((t.length - n) * u + 1) >>> 0, c = new Uint8Array(f); t[n]; ) { + var h = e[t.charCodeAt(n)] + if (255 === h) return + for (var d = 0, l = f - 1; (0 !== h || d < o) && -1 !== l; l--, d++) + ((h += (s * c[l]) >>> 0), (c[l] = (h % 256) >>> 0), (h = (h / 256) >>> 0)) + if (0 !== h) throw new Error('Non-zero carry') + ;((o = d), n++) + } + if (' ' !== t[n]) { + for (var p = f - o; p !== f && 0 === c[p]; ) p++ + var b = r.allocUnsafe(i + (f - p)) + b.fill(0, 0, i) + for (var g = i; p !== f; ) b[g++] = c[p++] + return b + } + } + } + return { + encode: function (e) { + if (!r.isBuffer(e)) throw new TypeError('Expected Buffer') + if (0 === e.length) return '' + for (var n = 0, i = 0, o = 0, u = e.length; o !== u && 0 === e[o]; ) (o++, n++) + for (var c = ((u - o) * f + 1) >>> 0, h = new Uint8Array(c); o !== u; ) { + for (var d = e[o], l = 0, p = c - 1; (0 !== d || l < i) && -1 !== p; p--, l++) + ((d += (256 * h[p]) >>> 0), (h[p] = (d % s) >>> 0), (d = (d / s) >>> 0)) + if (0 !== d) throw new Error('Non-zero carry') + ;((i = l), o++) + } + for (var b = c - i; b !== c && 0 === h[b]; ) b++ + for (var g = a.repeat(n); b < c; ++b) g += t.charAt(h[b]) + return g + }, + decodeUnsafe: c, + decode: function (t) { + var e = c(t) + if (e) return e + throw new Error('Non-base' + s + ' character') + }, + } + } + }, + function (t, e, n) { + 'use strict' + ;(Object.defineProperty(e, '__esModule', { value: !0 }), + (e.seqEqual = function (t, e) { + if (t.length !== e.length) return !1 + for (let n = 0; n < t.length; n++) if (t[n] !== e[n]) return !1 + return !0 + }), + (e.concatArgs = function (...t) { + const e = [] + return ( + t.forEach(function (t) { + if (void 0 !== t.length) for (let n = 0; n < t.length; n++) e.push(t[n]) + else e.push(t) + }), + e + ) + })) + }, + function (t, e, n) { + 'use strict' + var r = n(1), + i = n(43), + o = n(6).Buffer, + s = new Array(16) + function a() { + ;(i.call(this, 64), (this._a = 1732584193), (this._b = 4023233417), (this._c = 2562383102), (this._d = 271733878)) + } + function u(t, e) { + return (t << e) | (t >>> (32 - e)) + } + function f(t, e, n, r, i, o, s) { + return (u((t + ((e & n) | (~e & r)) + i + o) | 0, s) + e) | 0 + } + function c(t, e, n, r, i, o, s) { + return (u((t + ((e & r) | (n & ~r)) + i + o) | 0, s) + e) | 0 + } + function h(t, e, n, r, i, o, s) { + return (u((t + (e ^ n ^ r) + i + o) | 0, s) + e) | 0 + } + function d(t, e, n, r, i, o, s) { + return (u((t + (n ^ (e | ~r)) + i + o) | 0, s) + e) | 0 + } + ;(r(a, i), + (a.prototype._update = function () { + for (var t = s, e = 0; e < 16; ++e) t[e] = this._block.readInt32LE(4 * e) + var n = this._a, + r = this._b, + i = this._c, + o = this._d + ;((n = f(n, r, i, o, t[0], 3614090360, 7)), + (o = f(o, n, r, i, t[1], 3905402710, 12)), + (i = f(i, o, n, r, t[2], 606105819, 17)), + (r = f(r, i, o, n, t[3], 3250441966, 22)), + (n = f(n, r, i, o, t[4], 4118548399, 7)), + (o = f(o, n, r, i, t[5], 1200080426, 12)), + (i = f(i, o, n, r, t[6], 2821735955, 17)), + (r = f(r, i, o, n, t[7], 4249261313, 22)), + (n = f(n, r, i, o, t[8], 1770035416, 7)), + (o = f(o, n, r, i, t[9], 2336552879, 12)), + (i = f(i, o, n, r, t[10], 4294925233, 17)), + (r = f(r, i, o, n, t[11], 2304563134, 22)), + (n = f(n, r, i, o, t[12], 1804603682, 7)), + (o = f(o, n, r, i, t[13], 4254626195, 12)), + (i = f(i, o, n, r, t[14], 2792965006, 17)), + (n = c(n, (r = f(r, i, o, n, t[15], 1236535329, 22)), i, o, t[1], 4129170786, 5)), + (o = c(o, n, r, i, t[6], 3225465664, 9)), + (i = c(i, o, n, r, t[11], 643717713, 14)), + (r = c(r, i, o, n, t[0], 3921069994, 20)), + (n = c(n, r, i, o, t[5], 3593408605, 5)), + (o = c(o, n, r, i, t[10], 38016083, 9)), + (i = c(i, o, n, r, t[15], 3634488961, 14)), + (r = c(r, i, o, n, t[4], 3889429448, 20)), + (n = c(n, r, i, o, t[9], 568446438, 5)), + (o = c(o, n, r, i, t[14], 3275163606, 9)), + (i = c(i, o, n, r, t[3], 4107603335, 14)), + (r = c(r, i, o, n, t[8], 1163531501, 20)), + (n = c(n, r, i, o, t[13], 2850285829, 5)), + (o = c(o, n, r, i, t[2], 4243563512, 9)), + (i = c(i, o, n, r, t[7], 1735328473, 14)), + (n = h(n, (r = c(r, i, o, n, t[12], 2368359562, 20)), i, o, t[5], 4294588738, 4)), + (o = h(o, n, r, i, t[8], 2272392833, 11)), + (i = h(i, o, n, r, t[11], 1839030562, 16)), + (r = h(r, i, o, n, t[14], 4259657740, 23)), + (n = h(n, r, i, o, t[1], 2763975236, 4)), + (o = h(o, n, r, i, t[4], 1272893353, 11)), + (i = h(i, o, n, r, t[7], 4139469664, 16)), + (r = h(r, i, o, n, t[10], 3200236656, 23)), + (n = h(n, r, i, o, t[13], 681279174, 4)), + (o = h(o, n, r, i, t[0], 3936430074, 11)), + (i = h(i, o, n, r, t[3], 3572445317, 16)), + (r = h(r, i, o, n, t[6], 76029189, 23)), + (n = h(n, r, i, o, t[9], 3654602809, 4)), + (o = h(o, n, r, i, t[12], 3873151461, 11)), + (i = h(i, o, n, r, t[15], 530742520, 16)), + (n = d(n, (r = h(r, i, o, n, t[2], 3299628645, 23)), i, o, t[0], 4096336452, 6)), + (o = d(o, n, r, i, t[7], 1126891415, 10)), + (i = d(i, o, n, r, t[14], 2878612391, 15)), + (r = d(r, i, o, n, t[5], 4237533241, 21)), + (n = d(n, r, i, o, t[12], 1700485571, 6)), + (o = d(o, n, r, i, t[3], 2399980690, 10)), + (i = d(i, o, n, r, t[10], 4293915773, 15)), + (r = d(r, i, o, n, t[1], 2240044497, 21)), + (n = d(n, r, i, o, t[8], 1873313359, 6)), + (o = d(o, n, r, i, t[15], 4264355552, 10)), + (i = d(i, o, n, r, t[6], 2734768916, 15)), + (r = d(r, i, o, n, t[13], 1309151649, 21)), + (n = d(n, r, i, o, t[4], 4149444226, 6)), + (o = d(o, n, r, i, t[11], 3174756917, 10)), + (i = d(i, o, n, r, t[2], 718787259, 15)), + (r = d(r, i, o, n, t[9], 3951481745, 21)), + (this._a = (this._a + n) | 0), + (this._b = (this._b + r) | 0), + (this._c = (this._c + i) | 0), + (this._d = (this._d + o) | 0)) + }), + (a.prototype._digest = function () { + ;((this._block[this._blockOffset++] = 128), + this._blockOffset > 56 && (this._block.fill(0, this._blockOffset, 64), this._update(), (this._blockOffset = 0)), + this._block.fill(0, this._blockOffset, 56), + this._block.writeUInt32LE(this._length[0], 56), + this._block.writeUInt32LE(this._length[1], 60), + this._update()) + var t = o.allocUnsafe(16) + return (t.writeInt32LE(this._a, 0), t.writeInt32LE(this._b, 4), t.writeInt32LE(this._c, 8), t.writeInt32LE(this._d, 12), t) + }), + (t.exports = a)) + }, + function (t, e) {}, + function (t, e, n) { + 'use strict' + var r = n(32).Buffer, + i = n(79) + ;((t.exports = (function () { + function t() { + ;(!(function (t, e) { + if (!(t instanceof e)) throw new TypeError('Cannot call a class as a function') + })(this, t), + (this.head = null), + (this.tail = null), + (this.length = 0)) + } + return ( + (t.prototype.push = function (t) { + var e = { data: t, next: null } + ;(this.length > 0 ? (this.tail.next = e) : (this.head = e), (this.tail = e), ++this.length) + }), + (t.prototype.unshift = function (t) { + var e = { data: t, next: this.head } + ;(0 === this.length && (this.tail = e), (this.head = e), ++this.length) + }), + (t.prototype.shift = function () { + if (0 !== this.length) { + var t = this.head.data + return (1 === this.length ? (this.head = this.tail = null) : (this.head = this.head.next), --this.length, t) + } + }), + (t.prototype.clear = function () { + ;((this.head = this.tail = null), (this.length = 0)) + }), + (t.prototype.join = function (t) { + if (0 === this.length) return '' + for (var e = this.head, n = '' + e.data; (e = e.next); ) n += t + e.data + return n + }), + (t.prototype.concat = function (t) { + if (0 === this.length) return r.alloc(0) + if (1 === this.length) return this.head.data + for (var e, n, i, o = r.allocUnsafe(t >>> 0), s = this.head, a = 0; s; ) + ((e = s.data), (n = o), (i = a), e.copy(n, i), (a += s.data.length), (s = s.next)) + return o + }), + t + ) + })()), + i && + i.inspect && + i.inspect.custom && + (t.exports.prototype[i.inspect.custom] = function () { + var t = i.inspect({ length: this.length }) + return this.constructor.name + ' ' + t + })) + }, + function (t, e) {}, + function (t, e, n) { + ;(function (t) { + var r = (void 0 !== t && t) || ('undefined' != typeof self && self) || window, + i = Function.prototype.apply + function o(t, e) { + ;((this._id = t), (this._clearFn = e)) + } + ;((e.setTimeout = function () { + return new o(i.call(setTimeout, r, arguments), clearTimeout) + }), + (e.setInterval = function () { + return new o(i.call(setInterval, r, arguments), clearInterval) + }), + (e.clearTimeout = e.clearInterval = + function (t) { + t && t.close() + }), + (o.prototype.unref = o.prototype.ref = function () {}), + (o.prototype.close = function () { + this._clearFn.call(r, this._id) + }), + (e.enroll = function (t, e) { + ;(clearTimeout(t._idleTimeoutId), (t._idleTimeout = e)) + }), + (e.unenroll = function (t) { + ;(clearTimeout(t._idleTimeoutId), (t._idleTimeout = -1)) + }), + (e._unrefActive = e.active = + function (t) { + clearTimeout(t._idleTimeoutId) + var e = t._idleTimeout + e >= 0 && + (t._idleTimeoutId = setTimeout(function () { + t._onTimeout && t._onTimeout() + }, e)) + }), + n(81), + (e.setImmediate = ('undefined' != typeof self && self.setImmediate) || (void 0 !== t && t.setImmediate) || (this && this.setImmediate)), + (e.clearImmediate = + ('undefined' != typeof self && self.clearImmediate) || (void 0 !== t && t.clearImmediate) || (this && this.clearImmediate))) + }).call(this, n(9)) + }, + function (t, e, n) { + ;(function (t, e) { + !(function (t, n) { + 'use strict' + if (!t.setImmediate) { + var r, + i, + o, + s, + a, + u = 1, + f = {}, + c = !1, + h = t.document, + d = Object.getPrototypeOf && Object.getPrototypeOf(t) + ;((d = d && d.setTimeout ? d : t), + '[object process]' === {}.toString.call(t.process) + ? (r = function (t) { + e.nextTick(function () { + p(t) + }) + }) + : !(function () { + if (t.postMessage && !t.importScripts) { + var e = !0, + n = t.onmessage + return ( + (t.onmessage = function () { + e = !1 + }), + t.postMessage('', '*'), + (t.onmessage = n), + e + ) + } + })() + ? t.MessageChannel + ? (((o = new MessageChannel()).port1.onmessage = function (t) { + p(t.data) + }), + (r = function (t) { + o.port2.postMessage(t) + })) + : h && 'onreadystatechange' in h.createElement('script') + ? ((i = h.documentElement), + (r = function (t) { + var e = h.createElement('script') + ;((e.onreadystatechange = function () { + ;(p(t), (e.onreadystatechange = null), i.removeChild(e), (e = null)) + }), + i.appendChild(e)) + })) + : (r = function (t) { + setTimeout(p, 0, t) + }) + : ((s = 'setImmediate$' + Math.random() + '$'), + (a = function (e) { + e.source === t && 'string' == typeof e.data && 0 === e.data.indexOf(s) && p(+e.data.slice(s.length)) + }), + t.addEventListener ? t.addEventListener('message', a, !1) : t.attachEvent('onmessage', a), + (r = function (e) { + t.postMessage(s + e, '*') + })), + (d.setImmediate = function (t) { + 'function' != typeof t && (t = new Function('' + t)) + for (var e = new Array(arguments.length - 1), n = 0; n < e.length; n++) e[n] = arguments[n + 1] + var i = { callback: t, args: e } + return ((f[u] = i), r(u), u++) + }), + (d.clearImmediate = l)) + } + function l(t) { + delete f[t] + } + function p(t) { + if (c) setTimeout(p, 0, t) + else { + var e = f[t] + if (e) { + c = !0 + try { + !(function (t) { + var e = t.callback, + n = t.args + switch (n.length) { + case 0: + e() + break + case 1: + e(n[0]) + break + case 2: + e(n[0], n[1]) + break + case 3: + e(n[0], n[1], n[2]) + break + default: + e.apply(void 0, n) + } + })(e) + } finally { + ;(l(t), (c = !1)) + } + } + } + } + })('undefined' == typeof self ? (void 0 === t ? this : t) : self) + }).call(this, n(9), n(19)) + }, + function (t, e, n) { + ;(function (e) { + function n(t) { + try { + if (!e.localStorage) return !1 + } catch (t) { + return !1 + } + var n = e.localStorage[t] + return null != n && 'true' === String(n).toLowerCase() + } + t.exports = function (t, e) { + if (n('noDeprecation')) return t + var r = !1 + return function () { + if (!r) { + if (n('throwDeprecation')) throw new Error(e) + ;(n('traceDeprecation') ? console.trace(e) : console.warn(e), (r = !0)) + } + return t.apply(this, arguments) + } + } + }).call(this, n(9)) + }, + function (t, e, n) { + var r = n(5), + i = r.Buffer + function o(t, e) { + for (var n in t) e[n] = t[n] + } + function s(t, e, n) { + return i(t, e, n) + } + ;(i.from && i.alloc && i.allocUnsafe && i.allocUnsafeSlow ? (t.exports = r) : (o(r, e), (e.Buffer = s)), + o(i, s), + (s.from = function (t, e, n) { + if ('number' == typeof t) throw new TypeError('Argument must not be a number') + return i(t, e, n) + }), + (s.alloc = function (t, e, n) { + if ('number' != typeof t) throw new TypeError('Argument must be a number') + var r = i(t) + return (void 0 !== e ? ('string' == typeof n ? r.fill(e, n) : r.fill(e)) : r.fill(0), r) + }), + (s.allocUnsafe = function (t) { + if ('number' != typeof t) throw new TypeError('Argument must be a number') + return i(t) + }), + (s.allocUnsafeSlow = function (t) { + if ('number' != typeof t) throw new TypeError('Argument must be a number') + return r.SlowBuffer(t) + })) + }, + function (t, e, n) { + 'use strict' + t.exports = o + var r = n(48), + i = Object.create(n(20)) + function o(t) { + if (!(this instanceof o)) return new o(t) + r.call(this, t) + } + ;((i.inherits = n(1)), + i.inherits(o, r), + (o.prototype._transform = function (t, e, n) { + n(null, t) + })) + }, + function (t, e, n) { + t.exports = n(33) + }, + function (t, e, n) { + t.exports = n(13) + }, + function (t, e, n) { + t.exports = n(31).Transform + }, + function (t, e, n) { + t.exports = n(31).PassThrough + }, + function (t, e, n) { + 'use strict' + var r = n(5).Buffer, + i = n(1), + o = n(43), + s = new Array(16), + a = [ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, + 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13, + ], + u = [ + 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, + 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11, + ], + f = [ + 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, + 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6, + ], + c = [ + 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, + 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11, + ], + h = [0, 1518500249, 1859775393, 2400959708, 2840853838], + d = [1352829926, 1548603684, 1836072691, 2053994217, 0] + function l() { + ;(o.call(this, 64), (this._a = 1732584193), (this._b = 4023233417), (this._c = 2562383102), (this._d = 271733878), (this._e = 3285377520)) + } + function p(t, e) { + return (t << e) | (t >>> (32 - e)) + } + function b(t, e, n, r, i, o, s, a) { + return (p((t + (e ^ n ^ r) + o + s) | 0, a) + i) | 0 + } + function g(t, e, n, r, i, o, s, a) { + return (p((t + ((e & n) | (~e & r)) + o + s) | 0, a) + i) | 0 + } + function v(t, e, n, r, i, o, s, a) { + return (p((t + ((e | ~n) ^ r) + o + s) | 0, a) + i) | 0 + } + function m(t, e, n, r, i, o, s, a) { + return (p((t + ((e & r) | (n & ~r)) + o + s) | 0, a) + i) | 0 + } + function y(t, e, n, r, i, o, s, a) { + return (p((t + (e ^ (n | ~r)) + o + s) | 0, a) + i) | 0 + } + ;(i(l, o), + (l.prototype._update = function () { + for (var t = s, e = 0; e < 16; ++e) t[e] = this._block.readInt32LE(4 * e) + for ( + var n = 0 | this._a, + r = 0 | this._b, + i = 0 | this._c, + o = 0 | this._d, + l = 0 | this._e, + w = 0 | this._a, + _ = 0 | this._b, + S = 0 | this._c, + M = 0 | this._d, + E = 0 | this._e, + A = 0; + A < 80; + A += 1 + ) { + var x, I + ;(A < 16 + ? ((x = b(n, r, i, o, l, t[a[A]], h[0], f[A])), (I = y(w, _, S, M, E, t[u[A]], d[0], c[A]))) + : A < 32 + ? ((x = g(n, r, i, o, l, t[a[A]], h[1], f[A])), (I = m(w, _, S, M, E, t[u[A]], d[1], c[A]))) + : A < 48 + ? ((x = v(n, r, i, o, l, t[a[A]], h[2], f[A])), (I = v(w, _, S, M, E, t[u[A]], d[2], c[A]))) + : A < 64 + ? ((x = m(n, r, i, o, l, t[a[A]], h[3], f[A])), (I = g(w, _, S, M, E, t[u[A]], d[3], c[A]))) + : ((x = y(n, r, i, o, l, t[a[A]], h[4], f[A])), (I = b(w, _, S, M, E, t[u[A]], d[4], c[A]))), + (n = l), + (l = o), + (o = p(i, 10)), + (i = r), + (r = x), + (w = E), + (E = M), + (M = p(S, 10)), + (S = _), + (_ = I)) + } + var T = (this._b + i + M) | 0 + ;((this._b = (this._c + o + E) | 0), + (this._c = (this._d + l + w) | 0), + (this._d = (this._e + n + _) | 0), + (this._e = (this._a + r + S) | 0), + (this._a = T)) + }), + (l.prototype._digest = function () { + ;((this._block[this._blockOffset++] = 128), + this._blockOffset > 56 && (this._block.fill(0, this._blockOffset, 64), this._update(), (this._blockOffset = 0)), + this._block.fill(0, this._blockOffset, 56), + this._block.writeUInt32LE(this._length[0], 56), + this._block.writeUInt32LE(this._length[1], 60), + this._update()) + var t = r.alloc ? r.alloc(20) : new r(20) + return ( + t.writeInt32LE(this._a, 0), + t.writeInt32LE(this._b, 4), + t.writeInt32LE(this._c, 8), + t.writeInt32LE(this._d, 12), + t.writeInt32LE(this._e, 16), + t + ) + }), + (t.exports = l)) + }, + function (t, e, n) { + ;(((e = t.exports = + function (t) { + t = t.toLowerCase() + var n = e[t] + if (!n) throw new Error(t + ' is not supported (we accept pull requests)') + return new n() + }).sha = n(91)), + (e.sha1 = n(92)), + (e.sha224 = n(93)), + (e.sha256 = n(49)), + (e.sha384 = n(94)), + (e.sha512 = n(50))) + }, + function (t, e, n) { + var r = n(1), + i = n(17), + o = n(6).Buffer, + s = [1518500249, 1859775393, -1894007588, -899497514], + a = new Array(80) + function u() { + ;(this.init(), (this._w = a), i.call(this, 64, 56)) + } + function f(t) { + return (t << 30) | (t >>> 2) + } + function c(t, e, n, r) { + return 0 === t ? (e & n) | (~e & r) : 2 === t ? (e & n) | (e & r) | (n & r) : e ^ n ^ r + } + ;(r(u, i), + (u.prototype.init = function () { + return ((this._a = 1732584193), (this._b = 4023233417), (this._c = 2562383102), (this._d = 271733878), (this._e = 3285377520), this) + }), + (u.prototype._update = function (t) { + for (var e, n = this._w, r = 0 | this._a, i = 0 | this._b, o = 0 | this._c, a = 0 | this._d, u = 0 | this._e, h = 0; h < 16; ++h) + n[h] = t.readInt32BE(4 * h) + for (; h < 80; ++h) n[h] = n[h - 3] ^ n[h - 8] ^ n[h - 14] ^ n[h - 16] + for (var d = 0; d < 80; ++d) { + var l = ~~(d / 20), + p = 0 | ((((e = r) << 5) | (e >>> 27)) + c(l, i, o, a) + u + n[d] + s[l]) + ;((u = a), (a = o), (o = f(i)), (i = r), (r = p)) + } + ;((this._a = (r + this._a) | 0), + (this._b = (i + this._b) | 0), + (this._c = (o + this._c) | 0), + (this._d = (a + this._d) | 0), + (this._e = (u + this._e) | 0)) + }), + (u.prototype._hash = function () { + var t = o.allocUnsafe(20) + return ( + t.writeInt32BE(0 | this._a, 0), + t.writeInt32BE(0 | this._b, 4), + t.writeInt32BE(0 | this._c, 8), + t.writeInt32BE(0 | this._d, 12), + t.writeInt32BE(0 | this._e, 16), + t + ) + }), + (t.exports = u)) + }, + function (t, e, n) { + var r = n(1), + i = n(17), + o = n(6).Buffer, + s = [1518500249, 1859775393, -1894007588, -899497514], + a = new Array(80) + function u() { + ;(this.init(), (this._w = a), i.call(this, 64, 56)) + } + function f(t) { + return (t << 5) | (t >>> 27) + } + function c(t) { + return (t << 30) | (t >>> 2) + } + function h(t, e, n, r) { + return 0 === t ? (e & n) | (~e & r) : 2 === t ? (e & n) | (e & r) | (n & r) : e ^ n ^ r + } + ;(r(u, i), + (u.prototype.init = function () { + return ((this._a = 1732584193), (this._b = 4023233417), (this._c = 2562383102), (this._d = 271733878), (this._e = 3285377520), this) + }), + (u.prototype._update = function (t) { + for (var e, n = this._w, r = 0 | this._a, i = 0 | this._b, o = 0 | this._c, a = 0 | this._d, u = 0 | this._e, d = 0; d < 16; ++d) + n[d] = t.readInt32BE(4 * d) + for (; d < 80; ++d) n[d] = ((e = n[d - 3] ^ n[d - 8] ^ n[d - 14] ^ n[d - 16]) << 1) | (e >>> 31) + for (var l = 0; l < 80; ++l) { + var p = ~~(l / 20), + b = (f(r) + h(p, i, o, a) + u + n[l] + s[p]) | 0 + ;((u = a), (a = o), (o = c(i)), (i = r), (r = b)) + } + ;((this._a = (r + this._a) | 0), + (this._b = (i + this._b) | 0), + (this._c = (o + this._c) | 0), + (this._d = (a + this._d) | 0), + (this._e = (u + this._e) | 0)) + }), + (u.prototype._hash = function () { + var t = o.allocUnsafe(20) + return ( + t.writeInt32BE(0 | this._a, 0), + t.writeInt32BE(0 | this._b, 4), + t.writeInt32BE(0 | this._c, 8), + t.writeInt32BE(0 | this._d, 12), + t.writeInt32BE(0 | this._e, 16), + t + ) + }), + (t.exports = u)) + }, + function (t, e, n) { + var r = n(1), + i = n(49), + o = n(17), + s = n(6).Buffer, + a = new Array(64) + function u() { + ;(this.init(), (this._w = a), o.call(this, 64, 56)) + } + ;(r(u, i), + (u.prototype.init = function () { + return ( + (this._a = 3238371032), + (this._b = 914150663), + (this._c = 812702999), + (this._d = 4144912697), + (this._e = 4290775857), + (this._f = 1750603025), + (this._g = 1694076839), + (this._h = 3204075428), + this + ) + }), + (u.prototype._hash = function () { + var t = s.allocUnsafe(28) + return ( + t.writeInt32BE(this._a, 0), + t.writeInt32BE(this._b, 4), + t.writeInt32BE(this._c, 8), + t.writeInt32BE(this._d, 12), + t.writeInt32BE(this._e, 16), + t.writeInt32BE(this._f, 20), + t.writeInt32BE(this._g, 24), + t + ) + }), + (t.exports = u)) + }, + function (t, e, n) { + var r = n(1), + i = n(50), + o = n(17), + s = n(6).Buffer, + a = new Array(160) + function u() { + ;(this.init(), (this._w = a), o.call(this, 128, 112)) + } + ;(r(u, i), + (u.prototype.init = function () { + return ( + (this._ah = 3418070365), + (this._bh = 1654270250), + (this._ch = 2438529370), + (this._dh = 355462360), + (this._eh = 1731405415), + (this._fh = 2394180231), + (this._gh = 3675008525), + (this._hh = 1203062813), + (this._al = 3238371032), + (this._bl = 914150663), + (this._cl = 812702999), + (this._dl = 4144912697), + (this._el = 4290775857), + (this._fl = 1750603025), + (this._gl = 1694076839), + (this._hl = 3204075428), + this + ) + }), + (u.prototype._hash = function () { + var t = s.allocUnsafe(48) + function e(e, n, r) { + ;(t.writeInt32BE(e, r), t.writeInt32BE(n, r + 4)) + } + return ( + e(this._ah, this._al, 0), + e(this._bh, this._bl, 8), + e(this._ch, this._cl, 16), + e(this._dh, this._dl, 24), + e(this._eh, this._el, 32), + e(this._fh, this._fl, 40), + t + ) + }), + (t.exports = u)) + }, + function (t, e, n) { + var r = n(6).Buffer, + i = n(44).Transform, + o = n(34).StringDecoder + function s(t) { + ;(i.call(this), + (this.hashMode = 'string' == typeof t), + this.hashMode ? (this[t] = this._finalOrDigest) : (this.final = this._finalOrDigest), + this._final && ((this.__final = this._final), (this._final = null)), + (this._decoder = null), + (this._encoding = null)) + } + ;(n(1)(s, i), + (s.prototype.update = function (t, e, n) { + 'string' == typeof t && (t = r.from(t, e)) + var i = this._update(t) + return this.hashMode ? this : (n && (i = this._toString(i, n)), i) + }), + (s.prototype.setAutoPadding = function () {}), + (s.prototype.getAuthTag = function () { + throw new Error('trying to get auth tag in unsupported state') + }), + (s.prototype.setAuthTag = function () { + throw new Error('trying to set auth tag in unsupported state') + }), + (s.prototype.setAAD = function () { + throw new Error('trying to set aad in unsupported state') + }), + (s.prototype._transform = function (t, e, n) { + var r + try { + this.hashMode ? this._update(t) : this.push(this._update(t)) + } catch (t) { + r = t + } finally { + n(r) + } + }), + (s.prototype._flush = function (t) { + var e + try { + this.push(this.__final()) + } catch (t) { + e = t + } + t(e) + }), + (s.prototype._finalOrDigest = function (t) { + var e = this.__final() || r.alloc(0) + return (t && (e = this._toString(e, t, !0)), e) + }), + (s.prototype._toString = function (t, e, n) { + if ((this._decoder || ((this._decoder = new o(e)), (this._encoding = e)), this._encoding !== e)) throw new Error("can't switch encodings") + var r = this._decoder.write(t) + return (n && (r += this._decoder.end()), r) + }), + (t.exports = s)) + }, + function (t, e, n) { + 'use strict' + var r = + 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator + ? function (t) { + return typeof t + } + : function (t) { + return t && 'function' == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? 'symbol' : typeof t + } + var i = n(12), + o = n(2), + s = n(11), + a = n(51), + u = n(0), + f = n(10).SerializedType, + c = n(3).bytesToHex, + h = n(38).Currency, + d = n(28).AccountID, + l = n(52).UInt64, + p = new a('9999999999999999e80'), + b = new a('1000000000000000e-96'), + g = new a('1e6'), + v = new a('1e17'), + m = new a('1e-6'), + y = v.dividedBy(g) + a.config({ toExpPos: 96, toExpNeg: -112 }) + var w = + '\nNative values must be described in drops, a million of which equal one XRP.\nThis must be an integer number, with the absolute value not exceeding ' + + v + + '\n\nIOU values must have a maximum precision of 16 significant digits. They are serialized as\na canonicalised mantissa and exponent.\n\nThe valid range for a mantissa is between 1000000000000000 and 9999999999999999\nThe exponent must be >= ' + + -96 + + ' and <= 80\n\nThus the largest serializable IOU value is:\n' + + p.toString() + + '\n\nAnd the smallest:\n' + + b.toString() + + '\n' + function _(t) { + return !i.isUndefined(t) + } + function S(t) { + throw new Error(t.toString() + ' is an illegal amount\n' + w) + } + var M = { + string: function (t) { + return (t.match(/^\d+$/) || S(t), [new a(t).dividedBy(g), h.XRP]) + }, + object: function (t) { + return ( + o(_(t.currency), 'currency must be defined'), + o(_(t.issuer), 'issuer must be defined'), + [new a(t.value), h.from(t.currency), d.from(t.issuer)] + ) + }, + }, + E = u({ + Amount: function (t, e, n) { + var r = !(arguments.length > 3 && void 0 !== arguments[3]) || arguments[3] + ;((this.value = t || new a('0')), (this.currency = e || h.XRP), (this.issuer = n || null), r && this.assertValueIsValid()) + }, + mixins: f, + statics: { + from: function (t) { + if (t instanceof this) return t + var e = M[void 0 === t ? 'undefined' : r(t)] + if (e) + return new (Function.prototype.bind.apply( + this, + [null].concat( + (function (t) { + if (Array.isArray(t)) { + for (var e = 0, n = Array(t.length); e < t.length; e++) n[e] = t[e] + return n + } + return Array.from(t) + })(e(t)), + ), + ))() + throw new Error('unsupported value: ' + t) + }, + fromParser: function (t) { + var e = t.read(8), + n = e[0], + r = e[1], + i = 64 & n ? '' : '-' + if (128 & n) { + e[0] = 0 + var o = t.readType(h), + s = t.readType(d), + u = ((63 & n) << 2) + ((255 & r) >> 6) - 97 + return ((e[1] &= 63), new this(new a(i + '0x' + c(e)).times('1e' + u), o, s, !1)) + } + return ((e[0] &= 63), new this(new a(i + '0x' + c(e)).dividedBy(g), h.XRP, null, !1)) + }, + }, + assertValueIsValid: function () { + if (!this.isZero()) + if (this.isNative()) { + var t = this.value.abs() + ;((t.lt(m) || t.gt(y)) && S(this.value.times(g)), this.verifyNoDecimal(this.value)) + } else { + var e = this.value.precision(), + n = this.exponent() + ;(e > 16 || n > 80 || n < -96) && S(this.value) + } + }, + isNative: function () { + return this.currency.isNative() + }, + mantissa: function () { + var t = this.verifyNoDecimal() + return new l(new s(t)) + }, + verifyNoDecimal: function () { + var t = this.value + .times('1e' + -this.exponent()) + .abs() + .toString() + return (-1 !== t.indexOf('.') && S(t), t) + }, + isZero: function () { + return this.value.isZero() + }, + exponent: function () { + return this.isNative() ? -6 : this.value.e - 15 + }, + valueString: function () { + return (this.isNative() ? this.value.times(g) : this.value).toString() + }, + toBytesSink: function (t) { + var e = this.isNative(), + n = !this.value.isNegative(), + r = this.mantissa().toBytes() + if (e) ((r[0] |= n ? 64 : 0), t.put(r)) + else { + if (((r[0] |= 128), !this.isZero())) { + n && (r[0] |= 64) + var i = 97 + (this.value.e - 15) + ;((r[0] |= i >>> 2), (r[1] |= (3 & i) << 6)) + } + ;(t.put(r), this.currency.toBytesSink(t), this.issuer.toBytesSink(t)) + } + }, + toJSON: function () { + var t = this.valueString() + return this.isNative() ? t : { value: t, currency: this.currency.toJSON(), issuer: this.issuer.toJSON() } + }, + }) + t.exports = { Amount: E } + }, + function (t, e) {}, + function (t, e, n) { + 'use strict' + var r = n(0), + i = n(3).parseBytes, + o = r({ + mixins: n(10).SerializedType, + Blob: function (t) { + this._bytes = t ? i(t, Uint8Array) : new Uint8Array(0) + }, + statics: { + fromParser: function (t, e) { + return new this(t.read(e)) + }, + from: function (t) { + return t instanceof this ? t : new this(t) + }, + }, + }) + t.exports = { Blob: o } + }, + function (t, e, n) { + 'use strict' + var r = n(0)({ inherits: n(36).Hash, statics: { width: 16 } }) + t.exports = { Hash128: r } + }, + function (t, e, n) { + 'use strict' + var r = n(0), + i = n(10), + o = i.SerializedType, + s = i.ensureArrayLikeIs, + a = n(38).Currency, + u = n(28).AccountID, + f = r({ + statics: { + from: function (t) { + if (t instanceof this) return t + var e = new f() + return ( + t.issuer && (e.issuer = u.from(t.issuer)), + t.account && (e.account = u.from(t.account)), + t.currency && (e.currency = a.from(t.currency)), + e + ) + }, + parse: function (t, e) { + var n = new f() + return (1 & e && (n.account = u.fromParser(t)), 16 & e && (n.currency = a.fromParser(t)), 32 & e && (n.issuer = u.fromParser(t)), n) + }, + }, + toJSON: function () { + var t = this.type(), + e = {} + return ( + 1 & t && (e.account = this.account.toJSON()), + 32 & t && (e.issuer = this.issuer.toJSON()), + 16 & t && (e.currency = this.currency.toJSON()), + e + ) + }, + type: function () { + var t = 0 + return (this.issuer && (t += 32), this.account && (t += 1), this.currency && (t += 16), t) + }, + }), + c = r({ + inherits: Array, + statics: { + from: function (t) { + return s(c, t).withChildren(f) + }, + }, + toJSON: function () { + return this.map(function (t) { + return t.toJSON() + }) + }, + }), + h = r({ + mixins: o, + inherits: Array, + statics: { + from: function (t) { + return s(h, t).withChildren(c) + }, + fromParser: function (t) { + for (var e = new this(), n = void 0; !t.end(); ) { + var r = t.readUInt8() + if (0 === r) break + 255 !== r ? (n || ((n = new c()), e.push(n)), n.push(f.parse(t, r))) : (n = null) + } + return e + }, + }, + toJSON: function () { + return this.map(function (t) { + return t.toJSON() + }) + }, + toBytesSink: function (t) { + var e = 0 + ;(this.forEach(function (n) { + ;(0 != e++ && t.put([255]), + n.forEach(function (e) { + ;(t.put([e.type()]), + e.account && e.account.toBytesSink(t), + e.currency && e.currency.toBytesSink(t), + e.issuer && e.issuer.toBytesSink(t)) + })) + }), + t.put([0])) + }, + }) + t.exports = { PathSet: h } + }, + function (t, e, n) { + 'use strict' + var r = n(0), + i = n(10), + o = i.ensureArrayLikeIs, + s = i.SerializedType, + a = n(15).Field, + u = n(54).STObject, + f = a.ArrayEndMarker, + c = r({ + mixins: s, + inherits: Array, + statics: { + fromParser: function (t) { + for (var e = new c(); !t.end(); ) { + var n = t.readField() + if (n === f) break + var r = new u() + ;((r[n] = t.readFieldValue(n)), e.push(r)) + } + return e + }, + from: function (t) { + return o(c, t).withChildren(u) + }, + }, + toJSON: function () { + return this.map(function (t) { + return t.toJSON() + }) + }, + toBytesSink: function (t) { + this.forEach(function (e) { + return e.toBytesSink(t) + }) + }, + }) + t.exports = { STArray: c } + }, + function (t, e, n) { + 'use strict' + var r = n(0)({ inherits: n(24).UInt, statics: { width: 2 } }) + t.exports = { UInt16: r } + }, + function (t, e, n) { + 'use strict' + var r = n(0)({ inherits: n(24).UInt, statics: { width: 4 } }) + t.exports = { UInt32: r } + }, + function (t, e, n) { + 'use strict' + var r = n(0)({ inherits: n(24).UInt, statics: { width: 1 } }) + t.exports = { UInt8: r } + }, + function (t, e, n) { + 'use strict' + var r = n(0), + i = n(53).Hash256, + o = n(10), + s = o.ensureArrayLikeIs, + a = r({ + mixins: o.SerializedType, + inherits: Array, + statics: { + fromParser: function (t, e) { + for (var n = new this(), r = (null !== e ? e : t.size() - t.pos()) / 32, o = 0; o < r; o++) n.push(i.fromParser(t)) + return n + }, + from: function (t) { + return s(a, t).withChildren(i) + }, + }, + toBytesSink: function (t) { + this.forEach(function (e) { + return e.toBytesSink(t) + }) + }, + toJSON: function () { + return this.map(function (t) { + return t.toJSON() + }) + }, + }) + t.exports = { Vector256: a } + }, + function (t, e, n) { + 'use strict' + var r = n(2), + i = n(0), + o = n(15).Field, + s = n(3), + a = s.slice, + u = s.parseBytes, + f = i({ + BinaryParser: function (t) { + ;((this._buf = u(t, Uint8Array)), (this._length = this._buf.length), (this._cursor = 0)) + }, + skip: function (t) { + this._cursor += t + }, + read: function (t) { + var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : Uint8Array, + n = this._cursor, + i = this._cursor + t + return (r(i <= this._buf.length), (this._cursor = i), a(this._buf, n, i, e)) + }, + readUIntN: function (t) { + return ( + this.read(t, Array).reduce(function (t, e) { + return (t << 8) | e + }) >>> 0 + ) + }, + readUInt8: function () { + return this._buf[this._cursor++] + }, + readUInt16: function () { + return this.readUIntN(2) + }, + readUInt32: function () { + return this.readUIntN(4) + }, + pos: function () { + return this._cursor + }, + size: function () { + return this._buf.length + }, + end: function (t) { + var e = this.pos() + return e >= this._length || (null !== t && e >= t) + }, + readVL: function () { + return this.read(this.readVLLength()) + }, + readVLLength: function () { + var t = this.readUInt8() + if (t <= 192) return t + if (t <= 240) return 193 + 256 * (t - 193) + this.readUInt8() + if (t <= 254) return 12481 + 65536 * (t - 241) + 256 * this.readUInt8() + this.readUInt8() + throw new Error('Invalid varint length indicator') + }, + readFieldOrdinal: function () { + var t = this.readUInt8() + return (((240 & t) >>> 4 || this.readUInt8()) << 16) | (15 & t || this.readUInt8()) + }, + readField: function () { + return o.from(this.readFieldOrdinal()) + }, + readType: function (t) { + return t.fromParser(this) + }, + typeForField: function (t) { + return t.associatedType + }, + readFieldValue: function (t) { + var e = this.typeForField(t) + if (!e) throw new Error('unsupported: (' + t.name + ', ' + t.type.name + ')') + var n = t.isVLEncoded ? this.readVLLength() : null, + r = e.fromParser(this, n) + if (void 0 === r) throw new Error('fromParser for (' + t.name + ', ' + t.type.name + ') -> undefined ') + return r + }, + readFieldAndValue: function () { + var t = this.readField() + return [t, this.readFieldValue(t)] + }, + }) + t.exports = { BinaryParser: f } + }, + function (t, e, n) { + 'use strict' + var r = n(12), + i = n(11), + o = n(2), + s = n(16), + a = s.STObject, + u = s.Hash256, + f = n(56).ShaMap, + c = n(21).HashPrefix, + h = n(25).Sha512Half, + d = n(55), + l = d.BinarySerializer, + p = d.serializeObject + function b(t, e) { + var n = new f() + return ( + e.forEach(function (e) { + return n.addItem.apply( + n, + (function (t) { + if (Array.isArray(t)) { + for (var e = 0, n = Array(t.length); e < t.length; e++) n[e] = t[e] + return n + } + return Array.from(t) + })(t(e)), + ) + }), + n.hash() + ) + } + var g = r.partial(b, function (t) { + return ( + o(t.hash), + [ + u.from(t.hash), + { + hashPrefix: function () { + return c.transaction + }, + toBytesSink: function (e) { + var n = new l(e) + ;(n.writeLengthEncoded(a.from(t)), n.writeLengthEncoded(a.from(t.metaData))) + }, + }, + ] + ) + }), + v = r.partial(b, function (t) { + var e = u.from(t.index), + n = p(t) + return [ + e, + { + hashPrefix: function () { + return c.accountStateEntry + }, + toBytesSink: function (t) { + t.put(n) + }, + }, + ] + }) + t.exports = { + accountStateHash: v, + transactionTreeHash: g, + ledgerHash: function (t) { + var e = new h() + return ( + e.put(c.ledgerHeader), + o(void 0 !== t.parent_close_time), + o(void 0 !== t.close_flags), + s.UInt32.from(t.ledger_index).toBytesSink(e), + s.UInt64.from(new i(t.total_coins)).toBytesSink(e), + s.Hash256.from(t.parent_hash).toBytesSink(e), + s.Hash256.from(t.transaction_hash).toBytesSink(e), + s.Hash256.from(t.account_hash).toBytesSink(e), + s.UInt32.from(t.parent_close_time).toBytesSink(e), + s.UInt32.from(t.close_time).toBytesSink(e), + s.UInt8.from(t.close_time_resolution).toBytesSink(e), + s.UInt8.from(t.close_flags).toBytesSink(e), + e.finish() + ) + }, + } + }, + function (t, e, n) { + 'use strict' + var r = n(51), + i = n(3), + o = i.bytesToHex, + s = i.slice, + a = i.parseBytes, + u = n(16).UInt64, + f = n(11) + t.exports = { + encode: function (t) { + var e = t instanceof r ? t : new r(t), + n = e.e - 15, + i = e + .times('1e' + -n) + .abs() + .toString(), + o = new u(new f(i)).toBytes() + return ((o[0] = n + 100), o) + }, + decode: function (t) { + var e = s(a(t), -8), + n = e[0] - 100 + return new r('0x' + o(s(e, 1))).times('1e' + n) + }, + } + }, + function (t, e, n) { + 'use strict' + ;(function (e) { + const r = n(2), + i = n(39), + o = n(18), + s = n(60), + a = n(29), + u = n(130), + f = n(132), + c = s.eddsa('ed25519'), + h = s.ec('secp256k1'), + { hexToBytes: d } = f, + { bytesToHex: l } = f + function p(t) { + return o.sha512().update(t).digest().slice(0, 32) + } + const b = { + deriveKeypair(t, e) { + const n = '00' + u.derivePrivateKey(t, e).toString(16, 64).toUpperCase(), + r = l(h.keyFromPrivate(n.slice(2)).getPublic().encodeCompressed()) + return { privateKey: n, publicKey: r } + }, + sign: (t, e) => l(h.sign(p(t), d(e), { canonical: !0 }).toDER()), + verify: (t, e, n) => h.verify(p(t), e, d(n)), + }, + g = { + deriveKeypair(t) { + const e = p(t) + return { privateKey: 'ED' + l(e), publicKey: 'ED' + l(c.keyFromSecret(e).pubBytes()) } + }, + sign: (t, e) => (r(Array.isArray(t), 'message must be array of octets'), l(c.sign(t, d(e).slice(1)).toBytes())), + verify: (t, e, n) => c.verify(t, d(e), d(n).slice(1)), + } + function v(t) { + return { 'ecdsa-secp256k1': b, ed25519: g }[t] + } + function m(t) { + const e = d(t) + return 33 === e.length && 237 === e[0] ? 'ed25519' : 'ecdsa-secp256k1' + } + function y(t) { + return a.encodeAccountID(f.computePublicKeyHash(t)) + } + const { decodeSeed: w } = a + t.exports = { + generateSeed: function (t = {}) { + r(!t.entropy || t.entropy.length >= 16, 'entropy too short') + const e = t.entropy ? t.entropy.slice(0, 16) : i(16), + n = 'ed25519' === t.algorithm ? 'ed25519' : 'secp256k1' + return a.encodeSeed(e, n) + }, + deriveKeypair: function (t, e) { + const n = a.decodeSeed(t), + r = v('ed25519' === n.type ? 'ed25519' : 'ecdsa-secp256k1'), + i = r.deriveKeypair(n.bytes, e), + o = p('This test message should verify.'), + s = r.sign(o, i.privateKey) + if (!0 !== r.verify(o, s, i.publicKey)) throw new Error('derived keypair did not generate verifiable signature') + return i + }, + sign: function (t, e) { + return v(m(e)).sign(d(t), e) + }, + verify: function (t, e, n) { + return v(m(n)).verify(d(t), e, n) + }, + deriveAddress: function (t) { + return y(e.from(d(t))) + }, + deriveNodeAddress: function (t) { + const e = a.decodeNodePublic(t) + return y(u.accountPublicFromPublicGenerator(e)) + }, + decodeSeed: w, + } + }).call(this, n(5).Buffer) + }, + function (t, e) {}, + function (t, e, n) { + 'use strict' + ;((e.sha1 = n(112)), (e.sha224 = n(113)), (e.sha256 = n(58)), (e.sha384 = n(114)), (e.sha512 = n(59))) + }, + function (t, e, n) { + 'use strict' + var r = n(7), + i = n(22), + o = n(57), + s = r.rotl32, + a = r.sum32, + u = r.sum32_5, + f = o.ft_1, + c = i.BlockHash, + h = [1518500249, 1859775393, 2400959708, 3395469782] + function d() { + if (!(this instanceof d)) return new d() + ;(c.call(this), (this.h = [1732584193, 4023233417, 2562383102, 271733878, 3285377520]), (this.W = new Array(80))) + } + ;(r.inherits(d, c), + (t.exports = d), + (d.blockSize = 512), + (d.outSize = 160), + (d.hmacStrength = 80), + (d.padLength = 64), + (d.prototype._update = function (t, e) { + for (var n = this.W, r = 0; r < 16; r++) n[r] = t[e + r] + for (; r < n.length; r++) n[r] = s(n[r - 3] ^ n[r - 8] ^ n[r - 14] ^ n[r - 16], 1) + var i = this.h[0], + o = this.h[1], + c = this.h[2], + d = this.h[3], + l = this.h[4] + for (r = 0; r < n.length; r++) { + var p = ~~(r / 20), + b = u(s(i, 5), f(p, o, c, d), l, n[r], h[p]) + ;((l = d), (d = c), (c = s(o, 30)), (o = i), (i = b)) + } + ;((this.h[0] = a(this.h[0], i)), + (this.h[1] = a(this.h[1], o)), + (this.h[2] = a(this.h[2], c)), + (this.h[3] = a(this.h[3], d)), + (this.h[4] = a(this.h[4], l))) + }), + (d.prototype._digest = function (t) { + return 'hex' === t ? r.toHex32(this.h, 'big') : r.split32(this.h, 'big') + })) + }, + function (t, e, n) { + 'use strict' + var r = n(7), + i = n(58) + function o() { + if (!(this instanceof o)) return new o() + ;(i.call(this), (this.h = [3238371032, 914150663, 812702999, 4144912697, 4290775857, 1750603025, 1694076839, 3204075428])) + } + ;(r.inherits(o, i), + (t.exports = o), + (o.blockSize = 512), + (o.outSize = 224), + (o.hmacStrength = 192), + (o.padLength = 64), + (o.prototype._digest = function (t) { + return 'hex' === t ? r.toHex32(this.h.slice(0, 7), 'big') : r.split32(this.h.slice(0, 7), 'big') + })) + }, + function (t, e, n) { + 'use strict' + var r = n(7), + i = n(59) + function o() { + if (!(this instanceof o)) return new o() + ;(i.call(this), + (this.h = [ + 3418070365, 3238371032, 1654270250, 914150663, 2438529370, 812702999, 355462360, 4144912697, 1731405415, 4290775857, 2394180231, 1750603025, + 3675008525, 1694076839, 1203062813, 3204075428, + ])) + } + ;(r.inherits(o, i), + (t.exports = o), + (o.blockSize = 1024), + (o.outSize = 384), + (o.hmacStrength = 192), + (o.padLength = 128), + (o.prototype._digest = function (t) { + return 'hex' === t ? r.toHex32(this.h.slice(0, 12), 'big') : r.split32(this.h.slice(0, 12), 'big') + })) + }, + function (t, e, n) { + 'use strict' + var r = n(7), + i = n(22), + o = r.rotl32, + s = r.sum32, + a = r.sum32_3, + u = r.sum32_4, + f = i.BlockHash + function c() { + if (!(this instanceof c)) return new c() + ;(f.call(this), (this.h = [1732584193, 4023233417, 2562383102, 271733878, 3285377520]), (this.endian = 'little')) + } + function h(t, e, n, r) { + return t <= 15 ? e ^ n ^ r : t <= 31 ? (e & n) | (~e & r) : t <= 47 ? (e | ~n) ^ r : t <= 63 ? (e & r) | (n & ~r) : e ^ (n | ~r) + } + function d(t) { + return t <= 15 ? 0 : t <= 31 ? 1518500249 : t <= 47 ? 1859775393 : t <= 63 ? 2400959708 : 2840853838 + } + function l(t) { + return t <= 15 ? 1352829926 : t <= 31 ? 1548603684 : t <= 47 ? 1836072691 : t <= 63 ? 2053994217 : 0 + } + ;(r.inherits(c, f), + (e.ripemd160 = c), + (c.blockSize = 512), + (c.outSize = 160), + (c.hmacStrength = 192), + (c.padLength = 64), + (c.prototype._update = function (t, e) { + for (var n = this.h[0], r = this.h[1], i = this.h[2], f = this.h[3], c = this.h[4], m = n, y = r, w = i, _ = f, S = c, M = 0; M < 80; M++) { + var E = s(o(u(n, h(M, r, i, f), t[p[M] + e], d(M)), g[M]), c) + ;((n = c), + (c = f), + (f = o(i, 10)), + (i = r), + (r = E), + (E = s(o(u(m, h(79 - M, y, w, _), t[b[M] + e], l(M)), v[M]), S)), + (m = S), + (S = _), + (_ = o(w, 10)), + (w = y), + (y = E)) + } + ;((E = a(this.h[1], i, _)), + (this.h[1] = a(this.h[2], f, S)), + (this.h[2] = a(this.h[3], c, m)), + (this.h[3] = a(this.h[4], n, y)), + (this.h[4] = a(this.h[0], r, w)), + (this.h[0] = E)) + }), + (c.prototype._digest = function (t) { + return 'hex' === t ? r.toHex32(this.h, 'little') : r.split32(this.h, 'little') + })) + var p = [ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, + 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13, + ], + b = [ + 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, + 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11, + ], + g = [ + 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, + 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6, + ], + v = [ + 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, + 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11, + ] + }, + function (t, e, n) { + 'use strict' + var r = n(7), + i = n(14) + function o(t, e, n) { + if (!(this instanceof o)) return new o(t, e, n) + ;((this.Hash = t), + (this.blockSize = t.blockSize / 8), + (this.outSize = t.outSize / 8), + (this.inner = null), + (this.outer = null), + this._init(r.toArray(e, n))) + } + ;((t.exports = o), + (o.prototype._init = function (t) { + ;(t.length > this.blockSize && (t = new this.Hash().update(t).digest()), i(t.length <= this.blockSize)) + for (var e = t.length; e < this.blockSize; e++) t.push(0) + for (e = 0; e < t.length; e++) t[e] ^= 54 + for (this.inner = new this.Hash().update(t), e = 0; e < t.length; e++) t[e] ^= 106 + this.outer = new this.Hash().update(t) + }), + (o.prototype.update = function (t, e) { + return (this.inner.update(t, e), this) + }), + (o.prototype.digest = function (t) { + return (this.outer.update(this.inner.digest()), this.outer.digest(t)) + })) + }, + function (t) { + t.exports = JSON.parse( + '{"_from":"elliptic@^6.5.2","_id":"elliptic@6.5.2","_inBundle":false,"_integrity":"sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw==","_location":"/elliptic","_phantomChildren":{},"_requested":{"type":"range","registry":true,"raw":"elliptic@^6.5.2","name":"elliptic","escapedName":"elliptic","rawSpec":"^6.5.2","saveSpec":null,"fetchSpec":"^6.5.2"},"_requiredBy":["/ripple-keypairs"],"_resolved":"https://registry.npmjs.org/elliptic/-/elliptic-6.5.2.tgz","_shasum":"05c5678d7173c049d8ca433552224a495d0e3762","_spec":"elliptic@^6.5.2","_where":"/Users/mbhandary/node_modules/ripple-keypairs","author":{"name":"Fedor Indutny","email":"fedor@indutny.com"},"bugs":{"url":"https://github.com/indutny/elliptic/issues"},"bundleDependencies":false,"dependencies":{"bn.js":"^4.4.0","brorand":"^1.0.1","hash.js":"^1.0.0","hmac-drbg":"^1.0.0","inherits":"^2.0.1","minimalistic-assert":"^1.0.0","minimalistic-crypto-utils":"^1.0.0"},"deprecated":false,"description":"EC cryptography","devDependencies":{"brfs":"^1.4.3","coveralls":"^3.0.8","grunt":"^1.0.4","grunt-browserify":"^5.0.0","grunt-cli":"^1.2.0","grunt-contrib-connect":"^1.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^1.0.1","grunt-mocha-istanbul":"^3.0.1","grunt-saucelabs":"^9.0.1","istanbul":"^0.4.2","jscs":"^3.0.7","jshint":"^2.10.3","mocha":"^6.2.2"},"files":["lib"],"homepage":"https://github.com/indutny/elliptic","keywords":["EC","Elliptic","curve","Cryptography"],"license":"MIT","main":"lib/elliptic.js","name":"elliptic","repository":{"type":"git","url":"git+ssh://git@github.com/indutny/elliptic.git"},"scripts":{"jscs":"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js","jshint":"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js","lint":"npm run jscs && npm run jshint","test":"npm run lint && npm run unit","unit":"istanbul test _mocha --reporter=spec test/index.js","version":"grunt dist && git add dist/"},"version":"6.5.2"}', + ) + }, + function (t, e) {}, + function (t, e, n) { + 'use strict' + var r = n(4), + i = n(8), + o = n(1), + s = n(26), + a = r.assert + function u(t) { + ;(s.call(this, 'short', t), + (this.a = new i(t.a, 16).toRed(this.red)), + (this.b = new i(t.b, 16).toRed(this.red)), + (this.tinv = this.two.redInvm()), + (this.zeroA = 0 === this.a.fromRed().cmpn(0)), + (this.threeA = 0 === this.a.fromRed().sub(this.p).cmpn(-3)), + (this.endo = this._getEndomorphism(t)), + (this._endoWnafT1 = new Array(4)), + (this._endoWnafT2 = new Array(4))) + } + function f(t, e, n, r) { + ;(s.BasePoint.call(this, t, 'affine'), + null === e && null === n + ? ((this.x = null), (this.y = null), (this.inf = !0)) + : ((this.x = new i(e, 16)), + (this.y = new i(n, 16)), + r && (this.x.forceRed(this.curve.red), this.y.forceRed(this.curve.red)), + this.x.red || (this.x = this.x.toRed(this.curve.red)), + this.y.red || (this.y = this.y.toRed(this.curve.red)), + (this.inf = !1))) + } + function c(t, e, n, r) { + ;(s.BasePoint.call(this, t, 'jacobian'), + null === e && null === n && null === r + ? ((this.x = this.curve.one), (this.y = this.curve.one), (this.z = new i(0))) + : ((this.x = new i(e, 16)), (this.y = new i(n, 16)), (this.z = new i(r, 16))), + this.x.red || (this.x = this.x.toRed(this.curve.red)), + this.y.red || (this.y = this.y.toRed(this.curve.red)), + this.z.red || (this.z = this.z.toRed(this.curve.red)), + (this.zOne = this.z === this.curve.one)) + } + ;(o(u, s), + (t.exports = u), + (u.prototype._getEndomorphism = function (t) { + if (this.zeroA && this.g && this.n && 1 === this.p.modn(3)) { + var e, n + if (t.beta) e = new i(t.beta, 16).toRed(this.red) + else { + var r = this._getEndoRoots(this.p) + e = (e = r[0].cmp(r[1]) < 0 ? r[0] : r[1]).toRed(this.red) + } + if (t.lambda) n = new i(t.lambda, 16) + else { + var o = this._getEndoRoots(this.n) + 0 === this.g.mul(o[0]).x.cmp(this.g.x.redMul(e)) ? (n = o[0]) : ((n = o[1]), a(0 === this.g.mul(n).x.cmp(this.g.x.redMul(e)))) + } + return { + beta: e, + lambda: n, + basis: t.basis + ? t.basis.map(function (t) { + return { a: new i(t.a, 16), b: new i(t.b, 16) } + }) + : this._getEndoBasis(n), + } + } + }), + (u.prototype._getEndoRoots = function (t) { + var e = t === this.p ? this.red : i.mont(t), + n = new i(2).toRed(e).redInvm(), + r = n.redNeg(), + o = new i(3).toRed(e).redNeg().redSqrt().redMul(n) + return [r.redAdd(o).fromRed(), r.redSub(o).fromRed()] + }), + (u.prototype._getEndoBasis = function (t) { + for ( + var e, + n, + r, + o, + s, + a, + u, + f, + c, + h = this.n.ushrn(Math.floor(this.n.bitLength() / 2)), + d = t, + l = this.n.clone(), + p = new i(1), + b = new i(0), + g = new i(0), + v = new i(1), + m = 0; + 0 !== d.cmpn(0); + ) { + var y = l.div(d) + ;((f = l.sub(y.mul(d))), (c = g.sub(y.mul(p)))) + var w = v.sub(y.mul(b)) + if (!r && f.cmp(h) < 0) ((e = u.neg()), (n = p), (r = f.neg()), (o = c)) + else if (r && 2 == ++m) break + ;((u = f), (l = d), (d = f), (g = p), (p = c), (v = b), (b = w)) + } + ;((s = f.neg()), (a = c)) + var _ = r.sqr().add(o.sqr()) + return ( + s.sqr().add(a.sqr()).cmp(_) >= 0 && ((s = e), (a = n)), + r.negative && ((r = r.neg()), (o = o.neg())), + s.negative && ((s = s.neg()), (a = a.neg())), + [ + { a: r, b: o }, + { a: s, b: a }, + ] + ) + }), + (u.prototype._endoSplit = function (t) { + var e = this.endo.basis, + n = e[0], + r = e[1], + i = r.b.mul(t).divRound(this.n), + o = n.b.neg().mul(t).divRound(this.n), + s = i.mul(n.a), + a = o.mul(r.a), + u = i.mul(n.b), + f = o.mul(r.b) + return { k1: t.sub(s).sub(a), k2: u.add(f).neg() } + }), + (u.prototype.pointFromX = function (t, e) { + ;(t = new i(t, 16)).red || (t = t.toRed(this.red)) + var n = t.redSqr().redMul(t).redIAdd(t.redMul(this.a)).redIAdd(this.b), + r = n.redSqrt() + if (0 !== r.redSqr().redSub(n).cmp(this.zero)) throw new Error('invalid point') + var o = r.fromRed().isOdd() + return (((e && !o) || (!e && o)) && (r = r.redNeg()), this.point(t, r)) + }), + (u.prototype.validate = function (t) { + if (t.inf) return !0 + var e = t.x, + n = t.y, + r = this.a.redMul(e), + i = e.redSqr().redMul(e).redIAdd(r).redIAdd(this.b) + return 0 === n.redSqr().redISub(i).cmpn(0) + }), + (u.prototype._endoWnafMulAdd = function (t, e, n) { + for (var r = this._endoWnafT1, i = this._endoWnafT2, o = 0; o < t.length; o++) { + var s = this._endoSplit(e[o]), + a = t[o], + u = a._getBeta() + ;(s.k1.negative && (s.k1.ineg(), (a = a.neg(!0))), + s.k2.negative && (s.k2.ineg(), (u = u.neg(!0))), + (r[2 * o] = a), + (r[2 * o + 1] = u), + (i[2 * o] = s.k1), + (i[2 * o + 1] = s.k2)) + } + for (var f = this._wnafMulAdd(1, r, i, 2 * o, n), c = 0; c < 2 * o; c++) ((r[c] = null), (i[c] = null)) + return f + }), + o(f, s.BasePoint), + (u.prototype.point = function (t, e, n) { + return new f(this, t, e, n) + }), + (u.prototype.pointFromJSON = function (t, e) { + return f.fromJSON(this, t, e) + }), + (f.prototype._getBeta = function () { + if (this.curve.endo) { + var t = this.precomputed + if (t && t.beta) return t.beta + var e = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y) + if (t) { + var n = this.curve, + r = function (t) { + return n.point(t.x.redMul(n.endo.beta), t.y) + } + ;((t.beta = e), + (e.precomputed = { + beta: null, + naf: t.naf && { wnd: t.naf.wnd, points: t.naf.points.map(r) }, + doubles: t.doubles && { step: t.doubles.step, points: t.doubles.points.map(r) }, + })) + } + return e + } + }), + (f.prototype.toJSON = function () { + return this.precomputed + ? [ + this.x, + this.y, + this.precomputed && { + doubles: this.precomputed.doubles && { step: this.precomputed.doubles.step, points: this.precomputed.doubles.points.slice(1) }, + naf: this.precomputed.naf && { wnd: this.precomputed.naf.wnd, points: this.precomputed.naf.points.slice(1) }, + }, + ] + : [this.x, this.y] + }), + (f.fromJSON = function (t, e, n) { + 'string' == typeof e && (e = JSON.parse(e)) + var r = t.point(e[0], e[1], n) + if (!e[2]) return r + function i(e) { + return t.point(e[0], e[1], n) + } + var o = e[2] + return ( + (r.precomputed = { + beta: null, + doubles: o.doubles && { step: o.doubles.step, points: [r].concat(o.doubles.points.map(i)) }, + naf: o.naf && { wnd: o.naf.wnd, points: [r].concat(o.naf.points.map(i)) }, + }), + r + ) + }), + (f.prototype.inspect = function () { + return this.isInfinity() + ? '<EC Point Infinity>' + : '<EC Point x: ' + this.x.fromRed().toString(16, 2) + ' y: ' + this.y.fromRed().toString(16, 2) + '>' + }), + (f.prototype.isInfinity = function () { + return this.inf + }), + (f.prototype.add = function (t) { + if (this.inf) return t + if (t.inf) return this + if (this.eq(t)) return this.dbl() + if (this.neg().eq(t)) return this.curve.point(null, null) + if (0 === this.x.cmp(t.x)) return this.curve.point(null, null) + var e = this.y.redSub(t.y) + 0 !== e.cmpn(0) && (e = e.redMul(this.x.redSub(t.x).redInvm())) + var n = e.redSqr().redISub(this.x).redISub(t.x), + r = e.redMul(this.x.redSub(n)).redISub(this.y) + return this.curve.point(n, r) + }), + (f.prototype.dbl = function () { + if (this.inf) return this + var t = this.y.redAdd(this.y) + if (0 === t.cmpn(0)) return this.curve.point(null, null) + var e = this.curve.a, + n = this.x.redSqr(), + r = t.redInvm(), + i = n.redAdd(n).redIAdd(n).redIAdd(e).redMul(r), + o = i.redSqr().redISub(this.x.redAdd(this.x)), + s = i.redMul(this.x.redSub(o)).redISub(this.y) + return this.curve.point(o, s) + }), + (f.prototype.getX = function () { + return this.x.fromRed() + }), + (f.prototype.getY = function () { + return this.y.fromRed() + }), + (f.prototype.mul = function (t) { + return ( + (t = new i(t, 16)), + this.isInfinity() + ? this + : this._hasDoubles(t) + ? this.curve._fixedNafMul(this, t) + : this.curve.endo + ? this.curve._endoWnafMulAdd([this], [t]) + : this.curve._wnafMul(this, t) + ) + }), + (f.prototype.mulAdd = function (t, e, n) { + var r = [this, e], + i = [t, n] + return this.curve.endo ? this.curve._endoWnafMulAdd(r, i) : this.curve._wnafMulAdd(1, r, i, 2) + }), + (f.prototype.jmulAdd = function (t, e, n) { + var r = [this, e], + i = [t, n] + return this.curve.endo ? this.curve._endoWnafMulAdd(r, i, !0) : this.curve._wnafMulAdd(1, r, i, 2, !0) + }), + (f.prototype.eq = function (t) { + return this === t || (this.inf === t.inf && (this.inf || (0 === this.x.cmp(t.x) && 0 === this.y.cmp(t.y)))) + }), + (f.prototype.neg = function (t) { + if (this.inf) return this + var e = this.curve.point(this.x, this.y.redNeg()) + if (t && this.precomputed) { + var n = this.precomputed, + r = function (t) { + return t.neg() + } + e.precomputed = { + naf: n.naf && { wnd: n.naf.wnd, points: n.naf.points.map(r) }, + doubles: n.doubles && { step: n.doubles.step, points: n.doubles.points.map(r) }, + } + } + return e + }), + (f.prototype.toJ = function () { + return this.inf ? this.curve.jpoint(null, null, null) : this.curve.jpoint(this.x, this.y, this.curve.one) + }), + o(c, s.BasePoint), + (u.prototype.jpoint = function (t, e, n) { + return new c(this, t, e, n) + }), + (c.prototype.toP = function () { + if (this.isInfinity()) return this.curve.point(null, null) + var t = this.z.redInvm(), + e = t.redSqr(), + n = this.x.redMul(e), + r = this.y.redMul(e).redMul(t) + return this.curve.point(n, r) + }), + (c.prototype.neg = function () { + return this.curve.jpoint(this.x, this.y.redNeg(), this.z) + }), + (c.prototype.add = function (t) { + if (this.isInfinity()) return t + if (t.isInfinity()) return this + var e = t.z.redSqr(), + n = this.z.redSqr(), + r = this.x.redMul(e), + i = t.x.redMul(n), + o = this.y.redMul(e.redMul(t.z)), + s = t.y.redMul(n.redMul(this.z)), + a = r.redSub(i), + u = o.redSub(s) + if (0 === a.cmpn(0)) return 0 !== u.cmpn(0) ? this.curve.jpoint(null, null, null) : this.dbl() + var f = a.redSqr(), + c = f.redMul(a), + h = r.redMul(f), + d = u.redSqr().redIAdd(c).redISub(h).redISub(h), + l = u.redMul(h.redISub(d)).redISub(o.redMul(c)), + p = this.z.redMul(t.z).redMul(a) + return this.curve.jpoint(d, l, p) + }), + (c.prototype.mixedAdd = function (t) { + if (this.isInfinity()) return t.toJ() + if (t.isInfinity()) return this + var e = this.z.redSqr(), + n = this.x, + r = t.x.redMul(e), + i = this.y, + o = t.y.redMul(e).redMul(this.z), + s = n.redSub(r), + a = i.redSub(o) + if (0 === s.cmpn(0)) return 0 !== a.cmpn(0) ? this.curve.jpoint(null, null, null) : this.dbl() + var u = s.redSqr(), + f = u.redMul(s), + c = n.redMul(u), + h = a.redSqr().redIAdd(f).redISub(c).redISub(c), + d = a.redMul(c.redISub(h)).redISub(i.redMul(f)), + l = this.z.redMul(s) + return this.curve.jpoint(h, d, l) + }), + (c.prototype.dblp = function (t) { + if (0 === t) return this + if (this.isInfinity()) return this + if (!t) return this.dbl() + if (this.curve.zeroA || this.curve.threeA) { + for (var e = this, n = 0; n < t; n++) e = e.dbl() + return e + } + var r = this.curve.a, + i = this.curve.tinv, + o = this.x, + s = this.y, + a = this.z, + u = a.redSqr().redSqr(), + f = s.redAdd(s) + for (n = 0; n < t; n++) { + var c = o.redSqr(), + h = f.redSqr(), + d = h.redSqr(), + l = c.redAdd(c).redIAdd(c).redIAdd(r.redMul(u)), + p = o.redMul(h), + b = l.redSqr().redISub(p.redAdd(p)), + g = p.redISub(b), + v = l.redMul(g) + v = v.redIAdd(v).redISub(d) + var m = f.redMul(a) + ;(n + 1 < t && (u = u.redMul(d)), (o = b), (a = m), (f = v)) + } + return this.curve.jpoint(o, f.redMul(i), a) + }), + (c.prototype.dbl = function () { + return this.isInfinity() ? this : this.curve.zeroA ? this._zeroDbl() : this.curve.threeA ? this._threeDbl() : this._dbl() + }), + (c.prototype._zeroDbl = function () { + var t, e, n + if (this.zOne) { + var r = this.x.redSqr(), + i = this.y.redSqr(), + o = i.redSqr(), + s = this.x.redAdd(i).redSqr().redISub(r).redISub(o) + s = s.redIAdd(s) + var a = r.redAdd(r).redIAdd(r), + u = a.redSqr().redISub(s).redISub(s), + f = o.redIAdd(o) + ;((f = (f = f.redIAdd(f)).redIAdd(f)), (t = u), (e = a.redMul(s.redISub(u)).redISub(f)), (n = this.y.redAdd(this.y))) + } else { + var c = this.x.redSqr(), + h = this.y.redSqr(), + d = h.redSqr(), + l = this.x.redAdd(h).redSqr().redISub(c).redISub(d) + l = l.redIAdd(l) + var p = c.redAdd(c).redIAdd(c), + b = p.redSqr(), + g = d.redIAdd(d) + ;((g = (g = g.redIAdd(g)).redIAdd(g)), + (t = b.redISub(l).redISub(l)), + (e = p.redMul(l.redISub(t)).redISub(g)), + (n = (n = this.y.redMul(this.z)).redIAdd(n))) + } + return this.curve.jpoint(t, e, n) + }), + (c.prototype._threeDbl = function () { + var t, e, n + if (this.zOne) { + var r = this.x.redSqr(), + i = this.y.redSqr(), + o = i.redSqr(), + s = this.x.redAdd(i).redSqr().redISub(r).redISub(o) + s = s.redIAdd(s) + var a = r.redAdd(r).redIAdd(r).redIAdd(this.curve.a), + u = a.redSqr().redISub(s).redISub(s) + t = u + var f = o.redIAdd(o) + ;((f = (f = f.redIAdd(f)).redIAdd(f)), (e = a.redMul(s.redISub(u)).redISub(f)), (n = this.y.redAdd(this.y))) + } else { + var c = this.z.redSqr(), + h = this.y.redSqr(), + d = this.x.redMul(h), + l = this.x.redSub(c).redMul(this.x.redAdd(c)) + l = l.redAdd(l).redIAdd(l) + var p = d.redIAdd(d), + b = (p = p.redIAdd(p)).redAdd(p) + ;((t = l.redSqr().redISub(b)), (n = this.y.redAdd(this.z).redSqr().redISub(h).redISub(c))) + var g = h.redSqr() + ;((g = (g = (g = g.redIAdd(g)).redIAdd(g)).redIAdd(g)), (e = l.redMul(p.redISub(t)).redISub(g))) + } + return this.curve.jpoint(t, e, n) + }), + (c.prototype._dbl = function () { + var t = this.curve.a, + e = this.x, + n = this.y, + r = this.z, + i = r.redSqr().redSqr(), + o = e.redSqr(), + s = n.redSqr(), + a = o.redAdd(o).redIAdd(o).redIAdd(t.redMul(i)), + u = e.redAdd(e), + f = (u = u.redIAdd(u)).redMul(s), + c = a.redSqr().redISub(f.redAdd(f)), + h = f.redISub(c), + d = s.redSqr() + d = (d = (d = d.redIAdd(d)).redIAdd(d)).redIAdd(d) + var l = a.redMul(h).redISub(d), + p = n.redAdd(n).redMul(r) + return this.curve.jpoint(c, l, p) + }), + (c.prototype.trpl = function () { + if (!this.curve.zeroA) return this.dbl().add(this) + var t = this.x.redSqr(), + e = this.y.redSqr(), + n = this.z.redSqr(), + r = e.redSqr(), + i = t.redAdd(t).redIAdd(t), + o = i.redSqr(), + s = this.x.redAdd(e).redSqr().redISub(t).redISub(r), + a = (s = (s = (s = s.redIAdd(s)).redAdd(s).redIAdd(s)).redISub(o)).redSqr(), + u = r.redIAdd(r) + u = (u = (u = u.redIAdd(u)).redIAdd(u)).redIAdd(u) + var f = i.redIAdd(s).redSqr().redISub(o).redISub(a).redISub(u), + c = e.redMul(f) + c = (c = c.redIAdd(c)).redIAdd(c) + var h = this.x.redMul(a).redISub(c) + h = (h = h.redIAdd(h)).redIAdd(h) + var d = this.y.redMul(f.redMul(u.redISub(f)).redISub(s.redMul(a))) + d = (d = (d = d.redIAdd(d)).redIAdd(d)).redIAdd(d) + var l = this.z.redAdd(s).redSqr().redISub(n).redISub(a) + return this.curve.jpoint(h, d, l) + }), + (c.prototype.mul = function (t, e) { + return ((t = new i(t, e)), this.curve._wnafMul(this, t)) + }), + (c.prototype.eq = function (t) { + if ('affine' === t.type) return this.eq(t.toJ()) + if (this === t) return !0 + var e = this.z.redSqr(), + n = t.z.redSqr() + if (0 !== this.x.redMul(n).redISub(t.x.redMul(e)).cmpn(0)) return !1 + var r = e.redMul(this.z), + i = n.redMul(t.z) + return 0 === this.y.redMul(i).redISub(t.y.redMul(r)).cmpn(0) + }), + (c.prototype.eqXToP = function (t) { + var e = this.z.redSqr(), + n = t.toRed(this.curve.red).redMul(e) + if (0 === this.x.cmp(n)) return !0 + for (var r = t.clone(), i = this.curve.redN.redMul(e); ; ) { + if ((r.iadd(this.curve.n), r.cmp(this.curve.p) >= 0)) return !1 + if ((n.redIAdd(i), 0 === this.x.cmp(n))) return !0 + } + }), + (c.prototype.inspect = function () { + return this.isInfinity() + ? '<EC JPoint Infinity>' + : '<EC JPoint x: ' + this.x.toString(16, 2) + ' y: ' + this.y.toString(16, 2) + ' z: ' + this.z.toString(16, 2) + '>' + }), + (c.prototype.isInfinity = function () { + return 0 === this.z.cmpn(0) + })) + }, + function (t, e, n) { + 'use strict' + var r = n(8), + i = n(1), + o = n(26), + s = n(4) + function a(t) { + ;(o.call(this, 'mont', t), + (this.a = new r(t.a, 16).toRed(this.red)), + (this.b = new r(t.b, 16).toRed(this.red)), + (this.i4 = new r(4).toRed(this.red).redInvm()), + (this.two = new r(2).toRed(this.red)), + (this.a24 = this.i4.redMul(this.a.redAdd(this.two)))) + } + function u(t, e, n) { + ;(o.BasePoint.call(this, t, 'projective'), + null === e && null === n + ? ((this.x = this.curve.one), (this.z = this.curve.zero)) + : ((this.x = new r(e, 16)), + (this.z = new r(n, 16)), + this.x.red || (this.x = this.x.toRed(this.curve.red)), + this.z.red || (this.z = this.z.toRed(this.curve.red)))) + } + ;(i(a, o), + (t.exports = a), + (a.prototype.validate = function (t) { + var e = t.normalize().x, + n = e.redSqr(), + r = n.redMul(e).redAdd(n.redMul(this.a)).redAdd(e) + return 0 === r.redSqrt().redSqr().cmp(r) + }), + i(u, o.BasePoint), + (a.prototype.decodePoint = function (t, e) { + return this.point(s.toArray(t, e), 1) + }), + (a.prototype.point = function (t, e) { + return new u(this, t, e) + }), + (a.prototype.pointFromJSON = function (t) { + return u.fromJSON(this, t) + }), + (u.prototype.precompute = function () {}), + (u.prototype._encode = function () { + return this.getX().toArray('be', this.curve.p.byteLength()) + }), + (u.fromJSON = function (t, e) { + return new u(t, e[0], e[1] || t.one) + }), + (u.prototype.inspect = function () { + return this.isInfinity() + ? '<EC Point Infinity>' + : '<EC Point x: ' + this.x.fromRed().toString(16, 2) + ' z: ' + this.z.fromRed().toString(16, 2) + '>' + }), + (u.prototype.isInfinity = function () { + return 0 === this.z.cmpn(0) + }), + (u.prototype.dbl = function () { + var t = this.x.redAdd(this.z).redSqr(), + e = this.x.redSub(this.z).redSqr(), + n = t.redSub(e), + r = t.redMul(e), + i = n.redMul(e.redAdd(this.curve.a24.redMul(n))) + return this.curve.point(r, i) + }), + (u.prototype.add = function () { + throw new Error('Not supported on Montgomery curve') + }), + (u.prototype.diffAdd = function (t, e) { + var n = this.x.redAdd(this.z), + r = this.x.redSub(this.z), + i = t.x.redAdd(t.z), + o = t.x.redSub(t.z).redMul(n), + s = i.redMul(r), + a = e.z.redMul(o.redAdd(s).redSqr()), + u = e.x.redMul(o.redISub(s).redSqr()) + return this.curve.point(a, u) + }), + (u.prototype.mul = function (t) { + for (var e = t.clone(), n = this, r = this.curve.point(null, null), i = []; 0 !== e.cmpn(0); e.iushrn(1)) i.push(e.andln(1)) + for (var o = i.length - 1; o >= 0; o--) 0 === i[o] ? ((n = n.diffAdd(r, this)), (r = r.dbl())) : ((r = n.diffAdd(r, this)), (n = n.dbl())) + return r + }), + (u.prototype.mulAdd = function () { + throw new Error('Not supported on Montgomery curve') + }), + (u.prototype.jumlAdd = function () { + throw new Error('Not supported on Montgomery curve') + }), + (u.prototype.eq = function (t) { + return 0 === this.getX().cmp(t.getX()) + }), + (u.prototype.normalize = function () { + return ((this.x = this.x.redMul(this.z.redInvm())), (this.z = this.curve.one), this) + }), + (u.prototype.getX = function () { + return (this.normalize(), this.x.fromRed()) + })) + }, + function (t, e, n) { + 'use strict' + var r = n(4), + i = n(8), + o = n(1), + s = n(26), + a = r.assert + function u(t) { + ;((this.twisted = 1 != (0 | t.a)), + (this.mOneA = this.twisted && -1 == (0 | t.a)), + (this.extended = this.mOneA), + s.call(this, 'edwards', t), + (this.a = new i(t.a, 16).umod(this.red.m)), + (this.a = this.a.toRed(this.red)), + (this.c = new i(t.c, 16).toRed(this.red)), + (this.c2 = this.c.redSqr()), + (this.d = new i(t.d, 16).toRed(this.red)), + (this.dd = this.d.redAdd(this.d)), + a(!this.twisted || 0 === this.c.fromRed().cmpn(1)), + (this.oneC = 1 == (0 | t.c))) + } + function f(t, e, n, r, o) { + ;(s.BasePoint.call(this, t, 'projective'), + null === e && null === n && null === r + ? ((this.x = this.curve.zero), (this.y = this.curve.one), (this.z = this.curve.one), (this.t = this.curve.zero), (this.zOne = !0)) + : ((this.x = new i(e, 16)), + (this.y = new i(n, 16)), + (this.z = r ? new i(r, 16) : this.curve.one), + (this.t = o && new i(o, 16)), + this.x.red || (this.x = this.x.toRed(this.curve.red)), + this.y.red || (this.y = this.y.toRed(this.curve.red)), + this.z.red || (this.z = this.z.toRed(this.curve.red)), + this.t && !this.t.red && (this.t = this.t.toRed(this.curve.red)), + (this.zOne = this.z === this.curve.one), + this.curve.extended && !this.t && ((this.t = this.x.redMul(this.y)), this.zOne || (this.t = this.t.redMul(this.z.redInvm()))))) + } + ;(o(u, s), + (t.exports = u), + (u.prototype._mulA = function (t) { + return this.mOneA ? t.redNeg() : this.a.redMul(t) + }), + (u.prototype._mulC = function (t) { + return this.oneC ? t : this.c.redMul(t) + }), + (u.prototype.jpoint = function (t, e, n, r) { + return this.point(t, e, n, r) + }), + (u.prototype.pointFromX = function (t, e) { + ;(t = new i(t, 16)).red || (t = t.toRed(this.red)) + var n = t.redSqr(), + r = this.c2.redSub(this.a.redMul(n)), + o = this.one.redSub(this.c2.redMul(this.d).redMul(n)), + s = r.redMul(o.redInvm()), + a = s.redSqrt() + if (0 !== a.redSqr().redSub(s).cmp(this.zero)) throw new Error('invalid point') + var u = a.fromRed().isOdd() + return (((e && !u) || (!e && u)) && (a = a.redNeg()), this.point(t, a)) + }), + (u.prototype.pointFromY = function (t, e) { + ;(t = new i(t, 16)).red || (t = t.toRed(this.red)) + var n = t.redSqr(), + r = n.redSub(this.c2), + o = n.redMul(this.d).redMul(this.c2).redSub(this.a), + s = r.redMul(o.redInvm()) + if (0 === s.cmp(this.zero)) { + if (e) throw new Error('invalid point') + return this.point(this.zero, t) + } + var a = s.redSqrt() + if (0 !== a.redSqr().redSub(s).cmp(this.zero)) throw new Error('invalid point') + return (a.fromRed().isOdd() !== e && (a = a.redNeg()), this.point(a, t)) + }), + (u.prototype.validate = function (t) { + if (t.isInfinity()) return !0 + t.normalize() + var e = t.x.redSqr(), + n = t.y.redSqr(), + r = e.redMul(this.a).redAdd(n), + i = this.c2.redMul(this.one.redAdd(this.d.redMul(e).redMul(n))) + return 0 === r.cmp(i) + }), + o(f, s.BasePoint), + (u.prototype.pointFromJSON = function (t) { + return f.fromJSON(this, t) + }), + (u.prototype.point = function (t, e, n, r) { + return new f(this, t, e, n, r) + }), + (f.fromJSON = function (t, e) { + return new f(t, e[0], e[1], e[2]) + }), + (f.prototype.inspect = function () { + return this.isInfinity() + ? '<EC Point Infinity>' + : '<EC Point x: ' + + this.x.fromRed().toString(16, 2) + + ' y: ' + + this.y.fromRed().toString(16, 2) + + ' z: ' + + this.z.fromRed().toString(16, 2) + + '>' + }), + (f.prototype.isInfinity = function () { + return 0 === this.x.cmpn(0) && (0 === this.y.cmp(this.z) || (this.zOne && 0 === this.y.cmp(this.curve.c))) + }), + (f.prototype._extDbl = function () { + var t = this.x.redSqr(), + e = this.y.redSqr(), + n = this.z.redSqr() + n = n.redIAdd(n) + var r = this.curve._mulA(t), + i = this.x.redAdd(this.y).redSqr().redISub(t).redISub(e), + o = r.redAdd(e), + s = o.redSub(n), + a = r.redSub(e), + u = i.redMul(s), + f = o.redMul(a), + c = i.redMul(a), + h = s.redMul(o) + return this.curve.point(u, f, h, c) + }), + (f.prototype._projDbl = function () { + var t, + e, + n, + r = this.x.redAdd(this.y).redSqr(), + i = this.x.redSqr(), + o = this.y.redSqr() + if (this.curve.twisted) { + var s = (f = this.curve._mulA(i)).redAdd(o) + if (this.zOne) + ((t = r.redSub(i).redSub(o).redMul(s.redSub(this.curve.two))), (e = s.redMul(f.redSub(o))), (n = s.redSqr().redSub(s).redSub(s))) + else { + var a = this.z.redSqr(), + u = s.redSub(a).redISub(a) + ;((t = r.redSub(i).redISub(o).redMul(u)), (e = s.redMul(f.redSub(o))), (n = s.redMul(u))) + } + } else { + var f = i.redAdd(o) + ;((a = this.curve._mulC(this.z).redSqr()), (u = f.redSub(a).redSub(a))) + ;((t = this.curve._mulC(r.redISub(f)).redMul(u)), (e = this.curve._mulC(f).redMul(i.redISub(o))), (n = f.redMul(u))) + } + return this.curve.point(t, e, n) + }), + (f.prototype.dbl = function () { + return this.isInfinity() ? this : this.curve.extended ? this._extDbl() : this._projDbl() + }), + (f.prototype._extAdd = function (t) { + var e = this.y.redSub(this.x).redMul(t.y.redSub(t.x)), + n = this.y.redAdd(this.x).redMul(t.y.redAdd(t.x)), + r = this.t.redMul(this.curve.dd).redMul(t.t), + i = this.z.redMul(t.z.redAdd(t.z)), + o = n.redSub(e), + s = i.redSub(r), + a = i.redAdd(r), + u = n.redAdd(e), + f = o.redMul(s), + c = a.redMul(u), + h = o.redMul(u), + d = s.redMul(a) + return this.curve.point(f, c, d, h) + }), + (f.prototype._projAdd = function (t) { + var e, + n, + r = this.z.redMul(t.z), + i = r.redSqr(), + o = this.x.redMul(t.x), + s = this.y.redMul(t.y), + a = this.curve.d.redMul(o).redMul(s), + u = i.redSub(a), + f = i.redAdd(a), + c = this.x.redAdd(this.y).redMul(t.x.redAdd(t.y)).redISub(o).redISub(s), + h = r.redMul(u).redMul(c) + return ( + this.curve.twisted + ? ((e = r.redMul(f).redMul(s.redSub(this.curve._mulA(o)))), (n = u.redMul(f))) + : ((e = r.redMul(f).redMul(s.redSub(o))), (n = this.curve._mulC(u).redMul(f))), + this.curve.point(h, e, n) + ) + }), + (f.prototype.add = function (t) { + return this.isInfinity() ? t : t.isInfinity() ? this : this.curve.extended ? this._extAdd(t) : this._projAdd(t) + }), + (f.prototype.mul = function (t) { + return this._hasDoubles(t) ? this.curve._fixedNafMul(this, t) : this.curve._wnafMul(this, t) + }), + (f.prototype.mulAdd = function (t, e, n) { + return this.curve._wnafMulAdd(1, [this, e], [t, n], 2, !1) + }), + (f.prototype.jmulAdd = function (t, e, n) { + return this.curve._wnafMulAdd(1, [this, e], [t, n], 2, !0) + }), + (f.prototype.normalize = function () { + if (this.zOne) return this + var t = this.z.redInvm() + return ( + (this.x = this.x.redMul(t)), + (this.y = this.y.redMul(t)), + this.t && (this.t = this.t.redMul(t)), + (this.z = this.curve.one), + (this.zOne = !0), + this + ) + }), + (f.prototype.neg = function () { + return this.curve.point(this.x.redNeg(), this.y, this.z, this.t && this.t.redNeg()) + }), + (f.prototype.getX = function () { + return (this.normalize(), this.x.fromRed()) + }), + (f.prototype.getY = function () { + return (this.normalize(), this.y.fromRed()) + }), + (f.prototype.eq = function (t) { + return this === t || (0 === this.getX().cmp(t.getX()) && 0 === this.getY().cmp(t.getY())) + }), + (f.prototype.eqXToP = function (t) { + var e = t.toRed(this.curve.red).redMul(this.z) + if (0 === this.x.cmp(e)) return !0 + for (var n = t.clone(), r = this.curve.redN.redMul(this.z); ; ) { + if ((n.iadd(this.curve.n), n.cmp(this.curve.p) >= 0)) return !1 + if ((e.redIAdd(r), 0 === this.x.cmp(e))) return !0 + } + }), + (f.prototype.toP = f.prototype.normalize), + (f.prototype.mixedAdd = f.prototype.add)) + }, + function (t, e) { + t.exports = { + doubles: { + step: 4, + points: [ + ['e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a', 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821'], + ['8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508', '11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf'], + ['175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739', 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695'], + ['363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640', '4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9'], + ['8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c', '4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36'], + ['723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda', '96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f'], + ['eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa', '5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999'], + ['100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0', 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09'], + ['e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d', '9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d'], + ['feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d', 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088'], + ['da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1', '9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d'], + ['53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0', '5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8'], + ['8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047', '10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a'], + ['385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862', '283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453'], + ['6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7', '7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160'], + ['3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd', '56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0'], + ['85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83', '7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6'], + ['948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a', '53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589'], + ['6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8', 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17'], + ['e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d', '4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda'], + ['e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725', '7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd'], + ['213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754', '4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2'], + ['4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c', '17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6'], + ['fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6', '6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f'], + ['76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39', 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01'], + ['c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891', '893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3'], + ['d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b', 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f'], + ['b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03', '2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7'], + ['e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d', 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78'], + ['a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070', '7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1'], + ['90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4', 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150'], + ['8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da', '662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82'], + ['e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11', '1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc'], + ['8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e', 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b'], + ['e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41', '2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51'], + ['b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef', '67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45'], + ['d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8', 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120'], + ['324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d', '648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84'], + ['4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96', '35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d'], + ['9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd', 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d'], + ['6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5', '9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8'], + ['a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266', '40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8'], + ['7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71', '34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac'], + ['928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac', 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f'], + ['85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751', '1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962'], + ['ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e', '493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907'], + ['827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241', 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec'], + ['eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3', 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d'], + ['e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f', '4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414'], + ['1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19', 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd'], + ['146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be', 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0'], + ['fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9', '6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811'], + ['da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2', '8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1'], + ['a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13', '7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c'], + ['174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c', 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73'], + ['959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba', '2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd'], + ['d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151', 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405'], + ['64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073', 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589'], + ['8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458', '38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e'], + ['13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b', '69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27'], + ['bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366', 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1'], + ['8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa', '40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482'], + ['8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0', '620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945'], + ['dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787', '7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573'], + ['f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e', 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82'], + ], + }, + naf: { + wnd: 7, + points: [ + ['f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9', '388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672'], + ['2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4', 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6'], + ['5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc', '6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da'], + ['acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe', 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37'], + ['774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb', 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b'], + ['f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8', 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81'], + ['d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e', '581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58'], + ['defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34', '4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77'], + ['2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c', '85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a'], + ['352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5', '321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c'], + ['2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f', '2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67'], + ['9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714', '73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402'], + ['daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729', 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55'], + ['c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db', '2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482'], + ['6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4', 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82'], + ['1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5', 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396'], + ['605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479', '2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49'], + ['62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d', '80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf'], + ['80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f', '1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a'], + ['7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb', 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7'], + ['d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9', 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933'], + ['49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963', '758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a'], + ['77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74', '958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6'], + ['f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530', 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37'], + ['463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b', '5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e'], + ['f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247', 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6'], + ['caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1', 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476'], + ['2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120', '4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40'], + ['7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435', '91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61'], + ['754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18', '673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683'], + ['e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8', '59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5'], + ['186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb', '3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b'], + ['df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f', '55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417'], + ['5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143', 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868'], + ['290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba', 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a'], + ['af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45', 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6'], + ['766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a', '744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996'], + ['59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e', 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e'], + ['f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8', 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d'], + ['7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c', '30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2'], + ['948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519', 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e'], + ['7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab', '100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437'], + ['3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca', 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311'], + ['d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf', '8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4'], + ['1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610', '68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575'], + ['733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4', 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d'], + ['15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c', 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d'], + ['a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940', 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629'], + ['e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980', 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06'], + ['311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3', '66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374'], + ['34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf', '9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee'], + ['f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63', '4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1'], + ['d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448', 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b'], + ['32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf', '5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661'], + ['7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5', '8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6'], + ['ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6', '8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e'], + ['16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5', '5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d'], + ['eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99', 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc'], + ['78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51', 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4'], + ['494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5', '42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c'], + ['a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5', '204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b'], + ['c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997', '4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913'], + ['841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881', '73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154'], + ['5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5', '39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865'], + ['36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66', 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc'], + ['336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726', 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224'], + ['8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede', '6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e'], + ['1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94', '60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6'], + ['85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31', '3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511'], + ['29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51', 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b'], + ['a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252', 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2'], + ['4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5', 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c'], + ['d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b', '6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3'], + ['ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4', '322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d'], + ['af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f', '6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700'], + ['e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889', '2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4'], + ['591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246', 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196'], + ['11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984', '998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4'], + ['3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a', 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257'], + ['cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030', 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13'], + ['c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197', '6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096'], + ['c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593', 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38'], + ['a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef', '21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f'], + ['347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38', '60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448'], + ['da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a', '49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a'], + ['c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111', '5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4'], + ['4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502', '7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437'], + ['3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea', 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7'], + ['cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26', '8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d'], + ['b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986', '39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a'], + ['d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e', '62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54'], + ['48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4', '25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77'], + ['dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda', 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517'], + ['6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859', 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10'], + ['e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f', 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125'], + ['eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c', '6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e'], + ['13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942', 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1'], + ['ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a', '1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2'], + ['b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80', '5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423'], + ['ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d', '438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8'], + ['8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1', 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758'], + ['52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63', 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375'], + ['e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352', '6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d'], + ['7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193', 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec'], + ['5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00', '9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0'], + ['32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58', 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c'], + ['e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7', 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4'], + ['8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8', 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f'], + ['4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e', '67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649'], + ['3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d', 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826'], + ['674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b', '299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5'], + ['d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f', 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87'], + ['30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6', '462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b'], + ['be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297', '62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc'], + ['93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a', '7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c'], + ['b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c', 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f'], + ['d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52', '4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a'], + ['d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb', 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46'], + ['463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065', 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f'], + ['7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917', '603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03'], + ['74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9', 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08'], + ['30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3', '553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8'], + ['9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57', '712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373'], + ['176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66', 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3'], + ['75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8', '9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8'], + ['809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721', '9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1'], + ['1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180', '4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9'], + ], + }, + } + }, + function (t, e, n) { + 'use strict' + var r = n(8), + i = n(124), + o = n(4), + s = n(40), + a = n(39), + u = o.assert, + f = n(125), + c = n(126) + function h(t) { + if (!(this instanceof h)) return new h(t) + ;('string' == typeof t && (u(s.hasOwnProperty(t), 'Unknown curve ' + t), (t = s[t])), + t instanceof s.PresetCurve && (t = { curve: t }), + (this.curve = t.curve.curve), + (this.n = this.curve.n), + (this.nh = this.n.ushrn(1)), + (this.g = this.curve.g), + (this.g = t.curve.g), + this.g.precompute(t.curve.n.bitLength() + 1), + (this.hash = t.hash || t.curve.hash)) + } + ;((t.exports = h), + (h.prototype.keyPair = function (t) { + return new f(this, t) + }), + (h.prototype.keyFromPrivate = function (t, e) { + return f.fromPrivate(this, t, e) + }), + (h.prototype.keyFromPublic = function (t, e) { + return f.fromPublic(this, t, e) + }), + (h.prototype.genKeyPair = function (t) { + t || (t = {}) + for ( + var e = new i({ + hash: this.hash, + pers: t.pers, + persEnc: t.persEnc || 'utf8', + entropy: t.entropy || a(this.hash.hmacStrength), + entropyEnc: (t.entropy && t.entropyEnc) || 'utf8', + nonce: this.n.toArray(), + }), + n = this.n.byteLength(), + o = this.n.sub(new r(2)); + ; + ) { + var s = new r(e.generate(n)) + if (!(s.cmp(o) > 0)) return (s.iaddn(1), this.keyFromPrivate(s)) + } + }), + (h.prototype._truncateToN = function (t, e) { + var n = 8 * t.byteLength() - this.n.bitLength() + return (n > 0 && (t = t.ushrn(n)), !e && t.cmp(this.n) >= 0 ? t.sub(this.n) : t) + }), + (h.prototype.sign = function (t, e, n, o) { + ;('object' == typeof n && ((o = n), (n = null)), o || (o = {}), (e = this.keyFromPrivate(e, n)), (t = this._truncateToN(new r(t, 16)))) + for ( + var s = this.n.byteLength(), + a = e.getPrivate().toArray('be', s), + u = t.toArray('be', s), + f = new i({ hash: this.hash, entropy: a, nonce: u, pers: o.pers, persEnc: o.persEnc || 'utf8' }), + h = this.n.sub(new r(1)), + d = 0; + ; + d++ + ) { + var l = o.k ? o.k(d) : new r(f.generate(this.n.byteLength())) + if (!((l = this._truncateToN(l, !0)).cmpn(1) <= 0 || l.cmp(h) >= 0)) { + var p = this.g.mul(l) + if (!p.isInfinity()) { + var b = p.getX(), + g = b.umod(this.n) + if (0 !== g.cmpn(0)) { + var v = l.invm(this.n).mul(g.mul(e.getPrivate()).iadd(t)) + if (0 !== (v = v.umod(this.n)).cmpn(0)) { + var m = (p.getY().isOdd() ? 1 : 0) | (0 !== b.cmp(g) ? 2 : 0) + return (o.canonical && v.cmp(this.nh) > 0 && ((v = this.n.sub(v)), (m ^= 1)), new c({ r: g, s: v, recoveryParam: m })) + } + } + } + } + } + }), + (h.prototype.verify = function (t, e, n, i) { + ;((t = this._truncateToN(new r(t, 16))), (n = this.keyFromPublic(n, i))) + var o = (e = new c(e, 'hex')).r, + s = e.s + if (o.cmpn(1) < 0 || o.cmp(this.n) >= 0) return !1 + if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0) return !1 + var a, + u = s.invm(this.n), + f = u.mul(t).umod(this.n), + h = u.mul(o).umod(this.n) + return this.curve._maxwellTrick + ? !(a = this.g.jmulAdd(f, n.getPublic(), h)).isInfinity() && a.eqXToP(o) + : !(a = this.g.mulAdd(f, n.getPublic(), h)).isInfinity() && 0 === a.getX().umod(this.n).cmp(o) + }), + (h.prototype.recoverPubKey = function (t, e, n, i) { + ;(u((3 & n) === n, 'The recovery param is more than two bits'), (e = new c(e, i))) + var o = this.n, + s = new r(t), + a = e.r, + f = e.s, + h = 1 & n, + d = n >> 1 + if (a.cmp(this.curve.p.umod(this.curve.n)) >= 0 && d) throw new Error('Unable to find sencond key candinate') + a = d ? this.curve.pointFromX(a.add(this.curve.n), h) : this.curve.pointFromX(a, h) + var l = e.r.invm(o), + p = o.sub(s).mul(l).umod(o), + b = f.mul(l).umod(o) + return this.g.mulAdd(p, a, b) + }), + (h.prototype.getKeyRecoveryParam = function (t, e, n, r) { + if (null !== (e = new c(e, r)).recoveryParam) return e.recoveryParam + for (var i = 0; i < 4; i++) { + var o + try { + o = this.recoverPubKey(t, e, i) + } catch (t) { + continue + } + if (o.eq(n)) return i + } + throw new Error('Unable to find valid recovery factor') + })) + }, + function (t, e, n) { + 'use strict' + var r = n(18), + i = n(61), + o = n(14) + function s(t) { + if (!(this instanceof s)) return new s(t) + ;((this.hash = t.hash), + (this.predResist = !!t.predResist), + (this.outLen = this.hash.outSize), + (this.minEntropy = t.minEntropy || this.hash.hmacStrength), + (this._reseed = null), + (this.reseedInterval = null), + (this.K = null), + (this.V = null)) + var e = i.toArray(t.entropy, t.entropyEnc || 'hex'), + n = i.toArray(t.nonce, t.nonceEnc || 'hex'), + r = i.toArray(t.pers, t.persEnc || 'hex') + ;(o(e.length >= this.minEntropy / 8, 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits'), this._init(e, n, r)) + } + ;((t.exports = s), + (s.prototype._init = function (t, e, n) { + var r = t.concat(e).concat(n) + ;((this.K = new Array(this.outLen / 8)), (this.V = new Array(this.outLen / 8))) + for (var i = 0; i < this.V.length; i++) ((this.K[i] = 0), (this.V[i] = 1)) + ;(this._update(r), (this._reseed = 1), (this.reseedInterval = 281474976710656)) + }), + (s.prototype._hmac = function () { + return new r.hmac(this.hash, this.K) + }), + (s.prototype._update = function (t) { + var e = this._hmac().update(this.V).update([0]) + ;(t && (e = e.update(t)), + (this.K = e.digest()), + (this.V = this._hmac().update(this.V).digest()), + t && ((this.K = this._hmac().update(this.V).update([1]).update(t).digest()), (this.V = this._hmac().update(this.V).digest()))) + }), + (s.prototype.reseed = function (t, e, n, r) { + ;('string' != typeof e && ((r = n), (n = e), (e = null)), + (t = i.toArray(t, e)), + (n = i.toArray(n, r)), + o(t.length >= this.minEntropy / 8, 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits'), + this._update(t.concat(n || [])), + (this._reseed = 1)) + }), + (s.prototype.generate = function (t, e, n, r) { + if (this._reseed > this.reseedInterval) throw new Error('Reseed is required') + ;('string' != typeof e && ((r = n), (n = e), (e = null)), n && ((n = i.toArray(n, r || 'hex')), this._update(n))) + for (var o = []; o.length < t; ) ((this.V = this._hmac().update(this.V).digest()), (o = o.concat(this.V))) + var s = o.slice(0, t) + return (this._update(n), this._reseed++, i.encode(s, e)) + })) + }, + function (t, e, n) { + 'use strict' + var r = n(8), + i = n(4).assert + function o(t, e) { + ;((this.ec = t), + (this.priv = null), + (this.pub = null), + e.priv && this._importPrivate(e.priv, e.privEnc), + e.pub && this._importPublic(e.pub, e.pubEnc)) + } + ;((t.exports = o), + (o.fromPublic = function (t, e, n) { + return e instanceof o ? e : new o(t, { pub: e, pubEnc: n }) + }), + (o.fromPrivate = function (t, e, n) { + return e instanceof o ? e : new o(t, { priv: e, privEnc: n }) + }), + (o.prototype.validate = function () { + var t = this.getPublic() + return t.isInfinity() + ? { result: !1, reason: 'Invalid public key' } + : t.validate() + ? t.mul(this.ec.curve.n).isInfinity() + ? { result: !0, reason: null } + : { result: !1, reason: 'Public key * N != O' } + : { result: !1, reason: 'Public key is not a point' } + }), + (o.prototype.getPublic = function (t, e) { + return ( + 'string' == typeof t && ((e = t), (t = null)), + this.pub || (this.pub = this.ec.g.mul(this.priv)), + e ? this.pub.encode(e, t) : this.pub + ) + }), + (o.prototype.getPrivate = function (t) { + return 'hex' === t ? this.priv.toString(16, 2) : this.priv + }), + (o.prototype._importPrivate = function (t, e) { + ;((this.priv = new r(t, e || 16)), (this.priv = this.priv.umod(this.ec.curve.n))) + }), + (o.prototype._importPublic = function (t, e) { + if (t.x || t.y) + return ( + 'mont' === this.ec.curve.type + ? i(t.x, 'Need x coordinate') + : ('short' !== this.ec.curve.type && 'edwards' !== this.ec.curve.type) || i(t.x && t.y, 'Need both x and y coordinate'), + void (this.pub = this.ec.curve.point(t.x, t.y)) + ) + this.pub = this.ec.curve.decodePoint(t, e) + }), + (o.prototype.derive = function (t) { + return t.mul(this.priv).getX() + }), + (o.prototype.sign = function (t, e, n) { + return this.ec.sign(t, this, e, n) + }), + (o.prototype.verify = function (t, e) { + return this.ec.verify(t, e, this) + }), + (o.prototype.inspect = function () { + return '<Key priv: ' + (this.priv && this.priv.toString(16, 2)) + ' pub: ' + (this.pub && this.pub.inspect()) + ' >' + })) + }, + function (t, e, n) { + 'use strict' + var r = n(8), + i = n(4), + o = i.assert + function s(t, e) { + if (t instanceof s) return t + this._importDER(t, e) || + (o(t.r && t.s, 'Signature without r or s'), + (this.r = new r(t.r, 16)), + (this.s = new r(t.s, 16)), + void 0 === t.recoveryParam ? (this.recoveryParam = null) : (this.recoveryParam = t.recoveryParam)) + } + function a() { + this.place = 0 + } + function u(t, e) { + var n = t[e.place++] + if (!(128 & n)) return n + for (var r = 15 & n, i = 0, o = 0, s = e.place; o < r; o++, s++) ((i <<= 8), (i |= t[s])) + return ((e.place = s), i) + } + function f(t) { + for (var e = 0, n = t.length - 1; !t[e] && !(128 & t[e + 1]) && e < n; ) e++ + return 0 === e ? t : t.slice(e) + } + function c(t, e) { + if (e < 128) t.push(e) + else { + var n = 1 + ((Math.log(e) / Math.LN2) >>> 3) + for (t.push(128 | n); --n; ) t.push((e >>> (n << 3)) & 255) + t.push(e) + } + } + ;((t.exports = s), + (s.prototype._importDER = function (t, e) { + t = i.toArray(t, e) + var n = new a() + if (48 !== t[n.place++]) return !1 + if (u(t, n) + n.place !== t.length) return !1 + if (2 !== t[n.place++]) return !1 + var o = u(t, n), + s = t.slice(n.place, o + n.place) + if (((n.place += o), 2 !== t[n.place++])) return !1 + var f = u(t, n) + if (t.length !== f + n.place) return !1 + var c = t.slice(n.place, f + n.place) + return ( + 0 === s[0] && 128 & s[1] && (s = s.slice(1)), + 0 === c[0] && 128 & c[1] && (c = c.slice(1)), + (this.r = new r(s)), + (this.s = new r(c)), + (this.recoveryParam = null), + !0 + ) + }), + (s.prototype.toDER = function (t) { + var e = this.r.toArray(), + n = this.s.toArray() + for (128 & e[0] && (e = [0].concat(e)), 128 & n[0] && (n = [0].concat(n)), e = f(e), n = f(n); !(n[0] || 128 & n[1]); ) n = n.slice(1) + var r = [2] + ;(c(r, e.length), (r = r.concat(e)).push(2), c(r, n.length)) + var o = r.concat(n), + s = [48] + return (c(s, o.length), (s = s.concat(o)), i.encode(s, t)) + })) + }, + function (t, e, n) { + 'use strict' + var r = n(18), + i = n(40), + o = n(4), + s = o.assert, + a = o.parseBytes, + u = n(128), + f = n(129) + function c(t) { + if ((s('ed25519' === t, 'only tested with ed25519 so far'), !(this instanceof c))) return new c(t) + t = i[t].curve + ;((this.curve = t), + (this.g = t.g), + this.g.precompute(t.n.bitLength() + 1), + (this.pointClass = t.point().constructor), + (this.encodingLength = Math.ceil(t.n.bitLength() / 8)), + (this.hash = r.sha512)) + } + ;((t.exports = c), + (c.prototype.sign = function (t, e) { + t = a(t) + var n = this.keyFromSecret(e), + r = this.hashInt(n.messagePrefix(), t), + i = this.g.mul(r), + o = this.encodePoint(i), + s = this.hashInt(o, n.pubBytes(), t).mul(n.priv()), + u = r.add(s).umod(this.curve.n) + return this.makeSignature({ R: i, S: u, Rencoded: o }) + }), + (c.prototype.verify = function (t, e, n) { + ;((t = a(t)), (e = this.makeSignature(e))) + var r = this.keyFromPublic(n), + i = this.hashInt(e.Rencoded(), r.pubBytes(), t), + o = this.g.mul(e.S()) + return e.R().add(r.pub().mul(i)).eq(o) + }), + (c.prototype.hashInt = function () { + for (var t = this.hash(), e = 0; e < arguments.length; e++) t.update(arguments[e]) + return o.intFromLE(t.digest()).umod(this.curve.n) + }), + (c.prototype.keyFromPublic = function (t) { + return u.fromPublic(this, t) + }), + (c.prototype.keyFromSecret = function (t) { + return u.fromSecret(this, t) + }), + (c.prototype.makeSignature = function (t) { + return t instanceof f ? t : new f(this, t) + }), + (c.prototype.encodePoint = function (t) { + var e = t.getY().toArray('le', this.encodingLength) + return ((e[this.encodingLength - 1] |= t.getX().isOdd() ? 128 : 0), e) + }), + (c.prototype.decodePoint = function (t) { + var e = (t = o.parseBytes(t)).length - 1, + n = t.slice(0, e).concat(-129 & t[e]), + r = 0 != (128 & t[e]), + i = o.intFromLE(n) + return this.curve.pointFromY(i, r) + }), + (c.prototype.encodeInt = function (t) { + return t.toArray('le', this.encodingLength) + }), + (c.prototype.decodeInt = function (t) { + return o.intFromLE(t) + }), + (c.prototype.isPoint = function (t) { + return t instanceof this.pointClass + })) + }, + function (t, e, n) { + 'use strict' + var r = n(4), + i = r.assert, + o = r.parseBytes, + s = r.cachedProperty + function a(t, e) { + ;((this.eddsa = t), (this._secret = o(e.secret)), t.isPoint(e.pub) ? (this._pub = e.pub) : (this._pubBytes = o(e.pub))) + } + ;((a.fromPublic = function (t, e) { + return e instanceof a ? e : new a(t, { pub: e }) + }), + (a.fromSecret = function (t, e) { + return e instanceof a ? e : new a(t, { secret: e }) + }), + (a.prototype.secret = function () { + return this._secret + }), + s(a, 'pubBytes', function () { + return this.eddsa.encodePoint(this.pub()) + }), + s(a, 'pub', function () { + return this._pubBytes ? this.eddsa.decodePoint(this._pubBytes) : this.eddsa.g.mul(this.priv()) + }), + s(a, 'privBytes', function () { + var t = this.eddsa, + e = this.hash(), + n = t.encodingLength - 1, + r = e.slice(0, t.encodingLength) + return ((r[0] &= 248), (r[n] &= 127), (r[n] |= 64), r) + }), + s(a, 'priv', function () { + return this.eddsa.decodeInt(this.privBytes()) + }), + s(a, 'hash', function () { + return this.eddsa.hash().update(this.secret()).digest() + }), + s(a, 'messagePrefix', function () { + return this.hash().slice(this.eddsa.encodingLength) + }), + (a.prototype.sign = function (t) { + return (i(this._secret, 'KeyPair can only verify'), this.eddsa.sign(t, this)) + }), + (a.prototype.verify = function (t, e) { + return this.eddsa.verify(t, e, this) + }), + (a.prototype.getSecret = function (t) { + return (i(this._secret, 'KeyPair is public only'), r.encode(this.secret(), t)) + }), + (a.prototype.getPublic = function (t) { + return r.encode(this.pubBytes(), t) + }), + (t.exports = a)) + }, + function (t, e, n) { + 'use strict' + var r = n(8), + i = n(4), + o = i.assert, + s = i.cachedProperty, + a = i.parseBytes + function u(t, e) { + ;((this.eddsa = t), + 'object' != typeof e && (e = a(e)), + Array.isArray(e) && (e = { R: e.slice(0, t.encodingLength), S: e.slice(t.encodingLength) }), + o(e.R && e.S, 'Signature without R or S'), + t.isPoint(e.R) && (this._R = e.R), + e.S instanceof r && (this._S = e.S), + (this._Rencoded = Array.isArray(e.R) ? e.R : e.Rencoded), + (this._Sencoded = Array.isArray(e.S) ? e.S : e.Sencoded)) + } + ;(s(u, 'S', function () { + return this.eddsa.decodeInt(this.Sencoded()) + }), + s(u, 'R', function () { + return this.eddsa.decodePoint(this.Rencoded()) + }), + s(u, 'Rencoded', function () { + return this.eddsa.encodePoint(this.R()) + }), + s(u, 'Sencoded', function () { + return this.eddsa.encodeInt(this.S()) + }), + (u.prototype.toBytes = function () { + return this.Rencoded().concat(this.Sencoded()) + }), + (u.prototype.toHex = function () { + return i.encode(this.toBytes(), 'hex').toUpperCase() + }), + (t.exports = u)) + }, + function (t, e, n) { + 'use strict' + Object.defineProperty(e, '__esModule', { value: !0 }) + const r = n(60), + i = n(131), + o = r.ec('secp256k1') + function s(t, e) { + const n = o.curve.n + for (let r = 0; r <= 4294967295; r++) { + const o = new i.default().add(t) + ;(void 0 !== e && o.addU32(e), o.addU32(r)) + const s = o.first256BN() + if (s.cmpn(0) > 0 && s.cmp(n) < 0) return s + } + throw new Error('impossible unicorn ;)') + } + ;((e.derivePrivateKey = function (t, e = {}) { + const n = e.validator, + r = o.curve.n, + i = s(t) + if (n) return i + const a = o.g.mul(i), + u = e.accountIndex || 0 + return s(a.encodeCompressed(), u).add(i).mod(r) + }), + (e.accountPublicFromPublicGenerator = function (t) { + const e = o.curve.decodePoint(t), + n = s(t, 0), + r = o.g.mul(n) + return e.add(r).encodeCompressed() + })) + }, + function (t, e, n) { + 'use strict' + Object.defineProperty(e, '__esModule', { value: !0 }) + const r = n(18), + i = n(11) + e.default = class { + constructor() { + this.hash = r.sha512() + } + add(t) { + return (this.hash.update(t), this) + } + addU32(t) { + return this.add([(t >>> 24) & 255, (t >>> 16) & 255, (t >>> 8) & 255, 255 & t]) + } + finish() { + return this.hash.digest() + } + first256() { + return this.finish().slice(0, 32) + } + first256BN() { + return new i(this.first256()) + } + } + }, + function (t, e, n) { + 'use strict' + ;(function (t) { + Object.defineProperty(e, '__esModule', { value: !0 }) + const r = n(2), + i = n(18), + o = n(11) + ;((e.bytesToHex = function (t) { + return t + .map((t) => { + const e = t.toString(16).toUpperCase() + return e.length > 1 ? e : `0${e}` + }) + .join('') + }), + (e.hexToBytes = function (t) { + return (r(t.length % 2 == 0), new o(t, 16).toArray(null, t.length / 2)) + }), + (e.computePublicKeyHash = function (e) { + const n = i.sha256().update(e).digest(), + r = i.ripemd160().update(n).digest() + return t.from(r) + })) + }).call(this, n(5).Buffer) + }, +]) diff --git a/static/js/domain-verifier-checker.js b/static/js/domain-verifier-checker.js index 454a19251f..6b3a2d3dba 100644 --- a/static/js/domain-verifier-checker.js +++ b/static/js/domain-verifier-checker.js @@ -1,218 +1,189 @@ //Webpack was used to create domain-verifier-bundle.js so that we can use 'require' in the browser -const codec = require("ripple-binary-codec"); -const addressCodec = require("ripple-address-codec"); -const keyCodec = require("ripple-keypairs"); +const codec = require('ripple-binary-codec') +const addressCodec = require('ripple-address-codec') +const keyCodec = require('ripple-keypairs') const TIPS = - '<p>Check if the xrp-ledger.toml file is actually hosted in the /.well-known/ location at the domain in your manifest. Check your server\'s HTTPS settings and certificate, and make sure your server provides the required <a href="xrp-ledger-toml.html#cors-setup">CORS header.</a></p>'; -const TOML_PATH = "/.well-known/xrp-ledger.toml"; -const CLASS_GOOD = "badge badge-success"; -const CLASS_BAD = "badge badge-danger"; + '<p>Check if the xrp-ledger.toml file is actually hosted in the /.well-known/ location at the domain in your manifest. Check your server\'s HTTPS settings and certificate, and make sure your server provides the required <a href="xrp-ledger-toml.html#cors-setup">CORS header.</a></p>' +const TOML_PATH = '/.well-known/xrp-ledger.toml' +const CLASS_GOOD = 'badge badge-success' +const CLASS_BAD = 'badge badge-danger' -var query_param = 0; +var query_param = 0 //This function makes the lists that output the status. function makeLogEntry(text, raw) { - let log; + let log if (raw) { - log = $("<li></li>") - .appendTo("#log") - .append(text); + log = $('<li></li>').appendTo('#log').append(text) } else { - log = $("<li></li>") - .text(text + " ") - .appendTo("#log"); + log = $('<li></li>') + .text(text + ' ') + .appendTo('#log') } - log.resolve = function(text) { - return $("<span></span>") - .html(text) - .appendTo(log); - }; - return log; + log.resolve = function (text) { + return $('<span></span>').html(text).appendTo(log) + } + return log } //3. //Find the validator entry in the TOML file and verify the signature of the attestation. async function parse_xrpl_toml(data, public_key_hex, public_key, message) { - let parsed; - let log1 = makeLogEntry("Parsing TOML data..."); + let parsed + let log1 = makeLogEntry('Parsing TOML data...') try { - parsed = TOML(data); - log1.resolve("SUCCESS").addClass(CLASS_GOOD); + parsed = TOML(data) + log1.resolve('SUCCESS').addClass(CLASS_GOOD) } catch (e) { - log1.resolve(e).addClass(CLASS_BAD); - return; + log1.resolve(e).addClass(CLASS_BAD) + return } - console.log(parsed); + console.log(parsed) - let validator_entries = parsed.VALIDATORS; + let validator_entries = parsed.VALIDATORS if (validator_entries) { if (!Array.isArray(validator_entries)) { - makeLogEntry("Validators:") - .resolve("Wrong type - should be table-array") - .addClass(CLASS_BAD); + makeLogEntry('Validators:').resolve('Wrong type - should be table-array').addClass(CLASS_BAD) } else { - let validator_found = false; + let validator_found = false for (i = 0; i < validator_entries.length; i++) { - let pk = validator_entries[i]["public_key"]; + let pk = validator_entries[i]['public_key'] if (pk == public_key) { - validator_found = true; + validator_found = true try { - var attestation = validator_entries[i]["attestation"]; + var attestation = validator_entries[i]['attestation'] } catch { - makeLogEntry("Attestation Not found").addClass(CLASS_BAD); + makeLogEntry('Attestation Not found').addClass(CLASS_BAD) } try { - var verify = keyCodec.verify( - ascii_to_hexa(message), - attestation, - public_key_hex - ); + var verify = keyCodec.verify(ascii_to_hexa(message), attestation, public_key_hex) } catch (e) { - makeLogEntry("Domain Verification Failed") - .resolve(e) - .addClass(CLASS_BAD); + makeLogEntry('Domain Verification Failed').resolve(e).addClass(CLASS_BAD) } if (verify) { - makeLogEntry("Domain Verification Succeeded").addClass(CLASS_GOOD); + makeLogEntry('Domain Verification Succeeded').addClass(CLASS_GOOD) } else { - makeLogEntry("Domain Verification Failed").addClass(CLASS_BAD); + makeLogEntry('Domain Verification Failed').addClass(CLASS_BAD) } } } if (!validator_found) { - makeLogEntry( - "The validator key for this manifest was not found in the TOML file" - ).addClass(CLASS_BAD); + makeLogEntry('The validator key for this manifest was not found in the TOML file').addClass(CLASS_BAD) } } } else { - makeLogEntry("No Validators Found") - .resolve("Failure") - .addClass(CLASS_BAD); + makeLogEntry('No Validators Found').resolve('Failure').addClass(CLASS_BAD) } } - function display_manifest(man) { - for (x in man){ - log = makeLogEntry(x + ": " +man[x]); + for (x in man) { + log = makeLogEntry(x + ': ' + man[x]) } } - //2. //Decompose the manifest to obtain the domain and public key. //Use these to create the message that should have been signed by the validator's private key (the attestation). //Go to the domain and verify the signature of the attestation field in the appropriate validator entry. function parse_manifest() { - const manhex = $("#manifest").val().toUpperCase();; + const manhex = $('#manifest').val().toUpperCase() try { - var man = codec.decode(manhex); + var man = codec.decode(manhex) } catch (e) { - makeLogEntry("Error decoding manifest") - .resolve(e) - .addClass(CLASS_BAD); - return; + makeLogEntry('Error decoding manifest').resolve(e).addClass(CLASS_BAD) + return } - let seq = man ["Sequence"]; - let public_key_hex = man["PublicKey"]; - let buff_pub = new Buffer(public_key_hex, "hex").toJSON().data; - let public_key = addressCodec.encodeNodePublic(buff_pub); - let ephemeral_public_key_hex = man["SigningPubKey"]; - let buff_eph_pub = new Buffer(ephemeral_public_key_hex, "hex").toJSON().data; - let ephemeral_public_key = addressCodec.encodeNodePublic(buff_eph_pub); + let seq = man['Sequence'] + let public_key_hex = man['PublicKey'] + let buff_pub = new Buffer(public_key_hex, 'hex').toJSON().data + let public_key = addressCodec.encodeNodePublic(buff_pub) + let ephemeral_public_key_hex = man['SigningPubKey'] + let buff_eph_pub = new Buffer(ephemeral_public_key_hex, 'hex').toJSON().data + let ephemeral_public_key = addressCodec.encodeNodePublic(buff_eph_pub) try { - var domain = hex_to_ascii(man["Domain"]); + var domain = hex_to_ascii(man['Domain']) } catch { - makeLogEntry("Domain not found in manifest").addClass(CLASS_BAD); - display_manifest({"Sequence":seq, - "Master Public Key": public_key, - "Ephemeral Public Key":ephemeral_public_key}); - return; + makeLogEntry('Domain not found in manifest').addClass(CLASS_BAD) + display_manifest({ Sequence: seq, 'Master Public Key': public_key, 'Ephemeral Public Key': ephemeral_public_key }) + return } - display_manifest({"Sequence":seq, - "Domain":domain, - "Master Public Key": public_key, - "Ephemeral Public Key":ephemeral_public_key}) + display_manifest({ Sequence: seq, Domain: domain, 'Master Public Key': public_key, 'Ephemeral Public Key': ephemeral_public_key }) //This is the message that was signed by the validator's private key. - let message = "[domain-attestation-blob:" + domain + ":" + public_key + "]"; - const url = "https://" + domain + TOML_PATH + "?v=" + query_param++; - const log = makeLogEntry("Checking " + url + "..."); + let message = '[domain-attestation-blob:' + domain + ':' + public_key + ']' + const url = 'https://' + domain + TOML_PATH + '?v=' + query_param++ + const log = makeLogEntry('Checking ' + url + '...') $.ajax({ url: url, - dataType: "text", - success: function(data) { - log.resolve("FOUND").addClass(CLASS_GOOD); - parse_xrpl_toml(data, public_key_hex, public_key, message); + dataType: 'text', + success: function (data) { + log.resolve('FOUND').addClass(CLASS_GOOD) + parse_xrpl_toml(data, public_key_hex, public_key, message) }, - error: function(jqxhr, status, error) { + error: function (jqxhr, status, error) { switch (status) { - case "timeout": - err = "TIMEOUT"; - break; - case "abort": - err = "ABORTED"; - break; - case "error": - err = "ERROR"; - break; + case 'timeout': + err = 'TIMEOUT' + break + case 'abort': + err = 'ABORTED' + break + case 'error': + err = 'ERROR' + break default: - err = "UNKNOWN"; + err = 'UNKNOWN' } - log - .resolve(err) - .addClass(CLASS_BAD) - .after(TIPS); - } - }); + log.resolve(err).addClass(CLASS_BAD).after(TIPS) + }, + }) } // Nifty hex/ascii helpers: //https://www.w3resource.com/javascript-exercises/javascript-string-exercise-28.php function hex_to_ascii(str1) { - var hex = str1.toString(); - var str = ""; + var hex = str1.toString() + var str = '' for (var n = 0; n < hex.length; n += 2) { - str += String.fromCharCode(parseInt(hex.substr(n, 2), 16)); + str += String.fromCharCode(parseInt(hex.substr(n, 2), 16)) } - return str; + return str } //https://www.w3resource.com/javascript-exercises/javascript-string-exercise-27.php function ascii_to_hexa(str) { - var arr1 = []; + var arr1 = [] for (var n = 0, l = str.length; n < l; n++) { - var hex = Number(str.charCodeAt(n)).toString(16); - arr1.push(hex); + var hex = Number(str.charCodeAt(n)).toString(16) + arr1.push(hex) } - return arr1.join(""); + return arr1.join('') } function handle_submit(event) { - event.preventDefault(); + event.preventDefault() - $(".result-title").show(); - $("#result").show(); - $("#log").empty(); + $('.result-title').show() + $('#result').show() + $('#log').empty() - parse_manifest(); + parse_manifest() } //1. //Start the verification process when the user enters a manifest. $(document).ready(() => { - $("#manifest-entry").submit(handle_submit); -}); - + $('#manifest-entry').submit(handle_submit) +}) diff --git a/static/js/ecosystem/arrow-animation.js b/static/js/ecosystem/arrow-animation.js index 60ab483977..36ee5c9400 100644 --- a/static/js/ecosystem/arrow-animation.js +++ b/static/js/ecosystem/arrow-animation.js @@ -1,451 +1,451 @@ var arrowAnimation = { - "v": "4.8.0", - "meta": { "g": "LottieFiles AE 3.4.3", "a": "", "k": "", "d": "", "tc": "" }, - "fr": 30, - "ip": 0, - "op": 160, - "w": 112, - "h": 112, - "nm": "Comp 1", - "ddd": 0, - "assets": [], - "layers": [ + v: '4.8.0', + meta: { g: 'LottieFiles AE 3.4.3', a: '', k: '', d: '', tc: '' }, + fr: 30, + ip: 0, + op: 160, + w: 112, + h: 112, + nm: 'Comp 1', + ddd: 0, + assets: [], + layers: [ { - "ddd": 0, - "ind": 1, - "ty": 4, - "nm": "ic_arrow-down Outlines", - "sr": 1, - "ks": { - "o": { "a": 0, "k": 100, "ix": 11 }, - "r": { "a": 0, "k": 0, "ix": 10 }, - "p": { - "a": 1, - "k": [ + ddd: 0, + ind: 1, + ty: 4, + nm: 'ic_arrow-down Outlines', + sr: 1, + ks: { + o: { a: 0, k: 100, ix: 11 }, + r: { a: 0, k: 0, ix: 10 }, + p: { + a: 1, + k: [ { - "i": { "x": 0.667, "y": 1 }, - "o": { "x": 0.333, "y": 0 }, - "t": 0, - "s": [55.5, 56, 0], - "to": [0, 1.667, 0], - "ti": [0, 1.667, 0] + i: { x: 0.667, y: 1 }, + o: { x: 0.333, y: 0 }, + t: 0, + s: [55.5, 56, 0], + to: [0, 1.667, 0], + ti: [0, 1.667, 0], }, { - "i": { "x": 0.667, "y": 1 }, - "o": { "x": 0.333, "y": 0 }, - "t": 20, - "s": [55.5, 66, 0], - "to": [0, -1.667, 0], - "ti": [0, 0, 0] + i: { x: 0.667, y: 1 }, + o: { x: 0.333, y: 0 }, + t: 20, + s: [55.5, 66, 0], + to: [0, -1.667, 0], + ti: [0, 0, 0], }, { - "i": { "x": 0.667, "y": 1 }, - "o": { "x": 0.333, "y": 0 }, - "t": 60, - "s": [55.5, 46, 0], - "to": [0, 0, 0], - "ti": [0, 0, 0] + i: { x: 0.667, y: 1 }, + o: { x: 0.333, y: 0 }, + t: 60, + s: [55.5, 46, 0], + to: [0, 0, 0], + ti: [0, 0, 0], }, { - "i": { "x": 0.667, "y": 1 }, - "o": { "x": 0.333, "y": 0 }, - "t": 100, - "s": [55.5, 66, 0], - "to": [0, 0, 0], - "ti": [0, 1.667, 0] + i: { x: 0.667, y: 1 }, + o: { x: 0.333, y: 0 }, + t: 100, + s: [55.5, 66, 0], + to: [0, 0, 0], + ti: [0, 1.667, 0], }, { - "i": { "x": 0.667, "y": 1 }, - "o": { "x": 0.333, "y": 0 }, - "t": 140, - "s": [55.5, 46, 0], - "to": [0, -1.667, 0], - "ti": [0, -1.667, 0] + i: { x: 0.667, y: 1 }, + o: { x: 0.333, y: 0 }, + t: 140, + s: [55.5, 46, 0], + to: [0, -1.667, 0], + ti: [0, -1.667, 0], }, - { "t": 160, "s": [55.5, 56, 0] } + { t: 160, s: [55.5, 56, 0] }, ], - "ix": 2 + ix: 2, }, - "a": { "a": 0, "k": [12, 12, 0], "ix": 1 }, - "s": { "a": 0, "k": [200, 200, 100], "ix": 6 } + a: { a: 0, k: [12, 12, 0], ix: 1 }, + s: { a: 0, k: [200, 200, 100], ix: 6 }, }, - "ao": 0, - "shapes": [ + ao: 0, + shapes: [ { - "ty": "gr", - "it": [ + ty: 'gr', + it: [ { - "ind": 0, - "ty": "sh", - "ix": 1, - "ks": { - "a": 0, - "k": { - "i": [ + ind: 0, + ty: 'sh', + ix: 1, + ks: { + a: 0, + k: { + i: [ + [0, 0], [0, 0], [0, 0], - [0, 0] ], - "o": [ + o: [ + [0, 0], [0, 0], [0, 0], - [0, 0] ], - "v": [ + v: [ [5.001, -2.501], [0, 2.501], - [-5.001, -2.501] + [-5.001, -2.501], ], - "c": false + c: false, }, - "ix": 2 + ix: 2, }, - "nm": "Path 1", - "mn": "ADBE Vector Shape - Group", - "hd": false + nm: 'Path 1', + mn: 'ADBE Vector Shape - Group', + hd: false, }, { - "ty": "st", - "c": { - "a": 0, - "k": [0.474509833841, 0.098039223166, 1, 1], - "ix": 3 + ty: 'st', + c: { + a: 0, + k: [0.474509833841, 0.098039223166, 1, 1], + ix: 3, }, - "o": { "a": 0, "k": 100, "ix": 4 }, - "w": { "a": 0, "k": 1.5, "ix": 5 }, - "lc": 2, - "lj": 2, - "bm": 0, - "nm": "Stroke 1", - "mn": "ADBE Vector Graphic - Stroke", - "hd": false + o: { a: 0, k: 100, ix: 4 }, + w: { a: 0, k: 1.5, ix: 5 }, + lc: 2, + lj: 2, + bm: 0, + nm: 'Stroke 1', + mn: 'ADBE Vector Graphic - Stroke', + hd: false, }, { - "ty": "tr", - "p": { "a": 0, "k": [12, 16.5], "ix": 2 }, - "a": { "a": 0, "k": [0, 0], "ix": 1 }, - "s": { "a": 0, "k": [100, 100], "ix": 3 }, - "r": { "a": 0, "k": 0, "ix": 6 }, - "o": { "a": 0, "k": 100, "ix": 7 }, - "sk": { "a": 0, "k": 0, "ix": 4 }, - "sa": { "a": 0, "k": 0, "ix": 5 }, - "nm": "Transform" - } + ty: 'tr', + p: { a: 0, k: [12, 16.5], ix: 2 }, + a: { a: 0, k: [0, 0], ix: 1 }, + s: { a: 0, k: [100, 100], ix: 3 }, + r: { a: 0, k: 0, ix: 6 }, + o: { a: 0, k: 100, ix: 7 }, + sk: { a: 0, k: 0, ix: 4 }, + sa: { a: 0, k: 0, ix: 5 }, + nm: 'Transform', + }, ], - "nm": "Group 1", - "np": 2, - "cix": 2, - "bm": 0, - "ix": 1, - "mn": "ADBE Vector Group", - "hd": false + nm: 'Group 1', + np: 2, + cix: 2, + bm: 0, + ix: 1, + mn: 'ADBE Vector Group', + hd: false, }, { - "ty": "gr", - "it": [ + ty: 'gr', + it: [ { - "ind": 0, - "ty": "sh", - "ix": 1, - "ks": { - "a": 0, - "k": { - "i": [ + ind: 0, + ty: 'sh', + ix: 1, + ks: { + a: 0, + k: { + i: [ [0, 0], - [0, 0] - ], - "o": [ [0, 0], - [0, 0] ], - "v": [ + o: [ + [0, 0], + [0, 0], + ], + v: [ [12, 19], - [12, 5] + [12, 5], ], - "c": false + c: false, }, - "ix": 2 + ix: 2, }, - "nm": "Path 1", - "mn": "ADBE Vector Shape - Group", - "hd": false + nm: 'Path 1', + mn: 'ADBE Vector Shape - Group', + hd: false, }, { - "ty": "st", - "c": { - "a": 0, - "k": [0.474509833841, 0.098039223166, 1, 1], - "ix": 3 + ty: 'st', + c: { + a: 0, + k: [0.474509833841, 0.098039223166, 1, 1], + ix: 3, }, - "o": { "a": 0, "k": 100, "ix": 4 }, - "w": { "a": 0, "k": 1.5, "ix": 5 }, - "lc": 2, - "lj": 2, - "bm": 0, - "nm": "Stroke 1", - "mn": "ADBE Vector Graphic - Stroke", - "hd": false + o: { a: 0, k: 100, ix: 4 }, + w: { a: 0, k: 1.5, ix: 5 }, + lc: 2, + lj: 2, + bm: 0, + nm: 'Stroke 1', + mn: 'ADBE Vector Graphic - Stroke', + hd: false, }, { - "ty": "tr", - "p": { "a": 0, "k": [0, 0], "ix": 2 }, - "a": { "a": 0, "k": [0, 0], "ix": 1 }, - "s": { "a": 0, "k": [100, 100], "ix": 3 }, - "r": { "a": 0, "k": 0, "ix": 6 }, - "o": { "a": 0, "k": 100, "ix": 7 }, - "sk": { "a": 0, "k": 0, "ix": 4 }, - "sa": { "a": 0, "k": 0, "ix": 5 }, - "nm": "Transform" - } + ty: 'tr', + p: { a: 0, k: [0, 0], ix: 2 }, + a: { a: 0, k: [0, 0], ix: 1 }, + s: { a: 0, k: [100, 100], ix: 3 }, + r: { a: 0, k: 0, ix: 6 }, + o: { a: 0, k: 100, ix: 7 }, + sk: { a: 0, k: 0, ix: 4 }, + sa: { a: 0, k: 0, ix: 5 }, + nm: 'Transform', + }, ], - "nm": "Group 2", - "np": 2, - "cix": 2, - "bm": 0, - "ix": 2, - "mn": "ADBE Vector Group", - "hd": false - } + nm: 'Group 2', + np: 2, + cix: 2, + bm: 0, + ix: 2, + mn: 'ADBE Vector Group', + hd: false, + }, ], - "ip": 0, - "op": 1350, - "st": 0, - "bm": 0 + ip: 0, + op: 1350, + st: 0, + bm: 0, }, { - "ddd": 0, - "ind": 3, - "ty": 4, - "nm": "ic_arrow-down Outlines 2", - "sr": 1, - "ks": { - "o": { "a": 0, "k": 100, "ix": 11 }, - "r": { "a": 0, "k": 0, "ix": 10 }, - "p": { - "a": 1, - "k": [ + ddd: 0, + ind: 3, + ty: 4, + nm: 'ic_arrow-down Outlines 2', + sr: 1, + ks: { + o: { a: 0, k: 100, ix: 11 }, + r: { a: 0, k: 0, ix: 10 }, + p: { + a: 1, + k: [ { - "i": { "x": 0.667, "y": 1 }, - "o": { "x": 0.333, "y": 0 }, - "t": 0, - "s": [344, 840, 0], - "to": [0, 1.667, 0], - "ti": [0, 1.667, 0] + i: { x: 0.667, y: 1 }, + o: { x: 0.333, y: 0 }, + t: 0, + s: [344, 840, 0], + to: [0, 1.667, 0], + ti: [0, 1.667, 0], }, { - "i": { "x": 0.667, "y": 1 }, - "o": { "x": 0.333, "y": 0 }, - "t": 20, - "s": [344, 850, 0], - "to": [0, -1.667, 0], - "ti": [0, 0, 0] + i: { x: 0.667, y: 1 }, + o: { x: 0.333, y: 0 }, + t: 20, + s: [344, 850, 0], + to: [0, -1.667, 0], + ti: [0, 0, 0], }, { - "i": { "x": 0.667, "y": 1 }, - "o": { "x": 0.333, "y": 0 }, - "t": 60, - "s": [344, 830, 0], - "to": [0, 0, 0], - "ti": [0, 0, 0] + i: { x: 0.667, y: 1 }, + o: { x: 0.333, y: 0 }, + t: 60, + s: [344, 830, 0], + to: [0, 0, 0], + ti: [0, 0, 0], }, { - "i": { "x": 0.667, "y": 1 }, - "o": { "x": 0.333, "y": 0 }, - "t": 100, - "s": [344, 850, 0], - "to": [0, 0, 0], - "ti": [0, 0, 0] + i: { x: 0.667, y: 1 }, + o: { x: 0.333, y: 0 }, + t: 100, + s: [344, 850, 0], + to: [0, 0, 0], + ti: [0, 0, 0], }, { - "i": { "x": 0.667, "y": 1 }, - "o": { "x": 0.167, "y": 0 }, - "t": 140, - "s": [344, 830, 0], - "to": [0, 0, 0], - "ti": [0, 0, 0] + i: { x: 0.667, y: 1 }, + o: { x: 0.167, y: 0 }, + t: 140, + s: [344, 830, 0], + to: [0, 0, 0], + ti: [0, 0, 0], }, { - "i": { "x": 0.667, "y": 1 }, - "o": { "x": 0.333, "y": 0 }, - "t": 180, - "s": [344, 850, 0], - "to": [0, 0, 0], - "ti": [0, 0, 0] + i: { x: 0.667, y: 1 }, + o: { x: 0.333, y: 0 }, + t: 180, + s: [344, 850, 0], + to: [0, 0, 0], + ti: [0, 0, 0], }, { - "i": { "x": 0.667, "y": 1 }, - "o": { "x": 0.333, "y": 0 }, - "t": 220, - "s": [344, 830, 0], - "to": [0, 0, 0], - "ti": [0, 0, 0] + i: { x: 0.667, y: 1 }, + o: { x: 0.333, y: 0 }, + t: 220, + s: [344, 830, 0], + to: [0, 0, 0], + ti: [0, 0, 0], }, { - "i": { "x": 0.667, "y": 1 }, - "o": { "x": 0.333, "y": 0 }, - "t": 260, - "s": [344, 850, 0], - "to": [0, 0, 0], - "ti": [0, 1.667, 0] + i: { x: 0.667, y: 1 }, + o: { x: 0.333, y: 0 }, + t: 260, + s: [344, 850, 0], + to: [0, 0, 0], + ti: [0, 1.667, 0], }, { - "i": { "x": 0.667, "y": 1 }, - "o": { "x": 0.167, "y": 0 }, - "t": 300, - "s": [344, 830, 0], - "to": [0, -1.667, 0], - "ti": [0, -1.667, 0] + i: { x: 0.667, y: 1 }, + o: { x: 0.167, y: 0 }, + t: 300, + s: [344, 830, 0], + to: [0, -1.667, 0], + ti: [0, -1.667, 0], }, - { "t": 320, "s": [344, 840, 0] } + { t: 320, s: [344, 840, 0] }, ], - "ix": 2 + ix: 2, }, - "a": { "a": 0, "k": [1.469, 19.347, 0], "ix": 1 }, - "s": { "a": 0, "k": [200, 200, 100], "ix": 6 } + a: { a: 0, k: [1.469, 19.347, 0], ix: 1 }, + s: { a: 0, k: [200, 200, 100], ix: 6 }, }, - "ao": 0, - "shapes": [ + ao: 0, + shapes: [ { - "ty": "gr", - "it": [ + ty: 'gr', + it: [ { - "ind": 0, - "ty": "sh", - "ix": 1, - "ks": { - "a": 0, - "k": { - "i": [ + ind: 0, + ty: 'sh', + ix: 1, + ks: { + a: 0, + k: { + i: [ + [0, 0], [0, 0], [0, 0], - [0, 0] ], - "o": [ + o: [ + [0, 0], [0, 0], [0, 0], - [0, 0] ], - "v": [ + v: [ [5.001, -2.501], [0, 2.501], - [-5.001, -2.501] + [-5.001, -2.501], ], - "c": false + c: false, }, - "ix": 2 + ix: 2, }, - "nm": "Path 1", - "mn": "ADBE Vector Shape - Group", - "hd": false + nm: 'Path 1', + mn: 'ADBE Vector Shape - Group', + hd: false, }, { - "ty": "st", - "c": { - "a": 0, - "k": [0.474509833841, 0.098039223166, 1, 1], - "ix": 3 + ty: 'st', + c: { + a: 0, + k: [0.474509833841, 0.098039223166, 1, 1], + ix: 3, }, - "o": { "a": 0, "k": 100, "ix": 4 }, - "w": { "a": 0, "k": 1.5, "ix": 5 }, - "lc": 2, - "lj": 2, - "bm": 0, - "nm": "Stroke 1", - "mn": "ADBE Vector Graphic - Stroke", - "hd": false + o: { a: 0, k: 100, ix: 4 }, + w: { a: 0, k: 1.5, ix: 5 }, + lc: 2, + lj: 2, + bm: 0, + nm: 'Stroke 1', + mn: 'ADBE Vector Graphic - Stroke', + hd: false, }, { - "ty": "tr", - "p": { "a": 0, "k": [12, 16.5], "ix": 2 }, - "a": { "a": 0, "k": [0, 0], "ix": 1 }, - "s": { "a": 0, "k": [100, 100], "ix": 3 }, - "r": { "a": 0, "k": 0, "ix": 6 }, - "o": { "a": 0, "k": 100, "ix": 7 }, - "sk": { "a": 0, "k": 0, "ix": 4 }, - "sa": { "a": 0, "k": 0, "ix": 5 }, - "nm": "Transform" - } + ty: 'tr', + p: { a: 0, k: [12, 16.5], ix: 2 }, + a: { a: 0, k: [0, 0], ix: 1 }, + s: { a: 0, k: [100, 100], ix: 3 }, + r: { a: 0, k: 0, ix: 6 }, + o: { a: 0, k: 100, ix: 7 }, + sk: { a: 0, k: 0, ix: 4 }, + sa: { a: 0, k: 0, ix: 5 }, + nm: 'Transform', + }, ], - "nm": "Group 1", - "np": 2, - "cix": 2, - "bm": 0, - "ix": 1, - "mn": "ADBE Vector Group", - "hd": false + nm: 'Group 1', + np: 2, + cix: 2, + bm: 0, + ix: 1, + mn: 'ADBE Vector Group', + hd: false, }, { - "ty": "gr", - "it": [ + ty: 'gr', + it: [ { - "ind": 0, - "ty": "sh", - "ix": 1, - "ks": { - "a": 0, - "k": { - "i": [ + ind: 0, + ty: 'sh', + ix: 1, + ks: { + a: 0, + k: { + i: [ [0, 0], - [0, 0] - ], - "o": [ [0, 0], - [0, 0] ], - "v": [ + o: [ + [0, 0], + [0, 0], + ], + v: [ [12, 19], - [12, 5] + [12, 5], ], - "c": false + c: false, }, - "ix": 2 + ix: 2, }, - "nm": "Path 1", - "mn": "ADBE Vector Shape - Group", - "hd": false + nm: 'Path 1', + mn: 'ADBE Vector Shape - Group', + hd: false, }, { - "ty": "st", - "c": { - "a": 0, - "k": [0.474509833841, 0.098039223166, 1, 1], - "ix": 3 + ty: 'st', + c: { + a: 0, + k: [0.474509833841, 0.098039223166, 1, 1], + ix: 3, }, - "o": { "a": 0, "k": 100, "ix": 4 }, - "w": { "a": 0, "k": 1.5, "ix": 5 }, - "lc": 2, - "lj": 2, - "bm": 0, - "nm": "Stroke 1", - "mn": "ADBE Vector Graphic - Stroke", - "hd": false + o: { a: 0, k: 100, ix: 4 }, + w: { a: 0, k: 1.5, ix: 5 }, + lc: 2, + lj: 2, + bm: 0, + nm: 'Stroke 1', + mn: 'ADBE Vector Graphic - Stroke', + hd: false, }, { - "ty": "tr", - "p": { "a": 0, "k": [0, 0], "ix": 2 }, - "a": { "a": 0, "k": [0, 0], "ix": 1 }, - "s": { "a": 0, "k": [100, 100], "ix": 3 }, - "r": { "a": 0, "k": 0, "ix": 6 }, - "o": { "a": 0, "k": 100, "ix": 7 }, - "sk": { "a": 0, "k": 0, "ix": 4 }, - "sa": { "a": 0, "k": 0, "ix": 5 }, - "nm": "Transform" - } + ty: 'tr', + p: { a: 0, k: [0, 0], ix: 2 }, + a: { a: 0, k: [0, 0], ix: 1 }, + s: { a: 0, k: [100, 100], ix: 3 }, + r: { a: 0, k: 0, ix: 6 }, + o: { a: 0, k: 100, ix: 7 }, + sk: { a: 0, k: 0, ix: 4 }, + sa: { a: 0, k: 0, ix: 5 }, + nm: 'Transform', + }, ], - "nm": "Group 2", - "np": 2, - "cix": 2, - "bm": 0, - "ix": 2, - "mn": "ADBE Vector Group", - "hd": false - } + nm: 'Group 2', + np: 2, + cix: 2, + bm: 0, + ix: 2, + mn: 'ADBE Vector Group', + hd: false, + }, ], - "ip": 0, - "op": 1350, - "st": 0, - "bm": 0 - } + ip: 0, + op: 1350, + st: 0, + bm: 0, + }, ], - "markers": [] + markers: [], } diff --git a/static/js/ecosystem/arrow-animation.json b/static/js/ecosystem/arrow-animation.json index 5f9972cb0f..284a3fd364 100644 --- a/static/js/ecosystem/arrow-animation.json +++ b/static/js/ecosystem/arrow-animation.json @@ -1 +1,337 @@ -{"v":"4.8.0","meta":{"g":"LottieFiles AE 3.4.3","a":"","k":"","d":"","tc":""},"fr":30,"ip":0,"op":160,"w":112,"h":112,"nm":"Comp 1","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"ic_arrow-down Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[55.5,56,0],"to":[0,1.667,0],"ti":[0,1.667,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[55.5,66,0],"to":[0,-1.667,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":60,"s":[55.5,46,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":100,"s":[55.5,66,0],"to":[0,0,0],"ti":[0,1.667,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":140,"s":[55.5,46,0],"to":[0,-1.667,0],"ti":[0,-1.667,0]},{"t":160,"s":[55.5,56,0]}],"ix":2},"a":{"a":0,"k":[12,12,0],"ix":1},"s":{"a":0,"k":[200,200,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[5.001,-2.501],[0,2.501],[-5.001,-2.501]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.474509833841,0.098039223166,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.5,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[12,16.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[12,19],[12,5]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.474509833841,0.098039223166,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.5,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"ic_arrow-down Outlines 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[344,840,0],"to":[0,1.667,0],"ti":[0,1.667,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[344,850,0],"to":[0,-1.667,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":60,"s":[344,830,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":100,"s":[344,850,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":140,"s":[344,830,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":180,"s":[344,850,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":220,"s":[344,830,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":260,"s":[344,850,0],"to":[0,0,0],"ti":[0,1.667,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":300,"s":[344,830,0],"to":[0,-1.667,0],"ti":[0,-1.667,0]},{"t":320,"s":[344,840,0]}],"ix":2},"a":{"a":0,"k":[1.469,19.347,0],"ix":1},"s":{"a":0,"k":[200,200,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[5.001,-2.501],[0,2.501],[-5.001,-2.501]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.474509833841,0.098039223166,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.5,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[12,16.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[12,19],[12,5]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.474509833841,0.098039223166,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.5,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0}],"markers":[]} \ No newline at end of file +{ + "v": "4.8.0", + "meta": { "g": "LottieFiles AE 3.4.3", "a": "", "k": "", "d": "", "tc": "" }, + "fr": 30, + "ip": 0, + "op": 160, + "w": 112, + "h": 112, + "nm": "Comp 1", + "ddd": 0, + "assets": [], + "layers": [ + { + "ddd": 0, + "ind": 1, + "ty": 4, + "nm": "ic_arrow-down Outlines", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { + "a": 1, + "k": [ + { "i": { "x": 0.667, "y": 1 }, "o": { "x": 0.333, "y": 0 }, "t": 0, "s": [55.5, 56, 0], "to": [0, 1.667, 0], "ti": [0, 1.667, 0] }, + { "i": { "x": 0.667, "y": 1 }, "o": { "x": 0.333, "y": 0 }, "t": 20, "s": [55.5, 66, 0], "to": [0, -1.667, 0], "ti": [0, 0, 0] }, + { "i": { "x": 0.667, "y": 1 }, "o": { "x": 0.333, "y": 0 }, "t": 60, "s": [55.5, 46, 0], "to": [0, 0, 0], "ti": [0, 0, 0] }, + { "i": { "x": 0.667, "y": 1 }, "o": { "x": 0.333, "y": 0 }, "t": 100, "s": [55.5, 66, 0], "to": [0, 0, 0], "ti": [0, 1.667, 0] }, + { "i": { "x": 0.667, "y": 1 }, "o": { "x": 0.333, "y": 0 }, "t": 140, "s": [55.5, 46, 0], "to": [0, -1.667, 0], "ti": [0, -1.667, 0] }, + { "t": 160, "s": [55.5, 56, 0] } + ], + "ix": 2 + }, + "a": { "a": 0, "k": [12, 12, 0], "ix": 1 }, + "s": { "a": 0, "k": [200, 200, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [0, 0], + [0, 0], + [0, 0] + ], + "o": [ + [0, 0], + [0, 0], + [0, 0] + ], + "v": [ + [5.001, -2.501], + [0, 2.501], + [-5.001, -2.501] + ], + "c": false + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "st", + "c": { "a": 0, "k": [0.474509833841, 0.098039223166, 1, 1], "ix": 3 }, + "o": { "a": 0, "k": 100, "ix": 4 }, + "w": { "a": 0, "k": 1.5, "ix": 5 }, + "lc": 2, + "lj": 2, + "bm": 0, + "nm": "Stroke 1", + "mn": "ADBE Vector Graphic - Stroke", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [12, 16.5], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Group 1", + "np": 2, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + }, + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [0, 0], + [0, 0] + ], + "o": [ + [0, 0], + [0, 0] + ], + "v": [ + [12, 19], + [12, 5] + ], + "c": false + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "st", + "c": { "a": 0, "k": [0.474509833841, 0.098039223166, 1, 1], "ix": 3 }, + "o": { "a": 0, "k": 100, "ix": 4 }, + "w": { "a": 0, "k": 1.5, "ix": 5 }, + "lc": 2, + "lj": 2, + "bm": 0, + "nm": "Stroke 1", + "mn": "ADBE Vector Graphic - Stroke", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [0, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Group 2", + "np": 2, + "cix": 2, + "bm": 0, + "ix": 2, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 3, + "ty": 4, + "nm": "ic_arrow-down Outlines 2", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { + "a": 1, + "k": [ + { "i": { "x": 0.667, "y": 1 }, "o": { "x": 0.333, "y": 0 }, "t": 0, "s": [344, 840, 0], "to": [0, 1.667, 0], "ti": [0, 1.667, 0] }, + { "i": { "x": 0.667, "y": 1 }, "o": { "x": 0.333, "y": 0 }, "t": 20, "s": [344, 850, 0], "to": [0, -1.667, 0], "ti": [0, 0, 0] }, + { "i": { "x": 0.667, "y": 1 }, "o": { "x": 0.333, "y": 0 }, "t": 60, "s": [344, 830, 0], "to": [0, 0, 0], "ti": [0, 0, 0] }, + { "i": { "x": 0.667, "y": 1 }, "o": { "x": 0.333, "y": 0 }, "t": 100, "s": [344, 850, 0], "to": [0, 0, 0], "ti": [0, 0, 0] }, + { "i": { "x": 0.667, "y": 1 }, "o": { "x": 0.167, "y": 0 }, "t": 140, "s": [344, 830, 0], "to": [0, 0, 0], "ti": [0, 0, 0] }, + { "i": { "x": 0.667, "y": 1 }, "o": { "x": 0.333, "y": 0 }, "t": 180, "s": [344, 850, 0], "to": [0, 0, 0], "ti": [0, 0, 0] }, + { "i": { "x": 0.667, "y": 1 }, "o": { "x": 0.333, "y": 0 }, "t": 220, "s": [344, 830, 0], "to": [0, 0, 0], "ti": [0, 0, 0] }, + { "i": { "x": 0.667, "y": 1 }, "o": { "x": 0.333, "y": 0 }, "t": 260, "s": [344, 850, 0], "to": [0, 0, 0], "ti": [0, 1.667, 0] }, + { "i": { "x": 0.667, "y": 1 }, "o": { "x": 0.167, "y": 0 }, "t": 300, "s": [344, 830, 0], "to": [0, -1.667, 0], "ti": [0, -1.667, 0] }, + { "t": 320, "s": [344, 840, 0] } + ], + "ix": 2 + }, + "a": { "a": 0, "k": [1.469, 19.347, 0], "ix": 1 }, + "s": { "a": 0, "k": [200, 200, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [0, 0], + [0, 0], + [0, 0] + ], + "o": [ + [0, 0], + [0, 0], + [0, 0] + ], + "v": [ + [5.001, -2.501], + [0, 2.501], + [-5.001, -2.501] + ], + "c": false + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "st", + "c": { "a": 0, "k": [0.474509833841, 0.098039223166, 1, 1], "ix": 3 }, + "o": { "a": 0, "k": 100, "ix": 4 }, + "w": { "a": 0, "k": 1.5, "ix": 5 }, + "lc": 2, + "lj": 2, + "bm": 0, + "nm": "Stroke 1", + "mn": "ADBE Vector Graphic - Stroke", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [12, 16.5], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Group 1", + "np": 2, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + }, + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [0, 0], + [0, 0] + ], + "o": [ + [0, 0], + [0, 0] + ], + "v": [ + [12, 19], + [12, 5] + ], + "c": false + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "st", + "c": { "a": 0, "k": [0.474509833841, 0.098039223166, 1, 1], "ix": 3 }, + "o": { "a": 0, "k": 100, "ix": 4 }, + "w": { "a": 0, "k": 1.5, "ix": 5 }, + "lc": 2, + "lj": 2, + "bm": 0, + "nm": "Stroke 1", + "mn": "ADBE Vector Graphic - Stroke", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [0, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Group 2", + "np": 2, + "cix": 2, + "bm": 0, + "ix": 2, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + } + ], + "markers": [] +} diff --git a/static/js/ecosystem/numbers-animation-light.json b/static/js/ecosystem/numbers-animation-light.json index 90e6393973..2a84efab92 100644 --- a/static/js/ecosystem/numbers-animation-light.json +++ b/static/js/ecosystem/numbers-animation-light.json @@ -1 +1,1710 @@ -{"v":"4.8.0","meta":{"g":"LottieFiles AE 3.4.3","a":"","k":"","d":"","tc":""},"fr":30,"ip":0,"op":120,"w":500,"h":192,"nm":"Comp 1","ddd":0,"assets":[],"fonts":{"list":[{"fName":"WorkSans-Light","fFamily":"Work Sans","fStyle":"Light","ascent":72.9995727539062},{"fName":"WorkSans-Regular","fFamily":"Work Sans","fStyle":"Regular","ascent":72.9995727539062}]},"layers":[{"ddd":0,"ind":1,"ty":5,"nm":"+","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":80,"s":[0]},{"t":85,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[456.507,57.75,0],"ix":2},"a":{"a":0,"k":[29.197,-30.551,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Directional Blur","np":4,"mn":"ADBE Motion Blur","ix":1,"en":1,"ef":[{"ty":0,"nm":"Direction","mn":"ADBE Motion Blur-0001","ix":1,"v":{"a":0,"k":0,"ix":1}},{"ty":0,"nm":"Blur Length","mn":"ADBE Motion Blur-0002","ix":2,"v":{"a":0,"k":0,"ix":2}}]}],"t":{"d":{"k":[{"s":{"s":96,"f":"WorkSans-Regular","t":"+","j":0,"tr":0,"lh":115.2,"ls":0,"fc":[0.098,1,0.514]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":301,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 4","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[377,98,0],"ix":2},"a":{"a":0,"k":[-211.151,-37.036,0],"ix":1},"s":{"a":0,"k":[100.402,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[83,160],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.203922002456,0.203922002456,0.215685990277,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-211.674,-39.036],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[126.032,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":301,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":5,"nm":"0000","tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":15,"s":[377,98,0],"to":[0,-319.917,0],"ti":[0,319.917,0]},{"t":75,"s":[377,-1821.5,0]}],"ix":2},"a":{"a":0,"k":[-7.372,41.613,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Directional Blur","np":4,"mn":"ADBE Motion Blur","ix":1,"en":1,"ef":[{"ty":0,"nm":"Direction","mn":"ADBE Motion Blur-0001","ix":1,"v":{"a":0,"k":0,"ix":1}},{"ty":0,"nm":"Blur Length","mn":"ADBE Motion Blur-0002","ix":2,"v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":15,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":25,"s":[20]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":45,"s":[40]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":65,"s":[20]},{"t":75,"s":[0]}],"ix":2}}]}],"t":{"d":{"k":[{"s":{"sz":[107,2049.75],"ps":[-61.25,-28.375],"s":176,"f":"WorkSans-Light","t":"0\r1\r2\r3\r4\r5\r6\r7\r8\r9\r0","j":2,"tr":0,"lh":192,"ls":0,"fc":[0.102,0.867,0.698]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":301,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Shape Layer 3","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[270,98,0],"ix":2},"a":{"a":0,"k":[-211.151,-37.036,0],"ix":1},"s":{"a":0,"k":[100.402,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[83,160],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.203922002456,0.203922002456,0.215685990277,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-211.674,-39.036],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[126.032,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":301,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":5,"nm":"000","tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":10,"s":[270,98,0],"to":[0,-319.917,0],"ti":[0,319.917,0]},{"t":70,"s":[270,-1821.5,0]}],"ix":2},"a":{"a":0,"k":[-7.372,41.613,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Directional Blur","np":4,"mn":"ADBE Motion Blur","ix":1,"en":1,"ef":[{"ty":0,"nm":"Direction","mn":"ADBE Motion Blur-0001","ix":1,"v":{"a":0,"k":0,"ix":1}},{"ty":0,"nm":"Blur Length","mn":"ADBE Motion Blur-0002","ix":2,"v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":10,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":20,"s":[20]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":40,"s":[40]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":60,"s":[20]},{"t":70,"s":[0]}],"ix":2}}]}],"t":{"d":{"k":[{"s":{"sz":[107,2053.75],"ps":[-61.25,-28.375],"s":176,"f":"WorkSans-Light","t":"0\r1\r2\r3\r4\r5\r6\r7\r8\r9\r0","j":2,"tr":0,"lh":192,"ls":0,"fc":[0.141,0.549,0.988]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":301,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Shape Layer 2","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[163,98,0],"ix":2},"a":{"a":0,"k":[-211.151,-37.036,0],"ix":1},"s":{"a":0,"k":[100.402,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[83,160],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.203922002456,0.203922002456,0.215685990277,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-211.674,-39.036],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[126.032,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":301,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":5,"nm":"00","tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":5,"s":[163,98,0],"to":[0,-479.917,0],"ti":[0,479.917,0]},{"t":65,"s":[163,-2781.5,0]}],"ix":2},"a":{"a":0,"k":[-7.372,41.613,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Directional Blur","np":4,"mn":"ADBE Motion Blur","ix":1,"en":1,"ef":[{"ty":0,"nm":"Direction","mn":"ADBE Motion Blur-0001","ix":1,"v":{"a":0,"k":0,"ix":1}},{"ty":0,"nm":"Blur Length","mn":"ADBE Motion Blur-0002","ix":2,"v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":5,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":15,"s":[20]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":35,"s":[40]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":55,"s":[20]},{"t":65,"s":[0]}],"ix":2}}]}],"t":{"d":{"k":[{"s":{"sz":[107,3013.75],"ps":[-61.25,-28.375],"s":176,"f":"WorkSans-Light","t":"0\r1\r2\r3\r4\r5\r6\r7\r8\r9\r0\r1\r2\r3\r4\r5","j":2,"tr":0,"lh":192,"ls":0,"fc":[0.396,0.031,0.906]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":301,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"Shape Layer 1","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[56,98,0],"ix":2},"a":{"a":0,"k":[-211.151,-37.036,0],"ix":1},"s":{"a":0,"k":[100.402,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[83,160],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.203922002456,0.203922002456,0.215685990277,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-211.674,-39.036],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[126.032,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":301,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":5,"nm":"0","tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[56,98,0],"to":[0,-352,0],"ti":[0,352,0]},{"t":60,"s":[56,-2014,0]}],"ix":2},"a":{"a":0,"k":[-7.372,41.613,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Directional Blur","np":4,"mn":"ADBE Motion Blur","ix":1,"en":1,"ef":[{"ty":0,"nm":"Direction","mn":"ADBE Motion Blur-0001","ix":1,"v":{"a":0,"k":0,"ix":1}},{"ty":0,"nm":"Blur Length","mn":"ADBE Motion Blur-0002","ix":2,"v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":10,"s":[20]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":30,"s":[40]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":50,"s":[20]},{"t":60,"s":[0]}],"ix":2}}]}],"t":{"d":{"k":[{"s":{"sz":[107,2245.75],"ps":[-61.25,-28.375],"s":176,"f":"WorkSans-Light","t":"0\r1\r2\r3\r4\r5\r6\r7\r8\r9\r0\r1","j":1,"tr":0,"lh":192,"ls":0,"fc":[0.576,0.306,0.961]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":301,"st":0,"bm":0}],"markers":[],"chars":[{"ch":"0","size":176,"style":"Light","w":60.7,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-15.71,0],[0,22.156],[15.61,0],[0,-22.156]],"o":[[15.61,0],[0,-22.156],[-15.71,0],[0,22.156]],"v":[[30.615,1.007],[54.785,-33.234],[30.615,-67.474],[6.345,-33.234]],"c":true},"ix":2},"nm":"0","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[12.286,0],[0,19.235],[-12.387,0],[0,-19.235]],"o":[[-12.387,0],[0,-19.235],[12.286,0],[0,19.235]],"v":[[30.615,-3.525],[11.481,-33.234],[30.615,-62.943],[49.649,-33.234]],"c":true},"ix":2},"nm":"0","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"0","np":5,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"Work Sans"},{"ch":"\r","size":176,"style":"Light","w":0,"fFamily":"Work Sans"},{"ch":"1","size":176,"style":"Light","w":36.5,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[5.841,-1.511],[0,0],[-4.431,5.237],[0,-2.82],[0,0],[0,0],[0,0]],"o":[[-3.525,6.042],[0,0],[6.546,-1.712],[-0.101,3.223],[0,0],[0,0],[0,0],[0,0]],"v":[[22.458,-66.467],[3.323,-53.174],[4.633,-48.642],[22.156,-59.518],[21.954,-50.354],[21.954,0],[26.99,0],[26.99,-66.467]],"c":true},"ix":2},"nm":"1","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"Work Sans"},{"ch":"2","size":176,"style":"Light","w":56,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,13.495],[13.193,0],[1.208,-12.085],[0,0],[-10.474,0],[0,-9.467],[25.278,-19.739]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[23.767,-17.825],[0,-12.286],[-13.092,0],[0,0],[0.806,-10.977],[10.071,0],[0,12.891],[0,0]],"v":[[6.546,0],[50.958,0],[50.958,-4.633],[20.544,-4.633],[13.898,-4.532],[13.898,-4.633],[48.843,-47.232],[27.393,-67.474],[5.035,-47.232],[9.467,-44.714],[27.292,-62.842],[43.607,-47.232],[6.546,-4.129]],"c":true},"ix":2},"nm":"2","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"2","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"Work Sans"},{"ch":"3","size":176,"style":"Light","w":55.4,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[12.79,0],[3.122,-8.56],[0,0],[-8.359,0],[0.101,-8.762],[9.467,0],[0,0],[0,0],[0,0],[-0.101,-8.459],[9.869,0],[2.115,8.157],[0,0],[-11.783,0],[0,10.977],[8.661,0.302],[0,0],[0,8.862]],"o":[[-9.769,0],[0,0],[2.014,-7.05],[9.366,0],[0,8.057],[0,0],[0,0],[0,0],[10.574,0],[0.101,8.661],[-10.776,0],[0,0],[3.122,9.869],[12.79,0],[0,-8.762],[0,0],[7.452,-0.705],[0,-9.97]],"v":[[27.695,-67.474],[7.15,-53.577],[11.884,-51.26],[27.695,-62.842],[42.398,-49.146],[27.896,-35.852],[24.17,-35.852],[24.17,-31.219],[27.896,-31.219],[44.009,-18.127],[27.594,-3.625],[9.467,-17.12],[4.834,-14.603],[27.292,1.007],[49.246,-17.523],[34.946,-33.536],[34.946,-33.636],[47.635,-50.153]],"c":true},"ix":2},"nm":"3","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"3","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"Work Sans"},{"ch":"4","size":176,"style":"Light","w":58.2,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[54.987,-23.264],[42.197,-23.264],[42.197,-66.467],[35.751,-66.467],[4.129,-22.76],[4.129,-18.933],[37.161,-18.933],[37.161,0],[42.197,0],[42.197,-18.933],[54.987,-18.933]],"c":true},"ix":2},"nm":"4","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[-1.511,2.719],[0,0],[0,0],[0,0],[0,0]],"o":[[1.712,-2.518],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[31.622,-53.476],[37.161,-62.238],[37.363,-62.238],[37.161,-53.677],[37.161,-23.264],[9.567,-23.264]],"c":true},"ix":2},"nm":"4","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"4","np":5,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"Work Sans"},{"ch":"5","size":176,"style":"Light","w":56,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[12.488,0],[3.223,-3.726],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-8.56,0],[-0.101,-10.272],[10.272,0],[1.913,8.661],[0,0],[-11.984,0],[0,12.991]],"o":[[-8.56,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[3.122,-4.33],[9.97,0],[0,9.97],[-10.373,0],[0,0],[3.122,10.675],[13.394,0],[0,-12.589]],"v":[[29.81,-41.492],[12.689,-34.744],[12.589,-34.744],[12.79,-36.053],[15.408,-61.835],[47.937,-61.835],[47.937,-66.467],[11.179,-66.467],[7.553,-29.407],[11.984,-29.407],[29.105,-36.859],[45.52,-20.242],[28.5,-3.625],[10.574,-17.02],[5.74,-14.603],[28.702,1.007],[50.757,-20.444]],"c":true},"ix":2},"nm":"5","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"5","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"Work Sans"},{"ch":"6","size":176,"style":"Light","w":58.1,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[10.172,0],[0,-22.559],[-16.013,0],[0,12.79],[13.293,0],[0.906,-10.373],[0,0],[0,2.014],[-13.898,0],[-1.913,-6.244],[0,0]],"o":[[-14.502,0],[0,21.048],[13.394,0],[0,-12.79],[-8.762,0],[0,0],[-0.302,-2.417],[0,-16.315],[8.359,0],[0,0],[-3.223,-8.459]],"v":[[31.924,-67.474],[6.445,-33.234],[30.817,1.007],[52.771,-19.94],[31.219,-40.988],[11.884,-25.076],[11.581,-25.076],[11.078,-31.824],[31.622,-62.842],[46.628,-52.167],[51.26,-54.382]],"c":true},"ix":2},"nm":"6","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-10.071,0],[0,-9.668],[10.474,0],[0,9.567]],"o":[[10.272,0],[0,10.071],[-9.869,0],[0,-8.56]],"v":[[30.917,-36.255],[47.534,-20.142],[30.716,-3.726],[14.2,-20.142]],"c":true},"ix":2},"nm":"6","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"6","np":5,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"Work Sans"},{"ch":"7","size":176,"style":"Light","w":53,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[1.007,-23.264],[0,0],[-16.516,17.523],[0,0]],"o":[[0,0],[0,0],[-16.214,17.422],[0,0],[1.007,-24.472],[0,0],[0,0]],"v":[[3.223,-66.467],[3.223,-61.835],[45.621,-61.835],[20.544,0],[25.781,0],[51.059,-61.835],[51.059,-66.467]],"c":true},"ix":2},"nm":"7","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"7","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"Work Sans"},{"ch":"8","size":176,"style":"Light","w":59.1,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[12.488,0],[0,-10.272],[-7.352,-2.216],[0,0],[0,-8.661],[-13.898,0],[0,11.179],[8.963,2.316],[0,0],[0,7.654]],"o":[[-12.488,0],[0,7.654],[0,0],[-8.963,2.316],[0,11.179],[14.099,0],[0,-8.661],[0,0],[7.352,-2.216],[0,-10.272]],"v":[[29.709,-67.374],[9.164,-50.555],[20.947,-35.046],[20.947,-34.946],[6.244,-17.523],[29.709,1.007],[53.275,-17.523],[38.571,-34.946],[38.571,-35.046],[50.354,-50.555]],"c":true},"ix":2},"nm":"8","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-9.366,0],[0,-7.855],[9.265,0],[0,7.755]],"o":[[9.366,0],[0,7.755],[-9.265,0],[0,-7.855]],"v":[[29.709,-62.741],[45.117,-50.052],[29.709,-37.262],[14.401,-50.052]],"c":true},"ix":2},"nm":"8","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[11.078,0],[0,8.56],[-10.876,0],[0,-8.762]],"o":[[-10.977,0],[0,-8.762],[10.977,0],[0,8.56]],"v":[[29.709,-3.625],[11.481,-17.926],[29.709,-32.529],[48.038,-17.926]],"c":true},"ix":2},"nm":"8","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"8","np":6,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"Work Sans"},{"ch":"9","size":176,"style":"Light","w":59.6,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[16.013,0],[0,-12.79],[-13.193,0],[-0.806,11.279],[0,0],[0,-2.417],[15.207,0],[1.813,7.452],[0,0],[-11.682,0],[0,22.559]],"o":[[-13.596,0],[0,12.891],[8.862,0],[0,0],[0.302,2.216],[0,17.02],[-10.474,0],[0,0],[2.921,9.164],[15.207,0],[0,-20.947]],"v":[[28.702,-67.474],[6.445,-46.527],[28.198,-25.479],[47.937,-41.794],[48.239,-41.794],[48.843,-34.845],[28.702,-3.625],[11.682,-16.214],[6.647,-13.596],[28.802,1.007],[53.375,-33.234]],"c":true},"ix":2},"nm":"9","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-10.675,0],[0,-9.567],[10.071,0],[0,9.769]],"o":[[9.97,0],[0,8.56],[-10.474,0],[0,-10.071]],"v":[[28.802,-62.741],[45.621,-46.326],[28.601,-30.212],[11.682,-46.326]],"c":true},"ix":2},"nm":"9","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"9","np":5,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"Work Sans"},{"ch":"+","size":96,"style":"Regular","w":60.4,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[54.886,-35.651],[34.241,-35.651],[34.241,-56.799],[26.688,-56.799],[26.688,-35.651],[5.942,-35.651],[5.942,-28.098],[26.688,-28.098],[26.688,-6.848],[34.241,-6.848],[34.241,-28.098],[54.886,-28.098]],"c":true},"ix":2},"nm":"+","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"+","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"Work Sans"}]} +{ + "v": "4.8.0", + "meta": { "g": "LottieFiles AE 3.4.3", "a": "", "k": "", "d": "", "tc": "" }, + "fr": 30, + "ip": 0, + "op": 120, + "w": 500, + "h": 192, + "nm": "Comp 1", + "ddd": 0, + "assets": [], + "fonts": { + "list": [ + { "fName": "WorkSans-Light", "fFamily": "Work Sans", "fStyle": "Light", "ascent": 72.9995727539062 }, + { "fName": "WorkSans-Regular", "fFamily": "Work Sans", "fStyle": "Regular", "ascent": 72.9995727539062 } + ] + }, + "layers": [ + { + "ddd": 0, + "ind": 1, + "ty": 5, + "nm": "+", + "sr": 1, + "ks": { + "o": { + "a": 1, + "k": [ + { "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 80, "s": [0] }, + { "t": 85, "s": [100] } + ], + "ix": 11 + }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [456.507, 57.75, 0], "ix": 2 }, + "a": { "a": 0, "k": [29.197, -30.551, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "ef": [ + { + "ty": 5, + "nm": "Directional Blur", + "np": 4, + "mn": "ADBE Motion Blur", + "ix": 1, + "en": 1, + "ef": [ + { "ty": 0, "nm": "Direction", "mn": "ADBE Motion Blur-0001", "ix": 1, "v": { "a": 0, "k": 0, "ix": 1 } }, + { "ty": 0, "nm": "Blur Length", "mn": "ADBE Motion Blur-0002", "ix": 2, "v": { "a": 0, "k": 0, "ix": 2 } } + ] + } + ], + "t": { + "d": { + "k": [{ "s": { "s": 96, "f": "WorkSans-Regular", "t": "+", "j": 0, "tr": 0, "lh": 115.2, "ls": 0, "fc": [0.098, 1, 0.514] }, "t": 0 }] + }, + "p": {}, + "m": { "g": 1, "a": { "a": 0, "k": [0, 0], "ix": 2 } }, + "a": [] + }, + "ip": 0, + "op": 301, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 2, + "ty": 4, + "nm": "Shape Layer 4", + "td": 1, + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [377, 98, 0], "ix": 2 }, + "a": { "a": 0, "k": [-211.151, -37.036, 0], "ix": 1 }, + "s": { "a": 0, "k": [100.402, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "rc", + "d": 1, + "s": { "a": 0, "k": [83, 160], "ix": 2 }, + "p": { "a": 0, "k": [0, 0], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 4 }, + "nm": "Rectangle Path 1", + "mn": "ADBE Vector Shape - Rect", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.203922002456, 0.203922002456, 0.215685990277, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-211.674, -39.036], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [126.032, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Rectangle 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 301, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 3, + "ty": 5, + "nm": "0000", + "tt": 1, + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { + "a": 1, + "k": [ + { "i": { "x": 0.667, "y": 1 }, "o": { "x": 0.333, "y": 0 }, "t": 15, "s": [377, 98, 0], "to": [0, -319.917, 0], "ti": [0, 319.917, 0] }, + { "t": 75, "s": [377, -1821.5, 0] } + ], + "ix": 2 + }, + "a": { "a": 0, "k": [-7.372, 41.613, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "ef": [ + { + "ty": 5, + "nm": "Directional Blur", + "np": 4, + "mn": "ADBE Motion Blur", + "ix": 1, + "en": 1, + "ef": [ + { "ty": 0, "nm": "Direction", "mn": "ADBE Motion Blur-0001", "ix": 1, "v": { "a": 0, "k": 0, "ix": 1 } }, + { + "ty": 0, + "nm": "Blur Length", + "mn": "ADBE Motion Blur-0002", + "ix": 2, + "v": { + "a": 1, + "k": [ + { "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 15, "s": [0] }, + { "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 25, "s": [20] }, + { "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 45, "s": [40] }, + { "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 65, "s": [20] }, + { "t": 75, "s": [0] } + ], + "ix": 2 + } + } + ] + } + ], + "t": { + "d": { + "k": [ + { + "s": { + "sz": [107, 2049.75], + "ps": [-61.25, -28.375], + "s": 176, + "f": "WorkSans-Light", + "t": "0\r1\r2\r3\r4\r5\r6\r7\r8\r9\r0", + "j": 2, + "tr": 0, + "lh": 192, + "ls": 0, + "fc": [0.102, 0.867, 0.698] + }, + "t": 0 + } + ] + }, + "p": {}, + "m": { "g": 1, "a": { "a": 0, "k": [0, 0], "ix": 2 } }, + "a": [] + }, + "ip": 0, + "op": 301, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 4, + "ty": 4, + "nm": "Shape Layer 3", + "td": 1, + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [270, 98, 0], "ix": 2 }, + "a": { "a": 0, "k": [-211.151, -37.036, 0], "ix": 1 }, + "s": { "a": 0, "k": [100.402, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "rc", + "d": 1, + "s": { "a": 0, "k": [83, 160], "ix": 2 }, + "p": { "a": 0, "k": [0, 0], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 4 }, + "nm": "Rectangle Path 1", + "mn": "ADBE Vector Shape - Rect", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.203922002456, 0.203922002456, 0.215685990277, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-211.674, -39.036], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [126.032, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Rectangle 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 301, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 5, + "ty": 5, + "nm": "000", + "tt": 1, + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { + "a": 1, + "k": [ + { "i": { "x": 0.667, "y": 1 }, "o": { "x": 0.333, "y": 0 }, "t": 10, "s": [270, 98, 0], "to": [0, -319.917, 0], "ti": [0, 319.917, 0] }, + { "t": 70, "s": [270, -1821.5, 0] } + ], + "ix": 2 + }, + "a": { "a": 0, "k": [-7.372, 41.613, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "ef": [ + { + "ty": 5, + "nm": "Directional Blur", + "np": 4, + "mn": "ADBE Motion Blur", + "ix": 1, + "en": 1, + "ef": [ + { "ty": 0, "nm": "Direction", "mn": "ADBE Motion Blur-0001", "ix": 1, "v": { "a": 0, "k": 0, "ix": 1 } }, + { + "ty": 0, + "nm": "Blur Length", + "mn": "ADBE Motion Blur-0002", + "ix": 2, + "v": { + "a": 1, + "k": [ + { "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 10, "s": [0] }, + { "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 20, "s": [20] }, + { "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 40, "s": [40] }, + { "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 60, "s": [20] }, + { "t": 70, "s": [0] } + ], + "ix": 2 + } + } + ] + } + ], + "t": { + "d": { + "k": [ + { + "s": { + "sz": [107, 2053.75], + "ps": [-61.25, -28.375], + "s": 176, + "f": "WorkSans-Light", + "t": "0\r1\r2\r3\r4\r5\r6\r7\r8\r9\r0", + "j": 2, + "tr": 0, + "lh": 192, + "ls": 0, + "fc": [0.141, 0.549, 0.988] + }, + "t": 0 + } + ] + }, + "p": {}, + "m": { "g": 1, "a": { "a": 0, "k": [0, 0], "ix": 2 } }, + "a": [] + }, + "ip": 0, + "op": 301, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 6, + "ty": 4, + "nm": "Shape Layer 2", + "td": 1, + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [163, 98, 0], "ix": 2 }, + "a": { "a": 0, "k": [-211.151, -37.036, 0], "ix": 1 }, + "s": { "a": 0, "k": [100.402, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "rc", + "d": 1, + "s": { "a": 0, "k": [83, 160], "ix": 2 }, + "p": { "a": 0, "k": [0, 0], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 4 }, + "nm": "Rectangle Path 1", + "mn": "ADBE Vector Shape - Rect", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.203922002456, 0.203922002456, 0.215685990277, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-211.674, -39.036], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [126.032, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Rectangle 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 301, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 7, + "ty": 5, + "nm": "00", + "tt": 1, + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { + "a": 1, + "k": [ + { "i": { "x": 0.667, "y": 1 }, "o": { "x": 0.333, "y": 0 }, "t": 5, "s": [163, 98, 0], "to": [0, -479.917, 0], "ti": [0, 479.917, 0] }, + { "t": 65, "s": [163, -2781.5, 0] } + ], + "ix": 2 + }, + "a": { "a": 0, "k": [-7.372, 41.613, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "ef": [ + { + "ty": 5, + "nm": "Directional Blur", + "np": 4, + "mn": "ADBE Motion Blur", + "ix": 1, + "en": 1, + "ef": [ + { "ty": 0, "nm": "Direction", "mn": "ADBE Motion Blur-0001", "ix": 1, "v": { "a": 0, "k": 0, "ix": 1 } }, + { + "ty": 0, + "nm": "Blur Length", + "mn": "ADBE Motion Blur-0002", + "ix": 2, + "v": { + "a": 1, + "k": [ + { "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 5, "s": [0] }, + { "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 15, "s": [20] }, + { "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 35, "s": [40] }, + { "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 55, "s": [20] }, + { "t": 65, "s": [0] } + ], + "ix": 2 + } + } + ] + } + ], + "t": { + "d": { + "k": [ + { + "s": { + "sz": [107, 3013.75], + "ps": [-61.25, -28.375], + "s": 176, + "f": "WorkSans-Light", + "t": "0\r1\r2\r3\r4\r5\r6\r7\r8\r9\r0\r1\r2\r3\r4\r5", + "j": 2, + "tr": 0, + "lh": 192, + "ls": 0, + "fc": [0.396, 0.031, 0.906] + }, + "t": 0 + } + ] + }, + "p": {}, + "m": { "g": 1, "a": { "a": 0, "k": [0, 0], "ix": 2 } }, + "a": [] + }, + "ip": 0, + "op": 301, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 8, + "ty": 4, + "nm": "Shape Layer 1", + "td": 1, + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [56, 98, 0], "ix": 2 }, + "a": { "a": 0, "k": [-211.151, -37.036, 0], "ix": 1 }, + "s": { "a": 0, "k": [100.402, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "rc", + "d": 1, + "s": { "a": 0, "k": [83, 160], "ix": 2 }, + "p": { "a": 0, "k": [0, 0], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 4 }, + "nm": "Rectangle Path 1", + "mn": "ADBE Vector Shape - Rect", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.203922002456, 0.203922002456, 0.215685990277, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-211.674, -39.036], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [126.032, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Rectangle 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 301, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 9, + "ty": 5, + "nm": "0", + "tt": 1, + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { + "a": 1, + "k": [ + { "i": { "x": 0.667, "y": 1 }, "o": { "x": 0.333, "y": 0 }, "t": 0, "s": [56, 98, 0], "to": [0, -352, 0], "ti": [0, 352, 0] }, + { "t": 60, "s": [56, -2014, 0] } + ], + "ix": 2 + }, + "a": { "a": 0, "k": [-7.372, 41.613, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "ef": [ + { + "ty": 5, + "nm": "Directional Blur", + "np": 4, + "mn": "ADBE Motion Blur", + "ix": 1, + "en": 1, + "ef": [ + { "ty": 0, "nm": "Direction", "mn": "ADBE Motion Blur-0001", "ix": 1, "v": { "a": 0, "k": 0, "ix": 1 } }, + { + "ty": 0, + "nm": "Blur Length", + "mn": "ADBE Motion Blur-0002", + "ix": 2, + "v": { + "a": 1, + "k": [ + { "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 0, "s": [0] }, + { "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 10, "s": [20] }, + { "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 30, "s": [40] }, + { "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 50, "s": [20] }, + { "t": 60, "s": [0] } + ], + "ix": 2 + } + } + ] + } + ], + "t": { + "d": { + "k": [ + { + "s": { + "sz": [107, 2245.75], + "ps": [-61.25, -28.375], + "s": 176, + "f": "WorkSans-Light", + "t": "0\r1\r2\r3\r4\r5\r6\r7\r8\r9\r0\r1", + "j": 1, + "tr": 0, + "lh": 192, + "ls": 0, + "fc": [0.576, 0.306, 0.961] + }, + "t": 0 + } + ] + }, + "p": {}, + "m": { "g": 1, "a": { "a": 0, "k": [0, 0], "ix": 2 } }, + "a": [] + }, + "ip": 0, + "op": 301, + "st": 0, + "bm": 0 + } + ], + "markers": [], + "chars": [ + { + "ch": "0", + "size": 176, + "style": "Light", + "w": 60.7, + "data": { + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [-15.71, 0], + [0, 22.156], + [15.61, 0], + [0, -22.156] + ], + "o": [ + [15.61, 0], + [0, -22.156], + [-15.71, 0], + [0, 22.156] + ], + "v": [ + [30.615, 1.007], + [54.785, -33.234], + [30.615, -67.474], + [6.345, -33.234] + ], + "c": true + }, + "ix": 2 + }, + "nm": "0", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ind": 1, + "ty": "sh", + "ix": 2, + "ks": { + "a": 0, + "k": { + "i": [ + [12.286, 0], + [0, 19.235], + [-12.387, 0], + [0, -19.235] + ], + "o": [ + [-12.387, 0], + [0, -19.235], + [12.286, 0], + [0, 19.235] + ], + "v": [ + [30.615, -3.525], + [11.481, -33.234], + [30.615, -62.943], + [49.649, -33.234] + ], + "c": true + }, + "ix": 2 + }, + "nm": "0", + "mn": "ADBE Vector Shape - Group", + "hd": false + } + ], + "nm": "0", + "np": 5, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ] + }, + "fFamily": "Work Sans" + }, + { "ch": "\r", "size": 176, "style": "Light", "w": 0, "fFamily": "Work Sans" }, + { + "ch": "1", + "size": 176, + "style": "Light", + "w": 36.5, + "data": { + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [0, 0], + [5.841, -1.511], + [0, 0], + [-4.431, 5.237], + [0, -2.82], + [0, 0], + [0, 0], + [0, 0] + ], + "o": [ + [-3.525, 6.042], + [0, 0], + [6.546, -1.712], + [-0.101, 3.223], + [0, 0], + [0, 0], + [0, 0], + [0, 0] + ], + "v": [ + [22.458, -66.467], + [3.323, -53.174], + [4.633, -48.642], + [22.156, -59.518], + [21.954, -50.354], + [21.954, 0], + [26.99, 0], + [26.99, -66.467] + ], + "c": true + }, + "ix": 2 + }, + "nm": "1", + "mn": "ADBE Vector Shape - Group", + "hd": false + } + ], + "nm": "1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ] + }, + "fFamily": "Work Sans" + }, + { + "ch": "2", + "size": 176, + "style": "Light", + "w": 56, + "data": { + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 13.495], + [13.193, 0], + [1.208, -12.085], + [0, 0], + [-10.474, 0], + [0, -9.467], + [25.278, -19.739] + ], + "o": [ + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [23.767, -17.825], + [0, -12.286], + [-13.092, 0], + [0, 0], + [0.806, -10.977], + [10.071, 0], + [0, 12.891], + [0, 0] + ], + "v": [ + [6.546, 0], + [50.958, 0], + [50.958, -4.633], + [20.544, -4.633], + [13.898, -4.532], + [13.898, -4.633], + [48.843, -47.232], + [27.393, -67.474], + [5.035, -47.232], + [9.467, -44.714], + [27.292, -62.842], + [43.607, -47.232], + [6.546, -4.129] + ], + "c": true + }, + "ix": 2 + }, + "nm": "2", + "mn": "ADBE Vector Shape - Group", + "hd": false + } + ], + "nm": "2", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ] + }, + "fFamily": "Work Sans" + }, + { + "ch": "3", + "size": 176, + "style": "Light", + "w": 55.4, + "data": { + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [12.79, 0], + [3.122, -8.56], + [0, 0], + [-8.359, 0], + [0.101, -8.762], + [9.467, 0], + [0, 0], + [0, 0], + [0, 0], + [-0.101, -8.459], + [9.869, 0], + [2.115, 8.157], + [0, 0], + [-11.783, 0], + [0, 10.977], + [8.661, 0.302], + [0, 0], + [0, 8.862] + ], + "o": [ + [-9.769, 0], + [0, 0], + [2.014, -7.05], + [9.366, 0], + [0, 8.057], + [0, 0], + [0, 0], + [0, 0], + [10.574, 0], + [0.101, 8.661], + [-10.776, 0], + [0, 0], + [3.122, 9.869], + [12.79, 0], + [0, -8.762], + [0, 0], + [7.452, -0.705], + [0, -9.97] + ], + "v": [ + [27.695, -67.474], + [7.15, -53.577], + [11.884, -51.26], + [27.695, -62.842], + [42.398, -49.146], + [27.896, -35.852], + [24.17, -35.852], + [24.17, -31.219], + [27.896, -31.219], + [44.009, -18.127], + [27.594, -3.625], + [9.467, -17.12], + [4.834, -14.603], + [27.292, 1.007], + [49.246, -17.523], + [34.946, -33.536], + [34.946, -33.636], + [47.635, -50.153] + ], + "c": true + }, + "ix": 2 + }, + "nm": "3", + "mn": "ADBE Vector Shape - Group", + "hd": false + } + ], + "nm": "3", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ] + }, + "fFamily": "Work Sans" + }, + { + "ch": "4", + "size": 176, + "style": "Light", + "w": 58.2, + "data": { + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0] + ], + "o": [ + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0] + ], + "v": [ + [54.987, -23.264], + [42.197, -23.264], + [42.197, -66.467], + [35.751, -66.467], + [4.129, -22.76], + [4.129, -18.933], + [37.161, -18.933], + [37.161, 0], + [42.197, 0], + [42.197, -18.933], + [54.987, -18.933] + ], + "c": true + }, + "ix": 2 + }, + "nm": "4", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ind": 1, + "ty": "sh", + "ix": 2, + "ks": { + "a": 0, + "k": { + "i": [ + [0, 0], + [-1.511, 2.719], + [0, 0], + [0, 0], + [0, 0], + [0, 0] + ], + "o": [ + [1.712, -2.518], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0] + ], + "v": [ + [31.622, -53.476], + [37.161, -62.238], + [37.363, -62.238], + [37.161, -53.677], + [37.161, -23.264], + [9.567, -23.264] + ], + "c": true + }, + "ix": 2 + }, + "nm": "4", + "mn": "ADBE Vector Shape - Group", + "hd": false + } + ], + "nm": "4", + "np": 5, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ] + }, + "fFamily": "Work Sans" + }, + { + "ch": "5", + "size": 176, + "style": "Light", + "w": 56, + "data": { + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [12.488, 0], + [3.223, -3.726], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [-8.56, 0], + [-0.101, -10.272], + [10.272, 0], + [1.913, 8.661], + [0, 0], + [-11.984, 0], + [0, 12.991] + ], + "o": [ + [-8.56, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [3.122, -4.33], + [9.97, 0], + [0, 9.97], + [-10.373, 0], + [0, 0], + [3.122, 10.675], + [13.394, 0], + [0, -12.589] + ], + "v": [ + [29.81, -41.492], + [12.689, -34.744], + [12.589, -34.744], + [12.79, -36.053], + [15.408, -61.835], + [47.937, -61.835], + [47.937, -66.467], + [11.179, -66.467], + [7.553, -29.407], + [11.984, -29.407], + [29.105, -36.859], + [45.52, -20.242], + [28.5, -3.625], + [10.574, -17.02], + [5.74, -14.603], + [28.702, 1.007], + [50.757, -20.444] + ], + "c": true + }, + "ix": 2 + }, + "nm": "5", + "mn": "ADBE Vector Shape - Group", + "hd": false + } + ], + "nm": "5", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ] + }, + "fFamily": "Work Sans" + }, + { + "ch": "6", + "size": 176, + "style": "Light", + "w": 58.1, + "data": { + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [10.172, 0], + [0, -22.559], + [-16.013, 0], + [0, 12.79], + [13.293, 0], + [0.906, -10.373], + [0, 0], + [0, 2.014], + [-13.898, 0], + [-1.913, -6.244], + [0, 0] + ], + "o": [ + [-14.502, 0], + [0, 21.048], + [13.394, 0], + [0, -12.79], + [-8.762, 0], + [0, 0], + [-0.302, -2.417], + [0, -16.315], + [8.359, 0], + [0, 0], + [-3.223, -8.459] + ], + "v": [ + [31.924, -67.474], + [6.445, -33.234], + [30.817, 1.007], + [52.771, -19.94], + [31.219, -40.988], + [11.884, -25.076], + [11.581, -25.076], + [11.078, -31.824], + [31.622, -62.842], + [46.628, -52.167], + [51.26, -54.382] + ], + "c": true + }, + "ix": 2 + }, + "nm": "6", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ind": 1, + "ty": "sh", + "ix": 2, + "ks": { + "a": 0, + "k": { + "i": [ + [-10.071, 0], + [0, -9.668], + [10.474, 0], + [0, 9.567] + ], + "o": [ + [10.272, 0], + [0, 10.071], + [-9.869, 0], + [0, -8.56] + ], + "v": [ + [30.917, -36.255], + [47.534, -20.142], + [30.716, -3.726], + [14.2, -20.142] + ], + "c": true + }, + "ix": 2 + }, + "nm": "6", + "mn": "ADBE Vector Shape - Group", + "hd": false + } + ], + "nm": "6", + "np": 5, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ] + }, + "fFamily": "Work Sans" + }, + { + "ch": "7", + "size": 176, + "style": "Light", + "w": 53, + "data": { + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [0, 0], + [0, 0], + [0, 0], + [1.007, -23.264], + [0, 0], + [-16.516, 17.523], + [0, 0] + ], + "o": [ + [0, 0], + [0, 0], + [-16.214, 17.422], + [0, 0], + [1.007, -24.472], + [0, 0], + [0, 0] + ], + "v": [ + [3.223, -66.467], + [3.223, -61.835], + [45.621, -61.835], + [20.544, 0], + [25.781, 0], + [51.059, -61.835], + [51.059, -66.467] + ], + "c": true + }, + "ix": 2 + }, + "nm": "7", + "mn": "ADBE Vector Shape - Group", + "hd": false + } + ], + "nm": "7", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ] + }, + "fFamily": "Work Sans" + }, + { + "ch": "8", + "size": 176, + "style": "Light", + "w": 59.1, + "data": { + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [12.488, 0], + [0, -10.272], + [-7.352, -2.216], + [0, 0], + [0, -8.661], + [-13.898, 0], + [0, 11.179], + [8.963, 2.316], + [0, 0], + [0, 7.654] + ], + "o": [ + [-12.488, 0], + [0, 7.654], + [0, 0], + [-8.963, 2.316], + [0, 11.179], + [14.099, 0], + [0, -8.661], + [0, 0], + [7.352, -2.216], + [0, -10.272] + ], + "v": [ + [29.709, -67.374], + [9.164, -50.555], + [20.947, -35.046], + [20.947, -34.946], + [6.244, -17.523], + [29.709, 1.007], + [53.275, -17.523], + [38.571, -34.946], + [38.571, -35.046], + [50.354, -50.555] + ], + "c": true + }, + "ix": 2 + }, + "nm": "8", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ind": 1, + "ty": "sh", + "ix": 2, + "ks": { + "a": 0, + "k": { + "i": [ + [-9.366, 0], + [0, -7.855], + [9.265, 0], + [0, 7.755] + ], + "o": [ + [9.366, 0], + [0, 7.755], + [-9.265, 0], + [0, -7.855] + ], + "v": [ + [29.709, -62.741], + [45.117, -50.052], + [29.709, -37.262], + [14.401, -50.052] + ], + "c": true + }, + "ix": 2 + }, + "nm": "8", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ind": 2, + "ty": "sh", + "ix": 3, + "ks": { + "a": 0, + "k": { + "i": [ + [11.078, 0], + [0, 8.56], + [-10.876, 0], + [0, -8.762] + ], + "o": [ + [-10.977, 0], + [0, -8.762], + [10.977, 0], + [0, 8.56] + ], + "v": [ + [29.709, -3.625], + [11.481, -17.926], + [29.709, -32.529], + [48.038, -17.926] + ], + "c": true + }, + "ix": 2 + }, + "nm": "8", + "mn": "ADBE Vector Shape - Group", + "hd": false + } + ], + "nm": "8", + "np": 6, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ] + }, + "fFamily": "Work Sans" + }, + { + "ch": "9", + "size": 176, + "style": "Light", + "w": 59.6, + "data": { + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [16.013, 0], + [0, -12.79], + [-13.193, 0], + [-0.806, 11.279], + [0, 0], + [0, -2.417], + [15.207, 0], + [1.813, 7.452], + [0, 0], + [-11.682, 0], + [0, 22.559] + ], + "o": [ + [-13.596, 0], + [0, 12.891], + [8.862, 0], + [0, 0], + [0.302, 2.216], + [0, 17.02], + [-10.474, 0], + [0, 0], + [2.921, 9.164], + [15.207, 0], + [0, -20.947] + ], + "v": [ + [28.702, -67.474], + [6.445, -46.527], + [28.198, -25.479], + [47.937, -41.794], + [48.239, -41.794], + [48.843, -34.845], + [28.702, -3.625], + [11.682, -16.214], + [6.647, -13.596], + [28.802, 1.007], + [53.375, -33.234] + ], + "c": true + }, + "ix": 2 + }, + "nm": "9", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ind": 1, + "ty": "sh", + "ix": 2, + "ks": { + "a": 0, + "k": { + "i": [ + [-10.675, 0], + [0, -9.567], + [10.071, 0], + [0, 9.769] + ], + "o": [ + [9.97, 0], + [0, 8.56], + [-10.474, 0], + [0, -10.071] + ], + "v": [ + [28.802, -62.741], + [45.621, -46.326], + [28.601, -30.212], + [11.682, -46.326] + ], + "c": true + }, + "ix": 2 + }, + "nm": "9", + "mn": "ADBE Vector Shape - Group", + "hd": false + } + ], + "nm": "9", + "np": 5, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ] + }, + "fFamily": "Work Sans" + }, + { + "ch": "+", + "size": 96, + "style": "Regular", + "w": 60.4, + "data": { + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0] + ], + "o": [ + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0] + ], + "v": [ + [54.886, -35.651], + [34.241, -35.651], + [34.241, -56.799], + [26.688, -56.799], + [26.688, -35.651], + [5.942, -35.651], + [5.942, -28.098], + [26.688, -28.098], + [26.688, -6.848], + [34.241, -6.848], + [34.241, -28.098], + [54.886, -28.098] + ], + "c": true + }, + "ix": 2 + }, + "nm": "+", + "mn": "ADBE Vector Shape - Group", + "hd": false + } + ], + "nm": "+", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ] + }, + "fFamily": "Work Sans" + } + ] +} diff --git a/static/js/ecosystem/numbers-animation.json b/static/js/ecosystem/numbers-animation.json index 374edf8cc3..d7c9c40fb6 100644 --- a/static/js/ecosystem/numbers-animation.json +++ b/static/js/ecosystem/numbers-animation.json @@ -1 +1,1710 @@ -{"v":"4.8.0","meta":{"g":"LottieFiles AE 3.4.3","a":"","k":"","d":"","tc":""},"fr":30,"ip":0,"op":120,"w":500,"h":192,"nm":"Comp 1","ddd":0,"assets":[],"fonts":{"list":[{"fName":"WorkSans-Light","fFamily":"Work Sans","fStyle":"Light","ascent":72.9995727539062},{"fName":"WorkSans-Regular","fFamily":"Work Sans","fStyle":"Regular","ascent":72.9995727539062}]},"layers":[{"ddd":0,"ind":1,"ty":5,"nm":"+","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":80,"s":[0]},{"t":85,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[456.507,57.75,0],"ix":2},"a":{"a":0,"k":[29.197,-30.551,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Directional Blur","np":4,"mn":"ADBE Motion Blur","ix":1,"en":1,"ef":[{"ty":0,"nm":"Direction","mn":"ADBE Motion Blur-0001","ix":1,"v":{"a":0,"k":0,"ix":1}},{"ty":0,"nm":"Blur Length","mn":"ADBE Motion Blur-0002","ix":2,"v":{"a":0,"k":0,"ix":2}}]}],"t":{"d":{"k":[{"s":{"s":96,"f":"WorkSans-Regular","t":"+","j":0,"tr":0,"lh":115.2,"ls":0,"fc":[0.604,0.322,1]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":301,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 4","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[377,98,0],"ix":2},"a":{"a":0,"k":[-211.151,-37.036,0],"ix":1},"s":{"a":0,"k":[100.402,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[83,160],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.203922002456,0.203922002456,0.215685990277,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-211.674,-39.036],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[126.032,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":301,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":5,"nm":"0000","tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":15,"s":[377,98,0],"to":[0,-319.917,0],"ti":[0,319.917,0]},{"t":75,"s":[377,-1821.5,0]}],"ix":2},"a":{"a":0,"k":[-7.372,41.613,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Directional Blur","np":4,"mn":"ADBE Motion Blur","ix":1,"en":1,"ef":[{"ty":0,"nm":"Direction","mn":"ADBE Motion Blur-0001","ix":1,"v":{"a":0,"k":0,"ix":1}},{"ty":0,"nm":"Blur Length","mn":"ADBE Motion Blur-0002","ix":2,"v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":15,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":25,"s":[20]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":45,"s":[40]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":65,"s":[20]},{"t":75,"s":[0]}],"ix":2}}]}],"t":{"d":{"k":[{"s":{"sz":[107,2049.75],"ps":[-61.25,-28.375],"s":176,"f":"WorkSans-Light","t":"0\r1\r2\r3\r4\r5\r6\r7\r8\r9\r0","j":2,"tr":0,"lh":192,"ls":0,"fc":[0.796,0.306,1]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":301,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Shape Layer 3","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[270,98,0],"ix":2},"a":{"a":0,"k":[-211.151,-37.036,0],"ix":1},"s":{"a":0,"k":[100.402,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[83,160],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.203922002456,0.203922002456,0.215685990277,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-211.674,-39.036],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[126.032,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":301,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":5,"nm":"000","tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":10,"s":[270,98,0],"to":[0,-319.917,0],"ti":[0,319.917,0]},{"t":70,"s":[270,-1821.5,0]}],"ix":2},"a":{"a":0,"k":[-7.372,41.613,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Directional Blur","np":4,"mn":"ADBE Motion Blur","ix":1,"en":1,"ef":[{"ty":0,"nm":"Direction","mn":"ADBE Motion Blur-0001","ix":1,"v":{"a":0,"k":0,"ix":1}},{"ty":0,"nm":"Blur Length","mn":"ADBE Motion Blur-0002","ix":2,"v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":10,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":20,"s":[20]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":40,"s":[40]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":60,"s":[20]},{"t":70,"s":[0]}],"ix":2}}]}],"t":{"d":{"k":[{"s":{"sz":[107,2053.75],"ps":[-61.25,-28.375],"s":176,"f":"WorkSans-Light","t":"0\r1\r2\r3\r4\r5\r6\r7\r8\r9\r0","j":2,"tr":0,"lh":192,"ls":0,"fc":[0.941,0.239,0.808]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":301,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Shape Layer 2","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[163,98,0],"ix":2},"a":{"a":0,"k":[-211.151,-37.036,0],"ix":1},"s":{"a":0,"k":[100.402,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[83,160],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.203922002456,0.203922002456,0.215685990277,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-211.674,-39.036],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[126.032,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":301,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":5,"nm":"00","tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":5,"s":[163,98,0],"to":[0,-479.917,0],"ti":[0,479.917,0]},{"t":65,"s":[163,-2781.5,0]}],"ix":2},"a":{"a":0,"k":[-7.372,41.613,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Directional Blur","np":4,"mn":"ADBE Motion Blur","ix":1,"en":1,"ef":[{"ty":0,"nm":"Direction","mn":"ADBE Motion Blur-0001","ix":1,"v":{"a":0,"k":0,"ix":1}},{"ty":0,"nm":"Blur Length","mn":"ADBE Motion Blur-0002","ix":2,"v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":5,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":15,"s":[20]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":35,"s":[40]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":55,"s":[20]},{"t":65,"s":[0]}],"ix":2}}]}],"t":{"d":{"k":[{"s":{"sz":[107,3013.75],"ps":[-61.25,-28.375],"s":176,"f":"WorkSans-Light","t":"0\r1\r2\r3\r4\r5\r6\r7\r8\r9\r0\r1\r2\r3\r4\r5","j":2,"tr":0,"lh":192,"ls":0,"fc":[1,0.416,0.431]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":301,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"Shape Layer 1","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[56,98,0],"ix":2},"a":{"a":0,"k":[-211.151,-37.036,0],"ix":1},"s":{"a":0,"k":[100.402,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[83,160],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.203922002456,0.203922002456,0.215685990277,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-211.674,-39.036],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[126.032,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":301,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":5,"nm":"0","tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[56,98,0],"to":[0,-352,0],"ti":[0,352,0]},{"t":60,"s":[56,-2014,0]}],"ix":2},"a":{"a":0,"k":[-7.372,41.613,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Directional Blur","np":4,"mn":"ADBE Motion Blur","ix":1,"en":1,"ef":[{"ty":0,"nm":"Direction","mn":"ADBE Motion Blur-0001","ix":1,"v":{"a":0,"k":0,"ix":1}},{"ty":0,"nm":"Blur Length","mn":"ADBE Motion Blur-0002","ix":2,"v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":10,"s":[20]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":30,"s":[40]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":50,"s":[20]},{"t":60,"s":[0]}],"ix":2}}]}],"t":{"d":{"k":[{"s":{"sz":[107,2245.75],"ps":[-61.25,-28.375],"s":176,"f":"WorkSans-Light","t":"0\r1\r2\r3\r4\r5\r6\r7\r8\r9\r0\r1","j":1,"tr":0,"lh":192,"ls":0,"fc":[1,0.671,0.247]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":301,"st":0,"bm":0}],"markers":[],"chars":[{"ch":"0","size":176,"style":"Light","w":60.7,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-15.71,0],[0,22.156],[15.61,0],[0,-22.156]],"o":[[15.61,0],[0,-22.156],[-15.71,0],[0,22.156]],"v":[[30.615,1.007],[54.785,-33.234],[30.615,-67.474],[6.345,-33.234]],"c":true},"ix":2},"nm":"0","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[12.286,0],[0,19.235],[-12.387,0],[0,-19.235]],"o":[[-12.387,0],[0,-19.235],[12.286,0],[0,19.235]],"v":[[30.615,-3.525],[11.481,-33.234],[30.615,-62.943],[49.649,-33.234]],"c":true},"ix":2},"nm":"0","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"0","np":5,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"Work Sans"},{"ch":"\r","size":176,"style":"Light","w":0,"fFamily":"Work Sans"},{"ch":"1","size":176,"style":"Light","w":36.5,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[5.841,-1.511],[0,0],[-4.431,5.237],[0,-2.82],[0,0],[0,0],[0,0]],"o":[[-3.525,6.042],[0,0],[6.546,-1.712],[-0.101,3.223],[0,0],[0,0],[0,0],[0,0]],"v":[[22.458,-66.467],[3.323,-53.174],[4.633,-48.642],[22.156,-59.518],[21.954,-50.354],[21.954,0],[26.99,0],[26.99,-66.467]],"c":true},"ix":2},"nm":"1","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"Work Sans"},{"ch":"2","size":176,"style":"Light","w":56,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,13.495],[13.193,0],[1.208,-12.085],[0,0],[-10.474,0],[0,-9.467],[25.278,-19.739]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[23.767,-17.825],[0,-12.286],[-13.092,0],[0,0],[0.806,-10.977],[10.071,0],[0,12.891],[0,0]],"v":[[6.546,0],[50.958,0],[50.958,-4.633],[20.544,-4.633],[13.898,-4.532],[13.898,-4.633],[48.843,-47.232],[27.393,-67.474],[5.035,-47.232],[9.467,-44.714],[27.292,-62.842],[43.607,-47.232],[6.546,-4.129]],"c":true},"ix":2},"nm":"2","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"2","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"Work Sans"},{"ch":"3","size":176,"style":"Light","w":55.4,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[12.79,0],[3.122,-8.56],[0,0],[-8.359,0],[0.101,-8.762],[9.467,0],[0,0],[0,0],[0,0],[-0.101,-8.459],[9.869,0],[2.115,8.157],[0,0],[-11.783,0],[0,10.977],[8.661,0.302],[0,0],[0,8.862]],"o":[[-9.769,0],[0,0],[2.014,-7.05],[9.366,0],[0,8.057],[0,0],[0,0],[0,0],[10.574,0],[0.101,8.661],[-10.776,0],[0,0],[3.122,9.869],[12.79,0],[0,-8.762],[0,0],[7.452,-0.705],[0,-9.97]],"v":[[27.695,-67.474],[7.15,-53.577],[11.884,-51.26],[27.695,-62.842],[42.398,-49.146],[27.896,-35.852],[24.17,-35.852],[24.17,-31.219],[27.896,-31.219],[44.009,-18.127],[27.594,-3.625],[9.467,-17.12],[4.834,-14.603],[27.292,1.007],[49.246,-17.523],[34.946,-33.536],[34.946,-33.636],[47.635,-50.153]],"c":true},"ix":2},"nm":"3","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"3","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"Work Sans"},{"ch":"4","size":176,"style":"Light","w":58.2,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[54.987,-23.264],[42.197,-23.264],[42.197,-66.467],[35.751,-66.467],[4.129,-22.76],[4.129,-18.933],[37.161,-18.933],[37.161,0],[42.197,0],[42.197,-18.933],[54.987,-18.933]],"c":true},"ix":2},"nm":"4","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[-1.511,2.719],[0,0],[0,0],[0,0],[0,0]],"o":[[1.712,-2.518],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[31.622,-53.476],[37.161,-62.238],[37.363,-62.238],[37.161,-53.677],[37.161,-23.264],[9.567,-23.264]],"c":true},"ix":2},"nm":"4","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"4","np":5,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"Work Sans"},{"ch":"5","size":176,"style":"Light","w":56,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[12.488,0],[3.223,-3.726],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-8.56,0],[-0.101,-10.272],[10.272,0],[1.913,8.661],[0,0],[-11.984,0],[0,12.991]],"o":[[-8.56,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[3.122,-4.33],[9.97,0],[0,9.97],[-10.373,0],[0,0],[3.122,10.675],[13.394,0],[0,-12.589]],"v":[[29.81,-41.492],[12.689,-34.744],[12.589,-34.744],[12.79,-36.053],[15.408,-61.835],[47.937,-61.835],[47.937,-66.467],[11.179,-66.467],[7.553,-29.407],[11.984,-29.407],[29.105,-36.859],[45.52,-20.242],[28.5,-3.625],[10.574,-17.02],[5.74,-14.603],[28.702,1.007],[50.757,-20.444]],"c":true},"ix":2},"nm":"5","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"5","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"Work Sans"},{"ch":"6","size":176,"style":"Light","w":58.1,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[10.172,0],[0,-22.559],[-16.013,0],[0,12.79],[13.293,0],[0.906,-10.373],[0,0],[0,2.014],[-13.898,0],[-1.913,-6.244],[0,0]],"o":[[-14.502,0],[0,21.048],[13.394,0],[0,-12.79],[-8.762,0],[0,0],[-0.302,-2.417],[0,-16.315],[8.359,0],[0,0],[-3.223,-8.459]],"v":[[31.924,-67.474],[6.445,-33.234],[30.817,1.007],[52.771,-19.94],[31.219,-40.988],[11.884,-25.076],[11.581,-25.076],[11.078,-31.824],[31.622,-62.842],[46.628,-52.167],[51.26,-54.382]],"c":true},"ix":2},"nm":"6","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-10.071,0],[0,-9.668],[10.474,0],[0,9.567]],"o":[[10.272,0],[0,10.071],[-9.869,0],[0,-8.56]],"v":[[30.917,-36.255],[47.534,-20.142],[30.716,-3.726],[14.2,-20.142]],"c":true},"ix":2},"nm":"6","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"6","np":5,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"Work Sans"},{"ch":"7","size":176,"style":"Light","w":53,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[1.007,-23.264],[0,0],[-16.516,17.523],[0,0]],"o":[[0,0],[0,0],[-16.214,17.422],[0,0],[1.007,-24.472],[0,0],[0,0]],"v":[[3.223,-66.467],[3.223,-61.835],[45.621,-61.835],[20.544,0],[25.781,0],[51.059,-61.835],[51.059,-66.467]],"c":true},"ix":2},"nm":"7","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"7","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"Work Sans"},{"ch":"8","size":176,"style":"Light","w":59.1,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[12.488,0],[0,-10.272],[-7.352,-2.216],[0,0],[0,-8.661],[-13.898,0],[0,11.179],[8.963,2.316],[0,0],[0,7.654]],"o":[[-12.488,0],[0,7.654],[0,0],[-8.963,2.316],[0,11.179],[14.099,0],[0,-8.661],[0,0],[7.352,-2.216],[0,-10.272]],"v":[[29.709,-67.374],[9.164,-50.555],[20.947,-35.046],[20.947,-34.946],[6.244,-17.523],[29.709,1.007],[53.275,-17.523],[38.571,-34.946],[38.571,-35.046],[50.354,-50.555]],"c":true},"ix":2},"nm":"8","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-9.366,0],[0,-7.855],[9.265,0],[0,7.755]],"o":[[9.366,0],[0,7.755],[-9.265,0],[0,-7.855]],"v":[[29.709,-62.741],[45.117,-50.052],[29.709,-37.262],[14.401,-50.052]],"c":true},"ix":2},"nm":"8","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[11.078,0],[0,8.56],[-10.876,0],[0,-8.762]],"o":[[-10.977,0],[0,-8.762],[10.977,0],[0,8.56]],"v":[[29.709,-3.625],[11.481,-17.926],[29.709,-32.529],[48.038,-17.926]],"c":true},"ix":2},"nm":"8","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"8","np":6,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"Work Sans"},{"ch":"9","size":176,"style":"Light","w":59.6,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[16.013,0],[0,-12.79],[-13.193,0],[-0.806,11.279],[0,0],[0,-2.417],[15.207,0],[1.813,7.452],[0,0],[-11.682,0],[0,22.559]],"o":[[-13.596,0],[0,12.891],[8.862,0],[0,0],[0.302,2.216],[0,17.02],[-10.474,0],[0,0],[2.921,9.164],[15.207,0],[0,-20.947]],"v":[[28.702,-67.474],[6.445,-46.527],[28.198,-25.479],[47.937,-41.794],[48.239,-41.794],[48.843,-34.845],[28.702,-3.625],[11.682,-16.214],[6.647,-13.596],[28.802,1.007],[53.375,-33.234]],"c":true},"ix":2},"nm":"9","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-10.675,0],[0,-9.567],[10.071,0],[0,9.769]],"o":[[9.97,0],[0,8.56],[-10.474,0],[0,-10.071]],"v":[[28.802,-62.741],[45.621,-46.326],[28.601,-30.212],[11.682,-46.326]],"c":true},"ix":2},"nm":"9","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"9","np":5,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"Work Sans"},{"ch":"+","size":96,"style":"Regular","w":60.4,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[54.886,-35.651],[34.241,-35.651],[34.241,-56.799],[26.688,-56.799],[26.688,-35.651],[5.942,-35.651],[5.942,-28.098],[26.688,-28.098],[26.688,-6.848],[34.241,-6.848],[34.241,-28.098],[54.886,-28.098]],"c":true},"ix":2},"nm":"+","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"+","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"Work Sans"}]} +{ + "v": "4.8.0", + "meta": { "g": "LottieFiles AE 3.4.3", "a": "", "k": "", "d": "", "tc": "" }, + "fr": 30, + "ip": 0, + "op": 120, + "w": 500, + "h": 192, + "nm": "Comp 1", + "ddd": 0, + "assets": [], + "fonts": { + "list": [ + { "fName": "WorkSans-Light", "fFamily": "Work Sans", "fStyle": "Light", "ascent": 72.9995727539062 }, + { "fName": "WorkSans-Regular", "fFamily": "Work Sans", "fStyle": "Regular", "ascent": 72.9995727539062 } + ] + }, + "layers": [ + { + "ddd": 0, + "ind": 1, + "ty": 5, + "nm": "+", + "sr": 1, + "ks": { + "o": { + "a": 1, + "k": [ + { "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 80, "s": [0] }, + { "t": 85, "s": [100] } + ], + "ix": 11 + }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [456.507, 57.75, 0], "ix": 2 }, + "a": { "a": 0, "k": [29.197, -30.551, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "ef": [ + { + "ty": 5, + "nm": "Directional Blur", + "np": 4, + "mn": "ADBE Motion Blur", + "ix": 1, + "en": 1, + "ef": [ + { "ty": 0, "nm": "Direction", "mn": "ADBE Motion Blur-0001", "ix": 1, "v": { "a": 0, "k": 0, "ix": 1 } }, + { "ty": 0, "nm": "Blur Length", "mn": "ADBE Motion Blur-0002", "ix": 2, "v": { "a": 0, "k": 0, "ix": 2 } } + ] + } + ], + "t": { + "d": { + "k": [{ "s": { "s": 96, "f": "WorkSans-Regular", "t": "+", "j": 0, "tr": 0, "lh": 115.2, "ls": 0, "fc": [0.604, 0.322, 1] }, "t": 0 }] + }, + "p": {}, + "m": { "g": 1, "a": { "a": 0, "k": [0, 0], "ix": 2 } }, + "a": [] + }, + "ip": 0, + "op": 301, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 2, + "ty": 4, + "nm": "Shape Layer 4", + "td": 1, + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [377, 98, 0], "ix": 2 }, + "a": { "a": 0, "k": [-211.151, -37.036, 0], "ix": 1 }, + "s": { "a": 0, "k": [100.402, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "rc", + "d": 1, + "s": { "a": 0, "k": [83, 160], "ix": 2 }, + "p": { "a": 0, "k": [0, 0], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 4 }, + "nm": "Rectangle Path 1", + "mn": "ADBE Vector Shape - Rect", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.203922002456, 0.203922002456, 0.215685990277, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-211.674, -39.036], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [126.032, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Rectangle 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 301, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 3, + "ty": 5, + "nm": "0000", + "tt": 1, + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { + "a": 1, + "k": [ + { "i": { "x": 0.667, "y": 1 }, "o": { "x": 0.333, "y": 0 }, "t": 15, "s": [377, 98, 0], "to": [0, -319.917, 0], "ti": [0, 319.917, 0] }, + { "t": 75, "s": [377, -1821.5, 0] } + ], + "ix": 2 + }, + "a": { "a": 0, "k": [-7.372, 41.613, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "ef": [ + { + "ty": 5, + "nm": "Directional Blur", + "np": 4, + "mn": "ADBE Motion Blur", + "ix": 1, + "en": 1, + "ef": [ + { "ty": 0, "nm": "Direction", "mn": "ADBE Motion Blur-0001", "ix": 1, "v": { "a": 0, "k": 0, "ix": 1 } }, + { + "ty": 0, + "nm": "Blur Length", + "mn": "ADBE Motion Blur-0002", + "ix": 2, + "v": { + "a": 1, + "k": [ + { "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 15, "s": [0] }, + { "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 25, "s": [20] }, + { "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 45, "s": [40] }, + { "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 65, "s": [20] }, + { "t": 75, "s": [0] } + ], + "ix": 2 + } + } + ] + } + ], + "t": { + "d": { + "k": [ + { + "s": { + "sz": [107, 2049.75], + "ps": [-61.25, -28.375], + "s": 176, + "f": "WorkSans-Light", + "t": "0\r1\r2\r3\r4\r5\r6\r7\r8\r9\r0", + "j": 2, + "tr": 0, + "lh": 192, + "ls": 0, + "fc": [0.796, 0.306, 1] + }, + "t": 0 + } + ] + }, + "p": {}, + "m": { "g": 1, "a": { "a": 0, "k": [0, 0], "ix": 2 } }, + "a": [] + }, + "ip": 0, + "op": 301, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 4, + "ty": 4, + "nm": "Shape Layer 3", + "td": 1, + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [270, 98, 0], "ix": 2 }, + "a": { "a": 0, "k": [-211.151, -37.036, 0], "ix": 1 }, + "s": { "a": 0, "k": [100.402, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "rc", + "d": 1, + "s": { "a": 0, "k": [83, 160], "ix": 2 }, + "p": { "a": 0, "k": [0, 0], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 4 }, + "nm": "Rectangle Path 1", + "mn": "ADBE Vector Shape - Rect", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.203922002456, 0.203922002456, 0.215685990277, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-211.674, -39.036], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [126.032, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Rectangle 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 301, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 5, + "ty": 5, + "nm": "000", + "tt": 1, + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { + "a": 1, + "k": [ + { "i": { "x": 0.667, "y": 1 }, "o": { "x": 0.333, "y": 0 }, "t": 10, "s": [270, 98, 0], "to": [0, -319.917, 0], "ti": [0, 319.917, 0] }, + { "t": 70, "s": [270, -1821.5, 0] } + ], + "ix": 2 + }, + "a": { "a": 0, "k": [-7.372, 41.613, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "ef": [ + { + "ty": 5, + "nm": "Directional Blur", + "np": 4, + "mn": "ADBE Motion Blur", + "ix": 1, + "en": 1, + "ef": [ + { "ty": 0, "nm": "Direction", "mn": "ADBE Motion Blur-0001", "ix": 1, "v": { "a": 0, "k": 0, "ix": 1 } }, + { + "ty": 0, + "nm": "Blur Length", + "mn": "ADBE Motion Blur-0002", + "ix": 2, + "v": { + "a": 1, + "k": [ + { "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 10, "s": [0] }, + { "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 20, "s": [20] }, + { "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 40, "s": [40] }, + { "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 60, "s": [20] }, + { "t": 70, "s": [0] } + ], + "ix": 2 + } + } + ] + } + ], + "t": { + "d": { + "k": [ + { + "s": { + "sz": [107, 2053.75], + "ps": [-61.25, -28.375], + "s": 176, + "f": "WorkSans-Light", + "t": "0\r1\r2\r3\r4\r5\r6\r7\r8\r9\r0", + "j": 2, + "tr": 0, + "lh": 192, + "ls": 0, + "fc": [0.941, 0.239, 0.808] + }, + "t": 0 + } + ] + }, + "p": {}, + "m": { "g": 1, "a": { "a": 0, "k": [0, 0], "ix": 2 } }, + "a": [] + }, + "ip": 0, + "op": 301, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 6, + "ty": 4, + "nm": "Shape Layer 2", + "td": 1, + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [163, 98, 0], "ix": 2 }, + "a": { "a": 0, "k": [-211.151, -37.036, 0], "ix": 1 }, + "s": { "a": 0, "k": [100.402, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "rc", + "d": 1, + "s": { "a": 0, "k": [83, 160], "ix": 2 }, + "p": { "a": 0, "k": [0, 0], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 4 }, + "nm": "Rectangle Path 1", + "mn": "ADBE Vector Shape - Rect", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.203922002456, 0.203922002456, 0.215685990277, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-211.674, -39.036], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [126.032, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Rectangle 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 301, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 7, + "ty": 5, + "nm": "00", + "tt": 1, + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { + "a": 1, + "k": [ + { "i": { "x": 0.667, "y": 1 }, "o": { "x": 0.333, "y": 0 }, "t": 5, "s": [163, 98, 0], "to": [0, -479.917, 0], "ti": [0, 479.917, 0] }, + { "t": 65, "s": [163, -2781.5, 0] } + ], + "ix": 2 + }, + "a": { "a": 0, "k": [-7.372, 41.613, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "ef": [ + { + "ty": 5, + "nm": "Directional Blur", + "np": 4, + "mn": "ADBE Motion Blur", + "ix": 1, + "en": 1, + "ef": [ + { "ty": 0, "nm": "Direction", "mn": "ADBE Motion Blur-0001", "ix": 1, "v": { "a": 0, "k": 0, "ix": 1 } }, + { + "ty": 0, + "nm": "Blur Length", + "mn": "ADBE Motion Blur-0002", + "ix": 2, + "v": { + "a": 1, + "k": [ + { "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 5, "s": [0] }, + { "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 15, "s": [20] }, + { "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 35, "s": [40] }, + { "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 55, "s": [20] }, + { "t": 65, "s": [0] } + ], + "ix": 2 + } + } + ] + } + ], + "t": { + "d": { + "k": [ + { + "s": { + "sz": [107, 3013.75], + "ps": [-61.25, -28.375], + "s": 176, + "f": "WorkSans-Light", + "t": "0\r1\r2\r3\r4\r5\r6\r7\r8\r9\r0\r1\r2\r3\r4\r5", + "j": 2, + "tr": 0, + "lh": 192, + "ls": 0, + "fc": [1, 0.416, 0.431] + }, + "t": 0 + } + ] + }, + "p": {}, + "m": { "g": 1, "a": { "a": 0, "k": [0, 0], "ix": 2 } }, + "a": [] + }, + "ip": 0, + "op": 301, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 8, + "ty": 4, + "nm": "Shape Layer 1", + "td": 1, + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [56, 98, 0], "ix": 2 }, + "a": { "a": 0, "k": [-211.151, -37.036, 0], "ix": 1 }, + "s": { "a": 0, "k": [100.402, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "rc", + "d": 1, + "s": { "a": 0, "k": [83, 160], "ix": 2 }, + "p": { "a": 0, "k": [0, 0], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 4 }, + "nm": "Rectangle Path 1", + "mn": "ADBE Vector Shape - Rect", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.203922002456, 0.203922002456, 0.215685990277, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-211.674, -39.036], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [126.032, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Rectangle 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 301, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 9, + "ty": 5, + "nm": "0", + "tt": 1, + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { + "a": 1, + "k": [ + { "i": { "x": 0.667, "y": 1 }, "o": { "x": 0.333, "y": 0 }, "t": 0, "s": [56, 98, 0], "to": [0, -352, 0], "ti": [0, 352, 0] }, + { "t": 60, "s": [56, -2014, 0] } + ], + "ix": 2 + }, + "a": { "a": 0, "k": [-7.372, 41.613, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "ef": [ + { + "ty": 5, + "nm": "Directional Blur", + "np": 4, + "mn": "ADBE Motion Blur", + "ix": 1, + "en": 1, + "ef": [ + { "ty": 0, "nm": "Direction", "mn": "ADBE Motion Blur-0001", "ix": 1, "v": { "a": 0, "k": 0, "ix": 1 } }, + { + "ty": 0, + "nm": "Blur Length", + "mn": "ADBE Motion Blur-0002", + "ix": 2, + "v": { + "a": 1, + "k": [ + { "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 0, "s": [0] }, + { "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 10, "s": [20] }, + { "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 30, "s": [40] }, + { "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 50, "s": [20] }, + { "t": 60, "s": [0] } + ], + "ix": 2 + } + } + ] + } + ], + "t": { + "d": { + "k": [ + { + "s": { + "sz": [107, 2245.75], + "ps": [-61.25, -28.375], + "s": 176, + "f": "WorkSans-Light", + "t": "0\r1\r2\r3\r4\r5\r6\r7\r8\r9\r0\r1", + "j": 1, + "tr": 0, + "lh": 192, + "ls": 0, + "fc": [1, 0.671, 0.247] + }, + "t": 0 + } + ] + }, + "p": {}, + "m": { "g": 1, "a": { "a": 0, "k": [0, 0], "ix": 2 } }, + "a": [] + }, + "ip": 0, + "op": 301, + "st": 0, + "bm": 0 + } + ], + "markers": [], + "chars": [ + { + "ch": "0", + "size": 176, + "style": "Light", + "w": 60.7, + "data": { + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [-15.71, 0], + [0, 22.156], + [15.61, 0], + [0, -22.156] + ], + "o": [ + [15.61, 0], + [0, -22.156], + [-15.71, 0], + [0, 22.156] + ], + "v": [ + [30.615, 1.007], + [54.785, -33.234], + [30.615, -67.474], + [6.345, -33.234] + ], + "c": true + }, + "ix": 2 + }, + "nm": "0", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ind": 1, + "ty": "sh", + "ix": 2, + "ks": { + "a": 0, + "k": { + "i": [ + [12.286, 0], + [0, 19.235], + [-12.387, 0], + [0, -19.235] + ], + "o": [ + [-12.387, 0], + [0, -19.235], + [12.286, 0], + [0, 19.235] + ], + "v": [ + [30.615, -3.525], + [11.481, -33.234], + [30.615, -62.943], + [49.649, -33.234] + ], + "c": true + }, + "ix": 2 + }, + "nm": "0", + "mn": "ADBE Vector Shape - Group", + "hd": false + } + ], + "nm": "0", + "np": 5, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ] + }, + "fFamily": "Work Sans" + }, + { "ch": "\r", "size": 176, "style": "Light", "w": 0, "fFamily": "Work Sans" }, + { + "ch": "1", + "size": 176, + "style": "Light", + "w": 36.5, + "data": { + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [0, 0], + [5.841, -1.511], + [0, 0], + [-4.431, 5.237], + [0, -2.82], + [0, 0], + [0, 0], + [0, 0] + ], + "o": [ + [-3.525, 6.042], + [0, 0], + [6.546, -1.712], + [-0.101, 3.223], + [0, 0], + [0, 0], + [0, 0], + [0, 0] + ], + "v": [ + [22.458, -66.467], + [3.323, -53.174], + [4.633, -48.642], + [22.156, -59.518], + [21.954, -50.354], + [21.954, 0], + [26.99, 0], + [26.99, -66.467] + ], + "c": true + }, + "ix": 2 + }, + "nm": "1", + "mn": "ADBE Vector Shape - Group", + "hd": false + } + ], + "nm": "1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ] + }, + "fFamily": "Work Sans" + }, + { + "ch": "2", + "size": 176, + "style": "Light", + "w": 56, + "data": { + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 13.495], + [13.193, 0], + [1.208, -12.085], + [0, 0], + [-10.474, 0], + [0, -9.467], + [25.278, -19.739] + ], + "o": [ + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [23.767, -17.825], + [0, -12.286], + [-13.092, 0], + [0, 0], + [0.806, -10.977], + [10.071, 0], + [0, 12.891], + [0, 0] + ], + "v": [ + [6.546, 0], + [50.958, 0], + [50.958, -4.633], + [20.544, -4.633], + [13.898, -4.532], + [13.898, -4.633], + [48.843, -47.232], + [27.393, -67.474], + [5.035, -47.232], + [9.467, -44.714], + [27.292, -62.842], + [43.607, -47.232], + [6.546, -4.129] + ], + "c": true + }, + "ix": 2 + }, + "nm": "2", + "mn": "ADBE Vector Shape - Group", + "hd": false + } + ], + "nm": "2", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ] + }, + "fFamily": "Work Sans" + }, + { + "ch": "3", + "size": 176, + "style": "Light", + "w": 55.4, + "data": { + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [12.79, 0], + [3.122, -8.56], + [0, 0], + [-8.359, 0], + [0.101, -8.762], + [9.467, 0], + [0, 0], + [0, 0], + [0, 0], + [-0.101, -8.459], + [9.869, 0], + [2.115, 8.157], + [0, 0], + [-11.783, 0], + [0, 10.977], + [8.661, 0.302], + [0, 0], + [0, 8.862] + ], + "o": [ + [-9.769, 0], + [0, 0], + [2.014, -7.05], + [9.366, 0], + [0, 8.057], + [0, 0], + [0, 0], + [0, 0], + [10.574, 0], + [0.101, 8.661], + [-10.776, 0], + [0, 0], + [3.122, 9.869], + [12.79, 0], + [0, -8.762], + [0, 0], + [7.452, -0.705], + [0, -9.97] + ], + "v": [ + [27.695, -67.474], + [7.15, -53.577], + [11.884, -51.26], + [27.695, -62.842], + [42.398, -49.146], + [27.896, -35.852], + [24.17, -35.852], + [24.17, -31.219], + [27.896, -31.219], + [44.009, -18.127], + [27.594, -3.625], + [9.467, -17.12], + [4.834, -14.603], + [27.292, 1.007], + [49.246, -17.523], + [34.946, -33.536], + [34.946, -33.636], + [47.635, -50.153] + ], + "c": true + }, + "ix": 2 + }, + "nm": "3", + "mn": "ADBE Vector Shape - Group", + "hd": false + } + ], + "nm": "3", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ] + }, + "fFamily": "Work Sans" + }, + { + "ch": "4", + "size": 176, + "style": "Light", + "w": 58.2, + "data": { + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0] + ], + "o": [ + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0] + ], + "v": [ + [54.987, -23.264], + [42.197, -23.264], + [42.197, -66.467], + [35.751, -66.467], + [4.129, -22.76], + [4.129, -18.933], + [37.161, -18.933], + [37.161, 0], + [42.197, 0], + [42.197, -18.933], + [54.987, -18.933] + ], + "c": true + }, + "ix": 2 + }, + "nm": "4", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ind": 1, + "ty": "sh", + "ix": 2, + "ks": { + "a": 0, + "k": { + "i": [ + [0, 0], + [-1.511, 2.719], + [0, 0], + [0, 0], + [0, 0], + [0, 0] + ], + "o": [ + [1.712, -2.518], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0] + ], + "v": [ + [31.622, -53.476], + [37.161, -62.238], + [37.363, -62.238], + [37.161, -53.677], + [37.161, -23.264], + [9.567, -23.264] + ], + "c": true + }, + "ix": 2 + }, + "nm": "4", + "mn": "ADBE Vector Shape - Group", + "hd": false + } + ], + "nm": "4", + "np": 5, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ] + }, + "fFamily": "Work Sans" + }, + { + "ch": "5", + "size": 176, + "style": "Light", + "w": 56, + "data": { + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [12.488, 0], + [3.223, -3.726], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [-8.56, 0], + [-0.101, -10.272], + [10.272, 0], + [1.913, 8.661], + [0, 0], + [-11.984, 0], + [0, 12.991] + ], + "o": [ + [-8.56, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [3.122, -4.33], + [9.97, 0], + [0, 9.97], + [-10.373, 0], + [0, 0], + [3.122, 10.675], + [13.394, 0], + [0, -12.589] + ], + "v": [ + [29.81, -41.492], + [12.689, -34.744], + [12.589, -34.744], + [12.79, -36.053], + [15.408, -61.835], + [47.937, -61.835], + [47.937, -66.467], + [11.179, -66.467], + [7.553, -29.407], + [11.984, -29.407], + [29.105, -36.859], + [45.52, -20.242], + [28.5, -3.625], + [10.574, -17.02], + [5.74, -14.603], + [28.702, 1.007], + [50.757, -20.444] + ], + "c": true + }, + "ix": 2 + }, + "nm": "5", + "mn": "ADBE Vector Shape - Group", + "hd": false + } + ], + "nm": "5", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ] + }, + "fFamily": "Work Sans" + }, + { + "ch": "6", + "size": 176, + "style": "Light", + "w": 58.1, + "data": { + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [10.172, 0], + [0, -22.559], + [-16.013, 0], + [0, 12.79], + [13.293, 0], + [0.906, -10.373], + [0, 0], + [0, 2.014], + [-13.898, 0], + [-1.913, -6.244], + [0, 0] + ], + "o": [ + [-14.502, 0], + [0, 21.048], + [13.394, 0], + [0, -12.79], + [-8.762, 0], + [0, 0], + [-0.302, -2.417], + [0, -16.315], + [8.359, 0], + [0, 0], + [-3.223, -8.459] + ], + "v": [ + [31.924, -67.474], + [6.445, -33.234], + [30.817, 1.007], + [52.771, -19.94], + [31.219, -40.988], + [11.884, -25.076], + [11.581, -25.076], + [11.078, -31.824], + [31.622, -62.842], + [46.628, -52.167], + [51.26, -54.382] + ], + "c": true + }, + "ix": 2 + }, + "nm": "6", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ind": 1, + "ty": "sh", + "ix": 2, + "ks": { + "a": 0, + "k": { + "i": [ + [-10.071, 0], + [0, -9.668], + [10.474, 0], + [0, 9.567] + ], + "o": [ + [10.272, 0], + [0, 10.071], + [-9.869, 0], + [0, -8.56] + ], + "v": [ + [30.917, -36.255], + [47.534, -20.142], + [30.716, -3.726], + [14.2, -20.142] + ], + "c": true + }, + "ix": 2 + }, + "nm": "6", + "mn": "ADBE Vector Shape - Group", + "hd": false + } + ], + "nm": "6", + "np": 5, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ] + }, + "fFamily": "Work Sans" + }, + { + "ch": "7", + "size": 176, + "style": "Light", + "w": 53, + "data": { + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [0, 0], + [0, 0], + [0, 0], + [1.007, -23.264], + [0, 0], + [-16.516, 17.523], + [0, 0] + ], + "o": [ + [0, 0], + [0, 0], + [-16.214, 17.422], + [0, 0], + [1.007, -24.472], + [0, 0], + [0, 0] + ], + "v": [ + [3.223, -66.467], + [3.223, -61.835], + [45.621, -61.835], + [20.544, 0], + [25.781, 0], + [51.059, -61.835], + [51.059, -66.467] + ], + "c": true + }, + "ix": 2 + }, + "nm": "7", + "mn": "ADBE Vector Shape - Group", + "hd": false + } + ], + "nm": "7", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ] + }, + "fFamily": "Work Sans" + }, + { + "ch": "8", + "size": 176, + "style": "Light", + "w": 59.1, + "data": { + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [12.488, 0], + [0, -10.272], + [-7.352, -2.216], + [0, 0], + [0, -8.661], + [-13.898, 0], + [0, 11.179], + [8.963, 2.316], + [0, 0], + [0, 7.654] + ], + "o": [ + [-12.488, 0], + [0, 7.654], + [0, 0], + [-8.963, 2.316], + [0, 11.179], + [14.099, 0], + [0, -8.661], + [0, 0], + [7.352, -2.216], + [0, -10.272] + ], + "v": [ + [29.709, -67.374], + [9.164, -50.555], + [20.947, -35.046], + [20.947, -34.946], + [6.244, -17.523], + [29.709, 1.007], + [53.275, -17.523], + [38.571, -34.946], + [38.571, -35.046], + [50.354, -50.555] + ], + "c": true + }, + "ix": 2 + }, + "nm": "8", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ind": 1, + "ty": "sh", + "ix": 2, + "ks": { + "a": 0, + "k": { + "i": [ + [-9.366, 0], + [0, -7.855], + [9.265, 0], + [0, 7.755] + ], + "o": [ + [9.366, 0], + [0, 7.755], + [-9.265, 0], + [0, -7.855] + ], + "v": [ + [29.709, -62.741], + [45.117, -50.052], + [29.709, -37.262], + [14.401, -50.052] + ], + "c": true + }, + "ix": 2 + }, + "nm": "8", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ind": 2, + "ty": "sh", + "ix": 3, + "ks": { + "a": 0, + "k": { + "i": [ + [11.078, 0], + [0, 8.56], + [-10.876, 0], + [0, -8.762] + ], + "o": [ + [-10.977, 0], + [0, -8.762], + [10.977, 0], + [0, 8.56] + ], + "v": [ + [29.709, -3.625], + [11.481, -17.926], + [29.709, -32.529], + [48.038, -17.926] + ], + "c": true + }, + "ix": 2 + }, + "nm": "8", + "mn": "ADBE Vector Shape - Group", + "hd": false + } + ], + "nm": "8", + "np": 6, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ] + }, + "fFamily": "Work Sans" + }, + { + "ch": "9", + "size": 176, + "style": "Light", + "w": 59.6, + "data": { + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [16.013, 0], + [0, -12.79], + [-13.193, 0], + [-0.806, 11.279], + [0, 0], + [0, -2.417], + [15.207, 0], + [1.813, 7.452], + [0, 0], + [-11.682, 0], + [0, 22.559] + ], + "o": [ + [-13.596, 0], + [0, 12.891], + [8.862, 0], + [0, 0], + [0.302, 2.216], + [0, 17.02], + [-10.474, 0], + [0, 0], + [2.921, 9.164], + [15.207, 0], + [0, -20.947] + ], + "v": [ + [28.702, -67.474], + [6.445, -46.527], + [28.198, -25.479], + [47.937, -41.794], + [48.239, -41.794], + [48.843, -34.845], + [28.702, -3.625], + [11.682, -16.214], + [6.647, -13.596], + [28.802, 1.007], + [53.375, -33.234] + ], + "c": true + }, + "ix": 2 + }, + "nm": "9", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ind": 1, + "ty": "sh", + "ix": 2, + "ks": { + "a": 0, + "k": { + "i": [ + [-10.675, 0], + [0, -9.567], + [10.071, 0], + [0, 9.769] + ], + "o": [ + [9.97, 0], + [0, 8.56], + [-10.474, 0], + [0, -10.071] + ], + "v": [ + [28.802, -62.741], + [45.621, -46.326], + [28.601, -30.212], + [11.682, -46.326] + ], + "c": true + }, + "ix": 2 + }, + "nm": "9", + "mn": "ADBE Vector Shape - Group", + "hd": false + } + ], + "nm": "9", + "np": 5, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ] + }, + "fFamily": "Work Sans" + }, + { + "ch": "+", + "size": 96, + "style": "Regular", + "w": 60.4, + "data": { + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0] + ], + "o": [ + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0] + ], + "v": [ + [54.886, -35.651], + [34.241, -35.651], + [34.241, -56.799], + [26.688, -56.799], + [26.688, -35.651], + [5.942, -35.651], + [5.942, -28.098], + [26.688, -28.098], + [26.688, -6.848], + [34.241, -6.848], + [34.241, -28.098], + [54.886, -28.098] + ], + "c": true + }, + "ix": 2 + }, + "nm": "+", + "mn": "ADBE Vector Shape - Group", + "hd": false + } + ], + "nm": "+", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ] + }, + "fFamily": "Work Sans" + } + ] +} diff --git a/static/js/expandcode.js b/static/js/expandcode.js index ceaa8eb9ef..e5307b5cbb 100644 --- a/static/js/expandcode.js +++ b/static/js/expandcode.js @@ -1,59 +1,63 @@ -const tExpand='<i class="fa fa-expand"></i><span class="sr-only">Expand</span>' -const tCollapse='<i class="fa fa-compress"></i><span class="sr-only">Shrink</span>' +const tExpand = '<i class="fa fa-expand"></i><span class="sr-only">Expand</span>' +const tCollapse = '<i class="fa fa-compress"></i><span class="sr-only">Shrink</span>' function toggle_cs(eo) { - const wrapper = $(eo.target).closest(".code_sample"); - const code_el = wrapper.find("code"); - code_el.toggleClass('expanded'); - const placeholders = wrapper.find(".code-placeholder"); - if (placeholders.length) { - // collapsing - placeholders.remove(); - // This caused jumping around when code was closed. - // $(window).scrollTop(code_el.offset().top - 124) - } else { - code_el.after("<div class='code-placeholder' style='width:" - + code_el.outerWidth() - + "px; height:" - + (code_el.outerHeight() - 20) // added 20 to cover bottom scrollbar - + "px;'> </div>"); - } - current_button_expanded = code_el.hasClass('expanded'); - $(wrapper.find(".code_toggler")).html(current_button_expanded ? tCollapse : tExpand); + const wrapper = $(eo.target).closest('.code_sample') + const code_el = wrapper.find('code') + code_el.toggleClass('expanded') + const placeholders = wrapper.find('.code-placeholder') + if (placeholders.length) { + // collapsing + placeholders.remove() + // This caused jumping around when code was closed. + // $(window).scrollTop(code_el.offset().top - 124) + } else { + code_el.after( + "<div class='code-placeholder' style='width:" + + code_el.outerWidth() + + 'px; height:' + + (code_el.outerHeight() - 20) + // added 20 to cover bottom scrollbar + "px;'> </div>", + ) + } + current_button_expanded = code_el.hasClass('expanded') + $(wrapper.find('.code_toggler')).html(current_button_expanded ? tCollapse : tExpand) } function has_scrollbars(e) { - if ($(e).parents(".multicode").length > 0) { + if ($(e).parents('.multicode').length > 0) { //TODO: figure out if we can detect scrollbars on non-default tabs of // multicode samples. For now, always consider multi-code sections to need // scrollbars. - return true; + return true } - return (e.scrollHeight > e.clientHeight) || (e.scrollWidth > e.clientWidth); + return e.scrollHeight > e.clientHeight || e.scrollWidth > e.clientWidth } function make_code_expandable() { - var newid = 0; - $(".content > pre > code").parent().wrap(function() { - newid = newid+1; - return "<div class='code_sample' id='code_autoid_"+newid+"'>"; - }); + var newid = 0 + $('.content > pre > code') + .parent() + .wrap(function () { + newid = newid + 1 + return "<div class='code_sample' id='code_autoid_" + newid + "'>" + }) - // Multi code blocks - var code_samples = $('.code_sample'); - code_samples.find("code").each(function() { - let jqThis = $(this); - if (has_scrollbars(this)) { - jqThis.dblclick(toggle_cs); - jqThis.attr('title', 'Double-click to expand/collapse'); - var newbtn = $(`<button class='code_toggler btn btn-outline-secondary'>${tExpand}</button>`); - newbtn.appendTo(jqThis.parents(".codehilite").children(".btn-group")); - } - }); + // Multi code blocks + var code_samples = $('.code_sample') + code_samples.find('code').each(function () { + let jqThis = $(this) + if (has_scrollbars(this)) { + jqThis.dblclick(toggle_cs) + jqThis.attr('title', 'Double-click to expand/collapse') + var newbtn = $(`<button class='code_toggler btn btn-outline-secondary'>${tExpand}</button>`) + newbtn.appendTo(jqThis.parents('.codehilite').children('.btn-group')) + } + }) - $(".code_toggler").click(toggle_cs); + $('.code_toggler').click(toggle_cs) - /* fix expand/collapse and tab click hierarchy */ - code_samples.css("position","relative"); - $(".multicode .code_sample").css("position","static"); + /* fix expand/collapse and tab click hierarchy */ + code_samples.css('position', 'relative') + $('.multicode .code_sample').css('position', 'static') } diff --git a/static/js/faucet.js b/static/js/faucet.js index a7213e391f..5b8dd9bd31 100644 --- a/static/js/faucet.js +++ b/static/js/faucet.js @@ -1,34 +1,26 @@ async function wait_for_seq(network_url, address) { const api = new xrpl.Client(network_url) await api.connect() - let response; + let response while (true) { try { response = await api.request({ - command: "account_info", + command: 'account_info', account: address, - ledger_index: "validated" + ledger_index: 'validated', }) break - } catch(e) { - await new Promise(resolve => setTimeout(resolve, 1000)) + } catch (e) { + await new Promise((resolve) => setTimeout(resolve, 1000)) } } console.log(response) - $("#sequence").html('<h3>Sequence Number</h3> '+response.result.account_data.Sequence) - $("#balance").html( - "<h3>Balance</h3> " + - (Number(response.result.account_data.Balance) * 0.000001).toLocaleString( - "en" - ) + - " XRP" - ) + $('#sequence').html('<h3>Sequence Number</h3> ' + response.result.account_data.Sequence) + $('#balance').html('<h3>Balance</h3> ' + (Number(response.result.account_data.Balance) * 0.000001).toLocaleString('en') + ' XRP') api.disconnect() } - function TestNetCredentials(url, altnet_name, ws_url) { - const credentials = $('#your-credentials') const address = $('#address') const secret = $('#secret') @@ -45,49 +37,57 @@ function TestNetCredentials(url, altnet_name, ws_url) { loader.css('display', 'inline') // generate the test wallet - const test_wallet = xrpl.Wallet.generate(); + const test_wallet = xrpl.Wallet.generate() //call the alt-net and get key generations $.ajax({ url: url, type: 'POST', - contentType: "application/json; charset=utf-8", + contentType: 'application/json; charset=utf-8', data: JSON.stringify({ destination: test_wallet.address, memos: [ { - data: "xrpl.org-faucet", + data: 'xrpl.org-faucet', }, ], }), - success: function(data) { + success: function (data) { //hide the loader and show results - loader.hide(); - credentials.hide().html('<h2>Your '+altnet_name+' Credentials</h2>').fadeIn('fast') - address.hide().html('<h3>Address</h3> ' + - test_wallet.address).fadeIn('fast') - secret.hide().html('<h3>Secret</h3> ' + - test_wallet.seed).fadeIn('fast') - // TODO: currently the faucet api doesn't return balance unless the account is generated server side, need to make upates when faucet repo is updated. - balance.hide().html('<h3>Balance</h3> ' + - Number(data.amount).toLocaleString('en') + ' XRP').fadeIn('fast') + loader.hide() + credentials + .hide() + .html('<h2>Your ' + altnet_name + ' Credentials</h2>') + .fadeIn('fast') + address + .hide() + .html('<h3>Address</h3> ' + test_wallet.address) + .fadeIn('fast') + secret + .hide() + .html('<h3>Secret</h3> ' + test_wallet.seed) + .fadeIn('fast') + // TODO: currently the faucet api doesn't return balance unless the account is generated server side, need to make upates when faucet repo is updated. + balance + .hide() + .html('<h3>Balance</h3> ' + Number(data.amount).toLocaleString('en') + ' XRP') + .fadeIn('fast') sequence.html('<h3>Sequence</h3> <img class="throbber" src="assets/img/xrp-loader-96.png"> Waiting...').fadeIn('fast') wait_for_seq(ws_url, test_wallet.address) - }, - error: function() { - loader.hide(); - alert("There was an error with the "+altnet_name+" faucet. Please try again."); - } + error: function () { + loader.hide() + alert('There was an error with the ' + altnet_name + ' faucet. Please try again.') + }, }) } -$(document).ready(function() { - $('#generate-creds-button').click( (evt) => { +$(document).ready(function () { + $('#generate-creds-button').click((evt) => { const checked_network = $("input[name='faucet-selector']:checked") const url = checked_network.val() - const net_name = checked_network.data("shortname") - const ws_url = checked_network.data("wsurl") + const net_name = checked_network.data('shortname') + const ws_url = checked_network.data('wsurl') TestNetCredentials(url, net_name, ws_url) - }); + }) }) diff --git a/static/js/fixsidebarscroll.js b/static/js/fixsidebarscroll.js index 19e1ad0cbd..e0abea1640 100644 --- a/static/js/fixsidebarscroll.js +++ b/static/js/fixsidebarscroll.js @@ -1,9 +1,9 @@ -$(window).scroll(function() { - var footerpos = parseInt($("footer").offset().top); - var scrollpos = $(window).scrollTop() + $(window).height(); - if(scrollpos - footerpos > 0) { - $("aside.sidebar .dev_nav_wrapper").css("bottom", (scrollpos-footerpos)+"px"); - } else { - $("aside.sidebar .dev_nav_wrapper").css("bottom", 0); - } -}); +$(window).scroll(function () { + var footerpos = parseInt($('footer').offset().top) + var scrollpos = $(window).scrollTop() + $(window).height() + if (scrollpos - footerpos > 0) { + $('aside.sidebar .dev_nav_wrapper').css('bottom', scrollpos - footerpos + 'px') + } else { + $('aside.sidebar .dev_nav_wrapper').css('bottom', 0) + } +}) diff --git a/static/js/impact/mapDark.json b/static/js/impact/mapDark.json index ef2344a85d..075a7a3bf8 100644 --- a/static/js/impact/mapDark.json +++ b/static/js/impact/mapDark.json @@ -1 +1,178312 @@ -{"v":"4.8.0","meta":{"g":"LottieFiles AE 3.2.2","a":"","k":"","d":"","tc":""},"fr":30,"ip":0,"op":420,"w":1832,"h":1000,"nm":"XRPL Animation","ddd":0,"assets":[{"id":"image_0","w":80,"h":81,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABRCAYAAABFTSEIAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAgAElEQVR4nO29eYzd2ZXf97nLb3n7q421cKsim+yFvZC9qKVeJPaM5cw4GEszxtjyxGO1AhgxgsTdCpIg/8TTjSBAECOQ2zYwRiYTSXAwtuEZz2Z5NPCMxVbG1mgk9d7shU1WkVVk7VWv3vZb77354/equposksVuSf4nB3io9+5vu/f7O+fcc8495xb8//SJSPyn7sBetLi4OL1X++Tk5NxPtye3p/9kAM7Ozja1Dk97nnrIOXfaOk4LKaadtU3n3C2uFC2wc0LIOWvM62DP5Xn+2szMTOun1vndvflpPmx+fvGs1vJzCHHWOXf2Zuc557g1iHuQ4Jwz9mUh3O8dOnTotU/Y1Tt47E+YZmdnm34YPoeTXxSC0zsPFtc92jkQYge43QDeMZgwpyQvAC//pMX+Jwbg/Pz8WSfUs1LILwhB83rABMCutu1vjr0Bs9Z+rH4I+IaUvPiTAvLHDuDi4uJ0ZtwLUogvb7dJKYuHbQO2m7sESAS7IbPO3dCxjwvgNv2kgPyxAbgtqs6K58E1t9ullDvctsNlDhwOnMNaS5pnGJOhlcL3QpAFpG5wrrUG5xxKSpwTwO1FWuxSB7tJCvFCmsYv/bgmnR8LgPPz82eF1F8Hpre5bTfJAee5wQfncDjeeX+Wb3/rj5i/fBklFLVqmUNHDnLoyEGCMEArzfp6m85WC5NbJg+Ocfz4DIePHEEp77a68QY9u90Oc86Zrxw+fPjcJxo4PwYAryxc+5qA54UQbH9ueMgu0d3WcRcuLfDrL/2fdLbWyHFoAVp5lCslpPTQSqG0RimJ7wdIKalUKmilmDo4wmOffoQDE5OI64ZwM9D2IoF84fDhyRc/yfg/NoCzi4vT2rjfhY/OrDcDcTddWVjipa/9OksLcyRpiu97lEs1fE8TBCFhGGDyHKk0WZrh+RqkwhpDGASMjgxTqoTc/9BJHn7kMa7n+jsB0cFrVstfnPmYuvFjAbiwsHDaIn4Xx/TOjQadvh5A59xOm7OWuflr/N+/8c+4fOkixuQEfoj2PXylQUkkAiEkQoKxDs/TWGsRzoEU2NwQ+AHS04yPjfDEkw9z+tEbQbwjEKSYM0o+83FAvGMAZxcWTisnvgM09zq+G0j4EMDcGN56+z3+6A//mIX5KyRxigPCICQ3BpdneIGHtY4kSwm8gDzPMc6AceTGoJTEWks5LJFbS71eIwg9zv7MZ3j6s5/F84I74r7rqGUNz8zM3JkRfkdPuxl4u5X5DoAUE8ZWu83C0jKXL1zm8uw875w/T55nOOuQQhCUQtIsI40iktygcCAkQggskOcxzgJSkmc5SkmyLEXgqFYbeJ6HVpJHHj3FL3/pr1Op1u9kSNfTHYO4bwD3Au9Ws6BzjnPf/T7f+7PvUfVCwkqJ2dnLRP0emcnJ0oTc5CRpAogdEXTWIKXGupzcWEyWFWaNcGjlk6YJCIGnfYw1SKUoBSG+7/HYo6f4lV/9FcqVnx6I+wJwdnZxWmn7KrfgvN3+q5SSi3OL/MY/+b/whGPy0EHm5i6RZjlplhL3I5IsGZxvybMcKRXgyPIMJRVZnqE9hZSaLM0pl8r4vk+aJRhjEELgaQ1As9nEZJYkz/jUI/fx5b/zX+L74X6GdjNqWaPOzMzcXifeVvPOzi5OK89+B2hug3S9s7/X7wvvzeHynAPj48xdvkzU6xFHPbpbbeI0RkpJksaY3GIdOCxJmiClJMtzhJRY4yh5IWHg0+21WFpZIkkttdoBjh9/kAcfeooHHnqaxvAMujSKkpI33/qAc3/87R3je/tjrcVae0P/d//d1d6UynxndnbvsNpu0rc7QWn3dWfdTW+0V2dy6/jg/Q+YmDrA4tIi3W6bbreD8hQGg3OQJDFCKKwzOJfT72dIrYmTmFKphKc9sjxlae0axhiG6k3+/t9/kcmpKaQE3/cQUmGtoVwOSVLHf//f/S+srl7kX/yrb3FlcZG//eVn0V5wQ39v931A00qZrwPP3AqfW3Lg/PzVX4Mbw057ceKHHXC0Wj22NlpcuHiBpeVr9KMenvZI4gwHpFmMdRZjUpI0IU4SjLUEXkCtWiOOI1bXltnY2CDNMpTSRHHE8JBHWNJYBCvLq/SjLlevrbK2toEUhief/AxRkrLVbfOnf/Ln/OHv/DbG5rcCac/2Ha517uzl+au/9rEAnJ1dnLbOvbDXQ28tBoL5K4tcnn+fzc1VkjzGOchMjtaKNIkxptCFeZ4VnZCSaqVOkkYsr1yj3+8WM7Wz4By5yciM4fVXX8HaHK0lUntstSLC0McPApI45fjJGYT0MDlkecIffOtPufTu2zd50bcn5xzO2hdmZ+fP3jGAUtnv3Oymt/ptjOUHP3iN5eVFoihCKV2YJMbQjzpkeVa8XZMjBASej1aazdYqnU4bISTGWoSQIIrZeTug8Oqrr2ANWGOQClbWV9na2mB1bZml1UU8P8U6h5KgtU9uJN/7Dz/4OPHEj45P2K/d7PieOnB+/uqvOZi+/rk3RIr3mEjy3PLOO+8RRz0q5RKVUo32VgdDPuC+wh9WUlEv19jqtYn6/R2wrLVIIXe+O0BrjzzPePWN87z0j/4BV68u0e60SeJkEIh1CKdAWKwFKxXa86iWK1y8uIDJYrRf+tgggjh9cfbyC8dnjr5w/ZEbOHAgus/u563taL3dQEpBnlkyk+L5Hlme4QWF8VtEYxyB71Gr1VhcW6bbbWOcGcyaBVgAwoHUCoAsS7HW0u50+f73/4Irly/T2tgg6veJ44ioH5GkfaIoIor7ZFlCv9/FYUBIOu2t24/lNuOVQjw3Ozt7g/d1A4BSmRfgQx939wP2E2bX0nHy3lM4q6iWqxiTk6QZArAWatUGXlBieWUZa/MdbtRaI2XhvwhRRAOtMcU5zmJtTm4ykqRPlkekWQFalkakaZ84Kb7neUwcdYmiLteW5lnbWGRtdW3P/roiMLlfEW9a5PPXN37EkJ6dXZyWysze8JDrALvZd2stQkC3m/Ebv/nbXLv4LpvtVfpRn9yk1Cp1ev0um60NrLUoqRCy6IKnPYRS5GmCA4w1WGMwNivui8NXilB7BFoSKA8pJVK6IvgAGAtJnrPa7ZI7RxAEVEs1nv3yX+cXfulv7CtSBLeM5rRwZmZ3MPYjZ16+vPANBF++/qqbzWJ7fS/+CkDyr3/3HN/+g98GZVBCsLnVotVa3+mgUqoAURQibqwBwcDozTDGIrGUfY/RapmpZoPheoWqHxZeihBgGXglEqUViXW8fXWFVy/MkllDuVzhwXvv5n/93/83PL+072DDzc6zzr24WxdeF0jjczdcMLDeb0U3WvMWIQbh+izGZAaTp3Q6LeRAXJ2zICA3eWGriQL3PM+wJsfmOUMlj+MHRqiWQvq5YaXXYzOK6KQRnoRGJWS0XmasXma4UsE4w9zaOgsbm2jPBwRpknB5/hqt9bU7Wle52Ziv14U7AM5eWXiW63Tfdijq4zy0uBZq1RphGLCysQqicNmyLLthCdNYS5omA/svY6xaZrReoxOn+J6HrxVb3T5vzl7lL96f5Y3Zy3R7HaQAJaDV6/LyW+9y/vJVQuCJe2cYqlUx1pCkCWma3HGo6yYgNg3qi9s/dswYBV/effrtFrf3OvbRhRxHpVKhVK7w/oW3BqCBcAKpJIjBat3ArTMmx9ocay3jtQoTjSoTjTrV0GerH7HU7mK0wpMKKUFYRxJFuKBEtTnEYrtPnFjiJCWKUrRSCFn0w1EY5Nv9+wQxwwKrQs19AwYcODu7OO3g7G7gbjpr7QLrdhQEHhsb65iB0TzgN7RS4MAYM5hVU3KTYY1FK8HR4Tp3T42gXcYPL87z8nuzvLu0wUpsWdjskqSGKLd0e33qtRqN0VFm1zusRhG6VEOFNVbbPcp+CedASUlQqnwssG7CRGe3xbjgQGXObp+83zd0M//xwwZBFPdpdTaQUpHnFoctDOTBuVmeDDivsAO1lPhScuTAEM7B5Y0uq/2YaqVK6PmMDQ0js4xGKNFSoTxNu9Nm4shh7jk0gYtjYptzeHKM0dFRLi2tsbS+xthwk0Zz+KZLnfsZ6/WYDMT4GxpAIb5gneWjM+mtAbu+/frOpcZy7jvfwZpsZ5IQTqCVxjpbcF2e7YSZBIJy4KGAqeYQKI/Aq3D4QBfrHFpKTGbItUe9FNCsV/GFwFmHiCNO33MPzkK312eoVuLwcIPx8Sleefs8jz9wAuXJnQlRSnlH4rzXOUryuR0AjTWndxZ+9uOB7OOcTjdmeXGpsNG23TRnsTjSPCE3GcaYgT0o0EIQeh41X3FgtEnohRw7OIUzlq1ORK/XR2iFxFEtlxBSkPQj0n6XjbVNjj9wlEcffJD25gbSOZojw7iwRCUIue/UfawsLlOp1SiVq4U+/AQreQUIfBH4ip5dWDgtjJu+E9beC+jrfwshqZTrdDvLKK2xxoBzZFlKmsYYY3DW4mmJJySBVqSZ4a6DowzXapRKIUFYQymfw9on6cVE/R5CQtTv0497GOtwUqGcI91qM3ZgAl9rlDAIrTFSMFyv09ncwtdFn5y1OCkxeY5Sit2Mc8s17RupOTu7OC3J7PTtALsdWNc/yDlHo+pz/OQ9aOXtLH475zAm29GXWglqvo+Skma5jLCWA7WQJIqIO316a+skm1tknT6+H1Kt1fGDEJMZon7MysY6cT8mjlI2l68hs5Tq0DDtzRbJ5hbECaPNOkePHkU4CSYvRFgppJQopT7S/ztRXQCG7KwEd/qThHtuRlLCZz/7GSrlBlJ8GBRIswRrDfWyz0i1gnOWsXqZLM9ohAqT5bQ7Hbr9HhmWJE2Jux2i1iZp1Cfu9uj3ulxdXKJRKjE1MU5Y9omTiKsfvMvG/EXmLl5gbWWRbmuTiva48u6ruLQPEpT+UKUUvvCdxwm3SeCmNUI+tJ9knTu6sSiCAvfeO02tOU63v0mS5oAl8BT1sISnPHpxzMGhGlIq1qKY0VoFJQVplhIEAVHUI0r6KC3x/RIW6MV93l+YZ7nVIUojXpm/wmqrT+gpxupVdOizsrbOQ4cPMykhzSLef/tt7n3oEQyWIKygVNHHwncXH7ER96KbibeU4qjenUl1s4v3S9sxvAGMlMqS+049wNb6HL1eG6UEJgcLlDxJs1yhoiXvLm5Q0pJASwa2NVEc0c0tNhMoJ/GCHkjJSqtFZC0zRw5yYWGRjW6CkdBOM6aH6oRBjXevLHJtaxMqIReXlpmserz63X/LiTNP4JerVBpjyEFy0n4DDLutjV2NpzV7hK52053aTrvPF85x9Mhh/jSKSZOE3CaUfZ+S79FPEmwuuRYl9FJDSWmkLIzePM+Ik6TwKLSHcAplFJ04Zn5tk0NjozTrVc7ccxfr7TadXh8hFFNT4zQaw/zF+XdpRRHJyhqLG1tIV+bdSwso7zUS45g6forG5DTa8+9ofDcCLZqam6RobNPtbn59B3andIBj/OAoSeYQwhF6PmXPwxlHyQ9odbuYvMhQiPIcKxy5sXSjmNwIktTgkhytPeJuyrXNLfzAw9MOrSH0ApwtEyLQXkB3s0vU7VErBwgM7y2vkhjHeifhvfkWoZ6j3hziYqfDRGeDqZNn0LvSQT6Gi3d7APcL2l6/hRAcm5lkaGiCfn+Z0A/wtEIKSE2GFgLtCzzPpx3FLLUjRisVhIyRQpEbg8GROkurH9GKE2wc04tiLixt4qzD80IOHT9JpVJBCMm//86fMFmXNCoVLl9ZITeGTgZ52/Dq3BJ33Z8xffQQs6+/hpCK8ZlT+GF538lJ14ly87brwh8HVGPMTnut4vP4U2f5w3/1Hp6ShJ6Pw2CMwPMsoa/pJgYtM5Y7KbVgC+cEvqdxAoxzeMoipCCzkuV2l+mpBqceehCtNJOHjzA1cxwpFdfmF7l/7j0qqs/l9T69KAEcQgo85ZHmkm99+xzPJIZ7P/0MS5evIcsjjI5PEJYqt+XAvSaTmwJ4p6K73bYzs/FhXvPf+pWfJ097/OjlPyDP+gxXy7T6Eb72KPsKkCSpRztOuNaOQEiGw4BS6GOdRfg+1XKJ+0olTqlDXLi6zndf/j4bvS5DjTqHJyfoZyA3N3n0/hni2LIat9FK4pwtPB5TGOzdxHFgdJj52SVMd4kTj36aXreH54eDOOVHJ4vdv/d06Z5//qsv7IXyx/ERd3Pgtr8JEAaa0w/dx/lX3mZh5Qqhpxiul5DCMtao4gvJVhQTZQOfGUFmDBJQusiBGapW0FJSDT3umhzlvoNHODE6xXi5zrhf4eTYBCcPH0IGjg+uLXFxeY2jR46xtrnJYNWAUilA6YBGo8RTP/cLXPhgnmpZUWkMAwLteTcd583wkMDczUDZD0tv/93+FG/bkGcZxuTkeU6aJPTa6wzVBY1yidV2jyhJECiW14tcGSUlnpL4WhPnOev9lCutLt00J81zsixDiWJNOM1i+uk6RrTRoofNWyTxMkZ1yazljSvLrG91adRCnHN4WqOUwtcK5Um2un2qtTrHTtzNyuIiUirSNLkhorQbuJtI5NwtdeCdmC/GmB3wsiwGY8izhLS3xdz753nnlR/S29xkvFEm0Jp2v481UPIlzXKJvNXFU5JASUqepp/mxLllfr1NMK6J85hyUKFUCsnSnDg3ZLklJ0NJCVZQEjVa/YT5tU20VqxutGCwxOBJibWGiufRrNZxzjI0Oka/dRUv8Ol1u8CHJRl75a3dqANdSwOvsUcoH25tA+5+W9vAJb02m0vzdDbW6W9t0N5cp7WywPzyBnPXVjGZYaRRo1EWrLe3SNKMONU0ygG1sAwkJHkxAXlKEmcZG72sCI56mppfplpyVJsNvMAD6ZEbC8bhBwGVaoX/8N6rGFNMOnNX5nHOkufgpERJTZ4lTB2aQmqfoFwiCMso7REEJdIkwQ8Ks0YMCi1upqYKjEVLO+e2biaq++VAm+esLlwiXl8ki1O6rTWyqEd7fY23379MJ0qoeIqZgyMcnTrCqxcvs7EVsuWgm+SsdiIePzHFtc0282tdNrsRJQ98LehngvVORDXwCLXGDzR+GFAPKpTLNZT0igV458iBy8srgMMah8EWERfAUrzwaqA5OHMCpRRB4JMbi7PFCxADvb1fu9BY87oWBQd+ZClzP9b5tr5zxrJ+dY58c5FyuULHWjbXVpj74ALzS2skaYbnKULlce/xGY7fdRwlDCurq2hVohRYWr0+V9c7HDtQ4/BQidcXWlxda1MJfBplRTtKuLrVIzeG2Ob0kowkTamUuwTaR+oil7BjYWFlHaVU0Tdn0dpDS4ECPAEPnDrJweP3ABCEIcoLEAKk9HDWfGR8twNQFDrQvgZq54L9ALc7stvv99lauowXVnjnlR8inaCz2SLLMg4M1YmThDQ3fPr+GUraMHfhPHkS8amTx3jjyiJ0elSHalxtddnodjk5OcR9U3UCrbmyssFQJaSXZGx0IuI0o9VPWev02dxqUwnLlAKfwNcIpfjz2UWyPAEHUooiXmgNntL4vmZ0uMKZJz6LX6qhtSZNU8qVCjjwPEWWmo9YIbcD0Vpe08Brtwrl7wYOCu7cjqNlWUYc9ehFKQvvvM30yQcpVxvMnf8R/d4Wy6sbeEow0awQSI0XNjGh4tCRUaYrw9ydh2z2DK+9+grnX/8urajL9y5c4+HpMU5M1sAaOlHEWDXk6mZGZh1bcYLTPu3+FhW/TTX00H7A/EaXD1Y2i6Cps4BADUA01qIFTA5VGRufwJrCPvU8j0pzeCeb9foo9fa4bwZiV/OanpmZaV2avfwauwpm9qLterfdNzV5TpYZ3n/nPcbHhzh04h7yNGNjdYl2t89QtUQcxwgRYMtjeMcfJyg3ihicc9SCEjXpceTEMSaPHOc73/6XdNpr/Nn7S9w90eDEwRGuLIFWgm6S46ylHHg8/z/8j/zWb/1r3jz/KrHJyHOHtQ6tiqwuBrrM1xIlNNYVornZS7g6ewFZGcYPQzzfpz48hh1I1X6YZxe9dmZmpqUBnLUvCylvCSDX2YfbHod1gNTUxyZJei2WPngXnXcYqpd484Or3HfiXh7+2S8wduQYUmny3FAEtCBPc8JSGWMNn/1LT3BkZpo//oPfZ2XhDZbabcqlLmONKr0oplHy6SUpx44f4di99xOE/wbjXAHeIJvEUQQsrLMYZwm15u6ZI8xeuYqnBJPjI4S1CS6df5NytU65WqPZrJMkCc7anUlkP2StfRkGrpyV/J6C5/Zz4bZucM4hlKRaqzEycYTu6hKbNqW7eJHNTsTq+hb3PvAIn//lv40XVvE9DxA7uc3OOlzZIITaMRlO3HOMg0f+a65cnOfNH/2At1//jzi7RSPQVEs+nTjlkccfZ2V1neXlhSIR3TmcG7xfV5g/iXEoIRiqVzhzcoaDY6O8/d67vP3uLEdn/pyD9zxJnvYRoo5SijAMd9ZotN7bNL5eJzrL7wEogH/80ktzzz3/1eeBfdUGfHiTogR1dGIK6zR5e4U86dPpdDl27C5On/0rSD+gVCojlUYKgedrvECzudlCaw8pC//TGotUglLJZ3xilHsePMXpx55iec0iknXiJGKx1SNJ+mytr3Hpg4tsRdGAo4tJw+EIfQ/hLMZBkiZ85qF7uOfEDHNXrjIxMsL3f/Aq6dpFDowO05ycQUi1o9flPjhwcHzuruPTX90BEODv/b3nJoUQn74TALezDfzAIyyXcLnDCo/JY3czPHMf9eFxPL/QNVJJ/MAjSXNam13Ckk+lUkFpgbPFvaQq3rIc1Mr5gc+p06fwKpPMX3qf9c4W62vrLFy5QjeOiJKc3Bi2M5MkgoMHhgk8H5vnxGnGgZE6999zNyrr0u1ucPzkQ7z37nscO3qQXmoZGhv/iN23HwAF4vdeeulrvw+7kousLFjyTkhKhedpoiii148JDxymMX0/1bFDNEcPoEshyvNwVqCUZnOjQxTF1OtlSmGIMRlJnJClKUmaEkUJWZYTJwlJnJLnRQLmPQ8/wNN/5VeZHBqlVgpRAoYrZRqlsMiBEQJRmMpstrc4cqDOoZEGJc/jz/7iDX70w/+Xe898Cq187rl3hiN3neLihQtU60O01lfZ9tv2G9rPc/PNHQy2v5yYmTkH4tztbrD7bTnnyLKcPBcI6dGLUnr9iKA+jPJKaOXj+QFhJeDK/CKep6hWSsVMKSBJMpI4I4riQXqHJY4T4rQwlJOkyKqyznLPmVOcevAJDjSqlAKP3BiGqwH1UolAKxwglaQb52xsbPDYqWkO1CtMjTRY3LQszr3LUz/zn/H6D77H2bNPMb+4iS8yMlMkhe47bxDmTpyY2cHpIxrTYr4pkWf3dacdECWtzQ6lckCvH1Ov1ZHKQyqvyMBSiisLK9SrZZTSeJ7HVqtDt9dHK432PYwz9NtF1ZIblLQaa/E9nzDUOCeQ0vH42b9Mf+UtctaJ0hwlBJPNMsstM9hnwaERbHQT4s4m0xPDvH9lkb/z+SfZjIdYnn8FITzqow0mjtxFliaU6uFHGGMfY35h9++PWI53zcx8g+vCW7e+mWSr1R2k2gomJw9Qa9RR2sMJgZKa2dmrrK6sYwblqsvLa6ysrmPyIhvV2SKHOs+LaE4axWRpTpZmRHFEFCVE/Yg0zamPNilXhzh5cJixeoCvC2CHygGVwAOhQAxyDY2gFgikUszNXebxv/QUE/f9LALN0pU5/CBEaK+wCva/FjI3M3P0m7sbbjC9LfbF/d4tywpRi+MI39cEYbBTs6uVJo5TnIXpo5OEYcjFS1dZvLZKvValVC4VcUMDUkjS3JBZS5zlxGlMlmdFgCDPSbJ0pyAxkg3iKKYWahplTUkV5a7DlRCBwxhLmhmW11vEUcJoo8rW1hZCwD0P3091cobW2go2buGXapTK5f0OF3kd9+0JYMGFt9eFIEiSDJxgeKSJUhqtvSIfTwmMKcoSAl8jheLywiKtjQ3GxkeQSmCtQWlFmmVYJwjDgFIYUq2UihehvUHhoUMgi/wam5OJkKXNLt0oQzkYb5YI/QBnLYGSKCHJjWV5q09sDENDQ0jtDSoCLCcffJS1VkqlXiasNpBy38tCN3DfngACGMxtubCIs+VAEfHVutjfABxSFvUhUmmqtRK9KCbuJRw+MomnNcYUFZppmmGyDIFFSYm1bhCkUIAYVB0pwlJQlEEISbkxzGo7JrGWlXYfQcrdh4ZoVssEWqKUwApHd1ARf98DD9NutXBZjJSCPE84cOgwJ06dwQ/L7Dcrw+TuF/dq3xPAEzMz55y1L93qhnnuyDOL9hT+YPGn0GVFdn0YhGy126yvtXjllTfwfFWIN0XU1+SGOMkRQoKzCFlMAhJBlmSY3KCQhOUANagl1lozMTlBJ7FYUxTs5Aa0VozWAiYaVXJj0EoRZ5Y0N0wfP0LjwElWPngDkyV01q4wOnmIqZMPobTen/4T4hsnT87sWYB981q5Yu+puZsdL0yMnDDwkVKRpTk4h7UQRTHdbsTo0DACSbNWYXx8ZJCzDHmWF+aJtaRJTrcbs7nRod3q0G73sLlBSIEf+Pi6sDWhMHJP3H2C8cl76CWGNM8ZGR7BD0LS3NGNExqVEsKB0prMQKlc4i//tV/izVfO895//BYHRkc4cvLeouTh9tABzMlbzAs3BXBmZqZlsF/Z65hz0O8XIuFpRZpmxFGKpzVxkmJdTppldPs93nzrPGNjowgpkUCcJDgHnvbJc0OUxOTGFbOwc0hPE5RD6rVqsf2JgSwrDGrrDGEp5MnPfh5USDcuJpxGY4SRRp1yGKAL6UcNdj5qzb+PNTmf+s9/meWVDhXfIUyMENsezO5x3SjO1rivzMzMzN0xgDAQ5T3Qz/JCVD1PIZWi1+2TZikAYeBRKZfJs5yF+auEgWJ4ZBhPaaK4MFEMoJRkdKTJ5OQYoyNNms0G4+OjTE2MUqtX0b5Ca0GzUWJoqEbge0hRFNdMHZli/HFJogYAAAfMSURBVPC95BauLG1QbjSRns9os45zEHqakhbEiWFjbYXo2rtYk/L0F/8mwdhJuuvr5FGXNIn2zKjYaXPuxd1G816kbnUQ4B+99NK5//a552aEEKe3HxJFhVnh+yHWWeI4BqDb7cNgI7Erl6+xtLTC6TP34/tFsbX2NOVKGa2L0qw0z0jjrNhcIi+SzftxQpqkxdqy0vT7CVluB2F3VZRI4KjVhnnj9R8RJxFrS/P4Iicb5OAEWjI1VOfwwXGWllc5fGiK5sgIfm2I4QMTGBGQmRwvCHcCCDdE45196a67jv1Pt8NnX3O4Ejzv4CHgtHMOkw8WzqUgiWKsdfi+R5qm9Lpd+nFGa2sL3xMEgY/WxX4wShd+s3G28DqsZau1xtrKtSLfOU0K8VMaoSS9zhaddhvtae677xQn738EJSVK+Uwfm2HmxMO889bLyM0ek42Qo+MVmpFG1WeI1mY5dHCcja2EH37/+9TGDlIeHiPLPJojI2yurw0cgMFuIbvAc/BaV8kX9oPNvk3w2dnZpkO+CkxvbnZJ4hg/8NlqtelHCc1GDYQgS1MuXVpgZXWdE8cOM33sKMZYHII4TlhZusZrP/we8xfeIttco+xBSRdRY2OhlyRsdmOiNCXOLImxpMbhhODpzz7JL//qf8XqWh8cXJm9zD//5j/G5R2mR0rcfahJffQAn/sbX+Xf/fb/Q29jkTOPPsr8Wkzdj7j/iWcYnzmFdcXArXN4nnd9YtFcR3LmzD53d7utCG/TSy+9FD///HO/L4T8Yrvda+a5QUpRKHhj6EcxnU6fOE5YvLbC1fkrPPHUY0jpEUUJ75x/iz/5nd/irT/9XardaxwpSY4Olxmvl2mUPGq+Tz3wqYaakqco+x44yK0hNhZjHe9fnGPug/d45NFHkLoo9cdK+p1N4rhLJdSM1EJOPPgQ4zMPIPKEix+c52d+6b9gdm6VamipjU6ivWCH+4pE80ItOHgtl/z8AzMzS/vF5Y42nJqZmZnDmTN5nr0GRSQ4CHxK5aIKMk5jLl28hNCCe++9C88LWF9b44/+xdd543f+KXfZFT4zM8aRRoOa56GFRLoiP7CIiDi0EJQ9RTXU1Mqasu/jCQnWoZWm2+5icsvwUJN6vcoDD57mV/7mlwgqIyysdVlrdbj65vcZnxzlvic/j9QN1hbe4aEnnubawhK5/TBv50PxtYXYSp659xYz7icGcABi66knHztjrX0pTRLiOCXLi41wapUq4+MTdNsdSr5m7tIl/vg3v8bh5CqPTE/QqISEXoDWgx0tbWG+2CzbCWcJV6SjFUB6+J5Cq4I/nJD4gU+702FjfYMgCJk8cpjR8Um+8IW/ivLrLK22ufT+2/TWrjAycYBHPvfzrCzMU6/X0J6PhB3wdrLInPvmieMz+xbbTwTgNn3uc59+PsvSF+Mkod/rs7S4wvz8PLOX5kj6PcJyiR/8zm/y6FSJ0XqF0NNoWeRACwqlnaWWPLVYW8yeQlgyawabThQ2ZqAFvlI7O7mtrq6ByVjfaLGxsYl1jth6PH72Gf7qX/sSpcYE15Y2Wbn8PjaNmD51Cms1fuhTqjbwrtvRyFm+evKuY89+XBw+/p5xwM/+7NMvDA+FM87ZuSjuEycJWZawubHOq9/9Ex6bHqIc+AVgxuFyR5Ya0jgnT4sd2YRgUPoKBgdKkluLsQZPS8q+j1aS1EEprKA9jzjNqdXKICxREhOl0OvFnH76aX7hb/1dhg8eo9PqkGcpQkK5WsM5S314aKfoWgoxZyVnTpyY+YefBINPBCDAZz7zmblGwz8zNNR8sRyG1Bt1ms0hjjVL+NpH4MiTnChKSVNDllqsE4NVUodwRdAAKKrPEUVeoFJFRqvvIaQgCEpESczBg0dYXtpgdX0d4Ry+Ko612gnVWpOjd5/kxMOfJWiMgtJkcUStWiGOYoYnDhb7MjheEsKdOTmzt397J/TJCmevo2ef/bvTYyMHv97d2jr7qeGYIRET97pEUUrUz8hNjhvscYCA3OZY6zDOkWHJjCM1hjhNELJYJcsMvLG4xVLfMNwc4szDT1Ku1KjWaxycOkiz2cAJgclSTp6colypsLm2TtzdZGTiIKuLC4SBJs4Eh6dnzmlPf3XmxwDcNn1iDtxN3/jGP537B//H//xMkmx8JZBmLkkS4jgjilOcNPhesSeqw+CwCFfYYgaLcxQL4nmxVYmUEk8pfN/D0x5T41NMTh3F5BlJEmNzS7vdpdvr43sepXKF5eVWsZ1orUa5OUpucrrry9RGps4JYZ45cfLEMz9O8ODHzIHX0z/7b750NunGz6Vp/kWLLRJ+MFjjijU0UYTFksEaSOaKEFRuzQA4H4Ti/GZGqmoE5SpBEDI8Osbw8DiNeoPxqXGqlSpaS5w1HL9rAqUUSRLTWr56rqT1i4898/lzP6kx/kQB3KZf/9LPTVtff8Ga7Nk0M6eFUgjhMKZIzcgGqXKJNViKNQ1Pe8Vit1K8sWGJrI8flCjXmhyYOMj4+ATlUkgQlGg2m1RqIb7nU6uF5w4cqL3c7/f/4ZkzZ37i/6DgpwLgbvral35uOjPpWaXlF6zhrHG2aa0gyQyZyXCDjCo1yGt2QvGBbeBUjUqlRr1ep1yuUi6XqTUalCqVltL6XJ6k58bHa7//i7/483M/zfH8f095BThjKct1AAAAAElFTkSuQmCC","e":1},{"id":"image_0","w":80,"h":81,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABRCAYAAABFTSEIAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAgAElEQVR4nO29eYzd2ZXf97nLb3n7q421cKsim+yFvZC9qKVeJPaM5cw4GEszxtjyxGO1AhgxgsTdCpIg/8TTjSBAECOQ2zYwRiYTSXAwtuEZz2Z5NPCMxVbG1mgk9d7shU1WkVVk7VWv3vZb77354/equposksVuSf4nB3io9+5vu/f7O+fcc8495xb8//SJSPyn7sBetLi4OL1X++Tk5NxPtye3p/9kAM7Ozja1Dk97nnrIOXfaOk4LKaadtU3n3C2uFC2wc0LIOWvM62DP5Xn+2szMTOun1vndvflpPmx+fvGs1vJzCHHWOXf2Zuc557g1iHuQ4Jwz9mUh3O8dOnTotU/Y1Tt47E+YZmdnm34YPoeTXxSC0zsPFtc92jkQYge43QDeMZgwpyQvAC//pMX+Jwbg/Pz8WSfUs1LILwhB83rABMCutu1vjr0Bs9Z+rH4I+IaUvPiTAvLHDuDi4uJ0ZtwLUogvb7dJKYuHbQO2m7sESAS7IbPO3dCxjwvgNv2kgPyxAbgtqs6K58E1t9ullDvctsNlDhwOnMNaS5pnGJOhlcL3QpAFpG5wrrUG5xxKSpwTwO1FWuxSB7tJCvFCmsYv/bgmnR8LgPPz82eF1F8Hpre5bTfJAee5wQfncDjeeX+Wb3/rj5i/fBklFLVqmUNHDnLoyEGCMEArzfp6m85WC5NbJg+Ocfz4DIePHEEp77a68QY9u90Oc86Zrxw+fPjcJxo4PwYAryxc+5qA54UQbH9ueMgu0d3WcRcuLfDrL/2fdLbWyHFoAVp5lCslpPTQSqG0RimJ7wdIKalUKmilmDo4wmOffoQDE5OI64ZwM9D2IoF84fDhyRc/yfg/NoCzi4vT2rjfhY/OrDcDcTddWVjipa/9OksLcyRpiu97lEs1fE8TBCFhGGDyHKk0WZrh+RqkwhpDGASMjgxTqoTc/9BJHn7kMa7n+jsB0cFrVstfnPmYuvFjAbiwsHDaIn4Xx/TOjQadvh5A59xOm7OWuflr/N+/8c+4fOkixuQEfoj2PXylQUkkAiEkQoKxDs/TWGsRzoEU2NwQ+AHS04yPjfDEkw9z+tEbQbwjEKSYM0o+83FAvGMAZxcWTisnvgM09zq+G0j4EMDcGN56+z3+6A//mIX5KyRxigPCICQ3BpdneIGHtY4kSwm8gDzPMc6AceTGoJTEWks5LJFbS71eIwg9zv7MZ3j6s5/F84I74r7rqGUNz8zM3JkRfkdPuxl4u5X5DoAUE8ZWu83C0jKXL1zm8uw875w/T55nOOuQQhCUQtIsI40iktygcCAkQggskOcxzgJSkmc5SkmyLEXgqFYbeJ6HVpJHHj3FL3/pr1Op1u9kSNfTHYO4bwD3Au9Ws6BzjnPf/T7f+7PvUfVCwkqJ2dnLRP0emcnJ0oTc5CRpAogdEXTWIKXGupzcWEyWFWaNcGjlk6YJCIGnfYw1SKUoBSG+7/HYo6f4lV/9FcqVnx6I+wJwdnZxWmn7KrfgvN3+q5SSi3OL/MY/+b/whGPy0EHm5i6RZjlplhL3I5IsGZxvybMcKRXgyPIMJRVZnqE9hZSaLM0pl8r4vk+aJRhjEELgaQ1As9nEZJYkz/jUI/fx5b/zX+L74X6GdjNqWaPOzMzcXifeVvPOzi5OK89+B2hug3S9s7/X7wvvzeHynAPj48xdvkzU6xFHPbpbbeI0RkpJksaY3GIdOCxJmiClJMtzhJRY4yh5IWHg0+21WFpZIkkttdoBjh9/kAcfeooHHnqaxvAMujSKkpI33/qAc3/87R3je/tjrcVae0P/d//d1d6UynxndnbvsNpu0rc7QWn3dWfdTW+0V2dy6/jg/Q+YmDrA4tIi3W6bbreD8hQGg3OQJDFCKKwzOJfT72dIrYmTmFKphKc9sjxlae0axhiG6k3+/t9/kcmpKaQE3/cQUmGtoVwOSVLHf//f/S+srl7kX/yrb3FlcZG//eVn0V5wQ39v931A00qZrwPP3AqfW3Lg/PzVX4Mbw057ceKHHXC0Wj22NlpcuHiBpeVr9KMenvZI4gwHpFmMdRZjUpI0IU4SjLUEXkCtWiOOI1bXltnY2CDNMpTSRHHE8JBHWNJYBCvLq/SjLlevrbK2toEUhief/AxRkrLVbfOnf/Ln/OHv/DbG5rcCac/2Ha517uzl+au/9rEAnJ1dnLbOvbDXQ28tBoL5K4tcnn+fzc1VkjzGOchMjtaKNIkxptCFeZ4VnZCSaqVOkkYsr1yj3+8WM7Wz4By5yciM4fVXX8HaHK0lUntstSLC0McPApI45fjJGYT0MDlkecIffOtPufTu2zd50bcn5xzO2hdmZ+fP3jGAUtnv3Oymt/ptjOUHP3iN5eVFoihCKV2YJMbQjzpkeVa8XZMjBASej1aazdYqnU4bISTGWoSQIIrZeTug8Oqrr2ANWGOQClbWV9na2mB1bZml1UU8P8U6h5KgtU9uJN/7Dz/4OPHEj45P2K/d7PieOnB+/uqvOZi+/rk3RIr3mEjy3PLOO+8RRz0q5RKVUo32VgdDPuC+wh9WUlEv19jqtYn6/R2wrLVIIXe+O0BrjzzPePWN87z0j/4BV68u0e60SeJkEIh1CKdAWKwFKxXa86iWK1y8uIDJYrRf+tgggjh9cfbyC8dnjr5w/ZEbOHAgus/u563taL3dQEpBnlkyk+L5Hlme4QWF8VtEYxyB71Gr1VhcW6bbbWOcGcyaBVgAwoHUCoAsS7HW0u50+f73/4Irly/T2tgg6veJ44ioH5GkfaIoIor7ZFlCv9/FYUBIOu2t24/lNuOVQjw3Ozt7g/d1A4BSmRfgQx939wP2E2bX0nHy3lM4q6iWqxiTk6QZArAWatUGXlBieWUZa/MdbtRaI2XhvwhRRAOtMcU5zmJtTm4ykqRPlkekWQFalkakaZ84Kb7neUwcdYmiLteW5lnbWGRtdW3P/roiMLlfEW9a5PPXN37EkJ6dXZyWysze8JDrALvZd2stQkC3m/Ebv/nbXLv4LpvtVfpRn9yk1Cp1ev0um60NrLUoqRCy6IKnPYRS5GmCA4w1WGMwNivui8NXilB7BFoSKA8pJVK6IvgAGAtJnrPa7ZI7RxAEVEs1nv3yX+cXfulv7CtSBLeM5rRwZmZ3MPYjZ16+vPANBF++/qqbzWJ7fS/+CkDyr3/3HN/+g98GZVBCsLnVotVa3+mgUqoAURQibqwBwcDozTDGIrGUfY/RapmpZoPheoWqHxZeihBgGXglEqUViXW8fXWFVy/MkllDuVzhwXvv5n/93/83PL+072DDzc6zzr24WxdeF0jjczdcMLDeb0U3WvMWIQbh+izGZAaTp3Q6LeRAXJ2zICA3eWGriQL3PM+wJsfmOUMlj+MHRqiWQvq5YaXXYzOK6KQRnoRGJWS0XmasXma4UsE4w9zaOgsbm2jPBwRpknB5/hqt9bU7Wle52Ziv14U7AM5eWXiW63Tfdijq4zy0uBZq1RphGLCysQqicNmyLLthCdNYS5omA/svY6xaZrReoxOn+J6HrxVb3T5vzl7lL96f5Y3Zy3R7HaQAJaDV6/LyW+9y/vJVQuCJe2cYqlUx1pCkCWma3HGo6yYgNg3qi9s/dswYBV/effrtFrf3OvbRhRxHpVKhVK7w/oW3BqCBcAKpJIjBat3ArTMmx9ocay3jtQoTjSoTjTrV0GerH7HU7mK0wpMKKUFYRxJFuKBEtTnEYrtPnFjiJCWKUrRSCFn0w1EY5Nv9+wQxwwKrQs19AwYcODu7OO3g7G7gbjpr7QLrdhQEHhsb65iB0TzgN7RS4MAYM5hVU3KTYY1FK8HR4Tp3T42gXcYPL87z8nuzvLu0wUpsWdjskqSGKLd0e33qtRqN0VFm1zusRhG6VEOFNVbbPcp+CedASUlQqnwssG7CRGe3xbjgQGXObp+83zd0M//xwwZBFPdpdTaQUpHnFoctDOTBuVmeDDivsAO1lPhScuTAEM7B5Y0uq/2YaqVK6PmMDQ0js4xGKNFSoTxNu9Nm4shh7jk0gYtjYptzeHKM0dFRLi2tsbS+xthwk0Zz+KZLnfsZ6/WYDMT4GxpAIb5gneWjM+mtAbu+/frOpcZy7jvfwZpsZ5IQTqCVxjpbcF2e7YSZBIJy4KGAqeYQKI/Aq3D4QBfrHFpKTGbItUe9FNCsV/GFwFmHiCNO33MPzkK312eoVuLwcIPx8Sleefs8jz9wAuXJnQlRSnlH4rzXOUryuR0AjTWndxZ+9uOB7OOcTjdmeXGpsNG23TRnsTjSPCE3GcaYgT0o0EIQeh41X3FgtEnohRw7OIUzlq1ORK/XR2iFxFEtlxBSkPQj0n6XjbVNjj9wlEcffJD25gbSOZojw7iwRCUIue/UfawsLlOp1SiVq4U+/AQreQUIfBH4ip5dWDgtjJu+E9beC+jrfwshqZTrdDvLKK2xxoBzZFlKmsYYY3DW4mmJJySBVqSZ4a6DowzXapRKIUFYQymfw9on6cVE/R5CQtTv0497GOtwUqGcI91qM3ZgAl9rlDAIrTFSMFyv09ncwtdFn5y1OCkxeY5Sit2Mc8s17RupOTu7OC3J7PTtALsdWNc/yDlHo+pz/OQ9aOXtLH475zAm29GXWglqvo+Skma5jLCWA7WQJIqIO316a+skm1tknT6+H1Kt1fGDEJMZon7MysY6cT8mjlI2l68hs5Tq0DDtzRbJ5hbECaPNOkePHkU4CSYvRFgppJQopT7S/ztRXQCG7KwEd/qThHtuRlLCZz/7GSrlBlJ8GBRIswRrDfWyz0i1gnOWsXqZLM9ohAqT5bQ7Hbr9HhmWJE2Jux2i1iZp1Cfu9uj3ulxdXKJRKjE1MU5Y9omTiKsfvMvG/EXmLl5gbWWRbmuTiva48u6ruLQPEpT+UKUUvvCdxwm3SeCmNUI+tJ9knTu6sSiCAvfeO02tOU63v0mS5oAl8BT1sISnPHpxzMGhGlIq1qKY0VoFJQVplhIEAVHUI0r6KC3x/RIW6MV93l+YZ7nVIUojXpm/wmqrT+gpxupVdOizsrbOQ4cPMykhzSLef/tt7n3oEQyWIKygVNHHwncXH7ER96KbibeU4qjenUl1s4v3S9sxvAGMlMqS+049wNb6HL1eG6UEJgcLlDxJs1yhoiXvLm5Q0pJASwa2NVEc0c0tNhMoJ/GCHkjJSqtFZC0zRw5yYWGRjW6CkdBOM6aH6oRBjXevLHJtaxMqIReXlpmserz63X/LiTNP4JerVBpjyEFy0n4DDLutjV2NpzV7hK52053aTrvPF85x9Mhh/jSKSZOE3CaUfZ+S79FPEmwuuRYl9FJDSWmkLIzePM+Ik6TwKLSHcAplFJ04Zn5tk0NjozTrVc7ccxfr7TadXh8hFFNT4zQaw/zF+XdpRRHJyhqLG1tIV+bdSwso7zUS45g6forG5DTa8+9ofDcCLZqam6RobNPtbn59B3andIBj/OAoSeYQwhF6PmXPwxlHyQ9odbuYvMhQiPIcKxy5sXSjmNwIktTgkhytPeJuyrXNLfzAw9MOrSH0ApwtEyLQXkB3s0vU7VErBwgM7y2vkhjHeifhvfkWoZ6j3hziYqfDRGeDqZNn0LvSQT6Gi3d7APcL2l6/hRAcm5lkaGiCfn+Z0A/wtEIKSE2GFgLtCzzPpx3FLLUjRisVhIyRQpEbg8GROkurH9GKE2wc04tiLixt4qzD80IOHT9JpVJBCMm//86fMFmXNCoVLl9ZITeGTgZ52/Dq3BJ33Z8xffQQs6+/hpCK8ZlT+GF538lJ14ly87brwh8HVGPMTnut4vP4U2f5w3/1Hp6ShJ6Pw2CMwPMsoa/pJgYtM5Y7KbVgC+cEvqdxAoxzeMoipCCzkuV2l+mpBqceehCtNJOHjzA1cxwpFdfmF7l/7j0qqs/l9T69KAEcQgo85ZHmkm99+xzPJIZ7P/0MS5evIcsjjI5PEJYqt+XAvSaTmwJ4p6K73bYzs/FhXvPf+pWfJ097/OjlPyDP+gxXy7T6Eb72KPsKkCSpRztOuNaOQEiGw4BS6GOdRfg+1XKJ+0olTqlDXLi6zndf/j4bvS5DjTqHJyfoZyA3N3n0/hni2LIat9FK4pwtPB5TGOzdxHFgdJj52SVMd4kTj36aXreH54eDOOVHJ4vdv/d06Z5//qsv7IXyx/ERd3Pgtr8JEAaa0w/dx/lX3mZh5Qqhpxiul5DCMtao4gvJVhQTZQOfGUFmDBJQusiBGapW0FJSDT3umhzlvoNHODE6xXi5zrhf4eTYBCcPH0IGjg+uLXFxeY2jR46xtrnJYNWAUilA6YBGo8RTP/cLXPhgnmpZUWkMAwLteTcd583wkMDczUDZD0tv/93+FG/bkGcZxuTkeU6aJPTa6wzVBY1yidV2jyhJECiW14tcGSUlnpL4WhPnOev9lCutLt00J81zsixDiWJNOM1i+uk6RrTRoofNWyTxMkZ1yazljSvLrG91adRCnHN4WqOUwtcK5Um2un2qtTrHTtzNyuIiUirSNLkhorQbuJtI5NwtdeCdmC/GmB3wsiwGY8izhLS3xdz753nnlR/S29xkvFEm0Jp2v481UPIlzXKJvNXFU5JASUqepp/mxLllfr1NMK6J85hyUKFUCsnSnDg3ZLklJ0NJCVZQEjVa/YT5tU20VqxutGCwxOBJibWGiufRrNZxzjI0Oka/dRUv8Ol1u8CHJRl75a3dqANdSwOvsUcoH25tA+5+W9vAJb02m0vzdDbW6W9t0N5cp7WywPzyBnPXVjGZYaRRo1EWrLe3SNKMONU0ygG1sAwkJHkxAXlKEmcZG72sCI56mppfplpyVJsNvMAD6ZEbC8bhBwGVaoX/8N6rGFNMOnNX5nHOkufgpERJTZ4lTB2aQmqfoFwiCMso7REEJdIkwQ8Ks0YMCi1upqYKjEVLO+e2biaq++VAm+esLlwiXl8ki1O6rTWyqEd7fY23379MJ0qoeIqZgyMcnTrCqxcvs7EVsuWgm+SsdiIePzHFtc0282tdNrsRJQ98LehngvVORDXwCLXGDzR+GFAPKpTLNZT0igV458iBy8srgMMah8EWERfAUrzwaqA5OHMCpRRB4JMbi7PFCxADvb1fu9BY87oWBQd+ZClzP9b5tr5zxrJ+dY58c5FyuULHWjbXVpj74ALzS2skaYbnKULlce/xGY7fdRwlDCurq2hVohRYWr0+V9c7HDtQ4/BQidcXWlxda1MJfBplRTtKuLrVIzeG2Ob0kowkTamUuwTaR+oil7BjYWFlHaVU0Tdn0dpDS4ECPAEPnDrJweP3ABCEIcoLEAKk9HDWfGR8twNQFDrQvgZq54L9ALc7stvv99lauowXVnjnlR8inaCz2SLLMg4M1YmThDQ3fPr+GUraMHfhPHkS8amTx3jjyiJ0elSHalxtddnodjk5OcR9U3UCrbmyssFQJaSXZGx0IuI0o9VPWev02dxqUwnLlAKfwNcIpfjz2UWyPAEHUooiXmgNntL4vmZ0uMKZJz6LX6qhtSZNU8qVCjjwPEWWmo9YIbcD0Vpe08Brtwrl7wYOCu7cjqNlWUYc9ehFKQvvvM30yQcpVxvMnf8R/d4Wy6sbeEow0awQSI0XNjGh4tCRUaYrw9ydh2z2DK+9+grnX/8urajL9y5c4+HpMU5M1sAaOlHEWDXk6mZGZh1bcYLTPu3+FhW/TTX00H7A/EaXD1Y2i6Cps4BADUA01qIFTA5VGRufwJrCPvU8j0pzeCeb9foo9fa4bwZiV/OanpmZaV2avfwauwpm9qLterfdNzV5TpYZ3n/nPcbHhzh04h7yNGNjdYl2t89QtUQcxwgRYMtjeMcfJyg3ihicc9SCEjXpceTEMSaPHOc73/6XdNpr/Nn7S9w90eDEwRGuLIFWgm6S46ylHHg8/z/8j/zWb/1r3jz/KrHJyHOHtQ6tiqwuBrrM1xIlNNYVornZS7g6ewFZGcYPQzzfpz48hh1I1X6YZxe9dmZmpqUBnLUvCylvCSDX2YfbHod1gNTUxyZJei2WPngXnXcYqpd484Or3HfiXh7+2S8wduQYUmny3FAEtCBPc8JSGWMNn/1LT3BkZpo//oPfZ2XhDZbabcqlLmONKr0oplHy6SUpx44f4di99xOE/wbjXAHeIJvEUQQsrLMYZwm15u6ZI8xeuYqnBJPjI4S1CS6df5NytU65WqPZrJMkCc7anUlkP2StfRkGrpyV/J6C5/Zz4bZucM4hlKRaqzEycYTu6hKbNqW7eJHNTsTq+hb3PvAIn//lv40XVvE9DxA7uc3OOlzZIITaMRlO3HOMg0f+a65cnOfNH/2At1//jzi7RSPQVEs+nTjlkccfZ2V1neXlhSIR3TmcG7xfV5g/iXEoIRiqVzhzcoaDY6O8/d67vP3uLEdn/pyD9zxJnvYRoo5SijAMd9ZotN7bNL5eJzrL7wEogH/80ktzzz3/1eeBfdUGfHiTogR1dGIK6zR5e4U86dPpdDl27C5On/0rSD+gVCojlUYKgedrvECzudlCaw8pC//TGotUglLJZ3xilHsePMXpx55iec0iknXiJGKx1SNJ+mytr3Hpg4tsRdGAo4tJw+EIfQ/hLMZBkiZ85qF7uOfEDHNXrjIxMsL3f/Aq6dpFDowO05ycQUi1o9flPjhwcHzuruPTX90BEODv/b3nJoUQn74TALezDfzAIyyXcLnDCo/JY3czPHMf9eFxPL/QNVJJ/MAjSXNam13Ckk+lUkFpgbPFvaQq3rIc1Mr5gc+p06fwKpPMX3qf9c4W62vrLFy5QjeOiJKc3Bi2M5MkgoMHhgk8H5vnxGnGgZE6999zNyrr0u1ucPzkQ7z37nscO3qQXmoZGhv/iN23HwAF4vdeeulrvw+7kousLFjyTkhKhedpoiii148JDxymMX0/1bFDNEcPoEshyvNwVqCUZnOjQxTF1OtlSmGIMRlJnJClKUmaEkUJWZYTJwlJnJLnRQLmPQ8/wNN/5VeZHBqlVgpRAoYrZRqlsMiBEQJRmMpstrc4cqDOoZEGJc/jz/7iDX70w/+Xe898Cq187rl3hiN3neLihQtU60O01lfZ9tv2G9rPc/PNHQy2v5yYmTkH4tztbrD7bTnnyLKcPBcI6dGLUnr9iKA+jPJKaOXj+QFhJeDK/CKep6hWSsVMKSBJMpI4I4riQXqHJY4T4rQwlJOkyKqyznLPmVOcevAJDjSqlAKP3BiGqwH1UolAKxwglaQb52xsbPDYqWkO1CtMjTRY3LQszr3LUz/zn/H6D77H2bNPMb+4iS8yMlMkhe47bxDmTpyY2cHpIxrTYr4pkWf3dacdECWtzQ6lckCvH1Ov1ZHKQyqvyMBSiisLK9SrZZTSeJ7HVqtDt9dHK432PYwz9NtF1ZIblLQaa/E9nzDUOCeQ0vH42b9Mf+UtctaJ0hwlBJPNMsstM9hnwaERbHQT4s4m0xPDvH9lkb/z+SfZjIdYnn8FITzqow0mjtxFliaU6uFHGGMfY35h9++PWI53zcx8g+vCW7e+mWSr1R2k2gomJw9Qa9RR2sMJgZKa2dmrrK6sYwblqsvLa6ysrmPyIhvV2SKHOs+LaE4axWRpTpZmRHFEFCVE/Yg0zamPNilXhzh5cJixeoCvC2CHygGVwAOhQAxyDY2gFgikUszNXebxv/QUE/f9LALN0pU5/CBEaK+wCva/FjI3M3P0m7sbbjC9LfbF/d4tywpRi+MI39cEYbBTs6uVJo5TnIXpo5OEYcjFS1dZvLZKvValVC4VcUMDUkjS3JBZS5zlxGlMlmdFgCDPSbJ0pyAxkg3iKKYWahplTUkV5a7DlRCBwxhLmhmW11vEUcJoo8rW1hZCwD0P3091cobW2go2buGXapTK5f0OF3kd9+0JYMGFt9eFIEiSDJxgeKSJUhqtvSIfTwmMKcoSAl8jheLywiKtjQ3GxkeQSmCtQWlFmmVYJwjDgFIYUq2UihehvUHhoUMgi/wam5OJkKXNLt0oQzkYb5YI/QBnLYGSKCHJjWV5q09sDENDQ0jtDSoCLCcffJS1VkqlXiasNpBy38tCN3DfngACGMxtubCIs+VAEfHVutjfABxSFvUhUmmqtRK9KCbuJRw+MomnNcYUFZppmmGyDIFFSYm1bhCkUIAYVB0pwlJQlEEISbkxzGo7JrGWlXYfQcrdh4ZoVssEWqKUwApHd1ARf98DD9NutXBZjJSCPE84cOgwJ06dwQ/L7Dcrw+TuF/dq3xPAEzMz55y1L93qhnnuyDOL9hT+YPGn0GVFdn0YhGy126yvtXjllTfwfFWIN0XU1+SGOMkRQoKzCFlMAhJBlmSY3KCQhOUANagl1lozMTlBJ7FYUxTs5Aa0VozWAiYaVXJj0EoRZ5Y0N0wfP0LjwElWPngDkyV01q4wOnmIqZMPobTen/4T4hsnT87sWYB981q5Yu+puZsdL0yMnDDwkVKRpTk4h7UQRTHdbsTo0DACSbNWYXx8ZJCzDHmWF+aJtaRJTrcbs7nRod3q0G73sLlBSIEf+Pi6sDWhMHJP3H2C8cl76CWGNM8ZGR7BD0LS3NGNExqVEsKB0prMQKlc4i//tV/izVfO895//BYHRkc4cvLeouTh9tABzMlbzAs3BXBmZqZlsF/Z65hz0O8XIuFpRZpmxFGKpzVxkmJdTppldPs93nzrPGNjowgpkUCcJDgHnvbJc0OUxOTGFbOwc0hPE5RD6rVqsf2JgSwrDGrrDGEp5MnPfh5USDcuJpxGY4SRRp1yGKAL6UcNdj5qzb+PNTmf+s9/meWVDhXfIUyMENsezO5x3SjO1rivzMzMzN0xgDAQ5T3Qz/JCVD1PIZWi1+2TZikAYeBRKZfJs5yF+auEgWJ4ZBhPaaK4MFEMoJRkdKTJ5OQYoyNNms0G4+OjTE2MUqtX0b5Ca0GzUWJoqEbge0hRFNdMHZli/HFJogYAAAfMSURBVPC95BauLG1QbjSRns9os45zEHqakhbEiWFjbYXo2rtYk/L0F/8mwdhJuuvr5FGXNIn2zKjYaXPuxd1G816kbnUQ4B+99NK5//a552aEEKe3HxJFhVnh+yHWWeI4BqDb7cNgI7Erl6+xtLTC6TP34/tFsbX2NOVKGa2L0qw0z0jjrNhcIi+SzftxQpqkxdqy0vT7CVluB2F3VZRI4KjVhnnj9R8RJxFrS/P4Iicb5OAEWjI1VOfwwXGWllc5fGiK5sgIfm2I4QMTGBGQmRwvCHcCCDdE45196a67jv1Pt8NnX3O4Ejzv4CHgtHMOkw8WzqUgiWKsdfi+R5qm9Lpd+nFGa2sL3xMEgY/WxX4wShd+s3G28DqsZau1xtrKtSLfOU0K8VMaoSS9zhaddhvtae677xQn738EJSVK+Uwfm2HmxMO889bLyM0ek42Qo+MVmpFG1WeI1mY5dHCcja2EH37/+9TGDlIeHiPLPJojI2yurw0cgMFuIbvAc/BaV8kX9oPNvk3w2dnZpkO+CkxvbnZJ4hg/8NlqtelHCc1GDYQgS1MuXVpgZXWdE8cOM33sKMZYHII4TlhZusZrP/we8xfeIttco+xBSRdRY2OhlyRsdmOiNCXOLImxpMbhhODpzz7JL//qf8XqWh8cXJm9zD//5j/G5R2mR0rcfahJffQAn/sbX+Xf/fb/Q29jkTOPPsr8Wkzdj7j/iWcYnzmFdcXArXN4nnd9YtFcR3LmzD53d7utCG/TSy+9FD///HO/L4T8Yrvda+a5QUpRKHhj6EcxnU6fOE5YvLbC1fkrPPHUY0jpEUUJ75x/iz/5nd/irT/9XardaxwpSY4Olxmvl2mUPGq+Tz3wqYaakqco+x44yK0hNhZjHe9fnGPug/d45NFHkLoo9cdK+p1N4rhLJdSM1EJOPPgQ4zMPIPKEix+c52d+6b9gdm6VamipjU6ivWCH+4pE80ItOHgtl/z8AzMzS/vF5Y42nJqZmZnDmTN5nr0GRSQ4CHxK5aIKMk5jLl28hNCCe++9C88LWF9b44/+xdd543f+KXfZFT4zM8aRRoOa56GFRLoiP7CIiDi0EJQ9RTXU1Mqasu/jCQnWoZWm2+5icsvwUJN6vcoDD57mV/7mlwgqIyysdVlrdbj65vcZnxzlvic/j9QN1hbe4aEnnubawhK5/TBv50PxtYXYSp659xYz7icGcABi66knHztjrX0pTRLiOCXLi41wapUq4+MTdNsdSr5m7tIl/vg3v8bh5CqPTE/QqISEXoDWgx0tbWG+2CzbCWcJV6SjFUB6+J5Cq4I/nJD4gU+702FjfYMgCJk8cpjR8Um+8IW/ivLrLK22ufT+2/TWrjAycYBHPvfzrCzMU6/X0J6PhB3wdrLInPvmieMz+xbbTwTgNn3uc59+PsvSF+Mkod/rs7S4wvz8PLOX5kj6PcJyiR/8zm/y6FSJ0XqF0NNoWeRACwqlnaWWPLVYW8yeQlgyawabThQ2ZqAFvlI7O7mtrq6ByVjfaLGxsYl1jth6PH72Gf7qX/sSpcYE15Y2Wbn8PjaNmD51Cms1fuhTqjbwrtvRyFm+evKuY89+XBw+/p5xwM/+7NMvDA+FM87ZuSjuEycJWZawubHOq9/9Ex6bHqIc+AVgxuFyR5Ya0jgnT4sd2YRgUPoKBgdKkluLsQZPS8q+j1aS1EEprKA9jzjNqdXKICxREhOl0OvFnH76aX7hb/1dhg8eo9PqkGcpQkK5WsM5S314aKfoWgoxZyVnTpyY+YefBINPBCDAZz7zmblGwz8zNNR8sRyG1Bt1ms0hjjVL+NpH4MiTnChKSVNDllqsE4NVUodwRdAAKKrPEUVeoFJFRqvvIaQgCEpESczBg0dYXtpgdX0d4Ry+Ko612gnVWpOjd5/kxMOfJWiMgtJkcUStWiGOYoYnDhb7MjheEsKdOTmzt397J/TJCmevo2ef/bvTYyMHv97d2jr7qeGYIRET97pEUUrUz8hNjhvscYCA3OZY6zDOkWHJjCM1hjhNELJYJcsMvLG4xVLfMNwc4szDT1Ku1KjWaxycOkiz2cAJgclSTp6colypsLm2TtzdZGTiIKuLC4SBJs4Eh6dnzmlPf3XmxwDcNn1iDtxN3/jGP537B//H//xMkmx8JZBmLkkS4jgjilOcNPhesSeqw+CwCFfYYgaLcxQL4nmxVYmUEk8pfN/D0x5T41NMTh3F5BlJEmNzS7vdpdvr43sepXKF5eVWsZ1orUa5OUpucrrry9RGps4JYZ45cfLEMz9O8ODHzIHX0z/7b750NunGz6Vp/kWLLRJ+MFjjijU0UYTFksEaSOaKEFRuzQA4H4Ti/GZGqmoE5SpBEDI8Osbw8DiNeoPxqXGqlSpaS5w1HL9rAqUUSRLTWr56rqT1i4898/lzP6kx/kQB3KZf/9LPTVtff8Ga7Nk0M6eFUgjhMKZIzcgGqXKJNViKNQ1Pe8Vit1K8sWGJrI8flCjXmhyYOMj4+ATlUkgQlGg2m1RqIb7nU6uF5w4cqL3c7/f/4ZkzZ37i/6DgpwLgbvral35uOjPpWaXlF6zhrHG2aa0gyQyZyXCDjCo1yGt2QvGBbeBUjUqlRr1ep1yuUi6XqTUalCqVltL6XJ6k58bHa7//i7/483M/zfH8f095BThjKct1AAAAAElFTkSuQmCC","e":1},{"id":"image_1","w":80,"h":81,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABRCAYAAABFTSEIAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAgAElEQVR4nO29WZCd53nn93uXbzn76Q0NNLYGQIICV4ASJcuSRqTtSeyKy5JnPEnZcyH5KpXJhT2Vu0kmoiqVpaZSNXYlF04yiSSXZzzxeJGsGUsjWwK0U6JIgKRIgiBANNZu9Hr6bN/2Lrl4v26J1m5J9k0Oi0UWG326v+c87/P8///n/7yE///1Y73E3/Uv8N1e16+vLpNCv38QyMmBfDDgxKFDK3/Hv9p3vP7OAnj9+vW+0enZVjN9TCHPTvP87J319eUDczN9KSVCCpIkRStFEsXk+QTvASEGk/FopTJmpXLmhZj4Qq65dO7EicHfxXP8rQbwi1/96pPt7ux7W63Gk800frJyoJQm0oppnpMNt4laPbRSSCGRSlBkBd1+D+k9ZVWipcDaiuEkw+PBC4SSaCkvlFX1+dLaj587ffrS39Yz/dQDeP78+b6L9W8pod4fx8nZdrdH2mjSbjdRgHEWayymNDjhcdaSJClKCkAQRxKlNKkG7wVSWrRSZNMpW6OCylgqa0mimKIqcMai4nhFCvF0nvP5c2dOrPw0n++nFsBnL158MsuzD0odvU963y+qCh3HpGkTIQX9/gy9ToeyyMkrQxJpskmG0BKlI+JI4T2YfEyv26YRK5SKqYqcKG1QFiVVWbK+s4sREgFY56iKijhNwXvwFpAfLZX88LkTP51A/sQDePH8p5bXS//0gaVDH8iygsoC3mK9R+uImV6X8WRKf26efqeL9Y6qKDHWobTCOYNHILzl1ZcvsrO9yZPv/XkWFuaZbt/j9u07nH7wIUyR46XGFAWrwxzj6gfyHoRARxHWOvCgI0UURR9VUn74J92I5E/qjS5evNh/+dWXPtQ78cDFo8tHP4B3OG+x1mCtw3uPd46iskjhSZOUNElQQtJIE8BhbYX3nvX1De5efY5P/L+/T1MWrNy6zmf+/N8ydnB8+RhlZbl65x6xliSNmFiAkgqlFFop8B5bGby1KKVQUiHhg5vrG9dfuH7rQ9evX+//pJ77JxLALz777JNe2ItC8PRwOOhXxiGkxDmBUoo4iVFSIIXD50OW5nuoYgjO0Eg0QikajQYKQVVZFubn6c/Mcfah+7ly/Tq////8K+5ubLG28gZbu7u88NyXSSZryLhD2uzRbTUA8M5jPWgd4b1Hao3HIQQYYzB5hvQ8baW6ePH115/8STz7jx3ALzzzpX+Jqc6njcayRyCkxJiQdVpLnHOkaYJWIMyEVreJSpp0mpLB3SskUQTOIoTAApHWlGXBsy9f5xuvXOfF5y7y6OljHFiY44WXnufqlZe4//QZZHeOPM+YTDOUlqRpSiOJacQxaaRJkjhko/MAaKVZWDqEcIbBYHt5UvjzL9+486Ef9/n/xjXwqxcvLpui/DPnqrOtdodYeoa7u/Rm+hhjcB6meYEAlJ2SbV1nfnaWpo7Q7Tnmj57Aje+xPonozx/EGsOt1Q2g5N/964+wduMyvtHjgftPsHlvAy8c7/6ZdzKzeBStIR8OWDq8zNLyA0hn2RqXeBkz2+sggKKs2B3topUijiKGwxGba7f52hsbvOfR03hr6bVSbmztXpqdP/Sr7/wbduu/UQZ++eLFs7Ysz8dJfHY03GWQlTjvaXe7xFGEc46yqLBVRpUPQVg6h+5D9peJj5+lf+x+poMNCpFiRncZb9xg594V1m+8wMVnzvPog8sUxLQjzR994jxrG1uUecFffvY8ly49y6svvkCctqmmA65feRHjPC0lGI9HZJVhOJ4wGI8xlQ3QRyk6jZQ00uS721TeE7W7JJEi39o8m/j8/M7O6vLfJBb6R/2Gl1++eNaq5vlciL4QgkMLM2zsjlHdhf2GoaQiij3FZMQrF7/MlRtr3H90CWdy2knKz//yP6LZSNkeTnnp6g3KaIfh7ct88Ruv8jPvfIJPfuJzbI0Llg/06TYitqclM/02kbDs3LuLmuuxvrNNNo44dGwWW0yZmT3AJFvl7o3rJM0meJBSEqcN+t0OVdokVob/vJUyLTJu3pqQnFzi5INnmOn2loeZubi+s/PUgZmZHwmE/0hH+Pr6zlnpivOj3WG/MgVVWZEkKXmeo4VDeEvabJGXOd7BeLjNM+f/hH5/nm6nzen7T7N4/Aw7wzFb22v8H7//cW7dvEGapMTSMz87y5Vr1xgNJjz+9sdJi3vs2og7b9yhf/AAC3Nd4kbCmcPzVC4mVo6f+U9+lbcsH8dZR5y22BxOKIzB151fxQm97gzWFlRliY4SsvGAnd0RnTRiVMDMTAelNJUxg43Vjafe9fZzP3QQf+gMvHL9+tlssns+TeJ+o9nETT1VZcmLnKIsSDpNJBoQxHGKNYZIBVZxcOkIvZl5Ji7i9o3LfO4zn+Wvnvkm3UaDB2caJM2EyXjE3ZsrtIQk7qbcXtvAjQaceuRBHil3eebmGqPdAcdPHadqHyTbucd27nHWMJ2OkeUY1byPRIGxitJbvHfECCbTEZHWOOfIswlZbpidXaCRaBrGYo0hn4zJy6qfNvX5r195+am3n37ohwriDxXA1Z2d5el4fD6b5v04iijyKR6IoghXFeTO4qxHaYn3HofFOofQKSdPn+HKtZukq6uIMufanV1sMeahxT5vObRAK1Fsbe9g0zmWZ/oMRhPuTXNW7q0zmGQsVoLf+Pvv4bU//gJvvW+e7a0N9PprXH35Jm9773uZ5BXleIt+r8vaylWOnTjFdGOAtZYo0ggBEk9RVnhnieKY0XiDuNXCS0kcKyoBxaTEeomQsq+MOH/x+vVzPwx7+YEBXN3ZWa4qe16rqB/rCmstcRThsxwhJAZBHCcIJUFIojhCek0kK1Yuv84zX/4ijVYHOTMHFtZu3uDcoVlO3n+YVAnSKOL4TI/cwNQY8rxkVFUcm93itbv3mEli1nPF+toOj/yTf0JnfJdzjz/CtX/+P6LTmPHOLqO04sCx04wvX0A/8DCtxoTCVEilsN7ijcN5j6kMUipmOymmrPBpgvcOpTXdfh83nFBUBmN9P6rs+a9evPjUO8+d+75B/IEBTHTyEWcmy0YIHB6tFAJJ3JRMR5PwJjoiUhofuCc4A0gSMabZbXL9jRs8NDvDpUsv847jS9y3NE871kghaDR7pK0OQkjG0zE7uyPiqqTd65CVORdfvsLqzVucObrIG9dvwdpVFh96O7/w1Nu4TIMlb+g1Gkwyg8AwznJajZTdSYHwAoTA4JFCEGmNqSosCiElWmukAJBEjQZ5XpKVBUmikdIvN5LkI8BT3y8+3xfGrO7sfGhaTJ+UMtSPJA7gVFqHqSpKU4KzSKWQUqGkBBzWOZAKqZuoKuPhB45y49XLvPXIQQ7P9ZAeGq0uvYWDtGfn0WkDLxRJu8/ioSWaWlNYy7see5DHF1J6ruLA3AyvfPGzvHjtLn/4ib/i+JkHWbu9SUpO78AhJqNdtFDcXVsjTVMiKbDW4IxFS4V3DmPCCcIBCKzzOOdxzuKdozQVM/0+wnmk0JRV9eQLr73+fcH29wzgzk62rKV8Oo7iQMiTBKEjtI4wPjB37x06iSiLAmMMSqoAH4CqyGjNLfH4Y48SS8mpxUUSbwPFihJknKCTJECfqkJGiihu0Oj0OXL0GCcPHebkfQ/zX7z/V/jHv/ge5lLJbm7ZGoy49MzXWc8Vm3dukc4uoJuzSJvT7/fY2lhHSEW3mWC9w+IRBD6stCaJI7w32JotSaUQXmCNJU1SrPekjQYeR7PZRCv59Evfh/Z9zwBaac8DIASTPMPZ0Kl2RxOE0kE+MhYhNEmS4rwjnAePUgrnHFI36R49R78/RzHNiJXC4Wk0UwSeKi/AGrwtUcLRaqW0el3mjxznvjNnmV9coNubQcYp3V6Lwy3JYiNithzy+3/6H3GDu1xf20EnCXk2oTs7R0MJvLO0minSO4QQCDxCSvKyBCEQUgGglATvUVGEkIIoTpHeI4QgTRvgPVEcMdze/pc/UgBXt3Y+JKRfRki8c+AdCEGcJFhTYkyFUqGGTKcZSkqssXVAJUiJdY44biGwHD52H9o5okiipcJWFfl0ipCCyjt2nKeMUuJej/bsHElvhrjXJ0qbNBuatjKkaZu3P/EET77jUR4+vcTO5g53N0dcu72Jc55Wq0vSmWWm18S7CqkjOmmMQjC1nrwsyScTstKQRDHO+/Ch+yDiGueonCGO4rpcRaRJCs5zaOnw2Zdfe+3pHyqAr7766nJl7QeFDLKQcxalJEWWBagiJM55yqLAOoeUAg/ESYSUEiklAk+kNV5Imp15dja3SGJFLAXeOabTCfe2tvnkF7/OH//l57h77Rpbt++wtb2Lj1KSdpe4kRI3mqTtHnNLyyQSLq/cZctEdBaXmKxv8MaddTbXN5Fas725TuUkUmmkTjDW0Ov1cNaw+sZrWGOZmZkl0rJWsDVaanQUIYRHAhJBUQSwXZUV0zxHqvBcqOi3Ln4XGew7unBzdu5pIcWydY6iMqHo4omiCGMMeIe1vlZcLFGkMNbgXcBbIZwCjyCKNb4YcW9tlcpYAKqyYDye8NkXXqEdSd76wCkOzs3Qm5+l32lhbUWkmmjVQEcxSknUxjreFKTC8uqrV4iSmKVug8GkJFUC6xRz8/NEWjAZjxBCIr1FxU2aacLSkWPh9DiDJEAb5xzeWbxTSCkxztFIE5w1IAWx1rSbLaI4oipzUKLflPK3gTdl4psycHVnZznPsg8ID0VRUpYF1hq8UAwnU6xzKC2JtEZrjVIKa4NQKmTAgDrSeAFKKyIds7NxF1OWZMayPZlQFiOuXb9C4koOL84xRHN5d8rtSc7qZEo+3WUy2kXoiKTdIen26R8+wsnDR2j5AFMib5hpN/gHj9/PfCtBeM/m5jpSp8QqRghBHDfAG7TWdLsdkjhCCYlSggASNFLpIPY6iOMID0itEULivcN6h1KKaZYjvCCW/NaO33lTFr4pA4fD0dNaa4aTCf1OG+csSZxQ5DmTwRbR3ALeg7UGKUSt9kqSJMaYMkhvzgECJRVVVTIZD/nGKytsrN3jzLF5Hl7qcebYIgdnc56/vsmzX73K4vJJjjdf4ecef5TmW04xs3QYObOAiBKk9TT7cyzMzXD/fIuZE/fzyILg9Zeu8qmvv8p7nvg5bDlkZ2eE94Le3Cw+fIJIB1IK8tKACEB/Ms2Q+LoLW4SSKKUAj6pLkHGeKE7I8ozKmvA1JUia3f7wjbU3ZeGbMlAI9d7CVPTaDZyz+0dRR5rZhUW8s1gTKJFQCiHA4cmLAu9FDVwVzodPMs/H3Fq5QcdMONZLSYRAJSlHjxxlptVElkPa3vJwv80/eNdbedffeyfHH36E3uISMgqdXioFKubI8jLzzZisEtz/xM+wOx5yaPkkvW6T3fW7HDhyHCU93lu8NeF5lCSSkijS4Xm8p5EkYfZiLVmWEWkNwtenRhNpTaQk1tu6JhZopXA+1O8M/VsXL17sf0cAr1y//sEoEsuxVHgEzjlwnjLPyYqSKIrQWhNFMUpp1rYGTC0ID1VREEa0EluWSKEwlWFz9TYnTz1I2uszMp7NUca0khw++RaOnDzNwdkO7zh9kEcONZmb7YKtyKcTpIpRUofuWOaYMsd6yYF+EzfcwgvFrdt3efm1N+jPHWBr9RaGgEul0gj1rYOlI411oS4rJYP4YUKdU0pSFCVCCJxx5EWJKQrGkxxnLKt3brM9mhAnCUrJIJDEjb5qtd7/nRmo1AcqY5BKUFUl1rnQCNKYZtrAusAnK1OhhEePVnF5RpKmRElKFEc4Z1BaIYUH4YiSBmPjeOab17m8mbE5rZjtzNLozDF38DDveuIc9y206HdiXJkx2tzA5jnlaEg1GVKNB5jJkHJnE1dMiRsJ5eZt1namLMy0OTzXY3Zmluk0p9PuUDlL0mwjAGeqkAQenLXEcYQQkkYS4yqLlJJWs0Uca1w98PLOkTQbNFtNlI44ffoUibMI55BSY13IWin1B94UwFdXV5dtWT65cvM23kNZBtKttAQPxlbcvrGC8wIdJUitWTr9OO1OG1HXDY8gq0IzqUxFlU1Aal549ktIbzgwv8ihTo+HHniA7sIiS0ePcvZtP8N73/2zLM72aDYSYgV2vEs52qQcbGBHu7h8RJUNyKdjdLPL4vws2BInEpZm+8zMzCKjlLnZHlv3VpFS47zB2kDbPCCVpKoqyrJgczAlSWIkAi8gijR4j8fjAGcdd1eughCgEmZne3Q6HSajAUVRhObi3JN7k72Q63n+pPOOpYOLoQc4H7KtMjjrSdKEI0ePYp0FoUMBVg4lQkMRQuCKCRurq3TuP40AhoNtFheXaEaC9//iE+zeWkfKBvOHDhD1Zkm6LZQvESIcOyk0UkiqIscjMGWJjmO8NXhTYU1JZSyuKqhkTLsV8cadMQcOzJIeeJRiPECqmGazjcBR5FPiRo+yLLHWEymJFjGR3cTRRkiBEoLSWLSUaBUyUWvN8ZP3UZYlzTSl0e6QFwWNNMU7j7EOHStsq/N+4KMyYLPyfUVRMp3mWOuI0xRnKwCMDZhJKk0cJzTTGCE1kdLEUczm1gDjPCppcuzEKZQQKCmprCfPxiRJzMLhY8zPdDmytIC1liqfYouSxsJBJOCsx7iAMQWeSHhENaUYblGMdsinU7zzlEWJwDIYTun2+iyeeoBu4oGI4e6Q7uxiaCBCUmXjfb1d4LHe4/CkvVm8DTVRSomryr0/hKpFV6UVOEeWZfukIU4bKBXUHZyHyr53/whLIc4iBI0kpigzirIgr8KoMYoCXSuKEuegKApUFCMQWGPQVHhr97/uPOTTITpuM9i6S6PXY+HIA4hI0243Wb13j8uvvMyfful5VjaGNGfnQBiwFucsAof3FVQ5LhtSZUNsPgrCqPBUuWG0ucrGYJsjj72Vnc0N7q3dZntnhyjWDEdDPA4dR6haslKRwlkHOIQH7yqyoqQsK5K0UR/CnLIqqaqqHlXEtUrjiaI44BEd3jPwa/t+AH3x5ZfPSimX4zhC6xiPZ7izQek0M70uQkCsJd7VjMN7rMkQ3lMaQ9rsYK0JFM+WOC+YZmP6/Xmu3vwmcWeRmf4MjXYHqQWXX/g6F7/xItujMdnPvo0nzj7KwaOHMYXFFlNyUyFI8aYKWSIkeIsz4Wc7bxlPDA+dfYTGiSNceubLzB49hZSOzdVbxJ1FdrfXiaMEIYNwUBXToP3JiFZTs1tMiZUAKXDehe6qNeMsR4owxUukQiD2NYDdwXbAlkLQbDSRSvWvr64uS3SybIwFD9tbGxhr6XZnWZjrobUMokEUU1kb6mJZ4J1H1g1cCIGUAoRExwmmqqgM5MWUosxYPLRMsztLr91itLnBjbv3mF9a4Nfe95/y7ne/m0ani5MJSbeLUoJissN0NKKqSoRSASdJgXOWLM8oq5Lh1j2iAyc4dvgAzVaD2zev0+zNkmVj+t0WG6t3iJMWUgRVKI4TnKnIioKyqgCFczCZjNnZ3sGJ8DTCgzOGSZaRVxVREuNNweXXr7Kdh6yUEjwe4UEp9aTc3N46K7XGOE+728M6i5cifNoOhJAMRiMmox3G06JOX4HF4aylKAoqB9PJkHvr61hbEqUp3mSUlWVu/gBR2mbuyGF0FBOnTZI4ptldQMgE7+He3VWuvXGDnUmOTmKEr8JRMiV5UZAXGcPxgCzPyIuKwWCITbuUox2SmYNUo11m5w7S7R9ACRsgkDF4L3DW7FMy4RxeCIIPx9KIY9rtJq6qQARGpSNFpBXWGIqyIk4bnFposXr1dYrKoeNgvXPeU00my3phtveYsxXGGDyeJE7AeYxzpI0kWDQEdOfmefbrzzB/9CRzvS7SeSrr8FXGpRee4+yjj9Ntacp8Shy1mU53SZpd4jgmzzM6h5dxr7yCiFLm4hmef/YVvvb1V1BasbO1jlFw+sQSZx+8D+0rpFTkZYl1HlOWDHYHDAbbjI1DTDPStMWNKy/TOXIfRic0IkHaXmB1dY12O6Eqp0RxAy8VSRwhvKMyE2xVEUcK4wRC6cA+BCgh8UBZ5Hjn0GmAOtZ6VOcAjz3WCkzMWgrnaLRaxKp5XHtP39eWMKU0oqZilTX4bIpWUT2vyHnwkcdQWuOdJx+PibTC6z5vffwJtFY0mimj3ZxEB3jTbHRJk5SymNCaOUzUTpjc2uLmxm10Be86cx8PnDqBU2fYGq2ytnmPG9evcvDALNI6oijBOstwknFvc5NbG0MGkwxpB8z0elxbuUJruMXZt/8sAsHLL3498Ob+ApUJ6negSB4hJEmSYLVmOq5qFckRaUFpDHG0xydU8Ol4gdIKIXwoA80WaRwzGo1I4lDSiqo8K8vSLI+zjKoy5FkWAGdRBmhhHV4QRPEoQkUxqgbNSbNVy1cOKSRxlFBVOUnaxFlba2iKaT7Fekmz1SLptJhMx8xEbd7+8Dm6B5ZZzR3fvH2TwTQjiTTCBuHTmgpTlWTZlM2tLe5sjbhxbwBe8MDDjzCdDFk6fJDKGQ4cWED5kj/6N/+a4WiIqwqcC6MCgQfvqIwJYi/BCqelqvm+J1IB7wipSNIUlEDhgz1OSJyxjMdj3ljfRinFJC9QUtNqtvraO9dXKuAeJQKLSOK47qqe6TSj2WigsCRxI6i4wmJKi9QROIfU4RdL4hQhNLuDTYy1WCRxFBMnMb6eqxw8vEA5sDz3+jfJrhiMyVhe6PPgiUV0GiOAWGlAMp1M2NjZ5cbGLtfXdymsp5VqTt5/H8ZLer05Wo0ZiqJg48ZF1ldvcXvlNicPHQiZpATWOhwSh0MhaqlKYEywCislqLMkYF5jiXSM9T6om0IQJTH56lXubVdERw7R7XTweApT9bV1tm9NSafdCYAxDsS5KGtgKySRVrQ7MwHhFzlZngcRoapCpgHgqYxHSEucJFRFjhCKPC9JGy2yfIipCqLZeXK3Tb4xoagcR2Y6PHTyMJ1Oi1YjCf7nPGNjZ4eNwZArN7e4sz0is9CMY/rzR0jSiHa7Q7Z+i1il3HjjGuW9O8wtzHL86GFklIADsXdGavucsy4IqVik0kRRKEcA1hi2trZwCPrtVj3j0VjpiOOIpZMPc3DZ4pzBWUJjErKvq6oiTRv4AMW5fXeV5ePHUcIgowhjw0BmPB6io4gqK/BC4n2F1oqyrCjLkjSNcdZSFjlF5agqg5cxUimKIscWY5wTrFy7ws0ty+PHjhBVJUcW5mh2uuhYUXrFcDji1to6V29vcHd7yJ2tCUIrWo0WCwcXefjxx9meGIor32Tm0CGy3QEqbfHKq1fpLJwgbqQ4Z5hOJzRb/ZD5WuOsD0dTe/Kpo6osZRU6tI5jiiJntt8jUpqsqpAesiyjkSZUVYUTos5IhdKB7iJAW2coygKJIG0kLM20MCbQuDhKEL4iz3PiKKLMC8DjSgPC42yAB3EcEWuFlDHNRoOd7XVMOSVud5BSUlWG6WAL4z1bg12uX7vLkaW/x5l+i/XBLve2d9Ba4LVga33AlVsbjCqHdZ5Ov0uj1WF+dpZ+q8XW+h0OnWyT5Qa9vsHxR8/hqoLR5gaHH/85Xn/1VZriBFFvCVuOkSRUlQEdYYoCKQTWeHQiUVISC8HWzi79XqeeZwuGO5v05xeZn2/hPGit2Bns0u300DrBeY+oSoQU6DIviDoJXgR+WIkEVVnSOA51ItIkaVwzAqiqgjjWGGuI4piyLHDOURmHkhopddADvaLfndkXZrNsDAjKvEJJz8WXX6Xx4BHcZJfxJGM8ycgKQ1EYSmvQKmJpcYFOM0U3mox3B9BqEiuJm0xoHzzM5PpLuOlpJtZz/Og8WT5k9tjDjNfvMDNzEhH0FWQU7ZvN86LAs29cBSXp9zsBrxMa5tLhYxRViUBQFhnTrEAlDbRWobmFDRXSKEI671a8DUZE68JwudlIEFKSxAopINK14z3wZoSu56lKgRC1PUIgZVg1KIoJSdpC6/AhSAzZNKMoDXlRYR24fMoXn7/CN1Y2uTOYslVYShNsIgcW+hw80GN+rsvcTBeXTWk3G7QPHUdoTRQrpuvXiGYP4ye7ZDsDzv38PyQl4/CRg9y8u01HWzZ2c5K4tvn6uqw4j5SSNIqw3oHSCAQ6jgNsqbt0IwmSfhIpup0m3WZaz3wion0+LFek1hFCSSQ+fCpSUhmHVgovIG00g+M0z3E+FGMlw9BlOp3UWarwPszjwsQmImm0QAiiKMZUGVmWU0wzSgtRnCBjwWBnlziJyIxgdnGRtNmm2e3R6MxD1CTLcqaTEVJ6pPAsLR3mwMHDrG9uMR6O8N051lbvkqYxr1+9jchKBPDQ297J6rUX2b53h6wokL6qp3CBPSmtGWcTcI7tjfUwx7YWrTRxHLM9HFAYS5Ik9e/bQAhBVVX42rippAThB9JbdynPCyprKMsSJQnjSCBNU4T0YTYRBSIdYqxRUqOUJlbgLDhvGQ6HYSpnC5JmDykl1hry6YhOf5bd4S7TvEQoTTtt0O63ibRCasVgc4vKFZSTEYPNTZwJvNU4TxwpmklKq93E50OuvvRNDh05QVd6Vu9ucffyRT79R/8O2zvGdHfM7IEjXHnjBlbAK5//BDfvrtJpxEgBKgrTuODiESzMLyLxTMYTvFRUpiLVit2dbYbb6+yOhtiqDCsUWofZt5AhW70fyGazsduINAJPrHXgv3V5iFSMdwLjDNZYfM0XhQhTfecsWsdYa1FKM9OboSpLJuMRHomzYQi1fu8eppwyyS3GeYTWWC+Y6fcZTXNa7QTdSNnYzTGIcLREhLMO6yCJY6IoodVqMdjc4NBcj97iYZwpOHn8MLPK8eixHpMrX4O4iRKOo50mZQVZd4nLr36Ty3fXaTZTYhV4brORBJ+OFAggSmK08FhjaTTbLC4cYGb+EIvz88Gyh6iVmrCJIADj7Qu61WpdctZ+QKcJ3hHEUxEsGKPJdJ84N9IEIQgYEND7Uj4454misJ4ghA+rWnEM3pPnQ7u294AAABLqSURBVJJmk+HmbXZ3BogootNs46whjSRCNOh1Oty+tcZWZplrB1bj6xaAlOikSbfT5fbaBu0kIms0ELZCmAqZJhxYOsTdu2uki8dJI8mf/sVfcXdtwJf/8F+xszOkMA6v/4RTj72Vf/Sf/RwHZ2eZbQuShsf6MIZoNRrhOeIYYwPI3ns+WQfM1qaqne0tmt0eSqoVLavqklUS9moE9VgyUkT1uVdKYYxBE4CnUBFpIwrCa1HgcZRFTqwhy0dEcQdJ4Nf5dIKrAkUcTXJA0mk2mGQZ1hjmDxxAu5xbqwOMjvYz11lDo9VEqIRWu4ebDnF5zqHDh1jfehUftWj6VaQV0OnTP/oA6ugZ/reP/CFLcz3y6ZCFZsxgJ6yNZcMhl79ynv/5618h6i3wnl9+P//V+95LxzmKogrlyltG05xmmmBFKOdVVZHUAB/nKKuKVruD1hqsuaSBS6YyKK0pqwqJw3uHMQ4LSBm8f8g9XuwBR2VD+kskDkGWTVgrK+Yagka7h9QaiSXLxgx2thgNd9kZT4lbTVQkEZUgjtv0OwkvvXCdzAYfzrCs6PiIqKkwxmESwWiwzcH+DA2ZUXTu5+DcTW7fuUtfS55/5RqtgydBdLn9+c+xuHSUaT5hJ/Pc3BqwubmOq+V7byu8gcqs8R//zUd54/XXeeo97+DcmZM8drSJdYZ2I6FyHulBKYH3mizLaDdaIaBFTuUVDanR1lwSAF95/vmL1pqzcZzU3QVa7W6tzoTpvrcGURsVn3v+ImfPPY7JJ5RFSV6VxMpTTgaIuMXa+g5Rq81MAjdWLrO7vUE22uYrzzyPUS2oMpwQLB89SENJ/uIzX2N1mKFUaBbNTpN+ouilEXPdJufuP8ri8bewcusNLq0Mecev/Aor5/+C102LX/uFd7N5b5XXr67w2o1btDsdTJ4xmk7ZurdJ5WzwLQagVRsCRG1CCsdUzSzxzz783/JLDx4L7jEPzlaUxoYVNQTUyVNOJ6zcuEGhWpfe+/jD5zSA9P7zSkdnhQ8dt5E2qBVvoiiiKMrwg5QEpXn4zGmEc5RliROwubnJwUOHSFozSB3Tb+1ipGA42gZgfXODpnQYC/OLHTbXMg4fOMDhxUM8/9w3qIREKI2MEiZFyTgvyNptBqlhLYfXBiucGmi+/KWvI6Tga1du8MRTP8cvnznGK5evYpTCRhGJ1ly7eo1sPEHrCKXDB+6EQHgQMmDdPRjmTADSYnCPf/E//Q7z/8s/521HZmqnlgyycYgd1gWYk7Y7PHDmLQy2Nj+/P1Tyzn08SRLiOEbrAGGEFLWq60mSJHQiKXG2Im21AReMlc5xYH4e4QxKxwgBzc48nVaDIptSTYfM9mdwxoBOoMxRjTaLR5a4f3kJS8xgkuNdoIZeKISKKSrH7sSwvjVkSsq1115H1EvY2jtuvHqZF195nb/83Bf41H/4NF/84te4e+cOxXSKVmGOYmo2gduXBUM2IevRbXBoOQdm4yb/3f/wv7I5LRmNxqFUWUs+yYCwawfgrac0nvbsgY/vB/CdTzxxQUg5QAp83XWtc0RRYBph7hEaiXNBnNwzKDoXFBspwqcrRTBXjoabeO+oypz+7DzGek7ed4qd3Yz7lo/x0JkHuHXzJg3lQURoFQdWI2XtOQzGRxEnpMKxthGy2XuHNQWtZsLnPvOXjHd3cEVBlU8pjUMQflfvQ8SsNeDZL0fee6QgWNysxToD3uCcIb/5Oh/59NdImo0w5owjGs1GDVvEfinQWq8sdDoX9gNY/8ePJXFCoiOSKMK7YOE1JswnyrykrML+R1WZ/TeMpMR5g/MBYJYmSFzOuTD1F4q5botef5bZdsL8gYMcmp/l5KF57jt5hEuXbyGECnBFR2ilg2ldBU9zb3aOnY17CCnrnWBN2urTjR1CR/Wf1UgpsKZCSBGmh4CpDEFsDwTAELwy3ptg5aix7B5DAcdf/fm/59YwJ8tysrzAuWD7qIwJVhEp0EJc2IvbfgBdVX28MhWOMICOYr1v3YXgDouiaN8W5nxo6UIJtA6+kSBBQlmFHZJsOiWJm7TbHbozPd544wY/+/bHOPGWR6hMyb27qwwKSTD+BB6KCLK6lDI4s0xdw6TaHzecOHWM1167VrtHw9Fybs/4XqsE4YaPmg1VGO+JlA5yvQkmc+8conbve+8QQLZ2lT/4i6+QlyVpEhR4a23tmAjvXzr3se8I4CNnzlyQUl6ozF63DZRN64hIK27fus1wPAl7It7VtSQQb79v4vGYygUAZQucLekuHCLCc/fuGidPn2F7c4OHT5+k0Wjxyc8+i/UOqcPehlQSpUM2BeHTUxQFe5sCADJKGQx2sF7i8EgVUIP3fv9vV2eUEGBNRZGNMGWJtRZbBVaFc3jrMJXBmCpcfhGYBF/+zKeZ6JRv+ySQURCacewf3zcFEEA4/zGtNeCRUgXzoQ51cOnQIXrtFlIHDmy9C/KOg047OKKiSKOUQGrNZLhDNp2yOD+DkI7NQcbbH7mPx972bq68fImN1TVevLYdzEp1h/d1WRBC1dehxFRFFkTMKMYLgcKxtb4TsCmyHhurb1PGw5F1rq7P1G4MZ+pMDT5BL4IbH2+xZYU3QampjGG8tsIffOorOC8wZk8jkBhjGU1GT397zN4UwIdOn/5oHEUrzloqU4YVKeuoynrW6wPNcxBcDD6cuaKytFsJHrAeqjJHJTHOwtLBQ2yvr/H3f+G95JXn5IljLB2/n6987XmsrE2U9URwr3lIIdEqaHhKSkxZhi4u9obaoVQoLTHWBMtd3ThcvVVgXRkur6g7N97v23b3XrYeUwasK/dJghbwF3/yZ1wZ5EgBkzxDa0lVlSvHDx362LfH7Dtc+pFUHw41SOBlmEwJIYOOpnTYh4tiRO3OD5+iITPhoapiyua9W2AM/bk5ppMBR+57iFaaMnPgEHdv3WBxcYELX7kYLsyJdF3k/X727B3JPX+fUOGIQxj4GxsKujUmpBf+W83Ce5wJDSJ8rV4I0gGGCedD0JzfhzbOuuC0sB6cCyPR7Rv8i//zD5l6yWy3H0xHKnr6r8frOwJ44siRjwrnL0Rao1WYZom6q+7DAgFlUVCWYWdEq4g8y8J2pJsynUwx5ZSlpSPk4xF5YdGtHv3ZebzxrLzyIrcHYfS45z/Bs696hyMWfH17QRH1Ek+IcsgeU5kgrxPsvKIOmLEVeB2GYnUzsdaGjuptrUg7hHAYU4Yg4kO8ncVWQVe8fOEzfO36BuO8wHu/Mt9tf+yvx+u7byp5/2Hnwe7tlBmzvwMihahvwahCltYPq6ViNB6zsbZKr9fDy5SZToPMeLaHI3ppiiktC0eO84Xzn8d6QRQnYddEyW8dtXr0yH6GuPq/iSBkQGhS3te7ebwp+8AjhUJpVaODMA8OCjJhbcP7ANzr95EqSFUhiAqPw1mPtlM+/snPBGe/tb/63UL1XQN4/4kTF7yzvytFWGXVUVQDahlauwjQRdRHqshLpARTDDFAt5WydGSZ8WiX3XHGAw+e5bWr1+k0YxItefala+GDsUF83IMgSum6q4b3RwRgL4RA+eBpdj4YewQB7Ps6CK6ux4JABJwLG+vfWsl3tf9Q7JeHqipxzuJE+B5EcGSIesFICMeLly6y7uRHv9dVAN9zV0612k97z0pVGxC9sxjrqJwLP2TvDZTEAkWRU0xGdBoJlRXM9nvsDnaoZIdeGnFzbYftrQ2K3XW+uXIvFPi995A1s3EWb8NXrHN1VtYcljD4x3uMs7i6Qcg6O0X9ActaOdZKB7eVsyDC6aHmw27vIiBj90G79w5bmXC5WbDpgods9cbK//XltQ9/rzh9zwCemJkZGFP+plIa7z0rr73EMxdfruesEXGSBkusVCgh0cpTeU+712em28GbMd9c2eG9P/sO/vgTn+Bd73onImrxJ5/4FFbGOL/nXaGuezVl1bJ+AEJW1Hsprm4eSqn9ZcEAVeqhubP7F+y4vffF13/V7+8CFQ0uS4uUPixOeh9WN2ofTEADIZCRmf7m7/3qmZUfOYAA9x89eqGZph+uqpLFIyd49HS43MFWjvF4zKQ0VDZAAVMWNNMmwnnSRsrL33yJU/ed5sqrL3B3YxdppxA1uPra65iaM8s6a/AuYDnhmW0mdFPNUr9BI5JE3rDXfakv9fHO4I0B6zDWYGwVPAhC7cMVCPUucOK9zl4zFe8CLvTB5yilDN+LRMiwYFmbST98+RtfuvD9YvQDN9YXZ3pPv3j16nKk4w806sFSZQqUN1AW+CTGuwpjMrSKGY/GLMx0WZ9qfuOJx/hv/tl/z2/8+q9TFQWHT93HfL/H2986j3OW29evUjYO8Gu/8AQ3pjELseXcQ2f44jPP8cjDJ7l4fYvF6S3+709+ISxG21DvQnBcWJDxDkGw8Eol0TKidEVw0jpXd3n2O7Sgxnze4gl8m9r+Ya1B1gZ7gfjdy1//wtM/KD4/1MU7HaV+O4n0pVCrHFpr4maHTreLUIoiH4VhlNL05g9y4+YdfumX3sd/+Pef4i1n38FgOOEbz14kaTbQrRk+8F/+1/zjf/h+NraH3P/AQ2SVZ6ml2JVdPvPl5zj2tndw4fNfI51b4nNffe5bnZOab9c1zdnAy60LfN07h9CihlvhkjP4Vof23n3rn4CQel9JUkIQ6eBxE55LGxvDHxg8+CFv7Thx4sTg4vXrT7Wi5KKSYlkrTZ7ljMZDAKbZmETHZJNd4t4cuWqTDdf5vY/9W7r3P8Zsr4MREWY85OpOxXP/++9RTEdURGxNR/zBn51HOMckz1He8vFP/jmRN7RevcZ0c6eGhuGzti5sxntBvSEf3KZehnsRkDIID3i8C1dQacKWkVRqv0HsZabc+zD2eLR3K9XO9KnByqUf6krRH/rqp3MnTgwiJZ6SQqwYG9xNS4cOI32OLcNNkru7Q6TWDCcFX/qrT3Pr7hpXnnsW1eowGgzIdu5w/ZUXGa9dZ+vOTdIIVr72BbLBNtnuAFHmYA2yCo754b1bVFV9fR62bjyWqixwdWMRUuzzYOdNvZGparji9js0ItREa8L3eh8wp9uDUULgvbtUxu6plR8yePAjXv104tChles7O+d8Nj0vlThrvaMVRwwROFMwnRaU0zFaS/70k58OlKms6PRnWDxynK2tEccfehs5kkcOHmAwHHH10pcY3Q2qr7MuDOnrB9ob5AsCPUOAq+W1Ii+J4xjh9zjsXm0LO8tBSHVhyucsUqs3g29E+P4aQCu4lDV4auXCMz/SZbY/8t1ZJ2ZmBsC5l69d+50kTn5rPBkynk7REuYOHuWN169QOM1rN+9RVRYZZewOhtxYucaJWcnXv/hZnBB8oxYHnA0bAgL2wa+UEqHCTFbrAKOoIUoItEEJhzUlznlUFNc1ce8+1QRZ1WKCkLWpMvws7wO3F0rjCEdQevGxqxe/8sEfNRbwY9wf+NCpU79ty+LDRVEg8OSV4+TyYS5evsnz3/gGWWFrzAWvXrkaVhfqzhjoFlDD6T2pfU9I9TX+2wvqHkCWtakndN969O4NzgZOLYVEeB/uhnFhzzdQM78voO6pLkLq+nvUP7324jN/o+D9WAEEeODUqafXd7dOGGNXqspQbN3B6Jgvf/V5JJIkSfHWcenFVzl1bJH5xcVwYyXBzeDr2fKeS3SffkmxbwyXIoi73gfmEcB3EBaMCcAaZzBVEEwFwacjRahxexmt6p2TINELtFIrSqhzb7z41d/5cWLwY99g+eu/+psriwfEuc7s4oe/8dwlUunZGE2oTEmR5cSR5vKliyycOEXa6NBpNrAmjBZlbbt9kxgqgzLjYX/1QsiwPRTVFrSwURXGAKFREDLR228bTH3LeowHbx34wFaUlr+rcs6tvPzsj33f9I9cA7/b66mnfnMAPH32yV/86FvvP/wRa/2TSgWAOh5P0JEhs5L13SmuzIOP0Lp938meFL8n5e/RBiGCIhzpvdmEq+/DMgihCWMiUR9zgavCJbaypp972RcYiEEILijcP73zxhs/sYu6fyIB3HtduvDplUsXeOrg8qkPOtSHhJTL2gfUvzGuaPn1EJAkwU7zfTFhT43Z+/c9+cnjUXsMoh6tOmvrwZPGO1kHxr9Zrtq/74Z6PGouWMyHN1dWLvwknxd+gtcgf/trbeXaR++tXDmB46mqqj7uTMlrNzfodXo0U42zQaT1gjdJ7M55lAo3ggAIHyiWp5betULKsPjj6g16ITWePWjiQmPZ8+8KLmgZPXVv5bWnfhrBg59wBv7119rK5QvAheW3nF2+dW/nfUmz/cFeMzl7Z3cUtLz6mH1LGP3WZG0f/7k6qwg+lRBci7du/+jqKKlnuxVSigvOl58vhfudwcrKT/1/UCB+8B/5yb6Wl9+ybNPoSWvs+0A86fF97/x+zYNvHem9Ab2OIlSchGBpjfCObDoNYqhzA6nUhSiKL5RZ/om1lcsrf5vP8/8B4wcY6HWv+B8AAAAASUVORK5CYII=","e":1},{"id":"image_2","w":80,"h":81,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABRCAYAAABFTSEIAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAgAElEQVR4nOy8eZBl6Vne+fuWs9xz19yXyqrK2rp6V3VLLRASptshISEgpB5stsGoFQYPHsaomZhhBjwDpTA2hlnU4BkYBxOWsAfEIrtFsBoB3S2ptbR6qd6qq3qpylpzz7vfs33L/HGyWgiJRQbMP76RNyIz8t7M+z3n/d7vfZ/neQ/8l8df6SH+tj/AV3r8wodOr9JZ4OZTX0uHDtDjc2tr/OP771/72/5sf/qh/7b+8cMfOt2hUT9lvX+Ddu4UQpxyiNW9SdYplQBRQllgaxNKKwmE56f/31+k3Wj2lGCtHI3W+jvbz47T/NERnHno9One38Y6/rNG4O89/O/uzQaDbxhNJveWpb3XCAUOSmcpvUAKgReKZiOEMGJq4QD1RoeiNGxvbeGMQWmNNJbJqE+/12MwGJBmOXmeP1pT/rGbDh/6+D/64R85859rTX/jAH744Yc7ieYD9Th6rzb21M7WBoPBEGsNQoQoJcnyFKSi3mgQBSGhEux1+8wtLeO8QEnN+vWrzHQ6WMA7x3jcxZQGpST1pEGrM0O73abRbFFvNtea9c5pF/LYkaWltb/J9f2NAfiFZ56/t8Q9cHV74z2YolMPI3yZ09veJU0nlFnBJx//JLfccgeLi/NIrajX6jxz5gz9QZ/RoM89d7+Z0WhIXpacfek5Dh86zPHjN1NPGhw6dJjp+QXipEYQBEipkEoihERIgRDVUwrxEaz84NLS1NrfxDr/2nPghz/64dX2zOLpcZG+z1qLSXO8t2RO4LOCc+dfJHBAGLO+tY5Qmk6rTZIkvHTuLEWeIaTC4HjplfNoKciLgu1eDxnVeOHlVzG2oBFFvPub3ss73v3NhFHEeJISq4goDKqwEAI8OM8DVvLAxfXuR4APHvlrBvKvLQI//KEPdUyiP0AQPijieieKEsqyJB1PMGVBrATkKb//h7/P8UOHubS+QWk9jeY0aT5mb3eTSZrR6/YoipR6u40zFik13lpyWyKFpN/rE8YJt544ysLsPPd/2/eweuI4tTgmDAJqteiLq/JQOk9eeoyrMJVCnh4V/OxdR6b+Wg6dvxYAT58+fW+rWfuwkmrVejDW4WyJtQZTlmgBB5dXGI6GnD33EhfWLrDV65KmJSiFkoK93W1K44jCkJmZabY2NhiNRwRBxNLSAZIkot8fkmYp49GYdqvDieOr3HLTnbzn276T6bkZABbmpm8EH3hBYT1Z4THOIyUIIVBSrHlr33/i4Nyjf9W1/5UB/Cc/+I8+5KV8MA4kjVpELQyJlCKWHrxDY+ksrrIzyvncU08zScdc37zO1vYuu7u75IUhjjRBWGM4GhJqjcdjjafIU6RShEHIoWPHmZmapr+3zWuXLwOeTnuaVqvJu/7uN7J8+CbuetPdnDy2ikCAAOfAeE9hBQKPFCCFQFS/Rkpx+sDc1Af/VgD8hdMPru7l5cPpZHJKeEcShrSTiE6S0KzViKMQrRVSaV7rl5x5ZY0nnn6KWhKzdukyxjsmgyGj8QStFQiFcxbnPEI4pNBYa8CDjjRRrc7c3CLT0zOUecHLL7+IxyO956YTx7n71JtZPHYr3/ud30EtjhBCgPc4wPkbi/V8yf6uvs5oX9y/9J94Wv8nHSIP/8yDp5xXDy/EalW2I7wUaKWJ4xqNZpsoqSOCAC8VXiguvvA4n/rcZ1icn2djewcHjIYjsjRDComzDu8sQkqkAGc9ThiUrED11mHKnM3Na3R3t4mTOqYs8c6BF1y+eo2VlU0uXb/GPXed4rabTxJG4Y19jACc83j/xSfeY53DOXvKWvvIM888c99dd931VYP4VUfg4x/+mVM480gc1ToyCBBSYQHnHEoFqDBEKg1CgrM4Dx/9w0/xyOe/wMXLVxACnHWMRyO881jjEKraVlR4AB6ERCLxOKQQSK1e/7RhFGNsSZmXeOsREo6uHuHuN30taWH47u99H3fddgfee6yzOGtxpsSZEpPnTNIx3dGQ3cGIsrdJMNgmGm312Lx037f//O9+VUX4VxWBT/z6/30qVMEjQsmOUiEe8N6BycEUYEucLfA6xEsJ3jFOM/7o8cdZu3q1ijil2H8j9VqE1AqtNRJHWRgkFotHIEiShFoYsrK4zK23nyItLXnp2Ny8zqXLa1xbv47BglJMipJud48sy3np2Wc4MDvNcDSku7NJkPaITY5Oe0zWL7E9HHGp0GzloMsh8yJnSvuORz5y+vvffd/pX/zLg/iXBvCJX/6ZU4FzjwhlO95B6UuctZRlTjkeYtMxwntUFOHCGEcVMVJI4iCk1ewwGK6jnePI4RXuvu12Th6/CRWEWO/Jsoz1y6+weflVxntdAq04uHqUI8du5ujt93D8jjcRNxoIKRn19njt3Et89Nd+icc+9zmKvCDLxmxtbVJvNBFFyu6VV+j3ukwGXZbnF+gsrkA+YTAacv3KNa7lip6RBMJRas2O9TgVdlrNxiMf+rH/9r4f/hc//5cC8S8F4O/91IOrw+2dR3QYdwgifFjDCEVWlIzGQ/LxkNgZWnGIRjAxnr6BSEpm6zHzc9O8+NprCOf4O2/5Gv7nf/qTtFpTDPd2yYuMMktJhz1Wppqs1UPSnW20kqwcv4Xm/CFa04uoIKj6YCnpzMxx5z1tmnHE7u4ez557ibiW0B8NkVJRGIuQGqk1cWua+vJx4vY0ZZGzt9Xjyd4zhFFMp9WkEcfEgUaHEVFcY7oedWaT4JHf+4Wfuuub/vGPrv2VAfzo6QdWJ9nkkVE26RQ6pAxq6AbIICYrLd1JSZkZFmsR8+0poijGFJY8HRIEAiEUJQpTGJZmOvw3//AHaLWnuPraWS6ffZpGexYhNZNxD5tNUM5SZBk+SfBCkGZjhr1NZtIllA7QYdU/6zBkcfUYf+/bvpsLP/fTaBUzNzNHnmZsbKxTTI7ispRQS+IoRkc1CEJqM4t0Fg9zZHGZhalpmrUYpQJkUD1D4dAm67is+8jDHzp93/0/fPrPBfEvBNCU+sP1JF7NhWBcOlInqVlJPQ7QQqJ1iIrqTLfrtKZm0WGIHfTR0hPguLazx9WNdRpJjR/6736IwyfvZNTd4dWnHmd34wo6vIyRAi0V3mSMRwMyZwjwXL3wCi6qUWQZzeklWtZQqyXUGnWUkjSnp7nnLV/PHY/8AWtX1kizCUcOH2NhqkPsckJpqAcBoQQtBd5LWs0mN99yByudOZqNmEBKpFIIpVFa45zFTobk6WDVa/lh4L4/Dx/15/3yn//Q9/zEgbnpBxYXF4hrdYwKMCoiSRrUG3UkkkmWYU1OXUvqgcCbgu7eLpe3d8lHfcZZyWsbe3zLO9/Nu7/17yGk5Norz3Hx+S9QmgIZhigpcbakyAryyYQQyczSMlIKojhmavEgjfY0UJ32UimUkiitieOYQCiG4yFb2xuUxnDH4QPctjJHLD3NOCTozCOjBOuhMAalAuZmZ2jUm0RxQlxvUm+2qTVaxLU6HsFk0MWn49W///a38Buf+PRjX3UEvutd964O0vx0Emq0DjDeAhLnwe1XoMZa8rJkMMyQ+Zist43JxlzZG7E2LgjDAGSdSZZy+PBx4rjOeNwnH/dJ6nVkWRLFNUAgogifNKqi2sP84iGSqVlQmunlw0zPLaHCCOE93jlsaQCQUnLbbXdw/pUXGY0nqCCkXgup1SKMciglq+rAWCwQRRGHDqxQryWo/ZZECoXSCqkUzhqEFEz22uTDHawXp3/xn/0Pj33///q/P/pVAbjd7z+yHgsur0nMaMBEBWyVilzXQAZ4IcgmE/IsJctTrvYnvNDf4er1dYaFpTE1y+HlFYaTggOzc7hJl3Fvl9HeFqEOOH7nmwnb0xR5QTruYkZ9enu7pCanFtWQFISBoDW7wNTcMvV2Bx0GgKDIMoqiQFkDzhHHIW+8+81Msoz1rR2EipBao4xAWINNR/h4GiMUURAT1TVRECKkROw3J1JKALxS2NgShgmF8DjvGeblh4C7vhJOX3EL33nq1p8YZcV7c2ex3jIoS/YsjI0nkIJYCmpY6r5gSpQ0pUPiGA17XN3toZI2R44c58jKIXZ2+xw7sMTB2Q7SFqxfPEc66qGiGlGtSdJoEOmAdNhjsLtJf3uL4e4GeXeXGINXAQQRUa1RRYlUOGPIJ2NMWVCmIya9Ha5duUijPcfWzjbNZoM7V5f3I89gwjbU2jgp0VoRRSGBDqo0oCRSqopD3OcRnbNMRj1G3Q3GacluXiyevPOUePILT31ZFH5ZBK7evLranYwe0CokM461kWMUepZjxWKsWAoF05GlHjniMMKXkqIZMRoqFuQcSkvs1AonT7yB6akZXjz/CjXtGe9eY+OV53HOgge79irtxYNEWpP29+jtrJNPJthsgklTSu9YP/ssye42w+4e+ajP1NJh6p0ZJBUrXYwH+CIl623RrkUYAc1Gs2pYZCUPpIXDo4i1Qotqm0ohEEpWpCvii+wNgLMgFF5FjJ2mV1iGhSMz5gMPPPjgQx956KEvocG+DMD5ODi9PSlXm0mNhdk5Di0tMzszw3Qz5kBNsRRBM4mJ4hAdhHjnKIuCUEIkHLYxjVo9xaHVW9BhSGeqw3ynxc5rZ+nMzDO9fJDtqxdJB10ikyK9JqyFLB5aJR/02Vu/QuYNwjhG4wGTomBva4O9i2eZPXorx+7+O0wfOELSSCiGO6T9bWqhZuXQEdT2HnEQkpWGjJhUwF4xIig9ERKhBFJKhFQIKg0GBAjBjQ7SS4+QAicV/RJ2MssgLzDGdlyv9yBw+s/cwj/1wLtWnbMf3ssd9dYUx1ePcOTIUZYWV5hut2mGgk4IUS1E6RChFN5ZirLqNcFDe4aFE6eYmVukXm+wt3GFW0/eip2MOHrXW+kNemxcvYgIA6K4Ds7iy4zelYsU4wGtepN00CPNJhjnKbxle5wxNAXdNGN7t0t/OCJJGjRabdLtqxS9PeaO3kpnZg4pJEVhWDxwgNSFXBsaiOpMTU3vb1WFVnp/6/6JKKQiXKsgtPQGfa5du8xwMibNStKioDD21MIbj/3rtTPnsq8YgQcbtdPdZszFkWF2YYVbb7ubo0eO0KgneJOhRjvIyWZFFQHee5wDaz2F8UilSZI2zUabKIrRWnPT8Zsw4z3C9ixn1y7z8G8/zO7uHkJAoDUtLUl8SV1YmnGN5dkOw0nKziRno7SMjWdnbMiu9UBepRY9z9zcAm+67VZOHjrE6qHDaAXlZEAyv4LUMCpKXrzeJVAhu6kjdALnQQnxxa2KeH0d4Pe77xsBuR+paPAebw3OFlBknXkrvyQKvwRAHcXfUI9iphuekzfdzC0nb2F2YR6tNbbIKLTAZTtYYysGxQucc+RlyaS0VbEaxegwQqkq38zOLbB27knWd7b5zKcfR5YZh1p1rm5vcW2YcskJEJ5OrFlpWOJawMYk59Kg5PJwTFE6cI4oDJhr1jjQDoh9SrF9mYGfsFP2KScjSJrUpudpN1s4DI999jNMT8/inWV2bpobtNb+Tt2/+P5PAFqVR26fwcE5pLAIV6Kko64FQVij00o+8KHTDz70w6erXPg6gP/2x/7BAy4rVkOtqccxS0tLdKamSZI6UipKIbFRwrj0WA2aAIGgNCW745xuZggDTUIAQiGE4MWzZ3nl7BmGuyPm6m1uecMb2e0PqwK5M8tUv093NKYsc2paokJBbWYelVvqRMzFTbz3xIFCCkkYBMy2Q66lHtHLSN2A53cz+v0ey5sTvkHGTPKcIweXqbfafPILTxIFIbffcUcVcYCxhnFqicMQqWSV95zD+wo87zz5ZETR32NaWkSsCHzIWCl0IJjp1DsqCN4LfORLABxMivdhSgalwQhI6g3COEIpjVQCaxVGKAZeY1DEYQu8ZywtVwtPP3PEXjKHBFnll9/8Dx/lk//x43zHO74R2TiALQzboxFWBpzf7DIZdgmFwGQTZmabXOmmXH9uDW8LJllJLRQUFkwY8w1f97XsFoLHz7/KyeV5Ugfr23scXejQ72/zwmvnueuuO5lZOsrK/DKvvfg06ysH6Y/GyP0E571nkmVc6/fQUlETktAbRFlSFCW5rYi0wGX4cZdOACrWeKHwyuLwZE6jnXrflwD4Aw+8d/XysLxXOMd24RnkDhWEqP2WqRIRJBbFRAaoIEYHNZwxDK1iWAoGhcUqmBbq9Wz8NW+6h92LLxF4w4svPcurW33q9YRbThzm2fPnkd4xM91he6dgN7fk1vK2w1X99ur6NpGGq8OUdj1kplXn6oWrBFjuvmmVetxARwn9nWvosiBRgoOLh5haPshjv/QQW3tjVt78DubLgnoYv17aZKbg0ReeY7Td40gQc6KuaUeKUgaMnIS4xlQzJJISGQeQBgysxWaOkfGMi4yBKu598MEHOw899FBPAwwKe2/flljvGYwNIyMRMkBUMta+SF2xxbl1xMZgS4MxJdZZFJ6a1mglq4gyJcZY7n7T1/LK05/l8FTEbE0y10w4d+ESm+fOcrip6Q1zssGAONDMhILCOw6ONqA1xVlr+b7veh/nr1zihZde5LOf+wxxEHL7TEL/wjmWbrqFg0cOEa+u8BkV8rZ7vo75uQVUoDk8O03QmCcVkjCI0EoDDiFAK00S1/CJp6Hq1BJFFCmkUBivIAqQgQRZ4FVAqTQlDil8pal4KL3FYt4LfEQDxCp+z8RmeGdxSJxzjMYjsiwjDAI8UOQ5Np/QMBk1MrQoiYVH2TG6LhkGAVJLRDpgd2ejkhG94ODSMsurB5GuZH7tPC1b0OvtMb0ySy/vYE1GmOX4JOb2Tpv7v+PbCQ7ezODf/hsmexu8973fzbd8c8Hai0+wfvk1bDYmkbDYqtOOYsLOLLXWFLfd83XU2lM4PHE9ZivL2Vu/jBSCxQML+7WeQElFozmFpEEiQ2SkkKFECoHyoiq0lUP4Krt55wiVpBYGJDVFYR3OejLvvuF1AA+19KnJRFFagSol48mEM8+fYW6qxfLiAghJORpQ7F5hyk9oyxAtcwId0Eo0U6pBfzTGCshcznBrjfNXLqKs46bZadrzy2Q710ikZ/XgAdK5KcbjlLIsUELiB11eHIz5O3fdTmN+maAzxXd+4zv4gyeeYLK1Rlxvc+Km21iZnWawfgmTj+kkMaGCpN6iEWk0pio9lGI4GHDz8iJPvnqVnfGEMr+dG4KckII4DHChQIkQHUrQAikkwoGTVVUgAHnjjJaSIAoJw5jYC0rnEFn5XuD9+pf/xwdOWW9WJyqkKErIFF1hefYLn2Swc5XF+QWSKGS+pjlWF8xPJ9STEKkDlA7wSiJlgDEG4z1ogY5CdDHG5CmN2VnGr56paC+pEYGiVW/Rnq8E9XQyYW8rYmG8xqGZKYbPfJJ4ap6pgyc50G6ws3GNyfZTLCwu0ZqZZ2pplXI0QGmNsdC/9BKN3jpFb5OyPYOXmnpc4+jxY0wFkvVul+VGWDEvyKpglgKlFUpV1cKNHI/wX9R58AQIJICFUoQIQpyUGG+RWnZOnz69qmdb4aorJSMFYywtDWGgyXt9Lpx9jt7lhJl2g2BlGXNwASmbCFU19UiJdyClrRR/JCqMcUGNuK5JS8+oSHn17PNc6WUcPXKM+SSkJ2vkDgbbm6xfu8aRoORwBJvPPoVyJaU5z/k//gRvfOt9XOptc/b6JueuXGFx+RD1zjQCSIsCefkawZXz6CRm6+UI4jrx1BJH772f6YakHkcc7O3hputoVYnrleFoH0ih8LIC1HPDS+NxyiMRCCVQzuPxYDKskGgt0XgmvsTa4l4dIk8VsvqDKqwxe/xmTp1cYLZfYIsJiXYkoaLTUuh6gb1RN0lXcXNUYriUEuclqBCURkiHFQJjHKPJmHBvnYnps1FrMvEek+f0e3vMxyFXNzf56IUdjk7VeUs75Nwo41PbIxaevcDfv/kgc60O5y5dYnjxPHPT08wvHuDg0WNYKdisNRhPxvhBn9ZoiGzMUG9PISNP2JqipTVFLalSxf6BGEhJriowvQAvZZX/hAW3345UcKOlR9sSVxpwBkpRFdtFSV4Uq9pK8YaydOTOoeZvZuX4fRybmsM4SelAKoGWDm3HqOE6fvgyzlqEAuGrqyi1A6VwXuKlrq6sqp5xq0XcnmF3a5u8KJk9OMfi9BRmPEarE/jJiN/d3OH2A1MQRDxhDHsypt2RxErx0thyx0KTg0uLjEZjTJGTjfrsXbsEUUzqPUVUIxaK3HnsoEu+dZnWrbdVkaYChJBww86BQEtR9SNSICVIKfBeoJRAK4FWConC7Qv7uAKKnAkZWlYifVF68rw8rI01HWMcHknYOcD04gKtdg0lFdYJvBIEyuGKENPU2Csb2LwL3lVJVoqK3ZC6+nhKgZJoFYAXDAy05ha4+Mo5dgdDko2rZKYkiBMi79kbDNn2AU9ud3F+RKsWorRmXMJdt9zC15+6naWZWcqiZO38c+xeu0TqHPnuNmnhEEmLZqdF0JphNB6RqJClxaWKpLjRtu0X0fstMEru+wir4gYQKAGBUgh8ZUlxCi9k5Zxwnqx0DPddXgDWe4TUp7RzdhU8QivqnQ6NhiYMqjeBx1uBkK8fRhVgr3eQVfIVwuPlfm6RAiEkgfQESrOxvclMo4lGkGcpF9evo8c5AxnSH464uL3DeneAsw6tJFlhqQmBLUuePP8qY2N58223Mjs7z+Gvezf1i2fZvXCe3qBLmhd4P6Q21SZznpYKWD16jE6kKa3FeoFBkuU5g411rNBMz86ipCDUEq0ESguErjqnwHvUvgBF6XHO7R84Gi8DSucprMEj8CpACjoaLztSesJai87CDHEESjmKomSzW5AVnkbsCX2OH20SjXoESuBv5AoHDrnPbAikVGilCJwgjkJ8XqfMRzSaTa5sb2NNxmt717jUG1EWhjhQ3DQ3w7HFOWqhJtABozxnb5LTs5ZrGxt8fGsLpQNWlg6wPN1kLgiYFJZeXhLLgNxCIjRx0qRPyOPPv8rnn/4C3e1tnHNsrK9z+dJFpNb8n//HL9Jo13CxI4l0dRIrUW1n50GAt46SyhqXG0fuqlxpqkqyavekQCnd0UrJjnWGIEqIaglaeoQ3pGmPp595ko2r12glTeZbkmU1Yqnm8fUE78F5V/1B7yiNxyqBQFbFaq1GHESEs9BdK6m1O9TigEuTksu9IVlWMhOH3LOyQD2pgykpixStItKyoKkjAm85sDDNs1fXuXx9g+3tbboHlzjWqhPgEVpicAyLnOV6g/bUPKuHj1P6gHySk5/wnLvwEp/+9GNgHZQFaZbyhuOHSbMRoVLoGztHgHcWay15WjIwBSPj6DlJ6iUITT10SB9UJ7eQCKU6OtBgjSAvUyb9XcKkgRCSdDwkn2wTyQFxADiFkyUOjbMOISseECxZWZLuh7sQijCICMMaWoeEWlMTjq0XnqRVb9EkRewNwVsC4emOxggnaEUxibMgUmalINMBO6MBm+vrmDSjpjx5ntEfDjHNmLoSBE5hnScKIprNBmG9QZaXNJI6zz39OYia/PiP/hjleMxvfuyjJI0OSVzDlY520iIOXOVjusFvOospc8irKMwsjFWCCyztENpCIMU+Mear+lHnRpA6GAyG5K+8gMWiw5ir1zeoRTWWjhyj2WziyxxZjJiUI8gKpJNoXyXnzEvGIkYFMbGqeugoCInCCK01dKZJpmaZmZvGxQOe2+7ivGBlaZZ3f83XsjI7T9Lu4NKUWquNl5JgZokSydUra/zx5z/DH332M8RSMBqNaYjZKg9bh9qXF0bDAXuDIUtSMtXpcMud93DzrbcjheBH/vsf4cknPkeeO4yB65s7NOsJy/MtaqHE73cp3np8Ca7MyPKMEonUNSJpUUoSqqA6F3zleHXeoe6/782nR14ycIK0TGnqFJtusbO7zcRIptotkqQGQFEYjDXkIiAVEbkMSUVILkJKFSLjBlGtThQlKB2gpEZJQRCEZOM+491NbGl49to2cSA50WlQz0cUeYY3JWlZMslSKDP6/QHrly6weX0Nn48oHQyzjKKwHGk3KIxlXJQYHTGzcIBGe56JgQOHjhAEmqwwHDm4Uvmm45hDh49y4dJ1Wp1ZVBhRCzQeqEUh4Cqt2RqKdEK3u0evv4cxDocgCAKCMEIHQSVjyKpEE0qhr7twrXSspsIxFWiaNYe0QyLTJ+1p1FQDl0vySUpe5IyNRjmJFqARBMG+0qUDlAoIwrAaOfAOXFn5/6RkanmV0eIyW4NqbKEeaqQvGAz2OHvtOi/0xgzTEgnUQ0UiBVEgaSUNWp0ppLeYsqDILRe7PZT0COdoJm2G/T5Hb+mw0+0xGacIIWg12pUU4T15XnLi6HFq9TqvvPYStbhGt9uj3aozWVmiVdPUQ0+RpXR7e6xvbpHlpjqFqQptocPKb+g9Xrh9HVms6W5B1V0ISe4kk3GKz/fY291hMmww7O1QZHWyogAnUIHC6wCLRkqN8RWpGCqFDoJKMsTincIag5MO5ywvX9/AoCnChCAM2R2NeHEbmjNNlmMN000+v9Fjd5gxsZpjnRglYJRN2NnM2RzlDMYFOlKMnYXC4FBE3rEzGbO8cICL159hkqdIrYiiGCkl1ljSLOND/+pnOffCUySNFtubG4zGAxYWDnHbyZPsbl/hXW+9i7IsGE0mFNaD03jvENKjdICQGiEk2vv9wlzgHT09yN0Z4eWqwLJtxrxQ9MjGPc5e69JsBhR5iZMFeWlBSCKnEM7jpcebigHxOEIXAFUvaY3F+QKBxDjL//WRj/DbH/8YJ5Zm+a53v53l2WnODkZsjUtG8wE3L88zo0Mulq8xLrvMtGu84fAi1hgu9EZc2evTm2RY5wlEwDAt0boq2i93+7z1+B0UZUmWppSlYTCe0G7Xsc5RlCWPfvpTXN3aZeXo7RTphOvXr1KWOTpI+MTvv8jiTJPxG46SZjmlFTgR4YXAOcCX1W6SJX6/XBPSVSAie1jSkKUAABXASURBVHqSmb5HEAiHLD3Pbw5Y39lhuzfm6EqTje6AhmFfDgxR0r9ev0sFGk9pwbpKTyhLg/eyIhik4nNnX+PM2Qt4BOcvXePhT30WoTRhqHHeMbCCa1YytqDCkDhWeCnpEnJwaYlEbFFuD/AOtFJoqTB4jHFkkzHTU7OcOHAYV5RsbK1jrcVhSOKIoig59/KrPPxbv0OWjkCMydIJeZqSjvoU4y7d7Q2+5Z/8IBWL5XGmJM1TzP6MiTclxnqct1gRgLeV5bjqvp7V23vbZzy8L0CC9/SHXXZ6E4rc0h+MuL65TSstCIIArYMKNKlQKkIHmiBQRFpRpCNMnlNrNInCGKk1qQv46Md+na21FxG2MvecefY8R246jtaaPMt56uomz23tobwnKwuM8QxdytOXr3D2+jqZtWTGVI58Ualpe/0xCMFMs8HdRw6A9Ozu7bC9vU2aFSwtTeGALM34d7/xa4yzDEXAeDzCFlklqDuDd5qDR05w20030UxCplttcguXrq+zefkSuXEUxmCcxPmyah68ACWrjsyxpnvD7IywGWVZMCkM2XjCOM0w1oDNmUyGTE1N0ajX98sSgdYBgQ6J4ogoCskFbO9YrLhKkiTUkzorB4+ztpkiZYRFYk3B1MIh5g/fzPziEr57gWc+/2mGEweTfL9tdHiqpn40yavZDinJ8xKEoMRRTiZEYchsM+HQ3ExV2nR3uLbTxSlJmudEYUCWZvzqx/4DL7/2MoHS5JMx49GAMIxZXDrItgTjJXe/5e0MS4Uu4cDyCkJpao0WW9ubFKMh6sbcHQHW73OGwqOEQhh3RpvR6ExUE5ReMZqUDEcZRdrHeQdFhsknSGfRwhKIBsgYhSPUVT8ZaYUzltQ49oY5ojtgqpkQt1d4+Hc/xsXzz+Ndyc1vfidxrc7S4jzf+s63M8OIh7av8OTLazhvEQisdRjnCZTYV9EEuLJqu1Wl3daTiKkkYqGVMBVWLoTr69dZvuPN/Mi3fQ9rl64h8Hzs4X/P459/kmbSYHfnOsNRH2+qAwEsh4/cQpQ06e1scPpf/ns8kp/+Fz/N7UcO0ZlSLB84SNLtYl3VojoHTigk1cyYFwphizNqbW0t+/q3veW9UWN50UcNTGEx2QAtJY0kZLoVsTw/xVS7TbPZpp4ktJotWs0WSa1Bo96gntRJ2gt0ZuY5vLTM0UMrPHPuIo8/8ts4Y7jznrczPTPHe971Dt73Hfdz0+pBAiWob71MMjvLlY2K6vL7UzHO+/1Jo8ovIBQkQUCrXoE3F4U04wgdRHQO38w3fdf3sXT4OL/1id+lWW/xwrmX+PTnP0tvd51ud5txv4tJJxWLnWdsXb/M4ZVDrF96hac//whZnhPXO3gVctcdt1CWJf1ut9Ki4zphHBNGCVEYE0QRQRQThdGZf/qj/9PPaoAkjh4LGyungimBVCE236IsS+Zm2xxdmGV6bh4nYjKTU6Qp1lVDKlFQYmxOHCe05+ZptTu065q9bo8/+qNfwCO57Y33MSlGfO97voPbT5wkkArnPCqsEUp4520n8MMuT712mZ1RRp6XlcCNr4QeJWgkAVNxSKwlWlQdgE/avPX+B7jnrffS7Y84c+4s3V6PlybP8YUzT1JkOf1+l9FgG5NlyKBGkY4q/3VZ8sf/8WGkDKh3pujMrZA0mrx49iW2d/fQWCaTEVmW4qUGFMY4SpPjqexvUujHXteFp2cXPx635z7QK0PydETvWkKhMqZaHZYXF+nMHqAkZJRn5GkfKSVKecIoIIhqSB0R15s0mk0aScjnnzuHyTKO3/w13PPmN3P3bbewvDTHeJIy1ajjvSPNMgoUrrfLTD3h8HST6UbM5jBnnOYUpQXhiOOAmUhTD0IslfTaWDnJ+x/8cZKkwbkLVxhNxpRFwaA74InznyMb9cjSIUVR4q3FCYnJRrjC7jtQJUGS0GjPMTW7TNxo4U3BZDhge2/I8YPzFGXKcNRDCInxHmMtWZ5jTYlzDkfw8dcB/Mmf/JePfuxXf7W3MZSd3e2EMArx3hJHAUmSMDU1DUGNWQ/ZpIUxBVEUUq+1qNVrGCepJQlhuO/akpql1Zt45zvezRtuOUkt0iRhSJLEN9hyttevUQpBureLNYaGhEBJVDNgL/BMcoNzlkgKjIDCFXgPt37NO/nWb/+HHDuyyvr2HsZabDbmU4/+AS+/fI7JsE+eZ0jh8FRpAGdx1oESFetUb5I0Z5mdX2FqboEkCJlMhpjScGV9h7tuvYnl+QUCW+KoqKyyzCi0I8sdeW7W/ref/X8efR1AgE6z/kupKT6gA02oFOW+WIUrCCSEcYRQijhSmLIkDEJajRZBrYZ1oOKwmjpSgqWZhDuOrlIOtlhfbzIuCsaTlLtuv5ml2RnysuS3HvkUF89tkiiPyRxXhjmYksIa0sLjnAEpKT2E3uOEJlg4xuLRN5AbKAtDKB2feuy3+cNP/A7Dfm9foxF4D144nK9aTOchrjVRupoHqSdThGFEOtymt3mJIIq56da7aCYBTz71ee658yTtZgvyWQpn9+f3HNYU5NmY3JSP3sDtdQDLIvt4kZcfMEWORAICYx3eGopsiFMSKSPyssCYAoSndCXaVi3dDdUeAbeeOMb/9ysf5vlf+QL3vf2b+e7/+vu4eHmNf/XzP0dRFpR5yk53jyCqM+pt0dvZQAUBUkjwGikDhLIoWS14pARhYxZJxO/94e/wxPNPE4iCi2efY2drE+9t1Rk4j9t3UTjjcFrQbHVQSQ1rDTZLKUcTtnd38Ahmlo9w8u63ceLYTdTrTVYW5mjXYzIrabcXsA4mwz28d3jlKYUj0gkO8Us3cHvdYPnLv/Yba2+77533ru9srQ52r1GWBTPNmNlWg1pSJzOWwajPcNjHGoOWHu8MSjiUhDBqEkQRYaBoJjXueMPdPPfiWcqyoN6a4clnn6LIC65fucj2xmWs0Az2Nhn2unhrUEHlxRNBVBWpSqHq06BruLKkFgQURUo67LJ56VUuvXqOdDSoCmLvsb5iVJzzuNLghQdTkg57THq7jPb2GHd7ZGlKEMXU5xZpTc+SxLWKtpubIwwClKz8QKXXxO05kkYHV6ak4z2kK6hptfadP/CjP/xlEQiw1+/9ki/ye6WSKCUQUuKlxFPZwKwTIBxhIAm0RApPUaREUoC3r7s8hYCjh1f5uZ/71zz17PN86jOPsbe9RS2OWVo+xCVjuPnESZ5//mnGZUEYapSU4AW+yPG46qRPJ9iipCgyBiqs9Flrq52x72tWVIPVfr8V814gbui71lUJ34NAIqQnjCu32aS7iU0HjHc2uHLhJV56cZFDq0c4sHyYxdl5OlMtGpOYej0mmj1BfXYV7caotHv6T2L2ZeOu/+D7f/Di9ctnV4fjEceWZrjt2CEOrhym3uggwxAtHGGcEOiwEtaBUEuI55FRgySJCbVilBY88cwzPPr4Y6xfvcRudweJRIcRi0vzjHrbvPL8i6Qmp95sV3MneY43BV54vPVY6/YPgSoHOVF9v28yQPiKFRdCvO4xFbD/un32WIAKKkeE94Ko0QRnMJMJXgiCMEHqgDhpMj29wPTMHDOzi8zMLdJptZiemWW20yKJQ5QUa9/9X33jkT+J15eZzG02/qCW8sNKCpSWhErSadaZmpkhShL0vjdaSI2QChB47zAyQoQho0nB7u4ez798lqeeeoKrl19he/M63lbufCcEt508jhl2MUVGHAZob8jTfH+4umqVvK+m0VGVC/bGiOw+p4701Q4R0uGsqCTW/aiUXiCDamxBSomOaxWfh0P56uIoqbH7Vl5nCopxn5EKqp2wb99IJ2NGacpoOEUtrtFuNk7/aby+bE7k+efOnLnzDbfdW5Tl6tL8PIdXlpibW6DZbFOrtwijhCCMCcKQIIwIwgjCBqlVXLxynXOvvMaLL73EF77wWcbpmCuXXiEbdrHGUJYl1sMkHXH18hrGmspfs6+93mjUxb6yp1SAsRZn9ieIRcXFCc/rcx0y2HdUaZBKIvfzZ1CLkbqamBdSgFIIIVFKY8oS6ypTvHPV5LsQAsKAQFavM85RmgKT5UilUVG49r/80Pe8/0/j9RUnlQ4fXPlgWE/uPXX7Hdxy8lbqrVaVYHWA1Hr/ykscmn7qeW3tGs+88BzPnX2OIp1QFBmlMdxz6k20Q8mnPvkJpKqyRSBh1OtSTLIqV1lLFASgJYWv/NAIUR0GxmGL/cj1tirgpUSG4GRVK2glsd6DV/vbuLqFgNQaEYSILAOpUSoEPKUpb1gqqpLHOQQO6x2uzJnkKW6wS5anjAPNjofhpM+p9tvu/0pY/Zkj///sn//4Q2994z0fWDhwEB2EFQW0L5xb4xillvWdPc6ef5UXzz7HhbVXGY56FHmxPx8yQ10JnnvqcUbDIcgqedfrdSaTMd7YKjK8R0cRAk82ySmNAX9j21ZGcISoRJ3a/mAi1SEB1Y421iJ8pZapuIZJJ8goJm60sZMh1rpq3BWHKTJ86bC4yiRvLQiP0powbqC1RuuKjpNhUJHGQn9k7cVnvyz6/swIBLh9+cjpzuzse8K4vqqDYB9rT38wYrc75tK1Dc6+8jKXLq1xbf0Su5vXcTi0lJjMUeYTXNIkz/P9y2SJay1UvYkZ9MD6atEOkCWBUshAEgiNsx4hqO6vpSVBqAnjBBlofF4gvNm3pUm8KytW3Hl0FBPWG/iyRDhX0WFBDe/TKr/u377DS4+0bp8WdoBCKElZTDClRDKpcmcUIzxrmSg++Gfh9GcCeP/73997/vnn3y+Ef0Tse0teePUSg/6YMy+8wOXLa/R7u+wN+uxtb1T6bBzuayKCephQbzSZWz7C5Qtn0UpzZPUoot5i5/LaF5kXITAmx8ch+3sSoQXSWGQQokNVpQtn0F5itMAWDmTlpJVSoYIIW+YEQUgY18lVH28NwjlUoHE2qCoGW1Y0/T5swjkcHiUF3licqbofYSxeK7RzCMH7exs7a181gAB33HHHo+fPn/8gFD/x1LlXeeXli3ziD36LtYuvEEYxrfYchStw3hGEAVJ4pAhoJHWCWoLF8/V/95v49WsXwDmuXb9aTVlqXZ220sH+7UjyrEBLiYp0Ved5h7COoiyq5QoJkUXI/Y6lmlOtzPBSYp2raCddyY/GGqwzBEEI0qP2KTK7r+veuLNRVR8KnCmw1iGp7GvCOXxZfLC/N3j0z8PoL5xYP3ny5OlHPvnY6rNnzr7v13/939DdWsd4RxQ3kVGtUt72SwODR0YOHWnwjk6jw97eNnMrq4x3N4mCAOcq845xriqAcXgvkHp/UrI0lLlFSPBSoDzIQKPDoJrzKHNEpMGAigKEDrBlCQi0jvFSIpXGC48zFgJQUmHKvLLlCb8/fVRRZlqq6mfnK4uH91jncfCzk/7g9F+Ej/yLXgDw2FMXHvzNj//Kmc2rl7DeIZzD5BPy4ZCyyBFUHYTLC6obmFRXsdNucenKRQ4ePMbi6k2MRkMGe9sUucEYi68sYuiguvVJlNRA/v+9nc+OXFcRxn91/tzb3dMzYxIiwQIpFhJrzxu4nyCvkLxB8gbOG8RvAHsWyYIFbGgkJLxgMQKDoihGHSkWJBCrMzM99985VSzqjsUCge1xcqRe972fzjlV31df1RUWq4bcJJZNJmVvhkYrYz9SS4VRSSnRtEckFNECCLFpaCLIHK0xnyqiVRF1B4JV9YhuOpvLAjbV54CqVhA7P0rt/wXvhQF88MF7+6efP9kIspPnKnGAgOtt00AxkJSQIOSYWZ+ccnW4ZhoG1kdr7py8SdGKihCaRLNYkBeN/+aC1U9++jNCdoYjKcxR3x+xVnMdb7kktAmL7nE2VbQUUm6RlOgrM5+cy6x1QlHnxshzZuM5eUD9DMwTjQBjt8xHm/1+/0LT3V4IQID9fr8PGjdF2RWgaVcYgXEq1KqYVOejIUKMnB6t+eqrv7NoV+R2yXK9ZnXyBiEKYoZEP6IEqBFiSqxPTwkpImk2P87KtJqbHuMiIymCGrFZAEKtxaX/JhMIRK2YiDMYE6oqUh0cxSOxFsVt5OI17NmMKXBuNbwweC8F4AziLlY5E+w85wVmBa2FWibKNHmSGzM5Z4ZifP3sG05OT6g60nUHmsWCo9XaGYICtfr8q+r11y8+/bPfqaXOmp65hRh3ULUhQKmoCSm3TGVES0FMWWSPtJh6nkx24/vcA4cpQStizjpSiM6pzdMp4LxNy03f97uXweSlAJxB3F/88+Is5/zQaqGWkbEUzCDh09pyXPLt5TNMC+1iRT9OiAoxNuT1HRbHp+S29agnkRCEYsrF5YGAEcUVlQhuGUYgJSquBqXGI7HVOrtI584qmVUYVSy6XUUQMEVrxYoHC7N5XpcBppjxi+F6OnuZnffKAN6sJ48fv99djx9amUDrLH95T24MxrfPviYmd33WsUdRcmpo2obVaknOrReNsPlIBxSlhoDkhLQZooPr0XgGQpW2WVJqwabB21ZjQpLnhbUqYgXUECoV8QFkZfKjOv/XzQQ3Vf2gvx7ffVUcXhlAgH99+eUDpdyNMe9CcPIfcAZxdXXJarmmG3q/z8pIypFAQi04lZrzOTWe97Q1844Lda5nMCsmGKbVU5SUsTJCcdNtSl45891mCK6Qm8yDF72W5tcCN4Vy2xmcDYfpo9tgcCsAAfb/2O9GCWcx5Q9ByXlB13XeY5Eb+rFjLIVhcvWj6kQQoY6TR9wYiU1msVy6rqdO70zMea/5KDy1ylSN3CywIGjpGavPHIwxoLW6bF8GP9aSiBJBJ6y6v8UMQjAkhIfRmrPD/nDredO3BhBgv9vt//anxw+W7eKukLYXl9/Qtkv6vgeBq/0FQQLDWEA8KR6HjhS8rer4+JR8fEwIgRI8Cpu4YckdoR5oQkikZoWV4l3zom49q0rVQlWX9b2L2kuRVaFWmVUe20pNZ1fPDu+/yn3339ZrAfBmPdpud7/91S83fT+8F0R2Y3/J0Hd03aXfQXUi5kQpBVRQ8RGdb7z1Q45Xa1SST60sLl1ZKS5hVM/jUo5YEGzsqaUg4jy5moJWp1+maC2AG8epBa26NXTTXQ6bw+H2u+4/12sF8Gb95dGjn//hN7++W8q0ue66j4safemZho6mSfSHSwxFot9VR8sVZXSVRacJpkKKGdXiljP1GklMDYqiZUJMCTl56bN4u1mZhpudBjZBnbZByqa77Db9Vdl+F+/6nX6M4I/b32+B7b37994u3fROqfrunZMf3Pvis78iMRFMqCoUEy6u9hT1Wapkt9SGlNGQwBxQSQ0UpWqdh+ckT6LN2ZHnjnWrofkdF9cfva5j+r/W9/I1h/Pt+Q54CDz80Vs/ftvGej82+R2dpvsxyp2h7+ivR4+iIdDEBKWwOn0TTJmGwQVZSZTRd5lJJEmiatmryFaxbbbhk6dPnu6+j3e6Wf8G6i1puXvjRIEAAAAASUVORK5CYII=","e":1},{"id":"image_3","w":80,"h":80,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAYAAACOEfKtAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAgAElEQVR4nN29aZBk13me+ZzlLrlWZi1d3dVbNdDYCRBNEKBASMFuj2VL9jgEUgp5HOMYUjN22JIjBlCM/0zEhAnGxJDzQzEkfzg8YVlBcmQP7RhpQM5CeZENkOAicBFBEiQAEuwuoBu91pJVud57zzI/zr03swFSBldHTKKqq7Iyb95z3vMt7/d+514I/hM+vPc9C2cdnJRwv4NN79kU4dVNPCBE+IEfeMSWhIEXbHnHK07ydArPCSEG/6nmIH6eJ6sBc+4sUv4ans16IAK8D1Dhy+fzI+fD9YDweF+94hGILRBPG28/3VTq6Z8noD8XAAvvz+L9Y8BZoAeiMq4aCFFC4bzHWoMQEq1UaX1AZYf1X3yJa/V3wDuEEID8OJ5PJ1p86mc9t58ZgN77noHHhPePe+gBSARuwZp8+btAsHuwzxe/9jWe/9Z32Lq0RZFlPPILv8B/8Z7fIIlihBQVbOFIXw3dL56z/BlmJoTYkl48YRWfbQix9bOY508dQO99z8Fj1vvHPaKnygm64GolAALnHS+dP8/27g4H4ymf/MNPsr03YLh3wOWrWxw5vMHu7oD73vEgDz1wP+ceeYT77r4HJSTOO6QQ1JZc+rx3DhZgrsD1zm8hxMcbkfrAT3u+P1UAc2Pep5R6v/d+05UfLRecDgQOePXya/xPv/e/8Ozn/4zh/gG5yVFS0F1aZvfGdZqtlChOGB0MSZMmMlJ02k3u+4UHOX7yOJ24wV//lb/CbSdPIajipSgtcH42Khv3ZVCFLfBPNLT+xE9rzj8VAL33m977j1khzuIXY1aY2GISeObZL/PBD32I73znBfLxBOMc3kO70yZKGhzs7pKmKd3+CjeuXqbV6mKdxdoMh6PdbKG15t777uO/+jv/Db/00IO00rSOpdTnFtXY6gTlfbmYQnwq0+p3+z8Ft/6JAfTeP+a8fwLoeQiu5OcuVMHngd3BPr/93/4uz37uc2RZFt4iFFrHCAl5niOFwjlLq9djOh6TqIjCOyItsM6ipEJLTZomtJa6vP3hB/mf/9H7aTWab8jac8MLtuh9mbW9ACEGQvjHf1JrlD/ugd77nvX2w877j3gRMms1agGEGC9wCMovPvvM5/nmV/4cUdIRiSJSEVIIbJaD80ghiLUmG09oxClJpIi1QAqFLSyT4ZjhcMhkPGZvZ5uvfuFZ/vH/+vvs7g+oF8zPE0k5JAQCIaqfAu9dzzn38UlefPjnDqD3ftN5/5T3PB5oWUgPc2sTiJJiKBzChxO9+L3vMpmMcNYipSSJY6QE7xyNJKbdTGk3Y5pphBIe5Qq0cCRCEAGRjkjjGGsLrDGkUcre9h7/8n/7Qz7woQ9SWFe5aACrokgVp/QiJJ9yoAKJ9zw+zoqv70395o+Dhf5xwPPwlIdNLwK1WCBzSMCVVugAjwThMRYmozEOKIoCby2He13uv+MEnVbC0ZU+h3ptlvsthBDMcoNSmuFoyjdffI3vvnadvemUg+EYa3OKIudgNCKOYzJjeOpPnuYr7/kqDz/0EKJKWULUrgu+fA44V7q2DxlcivtT7FN7U3+u3/jR4uKPBODU+00HT7my3BKA9GE5qxVeDOAhAwfCuz884DsvfAdTGLy1PHLXLfzOb5xlY3WFZqzQkcKaGVIqEB4dp0RRjFIxv/LQPewODrhyY4/PfetF/vWfvcSlvSGzbIqSAp0kSOX5Z7//B7ztrW8lTVLmFEeUBYyY80TmnLJaaYffjGXx1N50eq7faLxpEN80gGWmfQr8pkCGAXpf1g/znOsWBlcNVOCZzGZcufgaAsfxtR6//RvnuPXoOnEcoZVEeBCxQiiFlBqdtBFlgBHCcWh1ieVui04z5bVrA/ZnBiMIGdoUWFPw/PPf5lN/8m/4zV/7G3OeWA/u5nH6N1Ad8LAZCfkjWeKbioEBPJ5CsDnPrv6mgyvAZCjI8AQLFCIMcLnX5/D6YZSA3zz7IHfdfppmK1ASqRQIh1ARSqfotEPU7CCTBlJHSBWB90gpaDc0Z04dRnjHZDLGFAXWWYRW7A/2+Ng//X22d3brzO+dx3tXAuSRAoQMBkAduanTtRByMxLFU282Jr5JAHmyUkd8GedCpg0ndeX7REkCHbJ8T5lMhGA0nTAYH3DbycP8jb/yS0RxghACqcB7h3c2BH4dI+OEwDQUMu2gkhY6bSC0ptPtsnniCL1OgreOrDCMJmMOhge0Wi2uX73CM1/8It75kraHWEiZgR1VyedrQGujEJRg+00t8if3vO/9xAB67z/s8fc7CJSkrOFdiSwLgkCIMwIp5gMUBE7x3ZdeYufSFX7lnW+n2+5QzCbk2RRjDAiPihOE1GEZ3FxtcWaGK4oQz5QmTpscO7LBQ/fcSrfbQiuFQuKMZW93B+fg03/0fzIaj8ISVgIOC9rDgku7gOhCHpRh8eB+PS3e/xMBaIx/n8c/XieMquaswC0xRFa8Lwwq0BpRAh0mkU1nrC53OPv2t+CwCCWJ0gZxlCCVDkeqCKRASFWepyR0WoOQSKWDwwnP2kqXfrdDGiclr/RYY5nNJrz4ve/xwvdfLt1SzLNvhR3lhKqIXdaDHvAl93HO47CP708mj/9YAHrvN6X0H15gKLjXVRnVC2KBqC4WcNXrErh29Sp3bB5jdWUNpWOitImOU1TcREUNdKONiBOs0OReMpzM2BtOORhnFKbAFA5jHV4KGnFMN01II4WUgjSKSKIEIRWz2Yzh6ICLl16dm5zz8+HWuUOG79KFhSC4s6+el9/I9+9Np5s/DKcfmoW99x8Ger7inT4A5RdHUv7N1b4RftYBHBiORmzf2OYr3/gmTmo++dSXaMURm6tLbK736TVimklKZjMubg84f2mHS7sDLu/ts78/oNVMue3oIR595AHSWKEENJoNztx2ki9+82W2ruxiTBHimZRY55nOply/cmU+l4V/K/8sGWKoWso5Orco7FZA+p6CjwHn3jSAxpj3ecSjQvgStIVBCBFqydoXfOUpJbsXdVI5GI74r//+7/C3f/3d/NVzf4mP/8Hv8x++8k1uHAxopyn3bGyQ24xD3Q7jWcErV64zGo+Q0rPUa3P76aP0On1eG4z54B9+hrtPH+cX79lkY6nFWq/D3ZvrPHfhKoMiA6CwBqU11kOz3a7JSqXWBEOoksV8vnUxIEp9m0re9aEokPLsQZ6/txvHb6ibfyCAUsn3+1B516RFVByvtDZHcM0qoVTlnBel+3qQUnD00DovvHie03ee5i0nVnjbyQ5f++4FjBMs9zp85gsvspRqjIs5c9sGMkuQ0tHut1hbbnF0dZm7Th7m6y+8yh8/9RU+84VvcObu2/jLbz3F3becJPrct3Deo5QCZ/HOIqOIQ2vrpXeWaNVeHJ4LH9TvRRgrya32MkQoNb3HG/fEnvef7r+uXfAGAL3373feb1almCj9d9ENKnI6p9EVnRG1mwsEnVabdz7yCPe/5R4+8b//c9re8OL5S1y+PiCKFfv9IW/ZXOV3fu2X+eS/+zK337rJ5NplXjh/gb1pzss3DpjmL/HArafYPxjzm++4jeXlHhf3xnzy6ecQSlE4RzGb4eMIqRTeepy0oEQNll/wlnl0dnWpV8VK50Xpx4H6OO+gYgSCTUaTx4EnbjK214G36eF91SnkQmdH1G8WJWGu0J0PToi5s1ex8OTxoxzbOMQ/fOwxBuOcXnOJo6urLDWa7Ozs8Xf/6l/i3ltv5Z333EakYGN9hcOry9xz4jh3bxznlvUjZBPHxUtXcdmYTiJ58NbD/JcP38a9h5okSUIcxVhjEQisNWAseZbX454bmZg/F3LhdV8pNKF1UPJBUcYmKUNCkVI8tre3dxM3vMkCLZyV3m9SW9jNql7F7kTZj/BVxppjWD73tevceecd/D//5t8hMKz1u8h2AyVzsjzibadP88DttyOF5lff+RC/94f/il998F5Wu0vsj8foJEXEMdNZQZYdcMupE0RasbbSp91u0Gk3efY7L3Pl6jVUpGkkCS6KADi0skLtC4KbLK2mLj54jceVIUfW3iakxAWSGJJkiAc9dHyTFd60QM77C3g2q7ahr4yszFRvCLzlQ1JVI2WsLMHzpQUXpuCP/vkfILcvMxvv04o0Jw4f5Y5Tt6LjCJtPKIqM3cE+379wnqkTDMdTisIgNBxeW6XXaSCVpNls0F9ZRivB1oVX+cd//O/53HPfo9FIOdpb4rf+s4d58mvP88F/8k+5/ZbTC8s/ZzU1v0TUSnW1/hJwZSZ21qFkcHNXxni8Hyy1mv03WKAx5lEWrK9O51X3y8+7aiE+hroXqlW8qbIMYPp5Vrv35BGah9uQzTDZDK0aDPdukDbbCBUqkYaKuOPkCVSkkFoTJwnGFCStDiKOkVGEsTl5MaOYZTjjsIXhyEqbu46u88v330002uXcW26h1WjU1ub93CMq3hqU83lWhjlNE+XflZx3dIQAEQy1tzccnu13Ok/fBCBCPOprh/S1ey7mqZA85mJCeVxtrdUq1pSr/CyJYCkSNKImmS2YDia8sPUyQkC/2+VPv/4c7/nlc5xYP8zLL5xndWWFpRO3kiyt4IUP3TYl8ViU0VhfkBtDo5Gy3EnZWD7FRqfBO87cxf6rV7ilv8zK8sp8OesqaZ5EqvFKWVYgJQn0JRcUCKyfCyaiFAC8AyHVY8AcQO99z3v/3rq+pdIqShAqJu0Xk/zNYmV1hBOVS1S2KPDeImxBPj1gsHOZ7e09nvvuS0jdoNdqcuMg46P/4o/4m+98B62mYrg/QG9foQMk3aVwJg/OFDhnwYMxBiEE99+xyYn1Q/z5M1/mtfPnOX30JGr9OGkcL0Tu+XirGOcX5jP3GeYxq0qKNcsO5Z0UAuf92b093+v3xUADWGvPIuXrrCxkIeGreFhxdzE/GZVniOocJR9cIKyBEzCbjZnt7XBlZ5ekucTS2gYvX3qNg7xgfW0NEa0Tdbqcvu1WvMu5cfUSs2xKvziCjmOQAocDqbB5QZbNMM5z26mTuGzCg297K9l4hO52eGlScKiuf8vsStULqcj1wi4HV7mpxHtbu5KQpbU6hxByrup40fNx/i7g07pE4dEFSy9hknNrFJV4uqDkVlGvJttzq8UvfJYIA5kZx+XBNoPcsX31CrNZzjtuPw3A7nDCIJvhtWZvPEX6ApW2mU7HcO0inf4qSIVKE5SWFMbgUBS2QCsJ0nPL296CsJY//fK3WX/XX+cNoxJurhr5mxlYGa2CrFZWU0iPREGQPsKnSEFhbQmqPQd8WgJIKd81BydUHK4GigW3DqYtofxeUHkXMlm1fcMFX0GgQEccTA0vXLyB1prTq4dYUQnHGh3uXz/KIydvQXr4/sWL/Os/+zLfv3yVGYrcGPJsVrOALM/J84LRZEJhDd5ZDh8+RKfbxjjPZy9c5e0PPLCwzOVPPyf81cJXybiKeTWwlSLjbSDTJR12LuyIKK351wC0974XKo+KMy1mz/kaVlSlSsweUAuWuLikizurKrOP0xZSRWydf4Vhc8Dp5iqrScJBUWCc5dpwgGhK4m6Lb1w4z9ee/zYP33sX73zrbcRJXAZwS5ZlZFnObDYjM5ZIR7z00vf4/J+/xIf+xWe464G300yb9fir8rJKfiHzurmBllnCubCXomqIee+RQuLK+O98WeHLUK0ILzb39vZ62sD9qlyV2rw9CFkF2dIIBQumH+CxVUysMFwcgLiZgvuoRRon3HHyCKePnWYtT9HGogSoRsrhYoSKBWkz4fTp4zz7/POkiSRtNDHGIhEIFeG9IM9ydJSgY5hOp1wbjPnAJz6DUTHvfPgRlNJzC/TzuVXZQJSL7aVHeF+Kw8GEVJWVbemNfm51vgTSA1KCbDbfpXHurK/klFJ9mVMmseACwbRq6yzz/ZygLmRnURFVAhUQgvbyIYrCsbGxTtSM+b++/Hl2d8c0Y81yp8XR9WVO33GMzqFlVtM+OoIr166RzyYcDPborx1CWct0mmGtZTgc0u20SZVi4/AhWo0Gh2+9k3/w9/5+lU7LL18mOT9PkFVR4CldVCKlqCfuqrZnhcHriorKQouiOKUFbEJYBVXzt4UasQYkgGQQKDxCilIHFKVVVhkr1JWu5H+VJbRX1rFCMM0Mxmxz+o5TSCRNrdnb3yNtRoAhzydMp2MajZR2u80kKxBCMJnNmA1HxHGD6XSCdxbnDe1Wg153iUazwfETG6RpMmd69TpWVraQRTwI4RFCl5SmpEohcC9G95KIz605FH8ehHirRoiTDlC1tZXZtTb6uSZYxcKwAqLCtAzCVQ0pysRRVS1hBVu9ZWzUxCBpJAn9pWW0h1QLbj+1QaeZoCNNmqTsjfY52B+xOxyy0uuw1G3jnGA6K5hmBi8kQgVgtFakaYrSil965y8uuGs1lap293UowguE9HgnawGk4obheRDqvJ9vyavDlK/ClEAgNrX39ORCXKvkKVkG3wooKJtKgK3XeN7tr0CtyWil7pafqHTE+i338OqFLRLrOH/pEhJPqiN6nRbdToNbjmyQO5jknoPJlG67Q7ffZzjYwwrFle0duktdsvEIpSSZ8qSrK+RFTru7xHt+/dfrGF0T/NqryoUVlPOaC6vOhdl5D0LKeRu0Uq8XWxllxg4UzW9qgd90tcwdqIcUgcpUg5AlrVElaBWgvuaBfrFkLgcnqNevPPfmbXfzf//xv0RLye5wSJEXxErx2o0d7r3zFm6Mxmxd+i6FMRS2IFIwmU6I05RpVtBqt8hnU5wzeO/ptvukScJ4NuKdv3SWpW53Mf5UBjgXeUvSX21zc2XMp6445uWCE2HetX2WPLHc2VWjoIWQvXrFRNAh5/JpsEZXurGbewLVvhhfg0YtLiyMnCoJCg9Hjx3nlrvfxvlvfIXdwT7ee4bjMUkU4RXs7I9oNppcH+xQmIxOM2V37wDnLQeTIUVhEaag3+2wsrzE0SMbIIIb/oPf+XtlIhNl6KlOXDqEm9OTykuEC4qRcJVEUkpXrpLAqk8ROOHmXLGOpWwKY62viaUIGbNaRFseLGqAxTzbVlRgse6tyLSY/17HkNIeD4YHfPiD/yPPfulzYdeCtURaUxhDM4nothr02ilHDvVpNhLcLMe5HJxDacFar8OJjcMcPnyUdqvFZDphZ/+AI7/wKOsn72DuStQEuAZOVEmiHK7zoSVbAehhvk1gzmX94r/15wZrlFRbwWTgiMZXFURAojb3UjerCH3duar53vw0C5R6boEiANvtdPmH/8MT/O2/89scO3acdqtJp5HSazWIpCDWgl6nCcZw/dp19g4OKApLlhfgob/UYXl5mSSOKbIZRZaBc4y3L5XDKc9eqeO+Cjr+ZvCqzOrKpRWB+wbiL2oKs1iyeO9LITskJg8I41wlTCwk7pBE3AIi81Mv+PHCWlXMv47bNQOvTWBuHSX4L371Gf7tk/8HVy9fQniLUhYlBLk1NOOEJInQQmHynGYScerkBuvLfVbXVmikTawtyLKMg+GQQje45z//u8RpmyokLVZEAYMFWlKuvati+E29k7AAi6wnuHfYn1NTnVLu2lqEpbKjapdV/ffXVd9V3KuB8RW98vUbarXXv+7A0jJ7K2tsHFnhyHqfZiqJpEBJWOl0aSYxaRyhJSy1Em49scGhfo+Vfp9Go0Ul0CmlETjE9IBr3/4Czrmbgag5yBsfzle9YV/W/vP/6nq19rTQI/JVqYZASjnQFYNz3qNESY7FPHK5ykUXBAVRZunwJcuosegeJUmt8KrdiHowQkCj1abfbWP6S1DMOBju02w0gzVGmlhJGknM+vISS62UXreNjlRp6Q4lJYWzCDxJrDj43tdRusnyHQ8RRRFKVrH5dTv4F1qdVZpQYt6WKDcMhrdVbiiq2F69B7xnS3vY8rApy66U91VlER6VqO1r/6xzbf1zXibNXaP+JZCrciTVIoRfVdpGSUmkFImOaEYJqVYoqdFa0Uxj+t0OuihY7nWJ46iW3bWOMSYDPFprbJGT6x4Xbhgui0v0lpqs9tosdVv1aMPcfJ1g6o1H3pdcsAoxouaK9UwXmkKCKmgx0M65VwKoEiVUiHw3Kcoh1Tvr6q7VAq+v3lFn2yqbCz9PhX4hs1UWChDHKY1Gk0gr2mlCPhuiBCy1OrSbCc1GTK/bJo01cRp2nQqlcNZjXIZzBmcMTsTsdG5n3DqFlhI7mnLl8hUarTZ3336CQyvdstZdCPZ1nAxCrSjn5hbmXnfvyudOLM4dnGdLe8FzAvFej8f4kImroBnKsQBNAI+a31UbJ+eBtqI35QpWQ6jiRpnBF4wbpTUISOIE12phbUYcx6z0e7SbCbHW6CjQA2sNUschvEiwxjB0MZfsEsPmBjJpoiTEsaaRxnS7R7l8Y5s//9b3ObS2xImNVVZ6nTCPEsUwh3JbaN0LKWOhmHtKlVDEzRQDvH9FC++3YGFn1TyTYOtAsEBSSheaB+qyBq5PXkXVciiVeiOrbSHhMRoP+ebz32Cyv491Fh0pkjSl0UhASawPFx1KIdAyxkuNF4LCGA4KuJj12FErRI0maZqQJDHNRBMrjVAhwfR7PQSeWGu+/b1LtJoxt53coNNK6wsZq/nUTKOMe846lKqqqapKWZhZiARPiz3vey3r91yJrKRK8wvtlpL3VTVgpXlVvYZFMr24cWfeFwmu4p0nK3Je2brI889/m28++6c8fPoQPp/gHWSTUaAuKlxI04gVWkIcxURRhEXxmulxhVXidIlWu0kaR3RaDaJI45xDa42xJeUQEEcaKcFZwSSbkc9yVleXSOKIlX6HTjMtJa0553Pelf2RyoMXKA0VsxAI0+zrvhCDzLotCZuusq5qC0QZ75yfs/kqsVWKRMhQog4vdRE/z1QcjEacv3CRg+GYi69eZDocs7bW5eqFl4jvOEwGeG+RSpLnOTbyyFyAE3RaTQrnuZ61uOyWsXGHTrdLK2nSaCQ00phYa3JrUFJiSo6mlCSKFLKkU1JCmqREKgI0r17ZY3t/xKlja/TajdIC51KKFBLnLV7UWj311pCA31bdlRPOfxrBY7IEK1Qc8+6aL4VUIWR9kso0y2gy5381iI79gxFPPfMlXj5/iSPrh9jZvU6E5N577+PV8y/STSNMkdNIm5h8islmFMZivaeZNkjSlD3Z5+KkiUsPkXTbLDcbdFtN0iRCKYlEYpxDK0VWGFDQ0BqhBEoKrLEgBDv7E6JY0++0UVJw4sgKV7d3uXpjiDGOXrdJpMr4KEI/BCGDgCxKTdSVDNmD8+5pKPvCUvinnReP2dIF5RwfhJgH3cAHy3LJexAL2bVMIqPJlP39MVeuX+fzn/sSUdLgtltP8+rWBZI04c7b70RGmpWNExw5vkk+y0jbkmajEQp+Y4jiFL90lOeGmsx0WFleod/t0mynNOIYJcWCghwSX24c1gm6jRilQ1Lw3mOs4+rOAcu9Ht12Sqw0UkqMtawu99jdHyFFoGZL7ZQk0tT7BN28MKhDGEFUUVJ9isrPvPe9vLAXHPSEEnVvd56JS/Mu40CtytQ53bM7GPKtly4QC0VuLJ//7DOsrR9mY2ODi5dfI0kiTh0/RprEWO/YGQyYToZ0sm0abspSO2Fv5rm6n3Nt6HBxm8NHNuj1evS6DdI4Rkk152DlGiqhmBnDwThjfbmNjjQSSWEt48mU7b0hR9ZXaTRSBHD9+jZXd0f0O21anQbGBmlsqd2g12lzaLlJFJXCnaOu/XGu3r7ncChj+v1+v3RhIQazwjwt4FFRBrKKGM+z5wIDmqcvAHb2Dvj8V77Dcq/D3v6Yb3z9q7S6XdbWD3P92jaHjxxhfXUZXca4NElY7vXYU5obuWNvcIPB1h5SSFZX1jl+1zGaaYvVXpck0eTGECkdqjcfaEeonEKgPxjP6C+1UFKF2OUcw/GEi9dvcMfmCZI45sKFy3zrpZc4efwYJ08ew1hBpAW9Tps4Ck3z8Tjn/HjCLcfX0HqBr9R7BF21eeDj/X5/UFsgwLQozgovn0JUPQ3q3ahUqZxAbUQpPoLn4uVdrl7f5eqNPYYHB1y5fInZJOPu++5lPBqztrbKoX4XpVSpeIR4ab1jlhXMspysMFhr0FKTRBFRrGm3mjjryfKcNI1qWb4qDQUCpSXbe2O8EPTaDeJIUViPMQXfu3CJe+8+zWxa8JlnnqHXO8Rb7ziNEiCEot1M0TKMJwAfEo81lkk24Y5TR2oGUeWBcEU8eCkeXW21Pn0TgAC5sXveh43lVXOI2olFTWc8sH8wZncwYX9/zPb+AVevXmc0mXDp4is8cOZtOA9ry0ssddpIqYi0Ci1B68hMjveeOInmjRopyDJDpCQ61uSFwRhHHIWMKOW8UY/3KK0ZjacMxxn9botKqYoizfde3mLzluNcvHiZL3312zz8jgdYWmrjjKPbbpA2EoSHSCmkCmQ/SPEeSdjEFGnB4dUevt7RUNOXrZVu+1SF2c07VK37qPM+mCzVQQ5bljjlS+R5wbNffYHxeMbFazsUecF0Mubylde4/957UZHm6PoavaV2oBNaIxQY4yicIUkTWu0mQpSvCciznGYjJklinHXkhSPSEi0VWihKcoEQAq00hbFkxrLUaTKezhB4RtMZL7/6ClJrnv/2d3n+Oy/y1879IitLS+BgaalNHMdY47DOY124dCIvTCndyXpBZ5kL+xP93GgApPwLtvhOYv0RAaVv+4UDS2mr5IX7oynWC2bTnDzP2RnsI+OIVqtFf6nHkdWV0kUUSoa9K8YYlBKkaYKUEinDbU1G05wsL2iWQd4ZjyksaayIIo2WumQGAi0CoFJKJjNDM0mQSnAwnrJ7MGZnsM/OtevsD0fc2N7lFx9+mJlxFK5gqdMkUWpeggLTzDCdFVTx3fnQrrRl8tg9mNS5MhBqsTUris/+UAD7Qgy88B8NCq2sq4y6TPOeyTTj2rUDBJKdgyHOWbwXZP4RRf0AAAuQSURBVNOMO2+7jaWlDs1GglYaKTVSSZyzaK1DhlQyXJE+yzkYTUh0AGo8neGcJS9yBAKtJJEMnyGkQmsVqlYhmeYFkRKhFZBbnLOMRiMGgz3aS8tcuHSFt957H7uDKXGsWOq0cDgKazGFZX845WA0DY0yJYMe6BzGB8XG+lDOTbMca21Nsp33nzjS72/9UAABZlp/BMlWVYVU4oIFCmu5cmWPySRDa8XecBRKJeHRUcRyb4l2oxHAlxKlQogNV2SGysADw9GELDe00oTCWgYH08DyhcQ6SNKIJI7L40sViPLCRBzGONJI43HsT0bYwmCdxVjL7uCA++68nZ2dAcu9Fs1GwjQrmE4zrlzb4+r2kFhLmo2ESJVb1jxYG+J+4cNVgc45isIxzUylQG+tdTpPvB6vNwDYF2JgC/sBVwVN5mrKa1d2uDEYMcsLCuswhWU8npFNczYOHWKp3QIRZO9qR6dSQe9DCGZZznA0JbeWtBGTZQX7wwk4T7uRMssKmo2ISFW77gRoQq+CQFHywhJpCTLw6OlkRtpIiXVEqhOK3DAZjlhdWaKRxOwPJ+zu7XP1+h7NVsrKcps4jsBDYQzGWLLCUJTbOSQeW/qw9yFGSimQyDeA9wMBBGg34o9LoZ4GoNT9R6MZ+8OM0WTGaDZlkmU47xiNZ3TabdrNBnEcl7QgWItQEqkUVkA2y5nNMrSUdFoNprOCq3v7FEVBr9PAeUccaeI4RmpZXrblKHs4OG9wOIwLE/IubAJf6rTptltMZjl5kdNtNFheWaEwOa++dpmXL1zE5JbDqyvEWpHnrt77EmmJVIEOee+DixtHJANjMMbjrAfvP9Vvtz/xg7D6odfKTU32W00Vfd1733PO8d1XrmJyixSQTTNM4cknOfl0jFrr0u40wwrKMuT64G4OQZ7nFMaglSJNE7KsYHdnn+lsxtpyn0YjISsKGnESjpdBwK26Ms7b8pKDsIvASrDG4rylkcZcub5LHCehdMsz9vZ2ybMcFWlO33qCZhKXTXKHs4bRxOOMQyhFI9bEsUZpHfK8JHiXtRTWUlg3EMb87g/D6YderdlvNLasMx9w3rM9GBNpSVYYxrMcvAsTlIIkiUqrTVByrvtVlC3PC/I8dNsajZTcFOwdHDCajkmTmG67gXWORpogtaxlr2pnq3O2bIoLjA1quTWOIrfMZiG2Xb66jTEFO9vb5LZgkk05dHidUyePY2cFVy5d5fvff5XzF6+yMxhSFD7cdyaNiSINQmCtw9kwTmMKvPNoIdkfzh7vvy5xvCkLBGim6UdeubS9uTMYP5bNwnbaTqPBICsYjwdMswntZkqqA7UIXDsoF847rHHkeQEC0kbKaDqjyA3jcYa1jmaa0IiTQGClLOtbHxrewgVdz1ms9SgExgalxllHYSxFlmOsYefadYb7A5QQtDodut0ue3u7bN+4TtJosrzUZ73VRKugsCsp6k6csA6FQscSrRV5UVAYW9XaH33kLSd/oOu+KQABdm8Mn5ha867Z1Nw/yjKMseTO0ep2mG1P8UC71UKqcpO689hSBakoQKvV5GA4xhjLZJozK7esNVspXji0VKF8dIE/uJLkUivfnsLO/+6sIzMF1lgKa9gebHPX7bfTSBvhTh9ScuzYMRqNsONLeIExtiw2PHkR7lujdVnOyxAHsY7ZLCOKIoxzz73rgVv/wout4U1c8n/mzKmBLPS7UWIr9EYESism0xnOGmxuaDUaYS+gB+MCcMZavPd02g3GownTaUZuLLkpKEwRJPg0DruhytLRVwCVmpwxDmMsRe7IckthA19zhHPk1jKZZOEY41hd6bNx9Aj95WVazRRjHKNRxs7BmPEsIy9K19QKLyAvPFpp4kiTZwXXd/bQWqG02HIif/d/DJs3BSDAww+f2rJFfs46tg6GE65dvYGdTXBFjrMFjUYcXMK4kgwbvIUkijgYTtkfjHDOY6yhKAqcc6GKEKGRLglXRrryynJfxljnfWl1nrzIMUVBUViK3GJNiIeT4Yg0Sjlx9CitVgchJMPRhMvXdxmPwj0ZEq2JtEbL6tIuaCcRK0sNklizuzfg+rVdOq0GcZxsJSo5d+7MXVtvBps3fd+YXz13ZuuffPJPzinUU61mujmbjMnzgm4nyEjGzmtL7z2RUownMwYHo9AYwqOEIs9KISHSQVtzHiED9/IuHFvV3cZYjHUUxpDnBg8Y6xiNww5VnGNwsM87HnwbvX6X8cySpJpDq71QQgIgyrg5F0atMezvjxmNJkyygk6nydrqMmmkt6JcnTtz5sibAu9HAhDgt//Wr2598smnzhWOpwZ7g03rYGV5CY/DWo+xFlfev2o4G7N/MEIAURyjI8V0FupeBGitarXHGxeszjnKMIiprM86vCNI/WXmn84ypuMRkZLIOGZ5pY81hrXlLrm15LnBOYuUikYSI4G94YjBYIjLHRZDHCuazRYbKyt0WinAlrPRjwTejwwgwN9697mtJz70sXOtbvNJ6+z9/eU+zjmssVhnKQpDXljGoykOh9aKSGtwMJtlWGtI05QkjkJf2IfiPcROVyYhh3MCa0IZ5cqMOctztA7XFBTG4l3BLZvHwXumuWX/6nW01iRxSquR0GomjKcZN7YHeASry0s0GglRFIVYJ2V5RTrPTXL17nM/Ing/FoAAT/z3v7UFnPnv/tHvfaTbaT1mjKnvqpHnBTNT4LxDKUUaR0RaYZxjOsuAIAJUsrlzgaqYwgbXLdVf7wOgRWGw3uGtpShyjBFYa5llOevry2RZQbfTZX2lh9IxWkuEUBwMp7y2PUAIwepqn2YzrRtE8+Y6AB+N8+KJd5w59mPd+Vf8x9/yFz++8LUX3ucL++HC+t4sz8OEy3uZxpGi0UhQSjKZFVy+vsN0OuPo+irHj62Ve1osWZkdrQ1qiLGuLKUM3npmRcF0OmMym5U7+NuMhkNOnNzg5JEjxHHYaa+jIMQOxzMK52iVqpCSlTAcujyloDXw3n3ggTuPfeQnmf+PfQPG6vHIA3d9vPDDM9Pp7FPT6YyiCE0aJQVKyZAkhCTLCoo83Cs1iaPQ/XeeojCYwgRiXJhQ4FtTJ5W8KMjzcOciJQS2sBwMBqwu99k8dpgkiYi0Jo4jstxQFIZ2K+XQcoduM6WZapI4KOJSCgpnMNY+nTlx5icF76cCIMC5hx/e+mt/+cF3Z9P8t7zxW6LsCyMCiMY5xpMpJsuJdOh7CML+liwrQq2c5zjraw6Zl69551ECijy8L1KKg8Ee66tLICSzvGD3YMhgOClJfUqaRkghsTaQ5klmGE8zjLFbEvW+h+4+du7hu370ePeDHj+xC/+gx5P/7xeeiFP1Xq2izSRNyIzj1VdfYzQZs9zvc2JjnU6rwWg6ZTyaUdiCVpqUySTQIVvxysKQ5Rnj2YwiyynygqWlNrfffookTfBelPsafXmFgUJpGTxA1j2PgcB/dMbkI2dOnfqp3uX8ZwIgwJN/8qXNVpqeTdLk/YPRaPO1q9dwzrO81OXYkUMoKdkZ7DMaj0jTBkmkww1oBeSFYZblOGNxxgYeWBQ46xhPJ7zjoXs5fOhQLQJUGzh9qWA4D7ZwGOEG3rqP6tx95MyZny5w1eNnBuDi41995ouPDgaDR6217z200mfj0CrD8ZSd3V3wnu5SlySOsNaTFUGszXODyUP1YU3YZJ6bjEaiuW+zSzfVYGZgPTKOKZxkUjh81B60Vg4/rVTy0XtvO/L0z3puPxcAq8fHPvZkr7e+fnZ9tffolas33jUcjzbX1w6zvNYly3L2B0MKY0PhjyDPZmTTGbNZxizLKIopD9/S5N5Ta+hqt6opkFJuec+nnZJPk/F0/8y5/3/9zwh+2ONjH3uy95b777/fSXN2d3f/5Gw62xyNJ73paLw5ySY95yxKRoBiluVbqZrwnoc2ttqt1pYUPFdk+SuK+OcK2Osf/x8cmwi1Sb8xhwAAAABJRU5ErkJggg==","e":1},{"id":"image_4","w":80,"h":80,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAYAAACOEfKtAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAgAElEQVR4nN29eZBl133f9znbXd7Wr7dZMYMGMCBBgiJBhbToSDIHJcmRwiQCS4m3KBFRpaiUcqVAOoqqXJWEYFxOXFHFJOVIcSRbIB3LkmOqAIqUSVq0ZugiDXABMSAWglgGjVkwS29vv9tZ8se53QNaggSSoFyVi2o0eqbfe/d87/lt39/3dyD493iFEIauXpz2Qt1MEHcR/EZAbAAIwQZBgAgQAgg5grApBKMQxGbwvCSpz+qsd04IMfr3tQbx5/lhIewNXd057YM7jRA/HULYEEJAgAAIBIGAQMbvQhCCJ/6OB+S337qIryKETYQ8KwmfVEly9s8T0D8XAJuiOO2FvE/AaWAY8PGDRSAEgUC2OHggIIQkhBBvUBDRPfiBA5Bpf4roB0DG/5biYzKET+o0fej7vbbvG4Ah7A1t3bkvhPD+AMO4v/Z3kSe0O0gECIh293lAIESA8Eqwbuy2EHwEMrTfQvz9iHd8n/genoDYlELdr5z6gsjF5vdjna87gDeAc+8PQgxFEPsrfQVAIu4wwcGCCZ7AjT8LEEHilUDuX5KA4+Bvxf4mFAcrCq94LUJsCsLHTJp+6PVe7+sKYFHM3ieF+uBBAIj21C7+YMvAPoCAEILGWl66eo1vbV7gmfObTKYzqnLBsNvhPT92mjfdeitKRDO31jNdzElSQ6oTjFK0SLfWLNsd3IIqAgQVlyr8phTqfp3oj79ea35dACyKYkMp8QCe03Gv7Psof+MjhAD8DZ+HIwBlXfObn3iIf/77n8Y7h/cO6T1VsaDXH3D0xEmOHT3G6tKALE14bvMC17e3WV9fY6nb5V1vv4v33v2jCCEjhgduQbamHZBCRRMX8X4CPOS9/0Ce55vf69q/ZwDrsr4v4O8XiGF85iGa3yv82MGHCWidFQG4urPH//k7/4KvfOMJ8qzDoN+nmIzY29vBJBkQWBQLINDUDcFZlBSYtIPJOtimJM9yfvL0X+Le9/40g26Xg+i8H3iQr/h53woEQoSREP79Osm/p934XQMYQhjapvlgwL0fH+3nIFiyHyZuOPWDndla8VeeeoZ/9pnPMxiucPzoUS5cvkyv12Mxn6NMyonDa1y4cIHjR4/yla8/ypNPnGMyGcV0Rgq6eRfnLFpItNa86x1/gV/+xZ/n6Npqe4OvuFf2H544uMEQfLQEGT6SJNkHvlscvisAi6LY0Eo+GAJ3Hdzpfp72ioBxYMZtWiIA5x1/+PUnePz5i+zs7fLsc88y2tnCOUsgkCqNdQ1aGwiwtnaI0XiP0e4OZTmnrCqstSRJgtEaiUAIyJOEY0eP8wv/9c/yE+/6oZg7HqAYU56YBQVCkAThEUHuZ0bntDfv/W4i9XcM4N6VFzfypfUzUiYbCH8QFA5wbP/tfcA2FucdCIH3Hh88X33mBc4++jjXrl5jfXWNsphTlCVNY5nNp5SNheBYzGeUVUlVVVRVSfAeETzWNVR1Qwiw1B/Q1BXBOxKtSJKE5eU1/sbP/Ax/5ad+HKN0i9qNSH9j5eIAgBArnk3n/d3fqV/U38kvF499ZsNVxZngwwZyP9Lt1w/xdq5e3eLzX3yYx596ipevXaVpGlRq6PeH5N0eTQjU1lKVFRcWU4RQKCnRiSHPO3gWlGWNEKB1wmCwRGISJpMx49EO1cKiVEJdV/jgUUpSNjUAzlfI0R6//YlP4IPnv/xPfgr57/pE0d5piNlBzLIEATakEGeKoviOQHzNO7A488CGyPIzzeE7N9TaTagkOyi5INA0ln/6zz/FP/rdj3P1+hWcjbtkP12RUmLSjMFwhdVDh+n3BlhvKcuCgEBphUbROIvQCikkZVVQLQqKskBJRZYmBCFYLBZUVYmzNb1Or30PEMGjhKTb6dDr9rnvv/0F3vOjPxIfsbhhzvtGA7zCLwaC99i62JwsxncfPXrLawLxNQFYnHlgQxp5Rgi50azfAasnMZ0eSAPB4T38H7/+W/zW7z7AfL5oTSWaMdAC6aMfFAIhJXmvz+Ejx8m7XXwIBOuwwSGkjKFHCLx3MQ2REuc9tioZjfaoqhJjErrdAYNeh0VZ4Jylqmq0kmilyIzh6E0n+NAv/S3uvPW2V/jm1nRbFymEJOBxrqFczJktJkxHO5uVK+5++9vv/jNBfE0Aln/0m4/JJLtLioBTKfbIW5BrNyFNiiDwpYef5Bd+6W8ynU3am7wBGAF8SwiI/XDYbgEpBGmW0VteptsfopTCNs3B6/crC6lUfD3gQ6BqKubjMbPplDRP6Q+GLPUHVGWBtR7nLVpJEm2448638Pf/x7/NoNOLD7MlKURoHY8QBG9ZzCdcv3aJ5zefZzqfoU16bjravvveez/wpxIT6s8C7/onf/3DKHWP9IHQlMjpDqLYJiyfQCY53sH//Cu/wnPnn8E5hyfEerUFrs1uEfs1LaBEjIsygLcN5XTKZG+XsixIsw5plqCkxNoYhEJE9KBsy01Kt9ej1x0gpaSYTymrijRJaZylqiusDyglme7tMlhb5wdOnWrLRMn+G8VI7Wiamtlsj5dfvsDTmy9x5qtP8NyLLx355rMvZE+de+pz3zWAT/32h99XFc3fE84ibIVyNcI5pE7wKxuorM/LL2/xq7/5D5nNJ/FF4U9IWvefuoBECrQQGClRMqAQKBV9u68rismYuizwPpAmBq01RkezhIAioNqSN1ECvKMqCsbjEULK9qHJFizQUjKvat5z990IoQ5SmRtFdKBazLlyeZNHvv41ruwsWO6vkesUJfW7bn/zG8ZPPvaNR14No1eNwp/58P+28fzLsw93hKVnYG0pZZAJupkhEYoQLAHPV77+JKPJDvgb9Wg0C38AqGjNNVeSTAaMlGgCRpr9CIgPHhcElfe4+YzZdMxYCLzQGBOB9N7hrMVaR+MdWkpSrfFCoIHx7g5pt0ve6ZIaQwiBxns2X9rk0vY1Tq4fa29PHmQNwTuca5jPZ2BTTt50gjTr0JQF49EeTzz16AdP3/OTD5196LOb3xGAT40XH94bzYaNrfC+4QfWe9x1eMCJoxlGSEQsLjn/0nm88/sEFa+o4ts6NO68rhKsJZqekeRGYZQk0RopBC6A9Z5FYymahsJ5igZq76l9gy8tXgb6RtNLE5Jhj4UPLJqGzCQIGQHZni+YFwWuaVAry2Rphvee2WzKxSvXObl+lP1EGgLO1ZTzCVsXz3PlhU1W+st01tcxeYe6KhE4tBZDHdwDwN2vGcAHfu1X37e1vXPPczvXmRQVhMB6mlCtShyaoJLoz0KgmxqMlDgh4iYUEHw44DgDgUxKVlLNWq4ZpAn9xJBqTS/LkFJTOYvzMK1KJmXFrKqptKVwDkJACljrdLh5bYW11XUmVc3T17fpWQtSorTCeo9WiutiQWkbxnsj9MoqeZ7hfeDpbz3DD7/1bQB432Crkul4m6vPP81zX/4avneI7rEeWZ4jjKEsy5gdhEAI4vRfes/pn/s3f3D2j9XNfyKAR1ZWPmi85ebhgK/sXYo+KDGINAElESbBSwVC8l/9tZ9hPNrhE5/5NDt7u7jQ7kbvCYASgqVEcjg3LKcJK52MXpqylGfk3R7eQ+M9dW3pGcUgMVTWUlnb+jDBIEs5vn6YpZV1siRhezxhdz5nu6gRSmJba9AallKD8w6PYG+0i5QrZFmHFzc3KedjvHfMp2OuX3qOS08+yfb5SwiV0lsxSJ0QiNYwnY64vrPN3DY4PNPF4v6N03d9cvPsuW+Lyn8siDz8h5/5oC3m9zTzBYrAc9d30Epy+6EVNlYHrCz1MXkKqyeQaY8kT/kP/+IP8Z6f+HHeeOpW+t0OdV1jvcc6T6IEJ3sJxzoZq3nKaqfDaq9Dt9un1+2jlSZRijxL6abtV2JY7eas9TscWxly/NAhjh4/wdrqOp08Y6XfYZAqZmVJYS3WB3zwNI3FSIkUEttYGuew1tLpdOkmmrccW+blF5/l2Ucf4ZmHv8r1y1s01hOkRvQHyE4PqxRVVXL9+hUuXDjP5SuXmEzGOOuGqvLV1qWrZ191B575zIMbi/Hu+4rxHqGcgw+kKuZqnW4PleYIpUCog3xPIJBScdNNJ/irJ27ir/7Mf07wjqKuePrZp/jlv/U/sJHAsV7GsNNhqdunk+ckvSE6zRFaI5TGWY+3TSz16oaiXFDXBcYkrBw+xNLyCp3eACECzXTMW/o5h1dX+Nblq7y4s8eorCgSy/XpHK0E2mhSoKobxuMRi9GEb/3rL1DUlkVZ4ZpAEBIbPN5bUu/xSELdMK9LZtMps/kUV9dIIQkCbHD3bdy18ZHNc5ujPxHAzaefON2TesNVJWVVc302Y3VpQC/v0MlypFQ4FA4BzrMfy+IlDrg+hKCT5iz3ljh1aIV3Hl4hBTrdPp1enyTroPMeKIVOEmxdY63n2u6I569fYbyIwSBPMnLdUKdzBlZwMu8zHPRQwRPqBSeOH2dtdYXkm8/y3JUtSq2ZlRWNd7EaCgEjYnp0fW8P528myzKcUJTWYhtHU1tSHZAmRSUJDdGHW+uoygK8Q/gDnnOI7rwfuP9PBPDhr37tg6vdDt0sA51QWTjS79LtdFFaY5FUzqMbh7I1wTuE0MS8Kn4IxCwfJFppbjt+go03vQnvYkkm6wopQBODQ2gamtmUy1tbfP2lCzy7tY1qq47Vbo90aYlr29vMZjPmkwl3nLqN9cNrhFIjgmPQH/CmxjEtS67vTVnOEhpnWShJRwh++q1v5O2nTjFBkKU5XmhkKJFpzXg8pikrDvX6CAGuqghJgk5SOnmHft5hZAxZ6nENlFVNCNz3SgAPfOB//7P/6T3VovnFqq5a85QkUpAZTa/Xj2mHkSRaEryF1KB7ayhj2l0nW/5v37QDnSxj79o1Llzf47EXXuBrzzzDcxcuQlWSSkGqJb6pKOZzLm1tUZYFJ4c93nbsMO+89VZuP3KY5cyw1u2wnCX0UoMInjRLyXp9AqDbNOby1W12FwvmVcWhboeVzPCfvfkUqi555OvnaF6+yBs2TjC1UNQVi7phZzqmrhqWlpborx4iHQxIuj0CgrpYUM8XTIs5jW2oqxoXAsH77PCx1S9sv7y9+W07MHH6nlx5nHcI6xBNDSIgvcJWcybCclU6ymJGv5PRdZJb129B593IyryiNytahiZJO8wbz+NPP8lzV16mnxhyJfmmLUhxZEbG7kg5py89IlMkeYo2mnOXX+al7RFVVTJMFLesDDh19Ai9bkoznyIGA5I8BwQyBIJ3dLQiELBNww8dWSFxFY2zvPXmY2xd22P84gtw4o3EFD8c3LNCElyM+iZNcECWZgwGq2TmAhPvAIeUgsRohJP3AWcPALz/ffcMF4X/ucZF0rNsapAarSXaeSbjHUZ7nt00oZfldAd91krL4duukg9WUcoc7D7a5k3s14KtS04Me7xr453kWlAXc2bTKaEuqMoF/V4PqQ251jRK0njBF164xJG3voNHHvt9vG041MnYmRfUteUHE0NmFGWa0FlZRwqBlHEhtfckSvOOI0ucWlsimC7oDivLSzz+yFdRIeAIGKUxSiOkQiqNDY7FYoaaTfBZRuMdQQiEEjTB4oOPXYuDUovTG6fvGm6ePTfSAIuK04umZt40OO+pnKcKCmlr3HTKwjUE70mNJssTVos+oplSLXbBOVDmRiARADL6txA4MhwyOHaY8xcvcXG2YFTVLEm4Y7mHrWvS/hIWxWI+ZTlZ4cLuiKU047Y84V23nuTE8gqnVges5gnD4ZBer0uaKLxt8LZCmJQ8zzmxvsLlvRF3HDvM207dxGLrKl957pscX1lhqXcHt9/5BurtbWa2QakEpCDPO1RCsHCW1FlMVVJNJgQRWFQF27Mxo8WComloXMCF2Ens5OnwcL//7k34pAYo6+aecWWZ1g0QSIOiLEpccFRtVeFDE+vZMsFai5IOW84guLZR3mIYRNs+lAghWO5mPH/pAp//1nl+8F0/yrmnvsnFzfPMT53k1MmbSTpL+CaQZylJt0d/aZkTiwpTT/kv7rydslyQCsvR1SMMDh8lzXOEkghvkcoglUKKjOXhkPVeh6V+j5UjR5ltXSG4wLWr1xkkCbe/7S6uLhbM5iVJV6OTjF6/T+Mdi6bC7m0zA/x8igUmoz02r2wymYyZFguSNGHQH7LSX+LE2iFWBsO7z3zqTARwbt27C9tQ2uZAgIGPXbTCeVASnMcoSV1bpouKRW+O8xbvmgOilP0NHuRBazNJDabb52/8R/8xwzznpAzMThzi+PoaS+uHCN4RmopEG6QPrK4dJisKRqNdpJQcPXKM5dW16GulwnmB1hqpFSrRYC1Sa5aWhxxdXaY/GJAPVxjXcNuhVdaOb1BuX8ckCTLvx9xSqph16QRrNNPFlLIc04yv0QiFD5JiMWc83qWqLUtLyxw9dITjq4dZW1pl2F+im3d/Gni/ft89p4eLutqYNzUL65AIbIgCH6kkIPAucnIqgBchfgWoyzmuXKCzPkKpG43NAw4QOsNVfvCHfpjxxU32Xj5Pp6oYDPocP3oUqZOWfQapExCK4DxLvSVWltdaMlUj824sH52N1Ly1CCNx5SIyPUrS6XW5/Y43kqUZQifcfPsdbH7jCbSz9Po97GJGoyTTqiI0DTPnmXmYWcteWVLYkmK0R+PBBU9Z1tRVRZJlrK8e4tajt3L8yDGGgyFZlmOM3njgwQeHGrK7XChZ1JbSWhQS5wRaK1RQuOCxeLSUeDxSaIwSSOEZ7V2hml1Dd/qILMonbjToWsJIGkynz/DELXRXDqEJ6CxGT9Xp4WdjdN6nqxPwniTLMHkHlEaaFGlMTNylREmJcBXeWoKU+GqBVAqLJ9QVSZKgsxzZUvrDlTUGywMGh9cpt3e5Nt7l+mJKmWVUHmZlw3g6Z7qYUduGytaRAbKOxnqsC3STnJX+KofWj7C2foROr49JIg2XKfVunSTy9KLxgKOyDiM8AYXw0Dh3Q6wjBUHcEO84F3jx/HnW157kqOmQDQ4jpUamOUKZg5QmhEDaXybpDHD5FKoKryQyTTBZTrWYoE2C0pJyNmU62kLPM7LhGlmaI7RBi4BvbEzcnUWZBEKFdwHvapStIxMkDcE7bFlCcHR7GabbxTmBSA1f2XyBQnWZjVOE1JTWUdqaynus9wdlqrfQBEdtLVInJHmX/mCZvD9AJyk+BJzzNFV1i+5kycaiUiQymq51HuMDLsSiPBCQUoCNu6uSltwpauvZ2pvx5De+ikOwduSNmKRLvnSIpL+MlCZqU3xAGoVzniBk9Hm+RmQZMskQyiBSgfeWhgVF5di7/CKD7harJzbIBsPoHqyLUdc78l4HYQRCKVxZEIJDpN34eU2JFIbuYIDuDigWJXtXLvHwc0+yPZshewm2rBHa4wRYpXFCEVIVPU9V4kTABaL+S4AQCi8kNgic9W2/JuCFeJs+fuzmmwdLU7y8wLVii4XzWOeog0crQSIl3oHzgYBGSs+stDFHHJf4sE1lH+XUGyy9wTqHhUanHUSm2Vcq+KrEVxVuMaHa3cJWc1bXjyCVRCQZgZrQeNJeH+8dLz/3PIuyZnu0y/ETN9NbWsYF8FUJweObBZ1ejtQm1t/axPeyDQ5L7WqK6YLFbMwXv/kcj1+9RJJ5isZjmoZaLFA+RRlD3TTUzqFNzGWDkkhlCCrgyhpQKKXx+7HB+xuduBA29Bt+8J3DvZ1dbN7jpfk5Ftd3sSG2JD0C50KbrIbI87VNfimjLMIGhxU7BPMiRw8H1g7dhPce1eY1xmim16/g64py5zo7ly8h8pxhWaCIvdhqMWW2s0VTV1y9dpW9subI2jrBOV7cPM/K8gpJ3kMQMEoQsDhb0x/2kSZBBIdrqkjkWofVkvnWS2iTcW1RMncOKkfZOKq6IZGWRKh2fZbQNvtTLeiZlEwkBA+1qpEh9nUCLWEcfGzWA0GIDd1fWtuQMuEWG9iazNkdn2O+KKOE0QekJDZ+goo1cBtmQ6iwztG4gPVzTLJFmuR4u0AGd/CUsl6PnfmUarTLeOsaV7avoZMM/fijCN9Q1zWXr2/xxIXLXFvMWep0eevGKWTeIctz/Fjz0tUr9LKENMnpdzuEYCE0ZKkh73YITQMu0mCIgEaSZl2SXp/VXpcnrgdmdcP2vEGLglWRIRxI2VBVBbVtyJOcLM3ITUZTVjR1RZlE/WFo2xOB6JLCflcP0CTpMOnkpN0uh9bW6XdzprN5DBoB8G3g8I4gJcFapJB4KZAa5rWHhUXvjkhMRrHYbpPrmAf21w5RzaaMRyOu724xXhScWj+M856Xru/w4qWLXJ+MqR2sLw1ZHa6g0gQrNQvrGTWBuekwn884aRTTaYVkCSU8VVlgUh3r6aaiKUtMkkSRUr+H1IpDy0uMK8u0rFnUnlw39HVFaFum5bwgiEC/Z1jN+iwN15jNprjK4h1kaYqSgiBi4ETG/rYUgQAb2jsfI02aIoJrc799ai8W3EEKXKsvcQisjDSOBZrgKWvHaFJwSW6xdf0SJ29rDiQdnaUhIkkpizmTyZTlfg/ZHxKyDjfdejvLy8vsXrmE0YqlwQpJSy3ZxlLYCtGUTGeTttjvkmUJi2qBSRXFYk6iJcZomqIC75DW4lFk3S5NsWA5S6iso2pcpJ68Z16WKCEIPlCUJb1uznpvwLGVNQbLh5jlfaqqwQnJoNujm2QxH2570yGA39+B48keAsFktMdoOsV5DhpCMaeL/xAEXgYkEUwn95tvCusD06qB0YSd3S18PUcFRxCRMF2+5RauPP80q4MutUoorOPEcIBOMiZNRb52iMl0xtWtba4/f56d+YxZUbK1KCidJzeKH3vTbWitSZWiqkvm8wVGShKlaAQE5wgiGoxMNEprnJCkSiKlpJsoggMVHHXTIAVkWpMazbDXYWVpyFpvQGpSZA6Dbg/vGpY7PTppilbqFS3vVgUrAvrpbz5DJ0vY3dvm2u4OddPcyPUAKdrvtHp5AVqIyCZ3cvJ+dO62WjAtLbt7E3yzILgGITUCybE3vZnNr36Rfip4aW+KrRY88Y3HeWbzAl2tCUFQO0eSJBw9fhM3K0XQgseeeoZrswVCCk4eWme5mzEb7xACLMoSowzSWYyKib8AnPAYcnzTRHpKKpYSDSanaRqs9wTlSU2GEIEsSemnGZlUGKGQriGUBdo6ulLRUZqkbe4HPMHFvvK+Lk1vXrqwabTaGE/GbI/HlE0DbZ81tKqmuBP3heGBRIJKUkzeI8/7CAmV0tTTPa7szgi2AWcRyoEMDJdXGB4+QrMrOdXpcun6Hg9++TG8yfmlv/ZXWL15g1DXmENHCMFTLeYsdq7hlWGyqLh5kDPMJBqPFxrrC4ILlFWBaAJGK7IsxSiFViCcx9uoS0yUYDlNcL6hBGrrEFrGhpMI9ExGV4JZzMl7S1B7mExRZUESAl2pSKREEPtAMWGPkViEMNIvXLpImhiaumE+L3GAF1Gaa2TceRaBj06TOgQyoaGNTpXwpEiU0qgkYbqoCbZE+AaCA+sgwKHbbmVzd4deJ+G2W4a8x2oeu3iJ5Tt/gKUjR6mKAhcEF154lqfPPc7Lm8+znnR544mbOLScYYsJ1lkCUVMTlKIsK1AB7zUCUFmC87JNTSK3aZSgk2jKOuC1wPpA2TQ4HEZJlqRkGU1W1YTdXRbOMxmNGKqSHzjUY55q5j7ETWE0HlDuwL1t6p3pbLNjzAZ4HAItNUJIMgldGfllB0yImpYlo1jp9Vg7dpLDh46hBZTlgtF0hyANjfP4pgZbE0SBkApcw8r6KufTjMo1dHoZ7/rBt3J49Sj/9g/+gBO33ML02hUWszmJyTiuE2676TY8nkQ5nLPU1kLwNLYiAM5ZvLNgAx6PkhLnFMEHvK3xLsF7T6o1q8MVrk2nuKqhbjyZsqwkhkFikFJRVw0zO4NFzaSpOJ5X/PwbBb00YTJM+FThmVgLPg75hFaOAoy0QLwkpECjwFu0VEgEqZKkiSExMU0YCoFUmkwbjq0f5+T6cfKVdbRWLMqCPE0YK0+SKsr5jHwxQWYxkOA99WLGs5MZJ4PHJAmdrM/JjZOcSjsoLxCdJbx11HXNdDLi+tZlUBKjujRVQVkWaBWjs7UOIRXWWoQC7QV101BKQZ6nWNvgbYNzARECb771DnqlYzKbsFwWdENDMZ+j64JQ1WwvSgqp2ANK5/nZ26DfBIJKGciGWzLJOWLUDjJC55EIwaaWhHNGyp9TMpqhMAGvNCupZinL6KYJLniEi+arpaTbXybLe+TakHRzhr2cd9x+hJsOvxslBYiaerSF7jUgDc5ZdvZGvDSpqInaPZ100Zli9/JFQmMpyhJCYDzepVgs6C11GCwNSFWsz6U2aOlJVCwPnY9pVHCOpnIEazFa4usKL82NuRRgOc+4ahJSmXD8eJdMBHzTUM6nlLsj1N4e0oOrG+piRqKjJjv4EnxD6S02OEJwSB9ZKSEDAl7S/Tzf7KRJbAVJjfYBmWQs5TlHe11Wuj0Q0LjA9fkcYxSD5TU6/SXyPCdPDHdurHHXW94GSdYq8j3lleeZXbuMzJeYVZarU8FNJ25la2uLy8UCNZuy3ukhksDVK5eYTCaUTY1SmtWVFYbLK2RakOiAX3gSrcE3ZIlBe8+0aAjEun1eWvJE0ctSqtqSdQTBxRxWIljSEqW7LCUZvV6Xngw0tUVnPXQ+IKwfw1YV09kMMdnj6+UOb1qbIwJcKx1PFzXWeKQPOBnlczJACOqsVmnn7E3rKwgf/f3WfE5dldQBnDJ4pUlMSh0Ca1mHRGt6nS7KRP+RmpSbjx4Ck99QxEtDfugkTz/5NLPFHmMrGNee9eVDJHmP+XzKtB6zFhwra6v0UkNRFHgXMFkUA0nvSYxACU/jHMFZfNWQpimhjIoxay3ToqRxnlTl4AJKpbFw8jbmrkLQk4HlwQo6MWghCa7GGIcZLCHLBhMCs6rGTid0J0P+5Sxma+kAABGySURBVGRINatY1fDIRYcdBJa9Jw8B6WK0QEp8vXdOn33oodH/8vtnN5/ffH7j+s4uq8WMF7ZeJiiF6S8hu120ScmdRbSzGzWB0jakWUIQHu8B2Y6scqOCuVIIducBleckXY1MUnSvz6K3RFmvULoFy0sD0k6XXtta9CHg6gZCgwjRdwadYMsCZWtsXTMrCvamcyZFSVFbljop3SzFJElLdiqEkPG+vMcIS9eVFE5ClkCa4r0neI+kQgPdtINXhmASMIbPjUfUdcXqUpclpbBNja9ici4FOCk3f+nee2NXrt9d/eRdd63c97VzX2ZJrbO8vsZeUdBNDL0sxSiN9R4nJMF7lNGkaezgC6nZvDZi+WiF0J2Dunnr+jUmjcAsDdE6QRlD1ukwLwp6iUGJAcX4GkOhUL0e9XyGJ+o0nRAEJyhnU4rphMY2zMe7iLpkXtVcHc+4NplTu+gTh3mGVhJj0hiZZSuiFAGpNCFAZ7bHRT+n2+lhshSCR5kEqTVSKZRKcEqBiQ86yTtYW9PTCVIIqrI4UNpKKRBSnoX9xrpRZ9NM35cPYle+M+iSTkZoKUiTBCUULgSSPENpjbcRRKMlHsHLoxL/+FMcXltFSMVkMuXFl7fxSY5WEmEUQol27o2DkYWqGXL98nPkeQbe45qGpq4pipL5fM6orYHLYk7iSibzgpd2xszqZl/DyeFeP5Z0SdoO8wTw4Kw7mJDyAdZlzTONZHdvlxA8zlqWl1fpDpYwJsGGQFCKLOuQZTmH1tZxVU1TzJjNZoxHe4yDxyiF0AahzUM3AHT52couRl7IoUkzpBasyeU4HaQUSim00QQkUkuC328exRrZCcVuEZhc3sWFEAlZpck6PZx3NFVDLS3aaLSKX4kxhOEKWy8U+CsXSUwMZLPpjMliztZ0yqKqqeoa6Sy4mr2ioqgaPJ4Q4Hg/o5MosjQFYnMpICjrilwohNGtVFvREw5dL7g2L/HOIhAkxuC8JxQLSDrUtsE1MVnvZDm+KigWC8qyYDoZsZhPYhknJbbX+cIBgG+/+5bRb/+z3ztbNfaeJIuTO3neQQgwaYrUmuBDFE96HxdAq94UAusdi7o+kP0CeBd3gNYKH7d8JCWdx8s2MISA2LiTb539LNOdFzEEpmXNuCgpbUNRNwjv0N6jZRwXq130XccHOeudnG6aIhEYo+N4WW1RCGrZoNvPTBIBSnCTrPk3558lqBgIi7pkMBiSdvuIpIqss7VYW2EXBts0jPd2mY73GO9eoy4KGufwIXzskc99bnRjBwLnL1/4qELeI6QnyXNMmpEkSaRxfAQjdhQd3lmsc1gX26BIgVaxhyLaxlNobUzKdgDRtaP6PoLvncOFgO50ufMnfpqL55/j8uYLPP/YlymqGu8DKni0COh2WssTkHjW8pSVPCVPEvIsI0vb+yQyy0oplLOIRkbxkYjt2TevL/OGpQ7/+tnzZFrTH/RZP3QT/WGDFZKmcUDA1yV5YhBB8PKVy8zG2xTzOXUT76sK9uAshm8btPnl+//O3rHDR4eDpSFGa3RiCK3iM7SdK+9itVCVJc57pAAhVWyDSo1s6SOIu04oiZbyYMzfed8eLiFb/XE7kNPeyotf/CxPPnmOeVkTgovZv4+/s08MLOcJh/odVno9+nlGZuJciWyZImN0nOY0CUknJ0lzgtD4zoCiu8ynv/kCX37iCa5cvRzFo70BVVVTNnUsXeuSQMBoQ1UUWFujPAgpcN5vvvTo12/Zx+zb9IGdvPNRbdIPOu8QQeLqpp29CLgQcNZSVSVVWRGcx7XTj0oKjDIkaYxqRqm22pZIJN7LSGASzRDvsL4V7TgfK4ZIc3Dzm99GOtvl2u42o/mCRdVEMbtRpFKQacVaP2PYyUiNiTIPJVvCLToXqQ1Sa4RSeGnwh28lv+UO8iNHEVLx8+86zV985lv8+sc/Tu0do70dyqqKdbbz2LrEW4u3Duc9OklIk4ROmhKEvP+VmH0bgEvJykdQ8j6PGDoP4No3cVRVRVPXOOfiRFKI/QEhAK1RKu4u2e4yIWUUmguBNBL5CkKybuoDdleEqG92LgCeJulyx+2nOHI158KVK4yLkq6WKAlaQNckZKmhm+UopdFSQRCYRCNEQCsVNYsmRRw7RffOd5AfOkpRlDz1/CaPPvEk33j6aS68fJnpbEre6dDtL7OyorBNC1xTU9c1s7KksY4sSehkGYnRm6Pp9AuvCuAHPnDv6B888Nsftc5/0Pr45CtbUxclth058LTsbzu4p2U077h88D4gJAeDNsIkCKURUiL3m/O1QOyzulKAlwgR6acqBGYyQylJP89RAjpGkypIlSZPU5RutS0otDEkOjJIQglMkoDJSX/gRxje+XbKuuazX/gSn/rDz3Fl63p8cEIgtEbnHawPWKHoZT2Orq3TNJbGRQAH5QJb15gkw3uHlvrjj3zqU5uvCiCApf6IcObngvcbZVnS2IYQxI1msg84fNtYEXFopRUWyf3BQi8OJpBoh22kimJYpaJv9N4RRDtJrmRscbpYyizyIYvZgso50sSgBGilWF4axKju4+S7bFOsuJUFxiTQX6f/H9yNXj/CH37xS3z685/nWy++EPlNk5DkWdTgCIGSsV3bOM/OZMrh1TUOr3Wp64qyrqispWlnkauq2vz93/j1+/9dvP4YgB+4997R3/213/iQbZoHgvXQHmrjAwTvgDgxKWSktbXgQJllvYtsjPcH0de35izbL+9jdWDrGtGy3RBbBDLEQOOzDp1un6KYx4eHQ+uELM+RWoHzVFVFkO0MnVToNEUfO8XKO+5mc2uHj3/kH/DlJ87hQsAoSZ53SNPOQb9EhChcStOMNMkJAnbLhhPHh3RdQ1mV1E1DUzdUtiFJzB8DD15l2PCP/uWnzv3oj//kaWDDHUzrxOjp8LQxFiUVSusWHIWS6oBPiKOuASFFFAyZqOVDRPVTVdXtAGJ7LEUQBCnbJjZ0yxmiKvGuQStNr9ej3+/F2WHnkUqikwRlUvTKEZbf9VPIjTfzW//i9/iHv/3/8PzFF5FSkCVxsrPb7WM6XUySxfs2BilEPJuBAM4xLxcgDcu9HkJEy7HOIeChj/3vf/dv/0lYveqsnFLuXuvUY4QwdCHE6Lk/D7e/8P1zB/ZzvzZTo5X3hhDHBfaDjiQgpcIYc2DGtOe9IKIyUUgRJSSDZfqTbYyKgvU0SVBSRWo9gFIJKs1IT76ZzlveyYvXtvm1//tXePbFFwgEkiQnz1LyTj8CnWQkaYYSiiBAtUdJyeiwccESguD8xU3yLOOWw2sYJWmaerQ7nrzqqR6vOu569nOfG/3wj/3lyoXwk85HP5WlGb3egG6/R5rlSBVHGqRUbYGtDoANrSQtnmugSfMs9k3ahlVVVdgmugTR5owSDrr+SfCsEndglqZkSUZmFLaxaJNgltbp3vVuXpI9PvbgQ/yTT3yCq7vbJFq3Zy30MWkeWRnAe4d3LuoeW58s5Y3TRKLqwFIsFljvmM4Ljq6v0e9mv3j/3/z5L7waTuLV/mL/+ju/9hsfydL8vk63Q7fboZN3kVLSNA1FWVLMp9RlSZxFib5RCREDRIjTP0mWsLa2TpqmcTrTO0bjMdPROPowsX8WW0uXexi9vMk71ZjxeA9vPf1eDyMd3kI4eoorSzfx0B+d4dGnn4jpk1RYZ8k7vbhblW4JhxsBDARaqYPgI9oiQBK1h843FIs51lqGy6sMB/2Pfvojf+/9fxo+f+apHb3O+v0r691397u9u/Isi3MixN6E0dGPgMRZi3O2bf2FaI5tSeeta10AB8ElS1Pmav8AiMiYSBmf52Qx5Ytffpi/8CNvQSmD0YKs08UJxYX0EH/w1ac49+wnqWycWY4TAYJBbxCPB5Aqdu9U/O7b6icAtipaAW0sM+OomsBoTZJmpDphOpmQ591zn/6tX/tTwXtNAH7g3veOfuczZ94rpDgjZNiQbVnmvUfqGFmFFC1PpqL+LwqkiWr9WIrVtiYXN8w+TVK01DRNg9zffyFG+K8/8012RcInX9gm9Q21kFw9P+LSrOT6+EvU1kfgfEAnaeQmlYn3IRVKRwWptU2sdhqLtXVbu0eiQ8n9s7aidBklSLSJ9yXE5tZi571/Fjb7q3xN14NnHt6QSpxJjNkAqJqGxaKgmM2pqgpn44hERCLSTewLlID+cIm11VWyLEUJqBrHtavXmE1ncShbxqn2q5MZf/TII5RVhSDqTKqqYDGf03iPc5bGOqSUdDqduOMCKBWJUaENIXhsXeOaCFpjm3icSmhTRvYDSPuYhcALMEKQGbOZddO7zz300ObrCiDA75x5eCOTnPEhbHjvY3S1Dhs8wbVm0g7m7YulfVtxpHnGysow1q8hnt02ns4YjcbQmu9oOuOzXzvHbBKHIV1TMxvvMZmOKeoaD6RJur9L2kkAEf2ZVAgd6/emrrHOUjd1rNdbSW7w+8KfOMccTTi80pQ3jUzu3jz72dcE3ncMIMDvfObMhlTyjJRqQ0rRSmBvhIBYFIiDUo+WbZEqHoiTmli7Bu9ZNDVlUdH+GmcefYw/OPuHpDpBCEFdV1TFItajnQ4yxGxAEF8fZ0Rk6/ckVbmIx005S2XryEr7WLo57wgi4FxASXGQDWghYqNJsimcvPvqI2dfM3jw7ae6vqbrr//U3Zve+buRnIt/0mbOvOJptNVJmya2Cw40TU3V2FYRHxvk+5FyazLla088TqLiOQreNtg6isd7vX4EQqmYx4WANtFkpYngLeYTmiqWnlVTE1w4qN1d8C350S44iFZkEB+GhXPfDXjftubv5vrdf3XmIwh5H9AOJ4kD4PYJ1Wg24aCIV0ohlcS3JhWEYGcy54kXXuTsl75AcFFM7qylQWLa0zp0kgIBZ11MxGk1PAKK2YLalkjiWTO1awg2TlAR2gS/FbiDjDtOQDxZjo+SJ/ePzp79rk7+/Z4ABPjHv/f77yuq5sPe+2EgRJM6qI/buU0fz/zbd42yzcGkVOzMCl68ssWLV65w8eJ5ut1uHEEoC6piTnAOk3cI3uOauh3zCgilQcB0b4/axqly7wPeO6yNTFKIFGOb0AduiB9BBEYE/6HJ17/8ke9l/d8zgAD/1+88uGGS9MNFMbunnC9wLkbJfT2hCwGlFCZJ6PV6dLtdTGLY3hvxr772OEopXt7aYjzaZjhcoyrmTCcjgnOoJIkHS1QVsiVkhdIkacru1jUWxTz2RHTbenVNPLMrOBBR5xOZ5FhphGjKZ20Q95bnHtn8Xtf+ugC4fz3w4GfeNxqNPrhYzDdU3GL780oYo1laXmZleciw30Mpya/+vw/i0UzKkmoxZ2/nKhKYL2YYbdBJhtQJrinxrcQsAHmvz2jrOpPpBO8tWZohpaSuG6ytD1oEUkfmhRBiy9Q2myKI++fnvvLx12vN33EQ+dOue9/7Ux/7wL1//Rbvw4d8YNN7f1AFCCHIsoReJ6eXZTx87gmubm8DcXfMpiO888wXC7Ksg8m6mE4P7230iy6Cl+Rd5pMxk9kY29SRVhPxdDfnbdxlxJIyRmkBMAqBDyWh+/bXEzx4nQHcv/6n/+6/uV/U9d0hcC+BzXiIgyUQ04e9yZSHzpzhyNoxJkVkfafTMVVVknXjAHaSd/Hex2PvfMw3dZZTlXPGo11sXcYcrg0kzvno41yIBIeSSClGnvAhn4hbJl/7t/ePzn13geJPu15XE36163/99X90j1DqniNHjvzc0SOH+fyXHubRb53HdLpMy5JiNmXn6kX6w+V4eoaMp1qW1YKmLFpaPUEqze72dYr5BN80SKXRWYbRhqaJuhmCH0mTnBVSfnT0yBfPfr/X9ucC4P71wINnhocP909/+J/803uywdq7t0a7G94HivE2ZV3TW17FO4fWKU01Zz4d41ycS8nyDrPJiMnuLrYpESEQlCbrdRGOzaqqPhmozyrnzo7Onfv/1/+M4NWu0+97/3BEeReL8rTp9W+uq3Ij7Q6G5WK6Uc+mw6ouAEhMQvBhc2dni7qYbfq62USJc1ImLyk6Z78fpvlar/8PS++LbU7Pk4gAAAAASUVORK5CYII=","e":1},{"id":"image_5","w":80,"h":80,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAYAAACOEfKtAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAgAElEQVR4nMW8WZBc2Xnf+TvbXXLPqgJQ2BoFdMvNpUk1R6RIi7aI1kjy2C8i/eKImYghGfMyDxPBZoRnHPPEZszrzJD0hP1oUaGJkW1ZJmlHyBQVUoOmTFJskg32wiZ7QwEooAq1ZVaudzvnzMO5WShUA93N5uIvoqqyMm9mnvu/3/r/vnMF/xVlMBj0oii6LIS44F31eFkWa7P5ZC3PMwRqTUlJHMdESRulzdAYvS6lHCLEurfuupNcySaTq/1+f/hf6xzEr/LLBoNBTyl1WUp5WUr5B8CaEALnHN5ZyqpgPp+S5xlCCLSQmDghStoYE6GUQkqJEALweOeoqpKiyNeLYnbFWve1NLVX+v2LvzJAfyUAjsfjy1LKz3jvLwshegGAu+K9x7mKsiyYzybkeY5QEokgThLipIPWBq31fQHM84y8mCGFII5TtNRfdtZ9rdPvf/WXfW6/NAAHg0FPa/0Z4EkhRA/gKHBHH3vvsbaiKgtmswlFniGlQAqJSVLitI3REVprlJRwCKClLEuKIqco5wggjlKUUuFzYV1K+VRZ2m/2+/31X8Z5/sIBXADnvX/yuLY96LHNJlTr30MM19HTO0RSotIWpD1s4ySucwY6Z6CxglCKAB/gHWVZHAIoEURRchRAACSseyG+3G53P/+LPt9fKICDweBTSqnPAWtwF6Tjfxcyff375C/9JWLrOZoxGCOxlaV0ku1Rxe48xsQJsxJWuimr58/TXL1EvPYhfH8NJzRlmVPkc8oqQyIxRwAE8AFppFQ0Gs11KeVTQog/+kWd8y8EwMFgsKaU+kPv/WV4c+CEEOSjXba+/iXKmz+g09CstDXOwY19zyubY668XvLjcRufrjDY3yXSkmaa0mk2uPye83z0UsSjj5wmfs/vkrUfoizm5EWGkpIoSpBS1cDdFWMMSZIgpQT4KvBZIcT6z3vuPzeABwcHn/HeP7Xwc/DmAO688C1u/PkXMOUBl042MBq2hxlXfjriz56bcWMkiJImzc4Ku7tbJElEFKckUYKKG4AjjhI+9Oh5/sElxYc++usUFy4z9wYlBVGUIqWsTfwuinESE0fxAkCAIcE//1za+I4BHAwGPSnl57z3T8L9/dvxv7ee/Wte+rf/B50IHl9rMZnlfP35AX/0vQM2J57Ce2KToE2C9R5rS7TWpFGMVJrJfIrWhqqqSJImZ1dP89nfOcvv/P2LHFz8x1SmTRwlCCnxeLwLflAAaZoSR+YogAv5ohDis+8Uh3cE4GAwWAO+IoR4/J4Puy9wHoFk/Vt/ygtf++d0I89HHu2xM5zxf33jNv/hxSlxnCCEoLIOhyCOmyEq24okMTSTJoODA4xRdNodTNKkLAuiqEEsHf/P//Tf8P7HzjO4+E8QcRukxDuBxeG9RwhBM22QRPp+AAJcBT7xTkz6vp/2ZlKD9zTw+FscWotg+9pLPPNn/4JOBL/5SIfpNOOf/fubfOX5KdaHJRgl8d7hnUdIT1mVOB8S7PFkTFGWWGdxztNpNjl75gInT52mtbTKP//6LQ5urNO9cwVJUDvHXfMVQuBrc/bHnWOQx4GnvfdrPysePxOAg8FgzXv/NHWUfcBi7hHvPd/9t19iZ3/A2rJiluU8+ac3+M56RqQVkVF4PCbSGKVRSiC8R2CJtcRayyzLcM5RVhXT6Zj9vR1wFefPnOXSxUfw3bP80Td3qTauEk1v3PP9ATzwzuHefL1rvAMQ3zaAx8F7O+K959rVv+HWi9/lQj9iua156j9u8I2fTsgqyywvKYoSax15UZEmBqMlWkIziYm1QmuJUQIlPd565vM5g/09Xn35BV56/vtQFlx66AJ7vffx7Es7RFt/i/QORABPCIkQ4JzDube84Gv8jCDqt3PQ5ubmmrX2aSnl2gKYhRyvKI7nenu318lLz3vPN/jz5w/4d1cneOrjhMALgXUe6zxxFNNKUwQWKWOEgDSJcM6xOxyTFZa8KimqkspV3Lx1A2sr8B/i3e99Hy9OPb+x9zrqzBZV83xYHwKPp/IO6zz6Pms8Jmt5aZ/e3Nx84vTp0+u/EACdc185flUWi7gfaEef23j+O/Qbgn/9zA5/9qNpHRXFopTAe9BSkBpNI5I0oohmrEkjTbsRs9Jr4a1jXpRMior1rQFbgxHTeUle5Nza2mCe5XjnePe73sOtkebM/ksUrYcO1ykQeO+obIVRkvvHkSPn6/2a9cVXrg2uPXHxLYiJtwTw+vXrX/DeP34cmPsBd1wmwx02XvhbPnDe8H9+a8jeuAI8QhB8nVQYrYkjTWwkbSNZaRpOdJp0Wwnn+i2WOi2klFjnmBaO96+dZnN/xPrtXV65vcf2eMbO3jbf+8F3yIuCS933cbp0CEQAT4ZMwDmJ9x7/NtcuvHv8VLzyOeBNU5w3BXBj48anqso+CUdLozeC+KDnrj37X8BZNmaavXEBCIQALaGyHukdaSxJtCGNDN1mgzNLTc7123QbMSd7LTrNJtpohJDoKMZKQ5HP2NrZ4cVrmzz94g2u7Y3Z39/l+Ree5WS3zbvOLdF72Nf+T+C9QAhHICD80dO5ryyAllI/6b2/LoT44s8MYPB7xReO+rvjV+6t/N/GT6+y3FQ8N+4cvi4A6wUOkELgAa0V7TShlWhaSUS3GdNrpiSRIY00UdoC54hbbXSzB1XJUrvFUiOmco7pj65xczBlOBrwg+ef59FLD/F7H5jT6rQXqwNgEUPeSgO99xzJgj7nvf/qg3LEB3oDrd0XnKt61rq7H3r0C3hjGnP8+Z0br9FtwK15k0XOLoXAhiCJrDk97x0NI2lEilgJjFEkcYxUCoREKUncaBE1u8StLsnSKp2Vs5w/d54P/9p5Hju/ghKCyWzKzt4dvvv8i7z6k5frYHW4OkTtet8KPOss+JCEe+97wB8+6Pj7AjgabH9KOvtxnOX4dz0ItCPPALD+7BWKrZ/SSjWvb2zXVx2c94dO3APOWgSglUSroJneU/tJjROB/5PGoKIYoTTSRJh2n7R3gnOrK7z/wirtNKKyjvF0xI9//AIvv/g844MxeI8QHlFbrlLiLf1fZe2hBtbHXvbef/JtA6iE+5zwFYoH500PTqLD4r717/8Vj5yQPHZG8z9e2g8ALizDe4SkrlUFznkq5xBCYL3HeY+QEhNFKK1BSKQ2CK3CCSmJlwplItqtNo+eP8Fqr4nznqIo2D844JlnnuHO5m0kIL1HCoeJVCBk30RCegVCCrS+x8M9VWvjmwOYj3c+J6xdk84j4B4NfDPTvftaeO7xf/RJVs+sgoCVpmatrzHSIvFIBLZyOG8BjxQQK0FZVljnQ03sHdY6EAqpNFLHiCgFrREChDGIqIFp91jud1nttRB4ispSlDnX1q9x/fXXghnXl1VJ9ZbaB9CMI5Qx9/CKhCT7yTcFcD7YXMO7T4la8xY5FMd+hJAPBHKh+4995Hd45dQ/4jsbmp9sZPzOWsyvn9JI7/HegbdoKVluJpxfahLrwOGV1mKdwzoHQlCVJSpuoBtNpFCgFB4JQiHiBqbRodPpstpv1q0BR14UjKcTnn/uKlVZsPB/i3W/lRitMSa63/GfOa6Fx4+47B1ri1zJWXeMmAwAeg/e3318XCbDPV771r9j8/t/wasbYx4/L3n3KcFvnItpRQLvLY044uLJLu8+u0S/mSCBPC8pCkvlJU5GeB0jm11IW3ihcbaEqqQ2fFAaH7dRrT5nT64A4LyjLC2z+ZRb19fJ51l9UT33Xex9RAqBlPfNdXoc08J7jNzD57yzOGeprA31Y10tLBz7vbLI/e597eo3/5xXvvYF/uF7BIOGZW8s+fCliFN7jue3S769btFa0ksjtBRIFfLGeekQ84LXdqfsFIazhaHVMZyJ5pwUGlUVxGmKjCxFVZE5x8b2Hjt7+9wclUSRZp6VVLaiKEr29vaYTg5otRtIwDsL6i2SQEK647190MufAZ56A4C7t1/9uC3LNSE8VVlRlSWVDaErFOVv9B33JtAc/h3e2WB36kFGPHou5ZmXR5xcauL9nMuPNPnejYyWL5lPxrhGDHFEYR3zvGJvVrGfCTozy7ysiMw+m1u3OLfS5/xyn5Orp1HKsn79Oj+9tcVwlmOMITWaxBjm8wLnHHmeUVrLYH+f1dXVUHNbi1TuQZzgoVSupMrD59zn2F7dnr0CR0y4mM0+nmUz8vmcbDZjPpuRl9URYO4GkOM54fHnhDJUTnB919FuNjm9nFJZaCUxJxqSlUZIS1JR8PKtOwxGcxKt0Uphi4LZ/h7xcJf57pD5tCD1hricMdjeYD4eMhlsM5sM2d7a5sbNXW7e3mcwV5w6cZYTyyu0mmkIRFXFzubtw1zC2tB7ds49MItw3rM33MfZKhAV95fPLB5ogGeffbY3yatPxi7kGWVZkhUVVmnSyOPc/ZPp41XJ4vX28ilAcG27REnD6aUmm3szOklEO5Y8fCJme5qwdKJHK5/z0sYdjJDsT3O6nQ6/9dij/NrDZ+g2m8RxQj6Z8u3nbnFrdwdrXqLT7LI3Lzi71OSRC+dIk5ibG9sMRnMacZNuM2U+HTGbTdnZ3r7nzKuyCJooFa6ujJSSCASlrdgdDNjYvMEjp1YpixxjovsBeNl73xNCDDXAeDy87NKE3GiEh6qqmBcV2lQYY7HG1l96rzovTPuw/iV4xd7qeRyS3YllXpQ0koh5PqKbRqSR5HRbc5BLjFI0+iu8v9FhOjygHxve99h7KauCGztTtl/bJtGSS6dXcGnMfHDAP/wHH+G7P3qVDzz8d4hiw9604OFYgc1pJS2wc0YHI6Z5Rms2Z3dnJ0R9cdf3OWspywrnPM7frUzmWcbO9i5lltfa6B5oxsDHgK9pgN3B9OOTaXmYpbuqoqwqkqQK6YKsyzApHwjigpqSUtLorSJURGYde+OCfkORl6GYxzkkHi3rCO49vXaLRx86xfqtAz74a6dIY0Oz1UFHMUpr7oxnPPfSNZZWz/DB972LjY1NfuuD70KUFc12myTSdBPBX75wixPLPV56PVQ+ZVVxZ/MWRZ6RJgmeutkUbAjqHHGxdrxDOIcSD/b7R+SJQwC3d8cfU0oipQAczlYI72g2M5yHyjkaZYlWOhxTs7wLcuDwi4RASYkwMZ3VNcYbL3MwKWgYxbx0lNaRO09hASTOe7wQeOcpMstvf/BhTix16bcbREmCQFA4SeU9y+0GHzjTJO0s8d9d/gi9pR5OKrAeLSWdTpe4mXJiSfKd5zLiKMTHrVtbTEYj4ihikd8usopD3734v85AqNNv+eYg/gHwpH7qC1/oTWbjNSVUAMdDUWSURYbckwzHE3rdHs1Wg9iE+RSBQKgFXR6SbSlA1rXu1tYm6alHGG28wmheYJTkYFYxnBXMS8Gs8GgJ1vlDM8qdpywsMk6J45Q4jvFeUGUVdj6jrzPaSRdbFJw8d4n5aIu0ewanIc/m7JXw7ofa/Ie//hsWzUyPY38wZHtri16/VxcF4JA45wKpcYSGs9ZSlQXeOjwOeFMA17z3Pb3x2muPR1GKFBKlNEYprLXkeYa3nsbegE6vR7fTJU0TpFKE+R557xXyHnBMhkN++Mx3ePFHP+SDHc/13YxX7nimc4uQGdd2LdsjR9SQOA/WOkwsUNowyxyz8QhWV0ErhLP4qsJWIyItKV0F3pP0TjDbuYm1BT5JgYhrG+v82Tf+M2VRYbQM8zMOvJC8+sqrXHrk4dAvrutx68QhvbUYsauqiqIocNIeauhbyMd0tj+5bOMStCHLM6qiQMgQlbQxFFaQVzCdFyhj7oK2MOOaJK2KnJ1b63z3b76JtxWnT53mu3ueP/7+Jom0vOuEYWtiGeUgheF9LY1Qga5QSCQQRRrpBdnONlGnRdJImc+mXH3uGki4eHoF6x2YhEazQ2RihNRUsuKrT3+PLCtCRK3X5b0nig0vPnuVv3f5YyRxUgcGT+XuesAFgGVZkuUZUSLAB2/5FtzhRd1uNdearT4owzSbs719G1eUYQ5PqnBF3ISyrJAy+MBFUCG4TIr5lN3bN/jRD7/D8tIK/ZVT3Lp1g/3dXZzzHJTwnZsFAEoKGpEL42tSHE4RWOew1qKVxuiIKG4gVcQzL74KzvHwudNEkUR4D8pA1MRWFdpE3NnZ5oX1W2E99QkHd+QxScpkOmXz9ibn19aw1lFWFmc5bG5JGdqnRVGQZxlR2gAPtgrVmHpw9fLrstvpX+h3l+m1OnRaHXSUYG0I3976msb1OGdx3obmtnU4a7FlhS0LRvt7PPvD73Lq1BmWT6yyfzBge3eXqqwQh54HZP3fNC+wPmjJgl6SBP9pCSyN9475dMLBwQQrNPuzEicjbFFg52Oidhukp6oKvv7dH+Js3QeRAkkAsKp7yXlRsbFxC+cFlYWysuRFQVFUlGVVzxiWZFnGPMvrPh5Yaymr8s1MeE22kqTXSGKSxBBHER6PsxXYwMv5mp9zR6KWdQ5bVUH98Lz2yo/pdrosLZ8gm065tr4O1gZer/4msSBzCG3Mg1lGVZOpUgikVkRRhHceJwBnmR3s8Z5LpzjZbVBkBUIlWKlx+RypI4QQjA8G/Ou/+nbQZkDVjSQpQiMKJFllKbICJwQOQVUGcy3LUDOXpaWqKvKiJM9zvLtbXeV5flhI3A9AXRbzNaMUwksqZ8nnc6y1CKmQdcnjA3qBfheAD2rvrKPKc+ZZzoWHLjKfTnlt/TW8rTAuaK/yHis8zgmUDuSpQLAxmHCy3ybxvjaRkAEoHbKByXTELMtI0oS1h07R6/Q5efYh0nYPgSPPc6p8zje++32u3d5FSwl4tJJ1dhAoLyckSZJQeo9UBqEEXmR1kAiEgfc+BJCsZJ4VNTbBEmxRUNmKSN63IkEX2aw3n00o8AyH+8xmE4TzSGFxpmaH64zc12aHcDhXgQfhHUoJpoMh0507uOmUjoWOlWTeMxEejcRJapAcQngG04zd8ZxGHOO8R0nBvMhxtVbf2tljNM+RCLT3yGJEtzEhG84hMXiZY63jX3zlr5CElqWqg58Q4IUH4YnShGavR+UcSiqMEZg4RaCwVYVzFo/DWUdRBY0M+X24oNZWTCYTup3u/Xzhmq6qktlkyNw6BoNdqjxHKoPyDu/DME9U8+/eEzQQEB5ckTPZuMlob4f59hYnZ5Zm5cj9IrMHJUB60FpQOZBShMkp59g9mLLUbJAmYZCoKCsOxhPOn1lFSc/tm3cYH5TEJZzv94lHhv7qWVprCaV3/MuvfoNbOwMipbEuXASEQAl5SIJIL0jTZugG2pAfRsagRQgclQ1+3ToBSmPrakoI8LXijEZjpJA0m82QB9fla1VVaCEFToYk0tqCpJEgAocV8igfviRSEotD1OXXeHub3Z++SLyzj7FzpsajrSQqHbnyVGEFCO+RKuR8AodRAudDGTfJCw5mM6JI00wSkjhiVpTsDfeZzDJOnerRbOTETnHp1EOsnjmP6yiIKr7+rR/xp1d+gBKy7mGAlPU2CKXwdZVU5HOmsxnz8ZgsDxodfLJERxLtTW0BilanS9JqoerMYEEYl0XB/v4+s+kME0d1xSbBe3QcpaSNBtiKpX6PVrNFVZZkeUlpg/8Ls3qShtSIyZz9Gze5c+MVJvMxtiyRvgplCIIlDIUryGXofeAJQcF7QKK0QlQlHs88tzgP86JkbzxFK0mnGTM6GIehIqfo9hp4JMN4hpF7rKQn2Nwf8oU//Sts5dFa4BzBfOvyMkkalLYI9XA2ZzIcUOSn2R8cYExEpBVaazQSISVKSoyJSOOUVruLUrruTASNllLjnGc+y8iyDClCiielQjc7nfVWu7UWe4/RhqIomUxnjMZjJrMMHJz1Ecs7Of/p5f/CjckAvGOez7GuwiuQeYWSkk0JLSWQXjLBgnBYKVhwu8aExSopEB5KbymcJU0iLI6tgxF5ZRHOc3q5xVK7QafZpt9fot3tI+OU/YMB/+u//BMGoylahYBTWouW5pAROnn6NLdu3SRNE7SCRpLQWFrh5vYuWimaSUojTWgmMcYYtJJ1zufRKsJVlqqsMBEIqdEmuBy8Q3iPxSOsw3sx1Gm7SaPZBgmNRkqeF4ED87CUK5rbA/Z3bvD90TZMDqjIsQKkUlgX5visECjvsEJxoFwoxL3iwDu0ICTL1mKUqRU11M7eCwbTnPddTEmSBOHBOsf69pCQOCgaiT9sNs2GB/zff/Ifee7lm2gZSskwySZC9EWilCKOUyKjaaQJaMlDlx7lvY9/CC8lk+mU4WTM/uiARpLSSFOa9XePJjMmsykHI0W/l6GiBkJFKKURCrxzdTZi60qFdd3t9NaTVnNtUa3keUgc7Ss3ePY/f4u96QGVdzghUNayBGyKoFNKS/CSSlZ4a3Ha00RS4IhrbQh9YIcUgjSNmM7DND21Bu6PZsyygodWV2ilCQhw1jGc5Vx/aZ0ouk2/3eTOwYSvP/MCt3cGNQPkkUpQVu5wVM7h0Eoy2tumkcY0Wymm0eGjv/t7XFo7T1lZsqJgPJ0zHI/YHw7Z39o6rF6y6ZzN25sUI0Wr1UOolCgWaG2QKpg7QiC8CgObMNQ6iq9rHTg/QYheN9c3eP6Hz5DnU0pn0Q7aXtB1EXEFp41lVzsqC4USjE2Ey+Y4AbpOJazwSBsmDZQXKCUwSoXUR9au3IVke317n8cuncFogdKS2axkNBnz7Rdf58cbu4cRVdVs0SI5V0JQ4ImUqrtonkQpXFFALDCR4oMf/fs8vHaORiPGOWi6lG6ryXK3w8mlPrvDEXd2d9m9c4e9nR3293YY7TmipEluNf2lZZppgziKUEogASEUQkk0fl3j3NWyLD4pZZhZ+caf/yVP/8V/orAV73cp56qYtPSkKCIhkRWkwuJUGU6kAkyDm6qiEiCNRgdyDV1rhfOOTtoM9JGUaOHxTqBU6P/e3Bkymc7pdVKcdQzGU9a39ri5c3BPT8b7Bf8IcpGqeFAqTBwoJWikMZVwrPR7tPodfv/3fp92M2x9QIVg5iJFI4lot1JWel3OnlrhzqlT3Lh5g8gohvv7vH79NvuTgrNnz7GyskKn3aKVJsRGhz17SuIR13WJX6+KnN3tff7iL77Bj370LK6ypN6z6eeccU2EDDlcEwXS0yk9KpLkapEjghGajvf0Uk0+q9j1DhuI6npUTFFaG0yBkHZYq3ACsrzkJ7e2UUpSVAXrW/u8dmuHSV4Eq1hMVzmHlGpREeJrJtwohVISrSCJDePScuJEm0fe8xiXzj9UTyTUph6SNLwSGC3DBFga02o0WOp2We4vc2dri4ODAdPZjPXr62zd2aLb67O8vMxSt0Or0SCJYyLUFQ3VlReeucr/+2/+hEme161zSSkkE1+S6DmnKsUF0WCOZckbMleyUkjuSIuV4JylIw3CV2y4HCscvqoONaQRh52WZVGhpArT9z40cyBMILx0c5eT3Qbzec7mzpCd0SwECLGYmalRq23Y1xMOUgiUkkgFSWLIfUWcxqwstfjND/5dImNqfvkudXX3kzxSgVYKIxMiHS5Eu9UiyzJmsym7g322d3fZ3Nxge3ubVrvLiaVlev0OSVtd1Z/+9KeH59v99Ymza867YB4ysCRdCzsuZ6o1zkne7Zpk3jH3Achr0hLjOZCw40raeLwFEyvmZYkSAo8gTWOKqsIoQ17lKKlx3iK1BBR4x8E0Y31rQKw8o6wgKxYtxbvTD4GfC8M/rm6xLMwpiQ1JmuCdY/VEm4sPneTxcUyWFUSxqUd7Q738hv0sgNEAEf1WAyPl4TRZXllG4zFbOzts3L7N3t4O+4MdGo3u+v/2P/8PoSs38/ZrDv8ZX5dgQjiaCFIRTrDyjk1VYsioNGTe4VTBOmWYXwFyV9FFk6CoIojSCDmeIepEN9DYoKQO/lFqLBZlAinhvGP7YMbpTkxRg7fI6w41rwYRL0CGdSptiGLF8lITrRVlbukvt5FWsvvMNWaP/x3aSz2aaUoc6RCIuD9JqhSY2NDwgZRQSiOEZ7nf4czJEzx84QLbu3tc37jBrVu3rkDdF547fwXvDpvF3jmaztORJrAYPjSAXpEzWirCC7DekzrBUFRhegoZ+iJloLt8nXRGJgpVind1lA/TlVorfFmXeaLCeclwXnGiFdVrCCO6gYK/l1oXQuC8J9KaKNa0UkOrHRHHEcWs5PyFJbJhyfbOPvEPfszrqy3OPXSeE0srNNOYSGuUPNbXDhw2Wkp8pIm0RsvAvieAjSParQYnl3qsnTvDJMu++r//LzWAUaSuyNwPrRC9CjAIhPMhqgqBFaCEwlU5Oy7njGowsFnYFWQWJZSk8iCVZJ5lzG2FQYRJU60pKouQPiS/QqKPMBsCVc8OCkbziqKwYYpLLDrNx8SHz9Fa0G3HNBsRzXZEM4mo0pTzF84gNzTX9u/Qe/4ar14bcePaKpcefZTTZ85ycmmZRhITaYUUC033d1cjFbqO6qL2oEqCUYrEKBpxRGe+9E2ox62zLMtOJ42PdKR5V1dITruwM1wqQSx0yOVEKMlu25K+1MxdCR4qKWmoiCUveHeuOW8Nla/wzmEaEbqVUNnAhEgZ9sN572k2IqwNrj2OVCCxHFhnycYzZtbXrQNxj/4JIRBeII2k0zC0ew1Onmhy9lyPfrdB2m7w3scfxe8rrr/8OlbFPL+9znB/wJ3N2+xsbjGaTqgIjayQP9bdOifqCdoavMP+8N0+sZQCqeWXG6n4N4cmDODgS9b5j5+zmk4lSSqNtYJRJHBK4ZzjQAqoPANbcka3YJ6xLBR9k5LJnMiFAUpfOkrtiTspRBHzbIbzDiWC6ZT1zInWijwvaJoEgJktKawgsx6Hr3O9sMfjHgUU4KwnSRSthub06RYnTqXEJsFEbRqtPi9lryCTGGkaDHZHzGYzRqMD9nZ22Nq8zY3XXuWhSw/z0KVLnD5xkjiK6m6oINIKePAwpgz7jbkHwPXJ8HnhopEAAArPSURBVMpjzaVho6KHEMx8SbPSvKtM0Urxt/GUqXHoKKIoSi5lKdLGXCOHxGEQZNKCEGTCYo2gu9xmNCtC+UOII4jQT/Z1N1vgieOIspoFagrASHDVYcmGvzuLszAq7wVxJGl2Db0TMatn20iZ0m0vk7b63Nwf8mtxk+VSIp1kNJowm2ccHEzY3x+ytXWHjRvXee0nP+bshYucX7tIv9ujkTZotZrouu8t3wjiuhDia28AEOBcGX0pRXxOeskcx9hXdKkwGIQUnHeGgYbMObqZZsvPSZ3AOktFSC0mrqAwgrgR0+kkDKc5nopGw4AP8UQSdgtV3hHHQbutrVAqaNyC4j+6OfDutCxQN/LjRAOe/nJCbylFyBZLS13SpM2FM6uYrR1aeUXfpIznUypbkMuCLM+YzmZMxuNDMG9dX+f0ufOcOXuek6dO4VdCba41x0F86ug/9wCYFNkXrU4/o6AngVI4Sjw344Icj3CWCzZhT0tm0hF7xcQ7SgQNbcjEjDkVmbW0uik6MeRFiTaaVqvJeDQ90lyq2WmpGE9nVNYhBRgVYcUCwHsv/SKZkYDWAUATKRpdTbubIFSXpNNnOJry4ccepbUJj9yO+Um6zM3xbph3tD7cl6GsyLKcyWTGwcEBe7u73L51i5snX+fMufM89PAjnDt3jpWlJRKjAgUX9op88+ia7iH5f0KWvVd2UoW4LAArIBOevUQilGRWFQg8PWFYrhRNocl8SZFohFDMq4y5KymEZ/nhk6iGYWtrQLfTxmjDfJaBkFhniWKDVIo8zw8bVtZ60jQmywuKqgr9mCPTX0LIuosHjYbhwvkOqmF45NFlzpw9iddtVLLM3r5FkbFiGiyPYSQU396/EaJUrdmu3ntcViVFXpJlOdPZjOlkwsFwyGh/n9HBkNxWCBVhjAHEl7SS99yL5g07lTpV9EWr7CeVEGvCC66ZAuMlTZFQSMPMhZm/UiqSStBAMRWCubdsK8e4qvCR5nynicVSVo5GK5RoYtH4RuB8aKKXZdhO4etBozTWdV0rDwchpZAcrRqEABMpklYc9pHI0IFDN8itYO/2DeKVFcpOE7FsOLtH3eOoA5IPj60Ifse5IlBdecF8Nmc0GnMwPGD7zh1u37zB6bPnOH/pkfW/95u/8dRxvN4A4JdZH/5Wsvr5BvoPm1YyVwLrKhLvaZuYWV4yrXJmUrEZFTjvuSFK9nwBRiCtRCgBkcbZAhNroiRlMp1jjKGqLFIFMLwP3bBFfauVQipJI1ZMpwvu7W6eFsAL+V+SaHSsmMw9XmoyL9G6wbxUzPa3GeGZymXKmaPRahOIqKoejq+juq8b6JXHibq5VFmKomKeZYzGY4bDAdt3trl1/eYbwIMHbLT59nTryzu6unI1LhgImNUTCVJIUqWxruBlNeeOqdjXjpG3eMIYXAXEaYTQCqdk2LASRWFfiAsjHXGkUEKiZNiNtJA0joKm4ImTQNELGWrfEMVDLmYihY4VUiscDqUjMqewCPJSozBsvbpJOZvz+vXXOCHbnOwsBQ1edBUXcaGekA+DToH5zouS2TTnYDBm+84etzZuf/Wf/rN/+kf3w+qBmw1zwadH3j3rJL258+Q+5yyKtkxo2opdWRF7U7cRwVUVtgpARpEBIfFCIKUJU6qtBsNZuD2TjkzQLBlI1sKXpHGEUaGjVpWONDLM52VgbUS4jUliNEoqGs2IfqdLu3UCE0mMWUapk1jfhcxgyz7TLGFvGnNjtcd+K+OJv/vfcme6hzEmNJYig4kioig81pHBGEMcGbTRmMgQaYNUavjc93/02T/+//74vjjdP1OspddbeRIhvuBc8BtRFHHJJyyPM16JcowytGXEpvaMyzyMe3jLyeUOa4+vYV3Gxsv79Jd7nFk+jfEx7VabVruF1hFpMwUf6s4kjYnjmFanjS09URJG6UwUkcQxJo6I4ggTRcSJIU4NSRqhlSZODcpolNBhCtWGoKOkrDmMYAm+JmKPVhYIDt3EIl8NGhoeSSE/1Wql99W+N9VAgOFw94udVm/NC/kZqUL03JeWInZk1hErUB5qihPvXdhOUFbk85ykYVhq9/nEH/z3/PYTl+kv9UmiGKnCAJCoTXJRLoX8LuQ5d2+Zwt1RupqIEaKm9hfMat3DXbzjsLKt33O3jjnC6nhx6AOD3GcW0POlleXuA8F7SwABpOapsnIfE47HvZB0naQASmehjmQKSR/JTITIuVR4VG6JWzEf/fBv87Hf/X1On1hBa1Xf1q4+ueNZvr9b9zon6olXQNSwCI/wd4FdEFzh4+pW+P3KL79o8x4Si4ePxZHfhxL+vXpqufuGvXHH5S0BHA6HwyTpfUJF/ukGck07S4ZHeuhWgr5QdLRmQsXQV8zxNEuPnmTEJ/q87zc+TL/Xw4kwlSW8xXLXhIISHXr0e77bcUTbapU7Tm3BUd7w7lSpuPviYaC4563+6J9jO+896650n3grbOBt3vYky4brUvonllHrd6o5Y1vQAM6Wiou5ZqXS9ciED1tLLeisIiqhd2I5TEp5X48NHZ5pGJ0jzAV6d+TVY/tRFid6fEPPG4458ro/8h6xAPEtpNbedVe6J06ffnv3G3zb940ZDofrypsn8H59WBVktVk4D8aDFirkWiJMnUZFRTJyJGnjcC45nOTd94WTrH+LxSZGf0Qjj8gRzRKLMft7XvZ3A8MCkAUoD/jM+5j7zwQe/Ix3Lro6XF/H2icMrJd4ciq88IdOWgoRSrXCYgpoqQaxMcGcFpqxKIbrSSp/ZBlecDj9tZBDmI6crK8j5nF5O3dSOi5HQP+ZwYN3cO+s9Wy4bqR7QsHVufAEor6edZYC6x3SQzyDXjPUwIcMwuHEqjj8EfXzh8ByL4jHYQqTDv7uz+K4Y9p39L3+AbzekQ+9+k7Ag3cAIMBWlq1vFpMPOO++ZHFU3rEtLbe8ZYBlQ1e8ks8YeI2MzD2c8l2zZREaQ+rh63yMe519KJ/9/YPDWwDzIOCOgu1xX5pN3hl48A4BXMhflztPOqE+fV3mwz1ssEwpKQQMsbhGA2M0x3O1hRwCKUJiEkxY3KN2i9Rk4cse6COPyT1HHNPU+vWh9+6zqyv9Jy9efOf3of65AAT4V+UrX36d7APOi696IQ5zOYsn6XQCObqgUN5ExKJd6d+4rMPI+oDPuW/ud/S5NwQXccWW7gOrJ/oPvKHO25WfG0CAreHW+u7uxiek8J/G+3UPGCFpdtoopY6Y3ZE/9/P39QtvCAaHVclba96Rr7nPC2JdID51cqXzjk32uPxCAFzIcLj35YPZwUUvxOetlOvNbidMAxypAO5G1Xs158iGiJDzHkmOjwIi7vPcPZu977MuIRg67z4/H7sPnFzpvGlp9rPKLxTAhdye7D/VTnpPrK6tfVpLub7wfSGH40i+fNQ3HfmAowFFHEmKF2/196tHjkmI+EOP//xs7C+ePtF/6ufxdQ+St2cTP6e8eu3Gx5Hm41LIT4Y5xLuB4ijTfLioo6WdWIyFH0mkw0G8YWgoJNNDPFe85EunT/Sv/LLP7VcC4EKuXbvWQzUueyk+LoX8GPi1ewKAWJiEOGRSDm93JO7G8HvrZxBCrHvnvqaEvDKbceWXoWkPkl8pgMfl2rVrPXTrcSSXlRQXBKw5IXoSsQb0gkYtCCrWwzCcX1eCdSHU1cLb63amfqWAHZf/HwmOtfC5hWSYAAAAAElFTkSuQmCC","e":1},{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 8","sr":1,"ks":{"o":{"a":0,"k":64,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[618.211,700,0],"ix":2},"a":{"a":0,"k":[-297.789,200,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[16.966,16.966],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372549019608,0,0.898039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-297.789,200.234],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[138.444,138.444],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":20,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[618.211,700,0],"ix":2},"a":{"a":0,"k":[-297.789,200,0],"ix":1},"s":{"a":0,"k":[32,32,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[16.966,16.966],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372549019608,0,0.898039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-297.789,200.234],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[138.444,138.444],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":20,"st":0,"bm":0}]},{"id":"comp_1","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 1379","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[2064,1325,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":67,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":97,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":127,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":157,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":187,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":217,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":247,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 1378","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[2057,1339,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":163,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":193,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":223,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":253,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":283,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":313,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":343,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 1376","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1938,1325,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Shape Layer 1375","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1924,1325,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Shape Layer 1377","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[2096,1297,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Shape Layer 1374","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1938,1297,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Shape Layer 1373","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1924,1297,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"Shape Layer 1370","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1945,1283,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":237,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":267,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":297,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":327,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":357,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":387,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":417,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"Shape Layer 1371","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1931,1283,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":93,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":123,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":153,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":183,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":213,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":243,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":273,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"Shape Layer 1372","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1917,1283,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":190,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":220,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":250,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":280,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":310,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":340,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":370,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"Shape Layer 1369","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1902,1283,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":71,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":101,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":131,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":161,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":191,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":221,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":251,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"Shape Layer 1361","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1952,1269,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"Shape Layer 1362","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1938,1269,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":133,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":163,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":193,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":223,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":253,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":283,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":313,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"Shape Layer 1363","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1924,1269,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":222,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":252,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":282,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":312,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":342,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":372,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":402,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":"Shape Layer 1364","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1910,1269,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":"Shape Layer 1365","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1896,1269,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":17,"ty":4,"nm":"Shape Layer 1360","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1882,1269,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":18,"ty":4,"nm":"Shape Layer 1367","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1812,1269,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":19,"ty":4,"nm":"Shape Layer 1368","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1798,1269,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":20,"ty":4,"nm":"Shape Layer 1366","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1784,1269,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":21,"ty":4,"nm":"Shape Layer 1347","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1959,1255,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":22,"ty":4,"nm":"Shape Layer 1348","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1945,1255,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":23,"ty":4,"nm":"Shape Layer 1349","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1931,1255,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":24,"ty":4,"nm":"Shape Layer 1350","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1917,1255,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":25,"ty":4,"nm":"Shape Layer 1351","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1903,1255,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":26,"ty":4,"nm":"Shape Layer 1352","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1889,1255,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":27,"ty":4,"nm":"Shape Layer 1353","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1875,1255,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":28,"ty":4,"nm":"Shape Layer 1354","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1861,1255,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":29,"ty":4,"nm":"Shape Layer 1355","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1847,1255,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":30,"ty":4,"nm":"Shape Layer 1356","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1833,1255,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":31,"ty":4,"nm":"Shape Layer 1357","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1819,1255,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":32,"ty":4,"nm":"Shape Layer 1358","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1805,1255,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":33,"ty":4,"nm":"Shape Layer 1359","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1791,1255,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":34,"ty":4,"nm":"Shape Layer 1346","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1777,1255,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":35,"ty":4,"nm":"Shape Layer 1333","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1952,1241,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":36,"ty":4,"nm":"Shape Layer 1334","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1938,1241,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":103,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":133,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":163,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":193,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":223,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":253,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":283,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":37,"ty":4,"nm":"Shape Layer 1335","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1924,1241,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":25,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":55,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":85,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":115,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":145,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":175,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":205,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":38,"ty":4,"nm":"Shape Layer 1336","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1910,1241,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":207,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":237,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":267,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":297,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":327,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":357,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":387,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":39,"ty":4,"nm":"Shape Layer 1337","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1896,1241,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":210,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":240,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":270,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":300,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":330,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":360,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":390,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":40,"ty":4,"nm":"Shape Layer 1338","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1882,1241,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":41,"ty":4,"nm":"Shape Layer 1339","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1868,1241,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":42,"ty":4,"nm":"Shape Layer 1340","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1854,1241,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":43,"ty":4,"nm":"Shape Layer 1341","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1840,1241,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":44,"ty":4,"nm":"Shape Layer 1342","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1826,1241,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":45,"ty":4,"nm":"Shape Layer 1343","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1812,1241,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":31,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":61,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":91,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":121,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":151,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":181,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":211,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":46,"ty":4,"nm":"Shape Layer 1344","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1798,1241,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":138,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":168,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":198,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":228,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":258,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":288,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":318,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":47,"ty":4,"nm":"Shape Layer 1345","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1784,1241,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":48,"ty":4,"nm":"Shape Layer 1332","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1770,1241,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":49,"ty":4,"nm":"Shape Layer 1319","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1959,1227,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":50,"ty":4,"nm":"Shape Layer 1320","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1945,1227,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":51,"ty":4,"nm":"Shape Layer 1321","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1931,1227,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":205,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":235,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":265,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":295,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":325,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":355,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":385,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":52,"ty":4,"nm":"Shape Layer 1322","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1917,1227,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":64,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":94,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":124,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":154,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":184,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":214,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":244,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":53,"ty":4,"nm":"Shape Layer 1323","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1903,1227,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":55,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":85,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":115,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":145,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":175,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":205,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":235,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":54,"ty":4,"nm":"Shape Layer 1324","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1889,1227,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":55,"ty":4,"nm":"Shape Layer 1325","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1875,1227,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":56,"ty":4,"nm":"Shape Layer 1326","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1861,1227,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":57,"ty":4,"nm":"Shape Layer 1327","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1847,1227,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":58,"ty":4,"nm":"Shape Layer 1328","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1833,1227,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":59,"ty":4,"nm":"Shape Layer 1329","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1819,1227,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":127,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":157,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":187,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":217,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":247,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":277,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":307,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":60,"ty":4,"nm":"Shape Layer 1330","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1805,1227,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":38,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":68,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":98,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":128,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":158,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":188,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":218,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":61,"ty":4,"nm":"Shape Layer 1331","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1791,1227,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":204,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":234,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":264,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":294,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":324,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":354,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":384,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":62,"ty":4,"nm":"Shape Layer 1318","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1777,1227,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":63,"ty":4,"nm":"Shape Layer 1305","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1952,1213,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":64,"ty":4,"nm":"Shape Layer 1306","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1938,1213,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":65,"ty":4,"nm":"Shape Layer 1307","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1924,1213,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":66,"ty":4,"nm":"Shape Layer 1308","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1910,1213,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":67,"ty":4,"nm":"Shape Layer 1309","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1896,1213,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":68,"ty":4,"nm":"Shape Layer 1310","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1882,1213,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":34,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":64,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":94,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":124,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":154,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":184,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":214,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":69,"ty":4,"nm":"Shape Layer 1311","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1868,1213,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":93,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":123,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":153,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":183,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":213,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":243,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":273,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":70,"ty":4,"nm":"Shape Layer 1312","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1854,1213,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":227,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":257,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":287,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":317,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":347,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":377,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":407,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.382,-449.996],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":71,"ty":4,"nm":"Shape Layer 1313","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1840,1213,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":72,"ty":4,"nm":"Shape Layer 1314","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1826,1213,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":73,"ty":4,"nm":"Shape Layer 1315","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1812,1213,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":74,"ty":4,"nm":"Shape Layer 1316","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1798,1213,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":75,"ty":4,"nm":"Shape Layer 1317","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1784,1213,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":76,"ty":4,"nm":"Shape Layer 1304","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1770,1213,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":77,"ty":4,"nm":"Shape Layer 1292","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1945,1199,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":78,"ty":4,"nm":"Shape Layer 1293","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1931,1199,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":79,"ty":4,"nm":"Shape Layer 1294","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1917,1199,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":80,"ty":4,"nm":"Shape Layer 1295","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1903,1199,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":81,"ty":4,"nm":"Shape Layer 1296","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1889,1199,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":82,"ty":4,"nm":"Shape Layer 1297","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1875,1199,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":83,"ty":4,"nm":"Shape Layer 1298","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1861,1199,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":84,"ty":4,"nm":"Shape Layer 1299","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1847,1199,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":85,"ty":4,"nm":"Shape Layer 1300","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1833,1199,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":86,"ty":4,"nm":"Shape Layer 1301","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1819,1199,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":87,"ty":4,"nm":"Shape Layer 1302","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1805,1199,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":88,"ty":4,"nm":"Shape Layer 1303","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1791,1199,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":89,"ty":4,"nm":"Shape Layer 1291","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1777,1199,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":90,"ty":4,"nm":"Shape Layer 1284","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1910,1185,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":91,"ty":4,"nm":"Shape Layer 1285","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1896,1185,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":92,"ty":4,"nm":"Shape Layer 1286","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1882,1185,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":93,"ty":4,"nm":"Shape Layer 1287","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1868,1185,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":94,"ty":4,"nm":"Shape Layer 1288","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1854,1185,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":95,"ty":4,"nm":"Shape Layer 1289","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1840,1185,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":96,"ty":4,"nm":"Shape Layer 1290","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1826,1185,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":97,"ty":4,"nm":"Shape Layer 1283","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1812,1185,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":98,"ty":4,"nm":"Shape Layer 1282","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1924,1185,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":99,"ty":4,"nm":"Shape Layer 1281","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1938,1185,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":100,"ty":4,"nm":"Shape Layer 1274","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1917,1171,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":101,"ty":4,"nm":"Shape Layer 1275","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1903,1171,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":102,"ty":4,"nm":"Shape Layer 1276","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1889,1171,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":103,"ty":4,"nm":"Shape Layer 1277","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1875,1171,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":104,"ty":4,"nm":"Shape Layer 1278","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1861,1171,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":105,"ty":4,"nm":"Shape Layer 1279","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1846,1171,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":241,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":271,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":301,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":331,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":361,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":391,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":421,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":106,"ty":4,"nm":"Shape Layer 1280","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1832,1171,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":181,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":211,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":241,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":271,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":301,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":331,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":361,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":107,"ty":4,"nm":"Shape Layer 1273","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1818,1171,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":61,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":91,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":121,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":151,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":181,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":211,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":241,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":108,"ty":4,"nm":"Shape Layer 1264","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1924,1157,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":109,"ty":4,"nm":"Shape Layer 1267","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1882,1157,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":110,"ty":4,"nm":"Shape Layer 1268","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1868,1157,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":111,"ty":4,"nm":"Shape Layer 1269","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1854,1157,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":112,"ty":4,"nm":"Shape Layer 1270","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1840,1157,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":113,"ty":4,"nm":"Shape Layer 1263","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1826,1157,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":114,"ty":4,"nm":"Shape Layer 1272","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1847,1143,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":115,"ty":4,"nm":"Shape Layer 1271","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1861,1143,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0}]},{"id":"comp_2","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 1250","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1889,1087,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 1263","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1917,1115,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 1254","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1917,1115,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Shape Layer 1253","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1910,1101,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Shape Layer 1256","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1945,1115,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Shape Layer 1252","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1938,1101,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Shape Layer 1251","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1903,1087,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"Shape Layer 1255","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1931,1087,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"Shape Layer 1249","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1917,1087,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"Shape Layer 1248","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1882,1073,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"Shape Layer 1243","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1896,1073,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"Shape Layer 1236","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1707,1059,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"Shape Layer 1237","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1714,1073,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"Shape Layer 1235","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1721,1087,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":"Shape Layer 1227","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1700,1045,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":"Shape Layer 1228","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1714,1045,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":17,"ty":4,"nm":"Shape Layer 1239","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1749,1059,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":18,"ty":4,"nm":"Shape Layer 1240","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1763,1059,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":19,"ty":4,"nm":"Shape Layer 1238","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1756,1073,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":20,"ty":4,"nm":"Shape Layer 1230","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1742,1045,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":21,"ty":4,"nm":"Shape Layer 1232","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1770,1045,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":22,"ty":4,"nm":"Shape Layer 1242","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1805,1059,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":23,"ty":4,"nm":"Shape Layer 1241","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1798,1073,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":24,"ty":4,"nm":"Shape Layer 1234","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1798,1045,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":25,"ty":4,"nm":"Shape Layer 1226","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1812,1045,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":26,"ty":4,"nm":"Shape Layer 1219","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1693,1031,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":27,"ty":4,"nm":"Shape Layer 1220","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1707,1031,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":28,"ty":4,"nm":"Shape Layer 1224","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1763,1031,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":29,"ty":4,"nm":"Shape Layer 1225","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1777,1031,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":30,"ty":4,"nm":"Shape Layer 1215","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1686,1017,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":31,"ty":4,"nm":"Shape Layer 1214","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1700,1017,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":32,"ty":4,"nm":"Shape Layer 1213","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1693,1003,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":33,"ty":4,"nm":"Shape Layer 1216","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1826,1003,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":34,"ty":4,"nm":"Shape Layer 1217","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1819,1017,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":35,"ty":4,"nm":"Shape Layer 1212","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1833,1017,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":36,"ty":4,"nm":"Shape Layer 1192","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1568,989,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":37,"ty":4,"nm":"Shape Layer 1187","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1728,975,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":38,"ty":4,"nm":"Shape Layer 1188","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1714,975,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":39,"ty":4,"nm":"Shape Layer 1189","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1700,975,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":40,"ty":4,"nm":"Shape Layer 1186","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1686,975,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":41,"ty":4,"nm":"Shape Layer 1191","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1575,975,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":42,"ty":4,"nm":"Shape Layer 1190","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1561,975,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":43,"ty":4,"nm":"Shape Layer 1181","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1721,961,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":44,"ty":4,"nm":"Shape Layer 1182","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1707,961,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":45,"ty":4,"nm":"Shape Layer 1180","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1693,961,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":46,"ty":4,"nm":"Shape Layer 1184","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1582,961,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":47,"ty":4,"nm":"Shape Layer 1185","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1568,961,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":48,"ty":4,"nm":"Shape Layer 1183","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1554,961,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":49,"ty":4,"nm":"Shape Layer 1175","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1715,947,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":50,"ty":4,"nm":"Shape Layer 1176","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1701,947,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":51,"ty":4,"nm":"Shape Layer 1174","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1687,947,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":52,"ty":4,"nm":"Shape Layer 1178","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1589,947,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":53,"ty":4,"nm":"Shape Layer 1179","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1575,947,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":54,"ty":4,"nm":"Shape Layer 1177","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1561,947,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":55,"ty":4,"nm":"Shape Layer 1164","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1750,933,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":56,"ty":4,"nm":"Shape Layer 1167","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1708,933,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":57,"ty":4,"nm":"Shape Layer 1168","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1694,933,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":58,"ty":4,"nm":"Shape Layer 1169","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1680,933,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":59,"ty":4,"nm":"Shape Layer 1163","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1666,933,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":60,"ty":4,"nm":"Shape Layer 1171","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1610,933,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":61,"ty":4,"nm":"Shape Layer 1172","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1596,933,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":62,"ty":4,"nm":"Shape Layer 1173","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1582,933,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":63,"ty":4,"nm":"Shape Layer 1170","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1568,933,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":64,"ty":4,"nm":"Shape Layer 1147","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1771,919,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":65,"ty":4,"nm":"Shape Layer 1148","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1757,919,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":66,"ty":4,"nm":"Shape Layer 1149","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1743,919,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":67,"ty":4,"nm":"Shape Layer 1150","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1729,919,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":68,"ty":4,"nm":"Shape Layer 1151","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1715,919,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":69,"ty":4,"nm":"Shape Layer 1152","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1701,919,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":70,"ty":4,"nm":"Shape Layer 1153","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1687,919,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":71,"ty":4,"nm":"Shape Layer 1154","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1673,919,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":72,"ty":4,"nm":"Shape Layer 1155","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1659,919,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":73,"ty":4,"nm":"Shape Layer 1158","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1617,919,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":74,"ty":4,"nm":"Shape Layer 1159","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1603,919,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":75,"ty":4,"nm":"Shape Layer 1160","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1589,919,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":76,"ty":4,"nm":"Shape Layer 1161","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1575,919,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":77,"ty":4,"nm":"Shape Layer 1162","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1561,919,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":78,"ty":4,"nm":"Shape Layer 1146","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1547,919,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":79,"ty":4,"nm":"Shape Layer 1193","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1820,905,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":80,"ty":4,"nm":"Shape Layer 1126","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1778,905,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":81,"ty":4,"nm":"Shape Layer 1127","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1764,905,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":82,"ty":4,"nm":"Shape Layer 1128","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1750,905,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":83,"ty":4,"nm":"Shape Layer 1129","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1736,905,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":84,"ty":4,"nm":"Shape Layer 1130","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1722,905,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":85,"ty":4,"nm":"Shape Layer 1131","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1708,905,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":86,"ty":4,"nm":"Shape Layer 1132","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1694,905,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":87,"ty":4,"nm":"Shape Layer 1133","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1680,905,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":88,"ty":4,"nm":"Shape Layer 1134","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1666,905,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":89,"ty":4,"nm":"Shape Layer 1135","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1652,905,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":90,"ty":4,"nm":"Shape Layer 1136","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1624,905,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":91,"ty":4,"nm":"Shape Layer 1137","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1610,905,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":92,"ty":4,"nm":"Shape Layer 1138","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1596,905,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":93,"ty":4,"nm":"Shape Layer 1139","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1582,905,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":94,"ty":4,"nm":"Shape Layer 1140","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1568,905,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":95,"ty":4,"nm":"Shape Layer 1141","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1554,905,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":96,"ty":4,"nm":"Shape Layer 1125","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1540,905,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":97,"ty":4,"nm":"Shape Layer 1143","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1428,905,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":98,"ty":4,"nm":"Shape Layer 1144","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1414,905,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":99,"ty":4,"nm":"Shape Layer 1145","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1400,905,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":100,"ty":4,"nm":"Shape Layer 1194","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1386,905,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":101,"ty":4,"nm":"Shape Layer 1195","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1393,919,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":102,"ty":4,"nm":"Shape Layer 1196","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1407,919,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":103,"ty":4,"nm":"Shape Layer 1197","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1421,919,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":104,"ty":4,"nm":"Shape Layer 1198","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1435,919,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":105,"ty":4,"nm":"Shape Layer 1199","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1449,919,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":106,"ty":4,"nm":"Shape Layer 1200","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1463,919,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":107,"ty":4,"nm":"Shape Layer 1201","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1477,919,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":108,"ty":4,"nm":"Shape Layer 1202","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1470,933,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":109,"ty":4,"nm":"Shape Layer 1203","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1456,933,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":110,"ty":4,"nm":"Shape Layer 1204","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1442,933,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":111,"ty":4,"nm":"Shape Layer 1205","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1428,933,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":112,"ty":4,"nm":"Shape Layer 1206","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1414,933,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":113,"ty":4,"nm":"Shape Layer 1207","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1400,933,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":114,"ty":4,"nm":"Shape Layer 1208","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1407,947,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":115,"ty":4,"nm":"Shape Layer 1209","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1421,947,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":116,"ty":4,"nm":"Shape Layer 1210","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1435,947,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":117,"ty":4,"nm":"Shape Layer 1211","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1428,961,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":118,"ty":4,"nm":"Shape Layer 1142","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1414,961,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":119,"ty":4,"nm":"Shape Layer 1103","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1785,891,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":120,"ty":4,"nm":"Shape Layer 1104","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1771,891,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":121,"ty":4,"nm":"Shape Layer 1105","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1757,891,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":122,"ty":4,"nm":"Shape Layer 1106","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1743,891,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":123,"ty":4,"nm":"Shape Layer 1107","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1729,891,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":124,"ty":4,"nm":"Shape Layer 1108","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1715,891,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":125,"ty":4,"nm":"Shape Layer 1109","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1701,891,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":126,"ty":4,"nm":"Shape Layer 1110","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1687,891,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":127,"ty":4,"nm":"Shape Layer 1111","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1673,891,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":128,"ty":4,"nm":"Shape Layer 1112","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1659,891,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":129,"ty":4,"nm":"Shape Layer 1113","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1645,891,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":130,"ty":4,"nm":"Shape Layer 1114","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1631,891,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":131,"ty":4,"nm":"Shape Layer 1115","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1617,891,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":132,"ty":4,"nm":"Shape Layer 1116","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1603,891,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":133,"ty":4,"nm":"Shape Layer 1117","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1589,891,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":134,"ty":4,"nm":"Shape Layer 1118","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1575,891,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":135,"ty":4,"nm":"Shape Layer 1119","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1561,891,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":136,"ty":4,"nm":"Shape Layer 1120","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1547,891,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":137,"ty":4,"nm":"Shape Layer 1102","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1533,891,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":138,"ty":4,"nm":"Shape Layer 1122","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1421,891,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":139,"ty":4,"nm":"Shape Layer 1123","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1407,891,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":140,"ty":4,"nm":"Shape Layer 1124","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1393,891,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":141,"ty":4,"nm":"Shape Layer 1121","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1379,891,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":142,"ty":4,"nm":"Shape Layer 1071","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1806,877,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":143,"ty":4,"nm":"Shape Layer 1072","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1792,877,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":144,"ty":4,"nm":"Shape Layer 1073","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1778,877,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":145,"ty":4,"nm":"Shape Layer 1074","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1764,877,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":146,"ty":4,"nm":"Shape Layer 1075","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1750,877,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":147,"ty":4,"nm":"Shape Layer 1076","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1736,877,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":148,"ty":4,"nm":"Shape Layer 1077","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1722,877,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":149,"ty":4,"nm":"Shape Layer 1078","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1708,877,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":150,"ty":4,"nm":"Shape Layer 1079","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1694,877,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":151,"ty":4,"nm":"Shape Layer 1080","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1680,877,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":152,"ty":4,"nm":"Shape Layer 1081","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1666,877,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":153,"ty":4,"nm":"Shape Layer 1082","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1652,877,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":154,"ty":4,"nm":"Shape Layer 1083","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1638,877,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":155,"ty":4,"nm":"Shape Layer 1084","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1624,877,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":156,"ty":4,"nm":"Shape Layer 1085","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1610,877,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":157,"ty":4,"nm":"Shape Layer 1086","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1596,877,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":158,"ty":4,"nm":"Shape Layer 1087","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1582,877,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":159,"ty":4,"nm":"Shape Layer 1088","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1568,877,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":160,"ty":4,"nm":"Shape Layer 1089","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1554,877,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":161,"ty":4,"nm":"Shape Layer 1090","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1540,877,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":162,"ty":4,"nm":"Shape Layer 1091","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1526,877,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":163,"ty":4,"nm":"Shape Layer 1092","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1512,877,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":164,"ty":4,"nm":"Shape Layer 1093","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1498,877,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":165,"ty":4,"nm":"Shape Layer 1094","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1484,877,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":166,"ty":4,"nm":"Shape Layer 1095","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1470,877,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":167,"ty":4,"nm":"Shape Layer 1096","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1456,877,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":168,"ty":4,"nm":"Shape Layer 1099","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1414,877,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":169,"ty":4,"nm":"Shape Layer 1100","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1400,877,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":170,"ty":4,"nm":"Shape Layer 1101","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1386,877,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":171,"ty":4,"nm":"Shape Layer 1070","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1372,877,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":172,"ty":4,"nm":"Shape Layer 1039","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1799,863,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":173,"ty":4,"nm":"Shape Layer 1040","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1785,863,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":174,"ty":4,"nm":"Shape Layer 1041","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1771,863,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":175,"ty":4,"nm":"Shape Layer 1042","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1757,863,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":176,"ty":4,"nm":"Shape Layer 1043","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1743,863,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":177,"ty":4,"nm":"Shape Layer 1044","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1729,863,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":178,"ty":4,"nm":"Shape Layer 1045","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1715,863,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":179,"ty":4,"nm":"Shape Layer 1046","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1701,863,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":180,"ty":4,"nm":"Shape Layer 1047","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1687,863,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":181,"ty":4,"nm":"Shape Layer 1048","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1673,863,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":182,"ty":4,"nm":"Shape Layer 1049","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1659,863,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":183,"ty":4,"nm":"Shape Layer 1050","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1645,863,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":184,"ty":4,"nm":"Shape Layer 1051","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1631,863,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":185,"ty":4,"nm":"Shape Layer 1052","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1617,863,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":186,"ty":4,"nm":"Shape Layer 1053","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1603,863,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":187,"ty":4,"nm":"Shape Layer 1054","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1589,863,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":188,"ty":4,"nm":"Shape Layer 1055","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1575,863,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":189,"ty":4,"nm":"Shape Layer 1056","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1561,863,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":190,"ty":4,"nm":"Shape Layer 1057","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1547,863,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":191,"ty":4,"nm":"Shape Layer 1058","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1533,863,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":192,"ty":4,"nm":"Shape Layer 1059","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1519,863,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":193,"ty":4,"nm":"Shape Layer 1060","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1505,863,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":194,"ty":4,"nm":"Shape Layer 1061","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1491,863,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":195,"ty":4,"nm":"Shape Layer 1062","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1477,863,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":196,"ty":4,"nm":"Shape Layer 1063","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1463,863,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":197,"ty":4,"nm":"Shape Layer 1064","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1449,863,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":198,"ty":4,"nm":"Shape Layer 1065","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1435,863,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":199,"ty":4,"nm":"Shape Layer 1067","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1407,863,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":200,"ty":4,"nm":"Shape Layer 1068","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1393,863,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":201,"ty":4,"nm":"Shape Layer 1069","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1379,863,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":202,"ty":4,"nm":"Shape Layer 1038","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1365,863,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":203,"ty":4,"nm":"Shape Layer 1005","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1890,849,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":204,"ty":4,"nm":"Shape Layer 1004","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1876,849,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":205,"ty":4,"nm":"Shape Layer 1007","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1792,849,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":206,"ty":4,"nm":"Shape Layer 1008","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1778,849,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":207,"ty":4,"nm":"Shape Layer 1009","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1764,849,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":208,"ty":4,"nm":"Shape Layer 1010","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1749,849,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":209,"ty":4,"nm":"Shape Layer 1011","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1735,849,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":210,"ty":4,"nm":"Shape Layer 1012","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1721,849,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":211,"ty":4,"nm":"Shape Layer 1013","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1707,849,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":212,"ty":4,"nm":"Shape Layer 1014","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1693,849,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":213,"ty":4,"nm":"Shape Layer 1015","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1679,849,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":214,"ty":4,"nm":"Shape Layer 1016","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1665,849,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":215,"ty":4,"nm":"Shape Layer 1017","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1651,849,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":216,"ty":4,"nm":"Shape Layer 1018","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1637,849,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":217,"ty":4,"nm":"Shape Layer 1019","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1623,849,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":218,"ty":4,"nm":"Shape Layer 1020","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1609,849,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":219,"ty":4,"nm":"Shape Layer 1021","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1595,849,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":220,"ty":4,"nm":"Shape Layer 1022","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1581,849,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":221,"ty":4,"nm":"Shape Layer 1023","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1567,849,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":222,"ty":4,"nm":"Shape Layer 1024","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1553,849,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":223,"ty":4,"nm":"Shape Layer 1025","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1539,849,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":224,"ty":4,"nm":"Shape Layer 1026","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1525,849,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":225,"ty":4,"nm":"Shape Layer 1027","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1511,849,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":226,"ty":4,"nm":"Shape Layer 1028","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1497,849,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":227,"ty":4,"nm":"Shape Layer 1029","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1483,849,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":228,"ty":4,"nm":"Shape Layer 1030","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1469,849,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":229,"ty":4,"nm":"Shape Layer 1031","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1455,849,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":230,"ty":4,"nm":"Shape Layer 1032","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1441,849,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":231,"ty":4,"nm":"Shape Layer 1033","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1427,849,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":232,"ty":4,"nm":"Shape Layer 1034","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1413,849,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":233,"ty":4,"nm":"Shape Layer 1035","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1399,849,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":234,"ty":4,"nm":"Shape Layer 1036","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1385,849,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":235,"ty":4,"nm":"Shape Layer 1037","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1371,849,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":236,"ty":4,"nm":"Shape Layer 1006","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1357,849,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":237,"ty":4,"nm":"Shape Layer 968","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1911,835,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":238,"ty":4,"nm":"Shape Layer 969","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1897,835,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":239,"ty":4,"nm":"Shape Layer 970","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1883,835,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":240,"ty":4,"nm":"Shape Layer 971","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1869,835,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":241,"ty":4,"nm":"Shape Layer 973","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1841,835,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":242,"ty":4,"nm":"Shape Layer 974","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1785,835,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":243,"ty":4,"nm":"Shape Layer 975","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1771,835,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":244,"ty":4,"nm":"Shape Layer 976","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1757,835,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":245,"ty":4,"nm":"Shape Layer 977","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1743,835,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":246,"ty":4,"nm":"Shape Layer 978","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1729,835,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":247,"ty":4,"nm":"Shape Layer 979","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1715,835,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":248,"ty":4,"nm":"Shape Layer 980","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1701,835,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":249,"ty":4,"nm":"Shape Layer 981","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1687,835,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":250,"ty":4,"nm":"Shape Layer 982","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1673,835,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":251,"ty":4,"nm":"Shape Layer 983","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1659,835,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":252,"ty":4,"nm":"Shape Layer 984","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1645,835,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":253,"ty":4,"nm":"Shape Layer 985","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1631,835,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":254,"ty":4,"nm":"Shape Layer 986","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1617,835,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":255,"ty":4,"nm":"Shape Layer 987","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1603,835,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":256,"ty":4,"nm":"Shape Layer 988","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1589,835,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":257,"ty":4,"nm":"Shape Layer 989","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1575,835,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":258,"ty":4,"nm":"Shape Layer 990","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1561,835,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":259,"ty":4,"nm":"Shape Layer 991","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1547,835,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":260,"ty":4,"nm":"Shape Layer 992","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1533,835,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":261,"ty":4,"nm":"Shape Layer 993","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1519,835,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":262,"ty":4,"nm":"Shape Layer 994","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1505,835,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":263,"ty":4,"nm":"Shape Layer 995","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1491,835,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":264,"ty":4,"nm":"Shape Layer 996","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1477,835,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":265,"ty":4,"nm":"Shape Layer 997","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1463,835,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":266,"ty":4,"nm":"Shape Layer 998","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1449,835,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":267,"ty":4,"nm":"Shape Layer 999","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1435,835,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":268,"ty":4,"nm":"Shape Layer 1000","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1421,835,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":269,"ty":4,"nm":"Shape Layer 1001","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1407,835,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":270,"ty":4,"nm":"Shape Layer 1002","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1393,835,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":271,"ty":4,"nm":"Shape Layer 1003","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1379,835,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":272,"ty":4,"nm":"Shape Layer 967","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1365,835,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":273,"ty":4,"nm":"Shape Layer 930","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1918,821,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":274,"ty":4,"nm":"Shape Layer 929","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1904,821,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":275,"ty":4,"nm":"Shape Layer 931","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1848,821,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":276,"ty":4,"nm":"Shape Layer 932","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1792,821,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":277,"ty":4,"nm":"Shape Layer 934","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1778,821,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":278,"ty":4,"nm":"Shape Layer 935","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1764,821,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":279,"ty":4,"nm":"Shape Layer 936","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1750,821,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":280,"ty":4,"nm":"Shape Layer 937","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1736,821,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":281,"ty":4,"nm":"Shape Layer 938","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1722,821,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":282,"ty":4,"nm":"Shape Layer 939","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1708,821,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":283,"ty":4,"nm":"Shape Layer 940","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1694,821,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":284,"ty":4,"nm":"Shape Layer 941","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1680,821,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":285,"ty":4,"nm":"Shape Layer 942","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1666,821,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":286,"ty":4,"nm":"Shape Layer 943","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1652,821,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":287,"ty":4,"nm":"Shape Layer 944","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1638,821,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":288,"ty":4,"nm":"Shape Layer 945","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1624,821,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":289,"ty":4,"nm":"Shape Layer 946","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1610,821,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":290,"ty":4,"nm":"Shape Layer 947","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1596,821,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":291,"ty":4,"nm":"Shape Layer 948","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1582,821,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":292,"ty":4,"nm":"Shape Layer 949","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1568,821,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":293,"ty":4,"nm":"Shape Layer 950","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1554,821,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":294,"ty":4,"nm":"Shape Layer 951","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1540,821,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":295,"ty":4,"nm":"Shape Layer 952","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1526,821,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":296,"ty":4,"nm":"Shape Layer 953","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1512,821,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":297,"ty":4,"nm":"Shape Layer 954","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1498,821,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":298,"ty":4,"nm":"Shape Layer 955","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1484,821,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":299,"ty":4,"nm":"Shape Layer 956","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1470,821,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":300,"ty":4,"nm":"Shape Layer 957","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1456,821,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":301,"ty":4,"nm":"Shape Layer 958","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1442,821,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":302,"ty":4,"nm":"Shape Layer 959","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1428,821,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":303,"ty":4,"nm":"Shape Layer 960","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1414,821,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":304,"ty":4,"nm":"Shape Layer 961","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1400,821,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":305,"ty":4,"nm":"Shape Layer 962","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1386,821,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":306,"ty":4,"nm":"Shape Layer 963","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1372,821,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":307,"ty":4,"nm":"Shape Layer 964","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1358,821,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":308,"ty":4,"nm":"Shape Layer 965","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1344,821,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":309,"ty":4,"nm":"Shape Layer 966","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1330,821,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":310,"ty":4,"nm":"Shape Layer 933","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1316,821,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":311,"ty":4,"nm":"Shape Layer 892","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1911,807,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":312,"ty":4,"nm":"Shape Layer 893","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1841,807,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":313,"ty":4,"nm":"Shape Layer 895","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1771,807,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":314,"ty":4,"nm":"Shape Layer 896","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1757,807,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":315,"ty":4,"nm":"Shape Layer 897","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1743,807,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":316,"ty":4,"nm":"Shape Layer 898","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1729,807,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":317,"ty":4,"nm":"Shape Layer 899","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1715,807,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":318,"ty":4,"nm":"Shape Layer 900","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1701,807,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":319,"ty":4,"nm":"Shape Layer 901","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1687,807,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":320,"ty":4,"nm":"Shape Layer 902","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1673,807,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":321,"ty":4,"nm":"Shape Layer 903","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1659,807,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":322,"ty":4,"nm":"Shape Layer 904","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1645,807,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":323,"ty":4,"nm":"Shape Layer 905","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1631,807,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":324,"ty":4,"nm":"Shape Layer 906","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1617,807,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":325,"ty":4,"nm":"Shape Layer 907","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1603,807,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":326,"ty":4,"nm":"Shape Layer 908","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1589,807,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":327,"ty":4,"nm":"Shape Layer 909","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1575,807,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":328,"ty":4,"nm":"Shape Layer 910","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1561,807,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":329,"ty":4,"nm":"Shape Layer 911","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1547,807,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":330,"ty":4,"nm":"Shape Layer 912","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1533,807,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":331,"ty":4,"nm":"Shape Layer 913","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1519,807,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":332,"ty":4,"nm":"Shape Layer 914","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1505,807,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":333,"ty":4,"nm":"Shape Layer 915","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1491,807,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":334,"ty":4,"nm":"Shape Layer 916","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1477,807,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":335,"ty":4,"nm":"Shape Layer 917","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1463,807,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":336,"ty":4,"nm":"Shape Layer 918","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1449,807,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":337,"ty":4,"nm":"Shape Layer 919","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1435,807,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":338,"ty":4,"nm":"Shape Layer 920","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1421,807,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":339,"ty":4,"nm":"Shape Layer 921","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1407,807,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":340,"ty":4,"nm":"Shape Layer 922","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1393,807,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":341,"ty":4,"nm":"Shape Layer 923","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1379,807,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":342,"ty":4,"nm":"Shape Layer 924","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1365,807,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":343,"ty":4,"nm":"Shape Layer 925","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1351,807,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":344,"ty":4,"nm":"Shape Layer 926","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1337,807,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":345,"ty":4,"nm":"Shape Layer 928","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1309,807,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":346,"ty":4,"nm":"Shape Layer 927","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1281,807,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":347,"ty":4,"nm":"Shape Layer 894","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1323,807,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":348,"ty":4,"nm":"Shape Layer 850","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1904,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":349,"ty":4,"nm":"Shape Layer 852","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1834,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":350,"ty":4,"nm":"Shape Layer 853","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1820,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":351,"ty":4,"nm":"Shape Layer 854","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1806,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":352,"ty":4,"nm":"Shape Layer 855","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1792,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":353,"ty":4,"nm":"Shape Layer 856","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1778,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":354,"ty":4,"nm":"Shape Layer 857","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1764,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":355,"ty":4,"nm":"Shape Layer 858","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1750,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":356,"ty":4,"nm":"Shape Layer 859","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1736,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":357,"ty":4,"nm":"Shape Layer 860","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1722,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":358,"ty":4,"nm":"Shape Layer 861","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1708,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":359,"ty":4,"nm":"Shape Layer 862","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1694,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":360,"ty":4,"nm":"Shape Layer 863","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1680,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":361,"ty":4,"nm":"Shape Layer 864","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1666,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":362,"ty":4,"nm":"Shape Layer 865","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1652,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":363,"ty":4,"nm":"Shape Layer 866","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1638,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":364,"ty":4,"nm":"Shape Layer 867","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1624,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":365,"ty":4,"nm":"Shape Layer 868","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1610,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":366,"ty":4,"nm":"Shape Layer 869","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1596,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":367,"ty":4,"nm":"Shape Layer 870","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1582,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":368,"ty":4,"nm":"Shape Layer 871","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1568,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":369,"ty":4,"nm":"Shape Layer 872","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1554,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":370,"ty":4,"nm":"Shape Layer 873","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1540,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":371,"ty":4,"nm":"Shape Layer 874","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1526,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":372,"ty":4,"nm":"Shape Layer 875","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1512,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":373,"ty":4,"nm":"Shape Layer 876","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1498,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":374,"ty":4,"nm":"Shape Layer 877","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1484,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":375,"ty":4,"nm":"Shape Layer 878","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1470,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":376,"ty":4,"nm":"Shape Layer 879","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1456,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":377,"ty":4,"nm":"Shape Layer 880","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1442,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":378,"ty":4,"nm":"Shape Layer 881","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1428,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":379,"ty":4,"nm":"Shape Layer 882","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1414,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":380,"ty":4,"nm":"Shape Layer 883","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1400,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":381,"ty":4,"nm":"Shape Layer 884","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1386,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":382,"ty":4,"nm":"Shape Layer 885","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1372,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":383,"ty":4,"nm":"Shape Layer 886","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1358,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":384,"ty":4,"nm":"Shape Layer 887","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1344,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":385,"ty":4,"nm":"Shape Layer 888","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1330,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":386,"ty":4,"nm":"Shape Layer 889","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1316,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":387,"ty":4,"nm":"Shape Layer 890","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1302,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":388,"ty":4,"nm":"Shape Layer 891","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1288,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":389,"ty":4,"nm":"Shape Layer 851","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1274,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":390,"ty":4,"nm":"Shape Layer 799","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1869,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":391,"ty":4,"nm":"Shape Layer 800","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1855,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":392,"ty":4,"nm":"Shape Layer 801","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1841,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":393,"ty":4,"nm":"Shape Layer 802","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1827,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":394,"ty":4,"nm":"Shape Layer 803","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1813,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":395,"ty":4,"nm":"Shape Layer 804","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1799,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":396,"ty":4,"nm":"Shape Layer 805","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1785,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":397,"ty":4,"nm":"Shape Layer 806","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1771,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":398,"ty":4,"nm":"Shape Layer 807","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1757,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":399,"ty":4,"nm":"Shape Layer 808","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1743,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":400,"ty":4,"nm":"Shape Layer 809","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1729,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":401,"ty":4,"nm":"Shape Layer 810","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1715,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":402,"ty":4,"nm":"Shape Layer 811","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1701,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":403,"ty":4,"nm":"Shape Layer 812","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1687,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":404,"ty":4,"nm":"Shape Layer 813","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1673,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":405,"ty":4,"nm":"Shape Layer 814","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1658,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":406,"ty":4,"nm":"Shape Layer 815","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1644,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":407,"ty":4,"nm":"Shape Layer 816","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1630,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":408,"ty":4,"nm":"Shape Layer 817","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1616,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":409,"ty":4,"nm":"Shape Layer 818","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1602,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":410,"ty":4,"nm":"Shape Layer 819","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1588,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":411,"ty":4,"nm":"Shape Layer 820","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1574,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":412,"ty":4,"nm":"Shape Layer 821","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1560,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":413,"ty":4,"nm":"Shape Layer 822","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1546,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":414,"ty":4,"nm":"Shape Layer 823","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1532,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":415,"ty":4,"nm":"Shape Layer 824","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1518,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":416,"ty":4,"nm":"Shape Layer 825","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1504,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":417,"ty":4,"nm":"Shape Layer 826","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1490,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":418,"ty":4,"nm":"Shape Layer 827","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1476,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":419,"ty":4,"nm":"Shape Layer 828","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1462,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":420,"ty":4,"nm":"Shape Layer 829","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1448,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":421,"ty":4,"nm":"Shape Layer 830","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1434,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":422,"ty":4,"nm":"Shape Layer 831","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1420,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":423,"ty":4,"nm":"Shape Layer 832","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1406,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":424,"ty":4,"nm":"Shape Layer 833","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1392,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":425,"ty":4,"nm":"Shape Layer 834","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1378,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":426,"ty":4,"nm":"Shape Layer 835","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1364,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":427,"ty":4,"nm":"Shape Layer 836","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1350,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":428,"ty":4,"nm":"Shape Layer 837","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1336,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":429,"ty":4,"nm":"Shape Layer 838","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1322,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":430,"ty":4,"nm":"Shape Layer 839","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1308,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":431,"ty":4,"nm":"Shape Layer 840","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1294,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":432,"ty":4,"nm":"Shape Layer 841","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1280,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":433,"ty":4,"nm":"Shape Layer 842","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1266,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":434,"ty":4,"nm":"Shape Layer 843","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1252,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":435,"ty":4,"nm":"Shape Layer 845","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1224,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":436,"ty":4,"nm":"Shape Layer 848","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1182,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":437,"ty":4,"nm":"Shape Layer 1257","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1168,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":50,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":80,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":110,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":140,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":170,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":200,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":230,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":438,"ty":4,"nm":"Shape Layer 1258","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1161,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":159,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":189,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":219,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":249,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":279,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":309,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":339,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":439,"ty":4,"nm":"Shape Layer 1262","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1140,807,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":440,"ty":4,"nm":"Shape Layer 1261","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1126,807,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":205,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":235,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":265,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":295,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":325,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":355,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":385,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":441,"ty":4,"nm":"Shape Layer 1259","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1147,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":51,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":81,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":111,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":141,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":171,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":201,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":231,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":442,"ty":4,"nm":"Shape Layer 1260","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1133,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":443,"ty":4,"nm":"Shape Layer 849","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1119,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":444,"ty":4,"nm":"Shape Layer 798","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1154,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":445,"ty":4,"nm":"Shape Layer 744","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1918,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":446,"ty":4,"nm":"Shape Layer 746","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1890,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":447,"ty":4,"nm":"Shape Layer 747","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1876,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":448,"ty":4,"nm":"Shape Layer 748","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1862,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":449,"ty":4,"nm":"Shape Layer 749","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1848,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":450,"ty":4,"nm":"Shape Layer 750","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1834,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":451,"ty":4,"nm":"Shape Layer 751","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1820,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":452,"ty":4,"nm":"Shape Layer 752","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1806,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":453,"ty":4,"nm":"Shape Layer 753","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1792,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":454,"ty":4,"nm":"Shape Layer 754","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1777,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":455,"ty":4,"nm":"Shape Layer 755","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1763,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":456,"ty":4,"nm":"Shape Layer 756","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1749,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":457,"ty":4,"nm":"Shape Layer 757","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1735,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":458,"ty":4,"nm":"Shape Layer 758","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1721,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":459,"ty":4,"nm":"Shape Layer 759","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1707,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":460,"ty":4,"nm":"Shape Layer 760","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1693,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":461,"ty":4,"nm":"Shape Layer 761","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1679,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":462,"ty":4,"nm":"Shape Layer 762","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1665,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":463,"ty":4,"nm":"Shape Layer 763","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1651,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":464,"ty":4,"nm":"Shape Layer 764","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1637,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":465,"ty":4,"nm":"Shape Layer 765","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1623,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":466,"ty":4,"nm":"Shape Layer 766","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1609,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":467,"ty":4,"nm":"Shape Layer 767","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1595,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":468,"ty":4,"nm":"Shape Layer 768","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1581,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":469,"ty":4,"nm":"Shape Layer 769","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1567,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":470,"ty":4,"nm":"Shape Layer 770","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1553,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":471,"ty":4,"nm":"Shape Layer 771","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1539,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":472,"ty":4,"nm":"Shape Layer 772","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1525,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":473,"ty":4,"nm":"Shape Layer 773","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1511,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":474,"ty":4,"nm":"Shape Layer 774","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1497,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":475,"ty":4,"nm":"Shape Layer 775","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1483,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":476,"ty":4,"nm":"Shape Layer 776","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1469,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":477,"ty":4,"nm":"Shape Layer 777","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1455,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":478,"ty":4,"nm":"Shape Layer 778","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1441,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":479,"ty":4,"nm":"Shape Layer 779","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1427,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":480,"ty":4,"nm":"Shape Layer 780","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1413,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":481,"ty":4,"nm":"Shape Layer 781","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1399,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":482,"ty":4,"nm":"Shape Layer 782","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1385,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":483,"ty":4,"nm":"Shape Layer 783","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1371,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":484,"ty":4,"nm":"Shape Layer 784","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1357,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":485,"ty":4,"nm":"Shape Layer 785","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1343,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":486,"ty":4,"nm":"Shape Layer 786","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1329,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":487,"ty":4,"nm":"Shape Layer 787","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1315,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":488,"ty":4,"nm":"Shape Layer 788","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1301,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":489,"ty":4,"nm":"Shape Layer 789","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1287,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":490,"ty":4,"nm":"Shape Layer 790","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1273,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":491,"ty":4,"nm":"Shape Layer 791","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1259,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":59,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":89,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":119,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":149,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":179,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":209,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":239,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":492,"ty":4,"nm":"Shape Layer 792","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1245,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":159,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":189,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":219,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":249,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":279,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":309,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":339,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":493,"ty":4,"nm":"Shape Layer 793","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1231,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":204,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":234,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":264,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":294,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":324,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":354,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":384,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":494,"ty":4,"nm":"Shape Layer 794","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1217,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":495,"ty":4,"nm":"Shape Layer 795","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1203,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":496,"ty":4,"nm":"Shape Layer 796","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1189,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":497,"ty":4,"nm":"Shape Layer 797","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1175,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":159,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":189,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":219,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":249,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":279,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":309,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":339,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":498,"ty":4,"nm":"Shape Layer 745","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1161,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":61,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":91,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":121,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":151,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":181,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":211,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":241,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":499,"ty":4,"nm":"Shape Layer 692","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1897,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":500,"ty":4,"nm":"Shape Layer 693","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1883,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":501,"ty":4,"nm":"Shape Layer 694","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1869,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":502,"ty":4,"nm":"Shape Layer 695","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1855,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":503,"ty":4,"nm":"Shape Layer 696","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1841,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":504,"ty":4,"nm":"Shape Layer 697","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1827,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":505,"ty":4,"nm":"Shape Layer 698","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1813,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":506,"ty":4,"nm":"Shape Layer 699","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1799,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":507,"ty":4,"nm":"Shape Layer 700","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1785,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":508,"ty":4,"nm":"Shape Layer 701","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1771,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":509,"ty":4,"nm":"Shape Layer 702","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1757,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":510,"ty":4,"nm":"Shape Layer 703","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1743,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":511,"ty":4,"nm":"Shape Layer 704","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1729,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":512,"ty":4,"nm":"Shape Layer 705","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1715,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":513,"ty":4,"nm":"Shape Layer 706","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1701,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":514,"ty":4,"nm":"Shape Layer 707","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1687,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":515,"ty":4,"nm":"Shape Layer 708","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1673,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":516,"ty":4,"nm":"Shape Layer 709","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1659,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":517,"ty":4,"nm":"Shape Layer 710","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1645,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":518,"ty":4,"nm":"Shape Layer 711","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1631,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":519,"ty":4,"nm":"Shape Layer 712","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1617,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":520,"ty":4,"nm":"Shape Layer 713","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1603,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":521,"ty":4,"nm":"Shape Layer 714","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1589,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":522,"ty":4,"nm":"Shape Layer 715","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1575,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":523,"ty":4,"nm":"Shape Layer 716","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1561,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":524,"ty":4,"nm":"Shape Layer 717","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1547,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":525,"ty":4,"nm":"Shape Layer 718","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1533,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":526,"ty":4,"nm":"Shape Layer 719","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1519,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":527,"ty":4,"nm":"Shape Layer 720","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1505,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":528,"ty":4,"nm":"Shape Layer 721","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1491,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":529,"ty":4,"nm":"Shape Layer 722","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1477,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":530,"ty":4,"nm":"Shape Layer 723","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1463,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":531,"ty":4,"nm":"Shape Layer 724","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1449,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":532,"ty":4,"nm":"Shape Layer 725","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1435,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":533,"ty":4,"nm":"Shape Layer 726","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1421,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":534,"ty":4,"nm":"Shape Layer 727","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1407,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":535,"ty":4,"nm":"Shape Layer 728","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1393,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":536,"ty":4,"nm":"Shape Layer 729","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1379,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":537,"ty":4,"nm":"Shape Layer 730","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1365,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":538,"ty":4,"nm":"Shape Layer 731","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1351,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":539,"ty":4,"nm":"Shape Layer 732","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1337,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":540,"ty":4,"nm":"Shape Layer 733","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1323,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":541,"ty":4,"nm":"Shape Layer 734","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1309,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":542,"ty":4,"nm":"Shape Layer 735","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1295,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":543,"ty":4,"nm":"Shape Layer 736","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1281,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":544,"ty":4,"nm":"Shape Layer 737","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1267,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":545,"ty":4,"nm":"Shape Layer 738","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1253,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":546,"ty":4,"nm":"Shape Layer 739","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1239,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":95,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":125,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":155,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":185,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":215,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":245,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":275,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":547,"ty":4,"nm":"Shape Layer 740","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1225,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":179,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":209,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":239,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":269,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":299,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":329,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":359,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":548,"ty":4,"nm":"Shape Layer 741","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1211,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":95,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":125,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":155,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":185,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":215,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":245,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":275,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":549,"ty":4,"nm":"Shape Layer 742","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1197,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":28,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":58,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":88,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":118,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":148,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":178,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":208,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":550,"ty":4,"nm":"Shape Layer 743","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1183,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":551,"ty":4,"nm":"Shape Layer 691","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1169,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":552,"ty":4,"nm":"Shape Layer 638","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1904,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":553,"ty":4,"nm":"Shape Layer 639","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1890,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":554,"ty":4,"nm":"Shape Layer 640","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1876,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":555,"ty":4,"nm":"Shape Layer 641","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1862,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":556,"ty":4,"nm":"Shape Layer 642","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1848,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":557,"ty":4,"nm":"Shape Layer 643","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1834,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":558,"ty":4,"nm":"Shape Layer 644","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1820,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":559,"ty":4,"nm":"Shape Layer 645","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1806,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":560,"ty":4,"nm":"Shape Layer 646","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1792,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":561,"ty":4,"nm":"Shape Layer 647","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1778,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":562,"ty":4,"nm":"Shape Layer 648","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1764,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":563,"ty":4,"nm":"Shape Layer 649","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1750,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":564,"ty":4,"nm":"Shape Layer 650","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1736,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":565,"ty":4,"nm":"Shape Layer 651","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1722,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":566,"ty":4,"nm":"Shape Layer 652","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1708,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":567,"ty":4,"nm":"Shape Layer 653","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1694,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":568,"ty":4,"nm":"Shape Layer 654","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1680,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":569,"ty":4,"nm":"Shape Layer 655","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1666,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":570,"ty":4,"nm":"Shape Layer 656","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1652,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":571,"ty":4,"nm":"Shape Layer 657","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1638,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":572,"ty":4,"nm":"Shape Layer 658","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1624,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":573,"ty":4,"nm":"Shape Layer 659","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1610,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":574,"ty":4,"nm":"Shape Layer 660","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1596,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":575,"ty":4,"nm":"Shape Layer 661","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1582,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":576,"ty":4,"nm":"Shape Layer 662","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1568,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":577,"ty":4,"nm":"Shape Layer 663","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1554,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":578,"ty":4,"nm":"Shape Layer 664","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1540,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":579,"ty":4,"nm":"Shape Layer 665","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1526,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":580,"ty":4,"nm":"Shape Layer 666","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1512,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":581,"ty":4,"nm":"Shape Layer 667","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1498,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":582,"ty":4,"nm":"Shape Layer 668","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1484,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":583,"ty":4,"nm":"Shape Layer 669","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1470,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":584,"ty":4,"nm":"Shape Layer 670","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1456,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":585,"ty":4,"nm":"Shape Layer 671","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1442,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":586,"ty":4,"nm":"Shape Layer 672","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1428,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":587,"ty":4,"nm":"Shape Layer 673","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1414,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":588,"ty":4,"nm":"Shape Layer 674","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1400,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":589,"ty":4,"nm":"Shape Layer 675","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1386,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":590,"ty":4,"nm":"Shape Layer 676","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1372,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":591,"ty":4,"nm":"Shape Layer 677","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1358,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":592,"ty":4,"nm":"Shape Layer 678","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1344,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":593,"ty":4,"nm":"Shape Layer 679","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1330,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":594,"ty":4,"nm":"Shape Layer 680","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1316,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":595,"ty":4,"nm":"Shape Layer 681","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1302,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":596,"ty":4,"nm":"Shape Layer 682","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1288,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":597,"ty":4,"nm":"Shape Layer 683","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1274,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":598,"ty":4,"nm":"Shape Layer 684","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1260,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":599,"ty":4,"nm":"Shape Layer 685","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1246,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":600,"ty":4,"nm":"Shape Layer 686","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1232,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":601,"ty":4,"nm":"Shape Layer 687","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1218,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":602,"ty":4,"nm":"Shape Layer 688","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1204,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":603,"ty":4,"nm":"Shape Layer 689","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1190,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":604,"ty":4,"nm":"Shape Layer 690","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1176,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":605,"ty":4,"nm":"Shape Layer 637","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1162,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":606,"ty":4,"nm":"Shape Layer 586","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1883,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":607,"ty":4,"nm":"Shape Layer 587","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1869,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":608,"ty":4,"nm":"Shape Layer 588","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1855,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":609,"ty":4,"nm":"Shape Layer 589","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1841,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":610,"ty":4,"nm":"Shape Layer 590","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1827,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":611,"ty":4,"nm":"Shape Layer 591","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1813,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":612,"ty":4,"nm":"Shape Layer 592","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1799,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":613,"ty":4,"nm":"Shape Layer 593","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1785,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":614,"ty":4,"nm":"Shape Layer 594","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1771,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":615,"ty":4,"nm":"Shape Layer 595","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1757,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":616,"ty":4,"nm":"Shape Layer 596","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1743,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":617,"ty":4,"nm":"Shape Layer 597","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1729,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":618,"ty":4,"nm":"Shape Layer 598","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1715,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":619,"ty":4,"nm":"Shape Layer 599","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1701,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":620,"ty":4,"nm":"Shape Layer 600","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1687,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":621,"ty":4,"nm":"Shape Layer 601","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1673,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":622,"ty":4,"nm":"Shape Layer 602","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1658,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":623,"ty":4,"nm":"Shape Layer 603","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1644,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":624,"ty":4,"nm":"Shape Layer 604","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1630,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":625,"ty":4,"nm":"Shape Layer 605","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1616,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":626,"ty":4,"nm":"Shape Layer 606","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1602,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":627,"ty":4,"nm":"Shape Layer 607","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1588,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":628,"ty":4,"nm":"Shape Layer 608","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1574,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":629,"ty":4,"nm":"Shape Layer 609","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1560,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":630,"ty":4,"nm":"Shape Layer 610","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1546,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":631,"ty":4,"nm":"Shape Layer 611","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1532,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":632,"ty":4,"nm":"Shape Layer 612","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1518,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":633,"ty":4,"nm":"Shape Layer 613","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1504,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":634,"ty":4,"nm":"Shape Layer 614","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1490,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":635,"ty":4,"nm":"Shape Layer 615","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1476,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":636,"ty":4,"nm":"Shape Layer 616","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1461,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":637,"ty":4,"nm":"Shape Layer 617","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1447,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":638,"ty":4,"nm":"Shape Layer 618","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1433,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":639,"ty":4,"nm":"Shape Layer 619","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1419,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":640,"ty":4,"nm":"Shape Layer 620","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1405,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":641,"ty":4,"nm":"Shape Layer 621","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1391,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":642,"ty":4,"nm":"Shape Layer 622","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1377,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":643,"ty":4,"nm":"Shape Layer 623","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1363,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":644,"ty":4,"nm":"Shape Layer 624","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1349,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":645,"ty":4,"nm":"Shape Layer 625","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1335,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":646,"ty":4,"nm":"Shape Layer 626","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1321,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":647,"ty":4,"nm":"Shape Layer 627","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1307,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":648,"ty":4,"nm":"Shape Layer 628","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1293,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":649,"ty":4,"nm":"Shape Layer 629","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1279,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":650,"ty":4,"nm":"Shape Layer 630","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1265,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":155,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":185,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":215,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":245,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":275,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":305,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":335,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":651,"ty":4,"nm":"Shape Layer 631","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1251,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":211,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":241,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":271,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":301,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":331,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":361,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":391,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":652,"ty":4,"nm":"Shape Layer 632","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1237,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":653,"ty":4,"nm":"Shape Layer 633","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1223,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":20,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":50,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":80,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":110,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":140,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":170,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":200,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":654,"ty":4,"nm":"Shape Layer 634","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1209,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":201,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":231,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":261,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":291,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":321,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":351,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":381,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":655,"ty":4,"nm":"Shape Layer 635","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1195,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":656,"ty":4,"nm":"Shape Layer 636","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1181,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":657,"ty":4,"nm":"Shape Layer 585","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1167,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":658,"ty":4,"nm":"Shape Layer 583","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1897,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":659,"ty":4,"nm":"Shape Layer 584","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1911,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":660,"ty":4,"nm":"Shape Layer 582","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1925,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":661,"ty":4,"nm":"Shape Layer 533","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[2016,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":662,"ty":4,"nm":"Shape Layer 534","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[2002,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":663,"ty":4,"nm":"Shape Layer 532","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1988,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":664,"ty":4,"nm":"Shape Layer 536","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1890,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":665,"ty":4,"nm":"Shape Layer 537","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1876,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":666,"ty":4,"nm":"Shape Layer 538","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1862,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":667,"ty":4,"nm":"Shape Layer 539","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1848,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":668,"ty":4,"nm":"Shape Layer 540","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1834,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":669,"ty":4,"nm":"Shape Layer 541","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1820,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":670,"ty":4,"nm":"Shape Layer 542","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1806,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":671,"ty":4,"nm":"Shape Layer 543","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1792,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":672,"ty":4,"nm":"Shape Layer 544","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1778,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":673,"ty":4,"nm":"Shape Layer 545","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1764,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":674,"ty":4,"nm":"Shape Layer 546","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1750,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":675,"ty":4,"nm":"Shape Layer 547","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1736,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":676,"ty":4,"nm":"Shape Layer 548","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1722,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":677,"ty":4,"nm":"Shape Layer 549","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1708,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":678,"ty":4,"nm":"Shape Layer 550","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1694,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":679,"ty":4,"nm":"Shape Layer 551","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1680,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":680,"ty":4,"nm":"Shape Layer 552","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1666,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":681,"ty":4,"nm":"Shape Layer 553","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1652,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":682,"ty":4,"nm":"Shape Layer 554","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1638,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":683,"ty":4,"nm":"Shape Layer 555","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1624,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":684,"ty":4,"nm":"Shape Layer 556","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1610,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":685,"ty":4,"nm":"Shape Layer 557","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1596,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":686,"ty":4,"nm":"Shape Layer 558","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1582,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":687,"ty":4,"nm":"Shape Layer 559","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1568,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":688,"ty":4,"nm":"Shape Layer 560","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1554,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":689,"ty":4,"nm":"Shape Layer 561","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1540,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":690,"ty":4,"nm":"Shape Layer 562","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1526,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":691,"ty":4,"nm":"Shape Layer 563","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1512,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":692,"ty":4,"nm":"Shape Layer 564","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1498,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":693,"ty":4,"nm":"Shape Layer 565","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1484,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":694,"ty":4,"nm":"Shape Layer 566","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1470,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":695,"ty":4,"nm":"Shape Layer 567","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1456,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":696,"ty":4,"nm":"Shape Layer 568","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1442,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":697,"ty":4,"nm":"Shape Layer 569","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1428,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":698,"ty":4,"nm":"Shape Layer 570","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1414,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":699,"ty":4,"nm":"Shape Layer 571","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1400,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":700,"ty":4,"nm":"Shape Layer 572","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1386,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":701,"ty":4,"nm":"Shape Layer 573","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1372,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":702,"ty":4,"nm":"Shape Layer 574","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1358,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":703,"ty":4,"nm":"Shape Layer 575","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1344,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":704,"ty":4,"nm":"Shape Layer 576","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1330,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":705,"ty":4,"nm":"Shape Layer 577","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1316,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":706,"ty":4,"nm":"Shape Layer 578","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1302,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":707,"ty":4,"nm":"Shape Layer 579","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1288,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":708,"ty":4,"nm":"Shape Layer 580","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1274,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":709,"ty":4,"nm":"Shape Layer 581","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1260,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":710,"ty":4,"nm":"Shape Layer 535","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1218,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":711,"ty":4,"nm":"Shape Layer 483","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[2023,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":712,"ty":4,"nm":"Shape Layer 482","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[2009,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":713,"ty":4,"nm":"Shape Layer 485","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1897,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":714,"ty":4,"nm":"Shape Layer 486","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1883,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":715,"ty":4,"nm":"Shape Layer 487","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1869,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":716,"ty":4,"nm":"Shape Layer 488","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1855,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":717,"ty":4,"nm":"Shape Layer 489","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1841,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":718,"ty":4,"nm":"Shape Layer 490","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1827,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":719,"ty":4,"nm":"Shape Layer 491","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1813,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":720,"ty":4,"nm":"Shape Layer 492","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1799,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":721,"ty":4,"nm":"Shape Layer 493","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1785,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":722,"ty":4,"nm":"Shape Layer 494","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1771,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":723,"ty":4,"nm":"Shape Layer 495","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1757,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":724,"ty":4,"nm":"Shape Layer 496","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1743,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":725,"ty":4,"nm":"Shape Layer 497","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1729,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":726,"ty":4,"nm":"Shape Layer 498","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1715,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":727,"ty":4,"nm":"Shape Layer 499","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1701,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":728,"ty":4,"nm":"Shape Layer 500","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1687,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":729,"ty":4,"nm":"Shape Layer 501","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1673,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":730,"ty":4,"nm":"Shape Layer 502","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1659,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":731,"ty":4,"nm":"Shape Layer 503","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1645,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":732,"ty":4,"nm":"Shape Layer 504","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1631,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":733,"ty":4,"nm":"Shape Layer 505","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1617,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":734,"ty":4,"nm":"Shape Layer 506","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1603,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":735,"ty":4,"nm":"Shape Layer 507","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1589,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":736,"ty":4,"nm":"Shape Layer 508","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1575,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":737,"ty":4,"nm":"Shape Layer 509","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1561,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":738,"ty":4,"nm":"Shape Layer 510","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1547,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":739,"ty":4,"nm":"Shape Layer 511","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1533,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":740,"ty":4,"nm":"Shape Layer 512","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1519,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":741,"ty":4,"nm":"Shape Layer 513","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1505,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":742,"ty":4,"nm":"Shape Layer 514","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1491,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":743,"ty":4,"nm":"Shape Layer 515","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1477,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":744,"ty":4,"nm":"Shape Layer 516","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1463,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":745,"ty":4,"nm":"Shape Layer 517","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1449,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":746,"ty":4,"nm":"Shape Layer 518","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1435,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":747,"ty":4,"nm":"Shape Layer 519","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1421,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":748,"ty":4,"nm":"Shape Layer 520","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1407,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":749,"ty":4,"nm":"Shape Layer 521","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1393,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":750,"ty":4,"nm":"Shape Layer 522","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1379,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":751,"ty":4,"nm":"Shape Layer 523","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1365,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":752,"ty":4,"nm":"Shape Layer 524","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1351,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":753,"ty":4,"nm":"Shape Layer 525","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1337,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":754,"ty":4,"nm":"Shape Layer 526","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1323,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":755,"ty":4,"nm":"Shape Layer 527","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1309,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":756,"ty":4,"nm":"Shape Layer 528","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1295,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":757,"ty":4,"nm":"Shape Layer 530","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1267,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":212,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":242,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":272,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":302,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":332,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":362,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":392,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":758,"ty":4,"nm":"Shape Layer 531","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1252,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":135,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":165,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":195,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":225,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":255,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":285,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":315,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":759,"ty":4,"nm":"Shape Layer 484","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1210,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":28,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":58,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":88,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":118,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":148,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":178,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":208,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":760,"ty":4,"nm":"Shape Layer 432","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[2016,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":761,"ty":4,"nm":"Shape Layer 434","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1904,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":762,"ty":4,"nm":"Shape Layer 435","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1890,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":763,"ty":4,"nm":"Shape Layer 436","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1876,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":764,"ty":4,"nm":"Shape Layer 437","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1862,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":765,"ty":4,"nm":"Shape Layer 438","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1848,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":766,"ty":4,"nm":"Shape Layer 439","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1834,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":767,"ty":4,"nm":"Shape Layer 440","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1820,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":768,"ty":4,"nm":"Shape Layer 441","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1806,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":769,"ty":4,"nm":"Shape Layer 442","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1792,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":770,"ty":4,"nm":"Shape Layer 443","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1778,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":771,"ty":4,"nm":"Shape Layer 444","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1764,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":772,"ty":4,"nm":"Shape Layer 445","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1750,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":773,"ty":4,"nm":"Shape Layer 446","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1736,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":774,"ty":4,"nm":"Shape Layer 447","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1722,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":775,"ty":4,"nm":"Shape Layer 448","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1708,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":776,"ty":4,"nm":"Shape Layer 449","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1694,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":777,"ty":4,"nm":"Shape Layer 450","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1680,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":778,"ty":4,"nm":"Shape Layer 451","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1666,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":779,"ty":4,"nm":"Shape Layer 452","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1652,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":780,"ty":4,"nm":"Shape Layer 453","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1638,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":781,"ty":4,"nm":"Shape Layer 454","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1624,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":782,"ty":4,"nm":"Shape Layer 455","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1610,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":783,"ty":4,"nm":"Shape Layer 456","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1596,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":784,"ty":4,"nm":"Shape Layer 457","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1582,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":785,"ty":4,"nm":"Shape Layer 458","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1568,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":786,"ty":4,"nm":"Shape Layer 459","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1554,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":787,"ty":4,"nm":"Shape Layer 460","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1540,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":788,"ty":4,"nm":"Shape Layer 461","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1526,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":789,"ty":4,"nm":"Shape Layer 462","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1512,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":790,"ty":4,"nm":"Shape Layer 463","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1498,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":791,"ty":4,"nm":"Shape Layer 464","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1484,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":792,"ty":4,"nm":"Shape Layer 465","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1470,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":793,"ty":4,"nm":"Shape Layer 466","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1456,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":794,"ty":4,"nm":"Shape Layer 467","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1442,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":795,"ty":4,"nm":"Shape Layer 468","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1428,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":796,"ty":4,"nm":"Shape Layer 469","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1413,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":797,"ty":4,"nm":"Shape Layer 470","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1399,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":798,"ty":4,"nm":"Shape Layer 471","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1385,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":799,"ty":4,"nm":"Shape Layer 472","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1371,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":800,"ty":4,"nm":"Shape Layer 473","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1357,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":801,"ty":4,"nm":"Shape Layer 474","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1343,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":802,"ty":4,"nm":"Shape Layer 475","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1329,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":803,"ty":4,"nm":"Shape Layer 476","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1315,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":804,"ty":4,"nm":"Shape Layer 477","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1301,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":805,"ty":4,"nm":"Shape Layer 478","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1287,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":806,"ty":4,"nm":"Shape Layer 480","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1259,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":807,"ty":4,"nm":"Shape Layer 481","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1245,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":808,"ty":4,"nm":"Shape Layer 433","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1217,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":809,"ty":4,"nm":"Shape Layer 372","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[2065,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":810,"ty":4,"nm":"Shape Layer 373","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[2051,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":811,"ty":4,"nm":"Shape Layer 374","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[2037,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":812,"ty":4,"nm":"Shape Layer 375","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[2023,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":813,"ty":4,"nm":"Shape Layer 376","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[2009,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":814,"ty":4,"nm":"Shape Layer 377","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1981,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":815,"ty":4,"nm":"Shape Layer 378","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1967,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":816,"ty":4,"nm":"Shape Layer 379","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1953,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":817,"ty":4,"nm":"Shape Layer 380","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1939,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":818,"ty":4,"nm":"Shape Layer 381","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1925,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":819,"ty":4,"nm":"Shape Layer 382","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1911,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":820,"ty":4,"nm":"Shape Layer 383","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1897,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":821,"ty":4,"nm":"Shape Layer 384","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1883,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":822,"ty":4,"nm":"Shape Layer 385","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1869,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":823,"ty":4,"nm":"Shape Layer 386","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1855,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":824,"ty":4,"nm":"Shape Layer 387","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1841,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":825,"ty":4,"nm":"Shape Layer 388","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1827,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":826,"ty":4,"nm":"Shape Layer 389","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1813,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":827,"ty":4,"nm":"Shape Layer 390","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1799,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":828,"ty":4,"nm":"Shape Layer 391","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1785,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":829,"ty":4,"nm":"Shape Layer 392","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1771,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":830,"ty":4,"nm":"Shape Layer 393","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1757,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":831,"ty":4,"nm":"Shape Layer 394","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1743,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":832,"ty":4,"nm":"Shape Layer 395","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1729,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":833,"ty":4,"nm":"Shape Layer 396","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1715,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":834,"ty":4,"nm":"Shape Layer 397","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1701,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":835,"ty":4,"nm":"Shape Layer 398","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1687,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":836,"ty":4,"nm":"Shape Layer 399","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1673,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":837,"ty":4,"nm":"Shape Layer 400","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1659,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":838,"ty":4,"nm":"Shape Layer 401","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1645,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":839,"ty":4,"nm":"Shape Layer 402","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1631,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":840,"ty":4,"nm":"Shape Layer 403","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1617,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":841,"ty":4,"nm":"Shape Layer 404","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1603,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":842,"ty":4,"nm":"Shape Layer 405","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1589,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":843,"ty":4,"nm":"Shape Layer 406","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1575,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":844,"ty":4,"nm":"Shape Layer 407","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1561,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":845,"ty":4,"nm":"Shape Layer 408","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1547,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":846,"ty":4,"nm":"Shape Layer 409","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1533,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":847,"ty":4,"nm":"Shape Layer 410","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1519,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":848,"ty":4,"nm":"Shape Layer 411","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1505,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":849,"ty":4,"nm":"Shape Layer 412","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1491,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":850,"ty":4,"nm":"Shape Layer 413","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1477,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":851,"ty":4,"nm":"Shape Layer 414","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1463,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":852,"ty":4,"nm":"Shape Layer 415","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1449,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":853,"ty":4,"nm":"Shape Layer 416","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1435,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":854,"ty":4,"nm":"Shape Layer 417","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1421,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":855,"ty":4,"nm":"Shape Layer 418","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1407,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":856,"ty":4,"nm":"Shape Layer 419","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1393,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":857,"ty":4,"nm":"Shape Layer 420","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1379,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":858,"ty":4,"nm":"Shape Layer 421","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1365,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":859,"ty":4,"nm":"Shape Layer 422","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1351,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":860,"ty":4,"nm":"Shape Layer 423","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1337,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":861,"ty":4,"nm":"Shape Layer 424","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1323,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":862,"ty":4,"nm":"Shape Layer 425","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1309,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":863,"ty":4,"nm":"Shape Layer 426","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1295,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":864,"ty":4,"nm":"Shape Layer 427","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1281,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":865,"ty":4,"nm":"Shape Layer 430","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1239,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":866,"ty":4,"nm":"Shape Layer 431","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1225,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":212,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":242,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":272,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":302,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":332,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":362,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":392,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":867,"ty":4,"nm":"Shape Layer 371","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1211,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":54,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":84,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":114,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":144,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":174,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":204,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":234,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":868,"ty":4,"nm":"Shape Layer 306","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[2100,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":869,"ty":4,"nm":"Shape Layer 307","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[2086,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":870,"ty":4,"nm":"Shape Layer 308","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[2072,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":871,"ty":4,"nm":"Shape Layer 309","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[2058,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":872,"ty":4,"nm":"Shape Layer 310","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[2044,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":873,"ty":4,"nm":"Shape Layer 311","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[2030,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":874,"ty":4,"nm":"Shape Layer 312","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[2016,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":875,"ty":4,"nm":"Shape Layer 313","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[2002,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":876,"ty":4,"nm":"Shape Layer 314","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1988,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":877,"ty":4,"nm":"Shape Layer 315","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1974,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":878,"ty":4,"nm":"Shape Layer 316","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1960,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":879,"ty":4,"nm":"Shape Layer 317","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1946,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":880,"ty":4,"nm":"Shape Layer 318","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1932,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":881,"ty":4,"nm":"Shape Layer 319","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1918,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":882,"ty":4,"nm":"Shape Layer 320","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1904,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":883,"ty":4,"nm":"Shape Layer 321","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1890,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":884,"ty":4,"nm":"Shape Layer 322","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1876,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":885,"ty":4,"nm":"Shape Layer 323","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1862,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":886,"ty":4,"nm":"Shape Layer 324","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1848,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":887,"ty":4,"nm":"Shape Layer 325","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1834,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":888,"ty":4,"nm":"Shape Layer 326","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1820,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":889,"ty":4,"nm":"Shape Layer 327","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1806,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":890,"ty":4,"nm":"Shape Layer 328","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1792,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":891,"ty":4,"nm":"Shape Layer 329","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1778,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":892,"ty":4,"nm":"Shape Layer 330","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1764,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":893,"ty":4,"nm":"Shape Layer 331","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1750,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":894,"ty":4,"nm":"Shape Layer 332","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1736,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":895,"ty":4,"nm":"Shape Layer 333","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1722,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":896,"ty":4,"nm":"Shape Layer 334","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1708,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":897,"ty":4,"nm":"Shape Layer 335","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1694,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":898,"ty":4,"nm":"Shape Layer 336","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1680,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":899,"ty":4,"nm":"Shape Layer 337","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1666,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":900,"ty":4,"nm":"Shape Layer 338","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1652,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":901,"ty":4,"nm":"Shape Layer 339","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1638,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":902,"ty":4,"nm":"Shape Layer 340","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1624,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":903,"ty":4,"nm":"Shape Layer 341","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1610,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":904,"ty":4,"nm":"Shape Layer 342","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1596,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":905,"ty":4,"nm":"Shape Layer 343","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1582,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":906,"ty":4,"nm":"Shape Layer 344","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1568,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":907,"ty":4,"nm":"Shape Layer 345","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1554,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":908,"ty":4,"nm":"Shape Layer 346","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1540,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":909,"ty":4,"nm":"Shape Layer 347","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1526,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":910,"ty":4,"nm":"Shape Layer 348","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1512,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":911,"ty":4,"nm":"Shape Layer 349","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1498,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":912,"ty":4,"nm":"Shape Layer 350","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1484,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":913,"ty":4,"nm":"Shape Layer 351","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1470,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":914,"ty":4,"nm":"Shape Layer 352","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1456,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":915,"ty":4,"nm":"Shape Layer 353","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1442,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":916,"ty":4,"nm":"Shape Layer 354","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1428,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":917,"ty":4,"nm":"Shape Layer 355","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1414,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":918,"ty":4,"nm":"Shape Layer 356","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1400,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":919,"ty":4,"nm":"Shape Layer 357","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1386,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":920,"ty":4,"nm":"Shape Layer 358","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1372,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":921,"ty":4,"nm":"Shape Layer 359","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1358,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":922,"ty":4,"nm":"Shape Layer 360","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1344,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":923,"ty":4,"nm":"Shape Layer 361","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1330,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":924,"ty":4,"nm":"Shape Layer 362","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1316,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":925,"ty":4,"nm":"Shape Layer 363","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1302,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":926,"ty":4,"nm":"Shape Layer 366","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1260,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":927,"ty":4,"nm":"Shape Layer 367","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1246,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":136,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":166,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":196,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":226,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":256,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":286,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":316,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":928,"ty":4,"nm":"Shape Layer 305","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1232,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":212,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":242,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":272,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":302,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":332,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":362,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":392,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":929,"ty":4,"nm":"Shape Layer 244","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[2107,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":930,"ty":4,"nm":"Shape Layer 245","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[2093,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":931,"ty":4,"nm":"Shape Layer 246","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[2079,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":932,"ty":4,"nm":"Shape Layer 247","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[2065,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":933,"ty":4,"nm":"Shape Layer 248","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[2051,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":934,"ty":4,"nm":"Shape Layer 249","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[2037,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":935,"ty":4,"nm":"Shape Layer 250","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[2023,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":936,"ty":4,"nm":"Shape Layer 251","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[2009,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":937,"ty":4,"nm":"Shape Layer 252","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1995,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":938,"ty":4,"nm":"Shape Layer 253","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1981,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":939,"ty":4,"nm":"Shape Layer 254","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1967,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":940,"ty":4,"nm":"Shape Layer 255","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1953,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":941,"ty":4,"nm":"Shape Layer 256","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1939,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":942,"ty":4,"nm":"Shape Layer 257","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1925,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":943,"ty":4,"nm":"Shape Layer 258","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1911,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":944,"ty":4,"nm":"Shape Layer 259","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1897,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":945,"ty":4,"nm":"Shape Layer 260","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1883,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":946,"ty":4,"nm":"Shape Layer 261","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1869,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":947,"ty":4,"nm":"Shape Layer 262","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1855,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":948,"ty":4,"nm":"Shape Layer 263","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1841,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":949,"ty":4,"nm":"Shape Layer 264","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1827,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":950,"ty":4,"nm":"Shape Layer 265","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1813,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":951,"ty":4,"nm":"Shape Layer 266","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1799,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":952,"ty":4,"nm":"Shape Layer 267","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1785,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":953,"ty":4,"nm":"Shape Layer 268","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1771,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":954,"ty":4,"nm":"Shape Layer 269","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1757,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":955,"ty":4,"nm":"Shape Layer 270","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1743,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":956,"ty":4,"nm":"Shape Layer 271","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1729,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":957,"ty":4,"nm":"Shape Layer 272","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1714,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":958,"ty":4,"nm":"Shape Layer 273","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1700,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":959,"ty":4,"nm":"Shape Layer 274","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1686,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":960,"ty":4,"nm":"Shape Layer 275","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1672,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":961,"ty":4,"nm":"Shape Layer 276","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1658,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":962,"ty":4,"nm":"Shape Layer 277","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1644,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":963,"ty":4,"nm":"Shape Layer 278","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1630,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":964,"ty":4,"nm":"Shape Layer 279","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1616,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":965,"ty":4,"nm":"Shape Layer 280","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1602,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":966,"ty":4,"nm":"Shape Layer 281","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1588,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":967,"ty":4,"nm":"Shape Layer 282","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1574,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":968,"ty":4,"nm":"Shape Layer 283","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1560,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":969,"ty":4,"nm":"Shape Layer 284","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1546,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":970,"ty":4,"nm":"Shape Layer 285","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1532,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":971,"ty":4,"nm":"Shape Layer 286","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1518,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":972,"ty":4,"nm":"Shape Layer 287","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1504,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":973,"ty":4,"nm":"Shape Layer 288","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1490,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":974,"ty":4,"nm":"Shape Layer 289","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1476,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":975,"ty":4,"nm":"Shape Layer 290","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1462,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":976,"ty":4,"nm":"Shape Layer 291","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1448,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":977,"ty":4,"nm":"Shape Layer 292","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1434,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":978,"ty":4,"nm":"Shape Layer 293","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1420,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":979,"ty":4,"nm":"Shape Layer 294","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1406,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":980,"ty":4,"nm":"Shape Layer 295","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1392,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":981,"ty":4,"nm":"Shape Layer 299","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1336,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":982,"ty":4,"nm":"Shape Layer 300","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1322,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":983,"ty":4,"nm":"Shape Layer 301","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1308,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":984,"ty":4,"nm":"Shape Layer 303","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1280,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":985,"ty":4,"nm":"Shape Layer 304","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1266,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":986,"ty":4,"nm":"Shape Layer 243","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1252,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":987,"ty":4,"nm":"Shape Layer 191","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1988,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":988,"ty":4,"nm":"Shape Layer 192","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1974,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":989,"ty":4,"nm":"Shape Layer 193","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1960,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":990,"ty":4,"nm":"Shape Layer 194","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1946,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":991,"ty":4,"nm":"Shape Layer 195","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1932,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":992,"ty":4,"nm":"Shape Layer 196","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1918,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":993,"ty":4,"nm":"Shape Layer 197","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1904,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":994,"ty":4,"nm":"Shape Layer 198","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1890,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":995,"ty":4,"nm":"Shape Layer 199","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1876,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":996,"ty":4,"nm":"Shape Layer 200","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1862,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":997,"ty":4,"nm":"Shape Layer 201","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1848,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":998,"ty":4,"nm":"Shape Layer 202","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1834,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":999,"ty":4,"nm":"Shape Layer 203","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1820,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1000,"ty":4,"nm":"Shape Layer 204","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1806,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1001,"ty":4,"nm":"Shape Layer 205","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1792,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1002,"ty":4,"nm":"Shape Layer 206","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1778,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1003,"ty":4,"nm":"Shape Layer 207","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1764,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1004,"ty":4,"nm":"Shape Layer 208","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1749,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1005,"ty":4,"nm":"Shape Layer 209","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1735,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1006,"ty":4,"nm":"Shape Layer 210","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1721,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1007,"ty":4,"nm":"Shape Layer 211","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1707,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1008,"ty":4,"nm":"Shape Layer 212","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1693,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1009,"ty":4,"nm":"Shape Layer 213","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1679,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1010,"ty":4,"nm":"Shape Layer 214","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1665,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1011,"ty":4,"nm":"Shape Layer 215","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1651,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1012,"ty":4,"nm":"Shape Layer 216","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1637,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1013,"ty":4,"nm":"Shape Layer 217","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1623,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1014,"ty":4,"nm":"Shape Layer 218","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1609,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1015,"ty":4,"nm":"Shape Layer 219","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1595,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1016,"ty":4,"nm":"Shape Layer 220","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1581,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1017,"ty":4,"nm":"Shape Layer 221","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1567,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1018,"ty":4,"nm":"Shape Layer 222","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1553,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1019,"ty":4,"nm":"Shape Layer 223","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1539,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1020,"ty":4,"nm":"Shape Layer 224","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1525,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1021,"ty":4,"nm":"Shape Layer 225","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1511,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1022,"ty":4,"nm":"Shape Layer 226","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1497,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1023,"ty":4,"nm":"Shape Layer 227","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1483,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1024,"ty":4,"nm":"Shape Layer 228","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1469,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1025,"ty":4,"nm":"Shape Layer 232","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1413,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1026,"ty":4,"nm":"Shape Layer 233","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1399,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1027,"ty":4,"nm":"Shape Layer 234","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1385,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1028,"ty":4,"nm":"Shape Layer 237","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1343,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1029,"ty":4,"nm":"Shape Layer 238","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1329,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1030,"ty":4,"nm":"Shape Layer 239","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1315,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1031,"ty":4,"nm":"Shape Layer 240","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1301,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1032,"ty":4,"nm":"Shape Layer 241","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1287,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1033,"ty":4,"nm":"Shape Layer 242","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1273,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1034,"ty":4,"nm":"Shape Layer 190","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1259,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1035,"ty":4,"nm":"Shape Layer 183","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[2002,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1036,"ty":4,"nm":"Shape Layer 184","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[2016,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1037,"ty":4,"nm":"Shape Layer 185","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[2030,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1038,"ty":4,"nm":"Shape Layer 186","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[2044,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1039,"ty":4,"nm":"Shape Layer 187","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[2058,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1040,"ty":4,"nm":"Shape Layer 188","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[2072,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1041,"ty":4,"nm":"Shape Layer 189","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[2086,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1042,"ty":4,"nm":"Shape Layer 182","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[2100,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1043,"ty":4,"nm":"Shape Layer 153","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1911,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1044,"ty":4,"nm":"Shape Layer 154","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1897,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1045,"ty":4,"nm":"Shape Layer 155","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1883,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1046,"ty":4,"nm":"Shape Layer 156","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1869,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1047,"ty":4,"nm":"Shape Layer 157","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1855,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1048,"ty":4,"nm":"Shape Layer 158","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1841,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1049,"ty":4,"nm":"Shape Layer 159","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1827,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1050,"ty":4,"nm":"Shape Layer 160","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1813,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1051,"ty":4,"nm":"Shape Layer 161","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1799,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1052,"ty":4,"nm":"Shape Layer 162","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1785,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1053,"ty":4,"nm":"Shape Layer 163","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1771,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1054,"ty":4,"nm":"Shape Layer 164","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1757,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1055,"ty":4,"nm":"Shape Layer 165","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1743,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1056,"ty":4,"nm":"Shape Layer 166","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1729,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1057,"ty":4,"nm":"Shape Layer 167","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1715,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1058,"ty":4,"nm":"Shape Layer 168","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1701,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1059,"ty":4,"nm":"Shape Layer 169","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1687,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1060,"ty":4,"nm":"Shape Layer 170","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1673,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1061,"ty":4,"nm":"Shape Layer 171","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1659,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1062,"ty":4,"nm":"Shape Layer 172","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1645,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1063,"ty":4,"nm":"Shape Layer 173","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1631,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1064,"ty":4,"nm":"Shape Layer 174","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1617,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1065,"ty":4,"nm":"Shape Layer 176","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1589,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1066,"ty":4,"nm":"Shape Layer 177","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1575,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1067,"ty":4,"nm":"Shape Layer 179","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1547,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1068,"ty":4,"nm":"Shape Layer 180","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1533,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1069,"ty":4,"nm":"Shape Layer 181","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1519,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1070,"ty":4,"nm":"Shape Layer 147","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1925,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1071,"ty":4,"nm":"Shape Layer 148","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1939,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1072,"ty":4,"nm":"Shape Layer 149","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1953,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1073,"ty":4,"nm":"Shape Layer 150","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1967,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1074,"ty":4,"nm":"Shape Layer 151","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1981,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1075,"ty":4,"nm":"Shape Layer 146","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1995,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1076,"ty":4,"nm":"Shape Layer 122","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1918,597,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1077,"ty":4,"nm":"Shape Layer 123","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1904,597,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1078,"ty":4,"nm":"Shape Layer 127","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1848,597,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1079,"ty":4,"nm":"Shape Layer 128","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1834,597,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1080,"ty":4,"nm":"Shape Layer 129","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1820,597,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1081,"ty":4,"nm":"Shape Layer 131","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1792,597,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1082,"ty":4,"nm":"Shape Layer 132","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1778,597,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1083,"ty":4,"nm":"Shape Layer 133","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1764,597,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1084,"ty":4,"nm":"Shape Layer 134","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1750,597,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1085,"ty":4,"nm":"Shape Layer 135","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1736,597,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1086,"ty":4,"nm":"Shape Layer 136","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1722,597,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1087,"ty":4,"nm":"Shape Layer 137","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1708,597,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1088,"ty":4,"nm":"Shape Layer 138","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1694,597,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1089,"ty":4,"nm":"Shape Layer 139","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1680,597,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1090,"ty":4,"nm":"Shape Layer 140","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1666,597,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1091,"ty":4,"nm":"Shape Layer 141","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1652,597,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1092,"ty":4,"nm":"Shape Layer 142","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1638,597,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1093,"ty":4,"nm":"Shape Layer 143","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1624,597,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1094,"ty":4,"nm":"Shape Layer 144","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1610,597,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1095,"ty":4,"nm":"Shape Layer 121","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1596,597,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1096,"ty":4,"nm":"Shape Layer 145","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1463,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1097,"ty":4,"nm":"Shape Layer 120","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1456,597,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1098,"ty":4,"nm":"Shape Layer 119","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1442,597,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1099,"ty":4,"nm":"Shape Layer 76","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1463,583,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1100,"ty":4,"nm":"Shape Layer 96","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1659,583,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1101,"ty":4,"nm":"Shape Layer 97","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1673,583,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1102,"ty":4,"nm":"Shape Layer 98","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1687,583,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1103,"ty":4,"nm":"Shape Layer 99","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1701,583,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1104,"ty":4,"nm":"Shape Layer 100","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1715,583,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1105,"ty":4,"nm":"Shape Layer 101","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1729,583,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1106,"ty":4,"nm":"Shape Layer 102","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1743,583,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1107,"ty":4,"nm":"Shape Layer 95","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1757,583,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1108,"ty":4,"nm":"Shape Layer 116","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1883,583,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1109,"ty":4,"nm":"Shape Layer 117","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1897,583,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1110,"ty":4,"nm":"Shape Layer 118","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1911,583,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1111,"ty":4,"nm":"Shape Layer 115","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1925,583,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1112,"ty":4,"nm":"Shape Layer 369","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1484,569,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1113,"ty":4,"nm":"Shape Layer 370","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1498,569,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1114,"ty":4,"nm":"Shape Layer 368","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1512,569,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1115,"ty":4,"nm":"Shape Layer 73","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1470,569,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1116,"ty":4,"nm":"Shape Layer 87","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1652,569,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1117,"ty":4,"nm":"Shape Layer 88","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1666,569,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1118,"ty":4,"nm":"Shape Layer 89","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1680,569,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1119,"ty":4,"nm":"Shape Layer 90","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1694,569,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1120,"ty":4,"nm":"Shape Layer 91","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1708,569,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1121,"ty":4,"nm":"Shape Layer 92","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1722,569,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1122,"ty":4,"nm":"Shape Layer 93","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1736,569,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1123,"ty":4,"nm":"Shape Layer 103","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1750,569,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1124,"ty":4,"nm":"Shape Layer 113","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1890,569,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1125,"ty":4,"nm":"Shape Layer 114","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1904,569,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":1126,"ty":4,"nm":"Shape Layer 94","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1918,569,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0}]},{"id":"comp_3","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 1294","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1255,1268,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 1295","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1269,1268,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 1296","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1283,1268,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Shape Layer 1293","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1297,1268,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Shape Layer 1289","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1248,1255,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Shape Layer 1290","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1262,1255,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Shape Layer 1291","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1276,1255,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"Shape Layer 1292","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1290,1255,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"Shape Layer 1288","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1304,1255,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"Shape Layer 1282","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1241,1241,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"Shape Layer 1283","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1255,1241,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"Shape Layer 1284","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1269,1241,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"Shape Layer 1285","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1283,1241,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"Shape Layer 1286","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1297,1241,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":"Shape Layer 1287","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1311,1241,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":"Shape Layer 1281","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1325,1241,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":17,"ty":4,"nm":"Shape Layer 1275","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1234,1227,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":18,"ty":4,"nm":"Shape Layer 1276","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1248,1227,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":19,"ty":4,"nm":"Shape Layer 1277","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1262,1227,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":20,"ty":4,"nm":"Shape Layer 1278","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1276,1227,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":21,"ty":4,"nm":"Shape Layer 1279","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1289,1227,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":22,"ty":4,"nm":"Shape Layer 1280","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1303,1227,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":23,"ty":4,"nm":"Shape Layer 1274","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1317,1227,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":24,"ty":4,"nm":"Shape Layer 1268","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1241,1213,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":25,"ty":4,"nm":"Shape Layer 1269","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1255,1213,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":26,"ty":4,"nm":"Shape Layer 1270","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1269,1213,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":27,"ty":4,"nm":"Shape Layer 1271","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1283,1213,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":28,"ty":4,"nm":"Shape Layer 1272","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1297,1213,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":29,"ty":4,"nm":"Shape Layer 1273","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1311,1213,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":38,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":68,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":98,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":128,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":158,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":188,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":218,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":30,"ty":4,"nm":"Shape Layer 1267","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1325,1213,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":204,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":234,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":264,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":294,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":324,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":354,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":384,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":31,"ty":4,"nm":"Shape Layer 1303","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1408,1213,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":82,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":112,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":142,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":172,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":202,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":232,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":262,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":32,"ty":4,"nm":"Shape Layer 1258","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1248,1199,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":33,"ty":4,"nm":"Shape Layer 1259","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1262,1199,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":34,"ty":4,"nm":"Shape Layer 1260","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1276,1199,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":35,"ty":4,"nm":"Shape Layer 1261","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1290,1199,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":36,"ty":4,"nm":"Shape Layer 1262","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1304,1199,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":18,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":48,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":78,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":108,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":138,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":168,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":198,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":37,"ty":4,"nm":"Shape Layer 1263","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1318,1199,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":196,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":226,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":256,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":286,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":316,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":346,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":376,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":38,"ty":4,"nm":"Shape Layer 1264","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1332,1199,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":39,"ty":4,"nm":"Shape Layer 1257","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1346,1199,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":40,"ty":4,"nm":"Shape Layer 1302","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1416,1199,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":41,"ty":4,"nm":"Shape Layer 1265","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1402,1199,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":29,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":60,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":90,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":120,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":150,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":180,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":210,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":42,"ty":4,"nm":"Shape Layer 1248","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1241,1185,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":70,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":100,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":130,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":160,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":190,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":220,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":250,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":43,"ty":4,"nm":"Shape Layer 1249","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1255,1185,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":44,"ty":4,"nm":"Shape Layer 1250","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1269,1185,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":45,"ty":4,"nm":"Shape Layer 1251","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1283,1185,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":46,"ty":4,"nm":"Shape Layer 1252","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1297,1185,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":211,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":241,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":271,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":301,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":331,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":361,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":391,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":47,"ty":4,"nm":"Shape Layer 1253","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1311,1185,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":36,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":66,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":96,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":126,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":156,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":186,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":216,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":48,"ty":4,"nm":"Shape Layer 1254","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1325,1185,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":208,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":238,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":268,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":298,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":328,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":358,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":388,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":49,"ty":4,"nm":"Shape Layer 1247","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1339,1185,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":50,"ty":4,"nm":"Shape Layer 1256","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1409,1185,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":51,"ty":4,"nm":"Shape Layer 1255","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1423,1185,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":52,"ty":4,"nm":"Shape Layer 1233","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1234,1171,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":53,"ty":4,"nm":"Shape Layer 1234","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1248,1171,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":54,"ty":4,"nm":"Shape Layer 1235","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1262,1171,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":55,"ty":4,"nm":"Shape Layer 1236","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1276,1171,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":56,"ty":4,"nm":"Shape Layer 1237","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1290,1171,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":57,"ty":4,"nm":"Shape Layer 1238","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1304,1171,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":58,"ty":4,"nm":"Shape Layer 1239","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1318,1171,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":59,"ty":4,"nm":"Shape Layer 1240","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1332,1171,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":60,"ty":4,"nm":"Shape Layer 1241","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1346,1171,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":61,"ty":4,"nm":"Shape Layer 1242","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1360,1171,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":62,"ty":4,"nm":"Shape Layer 1246","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1416,1171,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":63,"ty":4,"nm":"Shape Layer 1223","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1241,1157,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":64,"ty":4,"nm":"Shape Layer 1224","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1255,1157,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":65,"ty":4,"nm":"Shape Layer 1225","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1269,1157,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":66,"ty":4,"nm":"Shape Layer 1226","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1283,1157,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":67,"ty":4,"nm":"Shape Layer 1227","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1297,1157,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":68,"ty":4,"nm":"Shape Layer 1228","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1311,1157,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":69,"ty":4,"nm":"Shape Layer 1229","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1325,1157,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":70,"ty":4,"nm":"Shape Layer 1230","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1339,1157,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":71,"ty":4,"nm":"Shape Layer 1231","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1353,1157,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":72,"ty":4,"nm":"Shape Layer 1298","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1367,1157,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":73,"ty":4,"nm":"Shape Layer 1301","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1409,1157,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":74,"ty":4,"nm":"Shape Layer 1222","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1423,1157,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":22,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":52,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":82,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":112,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":142,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":172,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":202,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":75,"ty":4,"nm":"Shape Layer 1212","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1248,1143,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":192,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":222,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":252,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":282,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":312,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":342,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":372,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":76,"ty":4,"nm":"Shape Layer 1213","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1262,1143,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":81,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":111,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":141,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":171,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":201,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":231,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":261,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":77,"ty":4,"nm":"Shape Layer 1214","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1276,1143,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":208,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":238,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":268,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":298,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":328,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":358,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":388,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":-1.878,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":78,"ty":4,"nm":"Shape Layer 1215","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1290,1143,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":45,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":75,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":105,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":135,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":165,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":195,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":225,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":79,"ty":4,"nm":"Shape Layer 1216","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1304,1143,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":80,"ty":4,"nm":"Shape Layer 1217","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1304,1143,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":81,"ty":4,"nm":"Shape Layer 1218","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1318,1143,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":82,"ty":4,"nm":"Shape Layer 1219","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1332,1143,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":83,"ty":4,"nm":"Shape Layer 1220","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1346,1143,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":84,"ty":4,"nm":"Shape Layer 1221","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1360,1143,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":85,"ty":4,"nm":"Shape Layer 1297","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1374,1143,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":86,"ty":4,"nm":"Shape Layer 1211","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1416,1143,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":87,"ty":4,"nm":"Shape Layer 1203","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1255,1129,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":198,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":228,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":258,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":288,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":318,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":348,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":378,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":88,"ty":4,"nm":"Shape Layer 1204","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1269,1129,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":51,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":81,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":111,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":141,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":171,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":201,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":231,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":89,"ty":4,"nm":"Shape Layer 1205","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1283,1129,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":166,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":196,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":226,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":256,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":286,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":316,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":346,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":90,"ty":4,"nm":"Shape Layer 1206","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1297,1129,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":37,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":67,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":97,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":127,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":157,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":187,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":217,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":91,"ty":4,"nm":"Shape Layer 1207","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1311,1129,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":92,"ty":4,"nm":"Shape Layer 1208","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1325,1129,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":93,"ty":4,"nm":"Shape Layer 1209","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1339,1129,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":94,"ty":4,"nm":"Shape Layer 1210","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1353,1129,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":95,"ty":4,"nm":"Shape Layer 1202","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1367,1129,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":96,"ty":4,"nm":"Shape Layer 1193","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1234,1115,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":97,"ty":4,"nm":"Shape Layer 1194","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1248,1115,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":98,"ty":4,"nm":"Shape Layer 1195","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1262,1115,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":99,"ty":4,"nm":"Shape Layer 1196","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1276,1115,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":100,"ty":4,"nm":"Shape Layer 1197","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1290,1115,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":101,"ty":4,"nm":"Shape Layer 1198","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1304,1115,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":102,"ty":4,"nm":"Shape Layer 1199","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1318,1115,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":103,"ty":4,"nm":"Shape Layer 1200","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1332,1115,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":104,"ty":4,"nm":"Shape Layer 1201","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1346,1115,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":105,"ty":4,"nm":"Shape Layer 1192","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1360,1115,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":106,"ty":4,"nm":"Shape Layer 1183","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1241,1101,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":107,"ty":4,"nm":"Shape Layer 1184","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1255,1101,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":108,"ty":4,"nm":"Shape Layer 1185","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1269,1101,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":109,"ty":4,"nm":"Shape Layer 1186","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1283,1101,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":110,"ty":4,"nm":"Shape Layer 1187","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1297,1101,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":111,"ty":4,"nm":"Shape Layer 1188","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1311,1101,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":112,"ty":4,"nm":"Shape Layer 1189","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1325,1101,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":113,"ty":4,"nm":"Shape Layer 1190","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1339,1101,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":114,"ty":4,"nm":"Shape Layer 1191","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1353,1101,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":115,"ty":4,"nm":"Shape Layer 1182","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1367,1101,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":116,"ty":4,"nm":"Shape Layer 1173","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1234,1087,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":117,"ty":4,"nm":"Shape Layer 1174","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1248,1087,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":118,"ty":4,"nm":"Shape Layer 1175","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1262,1087,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":119,"ty":4,"nm":"Shape Layer 1176","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1276,1087,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":120,"ty":4,"nm":"Shape Layer 1177","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1290,1087,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":121,"ty":4,"nm":"Shape Layer 1178","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1304,1087,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":122,"ty":4,"nm":"Shape Layer 1179","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1318,1087,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":123,"ty":4,"nm":"Shape Layer 1180","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1332,1087,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":124,"ty":4,"nm":"Shape Layer 1181","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1346,1087,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":125,"ty":4,"nm":"Shape Layer 1172","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1360,1087,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":126,"ty":4,"nm":"Shape Layer 1160","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1213,1073,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":127,"ty":4,"nm":"Shape Layer 1161","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1227,1073,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":128,"ty":4,"nm":"Shape Layer 1162","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1241,1073,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":129,"ty":4,"nm":"Shape Layer 1163","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1255,1073,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":130,"ty":4,"nm":"Shape Layer 1164","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1269,1073,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":131,"ty":4,"nm":"Shape Layer 1165","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1283,1073,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":132,"ty":4,"nm":"Shape Layer 1166","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1297,1073,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":133,"ty":4,"nm":"Shape Layer 1169","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1325,1073,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":134,"ty":4,"nm":"Shape Layer 1170","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1339,1073,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":135,"ty":4,"nm":"Shape Layer 1171","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1353,1073,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":136,"ty":4,"nm":"Shape Layer 1168","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1367,1073,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":137,"ty":4,"nm":"Shape Layer 1167","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1311,1073,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":138,"ty":4,"nm":"Shape Layer 1147","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1220,1059,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":139,"ty":4,"nm":"Shape Layer 1148","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1234,1059,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":140,"ty":4,"nm":"Shape Layer 1149","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1248,1059,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":141,"ty":4,"nm":"Shape Layer 1150","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1262,1059,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":142,"ty":4,"nm":"Shape Layer 1151","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1276,1059,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":178,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":208,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":238,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":268,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":298,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":328,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":358,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":143,"ty":4,"nm":"Shape Layer 1152","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1290,1059,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":33,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":63,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":93,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":123,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":153,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":183,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":213,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":144,"ty":4,"nm":"Shape Layer 1153","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1304,1059,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":116,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":146,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":176,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":206,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":236,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":266,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":296,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":145,"ty":4,"nm":"Shape Layer 1154","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1318,1059,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":198,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":228,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":258,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":288,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":318,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":348,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":378,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":146,"ty":4,"nm":"Shape Layer 1155","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1332,1059,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":147,"ty":4,"nm":"Shape Layer 1156","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1346,1059,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":148,"ty":4,"nm":"Shape Layer 1157","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1360,1059,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":149,"ty":4,"nm":"Shape Layer 1158","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1374,1059,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":150,"ty":4,"nm":"Shape Layer 1146","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1388,1059,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":151,"ty":4,"nm":"Shape Layer 1134","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1227,1045,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":152,"ty":4,"nm":"Shape Layer 1135","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1241,1045,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":153,"ty":4,"nm":"Shape Layer 1136","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1255,1045,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":152,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":182,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":212,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":242,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":272,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":302,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":332,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":154,"ty":4,"nm":"Shape Layer 1137","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1269,1045,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":200,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":230,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":260,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":290,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":320,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":350,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":380,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":155,"ty":4,"nm":"Shape Layer 1138","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1283,1045,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":90,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":120,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":150,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":180,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":210,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":240,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":270,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":156,"ty":4,"nm":"Shape Layer 1139","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1297,1045,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":33,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":63,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":93,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":123,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":153,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":183,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":213,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":157,"ty":4,"nm":"Shape Layer 1140","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1311,1045,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":83,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":113,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":143,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":173,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":203,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":233,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":263,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":158,"ty":4,"nm":"Shape Layer 1141","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1325,1045,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":159,"ty":4,"nm":"Shape Layer 1142","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1339,1045,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":160,"ty":4,"nm":"Shape Layer 1143","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1353,1045,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":161,"ty":4,"nm":"Shape Layer 1144","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1367,1045,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":162,"ty":4,"nm":"Shape Layer 1145","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1381,1045,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":163,"ty":4,"nm":"Shape Layer 1133","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1395,1045,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":164,"ty":4,"nm":"Shape Layer 1120","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1220,1031,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":165,"ty":4,"nm":"Shape Layer 1121","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1234,1031,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":166,"ty":4,"nm":"Shape Layer 1122","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1248,1031,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":167,"ty":4,"nm":"Shape Layer 1123","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1262,1031,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":168,"ty":4,"nm":"Shape Layer 1124","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1276,1031,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":169,"ty":4,"nm":"Shape Layer 1125","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1290,1031,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":170,"ty":4,"nm":"Shape Layer 1126","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1304,1031,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":171,"ty":4,"nm":"Shape Layer 1127","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1318,1031,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":172,"ty":4,"nm":"Shape Layer 1128","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1332,1031,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":173,"ty":4,"nm":"Shape Layer 1129","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1346,1031,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":174,"ty":4,"nm":"Shape Layer 1130","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1360,1031,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":175,"ty":4,"nm":"Shape Layer 1131","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1374,1031,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":176,"ty":4,"nm":"Shape Layer 1132","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1388,1031,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":177,"ty":4,"nm":"Shape Layer 1118","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1402,1031,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":178,"ty":4,"nm":"Shape Layer 1097","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1115,1017,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":179,"ty":4,"nm":"Shape Layer 1098","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1129,1017,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":180,"ty":4,"nm":"Shape Layer 1099","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1143,1017,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":181,"ty":4,"nm":"Shape Layer 1103","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1199,1017,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":182,"ty":4,"nm":"Shape Layer 1104","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1213,1017,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":183,"ty":4,"nm":"Shape Layer 1105","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1227,1017,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":184,"ty":4,"nm":"Shape Layer 1106","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1241,1017,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":185,"ty":4,"nm":"Shape Layer 1107","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1255,1017,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":186,"ty":4,"nm":"Shape Layer 1108","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1269,1017,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":187,"ty":4,"nm":"Shape Layer 1109","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1283,1017,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":188,"ty":4,"nm":"Shape Layer 1110","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1297,1017,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":189,"ty":4,"nm":"Shape Layer 1111","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1311,1017,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":190,"ty":4,"nm":"Shape Layer 1112","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1325,1017,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":191,"ty":4,"nm":"Shape Layer 1113","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1339,1017,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":192,"ty":4,"nm":"Shape Layer 1114","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1353,1017,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":193,"ty":4,"nm":"Shape Layer 1115","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1367,1017,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":194,"ty":4,"nm":"Shape Layer 1116","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1381,1017,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":195,"ty":4,"nm":"Shape Layer 1117","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1395,1017,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":196,"ty":4,"nm":"Shape Layer 1096","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1409,1017,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":197,"ty":4,"nm":"Shape Layer 1076","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1108,1003,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":198,"ty":4,"nm":"Shape Layer 1077","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1122,1003,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":199,"ty":4,"nm":"Shape Layer 1078","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1136,1003,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":200,"ty":4,"nm":"Shape Layer 1079","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1150,1003,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":201,"ty":4,"nm":"Shape Layer 1080","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1164,1003,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":202,"ty":4,"nm":"Shape Layer 1081","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1178,1003,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":203,"ty":4,"nm":"Shape Layer 1082","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1192,1003,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":204,"ty":4,"nm":"Shape Layer 1083","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1206,1003,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":205,"ty":4,"nm":"Shape Layer 1084","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1220,1003,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":206,"ty":4,"nm":"Shape Layer 1085","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1234,1003,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":207,"ty":4,"nm":"Shape Layer 1086","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1248,1003,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":208,"ty":4,"nm":"Shape Layer 1087","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1262,1003,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":209,"ty":4,"nm":"Shape Layer 1088","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1276,1003,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":210,"ty":4,"nm":"Shape Layer 1089","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1290,1003,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":211,"ty":4,"nm":"Shape Layer 1090","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1304,1003,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":212,"ty":4,"nm":"Shape Layer 1091","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1318,1003,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":213,"ty":4,"nm":"Shape Layer 1092","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1332,1003,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":214,"ty":4,"nm":"Shape Layer 1093","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1346,1003,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":215,"ty":4,"nm":"Shape Layer 1094","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1360,1003,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":216,"ty":4,"nm":"Shape Layer 1095","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1374,1003,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":217,"ty":4,"nm":"Shape Layer 1075","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1416,1003,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":218,"ty":4,"nm":"Shape Layer 1056","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1101,989,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":219,"ty":4,"nm":"Shape Layer 1057","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1115,989,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":220,"ty":4,"nm":"Shape Layer 1058","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1129,989,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":221,"ty":4,"nm":"Shape Layer 1059","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1143,989,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":222,"ty":4,"nm":"Shape Layer 1060","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1157,989,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":223,"ty":4,"nm":"Shape Layer 1061","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1171,989,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":224,"ty":4,"nm":"Shape Layer 1062","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1185,989,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":225,"ty":4,"nm":"Shape Layer 1063","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1199,989,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":226,"ty":4,"nm":"Shape Layer 1064","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1213,989,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":227,"ty":4,"nm":"Shape Layer 1065","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1227,989,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":228,"ty":4,"nm":"Shape Layer 1066","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1241,989,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":229,"ty":4,"nm":"Shape Layer 1067","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1255,989,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":230,"ty":4,"nm":"Shape Layer 1068","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1269,989,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":231,"ty":4,"nm":"Shape Layer 1069","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1283,989,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":232,"ty":4,"nm":"Shape Layer 1070","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1297,989,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":233,"ty":4,"nm":"Shape Layer 1071","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1311,989,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":234,"ty":4,"nm":"Shape Layer 1072","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1325,989,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":235,"ty":4,"nm":"Shape Layer 1073","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1339,989,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":236,"ty":4,"nm":"Shape Layer 1074","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1353,989,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":237,"ty":4,"nm":"Shape Layer 1055","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1367,989,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":238,"ty":4,"nm":"Shape Layer 1033","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1080,975,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":239,"ty":4,"nm":"Shape Layer 1034","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1094,975,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":240,"ty":4,"nm":"Shape Layer 1035","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1108,975,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":241,"ty":4,"nm":"Shape Layer 1036","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1122,975,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":242,"ty":4,"nm":"Shape Layer 1037","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1136,975,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":243,"ty":4,"nm":"Shape Layer 1038","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1150,975,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":155,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":185,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":215,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":245,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":275,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":305,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":335,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":244,"ty":4,"nm":"Shape Layer 1039","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1164,975,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":33,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":63,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":93,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":123,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":153,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":183,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":213,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":245,"ty":4,"nm":"Shape Layer 1040","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1178,975,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":133,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":163,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":193,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":223,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":253,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":283,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":313,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":246,"ty":4,"nm":"Shape Layer 1041","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1192,975,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":247,"ty":4,"nm":"Shape Layer 1042","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1206,975,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":248,"ty":4,"nm":"Shape Layer 1043","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1220,975,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":249,"ty":4,"nm":"Shape Layer 1044","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1234,975,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":250,"ty":4,"nm":"Shape Layer 1045","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1248,975,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":33,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":63,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":93,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":123,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":153,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":183,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":213,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":251,"ty":4,"nm":"Shape Layer 1046","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1262,975,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":142,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":172,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":202,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":232,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":262,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":292,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":322,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":252,"ty":4,"nm":"Shape Layer 1047","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1276,975,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":200,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":230,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":260,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":290,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":320,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":350,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":380,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":253,"ty":4,"nm":"Shape Layer 1050","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1304,975,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":254,"ty":4,"nm":"Shape Layer 1051","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1318,975,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":255,"ty":4,"nm":"Shape Layer 1052","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1332,975,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":256,"ty":4,"nm":"Shape Layer 1053","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1346,975,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":257,"ty":4,"nm":"Shape Layer 1054","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1360,975,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":258,"ty":4,"nm":"Shape Layer 1049","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1374,975,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":259,"ty":4,"nm":"Shape Layer 1048","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1290,975,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":260,"ty":4,"nm":"Shape Layer 1012","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1087,961,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":261,"ty":4,"nm":"Shape Layer 1013","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1101,961,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":262,"ty":4,"nm":"Shape Layer 1014","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1115,961,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":263,"ty":4,"nm":"Shape Layer 1015","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1129,961,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":264,"ty":4,"nm":"Shape Layer 1016","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1143,961,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":33,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":63,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":93,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":123,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":153,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":183,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":213,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":265,"ty":4,"nm":"Shape Layer 1017","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1157,961,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":196,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":226,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":256,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":286,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":316,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":346,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":376,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":266,"ty":4,"nm":"Shape Layer 1018","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1171,961,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":124,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":154,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":184,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":214,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":244,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":274,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":304,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":267,"ty":4,"nm":"Shape Layer 1019","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1185,961,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":33,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":63,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":93,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":123,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":153,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":183,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":213,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":268,"ty":4,"nm":"Shape Layer 1020","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1199,961,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":216,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":246,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":276,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":306,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":336,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":366,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":396,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":269,"ty":4,"nm":"Shape Layer 1021","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1213,961,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":270,"ty":4,"nm":"Shape Layer 1022","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1227,961,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":271,"ty":4,"nm":"Shape Layer 1023","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1241,961,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":272,"ty":4,"nm":"Shape Layer 1024","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1255,961,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":273,"ty":4,"nm":"Shape Layer 1025","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1269,961,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":274,"ty":4,"nm":"Shape Layer 1026","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1283,961,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":275,"ty":4,"nm":"Shape Layer 1027","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1297,961,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":276,"ty":4,"nm":"Shape Layer 1028","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1311,961,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":277,"ty":4,"nm":"Shape Layer 1029","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1325,961,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":278,"ty":4,"nm":"Shape Layer 1030","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1339,961,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":279,"ty":4,"nm":"Shape Layer 1031","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1353,961,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":280,"ty":4,"nm":"Shape Layer 1011","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1367,961,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":281,"ty":4,"nm":"Shape Layer 992","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1094,947,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":282,"ty":4,"nm":"Shape Layer 993","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1108,947,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":283,"ty":4,"nm":"Shape Layer 994","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1122,947,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":284,"ty":4,"nm":"Shape Layer 995","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1136,947,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":285,"ty":4,"nm":"Shape Layer 996","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1150,947,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":286,"ty":4,"nm":"Shape Layer 997","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1164,947,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":287,"ty":4,"nm":"Shape Layer 998","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1178,947,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":288,"ty":4,"nm":"Shape Layer 999","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1192,947,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":289,"ty":4,"nm":"Shape Layer 1000","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1206,947,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":290,"ty":4,"nm":"Shape Layer 1001","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1220,947,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":291,"ty":4,"nm":"Shape Layer 1002","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1234,947,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":292,"ty":4,"nm":"Shape Layer 1003","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1248,947,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":293,"ty":4,"nm":"Shape Layer 1004","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1262,947,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":294,"ty":4,"nm":"Shape Layer 1005","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1276,947,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":295,"ty":4,"nm":"Shape Layer 1006","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1290,947,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":296,"ty":4,"nm":"Shape Layer 1007","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1304,947,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":297,"ty":4,"nm":"Shape Layer 1008","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1318,947,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":298,"ty":4,"nm":"Shape Layer 1009","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1332,947,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":299,"ty":4,"nm":"Shape Layer 1010","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1346,947,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":300,"ty":4,"nm":"Shape Layer 991","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1360,947,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":301,"ty":4,"nm":"Shape Layer 972","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1087,933,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":302,"ty":4,"nm":"Shape Layer 973","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1101,933,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":303,"ty":4,"nm":"Shape Layer 974","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1115,933,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":304,"ty":4,"nm":"Shape Layer 975","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1129,933,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":305,"ty":4,"nm":"Shape Layer 976","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1143,933,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":306,"ty":4,"nm":"Shape Layer 977","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1157,933,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":307,"ty":4,"nm":"Shape Layer 978","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1171,933,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":308,"ty":4,"nm":"Shape Layer 979","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1185,933,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":309,"ty":4,"nm":"Shape Layer 980","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1199,933,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":310,"ty":4,"nm":"Shape Layer 981","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1213,933,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":311,"ty":4,"nm":"Shape Layer 982","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1227,933,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":312,"ty":4,"nm":"Shape Layer 983","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1241,933,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":313,"ty":4,"nm":"Shape Layer 984","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1255,933,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":314,"ty":4,"nm":"Shape Layer 985","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1269,933,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":315,"ty":4,"nm":"Shape Layer 986","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1283,933,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":316,"ty":4,"nm":"Shape Layer 987","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1297,933,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":317,"ty":4,"nm":"Shape Layer 988","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1311,933,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":318,"ty":4,"nm":"Shape Layer 989","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1325,933,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":319,"ty":4,"nm":"Shape Layer 990","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1339,933,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":320,"ty":4,"nm":"Shape Layer 971","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1353,933,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":321,"ty":4,"nm":"Shape Layer 952","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1094,919,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":322,"ty":4,"nm":"Shape Layer 953","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1108,919,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":323,"ty":4,"nm":"Shape Layer 954","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1122,919,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":324,"ty":4,"nm":"Shape Layer 955","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1136,919,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":325,"ty":4,"nm":"Shape Layer 956","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1150,919,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":326,"ty":4,"nm":"Shape Layer 957","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1164,919,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":327,"ty":4,"nm":"Shape Layer 958","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1178,919,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":328,"ty":4,"nm":"Shape Layer 959","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1192,919,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":329,"ty":4,"nm":"Shape Layer 960","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1206,919,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":330,"ty":4,"nm":"Shape Layer 961","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1220,919,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":331,"ty":4,"nm":"Shape Layer 962","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1234,919,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":332,"ty":4,"nm":"Shape Layer 963","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1248,919,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":333,"ty":4,"nm":"Shape Layer 964","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1262,919,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":334,"ty":4,"nm":"Shape Layer 965","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1276,919,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":335,"ty":4,"nm":"Shape Layer 966","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1290,919,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":336,"ty":4,"nm":"Shape Layer 967","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1304,919,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":337,"ty":4,"nm":"Shape Layer 968","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1318,919,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":338,"ty":4,"nm":"Shape Layer 969","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1332,919,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":339,"ty":4,"nm":"Shape Layer 970","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1346,919,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":340,"ty":4,"nm":"Shape Layer 951","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1360,919,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":341,"ty":4,"nm":"Shape Layer 933","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1101,905,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":342,"ty":4,"nm":"Shape Layer 934","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1115,905,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":343,"ty":4,"nm":"Shape Layer 935","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1129,905,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":344,"ty":4,"nm":"Shape Layer 936","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1143,905,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":345,"ty":4,"nm":"Shape Layer 937","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1157,905,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":346,"ty":4,"nm":"Shape Layer 938","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1171,905,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":347,"ty":4,"nm":"Shape Layer 939","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1185,905,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":348,"ty":4,"nm":"Shape Layer 940","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1199,905,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":349,"ty":4,"nm":"Shape Layer 941","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1213,905,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":350,"ty":4,"nm":"Shape Layer 942","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1227,905,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":351,"ty":4,"nm":"Shape Layer 943","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1241,905,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":352,"ty":4,"nm":"Shape Layer 944","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1255,905,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":353,"ty":4,"nm":"Shape Layer 945","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1269,905,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":354,"ty":4,"nm":"Shape Layer 946","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1283,905,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":355,"ty":4,"nm":"Shape Layer 947","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1297,905,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":356,"ty":4,"nm":"Shape Layer 948","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1311,905,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":357,"ty":4,"nm":"Shape Layer 949","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1325,905,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":358,"ty":4,"nm":"Shape Layer 950","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1339,905,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":359,"ty":4,"nm":"Shape Layer 932","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1353,905,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":360,"ty":4,"nm":"Shape Layer 915","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1108,891,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":361,"ty":4,"nm":"Shape Layer 916","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1122,891,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":362,"ty":4,"nm":"Shape Layer 917","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1136,891,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":363,"ty":4,"nm":"Shape Layer 918","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1150,891,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":364,"ty":4,"nm":"Shape Layer 919","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1164,891,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":365,"ty":4,"nm":"Shape Layer 920","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1178,891,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":366,"ty":4,"nm":"Shape Layer 921","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1192,891,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":367,"ty":4,"nm":"Shape Layer 922","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1206,891,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":368,"ty":4,"nm":"Shape Layer 923","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1220,891,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":369,"ty":4,"nm":"Shape Layer 924","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1234,891,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":370,"ty":4,"nm":"Shape Layer 925","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1248,891,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":371,"ty":4,"nm":"Shape Layer 926","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1262,891,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":372,"ty":4,"nm":"Shape Layer 927","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1276,891,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":373,"ty":4,"nm":"Shape Layer 928","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1290,891,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":374,"ty":4,"nm":"Shape Layer 929","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1304,891,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":375,"ty":4,"nm":"Shape Layer 930","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1318,891,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":376,"ty":4,"nm":"Shape Layer 931","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1332,891,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":377,"ty":4,"nm":"Shape Layer 914","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1346,891,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":378,"ty":4,"nm":"Shape Layer 898","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1115,877,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":379,"ty":4,"nm":"Shape Layer 899","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1129,877,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":380,"ty":4,"nm":"Shape Layer 900","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1143,877,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":381,"ty":4,"nm":"Shape Layer 901","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1157,877,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":382,"ty":4,"nm":"Shape Layer 902","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1171,877,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":383,"ty":4,"nm":"Shape Layer 903","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1185,877,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":384,"ty":4,"nm":"Shape Layer 904","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1199,877,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":385,"ty":4,"nm":"Shape Layer 905","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1213,877,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":386,"ty":4,"nm":"Shape Layer 906","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1227,877,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":387,"ty":4,"nm":"Shape Layer 907","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1241,877,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":388,"ty":4,"nm":"Shape Layer 908","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1255,877,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":389,"ty":4,"nm":"Shape Layer 909","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1269,877,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":390,"ty":4,"nm":"Shape Layer 910","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1283,877,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":391,"ty":4,"nm":"Shape Layer 911","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1297,877,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":392,"ty":4,"nm":"Shape Layer 912","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1311,877,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":393,"ty":4,"nm":"Shape Layer 913","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1325,877,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":394,"ty":4,"nm":"Shape Layer 897","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1339,877,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":395,"ty":4,"nm":"Shape Layer 885","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1122,863,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":396,"ty":4,"nm":"Shape Layer 886","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1136,863,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":397,"ty":4,"nm":"Shape Layer 887","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1150,863,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":398,"ty":4,"nm":"Shape Layer 888","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1164,863,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":399,"ty":4,"nm":"Shape Layer 889","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1178,863,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":400,"ty":4,"nm":"Shape Layer 890","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1192,863,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":401,"ty":4,"nm":"Shape Layer 891","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1206,863,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":402,"ty":4,"nm":"Shape Layer 892","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1220,863,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":403,"ty":4,"nm":"Shape Layer 893","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1234,863,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":404,"ty":4,"nm":"Shape Layer 896","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1276,863,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":405,"ty":4,"nm":"Shape Layer 884","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1290,863,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":406,"ty":4,"nm":"Shape Layer 878","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1214,849,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":407,"ty":4,"nm":"Shape Layer 879","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1200,849,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":408,"ty":4,"nm":"Shape Layer 880","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1186,849,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":409,"ty":4,"nm":"Shape Layer 881","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1172,849,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":410,"ty":4,"nm":"Shape Layer 882","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1158,849,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":411,"ty":4,"nm":"Shape Layer 883","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1143,849,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":412,"ty":4,"nm":"Shape Layer 877","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1129,849,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":413,"ty":4,"nm":"Shape Layer 871","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1207,835,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":414,"ty":4,"nm":"Shape Layer 872","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1193,835,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":415,"ty":4,"nm":"Shape Layer 873","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1179,835,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":416,"ty":4,"nm":"Shape Layer 874","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1165,835,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":417,"ty":4,"nm":"Shape Layer 875","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1151,835,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":418,"ty":4,"nm":"Shape Layer 876","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1137,835,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":419,"ty":4,"nm":"Shape Layer 870","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1123,835,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":420,"ty":4,"nm":"Shape Layer 868","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1186,821,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":421,"ty":4,"nm":"Shape Layer 869","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1200,821,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":422,"ty":4,"nm":"Shape Layer 512","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1214,821,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0}]},{"id":"comp_4","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 867","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[798,1409,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 866","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[777,1395,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 865","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[791,1395,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Shape Layer 864","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[770,1381,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Shape Layer 863","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[784,1381,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Shape Layer 862","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[777,1367,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Shape Layer 861","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[791,1367,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"Shape Layer 859","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[784,1353,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"Shape Layer 860","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[798,1353,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"Shape Layer 858","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[812,1353,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"Shape Layer 857","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[791,1339,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"Shape Layer 856","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[805,1339,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"Shape Layer 855","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[777,1339,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"Shape Layer 854","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[763,1339,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":"Shape Layer 852","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[785,1325,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":"Shape Layer 853","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[799,1325,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":17,"ty":4,"nm":"Shape Layer 851","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[813,1325,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":18,"ty":4,"nm":"Shape Layer 848","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[792,1311,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":19,"ty":4,"nm":"Shape Layer 849","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[806,1311,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":20,"ty":4,"nm":"Shape Layer 850","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[820,1311,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":21,"ty":4,"nm":"Shape Layer 847","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[834,1311,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":22,"ty":4,"nm":"Shape Layer 842","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[785,1297,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":23,"ty":4,"nm":"Shape Layer 843","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[799,1297,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":24,"ty":4,"nm":"Shape Layer 844","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[813,1297,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":25,"ty":4,"nm":"Shape Layer 845","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[827,1297,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":26,"ty":4,"nm":"Shape Layer 846","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[841,1297,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":27,"ty":4,"nm":"Shape Layer 841","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[855,1297,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":28,"ty":4,"nm":"Shape Layer 837","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[792,1283,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":29,"ty":4,"nm":"Shape Layer 838","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[806,1283,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":30,"ty":4,"nm":"Shape Layer 839","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[820,1283,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":31,"ty":4,"nm":"Shape Layer 840","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[834,1283,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":32,"ty":4,"nm":"Shape Layer 836","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[848,1283,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":33,"ty":4,"nm":"Shape Layer 831","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[799,1269,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":34,"ty":4,"nm":"Shape Layer 832","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[813,1269,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":35,"ty":4,"nm":"Shape Layer 833","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[827,1269,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":36,"ty":4,"nm":"Shape Layer 834","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[841,1269,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":37,"ty":4,"nm":"Shape Layer 835","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[855,1269,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":38,"ty":4,"nm":"Shape Layer 830","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[869,1269,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":39,"ty":4,"nm":"Shape Layer 824","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[792,1255,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":40,"ty":4,"nm":"Shape Layer 825","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[806,1255,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":41,"ty":4,"nm":"Shape Layer 826","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[820,1255,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":42,"ty":4,"nm":"Shape Layer 827","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[834,1255,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":43,"ty":4,"nm":"Shape Layer 828","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[848,1255,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":44,"ty":4,"nm":"Shape Layer 829","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[862,1255,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":45,"ty":4,"nm":"Shape Layer 823","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[876,1255,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":46,"ty":4,"nm":"Shape Layer 817","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[799,1241,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":47,"ty":4,"nm":"Shape Layer 818","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[813,1241,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":48,"ty":4,"nm":"Shape Layer 819","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[827,1241,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":49,"ty":4,"nm":"Shape Layer 820","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[841,1241,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":50,"ty":4,"nm":"Shape Layer 821","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[855,1241,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":51,"ty":4,"nm":"Shape Layer 822","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[869,1241,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":52,"ty":4,"nm":"Shape Layer 816","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[883,1241,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":53,"ty":4,"nm":"Shape Layer 810","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[806,1227,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":54,"ty":4,"nm":"Shape Layer 811","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[820,1227,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":55,"ty":4,"nm":"Shape Layer 812","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[834,1227,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":56,"ty":4,"nm":"Shape Layer 813","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[848,1227,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":57,"ty":4,"nm":"Shape Layer 814","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[861,1227,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":167,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":197,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":227,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":257,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":287,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":317,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":347,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":58,"ty":4,"nm":"Shape Layer 815","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[875,1227,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":90,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":120,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":150,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":180,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":210,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":240,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":270,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":59,"ty":4,"nm":"Shape Layer 809","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[889,1227,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":237,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":267,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":297,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":327,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":357,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":387,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":417,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":60,"ty":4,"nm":"Shape Layer 802","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[799,1213,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":61,"ty":4,"nm":"Shape Layer 803","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[813,1213,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":62,"ty":4,"nm":"Shape Layer 804","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[827,1213,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":63,"ty":4,"nm":"Shape Layer 805","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[841,1213,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":64,"ty":4,"nm":"Shape Layer 806","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[855,1213,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":195,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":225,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":255,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":285,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":315,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":345,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":375,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":65,"ty":4,"nm":"Shape Layer 807","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[869,1213,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":96,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":126,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":156,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":186,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":216,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":246,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":276,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":66,"ty":4,"nm":"Shape Layer 808","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[883,1213,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":136,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":166,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":196,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":226,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":256,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":286,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":316,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":67,"ty":4,"nm":"Shape Layer 801","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[897,1213,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":87,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":117,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":147,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":177,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":207,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":237,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":267,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":68,"ty":4,"nm":"Shape Layer 793","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[792,1199,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":69,"ty":4,"nm":"Shape Layer 794","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[806,1199,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":70,"ty":4,"nm":"Shape Layer 795","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[820,1199,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":71,"ty":4,"nm":"Shape Layer 796","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[834,1199,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":72,"ty":4,"nm":"Shape Layer 797","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[848,1199,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":73,"ty":4,"nm":"Shape Layer 798","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[862,1199,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":74,"ty":4,"nm":"Shape Layer 799","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[876,1199,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":75,"ty":4,"nm":"Shape Layer 800","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[890,1199,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":76,"ty":4,"nm":"Shape Layer 792","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[904,1199,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":77,"ty":4,"nm":"Shape Layer 782","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[799,1185,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":78,"ty":4,"nm":"Shape Layer 783","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[813,1185,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":79,"ty":4,"nm":"Shape Layer 784","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[827,1185,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":80,"ty":4,"nm":"Shape Layer 785","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[841,1185,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":81,"ty":4,"nm":"Shape Layer 786","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[855,1185,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":82,"ty":4,"nm":"Shape Layer 787","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[869,1185,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":83,"ty":4,"nm":"Shape Layer 788","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[883,1185,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":84,"ty":4,"nm":"Shape Layer 789","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[897,1185,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":85,"ty":4,"nm":"Shape Layer 790","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[911,1185,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":86,"ty":4,"nm":"Shape Layer 791","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[925,1185,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":87,"ty":4,"nm":"Shape Layer 781","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[939,1185,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":88,"ty":4,"nm":"Shape Layer 771","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[806,1171,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":89,"ty":4,"nm":"Shape Layer 772","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[820,1171,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":90,"ty":4,"nm":"Shape Layer 773","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[834,1171,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":91,"ty":4,"nm":"Shape Layer 774","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[848,1171,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":92,"ty":4,"nm":"Shape Layer 775","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[862,1171,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":93,"ty":4,"nm":"Shape Layer 776","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[876,1171,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":120,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":150,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":180,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":210,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":240,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":270,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":300,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":94,"ty":4,"nm":"Shape Layer 777","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[890,1171,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":222,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":252,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":282,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":312,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":342,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":372,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":402,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":95,"ty":4,"nm":"Shape Layer 778","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[904,1171,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":140,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":170,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":200,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":230,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":260,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":290,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":320,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":96,"ty":4,"nm":"Shape Layer 779","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[918,1171,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":97,"ty":4,"nm":"Shape Layer 780","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[932,1171,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":98,"ty":4,"nm":"Shape Layer 770","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[946,1171,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":99,"ty":4,"nm":"Shape Layer 759","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[799,1157,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":100,"ty":4,"nm":"Shape Layer 760","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[813,1157,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":101,"ty":4,"nm":"Shape Layer 761","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[827,1157,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":102,"ty":4,"nm":"Shape Layer 762","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[841,1157,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":103,"ty":4,"nm":"Shape Layer 763","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[855,1157,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":186,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":216,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":246,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":276,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":306,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":336,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":366,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":104,"ty":4,"nm":"Shape Layer 764","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[869,1157,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":64,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":94,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":124,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":154,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":184,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":214,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":244,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":105,"ty":4,"nm":"Shape Layer 765","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[883,1157,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":231,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":261,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":291,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":321,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":351,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":381,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":411,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":106,"ty":4,"nm":"Shape Layer 766","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[897,1157,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":232,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":262,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":292,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":322,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":352,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":382,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":412,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":107,"ty":4,"nm":"Shape Layer 767","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[911,1157,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":168,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":198,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":228,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":258,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":288,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":318,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":348,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":108,"ty":4,"nm":"Shape Layer 768","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[925,1157,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":109,"ty":4,"nm":"Shape Layer 769","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[939,1157,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":110,"ty":4,"nm":"Shape Layer 758","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[953,1157,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":111,"ty":4,"nm":"Shape Layer 745","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[764,1143,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":112,"ty":4,"nm":"Shape Layer 746","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[778,1143,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":113,"ty":4,"nm":"Shape Layer 747","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[792,1143,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":114,"ty":4,"nm":"Shape Layer 748","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[806,1143,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":115,"ty":4,"nm":"Shape Layer 749","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[820,1143,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":116,"ty":4,"nm":"Shape Layer 750","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[834,1143,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":117,"ty":4,"nm":"Shape Layer 751","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[848,1143,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":118,"ty":4,"nm":"Shape Layer 752","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[862,1143,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":119,"ty":4,"nm":"Shape Layer 753","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[876,1143,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":120,"ty":4,"nm":"Shape Layer 754","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[890,1143,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":121,"ty":4,"nm":"Shape Layer 755","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[904,1143,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":122,"ty":4,"nm":"Shape Layer 756","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[918,1143,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":123,"ty":4,"nm":"Shape Layer 757","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[932,1143,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":124,"ty":4,"nm":"Shape Layer 744","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[946,1143,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":125,"ty":4,"nm":"Shape Layer 731","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[771,1129,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":126,"ty":4,"nm":"Shape Layer 732","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[785,1129,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":127,"ty":4,"nm":"Shape Layer 733","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[799,1129,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":128,"ty":4,"nm":"Shape Layer 734","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[813,1129,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":129,"ty":4,"nm":"Shape Layer 735","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[827,1129,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":130,"ty":4,"nm":"Shape Layer 736","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[841,1129,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":131,"ty":4,"nm":"Shape Layer 737","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[855,1129,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":132,"ty":4,"nm":"Shape Layer 738","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[869,1129,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":133,"ty":4,"nm":"Shape Layer 739","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[883,1129,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":134,"ty":4,"nm":"Shape Layer 740","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[897,1129,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":135,"ty":4,"nm":"Shape Layer 741","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[911,1129,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":136,"ty":4,"nm":"Shape Layer 742","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[925,1129,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":137,"ty":4,"nm":"Shape Layer 743","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[939,1129,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":138,"ty":4,"nm":"Shape Layer 730","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[953,1129,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":139,"ty":4,"nm":"Shape Layer 717","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[778,1115,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":140,"ty":4,"nm":"Shape Layer 718","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[792,1115,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":141,"ty":4,"nm":"Shape Layer 719","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[806,1115,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":142,"ty":4,"nm":"Shape Layer 720","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[820,1115,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":143,"ty":4,"nm":"Shape Layer 721","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[834,1115,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":144,"ty":4,"nm":"Shape Layer 722","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[848,1115,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":81,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":111,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":141,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":171,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":201,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":231,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":261,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":145,"ty":4,"nm":"Shape Layer 723","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[862,1115,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":165,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":195,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":225,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":255,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":285,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":315,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":345,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":146,"ty":4,"nm":"Shape Layer 724","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[876,1115,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":227,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":257,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":287,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":317,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":347,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":377,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":407,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":147,"ty":4,"nm":"Shape Layer 725","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[890,1115,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":148,"ty":4,"nm":"Shape Layer 726","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[904,1115,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":149,"ty":4,"nm":"Shape Layer 727","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[918,1115,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":150,"ty":4,"nm":"Shape Layer 728","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[932,1115,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":151,"ty":4,"nm":"Shape Layer 729","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[946,1115,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":218,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":248,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":278,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":308,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":338,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":368,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":398,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":152,"ty":4,"nm":"Shape Layer 716","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[960,1115,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":169,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":199,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":229,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":259,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":289,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":319,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":349,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":153,"ty":4,"nm":"Shape Layer 701","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[757,1101,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":228,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":258,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":288,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":318,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":348,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":378,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":408,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":154,"ty":4,"nm":"Shape Layer 702","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[771,1101,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":155,"ty":4,"nm":"Shape Layer 703","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[785,1101,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":156,"ty":4,"nm":"Shape Layer 704","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[799,1101,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":157,"ty":4,"nm":"Shape Layer 705","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[813,1101,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":158,"ty":4,"nm":"Shape Layer 706","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[827,1101,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":159,"ty":4,"nm":"Shape Layer 707","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[841,1101,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":160,"ty":4,"nm":"Shape Layer 708","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[855,1101,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":161,"ty":4,"nm":"Shape Layer 709","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[869,1101,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":227,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":257,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":287,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":317,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":347,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":377,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":407,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":162,"ty":4,"nm":"Shape Layer 710","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[883,1101,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":199,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":229,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":259,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":289,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":319,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":349,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":379,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":163,"ty":4,"nm":"Shape Layer 711","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[897,1101,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":164,"ty":4,"nm":"Shape Layer 712","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[911,1101,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":165,"ty":4,"nm":"Shape Layer 713","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[925,1101,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":166,"ty":4,"nm":"Shape Layer 714","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[939,1101,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":167,"ty":4,"nm":"Shape Layer 715","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[953,1101,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":75,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":105,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":135,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":165,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":195,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":225,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":255,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":168,"ty":4,"nm":"Shape Layer 700","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[967,1101,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":39,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":69,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":99,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":129,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":159,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":189,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":219,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":169,"ty":4,"nm":"Shape Layer 686","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[750,1087,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":195,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":225,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":255,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":285,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":315,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":345,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":375,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":170,"ty":4,"nm":"Shape Layer 687","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[764,1087,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":85,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":115,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":145,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":175,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":205,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":235,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":265,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":171,"ty":4,"nm":"Shape Layer 688","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[778,1087,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":172,"ty":4,"nm":"Shape Layer 689","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[792,1087,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":173,"ty":4,"nm":"Shape Layer 690","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[806,1087,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":174,"ty":4,"nm":"Shape Layer 691","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[820,1087,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":175,"ty":4,"nm":"Shape Layer 692","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[834,1087,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":176,"ty":4,"nm":"Shape Layer 693","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[848,1087,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":177,"ty":4,"nm":"Shape Layer 694","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[862,1087,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":178,"ty":4,"nm":"Shape Layer 695","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[876,1087,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":179,"ty":4,"nm":"Shape Layer 696","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[890,1087,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":180,"ty":4,"nm":"Shape Layer 697","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[904,1087,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":181,"ty":4,"nm":"Shape Layer 698","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[918,1087,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":182,"ty":4,"nm":"Shape Layer 699","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[932,1087,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":183,"ty":4,"nm":"Shape Layer 685","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[946,1087,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":184,"ty":4,"nm":"Shape Layer 672","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[743,1073,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":185,"ty":4,"nm":"Shape Layer 673","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[757,1073,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":186,"ty":4,"nm":"Shape Layer 674","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[771,1073,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":187,"ty":4,"nm":"Shape Layer 675","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[785,1073,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":188,"ty":4,"nm":"Shape Layer 676","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[799,1073,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":189,"ty":4,"nm":"Shape Layer 677","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[813,1073,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":190,"ty":4,"nm":"Shape Layer 678","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[827,1073,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":191,"ty":4,"nm":"Shape Layer 679","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[841,1073,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":192,"ty":4,"nm":"Shape Layer 680","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[855,1073,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":193,"ty":4,"nm":"Shape Layer 681","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[869,1073,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":194,"ty":4,"nm":"Shape Layer 682","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[883,1073,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":195,"ty":4,"nm":"Shape Layer 683","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[897,1073,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":196,"ty":4,"nm":"Shape Layer 684","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[911,1073,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":197,"ty":4,"nm":"Shape Layer 671","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[925,1073,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":198,"ty":4,"nm":"Shape Layer 660","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[736,1059,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":199,"ty":4,"nm":"Shape Layer 661","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[750,1059,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":200,"ty":4,"nm":"Shape Layer 662","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[764,1059,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":201,"ty":4,"nm":"Shape Layer 663","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[778,1059,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":202,"ty":4,"nm":"Shape Layer 664","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[791,1059,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":203,"ty":4,"nm":"Shape Layer 665","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[805,1059,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":204,"ty":4,"nm":"Shape Layer 666","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[819,1059,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":205,"ty":4,"nm":"Shape Layer 667","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[833,1059,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":206,"ty":4,"nm":"Shape Layer 668","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[847,1059,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":207,"ty":4,"nm":"Shape Layer 669","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[861,1059,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":208,"ty":4,"nm":"Shape Layer 670","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[875,1059,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":209,"ty":4,"nm":"Shape Layer 659","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[889,1059,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":210,"ty":4,"nm":"Shape Layer 650","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[743,1045,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":211,"ty":4,"nm":"Shape Layer 651","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[757,1045,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":212,"ty":4,"nm":"Shape Layer 652","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[771,1045,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":213,"ty":4,"nm":"Shape Layer 653","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[785,1045,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":214,"ty":4,"nm":"Shape Layer 654","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[799,1045,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":215,"ty":4,"nm":"Shape Layer 655","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[813,1045,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":216,"ty":4,"nm":"Shape Layer 656","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[827,1045,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":210,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":240,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":270,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":300,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":330,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":360,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":390,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":217,"ty":4,"nm":"Shape Layer 657","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[841,1045,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":156,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":186,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":216,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":246,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":276,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":306,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":336,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":218,"ty":4,"nm":"Shape Layer 658","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[855,1045,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":234,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":264,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":294,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":324,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":354,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":384,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":414,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":219,"ty":4,"nm":"Shape Layer 649","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[869,1045,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":85,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":115,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":145,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":175,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":205,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":235,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":265,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":220,"ty":4,"nm":"Shape Layer 641","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[750,1031,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":235,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":265,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":295,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":325,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":355,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":385,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":415,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":221,"ty":4,"nm":"Shape Layer 642","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[764,1031,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":222,"ty":4,"nm":"Shape Layer 643","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[778,1031,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":223,"ty":4,"nm":"Shape Layer 644","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[792,1031,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":224,"ty":4,"nm":"Shape Layer 645","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[806,1031,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":225,"ty":4,"nm":"Shape Layer 646","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[820,1031,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":226,"ty":4,"nm":"Shape Layer 647","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[834,1031,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":227,"ty":4,"nm":"Shape Layer 648","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[848,1031,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":228,"ty":4,"nm":"Shape Layer 640","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[862,1031,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":229,"ty":4,"nm":"Shape Layer 633","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[757,1017,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":230,"ty":4,"nm":"Shape Layer 634","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[771,1017,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":179,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":209,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":239,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":269,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":299,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":329,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":359,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":231,"ty":4,"nm":"Shape Layer 635","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[785,1017,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":80,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":110,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":140,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":170,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":200,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":230,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":260,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":232,"ty":4,"nm":"Shape Layer 636","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[799,1017,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":115,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":145,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":175,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":205,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":235,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":265,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":295,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":233,"ty":4,"nm":"Shape Layer 637","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[813,1017,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":234,"ty":4,"nm":"Shape Layer 638","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[827,1017,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":235,"ty":4,"nm":"Shape Layer 639","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[841,1017,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":236,"ty":4,"nm":"Shape Layer 632","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[855,1017,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":237,"ty":4,"nm":"Shape Layer 626","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[764,1003,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":238,"ty":4,"nm":"Shape Layer 627","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[778,1003,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":239,"ty":4,"nm":"Shape Layer 628","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[792,1003,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":240,"ty":4,"nm":"Shape Layer 629","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[806,1003,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":241,"ty":4,"nm":"Shape Layer 630","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[820,1003,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":242,"ty":4,"nm":"Shape Layer 631","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[834,1003,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":243,"ty":4,"nm":"Shape Layer 625","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[848,1003,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":244,"ty":4,"nm":"Shape Layer 621","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[771,989,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":245,"ty":4,"nm":"Shape Layer 622","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[785,989,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":246,"ty":4,"nm":"Shape Layer 623","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[799,989,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":247,"ty":4,"nm":"Shape Layer 624","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[813,989,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":248,"ty":4,"nm":"Shape Layer 617","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[827,989,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0}]},{"id":"comp_5","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 616","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[715,989,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 615","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[722,975,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 614","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[708,975,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Shape Layer 612","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[701,961,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Shape Layer 613","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[715,961,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Shape Layer 611","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[729,961,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Shape Layer 610","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[687,961,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"Shape Layer 606","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[694,947,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"Shape Layer 607","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[680,947,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"Shape Layer 608","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[666,947,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"Shape Layer 609","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[652,947,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"Shape Layer 605","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[638,947,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"Shape Layer 600","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[701,933,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"Shape Layer 601","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[687,933,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":"Shape Layer 602","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[673,933,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":"Shape Layer 603","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[659,933,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":17,"ty":4,"nm":"Shape Layer 604","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[645,933,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":18,"ty":4,"nm":"Shape Layer 599","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[631,933,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":19,"ty":4,"nm":"Shape Layer 598","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[736,919,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":20,"ty":4,"nm":"Shape Layer 597","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[722,919,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":21,"ty":4,"nm":"Shape Layer 591","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[638,919,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":22,"ty":4,"nm":"Shape Layer 590","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[624,919,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":23,"ty":4,"nm":"Shape Layer 587","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[645,905,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":24,"ty":4,"nm":"Shape Layer 588","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[631,905,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":25,"ty":4,"nm":"Shape Layer 589","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[617,905,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":26,"ty":4,"nm":"Shape Layer 586","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[603,905,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":27,"ty":4,"nm":"Shape Layer 583","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[638,891,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":28,"ty":4,"nm":"Shape Layer 584","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[624,891,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":29,"ty":4,"nm":"Shape Layer 585","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[610,891,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":30,"ty":4,"nm":"Shape Layer 582","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[596,891,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":31,"ty":4,"nm":"Shape Layer 579","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[631,877,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":32,"ty":4,"nm":"Shape Layer 580","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[617,877,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":33,"ty":4,"nm":"Shape Layer 581","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[603,877,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":34,"ty":4,"nm":"Shape Layer 578","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[589,877,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":35,"ty":4,"nm":"Shape Layer 572","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[680,863,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":36,"ty":4,"nm":"Shape Layer 573","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[652,863,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":37,"ty":4,"nm":"Shape Layer 574","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[638,863,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":38,"ty":4,"nm":"Shape Layer 575","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[624,863,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":39,"ty":4,"nm":"Shape Layer 576","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[610,863,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":40,"ty":4,"nm":"Shape Layer 577","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[596,863,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":41,"ty":4,"nm":"Shape Layer 571","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[582,863,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":42,"ty":4,"nm":"Shape Layer 570","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[736,863,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":43,"ty":4,"nm":"Shape Layer 558","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[729,849,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":44,"ty":4,"nm":"Shape Layer 559","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[715,849,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":45,"ty":4,"nm":"Shape Layer 560","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[701,849,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":46,"ty":4,"nm":"Shape Layer 561","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[687,849,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":47,"ty":4,"nm":"Shape Layer 562","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[673,849,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":48,"ty":4,"nm":"Shape Layer 563","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[659,849,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":49,"ty":4,"nm":"Shape Layer 564","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[645,849,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":50,"ty":4,"nm":"Shape Layer 565","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[631,849,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":51,"ty":4,"nm":"Shape Layer 566","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[617,849,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":52,"ty":4,"nm":"Shape Layer 567","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[603,849,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":53,"ty":4,"nm":"Shape Layer 568","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[589,849,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":54,"ty":4,"nm":"Shape Layer 569","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[575,849,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":55,"ty":4,"nm":"Shape Layer 557","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[561,849,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":56,"ty":4,"nm":"Shape Layer 544","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[736,835,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":57,"ty":4,"nm":"Shape Layer 545","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[722,835,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":58,"ty":4,"nm":"Shape Layer 546","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[708,835,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":59,"ty":4,"nm":"Shape Layer 547","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[694,835,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":60,"ty":4,"nm":"Shape Layer 548","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[680,835,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":61,"ty":4,"nm":"Shape Layer 549","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[665,835,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":62,"ty":4,"nm":"Shape Layer 550","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[651,835,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":63,"ty":4,"nm":"Shape Layer 551","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[637,835,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":64,"ty":4,"nm":"Shape Layer 552","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[623,835,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":65,"ty":4,"nm":"Shape Layer 553","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[609,835,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":66,"ty":4,"nm":"Shape Layer 554","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[595,835,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":67,"ty":4,"nm":"Shape Layer 555","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[581,835,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":68,"ty":4,"nm":"Shape Layer 556","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[567,835,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":69,"ty":4,"nm":"Shape Layer 543","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[553,835,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":70,"ty":4,"nm":"Shape Layer 529","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[743,821,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":71,"ty":4,"nm":"Shape Layer 530","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[729,821,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":72,"ty":4,"nm":"Shape Layer 531","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[715,821,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":73,"ty":4,"nm":"Shape Layer 532","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[700,821,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":74,"ty":4,"nm":"Shape Layer 533","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[686,821,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":75,"ty":4,"nm":"Shape Layer 534","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[672,821,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":76,"ty":4,"nm":"Shape Layer 535","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[658,821,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":77,"ty":4,"nm":"Shape Layer 536","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[644,821,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":78,"ty":4,"nm":"Shape Layer 537","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[630,821,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":79,"ty":4,"nm":"Shape Layer 538","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[616,821,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":80,"ty":4,"nm":"Shape Layer 539","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[602,821,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":81,"ty":4,"nm":"Shape Layer 540","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[588,821,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":82,"ty":4,"nm":"Shape Layer 541","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[574,821,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":83,"ty":4,"nm":"Shape Layer 542","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[560,821,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":84,"ty":4,"nm":"Shape Layer 528","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[546,821,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":85,"ty":4,"nm":"Shape Layer 512","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[750,807,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":86,"ty":4,"nm":"Shape Layer 513","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[736,807,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":87,"ty":4,"nm":"Shape Layer 514","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[722,807,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":88,"ty":4,"nm":"Shape Layer 515","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[708,807,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":89,"ty":4,"nm":"Shape Layer 516","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[694,807,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":90,"ty":4,"nm":"Shape Layer 517","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[680,807,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":91,"ty":4,"nm":"Shape Layer 518","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[666,807,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":92,"ty":4,"nm":"Shape Layer 519","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[652,807,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":93,"ty":4,"nm":"Shape Layer 520","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[638,807,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":94,"ty":4,"nm":"Shape Layer 521","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[624,807,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":95,"ty":4,"nm":"Shape Layer 522","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[610,807,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":96,"ty":4,"nm":"Shape Layer 523","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[596,807,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":97,"ty":4,"nm":"Shape Layer 524","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[582,807,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":98,"ty":4,"nm":"Shape Layer 525","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[568,807,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":99,"ty":4,"nm":"Shape Layer 526","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[554,807,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":100,"ty":4,"nm":"Shape Layer 527","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[540,807,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":101,"ty":4,"nm":"Shape Layer 511","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[526,807,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":102,"ty":4,"nm":"Shape Layer 491","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[785,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":103,"ty":4,"nm":"Shape Layer 492","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[771,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":104,"ty":4,"nm":"Shape Layer 493","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[757,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":105,"ty":4,"nm":"Shape Layer 494","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[743,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":106,"ty":4,"nm":"Shape Layer 495","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[729,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":107,"ty":4,"nm":"Shape Layer 496","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[715,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":108,"ty":4,"nm":"Shape Layer 497","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[701,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":109,"ty":4,"nm":"Shape Layer 498","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[687,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":110,"ty":4,"nm":"Shape Layer 499","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[673,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":111,"ty":4,"nm":"Shape Layer 500","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[659,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":112,"ty":4,"nm":"Shape Layer 502","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[645,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":113,"ty":4,"nm":"Shape Layer 503","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[631,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":114,"ty":4,"nm":"Shape Layer 504","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[617,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":115,"ty":4,"nm":"Shape Layer 505","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[603,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":116,"ty":4,"nm":"Shape Layer 506","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[589,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":117,"ty":4,"nm":"Shape Layer 507","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[575,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":118,"ty":4,"nm":"Shape Layer 508","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[561,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":119,"ty":4,"nm":"Shape Layer 509","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[547,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":120,"ty":4,"nm":"Shape Layer 510","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[533,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":121,"ty":4,"nm":"Shape Layer 501","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[519,793,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":122,"ty":4,"nm":"Shape Layer 470","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[792,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":123,"ty":4,"nm":"Shape Layer 471","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[778,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":124,"ty":4,"nm":"Shape Layer 472","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[764,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":125,"ty":4,"nm":"Shape Layer 473","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[750,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":96,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":126,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":156,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":186,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":216,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":246,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":276,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":126,"ty":4,"nm":"Shape Layer 474","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[736,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":136,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":166,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":196,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":226,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":256,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":286,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":316,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":127,"ty":4,"nm":"Shape Layer 475","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[722,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":37,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":67,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":97,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":127,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":157,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":187,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":217,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":128,"ty":4,"nm":"Shape Layer 476","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[708,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":129,"ty":4,"nm":"Shape Layer 477","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[694,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":130,"ty":4,"nm":"Shape Layer 478","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[680,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":131,"ty":4,"nm":"Shape Layer 479","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[666,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":108,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":138,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":168,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":198,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":228,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":258,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":288,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":132,"ty":4,"nm":"Shape Layer 480","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[652,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":89,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":119,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":149,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":179,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":209,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":239,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":269,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":133,"ty":4,"nm":"Shape Layer 481","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[638,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":134,"ty":4,"nm":"Shape Layer 482","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[624,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":135,"ty":4,"nm":"Shape Layer 483","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[610,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":136,"ty":4,"nm":"Shape Layer 484","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[596,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":137,"ty":4,"nm":"Shape Layer 485","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[582,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":138,"ty":4,"nm":"Shape Layer 486","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[568,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":139,"ty":4,"nm":"Shape Layer 487","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[554,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":140,"ty":4,"nm":"Shape Layer 488","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[540,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":141,"ty":4,"nm":"Shape Layer 489","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[526,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":142,"ty":4,"nm":"Shape Layer 469","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[512,779,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":143,"ty":4,"nm":"Shape Layer 447","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[799,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":144,"ty":4,"nm":"Shape Layer 448","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[785,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":145,"ty":4,"nm":"Shape Layer 449","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[771,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":146,"ty":4,"nm":"Shape Layer 450","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[757,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":147,"ty":4,"nm":"Shape Layer 451","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[743,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":148,"ty":4,"nm":"Shape Layer 452","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[729,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":149,"ty":4,"nm":"Shape Layer 453","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[715,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":150,"ty":4,"nm":"Shape Layer 454","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[701,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":73,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":103,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":133,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":163,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":193,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":223,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":253,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":151,"ty":4,"nm":"Shape Layer 455","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[687,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":204,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":234,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":264,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":294,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":324,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":354,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":384,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":152,"ty":4,"nm":"Shape Layer 456","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[673,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":102,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":132,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":162,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":192,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":222,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":252,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":282,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":153,"ty":4,"nm":"Shape Layer 457","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[659,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":239,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":269,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":299,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":329,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":359,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":389,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":419,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":154,"ty":4,"nm":"Shape Layer 458","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[645,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":155,"ty":4,"nm":"Shape Layer 459","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[631,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":156,"ty":4,"nm":"Shape Layer 460","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[617,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":157,"ty":4,"nm":"Shape Layer 461","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[603,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":158,"ty":4,"nm":"Shape Layer 463","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[589,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":159,"ty":4,"nm":"Shape Layer 464","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[575,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":83,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":113,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":143,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":173,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":203,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":233,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":263,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":160,"ty":4,"nm":"Shape Layer 465","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[561,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":184,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":214,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":244,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":274,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":304,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":334,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":364,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":161,"ty":4,"nm":"Shape Layer 466","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[547,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":56,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":86,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":116,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":146,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":176,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":206,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":236,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":162,"ty":4,"nm":"Shape Layer 467","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[533,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":163,"ty":4,"nm":"Shape Layer 468","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[519,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":164,"ty":4,"nm":"Shape Layer 462","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[505,765,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":165,"ty":4,"nm":"Shape Layer 425","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[792,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":166,"ty":4,"nm":"Shape Layer 426","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[778,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":167,"ty":4,"nm":"Shape Layer 427","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[764,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":168,"ty":4,"nm":"Shape Layer 428","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[750,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":169,"ty":4,"nm":"Shape Layer 429","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[736,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":170,"ty":4,"nm":"Shape Layer 430","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[722,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":171,"ty":4,"nm":"Shape Layer 431","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[708,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":110,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":140,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":170,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":200,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":230,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":260,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":290,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":172,"ty":4,"nm":"Shape Layer 432","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[694,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":239,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":269,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":299,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":329,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":359,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":389,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":419,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":173,"ty":4,"nm":"Shape Layer 433","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[680,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":73,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":103,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":133,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":163,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":193,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":223,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":253,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":174,"ty":4,"nm":"Shape Layer 434","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[666,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":175,"ty":4,"nm":"Shape Layer 435","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[652,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":176,"ty":4,"nm":"Shape Layer 436","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[638,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":177,"ty":4,"nm":"Shape Layer 437","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[624,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":178,"ty":4,"nm":"Shape Layer 438","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[609,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":179,"ty":4,"nm":"Shape Layer 439","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[595,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":180,"ty":4,"nm":"Shape Layer 440","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[581,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":181,"ty":4,"nm":"Shape Layer 441","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[567,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":182,"ty":4,"nm":"Shape Layer 442","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[553,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":183,"ty":4,"nm":"Shape Layer 443","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[539,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":184,"ty":4,"nm":"Shape Layer 444","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[525,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":64,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":94,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":124,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":154,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":184,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":214,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":244,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":185,"ty":4,"nm":"Shape Layer 445","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[511,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":105,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":135,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":165,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":195,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":225,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":255,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":285,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":186,"ty":4,"nm":"Shape Layer 424","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[497,751,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":119,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":149,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":179,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":209,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":239,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":269,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":299,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":187,"ty":4,"nm":"Shape Layer 402","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[799,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":188,"ty":4,"nm":"Shape Layer 403","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[785,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":189,"ty":4,"nm":"Shape Layer 404","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[771,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":190,"ty":4,"nm":"Shape Layer 405","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[757,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":191,"ty":4,"nm":"Shape Layer 406","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[743,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":192,"ty":4,"nm":"Shape Layer 409","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[715,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":193,"ty":4,"nm":"Shape Layer 410","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[701,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":194,"ty":4,"nm":"Shape Layer 411","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[687,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":195,"ty":4,"nm":"Shape Layer 412","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[673,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":196,"ty":4,"nm":"Shape Layer 413","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[659,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":41,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":71,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":101,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":131,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":161,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":191,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":221,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":197,"ty":4,"nm":"Shape Layer 414","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[645,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":97,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":127,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":157,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":187,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":217,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":247,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":277,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":1,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":198,"ty":4,"nm":"Shape Layer 415","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[631,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":121,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":151,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":181,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":211,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":241,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":271,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":301,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":199,"ty":4,"nm":"Shape Layer 416","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[617,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":200,"ty":4,"nm":"Shape Layer 417","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[603,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":201,"ty":4,"nm":"Shape Layer 418","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[589.25,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":202,"ty":4,"nm":"Shape Layer 419","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[575.25,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":203,"ty":4,"nm":"Shape Layer 420","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[561.25,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":204,"ty":4,"nm":"Shape Layer 421","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[547.25,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":205,"ty":4,"nm":"Shape Layer 422","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[533.25,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":206,"ty":4,"nm":"Shape Layer 423","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[519.25,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":207,"ty":4,"nm":"Shape Layer 408","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[505.25,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":208,"ty":4,"nm":"Shape Layer 407","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[729,737,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":209,"ty":4,"nm":"Shape Layer 377","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[834,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":210,"ty":4,"nm":"Shape Layer 378","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[820,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":211,"ty":4,"nm":"Shape Layer 379","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[806,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":212,"ty":4,"nm":"Shape Layer 380","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[792,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":213,"ty":4,"nm":"Shape Layer 381","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[778,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":214,"ty":4,"nm":"Shape Layer 382","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[763,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":215,"ty":4,"nm":"Shape Layer 383","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[749,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":216,"ty":4,"nm":"Shape Layer 384","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[735,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":217,"ty":4,"nm":"Shape Layer 385","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[721,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":218,"ty":4,"nm":"Shape Layer 386","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[707,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":219,"ty":4,"nm":"Shape Layer 387","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[693,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":220,"ty":4,"nm":"Shape Layer 388","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[679,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":221,"ty":4,"nm":"Shape Layer 389","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[665,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":222,"ty":4,"nm":"Shape Layer 390","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[651,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":223,"ty":4,"nm":"Shape Layer 391","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[637,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":224,"ty":4,"nm":"Shape Layer 392","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[623,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":225,"ty":4,"nm":"Shape Layer 393","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[609,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":226,"ty":4,"nm":"Shape Layer 394","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[595,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":227,"ty":4,"nm":"Shape Layer 395","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[581,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":228,"ty":4,"nm":"Shape Layer 396","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[567,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":229,"ty":4,"nm":"Shape Layer 397","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[553,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":230,"ty":4,"nm":"Shape Layer 398","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[539,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":231,"ty":4,"nm":"Shape Layer 399","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[525,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":232,"ty":4,"nm":"Shape Layer 400","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[511,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":233,"ty":4,"nm":"Shape Layer 376","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[497,723,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":234,"ty":4,"nm":"Shape Layer 361","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[700,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":235,"ty":4,"nm":"Shape Layer 360","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[686,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":236,"ty":4,"nm":"Shape Layer 362","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[672,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":178,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":208,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":238,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":268,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":298,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":328,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":358,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":237,"ty":4,"nm":"Shape Layer 363","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[658,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":139,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":169,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":199,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":229,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":259,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":289,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":319,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":238,"ty":4,"nm":"Shape Layer 364","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[644,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":239,"ty":4,"nm":"Shape Layer 365","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[630,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":240,"ty":4,"nm":"Shape Layer 366","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[616,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":241,"ty":4,"nm":"Shape Layer 367","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[602,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":217,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":247,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":277,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":307,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":337,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":367,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":397,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":242,"ty":4,"nm":"Shape Layer 368","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[588,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":80,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":110,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":140,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":170,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":200,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":230,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":260,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":243,"ty":4,"nm":"Shape Layer 369","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[574,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":244,"ty":4,"nm":"Shape Layer 370","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[560,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":245,"ty":4,"nm":"Shape Layer 371","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[546,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":246,"ty":4,"nm":"Shape Layer 372","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[532,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":247,"ty":4,"nm":"Shape Layer 373","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[518,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":248,"ty":4,"nm":"Shape Layer 374","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[504,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":249,"ty":4,"nm":"Shape Layer 375","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[490,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":250,"ty":4,"nm":"Shape Layer 359","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[476,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":251,"ty":4,"nm":"Shape Layer 354","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[827,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":252,"ty":4,"nm":"Shape Layer 355","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[813,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":60,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":90,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":120,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":150,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":180,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":210,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":240,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":253,"ty":4,"nm":"Shape Layer 356","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[798,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":32,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":62,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":92,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":122,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":152,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":182,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":212,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":254,"ty":4,"nm":"Shape Layer 357","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[784,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":255,"ty":4,"nm":"Shape Layer 358","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[770,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":256,"ty":4,"nm":"Shape Layer 353","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[756,709,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":257,"ty":4,"nm":"Shape Layer 339","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[665,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":258,"ty":4,"nm":"Shape Layer 340","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[651,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":259,"ty":4,"nm":"Shape Layer 341","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[637,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":260,"ty":4,"nm":"Shape Layer 342","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[623,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":261,"ty":4,"nm":"Shape Layer 343","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[609,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":262,"ty":4,"nm":"Shape Layer 344","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[595,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":263,"ty":4,"nm":"Shape Layer 345","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[581,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":264,"ty":4,"nm":"Shape Layer 346","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[567,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":265,"ty":4,"nm":"Shape Layer 347","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[553,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":266,"ty":4,"nm":"Shape Layer 348","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[539,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":267,"ty":4,"nm":"Shape Layer 349","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[525,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":268,"ty":4,"nm":"Shape Layer 350","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[511,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":269,"ty":4,"nm":"Shape Layer 351","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[497,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":270,"ty":4,"nm":"Shape Layer 352","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[483,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":271,"ty":4,"nm":"Shape Layer 338","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[469,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":272,"ty":4,"nm":"Shape Layer 334","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[820,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":273,"ty":4,"nm":"Shape Layer 336","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[792,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":274,"ty":4,"nm":"Shape Layer 337","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[778,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":275,"ty":4,"nm":"Shape Layer 333","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[764,695,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":276,"ty":4,"nm":"Shape Layer 319","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[658,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":277,"ty":4,"nm":"Shape Layer 320","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[644,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":278,"ty":4,"nm":"Shape Layer 321","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[629,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":279,"ty":4,"nm":"Shape Layer 322","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[615,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":280,"ty":4,"nm":"Shape Layer 323","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[601,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":281,"ty":4,"nm":"Shape Layer 324","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[587,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":282,"ty":4,"nm":"Shape Layer 325","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[573,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":283,"ty":4,"nm":"Shape Layer 326","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[559,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":284,"ty":4,"nm":"Shape Layer 327","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[545,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":285,"ty":4,"nm":"Shape Layer 328","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[531,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":286,"ty":4,"nm":"Shape Layer 329","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[517,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":287,"ty":4,"nm":"Shape Layer 330","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[503,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":288,"ty":4,"nm":"Shape Layer 331","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[489,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":289,"ty":4,"nm":"Shape Layer 332","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[475,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":290,"ty":4,"nm":"Shape Layer 318","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[461,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":291,"ty":4,"nm":"Shape Layer 316","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[827,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":292,"ty":4,"nm":"Shape Layer 314","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[799,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":293,"ty":4,"nm":"Shape Layer 317","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[771,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":294,"ty":4,"nm":"Shape Layer 313","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[785,681,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":295,"ty":4,"nm":"Shape Layer 288","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[665,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":296,"ty":4,"nm":"Shape Layer 289","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[651,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":297,"ty":4,"nm":"Shape Layer 290","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[637,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":298,"ty":4,"nm":"Shape Layer 291","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[623,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":299,"ty":4,"nm":"Shape Layer 292","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[609,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":300,"ty":4,"nm":"Shape Layer 293","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[595,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":301,"ty":4,"nm":"Shape Layer 294","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[581,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":302,"ty":4,"nm":"Shape Layer 295","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[567,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":303,"ty":4,"nm":"Shape Layer 296","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[553,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":304,"ty":4,"nm":"Shape Layer 297","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[539,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":305,"ty":4,"nm":"Shape Layer 298","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[525,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":75,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":105,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":135,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":165,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":195,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":225,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":255,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":306,"ty":4,"nm":"Shape Layer 299","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[511,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":157,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":187,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":217,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":247,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":277,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":307,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":337,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":307,"ty":4,"nm":"Shape Layer 300","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[497,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":308,"ty":4,"nm":"Shape Layer 301","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[483,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":309,"ty":4,"nm":"Shape Layer 302","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[469,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":310,"ty":4,"nm":"Shape Layer 303","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[455,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":311,"ty":4,"nm":"Shape Layer 304","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[441,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":312,"ty":4,"nm":"Shape Layer 305","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[427,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":313,"ty":4,"nm":"Shape Layer 306","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[413,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":314,"ty":4,"nm":"Shape Layer 307","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[399,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":315,"ty":4,"nm":"Shape Layer 308","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[371,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":316,"ty":4,"nm":"Shape Layer 309","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[357,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":317,"ty":4,"nm":"Shape Layer 310","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[343,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":318,"ty":4,"nm":"Shape Layer 311","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[329,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":319,"ty":4,"nm":"Shape Layer 312","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[315,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":320,"ty":4,"nm":"Shape Layer 287","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[301,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":321,"ty":4,"nm":"Shape Layer 286","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[778,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":322,"ty":4,"nm":"Shape Layer 285","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[764,667,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":323,"ty":4,"nm":"Shape Layer 250","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[799,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":324,"ty":4,"nm":"Shape Layer 251","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[785,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":325,"ty":4,"nm":"Shape Layer 254","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[742,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":326,"ty":4,"nm":"Shape Layer 259","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[672,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":327,"ty":4,"nm":"Shape Layer 260","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[658,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":176,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":206,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":236,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":266,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":296,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":326,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":356,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":328,"ty":4,"nm":"Shape Layer 261","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[644,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":77,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":107,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":137,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":167,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":197,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":227,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":257,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":329,"ty":4,"nm":"Shape Layer 262","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[630,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":157,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":187,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":217,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":247,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":277,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":307,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":337,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":330,"ty":4,"nm":"Shape Layer 263","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[616,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":131,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":161,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":191,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":221,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":251,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":281,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":311,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":331,"ty":4,"nm":"Shape Layer 264","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[602,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":332,"ty":4,"nm":"Shape Layer 265","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[588,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":333,"ty":4,"nm":"Shape Layer 266","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[574,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":334,"ty":4,"nm":"Shape Layer 267","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[560,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":335,"ty":4,"nm":"Shape Layer 268","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[546,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":336,"ty":4,"nm":"Shape Layer 269","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[532,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":337,"ty":4,"nm":"Shape Layer 270","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[518,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":338,"ty":4,"nm":"Shape Layer 271","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[504,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":339,"ty":4,"nm":"Shape Layer 272","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[490,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":340,"ty":4,"nm":"Shape Layer 273","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[476,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":341,"ty":4,"nm":"Shape Layer 274","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[462,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":342,"ty":4,"nm":"Shape Layer 275","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[448,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":343,"ty":4,"nm":"Shape Layer 276","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[434,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":344,"ty":4,"nm":"Shape Layer 277","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[419,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":345,"ty":4,"nm":"Shape Layer 278","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[405,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":104,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":134,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":164,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":194,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":224,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":254,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":284,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":346,"ty":4,"nm":"Shape Layer 280","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[391,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":95,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":125,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":155,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":185,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":215,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":245,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":275,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":347,"ty":4,"nm":"Shape Layer 281","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[377,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":183,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":213,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":243,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":273,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":303,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":333,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":363,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":348,"ty":4,"nm":"Shape Layer 282","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[363,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":37,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":67,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":97,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":127,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":157,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":187,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":217,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":349,"ty":4,"nm":"Shape Layer 283","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[349,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":350,"ty":4,"nm":"Shape Layer 284","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[335,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":351,"ty":4,"nm":"Shape Layer 279","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[321,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":352,"ty":4,"nm":"Shape Layer 217","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[806,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":353,"ty":4,"nm":"Shape Layer 218","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[792,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":354,"ty":4,"nm":"Shape Layer 219","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[778,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":355,"ty":4,"nm":"Shape Layer 220","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[764,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":356,"ty":4,"nm":"Shape Layer 221","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[708,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":357,"ty":4,"nm":"Shape Layer 222","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[694,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":358,"ty":4,"nm":"Shape Layer 223","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[680,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":359,"ty":4,"nm":"Shape Layer 224","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[666,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":360,"ty":4,"nm":"Shape Layer 225","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[652,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":181,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":211,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":241,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":271,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":301,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":331,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":361,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":361,"ty":4,"nm":"Shape Layer 226","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[638,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":217,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":246,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":276,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":306,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":336,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":366,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":396,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":362,"ty":4,"nm":"Shape Layer 227","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[624,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":363,"ty":4,"nm":"Shape Layer 228","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[610,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":227,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":257,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":287,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":317,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":347,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":377,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":407,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":364,"ty":4,"nm":"Shape Layer 229","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[596,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":165,"s":[0.137254908681,0.137254908681,0.145098045468,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":195,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":225,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":255,"s":[0.156862750649,0.721568644047,0.415686279535,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":285,"s":[0.35686275363,0.921568632126,0.615686297417,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":315,"s":[0.678431391716,0.960784316063,0.807843148708,1]},{"t":345,"s":[0.137254908681,0.137254908681,0.145098045468,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":365,"ty":4,"nm":"Shape Layer 230","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[582,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":366,"ty":4,"nm":"Shape Layer 231","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[568,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":367,"ty":4,"nm":"Shape Layer 232","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[554,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":368,"ty":4,"nm":"Shape Layer 233","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[540,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":369,"ty":4,"nm":"Shape Layer 234","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[526,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":370,"ty":4,"nm":"Shape Layer 235","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[512,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":371,"ty":4,"nm":"Shape Layer 236","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[498,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":372,"ty":4,"nm":"Shape Layer 237","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[484,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":373,"ty":4,"nm":"Shape Layer 238","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[470,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":374,"ty":4,"nm":"Shape Layer 239","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[456,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":375,"ty":4,"nm":"Shape Layer 240","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[442,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":376,"ty":4,"nm":"Shape Layer 241","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[428,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":377,"ty":4,"nm":"Shape Layer 242","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[414,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":378,"ty":4,"nm":"Shape Layer 243","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":379,"ty":4,"nm":"Shape Layer 244","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[386,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":380,"ty":4,"nm":"Shape Layer 245","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[372,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":381,"ty":4,"nm":"Shape Layer 246","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[358,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":382,"ty":4,"nm":"Shape Layer 247","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[344,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":383,"ty":4,"nm":"Shape Layer 248","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[330,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":384,"ty":4,"nm":"Shape Layer 216","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[302,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":385,"ty":4,"nm":"Shape Layer 196","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[575,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":386,"ty":4,"nm":"Shape Layer 197","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[561,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":387,"ty":4,"nm":"Shape Layer 198","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[547,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":388,"ty":4,"nm":"Shape Layer 199","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[533,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":389,"ty":4,"nm":"Shape Layer 200","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[519,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":390,"ty":4,"nm":"Shape Layer 201","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[505,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":391,"ty":4,"nm":"Shape Layer 202","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[491,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":392,"ty":4,"nm":"Shape Layer 203","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[477,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":393,"ty":4,"nm":"Shape Layer 204","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[463,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":394,"ty":4,"nm":"Shape Layer 205","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[449,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":395,"ty":4,"nm":"Shape Layer 206","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[435,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":396,"ty":4,"nm":"Shape Layer 207","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[421,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":397,"ty":4,"nm":"Shape Layer 208","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[407,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":398,"ty":4,"nm":"Shape Layer 209","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[393,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":399,"ty":4,"nm":"Shape Layer 210","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[379,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":400,"ty":4,"nm":"Shape Layer 211","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[365,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":401,"ty":4,"nm":"Shape Layer 212","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[351,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":402,"ty":4,"nm":"Shape Layer 213","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[337,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":403,"ty":4,"nm":"Shape Layer 214","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[323,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":404,"ty":4,"nm":"Shape Layer 215","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[309,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":405,"ty":4,"nm":"Shape Layer 195","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[295,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":406,"ty":4,"nm":"Shape Layer 194","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[589,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":407,"ty":4,"nm":"Shape Layer 193","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[603,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":408,"ty":4,"nm":"Shape Layer 190","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[715,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":409,"ty":4,"nm":"Shape Layer 192","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[687,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":410,"ty":4,"nm":"Shape Layer 189","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[673,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":411,"ty":4,"nm":"Shape Layer 185","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[799,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":412,"ty":4,"nm":"Shape Layer 188","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[771,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":413,"ty":4,"nm":"Shape Layer 187","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[757,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":414,"ty":4,"nm":"Shape Layer 186","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[785,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":415,"ty":4,"nm":"Shape Layer 164","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[834,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":416,"ty":4,"nm":"Shape Layer 165","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[820,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":417,"ty":4,"nm":"Shape Layer 166","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[806,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":418,"ty":4,"nm":"Shape Layer 167","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[792,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":419,"ty":4,"nm":"Shape Layer 168","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[778,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":420,"ty":4,"nm":"Shape Layer 169","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[764,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":421,"ty":4,"nm":"Shape Layer 170","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[750,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":422,"ty":4,"nm":"Shape Layer 171","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[736,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":423,"ty":4,"nm":"Shape Layer 172","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[722,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":424,"ty":4,"nm":"Shape Layer 173","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[708,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":425,"ty":4,"nm":"Shape Layer 174","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[694,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":426,"ty":4,"nm":"Shape Layer 175","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[680,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":427,"ty":4,"nm":"Shape Layer 176","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[666,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":428,"ty":4,"nm":"Shape Layer 177","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[652,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":429,"ty":4,"nm":"Shape Layer 178","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[638,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":430,"ty":4,"nm":"Shape Layer 179","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[624,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":431,"ty":4,"nm":"Shape Layer 180","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[610,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":432,"ty":4,"nm":"Shape Layer 181","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[596,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":433,"ty":4,"nm":"Shape Layer 182","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[582,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":434,"ty":4,"nm":"Shape Layer 183","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[568,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":435,"ty":4,"nm":"Shape Layer 163","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[554,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":436,"ty":4,"nm":"Shape Layer 143","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[827,597,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":437,"ty":4,"nm":"Shape Layer 144","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[813,597,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":438,"ty":4,"nm":"Shape Layer 145","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[799,597,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":439,"ty":4,"nm":"Shape Layer 146","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[785,597,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":440,"ty":4,"nm":"Shape Layer 147","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[771,597,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":441,"ty":4,"nm":"Shape Layer 148","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[757,597,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":442,"ty":4,"nm":"Shape Layer 149","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[743,597,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":443,"ty":4,"nm":"Shape Layer 150","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[729,597,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":444,"ty":4,"nm":"Shape Layer 151","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[715,597,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":445,"ty":4,"nm":"Shape Layer 152","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[701,597,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":446,"ty":4,"nm":"Shape Layer 153","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[687,597,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":447,"ty":4,"nm":"Shape Layer 157","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[631,597,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":448,"ty":4,"nm":"Shape Layer 158","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[617,597,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":449,"ty":4,"nm":"Shape Layer 159","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[601,597,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":450,"ty":4,"nm":"Shape Layer 162","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[559,597,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":451,"ty":4,"nm":"Shape Layer 142","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[545,597,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":452,"ty":4,"nm":"Shape Layer 141","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[834,583,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":453,"ty":4,"nm":"Shape Layer 140","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[820,583,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":454,"ty":4,"nm":"Shape Layer 139","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[806,583,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":455,"ty":4,"nm":"Shape Layer 138","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[792,583,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":456,"ty":4,"nm":"Shape Layer 137","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[778,583,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":457,"ty":4,"nm":"Shape Layer 136","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[764,583,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":458,"ty":4,"nm":"Shape Layer 135","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[750,583,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":459,"ty":4,"nm":"Shape Layer 134","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[736,583,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":460,"ty":4,"nm":"Shape Layer 133","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[722,583,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":461,"ty":4,"nm":"Shape Layer 131","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[694,583,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":462,"ty":4,"nm":"Shape Layer 129","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[666,583,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":463,"ty":4,"nm":"Shape Layer 127","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[638,583,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":464,"ty":4,"nm":"Shape Layer 126","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[610,583,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":465,"ty":4,"nm":"Shape Layer 123","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[554,583,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":466,"ty":4,"nm":"Shape Layer 124","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[540,583,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":467,"ty":4,"nm":"Shape Layer 125","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[526,583,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":468,"ty":4,"nm":"Shape Layer 122","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[512,583,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":469,"ty":4,"nm":"Shape Layer 121","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[631,569,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":470,"ty":4,"nm":"Shape Layer 120","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[617,569,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":471,"ty":4,"nm":"Shape Layer 119","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[603,569,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":472,"ty":4,"nm":"Shape Layer 118","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[589,569,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":473,"ty":4,"nm":"Shape Layer 117","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[575,569,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":474,"ty":4,"nm":"Shape Layer 116","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[561,569,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0}]},{"id":"comp_6","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 115","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[937,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 114","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[923,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 113","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[909,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Shape Layer 112","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[895,653,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Shape Layer 111","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[944,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Shape Layer 110","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[930,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Shape Layer 109","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[916,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"Shape Layer 108","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[902,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"Shape Layer 107","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[888,639,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"Shape Layer 106","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[951,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"Shape Layer 105","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[937,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"Shape Layer 104","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[923,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"Shape Layer 103","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[909,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"Shape Layer 102","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[895,625,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":"Shape Layer 101","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1000,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":"Shape Layer 100","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[986,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":17,"ty":4,"nm":"Shape Layer 99","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[972,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":18,"ty":4,"nm":"Shape Layer 98","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[958,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":19,"ty":4,"nm":"Shape Layer 97","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[944,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":20,"ty":4,"nm":"Shape Layer 96","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[930,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":21,"ty":4,"nm":"Shape Layer 95","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[916,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":22,"ty":4,"nm":"Shape Layer 94","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[902,611,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":23,"ty":4,"nm":"Shape Layer 93","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1007,597,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":24,"ty":4,"nm":"Shape Layer 92","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[993,597,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":25,"ty":4,"nm":"Shape Layer 91","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[979,597,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":26,"ty":4,"nm":"Shape Layer 90","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[965,597,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":27,"ty":4,"nm":"Shape Layer 89","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[951,597,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":28,"ty":4,"nm":"Shape Layer 88","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[937,597,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":29,"ty":4,"nm":"Shape Layer 87","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[923,597,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":30,"ty":4,"nm":"Shape Layer 86","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[909,597,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":31,"ty":4,"nm":"Shape Layer 85","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[895,597,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":32,"ty":4,"nm":"Shape Layer 84","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[881,597,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":33,"ty":4,"nm":"Shape Layer 83","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1014,583,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":34,"ty":4,"nm":"Shape Layer 82","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1000,583,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":35,"ty":4,"nm":"Shape Layer 81","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[986,583,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":36,"ty":4,"nm":"Shape Layer 80","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[972,583,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":37,"ty":4,"nm":"Shape Layer 79","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[958,583,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":38,"ty":4,"nm":"Shape Layer 78","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[944,583,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":39,"ty":4,"nm":"Shape Layer 77","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[930,583,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":40,"ty":4,"nm":"Shape Layer 76","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[916,583,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":41,"ty":4,"nm":"Shape Layer 75","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[902,583,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":42,"ty":4,"nm":"Shape Layer 74","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[888,583,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":43,"ty":4,"nm":"Shape Layer 73","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[874,583,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":44,"ty":4,"nm":"Shape Layer 72","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1021,569,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":45,"ty":4,"nm":"Shape Layer 71","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1007,569,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":46,"ty":4,"nm":"Shape Layer 70","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[993,569,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":47,"ty":4,"nm":"Shape Layer 69","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[979,569,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":48,"ty":4,"nm":"Shape Layer 68","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[965,569,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":49,"ty":4,"nm":"Shape Layer 67","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[951,569,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":50,"ty":4,"nm":"Shape Layer 66","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[937,569,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":51,"ty":4,"nm":"Shape Layer 65","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[923,569,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":52,"ty":4,"nm":"Shape Layer 64","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[909,569,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":53,"ty":4,"nm":"Shape Layer 63","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[895,569,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":54,"ty":4,"nm":"Shape Layer 62","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[881,569,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":55,"ty":4,"nm":"Shape Layer 61","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[867,569,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":56,"ty":4,"nm":"Shape Layer 60","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1014,555,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":57,"ty":4,"nm":"Shape Layer 59","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1000,555,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":58,"ty":4,"nm":"Shape Layer 58","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[986,555,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":59,"ty":4,"nm":"Shape Layer 57","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[972,555,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":60,"ty":4,"nm":"Shape Layer 56","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[958,555,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":61,"ty":4,"nm":"Shape Layer 55","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[944,555,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":62,"ty":4,"nm":"Shape Layer 54","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[930,555,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":63,"ty":4,"nm":"Shape Layer 53","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[916,555,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":64,"ty":4,"nm":"Shape Layer 52","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[902,555,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":65,"ty":4,"nm":"Shape Layer 51","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[888,555,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":66,"ty":4,"nm":"Shape Layer 50","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[874,555,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":67,"ty":4,"nm":"Shape Layer 49","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[860,555,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":68,"ty":4,"nm":"Shape Layer 48","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[846,555,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":69,"ty":4,"nm":"Shape Layer 47","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[832,555,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":70,"ty":4,"nm":"Shape Layer 46","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[818,555,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":71,"ty":4,"nm":"Shape Layer 45","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1021,541,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":72,"ty":4,"nm":"Shape Layer 44","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1007,541,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":73,"ty":4,"nm":"Shape Layer 43","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[993,541,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":74,"ty":4,"nm":"Shape Layer 42","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[979,541,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":75,"ty":4,"nm":"Shape Layer 41","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[965,541,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":76,"ty":4,"nm":"Shape Layer 40","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[951,541,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":77,"ty":4,"nm":"Shape Layer 39","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[937,541,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":78,"ty":4,"nm":"Shape Layer 38","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[923,541,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":79,"ty":4,"nm":"Shape Layer 37","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[909,541,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":80,"ty":4,"nm":"Shape Layer 36","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[895,541,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":81,"ty":4,"nm":"Shape Layer 35","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[881,541,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":82,"ty":4,"nm":"Shape Layer 34","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[867,541,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":83,"ty":4,"nm":"Shape Layer 33","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[853,541,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":84,"ty":4,"nm":"Shape Layer 32","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[839,541,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":85,"ty":4,"nm":"Shape Layer 31","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[825,541,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":86,"ty":4,"nm":"Shape Layer 26","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1014,528,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":87,"ty":4,"nm":"Shape Layer 25","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1000,528,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":88,"ty":4,"nm":"Shape Layer 24","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[986,528,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":89,"ty":4,"nm":"Shape Layer 23","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[972,528,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":90,"ty":4,"nm":"Shape Layer 22","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[958,528,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":91,"ty":4,"nm":"Shape Layer 21","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[944,528,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":92,"ty":4,"nm":"Shape Layer 20","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[930,528,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":93,"ty":4,"nm":"Shape Layer 19","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[916,528,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":94,"ty":4,"nm":"Shape Layer 18","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[902,528,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":95,"ty":4,"nm":"Shape Layer 27","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[888,528,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":96,"ty":4,"nm":"Shape Layer 28","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[874,528,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":97,"ty":4,"nm":"Shape Layer 29","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[860,528,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":98,"ty":4,"nm":"Shape Layer 30","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[846,528,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":99,"ty":4,"nm":"Shape Layer 17","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[832,528,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":100,"ty":4,"nm":"Shape Layer 15","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1007,514,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":101,"ty":4,"nm":"Shape Layer 14","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[993,514,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":102,"ty":4,"nm":"Shape Layer 13","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[979,514,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":103,"ty":4,"nm":"Shape Layer 12","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[965,514,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":104,"ty":4,"nm":"Shape Layer 11","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[951,514,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":105,"ty":4,"nm":"Shape Layer 10","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[937,514,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":106,"ty":4,"nm":"Shape Layer 9","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[923,514,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":107,"ty":4,"nm":"Shape Layer 16","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[909,514,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":108,"ty":4,"nm":"Shape Layer 8","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[895,514,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":109,"ty":4,"nm":"Shape Layer 7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1000,500,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":110,"ty":4,"nm":"Shape Layer 6","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[986,500,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":111,"ty":4,"nm":"Shape Layer 5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[972,500,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":112,"ty":4,"nm":"Shape Layer 4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[958,500,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":113,"ty":4,"nm":"Shape Layer 3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[944,500,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":114,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[930,500,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":115,"ty":4,"nm":"Shape Layer 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[637.398,49.875,0],"ix":2},"a":{"a":0,"k":[-278.602,-450.125,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"sr","sy":2,"d":1,"pt":{"a":0,"k":6,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"or":{"a":0,"k":5.8,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254901961,0.137254901961,0.145098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-283.625,-450.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Polystar 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1350,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"Dot","refId":"comp_0","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":390,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":400,"s":[100]},{"t":410,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[550.625,116.5,0],"ix":2},"a":{"a":0,"k":[916,500,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1832,"h":1000,"ip":390,"op":410,"st":390,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"Dot","refId":"comp_0","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":320,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":330,"s":[100]},{"t":340,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[724.375,77.25,0],"ix":2},"a":{"a":0,"k":[916,500,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1832,"h":1000,"ip":320,"op":340,"st":320,"bm":0},{"ddd":0,"ind":3,"ty":0,"nm":"Dot","refId":"comp_0","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":250,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":260,"s":[100]},{"t":270,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1892.25,158.75,0],"ix":2},"a":{"a":0,"k":[916,500,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1832,"h":1000,"ip":250,"op":270,"st":250,"bm":0},{"ddd":0,"ind":4,"ty":0,"nm":"Dot","refId":"comp_0","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":180,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":190,"s":[100]},{"t":200,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1236.5,86,0],"ix":2},"a":{"a":0,"k":[916,500,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1832,"h":1000,"ip":180,"op":200,"st":180,"bm":0},{"ddd":0,"ind":5,"ty":0,"nm":"Dot","refId":"comp_0","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":110,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":120,"s":[100]},{"t":130,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1689,443,0],"ix":2},"a":{"a":0,"k":[916,500,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1832,"h":1000,"ip":110,"op":130,"st":110,"bm":0},{"ddd":0,"ind":6,"ty":0,"nm":"Dot","refId":"comp_0","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":40,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":50,"s":[100]},{"t":60,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[916,500,0],"ix":2},"a":{"a":0,"k":[916,500,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1832,"h":1000,"ip":40,"op":60,"st":40,"bm":0},{"ddd":0,"ind":7,"ty":2,"nm":"Avatar_2@2x.png","cl":"png","refId":"image_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1420,614,0],"ix":2},"a":{"a":0,"k":[40,40.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":2,"nm":"Avatar_6@2x.png","cl":"png","refId":"image_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1619,388,0],"ix":2},"a":{"a":0,"k":[40,40.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":2,"nm":"Avatar_5@2x.png","cl":"png","refId":"image_2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[900,285,0],"ix":2},"a":{"a":0,"k":[40,40.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":2,"nm":"Avatar_3@2x.png","cl":"png","refId":"image_3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[657,700,0],"ix":2},"a":{"a":0,"k":[40,40,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":2,"nm":"Avatar_4@2x.png","cl":"png","refId":"image_4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[396,250,0],"ix":2},"a":{"a":0,"k":[40,40,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":2,"nm":"Avatar_1@2x.png","cl":"png","refId":"image_5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[244,356,0],"ix":2},"a":{"a":0,"k":[40,40,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"Shape Layer 6","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[916,500,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[6,-112]],"o":[[0,0],[-6,112]],"v":[[-522,-252],[-674,-144]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gs","o":{"a":0,"k":100,"ix":9},"w":{"a":0,"k":2,"ix":10},"g":{"p":3,"k":{"a":0,"k":[0,0.604,0.322,1,0.375,0.745,0.31,1,0.751,0.886,0.298,1],"ix":8}},"s":{"a":0,"k":[0,0],"ix":4},"e":{"a":0,"k":[100,0],"ix":5},"t":1,"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":13},"bm":0,"nm":"Gradient Stroke 1","mn":"ADBE Vector Graphic - G-Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":370,"s":[0]},{"t":400,"s":[100]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":350,"s":[0]},{"t":380,"s":[100]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 2","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":350,"op":400,"st":350,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"Shape Layer 5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[916,500,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[462,446]],"o":[[0,0],[-462,-446]],"v":[[706,-112],[-518,-250]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gs","o":{"a":0,"k":100,"ix":9},"w":{"a":0,"k":2,"ix":10},"g":{"p":3,"k":{"a":0,"k":[0,0.604,0.322,1,0.375,0.745,0.31,1,0.751,0.886,0.298,1],"ix":8}},"s":{"a":0,"k":[0,0],"ix":4},"e":{"a":0,"k":[100,0],"ix":5},"t":1,"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":13},"bm":0,"nm":"Gradient Stroke 1","mn":"ADBE Vector Graphic - G-Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":300,"s":[0]},{"t":330,"s":[100]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":280,"s":[0]},{"t":310,"s":[100]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":280,"op":330,"st":280,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":"Shape Layer 4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[916,500,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-282,-276]],"o":[[0,0],[282,276]],"v":[[-16,-218],[706,-116]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gs","o":{"a":0,"k":100,"ix":9},"w":{"a":0,"k":2,"ix":10},"g":{"p":3,"k":{"a":0,"k":[0,0.604,0.322,1,0.375,0.745,0.31,1,0.751,0.886,0.298,1],"ix":8}},"s":{"a":0,"k":[0,0],"ix":4},"e":{"a":0,"k":[100,0],"ix":5},"t":1,"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":13},"bm":0,"nm":"Gradient Stroke 1","mn":"ADBE Vector Graphic - G-Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":230,"s":[0]},{"t":260,"s":[100]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":210,"s":[0]},{"t":240,"s":[100]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":210,"op":260,"st":210,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":"Shape Layer 3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[916,500,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[488,24]],"o":[[0,0],[-488,-24]],"v":[[506,116],[-16,-218]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gs","o":{"a":0,"k":100,"ix":9},"w":{"a":0,"k":2,"ix":10},"g":{"p":3,"k":{"a":0,"k":[0,0.604,0.322,1,0.375,0.745,0.31,1,0.751,0.886,0.298,1],"ix":8}},"s":{"a":0,"k":[0,0],"ix":4},"e":{"a":0,"k":[100,0],"ix":5},"t":1,"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":13},"bm":0,"nm":"Gradient Stroke 1","mn":"ADBE Vector Graphic - G-Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":160,"s":[0]},{"t":190,"s":[100]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":140,"s":[0]},{"t":170,"s":[100]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":140,"op":190,"st":140,"bm":0},{"ddd":0,"ind":17,"ty":4,"nm":"Shape Layer 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[916,500,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-338,318]],"o":[[0,0],[338,-318]],"v":[[-258,200],[506,114]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gs","o":{"a":0,"k":100,"ix":9},"w":{"a":0,"k":2,"ix":10},"g":{"p":3,"k":{"a":0,"k":[0,0.604,0.322,1,0.375,0.745,0.31,1,0.751,0.886,0.298,1],"ix":8}},"s":{"a":0,"k":[0,0],"ix":4},"e":{"a":0,"k":[100,0],"ix":5},"t":1,"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":13},"bm":0,"nm":"Gradient Stroke 1","mn":"ADBE Vector Graphic - G-Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":90,"s":[0]},{"t":120,"s":[100]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":70,"s":[0]},{"t":100,"s":[100]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":70,"op":120,"st":70,"bm":0},{"ddd":0,"ind":18,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[916,500,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-429,0]],"o":[[0,0],[429,0]],"v":[[-671,-144],[-259,201]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gs","o":{"a":0,"k":100,"ix":9},"w":{"a":0,"k":2,"ix":10},"g":{"p":3,"k":{"a":0,"k":[0,0.604,0.322,1,0.375,0.745,0.31,1,0.751,0.886,0.298,1],"ix":8}},"s":{"a":0,"k":[0,0],"ix":4},"e":{"a":0,"k":[100,0],"ix":5},"t":1,"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":13},"bm":0,"nm":"Gradient Stroke 1","mn":"ADBE Vector Graphic - G-Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":20,"s":[0]},{"t":50,"s":[100]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"t":30,"s":[100]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":50,"st":0,"bm":0},{"ddd":0,"ind":19,"ty":0,"nm":"Australia","refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[916,500,0],"ix":2},"a":{"a":0,"k":[916,500,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1832,"h":1000,"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":20,"ty":0,"nm":"Europe & Asia","refId":"comp_2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[916,500,0],"ix":2},"a":{"a":0,"k":[916,500,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1832,"h":1000,"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":21,"ty":0,"nm":"Africa","refId":"comp_3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[912,520,0],"ix":2},"a":{"a":0,"k":[916,500,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1832,"h":1000,"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":22,"ty":0,"nm":"South America","refId":"comp_4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[916,500,0],"ix":2},"a":{"a":0,"k":[916,500,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1832,"h":1000,"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":23,"ty":0,"nm":"North America","refId":"comp_5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[917,501,0],"ix":2},"a":{"a":0,"k":[916,500,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1832,"h":1000,"ip":0,"op":1350,"st":0,"bm":0},{"ddd":0,"ind":24,"ty":0,"nm":"Greenland","refId":"comp_6","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[916,500,0],"ix":2},"a":{"a":0,"k":[916,500,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1832,"h":1000,"ip":0,"op":1350,"st":0,"bm":0}],"markers":[]} \ No newline at end of file +{ + "v": "4.8.0", + "meta": { "g": "LottieFiles AE 3.2.2", "a": "", "k": "", "d": "", "tc": "" }, + "fr": 30, + "ip": 0, + "op": 420, + "w": 1832, + "h": 1000, + "nm": "XRPL Animation", + "ddd": 0, + "assets": [ + { + "id": "image_0", + "w": 80, + "h": 81, + "u": "", + "p": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABRCAYAAABFTSEIAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAgAElEQVR4nO29eYzd2ZXf97nLb3n7q421cKsim+yFvZC9qKVeJPaM5cw4GEszxtjyxGO1AhgxgsTdCpIg/8TTjSBAECOQ2zYwRiYTSXAwtuEZz2Z5NPCMxVbG1mgk9d7shU1WkVVk7VWv3vZb77354/equposksVuSf4nB3io9+5vu/f7O+fcc8495xb8//SJSPyn7sBetLi4OL1X++Tk5NxPtye3p/9kAM7Ozja1Dk97nnrIOXfaOk4LKaadtU3n3C2uFC2wc0LIOWvM62DP5Xn+2szMTOun1vndvflpPmx+fvGs1vJzCHHWOXf2Zuc557g1iHuQ4Jwz9mUh3O8dOnTotU/Y1Tt47E+YZmdnm34YPoeTXxSC0zsPFtc92jkQYge43QDeMZgwpyQvAC//pMX+Jwbg/Pz8WSfUs1LILwhB83rABMCutu1vjr0Bs9Z+rH4I+IaUvPiTAvLHDuDi4uJ0ZtwLUogvb7dJKYuHbQO2m7sESAS7IbPO3dCxjwvgNv2kgPyxAbgtqs6K58E1t9ullDvctsNlDhwOnMNaS5pnGJOhlcL3QpAFpG5wrrUG5xxKSpwTwO1FWuxSB7tJCvFCmsYv/bgmnR8LgPPz82eF1F8Hpre5bTfJAee5wQfncDjeeX+Wb3/rj5i/fBklFLVqmUNHDnLoyEGCMEArzfp6m85WC5NbJg+Ocfz4DIePHEEp77a68QY9u90Oc86Zrxw+fPjcJxo4PwYAryxc+5qA54UQbH9ueMgu0d3WcRcuLfDrL/2fdLbWyHFoAVp5lCslpPTQSqG0RimJ7wdIKalUKmilmDo4wmOffoQDE5OI64ZwM9D2IoF84fDhyRc/yfg/NoCzi4vT2rjfhY/OrDcDcTddWVjipa/9OksLcyRpiu97lEs1fE8TBCFhGGDyHKk0WZrh+RqkwhpDGASMjgxTqoTc/9BJHn7kMa7n+jsB0cFrVstfnPmYuvFjAbiwsHDaIn4Xx/TOjQadvh5A59xOm7OWuflr/N+/8c+4fOkixuQEfoj2PXylQUkkAiEkQoKxDs/TWGsRzoEU2NwQ+AHS04yPjfDEkw9z+tEbQbwjEKSYM0o+83FAvGMAZxcWTisnvgM09zq+G0j4EMDcGN56+z3+6A//mIX5KyRxigPCICQ3BpdneIGHtY4kSwm8gDzPMc6AceTGoJTEWks5LJFbS71eIwg9zv7MZ3j6s5/F84I74r7rqGUNz8zM3JkRfkdPuxl4u5X5DoAUE8ZWu83C0jKXL1zm8uw875w/T55nOOuQQhCUQtIsI40iktygcCAkQggskOcxzgJSkmc5SkmyLEXgqFYbeJ6HVpJHHj3FL3/pr1Op1u9kSNfTHYO4bwD3Au9Ws6BzjnPf/T7f+7PvUfVCwkqJ2dnLRP0emcnJ0oTc5CRpAogdEXTWIKXGupzcWEyWFWaNcGjlk6YJCIGnfYw1SKUoBSG+7/HYo6f4lV/9FcqVnx6I+wJwdnZxWmn7KrfgvN3+q5SSi3OL/MY/+b/whGPy0EHm5i6RZjlplhL3I5IsGZxvybMcKRXgyPIMJRVZnqE9hZSaLM0pl8r4vk+aJRhjEELgaQ1As9nEZJYkz/jUI/fx5b/zX+L74X6GdjNqWaPOzMzcXifeVvPOzi5OK89+B2hug3S9s7/X7wvvzeHynAPj48xdvkzU6xFHPbpbbeI0RkpJksaY3GIdOCxJmiClJMtzhJRY4yh5IWHg0+21WFpZIkkttdoBjh9/kAcfeooHHnqaxvAMujSKkpI33/qAc3/87R3je/tjrcVae0P/d//d1d6UynxndnbvsNpu0rc7QWn3dWfdTW+0V2dy6/jg/Q+YmDrA4tIi3W6bbreD8hQGg3OQJDFCKKwzOJfT72dIrYmTmFKphKc9sjxlae0axhiG6k3+/t9/kcmpKaQE3/cQUmGtoVwOSVLHf//f/S+srl7kX/yrb3FlcZG//eVn0V5wQ39v931A00qZrwPP3AqfW3Lg/PzVX4Mbw057ceKHHXC0Wj22NlpcuHiBpeVr9KMenvZI4gwHpFmMdRZjUpI0IU4SjLUEXkCtWiOOI1bXltnY2CDNMpTSRHHE8JBHWNJYBCvLq/SjLlevrbK2toEUhief/AxRkrLVbfOnf/Ln/OHv/DbG5rcCac/2Ha517uzl+au/9rEAnJ1dnLbOvbDXQ28tBoL5K4tcnn+fzc1VkjzGOchMjtaKNIkxptCFeZ4VnZCSaqVOkkYsr1yj3+8WM7Wz4By5yciM4fVXX8HaHK0lUntstSLC0McPApI45fjJGYT0MDlkecIffOtPufTu2zd50bcn5xzO2hdmZ+fP3jGAUtnv3Oymt/ptjOUHP3iN5eVFoihCKV2YJMbQjzpkeVa8XZMjBASej1aazdYqnU4bISTGWoSQIIrZeTug8Oqrr2ANWGOQClbWV9na2mB1bZml1UU8P8U6h5KgtU9uJN/7Dz/4OPHEj45P2K/d7PieOnB+/uqvOZi+/rk3RIr3mEjy3PLOO+8RRz0q5RKVUo32VgdDPuC+wh9WUlEv19jqtYn6/R2wrLVIIXe+O0BrjzzPePWN87z0j/4BV68u0e60SeJkEIh1CKdAWKwFKxXa86iWK1y8uIDJYrRf+tgggjh9cfbyC8dnjr5w/ZEbOHAgus/u563taL3dQEpBnlkyk+L5Hlme4QWF8VtEYxyB71Gr1VhcW6bbbWOcGcyaBVgAwoHUCoAsS7HW0u50+f73/4Irly/T2tgg6veJ44ioH5GkfaIoIor7ZFlCv9/FYUBIOu2t24/lNuOVQjw3Ozt7g/d1A4BSmRfgQx939wP2E2bX0nHy3lM4q6iWqxiTk6QZArAWatUGXlBieWUZa/MdbtRaI2XhvwhRRAOtMcU5zmJtTm4ykqRPlkekWQFalkakaZ84Kb7neUwcdYmiLteW5lnbWGRtdW3P/roiMLlfEW9a5PPXN37EkJ6dXZyWysze8JDrALvZd2stQkC3m/Ebv/nbXLv4LpvtVfpRn9yk1Cp1ev0um60NrLUoqRCy6IKnPYRS5GmCA4w1WGMwNivui8NXilB7BFoSKA8pJVK6IvgAGAtJnrPa7ZI7RxAEVEs1nv3yX+cXfulv7CtSBLeM5rRwZmZ3MPYjZ16+vPANBF++/qqbzWJ7fS/+CkDyr3/3HN/+g98GZVBCsLnVotVa3+mgUqoAURQibqwBwcDozTDGIrGUfY/RapmpZoPheoWqHxZeihBgGXglEqUViXW8fXWFVy/MkllDuVzhwXvv5n/93/83PL+072DDzc6zzr24WxdeF0jjczdcMLDeb0U3WvMWIQbh+izGZAaTp3Q6LeRAXJ2zICA3eWGriQL3PM+wJsfmOUMlj+MHRqiWQvq5YaXXYzOK6KQRnoRGJWS0XmasXma4UsE4w9zaOgsbm2jPBwRpknB5/hqt9bU7Wle52Ziv14U7AM5eWXiW63Tfdijq4zy0uBZq1RphGLCysQqicNmyLLthCdNYS5omA/svY6xaZrReoxOn+J6HrxVb3T5vzl7lL96f5Y3Zy3R7HaQAJaDV6/LyW+9y/vJVQuCJe2cYqlUx1pCkCWma3HGo6yYgNg3qi9s/dswYBV/effrtFrf3OvbRhRxHpVKhVK7w/oW3BqCBcAKpJIjBat3ArTMmx9ocay3jtQoTjSoTjTrV0GerH7HU7mK0wpMKKUFYRxJFuKBEtTnEYrtPnFjiJCWKUrRSCFn0w1EY5Nv9+wQxwwKrQs19AwYcODu7OO3g7G7gbjpr7QLrdhQEHhsb65iB0TzgN7RS4MAYM5hVU3KTYY1FK8HR4Tp3T42gXcYPL87z8nuzvLu0wUpsWdjskqSGKLd0e33qtRqN0VFm1zusRhG6VEOFNVbbPcp+CedASUlQqnwssG7CRGe3xbjgQGXObp+83zd0M//xwwZBFPdpdTaQUpHnFoctDOTBuVmeDDivsAO1lPhScuTAEM7B5Y0uq/2YaqVK6PmMDQ0js4xGKNFSoTxNu9Nm4shh7jk0gYtjYptzeHKM0dFRLi2tsbS+xthwk0Zz+KZLnfsZ6/WYDMT4GxpAIb5gneWjM+mtAbu+/frOpcZy7jvfwZpsZ5IQTqCVxjpbcF2e7YSZBIJy4KGAqeYQKI/Aq3D4QBfrHFpKTGbItUe9FNCsV/GFwFmHiCNO33MPzkK312eoVuLwcIPx8Sleefs8jz9wAuXJnQlRSnlH4rzXOUryuR0AjTWndxZ+9uOB7OOcTjdmeXGpsNG23TRnsTjSPCE3GcaYgT0o0EIQeh41X3FgtEnohRw7OIUzlq1ORK/XR2iFxFEtlxBSkPQj0n6XjbVNjj9wlEcffJD25gbSOZojw7iwRCUIue/UfawsLlOp1SiVq4U+/AQreQUIfBH4ip5dWDgtjJu+E9beC+jrfwshqZTrdDvLKK2xxoBzZFlKmsYYY3DW4mmJJySBVqSZ4a6DowzXapRKIUFYQymfw9on6cVE/R5CQtTv0497GOtwUqGcI91qM3ZgAl9rlDAIrTFSMFyv09ncwtdFn5y1OCkxeY5Sit2Mc8s17RupOTu7OC3J7PTtALsdWNc/yDlHo+pz/OQ9aOXtLH475zAm29GXWglqvo+Skma5jLCWA7WQJIqIO316a+skm1tknT6+H1Kt1fGDEJMZon7MysY6cT8mjlI2l68hs5Tq0DDtzRbJ5hbECaPNOkePHkU4CSYvRFgppJQopT7S/ztRXQCG7KwEd/qThHtuRlLCZz/7GSrlBlJ8GBRIswRrDfWyz0i1gnOWsXqZLM9ohAqT5bQ7Hbr9HhmWJE2Jux2i1iZp1Cfu9uj3ulxdXKJRKjE1MU5Y9omTiKsfvMvG/EXmLl5gbWWRbmuTiva48u6ruLQPEpT+UKUUvvCdxwm3SeCmNUI+tJ9knTu6sSiCAvfeO02tOU63v0mS5oAl8BT1sISnPHpxzMGhGlIq1qKY0VoFJQVplhIEAVHUI0r6KC3x/RIW6MV93l+YZ7nVIUojXpm/wmqrT+gpxupVdOizsrbOQ4cPMykhzSLef/tt7n3oEQyWIKygVNHHwncXH7ER96KbibeU4qjenUl1s4v3S9sxvAGMlMqS+049wNb6HL1eG6UEJgcLlDxJs1yhoiXvLm5Q0pJASwa2NVEc0c0tNhMoJ/GCHkjJSqtFZC0zRw5yYWGRjW6CkdBOM6aH6oRBjXevLHJtaxMqIReXlpmserz63X/LiTNP4JerVBpjyEFy0n4DDLutjV2NpzV7hK52053aTrvPF85x9Mhh/jSKSZOE3CaUfZ+S79FPEmwuuRYl9FJDSWmkLIzePM+Ik6TwKLSHcAplFJ04Zn5tk0NjozTrVc7ccxfr7TadXh8hFFNT4zQaw/zF+XdpRRHJyhqLG1tIV+bdSwso7zUS45g6forG5DTa8+9ofDcCLZqam6RobNPtbn59B3andIBj/OAoSeYQwhF6PmXPwxlHyQ9odbuYvMhQiPIcKxy5sXSjmNwIktTgkhytPeJuyrXNLfzAw9MOrSH0ApwtEyLQXkB3s0vU7VErBwgM7y2vkhjHeifhvfkWoZ6j3hziYqfDRGeDqZNn0LvSQT6Gi3d7APcL2l6/hRAcm5lkaGiCfn+Z0A/wtEIKSE2GFgLtCzzPpx3FLLUjRisVhIyRQpEbg8GROkurH9GKE2wc04tiLixt4qzD80IOHT9JpVJBCMm//86fMFmXNCoVLl9ZITeGTgZ52/Dq3BJ33Z8xffQQs6+/hpCK8ZlT+GF538lJ14ly87brwh8HVGPMTnut4vP4U2f5w3/1Hp6ShJ6Pw2CMwPMsoa/pJgYtM5Y7KbVgC+cEvqdxAoxzeMoipCCzkuV2l+mpBqceehCtNJOHjzA1cxwpFdfmF7l/7j0qqs/l9T69KAEcQgo85ZHmkm99+xzPJIZ7P/0MS5evIcsjjI5PEJYqt+XAvSaTmwJ4p6K73bYzs/FhXvPf+pWfJ097/OjlPyDP+gxXy7T6Eb72KPsKkCSpRztOuNaOQEiGw4BS6GOdRfg+1XKJ+0olTqlDXLi6zndf/j4bvS5DjTqHJyfoZyA3N3n0/hni2LIat9FK4pwtPB5TGOzdxHFgdJj52SVMd4kTj36aXreH54eDOOVHJ4vdv/d06Z5//qsv7IXyx/ERd3Pgtr8JEAaa0w/dx/lX3mZh5Qqhpxiul5DCMtao4gvJVhQTZQOfGUFmDBJQusiBGapW0FJSDT3umhzlvoNHODE6xXi5zrhf4eTYBCcPH0IGjg+uLXFxeY2jR46xtrnJYNWAUilA6YBGo8RTP/cLXPhgnmpZUWkMAwLteTcd583wkMDczUDZD0tv/93+FG/bkGcZxuTkeU6aJPTa6wzVBY1yidV2jyhJECiW14tcGSUlnpL4WhPnOev9lCutLt00J81zsixDiWJNOM1i+uk6RrTRoofNWyTxMkZ1yazljSvLrG91adRCnHN4WqOUwtcK5Um2un2qtTrHTtzNyuIiUirSNLkhorQbuJtI5NwtdeCdmC/GmB3wsiwGY8izhLS3xdz753nnlR/S29xkvFEm0Jp2v481UPIlzXKJvNXFU5JASUqepp/mxLllfr1NMK6J85hyUKFUCsnSnDg3ZLklJ0NJCVZQEjVa/YT5tU20VqxutGCwxOBJibWGiufRrNZxzjI0Oka/dRUv8Ol1u8CHJRl75a3dqANdSwOvsUcoH25tA+5+W9vAJb02m0vzdDbW6W9t0N5cp7WywPzyBnPXVjGZYaRRo1EWrLe3SNKMONU0ygG1sAwkJHkxAXlKEmcZG72sCI56mppfplpyVJsNvMAD6ZEbC8bhBwGVaoX/8N6rGFNMOnNX5nHOkufgpERJTZ4lTB2aQmqfoFwiCMso7REEJdIkwQ8Ks0YMCi1upqYKjEVLO+e2biaq++VAm+esLlwiXl8ki1O6rTWyqEd7fY23379MJ0qoeIqZgyMcnTrCqxcvs7EVsuWgm+SsdiIePzHFtc0282tdNrsRJQ98LehngvVORDXwCLXGDzR+GFAPKpTLNZT0igV458iBy8srgMMah8EWERfAUrzwaqA5OHMCpRRB4JMbi7PFCxADvb1fu9BY87oWBQd+ZClzP9b5tr5zxrJ+dY58c5FyuULHWjbXVpj74ALzS2skaYbnKULlce/xGY7fdRwlDCurq2hVohRYWr0+V9c7HDtQ4/BQidcXWlxda1MJfBplRTtKuLrVIzeG2Ob0kowkTamUuwTaR+oil7BjYWFlHaVU0Tdn0dpDS4ECPAEPnDrJweP3ABCEIcoLEAKk9HDWfGR8twNQFDrQvgZq54L9ALc7stvv99lauowXVnjnlR8inaCz2SLLMg4M1YmThDQ3fPr+GUraMHfhPHkS8amTx3jjyiJ0elSHalxtddnodjk5OcR9U3UCrbmyssFQJaSXZGx0IuI0o9VPWev02dxqUwnLlAKfwNcIpfjz2UWyPAEHUooiXmgNntL4vmZ0uMKZJz6LX6qhtSZNU8qVCjjwPEWWmo9YIbcD0Vpe08Brtwrl7wYOCu7cjqNlWUYc9ehFKQvvvM30yQcpVxvMnf8R/d4Wy6sbeEow0awQSI0XNjGh4tCRUaYrw9ydh2z2DK+9+grnX/8urajL9y5c4+HpMU5M1sAaOlHEWDXk6mZGZh1bcYLTPu3+FhW/TTX00H7A/EaXD1Y2i6Cps4BADUA01qIFTA5VGRufwJrCPvU8j0pzeCeb9foo9fa4bwZiV/OanpmZaV2avfwauwpm9qLterfdNzV5TpYZ3n/nPcbHhzh04h7yNGNjdYl2t89QtUQcxwgRYMtjeMcfJyg3ihicc9SCEjXpceTEMSaPHOc73/6XdNpr/Nn7S9w90eDEwRGuLIFWgm6S46ylHHg8/z/8j/zWb/1r3jz/KrHJyHOHtQ6tiqwuBrrM1xIlNNYVornZS7g6ewFZGcYPQzzfpz48hh1I1X6YZxe9dmZmpqUBnLUvCylvCSDX2YfbHod1gNTUxyZJei2WPngXnXcYqpd484Or3HfiXh7+2S8wduQYUmny3FAEtCBPc8JSGWMNn/1LT3BkZpo//oPfZ2XhDZbabcqlLmONKr0oplHy6SUpx44f4di99xOE/wbjXAHeIJvEUQQsrLMYZwm15u6ZI8xeuYqnBJPjI4S1CS6df5NytU65WqPZrJMkCc7anUlkP2StfRkGrpyV/J6C5/Zz4bZucM4hlKRaqzEycYTu6hKbNqW7eJHNTsTq+hb3PvAIn//lv40XVvE9DxA7uc3OOlzZIITaMRlO3HOMg0f+a65cnOfNH/2At1//jzi7RSPQVEs+nTjlkccfZ2V1neXlhSIR3TmcG7xfV5g/iXEoIRiqVzhzcoaDY6O8/d67vP3uLEdn/pyD9zxJnvYRoo5SijAMd9ZotN7bNL5eJzrL7wEogH/80ktzzz3/1eeBfdUGfHiTogR1dGIK6zR5e4U86dPpdDl27C5On/0rSD+gVCojlUYKgedrvECzudlCaw8pC//TGotUglLJZ3xilHsePMXpx55iec0iknXiJGKx1SNJ+mytr3Hpg4tsRdGAo4tJw+EIfQ/hLMZBkiZ85qF7uOfEDHNXrjIxMsL3f/Aq6dpFDowO05ycQUi1o9flPjhwcHzuruPTX90BEODv/b3nJoUQn74TALezDfzAIyyXcLnDCo/JY3czPHMf9eFxPL/QNVJJ/MAjSXNam13Ckk+lUkFpgbPFvaQq3rIc1Mr5gc+p06fwKpPMX3qf9c4W62vrLFy5QjeOiJKc3Bi2M5MkgoMHhgk8H5vnxGnGgZE6999zNyrr0u1ucPzkQ7z37nscO3qQXmoZGhv/iN23HwAF4vdeeulrvw+7kousLFjyTkhKhedpoiii148JDxymMX0/1bFDNEcPoEshyvNwVqCUZnOjQxTF1OtlSmGIMRlJnJClKUmaEkUJWZYTJwlJnJLnRQLmPQ8/wNN/5VeZHBqlVgpRAoYrZRqlsMiBEQJRmMpstrc4cqDOoZEGJc/jz/7iDX70w/+Xe898Cq187rl3hiN3neLihQtU60O01lfZ9tv2G9rPc/PNHQy2v5yYmTkH4tztbrD7bTnnyLKcPBcI6dGLUnr9iKA+jPJKaOXj+QFhJeDK/CKep6hWSsVMKSBJMpI4I4riQXqHJY4T4rQwlJOkyKqyznLPmVOcevAJDjSqlAKP3BiGqwH1UolAKxwglaQb52xsbPDYqWkO1CtMjTRY3LQszr3LUz/zn/H6D77H2bNPMb+4iS8yMlMkhe47bxDmTpyY2cHpIxrTYr4pkWf3dacdECWtzQ6lckCvH1Ov1ZHKQyqvyMBSiisLK9SrZZTSeJ7HVqtDt9dHK432PYwz9NtF1ZIblLQaa/E9nzDUOCeQ0vH42b9Mf+UtctaJ0hwlBJPNMsstM9hnwaERbHQT4s4m0xPDvH9lkb/z+SfZjIdYnn8FITzqow0mjtxFliaU6uFHGGMfY35h9++PWI53zcx8g+vCW7e+mWSr1R2k2gomJw9Qa9RR2sMJgZKa2dmrrK6sYwblqsvLa6ysrmPyIhvV2SKHOs+LaE4axWRpTpZmRHFEFCVE/Yg0zamPNilXhzh5cJixeoCvC2CHygGVwAOhQAxyDY2gFgikUszNXebxv/QUE/f9LALN0pU5/CBEaK+wCva/FjI3M3P0m7sbbjC9LfbF/d4tywpRi+MI39cEYbBTs6uVJo5TnIXpo5OEYcjFS1dZvLZKvValVC4VcUMDUkjS3JBZS5zlxGlMlmdFgCDPSbJ0pyAxkg3iKKYWahplTUkV5a7DlRCBwxhLmhmW11vEUcJoo8rW1hZCwD0P3091cobW2go2buGXapTK5f0OF3kd9+0JYMGFt9eFIEiSDJxgeKSJUhqtvSIfTwmMKcoSAl8jheLywiKtjQ3GxkeQSmCtQWlFmmVYJwjDgFIYUq2UihehvUHhoUMgi/wam5OJkKXNLt0oQzkYb5YI/QBnLYGSKCHJjWV5q09sDENDQ0jtDSoCLCcffJS1VkqlXiasNpBy38tCN3DfngACGMxtubCIs+VAEfHVutjfABxSFvUhUmmqtRK9KCbuJRw+MomnNcYUFZppmmGyDIFFSYm1bhCkUIAYVB0pwlJQlEEISbkxzGo7JrGWlXYfQcrdh4ZoVssEWqKUwApHd1ARf98DD9NutXBZjJSCPE84cOgwJ06dwQ/L7Dcrw+TuF/dq3xPAEzMz55y1L93qhnnuyDOL9hT+YPGn0GVFdn0YhGy126yvtXjllTfwfFWIN0XU1+SGOMkRQoKzCFlMAhJBlmSY3KCQhOUANagl1lozMTlBJ7FYUxTs5Aa0VozWAiYaVXJj0EoRZ5Y0N0wfP0LjwElWPngDkyV01q4wOnmIqZMPobTen/4T4hsnT87sWYB981q5Yu+puZsdL0yMnDDwkVKRpTk4h7UQRTHdbsTo0DACSbNWYXx8ZJCzDHmWF+aJtaRJTrcbs7nRod3q0G73sLlBSIEf+Pi6sDWhMHJP3H2C8cl76CWGNM8ZGR7BD0LS3NGNExqVEsKB0prMQKlc4i//tV/izVfO895//BYHRkc4cvLeouTh9tABzMlbzAs3BXBmZqZlsF/Z65hz0O8XIuFpRZpmxFGKpzVxkmJdTppldPs93nzrPGNjowgpkUCcJDgHnvbJc0OUxOTGFbOwc0hPE5RD6rVqsf2JgSwrDGrrDGEp5MnPfh5USDcuJpxGY4SRRp1yGKAL6UcNdj5qzb+PNTmf+s9/meWVDhXfIUyMENsezO5x3SjO1rivzMzMzN0xgDAQ5T3Qz/JCVD1PIZWi1+2TZikAYeBRKZfJs5yF+auEgWJ4ZBhPaaK4MFEMoJRkdKTJ5OQYoyNNms0G4+OjTE2MUqtX0b5Ca0GzUWJoqEbge0hRFNdMHZli/HFJogYAAAfMSURBVPC95BauLG1QbjSRns9os45zEHqakhbEiWFjbYXo2rtYk/L0F/8mwdhJuuvr5FGXNIn2zKjYaXPuxd1G816kbnUQ4B+99NK5//a552aEEKe3HxJFhVnh+yHWWeI4BqDb7cNgI7Erl6+xtLTC6TP34/tFsbX2NOVKGa2L0qw0z0jjrNhcIi+SzftxQpqkxdqy0vT7CVluB2F3VZRI4KjVhnnj9R8RJxFrS/P4Iicb5OAEWjI1VOfwwXGWllc5fGiK5sgIfm2I4QMTGBGQmRwvCHcCCDdE45196a67jv1Pt8NnX3O4Ejzv4CHgtHMOkw8WzqUgiWKsdfi+R5qm9Lpd+nFGa2sL3xMEgY/WxX4wShd+s3G28DqsZau1xtrKtSLfOU0K8VMaoSS9zhaddhvtae677xQn738EJSVK+Uwfm2HmxMO889bLyM0ek42Qo+MVmpFG1WeI1mY5dHCcja2EH37/+9TGDlIeHiPLPJojI2yurw0cgMFuIbvAc/BaV8kX9oPNvk3w2dnZpkO+CkxvbnZJ4hg/8NlqtelHCc1GDYQgS1MuXVpgZXWdE8cOM33sKMZYHII4TlhZusZrP/we8xfeIttco+xBSRdRY2OhlyRsdmOiNCXOLImxpMbhhODpzz7JL//qf8XqWh8cXJm9zD//5j/G5R2mR0rcfahJffQAn/sbX+Xf/fb/Q29jkTOPPsr8Wkzdj7j/iWcYnzmFdcXArXN4nnd9YtFcR3LmzD53d7utCG/TSy+9FD///HO/L4T8Yrvda+a5QUpRKHhj6EcxnU6fOE5YvLbC1fkrPPHUY0jpEUUJ75x/iz/5nd/irT/9XardaxwpSY4Olxmvl2mUPGq+Tz3wqYaakqco+x44yK0hNhZjHe9fnGPug/d45NFHkLoo9cdK+p1N4rhLJdSM1EJOPPgQ4zMPIPKEix+c52d+6b9gdm6VamipjU6ivWCH+4pE80ItOHgtl/z8AzMzS/vF5Y42nJqZmZnDmTN5nr0GRSQ4CHxK5aIKMk5jLl28hNCCe++9C88LWF9b44/+xdd543f+KXfZFT4zM8aRRoOa56GFRLoiP7CIiDi0EJQ9RTXU1Mqasu/jCQnWoZWm2+5icsvwUJN6vcoDD57mV/7mlwgqIyysdVlrdbj65vcZnxzlvic/j9QN1hbe4aEnnubawhK5/TBv50PxtYXYSp659xYz7icGcABi66knHztjrX0pTRLiOCXLi41wapUq4+MTdNsdSr5m7tIl/vg3v8bh5CqPTE/QqISEXoDWgx0tbWG+2CzbCWcJV6SjFUB6+J5Cq4I/nJD4gU+702FjfYMgCJk8cpjR8Um+8IW/ivLrLK22ufT+2/TWrjAycYBHPvfzrCzMU6/X0J6PhB3wdrLInPvmieMz+xbbTwTgNn3uc59+PsvSF+Mkod/rs7S4wvz8PLOX5kj6PcJyiR/8zm/y6FSJ0XqF0NNoWeRACwqlnaWWPLVYW8yeQlgyawabThQ2ZqAFvlI7O7mtrq6ByVjfaLGxsYl1jth6PH72Gf7qX/sSpcYE15Y2Wbn8PjaNmD51Cms1fuhTqjbwrtvRyFm+evKuY89+XBw+/p5xwM/+7NMvDA+FM87ZuSjuEycJWZawubHOq9/9Ex6bHqIc+AVgxuFyR5Ya0jgnT4sd2YRgUPoKBgdKkluLsQZPS8q+j1aS1EEprKA9jzjNqdXKICxREhOl0OvFnH76aX7hb/1dhg8eo9PqkGcpQkK5WsM5S314aKfoWgoxZyVnTpyY+YefBINPBCDAZz7zmblGwz8zNNR8sRyG1Bt1ms0hjjVL+NpH4MiTnChKSVNDllqsE4NVUodwRdAAKKrPEUVeoFJFRqvvIaQgCEpESczBg0dYXtpgdX0d4Ry+Ko612gnVWpOjd5/kxMOfJWiMgtJkcUStWiGOYoYnDhb7MjheEsKdOTmzt397J/TJCmevo2ef/bvTYyMHv97d2jr7qeGYIRET97pEUUrUz8hNjhvscYCA3OZY6zDOkWHJjCM1hjhNELJYJcsMvLG4xVLfMNwc4szDT1Ku1KjWaxycOkiz2cAJgclSTp6colypsLm2TtzdZGTiIKuLC4SBJs4Eh6dnzmlPf3XmxwDcNn1iDtxN3/jGP537B//H//xMkmx8JZBmLkkS4jgjilOcNPhesSeqw+CwCFfYYgaLcxQL4nmxVYmUEk8pfN/D0x5T41NMTh3F5BlJEmNzS7vdpdvr43sepXKF5eVWsZ1orUa5OUpucrrry9RGps4JYZ45cfLEMz9O8ODHzIHX0z/7b750NunGz6Vp/kWLLRJ+MFjjijU0UYTFksEaSOaKEFRuzQA4H4Ti/GZGqmoE5SpBEDI8Osbw8DiNeoPxqXGqlSpaS5w1HL9rAqUUSRLTWr56rqT1i4898/lzP6kx/kQB3KZf/9LPTVtff8Ga7Nk0M6eFUgjhMKZIzcgGqXKJNViKNQ1Pe8Vit1K8sWGJrI8flCjXmhyYOMj4+ATlUkgQlGg2m1RqIb7nU6uF5w4cqL3c7/f/4ZkzZ37i/6DgpwLgbvral35uOjPpWaXlF6zhrHG2aa0gyQyZyXCDjCo1yGt2QvGBbeBUjUqlRr1ep1yuUi6XqTUalCqVltL6XJ6k58bHa7//i7/483M/zfH8f095BThjKct1AAAAAElFTkSuQmCC", + "e": 1 + }, + { + "id": "image_0", + "w": 80, + "h": 81, + "u": "", + "p": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABRCAYAAABFTSEIAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAgAElEQVR4nO29eYzd2ZXf97nLb3n7q421cKsim+yFvZC9qKVeJPaM5cw4GEszxtjyxGO1AhgxgsTdCpIg/8TTjSBAECOQ2zYwRiYTSXAwtuEZz2Z5NPCMxVbG1mgk9d7shU1WkVVk7VWv3vZb77354/equposksVuSf4nB3io9+5vu/f7O+fcc8495xb8//SJSPyn7sBetLi4OL1X++Tk5NxPtye3p/9kAM7Ozja1Dk97nnrIOXfaOk4LKaadtU3n3C2uFC2wc0LIOWvM62DP5Xn+2szMTOun1vndvflpPmx+fvGs1vJzCHHWOXf2Zuc557g1iHuQ4Jwz9mUh3O8dOnTotU/Y1Tt47E+YZmdnm34YPoeTXxSC0zsPFtc92jkQYge43QDeMZgwpyQvAC//pMX+Jwbg/Pz8WSfUs1LILwhB83rABMCutu1vjr0Bs9Z+rH4I+IaUvPiTAvLHDuDi4uJ0ZtwLUogvb7dJKYuHbQO2m7sESAS7IbPO3dCxjwvgNv2kgPyxAbgtqs6K58E1t9ullDvctsNlDhwOnMNaS5pnGJOhlcL3QpAFpG5wrrUG5xxKSpwTwO1FWuxSB7tJCvFCmsYv/bgmnR8LgPPz82eF1F8Hpre5bTfJAee5wQfncDjeeX+Wb3/rj5i/fBklFLVqmUNHDnLoyEGCMEArzfp6m85WC5NbJg+Ocfz4DIePHEEp77a68QY9u90Oc86Zrxw+fPjcJxo4PwYAryxc+5qA54UQbH9ueMgu0d3WcRcuLfDrL/2fdLbWyHFoAVp5lCslpPTQSqG0RimJ7wdIKalUKmilmDo4wmOffoQDE5OI64ZwM9D2IoF84fDhyRc/yfg/NoCzi4vT2rjfhY/OrDcDcTddWVjipa/9OksLcyRpiu97lEs1fE8TBCFhGGDyHKk0WZrh+RqkwhpDGASMjgxTqoTc/9BJHn7kMa7n+jsB0cFrVstfnPmYuvFjAbiwsHDaIn4Xx/TOjQadvh5A59xOm7OWuflr/N+/8c+4fOkixuQEfoj2PXylQUkkAiEkQoKxDs/TWGsRzoEU2NwQ+AHS04yPjfDEkw9z+tEbQbwjEKSYM0o+83FAvGMAZxcWTisnvgM09zq+G0j4EMDcGN56+z3+6A//mIX5KyRxigPCICQ3BpdneIGHtY4kSwm8gDzPMc6AceTGoJTEWks5LJFbS71eIwg9zv7MZ3j6s5/F84I74r7rqGUNz8zM3JkRfkdPuxl4u5X5DoAUE8ZWu83C0jKXL1zm8uw875w/T55nOOuQQhCUQtIsI40iktygcCAkQggskOcxzgJSkmc5SkmyLEXgqFYbeJ6HVpJHHj3FL3/pr1Op1u9kSNfTHYO4bwD3Au9Ws6BzjnPf/T7f+7PvUfVCwkqJ2dnLRP0emcnJ0oTc5CRpAogdEXTWIKXGupzcWEyWFWaNcGjlk6YJCIGnfYw1SKUoBSG+7/HYo6f4lV/9FcqVnx6I+wJwdnZxWmn7KrfgvN3+q5SSi3OL/MY/+b/whGPy0EHm5i6RZjlplhL3I5IsGZxvybMcKRXgyPIMJRVZnqE9hZSaLM0pl8r4vk+aJRhjEELgaQ1As9nEZJYkz/jUI/fx5b/zX+L74X6GdjNqWaPOzMzcXifeVvPOzi5OK89+B2hug3S9s7/X7wvvzeHynAPj48xdvkzU6xFHPbpbbeI0RkpJksaY3GIdOCxJmiClJMtzhJRY4yh5IWHg0+21WFpZIkkttdoBjh9/kAcfeooHHnqaxvAMujSKkpI33/qAc3/87R3je/tjrcVae0P/d//d1d6UynxndnbvsNpu0rc7QWn3dWfdTW+0V2dy6/jg/Q+YmDrA4tIi3W6bbreD8hQGg3OQJDFCKKwzOJfT72dIrYmTmFKphKc9sjxlae0axhiG6k3+/t9/kcmpKaQE3/cQUmGtoVwOSVLHf//f/S+srl7kX/yrb3FlcZG//eVn0V5wQ39v931A00qZrwPP3AqfW3Lg/PzVX4Mbw057ceKHHXC0Wj22NlpcuHiBpeVr9KMenvZI4gwHpFmMdRZjUpI0IU4SjLUEXkCtWiOOI1bXltnY2CDNMpTSRHHE8JBHWNJYBCvLq/SjLlevrbK2toEUhief/AxRkrLVbfOnf/Ln/OHv/DbG5rcCac/2Ha517uzl+au/9rEAnJ1dnLbOvbDXQ28tBoL5K4tcnn+fzc1VkjzGOchMjtaKNIkxptCFeZ4VnZCSaqVOkkYsr1yj3+8WM7Wz4By5yciM4fVXX8HaHK0lUntstSLC0McPApI45fjJGYT0MDlkecIffOtPufTu2zd50bcn5xzO2hdmZ+fP3jGAUtnv3Oymt/ptjOUHP3iN5eVFoihCKV2YJMbQjzpkeVa8XZMjBASej1aazdYqnU4bISTGWoSQIIrZeTug8Oqrr2ANWGOQClbWV9na2mB1bZml1UU8P8U6h5KgtU9uJN/7Dz/4OPHEj45P2K/d7PieOnB+/uqvOZi+/rk3RIr3mEjy3PLOO+8RRz0q5RKVUo32VgdDPuC+wh9WUlEv19jqtYn6/R2wrLVIIXe+O0BrjzzPePWN87z0j/4BV68u0e60SeJkEIh1CKdAWKwFKxXa86iWK1y8uIDJYrRf+tgggjh9cfbyC8dnjr5w/ZEbOHAgus/u563taL3dQEpBnlkyk+L5Hlme4QWF8VtEYxyB71Gr1VhcW6bbbWOcGcyaBVgAwoHUCoAsS7HW0u50+f73/4Irly/T2tgg6veJ44ioH5GkfaIoIor7ZFlCv9/FYUBIOu2t24/lNuOVQjw3Ozt7g/d1A4BSmRfgQx939wP2E2bX0nHy3lM4q6iWqxiTk6QZArAWatUGXlBieWUZa/MdbtRaI2XhvwhRRAOtMcU5zmJtTm4ykqRPlkekWQFalkakaZ84Kb7neUwcdYmiLteW5lnbWGRtdW3P/roiMLlfEW9a5PPXN37EkJ6dXZyWysze8JDrALvZd2stQkC3m/Ebv/nbXLv4LpvtVfpRn9yk1Cp1ev0um60NrLUoqRCy6IKnPYRS5GmCA4w1WGMwNivui8NXilB7BFoSKA8pJVK6IvgAGAtJnrPa7ZI7RxAEVEs1nv3yX+cXfulv7CtSBLeM5rRwZmZ3MPYjZ16+vPANBF++/qqbzWJ7fS/+CkDyr3/3HN/+g98GZVBCsLnVotVa3+mgUqoAURQibqwBwcDozTDGIrGUfY/RapmpZoPheoWqHxZeihBgGXglEqUViXW8fXWFVy/MkllDuVzhwXvv5n/93/83PL+072DDzc6zzr24WxdeF0jjczdcMLDeb0U3WvMWIQbh+izGZAaTp3Q6LeRAXJ2zICA3eWGriQL3PM+wJsfmOUMlj+MHRqiWQvq5YaXXYzOK6KQRnoRGJWS0XmasXma4UsE4w9zaOgsbm2jPBwRpknB5/hqt9bU7Wle52Ziv14U7AM5eWXiW63Tfdijq4zy0uBZq1RphGLCysQqicNmyLLthCdNYS5omA/svY6xaZrReoxOn+J6HrxVb3T5vzl7lL96f5Y3Zy3R7HaQAJaDV6/LyW+9y/vJVQuCJe2cYqlUx1pCkCWma3HGo6yYgNg3qi9s/dswYBV/effrtFrf3OvbRhRxHpVKhVK7w/oW3BqCBcAKpJIjBat3ArTMmx9ocay3jtQoTjSoTjTrV0GerH7HU7mK0wpMKKUFYRxJFuKBEtTnEYrtPnFjiJCWKUrRSCFn0w1EY5Nv9+wQxwwKrQs19AwYcODu7OO3g7G7gbjpr7QLrdhQEHhsb65iB0TzgN7RS4MAYM5hVU3KTYY1FK8HR4Tp3T42gXcYPL87z8nuzvLu0wUpsWdjskqSGKLd0e33qtRqN0VFm1zusRhG6VEOFNVbbPcp+CedASUlQqnwssG7CRGe3xbjgQGXObp+83zd0M//xwwZBFPdpdTaQUpHnFoctDOTBuVmeDDivsAO1lPhScuTAEM7B5Y0uq/2YaqVK6PmMDQ0js4xGKNFSoTxNu9Nm4shh7jk0gYtjYptzeHKM0dFRLi2tsbS+xthwk0Zz+KZLnfsZ6/WYDMT4GxpAIb5gneWjM+mtAbu+/frOpcZy7jvfwZpsZ5IQTqCVxjpbcF2e7YSZBIJy4KGAqeYQKI/Aq3D4QBfrHFpKTGbItUe9FNCsV/GFwFmHiCNO33MPzkK312eoVuLwcIPx8Sleefs8jz9wAuXJnQlRSnlH4rzXOUryuR0AjTWndxZ+9uOB7OOcTjdmeXGpsNG23TRnsTjSPCE3GcaYgT0o0EIQeh41X3FgtEnohRw7OIUzlq1ORK/XR2iFxFEtlxBSkPQj0n6XjbVNjj9wlEcffJD25gbSOZojw7iwRCUIue/UfawsLlOp1SiVq4U+/AQreQUIfBH4ip5dWDgtjJu+E9beC+jrfwshqZTrdDvLKK2xxoBzZFlKmsYYY3DW4mmJJySBVqSZ4a6DowzXapRKIUFYQymfw9on6cVE/R5CQtTv0497GOtwUqGcI91qM3ZgAl9rlDAIrTFSMFyv09ncwtdFn5y1OCkxeY5Sit2Mc8s17RupOTu7OC3J7PTtALsdWNc/yDlHo+pz/OQ9aOXtLH475zAm29GXWglqvo+Skma5jLCWA7WQJIqIO316a+skm1tknT6+H1Kt1fGDEJMZon7MysY6cT8mjlI2l68hs5Tq0DDtzRbJ5hbECaPNOkePHkU4CSYvRFgppJQopT7S/ztRXQCG7KwEd/qThHtuRlLCZz/7GSrlBlJ8GBRIswRrDfWyz0i1gnOWsXqZLM9ohAqT5bQ7Hbr9HhmWJE2Jux2i1iZp1Cfu9uj3ulxdXKJRKjE1MU5Y9omTiKsfvMvG/EXmLl5gbWWRbmuTiva48u6ruLQPEpT+UKUUvvCdxwm3SeCmNUI+tJ9knTu6sSiCAvfeO02tOU63v0mS5oAl8BT1sISnPHpxzMGhGlIq1qKY0VoFJQVplhIEAVHUI0r6KC3x/RIW6MV93l+YZ7nVIUojXpm/wmqrT+gpxupVdOizsrbOQ4cPMykhzSLef/tt7n3oEQyWIKygVNHHwncXH7ER96KbibeU4qjenUl1s4v3S9sxvAGMlMqS+049wNb6HL1eG6UEJgcLlDxJs1yhoiXvLm5Q0pJASwa2NVEc0c0tNhMoJ/GCHkjJSqtFZC0zRw5yYWGRjW6CkdBOM6aH6oRBjXevLHJtaxMqIReXlpmserz63X/LiTNP4JerVBpjyEFy0n4DDLutjV2NpzV7hK52053aTrvPF85x9Mhh/jSKSZOE3CaUfZ+S79FPEmwuuRYl9FJDSWmkLIzePM+Ik6TwKLSHcAplFJ04Zn5tk0NjozTrVc7ccxfr7TadXh8hFFNT4zQaw/zF+XdpRRHJyhqLG1tIV+bdSwso7zUS45g6forG5DTa8+9ofDcCLZqam6RobNPtbn59B3andIBj/OAoSeYQwhF6PmXPwxlHyQ9odbuYvMhQiPIcKxy5sXSjmNwIktTgkhytPeJuyrXNLfzAw9MOrSH0ApwtEyLQXkB3s0vU7VErBwgM7y2vkhjHeifhvfkWoZ6j3hziYqfDRGeDqZNn0LvSQT6Gi3d7APcL2l6/hRAcm5lkaGiCfn+Z0A/wtEIKSE2GFgLtCzzPpx3FLLUjRisVhIyRQpEbg8GROkurH9GKE2wc04tiLixt4qzD80IOHT9JpVJBCMm//86fMFmXNCoVLl9ZITeGTgZ52/Dq3BJ33Z8xffQQs6+/hpCK8ZlT+GF538lJ14ly87brwh8HVGPMTnut4vP4U2f5w3/1Hp6ShJ6Pw2CMwPMsoa/pJgYtM5Y7KbVgC+cEvqdxAoxzeMoipCCzkuV2l+mpBqceehCtNJOHjzA1cxwpFdfmF7l/7j0qqs/l9T69KAEcQgo85ZHmkm99+xzPJIZ7P/0MS5evIcsjjI5PEJYqt+XAvSaTmwJ4p6K73bYzs/FhXvPf+pWfJ097/OjlPyDP+gxXy7T6Eb72KPsKkCSpRztOuNaOQEiGw4BS6GOdRfg+1XKJ+0olTqlDXLi6zndf/j4bvS5DjTqHJyfoZyA3N3n0/hni2LIat9FK4pwtPB5TGOzdxHFgdJj52SVMd4kTj36aXreH54eDOOVHJ4vdv/d06Z5//qsv7IXyx/ERd3Pgtr8JEAaa0w/dx/lX3mZh5Qqhpxiul5DCMtao4gvJVhQTZQOfGUFmDBJQusiBGapW0FJSDT3umhzlvoNHODE6xXi5zrhf4eTYBCcPH0IGjg+uLXFxeY2jR46xtrnJYNWAUilA6YBGo8RTP/cLXPhgnmpZUWkMAwLteTcd583wkMDczUDZD0tv/93+FG/bkGcZxuTkeU6aJPTa6wzVBY1yidV2jyhJECiW14tcGSUlnpL4WhPnOev9lCutLt00J81zsixDiWJNOM1i+uk6RrTRoofNWyTxMkZ1yazljSvLrG91adRCnHN4WqOUwtcK5Um2un2qtTrHTtzNyuIiUirSNLkhorQbuJtI5NwtdeCdmC/GmB3wsiwGY8izhLS3xdz753nnlR/S29xkvFEm0Jp2v481UPIlzXKJvNXFU5JASUqepp/mxLllfr1NMK6J85hyUKFUCsnSnDg3ZLklJ0NJCVZQEjVa/YT5tU20VqxutGCwxOBJibWGiufRrNZxzjI0Oka/dRUv8Ol1u8CHJRl75a3dqANdSwOvsUcoH25tA+5+W9vAJb02m0vzdDbW6W9t0N5cp7WywPzyBnPXVjGZYaRRo1EWrLe3SNKMONU0ygG1sAwkJHkxAXlKEmcZG72sCI56mppfplpyVJsNvMAD6ZEbC8bhBwGVaoX/8N6rGFNMOnNX5nHOkufgpERJTZ4lTB2aQmqfoFwiCMso7REEJdIkwQ8Ks0YMCi1upqYKjEVLO+e2biaq++VAm+esLlwiXl8ki1O6rTWyqEd7fY23379MJ0qoeIqZgyMcnTrCqxcvs7EVsuWgm+SsdiIePzHFtc0282tdNrsRJQ98LehngvVORDXwCLXGDzR+GFAPKpTLNZT0igV458iBy8srgMMah8EWERfAUrzwaqA5OHMCpRRB4JMbi7PFCxADvb1fu9BY87oWBQd+ZClzP9b5tr5zxrJ+dY58c5FyuULHWjbXVpj74ALzS2skaYbnKULlce/xGY7fdRwlDCurq2hVohRYWr0+V9c7HDtQ4/BQidcXWlxda1MJfBplRTtKuLrVIzeG2Ob0kowkTamUuwTaR+oil7BjYWFlHaVU0Tdn0dpDS4ECPAEPnDrJweP3ABCEIcoLEAKk9HDWfGR8twNQFDrQvgZq54L9ALc7stvv99lauowXVnjnlR8inaCz2SLLMg4M1YmThDQ3fPr+GUraMHfhPHkS8amTx3jjyiJ0elSHalxtddnodjk5OcR9U3UCrbmyssFQJaSXZGx0IuI0o9VPWev02dxqUwnLlAKfwNcIpfjz2UWyPAEHUooiXmgNntL4vmZ0uMKZJz6LX6qhtSZNU8qVCjjwPEWWmo9YIbcD0Vpe08Brtwrl7wYOCu7cjqNlWUYc9ehFKQvvvM30yQcpVxvMnf8R/d4Wy6sbeEow0awQSI0XNjGh4tCRUaYrw9ydh2z2DK+9+grnX/8urajL9y5c4+HpMU5M1sAaOlHEWDXk6mZGZh1bcYLTPu3+FhW/TTX00H7A/EaXD1Y2i6Cps4BADUA01qIFTA5VGRufwJrCPvU8j0pzeCeb9foo9fa4bwZiV/OanpmZaV2avfwauwpm9qLterfdNzV5TpYZ3n/nPcbHhzh04h7yNGNjdYl2t89QtUQcxwgRYMtjeMcfJyg3ihicc9SCEjXpceTEMSaPHOc73/6XdNpr/Nn7S9w90eDEwRGuLIFWgm6S46ylHHg8/z/8j/zWb/1r3jz/KrHJyHOHtQ6tiqwuBrrM1xIlNNYVornZS7g6ewFZGcYPQzzfpz48hh1I1X6YZxe9dmZmpqUBnLUvCylvCSDX2YfbHod1gNTUxyZJei2WPngXnXcYqpd484Or3HfiXh7+2S8wduQYUmny3FAEtCBPc8JSGWMNn/1LT3BkZpo//oPfZ2XhDZbabcqlLmONKr0oplHy6SUpx44f4di99xOE/wbjXAHeIJvEUQQsrLMYZwm15u6ZI8xeuYqnBJPjI4S1CS6df5NytU65WqPZrJMkCc7anUlkP2StfRkGrpyV/J6C5/Zz4bZucM4hlKRaqzEycYTu6hKbNqW7eJHNTsTq+hb3PvAIn//lv40XVvE9DxA7uc3OOlzZIITaMRlO3HOMg0f+a65cnOfNH/2At1//jzi7RSPQVEs+nTjlkccfZ2V1neXlhSIR3TmcG7xfV5g/iXEoIRiqVzhzcoaDY6O8/d67vP3uLEdn/pyD9zxJnvYRoo5SijAMd9ZotN7bNL5eJzrL7wEogH/80ktzzz3/1eeBfdUGfHiTogR1dGIK6zR5e4U86dPpdDl27C5On/0rSD+gVCojlUYKgedrvECzudlCaw8pC//TGotUglLJZ3xilHsePMXpx55iec0iknXiJGKx1SNJ+mytr3Hpg4tsRdGAo4tJw+EIfQ/hLMZBkiZ85qF7uOfEDHNXrjIxMsL3f/Aq6dpFDowO05ycQUi1o9flPjhwcHzuruPTX90BEODv/b3nJoUQn74TALezDfzAIyyXcLnDCo/JY3czPHMf9eFxPL/QNVJJ/MAjSXNam13Ckk+lUkFpgbPFvaQq3rIc1Mr5gc+p06fwKpPMX3qf9c4W62vrLFy5QjeOiJKc3Bi2M5MkgoMHhgk8H5vnxGnGgZE6999zNyrr0u1ucPzkQ7z37nscO3qQXmoZGhv/iN23HwAF4vdeeulrvw+7kousLFjyTkhKhedpoiii148JDxymMX0/1bFDNEcPoEshyvNwVqCUZnOjQxTF1OtlSmGIMRlJnJClKUmaEkUJWZYTJwlJnJLnRQLmPQ8/wNN/5VeZHBqlVgpRAoYrZRqlsMiBEQJRmMpstrc4cqDOoZEGJc/jz/7iDX70w/+Xe898Cq187rl3hiN3neLihQtU60O01lfZ9tv2G9rPc/PNHQy2v5yYmTkH4tztbrD7bTnnyLKcPBcI6dGLUnr9iKA+jPJKaOXj+QFhJeDK/CKep6hWSsVMKSBJMpI4I4riQXqHJY4T4rQwlJOkyKqyznLPmVOcevAJDjSqlAKP3BiGqwH1UolAKxwglaQb52xsbPDYqWkO1CtMjTRY3LQszr3LUz/zn/H6D77H2bNPMb+4iS8yMlMkhe47bxDmTpyY2cHpIxrTYr4pkWf3dacdECWtzQ6lckCvH1Ov1ZHKQyqvyMBSiisLK9SrZZTSeJ7HVqtDt9dHK432PYwz9NtF1ZIblLQaa/E9nzDUOCeQ0vH42b9Mf+UtctaJ0hwlBJPNMsstM9hnwaERbHQT4s4m0xPDvH9lkb/z+SfZjIdYnn8FITzqow0mjtxFliaU6uFHGGMfY35h9++PWI53zcx8g+vCW7e+mWSr1R2k2gomJw9Qa9RR2sMJgZKa2dmrrK6sYwblqsvLa6ysrmPyIhvV2SKHOs+LaE4axWRpTpZmRHFEFCVE/Yg0zamPNilXhzh5cJixeoCvC2CHygGVwAOhQAxyDY2gFgikUszNXebxv/QUE/f9LALN0pU5/CBEaK+wCva/FjI3M3P0m7sbbjC9LfbF/d4tywpRi+MI39cEYbBTs6uVJo5TnIXpo5OEYcjFS1dZvLZKvValVC4VcUMDUkjS3JBZS5zlxGlMlmdFgCDPSbJ0pyAxkg3iKKYWahplTUkV5a7DlRCBwxhLmhmW11vEUcJoo8rW1hZCwD0P3091cobW2go2buGXapTK5f0OF3kd9+0JYMGFt9eFIEiSDJxgeKSJUhqtvSIfTwmMKcoSAl8jheLywiKtjQ3GxkeQSmCtQWlFmmVYJwjDgFIYUq2UihehvUHhoUMgi/wam5OJkKXNLt0oQzkYb5YI/QBnLYGSKCHJjWV5q09sDENDQ0jtDSoCLCcffJS1VkqlXiasNpBy38tCN3DfngACGMxtubCIs+VAEfHVutjfABxSFvUhUmmqtRK9KCbuJRw+MomnNcYUFZppmmGyDIFFSYm1bhCkUIAYVB0pwlJQlEEISbkxzGo7JrGWlXYfQcrdh4ZoVssEWqKUwApHd1ARf98DD9NutXBZjJSCPE84cOgwJ06dwQ/L7Dcrw+TuF/dq3xPAEzMz55y1L93qhnnuyDOL9hT+YPGn0GVFdn0YhGy126yvtXjllTfwfFWIN0XU1+SGOMkRQoKzCFlMAhJBlmSY3KCQhOUANagl1lozMTlBJ7FYUxTs5Aa0VozWAiYaVXJj0EoRZ5Y0N0wfP0LjwElWPngDkyV01q4wOnmIqZMPobTen/4T4hsnT87sWYB981q5Yu+puZsdL0yMnDDwkVKRpTk4h7UQRTHdbsTo0DACSbNWYXx8ZJCzDHmWF+aJtaRJTrcbs7nRod3q0G73sLlBSIEf+Pi6sDWhMHJP3H2C8cl76CWGNM8ZGR7BD0LS3NGNExqVEsKB0prMQKlc4i//tV/izVfO895//BYHRkc4cvLeouTh9tABzMlbzAs3BXBmZqZlsF/Z65hz0O8XIuFpRZpmxFGKpzVxkmJdTppldPs93nzrPGNjowgpkUCcJDgHnvbJc0OUxOTGFbOwc0hPE5RD6rVqsf2JgSwrDGrrDGEp5MnPfh5USDcuJpxGY4SRRp1yGKAL6UcNdj5qzb+PNTmf+s9/meWVDhXfIUyMENsezO5x3SjO1rivzMzMzN0xgDAQ5T3Qz/JCVD1PIZWi1+2TZikAYeBRKZfJs5yF+auEgWJ4ZBhPaaK4MFEMoJRkdKTJ5OQYoyNNms0G4+OjTE2MUqtX0b5Ca0GzUWJoqEbge0hRFNdMHZli/HFJogYAAAfMSURBVPC95BauLG1QbjSRns9os45zEHqakhbEiWFjbYXo2rtYk/L0F/8mwdhJuuvr5FGXNIn2zKjYaXPuxd1G816kbnUQ4B+99NK5//a552aEEKe3HxJFhVnh+yHWWeI4BqDb7cNgI7Erl6+xtLTC6TP34/tFsbX2NOVKGa2L0qw0z0jjrNhcIi+SzftxQpqkxdqy0vT7CVluB2F3VZRI4KjVhnnj9R8RJxFrS/P4Iicb5OAEWjI1VOfwwXGWllc5fGiK5sgIfm2I4QMTGBGQmRwvCHcCCDdE45196a67jv1Pt8NnX3O4Ejzv4CHgtHMOkw8WzqUgiWKsdfi+R5qm9Lpd+nFGa2sL3xMEgY/WxX4wShd+s3G28DqsZau1xtrKtSLfOU0K8VMaoSS9zhaddhvtae677xQn738EJSVK+Uwfm2HmxMO889bLyM0ek42Qo+MVmpFG1WeI1mY5dHCcja2EH37/+9TGDlIeHiPLPJojI2yurw0cgMFuIbvAc/BaV8kX9oPNvk3w2dnZpkO+CkxvbnZJ4hg/8NlqtelHCc1GDYQgS1MuXVpgZXWdE8cOM33sKMZYHII4TlhZusZrP/we8xfeIttco+xBSRdRY2OhlyRsdmOiNCXOLImxpMbhhODpzz7JL//qf8XqWh8cXJm9zD//5j/G5R2mR0rcfahJffQAn/sbX+Xf/fb/Q29jkTOPPsr8Wkzdj7j/iWcYnzmFdcXArXN4nnd9YtFcR3LmzD53d7utCG/TSy+9FD///HO/L4T8Yrvda+a5QUpRKHhj6EcxnU6fOE5YvLbC1fkrPPHUY0jpEUUJ75x/iz/5nd/irT/9XardaxwpSY4Olxmvl2mUPGq+Tz3wqYaakqco+x44yK0hNhZjHe9fnGPug/d45NFHkLoo9cdK+p1N4rhLJdSM1EJOPPgQ4zMPIPKEix+c52d+6b9gdm6VamipjU6ivWCH+4pE80ItOHgtl/z8AzMzS/vF5Y42nJqZmZnDmTN5nr0GRSQ4CHxK5aIKMk5jLl28hNCCe++9C88LWF9b44/+xdd543f+KXfZFT4zM8aRRoOa56GFRLoiP7CIiDi0EJQ9RTXU1Mqasu/jCQnWoZWm2+5icsvwUJN6vcoDD57mV/7mlwgqIyysdVlrdbj65vcZnxzlvic/j9QN1hbe4aEnnubawhK5/TBv50PxtYXYSp659xYz7icGcABi66knHztjrX0pTRLiOCXLi41wapUq4+MTdNsdSr5m7tIl/vg3v8bh5CqPTE/QqISEXoDWgx0tbWG+2CzbCWcJV6SjFUB6+J5Cq4I/nJD4gU+702FjfYMgCJk8cpjR8Um+8IW/ivLrLK22ufT+2/TWrjAycYBHPvfzrCzMU6/X0J6PhB3wdrLInPvmieMz+xbbTwTgNn3uc59+PsvSF+Mkod/rs7S4wvz8PLOX5kj6PcJyiR/8zm/y6FSJ0XqF0NNoWeRACwqlnaWWPLVYW8yeQlgyawabThQ2ZqAFvlI7O7mtrq6ByVjfaLGxsYl1jth6PH72Gf7qX/sSpcYE15Y2Wbn8PjaNmD51Cms1fuhTqjbwrtvRyFm+evKuY89+XBw+/p5xwM/+7NMvDA+FM87ZuSjuEycJWZawubHOq9/9Ex6bHqIc+AVgxuFyR5Ya0jgnT4sd2YRgUPoKBgdKkluLsQZPS8q+j1aS1EEprKA9jzjNqdXKICxREhOl0OvFnH76aX7hb/1dhg8eo9PqkGcpQkK5WsM5S314aKfoWgoxZyVnTpyY+YefBINPBCDAZz7zmblGwz8zNNR8sRyG1Bt1ms0hjjVL+NpH4MiTnChKSVNDllqsE4NVUodwRdAAKKrPEUVeoFJFRqvvIaQgCEpESczBg0dYXtpgdX0d4Ry+Ko612gnVWpOjd5/kxMOfJWiMgtJkcUStWiGOYoYnDhb7MjheEsKdOTmzt397J/TJCmevo2ef/bvTYyMHv97d2jr7qeGYIRET97pEUUrUz8hNjhvscYCA3OZY6zDOkWHJjCM1hjhNELJYJcsMvLG4xVLfMNwc4szDT1Ku1KjWaxycOkiz2cAJgclSTp6colypsLm2TtzdZGTiIKuLC4SBJs4Eh6dnzmlPf3XmxwDcNn1iDtxN3/jGP537B//H//xMkmx8JZBmLkkS4jgjilOcNPhesSeqw+CwCFfYYgaLcxQL4nmxVYmUEk8pfN/D0x5T41NMTh3F5BlJEmNzS7vdpdvr43sepXKF5eVWsZ1orUa5OUpucrrry9RGps4JYZ45cfLEMz9O8ODHzIHX0z/7b750NunGz6Vp/kWLLRJ+MFjjijU0UYTFksEaSOaKEFRuzQA4H4Ti/GZGqmoE5SpBEDI8Osbw8DiNeoPxqXGqlSpaS5w1HL9rAqUUSRLTWr56rqT1i4898/lzP6kx/kQB3KZf/9LPTVtff8Ga7Nk0M6eFUgjhMKZIzcgGqXKJNViKNQ1Pe8Vit1K8sWGJrI8flCjXmhyYOMj4+ATlUkgQlGg2m1RqIb7nU6uF5w4cqL3c7/f/4ZkzZ37i/6DgpwLgbvral35uOjPpWaXlF6zhrHG2aa0gyQyZyXCDjCo1yGt2QvGBbeBUjUqlRr1ep1yuUi6XqTUalCqVltL6XJ6k58bHa7//i7/483M/zfH8f095BThjKct1AAAAAElFTkSuQmCC", + "e": 1 + }, + { + "id": "image_1", + "w": 80, + "h": 81, + "u": "", + "p": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABRCAYAAABFTSEIAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAgAElEQVR4nO29WZCd53nn93uXbzn76Q0NNLYGQIICV4ASJcuSRqTtSeyKy5JnPEnZcyH5KpXJhT2Vu0kmoiqVpaZSNXYlF04yiSSXZzzxeJGsGUsjWwK0U6JIgKRIgiBANNZu9Hr6bN/2Lrl4v26J1m5J9k0Oi0UWG326v+c87/P8///n/7yE///1Y73E3/Uv8N1e16+vLpNCv38QyMmBfDDgxKFDK3/Hv9p3vP7OAnj9+vW+0enZVjN9TCHPTvP87J319eUDczN9KSVCCpIkRStFEsXk+QTvASEGk/FopTJmpXLmhZj4Qq65dO7EicHfxXP8rQbwi1/96pPt7ux7W63Gk800frJyoJQm0oppnpMNt4laPbRSSCGRSlBkBd1+D+k9ZVWipcDaiuEkw+PBC4SSaCkvlFX1+dLaj587ffrS39Yz/dQDeP78+b6L9W8pod4fx8nZdrdH2mjSbjdRgHEWayymNDjhcdaSJClKCkAQRxKlNKkG7wVSWrRSZNMpW6OCylgqa0mimKIqcMai4nhFCvF0nvP5c2dOrPw0n++nFsBnL158MsuzD0odvU963y+qCh3HpGkTIQX9/gy9ToeyyMkrQxJpskmG0BKlI+JI4T2YfEyv26YRK5SKqYqcKG1QFiVVWbK+s4sREgFY56iKijhNwXvwFpAfLZX88LkTP51A/sQDePH8p5bXS//0gaVDH8iygsoC3mK9R+uImV6X8WRKf26efqeL9Y6qKDHWobTCOYNHILzl1ZcvsrO9yZPv/XkWFuaZbt/j9u07nH7wIUyR46XGFAWrwxzj6gfyHoRARxHWOvCgI0UURR9VUn74J92I5E/qjS5evNh/+dWXPtQ78cDFo8tHP4B3OG+x1mCtw3uPd46iskjhSZOUNElQQtJIE8BhbYX3nvX1De5efY5P/L+/T1MWrNy6zmf+/N8ydnB8+RhlZbl65x6xliSNmFiAkgqlFFop8B5bGby1KKVQUiHhg5vrG9dfuH7rQ9evX+//pJ77JxLALz777JNe2ItC8PRwOOhXxiGkxDmBUoo4iVFSIIXD50OW5nuoYgjO0Eg0QikajQYKQVVZFubn6c/Mcfah+7ly/Tq////8K+5ubLG28gZbu7u88NyXSSZryLhD2uzRbTUA8M5jPWgd4b1Hao3HIQQYYzB5hvQ8baW6ePH115/8STz7jx3ALzzzpX+Jqc6njcayRyCkxJiQdVpLnHOkaYJWIMyEVreJSpp0mpLB3SskUQTOIoTAApHWlGXBsy9f5xuvXOfF5y7y6OljHFiY44WXnufqlZe4//QZZHeOPM+YTDOUlqRpSiOJacQxaaRJkjhko/MAaKVZWDqEcIbBYHt5UvjzL9+486Ef9/n/xjXwqxcvLpui/DPnqrOtdodYeoa7u/Rm+hhjcB6meYEAlJ2SbV1nfnaWpo7Q7Tnmj57Aje+xPonozx/EGsOt1Q2g5N/964+wduMyvtHjgftPsHlvAy8c7/6ZdzKzeBStIR8OWDq8zNLyA0hn2RqXeBkz2+sggKKs2B3topUijiKGwxGba7f52hsbvOfR03hr6bVSbmztXpqdP/Sr7/wbduu/UQZ++eLFs7Ysz8dJfHY03GWQlTjvaXe7xFGEc46yqLBVRpUPQVg6h+5D9peJj5+lf+x+poMNCpFiRncZb9xg594V1m+8wMVnzvPog8sUxLQjzR994jxrG1uUecFffvY8ly49y6svvkCctqmmA65feRHjPC0lGI9HZJVhOJ4wGI8xlQ3QRyk6jZQ00uS721TeE7W7JJEi39o8m/j8/M7O6vLfJBb6R/2Gl1++eNaq5vlciL4QgkMLM2zsjlHdhf2GoaQiij3FZMQrF7/MlRtr3H90CWdy2knKz//yP6LZSNkeTnnp6g3KaIfh7ct88Ruv8jPvfIJPfuJzbI0Llg/06TYitqclM/02kbDs3LuLmuuxvrNNNo44dGwWW0yZmT3AJFvl7o3rJM0meJBSEqcN+t0OVdokVob/vJUyLTJu3pqQnFzi5INnmOn2loeZubi+s/PUgZmZHwmE/0hH+Pr6zlnpivOj3WG/MgVVWZEkKXmeo4VDeEvabJGXOd7BeLjNM+f/hH5/nm6nzen7T7N4/Aw7wzFb22v8H7//cW7dvEGapMTSMz87y5Vr1xgNJjz+9sdJi3vs2og7b9yhf/AAC3Nd4kbCmcPzVC4mVo6f+U9+lbcsH8dZR5y22BxOKIzB151fxQm97gzWFlRliY4SsvGAnd0RnTRiVMDMTAelNJUxg43Vjafe9fZzP3QQf+gMvHL9+tlssns+TeJ+o9nETT1VZcmLnKIsSDpNJBoQxHGKNYZIBVZxcOkIvZl5Ji7i9o3LfO4zn+Wvnvkm3UaDB2caJM2EyXjE3ZsrtIQk7qbcXtvAjQaceuRBHil3eebmGqPdAcdPHadqHyTbucd27nHWMJ2OkeUY1byPRIGxitJbvHfECCbTEZHWOOfIswlZbpidXaCRaBrGYo0hn4zJy6qfNvX5r195+am3n37ohwriDxXA1Z2d5el4fD6b5v04iijyKR6IoghXFeTO4qxHaYn3HofFOofQKSdPn+HKtZukq6uIMufanV1sMeahxT5vObRAK1Fsbe9g0zmWZ/oMRhPuTXNW7q0zmGQsVoLf+Pvv4bU//gJvvW+e7a0N9PprXH35Jm9773uZ5BXleIt+r8vaylWOnTjFdGOAtZYo0ggBEk9RVnhnieKY0XiDuNXCS0kcKyoBxaTEeomQsq+MOH/x+vVzPwx7+YEBXN3ZWa4qe16rqB/rCmstcRThsxwhJAZBHCcIJUFIojhCek0kK1Yuv84zX/4ijVYHOTMHFtZu3uDcoVlO3n+YVAnSKOL4TI/cwNQY8rxkVFUcm93itbv3mEli1nPF+toOj/yTf0JnfJdzjz/CtX/+P6LTmPHOLqO04sCx04wvX0A/8DCtxoTCVEilsN7ijcN5j6kMUipmOymmrPBpgvcOpTXdfh83nFBUBmN9P6rs+a9evPjUO8+d+75B/IEBTHTyEWcmy0YIHB6tFAJJ3JRMR5PwJjoiUhofuCc4A0gSMabZbXL9jRs8NDvDpUsv847jS9y3NE871kghaDR7pK0OQkjG0zE7uyPiqqTd65CVORdfvsLqzVucObrIG9dvwdpVFh96O7/w1Nu4TIMlb+g1Gkwyg8AwznJajZTdSYHwAoTA4JFCEGmNqSosCiElWmukAJBEjQZ5XpKVBUmikdIvN5LkI8BT3y8+3xfGrO7sfGhaTJ+UMtSPJA7gVFqHqSpKU4KzSKWQUqGkBBzWOZAKqZuoKuPhB45y49XLvPXIQQ7P9ZAeGq0uvYWDtGfn0WkDLxRJu8/ioSWaWlNYy7see5DHF1J6ruLA3AyvfPGzvHjtLn/4ib/i+JkHWbu9SUpO78AhJqNdtFDcXVsjTVMiKbDW4IxFS4V3DmPCCcIBCKzzOOdxzuKdozQVM/0+wnmk0JRV9eQLr73+fcH29wzgzk62rKV8Oo7iQMiTBKEjtI4wPjB37x06iSiLAmMMSqoAH4CqyGjNLfH4Y48SS8mpxUUSbwPFihJknKCTJECfqkJGiihu0Oj0OXL0GCcPHebkfQ/zX7z/V/jHv/ge5lLJbm7ZGoy49MzXWc8Vm3dukc4uoJuzSJvT7/fY2lhHSEW3mWC9w+IRBD6stCaJI7w32JotSaUQXmCNJU1SrPekjQYeR7PZRCv59Evfh/Z9zwBaac8DIASTPMPZ0Kl2RxOE0kE+MhYhNEmS4rwjnAePUgrnHFI36R49R78/RzHNiJXC4Wk0UwSeKi/AGrwtUcLRaqW0el3mjxznvjNnmV9coNubQcYp3V6Lwy3JYiNithzy+3/6H3GDu1xf20EnCXk2oTs7R0MJvLO0minSO4QQCDxCSvKyBCEQUgGglATvUVGEkIIoTpHeI4QgTRvgPVEcMdze/pc/UgBXt3Y+JKRfRki8c+AdCEGcJFhTYkyFUqGGTKcZSkqssXVAJUiJdY44biGwHD52H9o5okiipcJWFfl0ipCCyjt2nKeMUuJej/bsHElvhrjXJ0qbNBuatjKkaZu3P/EET77jUR4+vcTO5g53N0dcu72Jc55Wq0vSmWWm18S7CqkjOmmMQjC1nrwsyScTstKQRDHO+/Ch+yDiGueonCGO4rpcRaRJCs5zaOnw2Zdfe+3pHyqAr7766nJl7QeFDLKQcxalJEWWBagiJM55yqLAOoeUAg/ESYSUEiklAk+kNV5Imp15dja3SGJFLAXeOabTCfe2tvnkF7/OH//l57h77Rpbt++wtb2Lj1KSdpe4kRI3mqTtHnNLyyQSLq/cZctEdBaXmKxv8MaddTbXN5Fas725TuUkUmmkTjDW0Ov1cNaw+sZrWGOZmZkl0rJWsDVaanQUIYRHAhJBUQSwXZUV0zxHqvBcqOi3Ln4XGew7unBzdu5pIcWydY6iMqHo4omiCGMMeIe1vlZcLFGkMNbgXcBbIZwCjyCKNb4YcW9tlcpYAKqyYDye8NkXXqEdSd76wCkOzs3Qm5+l32lhbUWkmmjVQEcxSknUxjreFKTC8uqrV4iSmKVug8GkJFUC6xRz8/NEWjAZjxBCIr1FxU2aacLSkWPh9DiDJEAb5xzeWbxTSCkxztFIE5w1IAWx1rSbLaI4oipzUKLflPK3gTdl4psycHVnZznPsg8ID0VRUpYF1hq8UAwnU6xzKC2JtEZrjVIKa4NQKmTAgDrSeAFKKyIds7NxF1OWZMayPZlQFiOuXb9C4koOL84xRHN5d8rtSc7qZEo+3WUy2kXoiKTdIen26R8+wsnDR2j5AFMib5hpN/gHj9/PfCtBeM/m5jpSp8QqRghBHDfAG7TWdLsdkjhCCYlSggASNFLpIPY6iOMID0itEULivcN6h1KKaZYjvCCW/NaO33lTFr4pA4fD0dNaa4aTCf1OG+csSZxQ5DmTwRbR3ALeg7UGKUSt9kqSJMaYMkhvzgECJRVVVTIZD/nGKytsrN3jzLF5Hl7qcebYIgdnc56/vsmzX73K4vJJjjdf4ecef5TmW04xs3QYObOAiBKk9TT7cyzMzXD/fIuZE/fzyILg9Zeu8qmvv8p7nvg5bDlkZ2eE94Le3Cw+fIJIB1IK8tKACEB/Ms2Q+LoLW4SSKKUAj6pLkHGeKE7I8ozKmvA1JUia3f7wjbU3ZeGbMlAI9d7CVPTaDZyz+0dRR5rZhUW8s1gTKJFQCiHA4cmLAu9FDVwVzodPMs/H3Fq5QcdMONZLSYRAJSlHjxxlptVElkPa3vJwv80/eNdbedffeyfHH36E3uISMgqdXioFKubI8jLzzZisEtz/xM+wOx5yaPkkvW6T3fW7HDhyHCU93lu8NeF5lCSSkijS4Xm8p5EkYfZiLVmWEWkNwtenRhNpTaQk1tu6JhZopXA+1O8M/VsXL17sf0cAr1y//sEoEsuxVHgEzjlwnjLPyYqSKIrQWhNFMUpp1rYGTC0ID1VREEa0EluWSKEwlWFz9TYnTz1I2uszMp7NUca0khw++RaOnDzNwdkO7zh9kEcONZmb7YKtyKcTpIpRUofuWOaYMsd6yYF+EzfcwgvFrdt3efm1N+jPHWBr9RaGgEul0gj1rYOlI411oS4rJYP4YUKdU0pSFCVCCJxx5EWJKQrGkxxnLKt3brM9mhAnCUrJIJDEjb5qtd7/nRmo1AcqY5BKUFUl1rnQCNKYZtrAusAnK1OhhEePVnF5RpKmRElKFEc4Z1BaIYUH4YiSBmPjeOab17m8mbE5rZjtzNLozDF38DDveuIc9y206HdiXJkx2tzA5jnlaEg1GVKNB5jJkHJnE1dMiRsJ5eZt1namLMy0OTzXY3Zmluk0p9PuUDlL0mwjAGeqkAQenLXEcYQQkkYS4yqLlJJWs0Uca1w98PLOkTQbNFtNlI44ffoUibMI55BSY13IWin1B94UwFdXV5dtWT65cvM23kNZBtKttAQPxlbcvrGC8wIdJUitWTr9OO1OG1HXDY8gq0IzqUxFlU1Aal549ktIbzgwv8ihTo+HHniA7sIiS0ePcvZtP8N73/2zLM72aDYSYgV2vEs52qQcbGBHu7h8RJUNyKdjdLPL4vws2BInEpZm+8zMzCKjlLnZHlv3VpFS47zB2kDbPCCVpKoqyrJgczAlSWIkAi8gijR4j8fjAGcdd1eughCgEmZne3Q6HSajAUVRhObi3JN7k72Q63n+pPOOpYOLoQc4H7KtMjjrSdKEI0ePYp0FoUMBVg4lQkMRQuCKCRurq3TuP40AhoNtFheXaEaC9//iE+zeWkfKBvOHDhD1Zkm6LZQvESIcOyk0UkiqIscjMGWJjmO8NXhTYU1JZSyuKqhkTLsV8cadMQcOzJIeeJRiPECqmGazjcBR5FPiRo+yLLHWEymJFjGR3cTRRkiBEoLSWLSUaBUyUWvN8ZP3UZYlzTSl0e6QFwWNNMU7j7EOHStsq/N+4KMyYLPyfUVRMp3mWOuI0xRnKwCMDZhJKk0cJzTTGCE1kdLEUczm1gDjPCppcuzEKZQQKCmprCfPxiRJzMLhY8zPdDmytIC1liqfYouSxsJBJOCsx7iAMQWeSHhENaUYblGMdsinU7zzlEWJwDIYTun2+iyeeoBu4oGI4e6Q7uxiaCBCUmXjfb1d4LHe4/CkvVm8DTVRSomryr0/hKpFV6UVOEeWZfukIU4bKBXUHZyHyr53/whLIc4iBI0kpigzirIgr8KoMYoCXSuKEuegKApUFCMQWGPQVHhr97/uPOTTITpuM9i6S6PXY+HIA4hI0243Wb13j8uvvMyfful5VjaGNGfnQBiwFucsAof3FVQ5LhtSZUNsPgrCqPBUuWG0ucrGYJsjj72Vnc0N7q3dZntnhyjWDEdDPA4dR6haslKRwlkHOIQH7yqyoqQsK5K0UR/CnLIqqaqqHlXEtUrjiaI44BEd3jPwa/t+AH3x5ZfPSimX4zhC6xiPZ7izQek0M70uQkCsJd7VjMN7rMkQ3lMaQ9rsYK0JFM+WOC+YZmP6/Xmu3vwmcWeRmf4MjXYHqQWXX/g6F7/xItujMdnPvo0nzj7KwaOHMYXFFlNyUyFI8aYKWSIkeIsz4Wc7bxlPDA+dfYTGiSNceubLzB49hZSOzdVbxJ1FdrfXiaMEIYNwUBXToP3JiFZTs1tMiZUAKXDehe6qNeMsR4owxUukQiD2NYDdwXbAlkLQbDSRSvWvr64uS3SybIwFD9tbGxhr6XZnWZjrobUMokEUU1kb6mJZ4J1H1g1cCIGUAoRExwmmqqgM5MWUosxYPLRMsztLr91itLnBjbv3mF9a4Nfe95/y7ne/m0ani5MJSbeLUoJissN0NKKqSoRSASdJgXOWLM8oq5Lh1j2iAyc4dvgAzVaD2zev0+zNkmVj+t0WG6t3iJMWUgRVKI4TnKnIioKyqgCFczCZjNnZ3sGJ8DTCgzOGSZaRVxVREuNNweXXr7Kdh6yUEjwe4UEp9aTc3N46K7XGOE+728M6i5cifNoOhJAMRiMmox3G06JOX4HF4aylKAoqB9PJkHvr61hbEqUp3mSUlWVu/gBR2mbuyGF0FBOnTZI4ptldQMgE7+He3VWuvXGDnUmOTmKEr8JRMiV5UZAXGcPxgCzPyIuKwWCITbuUox2SmYNUo11m5w7S7R9ACRsgkDF4L3DW7FMy4RxeCIIPx9KIY9rtJq6qQARGpSNFpBXWGIqyIk4bnFposXr1dYrKoeNgvXPeU00my3phtveYsxXGGDyeJE7AeYxzpI0kWDQEdOfmefbrzzB/9CRzvS7SeSrr8FXGpRee4+yjj9Ntacp8Shy1mU53SZpd4jgmzzM6h5dxr7yCiFLm4hmef/YVvvb1V1BasbO1jlFw+sQSZx+8D+0rpFTkZYl1HlOWDHYHDAbbjI1DTDPStMWNKy/TOXIfRic0IkHaXmB1dY12O6Eqp0RxAy8VSRwhvKMyE2xVEUcK4wRC6cA+BCgh8UBZ5Hjn0GmAOtZ6VOcAjz3WCkzMWgrnaLRaxKp5XHtP39eWMKU0oqZilTX4bIpWUT2vyHnwkcdQWuOdJx+PibTC6z5vffwJtFY0mimj3ZxEB3jTbHRJk5SymNCaOUzUTpjc2uLmxm10Be86cx8PnDqBU2fYGq2ytnmPG9evcvDALNI6oijBOstwknFvc5NbG0MGkwxpB8z0elxbuUJruMXZt/8sAsHLL3498Ob+ApUJ6negSB4hJEmSYLVmOq5qFckRaUFpDHG0xydU8Ol4gdIKIXwoA80WaRwzGo1I4lDSiqo8K8vSLI+zjKoy5FkWAGdRBmhhHV4QRPEoQkUxqgbNSbNVy1cOKSRxlFBVOUnaxFlba2iKaT7Fekmz1SLptJhMx8xEbd7+8Dm6B5ZZzR3fvH2TwTQjiTTCBuHTmgpTlWTZlM2tLe5sjbhxbwBe8MDDjzCdDFk6fJDKGQ4cWED5kj/6N/+a4WiIqwqcC6MCgQfvqIwJYi/BCqelqvm+J1IB7wipSNIUlEDhgz1OSJyxjMdj3ljfRinFJC9QUtNqtvraO9dXKuAeJQKLSOK47qqe6TSj2WigsCRxI6i4wmJKi9QROIfU4RdL4hQhNLuDTYy1WCRxFBMnMb6eqxw8vEA5sDz3+jfJrhiMyVhe6PPgiUV0GiOAWGlAMp1M2NjZ5cbGLtfXdymsp5VqTt5/H8ZLer05Wo0ZiqJg48ZF1ldvcXvlNicPHQiZpATWOhwSh0MhaqlKYEywCislqLMkYF5jiXSM9T6om0IQJTH56lXubVdERw7R7XTweApT9bV1tm9NSafdCYAxDsS5KGtgKySRVrQ7MwHhFzlZngcRoapCpgHgqYxHSEucJFRFjhCKPC9JGy2yfIipCqLZeXK3Tb4xoagcR2Y6PHTyMJ1Oi1YjCf7nPGNjZ4eNwZArN7e4sz0is9CMY/rzR0jSiHa7Q7Z+i1il3HjjGuW9O8wtzHL86GFklIADsXdGavucsy4IqVik0kRRKEcA1hi2trZwCPrtVj3j0VjpiOOIpZMPc3DZ4pzBWUJjErKvq6oiTRv4AMW5fXeV5ePHUcIgowhjw0BmPB6io4gqK/BC4n2F1oqyrCjLkjSNcdZSFjlF5agqg5cxUimKIscWY5wTrFy7ws0ty+PHjhBVJUcW5mh2uuhYUXrFcDji1to6V29vcHd7yJ2tCUIrWo0WCwcXefjxx9meGIor32Tm0CGy3QEqbfHKq1fpLJwgbqQ4Z5hOJzRb/ZD5WuOsD0dTe/Kpo6osZRU6tI5jiiJntt8jUpqsqpAesiyjkSZUVYUTos5IhdKB7iJAW2coygKJIG0kLM20MCbQuDhKEL4iz3PiKKLMC8DjSgPC42yAB3EcEWuFlDHNRoOd7XVMOSVud5BSUlWG6WAL4z1bg12uX7vLkaW/x5l+i/XBLve2d9Ba4LVga33AlVsbjCqHdZ5Ov0uj1WF+dpZ+q8XW+h0OnWyT5Qa9vsHxR8/hqoLR5gaHH/85Xn/1VZriBFFvCVuOkSRUlQEdYYoCKQTWeHQiUVISC8HWzi79XqeeZwuGO5v05xeZn2/hPGit2Bns0u300DrBeY+oSoQU6DIviDoJXgR+WIkEVVnSOA51ItIkaVwzAqiqgjjWGGuI4piyLHDOURmHkhopddADvaLfndkXZrNsDAjKvEJJz8WXX6Xx4BHcZJfxJGM8ycgKQ1EYSmvQKmJpcYFOM0U3mox3B9BqEiuJm0xoHzzM5PpLuOlpJtZz/Og8WT5k9tjDjNfvMDNzEhH0FWQU7ZvN86LAs29cBSXp9zsBrxMa5tLhYxRViUBQFhnTrEAlDbRWobmFDRXSKEI671a8DUZE68JwudlIEFKSxAopINK14z3wZoSu56lKgRC1PUIgZVg1KIoJSdpC6/AhSAzZNKMoDXlRYR24fMoXn7/CN1Y2uTOYslVYShNsIgcW+hw80GN+rsvcTBeXTWk3G7QPHUdoTRQrpuvXiGYP4ye7ZDsDzv38PyQl4/CRg9y8u01HWzZ2c5K4tvn6uqw4j5SSNIqw3oHSCAQ6jgNsqbt0IwmSfhIpup0m3WZaz3wion0+LFek1hFCSSQ+fCpSUhmHVgovIG00g+M0z3E+FGMlw9BlOp3UWarwPszjwsQmImm0QAiiKMZUGVmWU0wzSgtRnCBjwWBnlziJyIxgdnGRtNmm2e3R6MxD1CTLcqaTEVJ6pPAsLR3mwMHDrG9uMR6O8N051lbvkqYxr1+9jchKBPDQ297J6rUX2b53h6wokL6qp3CBPSmtGWcTcI7tjfUwx7YWrTRxHLM9HFAYS5Ik9e/bQAhBVVX42rippAThB9JbdynPCyprKMsSJQnjSCBNU4T0YTYRBSIdYqxRUqOUJlbgLDhvGQ6HYSpnC5JmDykl1hry6YhOf5bd4S7TvEQoTTtt0O63ibRCasVgc4vKFZSTEYPNTZwJvNU4TxwpmklKq93E50OuvvRNDh05QVd6Vu9ucffyRT79R/8O2zvGdHfM7IEjXHnjBlbAK5//BDfvrtJpxEgBKgrTuODiESzMLyLxTMYTvFRUpiLVit2dbYbb6+yOhtiqDCsUWofZt5AhW70fyGazsduINAJPrHXgv3V5iFSMdwLjDNZYfM0XhQhTfecsWsdYa1FKM9OboSpLJuMRHomzYQi1fu8eppwyyS3GeYTWWC+Y6fcZTXNa7QTdSNnYzTGIcLREhLMO6yCJY6IoodVqMdjc4NBcj97iYZwpOHn8MLPK8eixHpMrX4O4iRKOo50mZQVZd4nLr36Ty3fXaTZTYhV4brORBJ+OFAggSmK08FhjaTTbLC4cYGb+EIvz88Gyh6iVmrCJIADj7Qu61WpdctZ+QKcJ3hHEUxEsGKPJdJ84N9IEIQgYEND7Uj4454misJ4ghA+rWnEM3pPnQ7u294AAABLqSURBVJJmk+HmbXZ3BogootNs46whjSRCNOh1Oty+tcZWZplrB1bj6xaAlOikSbfT5fbaBu0kIms0ELZCmAqZJhxYOsTdu2uki8dJI8mf/sVfcXdtwJf/8F+xszOkMA6v/4RTj72Vf/Sf/RwHZ2eZbQuShsf6MIZoNRrhOeIYYwPI3ns+WQfM1qaqne0tmt0eSqoVLavqklUS9moE9VgyUkT1uVdKYYxBE4CnUBFpIwrCa1HgcZRFTqwhy0dEcQdJ4Nf5dIKrAkUcTXJA0mk2mGQZ1hjmDxxAu5xbqwOMjvYz11lDo9VEqIRWu4ebDnF5zqHDh1jfehUftWj6VaQV0OnTP/oA6ugZ/reP/CFLcz3y6ZCFZsxgJ6yNZcMhl79ynv/5618h6i3wnl9+P//V+95LxzmKogrlyltG05xmmmBFKOdVVZHUAB/nKKuKVruD1hqsuaSBS6YyKK0pqwqJw3uHMQ4LSBm8f8g9XuwBR2VD+kskDkGWTVgrK+Yagka7h9QaiSXLxgx2thgNd9kZT4lbTVQkEZUgjtv0OwkvvXCdzAYfzrCs6PiIqKkwxmESwWiwzcH+DA2ZUXTu5+DcTW7fuUtfS55/5RqtgydBdLn9+c+xuHSUaT5hJ/Pc3BqwubmOq+V7byu8gcqs8R//zUd54/XXeeo97+DcmZM8drSJdYZ2I6FyHulBKYH3mizLaDdaIaBFTuUVDanR1lwSAF95/vmL1pqzcZzU3QVa7W6tzoTpvrcGURsVn3v+ImfPPY7JJ5RFSV6VxMpTTgaIuMXa+g5Rq81MAjdWLrO7vUE22uYrzzyPUS2oMpwQLB89SENJ/uIzX2N1mKFUaBbNTpN+ouilEXPdJufuP8ri8bewcusNLq0Mecev/Aor5/+C102LX/uFd7N5b5XXr67w2o1btDsdTJ4xmk7ZurdJ5WzwLQagVRsCRG1CCsdUzSzxzz783/JLDx4L7jEPzlaUxoYVNQTUyVNOJ6zcuEGhWpfe+/jD5zSA9P7zSkdnhQ8dt5E2qBVvoiiiKMrwg5QEpXn4zGmEc5RliROwubnJwUOHSFozSB3Tb+1ipGA42gZgfXODpnQYC/OLHTbXMg4fOMDhxUM8/9w3qIREKI2MEiZFyTgvyNptBqlhLYfXBiucGmi+/KWvI6Tga1du8MRTP8cvnznGK5evYpTCRhGJ1ly7eo1sPEHrCKXDB+6EQHgQMmDdPRjmTADSYnCPf/E//Q7z/8s/521HZmqnlgyycYgd1gWYk7Y7PHDmLQy2Nj+/P1Tyzn08SRLiOEbrAGGEFLWq60mSJHQiKXG2Im21AReMlc5xYH4e4QxKxwgBzc48nVaDIptSTYfM9mdwxoBOoMxRjTaLR5a4f3kJS8xgkuNdoIZeKISKKSrH7sSwvjVkSsq1115H1EvY2jtuvHqZF195nb/83Bf41H/4NF/84te4e+cOxXSKVmGOYmo2gduXBUM2IevRbXBoOQdm4yb/3f/wv7I5LRmNxqFUWUs+yYCwawfgrac0nvbsgY/vB/CdTzxxQUg5QAp83XWtc0RRYBph7hEaiXNBnNwzKDoXFBspwqcrRTBXjoabeO+oypz+7DzGek7ed4qd3Yz7lo/x0JkHuHXzJg3lQURoFQdWI2XtOQzGRxEnpMKxthGy2XuHNQWtZsLnPvOXjHd3cEVBlU8pjUMQflfvQ8SsNeDZL0fee6QgWNysxToD3uCcIb/5Oh/59NdImo0w5owjGs1GDVvEfinQWq8sdDoX9gNY/8ePJXFCoiOSKMK7YOE1JswnyrykrML+R1WZ/TeMpMR5g/MBYJYmSFzOuTD1F4q5botef5bZdsL8gYMcmp/l5KF57jt5hEuXbyGECnBFR2ilg2ldBU9zb3aOnY17CCnrnWBN2urTjR1CR/Wf1UgpsKZCSBGmh4CpDEFsDwTAELwy3ptg5aix7B5DAcdf/fm/59YwJ8tysrzAuWD7qIwJVhEp0EJc2IvbfgBdVX28MhWOMICOYr1v3YXgDouiaN8W5nxo6UIJtA6+kSBBQlmFHZJsOiWJm7TbHbozPd544wY/+/bHOPGWR6hMyb27qwwKSTD+BB6KCLK6lDI4s0xdw6TaHzecOHWM1167VrtHw9Fybs/4XqsE4YaPmg1VGO+JlA5yvQkmc+8conbve+8QQLZ2lT/4i6+QlyVpEhR4a23tmAjvXzr3se8I4CNnzlyQUl6ozF63DZRN64hIK27fus1wPAl7It7VtSQQb79v4vGYygUAZQucLekuHCLCc/fuGidPn2F7c4OHT5+k0Wjxyc8+i/UOqcPehlQSpUM2BeHTUxQFe5sCADJKGQx2sF7i8EgVUIP3fv9vV2eUEGBNRZGNMGWJtRZbBVaFc3jrMJXBmCpcfhGYBF/+zKeZ6JRv+ySQURCacewf3zcFEEA4/zGtNeCRUgXzoQ51cOnQIXrtFlIHDmy9C/KOg047OKKiSKOUQGrNZLhDNp2yOD+DkI7NQcbbH7mPx972bq68fImN1TVevLYdzEp1h/d1WRBC1dehxFRFFkTMKMYLgcKxtb4TsCmyHhurb1PGw5F1rq7P1G4MZ+pMDT5BL4IbH2+xZYU3QampjGG8tsIffOorOC8wZk8jkBhjGU1GT397zN4UwIdOn/5oHEUrzloqU4YVKeuoynrW6wPNcxBcDD6cuaKytFsJHrAeqjJHJTHOwtLBQ2yvr/H3f+G95JXn5IljLB2/n6987XmsrE2U9URwr3lIIdEqaHhKSkxZhi4u9obaoVQoLTHWBMtd3ThcvVVgXRkur6g7N97v23b3XrYeUwasK/dJghbwF3/yZ1wZ5EgBkzxDa0lVlSvHDx362LfH7Dtc+pFUHw41SOBlmEwJIYOOpnTYh4tiRO3OD5+iITPhoapiyua9W2AM/bk5ppMBR+57iFaaMnPgEHdv3WBxcYELX7kYLsyJdF3k/X727B3JPX+fUOGIQxj4GxsKujUmpBf+W83Ce5wJDSJ8rV4I0gGGCedD0JzfhzbOuuC0sB6cCyPR7Rv8i//zD5l6yWy3H0xHKnr6r8frOwJ44siRjwrnL0Rao1WYZom6q+7DAgFlUVCWYWdEq4g8y8J2pJsynUwx5ZSlpSPk4xF5YdGtHv3ZebzxrLzyIrcHYfS45z/Bs696hyMWfH17QRH1Ek+IcsgeU5kgrxPsvKIOmLEVeB2GYnUzsdaGjuptrUg7hHAYU4Yg4kO8ncVWQVe8fOEzfO36BuO8wHu/Mt9tf+yvx+u7byp5/2Hnwe7tlBmzvwMihahvwahCltYPq6ViNB6zsbZKr9fDy5SZToPMeLaHI3ppiiktC0eO84Xzn8d6QRQnYddEyW8dtXr0yH6GuPq/iSBkQGhS3te7ebwp+8AjhUJpVaODMA8OCjJhbcP7ANzr95EqSFUhiAqPw1mPtlM+/snPBGe/tb/63UL1XQN4/4kTF7yzvytFWGXVUVQDahlauwjQRdRHqshLpARTDDFAt5WydGSZ8WiX3XHGAw+e5bWr1+k0YxItefala+GDsUF83IMgSum6q4b3RwRgL4RA+eBpdj4YewQB7Ps6CK6ux4JABJwLG+vfWsl3tf9Q7JeHqipxzuJE+B5EcGSIesFICMeLly6y7uRHv9dVAN9zV0612k97z0pVGxC9sxjrqJwLP2TvDZTEAkWRU0xGdBoJlRXM9nvsDnaoZIdeGnFzbYftrQ2K3XW+uXIvFPi995A1s3EWb8NXrHN1VtYcljD4x3uMs7i6Qcg6O0X9ActaOdZKB7eVsyDC6aHmw27vIiBj90G79w5bmXC5WbDpgods9cbK//XltQ9/rzh9zwCemJkZGFP+plIa7z0rr73EMxdfruesEXGSBkusVCgh0cpTeU+712em28GbMd9c2eG9P/sO/vgTn+Bd73onImrxJ5/4FFbGOL/nXaGuezVl1bJ+AEJW1Hsprm4eSqn9ZcEAVeqhubP7F+y4vffF13/V7+8CFQ0uS4uUPixOeh9WN2ofTEADIZCRmf7m7/3qmZUfOYAA9x89eqGZph+uqpLFIyd49HS43MFWjvF4zKQ0VDZAAVMWNNMmwnnSRsrL33yJU/ed5sqrL3B3YxdppxA1uPra65iaM8s6a/AuYDnhmW0mdFPNUr9BI5JE3rDXfakv9fHO4I0B6zDWYGwVPAhC7cMVCPUucOK9zl4zFe8CLvTB5yilDN+LRMiwYFmbST98+RtfuvD9YvQDN9YXZ3pPv3j16nKk4w806sFSZQqUN1AW+CTGuwpjMrSKGY/GLMx0WZ9qfuOJx/hv/tl/z2/8+q9TFQWHT93HfL/H2986j3OW29evUjYO8Gu/8AQ3pjELseXcQ2f44jPP8cjDJ7l4fYvF6S3+709+ISxG21DvQnBcWJDxDkGw8Eol0TKidEVw0jpXd3n2O7Sgxnze4gl8m9r+Ya1B1gZ7gfjdy1//wtM/KD4/1MU7HaV+O4n0pVCrHFpr4maHTreLUIoiH4VhlNL05g9y4+YdfumX3sd/+Pef4i1n38FgOOEbz14kaTbQrRk+8F/+1/zjf/h+NraH3P/AQ2SVZ6ml2JVdPvPl5zj2tndw4fNfI51b4nNffe5bnZOab9c1zdnAy60LfN07h9CihlvhkjP4Vof23n3rn4CQel9JUkIQ6eBxE55LGxvDHxg8+CFv7Thx4sTg4vXrT7Wi5KKSYlkrTZ7ljMZDAKbZmETHZJNd4t4cuWqTDdf5vY/9W7r3P8Zsr4MREWY85OpOxXP/++9RTEdURGxNR/zBn51HOMckz1He8vFP/jmRN7RevcZ0c6eGhuGzti5sxntBvSEf3KZehnsRkDIID3i8C1dQacKWkVRqv0HsZabc+zD2eLR3K9XO9KnByqUf6krRH/rqp3MnTgwiJZ6SQqwYG9xNS4cOI32OLcNNkru7Q6TWDCcFX/qrT3Pr7hpXnnsW1eowGgzIdu5w/ZUXGa9dZ+vOTdIIVr72BbLBNtnuAFHmYA2yCo754b1bVFV9fR62bjyWqixwdWMRUuzzYOdNvZGparji9js0ItREa8L3eh8wp9uDUULgvbtUxu6plR8yePAjXv104tChles7O+d8Nj0vlThrvaMVRwwROFMwnRaU0zFaS/70k58OlKms6PRnWDxynK2tEccfehs5kkcOHmAwHHH10pcY3Q2qr7MuDOnrB9ob5AsCPUOAq+W1Ii+J4xjh9zjsXm0LO8tBSHVhyucsUqs3g29E+P4aQCu4lDV4auXCMz/SZbY/8t1ZJ2ZmBsC5l69d+50kTn5rPBkynk7REuYOHuWN169QOM1rN+9RVRYZZewOhtxYucaJWcnXv/hZnBB8oxYHnA0bAgL2wa+UEqHCTFbrAKOoIUoItEEJhzUlznlUFNc1ce8+1QRZ1WKCkLWpMvws7wO3F0rjCEdQevGxqxe/8sEfNRbwY9wf+NCpU79ty+LDRVEg8OSV4+TyYS5evsnz3/gGWWFrzAWvXrkaVhfqzhjoFlDD6T2pfU9I9TX+2wvqHkCWtakndN969O4NzgZOLYVEeB/uhnFhzzdQM78voO6pLkLq+nvUP7324jN/o+D9WAEEeODUqafXd7dOGGNXqspQbN3B6Jgvf/V5JJIkSfHWcenFVzl1bJH5xcVwYyXBzeDr2fKeS3SffkmxbwyXIoi73gfmEcB3EBaMCcAaZzBVEEwFwacjRahxexmt6p2TINELtFIrSqhzb7z41d/5cWLwY99g+eu/+psriwfEuc7s4oe/8dwlUunZGE2oTEmR5cSR5vKliyycOEXa6NBpNrAmjBZlbbt9kxgqgzLjYX/1QsiwPRTVFrSwURXGAKFREDLR228bTH3LeowHbx34wFaUlr+rcs6tvPzsj33f9I9cA7/b66mnfnMAPH32yV/86FvvP/wRa/2TSgWAOh5P0JEhs5L13SmuzIOP0Lp938meFL8n5e/RBiGCIhzpvdmEq+/DMgihCWMiUR9zgavCJbaypp972RcYiEEILijcP73zxhs/sYu6fyIB3HtduvDplUsXeOrg8qkPOtSHhJTL2gfUvzGuaPn1EJAkwU7zfTFhT43Z+/c9+cnjUXsMoh6tOmvrwZPGO1kHxr9Zrtq/74Z6PGouWMyHN1dWLvwknxd+gtcgf/trbeXaR++tXDmB46mqqj7uTMlrNzfodXo0U42zQaT1gjdJ7M55lAo3ggAIHyiWp5betULKsPjj6g16ITWePWjiQmPZ8+8KLmgZPXVv5bWnfhrBg59wBv7119rK5QvAheW3nF2+dW/nfUmz/cFeMzl7Z3cUtLz6mH1LGP3WZG0f/7k6qwg+lRBci7du/+jqKKlnuxVSigvOl58vhfudwcrKT/1/UCB+8B/5yb6Wl9+ybNPoSWvs+0A86fF97/x+zYNvHem9Ab2OIlSchGBpjfCObDoNYqhzA6nUhSiKL5RZ/om1lcsrf5vP8/8B4wcY6HWv+B8AAAAASUVORK5CYII=", + "e": 1 + }, + { + "id": "image_2", + "w": 80, + "h": 81, + "u": "", + "p": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABRCAYAAABFTSEIAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAgAElEQVR4nOy8eZBl6Vne+fuWs9xz19yXyqrK2rp6V3VLLRASptshISEgpB5stsGoFQYPHsaomZhhBjwDpTA2hlnU4BkYBxOWsAfEIrtFsBoB3S2ptbR6qd6qq3qpylpzz7vfs33L/HGyWgiJRQbMP76RNyIz8t7M+z3n/d7vfZ/neQ/8l8df6SH+tj/AV3r8wodOr9JZ4OZTX0uHDtDjc2tr/OP771/72/5sf/qh/7b+8cMfOt2hUT9lvX+Ddu4UQpxyiNW9SdYplQBRQllgaxNKKwmE56f/31+k3Wj2lGCtHI3W+jvbz47T/NERnHno9One38Y6/rNG4O89/O/uzQaDbxhNJveWpb3XCAUOSmcpvUAKgReKZiOEMGJq4QD1RoeiNGxvbeGMQWmNNJbJqE+/12MwGJBmOXmeP1pT/rGbDh/6+D/64R85859rTX/jAH744Yc7ieYD9Th6rzb21M7WBoPBEGsNQoQoJcnyFKSi3mgQBSGhEux1+8wtLeO8QEnN+vWrzHQ6WMA7x3jcxZQGpST1pEGrM0O73abRbFFvNtea9c5pF/LYkaWltb/J9f2NAfiFZ56/t8Q9cHV74z2YolMPI3yZ09veJU0nlFnBJx//JLfccgeLi/NIrajX6jxz5gz9QZ/RoM89d7+Z0WhIXpacfek5Dh86zPHjN1NPGhw6dJjp+QXipEYQBEipkEoihERIgRDVUwrxEaz84NLS1NrfxDr/2nPghz/64dX2zOLpcZG+z1qLSXO8t2RO4LOCc+dfJHBAGLO+tY5Qmk6rTZIkvHTuLEWeIaTC4HjplfNoKciLgu1eDxnVeOHlVzG2oBFFvPub3ss73v3NhFHEeJISq4goDKqwEAI8OM8DVvLAxfXuR4APHvlrBvKvLQI//KEPdUyiP0AQPijieieKEsqyJB1PMGVBrATkKb//h7/P8UOHubS+QWk9jeY0aT5mb3eTSZrR6/YoipR6u40zFik13lpyWyKFpN/rE8YJt544ysLsPPd/2/eweuI4tTgmDAJqteiLq/JQOk9eeoyrMJVCnh4V/OxdR6b+Wg6dvxYAT58+fW+rWfuwkmrVejDW4WyJtQZTlmgBB5dXGI6GnD33EhfWLrDV65KmJSiFkoK93W1K44jCkJmZabY2NhiNRwRBxNLSAZIkot8fkmYp49GYdqvDieOr3HLTnbzn276T6bkZABbmpm8EH3hBYT1Z4THOIyUIIVBSrHlr33/i4Nyjf9W1/5UB/Cc/+I8+5KV8MA4kjVpELQyJlCKWHrxDY+ksrrIzyvncU08zScdc37zO1vYuu7u75IUhjjRBWGM4GhJqjcdjjafIU6RShEHIoWPHmZmapr+3zWuXLwOeTnuaVqvJu/7uN7J8+CbuetPdnDy2ikCAAOfAeE9hBQKPFCCFQFS/Rkpx+sDc1Af/VgD8hdMPru7l5cPpZHJKeEcShrSTiE6S0KzViKMQrRVSaV7rl5x5ZY0nnn6KWhKzdukyxjsmgyGj8QStFQiFcxbnPEI4pNBYa8CDjjRRrc7c3CLT0zOUecHLL7+IxyO956YTx7n71JtZPHYr3/ud30EtjhBCgPc4wPkbi/V8yf6uvs5oX9y/9J94Wv8nHSIP/8yDp5xXDy/EalW2I7wUaKWJ4xqNZpsoqSOCAC8VXiguvvA4n/rcZ1icn2djewcHjIYjsjRDComzDu8sQkqkAGc9ThiUrED11mHKnM3Na3R3t4mTOqYs8c6BF1y+eo2VlU0uXb/GPXed4rabTxJG4Y19jACc83j/xSfeY53DOXvKWvvIM888c99dd931VYP4VUfg4x/+mVM480gc1ToyCBBSYQHnHEoFqDBEKg1CgrM4Dx/9w0/xyOe/wMXLVxACnHWMRyO881jjEKraVlR4AB6ERCLxOKQQSK1e/7RhFGNsSZmXeOsREo6uHuHuN30taWH47u99H3fddgfee6yzOGtxpsSZEpPnTNIx3dGQ3cGIsrdJMNgmGm312Lx037f//O9+VUX4VxWBT/z6/30qVMEjQsmOUiEe8N6BycEUYEucLfA6xEsJ3jFOM/7o8cdZu3q1ijil2H8j9VqE1AqtNRJHWRgkFotHIEiShFoYsrK4zK23nyItLXnp2Ny8zqXLa1xbv47BglJMipJud48sy3np2Wc4MDvNcDSku7NJkPaITY5Oe0zWL7E9HHGp0GzloMsh8yJnSvuORz5y+vvffd/pX/zLg/iXBvCJX/6ZU4FzjwhlO95B6UuctZRlTjkeYtMxwntUFOHCGEcVMVJI4iCk1ewwGK6jnePI4RXuvu12Th6/CRWEWO/Jsoz1y6+weflVxntdAq04uHqUI8du5ujt93D8jjcRNxoIKRn19njt3Et89Nd+icc+9zmKvCDLxmxtbVJvNBFFyu6VV+j3ukwGXZbnF+gsrkA+YTAacv3KNa7lip6RBMJRas2O9TgVdlrNxiMf+rH/9r4f/hc//5cC8S8F4O/91IOrw+2dR3QYdwgifFjDCEVWlIzGQ/LxkNgZWnGIRjAxnr6BSEpm6zHzc9O8+NprCOf4O2/5Gv7nf/qTtFpTDPd2yYuMMktJhz1Wppqs1UPSnW20kqwcv4Xm/CFa04uoIKj6YCnpzMxx5z1tmnHE7u4ez557ibiW0B8NkVJRGIuQGqk1cWua+vJx4vY0ZZGzt9Xjyd4zhFFMp9WkEcfEgUaHEVFcY7oedWaT4JHf+4Wfuuub/vGPrv2VAfzo6QdWJ9nkkVE26RQ6pAxq6AbIICYrLd1JSZkZFmsR8+0poijGFJY8HRIEAiEUJQpTGJZmOvw3//AHaLWnuPraWS6ffZpGexYhNZNxD5tNUM5SZBk+SfBCkGZjhr1NZtIllA7QYdU/6zBkcfUYf+/bvpsLP/fTaBUzNzNHnmZsbKxTTI7ispRQS+IoRkc1CEJqM4t0Fg9zZHGZhalpmrUYpQJkUD1D4dAm67is+8jDHzp93/0/fPrPBfEvBNCU+sP1JF7NhWBcOlInqVlJPQ7QQqJ1iIrqTLfrtKZm0WGIHfTR0hPguLazx9WNdRpJjR/6736IwyfvZNTd4dWnHmd34wo6vIyRAi0V3mSMRwMyZwjwXL3wCi6qUWQZzeklWtZQqyXUGnWUkjSnp7nnLV/PHY/8AWtX1kizCUcOH2NhqkPsckJpqAcBoQQtBd5LWs0mN99yByudOZqNmEBKpFIIpVFa45zFTobk6WDVa/lh4L4/Dx/15/3yn//Q9/zEgbnpBxYXF4hrdYwKMCoiSRrUG3UkkkmWYU1OXUvqgcCbgu7eLpe3d8lHfcZZyWsbe3zLO9/Nu7/17yGk5Norz3Hx+S9QmgIZhigpcbakyAryyYQQyczSMlIKojhmavEgjfY0UJ32UimUkiitieOYQCiG4yFb2xuUxnDH4QPctjJHLD3NOCTozCOjBOuhMAalAuZmZ2jUm0RxQlxvUm+2qTVaxLU6HsFk0MWn49W///a38Buf+PRjX3UEvutd964O0vx0Emq0DjDeAhLnwe1XoMZa8rJkMMyQ+Zist43JxlzZG7E2LgjDAGSdSZZy+PBx4rjOeNwnH/dJ6nVkWRLFNUAgogifNKqi2sP84iGSqVlQmunlw0zPLaHCCOE93jlsaQCQUnLbbXdw/pUXGY0nqCCkXgup1SKMciglq+rAWCwQRRGHDqxQryWo/ZZECoXSCqkUzhqEFEz22uTDHawXp3/xn/0Pj33///q/P/pVAbjd7z+yHgsur0nMaMBEBWyVilzXQAZ4IcgmE/IsJctTrvYnvNDf4er1dYaFpTE1y+HlFYaTggOzc7hJl3Fvl9HeFqEOOH7nmwnb0xR5QTruYkZ9enu7pCanFtWQFISBoDW7wNTcMvV2Bx0GgKDIMoqiQFkDzhHHIW+8+81Msoz1rR2EipBao4xAWINNR/h4GiMUURAT1TVRECKkROw3J1JKALxS2NgShgmF8DjvGeblh4C7vhJOX3EL33nq1p8YZcV7c2ex3jIoS/YsjI0nkIJYCmpY6r5gSpQ0pUPiGA17XN3toZI2R44c58jKIXZ2+xw7sMTB2Q7SFqxfPEc66qGiGlGtSdJoEOmAdNhjsLtJf3uL4e4GeXeXGINXAQQRUa1RRYlUOGPIJ2NMWVCmIya9Ha5duUijPcfWzjbNZoM7V5f3I89gwjbU2jgp0VoRRSGBDqo0oCRSqopD3OcRnbNMRj1G3Q3GacluXiyevPOUePILT31ZFH5ZBK7evLranYwe0CokM461kWMUepZjxWKsWAoF05GlHjniMMKXkqIZMRoqFuQcSkvs1AonT7yB6akZXjz/CjXtGe9eY+OV53HOgge79irtxYNEWpP29+jtrJNPJthsgklTSu9YP/ssye42w+4e+ajP1NJh6p0ZJBUrXYwH+CIl623RrkUYAc1Gs2pYZCUPpIXDo4i1Qotqm0ohEEpWpCvii+wNgLMgFF5FjJ2mV1iGhSMz5gMPPPjgQx956KEvocG+DMD5ODi9PSlXm0mNhdk5Di0tMzszw3Qz5kBNsRRBM4mJ4hAdhHjnKIuCUEIkHLYxjVo9xaHVW9BhSGeqw3ynxc5rZ+nMzDO9fJDtqxdJB10ikyK9JqyFLB5aJR/02Vu/QuYNwjhG4wGTomBva4O9i2eZPXorx+7+O0wfOELSSCiGO6T9bWqhZuXQEdT2HnEQkpWGjJhUwF4xIig9ERKhBFJKhFQIKg0GBAjBjQ7SS4+QAicV/RJ2MssgLzDGdlyv9yBw+s/cwj/1wLtWnbMf3ssd9dYUx1ePcOTIUZYWV5hut2mGgk4IUS1E6RChFN5ZirLqNcFDe4aFE6eYmVukXm+wt3GFW0/eip2MOHrXW+kNemxcvYgIA6K4Ds7iy4zelYsU4wGtepN00CPNJhjnKbxle5wxNAXdNGN7t0t/OCJJGjRabdLtqxS9PeaO3kpnZg4pJEVhWDxwgNSFXBsaiOpMTU3vb1WFVnp/6/6JKKQiXKsgtPQGfa5du8xwMibNStKioDD21MIbj/3rtTPnsq8YgQcbtdPdZszFkWF2YYVbb7ubo0eO0KgneJOhRjvIyWZFFQHee5wDaz2F8UilSZI2zUabKIrRWnPT8Zsw4z3C9ixn1y7z8G8/zO7uHkJAoDUtLUl8SV1YmnGN5dkOw0nKziRno7SMjWdnbMiu9UBepRY9z9zcAm+67VZOHjrE6qHDaAXlZEAyv4LUMCpKXrzeJVAhu6kjdALnQQnxxa2KeH0d4Pe77xsBuR+paPAebw3OFlBknXkrvyQKvwRAHcXfUI9iphuekzfdzC0nb2F2YR6tNbbIKLTAZTtYYysGxQucc+RlyaS0VbEaxegwQqkq38zOLbB27knWd7b5zKcfR5YZh1p1rm5vcW2YcskJEJ5OrFlpWOJawMYk59Kg5PJwTFE6cI4oDJhr1jjQDoh9SrF9mYGfsFP2KScjSJrUpudpN1s4DI999jNMT8/inWV2bpobtNb+Tt2/+P5PAFqVR26fwcE5pLAIV6Kko64FQVij00o+8KHTDz70w6erXPg6gP/2x/7BAy4rVkOtqccxS0tLdKamSZI6UipKIbFRwrj0WA2aAIGgNCW745xuZggDTUIAQiGE4MWzZ3nl7BmGuyPm6m1uecMb2e0PqwK5M8tUv093NKYsc2paokJBbWYelVvqRMzFTbz3xIFCCkkYBMy2Q66lHtHLSN2A53cz+v0ey5sTvkHGTPKcIweXqbfafPILTxIFIbffcUcVcYCxhnFqicMQqWSV95zD+wo87zz5ZETR32NaWkSsCHzIWCl0IJjp1DsqCN4LfORLABxMivdhSgalwQhI6g3COEIpjVQCaxVGKAZeY1DEYQu8ZywtVwtPP3PEXjKHBFnll9/8Dx/lk//x43zHO74R2TiALQzboxFWBpzf7DIZdgmFwGQTZmabXOmmXH9uDW8LJllJLRQUFkwY8w1f97XsFoLHz7/KyeV5Ugfr23scXejQ72/zwmvnueuuO5lZOsrK/DKvvfg06ysH6Y/GyP0E571nkmVc6/fQUlETktAbRFlSFCW5rYi0wGX4cZdOACrWeKHwyuLwZE6jnXrflwD4Aw+8d/XysLxXOMd24RnkDhWEqP2WqRIRJBbFRAaoIEYHNZwxDK1iWAoGhcUqmBbq9Wz8NW+6h92LLxF4w4svPcurW33q9YRbThzm2fPnkd4xM91he6dgN7fk1vK2w1X99ur6NpGGq8OUdj1kplXn6oWrBFjuvmmVetxARwn9nWvosiBRgoOLh5haPshjv/QQW3tjVt78DubLgnoYv17aZKbg0ReeY7Td40gQc6KuaUeKUgaMnIS4xlQzJJISGQeQBgysxWaOkfGMi4yBKu598MEHOw899FBPAwwKe2/flljvGYwNIyMRMkBUMta+SF2xxbl1xMZgS4MxJdZZFJ6a1mglq4gyJcZY7n7T1/LK05/l8FTEbE0y10w4d+ESm+fOcrip6Q1zssGAONDMhILCOw6ONqA1xVlr+b7veh/nr1zihZde5LOf+wxxEHL7TEL/wjmWbrqFg0cOEa+u8BkV8rZ7vo75uQVUoDk8O03QmCcVkjCI0EoDDiFAK00S1/CJp6Hq1BJFFCmkUBivIAqQgQRZ4FVAqTQlDil8pal4KL3FYt4LfEQDxCp+z8RmeGdxSJxzjMYjsiwjDAI8UOQ5Np/QMBk1MrQoiYVH2TG6LhkGAVJLRDpgd2ejkhG94ODSMsurB5GuZH7tPC1b0OvtMb0ySy/vYE1GmOX4JOb2Tpv7v+PbCQ7ezODf/hsmexu8973fzbd8c8Hai0+wfvk1bDYmkbDYqtOOYsLOLLXWFLfd83XU2lM4PHE9ZivL2Vu/jBSCxQML+7WeQElFozmFpEEiQ2SkkKFECoHyoiq0lUP4Krt55wiVpBYGJDVFYR3OejLvvuF1AA+19KnJRFFagSol48mEM8+fYW6qxfLiAghJORpQ7F5hyk9oyxAtcwId0Eo0U6pBfzTGCshcznBrjfNXLqKs46bZadrzy2Q710ikZ/XgAdK5KcbjlLIsUELiB11eHIz5O3fdTmN+maAzxXd+4zv4gyeeYLK1Rlxvc+Km21iZnWawfgmTj+kkMaGCpN6iEWk0pio9lGI4GHDz8iJPvnqVnfGEMr+dG4KckII4DHChQIkQHUrQAikkwoGTVVUgAHnjjJaSIAoJw5jYC0rnEFn5XuD9+pf/xwdOWW9WJyqkKErIFF1hefYLn2Swc5XF+QWSKGS+pjlWF8xPJ9STEKkDlA7wSiJlgDEG4z1ogY5CdDHG5CmN2VnGr56paC+pEYGiVW/Rnq8E9XQyYW8rYmG8xqGZKYbPfJJ4ap6pgyc50G6ws3GNyfZTLCwu0ZqZZ2pplXI0QGmNsdC/9BKN3jpFb5OyPYOXmnpc4+jxY0wFkvVul+VGWDEvyKpglgKlFUpV1cKNHI/wX9R58AQIJICFUoQIQpyUGG+RWnZOnz69qmdb4aorJSMFYywtDWGgyXt9Lpx9jt7lhJl2g2BlGXNwASmbCFU19UiJdyClrRR/JCqMcUGNuK5JS8+oSHn17PNc6WUcPXKM+SSkJ2vkDgbbm6xfu8aRoORwBJvPPoVyJaU5z/k//gRvfOt9XOptc/b6JueuXGFx+RD1zjQCSIsCefkawZXz6CRm6+UI4jrx1BJH772f6YakHkcc7O3hputoVYnrleFoH0ih8LIC1HPDS+NxyiMRCCVQzuPxYDKskGgt0XgmvsTa4l4dIk8VsvqDKqwxe/xmTp1cYLZfYIsJiXYkoaLTUuh6gb1RN0lXcXNUYriUEuclqBCURkiHFQJjHKPJmHBvnYnps1FrMvEek+f0e3vMxyFXNzf56IUdjk7VeUs75Nwo41PbIxaevcDfv/kgc60O5y5dYnjxPHPT08wvHuDg0WNYKdisNRhPxvhBn9ZoiGzMUG9PISNP2JqipTVFLalSxf6BGEhJriowvQAvZZX/hAW3345UcKOlR9sSVxpwBkpRFdtFSV4Uq9pK8YaydOTOoeZvZuX4fRybmsM4SelAKoGWDm3HqOE6fvgyzlqEAuGrqyi1A6VwXuKlrq6sqp5xq0XcnmF3a5u8KJk9OMfi9BRmPEarE/jJiN/d3OH2A1MQRDxhDHsypt2RxErx0thyx0KTg0uLjEZjTJGTjfrsXbsEUUzqPUVUIxaK3HnsoEu+dZnWrbdVkaYChJBww86BQEtR9SNSICVIKfBeoJRAK4FWConC7Qv7uAKKnAkZWlYifVF68rw8rI01HWMcHknYOcD04gKtdg0lFdYJvBIEyuGKENPU2Csb2LwL3lVJVoqK3ZC6+nhKgZJoFYAXDAy05ha4+Mo5dgdDko2rZKYkiBMi79kbDNn2AU9ud3F+RKsWorRmXMJdt9zC15+6naWZWcqiZO38c+xeu0TqHPnuNmnhEEmLZqdF0JphNB6RqJClxaWKpLjRtu0X0fstMEru+wir4gYQKAGBUgh8ZUlxCi9k5Zxwnqx0DPddXgDWe4TUp7RzdhU8QivqnQ6NhiYMqjeBx1uBkK8fRhVgr3eQVfIVwuPlfm6RAiEkgfQESrOxvclMo4lGkGcpF9evo8c5AxnSH464uL3DeneAsw6tJFlhqQmBLUuePP8qY2N58223Mjs7z+Gvezf1i2fZvXCe3qBLmhd4P6Q21SZznpYKWD16jE6kKa3FeoFBkuU5g411rNBMz86ipCDUEq0ESguErjqnwHvUvgBF6XHO7R84Gi8DSucprMEj8CpACjoaLztSesJai87CDHEESjmKomSzW5AVnkbsCX2OH20SjXoESuBv5AoHDrnPbAikVGilCJwgjkJ8XqfMRzSaTa5sb2NNxmt717jUG1EWhjhQ3DQ3w7HFOWqhJtABozxnb5LTs5ZrGxt8fGsLpQNWlg6wPN1kLgiYFJZeXhLLgNxCIjRx0qRPyOPPv8rnn/4C3e1tnHNsrK9z+dJFpNb8n//HL9Jo13CxI4l0dRIrUW1n50GAt46SyhqXG0fuqlxpqkqyavekQCnd0UrJjnWGIEqIaglaeoQ3pGmPp595ko2r12glTeZbkmU1Yqnm8fUE78F5V/1B7yiNxyqBQFbFaq1GHESEs9BdK6m1O9TigEuTksu9IVlWMhOH3LOyQD2pgykpixStItKyoKkjAm85sDDNs1fXuXx9g+3tbboHlzjWqhPgEVpicAyLnOV6g/bUPKuHj1P6gHySk5/wnLvwEp/+9GNgHZQFaZbyhuOHSbMRoVLoGztHgHcWay15WjIwBSPj6DlJ6iUITT10SB9UJ7eQCKU6OtBgjSAvUyb9XcKkgRCSdDwkn2wTyQFxADiFkyUOjbMOISseECxZWZLuh7sQijCICMMaWoeEWlMTjq0XnqRVb9EkRewNwVsC4emOxggnaEUxibMgUmalINMBO6MBm+vrmDSjpjx5ntEfDjHNmLoSBE5hnScKIprNBmG9QZaXNJI6zz39OYia/PiP/hjleMxvfuyjJI0OSVzDlY520iIOXOVjusFvOospc8irKMwsjFWCCyztENpCIMU+Mear+lHnRpA6GAyG5K+8gMWiw5ir1zeoRTWWjhyj2WziyxxZjJiUI8gKpJNoXyXnzEvGIkYFMbGqeugoCInCCK01dKZJpmaZmZvGxQOe2+7ivGBlaZZ3f83XsjI7T9Lu4NKUWquNl5JgZokSydUra/zx5z/DH332M8RSMBqNaYjZKg9bh9qXF0bDAXuDIUtSMtXpcMud93DzrbcjheBH/vsf4cknPkeeO4yB65s7NOsJy/MtaqHE73cp3np8Ca7MyPKMEonUNSJpUUoSqqA6F3zleHXeoe6/782nR14ycIK0TGnqFJtusbO7zcRIptotkqQGQFEYjDXkIiAVEbkMSUVILkJKFSLjBlGtThQlKB2gpEZJQRCEZOM+491NbGl49to2cSA50WlQz0cUeYY3JWlZMslSKDP6/QHrly6weX0Nn48oHQyzjKKwHGk3KIxlXJQYHTGzcIBGe56JgQOHjhAEmqwwHDm4Uvmm45hDh49y4dJ1Wp1ZVBhRCzQeqEUh4Cqt2RqKdEK3u0evv4cxDocgCAKCMEIHQSVjyKpEE0qhr7twrXSspsIxFWiaNYe0QyLTJ+1p1FQDl0vySUpe5IyNRjmJFqARBMG+0qUDlAoIwrAaOfAOXFn5/6RkanmV0eIyW4NqbKEeaqQvGAz2OHvtOi/0xgzTEgnUQ0UiBVEgaSUNWp0ppLeYsqDILRe7PZT0COdoJm2G/T5Hb+mw0+0xGacIIWg12pUU4T15XnLi6HFq9TqvvPYStbhGt9uj3aozWVmiVdPUQ0+RpXR7e6xvbpHlpjqFqQptocPKb+g9Xrh9HVms6W5B1V0ISe4kk3GKz/fY291hMmww7O1QZHWyogAnUIHC6wCLRkqN8RWpGCqFDoJKMsTincIag5MO5ywvX9/AoCnChCAM2R2NeHEbmjNNlmMN000+v9Fjd5gxsZpjnRglYJRN2NnM2RzlDMYFOlKMnYXC4FBE3rEzGbO8cICL159hkqdIrYiiGCkl1ljSLOND/+pnOffCUySNFtubG4zGAxYWDnHbyZPsbl/hXW+9i7IsGE0mFNaD03jvENKjdICQGiEk2vv9wlzgHT09yN0Z4eWqwLJtxrxQ9MjGPc5e69JsBhR5iZMFeWlBSCKnEM7jpcebigHxOEIXAFUvaY3F+QKBxDjL//WRj/DbH/8YJ5Zm+a53v53l2WnODkZsjUtG8wE3L88zo0Mulq8xLrvMtGu84fAi1hgu9EZc2evTm2RY5wlEwDAt0boq2i93+7z1+B0UZUmWppSlYTCe0G7Xsc5RlCWPfvpTXN3aZeXo7RTphOvXr1KWOTpI+MTvv8jiTJPxG46SZjmlFTgR4YXAOcCX1W6SJX6/XBPSVSAie1jSkKUAABXASURBVHqSmb5HEAiHLD3Pbw5Y39lhuzfm6EqTje6AhmFfDgxR0r9ev0sFGk9pwbpKTyhLg/eyIhik4nNnX+PM2Qt4BOcvXePhT30WoTRhqHHeMbCCa1YytqDCkDhWeCnpEnJwaYlEbFFuD/AOtFJoqTB4jHFkkzHTU7OcOHAYV5RsbK1jrcVhSOKIoig59/KrPPxbv0OWjkCMydIJeZqSjvoU4y7d7Q2+5Z/8IBWL5XGmJM1TzP6MiTclxnqct1gRgLeV5bjqvp7V23vbZzy8L0CC9/SHXXZ6E4rc0h+MuL65TSstCIIArYMKNKlQKkIHmiBQRFpRpCNMnlNrNInCGKk1qQv46Md+na21FxG2MvecefY8R246jtaaPMt56uomz23tobwnKwuM8QxdytOXr3D2+jqZtWTGVI58Ualpe/0xCMFMs8HdRw6A9Ozu7bC9vU2aFSwtTeGALM34d7/xa4yzDEXAeDzCFlklqDuDd5qDR05w20030UxCplttcguXrq+zefkSuXEUxmCcxPmyah68ACWrjsyxpnvD7IywGWVZMCkM2XjCOM0w1oDNmUyGTE1N0ajX98sSgdYBgQ6J4ogoCskFbO9YrLhKkiTUkzorB4+ztpkiZYRFYk3B1MIh5g/fzPziEr57gWc+/2mGEweTfL9tdHiqpn40yavZDinJ8xKEoMRRTiZEYchsM+HQ3ExV2nR3uLbTxSlJmudEYUCWZvzqx/4DL7/2MoHS5JMx49GAMIxZXDrItgTjJXe/5e0MS4Uu4cDyCkJpao0WW9ubFKMh6sbcHQHW73OGwqOEQhh3RpvR6ExUE5ReMZqUDEcZRdrHeQdFhsknSGfRwhKIBsgYhSPUVT8ZaYUzltQ49oY5ojtgqpkQt1d4+Hc/xsXzz+Ndyc1vfidxrc7S4jzf+s63M8OIh7av8OTLazhvEQisdRjnCZTYV9EEuLJqu1Wl3daTiKkkYqGVMBVWLoTr69dZvuPN/Mi3fQ9rl64h8Hzs4X/P459/kmbSYHfnOsNRH2+qAwEsh4/cQpQ06e1scPpf/ns8kp/+Fz/N7UcO0ZlSLB84SNLtYl3VojoHTigk1cyYFwphizNqbW0t+/q3veW9UWN50UcNTGEx2QAtJY0kZLoVsTw/xVS7TbPZpp4ktJotWs0WSa1Bo96gntRJ2gt0ZuY5vLTM0UMrPHPuIo8/8ts4Y7jznrczPTPHe971Dt73Hfdz0+pBAiWob71MMjvLlY2K6vL7UzHO+/1Jo8ovIBQkQUCrXoE3F4U04wgdRHQO38w3fdf3sXT4OL/1id+lWW/xwrmX+PTnP0tvd51ud5txv4tJJxWLnWdsXb/M4ZVDrF96hac//whZnhPXO3gVctcdt1CWJf1ut9Ki4zphHBNGCVEYE0QRQRQThdGZf/qj/9PPaoAkjh4LGyungimBVCE236IsS+Zm2xxdmGV6bh4nYjKTU6Qp1lVDKlFQYmxOHCe05+ZptTu065q9bo8/+qNfwCO57Y33MSlGfO97voPbT5wkkArnPCqsEUp4520n8MMuT712mZ1RRp6XlcCNr4QeJWgkAVNxSKwlWlQdgE/avPX+B7jnrffS7Y84c+4s3V6PlybP8YUzT1JkOf1+l9FgG5NlyKBGkY4q/3VZ8sf/8WGkDKh3pujMrZA0mrx49iW2d/fQWCaTEVmW4qUGFMY4SpPjqexvUujHXteFp2cXPx635z7QK0PydETvWkKhMqZaHZYXF+nMHqAkZJRn5GkfKSVKecIoIIhqSB0R15s0mk0aScjnnzuHyTKO3/w13PPmN3P3bbewvDTHeJIy1ajjvSPNMgoUrrfLTD3h8HST6UbM5jBnnOYUpQXhiOOAmUhTD0IslfTaWDnJ+x/8cZKkwbkLVxhNxpRFwaA74InznyMb9cjSIUVR4q3FCYnJRrjC7jtQJUGS0GjPMTW7TNxo4U3BZDhge2/I8YPzFGXKcNRDCInxHmMtWZ5jTYlzDkfw8dcB/Mmf/JePfuxXf7W3MZSd3e2EMArx3hJHAUmSMDU1DUGNWQ/ZpIUxBVEUUq+1qNVrGCepJQlhuO/akpql1Zt45zvezRtuOUkt0iRhSJLEN9hyttevUQpBureLNYaGhEBJVDNgL/BMcoNzlkgKjIDCFXgPt37NO/nWb/+HHDuyyvr2HsZabDbmU4/+AS+/fI7JsE+eZ0jh8FRpAGdx1oESFetUb5I0Z5mdX2FqboEkCJlMhpjScGV9h7tuvYnl+QUCW+KoqKyyzCi0I8sdeW7W/ref/X8efR1AgE6z/kupKT6gA02oFOW+WIUrCCSEcYRQijhSmLIkDEJajRZBrYZ1oOKwmjpSgqWZhDuOrlIOtlhfbzIuCsaTlLtuv5ml2RnysuS3HvkUF89tkiiPyRxXhjmYksIa0sLjnAEpKT2E3uOEJlg4xuLRN5AbKAtDKB2feuy3+cNP/A7Dfm9foxF4D144nK9aTOchrjVRupoHqSdThGFEOtymt3mJIIq56da7aCYBTz71ee658yTtZgvyWQpn9+f3HNYU5NmY3JSP3sDtdQDLIvt4kZcfMEWORAICYx3eGopsiFMSKSPyssCYAoSndCXaVi3dDdUeAbeeOMb/9ysf5vlf+QL3vf2b+e7/+vu4eHmNf/XzP0dRFpR5yk53jyCqM+pt0dvZQAUBUkjwGikDhLIoWS14pARhYxZJxO/94e/wxPNPE4iCi2efY2drE+9t1Rk4j9t3UTjjcFrQbHVQSQ1rDTZLKUcTtnd38Ahmlo9w8u63ceLYTdTrTVYW5mjXYzIrabcXsA4mwz28d3jlKYUj0gkO8Us3cHvdYPnLv/Yba2+77533ru9srQ52r1GWBTPNmNlWg1pSJzOWwajPcNjHGoOWHu8MSjiUhDBqEkQRYaBoJjXueMPdPPfiWcqyoN6a4clnn6LIC65fucj2xmWs0Az2Nhn2unhrUEHlxRNBVBWpSqHq06BruLKkFgQURUo67LJ56VUuvXqOdDSoCmLvsb5iVJzzuNLghQdTkg57THq7jPb2GHd7ZGlKEMXU5xZpTc+SxLWKtpubIwwClKz8QKXXxO05kkYHV6ak4z2kK6hptfadP/CjP/xlEQiw1+/9ki/ye6WSKCUQUuKlxFPZwKwTIBxhIAm0RApPUaREUoC3r7s8hYCjh1f5uZ/71zz17PN86jOPsbe9RS2OWVo+xCVjuPnESZ5//mnGZUEYapSU4AW+yPG46qRPJ9iipCgyBiqs9Flrq52x72tWVIPVfr8V814gbui71lUJ34NAIqQnjCu32aS7iU0HjHc2uHLhJV56cZFDq0c4sHyYxdl5OlMtGpOYej0mmj1BfXYV7caotHv6T2L2ZeOu/+D7f/Di9ctnV4fjEceWZrjt2CEOrhym3uggwxAtHGGcEOiwEtaBUEuI55FRgySJCbVilBY88cwzPPr4Y6xfvcRudweJRIcRi0vzjHrbvPL8i6Qmp95sV3MneY43BV54vPVY6/YPgSoHOVF9v28yQPiKFRdCvO4xFbD/un32WIAKKkeE94Ko0QRnMJMJXgiCMEHqgDhpMj29wPTMHDOzi8zMLdJptZiemWW20yKJQ5QUa9/9X33jkT+J15eZzG02/qCW8sNKCpSWhErSadaZmpkhShL0vjdaSI2QChB47zAyQoQho0nB7u4ez798lqeeeoKrl19he/M63lbufCcEt508jhl2MUVGHAZob8jTfH+4umqVvK+m0VGVC/bGiOw+p4701Q4R0uGsqCTW/aiUXiCDamxBSomOaxWfh0P56uIoqbH7Vl5nCopxn5EKqp2wb99IJ2NGacpoOEUtrtFuNk7/aby+bE7k+efOnLnzDbfdW5Tl6tL8PIdXlpibW6DZbFOrtwijhCCMCcKQIIwIwgjCBqlVXLxynXOvvMaLL73EF77wWcbpmCuXXiEbdrHGUJYl1sMkHXH18hrGmspfs6+93mjUxb6yp1SAsRZn9ieIRcXFCc/rcx0y2HdUaZBKIvfzZ1CLkbqamBdSgFIIIVFKY8oS6ypTvHPV5LsQAsKAQFavM85RmgKT5UilUVG49r/80Pe8/0/j9RUnlQ4fXPlgWE/uPXX7Hdxy8lbqrVaVYHWA1Hr/ykscmn7qeW3tGs+88BzPnX2OIp1QFBmlMdxz6k20Q8mnPvkJpKqyRSBh1OtSTLIqV1lLFASgJYWv/NAIUR0GxmGL/cj1tirgpUSG4GRVK2glsd6DV/vbuLqFgNQaEYSILAOpUSoEPKUpb1gqqpLHOQQO6x2uzJnkKW6wS5anjAPNjofhpM+p9tvu/0pY/Zkj///sn//4Q2994z0fWDhwEB2EFQW0L5xb4xillvWdPc6ef5UXzz7HhbVXGY56FHmxPx8yQ10JnnvqcUbDIcgqedfrdSaTMd7YKjK8R0cRAk82ySmNAX9j21ZGcISoRJ3a/mAi1SEB1Y421iJ8pZapuIZJJ8goJm60sZMh1rpq3BWHKTJ86bC4yiRvLQiP0powbqC1RuuKjpNhUJHGQn9k7cVnvyz6/swIBLh9+cjpzuzse8K4vqqDYB9rT38wYrc75tK1Dc6+8jKXLq1xbf0Su5vXcTi0lJjMUeYTXNIkz/P9y2SJay1UvYkZ9MD6atEOkCWBUshAEgiNsx4hqO6vpSVBqAnjBBlofF4gvNm3pUm8KytW3Hl0FBPWG/iyRDhX0WFBDe/TKr/u377DS4+0bp8WdoBCKElZTDClRDKpcmcUIzxrmSg++Gfh9GcCeP/73997/vnn3y+Ef0Tse0teePUSg/6YMy+8wOXLa/R7u+wN+uxtb1T6bBzuayKCephQbzSZWz7C5Qtn0UpzZPUoot5i5/LaF5kXITAmx8ch+3sSoQXSWGQQokNVpQtn0F5itMAWDmTlpJVSoYIIW+YEQUgY18lVH28NwjlUoHE2qCoGW1Y0/T5swjkcHiUF3licqbofYSxeK7RzCMH7exs7a181gAB33HHHo+fPn/8gFD/x1LlXeeXli3ziD36LtYuvEEYxrfYchStw3hGEAVJ4pAhoJHWCWoLF8/V/95v49WsXwDmuXb9aTVlqXZ220sH+7UjyrEBLiYp0Ved5h7COoiyq5QoJkUXI/Y6lmlOtzPBSYp2raCddyY/GGqwzBEEI0qP2KTK7r+veuLNRVR8KnCmw1iGp7GvCOXxZfLC/N3j0z8PoL5xYP3ny5OlHPvnY6rNnzr7v13/939DdWsd4RxQ3kVGtUt72SwODR0YOHWnwjk6jw97eNnMrq4x3N4mCAOcq845xriqAcXgvkHp/UrI0lLlFSPBSoDzIQKPDoJrzKHNEpMGAigKEDrBlCQi0jvFSIpXGC48zFgJQUmHKvLLlCb8/fVRRZlqq6mfnK4uH91jncfCzk/7g9F+Ej/yLXgDw2FMXHvzNj//Kmc2rl7DeIZzD5BPy4ZCyyBFUHYTLC6obmFRXsdNucenKRQ4ePMbi6k2MRkMGe9sUucEYi68sYuiguvVJlNRA/v+9nc+OXFcRxn91/tzb3dMzYxIiwQIpFhJrzxu4nyCvkLxB8gbOG8RvAHsWyYIFbGgkJLxgMQKDoihGHSkWJBCrMzM99985VSzqjsUCge1xcqRe972fzjlV31df1RUWq4bcJJZNJmVvhkYrYz9SS4VRSSnRtEckFNECCLFpaCLIHK0xnyqiVRF1B4JV9YhuOpvLAjbV54CqVhA7P0rt/wXvhQF88MF7+6efP9kIspPnKnGAgOtt00AxkJSQIOSYWZ+ccnW4ZhoG1kdr7py8SdGKihCaRLNYkBeN/+aC1U9++jNCdoYjKcxR3x+xVnMdb7kktAmL7nE2VbQUUm6RlOgrM5+cy6x1QlHnxshzZuM5eUD9DMwTjQBjt8xHm/1+/0LT3V4IQID9fr8PGjdF2RWgaVcYgXEq1KqYVOejIUKMnB6t+eqrv7NoV+R2yXK9ZnXyBiEKYoZEP6IEqBFiSqxPTwkpImk2P87KtJqbHuMiIymCGrFZAEKtxaX/JhMIRK2YiDMYE6oqUh0cxSOxFsVt5OI17NmMKXBuNbwweC8F4AziLlY5E+w85wVmBa2FWibKNHmSGzM5Z4ZifP3sG05OT6g60nUHmsWCo9XaGYICtfr8q+r11y8+/bPfqaXOmp65hRh3ULUhQKmoCSm3TGVES0FMWWSPtJh6nkx24/vcA4cpQStizjpSiM6pzdMp4LxNy03f97uXweSlAJxB3F/88+Is5/zQaqGWkbEUzCDh09pyXPLt5TNMC+1iRT9OiAoxNuT1HRbHp+S29agnkRCEYsrF5YGAEcUVlQhuGUYgJSquBqXGI7HVOrtI584qmVUYVSy6XUUQMEVrxYoHC7N5XpcBppjxi+F6OnuZnffKAN6sJ48fv99djx9amUDrLH95T24MxrfPviYmd33WsUdRcmpo2obVaknOrReNsPlIBxSlhoDkhLQZooPr0XgGQpW2WVJqwabB21ZjQpLnhbUqYgXUECoV8QFkZfKjOv/XzQQ3Vf2gvx7ffVUcXhlAgH99+eUDpdyNMe9CcPIfcAZxdXXJarmmG3q/z8pIypFAQi04lZrzOTWe97Q1844Lda5nMCsmGKbVU5SUsTJCcdNtSl45891mCK6Qm8yDF72W5tcCN4Vy2xmcDYfpo9tgcCsAAfb/2O9GCWcx5Q9ByXlB13XeY5Eb+rFjLIVhcvWj6kQQoY6TR9wYiU1msVy6rqdO70zMea/5KDy1ylSN3CywIGjpGavPHIwxoLW6bF8GP9aSiBJBJ6y6v8UMQjAkhIfRmrPD/nDredO3BhBgv9vt//anxw+W7eKukLYXl9/Qtkv6vgeBq/0FQQLDWEA8KR6HjhS8rer4+JR8fEwIgRI8Cpu4YckdoR5oQkikZoWV4l3zom49q0rVQlWX9b2L2kuRVaFWmVUe20pNZ1fPDu+/yn3339ZrAfBmPdpud7/91S83fT+8F0R2Y3/J0Hd03aXfQXUi5kQpBVRQ8RGdb7z1Q45Xa1SST60sLl1ZKS5hVM/jUo5YEGzsqaUg4jy5moJWp1+maC2AG8epBa26NXTTXQ6bw+H2u+4/12sF8Gb95dGjn//hN7++W8q0ue66j4safemZho6mSfSHSwxFot9VR8sVZXSVRacJpkKKGdXiljP1GklMDYqiZUJMCTl56bN4u1mZhpudBjZBnbZByqa77Db9Vdl+F+/6nX6M4I/b32+B7b37994u3fROqfrunZMf3Pvis78iMRFMqCoUEy6u9hT1Wapkt9SGlNGQwBxQSQ0UpWqdh+ckT6LN2ZHnjnWrofkdF9cfva5j+r/W9/I1h/Pt+Q54CDz80Vs/ftvGej82+R2dpvsxyp2h7+ivR4+iIdDEBKWwOn0TTJmGwQVZSZTRd5lJJEmiatmryFaxbbbhk6dPnu6+j3e6Wf8G6i1puXvjRIEAAAAASUVORK5CYII=", + "e": 1 + }, + { + "id": "image_3", + "w": 80, + "h": 80, + "u": "", + "p": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAYAAACOEfKtAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAgAElEQVR4nN29aZBk13me+ZzlLrlWZi1d3dVbNdDYCRBNEKBASMFuj2VL9jgEUgp5HOMYUjN22JIjBlCM/0zEhAnGxJDzQzEkfzg8YVlBcmQP7RhpQM5CeZENkOAicBFBEiQAEuwuoBu91pJVud57zzI/zr03swFSBldHTKKqq7Iyb95z3vMt7/d+514I/hM+vPc9C2cdnJRwv4NN79kU4dVNPCBE+IEfeMSWhIEXbHnHK07ydArPCSEG/6nmIH6eJ6sBc+4sUv4ans16IAK8D1Dhy+fzI+fD9YDweF+94hGILRBPG28/3VTq6Z8noD8XAAvvz+L9Y8BZoAeiMq4aCFFC4bzHWoMQEq1UaX1AZYf1X3yJa/V3wDuEEID8OJ5PJ1p86mc9t58ZgN77noHHhPePe+gBSARuwZp8+btAsHuwzxe/9jWe/9Z32Lq0RZFlPPILv8B/8Z7fIIlihBQVbOFIXw3dL56z/BlmJoTYkl48YRWfbQix9bOY508dQO99z8Fj1vvHPaKnygm64GolAALnHS+dP8/27g4H4ymf/MNPsr03YLh3wOWrWxw5vMHu7oD73vEgDz1wP+ceeYT77r4HJSTOO6QQ1JZc+rx3DhZgrsD1zm8hxMcbkfrAT3u+P1UAc2Pep5R6v/d+05UfLRecDgQOePXya/xPv/e/8Ozn/4zh/gG5yVFS0F1aZvfGdZqtlChOGB0MSZMmMlJ02k3u+4UHOX7yOJ24wV//lb/CbSdPIajipSgtcH42Khv3ZVCFLfBPNLT+xE9rzj8VAL33m977j1khzuIXY1aY2GISeObZL/PBD32I73znBfLxBOMc3kO70yZKGhzs7pKmKd3+CjeuXqbV6mKdxdoMh6PdbKG15t777uO/+jv/Db/00IO00rSOpdTnFtXY6gTlfbmYQnwq0+p3+z8Ft/6JAfTeP+a8fwLoeQiu5OcuVMHngd3BPr/93/4uz37uc2RZFt4iFFrHCAl5niOFwjlLq9djOh6TqIjCOyItsM6ipEJLTZomtJa6vP3hB/mf/9H7aTWab8jac8MLtuh9mbW9ACEGQvjHf1JrlD/ugd77nvX2w877j3gRMms1agGEGC9wCMovPvvM5/nmV/4cUdIRiSJSEVIIbJaD80ghiLUmG09oxClJpIi1QAqFLSyT4ZjhcMhkPGZvZ5uvfuFZ/vH/+vvs7g+oF8zPE0k5JAQCIaqfAu9dzzn38UlefPjnDqD3ftN5/5T3PB5oWUgPc2sTiJJiKBzChxO9+L3vMpmMcNYipSSJY6QE7xyNJKbdTGk3Y5pphBIe5Qq0cCRCEAGRjkjjGGsLrDGkUcre9h7/8n/7Qz7woQ9SWFe5aACrokgVp/QiJJ9yoAKJ9zw+zoqv70395o+Dhf5xwPPwlIdNLwK1WCBzSMCVVugAjwThMRYmozEOKIoCby2He13uv+MEnVbC0ZU+h3ptlvsthBDMcoNSmuFoyjdffI3vvnadvemUg+EYa3OKIudgNCKOYzJjeOpPnuYr7/kqDz/0EKJKWULUrgu+fA44V7q2DxlcivtT7FN7U3+u3/jR4uKPBODU+00HT7my3BKA9GE5qxVeDOAhAwfCuz884DsvfAdTGLy1PHLXLfzOb5xlY3WFZqzQkcKaGVIqEB4dp0RRjFIxv/LQPewODrhyY4/PfetF/vWfvcSlvSGzbIqSAp0kSOX5Z7//B7ztrW8lTVLmFEeUBYyY80TmnLJaaYffjGXx1N50eq7faLxpEN80gGWmfQr8pkCGAXpf1g/znOsWBlcNVOCZzGZcufgaAsfxtR6//RvnuPXoOnEcoZVEeBCxQiiFlBqdtBFlgBHCcWh1ieVui04z5bVrA/ZnBiMIGdoUWFPw/PPf5lN/8m/4zV/7G3OeWA/u5nH6N1Ad8LAZCfkjWeKbioEBPJ5CsDnPrv6mgyvAZCjI8AQLFCIMcLnX5/D6YZSA3zz7IHfdfppmK1ASqRQIh1ARSqfotEPU7CCTBlJHSBWB90gpaDc0Z04dRnjHZDLGFAXWWYRW7A/2+Ng//X22d3brzO+dx3tXAuSRAoQMBkAduanTtRByMxLFU282Jr5JAHmyUkd8GedCpg0ndeX7REkCHbJ8T5lMhGA0nTAYH3DbycP8jb/yS0RxghACqcB7h3c2BH4dI+OEwDQUMu2gkhY6bSC0ptPtsnniCL1OgreOrDCMJmMOhge0Wi2uX73CM1/8It75kraHWEiZgR1VyedrQGujEJRg+00t8if3vO/9xAB67z/s8fc7CJSkrOFdiSwLgkCIMwIp5gMUBE7x3ZdeYufSFX7lnW+n2+5QzCbk2RRjDAiPihOE1GEZ3FxtcWaGK4oQz5QmTpscO7LBQ/fcSrfbQiuFQuKMZW93B+fg03/0fzIaj8ISVgIOC9rDgku7gOhCHpRh8eB+PS3e/xMBaIx/n8c/XieMquaswC0xRFa8Lwwq0BpRAh0mkU1nrC53OPv2t+CwCCWJ0gZxlCCVDkeqCKRASFWepyR0WoOQSKWDwwnP2kqXfrdDGiclr/RYY5nNJrz4ve/xwvdfLt1SzLNvhR3lhKqIXdaDHvAl93HO47CP708mj/9YAHrvN6X0H15gKLjXVRnVC2KBqC4WcNXrErh29Sp3bB5jdWUNpWOitImOU1TcREUNdKONiBOs0OReMpzM2BtOORhnFKbAFA5jHV4KGnFMN01II4WUgjSKSKIEIRWz2Yzh6ICLl16dm5zz8+HWuUOG79KFhSC4s6+el9/I9+9Np5s/DKcfmoW99x8Ger7inT4A5RdHUv7N1b4RftYBHBiORmzf2OYr3/gmTmo++dSXaMURm6tLbK736TVimklKZjMubg84f2mHS7sDLu/ts78/oNVMue3oIR595AHSWKEENJoNztx2ki9+82W2ruxiTBHimZRY55nOply/cmU+l4V/K/8sGWKoWso5Orco7FZA+p6CjwHn3jSAxpj3ecSjQvgStIVBCBFqydoXfOUpJbsXdVI5GI74r//+7/C3f/3d/NVzf4mP/8Hv8x++8k1uHAxopyn3bGyQ24xD3Q7jWcErV64zGo+Q0rPUa3P76aP0On1eG4z54B9+hrtPH+cX79lkY6nFWq/D3ZvrPHfhKoMiA6CwBqU11kOz3a7JSqXWBEOoksV8vnUxIEp9m0re9aEokPLsQZ6/txvHb6ibfyCAUsn3+1B516RFVByvtDZHcM0qoVTlnBel+3qQUnD00DovvHie03ee5i0nVnjbyQ5f++4FjBMs9zp85gsvspRqjIs5c9sGMkuQ0tHut1hbbnF0dZm7Th7m6y+8yh8/9RU+84VvcObu2/jLbz3F3becJPrct3Deo5QCZ/HOIqOIQ2vrpXeWaNVeHJ4LH9TvRRgrya32MkQoNb3HG/fEnvef7r+uXfAGAL3373feb1almCj9d9ENKnI6p9EVnRG1mwsEnVabdz7yCPe/5R4+8b//c9re8OL5S1y+PiCKFfv9IW/ZXOV3fu2X+eS/+zK337rJ5NplXjh/gb1pzss3DpjmL/HArafYPxjzm++4jeXlHhf3xnzy6ecQSlE4RzGb4eMIqRTeepy0oEQNll/wlnl0dnWpV8VK50Xpx4H6OO+gYgSCTUaTx4EnbjK214G36eF91SnkQmdH1G8WJWGu0J0PToi5s1ex8OTxoxzbOMQ/fOwxBuOcXnOJo6urLDWa7Ozs8Xf/6l/i3ltv5Z333EakYGN9hcOry9xz4jh3bxznlvUjZBPHxUtXcdmYTiJ58NbD/JcP38a9h5okSUIcxVhjEQisNWAseZbX454bmZg/F3LhdV8pNKF1UPJBUcYmKUNCkVI8tre3dxM3vMkCLZyV3m9SW9jNql7F7kTZj/BVxppjWD73tevceecd/D//5t8hMKz1u8h2AyVzsjzibadP88DttyOF5lff+RC/94f/il998F5Wu0vsj8foJEXEMdNZQZYdcMupE0RasbbSp91u0Gk3efY7L3Pl6jVUpGkkCS6KADi0skLtC4KbLK2mLj54jceVIUfW3iakxAWSGJJkiAc9dHyTFd60QM77C3g2q7ahr4yszFRvCLzlQ1JVI2WsLMHzpQUXpuCP/vkfILcvMxvv04o0Jw4f5Y5Tt6LjCJtPKIqM3cE+379wnqkTDMdTisIgNBxeW6XXaSCVpNls0F9ZRivB1oVX+cd//O/53HPfo9FIOdpb4rf+s4d58mvP88F/8k+5/ZbTC8s/ZzU1v0TUSnW1/hJwZSZ21qFkcHNXxni8Hyy1mv03WKAx5lEWrK9O51X3y8+7aiE+hroXqlW8qbIMYPp5Vrv35BGah9uQzTDZDK0aDPdukDbbCBUqkYaKuOPkCVSkkFoTJwnGFCStDiKOkVGEsTl5MaOYZTjjsIXhyEqbu46u88v330002uXcW26h1WjU1ub93CMq3hqU83lWhjlNE+XflZx3dIQAEQy1tzccnu13Ok/fBCBCPOprh/S1ey7mqZA85mJCeVxtrdUq1pSr/CyJYCkSNKImmS2YDia8sPUyQkC/2+VPv/4c7/nlc5xYP8zLL5xndWWFpRO3kiyt4IUP3TYl8ViU0VhfkBtDo5Gy3EnZWD7FRqfBO87cxf6rV7ilv8zK8sp8OesqaZ5EqvFKWVYgJQn0JRcUCKyfCyaiFAC8AyHVY8AcQO99z3v/3rq+pdIqShAqJu0Xk/zNYmV1hBOVS1S2KPDeImxBPj1gsHOZ7e09nvvuS0jdoNdqcuMg46P/4o/4m+98B62mYrg/QG9foQMk3aVwJg/OFDhnwYMxBiEE99+xyYn1Q/z5M1/mtfPnOX30JGr9OGkcL0Tu+XirGOcX5jP3GeYxq0qKNcsO5Z0UAuf92b093+v3xUADWGvPIuXrrCxkIeGreFhxdzE/GZVniOocJR9cIKyBEzCbjZnt7XBlZ5ekucTS2gYvX3qNg7xgfW0NEa0Tdbqcvu1WvMu5cfUSs2xKvziCjmOQAocDqbB5QZbNMM5z26mTuGzCg297K9l4hO52eGlScKiuf8vsStULqcj1wi4HV7mpxHtbu5KQpbU6hxByrup40fNx/i7g07pE4dEFSy9hknNrFJV4uqDkVlGvJttzq8UvfJYIA5kZx+XBNoPcsX31CrNZzjtuPw3A7nDCIJvhtWZvPEX6ApW2mU7HcO0inf4qSIVKE5SWFMbgUBS2QCsJ0nPL296CsJY//fK3WX/XX+cNoxJurhr5mxlYGa2CrFZWU0iPREGQPsKnSEFhbQmqPQd8WgJIKd81BydUHK4GigW3DqYtofxeUHkXMlm1fcMFX0GgQEccTA0vXLyB1prTq4dYUQnHGh3uXz/KIydvQXr4/sWL/Os/+zLfv3yVGYrcGPJsVrOALM/J84LRZEJhDd5ZDh8+RKfbxjjPZy9c5e0PPLCwzOVPPyf81cJXybiKeTWwlSLjbSDTJR12LuyIKK351wC0974XKo+KMy1mz/kaVlSlSsweUAuWuLikizurKrOP0xZSRWydf4Vhc8Dp5iqrScJBUWCc5dpwgGhK4m6Lb1w4z9ee/zYP33sX73zrbcRJXAZwS5ZlZFnObDYjM5ZIR7z00vf4/J+/xIf+xWe464G300yb9fir8rJKfiHzurmBllnCubCXomqIee+RQuLK+O98WeHLUK0ILzb39vZ62sD9qlyV2rw9CFkF2dIIBQumH+CxVUysMFwcgLiZgvuoRRon3HHyCKePnWYtT9HGogSoRsrhYoSKBWkz4fTp4zz7/POkiSRtNDHGIhEIFeG9IM9ydJSgY5hOp1wbjPnAJz6DUTHvfPgRlNJzC/TzuVXZQJSL7aVHeF+Kw8GEVJWVbemNfm51vgTSA1KCbDbfpXHurK/klFJ9mVMmseACwbRq6yzz/ZygLmRnURFVAhUQgvbyIYrCsbGxTtSM+b++/Hl2d8c0Y81yp8XR9WVO33GMzqFlVtM+OoIr166RzyYcDPborx1CWct0mmGtZTgc0u20SZVi4/AhWo0Gh2+9k3/w9/5+lU7LL18mOT9PkFVR4CldVCKlqCfuqrZnhcHriorKQouiOKUFbEJYBVXzt4UasQYkgGQQKDxCilIHFKVVVhkr1JWu5H+VJbRX1rFCMM0Mxmxz+o5TSCRNrdnb3yNtRoAhzydMp2MajZR2u80kKxBCMJnNmA1HxHGD6XSCdxbnDe1Wg153iUazwfETG6RpMmd69TpWVraQRTwI4RFCl5SmpEohcC9G95KIz605FH8ehHirRoiTDlC1tZXZtTb6uSZYxcKwAqLCtAzCVQ0pysRRVS1hBVu9ZWzUxCBpJAn9pWW0h1QLbj+1QaeZoCNNmqTsjfY52B+xOxyy0uuw1G3jnGA6K5hmBi8kQgVgtFakaYrSil965y8uuGs1lap293UowguE9HgnawGk4obheRDqvJ9vyavDlK/ClEAgNrX39ORCXKvkKVkG3wooKJtKgK3XeN7tr0CtyWil7pafqHTE+i338OqFLRLrOH/pEhJPqiN6nRbdToNbjmyQO5jknoPJlG67Q7ffZzjYwwrFle0duktdsvEIpSSZ8qSrK+RFTru7xHt+/dfrGF0T/NqryoUVlPOaC6vOhdl5D0LKeRu0Uq8XWxllxg4UzW9qgd90tcwdqIcUgcpUg5AlrVElaBWgvuaBfrFkLgcnqNevPPfmbXfzf//xv0RLye5wSJEXxErx2o0d7r3zFm6Mxmxd+i6FMRS2IFIwmU6I05RpVtBqt8hnU5wzeO/ptvukScJ4NuKdv3SWpW53Mf5UBjgXeUvSX21zc2XMp6445uWCE2HetX2WPLHc2VWjoIWQvXrFRNAh5/JpsEZXurGbewLVvhhfg0YtLiyMnCoJCg9Hjx3nlrvfxvlvfIXdwT7ee4bjMUkU4RXs7I9oNppcH+xQmIxOM2V37wDnLQeTIUVhEaag3+2wsrzE0SMbIIIb/oPf+XtlIhNl6KlOXDqEm9OTykuEC4qRcJVEUkpXrpLAqk8ROOHmXLGOpWwKY62viaUIGbNaRFseLGqAxTzbVlRgse6tyLSY/17HkNIeD4YHfPiD/yPPfulzYdeCtURaUxhDM4nothr02ilHDvVpNhLcLMe5HJxDacFar8OJjcMcPnyUdqvFZDphZ/+AI7/wKOsn72DuStQEuAZOVEmiHK7zoSVbAehhvk1gzmX94r/15wZrlFRbwWTgiMZXFURAojb3UjerCH3duar53vw0C5R6boEiANvtdPmH/8MT/O2/89scO3acdqtJp5HSazWIpCDWgl6nCcZw/dp19g4OKApLlhfgob/UYXl5mSSOKbIZRZaBc4y3L5XDKc9eqeO+Cjr+ZvCqzOrKpRWB+wbiL2oKs1iyeO9LITskJg8I41wlTCwk7pBE3AIi81Mv+PHCWlXMv47bNQOvTWBuHSX4L371Gf7tk/8HVy9fQniLUhYlBLk1NOOEJInQQmHynGYScerkBuvLfVbXVmikTawtyLKMg+GQQje45z//u8RpmyokLVZEAYMFWlKuvati+E29k7AAi6wnuHfYn1NTnVLu2lqEpbKjapdV/ffXVd9V3KuB8RW98vUbarXXv+7A0jJ7K2tsHFnhyHqfZiqJpEBJWOl0aSYxaRyhJSy1Em49scGhfo+Vfp9Go0Ul0CmlETjE9IBr3/4Czrmbgag5yBsfzle9YV/W/vP/6nq19rTQI/JVqYZASjnQFYNz3qNESY7FPHK5ykUXBAVRZunwJcuosegeJUmt8KrdiHowQkCj1abfbWP6S1DMOBju02w0gzVGmlhJGknM+vISS62UXreNjlRp6Q4lJYWzCDxJrDj43tdRusnyHQ8RRRFKVrH5dTv4F1qdVZpQYt6WKDcMhrdVbiiq2F69B7xnS3vY8rApy66U91VlER6VqO1r/6xzbf1zXibNXaP+JZCrciTVIoRfVdpGSUmkFImOaEYJqVYoqdFa0Uxj+t0OuihY7nWJ46iW3bWOMSYDPFprbJGT6x4Xbhgui0v0lpqs9tosdVv1aMPcfJ1g6o1H3pdcsAoxouaK9UwXmkKCKmgx0M65VwKoEiVUiHw3Kcoh1Tvr6q7VAq+v3lFn2yqbCz9PhX4hs1UWChDHKY1Gk0gr2mlCPhuiBCy1OrSbCc1GTK/bJo01cRp2nQqlcNZjXIZzBmcMTsTsdG5n3DqFlhI7mnLl8hUarTZ3336CQyvdstZdCPZ1nAxCrSjn5hbmXnfvyudOLM4dnGdLe8FzAvFej8f4kImroBnKsQBNAI+a31UbJ+eBtqI35QpWQ6jiRpnBF4wbpTUISOIE12phbUYcx6z0e7SbCbHW6CjQA2sNUschvEiwxjB0MZfsEsPmBjJpoiTEsaaRxnS7R7l8Y5s//9b3ObS2xImNVVZ6nTCPEsUwh3JbaN0LKWOhmHtKlVDEzRQDvH9FC++3YGFn1TyTYOtAsEBSSheaB+qyBq5PXkXVciiVeiOrbSHhMRoP+ebz32Cyv491Fh0pkjSl0UhASawPFx1KIdAyxkuNF4LCGA4KuJj12FErRI0maZqQJDHNRBMrjVAhwfR7PQSeWGu+/b1LtJoxt53coNNK6wsZq/nUTKOMe846lKqqqapKWZhZiARPiz3vey3r91yJrKRK8wvtlpL3VTVgpXlVvYZFMr24cWfeFwmu4p0nK3Je2brI889/m28++6c8fPoQPp/gHWSTUaAuKlxI04gVWkIcxURRhEXxmulxhVXidIlWu0kaR3RaDaJI45xDa42xJeUQEEcaKcFZwSSbkc9yVleXSOKIlX6HTjMtJa0553Pelf2RyoMXKA0VsxAI0+zrvhCDzLotCZuusq5qC0QZ75yfs/kqsVWKRMhQog4vdRE/z1QcjEacv3CRg+GYi69eZDocs7bW5eqFl4jvOEwGeG+RSpLnOTbyyFyAE3RaTQrnuZ61uOyWsXGHTrdLK2nSaCQ00phYa3JrUFJiSo6mlCSKFLKkU1JCmqREKgI0r17ZY3t/xKlja/TajdIC51KKFBLnLV7UWj311pCA31bdlRPOfxrBY7IEK1Qc8+6aL4VUIWR9kso0y2gy5381iI79gxFPPfMlXj5/iSPrh9jZvU6E5N577+PV8y/STSNMkdNIm5h8islmFMZivaeZNkjSlD3Z5+KkiUsPkXTbLDcbdFtN0iRCKYlEYpxDK0VWGFDQ0BqhBEoKrLEgBDv7E6JY0++0UVJw4sgKV7d3uXpjiDGOXrdJpMr4KEI/BCGDgCxKTdSVDNmD8+5pKPvCUvinnReP2dIF5RwfhJgH3cAHy3LJexAL2bVMIqPJlP39MVeuX+fzn/sSUdLgtltP8+rWBZI04c7b70RGmpWNExw5vkk+y0jbkmajEQp+Y4jiFL90lOeGmsx0WFleod/t0mynNOIYJcWCghwSX24c1gm6jRilQ1Lw3mOs4+rOAcu9Ht12Sqw0UkqMtawu99jdHyFFoGZL7ZQk0tT7BN28MKhDGEFUUVJ9isrPvPe9vLAXHPSEEnVvd56JS/Mu40CtytQ53bM7GPKtly4QC0VuLJ//7DOsrR9mY2ODi5dfI0kiTh0/RprEWO/YGQyYToZ0sm0abspSO2Fv5rm6n3Nt6HBxm8NHNuj1evS6DdI4Rkk152DlGiqhmBnDwThjfbmNjjQSSWEt48mU7b0hR9ZXaTRSBHD9+jZXd0f0O21anQbGBmlsqd2g12lzaLlJFJXCnaOu/XGu3r7ncChj+v1+v3RhIQazwjwt4FFRBrKKGM+z5wIDmqcvAHb2Dvj8V77Dcq/D3v6Yb3z9q7S6XdbWD3P92jaHjxxhfXUZXca4NElY7vXYU5obuWNvcIPB1h5SSFZX1jl+1zGaaYvVXpck0eTGECkdqjcfaEeonEKgPxjP6C+1UFKF2OUcw/GEi9dvcMfmCZI45sKFy3zrpZc4efwYJ08ew1hBpAW9Tps4Ck3z8Tjn/HjCLcfX0HqBr9R7BF21eeDj/X5/UFsgwLQozgovn0JUPQ3q3ahUqZxAbUQpPoLn4uVdrl7f5eqNPYYHB1y5fInZJOPu++5lPBqztrbKoX4XpVSpeIR4ab1jlhXMspysMFhr0FKTRBFRrGm3mjjryfKcNI1qWb4qDQUCpSXbe2O8EPTaDeJIUViPMQXfu3CJe+8+zWxa8JlnnqHXO8Rb7ziNEiCEot1M0TKMJwAfEo81lkk24Y5TR2oGUeWBcEU8eCkeXW21Pn0TgAC5sXveh43lVXOI2olFTWc8sH8wZncwYX9/zPb+AVevXmc0mXDp4is8cOZtOA9ry0ssddpIqYi0Ci1B68hMjveeOInmjRopyDJDpCQ61uSFwRhHHIWMKOW8UY/3KK0ZjacMxxn9botKqYoizfde3mLzluNcvHiZL3312zz8jgdYWmrjjKPbbpA2EoSHSCmkCmQ/SPEeSdjEFGnB4dUevt7RUNOXrZVu+1SF2c07VK37qPM+mCzVQQ5bljjlS+R5wbNffYHxeMbFazsUecF0Mubylde4/957UZHm6PoavaV2oBNaIxQY4yicIUkTWu0mQpSvCciznGYjJklinHXkhSPSEi0VWihKcoEQAq00hbFkxrLUaTKezhB4RtMZL7/6ClJrnv/2d3n+Oy/y1879IitLS+BgaalNHMdY47DOY124dCIvTCndyXpBZ5kL+xP93GgApPwLtvhOYv0RAaVv+4UDS2mr5IX7oynWC2bTnDzP2RnsI+OIVqtFf6nHkdWV0kUUSoa9K8YYlBKkaYKUEinDbU1G05wsL2iWQd4ZjyksaayIIo2WumQGAi0CoFJKJjNDM0mQSnAwnrJ7MGZnsM/OtevsD0fc2N7lFx9+mJlxFK5gqdMkUWpeggLTzDCdFVTx3fnQrrRl8tg9mNS5MhBqsTUris/+UAD7Qgy88B8NCq2sq4y6TPOeyTTj2rUDBJKdgyHOWbwXZP4RRf0AAAuQSURBVNOMO2+7jaWlDs1GglYaKTVSSZyzaK1DhlQyXJE+yzkYTUh0AGo8neGcJS9yBAKtJJEMnyGkQmsVqlYhmeYFkRKhFZBbnLOMRiMGgz3aS8tcuHSFt957H7uDKXGsWOq0cDgKazGFZX845WA0DY0yJYMe6BzGB8XG+lDOTbMca21Nsp33nzjS72/9UAABZlp/BMlWVYVU4oIFCmu5cmWPySRDa8XecBRKJeHRUcRyb4l2oxHAlxKlQogNV2SGysADw9GELDe00oTCWgYH08DyhcQ6SNKIJI7L40sViPLCRBzGONJI43HsT0bYwmCdxVjL7uCA++68nZ2dAcu9Fs1GwjQrmE4zrlzb4+r2kFhLmo2ESJVb1jxYG+J+4cNVgc45isIxzUylQG+tdTpPvB6vNwDYF2JgC/sBVwVN5mrKa1d2uDEYMcsLCuswhWU8npFNczYOHWKp3QIRZO9qR6dSQe9DCGZZznA0JbeWtBGTZQX7wwk4T7uRMssKmo2ISFW77gRoQq+CQFHywhJpCTLw6OlkRtpIiXVEqhOK3DAZjlhdWaKRxOwPJ+zu7XP1+h7NVsrKcps4jsBDYQzGWLLCUJTbOSQeW/qw9yFGSimQyDeA9wMBBGg34o9LoZ4GoNT9R6MZ+8OM0WTGaDZlkmU47xiNZ3TabdrNBnEcl7QgWItQEqkUVkA2y5nNMrSUdFoNprOCq3v7FEVBr9PAeUccaeI4RmpZXrblKHs4OG9wOIwLE/IubAJf6rTptltMZjl5kdNtNFheWaEwOa++dpmXL1zE5JbDqyvEWpHnrt77EmmJVIEOee+DixtHJANjMMbjrAfvP9Vvtz/xg7D6odfKTU32W00Vfd1733PO8d1XrmJyixSQTTNM4cknOfl0jFrr0u40wwrKMuT64G4OQZ7nFMaglSJNE7KsYHdnn+lsxtpyn0YjISsKGnESjpdBwK26Ms7b8pKDsIvASrDG4rylkcZcub5LHCehdMsz9vZ2ybMcFWlO33qCZhKXTXKHs4bRxOOMQyhFI9bEsUZpHfK8JHiXtRTWUlg3EMb87g/D6YderdlvNLasMx9w3rM9GBNpSVYYxrMcvAsTlIIkiUqrTVByrvtVlC3PC/I8dNsajZTcFOwdHDCajkmTmG67gXWORpogtaxlr2pnq3O2bIoLjA1quTWOIrfMZiG2Xb66jTEFO9vb5LZgkk05dHidUyePY2cFVy5d5fvff5XzF6+yMxhSFD7cdyaNiSINQmCtw9kwTmMKvPNoIdkfzh7vvy5xvCkLBGim6UdeubS9uTMYP5bNwnbaTqPBICsYjwdMswntZkqqA7UIXDsoF847rHHkeQEC0kbKaDqjyA3jcYa1jmaa0IiTQGClLOtbHxrewgVdz1ms9SgExgalxllHYSxFlmOsYefadYb7A5QQtDodut0ue3u7bN+4TtJosrzUZ73VRKugsCsp6k6csA6FQscSrRV5UVAYW9XaH33kLSd/oOu+KQABdm8Mn5ha867Z1Nw/yjKMseTO0ep2mG1P8UC71UKqcpO689hSBakoQKvV5GA4xhjLZJozK7esNVspXji0VKF8dIE/uJLkUivfnsLO/+6sIzMF1lgKa9gebHPX7bfTSBvhTh9ScuzYMRqNsONLeIExtiw2PHkR7lujdVnOyxAHsY7ZLCOKIoxzz73rgVv/wout4U1c8n/mzKmBLPS7UWIr9EYESism0xnOGmxuaDUaYS+gB+MCcMZavPd02g3GownTaUZuLLkpKEwRJPg0DruhytLRVwCVmpwxDmMsRe7IckthA19zhHPk1jKZZOEY41hd6bNx9Aj95WVazRRjHKNRxs7BmPEsIy9K19QKLyAvPFpp4kiTZwXXd/bQWqG02HIif/d/DJs3BSDAww+f2rJFfs46tg6GE65dvYGdTXBFjrMFjUYcXMK4kgwbvIUkijgYTtkfjHDOY6yhKAqcc6GKEKGRLglXRrryynJfxljnfWl1nrzIMUVBUViK3GJNiIeT4Yg0Sjlx9CitVgchJMPRhMvXdxmPwj0ZEq2JtEbL6tIuaCcRK0sNklizuzfg+rVdOq0GcZxsJSo5d+7MXVtvBps3fd+YXz13ZuuffPJPzinUU61mujmbjMnzgm4nyEjGzmtL7z2RUownMwYHo9AYwqOEIs9KISHSQVtzHiED9/IuHFvV3cZYjHUUxpDnBg8Y6xiNww5VnGNwsM87HnwbvX6X8cySpJpDq71QQgIgyrg5F0atMezvjxmNJkyygk6nydrqMmmkt6JcnTtz5sibAu9HAhDgt//Wr2598smnzhWOpwZ7g03rYGV5CY/DWo+xFlfev2o4G7N/MEIAURyjI8V0FupeBGitarXHGxeszjnKMIiprM86vCNI/WXmn84ypuMRkZLIOGZ5pY81hrXlLrm15LnBOYuUikYSI4G94YjBYIjLHRZDHCuazRYbKyt0WinAlrPRjwTejwwgwN9697mtJz70sXOtbvNJ6+z9/eU+zjmssVhnKQpDXljGoykOh9aKSGtwMJtlWGtI05QkjkJf2IfiPcROVyYhh3MCa0IZ5cqMOctztA7XFBTG4l3BLZvHwXumuWX/6nW01iRxSquR0GomjKcZN7YHeASry0s0GglRFIVYJ2V5RTrPTXL17nM/Ing/FoAAT/z3v7UFnPnv/tHvfaTbaT1mjKnvqpHnBTNT4LxDKUUaR0RaYZxjOsuAIAJUsrlzgaqYwgbXLdVf7wOgRWGw3uGtpShyjBFYa5llOevry2RZQbfTZX2lh9IxWkuEUBwMp7y2PUAIwepqn2YzrRtE8+Y6AB+N8+KJd5w59mPd+Vf8x9/yFz++8LUX3ucL++HC+t4sz8OEy3uZxpGi0UhQSjKZFVy+vsN0OuPo+irHj62Ve1osWZkdrQ1qiLGuLKUM3npmRcF0OmMym5U7+NuMhkNOnNzg5JEjxHHYaa+jIMQOxzMK52iVqpCSlTAcujyloDXw3n3ggTuPfeQnmf+PfQPG6vHIA3d9vPDDM9Pp7FPT6YyiCE0aJQVKyZAkhCTLCoo83Cs1iaPQ/XeeojCYwgRiXJhQ4FtTJ5W8KMjzcOciJQS2sBwMBqwu99k8dpgkiYi0Jo4jstxQFIZ2K+XQcoduM6WZapI4KOJSCgpnMNY+nTlx5icF76cCIMC5hx/e+mt/+cF3Z9P8t7zxW6LsCyMCiMY5xpMpJsuJdOh7CML+liwrQq2c5zjraw6Zl69551ECijy8L1KKg8Ee66tLICSzvGD3YMhgOClJfUqaRkghsTaQ5klmGE8zjLFbEvW+h+4+du7hu370ePeDHj+xC/+gx5P/7xeeiFP1Xq2izSRNyIzj1VdfYzQZs9zvc2JjnU6rwWg6ZTyaUdiCVpqUySTQIVvxysKQ5Rnj2YwiyynygqWlNrfffookTfBelPsafXmFgUJpGTxA1j2PgcB/dMbkI2dOnfqp3uX8ZwIgwJN/8qXNVpqeTdLk/YPRaPO1q9dwzrO81OXYkUMoKdkZ7DMaj0jTBkmkww1oBeSFYZblOGNxxgYeWBQ46xhPJ7zjoXs5fOhQLQJUGzh9qWA4D7ZwGOEG3rqP6tx95MyZny5w1eNnBuDi41995ouPDgaDR6217z200mfj0CrD8ZSd3V3wnu5SlySOsNaTFUGszXODyUP1YU3YZJ6bjEaiuW+zSzfVYGZgPTKOKZxkUjh81B60Vg4/rVTy0XtvO/L0z3puPxcAq8fHPvZkr7e+fnZ9tffolas33jUcjzbX1w6zvNYly3L2B0MKY0PhjyDPZmTTGbNZxizLKIopD9/S5N5Ta+hqt6opkFJuec+nnZJPk/F0/8y5/3/9zwh+2ONjH3uy95b777/fSXN2d3f/5Gw62xyNJ73paLw5ySY95yxKRoBiluVbqZrwnoc2ttqt1pYUPFdk+SuK+OcK2Osf/x8cmwi1Sb8xhwAAAABJRU5ErkJggg==", + "e": 1 + }, + { + "id": "image_4", + "w": 80, + "h": 80, + "u": "", + "p": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAYAAACOEfKtAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAgAElEQVR4nN29eZBl133f9znbXd7Wr7dZMYMGMCBBgiJBhbToSDIHJcmRwiQCS4m3KBFRpaiUcqVAOoqqXJWEYFxOXFHFJOVIcSRbIB3LkmOqAIqUSVq0ZugiDXABMSAWglgGjVkwS29vv9tZ8se53QNaggSSoFyVi2o0eqbfe/d87/lt39/3dyD493iFEIauXpz2Qt1MEHcR/EZAbAAIwQZBgAgQAgg5grApBKMQxGbwvCSpz+qsd04IMfr3tQbx5/lhIewNXd057YM7jRA/HULYEEJAgAAIBIGAQMbvQhCCJ/6OB+S337qIryKETYQ8KwmfVEly9s8T0D8XAJuiOO2FvE/AaWAY8PGDRSAEgUC2OHggIIQkhBBvUBDRPfiBA5Bpf4roB0DG/5biYzKET+o0fej7vbbvG4Ah7A1t3bkvhPD+AMO4v/Z3kSe0O0gECIh293lAIESA8Eqwbuy2EHwEMrTfQvz9iHd8n/genoDYlELdr5z6gsjF5vdjna87gDeAc+8PQgxFEPsrfQVAIu4wwcGCCZ7AjT8LEEHilUDuX5KA4+Bvxf4mFAcrCq94LUJsCsLHTJp+6PVe7+sKYFHM3ieF+uBBAIj21C7+YMvAPoCAEILGWl66eo1vbV7gmfObTKYzqnLBsNvhPT92mjfdeitKRDO31jNdzElSQ6oTjFK0SLfWLNsd3IIqAgQVlyr8phTqfp3oj79ea35dACyKYkMp8QCe03Gv7Psof+MjhAD8DZ+HIwBlXfObn3iIf/77n8Y7h/cO6T1VsaDXH3D0xEmOHT3G6tKALE14bvMC17e3WV9fY6nb5V1vv4v33v2jCCEjhgduQbamHZBCRRMX8X4CPOS9/0Ce55vf69q/ZwDrsr4v4O8XiGF85iGa3yv82MGHCWidFQG4urPH//k7/4KvfOMJ8qzDoN+nmIzY29vBJBkQWBQLINDUDcFZlBSYtIPJOtimJM9yfvL0X+Le9/40g26Xg+i8H3iQr/h53woEQoSREP79Osm/p934XQMYQhjapvlgwL0fH+3nIFiyHyZuOPWDndla8VeeeoZ/9pnPMxiucPzoUS5cvkyv12Mxn6NMyonDa1y4cIHjR4/yla8/ypNPnGMyGcV0Rgq6eRfnLFpItNa86x1/gV/+xZ/n6Npqe4OvuFf2H544uMEQfLQEGT6SJNkHvlscvisAi6LY0Eo+GAJ3Hdzpfp72ioBxYMZtWiIA5x1/+PUnePz5i+zs7fLsc88y2tnCOUsgkCqNdQ1aGwiwtnaI0XiP0e4OZTmnrCqstSRJgtEaiUAIyJOEY0eP8wv/9c/yE+/6oZg7HqAYU56YBQVCkAThEUHuZ0bntDfv/W4i9XcM4N6VFzfypfUzUiYbCH8QFA5wbP/tfcA2FucdCIH3Hh88X33mBc4++jjXrl5jfXWNsphTlCVNY5nNp5SNheBYzGeUVUlVVVRVSfAeETzWNVR1Qwiw1B/Q1BXBOxKtSJKE5eU1/sbP/Ax/5ad+HKN0i9qNSH9j5eIAgBArnk3n/d3fqV/U38kvF499ZsNVxZngwwZyP9Lt1w/xdq5e3eLzX3yYx596ipevXaVpGlRq6PeH5N0eTQjU1lKVFRcWU4RQKCnRiSHPO3gWlGWNEKB1wmCwRGISJpMx49EO1cKiVEJdV/jgUUpSNjUAzlfI0R6//YlP4IPnv/xPfgr57/pE0d5piNlBzLIEATakEGeKoviOQHzNO7A488CGyPIzzeE7N9TaTagkOyi5INA0ln/6zz/FP/rdj3P1+hWcjbtkP12RUmLSjMFwhdVDh+n3BlhvKcuCgEBphUbROIvQCikkZVVQLQqKskBJRZYmBCFYLBZUVYmzNb1Or30PEMGjhKTb6dDr9rnvv/0F3vOjPxIfsbhhzvtGA7zCLwaC99i62JwsxncfPXrLawLxNQFYnHlgQxp5Rgi50azfAasnMZ0eSAPB4T38H7/+W/zW7z7AfL5oTSWaMdAC6aMfFAIhJXmvz+Ejx8m7XXwIBOuwwSGkjKFHCLx3MQ2REuc9tioZjfaoqhJjErrdAYNeh0VZ4Jylqmq0kmilyIzh6E0n+NAv/S3uvPW2V/jm1nRbFymEJOBxrqFczJktJkxHO5uVK+5++9vv/jNBfE0Aln/0m4/JJLtLioBTKfbIW5BrNyFNiiDwpYef5Bd+6W8ynU3am7wBGAF8SwiI/XDYbgEpBGmW0VteptsfopTCNs3B6/crC6lUfD3gQ6BqKubjMbPplDRP6Q+GLPUHVGWBtR7nLVpJEm2448638Pf/x7/NoNOLD7MlKURoHY8QBG9ZzCdcv3aJ5zefZzqfoU16bjravvveez/wpxIT6s8C7/onf/3DKHWP9IHQlMjpDqLYJiyfQCY53sH//Cu/wnPnn8E5hyfEerUFrs1uEfs1LaBEjIsygLcN5XTKZG+XsixIsw5plqCkxNoYhEJE9KBsy01Kt9ej1x0gpaSYTymrijRJaZylqiusDyglme7tMlhb5wdOnWrLRMn+G8VI7Wiamtlsj5dfvsDTmy9x5qtP8NyLLx355rMvZE+de+pz3zWAT/32h99XFc3fE84ibIVyNcI5pE7wKxuorM/LL2/xq7/5D5nNJ/FF4U9IWvefuoBECrQQGClRMqAQKBV9u68rismYuizwPpAmBq01RkezhIAioNqSN1ECvKMqCsbjEULK9qHJFizQUjKvat5z990IoQ5SmRtFdKBazLlyeZNHvv41ruwsWO6vkesUJfW7bn/zG8ZPPvaNR14No1eNwp/58P+28fzLsw93hKVnYG0pZZAJupkhEYoQLAHPV77+JKPJDvgb9Wg0C38AqGjNNVeSTAaMlGgCRpr9CIgPHhcElfe4+YzZdMxYCLzQGBOB9N7hrMVaR+MdWkpSrfFCoIHx7g5pt0ve6ZIaQwiBxns2X9rk0vY1Tq4fa29PHmQNwTuca5jPZ2BTTt50gjTr0JQF49EeTzz16AdP3/OTD5196LOb3xGAT40XH94bzYaNrfC+4QfWe9x1eMCJoxlGSEQsLjn/0nm88/sEFa+o4ts6NO68rhKsJZqekeRGYZQk0RopBC6A9Z5FYymahsJ5igZq76l9gy8tXgb6RtNLE5Jhj4UPLJqGzCQIGQHZni+YFwWuaVAry2Rphvee2WzKxSvXObl+lP1EGgLO1ZTzCVsXz3PlhU1W+st01tcxeYe6KhE4tBZDHdwDwN2vGcAHfu1X37e1vXPPczvXmRQVhMB6mlCtShyaoJLoz0KgmxqMlDgh4iYUEHw44DgDgUxKVlLNWq4ZpAn9xJBqTS/LkFJTOYvzMK1KJmXFrKqptKVwDkJACljrdLh5bYW11XUmVc3T17fpWQtSorTCeo9WiutiQWkbxnsj9MoqeZ7hfeDpbz3DD7/1bQB432Crkul4m6vPP81zX/4avneI7rEeWZ4jjKEsy5gdhEAI4vRfes/pn/s3f3D2j9XNfyKAR1ZWPmi85ebhgK/sXYo+KDGINAElESbBSwVC8l/9tZ9hPNrhE5/5NDt7u7jQ7kbvCYASgqVEcjg3LKcJK52MXpqylGfk3R7eQ+M9dW3pGcUgMVTWUlnb+jDBIEs5vn6YpZV1siRhezxhdz5nu6gRSmJba9AallKD8w6PYG+0i5QrZFmHFzc3KedjvHfMp2OuX3qOS08+yfb5SwiV0lsxSJ0QiNYwnY64vrPN3DY4PNPF4v6N03d9cvPsuW+Lyn8siDz8h5/5oC3m9zTzBYrAc9d30Epy+6EVNlYHrCz1MXkKqyeQaY8kT/kP/+IP8Z6f+HHeeOpW+t0OdV1jvcc6T6IEJ3sJxzoZq3nKaqfDaq9Dt9un1+2jlSZRijxL6abtV2JY7eas9TscWxly/NAhjh4/wdrqOp08Y6XfYZAqZmVJYS3WB3zwNI3FSIkUEttYGuew1tLpdOkmmrccW+blF5/l2Ucf4ZmHv8r1y1s01hOkRvQHyE4PqxRVVXL9+hUuXDjP5SuXmEzGOOuGqvLV1qWrZ191B575zIMbi/Hu+4rxHqGcgw+kKuZqnW4PleYIpUCog3xPIJBScdNNJ/irJ27ir/7Mf07wjqKuePrZp/jlv/U/sJHAsV7GsNNhqdunk+ckvSE6zRFaI5TGWY+3TSz16oaiXFDXBcYkrBw+xNLyCp3eACECzXTMW/o5h1dX+Nblq7y4s8eorCgSy/XpHK0E2mhSoKobxuMRi9GEb/3rL1DUlkVZ4ZpAEBIbPN5bUu/xSELdMK9LZtMps/kUV9dIIQkCbHD3bdy18ZHNc5ujPxHAzaefON2TesNVJWVVc302Y3VpQC/v0MlypFQ4FA4BzrMfy+IlDrg+hKCT5iz3ljh1aIV3Hl4hBTrdPp1enyTroPMeKIVOEmxdY63n2u6I569fYbyIwSBPMnLdUKdzBlZwMu8zHPRQwRPqBSeOH2dtdYXkm8/y3JUtSq2ZlRWNd7EaCgEjYnp0fW8P528myzKcUJTWYhtHU1tSHZAmRSUJDdGHW+uoygK8Q/gDnnOI7rwfuP9PBPDhr37tg6vdDt0sA51QWTjS79LtdFFaY5FUzqMbh7I1wTuE0MS8Kn4IxCwfJFppbjt+go03vQnvYkkm6wopQBODQ2gamtmUy1tbfP2lCzy7tY1qq47Vbo90aYlr29vMZjPmkwl3nLqN9cNrhFIjgmPQH/CmxjEtS67vTVnOEhpnWShJRwh++q1v5O2nTjFBkKU5XmhkKJFpzXg8pikrDvX6CAGuqghJgk5SOnmHft5hZAxZ6nENlFVNCNz3SgAPfOB//7P/6T3VovnFqq5a85QkUpAZTa/Xj2mHkSRaEryF1KB7ayhj2l0nW/5v37QDnSxj79o1Llzf47EXXuBrzzzDcxcuQlWSSkGqJb6pKOZzLm1tUZYFJ4c93nbsMO+89VZuP3KY5cyw1u2wnCX0UoMInjRLyXp9AqDbNOby1W12FwvmVcWhboeVzPCfvfkUqi555OvnaF6+yBs2TjC1UNQVi7phZzqmrhqWlpborx4iHQxIuj0CgrpYUM8XTIs5jW2oqxoXAsH77PCx1S9sv7y9+W07MHH6nlx5nHcI6xBNDSIgvcJWcybCclU6ymJGv5PRdZJb129B593IyryiNytahiZJO8wbz+NPP8lzV16mnxhyJfmmLUhxZEbG7kg5py89IlMkeYo2mnOXX+al7RFVVTJMFLesDDh19Ai9bkoznyIGA5I8BwQyBIJ3dLQiELBNww8dWSFxFY2zvPXmY2xd22P84gtw4o3EFD8c3LNCElyM+iZNcECWZgwGq2TmAhPvAIeUgsRohJP3AWcPALz/ffcMF4X/ucZF0rNsapAarSXaeSbjHUZ7nt00oZfldAd91krL4duukg9WUcoc7D7a5k3s14KtS04Me7xr453kWlAXc2bTKaEuqMoF/V4PqQ251jRK0njBF164xJG3voNHHvt9vG041MnYmRfUteUHE0NmFGWa0FlZRwqBlHEhtfckSvOOI0ucWlsimC7oDivLSzz+yFdRIeAIGKUxSiOkQiqNDY7FYoaaTfBZRuMdQQiEEjTB4oOPXYuDUovTG6fvGm6ePTfSAIuK04umZt40OO+pnKcKCmlr3HTKwjUE70mNJssTVos+oplSLXbBOVDmRiARADL6txA4MhwyOHaY8xcvcXG2YFTVLEm4Y7mHrWvS/hIWxWI+ZTlZ4cLuiKU047Y84V23nuTE8gqnVges5gnD4ZBer0uaKLxt8LZCmJQ8zzmxvsLlvRF3HDvM207dxGLrKl957pscX1lhqXcHt9/5BurtbWa2QakEpCDPO1RCsHCW1FlMVVJNJgQRWFQF27Mxo8WComloXMCF2Ens5OnwcL//7k34pAYo6+aecWWZ1g0QSIOiLEpccFRtVeFDE+vZMsFai5IOW84guLZR3mIYRNs+lAghWO5mPH/pAp//1nl+8F0/yrmnvsnFzfPMT53k1MmbSTpL+CaQZylJt0d/aZkTiwpTT/kv7rydslyQCsvR1SMMDh8lzXOEkghvkcoglUKKjOXhkPVeh6V+j5UjR5ltXSG4wLWr1xkkCbe/7S6uLhbM5iVJV6OTjF6/T+Mdi6bC7m0zA/x8igUmoz02r2wymYyZFguSNGHQH7LSX+LE2iFWBsO7z3zqTARwbt27C9tQ2uZAgIGPXbTCeVASnMcoSV1bpouKRW+O8xbvmgOilP0NHuRBazNJDabb52/8R/8xwzznpAzMThzi+PoaS+uHCN4RmopEG6QPrK4dJisKRqNdpJQcPXKM5dW16GulwnmB1hqpFSrRYC1Sa5aWhxxdXaY/GJAPVxjXcNuhVdaOb1BuX8ckCTLvx9xSqph16QRrNNPFlLIc04yv0QiFD5JiMWc83qWqLUtLyxw9dITjq4dZW1pl2F+im3d/Gni/ft89p4eLutqYNzUL65AIbIgCH6kkIPAucnIqgBchfgWoyzmuXKCzPkKpG43NAw4QOsNVfvCHfpjxxU32Xj5Pp6oYDPocP3oUqZOWfQapExCK4DxLvSVWltdaMlUj824sH52N1Ly1CCNx5SIyPUrS6XW5/Y43kqUZQifcfPsdbH7jCbSz9Po97GJGoyTTqiI0DTPnmXmYWcteWVLYkmK0R+PBBU9Z1tRVRZJlrK8e4tajt3L8yDGGgyFZlmOM3njgwQeHGrK7XChZ1JbSWhQS5wRaK1RQuOCxeLSUeDxSaIwSSOEZ7V2hml1Dd/qILMonbjToWsJIGkynz/DELXRXDqEJ6CxGT9Xp4WdjdN6nqxPwniTLMHkHlEaaFGlMTNylREmJcBXeWoKU+GqBVAqLJ9QVSZKgsxzZUvrDlTUGywMGh9cpt3e5Nt7l+mJKmWVUHmZlw3g6Z7qYUduGytaRAbKOxnqsC3STnJX+KofWj7C2foROr49JIg2XKfVunSTy9KLxgKOyDiM8AYXw0Dh3Q6wjBUHcEO84F3jx/HnW157kqOmQDQ4jpUamOUKZg5QmhEDaXybpDHD5FKoKryQyTTBZTrWYoE2C0pJyNmU62kLPM7LhGlmaI7RBi4BvbEzcnUWZBEKFdwHvapStIxMkDcE7bFlCcHR7GabbxTmBSA1f2XyBQnWZjVOE1JTWUdqaynus9wdlqrfQBEdtLVInJHmX/mCZvD9AJyk+BJzzNFV1i+5kycaiUiQymq51HuMDLsSiPBCQUoCNu6uSltwpauvZ2pvx5De+ikOwduSNmKRLvnSIpL+MlCZqU3xAGoVzniBk9Hm+RmQZMskQyiBSgfeWhgVF5di7/CKD7harJzbIBsPoHqyLUdc78l4HYQRCKVxZEIJDpN34eU2JFIbuYIDuDigWJXtXLvHwc0+yPZshewm2rBHa4wRYpXFCEVIVPU9V4kTABaL+S4AQCi8kNgic9W2/JuCFeJs+fuzmmwdLU7y8wLVii4XzWOeog0crQSIl3oHzgYBGSs+stDFHHJf4sE1lH+XUGyy9wTqHhUanHUSm2Vcq+KrEVxVuMaHa3cJWc1bXjyCVRCQZgZrQeNJeH+8dLz/3PIuyZnu0y/ETN9NbWsYF8FUJweObBZ1ejtQm1t/axPeyDQ5L7WqK6YLFbMwXv/kcj1+9RJJ5isZjmoZaLFA+RRlD3TTUzqFNzGWDkkhlCCrgyhpQKKXx+7HB+xuduBA29Bt+8J3DvZ1dbN7jpfk5Ftd3sSG2JD0C50KbrIbI87VNfimjLMIGhxU7BPMiRw8H1g7dhPce1eY1xmim16/g64py5zo7ly8h8pxhWaCIvdhqMWW2s0VTV1y9dpW9subI2jrBOV7cPM/K8gpJ3kMQMEoQsDhb0x/2kSZBBIdrqkjkWofVkvnWS2iTcW1RMncOKkfZOKq6IZGWRKh2fZbQNvtTLeiZlEwkBA+1qpEh9nUCLWEcfGzWA0GIDd1fWtuQMuEWG9iazNkdn2O+KKOE0QekJDZ+goo1cBtmQ6iwztG4gPVzTLJFmuR4u0AGd/CUsl6PnfmUarTLeOsaV7avoZMM/fijCN9Q1zWXr2/xxIXLXFvMWep0eevGKWTeIctz/Fjz0tUr9LKENMnpdzuEYCE0ZKkh73YITQMu0mCIgEaSZl2SXp/VXpcnrgdmdcP2vEGLglWRIRxI2VBVBbVtyJOcLM3ITUZTVjR1RZlE/WFo2xOB6JLCflcP0CTpMOnkpN0uh9bW6XdzprN5DBoB8G3g8I4gJcFapJB4KZAa5rWHhUXvjkhMRrHYbpPrmAf21w5RzaaMRyOu724xXhScWj+M856Xru/w4qWLXJ+MqR2sLw1ZHa6g0gQrNQvrGTWBuekwn884aRTTaYVkCSU8VVlgUh3r6aaiKUtMkkSRUr+H1IpDy0uMK8u0rFnUnlw39HVFaFum5bwgiEC/Z1jN+iwN15jNprjK4h1kaYqSgiBi4ETG/rYUgQAb2jsfI02aIoJrc799ai8W3EEKXKsvcQisjDSOBZrgKWvHaFJwSW6xdf0SJ29rDiQdnaUhIkkpizmTyZTlfg/ZHxKyDjfdejvLy8vsXrmE0YqlwQpJSy3ZxlLYCtGUTGeTttjvkmUJi2qBSRXFYk6iJcZomqIC75DW4lFk3S5NsWA5S6iso2pcpJ68Z16WKCEIPlCUJb1uznpvwLGVNQbLh5jlfaqqwQnJoNujm2QxH2570yGA39+B48keAsFktMdoOsV5DhpCMaeL/xAEXgYkEUwn95tvCusD06qB0YSd3S18PUcFRxCRMF2+5RauPP80q4MutUoorOPEcIBOMiZNRb52iMl0xtWtba4/f56d+YxZUbK1KCidJzeKH3vTbWitSZWiqkvm8wVGShKlaAQE5wgiGoxMNEprnJCkSiKlpJsoggMVHHXTIAVkWpMazbDXYWVpyFpvQGpSZA6Dbg/vGpY7PTppilbqFS3vVgUrAvrpbz5DJ0vY3dvm2u4OddPcyPUAKdrvtHp5AVqIyCZ3cvJ+dO62WjAtLbt7E3yzILgGITUCybE3vZnNr36Rfip4aW+KrRY88Y3HeWbzAl2tCUFQO0eSJBw9fhM3K0XQgseeeoZrswVCCk4eWme5mzEb7xACLMoSowzSWYyKib8AnPAYcnzTRHpKKpYSDSanaRqs9wTlSU2GEIEsSemnGZlUGKGQriGUBdo6ulLRUZqkbe4HPMHFvvK+Lk1vXrqwabTaGE/GbI/HlE0DbZ81tKqmuBP3heGBRIJKUkzeI8/7CAmV0tTTPa7szgi2AWcRyoEMDJdXGB4+QrMrOdXpcun6Hg9++TG8yfmlv/ZXWL15g1DXmENHCMFTLeYsdq7hlWGyqLh5kDPMJBqPFxrrC4ILlFWBaAJGK7IsxSiFViCcx9uoS0yUYDlNcL6hBGrrEFrGhpMI9ExGV4JZzMl7S1B7mExRZUESAl2pSKREEPtAMWGPkViEMNIvXLpImhiaumE+L3GAF1Gaa2TceRaBj06TOgQyoaGNTpXwpEiU0qgkYbqoCbZE+AaCA+sgwKHbbmVzd4deJ+G2W4a8x2oeu3iJ5Tt/gKUjR6mKAhcEF154lqfPPc7Lm8+znnR544mbOLScYYsJ1lkCUVMTlKIsK1AB7zUCUFmC87JNTSK3aZSgk2jKOuC1wPpA2TQ4HEZJlqRkGU1W1YTdXRbOMxmNGKqSHzjUY55q5j7ETWE0HlDuwL1t6p3pbLNjzAZ4HAItNUJIMgldGfllB0yImpYlo1jp9Vg7dpLDh46hBZTlgtF0hyANjfP4pgZbE0SBkApcw8r6KufTjMo1dHoZ7/rBt3J49Sj/9g/+gBO33ML02hUWszmJyTiuE2676TY8nkQ5nLPU1kLwNLYiAM5ZvLNgAx6PkhLnFMEHvK3xLsF7T6o1q8MVrk2nuKqhbjyZsqwkhkFikFJRVw0zO4NFzaSpOJ5X/PwbBb00YTJM+FThmVgLPg75hFaOAoy0QLwkpECjwFu0VEgEqZKkiSExMU0YCoFUmkwbjq0f5+T6cfKVdbRWLMqCPE0YK0+SKsr5jHwxQWYxkOA99WLGs5MZJ4PHJAmdrM/JjZOcSjsoLxCdJbx11HXNdDLi+tZlUBKjujRVQVkWaBWjs7UOIRXWWoQC7QV101BKQZ6nWNvgbYNzARECb771DnqlYzKbsFwWdENDMZ+j64JQ1WwvSgqp2ANK5/nZ26DfBIJKGciGWzLJOWLUDjJC55EIwaaWhHNGyp9TMpqhMAGvNCupZinL6KYJLniEi+arpaTbXybLe+TakHRzhr2cd9x+hJsOvxslBYiaerSF7jUgDc5ZdvZGvDSpqInaPZ100Zli9/JFQmMpyhJCYDzepVgs6C11GCwNSFWsz6U2aOlJVCwPnY9pVHCOpnIEazFa4usKL82NuRRgOc+4ahJSmXD8eJdMBHzTUM6nlLsj1N4e0oOrG+piRqKjJjv4EnxD6S02OEJwSB9ZKSEDAl7S/Tzf7KRJbAVJjfYBmWQs5TlHe11Wuj0Q0LjA9fkcYxSD5TU6/SXyPCdPDHdurHHXW94GSdYq8j3lleeZXbuMzJeYVZarU8FNJ25la2uLy8UCNZuy3ukhksDVK5eYTCaUTY1SmtWVFYbLK2RakOiAX3gSrcE3ZIlBe8+0aAjEun1eWvJE0ctSqtqSdQTBxRxWIljSEqW7LCUZvV6Xngw0tUVnPXQ+IKwfw1YV09kMMdnj6+UOb1qbIwJcKx1PFzXWeKQPOBnlczJACOqsVmnn7E3rKwgf/f3WfE5dldQBnDJ4pUlMSh0Ca1mHRGt6nS7KRP+RmpSbjx4Ck99QxEtDfugkTz/5NLPFHmMrGNee9eVDJHmP+XzKtB6zFhwra6v0UkNRFHgXMFkUA0nvSYxACU/jHMFZfNWQpimhjIoxay3ToqRxnlTl4AJKpbFw8jbmrkLQk4HlwQo6MWghCa7GGIcZLCHLBhMCs6rGTid0J0P+5Sxma+kAABGySURBVGRINatY1fDIRYcdBJa9Jw8B6WK0QEp8vXdOn33oodH/8vtnN5/ffH7j+s4uq8WMF7ZeJiiF6S8hu120ScmdRbSzGzWB0jakWUIQHu8B2Y6scqOCuVIIducBleckXY1MUnSvz6K3RFmvULoFy0sD0k6XXtta9CHg6gZCgwjRdwadYMsCZWtsXTMrCvamcyZFSVFbljop3SzFJElLdiqEkPG+vMcIS9eVFE5ClkCa4r0neI+kQgPdtINXhmASMIbPjUfUdcXqUpclpbBNja9ici4FOCk3f+nee2NXrt9d/eRdd63c97VzX2ZJrbO8vsZeUdBNDL0sxSiN9R4nJMF7lNGkaezgC6nZvDZi+WiF0J2Dunnr+jUmjcAsDdE6QRlD1ukwLwp6iUGJAcX4GkOhUL0e9XyGJ+o0nRAEJyhnU4rphMY2zMe7iLpkXtVcHc+4NplTu+gTh3mGVhJj0hiZZSuiFAGpNCFAZ7bHRT+n2+lhshSCR5kEqTVSKZRKcEqBiQ86yTtYW9PTCVIIqrI4UNpKKRBSnoX9xrpRZ9NM35cPYle+M+iSTkZoKUiTBCUULgSSPENpjbcRRKMlHsHLoxL/+FMcXltFSMVkMuXFl7fxSY5WEmEUQol27o2DkYWqGXL98nPkeQbe45qGpq4pipL5fM6orYHLYk7iSibzgpd2xszqZl/DyeFeP5Z0SdoO8wTw4Kw7mJDyAdZlzTONZHdvlxA8zlqWl1fpDpYwJsGGQFCKLOuQZTmH1tZxVU1TzJjNZoxHe4yDxyiF0AahzUM3AHT52couRl7IoUkzpBasyeU4HaQUSim00QQkUkuC328exRrZCcVuEZhc3sWFEAlZpck6PZx3NFVDLS3aaLSKX4kxhOEKWy8U+CsXSUwMZLPpjMliztZ0yqKqqeoa6Sy4mr2ioqgaPJ4Q4Hg/o5MosjQFYnMpICjrilwohNGtVFvREw5dL7g2L/HOIhAkxuC8JxQLSDrUtsE1MVnvZDm+KigWC8qyYDoZsZhPYhknJbbX+cIBgG+/+5bRb/+z3ztbNfaeJIuTO3neQQgwaYrUmuBDFE96HxdAq94UAusdi7o+kP0CeBd3gNYKH7d8JCWdx8s2MISA2LiTb539LNOdFzEEpmXNuCgpbUNRNwjv0N6jZRwXq130XccHOeudnG6aIhEYo+N4WW1RCGrZoNvPTBIBSnCTrPk3558lqBgIi7pkMBiSdvuIpIqss7VYW2EXBts0jPd2mY73GO9eoy4KGufwIXzskc99bnRjBwLnL1/4qELeI6QnyXNMmpEkSaRxfAQjdhQd3lmsc1gX26BIgVaxhyLaxlNobUzKdgDRtaP6PoLvncOFgO50ufMnfpqL55/j8uYLPP/YlymqGu8DKni0COh2WssTkHjW8pSVPCVPEvIsI0vb+yQyy0oplLOIRkbxkYjt2TevL/OGpQ7/+tnzZFrTH/RZP3QT/WGDFZKmcUDA1yV5YhBB8PKVy8zG2xTzOXUT76sK9uAshm8btPnl+//O3rHDR4eDpSFGa3RiCK3iM7SdK+9itVCVJc57pAAhVWyDSo1s6SOIu04oiZbyYMzfed8eLiFb/XE7kNPeyotf/CxPPnmOeVkTgovZv4+/s08MLOcJh/odVno9+nlGZuJciWyZImN0nOY0CUknJ0lzgtD4zoCiu8ynv/kCX37iCa5cvRzFo70BVVVTNnUsXeuSQMBoQ1UUWFujPAgpcN5vvvTo12/Zx+zb9IGdvPNRbdIPOu8QQeLqpp29CLgQcNZSVSVVWRGcx7XTj0oKjDIkaYxqRqm22pZIJN7LSGASzRDvsL4V7TgfK4ZIc3Dzm99GOtvl2u42o/mCRdVEMbtRpFKQacVaP2PYyUiNiTIPJVvCLToXqQ1Sa4RSeGnwh28lv+UO8iNHEVLx8+86zV985lv8+sc/Tu0do70dyqqKdbbz2LrEW4u3Duc9OklIk4ROmhKEvP+VmH0bgEvJykdQ8j6PGDoP4No3cVRVRVPXOOfiRFKI/QEhAK1RKu4u2e4yIWUUmguBNBL5CkKybuoDdleEqG92LgCeJulyx+2nOHI158KVK4yLkq6WKAlaQNckZKmhm+UopdFSQRCYRCNEQCsVNYsmRRw7RffOd5AfOkpRlDz1/CaPPvEk33j6aS68fJnpbEre6dDtL7OyorBNC1xTU9c1s7KksY4sSehkGYnRm6Pp9AuvCuAHPnDv6B888Nsftc5/0Pr45CtbUxclth058LTsbzu4p2U077h88D4gJAeDNsIkCKURUiL3m/O1QOyzulKAlwgR6acqBGYyQylJP89RAjpGkypIlSZPU5RutS0otDEkOjJIQglMkoDJSX/gRxje+XbKuuazX/gSn/rDz3Fl63p8cEIgtEbnHawPWKHoZT2Orq3TNJbGRQAH5QJb15gkw3uHlvrjj3zqU5uvCiCApf6IcObngvcbZVnS2IYQxI1msg84fNtYEXFopRUWyf3BQi8OJpBoh22kimJYpaJv9N4RRDtJrmRscbpYyizyIYvZgso50sSgBGilWF4axKju4+S7bFOsuJUFxiTQX6f/H9yNXj/CH37xS3z685/nWy++EPlNk5DkWdTgCIGSsV3bOM/OZMrh1TUOr3Wp64qyrqispWlnkauq2vz93/j1+/9dvP4YgB+4997R3/213/iQbZoHgvXQHmrjAwTvgDgxKWSktbXgQJllvYtsjPcH0de35izbL+9jdWDrGtGy3RBbBDLEQOOzDp1un6KYx4eHQ+uELM+RWoHzVFVFkO0MnVToNEUfO8XKO+5mc2uHj3/kH/DlJ87hQsAoSZ53SNPOQb9EhChcStOMNMkJAnbLhhPHh3RdQ1mV1E1DUzdUtiFJzB8DD15l2PCP/uWnzv3oj//kaWDDHUzrxOjp8LQxFiUVSusWHIWS6oBPiKOuASFFFAyZqOVDRPVTVdXtAGJ7LEUQBCnbJjZ0yxmiKvGuQStNr9ej3+/F2WHnkUqikwRlUvTKEZbf9VPIjTfzW//i9/iHv/3/8PzFF5FSkCVxsrPb7WM6XUySxfs2BilEPJuBAM4xLxcgDcu9HkJEy7HOIeChj/3vf/dv/0lYveqsnFLuXuvUY4QwdCHE6Lk/D7e/8P1zB/ZzvzZTo5X3hhDHBfaDjiQgpcIYc2DGtOe9IKIyUUgRJSSDZfqTbYyKgvU0SVBSRWo9gFIJKs1IT76ZzlveyYvXtvm1//tXePbFFwgEkiQnz1LyTj8CnWQkaYYSiiBAtUdJyeiwccESguD8xU3yLOOWw2sYJWmaerQ7nrzqqR6vOu569nOfG/3wj/3lyoXwk85HP5WlGb3egG6/R5rlSBVHGqRUbYGtDoANrSQtnmugSfMs9k3ahlVVVdgmugTR5owSDrr+SfCsEndglqZkSUZmFLaxaJNgltbp3vVuXpI9PvbgQ/yTT3yCq7vbJFq3Zy30MWkeWRnAe4d3LuoeW58s5Y3TRKLqwFIsFljvmM4Ljq6v0e9mv3j/3/z5L7waTuLV/mL/+ju/9hsfydL8vk63Q7fboZN3kVLSNA1FWVLMp9RlSZxFib5RCREDRIjTP0mWsLa2TpqmcTrTO0bjMdPROPowsX8WW0uXexi9vMk71ZjxeA9vPf1eDyMd3kI4eoorSzfx0B+d4dGnn4jpk1RYZ8k7vbhblW4JhxsBDARaqYPgI9oiQBK1h843FIs51lqGy6sMB/2Pfvojf+/9fxo+f+apHb3O+v0r691397u9u/Isi3MixN6E0dGPgMRZi3O2bf2FaI5tSeeta10AB8ElS1Pmav8AiMiYSBmf52Qx5Ytffpi/8CNvQSmD0YKs08UJxYX0EH/w1ac49+wnqWycWY4TAYJBbxCPB5Aqdu9U/O7b6icAtipaAW0sM+OomsBoTZJmpDphOpmQ591zn/6tX/tTwXtNAH7g3veOfuczZ94rpDgjZNiQbVnmvUfqGFmFFC1PpqL+LwqkiWr9WIrVtiYXN8w+TVK01DRNg9zffyFG+K8/8012RcInX9gm9Q21kFw9P+LSrOT6+EvU1kfgfEAnaeQmlYn3IRVKRwWptU2sdhqLtXVbu0eiQ8n9s7aidBklSLSJ9yXE5tZi571/Fjb7q3xN14NnHt6QSpxJjNkAqJqGxaKgmM2pqgpn44hERCLSTewLlID+cIm11VWyLEUJqBrHtavXmE1ncShbxqn2q5MZf/TII5RVhSDqTKqqYDGf03iPc5bGOqSUdDqduOMCKBWJUaENIXhsXeOaCFpjm3icSmhTRvYDSPuYhcALMEKQGbOZddO7zz300ObrCiDA75x5eCOTnPEhbHjvY3S1Dhs8wbVm0g7m7YulfVtxpHnGysow1q8hnt02ns4YjcbQmu9oOuOzXzvHbBKHIV1TMxvvMZmOKeoaD6RJur9L2kkAEf2ZVAgd6/emrrHOUjd1rNdbSW7w+8KfOMccTTi80pQ3jUzu3jz72dcE3ncMIMDvfObMhlTyjJRqQ0rRSmBvhIBYFIiDUo+WbZEqHoiTmli7Bu9ZNDVlUdH+GmcefYw/OPuHpDpBCEFdV1TFItajnQ4yxGxAEF8fZ0Rk6/ckVbmIx005S2XryEr7WLo57wgi4FxASXGQDWghYqNJsimcvPvqI2dfM3jw7ae6vqbrr//U3Zve+buRnIt/0mbOvOJptNVJmya2Cw40TU3V2FYRHxvk+5FyazLla088TqLiOQreNtg6isd7vX4EQqmYx4WANtFkpYngLeYTmiqWnlVTE1w4qN1d8C350S44iFZkEB+GhXPfDXjftubv5vrdf3XmIwh5H9AOJ4kD4PYJ1Wg24aCIV0ohlcS3JhWEYGcy54kXXuTsl75AcFFM7qylQWLa0zp0kgIBZ11MxGk1PAKK2YLalkjiWTO1awg2TlAR2gS/FbiDjDtOQDxZjo+SJ/ePzp79rk7+/Z4ABPjHv/f77yuq5sPe+2EgRJM6qI/buU0fz/zbd42yzcGkVOzMCl68ssWLV65w8eJ5ut1uHEEoC6piTnAOk3cI3uOauh3zCgilQcB0b4/axqly7wPeO6yNTFKIFGOb0AduiB9BBEYE/6HJ17/8ke9l/d8zgAD/1+88uGGS9MNFMbunnC9wLkbJfT2hCwGlFCZJ6PV6dLtdTGLY3hvxr772OEopXt7aYjzaZjhcoyrmTCcjgnOoJIkHS1QVsiVkhdIkacru1jUWxTz2RHTbenVNPLMrOBBR5xOZ5FhphGjKZ20Q95bnHtn8Xtf+ugC4fz3w4GfeNxqNPrhYzDdU3GL780oYo1laXmZleciw30Mpya/+vw/i0UzKkmoxZ2/nKhKYL2YYbdBJhtQJrinxrcQsAHmvz2jrOpPpBO8tWZohpaSuG6ytD1oEUkfmhRBiy9Q2myKI++fnvvLx12vN33EQ+dOue9/7Ux/7wL1//Rbvw4d8YNN7f1AFCCHIsoReJ6eXZTx87gmubm8DcXfMpiO888wXC7Ksg8m6mE4P7230iy6Cl+Rd5pMxk9kY29SRVhPxdDfnbdxlxJIyRmkBMAqBDyWh+/bXEzx4nQHcv/6n/+6/uV/U9d0hcC+BzXiIgyUQ04e9yZSHzpzhyNoxJkVkfafTMVVVknXjAHaSd/Hex2PvfMw3dZZTlXPGo11sXcYcrg0kzvno41yIBIeSSClGnvAhn4hbJl/7t/ePzn13geJPu15XE36163/99X90j1DqniNHjvzc0SOH+fyXHubRb53HdLpMy5JiNmXn6kX6w+V4eoaMp1qW1YKmLFpaPUEqze72dYr5BN80SKXRWYbRhqaJuhmCH0mTnBVSfnT0yBfPfr/X9ucC4P71wINnhocP909/+J/803uywdq7t0a7G94HivE2ZV3TW17FO4fWKU01Zz4d41ycS8nyDrPJiMnuLrYpESEQlCbrdRGOzaqqPhmozyrnzo7Onfv/1/+M4NWu0+97/3BEeReL8rTp9W+uq3Ij7Q6G5WK6Uc+mw6ouAEhMQvBhc2dni7qYbfq62USJc1ImLyk6Z78fpvlar/8PS++LbU7Pk4gAAAAASUVORK5CYII=", + "e": 1 + }, + { + "id": "image_5", + "w": 80, + "h": 80, + "u": "", + "p": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAYAAACOEfKtAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAgAElEQVR4nMW8WZBc2Xnf+TvbXXLPqgJQ2BoFdMvNpUk1R6RIi7aI1kjy2C8i/eKImYghGfMyDxPBZoRnHPPEZszrzJD0hP1oUaGJkW1ZJmlHyBQVUoOmTFJskg32wiZ7QwEooAq1ZVaudzvnzMO5WShUA93N5uIvoqqyMm9mnvu/3/r/vnMF/xVlMBj0oii6LIS44F31eFkWa7P5ZC3PMwRqTUlJHMdESRulzdAYvS6lHCLEurfuupNcySaTq/1+f/hf6xzEr/LLBoNBTyl1WUp5WUr5B8CaEALnHN5ZyqpgPp+S5xlCCLSQmDghStoYE6GUQkqJEALweOeoqpKiyNeLYnbFWve1NLVX+v2LvzJAfyUAjsfjy1LKz3jvLwshegGAu+K9x7mKsiyYzybkeY5QEokgThLipIPWBq31fQHM84y8mCGFII5TtNRfdtZ9rdPvf/WXfW6/NAAHg0FPa/0Z4EkhRA/gKHBHH3vvsbaiKgtmswlFniGlQAqJSVLitI3REVprlJRwCKClLEuKIqco5wggjlKUUuFzYV1K+VRZ2m/2+/31X8Z5/sIBXADnvX/yuLY96LHNJlTr30MM19HTO0RSotIWpD1s4ySucwY6Z6CxglCKAB/gHWVZHAIoEURRchRAACSseyG+3G53P/+LPt9fKICDweBTSqnPAWtwF6Tjfxcyff375C/9JWLrOZoxGCOxlaV0ku1Rxe48xsQJsxJWuimr58/TXL1EvPYhfH8NJzRlmVPkc8oqQyIxRwAE8AFppFQ0Gs11KeVTQog/+kWd8y8EwMFgsKaU+kPv/WV4c+CEEOSjXba+/iXKmz+g09CstDXOwY19zyubY668XvLjcRufrjDY3yXSkmaa0mk2uPye83z0UsSjj5wmfs/vkrUfoizm5EWGkpIoSpBS1cDdFWMMSZIgpQT4KvBZIcT6z3vuPzeABwcHn/HeP7Xwc/DmAO688C1u/PkXMOUBl042MBq2hxlXfjriz56bcWMkiJImzc4Ku7tbJElEFKckUYKKG4AjjhI+9Oh5/sElxYc++usUFy4z9wYlBVGUIqWsTfwuinESE0fxAkCAIcE//1za+I4BHAwGPSnl57z3T8L9/dvxv7ee/Wte+rf/B50IHl9rMZnlfP35AX/0vQM2J57Ce2KToE2C9R5rS7TWpFGMVJrJfIrWhqqqSJImZ1dP89nfOcvv/P2LHFz8x1SmTRwlCCnxeLwLflAAaZoSR+YogAv5ohDis+8Uh3cE4GAwWAO+IoR4/J4Puy9wHoFk/Vt/ygtf++d0I89HHu2xM5zxf33jNv/hxSlxnCCEoLIOhyCOmyEq24okMTSTJoODA4xRdNodTNKkLAuiqEEsHf/P//Tf8P7HzjO4+E8QcRukxDuBxeG9RwhBM22QRPp+AAJcBT7xTkz6vp/2ZlKD9zTw+FscWotg+9pLPPNn/4JOBL/5SIfpNOOf/fubfOX5KdaHJRgl8d7hnUdIT1mVOB8S7PFkTFGWWGdxztNpNjl75gInT52mtbTKP//6LQ5urNO9cwVJUDvHXfMVQuBrc/bHnWOQx4GnvfdrPysePxOAg8FgzXv/NHWUfcBi7hHvPd/9t19iZ3/A2rJiluU8+ac3+M56RqQVkVF4PCbSGKVRSiC8R2CJtcRayyzLcM5RVhXT6Zj9vR1wFefPnOXSxUfw3bP80Td3qTauEk1v3PP9ATzwzuHefL1rvAMQ3zaAx8F7O+K959rVv+HWi9/lQj9iua156j9u8I2fTsgqyywvKYoSax15UZEmBqMlWkIziYm1QmuJUQIlPd565vM5g/09Xn35BV56/vtQFlx66AJ7vffx7Es7RFt/i/QORABPCIkQ4JzDube84Gv8jCDqt3PQ5ubmmrX2aSnl2gKYhRyvKI7nenu318lLz3vPN/jz5w/4d1cneOrjhMALgXUe6zxxFNNKUwQWKWOEgDSJcM6xOxyTFZa8KimqkspV3Lx1A2sr8B/i3e99Hy9OPb+x9zrqzBZV83xYHwKPp/IO6zz6Pms8Jmt5aZ/e3Nx84vTp0+u/EACdc185flUWi7gfaEef23j+O/Qbgn/9zA5/9qNpHRXFopTAe9BSkBpNI5I0oohmrEkjTbsRs9Jr4a1jXpRMior1rQFbgxHTeUle5Nza2mCe5XjnePe73sOtkebM/ksUrYcO1ykQeO+obIVRkvvHkSPn6/2a9cVXrg2uPXHxLYiJtwTw+vXrX/DeP34cmPsBd1wmwx02XvhbPnDe8H9+a8jeuAI8QhB8nVQYrYkjTWwkbSNZaRpOdJp0Wwnn+i2WOi2klFjnmBaO96+dZnN/xPrtXV65vcf2eMbO3jbf+8F3yIuCS933cbp0CEQAT4ZMwDmJ9x7/NtcuvHv8VLzyOeBNU5w3BXBj48anqso+CUdLozeC+KDnrj37X8BZNmaavXEBCIQALaGyHukdaSxJtCGNDN1mgzNLTc7123QbMSd7LTrNJtpohJDoKMZKQ5HP2NrZ4cVrmzz94g2u7Y3Z39/l+Ree5WS3zbvOLdF72Nf+T+C9QAhHICD80dO5ryyAllI/6b2/LoT44s8MYPB7xReO+rvjV+6t/N/GT6+y3FQ8N+4cvi4A6wUOkELgAa0V7TShlWhaSUS3GdNrpiSRIY00UdoC54hbbXSzB1XJUrvFUiOmco7pj65xczBlOBrwg+ef59FLD/F7H5jT6rQXqwNgEUPeSgO99xzJgj7nvf/qg3LEB3oDrd0XnKt61rq7H3r0C3hjGnP8+Z0br9FtwK15k0XOLoXAhiCJrDk97x0NI2lEilgJjFEkcYxUCoREKUncaBE1u8StLsnSKp2Vs5w/d54P/9p5Hju/ghKCyWzKzt4dvvv8i7z6k5frYHW4OkTtet8KPOss+JCEe+97wB8+6Pj7AjgabH9KOvtxnOX4dz0ItCPPALD+7BWKrZ/SSjWvb2zXVx2c94dO3APOWgSglUSroJneU/tJjROB/5PGoKIYoTTSRJh2n7R3gnOrK7z/wirtNKKyjvF0xI9//AIvv/g844MxeI8QHlFbrlLiLf1fZe2hBtbHXvbef/JtA6iE+5zwFYoH500PTqLD4r717/8Vj5yQPHZG8z9e2g8ALizDe4SkrlUFznkq5xBCYL3HeY+QEhNFKK1BSKQ2CK3CCSmJlwplItqtNo+eP8Fqr4nznqIo2D844JlnnuHO5m0kIL1HCoeJVCBk30RCegVCCrS+x8M9VWvjmwOYj3c+J6xdk84j4B4NfDPTvftaeO7xf/RJVs+sgoCVpmatrzHSIvFIBLZyOG8BjxQQK0FZVljnQ03sHdY6EAqpNFLHiCgFrREChDGIqIFp91jud1nttRB4ispSlDnX1q9x/fXXghnXl1VJ9ZbaB9CMI5Qx9/CKhCT7yTcFcD7YXMO7T4la8xY5FMd+hJAPBHKh+4995Hd45dQ/4jsbmp9sZPzOWsyvn9JI7/HegbdoKVluJpxfahLrwOGV1mKdwzoHQlCVJSpuoBtNpFCgFB4JQiHiBqbRodPpstpv1q0BR14UjKcTnn/uKlVZsPB/i3W/lRitMSa63/GfOa6Fx4+47B1ri1zJWXeMmAwAeg/e3318XCbDPV771r9j8/t/wasbYx4/L3n3KcFvnItpRQLvLY044uLJLu8+u0S/mSCBPC8pCkvlJU5GeB0jm11IW3ihcbaEqqQ2fFAaH7dRrT5nT64A4LyjLC2z+ZRb19fJ51l9UT33Xex9RAqBlPfNdXoc08J7jNzD57yzOGeprA31Y10tLBz7vbLI/e597eo3/5xXvvYF/uF7BIOGZW8s+fCliFN7jue3S769btFa0ksjtBRIFfLGeekQ84LXdqfsFIazhaHVMZyJ5pwUGlUVxGmKjCxFVZE5x8b2Hjt7+9wclUSRZp6VVLaiKEr29vaYTg5otRtIwDsL6i2SQEK647190MufAZ56A4C7t1/9uC3LNSE8VVlRlSWVDaErFOVv9B33JtAc/h3e2WB36kFGPHou5ZmXR5xcauL9nMuPNPnejYyWL5lPxrhGDHFEYR3zvGJvVrGfCTozy7ysiMw+m1u3OLfS5/xyn5Orp1HKsn79Oj+9tcVwlmOMITWaxBjm8wLnHHmeUVrLYH+f1dXVUHNbi1TuQZzgoVSupMrD59zn2F7dnr0CR0y4mM0+nmUz8vmcbDZjPpuRl9URYO4GkOM54fHnhDJUTnB919FuNjm9nFJZaCUxJxqSlUZIS1JR8PKtOwxGcxKt0Uphi4LZ/h7xcJf57pD5tCD1hricMdjeYD4eMhlsM5sM2d7a5sbNXW7e3mcwV5w6cZYTyyu0mmkIRFXFzubtw1zC2tB7ds49MItw3rM33MfZKhAV95fPLB5ogGeffbY3yatPxi7kGWVZkhUVVmnSyOPc/ZPp41XJ4vX28ilAcG27REnD6aUmm3szOklEO5Y8fCJme5qwdKJHK5/z0sYdjJDsT3O6nQ6/9dij/NrDZ+g2m8RxQj6Z8u3nbnFrdwdrXqLT7LI3Lzi71OSRC+dIk5ibG9sMRnMacZNuM2U+HTGbTdnZ3r7nzKuyCJooFa6ujJSSCASlrdgdDNjYvMEjp1YpixxjovsBeNl73xNCDDXAeDy87NKE3GiEh6qqmBcV2lQYY7HG1l96rzovTPuw/iV4xd7qeRyS3YllXpQ0koh5PqKbRqSR5HRbc5BLjFI0+iu8v9FhOjygHxve99h7KauCGztTtl/bJtGSS6dXcGnMfHDAP/wHH+G7P3qVDzz8d4hiw9604OFYgc1pJS2wc0YHI6Z5Rms2Z3dnJ0R9cdf3OWspywrnPM7frUzmWcbO9i5lltfa6B5oxsDHgK9pgN3B9OOTaXmYpbuqoqwqkqQK6YKsyzApHwjigpqSUtLorSJURGYde+OCfkORl6GYxzkkHi3rCO49vXaLRx86xfqtAz74a6dIY0Oz1UFHMUpr7oxnPPfSNZZWz/DB972LjY1NfuuD70KUFc12myTSdBPBX75wixPLPV56PVQ+ZVVxZ/MWRZ6RJgmeutkUbAjqHHGxdrxDOIcSD/b7R+SJQwC3d8cfU0oipQAczlYI72g2M5yHyjkaZYlWOhxTs7wLcuDwi4RASYkwMZ3VNcYbL3MwKWgYxbx0lNaRO09hASTOe7wQeOcpMstvf/BhTix16bcbREmCQFA4SeU9y+0GHzjTJO0s8d9d/gi9pR5OKrAeLSWdTpe4mXJiSfKd5zLiKMTHrVtbTEYj4ihikd8usopD3734v85AqNNv+eYg/gHwpH7qC1/oTWbjNSVUAMdDUWSURYbckwzHE3rdHs1Wg9iE+RSBQKgFXR6SbSlA1rXu1tYm6alHGG28wmheYJTkYFYxnBXMS8Gs8GgJ1vlDM8qdpywsMk6J45Q4jvFeUGUVdj6jrzPaSRdbFJw8d4n5aIu0ewanIc/m7JXw7ofa/Ie//hsWzUyPY38wZHtri16/VxcF4JA45wKpcYSGs9ZSlQXeOjwOeFMA17z3Pb3x2muPR1GKFBKlNEYprLXkeYa3nsbegE6vR7fTJU0TpFKE+R557xXyHnBMhkN++Mx3ePFHP+SDHc/13YxX7nimc4uQGdd2LdsjR9SQOA/WOkwsUNowyxyz8QhWV0ErhLP4qsJWIyItKV0F3pP0TjDbuYm1BT5JgYhrG+v82Tf+M2VRYbQM8zMOvJC8+sqrXHrk4dAvrutx68QhvbUYsauqiqIocNIeauhbyMd0tj+5bOMStCHLM6qiQMgQlbQxFFaQVzCdFyhj7oK2MOOaJK2KnJ1b63z3b76JtxWnT53mu3ueP/7+Jom0vOuEYWtiGeUgheF9LY1Qga5QSCQQRRrpBdnONlGnRdJImc+mXH3uGki4eHoF6x2YhEazQ2RihNRUsuKrT3+PLCtCRK3X5b0nig0vPnuVv3f5YyRxUgcGT+XuesAFgGVZkuUZUSLAB2/5FtzhRd1uNdearT4owzSbs719G1eUYQ5PqnBF3ISyrJAy+MBFUCG4TIr5lN3bN/jRD7/D8tIK/ZVT3Lp1g/3dXZzzHJTwnZsFAEoKGpEL42tSHE4RWOew1qKVxuiIKG4gVcQzL74KzvHwudNEkUR4D8pA1MRWFdpE3NnZ5oX1W2E99QkHd+QxScpkOmXz9ibn19aw1lFWFmc5bG5JGdqnRVGQZxlR2gAPtgrVmHpw9fLrstvpX+h3l+m1OnRaHXSUYG0I3976msb1OGdx3obmtnU4a7FlhS0LRvt7PPvD73Lq1BmWT6yyfzBge3eXqqwQh54HZP3fNC+wPmjJgl6SBP9pCSyN9475dMLBwQQrNPuzEicjbFFg52Oidhukp6oKvv7dH+Js3QeRAkkAsKp7yXlRsbFxC+cFlYWysuRFQVFUlGVVzxiWZFnGPMvrPh5Yaymr8s1MeE22kqTXSGKSxBBHER6PsxXYwMv5mp9zR6KWdQ5bVUH98Lz2yo/pdrosLZ8gm065tr4O1gZer/4msSBzCG3Mg1lGVZOpUgikVkRRhHceJwBnmR3s8Z5LpzjZbVBkBUIlWKlx+RypI4QQjA8G/Ou/+nbQZkDVjSQpQiMKJFllKbICJwQOQVUGcy3LUDOXpaWqKvKiJM9zvLtbXeV5flhI3A9AXRbzNaMUwksqZ8nnc6y1CKmQdcnjA3qBfheAD2rvrKPKc+ZZzoWHLjKfTnlt/TW8rTAuaK/yHis8zgmUDuSpQLAxmHCy3ybxvjaRkAEoHbKByXTELMtI0oS1h07R6/Q5efYh0nYPgSPPc6p8zje++32u3d5FSwl4tJJ1dhAoLyckSZJQeo9UBqEEXmR1kAiEgfc+BJCsZJ4VNTbBEmxRUNmKSN63IkEX2aw3n00o8AyH+8xmE4TzSGFxpmaH64zc12aHcDhXgQfhHUoJpoMh0507uOmUjoWOlWTeMxEejcRJapAcQngG04zd8ZxGHOO8R0nBvMhxtVbf2tljNM+RCLT3yGJEtzEhG84hMXiZY63jX3zlr5CElqWqg58Q4IUH4YnShGavR+UcSiqMEZg4RaCwVYVzFo/DWUdRBY0M+X24oNZWTCYTup3u/Xzhmq6qktlkyNw6BoNdqjxHKoPyDu/DME9U8+/eEzQQEB5ckTPZuMlob4f59hYnZ5Zm5cj9IrMHJUB60FpQOZBShMkp59g9mLLUbJAmYZCoKCsOxhPOn1lFSc/tm3cYH5TEJZzv94lHhv7qWVprCaV3/MuvfoNbOwMipbEuXASEQAl5SIJIL0jTZugG2pAfRsagRQgclQ1+3ToBSmPrakoI8LXijEZjpJA0m82QB9fla1VVaCEFToYk0tqCpJEgAocV8igfviRSEotD1OXXeHub3Z++SLyzj7FzpsajrSQqHbnyVGEFCO+RKuR8AodRAudDGTfJCw5mM6JI00wSkjhiVpTsDfeZzDJOnerRbOTETnHp1EOsnjmP6yiIKr7+rR/xp1d+gBKy7mGAlPU2CKXwdZVU5HOmsxnz8ZgsDxodfLJERxLtTW0BilanS9JqoerMYEEYl0XB/v4+s+kME0d1xSbBe3QcpaSNBtiKpX6PVrNFVZZkeUlpg/8Ls3qShtSIyZz9Gze5c+MVJvMxtiyRvgplCIIlDIUryGXofeAJQcF7QKK0QlQlHs88tzgP86JkbzxFK0mnGTM6GIehIqfo9hp4JMN4hpF7rKQn2Nwf8oU//Sts5dFa4BzBfOvyMkkalLYI9XA2ZzIcUOSn2R8cYExEpBVaazQSISVKSoyJSOOUVruLUrruTASNllLjnGc+y8iyDClCiielQjc7nfVWu7UWe4/RhqIomUxnjMZjJrMMHJz1Ecs7Of/p5f/CjckAvGOez7GuwiuQeYWSkk0JLSWQXjLBgnBYKVhwu8aExSopEB5KbymcJU0iLI6tgxF5ZRHOc3q5xVK7QafZpt9fot3tI+OU/YMB/+u//BMGoylahYBTWouW5pAROnn6NLdu3SRNE7SCRpLQWFrh5vYuWimaSUojTWgmMcYYtJJ1zufRKsJVlqqsMBEIqdEmuBy8Q3iPxSOsw3sx1Gm7SaPZBgmNRkqeF4ED87CUK5rbA/Z3bvD90TZMDqjIsQKkUlgX5visECjvsEJxoFwoxL3iwDu0ICTL1mKUqRU11M7eCwbTnPddTEmSBOHBOsf69pCQOCgaiT9sNs2GB/zff/Ifee7lm2gZSskwySZC9EWilCKOUyKjaaQJaMlDlx7lvY9/CC8lk+mU4WTM/uiARpLSSFOa9XePJjMmsykHI0W/l6GiBkJFKKURCrxzdTZi60qFdd3t9NaTVnNtUa3keUgc7Ss3ePY/f4u96QGVdzghUNayBGyKoFNKS/CSSlZ4a3Ha00RS4IhrbQh9YIcUgjSNmM7DND21Bu6PZsyygodWV2ilCQhw1jGc5Vx/aZ0ouk2/3eTOwYSvP/MCt3cGNQPkkUpQVu5wVM7h0Eoy2tumkcY0Wymm0eGjv/t7XFo7T1lZsqJgPJ0zHI/YHw7Z39o6rF6y6ZzN25sUI0Wr1UOolCgWaG2QKpg7QiC8CgObMNQ6iq9rHTg/QYheN9c3eP6Hz5DnU0pn0Q7aXtB1EXEFp41lVzsqC4USjE2Ey+Y4AbpOJazwSBsmDZQXKCUwSoXUR9au3IVke317n8cuncFogdKS2axkNBnz7Rdf58cbu4cRVdVs0SI5V0JQ4ImUqrtonkQpXFFALDCR4oMf/fs8vHaORiPGOWi6lG6ryXK3w8mlPrvDEXd2d9m9c4e9nR3293YY7TmipEluNf2lZZppgziKUEogASEUQkk0fl3j3NWyLD4pZZhZ+caf/yVP/8V/orAV73cp56qYtPSkKCIhkRWkwuJUGU6kAkyDm6qiEiCNRgdyDV1rhfOOTtoM9JGUaOHxTqBU6P/e3Bkymc7pdVKcdQzGU9a39ri5c3BPT8b7Bf8IcpGqeFAqTBwoJWikMZVwrPR7tPodfv/3fp92M2x9QIVg5iJFI4lot1JWel3OnlrhzqlT3Lh5g8gohvv7vH79NvuTgrNnz7GyskKn3aKVJsRGhz17SuIR13WJX6+KnN3tff7iL77Bj370LK6ypN6z6eeccU2EDDlcEwXS0yk9KpLkapEjghGajvf0Uk0+q9j1DhuI6npUTFFaG0yBkHZYq3ACsrzkJ7e2UUpSVAXrW/u8dmuHSV4Eq1hMVzmHlGpREeJrJtwohVISrSCJDePScuJEm0fe8xiXzj9UTyTUph6SNLwSGC3DBFga02o0WOp2We4vc2dri4ODAdPZjPXr62zd2aLb67O8vMxSt0Or0SCJYyLUFQ3VlReeucr/+2/+hEme161zSSkkE1+S6DmnKsUF0WCOZckbMleyUkjuSIuV4JylIw3CV2y4HCscvqoONaQRh52WZVGhpArT9z40cyBMILx0c5eT3Qbzec7mzpCd0SwECLGYmalRq23Y1xMOUgiUkkgFSWLIfUWcxqwstfjND/5dImNqfvkudXX3kzxSgVYKIxMiHS5Eu9UiyzJmsym7g322d3fZ3Nxge3ubVrvLiaVlev0OSVtd1Z/+9KeH59v99Ymza867YB4ysCRdCzsuZ6o1zkne7Zpk3jH3Achr0hLjOZCw40raeLwFEyvmZYkSAo8gTWOKqsIoQ17lKKlx3iK1BBR4x8E0Y31rQKw8o6wgKxYtxbvTD4GfC8M/rm6xLMwpiQ1JmuCdY/VEm4sPneTxcUyWFUSxqUd7Q738hv0sgNEAEf1WAyPl4TRZXllG4zFbOzts3L7N3t4O+4MdGo3u+v/2P/8PoSs38/ZrDv8ZX5dgQjiaCFIRTrDyjk1VYsioNGTe4VTBOmWYXwFyV9FFk6CoIojSCDmeIepEN9DYoKQO/lFqLBZlAinhvGP7YMbpTkxRg7fI6w41rwYRL0CGdSptiGLF8lITrRVlbukvt5FWsvvMNWaP/x3aSz2aaUoc6RCIuD9JqhSY2NDwgZRQSiOEZ7nf4czJEzx84QLbu3tc37jBrVu3rkDdF547fwXvDpvF3jmaztORJrAYPjSAXpEzWirCC7DekzrBUFRhegoZ+iJloLt8nXRGJgpVind1lA/TlVorfFmXeaLCeclwXnGiFdVrCCO6gYK/l1oXQuC8J9KaKNa0UkOrHRHHEcWs5PyFJbJhyfbOPvEPfszrqy3OPXSeE0srNNOYSGuUPNbXDhw2Wkp8pIm0RsvAvieAjSParQYnl3qsnTvDJMu++r//LzWAUaSuyNwPrRC9CjAIhPMhqgqBFaCEwlU5Oy7njGowsFnYFWQWJZSk8iCVZJ5lzG2FQYRJU60pKouQPiS/QqKPMBsCVc8OCkbziqKwYYpLLDrNx8SHz9Fa0G3HNBsRzXZEM4mo0pTzF84gNzTX9u/Qe/4ar14bcePaKpcefZTTZ85ycmmZRhITaYUUC033d1cjFbqO6qL2oEqCUYrEKBpxRGe+9E2ox62zLMtOJ42PdKR5V1dITruwM1wqQSx0yOVEKMlu25K+1MxdCR4qKWmoiCUveHeuOW8Nla/wzmEaEbqVUNnAhEgZ9sN572k2IqwNrj2OVCCxHFhnycYzZtbXrQNxj/4JIRBeII2k0zC0ew1Onmhy9lyPfrdB2m7w3scfxe8rrr/8OlbFPL+9znB/wJ3N2+xsbjGaTqgIjayQP9bdOifqCdoavMP+8N0+sZQCqeWXG6n4N4cmDODgS9b5j5+zmk4lSSqNtYJRJHBK4ZzjQAqoPANbcka3YJ6xLBR9k5LJnMiFAUpfOkrtiTspRBHzbIbzDiWC6ZT1zInWijwvaJoEgJktKawgsx6Hr3O9sMfjHgUU4KwnSRSthub06RYnTqXEJsFEbRqtPi9lryCTGGkaDHZHzGYzRqMD9nZ22Nq8zY3XXuWhSw/z0KVLnD5xkjiK6m6oINIKePAwpgz7jbkHwPXJ8HnhopEAAArPSURBVMpjzaVho6KHEMx8SbPSvKtM0Urxt/GUqXHoKKIoSi5lKdLGXCOHxGEQZNKCEGTCYo2gu9xmNCtC+UOII4jQT/Z1N1vgieOIspoFagrASHDVYcmGvzuLszAq7wVxJGl2Db0TMatn20iZ0m0vk7b63Nwf8mtxk+VSIp1kNJowm2ccHEzY3x+ytXWHjRvXee0nP+bshYucX7tIv9ujkTZotZrouu8t3wjiuhDia28AEOBcGX0pRXxOeskcx9hXdKkwGIQUnHeGgYbMObqZZsvPSZ3AOktFSC0mrqAwgrgR0+kkDKc5nopGw4AP8UQSdgtV3hHHQbutrVAqaNyC4j+6OfDutCxQN/LjRAOe/nJCbylFyBZLS13SpM2FM6uYrR1aeUXfpIznUypbkMuCLM+YzmZMxuNDMG9dX+f0ufOcOXuek6dO4VdCba41x0F86ug/9wCYFNkXrU4/o6AngVI4Sjw344Icj3CWCzZhT0tm0hF7xcQ7SgQNbcjEjDkVmbW0uik6MeRFiTaaVqvJeDQ90lyq2WmpGE9nVNYhBRgVYcUCwHsv/SKZkYDWAUATKRpdTbubIFSXpNNnOJry4ccepbUJj9yO+Um6zM3xbph3tD7cl6GsyLKcyWTGwcEBe7u73L51i5snX+fMufM89PAjnDt3jpWlJRKjAgUX9op88+ia7iH5f0KWvVd2UoW4LAArIBOevUQilGRWFQg8PWFYrhRNocl8SZFohFDMq4y5KymEZ/nhk6iGYWtrQLfTxmjDfJaBkFhniWKDVIo8zw8bVtZ60jQmywuKqgr9mCPTX0LIuosHjYbhwvkOqmF45NFlzpw9iddtVLLM3r5FkbFiGiyPYSQU396/EaJUrdmu3ntcViVFXpJlOdPZjOlkwsFwyGh/n9HBkNxWCBVhjAHEl7SS99yL5g07lTpV9EWr7CeVEGvCC66ZAuMlTZFQSMPMhZm/UiqSStBAMRWCubdsK8e4qvCR5nynicVSVo5GK5RoYtH4RuB8aKKXZdhO4etBozTWdV0rDwchpZAcrRqEABMpklYc9pHI0IFDN8itYO/2DeKVFcpOE7FsOLtH3eOoA5IPj60Ifse5IlBdecF8Nmc0GnMwPGD7zh1u37zB6bPnOH/pkfW/95u/8dRxvN4A4JdZH/5Wsvr5BvoPm1YyVwLrKhLvaZuYWV4yrXJmUrEZFTjvuSFK9nwBRiCtRCgBkcbZAhNroiRlMp1jjKGqLFIFMLwP3bBFfauVQipJI1ZMpwvu7W6eFsAL+V+SaHSsmMw9XmoyL9G6wbxUzPa3GeGZymXKmaPRahOIqKoejq+juq8b6JXHibq5VFmKomKeZYzGY4bDAdt3trl1/eYbwIMHbLT59nTryzu6unI1LhgImNUTCVJIUqWxruBlNeeOqdjXjpG3eMIYXAXEaYTQCqdk2LASRWFfiAsjHXGkUEKiZNiNtJA0joKm4ImTQNELGWrfEMVDLmYihY4VUiscDqUjMqewCPJSozBsvbpJOZvz+vXXOCHbnOwsBQ1edBUXcaGekA+DToH5zouS2TTnYDBm+84etzZuf/Wf/rN/+kf3w+qBmw1zwadH3j3rJL258+Q+5yyKtkxo2opdWRF7U7cRwVUVtgpARpEBIfFCIKUJU6qtBsNZuD2TjkzQLBlI1sKXpHGEUaGjVpWONDLM52VgbUS4jUliNEoqGs2IfqdLu3UCE0mMWUapk1jfhcxgyz7TLGFvGnNjtcd+K+OJv/vfcme6hzEmNJYig4kioig81pHBGEMcGbTRmMgQaYNUavjc93/02T/+//74vjjdP1OspddbeRIhvuBc8BtRFHHJJyyPM16JcowytGXEpvaMyzyMe3jLyeUOa4+vYV3Gxsv79Jd7nFk+jfEx7VabVruF1hFpMwUf6s4kjYnjmFanjS09URJG6UwUkcQxJo6I4ggTRcSJIU4NSRqhlSZODcpolNBhCtWGoKOkrDmMYAm+JmKPVhYIDt3EIl8NGhoeSSE/1Wql99W+N9VAgOFw94udVm/NC/kZqUL03JeWInZk1hErUB5qihPvXdhOUFbk85ykYVhq9/nEH/z3/PYTl+kv9UmiGKnCAJCoTXJRLoX8LuQ5d2+Zwt1RupqIEaKm9hfMat3DXbzjsLKt33O3jjnC6nhx6AOD3GcW0POlleXuA8F7SwABpOapsnIfE47HvZB0naQASmehjmQKSR/JTITIuVR4VG6JWzEf/fBv87Hf/X1On1hBa1Xf1q4+ueNZvr9b9zon6olXQNSwCI/wd4FdEFzh4+pW+P3KL79o8x4Si4ePxZHfhxL+vXpqufuGvXHH5S0BHA6HwyTpfUJF/ukGck07S4ZHeuhWgr5QdLRmQsXQV8zxNEuPnmTEJ/q87zc+TL/Xw4kwlSW8xXLXhIISHXr0e77bcUTbapU7Tm3BUd7w7lSpuPviYaC4563+6J9jO+896650n3grbOBt3vYky4brUvonllHrd6o5Y1vQAM6Wiou5ZqXS9ciED1tLLeisIiqhd2I5TEp5X48NHZ5pGJ0jzAV6d+TVY/tRFid6fEPPG4458ro/8h6xAPEtpNbedVe6J06ffnv3G3zb940ZDofrypsn8H59WBVktVk4D8aDFirkWiJMnUZFRTJyJGnjcC45nOTd94WTrH+LxSZGf0Qjj8gRzRKLMft7XvZ3A8MCkAUoD/jM+5j7zwQe/Ix3Lro6XF/H2icMrJd4ciq88IdOWgoRSrXCYgpoqQaxMcGcFpqxKIbrSSp/ZBlecDj9tZBDmI6crK8j5nF5O3dSOi5HQP+ZwYN3cO+s9Wy4bqR7QsHVufAEor6edZYC6x3SQzyDXjPUwIcMwuHEqjj8EfXzh8ByL4jHYQqTDv7uz+K4Y9p39L3+AbzekQ+9+k7Ag3cAIMBWlq1vFpMPOO++ZHFU3rEtLbe8ZYBlQ1e8ks8YeI2MzD2c8l2zZREaQ+rh63yMe519KJ/9/YPDWwDzIOCOgu1xX5pN3hl48A4BXMhflztPOqE+fV3mwz1ssEwpKQQMsbhGA2M0x3O1hRwCKUJiEkxY3KN2i9Rk4cse6COPyT1HHNPU+vWh9+6zqyv9Jy9efOf3of65AAT4V+UrX36d7APOi696IQ5zOYsn6XQCObqgUN5ExKJd6d+4rMPI+oDPuW/ud/S5NwQXccWW7gOrJ/oPvKHO25WfG0CAreHW+u7uxiek8J/G+3UPGCFpdtoopY6Y3ZE/9/P39QtvCAaHVclba96Rr7nPC2JdID51cqXzjk32uPxCAFzIcLj35YPZwUUvxOetlOvNbidMAxypAO5G1Xs158iGiJDzHkmOjwIi7vPcPZu977MuIRg67z4/H7sPnFzpvGlp9rPKLxTAhdye7D/VTnpPrK6tfVpLub7wfSGH40i+fNQ3HfmAowFFHEmKF2/196tHjkmI+EOP//xs7C+ePtF/6ufxdQ+St2cTP6e8eu3Gx5Hm41LIT4Y5xLuB4ijTfLioo6WdWIyFH0mkw0G8YWgoJNNDPFe85EunT/Sv/LLP7VcC4EKuXbvWQzUueyk+LoX8GPi1ewKAWJiEOGRSDm93JO7G8HvrZxBCrHvnvqaEvDKbceWXoWkPkl8pgMfl2rVrPXTrcSSXlRQXBKw5IXoSsQb0gkYtCCrWwzCcX1eCdSHU1cLb63amfqWAHZf/HwmOtfC5hWSYAAAAAElFTkSuQmCC", + "e": 1 + }, + { + "id": "comp_0", + "layers": [ + { + "ddd": 0, + "ind": 1, + "ty": 4, + "nm": "Shape Layer 8", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 64, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [618.211, 700, 0], "ix": 2 }, + "a": { "a": 0, "k": [-297.789, 200, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "d": 1, + "ty": "el", + "s": { "a": 0, "k": [16.966, 16.966], "ix": 2 }, + "p": { "a": 0, "k": [0, 0], "ix": 3 }, + "nm": "Ellipse Path 1", + "mn": "ADBE Vector Shape - Ellipse", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.372549019608, 0, 0.898039215686, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-297.789, 200.234], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [138.444, 138.444], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Ellipse 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 20, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 2, + "ty": 4, + "nm": "Shape Layer 7", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [618.211, 700, 0], "ix": 2 }, + "a": { "a": 0, "k": [-297.789, 200, 0], "ix": 1 }, + "s": { "a": 0, "k": [32, 32, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "d": 1, + "ty": "el", + "s": { "a": 0, "k": [16.966, 16.966], "ix": 2 }, + "p": { "a": 0, "k": [0, 0], "ix": 3 }, + "nm": "Ellipse Path 1", + "mn": "ADBE Vector Shape - Ellipse", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.372549019608, 0, 0.898039215686, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-297.789, 200.234], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [138.444, 138.444], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Ellipse 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 20, + "st": 0, + "bm": 0 + } + ] + }, + { + "id": "comp_1", + "layers": [ + { + "ddd": 0, + "ind": 1, + "ty": 4, + "nm": "Shape Layer 1379", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [2064, 1325, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 67, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 97, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 127, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 157, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 187, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 217, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 247, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 2, + "ty": 4, + "nm": "Shape Layer 1378", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [2057, 1339, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 163, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 193, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 223, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 253, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 283, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 313, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 343, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 3, + "ty": 4, + "nm": "Shape Layer 1376", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1938, 1325, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 4, + "ty": 4, + "nm": "Shape Layer 1375", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1924, 1325, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 5, + "ty": 4, + "nm": "Shape Layer 1377", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [2096, 1297, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 6, + "ty": 4, + "nm": "Shape Layer 1374", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1938, 1297, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 7, + "ty": 4, + "nm": "Shape Layer 1373", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1924, 1297, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 8, + "ty": 4, + "nm": "Shape Layer 1370", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1945, 1283, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 237, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 267, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 297, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 327, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 357, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 387, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 417, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 9, + "ty": 4, + "nm": "Shape Layer 1371", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1931, 1283, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 93, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 123, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 153, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 183, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 213, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 243, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 273, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 10, + "ty": 4, + "nm": "Shape Layer 1372", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1917, 1283, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 190, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 220, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 250, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 280, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 310, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 340, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 370, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 11, + "ty": 4, + "nm": "Shape Layer 1369", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1902, 1283, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 71, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 101, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 131, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 161, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 191, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 221, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 251, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 12, + "ty": 4, + "nm": "Shape Layer 1361", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1952, 1269, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 13, + "ty": 4, + "nm": "Shape Layer 1362", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1938, 1269, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 133, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 163, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 193, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 223, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 253, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 283, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 313, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 14, + "ty": 4, + "nm": "Shape Layer 1363", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1924, 1269, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 222, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 252, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 282, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 312, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 342, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 372, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 402, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 15, + "ty": 4, + "nm": "Shape Layer 1364", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1910, 1269, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 16, + "ty": 4, + "nm": "Shape Layer 1365", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1896, 1269, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 17, + "ty": 4, + "nm": "Shape Layer 1360", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1882, 1269, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 18, + "ty": 4, + "nm": "Shape Layer 1367", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1812, 1269, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 19, + "ty": 4, + "nm": "Shape Layer 1368", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1798, 1269, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 20, + "ty": 4, + "nm": "Shape Layer 1366", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1784, 1269, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 21, + "ty": 4, + "nm": "Shape Layer 1347", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1959, 1255, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 22, + "ty": 4, + "nm": "Shape Layer 1348", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1945, 1255, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 23, + "ty": 4, + "nm": "Shape Layer 1349", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1931, 1255, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 24, + "ty": 4, + "nm": "Shape Layer 1350", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1917, 1255, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 25, + "ty": 4, + "nm": "Shape Layer 1351", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1903, 1255, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 26, + "ty": 4, + "nm": "Shape Layer 1352", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1889, 1255, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 27, + "ty": 4, + "nm": "Shape Layer 1353", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1875, 1255, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 28, + "ty": 4, + "nm": "Shape Layer 1354", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1861, 1255, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 29, + "ty": 4, + "nm": "Shape Layer 1355", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1847, 1255, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 30, + "ty": 4, + "nm": "Shape Layer 1356", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1833, 1255, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 31, + "ty": 4, + "nm": "Shape Layer 1357", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1819, 1255, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 32, + "ty": 4, + "nm": "Shape Layer 1358", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1805, 1255, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 33, + "ty": 4, + "nm": "Shape Layer 1359", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1791, 1255, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 34, + "ty": 4, + "nm": "Shape Layer 1346", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1777, 1255, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 35, + "ty": 4, + "nm": "Shape Layer 1333", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1952, 1241, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 36, + "ty": 4, + "nm": "Shape Layer 1334", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1938, 1241, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 103, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 133, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 163, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 193, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 223, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 253, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 283, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 37, + "ty": 4, + "nm": "Shape Layer 1335", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1924, 1241, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 25, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 55, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 85, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 115, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 145, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 175, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 205, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 38, + "ty": 4, + "nm": "Shape Layer 1336", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1910, 1241, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 207, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 237, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 267, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 297, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 327, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 357, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 387, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 39, + "ty": 4, + "nm": "Shape Layer 1337", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1896, 1241, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 210, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 240, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 270, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 300, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 330, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 360, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 390, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 40, + "ty": 4, + "nm": "Shape Layer 1338", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1882, 1241, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 41, + "ty": 4, + "nm": "Shape Layer 1339", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1868, 1241, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 42, + "ty": 4, + "nm": "Shape Layer 1340", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1854, 1241, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 43, + "ty": 4, + "nm": "Shape Layer 1341", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1840, 1241, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 44, + "ty": 4, + "nm": "Shape Layer 1342", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1826, 1241, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 45, + "ty": 4, + "nm": "Shape Layer 1343", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1812, 1241, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 31, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 61, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 91, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 121, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 151, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 181, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 211, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 46, + "ty": 4, + "nm": "Shape Layer 1344", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1798, 1241, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 138, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 168, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 198, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 228, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 258, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 288, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 318, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 47, + "ty": 4, + "nm": "Shape Layer 1345", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1784, 1241, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 48, + "ty": 4, + "nm": "Shape Layer 1332", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1770, 1241, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 49, + "ty": 4, + "nm": "Shape Layer 1319", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1959, 1227, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 50, + "ty": 4, + "nm": "Shape Layer 1320", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1945, 1227, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 51, + "ty": 4, + "nm": "Shape Layer 1321", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1931, 1227, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 205, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 235, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 265, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 295, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 325, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 355, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 385, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 52, + "ty": 4, + "nm": "Shape Layer 1322", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1917, 1227, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 64, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 94, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 124, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 154, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 184, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 214, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 244, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 53, + "ty": 4, + "nm": "Shape Layer 1323", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1903, 1227, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 55, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 85, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 115, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 145, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 175, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 205, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 235, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 54, + "ty": 4, + "nm": "Shape Layer 1324", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1889, 1227, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 55, + "ty": 4, + "nm": "Shape Layer 1325", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1875, 1227, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 56, + "ty": 4, + "nm": "Shape Layer 1326", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1861, 1227, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 57, + "ty": 4, + "nm": "Shape Layer 1327", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1847, 1227, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 58, + "ty": 4, + "nm": "Shape Layer 1328", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1833, 1227, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 59, + "ty": 4, + "nm": "Shape Layer 1329", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1819, 1227, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 127, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 157, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 187, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 217, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 247, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 277, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 307, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 60, + "ty": 4, + "nm": "Shape Layer 1330", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1805, 1227, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 38, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 68, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 98, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 128, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 158, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 188, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 218, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 61, + "ty": 4, + "nm": "Shape Layer 1331", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1791, 1227, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 204, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 234, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 264, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 294, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 324, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 354, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 384, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 62, + "ty": 4, + "nm": "Shape Layer 1318", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1777, 1227, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 63, + "ty": 4, + "nm": "Shape Layer 1305", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1952, 1213, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 64, + "ty": 4, + "nm": "Shape Layer 1306", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1938, 1213, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 65, + "ty": 4, + "nm": "Shape Layer 1307", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1924, 1213, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 66, + "ty": 4, + "nm": "Shape Layer 1308", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1910, 1213, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 67, + "ty": 4, + "nm": "Shape Layer 1309", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1896, 1213, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 68, + "ty": 4, + "nm": "Shape Layer 1310", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1882, 1213, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 34, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 64, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 94, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 124, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 154, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 184, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 214, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 69, + "ty": 4, + "nm": "Shape Layer 1311", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1868, 1213, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 93, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 123, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 153, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 183, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 213, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 243, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 273, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 70, + "ty": 4, + "nm": "Shape Layer 1312", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1854, 1213, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 227, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 257, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 287, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 317, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 347, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 377, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 407, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.382, -449.996], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 71, + "ty": 4, + "nm": "Shape Layer 1313", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1840, 1213, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 72, + "ty": 4, + "nm": "Shape Layer 1314", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1826, 1213, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 73, + "ty": 4, + "nm": "Shape Layer 1315", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1812, 1213, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 74, + "ty": 4, + "nm": "Shape Layer 1316", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1798, 1213, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 75, + "ty": 4, + "nm": "Shape Layer 1317", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1784, 1213, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 76, + "ty": 4, + "nm": "Shape Layer 1304", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1770, 1213, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 77, + "ty": 4, + "nm": "Shape Layer 1292", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1945, 1199, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 78, + "ty": 4, + "nm": "Shape Layer 1293", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1931, 1199, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 79, + "ty": 4, + "nm": "Shape Layer 1294", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1917, 1199, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 80, + "ty": 4, + "nm": "Shape Layer 1295", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1903, 1199, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 81, + "ty": 4, + "nm": "Shape Layer 1296", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1889, 1199, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 82, + "ty": 4, + "nm": "Shape Layer 1297", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1875, 1199, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 83, + "ty": 4, + "nm": "Shape Layer 1298", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1861, 1199, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 84, + "ty": 4, + "nm": "Shape Layer 1299", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1847, 1199, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 85, + "ty": 4, + "nm": "Shape Layer 1300", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1833, 1199, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 86, + "ty": 4, + "nm": "Shape Layer 1301", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1819, 1199, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 87, + "ty": 4, + "nm": "Shape Layer 1302", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1805, 1199, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 88, + "ty": 4, + "nm": "Shape Layer 1303", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1791, 1199, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 89, + "ty": 4, + "nm": "Shape Layer 1291", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1777, 1199, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 90, + "ty": 4, + "nm": "Shape Layer 1284", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1910, 1185, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 91, + "ty": 4, + "nm": "Shape Layer 1285", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1896, 1185, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 92, + "ty": 4, + "nm": "Shape Layer 1286", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1882, 1185, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 93, + "ty": 4, + "nm": "Shape Layer 1287", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1868, 1185, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 94, + "ty": 4, + "nm": "Shape Layer 1288", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1854, 1185, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 95, + "ty": 4, + "nm": "Shape Layer 1289", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1840, 1185, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 96, + "ty": 4, + "nm": "Shape Layer 1290", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1826, 1185, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 97, + "ty": 4, + "nm": "Shape Layer 1283", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1812, 1185, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 98, + "ty": 4, + "nm": "Shape Layer 1282", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1924, 1185, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 99, + "ty": 4, + "nm": "Shape Layer 1281", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1938, 1185, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 100, + "ty": 4, + "nm": "Shape Layer 1274", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1917, 1171, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 101, + "ty": 4, + "nm": "Shape Layer 1275", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1903, 1171, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 102, + "ty": 4, + "nm": "Shape Layer 1276", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1889, 1171, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 103, + "ty": 4, + "nm": "Shape Layer 1277", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1875, 1171, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 104, + "ty": 4, + "nm": "Shape Layer 1278", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1861, 1171, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 105, + "ty": 4, + "nm": "Shape Layer 1279", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1846, 1171, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 241, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 271, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 301, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 331, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 361, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 391, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 421, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 106, + "ty": 4, + "nm": "Shape Layer 1280", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1832, 1171, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 181, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 211, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 241, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 271, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 301, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 331, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 361, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 107, + "ty": 4, + "nm": "Shape Layer 1273", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1818, 1171, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 61, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 91, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 121, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 151, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 181, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 211, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 241, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 108, + "ty": 4, + "nm": "Shape Layer 1264", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1924, 1157, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 109, + "ty": 4, + "nm": "Shape Layer 1267", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1882, 1157, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 110, + "ty": 4, + "nm": "Shape Layer 1268", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1868, 1157, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 111, + "ty": 4, + "nm": "Shape Layer 1269", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1854, 1157, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 112, + "ty": 4, + "nm": "Shape Layer 1270", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1840, 1157, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 113, + "ty": 4, + "nm": "Shape Layer 1263", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1826, 1157, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 114, + "ty": 4, + "nm": "Shape Layer 1272", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1847, 1143, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 115, + "ty": 4, + "nm": "Shape Layer 1271", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1861, 1143, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + } + ] + }, + { + "id": "comp_2", + "layers": [ + { + "ddd": 0, + "ind": 1, + "ty": 4, + "nm": "Shape Layer 1250", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1889, 1087, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 2, + "ty": 4, + "nm": "Shape Layer 1263", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1917, 1115, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 3, + "ty": 4, + "nm": "Shape Layer 1254", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1917, 1115, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 4, + "ty": 4, + "nm": "Shape Layer 1253", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1910, 1101, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 5, + "ty": 4, + "nm": "Shape Layer 1256", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1945, 1115, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 6, + "ty": 4, + "nm": "Shape Layer 1252", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1938, 1101, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 7, + "ty": 4, + "nm": "Shape Layer 1251", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1903, 1087, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 8, + "ty": 4, + "nm": "Shape Layer 1255", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1931, 1087, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 9, + "ty": 4, + "nm": "Shape Layer 1249", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1917, 1087, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 10, + "ty": 4, + "nm": "Shape Layer 1248", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1882, 1073, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 11, + "ty": 4, + "nm": "Shape Layer 1243", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1896, 1073, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 12, + "ty": 4, + "nm": "Shape Layer 1236", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1707, 1059, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 13, + "ty": 4, + "nm": "Shape Layer 1237", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1714, 1073, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 14, + "ty": 4, + "nm": "Shape Layer 1235", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1721, 1087, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 15, + "ty": 4, + "nm": "Shape Layer 1227", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1700, 1045, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 16, + "ty": 4, + "nm": "Shape Layer 1228", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1714, 1045, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 17, + "ty": 4, + "nm": "Shape Layer 1239", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1749, 1059, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 18, + "ty": 4, + "nm": "Shape Layer 1240", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1763, 1059, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 19, + "ty": 4, + "nm": "Shape Layer 1238", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1756, 1073, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 20, + "ty": 4, + "nm": "Shape Layer 1230", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1742, 1045, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 21, + "ty": 4, + "nm": "Shape Layer 1232", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1770, 1045, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 22, + "ty": 4, + "nm": "Shape Layer 1242", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1805, 1059, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 23, + "ty": 4, + "nm": "Shape Layer 1241", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1798, 1073, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 24, + "ty": 4, + "nm": "Shape Layer 1234", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1798, 1045, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 25, + "ty": 4, + "nm": "Shape Layer 1226", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1812, 1045, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 26, + "ty": 4, + "nm": "Shape Layer 1219", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1693, 1031, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 27, + "ty": 4, + "nm": "Shape Layer 1220", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1707, 1031, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 28, + "ty": 4, + "nm": "Shape Layer 1224", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1763, 1031, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 29, + "ty": 4, + "nm": "Shape Layer 1225", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1777, 1031, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 30, + "ty": 4, + "nm": "Shape Layer 1215", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1686, 1017, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 31, + "ty": 4, + "nm": "Shape Layer 1214", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1700, 1017, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 32, + "ty": 4, + "nm": "Shape Layer 1213", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1693, 1003, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 33, + "ty": 4, + "nm": "Shape Layer 1216", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1826, 1003, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 34, + "ty": 4, + "nm": "Shape Layer 1217", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1819, 1017, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 35, + "ty": 4, + "nm": "Shape Layer 1212", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1833, 1017, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 36, + "ty": 4, + "nm": "Shape Layer 1192", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1568, 989, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 37, + "ty": 4, + "nm": "Shape Layer 1187", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1728, 975, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 38, + "ty": 4, + "nm": "Shape Layer 1188", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1714, 975, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 39, + "ty": 4, + "nm": "Shape Layer 1189", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1700, 975, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 40, + "ty": 4, + "nm": "Shape Layer 1186", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1686, 975, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 41, + "ty": 4, + "nm": "Shape Layer 1191", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1575, 975, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 42, + "ty": 4, + "nm": "Shape Layer 1190", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1561, 975, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 43, + "ty": 4, + "nm": "Shape Layer 1181", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1721, 961, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 44, + "ty": 4, + "nm": "Shape Layer 1182", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1707, 961, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 45, + "ty": 4, + "nm": "Shape Layer 1180", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1693, 961, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 46, + "ty": 4, + "nm": "Shape Layer 1184", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1582, 961, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 47, + "ty": 4, + "nm": "Shape Layer 1185", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1568, 961, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 48, + "ty": 4, + "nm": "Shape Layer 1183", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1554, 961, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 49, + "ty": 4, + "nm": "Shape Layer 1175", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1715, 947, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 50, + "ty": 4, + "nm": "Shape Layer 1176", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1701, 947, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 51, + "ty": 4, + "nm": "Shape Layer 1174", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1687, 947, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 52, + "ty": 4, + "nm": "Shape Layer 1178", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1589, 947, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 53, + "ty": 4, + "nm": "Shape Layer 1179", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1575, 947, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 54, + "ty": 4, + "nm": "Shape Layer 1177", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1561, 947, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 55, + "ty": 4, + "nm": "Shape Layer 1164", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1750, 933, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 56, + "ty": 4, + "nm": "Shape Layer 1167", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1708, 933, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 57, + "ty": 4, + "nm": "Shape Layer 1168", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1694, 933, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 58, + "ty": 4, + "nm": "Shape Layer 1169", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1680, 933, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 59, + "ty": 4, + "nm": "Shape Layer 1163", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1666, 933, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 60, + "ty": 4, + "nm": "Shape Layer 1171", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1610, 933, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 61, + "ty": 4, + "nm": "Shape Layer 1172", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1596, 933, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 62, + "ty": 4, + "nm": "Shape Layer 1173", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1582, 933, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 63, + "ty": 4, + "nm": "Shape Layer 1170", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1568, 933, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 64, + "ty": 4, + "nm": "Shape Layer 1147", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1771, 919, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 65, + "ty": 4, + "nm": "Shape Layer 1148", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1757, 919, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 66, + "ty": 4, + "nm": "Shape Layer 1149", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1743, 919, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 67, + "ty": 4, + "nm": "Shape Layer 1150", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1729, 919, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 68, + "ty": 4, + "nm": "Shape Layer 1151", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1715, 919, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 69, + "ty": 4, + "nm": "Shape Layer 1152", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1701, 919, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 70, + "ty": 4, + "nm": "Shape Layer 1153", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1687, 919, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 71, + "ty": 4, + "nm": "Shape Layer 1154", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1673, 919, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 72, + "ty": 4, + "nm": "Shape Layer 1155", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1659, 919, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 73, + "ty": 4, + "nm": "Shape Layer 1158", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1617, 919, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 74, + "ty": 4, + "nm": "Shape Layer 1159", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1603, 919, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 75, + "ty": 4, + "nm": "Shape Layer 1160", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1589, 919, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 76, + "ty": 4, + "nm": "Shape Layer 1161", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1575, 919, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 77, + "ty": 4, + "nm": "Shape Layer 1162", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1561, 919, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 78, + "ty": 4, + "nm": "Shape Layer 1146", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1547, 919, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 79, + "ty": 4, + "nm": "Shape Layer 1193", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1820, 905, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 80, + "ty": 4, + "nm": "Shape Layer 1126", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1778, 905, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 81, + "ty": 4, + "nm": "Shape Layer 1127", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1764, 905, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 82, + "ty": 4, + "nm": "Shape Layer 1128", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1750, 905, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 83, + "ty": 4, + "nm": "Shape Layer 1129", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1736, 905, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 84, + "ty": 4, + "nm": "Shape Layer 1130", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1722, 905, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 85, + "ty": 4, + "nm": "Shape Layer 1131", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1708, 905, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 86, + "ty": 4, + "nm": "Shape Layer 1132", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1694, 905, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 87, + "ty": 4, + "nm": "Shape Layer 1133", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1680, 905, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 88, + "ty": 4, + "nm": "Shape Layer 1134", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1666, 905, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 89, + "ty": 4, + "nm": "Shape Layer 1135", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1652, 905, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 90, + "ty": 4, + "nm": "Shape Layer 1136", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1624, 905, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 91, + "ty": 4, + "nm": "Shape Layer 1137", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1610, 905, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 92, + "ty": 4, + "nm": "Shape Layer 1138", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1596, 905, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 93, + "ty": 4, + "nm": "Shape Layer 1139", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1582, 905, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 94, + "ty": 4, + "nm": "Shape Layer 1140", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1568, 905, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 95, + "ty": 4, + "nm": "Shape Layer 1141", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1554, 905, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 96, + "ty": 4, + "nm": "Shape Layer 1125", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1540, 905, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 97, + "ty": 4, + "nm": "Shape Layer 1143", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1428, 905, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 98, + "ty": 4, + "nm": "Shape Layer 1144", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1414, 905, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 99, + "ty": 4, + "nm": "Shape Layer 1145", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1400, 905, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 100, + "ty": 4, + "nm": "Shape Layer 1194", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1386, 905, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 101, + "ty": 4, + "nm": "Shape Layer 1195", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1393, 919, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 102, + "ty": 4, + "nm": "Shape Layer 1196", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1407, 919, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 103, + "ty": 4, + "nm": "Shape Layer 1197", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1421, 919, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 104, + "ty": 4, + "nm": "Shape Layer 1198", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1435, 919, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 105, + "ty": 4, + "nm": "Shape Layer 1199", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1449, 919, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 106, + "ty": 4, + "nm": "Shape Layer 1200", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1463, 919, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 107, + "ty": 4, + "nm": "Shape Layer 1201", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1477, 919, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 108, + "ty": 4, + "nm": "Shape Layer 1202", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1470, 933, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 109, + "ty": 4, + "nm": "Shape Layer 1203", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1456, 933, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 110, + "ty": 4, + "nm": "Shape Layer 1204", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1442, 933, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 111, + "ty": 4, + "nm": "Shape Layer 1205", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1428, 933, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 112, + "ty": 4, + "nm": "Shape Layer 1206", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1414, 933, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 113, + "ty": 4, + "nm": "Shape Layer 1207", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1400, 933, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 114, + "ty": 4, + "nm": "Shape Layer 1208", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1407, 947, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 115, + "ty": 4, + "nm": "Shape Layer 1209", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1421, 947, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 116, + "ty": 4, + "nm": "Shape Layer 1210", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1435, 947, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 117, + "ty": 4, + "nm": "Shape Layer 1211", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1428, 961, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 118, + "ty": 4, + "nm": "Shape Layer 1142", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1414, 961, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 119, + "ty": 4, + "nm": "Shape Layer 1103", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1785, 891, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 120, + "ty": 4, + "nm": "Shape Layer 1104", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1771, 891, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 121, + "ty": 4, + "nm": "Shape Layer 1105", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1757, 891, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 122, + "ty": 4, + "nm": "Shape Layer 1106", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1743, 891, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 123, + "ty": 4, + "nm": "Shape Layer 1107", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1729, 891, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 124, + "ty": 4, + "nm": "Shape Layer 1108", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1715, 891, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 125, + "ty": 4, + "nm": "Shape Layer 1109", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1701, 891, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 126, + "ty": 4, + "nm": "Shape Layer 1110", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1687, 891, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 127, + "ty": 4, + "nm": "Shape Layer 1111", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1673, 891, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 128, + "ty": 4, + "nm": "Shape Layer 1112", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1659, 891, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 129, + "ty": 4, + "nm": "Shape Layer 1113", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1645, 891, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 130, + "ty": 4, + "nm": "Shape Layer 1114", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1631, 891, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 131, + "ty": 4, + "nm": "Shape Layer 1115", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1617, 891, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 132, + "ty": 4, + "nm": "Shape Layer 1116", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1603, 891, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 133, + "ty": 4, + "nm": "Shape Layer 1117", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1589, 891, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 134, + "ty": 4, + "nm": "Shape Layer 1118", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1575, 891, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 135, + "ty": 4, + "nm": "Shape Layer 1119", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1561, 891, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 136, + "ty": 4, + "nm": "Shape Layer 1120", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1547, 891, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 137, + "ty": 4, + "nm": "Shape Layer 1102", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1533, 891, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 138, + "ty": 4, + "nm": "Shape Layer 1122", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1421, 891, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 139, + "ty": 4, + "nm": "Shape Layer 1123", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1407, 891, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 140, + "ty": 4, + "nm": "Shape Layer 1124", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1393, 891, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 141, + "ty": 4, + "nm": "Shape Layer 1121", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1379, 891, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 142, + "ty": 4, + "nm": "Shape Layer 1071", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1806, 877, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 143, + "ty": 4, + "nm": "Shape Layer 1072", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1792, 877, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 144, + "ty": 4, + "nm": "Shape Layer 1073", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1778, 877, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 145, + "ty": 4, + "nm": "Shape Layer 1074", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1764, 877, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 146, + "ty": 4, + "nm": "Shape Layer 1075", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1750, 877, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 147, + "ty": 4, + "nm": "Shape Layer 1076", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1736, 877, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 148, + "ty": 4, + "nm": "Shape Layer 1077", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1722, 877, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 149, + "ty": 4, + "nm": "Shape Layer 1078", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1708, 877, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 150, + "ty": 4, + "nm": "Shape Layer 1079", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1694, 877, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 151, + "ty": 4, + "nm": "Shape Layer 1080", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1680, 877, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 152, + "ty": 4, + "nm": "Shape Layer 1081", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1666, 877, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 153, + "ty": 4, + "nm": "Shape Layer 1082", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1652, 877, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 154, + "ty": 4, + "nm": "Shape Layer 1083", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1638, 877, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 155, + "ty": 4, + "nm": "Shape Layer 1084", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1624, 877, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 156, + "ty": 4, + "nm": "Shape Layer 1085", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1610, 877, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 157, + "ty": 4, + "nm": "Shape Layer 1086", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1596, 877, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 158, + "ty": 4, + "nm": "Shape Layer 1087", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1582, 877, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 159, + "ty": 4, + "nm": "Shape Layer 1088", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1568, 877, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 160, + "ty": 4, + "nm": "Shape Layer 1089", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1554, 877, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 161, + "ty": 4, + "nm": "Shape Layer 1090", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1540, 877, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 162, + "ty": 4, + "nm": "Shape Layer 1091", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1526, 877, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 163, + "ty": 4, + "nm": "Shape Layer 1092", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1512, 877, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 164, + "ty": 4, + "nm": "Shape Layer 1093", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1498, 877, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 165, + "ty": 4, + "nm": "Shape Layer 1094", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1484, 877, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 166, + "ty": 4, + "nm": "Shape Layer 1095", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1470, 877, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 167, + "ty": 4, + "nm": "Shape Layer 1096", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1456, 877, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 168, + "ty": 4, + "nm": "Shape Layer 1099", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1414, 877, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 169, + "ty": 4, + "nm": "Shape Layer 1100", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1400, 877, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 170, + "ty": 4, + "nm": "Shape Layer 1101", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1386, 877, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 171, + "ty": 4, + "nm": "Shape Layer 1070", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1372, 877, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 172, + "ty": 4, + "nm": "Shape Layer 1039", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1799, 863, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 173, + "ty": 4, + "nm": "Shape Layer 1040", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1785, 863, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 174, + "ty": 4, + "nm": "Shape Layer 1041", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1771, 863, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 175, + "ty": 4, + "nm": "Shape Layer 1042", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1757, 863, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 176, + "ty": 4, + "nm": "Shape Layer 1043", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1743, 863, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 177, + "ty": 4, + "nm": "Shape Layer 1044", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1729, 863, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 178, + "ty": 4, + "nm": "Shape Layer 1045", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1715, 863, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 179, + "ty": 4, + "nm": "Shape Layer 1046", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1701, 863, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 180, + "ty": 4, + "nm": "Shape Layer 1047", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1687, 863, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 181, + "ty": 4, + "nm": "Shape Layer 1048", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1673, 863, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 182, + "ty": 4, + "nm": "Shape Layer 1049", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1659, 863, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 183, + "ty": 4, + "nm": "Shape Layer 1050", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1645, 863, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 184, + "ty": 4, + "nm": "Shape Layer 1051", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1631, 863, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 185, + "ty": 4, + "nm": "Shape Layer 1052", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1617, 863, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 186, + "ty": 4, + "nm": "Shape Layer 1053", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1603, 863, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 187, + "ty": 4, + "nm": "Shape Layer 1054", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1589, 863, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 188, + "ty": 4, + "nm": "Shape Layer 1055", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1575, 863, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 189, + "ty": 4, + "nm": "Shape Layer 1056", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1561, 863, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 190, + "ty": 4, + "nm": "Shape Layer 1057", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1547, 863, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 191, + "ty": 4, + "nm": "Shape Layer 1058", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1533, 863, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 192, + "ty": 4, + "nm": "Shape Layer 1059", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1519, 863, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 193, + "ty": 4, + "nm": "Shape Layer 1060", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1505, 863, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 194, + "ty": 4, + "nm": "Shape Layer 1061", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1491, 863, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 195, + "ty": 4, + "nm": "Shape Layer 1062", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1477, 863, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 196, + "ty": 4, + "nm": "Shape Layer 1063", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1463, 863, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 197, + "ty": 4, + "nm": "Shape Layer 1064", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1449, 863, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 198, + "ty": 4, + "nm": "Shape Layer 1065", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1435, 863, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 199, + "ty": 4, + "nm": "Shape Layer 1067", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1407, 863, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 200, + "ty": 4, + "nm": "Shape Layer 1068", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1393, 863, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 201, + "ty": 4, + "nm": "Shape Layer 1069", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1379, 863, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 202, + "ty": 4, + "nm": "Shape Layer 1038", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1365, 863, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 203, + "ty": 4, + "nm": "Shape Layer 1005", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1890, 849, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 204, + "ty": 4, + "nm": "Shape Layer 1004", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1876, 849, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 205, + "ty": 4, + "nm": "Shape Layer 1007", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1792, 849, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 206, + "ty": 4, + "nm": "Shape Layer 1008", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1778, 849, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 207, + "ty": 4, + "nm": "Shape Layer 1009", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1764, 849, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 208, + "ty": 4, + "nm": "Shape Layer 1010", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1749, 849, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 209, + "ty": 4, + "nm": "Shape Layer 1011", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1735, 849, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 210, + "ty": 4, + "nm": "Shape Layer 1012", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1721, 849, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 211, + "ty": 4, + "nm": "Shape Layer 1013", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1707, 849, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 212, + "ty": 4, + "nm": "Shape Layer 1014", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1693, 849, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 213, + "ty": 4, + "nm": "Shape Layer 1015", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1679, 849, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 214, + "ty": 4, + "nm": "Shape Layer 1016", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1665, 849, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 215, + "ty": 4, + "nm": "Shape Layer 1017", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1651, 849, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 216, + "ty": 4, + "nm": "Shape Layer 1018", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1637, 849, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 217, + "ty": 4, + "nm": "Shape Layer 1019", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1623, 849, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 218, + "ty": 4, + "nm": "Shape Layer 1020", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1609, 849, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 219, + "ty": 4, + "nm": "Shape Layer 1021", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1595, 849, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 220, + "ty": 4, + "nm": "Shape Layer 1022", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1581, 849, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 221, + "ty": 4, + "nm": "Shape Layer 1023", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1567, 849, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 222, + "ty": 4, + "nm": "Shape Layer 1024", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1553, 849, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 223, + "ty": 4, + "nm": "Shape Layer 1025", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1539, 849, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 224, + "ty": 4, + "nm": "Shape Layer 1026", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1525, 849, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 225, + "ty": 4, + "nm": "Shape Layer 1027", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1511, 849, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 226, + "ty": 4, + "nm": "Shape Layer 1028", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1497, 849, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 227, + "ty": 4, + "nm": "Shape Layer 1029", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1483, 849, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 228, + "ty": 4, + "nm": "Shape Layer 1030", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1469, 849, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 229, + "ty": 4, + "nm": "Shape Layer 1031", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1455, 849, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 230, + "ty": 4, + "nm": "Shape Layer 1032", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1441, 849, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 231, + "ty": 4, + "nm": "Shape Layer 1033", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1427, 849, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 232, + "ty": 4, + "nm": "Shape Layer 1034", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1413, 849, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 233, + "ty": 4, + "nm": "Shape Layer 1035", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1399, 849, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 234, + "ty": 4, + "nm": "Shape Layer 1036", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1385, 849, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 235, + "ty": 4, + "nm": "Shape Layer 1037", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1371, 849, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 236, + "ty": 4, + "nm": "Shape Layer 1006", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1357, 849, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 237, + "ty": 4, + "nm": "Shape Layer 968", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1911, 835, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 238, + "ty": 4, + "nm": "Shape Layer 969", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1897, 835, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 239, + "ty": 4, + "nm": "Shape Layer 970", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1883, 835, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 240, + "ty": 4, + "nm": "Shape Layer 971", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1869, 835, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 241, + "ty": 4, + "nm": "Shape Layer 973", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1841, 835, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 242, + "ty": 4, + "nm": "Shape Layer 974", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1785, 835, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 243, + "ty": 4, + "nm": "Shape Layer 975", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1771, 835, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 244, + "ty": 4, + "nm": "Shape Layer 976", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1757, 835, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 245, + "ty": 4, + "nm": "Shape Layer 977", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1743, 835, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 246, + "ty": 4, + "nm": "Shape Layer 978", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1729, 835, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 247, + "ty": 4, + "nm": "Shape Layer 979", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1715, 835, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 248, + "ty": 4, + "nm": "Shape Layer 980", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1701, 835, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 249, + "ty": 4, + "nm": "Shape Layer 981", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1687, 835, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 250, + "ty": 4, + "nm": "Shape Layer 982", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1673, 835, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 251, + "ty": 4, + "nm": "Shape Layer 983", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1659, 835, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 252, + "ty": 4, + "nm": "Shape Layer 984", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1645, 835, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 253, + "ty": 4, + "nm": "Shape Layer 985", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1631, 835, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 254, + "ty": 4, + "nm": "Shape Layer 986", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1617, 835, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 255, + "ty": 4, + "nm": "Shape Layer 987", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1603, 835, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 256, + "ty": 4, + "nm": "Shape Layer 988", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1589, 835, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 257, + "ty": 4, + "nm": "Shape Layer 989", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1575, 835, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 258, + "ty": 4, + "nm": "Shape Layer 990", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1561, 835, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 259, + "ty": 4, + "nm": "Shape Layer 991", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1547, 835, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 260, + "ty": 4, + "nm": "Shape Layer 992", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1533, 835, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 261, + "ty": 4, + "nm": "Shape Layer 993", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1519, 835, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 262, + "ty": 4, + "nm": "Shape Layer 994", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1505, 835, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 263, + "ty": 4, + "nm": "Shape Layer 995", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1491, 835, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 264, + "ty": 4, + "nm": "Shape Layer 996", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1477, 835, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 265, + "ty": 4, + "nm": "Shape Layer 997", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1463, 835, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 266, + "ty": 4, + "nm": "Shape Layer 998", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1449, 835, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 267, + "ty": 4, + "nm": "Shape Layer 999", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1435, 835, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 268, + "ty": 4, + "nm": "Shape Layer 1000", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1421, 835, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 269, + "ty": 4, + "nm": "Shape Layer 1001", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1407, 835, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 270, + "ty": 4, + "nm": "Shape Layer 1002", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1393, 835, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 271, + "ty": 4, + "nm": "Shape Layer 1003", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1379, 835, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 272, + "ty": 4, + "nm": "Shape Layer 967", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1365, 835, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 273, + "ty": 4, + "nm": "Shape Layer 930", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1918, 821, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 274, + "ty": 4, + "nm": "Shape Layer 929", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1904, 821, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 275, + "ty": 4, + "nm": "Shape Layer 931", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1848, 821, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 276, + "ty": 4, + "nm": "Shape Layer 932", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1792, 821, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 277, + "ty": 4, + "nm": "Shape Layer 934", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1778, 821, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 278, + "ty": 4, + "nm": "Shape Layer 935", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1764, 821, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 279, + "ty": 4, + "nm": "Shape Layer 936", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1750, 821, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 280, + "ty": 4, + "nm": "Shape Layer 937", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1736, 821, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 281, + "ty": 4, + "nm": "Shape Layer 938", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1722, 821, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 282, + "ty": 4, + "nm": "Shape Layer 939", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1708, 821, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 283, + "ty": 4, + "nm": "Shape Layer 940", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1694, 821, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 284, + "ty": 4, + "nm": "Shape Layer 941", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1680, 821, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 285, + "ty": 4, + "nm": "Shape Layer 942", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1666, 821, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 286, + "ty": 4, + "nm": "Shape Layer 943", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1652, 821, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 287, + "ty": 4, + "nm": "Shape Layer 944", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1638, 821, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 288, + "ty": 4, + "nm": "Shape Layer 945", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1624, 821, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 289, + "ty": 4, + "nm": "Shape Layer 946", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1610, 821, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 290, + "ty": 4, + "nm": "Shape Layer 947", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1596, 821, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 291, + "ty": 4, + "nm": "Shape Layer 948", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1582, 821, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 292, + "ty": 4, + "nm": "Shape Layer 949", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1568, 821, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 293, + "ty": 4, + "nm": "Shape Layer 950", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1554, 821, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 294, + "ty": 4, + "nm": "Shape Layer 951", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1540, 821, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 295, + "ty": 4, + "nm": "Shape Layer 952", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1526, 821, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 296, + "ty": 4, + "nm": "Shape Layer 953", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1512, 821, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 297, + "ty": 4, + "nm": "Shape Layer 954", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1498, 821, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 298, + "ty": 4, + "nm": "Shape Layer 955", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1484, 821, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 299, + "ty": 4, + "nm": "Shape Layer 956", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1470, 821, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 300, + "ty": 4, + "nm": "Shape Layer 957", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1456, 821, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 301, + "ty": 4, + "nm": "Shape Layer 958", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1442, 821, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 302, + "ty": 4, + "nm": "Shape Layer 959", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1428, 821, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 303, + "ty": 4, + "nm": "Shape Layer 960", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1414, 821, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 304, + "ty": 4, + "nm": "Shape Layer 961", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1400, 821, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 305, + "ty": 4, + "nm": "Shape Layer 962", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1386, 821, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 306, + "ty": 4, + "nm": "Shape Layer 963", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1372, 821, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 307, + "ty": 4, + "nm": "Shape Layer 964", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1358, 821, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 308, + "ty": 4, + "nm": "Shape Layer 965", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1344, 821, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 309, + "ty": 4, + "nm": "Shape Layer 966", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1330, 821, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 310, + "ty": 4, + "nm": "Shape Layer 933", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1316, 821, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 311, + "ty": 4, + "nm": "Shape Layer 892", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1911, 807, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 312, + "ty": 4, + "nm": "Shape Layer 893", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1841, 807, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 313, + "ty": 4, + "nm": "Shape Layer 895", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1771, 807, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 314, + "ty": 4, + "nm": "Shape Layer 896", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1757, 807, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 315, + "ty": 4, + "nm": "Shape Layer 897", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1743, 807, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 316, + "ty": 4, + "nm": "Shape Layer 898", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1729, 807, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 317, + "ty": 4, + "nm": "Shape Layer 899", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1715, 807, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 318, + "ty": 4, + "nm": "Shape Layer 900", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1701, 807, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 319, + "ty": 4, + "nm": "Shape Layer 901", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1687, 807, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 320, + "ty": 4, + "nm": "Shape Layer 902", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1673, 807, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 321, + "ty": 4, + "nm": "Shape Layer 903", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1659, 807, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 322, + "ty": 4, + "nm": "Shape Layer 904", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1645, 807, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 323, + "ty": 4, + "nm": "Shape Layer 905", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1631, 807, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 324, + "ty": 4, + "nm": "Shape Layer 906", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1617, 807, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 325, + "ty": 4, + "nm": "Shape Layer 907", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1603, 807, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 326, + "ty": 4, + "nm": "Shape Layer 908", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1589, 807, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 327, + "ty": 4, + "nm": "Shape Layer 909", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1575, 807, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 328, + "ty": 4, + "nm": "Shape Layer 910", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1561, 807, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 329, + "ty": 4, + "nm": "Shape Layer 911", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1547, 807, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 330, + "ty": 4, + "nm": "Shape Layer 912", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1533, 807, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 331, + "ty": 4, + "nm": "Shape Layer 913", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1519, 807, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 332, + "ty": 4, + "nm": "Shape Layer 914", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1505, 807, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 333, + "ty": 4, + "nm": "Shape Layer 915", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1491, 807, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 334, + "ty": 4, + "nm": "Shape Layer 916", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1477, 807, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 335, + "ty": 4, + "nm": "Shape Layer 917", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1463, 807, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 336, + "ty": 4, + "nm": "Shape Layer 918", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1449, 807, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 337, + "ty": 4, + "nm": "Shape Layer 919", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1435, 807, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 338, + "ty": 4, + "nm": "Shape Layer 920", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1421, 807, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 339, + "ty": 4, + "nm": "Shape Layer 921", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1407, 807, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 340, + "ty": 4, + "nm": "Shape Layer 922", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1393, 807, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 341, + "ty": 4, + "nm": "Shape Layer 923", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1379, 807, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 342, + "ty": 4, + "nm": "Shape Layer 924", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1365, 807, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 343, + "ty": 4, + "nm": "Shape Layer 925", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1351, 807, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 344, + "ty": 4, + "nm": "Shape Layer 926", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1337, 807, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 345, + "ty": 4, + "nm": "Shape Layer 928", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1309, 807, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 346, + "ty": 4, + "nm": "Shape Layer 927", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1281, 807, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 347, + "ty": 4, + "nm": "Shape Layer 894", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1323, 807, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 348, + "ty": 4, + "nm": "Shape Layer 850", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1904, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 349, + "ty": 4, + "nm": "Shape Layer 852", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1834, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 350, + "ty": 4, + "nm": "Shape Layer 853", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1820, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 351, + "ty": 4, + "nm": "Shape Layer 854", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1806, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 352, + "ty": 4, + "nm": "Shape Layer 855", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1792, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 353, + "ty": 4, + "nm": "Shape Layer 856", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1778, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 354, + "ty": 4, + "nm": "Shape Layer 857", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1764, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 355, + "ty": 4, + "nm": "Shape Layer 858", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1750, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 356, + "ty": 4, + "nm": "Shape Layer 859", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1736, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 357, + "ty": 4, + "nm": "Shape Layer 860", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1722, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 358, + "ty": 4, + "nm": "Shape Layer 861", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1708, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 359, + "ty": 4, + "nm": "Shape Layer 862", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1694, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 360, + "ty": 4, + "nm": "Shape Layer 863", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1680, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 361, + "ty": 4, + "nm": "Shape Layer 864", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1666, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 362, + "ty": 4, + "nm": "Shape Layer 865", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1652, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 363, + "ty": 4, + "nm": "Shape Layer 866", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1638, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 364, + "ty": 4, + "nm": "Shape Layer 867", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1624, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 365, + "ty": 4, + "nm": "Shape Layer 868", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1610, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 366, + "ty": 4, + "nm": "Shape Layer 869", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1596, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 367, + "ty": 4, + "nm": "Shape Layer 870", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1582, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 368, + "ty": 4, + "nm": "Shape Layer 871", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1568, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 369, + "ty": 4, + "nm": "Shape Layer 872", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1554, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 370, + "ty": 4, + "nm": "Shape Layer 873", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1540, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 371, + "ty": 4, + "nm": "Shape Layer 874", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1526, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 372, + "ty": 4, + "nm": "Shape Layer 875", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1512, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 373, + "ty": 4, + "nm": "Shape Layer 876", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1498, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 374, + "ty": 4, + "nm": "Shape Layer 877", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1484, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 375, + "ty": 4, + "nm": "Shape Layer 878", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1470, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 376, + "ty": 4, + "nm": "Shape Layer 879", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1456, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 377, + "ty": 4, + "nm": "Shape Layer 880", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1442, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 378, + "ty": 4, + "nm": "Shape Layer 881", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1428, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 379, + "ty": 4, + "nm": "Shape Layer 882", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1414, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 380, + "ty": 4, + "nm": "Shape Layer 883", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1400, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 381, + "ty": 4, + "nm": "Shape Layer 884", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1386, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 382, + "ty": 4, + "nm": "Shape Layer 885", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1372, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 383, + "ty": 4, + "nm": "Shape Layer 886", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1358, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 384, + "ty": 4, + "nm": "Shape Layer 887", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1344, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 385, + "ty": 4, + "nm": "Shape Layer 888", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1330, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 386, + "ty": 4, + "nm": "Shape Layer 889", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1316, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 387, + "ty": 4, + "nm": "Shape Layer 890", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1302, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 388, + "ty": 4, + "nm": "Shape Layer 891", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1288, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 389, + "ty": 4, + "nm": "Shape Layer 851", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1274, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 390, + "ty": 4, + "nm": "Shape Layer 799", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1869, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 391, + "ty": 4, + "nm": "Shape Layer 800", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1855, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 392, + "ty": 4, + "nm": "Shape Layer 801", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1841, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 393, + "ty": 4, + "nm": "Shape Layer 802", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1827, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 394, + "ty": 4, + "nm": "Shape Layer 803", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1813, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 395, + "ty": 4, + "nm": "Shape Layer 804", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1799, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 396, + "ty": 4, + "nm": "Shape Layer 805", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1785, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 397, + "ty": 4, + "nm": "Shape Layer 806", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1771, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 398, + "ty": 4, + "nm": "Shape Layer 807", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1757, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 399, + "ty": 4, + "nm": "Shape Layer 808", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1743, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 400, + "ty": 4, + "nm": "Shape Layer 809", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1729, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 401, + "ty": 4, + "nm": "Shape Layer 810", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1715, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 402, + "ty": 4, + "nm": "Shape Layer 811", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1701, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 403, + "ty": 4, + "nm": "Shape Layer 812", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1687, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 404, + "ty": 4, + "nm": "Shape Layer 813", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1673, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 405, + "ty": 4, + "nm": "Shape Layer 814", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1658, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 406, + "ty": 4, + "nm": "Shape Layer 815", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1644, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 407, + "ty": 4, + "nm": "Shape Layer 816", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1630, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 408, + "ty": 4, + "nm": "Shape Layer 817", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1616, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 409, + "ty": 4, + "nm": "Shape Layer 818", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1602, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 410, + "ty": 4, + "nm": "Shape Layer 819", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1588, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 411, + "ty": 4, + "nm": "Shape Layer 820", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1574, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 412, + "ty": 4, + "nm": "Shape Layer 821", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1560, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 413, + "ty": 4, + "nm": "Shape Layer 822", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1546, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 414, + "ty": 4, + "nm": "Shape Layer 823", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1532, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 415, + "ty": 4, + "nm": "Shape Layer 824", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1518, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 416, + "ty": 4, + "nm": "Shape Layer 825", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1504, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 417, + "ty": 4, + "nm": "Shape Layer 826", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1490, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 418, + "ty": 4, + "nm": "Shape Layer 827", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1476, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 419, + "ty": 4, + "nm": "Shape Layer 828", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1462, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 420, + "ty": 4, + "nm": "Shape Layer 829", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1448, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 421, + "ty": 4, + "nm": "Shape Layer 830", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1434, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 422, + "ty": 4, + "nm": "Shape Layer 831", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1420, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 423, + "ty": 4, + "nm": "Shape Layer 832", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1406, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 424, + "ty": 4, + "nm": "Shape Layer 833", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1392, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 425, + "ty": 4, + "nm": "Shape Layer 834", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1378, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 426, + "ty": 4, + "nm": "Shape Layer 835", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1364, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 427, + "ty": 4, + "nm": "Shape Layer 836", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1350, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 428, + "ty": 4, + "nm": "Shape Layer 837", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1336, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 429, + "ty": 4, + "nm": "Shape Layer 838", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1322, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 430, + "ty": 4, + "nm": "Shape Layer 839", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1308, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 431, + "ty": 4, + "nm": "Shape Layer 840", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1294, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 432, + "ty": 4, + "nm": "Shape Layer 841", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1280, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 433, + "ty": 4, + "nm": "Shape Layer 842", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1266, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 434, + "ty": 4, + "nm": "Shape Layer 843", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1252, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 435, + "ty": 4, + "nm": "Shape Layer 845", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1224, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 436, + "ty": 4, + "nm": "Shape Layer 848", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1182, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 437, + "ty": 4, + "nm": "Shape Layer 1257", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1168, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 50, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 80, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 110, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 140, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 170, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 200, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 230, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 438, + "ty": 4, + "nm": "Shape Layer 1258", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1161, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 159, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 189, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 219, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 249, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 279, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 309, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 339, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 439, + "ty": 4, + "nm": "Shape Layer 1262", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1140, 807, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 440, + "ty": 4, + "nm": "Shape Layer 1261", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1126, 807, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 205, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 235, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 265, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 295, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 325, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 355, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 385, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 441, + "ty": 4, + "nm": "Shape Layer 1259", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1147, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 51, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 81, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 111, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 141, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 171, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 201, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 231, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 442, + "ty": 4, + "nm": "Shape Layer 1260", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1133, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 443, + "ty": 4, + "nm": "Shape Layer 849", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1119, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 444, + "ty": 4, + "nm": "Shape Layer 798", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1154, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 445, + "ty": 4, + "nm": "Shape Layer 744", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1918, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 446, + "ty": 4, + "nm": "Shape Layer 746", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1890, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 447, + "ty": 4, + "nm": "Shape Layer 747", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1876, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 448, + "ty": 4, + "nm": "Shape Layer 748", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1862, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 449, + "ty": 4, + "nm": "Shape Layer 749", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1848, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 450, + "ty": 4, + "nm": "Shape Layer 750", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1834, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 451, + "ty": 4, + "nm": "Shape Layer 751", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1820, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 452, + "ty": 4, + "nm": "Shape Layer 752", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1806, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 453, + "ty": 4, + "nm": "Shape Layer 753", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1792, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 454, + "ty": 4, + "nm": "Shape Layer 754", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1777, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 455, + "ty": 4, + "nm": "Shape Layer 755", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1763, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 456, + "ty": 4, + "nm": "Shape Layer 756", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1749, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 457, + "ty": 4, + "nm": "Shape Layer 757", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1735, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 458, + "ty": 4, + "nm": "Shape Layer 758", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1721, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 459, + "ty": 4, + "nm": "Shape Layer 759", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1707, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 460, + "ty": 4, + "nm": "Shape Layer 760", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1693, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 461, + "ty": 4, + "nm": "Shape Layer 761", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1679, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 462, + "ty": 4, + "nm": "Shape Layer 762", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1665, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 463, + "ty": 4, + "nm": "Shape Layer 763", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1651, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 464, + "ty": 4, + "nm": "Shape Layer 764", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1637, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 465, + "ty": 4, + "nm": "Shape Layer 765", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1623, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 466, + "ty": 4, + "nm": "Shape Layer 766", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1609, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 467, + "ty": 4, + "nm": "Shape Layer 767", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1595, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 468, + "ty": 4, + "nm": "Shape Layer 768", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1581, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 469, + "ty": 4, + "nm": "Shape Layer 769", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1567, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 470, + "ty": 4, + "nm": "Shape Layer 770", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1553, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 471, + "ty": 4, + "nm": "Shape Layer 771", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1539, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 472, + "ty": 4, + "nm": "Shape Layer 772", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1525, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 473, + "ty": 4, + "nm": "Shape Layer 773", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1511, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 474, + "ty": 4, + "nm": "Shape Layer 774", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1497, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 475, + "ty": 4, + "nm": "Shape Layer 775", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1483, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 476, + "ty": 4, + "nm": "Shape Layer 776", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1469, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 477, + "ty": 4, + "nm": "Shape Layer 777", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1455, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 478, + "ty": 4, + "nm": "Shape Layer 778", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1441, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 479, + "ty": 4, + "nm": "Shape Layer 779", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1427, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 480, + "ty": 4, + "nm": "Shape Layer 780", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1413, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 481, + "ty": 4, + "nm": "Shape Layer 781", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1399, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 482, + "ty": 4, + "nm": "Shape Layer 782", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1385, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 483, + "ty": 4, + "nm": "Shape Layer 783", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1371, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 484, + "ty": 4, + "nm": "Shape Layer 784", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1357, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 485, + "ty": 4, + "nm": "Shape Layer 785", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1343, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 486, + "ty": 4, + "nm": "Shape Layer 786", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1329, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 487, + "ty": 4, + "nm": "Shape Layer 787", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1315, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 488, + "ty": 4, + "nm": "Shape Layer 788", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1301, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 489, + "ty": 4, + "nm": "Shape Layer 789", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1287, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 490, + "ty": 4, + "nm": "Shape Layer 790", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1273, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 491, + "ty": 4, + "nm": "Shape Layer 791", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1259, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 59, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 89, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 119, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 149, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 179, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 209, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 239, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 492, + "ty": 4, + "nm": "Shape Layer 792", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1245, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 159, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 189, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 219, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 249, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 279, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 309, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 339, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 493, + "ty": 4, + "nm": "Shape Layer 793", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1231, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 204, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 234, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 264, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 294, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 324, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 354, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 384, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 494, + "ty": 4, + "nm": "Shape Layer 794", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1217, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 495, + "ty": 4, + "nm": "Shape Layer 795", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1203, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 496, + "ty": 4, + "nm": "Shape Layer 796", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1189, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 497, + "ty": 4, + "nm": "Shape Layer 797", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1175, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 159, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 189, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 219, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 249, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 279, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 309, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 339, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 498, + "ty": 4, + "nm": "Shape Layer 745", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1161, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 61, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 91, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 121, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 151, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 181, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 211, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 241, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 499, + "ty": 4, + "nm": "Shape Layer 692", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1897, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 500, + "ty": 4, + "nm": "Shape Layer 693", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1883, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 501, + "ty": 4, + "nm": "Shape Layer 694", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1869, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 502, + "ty": 4, + "nm": "Shape Layer 695", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1855, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 503, + "ty": 4, + "nm": "Shape Layer 696", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1841, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 504, + "ty": 4, + "nm": "Shape Layer 697", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1827, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 505, + "ty": 4, + "nm": "Shape Layer 698", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1813, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 506, + "ty": 4, + "nm": "Shape Layer 699", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1799, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 507, + "ty": 4, + "nm": "Shape Layer 700", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1785, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 508, + "ty": 4, + "nm": "Shape Layer 701", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1771, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 509, + "ty": 4, + "nm": "Shape Layer 702", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1757, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 510, + "ty": 4, + "nm": "Shape Layer 703", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1743, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 511, + "ty": 4, + "nm": "Shape Layer 704", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1729, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 512, + "ty": 4, + "nm": "Shape Layer 705", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1715, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 513, + "ty": 4, + "nm": "Shape Layer 706", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1701, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 514, + "ty": 4, + "nm": "Shape Layer 707", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1687, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 515, + "ty": 4, + "nm": "Shape Layer 708", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1673, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 516, + "ty": 4, + "nm": "Shape Layer 709", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1659, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 517, + "ty": 4, + "nm": "Shape Layer 710", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1645, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 518, + "ty": 4, + "nm": "Shape Layer 711", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1631, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 519, + "ty": 4, + "nm": "Shape Layer 712", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1617, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 520, + "ty": 4, + "nm": "Shape Layer 713", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1603, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 521, + "ty": 4, + "nm": "Shape Layer 714", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1589, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 522, + "ty": 4, + "nm": "Shape Layer 715", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1575, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 523, + "ty": 4, + "nm": "Shape Layer 716", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1561, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 524, + "ty": 4, + "nm": "Shape Layer 717", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1547, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 525, + "ty": 4, + "nm": "Shape Layer 718", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1533, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 526, + "ty": 4, + "nm": "Shape Layer 719", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1519, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 527, + "ty": 4, + "nm": "Shape Layer 720", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1505, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 528, + "ty": 4, + "nm": "Shape Layer 721", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1491, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 529, + "ty": 4, + "nm": "Shape Layer 722", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1477, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 530, + "ty": 4, + "nm": "Shape Layer 723", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1463, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 531, + "ty": 4, + "nm": "Shape Layer 724", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1449, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 532, + "ty": 4, + "nm": "Shape Layer 725", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1435, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 533, + "ty": 4, + "nm": "Shape Layer 726", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1421, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 534, + "ty": 4, + "nm": "Shape Layer 727", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1407, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 535, + "ty": 4, + "nm": "Shape Layer 728", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1393, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 536, + "ty": 4, + "nm": "Shape Layer 729", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1379, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 537, + "ty": 4, + "nm": "Shape Layer 730", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1365, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 538, + "ty": 4, + "nm": "Shape Layer 731", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1351, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 539, + "ty": 4, + "nm": "Shape Layer 732", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1337, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 540, + "ty": 4, + "nm": "Shape Layer 733", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1323, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 541, + "ty": 4, + "nm": "Shape Layer 734", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1309, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 542, + "ty": 4, + "nm": "Shape Layer 735", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1295, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 543, + "ty": 4, + "nm": "Shape Layer 736", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1281, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 544, + "ty": 4, + "nm": "Shape Layer 737", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1267, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 545, + "ty": 4, + "nm": "Shape Layer 738", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1253, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 546, + "ty": 4, + "nm": "Shape Layer 739", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1239, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 95, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 125, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 155, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 185, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 215, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 245, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 275, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 547, + "ty": 4, + "nm": "Shape Layer 740", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1225, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 179, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 209, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 239, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 269, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 299, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 329, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 359, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 548, + "ty": 4, + "nm": "Shape Layer 741", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1211, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 95, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 125, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 155, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 185, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 215, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 245, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 275, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 549, + "ty": 4, + "nm": "Shape Layer 742", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1197, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 28, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 58, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 88, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 118, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 148, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 178, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 208, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 550, + "ty": 4, + "nm": "Shape Layer 743", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1183, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 551, + "ty": 4, + "nm": "Shape Layer 691", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1169, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 552, + "ty": 4, + "nm": "Shape Layer 638", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1904, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 553, + "ty": 4, + "nm": "Shape Layer 639", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1890, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 554, + "ty": 4, + "nm": "Shape Layer 640", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1876, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 555, + "ty": 4, + "nm": "Shape Layer 641", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1862, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 556, + "ty": 4, + "nm": "Shape Layer 642", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1848, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 557, + "ty": 4, + "nm": "Shape Layer 643", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1834, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 558, + "ty": 4, + "nm": "Shape Layer 644", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1820, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 559, + "ty": 4, + "nm": "Shape Layer 645", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1806, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 560, + "ty": 4, + "nm": "Shape Layer 646", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1792, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 561, + "ty": 4, + "nm": "Shape Layer 647", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1778, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 562, + "ty": 4, + "nm": "Shape Layer 648", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1764, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 563, + "ty": 4, + "nm": "Shape Layer 649", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1750, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 564, + "ty": 4, + "nm": "Shape Layer 650", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1736, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 565, + "ty": 4, + "nm": "Shape Layer 651", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1722, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 566, + "ty": 4, + "nm": "Shape Layer 652", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1708, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 567, + "ty": 4, + "nm": "Shape Layer 653", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1694, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 568, + "ty": 4, + "nm": "Shape Layer 654", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1680, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 569, + "ty": 4, + "nm": "Shape Layer 655", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1666, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 570, + "ty": 4, + "nm": "Shape Layer 656", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1652, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 571, + "ty": 4, + "nm": "Shape Layer 657", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1638, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 572, + "ty": 4, + "nm": "Shape Layer 658", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1624, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 573, + "ty": 4, + "nm": "Shape Layer 659", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1610, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 574, + "ty": 4, + "nm": "Shape Layer 660", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1596, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 575, + "ty": 4, + "nm": "Shape Layer 661", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1582, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 576, + "ty": 4, + "nm": "Shape Layer 662", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1568, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 577, + "ty": 4, + "nm": "Shape Layer 663", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1554, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 578, + "ty": 4, + "nm": "Shape Layer 664", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1540, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 579, + "ty": 4, + "nm": "Shape Layer 665", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1526, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 580, + "ty": 4, + "nm": "Shape Layer 666", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1512, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 581, + "ty": 4, + "nm": "Shape Layer 667", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1498, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 582, + "ty": 4, + "nm": "Shape Layer 668", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1484, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 583, + "ty": 4, + "nm": "Shape Layer 669", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1470, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 584, + "ty": 4, + "nm": "Shape Layer 670", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1456, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 585, + "ty": 4, + "nm": "Shape Layer 671", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1442, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 586, + "ty": 4, + "nm": "Shape Layer 672", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1428, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 587, + "ty": 4, + "nm": "Shape Layer 673", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1414, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 588, + "ty": 4, + "nm": "Shape Layer 674", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1400, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 589, + "ty": 4, + "nm": "Shape Layer 675", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1386, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 590, + "ty": 4, + "nm": "Shape Layer 676", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1372, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 591, + "ty": 4, + "nm": "Shape Layer 677", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1358, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 592, + "ty": 4, + "nm": "Shape Layer 678", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1344, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 593, + "ty": 4, + "nm": "Shape Layer 679", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1330, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 594, + "ty": 4, + "nm": "Shape Layer 680", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1316, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 595, + "ty": 4, + "nm": "Shape Layer 681", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1302, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 596, + "ty": 4, + "nm": "Shape Layer 682", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1288, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 597, + "ty": 4, + "nm": "Shape Layer 683", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1274, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 598, + "ty": 4, + "nm": "Shape Layer 684", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1260, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 599, + "ty": 4, + "nm": "Shape Layer 685", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1246, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 600, + "ty": 4, + "nm": "Shape Layer 686", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1232, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 601, + "ty": 4, + "nm": "Shape Layer 687", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1218, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 602, + "ty": 4, + "nm": "Shape Layer 688", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1204, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 603, + "ty": 4, + "nm": "Shape Layer 689", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1190, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 604, + "ty": 4, + "nm": "Shape Layer 690", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1176, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 605, + "ty": 4, + "nm": "Shape Layer 637", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1162, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 606, + "ty": 4, + "nm": "Shape Layer 586", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1883, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 607, + "ty": 4, + "nm": "Shape Layer 587", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1869, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 608, + "ty": 4, + "nm": "Shape Layer 588", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1855, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 609, + "ty": 4, + "nm": "Shape Layer 589", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1841, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 610, + "ty": 4, + "nm": "Shape Layer 590", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1827, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 611, + "ty": 4, + "nm": "Shape Layer 591", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1813, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 612, + "ty": 4, + "nm": "Shape Layer 592", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1799, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 613, + "ty": 4, + "nm": "Shape Layer 593", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1785, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 614, + "ty": 4, + "nm": "Shape Layer 594", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1771, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 615, + "ty": 4, + "nm": "Shape Layer 595", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1757, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 616, + "ty": 4, + "nm": "Shape Layer 596", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1743, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 617, + "ty": 4, + "nm": "Shape Layer 597", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1729, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 618, + "ty": 4, + "nm": "Shape Layer 598", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1715, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 619, + "ty": 4, + "nm": "Shape Layer 599", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1701, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 620, + "ty": 4, + "nm": "Shape Layer 600", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1687, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 621, + "ty": 4, + "nm": "Shape Layer 601", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1673, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 622, + "ty": 4, + "nm": "Shape Layer 602", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1658, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 623, + "ty": 4, + "nm": "Shape Layer 603", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1644, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 624, + "ty": 4, + "nm": "Shape Layer 604", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1630, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 625, + "ty": 4, + "nm": "Shape Layer 605", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1616, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 626, + "ty": 4, + "nm": "Shape Layer 606", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1602, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 627, + "ty": 4, + "nm": "Shape Layer 607", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1588, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 628, + "ty": 4, + "nm": "Shape Layer 608", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1574, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 629, + "ty": 4, + "nm": "Shape Layer 609", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1560, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 630, + "ty": 4, + "nm": "Shape Layer 610", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1546, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 631, + "ty": 4, + "nm": "Shape Layer 611", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1532, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 632, + "ty": 4, + "nm": "Shape Layer 612", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1518, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 633, + "ty": 4, + "nm": "Shape Layer 613", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1504, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 634, + "ty": 4, + "nm": "Shape Layer 614", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1490, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 635, + "ty": 4, + "nm": "Shape Layer 615", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1476, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 636, + "ty": 4, + "nm": "Shape Layer 616", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1461, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 637, + "ty": 4, + "nm": "Shape Layer 617", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1447, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 638, + "ty": 4, + "nm": "Shape Layer 618", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1433, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 639, + "ty": 4, + "nm": "Shape Layer 619", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1419, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 640, + "ty": 4, + "nm": "Shape Layer 620", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1405, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 641, + "ty": 4, + "nm": "Shape Layer 621", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1391, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 642, + "ty": 4, + "nm": "Shape Layer 622", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1377, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 643, + "ty": 4, + "nm": "Shape Layer 623", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1363, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 644, + "ty": 4, + "nm": "Shape Layer 624", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1349, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 645, + "ty": 4, + "nm": "Shape Layer 625", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1335, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 646, + "ty": 4, + "nm": "Shape Layer 626", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1321, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 647, + "ty": 4, + "nm": "Shape Layer 627", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1307, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 648, + "ty": 4, + "nm": "Shape Layer 628", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1293, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 649, + "ty": 4, + "nm": "Shape Layer 629", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1279, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 650, + "ty": 4, + "nm": "Shape Layer 630", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1265, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 155, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 185, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 215, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 245, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 275, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 305, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 335, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 651, + "ty": 4, + "nm": "Shape Layer 631", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1251, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 211, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 241, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 271, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 301, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 331, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 361, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 391, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 652, + "ty": 4, + "nm": "Shape Layer 632", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1237, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 653, + "ty": 4, + "nm": "Shape Layer 633", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1223, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 20, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 50, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 80, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 110, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 140, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 170, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 200, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 654, + "ty": 4, + "nm": "Shape Layer 634", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1209, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 201, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 231, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 261, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 291, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 321, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 351, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 381, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 655, + "ty": 4, + "nm": "Shape Layer 635", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1195, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 656, + "ty": 4, + "nm": "Shape Layer 636", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1181, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 657, + "ty": 4, + "nm": "Shape Layer 585", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1167, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 658, + "ty": 4, + "nm": "Shape Layer 583", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1897, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 659, + "ty": 4, + "nm": "Shape Layer 584", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1911, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 660, + "ty": 4, + "nm": "Shape Layer 582", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1925, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 661, + "ty": 4, + "nm": "Shape Layer 533", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [2016, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 662, + "ty": 4, + "nm": "Shape Layer 534", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [2002, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 663, + "ty": 4, + "nm": "Shape Layer 532", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1988, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 664, + "ty": 4, + "nm": "Shape Layer 536", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1890, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 665, + "ty": 4, + "nm": "Shape Layer 537", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1876, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 666, + "ty": 4, + "nm": "Shape Layer 538", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1862, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 667, + "ty": 4, + "nm": "Shape Layer 539", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1848, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 668, + "ty": 4, + "nm": "Shape Layer 540", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1834, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 669, + "ty": 4, + "nm": "Shape Layer 541", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1820, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 670, + "ty": 4, + "nm": "Shape Layer 542", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1806, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 671, + "ty": 4, + "nm": "Shape Layer 543", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1792, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 672, + "ty": 4, + "nm": "Shape Layer 544", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1778, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 673, + "ty": 4, + "nm": "Shape Layer 545", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1764, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 674, + "ty": 4, + "nm": "Shape Layer 546", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1750, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 675, + "ty": 4, + "nm": "Shape Layer 547", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1736, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 676, + "ty": 4, + "nm": "Shape Layer 548", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1722, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 677, + "ty": 4, + "nm": "Shape Layer 549", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1708, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 678, + "ty": 4, + "nm": "Shape Layer 550", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1694, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 679, + "ty": 4, + "nm": "Shape Layer 551", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1680, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 680, + "ty": 4, + "nm": "Shape Layer 552", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1666, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 681, + "ty": 4, + "nm": "Shape Layer 553", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1652, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 682, + "ty": 4, + "nm": "Shape Layer 554", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1638, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 683, + "ty": 4, + "nm": "Shape Layer 555", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1624, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 684, + "ty": 4, + "nm": "Shape Layer 556", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1610, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 685, + "ty": 4, + "nm": "Shape Layer 557", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1596, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 686, + "ty": 4, + "nm": "Shape Layer 558", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1582, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 687, + "ty": 4, + "nm": "Shape Layer 559", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1568, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 688, + "ty": 4, + "nm": "Shape Layer 560", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1554, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 689, + "ty": 4, + "nm": "Shape Layer 561", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1540, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 690, + "ty": 4, + "nm": "Shape Layer 562", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1526, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 691, + "ty": 4, + "nm": "Shape Layer 563", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1512, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 692, + "ty": 4, + "nm": "Shape Layer 564", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1498, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 693, + "ty": 4, + "nm": "Shape Layer 565", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1484, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 694, + "ty": 4, + "nm": "Shape Layer 566", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1470, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 695, + "ty": 4, + "nm": "Shape Layer 567", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1456, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 696, + "ty": 4, + "nm": "Shape Layer 568", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1442, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 697, + "ty": 4, + "nm": "Shape Layer 569", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1428, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 698, + "ty": 4, + "nm": "Shape Layer 570", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1414, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 699, + "ty": 4, + "nm": "Shape Layer 571", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1400, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 700, + "ty": 4, + "nm": "Shape Layer 572", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1386, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 701, + "ty": 4, + "nm": "Shape Layer 573", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1372, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 702, + "ty": 4, + "nm": "Shape Layer 574", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1358, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 703, + "ty": 4, + "nm": "Shape Layer 575", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1344, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 704, + "ty": 4, + "nm": "Shape Layer 576", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1330, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 705, + "ty": 4, + "nm": "Shape Layer 577", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1316, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 706, + "ty": 4, + "nm": "Shape Layer 578", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1302, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 707, + "ty": 4, + "nm": "Shape Layer 579", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1288, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 708, + "ty": 4, + "nm": "Shape Layer 580", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1274, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 709, + "ty": 4, + "nm": "Shape Layer 581", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1260, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 710, + "ty": 4, + "nm": "Shape Layer 535", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1218, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 711, + "ty": 4, + "nm": "Shape Layer 483", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [2023, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 712, + "ty": 4, + "nm": "Shape Layer 482", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [2009, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 713, + "ty": 4, + "nm": "Shape Layer 485", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1897, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 714, + "ty": 4, + "nm": "Shape Layer 486", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1883, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 715, + "ty": 4, + "nm": "Shape Layer 487", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1869, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 716, + "ty": 4, + "nm": "Shape Layer 488", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1855, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 717, + "ty": 4, + "nm": "Shape Layer 489", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1841, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 718, + "ty": 4, + "nm": "Shape Layer 490", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1827, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 719, + "ty": 4, + "nm": "Shape Layer 491", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1813, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 720, + "ty": 4, + "nm": "Shape Layer 492", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1799, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 721, + "ty": 4, + "nm": "Shape Layer 493", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1785, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 722, + "ty": 4, + "nm": "Shape Layer 494", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1771, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 723, + "ty": 4, + "nm": "Shape Layer 495", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1757, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 724, + "ty": 4, + "nm": "Shape Layer 496", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1743, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 725, + "ty": 4, + "nm": "Shape Layer 497", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1729, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 726, + "ty": 4, + "nm": "Shape Layer 498", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1715, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 727, + "ty": 4, + "nm": "Shape Layer 499", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1701, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 728, + "ty": 4, + "nm": "Shape Layer 500", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1687, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 729, + "ty": 4, + "nm": "Shape Layer 501", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1673, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 730, + "ty": 4, + "nm": "Shape Layer 502", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1659, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 731, + "ty": 4, + "nm": "Shape Layer 503", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1645, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 732, + "ty": 4, + "nm": "Shape Layer 504", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1631, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 733, + "ty": 4, + "nm": "Shape Layer 505", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1617, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 734, + "ty": 4, + "nm": "Shape Layer 506", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1603, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 735, + "ty": 4, + "nm": "Shape Layer 507", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1589, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 736, + "ty": 4, + "nm": "Shape Layer 508", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1575, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 737, + "ty": 4, + "nm": "Shape Layer 509", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1561, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 738, + "ty": 4, + "nm": "Shape Layer 510", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1547, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 739, + "ty": 4, + "nm": "Shape Layer 511", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1533, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 740, + "ty": 4, + "nm": "Shape Layer 512", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1519, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 741, + "ty": 4, + "nm": "Shape Layer 513", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1505, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 742, + "ty": 4, + "nm": "Shape Layer 514", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1491, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 743, + "ty": 4, + "nm": "Shape Layer 515", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1477, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 744, + "ty": 4, + "nm": "Shape Layer 516", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1463, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 745, + "ty": 4, + "nm": "Shape Layer 517", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1449, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 746, + "ty": 4, + "nm": "Shape Layer 518", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1435, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 747, + "ty": 4, + "nm": "Shape Layer 519", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1421, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 748, + "ty": 4, + "nm": "Shape Layer 520", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1407, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 749, + "ty": 4, + "nm": "Shape Layer 521", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1393, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 750, + "ty": 4, + "nm": "Shape Layer 522", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1379, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 751, + "ty": 4, + "nm": "Shape Layer 523", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1365, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 752, + "ty": 4, + "nm": "Shape Layer 524", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1351, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 753, + "ty": 4, + "nm": "Shape Layer 525", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1337, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 754, + "ty": 4, + "nm": "Shape Layer 526", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1323, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 755, + "ty": 4, + "nm": "Shape Layer 527", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1309, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 756, + "ty": 4, + "nm": "Shape Layer 528", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1295, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 757, + "ty": 4, + "nm": "Shape Layer 530", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1267, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 212, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 242, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 272, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 302, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 332, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 362, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 392, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 758, + "ty": 4, + "nm": "Shape Layer 531", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1252, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 135, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 165, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 195, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 225, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 255, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 285, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 315, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 759, + "ty": 4, + "nm": "Shape Layer 484", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1210, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 28, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 58, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 88, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 118, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 148, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 178, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 208, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 760, + "ty": 4, + "nm": "Shape Layer 432", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [2016, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 761, + "ty": 4, + "nm": "Shape Layer 434", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1904, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 762, + "ty": 4, + "nm": "Shape Layer 435", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1890, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 763, + "ty": 4, + "nm": "Shape Layer 436", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1876, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 764, + "ty": 4, + "nm": "Shape Layer 437", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1862, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 765, + "ty": 4, + "nm": "Shape Layer 438", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1848, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 766, + "ty": 4, + "nm": "Shape Layer 439", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1834, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 767, + "ty": 4, + "nm": "Shape Layer 440", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1820, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 768, + "ty": 4, + "nm": "Shape Layer 441", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1806, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 769, + "ty": 4, + "nm": "Shape Layer 442", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1792, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 770, + "ty": 4, + "nm": "Shape Layer 443", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1778, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 771, + "ty": 4, + "nm": "Shape Layer 444", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1764, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 772, + "ty": 4, + "nm": "Shape Layer 445", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1750, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 773, + "ty": 4, + "nm": "Shape Layer 446", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1736, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 774, + "ty": 4, + "nm": "Shape Layer 447", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1722, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 775, + "ty": 4, + "nm": "Shape Layer 448", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1708, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 776, + "ty": 4, + "nm": "Shape Layer 449", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1694, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 777, + "ty": 4, + "nm": "Shape Layer 450", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1680, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 778, + "ty": 4, + "nm": "Shape Layer 451", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1666, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 779, + "ty": 4, + "nm": "Shape Layer 452", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1652, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 780, + "ty": 4, + "nm": "Shape Layer 453", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1638, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 781, + "ty": 4, + "nm": "Shape Layer 454", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1624, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 782, + "ty": 4, + "nm": "Shape Layer 455", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1610, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 783, + "ty": 4, + "nm": "Shape Layer 456", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1596, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 784, + "ty": 4, + "nm": "Shape Layer 457", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1582, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 785, + "ty": 4, + "nm": "Shape Layer 458", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1568, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 786, + "ty": 4, + "nm": "Shape Layer 459", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1554, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 787, + "ty": 4, + "nm": "Shape Layer 460", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1540, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 788, + "ty": 4, + "nm": "Shape Layer 461", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1526, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 789, + "ty": 4, + "nm": "Shape Layer 462", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1512, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 790, + "ty": 4, + "nm": "Shape Layer 463", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1498, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 791, + "ty": 4, + "nm": "Shape Layer 464", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1484, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 792, + "ty": 4, + "nm": "Shape Layer 465", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1470, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 793, + "ty": 4, + "nm": "Shape Layer 466", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1456, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 794, + "ty": 4, + "nm": "Shape Layer 467", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1442, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 795, + "ty": 4, + "nm": "Shape Layer 468", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1428, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 796, + "ty": 4, + "nm": "Shape Layer 469", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1413, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 797, + "ty": 4, + "nm": "Shape Layer 470", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1399, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 798, + "ty": 4, + "nm": "Shape Layer 471", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1385, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 799, + "ty": 4, + "nm": "Shape Layer 472", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1371, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 800, + "ty": 4, + "nm": "Shape Layer 473", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1357, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 801, + "ty": 4, + "nm": "Shape Layer 474", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1343, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 802, + "ty": 4, + "nm": "Shape Layer 475", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1329, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 803, + "ty": 4, + "nm": "Shape Layer 476", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1315, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 804, + "ty": 4, + "nm": "Shape Layer 477", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1301, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 805, + "ty": 4, + "nm": "Shape Layer 478", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1287, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 806, + "ty": 4, + "nm": "Shape Layer 480", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1259, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 807, + "ty": 4, + "nm": "Shape Layer 481", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1245, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 808, + "ty": 4, + "nm": "Shape Layer 433", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1217, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 809, + "ty": 4, + "nm": "Shape Layer 372", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [2065, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 810, + "ty": 4, + "nm": "Shape Layer 373", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [2051, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 811, + "ty": 4, + "nm": "Shape Layer 374", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [2037, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 812, + "ty": 4, + "nm": "Shape Layer 375", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [2023, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 813, + "ty": 4, + "nm": "Shape Layer 376", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [2009, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 814, + "ty": 4, + "nm": "Shape Layer 377", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1981, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 815, + "ty": 4, + "nm": "Shape Layer 378", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1967, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 816, + "ty": 4, + "nm": "Shape Layer 379", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1953, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 817, + "ty": 4, + "nm": "Shape Layer 380", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1939, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 818, + "ty": 4, + "nm": "Shape Layer 381", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1925, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 819, + "ty": 4, + "nm": "Shape Layer 382", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1911, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 820, + "ty": 4, + "nm": "Shape Layer 383", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1897, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 821, + "ty": 4, + "nm": "Shape Layer 384", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1883, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 822, + "ty": 4, + "nm": "Shape Layer 385", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1869, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 823, + "ty": 4, + "nm": "Shape Layer 386", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1855, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 824, + "ty": 4, + "nm": "Shape Layer 387", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1841, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 825, + "ty": 4, + "nm": "Shape Layer 388", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1827, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 826, + "ty": 4, + "nm": "Shape Layer 389", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1813, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 827, + "ty": 4, + "nm": "Shape Layer 390", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1799, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 828, + "ty": 4, + "nm": "Shape Layer 391", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1785, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 829, + "ty": 4, + "nm": "Shape Layer 392", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1771, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 830, + "ty": 4, + "nm": "Shape Layer 393", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1757, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 831, + "ty": 4, + "nm": "Shape Layer 394", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1743, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 832, + "ty": 4, + "nm": "Shape Layer 395", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1729, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 833, + "ty": 4, + "nm": "Shape Layer 396", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1715, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 834, + "ty": 4, + "nm": "Shape Layer 397", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1701, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 835, + "ty": 4, + "nm": "Shape Layer 398", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1687, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 836, + "ty": 4, + "nm": "Shape Layer 399", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1673, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 837, + "ty": 4, + "nm": "Shape Layer 400", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1659, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 838, + "ty": 4, + "nm": "Shape Layer 401", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1645, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 839, + "ty": 4, + "nm": "Shape Layer 402", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1631, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 840, + "ty": 4, + "nm": "Shape Layer 403", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1617, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 841, + "ty": 4, + "nm": "Shape Layer 404", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1603, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 842, + "ty": 4, + "nm": "Shape Layer 405", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1589, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 843, + "ty": 4, + "nm": "Shape Layer 406", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1575, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 844, + "ty": 4, + "nm": "Shape Layer 407", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1561, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 845, + "ty": 4, + "nm": "Shape Layer 408", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1547, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 846, + "ty": 4, + "nm": "Shape Layer 409", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1533, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 847, + "ty": 4, + "nm": "Shape Layer 410", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1519, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 848, + "ty": 4, + "nm": "Shape Layer 411", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1505, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 849, + "ty": 4, + "nm": "Shape Layer 412", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1491, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 850, + "ty": 4, + "nm": "Shape Layer 413", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1477, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 851, + "ty": 4, + "nm": "Shape Layer 414", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1463, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 852, + "ty": 4, + "nm": "Shape Layer 415", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1449, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 853, + "ty": 4, + "nm": "Shape Layer 416", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1435, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 854, + "ty": 4, + "nm": "Shape Layer 417", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1421, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 855, + "ty": 4, + "nm": "Shape Layer 418", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1407, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 856, + "ty": 4, + "nm": "Shape Layer 419", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1393, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 857, + "ty": 4, + "nm": "Shape Layer 420", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1379, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 858, + "ty": 4, + "nm": "Shape Layer 421", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1365, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 859, + "ty": 4, + "nm": "Shape Layer 422", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1351, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 860, + "ty": 4, + "nm": "Shape Layer 423", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1337, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 861, + "ty": 4, + "nm": "Shape Layer 424", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1323, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 862, + "ty": 4, + "nm": "Shape Layer 425", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1309, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 863, + "ty": 4, + "nm": "Shape Layer 426", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1295, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 864, + "ty": 4, + "nm": "Shape Layer 427", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1281, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 865, + "ty": 4, + "nm": "Shape Layer 430", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1239, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 866, + "ty": 4, + "nm": "Shape Layer 431", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1225, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 212, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 242, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 272, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 302, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 332, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 362, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 392, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 867, + "ty": 4, + "nm": "Shape Layer 371", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1211, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 54, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 84, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 114, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 144, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 174, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 204, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 234, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 868, + "ty": 4, + "nm": "Shape Layer 306", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [2100, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 869, + "ty": 4, + "nm": "Shape Layer 307", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [2086, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 870, + "ty": 4, + "nm": "Shape Layer 308", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [2072, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 871, + "ty": 4, + "nm": "Shape Layer 309", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [2058, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 872, + "ty": 4, + "nm": "Shape Layer 310", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [2044, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 873, + "ty": 4, + "nm": "Shape Layer 311", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [2030, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 874, + "ty": 4, + "nm": "Shape Layer 312", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [2016, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 875, + "ty": 4, + "nm": "Shape Layer 313", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [2002, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 876, + "ty": 4, + "nm": "Shape Layer 314", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1988, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 877, + "ty": 4, + "nm": "Shape Layer 315", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1974, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 878, + "ty": 4, + "nm": "Shape Layer 316", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1960, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 879, + "ty": 4, + "nm": "Shape Layer 317", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1946, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 880, + "ty": 4, + "nm": "Shape Layer 318", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1932, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 881, + "ty": 4, + "nm": "Shape Layer 319", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1918, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 882, + "ty": 4, + "nm": "Shape Layer 320", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1904, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 883, + "ty": 4, + "nm": "Shape Layer 321", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1890, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 884, + "ty": 4, + "nm": "Shape Layer 322", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1876, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 885, + "ty": 4, + "nm": "Shape Layer 323", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1862, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 886, + "ty": 4, + "nm": "Shape Layer 324", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1848, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 887, + "ty": 4, + "nm": "Shape Layer 325", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1834, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 888, + "ty": 4, + "nm": "Shape Layer 326", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1820, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 889, + "ty": 4, + "nm": "Shape Layer 327", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1806, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 890, + "ty": 4, + "nm": "Shape Layer 328", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1792, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 891, + "ty": 4, + "nm": "Shape Layer 329", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1778, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 892, + "ty": 4, + "nm": "Shape Layer 330", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1764, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 893, + "ty": 4, + "nm": "Shape Layer 331", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1750, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 894, + "ty": 4, + "nm": "Shape Layer 332", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1736, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 895, + "ty": 4, + "nm": "Shape Layer 333", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1722, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 896, + "ty": 4, + "nm": "Shape Layer 334", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1708, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 897, + "ty": 4, + "nm": "Shape Layer 335", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1694, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 898, + "ty": 4, + "nm": "Shape Layer 336", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1680, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 899, + "ty": 4, + "nm": "Shape Layer 337", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1666, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 900, + "ty": 4, + "nm": "Shape Layer 338", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1652, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 901, + "ty": 4, + "nm": "Shape Layer 339", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1638, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 902, + "ty": 4, + "nm": "Shape Layer 340", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1624, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 903, + "ty": 4, + "nm": "Shape Layer 341", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1610, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 904, + "ty": 4, + "nm": "Shape Layer 342", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1596, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 905, + "ty": 4, + "nm": "Shape Layer 343", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1582, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 906, + "ty": 4, + "nm": "Shape Layer 344", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1568, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 907, + "ty": 4, + "nm": "Shape Layer 345", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1554, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 908, + "ty": 4, + "nm": "Shape Layer 346", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1540, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 909, + "ty": 4, + "nm": "Shape Layer 347", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1526, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 910, + "ty": 4, + "nm": "Shape Layer 348", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1512, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 911, + "ty": 4, + "nm": "Shape Layer 349", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1498, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 912, + "ty": 4, + "nm": "Shape Layer 350", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1484, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 913, + "ty": 4, + "nm": "Shape Layer 351", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1470, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 914, + "ty": 4, + "nm": "Shape Layer 352", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1456, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 915, + "ty": 4, + "nm": "Shape Layer 353", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1442, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 916, + "ty": 4, + "nm": "Shape Layer 354", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1428, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 917, + "ty": 4, + "nm": "Shape Layer 355", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1414, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 918, + "ty": 4, + "nm": "Shape Layer 356", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1400, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 919, + "ty": 4, + "nm": "Shape Layer 357", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1386, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 920, + "ty": 4, + "nm": "Shape Layer 358", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1372, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 921, + "ty": 4, + "nm": "Shape Layer 359", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1358, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 922, + "ty": 4, + "nm": "Shape Layer 360", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1344, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 923, + "ty": 4, + "nm": "Shape Layer 361", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1330, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 924, + "ty": 4, + "nm": "Shape Layer 362", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1316, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 925, + "ty": 4, + "nm": "Shape Layer 363", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1302, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 926, + "ty": 4, + "nm": "Shape Layer 366", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1260, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 927, + "ty": 4, + "nm": "Shape Layer 367", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1246, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 136, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 166, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 196, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 226, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 256, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 286, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 316, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 928, + "ty": 4, + "nm": "Shape Layer 305", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1232, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 212, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 242, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 272, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 302, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 332, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 362, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 392, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 929, + "ty": 4, + "nm": "Shape Layer 244", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [2107, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 930, + "ty": 4, + "nm": "Shape Layer 245", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [2093, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 931, + "ty": 4, + "nm": "Shape Layer 246", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [2079, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 932, + "ty": 4, + "nm": "Shape Layer 247", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [2065, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 933, + "ty": 4, + "nm": "Shape Layer 248", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [2051, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 934, + "ty": 4, + "nm": "Shape Layer 249", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [2037, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 935, + "ty": 4, + "nm": "Shape Layer 250", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [2023, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 936, + "ty": 4, + "nm": "Shape Layer 251", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [2009, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 937, + "ty": 4, + "nm": "Shape Layer 252", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1995, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 938, + "ty": 4, + "nm": "Shape Layer 253", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1981, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 939, + "ty": 4, + "nm": "Shape Layer 254", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1967, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 940, + "ty": 4, + "nm": "Shape Layer 255", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1953, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 941, + "ty": 4, + "nm": "Shape Layer 256", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1939, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 942, + "ty": 4, + "nm": "Shape Layer 257", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1925, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 943, + "ty": 4, + "nm": "Shape Layer 258", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1911, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 944, + "ty": 4, + "nm": "Shape Layer 259", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1897, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 945, + "ty": 4, + "nm": "Shape Layer 260", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1883, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 946, + "ty": 4, + "nm": "Shape Layer 261", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1869, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 947, + "ty": 4, + "nm": "Shape Layer 262", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1855, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 948, + "ty": 4, + "nm": "Shape Layer 263", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1841, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 949, + "ty": 4, + "nm": "Shape Layer 264", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1827, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 950, + "ty": 4, + "nm": "Shape Layer 265", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1813, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 951, + "ty": 4, + "nm": "Shape Layer 266", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1799, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 952, + "ty": 4, + "nm": "Shape Layer 267", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1785, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 953, + "ty": 4, + "nm": "Shape Layer 268", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1771, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 954, + "ty": 4, + "nm": "Shape Layer 269", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1757, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 955, + "ty": 4, + "nm": "Shape Layer 270", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1743, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 956, + "ty": 4, + "nm": "Shape Layer 271", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1729, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 957, + "ty": 4, + "nm": "Shape Layer 272", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1714, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 958, + "ty": 4, + "nm": "Shape Layer 273", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1700, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 959, + "ty": 4, + "nm": "Shape Layer 274", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1686, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 960, + "ty": 4, + "nm": "Shape Layer 275", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1672, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 961, + "ty": 4, + "nm": "Shape Layer 276", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1658, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 962, + "ty": 4, + "nm": "Shape Layer 277", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1644, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 963, + "ty": 4, + "nm": "Shape Layer 278", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1630, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 964, + "ty": 4, + "nm": "Shape Layer 279", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1616, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 965, + "ty": 4, + "nm": "Shape Layer 280", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1602, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 966, + "ty": 4, + "nm": "Shape Layer 281", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1588, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 967, + "ty": 4, + "nm": "Shape Layer 282", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1574, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 968, + "ty": 4, + "nm": "Shape Layer 283", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1560, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 969, + "ty": 4, + "nm": "Shape Layer 284", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1546, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 970, + "ty": 4, + "nm": "Shape Layer 285", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1532, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 971, + "ty": 4, + "nm": "Shape Layer 286", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1518, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 972, + "ty": 4, + "nm": "Shape Layer 287", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1504, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 973, + "ty": 4, + "nm": "Shape Layer 288", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1490, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 974, + "ty": 4, + "nm": "Shape Layer 289", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1476, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 975, + "ty": 4, + "nm": "Shape Layer 290", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1462, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 976, + "ty": 4, + "nm": "Shape Layer 291", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1448, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 977, + "ty": 4, + "nm": "Shape Layer 292", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1434, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 978, + "ty": 4, + "nm": "Shape Layer 293", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1420, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 979, + "ty": 4, + "nm": "Shape Layer 294", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1406, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 980, + "ty": 4, + "nm": "Shape Layer 295", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1392, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 981, + "ty": 4, + "nm": "Shape Layer 299", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1336, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 982, + "ty": 4, + "nm": "Shape Layer 300", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1322, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 983, + "ty": 4, + "nm": "Shape Layer 301", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1308, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 984, + "ty": 4, + "nm": "Shape Layer 303", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1280, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 985, + "ty": 4, + "nm": "Shape Layer 304", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1266, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 986, + "ty": 4, + "nm": "Shape Layer 243", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1252, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 987, + "ty": 4, + "nm": "Shape Layer 191", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1988, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 988, + "ty": 4, + "nm": "Shape Layer 192", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1974, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 989, + "ty": 4, + "nm": "Shape Layer 193", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1960, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 990, + "ty": 4, + "nm": "Shape Layer 194", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1946, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 991, + "ty": 4, + "nm": "Shape Layer 195", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1932, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 992, + "ty": 4, + "nm": "Shape Layer 196", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1918, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 993, + "ty": 4, + "nm": "Shape Layer 197", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1904, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 994, + "ty": 4, + "nm": "Shape Layer 198", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1890, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 995, + "ty": 4, + "nm": "Shape Layer 199", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1876, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 996, + "ty": 4, + "nm": "Shape Layer 200", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1862, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 997, + "ty": 4, + "nm": "Shape Layer 201", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1848, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 998, + "ty": 4, + "nm": "Shape Layer 202", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1834, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 999, + "ty": 4, + "nm": "Shape Layer 203", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1820, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1000, + "ty": 4, + "nm": "Shape Layer 204", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1806, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1001, + "ty": 4, + "nm": "Shape Layer 205", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1792, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1002, + "ty": 4, + "nm": "Shape Layer 206", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1778, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1003, + "ty": 4, + "nm": "Shape Layer 207", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1764, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1004, + "ty": 4, + "nm": "Shape Layer 208", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1749, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1005, + "ty": 4, + "nm": "Shape Layer 209", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1735, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1006, + "ty": 4, + "nm": "Shape Layer 210", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1721, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1007, + "ty": 4, + "nm": "Shape Layer 211", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1707, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1008, + "ty": 4, + "nm": "Shape Layer 212", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1693, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1009, + "ty": 4, + "nm": "Shape Layer 213", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1679, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1010, + "ty": 4, + "nm": "Shape Layer 214", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1665, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1011, + "ty": 4, + "nm": "Shape Layer 215", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1651, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1012, + "ty": 4, + "nm": "Shape Layer 216", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1637, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1013, + "ty": 4, + "nm": "Shape Layer 217", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1623, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1014, + "ty": 4, + "nm": "Shape Layer 218", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1609, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1015, + "ty": 4, + "nm": "Shape Layer 219", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1595, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1016, + "ty": 4, + "nm": "Shape Layer 220", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1581, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1017, + "ty": 4, + "nm": "Shape Layer 221", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1567, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1018, + "ty": 4, + "nm": "Shape Layer 222", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1553, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1019, + "ty": 4, + "nm": "Shape Layer 223", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1539, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1020, + "ty": 4, + "nm": "Shape Layer 224", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1525, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1021, + "ty": 4, + "nm": "Shape Layer 225", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1511, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1022, + "ty": 4, + "nm": "Shape Layer 226", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1497, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1023, + "ty": 4, + "nm": "Shape Layer 227", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1483, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1024, + "ty": 4, + "nm": "Shape Layer 228", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1469, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1025, + "ty": 4, + "nm": "Shape Layer 232", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1413, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1026, + "ty": 4, + "nm": "Shape Layer 233", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1399, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1027, + "ty": 4, + "nm": "Shape Layer 234", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1385, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1028, + "ty": 4, + "nm": "Shape Layer 237", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1343, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1029, + "ty": 4, + "nm": "Shape Layer 238", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1329, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1030, + "ty": 4, + "nm": "Shape Layer 239", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1315, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1031, + "ty": 4, + "nm": "Shape Layer 240", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1301, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1032, + "ty": 4, + "nm": "Shape Layer 241", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1287, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1033, + "ty": 4, + "nm": "Shape Layer 242", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1273, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1034, + "ty": 4, + "nm": "Shape Layer 190", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1259, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1035, + "ty": 4, + "nm": "Shape Layer 183", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [2002, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1036, + "ty": 4, + "nm": "Shape Layer 184", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [2016, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1037, + "ty": 4, + "nm": "Shape Layer 185", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [2030, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1038, + "ty": 4, + "nm": "Shape Layer 186", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [2044, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1039, + "ty": 4, + "nm": "Shape Layer 187", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [2058, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1040, + "ty": 4, + "nm": "Shape Layer 188", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [2072, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1041, + "ty": 4, + "nm": "Shape Layer 189", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [2086, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1042, + "ty": 4, + "nm": "Shape Layer 182", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [2100, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1043, + "ty": 4, + "nm": "Shape Layer 153", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1911, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1044, + "ty": 4, + "nm": "Shape Layer 154", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1897, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1045, + "ty": 4, + "nm": "Shape Layer 155", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1883, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1046, + "ty": 4, + "nm": "Shape Layer 156", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1869, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1047, + "ty": 4, + "nm": "Shape Layer 157", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1855, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1048, + "ty": 4, + "nm": "Shape Layer 158", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1841, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1049, + "ty": 4, + "nm": "Shape Layer 159", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1827, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1050, + "ty": 4, + "nm": "Shape Layer 160", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1813, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1051, + "ty": 4, + "nm": "Shape Layer 161", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1799, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1052, + "ty": 4, + "nm": "Shape Layer 162", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1785, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1053, + "ty": 4, + "nm": "Shape Layer 163", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1771, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1054, + "ty": 4, + "nm": "Shape Layer 164", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1757, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1055, + "ty": 4, + "nm": "Shape Layer 165", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1743, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1056, + "ty": 4, + "nm": "Shape Layer 166", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1729, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1057, + "ty": 4, + "nm": "Shape Layer 167", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1715, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1058, + "ty": 4, + "nm": "Shape Layer 168", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1701, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1059, + "ty": 4, + "nm": "Shape Layer 169", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1687, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1060, + "ty": 4, + "nm": "Shape Layer 170", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1673, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1061, + "ty": 4, + "nm": "Shape Layer 171", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1659, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1062, + "ty": 4, + "nm": "Shape Layer 172", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1645, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1063, + "ty": 4, + "nm": "Shape Layer 173", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1631, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1064, + "ty": 4, + "nm": "Shape Layer 174", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1617, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1065, + "ty": 4, + "nm": "Shape Layer 176", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1589, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1066, + "ty": 4, + "nm": "Shape Layer 177", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1575, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1067, + "ty": 4, + "nm": "Shape Layer 179", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1547, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1068, + "ty": 4, + "nm": "Shape Layer 180", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1533, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1069, + "ty": 4, + "nm": "Shape Layer 181", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1519, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1070, + "ty": 4, + "nm": "Shape Layer 147", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1925, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1071, + "ty": 4, + "nm": "Shape Layer 148", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1939, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1072, + "ty": 4, + "nm": "Shape Layer 149", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1953, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1073, + "ty": 4, + "nm": "Shape Layer 150", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1967, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1074, + "ty": 4, + "nm": "Shape Layer 151", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1981, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1075, + "ty": 4, + "nm": "Shape Layer 146", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1995, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1076, + "ty": 4, + "nm": "Shape Layer 122", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1918, 597, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1077, + "ty": 4, + "nm": "Shape Layer 123", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1904, 597, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1078, + "ty": 4, + "nm": "Shape Layer 127", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1848, 597, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1079, + "ty": 4, + "nm": "Shape Layer 128", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1834, 597, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1080, + "ty": 4, + "nm": "Shape Layer 129", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1820, 597, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1081, + "ty": 4, + "nm": "Shape Layer 131", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1792, 597, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1082, + "ty": 4, + "nm": "Shape Layer 132", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1778, 597, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1083, + "ty": 4, + "nm": "Shape Layer 133", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1764, 597, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1084, + "ty": 4, + "nm": "Shape Layer 134", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1750, 597, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1085, + "ty": 4, + "nm": "Shape Layer 135", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1736, 597, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1086, + "ty": 4, + "nm": "Shape Layer 136", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1722, 597, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1087, + "ty": 4, + "nm": "Shape Layer 137", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1708, 597, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1088, + "ty": 4, + "nm": "Shape Layer 138", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1694, 597, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1089, + "ty": 4, + "nm": "Shape Layer 139", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1680, 597, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1090, + "ty": 4, + "nm": "Shape Layer 140", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1666, 597, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1091, + "ty": 4, + "nm": "Shape Layer 141", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1652, 597, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1092, + "ty": 4, + "nm": "Shape Layer 142", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1638, 597, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1093, + "ty": 4, + "nm": "Shape Layer 143", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1624, 597, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1094, + "ty": 4, + "nm": "Shape Layer 144", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1610, 597, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1095, + "ty": 4, + "nm": "Shape Layer 121", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1596, 597, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1096, + "ty": 4, + "nm": "Shape Layer 145", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1463, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1097, + "ty": 4, + "nm": "Shape Layer 120", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1456, 597, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1098, + "ty": 4, + "nm": "Shape Layer 119", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1442, 597, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1099, + "ty": 4, + "nm": "Shape Layer 76", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1463, 583, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1100, + "ty": 4, + "nm": "Shape Layer 96", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1659, 583, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1101, + "ty": 4, + "nm": "Shape Layer 97", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1673, 583, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1102, + "ty": 4, + "nm": "Shape Layer 98", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1687, 583, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1103, + "ty": 4, + "nm": "Shape Layer 99", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1701, 583, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1104, + "ty": 4, + "nm": "Shape Layer 100", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1715, 583, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1105, + "ty": 4, + "nm": "Shape Layer 101", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1729, 583, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1106, + "ty": 4, + "nm": "Shape Layer 102", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1743, 583, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1107, + "ty": 4, + "nm": "Shape Layer 95", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1757, 583, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1108, + "ty": 4, + "nm": "Shape Layer 116", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1883, 583, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1109, + "ty": 4, + "nm": "Shape Layer 117", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1897, 583, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1110, + "ty": 4, + "nm": "Shape Layer 118", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1911, 583, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1111, + "ty": 4, + "nm": "Shape Layer 115", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1925, 583, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1112, + "ty": 4, + "nm": "Shape Layer 369", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1484, 569, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1113, + "ty": 4, + "nm": "Shape Layer 370", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1498, 569, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1114, + "ty": 4, + "nm": "Shape Layer 368", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1512, 569, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1115, + "ty": 4, + "nm": "Shape Layer 73", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1470, 569, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1116, + "ty": 4, + "nm": "Shape Layer 87", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1652, 569, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1117, + "ty": 4, + "nm": "Shape Layer 88", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1666, 569, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1118, + "ty": 4, + "nm": "Shape Layer 89", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1680, 569, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1119, + "ty": 4, + "nm": "Shape Layer 90", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1694, 569, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1120, + "ty": 4, + "nm": "Shape Layer 91", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1708, 569, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1121, + "ty": 4, + "nm": "Shape Layer 92", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1722, 569, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1122, + "ty": 4, + "nm": "Shape Layer 93", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1736, 569, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1123, + "ty": 4, + "nm": "Shape Layer 103", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1750, 569, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1124, + "ty": 4, + "nm": "Shape Layer 113", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1890, 569, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1125, + "ty": 4, + "nm": "Shape Layer 114", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1904, 569, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 1126, + "ty": 4, + "nm": "Shape Layer 94", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1918, 569, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + } + ] + }, + { + "id": "comp_3", + "layers": [ + { + "ddd": 0, + "ind": 1, + "ty": 4, + "nm": "Shape Layer 1294", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1255, 1268, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 2, + "ty": 4, + "nm": "Shape Layer 1295", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1269, 1268, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 3, + "ty": 4, + "nm": "Shape Layer 1296", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1283, 1268, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 4, + "ty": 4, + "nm": "Shape Layer 1293", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1297, 1268, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 5, + "ty": 4, + "nm": "Shape Layer 1289", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1248, 1255, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 6, + "ty": 4, + "nm": "Shape Layer 1290", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1262, 1255, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 7, + "ty": 4, + "nm": "Shape Layer 1291", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1276, 1255, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 8, + "ty": 4, + "nm": "Shape Layer 1292", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1290, 1255, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 9, + "ty": 4, + "nm": "Shape Layer 1288", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1304, 1255, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 10, + "ty": 4, + "nm": "Shape Layer 1282", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1241, 1241, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 11, + "ty": 4, + "nm": "Shape Layer 1283", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1255, 1241, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 12, + "ty": 4, + "nm": "Shape Layer 1284", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1269, 1241, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 13, + "ty": 4, + "nm": "Shape Layer 1285", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1283, 1241, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 14, + "ty": 4, + "nm": "Shape Layer 1286", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1297, 1241, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 15, + "ty": 4, + "nm": "Shape Layer 1287", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1311, 1241, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 16, + "ty": 4, + "nm": "Shape Layer 1281", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1325, 1241, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 17, + "ty": 4, + "nm": "Shape Layer 1275", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1234, 1227, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 18, + "ty": 4, + "nm": "Shape Layer 1276", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1248, 1227, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 19, + "ty": 4, + "nm": "Shape Layer 1277", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1262, 1227, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 20, + "ty": 4, + "nm": "Shape Layer 1278", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1276, 1227, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 21, + "ty": 4, + "nm": "Shape Layer 1279", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1289, 1227, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 22, + "ty": 4, + "nm": "Shape Layer 1280", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1303, 1227, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 23, + "ty": 4, + "nm": "Shape Layer 1274", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1317, 1227, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 24, + "ty": 4, + "nm": "Shape Layer 1268", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1241, 1213, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 25, + "ty": 4, + "nm": "Shape Layer 1269", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1255, 1213, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 26, + "ty": 4, + "nm": "Shape Layer 1270", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1269, 1213, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 27, + "ty": 4, + "nm": "Shape Layer 1271", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1283, 1213, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 28, + "ty": 4, + "nm": "Shape Layer 1272", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1297, 1213, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 29, + "ty": 4, + "nm": "Shape Layer 1273", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1311, 1213, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 38, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 68, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 98, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 128, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 158, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 188, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 218, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 30, + "ty": 4, + "nm": "Shape Layer 1267", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1325, 1213, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 204, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 234, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 264, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 294, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 324, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 354, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 384, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 31, + "ty": 4, + "nm": "Shape Layer 1303", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1408, 1213, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 82, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 112, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 142, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 172, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 202, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 232, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 262, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 32, + "ty": 4, + "nm": "Shape Layer 1258", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1248, 1199, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 33, + "ty": 4, + "nm": "Shape Layer 1259", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1262, 1199, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 34, + "ty": 4, + "nm": "Shape Layer 1260", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1276, 1199, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 35, + "ty": 4, + "nm": "Shape Layer 1261", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1290, 1199, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 36, + "ty": 4, + "nm": "Shape Layer 1262", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1304, 1199, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 18, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 48, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 78, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 108, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 138, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 168, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 198, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 37, + "ty": 4, + "nm": "Shape Layer 1263", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1318, 1199, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 196, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 226, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 256, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 286, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 316, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 346, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 376, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 38, + "ty": 4, + "nm": "Shape Layer 1264", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1332, 1199, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 39, + "ty": 4, + "nm": "Shape Layer 1257", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1346, 1199, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 40, + "ty": 4, + "nm": "Shape Layer 1302", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1416, 1199, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 41, + "ty": 4, + "nm": "Shape Layer 1265", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1402, 1199, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 29, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 60, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 90, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 120, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 150, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 180, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 210, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 42, + "ty": 4, + "nm": "Shape Layer 1248", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1241, 1185, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 70, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 100, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 130, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 160, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 190, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 220, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 250, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 43, + "ty": 4, + "nm": "Shape Layer 1249", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1255, 1185, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 44, + "ty": 4, + "nm": "Shape Layer 1250", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1269, 1185, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 45, + "ty": 4, + "nm": "Shape Layer 1251", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1283, 1185, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 46, + "ty": 4, + "nm": "Shape Layer 1252", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1297, 1185, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 211, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 241, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 271, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 301, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 331, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 361, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 391, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 47, + "ty": 4, + "nm": "Shape Layer 1253", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1311, 1185, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 36, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 66, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 96, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 126, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 156, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 186, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 216, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 48, + "ty": 4, + "nm": "Shape Layer 1254", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1325, 1185, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 208, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 238, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 268, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 298, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 328, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 358, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 388, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 49, + "ty": 4, + "nm": "Shape Layer 1247", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1339, 1185, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 50, + "ty": 4, + "nm": "Shape Layer 1256", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1409, 1185, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 51, + "ty": 4, + "nm": "Shape Layer 1255", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1423, 1185, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 52, + "ty": 4, + "nm": "Shape Layer 1233", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1234, 1171, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 53, + "ty": 4, + "nm": "Shape Layer 1234", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1248, 1171, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 54, + "ty": 4, + "nm": "Shape Layer 1235", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1262, 1171, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 55, + "ty": 4, + "nm": "Shape Layer 1236", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1276, 1171, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 56, + "ty": 4, + "nm": "Shape Layer 1237", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1290, 1171, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 57, + "ty": 4, + "nm": "Shape Layer 1238", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1304, 1171, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 58, + "ty": 4, + "nm": "Shape Layer 1239", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1318, 1171, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 59, + "ty": 4, + "nm": "Shape Layer 1240", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1332, 1171, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 60, + "ty": 4, + "nm": "Shape Layer 1241", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1346, 1171, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 61, + "ty": 4, + "nm": "Shape Layer 1242", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1360, 1171, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 62, + "ty": 4, + "nm": "Shape Layer 1246", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1416, 1171, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 63, + "ty": 4, + "nm": "Shape Layer 1223", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1241, 1157, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 64, + "ty": 4, + "nm": "Shape Layer 1224", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1255, 1157, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 65, + "ty": 4, + "nm": "Shape Layer 1225", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1269, 1157, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 66, + "ty": 4, + "nm": "Shape Layer 1226", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1283, 1157, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 67, + "ty": 4, + "nm": "Shape Layer 1227", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1297, 1157, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 68, + "ty": 4, + "nm": "Shape Layer 1228", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1311, 1157, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 69, + "ty": 4, + "nm": "Shape Layer 1229", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1325, 1157, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 70, + "ty": 4, + "nm": "Shape Layer 1230", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1339, 1157, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 71, + "ty": 4, + "nm": "Shape Layer 1231", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1353, 1157, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 72, + "ty": 4, + "nm": "Shape Layer 1298", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1367, 1157, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 73, + "ty": 4, + "nm": "Shape Layer 1301", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1409, 1157, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 74, + "ty": 4, + "nm": "Shape Layer 1222", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1423, 1157, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 22, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 52, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 82, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 112, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 142, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 172, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 202, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 75, + "ty": 4, + "nm": "Shape Layer 1212", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1248, 1143, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 192, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 222, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 252, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 282, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 312, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 342, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 372, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 76, + "ty": 4, + "nm": "Shape Layer 1213", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1262, 1143, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 81, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 111, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 141, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 171, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 201, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 231, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 261, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 77, + "ty": 4, + "nm": "Shape Layer 1214", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1276, 1143, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 208, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 238, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 268, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 298, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 328, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 358, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 388, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": -1.878, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 78, + "ty": 4, + "nm": "Shape Layer 1215", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1290, 1143, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 45, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 75, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 105, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 135, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 165, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 195, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 225, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 79, + "ty": 4, + "nm": "Shape Layer 1216", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1304, 1143, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 80, + "ty": 4, + "nm": "Shape Layer 1217", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1304, 1143, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 81, + "ty": 4, + "nm": "Shape Layer 1218", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1318, 1143, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 82, + "ty": 4, + "nm": "Shape Layer 1219", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1332, 1143, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 83, + "ty": 4, + "nm": "Shape Layer 1220", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1346, 1143, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 84, + "ty": 4, + "nm": "Shape Layer 1221", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1360, 1143, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 85, + "ty": 4, + "nm": "Shape Layer 1297", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1374, 1143, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 86, + "ty": 4, + "nm": "Shape Layer 1211", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1416, 1143, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 87, + "ty": 4, + "nm": "Shape Layer 1203", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1255, 1129, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 198, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 228, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 258, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 288, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 318, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 348, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 378, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 88, + "ty": 4, + "nm": "Shape Layer 1204", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1269, 1129, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 51, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 81, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 111, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 141, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 171, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 201, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 231, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 89, + "ty": 4, + "nm": "Shape Layer 1205", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1283, 1129, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 166, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 196, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 226, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 256, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 286, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 316, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 346, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 90, + "ty": 4, + "nm": "Shape Layer 1206", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1297, 1129, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 37, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 67, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 97, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 127, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 157, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 187, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 217, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 91, + "ty": 4, + "nm": "Shape Layer 1207", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1311, 1129, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 92, + "ty": 4, + "nm": "Shape Layer 1208", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1325, 1129, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 93, + "ty": 4, + "nm": "Shape Layer 1209", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1339, 1129, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 94, + "ty": 4, + "nm": "Shape Layer 1210", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1353, 1129, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 95, + "ty": 4, + "nm": "Shape Layer 1202", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1367, 1129, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 96, + "ty": 4, + "nm": "Shape Layer 1193", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1234, 1115, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 97, + "ty": 4, + "nm": "Shape Layer 1194", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1248, 1115, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 98, + "ty": 4, + "nm": "Shape Layer 1195", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1262, 1115, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 99, + "ty": 4, + "nm": "Shape Layer 1196", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1276, 1115, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 100, + "ty": 4, + "nm": "Shape Layer 1197", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1290, 1115, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 101, + "ty": 4, + "nm": "Shape Layer 1198", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1304, 1115, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 102, + "ty": 4, + "nm": "Shape Layer 1199", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1318, 1115, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 103, + "ty": 4, + "nm": "Shape Layer 1200", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1332, 1115, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 104, + "ty": 4, + "nm": "Shape Layer 1201", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1346, 1115, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 105, + "ty": 4, + "nm": "Shape Layer 1192", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1360, 1115, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 106, + "ty": 4, + "nm": "Shape Layer 1183", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1241, 1101, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 107, + "ty": 4, + "nm": "Shape Layer 1184", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1255, 1101, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 108, + "ty": 4, + "nm": "Shape Layer 1185", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1269, 1101, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 109, + "ty": 4, + "nm": "Shape Layer 1186", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1283, 1101, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 110, + "ty": 4, + "nm": "Shape Layer 1187", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1297, 1101, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 111, + "ty": 4, + "nm": "Shape Layer 1188", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1311, 1101, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 112, + "ty": 4, + "nm": "Shape Layer 1189", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1325, 1101, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 113, + "ty": 4, + "nm": "Shape Layer 1190", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1339, 1101, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 114, + "ty": 4, + "nm": "Shape Layer 1191", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1353, 1101, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 115, + "ty": 4, + "nm": "Shape Layer 1182", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1367, 1101, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 116, + "ty": 4, + "nm": "Shape Layer 1173", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1234, 1087, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 117, + "ty": 4, + "nm": "Shape Layer 1174", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1248, 1087, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 118, + "ty": 4, + "nm": "Shape Layer 1175", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1262, 1087, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 119, + "ty": 4, + "nm": "Shape Layer 1176", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1276, 1087, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 120, + "ty": 4, + "nm": "Shape Layer 1177", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1290, 1087, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 121, + "ty": 4, + "nm": "Shape Layer 1178", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1304, 1087, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 122, + "ty": 4, + "nm": "Shape Layer 1179", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1318, 1087, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 123, + "ty": 4, + "nm": "Shape Layer 1180", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1332, 1087, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 124, + "ty": 4, + "nm": "Shape Layer 1181", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1346, 1087, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 125, + "ty": 4, + "nm": "Shape Layer 1172", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1360, 1087, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 126, + "ty": 4, + "nm": "Shape Layer 1160", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1213, 1073, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 127, + "ty": 4, + "nm": "Shape Layer 1161", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1227, 1073, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 128, + "ty": 4, + "nm": "Shape Layer 1162", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1241, 1073, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 129, + "ty": 4, + "nm": "Shape Layer 1163", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1255, 1073, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 130, + "ty": 4, + "nm": "Shape Layer 1164", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1269, 1073, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 131, + "ty": 4, + "nm": "Shape Layer 1165", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1283, 1073, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 132, + "ty": 4, + "nm": "Shape Layer 1166", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1297, 1073, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 133, + "ty": 4, + "nm": "Shape Layer 1169", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1325, 1073, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 134, + "ty": 4, + "nm": "Shape Layer 1170", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1339, 1073, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 135, + "ty": 4, + "nm": "Shape Layer 1171", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1353, 1073, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 136, + "ty": 4, + "nm": "Shape Layer 1168", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1367, 1073, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 137, + "ty": 4, + "nm": "Shape Layer 1167", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1311, 1073, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 138, + "ty": 4, + "nm": "Shape Layer 1147", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1220, 1059, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 139, + "ty": 4, + "nm": "Shape Layer 1148", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1234, 1059, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 140, + "ty": 4, + "nm": "Shape Layer 1149", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1248, 1059, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 141, + "ty": 4, + "nm": "Shape Layer 1150", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1262, 1059, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 142, + "ty": 4, + "nm": "Shape Layer 1151", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1276, 1059, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 178, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 208, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 238, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 268, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 298, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 328, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 358, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 143, + "ty": 4, + "nm": "Shape Layer 1152", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1290, 1059, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 33, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 63, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 93, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 123, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 153, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 183, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 213, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 144, + "ty": 4, + "nm": "Shape Layer 1153", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1304, 1059, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 116, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 146, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 176, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 206, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 236, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 266, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 296, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 145, + "ty": 4, + "nm": "Shape Layer 1154", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1318, 1059, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 198, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 228, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 258, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 288, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 318, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 348, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 378, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 146, + "ty": 4, + "nm": "Shape Layer 1155", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1332, 1059, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 147, + "ty": 4, + "nm": "Shape Layer 1156", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1346, 1059, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 148, + "ty": 4, + "nm": "Shape Layer 1157", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1360, 1059, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 149, + "ty": 4, + "nm": "Shape Layer 1158", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1374, 1059, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 150, + "ty": 4, + "nm": "Shape Layer 1146", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1388, 1059, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 151, + "ty": 4, + "nm": "Shape Layer 1134", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1227, 1045, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 152, + "ty": 4, + "nm": "Shape Layer 1135", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1241, 1045, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 153, + "ty": 4, + "nm": "Shape Layer 1136", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1255, 1045, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 152, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 182, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 212, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 242, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 272, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 302, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 332, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 154, + "ty": 4, + "nm": "Shape Layer 1137", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1269, 1045, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 200, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 230, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 260, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 290, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 320, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 350, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 380, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 155, + "ty": 4, + "nm": "Shape Layer 1138", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1283, 1045, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 90, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 120, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 150, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 180, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 210, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 240, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 270, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 156, + "ty": 4, + "nm": "Shape Layer 1139", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1297, 1045, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 33, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 63, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 93, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 123, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 153, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 183, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 213, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 157, + "ty": 4, + "nm": "Shape Layer 1140", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1311, 1045, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 83, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 113, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 143, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 173, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 203, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 233, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 263, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 158, + "ty": 4, + "nm": "Shape Layer 1141", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1325, 1045, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 159, + "ty": 4, + "nm": "Shape Layer 1142", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1339, 1045, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 160, + "ty": 4, + "nm": "Shape Layer 1143", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1353, 1045, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 161, + "ty": 4, + "nm": "Shape Layer 1144", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1367, 1045, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 162, + "ty": 4, + "nm": "Shape Layer 1145", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1381, 1045, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 163, + "ty": 4, + "nm": "Shape Layer 1133", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1395, 1045, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 164, + "ty": 4, + "nm": "Shape Layer 1120", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1220, 1031, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 165, + "ty": 4, + "nm": "Shape Layer 1121", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1234, 1031, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 166, + "ty": 4, + "nm": "Shape Layer 1122", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1248, 1031, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 167, + "ty": 4, + "nm": "Shape Layer 1123", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1262, 1031, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 168, + "ty": 4, + "nm": "Shape Layer 1124", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1276, 1031, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 169, + "ty": 4, + "nm": "Shape Layer 1125", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1290, 1031, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 170, + "ty": 4, + "nm": "Shape Layer 1126", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1304, 1031, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 171, + "ty": 4, + "nm": "Shape Layer 1127", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1318, 1031, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 172, + "ty": 4, + "nm": "Shape Layer 1128", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1332, 1031, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 173, + "ty": 4, + "nm": "Shape Layer 1129", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1346, 1031, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 174, + "ty": 4, + "nm": "Shape Layer 1130", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1360, 1031, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 175, + "ty": 4, + "nm": "Shape Layer 1131", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1374, 1031, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 176, + "ty": 4, + "nm": "Shape Layer 1132", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1388, 1031, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 177, + "ty": 4, + "nm": "Shape Layer 1118", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1402, 1031, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 178, + "ty": 4, + "nm": "Shape Layer 1097", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1115, 1017, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 179, + "ty": 4, + "nm": "Shape Layer 1098", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1129, 1017, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 180, + "ty": 4, + "nm": "Shape Layer 1099", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1143, 1017, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 181, + "ty": 4, + "nm": "Shape Layer 1103", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1199, 1017, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 182, + "ty": 4, + "nm": "Shape Layer 1104", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1213, 1017, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 183, + "ty": 4, + "nm": "Shape Layer 1105", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1227, 1017, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 184, + "ty": 4, + "nm": "Shape Layer 1106", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1241, 1017, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 185, + "ty": 4, + "nm": "Shape Layer 1107", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1255, 1017, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 186, + "ty": 4, + "nm": "Shape Layer 1108", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1269, 1017, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 187, + "ty": 4, + "nm": "Shape Layer 1109", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1283, 1017, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 188, + "ty": 4, + "nm": "Shape Layer 1110", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1297, 1017, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 189, + "ty": 4, + "nm": "Shape Layer 1111", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1311, 1017, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 190, + "ty": 4, + "nm": "Shape Layer 1112", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1325, 1017, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 191, + "ty": 4, + "nm": "Shape Layer 1113", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1339, 1017, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 192, + "ty": 4, + "nm": "Shape Layer 1114", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1353, 1017, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 193, + "ty": 4, + "nm": "Shape Layer 1115", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1367, 1017, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 194, + "ty": 4, + "nm": "Shape Layer 1116", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1381, 1017, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 195, + "ty": 4, + "nm": "Shape Layer 1117", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1395, 1017, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 196, + "ty": 4, + "nm": "Shape Layer 1096", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1409, 1017, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 197, + "ty": 4, + "nm": "Shape Layer 1076", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1108, 1003, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 198, + "ty": 4, + "nm": "Shape Layer 1077", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1122, 1003, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 199, + "ty": 4, + "nm": "Shape Layer 1078", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1136, 1003, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 200, + "ty": 4, + "nm": "Shape Layer 1079", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1150, 1003, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 201, + "ty": 4, + "nm": "Shape Layer 1080", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1164, 1003, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 202, + "ty": 4, + "nm": "Shape Layer 1081", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1178, 1003, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 203, + "ty": 4, + "nm": "Shape Layer 1082", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1192, 1003, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 204, + "ty": 4, + "nm": "Shape Layer 1083", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1206, 1003, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 205, + "ty": 4, + "nm": "Shape Layer 1084", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1220, 1003, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 206, + "ty": 4, + "nm": "Shape Layer 1085", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1234, 1003, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 207, + "ty": 4, + "nm": "Shape Layer 1086", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1248, 1003, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 208, + "ty": 4, + "nm": "Shape Layer 1087", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1262, 1003, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 209, + "ty": 4, + "nm": "Shape Layer 1088", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1276, 1003, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 210, + "ty": 4, + "nm": "Shape Layer 1089", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1290, 1003, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 211, + "ty": 4, + "nm": "Shape Layer 1090", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1304, 1003, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 212, + "ty": 4, + "nm": "Shape Layer 1091", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1318, 1003, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 213, + "ty": 4, + "nm": "Shape Layer 1092", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1332, 1003, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 214, + "ty": 4, + "nm": "Shape Layer 1093", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1346, 1003, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 215, + "ty": 4, + "nm": "Shape Layer 1094", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1360, 1003, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 216, + "ty": 4, + "nm": "Shape Layer 1095", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1374, 1003, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 217, + "ty": 4, + "nm": "Shape Layer 1075", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1416, 1003, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 218, + "ty": 4, + "nm": "Shape Layer 1056", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1101, 989, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 219, + "ty": 4, + "nm": "Shape Layer 1057", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1115, 989, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 220, + "ty": 4, + "nm": "Shape Layer 1058", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1129, 989, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 221, + "ty": 4, + "nm": "Shape Layer 1059", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1143, 989, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 222, + "ty": 4, + "nm": "Shape Layer 1060", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1157, 989, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 223, + "ty": 4, + "nm": "Shape Layer 1061", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1171, 989, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 224, + "ty": 4, + "nm": "Shape Layer 1062", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1185, 989, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 225, + "ty": 4, + "nm": "Shape Layer 1063", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1199, 989, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 226, + "ty": 4, + "nm": "Shape Layer 1064", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1213, 989, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 227, + "ty": 4, + "nm": "Shape Layer 1065", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1227, 989, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 228, + "ty": 4, + "nm": "Shape Layer 1066", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1241, 989, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 229, + "ty": 4, + "nm": "Shape Layer 1067", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1255, 989, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 230, + "ty": 4, + "nm": "Shape Layer 1068", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1269, 989, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 231, + "ty": 4, + "nm": "Shape Layer 1069", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1283, 989, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 232, + "ty": 4, + "nm": "Shape Layer 1070", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1297, 989, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 233, + "ty": 4, + "nm": "Shape Layer 1071", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1311, 989, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 234, + "ty": 4, + "nm": "Shape Layer 1072", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1325, 989, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 235, + "ty": 4, + "nm": "Shape Layer 1073", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1339, 989, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 236, + "ty": 4, + "nm": "Shape Layer 1074", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1353, 989, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 237, + "ty": 4, + "nm": "Shape Layer 1055", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1367, 989, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 238, + "ty": 4, + "nm": "Shape Layer 1033", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1080, 975, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 239, + "ty": 4, + "nm": "Shape Layer 1034", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1094, 975, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 240, + "ty": 4, + "nm": "Shape Layer 1035", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1108, 975, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 241, + "ty": 4, + "nm": "Shape Layer 1036", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1122, 975, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 242, + "ty": 4, + "nm": "Shape Layer 1037", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1136, 975, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 243, + "ty": 4, + "nm": "Shape Layer 1038", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1150, 975, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 155, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 185, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 215, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 245, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 275, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 305, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 335, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 244, + "ty": 4, + "nm": "Shape Layer 1039", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1164, 975, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 33, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 63, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 93, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 123, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 153, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 183, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 213, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 245, + "ty": 4, + "nm": "Shape Layer 1040", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1178, 975, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 133, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 163, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 193, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 223, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 253, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 283, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 313, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 246, + "ty": 4, + "nm": "Shape Layer 1041", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1192, 975, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 247, + "ty": 4, + "nm": "Shape Layer 1042", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1206, 975, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 248, + "ty": 4, + "nm": "Shape Layer 1043", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1220, 975, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 249, + "ty": 4, + "nm": "Shape Layer 1044", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1234, 975, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 250, + "ty": 4, + "nm": "Shape Layer 1045", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1248, 975, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 33, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 63, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 93, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 123, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 153, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 183, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 213, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 251, + "ty": 4, + "nm": "Shape Layer 1046", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1262, 975, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 142, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 172, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 202, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 232, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 262, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 292, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 322, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 252, + "ty": 4, + "nm": "Shape Layer 1047", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1276, 975, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 200, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 230, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 260, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 290, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 320, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 350, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 380, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 253, + "ty": 4, + "nm": "Shape Layer 1050", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1304, 975, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 254, + "ty": 4, + "nm": "Shape Layer 1051", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1318, 975, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 255, + "ty": 4, + "nm": "Shape Layer 1052", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1332, 975, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 256, + "ty": 4, + "nm": "Shape Layer 1053", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1346, 975, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 257, + "ty": 4, + "nm": "Shape Layer 1054", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1360, 975, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 258, + "ty": 4, + "nm": "Shape Layer 1049", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1374, 975, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 259, + "ty": 4, + "nm": "Shape Layer 1048", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1290, 975, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 260, + "ty": 4, + "nm": "Shape Layer 1012", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1087, 961, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 261, + "ty": 4, + "nm": "Shape Layer 1013", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1101, 961, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 262, + "ty": 4, + "nm": "Shape Layer 1014", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1115, 961, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 263, + "ty": 4, + "nm": "Shape Layer 1015", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1129, 961, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 264, + "ty": 4, + "nm": "Shape Layer 1016", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1143, 961, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 33, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 63, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 93, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 123, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 153, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 183, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 213, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 265, + "ty": 4, + "nm": "Shape Layer 1017", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1157, 961, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 196, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 226, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 256, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 286, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 316, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 346, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 376, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 266, + "ty": 4, + "nm": "Shape Layer 1018", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1171, 961, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 124, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 154, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 184, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 214, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 244, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 274, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 304, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 267, + "ty": 4, + "nm": "Shape Layer 1019", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1185, 961, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 33, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 63, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 93, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 123, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 153, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 183, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 213, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 268, + "ty": 4, + "nm": "Shape Layer 1020", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1199, 961, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 216, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 246, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 276, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 306, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 336, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 366, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 396, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 269, + "ty": 4, + "nm": "Shape Layer 1021", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1213, 961, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 270, + "ty": 4, + "nm": "Shape Layer 1022", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1227, 961, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 271, + "ty": 4, + "nm": "Shape Layer 1023", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1241, 961, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 272, + "ty": 4, + "nm": "Shape Layer 1024", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1255, 961, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 273, + "ty": 4, + "nm": "Shape Layer 1025", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1269, 961, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 274, + "ty": 4, + "nm": "Shape Layer 1026", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1283, 961, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 275, + "ty": 4, + "nm": "Shape Layer 1027", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1297, 961, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 276, + "ty": 4, + "nm": "Shape Layer 1028", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1311, 961, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 277, + "ty": 4, + "nm": "Shape Layer 1029", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1325, 961, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 278, + "ty": 4, + "nm": "Shape Layer 1030", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1339, 961, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 279, + "ty": 4, + "nm": "Shape Layer 1031", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1353, 961, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 280, + "ty": 4, + "nm": "Shape Layer 1011", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1367, 961, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 281, + "ty": 4, + "nm": "Shape Layer 992", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1094, 947, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 282, + "ty": 4, + "nm": "Shape Layer 993", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1108, 947, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 283, + "ty": 4, + "nm": "Shape Layer 994", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1122, 947, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 284, + "ty": 4, + "nm": "Shape Layer 995", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1136, 947, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 285, + "ty": 4, + "nm": "Shape Layer 996", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1150, 947, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 286, + "ty": 4, + "nm": "Shape Layer 997", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1164, 947, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 287, + "ty": 4, + "nm": "Shape Layer 998", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1178, 947, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 288, + "ty": 4, + "nm": "Shape Layer 999", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1192, 947, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 289, + "ty": 4, + "nm": "Shape Layer 1000", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1206, 947, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 290, + "ty": 4, + "nm": "Shape Layer 1001", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1220, 947, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 291, + "ty": 4, + "nm": "Shape Layer 1002", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1234, 947, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 292, + "ty": 4, + "nm": "Shape Layer 1003", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1248, 947, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 293, + "ty": 4, + "nm": "Shape Layer 1004", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1262, 947, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 294, + "ty": 4, + "nm": "Shape Layer 1005", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1276, 947, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 295, + "ty": 4, + "nm": "Shape Layer 1006", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1290, 947, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 296, + "ty": 4, + "nm": "Shape Layer 1007", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1304, 947, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 297, + "ty": 4, + "nm": "Shape Layer 1008", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1318, 947, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 298, + "ty": 4, + "nm": "Shape Layer 1009", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1332, 947, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 299, + "ty": 4, + "nm": "Shape Layer 1010", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1346, 947, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 300, + "ty": 4, + "nm": "Shape Layer 991", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1360, 947, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 301, + "ty": 4, + "nm": "Shape Layer 972", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1087, 933, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 302, + "ty": 4, + "nm": "Shape Layer 973", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1101, 933, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 303, + "ty": 4, + "nm": "Shape Layer 974", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1115, 933, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 304, + "ty": 4, + "nm": "Shape Layer 975", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1129, 933, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 305, + "ty": 4, + "nm": "Shape Layer 976", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1143, 933, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 306, + "ty": 4, + "nm": "Shape Layer 977", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1157, 933, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 307, + "ty": 4, + "nm": "Shape Layer 978", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1171, 933, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 308, + "ty": 4, + "nm": "Shape Layer 979", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1185, 933, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 309, + "ty": 4, + "nm": "Shape Layer 980", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1199, 933, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 310, + "ty": 4, + "nm": "Shape Layer 981", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1213, 933, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 311, + "ty": 4, + "nm": "Shape Layer 982", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1227, 933, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 312, + "ty": 4, + "nm": "Shape Layer 983", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1241, 933, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 313, + "ty": 4, + "nm": "Shape Layer 984", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1255, 933, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 314, + "ty": 4, + "nm": "Shape Layer 985", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1269, 933, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 315, + "ty": 4, + "nm": "Shape Layer 986", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1283, 933, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 316, + "ty": 4, + "nm": "Shape Layer 987", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1297, 933, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 317, + "ty": 4, + "nm": "Shape Layer 988", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1311, 933, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 318, + "ty": 4, + "nm": "Shape Layer 989", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1325, 933, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 319, + "ty": 4, + "nm": "Shape Layer 990", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1339, 933, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 320, + "ty": 4, + "nm": "Shape Layer 971", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1353, 933, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 321, + "ty": 4, + "nm": "Shape Layer 952", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1094, 919, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 322, + "ty": 4, + "nm": "Shape Layer 953", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1108, 919, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 323, + "ty": 4, + "nm": "Shape Layer 954", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1122, 919, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 324, + "ty": 4, + "nm": "Shape Layer 955", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1136, 919, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 325, + "ty": 4, + "nm": "Shape Layer 956", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1150, 919, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 326, + "ty": 4, + "nm": "Shape Layer 957", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1164, 919, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 327, + "ty": 4, + "nm": "Shape Layer 958", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1178, 919, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 328, + "ty": 4, + "nm": "Shape Layer 959", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1192, 919, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 329, + "ty": 4, + "nm": "Shape Layer 960", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1206, 919, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 330, + "ty": 4, + "nm": "Shape Layer 961", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1220, 919, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 331, + "ty": 4, + "nm": "Shape Layer 962", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1234, 919, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 332, + "ty": 4, + "nm": "Shape Layer 963", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1248, 919, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 333, + "ty": 4, + "nm": "Shape Layer 964", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1262, 919, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 334, + "ty": 4, + "nm": "Shape Layer 965", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1276, 919, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 335, + "ty": 4, + "nm": "Shape Layer 966", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1290, 919, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 336, + "ty": 4, + "nm": "Shape Layer 967", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1304, 919, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 337, + "ty": 4, + "nm": "Shape Layer 968", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1318, 919, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 338, + "ty": 4, + "nm": "Shape Layer 969", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1332, 919, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 339, + "ty": 4, + "nm": "Shape Layer 970", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1346, 919, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 340, + "ty": 4, + "nm": "Shape Layer 951", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1360, 919, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 341, + "ty": 4, + "nm": "Shape Layer 933", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1101, 905, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 342, + "ty": 4, + "nm": "Shape Layer 934", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1115, 905, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 343, + "ty": 4, + "nm": "Shape Layer 935", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1129, 905, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 344, + "ty": 4, + "nm": "Shape Layer 936", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1143, 905, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 345, + "ty": 4, + "nm": "Shape Layer 937", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1157, 905, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 346, + "ty": 4, + "nm": "Shape Layer 938", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1171, 905, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 347, + "ty": 4, + "nm": "Shape Layer 939", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1185, 905, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 348, + "ty": 4, + "nm": "Shape Layer 940", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1199, 905, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 349, + "ty": 4, + "nm": "Shape Layer 941", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1213, 905, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 350, + "ty": 4, + "nm": "Shape Layer 942", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1227, 905, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 351, + "ty": 4, + "nm": "Shape Layer 943", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1241, 905, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 352, + "ty": 4, + "nm": "Shape Layer 944", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1255, 905, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 353, + "ty": 4, + "nm": "Shape Layer 945", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1269, 905, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 354, + "ty": 4, + "nm": "Shape Layer 946", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1283, 905, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 355, + "ty": 4, + "nm": "Shape Layer 947", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1297, 905, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 356, + "ty": 4, + "nm": "Shape Layer 948", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1311, 905, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 357, + "ty": 4, + "nm": "Shape Layer 949", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1325, 905, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 358, + "ty": 4, + "nm": "Shape Layer 950", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1339, 905, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 359, + "ty": 4, + "nm": "Shape Layer 932", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1353, 905, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 360, + "ty": 4, + "nm": "Shape Layer 915", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1108, 891, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 361, + "ty": 4, + "nm": "Shape Layer 916", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1122, 891, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 362, + "ty": 4, + "nm": "Shape Layer 917", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1136, 891, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 363, + "ty": 4, + "nm": "Shape Layer 918", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1150, 891, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 364, + "ty": 4, + "nm": "Shape Layer 919", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1164, 891, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 365, + "ty": 4, + "nm": "Shape Layer 920", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1178, 891, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 366, + "ty": 4, + "nm": "Shape Layer 921", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1192, 891, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 367, + "ty": 4, + "nm": "Shape Layer 922", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1206, 891, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 368, + "ty": 4, + "nm": "Shape Layer 923", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1220, 891, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 369, + "ty": 4, + "nm": "Shape Layer 924", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1234, 891, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 370, + "ty": 4, + "nm": "Shape Layer 925", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1248, 891, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 371, + "ty": 4, + "nm": "Shape Layer 926", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1262, 891, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 372, + "ty": 4, + "nm": "Shape Layer 927", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1276, 891, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 373, + "ty": 4, + "nm": "Shape Layer 928", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1290, 891, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 374, + "ty": 4, + "nm": "Shape Layer 929", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1304, 891, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 375, + "ty": 4, + "nm": "Shape Layer 930", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1318, 891, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 376, + "ty": 4, + "nm": "Shape Layer 931", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1332, 891, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 377, + "ty": 4, + "nm": "Shape Layer 914", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1346, 891, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 378, + "ty": 4, + "nm": "Shape Layer 898", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1115, 877, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 379, + "ty": 4, + "nm": "Shape Layer 899", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1129, 877, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 380, + "ty": 4, + "nm": "Shape Layer 900", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1143, 877, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 381, + "ty": 4, + "nm": "Shape Layer 901", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1157, 877, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 382, + "ty": 4, + "nm": "Shape Layer 902", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1171, 877, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 383, + "ty": 4, + "nm": "Shape Layer 903", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1185, 877, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 384, + "ty": 4, + "nm": "Shape Layer 904", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1199, 877, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 385, + "ty": 4, + "nm": "Shape Layer 905", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1213, 877, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 386, + "ty": 4, + "nm": "Shape Layer 906", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1227, 877, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 387, + "ty": 4, + "nm": "Shape Layer 907", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1241, 877, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 388, + "ty": 4, + "nm": "Shape Layer 908", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1255, 877, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 389, + "ty": 4, + "nm": "Shape Layer 909", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1269, 877, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 390, + "ty": 4, + "nm": "Shape Layer 910", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1283, 877, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 391, + "ty": 4, + "nm": "Shape Layer 911", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1297, 877, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 392, + "ty": 4, + "nm": "Shape Layer 912", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1311, 877, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 393, + "ty": 4, + "nm": "Shape Layer 913", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1325, 877, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 394, + "ty": 4, + "nm": "Shape Layer 897", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1339, 877, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 395, + "ty": 4, + "nm": "Shape Layer 885", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1122, 863, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 396, + "ty": 4, + "nm": "Shape Layer 886", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1136, 863, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 397, + "ty": 4, + "nm": "Shape Layer 887", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1150, 863, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 398, + "ty": 4, + "nm": "Shape Layer 888", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1164, 863, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 399, + "ty": 4, + "nm": "Shape Layer 889", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1178, 863, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 400, + "ty": 4, + "nm": "Shape Layer 890", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1192, 863, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 401, + "ty": 4, + "nm": "Shape Layer 891", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1206, 863, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 402, + "ty": 4, + "nm": "Shape Layer 892", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1220, 863, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 403, + "ty": 4, + "nm": "Shape Layer 893", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1234, 863, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 404, + "ty": 4, + "nm": "Shape Layer 896", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1276, 863, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 405, + "ty": 4, + "nm": "Shape Layer 884", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1290, 863, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 406, + "ty": 4, + "nm": "Shape Layer 878", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1214, 849, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 407, + "ty": 4, + "nm": "Shape Layer 879", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1200, 849, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 408, + "ty": 4, + "nm": "Shape Layer 880", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1186, 849, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 409, + "ty": 4, + "nm": "Shape Layer 881", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1172, 849, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 410, + "ty": 4, + "nm": "Shape Layer 882", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1158, 849, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 411, + "ty": 4, + "nm": "Shape Layer 883", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1143, 849, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 412, + "ty": 4, + "nm": "Shape Layer 877", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1129, 849, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 413, + "ty": 4, + "nm": "Shape Layer 871", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1207, 835, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 414, + "ty": 4, + "nm": "Shape Layer 872", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1193, 835, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 415, + "ty": 4, + "nm": "Shape Layer 873", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1179, 835, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 416, + "ty": 4, + "nm": "Shape Layer 874", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1165, 835, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 417, + "ty": 4, + "nm": "Shape Layer 875", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1151, 835, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 418, + "ty": 4, + "nm": "Shape Layer 876", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1137, 835, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 419, + "ty": 4, + "nm": "Shape Layer 870", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1123, 835, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 420, + "ty": 4, + "nm": "Shape Layer 868", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1186, 821, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 421, + "ty": 4, + "nm": "Shape Layer 869", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1200, 821, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 422, + "ty": 4, + "nm": "Shape Layer 512", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1214, 821, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + } + ] + }, + { + "id": "comp_4", + "layers": [ + { + "ddd": 0, + "ind": 1, + "ty": 4, + "nm": "Shape Layer 867", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [798, 1409, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 2, + "ty": 4, + "nm": "Shape Layer 866", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [777, 1395, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 3, + "ty": 4, + "nm": "Shape Layer 865", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [791, 1395, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 4, + "ty": 4, + "nm": "Shape Layer 864", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [770, 1381, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 5, + "ty": 4, + "nm": "Shape Layer 863", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [784, 1381, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 6, + "ty": 4, + "nm": "Shape Layer 862", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [777, 1367, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 7, + "ty": 4, + "nm": "Shape Layer 861", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [791, 1367, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 8, + "ty": 4, + "nm": "Shape Layer 859", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [784, 1353, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 9, + "ty": 4, + "nm": "Shape Layer 860", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [798, 1353, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 10, + "ty": 4, + "nm": "Shape Layer 858", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [812, 1353, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 11, + "ty": 4, + "nm": "Shape Layer 857", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [791, 1339, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 12, + "ty": 4, + "nm": "Shape Layer 856", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [805, 1339, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 13, + "ty": 4, + "nm": "Shape Layer 855", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [777, 1339, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 14, + "ty": 4, + "nm": "Shape Layer 854", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [763, 1339, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 15, + "ty": 4, + "nm": "Shape Layer 852", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [785, 1325, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 16, + "ty": 4, + "nm": "Shape Layer 853", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [799, 1325, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 17, + "ty": 4, + "nm": "Shape Layer 851", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [813, 1325, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 18, + "ty": 4, + "nm": "Shape Layer 848", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [792, 1311, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 19, + "ty": 4, + "nm": "Shape Layer 849", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [806, 1311, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 20, + "ty": 4, + "nm": "Shape Layer 850", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [820, 1311, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 21, + "ty": 4, + "nm": "Shape Layer 847", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [834, 1311, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 22, + "ty": 4, + "nm": "Shape Layer 842", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [785, 1297, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 23, + "ty": 4, + "nm": "Shape Layer 843", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [799, 1297, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 24, + "ty": 4, + "nm": "Shape Layer 844", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [813, 1297, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 25, + "ty": 4, + "nm": "Shape Layer 845", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [827, 1297, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 26, + "ty": 4, + "nm": "Shape Layer 846", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [841, 1297, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 27, + "ty": 4, + "nm": "Shape Layer 841", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [855, 1297, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 28, + "ty": 4, + "nm": "Shape Layer 837", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [792, 1283, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 29, + "ty": 4, + "nm": "Shape Layer 838", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [806, 1283, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 30, + "ty": 4, + "nm": "Shape Layer 839", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [820, 1283, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 31, + "ty": 4, + "nm": "Shape Layer 840", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [834, 1283, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 32, + "ty": 4, + "nm": "Shape Layer 836", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [848, 1283, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 33, + "ty": 4, + "nm": "Shape Layer 831", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [799, 1269, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 34, + "ty": 4, + "nm": "Shape Layer 832", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [813, 1269, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 35, + "ty": 4, + "nm": "Shape Layer 833", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [827, 1269, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 36, + "ty": 4, + "nm": "Shape Layer 834", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [841, 1269, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 37, + "ty": 4, + "nm": "Shape Layer 835", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [855, 1269, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 38, + "ty": 4, + "nm": "Shape Layer 830", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [869, 1269, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 39, + "ty": 4, + "nm": "Shape Layer 824", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [792, 1255, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 40, + "ty": 4, + "nm": "Shape Layer 825", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [806, 1255, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 41, + "ty": 4, + "nm": "Shape Layer 826", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [820, 1255, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 42, + "ty": 4, + "nm": "Shape Layer 827", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [834, 1255, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 43, + "ty": 4, + "nm": "Shape Layer 828", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [848, 1255, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 44, + "ty": 4, + "nm": "Shape Layer 829", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [862, 1255, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 45, + "ty": 4, + "nm": "Shape Layer 823", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [876, 1255, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 46, + "ty": 4, + "nm": "Shape Layer 817", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [799, 1241, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 47, + "ty": 4, + "nm": "Shape Layer 818", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [813, 1241, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 48, + "ty": 4, + "nm": "Shape Layer 819", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [827, 1241, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 49, + "ty": 4, + "nm": "Shape Layer 820", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [841, 1241, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 50, + "ty": 4, + "nm": "Shape Layer 821", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [855, 1241, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 51, + "ty": 4, + "nm": "Shape Layer 822", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [869, 1241, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 52, + "ty": 4, + "nm": "Shape Layer 816", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [883, 1241, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 53, + "ty": 4, + "nm": "Shape Layer 810", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [806, 1227, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 54, + "ty": 4, + "nm": "Shape Layer 811", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [820, 1227, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 55, + "ty": 4, + "nm": "Shape Layer 812", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [834, 1227, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 56, + "ty": 4, + "nm": "Shape Layer 813", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [848, 1227, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 57, + "ty": 4, + "nm": "Shape Layer 814", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [861, 1227, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 167, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 197, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 227, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 257, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 287, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 317, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 347, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 58, + "ty": 4, + "nm": "Shape Layer 815", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [875, 1227, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 90, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 120, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 150, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 180, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 210, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 240, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 270, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 59, + "ty": 4, + "nm": "Shape Layer 809", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [889, 1227, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 237, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 267, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 297, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 327, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 357, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 387, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 417, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 60, + "ty": 4, + "nm": "Shape Layer 802", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [799, 1213, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 61, + "ty": 4, + "nm": "Shape Layer 803", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [813, 1213, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 62, + "ty": 4, + "nm": "Shape Layer 804", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [827, 1213, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 63, + "ty": 4, + "nm": "Shape Layer 805", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [841, 1213, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 64, + "ty": 4, + "nm": "Shape Layer 806", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [855, 1213, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 195, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 225, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 255, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 285, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 315, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 345, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 375, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 65, + "ty": 4, + "nm": "Shape Layer 807", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [869, 1213, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 96, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 126, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 156, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 186, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 216, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 246, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 276, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 66, + "ty": 4, + "nm": "Shape Layer 808", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [883, 1213, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 136, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 166, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 196, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 226, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 256, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 286, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 316, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 67, + "ty": 4, + "nm": "Shape Layer 801", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [897, 1213, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 87, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 117, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 147, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 177, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 207, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 237, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 267, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 68, + "ty": 4, + "nm": "Shape Layer 793", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [792, 1199, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 69, + "ty": 4, + "nm": "Shape Layer 794", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [806, 1199, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 70, + "ty": 4, + "nm": "Shape Layer 795", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [820, 1199, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 71, + "ty": 4, + "nm": "Shape Layer 796", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [834, 1199, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 72, + "ty": 4, + "nm": "Shape Layer 797", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [848, 1199, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 73, + "ty": 4, + "nm": "Shape Layer 798", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [862, 1199, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 74, + "ty": 4, + "nm": "Shape Layer 799", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [876, 1199, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 75, + "ty": 4, + "nm": "Shape Layer 800", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [890, 1199, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 76, + "ty": 4, + "nm": "Shape Layer 792", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [904, 1199, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 77, + "ty": 4, + "nm": "Shape Layer 782", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [799, 1185, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 78, + "ty": 4, + "nm": "Shape Layer 783", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [813, 1185, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 79, + "ty": 4, + "nm": "Shape Layer 784", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [827, 1185, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 80, + "ty": 4, + "nm": "Shape Layer 785", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [841, 1185, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 81, + "ty": 4, + "nm": "Shape Layer 786", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [855, 1185, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 82, + "ty": 4, + "nm": "Shape Layer 787", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [869, 1185, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 83, + "ty": 4, + "nm": "Shape Layer 788", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [883, 1185, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 84, + "ty": 4, + "nm": "Shape Layer 789", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [897, 1185, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 85, + "ty": 4, + "nm": "Shape Layer 790", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [911, 1185, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 86, + "ty": 4, + "nm": "Shape Layer 791", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [925, 1185, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 87, + "ty": 4, + "nm": "Shape Layer 781", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [939, 1185, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 88, + "ty": 4, + "nm": "Shape Layer 771", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [806, 1171, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 89, + "ty": 4, + "nm": "Shape Layer 772", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [820, 1171, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 90, + "ty": 4, + "nm": "Shape Layer 773", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [834, 1171, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 91, + "ty": 4, + "nm": "Shape Layer 774", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [848, 1171, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 92, + "ty": 4, + "nm": "Shape Layer 775", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [862, 1171, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 93, + "ty": 4, + "nm": "Shape Layer 776", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [876, 1171, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 120, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 150, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 180, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 210, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 240, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 270, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 300, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 94, + "ty": 4, + "nm": "Shape Layer 777", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [890, 1171, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 222, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 252, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 282, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 312, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 342, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 372, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 402, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 95, + "ty": 4, + "nm": "Shape Layer 778", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [904, 1171, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 140, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 170, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 200, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 230, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 260, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 290, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 320, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 96, + "ty": 4, + "nm": "Shape Layer 779", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [918, 1171, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 97, + "ty": 4, + "nm": "Shape Layer 780", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [932, 1171, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 98, + "ty": 4, + "nm": "Shape Layer 770", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [946, 1171, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 99, + "ty": 4, + "nm": "Shape Layer 759", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [799, 1157, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 100, + "ty": 4, + "nm": "Shape Layer 760", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [813, 1157, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 101, + "ty": 4, + "nm": "Shape Layer 761", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [827, 1157, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 102, + "ty": 4, + "nm": "Shape Layer 762", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [841, 1157, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 103, + "ty": 4, + "nm": "Shape Layer 763", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [855, 1157, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 186, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 216, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 246, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 276, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 306, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 336, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 366, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 104, + "ty": 4, + "nm": "Shape Layer 764", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [869, 1157, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 64, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 94, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 124, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 154, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 184, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 214, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 244, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 105, + "ty": 4, + "nm": "Shape Layer 765", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [883, 1157, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 231, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 261, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 291, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 321, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 351, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 381, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 411, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 106, + "ty": 4, + "nm": "Shape Layer 766", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [897, 1157, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 232, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 262, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 292, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 322, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 352, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 382, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 412, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 107, + "ty": 4, + "nm": "Shape Layer 767", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [911, 1157, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 168, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 198, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 228, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 258, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 288, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 318, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 348, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 108, + "ty": 4, + "nm": "Shape Layer 768", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [925, 1157, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 109, + "ty": 4, + "nm": "Shape Layer 769", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [939, 1157, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 110, + "ty": 4, + "nm": "Shape Layer 758", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [953, 1157, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 111, + "ty": 4, + "nm": "Shape Layer 745", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [764, 1143, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 112, + "ty": 4, + "nm": "Shape Layer 746", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [778, 1143, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 113, + "ty": 4, + "nm": "Shape Layer 747", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [792, 1143, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 114, + "ty": 4, + "nm": "Shape Layer 748", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [806, 1143, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 115, + "ty": 4, + "nm": "Shape Layer 749", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [820, 1143, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 116, + "ty": 4, + "nm": "Shape Layer 750", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [834, 1143, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 117, + "ty": 4, + "nm": "Shape Layer 751", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [848, 1143, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 118, + "ty": 4, + "nm": "Shape Layer 752", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [862, 1143, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 119, + "ty": 4, + "nm": "Shape Layer 753", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [876, 1143, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 120, + "ty": 4, + "nm": "Shape Layer 754", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [890, 1143, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 121, + "ty": 4, + "nm": "Shape Layer 755", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [904, 1143, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 122, + "ty": 4, + "nm": "Shape Layer 756", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [918, 1143, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 123, + "ty": 4, + "nm": "Shape Layer 757", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [932, 1143, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 124, + "ty": 4, + "nm": "Shape Layer 744", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [946, 1143, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 125, + "ty": 4, + "nm": "Shape Layer 731", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [771, 1129, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 126, + "ty": 4, + "nm": "Shape Layer 732", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [785, 1129, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 127, + "ty": 4, + "nm": "Shape Layer 733", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [799, 1129, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 128, + "ty": 4, + "nm": "Shape Layer 734", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [813, 1129, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 129, + "ty": 4, + "nm": "Shape Layer 735", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [827, 1129, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 130, + "ty": 4, + "nm": "Shape Layer 736", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [841, 1129, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 131, + "ty": 4, + "nm": "Shape Layer 737", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [855, 1129, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 132, + "ty": 4, + "nm": "Shape Layer 738", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [869, 1129, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 133, + "ty": 4, + "nm": "Shape Layer 739", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [883, 1129, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 134, + "ty": 4, + "nm": "Shape Layer 740", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [897, 1129, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 135, + "ty": 4, + "nm": "Shape Layer 741", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [911, 1129, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 136, + "ty": 4, + "nm": "Shape Layer 742", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [925, 1129, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 137, + "ty": 4, + "nm": "Shape Layer 743", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [939, 1129, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 138, + "ty": 4, + "nm": "Shape Layer 730", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [953, 1129, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 139, + "ty": 4, + "nm": "Shape Layer 717", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [778, 1115, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 140, + "ty": 4, + "nm": "Shape Layer 718", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [792, 1115, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 141, + "ty": 4, + "nm": "Shape Layer 719", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [806, 1115, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 142, + "ty": 4, + "nm": "Shape Layer 720", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [820, 1115, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 143, + "ty": 4, + "nm": "Shape Layer 721", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [834, 1115, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 144, + "ty": 4, + "nm": "Shape Layer 722", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [848, 1115, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 81, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 111, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 141, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 171, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 201, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 231, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 261, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 145, + "ty": 4, + "nm": "Shape Layer 723", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [862, 1115, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 165, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 195, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 225, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 255, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 285, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 315, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 345, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 146, + "ty": 4, + "nm": "Shape Layer 724", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [876, 1115, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 227, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 257, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 287, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 317, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 347, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 377, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 407, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 147, + "ty": 4, + "nm": "Shape Layer 725", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [890, 1115, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 148, + "ty": 4, + "nm": "Shape Layer 726", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [904, 1115, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 149, + "ty": 4, + "nm": "Shape Layer 727", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [918, 1115, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 150, + "ty": 4, + "nm": "Shape Layer 728", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [932, 1115, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 151, + "ty": 4, + "nm": "Shape Layer 729", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [946, 1115, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 218, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 248, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 278, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 308, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 338, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 368, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 398, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 152, + "ty": 4, + "nm": "Shape Layer 716", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [960, 1115, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 169, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 199, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 229, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 259, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 289, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 319, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 349, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 153, + "ty": 4, + "nm": "Shape Layer 701", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [757, 1101, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 228, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 258, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 288, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 318, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 348, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 378, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 408, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 154, + "ty": 4, + "nm": "Shape Layer 702", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [771, 1101, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 155, + "ty": 4, + "nm": "Shape Layer 703", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [785, 1101, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 156, + "ty": 4, + "nm": "Shape Layer 704", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [799, 1101, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 157, + "ty": 4, + "nm": "Shape Layer 705", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [813, 1101, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 158, + "ty": 4, + "nm": "Shape Layer 706", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [827, 1101, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 159, + "ty": 4, + "nm": "Shape Layer 707", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [841, 1101, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 160, + "ty": 4, + "nm": "Shape Layer 708", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [855, 1101, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 161, + "ty": 4, + "nm": "Shape Layer 709", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [869, 1101, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 227, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 257, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 287, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 317, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 347, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 377, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 407, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 162, + "ty": 4, + "nm": "Shape Layer 710", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [883, 1101, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 199, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 229, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 259, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 289, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 319, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 349, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 379, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 163, + "ty": 4, + "nm": "Shape Layer 711", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [897, 1101, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 164, + "ty": 4, + "nm": "Shape Layer 712", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [911, 1101, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 165, + "ty": 4, + "nm": "Shape Layer 713", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [925, 1101, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 166, + "ty": 4, + "nm": "Shape Layer 714", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [939, 1101, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 167, + "ty": 4, + "nm": "Shape Layer 715", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [953, 1101, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 75, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 105, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 135, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 165, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 195, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 225, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 255, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 168, + "ty": 4, + "nm": "Shape Layer 700", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [967, 1101, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 39, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 69, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 99, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 129, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 159, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 189, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 219, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 169, + "ty": 4, + "nm": "Shape Layer 686", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [750, 1087, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 195, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 225, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 255, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 285, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 315, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 345, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 375, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 170, + "ty": 4, + "nm": "Shape Layer 687", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [764, 1087, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 85, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 115, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 145, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 175, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 205, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 235, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 265, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 171, + "ty": 4, + "nm": "Shape Layer 688", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [778, 1087, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 172, + "ty": 4, + "nm": "Shape Layer 689", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [792, 1087, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 173, + "ty": 4, + "nm": "Shape Layer 690", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [806, 1087, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 174, + "ty": 4, + "nm": "Shape Layer 691", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [820, 1087, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 175, + "ty": 4, + "nm": "Shape Layer 692", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [834, 1087, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 176, + "ty": 4, + "nm": "Shape Layer 693", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [848, 1087, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 177, + "ty": 4, + "nm": "Shape Layer 694", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [862, 1087, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 178, + "ty": 4, + "nm": "Shape Layer 695", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [876, 1087, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 179, + "ty": 4, + "nm": "Shape Layer 696", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [890, 1087, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 180, + "ty": 4, + "nm": "Shape Layer 697", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [904, 1087, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 181, + "ty": 4, + "nm": "Shape Layer 698", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [918, 1087, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 182, + "ty": 4, + "nm": "Shape Layer 699", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [932, 1087, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 183, + "ty": 4, + "nm": "Shape Layer 685", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [946, 1087, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 184, + "ty": 4, + "nm": "Shape Layer 672", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [743, 1073, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 185, + "ty": 4, + "nm": "Shape Layer 673", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [757, 1073, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 186, + "ty": 4, + "nm": "Shape Layer 674", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [771, 1073, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 187, + "ty": 4, + "nm": "Shape Layer 675", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [785, 1073, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 188, + "ty": 4, + "nm": "Shape Layer 676", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [799, 1073, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 189, + "ty": 4, + "nm": "Shape Layer 677", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [813, 1073, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 190, + "ty": 4, + "nm": "Shape Layer 678", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [827, 1073, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 191, + "ty": 4, + "nm": "Shape Layer 679", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [841, 1073, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 192, + "ty": 4, + "nm": "Shape Layer 680", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [855, 1073, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 193, + "ty": 4, + "nm": "Shape Layer 681", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [869, 1073, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 194, + "ty": 4, + "nm": "Shape Layer 682", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [883, 1073, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 195, + "ty": 4, + "nm": "Shape Layer 683", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [897, 1073, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 196, + "ty": 4, + "nm": "Shape Layer 684", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [911, 1073, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 197, + "ty": 4, + "nm": "Shape Layer 671", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [925, 1073, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 198, + "ty": 4, + "nm": "Shape Layer 660", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [736, 1059, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 199, + "ty": 4, + "nm": "Shape Layer 661", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [750, 1059, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 200, + "ty": 4, + "nm": "Shape Layer 662", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [764, 1059, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 201, + "ty": 4, + "nm": "Shape Layer 663", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [778, 1059, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 202, + "ty": 4, + "nm": "Shape Layer 664", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [791, 1059, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 203, + "ty": 4, + "nm": "Shape Layer 665", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [805, 1059, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 204, + "ty": 4, + "nm": "Shape Layer 666", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [819, 1059, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 205, + "ty": 4, + "nm": "Shape Layer 667", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [833, 1059, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 206, + "ty": 4, + "nm": "Shape Layer 668", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [847, 1059, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 207, + "ty": 4, + "nm": "Shape Layer 669", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [861, 1059, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 208, + "ty": 4, + "nm": "Shape Layer 670", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [875, 1059, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 209, + "ty": 4, + "nm": "Shape Layer 659", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [889, 1059, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 210, + "ty": 4, + "nm": "Shape Layer 650", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [743, 1045, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 211, + "ty": 4, + "nm": "Shape Layer 651", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [757, 1045, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 212, + "ty": 4, + "nm": "Shape Layer 652", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [771, 1045, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 213, + "ty": 4, + "nm": "Shape Layer 653", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [785, 1045, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 214, + "ty": 4, + "nm": "Shape Layer 654", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [799, 1045, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 215, + "ty": 4, + "nm": "Shape Layer 655", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [813, 1045, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 216, + "ty": 4, + "nm": "Shape Layer 656", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [827, 1045, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 210, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 240, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 270, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 300, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 330, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 360, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 390, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 217, + "ty": 4, + "nm": "Shape Layer 657", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [841, 1045, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 156, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 186, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 216, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 246, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 276, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 306, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 336, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 218, + "ty": 4, + "nm": "Shape Layer 658", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [855, 1045, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 234, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 264, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 294, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 324, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 354, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 384, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 414, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 219, + "ty": 4, + "nm": "Shape Layer 649", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [869, 1045, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 85, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 115, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 145, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 175, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 205, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 235, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 265, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 220, + "ty": 4, + "nm": "Shape Layer 641", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [750, 1031, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 235, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 265, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 295, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 325, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 355, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 385, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 415, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 221, + "ty": 4, + "nm": "Shape Layer 642", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [764, 1031, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 222, + "ty": 4, + "nm": "Shape Layer 643", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [778, 1031, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 223, + "ty": 4, + "nm": "Shape Layer 644", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [792, 1031, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 224, + "ty": 4, + "nm": "Shape Layer 645", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [806, 1031, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 225, + "ty": 4, + "nm": "Shape Layer 646", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [820, 1031, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 226, + "ty": 4, + "nm": "Shape Layer 647", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [834, 1031, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 227, + "ty": 4, + "nm": "Shape Layer 648", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [848, 1031, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 228, + "ty": 4, + "nm": "Shape Layer 640", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [862, 1031, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 229, + "ty": 4, + "nm": "Shape Layer 633", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [757, 1017, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 230, + "ty": 4, + "nm": "Shape Layer 634", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [771, 1017, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 179, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 209, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 239, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 269, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 299, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 329, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 359, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 231, + "ty": 4, + "nm": "Shape Layer 635", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [785, 1017, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 80, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 110, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 140, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 170, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 200, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 230, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 260, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 232, + "ty": 4, + "nm": "Shape Layer 636", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [799, 1017, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 115, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 145, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 175, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 205, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 235, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 265, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 295, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 233, + "ty": 4, + "nm": "Shape Layer 637", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [813, 1017, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 234, + "ty": 4, + "nm": "Shape Layer 638", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [827, 1017, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 235, + "ty": 4, + "nm": "Shape Layer 639", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [841, 1017, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 236, + "ty": 4, + "nm": "Shape Layer 632", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [855, 1017, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 237, + "ty": 4, + "nm": "Shape Layer 626", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [764, 1003, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 238, + "ty": 4, + "nm": "Shape Layer 627", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [778, 1003, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 239, + "ty": 4, + "nm": "Shape Layer 628", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [792, 1003, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 240, + "ty": 4, + "nm": "Shape Layer 629", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [806, 1003, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 241, + "ty": 4, + "nm": "Shape Layer 630", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [820, 1003, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 242, + "ty": 4, + "nm": "Shape Layer 631", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [834, 1003, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 243, + "ty": 4, + "nm": "Shape Layer 625", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [848, 1003, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 244, + "ty": 4, + "nm": "Shape Layer 621", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [771, 989, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 245, + "ty": 4, + "nm": "Shape Layer 622", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [785, 989, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 246, + "ty": 4, + "nm": "Shape Layer 623", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [799, 989, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 247, + "ty": 4, + "nm": "Shape Layer 624", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [813, 989, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 248, + "ty": 4, + "nm": "Shape Layer 617", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [827, 989, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + } + ] + }, + { + "id": "comp_5", + "layers": [ + { + "ddd": 0, + "ind": 1, + "ty": 4, + "nm": "Shape Layer 616", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [715, 989, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 2, + "ty": 4, + "nm": "Shape Layer 615", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [722, 975, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 3, + "ty": 4, + "nm": "Shape Layer 614", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [708, 975, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 4, + "ty": 4, + "nm": "Shape Layer 612", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [701, 961, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 5, + "ty": 4, + "nm": "Shape Layer 613", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [715, 961, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 6, + "ty": 4, + "nm": "Shape Layer 611", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [729, 961, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 7, + "ty": 4, + "nm": "Shape Layer 610", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [687, 961, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 8, + "ty": 4, + "nm": "Shape Layer 606", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [694, 947, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 9, + "ty": 4, + "nm": "Shape Layer 607", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [680, 947, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 10, + "ty": 4, + "nm": "Shape Layer 608", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [666, 947, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 11, + "ty": 4, + "nm": "Shape Layer 609", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [652, 947, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 12, + "ty": 4, + "nm": "Shape Layer 605", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [638, 947, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 13, + "ty": 4, + "nm": "Shape Layer 600", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [701, 933, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 14, + "ty": 4, + "nm": "Shape Layer 601", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [687, 933, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 15, + "ty": 4, + "nm": "Shape Layer 602", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [673, 933, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 16, + "ty": 4, + "nm": "Shape Layer 603", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [659, 933, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 17, + "ty": 4, + "nm": "Shape Layer 604", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [645, 933, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 18, + "ty": 4, + "nm": "Shape Layer 599", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [631, 933, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 19, + "ty": 4, + "nm": "Shape Layer 598", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [736, 919, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 20, + "ty": 4, + "nm": "Shape Layer 597", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [722, 919, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 21, + "ty": 4, + "nm": "Shape Layer 591", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [638, 919, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 22, + "ty": 4, + "nm": "Shape Layer 590", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [624, 919, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 23, + "ty": 4, + "nm": "Shape Layer 587", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [645, 905, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 24, + "ty": 4, + "nm": "Shape Layer 588", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [631, 905, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 25, + "ty": 4, + "nm": "Shape Layer 589", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [617, 905, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 26, + "ty": 4, + "nm": "Shape Layer 586", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [603, 905, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 27, + "ty": 4, + "nm": "Shape Layer 583", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [638, 891, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 28, + "ty": 4, + "nm": "Shape Layer 584", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [624, 891, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 29, + "ty": 4, + "nm": "Shape Layer 585", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [610, 891, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 30, + "ty": 4, + "nm": "Shape Layer 582", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [596, 891, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 31, + "ty": 4, + "nm": "Shape Layer 579", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [631, 877, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 32, + "ty": 4, + "nm": "Shape Layer 580", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [617, 877, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 33, + "ty": 4, + "nm": "Shape Layer 581", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [603, 877, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 34, + "ty": 4, + "nm": "Shape Layer 578", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [589, 877, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 35, + "ty": 4, + "nm": "Shape Layer 572", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [680, 863, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 36, + "ty": 4, + "nm": "Shape Layer 573", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [652, 863, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 37, + "ty": 4, + "nm": "Shape Layer 574", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [638, 863, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 38, + "ty": 4, + "nm": "Shape Layer 575", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [624, 863, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 39, + "ty": 4, + "nm": "Shape Layer 576", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [610, 863, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 40, + "ty": 4, + "nm": "Shape Layer 577", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [596, 863, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 41, + "ty": 4, + "nm": "Shape Layer 571", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [582, 863, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 42, + "ty": 4, + "nm": "Shape Layer 570", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [736, 863, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 43, + "ty": 4, + "nm": "Shape Layer 558", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [729, 849, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 44, + "ty": 4, + "nm": "Shape Layer 559", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [715, 849, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 45, + "ty": 4, + "nm": "Shape Layer 560", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [701, 849, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 46, + "ty": 4, + "nm": "Shape Layer 561", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [687, 849, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 47, + "ty": 4, + "nm": "Shape Layer 562", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [673, 849, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 48, + "ty": 4, + "nm": "Shape Layer 563", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [659, 849, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 49, + "ty": 4, + "nm": "Shape Layer 564", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [645, 849, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 50, + "ty": 4, + "nm": "Shape Layer 565", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [631, 849, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 51, + "ty": 4, + "nm": "Shape Layer 566", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [617, 849, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 52, + "ty": 4, + "nm": "Shape Layer 567", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [603, 849, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 53, + "ty": 4, + "nm": "Shape Layer 568", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [589, 849, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 54, + "ty": 4, + "nm": "Shape Layer 569", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [575, 849, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 55, + "ty": 4, + "nm": "Shape Layer 557", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [561, 849, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 56, + "ty": 4, + "nm": "Shape Layer 544", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [736, 835, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 57, + "ty": 4, + "nm": "Shape Layer 545", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [722, 835, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 58, + "ty": 4, + "nm": "Shape Layer 546", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [708, 835, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 59, + "ty": 4, + "nm": "Shape Layer 547", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [694, 835, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 60, + "ty": 4, + "nm": "Shape Layer 548", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [680, 835, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 61, + "ty": 4, + "nm": "Shape Layer 549", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [665, 835, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 62, + "ty": 4, + "nm": "Shape Layer 550", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [651, 835, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 63, + "ty": 4, + "nm": "Shape Layer 551", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [637, 835, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 64, + "ty": 4, + "nm": "Shape Layer 552", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [623, 835, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 65, + "ty": 4, + "nm": "Shape Layer 553", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [609, 835, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 66, + "ty": 4, + "nm": "Shape Layer 554", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [595, 835, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 67, + "ty": 4, + "nm": "Shape Layer 555", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [581, 835, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 68, + "ty": 4, + "nm": "Shape Layer 556", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [567, 835, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 69, + "ty": 4, + "nm": "Shape Layer 543", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [553, 835, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 70, + "ty": 4, + "nm": "Shape Layer 529", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [743, 821, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 71, + "ty": 4, + "nm": "Shape Layer 530", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [729, 821, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 72, + "ty": 4, + "nm": "Shape Layer 531", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [715, 821, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 73, + "ty": 4, + "nm": "Shape Layer 532", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [700, 821, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 74, + "ty": 4, + "nm": "Shape Layer 533", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [686, 821, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 75, + "ty": 4, + "nm": "Shape Layer 534", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [672, 821, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 76, + "ty": 4, + "nm": "Shape Layer 535", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [658, 821, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 77, + "ty": 4, + "nm": "Shape Layer 536", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [644, 821, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 78, + "ty": 4, + "nm": "Shape Layer 537", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [630, 821, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 79, + "ty": 4, + "nm": "Shape Layer 538", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [616, 821, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 80, + "ty": 4, + "nm": "Shape Layer 539", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [602, 821, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 81, + "ty": 4, + "nm": "Shape Layer 540", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [588, 821, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 82, + "ty": 4, + "nm": "Shape Layer 541", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [574, 821, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 83, + "ty": 4, + "nm": "Shape Layer 542", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [560, 821, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 84, + "ty": 4, + "nm": "Shape Layer 528", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [546, 821, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 85, + "ty": 4, + "nm": "Shape Layer 512", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [750, 807, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 86, + "ty": 4, + "nm": "Shape Layer 513", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [736, 807, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 87, + "ty": 4, + "nm": "Shape Layer 514", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [722, 807, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 88, + "ty": 4, + "nm": "Shape Layer 515", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [708, 807, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 89, + "ty": 4, + "nm": "Shape Layer 516", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [694, 807, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 90, + "ty": 4, + "nm": "Shape Layer 517", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [680, 807, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 91, + "ty": 4, + "nm": "Shape Layer 518", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [666, 807, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 92, + "ty": 4, + "nm": "Shape Layer 519", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [652, 807, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 93, + "ty": 4, + "nm": "Shape Layer 520", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [638, 807, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 94, + "ty": 4, + "nm": "Shape Layer 521", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [624, 807, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 95, + "ty": 4, + "nm": "Shape Layer 522", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [610, 807, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 96, + "ty": 4, + "nm": "Shape Layer 523", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [596, 807, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 97, + "ty": 4, + "nm": "Shape Layer 524", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [582, 807, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 98, + "ty": 4, + "nm": "Shape Layer 525", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [568, 807, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 99, + "ty": 4, + "nm": "Shape Layer 526", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [554, 807, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 100, + "ty": 4, + "nm": "Shape Layer 527", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [540, 807, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 101, + "ty": 4, + "nm": "Shape Layer 511", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [526, 807, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 102, + "ty": 4, + "nm": "Shape Layer 491", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [785, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 103, + "ty": 4, + "nm": "Shape Layer 492", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [771, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 104, + "ty": 4, + "nm": "Shape Layer 493", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [757, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 105, + "ty": 4, + "nm": "Shape Layer 494", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [743, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 106, + "ty": 4, + "nm": "Shape Layer 495", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [729, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 107, + "ty": 4, + "nm": "Shape Layer 496", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [715, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 108, + "ty": 4, + "nm": "Shape Layer 497", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [701, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 109, + "ty": 4, + "nm": "Shape Layer 498", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [687, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 110, + "ty": 4, + "nm": "Shape Layer 499", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [673, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 111, + "ty": 4, + "nm": "Shape Layer 500", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [659, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 112, + "ty": 4, + "nm": "Shape Layer 502", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [645, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 113, + "ty": 4, + "nm": "Shape Layer 503", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [631, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 114, + "ty": 4, + "nm": "Shape Layer 504", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [617, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 115, + "ty": 4, + "nm": "Shape Layer 505", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [603, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 116, + "ty": 4, + "nm": "Shape Layer 506", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [589, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 117, + "ty": 4, + "nm": "Shape Layer 507", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [575, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 118, + "ty": 4, + "nm": "Shape Layer 508", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [561, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 119, + "ty": 4, + "nm": "Shape Layer 509", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [547, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 120, + "ty": 4, + "nm": "Shape Layer 510", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [533, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 121, + "ty": 4, + "nm": "Shape Layer 501", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [519, 793, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 122, + "ty": 4, + "nm": "Shape Layer 470", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [792, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 123, + "ty": 4, + "nm": "Shape Layer 471", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [778, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 124, + "ty": 4, + "nm": "Shape Layer 472", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [764, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 125, + "ty": 4, + "nm": "Shape Layer 473", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [750, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 96, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 126, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 156, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 186, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 216, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 246, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 276, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 126, + "ty": 4, + "nm": "Shape Layer 474", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [736, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 136, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 166, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 196, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 226, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 256, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 286, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 316, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 127, + "ty": 4, + "nm": "Shape Layer 475", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [722, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 37, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 67, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 97, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 127, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 157, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 187, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 217, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 128, + "ty": 4, + "nm": "Shape Layer 476", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [708, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 129, + "ty": 4, + "nm": "Shape Layer 477", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [694, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 130, + "ty": 4, + "nm": "Shape Layer 478", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [680, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 131, + "ty": 4, + "nm": "Shape Layer 479", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [666, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 108, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 138, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 168, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 198, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 228, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 258, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 288, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 132, + "ty": 4, + "nm": "Shape Layer 480", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [652, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 89, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 119, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 149, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 179, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 209, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 239, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 269, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 133, + "ty": 4, + "nm": "Shape Layer 481", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [638, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 134, + "ty": 4, + "nm": "Shape Layer 482", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [624, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 135, + "ty": 4, + "nm": "Shape Layer 483", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [610, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 136, + "ty": 4, + "nm": "Shape Layer 484", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [596, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 137, + "ty": 4, + "nm": "Shape Layer 485", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [582, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 138, + "ty": 4, + "nm": "Shape Layer 486", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [568, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 139, + "ty": 4, + "nm": "Shape Layer 487", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [554, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 140, + "ty": 4, + "nm": "Shape Layer 488", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [540, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 141, + "ty": 4, + "nm": "Shape Layer 489", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [526, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 142, + "ty": 4, + "nm": "Shape Layer 469", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [512, 779, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 143, + "ty": 4, + "nm": "Shape Layer 447", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [799, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 144, + "ty": 4, + "nm": "Shape Layer 448", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [785, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 145, + "ty": 4, + "nm": "Shape Layer 449", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [771, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 146, + "ty": 4, + "nm": "Shape Layer 450", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [757, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 147, + "ty": 4, + "nm": "Shape Layer 451", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [743, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 148, + "ty": 4, + "nm": "Shape Layer 452", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [729, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 149, + "ty": 4, + "nm": "Shape Layer 453", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [715, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 150, + "ty": 4, + "nm": "Shape Layer 454", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [701, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 73, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 103, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 133, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 163, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 193, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 223, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 253, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 151, + "ty": 4, + "nm": "Shape Layer 455", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [687, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 204, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 234, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 264, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 294, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 324, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 354, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 384, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 152, + "ty": 4, + "nm": "Shape Layer 456", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [673, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 102, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 132, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 162, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 192, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 222, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 252, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 282, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 153, + "ty": 4, + "nm": "Shape Layer 457", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [659, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 239, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 269, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 299, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 329, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 359, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 389, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 419, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 154, + "ty": 4, + "nm": "Shape Layer 458", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [645, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 155, + "ty": 4, + "nm": "Shape Layer 459", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [631, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 156, + "ty": 4, + "nm": "Shape Layer 460", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [617, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 157, + "ty": 4, + "nm": "Shape Layer 461", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [603, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 158, + "ty": 4, + "nm": "Shape Layer 463", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [589, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 159, + "ty": 4, + "nm": "Shape Layer 464", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [575, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 83, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 113, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 143, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 173, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 203, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 233, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 263, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 160, + "ty": 4, + "nm": "Shape Layer 465", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [561, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 184, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 214, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 244, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 274, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 304, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 334, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 364, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 161, + "ty": 4, + "nm": "Shape Layer 466", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [547, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 56, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 86, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 116, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 146, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 176, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 206, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 236, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 162, + "ty": 4, + "nm": "Shape Layer 467", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [533, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 163, + "ty": 4, + "nm": "Shape Layer 468", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [519, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 164, + "ty": 4, + "nm": "Shape Layer 462", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [505, 765, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 165, + "ty": 4, + "nm": "Shape Layer 425", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [792, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 166, + "ty": 4, + "nm": "Shape Layer 426", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [778, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 167, + "ty": 4, + "nm": "Shape Layer 427", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [764, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 168, + "ty": 4, + "nm": "Shape Layer 428", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [750, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 169, + "ty": 4, + "nm": "Shape Layer 429", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [736, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 170, + "ty": 4, + "nm": "Shape Layer 430", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [722, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 171, + "ty": 4, + "nm": "Shape Layer 431", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [708, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 110, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 140, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 170, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 200, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 230, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 260, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 290, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 172, + "ty": 4, + "nm": "Shape Layer 432", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [694, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 239, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 269, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 299, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 329, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 359, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 389, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 419, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 173, + "ty": 4, + "nm": "Shape Layer 433", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [680, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 73, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 103, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 133, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 163, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 193, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 223, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 253, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 174, + "ty": 4, + "nm": "Shape Layer 434", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [666, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 175, + "ty": 4, + "nm": "Shape Layer 435", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [652, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 176, + "ty": 4, + "nm": "Shape Layer 436", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [638, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 177, + "ty": 4, + "nm": "Shape Layer 437", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [624, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 178, + "ty": 4, + "nm": "Shape Layer 438", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [609, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 179, + "ty": 4, + "nm": "Shape Layer 439", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [595, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 180, + "ty": 4, + "nm": "Shape Layer 440", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [581, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 181, + "ty": 4, + "nm": "Shape Layer 441", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [567, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 182, + "ty": 4, + "nm": "Shape Layer 442", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [553, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 183, + "ty": 4, + "nm": "Shape Layer 443", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [539, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 184, + "ty": 4, + "nm": "Shape Layer 444", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [525, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 64, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 94, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 124, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 154, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 184, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 214, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 244, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 185, + "ty": 4, + "nm": "Shape Layer 445", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [511, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 105, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 135, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 165, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 195, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 225, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 255, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 285, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 186, + "ty": 4, + "nm": "Shape Layer 424", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [497, 751, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 119, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 149, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 179, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 209, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 239, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 269, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 299, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 187, + "ty": 4, + "nm": "Shape Layer 402", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [799, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 188, + "ty": 4, + "nm": "Shape Layer 403", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [785, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 189, + "ty": 4, + "nm": "Shape Layer 404", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [771, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 190, + "ty": 4, + "nm": "Shape Layer 405", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [757, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 191, + "ty": 4, + "nm": "Shape Layer 406", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [743, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 192, + "ty": 4, + "nm": "Shape Layer 409", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [715, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 193, + "ty": 4, + "nm": "Shape Layer 410", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [701, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 194, + "ty": 4, + "nm": "Shape Layer 411", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [687, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 195, + "ty": 4, + "nm": "Shape Layer 412", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [673, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 196, + "ty": 4, + "nm": "Shape Layer 413", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [659, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 41, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 71, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 101, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 131, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 161, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 191, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 221, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 197, + "ty": 4, + "nm": "Shape Layer 414", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [645, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + }, + { + "ty": "gr", + "it": [ + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 97, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 127, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 157, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 187, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 217, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 247, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 277, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [0, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Group 1", + "np": 1, + "cix": 2, + "bm": 0, + "ix": 2, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 198, + "ty": 4, + "nm": "Shape Layer 415", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [631, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 121, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 151, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 181, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 211, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 241, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 271, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 301, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 199, + "ty": 4, + "nm": "Shape Layer 416", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [617, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 200, + "ty": 4, + "nm": "Shape Layer 417", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [603, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 201, + "ty": 4, + "nm": "Shape Layer 418", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [589.25, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 202, + "ty": 4, + "nm": "Shape Layer 419", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [575.25, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 203, + "ty": 4, + "nm": "Shape Layer 420", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [561.25, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 204, + "ty": 4, + "nm": "Shape Layer 421", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [547.25, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 205, + "ty": 4, + "nm": "Shape Layer 422", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [533.25, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 206, + "ty": 4, + "nm": "Shape Layer 423", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [519.25, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 207, + "ty": 4, + "nm": "Shape Layer 408", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [505.25, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 208, + "ty": 4, + "nm": "Shape Layer 407", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [729, 737, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 209, + "ty": 4, + "nm": "Shape Layer 377", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [834, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 210, + "ty": 4, + "nm": "Shape Layer 378", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [820, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 211, + "ty": 4, + "nm": "Shape Layer 379", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [806, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 212, + "ty": 4, + "nm": "Shape Layer 380", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [792, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 213, + "ty": 4, + "nm": "Shape Layer 381", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [778, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 214, + "ty": 4, + "nm": "Shape Layer 382", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [763, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 215, + "ty": 4, + "nm": "Shape Layer 383", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [749, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 216, + "ty": 4, + "nm": "Shape Layer 384", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [735, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 217, + "ty": 4, + "nm": "Shape Layer 385", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [721, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 218, + "ty": 4, + "nm": "Shape Layer 386", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [707, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 219, + "ty": 4, + "nm": "Shape Layer 387", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [693, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 220, + "ty": 4, + "nm": "Shape Layer 388", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [679, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 221, + "ty": 4, + "nm": "Shape Layer 389", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [665, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 222, + "ty": 4, + "nm": "Shape Layer 390", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [651, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 223, + "ty": 4, + "nm": "Shape Layer 391", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [637, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 224, + "ty": 4, + "nm": "Shape Layer 392", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [623, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 225, + "ty": 4, + "nm": "Shape Layer 393", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [609, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 226, + "ty": 4, + "nm": "Shape Layer 394", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [595, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 227, + "ty": 4, + "nm": "Shape Layer 395", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [581, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 228, + "ty": 4, + "nm": "Shape Layer 396", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [567, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 229, + "ty": 4, + "nm": "Shape Layer 397", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [553, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 230, + "ty": 4, + "nm": "Shape Layer 398", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [539, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 231, + "ty": 4, + "nm": "Shape Layer 399", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [525, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 232, + "ty": 4, + "nm": "Shape Layer 400", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [511, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 233, + "ty": 4, + "nm": "Shape Layer 376", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [497, 723, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 234, + "ty": 4, + "nm": "Shape Layer 361", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [700, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 235, + "ty": 4, + "nm": "Shape Layer 360", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [686, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 236, + "ty": 4, + "nm": "Shape Layer 362", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [672, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 178, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 208, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 238, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 268, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 298, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 328, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 358, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 237, + "ty": 4, + "nm": "Shape Layer 363", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [658, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 139, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 169, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 199, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 229, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 259, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 289, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 319, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 238, + "ty": 4, + "nm": "Shape Layer 364", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [644, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 239, + "ty": 4, + "nm": "Shape Layer 365", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [630, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 240, + "ty": 4, + "nm": "Shape Layer 366", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [616, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 241, + "ty": 4, + "nm": "Shape Layer 367", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [602, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 217, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 247, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 277, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 307, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 337, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 367, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 397, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 242, + "ty": 4, + "nm": "Shape Layer 368", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [588, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 80, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 110, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 140, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 170, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 200, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 230, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 260, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 243, + "ty": 4, + "nm": "Shape Layer 369", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [574, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 244, + "ty": 4, + "nm": "Shape Layer 370", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [560, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 245, + "ty": 4, + "nm": "Shape Layer 371", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [546, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 246, + "ty": 4, + "nm": "Shape Layer 372", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [532, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 247, + "ty": 4, + "nm": "Shape Layer 373", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [518, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 248, + "ty": 4, + "nm": "Shape Layer 374", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [504, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 249, + "ty": 4, + "nm": "Shape Layer 375", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [490, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 250, + "ty": 4, + "nm": "Shape Layer 359", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [476, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 251, + "ty": 4, + "nm": "Shape Layer 354", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [827, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 252, + "ty": 4, + "nm": "Shape Layer 355", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [813, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 60, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 90, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 120, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 150, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 180, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 210, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 240, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 253, + "ty": 4, + "nm": "Shape Layer 356", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [798, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 32, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 62, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 92, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 122, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 152, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 182, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 212, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 254, + "ty": 4, + "nm": "Shape Layer 357", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [784, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 255, + "ty": 4, + "nm": "Shape Layer 358", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [770, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 256, + "ty": 4, + "nm": "Shape Layer 353", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [756, 709, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 257, + "ty": 4, + "nm": "Shape Layer 339", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [665, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 258, + "ty": 4, + "nm": "Shape Layer 340", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [651, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 259, + "ty": 4, + "nm": "Shape Layer 341", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [637, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 260, + "ty": 4, + "nm": "Shape Layer 342", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [623, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 261, + "ty": 4, + "nm": "Shape Layer 343", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [609, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 262, + "ty": 4, + "nm": "Shape Layer 344", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [595, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 263, + "ty": 4, + "nm": "Shape Layer 345", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [581, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 264, + "ty": 4, + "nm": "Shape Layer 346", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [567, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 265, + "ty": 4, + "nm": "Shape Layer 347", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [553, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 266, + "ty": 4, + "nm": "Shape Layer 348", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [539, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 267, + "ty": 4, + "nm": "Shape Layer 349", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [525, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 268, + "ty": 4, + "nm": "Shape Layer 350", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [511, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 269, + "ty": 4, + "nm": "Shape Layer 351", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [497, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 270, + "ty": 4, + "nm": "Shape Layer 352", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [483, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 271, + "ty": 4, + "nm": "Shape Layer 338", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [469, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 272, + "ty": 4, + "nm": "Shape Layer 334", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [820, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 273, + "ty": 4, + "nm": "Shape Layer 336", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [792, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 274, + "ty": 4, + "nm": "Shape Layer 337", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [778, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 275, + "ty": 4, + "nm": "Shape Layer 333", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [764, 695, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 276, + "ty": 4, + "nm": "Shape Layer 319", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [658, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 277, + "ty": 4, + "nm": "Shape Layer 320", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [644, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 278, + "ty": 4, + "nm": "Shape Layer 321", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [629, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 279, + "ty": 4, + "nm": "Shape Layer 322", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [615, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 280, + "ty": 4, + "nm": "Shape Layer 323", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [601, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 281, + "ty": 4, + "nm": "Shape Layer 324", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [587, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 282, + "ty": 4, + "nm": "Shape Layer 325", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [573, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 283, + "ty": 4, + "nm": "Shape Layer 326", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [559, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 284, + "ty": 4, + "nm": "Shape Layer 327", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [545, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 285, + "ty": 4, + "nm": "Shape Layer 328", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [531, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 286, + "ty": 4, + "nm": "Shape Layer 329", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [517, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 287, + "ty": 4, + "nm": "Shape Layer 330", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [503, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 288, + "ty": 4, + "nm": "Shape Layer 331", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [489, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 289, + "ty": 4, + "nm": "Shape Layer 332", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [475, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 290, + "ty": 4, + "nm": "Shape Layer 318", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [461, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 291, + "ty": 4, + "nm": "Shape Layer 316", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [827, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 292, + "ty": 4, + "nm": "Shape Layer 314", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [799, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 293, + "ty": 4, + "nm": "Shape Layer 317", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [771, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 294, + "ty": 4, + "nm": "Shape Layer 313", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [785, 681, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 295, + "ty": 4, + "nm": "Shape Layer 288", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [665, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 296, + "ty": 4, + "nm": "Shape Layer 289", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [651, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 297, + "ty": 4, + "nm": "Shape Layer 290", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [637, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 298, + "ty": 4, + "nm": "Shape Layer 291", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [623, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 299, + "ty": 4, + "nm": "Shape Layer 292", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [609, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 300, + "ty": 4, + "nm": "Shape Layer 293", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [595, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 301, + "ty": 4, + "nm": "Shape Layer 294", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [581, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 302, + "ty": 4, + "nm": "Shape Layer 295", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [567, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 303, + "ty": 4, + "nm": "Shape Layer 296", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [553, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 304, + "ty": 4, + "nm": "Shape Layer 297", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [539, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 305, + "ty": 4, + "nm": "Shape Layer 298", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [525, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 75, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 105, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 135, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 165, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 195, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 225, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 255, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 306, + "ty": 4, + "nm": "Shape Layer 299", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [511, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 157, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 187, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 217, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 247, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 277, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 307, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 337, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 307, + "ty": 4, + "nm": "Shape Layer 300", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [497, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 308, + "ty": 4, + "nm": "Shape Layer 301", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [483, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 309, + "ty": 4, + "nm": "Shape Layer 302", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [469, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 310, + "ty": 4, + "nm": "Shape Layer 303", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [455, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 311, + "ty": 4, + "nm": "Shape Layer 304", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [441, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 312, + "ty": 4, + "nm": "Shape Layer 305", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [427, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 313, + "ty": 4, + "nm": "Shape Layer 306", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [413, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 314, + "ty": 4, + "nm": "Shape Layer 307", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [399, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 315, + "ty": 4, + "nm": "Shape Layer 308", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [371, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 316, + "ty": 4, + "nm": "Shape Layer 309", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [357, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 317, + "ty": 4, + "nm": "Shape Layer 310", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [343, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 318, + "ty": 4, + "nm": "Shape Layer 311", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [329, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 319, + "ty": 4, + "nm": "Shape Layer 312", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [315, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 320, + "ty": 4, + "nm": "Shape Layer 287", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [301, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 321, + "ty": 4, + "nm": "Shape Layer 286", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [778, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 322, + "ty": 4, + "nm": "Shape Layer 285", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [764, 667, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 323, + "ty": 4, + "nm": "Shape Layer 250", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [799, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 324, + "ty": 4, + "nm": "Shape Layer 251", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [785, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 325, + "ty": 4, + "nm": "Shape Layer 254", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [742, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 326, + "ty": 4, + "nm": "Shape Layer 259", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [672, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 327, + "ty": 4, + "nm": "Shape Layer 260", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [658, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 176, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 206, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 236, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 266, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 296, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 326, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 356, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 328, + "ty": 4, + "nm": "Shape Layer 261", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [644, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 77, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 107, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 137, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 167, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 197, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 227, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 257, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 329, + "ty": 4, + "nm": "Shape Layer 262", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [630, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 157, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 187, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 217, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 247, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 277, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 307, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 337, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 330, + "ty": 4, + "nm": "Shape Layer 263", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [616, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 131, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 161, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 191, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 221, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 251, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 281, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 311, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 331, + "ty": 4, + "nm": "Shape Layer 264", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [602, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 332, + "ty": 4, + "nm": "Shape Layer 265", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [588, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 333, + "ty": 4, + "nm": "Shape Layer 266", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [574, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 334, + "ty": 4, + "nm": "Shape Layer 267", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [560, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 335, + "ty": 4, + "nm": "Shape Layer 268", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [546, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 336, + "ty": 4, + "nm": "Shape Layer 269", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [532, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 337, + "ty": 4, + "nm": "Shape Layer 270", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [518, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 338, + "ty": 4, + "nm": "Shape Layer 271", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [504, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 339, + "ty": 4, + "nm": "Shape Layer 272", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [490, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 340, + "ty": 4, + "nm": "Shape Layer 273", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [476, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 341, + "ty": 4, + "nm": "Shape Layer 274", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [462, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 342, + "ty": 4, + "nm": "Shape Layer 275", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [448, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 343, + "ty": 4, + "nm": "Shape Layer 276", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [434, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 344, + "ty": 4, + "nm": "Shape Layer 277", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [419, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 345, + "ty": 4, + "nm": "Shape Layer 278", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [405, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 104, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 134, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 164, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 194, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 224, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 254, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 284, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 346, + "ty": 4, + "nm": "Shape Layer 280", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [391, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 95, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 125, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 155, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 185, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 215, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 245, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 275, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 347, + "ty": 4, + "nm": "Shape Layer 281", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [377, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 183, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 213, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 243, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 273, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 303, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 333, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 363, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 348, + "ty": 4, + "nm": "Shape Layer 282", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [363, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 37, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 67, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 97, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 127, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 157, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 187, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 217, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 349, + "ty": 4, + "nm": "Shape Layer 283", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [349, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 350, + "ty": 4, + "nm": "Shape Layer 284", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [335, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 351, + "ty": 4, + "nm": "Shape Layer 279", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [321, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 352, + "ty": 4, + "nm": "Shape Layer 217", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [806, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 353, + "ty": 4, + "nm": "Shape Layer 218", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [792, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 354, + "ty": 4, + "nm": "Shape Layer 219", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [778, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 355, + "ty": 4, + "nm": "Shape Layer 220", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [764, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 356, + "ty": 4, + "nm": "Shape Layer 221", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [708, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 357, + "ty": 4, + "nm": "Shape Layer 222", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [694, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 358, + "ty": 4, + "nm": "Shape Layer 223", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [680, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 359, + "ty": 4, + "nm": "Shape Layer 224", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [666, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 360, + "ty": 4, + "nm": "Shape Layer 225", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [652, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 181, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 211, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 241, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 271, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 301, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 331, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 361, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 361, + "ty": 4, + "nm": "Shape Layer 226", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [638, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 217, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 246, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 276, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 306, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 336, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 366, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 396, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 362, + "ty": 4, + "nm": "Shape Layer 227", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [624, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 363, + "ty": 4, + "nm": "Shape Layer 228", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [610, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 227, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 257, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 287, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 317, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 347, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 377, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 407, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 364, + "ty": 4, + "nm": "Shape Layer 229", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [596, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 1, + "k": [ + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 165, + "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 195, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 225, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 255, + "s": [0.156862750649, 0.721568644047, 0.415686279535, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 285, + "s": [0.35686275363, 0.921568632126, 0.615686297417, 1] + }, + { + "i": { "x": [0.833], "y": [0.833] }, + "o": { "x": [0.167], "y": [0.167] }, + "t": 315, + "s": [0.678431391716, 0.960784316063, 0.807843148708, 1] + }, + { "t": 345, "s": [0.137254908681, 0.137254908681, 0.145098045468, 1] } + ], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 365, + "ty": 4, + "nm": "Shape Layer 230", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [582, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 366, + "ty": 4, + "nm": "Shape Layer 231", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [568, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 367, + "ty": 4, + "nm": "Shape Layer 232", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [554, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 368, + "ty": 4, + "nm": "Shape Layer 233", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [540, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 369, + "ty": 4, + "nm": "Shape Layer 234", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [526, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 370, + "ty": 4, + "nm": "Shape Layer 235", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [512, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 371, + "ty": 4, + "nm": "Shape Layer 236", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [498, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 372, + "ty": 4, + "nm": "Shape Layer 237", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [484, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 373, + "ty": 4, + "nm": "Shape Layer 238", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [470, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 374, + "ty": 4, + "nm": "Shape Layer 239", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [456, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 375, + "ty": 4, + "nm": "Shape Layer 240", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [442, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 376, + "ty": 4, + "nm": "Shape Layer 241", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [428, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 377, + "ty": 4, + "nm": "Shape Layer 242", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [414, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 378, + "ty": 4, + "nm": "Shape Layer 243", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [400, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 379, + "ty": 4, + "nm": "Shape Layer 244", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [386, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 380, + "ty": 4, + "nm": "Shape Layer 245", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [372, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 381, + "ty": 4, + "nm": "Shape Layer 246", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [358, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 382, + "ty": 4, + "nm": "Shape Layer 247", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [344, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 383, + "ty": 4, + "nm": "Shape Layer 248", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [330, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 384, + "ty": 4, + "nm": "Shape Layer 216", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [302, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 385, + "ty": 4, + "nm": "Shape Layer 196", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [575, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 386, + "ty": 4, + "nm": "Shape Layer 197", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [561, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 387, + "ty": 4, + "nm": "Shape Layer 198", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [547, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 388, + "ty": 4, + "nm": "Shape Layer 199", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [533, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 389, + "ty": 4, + "nm": "Shape Layer 200", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [519, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 390, + "ty": 4, + "nm": "Shape Layer 201", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [505, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 391, + "ty": 4, + "nm": "Shape Layer 202", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [491, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 392, + "ty": 4, + "nm": "Shape Layer 203", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [477, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 393, + "ty": 4, + "nm": "Shape Layer 204", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [463, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 394, + "ty": 4, + "nm": "Shape Layer 205", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [449, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 395, + "ty": 4, + "nm": "Shape Layer 206", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [435, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 396, + "ty": 4, + "nm": "Shape Layer 207", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [421, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 397, + "ty": 4, + "nm": "Shape Layer 208", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [407, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 398, + "ty": 4, + "nm": "Shape Layer 209", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [393, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 399, + "ty": 4, + "nm": "Shape Layer 210", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [379, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 400, + "ty": 4, + "nm": "Shape Layer 211", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [365, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 401, + "ty": 4, + "nm": "Shape Layer 212", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [351, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 402, + "ty": 4, + "nm": "Shape Layer 213", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [337, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 403, + "ty": 4, + "nm": "Shape Layer 214", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [323, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 404, + "ty": 4, + "nm": "Shape Layer 215", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [309, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 405, + "ty": 4, + "nm": "Shape Layer 195", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [295, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 406, + "ty": 4, + "nm": "Shape Layer 194", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [589, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 407, + "ty": 4, + "nm": "Shape Layer 193", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [603, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 408, + "ty": 4, + "nm": "Shape Layer 190", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [715, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 409, + "ty": 4, + "nm": "Shape Layer 192", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [687, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 410, + "ty": 4, + "nm": "Shape Layer 189", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [673, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 411, + "ty": 4, + "nm": "Shape Layer 185", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [799, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 412, + "ty": 4, + "nm": "Shape Layer 188", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [771, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 413, + "ty": 4, + "nm": "Shape Layer 187", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [757, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 414, + "ty": 4, + "nm": "Shape Layer 186", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [785, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 415, + "ty": 4, + "nm": "Shape Layer 164", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [834, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 416, + "ty": 4, + "nm": "Shape Layer 165", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [820, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 417, + "ty": 4, + "nm": "Shape Layer 166", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [806, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 418, + "ty": 4, + "nm": "Shape Layer 167", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [792, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 419, + "ty": 4, + "nm": "Shape Layer 168", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [778, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 420, + "ty": 4, + "nm": "Shape Layer 169", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [764, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 421, + "ty": 4, + "nm": "Shape Layer 170", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [750, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 422, + "ty": 4, + "nm": "Shape Layer 171", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [736, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 423, + "ty": 4, + "nm": "Shape Layer 172", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [722, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 424, + "ty": 4, + "nm": "Shape Layer 173", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [708, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 425, + "ty": 4, + "nm": "Shape Layer 174", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [694, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 426, + "ty": 4, + "nm": "Shape Layer 175", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [680, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 427, + "ty": 4, + "nm": "Shape Layer 176", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [666, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 428, + "ty": 4, + "nm": "Shape Layer 177", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [652, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 429, + "ty": 4, + "nm": "Shape Layer 178", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [638, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 430, + "ty": 4, + "nm": "Shape Layer 179", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [624, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 431, + "ty": 4, + "nm": "Shape Layer 180", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [610, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 432, + "ty": 4, + "nm": "Shape Layer 181", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [596, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 433, + "ty": 4, + "nm": "Shape Layer 182", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [582, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 434, + "ty": 4, + "nm": "Shape Layer 183", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [568, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 435, + "ty": 4, + "nm": "Shape Layer 163", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [554, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 436, + "ty": 4, + "nm": "Shape Layer 143", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [827, 597, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 437, + "ty": 4, + "nm": "Shape Layer 144", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [813, 597, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 438, + "ty": 4, + "nm": "Shape Layer 145", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [799, 597, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 439, + "ty": 4, + "nm": "Shape Layer 146", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [785, 597, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 440, + "ty": 4, + "nm": "Shape Layer 147", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [771, 597, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 441, + "ty": 4, + "nm": "Shape Layer 148", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [757, 597, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 442, + "ty": 4, + "nm": "Shape Layer 149", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [743, 597, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 443, + "ty": 4, + "nm": "Shape Layer 150", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [729, 597, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 444, + "ty": 4, + "nm": "Shape Layer 151", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [715, 597, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 445, + "ty": 4, + "nm": "Shape Layer 152", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [701, 597, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 446, + "ty": 4, + "nm": "Shape Layer 153", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [687, 597, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 447, + "ty": 4, + "nm": "Shape Layer 157", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [631, 597, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 448, + "ty": 4, + "nm": "Shape Layer 158", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [617, 597, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 449, + "ty": 4, + "nm": "Shape Layer 159", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [601, 597, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 450, + "ty": 4, + "nm": "Shape Layer 162", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [559, 597, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 451, + "ty": 4, + "nm": "Shape Layer 142", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [545, 597, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 452, + "ty": 4, + "nm": "Shape Layer 141", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [834, 583, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 453, + "ty": 4, + "nm": "Shape Layer 140", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [820, 583, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 454, + "ty": 4, + "nm": "Shape Layer 139", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [806, 583, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 455, + "ty": 4, + "nm": "Shape Layer 138", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [792, 583, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 456, + "ty": 4, + "nm": "Shape Layer 137", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [778, 583, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 457, + "ty": 4, + "nm": "Shape Layer 136", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [764, 583, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 458, + "ty": 4, + "nm": "Shape Layer 135", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [750, 583, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 459, + "ty": 4, + "nm": "Shape Layer 134", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [736, 583, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 460, + "ty": 4, + "nm": "Shape Layer 133", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [722, 583, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 461, + "ty": 4, + "nm": "Shape Layer 131", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [694, 583, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 462, + "ty": 4, + "nm": "Shape Layer 129", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [666, 583, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 463, + "ty": 4, + "nm": "Shape Layer 127", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [638, 583, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 464, + "ty": 4, + "nm": "Shape Layer 126", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [610, 583, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 465, + "ty": 4, + "nm": "Shape Layer 123", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [554, 583, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 466, + "ty": 4, + "nm": "Shape Layer 124", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [540, 583, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 467, + "ty": 4, + "nm": "Shape Layer 125", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [526, 583, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 468, + "ty": 4, + "nm": "Shape Layer 122", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [512, 583, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 469, + "ty": 4, + "nm": "Shape Layer 121", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [631, 569, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 470, + "ty": 4, + "nm": "Shape Layer 120", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [617, 569, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 471, + "ty": 4, + "nm": "Shape Layer 119", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [603, 569, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 472, + "ty": 4, + "nm": "Shape Layer 118", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [589, 569, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 473, + "ty": 4, + "nm": "Shape Layer 117", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [575, 569, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 474, + "ty": 4, + "nm": "Shape Layer 116", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [561, 569, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + } + ] + }, + { + "id": "comp_6", + "layers": [ + { + "ddd": 0, + "ind": 1, + "ty": 4, + "nm": "Shape Layer 115", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [937, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 2, + "ty": 4, + "nm": "Shape Layer 114", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [923, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 3, + "ty": 4, + "nm": "Shape Layer 113", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [909, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 4, + "ty": 4, + "nm": "Shape Layer 112", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [895, 653, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 5, + "ty": 4, + "nm": "Shape Layer 111", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [944, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 6, + "ty": 4, + "nm": "Shape Layer 110", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [930, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 7, + "ty": 4, + "nm": "Shape Layer 109", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [916, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 8, + "ty": 4, + "nm": "Shape Layer 108", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [902, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 9, + "ty": 4, + "nm": "Shape Layer 107", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [888, 639, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 10, + "ty": 4, + "nm": "Shape Layer 106", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [951, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 11, + "ty": 4, + "nm": "Shape Layer 105", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [937, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 12, + "ty": 4, + "nm": "Shape Layer 104", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [923, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 13, + "ty": 4, + "nm": "Shape Layer 103", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [909, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 14, + "ty": 4, + "nm": "Shape Layer 102", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [895, 625, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 15, + "ty": 4, + "nm": "Shape Layer 101", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1000, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 16, + "ty": 4, + "nm": "Shape Layer 100", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [986, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 17, + "ty": 4, + "nm": "Shape Layer 99", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [972, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 18, + "ty": 4, + "nm": "Shape Layer 98", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [958, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 19, + "ty": 4, + "nm": "Shape Layer 97", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [944, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 20, + "ty": 4, + "nm": "Shape Layer 96", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [930, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 21, + "ty": 4, + "nm": "Shape Layer 95", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [916, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 22, + "ty": 4, + "nm": "Shape Layer 94", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [902, 611, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 23, + "ty": 4, + "nm": "Shape Layer 93", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1007, 597, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 24, + "ty": 4, + "nm": "Shape Layer 92", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [993, 597, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 25, + "ty": 4, + "nm": "Shape Layer 91", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [979, 597, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 26, + "ty": 4, + "nm": "Shape Layer 90", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [965, 597, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 27, + "ty": 4, + "nm": "Shape Layer 89", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [951, 597, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 28, + "ty": 4, + "nm": "Shape Layer 88", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [937, 597, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 29, + "ty": 4, + "nm": "Shape Layer 87", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [923, 597, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 30, + "ty": 4, + "nm": "Shape Layer 86", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [909, 597, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 31, + "ty": 4, + "nm": "Shape Layer 85", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [895, 597, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 32, + "ty": 4, + "nm": "Shape Layer 84", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [881, 597, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 33, + "ty": 4, + "nm": "Shape Layer 83", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1014, 583, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 34, + "ty": 4, + "nm": "Shape Layer 82", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1000, 583, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 35, + "ty": 4, + "nm": "Shape Layer 81", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [986, 583, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 36, + "ty": 4, + "nm": "Shape Layer 80", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [972, 583, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 37, + "ty": 4, + "nm": "Shape Layer 79", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [958, 583, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 38, + "ty": 4, + "nm": "Shape Layer 78", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [944, 583, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 39, + "ty": 4, + "nm": "Shape Layer 77", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [930, 583, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 40, + "ty": 4, + "nm": "Shape Layer 76", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [916, 583, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 41, + "ty": 4, + "nm": "Shape Layer 75", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [902, 583, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 42, + "ty": 4, + "nm": "Shape Layer 74", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [888, 583, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 43, + "ty": 4, + "nm": "Shape Layer 73", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [874, 583, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 44, + "ty": 4, + "nm": "Shape Layer 72", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1021, 569, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 45, + "ty": 4, + "nm": "Shape Layer 71", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1007, 569, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 46, + "ty": 4, + "nm": "Shape Layer 70", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [993, 569, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 47, + "ty": 4, + "nm": "Shape Layer 69", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [979, 569, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 48, + "ty": 4, + "nm": "Shape Layer 68", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [965, 569, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 49, + "ty": 4, + "nm": "Shape Layer 67", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [951, 569, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 50, + "ty": 4, + "nm": "Shape Layer 66", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [937, 569, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 51, + "ty": 4, + "nm": "Shape Layer 65", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [923, 569, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 52, + "ty": 4, + "nm": "Shape Layer 64", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [909, 569, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 53, + "ty": 4, + "nm": "Shape Layer 63", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [895, 569, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 54, + "ty": 4, + "nm": "Shape Layer 62", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [881, 569, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 55, + "ty": 4, + "nm": "Shape Layer 61", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [867, 569, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 56, + "ty": 4, + "nm": "Shape Layer 60", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1014, 555, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 57, + "ty": 4, + "nm": "Shape Layer 59", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1000, 555, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 58, + "ty": 4, + "nm": "Shape Layer 58", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [986, 555, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 59, + "ty": 4, + "nm": "Shape Layer 57", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [972, 555, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 60, + "ty": 4, + "nm": "Shape Layer 56", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [958, 555, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 61, + "ty": 4, + "nm": "Shape Layer 55", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [944, 555, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 62, + "ty": 4, + "nm": "Shape Layer 54", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [930, 555, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 63, + "ty": 4, + "nm": "Shape Layer 53", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [916, 555, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 64, + "ty": 4, + "nm": "Shape Layer 52", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [902, 555, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 65, + "ty": 4, + "nm": "Shape Layer 51", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [888, 555, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 66, + "ty": 4, + "nm": "Shape Layer 50", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [874, 555, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 67, + "ty": 4, + "nm": "Shape Layer 49", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [860, 555, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 68, + "ty": 4, + "nm": "Shape Layer 48", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [846, 555, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 69, + "ty": 4, + "nm": "Shape Layer 47", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [832, 555, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 70, + "ty": 4, + "nm": "Shape Layer 46", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [818, 555, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 71, + "ty": 4, + "nm": "Shape Layer 45", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1021, 541, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 72, + "ty": 4, + "nm": "Shape Layer 44", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1007, 541, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 73, + "ty": 4, + "nm": "Shape Layer 43", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [993, 541, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 74, + "ty": 4, + "nm": "Shape Layer 42", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [979, 541, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 75, + "ty": 4, + "nm": "Shape Layer 41", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [965, 541, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 76, + "ty": 4, + "nm": "Shape Layer 40", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [951, 541, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 77, + "ty": 4, + "nm": "Shape Layer 39", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [937, 541, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 78, + "ty": 4, + "nm": "Shape Layer 38", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [923, 541, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 79, + "ty": 4, + "nm": "Shape Layer 37", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [909, 541, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 80, + "ty": 4, + "nm": "Shape Layer 36", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [895, 541, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 81, + "ty": 4, + "nm": "Shape Layer 35", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [881, 541, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 82, + "ty": 4, + "nm": "Shape Layer 34", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [867, 541, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 83, + "ty": 4, + "nm": "Shape Layer 33", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [853, 541, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 84, + "ty": 4, + "nm": "Shape Layer 32", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [839, 541, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 85, + "ty": 4, + "nm": "Shape Layer 31", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [825, 541, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 86, + "ty": 4, + "nm": "Shape Layer 26", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1014, 528, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 87, + "ty": 4, + "nm": "Shape Layer 25", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1000, 528, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 88, + "ty": 4, + "nm": "Shape Layer 24", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [986, 528, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 89, + "ty": 4, + "nm": "Shape Layer 23", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [972, 528, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 90, + "ty": 4, + "nm": "Shape Layer 22", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [958, 528, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 91, + "ty": 4, + "nm": "Shape Layer 21", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [944, 528, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 92, + "ty": 4, + "nm": "Shape Layer 20", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [930, 528, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 93, + "ty": 4, + "nm": "Shape Layer 19", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [916, 528, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 94, + "ty": 4, + "nm": "Shape Layer 18", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [902, 528, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 95, + "ty": 4, + "nm": "Shape Layer 27", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [888, 528, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 96, + "ty": 4, + "nm": "Shape Layer 28", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [874, 528, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 97, + "ty": 4, + "nm": "Shape Layer 29", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [860, 528, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 98, + "ty": 4, + "nm": "Shape Layer 30", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [846, 528, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 99, + "ty": 4, + "nm": "Shape Layer 17", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [832, 528, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 100, + "ty": 4, + "nm": "Shape Layer 15", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1007, 514, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 101, + "ty": 4, + "nm": "Shape Layer 14", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [993, 514, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 102, + "ty": 4, + "nm": "Shape Layer 13", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [979, 514, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 103, + "ty": 4, + "nm": "Shape Layer 12", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [965, 514, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 104, + "ty": 4, + "nm": "Shape Layer 11", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [951, 514, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 105, + "ty": 4, + "nm": "Shape Layer 10", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [937, 514, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 106, + "ty": 4, + "nm": "Shape Layer 9", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [923, 514, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 107, + "ty": 4, + "nm": "Shape Layer 16", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [909, 514, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 108, + "ty": 4, + "nm": "Shape Layer 8", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [895, 514, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 109, + "ty": 4, + "nm": "Shape Layer 7", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1000, 500, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 110, + "ty": 4, + "nm": "Shape Layer 6", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [986, 500, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 111, + "ty": 4, + "nm": "Shape Layer 5", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [972, 500, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 112, + "ty": 4, + "nm": "Shape Layer 4", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [958, 500, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 113, + "ty": 4, + "nm": "Shape Layer 3", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [944, 500, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 114, + "ty": 4, + "nm": "Shape Layer 1", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [930, 500, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 115, + "ty": 4, + "nm": "Shape Layer 2", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [637.398, 49.875, 0], "ix": 2 }, + "a": { "a": 0, "k": [-278.602, -450.125, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ty": "sr", + "sy": 2, + "d": 1, + "pt": { "a": 0, "k": 6, "ix": 3 }, + "p": { "a": 0, "k": [0, 0], "ix": 4 }, + "r": { "a": 0, "k": 0, "ix": 5 }, + "or": { "a": 0, "k": 5.8, "ix": 7 }, + "os": { "a": 0, "k": 0, "ix": 9 }, + "ix": 1, + "nm": "Polystar Path 1", + "mn": "ADBE Vector Shape - Star", + "hd": false + }, + { + "ty": "fl", + "c": { "a": 0, "k": [0.137254901961, 0.137254901961, 0.145098039216, 1], "ix": 4 }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-283.625, -450.125], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Polystar 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + } + ] + } + ], + "layers": [ + { + "ddd": 0, + "ind": 1, + "ty": 0, + "nm": "Dot", + "refId": "comp_0", + "sr": 1, + "ks": { + "o": { + "a": 1, + "k": [ + { "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 390, "s": [0] }, + { "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 400, "s": [100] }, + { "t": 410, "s": [0] } + ], + "ix": 11 + }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [550.625, 116.5, 0], "ix": 2 }, + "a": { "a": 0, "k": [916, 500, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "w": 1832, + "h": 1000, + "ip": 390, + "op": 410, + "st": 390, + "bm": 0 + }, + { + "ddd": 0, + "ind": 2, + "ty": 0, + "nm": "Dot", + "refId": "comp_0", + "sr": 1, + "ks": { + "o": { + "a": 1, + "k": [ + { "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 320, "s": [0] }, + { "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 330, "s": [100] }, + { "t": 340, "s": [0] } + ], + "ix": 11 + }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [724.375, 77.25, 0], "ix": 2 }, + "a": { "a": 0, "k": [916, 500, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "w": 1832, + "h": 1000, + "ip": 320, + "op": 340, + "st": 320, + "bm": 0 + }, + { + "ddd": 0, + "ind": 3, + "ty": 0, + "nm": "Dot", + "refId": "comp_0", + "sr": 1, + "ks": { + "o": { + "a": 1, + "k": [ + { "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 250, "s": [0] }, + { "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 260, "s": [100] }, + { "t": 270, "s": [0] } + ], + "ix": 11 + }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1892.25, 158.75, 0], "ix": 2 }, + "a": { "a": 0, "k": [916, 500, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "w": 1832, + "h": 1000, + "ip": 250, + "op": 270, + "st": 250, + "bm": 0 + }, + { + "ddd": 0, + "ind": 4, + "ty": 0, + "nm": "Dot", + "refId": "comp_0", + "sr": 1, + "ks": { + "o": { + "a": 1, + "k": [ + { "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 180, "s": [0] }, + { "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 190, "s": [100] }, + { "t": 200, "s": [0] } + ], + "ix": 11 + }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1236.5, 86, 0], "ix": 2 }, + "a": { "a": 0, "k": [916, 500, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "w": 1832, + "h": 1000, + "ip": 180, + "op": 200, + "st": 180, + "bm": 0 + }, + { + "ddd": 0, + "ind": 5, + "ty": 0, + "nm": "Dot", + "refId": "comp_0", + "sr": 1, + "ks": { + "o": { + "a": 1, + "k": [ + { "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 110, "s": [0] }, + { "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 120, "s": [100] }, + { "t": 130, "s": [0] } + ], + "ix": 11 + }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1689, 443, 0], "ix": 2 }, + "a": { "a": 0, "k": [916, 500, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "w": 1832, + "h": 1000, + "ip": 110, + "op": 130, + "st": 110, + "bm": 0 + }, + { + "ddd": 0, + "ind": 6, + "ty": 0, + "nm": "Dot", + "refId": "comp_0", + "sr": 1, + "ks": { + "o": { + "a": 1, + "k": [ + { "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 40, "s": [0] }, + { "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 50, "s": [100] }, + { "t": 60, "s": [0] } + ], + "ix": 11 + }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [916, 500, 0], "ix": 2 }, + "a": { "a": 0, "k": [916, 500, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "w": 1832, + "h": 1000, + "ip": 40, + "op": 60, + "st": 40, + "bm": 0 + }, + { + "ddd": 0, + "ind": 7, + "ty": 2, + "nm": "Avatar_2@2x.png", + "cl": "png", + "refId": "image_0", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1420, 614, 0], "ix": 2 }, + "a": { "a": 0, "k": [40, 40.5, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 8, + "ty": 2, + "nm": "Avatar_6@2x.png", + "cl": "png", + "refId": "image_1", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [1619, 388, 0], "ix": 2 }, + "a": { "a": 0, "k": [40, 40.5, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 9, + "ty": 2, + "nm": "Avatar_5@2x.png", + "cl": "png", + "refId": "image_2", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [900, 285, 0], "ix": 2 }, + "a": { "a": 0, "k": [40, 40.5, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 10, + "ty": 2, + "nm": "Avatar_3@2x.png", + "cl": "png", + "refId": "image_3", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [657, 700, 0], "ix": 2 }, + "a": { "a": 0, "k": [40, 40, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 11, + "ty": 2, + "nm": "Avatar_4@2x.png", + "cl": "png", + "refId": "image_4", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [396, 250, 0], "ix": 2 }, + "a": { "a": 0, "k": [40, 40, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 12, + "ty": 2, + "nm": "Avatar_1@2x.png", + "cl": "png", + "refId": "image_5", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [244, 356, 0], "ix": 2 }, + "a": { "a": 0, "k": [40, 40, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 13, + "ty": 4, + "nm": "Shape Layer 6", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [916, 500, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [0, 0], + [6, -112] + ], + "o": [ + [0, 0], + [-6, 112] + ], + "v": [ + [-522, -252], + [-674, -144] + ], + "c": false + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "gs", + "o": { "a": 0, "k": 100, "ix": 9 }, + "w": { "a": 0, "k": 2, "ix": 10 }, + "g": { "p": 3, "k": { "a": 0, "k": [0, 0.604, 0.322, 1, 0.375, 0.745, 0.31, 1, 0.751, 0.886, 0.298, 1], "ix": 8 } }, + "s": { "a": 0, "k": [0, 0], "ix": 4 }, + "e": { "a": 0, "k": [100, 0], "ix": 5 }, + "t": 1, + "lc": 1, + "lj": 1, + "ml": 4, + "ml2": { "a": 0, "k": 4, "ix": 13 }, + "bm": 0, + "nm": "Gradient Stroke 1", + "mn": "ADBE Vector Graphic - G-Stroke", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [0, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Shape 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + }, + { + "ty": "tm", + "s": { + "a": 1, + "k": [ + { "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 370, "s": [0] }, + { "t": 400, "s": [100] } + ], + "ix": 1 + }, + "e": { + "a": 1, + "k": [ + { "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 350, "s": [0] }, + { "t": 380, "s": [100] } + ], + "ix": 2 + }, + "o": { "a": 0, "k": 0, "ix": 3 }, + "m": 1, + "ix": 2, + "nm": "Trim Paths 2", + "mn": "ADBE Vector Filter - Trim", + "hd": false + } + ], + "ip": 350, + "op": 400, + "st": 350, + "bm": 0 + }, + { + "ddd": 0, + "ind": 14, + "ty": 4, + "nm": "Shape Layer 5", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [916, 500, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [0, 0], + [462, 446] + ], + "o": [ + [0, 0], + [-462, -446] + ], + "v": [ + [706, -112], + [-518, -250] + ], + "c": false + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "gs", + "o": { "a": 0, "k": 100, "ix": 9 }, + "w": { "a": 0, "k": 2, "ix": 10 }, + "g": { "p": 3, "k": { "a": 0, "k": [0, 0.604, 0.322, 1, 0.375, 0.745, 0.31, 1, 0.751, 0.886, 0.298, 1], "ix": 8 } }, + "s": { "a": 0, "k": [0, 0], "ix": 4 }, + "e": { "a": 0, "k": [100, 0], "ix": 5 }, + "t": 1, + "lc": 1, + "lj": 1, + "ml": 4, + "ml2": { "a": 0, "k": 4, "ix": 13 }, + "bm": 0, + "nm": "Gradient Stroke 1", + "mn": "ADBE Vector Graphic - G-Stroke", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [0, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Shape 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + }, + { + "ty": "tm", + "s": { + "a": 1, + "k": [ + { "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 300, "s": [0] }, + { "t": 330, "s": [100] } + ], + "ix": 1 + }, + "e": { + "a": 1, + "k": [ + { "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 280, "s": [0] }, + { "t": 310, "s": [100] } + ], + "ix": 2 + }, + "o": { "a": 0, "k": 0, "ix": 3 }, + "m": 1, + "ix": 2, + "nm": "Trim Paths 1", + "mn": "ADBE Vector Filter - Trim", + "hd": false + } + ], + "ip": 280, + "op": 330, + "st": 280, + "bm": 0 + }, + { + "ddd": 0, + "ind": 15, + "ty": 4, + "nm": "Shape Layer 4", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [916, 500, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [0, 0], + [-282, -276] + ], + "o": [ + [0, 0], + [282, 276] + ], + "v": [ + [-16, -218], + [706, -116] + ], + "c": false + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "gs", + "o": { "a": 0, "k": 100, "ix": 9 }, + "w": { "a": 0, "k": 2, "ix": 10 }, + "g": { "p": 3, "k": { "a": 0, "k": [0, 0.604, 0.322, 1, 0.375, 0.745, 0.31, 1, 0.751, 0.886, 0.298, 1], "ix": 8 } }, + "s": { "a": 0, "k": [0, 0], "ix": 4 }, + "e": { "a": 0, "k": [100, 0], "ix": 5 }, + "t": 1, + "lc": 1, + "lj": 1, + "ml": 4, + "ml2": { "a": 0, "k": 4, "ix": 13 }, + "bm": 0, + "nm": "Gradient Stroke 1", + "mn": "ADBE Vector Graphic - G-Stroke", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [0, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Shape 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + }, + { + "ty": "tm", + "s": { + "a": 1, + "k": [ + { "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 230, "s": [0] }, + { "t": 260, "s": [100] } + ], + "ix": 1 + }, + "e": { + "a": 1, + "k": [ + { "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 210, "s": [0] }, + { "t": 240, "s": [100] } + ], + "ix": 2 + }, + "o": { "a": 0, "k": 0, "ix": 3 }, + "m": 1, + "ix": 2, + "nm": "Trim Paths 1", + "mn": "ADBE Vector Filter - Trim", + "hd": false + } + ], + "ip": 210, + "op": 260, + "st": 210, + "bm": 0 + }, + { + "ddd": 0, + "ind": 16, + "ty": 4, + "nm": "Shape Layer 3", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [916, 500, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [0, 0], + [488, 24] + ], + "o": [ + [0, 0], + [-488, -24] + ], + "v": [ + [506, 116], + [-16, -218] + ], + "c": false + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "gs", + "o": { "a": 0, "k": 100, "ix": 9 }, + "w": { "a": 0, "k": 2, "ix": 10 }, + "g": { "p": 3, "k": { "a": 0, "k": [0, 0.604, 0.322, 1, 0.375, 0.745, 0.31, 1, 0.751, 0.886, 0.298, 1], "ix": 8 } }, + "s": { "a": 0, "k": [0, 0], "ix": 4 }, + "e": { "a": 0, "k": [100, 0], "ix": 5 }, + "t": 1, + "lc": 1, + "lj": 1, + "ml": 4, + "ml2": { "a": 0, "k": 4, "ix": 13 }, + "bm": 0, + "nm": "Gradient Stroke 1", + "mn": "ADBE Vector Graphic - G-Stroke", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [0, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Shape 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + }, + { + "ty": "tm", + "s": { + "a": 1, + "k": [ + { "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 160, "s": [0] }, + { "t": 190, "s": [100] } + ], + "ix": 1 + }, + "e": { + "a": 1, + "k": [ + { "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 140, "s": [0] }, + { "t": 170, "s": [100] } + ], + "ix": 2 + }, + "o": { "a": 0, "k": 0, "ix": 3 }, + "m": 1, + "ix": 2, + "nm": "Trim Paths 1", + "mn": "ADBE Vector Filter - Trim", + "hd": false + } + ], + "ip": 140, + "op": 190, + "st": 140, + "bm": 0 + }, + { + "ddd": 0, + "ind": 17, + "ty": 4, + "nm": "Shape Layer 2", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [916, 500, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [0, 0], + [-338, 318] + ], + "o": [ + [0, 0], + [338, -318] + ], + "v": [ + [-258, 200], + [506, 114] + ], + "c": false + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "gs", + "o": { "a": 0, "k": 100, "ix": 9 }, + "w": { "a": 0, "k": 2, "ix": 10 }, + "g": { "p": 3, "k": { "a": 0, "k": [0, 0.604, 0.322, 1, 0.375, 0.745, 0.31, 1, 0.751, 0.886, 0.298, 1], "ix": 8 } }, + "s": { "a": 0, "k": [0, 0], "ix": 4 }, + "e": { "a": 0, "k": [100, 0], "ix": 5 }, + "t": 1, + "lc": 1, + "lj": 1, + "ml": 4, + "ml2": { "a": 0, "k": 4, "ix": 13 }, + "bm": 0, + "nm": "Gradient Stroke 1", + "mn": "ADBE Vector Graphic - G-Stroke", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [0, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Shape 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + }, + { + "ty": "tm", + "s": { + "a": 1, + "k": [ + { "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 90, "s": [0] }, + { "t": 120, "s": [100] } + ], + "ix": 1 + }, + "e": { + "a": 1, + "k": [ + { "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 70, "s": [0] }, + { "t": 100, "s": [100] } + ], + "ix": 2 + }, + "o": { "a": 0, "k": 0, "ix": 3 }, + "m": 1, + "ix": 2, + "nm": "Trim Paths 1", + "mn": "ADBE Vector Filter - Trim", + "hd": false + } + ], + "ip": 70, + "op": 120, + "st": 70, + "bm": 0 + }, + { + "ddd": 0, + "ind": 18, + "ty": 4, + "nm": "Shape Layer 1", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [916, 500, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [0, 0], + [-429, 0] + ], + "o": [ + [0, 0], + [429, 0] + ], + "v": [ + [-671, -144], + [-259, 201] + ], + "c": false + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "gs", + "o": { "a": 0, "k": 100, "ix": 9 }, + "w": { "a": 0, "k": 2, "ix": 10 }, + "g": { "p": 3, "k": { "a": 0, "k": [0, 0.604, 0.322, 1, 0.375, 0.745, 0.31, 1, 0.751, 0.886, 0.298, 1], "ix": 8 } }, + "s": { "a": 0, "k": [0, 0], "ix": 4 }, + "e": { "a": 0, "k": [100, 0], "ix": 5 }, + "t": 1, + "lc": 1, + "lj": 1, + "ml": 4, + "ml2": { "a": 0, "k": 4, "ix": 13 }, + "bm": 0, + "nm": "Gradient Stroke 1", + "mn": "ADBE Vector Graphic - G-Stroke", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [0, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Shape 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + }, + { + "ty": "tm", + "s": { + "a": 1, + "k": [ + { "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 20, "s": [0] }, + { "t": 50, "s": [100] } + ], + "ix": 1 + }, + "e": { + "a": 1, + "k": [ + { "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 0, "s": [0] }, + { "t": 30, "s": [100] } + ], + "ix": 2 + }, + "o": { "a": 0, "k": 0, "ix": 3 }, + "m": 1, + "ix": 2, + "nm": "Trim Paths 1", + "mn": "ADBE Vector Filter - Trim", + "hd": false + } + ], + "ip": 0, + "op": 50, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 19, + "ty": 0, + "nm": "Australia", + "refId": "comp_1", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [916, 500, 0], "ix": 2 }, + "a": { "a": 0, "k": [916, 500, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "w": 1832, + "h": 1000, + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 20, + "ty": 0, + "nm": "Europe & Asia", + "refId": "comp_2", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [916, 500, 0], "ix": 2 }, + "a": { "a": 0, "k": [916, 500, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "w": 1832, + "h": 1000, + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 21, + "ty": 0, + "nm": "Africa", + "refId": "comp_3", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [912, 520, 0], "ix": 2 }, + "a": { "a": 0, "k": [916, 500, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "w": 1832, + "h": 1000, + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 22, + "ty": 0, + "nm": "South America", + "refId": "comp_4", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [916, 500, 0], "ix": 2 }, + "a": { "a": 0, "k": [916, 500, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "w": 1832, + "h": 1000, + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 23, + "ty": 0, + "nm": "North America", + "refId": "comp_5", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [917, 501, 0], "ix": 2 }, + "a": { "a": 0, "k": [916, 500, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "w": 1832, + "h": 1000, + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 24, + "ty": 0, + "nm": "Greenland", + "refId": "comp_6", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [916, 500, 0], "ix": 2 }, + "a": { "a": 0, "k": [916, 500, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "w": 1832, + "h": 1000, + "ip": 0, + "op": 1350, + "st": 0, + "bm": 0 + } + ], + "markers": [] +} diff --git a/static/js/impact/mapLight.json b/static/js/impact/mapLight.json index 2ab8a71386..cd56de5b56 100644 --- a/static/js/impact/mapLight.json +++ b/static/js/impact/mapLight.json @@ -188439,10 +188439,7 @@ "p": 3, "k": { "a": 0, - "k": [ - 0, 0.604, 0.322, 1, 0.375, 0.745, 0.31, 1, 0.751, 0.886, - 0.298, 1 - ], + "k": [0, 0.604, 0.322, 1, 0.375, 0.745, 0.31, 1, 0.751, 0.886, 0.298, 1], "ix": 8 } }, @@ -188572,10 +188569,7 @@ "p": 3, "k": { "a": 0, - "k": [ - 0, 0.604, 0.322, 1, 0.375, 0.745, 0.31, 1, 0.751, 0.886, - 0.298, 1 - ], + "k": [0, 0.604, 0.322, 1, 0.375, 0.745, 0.31, 1, 0.751, 0.886, 0.298, 1], "ix": 8 } }, @@ -188705,10 +188699,7 @@ "p": 3, "k": { "a": 0, - "k": [ - 0, 0.604, 0.322, 1, 0.375, 0.745, 0.31, 1, 0.751, 0.886, - 0.298, 1 - ], + "k": [0, 0.604, 0.322, 1, 0.375, 0.745, 0.31, 1, 0.751, 0.886, 0.298, 1], "ix": 8 } }, @@ -188838,10 +188829,7 @@ "p": 3, "k": { "a": 0, - "k": [ - 0, 0.604, 0.322, 1, 0.375, 0.745, 0.31, 1, 0.751, 0.886, - 0.298, 1 - ], + "k": [0, 0.604, 0.322, 1, 0.375, 0.745, 0.31, 1, 0.751, 0.886, 0.298, 1], "ix": 8 } }, @@ -188971,10 +188959,7 @@ "p": 3, "k": { "a": 0, - "k": [ - 0, 0.604, 0.322, 1, 0.375, 0.745, 0.31, 1, 0.751, 0.886, - 0.298, 1 - ], + "k": [0, 0.604, 0.322, 1, 0.375, 0.745, 0.31, 1, 0.751, 0.886, 0.298, 1], "ix": 8 } }, @@ -189104,10 +189089,7 @@ "p": 3, "k": { "a": 0, - "k": [ - 0, 0.604, 0.322, 1, 0.375, 0.745, 0.31, 1, 0.751, 0.886, - 0.298, 1 - ], + "k": [0, 0.604, 0.322, 1, 0.375, 0.745, 0.31, 1, 0.751, 0.886, 0.298, 1], "ix": 8 } }, diff --git a/static/js/interactive-tutorial.js b/static/js/interactive-tutorial.js index 6898fc9974..acac4a19c3 100644 --- a/static/js/interactive-tutorial.js +++ b/static/js/interactive-tutorial.js @@ -2,33 +2,34 @@ // Locale strings. TODO: maybe move these out to their own file. LOCALES = { - "en": { + en: { // Leave empty, use the keys provided (in English) by default }, - "ja": { - "Address:": "アドレス:", - "Secret:": "シード:", - "Balance:": "残高:", - "Complete all previous steps first": "前の手順をすべて完了して下さい", - "Connection to the XRP Ledger required": "XRP Ledgerの接続が必要です", - "Error:": "エラー:", - "Populated this page's examples with these credentials.": "このページの例にこのアドレスとシードを入力しました。", - "There was an error connecting to the Faucet. Please try again.": "テストネットワークFaucetにエラーが発生しました。もう一度試してください。", - "Connecting...": "接続しています...", - "Connection required": "接続が必要です", - "Connected": "接続されました", - "Faucet returned an error:": "テストネットワークFaucetがこのエラーを返しました:", - "Validated": "検証済み", - "Final Result:": "確定結果:", - "(Still pending...)": "(まだ未決…)", - "(None)": "(無)", - "Prepared transaction:": "準備済みトランザクション:", - "Failed to achieve consensus (final)": "検証済みレジャーには含まれません(決定結果)", - "Preliminary result:": "予備結果:", - "Unknown": "不明", - "Couldn't get a valid address/secret value. Check that the previous steps were completed successfully.": "有効なアドレスかシードの取得出来ませんでした。前の手順が完了しましたことを確認して下さい。", - "Transaction hash:": "トランザクションハッシュ:" - } + ja: { + 'Address:': 'アドレス:', + 'Secret:': 'シード:', + 'Balance:': '残高:', + 'Complete all previous steps first': '前の手順をすべて完了して下さい', + 'Connection to the XRP Ledger required': 'XRP Ledgerの接続が必要です', + 'Error:': 'エラー:', + "Populated this page's examples with these credentials.": 'このページの例にこのアドレスとシードを入力しました。', + 'There was an error connecting to the Faucet. Please try again.': 'テストネットワークFaucetにエラーが発生しました。もう一度試してください。', + 'Connecting...': '接続しています...', + 'Connection required': '接続が必要です', + Connected: '接続されました', + 'Faucet returned an error:': 'テストネットワークFaucetがこのエラーを返しました:', + Validated: '検証済み', + 'Final Result:': '確定結果:', + '(Still pending...)': '(まだ未決…)', + '(None)': '(無)', + 'Prepared transaction:': '準備済みトランザクション:', + 'Failed to achieve consensus (final)': '検証済みレジャーには含まれません(決定結果)', + 'Preliminary result:': '予備結果:', + Unknown: '不明', + "Couldn't get a valid address/secret value. Check that the previous steps were completed successfully.": + '有効なアドレスかシードの取得出来ませんでした。前の手順が完了しましたことを確認して下さい。', + 'Transaction hash:': 'トランザクションハッシュ:', + }, } /** @@ -39,13 +40,13 @@ LOCALES = { * key value if no translation is available. */ function tl(key) { - let current_locale = $("html").prop("lang").substring(0,2) + let current_locale = $('html').prop('lang').substring(0, 2) if (!(current_locale in LOCALES)) { console.warn("Interactive tutorials don't have translations for locale:", current_locale) - current_locale = "en" + current_locale = 'en' } let mesg = LOCALES[current_locale][key] - if (typeof mesg === "undefined") { + if (typeof mesg === 'undefined') { mesg = key } return mesg @@ -61,16 +62,18 @@ function tl(key) { * and with most non-alphanumeric characters removed. */ function idify(s) { - // s = s.replace(/[^\p{Alphabetic}\p{Mark}\p{Decimal_Number}\p{Connector_Punctuation}\p{Join_Control}]/gu, '').trim().toLowerCase() - s = s.replace(/([^\w]|[\s-])/gu, '').trim().toLowerCase() - s = s.replace(/[\s-]+/gu, '-') + // s = s.replace(/[^\p{Alphabetic}\p{Mark}\p{Decimal_Number}\p{Connector_Punctuation}\p{Join_Control}]/gu, '').trim().toLowerCase() + s = s + .replace(/([^\w]|[\s-])/gu, '') + .trim() + .toLowerCase() + s = s.replace(/[\s-]+/gu, '-') if (!s) { - s = "_"; + s = '_' } return s } - /** * Check whether a given step has been marked completed already. * @param {String} step_name The exact name of the step, as defined in the @@ -88,7 +91,7 @@ function is_complete(step_name) { * @return {Boolean} Whether or not this step has been marked complete. */ function is_complete_by_id(step_id) { - return $(".bc-"+step_id).hasClass("done") + return $('.bc-' + step_id).hasClass('done') } /** @@ -108,15 +111,19 @@ function complete_step(step_name) { * @param {String} step_id The slugified name of the step. */ function complete_step_by_id(step_id) { - $(".bc-"+step_id).removeClass("active").addClass("done") - $(".bc-"+step_id).next().removeClass("disabled").addClass("active") + $('.bc-' + step_id) + .removeClass('active') + .addClass('done') + $('.bc-' + step_id) + .next() + .removeClass('disabled') + .addClass('active') // Enable follow-up steps that require this step to be done first - const next_ui = $(`#interactive-${step_id}`).nextAll( - ".interactive-block").eq(0).find(".previous-steps-required") - next_ui.prop("title", "") - next_ui.prop("disabled", false) - next_ui.removeClass("disabled") + const next_ui = $(`#interactive-${step_id}`).nextAll('.interactive-block').eq(0).find('.previous-steps-required') + next_ui.prop('title', '') + next_ui.prop('disabled', false) + next_ui.removeClass('disabled') } /** @@ -127,7 +134,7 @@ function complete_step_by_id(step_id) { */ function get_block_id(jEl) { // Traverse up, then slice "interactive-" off the block's HTML ID - return jEl.closest(".interactive-block").prop("id").slice(12) + return jEl.closest('.interactive-block').prop('id').slice(12) } /** @@ -137,10 +144,10 @@ function get_block_id(jEl) { */ function pretty_print(j) { try { - return JSON.stringify(JSON.parse(j),null,2) + return JSON.stringify(JSON.parse(j), null, 2) } catch (e) { // probably already decoded JSON - return JSON.stringify(j,null,2) + return JSON.stringify(j, null, 2) } } @@ -149,10 +156,10 @@ function pretty_print(j) { * them an appropriate tooltip message. */ function disable_followup_steps() { - $(".previous-steps-required").prop("title", tl("Complete all previous steps first")) - $(".previous-steps-required").prop("disabled", true).addClass("disabled") - $(".connection-required").prop("title", tl("Conection to the XRP Ledger required")) - $(".connection-required").prop("disabled", true).addClass("disabled") + $('.previous-steps-required').prop('title', tl('Complete all previous steps first')) + $('.previous-steps-required').prop('disabled', true).addClass('disabled') + $('.connection-required').prop('title', tl('Conection to the XRP Ledger required')) + $('.connection-required').prop('disabled', true).addClass('disabled') } /** @@ -163,9 +170,10 @@ function disable_followup_steps() { * @param {String} message The HTML contents to put inside the message. */ function show_error(block, message) { - block.find(".output-area").html( - `<p class="devportal-callout warning"><strong>${tl("Error:")}</strong> - ${message}</p>`) + block.find('.output-area').html( + `<p class="devportal-callout warning"><strong>${tl('Error:')}</strong> + ${message}</p>`, + ) } /** @@ -176,57 +184,56 @@ function show_error(block, message) { * use the generated credentials instead of the placeholder EXAMPLE_ADDR and * EXAMPLE_SECRET. */ -var EXAMPLE_ADDR = "rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe" -var EXAMPLE_SECRET = "s████████████████████████████" +var EXAMPLE_ADDR = 'rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe' +var EXAMPLE_SECRET = 's████████████████████████████' function setup_generate_step() { - - $("#generate-creds-button").click( async (event) => { - const block = $(event.target).closest(".interactive-block") - block.find(".output-area").html("") - block.find(".loader").show() + $('#generate-creds-button').click(async (event) => { + const block = $(event.target).closest('.interactive-block') + block.find('.output-area').html('') + block.find('.loader').show() // Get faucet URL (Testnet/Devnet/etc.) - const faucet_url = $("#generate-creds-button").data("fauceturl") + const faucet_url = $('#generate-creds-button').data('fauceturl') try { - const wallet = xrpl.Wallet.generate("ed25519") + const wallet = xrpl.Wallet.generate('ed25519') const data = await call_faucet(faucet_url, wallet.address, event) - block.find(".loader").hide() - block.find(".output-area").html(`<div><strong>${tl("Address:")}</strong> + block.find('.loader').hide() + block.find('.output-area').html(`<div><strong>${tl('Address:')}</strong> <span id="use-address">${data.account.address}</span></div> - <div><strong>${tl("Secret:")}</strong> + <div><strong>${tl('Secret:')}</strong> <span id="use-secret">${wallet.seed}</span></div>`) if (data.balance) { - block.find(".output-area").append(`<div><strong>${tl("Balance:")}</strong> + block.find('.output-area').append(`<div><strong>${tl('Balance:')}</strong> ${data.balance} XRP</div>`) } // Automatically populate all examples in the page with the // generated credentials... - let creds_updated = false; - $("code span:contains('"+EXAMPLE_ADDR+"')").each( function() { + let creds_updated = false + $("code span:contains('" + EXAMPLE_ADDR + "')").each(function () { creds_updated = true let eltext = $(this).text() - $(this).text( eltext.replace(EXAMPLE_ADDR, data.account.address) ) + $(this).text(eltext.replace(EXAMPLE_ADDR, data.account.address)) }) - $("code span:contains('"+EXAMPLE_SECRET+"')").each( function() { + $("code span:contains('" + EXAMPLE_SECRET + "')").each(function () { creds_updated = true let eltext = $(this).text() - $(this).text( eltext.replace(EXAMPLE_SECRET, data.account.secret) ) + $(this).text(eltext.replace(EXAMPLE_SECRET, data.account.secret)) }) if (creds_updated) { - block.find(".output-area").append(`<p>${tl("Populated this page's examples with these credentials.")}</p>`) + block.find('.output-area').append(`<p>${tl("Populated this page's examples with these credentials.")}</p>`) } - complete_step("Generate") - - } catch(err) { - block.find(".loader").hide() - block.find(".output-area").html( - `<p class="devportal-callout warning"><strong>${tl("Error:")}</strong> - ${tl("There was an error connecting to the Faucet. Please try again.")} - </p>`) + complete_step('Generate') + } catch (err) { + block.find('.loader').hide() + block.find('.output-area').html( + `<p class="devportal-callout warning"><strong>${tl('Error:')}</strong> + ${tl('There was an error connecting to the Faucet. Please try again.')} + </p>`, + ) return } }) @@ -239,10 +246,12 @@ function setup_generate_step() { * @return {String, undefined} The address, if available, or undefined if not */ function get_address(event) { - const address = $("#use-address").text() + const address = $('#use-address').text() if (!address) { - const block = $(event.target).closest(".interactive-block") - if (!block.length) {return} + const block = $(event.target).closest('.interactive-block') + if (!block.length) { + return + } show_error(block, tl("Couldn't get a valid address/secret value. Check that the previous steps were completed successfully.")) } return address @@ -255,15 +264,19 @@ function get_address(event) { * @return {Wallet, undefined} The Wallet instance, if available, or undefined if not */ function get_wallet(event) { - const secret = $("#use-secret").text() + const secret = $('#use-secret').text() if (!secret) { - const block = $(event.target).closest(".interactive-block") - if (!block.length) {return} + const block = $(event.target).closest('.interactive-block') + if (!block.length) { + return + } show_error(block, tl("Couldn't get a valid address/secret value. Check that the previous steps were completed successfully.")) } if (secret == EXAMPLE_SECRET) { - const block = $(event.target).closest(".interactive-block") - if (!block.length) {return} + const block = $(event.target).closest('.interactive-block') + if (!block.length) { + return + } show_error(block, tl("Can't use the example secret here. Check that the previous steps were completed successfully.")) return } @@ -279,38 +292,38 @@ function get_wallet(event) { * */ async function call_faucet(faucet_url, destination, event) { // Future feature: support the Faucet's optional xrpAmount param - const block = $(event.target).closest(".interactive-block"); + const block = $(event.target).closest('.interactive-block') const tutorial_info = { path: window.location.pathname, button: event.target.id, - step: block.data("stepnumber"), - totalsteps: block.data("totalsteps"), - }; + step: block.data('stepnumber'), + totalsteps: block.data('totalsteps'), + } //pass in plain text instead of HEX- the API will encode. const memo = { data: JSON.stringify(tutorial_info, null, 0), - format: "application/json", // application/json + format: 'application/json', // application/json // The MemoType decodes to a URL that explains the format of this memo type: // https://github.com/XRPLF/xrpl-dev-portal/blob/master/tool/INTERACTIVE_TUTORIALS_README.md - type: "https://github.com/XRPLF/xrpl-dev-portal/blob/master/tool/INTERACTIVE_TUTORIALS_README.md", - }; + type: 'https://github.com/XRPLF/xrpl-dev-portal/blob/master/tool/INTERACTIVE_TUTORIALS_README.md', + } - const body = {}; - body["destination"] = destination; - body["memos"] = [memo]; + const body = {} + body['destination'] = destination + body['memos'] = [memo] const response = await fetch(faucet_url, { method: 'POST', headers: { - "Content-Type": "application/json; charset=utf-8" + 'Content-Type': 'application/json; charset=utf-8', }, - body: JSON.stringify(body) + body: JSON.stringify(body), }) const data = await response.json() if (!response.ok) { - throw `${tl("Faucet returned an error:")} ${data.error}` + throw `${tl('Faucet returned an error:')} ${data.error}` } return data } @@ -322,8 +335,7 @@ async function call_faucet(faucet_url, destination, event) { * scripts because the api instance (specific to the network) is instantiated * by the setup_connect_step() in this file, below. */ -window.after_connect = window.after_connect || []; - +window.after_connect = window.after_connect || [] /** * To be used with _snippets/interactive-tutorials/connect-step.md @@ -332,40 +344,40 @@ window.after_connect = window.after_connect || []; * Also adds an event to re-disable following steps if we get disconnected. */ function setup_connect_step() { - if (!$("#connect-button").length) { - console.debug("Connect step not included. Skipping related setup.") + if (!$('#connect-button').length) { + console.debug('Connect step not included. Skipping related setup.') return } - const ws_url = $("#connect-button").data("wsurl") + const ws_url = $('#connect-button').data('wsurl') if (!ws_url) { - console.error("Interactive Tutorial: WS URL not found. Did you set use_network?") + console.error('Interactive Tutorial: WS URL not found. Did you set use_network?') return } - const block = $("#connect-button").closest(".interactive-block"); + const block = $('#connect-button').closest('.interactive-block') api = new xrpl.Client(ws_url) - api.on('connected', async function() { - $("#connection-status").text(tl("Connected")) - $("#connect-button").prop("disabled", true) - block.find(".loader").hide() - $(".connection-required").prop("disabled", false) - $(".connection-required").prop("title", "") + api.on('connected', async function () { + $('#connection-status').text(tl('Connected')) + $('#connect-button').prop('disabled', true) + block.find('.loader').hide() + $('.connection-required').prop('disabled', false) + $('.connection-required').prop('title', '') // Subscribe to ledger close events - api.request({command: "subscribe", streams: ["ledger"]}) + api.request({ command: 'subscribe', streams: ['ledger'] }) - complete_step("Connect") + complete_step('Connect') }) api.on('disconnected', (code) => { - $("#connection-status").text( tl("Disconnected") +" ("+code+")" ) - $("#connect-button").prop("disabled", false) - $(".connection-required").prop("disabled", true) - $(".connection-required").prop("title", tl("Connection required")) + $('#connection-status').text(tl('Disconnected') + ' (' + code + ')') + $('#connect-button').prop('disabled', false) + $('.connection-required').prop('disabled', true) + $('.connection-required').prop('title', tl('Connection required')) disable_followup_steps() }) - $("#connect-button").click(async (event) => { - $("#connection-status").text( tl("Connecting...") ) - block.find(".loader").show() + $('#connect-button').click(async (event) => { + $('#connection-status').text(tl('Connecting...')) + block.find('.loader').show() await api.connect() for (const fn of after_connect) { @@ -384,58 +396,57 @@ function setup_connect_step() { * Requires xrpl.js to be loaded and instantiated as "api" first. */ function setup_wait_steps() { - const wait_steps = $(".wait-step") + const wait_steps = $('.wait-step') wait_steps.each(async (i, el) => { const wait_step = $(el) - const explorer_url = wait_step.data("explorerurl") - const status_box = wait_step.find(".tx-validation-status") + const explorer_url = wait_step.data('explorerurl') + const status_box = wait_step.find('.tx-validation-status') api.on('ledgerClosed', async (ledger) => { // Update the latest validated ledger index in this step's table - wait_step.find(".validated-ledger-version").text(ledger.ledger_index) - if (!status_box.data("status_pending")) { + wait_step.find('.validated-ledger-version').text(ledger.ledger_index) + if (!status_box.data('status_pending')) { // Before submission or after a final result. // Either way, nothing more to do here. return } - const transaction = wait_step.find(".waiting-for-tx").text().trim() - const min_ledger = parseInt(wait_step.find(".earliest-ledger-version").text()) - const max_ledger = parseInt(wait_step.find(".lastledgersequence").text()) + const transaction = wait_step.find('.waiting-for-tx').text().trim() + const min_ledger = parseInt(wait_step.find('.earliest-ledger-version').text()) + const max_ledger = parseInt(wait_step.find('.lastledgersequence').text()) let tx_response try { tx_response = await api.request({ - command: "tx", + command: 'tx', transaction, min_ledger, - max_ledger + max_ledger, }) if (tx_response.result.validated) { status_box.html( - `<th>${tl("Final Result:")}</th><td>${tx_response.result.meta.TransactionResult} + `<th>${tl('Final Result:')}</th><td>${tx_response.result.meta.TransactionResult} (<a href="${explorer_url}/transactions/${transaction}" - target="_blank">${tl("Validated")}</a>)</td>`) + target="_blank">${tl('Validated')}</a>)</td>`, + ) const step_id = get_block_id(wait_step) if (!is_complete_by_id(step_id)) { - status_box.data("status_pending", false) + status_box.data('status_pending', false) complete_step_by_id(step_id) } } else { status_box.html( - `<th>${tl("Final Result:")}</th> + `<th>${tl('Final Result:')}</th> <td><img class="throbber" src="/img/xrp-loader-96.png"> - ${tl("(Still pending...)")}</td>`) + ${tl('(Still pending...)')}</td>`, + ) } - - } catch(e) { - if (e.data.error == "txnNotFound" && e.data.searched_all) { - status_box.html( - `<th>${tl("Final Result:")}</th><td>${tl("Failed to achieve consensus (final)")}</td>`) + } catch (e) { + if (e.data.error == 'txnNotFound' && e.data.searched_all) { + status_box.html(`<th>${tl('Final Result:')}</th><td>${tl('Failed to achieve consensus (final)')}</td>`) } else { - status_box.html( - `<th>${tl("Final Result:")}</th><td>${tl("Unknown")}</td>`) + status_box.html(`<th>${tl('Final Result:')}</th><td>${tl('Unknown')}</td>`) } } }) // end 'ledger' event handler @@ -457,24 +468,21 @@ function setup_wait_steps() { async function activate_wait_step(step_name, prelim) { const step_id = idify(step_name) const wait_step = $(`#interactive-${step_id} .wait-step`) - const status_box = wait_step.find(".tx-validation-status") + const status_box = wait_step.find('.tx-validation-status') const tx_id = prelim.result.tx_json.hash - const lls = prelim.result.tx_json.LastLedgerSequence || tl("(None)") + const lls = prelim.result.tx_json.LastLedgerSequence || tl('(None)') - if (wait_step.find(".waiting-for-tx").text() == tx_id) { + if (wait_step.find('.waiting-for-tx').text() == tx_id) { // Re-submitting the same transaction? Don't update min_ledger. } else { - wait_step.find(".waiting-for-tx").text(tx_id) - wait_step.find(".earliest-ledger-version").text( - prelim.result.validated_ledger_index - ) + wait_step.find('.waiting-for-tx').text(tx_id) + wait_step.find('.earliest-ledger-version').text(prelim.result.validated_ledger_index) } - wait_step.find(".lastledgersequence").text(lls) - status_box.html("") - status_box.data("status_pending", true) + wait_step.find('.lastledgersequence').text(lls) + status_box.html('') + status_box.data('status_pending', true) } - /** * Get the hexadecimal ASCII representation of a string (must contain only * 7-bit ASCII characters). @@ -482,8 +490,8 @@ async function activate_wait_step(step_name, prelim) { * @return {String} The uppercase hexadecimal representation of the string. */ function text_to_hex(s) { - result = "" - for (let i=0; i<s.length; i++) { + result = '' + for (let i = 0; i < s.length; i++) { result += s.charCodeAt(i).toString(16) } return result.toUpperCase() @@ -500,29 +508,30 @@ function text_to_hex(s) { * added to them (in-place). */ function add_memo(event, tx_json) { - const block = $(event.target).closest(".interactive-block") + const block = $(event.target).closest('.interactive-block') const tutorial_info = { - "path": window.location.pathname, - "button": event.target.id, - "step": block.data("stepnumber"), - "totalsteps": block.data("totalsteps") + path: window.location.pathname, + button: event.target.id, + step: block.data('stepnumber'), + totalsteps: block.data('totalsteps'), } const memo = { - "Memo": { - "MemoData": text_to_hex(JSON.stringify(tutorial_info, null, 0)), - "MemoFormat": "6170706C69636174696F6E2F6A736F6E", // application/json + Memo: { + MemoData: text_to_hex(JSON.stringify(tutorial_info, null, 0)), + MemoFormat: '6170706C69636174696F6E2F6A736F6E', // application/json // The MemoType decodes to a URL that explains the format of this memo type: // https://github.com/XRPLF/xrpl-dev-portal/blob/master/tool/INTERACTIVE_TUTORIALS_README.md - "MemoType": "68747470733A2F2F6769746875622E636F6D2F5852504C462F7872706C2D6465762D706F7274616C2F626C6F622F6D61737465722F746F6F6C2F494E5445524143544956455F5455544F5249414C535F524541444D452E6D64" - } + MemoType: + '68747470733A2F2F6769746875622E636F6D2F5852504C462F7872706C2D6465762D706F7274616C2F626C6F622F6D61737465722F746F6F6C2F494E5445524143544956455F5455544F5249414C535F524541444D452E6D64', + }, } if (tx_json.Memos === undefined) { - tx_json["Memos"] = [memo] + tx_json['Memos'] = [memo] } else { - tx_json["Memos"].push(memo) + tx_json['Memos'].push(memo) } } @@ -547,29 +556,31 @@ function add_memo(event, tx_json) { * which was probably added by a "Get Credentials" step. */ async function generic_full_send(event, tx_json, wallet) { - const block = $(event.target).closest(".interactive-block") - const blob_selector = $(event.target).data("txBlobFrom") - const wait_step_name = $(event.target).data("waitStepName") - block.find(".output-area").html("") + const block = $(event.target).closest('.interactive-block') + const blob_selector = $(event.target).data('txBlobFrom') + const wait_step_name = $(event.target).data('waitStepName') + block.find('.output-area').html('') if (wallet === undefined) { wallet = get_wallet(event) } - if (!wallet) {return} + if (!wallet) { + return + } add_memo(event, tx_json) - block.find(".loader").show() + block.find('.loader').show() const prepared = await api.autofill(tx_json) - block.find(".output-area").append( - `<p>${tl("Prepared transaction:")}</p> - <pre><code>${pretty_print(prepared)}</code></pre>`) + block.find('.output-area').append( + `<p>${tl('Prepared transaction:')}</p> + <pre><code>${pretty_print(prepared)}</code></pre>`, + ) - const {tx_blob, hash} = wallet.sign(prepared) - block.find(".output-area").append( - `<p>${tl("Transaction hash:")} <code id="tx_id">${hash}</code></p>`) + const { tx_blob, hash } = wallet.sign(prepared) + block.find('.output-area').append(`<p>${tl('Transaction hash:')} <code id="tx_id">${hash}</code></p>`) - await do_submit(block, {"tx_blob": tx_blob}, wait_step_name) + await do_submit(block, { tx_blob: tx_blob }, wait_step_name) } /** @@ -586,11 +597,11 @@ async function generic_full_send(event, tx_json, wallet) { * click event handler. */ async function submit_handler(event) { - const block = $(event.target).closest(".interactive-block") - const blob_selector = $(event.target).data("txBlobFrom") - const wait_step_name = $(event.target).data("waitStepName") + const block = $(event.target).closest('.interactive-block') + const blob_selector = $(event.target).data('txBlobFrom') + const wait_step_name = $(event.target).data('waitStepName') const tx_blob = $(blob_selector).text() - do_submit(block, {tx_blob}, wait_step_name) + do_submit(block, { tx_blob }, wait_step_name) } /** @@ -604,41 +615,42 @@ async function submit_handler(event) { * _snippets/interactive-tutorials/wait-step.md */ async function do_submit(block, submit_opts, wait_step_name) { - block.find(".loader").show() + block.find('.loader').show() try { - submit_opts["command"] = "submit" + submit_opts['command'] = 'submit' const prelim_result = await api.request(submit_opts) - block.find(".output-area").append( - `<p>${tl("Preliminary result:")}</p> - <pre><code>${pretty_print(prelim_result)}</code></pre>`) + block.find('.output-area').append( + `<p>${tl('Preliminary result:')}</p> + <pre><code>${pretty_print(prelim_result)}</code></pre>`, + ) - block.find(".loader").hide() + block.find('.loader').hide() submit_step_id = get_block_id(block) complete_step_by_id(submit_step_id) - if (wait_step_name){ + if (wait_step_name) { activate_wait_step(wait_step_name, prelim_result) } return prelim_result - } catch(error) { - block.find(".loader").hide() + } catch (error) { + block.find('.loader').hide() show_error(block, error) } } async function show_log(block, msg) { - block.find(".output-area").append(msg) + block.find('.output-area').append(msg) } /** * Run callback only when the current route is loaded. */ function onCurrentRouteLoaded(callback) { - const currentPath = window.location.pathname; + const currentPath = window.location.pathname window.onRouteChange(() => { if (window.location.pathname === currentPath) { callback() } - }); + }) } window.onRouteChange(() => { diff --git a/static/js/jquery.autosize.input.min.js b/static/js/jquery.autosize.input.min.js index 370bbaae78..c82f2891a1 100644 --- a/static/js/jquery.autosize.input.min.js +++ b/static/js/jquery.autosize.input.min.js @@ -1 +1,65 @@ -var Plugins;(function(n){var t=function(){function n(n){typeof n=="undefined"&&(n=30);this.space=n}return n}(),i;n.AutosizeInputOptions=t;i=function(){function n(t,i){var r=this;this._input=$(t);this._options=$.extend({},n.getDefaultOptions(),i);this._mirror=$('<span style="position:absolute; top:-999px; left:0; white-space:pre;"/>');$.each(["fontFamily","fontSize","fontWeight","fontStyle","letterSpacing","textTransform","wordSpacing","textIndent"],function(n,t){r._mirror[0].style[t]=r._input.css(t)});$("body").append(this._mirror);this._input.on("keydown keyup input propertychange change",function(){r.update()});(function(){r.update()})()}return n.prototype.getOptions=function(){return this._options},n.prototype.update=function(){var n=this._input.val()||"",t;n!==this._mirror.text()&&(this._mirror.text(n),t=this._mirror.width()+this._options.space,this._input.width(t))},n.getDefaultOptions=function(){return this._defaultOptions},n.getInstanceKey=function(){return"autosizeInputInstance"},n._defaultOptions=new t,n}();n.AutosizeInput=i,function(t){var i="autosize-input",r=["text","password","search","url","tel","email","number"];t.fn.autosizeInput=function(u){return this.each(function(){if(this.tagName=="INPUT"&&t.inArray(this.type,r)>-1){var f=t(this);f.data(n.AutosizeInput.getInstanceKey())||(u==undefined&&(u=f.data(i)),f.data(n.AutosizeInput.getInstanceKey(),new n.AutosizeInput(this,u)))}})};t(function(){t("input[data-"+i+"]").autosizeInput()})}(jQuery)})(Plugins||(Plugins={})) \ No newline at end of file +var Plugins +;(function (n) { + var t = (function () { + function n(n) { + typeof n == 'undefined' && (n = 30) + this.space = n + } + return n + })(), + i + n.AutosizeInputOptions = t + i = (function () { + function n(t, i) { + var r = this + this._input = $(t) + this._options = $.extend({}, n.getDefaultOptions(), i) + this._mirror = $('<span style="position:absolute; top:-999px; left:0; white-space:pre;"/>') + $.each(['fontFamily', 'fontSize', 'fontWeight', 'fontStyle', 'letterSpacing', 'textTransform', 'wordSpacing', 'textIndent'], function (n, t) { + r._mirror[0].style[t] = r._input.css(t) + }) + $('body').append(this._mirror) + this._input.on('keydown keyup input propertychange change', function () { + r.update() + }) + ;(function () { + r.update() + })() + } + return ( + (n.prototype.getOptions = function () { + return this._options + }), + (n.prototype.update = function () { + var n = this._input.val() || '', + t + n !== this._mirror.text() && (this._mirror.text(n), (t = this._mirror.width() + this._options.space), this._input.width(t)) + }), + (n.getDefaultOptions = function () { + return this._defaultOptions + }), + (n.getInstanceKey = function () { + return 'autosizeInputInstance' + }), + (n._defaultOptions = new t()), + n + ) + })() + ;((n.AutosizeInput = i), + (function (t) { + var i = 'autosize-input', + r = ['text', 'password', 'search', 'url', 'tel', 'email', 'number'] + t.fn.autosizeInput = function (u) { + return this.each(function () { + if (this.tagName == 'INPUT' && t.inArray(this.type, r) > -1) { + var f = t(this) + f.data(n.AutosizeInput.getInstanceKey()) || + (u == undefined && (u = f.data(i)), f.data(n.AutosizeInput.getInstanceKey(), new n.AutosizeInput(this, u))) + } + }) + } + t(function () { + t('input[data-' + i + ']').autosizeInput() + }) + })(jQuery)) +})(Plugins || (Plugins = {})) diff --git a/static/js/jump-to-top.js b/static/js/jump-to-top.js index eab59e423d..486cbbfcb2 100644 --- a/static/js/jump-to-top.js +++ b/static/js/jump-to-top.js @@ -1,25 +1,24 @@ -$(document).ready(function() { - - var TO_TOP_MIN = 50; - var TO_TOP_SPEED = 500; - var TO_TOP_POS = 0; +$(document).ready(function () { + var TO_TOP_MIN = 50 + var TO_TOP_SPEED = 500 + var TO_TOP_POS = 0 $(window).scroll(function () { if ($(this).scrollTop() > TO_TOP_MIN) { - $('.jump-to-top').fadeIn(); + $('.jump-to-top').fadeIn() } else { - $('.jump-to-top').fadeOut(); + $('.jump-to-top').fadeOut() } - }); - $(".jump-to-top").click(function() { - $("html").animate({scrollTop: TO_TOP_POS}, TO_TOP_SPEED) - }); + }) + $('.jump-to-top').click(function () { + $('html').animate({ scrollTop: TO_TOP_POS }, TO_TOP_SPEED) + }) // TODO: put this somewhere better. // Code to make other menu items hide on mobile when we expand one - $("#topnav-pages .dropdown").on("show.bs.dropdown", (evt) => { - $("#top-main-nav").addClass("submenu-expanded") + $('#topnav-pages .dropdown').on('show.bs.dropdown', (evt) => { + $('#top-main-nav').addClass('submenu-expanded') }) - $("#topnav-pages .dropdown").on("hidden.bs.dropdown", (evt) => { - $("#top-main-nav").removeClass("submenu-expanded") + $('#topnav-pages .dropdown').on('hidden.bs.dropdown', (evt) => { + $('#top-main-nav').removeClass('submenu-expanded') }) -}); +}) diff --git a/static/js/multicodetab.js b/static/js/multicodetab.js index 1a0f743f06..9e358b8c26 100644 --- a/static/js/multicodetab.js +++ b/static/js/multicodetab.js @@ -46,71 +46,70 @@ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. */ -jQuery.fn.minitabs = function(speed,effect) { - - function saveToLocal(lang){ - window.localStorage.setItem('user-preferred-devlanguage', lang); +jQuery.fn.minitabs = function (speed, effect) { + function saveToLocal(lang) { + window.localStorage.setItem('user-preferred-devlanguage', lang) } - function setTabsToFirst(id){ - $(".multicode[id='"+id+"']" + ">DIV").hide(); - $(".multicode[id='"+id+"']" + ">UL>LI>A").removeClass("current"); - // - $(".multicode[id='"+id+"']" + ">DIV:first").show(); - $(".multicode[id='"+id+"']" + ">UL>LI>A:first").addClass("current"); - } - - function setTabsToLang(id, lang){ - $(".multicode[id='"+id+"']" + ">DIV").hide(); - $(".multicode[id='"+id+"']" + ">UL>LI>A").removeClass("current"); + function setTabsToFirst(id) { + $(".multicode[id='" + id + "']" + '>DIV').hide() + $(".multicode[id='" + id + "']" + '>UL>LI>A').removeClass('current') // - $(".multicode[id='"+id+"']" + ">UL>LI>A[class="+lang+"]").addClass("current"); - $(".multicode[id='"+id+"']" + ">DIV."+lang).show(); + $(".multicode[id='" + id + "']" + '>DIV:first').show() + $(".multicode[id='" + id + "']" + '>UL>LI>A:first').addClass('current') } - function showSelectedTabFromSaved(id){ - var savedValue = window.localStorage.getItem('user-preferred-devlanguage'); + function setTabsToLang(id, lang) { + $(".multicode[id='" + id + "']" + '>DIV').hide() + $(".multicode[id='" + id + "']" + '>UL>LI>A').removeClass('current') + // + $(".multicode[id='" + id + "']" + '>UL>LI>A[class=' + lang + ']').addClass('current') + $(".multicode[id='" + id + "']" + '>DIV.' + lang).show() + } - if(savedValue !== null) { - showSlectedTab(savedValue); - }else { - setTabsToFirst(id); + function showSelectedTabFromSaved(id) { + var savedValue = window.localStorage.getItem('user-preferred-devlanguage') + + if (savedValue !== null) { + showSlectedTab(savedValue) + } else { + setTabsToFirst(id) } } function showSlectedTab(lang) { - $('.multicode').each(function() { - var hasLang = false; - $(this).find(">UL>LI>A").each(function() { - if ($(this).attr('class') == lang ) { - hasLang = true; - } - }) + $('.multicode').each(function () { + var hasLang = false + $(this) + .find('>UL>LI>A') + .each(function () { + if ($(this).attr('class') == lang) { + hasLang = true + } + }) - if(hasLang) { - setTabsToLang($(this).attr('id'), lang); + if (hasLang) { + setTabsToLang($(this).attr('id'), lang) } else { - setTabsToFirst($(this).attr('id')); + setTabsToFirst($(this).attr('id')) } }) // save in localstorage. - saveToLocal(lang); + saveToLocal(lang) } - this.each(function() { - var id = "#" + $(this).attr('id') - //Use saved value or set to first tab - showSelectedTabFromSaved($(this).attr('id')); + this.each(function () { + var id = '#' + $(this).attr('id') + //Use saved value or set to first tab + showSelectedTabFromSaved($(this).attr('id')) - //Add click on each tab - $(id + ">UL>LI>A").click( - function(){ - if(!$(this).hasClass("current") ){ - showSlectedTab($(this).attr('class')) - } - return false; - } - ); - }); + //Add click on each tab + $(id + '>UL>LI>A').click(function () { + if (!$(this).hasClass('current')) { + showSlectedTab($(this).attr('class')) + } + return false + }) + }) } diff --git a/static/js/osano.js b/static/js/osano.js index a2eec33589..9dd5c591e8 100644 --- a/static/js/osano.js +++ b/static/js/osano.js @@ -1,15 +1,15 @@ -window.dataLayer = window.dataLayer || []; +window.dataLayer = window.dataLayer || [] function gtag() { - dataLayer.push(arguments); + dataLayer.push(arguments) } -gtag("consent", "default", { - ad_storage: "denied", - analytics_storage: "denied", - ad_user_data: "denied", - ad_personalization: "denied", - personalization_storage: "denied", - functionality_storage: "granted", - security_storage: "granted", +gtag('consent', 'default', { + ad_storage: 'denied', + analytics_storage: 'denied', + ad_user_data: 'denied', + ad_personalization: 'denied', + personalization_storage: 'denied', + functionality_storage: 'granted', + security_storage: 'granted', wait_for_update: 500, -}); -gtag("set", "ads_data_redaction", true); +}) +gtag('set', 'ads_data_redaction', true) diff --git a/static/js/rpc-tool.js b/static/js/rpc-tool.js index 1a253bd1d3..6faec70f5a 100644 --- a/static/js/rpc-tool.js +++ b/static/js/rpc-tool.js @@ -1,5 +1,5 @@ jQuery(function ($) { - const FULL_HISTORY_SERVER = "wss://s2.ripple.com" + const FULL_HISTORY_SERVER = 'wss://s2.ripple.com' const reTxId = /^[0-9A-Fa-f]{64}$/ const reLedgerSeq = /^[0-9]+$/ let currentTarget = null @@ -9,363 +9,379 @@ jQuery(function ($) { const api = new xrpl.Client(FULL_HISTORY_SERVER) - api.on('connected', () => { - const target = location.hash.slice(1); - if (xrpl.isValidAddress(target) || - reTxId.exec(target) || - reLedgerSeq.exec(target)) { - $('#target').val(target); - fetchTarget(target); + const target = location.hash.slice(1) + if (xrpl.isValidAddress(target) || reTxId.exec(target) || reLedgerSeq.exec(target)) { + $('#target').val(target) + fetchTarget(target) } }) - api.on('disconnected', (code) => console.warn("disconnected", code)); - api.connect(); - + api.on('disconnected', (code) => console.warn('disconnected', code)) + api.connect() $('#account-entry').submit(function (e) { e.preventDefault() - fetchTarget( $('#target').val() ) + fetchTarget($('#target').val()) }) - async function fetchTarget(target) - { - if (!api.isConnected()) return; + async function fetchTarget(target) { + if (!api.isConnected()) return // Reset - $("#links").show(); - $("#result").show(); - $("#result > .group").hide(); - $("#error").hide(); - $("#progress").show(); - $(".json").html(""); - $(".account-tx-more").parent().hide(); - $(".account-tx-back").parent().hide(); + $('#links').show() + $('#result').show() + $('#result > .group').hide() + $('#error').hide() + $('#progress').show() + $('.json').html('') + $('.account-tx-more').parent().hide() + $('.account-tx-back').parent().hide() - currentTarget = target; + currentTarget = target - let locationWithoutHash = location.protocol+'//'+location.hostname+(location.port?":"+location.port:"")+location.pathname+(location.search?location.search:""); - $("#permalink").attr("href", locationWithoutHash + "#" + target); - $("#explorerlink").attr("href", ""); // Reset + let locationWithoutHash = + location.protocol + + '//' + + location.hostname + + (location.port ? ':' + location.port : '') + + location.pathname + + (location.search ? location.search : '') + $('#permalink').attr('href', locationWithoutHash + '#' + target) + $('#explorerlink').attr('href', '') // Reset - if (xrpl.isValidAddress(target)) { // Account ------------------------------ - let account = target; + if (xrpl.isValidAddress(target)) { + // Account ------------------------------ + let account = target previousMarkers = [] nextMarker = undefined currentMarker = undefined - $("#explorerlink").attr("href", `https://livenet.xrpl.org/accounts/${account}`) + $('#explorerlink').attr('href', `https://livenet.xrpl.org/accounts/${account}`) - $("#result > .group-account").show(); + $('#result > .group-account').show() - $("#progress .progress-bar").css("width", "10%"); + $('#progress .progress-bar').css('width', '10%') try { - let command = "account_info" - let result = await api.request({command, account}) - $("#progress .progress-bar").css("width", "20%") + let command = 'account_info' + let result = await api.request({ command, account }) + $('#progress .progress-bar').css('width', '20%') console.log('account_info', result) - format(result, $("#account_info")) + format(result, $('#account_info')) - command = "account_lines" - result = await api.request({command, account}) - $("#progress .progress-bar").css("width", "40%") + command = 'account_lines' + result = await api.request({ command, account }) + $('#progress .progress-bar').css('width', '40%') console.log('account_lines', result) - format(result, $("#account_lines")) + format(result, $('#account_lines')) - result = await pagedAccountTx(account); - $("#progress .progress-bar").css("width", "60%"); + result = await pagedAccountTx(account) + $('#progress .progress-bar').css('width', '60%') - command = "account_objects" - result = await api.request({command, account}) - $("#progress .progress-bar").css("width", "80%"); - console.log('account_objects', result); - format(result, $("#account_objects")); + command = 'account_objects' + result = await api.request({ command, account }) + $('#progress .progress-bar').css('width', '80%') + console.log('account_objects', result) + format(result, $('#account_objects')) - $("#progress .progress-bar").css("width", "100%"); - $("#progress").fadeOut(); - - } catch(err) { + $('#progress .progress-bar').css('width', '100%') + $('#progress').fadeOut() + } catch (err) { handleError(err) - $("#progress .progress-bar").css("width", "100%"); - $("#progress").fadeOut(); + $('#progress .progress-bar').css('width', '100%') + $('#progress').fadeOut() } + } else if (reLedgerSeq.exec(target)) { + // Ledger --------------------------- + $('#result > .group-ledger').show() + $('#explorerlink').attr('href', `https://livenet.xrpl.org/ledgers/${target}`) - - - } else if (reLedgerSeq.exec(target)) { // Ledger --------------------------- - $("#result > .group-ledger").show(); - $("#explorerlink").attr("href", `https://livenet.xrpl.org/ledgers/${target}`) - - $("#progress .progress-bar").css("width", "10%"); + $('#progress .progress-bar').css('width', '10%') try { let result = await api.request({ - command: "ledger", + command: 'ledger', ledger_index: target, transactions: true, - expand: true + expand: true, }) - console.log('ledger', result.ledger); - format(result.ledger, $("#ledger_info")); - $("#progress .progress-bar").css("width", "100%"); - $("#progress").fadeOut(); - - } catch(err) { + console.log('ledger', result.ledger) + format(result.ledger, $('#ledger_info')) + $('#progress .progress-bar').css('width', '100%') + $('#progress').fadeOut() + } catch (err) { handleErr(err) - $("#progress .progress-bar").css("width", "100%"); - $("#progress").fadeOut(); + $('#progress .progress-bar').css('width', '100%') + $('#progress').fadeOut() } - - } else if (reTxId.exec(target)) { // Transaction --------------------------- - $("#result > .group-tx").show(); - $("#explorerlink").attr("href", `https://livenet.xrpl.org/transactions/${target}`) + } else if (reTxId.exec(target)) { + // Transaction --------------------------- + $('#result > .group-tx').show() + $('#explorerlink').attr('href', `https://livenet.xrpl.org/transactions/${target}`) try { - $("#progress .progress-bar").css("width", "10%"); + $('#progress .progress-bar').css('width', '10%') let result = await api.request({ - command: "tx", + command: 'tx', transaction: target, - binary: false + binary: false, }) - $("#progress .progress-bar").css("width", "100%"); - $("#progress").fadeOut(); - console.log('tx', result); - format(result, $("#tx_info")); - + $('#progress .progress-bar').css('width', '100%') + $('#progress').fadeOut() + console.log('tx', result) + format(result, $('#tx_info')) } catch (err) { - handleError(err); - $("#progress .progress-bar").css("width", "100%"); - $("#progress").fadeOut(); + handleError(err) + $('#progress .progress-bar').css('width', '100%') + $('#progress').fadeOut() } - - } else { // Unknown/Invalid ------------------------------------------------ - $("#links").hide(); - $("#progress").hide(); - handleError("Input is not a valid address or transaction hash"); + } else { + // Unknown/Invalid ------------------------------------------------ + $('#links').hide() + $('#progress').hide() + handleError('Input is not a valid address or transaction hash') } } $('.tx-expand').click(function () { - $("#tx_info .expanded").removeClass("expanded"); - $("#tx_info").find("ul > li").addClass("expanded"); - }); + $('#tx_info .expanded').removeClass('expanded') + $('#tx_info').find('ul > li').addClass('expanded') + }) $('.tx-collapse').click(function () { - $("#tx_info .expanded").removeClass("expanded"); - }); + $('#tx_info .expanded').removeClass('expanded') + }) $('.account-lines-expand').click(function () { - $("#account_lines .expanded").removeClass("expanded"); - $("#account_lines").find("ul > li").addClass("expanded"); - }); + $('#account_lines .expanded').removeClass('expanded') + $('#account_lines').find('ul > li').addClass('expanded') + }) $('.account-lines-collapse').click(function () { - $("#account_lines .expanded").removeClass("expanded"); - }); + $('#account_lines .expanded').removeClass('expanded') + }) $('.account-tx-expand-tx').click(function () { - $("#account_tx .expanded").removeClass("expanded"); - $("#account_tx").find("> ul > li").addClass("expanded").find("> ul > li").addClass("expanded").find("> ul > li span.name:contains(tx)").parent().addClass("expanded"); - }); + $('#account_tx .expanded').removeClass('expanded') + $('#account_tx') + .find('> ul > li') + .addClass('expanded') + .find('> ul > li') + .addClass('expanded') + .find('> ul > li span.name:contains(tx)') + .parent() + .addClass('expanded') + }) $('.account-tx-expand').click(function () { - $("#account_tx .expanded").removeClass("expanded"); - $("#account_tx").find("ul > li").addClass("expanded"); - }); + $('#account_tx .expanded').removeClass('expanded') + $('#account_tx').find('ul > li').addClass('expanded') + }) $('.account-tx-collapse').click(function () { - $("#account_tx .expanded").removeClass("expanded"); - }); + $('#account_tx .expanded').removeClass('expanded') + }) $('.account-tx-more').click(function () { - $("#account_tx").text("... loading ..."); - pagedAccountTx(currentTarget, "next"); - }); + $('#account_tx').text('... loading ...') + pagedAccountTx(currentTarget, 'next') + }) $('.account-tx-back').click(function () { - $("#account_tx").text("... loading ..."); - pagedAccountTx(currentTarget, "prev"); - }); + $('#account_tx').text('... loading ...') + pagedAccountTx(currentTarget, 'prev') + }) $('.account-objects-expand').click(function () { - $("#account_objects .expanded").removeClass("expanded"); - $("#account_objects").find("ul > li").addClass("expanded"); - }); + $('#account_objects .expanded').removeClass('expanded') + $('#account_objects').find('ul > li').addClass('expanded') + }) $('.account-objects-collapse').click(function () { - $("#account_objects .expanded").removeClass("expanded"); - }); + $('#account_objects .expanded').removeClass('expanded') + }) $('.ledger-expand-tx').click(function () { - $("#ledger_info .expanded").removeClass("expanded"); - $("#ledger_info").find("> ul > li").addClass("expanded").find("> ul > li").addClass("expanded").find("> ul > li span.name:contains(tx)").parent().addClass("expanded"); - }); + $('#ledger_info .expanded').removeClass('expanded') + $('#ledger_info') + .find('> ul > li') + .addClass('expanded') + .find('> ul > li') + .addClass('expanded') + .find('> ul > li span.name:contains(tx)') + .parent() + .addClass('expanded') + }) $('.ledger-expand').click(function () { - $("#ledger_info .expanded").removeClass("expanded"); - $("#ledger_info").find("ul > li").addClass("expanded"); - }); + $('#ledger_info .expanded').removeClass('expanded') + $('#ledger_info').find('ul > li').addClass('expanded') + }) $('.ledger-collapse').click(function () { - $("#ledger_info .expanded").removeClass("expanded"); - }); + $('#ledger_info .expanded').removeClass('expanded') + }) - $('pre.json').delegate(".toggle", "click", function (evt) { - $(this).parent().toggleClass("expanded"); - }); + $('pre.json').delegate('.toggle', 'click', function (evt) { + $(this).parent().toggleClass('expanded') + }) function handleError(err) { - console.error(err); - if ("string" === typeof err) { - $("#error").show().text(err); - } else if ("object" === typeof err) { - if (err.error === "remoteError" && - "object" === typeof err.remote) - { + console.error(err) + if ('string' === typeof err) { + $('#error').show().text(err) + } else if ('object' === typeof err) { + if (err.error === 'remoteError' && 'object' === typeof err.remote) { // TODO: is this "remoteError" thing still valid with xrpl.js 2.x+? - err = err.remote; + err = err.remote } if (err.error_message) { - $("#error").show().text(err.error_message); + $('#error').show().text(err.error_message) } else if (err.error) { - $("#error").show().text(err.error); + $('#error').show().text(err.error) } else { - $("#error").show().text(err.toString()); + $('#error').show().text(err.toString()) } } } async function pagedAccountTx(account, page) { let opts = { - "command": "account_tx", - "account": account, - "ledger_index_min": -1, - "ledger_index_max": -1, - "binary": false, - "limit": 20, - "forward": false + command: 'account_tx', + account: account, + ledger_index_min: -1, + ledger_index_max: -1, + binary: false, + limit: 20, + forward: false, } - if (page === "prev") { + if (page === 'prev') { let prev_marker = previousMarkers.pop() if (prev_marker) { - opts["marker"] = prev_marker + opts['marker'] = prev_marker } // omit to ask for page 1 currentMarker = prev_marker - } else if (page === "next") { - opts["marker"] = nextMarker + } else if (page === 'next') { + opts['marker'] = nextMarker if (currentMarker) { previousMarkers.push(currentMarker) } - currentMarker = opts["marker"] + currentMarker = opts['marker'] } let result = await api.request(opts) console.log('account_tx', result) - format(result, $("#account_tx").empty()) + format(result, $('#account_tx').empty()) updateTxMarkerNav(result) - } function updateTxMarkerNav(result) { if (currentMarker) { - $(".account-tx-back").parent().show() + $('.account-tx-back').parent().show() } else { - $(".account-tx-back").parent().hide() + $('.account-tx-back').parent().hide() } if (result.marker) { nextMarker = result.marker - $(".account-tx-more").parent().show() + $('.account-tx-more').parent().show() } else { - $(".account-tx-more").parent().hide() + $('.account-tx-more').parent().hide() } } - String.prototype.repeat = function(times) { - return (new Array(times + 1)).join(this); - }; + String.prototype.repeat = function (times) { + return new Array(times + 1).join(this) + } function format(v, ct, depth) { - depth = depth || 0; + depth = depth || 0 switch (typeof v) { - case "object": - let el = null - let sub = null - if (Array.isArray(v)) { - ct.append("["); - for (var i = 0; i < v.length; i++) { - if (!sub) { - $('<a class="toggle"></a>').appendTo(ct); - $('<span class="ellipsis"></span>') - .text(getEllipText(v.length)).appendTo(ct); - el = $("<ul></ul>"); - } else sub.append(","); - sub = $("<li></li>").addClass("type-" + typeof v[i]); - sub.append("\u00A0".repeat(2 + depth*2)); - format(v[i], sub, depth + 1); - sub.appendTo(el); + case 'object': + let el = null + let sub = null + if (Array.isArray(v)) { + ct.append('[') + for (var i = 0; i < v.length; i++) { + if (!sub) { + $('<a class="toggle"></a>').appendTo(ct) + $('<span class="ellipsis"></span>').text(getEllipText(v.length)).appendTo(ct) + el = $('<ul></ul>') + } else sub.append(',') + sub = $('<li></li>').addClass('type-' + typeof v[i]) + sub.append('\u00A0'.repeat(2 + depth * 2)) + format(v[i], sub, depth + 1) + sub.appendTo(el) + } + if (el) { + el.appendTo(ct) + $('<span class="indentafter"></span>') + .text('\u00A0'.repeat(depth * 2)) + .appendTo(ct) + } + ct.append(']') + } else { + ct.append('{') + for (var i in v) { + if (!sub) { + $('<a class="toggle"></a>').appendTo(ct) + $('<span class="ellipsis"></span>').text(getEllipText(v)).appendTo(ct) + el = $('<ul></ul>') + } else sub.append(',') + sub = $('<li></li>').addClass('type-' + typeof v[i]) + sub.append('\u00A0'.repeat(2 + depth * 2)) + $('<span></span>').addClass('name').text(i).appendTo(sub) + $('<span></span>').addClass('sep').text(' : ').appendTo(sub) + format(v[i], sub, depth + 1) + sub.appendTo(el) + } + if (el) { + el.appendTo(ct) + $('<span class="indentafter"></span>') + .text('\u00A0'.repeat(depth * 2)) + .appendTo(ct) + } + ct.append('}') } - if (el) { - el.appendTo(ct); - $('<span class="indentafter"></span>').text("\u00A0".repeat(depth*2)).appendTo(ct); - } - ct.append("]"); - } else { - ct.append("{"); - for (var i in v) { - if (!sub) { - $('<a class="toggle"></a>').appendTo(ct); - $('<span class="ellipsis"></span>') - .text(getEllipText(v)).appendTo(ct); - el = $("<ul></ul>"); - } else sub.append(","); - sub = $("<li></li>").addClass("type-" + typeof v[i]); - sub.append("\u00A0".repeat(2 + depth*2)); - $("<span></span>").addClass('name').text(i).appendTo(sub); - $("<span></span>").addClass('sep').text(" : ").appendTo(sub); - format(v[i], sub, depth + 1); - sub.appendTo(el); - } - if (el) { - el.appendTo(ct); - $('<span class="indentafter"></span>').text("\u00A0".repeat(depth*2)).appendTo(ct); - } - ct.append("}"); - } - break; - case "string": - $("<span></span>").addClass('val').text('"'+v+'"').appendTo(ct); - break; - case "number": - $("<span></span>").addClass('val').text(""+v).appendTo(ct); - break; - case "boolean": - $("<span></span>").addClass('val').text(v ? "true" : "false").appendTo(ct); - break; + break + case 'string': + $('<span></span>') + .addClass('val') + .text('"' + v + '"') + .appendTo(ct) + break + case 'number': + $('<span></span>') + .addClass('val') + .text('' + v) + .appendTo(ct) + break + case 'boolean': + $('<span></span>') + .addClass('val') + .text(v ? 'true' : 'false') + .appendTo(ct) + break } } - const TYPE_IDENTIFYING_KEYS = [ - "TransactionType", - "LedgerEntryType" - ] + const TYPE_IDENTIFYING_KEYS = ['TransactionType', 'LedgerEntryType'] function getEllipText(contents) { - var label = "..."; - if ("number" === typeof contents) { + var label = '...' + if ('number' === typeof contents) { // Array - just list how many items - label = "" + contents + " items"; + label = '' + contents + ' items' } else { // Object - list keys intelligently - label = ""; + label = '' let i = 0 // Look for type-identifying keys first: for (const key of TYPE_IDENTIFYING_KEYS) { if (key in contents) { - label += contents[key]+": " + label += contents[key] + ': ' i++ - break; // Only one type-identifying key per object + break // Only one type-identifying key per object } } // Now list other keys as space permits @@ -377,15 +393,15 @@ jQuery(function ($) { // Skip type-identifying keys already printed continue } - label += k + ", " + label += k + ', ' i++ } if (i < Object.keys(contents).length) { - label += "..." + label += '...' } else { - label = label.slice(0,-2) // Remove the last ", " + label = label.slice(0, -2) // Remove the last ", " } } - return "\u00A0/* "+label+" */\u00A0"; + return '\u00A0/* ' + label + ' */\u00A0' } -}); +}) diff --git a/static/js/theme-switch.js b/static/js/theme-switch.js index 7801fb4707..713c6a4602 100644 --- a/static/js/theme-switch.js +++ b/static/js/theme-switch.js @@ -2,46 +2,46 @@ // Based loosely on https://github.com/vinorodrigues/bootstrap-dark function apply_color_scheme(theme) { - const disable_theme = (theme == "dark") ? "light" : "dark"; + const disable_theme = theme == 'dark' ? 'light' : 'dark' document.documentElement.classList.add(theme) document.documentElement.classList.remove(disable_theme) - document.documentElement.setAttribute("data-theme", theme) + document.documentElement.setAttribute('data-theme', theme) // $("#css-toggle-btn").prop( "checked", (theme == 'dark') ); } function auto_update_theme() { const upc = window.localStorage.getItem('user-prefers-color') - let theme = "dark"; // Default to dark theme + let theme = 'dark' // Default to dark theme if (!upc) { // User hasn't saved a preference specifically for this site; check // the browser-level preferences. - if (window.matchMedia && - window.matchMedia("(prefers-color-scheme: light)").matches) { - theme = "light" + if (window.matchMedia && window.matchMedia('(prefers-color-scheme: light)').matches) { + theme = 'light' } - } else { // Follow user's saved setting. - theme = (upc == "light") ? "light" : "dark" + } else { + // Follow user's saved setting. + theme = upc == 'light' ? 'light' : 'dark' } apply_color_scheme(theme) } function user_toggle_theme() { - const new_theme = document.documentElement.classList.contains("dark") ? "light" : "dark" - window.localStorage.setItem("user-prefers-color", new_theme) + const new_theme = document.documentElement.classList.contains('dark') ? 'light' : 'dark' + window.localStorage.setItem('user-prefers-color', new_theme) // Animate this style switch, but not the ones that happen on page load: - document.body.style.transition = "background-color .2s ease" + document.body.style.transition = 'background-color .2s ease' apply_color_scheme(new_theme) } auto_update_theme() // update automatically if the user's theme preference changes if (window.matchMedia) { - window.matchMedia("(prefers-color-scheme: dark)").addListener( auto_update_theme ) + window.matchMedia('(prefers-color-scheme: dark)').addListener(auto_update_theme) } // Note: .addListener is considered deprecated, and is supposed to be updated to // addEventListener("change", callback) instead; however, as recently as macOS // High Sierra (~2017-2018) Safari does not support addEventListener here. window.addEventListener('DOMContentLoaded', (event) => { - document.getElementById("css-toggle-btn").onclick = user_toggle_theme + document.getElementById('css-toggle-btn').onclick = user_toggle_theme }) diff --git a/static/js/tutorials/create-amm.js b/static/js/tutorials/create-amm.js index abed7beebe..7cac9509f0 100644 --- a/static/js/tutorials/create-amm.js +++ b/static/js/tutorials/create-amm.js @@ -2,272 +2,296 @@ // 2. Connect // The code for these steps is handled by interactive-tutorial.js onCurrentRouteLoaded(() => { + const EXPLORER = $('#connect-button').data('explorer') - const EXPLORER = $("#connect-button").data("explorer") + $('#get-foo').click(async (event) => { + const block = $(event.target).closest('.interactive-block') + const wallet = get_wallet(event) + if (!wallet) { + return + } - $("#get-foo").click( async (event) => { - const block = $(event.target).closest(".interactive-block") - const wallet = get_wallet(event) - if (!wallet) {return} + const currency_code = 'FOO' + const issue_quantity = '1000' - const currency_code = "FOO" - const issue_quantity = "1000" + block.find('.loader').show() + show_log(block, '<p>Funding an issuer address with the faucet...</p>') + const issuer = (await api.fundWallet()).wallet + show_log(block, `<p>Got issuer <span id="issuer-address" data-seed="${issuer.seed}">${issuer.address}</span>.</p>`) + $('.foo-issuer').text(issuer.address) // Update display in the "Create AMM" step - block.find(".loader").show() - show_log(block, "<p>Funding an issuer address with the faucet...</p>") - const issuer = (await api.fundWallet()).wallet - show_log(block, `<p>Got issuer <span id="issuer-address" data-seed="${issuer.seed}">${issuer.address}</span>.</p>`) - $(".foo-issuer").text(issuer.address) // Update display in the "Create AMM" step + // Enable issuer DefaultRipple ---------------------------------------------- + const issuer_setup_tx = { + TransactionType: 'AccountSet', + Account: issuer.address, + SetFlag: xrpl.AccountSetAsfFlags.asfDefaultRipple, + } + add_memo(event, issuer_setup_tx) + const issuer_setup_result = await api.submitAndWait(issuer_setup_tx, { autofill: true, wallet: issuer }) + if (issuer_setup_result.result.meta.TransactionResult == 'tesSUCCESS') { + show_log(block, `<p><a href="${EXPLORER}/transactions/${issuer_setup_result.result.hash}">✅ Issuer DefaultRipple enabled</a></p>`) + } else { + show_error(block, `Error sending transaction: <pre><code>${pretty_print(issuer_setup_result)}</code></pre>`) + } - // Enable issuer DefaultRipple ---------------------------------------------- - const issuer_setup_tx = { - "TransactionType": "AccountSet", - "Account": issuer.address, - "SetFlag": xrpl.AccountSetAsfFlags.asfDefaultRipple + // Create trust line to issuer ---------------------------------------------- + const trust_tx = { + TransactionType: 'TrustSet', + Account: wallet.address, + LimitAmount: { + currency: currency_code, + issuer: issuer.address, + value: '10000000000', // Large limit, arbitrarily chosen + }, + } + add_memo(event, trust_tx) + const trust_result = await api.submitAndWait(trust_tx, { autofill: true, wallet: wallet }) + if (trust_result.result.meta.TransactionResult == 'tesSUCCESS') { + show_log(block, `<p><a href="${EXPLORER}/transactions/${trust_result.result.hash}">✅ Trust line created</a></p>`) + } else { + show_error(block, `Error sending transaction: <pre><code>${pretty_print(trust_result)}</code></pre>`) + } + + // Issue tokens ------------------------------------------------------------- + const issue_tx = { + TransactionType: 'Payment', + Account: issuer.address, + Amount: { + currency: currency_code, + value: issue_quantity, + issuer: issuer.address, + }, + Destination: wallet.address, + } + add_memo(event, issue_tx) + const issue_result = await api.submitAndWait(issue_tx, { autofill: true, wallet: issuer }) + if (issue_result.result.meta.TransactionResult == 'tesSUCCESS') { + show_log(block, `<p><a href="${EXPLORER}/transactions/${issue_result.result.hash}">✅ Tokens issued</a></p>`) + $('#get-foo').data('foo-acquired', true).prop('disabled', true).addClass('disabled').addClass('done') + } else { + show_error(block, `Error sending transaction: <pre><code>${pretty_print(issue_result)}</code></pre>`) + } + block.find('.loader').hide() + + if ($('#get-foo').data('foo-acquired') && $('#buy-tst').data('tst-acquired')) { + complete_step('Acquire tokens') + } + }) + + $('#buy-tst').click(async (event) => { + const block = $(event.target).closest('.interactive-block') + const wallet = get_wallet(event) + if (!wallet) { + return + } + block.find('.loader').show() + + const tx_json = { + TransactionType: 'OfferCreate', + Account: wallet.address, + TakerPays: { + currency: 'TST', + issuer: 'rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd', + value: '25', + }, + TakerGets: xrpl.xrpToDrops(25 * 10 * 1.16), + } + add_memo(event, tx_json) + + const offer_result = await api.submitAndWait(tx_json, { autofill: true, wallet: wallet }) + + if (offer_result.result.meta.TransactionResult == 'tesSUCCESS') { + show_log(block, `<p><a href="${EXPLORER}/transactions/${offer_result.result.hash}">✅ TST offer placed</a></p>`) + const balance_changes = xrpl.getBalanceChanges(offer_result.result.meta) + for (const bc of balance_changes) { + if (bc.account != wallet.address) { + continue } - add_memo(event, issuer_setup_tx) - const issuer_setup_result = await api.submitAndWait(issuer_setup_tx, {autofill: true, wallet: issuer} ) - if (issuer_setup_result.result.meta.TransactionResult == "tesSUCCESS") { - show_log(block, `<p><a href="${EXPLORER}/transactions/${issuer_setup_result.result.hash}">✅ Issuer DefaultRipple enabled</a></p>`) - } else { - show_error(block, `Error sending transaction: <pre><code>${pretty_print(issuer_setup_result)}</code></pre>`) - } - - // Create trust line to issuer ---------------------------------------------- - const trust_tx = { - "TransactionType": "TrustSet", - "Account": wallet.address, - "LimitAmount": { - "currency": currency_code, - "issuer": issuer.address, - "value": "10000000000" // Large limit, arbitrarily chosen - } - } - add_memo(event, trust_tx) - const trust_result = await api.submitAndWait(trust_tx, {autofill: true, wallet: wallet}) - if (trust_result.result.meta.TransactionResult == "tesSUCCESS") { - show_log(block, `<p><a href="${EXPLORER}/transactions/${trust_result.result.hash}">✅ Trust line created</a></p>`) - } else { - show_error(block, `Error sending transaction: <pre><code>${pretty_print(trust_result)}</code></pre>`) - } - - // Issue tokens ------------------------------------------------------------- - const issue_tx = { - "TransactionType": "Payment", - "Account": issuer.address, - "Amount": { - "currency": currency_code, - "value": issue_quantity, - "issuer": issuer.address - }, - "Destination": wallet.address - } - add_memo(event, issue_tx) - const issue_result = await api.submitAndWait(issue_tx, {autofill: true, wallet: issuer}) - if (issue_result.result.meta.TransactionResult == "tesSUCCESS") { - show_log(block, `<p><a href="${EXPLORER}/transactions/${issue_result.result.hash}">✅ Tokens issued</a></p>`) - $("#get-foo").data("foo-acquired", true).prop("disabled", true).addClass("disabled").addClass("done") - } else { - show_error(block, `Error sending transaction: <pre><code>${pretty_print(issue_result)}</code></pre>`) - } - block.find(".loader").hide() - - if ($("#get-foo").data("foo-acquired") && $("#buy-tst").data("tst-acquired")) { - complete_step("Acquire tokens") - } - }) - - $("#buy-tst").click( async (event) => { - const block = $(event.target).closest(".interactive-block") - const wallet = get_wallet(event) - if (!wallet) {return} - block.find(".loader").show() - - const tx_json = { - "TransactionType": "OfferCreate", - "Account": wallet.address, - "TakerPays": { - currency: "TST", - issuer: "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd", - value: "25" - }, - "TakerGets": xrpl.xrpToDrops(25*10*1.16) - } - add_memo(event, tx_json) - - const offer_result = await api.submitAndWait(tx_json, {autofill: true, wallet: wallet}) - - if (offer_result.result.meta.TransactionResult == "tesSUCCESS") { - show_log(block, `<p><a href="${EXPLORER}/transactions/${offer_result.result.hash}">✅ TST offer placed</a></p>`) - const balance_changes = xrpl.getBalanceChanges(offer_result.result.meta) - for (const bc of balance_changes) { - if (bc.account != wallet.address) {continue} - for (const bal of bc.balances) { - if (bal.currency == "TST") { - show_log(block, `<p>Got <strong>${bal.value}</strong> ${bal.currency}.${bal.issuer}.</p>`) - break - } - } + for (const bal of bc.balances) { + if (bal.currency == 'TST') { + show_log(block, `<p>Got <strong>${bal.value}</strong> ${bal.currency}.${bal.issuer}.</p>`) break - } - $("#buy-tst").data("tst-acquired", true).prop("disabled", true).addClass("disabled").addClass("done") - } else { - show_error(block, `<p>Transaction failed:</p><pre><code>${pretty_print(offer_result)}</code></pre>`) + } } - block.find(".loader").hide() + break + } + $('#buy-tst').data('tst-acquired', true).prop('disabled', true).addClass('disabled').addClass('done') + } else { + show_error(block, `<p>Transaction failed:</p><pre><code>${pretty_print(offer_result)}</code></pre>`) + } + block.find('.loader').hide() - if ($("#get-foo").data("foo-acquired") && $("#buy-tst").data("tst-acquired")) { - complete_step("Acquire tokens") - } - }) + if ($('#get-foo').data('foo-acquired') && $('#buy-tst').data('tst-acquired')) { + complete_step('Acquire tokens') + } + }) - $("#check-for-amm").click( async (event) => { - const block = $(event.target).closest(".interactive-block") - const foo_issuer_address = $("#issuer-address").text() + $('#check-for-amm').click(async (event) => { + const block = $(event.target).closest('.interactive-block') + const foo_issuer_address = $('#issuer-address').text() - block.find(".output-area").html("") - block.find(".loader").show() - try { - const amm_info = await api.request({ - "command": "amm_info", - "asset": { - "currency": "TST", - "issuer": "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd" - }, - "asset2": { - "currency": "FOO", - "issuer": foo_issuer_address - }, - "ledger_index": "validated" - }) - show_log(block, `<pre><code>${pretty_print}amm_info</code></pre>`) - } catch(err) { - if (err.data.error === 'actNotFound') { - show_log(block, `<p>✅ No AMM exists yet for the pair + block.find('.output-area').html('') + block.find('.loader').show() + try { + const amm_info = await api.request({ + command: 'amm_info', + asset: { + currency: 'TST', + issuer: 'rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd', + }, + asset2: { + currency: 'FOO', + issuer: foo_issuer_address, + }, + ledger_index: 'validated', + }) + show_log(block, `<pre><code>${pretty_print}amm_info</code></pre>`) + } catch (err) { + if (err.data.error === 'actNotFound') { + show_log( + block, + `<p>✅ No AMM exists yet for the pair FOO.${foo_issuer_address} / - TST.rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd.`) - complete_step("Check for AMM") - } else { - show_error(block, err) - } - } - block.find(".loader").hide() - }) + TST.rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd.`, + ) + complete_step('Check for AMM') + } else { + show_error(block, err) + } + } + block.find('.loader').hide() + }) - $("#look-up-ammcreate-cost").click( async (event) => { - const block = $(event.target).closest(".interactive-block") - block.find(".loader").show() - let amm_fee_drops = "5000000" - try { - const ss = await api.request({"command": "server_state"}) - amm_fee_drops = ss.result.state.validated_ledger.reserve_inc.toString() - show_log(block, `<p>Current AMMCreate transaction cost: ${xrpl.dropsToXrp(amm_fee_drops)} XRP (<span id="ammcreate-cost-drops">${amm_fee_drops}</span> drops)</p>`) - complete_step("Look up AMMCreate cost") - } catch(err) { - show_error(block, `Error looking up AMMCreate tx cost: ${err}`) - } - block.find(".loader").hide() - }) + $('#look-up-ammcreate-cost').click(async (event) => { + const block = $(event.target).closest('.interactive-block') + block.find('.loader').show() + let amm_fee_drops = '5000000' + try { + const ss = await api.request({ command: 'server_state' }) + amm_fee_drops = ss.result.state.validated_ledger.reserve_inc.toString() + show_log( + block, + `<p>Current AMMCreate transaction cost: ${xrpl.dropsToXrp(amm_fee_drops)} XRP (<span id="ammcreate-cost-drops">${amm_fee_drops}</span> drops)</p>`, + ) + complete_step('Look up AMMCreate cost') + } catch (err) { + show_error(block, `Error looking up AMMCreate tx cost: ${err}`) + } + block.find('.loader').hide() + }) - $("#create-amm").click( async (event) => { - const block = $(event.target).closest(".interactive-block") - const wallet = get_wallet(event) - if (!wallet) {return} + $('#create-amm').click(async (event) => { + const block = $(event.target).closest('.interactive-block') + const wallet = get_wallet(event) + if (!wallet) { + return + } - amm_fee_drops = $("#ammcreate-cost-drops").text() - if (!amm_fee_drops) {return} + amm_fee_drops = $('#ammcreate-cost-drops').text() + if (!amm_fee_drops) { + return + } - block.find(".output-area").html("") - block.find(".loader").show() + block.find('.output-area').html('') + block.find('.loader').show() - const asset_amount = $("#asset-amount").val() - const asset2_amount = $("#asset2-amount").val() - const asset2_issuer_address = $("#issuer-address").text() - const trading_fee = Math.floor($("#trading-fee").val()*1000) // Convert from % + const asset_amount = $('#asset-amount').val() + const asset2_amount = $('#asset2-amount').val() + const asset2_issuer_address = $('#issuer-address').text() + const trading_fee = Math.floor($('#trading-fee').val() * 1000) // Convert from % - const ammcreate_tx = { - "TransactionType": "AMMCreate", - "Account": wallet.address, - "Amount": { - currency: "TST", - issuer: "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd", - value: asset_amount - }, - "Amount2": { - "currency": "FOO", - "issuer": asset2_issuer_address, - "value": asset2_amount - }, - "TradingFee": 500, // 0.5% - "Fee": amm_fee_drops - } - add_memo(event, ammcreate_tx) - const ammcreate_result = await api.submitAndWait(ammcreate_tx, {autofill: true, wallet: wallet, fail_hard: true}) - if (ammcreate_result.result.meta.TransactionResult == "tesSUCCESS") { - show_log(block, `<p><a href="${EXPLORER}/transactions/${ammcreate_result.result.hash}">AMM created</a>:</p> - <pre><code>${pretty_print(ammcreate_result)}</code></pre>`) - complete_step("Create AMM") - } else { - console.error(ammcreate_result) - show_error(block, `Error sending transaction: ${ammcreate_result.result.meta.TransactionResult}`) - } - block.find(".loader").hide() - }) + const ammcreate_tx = { + TransactionType: 'AMMCreate', + Account: wallet.address, + Amount: { + currency: 'TST', + issuer: 'rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd', + value: asset_amount, + }, + Amount2: { + currency: 'FOO', + issuer: asset2_issuer_address, + value: asset2_amount, + }, + TradingFee: 500, // 0.5% + Fee: amm_fee_drops, + } + add_memo(event, ammcreate_tx) + const ammcreate_result = await api.submitAndWait(ammcreate_tx, { autofill: true, wallet: wallet, fail_hard: true }) + if (ammcreate_result.result.meta.TransactionResult == 'tesSUCCESS') { + show_log( + block, + `<p><a href="${EXPLORER}/transactions/${ammcreate_result.result.hash}">AMM created</a>:</p> + <pre><code>${pretty_print(ammcreate_result)}</code></pre>`, + ) + complete_step('Create AMM') + } else { + console.error(ammcreate_result) + show_error(block, `Error sending transaction: ${ammcreate_result.result.meta.TransactionResult}`) + } + block.find('.loader').hide() + }) - $("#check-amm-info").click( async (event) => { - const block = $(event.target).closest(".interactive-block") - const foo_issuer_address = $("#issuer-address").text() + $('#check-amm-info').click(async (event) => { + const block = $(event.target).closest('.interactive-block') + const foo_issuer_address = $('#issuer-address').text() - block.find(".output-area").html("") - block.find(".loader").show() - try { - const amm_info = await api.request({ - "command": "amm_info", - "asset": { - "currency": "TST", - "issuer": "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd" - }, - "asset2": { - "currency": "FOO", - "issuer": foo_issuer_address - }, - "ledger_index": "validated" - }) - show_log(block, `<p><strong>AMM Info:</strong><pre><code>${pretty_print(amm_info)}</code></pre>`) - const lp_token = amm_info.result.amm.lp_token - show_log(block, `<p>The AMM account <strong>${lp_token.issuer}</strong> has <strong>${lp_token.value}</strong> total - LP tokens outstanding, and uses the currency code <code>${lp_token.currency}</code>.</p>`) - const amount = amm_info.result.amm.amount - const amount2 = amm_info.result.amm.amount2 - show_log(block, `<p>In its pool, the AMM holds <strong>${amount.value} ${amount.currency}.${amount.issuer}</strong> - and <strong>${amount2.value} ${amount2.currency}.${amount2.issuer}</strong></p>`) - complete_step("Check AMM info") - } catch(err) { - show_error(block, err) - } - block.find(".loader").hide() - }) + block.find('.output-area').html('') + block.find('.loader').show() + try { + const amm_info = await api.request({ + command: 'amm_info', + asset: { + currency: 'TST', + issuer: 'rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd', + }, + asset2: { + currency: 'FOO', + issuer: foo_issuer_address, + }, + ledger_index: 'validated', + }) + show_log(block, `<p><strong>AMM Info:</strong><pre><code>${pretty_print(amm_info)}</code></pre>`) + const lp_token = amm_info.result.amm.lp_token + show_log( + block, + `<p>The AMM account <strong>${lp_token.issuer}</strong> has <strong>${lp_token.value}</strong> total + LP tokens outstanding, and uses the currency code <code>${lp_token.currency}</code>.</p>`, + ) + const amount = amm_info.result.amm.amount + const amount2 = amm_info.result.amm.amount2 + show_log( + block, + `<p>In its pool, the AMM holds <strong>${amount.value} ${amount.currency}.${amount.issuer}</strong> + and <strong>${amount2.value} ${amount2.currency}.${amount2.issuer}</strong></p>`, + ) + complete_step('Check AMM info') + } catch (err) { + show_error(block, err) + } + block.find('.loader').hide() + }) - $("#check-trust-lines").click( async (event) => { - const block = $(event.target).closest(".interactive-block") - const address = get_address() - if (!address) {return} - - block.find(".output-area").html("") - block.find(".loader").show() - try { - const account_lines = await api.request({ - "command": "account_lines", - "account": address, - "ledger_index": "validated" - }) - show_log(block, `<p><strong>Trust lines:</strong><pre><code>${pretty_print(account_lines)}</code></pre>`) - complete_step("Check trust lines") - } catch(err) { - show_error(block, err) - } - block.find(".loader").hide() - }) + $('#check-trust-lines').click(async (event) => { + const block = $(event.target).closest('.interactive-block') + const address = get_address() + if (!address) { + return + } + block.find('.output-area').html('') + block.find('.loader').show() + try { + const account_lines = await api.request({ + command: 'account_lines', + account: address, + ledger_index: 'validated', + }) + show_log(block, `<p><strong>Trust lines:</strong><pre><code>${pretty_print(account_lines)}</code></pre>`) + complete_step('Check trust lines') + } catch (err) { + show_error(block, err) + } + block.find('.loader').hide() + }) }) - diff --git a/static/js/tutorials/enable-no-freeze.js b/static/js/tutorials/enable-no-freeze.js index e0819282f6..866e6199b2 100644 --- a/static/js/tutorials/enable-no-freeze.js +++ b/static/js/tutorials/enable-no-freeze.js @@ -2,22 +2,23 @@ // 2. Connect // The code for these steps is handled by interactive-tutorial.js onCurrentRouteLoaded(() => { - // 3. Send AccountSet -------------------------------------------------------- - $("#send-accountset").click( async (event) => { - const block = $(event.target).closest(".interactive-block") + $('#send-accountset').click(async (event) => { + const block = $(event.target).closest('.interactive-block') const address = get_address(event) - if (!address) {return} + if (!address) { + return + } try { await generic_full_send(event, { - "TransactionType": "AccountSet", - "Account": address, - "SetFlag": xrpl.AccountSetAsfFlags.asfNoFreeze + TransactionType: 'AccountSet', + Account: address, + SetFlag: xrpl.AccountSetAsfFlags.asfNoFreeze, }) - complete_step("Send AccountSet") - } catch(err) { - block.find(".loader").hide() + complete_step('Send AccountSet') + } catch (err) { + block.find('.loader').hide() show_error(block, err) } }) @@ -26,34 +27,36 @@ onCurrentRouteLoaded(() => { // generic full send in the previous step. ----------------------------------- // 5. Confirm Account Settings ----------------------------------------------- - $("#confirm-settings").click( async (event) => { - const block = $(event.target).closest(".interactive-block") + $('#confirm-settings').click(async (event) => { + const block = $(event.target).closest('.interactive-block') const address = get_address(event) - if (!address) {return} + if (!address) { + return + } - block.find(".output-area").html("") - block.find(".loader").show() + block.find('.output-area').html('') + block.find('.loader').show() const account_info = await api.request({ - "command": "account_info", - "account": address, - "ledger_index": "validated" + command: 'account_info', + account: address, + ledger_index: 'validated', }) console.log(account_info) const flags = xrpl.parseAccountRootFlags(account_info.result.account_data.Flags) - block.find(".loader").hide() + block.find('.loader').hide() - block.find(".output-area").append( - `<p>Got settings for address ${address}:</p> - <pre><code>${pretty_print(flags)}</code></pre>`) + block.find('.output-area').append( + `<p>Got settings for address ${address}:</p> + <pre><code>${pretty_print(flags)}</code></pre>`, + ) if (flags.lsfNoFreeze) { - block.find(".output-area").append(`<p><i class="fa fa-check-circle"></i> + block.find('.output-area').append(`<p><i class="fa fa-check-circle"></i> No Freeze flag is enabled.</p>`) } else { - block.find(".output-area").append(`<p><i class="fa fa-times-circle"></i> + block.find('.output-area').append(`<p><i class="fa fa-times-circle"></i> No Freeze flag is DISABLED.</p>`) } - complete_step("Confirm Settings") + complete_step('Confirm Settings') }) - }) diff --git a/static/js/tutorials/enact-global-freeze.js b/static/js/tutorials/enact-global-freeze.js index 52ad267ea8..33aa722a03 100644 --- a/static/js/tutorials/enact-global-freeze.js +++ b/static/js/tutorials/enact-global-freeze.js @@ -2,35 +2,36 @@ // 2. Connect // The code for these steps is handled by interactive-tutorial.js onCurrentRouteLoaded(() => { - // 3. Send AccountSet to Start the Freeze ------------------------------------ // also 6. Send AccountSet to End the Freeze. - $(".send-accountset").click( async (event) => { - const block = $(event.target).closest(".interactive-block") + $('.send-accountset').click(async (event) => { + const block = $(event.target).closest('.interactive-block') const address = get_address(event) - if (!address) {return} + if (!address) { + return + } let astx = { - "TransactionType": "AccountSet", - "Account": address + TransactionType: 'AccountSet', + Account: address, } let step_name - if ($(event.target).data("action") === "start_freeze") { - astx["SetFlag"] = xrpl.AccountSetAsfFlags.asfGlobalFreeze - step_name = "Send AccountSet (Start Freeze)" - } else if ($(event.target).data("action") === "end_freeze") { - astx["ClearFlag"] = xrpl.AccountSetAsfFlags.asfGlobalFreeze - step_name = "Send AccountSet (End Freeze)" + if ($(event.target).data('action') === 'start_freeze') { + astx['SetFlag'] = xrpl.AccountSetAsfFlags.asfGlobalFreeze + step_name = 'Send AccountSet (Start Freeze)' + } else if ($(event.target).data('action') === 'end_freeze') { + astx['ClearFlag'] = xrpl.AccountSetAsfFlags.asfGlobalFreeze + step_name = 'Send AccountSet (End Freeze)' } else { - show_error(block, "There was an error with this tutorial: the button clicked must have data-action defined.") + show_error(block, 'There was an error with this tutorial: the button clicked must have data-action defined.') } try { - block.find(".loader").show() + block.find('.loader').show() await generic_full_send(event, astx) complete_step(step_name) - } catch(err) { - block.find(".loader").hide() + } catch (err) { + block.find('.loader').hide() show_error(block, err) } }) @@ -39,34 +40,37 @@ onCurrentRouteLoaded(() => { // generic full send in the previous step. ----------------------------------- // 5. Confirm Account Settings ----------------------------------------------- - $("#confirm-settings").click( async (event) => { - const block = $(event.target).closest(".interactive-block") + $('#confirm-settings').click(async (event) => { + const block = $(event.target).closest('.interactive-block') const address = get_address(event) - if (!address) {return} + if (!address) { + return + } - block.find(".output-area").html("") - block.find(".loader").show() + block.find('.output-area').html('') + block.find('.loader').show() const account_info = await api.request({ - "command": "account_info", - "account": address, - "ledger_index": "validated" + command: 'account_info', + account: address, + ledger_index: 'validated', }) console.log(account_info) const flags = xrpl.parseAccountRootFlags(account_info.result.account_data.Flags) - block.find(".loader").hide() + block.find('.loader').hide() - block.find(".output-area").append( - `<p>Got settings for address ${address}:</p> - <pre><code>${pretty_print(flags)}</code></pre>`) + block.find('.output-area').append( + `<p>Got settings for address ${address}:</p> + <pre><code>${pretty_print(flags)}</code></pre>`, + ) if (flags.lsfGlobalFreeze) { - block.find(".output-area").append(`<p><i class="fa fa-check-circle"></i> + block.find('.output-area').append(`<p><i class="fa fa-check-circle"></i> Global Freeze flag is enabled.</p>`) } else { - block.find(".output-area").append(`<p><i class="fa fa-times-circle"></i> + block.find('.output-area').append(`<p><i class="fa fa-times-circle"></i> Global Freeze flag is DISABLED.</p>`) } - complete_step("Confirm Settings") + complete_step('Confirm Settings') }) // 6. Send AccountSet to End the Freeze: same handler as step 3. @@ -74,35 +78,36 @@ onCurrentRouteLoaded(() => { // 7. Wait for Validation: handled by generic full send as before. // 8. Confirm Account Settings (Freeze Ended) - $("#confirm-settings-end").click( async (event) => { - const block = $(event.target).closest(".interactive-block") + $('#confirm-settings-end').click(async (event) => { + const block = $(event.target).closest('.interactive-block') const address = get_address(event) - if (!address) {return} + if (!address) { + return + } - block.find(".output-area").html("") - block.find(".loader").show() + block.find('.output-area').html('') + block.find('.loader').show() const account_info = await api.request({ - "command": "account_info", - "account": address, - "ledger_index": "validated" + command: 'account_info', + account: address, + ledger_index: 'validated', }) console.log(account_info) const flags = xrpl.parseAccountRootFlags(account_info.result.account_data.Flags) - block.find(".loader").hide() + block.find('.loader').hide() - block.find(".output-area").append( - `<p>Got settings for address ${address}:</p> - <pre><code>${pretty_print(flags)}</code></pre>`) + block.find('.output-area').append( + `<p>Got settings for address ${address}:</p> + <pre><code>${pretty_print(flags)}</code></pre>`, + ) if (flags.lsfGlobalFreeze) { - block.find(".output-area").append(`<p><i class="fa fa-times-circle"></i> + block.find('.output-area').append(`<p><i class="fa fa-times-circle"></i> Global Freeze is ENABLED (still active).</p>`) } else { - block.find(".output-area").append(`<p><i class="fa fa-check-circle"></i> + block.find('.output-area').append(`<p><i class="fa fa-check-circle"></i> Global Freeze Tag is disabled.</p>`) } - complete_step("Confirm Settings") + complete_step('Confirm Settings') }) - - }) diff --git a/static/js/tutorials/freeze-individual-line.js b/static/js/tutorials/freeze-individual-line.js index 368ac09f97..a8b7b8fb9e 100644 --- a/static/js/tutorials/freeze-individual-line.js +++ b/static/js/tutorials/freeze-individual-line.js @@ -1,20 +1,22 @@ // 1. Generate // 2. Connect // The code for these steps is handled by interactive-tutorial.js -const CURRENCY_TO_FREEZE = "FOO" +const CURRENCY_TO_FREEZE = 'FOO' // Helper to get a Wallet instance for the peer wallet function get_peer_wallet(event) { let peer_seed try { - peer_seed = $("#peer-seed").val() - } catch(e) { + peer_seed = $('#peer-seed').val() + } catch (e) { show_error(block, err) return } if (!peer_seed) { - const block = $(event.target).closest(".interactive-block") - if (!block.length) {return} + const block = $(event.target).closest('.interactive-block') + if (!block.length) { + return + } show_error(block, "Couldn't get information on the peer account. Check that the previous steps were completed successfully.") return } @@ -22,108 +24,116 @@ function get_peer_wallet(event) { } let trust_line_setup_done = false -window.after_connect = window.after_connect || []; +window.after_connect = window.after_connect || [] window.after_connect.push(async () => { // 2.5. One-time setup on connect to create an incoming trust line after // the "api" instance has been created by the connect handler. - if (trust_line_setup_done) {return} // Don't repeat if we disconnect/reconnect - console.log("Setting up an incoming trust line so our test address has something to freeze...") - $("#trust-line-setup-loader").show() + if (trust_line_setup_done) { + return + } // Don't repeat if we disconnect/reconnect + console.log('Setting up an incoming trust line so our test address has something to freeze...') + $('#trust-line-setup-loader').show() const address = get_address() const peer = (await api.fundWallet()).wallet const tx_json = { - "TransactionType": "TrustSet", - "Account": peer.address, - "LimitAmount": { - "currency": CURRENCY_TO_FREEZE, - "issuer": address, - "value": "123456.789" // arbitrary limit - } + TransactionType: 'TrustSet', + Account: peer.address, + LimitAmount: { + currency: CURRENCY_TO_FREEZE, + issuer: address, + value: '123456.789', // arbitrary limit + }, } try { - const submitted = await api.submitAndWait(tx_json, {wallet: peer}) - console.log("Set up incoming trust line result:", submitted) - } catch(e) { - const block = $("#trust-line-setup-loader").closest(".interactive-block") + const submitted = await api.submitAndWait(tx_json, { wallet: peer }) + console.log('Set up incoming trust line result:', submitted) + } catch (e) { + const block = $('#trust-line-setup-loader').closest('.interactive-block') show_err(block, e) - $("#trust-line-setup-loader").hide() + $('#trust-line-setup-loader').hide() return } - $("#trust-line-setup-loader").hide() - $("#look-up-trust-lines").prop("disabled", false).prop("title", "") - $("#peer-seed").val(peer.seed) + $('#trust-line-setup-loader').hide() + $('#look-up-trust-lines').prop('disabled', false).prop('title', '') + $('#peer-seed').val(peer.seed) trust_line_setup_done = true }) onCurrentRouteLoaded(() => { - - - // 3. Choose Trust Line ------------------------------------------------------ - $("#look-up-trust-lines").click( async (event) => { - const block = $(event.target).closest(".interactive-block") - block.find(".output-area").html("") + $('#look-up-trust-lines').click(async (event) => { + const block = $(event.target).closest('.interactive-block') + block.find('.output-area').html('') const address = get_address(event) - if (!address) {return} + if (!address) { + return + } const peer = get_peer_wallet(event) - if (!peer) {return} + if (!peer) { + return + } - block.find(".loader-looking").show() + block.find('.loader-looking').show() let account_lines try { account_lines = await api.request({ - "command": "account_lines", - "account": address, - "peer": peer.address, - "ledger_index": "validated" + command: 'account_lines', + account: address, + peer: peer.address, + ledger_index: 'validated', }) - } catch(err) { + } catch (err) { show_error(block, err) } - block.find(".loader-looking").hide() - block.find(".output-area").append( + block.find('.loader-looking').hide() + block.find('.output-area').append( `<p>Found trust line(s) between ${address} and ${peer.address}:</p> <pre><code>${pretty_print(account_lines.result.lines)}</code></pre> - <p>Choosing ${CURRENCY_TO_FREEZE} trust line.</p>`) - complete_step("Choose Trust Line") + <p>Choosing ${CURRENCY_TO_FREEZE} trust line.</p>`, + ) + complete_step('Choose Trust Line') }) // 4. Send TrustSet to Freeze ------------------------------------------------ // also 7. Send TrustSet to End the Freeze - $(".send-trustset").click( async (event) => { - const block = $(event.target).closest(".interactive-block") + $('.send-trustset').click(async (event) => { + const block = $(event.target).closest('.interactive-block') const address = get_address(event) - if (!address) {return} + if (!address) { + return + } const peer = get_peer_wallet(event) - if (!peer) {return} + if (!peer) { + return + } let tstx = { - "TransactionType": "TrustSet", - "Account": address, - "LimitAmount": { - "currency": CURRENCY_TO_FREEZE, - "issuer": peer.address, - "value": "0" - } + TransactionType: 'TrustSet', + Account: address, + LimitAmount: { + currency: CURRENCY_TO_FREEZE, + issuer: peer.address, + value: '0', + }, } let step_name - if ($(event.target).data("action") === "start_freeze") { - tstx["Flags"] = xrpl.TrustSetFlags.tfSetFreeze - step_name = "Send TrustSet to Freeze" - } else if ($(event.target).data("action") === "end_freeze") { - tstx["Flags"] = xrpl.TrustSetFlags.tfClearFreeze - step_name = "Send TrustSet to End Freeze" + if ($(event.target).data('action') === 'start_freeze') { + tstx['Flags'] = xrpl.TrustSetFlags.tfSetFreeze + step_name = 'Send TrustSet to Freeze' + } else if ($(event.target).data('action') === 'end_freeze') { + tstx['Flags'] = xrpl.TrustSetFlags.tfClearFreeze + step_name = 'Send TrustSet to End Freeze' } else { - show_error(block, "There was an error with this tutorial: the button clicked must have data-action defined.") + show_error(block, 'There was an error with this tutorial: the button clicked must have data-action defined.') } try { await generic_full_send(event, tstx) complete_step(step_name) - } catch(err) { - block.find(".loader").hide() + } catch (err) { + block.find('.loader').hide() show_error(block, err) } }) @@ -132,39 +142,44 @@ onCurrentRouteLoaded(() => { // generic full send in the previous step. ----------------------------------- // 6. Check Trust Line Freeze Status - $("#confirm-settings").click( async (event) => { - const block = $(event.target).closest(".interactive-block") + $('#confirm-settings').click(async (event) => { + const block = $(event.target).closest('.interactive-block') const address = get_address(event) - if (!address) {return} + if (!address) { + return + } const peer = get_peer_wallet(event) - if (!peer) {return} + if (!peer) { + return + } - block.find(".output-area").html("") - block.find(".loader").show() + block.find('.output-area').html('') + block.find('.loader').show() const account_lines = await api.request({ - "command": "account_lines", - "account": address, - "peer": peer.address, - "ledger_index": "validated" + command: 'account_lines', + account: address, + peer: peer.address, + ledger_index: 'validated', }) console.log(account_lines) - block.find(".loader").hide() + block.find('.loader').hide() const trustlines = account_lines.result.lines for (let i = 0; i < trustlines.length; i++) { - if(trustlines[i].currency === CURRENCY_TO_FREEZE) { + if (trustlines[i].currency === CURRENCY_TO_FREEZE) { const line = trustlines[i] - block.find(".output-area").append( - `<p>Status of ${CURRENCY_TO_FREEZE} line between ${address} and ${peer.address}:</p> - <pre><code>${pretty_print(line)}</code></pre>`) + block.find('.output-area').append( + `<p>Status of ${CURRENCY_TO_FREEZE} line between ${address} and ${peer.address}:</p> + <pre><code>${pretty_print(line)}</code></pre>`, + ) if (line.freeze === true) { - block.find(".output-area").append(`<p><i class="fa fa-check-circle"></i> + block.find('.output-area').append(`<p><i class="fa fa-check-circle"></i> Line is frozen.`) } else { - block.find(".output-area").append(`<p><i class="fa fa-times-circle"></i> + block.find('.output-area').append(`<p><i class="fa fa-times-circle"></i> Line is NOT FROZEN.</p>`) } - complete_step("Check Freeze Status") + complete_step('Check Freeze Status') return } } @@ -173,5 +188,4 @@ onCurrentRouteLoaded(() => { }) // 7. Send TrustSet to End the Freeze: same handler as step 4 - }) diff --git a/static/js/tutorials/issue-a-token.js b/static/js/tutorials/issue-a-token.js index ff63145653..48fe0de0fe 100644 --- a/static/js/tutorials/issue-a-token.js +++ b/static/js/tutorials/issue-a-token.js @@ -2,34 +2,33 @@ // This version generates two sets of creds, one for the issuer and one for // the hot wallet / receiver -const EXAMPLE_COLD_ADDR = "rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe" -const EXAMPLE_COLD_SECRET = "sIss█████████████████████████" +const EXAMPLE_COLD_ADDR = 'rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe' +const EXAMPLE_COLD_SECRET = 'sIss█████████████████████████' function setup_2x_generate_step() { - - $("#generate-2x-creds-button").click( async (event) => { - const block = $(event.target).closest(".interactive-block") - block.find(".output-area").html("") - block.find(".loader").show() + $('#generate-2x-creds-button').click(async (event) => { + const block = $(event.target).closest('.interactive-block') + block.find('.output-area').html('') + block.find('.loader').show() // Get faucet URL (Testnet/Devnet/etc.) - const faucet_url = $("#generate-2x-creds-button").data("fauceturl") + const faucet_url = $('#generate-2x-creds-button').data('fauceturl') try { // destination not defined - API will create account. - const data = await call_faucet(faucet_url,undefined, event) + const data = await call_faucet(faucet_url, undefined, event) const data2 = await call_faucet(faucet_url, undefined, event) - block.find(".loader").hide() - block.find(".output-area").html(`<div class="row"> + block.find('.loader').hide() + block.find('.output-area').html(`<div class="row"> <div class="col-xl-6 p-3"> - <div><strong>${tl("Cold Address:")}</strong> + <div><strong>${tl('Cold Address:')}</strong> <span id="cold-use-address">${data.account.address}</span></div> - <div><strong>${tl("Cold Secret:")}</strong> + <div><strong>${tl('Cold Secret:')}</strong> <span id="cold-use-secret">${data.seed}</span></div> </div> <div class="col-xl-6 p-3"> - <div><strong>${tl("Hot Address:")}</strong> + <div><strong>${tl('Hot Address:')}</strong> <span id="hot-use-address">${data2.account.address}</span></div> - <div><strong>${tl("Hot Secret:")}</strong> + <div><strong>${tl('Hot Secret:')}</strong> <span id="hot-use-secret">${data2.seed}</span></div> </div> </div>`) @@ -47,15 +46,15 @@ function setup_2x_generate_step() { // // block.find(".output-area").append(`<p>${tl("Populated this page's examples with these credentials.")}</p>`) - complete_step("Generate") - - } catch(err) { + complete_step('Generate') + } catch (err) { console.error(err) - block.find(".loader").hide() - block.find(".output-area").html( - `<p class="devportal-callout warning"><strong>${tl("Error:")}</strong> - ${tl("There was an error connecting to the Faucet. Please try again.")} - </p>`) + block.find('.loader').hide() + block.find('.output-area').html( + `<p class="devportal-callout warning"><strong>${tl('Error:')}</strong> + ${tl('There was an error connecting to the Faucet. Please try again.')} + </p>`, + ) return } }) @@ -65,8 +64,10 @@ function get_wallet_2(event, which_one) { // which_one should be either "cold" or "hot" (case-sensitive) const secret = $(`#${which_one}-use-secret`).text() if (!secret) { - const block = $(event.target).closest(".interactive-block") - if (!block.length) {return} + const block = $(event.target).closest('.interactive-block') + if (!block.length) { + return + } show_error(block, tl("Couldn't get a valid address/secret value. Check that the previous steps were completed successfully.")) } return xrpl.Wallet.fromSeed(secret) @@ -76,8 +77,8 @@ function get_wallet_2(event, which_one) { // Note: if the provided string isn't compatible with 7-bit ASCII, this won't // work. So if you want to use an IDN, you'd need to convert to punycode first. function domain_to_hex(s) { - result = "" - for (let i=0; i<s.length; i++) { + result = '' + for (let i = 0; i < s.length; i++) { result += s.charCodeAt(i).toString(16) } return result.toUpperCase() @@ -86,249 +87,243 @@ function domain_to_hex(s) { onCurrentRouteLoaded(() => { setup_2x_generate_step() - $("#cold-domain-text").keyup( (event) => { - $("#cold-domain-hex").text(domain_to_hex($("#cold-domain-text").val())) + $('#cold-domain-text').keyup((event) => { + $('#cold-domain-hex').text(domain_to_hex($('#cold-domain-text').val())) }) - $("#hot-domain-text").keyup( (event) => { - $("#hot-domain-hex").text(domain_to_hex($("#hot-domain-text").val())) + $('#hot-domain-text').keyup((event) => { + $('#hot-domain-hex').text(domain_to_hex($('#hot-domain-text').val())) }) function update_currency_code(event) { let currency_code - if ($("#use-std-code").prop("checked")) { - const std_code = $("#currency-code-std") + if ($('#use-std-code').prop('checked')) { + const std_code = $('#currency-code-std') currency_code = std_code.val().trim() // std_code.prop("disabled", false).removeClass("disabled") // $("#currency-code-hex").prop("disabled", true).addClass("disabled") - } else { - const hex_code = $("#currency-code-hex") + const hex_code = $('#currency-code-hex') currency_code = hex_code.val().trim() // hex_code.prop("disabled", false).removeClass("disabled") // $("#currency-code-std").prop("disabled", true).addClass("disabled") } - $("#send-currency-code").text(currency_code) + $('#send-currency-code').text(currency_code) } - $("#currency-code-std").keyup(update_currency_code) - $("#currency-code-hex").keyup(update_currency_code) - $("#use-std-code").change(update_currency_code) - $("#use-hex-code").change(update_currency_code) + $('#currency-code-std').keyup(update_currency_code) + $('#currency-code-hex').keyup(update_currency_code) + $('#use-std-code').change(update_currency_code) + $('#use-hex-code').change(update_currency_code) // run once on load because some browsers pre-fill values from previous // pageviews. update_currency_code() - // Configure Issuer Settings handler ----------------------------------------- - $("#config-issuer-button").click( async (event) => { - const block = $(event.target).closest(".interactive-block") - block.find(".output-area").empty() - const cold_wallet = get_wallet_2(event, "cold") + $('#config-issuer-button').click(async (event) => { + const block = $(event.target).closest('.interactive-block') + block.find('.output-area').empty() + const cold_wallet = get_wallet_2(event, 'cold') let flags = 0 - if ($("#cold-require-dest").prop("checked")) { + if ($('#cold-require-dest').prop('checked')) { flags |= xrpl.AccountSetTfFlags.tfRequireDestTag } - if ($("#cold-disallow-xrp").prop("checked")) { + if ($('#cold-disallow-xrp').prop('checked')) { flags |= xrpl.AccountSetTfFlags.tfDisallowXRP } - const tick_size = parseInt($("#cold-tick-size").val(), 10) + const tick_size = parseInt($('#cold-tick-size').val(), 10) if (Number.isNaN(tick_size) || tick_size < 0 || tick_size > 15) { - show_error(block, "TickSize must be an integer from 0 to 15.") + show_error(block, 'TickSize must be an integer from 0 to 15.') return } // Convert transfer fee % to transferrate integer (e.g. 0.5% fee = 1005000000) - const transfer_fee = parseFloat($("#cold-transfer-fee").val()) - let transfer_rate = (transfer_fee * 10000000) + 1000000000 + const transfer_fee = parseFloat($('#cold-transfer-fee').val()) + let transfer_rate = transfer_fee * 10000000 + 1000000000 if (transfer_rate == 1000000000) { transfer_rate = 0 } - const domain = $("#cold-domain-hex").text().trim() + const domain = $('#cold-domain-hex').text().trim() - block.find(".loader").show() + block.find('.loader').show() try { const cold_settings_tx = { - "TransactionType": "AccountSet", - "Account": cold_wallet.address, - "TransferRate": transfer_rate, - "TickSize": tick_size, - "SetFlag": xrpl.AccountSetAsfFlags.asfDefaultRipple, - "Domain": domain, - "Flags": flags + TransactionType: 'AccountSet', + Account: cold_wallet.address, + TransferRate: transfer_rate, + TickSize: tick_size, + SetFlag: xrpl.AccountSetAsfFlags.asfDefaultRipple, + Domain: domain, + Flags: flags, } await generic_full_send(event, cold_settings_tx, cold_wallet) - complete_step("Configure Issuer") - - } catch(err) { - block.find(".loader").hide() + complete_step('Configure Issuer') + } catch (err) { + block.find('.loader').hide() show_error(block, `An error occurred with the transaction: ${err}`) } - }) // Configure Hot Address Settings handler ------------------------------------ - $("#config-hot-address-button").click( async (event) => { - const block = $(event.target).closest(".interactive-block") - block.find(".output-area").empty() - const hot_wallet = get_wallet_2(event, "hot") + $('#config-hot-address-button').click(async (event) => { + const block = $(event.target).closest('.interactive-block') + block.find('.output-area').empty() + const hot_wallet = get_wallet_2(event, 'hot') let flags = 0 - if ($("#hot-require-dest").prop("checked")) { + if ($('#hot-require-dest').prop('checked')) { flags |= xrpl.AccountSetTfFlags.tfRequireDestTag } - if ($("#hot-disallow-xrp").prop("checked")) { + if ($('#hot-disallow-xrp').prop('checked')) { flags |= xrpl.AccountSetTfFlags.tfDisallowXRP } - const domain = $("#hot-domain-hex").text().trim() + const domain = $('#hot-domain-hex').text().trim() - block.find(".loader").show() + block.find('.loader').show() try { const hot_settings_tx = { - "TransactionType": "AccountSet", - "Account": hot_wallet.address, + TransactionType: 'AccountSet', + Account: hot_wallet.address, // Require Auth so we can't accidentally issue from the hot address - "SetFlag": xrpl.AccountSetAsfFlags.asfRequireAuth, - "Domain": domain, - "Flags": flags + SetFlag: xrpl.AccountSetAsfFlags.asfRequireAuth, + Domain: domain, + Flags: flags, } await generic_full_send(event, hot_settings_tx, hot_wallet) - complete_step("Configure Hot Address") - - } catch(err) { - block.find(".loader").hide() + complete_step('Configure Hot Address') + } catch (err) { + block.find('.loader').hide() show_error(block, `An error occurred with the transaction: ${err}`) } }) // Create Trust Line handler ------------------------------------------------- - $("#create-trust-line-button").click( async (event) => { - const block = $(event.target).closest(".interactive-block") - block.find(".output-area").empty() - const cold_address = get_wallet_2(event, "cold").address - const hot_wallet = get_wallet_2(event, "hot") + $('#create-trust-line-button').click(async (event) => { + const block = $(event.target).closest('.interactive-block') + block.find('.output-area').empty() + const cold_address = get_wallet_2(event, 'cold').address + const hot_wallet = get_wallet_2(event, 'hot') let currency_code - if ($("#use-std-code").prop("checked")) { - currency_code = $("#currency-code-std").val().trim() + if ($('#use-std-code').prop('checked')) { + currency_code = $('#currency-code-std').val().trim() if (!currency_code.match(/[A-Za-z0-9?!@#$%*(){}|\x26\x3c\x3e]{3}/)) { show_error(block, "<a href='currency-formats.html#standard-currency-codes'>Standard currency code</a> must be 3 valid characters.") } } else { - currency_code = $("#currency-code-hex").val().trim() + currency_code = $('#currency-code-hex').val().trim() if (!currency_code.match(/^[0-9A-Fa-f]{40}$/)) { - show_error(block, "<a href='currency-formats.html#nonstandard-currency-codes'>Nonstandard currency code</a> must be 40 hexadecimal characters.") + show_error( + block, + "<a href='currency-formats.html#nonstandard-currency-codes'>Nonstandard currency code</a> must be 40 hexadecimal characters.", + ) return } } - const limit = $("#trust-limit").val() // limit is a string + const limit = $('#trust-limit').val() // limit is a string - block.find(".loader").show() + block.find('.loader').show() try { const trust_set_tx = { - "TransactionType": "TrustSet", - "Account": hot_wallet.address, - "LimitAmount": { - "currency": currency_code, - "issuer": cold_address, - "value": limit - } + TransactionType: 'TrustSet', + Account: hot_wallet.address, + LimitAmount: { + currency: currency_code, + issuer: cold_address, + value: limit, + }, } await generic_full_send(event, trust_set_tx, hot_wallet) - complete_step("Make Trust Line") - - } catch(err) { - block.find(".loader").hide() + complete_step('Make Trust Line') + } catch (err) { + block.find('.loader').hide() show_error(block, `An error occurred with the transaction: ${err}`) } }) // Send Token handler -------------------------------------------------------- - $("#send-token-button").click( async (event) => { - const block = $(event.target).closest(".interactive-block") - block.find(".output-area").empty() - const hot_address = get_wallet_2(event, "hot").address - const cold_wallet = get_wallet_2(event, "cold") + $('#send-token-button').click(async (event) => { + const block = $(event.target).closest('.interactive-block') + block.find('.output-area').empty() + const hot_address = get_wallet_2(event, 'hot').address + const cold_wallet = get_wallet_2(event, 'cold') - const currency_code = $("#send-currency-code").text().trim() - const issue_quantity = $("#send-amount").val().trim() + const currency_code = $('#send-currency-code').text().trim() + const issue_quantity = $('#send-amount').val().trim() - const use_dest_tag = $("#use-dest-tag").prop("checked") + const use_dest_tag = $('#use-dest-tag').prop('checked') let dest_tag if (use_dest_tag) { - dest_tag = parseInt($("#dest-tag").val(), 10) + dest_tag = parseInt($('#dest-tag').val(), 10) if (Number.isNaN(dest_tag) || dest_tag < 0 || dest_tag > 4294967295) { - show_error(block, "Destination Tag must be a valid 32-bit integer.") + show_error(block, 'Destination Tag must be a valid 32-bit integer.') return } } - block.find(".loader").show() + block.find('.loader').show() try { const send_token_tx = { - "TransactionType": "Payment", - "Account": cold_wallet.address, - "Amount": { - "currency": currency_code, - "value": issue_quantity, - "issuer": cold_wallet.address + TransactionType: 'Payment', + Account: cold_wallet.address, + Amount: { + currency: currency_code, + value: issue_quantity, + issuer: cold_wallet.address, }, - "Destination": hot_address + Destination: hot_address, } if (use_dest_tag) { - send_token_tx["DestinationTag"] = dest_tag + send_token_tx['DestinationTag'] = dest_tag } await generic_full_send(event, send_token_tx, cold_wallet) - complete_step("Send Token") - - } catch(err) { - block.find(".loader").hide() + complete_step('Send Token') + } catch (err) { + block.find('.loader').hide() show_error(block, `An error occurred with the transaction: ${err}`) } - }) // Confirm Balances handler -------------------------------------------------- - $("#confirm-balances-button").click( async (event) => { - const block = $(event.target).closest(".interactive-block") - block.find(".output-area").empty() - const hot_address = get_wallet_2(event, "hot").address - const cold_address = get_wallet_2(event, "cold").address + $('#confirm-balances-button').click(async (event) => { + const block = $(event.target).closest('.interactive-block') + block.find('.output-area').empty() + const hot_address = get_wallet_2(event, 'hot').address + const cold_address = get_wallet_2(event, 'cold').address - block.find(".loader").show() + block.find('.loader').show() try { const hot_balances = await api.request({ - "command": "account_lines", - "account": hot_address, - "ledger_index": "validated" + command: 'account_lines', + account: hot_address, + ledger_index: 'validated', }) - block.find(".output-area").append(` + block.find('.output-area').append(` <p>Hot address (<a href="https://testnet.xrpl.org/accounts/${hot_address}">${hot_address}</a>) account_lines result:</p> <pre><code>${pretty_print(hot_balances.result)}</code></pre> `) const cold_balances = await api.request({ - "command": "gateway_balances", - "account": cold_address, - "ledger_index": "validated", - "hotwallet": [hot_address] + command: 'gateway_balances', + account: cold_address, + ledger_index: 'validated', + hotwallet: [hot_address], }) - block.find(".output-area").append(` + block.find('.output-area').append(` <p>Issuer (<a href="https://testnet.xrpl.org/accounts/${cold_address}">${cold_address}</a>) gateway_balances result:</p> <pre><code>${pretty_print(cold_balances.result)}</code></pre> `) - block.find(".loader").hide() - complete_step("Confirm Balances") - } catch(err) { - block.find(".loader").hide() + block.find('.loader').hide() + complete_step('Confirm Balances') + } catch (err) { + block.find('.loader').hide() show_error(block, `Error looking up balances: ${err}`) } - }) }) diff --git a/static/js/tutorials/require-destination-tags.js b/static/js/tutorials/require-destination-tags.js index f2059dc44d..3d4aebde08 100644 --- a/static/js/tutorials/require-destination-tags.js +++ b/static/js/tutorials/require-destination-tags.js @@ -2,22 +2,23 @@ // 2. Connect // The code for these steps is handled by interactive-tutorial.js onCurrentRouteLoaded(() => { - // 3. Send AccountSet -------------------------------------------------------- - $("#send-accountset").click( async (event) => { - const block = $(event.target).closest(".interactive-block") + $('#send-accountset').click(async (event) => { + const block = $(event.target).closest('.interactive-block') const address = get_address(event) - if (!address) {return} + if (!address) { + return + } try { await generic_full_send(event, { - "TransactionType": "AccountSet", - "Account": address, - "SetFlag": xrpl.AccountSetAsfFlags.asfRequireDest + TransactionType: 'AccountSet', + Account: address, + SetFlag: xrpl.AccountSetAsfFlags.asfRequireDest, }) - complete_step("Send AccountSet") - } catch(err) { - block.find(".loader").hide() + complete_step('Send AccountSet') + } catch (err) { + block.find('.loader').hide() show_error(block, err) } }) @@ -26,33 +27,34 @@ onCurrentRouteLoaded(() => { // generic full send in the previous step. ----------------------------------- // 5. Confirm Account Settings ----------------------------------------------- - $("#confirm-settings").click( async (event) => { - const block = $(event.target).closest(".interactive-block") + $('#confirm-settings').click(async (event) => { + const block = $(event.target).closest('.interactive-block') const address = get_address(event) - if (!address) {return} + if (!address) { + return + } - block.find(".output-area").html("") - block.find(".loader").show() + block.find('.output-area').html('') + block.find('.loader').show() let account_info = await api.request({ - "command": "account_info", - "account": address, - "ledger_index": "validated" + command: 'account_info', + account: address, + ledger_index: 'validated', }) console.log(account_info) const flags = xrpl.parseAccountRootFlags(account_info.result.account_data.Flags) - block.find(".loader").hide() + block.find('.loader').hide() - block.find(".output-area").append( - `<pre><code>${pretty_print(account_info.result.account_data)}</code></pre>`) + block.find('.output-area').append(`<pre><code>${pretty_print(account_info.result.account_data)}</code></pre>`) if (flags.lsfRequireDestTag) { - block.find(".output-area").append(`<p><i class="fa fa-check-circle"></i> + block.find('.output-area').append(`<p><i class="fa fa-check-circle"></i> Require Destination Tag is enabled.</p>`) } else { - block.find(".output-area").append(`<p><i class="fa fa-times-circle"></i> + block.find('.output-area').append(`<p><i class="fa fa-times-circle"></i> Require Destination Tag is DISABLED.</p>`) } - complete_step("Confirm Settings") + complete_step('Confirm Settings') }) // Send Test Payments -------------------------------------------------------- @@ -62,24 +64,24 @@ onCurrentRouteLoaded(() => { // new sending address every time. async function get_test_sender(block) { let test_sender_wallet - let seed = block.data("testSendSecret") + let seed = block.data('testSendSecret') if (!seed) { - console.debug("First-time setup for test sender...") + console.debug('First-time setup for test sender...') test_sender_wallet = (await api.fundWallet()).wallet - block.data("testSendSecret", test_sender_wallet.seed) + block.data('testSendSecret', test_sender_wallet.seed) // First time: Wait for our test sender to be fully funded, so we don't // get the wrong starting sequence number. while (true) { try { await api.request({ - "command": "account_info", - "account": test_sender_wallet.address, - "ledger_index": "validated" + command: 'account_info', + account: test_sender_wallet.address, + ledger_index: 'validated', }) break - } catch(e) { - await new Promise(resolve => setTimeout(resolve, 1000)) + } catch (e) { + await new Promise((resolve) => setTimeout(resolve, 1000)) } } } else { @@ -90,39 +92,40 @@ onCurrentRouteLoaded(() => { // Actual handler for the two buttons in the Send Test Payments block. // Gets the destination tag (or lack thereof) from their data attributes. - $(".test-payment").click( async (event) => { - const block = $(event.target).closest(".interactive-block") + $('.test-payment').click(async (event) => { + const block = $(event.target).closest('.interactive-block') const address = get_address(event) - if (!address) {return} + if (!address) { + return + } - block.find(".loader").show() + block.find('.loader').show() try { const test_sender = await get_test_sender(block) const tx_json = { - "TransactionType": "Payment", - "Account": test_sender.address, - "Amount": "3152021", - "Destination": address + TransactionType: 'Payment', + Account: test_sender.address, + Amount: '3152021', + Destination: address, } - const dt = $(event.target).data("dt") + const dt = $(event.target).data('dt') if (dt) { - tx_json["DestinationTag"] = parseInt(dt) + tx_json['DestinationTag'] = parseInt(dt) } const prepared = await api.autofill(tx_json) - const {tx_blob, hash} = test_sender.sign(prepared) - console.debug("Submitting test payment", prepared) - const prelim = await api.request({"command": "submit", tx_blob}) + const { tx_blob, hash } = test_sender.sign(prepared) + console.debug('Submitting test payment', prepared) + const prelim = await api.request({ command: 'submit', tx_blob }) - block.find(".loader").hide() - block.find(".output-area").append(`<p>${tx_json.TransactionType} - ${prepared.Sequence} ${(dt?"WITH":"WITHOUT")} Dest. Tag: + block.find('.loader').hide() + block.find('.output-area').append(`<p>${tx_json.TransactionType} + ${prepared.Sequence} ${dt ? 'WITH' : 'WITHOUT'} Dest. Tag: <a href="https://testnet.xrpl.org/transactions/${hash}" target="_blank">${prelim.result.engine_result}</a></p>`) - } catch(err) { - block.find(".loader").hide() + } catch (err) { + block.find('.loader').hide() show_error(block, `An error occurred when sending the test payment: ${err}`) } }) - }) diff --git a/static/js/tutorials/send-xrp.js b/static/js/tutorials/send-xrp.js index 4599c99cf6..423de29c2f 100644 --- a/static/js/tutorials/send-xrp.js +++ b/static/js/tutorials/send-xrp.js @@ -3,100 +3,98 @@ // The code for these steps is handled by interactive-tutorial.js onCurrentRouteLoaded(() => { + // 2. Prepare Transaction ------------------------------------------------------ + $('#prepare-button').click(async function (event) { + const block = $(event.target).closest('.interactive-block') + block.find('.output-area').html('') + const send_amount = $('#xrp-amount').val() -// 2. Prepare Transaction ------------------------------------------------------ -$("#prepare-button").click( async function(event) { - const block = $(event.target).closest(".interactive-block") - block.find(".output-area").html("") - const send_amount = $("#xrp-amount").val() + const sender = get_address(event) + if (!sender) { + return + } - const sender = get_address(event) - if (!sender) {return} + const vli = await api.getLedgerIndex() - const vli = await api.getLedgerIndex() + const prepared = await api.autofill({ + TransactionType: 'Payment', + Account: sender, + Amount: xrpl.xrpToDrops(send_amount), // Same as "Amount": "22000000" + Destination: 'rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe', + LastLedgerSequence: vli + 75, // gives ~5min, rather than the default ~1min + }) - const prepared = await api.autofill({ - "TransactionType": "Payment", - "Account": sender, - "Amount": xrpl.xrpToDrops(send_amount), // Same as "Amount": "22000000" - "Destination": "rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe", - "LastLedgerSequence": vli+75 // gives ~5min, rather than the default ~1min - }) - - block.find(".output-area").append( - `<div><strong>Prepared transaction instructions:</strong> + block.find('.output-area').append( + `<div><strong>Prepared transaction instructions:</strong> <pre><code id='prepared-tx-json'>${pretty_print(prepared)}</code></pre> </div> <div><strong>Transaction cost:</strong> ${xrpl.dropsToXrp(prepared.Fee)} XRP</div> <div><strong>Transaction expires after ledger:</strong> - ${prepared.LastLedgerSequence}</div>`) + ${prepared.LastLedgerSequence}</div>`, + ) - complete_step("Prepare") -}) + complete_step('Prepare') + }) + // 3. Sign the transaction ----------------------------------------------------- + $('#sign-button').click(function (event) { + const block = $(event.target).closest('.interactive-block') + block.find('.output-area').html('') -// 3. Sign the transaction ----------------------------------------------------- -$("#sign-button").click( function(event) { - const block = $(event.target).closest(".interactive-block") - block.find(".output-area").html("") + const preparedTxJSON = JSON.parse($('#prepared-tx-json').text()) + const wallet = get_wallet(event) + if (!wallet) { + return + } - const preparedTxJSON = JSON.parse($("#prepared-tx-json").text()) - const wallet = get_wallet(event) - if (!wallet) {return} + const { tx_blob, hash } = wallet.sign(preparedTxJSON) - const {tx_blob, hash} = wallet.sign(preparedTxJSON) - - block.find(".output-area").html( - `<div><strong>Signed Transaction blob:</strong> + block.find('.output-area').html( + `<div><strong>Signed Transaction blob:</strong> <code id='signed-tx-blob' style='overflow-wrap: anywhere; word-wrap: anywhere' >${tx_blob}</code></div> <div><strong>Identifying hash:</strong> <span id='signed-tx-hash' - >${hash}</span></div>` - ) - - complete_step("Sign") -}) - -// 4. Submit the signed transaction -------------------------------------------- -$("#submit-button").click( submit_handler ) - -// 5. Wait for Validation: handled by interactive-tutorial.js and by the -// generic submit handler in the previous step. -------------------------------- - - -// 6. Check transaction status ------------------------------------------------- -$("#get-tx-button").click( async function(event) { - const block = $(event.target).closest(".interactive-block") - // Wipe previous output - block.find(".output-area").html("") - - const txID = $("#signed-tx-hash").text() - const earliestLedgerVersion = parseInt( - $("#interactive-wait .earliest-ledger-version").text(), 10) - const lastLedgerSequence = parseInt( - $("#interactive-wait .lastledgersequence").text(), 10) - - try { - const tx = await api.request({ - command: "tx", - transaction: txID, - min_ledger: earliestLedgerVersion, - max_ledger: lastLedgerSequence - }) - - block.find(".output-area").html( - `<div><strong>Transaction result code:</strong> - ${tx.result.meta.TransactionResult} (${tx.result.validated ? "validated": "pending"})</div> - <div><strong>Balance changes:</strong> - <pre><code>${pretty_print(xrpl.getBalanceChanges(tx.result.meta))}</code></pre> - </div>` + >${hash}</span></div>`, ) - complete_step("Check") - } catch(error) { - show_error(block, "Couldn't get transaction outcome:" + error) - } + complete_step('Sign') + }) -}) + // 4. Submit the signed transaction -------------------------------------------- + $('#submit-button').click(submit_handler) + // 5. Wait for Validation: handled by interactive-tutorial.js and by the + // generic submit handler in the previous step. -------------------------------- + + // 6. Check transaction status ------------------------------------------------- + $('#get-tx-button').click(async function (event) { + const block = $(event.target).closest('.interactive-block') + // Wipe previous output + block.find('.output-area').html('') + + const txID = $('#signed-tx-hash').text() + const earliestLedgerVersion = parseInt($('#interactive-wait .earliest-ledger-version').text(), 10) + const lastLedgerSequence = parseInt($('#interactive-wait .lastledgersequence').text(), 10) + + try { + const tx = await api.request({ + command: 'tx', + transaction: txID, + min_ledger: earliestLedgerVersion, + max_ledger: lastLedgerSequence, + }) + + block.find('.output-area').html( + `<div><strong>Transaction result code:</strong> + ${tx.result.meta.TransactionResult} (${tx.result.validated ? 'validated' : 'pending'})</div> + <div><strong>Balance changes:</strong> + <pre><code>${pretty_print(xrpl.getBalanceChanges(tx.result.meta))}</code></pre> + </div>`, + ) + + complete_step('Check') + } catch (error) { + show_error(block, "Couldn't get transaction outcome:" + error) + } + }) }) diff --git a/static/js/tutorials/trade-in-the-dex.js b/static/js/tutorials/trade-in-the-dex.js index 10642d341e..11d8ff9a61 100644 --- a/static/js/tutorials/trade-in-the-dex.js +++ b/static/js/tutorials/trade-in-the-dex.js @@ -4,285 +4,289 @@ // Get Credentials, Connect steps handled by the snippet onCurrentRouteLoaded(() => { + // Look Up Offers -------------------------------------------------------------- -// Look Up Offers -------------------------------------------------------------- - -function update_exchange_rate(event) { - const tpa = $("#taker-pays-amount-1").val() - const tga = $("#taker-gets-amount-1").val() - const exchange_rate = BigNumber(tga) / BigNumber(tpa) - $("#exchange-rate-1").val(`${exchange_rate}`) -} -$("#taker-pays-amount-1").change(update_exchange_rate) -$("#taker-gets-amount-1").change(update_exchange_rate) - -$("#look-up-offers").click( async (event) => { - const block = $(event.target).closest(".interactive-block") - block.find(".output-area").html("") - const address = get_address(event) - if (!address) {return} - - const we_want = { - "currency": $("#taker-pays-currency-1").val(), - "issuer": $("#taker-pays-issuer-1").val(), - "value": $("#taker-pays-amount-1").val() - } - const we_spend = { - "currency": "XRP", - "value": xrpl.xrpToDrops($("#taker-gets-amount-1").val()) - } - const proposed_quality = BigNumber(we_spend.value) / BigNumber(we_want.value) - let orderbook_resp - try { - orderbook_resp = await api.request({ - "command": "book_offers", - "taker": address, - "ledger_index": "current", - "taker_gets": we_want, - "taker_pays": we_spend - }) - block.find(".output-area").append( - `<pre><code>${pretty_print(orderbook_resp.result)}`) - } catch(err) { - show_error(block, err) - block.find(".loader").hide() - return + function update_exchange_rate(event) { + const tpa = $('#taker-pays-amount-1').val() + const tga = $('#taker-gets-amount-1').val() + const exchange_rate = BigNumber(tga) / BigNumber(tpa) + $('#exchange-rate-1').val(`${exchange_rate}`) } + $('#taker-pays-amount-1').change(update_exchange_rate) + $('#taker-gets-amount-1').change(update_exchange_rate) - // Estimate whether a proposed Offer would execute immediately, and... - // If so, how much of it? (Partial execution is possible) - // If not, how much liquidity is above it? (How deep in the order book would - // other Offers have to go before ours would get taken?) - // Note: these estimates can be thrown off by rounding if the token issuer - // uses a TickSize setting other than the default (15). In that case, you - // can increase the TakerGets amount of your final offer just a little bit to - // compensate. - - const offers = orderbook_resp.result.offers - const want_amt = BigNumber(we_want.value) - let running_total = BigNumber(0) - if (!offers) { - block.find(".output-area").append(`<p>No Offers in the matching book. - Offer probably won't execute immediately.</p>`) - } else { - for (const o of offers) { - if (o.quality <= proposed_quality) { - block.find(".output-area").append( - `<p>Matching Offer found, funded with - ${o.owner_funds} ${we_want.currency}</p>`) - running_total = running_total.plus(BigNumber(o.owner_funds)) - if (running_total >= want_amt) { - block.find(".output-area").append("<p>Full Offer will probably fill.</p>") - break - } - } else { - // Offers are in ascending quality order, so no others after this - // will match, either - block.find(".output-area").append(`<p>Remaining orders too expensive.</p>`) - break - } - } - block.find(".output-area").append(`<p>Total matched: - ${Math.min(running_total, want_amt)} ${we_want.currency}</p>`) - if (running_total > 0 && running_total < want_amt) { - block.find(".output-area").append(`<p>Remaining - ${want_amt - running_total} ${we_want.currency} would probably be - placed on top of the order book.</p>`) - } - } - - if (running_total == 0) { - // If the Offer would be partly filled, then the rest would be placed - // at the top of the order book. If no part is filled, then there might be - // other Offers going the same direction as ours already on the books with - // an equal or better rate. This code counts how much liquidity is likely to - // be above ours. - - // Unlike above, this looks for Offers going the same direction as the - // proposed Offer, so TakerGets and TakerPays are reversed from the previous - // book_offers request. - let orderbook2_resp - try { - orderbook2_resp = await api.request({ - "command": "book_offers", - "taker": address, - "ledger_index": "current", - "taker_gets": we_spend, - "taker_pays": we_want - }) - block.find(".output-area").append( - `<pre><code>${pretty_print(orderbook2_resp.result)}`) - } catch(err) { - show_error(block, err) - block.find(".loader").hide() + $('#look-up-offers').click(async (event) => { + const block = $(event.target).closest('.interactive-block') + block.find('.output-area').html('') + const address = get_address(event) + if (!address) { return } - // Since TakerGets/TakerPays are reversed, the quality is the inverse. - // You could also calculate this as 1/proposed_quality. - const offered_quality = BigNumber(we_want.value) / BigNumber(we_spend.value) + const we_want = { + currency: $('#taker-pays-currency-1').val(), + issuer: $('#taker-pays-issuer-1').val(), + value: $('#taker-pays-amount-1').val(), + } + const we_spend = { + currency: 'XRP', + value: xrpl.xrpToDrops($('#taker-gets-amount-1').val()), + } + const proposed_quality = BigNumber(we_spend.value) / BigNumber(we_want.value) + let orderbook_resp + try { + orderbook_resp = await api.request({ + command: 'book_offers', + taker: address, + ledger_index: 'current', + taker_gets: we_want, + taker_pays: we_spend, + }) + block.find('.output-area').append(`<pre><code>${pretty_print(orderbook_resp.result)}`) + } catch (err) { + show_error(block, err) + block.find('.loader').hide() + return + } - const offers2 = orderbook2_resp.result.offers - let tally_currency = we_spend.currency - if (tally_currency == "XRP") { tally_currency = "drops of XRP" } - let running_total2 = BigNumber(0) - if (!offers2) { - block.find(".output-area").append(`<p>No similar Offers in the book. - Ours would be the first.</p>`) + // Estimate whether a proposed Offer would execute immediately, and... + // If so, how much of it? (Partial execution is possible) + // If not, how much liquidity is above it? (How deep in the order book would + // other Offers have to go before ours would get taken?) + // Note: these estimates can be thrown off by rounding if the token issuer + // uses a TickSize setting other than the default (15). In that case, you + // can increase the TakerGets amount of your final offer just a little bit to + // compensate. + + const offers = orderbook_resp.result.offers + const want_amt = BigNumber(we_want.value) + let running_total = BigNumber(0) + if (!offers) { + block.find('.output-area').append(`<p>No Offers in the matching book. + Offer probably won't execute immediately.</p>`) } else { - for (const o of offers2) { - if (o.quality <= offered_quality) { - block.find(".output-area").append(`<p>Existing offer found, funded - with ${o.owner_funds} ${tally_currency}</p>`) - running_total2 = running_total2.plus(BigNumber(o.owner_funds)) + for (const o of offers) { + if (o.quality <= proposed_quality) { + block.find('.output-area').append( + `<p>Matching Offer found, funded with + ${o.owner_funds} ${we_want.currency}</p>`, + ) + running_total = running_total.plus(BigNumber(o.owner_funds)) + if (running_total >= want_amt) { + block.find('.output-area').append('<p>Full Offer will probably fill.</p>') + break + } } else { - block.find(".output-area").append(`<p>Remaining orders are below where - ours would be placed.</p>`) + // Offers are in ascending quality order, so no others after this + // will match, either + block.find('.output-area').append(`<p>Remaining orders too expensive.</p>`) break } } - block.find(".output-area").append(`<p>Our Offer would be placed below at - least ${running_total2} ${tally_currency}</p>`) + block.find('.output-area').append(`<p>Total matched: + ${Math.min(running_total, want_amt)} ${we_want.currency}</p>`) if (running_total > 0 && running_total < want_amt) { - block.find(".output-area").append(`<p>Remaining + block.find('.output-area').append(`<p>Remaining + ${want_amt - running_total} ${we_want.currency} would probably be + placed on top of the order book.</p>`) + } + } + + if (running_total == 0) { + // If the Offer would be partly filled, then the rest would be placed + // at the top of the order book. If no part is filled, then there might be + // other Offers going the same direction as ours already on the books with + // an equal or better rate. This code counts how much liquidity is likely to + // be above ours. + + // Unlike above, this looks for Offers going the same direction as the + // proposed Offer, so TakerGets and TakerPays are reversed from the previous + // book_offers request. + let orderbook2_resp + try { + orderbook2_resp = await api.request({ + command: 'book_offers', + taker: address, + ledger_index: 'current', + taker_gets: we_spend, + taker_pays: we_want, + }) + block.find('.output-area').append(`<pre><code>${pretty_print(orderbook2_resp.result)}`) + } catch (err) { + show_error(block, err) + block.find('.loader').hide() + return + } + + // Since TakerGets/TakerPays are reversed, the quality is the inverse. + // You could also calculate this as 1/proposed_quality. + const offered_quality = BigNumber(we_want.value) / BigNumber(we_spend.value) + + const offers2 = orderbook2_resp.result.offers + let tally_currency = we_spend.currency + if (tally_currency == 'XRP') { + tally_currency = 'drops of XRP' + } + let running_total2 = BigNumber(0) + if (!offers2) { + block.find('.output-area').append(`<p>No similar Offers in the book. + Ours would be the first.</p>`) + } else { + for (const o of offers2) { + if (o.quality <= offered_quality) { + block.find('.output-area').append(`<p>Existing offer found, funded + with ${o.owner_funds} ${tally_currency}</p>`) + running_total2 = running_total2.plus(BigNumber(o.owner_funds)) + } else { + block.find('.output-area').append(`<p>Remaining orders are below where + ours would be placed.</p>`) + break + } + } + block.find('.output-area').append(`<p>Our Offer would be placed below at + least ${running_total2} ${tally_currency}</p>`) + if (running_total > 0 && running_total < want_amt) { + block.find('.output-area').append(`<p>Remaining ${want_amt - running_total} ${tally_currency} will probably be placed on top of the order book.</p>`) + } } } - } - block.find(".loader").hide() - complete_step("Look Up Offers") -}) + block.find('.loader').hide() + complete_step('Look Up Offers') + }) + // Send OfferCreate Transaction ------------------------------------------------ + $('#send-offercreate').click(async (event) => { + const block = $(event.target).closest('.interactive-block') + const address = get_address(event) + if (!address) { + return + } + block.find('.output-area').html('') -// Send OfferCreate Transaction ------------------------------------------------ -$("#send-offercreate").click( async (event) => { - const block = $(event.target).closest(".interactive-block") - const address = get_address(event) - if (!address) {return} - block.find(".output-area").html("") + const we_want = { + currency: $('#taker-pays-currency-1').val(), + issuer: $('#taker-pays-issuer-1').val(), + value: $('#taker-pays-amount-1').val(), + } + const we_spend = { + currency: 'XRP', + value: xrpl.xrpToDrops($('#taker-gets-amount-1').val()), + } - const we_want = { - "currency": $("#taker-pays-currency-1").val(), - "issuer": $("#taker-pays-issuer-1").val(), - "value": $("#taker-pays-amount-1").val() - } - const we_spend = { - "currency": "XRP", - "value": xrpl.xrpToDrops($("#taker-gets-amount-1").val()) - } + const tx = { + TransactionType: 'OfferCreate', + Account: address, + TakerPays: { + currency: $('#taker-pays-currency-1').val(), + issuer: $('#taker-pays-issuer-1').val(), + value: $('#taker-pays-amount-1').val(), + }, + TakerGets: we_spend.value, // since it's XRP + } - const tx = { - "TransactionType": "OfferCreate", - "Account": address, - "TakerPays": { - "currency": $("#taker-pays-currency-1").val(), - "issuer": $("#taker-pays-issuer-1").val(), - "value": $("#taker-pays-amount-1").val() - }, - "TakerGets": we_spend.value // since it's XRP - } + try { + await generic_full_send(event, tx) + complete_step('Send OfferCreate') + } catch (err) { + block.find('.loader').hide() + show_error(block, err) + } + }) - try { - await generic_full_send(event, tx) - complete_step("Send OfferCreate") - } catch(err) { - block.find(".loader").hide() - show_error(block, err) - } -}) + // Wait for Validation: handled by interactive-tutorial.js and by the + // generic full send in the previous step. ------------------------------------- -// Wait for Validation: handled by interactive-tutorial.js and by the -// generic full send in the previous step. ------------------------------------- + // Check Metadata -------------------------------------------------------------- + $('#check-metadata').click(async (event) => { + const block = $(event.target).closest('.interactive-block') + block.find('.loader').show() + block.find('.output-area').html('') -// Check Metadata -------------------------------------------------------------- -$("#check-metadata").click(async (event) => { - const block = $(event.target).closest(".interactive-block") - block.find(".loader").show() - block.find(".output-area").html("") - - const txid = $(`#interactive-wait`).find(".waiting-for-tx").text().trim() - let result - try { - result = await api.request({"method": "tx", "transaction": txid}) - } catch(err) { - show_err(err) - block.find(".loader").hide() - return - } - const balance_changes = xrpl.getBalanceChanges(result.result.meta) - block.find(".output-area").append(`<p>Total balance changes:</p> + const txid = $(`#interactive-wait`).find('.waiting-for-tx').text().trim() + let result + try { + result = await api.request({ method: 'tx', transaction: txid }) + } catch (err) { + show_err(err) + block.find('.loader').hide() + return + } + const balance_changes = xrpl.getBalanceChanges(result.result.meta) + block.find('.output-area').append(`<p>Total balance changes:</p> <pre><code>${pretty_print(balance_changes)}</code></pre>`) - // Helper to convert an XRPL amount to a string for display - function amt_str(amt) { - if (typeof amt == "string") { - return `${xrpl.dropsToXrp(amt)} XRP` - } else { - return `${amt.value} ${amt.currency}.${amt.issuer}` + // Helper to convert an XRPL amount to a string for display + function amt_str(amt) { + if (typeof amt == 'string') { + return `${xrpl.dropsToXrp(amt)} XRP` + } else { + return `${amt.value} ${amt.currency}.${amt.issuer}` + } } - } - let offers_affected = 0 - for (const affnode of result.result.meta.AffectedNodes) { - if (affnode.hasOwnProperty("ModifiedNode")) { - if (affnode.ModifiedNode.LedgerEntryType == "Offer") { - // Usually a ModifiedNode of type Offer indicates a previous Offer that - // was partially consumed by this one. - offers_affected += 1 - } - } else if (affnode.hasOwnProperty("DeletedNode")) { - if (affnode.DeletedNode.LedgerEntryType == "Offer") { - // The removed Offer may have been fully consumed, or it may have been - // found to be expired or unfunded. - offers_affected += 1 - } - } else if (affnode.hasOwnProperty("CreatedNode")) { - if (affnode.CreatedNode.LedgerEntryType == "RippleState") { - block.find(".output-area").append("<p>Created a trust line.</p>") - } else if (affnode.CreatedNode.LedgerEntryType == "Offer") { - const offer = affnode.CreatedNode.NewFields - block.find(".output-area").append(`<p>Created an Offer owned by ${offer.Account} with + let offers_affected = 0 + for (const affnode of result.result.meta.AffectedNodes) { + if (affnode.hasOwnProperty('ModifiedNode')) { + if (affnode.ModifiedNode.LedgerEntryType == 'Offer') { + // Usually a ModifiedNode of type Offer indicates a previous Offer that + // was partially consumed by this one. + offers_affected += 1 + } + } else if (affnode.hasOwnProperty('DeletedNode')) { + if (affnode.DeletedNode.LedgerEntryType == 'Offer') { + // The removed Offer may have been fully consumed, or it may have been + // found to be expired or unfunded. + offers_affected += 1 + } + } else if (affnode.hasOwnProperty('CreatedNode')) { + if (affnode.CreatedNode.LedgerEntryType == 'RippleState') { + block.find('.output-area').append('<p>Created a trust line.</p>') + } else if (affnode.CreatedNode.LedgerEntryType == 'Offer') { + const offer = affnode.CreatedNode.NewFields + block.find('.output-area').append(`<p>Created an Offer owned by ${offer.Account} with TakerGets=${amt_str(offer.TakerGets)} and TakerPays=${amt_str(offer.TakerPays)}.</p>`) + } } } - } - block.find(".output-area").append(`<p>Modified or removed ${offers_affected} matching Offer(s).</p>`) - block.find(".loader").hide() - complete_step("Check Metadata") -}) + block.find('.output-area').append(`<p>Modified or removed ${offers_affected} matching Offer(s).</p>`) + block.find('.loader').hide() + complete_step('Check Metadata') + }) -// Check Balances and Offers -$("#check-balances-and-offers").click( async (event) => { - const block = $(event.target).closest(".interactive-block") - const address = get_address(event) - if (!address) {return} + // Check Balances and Offers + $('#check-balances-and-offers').click(async (event) => { + const block = $(event.target).closest('.interactive-block') + const address = get_address(event) + if (!address) { + return + } - block.find(".loader").show() - try { - block.find(".output-area").append("<p>Getting address balances as of validated ledger...</p>") - const balances = await api.request({ - command: "account_lines", - account: address, - ledger_index: "validated" - // You could also use ledger_index: "current" to get pending data - }) - block.find(".output-area").append(`<pre><code>${pretty_print(balances.result)}</code></pre>`) - - block.find(".output-area").append(`<p>Getting outstanding Offers from ${address} as of validated ledger...</p>`) - const acct_offers = await api.request({ - command: "account_offers", - account: address, - ledger_index: "validated" - }) - block.find(".output-area").append(`<pre><code>${pretty_print(acct_offers.result)}</code></pre>`) - block.find(".loader").hide() - } catch(err) { - show_error(block, err) - block.find(".loader").hide() - } -}) + block.find('.loader').show() + try { + block.find('.output-area').append('<p>Getting address balances as of validated ledger...</p>') + const balances = await api.request({ + command: 'account_lines', + account: address, + ledger_index: 'validated', + // You could also use ledger_index: "current" to get pending data + }) + block.find('.output-area').append(`<pre><code>${pretty_print(balances.result)}</code></pre>`) + block.find('.output-area').append(`<p>Getting outstanding Offers from ${address} as of validated ledger...</p>`) + const acct_offers = await api.request({ + command: 'account_offers', + account: address, + ledger_index: 'validated', + }) + block.find('.output-area').append(`<pre><code>${pretty_print(acct_offers.result)}</code></pre>`) + block.find('.loader').hide() + } catch (err) { + show_error(block, err) + block.find('.loader').hide() + } + }) }) // end of $(document).ready() diff --git a/static/js/tutorials/use-tickets.js b/static/js/tutorials/use-tickets.js index e45162fff8..49065491b8 100644 --- a/static/js/tutorials/use-tickets.js +++ b/static/js/tutorials/use-tickets.js @@ -4,213 +4,231 @@ onCurrentRouteLoaded(() => { const LLS_OFFSET = 75 // Expire unconfirmed transactions after about ~5 min -// 3. Check Sequence Number -$("#check-sequence").click( async function(event) { - const block = $(event.target).closest(".interactive-block") - const address = get_address(event) - if (!address) {return} + // 3. Check Sequence Number + $('#check-sequence').click(async function (event) { + const block = $(event.target).closest('.interactive-block') + const address = get_address(event) + if (!address) { + return + } - // Wipe previous output - block.find(".output-area").html("") - block.find(".loader").show() - const account_info = await api.request({ - "command": "account_info", "account": address - }) - block.find(".loader").hide() + // Wipe previous output + block.find('.output-area').html('') + block.find('.loader').show() + const account_info = await api.request({ + command: 'account_info', + account: address, + }) + block.find('.loader').hide() - block.find(".output-area").append( - `<p>Current sequence: + block.find('.output-area').append( + `<p>Current sequence: <code id="current_sequence">${account_info.result.account_data.Sequence}</code> - </p>`) + </p>`, + ) - complete_step("Check Sequence") -}) - -// 4. Prepare and Sign TicketCreate -------------------------------------------- -$("#prepare-and-sign").click( async function(event) { - const block = $(event.target).closest(".interactive-block") - const wallet = get_wallet(event) - if (!wallet) {return} - let current_sequence - try { - current_sequence = parseInt($("#current_sequence").text()) - } catch (e) { - current_sequence = null - } - - // Wipe previous output - block.find(".output-area").html("") - - if (!current_sequence) { - show_error(block, - `Couldn't get a valid sequence value. Check that the - previous steps were completed successfully.`) - return; - } - - const vli = await api.getLedgerIndex() - const prepared = await api.autofill({ - "TransactionType": "TicketCreate", - "Account": wallet.address, - "TicketCount": 10, - "Sequence": current_sequence, - "LastLedgerSequence": vli+LLS_OFFSET + complete_step('Check Sequence') }) - block.find(".output-area").append( - `<p>Prepared transaction:</p> - <pre><code>${pretty_print(prepared)}</code></pre>`) + // 4. Prepare and Sign TicketCreate -------------------------------------------- + $('#prepare-and-sign').click(async function (event) { + const block = $(event.target).closest('.interactive-block') + const wallet = get_wallet(event) + if (!wallet) { + return + } + let current_sequence + try { + current_sequence = parseInt($('#current_sequence').text()) + } catch (e) { + current_sequence = null + } - const {tx_blob, hash} = wallet.sign(prepared) - block.find(".output-area").append( - `<p>Transaction hash: <code id="tx_id">${hash}</code></p>`) - block.find(".output-area").append( - `<p>Signed blob:</p><pre class="tx-blob"><code id="tx_blob">${tx_blob}</code></pre>`) + // Wipe previous output + block.find('.output-area').html('') - complete_step("Prepare & Sign") + if (!current_sequence) { + show_error( + block, + `Couldn't get a valid sequence value. Check that the + previous steps were completed successfully.`, + ) + return + } -}) + const vli = await api.getLedgerIndex() + const prepared = await api.autofill({ + TransactionType: 'TicketCreate', + Account: wallet.address, + TicketCount: 10, + Sequence: current_sequence, + LastLedgerSequence: vli + LLS_OFFSET, + }) -// 5. Submit TicketCreate ------------------------------------------------------ -$("#ticketcreate-submit").click( submit_handler ) + block.find('.output-area').append( + `<p>Prepared transaction:</p> + <pre><code>${pretty_print(prepared)}</code></pre>`, + ) -// 6. Wait for Validation: handled by interactive-tutorial.js and by the -// generic submit handler in the previous step. -------------------------------- + const { tx_blob, hash } = wallet.sign(prepared) + block.find('.output-area').append(`<p>Transaction hash: <code id="tx_id">${hash}</code></p>`) + block.find('.output-area').append(`<p>Signed blob:</p><pre class="tx-blob"><code id="tx_blob">${tx_blob}</code></pre>`) -// Intermission ---------------------------------------------------------------- -async function intermission_submit(event, tx_json) { - const block = $(event.target).closest(".interactive-block") - const wallet = get_wallet(event) - if (!wallet) {return} - const prepared = await api.autofill(tx_json) - const {tx_blob, hash} = wallet.sign(prepared) - const prelim = await api.request({ - "command": "submit", - "tx_blob": tx_blob + complete_step('Prepare & Sign') }) - block.find(".output-area").append(`<p>${prepared.TransactionType} + // 5. Submit TicketCreate ------------------------------------------------------ + $('#ticketcreate-submit').click(submit_handler) + + // 6. Wait for Validation: handled by interactive-tutorial.js and by the + // generic submit handler in the previous step. -------------------------------- + + // Intermission ---------------------------------------------------------------- + async function intermission_submit(event, tx_json) { + const block = $(event.target).closest('.interactive-block') + const wallet = get_wallet(event) + if (!wallet) { + return + } + const prepared = await api.autofill(tx_json) + const { tx_blob, hash } = wallet.sign(prepared) + const prelim = await api.request({ + command: 'submit', + tx_blob: tx_blob, + }) + + block.find('.output-area').append(`<p>${prepared.TransactionType} ${prepared.Sequence}: <a href="https://devnet.xrpl.org/transactions/${hash}" target="_blank">${prelim.result.engine_result}</a></p>`) -} + } -$("#intermission-payment").click( async function(event) { - const address = get_address(event) - if (!address) {return} + $('#intermission-payment').click(async function (event) { + const address = get_address(event) + if (!address) { + return + } - intermission_submit(event, { - "TransactionType": "Payment", - "Account": address, - "Destination": "rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe", // Testnet Faucet - "Amount": xrpl.xrpToDrops("201") - }) - - complete_step("Intermission") -}) - -$("#intermission-escrowcreate").click( async function(event) { - const address = get_address(event) - if (!address) {return} - - intermission_submit(event, { - "TransactionType": "EscrowCreate", - "Account": address, - "Destination": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", // Genesis acct - "Amount": xrpl.xrpToDrops("0.13"), // Arbitrary amount - "FinishAfter": xrpl.isoTimeToRippleTime(Date()) + 30 // 30 seconds from now - }) - - complete_step("Intermission") -}) - -$("#intermission-accountset").click( async function(event) { - const address = get_address(event) - if (!address) {return} - - intermission_submit(event, { - "TransactionType": "AccountSet", - "Account": address - }) - - complete_step("Intermission") -}) - -// 7. Check Available Tickets -------------------------------------------------- -$("#check-tickets").click( async function(event) { - const block = $(event.target).closest(".interactive-block") - const address = get_address(event) - if (!address) {return} - // Wipe previous output - block.find(".output-area").html("") - block.find(".loader").show() - - let response = await api.request({ - "command": "account_objects", - "account": address, - "type": "ticket" + intermission_submit(event, { + TransactionType: 'Payment', + Account: address, + Destination: 'rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe', // Testnet Faucet + Amount: xrpl.xrpToDrops('201'), }) - block.find(".output-area").html( - `<pre><code>${pretty_print(response)}</code></pre>`) - block.find(".loader").hide() + complete_step('Intermission') + }) - // Reset the next step's form & add these tickets - $("#ticket-selector .form-area").html("") - response.result.account_objects.forEach((ticket, i) => { - $("#ticket-selector .form-area").append( + $('#intermission-escrowcreate').click(async function (event) { + const address = get_address(event) + if (!address) { + return + } + + intermission_submit(event, { + TransactionType: 'EscrowCreate', + Account: address, + Destination: 'rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh', // Genesis acct + Amount: xrpl.xrpToDrops('0.13'), // Arbitrary amount + FinishAfter: xrpl.isoTimeToRippleTime(Date()) + 30, // 30 seconds from now + }) + + complete_step('Intermission') + }) + + $('#intermission-accountset').click(async function (event) { + const address = get_address(event) + if (!address) { + return + } + + intermission_submit(event, { + TransactionType: 'AccountSet', + Account: address, + }) + + complete_step('Intermission') + }) + + // 7. Check Available Tickets -------------------------------------------------- + $('#check-tickets').click(async function (event) { + const block = $(event.target).closest('.interactive-block') + const address = get_address(event) + if (!address) { + return + } + // Wipe previous output + block.find('.output-area').html('') + block.find('.loader').show() + + let response = await api.request({ + command: 'account_objects', + account: address, + type: 'ticket', + }) + block.find('.output-area').html(`<pre><code>${pretty_print(response)}</code></pre>`) + + block.find('.loader').hide() + + // Reset the next step's form & add these tickets + $('#ticket-selector .form-area').html('') + response.result.account_objects.forEach((ticket, i) => { + $('#ticket-selector .form-area').append( `<div class="form-check form-check-inline"> <input class="form-check-input" type="radio" id="ticket${i}" name="ticket-radio-set" value="${ticket.TicketSequence}"> <label class="form-check-label" - for="ticket${i}">${ticket.TicketSequence}</label></div>`) + for="ticket${i}">${ticket.TicketSequence}</label></div>`, + ) }) - complete_step("Check Tickets") -}) - -// 8. Prepare Ticketed Transaction --------------------------------------------- -$("#prepare-ticketed-tx").click(async function(event) { - const wallet = get_wallet(event) - if (!wallet) {return} - - const block = $(event.target).closest(".interactive-block") - block.find(".output-area").html("") - const use_ticket = parseInt($('input[name="ticket-radio-set"]:checked').val()) - if (!use_ticket) { - show_error(block, "You must choose a ticket first.") - return - } - const vli = await api.getLedgerIndex() - - const prepared_t = await api.autofill({ - "TransactionType": "AccountSet", - "Account": wallet.address, - "TicketSequence": use_ticket, - "Sequence": 0, - "LastLedgerSequence": vli+LLS_OFFSET + complete_step('Check Tickets') }) - block.find(".output-area").append( - `<p>Prepared transaction:</p> - <pre><code>${pretty_print(prepared_t)}</code></pre>`) + // 8. Prepare Ticketed Transaction --------------------------------------------- + $('#prepare-ticketed-tx').click(async function (event) { + const wallet = get_wallet(event) + if (!wallet) { + return + } - const {tx_blob, hash} = wallet.sign(prepared_t) - block.find(".output-area").append( - `<p>Transaction hash: <code id="tx_id_t">${hash}</code></p>`) + const block = $(event.target).closest('.interactive-block') + block.find('.output-area').html('') + const use_ticket = parseInt($('input[name="ticket-radio-set"]:checked').val()) + if (!use_ticket) { + show_error(block, 'You must choose a ticket first.') + return + } + const vli = await api.getLedgerIndex() - block.find(".output-area").append( - `<pre style="visibility: none"> - <code id="tx_blob_t">${tx_blob}</code></pre>`) - - // Update breadcrumbs & activate next step - complete_step("Prepare Ticketed Tx") -}) - -// 9. Submit Ticketed Transaction ---------------------------------------------- -$("#ticketedtx-submit").click( submit_handler ) - -// 10. Wait for Validation (Again): handled by interactive-tutorial.js and by -// the generic submit handler in the previous step. -------------------------------- + const prepared_t = await api.autofill({ + TransactionType: 'AccountSet', + Account: wallet.address, + TicketSequence: use_ticket, + Sequence: 0, + LastLedgerSequence: vli + LLS_OFFSET, + }) + block.find('.output-area').append( + `<p>Prepared transaction:</p> + <pre><code>${pretty_print(prepared_t)}</code></pre>`, + ) + + const { tx_blob, hash } = wallet.sign(prepared_t) + block.find('.output-area').append(`<p>Transaction hash: <code id="tx_id_t">${hash}</code></p>`) + + block.find('.output-area').append( + `<pre style="visibility: none"> + <code id="tx_blob_t">${tx_blob}</code></pre>`, + ) + + // Update breadcrumbs & activate next step + complete_step('Prepare Ticketed Tx') + }) + + // 9. Submit Ticketed Transaction ---------------------------------------------- + $('#ticketedtx-submit').click(submit_handler) + + // 10. Wait for Validation (Again): handled by interactive-tutorial.js and by + // the generic submit handler in the previous step. -------------------------------- }) diff --git a/static/js/tx-sender.js b/static/js/tx-sender.js index e19451d2af..e6566c1f53 100644 --- a/static/js/tx-sender.js +++ b/static/js/tx-sender.js @@ -1,4 +1,4 @@ -const set_up_tx_sender = async function() { +const set_up_tx_sender = async function () { ////////////////////////////////////////////////////////////////////////////// // Notification helpers ////////////////////////////////////////////////////////////////////////////// @@ -6,101 +6,101 @@ const set_up_tx_sender = async function() { function successNotif(msg) { $.bootstrapGrowl(msg, { delay: 7000, - offset: {from: 'bottom', amount: 68}, + offset: { from: 'bottom', amount: 68 }, type: 'success', - width: 'auto' + width: 'auto', }) } function errorNotif(msg) { $.bootstrapGrowl(msg, { delay: 7000, - offset: {from: 'bottom', amount: 68}, + offset: { from: 'bottom', amount: 68 }, type: 'danger', - width: 'auto' + width: 'auto', }) } function logTx(txtype, hash, result) { let classes let icon - const txlink = "https://testnet.xrpl.org/transactions/" + hash - if (result === "tesSUCCESS") { - classes = "text-muted" + const txlink = 'https://testnet.xrpl.org/transactions/' + hash + if (result === 'tesSUCCESS') { + classes = 'text-muted' icon = '<i class="fa fa-check-circle"></i>' } else { - classes = "list-group-item-danger" + classes = 'list-group-item-danger' icon = '<i class="fa fa-times-circle"></i>' } const li = `<li class="list-group-item fade-in p-1 ${classes}">${icon} ${txtype}: <a href="${txlink}" target="_blank" class="external-link">${hash}</a></li>` - $("#tx-sender-history ul").prepend(li) + $('#tx-sender-history ul').prepend(li) } ////////////////////////////////////////////////////////////////////////////// // Connection / Setup ////////////////////////////////////////////////////////////////////////////// - const FAUCET_URL = "https://faucet.altnet.rippletest.net/accounts" - const TESTNET_URL = "wss://s.altnet.rippletest.net:51233" + const FAUCET_URL = 'https://faucet.altnet.rippletest.net/accounts' + const TESTNET_URL = 'wss://s.altnet.rippletest.net:51233' let connection_ready = false api = new xrpl.Client(TESTNET_URL) let sending_wallet - let xrp_balance = "TBD" + let xrp_balance = 'TBD' function enable_buttons_if_ready() { - if ( (typeof sending_wallet) === "undefined") { - console.debug("No sending address yet...") + if (typeof sending_wallet === 'undefined') { + console.debug('No sending address yet...') return false } if (!connection_ready) { - console.debug("API not connected yet...") + console.debug('API not connected yet...') return false } - $(".needs-connection").prop("disabled", false) - $(".needs-connection").removeClass("disabled") + $('.needs-connection').prop('disabled', false) + $('.needs-connection').removeClass('disabled') set_up_for_partial_payments() return true } - $("#init_button").click(async (evt) => { - console.log("Connecting to Testnet WebSocket...") + $('#init_button').click(async (evt) => { + console.log('Connecting to Testnet WebSocket...') await api.connect() - console.debug("Getting a sending address from the faucet...") + console.debug('Getting a sending address from the faucet...') try { const fund_response = await api.fundWallet() sending_wallet = fund_response.wallet xrp_balance = xrpl.dropsToXrp(fund_response.balance) - } catch(error) { + } catch (error) { console.error(error) - errorNotif("There was an error with the XRP Ledger Testnet Faucet. Reload this page to try again.") + errorNotif('There was an error with the XRP Ledger Testnet Faucet. Reload this page to try again.') return } - $("#balance-item").text(xrp_balance) + $('#balance-item').text(xrp_balance) - $(".sending-address-item").text(sending_wallet.address) - $("#init_button").prop("disabled", "disabled") - $("#init_button").addClass("disabled") - $("#init_button").attr("title", "Done") - $("#init_button").append(' <i class="fa fa-check-circle"></i>') + $('.sending-address-item').text(sending_wallet.address) + $('#init_button').prop('disabled', 'disabled') + $('#init_button').addClass('disabled') + $('#init_button').attr('title', 'Done') + $('#init_button').append(' <i class="fa fa-check-circle"></i>') enable_buttons_if_ready() }) api.on('connected', () => { connection_ready = true - $("#connection-status-item").text("Connected") - $("#connection-status-item").removeClass("disabled").addClass("active") + $('#connection-status-item').text('Connected') + $('#connection-status-item').removeClass('disabled').addClass('active') enable_buttons_if_ready() }) api.on('disconnected', (code) => { connection_ready = false - $("#connection-status-item").text("Not connected") - $("#connection-status-item").removeClass("active").addClass("disabled") + $('#connection-status-item').text('Not connected') + $('#connection-status-item').removeClass('active').addClass('disabled') }) ////////////////////////////////////////////////////////////////////////////// @@ -109,15 +109,14 @@ const set_up_tx_sender = async function() { // Helper function for await-able timeouts function timeout(ms) { - return new Promise(resolve => setTimeout(resolve, ms)); + return new Promise((resolve) => setTimeout(resolve, ms)) } async function update_xrp_balance() { - balances = await api.getBalances(sending_wallet.address, {currency: "XRP"}) - $("#balance-item").text(balances[0].value) + balances = await api.getBalances(sending_wallet.address, { currency: 'XRP' }) + $('#balance-item').text(balances[0].value) } - async function submit_and_notify(tx_object, use_wallet, silent) { if (use_wallet === undefined) { use_wallet = sending_wallet @@ -125,22 +124,22 @@ const set_up_tx_sender = async function() { try { // Auto-fill fields like Fee and Sequence prepared = await api.autofill(tx_object) - console.debug("Prepared:", prepared) - } catch(error) { + console.debug('Prepared:', prepared) + } catch (error) { console.log(error) if (!silent) { - errorNotif("Error preparing tx: "+error) + errorNotif('Error preparing tx: ' + error) } return } try { - const {tx_blob, hash} = use_wallet.sign(prepared) + const { tx_blob, hash } = use_wallet.sign(prepared) const final_result_data = await api.submitAndWait(tx_blob) - console.log("final_result_data is", final_result_data) + console.log('final_result_data is', final_result_data) let final_result = final_result_data.result.meta.TransactionResult if (!silent) { - if (final_result === "tesSUCCESS") { + if (final_result === 'tesSUCCESS') { successNotif(`${tx_object.TransactionType} tx succeeded (hash: ${hash})`) } else { errorNotif(`${tx_object.TransactionType} tx failed w/ code ${final_result} @@ -157,7 +156,6 @@ const set_up_tx_sender = async function() { } return } - } ////////////////////////////////////////////////////////////////////////////// @@ -167,93 +165,109 @@ const set_up_tx_sender = async function() { ////////////////////////////////////////////////////////////////////////////// let pp_issuer_wallet - let pp_sending_currency = "BAR" + let pp_sending_currency = 'BAR' async function set_up_for_partial_payments() { while (!connection_ready) { - console.debug("... waiting for connection before doing partial payment setup") + console.debug('... waiting for connection before doing partial payment setup') await timeout(200) } - console.debug("Starting partial payment setup...") - $("#pp_progress .progress-bar").addClass("progress-bar-animated") + console.debug('Starting partial payment setup...') + $('#pp_progress .progress-bar').addClass('progress-bar-animated') // 1. Get a funded address to use as issuer try { const fund_response = await api.fundWallet() pp_issuer_wallet = fund_response.wallet - } catch(error) { - console.log("Error getting issuer address for partial payments:", error) + } catch (error) { + console.log('Error getting issuer address for partial payments:', error) return } - $("#pp_progress .progress-bar").width("20%") + $('#pp_progress .progress-bar').width('20%') // 2. Set Default Ripple on issuer - let resp = await submit_and_notify({ - TransactionType: "AccountSet", - Account: pp_issuer_wallet.address, - SetFlag: xrpl.AccountSetAsfFlags.asfDefaultRipple - }, pp_issuer_wallet, true) + let resp = await submit_and_notify( + { + TransactionType: 'AccountSet', + Account: pp_issuer_wallet.address, + SetFlag: xrpl.AccountSetAsfFlags.asfDefaultRipple, + }, + pp_issuer_wallet, + true, + ) if (resp === undefined) { console.log("Couldn't set Default Ripple for partial payment issuer") return } - $("#pp_progress .progress-bar").width("40%") + $('#pp_progress .progress-bar').width('40%') // 3. Make a trust line from sending address to issuer - resp = await submit_and_notify({ - TransactionType: "TrustSet", - Account: sending_wallet.address, - LimitAmount: { - currency: pp_sending_currency, - value: "1000000000", // arbitrarily, 1 billion fake currency - issuer: pp_issuer_wallet.address - } - }, sending_wallet, true) + resp = await submit_and_notify( + { + TransactionType: 'TrustSet', + Account: sending_wallet.address, + LimitAmount: { + currency: pp_sending_currency, + value: '1000000000', // arbitrarily, 1 billion fake currency + issuer: pp_issuer_wallet.address, + }, + }, + sending_wallet, + true, + ) if (resp === undefined) { - console.log("Error making trust line to partial payment issuer") + console.log('Error making trust line to partial payment issuer') return } - $("#pp_progress .progress-bar").width("60%") + $('#pp_progress .progress-bar').width('60%') // 4. Issue fake currency to main sending address - resp = await submit_and_notify({ - TransactionType: "Payment", - Account: pp_issuer_wallet.address, - Destination: sending_wallet.address, - Amount: { - currency: pp_sending_currency, - value: "1000000000", - issuer: pp_issuer_wallet.address - } - }, pp_issuer_wallet, true) + resp = await submit_and_notify( + { + TransactionType: 'Payment', + Account: pp_issuer_wallet.address, + Destination: sending_wallet.address, + Amount: { + currency: pp_sending_currency, + value: '1000000000', + issuer: pp_issuer_wallet.address, + }, + }, + pp_issuer_wallet, + true, + ) if (resp === undefined) { - console.log("Error sending fake currency from partial payment issuer") + console.log('Error sending fake currency from partial payment issuer') return } - $("#pp_progress .progress-bar").width("80%") + $('#pp_progress .progress-bar').width('80%') // 5. Place offer to buy issued currency for XRP // When sending the partial payment, the sender consumes their own offer (!) // so they end up paying themselves issued currency then delivering XRP. - resp = await submit_and_notify({ - TransactionType: "OfferCreate", - Account: sending_wallet.address, - TakerGets: "1000000000000000", // 1 billion XRP - TakerPays: { - currency: pp_sending_currency, - value: "1000000000", - issuer: pp_issuer_wallet.address - } - }, sending_wallet, true) + resp = await submit_and_notify( + { + TransactionType: 'OfferCreate', + Account: sending_wallet.address, + TakerGets: '1000000000000000', // 1 billion XRP + TakerPays: { + currency: pp_sending_currency, + value: '1000000000', + issuer: pp_issuer_wallet.address, + }, + }, + sending_wallet, + true, + ) if (resp === undefined) { - console.log("Error placing order to enable partial payments") + console.log('Error placing order to enable partial payments') return } - $("#pp_progress .progress-bar").width("100%").removeClass("progress-bar-animated") - $("#pp_progress").hide() + $('#pp_progress .progress-bar').width('100%').removeClass('progress-bar-animated') + $('#pp_progress').hide() // Done. Enable "Send Partial Payment" button - console.log("Done getting ready to send partial payments.") - $("#send_partial_payment button").prop("disabled",false) - $("#send_partial_payment button").attr("title", "") + console.log('Done getting ready to send partial payments.') + $('#send_partial_payment button').prop('disabled', false) + $('#send_partial_payment button').attr('title', '') } ////////////////////////////////////////////////////////////////////////////// @@ -262,207 +276,204 @@ const set_up_tx_sender = async function() { // Destination Address box ----------------------------------------------- async function on_dest_address_update(event) { - const d_a = $("#destination_address").val() + const d_a = $('#destination_address').val() if (xrpl.isValidAddress(d_a)) { - $("#destination_address").addClass("is-valid").removeClass("is-invalid") - if (d_a[0] == "X") { - $("#x-address-warning").show() + $('#destination_address').addClass('is-valid').removeClass('is-invalid') + if (d_a[0] == 'X') { + $('#x-address-warning').show() } else { - $("#x-address-warning").hide() + $('#x-address-warning').hide() } } else { - $("#destination_address").addClass("is-invalid").removeClass("is-valid") - $("#x-address-warning").hide() + $('#destination_address').addClass('is-invalid').removeClass('is-valid') + $('#x-address-warning').hide() } } - $("#destination_address").change(on_dest_address_update) + $('#destination_address').change(on_dest_address_update) const search_params = new URLSearchParams(window.location.search) - if (search_params.has("destination")) { - const d_a = search_params.get("destination") - $("#destination_address").val(d_a) + if (search_params.has('destination')) { + const d_a = search_params.get('destination') + $('#destination_address').val(d_a) on_dest_address_update() } // 1. Send XRP Payment Handler ------------------------------------------- async function on_click_send_xrp_payment(event) { - const destination_address = $("#destination_address").val() - const xrp_drops_input = $("#send_xrp_payment_amount").val() - $("#send_xrp_payment .loader").show() - $("#send_xrp_payment button").prop("disabled","disabled") + const destination_address = $('#destination_address').val() + const xrp_drops_input = $('#send_xrp_payment_amount').val() + $('#send_xrp_payment .loader').show() + $('#send_xrp_payment button').prop('disabled', 'disabled') await submit_and_notify({ - TransactionType: "Payment", + TransactionType: 'Payment', Account: sending_wallet.address, Destination: destination_address, - Amount: xrp_drops_input + Amount: xrp_drops_input, }) - $("#send_xrp_payment .loader").hide() - $("#send_xrp_payment button").prop("disabled",false) - + $('#send_xrp_payment .loader').hide() + $('#send_xrp_payment button').prop('disabled', false) } - $("#send_xrp_payment button").click(on_click_send_xrp_payment) + $('#send_xrp_payment button').click(on_click_send_xrp_payment) // 2. Send Partial Payment Handler --------------------------------------- async function on_click_send_partial_payment(event) { - const destination_address = $("#destination_address").val() - $("#send_partial_payment .loader").show() - $("#send_partial_payment button").prop("disabled","disabled") + const destination_address = $('#destination_address').val() + $('#send_partial_payment .loader').show() + $('#send_partial_payment button').prop('disabled', 'disabled') await submit_and_notify({ - TransactionType: "Payment", + TransactionType: 'Payment', Account: sending_wallet.address, Destination: destination_address, - Amount: "1000000000000000", // 1 billion XRP + Amount: '1000000000000000', // 1 billion XRP SendMax: { - value: (Math.random()*.01).toPrecision(15), // random very small amount + value: (Math.random() * 0.01).toPrecision(15), // random very small amount currency: pp_sending_currency, - issuer: pp_issuer_wallet.address + issuer: pp_issuer_wallet.address, }, - Flags: xrpl.PaymentFlags.tfPartialPayment + Flags: xrpl.PaymentFlags.tfPartialPayment, }) - $("#send_partial_payment .loader").hide() - $("#send_partial_payment button").prop("disabled",false) + $('#send_partial_payment .loader').hide() + $('#send_partial_payment button').prop('disabled', false) } - $("#send_partial_payment button").click(on_click_send_partial_payment) - + $('#send_partial_payment button').click(on_click_send_partial_payment) // 3. Create Escrow Handler ---------------------------------------------- async function on_click_create_escrow(event) { - const destination_address = $("#destination_address").val() - const duration_seconds_txt = $("#create_escrow_duration_seconds").val() - const release_auto = $("#create_escrow_release_automatically").prop("checked") + const destination_address = $('#destination_address').val() + const duration_seconds_txt = $('#create_escrow_duration_seconds').val() + const release_auto = $('#create_escrow_release_automatically').prop('checked') const duration_seconds = parseInt(duration_seconds_txt, 10) if (duration_seconds === NaN || duration_seconds < 1) { - errorNotif("Error: Escrow duration must be a positive number of seconds") + errorNotif('Error: Escrow duration must be a positive number of seconds') return } const finish_after = xrpl.isoTimeToRippleTime(Date()) + duration_seconds - $("#create_escrow .loader").show() - $("#create_escrow button").prop("disabled","disabled") + $('#create_escrow .loader').show() + $('#create_escrow button').prop('disabled', 'disabled') const escrowcreate_tx_data = await submit_and_notify({ - TransactionType: "EscrowCreate", + TransactionType: 'EscrowCreate', Account: sending_wallet.address, Destination: destination_address, - Amount: "1000000", - FinishAfter: finish_after + Amount: '1000000', + FinishAfter: finish_after, }) if (escrowcreate_tx_data && release_auto) { // Wait until there's a ledger with a close time > FinishAfter // to submit the EscrowFinish - $("#escrow_progress .progress-bar").width("0%").addClass("progress-bar-animated") - $("#escrow_progress").show() + $('#escrow_progress .progress-bar').width('0%').addClass('progress-bar-animated') + $('#escrow_progress').show() let seconds_left let pct_done let latestCloseTimeRipple while (true) { - seconds_left = (finish_after - xrpl.isoTimeToRippleTime(Date())) - pct_done = Math.min(99, Math.max(0, (1-(seconds_left / duration_seconds)) * 100)) - $("#escrow_progress .progress-bar").width(pct_done+"%") + seconds_left = finish_after - xrpl.isoTimeToRippleTime(Date()) + pct_done = Math.min(99, Math.max(0, (1 - seconds_left / duration_seconds) * 100)) + $('#escrow_progress .progress-bar').width(pct_done + '%') if (seconds_left <= 0) { // System time has advanced past FinishAfter. But is there a new // enough validated ledger? - latest_close_time = (await api.request({ - command: "ledger", - "ledger_index": "validated"} - )).result.ledger.close_time + latest_close_time = ( + await api.request({ + command: 'ledger', + ledger_index: 'validated', + }) + ).result.ledger.close_time if (latest_close_time > finish_after) { - $("#escrow_progress .progress-bar").width("100%").removeClass("progress-bar-animated") + $('#escrow_progress .progress-bar').width('100%').removeClass('progress-bar-animated') break } } // Update the progress bar & check again in 1 second. await timeout(1000) } - $("#escrow_progress").hide() + $('#escrow_progress').hide() // Now submit the EscrowFinish // Future feature: submit from a different sender, just to prove that // escrows can be finished by a third party await submit_and_notify({ Account: sending_wallet.address, - TransactionType: "EscrowFinish", + TransactionType: 'EscrowFinish', Owner: sending_wallet.address, - OfferSequence: escrowcreate_tx_data.result.Sequence + OfferSequence: escrowcreate_tx_data.result.Sequence, }) } - $("#create_escrow .loader").hide() - $("#create_escrow button").prop("disabled",false) + $('#create_escrow .loader').hide() + $('#create_escrow button').prop('disabled', false) } - $("#create_escrow button").click(on_click_create_escrow) + $('#create_escrow button').click(on_click_create_escrow) // 4. Create Payment Channel Handler ------------------------------------- async function on_click_create_payment_channel(event) { - const destination_address = $("#destination_address").val() - const xrp_drops_input = $("#create_payment_channel_amount").val() + const destination_address = $('#destination_address').val() + const xrp_drops_input = $('#create_payment_channel_amount').val() const pubkey = sending_wallet.publicKey - $("#create_payment_channel .loader").show() - $("#create_payment_channel button").prop("disabled","disabled") + $('#create_payment_channel .loader').show() + $('#create_payment_channel button').prop('disabled', 'disabled') await submit_and_notify({ - TransactionType: "PaymentChannelCreate", + TransactionType: 'PaymentChannelCreate', Account: sending_wallet.address, Destination: destination_address, Amount: xrp_drops_input, SettleDelay: 30, - PublicKey: pubkey + PublicKey: pubkey, }) - $("#create_payment_channel .loader").hide() - $("#create_payment_channel button").prop("disabled",false) + $('#create_payment_channel .loader').hide() + $('#create_payment_channel button').prop('disabled', false) // Future feature: figure out channel ID and enable a button that creates // valid claims for the given payment channel to help test redeeming } - $("#create_payment_channel button").click(on_click_create_payment_channel) - + $('#create_payment_channel button').click(on_click_create_payment_channel) // 5. Send Issued Currency Handler --------------------------------------- async function on_click_send_issued_currency(event) { - const destination_address = $("#destination_address").val() - const issue_amount = $("#send_issued_currency_amount").val() - const issue_code = $("#send_issued_currency_code").text() - $("#send_issued_currency .loader").show() - $("#send_issued_currency button").prop("disabled","disabled") + const destination_address = $('#destination_address').val() + const issue_amount = $('#send_issued_currency_amount').val() + const issue_code = $('#send_issued_currency_code').text() + $('#send_issued_currency .loader').show() + $('#send_issued_currency button').prop('disabled', 'disabled') // Future feature: cross-currency sending with paths? await submit_and_notify({ - TransactionType: "Payment", + TransactionType: 'Payment', Account: sending_wallet.address, Destination: destination_address, Amount: { - "currency": issue_code, - "value": issue_amount, - "issuer": sending_wallet.address - } + currency: issue_code, + value: issue_amount, + issuer: sending_wallet.address, + }, }) - $("#send_issued_currency .loader").hide() - $("#send_issued_currency button").prop("disabled",false) + $('#send_issued_currency .loader').hide() + $('#send_issued_currency button').prop('disabled', false) } - $("#send_issued_currency button").click(on_click_send_issued_currency) + $('#send_issued_currency button').click(on_click_send_issued_currency) // 6. Trust For Handler async function on_trust_for(event) { - const destination_address = $("#destination_address").val() - const trust_limit = $("#trust_for_amount").val() - const trust_currency_code = $("#trust_for_currency_code").text() - $("#trust_for .loader").show() - $("#trust_for button").prop("disabled","disabled") + const destination_address = $('#destination_address').val() + const trust_limit = $('#trust_for_amount').val() + const trust_currency_code = $('#trust_for_currency_code').text() + $('#trust_for .loader').show() + $('#trust_for button').prop('disabled', 'disabled') await submit_and_notify({ - TransactionType: "TrustSet", + TransactionType: 'TrustSet', Account: sending_wallet.address, LimitAmount: { currency: trust_currency_code, value: trust_limit, - issuer: destination_address - } + issuer: destination_address, + }, }) - $("#trust_for .loader").hide() - $("#trust_for button").prop("disabled",false) + $('#trust_for .loader').hide() + $('#trust_for button').prop('disabled', false) } - $("#trust_for button").click(on_trust_for) - + $('#trust_for button').click(on_trust_for) } - -$(document).ready( function() { +$(document).ready(function () { set_up_tx_sender() -} ) +}) diff --git a/static/js/type-helpers.ts b/static/js/type-helpers.ts index 5feb867b4c..2a2c751eb6 100644 --- a/static/js/type-helpers.ts +++ b/static/js/type-helpers.ts @@ -1,15 +1,7 @@ -type TypeofType = - | 'bigint' - | 'boolean' - | 'function' - | 'number' - | 'object' - | 'string' - | 'undefined' +type TypeofType = 'bigint' | 'boolean' | 'function' | 'number' | 'object' | 'string' | 'undefined' type TypeCheckFn = (thing: unknown) => boolean - /** * Curried function for creating typeof checker functions. * @param {string} type The type to check against (eg 'string', 'number') diff --git a/static/js/use-cases.js b/static/js/use-cases.js index cbe3133b47..cb3e7f66a4 100644 --- a/static/js/use-cases.js +++ b/static/js/use-cases.js @@ -1,68 +1,65 @@ $(document).ready(() => { - //show these featured on load. - const show_cats_arr = ["infrastructure", "developer_tooling"] + //show these featured on load. + const show_cats_arr = ['infrastructure', 'developer_tooling'] - function refreshList() { - - $("#use_case_companies_list .card-uses").hide() - - for (const category of show_cats_arr) { - $(`#use_case_companies_list .card-uses.category_${category}`).show() - } - - const featured_count = show_cats_arr.filter( (current) => { - return current == "infrastructure" || current == "developer_tooling" - }) - - const other_count = show_cats_arr.filter( (current) => { - if ( current !== "infrastructure" && current !== "developer_tooling" ){ - return current - } - }) - - // update category counts - if (featured_count.length === 0) { - $(".featured_count").hide() - }else { - $(".featured_count").html(featured_count.length) - $(".featured_count").show() - } - - if (other_count.length === 0) { - $(".other_count").hide() - }else{ - $(".other_count").html(other_count.length) - $(".other_count").show() - } - - if(show_cats_arr.length === 0) { - $(".total_count").hide() - }else { - $(".total_count").html(show_cats_arr.length) - $(".total_count").show() - } + function refreshList() { + $('#use_case_companies_list .card-uses').hide() + for (const category of show_cats_arr) { + $(`#use_case_companies_list .card-uses.category_${category}`).show() } - $(".cat_checkbox input").change((event) => { + const featured_count = show_cats_arr.filter((current) => { + return current == 'infrastructure' || current == 'developer_tooling' + }) + const other_count = show_cats_arr.filter((current) => { + if (current !== 'infrastructure' && current !== 'developer_tooling') { + return current + } + }) + + // update category counts + if (featured_count.length === 0) { + $('.featured_count').hide() + } else { + $('.featured_count').html(featured_count.length) + $('.featured_count').show() + } + + if (other_count.length === 0) { + $('.other_count').hide() + } else { + $('.other_count').html(other_count.length) + $('.other_count').show() + } + + if (show_cats_arr.length === 0) { + $('.total_count').hide() + } else { + $('.total_count').html(show_cats_arr.length) + $('.total_count').show() + } + } + + $('.cat_checkbox input').change((event) => { const lang = $(event.target).val() - const lang_checked = $(event.target).prop("checked") - - $(".input_"+lang).prop("checked", lang_checked) + const lang_checked = $(event.target).prop('checked') + + $('.input_' + lang).prop('checked', lang_checked) if (lang_checked) { - if ( show_cats_arr.indexOf(lang) === -1){ - show_cats_arr.push(lang) - } + if (show_cats_arr.indexOf(lang) === -1) { + show_cats_arr.push(lang) + } } else { - show_cats_arr.indexOf(lang) !== -1 && show_cats_arr.splice(show_cats_arr.indexOf(lang), 1) + show_cats_arr.indexOf(lang) !== -1 && show_cats_arr.splice(show_cats_arr.indexOf(lang), 1) } - // refresh all visible. + // refresh all visible. refreshList() }) - // on first load show the featured cats. - refreshList() + // on first load show the featured cats. + refreshList() }) diff --git a/static/js/video.js b/static/js/video.js index 6c2d78305c..2703ebcdb1 100644 --- a/static/js/video.js +++ b/static/js/video.js @@ -1,27 +1,24 @@ - -$(document).ready(()=> { - +$(document).ready(() => { //top video. Show inline replacing image - $("#playvideo").click(function(event){ - $("#playvideo").hide(); - $("#video1").show(); - $("#video1")[0].src += "?autoplay=1"; + $('#playvideo').click(function (event) { + $('#playvideo').hide() + $('#video1').show() + $('#video1')[0].src += '?autoplay=1' event.preventDefault() - }); + }) //bottom 3. Show in overlay - $('.btn1').click(function(event) { - var src = $(this).attr("data-url"); - $("#player").attr("src", src); - $('#video, #video-overlay').fadeIn('slow'); + $('.btn1').click(function (event) { + var src = $(this).attr('data-url') + $('#player').attr('src', src) + $('#video, #video-overlay').fadeIn('slow') event.preventDefault() - }); + }) +}) -}); - -$(document).on('touchend, mouseup', function(e) { +$(document).on('touchend, mouseup', function (e) { if (!$('#video').is(e.target)) { - $('#video, #video-overlay').fadeOut('slow'); - $("#player").attr("src", ''); + $('#video, #video-overlay').fadeOut('slow') + $('#player').attr('src', '') } -}); +}) diff --git a/static/js/xrp-ledger-toml-checker-test.js b/static/js/xrp-ledger-toml-checker-test.js index d1dcb826c0..d4bfb2727a 100644 --- a/static/js/xrp-ledger-toml-checker-test.js +++ b/static/js/xrp-ledger-toml-checker-test.js @@ -1,16 +1,12 @@ // This code takes in a wallet address, checks the domain field, then gets the TOML info to verify the domains ownership. -// This is runnable in NODE JS for easier testing, and works the same as the code in xrp-ledger-toml-checker.js -const WebSocket = require('ws'); -const https = require('https'); -const TOML = require('../vendor/iarna-toml-parse'); +// This is runnable in NODE JS for easier testing, and works the same as the code in xrp-ledger-toml-checker.js +const WebSocket = require('ws') +const https = require('https') +const TOML = require('../vendor/iarna-toml-parse') -const TOML_PATH = "/.well-known/xrp-ledger.toml" +const TOML_PATH = '/.well-known/xrp-ledger.toml' -const ACCOUNT_FIELDS = [ - "address", - "network", - "desc" -] +const ACCOUNT_FIELDS = ['address', 'network', 'desc'] // Test wallet addresses const WORKS = 'rSTAYKxF2K77ZLZ8GoAwTqPGaphAqMyXV' @@ -18,162 +14,165 @@ const NOTOML = 'rsoLo2S1kiGeCcn6hCUXVrCpGMWLrRrLZz' const NODOMAIN = 'rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh' // validator.xrpl-labs.com (Works for the domain side) -let socket; +let socket function makeLogEntry(text) { - log = console.log(text + '\n') + log = console.log(text + '\n') } function fetchFile(domain) { - const url = "https://" + domain + TOML_PATH - makeLogEntry('CHECKING DOMAIN: ' + url) - https.get(url, (resp) => { - let data = ''; - resp.on('data', (chunk) => { - data += chunk; - }); - resp.on('end', () => { - if (data != '') { - makeLogEntry('TOML FILE: Found'); - parseXrplToml(data) - } else { - makeLogEntry('TOML FILE: Not found') - makeLogEntry('ACCOUNT CAN NOT BE VERIFIED: TOML file was not found.') - return - } - }); - }).on("error", (err) => { - if (err.code == 'ENOTFOUND') { - makeLogEntry('ACCOUNT CAN NOT BE VERIFIED: Network error while fetching TOML file.') + const url = 'https://' + domain + TOML_PATH + makeLogEntry('CHECKING DOMAIN: ' + url) + https + .get(url, (resp) => { + let data = '' + resp.on('data', (chunk) => { + data += chunk + }) + resp.on('end', () => { + if (data != '') { + makeLogEntry('TOML FILE: Found') + parseXrplToml(data) + } else { + makeLogEntry('TOML FILE: Not found') + makeLogEntry('ACCOUNT CAN NOT BE VERIFIED: TOML file was not found.') + return } - return - }); + }) + }) + .on('error', (err) => { + if (err.code == 'ENOTFOUND') { + makeLogEntry('ACCOUNT CAN NOT BE VERIFIED: Network error while fetching TOML file.') + } + return + }) } function fetchWallet() { - makeLogEntry('\nCHECKING DOMAIN OF ACCOUNT...') - const url = "wss://xrplcluster.com" - if (typeof socket !== "undefined" && socket.readyState < 2) { - socket.close() - } - const data = { - "command": "account_info", - "account": wallet, - } - socket = new WebSocket(url) - socket.addEventListener('message', (event) => { - let data; - try { - data = JSON.parse(event.data) - if (data.status === 'success') { - if (data.result.account_data.Domain) { - try { - makeLogEntry('ACCOUNT ADDRESS: Valid') - decodeHex(data.result.account_data.Domain) - } catch { - makeLogEntry('error decoding domain field: ' + data.result.account_data.Domain) - } - } else { - makeLogEntry('ACCOUNT ADDRESS: Valid') - makeLogEntry('DOMAIN DECODED: Domain field not found') - makeLogEntry('CHECKING DOMAIN: Error') - makeLogEntry('TOML FILE: Not found') - makeLogEntry('ACCOUNT CAN NOT BE VERIFIED: Account has no domain field.') - return - } - } else { - makeLogEntry('ACCOUNT ADDRESS: Invalid') - makeLogEntry('DOMAIN DECODED: Domain field not found') - makeLogEntry('CHECKING DOMAIN: Error') - makeLogEntry('TOML FILE: Not found') - makeLogEntry('ACCOUNT CAN NOT BE VERIFIED: Account address is not valid.') - return - } - } catch (e) { - makeLogEntry(e) - return + makeLogEntry('\nCHECKING DOMAIN OF ACCOUNT...') + const url = 'wss://xrplcluster.com' + if (typeof socket !== 'undefined' && socket.readyState < 2) { + socket.close() + } + const data = { + command: 'account_info', + account: wallet, + } + socket = new WebSocket(url) + socket.addEventListener('message', (event) => { + let data + try { + data = JSON.parse(event.data) + if (data.status === 'success') { + if (data.result.account_data.Domain) { + try { + makeLogEntry('ACCOUNT ADDRESS: Valid') + decodeHex(data.result.account_data.Domain) + } catch { + makeLogEntry('error decoding domain field: ' + data.result.account_data.Domain) + } + } else { + makeLogEntry('ACCOUNT ADDRESS: Valid') + makeLogEntry('DOMAIN DECODED: Domain field not found') + makeLogEntry('CHECKING DOMAIN: Error') + makeLogEntry('TOML FILE: Not found') + makeLogEntry('ACCOUNT CAN NOT BE VERIFIED: Account has no domain field.') + return } - }) - socket.addEventListener('open', () => { - socket.send(JSON.stringify(data)) - }) + } else { + makeLogEntry('ACCOUNT ADDRESS: Invalid') + makeLogEntry('DOMAIN DECODED: Domain field not found') + makeLogEntry('CHECKING DOMAIN: Error') + makeLogEntry('TOML FILE: Not found') + makeLogEntry('ACCOUNT CAN NOT BE VERIFIED: Account address is not valid.') + return + } + } catch (e) { + makeLogEntry(e) + return + } + }) + socket.addEventListener('open', () => { + socket.send(JSON.stringify(data)) + }) } async function parseXrplToml(data) { - let parsed - makeLogEntry("Parsing TOML data...") - try { - parsed = TOML(data) - } catch (e) { - makeLogEntry('ACCOUNT CAN NOT BE VERIFIED: TOML file can not be read.') - return - } + let parsed + makeLogEntry('Parsing TOML data...') + try { + parsed = TOML(data) + } catch (e) { + makeLogEntry('ACCOUNT CAN NOT BE VERIFIED: TOML file can not be read.') + return + } - async function listEntries(list, fields) { - makeLogEntry('\nADDRESSES:') - let found = false; - for (i = 0; i < list.length; i++) { - let entry = list[i] - for (j = 0; j < fields.length; j++) { - let fieldname = fields[j] - if (fieldname == 'address' && entry[fieldname] !== undefined) { - if (entry[fieldname] === wallet) { - makeLogEntry('MATCH: ' + entry[fieldname] + ' *') - found = true; - } else { - makeLogEntry('NO_MATCH: ' + entry[fieldname]) - } - } - } + async function listEntries(list, fields) { + makeLogEntry('\nADDRESSES:') + let found = false + for (i = 0; i < list.length; i++) { + let entry = list[i] + for (j = 0; j < fields.length; j++) { + let fieldname = fields[j] + if (fieldname == 'address' && entry[fieldname] !== undefined) { + if (entry[fieldname] === wallet) { + makeLogEntry('MATCH: ' + entry[fieldname] + ' *') + found = true + } else { + makeLogEntry('NO_MATCH: ' + entry[fieldname]) + } } - if (found) { - makeLogEntry('ACCOUNT IS PRESENT: Account domain verified') - } else { - makeLogEntry('ACCOUNT IS NOT PRESENT: Account domain can not be verified') - } - return + } } - if (parsed.ACCOUNTS) { - if (!Array.isArray(parsed.ACCOUNTS)) { - makeLogEntry("Wrong type- should be table-array") - process.exit() - } else { - listEntries(parsed.ACCOUNTS, ACCOUNT_FIELDS) - } + if (found) { + makeLogEntry('ACCOUNT IS PRESENT: Account domain verified') + } else { + makeLogEntry('ACCOUNT IS NOT PRESENT: Account domain can not be verified') } + return + } + if (parsed.ACCOUNTS) { + if (!Array.isArray(parsed.ACCOUNTS)) { + makeLogEntry('Wrong type- should be table-array') + process.exit() + } else { + listEntries(parsed.ACCOUNTS, ACCOUNT_FIELDS) + } + } } function decodeHex(hex) { - let str = ''; - for (let i = 0; i < hex.length; i += 2) { - str += String.fromCharCode(parseInt(hex.substr(i, 2), 16)) - } - makeLogEntry('DOMAIN DECODED: ' + str) - fetchFile(str) + let str = '' + for (let i = 0; i < hex.length; i += 2) { + str += String.fromCharCode(parseInt(hex.substr(i, 2), 16)) + } + makeLogEntry('DOMAIN DECODED: ' + str) + fetchFile(str) } // 'wallet' must be a global func. -let wallet; +let wallet function main() { - makeLogEntry('\n\n--------EXAMPLE OF FAIL: WEBSITE TOML ERROR--------') - wallet = NOTOML + makeLogEntry('\n\n--------EXAMPLE OF FAIL: WEBSITE TOML ERROR--------') + wallet = NOTOML + fetchWallet() + + setTimeout(function () { + makeLogEntry('\n\n--------EXAMPLE OF FAIL: NO DOMAIN FIELD--------') + wallet = NODOMAIN fetchWallet() - setTimeout(function() { - makeLogEntry('\n\n--------EXAMPLE OF FAIL: NO DOMAIN FIELD--------') - wallet = NODOMAIN - fetchWallet() - - setTimeout(function() { - makeLogEntry('\n\n--------EXAMPLE OF SUCCESS--------') - wallet = WORKS - fetchWallet() - - setTimeout(function(){process.exit()},5000) - }, 5000) - }, 5000) + setTimeout(function () { + makeLogEntry('\n\n--------EXAMPLE OF SUCCESS--------') + wallet = WORKS + fetchWallet() + setTimeout(function () { + process.exit() + }, 5000) + }, 5000) + }, 5000) } main() diff --git a/static/js/xrp-ledger-toml-checker.js b/static/js/xrp-ledger-toml-checker.js index 6b622dc3a7..22529de3f5 100644 --- a/static/js/xrp-ledger-toml-checker.js +++ b/static/js/xrp-ledger-toml-checker.js @@ -1,44 +1,21 @@ -const TOML_PATH = "/.well-known/xrp-ledger.toml" -const TIPS = '<p>Check if the file is actually hosted at the URL above, check your server\'s HTTPS settings and certificate, and make sure your server provides the required <a href="xrp-ledger-toml.html#cors-setup">CORS header.</a></p>' +const TOML_PATH = '/.well-known/xrp-ledger.toml' +const TIPS = + '<p>Check if the file is actually hosted at the URL above, check your server\'s HTTPS settings and certificate, and make sure your server provides the required <a href="xrp-ledger-toml.html#cors-setup">CORS header.</a></p>' const TIPS_1 = '<p>Make sure you are entering a valid XRP Ledger address.</p>' const TIPS_2 = '<p>Make sure the account has the Domain field set.</p>' -const CLASS_GOOD = "badge badge-success" -const CLASS_BAD = "badge badge-danger" +const CLASS_GOOD = 'badge badge-success' +const CLASS_BAD = 'badge badge-danger' -const ACCOUNT_FIELDS = [ - "address", - "network", - "desc" -] -const VALIDATOR_FIELDS = [ - "public_key", - "network", - "owner_country", - "server_country", - "unl" -] -const PRINCIPAL_FIELDS = [ - "name", - "email" -] -const SERVER_FIELDS = [ - "json_rpc", - "ws", - "peer", - "network" -] -const CURRENCY_FIELDS = [ - "code", - "display_decimals", - "issuer", - "network", - "symbol" -] +const ACCOUNT_FIELDS = ['address', 'network', 'desc'] +const VALIDATOR_FIELDS = ['public_key', 'network', 'owner_country', 'server_country', 'unl'] +const PRINCIPAL_FIELDS = ['name', 'email'] +const SERVER_FIELDS = ['json_rpc', 'ws', 'peer', 'network'] +const CURRENCY_FIELDS = ['code', 'display_decimals', 'issuer', 'network', 'symbol'] function VerificationError(message, tips) { - this.name = "VerificationError" - this.message = message || "" - this.tips = tips || "" + this.name = 'VerificationError' + this.message = message || '' + this.tips = tips || '' } VerificationError.prototype = Error.prototype @@ -47,38 +24,40 @@ function makeLogEntry(text, raw) { if (raw) { log = $('<li></li>').appendTo('#log').append(text) } else { - log = $('<li></li>').text(text+" ").appendTo('#log') + log = $('<li></li>') + .text(text + ' ') + .appendTo('#log') } - log.resolve = function(text) { + log.resolve = function (text) { return $('<span></span>').html(text).appendTo(log) } return log } function fetchFile(walletDomain) { - var url; - var log; + var url + var log const domain = $('#domain').val() if (walletDomain !== undefined) { - url = "https://" + walletDomain + TOML_PATH + url = 'https://' + walletDomain + TOML_PATH log = makeLogEntryWallet('Checking ' + url + '...') } else { - url = "https://" + domain + TOML_PATH + url = 'https://' + domain + TOML_PATH log = makeLogEntry('Checking ' + url + '...') } $.ajax({ url: url, dataType: 'text', - success: function(data) { + success: function (data) { log.resolve('FOUND').addClass(CLASS_GOOD) - if (typeof walletDomain !== 'undefined'){ + if (typeof walletDomain !== 'undefined') { parseXRPLTomlWallet(data) - } else{ + } else { parseXRPLToml(data, domain) } }, - error: function(jqxhr, status, error) { + error: function (jqxhr, status, error) { switch (status) { case 'timeout': err = 'TIMEOUT' @@ -93,51 +72,53 @@ function fetchFile(walletDomain) { err = 'UNKNOWN' } log.resolve(err).addClass(CLASS_BAD).after(TIPS) - } + }, }) } async function parseXRPLToml(data, domain) { let parsed - let logTOML = makeLogEntry("Parsing TOML data...") + let logTOML = makeLogEntry('Parsing TOML data...') try { parsed = TOML(data) - logTOML.resolve("SUCCESS").addClass(CLASS_GOOD) - } catch(e) { + logTOML.resolve('SUCCESS').addClass(CLASS_GOOD) + } catch (e) { logTOML.resolve(e).addClass(CLASS_BAD) return } - if (parsed.hasOwnProperty("METADATA")) { - const metadata_type = makeLogEntry("Metadata section: ") + if (parsed.hasOwnProperty('METADATA')) { + const metadata_type = makeLogEntry('Metadata section: ') if (Array.isArray(parsed.METADATA)) { - metadata_type.resolve("Wrong type - should be table").addClass(CLASS_BAD) + metadata_type.resolve('Wrong type - should be table').addClass(CLASS_BAD) } else { - metadata_type.resolve("Found").addClass(CLASS_GOOD) + metadata_type.resolve('Found').addClass(CLASS_GOOD) if (parsed.METADATA.modified) { - const mod_log = makeLogEntry("Modified date: ") + const mod_log = makeLogEntry('Modified date: ') try { mod_log.resolve(parsed.METADATA.modified.toISOString()).addClass(CLASS_GOOD) - } catch(e) { - mod_log.resolve("INVALID").addClass(CLASS_BAD) + } catch (e) { + mod_log.resolve('INVALID').addClass(CLASS_BAD) } } } } async function listEntries(name, list, fields, validate) { - let list_wrap = $("<p>"+name+"</p>") - let list_ol = $("<ol>").appendTo(list_wrap) - for (i=0; i<list.length; i++) { - let entry_wrap = $("<li>").appendTo(list_ol) + let list_wrap = $('<p>' + name + '</p>') + let list_ol = $('<ol>').appendTo(list_wrap) + for (i = 0; i < list.length; i++) { + let entry_wrap = $('<li>').appendTo(list_ol) let entry_def = $("<ul class='mb-3'>").appendTo(entry_wrap) let entry = list[i] - for (j=0; j<fields.length; j++) { + for (j = 0; j < fields.length; j++) { let fieldname = fields[j] if (entry[fieldname] !== undefined) { - let field_def = $("<li><strong>"+fieldname+": </strong>").appendTo(entry_def) - $(" <span class='"+fieldname+"'>").text(entry[fieldname]).appendTo(field_def) + let field_def = $('<li><strong>' + fieldname + ': </strong>').appendTo(entry_def) + $(" <span class='" + fieldname + "'>") + .text(entry[fieldname]) + .appendTo(field_def) } } if (validate) { @@ -153,42 +134,48 @@ async function parseXRPLToml(data, domain) { if (parsed.ACCOUNTS) { if (!Array.isArray(parsed.ACCOUNTS)) { - makeLogEntry("Accounts:").resolve("Wrong type - should be table-array").addClass(CLASS_BAD) + makeLogEntry('Accounts:').resolve('Wrong type - should be table-array').addClass(CLASS_BAD) } else { - listEntries("Accounts:", parsed.ACCOUNTS, ACCOUNT_FIELDS, async function(acct) { - if (acct.address === undefined) {return undefined} + listEntries('Accounts:', parsed.ACCOUNTS, ACCOUNT_FIELDS, async function (acct) { + if (acct.address === undefined) { + return undefined + } let net - if (acct.network === undefined) { net = "main" } else { net = acct.network } + if (acct.network === undefined) { + net = 'main' + } else { + net = acct.network + } return await validateAddressDomainOnNet(acct.address, domain, net) }) } } if (parsed.VALIDATORS) { if (!Array.isArray(parsed.VALIDATORS)) { - makeLogEntry("Validators:").resolve("Wrong type - should be table-array").addClass(CLASS_BAD) + makeLogEntry('Validators:').resolve('Wrong type - should be table-array').addClass(CLASS_BAD) } else { - listEntries("Validators:", parsed.VALIDATORS, VALIDATOR_FIELDS) + listEntries('Validators:', parsed.VALIDATORS, VALIDATOR_FIELDS) } } if (parsed.PRINCIPALS) { if (!Array.isArray(parsed.PRINCIPALS)) { - makeLogEntry("Principals:").resolve("Wrong type - should be table-array").addClass(CLASS_BAD) + makeLogEntry('Principals:').resolve('Wrong type - should be table-array').addClass(CLASS_BAD) } else { - listEntries("Principals:", parsed.PRINCIPALS, PRINCIPAL_FIELDS) + listEntries('Principals:', parsed.PRINCIPALS, PRINCIPAL_FIELDS) } } if (parsed.SERVERS) { if (!Array.isArray(parsed.SERVERS)) { - makeLogEntry("Servers:").resolve("Wrong type - should be table-array").addClass(CLASS_BAD) + makeLogEntry('Servers:').resolve('Wrong type - should be table-array').addClass(CLASS_BAD) } else { - listEntries("Servers:", parsed.SERVERS, SERVER_FIELDS) + listEntries('Servers:', parsed.SERVERS, SERVER_FIELDS) } } if (parsed.CURRENCIES) { if (!Array.isArray(parsed.CURRENCIES)) { - makeLogEntry("Currencies:").resolve("Wrong type - should be table-array").addClass(CLASS_BAD) + makeLogEntry('Currencies:').resolve('Wrong type - should be table-array').addClass(CLASS_BAD) } else { - listEntries("Currencies:", parsed.CURRENCIES, CURRENCY_FIELDS) + listEntries('Currencies:', parsed.CURRENCIES, CURRENCY_FIELDS) } } } @@ -197,19 +184,21 @@ async function parseXRPLToml(data, domain) { // Not proper unicode decoding, but it'll work for domains which are supposed // to be a subset of ASCII anyway. function decodeHex(hex) { - let str = ''; - for (let i = 0; i < hex.length; i += 2) { - str += String.fromCharCode(parseInt(hex.substr(i, 2), 16)) - } - return str + let str = '' + for (let i = 0; i < hex.length; i += 2) { + str += String.fromCharCode(parseInt(hex.substr(i, 2), 16)) + } + return str } async function validateAddressDomainOnNet(address, domain, net) { - if (!domain) { return undefined } // Can't validate an empty domain value + if (!domain) { + return undefined + } // Can't validate an empty domain value let api - if (net === "main") { + if (net === 'main') { api = new xrpl.Client('wss://s1.ripple.com') - } else if (net == "testnet") { + } else if (net == 'testnet') { api = new xrpl.Client('wss://s.altnet.rippletest.net:51233') } await api.connect() @@ -217,10 +206,10 @@ async function validateAddressDomainOnNet(address, domain, net) { let ai try { ai = await api.request({ - "command": "account_info", - "account": address + command: 'account_info', + account: address, }) - } catch(e) { + } catch (e) { console.warn(`failed to look up address ${address} on ${net} network"`, e) api.disconnect() return undefined @@ -235,8 +224,8 @@ async function validateAddressDomainOnNet(address, domain, net) { let domain_decoded try { domain_decoded = decodeHex(ai.result.account_data.Domain) - } catch(e) { - console.warn("error decoding domain value", ai.result.account_data.Domain, e) + } catch (e) { + console.warn('error decoding domain value', ai.result.account_data.Domain, e) api.disconnect() return undefined } @@ -245,18 +234,18 @@ async function validateAddressDomainOnNet(address, domain, net) { api.disconnect() return true } else if (domain_decoded === undefined) { - console.debug(address, ": Domain is undefined in settings") + console.debug(address, ': Domain is undefined in settings') api.disconnect() return undefined } else { - console.debug(address, ": Domain mismatch ("+domain_decoded+" vs. "+domain+")") + console.debug(address, ': Domain mismatch (' + domain_decoded + ' vs. ' + domain + ')') api.disconnect() return false } } function handleSubmitDomain(event) { - event.preventDefault(); + event.preventDefault() $('.result-title').show() $('#result').show() @@ -266,17 +255,19 @@ function handleSubmitDomain(event) { } // ------------------------------------------ DOMAIN VERIFICATION VIA ACCOUNT BELOW ------------------------------------------ -let wallet; -let socket; +let wallet +let socket function makeLogEntryWallet(text, raw) { let log if (raw) { log = $('<li></li>').appendTo('#verify-domain-log').append(text) } else { - log = $('<li></li>').text(text+" ").appendTo('#verify-domain-log') + log = $('<li></li>') + .text(text + ' ') + .appendTo('#verify-domain-log') } - log.resolve = function(text) { + log.resolve = function (text) { return $('<span></span>').html(text).appendTo(log) } return log @@ -285,31 +276,34 @@ function makeLogEntryWallet(text, raw) { function fetchWallet() { wallet = $('#verify-domain').val() const checkingLog = makeLogEntryWallet('Checking domain of account') - const url = "wss://xrplcluster.com" - if (typeof socket !== "undefined" && socket.readyState < 2) { + const url = 'wss://xrplcluster.com' + if (typeof socket !== 'undefined' && socket.readyState < 2) { socket.close() } const data = { - "command": "account_info", - "account": wallet, + command: 'account_info', + account: wallet, } socket = new WebSocket(url) socket.addEventListener('message', (event) => { - let data; + let data try { data = JSON.parse(event.data) if (data.status === 'success') { - if (data.result.account_data.Domain) { - try { - checkingLog.resolve('SUCCESS').addClass(CLASS_GOOD) - decodeHexWallet(data.result.account_data.Domain) - } catch(e) { - console.log(e) - checkingLog.resolve('ERROR').addClass(CLASS_BAD).after('<p>Error decoding domain field: ' + data.result.account_data.Domain + '</p>') - } - } else { - checkingLog.resolve('ERROR').addClass(CLASS_BAD).after(TIPS_2) + if (data.result.account_data.Domain) { + try { + checkingLog.resolve('SUCCESS').addClass(CLASS_GOOD) + decodeHexWallet(data.result.account_data.Domain) + } catch (e) { + console.log(e) + checkingLog + .resolve('ERROR') + .addClass(CLASS_BAD) + .after('<p>Error decoding domain field: ' + data.result.account_data.Domain + '</p>') } + } else { + checkingLog.resolve('ERROR').addClass(CLASS_BAD).after(TIPS_2) + } } else { checkingLog.resolve('ERROR').addClass(CLASS_BAD).after(TIPS_1) } @@ -324,83 +318,87 @@ function fetchWallet() { async function parseXRPLTomlWallet(data) { let parsed - let logTOML = makeLogEntryWallet("Parsing TOML data...") + let logTOML = makeLogEntryWallet('Parsing TOML data...') try { parsed = TOML(data) - logTOML.resolve("SUCCESS").addClass(CLASS_GOOD) - } catch(e) { + logTOML.resolve('SUCCESS').addClass(CLASS_GOOD) + } catch (e) { logTOML.resolve(e).addClass(CLASS_BAD) return } - if (parsed.hasOwnProperty("METADATA")) { - const metadata_type = makeLogEntryWallet("Metadata section: ") + if (parsed.hasOwnProperty('METADATA')) { + const metadata_type = makeLogEntryWallet('Metadata section: ') if (Array.isArray(parsed.METADATA)) { - metadata_type.resolve("Wrong type - should be table").addClass(CLASS_BAD) + metadata_type.resolve('Wrong type - should be table').addClass(CLASS_BAD) } else { - metadata_type.resolve("Found").addClass(CLASS_GOOD) + metadata_type.resolve('Found').addClass(CLASS_GOOD) if (parsed.METADATA.modified) { - const mod_log = makeLogEntryWallet("Modified date: ") + const mod_log = makeLogEntryWallet('Modified date: ') try { mod_log.resolve(parsed.METADATA.modified.toISOString()).addClass(CLASS_GOOD) - } catch(e) { - mod_log.resolve("INVALID").addClass(CLASS_BAD) + } catch (e) { + mod_log.resolve('INVALID').addClass(CLASS_BAD) } } } } async function listEntriesWallet(name, list, fields) { - let found = false; - let list_wrap = $("<p>"+name+"</p>") - let list_ol = $("<ol>").appendTo(list_wrap) - for (i=0; i<list.length; i++) { - let entry_def = $("<ul>").appendTo(list_ol) + let found = false + let list_wrap = $('<p>' + name + '</p>') + let list_ol = $('<ol>').appendTo(list_wrap) + for (i = 0; i < list.length; i++) { + let entry_def = $('<ul>').appendTo(list_ol) let entry = list[i] - for (j=0; j<fields.length; j++) { + for (j = 0; j < fields.length; j++) { let fieldname = fields[j] if (entry['address'] === wallet) { - let field_def = $("<li><strong>"+fieldname+": </strong>").appendTo(entry_def) - $(" <span class='"+fieldname+"'>").text(entry[fieldname]).appendTo(field_def) - found=true; + let field_def = $('<li><strong>' + fieldname + ': </strong>').appendTo(entry_def) + $(" <span class='" + fieldname + "'>") + .text(entry[fieldname]) + .appendTo(field_def) + found = true } } } - - if(found) { + + if (found) { makeLogEntryWallet(list_wrap, true) - makeLogEntryWallet('Account has been found in TOML file and validated.').resolve('DOMAIN VALIDATED <i class="fa fa-check-circle"></i>').addClass(CLASS_GOOD) + makeLogEntryWallet('Account has been found in TOML file and validated.') + .resolve('DOMAIN VALIDATED <i class="fa fa-check-circle"></i>') + .addClass(CLASS_GOOD) } else { - let entry_def = $("<ul>").appendTo(list_ol) - let field_def = $("<li><strong>address: </strong>").appendTo(entry_def) + let entry_def = $('<ul>').appendTo(list_ol) + let field_def = $('<li><strong>address: </strong>').appendTo(entry_def) $(" <span class='address'>").text('Not found ').appendTo(field_def).append(' <li class="badge badge-danger">ERROR</li>') - + makeLogEntryWallet(list_wrap, true) makeLogEntryWallet('Account not found in TOML file. Domain can not be verified.').resolve('VALIDATION FAILED').addClass(CLASS_BAD) } } if (parsed.ACCOUNTS) { if (!Array.isArray(parsed.ACCOUNTS)) { - makeLogEntryWallet("Account:").resolve("Wrong type - should be table-array").addClass(CLASS_BAD) + makeLogEntryWallet('Account:').resolve('Wrong type - should be table-array').addClass(CLASS_BAD) } else { - listEntriesWallet("Account:", parsed.ACCOUNTS, ACCOUNT_FIELDS) + listEntriesWallet('Account:', parsed.ACCOUNTS, ACCOUNT_FIELDS) } } } function decodeHexWallet(hex) { - let str = ''; - for (let i = 0; i < hex.length; i += 2) { - str += String.fromCharCode(parseInt(hex.substr(i, 2), 16)) - } - const decodeLog = makeLogEntryWallet('Decoding domain hex') - decodeLog.resolve("SUCCESS").addClass(CLASS_GOOD) - fetchFile(str) + let str = '' + for (let i = 0; i < hex.length; i += 2) { + str += String.fromCharCode(parseInt(hex.substr(i, 2), 16)) + } + const decodeLog = makeLogEntryWallet('Decoding domain hex') + decodeLog.resolve('SUCCESS').addClass(CLASS_GOOD) + fetchFile(str) } function handleSubmitWallet(event) { - event.preventDefault(); + event.preventDefault() $('#verify-domain-result-title').show() $('#verify-domain-result').show() @@ -409,7 +407,6 @@ function handleSubmitWallet(event) { fetchWallet() } - $(document).ready(() => { $('#domain-entry').submit(handleSubmitDomain) $('#domain-verification').submit(handleSubmitWallet) diff --git a/static/js/xrpl-2.11.0.min.js b/static/js/xrpl-2.11.0.min.js index 40d1f28300..78dbb3f1d5 100644 --- a/static/js/xrpl-2.11.0.min.js +++ b/static/js/xrpl-2.11.0.min.js @@ -1,3 +1,37521 @@ /*! For license information please see xrpl-latest-min.js.LICENSE.txt */ -var xrpl;(()=>{var e={54373:(e,t)=>{"use strict";function r(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`Wrong positive integer: ${e}`)}function n(e){if("boolean"!=typeof e)throw new Error(`Expected boolean, not ${e}`)}function i(e,...t){if(!(e instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(t.length>0&&!t.includes(e.length))throw new TypeError(`Expected Uint8Array of length ${t}, not of length=${e.length}`)}function o(e){if("function"!=typeof e||"function"!=typeof e.create)throw new Error("Hash should be wrapped by utils.wrapConstructor");r(e.outputLen),r(e.blockLen)}function a(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function s(e,t){i(e);const r=t.outputLen;if(e.length<r)throw new Error(`digestInto() expects output buffer of length at least ${r}`)}Object.defineProperty(t,"__esModule",{value:!0}),t.output=t.exists=t.hash=t.bytes=t.bool=t.number=void 0,t.number=r,t.bool=n,t.bytes=i,t.hash=o,t.exists=a,t.output=s;const u={number:r,bool:n,bytes:i,hash:o,exists:a,output:s};t.default=u},74826:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SHA2=void 0;const n=r(54373),i=r(56266);class o extends i.Hash{constructor(e,t,r,n){super(),this.blockLen=e,this.outputLen=t,this.padOffset=r,this.isLE=n,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=(0,i.createView)(this.buffer)}update(e){n.default.exists(this);const{view:t,buffer:r,blockLen:o}=this,a=(e=(0,i.toBytes)(e)).length;for(let n=0;n<a;){const s=Math.min(o-this.pos,a-n);if(s!==o)r.set(e.subarray(n,n+s),this.pos),this.pos+=s,n+=s,this.pos===o&&(this.process(t,0),this.pos=0);else{const t=(0,i.createView)(e);for(;o<=a-n;n+=o)this.process(t,n)}}return this.length+=e.length,this.roundClean(),this}digestInto(e){n.default.exists(this),n.default.output(e,this),this.finished=!0;const{buffer:t,view:r,blockLen:o,isLE:a}=this;let{pos:s}=this;t[s++]=128,this.buffer.subarray(s).fill(0),this.padOffset>o-s&&(this.process(r,0),s=0);for(let e=s;e<o;e++)t[e]=0;!function(e,t,r,n){if("function"==typeof e.setBigUint64)return e.setBigUint64(t,r,n);const i=BigInt(32),o=BigInt(4294967295),a=Number(r>>i&o),s=Number(r&o),u=n?4:0,c=n?0:4;e.setUint32(t+u,a,n),e.setUint32(t+c,s,n)}(r,o-8,BigInt(8*this.length),a),this.process(r,0);const u=(0,i.createView)(e),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const f=c/4,l=this.get();if(f>l.length)throw new Error("_sha2: outputLen bigger than state");for(let e=0;e<f;e++)u.setUint32(4*e,l[e],a)}digest(){const{buffer:e,outputLen:t}=this;this.digestInto(e);const r=e.slice(0,t);return this.destroy(),r}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());const{blockLen:t,buffer:r,length:n,finished:i,destroyed:o,pos:a}=this;return e.length=n,e.pos=a,e.finished=i,e.destroyed=o,n%t&&e.buffer.set(r),e}}t.SHA2=o},35117:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.add=t.toBig=t.split=t.fromBig=void 0;const r=BigInt(2**32-1),n=BigInt(32);function i(e,t=!1){return t?{h:Number(e&r),l:Number(e>>n&r)}:{h:0|Number(e>>n&r),l:0|Number(e&r)}}function o(e,t=!1){let r=new Uint32Array(e.length),n=new Uint32Array(e.length);for(let o=0;o<e.length;o++){const{h:a,l:s}=i(e[o],t);[r[o],n[o]]=[a,s]}return[r,n]}function a(e,t,r,n){const i=(t>>>0)+(n>>>0);return{h:e+r+(i/2**32|0)|0,l:0|i}}t.fromBig=i,t.split=o,t.toBig=(e,t)=>BigInt(e>>>0)<<n|BigInt(t>>>0),t.add=a;const s={fromBig:i,split:o,toBig:t.toBig,shrSH:(e,t,r)=>e>>>r,shrSL:(e,t,r)=>e<<32-r|t>>>r,rotrSH:(e,t,r)=>e>>>r|t<<32-r,rotrSL:(e,t,r)=>e<<32-r|t>>>r,rotrBH:(e,t,r)=>e<<64-r|t>>>r-32,rotrBL:(e,t,r)=>e>>>r-32|t<<64-r,rotr32H:(e,t)=>t,rotr32L:(e,t)=>e,rotlSH:(e,t,r)=>e<<r|t>>>32-r,rotlSL:(e,t,r)=>t<<r|e>>>32-r,rotlBH:(e,t,r)=>t<<r-32|e>>>64-r,rotlBL:(e,t,r)=>e<<r-32|t>>>64-r,add:a,add3L:(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0),add3H:(e,t,r,n)=>t+r+n+(e/2**32|0)|0,add4L:(e,t,r,n)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0),add4H:(e,t,r,n,i)=>t+r+n+i+(e/2**32|0)|0,add5H:(e,t,r,n,i,o)=>t+r+n+i+o+(e/2**32|0)|0,add5L:(e,t,r,n,i)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0)+(i>>>0)};t.default=s},22235:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.crypto=void 0,t.crypto="object"==typeof globalThis&&"crypto"in globalThis?globalThis.crypto:void 0},5070:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.hmac=void 0;const n=r(54373),i=r(56266);class o extends i.Hash{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,n.default.hash(e);const r=(0,i.toBytes)(t);if(this.iHash=e.create(),"function"!=typeof this.iHash.update)throw new TypeError("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const o=this.blockLen,a=new Uint8Array(o);a.set(r.length>o?e.create().update(r).digest():r);for(let e=0;e<a.length;e++)a[e]^=54;this.iHash.update(a),this.oHash=e.create();for(let e=0;e<a.length;e++)a[e]^=106;this.oHash.update(a),a.fill(0)}update(e){return n.default.exists(this),this.iHash.update(e),this}digestInto(e){n.default.exists(this),n.default.bytes(e,this.outputLen),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){const e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||(e=Object.create(Object.getPrototypeOf(this),{}));const{oHash:t,iHash:r,finished:n,destroyed:i,blockLen:o,outputLen:a}=this;return e.finished=n,e.destroyed=i,e.blockLen=o,e.outputLen=a,e.oHash=t._cloneInto(e.oHash),e.iHash=r._cloneInto(e.iHash),e}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}t.hmac=(e,t,r)=>new o(e,t).update(r).digest(),t.hmac.create=(e,t)=>new o(e,t)},35e3:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.pbkdf2Async=t.pbkdf2=void 0;const n=r(54373),i=r(5070),o=r(56266);function a(e,t,r,a){n.default.hash(e);const s=(0,o.checkOpts)({dkLen:32,asyncTick:10},a),{c:u,dkLen:c,asyncTick:f}=s;if(n.default.number(u),n.default.number(c),n.default.number(f),u<1)throw new Error("PBKDF2: iterations (c) should be >= 1");const l=(0,o.toBytes)(t),d=(0,o.toBytes)(r),h=new Uint8Array(c),p=i.hmac.create(e,l),y=p._cloneInto().update(d);return{c:u,dkLen:c,asyncTick:f,DK:h,PRF:p,PRFSalt:y}}function s(e,t,r,n,i){return e.destroy(),t.destroy(),n&&n.destroy(),i.fill(0),r}t.pbkdf2=function(e,t,r,n){const{c:i,dkLen:u,DK:c,PRF:f,PRFSalt:l}=a(e,t,r,n);let d;const h=new Uint8Array(4),p=(0,o.createView)(h),y=new Uint8Array(f.outputLen);for(let e=1,t=0;t<u;e++,t+=f.outputLen){const r=c.subarray(t,t+f.outputLen);p.setInt32(0,e,!1),(d=l._cloneInto(d)).update(h).digestInto(y),r.set(y.subarray(0,r.length));for(let e=1;e<i;e++){f._cloneInto(d).update(y).digestInto(y);for(let e=0;e<r.length;e++)r[e]^=y[e]}}return s(f,l,c,d,y)},t.pbkdf2Async=async function(e,t,r,n){const{c:i,dkLen:u,asyncTick:c,DK:f,PRF:l,PRFSalt:d}=a(e,t,r,n);let h;const p=new Uint8Array(4),y=(0,o.createView)(p),g=new Uint8Array(l.outputLen);for(let e=1,t=0;t<u;e++,t+=l.outputLen){const r=f.subarray(t,t+l.outputLen);y.setInt32(0,e,!1),(h=d._cloneInto(h)).update(p).digestInto(g),r.set(g.subarray(0,r.length)),await(0,o.asyncLoop)(i-1,c,(e=>{l._cloneInto(h).update(g).digestInto(g);for(let e=0;e<r.length;e++)r[e]^=g[e]}))}return s(l,d,f,h,g)}},37789:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.sha224=t.sha256=void 0;const n=r(74826),i=r(56266),o=(e,t,r)=>e&t^e&r^t&r,a=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),s=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),u=new Uint32Array(64);class c extends n.SHA2{constructor(){super(64,32,8,!1),this.A=0|s[0],this.B=0|s[1],this.C=0|s[2],this.D=0|s[3],this.E=0|s[4],this.F=0|s[5],this.G=0|s[6],this.H=0|s[7]}get(){const{A:e,B:t,C:r,D:n,E:i,F:o,G:a,H:s}=this;return[e,t,r,n,i,o,a,s]}set(e,t,r,n,i,o,a,s){this.A=0|e,this.B=0|t,this.C=0|r,this.D=0|n,this.E=0|i,this.F=0|o,this.G=0|a,this.H=0|s}process(e,t){for(let r=0;r<16;r++,t+=4)u[r]=e.getUint32(t,!1);for(let e=16;e<64;e++){const t=u[e-15],r=u[e-2],n=(0,i.rotr)(t,7)^(0,i.rotr)(t,18)^t>>>3,o=(0,i.rotr)(r,17)^(0,i.rotr)(r,19)^r>>>10;u[e]=o+u[e-7]+n+u[e-16]|0}let{A:r,B:n,C:s,D:c,E:f,F:l,G:d,H:h}=this;for(let e=0;e<64;e++){const t=h+((0,i.rotr)(f,6)^(0,i.rotr)(f,11)^(0,i.rotr)(f,25))+((p=f)&l^~p&d)+a[e]+u[e]|0,y=((0,i.rotr)(r,2)^(0,i.rotr)(r,13)^(0,i.rotr)(r,22))+o(r,n,s)|0;h=d,d=l,l=f,f=c+t|0,c=s,s=n,n=r,r=t+y|0}var p;r=r+this.A|0,n=n+this.B|0,s=s+this.C|0,c=c+this.D|0,f=f+this.E|0,l=l+this.F|0,d=d+this.G|0,h=h+this.H|0,this.set(r,n,s,c,f,l,d,h)}roundClean(){u.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}class f extends c{constructor(){super(),this.A=-1056596264,this.B=914150663,this.C=812702999,this.D=-150054599,this.E=-4191439,this.F=1750603025,this.G=1694076839,this.H=-1090891868,this.outputLen=28}}t.sha256=(0,i.wrapConstructor)((()=>new c)),t.sha224=(0,i.wrapConstructor)((()=>new f))},94391:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.sha384=t.sha512_256=t.sha512_224=t.sha512=t.SHA512=void 0;const n=r(74826),i=r(35117),o=r(56266),[a,s]=i.default.split(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map((e=>BigInt(e)))),u=new Uint32Array(80),c=new Uint32Array(80);class f extends n.SHA2{constructor(){super(128,64,16,!1),this.Ah=1779033703,this.Al=-205731576,this.Bh=-1150833019,this.Bl=-2067093701,this.Ch=1013904242,this.Cl=-23791573,this.Dh=-1521486534,this.Dl=1595750129,this.Eh=1359893119,this.El=-1377402159,this.Fh=-1694144372,this.Fl=725511199,this.Gh=528734635,this.Gl=-79577749,this.Hh=1541459225,this.Hl=327033209}get(){const{Ah:e,Al:t,Bh:r,Bl:n,Ch:i,Cl:o,Dh:a,Dl:s,Eh:u,El:c,Fh:f,Fl:l,Gh:d,Gl:h,Hh:p,Hl:y}=this;return[e,t,r,n,i,o,a,s,u,c,f,l,d,h,p,y]}set(e,t,r,n,i,o,a,s,u,c,f,l,d,h,p,y){this.Ah=0|e,this.Al=0|t,this.Bh=0|r,this.Bl=0|n,this.Ch=0|i,this.Cl=0|o,this.Dh=0|a,this.Dl=0|s,this.Eh=0|u,this.El=0|c,this.Fh=0|f,this.Fl=0|l,this.Gh=0|d,this.Gl=0|h,this.Hh=0|p,this.Hl=0|y}process(e,t){for(let r=0;r<16;r++,t+=4)u[r]=e.getUint32(t),c[r]=e.getUint32(t+=4);for(let e=16;e<80;e++){const t=0|u[e-15],r=0|c[e-15],n=i.default.rotrSH(t,r,1)^i.default.rotrSH(t,r,8)^i.default.shrSH(t,r,7),o=i.default.rotrSL(t,r,1)^i.default.rotrSL(t,r,8)^i.default.shrSL(t,r,7),a=0|u[e-2],s=0|c[e-2],f=i.default.rotrSH(a,s,19)^i.default.rotrBH(a,s,61)^i.default.shrSH(a,s,6),l=i.default.rotrSL(a,s,19)^i.default.rotrBL(a,s,61)^i.default.shrSL(a,s,6),d=i.default.add4L(o,l,c[e-7],c[e-16]),h=i.default.add4H(d,n,f,u[e-7],u[e-16]);u[e]=0|h,c[e]=0|d}let{Ah:r,Al:n,Bh:o,Bl:f,Ch:l,Cl:d,Dh:h,Dl:p,Eh:y,El:g,Fh:b,Fl:m,Gh:v,Gl:w,Hh:_,Hl:E}=this;for(let e=0;e<80;e++){const t=i.default.rotrSH(y,g,14)^i.default.rotrSH(y,g,18)^i.default.rotrBH(y,g,41),S=i.default.rotrSL(y,g,14)^i.default.rotrSL(y,g,18)^i.default.rotrBL(y,g,41),A=y&b^~y&v,O=g&m^~g&w,M=i.default.add5L(E,S,O,s[e],c[e]),T=i.default.add5H(M,_,t,A,a[e],u[e]),I=0|M,N=i.default.rotrSH(r,n,28)^i.default.rotrBH(r,n,34)^i.default.rotrBH(r,n,39),x=i.default.rotrSL(r,n,28)^i.default.rotrBL(r,n,34)^i.default.rotrBL(r,n,39),L=r&o^r&l^o&l,k=n&f^n&d^f&d;_=0|v,E=0|w,v=0|b,w=0|m,b=0|y,m=0|g,({h:y,l:g}=i.default.add(0|h,0|p,0|T,0|I)),h=0|l,p=0|d,l=0|o,d=0|f,o=0|r,f=0|n;const R=i.default.add3L(I,x,k);r=i.default.add3H(R,T,N,L),n=0|R}({h:r,l:n}=i.default.add(0|this.Ah,0|this.Al,0|r,0|n)),({h:o,l:f}=i.default.add(0|this.Bh,0|this.Bl,0|o,0|f)),({h:l,l:d}=i.default.add(0|this.Ch,0|this.Cl,0|l,0|d)),({h,l:p}=i.default.add(0|this.Dh,0|this.Dl,0|h,0|p)),({h:y,l:g}=i.default.add(0|this.Eh,0|this.El,0|y,0|g)),({h:b,l:m}=i.default.add(0|this.Fh,0|this.Fl,0|b,0|m)),({h:v,l:w}=i.default.add(0|this.Gh,0|this.Gl,0|v,0|w)),({h:_,l:E}=i.default.add(0|this.Hh,0|this.Hl,0|_,0|E)),this.set(r,n,o,f,l,d,h,p,y,g,b,m,v,w,_,E)}roundClean(){u.fill(0),c.fill(0)}destroy(){this.buffer.fill(0),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}t.SHA512=f;class l extends f{constructor(){super(),this.Ah=-1942145080,this.Al=424955298,this.Bh=1944164710,this.Bl=-1982016298,this.Ch=502970286,this.Cl=855612546,this.Dh=1738396948,this.Dl=1479516111,this.Eh=258812777,this.El=2077511080,this.Fh=2011393907,this.Fl=79989058,this.Gh=1067287976,this.Gl=1780299464,this.Hh=286451373,this.Hl=-1848208735,this.outputLen=28}}class d extends f{constructor(){super(),this.Ah=573645204,this.Al=-64227540,this.Bh=-1621794909,this.Bl=-934517566,this.Ch=596883563,this.Cl=1867755857,this.Dh=-1774684391,this.Dl=1497426621,this.Eh=-1775747358,this.El=-1467023389,this.Fh=-1101128155,this.Fl=1401305490,this.Gh=721525244,this.Gl=746961066,this.Hh=246885852,this.Hl=-2117784414,this.outputLen=32}}class h extends f{constructor(){super(),this.Ah=-876896931,this.Al=-1056596264,this.Bh=1654270250,this.Bl=914150663,this.Ch=-1856437926,this.Cl=812702999,this.Dh=355462360,this.Dl=-150054599,this.Eh=1731405415,this.El=-4191439,this.Fh=-1900787065,this.Fl=1750603025,this.Gh=-619958771,this.Gl=1694076839,this.Hh=1203062813,this.Hl=-1090891868,this.outputLen=48}}t.sha512=(0,o.wrapConstructor)((()=>new f)),t.sha512_224=(0,o.wrapConstructor)((()=>new l)),t.sha512_256=(0,o.wrapConstructor)((()=>new d)),t.sha384=(0,o.wrapConstructor)((()=>new h))},56266:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.randomBytes=t.wrapConstructorWithOpts=t.wrapConstructor=t.checkOpts=t.Hash=t.concatBytes=t.toBytes=t.utf8ToBytes=t.asyncLoop=t.nextTick=t.hexToBytes=t.bytesToHex=t.isLE=t.rotr=t.createView=t.u32=t.u8=void 0;const n=r(22235);if(t.u8=e=>new Uint8Array(e.buffer,e.byteOffset,e.byteLength),t.u32=e=>new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4)),t.createView=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),t.rotr=(e,t)=>e<<32-t|e>>>t,t.isLE=68===new Uint8Array(new Uint32Array([287454020]).buffer)[0],!t.isLE)throw new Error("Non little-endian hardware is not supported");const i=Array.from({length:256},((e,t)=>t.toString(16).padStart(2,"0")));function o(e){if("string"!=typeof e)throw new TypeError("utf8ToBytes expected string, got "+typeof e);return(new TextEncoder).encode(e)}function a(e){if("string"==typeof e&&(e=o(e)),!(e instanceof Uint8Array))throw new TypeError(`Expected input type is Uint8Array (got ${typeof e})`);return e}t.bytesToHex=function(e){if(!(e instanceof Uint8Array))throw new Error("Uint8Array expected");let t="";for(let r=0;r<e.length;r++)t+=i[e[r]];return t},t.hexToBytes=function(e){if("string"!=typeof e)throw new TypeError("hexToBytes: expected string, got "+typeof e);if(e.length%2)throw new Error("hexToBytes: received invalid unpadded hex");const t=new Uint8Array(e.length/2);for(let r=0;r<t.length;r++){const n=2*r,i=e.slice(n,n+2),o=Number.parseInt(i,16);if(Number.isNaN(o)||o<0)throw new Error("Invalid byte sequence");t[r]=o}return t},t.nextTick=async()=>{},t.asyncLoop=async function(e,r,n){let i=Date.now();for(let o=0;o<e;o++){n(o);const e=Date.now()-i;e>=0&&e<r||(await(0,t.nextTick)(),i+=e)}},t.utf8ToBytes=o,t.toBytes=a,t.concatBytes=function(...e){if(!e.every((e=>e instanceof Uint8Array)))throw new Error("Uint8Array list expected");if(1===e.length)return e[0];const t=e.reduce(((e,t)=>e+t.length),0),r=new Uint8Array(t);for(let t=0,n=0;t<e.length;t++){const i=e[t];r.set(i,n),n+=i.length}return r},t.Hash=class{clone(){return this._cloneInto()}},t.checkOpts=function(e,t){if(void 0!==t&&("object"!=typeof t||(r=t,"[object Object]"!==Object.prototype.toString.call(r)||r.constructor!==Object)))throw new TypeError("Options should be object or undefined");var r;return Object.assign(e,t)},t.wrapConstructor=function(e){const t=t=>e().update(a(t)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t},t.wrapConstructorWithOpts=function(e){const t=(t,r)=>e(r).update(a(t)).digest(),r=e({});return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=t=>e(t),t},t.randomBytes=function(e=32){if(n.crypto&&"function"==typeof n.crypto.getRandomValues)return n.crypto.getRandomValues(new Uint8Array(e));throw new Error("crypto.getRandomValues must be defined")}},65975:(e,t,r)=>{"use strict";const n=t;n.bignum=r(10660),n.define=r(36944).define,n.base=r(64581),n.constants=r(47961),n.decoders=r(39605),n.encoders=r(52408)},36944:(e,t,r)=>{"use strict";const n=r(52408),i=r(39605),o=r(19105);function a(e,t){this.name=e,this.body=t,this.decoders={},this.encoders={}}t.define=function(e,t){return new a(e,t)},a.prototype._createNamed=function(e){const t=this.name;function r(e){this._initNamed(e,t)}return o(r,e),r.prototype._initNamed=function(t,r){e.call(this,t,r)},new r(this)},a.prototype._getDecoder=function(e){return e=e||"der",this.decoders.hasOwnProperty(e)||(this.decoders[e]=this._createNamed(i[e])),this.decoders[e]},a.prototype.decode=function(e,t,r){return this._getDecoder(t).decode(e,r)},a.prototype._getEncoder=function(e){return e=e||"der",this.encoders.hasOwnProperty(e)||(this.encoders[e]=this._createNamed(n[e])),this.encoders[e]},a.prototype.encode=function(e,t,r){return this._getEncoder(t).encode(e,r)}},3961:(e,t,r)=>{"use strict";const n=r(19105),i=r(98147).b,o=r(95848).Buffer;function a(e,t){i.call(this,t),o.isBuffer(e)?(this.base=e,this.offset=0,this.length=e.length):this.error("Input not Buffer")}function s(e,t){if(Array.isArray(e))this.length=0,this.value=e.map((function(e){return s.isEncoderBuffer(e)||(e=new s(e,t)),this.length+=e.length,e}),this);else if("number"==typeof e){if(!(0<=e&&e<=255))return t.error("non-byte EncoderBuffer value");this.value=e,this.length=1}else if("string"==typeof e)this.value=e,this.length=o.byteLength(e);else{if(!o.isBuffer(e))return t.error("Unsupported type: "+typeof e);this.value=e,this.length=e.length}}n(a,i),t.C=a,a.isDecoderBuffer=function(e){return e instanceof a||"object"==typeof e&&o.isBuffer(e.base)&&"DecoderBuffer"===e.constructor.name&&"number"==typeof e.offset&&"number"==typeof e.length&&"function"==typeof e.save&&"function"==typeof e.restore&&"function"==typeof e.isEmpty&&"function"==typeof e.readUInt8&&"function"==typeof e.skip&&"function"==typeof e.raw},a.prototype.save=function(){return{offset:this.offset,reporter:i.prototype.save.call(this)}},a.prototype.restore=function(e){const t=new a(this.base);return t.offset=e.offset,t.length=this.offset,this.offset=e.offset,i.prototype.restore.call(this,e.reporter),t},a.prototype.isEmpty=function(){return this.offset===this.length},a.prototype.readUInt8=function(e){return this.offset+1<=this.length?this.base.readUInt8(this.offset++,!0):this.error(e||"DecoderBuffer overrun")},a.prototype.skip=function(e,t){if(!(this.offset+e<=this.length))return this.error(t||"DecoderBuffer overrun");const r=new a(this.base);return r._reporterState=this._reporterState,r.offset=this.offset,r.length=this.offset+e,this.offset+=e,r},a.prototype.raw=function(e){return this.base.slice(e?e.offset:this.offset,this.length)},t.R=s,s.isEncoderBuffer=function(e){return e instanceof s||"object"==typeof e&&"EncoderBuffer"===e.constructor.name&&"number"==typeof e.length&&"function"==typeof e.join},s.prototype.join=function(e,t){return e||(e=o.alloc(this.length)),t||(t=0),0===this.length||(Array.isArray(this.value)?this.value.forEach((function(r){r.join(e,t),t+=r.length})):("number"==typeof this.value?e[t]=this.value:"string"==typeof this.value?e.write(this.value,t):o.isBuffer(this.value)&&this.value.copy(e,t),t+=this.length)),e}},64581:(e,t,r)=>{"use strict";const n=t;n.Reporter=r(98147).b,n.DecoderBuffer=r(3961).C,n.EncoderBuffer=r(3961).R,n.Node=r(7412)},7412:(e,t,r)=>{"use strict";const n=r(98147).b,i=r(3961).R,o=r(3961).C,a=r(44647),s=["seq","seqof","set","setof","objid","bool","gentime","utctime","null_","enum","int","objDesc","bitstr","bmpstr","charstr","genstr","graphstr","ia5str","iso646str","numstr","octstr","printstr","t61str","unistr","utf8str","videostr"],u=["key","obj","use","optional","explicit","implicit","def","choice","any","contains"].concat(s);function c(e,t,r){const n={};this._baseState=n,n.name=r,n.enc=e,n.parent=t||null,n.children=null,n.tag=null,n.args=null,n.reverseArgs=null,n.choice=null,n.optional=!1,n.any=!1,n.obj=!1,n.use=null,n.useDecoder=null,n.key=null,n.default=null,n.explicit=null,n.implicit=null,n.contains=null,n.parent||(n.children=[],this._wrap())}e.exports=c;const f=["enc","parent","children","tag","args","reverseArgs","choice","optional","any","obj","use","alteredUse","key","default","explicit","implicit","contains"];c.prototype.clone=function(){const e=this._baseState,t={};f.forEach((function(r){t[r]=e[r]}));const r=new this.constructor(t.parent);return r._baseState=t,r},c.prototype._wrap=function(){const e=this._baseState;u.forEach((function(t){this[t]=function(){const r=new this.constructor(this);return e.children.push(r),r[t].apply(r,arguments)}}),this)},c.prototype._init=function(e){const t=this._baseState;a(null===t.parent),e.call(this),t.children=t.children.filter((function(e){return e._baseState.parent===this}),this),a.equal(t.children.length,1,"Root node can have only one child")},c.prototype._useArgs=function(e){const t=this._baseState,r=e.filter((function(e){return e instanceof this.constructor}),this);e=e.filter((function(e){return!(e instanceof this.constructor)}),this),0!==r.length&&(a(null===t.children),t.children=r,r.forEach((function(e){e._baseState.parent=this}),this)),0!==e.length&&(a(null===t.args),t.args=e,t.reverseArgs=e.map((function(e){if("object"!=typeof e||e.constructor!==Object)return e;const t={};return Object.keys(e).forEach((function(r){r==(0|r)&&(r|=0);const n=e[r];t[n]=r})),t})))},["_peekTag","_decodeTag","_use","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeInt","_decodeBool","_decodeList","_encodeComposite","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool"].forEach((function(e){c.prototype[e]=function(){const t=this._baseState;throw new Error(e+" not implemented for encoding: "+t.enc)}})),s.forEach((function(e){c.prototype[e]=function(){const t=this._baseState,r=Array.prototype.slice.call(arguments);return a(null===t.tag),t.tag=e,this._useArgs(r),this}})),c.prototype.use=function(e){a(e);const t=this._baseState;return a(null===t.use),t.use=e,this},c.prototype.optional=function(){return this._baseState.optional=!0,this},c.prototype.def=function(e){const t=this._baseState;return a(null===t.default),t.default=e,t.optional=!0,this},c.prototype.explicit=function(e){const t=this._baseState;return a(null===t.explicit&&null===t.implicit),t.explicit=e,this},c.prototype.implicit=function(e){const t=this._baseState;return a(null===t.explicit&&null===t.implicit),t.implicit=e,this},c.prototype.obj=function(){const e=this._baseState,t=Array.prototype.slice.call(arguments);return e.obj=!0,0!==t.length&&this._useArgs(t),this},c.prototype.key=function(e){const t=this._baseState;return a(null===t.key),t.key=e,this},c.prototype.any=function(){return this._baseState.any=!0,this},c.prototype.choice=function(e){const t=this._baseState;return a(null===t.choice),t.choice=e,this._useArgs(Object.keys(e).map((function(t){return e[t]}))),this},c.prototype.contains=function(e){const t=this._baseState;return a(null===t.use),t.contains=e,this},c.prototype._decode=function(e,t){const r=this._baseState;if(null===r.parent)return e.wrapResult(r.children[0]._decode(e,t));let n,i=r.default,a=!0,s=null;if(null!==r.key&&(s=e.enterKey(r.key)),r.optional){let n=null;if(null!==r.explicit?n=r.explicit:null!==r.implicit?n=r.implicit:null!==r.tag&&(n=r.tag),null!==n||r.any){if(a=this._peekTag(e,n,r.any),e.isError(a))return a}else{const n=e.save();try{null===r.choice?this._decodeGeneric(r.tag,e,t):this._decodeChoice(e,t),a=!0}catch(e){a=!1}e.restore(n)}}if(r.obj&&a&&(n=e.enterObject()),a){if(null!==r.explicit){const t=this._decodeTag(e,r.explicit);if(e.isError(t))return t;e=t}const n=e.offset;if(null===r.use&&null===r.choice){let t;r.any&&(t=e.save());const n=this._decodeTag(e,null!==r.implicit?r.implicit:r.tag,r.any);if(e.isError(n))return n;r.any?i=e.raw(t):e=n}if(t&&t.track&&null!==r.tag&&t.track(e.path(),n,e.length,"tagged"),t&&t.track&&null!==r.tag&&t.track(e.path(),e.offset,e.length,"content"),r.any||(i=null===r.choice?this._decodeGeneric(r.tag,e,t):this._decodeChoice(e,t)),e.isError(i))return i;if(r.any||null!==r.choice||null===r.children||r.children.forEach((function(r){r._decode(e,t)})),r.contains&&("octstr"===r.tag||"bitstr"===r.tag)){const n=new o(i);i=this._getUse(r.contains,e._reporterState.obj)._decode(n,t)}}return r.obj&&a&&(i=e.leaveObject(n)),null===r.key||null===i&&!0!==a?null!==s&&e.exitKey(s):e.leaveKey(s,r.key,i),i},c.prototype._decodeGeneric=function(e,t,r){const n=this._baseState;return"seq"===e||"set"===e?null:"seqof"===e||"setof"===e?this._decodeList(t,e,n.args[0],r):/str$/.test(e)?this._decodeStr(t,e,r):"objid"===e&&n.args?this._decodeObjid(t,n.args[0],n.args[1],r):"objid"===e?this._decodeObjid(t,null,null,r):"gentime"===e||"utctime"===e?this._decodeTime(t,e,r):"null_"===e?this._decodeNull(t,r):"bool"===e?this._decodeBool(t,r):"objDesc"===e?this._decodeStr(t,e,r):"int"===e||"enum"===e?this._decodeInt(t,n.args&&n.args[0],r):null!==n.use?this._getUse(n.use,t._reporterState.obj)._decode(t,r):t.error("unknown tag: "+e)},c.prototype._getUse=function(e,t){const r=this._baseState;return r.useDecoder=this._use(e,t),a(null===r.useDecoder._baseState.parent),r.useDecoder=r.useDecoder._baseState.children[0],r.implicit!==r.useDecoder._baseState.implicit&&(r.useDecoder=r.useDecoder.clone(),r.useDecoder._baseState.implicit=r.implicit),r.useDecoder},c.prototype._decodeChoice=function(e,t){const r=this._baseState;let n=null,i=!1;return Object.keys(r.choice).some((function(o){const a=e.save(),s=r.choice[o];try{const r=s._decode(e,t);if(e.isError(r))return!1;n={type:o,value:r},i=!0}catch(t){return e.restore(a),!1}return!0}),this),i?n:e.error("Choice not matched")},c.prototype._createEncoderBuffer=function(e){return new i(e,this.reporter)},c.prototype._encode=function(e,t,r){const n=this._baseState;if(null!==n.default&&n.default===e)return;const i=this._encodeValue(e,t,r);return void 0===i||this._skipDefault(i,t,r)?void 0:i},c.prototype._encodeValue=function(e,t,r){const i=this._baseState;if(null===i.parent)return i.children[0]._encode(e,t||new n);let o=null;if(this.reporter=t,i.optional&&void 0===e){if(null===i.default)return;e=i.default}let a=null,s=!1;if(i.any)o=this._createEncoderBuffer(e);else if(i.choice)o=this._encodeChoice(e,t);else if(i.contains)a=this._getUse(i.contains,r)._encode(e,t),s=!0;else if(i.children)a=i.children.map((function(r){if("null_"===r._baseState.tag)return r._encode(null,t,e);if(null===r._baseState.key)return t.error("Child should have a key");const n=t.enterKey(r._baseState.key);if("object"!=typeof e)return t.error("Child expected, but input is not object");const i=r._encode(e[r._baseState.key],t,e);return t.leaveKey(n),i}),this).filter((function(e){return e})),a=this._createEncoderBuffer(a);else if("seqof"===i.tag||"setof"===i.tag){if(!i.args||1!==i.args.length)return t.error("Too many args for : "+i.tag);if(!Array.isArray(e))return t.error("seqof/setof, but data is not Array");const r=this.clone();r._baseState.implicit=null,a=this._createEncoderBuffer(e.map((function(r){const n=this._baseState;return this._getUse(n.args[0],e)._encode(r,t)}),r))}else null!==i.use?o=this._getUse(i.use,r)._encode(e,t):(a=this._encodePrimitive(i.tag,e),s=!0);if(!i.any&&null===i.choice){const e=null!==i.implicit?i.implicit:i.tag,r=null===i.implicit?"universal":"context";null===e?null===i.use&&t.error("Tag could be omitted only for .use()"):null===i.use&&(o=this._encodeComposite(e,s,r,a))}return null!==i.explicit&&(o=this._encodeComposite(i.explicit,!1,"context",o)),o},c.prototype._encodeChoice=function(e,t){const r=this._baseState,n=r.choice[e.type];return n||a(!1,e.type+" not found in "+JSON.stringify(Object.keys(r.choice))),n._encode(e.value,t)},c.prototype._encodePrimitive=function(e,t){const r=this._baseState;if(/str$/.test(e))return this._encodeStr(t,e);if("objid"===e&&r.args)return this._encodeObjid(t,r.reverseArgs[0],r.args[1]);if("objid"===e)return this._encodeObjid(t,null,null);if("gentime"===e||"utctime"===e)return this._encodeTime(t,e);if("null_"===e)return this._encodeNull();if("int"===e||"enum"===e)return this._encodeInt(t,r.args&&r.reverseArgs[0]);if("bool"===e)return this._encodeBool(t);if("objDesc"===e)return this._encodeStr(t,e);throw new Error("Unsupported tag: "+e)},c.prototype._isNumstr=function(e){return/^[0-9 ]*$/.test(e)},c.prototype._isPrintstr=function(e){return/^[A-Za-z0-9 '()+,-./:=?]*$/.test(e)}},98147:(e,t,r)=>{"use strict";const n=r(19105);function i(e){this._reporterState={obj:null,path:[],options:e||{},errors:[]}}function o(e,t){this.path=e,this.rethrow(t)}t.b=i,i.prototype.isError=function(e){return e instanceof o},i.prototype.save=function(){const e=this._reporterState;return{obj:e.obj,pathLen:e.path.length}},i.prototype.restore=function(e){const t=this._reporterState;t.obj=e.obj,t.path=t.path.slice(0,e.pathLen)},i.prototype.enterKey=function(e){return this._reporterState.path.push(e)},i.prototype.exitKey=function(e){const t=this._reporterState;t.path=t.path.slice(0,e-1)},i.prototype.leaveKey=function(e,t,r){const n=this._reporterState;this.exitKey(e),null!==n.obj&&(n.obj[t]=r)},i.prototype.path=function(){return this._reporterState.path.join("/")},i.prototype.enterObject=function(){const e=this._reporterState,t=e.obj;return e.obj={},t},i.prototype.leaveObject=function(e){const t=this._reporterState,r=t.obj;return t.obj=e,r},i.prototype.error=function(e){let t;const r=this._reporterState,n=e instanceof o;if(t=n?e:new o(r.path.map((function(e){return"["+JSON.stringify(e)+"]"})).join(""),e.message||e,e.stack),!r.options.partial)throw t;return n||r.errors.push(t),t},i.prototype.wrapResult=function(e){const t=this._reporterState;return t.options.partial?{result:this.isError(e)?null:e,errors:t.errors}:e},n(o,Error),o.prototype.rethrow=function(e){if(this.message=e+" at: "+(this.path||"(shallow)"),Error.captureStackTrace&&Error.captureStackTrace(this,o),!this.stack)try{throw new Error(this.message)}catch(e){this.stack=e.stack}return this}},95543:(e,t)=>{"use strict";function r(e){const t={};return Object.keys(e).forEach((function(r){(0|r)==r&&(r|=0);const n=e[r];t[n]=r})),t}t.tagClass={0:"universal",1:"application",2:"context",3:"private"},t.tagClassByName=r(t.tagClass),t.tag={0:"end",1:"bool",2:"int",3:"bitstr",4:"octstr",5:"null_",6:"objid",7:"objDesc",8:"external",9:"real",10:"enum",11:"embed",12:"utf8str",13:"relativeOid",16:"seq",17:"set",18:"numstr",19:"printstr",20:"t61str",21:"videostr",22:"ia5str",23:"utctime",24:"gentime",25:"graphstr",26:"iso646str",27:"genstr",28:"unistr",29:"charstr",30:"bmpstr"},t.tagByName=r(t.tag)},47961:(e,t,r)=>{"use strict";const n=t;n._reverse=function(e){const t={};return Object.keys(e).forEach((function(r){(0|r)==r&&(r|=0);const n=e[r];t[n]=r})),t},n.der=r(95543)},6660:(e,t,r)=>{"use strict";const n=r(19105),i=r(10660),o=r(3961).C,a=r(7412),s=r(95543);function u(e){this.enc="der",this.name=e.name,this.entity=e,this.tree=new c,this.tree._init(e.body)}function c(e){a.call(this,"der",e)}function f(e,t){let r=e.readUInt8(t);if(e.isError(r))return r;const n=s.tagClass[r>>6],i=0==(32&r);if(31==(31&r)){let n=r;for(r=0;128==(128&n);){if(n=e.readUInt8(t),e.isError(n))return n;r<<=7,r|=127&n}}else r&=31;return{cls:n,primitive:i,tag:r,tagStr:s.tag[r]}}function l(e,t,r){let n=e.readUInt8(r);if(e.isError(n))return n;if(!t&&128===n)return null;if(0==(128&n))return n;const i=127&n;if(i>4)return e.error("length octect is too long");n=0;for(let t=0;t<i;t++){n<<=8;const t=e.readUInt8(r);if(e.isError(t))return t;n|=t}return n}e.exports=u,u.prototype.decode=function(e,t){return o.isDecoderBuffer(e)||(e=new o(e,t)),this.tree._decode(e,t)},n(c,a),c.prototype._peekTag=function(e,t,r){if(e.isEmpty())return!1;const n=e.save(),i=f(e,'Failed to peek tag: "'+t+'"');return e.isError(i)?i:(e.restore(n),i.tag===t||i.tagStr===t||i.tagStr+"of"===t||r)},c.prototype._decodeTag=function(e,t,r){const n=f(e,'Failed to decode tag of "'+t+'"');if(e.isError(n))return n;let i=l(e,n.primitive,'Failed to get length of "'+t+'"');if(e.isError(i))return i;if(!r&&n.tag!==t&&n.tagStr!==t&&n.tagStr+"of"!==t)return e.error('Failed to match tag: "'+t+'"');if(n.primitive||null!==i)return e.skip(i,'Failed to match body of: "'+t+'"');const o=e.save(),a=this._skipUntilEnd(e,'Failed to skip indefinite length body: "'+this.tag+'"');return e.isError(a)?a:(i=e.offset-o.offset,e.restore(o),e.skip(i,'Failed to match body of: "'+t+'"'))},c.prototype._skipUntilEnd=function(e,t){for(;;){const r=f(e,t);if(e.isError(r))return r;const n=l(e,r.primitive,t);if(e.isError(n))return n;let i;if(i=r.primitive||null!==n?e.skip(n):this._skipUntilEnd(e,t),e.isError(i))return i;if("end"===r.tagStr)break}},c.prototype._decodeList=function(e,t,r,n){const i=[];for(;!e.isEmpty();){const t=this._peekTag(e,"end");if(e.isError(t))return t;const o=r.decode(e,"der",n);if(e.isError(o)&&t)break;i.push(o)}return i},c.prototype._decodeStr=function(e,t){if("bitstr"===t){const t=e.readUInt8();return e.isError(t)?t:{unused:t,data:e.raw()}}if("bmpstr"===t){const t=e.raw();if(t.length%2==1)return e.error("Decoding of string type: bmpstr length mismatch");let r="";for(let e=0;e<t.length/2;e++)r+=String.fromCharCode(t.readUInt16BE(2*e));return r}if("numstr"===t){const t=e.raw().toString("ascii");return this._isNumstr(t)?t:e.error("Decoding of string type: numstr unsupported characters")}if("octstr"===t)return e.raw();if("objDesc"===t)return e.raw();if("printstr"===t){const t=e.raw().toString("ascii");return this._isPrintstr(t)?t:e.error("Decoding of string type: printstr unsupported characters")}return/str$/.test(t)?e.raw().toString():e.error("Decoding of string type: "+t+" unsupported")},c.prototype._decodeObjid=function(e,t,r){let n;const i=[];let o=0,a=0;for(;!e.isEmpty();)a=e.readUInt8(),o<<=7,o|=127&a,0==(128&a)&&(i.push(o),o=0);128&a&&i.push(o);const s=i[0]/40|0,u=i[0]%40;if(n=r?i:[s,u].concat(i.slice(1)),t){let e=t[n.join(" ")];void 0===e&&(e=t[n.join(".")]),void 0!==e&&(n=e)}return n},c.prototype._decodeTime=function(e,t){const r=e.raw().toString();let n,i,o,a,s,u;if("gentime"===t)n=0|r.slice(0,4),i=0|r.slice(4,6),o=0|r.slice(6,8),a=0|r.slice(8,10),s=0|r.slice(10,12),u=0|r.slice(12,14);else{if("utctime"!==t)return e.error("Decoding "+t+" time is not supported yet");n=0|r.slice(0,2),i=0|r.slice(2,4),o=0|r.slice(4,6),a=0|r.slice(6,8),s=0|r.slice(8,10),u=0|r.slice(10,12),n=n<70?2e3+n:1900+n}return Date.UTC(n,i-1,o,a,s,u,0)},c.prototype._decodeNull=function(){return null},c.prototype._decodeBool=function(e){const t=e.readUInt8();return e.isError(t)?t:0!==t},c.prototype._decodeInt=function(e,t){const r=e.raw();let n=new i(r);return t&&(n=t[n.toString(10)]||n),n},c.prototype._use=function(e,t){return"function"==typeof e&&(e=e(t)),e._getDecoder("der").tree}},39605:(e,t,r)=>{"use strict";const n=t;n.der=r(6660),n.pem=r(95087)},95087:(e,t,r)=>{"use strict";const n=r(19105),i=r(95848).Buffer,o=r(6660);function a(e){o.call(this,e),this.enc="pem"}n(a,o),e.exports=a,a.prototype.decode=function(e,t){const r=e.toString().split(/[\r\n]+/g),n=t.label.toUpperCase(),a=/^-----(BEGIN|END) ([^-]+)-----$/;let s=-1,u=-1;for(let e=0;e<r.length;e++){const t=r[e].match(a);if(null!==t&&t[2]===n){if(-1!==s){if("END"!==t[1])break;u=e;break}if("BEGIN"!==t[1])break;s=e}}if(-1===s||-1===u)throw new Error("PEM section not found for: "+n);const c=r.slice(s+1,u).join("");c.replace(/[^a-z0-9+/=]+/gi,"");const f=i.from(c,"base64");return o.prototype.decode.call(this,f,t)}},3814:(e,t,r)=>{"use strict";const n=r(19105),i=r(95848).Buffer,o=r(7412),a=r(95543);function s(e){this.enc="der",this.name=e.name,this.entity=e,this.tree=new u,this.tree._init(e.body)}function u(e){o.call(this,"der",e)}function c(e){return e<10?"0"+e:e}e.exports=s,s.prototype.encode=function(e,t){return this.tree._encode(e,t).join()},n(u,o),u.prototype._encodeComposite=function(e,t,r,n){const o=function(e,t,r,n){let i;if("seqof"===e?e="seq":"setof"===e&&(e="set"),a.tagByName.hasOwnProperty(e))i=a.tagByName[e];else{if("number"!=typeof e||(0|e)!==e)return n.error("Unknown tag: "+e);i=e}return i>=31?n.error("Multi-octet tag encoding unsupported"):(t||(i|=32),i|=a.tagClassByName[r||"universal"]<<6,i)}(e,t,r,this.reporter);if(n.length<128){const e=i.alloc(2);return e[0]=o,e[1]=n.length,this._createEncoderBuffer([e,n])}let s=1;for(let e=n.length;e>=256;e>>=8)s++;const u=i.alloc(2+s);u[0]=o,u[1]=128|s;for(let e=1+s,t=n.length;t>0;e--,t>>=8)u[e]=255&t;return this._createEncoderBuffer([u,n])},u.prototype._encodeStr=function(e,t){if("bitstr"===t)return this._createEncoderBuffer([0|e.unused,e.data]);if("bmpstr"===t){const t=i.alloc(2*e.length);for(let r=0;r<e.length;r++)t.writeUInt16BE(e.charCodeAt(r),2*r);return this._createEncoderBuffer(t)}return"numstr"===t?this._isNumstr(e)?this._createEncoderBuffer(e):this.reporter.error("Encoding of string type: numstr supports only digits and space"):"printstr"===t?this._isPrintstr(e)?this._createEncoderBuffer(e):this.reporter.error("Encoding of string type: printstr supports only latin upper and lower case letters, digits, space, apostrophe, left and rigth parenthesis, plus sign, comma, hyphen, dot, slash, colon, equal sign, question mark"):/str$/.test(t)||"objDesc"===t?this._createEncoderBuffer(e):this.reporter.error("Encoding of string type: "+t+" unsupported")},u.prototype._encodeObjid=function(e,t,r){if("string"==typeof e){if(!t)return this.reporter.error("string objid given, but no values map found");if(!t.hasOwnProperty(e))return this.reporter.error("objid not found in values map");e=t[e].split(/[\s.]+/g);for(let t=0;t<e.length;t++)e[t]|=0}else if(Array.isArray(e)){e=e.slice();for(let t=0;t<e.length;t++)e[t]|=0}if(!Array.isArray(e))return this.reporter.error("objid() should be either array or string, got: "+JSON.stringify(e));if(!r){if(e[1]>=40)return this.reporter.error("Second objid identifier OOB");e.splice(0,2,40*e[0]+e[1])}let n=0;for(let t=0;t<e.length;t++){let r=e[t];for(n++;r>=128;r>>=7)n++}const o=i.alloc(n);let a=o.length-1;for(let t=e.length-1;t>=0;t--){let r=e[t];for(o[a--]=127&r;(r>>=7)>0;)o[a--]=128|127&r}return this._createEncoderBuffer(o)},u.prototype._encodeTime=function(e,t){let r;const n=new Date(e);return"gentime"===t?r=[c(n.getUTCFullYear()),c(n.getUTCMonth()+1),c(n.getUTCDate()),c(n.getUTCHours()),c(n.getUTCMinutes()),c(n.getUTCSeconds()),"Z"].join(""):"utctime"===t?r=[c(n.getUTCFullYear()%100),c(n.getUTCMonth()+1),c(n.getUTCDate()),c(n.getUTCHours()),c(n.getUTCMinutes()),c(n.getUTCSeconds()),"Z"].join(""):this.reporter.error("Encoding "+t+" time is not supported yet"),this._encodeStr(r,"octstr")},u.prototype._encodeNull=function(){return this._createEncoderBuffer("")},u.prototype._encodeInt=function(e,t){if("string"==typeof e){if(!t)return this.reporter.error("String int or enum given, but no values map");if(!t.hasOwnProperty(e))return this.reporter.error("Values map doesn't contain: "+JSON.stringify(e));e=t[e]}if("number"!=typeof e&&!i.isBuffer(e)){const t=e.toArray();!e.sign&&128&t[0]&&t.unshift(0),e=i.from(t)}if(i.isBuffer(e)){let t=e.length;0===e.length&&t++;const r=i.alloc(t);return e.copy(r),0===e.length&&(r[0]=0),this._createEncoderBuffer(r)}if(e<128)return this._createEncoderBuffer(e);if(e<256)return this._createEncoderBuffer([0,e]);let r=1;for(let t=e;t>=256;t>>=8)r++;const n=new Array(r);for(let t=n.length-1;t>=0;t--)n[t]=255&e,e>>=8;return 128&n[0]&&n.unshift(0),this._createEncoderBuffer(i.from(n))},u.prototype._encodeBool=function(e){return this._createEncoderBuffer(e?255:0)},u.prototype._use=function(e,t){return"function"==typeof e&&(e=e(t)),e._getEncoder("der").tree},u.prototype._skipDefault=function(e,t,r){const n=this._baseState;let i;if(null===n.default)return!1;const o=e.join();if(void 0===n.defaultBuffer&&(n.defaultBuffer=this._encodeValue(n.default,t,r).join()),o.length!==n.defaultBuffer.length)return!1;for(i=0;i<o.length;i++)if(o[i]!==n.defaultBuffer[i])return!1;return!0}},52408:(e,t,r)=>{"use strict";const n=t;n.der=r(3814),n.pem=r(33687)},33687:(e,t,r)=>{"use strict";const n=r(19105),i=r(3814);function o(e){i.call(this,e),this.enc="pem"}n(o,i),e.exports=o,o.prototype.encode=function(e,t){const r=i.prototype.encode.call(this,e).toString("base64"),n=["-----BEGIN "+t.label+"-----"];for(let e=0;e<r.length;e+=64)n.push(r.slice(e,e+64));return n.push("-----END "+t.label+"-----"),n.join("\n")}},32037:(e,t,r)=>{"use strict";var n=r(48494);function i(e){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i(e)}var o,a,s=r(47665).codes,u=s.ERR_AMBIGUOUS_ARGUMENT,c=s.ERR_INVALID_ARG_TYPE,f=s.ERR_INVALID_ARG_VALUE,l=s.ERR_INVALID_RETURN_VALUE,d=s.ERR_MISSING_ARGS,h=r(56625),p=r(75786).inspect,y=r(75786).types,g=y.isPromise,b=y.isRegExp,m=Object.assign?Object.assign:r(49442).assign,v=Object.is?Object.is:r(81044);function w(){var e=r(86214);o=e.isDeepEqual,a=e.isDeepStrictEqual}new Map;var _=!1,E=e.exports=M,S={};function A(e){if(e.message instanceof Error)throw e.message;throw new h(e)}function O(e,t,r,n){if(!r){var i=!1;if(0===t)i=!0,n="No value argument passed to `assert.ok()`";else if(n instanceof Error)throw n;var o=new h({actual:r,expected:!0,message:n,operator:"==",stackStartFn:e});throw o.generatedMessage=i,o}}function M(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];O.apply(void 0,[M,t.length].concat(t))}E.fail=function e(t,r,i,o,a){var s,u=arguments.length;if(0===u?s="Failed":1===u?(i=t,t=void 0):(!1===_&&(_=!0,(n.emitWarning?n.emitWarning:console.warn.bind(console))("assert.fail() with more than one argument is deprecated. Please use assert.strictEqual() instead or only pass a message.","DeprecationWarning","DEP0094")),2===u&&(o="!=")),i instanceof Error)throw i;var c={actual:t,expected:r,operator:void 0===o?"fail":o,stackStartFn:a||e};void 0!==i&&(c.message=i);var f=new h(c);throw s&&(f.message=s,f.generatedMessage=!0),f},E.AssertionError=h,E.ok=M,E.equal=function e(t,r,n){if(arguments.length<2)throw new d("actual","expected");t!=r&&A({actual:t,expected:r,message:n,operator:"==",stackStartFn:e})},E.notEqual=function e(t,r,n){if(arguments.length<2)throw new d("actual","expected");t==r&&A({actual:t,expected:r,message:n,operator:"!=",stackStartFn:e})},E.deepEqual=function e(t,r,n){if(arguments.length<2)throw new d("actual","expected");void 0===o&&w(),o(t,r)||A({actual:t,expected:r,message:n,operator:"deepEqual",stackStartFn:e})},E.notDeepEqual=function e(t,r,n){if(arguments.length<2)throw new d("actual","expected");void 0===o&&w(),o(t,r)&&A({actual:t,expected:r,message:n,operator:"notDeepEqual",stackStartFn:e})},E.deepStrictEqual=function e(t,r,n){if(arguments.length<2)throw new d("actual","expected");void 0===o&&w(),a(t,r)||A({actual:t,expected:r,message:n,operator:"deepStrictEqual",stackStartFn:e})},E.notDeepStrictEqual=function e(t,r,n){if(arguments.length<2)throw new d("actual","expected");void 0===o&&w(),a(t,r)&&A({actual:t,expected:r,message:n,operator:"notDeepStrictEqual",stackStartFn:e})},E.strictEqual=function e(t,r,n){if(arguments.length<2)throw new d("actual","expected");v(t,r)||A({actual:t,expected:r,message:n,operator:"strictEqual",stackStartFn:e})},E.notStrictEqual=function e(t,r,n){if(arguments.length<2)throw new d("actual","expected");v(t,r)&&A({actual:t,expected:r,message:n,operator:"notStrictEqual",stackStartFn:e})};var T=function e(t,r,n){var i=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),r.forEach((function(e){e in t&&(void 0!==n&&"string"==typeof n[e]&&b(t[e])&&t[e].test(n[e])?i[e]=n[e]:i[e]=t[e])}))};function I(e,t,r,n){if("function"!=typeof t){if(b(t))return t.test(e);if(2===arguments.length)throw new c("expected",["Function","RegExp"],t);if("object"!==i(e)||null===e){var s=new h({actual:e,expected:t,message:r,operator:"deepStrictEqual",stackStartFn:n});throw s.operator=n.name,s}var u=Object.keys(t);if(t instanceof Error)u.push("name","message");else if(0===u.length)throw new f("error",t,"may not be an empty object");return void 0===o&&w(),u.forEach((function(i){"string"==typeof e[i]&&b(t[i])&&t[i].test(e[i])||function(e,t,r,n,i,o){if(!(r in e)||!a(e[r],t[r])){if(!n){var s=new T(e,i),u=new T(t,i,e),c=new h({actual:s,expected:u,operator:"deepStrictEqual",stackStartFn:o});throw c.actual=e,c.expected=t,c.operator=o.name,c}A({actual:e,expected:t,message:n,operator:o.name,stackStartFn:o})}}(e,t,i,r,u,n)})),!0}return void 0!==t.prototype&&e instanceof t||!Error.isPrototypeOf(t)&&!0===t.call({},e)}function N(e){if("function"!=typeof e)throw new c("fn","Function",e);try{e()}catch(e){return e}return S}function x(e){return g(e)||null!==e&&"object"===i(e)&&"function"==typeof e.then&&"function"==typeof e.catch}function L(e){return Promise.resolve().then((function(){var t;if("function"==typeof e){if(!x(t=e()))throw new l("instance of Promise","promiseFn",t)}else{if(!x(e))throw new c("promiseFn",["Function","Promise"],e);t=e}return Promise.resolve().then((function(){return t})).then((function(){return S})).catch((function(e){return e}))}))}function k(e,t,r,n){if("string"==typeof r){if(4===arguments.length)throw new c("error",["Object","Error","Function","RegExp"],r);if("object"===i(t)&&null!==t){if(t.message===r)throw new u("error/message",'The error message "'.concat(t.message,'" is identical to the message.'))}else if(t===r)throw new u("error/message",'The error "'.concat(t,'" is identical to the message.'));n=r,r=void 0}else if(null!=r&&"object"!==i(r)&&"function"!=typeof r)throw new c("error",["Object","Error","Function","RegExp"],r);if(t===S){var o="";r&&r.name&&(o+=" (".concat(r.name,")")),o+=n?": ".concat(n):".";var a="rejects"===e.name?"rejection":"exception";A({actual:void 0,expected:r,operator:e.name,message:"Missing expected ".concat(a).concat(o),stackStartFn:e})}if(r&&!I(t,r,n,e))throw t}function R(e,t,r,n){if(t!==S){if("string"==typeof r&&(n=r,r=void 0),!r||I(t,r)){var i=n?": ".concat(n):".",o="doesNotReject"===e.name?"rejection":"exception";A({actual:t,expected:r,operator:e.name,message:"Got unwanted ".concat(o).concat(i,"\n")+'Actual message: "'.concat(t&&t.message,'"'),stackStartFn:e})}throw t}}function P(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];O.apply(void 0,[P,t.length].concat(t))}E.throws=function e(t){for(var r=arguments.length,n=new Array(r>1?r-1:0),i=1;i<r;i++)n[i-1]=arguments[i];k.apply(void 0,[e,N(t)].concat(n))},E.rejects=function e(t){for(var r=arguments.length,n=new Array(r>1?r-1:0),i=1;i<r;i++)n[i-1]=arguments[i];return L(t).then((function(t){return k.apply(void 0,[e,t].concat(n))}))},E.doesNotThrow=function e(t){for(var r=arguments.length,n=new Array(r>1?r-1:0),i=1;i<r;i++)n[i-1]=arguments[i];R.apply(void 0,[e,N(t)].concat(n))},E.doesNotReject=function e(t){for(var r=arguments.length,n=new Array(r>1?r-1:0),i=1;i<r;i++)n[i-1]=arguments[i];return L(t).then((function(t){return R.apply(void 0,[e,t].concat(n))}))},E.ifError=function e(t){if(null!=t){var r="ifError got unwanted exception: ";"object"===i(t)&&"string"==typeof t.message?0===t.message.length&&t.constructor?r+=t.constructor.name:r+=t.message:r+=p(t);var n=new h({actual:t,expected:null,operator:"ifError",message:r,stackStartFn:e}),o=t.stack;if("string"==typeof o){var a=o.split("\n");a.shift();for(var s=n.stack.split("\n"),u=0;u<a.length;u++){var c=s.indexOf(a[u]);if(-1!==c){s=s.slice(0,c);break}}n.stack="".concat(s.join("\n"),"\n").concat(a.join("\n"))}throw n}},E.strict=m(P,E,{equal:E.strictEqual,deepEqual:E.deepStrictEqual,notEqual:E.notStrictEqual,notDeepEqual:E.notDeepStrictEqual}),E.strict.strict=E.strict},56625:(e,t,r)=>{"use strict";var n=r(48494);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function a(e,t){return!t||"object"!==d(t)&&"function"!=typeof t?s(e):t}function s(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function u(e){var t="function"==typeof Map?new Map:void 0;return u=function(e){if(null===e||(r=e,-1===Function.toString.call(r).indexOf("[native code]")))return e;var r;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return c(e,arguments,l(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),f(n,e)},u(e)}function c(e,t,r){return c=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}()?Reflect.construct:function(e,t,r){var n=[null];n.push.apply(n,t);var i=new(Function.bind.apply(e,n));return r&&f(i,r.prototype),i},c.apply(null,arguments)}function f(e,t){return f=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},f(e,t)}function l(e){return l=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},l(e)}function d(e){return d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},d(e)}var h=r(75786).inspect,p=r(47665).codes.ERR_INVALID_ARG_TYPE;function y(e,t,r){return(void 0===r||r>e.length)&&(r=e.length),e.substring(r-t.length,r)===t}var g="",b="",m="",v="",w={deepStrictEqual:"Expected values to be strictly deep-equal:",strictEqual:"Expected values to be strictly equal:",strictEqualObject:'Expected "actual" to be reference-equal to "expected":',deepEqual:"Expected values to be loosely deep-equal:",equal:"Expected values to be loosely equal:",notDeepStrictEqual:'Expected "actual" not to be strictly deep-equal to:',notStrictEqual:'Expected "actual" to be strictly unequal to:',notStrictEqualObject:'Expected "actual" not to be reference-equal to "expected":',notDeepEqual:'Expected "actual" not to be loosely deep-equal to:',notEqual:'Expected "actual" to be loosely unequal to:',notIdentical:"Values identical but not reference-equal:"};function _(e){var t=Object.keys(e),r=Object.create(Object.getPrototypeOf(e));return t.forEach((function(t){r[t]=e[t]})),Object.defineProperty(r,"message",{value:e.message}),r}function E(e){return h(e,{compact:!1,customInspect:!1,depth:1e3,maxArrayLength:1/0,showHidden:!1,breakLength:1/0,showProxy:!1,sorted:!0,getters:!0})}var S=function(e){function t(e){var r;if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),"object"!==d(e)||null===e)throw new p("options","Object",e);var i=e.message,o=e.operator,u=e.stackStartFn,c=e.actual,f=e.expected,h=Error.stackTraceLimit;if(Error.stackTraceLimit=0,null!=i)r=a(this,l(t).call(this,String(i)));else if(n.stderr&&n.stderr.isTTY&&(n.stderr&&n.stderr.getColorDepth&&1!==n.stderr.getColorDepth()?(g="",b="",v="",m=""):(g="",b="",v="",m="")),"object"===d(c)&&null!==c&&"object"===d(f)&&null!==f&&"stack"in c&&c instanceof Error&&"stack"in f&&f instanceof Error&&(c=_(c),f=_(f)),"deepStrictEqual"===o||"strictEqual"===o)r=a(this,l(t).call(this,function(e,t,r){var i="",o="",a=0,s="",u=!1,c=E(e),f=c.split("\n"),l=E(t).split("\n"),h=0,p="";if("strictEqual"===r&&"object"===d(e)&&"object"===d(t)&&null!==e&&null!==t&&(r="strictEqualObject"),1===f.length&&1===l.length&&f[0]!==l[0]){var _=f[0].length+l[0].length;if(_<=10){if(!("object"===d(e)&&null!==e||"object"===d(t)&&null!==t||0===e&&0===t))return"".concat(w[r],"\n\n")+"".concat(f[0]," !== ").concat(l[0],"\n")}else if("strictEqualObject"!==r&&_<(n.stderr&&n.stderr.isTTY?n.stderr.columns:80)){for(;f[0][h]===l[0][h];)h++;h>2&&(p="\n ".concat(function(e,t){if(t=Math.floor(t),0==e.length||0==t)return"";var r=e.length*t;for(t=Math.floor(Math.log(t)/Math.log(2));t;)e+=e,t--;return e+e.substring(0,r-e.length)}(" ",h),"^"),h=0)}}for(var S=f[f.length-1],A=l[l.length-1];S===A&&(h++<2?s="\n ".concat(S).concat(s):i=S,f.pop(),l.pop(),0!==f.length&&0!==l.length);)S=f[f.length-1],A=l[l.length-1];var O=Math.max(f.length,l.length);if(0===O){var M=c.split("\n");if(M.length>30)for(M[26]="".concat(g,"...").concat(v);M.length>27;)M.pop();return"".concat(w.notIdentical,"\n\n").concat(M.join("\n"),"\n")}h>3&&(s="\n".concat(g,"...").concat(v).concat(s),u=!0),""!==i&&(s="\n ".concat(i).concat(s),i="");var T=0,I=w[r]+"\n".concat(b,"+ actual").concat(v," ").concat(m,"- expected").concat(v),N=" ".concat(g,"...").concat(v," Lines skipped");for(h=0;h<O;h++){var x=h-a;if(f.length<h+1)x>1&&h>2&&(x>4?(o+="\n".concat(g,"...").concat(v),u=!0):x>3&&(o+="\n ".concat(l[h-2]),T++),o+="\n ".concat(l[h-1]),T++),a=h,i+="\n".concat(m,"-").concat(v," ").concat(l[h]),T++;else if(l.length<h+1)x>1&&h>2&&(x>4?(o+="\n".concat(g,"...").concat(v),u=!0):x>3&&(o+="\n ".concat(f[h-2]),T++),o+="\n ".concat(f[h-1]),T++),a=h,o+="\n".concat(b,"+").concat(v," ").concat(f[h]),T++;else{var L=l[h],k=f[h],R=k!==L&&(!y(k,",")||k.slice(0,-1)!==L);R&&y(L,",")&&L.slice(0,-1)===k&&(R=!1,k+=","),R?(x>1&&h>2&&(x>4?(o+="\n".concat(g,"...").concat(v),u=!0):x>3&&(o+="\n ".concat(f[h-2]),T++),o+="\n ".concat(f[h-1]),T++),a=h,o+="\n".concat(b,"+").concat(v," ").concat(k),i+="\n".concat(m,"-").concat(v," ").concat(L),T+=2):(o+=i,i="",1!==x&&0!==h||(o+="\n ".concat(k),T++))}if(T>20&&h<O-2)return"".concat(I).concat(N,"\n").concat(o,"\n").concat(g,"...").concat(v).concat(i,"\n")+"".concat(g,"...").concat(v)}return"".concat(I).concat(u?N:"","\n").concat(o).concat(i).concat(s).concat(p)}(c,f,o)));else if("notDeepStrictEqual"===o||"notStrictEqual"===o){var S=w[o],A=E(c).split("\n");if("notStrictEqual"===o&&"object"===d(c)&&null!==c&&(S=w.notStrictEqualObject),A.length>30)for(A[26]="".concat(g,"...").concat(v);A.length>27;)A.pop();r=1===A.length?a(this,l(t).call(this,"".concat(S," ").concat(A[0]))):a(this,l(t).call(this,"".concat(S,"\n\n").concat(A.join("\n"),"\n")))}else{var O=E(c),M="",T=w[o];"notDeepEqual"===o||"notEqual"===o?(O="".concat(w[o],"\n\n").concat(O)).length>1024&&(O="".concat(O.slice(0,1021),"...")):(M="".concat(E(f)),O.length>512&&(O="".concat(O.slice(0,509),"...")),M.length>512&&(M="".concat(M.slice(0,509),"...")),"deepEqual"===o||"equal"===o?O="".concat(T,"\n\n").concat(O,"\n\nshould equal\n\n"):M=" ".concat(o," ").concat(M)),r=a(this,l(t).call(this,"".concat(O).concat(M)))}return Error.stackTraceLimit=h,r.generatedMessage=!i,Object.defineProperty(s(r),"name",{value:"AssertionError [ERR_ASSERTION]",enumerable:!1,writable:!0,configurable:!0}),r.code="ERR_ASSERTION",r.actual=c,r.expected=f,r.operator=o,Error.captureStackTrace&&Error.captureStackTrace(s(r),u),r.stack,r.name="AssertionError",a(r)}var r,u;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&f(e,t)}(t,e),r=t,u=[{key:"toString",value:function(){return"".concat(this.name," [").concat(this.code,"]: ").concat(this.message)}},{key:h.custom,value:function(e,t){return h(this,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),n.forEach((function(t){i(e,t,r[t])}))}return e}({},t,{customInspect:!1,depth:0}))}}],u&&o(r.prototype,u),t}(u(Error));e.exports=S},47665:(e,t,r)=>{"use strict";function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function i(e){return i=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},i(e)}function o(e,t){return o=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},o(e,t)}var a,s,u={};function c(e,t,r){r||(r=Error);var a=function(r){function a(r,o,s){var u;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,a),u=function(e,t){return!t||"object"!==n(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}(this,i(a).call(this,function(e,r,n){return"string"==typeof t?t:t(e,r,n)}(r,o,s))),u.code=e,u}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&o(e,t)}(a,r),a}(r);u[e]=a}function f(e,t){if(Array.isArray(e)){var r=e.length;return e=e.map((function(e){return String(e)})),r>2?"one of ".concat(t," ").concat(e.slice(0,r-1).join(", "),", or ")+e[r-1]:2===r?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}return"of ".concat(t," ").concat(String(e))}c("ERR_AMBIGUOUS_ARGUMENT",'The "%s" argument is ambiguous. %s',TypeError),c("ERR_INVALID_ARG_TYPE",(function(e,t,i){var o,s,u,c,l;if(void 0===a&&(a=r(32037)),a("string"==typeof e,"'name' must be a string"),"string"==typeof t&&(s="not ",t.substr(0,4)===s)?(o="must not be",t=t.replace(/^not /,"")):o="must be",function(e,t,r){return(void 0===r||r>e.length)&&(r=e.length),e.substring(r-9,r)===t}(e," argument"))u="The ".concat(e," ").concat(o," ").concat(f(t,"type"));else{var d=("number"!=typeof l&&(l=0),l+1>(c=e).length||-1===c.indexOf(".",l)?"argument":"property");u='The "'.concat(e,'" ').concat(d," ").concat(o," ").concat(f(t,"type"))}return u+". Received type ".concat(n(i))}),TypeError),c("ERR_INVALID_ARG_VALUE",(function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"is invalid";void 0===s&&(s=r(75786));var i=s.inspect(t);return i.length>128&&(i="".concat(i.slice(0,128),"...")),"The argument '".concat(e,"' ").concat(n,". Received ").concat(i)}),TypeError,RangeError),c("ERR_INVALID_RETURN_VALUE",(function(e,t,r){var i;return i=r&&r.constructor&&r.constructor.name?"instance of ".concat(r.constructor.name):"type ".concat(n(r)),"Expected ".concat(e,' to be returned from the "').concat(t,'"')+" function but got ".concat(i,".")}),TypeError),c("ERR_MISSING_ARGS",(function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];void 0===a&&(a=r(32037)),a(t.length>0,"At least one arg needs to be specified");var i="The ",o=t.length;switch(t=t.map((function(e){return'"'.concat(e,'"')})),o){case 1:i+="".concat(t[0]," argument");break;case 2:i+="".concat(t[0]," and ").concat(t[1]," arguments");break;default:i+=t.slice(0,o-1).join(", "),i+=", and ".concat(t[o-1]," arguments")}return"".concat(i," must be specified")}),TypeError),e.exports.codes=u},86214:(e,t,r)=>{"use strict";function n(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=[],n=!0,i=!1,o=void 0;try{for(var a,s=e[Symbol.iterator]();!(n=(a=s.next()).done)&&(r.push(a.value),!t||r.length!==t);n=!0);}catch(e){i=!0,o=e}finally{try{n||null==s.return||s.return()}finally{if(i)throw o}}return r}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function i(e){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i(e)}var o=void 0!==/a/g.flags,a=function(e){var t=[];return e.forEach((function(e){return t.push(e)})),t},s=function(e){var t=[];return e.forEach((function(e,r){return t.push([r,e])})),t},u=Object.is?Object.is:r(81044),c=Object.getOwnPropertySymbols?Object.getOwnPropertySymbols:function(){return[]},f=Number.isNaN?Number.isNaN:r(34124);function l(e){return e.call.bind(e)}var d=l(Object.prototype.hasOwnProperty),h=l(Object.prototype.propertyIsEnumerable),p=l(Object.prototype.toString),y=r(75786).types,g=y.isAnyArrayBuffer,b=y.isArrayBufferView,m=y.isDate,v=y.isMap,w=y.isRegExp,_=y.isSet,E=y.isNativeError,S=y.isBoxedPrimitive,A=y.isNumberObject,O=y.isStringObject,M=y.isBooleanObject,T=y.isBigIntObject,I=y.isSymbolObject,N=y.isFloat32Array,x=y.isFloat64Array;function L(e){if(0===e.length||e.length>10)return!0;for(var t=0;t<e.length;t++){var r=e.charCodeAt(t);if(r<48||r>57)return!0}return 10===e.length&&e>=Math.pow(2,32)}function k(e){return Object.keys(e).filter(L).concat(c(e).filter(Object.prototype.propertyIsEnumerable.bind(e)))}function R(e,t){if(e===t)return 0;for(var r=e.length,n=t.length,i=0,o=Math.min(r,n);i<o;++i)if(e[i]!==t[i]){r=e[i],n=t[i];break}return r<n?-1:n<r?1:0}var P=0,B=1,D=2,C=3;function j(e,t,r,n){if(e===t)return 0!==e||!r||u(e,t);if(r){if("object"!==i(e))return"number"==typeof e&&f(e)&&f(t);if("object"!==i(t)||null===e||null===t)return!1;if(Object.getPrototypeOf(e)!==Object.getPrototypeOf(t))return!1}else{if(null===e||"object"!==i(e))return(null===t||"object"!==i(t))&&e==t;if(null===t||"object"!==i(t))return!1}var a,s,c,l,d=p(e);if(d!==p(t))return!1;if(Array.isArray(e)){if(e.length!==t.length)return!1;var h=k(e),y=k(t);return h.length===y.length&&U(e,t,r,n,B,h)}if("[object Object]"===d&&(!v(e)&&v(t)||!_(e)&&_(t)))return!1;if(m(e)){if(!m(t)||Date.prototype.getTime.call(e)!==Date.prototype.getTime.call(t))return!1}else if(w(e)){if(!w(t)||(c=e,l=t,!(o?c.source===l.source&&c.flags===l.flags:RegExp.prototype.toString.call(c)===RegExp.prototype.toString.call(l))))return!1}else if(E(e)||e instanceof Error){if(e.message!==t.message||e.name!==t.name)return!1}else{if(b(e)){if(r||!N(e)&&!x(e)){if(!function(e,t){return e.byteLength===t.byteLength&&0===R(new Uint8Array(e.buffer,e.byteOffset,e.byteLength),new Uint8Array(t.buffer,t.byteOffset,t.byteLength))}(e,t))return!1}else if(!function(e,t){if(e.byteLength!==t.byteLength)return!1;for(var r=0;r<e.byteLength;r++)if(e[r]!==t[r])return!1;return!0}(e,t))return!1;var L=k(e),j=k(t);return L.length===j.length&&U(e,t,r,n,P,L)}if(_(e))return!(!_(t)||e.size!==t.size)&&U(e,t,r,n,D);if(v(e))return!(!v(t)||e.size!==t.size)&&U(e,t,r,n,C);if(g(e)){if(s=t,(a=e).byteLength!==s.byteLength||0!==R(new Uint8Array(a),new Uint8Array(s)))return!1}else if(S(e)&&!function(e,t){return A(e)?A(t)&&u(Number.prototype.valueOf.call(e),Number.prototype.valueOf.call(t)):O(e)?O(t)&&String.prototype.valueOf.call(e)===String.prototype.valueOf.call(t):M(e)?M(t)&&Boolean.prototype.valueOf.call(e)===Boolean.prototype.valueOf.call(t):T(e)?T(t)&&BigInt.prototype.valueOf.call(e)===BigInt.prototype.valueOf.call(t):I(t)&&Symbol.prototype.valueOf.call(e)===Symbol.prototype.valueOf.call(t)}(e,t))return!1}return U(e,t,r,n,P)}function F(e,t){return t.filter((function(t){return h(e,t)}))}function U(e,t,r,o,u,f){if(5===arguments.length){f=Object.keys(e);var l=Object.keys(t);if(f.length!==l.length)return!1}for(var p=0;p<f.length;p++)if(!d(t,f[p]))return!1;if(r&&5===arguments.length){var y=c(e);if(0!==y.length){var g=0;for(p=0;p<y.length;p++){var b=y[p];if(h(e,b)){if(!h(t,b))return!1;f.push(b),g++}else if(h(t,b))return!1}var m=c(t);if(y.length!==m.length&&F(t,m).length!==g)return!1}else{var v=c(t);if(0!==v.length&&0!==F(t,v).length)return!1}}if(0===f.length&&(u===P||u===B&&0===e.length||0===e.size))return!0;if(void 0===o)o={val1:new Map,val2:new Map,position:0};else{var w=o.val1.get(e);if(void 0!==w){var _=o.val2.get(t);if(void 0!==_)return w===_}o.position++}o.val1.set(e,o.position),o.val2.set(t,o.position);var E=function(e,t,r,o,u,c){var f=0;if(c===D){if(!function(e,t,r,n){for(var o=null,s=a(e),u=0;u<s.length;u++){var c=s[u];if("object"===i(c)&&null!==c)null===o&&(o=new Set),o.add(c);else if(!t.has(c)){if(r)return!1;if(!z(e,t,c))return!1;null===o&&(o=new Set),o.add(c)}}if(null!==o){for(var f=a(t),l=0;l<f.length;l++){var d=f[l];if("object"===i(d)&&null!==d){if(!V(o,d,r,n))return!1}else if(!r&&!e.has(d)&&!V(o,d,r,n))return!1}return 0===o.size}return!0}(e,t,r,u))return!1}else if(c===C){if(!function(e,t,r,o){for(var a=null,u=s(e),c=0;c<u.length;c++){var f=n(u[c],2),l=f[0],d=f[1];if("object"===i(l)&&null!==l)null===a&&(a=new Set),a.add(l);else{var h=t.get(l);if(void 0===h&&!t.has(l)||!j(d,h,r,o)){if(r)return!1;if(!q(e,t,l,d,o))return!1;null===a&&(a=new Set),a.add(l)}}}if(null!==a){for(var p=s(t),y=0;y<p.length;y++){var g=n(p[y],2),b=(l=g[0],g[1]);if("object"===i(l)&&null!==l){if(!K(a,e,l,b,r,o))return!1}else if(!(r||e.has(l)&&j(e.get(l),b,!1,o)||K(a,e,l,b,!1,o)))return!1}return 0===a.size}return!0}(e,t,r,u))return!1}else if(c===B)for(;f<e.length;f++){if(!d(e,f)){if(d(t,f))return!1;for(var l=Object.keys(e);f<l.length;f++){var h=l[f];if(!d(t,h)||!j(e[h],t[h],r,u))return!1}return l.length===Object.keys(t).length}if(!d(t,f)||!j(e[f],t[f],r,u))return!1}for(f=0;f<o.length;f++){var p=o[f];if(!j(e[p],t[p],r,u))return!1}return!0}(e,t,r,f,o,u);return o.val1.delete(e),o.val2.delete(t),E}function V(e,t,r,n){for(var i=a(e),o=0;o<i.length;o++){var s=i[o];if(j(t,s,r,n))return e.delete(s),!0}return!1}function H(e){switch(i(e)){case"undefined":return null;case"object":return;case"symbol":return!1;case"string":e=+e;case"number":if(f(e))return!1}return!0}function z(e,t,r){var n=H(r);return null!=n?n:t.has(n)&&!e.has(n)}function q(e,t,r,n,i){var o=H(r);if(null!=o)return o;var a=t.get(o);return!(void 0===a&&!t.has(o)||!j(n,a,!1,i))&&!e.has(o)&&j(n,a,!1,i)}function K(e,t,r,n,i,o){for(var s=a(e),u=0;u<s.length;u++){var c=s[u];if(j(r,c,i,o)&&j(n,t.get(c),i,o))return e.delete(c),!0}return!1}e.exports={isDeepEqual:function(e,t){return j(e,t,!1)},isDeepStrictEqual:function(e,t){return j(e,t,!0)}}},90638:(e,t,r)=>{"use strict";var n=r(59105).Buffer;e.exports=function(e){if(e.length>=255)throw new TypeError("Alphabet too long");for(var t=new Uint8Array(256),r=0;r<t.length;r++)t[r]=255;for(var i=0;i<e.length;i++){var o=e.charAt(i),a=o.charCodeAt(0);if(255!==t[a])throw new TypeError(o+" is ambiguous");t[a]=i}var s=e.length,u=e.charAt(0),c=Math.log(s)/Math.log(256),f=Math.log(256)/Math.log(s);function l(e){if("string"!=typeof e)throw new TypeError("Expected String");if(0===e.length)return n.alloc(0);for(var r=0,i=0,o=0;e[r]===u;)i++,r++;for(var a=(e.length-r)*c+1>>>0,f=new Uint8Array(a);e[r];){var l=t[e.charCodeAt(r)];if(255===l)return;for(var d=0,h=a-1;(0!==l||d<o)&&-1!==h;h--,d++)l+=s*f[h]>>>0,f[h]=l%256>>>0,l=l/256>>>0;if(0!==l)throw new Error("Non-zero carry");o=d,r++}for(var p=a-o;p!==a&&0===f[p];)p++;var y=n.allocUnsafe(i+(a-p));y.fill(0,0,i);for(var g=i;p!==a;)y[g++]=f[p++];return y}return{encode:function(t){if((Array.isArray(t)||t instanceof Uint8Array)&&(t=n.from(t)),!n.isBuffer(t))throw new TypeError("Expected Buffer");if(0===t.length)return"";for(var r=0,i=0,o=0,a=t.length;o!==a&&0===t[o];)o++,r++;for(var c=(a-o)*f+1>>>0,l=new Uint8Array(c);o!==a;){for(var d=t[o],h=0,p=c-1;(0!==d||h<i)&&-1!==p;p--,h++)d+=256*l[p]>>>0,l[p]=d%s>>>0,d=d/s>>>0;if(0!==d)throw new Error("Non-zero carry");i=h,o++}for(var y=c-i;y!==c&&0===l[y];)y++;for(var g=u.repeat(r);y<c;++y)g+=e.charAt(l[y]);return g},decodeUnsafe:l,decode:function(e){var t=l(e);if(t)return t;throw new Error("Non-base"+s+" character")}}}},17086:(e,t)=>{"use strict";t.byteLength=function(e){var t=s(e),r=t[0],n=t[1];return 3*(r+n)/4-n},t.toByteArray=function(e){var t,r,o=s(e),a=o[0],u=o[1],c=new i(function(e,t,r){return 3*(t+r)/4-r}(0,a,u)),f=0,l=u>0?a-4:a;for(r=0;r<l;r+=4)t=n[e.charCodeAt(r)]<<18|n[e.charCodeAt(r+1)]<<12|n[e.charCodeAt(r+2)]<<6|n[e.charCodeAt(r+3)],c[f++]=t>>16&255,c[f++]=t>>8&255,c[f++]=255&t;return 2===u&&(t=n[e.charCodeAt(r)]<<2|n[e.charCodeAt(r+1)]>>4,c[f++]=255&t),1===u&&(t=n[e.charCodeAt(r)]<<10|n[e.charCodeAt(r+1)]<<4|n[e.charCodeAt(r+2)]>>2,c[f++]=t>>8&255,c[f++]=255&t),c},t.fromByteArray=function(e){for(var t,n=e.length,i=n%3,o=[],a=16383,s=0,c=n-i;s<c;s+=a)o.push(u(e,s,s+a>c?c:s+a));return 1===i?(t=e[n-1],o.push(r[t>>2]+r[t<<4&63]+"==")):2===i&&(t=(e[n-2]<<8)+e[n-1],o.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"=")),o.join("")};for(var r=[],n=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=0;a<64;++a)r[a]=o[a],n[o.charCodeAt(a)]=a;function s(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");return-1===r&&(r=t),[r,r===t?0:4-r%4]}function u(e,t,n){for(var i,o,a=[],s=t;s<n;s+=3)i=(e[s]<<16&16711680)+(e[s+1]<<8&65280)+(255&e[s+2]),a.push(r[(o=i)>>18&63]+r[o>>12&63]+r[o>>6&63]+r[63&o]);return a.join("")}n["-".charCodeAt(0)]=62,n["_".charCodeAt(0)]=63},32548:(e,t,r)=>{var n;e=r.nmd(e);var i=function(e){"use strict";var t=1e7,r=7,n=9007199254740992,o=h(n),a="0123456789abcdefghijklmnopqrstuvwxyz",s="function"==typeof BigInt;function u(e,t,r,n){return void 0===e?u[0]:void 0===t||10==+t&&!r?J(e):W(e,t,r,n)}function c(e,t){this.value=e,this.sign=t,this.isSmall=!1}function f(e){this.value=e,this.sign=e<0,this.isSmall=!0}function l(e){this.value=e}function d(e){return-n<e&&e<n}function h(e){return e<1e7?[e]:e<1e14?[e%1e7,Math.floor(e/1e7)]:[e%1e7,Math.floor(e/1e7)%1e7,Math.floor(e/1e14)]}function p(e){y(e);var r=e.length;if(r<4&&L(e,o)<0)switch(r){case 0:return 0;case 1:return e[0];case 2:return e[0]+e[1]*t;default:return e[0]+(e[1]+e[2]*t)*t}return e}function y(e){for(var t=e.length;0===e[--t];);e.length=t+1}function g(e){for(var t=new Array(e),r=-1;++r<e;)t[r]=0;return t}function b(e){return e>0?Math.floor(e):Math.ceil(e)}function m(e,r){var n,i,o=e.length,a=r.length,s=new Array(o),u=0,c=t;for(i=0;i<a;i++)u=(n=e[i]+r[i]+u)>=c?1:0,s[i]=n-u*c;for(;i<o;)u=(n=e[i]+u)===c?1:0,s[i++]=n-u*c;return u>0&&s.push(u),s}function v(e,t){return e.length>=t.length?m(e,t):m(t,e)}function w(e,r){var n,i,o=e.length,a=new Array(o),s=t;for(i=0;i<o;i++)n=e[i]-s+r,r=Math.floor(n/s),a[i]=n-r*s,r+=1;for(;r>0;)a[i++]=r%s,r=Math.floor(r/s);return a}function _(e,r){var n,i,o=e.length,a=r.length,s=new Array(o),u=0,c=t;for(n=0;n<a;n++)(i=e[n]-u-r[n])<0?(i+=c,u=1):u=0,s[n]=i;for(n=a;n<o;n++){if(!((i=e[n]-u)<0)){s[n++]=i;break}i+=c,s[n]=i}for(;n<o;n++)s[n]=e[n];return y(s),s}function E(e,r,n){var i,o,a=e.length,s=new Array(a),u=-r,l=t;for(i=0;i<a;i++)o=e[i]+u,u=Math.floor(o/l),o%=l,s[i]=o<0?o+l:o;return"number"==typeof(s=p(s))?(n&&(s=-s),new f(s)):new c(s,n)}function S(e,r){var n,i,o,a,s=e.length,u=r.length,c=g(s+u),f=t;for(o=0;o<s;++o){a=e[o];for(var l=0;l<u;++l)n=a*r[l]+c[o+l],i=Math.floor(n/f),c[o+l]=n-i*f,c[o+l+1]+=i}return y(c),c}function A(e,r){var n,i,o=e.length,a=new Array(o),s=t,u=0;for(i=0;i<o;i++)n=e[i]*r+u,u=Math.floor(n/s),a[i]=n-u*s;for(;u>0;)a[i++]=u%s,u=Math.floor(u/s);return a}function O(e,t){for(var r=[];t-- >0;)r.push(0);return r.concat(e)}function M(e,t){var r=Math.max(e.length,t.length);if(r<=30)return S(e,t);r=Math.ceil(r/2);var n=e.slice(r),i=e.slice(0,r),o=t.slice(r),a=t.slice(0,r),s=M(i,a),u=M(n,o),c=M(v(i,n),v(a,o)),f=v(v(s,O(_(_(c,s),u),r)),O(u,2*r));return y(f),f}function T(e,r,n){return new c(e<t?A(r,e):S(r,h(e)),n)}function I(e){var r,n,i,o,a=e.length,s=g(a+a),u=t;for(i=0;i<a;i++){n=0-(o=e[i])*o;for(var c=i;c<a;c++)r=o*e[c]*2+s[i+c]+n,n=Math.floor(r/u),s[i+c]=r-n*u;s[i+a]=n}return y(s),s}function N(e,r){var n,i,o,a,s=e.length,u=g(s),c=t;for(o=0,n=s-1;n>=0;--n)o=(a=o*c+e[n])-(i=b(a/r))*r,u[n]=0|i;return[u,0|o]}function x(e,r){var n,i=J(r);if(s)return[new l(e.value/i.value),new l(e.value%i.value)];var o,a=e.value,d=i.value;if(0===d)throw new Error("Cannot divide by zero");if(e.isSmall)return i.isSmall?[new f(b(a/d)),new f(a%d)]:[u[0],e];if(i.isSmall){if(1===d)return[e,u[0]];if(-1==d)return[e.negate(),u[0]];var m=Math.abs(d);if(m<t){o=p((n=N(a,m))[0]);var v=n[1];return e.sign&&(v=-v),"number"==typeof o?(e.sign!==i.sign&&(o=-o),[new f(o),new f(v)]):[new c(o,e.sign!==i.sign),new f(v)]}d=h(m)}var w=L(a,d);if(-1===w)return[u[0],e];if(0===w)return[u[e.sign===i.sign?1:-1],u[0]];n=a.length+d.length<=200?function(e,r){var n,i,o,a,s,u,c,f=e.length,l=r.length,d=t,h=g(r.length),y=r[l-1],b=Math.ceil(d/(2*y)),m=A(e,b),v=A(r,b);for(m.length<=f&&m.push(0),v.push(0),y=v[l-1],i=f-l;i>=0;i--){for(n=d-1,m[i+l]!==y&&(n=Math.floor((m[i+l]*d+m[i+l-1])/y)),o=0,a=0,u=v.length,s=0;s<u;s++)o+=n*v[s],c=Math.floor(o/d),a+=m[i+s]-(o-c*d),o=c,a<0?(m[i+s]=a+d,a=-1):(m[i+s]=a,a=0);for(;0!==a;){for(n-=1,o=0,s=0;s<u;s++)(o+=m[i+s]-d+v[s])<0?(m[i+s]=o+d,o=0):(m[i+s]=o,o=1);a+=o}h[i]=n}return m=N(m,b)[0],[p(h),p(m)]}(a,d):function(e,r){for(var n,i,o,a,s,u=e.length,c=r.length,f=[],l=[],d=t;u;)if(l.unshift(e[--u]),y(l),L(l,r)<0)f.push(0);else{o=l[(i=l.length)-1]*d+l[i-2],a=r[c-1]*d+r[c-2],i>c&&(o=(o+1)*d),n=Math.ceil(o/a);do{if(L(s=A(r,n),l)<=0)break;n--}while(n);f.push(n),l=_(l,s)}return f.reverse(),[p(f),p(l)]}(a,d),o=n[0];var E=e.sign!==i.sign,S=n[1],O=e.sign;return"number"==typeof o?(E&&(o=-o),o=new f(o)):o=new c(o,E),"number"==typeof S?(O&&(S=-S),S=new f(S)):S=new c(S,O),[o,S]}function L(e,t){if(e.length!==t.length)return e.length>t.length?1:-1;for(var r=e.length-1;r>=0;r--)if(e[r]!==t[r])return e[r]>t[r]?1:-1;return 0}function k(e){var t=e.abs();return!t.isUnit()&&(!!(t.equals(2)||t.equals(3)||t.equals(5))||!(t.isEven()||t.isDivisibleBy(3)||t.isDivisibleBy(5))&&(!!t.lesser(49)||void 0))}function R(e,t){for(var r,n,o,a=e.prev(),s=a,u=0;s.isEven();)s=s.divide(2),u++;e:for(n=0;n<t.length;n++)if(!e.lesser(t[n])&&!(o=i(t[n]).modPow(s,e)).isUnit()&&!o.equals(a)){for(r=u-1;0!=r;r--){if((o=o.square().mod(e)).isUnit())return!1;if(o.equals(a))continue e}return!1}return!0}c.prototype=Object.create(u.prototype),f.prototype=Object.create(u.prototype),l.prototype=Object.create(u.prototype),c.prototype.add=function(e){var t=J(e);if(this.sign!==t.sign)return this.subtract(t.negate());var r=this.value,n=t.value;return t.isSmall?new c(w(r,Math.abs(n)),this.sign):new c(v(r,n),this.sign)},c.prototype.plus=c.prototype.add,f.prototype.add=function(e){var t=J(e),r=this.value;if(r<0!==t.sign)return this.subtract(t.negate());var n=t.value;if(t.isSmall){if(d(r+n))return new f(r+n);n=h(Math.abs(n))}return new c(w(n,Math.abs(r)),r<0)},f.prototype.plus=f.prototype.add,l.prototype.add=function(e){return new l(this.value+J(e).value)},l.prototype.plus=l.prototype.add,c.prototype.subtract=function(e){var t=J(e);if(this.sign!==t.sign)return this.add(t.negate());var r=this.value,n=t.value;return t.isSmall?E(r,Math.abs(n),this.sign):function(e,t,r){var n;return L(e,t)>=0?n=_(e,t):(n=_(t,e),r=!r),"number"==typeof(n=p(n))?(r&&(n=-n),new f(n)):new c(n,r)}(r,n,this.sign)},c.prototype.minus=c.prototype.subtract,f.prototype.subtract=function(e){var t=J(e),r=this.value;if(r<0!==t.sign)return this.add(t.negate());var n=t.value;return t.isSmall?new f(r-n):E(n,Math.abs(r),r>=0)},f.prototype.minus=f.prototype.subtract,l.prototype.subtract=function(e){return new l(this.value-J(e).value)},l.prototype.minus=l.prototype.subtract,c.prototype.negate=function(){return new c(this.value,!this.sign)},f.prototype.negate=function(){var e=this.sign,t=new f(-this.value);return t.sign=!e,t},l.prototype.negate=function(){return new l(-this.value)},c.prototype.abs=function(){return new c(this.value,!1)},f.prototype.abs=function(){return new f(Math.abs(this.value))},l.prototype.abs=function(){return new l(this.value>=0?this.value:-this.value)},c.prototype.multiply=function(e){var r,n,i,o=J(e),a=this.value,s=o.value,f=this.sign!==o.sign;if(o.isSmall){if(0===s)return u[0];if(1===s)return this;if(-1===s)return this.negate();if((r=Math.abs(s))<t)return new c(A(a,r),f);s=h(r)}return new c(-.012*(n=a.length)-.012*(i=s.length)+15e-6*n*i>0?M(a,s):S(a,s),f)},c.prototype.times=c.prototype.multiply,f.prototype._multiplyBySmall=function(e){return d(e.value*this.value)?new f(e.value*this.value):T(Math.abs(e.value),h(Math.abs(this.value)),this.sign!==e.sign)},c.prototype._multiplyBySmall=function(e){return 0===e.value?u[0]:1===e.value?this:-1===e.value?this.negate():T(Math.abs(e.value),this.value,this.sign!==e.sign)},f.prototype.multiply=function(e){return J(e)._multiplyBySmall(this)},f.prototype.times=f.prototype.multiply,l.prototype.multiply=function(e){return new l(this.value*J(e).value)},l.prototype.times=l.prototype.multiply,c.prototype.square=function(){return new c(I(this.value),!1)},f.prototype.square=function(){var e=this.value*this.value;return d(e)?new f(e):new c(I(h(Math.abs(this.value))),!1)},l.prototype.square=function(e){return new l(this.value*this.value)},c.prototype.divmod=function(e){var t=x(this,e);return{quotient:t[0],remainder:t[1]}},l.prototype.divmod=f.prototype.divmod=c.prototype.divmod,c.prototype.divide=function(e){return x(this,e)[0]},l.prototype.over=l.prototype.divide=function(e){return new l(this.value/J(e).value)},f.prototype.over=f.prototype.divide=c.prototype.over=c.prototype.divide,c.prototype.mod=function(e){return x(this,e)[1]},l.prototype.mod=l.prototype.remainder=function(e){return new l(this.value%J(e).value)},f.prototype.remainder=f.prototype.mod=c.prototype.remainder=c.prototype.mod,c.prototype.pow=function(e){var t,r,n,i=J(e),o=this.value,a=i.value;if(0===a)return u[1];if(0===o)return u[0];if(1===o)return u[1];if(-1===o)return i.isEven()?u[1]:u[-1];if(i.sign)return u[0];if(!i.isSmall)throw new Error("The exponent "+i.toString()+" is too large.");if(this.isSmall&&d(t=Math.pow(o,a)))return new f(b(t));for(r=this,n=u[1];!0&a&&(n=n.times(r),--a),0!==a;)a/=2,r=r.square();return n},f.prototype.pow=c.prototype.pow,l.prototype.pow=function(e){var t=J(e),r=this.value,n=t.value,i=BigInt(0),o=BigInt(1),a=BigInt(2);if(n===i)return u[1];if(r===i)return u[0];if(r===o)return u[1];if(r===BigInt(-1))return t.isEven()?u[1]:u[-1];if(t.isNegative())return new l(i);for(var s=this,c=u[1];(n&o)===o&&(c=c.times(s),--n),n!==i;)n/=a,s=s.square();return c},c.prototype.modPow=function(e,t){if(e=J(e),(t=J(t)).isZero())throw new Error("Cannot take modPow with modulus 0");var r=u[1],n=this.mod(t);for(e.isNegative()&&(e=e.multiply(u[-1]),n=n.modInv(t));e.isPositive();){if(n.isZero())return u[0];e.isOdd()&&(r=r.multiply(n).mod(t)),e=e.divide(2),n=n.square().mod(t)}return r},l.prototype.modPow=f.prototype.modPow=c.prototype.modPow,c.prototype.compareAbs=function(e){var t=J(e),r=this.value,n=t.value;return t.isSmall?1:L(r,n)},f.prototype.compareAbs=function(e){var t=J(e),r=Math.abs(this.value),n=t.value;return t.isSmall?r===(n=Math.abs(n))?0:r>n?1:-1:-1},l.prototype.compareAbs=function(e){var t=this.value,r=J(e).value;return(t=t>=0?t:-t)===(r=r>=0?r:-r)?0:t>r?1:-1},c.prototype.compare=function(e){if(e===1/0)return-1;if(e===-1/0)return 1;var t=J(e),r=this.value,n=t.value;return this.sign!==t.sign?t.sign?1:-1:t.isSmall?this.sign?-1:1:L(r,n)*(this.sign?-1:1)},c.prototype.compareTo=c.prototype.compare,f.prototype.compare=function(e){if(e===1/0)return-1;if(e===-1/0)return 1;var t=J(e),r=this.value,n=t.value;return t.isSmall?r==n?0:r>n?1:-1:r<0!==t.sign?r<0?-1:1:r<0?1:-1},f.prototype.compareTo=f.prototype.compare,l.prototype.compare=function(e){if(e===1/0)return-1;if(e===-1/0)return 1;var t=this.value,r=J(e).value;return t===r?0:t>r?1:-1},l.prototype.compareTo=l.prototype.compare,c.prototype.equals=function(e){return 0===this.compare(e)},l.prototype.eq=l.prototype.equals=f.prototype.eq=f.prototype.equals=c.prototype.eq=c.prototype.equals,c.prototype.notEquals=function(e){return 0!==this.compare(e)},l.prototype.neq=l.prototype.notEquals=f.prototype.neq=f.prototype.notEquals=c.prototype.neq=c.prototype.notEquals,c.prototype.greater=function(e){return this.compare(e)>0},l.prototype.gt=l.prototype.greater=f.prototype.gt=f.prototype.greater=c.prototype.gt=c.prototype.greater,c.prototype.lesser=function(e){return this.compare(e)<0},l.prototype.lt=l.prototype.lesser=f.prototype.lt=f.prototype.lesser=c.prototype.lt=c.prototype.lesser,c.prototype.greaterOrEquals=function(e){return this.compare(e)>=0},l.prototype.geq=l.prototype.greaterOrEquals=f.prototype.geq=f.prototype.greaterOrEquals=c.prototype.geq=c.prototype.greaterOrEquals,c.prototype.lesserOrEquals=function(e){return this.compare(e)<=0},l.prototype.leq=l.prototype.lesserOrEquals=f.prototype.leq=f.prototype.lesserOrEquals=c.prototype.leq=c.prototype.lesserOrEquals,c.prototype.isEven=function(){return 0==(1&this.value[0])},f.prototype.isEven=function(){return 0==(1&this.value)},l.prototype.isEven=function(){return(this.value&BigInt(1))===BigInt(0)},c.prototype.isOdd=function(){return 1==(1&this.value[0])},f.prototype.isOdd=function(){return 1==(1&this.value)},l.prototype.isOdd=function(){return(this.value&BigInt(1))===BigInt(1)},c.prototype.isPositive=function(){return!this.sign},f.prototype.isPositive=function(){return this.value>0},l.prototype.isPositive=f.prototype.isPositive,c.prototype.isNegative=function(){return this.sign},f.prototype.isNegative=function(){return this.value<0},l.prototype.isNegative=f.prototype.isNegative,c.prototype.isUnit=function(){return!1},f.prototype.isUnit=function(){return 1===Math.abs(this.value)},l.prototype.isUnit=function(){return this.abs().value===BigInt(1)},c.prototype.isZero=function(){return!1},f.prototype.isZero=function(){return 0===this.value},l.prototype.isZero=function(){return this.value===BigInt(0)},c.prototype.isDivisibleBy=function(e){var t=J(e);return!t.isZero()&&(!!t.isUnit()||(0===t.compareAbs(2)?this.isEven():this.mod(t).isZero()))},l.prototype.isDivisibleBy=f.prototype.isDivisibleBy=c.prototype.isDivisibleBy,c.prototype.isPrime=function(t){var r=k(this);if(r!==e)return r;var n=this.abs(),o=n.bitLength();if(o<=64)return R(n,[2,3,5,7,11,13,17,19,23,29,31,37]);for(var a=Math.log(2)*o.toJSNumber(),s=Math.ceil(!0===t?2*Math.pow(a,2):a),u=[],c=0;c<s;c++)u.push(i(c+2));return R(n,u)},l.prototype.isPrime=f.prototype.isPrime=c.prototype.isPrime,c.prototype.isProbablePrime=function(t,r){var n=k(this);if(n!==e)return n;for(var o=this.abs(),a=t===e?5:t,s=[],u=0;u<a;u++)s.push(i.randBetween(2,o.minus(2),r));return R(o,s)},l.prototype.isProbablePrime=f.prototype.isProbablePrime=c.prototype.isProbablePrime,c.prototype.modInv=function(e){for(var t,r,n,o=i.zero,a=i.one,s=J(e),u=this.abs();!u.isZero();)t=s.divide(u),r=o,n=s,o=a,s=u,a=r.subtract(t.multiply(a)),u=n.subtract(t.multiply(u));if(!s.isUnit())throw new Error(this.toString()+" and "+e.toString()+" are not co-prime");return-1===o.compare(0)&&(o=o.add(e)),this.isNegative()?o.negate():o},l.prototype.modInv=f.prototype.modInv=c.prototype.modInv,c.prototype.next=function(){var e=this.value;return this.sign?E(e,1,this.sign):new c(w(e,1),this.sign)},f.prototype.next=function(){var e=this.value;return e+1<n?new f(e+1):new c(o,!1)},l.prototype.next=function(){return new l(this.value+BigInt(1))},c.prototype.prev=function(){var e=this.value;return this.sign?new c(w(e,1),!0):E(e,1,this.sign)},f.prototype.prev=function(){var e=this.value;return e-1>-n?new f(e-1):new c(o,!0)},l.prototype.prev=function(){return new l(this.value-BigInt(1))};for(var P=[1];2*P[P.length-1]<=t;)P.push(2*P[P.length-1]);var B=P.length,D=P[B-1];function C(e){return Math.abs(e)<=t}function j(e,t,r){t=J(t);for(var n=e.isNegative(),o=t.isNegative(),a=n?e.not():e,s=o?t.not():t,u=0,c=0,f=null,l=null,d=[];!a.isZero()||!s.isZero();)u=(f=x(a,D))[1].toJSNumber(),n&&(u=D-1-u),c=(l=x(s,D))[1].toJSNumber(),o&&(c=D-1-c),a=f[0],s=l[0],d.push(r(u,c));for(var h=0!==r(n?1:0,o?1:0)?i(-1):i(0),p=d.length-1;p>=0;p-=1)h=h.multiply(D).add(i(d[p]));return h}c.prototype.shiftLeft=function(e){var t=J(e).toJSNumber();if(!C(t))throw new Error(String(t)+" is too large for shifting.");if(t<0)return this.shiftRight(-t);var r=this;if(r.isZero())return r;for(;t>=B;)r=r.multiply(D),t-=B-1;return r.multiply(P[t])},l.prototype.shiftLeft=f.prototype.shiftLeft=c.prototype.shiftLeft,c.prototype.shiftRight=function(e){var t,r=J(e).toJSNumber();if(!C(r))throw new Error(String(r)+" is too large for shifting.");if(r<0)return this.shiftLeft(-r);for(var n=this;r>=B;){if(n.isZero()||n.isNegative()&&n.isUnit())return n;n=(t=x(n,D))[1].isNegative()?t[0].prev():t[0],r-=B-1}return(t=x(n,P[r]))[1].isNegative()?t[0].prev():t[0]},l.prototype.shiftRight=f.prototype.shiftRight=c.prototype.shiftRight,c.prototype.not=function(){return this.negate().prev()},l.prototype.not=f.prototype.not=c.prototype.not,c.prototype.and=function(e){return j(this,e,(function(e,t){return e&t}))},l.prototype.and=f.prototype.and=c.prototype.and,c.prototype.or=function(e){return j(this,e,(function(e,t){return e|t}))},l.prototype.or=f.prototype.or=c.prototype.or,c.prototype.xor=function(e){return j(this,e,(function(e,t){return e^t}))},l.prototype.xor=f.prototype.xor=c.prototype.xor;var F=1<<30,U=(t&-t)*(t&-t)|F;function V(e){var r=e.value,n="number"==typeof r?r|F:"bigint"==typeof r?r|BigInt(F):r[0]+r[1]*t|U;return n&-n}function H(e,t){if(t.compareTo(e)<=0){var r=H(e,t.square(t)),n=r.p,o=r.e,a=n.multiply(t);return a.compareTo(e)<=0?{p:a,e:2*o+1}:{p:n,e:2*o}}return{p:i(1),e:0}}function z(e,t){return e=J(e),t=J(t),e.greater(t)?e:t}function q(e,t){return e=J(e),t=J(t),e.lesser(t)?e:t}function K(e,t){if(e=J(e).abs(),t=J(t).abs(),e.equals(t))return e;if(e.isZero())return t;if(t.isZero())return e;for(var r,n,i=u[1];e.isEven()&&t.isEven();)r=q(V(e),V(t)),e=e.divide(r),t=t.divide(r),i=i.multiply(r);for(;e.isEven();)e=e.divide(V(e));do{for(;t.isEven();)t=t.divide(V(t));e.greater(t)&&(n=t,t=e,e=n),t=t.subtract(e)}while(!t.isZero());return i.isUnit()?e:e.multiply(i)}c.prototype.bitLength=function(){var e=this;return e.compareTo(i(0))<0&&(e=e.negate().subtract(i(1))),0===e.compareTo(i(0))?i(0):i(H(e,i(2)).e).add(i(1))},l.prototype.bitLength=f.prototype.bitLength=c.prototype.bitLength;var W=function(e,t,r,n){r=r||a,e=String(e),n||(e=e.toLowerCase(),r=r.toLowerCase());var i,o=e.length,s=Math.abs(t),u={};for(i=0;i<r.length;i++)u[r[i]]=i;for(i=0;i<o;i++)if("-"!==(l=e[i])&&l in u&&u[l]>=s){if("1"===l&&1===s)continue;throw new Error(l+" is not a valid digit in base "+t+".")}t=J(t);var c=[],f="-"===e[0];for(i=f?1:0;i<e.length;i++){var l;if((l=e[i])in u)c.push(J(u[l]));else{if("<"!==l)throw new Error(l+" is not a valid character");var d=i;do{i++}while(">"!==e[i]&&i<e.length);c.push(J(e.slice(d+1,i)))}}return G(c,t,f)};function G(e,t,r){var n,i=u[0],o=u[1];for(n=e.length-1;n>=0;n--)i=i.add(e[n].times(o)),o=o.times(t);return r?i.negate():i}function Y(e,t){if((t=i(t)).isZero()){if(e.isZero())return{value:[0],isNegative:!1};throw new Error("Cannot convert nonzero numbers to base 0.")}if(t.equals(-1)){if(e.isZero())return{value:[0],isNegative:!1};if(e.isNegative())return{value:[].concat.apply([],Array.apply(null,Array(-e.toJSNumber())).map(Array.prototype.valueOf,[1,0])),isNegative:!1};var r=Array.apply(null,Array(e.toJSNumber()-1)).map(Array.prototype.valueOf,[0,1]);return r.unshift([1]),{value:[].concat.apply([],r),isNegative:!1}}var n=!1;if(e.isNegative()&&t.isPositive()&&(n=!0,e=e.abs()),t.isUnit())return e.isZero()?{value:[0],isNegative:!1}:{value:Array.apply(null,Array(e.toJSNumber())).map(Number.prototype.valueOf,1),isNegative:n};for(var o,a=[],s=e;s.isNegative()||s.compareAbs(t)>=0;){o=s.divmod(t),s=o.quotient;var u=o.remainder;u.isNegative()&&(u=t.minus(u).abs(),s=s.next()),a.push(u.toJSNumber())}return a.push(s.toJSNumber()),{value:a.reverse(),isNegative:n}}function $(e,t,r){var n=Y(e,t);return(n.isNegative?"-":"")+n.value.map((function(e){return function(e,t){return e<(t=t||a).length?t[e]:"<"+e+">"}(e,r)})).join("")}function X(e){if(d(+e)){var t=+e;if(t===b(t))return s?new l(BigInt(t)):new f(t);throw new Error("Invalid integer: "+e)}var n="-"===e[0];n&&(e=e.slice(1));var i=e.split(/e/i);if(i.length>2)throw new Error("Invalid integer: "+i.join("e"));if(2===i.length){var o=i[1];if("+"===o[0]&&(o=o.slice(1)),(o=+o)!==b(o)||!d(o))throw new Error("Invalid integer: "+o+" is not a valid exponent.");var a=i[0],u=a.indexOf(".");if(u>=0&&(o-=a.length-u-1,a=a.slice(0,u)+a.slice(u+1)),o<0)throw new Error("Cannot include negative exponent part for integers");e=a+=new Array(o+1).join("0")}if(!/^([0-9][0-9]*)$/.test(e))throw new Error("Invalid integer: "+e);if(s)return new l(BigInt(n?"-"+e:e));for(var h=[],p=e.length,g=r,m=p-g;p>0;)h.push(+e.slice(m,p)),(m-=g)<0&&(m=0),p-=g;return y(h),new c(h,n)}function J(e){return"number"==typeof e?function(e){if(s)return new l(BigInt(e));if(d(e)){if(e!==b(e))throw new Error(e+" is not an integer.");return new f(e)}return X(e.toString())}(e):"string"==typeof e?X(e):"bigint"==typeof e?new l(e):e}c.prototype.toArray=function(e){return Y(this,e)},f.prototype.toArray=function(e){return Y(this,e)},l.prototype.toArray=function(e){return Y(this,e)},c.prototype.toString=function(t,r){if(t===e&&(t=10),10!==t)return $(this,t,r);for(var n,i=this.value,o=i.length,a=String(i[--o]);--o>=0;)n=String(i[o]),a+="0000000".slice(n.length)+n;return(this.sign?"-":"")+a},f.prototype.toString=function(t,r){return t===e&&(t=10),10!=t?$(this,t,r):String(this.value)},l.prototype.toString=f.prototype.toString,l.prototype.toJSON=c.prototype.toJSON=f.prototype.toJSON=function(){return this.toString()},c.prototype.valueOf=function(){return parseInt(this.toString(),10)},c.prototype.toJSNumber=c.prototype.valueOf,f.prototype.valueOf=function(){return this.value},f.prototype.toJSNumber=f.prototype.valueOf,l.prototype.valueOf=l.prototype.toJSNumber=function(){return parseInt(this.toString(),10)};for(var Z=0;Z<1e3;Z++)u[Z]=J(Z),Z>0&&(u[-Z]=J(-Z));return u.one=u[1],u.zero=u[0],u.minusOne=u[-1],u.max=z,u.min=q,u.gcd=K,u.lcm=function(e,t){return e=J(e).abs(),t=J(t).abs(),e.divide(K(e,t)).multiply(t)},u.isInstance=function(e){return e instanceof c||e instanceof f||e instanceof l},u.randBetween=function(e,r,n){e=J(e),r=J(r);var i=n||Math.random,o=q(e,r),a=z(e,r).subtract(o).add(1);if(a.isSmall)return o.add(Math.floor(i()*a));for(var s=Y(a,t).value,c=[],f=!0,l=0;l<s.length;l++){var d=f?s[l]+(l+1<s.length?s[l+1]/t:0):t,h=b(i()*d);c.push(h),h<s[l]&&(f=!1)}return o.add(u.fromArray(c,t,!1))},u.fromArray=function(e,t,r){return G(e.map(J),J(t||10),r)},u}();e.hasOwnProperty("exports")&&(e.exports=i),void 0===(n=function(){return i}.call(t,r,t,e))||(e.exports=n)},83753:function(e,t,r){var n;!function(i){"use strict";var o,a=/^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i,s=Math.ceil,u=Math.floor,c="[BigNumber Error] ",f=c+"Number primitive has more than 15 significant digits: ",l=1e14,d=14,h=9007199254740991,p=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13],y=1e7,g=1e9;function b(e){var t=0|e;return e>0||e===t?t:t-1}function m(e){for(var t,r,n=1,i=e.length,o=e[0]+"";n<i;){for(t=e[n++]+"",r=d-t.length;r--;t="0"+t);o+=t}for(i=o.length;48===o.charCodeAt(--i););return o.slice(0,i+1||1)}function v(e,t){var r,n,i=e.c,o=t.c,a=e.s,s=t.s,u=e.e,c=t.e;if(!a||!s)return null;if(r=i&&!i[0],n=o&&!o[0],r||n)return r?n?0:-s:a;if(a!=s)return a;if(r=a<0,n=u==c,!i||!o)return n?0:!i^r?1:-1;if(!n)return u>c^r?1:-1;for(s=(u=i.length)<(c=o.length)?u:c,a=0;a<s;a++)if(i[a]!=o[a])return i[a]>o[a]^r?1:-1;return u==c?0:u>c^r?1:-1}function w(e,t,r,n){if(e<t||e>r||e!==u(e))throw Error(c+(n||"Argument")+("number"==typeof e?e<t||e>r?" out of range: ":" not an integer: ":" not a primitive number: ")+String(e))}function _(e){var t=e.c.length-1;return b(e.e/d)==t&&e.c[t]%2!=0}function E(e,t){return(e.length>1?e.charAt(0)+"."+e.slice(1):e)+(t<0?"e":"e+")+t}function S(e,t,r){var n,i;if(t<0){for(i=r+".";++t;i+=r);e=i+e}else if(++t>(n=e.length)){for(i=r,t-=n;--t;i+=r);e+=i}else t<n&&(e=e.slice(0,t)+"."+e.slice(t));return e}o=function e(t){var r,n,i,o,A,O,M,T,I,N,x=q.prototype={constructor:q,toString:null,valueOf:null},L=new q(1),k=20,R=4,P=-7,B=21,D=-1e7,C=1e7,j=!1,F=1,U=0,V={prefix:"",groupSize:3,secondaryGroupSize:0,groupSeparator:",",decimalSeparator:".",fractionGroupSize:0,fractionGroupSeparator:" ",suffix:""},H="0123456789abcdefghijklmnopqrstuvwxyz",z=!0;function q(e,t){var r,o,s,c,l,p,y,g,b=this;if(!(b instanceof q))return new q(e,t);if(null==t){if(e&&!0===e._isBigNumber)return b.s=e.s,void(!e.c||e.e>C?b.c=b.e=null:e.e<D?b.c=[b.e=0]:(b.e=e.e,b.c=e.c.slice()));if((p="number"==typeof e)&&0*e==0){if(b.s=1/e<0?(e=-e,-1):1,e===~~e){for(c=0,l=e;l>=10;l/=10,c++);return void(c>C?b.c=b.e=null:(b.e=c,b.c=[e]))}g=String(e)}else{if(!a.test(g=String(e)))return i(b,g,p);b.s=45==g.charCodeAt(0)?(g=g.slice(1),-1):1}(c=g.indexOf("."))>-1&&(g=g.replace(".","")),(l=g.search(/e/i))>0?(c<0&&(c=l),c+=+g.slice(l+1),g=g.substring(0,l)):c<0&&(c=g.length)}else{if(w(t,2,H.length,"Base"),10==t&&z)return Y(b=new q(e),k+b.e+1,R);if(g=String(e),p="number"==typeof e){if(0*e!=0)return i(b,g,p,t);if(b.s=1/e<0?(g=g.slice(1),-1):1,q.DEBUG&&g.replace(/^0\.0*|\./,"").length>15)throw Error(f+e)}else b.s=45===g.charCodeAt(0)?(g=g.slice(1),-1):1;for(r=H.slice(0,t),c=l=0,y=g.length;l<y;l++)if(r.indexOf(o=g.charAt(l))<0){if("."==o){if(l>c){c=y;continue}}else if(!s&&(g==g.toUpperCase()&&(g=g.toLowerCase())||g==g.toLowerCase()&&(g=g.toUpperCase()))){s=!0,l=-1,c=0;continue}return i(b,String(e),p,t)}p=!1,(c=(g=n(g,t,10,b.s)).indexOf("."))>-1?g=g.replace(".",""):c=g.length}for(l=0;48===g.charCodeAt(l);l++);for(y=g.length;48===g.charCodeAt(--y););if(g=g.slice(l,++y)){if(y-=l,p&&q.DEBUG&&y>15&&(e>h||e!==u(e)))throw Error(f+b.s*e);if((c=c-l-1)>C)b.c=b.e=null;else if(c<D)b.c=[b.e=0];else{if(b.e=c,b.c=[],l=(c+1)%d,c<0&&(l+=d),l<y){for(l&&b.c.push(+g.slice(0,l)),y-=d;l<y;)b.c.push(+g.slice(l,l+=d));l=d-(g=g.slice(l)).length}else l-=y;for(;l--;g+="0");b.c.push(+g)}}else b.c=[b.e=0]}function K(e,t,r,n){var i,o,a,s,u;if(null==r?r=R:w(r,0,8),!e.c)return e.toString();if(i=e.c[0],a=e.e,null==t)u=m(e.c),u=1==n||2==n&&(a<=P||a>=B)?E(u,a):S(u,a,"0");else if(o=(e=Y(new q(e),t,r)).e,s=(u=m(e.c)).length,1==n||2==n&&(t<=o||o<=P)){for(;s<t;u+="0",s++);u=E(u,o)}else if(t-=a,u=S(u,o,"0"),o+1>s){if(--t>0)for(u+=".";t--;u+="0");}else if((t+=o-s)>0)for(o+1==s&&(u+=".");t--;u+="0");return e.s<0&&i?"-"+u:u}function W(e,t){for(var r,n=1,i=new q(e[0]);n<e.length;n++){if(!(r=new q(e[n])).s){i=r;break}t.call(i,r)&&(i=r)}return i}function G(e,t,r){for(var n=1,i=t.length;!t[--i];t.pop());for(i=t[0];i>=10;i/=10,n++);return(r=n+r*d-1)>C?e.c=e.e=null:r<D?e.c=[e.e=0]:(e.e=r,e.c=t),e}function Y(e,t,r,n){var i,o,a,c,f,h,y,g=e.c,b=p;if(g){e:{for(i=1,c=g[0];c>=10;c/=10,i++);if((o=t-i)<0)o+=d,a=t,y=(f=g[h=0])/b[i-a-1]%10|0;else if((h=s((o+1)/d))>=g.length){if(!n)break e;for(;g.length<=h;g.push(0));f=y=0,i=1,a=(o%=d)-d+1}else{for(f=c=g[h],i=1;c>=10;c/=10,i++);y=(a=(o%=d)-d+i)<0?0:f/b[i-a-1]%10|0}if(n=n||t<0||null!=g[h+1]||(a<0?f:f%b[i-a-1]),n=r<4?(y||n)&&(0==r||r==(e.s<0?3:2)):y>5||5==y&&(4==r||n||6==r&&(o>0?a>0?f/b[i-a]:0:g[h-1])%10&1||r==(e.s<0?8:7)),t<1||!g[0])return g.length=0,n?(t-=e.e+1,g[0]=b[(d-t%d)%d],e.e=-t||0):g[0]=e.e=0,e;if(0==o?(g.length=h,c=1,h--):(g.length=h+1,c=b[d-o],g[h]=a>0?u(f/b[i-a]%b[a])*c:0),n)for(;;){if(0==h){for(o=1,a=g[0];a>=10;a/=10,o++);for(a=g[0]+=c,c=1;a>=10;a/=10,c++);o!=c&&(e.e++,g[0]==l&&(g[0]=1));break}if(g[h]+=c,g[h]!=l)break;g[h--]=0,c=1}for(o=g.length;0===g[--o];g.pop());}e.e>C?e.c=e.e=null:e.e<D&&(e.c=[e.e=0])}return e}function $(e){var t,r=e.e;return null===r?e.toString():(t=m(e.c),t=r<=P||r>=B?E(t,r):S(t,r,"0"),e.s<0?"-"+t:t)}return q.clone=e,q.ROUND_UP=0,q.ROUND_DOWN=1,q.ROUND_CEIL=2,q.ROUND_FLOOR=3,q.ROUND_HALF_UP=4,q.ROUND_HALF_DOWN=5,q.ROUND_HALF_EVEN=6,q.ROUND_HALF_CEIL=7,q.ROUND_HALF_FLOOR=8,q.EUCLID=9,q.config=q.set=function(e){var t,r;if(null!=e){if("object"!=typeof e)throw Error(c+"Object expected: "+e);if(e.hasOwnProperty(t="DECIMAL_PLACES")&&(w(r=e[t],0,g,t),k=r),e.hasOwnProperty(t="ROUNDING_MODE")&&(w(r=e[t],0,8,t),R=r),e.hasOwnProperty(t="EXPONENTIAL_AT")&&((r=e[t])&&r.pop?(w(r[0],-g,0,t),w(r[1],0,g,t),P=r[0],B=r[1]):(w(r,-g,g,t),P=-(B=r<0?-r:r))),e.hasOwnProperty(t="RANGE"))if((r=e[t])&&r.pop)w(r[0],-g,-1,t),w(r[1],1,g,t),D=r[0],C=r[1];else{if(w(r,-g,g,t),!r)throw Error(c+t+" cannot be zero: "+r);D=-(C=r<0?-r:r)}if(e.hasOwnProperty(t="CRYPTO")){if((r=e[t])!==!!r)throw Error(c+t+" not true or false: "+r);if(r){if("undefined"==typeof crypto||!crypto||!crypto.getRandomValues&&!crypto.randomBytes)throw j=!r,Error(c+"crypto unavailable");j=r}else j=r}if(e.hasOwnProperty(t="MODULO_MODE")&&(w(r=e[t],0,9,t),F=r),e.hasOwnProperty(t="POW_PRECISION")&&(w(r=e[t],0,g,t),U=r),e.hasOwnProperty(t="FORMAT")){if("object"!=typeof(r=e[t]))throw Error(c+t+" not an object: "+r);V=r}if(e.hasOwnProperty(t="ALPHABET")){if("string"!=typeof(r=e[t])||/^.?$|[+\-.\s]|(.).*\1/.test(r))throw Error(c+t+" invalid: "+r);z="0123456789"==r.slice(0,10),H=r}}return{DECIMAL_PLACES:k,ROUNDING_MODE:R,EXPONENTIAL_AT:[P,B],RANGE:[D,C],CRYPTO:j,MODULO_MODE:F,POW_PRECISION:U,FORMAT:V,ALPHABET:H}},q.isBigNumber=function(e){if(!e||!0!==e._isBigNumber)return!1;if(!q.DEBUG)return!0;var t,r,n=e.c,i=e.e,o=e.s;e:if("[object Array]"=={}.toString.call(n)){if((1===o||-1===o)&&i>=-g&&i<=g&&i===u(i)){if(0===n[0]){if(0===i&&1===n.length)return!0;break e}if((t=(i+1)%d)<1&&(t+=d),String(n[0]).length==t){for(t=0;t<n.length;t++)if((r=n[t])<0||r>=l||r!==u(r))break e;if(0!==r)return!0}}}else if(null===n&&null===i&&(null===o||1===o||-1===o))return!0;throw Error(c+"Invalid BigNumber: "+e)},q.maximum=q.max=function(){return W(arguments,x.lt)},q.minimum=q.min=function(){return W(arguments,x.gt)},q.random=(o=9007199254740992,A=Math.random()*o&2097151?function(){return u(Math.random()*o)}:function(){return 8388608*(1073741824*Math.random()|0)+(8388608*Math.random()|0)},function(e){var t,r,n,i,o,a=0,f=[],l=new q(L);if(null==e?e=k:w(e,0,g),i=s(e/d),j)if(crypto.getRandomValues){for(t=crypto.getRandomValues(new Uint32Array(i*=2));a<i;)(o=131072*t[a]+(t[a+1]>>>11))>=9e15?(r=crypto.getRandomValues(new Uint32Array(2)),t[a]=r[0],t[a+1]=r[1]):(f.push(o%1e14),a+=2);a=i/2}else{if(!crypto.randomBytes)throw j=!1,Error(c+"crypto unavailable");for(t=crypto.randomBytes(i*=7);a<i;)(o=281474976710656*(31&t[a])+1099511627776*t[a+1]+4294967296*t[a+2]+16777216*t[a+3]+(t[a+4]<<16)+(t[a+5]<<8)+t[a+6])>=9e15?crypto.randomBytes(7).copy(t,a):(f.push(o%1e14),a+=7);a=i/7}if(!j)for(;a<i;)(o=A())<9e15&&(f[a++]=o%1e14);for(i=f[--a],e%=d,i&&e&&(o=p[d-e],f[a]=u(i/o)*o);0===f[a];f.pop(),a--);if(a<0)f=[n=0];else{for(n=-1;0===f[0];f.splice(0,1),n-=d);for(a=1,o=f[0];o>=10;o/=10,a++);a<d&&(n-=d-a)}return l.e=n,l.c=f,l}),q.sum=function(){for(var e=1,t=arguments,r=new q(t[0]);e<t.length;)r=r.plus(t[e++]);return r},n=function(){var e="0123456789";function t(e,t,r,n){for(var i,o,a=[0],s=0,u=e.length;s<u;){for(o=a.length;o--;a[o]*=t);for(a[0]+=n.indexOf(e.charAt(s++)),i=0;i<a.length;i++)a[i]>r-1&&(null==a[i+1]&&(a[i+1]=0),a[i+1]+=a[i]/r|0,a[i]%=r)}return a.reverse()}return function(n,i,o,a,s){var u,c,f,l,d,h,p,y,g=n.indexOf("."),b=k,v=R;for(g>=0&&(l=U,U=0,n=n.replace(".",""),h=(y=new q(i)).pow(n.length-g),U=l,y.c=t(S(m(h.c),h.e,"0"),10,o,e),y.e=y.c.length),f=l=(p=t(n,i,o,s?(u=H,e):(u=e,H))).length;0==p[--l];p.pop());if(!p[0])return u.charAt(0);if(g<0?--f:(h.c=p,h.e=f,h.s=a,p=(h=r(h,y,b,v,o)).c,d=h.r,f=h.e),g=p[c=f+b+1],l=o/2,d=d||c<0||null!=p[c+1],d=v<4?(null!=g||d)&&(0==v||v==(h.s<0?3:2)):g>l||g==l&&(4==v||d||6==v&&1&p[c-1]||v==(h.s<0?8:7)),c<1||!p[0])n=d?S(u.charAt(1),-b,u.charAt(0)):u.charAt(0);else{if(p.length=c,d)for(--o;++p[--c]>o;)p[c]=0,c||(++f,p=[1].concat(p));for(l=p.length;!p[--l];);for(g=0,n="";g<=l;n+=u.charAt(p[g++]));n=S(n,f,u.charAt(0))}return n}}(),r=function(){function e(e,t,r){var n,i,o,a,s=0,u=e.length,c=t%y,f=t/y|0;for(e=e.slice();u--;)s=((i=c*(o=e[u]%y)+(n=f*o+(a=e[u]/y|0)*c)%y*y+s)/r|0)+(n/y|0)+f*a,e[u]=i%r;return s&&(e=[s].concat(e)),e}function t(e,t,r,n){var i,o;if(r!=n)o=r>n?1:-1;else for(i=o=0;i<r;i++)if(e[i]!=t[i]){o=e[i]>t[i]?1:-1;break}return o}function r(e,t,r,n){for(var i=0;r--;)e[r]-=i,i=e[r]<t[r]?1:0,e[r]=i*n+e[r]-t[r];for(;!e[0]&&e.length>1;e.splice(0,1));}return function(n,i,o,a,s){var c,f,h,p,y,g,m,v,w,_,E,S,A,O,M,T,I,N=n.s==i.s?1:-1,x=n.c,L=i.c;if(!(x&&x[0]&&L&&L[0]))return new q(n.s&&i.s&&(x?!L||x[0]!=L[0]:L)?x&&0==x[0]||!L?0*N:N/0:NaN);for(w=(v=new q(N)).c=[],N=o+(f=n.e-i.e)+1,s||(s=l,f=b(n.e/d)-b(i.e/d),N=N/d|0),h=0;L[h]==(x[h]||0);h++);if(L[h]>(x[h]||0)&&f--,N<0)w.push(1),p=!0;else{for(O=x.length,T=L.length,h=0,N+=2,(y=u(s/(L[0]+1)))>1&&(L=e(L,y,s),x=e(x,y,s),T=L.length,O=x.length),A=T,E=(_=x.slice(0,T)).length;E<T;_[E++]=0);I=L.slice(),I=[0].concat(I),M=L[0],L[1]>=s/2&&M++;do{if(y=0,(c=t(L,_,T,E))<0){if(S=_[0],T!=E&&(S=S*s+(_[1]||0)),(y=u(S/M))>1)for(y>=s&&(y=s-1),m=(g=e(L,y,s)).length,E=_.length;1==t(g,_,m,E);)y--,r(g,T<m?I:L,m,s),m=g.length,c=1;else 0==y&&(c=y=1),m=(g=L.slice()).length;if(m<E&&(g=[0].concat(g)),r(_,g,E,s),E=_.length,-1==c)for(;t(L,_,T,E)<1;)y++,r(_,T<E?I:L,E,s),E=_.length}else 0===c&&(y++,_=[0]);w[h++]=y,_[0]?_[E++]=x[A]||0:(_=[x[A]],E=1)}while((A++<O||null!=_[0])&&N--);p=null!=_[0],w[0]||w.splice(0,1)}if(s==l){for(h=1,N=w[0];N>=10;N/=10,h++);Y(v,o+(v.e=h+f*d-1)+1,a,p)}else v.e=f,v.r=+p;return v}}(),O=/^(-?)0([xbo])(?=\w[\w.]*$)/i,M=/^([^.]+)\.$/,T=/^\.([^.]+)$/,I=/^-?(Infinity|NaN)$/,N=/^\s*\+(?=[\w.])|^\s+|\s+$/g,i=function(e,t,r,n){var i,o=r?t:t.replace(N,"");if(I.test(o))e.s=isNaN(o)?null:o<0?-1:1;else{if(!r&&(o=o.replace(O,(function(e,t,r){return i="x"==(r=r.toLowerCase())?16:"b"==r?2:8,n&&n!=i?e:t})),n&&(i=n,o=o.replace(M,"$1").replace(T,"0.$1")),t!=o))return new q(o,i);if(q.DEBUG)throw Error(c+"Not a"+(n?" base "+n:"")+" number: "+t);e.s=null}e.c=e.e=null},x.absoluteValue=x.abs=function(){var e=new q(this);return e.s<0&&(e.s=1),e},x.comparedTo=function(e,t){return v(this,new q(e,t))},x.decimalPlaces=x.dp=function(e,t){var r,n,i,o=this;if(null!=e)return w(e,0,g),null==t?t=R:w(t,0,8),Y(new q(o),e+o.e+1,t);if(!(r=o.c))return null;if(n=((i=r.length-1)-b(this.e/d))*d,i=r[i])for(;i%10==0;i/=10,n--);return n<0&&(n=0),n},x.dividedBy=x.div=function(e,t){return r(this,new q(e,t),k,R)},x.dividedToIntegerBy=x.idiv=function(e,t){return r(this,new q(e,t),0,1)},x.exponentiatedBy=x.pow=function(e,t){var r,n,i,o,a,f,l,h,p=this;if((e=new q(e)).c&&!e.isInteger())throw Error(c+"Exponent not an integer: "+$(e));if(null!=t&&(t=new q(t)),a=e.e>14,!p.c||!p.c[0]||1==p.c[0]&&!p.e&&1==p.c.length||!e.c||!e.c[0])return h=new q(Math.pow(+$(p),a?e.s*(2-_(e)):+$(e))),t?h.mod(t):h;if(f=e.s<0,t){if(t.c?!t.c[0]:!t.s)return new q(NaN);(n=!f&&p.isInteger()&&t.isInteger())&&(p=p.mod(t))}else{if(e.e>9&&(p.e>0||p.e<-1||(0==p.e?p.c[0]>1||a&&p.c[1]>=24e7:p.c[0]<8e13||a&&p.c[0]<=9999975e7)))return o=p.s<0&&_(e)?-0:0,p.e>-1&&(o=1/o),new q(f?1/o:o);U&&(o=s(U/d+2))}for(a?(r=new q(.5),f&&(e.s=1),l=_(e)):l=(i=Math.abs(+$(e)))%2,h=new q(L);;){if(l){if(!(h=h.times(p)).c)break;o?h.c.length>o&&(h.c.length=o):n&&(h=h.mod(t))}if(i){if(0===(i=u(i/2)))break;l=i%2}else if(Y(e=e.times(r),e.e+1,1),e.e>14)l=_(e);else{if(0==(i=+$(e)))break;l=i%2}p=p.times(p),o?p.c&&p.c.length>o&&(p.c.length=o):n&&(p=p.mod(t))}return n?h:(f&&(h=L.div(h)),t?h.mod(t):o?Y(h,U,R,void 0):h)},x.integerValue=function(e){var t=new q(this);return null==e?e=R:w(e,0,8),Y(t,t.e+1,e)},x.isEqualTo=x.eq=function(e,t){return 0===v(this,new q(e,t))},x.isFinite=function(){return!!this.c},x.isGreaterThan=x.gt=function(e,t){return v(this,new q(e,t))>0},x.isGreaterThanOrEqualTo=x.gte=function(e,t){return 1===(t=v(this,new q(e,t)))||0===t},x.isInteger=function(){return!!this.c&&b(this.e/d)>this.c.length-2},x.isLessThan=x.lt=function(e,t){return v(this,new q(e,t))<0},x.isLessThanOrEqualTo=x.lte=function(e,t){return-1===(t=v(this,new q(e,t)))||0===t},x.isNaN=function(){return!this.s},x.isNegative=function(){return this.s<0},x.isPositive=function(){return this.s>0},x.isZero=function(){return!!this.c&&0==this.c[0]},x.minus=function(e,t){var r,n,i,o,a=this,s=a.s;if(t=(e=new q(e,t)).s,!s||!t)return new q(NaN);if(s!=t)return e.s=-t,a.plus(e);var u=a.e/d,c=e.e/d,f=a.c,h=e.c;if(!u||!c){if(!f||!h)return f?(e.s=-t,e):new q(h?a:NaN);if(!f[0]||!h[0])return h[0]?(e.s=-t,e):new q(f[0]?a:3==R?-0:0)}if(u=b(u),c=b(c),f=f.slice(),s=u-c){for((o=s<0)?(s=-s,i=f):(c=u,i=h),i.reverse(),t=s;t--;i.push(0));i.reverse()}else for(n=(o=(s=f.length)<(t=h.length))?s:t,s=t=0;t<n;t++)if(f[t]!=h[t]){o=f[t]<h[t];break}if(o&&(i=f,f=h,h=i,e.s=-e.s),(t=(n=h.length)-(r=f.length))>0)for(;t--;f[r++]=0);for(t=l-1;n>s;){if(f[--n]<h[n]){for(r=n;r&&!f[--r];f[r]=t);--f[r],f[n]+=l}f[n]-=h[n]}for(;0==f[0];f.splice(0,1),--c);return f[0]?G(e,f,c):(e.s=3==R?-1:1,e.c=[e.e=0],e)},x.modulo=x.mod=function(e,t){var n,i,o=this;return e=new q(e,t),!o.c||!e.s||e.c&&!e.c[0]?new q(NaN):!e.c||o.c&&!o.c[0]?new q(o):(9==F?(i=e.s,e.s=1,n=r(o,e,0,3),e.s=i,n.s*=i):n=r(o,e,0,F),(e=o.minus(n.times(e))).c[0]||1!=F||(e.s=o.s),e)},x.multipliedBy=x.times=function(e,t){var r,n,i,o,a,s,u,c,f,h,p,g,m,v,w,_=this,E=_.c,S=(e=new q(e,t)).c;if(!(E&&S&&E[0]&&S[0]))return!_.s||!e.s||E&&!E[0]&&!S||S&&!S[0]&&!E?e.c=e.e=e.s=null:(e.s*=_.s,E&&S?(e.c=[0],e.e=0):e.c=e.e=null),e;for(n=b(_.e/d)+b(e.e/d),e.s*=_.s,(u=E.length)<(h=S.length)&&(m=E,E=S,S=m,i=u,u=h,h=i),i=u+h,m=[];i--;m.push(0));for(v=l,w=y,i=h;--i>=0;){for(r=0,p=S[i]%w,g=S[i]/w|0,o=i+(a=u);o>i;)r=((c=p*(c=E[--a]%w)+(s=g*c+(f=E[a]/w|0)*p)%w*w+m[o]+r)/v|0)+(s/w|0)+g*f,m[o--]=c%v;m[o]=r}return r?++n:m.splice(0,1),G(e,m,n)},x.negated=function(){var e=new q(this);return e.s=-e.s||null,e},x.plus=function(e,t){var r,n=this,i=n.s;if(t=(e=new q(e,t)).s,!i||!t)return new q(NaN);if(i!=t)return e.s=-t,n.minus(e);var o=n.e/d,a=e.e/d,s=n.c,u=e.c;if(!o||!a){if(!s||!u)return new q(i/0);if(!s[0]||!u[0])return u[0]?e:new q(s[0]?n:0*i)}if(o=b(o),a=b(a),s=s.slice(),i=o-a){for(i>0?(a=o,r=u):(i=-i,r=s),r.reverse();i--;r.push(0));r.reverse()}for((i=s.length)-(t=u.length)<0&&(r=u,u=s,s=r,t=i),i=0;t;)i=(s[--t]=s[t]+u[t]+i)/l|0,s[t]=l===s[t]?0:s[t]%l;return i&&(s=[i].concat(s),++a),G(e,s,a)},x.precision=x.sd=function(e,t){var r,n,i,o=this;if(null!=e&&e!==!!e)return w(e,1,g),null==t?t=R:w(t,0,8),Y(new q(o),e,t);if(!(r=o.c))return null;if(n=(i=r.length-1)*d+1,i=r[i]){for(;i%10==0;i/=10,n--);for(i=r[0];i>=10;i/=10,n++);}return e&&o.e+1>n&&(n=o.e+1),n},x.shiftedBy=function(e){return w(e,-9007199254740991,h),this.times("1e"+e)},x.squareRoot=x.sqrt=function(){var e,t,n,i,o,a=this,s=a.c,u=a.s,c=a.e,f=k+4,l=new q("0.5");if(1!==u||!s||!s[0])return new q(!u||u<0&&(!s||s[0])?NaN:s?a:1/0);if(0==(u=Math.sqrt(+$(a)))||u==1/0?(((t=m(s)).length+c)%2==0&&(t+="0"),u=Math.sqrt(+t),c=b((c+1)/2)-(c<0||c%2),n=new q(t=u==1/0?"5e"+c:(t=u.toExponential()).slice(0,t.indexOf("e")+1)+c)):n=new q(u+""),n.c[0])for((u=(c=n.e)+f)<3&&(u=0);;)if(o=n,n=l.times(o.plus(r(a,o,f,1))),m(o.c).slice(0,u)===(t=m(n.c)).slice(0,u)){if(n.e<c&&--u,"9999"!=(t=t.slice(u-3,u+1))&&(i||"4999"!=t)){+t&&(+t.slice(1)||"5"!=t.charAt(0))||(Y(n,n.e+k+2,1),e=!n.times(n).eq(a));break}if(!i&&(Y(o,o.e+k+2,0),o.times(o).eq(a))){n=o;break}f+=4,u+=4,i=1}return Y(n,n.e+k+1,R,e)},x.toExponential=function(e,t){return null!=e&&(w(e,0,g),e++),K(this,e,t,1)},x.toFixed=function(e,t){return null!=e&&(w(e,0,g),e=e+this.e+1),K(this,e,t)},x.toFormat=function(e,t,r){var n,i=this;if(null==r)null!=e&&t&&"object"==typeof t?(r=t,t=null):e&&"object"==typeof e?(r=e,e=t=null):r=V;else if("object"!=typeof r)throw Error(c+"Argument not an object: "+r);if(n=i.toFixed(e,t),i.c){var o,a=n.split("."),s=+r.groupSize,u=+r.secondaryGroupSize,f=r.groupSeparator||"",l=a[0],d=a[1],h=i.s<0,p=h?l.slice(1):l,y=p.length;if(u&&(o=s,s=u,u=o,y-=o),s>0&&y>0){for(o=y%s||s,l=p.substr(0,o);o<y;o+=s)l+=f+p.substr(o,s);u>0&&(l+=f+p.slice(o)),h&&(l="-"+l)}n=d?l+(r.decimalSeparator||"")+((u=+r.fractionGroupSize)?d.replace(new RegExp("\\d{"+u+"}\\B","g"),"$&"+(r.fractionGroupSeparator||"")):d):l}return(r.prefix||"")+n+(r.suffix||"")},x.toFraction=function(e){var t,n,i,o,a,s,u,f,l,h,y,g,b=this,v=b.c;if(null!=e&&(!(u=new q(e)).isInteger()&&(u.c||1!==u.s)||u.lt(L)))throw Error(c+"Argument "+(u.isInteger()?"out of range: ":"not an integer: ")+$(u));if(!v)return new q(b);for(t=new q(L),l=n=new q(L),i=f=new q(L),g=m(v),a=t.e=g.length-b.e-1,t.c[0]=p[(s=a%d)<0?d+s:s],e=!e||u.comparedTo(t)>0?a>0?t:l:u,s=C,C=1/0,u=new q(g),f.c[0]=0;h=r(u,t,0,1),1!=(o=n.plus(h.times(i))).comparedTo(e);)n=i,i=o,l=f.plus(h.times(o=l)),f=o,t=u.minus(h.times(o=t)),u=o;return o=r(e.minus(n),i,0,1),f=f.plus(o.times(l)),n=n.plus(o.times(i)),f.s=l.s=b.s,y=r(l,i,a*=2,R).minus(b).abs().comparedTo(r(f,n,a,R).minus(b).abs())<1?[l,i]:[f,n],C=s,y},x.toNumber=function(){return+$(this)},x.toPrecision=function(e,t){return null!=e&&w(e,1,g),K(this,e,t,2)},x.toString=function(e){var t,r=this,i=r.s,o=r.e;return null===o?i?(t="Infinity",i<0&&(t="-"+t)):t="NaN":(null==e?t=o<=P||o>=B?E(m(r.c),o):S(m(r.c),o,"0"):10===e&&z?t=S(m((r=Y(new q(r),k+o+1,R)).c),r.e,"0"):(w(e,2,H.length,"Base"),t=n(S(m(r.c),o,"0"),10,e,i,!0)),i<0&&r.c[0]&&(t="-"+t)),t},x.valueOf=x.toJSON=function(){return $(this)},x._isBigNumber=!0,null!=t&&q.set(t),q}(),o.default=o.BigNumber=o,void 0===(n=function(){return o}.call(t,r,t,e))||(e.exports=n)}()},47932:(e,t,r)=>{"use strict";var n=r(18390).Buffer;Object.defineProperty(t,"__esModule",{value:!0});const i=r(68482),o=r(84948),a=r(41058),s=r(22420),u=r(71150),c=s.BufferN(32),f=s.compile({wif:s.UInt8,bip32:{public:s.UInt32,private:s.UInt32}}),l={messagePrefix:"Bitcoin Signed Message:\n",bech32:"bc",bip32:{public:76067358,private:76066276},pubKeyHash:0,scriptHash:5,wif:128},d=2147483648,h=Math.pow(2,31)-1;function p(e){return s.String(e)&&null!==e.match(/^(m\/)?(\d+'?\/)*\d+'?$/)}function y(e){return s.UInt32(e)&&e<=h}class g{constructor(e,t,r,n,i=0,o=0,a=0){this.__D=e,this.__Q=t,this.chainCode=r,this.network=n,this.__DEPTH=i,this.__INDEX=o,this.__PARENT_FINGERPRINT=a,s(f,n),this.lowR=!1}get depth(){return this.__DEPTH}get index(){return this.__INDEX}get parentFingerprint(){return this.__PARENT_FINGERPRINT}get publicKey(){return void 0===this.__Q&&(this.__Q=a.pointFromScalar(this.__D,!0)),this.__Q}get privateKey(){return this.__D}get identifier(){return i.hash160(this.publicKey)}get fingerprint(){return this.identifier.slice(0,4)}get compressed(){return!0}isNeutered(){return void 0===this.__D}neutered(){return v(this.publicKey,this.chainCode,this.network,this.depth,this.index,this.parentFingerprint)}toBase58(){const e=this.network,t=this.isNeutered()?e.bip32.public:e.bip32.private,r=n.allocUnsafe(78);return r.writeUInt32BE(t,0),r.writeUInt8(this.depth,4),r.writeUInt32BE(this.parentFingerprint,5),r.writeUInt32BE(this.index,9),this.chainCode.copy(r,13),this.isNeutered()?this.publicKey.copy(r,45):(r.writeUInt8(0,45),this.privateKey.copy(r,46)),o.encode(r)}toWIF(){if(!this.privateKey)throw new TypeError("Missing private key");return u.encode(this.network.wif,this.privateKey,!0)}derive(e){s(s.UInt32,e);const t=e>=d,r=n.allocUnsafe(37);if(t){if(this.isNeutered())throw new TypeError("Missing private key for hardened child key");r[0]=0,this.privateKey.copy(r,1),r.writeUInt32BE(e,33)}else this.publicKey.copy(r,0),r.writeUInt32BE(e,33);const o=i.hmacSHA512(this.chainCode,r),u=o.slice(0,32),c=o.slice(32);if(!a.isPrivate(u))return this.derive(e+1);let f;if(this.isNeutered()){const t=a.pointAddScalar(this.publicKey,u,!0);if(null===t)return this.derive(e+1);f=v(t,c,this.network,this.depth+1,e,this.fingerprint.readUInt32BE(0))}else{const t=a.privateAdd(this.privateKey,u);if(null==t)return this.derive(e+1);f=m(t,c,this.network,this.depth+1,e,this.fingerprint.readUInt32BE(0))}return f}deriveHardened(e){return s(y,e),this.derive(e+d)}derivePath(e){s(p,e);let t=e.split("/");if("m"===t[0]){if(this.parentFingerprint)throw new TypeError("Expected master, got child");t=t.slice(1)}return t.reduce(((e,t)=>{let r;return"'"===t.slice(-1)?(r=parseInt(t.slice(0,-1),10),e.deriveHardened(r)):(r=parseInt(t,10),e.derive(r))}),this)}sign(e,t){if(!this.privateKey)throw new Error("Missing private key");if(void 0===t&&(t=this.lowR),!1===t)return a.sign(e,this.privateKey);{let t=a.sign(e,this.privateKey);const r=n.alloc(32,0);let i=0;for(;t[0]>127;)i++,r.writeUIntLE(i,0,6),t=a.signWithEntropy(e,this.privateKey,r);return t}}verify(e,t){return a.verify(e,this.publicKey,t)}}function b(e,t,r){return m(e,t,r)}function m(e,t,r,n,i,o){if(s({privateKey:c,chainCode:c},{privateKey:e,chainCode:t}),r=r||l,!a.isPrivate(e))throw new TypeError("Private key not in range [1, n)");return new g(e,void 0,t,r,n,i,o)}function v(e,t,r,n,i,o){if(s({publicKey:s.BufferN(33),chainCode:c},{publicKey:e,chainCode:t}),r=r||l,!a.isPoint(e))throw new TypeError("Point is not on the curve");return new g(void 0,e,t,r,n,i,o)}t.fromBase58=function(e,t){const r=o.decode(e);if(78!==r.length)throw new TypeError("Invalid buffer length");t=t||l;const n=r.readUInt32BE(0);if(n!==t.bip32.private&&n!==t.bip32.public)throw new TypeError("Invalid network version");const i=r[4],a=r.readUInt32BE(5);if(0===i&&0!==a)throw new TypeError("Invalid parent fingerprint");const s=r.readUInt32BE(9);if(0===i&&0!==s)throw new TypeError("Invalid index");const u=r.slice(13,45);let c;if(n===t.bip32.private){if(0!==r.readUInt8(45))throw new TypeError("Invalid private key");c=m(r.slice(46,78),u,t,i,s,a)}else c=v(r.slice(45,78),u,t,i,s,a);return c},t.fromPrivateKey=b,t.fromPublicKey=function(e,t,r){return v(e,t,r)},t.fromSeed=function(e,t){if(s(s.Buffer,e),e.length<16)throw new TypeError("Seed should be at least 128 bits");if(e.length>64)throw new TypeError("Seed should be at most 512 bits");t=t||l;const r=i.hmacSHA512(n.from("Bitcoin seed","utf8"),e);return b(r.slice(0,32),r.slice(32),t)}},68482:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(50637),i=r(18451);t.hash160=function(e){const t=n("sha256").update(e).digest();try{return n("rmd160").update(t).digest()}catch(e){return n("ripemd160").update(t).digest()}},t.hmacSHA512=function(e,t){return i("sha512",e).update(t).digest()}},84973:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(47932);t.fromSeed=n.fromSeed,t.fromBase58=n.fromBase58,t.fromPublicKey=n.fromPublicKey,t.fromPrivateKey=n.fromPrivateKey},7042:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n={};let i;t.wordlists=n,t._default=i;try{t._default=i=r(Object(function(){var e=new Error("Cannot find module './wordlists/czech.json'");throw e.code="MODULE_NOT_FOUND",e}())),n.czech=i}catch(e){}try{t._default=i=r(Object(function(){var e=new Error("Cannot find module './wordlists/chinese_simplified.json'");throw e.code="MODULE_NOT_FOUND",e}())),n.chinese_simplified=i}catch(e){}try{t._default=i=r(Object(function(){var e=new Error("Cannot find module './wordlists/chinese_traditional.json'");throw e.code="MODULE_NOT_FOUND",e}())),n.chinese_traditional=i}catch(e){}try{t._default=i=r(Object(function(){var e=new Error("Cannot find module './wordlists/korean.json'");throw e.code="MODULE_NOT_FOUND",e}())),n.korean=i}catch(e){}try{t._default=i=r(Object(function(){var e=new Error("Cannot find module './wordlists/french.json'");throw e.code="MODULE_NOT_FOUND",e}())),n.french=i}catch(e){}try{t._default=i=r(Object(function(){var e=new Error("Cannot find module './wordlists/italian.json'");throw e.code="MODULE_NOT_FOUND",e}())),n.italian=i}catch(e){}try{t._default=i=r(Object(function(){var e=new Error("Cannot find module './wordlists/spanish.json'");throw e.code="MODULE_NOT_FOUND",e}())),n.spanish=i}catch(e){}try{t._default=i=r(Object(function(){var e=new Error("Cannot find module './wordlists/japanese.json'");throw e.code="MODULE_NOT_FOUND",e}())),n.japanese=i,n.JA=i}catch(e){}try{t._default=i=r(Object(function(){var e=new Error("Cannot find module './wordlists/portuguese.json'");throw e.code="MODULE_NOT_FOUND",e}())),n.portuguese=i}catch(e){}try{t._default=i=r(32308),n.english=i,n.EN=i}catch(e){}},63399:(e,t,r)=>{"use strict";var n=r(18390).Buffer;Object.defineProperty(t,"__esModule",{value:!0});const i=r(37789),o=r(94391),a=r(35e3),s=r(56266),u=r(7042);let c=u._default;const f="Invalid mnemonic",l="Invalid entropy",d="A wordlist is required but a default could not be found.\nPlease pass a 2048 word array explicitly.";function h(e){return(e||"").normalize("NFKD")}function p(e,t,r){for(;e.length<r;)e=t+e;return e}function y(e){return parseInt(e,2)}function g(e){return e.map((e=>p(e.toString(2),"0",8))).join("")}function b(e){const t=8*e.length/32,r=i.sha256(Uint8Array.from(e));return g(Array.from(r)).slice(0,t)}function m(e){return"mnemonic"+(e||"")}function v(e,t){if(!(t=t||c))throw new Error(d);const r=h(e).split(" ");if(r.length%3!=0)throw new Error(f);const i=r.map((e=>{const r=t.indexOf(e);if(-1===r)throw new Error(f);return p(r.toString(2),"0",11)})).join(""),o=32*Math.floor(i.length/33),a=i.slice(0,o),s=i.slice(o),u=a.match(/(.{1,8})/g).map(y);if(u.length<16)throw new Error(l);if(u.length>32)throw new Error(l);if(u.length%4!=0)throw new Error(l);const g=n.from(u);if(b(g)!==s)throw new Error("Invalid mnemonic checksum");return g.toString("hex")}function w(e,t){if(n.isBuffer(e)||(e=n.from(e,"hex")),!(t=t||c))throw new Error(d);if(e.length<16)throw new TypeError(l);if(e.length>32)throw new TypeError(l);if(e.length%4!=0)throw new TypeError(l);const r=(g(Array.from(e))+b(e)).match(/(.{1,11})/g).map((e=>{const r=y(e);return t[r]}));return"あいこくしん"===t[0]?r.join(" "):r.join(" ")}t.mnemonicToSeedSync=function(e,t){const r=Uint8Array.from(n.from(h(e),"utf8")),i=Uint8Array.from(n.from(m(h(t)),"utf8")),s=a.pbkdf2(o.sha512,r,i,{c:2048,dkLen:64});return n.from(s)},t.mnemonicToSeed=function(e,t){const r=Uint8Array.from(n.from(h(e),"utf8")),i=Uint8Array.from(n.from(m(h(t)),"utf8"));return a.pbkdf2Async(o.sha512,r,i,{c:2048,dkLen:64}).then((e=>n.from(e)))},t.mnemonicToEntropy=v,t.entropyToMnemonic=w,t.generateMnemonic=function(e,t,r){if((e=e||128)%32!=0)throw new TypeError(l);return w((t=t||(e=>n.from(s.randomBytes(e))))(e/8),r)},t.validateMnemonic=function(e,t){try{v(e,t)}catch(e){return!1}return!0},t.setDefaultWordlist=function(e){const t=u.wordlists[e];if(!t)throw new Error('Could not find wordlist for language "'+e+'"');c=t},t.getDefaultWordlist=function(){if(!c)throw new Error("No Default Wordlist set");return Object.keys(u.wordlists).filter((e=>"JA"!==e&&"EN"!==e&&u.wordlists[e].every(((e,t)=>e===c[t]))))[0]};var _=r(7042);t.wordlists=_.wordlists},69999:function(e,t,r){!function(e,t){"use strict";function n(e,t){if(!e)throw new Error(t||"Assertion failed")}function i(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}function o(e,t,r){if(o.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(r=t,t=10),this._init(e||0,t||10,r||"be"))}var a;"object"==typeof e?e.exports=o:t.BN=o,o.BN=o,o.wordSize=26;try{a="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:r(33196).Buffer}catch(e){}function s(e,t){var r=e.charCodeAt(t);return r>=48&&r<=57?r-48:r>=65&&r<=70?r-55:r>=97&&r<=102?r-87:void n(!1,"Invalid character in "+e)}function u(e,t,r){var n=s(e,r);return r-1>=t&&(n|=s(e,r-1)<<4),n}function c(e,t,r,i){for(var o=0,a=0,s=Math.min(e.length,r),u=t;u<s;u++){var c=e.charCodeAt(u)-48;o*=i,a=c>=49?c-49+10:c>=17?c-17+10:c,n(c>=0&&a<i,"Invalid character"),o+=a}return o}function f(e,t){e.words=t.words,e.length=t.length,e.negative=t.negative,e.red=t.red}if(o.isBN=function(e){return e instanceof o||null!==e&&"object"==typeof e&&e.constructor.wordSize===o.wordSize&&Array.isArray(e.words)},o.max=function(e,t){return e.cmp(t)>0?e:t},o.min=function(e,t){return e.cmp(t)<0?e:t},o.prototype._init=function(e,t,r){if("number"==typeof e)return this._initNumber(e,t,r);if("object"==typeof e)return this._initArray(e,t,r);"hex"===t&&(t=16),n(t===(0|t)&&t>=2&&t<=36);var i=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(i++,this.negative=1),i<e.length&&(16===t?this._parseHex(e,i,r):(this._parseBase(e,t,i),"le"===r&&this._initArray(this.toArray(),t,r)))},o.prototype._initNumber=function(e,t,r){e<0&&(this.negative=1,e=-e),e<67108864?(this.words=[67108863&e],this.length=1):e<4503599627370496?(this.words=[67108863&e,e/67108864&67108863],this.length=2):(n(e<9007199254740992),this.words=[67108863&e,e/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),t,r)},o.prototype._initArray=function(e,t,r){if(n("number"==typeof e.length),e.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(e.length/3),this.words=new Array(this.length);for(var i=0;i<this.length;i++)this.words[i]=0;var o,a,s=0;if("be"===r)for(i=e.length-1,o=0;i>=0;i-=3)a=e[i]|e[i-1]<<8|e[i-2]<<16,this.words[o]|=a<<s&67108863,this.words[o+1]=a>>>26-s&67108863,(s+=24)>=26&&(s-=26,o++);else if("le"===r)for(i=0,o=0;i<e.length;i+=3)a=e[i]|e[i+1]<<8|e[i+2]<<16,this.words[o]|=a<<s&67108863,this.words[o+1]=a>>>26-s&67108863,(s+=24)>=26&&(s-=26,o++);return this._strip()},o.prototype._parseHex=function(e,t,r){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var n=0;n<this.length;n++)this.words[n]=0;var i,o=0,a=0;if("be"===r)for(n=e.length-1;n>=t;n-=2)i=u(e,t,n)<<o,this.words[a]|=67108863&i,o>=18?(o-=18,a+=1,this.words[a]|=i>>>26):o+=8;else for(n=(e.length-t)%2==0?t+1:t;n<e.length;n+=2)i=u(e,t,n)<<o,this.words[a]|=67108863&i,o>=18?(o-=18,a+=1,this.words[a]|=i>>>26):o+=8;this._strip()},o.prototype._parseBase=function(e,t,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=t)n++;n--,i=i/t|0;for(var o=e.length-r,a=o%n,s=Math.min(o,o-a)+r,u=0,f=r;f<s;f+=n)u=c(e,f,f+n,t),this.imuln(i),this.words[0]+u<67108864?this.words[0]+=u:this._iaddn(u);if(0!==a){var l=1;for(u=c(e,f,e.length,t),f=0;f<a;f++)l*=t;this.imuln(l),this.words[0]+u<67108864?this.words[0]+=u:this._iaddn(u)}this._strip()},o.prototype.copy=function(e){e.words=new Array(this.length);for(var t=0;t<this.length;t++)e.words[t]=this.words[t];e.length=this.length,e.negative=this.negative,e.red=this.red},o.prototype._move=function(e){f(e,this)},o.prototype.clone=function(){var e=new o(null);return this.copy(e),e},o.prototype._expand=function(e){for(;this.length<e;)this.words[this.length++]=0;return this},o.prototype._strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},"undefined"!=typeof Symbol&&"function"==typeof Symbol.for)try{o.prototype[Symbol.for("nodejs.util.inspect.custom")]=l}catch(e){o.prototype.inspect=l}else o.prototype.inspect=l;function l(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"}var d=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],h=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],p=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function y(e,t,r){r.negative=t.negative^e.negative;var n=e.length+t.length|0;r.length=n,n=n-1|0;var i=0|e.words[0],o=0|t.words[0],a=i*o,s=67108863&a,u=a/67108864|0;r.words[0]=s;for(var c=1;c<n;c++){for(var f=u>>>26,l=67108863&u,d=Math.min(c,t.length-1),h=Math.max(0,c-e.length+1);h<=d;h++){var p=c-h|0;f+=(a=(i=0|e.words[p])*(o=0|t.words[h])+l)/67108864|0,l=67108863&a}r.words[c]=0|l,u=0|f}return 0!==u?r.words[c]=0|u:r.length--,r._strip()}o.prototype.toString=function(e,t){var r;if(t=0|t||1,16===(e=e||10)||"hex"===e){r="";for(var i=0,o=0,a=0;a<this.length;a++){var s=this.words[a],u=(16777215&(s<<i|o)).toString(16);o=s>>>24-i&16777215,(i+=2)>=26&&(i-=26,a--),r=0!==o||a!==this.length-1?d[6-u.length]+u+r:u+r}for(0!==o&&(r=o.toString(16)+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(e===(0|e)&&e>=2&&e<=36){var c=h[e],f=p[e];r="";var l=this.clone();for(l.negative=0;!l.isZero();){var y=l.modrn(f).toString(e);r=(l=l.idivn(f)).isZero()?y+r:d[c-y.length]+y+r}for(this.isZero()&&(r="0"+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}n(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},o.prototype.toJSON=function(){return this.toString(16,2)},a&&(o.prototype.toBuffer=function(e,t){return this.toArrayLike(a,e,t)}),o.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},o.prototype.toArrayLike=function(e,t,r){this._strip();var i=this.byteLength(),o=r||Math.max(1,i);n(i<=o,"byte array longer than desired length"),n(o>0,"Requested array length <= 0");var a=function(e,t){return e.allocUnsafe?e.allocUnsafe(t):new e(t)}(e,o);return this["_toArrayLike"+("le"===t?"LE":"BE")](a,i),a},o.prototype._toArrayLikeLE=function(e,t){for(var r=0,n=0,i=0,o=0;i<this.length;i++){var a=this.words[i]<<o|n;e[r++]=255&a,r<e.length&&(e[r++]=a>>8&255),r<e.length&&(e[r++]=a>>16&255),6===o?(r<e.length&&(e[r++]=a>>24&255),n=0,o=0):(n=a>>>24,o+=2)}if(r<e.length)for(e[r++]=n;r<e.length;)e[r++]=0},o.prototype._toArrayLikeBE=function(e,t){for(var r=e.length-1,n=0,i=0,o=0;i<this.length;i++){var a=this.words[i]<<o|n;e[r--]=255&a,r>=0&&(e[r--]=a>>8&255),r>=0&&(e[r--]=a>>16&255),6===o?(r>=0&&(e[r--]=a>>24&255),n=0,o=0):(n=a>>>24,o+=2)}if(r>=0)for(e[r--]=n;r>=0;)e[r--]=0},Math.clz32?o.prototype._countBits=function(e){return 32-Math.clz32(e)}:o.prototype._countBits=function(e){var t=e,r=0;return t>=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},o.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,r=0;return 0==(8191&t)&&(r+=13,t>>>=13),0==(127&t)&&(r+=7,t>>>=7),0==(15&t)&&(r+=4,t>>>=4),0==(3&t)&&(r+=2,t>>>=2),0==(1&t)&&r++,r},o.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;t<this.length;t++){var r=this._zeroBits(this.words[t]);if(e+=r,26!==r)break}return e},o.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},o.prototype.toTwos=function(e){return 0!==this.negative?this.abs().inotn(e).iaddn(1):this.clone()},o.prototype.fromTwos=function(e){return this.testn(e-1)?this.notn(e).iaddn(1).ineg():this.clone()},o.prototype.isNeg=function(){return 0!==this.negative},o.prototype.neg=function(){return this.clone().ineg()},o.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},o.prototype.iuor=function(e){for(;this.length<e.length;)this.words[this.length++]=0;for(var t=0;t<e.length;t++)this.words[t]=this.words[t]|e.words[t];return this._strip()},o.prototype.ior=function(e){return n(0==(this.negative|e.negative)),this.iuor(e)},o.prototype.or=function(e){return this.length>e.length?this.clone().ior(e):e.clone().ior(this)},o.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},o.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var r=0;r<t.length;r++)this.words[r]=this.words[r]&e.words[r];return this.length=t.length,this._strip()},o.prototype.iand=function(e){return n(0==(this.negative|e.negative)),this.iuand(e)},o.prototype.and=function(e){return this.length>e.length?this.clone().iand(e):e.clone().iand(this)},o.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},o.prototype.iuxor=function(e){var t,r;this.length>e.length?(t=this,r=e):(t=e,r=this);for(var n=0;n<r.length;n++)this.words[n]=t.words[n]^r.words[n];if(this!==t)for(;n<t.length;n++)this.words[n]=t.words[n];return this.length=t.length,this._strip()},o.prototype.ixor=function(e){return n(0==(this.negative|e.negative)),this.iuxor(e)},o.prototype.xor=function(e){return this.length>e.length?this.clone().ixor(e):e.clone().ixor(this)},o.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},o.prototype.inotn=function(e){n("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),r=e%26;this._expand(t),r>0&&t--;for(var i=0;i<t;i++)this.words[i]=67108863&~this.words[i];return r>0&&(this.words[i]=~this.words[i]&67108863>>26-r),this._strip()},o.prototype.notn=function(e){return this.clone().inotn(e)},o.prototype.setn=function(e,t){n("number"==typeof e&&e>=0);var r=e/26|0,i=e%26;return this._expand(r+1),this.words[r]=t?this.words[r]|1<<i:this.words[r]&~(1<<i),this._strip()},o.prototype.iadd=function(e){var t,r,n;if(0!==this.negative&&0===e.negative)return this.negative=0,t=this.isub(e),this.negative^=1,this._normSign();if(0===this.negative&&0!==e.negative)return e.negative=0,t=this.isub(e),e.negative=1,t._normSign();this.length>e.length?(r=this,n=e):(r=e,n=this);for(var i=0,o=0;o<n.length;o++)t=(0|r.words[o])+(0|n.words[o])+i,this.words[o]=67108863&t,i=t>>>26;for(;0!==i&&o<r.length;o++)t=(0|r.words[o])+i,this.words[o]=67108863&t,i=t>>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;o<r.length;o++)this.words[o]=r.words[o];return this},o.prototype.add=function(e){var t;return 0!==e.negative&&0===this.negative?(e.negative=0,t=this.sub(e),e.negative^=1,t):0===e.negative&&0!==this.negative?(this.negative=0,t=e.sub(this),this.negative=1,t):this.length>e.length?this.clone().iadd(e):e.clone().iadd(this)},o.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var r,n,i=this.cmp(e);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=e):(r=e,n=this);for(var o=0,a=0;a<n.length;a++)o=(t=(0|r.words[a])-(0|n.words[a])+o)>>26,this.words[a]=67108863&t;for(;0!==o&&a<r.length;a++)o=(t=(0|r.words[a])+o)>>26,this.words[a]=67108863&t;if(0===o&&a<r.length&&r!==this)for(;a<r.length;a++)this.words[a]=r.words[a];return this.length=Math.max(this.length,a),r!==this&&(this.negative=1),this._strip()},o.prototype.sub=function(e){return this.clone().isub(e)};var g=function(e,t,r){var n,i,o,a=e.words,s=t.words,u=r.words,c=0,f=0|a[0],l=8191&f,d=f>>>13,h=0|a[1],p=8191&h,y=h>>>13,g=0|a[2],b=8191&g,m=g>>>13,v=0|a[3],w=8191&v,_=v>>>13,E=0|a[4],S=8191&E,A=E>>>13,O=0|a[5],M=8191&O,T=O>>>13,I=0|a[6],N=8191&I,x=I>>>13,L=0|a[7],k=8191&L,R=L>>>13,P=0|a[8],B=8191&P,D=P>>>13,C=0|a[9],j=8191&C,F=C>>>13,U=0|s[0],V=8191&U,H=U>>>13,z=0|s[1],q=8191&z,K=z>>>13,W=0|s[2],G=8191&W,Y=W>>>13,$=0|s[3],X=8191&$,J=$>>>13,Z=0|s[4],Q=8191&Z,ee=Z>>>13,te=0|s[5],re=8191&te,ne=te>>>13,ie=0|s[6],oe=8191&ie,ae=ie>>>13,se=0|s[7],ue=8191&se,ce=se>>>13,fe=0|s[8],le=8191&fe,de=fe>>>13,he=0|s[9],pe=8191&he,ye=he>>>13;r.negative=e.negative^t.negative,r.length=19;var ge=(c+(n=Math.imul(l,V))|0)+((8191&(i=(i=Math.imul(l,H))+Math.imul(d,V)|0))<<13)|0;c=((o=Math.imul(d,H))+(i>>>13)|0)+(ge>>>26)|0,ge&=67108863,n=Math.imul(p,V),i=(i=Math.imul(p,H))+Math.imul(y,V)|0,o=Math.imul(y,H);var be=(c+(n=n+Math.imul(l,q)|0)|0)+((8191&(i=(i=i+Math.imul(l,K)|0)+Math.imul(d,q)|0))<<13)|0;c=((o=o+Math.imul(d,K)|0)+(i>>>13)|0)+(be>>>26)|0,be&=67108863,n=Math.imul(b,V),i=(i=Math.imul(b,H))+Math.imul(m,V)|0,o=Math.imul(m,H),n=n+Math.imul(p,q)|0,i=(i=i+Math.imul(p,K)|0)+Math.imul(y,q)|0,o=o+Math.imul(y,K)|0;var me=(c+(n=n+Math.imul(l,G)|0)|0)+((8191&(i=(i=i+Math.imul(l,Y)|0)+Math.imul(d,G)|0))<<13)|0;c=((o=o+Math.imul(d,Y)|0)+(i>>>13)|0)+(me>>>26)|0,me&=67108863,n=Math.imul(w,V),i=(i=Math.imul(w,H))+Math.imul(_,V)|0,o=Math.imul(_,H),n=n+Math.imul(b,q)|0,i=(i=i+Math.imul(b,K)|0)+Math.imul(m,q)|0,o=o+Math.imul(m,K)|0,n=n+Math.imul(p,G)|0,i=(i=i+Math.imul(p,Y)|0)+Math.imul(y,G)|0,o=o+Math.imul(y,Y)|0;var ve=(c+(n=n+Math.imul(l,X)|0)|0)+((8191&(i=(i=i+Math.imul(l,J)|0)+Math.imul(d,X)|0))<<13)|0;c=((o=o+Math.imul(d,J)|0)+(i>>>13)|0)+(ve>>>26)|0,ve&=67108863,n=Math.imul(S,V),i=(i=Math.imul(S,H))+Math.imul(A,V)|0,o=Math.imul(A,H),n=n+Math.imul(w,q)|0,i=(i=i+Math.imul(w,K)|0)+Math.imul(_,q)|0,o=o+Math.imul(_,K)|0,n=n+Math.imul(b,G)|0,i=(i=i+Math.imul(b,Y)|0)+Math.imul(m,G)|0,o=o+Math.imul(m,Y)|0,n=n+Math.imul(p,X)|0,i=(i=i+Math.imul(p,J)|0)+Math.imul(y,X)|0,o=o+Math.imul(y,J)|0;var we=(c+(n=n+Math.imul(l,Q)|0)|0)+((8191&(i=(i=i+Math.imul(l,ee)|0)+Math.imul(d,Q)|0))<<13)|0;c=((o=o+Math.imul(d,ee)|0)+(i>>>13)|0)+(we>>>26)|0,we&=67108863,n=Math.imul(M,V),i=(i=Math.imul(M,H))+Math.imul(T,V)|0,o=Math.imul(T,H),n=n+Math.imul(S,q)|0,i=(i=i+Math.imul(S,K)|0)+Math.imul(A,q)|0,o=o+Math.imul(A,K)|0,n=n+Math.imul(w,G)|0,i=(i=i+Math.imul(w,Y)|0)+Math.imul(_,G)|0,o=o+Math.imul(_,Y)|0,n=n+Math.imul(b,X)|0,i=(i=i+Math.imul(b,J)|0)+Math.imul(m,X)|0,o=o+Math.imul(m,J)|0,n=n+Math.imul(p,Q)|0,i=(i=i+Math.imul(p,ee)|0)+Math.imul(y,Q)|0,o=o+Math.imul(y,ee)|0;var _e=(c+(n=n+Math.imul(l,re)|0)|0)+((8191&(i=(i=i+Math.imul(l,ne)|0)+Math.imul(d,re)|0))<<13)|0;c=((o=o+Math.imul(d,ne)|0)+(i>>>13)|0)+(_e>>>26)|0,_e&=67108863,n=Math.imul(N,V),i=(i=Math.imul(N,H))+Math.imul(x,V)|0,o=Math.imul(x,H),n=n+Math.imul(M,q)|0,i=(i=i+Math.imul(M,K)|0)+Math.imul(T,q)|0,o=o+Math.imul(T,K)|0,n=n+Math.imul(S,G)|0,i=(i=i+Math.imul(S,Y)|0)+Math.imul(A,G)|0,o=o+Math.imul(A,Y)|0,n=n+Math.imul(w,X)|0,i=(i=i+Math.imul(w,J)|0)+Math.imul(_,X)|0,o=o+Math.imul(_,J)|0,n=n+Math.imul(b,Q)|0,i=(i=i+Math.imul(b,ee)|0)+Math.imul(m,Q)|0,o=o+Math.imul(m,ee)|0,n=n+Math.imul(p,re)|0,i=(i=i+Math.imul(p,ne)|0)+Math.imul(y,re)|0,o=o+Math.imul(y,ne)|0;var Ee=(c+(n=n+Math.imul(l,oe)|0)|0)+((8191&(i=(i=i+Math.imul(l,ae)|0)+Math.imul(d,oe)|0))<<13)|0;c=((o=o+Math.imul(d,ae)|0)+(i>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,n=Math.imul(k,V),i=(i=Math.imul(k,H))+Math.imul(R,V)|0,o=Math.imul(R,H),n=n+Math.imul(N,q)|0,i=(i=i+Math.imul(N,K)|0)+Math.imul(x,q)|0,o=o+Math.imul(x,K)|0,n=n+Math.imul(M,G)|0,i=(i=i+Math.imul(M,Y)|0)+Math.imul(T,G)|0,o=o+Math.imul(T,Y)|0,n=n+Math.imul(S,X)|0,i=(i=i+Math.imul(S,J)|0)+Math.imul(A,X)|0,o=o+Math.imul(A,J)|0,n=n+Math.imul(w,Q)|0,i=(i=i+Math.imul(w,ee)|0)+Math.imul(_,Q)|0,o=o+Math.imul(_,ee)|0,n=n+Math.imul(b,re)|0,i=(i=i+Math.imul(b,ne)|0)+Math.imul(m,re)|0,o=o+Math.imul(m,ne)|0,n=n+Math.imul(p,oe)|0,i=(i=i+Math.imul(p,ae)|0)+Math.imul(y,oe)|0,o=o+Math.imul(y,ae)|0;var Se=(c+(n=n+Math.imul(l,ue)|0)|0)+((8191&(i=(i=i+Math.imul(l,ce)|0)+Math.imul(d,ue)|0))<<13)|0;c=((o=o+Math.imul(d,ce)|0)+(i>>>13)|0)+(Se>>>26)|0,Se&=67108863,n=Math.imul(B,V),i=(i=Math.imul(B,H))+Math.imul(D,V)|0,o=Math.imul(D,H),n=n+Math.imul(k,q)|0,i=(i=i+Math.imul(k,K)|0)+Math.imul(R,q)|0,o=o+Math.imul(R,K)|0,n=n+Math.imul(N,G)|0,i=(i=i+Math.imul(N,Y)|0)+Math.imul(x,G)|0,o=o+Math.imul(x,Y)|0,n=n+Math.imul(M,X)|0,i=(i=i+Math.imul(M,J)|0)+Math.imul(T,X)|0,o=o+Math.imul(T,J)|0,n=n+Math.imul(S,Q)|0,i=(i=i+Math.imul(S,ee)|0)+Math.imul(A,Q)|0,o=o+Math.imul(A,ee)|0,n=n+Math.imul(w,re)|0,i=(i=i+Math.imul(w,ne)|0)+Math.imul(_,re)|0,o=o+Math.imul(_,ne)|0,n=n+Math.imul(b,oe)|0,i=(i=i+Math.imul(b,ae)|0)+Math.imul(m,oe)|0,o=o+Math.imul(m,ae)|0,n=n+Math.imul(p,ue)|0,i=(i=i+Math.imul(p,ce)|0)+Math.imul(y,ue)|0,o=o+Math.imul(y,ce)|0;var Ae=(c+(n=n+Math.imul(l,le)|0)|0)+((8191&(i=(i=i+Math.imul(l,de)|0)+Math.imul(d,le)|0))<<13)|0;c=((o=o+Math.imul(d,de)|0)+(i>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,n=Math.imul(j,V),i=(i=Math.imul(j,H))+Math.imul(F,V)|0,o=Math.imul(F,H),n=n+Math.imul(B,q)|0,i=(i=i+Math.imul(B,K)|0)+Math.imul(D,q)|0,o=o+Math.imul(D,K)|0,n=n+Math.imul(k,G)|0,i=(i=i+Math.imul(k,Y)|0)+Math.imul(R,G)|0,o=o+Math.imul(R,Y)|0,n=n+Math.imul(N,X)|0,i=(i=i+Math.imul(N,J)|0)+Math.imul(x,X)|0,o=o+Math.imul(x,J)|0,n=n+Math.imul(M,Q)|0,i=(i=i+Math.imul(M,ee)|0)+Math.imul(T,Q)|0,o=o+Math.imul(T,ee)|0,n=n+Math.imul(S,re)|0,i=(i=i+Math.imul(S,ne)|0)+Math.imul(A,re)|0,o=o+Math.imul(A,ne)|0,n=n+Math.imul(w,oe)|0,i=(i=i+Math.imul(w,ae)|0)+Math.imul(_,oe)|0,o=o+Math.imul(_,ae)|0,n=n+Math.imul(b,ue)|0,i=(i=i+Math.imul(b,ce)|0)+Math.imul(m,ue)|0,o=o+Math.imul(m,ce)|0,n=n+Math.imul(p,le)|0,i=(i=i+Math.imul(p,de)|0)+Math.imul(y,le)|0,o=o+Math.imul(y,de)|0;var Oe=(c+(n=n+Math.imul(l,pe)|0)|0)+((8191&(i=(i=i+Math.imul(l,ye)|0)+Math.imul(d,pe)|0))<<13)|0;c=((o=o+Math.imul(d,ye)|0)+(i>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,n=Math.imul(j,q),i=(i=Math.imul(j,K))+Math.imul(F,q)|0,o=Math.imul(F,K),n=n+Math.imul(B,G)|0,i=(i=i+Math.imul(B,Y)|0)+Math.imul(D,G)|0,o=o+Math.imul(D,Y)|0,n=n+Math.imul(k,X)|0,i=(i=i+Math.imul(k,J)|0)+Math.imul(R,X)|0,o=o+Math.imul(R,J)|0,n=n+Math.imul(N,Q)|0,i=(i=i+Math.imul(N,ee)|0)+Math.imul(x,Q)|0,o=o+Math.imul(x,ee)|0,n=n+Math.imul(M,re)|0,i=(i=i+Math.imul(M,ne)|0)+Math.imul(T,re)|0,o=o+Math.imul(T,ne)|0,n=n+Math.imul(S,oe)|0,i=(i=i+Math.imul(S,ae)|0)+Math.imul(A,oe)|0,o=o+Math.imul(A,ae)|0,n=n+Math.imul(w,ue)|0,i=(i=i+Math.imul(w,ce)|0)+Math.imul(_,ue)|0,o=o+Math.imul(_,ce)|0,n=n+Math.imul(b,le)|0,i=(i=i+Math.imul(b,de)|0)+Math.imul(m,le)|0,o=o+Math.imul(m,de)|0;var Me=(c+(n=n+Math.imul(p,pe)|0)|0)+((8191&(i=(i=i+Math.imul(p,ye)|0)+Math.imul(y,pe)|0))<<13)|0;c=((o=o+Math.imul(y,ye)|0)+(i>>>13)|0)+(Me>>>26)|0,Me&=67108863,n=Math.imul(j,G),i=(i=Math.imul(j,Y))+Math.imul(F,G)|0,o=Math.imul(F,Y),n=n+Math.imul(B,X)|0,i=(i=i+Math.imul(B,J)|0)+Math.imul(D,X)|0,o=o+Math.imul(D,J)|0,n=n+Math.imul(k,Q)|0,i=(i=i+Math.imul(k,ee)|0)+Math.imul(R,Q)|0,o=o+Math.imul(R,ee)|0,n=n+Math.imul(N,re)|0,i=(i=i+Math.imul(N,ne)|0)+Math.imul(x,re)|0,o=o+Math.imul(x,ne)|0,n=n+Math.imul(M,oe)|0,i=(i=i+Math.imul(M,ae)|0)+Math.imul(T,oe)|0,o=o+Math.imul(T,ae)|0,n=n+Math.imul(S,ue)|0,i=(i=i+Math.imul(S,ce)|0)+Math.imul(A,ue)|0,o=o+Math.imul(A,ce)|0,n=n+Math.imul(w,le)|0,i=(i=i+Math.imul(w,de)|0)+Math.imul(_,le)|0,o=o+Math.imul(_,de)|0;var Te=(c+(n=n+Math.imul(b,pe)|0)|0)+((8191&(i=(i=i+Math.imul(b,ye)|0)+Math.imul(m,pe)|0))<<13)|0;c=((o=o+Math.imul(m,ye)|0)+(i>>>13)|0)+(Te>>>26)|0,Te&=67108863,n=Math.imul(j,X),i=(i=Math.imul(j,J))+Math.imul(F,X)|0,o=Math.imul(F,J),n=n+Math.imul(B,Q)|0,i=(i=i+Math.imul(B,ee)|0)+Math.imul(D,Q)|0,o=o+Math.imul(D,ee)|0,n=n+Math.imul(k,re)|0,i=(i=i+Math.imul(k,ne)|0)+Math.imul(R,re)|0,o=o+Math.imul(R,ne)|0,n=n+Math.imul(N,oe)|0,i=(i=i+Math.imul(N,ae)|0)+Math.imul(x,oe)|0,o=o+Math.imul(x,ae)|0,n=n+Math.imul(M,ue)|0,i=(i=i+Math.imul(M,ce)|0)+Math.imul(T,ue)|0,o=o+Math.imul(T,ce)|0,n=n+Math.imul(S,le)|0,i=(i=i+Math.imul(S,de)|0)+Math.imul(A,le)|0,o=o+Math.imul(A,de)|0;var Ie=(c+(n=n+Math.imul(w,pe)|0)|0)+((8191&(i=(i=i+Math.imul(w,ye)|0)+Math.imul(_,pe)|0))<<13)|0;c=((o=o+Math.imul(_,ye)|0)+(i>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,n=Math.imul(j,Q),i=(i=Math.imul(j,ee))+Math.imul(F,Q)|0,o=Math.imul(F,ee),n=n+Math.imul(B,re)|0,i=(i=i+Math.imul(B,ne)|0)+Math.imul(D,re)|0,o=o+Math.imul(D,ne)|0,n=n+Math.imul(k,oe)|0,i=(i=i+Math.imul(k,ae)|0)+Math.imul(R,oe)|0,o=o+Math.imul(R,ae)|0,n=n+Math.imul(N,ue)|0,i=(i=i+Math.imul(N,ce)|0)+Math.imul(x,ue)|0,o=o+Math.imul(x,ce)|0,n=n+Math.imul(M,le)|0,i=(i=i+Math.imul(M,de)|0)+Math.imul(T,le)|0,o=o+Math.imul(T,de)|0;var Ne=(c+(n=n+Math.imul(S,pe)|0)|0)+((8191&(i=(i=i+Math.imul(S,ye)|0)+Math.imul(A,pe)|0))<<13)|0;c=((o=o+Math.imul(A,ye)|0)+(i>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,n=Math.imul(j,re),i=(i=Math.imul(j,ne))+Math.imul(F,re)|0,o=Math.imul(F,ne),n=n+Math.imul(B,oe)|0,i=(i=i+Math.imul(B,ae)|0)+Math.imul(D,oe)|0,o=o+Math.imul(D,ae)|0,n=n+Math.imul(k,ue)|0,i=(i=i+Math.imul(k,ce)|0)+Math.imul(R,ue)|0,o=o+Math.imul(R,ce)|0,n=n+Math.imul(N,le)|0,i=(i=i+Math.imul(N,de)|0)+Math.imul(x,le)|0,o=o+Math.imul(x,de)|0;var xe=(c+(n=n+Math.imul(M,pe)|0)|0)+((8191&(i=(i=i+Math.imul(M,ye)|0)+Math.imul(T,pe)|0))<<13)|0;c=((o=o+Math.imul(T,ye)|0)+(i>>>13)|0)+(xe>>>26)|0,xe&=67108863,n=Math.imul(j,oe),i=(i=Math.imul(j,ae))+Math.imul(F,oe)|0,o=Math.imul(F,ae),n=n+Math.imul(B,ue)|0,i=(i=i+Math.imul(B,ce)|0)+Math.imul(D,ue)|0,o=o+Math.imul(D,ce)|0,n=n+Math.imul(k,le)|0,i=(i=i+Math.imul(k,de)|0)+Math.imul(R,le)|0,o=o+Math.imul(R,de)|0;var Le=(c+(n=n+Math.imul(N,pe)|0)|0)+((8191&(i=(i=i+Math.imul(N,ye)|0)+Math.imul(x,pe)|0))<<13)|0;c=((o=o+Math.imul(x,ye)|0)+(i>>>13)|0)+(Le>>>26)|0,Le&=67108863,n=Math.imul(j,ue),i=(i=Math.imul(j,ce))+Math.imul(F,ue)|0,o=Math.imul(F,ce),n=n+Math.imul(B,le)|0,i=(i=i+Math.imul(B,de)|0)+Math.imul(D,le)|0,o=o+Math.imul(D,de)|0;var ke=(c+(n=n+Math.imul(k,pe)|0)|0)+((8191&(i=(i=i+Math.imul(k,ye)|0)+Math.imul(R,pe)|0))<<13)|0;c=((o=o+Math.imul(R,ye)|0)+(i>>>13)|0)+(ke>>>26)|0,ke&=67108863,n=Math.imul(j,le),i=(i=Math.imul(j,de))+Math.imul(F,le)|0,o=Math.imul(F,de);var Re=(c+(n=n+Math.imul(B,pe)|0)|0)+((8191&(i=(i=i+Math.imul(B,ye)|0)+Math.imul(D,pe)|0))<<13)|0;c=((o=o+Math.imul(D,ye)|0)+(i>>>13)|0)+(Re>>>26)|0,Re&=67108863;var Pe=(c+(n=Math.imul(j,pe))|0)+((8191&(i=(i=Math.imul(j,ye))+Math.imul(F,pe)|0))<<13)|0;return c=((o=Math.imul(F,ye))+(i>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,u[0]=ge,u[1]=be,u[2]=me,u[3]=ve,u[4]=we,u[5]=_e,u[6]=Ee,u[7]=Se,u[8]=Ae,u[9]=Oe,u[10]=Me,u[11]=Te,u[12]=Ie,u[13]=Ne,u[14]=xe,u[15]=Le,u[16]=ke,u[17]=Re,u[18]=Pe,0!==c&&(u[19]=c,r.length++),r};function b(e,t,r){r.negative=t.negative^e.negative,r.length=e.length+t.length;for(var n=0,i=0,o=0;o<r.length-1;o++){var a=i;i=0;for(var s=67108863&n,u=Math.min(o,t.length-1),c=Math.max(0,o-e.length+1);c<=u;c++){var f=o-c,l=(0|e.words[f])*(0|t.words[c]),d=67108863&l;s=67108863&(d=d+s|0),i+=(a=(a=a+(l/67108864|0)|0)+(d>>>26)|0)>>>26,a&=67108863}r.words[o]=s,n=a,a=i}return 0!==n?r.words[o]=n:r.length--,r._strip()}function m(e,t,r){return b(e,t,r)}function v(e,t){this.x=e,this.y=t}Math.imul||(g=y),o.prototype.mulTo=function(e,t){var r=this.length+e.length;return 10===this.length&&10===e.length?g(this,e,t):r<63?y(this,e,t):r<1024?b(this,e,t):m(this,e,t)},v.prototype.makeRBT=function(e){for(var t=new Array(e),r=o.prototype._countBits(e)-1,n=0;n<e;n++)t[n]=this.revBin(n,r,e);return t},v.prototype.revBin=function(e,t,r){if(0===e||e===r-1)return e;for(var n=0,i=0;i<t;i++)n|=(1&e)<<t-i-1,e>>=1;return n},v.prototype.permute=function(e,t,r,n,i,o){for(var a=0;a<o;a++)n[a]=t[e[a]],i[a]=r[e[a]]},v.prototype.transform=function(e,t,r,n,i,o){this.permute(o,e,t,r,n,i);for(var a=1;a<i;a<<=1)for(var s=a<<1,u=Math.cos(2*Math.PI/s),c=Math.sin(2*Math.PI/s),f=0;f<i;f+=s)for(var l=u,d=c,h=0;h<a;h++){var p=r[f+h],y=n[f+h],g=r[f+h+a],b=n[f+h+a],m=l*g-d*b;b=l*b+d*g,g=m,r[f+h]=p+g,n[f+h]=y+b,r[f+h+a]=p-g,n[f+h+a]=y-b,h!==s&&(m=u*l-c*d,d=u*d+c*l,l=m)}},v.prototype.guessLen13b=function(e,t){var r=1|Math.max(t,e),n=1&r,i=0;for(r=r/2|0;r;r>>>=1)i++;return 1<<i+1+n},v.prototype.conjugate=function(e,t,r){if(!(r<=1))for(var n=0;n<r/2;n++){var i=e[n];e[n]=e[r-n-1],e[r-n-1]=i,i=t[n],t[n]=-t[r-n-1],t[r-n-1]=-i}},v.prototype.normalize13b=function(e,t){for(var r=0,n=0;n<t/2;n++){var i=8192*Math.round(e[2*n+1]/t)+Math.round(e[2*n]/t)+r;e[n]=67108863&i,r=i<67108864?0:i/67108864|0}return e},v.prototype.convert13b=function(e,t,r,i){for(var o=0,a=0;a<t;a++)o+=0|e[a],r[2*a]=8191&o,o>>>=13,r[2*a+1]=8191&o,o>>>=13;for(a=2*t;a<i;++a)r[a]=0;n(0===o),n(0==(-8192&o))},v.prototype.stub=function(e){for(var t=new Array(e),r=0;r<e;r++)t[r]=0;return t},v.prototype.mulp=function(e,t,r){var n=2*this.guessLen13b(e.length,t.length),i=this.makeRBT(n),o=this.stub(n),a=new Array(n),s=new Array(n),u=new Array(n),c=new Array(n),f=new Array(n),l=new Array(n),d=r.words;d.length=n,this.convert13b(e.words,e.length,a,n),this.convert13b(t.words,t.length,c,n),this.transform(a,o,s,u,n,i),this.transform(c,o,f,l,n,i);for(var h=0;h<n;h++){var p=s[h]*f[h]-u[h]*l[h];u[h]=s[h]*l[h]+u[h]*f[h],s[h]=p}return this.conjugate(s,u,n),this.transform(s,u,d,o,n,i),this.conjugate(d,o,n),this.normalize13b(d,n),r.negative=e.negative^t.negative,r.length=e.length+t.length,r._strip()},o.prototype.mul=function(e){var t=new o(null);return t.words=new Array(this.length+e.length),this.mulTo(e,t)},o.prototype.mulf=function(e){var t=new o(null);return t.words=new Array(this.length+e.length),m(this,e,t)},o.prototype.imul=function(e){return this.clone().mulTo(e,this)},o.prototype.imuln=function(e){var t=e<0;t&&(e=-e),n("number"==typeof e),n(e<67108864);for(var r=0,i=0;i<this.length;i++){var o=(0|this.words[i])*e,a=(67108863&o)+(67108863&r);r>>=26,r+=o/67108864|0,r+=a>>>26,this.words[i]=67108863&a}return 0!==r&&(this.words[i]=r,this.length++),t?this.ineg():this},o.prototype.muln=function(e){return this.clone().imuln(e)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),r=0;r<t.length;r++){var n=r/26|0,i=r%26;t[r]=e.words[n]>>>i&1}return t}(e);if(0===t.length)return new o(1);for(var r=this,n=0;n<t.length&&0===t[n];n++,r=r.sqr());if(++n<t.length)for(var i=r.sqr();n<t.length;n++,i=i.sqr())0!==t[n]&&(r=r.mul(i));return r},o.prototype.iushln=function(e){n("number"==typeof e&&e>=0);var t,r=e%26,i=(e-r)/26,o=67108863>>>26-r<<26-r;if(0!==r){var a=0;for(t=0;t<this.length;t++){var s=this.words[t]&o,u=(0|this.words[t])-s<<r;this.words[t]=u|a,a=s>>>26-r}a&&(this.words[t]=a,this.length++)}if(0!==i){for(t=this.length-1;t>=0;t--)this.words[t+i]=this.words[t];for(t=0;t<i;t++)this.words[t]=0;this.length+=i}return this._strip()},o.prototype.ishln=function(e){return n(0===this.negative),this.iushln(e)},o.prototype.iushrn=function(e,t,r){var i;n("number"==typeof e&&e>=0),i=t?(t-t%26)/26:0;var o=e%26,a=Math.min((e-o)/26,this.length),s=67108863^67108863>>>o<<o,u=r;if(i-=a,i=Math.max(0,i),u){for(var c=0;c<a;c++)u.words[c]=this.words[c];u.length=a}if(0===a);else if(this.length>a)for(this.length-=a,c=0;c<this.length;c++)this.words[c]=this.words[c+a];else this.words[0]=0,this.length=1;var f=0;for(c=this.length-1;c>=0&&(0!==f||c>=i);c--){var l=0|this.words[c];this.words[c]=f<<26-o|l>>>o,f=l&s}return u&&0!==f&&(u.words[u.length++]=f),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},o.prototype.ishrn=function(e,t,r){return n(0===this.negative),this.iushrn(e,t,r)},o.prototype.shln=function(e){return this.clone().ishln(e)},o.prototype.ushln=function(e){return this.clone().iushln(e)},o.prototype.shrn=function(e){return this.clone().ishrn(e)},o.prototype.ushrn=function(e){return this.clone().iushrn(e)},o.prototype.testn=function(e){n("number"==typeof e&&e>=0);var t=e%26,r=(e-t)/26,i=1<<t;return!(this.length<=r||!(this.words[r]&i))},o.prototype.imaskn=function(e){n("number"==typeof e&&e>=0);var t=e%26,r=(e-t)/26;if(n(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==t&&r++,this.length=Math.min(r,this.length),0!==t){var i=67108863^67108863>>>t<<t;this.words[this.length-1]&=i}return this._strip()},o.prototype.maskn=function(e){return this.clone().imaskn(e)},o.prototype.iaddn=function(e){return n("number"==typeof e),n(e<67108864),e<0?this.isubn(-e):0!==this.negative?1===this.length&&(0|this.words[0])<=e?(this.words[0]=e-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(e),this.negative=1,this):this._iaddn(e)},o.prototype._iaddn=function(e){this.words[0]+=e;for(var t=0;t<this.length&&this.words[t]>=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},o.prototype.isubn=function(e){if(n("number"==typeof e),n(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t<this.length&&this.words[t]<0;t++)this.words[t]+=67108864,this.words[t+1]-=1;return this._strip()},o.prototype.addn=function(e){return this.clone().iaddn(e)},o.prototype.subn=function(e){return this.clone().isubn(e)},o.prototype.iabs=function(){return this.negative=0,this},o.prototype.abs=function(){return this.clone().iabs()},o.prototype._ishlnsubmul=function(e,t,r){var i,o,a=e.length+r;this._expand(a);var s=0;for(i=0;i<e.length;i++){o=(0|this.words[i+r])+s;var u=(0|e.words[i])*t;s=((o-=67108863&u)>>26)-(u/67108864|0),this.words[i+r]=67108863&o}for(;i<this.length-r;i++)s=(o=(0|this.words[i+r])+s)>>26,this.words[i+r]=67108863&o;if(0===s)return this._strip();for(n(-1===s),s=0,i=0;i<this.length;i++)s=(o=-(0|this.words[i])+s)>>26,this.words[i]=67108863&o;return this.negative=1,this._strip()},o.prototype._wordDiv=function(e,t){var r=(this.length,e.length),n=this.clone(),i=e,a=0|i.words[i.length-1];0!=(r=26-this._countBits(a))&&(i=i.ushln(r),n.iushln(r),a=0|i.words[i.length-1]);var s,u=n.length-i.length;if("mod"!==t){(s=new o(null)).length=u+1,s.words=new Array(s.length);for(var c=0;c<s.length;c++)s.words[c]=0}var f=n.clone()._ishlnsubmul(i,1,u);0===f.negative&&(n=f,s&&(s.words[u]=1));for(var l=u-1;l>=0;l--){var d=67108864*(0|n.words[i.length+l])+(0|n.words[i.length+l-1]);for(d=Math.min(d/a|0,67108863),n._ishlnsubmul(i,d,l);0!==n.negative;)d--,n.negative=0,n._ishlnsubmul(i,1,l),n.isZero()||(n.negative^=1);s&&(s.words[l]=d)}return s&&s._strip(),n._strip(),"div"!==t&&0!==r&&n.iushrn(r),{div:s||null,mod:n}},o.prototype.divmod=function(e,t,r){return n(!e.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===e.negative?(s=this.neg().divmod(e,t),"mod"!==t&&(i=s.div.neg()),"div"!==t&&(a=s.mod.neg(),r&&0!==a.negative&&a.iadd(e)),{div:i,mod:a}):0===this.negative&&0!==e.negative?(s=this.divmod(e.neg(),t),"mod"!==t&&(i=s.div.neg()),{div:i,mod:s.mod}):0!=(this.negative&e.negative)?(s=this.neg().divmod(e.neg(),t),"div"!==t&&(a=s.mod.neg(),r&&0!==a.negative&&a.isub(e)),{div:s.div,mod:a}):e.length>this.length||this.cmp(e)<0?{div:new o(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new o(this.modrn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new o(this.modrn(e.words[0]))}:this._wordDiv(e,t);var i,a,s},o.prototype.div=function(e){return this.divmod(e,"div",!1).div},o.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},o.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},o.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var r=0!==t.div.negative?t.mod.isub(e):t.mod,n=e.ushrn(1),i=e.andln(1),o=r.cmp(n);return o<0||1===i&&0===o?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},o.prototype.modrn=function(e){var t=e<0;t&&(e=-e),n(e<=67108863);for(var r=(1<<26)%e,i=0,o=this.length-1;o>=0;o--)i=(r*i+(0|this.words[o]))%e;return t?-i:i},o.prototype.modn=function(e){return this.modrn(e)},o.prototype.idivn=function(e){var t=e<0;t&&(e=-e),n(e<=67108863);for(var r=0,i=this.length-1;i>=0;i--){var o=(0|this.words[i])+67108864*r;this.words[i]=o/e|0,r=o%e}return this._strip(),t?this.ineg():this},o.prototype.divn=function(e){return this.clone().idivn(e)},o.prototype.egcd=function(e){n(0===e.negative),n(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i=new o(1),a=new o(0),s=new o(0),u=new o(1),c=0;t.isEven()&&r.isEven();)t.iushrn(1),r.iushrn(1),++c;for(var f=r.clone(),l=t.clone();!t.isZero();){for(var d=0,h=1;0==(t.words[0]&h)&&d<26;++d,h<<=1);if(d>0)for(t.iushrn(d);d-- >0;)(i.isOdd()||a.isOdd())&&(i.iadd(f),a.isub(l)),i.iushrn(1),a.iushrn(1);for(var p=0,y=1;0==(r.words[0]&y)&&p<26;++p,y<<=1);if(p>0)for(r.iushrn(p);p-- >0;)(s.isOdd()||u.isOdd())&&(s.iadd(f),u.isub(l)),s.iushrn(1),u.iushrn(1);t.cmp(r)>=0?(t.isub(r),i.isub(s),a.isub(u)):(r.isub(t),s.isub(i),u.isub(a))}return{a:s,b:u,gcd:r.iushln(c)}},o.prototype._invmp=function(e){n(0===e.negative),n(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i,a=new o(1),s=new o(0),u=r.clone();t.cmpn(1)>0&&r.cmpn(1)>0;){for(var c=0,f=1;0==(t.words[0]&f)&&c<26;++c,f<<=1);if(c>0)for(t.iushrn(c);c-- >0;)a.isOdd()&&a.iadd(u),a.iushrn(1);for(var l=0,d=1;0==(r.words[0]&d)&&l<26;++l,d<<=1);if(l>0)for(r.iushrn(l);l-- >0;)s.isOdd()&&s.iadd(u),s.iushrn(1);t.cmp(r)>=0?(t.isub(r),a.isub(s)):(r.isub(t),s.isub(a))}return(i=0===t.cmpn(1)?a:s).cmpn(0)<0&&i.iadd(e),i},o.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),r=e.clone();t.negative=0,r.negative=0;for(var n=0;t.isEven()&&r.isEven();n++)t.iushrn(1),r.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;r.isEven();)r.iushrn(1);var i=t.cmp(r);if(i<0){var o=t;t=r,r=o}else if(0===i||0===r.cmpn(1))break;t.isub(r)}return r.iushln(n)},o.prototype.invm=function(e){return this.egcd(e).a.umod(e)},o.prototype.isEven=function(){return 0==(1&this.words[0])},o.prototype.isOdd=function(){return 1==(1&this.words[0])},o.prototype.andln=function(e){return this.words[0]&e},o.prototype.bincn=function(e){n("number"==typeof e);var t=e%26,r=(e-t)/26,i=1<<t;if(this.length<=r)return this._expand(r+1),this.words[r]|=i,this;for(var o=i,a=r;0!==o&&a<this.length;a++){var s=0|this.words[a];o=(s+=o)>>>26,s&=67108863,this.words[a]=s}return 0!==o&&(this.words[a]=o,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(e){var t,r=e<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this._strip(),this.length>1)t=1;else{r&&(e=-e),n(e<=67108863,"Number is too big");var i=0|this.words[0];t=i===e?0:i<e?-1:1}return 0!==this.negative?0|-t:t},o.prototype.cmp=function(e){if(0!==this.negative&&0===e.negative)return-1;if(0===this.negative&&0!==e.negative)return 1;var t=this.ucmp(e);return 0!==this.negative?0|-t:t},o.prototype.ucmp=function(e){if(this.length>e.length)return 1;if(this.length<e.length)return-1;for(var t=0,r=this.length-1;r>=0;r--){var n=0|this.words[r],i=0|e.words[r];if(n!==i){n<i?t=-1:n>i&&(t=1);break}}return t},o.prototype.gtn=function(e){return 1===this.cmpn(e)},o.prototype.gt=function(e){return 1===this.cmp(e)},o.prototype.gten=function(e){return this.cmpn(e)>=0},o.prototype.gte=function(e){return this.cmp(e)>=0},o.prototype.ltn=function(e){return-1===this.cmpn(e)},o.prototype.lt=function(e){return-1===this.cmp(e)},o.prototype.lten=function(e){return this.cmpn(e)<=0},o.prototype.lte=function(e){return this.cmp(e)<=0},o.prototype.eqn=function(e){return 0===this.cmpn(e)},o.prototype.eq=function(e){return 0===this.cmp(e)},o.red=function(e){return new M(e)},o.prototype.toRed=function(e){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},o.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(e){return this.red=e,this},o.prototype.forceRed=function(e){return n(!this.red,"Already a number in reduction context"),this._forceRed(e)},o.prototype.redAdd=function(e){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},o.prototype.redIAdd=function(e){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},o.prototype.redSub=function(e){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},o.prototype.redISub=function(e){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},o.prototype.redShl=function(e){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},o.prototype.redMul=function(e){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},o.prototype.redIMul=function(e){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},o.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(e){return n(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var w={k256:null,p224:null,p192:null,p25519:null};function _(e,t){this.name=e,this.p=new o(t,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function E(){_.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function S(){_.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function A(){_.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function O(){_.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function M(e){if("string"==typeof e){var t=o._prime(e);this.m=t.p,this.prime=t}else n(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function T(e){M.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}_.prototype._tmp=function(){var e=new o(null);return e.words=new Array(Math.ceil(this.n/13)),e},_.prototype.ireduce=function(e){var t,r=e;do{this.split(r,this.tmp),t=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(t>this.n);var n=t<this.n?-1:r.ucmp(this.p);return 0===n?(r.words[0]=0,r.length=1):n>0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},_.prototype.split=function(e,t){e.iushrn(this.n,0,t)},_.prototype.imulK=function(e){return e.imul(this.k)},i(E,_),E.prototype.split=function(e,t){for(var r=4194303,n=Math.min(e.length,9),i=0;i<n;i++)t.words[i]=e.words[i];if(t.length=n,e.length<=9)return e.words[0]=0,void(e.length=1);var o=e.words[9];for(t.words[t.length++]=o&r,i=10;i<e.length;i++){var a=0|e.words[i];e.words[i-10]=(a&r)<<4|o>>>22,o=a}o>>>=22,e.words[i-10]=o,0===o&&e.length>10?e.length-=10:e.length-=9},E.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,r=0;r<e.length;r++){var n=0|e.words[r];t+=977*n,e.words[r]=67108863&t,t=64*n+(t/67108864|0)}return 0===e.words[e.length-1]&&(e.length--,0===e.words[e.length-1]&&e.length--),e},i(S,_),i(A,_),i(O,_),O.prototype.imulK=function(e){for(var t=0,r=0;r<e.length;r++){var n=19*(0|e.words[r])+t,i=67108863&n;n>>>=26,e.words[r]=i,t=n}return 0!==t&&(e.words[e.length++]=t),e},o._prime=function(e){if(w[e])return w[e];var t;if("k256"===e)t=new E;else if("p224"===e)t=new S;else if("p192"===e)t=new A;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new O}return w[e]=t,t},M.prototype._verify1=function(e){n(0===e.negative,"red works only with positives"),n(e.red,"red works only with red numbers")},M.prototype._verify2=function(e,t){n(0==(e.negative|t.negative),"red works only with positives"),n(e.red&&e.red===t.red,"red works only with red numbers")},M.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):(f(e,e.umod(this.m)._forceRed(this)),e)},M.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},M.prototype.add=function(e,t){this._verify2(e,t);var r=e.add(t);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},M.prototype.iadd=function(e,t){this._verify2(e,t);var r=e.iadd(t);return r.cmp(this.m)>=0&&r.isub(this.m),r},M.prototype.sub=function(e,t){this._verify2(e,t);var r=e.sub(t);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},M.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},M.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},M.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},M.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},M.prototype.isqr=function(e){return this.imul(e,e.clone())},M.prototype.sqr=function(e){return this.mul(e,e)},M.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(n(t%2==1),3===t){var r=this.m.add(new o(1)).iushrn(2);return this.pow(e,r)}for(var i=this.m.subn(1),a=0;!i.isZero()&&0===i.andln(1);)a++,i.iushrn(1);n(!i.isZero());var s=new o(1).toRed(this),u=s.redNeg(),c=this.m.subn(1).iushrn(1),f=this.m.bitLength();for(f=new o(2*f*f).toRed(this);0!==this.pow(f,c).cmp(u);)f.redIAdd(u);for(var l=this.pow(f,i),d=this.pow(e,i.addn(1).iushrn(1)),h=this.pow(e,i),p=a;0!==h.cmp(s);){for(var y=h,g=0;0!==y.cmp(s);g++)y=y.redSqr();n(g<p);var b=this.pow(l,new o(1).iushln(p-g-1));d=d.redMul(b),l=b.redSqr(),h=h.redMul(l),p=g}return d},M.prototype.invm=function(e){var t=e._invmp(this.m);return 0!==t.negative?(t.negative=0,this.imod(t).redNeg()):this.imod(t)},M.prototype.pow=function(e,t){if(t.isZero())return new o(1).toRed(this);if(0===t.cmpn(1))return e.clone();var r=new Array(16);r[0]=new o(1).toRed(this),r[1]=e;for(var n=2;n<r.length;n++)r[n]=this.mul(r[n-1],e);var i=r[0],a=0,s=0,u=t.bitLength()%26;for(0===u&&(u=26),n=t.length-1;n>=0;n--){for(var c=t.words[n],f=u-1;f>=0;f--){var l=c>>f&1;i!==r[0]&&(i=this.sqr(i)),0!==l||0!==a?(a<<=1,a|=l,(4==++s||0===n&&0===f)&&(i=this.mul(i,r[a]),s=0,a=0)):s=0}u=26}return i},M.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},M.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},o.mont=function(e){return new T(e)},i(T,M),T.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},T.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},T.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var r=e.imul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},T.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new o(0)._forceRed(this);var r=e.mul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),a=i;return i.cmp(this.m)>=0?a=i.isub(this.m):i.cmpn(0)<0&&(a=i.iadd(this.m)),a._forceRed(this)},T.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e=r.nmd(e),this)},72486:(e,t,r)=>{var n;function i(e){this.rand=e}if(e.exports=function(e){return n||(n=new i(null)),n.generate(e)},e.exports.Rand=i,i.prototype.generate=function(e){return this._rand(e)},i.prototype._rand=function(e){if(this.rand.getBytes)return this.rand.getBytes(e);for(var t=new Uint8Array(e),r=0;r<t.length;r++)t[r]=this.rand.getByte();return t},"object"==typeof self)self.crypto&&self.crypto.getRandomValues?i.prototype._rand=function(e){var t=new Uint8Array(e);return self.crypto.getRandomValues(t),t}:self.msCrypto&&self.msCrypto.getRandomValues?i.prototype._rand=function(e){var t=new Uint8Array(e);return self.msCrypto.getRandomValues(t),t}:"object"==typeof window&&(i.prototype._rand=function(){throw new Error("Not implemented yet")});else try{var o=r(38087);if("function"!=typeof o.randomBytes)throw new Error("Not supported");i.prototype._rand=function(e){return o.randomBytes(e)}}catch(e){}},4692:(e,t,r)=>{var n=r(59105).Buffer;function i(e){n.isBuffer(e)||(e=n.from(e));for(var t=e.length/4|0,r=new Array(t),i=0;i<t;i++)r[i]=e.readUInt32BE(4*i);return r}function o(e){for(;0<e.length;e++)e[0]=0}function a(e,t,r,n,i){for(var o,a,s,u,c=r[0],f=r[1],l=r[2],d=r[3],h=e[0]^t[0],p=e[1]^t[1],y=e[2]^t[2],g=e[3]^t[3],b=4,m=1;m<i;m++)o=c[h>>>24]^f[p>>>16&255]^l[y>>>8&255]^d[255&g]^t[b++],a=c[p>>>24]^f[y>>>16&255]^l[g>>>8&255]^d[255&h]^t[b++],s=c[y>>>24]^f[g>>>16&255]^l[h>>>8&255]^d[255&p]^t[b++],u=c[g>>>24]^f[h>>>16&255]^l[p>>>8&255]^d[255&y]^t[b++],h=o,p=a,y=s,g=u;return o=(n[h>>>24]<<24|n[p>>>16&255]<<16|n[y>>>8&255]<<8|n[255&g])^t[b++],a=(n[p>>>24]<<24|n[y>>>16&255]<<16|n[g>>>8&255]<<8|n[255&h])^t[b++],s=(n[y>>>24]<<24|n[g>>>16&255]<<16|n[h>>>8&255]<<8|n[255&p])^t[b++],u=(n[g>>>24]<<24|n[h>>>16&255]<<16|n[p>>>8&255]<<8|n[255&y])^t[b++],[o>>>=0,a>>>=0,s>>>=0,u>>>=0]}var s=[0,1,2,4,8,16,32,64,128,27,54],u=function(){for(var e=new Array(256),t=0;t<256;t++)e[t]=t<128?t<<1:t<<1^283;for(var r=[],n=[],i=[[],[],[],[]],o=[[],[],[],[]],a=0,s=0,u=0;u<256;++u){var c=s^s<<1^s<<2^s<<3^s<<4;c=c>>>8^255&c^99,r[a]=c,n[c]=a;var f=e[a],l=e[f],d=e[l],h=257*e[c]^16843008*c;i[0][a]=h<<24|h>>>8,i[1][a]=h<<16|h>>>16,i[2][a]=h<<8|h>>>24,i[3][a]=h,h=16843009*d^65537*l^257*f^16843008*a,o[0][c]=h<<24|h>>>8,o[1][c]=h<<16|h>>>16,o[2][c]=h<<8|h>>>24,o[3][c]=h,0===a?a=s=1:(a=f^e[e[e[d^f]]],s^=e[e[s]])}return{SBOX:r,INV_SBOX:n,SUB_MIX:i,INV_SUB_MIX:o}}();function c(e){this._key=i(e),this._reset()}c.blockSize=16,c.keySize=32,c.prototype.blockSize=c.blockSize,c.prototype.keySize=c.keySize,c.prototype._reset=function(){for(var e=this._key,t=e.length,r=t+6,n=4*(r+1),i=[],o=0;o<t;o++)i[o]=e[o];for(o=t;o<n;o++){var a=i[o-1];o%t==0?(a=a<<8|a>>>24,a=u.SBOX[a>>>24]<<24|u.SBOX[a>>>16&255]<<16|u.SBOX[a>>>8&255]<<8|u.SBOX[255&a],a^=s[o/t|0]<<24):t>6&&o%t==4&&(a=u.SBOX[a>>>24]<<24|u.SBOX[a>>>16&255]<<16|u.SBOX[a>>>8&255]<<8|u.SBOX[255&a]),i[o]=i[o-t]^a}for(var c=[],f=0;f<n;f++){var l=n-f,d=i[l-(f%4?0:4)];c[f]=f<4||l<=4?d:u.INV_SUB_MIX[0][u.SBOX[d>>>24]]^u.INV_SUB_MIX[1][u.SBOX[d>>>16&255]]^u.INV_SUB_MIX[2][u.SBOX[d>>>8&255]]^u.INV_SUB_MIX[3][u.SBOX[255&d]]}this._nRounds=r,this._keySchedule=i,this._invKeySchedule=c},c.prototype.encryptBlockRaw=function(e){return a(e=i(e),this._keySchedule,u.SUB_MIX,u.SBOX,this._nRounds)},c.prototype.encryptBlock=function(e){var t=this.encryptBlockRaw(e),r=n.allocUnsafe(16);return r.writeUInt32BE(t[0],0),r.writeUInt32BE(t[1],4),r.writeUInt32BE(t[2],8),r.writeUInt32BE(t[3],12),r},c.prototype.decryptBlock=function(e){var t=(e=i(e))[1];e[1]=e[3],e[3]=t;var r=a(e,this._invKeySchedule,u.INV_SUB_MIX,u.INV_SBOX,this._nRounds),o=n.allocUnsafe(16);return o.writeUInt32BE(r[0],0),o.writeUInt32BE(r[3],4),o.writeUInt32BE(r[2],8),o.writeUInt32BE(r[1],12),o},c.prototype.scrub=function(){o(this._keySchedule),o(this._invKeySchedule),o(this._key)},e.exports.AES=c},16843:(e,t,r)=>{var n=r(4692),i=r(59105).Buffer,o=r(95108),a=r(19105),s=r(87215),u=r(23698),c=r(23536);function f(e,t,r,a){o.call(this);var u=i.alloc(4,0);this._cipher=new n.AES(t);var f=this._cipher.encryptBlock(u);this._ghash=new s(f),r=function(e,t,r){if(12===t.length)return e._finID=i.concat([t,i.from([0,0,0,1])]),i.concat([t,i.from([0,0,0,2])]);var n=new s(r),o=t.length,a=o%16;n.update(t),a&&(a=16-a,n.update(i.alloc(a,0))),n.update(i.alloc(8,0));var u=8*o,f=i.alloc(8);f.writeUIntBE(u,0,8),n.update(f),e._finID=n.state;var l=i.from(e._finID);return c(l),l}(this,r,f),this._prev=i.from(r),this._cache=i.allocUnsafe(0),this._secCache=i.allocUnsafe(0),this._decrypt=a,this._alen=0,this._len=0,this._mode=e,this._authTag=null,this._called=!1}a(f,o),f.prototype._update=function(e){if(!this._called&&this._alen){var t=16-this._alen%16;t<16&&(t=i.alloc(t,0),this._ghash.update(t))}this._called=!0;var r=this._mode.encrypt(this,e);return this._decrypt?this._ghash.update(e):this._ghash.update(r),this._len+=e.length,r},f.prototype._final=function(){if(this._decrypt&&!this._authTag)throw new Error("Unsupported state or unable to authenticate data");var e=u(this._ghash.final(8*this._alen,8*this._len),this._cipher.encryptBlock(this._finID));if(this._decrypt&&function(e,t){var r=0;e.length!==t.length&&r++;for(var n=Math.min(e.length,t.length),i=0;i<n;++i)r+=e[i]^t[i];return r}(e,this._authTag))throw new Error("Unsupported state or unable to authenticate data");this._authTag=e,this._cipher.scrub()},f.prototype.getAuthTag=function(){if(this._decrypt||!i.isBuffer(this._authTag))throw new Error("Attempting to get auth tag in unsupported state");return this._authTag},f.prototype.setAuthTag=function(e){if(!this._decrypt)throw new Error("Attempting to set auth tag in unsupported state");this._authTag=e},f.prototype.setAAD=function(e){if(this._called)throw new Error("Attempting to set AAD in unsupported state");this._ghash.update(e),this._alen+=e.length},e.exports=f},43773:(e,t,r)=>{var n=r(25527),i=r(16122),o=r(49234);t.createCipher=t.Cipher=n.createCipher,t.createCipheriv=t.Cipheriv=n.createCipheriv,t.createDecipher=t.Decipher=i.createDecipher,t.createDecipheriv=t.Decipheriv=i.createDecipheriv,t.listCiphers=t.getCiphers=function(){return Object.keys(o)}},16122:(e,t,r)=>{var n=r(16843),i=r(59105).Buffer,o=r(60569),a=r(15476),s=r(95108),u=r(4692),c=r(94428);function f(e,t,r){s.call(this),this._cache=new l,this._last=void 0,this._cipher=new u.AES(t),this._prev=i.from(r),this._mode=e,this._autopadding=!0}function l(){this.cache=i.allocUnsafe(0)}function d(e,t,r){var s=o[e.toLowerCase()];if(!s)throw new TypeError("invalid suite type");if("string"==typeof r&&(r=i.from(r)),"GCM"!==s.mode&&r.length!==s.iv)throw new TypeError("invalid iv length "+r.length);if("string"==typeof t&&(t=i.from(t)),t.length!==s.key/8)throw new TypeError("invalid key length "+t.length);return"stream"===s.type?new a(s.module,t,r,!0):"auth"===s.type?new n(s.module,t,r,!0):new f(s.module,t,r)}r(19105)(f,s),f.prototype._update=function(e){var t,r;this._cache.add(e);for(var n=[];t=this._cache.get(this._autopadding);)r=this._mode.decrypt(this,t),n.push(r);return i.concat(n)},f.prototype._final=function(){var e=this._cache.flush();if(this._autopadding)return function(e){var t=e[15];if(t<1||t>16)throw new Error("unable to decrypt data");for(var r=-1;++r<t;)if(e[r+(16-t)]!==t)throw new Error("unable to decrypt data");if(16!==t)return e.slice(0,16-t)}(this._mode.decrypt(this,e));if(e)throw new Error("data not multiple of block length")},f.prototype.setAutoPadding=function(e){return this._autopadding=!!e,this},l.prototype.add=function(e){this.cache=i.concat([this.cache,e])},l.prototype.get=function(e){var t;if(e){if(this.cache.length>16)return t=this.cache.slice(0,16),this.cache=this.cache.slice(16),t}else if(this.cache.length>=16)return t=this.cache.slice(0,16),this.cache=this.cache.slice(16),t;return null},l.prototype.flush=function(){if(this.cache.length)return this.cache},t.createDecipher=function(e,t){var r=o[e.toLowerCase()];if(!r)throw new TypeError("invalid suite type");var n=c(t,!1,r.key,r.iv);return d(e,n.key,n.iv)},t.createDecipheriv=d},25527:(e,t,r)=>{var n=r(60569),i=r(16843),o=r(59105).Buffer,a=r(15476),s=r(95108),u=r(4692),c=r(94428);function f(e,t,r){s.call(this),this._cache=new d,this._cipher=new u.AES(t),this._prev=o.from(r),this._mode=e,this._autopadding=!0}r(19105)(f,s),f.prototype._update=function(e){var t,r;this._cache.add(e);for(var n=[];t=this._cache.get();)r=this._mode.encrypt(this,t),n.push(r);return o.concat(n)};var l=o.alloc(16,16);function d(){this.cache=o.allocUnsafe(0)}function h(e,t,r){var s=n[e.toLowerCase()];if(!s)throw new TypeError("invalid suite type");if("string"==typeof t&&(t=o.from(t)),t.length!==s.key/8)throw new TypeError("invalid key length "+t.length);if("string"==typeof r&&(r=o.from(r)),"GCM"!==s.mode&&r.length!==s.iv)throw new TypeError("invalid iv length "+r.length);return"stream"===s.type?new a(s.module,t,r):"auth"===s.type?new i(s.module,t,r):new f(s.module,t,r)}f.prototype._final=function(){var e=this._cache.flush();if(this._autopadding)return e=this._mode.encrypt(this,e),this._cipher.scrub(),e;if(!e.equals(l))throw this._cipher.scrub(),new Error("data not multiple of block length")},f.prototype.setAutoPadding=function(e){return this._autopadding=!!e,this},d.prototype.add=function(e){this.cache=o.concat([this.cache,e])},d.prototype.get=function(){if(this.cache.length>15){var e=this.cache.slice(0,16);return this.cache=this.cache.slice(16),e}return null},d.prototype.flush=function(){for(var e=16-this.cache.length,t=o.allocUnsafe(e),r=-1;++r<e;)t.writeUInt8(e,r);return o.concat([this.cache,t])},t.createCipheriv=h,t.createCipher=function(e,t){var r=n[e.toLowerCase()];if(!r)throw new TypeError("invalid suite type");var i=c(t,!1,r.key,r.iv);return h(e,i.key,i.iv)}},87215:(e,t,r)=>{var n=r(59105).Buffer,i=n.alloc(16,0);function o(e){var t=n.allocUnsafe(16);return t.writeUInt32BE(e[0]>>>0,0),t.writeUInt32BE(e[1]>>>0,4),t.writeUInt32BE(e[2]>>>0,8),t.writeUInt32BE(e[3]>>>0,12),t}function a(e){this.h=e,this.state=n.alloc(16,0),this.cache=n.allocUnsafe(0)}a.prototype.ghash=function(e){for(var t=-1;++t<e.length;)this.state[t]^=e[t];this._multiply()},a.prototype._multiply=function(){for(var e,t,r,n=[(e=this.h).readUInt32BE(0),e.readUInt32BE(4),e.readUInt32BE(8),e.readUInt32BE(12)],i=[0,0,0,0],a=-1;++a<128;){for(0!=(this.state[~~(a/8)]&1<<7-a%8)&&(i[0]^=n[0],i[1]^=n[1],i[2]^=n[2],i[3]^=n[3]),r=0!=(1&n[3]),t=3;t>0;t--)n[t]=n[t]>>>1|(1&n[t-1])<<31;n[0]=n[0]>>>1,r&&(n[0]=n[0]^225<<24)}this.state=o(i)},a.prototype.update=function(e){var t;for(this.cache=n.concat([this.cache,e]);this.cache.length>=16;)t=this.cache.slice(0,16),this.cache=this.cache.slice(16),this.ghash(t)},a.prototype.final=function(e,t){return this.cache.length&&this.ghash(n.concat([this.cache,i],16)),this.ghash(o([0,e,0,t])),this.state},e.exports=a},23536:e=>{e.exports=function(e){for(var t,r=e.length;r--;){if(255!==(t=e.readUInt8(r))){t++,e.writeUInt8(t,r);break}e.writeUInt8(0,r)}}},73846:(e,t,r)=>{var n=r(23698);t.encrypt=function(e,t){var r=n(t,e._prev);return e._prev=e._cipher.encryptBlock(r),e._prev},t.decrypt=function(e,t){var r=e._prev;e._prev=t;var i=e._cipher.decryptBlock(t);return n(i,r)}},71662:(e,t,r)=>{var n=r(59105).Buffer,i=r(23698);function o(e,t,r){var o=t.length,a=i(t,e._cache);return e._cache=e._cache.slice(o),e._prev=n.concat([e._prev,r?t:a]),a}t.encrypt=function(e,t,r){for(var i,a=n.allocUnsafe(0);t.length;){if(0===e._cache.length&&(e._cache=e._cipher.encryptBlock(e._prev),e._prev=n.allocUnsafe(0)),!(e._cache.length<=t.length)){a=n.concat([a,o(e,t,r)]);break}i=e._cache.length,a=n.concat([a,o(e,t.slice(0,i),r)]),t=t.slice(i)}return a}},7778:(e,t,r)=>{var n=r(59105).Buffer;function i(e,t,r){for(var n,i,a=-1,s=0;++a<8;)n=t&1<<7-a?128:0,s+=(128&(i=e._cipher.encryptBlock(e._prev)[0]^n))>>a%8,e._prev=o(e._prev,r?n:i);return s}function o(e,t){var r=e.length,i=-1,o=n.allocUnsafe(e.length);for(e=n.concat([e,n.from([t])]);++i<r;)o[i]=e[i]<<1|e[i+1]>>7;return o}t.encrypt=function(e,t,r){for(var o=t.length,a=n.allocUnsafe(o),s=-1;++s<o;)a[s]=i(e,t[s],r);return a}},69828:(e,t,r)=>{var n=r(59105).Buffer;function i(e,t,r){var i=e._cipher.encryptBlock(e._prev)[0]^t;return e._prev=n.concat([e._prev.slice(1),n.from([r?t:i])]),i}t.encrypt=function(e,t,r){for(var o=t.length,a=n.allocUnsafe(o),s=-1;++s<o;)a[s]=i(e,t[s],r);return a}},14855:(e,t,r)=>{var n=r(23698),i=r(59105).Buffer,o=r(23536);function a(e){var t=e._cipher.encryptBlockRaw(e._prev);return o(e._prev),t}t.encrypt=function(e,t){var r=Math.ceil(t.length/16),o=e._cache.length;e._cache=i.concat([e._cache,i.allocUnsafe(16*r)]);for(var s=0;s<r;s++){var u=a(e),c=o+16*s;e._cache.writeUInt32BE(u[0],c+0),e._cache.writeUInt32BE(u[1],c+4),e._cache.writeUInt32BE(u[2],c+8),e._cache.writeUInt32BE(u[3],c+12)}var f=e._cache.slice(0,t.length);return e._cache=e._cache.slice(t.length),n(t,f)}},38943:(e,t)=>{t.encrypt=function(e,t){return e._cipher.encryptBlock(t)},t.decrypt=function(e,t){return e._cipher.decryptBlock(t)}},60569:(e,t,r)=>{var n={ECB:r(38943),CBC:r(73846),CFB:r(71662),CFB8:r(69828),CFB1:r(7778),OFB:r(12327),CTR:r(14855),GCM:r(14855)},i=r(49234);for(var o in i)i[o].module=n[i[o].mode];e.exports=i},12327:(e,t,r)=>{var n=r(18390).Buffer,i=r(23698);function o(e){return e._prev=e._cipher.encryptBlock(e._prev),e._prev}t.encrypt=function(e,t){for(;e._cache.length<t.length;)e._cache=n.concat([e._cache,o(e)]);var r=e._cache.slice(0,t.length);return e._cache=e._cache.slice(t.length),i(t,r)}},15476:(e,t,r)=>{var n=r(4692),i=r(59105).Buffer,o=r(95108);function a(e,t,r,a){o.call(this),this._cipher=new n.AES(t),this._prev=i.from(r),this._cache=i.allocUnsafe(0),this._secCache=i.allocUnsafe(0),this._decrypt=a,this._mode=e}r(19105)(a,o),a.prototype._update=function(e){return this._mode.encrypt(this,e,this._decrypt)},a.prototype._final=function(){this._cipher.scrub()},e.exports=a},57797:(e,t,r)=>{var n=r(90122),i=r(43773),o=r(60569),a=r(65624),s=r(94428);function u(e,t,r){if(e=e.toLowerCase(),o[e])return i.createCipheriv(e,t,r);if(a[e])return new n({key:t,iv:r,mode:e});throw new TypeError("invalid suite type")}function c(e,t,r){if(e=e.toLowerCase(),o[e])return i.createDecipheriv(e,t,r);if(a[e])return new n({key:t,iv:r,mode:e,decrypt:!0});throw new TypeError("invalid suite type")}t.createCipher=t.Cipher=function(e,t){var r,n;if(e=e.toLowerCase(),o[e])r=o[e].key,n=o[e].iv;else{if(!a[e])throw new TypeError("invalid suite type");r=8*a[e].key,n=a[e].iv}var i=s(t,!1,r,n);return u(e,i.key,i.iv)},t.createCipheriv=t.Cipheriv=u,t.createDecipher=t.Decipher=function(e,t){var r,n;if(e=e.toLowerCase(),o[e])r=o[e].key,n=o[e].iv;else{if(!a[e])throw new TypeError("invalid suite type");r=8*a[e].key,n=a[e].iv}var i=s(t,!1,r,n);return c(e,i.key,i.iv)},t.createDecipheriv=t.Decipheriv=c,t.listCiphers=t.getCiphers=function(){return Object.keys(a).concat(i.getCiphers())}},90122:(e,t,r)=>{var n=r(95108),i=r(99417),o=r(19105),a=r(59105).Buffer,s={"des-ede3-cbc":i.CBC.instantiate(i.EDE),"des-ede3":i.EDE,"des-ede-cbc":i.CBC.instantiate(i.EDE),"des-ede":i.EDE,"des-cbc":i.CBC.instantiate(i.DES),"des-ecb":i.DES};function u(e){n.call(this);var t,r=e.mode.toLowerCase(),i=s[r];t=e.decrypt?"decrypt":"encrypt";var o=e.key;a.isBuffer(o)||(o=a.from(o)),"des-ede"!==r&&"des-ede-cbc"!==r||(o=a.concat([o,o.slice(0,8)]));var u=e.iv;a.isBuffer(u)||(u=a.from(u)),this._des=i.create({key:o,iv:u,type:t})}s.des=s["des-cbc"],s.des3=s["des-ede3-cbc"],e.exports=u,o(u,n),u.prototype._update=function(e){return a.from(this._des.update(e))},u.prototype._final=function(){return a.from(this._des.final())}},65624:(e,t)=>{t["des-ecb"]={key:8,iv:0},t["des-cbc"]=t.des={key:8,iv:8},t["des-ede3-cbc"]=t.des3={key:24,iv:8},t["des-ede3"]={key:24,iv:0},t["des-ede-cbc"]={key:16,iv:8},t["des-ede"]={key:16,iv:0}},4621:(e,t,r)=>{var n=r(18390).Buffer,i=r(69999),o=r(83638);function a(e){var t,r=e.modulus.byteLength();do{t=new i(o(r))}while(t.cmp(e.modulus)>=0||!t.umod(e.prime1)||!t.umod(e.prime2));return t}function s(e,t){var r=function(e){var t=a(e);return{blinder:t.toRed(i.mont(e.modulus)).redPow(new i(e.publicExponent)).fromRed(),unblinder:t.invm(e.modulus)}}(t),o=t.modulus.byteLength(),s=new i(e).mul(r.blinder).umod(t.modulus),u=s.toRed(i.mont(t.prime1)),c=s.toRed(i.mont(t.prime2)),f=t.coefficient,l=t.prime1,d=t.prime2,h=u.redPow(t.exponent1).fromRed(),p=c.redPow(t.exponent2).fromRed(),y=h.isub(p).imul(f).umod(l).imul(d);return p.iadd(y).imul(r.unblinder).umod(t.modulus).toArrayLike(n,"be",o)}s.getr=a,e.exports=s},54301:(e,t,r)=>{e.exports=r(40026)},93564:(e,t,r)=>{var n=r(59105).Buffer,i=r(50637),o=r(8542),a=r(19105),s=r(66119),u=r(35760),c=r(40026);function f(e){o.Writable.call(this);var t=c[e];if(!t)throw new Error("Unknown message digest");this._hashType=t.hash,this._hash=i(t.hash),this._tag=t.id,this._signType=t.sign}function l(e){o.Writable.call(this);var t=c[e];if(!t)throw new Error("Unknown message digest");this._hash=i(t.hash),this._tag=t.id,this._signType=t.sign}function d(e){return new f(e)}function h(e){return new l(e)}Object.keys(c).forEach((function(e){c[e].id=n.from(c[e].id,"hex"),c[e.toLowerCase()]=c[e]})),a(f,o.Writable),f.prototype._write=function(e,t,r){this._hash.update(e),r()},f.prototype.update=function(e,t){return"string"==typeof e&&(e=n.from(e,t)),this._hash.update(e),this},f.prototype.sign=function(e,t){this.end();var r=this._hash.digest(),n=s(r,e,this._hashType,this._signType,this._tag);return t?n.toString(t):n},a(l,o.Writable),l.prototype._write=function(e,t,r){this._hash.update(e),r()},l.prototype.update=function(e,t){return"string"==typeof e&&(e=n.from(e,t)),this._hash.update(e),this},l.prototype.verify=function(e,t,r){"string"==typeof t&&(t=n.from(t,r)),this.end();var i=this._hash.digest();return u(t,i,e,this._signType,this._tag)},e.exports={Sign:d,Verify:h,createSign:d,createVerify:h}},66119:(e,t,r)=>{var n=r(59105).Buffer,i=r(18451),o=r(4621),a=r(42870).ec,s=r(69999),u=r(58155),c=r(39167);function f(e,t,r,o){if((e=n.from(e.toArray())).length<t.byteLength()){var a=n.alloc(t.byteLength()-e.length);e=n.concat([a,e])}var s=r.length,u=function(e,t){e=(e=l(e,t)).mod(t);var r=n.from(e.toArray());if(r.length<t.byteLength()){var i=n.alloc(t.byteLength()-r.length);r=n.concat([i,r])}return r}(r,t),c=n.alloc(s);c.fill(1);var f=n.alloc(s);return f=i(o,f).update(c).update(n.from([0])).update(e).update(u).digest(),c=i(o,f).update(c).digest(),{k:f=i(o,f).update(c).update(n.from([1])).update(e).update(u).digest(),v:c=i(o,f).update(c).digest()}}function l(e,t){var r=new s(e),n=(e.length<<3)-t.bitLength();return n>0&&r.ishrn(n),r}function d(e,t,r){var o,a;do{for(o=n.alloc(0);8*o.length<e.bitLength();)t.v=i(r,t.k).update(t.v).digest(),o=n.concat([o,t.v]);a=l(o,e),t.k=i(r,t.k).update(t.v).update(n.from([0])).digest(),t.v=i(r,t.k).update(t.v).digest()}while(-1!==a.cmp(e));return a}function h(e,t,r,n){return e.toRed(s.mont(r)).redPow(t).fromRed().mod(n)}e.exports=function(e,t,r,i,p){var y=u(t);if(y.curve){if("ecdsa"!==i&&"ecdsa/rsa"!==i)throw new Error("wrong private key type");return function(e,t){var r=c[t.curve.join(".")];if(!r)throw new Error("unknown curve "+t.curve.join("."));var i=new a(r).keyFromPrivate(t.privateKey).sign(e);return n.from(i.toDER())}(e,y)}if("dsa"===y.type){if("dsa"!==i)throw new Error("wrong private key type");return function(e,t,r){for(var i,o=t.params.priv_key,a=t.params.p,u=t.params.q,c=t.params.g,p=new s(0),y=l(e,u).mod(u),g=!1,b=f(o,u,e,r);!1===g;)p=h(c,i=d(u,b,r),a,u),0===(g=i.invm(u).imul(y.add(o.mul(p))).mod(u)).cmpn(0)&&(g=!1,p=new s(0));return function(e,t){e=e.toArray(),t=t.toArray(),128&e[0]&&(e=[0].concat(e)),128&t[0]&&(t=[0].concat(t));var r=[48,e.length+t.length+4,2,e.length];return r=r.concat(e,[2,t.length],t),n.from(r)}(p,g)}(e,y,r)}if("rsa"!==i&&"ecdsa/rsa"!==i)throw new Error("wrong private key type");e=n.concat([p,e]);for(var g=y.modulus.byteLength(),b=[0,1];e.length+b.length+1<g;)b.push(255);b.push(0);for(var m=-1;++m<e.length;)b.push(e[m]);return o(b,y)},e.exports.getKey=f,e.exports.makeKey=d},35760:(e,t,r)=>{var n=r(59105).Buffer,i=r(69999),o=r(42870).ec,a=r(58155),s=r(39167);function u(e,t){if(e.cmpn(0)<=0)throw new Error("invalid sig");if(e.cmp(t)>=t)throw new Error("invalid sig")}e.exports=function(e,t,r,c,f){var l=a(r);if("ec"===l.type){if("ecdsa"!==c&&"ecdsa/rsa"!==c)throw new Error("wrong public key type");return function(e,t,r){var n=s[r.data.algorithm.curve.join(".")];if(!n)throw new Error("unknown curve "+r.data.algorithm.curve.join("."));var i=new o(n),a=r.data.subjectPrivateKey.data;return i.verify(t,e,a)}(e,t,l)}if("dsa"===l.type){if("dsa"!==c)throw new Error("wrong public key type");return function(e,t,r){var n=r.data.p,o=r.data.q,s=r.data.g,c=r.data.pub_key,f=a.signature.decode(e,"der"),l=f.s,d=f.r;u(l,o),u(d,o);var h=i.mont(n),p=l.invm(o);return 0===s.toRed(h).redPow(new i(t).mul(p).mod(o)).fromRed().mul(c.toRed(h).redPow(d.mul(p).mod(o)).fromRed()).mod(n).mod(o).cmp(d)}(e,t,l)}if("rsa"!==c&&"ecdsa/rsa"!==c)throw new Error("wrong public key type");t=n.concat([f,t]);for(var d=l.modulus.byteLength(),h=[1],p=0;t.length+h.length+2<d;)h.push(255),p++;h.push(0);for(var y=-1;++y<t.length;)h.push(t[y]);h=n.from(h);var g=i.mont(l.modulus);e=(e=new i(e).toRed(g)).redPow(new i(l.publicExponent)),e=n.from(e.fromRed().toArray());var b=p<8?1:0;for(d=Math.min(e.length,h.length),e.length!==h.length&&(b=1),y=-1;++y<d;)b|=e[y]^h[y];return 0===b}},55973:(e,t,r)=>{var n=r(90638);e.exports=n("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz")},6632:(e,t,r)=>{"use strict";var n=r(55973),i=r(59105).Buffer;e.exports=function(e){function t(t){var r=t.slice(0,-4),n=t.slice(-4),i=e(r);if(!(n[0]^i[0]|n[1]^i[1]|n[2]^i[2]|n[3]^i[3]))return r}return{encode:function(t){var r=e(t);return n.encode(i.concat([t,r],t.length+4))},decode:function(e){var r=t(n.decode(e));if(!r)throw new Error("Invalid checksum");return r},decodeUnsafe:function(e){var r=n.decodeUnsafe(e);if(r)return t(r)}}}},84948:(e,t,r)=>{"use strict";var n=r(50637),i=r(6632);e.exports=i((function(e){var t=n("sha256").update(e).digest();return n("sha256").update(t).digest()}))},23698:(e,t,r)=>{var n=r(18390).Buffer;e.exports=function(e,t){for(var r=Math.min(e.length,t.length),i=new n(r),o=0;o<r;++o)i[o]=e[o]^t[o];return i}},18390:(e,t,r)=>{"use strict";const n=r(17086),i=r(98329),o="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;t.Buffer=u,t.SlowBuffer=function(e){return+e!=e&&(e=0),u.alloc(+e)},t.INSPECT_MAX_BYTES=50;const a=2147483647;function s(e){if(e>a)throw new RangeError('The value "'+e+'" is invalid for option "size"');const t=new Uint8Array(e);return Object.setPrototypeOf(t,u.prototype),t}function u(e,t,r){if("number"==typeof e){if("string"==typeof t)throw new TypeError('The "string" argument must be of type string. Received type number');return l(e)}return c(e,t,r)}function c(e,t,r){if("string"==typeof e)return function(e,t){if("string"==typeof t&&""!==t||(t="utf8"),!u.isEncoding(t))throw new TypeError("Unknown encoding: "+t);const r=0|y(e,t);let n=s(r);const i=n.write(e,t);return i!==r&&(n=n.slice(0,i)),n}(e,t);if(ArrayBuffer.isView(e))return function(e){if($(e,Uint8Array)){const t=new Uint8Array(e);return h(t.buffer,t.byteOffset,t.byteLength)}return d(e)}(e);if(null==e)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if($(e,ArrayBuffer)||e&&$(e.buffer,ArrayBuffer))return h(e,t,r);if("undefined"!=typeof SharedArrayBuffer&&($(e,SharedArrayBuffer)||e&&$(e.buffer,SharedArrayBuffer)))return h(e,t,r);if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type number');const n=e.valueOf&&e.valueOf();if(null!=n&&n!==e)return u.from(n,t,r);const i=function(e){if(u.isBuffer(e)){const t=0|p(e.length),r=s(t);return 0===r.length||e.copy(r,0,0,t),r}return void 0!==e.length?"number"!=typeof e.length||X(e.length)?s(0):d(e):"Buffer"===e.type&&Array.isArray(e.data)?d(e.data):void 0}(e);if(i)return i;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof e[Symbol.toPrimitive])return u.from(e[Symbol.toPrimitive]("string"),t,r);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}function f(e){if("number"!=typeof e)throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function l(e){return f(e),s(e<0?0:0|p(e))}function d(e){const t=e.length<0?0:0|p(e.length),r=s(t);for(let n=0;n<t;n+=1)r[n]=255&e[n];return r}function h(e,t,r){if(t<0||e.byteLength<t)throw new RangeError('"offset" is outside of buffer bounds');if(e.byteLength<t+(r||0))throw new RangeError('"length" is outside of buffer bounds');let n;return n=void 0===t&&void 0===r?new Uint8Array(e):void 0===r?new Uint8Array(e,t):new Uint8Array(e,t,r),Object.setPrototypeOf(n,u.prototype),n}function p(e){if(e>=a)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a.toString(16)+" bytes");return 0|e}function y(e,t){if(u.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||$(e,ArrayBuffer))return e.byteLength;if("string"!=typeof e)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);const r=e.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===r)return 0;let i=!1;for(;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return W(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return G(e).length;default:if(i)return n?-1:W(e).length;t=(""+t).toLowerCase(),i=!0}}function g(e,t,r){let n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return x(this,t,r);case"utf8":case"utf-8":return M(this,t,r);case"ascii":return I(this,t,r);case"latin1":case"binary":return N(this,t,r);case"base64":return O(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return L(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function b(e,t,r){const n=e[t];e[t]=e[r],e[r]=n}function m(e,t,r,n,i){if(0===e.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),X(r=+r)&&(r=i?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(i)return-1;r=e.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof t&&(t=u.from(t,n)),u.isBuffer(t))return 0===t.length?-1:v(e,t,r,n,i);if("number"==typeof t)return t&=255,"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):v(e,[t],r,n,i);throw new TypeError("val must be string, number or Buffer")}function v(e,t,r,n,i){let o,a=1,s=e.length,u=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;a=2,s/=2,u/=2,r/=2}function c(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(i){let n=-1;for(o=r;o<s;o++)if(c(e,o)===c(t,-1===n?0:o-n)){if(-1===n&&(n=o),o-n+1===u)return n*a}else-1!==n&&(o-=o-n),n=-1}else for(r+u>s&&(r=s-u),o=r;o>=0;o--){let r=!0;for(let n=0;n<u;n++)if(c(e,o+n)!==c(t,n)){r=!1;break}if(r)return o}return-1}function w(e,t,r,n){r=Number(r)||0;const i=e.length-r;n?(n=Number(n))>i&&(n=i):n=i;const o=t.length;let a;for(n>o/2&&(n=o/2),a=0;a<n;++a){const n=parseInt(t.substr(2*a,2),16);if(X(n))return a;e[r+a]=n}return a}function _(e,t,r,n){return Y(W(t,e.length-r),e,r,n)}function E(e,t,r,n){return Y(function(e){const t=[];for(let r=0;r<e.length;++r)t.push(255&e.charCodeAt(r));return t}(t),e,r,n)}function S(e,t,r,n){return Y(G(t),e,r,n)}function A(e,t,r,n){return Y(function(e,t){let r,n,i;const o=[];for(let a=0;a<e.length&&!((t-=2)<0);++a)r=e.charCodeAt(a),n=r>>8,i=r%256,o.push(i),o.push(n);return o}(t,e.length-r),e,r,n)}function O(e,t,r){return 0===t&&r===e.length?n.fromByteArray(e):n.fromByteArray(e.slice(t,r))}function M(e,t,r){r=Math.min(e.length,r);const n=[];let i=t;for(;i<r;){const t=e[i];let o=null,a=t>239?4:t>223?3:t>191?2:1;if(i+a<=r){let r,n,s,u;switch(a){case 1:t<128&&(o=t);break;case 2:r=e[i+1],128==(192&r)&&(u=(31&t)<<6|63&r,u>127&&(o=u));break;case 3:r=e[i+1],n=e[i+2],128==(192&r)&&128==(192&n)&&(u=(15&t)<<12|(63&r)<<6|63&n,u>2047&&(u<55296||u>57343)&&(o=u));break;case 4:r=e[i+1],n=e[i+2],s=e[i+3],128==(192&r)&&128==(192&n)&&128==(192&s)&&(u=(15&t)<<18|(63&r)<<12|(63&n)<<6|63&s,u>65535&&u<1114112&&(o=u))}}null===o?(o=65533,a=1):o>65535&&(o-=65536,n.push(o>>>10&1023|55296),o=56320|1023&o),n.push(o),i+=a}return function(e){const t=e.length;if(t<=T)return String.fromCharCode.apply(String,e);let r="",n=0;for(;n<t;)r+=String.fromCharCode.apply(String,e.slice(n,n+=T));return r}(n)}t.kMaxLength=a,u.TYPED_ARRAY_SUPPORT=function(){try{const e=new Uint8Array(1),t={foo:function(){return 42}};return Object.setPrototypeOf(t,Uint8Array.prototype),Object.setPrototypeOf(e,t),42===e.foo()}catch(e){return!1}}(),u.TYPED_ARRAY_SUPPORT||"undefined"==typeof console||"function"!=typeof console.error||console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."),Object.defineProperty(u.prototype,"parent",{enumerable:!0,get:function(){if(u.isBuffer(this))return this.buffer}}),Object.defineProperty(u.prototype,"offset",{enumerable:!0,get:function(){if(u.isBuffer(this))return this.byteOffset}}),u.poolSize=8192,u.from=function(e,t,r){return c(e,t,r)},Object.setPrototypeOf(u.prototype,Uint8Array.prototype),Object.setPrototypeOf(u,Uint8Array),u.alloc=function(e,t,r){return function(e,t,r){return f(e),e<=0?s(e):void 0!==t?"string"==typeof r?s(e).fill(t,r):s(e).fill(t):s(e)}(e,t,r)},u.allocUnsafe=function(e){return l(e)},u.allocUnsafeSlow=function(e){return l(e)},u.isBuffer=function(e){return null!=e&&!0===e._isBuffer&&e!==u.prototype},u.compare=function(e,t){if($(e,Uint8Array)&&(e=u.from(e,e.offset,e.byteLength)),$(t,Uint8Array)&&(t=u.from(t,t.offset,t.byteLength)),!u.isBuffer(e)||!u.isBuffer(t))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(e===t)return 0;let r=e.length,n=t.length;for(let i=0,o=Math.min(r,n);i<o;++i)if(e[i]!==t[i]){r=e[i],n=t[i];break}return r<n?-1:n<r?1:0},u.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},u.concat=function(e,t){if(!Array.isArray(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return u.alloc(0);let r;if(void 0===t)for(t=0,r=0;r<e.length;++r)t+=e[r].length;const n=u.allocUnsafe(t);let i=0;for(r=0;r<e.length;++r){let t=e[r];if($(t,Uint8Array))i+t.length>n.length?(u.isBuffer(t)||(t=u.from(t)),t.copy(n,i)):Uint8Array.prototype.set.call(n,t,i);else{if(!u.isBuffer(t))throw new TypeError('"list" argument must be an Array of Buffers');t.copy(n,i)}i+=t.length}return n},u.byteLength=y,u.prototype._isBuffer=!0,u.prototype.swap16=function(){const e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let t=0;t<e;t+=2)b(this,t,t+1);return this},u.prototype.swap32=function(){const e=this.length;if(e%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let t=0;t<e;t+=4)b(this,t,t+3),b(this,t+1,t+2);return this},u.prototype.swap64=function(){const e=this.length;if(e%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let t=0;t<e;t+=8)b(this,t,t+7),b(this,t+1,t+6),b(this,t+2,t+5),b(this,t+3,t+4);return this},u.prototype.toString=function(){const e=this.length;return 0===e?"":0===arguments.length?M(this,0,e):g.apply(this,arguments)},u.prototype.toLocaleString=u.prototype.toString,u.prototype.equals=function(e){if(!u.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===u.compare(this,e)},u.prototype.inspect=function(){let e="";const r=t.INSPECT_MAX_BYTES;return e=this.toString("hex",0,r).replace(/(.{2})/g,"$1 ").trim(),this.length>r&&(e+=" ... "),"<Buffer "+e+">"},o&&(u.prototype[o]=u.prototype.inspect),u.prototype.compare=function(e,t,r,n,i){if($(e,Uint8Array)&&(e=u.from(e,e.offset,e.byteLength)),!u.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),t<0||r>e.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&t>=r)return 0;if(n>=i)return-1;if(t>=r)return 1;if(this===e)return 0;let o=(i>>>=0)-(n>>>=0),a=(r>>>=0)-(t>>>=0);const s=Math.min(o,a),c=this.slice(n,i),f=e.slice(t,r);for(let e=0;e<s;++e)if(c[e]!==f[e]){o=c[e],a=f[e];break}return o<a?-1:a<o?1:0},u.prototype.includes=function(e,t,r){return-1!==this.indexOf(e,t,r)},u.prototype.indexOf=function(e,t,r){return m(this,e,t,r,!0)},u.prototype.lastIndexOf=function(e,t,r){return m(this,e,t,r,!1)},u.prototype.write=function(e,t,r,n){if(void 0===t)n="utf8",r=this.length,t=0;else if(void 0===r&&"string"==typeof t)n=t,r=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t>>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}const i=this.length-t;if((void 0===r||r>i)&&(r=i),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");let o=!1;for(;;)switch(n){case"hex":return w(this,e,t,r);case"utf8":case"utf-8":return _(this,e,t,r);case"ascii":case"latin1":case"binary":return E(this,e,t,r);case"base64":return S(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return A(this,e,t,r);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},u.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};const T=4096;function I(e,t,r){let n="";r=Math.min(e.length,r);for(let i=t;i<r;++i)n+=String.fromCharCode(127&e[i]);return n}function N(e,t,r){let n="";r=Math.min(e.length,r);for(let i=t;i<r;++i)n+=String.fromCharCode(e[i]);return n}function x(e,t,r){const n=e.length;(!t||t<0)&&(t=0),(!r||r<0||r>n)&&(r=n);let i="";for(let n=t;n<r;++n)i+=J[e[n]];return i}function L(e,t,r){const n=e.slice(t,r);let i="";for(let e=0;e<n.length-1;e+=2)i+=String.fromCharCode(n[e]+256*n[e+1]);return i}function k(e,t,r){if(e%1!=0||e<0)throw new RangeError("offset is not uint");if(e+t>r)throw new RangeError("Trying to access beyond buffer length")}function R(e,t,r,n,i,o){if(!u.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||t<o)throw new RangeError('"value" argument is out of bounds');if(r+n>e.length)throw new RangeError("Index out of range")}function P(e,t,r,n,i){H(t,n,i,e,r,7);let o=Number(t&BigInt(4294967295));e[r++]=o,o>>=8,e[r++]=o,o>>=8,e[r++]=o,o>>=8,e[r++]=o;let a=Number(t>>BigInt(32)&BigInt(4294967295));return e[r++]=a,a>>=8,e[r++]=a,a>>=8,e[r++]=a,a>>=8,e[r++]=a,r}function B(e,t,r,n,i){H(t,n,i,e,r,7);let o=Number(t&BigInt(4294967295));e[r+7]=o,o>>=8,e[r+6]=o,o>>=8,e[r+5]=o,o>>=8,e[r+4]=o;let a=Number(t>>BigInt(32)&BigInt(4294967295));return e[r+3]=a,a>>=8,e[r+2]=a,a>>=8,e[r+1]=a,a>>=8,e[r]=a,r+8}function D(e,t,r,n,i,o){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function C(e,t,r,n,o){return t=+t,r>>>=0,o||D(e,0,r,4),i.write(e,t,r,n,23,4),r+4}function j(e,t,r,n,o){return t=+t,r>>>=0,o||D(e,0,r,8),i.write(e,t,r,n,52,8),r+8}u.prototype.slice=function(e,t){const r=this.length;(e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t<e&&(t=e);const n=this.subarray(e,t);return Object.setPrototypeOf(n,u.prototype),n},u.prototype.readUintLE=u.prototype.readUIntLE=function(e,t,r){e>>>=0,t>>>=0,r||k(e,t,this.length);let n=this[e],i=1,o=0;for(;++o<t&&(i*=256);)n+=this[e+o]*i;return n},u.prototype.readUintBE=u.prototype.readUIntBE=function(e,t,r){e>>>=0,t>>>=0,r||k(e,t,this.length);let n=this[e+--t],i=1;for(;t>0&&(i*=256);)n+=this[e+--t]*i;return n},u.prototype.readUint8=u.prototype.readUInt8=function(e,t){return e>>>=0,t||k(e,1,this.length),this[e]},u.prototype.readUint16LE=u.prototype.readUInt16LE=function(e,t){return e>>>=0,t||k(e,2,this.length),this[e]|this[e+1]<<8},u.prototype.readUint16BE=u.prototype.readUInt16BE=function(e,t){return e>>>=0,t||k(e,2,this.length),this[e]<<8|this[e+1]},u.prototype.readUint32LE=u.prototype.readUInt32LE=function(e,t){return e>>>=0,t||k(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},u.prototype.readUint32BE=u.prototype.readUInt32BE=function(e,t){return e>>>=0,t||k(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},u.prototype.readBigUInt64LE=Z((function(e){z(e>>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||q(e,this.length-8);const n=t+256*this[++e]+65536*this[++e]+this[++e]*2**24,i=this[++e]+256*this[++e]+65536*this[++e]+r*2**24;return BigInt(n)+(BigInt(i)<<BigInt(32))})),u.prototype.readBigUInt64BE=Z((function(e){z(e>>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||q(e,this.length-8);const n=t*2**24+65536*this[++e]+256*this[++e]+this[++e],i=this[++e]*2**24+65536*this[++e]+256*this[++e]+r;return(BigInt(n)<<BigInt(32))+BigInt(i)})),u.prototype.readIntLE=function(e,t,r){e>>>=0,t>>>=0,r||k(e,t,this.length);let n=this[e],i=1,o=0;for(;++o<t&&(i*=256);)n+=this[e+o]*i;return i*=128,n>=i&&(n-=Math.pow(2,8*t)),n},u.prototype.readIntBE=function(e,t,r){e>>>=0,t>>>=0,r||k(e,t,this.length);let n=t,i=1,o=this[e+--n];for(;n>0&&(i*=256);)o+=this[e+--n]*i;return i*=128,o>=i&&(o-=Math.pow(2,8*t)),o},u.prototype.readInt8=function(e,t){return e>>>=0,t||k(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},u.prototype.readInt16LE=function(e,t){e>>>=0,t||k(e,2,this.length);const r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},u.prototype.readInt16BE=function(e,t){e>>>=0,t||k(e,2,this.length);const r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},u.prototype.readInt32LE=function(e,t){return e>>>=0,t||k(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},u.prototype.readInt32BE=function(e,t){return e>>>=0,t||k(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},u.prototype.readBigInt64LE=Z((function(e){z(e>>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||q(e,this.length-8);const n=this[e+4]+256*this[e+5]+65536*this[e+6]+(r<<24);return(BigInt(n)<<BigInt(32))+BigInt(t+256*this[++e]+65536*this[++e]+this[++e]*2**24)})),u.prototype.readBigInt64BE=Z((function(e){z(e>>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||q(e,this.length-8);const n=(t<<24)+65536*this[++e]+256*this[++e]+this[++e];return(BigInt(n)<<BigInt(32))+BigInt(this[++e]*2**24+65536*this[++e]+256*this[++e]+r)})),u.prototype.readFloatLE=function(e,t){return e>>>=0,t||k(e,4,this.length),i.read(this,e,!0,23,4)},u.prototype.readFloatBE=function(e,t){return e>>>=0,t||k(e,4,this.length),i.read(this,e,!1,23,4)},u.prototype.readDoubleLE=function(e,t){return e>>>=0,t||k(e,8,this.length),i.read(this,e,!0,52,8)},u.prototype.readDoubleBE=function(e,t){return e>>>=0,t||k(e,8,this.length),i.read(this,e,!1,52,8)},u.prototype.writeUintLE=u.prototype.writeUIntLE=function(e,t,r,n){e=+e,t>>>=0,r>>>=0,n||R(this,e,t,r,Math.pow(2,8*r)-1,0);let i=1,o=0;for(this[t]=255&e;++o<r&&(i*=256);)this[t+o]=e/i&255;return t+r},u.prototype.writeUintBE=u.prototype.writeUIntBE=function(e,t,r,n){e=+e,t>>>=0,r>>>=0,n||R(this,e,t,r,Math.pow(2,8*r)-1,0);let i=r-1,o=1;for(this[t+i]=255&e;--i>=0&&(o*=256);)this[t+i]=e/o&255;return t+r},u.prototype.writeUint8=u.prototype.writeUInt8=function(e,t,r){return e=+e,t>>>=0,r||R(this,e,t,1,255,0),this[t]=255&e,t+1},u.prototype.writeUint16LE=u.prototype.writeUInt16LE=function(e,t,r){return e=+e,t>>>=0,r||R(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},u.prototype.writeUint16BE=u.prototype.writeUInt16BE=function(e,t,r){return e=+e,t>>>=0,r||R(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},u.prototype.writeUint32LE=u.prototype.writeUInt32LE=function(e,t,r){return e=+e,t>>>=0,r||R(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},u.prototype.writeUint32BE=u.prototype.writeUInt32BE=function(e,t,r){return e=+e,t>>>=0,r||R(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},u.prototype.writeBigUInt64LE=Z((function(e,t=0){return P(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),u.prototype.writeBigUInt64BE=Z((function(e,t=0){return B(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),u.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t>>>=0,!n){const n=Math.pow(2,8*r-1);R(this,e,t,r,n-1,-n)}let i=0,o=1,a=0;for(this[t]=255&e;++i<r&&(o*=256);)e<0&&0===a&&0!==this[t+i-1]&&(a=1),this[t+i]=(e/o>>0)-a&255;return t+r},u.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t>>>=0,!n){const n=Math.pow(2,8*r-1);R(this,e,t,r,n-1,-n)}let i=r-1,o=1,a=0;for(this[t+i]=255&e;--i>=0&&(o*=256);)e<0&&0===a&&0!==this[t+i+1]&&(a=1),this[t+i]=(e/o>>0)-a&255;return t+r},u.prototype.writeInt8=function(e,t,r){return e=+e,t>>>=0,r||R(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},u.prototype.writeInt16LE=function(e,t,r){return e=+e,t>>>=0,r||R(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},u.prototype.writeInt16BE=function(e,t,r){return e=+e,t>>>=0,r||R(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},u.prototype.writeInt32LE=function(e,t,r){return e=+e,t>>>=0,r||R(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},u.prototype.writeInt32BE=function(e,t,r){return e=+e,t>>>=0,r||R(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},u.prototype.writeBigInt64LE=Z((function(e,t=0){return P(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),u.prototype.writeBigInt64BE=Z((function(e,t=0){return B(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),u.prototype.writeFloatLE=function(e,t,r){return C(this,e,t,!0,r)},u.prototype.writeFloatBE=function(e,t,r){return C(this,e,t,!1,r)},u.prototype.writeDoubleLE=function(e,t,r){return j(this,e,t,!0,r)},u.prototype.writeDoubleBE=function(e,t,r){return j(this,e,t,!1,r)},u.prototype.copy=function(e,t,r,n){if(!u.isBuffer(e))throw new TypeError("argument should be a Buffer");if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n<r&&(n=r),n===r)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(r<0||r>=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t<n-r&&(n=e.length-t+r);const i=n-r;return this===e&&"function"==typeof Uint8Array.prototype.copyWithin?this.copyWithin(t,r,n):Uint8Array.prototype.set.call(e,this.subarray(r,n),t),i},u.prototype.fill=function(e,t,r,n){if("string"==typeof e){if("string"==typeof t?(n=t,t=0,r=this.length):"string"==typeof r&&(n=r,r=this.length),void 0!==n&&"string"!=typeof n)throw new TypeError("encoding must be a string");if("string"==typeof n&&!u.isEncoding(n))throw new TypeError("Unknown encoding: "+n);if(1===e.length){const t=e.charCodeAt(0);("utf8"===n&&t<128||"latin1"===n)&&(e=t)}}else"number"==typeof e?e&=255:"boolean"==typeof e&&(e=Number(e));if(t<0||this.length<t||this.length<r)throw new RangeError("Out of range index");if(r<=t)return this;let i;if(t>>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"==typeof e)for(i=t;i<r;++i)this[i]=e;else{const o=u.isBuffer(e)?e:u.from(e,n),a=o.length;if(0===a)throw new TypeError('The value "'+e+'" is invalid for argument "value"');for(i=0;i<r-t;++i)this[i+t]=o[i%a]}return this};const F={};function U(e,t,r){F[e]=class extends r{constructor(){super(),Object.defineProperty(this,"message",{value:t.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${e}]`,this.stack,delete this.name}get code(){return e}set code(e){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:e,writable:!0})}toString(){return`${this.name} [${e}]: ${this.message}`}}}function V(e){let t="",r=e.length;const n="-"===e[0]?1:0;for(;r>=n+4;r-=3)t=`_${e.slice(r-3,r)}${t}`;return`${e.slice(0,r)}${t}`}function H(e,t,r,n,i,o){if(e>r||e<t){const n="bigint"==typeof t?"n":"";let i;throw i=o>3?0===t||t===BigInt(0)?`>= 0${n} and < 2${n} ** ${8*(o+1)}${n}`:`>= -(2${n} ** ${8*(o+1)-1}${n}) and < 2 ** ${8*(o+1)-1}${n}`:`>= ${t}${n} and <= ${r}${n}`,new F.ERR_OUT_OF_RANGE("value",i,e)}!function(e,t,r){z(t,"offset"),void 0!==e[t]&&void 0!==e[t+r]||q(t,e.length-(r+1))}(n,i,o)}function z(e,t){if("number"!=typeof e)throw new F.ERR_INVALID_ARG_TYPE(t,"number",e)}function q(e,t,r){if(Math.floor(e)!==e)throw z(e,r),new F.ERR_OUT_OF_RANGE(r||"offset","an integer",e);if(t<0)throw new F.ERR_BUFFER_OUT_OF_BOUNDS;throw new F.ERR_OUT_OF_RANGE(r||"offset",`>= ${r?1:0} and <= ${t}`,e)}U("ERR_BUFFER_OUT_OF_BOUNDS",(function(e){return e?`${e} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"}),RangeError),U("ERR_INVALID_ARG_TYPE",(function(e,t){return`The "${e}" argument must be of type number. Received type ${typeof t}`}),TypeError),U("ERR_OUT_OF_RANGE",(function(e,t,r){let n=`The value of "${e}" is out of range.`,i=r;return Number.isInteger(r)&&Math.abs(r)>2**32?i=V(String(r)):"bigint"==typeof r&&(i=String(r),(r>BigInt(2)**BigInt(32)||r<-(BigInt(2)**BigInt(32)))&&(i=V(i)),i+="n"),n+=` It must be ${t}. Received ${i}`,n}),RangeError);const K=/[^+/0-9A-Za-z-_]/g;function W(e,t){let r;t=t||1/0;const n=e.length;let i=null;const o=[];for(let a=0;a<n;++a){if(r=e.charCodeAt(a),r>55295&&r<57344){if(!i){if(r>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(a+1===n){(t-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(t-=3)>-1&&o.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(t-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((t-=1)<0)break;o.push(r)}else if(r<2048){if((t-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function G(e){return n.toByteArray(function(e){if((e=(e=e.split("=")[0]).trim().replace(K,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function Y(e,t,r,n){let i;for(i=0;i<n&&!(i+r>=t.length||i>=e.length);++i)t[i+r]=e[i];return i}function $(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}function X(e){return e!=e}const J=function(){const e="0123456789abcdef",t=new Array(256);for(let r=0;r<16;++r){const n=16*r;for(let i=0;i<16;++i)t[n+i]=e[r]+e[i]}return t}();function Z(e){return"undefined"==typeof BigInt?Q:e}function Q(){throw new Error("BigInt not supported")}},77124:e=>{e.exports={100:"Continue",101:"Switching Protocols",102:"Processing",200:"OK",201:"Created",202:"Accepted",203:"Non-Authoritative Information",204:"No Content",205:"Reset Content",206:"Partial Content",207:"Multi-Status",208:"Already Reported",226:"IM Used",300:"Multiple Choices",301:"Moved Permanently",302:"Found",303:"See Other",304:"Not Modified",305:"Use Proxy",307:"Temporary Redirect",308:"Permanent Redirect",400:"Bad Request",401:"Unauthorized",402:"Payment Required",403:"Forbidden",404:"Not Found",405:"Method Not Allowed",406:"Not Acceptable",407:"Proxy Authentication Required",408:"Request Timeout",409:"Conflict",410:"Gone",411:"Length Required",412:"Precondition Failed",413:"Payload Too Large",414:"URI Too Long",415:"Unsupported Media Type",416:"Range Not Satisfiable",417:"Expectation Failed",418:"I'm a teapot",421:"Misdirected Request",422:"Unprocessable Entity",423:"Locked",424:"Failed Dependency",425:"Unordered Collection",426:"Upgrade Required",428:"Precondition Required",429:"Too Many Requests",431:"Request Header Fields Too Large",451:"Unavailable For Legal Reasons",500:"Internal Server Error",501:"Not Implemented",502:"Bad Gateway",503:"Service Unavailable",504:"Gateway Timeout",505:"HTTP Version Not Supported",506:"Variant Also Negotiates",507:"Insufficient Storage",508:"Loop Detected",509:"Bandwidth Limit Exceeded",510:"Not Extended",511:"Network Authentication Required"}},34537:(e,t,r)=>{"use strict";var n=r(65205),i=r(47208),o=i(n("String.prototype.indexOf"));e.exports=function(e,t){var r=n(e,!!t);return"function"==typeof r&&o(e,".prototype.")>-1?i(r):r}},47208:(e,t,r)=>{"use strict";var n=r(85395),i=r(65205),o=i("%Function.prototype.apply%"),a=i("%Function.prototype.call%"),s=i("%Reflect.apply%",!0)||n.call(a,o),u=i("%Object.getOwnPropertyDescriptor%",!0),c=i("%Object.defineProperty%",!0),f=i("%Math.max%");if(c)try{c({},"a",{value:1})}catch(e){c=null}e.exports=function(e){var t=s(n,a,arguments);return u&&c&&u(t,"length").configurable&&c(t,"length",{value:1+f(0,e.length-(arguments.length-1))}),t};var l=function(){return s(n,o,arguments)};c?c(e.exports,"apply",{value:l}):e.exports.apply=l},95108:(e,t,r)=>{var n=r(59105).Buffer,i=r(98672).Transform,o=r(18842).s;function a(e){i.call(this),this.hashMode="string"==typeof e,this.hashMode?this[e]=this._finalOrDigest:this.final=this._finalOrDigest,this._final&&(this.__final=this._final,this._final=null),this._decoder=null,this._encoding=null}r(19105)(a,i),a.prototype.update=function(e,t,r){"string"==typeof e&&(e=n.from(e,t));var i=this._update(e);return this.hashMode?this:(r&&(i=this._toString(i,r)),i)},a.prototype.setAutoPadding=function(){},a.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")},a.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")},a.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")},a.prototype._transform=function(e,t,r){var n;try{this.hashMode?this._update(e):this.push(this._update(e))}catch(e){n=e}finally{r(n)}},a.prototype._flush=function(e){var t;try{this.push(this.__final())}catch(e){t=e}e(t)},a.prototype._finalOrDigest=function(e){var t=this.__final()||n.alloc(0);return e&&(t=this._toString(t,e,!0)),t},a.prototype._toString=function(e,t,r){if(this._decoder||(this._decoder=new o(t),this._encoding=t),this._encoding!==t)throw new Error("can't switch encodings");var n=this._decoder.write(e);return r&&(n+=this._decoder.end()),n},e.exports=a},99220:(e,t,r)=>{var n=r(18390).Buffer,i=r(42870),o=r(10660);e.exports=function(e){return new s(e)};var a={secp256k1:{name:"secp256k1",byteLength:32},secp224r1:{name:"p224",byteLength:28},prime256v1:{name:"p256",byteLength:32},prime192v1:{name:"p192",byteLength:24},ed25519:{name:"ed25519",byteLength:32},secp384r1:{name:"p384",byteLength:48},secp521r1:{name:"p521",byteLength:66}};function s(e){this.curveType=a[e],this.curveType||(this.curveType={name:e}),this.curve=new i.ec(this.curveType.name),this.keys=void 0}function u(e,t,r){Array.isArray(e)||(e=e.toArray());var i=new n(e);if(r&&i.length<r){var o=new n(r-i.length);o.fill(0),i=n.concat([o,i])}return t?i.toString(t):i}a.p224=a.secp224r1,a.p256=a.secp256r1=a.prime256v1,a.p192=a.secp192r1=a.prime192v1,a.p384=a.secp384r1,a.p521=a.secp521r1,s.prototype.generateKeys=function(e,t){return this.keys=this.curve.genKeyPair(),this.getPublicKey(e,t)},s.prototype.computeSecret=function(e,t,r){return t=t||"utf8",n.isBuffer(e)||(e=new n(e,t)),u(this.curve.keyFromPublic(e).getPublic().mul(this.keys.getPrivate()).getX(),r,this.curveType.byteLength)},s.prototype.getPublicKey=function(e,t){var r=this.keys.getPublic("compressed"===t,!0);return"hybrid"===t&&(r[r.length-1]%2?r[0]=7:r[0]=6),u(r,e)},s.prototype.getPrivateKey=function(e){return u(this.keys.getPrivate(),e)},s.prototype.setPublicKey=function(e,t){return t=t||"utf8",n.isBuffer(e)||(e=new n(e,t)),this.keys._importPublic(e),this},s.prototype.setPrivateKey=function(e,t){t=t||"utf8",n.isBuffer(e)||(e=new n(e,t));var r=new o(e);return r=r.toString(16),this.keys=this.curve.genKeyPair(),this.keys._importPrivate(r),this}},50637:(e,t,r)=>{"use strict";var n=r(19105),i=r(54659),o=r(92027),a=r(55695),s=r(95108);function u(e){s.call(this,"digest"),this._hash=e}n(u,s),u.prototype._update=function(e){this._hash.update(e)},u.prototype._final=function(){return this._hash.digest()},e.exports=function(e){return"md5"===(e=e.toLowerCase())?new i:"rmd160"===e||"ripemd160"===e?new o:new u(a(e))}},22944:(e,t,r)=>{var n=r(54659);e.exports=function(e){return(new n).update(e).digest()}},18451:(e,t,r)=>{"use strict";var n=r(19105),i=r(6880),o=r(95108),a=r(59105).Buffer,s=r(22944),u=r(92027),c=r(55695),f=a.alloc(128);function l(e,t){o.call(this,"digest"),"string"==typeof t&&(t=a.from(t));var r="sha512"===e||"sha384"===e?128:64;this._alg=e,this._key=t,t.length>r?t=("rmd160"===e?new u:c(e)).update(t).digest():t.length<r&&(t=a.concat([t,f],r));for(var n=this._ipad=a.allocUnsafe(r),i=this._opad=a.allocUnsafe(r),s=0;s<r;s++)n[s]=54^t[s],i[s]=92^t[s];this._hash="rmd160"===e?new u:c(e),this._hash.update(n)}n(l,o),l.prototype._update=function(e){this._hash.update(e)},l.prototype._final=function(){var e=this._hash.digest();return("rmd160"===this._alg?new u:c(this._alg)).update(this._opad).update(e).digest()},e.exports=function(e,t){return"rmd160"===(e=e.toLowerCase())||"ripemd160"===e?new l("rmd160",t):"md5"===e?new i(s,t):new l(e,t)}},6880:(e,t,r)=>{"use strict";var n=r(19105),i=r(59105).Buffer,o=r(95108),a=i.alloc(128),s=64;function u(e,t){o.call(this,"digest"),"string"==typeof t&&(t=i.from(t)),this._alg=e,this._key=t,t.length>s?t=e(t):t.length<s&&(t=i.concat([t,a],s));for(var r=this._ipad=i.allocUnsafe(s),n=this._opad=i.allocUnsafe(s),u=0;u<s;u++)r[u]=54^t[u],n[u]=92^t[u];this._hash=[r]}n(u,o),u.prototype._update=function(e){this._hash.push(e)},u.prototype._final=function(){var e=this._alg(i.concat(this._hash));return this._alg(i.concat([this._opad,e]))},e.exports=u},54795:(e,t,r)=>{"use strict";t.randomBytes=t.rng=t.pseudoRandomBytes=t.prng=r(83638),t.createHash=t.Hash=r(50637),t.createHmac=t.Hmac=r(18451);var n=r(54301),i=Object.keys(n),o=["sha1","sha224","sha256","sha384","sha512","md5","rmd160"].concat(i);t.getHashes=function(){return o};var a=r(14321);t.pbkdf2=a.pbkdf2,t.pbkdf2Sync=a.pbkdf2Sync;var s=r(57797);t.Cipher=s.Cipher,t.createCipher=s.createCipher,t.Cipheriv=s.Cipheriv,t.createCipheriv=s.createCipheriv,t.Decipher=s.Decipher,t.createDecipher=s.createDecipher,t.Decipheriv=s.Decipheriv,t.createDecipheriv=s.createDecipheriv,t.getCiphers=s.getCiphers,t.listCiphers=s.listCiphers;var u=r(3947);t.DiffieHellmanGroup=u.DiffieHellmanGroup,t.createDiffieHellmanGroup=u.createDiffieHellmanGroup,t.getDiffieHellman=u.getDiffieHellman,t.createDiffieHellman=u.createDiffieHellman,t.DiffieHellman=u.DiffieHellman;var c=r(93564);t.createSign=c.createSign,t.Sign=c.Sign,t.createVerify=c.createVerify,t.Verify=c.Verify,t.createECDH=r(99220);var f=r(92518);t.publicEncrypt=f.publicEncrypt,t.privateEncrypt=f.privateEncrypt,t.publicDecrypt=f.publicDecrypt,t.privateDecrypt=f.privateDecrypt;var l=r(91538);t.randomFill=l.randomFill,t.randomFillSync=l.randomFillSync,t.createCredentials=function(){throw new Error(["sorry, createCredentials is not implemented yet","we accept pull requests","https://github.com/crypto-browserify/crypto-browserify"].join("\n"))},t.constants={DH_CHECK_P_NOT_SAFE_PRIME:2,DH_CHECK_P_NOT_PRIME:1,DH_UNABLE_TO_CHECK_GENERATOR:4,DH_NOT_SUITABLE_GENERATOR:8,NPN_ENABLED:1,ALPN_ENABLED:1,RSA_PKCS1_PADDING:1,RSA_SSLV23_PADDING:2,RSA_NO_PADDING:3,RSA_PKCS1_OAEP_PADDING:4,RSA_X931_PADDING:5,RSA_PKCS1_PSS_PADDING:6,POINT_CONVERSION_COMPRESSED:2,POINT_CONVERSION_UNCOMPRESSED:4,POINT_CONVERSION_HYBRID:6}},16856:function(e,t,r){var n;!function(i){"use strict";var o,a,s,u=9e15,c=1e9,f="0123456789abcdef",l="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",d="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",h={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-u,maxE:u,crypto:!1},p=!0,y="[DecimalError] ",g=y+"Invalid argument: ",b=y+"Precision limit exceeded",m=y+"crypto unavailable",v="[object Decimal]",w=Math.floor,_=Math.pow,E=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,S=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,A=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,O=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,M=1e7,T=7,I=l.length-1,N=d.length-1,x={toStringTag:v};function L(e){var t,r,n,i=e.length-1,o="",a=e[0];if(i>0){for(o+=a,t=1;t<i;t++)n=e[t]+"",(r=T-n.length)&&(o+=H(r)),o+=n;a=e[t],(r=T-(n=a+"").length)&&(o+=H(r))}else if(0===a)return"0";for(;a%10==0;)a/=10;return o+a}function k(e,t,r){if(e!==~~e||e<t||e>r)throw Error(g+e)}function R(e,t,r,n){var i,o,a,s;for(o=e[0];o>=10;o/=10)--t;return--t<0?(t+=T,i=0):(i=Math.ceil((t+1)/T),t%=T),o=_(10,T-t),s=e[i]%o|0,null==n?t<3?(0==t?s=s/100|0:1==t&&(s=s/10|0),a=r<4&&99999==s||r>3&&49999==s||5e4==s||0==s):a=(r<4&&s+1==o||r>3&&s+1==o/2)&&(e[i+1]/o/100|0)==_(10,t-2)-1||(s==o/2||0==s)&&0==(e[i+1]/o/100|0):t<4?(0==t?s=s/1e3|0:1==t?s=s/100|0:2==t&&(s=s/10|0),a=(n||r<4)&&9999==s||!n&&r>3&&4999==s):a=((n||r<4)&&s+1==o||!n&&r>3&&s+1==o/2)&&(e[i+1]/o/1e3|0)==_(10,t-3)-1,a}function P(e,t,r){for(var n,i,o=[0],a=0,s=e.length;a<s;){for(i=o.length;i--;)o[i]*=t;for(o[0]+=f.indexOf(e.charAt(a++)),n=0;n<o.length;n++)o[n]>r-1&&(void 0===o[n+1]&&(o[n+1]=0),o[n+1]+=o[n]/r|0,o[n]%=r)}return o.reverse()}x.absoluteValue=x.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),D(e)},x.ceil=function(){return D(new this.constructor(this),this.e+1,2)},x.clampedTo=x.clamp=function(e,t){var r=this,n=r.constructor;if(e=new n(e),t=new n(t),!e.s||!t.s)return new n(NaN);if(e.gt(t))throw Error(g+t);return r.cmp(e)<0?e:r.cmp(t)>0?t:new n(r)},x.comparedTo=x.cmp=function(e){var t,r,n,i,o=this,a=o.d,s=(e=new o.constructor(e)).d,u=o.s,c=e.s;if(!a||!s)return u&&c?u!==c?u:a===s?0:!a^u<0?1:-1:NaN;if(!a[0]||!s[0])return a[0]?u:s[0]?-c:0;if(u!==c)return u;if(o.e!==e.e)return o.e>e.e^u<0?1:-1;for(t=0,r=(n=a.length)<(i=s.length)?n:i;t<r;++t)if(a[t]!==s[t])return a[t]>s[t]^u<0?1:-1;return n===i?0:n>i^u<0?1:-1},x.cosine=x.cos=function(){var e,t,r=this,n=r.constructor;return r.d?r.d[0]?(e=n.precision,t=n.rounding,n.precision=e+Math.max(r.e,r.sd())+T,n.rounding=1,r=function(e,t){var r,n,i;if(t.isZero())return t;(n=t.d.length)<32?i=(1/Z(4,r=Math.ceil(n/3))).toString():(r=16,i="2.3283064365386962890625e-10"),e.precision+=r,t=J(e,1,t.times(i),new e(1));for(var o=r;o--;){var a=t.times(t);t=a.times(a).minus(a).times(8).plus(1)}return e.precision-=r,t}(n,Q(n,r)),n.precision=e,n.rounding=t,D(2==s||3==s?r.neg():r,e,t,!0)):new n(1):new n(NaN)},x.cubeRoot=x.cbrt=function(){var e,t,r,n,i,o,a,s,u,c,f=this,l=f.constructor;if(!f.isFinite()||f.isZero())return new l(f);for(p=!1,(o=f.s*_(f.s*f,1/3))&&Math.abs(o)!=1/0?n=new l(o.toString()):(r=L(f.d),(o=((e=f.e)-r.length+1)%3)&&(r+=1==o||-2==o?"0":"00"),o=_(r,1/3),e=w((e+1)/3)-(e%3==(e<0?-1:2)),(n=new l(r=o==1/0?"5e"+e:(r=o.toExponential()).slice(0,r.indexOf("e")+1)+e)).s=f.s),a=(e=l.precision)+3;;)if(c=(u=(s=n).times(s).times(s)).plus(f),n=B(c.plus(f).times(s),c.plus(u),a+2,1),L(s.d).slice(0,a)===(r=L(n.d)).slice(0,a)){if("9999"!=(r=r.slice(a-3,a+1))&&(i||"4999"!=r)){+r&&(+r.slice(1)||"5"!=r.charAt(0))||(D(n,e+1,1),t=!n.times(n).times(n).eq(f));break}if(!i&&(D(s,e+1,0),s.times(s).times(s).eq(f))){n=s;break}a+=4,i=1}return p=!0,D(n,e,l.rounding,t)},x.decimalPlaces=x.dp=function(){var e,t=this.d,r=NaN;if(t){if(r=((e=t.length-1)-w(this.e/T))*T,e=t[e])for(;e%10==0;e/=10)r--;r<0&&(r=0)}return r},x.dividedBy=x.div=function(e){return B(this,new this.constructor(e))},x.dividedToIntegerBy=x.divToInt=function(e){var t=this.constructor;return D(B(this,new t(e),0,1,1),t.precision,t.rounding)},x.equals=x.eq=function(e){return 0===this.cmp(e)},x.floor=function(){return D(new this.constructor(this),this.e+1,3)},x.greaterThan=x.gt=function(e){return this.cmp(e)>0},x.greaterThanOrEqualTo=x.gte=function(e){var t=this.cmp(e);return 1==t||0===t},x.hyperbolicCosine=x.cosh=function(){var e,t,r,n,i,o=this,a=o.constructor,s=new a(1);if(!o.isFinite())return new a(o.s?1/0:NaN);if(o.isZero())return s;r=a.precision,n=a.rounding,a.precision=r+Math.max(o.e,o.sd())+4,a.rounding=1,(i=o.d.length)<32?t=(1/Z(4,e=Math.ceil(i/3))).toString():(e=16,t="2.3283064365386962890625e-10"),o=J(a,1,o.times(t),new a(1),!0);for(var u,c=e,f=new a(8);c--;)u=o.times(o),o=s.minus(u.times(f.minus(u.times(f))));return D(o,a.precision=r,a.rounding=n,!0)},x.hyperbolicSine=x.sinh=function(){var e,t,r,n,i=this,o=i.constructor;if(!i.isFinite()||i.isZero())return new o(i);if(t=o.precision,r=o.rounding,o.precision=t+Math.max(i.e,i.sd())+4,o.rounding=1,(n=i.d.length)<3)i=J(o,2,i,i,!0);else{e=(e=1.4*Math.sqrt(n))>16?16:0|e,i=J(o,2,i=i.times(1/Z(5,e)),i,!0);for(var a,s=new o(5),u=new o(16),c=new o(20);e--;)a=i.times(i),i=i.times(s.plus(a.times(u.times(a).plus(c))))}return o.precision=t,o.rounding=r,D(i,t,r,!0)},x.hyperbolicTangent=x.tanh=function(){var e,t,r=this,n=r.constructor;return r.isFinite()?r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+7,n.rounding=1,B(r.sinh(),r.cosh(),n.precision=e,n.rounding=t)):new n(r.s)},x.inverseCosine=x.acos=function(){var e,t=this,r=t.constructor,n=t.abs().cmp(1),i=r.precision,o=r.rounding;return-1!==n?0===n?t.isNeg()?U(r,i,o):new r(0):new r(NaN):t.isZero()?U(r,i+4,o).times(.5):(r.precision=i+6,r.rounding=1,t=t.asin(),e=U(r,i+4,o).times(.5),r.precision=i,r.rounding=o,e.minus(t))},x.inverseHyperbolicCosine=x.acosh=function(){var e,t,r=this,n=r.constructor;return r.lte(1)?new n(r.eq(1)?0:NaN):r.isFinite()?(e=n.precision,t=n.rounding,n.precision=e+Math.max(Math.abs(r.e),r.sd())+4,n.rounding=1,p=!1,r=r.times(r).minus(1).sqrt().plus(r),p=!0,n.precision=e,n.rounding=t,r.ln()):new n(r)},x.inverseHyperbolicSine=x.asinh=function(){var e,t,r=this,n=r.constructor;return!r.isFinite()||r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+2*Math.max(Math.abs(r.e),r.sd())+6,n.rounding=1,p=!1,r=r.times(r).plus(1).sqrt().plus(r),p=!0,n.precision=e,n.rounding=t,r.ln())},x.inverseHyperbolicTangent=x.atanh=function(){var e,t,r,n,i=this,o=i.constructor;return i.isFinite()?i.e>=0?new o(i.abs().eq(1)?i.s/0:i.isZero()?i:NaN):(e=o.precision,t=o.rounding,n=i.sd(),Math.max(n,e)<2*-i.e-1?D(new o(i),e,t,!0):(o.precision=r=n-i.e,i=B(i.plus(1),new o(1).minus(i),r+e,1),o.precision=e+4,o.rounding=1,i=i.ln(),o.precision=e,o.rounding=t,i.times(.5))):new o(NaN)},x.inverseSine=x.asin=function(){var e,t,r,n,i=this,o=i.constructor;return i.isZero()?new o(i):(t=i.abs().cmp(1),r=o.precision,n=o.rounding,-1!==t?0===t?((e=U(o,r+4,n).times(.5)).s=i.s,e):new o(NaN):(o.precision=r+6,o.rounding=1,i=i.div(new o(1).minus(i.times(i)).sqrt().plus(1)).atan(),o.precision=r,o.rounding=n,i.times(2)))},x.inverseTangent=x.atan=function(){var e,t,r,n,i,o,a,s,u,c=this,f=c.constructor,l=f.precision,d=f.rounding;if(c.isFinite()){if(c.isZero())return new f(c);if(c.abs().eq(1)&&l+4<=N)return(a=U(f,l+4,d).times(.25)).s=c.s,a}else{if(!c.s)return new f(NaN);if(l+4<=N)return(a=U(f,l+4,d).times(.5)).s=c.s,a}for(f.precision=s=l+10,f.rounding=1,e=r=Math.min(28,s/T+2|0);e;--e)c=c.div(c.times(c).plus(1).sqrt().plus(1));for(p=!1,t=Math.ceil(s/T),n=1,u=c.times(c),a=new f(c),i=c;-1!==e;)if(i=i.times(u),o=a.minus(i.div(n+=2)),i=i.times(u),void 0!==(a=o.plus(i.div(n+=2))).d[t])for(e=t;a.d[e]===o.d[e]&&e--;);return r&&(a=a.times(2<<r-1)),p=!0,D(a,f.precision=l,f.rounding=d,!0)},x.isFinite=function(){return!!this.d},x.isInteger=x.isInt=function(){return!!this.d&&w(this.e/T)>this.d.length-2},x.isNaN=function(){return!this.s},x.isNegative=x.isNeg=function(){return this.s<0},x.isPositive=x.isPos=function(){return this.s>0},x.isZero=function(){return!!this.d&&0===this.d[0]},x.lessThan=x.lt=function(e){return this.cmp(e)<0},x.lessThanOrEqualTo=x.lte=function(e){return this.cmp(e)<1},x.logarithm=x.log=function(e){var t,r,n,i,o,a,s,u,c=this,f=c.constructor,l=f.precision,d=f.rounding;if(null==e)e=new f(10),t=!0;else{if(r=(e=new f(e)).d,e.s<0||!r||!r[0]||e.eq(1))return new f(NaN);t=e.eq(10)}if(r=c.d,c.s<0||!r||!r[0]||c.eq(1))return new f(r&&!r[0]?-1/0:1!=c.s?NaN:r?0:1/0);if(t)if(r.length>1)o=!0;else{for(i=r[0];i%10==0;)i/=10;o=1!==i}if(p=!1,a=G(c,s=l+5),n=t?F(f,s+10):G(e,s),R((u=B(a,n,s,1)).d,i=l,d))do{if(a=G(c,s+=10),n=t?F(f,s+10):G(e,s),u=B(a,n,s,1),!o){+L(u.d).slice(i+1,i+15)+1==1e14&&(u=D(u,l+1,0));break}}while(R(u.d,i+=10,d));return p=!0,D(u,l,d)},x.minus=x.sub=function(e){var t,r,n,i,o,a,s,u,c,f,l,d,h=this,y=h.constructor;if(e=new y(e),!h.d||!e.d)return h.s&&e.s?h.d?e.s=-e.s:e=new y(e.d||h.s!==e.s?h:NaN):e=new y(NaN),e;if(h.s!=e.s)return e.s=-e.s,h.plus(e);if(c=h.d,d=e.d,s=y.precision,u=y.rounding,!c[0]||!d[0]){if(d[0])e.s=-e.s;else{if(!c[0])return new y(3===u?-0:0);e=new y(h)}return p?D(e,s,u):e}if(r=w(e.e/T),f=w(h.e/T),c=c.slice(),o=f-r){for((l=o<0)?(t=c,o=-o,a=d.length):(t=d,r=f,a=c.length),o>(n=Math.max(Math.ceil(s/T),a)+2)&&(o=n,t.length=1),t.reverse(),n=o;n--;)t.push(0);t.reverse()}else{for((l=(n=c.length)<(a=d.length))&&(a=n),n=0;n<a;n++)if(c[n]!=d[n]){l=c[n]<d[n];break}o=0}for(l&&(t=c,c=d,d=t,e.s=-e.s),a=c.length,n=d.length-a;n>0;--n)c[a++]=0;for(n=d.length;n>o;){if(c[--n]<d[n]){for(i=n;i&&0===c[--i];)c[i]=M-1;--c[i],c[n]+=M}c[n]-=d[n]}for(;0===c[--a];)c.pop();for(;0===c[0];c.shift())--r;return c[0]?(e.d=c,e.e=j(c,r),p?D(e,s,u):e):new y(3===u?-0:0)},x.modulo=x.mod=function(e){var t,r=this,n=r.constructor;return e=new n(e),!r.d||!e.s||e.d&&!e.d[0]?new n(NaN):!e.d||r.d&&!r.d[0]?D(new n(r),n.precision,n.rounding):(p=!1,9==n.modulo?(t=B(r,e.abs(),0,3,1)).s*=e.s:t=B(r,e,0,n.modulo,1),t=t.times(e),p=!0,r.minus(t))},x.naturalExponential=x.exp=function(){return W(this)},x.naturalLogarithm=x.ln=function(){return G(this)},x.negated=x.neg=function(){var e=new this.constructor(this);return e.s=-e.s,D(e)},x.plus=x.add=function(e){var t,r,n,i,o,a,s,u,c,f,l=this,d=l.constructor;if(e=new d(e),!l.d||!e.d)return l.s&&e.s?l.d||(e=new d(e.d||l.s===e.s?l:NaN)):e=new d(NaN),e;if(l.s!=e.s)return e.s=-e.s,l.minus(e);if(c=l.d,f=e.d,s=d.precision,u=d.rounding,!c[0]||!f[0])return f[0]||(e=new d(l)),p?D(e,s,u):e;if(o=w(l.e/T),n=w(e.e/T),c=c.slice(),i=o-n){for(i<0?(r=c,i=-i,a=f.length):(r=f,n=o,a=c.length),i>(a=(o=Math.ceil(s/T))>a?o+1:a+1)&&(i=a,r.length=1),r.reverse();i--;)r.push(0);r.reverse()}for((a=c.length)-(i=f.length)<0&&(i=a,r=f,f=c,c=r),t=0;i;)t=(c[--i]=c[i]+f[i]+t)/M|0,c[i]%=M;for(t&&(c.unshift(t),++n),a=c.length;0==c[--a];)c.pop();return e.d=c,e.e=j(c,n),p?D(e,s,u):e},x.precision=x.sd=function(e){var t,r=this;if(void 0!==e&&e!==!!e&&1!==e&&0!==e)throw Error(g+e);return r.d?(t=V(r.d),e&&r.e+1>t&&(t=r.e+1)):t=NaN,t},x.round=function(){var e=this,t=e.constructor;return D(new t(e),e.e+1,t.rounding)},x.sine=x.sin=function(){var e,t,r=this,n=r.constructor;return r.isFinite()?r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+Math.max(r.e,r.sd())+T,n.rounding=1,r=function(e,t){var r,n=t.d.length;if(n<3)return t.isZero()?t:J(e,2,t,t);r=(r=1.4*Math.sqrt(n))>16?16:0|r,t=J(e,2,t=t.times(1/Z(5,r)),t);for(var i,o=new e(5),a=new e(16),s=new e(20);r--;)i=t.times(t),t=t.times(o.plus(i.times(a.times(i).minus(s))));return t}(n,Q(n,r)),n.precision=e,n.rounding=t,D(s>2?r.neg():r,e,t,!0)):new n(NaN)},x.squareRoot=x.sqrt=function(){var e,t,r,n,i,o,a=this,s=a.d,u=a.e,c=a.s,f=a.constructor;if(1!==c||!s||!s[0])return new f(!c||c<0&&(!s||s[0])?NaN:s?a:1/0);for(p=!1,0==(c=Math.sqrt(+a))||c==1/0?(((t=L(s)).length+u)%2==0&&(t+="0"),c=Math.sqrt(t),u=w((u+1)/2)-(u<0||u%2),n=new f(t=c==1/0?"5e"+u:(t=c.toExponential()).slice(0,t.indexOf("e")+1)+u)):n=new f(c.toString()),r=(u=f.precision)+3;;)if(n=(o=n).plus(B(a,o,r+2,1)).times(.5),L(o.d).slice(0,r)===(t=L(n.d)).slice(0,r)){if("9999"!=(t=t.slice(r-3,r+1))&&(i||"4999"!=t)){+t&&(+t.slice(1)||"5"!=t.charAt(0))||(D(n,u+1,1),e=!n.times(n).eq(a));break}if(!i&&(D(o,u+1,0),o.times(o).eq(a))){n=o;break}r+=4,i=1}return p=!0,D(n,u,f.rounding,e)},x.tangent=x.tan=function(){var e,t,r=this,n=r.constructor;return r.isFinite()?r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+10,n.rounding=1,(r=r.sin()).s=1,r=B(r,new n(1).minus(r.times(r)).sqrt(),e+10,0),n.precision=e,n.rounding=t,D(2==s||4==s?r.neg():r,e,t,!0)):new n(NaN)},x.times=x.mul=function(e){var t,r,n,i,o,a,s,u,c,f=this,l=f.constructor,d=f.d,h=(e=new l(e)).d;if(e.s*=f.s,!(d&&d[0]&&h&&h[0]))return new l(!e.s||d&&!d[0]&&!h||h&&!h[0]&&!d?NaN:d&&h?0*e.s:e.s/0);for(r=w(f.e/T)+w(e.e/T),(u=d.length)<(c=h.length)&&(o=d,d=h,h=o,a=u,u=c,c=a),o=[],n=a=u+c;n--;)o.push(0);for(n=c;--n>=0;){for(t=0,i=u+n;i>n;)s=o[i]+h[n]*d[i-n-1]+t,o[i--]=s%M|0,t=s/M|0;o[i]=(o[i]+t)%M|0}for(;!o[--a];)o.pop();return t?++r:o.shift(),e.d=o,e.e=j(o,r),p?D(e,l.precision,l.rounding):e},x.toBinary=function(e,t){return ee(this,2,e,t)},x.toDecimalPlaces=x.toDP=function(e,t){var r=this,n=r.constructor;return r=new n(r),void 0===e?r:(k(e,0,c),void 0===t?t=n.rounding:k(t,0,8),D(r,e+r.e+1,t))},x.toExponential=function(e,t){var r,n=this,i=n.constructor;return void 0===e?r=C(n,!0):(k(e,0,c),void 0===t?t=i.rounding:k(t,0,8),r=C(n=D(new i(n),e+1,t),!0,e+1)),n.isNeg()&&!n.isZero()?"-"+r:r},x.toFixed=function(e,t){var r,n,i=this,o=i.constructor;return void 0===e?r=C(i):(k(e,0,c),void 0===t?t=o.rounding:k(t,0,8),r=C(n=D(new o(i),e+i.e+1,t),!1,e+n.e+1)),i.isNeg()&&!i.isZero()?"-"+r:r},x.toFraction=function(e){var t,r,n,i,o,a,s,u,c,f,l,d,h=this,y=h.d,b=h.constructor;if(!y)return new b(h);if(c=r=new b(1),n=u=new b(0),a=(o=(t=new b(n)).e=V(y)-h.e-1)%T,t.d[0]=_(10,a<0?T+a:a),null==e)e=o>0?t:c;else{if(!(s=new b(e)).isInt()||s.lt(c))throw Error(g+s);e=s.gt(t)?o>0?t:c:s}for(p=!1,s=new b(L(y)),f=b.precision,b.precision=o=y.length*T*2;l=B(s,t,0,1,1),1!=(i=r.plus(l.times(n))).cmp(e);)r=n,n=i,i=c,c=u.plus(l.times(i)),u=i,i=t,t=s.minus(l.times(i)),s=i;return i=B(e.minus(r),n,0,1,1),u=u.plus(i.times(c)),r=r.plus(i.times(n)),u.s=c.s=h.s,d=B(c,n,o,1).minus(h).abs().cmp(B(u,r,o,1).minus(h).abs())<1?[c,n]:[u,r],b.precision=f,p=!0,d},x.toHexadecimal=x.toHex=function(e,t){return ee(this,16,e,t)},x.toNearest=function(e,t){var r=this,n=r.constructor;if(r=new n(r),null==e){if(!r.d)return r;e=new n(1),t=n.rounding}else{if(e=new n(e),void 0===t?t=n.rounding:k(t,0,8),!r.d)return e.s?r:e;if(!e.d)return e.s&&(e.s=r.s),e}return e.d[0]?(p=!1,r=B(r,e,0,t,1).times(e),p=!0,D(r)):(e.s=r.s,r=e),r},x.toNumber=function(){return+this},x.toOctal=function(e,t){return ee(this,8,e,t)},x.toPower=x.pow=function(e){var t,r,n,i,o,a,s=this,u=s.constructor,c=+(e=new u(e));if(!(s.d&&e.d&&s.d[0]&&e.d[0]))return new u(_(+s,c));if((s=new u(s)).eq(1))return s;if(n=u.precision,o=u.rounding,e.eq(1))return D(s,n,o);if((t=w(e.e/T))>=e.d.length-1&&(r=c<0?-c:c)<=9007199254740991)return i=z(u,s,r,n),e.s<0?new u(1).div(i):D(i,n,o);if((a=s.s)<0){if(t<e.d.length-1)return new u(NaN);if(0==(1&e.d[t])&&(a=1),0==s.e&&1==s.d[0]&&1==s.d.length)return s.s=a,s}return(t=0!=(r=_(+s,c))&&isFinite(r)?new u(r+"").e:w(c*(Math.log("0."+L(s.d))/Math.LN10+s.e+1)))>u.maxE+1||t<u.minE-1?new u(t>0?a/0:0):(p=!1,u.rounding=s.s=1,r=Math.min(12,(t+"").length),(i=W(e.times(G(s,n+r)),n)).d&&R((i=D(i,n+5,1)).d,n,o)&&(t=n+10,+L((i=D(W(e.times(G(s,t+r)),t),t+5,1)).d).slice(n+1,n+15)+1==1e14&&(i=D(i,n+1,0))),i.s=a,p=!0,u.rounding=o,D(i,n,o))},x.toPrecision=function(e,t){var r,n=this,i=n.constructor;return void 0===e?r=C(n,n.e<=i.toExpNeg||n.e>=i.toExpPos):(k(e,1,c),void 0===t?t=i.rounding:k(t,0,8),r=C(n=D(new i(n),e,t),e<=n.e||n.e<=i.toExpNeg,e)),n.isNeg()&&!n.isZero()?"-"+r:r},x.toSignificantDigits=x.toSD=function(e,t){var r=this.constructor;return void 0===e?(e=r.precision,t=r.rounding):(k(e,1,c),void 0===t?t=r.rounding:k(t,0,8)),D(new r(this),e,t)},x.toString=function(){var e=this,t=e.constructor,r=C(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()&&!e.isZero()?"-"+r:r},x.truncated=x.trunc=function(){return D(new this.constructor(this),this.e+1,1)},x.valueOf=x.toJSON=function(){var e=this,t=e.constructor,r=C(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()?"-"+r:r};var B=function(){function e(e,t,r){var n,i=0,o=e.length;for(e=e.slice();o--;)n=e[o]*t+i,e[o]=n%r|0,i=n/r|0;return i&&e.unshift(i),e}function t(e,t,r,n){var i,o;if(r!=n)o=r>n?1:-1;else for(i=o=0;i<r;i++)if(e[i]!=t[i]){o=e[i]>t[i]?1:-1;break}return o}function r(e,t,r,n){for(var i=0;r--;)e[r]-=i,i=e[r]<t[r]?1:0,e[r]=i*n+e[r]-t[r];for(;!e[0]&&e.length>1;)e.shift()}return function(n,i,o,s,u,c){var f,l,d,h,p,y,g,b,m,v,_,E,S,A,O,I,N,x,L,k,R=n.constructor,P=n.s==i.s?1:-1,B=n.d,C=i.d;if(!(B&&B[0]&&C&&C[0]))return new R(n.s&&i.s&&(B?!C||B[0]!=C[0]:C)?B&&0==B[0]||!C?0*P:P/0:NaN);for(c?(p=1,l=n.e-i.e):(c=M,p=T,l=w(n.e/p)-w(i.e/p)),L=C.length,N=B.length,v=(m=new R(P)).d=[],d=0;C[d]==(B[d]||0);d++);if(C[d]>(B[d]||0)&&l--,null==o?(A=o=R.precision,s=R.rounding):A=u?o+(n.e-i.e)+1:o,A<0)v.push(1),y=!0;else{if(A=A/p+2|0,d=0,1==L){for(h=0,C=C[0],A++;(d<N||h)&&A--;d++)O=h*c+(B[d]||0),v[d]=O/C|0,h=O%C|0;y=h||d<N}else{for((h=c/(C[0]+1)|0)>1&&(C=e(C,h,c),B=e(B,h,c),L=C.length,N=B.length),I=L,E=(_=B.slice(0,L)).length;E<L;)_[E++]=0;(k=C.slice()).unshift(0),x=C[0],C[1]>=c/2&&++x;do{h=0,(f=t(C,_,L,E))<0?(S=_[0],L!=E&&(S=S*c+(_[1]||0)),(h=S/x|0)>1?(h>=c&&(h=c-1),1==(f=t(g=e(C,h,c),_,b=g.length,E=_.length))&&(h--,r(g,L<b?k:C,b,c))):(0==h&&(f=h=1),g=C.slice()),(b=g.length)<E&&g.unshift(0),r(_,g,E,c),-1==f&&(f=t(C,_,L,E=_.length))<1&&(h++,r(_,L<E?k:C,E,c)),E=_.length):0===f&&(h++,_=[0]),v[d++]=h,f&&_[0]?_[E++]=B[I]||0:(_=[B[I]],E=1)}while((I++<N||void 0!==_[0])&&A--);y=void 0!==_[0]}v[0]||v.shift()}if(1==p)m.e=l,a=y;else{for(d=1,h=v[0];h>=10;h/=10)d++;m.e=d+l*p-1,D(m,u?o+m.e+1:o,s,y)}return m}}();function D(e,t,r,n){var i,o,a,s,u,c,f,l,d,h=e.constructor;e:if(null!=t){if(!(l=e.d))return e;for(i=1,s=l[0];s>=10;s/=10)i++;if((o=t-i)<0)o+=T,a=t,u=(f=l[d=0])/_(10,i-a-1)%10|0;else if((d=Math.ceil((o+1)/T))>=(s=l.length)){if(!n)break e;for(;s++<=d;)l.push(0);f=u=0,i=1,a=(o%=T)-T+1}else{for(f=s=l[d],i=1;s>=10;s/=10)i++;u=(a=(o%=T)-T+i)<0?0:f/_(10,i-a-1)%10|0}if(n=n||t<0||void 0!==l[d+1]||(a<0?f:f%_(10,i-a-1)),c=r<4?(u||n)&&(0==r||r==(e.s<0?3:2)):u>5||5==u&&(4==r||n||6==r&&(o>0?a>0?f/_(10,i-a):0:l[d-1])%10&1||r==(e.s<0?8:7)),t<1||!l[0])return l.length=0,c?(t-=e.e+1,l[0]=_(10,(T-t%T)%T),e.e=-t||0):l[0]=e.e=0,e;if(0==o?(l.length=d,s=1,d--):(l.length=d+1,s=_(10,T-o),l[d]=a>0?(f/_(10,i-a)%_(10,a)|0)*s:0),c)for(;;){if(0==d){for(o=1,a=l[0];a>=10;a/=10)o++;for(a=l[0]+=s,s=1;a>=10;a/=10)s++;o!=s&&(e.e++,l[0]==M&&(l[0]=1));break}if(l[d]+=s,l[d]!=M)break;l[d--]=0,s=1}for(o=l.length;0===l[--o];)l.pop()}return p&&(e.e>h.maxE?(e.d=null,e.e=NaN):e.e<h.minE&&(e.e=0,e.d=[0])),e}function C(e,t,r){if(!e.isFinite())return Y(e);var n,i=e.e,o=L(e.d),a=o.length;return t?(r&&(n=r-a)>0?o=o.charAt(0)+"."+o.slice(1)+H(n):a>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(e.e<0?"e":"e+")+e.e):i<0?(o="0."+H(-i-1)+o,r&&(n=r-a)>0&&(o+=H(n))):i>=a?(o+=H(i+1-a),r&&(n=r-i-1)>0&&(o=o+"."+H(n))):((n=i+1)<a&&(o=o.slice(0,n)+"."+o.slice(n)),r&&(n=r-a)>0&&(i+1===a&&(o+="."),o+=H(n))),o}function j(e,t){var r=e[0];for(t*=T;r>=10;r/=10)t++;return t}function F(e,t,r){if(t>I)throw p=!0,r&&(e.precision=r),Error(b);return D(new e(l),t,1,!0)}function U(e,t,r){if(t>N)throw Error(b);return D(new e(d),t,r,!0)}function V(e){var t=e.length-1,r=t*T+1;if(t=e[t]){for(;t%10==0;t/=10)r--;for(t=e[0];t>=10;t/=10)r++}return r}function H(e){for(var t="";e--;)t+="0";return t}function z(e,t,r,n){var i,o=new e(1),a=Math.ceil(n/T+4);for(p=!1;;){if(r%2&&te((o=o.times(t)).d,a)&&(i=!0),0===(r=w(r/2))){r=o.d.length-1,i&&0===o.d[r]&&++o.d[r];break}te((t=t.times(t)).d,a)}return p=!0,o}function q(e){return 1&e.d[e.d.length-1]}function K(e,t,r){for(var n,i=new e(t[0]),o=0;++o<t.length;){if(!(n=new e(t[o])).s){i=n;break}i[r](n)&&(i=n)}return i}function W(e,t){var r,n,i,o,a,s,u,c=0,f=0,l=0,d=e.constructor,h=d.rounding,y=d.precision;if(!e.d||!e.d[0]||e.e>17)return new d(e.d?e.d[0]?e.s<0?0:1/0:1:e.s?e.s<0?0:e:NaN);for(null==t?(p=!1,u=y):u=t,s=new d(.03125);e.e>-2;)e=e.times(s),l+=5;for(u+=n=Math.log(_(2,l))/Math.LN10*2+5|0,r=o=a=new d(1),d.precision=u;;){if(o=D(o.times(e),u,1),r=r.times(++f),L((s=a.plus(B(o,r,u,1))).d).slice(0,u)===L(a.d).slice(0,u)){for(i=l;i--;)a=D(a.times(a),u,1);if(null!=t)return d.precision=y,a;if(!(c<3&&R(a.d,u-n,h,c)))return D(a,d.precision=y,h,p=!0);d.precision=u+=10,r=o=s=new d(1),f=0,c++}a=s}}function G(e,t){var r,n,i,o,a,s,u,c,f,l,d,h=1,y=e,g=y.d,b=y.constructor,m=b.rounding,v=b.precision;if(y.s<0||!g||!g[0]||!y.e&&1==g[0]&&1==g.length)return new b(g&&!g[0]?-1/0:1!=y.s?NaN:g?0:y);if(null==t?(p=!1,f=v):f=t,b.precision=f+=10,n=(r=L(g)).charAt(0),!(Math.abs(o=y.e)<15e14))return c=F(b,f+2,v).times(o+""),y=G(new b(n+"."+r.slice(1)),f-10).plus(c),b.precision=v,null==t?D(y,v,m,p=!0):y;for(;n<7&&1!=n||1==n&&r.charAt(1)>3;)n=(r=L((y=y.times(e)).d)).charAt(0),h++;for(o=y.e,n>1?(y=new b("0."+r),o++):y=new b(n+"."+r.slice(1)),l=y,u=a=y=B(y.minus(1),y.plus(1),f,1),d=D(y.times(y),f,1),i=3;;){if(a=D(a.times(d),f,1),L((c=u.plus(B(a,new b(i),f,1))).d).slice(0,f)===L(u.d).slice(0,f)){if(u=u.times(2),0!==o&&(u=u.plus(F(b,f+2,v).times(o+""))),u=B(u,new b(h),f,1),null!=t)return b.precision=v,u;if(!R(u.d,f-10,m,s))return D(u,b.precision=v,m,p=!0);b.precision=f+=10,c=a=y=B(l.minus(1),l.plus(1),f,1),d=D(y.times(y),f,1),i=s=1}u=c,i+=2}}function Y(e){return String(e.s*e.s/0)}function $(e,t){var r,n,i;for((r=t.indexOf("."))>-1&&(t=t.replace(".","")),(n=t.search(/e/i))>0?(r<0&&(r=n),r+=+t.slice(n+1),t=t.substring(0,n)):r<0&&(r=t.length),n=0;48===t.charCodeAt(n);n++);for(i=t.length;48===t.charCodeAt(i-1);--i);if(t=t.slice(n,i)){if(i-=n,e.e=r=r-n-1,e.d=[],n=(r+1)%T,r<0&&(n+=T),n<i){for(n&&e.d.push(+t.slice(0,n)),i-=T;n<i;)e.d.push(+t.slice(n,n+=T));t=t.slice(n),n=T-t.length}else n-=i;for(;n--;)t+="0";e.d.push(+t),p&&(e.e>e.constructor.maxE?(e.d=null,e.e=NaN):e.e<e.constructor.minE&&(e.e=0,e.d=[0]))}else e.e=0,e.d=[0];return e}function X(e,t){var r,n,i,a,s,u,c,f,l;if(t.indexOf("_")>-1){if(t=t.replace(/(\d)_(?=\d)/g,"$1"),O.test(t))return $(e,t)}else if("Infinity"===t||"NaN"===t)return+t||(e.s=NaN),e.e=NaN,e.d=null,e;if(S.test(t))r=16,t=t.toLowerCase();else if(E.test(t))r=2;else{if(!A.test(t))throw Error(g+t);r=8}for((a=t.search(/p/i))>0?(c=+t.slice(a+1),t=t.substring(2,a)):t=t.slice(2),s=(a=t.indexOf("."))>=0,n=e.constructor,s&&(a=(u=(t=t.replace(".","")).length)-a,i=z(n,new n(r),a,2*a)),a=l=(f=P(t,r,M)).length-1;0===f[a];--a)f.pop();return a<0?new n(0*e.s):(e.e=j(f,l),e.d=f,p=!1,s&&(e=B(e,i,4*u)),c&&(e=e.times(Math.abs(c)<54?_(2,c):o.pow(2,c))),p=!0,e)}function J(e,t,r,n,i){var o,a,s,u,c=e.precision,f=Math.ceil(c/T);for(p=!1,u=r.times(r),s=new e(n);;){if(a=B(s.times(u),new e(t++*t++),c,1),s=i?n.plus(a):n.minus(a),n=B(a.times(u),new e(t++*t++),c,1),void 0!==(a=s.plus(n)).d[f]){for(o=f;a.d[o]===s.d[o]&&o--;);if(-1==o)break}o=s,s=n,n=a,a=o}return p=!0,a.d.length=f+1,a}function Z(e,t){for(var r=e;--t;)r*=e;return r}function Q(e,t){var r,n=t.s<0,i=U(e,e.precision,1),o=i.times(.5);if((t=t.abs()).lte(o))return s=n?4:1,t;if((r=t.divToInt(i)).isZero())s=n?3:2;else{if((t=t.minus(r.times(i))).lte(o))return s=q(r)?n?2:3:n?4:1,t;s=q(r)?n?1:4:n?3:2}return t.minus(i).abs()}function ee(e,t,r,n){var i,o,s,u,l,d,h,p,y,g=e.constructor,b=void 0!==r;if(b?(k(r,1,c),void 0===n?n=g.rounding:k(n,0,8)):(r=g.precision,n=g.rounding),e.isFinite()){for(b?(i=2,16==t?r=4*r-3:8==t&&(r=3*r-2)):i=t,(s=(h=C(e)).indexOf("."))>=0&&(h=h.replace(".",""),(y=new g(1)).e=h.length-s,y.d=P(C(y),10,i),y.e=y.d.length),o=l=(p=P(h,10,i)).length;0==p[--l];)p.pop();if(p[0]){if(s<0?o--:((e=new g(e)).d=p,e.e=o,p=(e=B(e,y,r,n,0,i)).d,o=e.e,d=a),s=p[r],u=i/2,d=d||void 0!==p[r+1],d=n<4?(void 0!==s||d)&&(0===n||n===(e.s<0?3:2)):s>u||s===u&&(4===n||d||6===n&&1&p[r-1]||n===(e.s<0?8:7)),p.length=r,d)for(;++p[--r]>i-1;)p[r]=0,r||(++o,p.unshift(1));for(l=p.length;!p[l-1];--l);for(s=0,h="";s<l;s++)h+=f.charAt(p[s]);if(b){if(l>1)if(16==t||8==t){for(s=16==t?4:3,--l;l%s;l++)h+="0";for(l=(p=P(h,i,t)).length;!p[l-1];--l);for(s=1,h="1.";s<l;s++)h+=f.charAt(p[s])}else h=h.charAt(0)+"."+h.slice(1);h=h+(o<0?"p":"p+")+o}else if(o<0){for(;++o;)h="0"+h;h="0."+h}else if(++o>l)for(o-=l;o--;)h+="0";else o<l&&(h=h.slice(0,o)+"."+h.slice(o))}else h=b?"0p+0":"0";h=(16==t?"0x":2==t?"0b":8==t?"0o":"")+h}else h=Y(e);return e.s<0?"-"+h:h}function te(e,t){if(e.length>t)return e.length=t,!0}function re(e){return new this(e).abs()}function ne(e){return new this(e).acos()}function ie(e){return new this(e).acosh()}function oe(e,t){return new this(e).plus(t)}function ae(e){return new this(e).asin()}function se(e){return new this(e).asinh()}function ue(e){return new this(e).atan()}function ce(e){return new this(e).atanh()}function fe(e,t){e=new this(e),t=new this(t);var r,n=this.precision,i=this.rounding,o=n+4;return e.s&&t.s?e.d||t.d?!t.d||e.isZero()?(r=t.s<0?U(this,n,i):new this(0)).s=e.s:!e.d||t.isZero()?(r=U(this,o,1).times(.5)).s=e.s:t.s<0?(this.precision=o,this.rounding=1,r=this.atan(B(e,t,o,1)),t=U(this,o,1),this.precision=n,this.rounding=i,r=e.s<0?r.minus(t):r.plus(t)):r=this.atan(B(e,t,o,1)):(r=U(this,o,1).times(t.s>0?.25:.75)).s=e.s:r=new this(NaN),r}function le(e){return new this(e).cbrt()}function de(e){return D(e=new this(e),e.e+1,2)}function he(e,t,r){return new this(e).clamp(t,r)}function pe(e){if(!e||"object"!=typeof e)throw Error(y+"Object expected");var t,r,n,i=!0===e.defaults,o=["precision",1,c,"rounding",0,8,"toExpNeg",-u,0,"toExpPos",0,u,"maxE",0,u,"minE",-u,0,"modulo",0,9];for(t=0;t<o.length;t+=3)if(r=o[t],i&&(this[r]=h[r]),void 0!==(n=e[r])){if(!(w(n)===n&&n>=o[t+1]&&n<=o[t+2]))throw Error(g+r+": "+n);this[r]=n}if(r="crypto",i&&(this[r]=h[r]),void 0!==(n=e[r])){if(!0!==n&&!1!==n&&0!==n&&1!==n)throw Error(g+r+": "+n);if(n){if("undefined"==typeof crypto||!crypto||!crypto.getRandomValues&&!crypto.randomBytes)throw Error(m);this[r]=!0}else this[r]=!1}return this}function ye(e){return new this(e).cos()}function ge(e){return new this(e).cosh()}function be(e,t){return new this(e).div(t)}function me(e){return new this(e).exp()}function ve(e){return D(e=new this(e),e.e+1,3)}function we(){var e,t,r=new this(0);for(p=!1,e=0;e<arguments.length;)if((t=new this(arguments[e++])).d)r.d&&(r=r.plus(t.times(t)));else{if(t.s)return p=!0,new this(1/0);r=t}return p=!0,r.sqrt()}function _e(e){return e instanceof o||e&&e.toStringTag===v||!1}function Ee(e){return new this(e).ln()}function Se(e,t){return new this(e).log(t)}function Ae(e){return new this(e).log(2)}function Oe(e){return new this(e).log(10)}function Me(){return K(this,arguments,"lt")}function Te(){return K(this,arguments,"gt")}function Ie(e,t){return new this(e).mod(t)}function Ne(e,t){return new this(e).mul(t)}function xe(e,t){return new this(e).pow(t)}function Le(e){var t,r,n,i,o=0,a=new this(1),s=[];if(void 0===e?e=this.precision:k(e,1,c),n=Math.ceil(e/T),this.crypto)if(crypto.getRandomValues)for(t=crypto.getRandomValues(new Uint32Array(n));o<n;)(i=t[o])>=429e7?t[o]=crypto.getRandomValues(new Uint32Array(1))[0]:s[o++]=i%1e7;else{if(!crypto.randomBytes)throw Error(m);for(t=crypto.randomBytes(n*=4);o<n;)(i=t[o]+(t[o+1]<<8)+(t[o+2]<<16)+((127&t[o+3])<<24))>=214e7?crypto.randomBytes(4).copy(t,o):(s.push(i%1e7),o+=4);o=n/4}else for(;o<n;)s[o++]=1e7*Math.random()|0;for(n=s[--o],e%=T,n&&e&&(i=_(10,T-e),s[o]=(n/i|0)*i);0===s[o];o--)s.pop();if(o<0)r=0,s=[0];else{for(r=-1;0===s[0];r-=T)s.shift();for(n=1,i=s[0];i>=10;i/=10)n++;n<T&&(r-=T-n)}return a.e=r,a.d=s,a}function ke(e){return D(e=new this(e),e.e+1,this.rounding)}function Re(e){return(e=new this(e)).d?e.d[0]?e.s:0*e.s:e.s||NaN}function Pe(e){return new this(e).sin()}function Be(e){return new this(e).sinh()}function De(e){return new this(e).sqrt()}function Ce(e,t){return new this(e).sub(t)}function je(){var e=0,t=arguments,r=new this(t[e]);for(p=!1;r.s&&++e<t.length;)r=r.plus(t[e]);return p=!0,D(r,this.precision,this.rounding)}function Fe(e){return new this(e).tan()}function Ue(e){return new this(e).tanh()}function Ve(e){return D(e=new this(e),e.e+1,1)}(o=function e(t){var r,n,i;function o(e){var t,r,n,i=this;if(!(i instanceof o))return new o(e);if(i.constructor=o,_e(e))return i.s=e.s,void(p?!e.d||e.e>o.maxE?(i.e=NaN,i.d=null):e.e<o.minE?(i.e=0,i.d=[0]):(i.e=e.e,i.d=e.d.slice()):(i.e=e.e,i.d=e.d?e.d.slice():e.d));if("number"==(n=typeof e)){if(0===e)return i.s=1/e<0?-1:1,i.e=0,void(i.d=[0]);if(e<0?(e=-e,i.s=-1):i.s=1,e===~~e&&e<1e7){for(t=0,r=e;r>=10;r/=10)t++;return void(p?t>o.maxE?(i.e=NaN,i.d=null):t<o.minE?(i.e=0,i.d=[0]):(i.e=t,i.d=[e]):(i.e=t,i.d=[e]))}return 0*e!=0?(e||(i.s=NaN),i.e=NaN,void(i.d=null)):$(i,e.toString())}if("string"!==n)throw Error(g+e);return 45===(r=e.charCodeAt(0))?(e=e.slice(1),i.s=-1):(43===r&&(e=e.slice(1)),i.s=1),O.test(e)?$(i,e):X(i,e)}if(o.prototype=x,o.ROUND_UP=0,o.ROUND_DOWN=1,o.ROUND_CEIL=2,o.ROUND_FLOOR=3,o.ROUND_HALF_UP=4,o.ROUND_HALF_DOWN=5,o.ROUND_HALF_EVEN=6,o.ROUND_HALF_CEIL=7,o.ROUND_HALF_FLOOR=8,o.EUCLID=9,o.config=o.set=pe,o.clone=e,o.isDecimal=_e,o.abs=re,o.acos=ne,o.acosh=ie,o.add=oe,o.asin=ae,o.asinh=se,o.atan=ue,o.atanh=ce,o.atan2=fe,o.cbrt=le,o.ceil=de,o.clamp=he,o.cos=ye,o.cosh=ge,o.div=be,o.exp=me,o.floor=ve,o.hypot=we,o.ln=Ee,o.log=Se,o.log10=Oe,o.log2=Ae,o.max=Me,o.min=Te,o.mod=Ie,o.mul=Ne,o.pow=xe,o.random=Le,o.round=ke,o.sign=Re,o.sin=Pe,o.sinh=Be,o.sqrt=De,o.sub=Ce,o.sum=je,o.tan=Fe,o.tanh=Ue,o.trunc=Ve,void 0===t&&(t={}),t&&!0!==t.defaults)for(i=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],r=0;r<i.length;)t.hasOwnProperty(n=i[r++])||(t[n]=this[n]);return o.config(t),o}(h)).prototype.constructor=o,o.default=o.Decimal=o,l=new o(l),d=new o(d),void 0===(n=function(){return o}.call(t,r,t,e))||(e.exports=n)}()},31907:(e,t,r)=>{"use strict";var n=r(33025),i="function"==typeof Symbol&&"symbol"==typeof Symbol("foo"),o=Object.prototype.toString,a=Array.prototype.concat,s=Object.defineProperty,u=r(23280)(),c=s&&u,f=function(e,t,r,n){if(t in e)if(!0===n){if(e[t]===r)return}else if("function"!=typeof(i=n)||"[object Function]"!==o.call(i)||!n())return;var i;c?s(e,t,{configurable:!0,enumerable:!1,value:r,writable:!0}):e[t]=r},l=function(e,t){var r=arguments.length>2?arguments[2]:{},o=n(t);i&&(o=a.call(o,Object.getOwnPropertySymbols(t)));for(var s=0;s<o.length;s+=1)f(e,o[s],t[o[s]],r[o[s]])};l.supportsDescriptors=!!c,e.exports=l},99417:(e,t,r)=>{"use strict";t.utils=r(68559),t.Cipher=r(47094),t.DES=r(30349),t.CBC=r(86768),t.EDE=r(87118)},86768:(e,t,r)=>{"use strict";var n=r(44647),i=r(19105),o={};function a(e){n.equal(e.length,8,"Invalid IV length"),this.iv=new Array(8);for(var t=0;t<this.iv.length;t++)this.iv[t]=e[t]}t.instantiate=function(e){function t(t){e.call(this,t),this._cbcInit()}i(t,e);for(var r=Object.keys(o),n=0;n<r.length;n++){var a=r[n];t.prototype[a]=o[a]}return t.create=function(e){return new t(e)},t},o._cbcInit=function(){var e=new a(this.options.iv);this._cbcState=e},o._update=function(e,t,r,n){var i=this._cbcState,o=this.constructor.super_.prototype,a=i.iv;if("encrypt"===this.type){for(var s=0;s<this.blockSize;s++)a[s]^=e[t+s];for(o._update.call(this,a,0,r,n),s=0;s<this.blockSize;s++)a[s]=r[n+s]}else{for(o._update.call(this,e,t,r,n),s=0;s<this.blockSize;s++)r[n+s]^=a[s];for(s=0;s<this.blockSize;s++)a[s]=e[t+s]}}},47094:(e,t,r)=>{"use strict";var n=r(44647);function i(e){this.options=e,this.type=this.options.type,this.blockSize=8,this._init(),this.buffer=new Array(this.blockSize),this.bufferOff=0}e.exports=i,i.prototype._init=function(){},i.prototype.update=function(e){return 0===e.length?[]:"decrypt"===this.type?this._updateDecrypt(e):this._updateEncrypt(e)},i.prototype._buffer=function(e,t){for(var r=Math.min(this.buffer.length-this.bufferOff,e.length-t),n=0;n<r;n++)this.buffer[this.bufferOff+n]=e[t+n];return this.bufferOff+=r,r},i.prototype._flushBuffer=function(e,t){return this._update(this.buffer,0,e,t),this.bufferOff=0,this.blockSize},i.prototype._updateEncrypt=function(e){var t=0,r=0,n=(this.bufferOff+e.length)/this.blockSize|0,i=new Array(n*this.blockSize);0!==this.bufferOff&&(t+=this._buffer(e,t),this.bufferOff===this.buffer.length&&(r+=this._flushBuffer(i,r)));for(var o=e.length-(e.length-t)%this.blockSize;t<o;t+=this.blockSize)this._update(e,t,i,r),r+=this.blockSize;for(;t<e.length;t++,this.bufferOff++)this.buffer[this.bufferOff]=e[t];return i},i.prototype._updateDecrypt=function(e){for(var t=0,r=0,n=Math.ceil((this.bufferOff+e.length)/this.blockSize)-1,i=new Array(n*this.blockSize);n>0;n--)t+=this._buffer(e,t),r+=this._flushBuffer(i,r);return t+=this._buffer(e,t),i},i.prototype.final=function(e){var t,r;return e&&(t=this.update(e)),r="encrypt"===this.type?this._finalEncrypt():this._finalDecrypt(),t?t.concat(r):r},i.prototype._pad=function(e,t){if(0===t)return!1;for(;t<e.length;)e[t++]=0;return!0},i.prototype._finalEncrypt=function(){if(!this._pad(this.buffer,this.bufferOff))return[];var e=new Array(this.blockSize);return this._update(this.buffer,0,e,0),e},i.prototype._unpad=function(e){return e},i.prototype._finalDecrypt=function(){n.equal(this.bufferOff,this.blockSize,"Not enough data to decrypt");var e=new Array(this.blockSize);return this._flushBuffer(e,0),this._unpad(e)}},30349:(e,t,r)=>{"use strict";var n=r(44647),i=r(19105),o=r(68559),a=r(47094);function s(){this.tmp=new Array(2),this.keys=null}function u(e){a.call(this,e);var t=new s;this._desState=t,this.deriveKeys(t,e.key)}i(u,a),e.exports=u,u.create=function(e){return new u(e)};var c=[1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1];u.prototype.deriveKeys=function(e,t){e.keys=new Array(32),n.equal(t.length,this.blockSize,"Invalid key length");var r=o.readUInt32BE(t,0),i=o.readUInt32BE(t,4);o.pc1(r,i,e.tmp,0),r=e.tmp[0],i=e.tmp[1];for(var a=0;a<e.keys.length;a+=2){var s=c[a>>>1];r=o.r28shl(r,s),i=o.r28shl(i,s),o.pc2(r,i,e.keys,a)}},u.prototype._update=function(e,t,r,n){var i=this._desState,a=o.readUInt32BE(e,t),s=o.readUInt32BE(e,t+4);o.ip(a,s,i.tmp,0),a=i.tmp[0],s=i.tmp[1],"encrypt"===this.type?this._encrypt(i,a,s,i.tmp,0):this._decrypt(i,a,s,i.tmp,0),a=i.tmp[0],s=i.tmp[1],o.writeUInt32BE(r,a,n),o.writeUInt32BE(r,s,n+4)},u.prototype._pad=function(e,t){for(var r=e.length-t,n=t;n<e.length;n++)e[n]=r;return!0},u.prototype._unpad=function(e){for(var t=e[e.length-1],r=e.length-t;r<e.length;r++)n.equal(e[r],t);return e.slice(0,e.length-t)},u.prototype._encrypt=function(e,t,r,n,i){for(var a=t,s=r,u=0;u<e.keys.length;u+=2){var c=e.keys[u],f=e.keys[u+1];o.expand(s,e.tmp,0),c^=e.tmp[0],f^=e.tmp[1];var l=o.substitute(c,f),d=s;s=(a^o.permute(l))>>>0,a=d}o.rip(s,a,n,i)},u.prototype._decrypt=function(e,t,r,n,i){for(var a=r,s=t,u=e.keys.length-2;u>=0;u-=2){var c=e.keys[u],f=e.keys[u+1];o.expand(a,e.tmp,0),c^=e.tmp[0],f^=e.tmp[1];var l=o.substitute(c,f),d=a;a=(s^o.permute(l))>>>0,s=d}o.rip(a,s,n,i)}},87118:(e,t,r)=>{"use strict";var n=r(44647),i=r(19105),o=r(47094),a=r(30349);function s(e,t){n.equal(t.length,24,"Invalid key length");var r=t.slice(0,8),i=t.slice(8,16),o=t.slice(16,24);this.ciphers="encrypt"===e?[a.create({type:"encrypt",key:r}),a.create({type:"decrypt",key:i}),a.create({type:"encrypt",key:o})]:[a.create({type:"decrypt",key:o}),a.create({type:"encrypt",key:i}),a.create({type:"decrypt",key:r})]}function u(e){o.call(this,e);var t=new s(this.type,this.options.key);this._edeState=t}i(u,o),e.exports=u,u.create=function(e){return new u(e)},u.prototype._update=function(e,t,r,n){var i=this._edeState;i.ciphers[0]._update(e,t,r,n),i.ciphers[1]._update(r,n,r,n),i.ciphers[2]._update(r,n,r,n)},u.prototype._pad=a.prototype._pad,u.prototype._unpad=a.prototype._unpad},68559:(e,t)=>{"use strict";t.readUInt32BE=function(e,t){return(e[0+t]<<24|e[1+t]<<16|e[2+t]<<8|e[3+t])>>>0},t.writeUInt32BE=function(e,t,r){e[0+r]=t>>>24,e[1+r]=t>>>16&255,e[2+r]=t>>>8&255,e[3+r]=255&t},t.ip=function(e,t,r,n){for(var i=0,o=0,a=6;a>=0;a-=2){for(var s=0;s<=24;s+=8)i<<=1,i|=t>>>s+a&1;for(s=0;s<=24;s+=8)i<<=1,i|=e>>>s+a&1}for(a=6;a>=0;a-=2){for(s=1;s<=25;s+=8)o<<=1,o|=t>>>s+a&1;for(s=1;s<=25;s+=8)o<<=1,o|=e>>>s+a&1}r[n+0]=i>>>0,r[n+1]=o>>>0},t.rip=function(e,t,r,n){for(var i=0,o=0,a=0;a<4;a++)for(var s=24;s>=0;s-=8)i<<=1,i|=t>>>s+a&1,i<<=1,i|=e>>>s+a&1;for(a=4;a<8;a++)for(s=24;s>=0;s-=8)o<<=1,o|=t>>>s+a&1,o<<=1,o|=e>>>s+a&1;r[n+0]=i>>>0,r[n+1]=o>>>0},t.pc1=function(e,t,r,n){for(var i=0,o=0,a=7;a>=5;a--){for(var s=0;s<=24;s+=8)i<<=1,i|=t>>s+a&1;for(s=0;s<=24;s+=8)i<<=1,i|=e>>s+a&1}for(s=0;s<=24;s+=8)i<<=1,i|=t>>s+a&1;for(a=1;a<=3;a++){for(s=0;s<=24;s+=8)o<<=1,o|=t>>s+a&1;for(s=0;s<=24;s+=8)o<<=1,o|=e>>s+a&1}for(s=0;s<=24;s+=8)o<<=1,o|=e>>s+a&1;r[n+0]=i>>>0,r[n+1]=o>>>0},t.r28shl=function(e,t){return e<<t&268435455|e>>>28-t};var r=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];t.pc2=function(e,t,n,i){for(var o=0,a=0,s=r.length>>>1,u=0;u<s;u++)o<<=1,o|=e>>>r[u]&1;for(u=s;u<r.length;u++)a<<=1,a|=t>>>r[u]&1;n[i+0]=o>>>0,n[i+1]=a>>>0},t.expand=function(e,t,r){var n=0,i=0;n=(1&e)<<5|e>>>27;for(var o=23;o>=15;o-=4)n<<=6,n|=e>>>o&63;for(o=11;o>=3;o-=4)i|=e>>>o&63,i<<=6;i|=(31&e)<<1|e>>>31,t[r+0]=n>>>0,t[r+1]=i>>>0};var n=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];t.substitute=function(e,t){for(var r=0,i=0;i<4;i++)r<<=4,r|=n[64*i+(e>>>18-6*i&63)];for(i=0;i<4;i++)r<<=4,r|=n[256+64*i+(t>>>18-6*i&63)];return r>>>0};var i=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];t.permute=function(e){for(var t=0,r=0;r<i.length;r++)t<<=1,t|=e>>>i[r]&1;return t>>>0},t.padSplit=function(e,t,r){for(var n=e.toString(2);n.length<t;)n="0"+n;for(var i=[],o=0;o<t;o+=r)i.push(n.slice(o,o+r));return i.join(" ")}},3947:(e,t,r)=>{var n=r(18390).Buffer,i=r(2711),o=r(23418),a=r(21478),s={binary:!0,hex:!0,base64:!0};t.DiffieHellmanGroup=t.createDiffieHellmanGroup=t.getDiffieHellman=function(e){var t=new n(o[e].prime,"hex"),r=new n(o[e].gen,"hex");return new a(t,r)},t.createDiffieHellman=t.DiffieHellman=function e(t,r,o,u){return n.isBuffer(r)||void 0===s[r]?e(t,"binary",r,o):(r=r||"binary",u=u||"binary",o=o||new n([2]),n.isBuffer(o)||(o=new n(o,u)),"number"==typeof t?new a(i(t,o),o,!0):(n.isBuffer(t)||(t=new n(t,r)),new a(t,o,!0)))}},21478:(e,t,r)=>{var n=r(18390).Buffer,i=r(10660),o=new(r(85501)),a=new i(24),s=new i(11),u=new i(10),c=new i(3),f=new i(7),l=r(2711),d=r(83638);function h(e,t){return t=t||"utf8",n.isBuffer(e)||(e=new n(e,t)),this._pub=new i(e),this}function p(e,t){return t=t||"utf8",n.isBuffer(e)||(e=new n(e,t)),this._priv=new i(e),this}e.exports=g;var y={};function g(e,t,r){this.setGenerator(t),this.__prime=new i(e),this._prime=i.mont(this.__prime),this._primeLen=e.length,this._pub=void 0,this._priv=void 0,this._primeCode=void 0,r?(this.setPublicKey=h,this.setPrivateKey=p):this._primeCode=8}function b(e,t){var r=new n(e.toArray());return t?r.toString(t):r}Object.defineProperty(g.prototype,"verifyError",{enumerable:!0,get:function(){return"number"!=typeof this._primeCode&&(this._primeCode=function(e,t){var r=t.toString("hex"),n=[r,e.toString(16)].join("_");if(n in y)return y[n];var i,d=0;if(e.isEven()||!l.simpleSieve||!l.fermatTest(e)||!o.test(e))return d+=1,d+="02"===r||"05"===r?8:4,y[n]=d,d;switch(o.test(e.shrn(1))||(d+=2),r){case"02":e.mod(a).cmp(s)&&(d+=8);break;case"05":(i=e.mod(u)).cmp(c)&&i.cmp(f)&&(d+=8);break;default:d+=4}return y[n]=d,d}(this.__prime,this.__gen)),this._primeCode}}),g.prototype.generateKeys=function(){return this._priv||(this._priv=new i(d(this._primeLen))),this._pub=this._gen.toRed(this._prime).redPow(this._priv).fromRed(),this.getPublicKey()},g.prototype.computeSecret=function(e){var t=(e=(e=new i(e)).toRed(this._prime)).redPow(this._priv).fromRed(),r=new n(t.toArray()),o=this.getPrime();if(r.length<o.length){var a=new n(o.length-r.length);a.fill(0),r=n.concat([a,r])}return r},g.prototype.getPublicKey=function(e){return b(this._pub,e)},g.prototype.getPrivateKey=function(e){return b(this._priv,e)},g.prototype.getPrime=function(e){return b(this.__prime,e)},g.prototype.getGenerator=function(e){return b(this._gen,e)},g.prototype.setGenerator=function(e,t){return t=t||"utf8",n.isBuffer(e)||(e=new n(e,t)),this.__gen=e,this._gen=new i(e),this}},2711:(e,t,r)=>{var n=r(83638);e.exports=m,m.simpleSieve=g,m.fermatTest=b;var i=r(10660),o=new i(24),a=new(r(85501)),s=new i(1),u=new i(2),c=new i(5),f=(new i(16),new i(8),new i(10)),l=new i(3),d=(new i(7),new i(11)),h=new i(4),p=(new i(12),null);function y(){if(null!==p)return p;var e=[];e[0]=2;for(var t=1,r=3;r<1048576;r+=2){for(var n=Math.ceil(Math.sqrt(r)),i=0;i<t&&e[i]<=n&&r%e[i]!=0;i++);t!==i&&e[i]<=n||(e[t++]=r)}return p=e,e}function g(e){for(var t=y(),r=0;r<t.length;r++)if(0===e.modn(t[r]))return 0===e.cmpn(t[r]);return!0}function b(e){var t=i.mont(e);return 0===u.toRed(t).redPow(e.subn(1)).fromRed().cmpn(1)}function m(e,t){if(e<16)return new i(2===t||5===t?[140,123]:[140,39]);var r,p;for(t=new i(t);;){for(r=new i(n(Math.ceil(e/8)));r.bitLength()>e;)r.ishrn(1);if(r.isEven()&&r.iadd(s),r.testn(1)||r.iadd(u),t.cmp(u)){if(!t.cmp(c))for(;r.mod(f).cmp(l);)r.iadd(h)}else for(;r.mod(o).cmp(d);)r.iadd(h);if(g(p=r.shrn(1))&&g(r)&&b(p)&&b(r)&&a.test(p)&&a.test(r))return r}}},10660:function(e,t,r){!function(e,t){"use strict";function n(e,t){if(!e)throw new Error(t||"Assertion failed")}function i(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}function o(e,t,r){if(o.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(r=t,t=10),this._init(e||0,t||10,r||"be"))}var a;"object"==typeof e?e.exports=o:t.BN=o,o.BN=o,o.wordSize=26;try{a="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:r(20395).Buffer}catch(e){}function s(e,t){var r=e.charCodeAt(t);return r>=65&&r<=70?r-55:r>=97&&r<=102?r-87:r-48&15}function u(e,t,r){var n=s(e,r);return r-1>=t&&(n|=s(e,r-1)<<4),n}function c(e,t,r,n){for(var i=0,o=Math.min(e.length,r),a=t;a<o;a++){var s=e.charCodeAt(a)-48;i*=n,i+=s>=49?s-49+10:s>=17?s-17+10:s}return i}o.isBN=function(e){return e instanceof o||null!==e&&"object"==typeof e&&e.constructor.wordSize===o.wordSize&&Array.isArray(e.words)},o.max=function(e,t){return e.cmp(t)>0?e:t},o.min=function(e,t){return e.cmp(t)<0?e:t},o.prototype._init=function(e,t,r){if("number"==typeof e)return this._initNumber(e,t,r);if("object"==typeof e)return this._initArray(e,t,r);"hex"===t&&(t=16),n(t===(0|t)&&t>=2&&t<=36);var i=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(i++,this.negative=1),i<e.length&&(16===t?this._parseHex(e,i,r):(this._parseBase(e,t,i),"le"===r&&this._initArray(this.toArray(),t,r)))},o.prototype._initNumber=function(e,t,r){e<0&&(this.negative=1,e=-e),e<67108864?(this.words=[67108863&e],this.length=1):e<4503599627370496?(this.words=[67108863&e,e/67108864&67108863],this.length=2):(n(e<9007199254740992),this.words=[67108863&e,e/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),t,r)},o.prototype._initArray=function(e,t,r){if(n("number"==typeof e.length),e.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(e.length/3),this.words=new Array(this.length);for(var i=0;i<this.length;i++)this.words[i]=0;var o,a,s=0;if("be"===r)for(i=e.length-1,o=0;i>=0;i-=3)a=e[i]|e[i-1]<<8|e[i-2]<<16,this.words[o]|=a<<s&67108863,this.words[o+1]=a>>>26-s&67108863,(s+=24)>=26&&(s-=26,o++);else if("le"===r)for(i=0,o=0;i<e.length;i+=3)a=e[i]|e[i+1]<<8|e[i+2]<<16,this.words[o]|=a<<s&67108863,this.words[o+1]=a>>>26-s&67108863,(s+=24)>=26&&(s-=26,o++);return this.strip()},o.prototype._parseHex=function(e,t,r){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var n=0;n<this.length;n++)this.words[n]=0;var i,o=0,a=0;if("be"===r)for(n=e.length-1;n>=t;n-=2)i=u(e,t,n)<<o,this.words[a]|=67108863&i,o>=18?(o-=18,a+=1,this.words[a]|=i>>>26):o+=8;else for(n=(e.length-t)%2==0?t+1:t;n<e.length;n+=2)i=u(e,t,n)<<o,this.words[a]|=67108863&i,o>=18?(o-=18,a+=1,this.words[a]|=i>>>26):o+=8;this.strip()},o.prototype._parseBase=function(e,t,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=t)n++;n--,i=i/t|0;for(var o=e.length-r,a=o%n,s=Math.min(o,o-a)+r,u=0,f=r;f<s;f+=n)u=c(e,f,f+n,t),this.imuln(i),this.words[0]+u<67108864?this.words[0]+=u:this._iaddn(u);if(0!==a){var l=1;for(u=c(e,f,e.length,t),f=0;f<a;f++)l*=t;this.imuln(l),this.words[0]+u<67108864?this.words[0]+=u:this._iaddn(u)}this.strip()},o.prototype.copy=function(e){e.words=new Array(this.length);for(var t=0;t<this.length;t++)e.words[t]=this.words[t];e.length=this.length,e.negative=this.negative,e.red=this.red},o.prototype.clone=function(){var e=new o(null);return this.copy(e),e},o.prototype._expand=function(e){for(;this.length<e;)this.words[this.length++]=0;return this},o.prototype.strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"};var f=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],l=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],d=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function h(e,t,r){r.negative=t.negative^e.negative;var n=e.length+t.length|0;r.length=n,n=n-1|0;var i=0|e.words[0],o=0|t.words[0],a=i*o,s=67108863&a,u=a/67108864|0;r.words[0]=s;for(var c=1;c<n;c++){for(var f=u>>>26,l=67108863&u,d=Math.min(c,t.length-1),h=Math.max(0,c-e.length+1);h<=d;h++){var p=c-h|0;f+=(a=(i=0|e.words[p])*(o=0|t.words[h])+l)/67108864|0,l=67108863&a}r.words[c]=0|l,u=0|f}return 0!==u?r.words[c]=0|u:r.length--,r.strip()}o.prototype.toString=function(e,t){var r;if(t=0|t||1,16===(e=e||10)||"hex"===e){r="";for(var i=0,o=0,a=0;a<this.length;a++){var s=this.words[a],u=(16777215&(s<<i|o)).toString(16);r=0!=(o=s>>>24-i&16777215)||a!==this.length-1?f[6-u.length]+u+r:u+r,(i+=2)>=26&&(i-=26,a--)}for(0!==o&&(r=o.toString(16)+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(e===(0|e)&&e>=2&&e<=36){var c=l[e],h=d[e];r="";var p=this.clone();for(p.negative=0;!p.isZero();){var y=p.modn(h).toString(e);r=(p=p.idivn(h)).isZero()?y+r:f[c-y.length]+y+r}for(this.isZero()&&(r="0"+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}n(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(e,t){return n(void 0!==a),this.toArrayLike(a,e,t)},o.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},o.prototype.toArrayLike=function(e,t,r){var i=this.byteLength(),o=r||Math.max(1,i);n(i<=o,"byte array longer than desired length"),n(o>0,"Requested array length <= 0"),this.strip();var a,s,u="le"===t,c=new e(o),f=this.clone();if(u){for(s=0;!f.isZero();s++)a=f.andln(255),f.iushrn(8),c[s]=a;for(;s<o;s++)c[s]=0}else{for(s=0;s<o-i;s++)c[s]=0;for(s=0;!f.isZero();s++)a=f.andln(255),f.iushrn(8),c[o-s-1]=a}return c},Math.clz32?o.prototype._countBits=function(e){return 32-Math.clz32(e)}:o.prototype._countBits=function(e){var t=e,r=0;return t>=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},o.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,r=0;return 0==(8191&t)&&(r+=13,t>>>=13),0==(127&t)&&(r+=7,t>>>=7),0==(15&t)&&(r+=4,t>>>=4),0==(3&t)&&(r+=2,t>>>=2),0==(1&t)&&r++,r},o.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;t<this.length;t++){var r=this._zeroBits(this.words[t]);if(e+=r,26!==r)break}return e},o.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},o.prototype.toTwos=function(e){return 0!==this.negative?this.abs().inotn(e).iaddn(1):this.clone()},o.prototype.fromTwos=function(e){return this.testn(e-1)?this.notn(e).iaddn(1).ineg():this.clone()},o.prototype.isNeg=function(){return 0!==this.negative},o.prototype.neg=function(){return this.clone().ineg()},o.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},o.prototype.iuor=function(e){for(;this.length<e.length;)this.words[this.length++]=0;for(var t=0;t<e.length;t++)this.words[t]=this.words[t]|e.words[t];return this.strip()},o.prototype.ior=function(e){return n(0==(this.negative|e.negative)),this.iuor(e)},o.prototype.or=function(e){return this.length>e.length?this.clone().ior(e):e.clone().ior(this)},o.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},o.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var r=0;r<t.length;r++)this.words[r]=this.words[r]&e.words[r];return this.length=t.length,this.strip()},o.prototype.iand=function(e){return n(0==(this.negative|e.negative)),this.iuand(e)},o.prototype.and=function(e){return this.length>e.length?this.clone().iand(e):e.clone().iand(this)},o.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},o.prototype.iuxor=function(e){var t,r;this.length>e.length?(t=this,r=e):(t=e,r=this);for(var n=0;n<r.length;n++)this.words[n]=t.words[n]^r.words[n];if(this!==t)for(;n<t.length;n++)this.words[n]=t.words[n];return this.length=t.length,this.strip()},o.prototype.ixor=function(e){return n(0==(this.negative|e.negative)),this.iuxor(e)},o.prototype.xor=function(e){return this.length>e.length?this.clone().ixor(e):e.clone().ixor(this)},o.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},o.prototype.inotn=function(e){n("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),r=e%26;this._expand(t),r>0&&t--;for(var i=0;i<t;i++)this.words[i]=67108863&~this.words[i];return r>0&&(this.words[i]=~this.words[i]&67108863>>26-r),this.strip()},o.prototype.notn=function(e){return this.clone().inotn(e)},o.prototype.setn=function(e,t){n("number"==typeof e&&e>=0);var r=e/26|0,i=e%26;return this._expand(r+1),this.words[r]=t?this.words[r]|1<<i:this.words[r]&~(1<<i),this.strip()},o.prototype.iadd=function(e){var t,r,n;if(0!==this.negative&&0===e.negative)return this.negative=0,t=this.isub(e),this.negative^=1,this._normSign();if(0===this.negative&&0!==e.negative)return e.negative=0,t=this.isub(e),e.negative=1,t._normSign();this.length>e.length?(r=this,n=e):(r=e,n=this);for(var i=0,o=0;o<n.length;o++)t=(0|r.words[o])+(0|n.words[o])+i,this.words[o]=67108863&t,i=t>>>26;for(;0!==i&&o<r.length;o++)t=(0|r.words[o])+i,this.words[o]=67108863&t,i=t>>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;o<r.length;o++)this.words[o]=r.words[o];return this},o.prototype.add=function(e){var t;return 0!==e.negative&&0===this.negative?(e.negative=0,t=this.sub(e),e.negative^=1,t):0===e.negative&&0!==this.negative?(this.negative=0,t=e.sub(this),this.negative=1,t):this.length>e.length?this.clone().iadd(e):e.clone().iadd(this)},o.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var r,n,i=this.cmp(e);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=e):(r=e,n=this);for(var o=0,a=0;a<n.length;a++)o=(t=(0|r.words[a])-(0|n.words[a])+o)>>26,this.words[a]=67108863&t;for(;0!==o&&a<r.length;a++)o=(t=(0|r.words[a])+o)>>26,this.words[a]=67108863&t;if(0===o&&a<r.length&&r!==this)for(;a<r.length;a++)this.words[a]=r.words[a];return this.length=Math.max(this.length,a),r!==this&&(this.negative=1),this.strip()},o.prototype.sub=function(e){return this.clone().isub(e)};var p=function(e,t,r){var n,i,o,a=e.words,s=t.words,u=r.words,c=0,f=0|a[0],l=8191&f,d=f>>>13,h=0|a[1],p=8191&h,y=h>>>13,g=0|a[2],b=8191&g,m=g>>>13,v=0|a[3],w=8191&v,_=v>>>13,E=0|a[4],S=8191&E,A=E>>>13,O=0|a[5],M=8191&O,T=O>>>13,I=0|a[6],N=8191&I,x=I>>>13,L=0|a[7],k=8191&L,R=L>>>13,P=0|a[8],B=8191&P,D=P>>>13,C=0|a[9],j=8191&C,F=C>>>13,U=0|s[0],V=8191&U,H=U>>>13,z=0|s[1],q=8191&z,K=z>>>13,W=0|s[2],G=8191&W,Y=W>>>13,$=0|s[3],X=8191&$,J=$>>>13,Z=0|s[4],Q=8191&Z,ee=Z>>>13,te=0|s[5],re=8191&te,ne=te>>>13,ie=0|s[6],oe=8191&ie,ae=ie>>>13,se=0|s[7],ue=8191&se,ce=se>>>13,fe=0|s[8],le=8191&fe,de=fe>>>13,he=0|s[9],pe=8191&he,ye=he>>>13;r.negative=e.negative^t.negative,r.length=19;var ge=(c+(n=Math.imul(l,V))|0)+((8191&(i=(i=Math.imul(l,H))+Math.imul(d,V)|0))<<13)|0;c=((o=Math.imul(d,H))+(i>>>13)|0)+(ge>>>26)|0,ge&=67108863,n=Math.imul(p,V),i=(i=Math.imul(p,H))+Math.imul(y,V)|0,o=Math.imul(y,H);var be=(c+(n=n+Math.imul(l,q)|0)|0)+((8191&(i=(i=i+Math.imul(l,K)|0)+Math.imul(d,q)|0))<<13)|0;c=((o=o+Math.imul(d,K)|0)+(i>>>13)|0)+(be>>>26)|0,be&=67108863,n=Math.imul(b,V),i=(i=Math.imul(b,H))+Math.imul(m,V)|0,o=Math.imul(m,H),n=n+Math.imul(p,q)|0,i=(i=i+Math.imul(p,K)|0)+Math.imul(y,q)|0,o=o+Math.imul(y,K)|0;var me=(c+(n=n+Math.imul(l,G)|0)|0)+((8191&(i=(i=i+Math.imul(l,Y)|0)+Math.imul(d,G)|0))<<13)|0;c=((o=o+Math.imul(d,Y)|0)+(i>>>13)|0)+(me>>>26)|0,me&=67108863,n=Math.imul(w,V),i=(i=Math.imul(w,H))+Math.imul(_,V)|0,o=Math.imul(_,H),n=n+Math.imul(b,q)|0,i=(i=i+Math.imul(b,K)|0)+Math.imul(m,q)|0,o=o+Math.imul(m,K)|0,n=n+Math.imul(p,G)|0,i=(i=i+Math.imul(p,Y)|0)+Math.imul(y,G)|0,o=o+Math.imul(y,Y)|0;var ve=(c+(n=n+Math.imul(l,X)|0)|0)+((8191&(i=(i=i+Math.imul(l,J)|0)+Math.imul(d,X)|0))<<13)|0;c=((o=o+Math.imul(d,J)|0)+(i>>>13)|0)+(ve>>>26)|0,ve&=67108863,n=Math.imul(S,V),i=(i=Math.imul(S,H))+Math.imul(A,V)|0,o=Math.imul(A,H),n=n+Math.imul(w,q)|0,i=(i=i+Math.imul(w,K)|0)+Math.imul(_,q)|0,o=o+Math.imul(_,K)|0,n=n+Math.imul(b,G)|0,i=(i=i+Math.imul(b,Y)|0)+Math.imul(m,G)|0,o=o+Math.imul(m,Y)|0,n=n+Math.imul(p,X)|0,i=(i=i+Math.imul(p,J)|0)+Math.imul(y,X)|0,o=o+Math.imul(y,J)|0;var we=(c+(n=n+Math.imul(l,Q)|0)|0)+((8191&(i=(i=i+Math.imul(l,ee)|0)+Math.imul(d,Q)|0))<<13)|0;c=((o=o+Math.imul(d,ee)|0)+(i>>>13)|0)+(we>>>26)|0,we&=67108863,n=Math.imul(M,V),i=(i=Math.imul(M,H))+Math.imul(T,V)|0,o=Math.imul(T,H),n=n+Math.imul(S,q)|0,i=(i=i+Math.imul(S,K)|0)+Math.imul(A,q)|0,o=o+Math.imul(A,K)|0,n=n+Math.imul(w,G)|0,i=(i=i+Math.imul(w,Y)|0)+Math.imul(_,G)|0,o=o+Math.imul(_,Y)|0,n=n+Math.imul(b,X)|0,i=(i=i+Math.imul(b,J)|0)+Math.imul(m,X)|0,o=o+Math.imul(m,J)|0,n=n+Math.imul(p,Q)|0,i=(i=i+Math.imul(p,ee)|0)+Math.imul(y,Q)|0,o=o+Math.imul(y,ee)|0;var _e=(c+(n=n+Math.imul(l,re)|0)|0)+((8191&(i=(i=i+Math.imul(l,ne)|0)+Math.imul(d,re)|0))<<13)|0;c=((o=o+Math.imul(d,ne)|0)+(i>>>13)|0)+(_e>>>26)|0,_e&=67108863,n=Math.imul(N,V),i=(i=Math.imul(N,H))+Math.imul(x,V)|0,o=Math.imul(x,H),n=n+Math.imul(M,q)|0,i=(i=i+Math.imul(M,K)|0)+Math.imul(T,q)|0,o=o+Math.imul(T,K)|0,n=n+Math.imul(S,G)|0,i=(i=i+Math.imul(S,Y)|0)+Math.imul(A,G)|0,o=o+Math.imul(A,Y)|0,n=n+Math.imul(w,X)|0,i=(i=i+Math.imul(w,J)|0)+Math.imul(_,X)|0,o=o+Math.imul(_,J)|0,n=n+Math.imul(b,Q)|0,i=(i=i+Math.imul(b,ee)|0)+Math.imul(m,Q)|0,o=o+Math.imul(m,ee)|0,n=n+Math.imul(p,re)|0,i=(i=i+Math.imul(p,ne)|0)+Math.imul(y,re)|0,o=o+Math.imul(y,ne)|0;var Ee=(c+(n=n+Math.imul(l,oe)|0)|0)+((8191&(i=(i=i+Math.imul(l,ae)|0)+Math.imul(d,oe)|0))<<13)|0;c=((o=o+Math.imul(d,ae)|0)+(i>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,n=Math.imul(k,V),i=(i=Math.imul(k,H))+Math.imul(R,V)|0,o=Math.imul(R,H),n=n+Math.imul(N,q)|0,i=(i=i+Math.imul(N,K)|0)+Math.imul(x,q)|0,o=o+Math.imul(x,K)|0,n=n+Math.imul(M,G)|0,i=(i=i+Math.imul(M,Y)|0)+Math.imul(T,G)|0,o=o+Math.imul(T,Y)|0,n=n+Math.imul(S,X)|0,i=(i=i+Math.imul(S,J)|0)+Math.imul(A,X)|0,o=o+Math.imul(A,J)|0,n=n+Math.imul(w,Q)|0,i=(i=i+Math.imul(w,ee)|0)+Math.imul(_,Q)|0,o=o+Math.imul(_,ee)|0,n=n+Math.imul(b,re)|0,i=(i=i+Math.imul(b,ne)|0)+Math.imul(m,re)|0,o=o+Math.imul(m,ne)|0,n=n+Math.imul(p,oe)|0,i=(i=i+Math.imul(p,ae)|0)+Math.imul(y,oe)|0,o=o+Math.imul(y,ae)|0;var Se=(c+(n=n+Math.imul(l,ue)|0)|0)+((8191&(i=(i=i+Math.imul(l,ce)|0)+Math.imul(d,ue)|0))<<13)|0;c=((o=o+Math.imul(d,ce)|0)+(i>>>13)|0)+(Se>>>26)|0,Se&=67108863,n=Math.imul(B,V),i=(i=Math.imul(B,H))+Math.imul(D,V)|0,o=Math.imul(D,H),n=n+Math.imul(k,q)|0,i=(i=i+Math.imul(k,K)|0)+Math.imul(R,q)|0,o=o+Math.imul(R,K)|0,n=n+Math.imul(N,G)|0,i=(i=i+Math.imul(N,Y)|0)+Math.imul(x,G)|0,o=o+Math.imul(x,Y)|0,n=n+Math.imul(M,X)|0,i=(i=i+Math.imul(M,J)|0)+Math.imul(T,X)|0,o=o+Math.imul(T,J)|0,n=n+Math.imul(S,Q)|0,i=(i=i+Math.imul(S,ee)|0)+Math.imul(A,Q)|0,o=o+Math.imul(A,ee)|0,n=n+Math.imul(w,re)|0,i=(i=i+Math.imul(w,ne)|0)+Math.imul(_,re)|0,o=o+Math.imul(_,ne)|0,n=n+Math.imul(b,oe)|0,i=(i=i+Math.imul(b,ae)|0)+Math.imul(m,oe)|0,o=o+Math.imul(m,ae)|0,n=n+Math.imul(p,ue)|0,i=(i=i+Math.imul(p,ce)|0)+Math.imul(y,ue)|0,o=o+Math.imul(y,ce)|0;var Ae=(c+(n=n+Math.imul(l,le)|0)|0)+((8191&(i=(i=i+Math.imul(l,de)|0)+Math.imul(d,le)|0))<<13)|0;c=((o=o+Math.imul(d,de)|0)+(i>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,n=Math.imul(j,V),i=(i=Math.imul(j,H))+Math.imul(F,V)|0,o=Math.imul(F,H),n=n+Math.imul(B,q)|0,i=(i=i+Math.imul(B,K)|0)+Math.imul(D,q)|0,o=o+Math.imul(D,K)|0,n=n+Math.imul(k,G)|0,i=(i=i+Math.imul(k,Y)|0)+Math.imul(R,G)|0,o=o+Math.imul(R,Y)|0,n=n+Math.imul(N,X)|0,i=(i=i+Math.imul(N,J)|0)+Math.imul(x,X)|0,o=o+Math.imul(x,J)|0,n=n+Math.imul(M,Q)|0,i=(i=i+Math.imul(M,ee)|0)+Math.imul(T,Q)|0,o=o+Math.imul(T,ee)|0,n=n+Math.imul(S,re)|0,i=(i=i+Math.imul(S,ne)|0)+Math.imul(A,re)|0,o=o+Math.imul(A,ne)|0,n=n+Math.imul(w,oe)|0,i=(i=i+Math.imul(w,ae)|0)+Math.imul(_,oe)|0,o=o+Math.imul(_,ae)|0,n=n+Math.imul(b,ue)|0,i=(i=i+Math.imul(b,ce)|0)+Math.imul(m,ue)|0,o=o+Math.imul(m,ce)|0,n=n+Math.imul(p,le)|0,i=(i=i+Math.imul(p,de)|0)+Math.imul(y,le)|0,o=o+Math.imul(y,de)|0;var Oe=(c+(n=n+Math.imul(l,pe)|0)|0)+((8191&(i=(i=i+Math.imul(l,ye)|0)+Math.imul(d,pe)|0))<<13)|0;c=((o=o+Math.imul(d,ye)|0)+(i>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,n=Math.imul(j,q),i=(i=Math.imul(j,K))+Math.imul(F,q)|0,o=Math.imul(F,K),n=n+Math.imul(B,G)|0,i=(i=i+Math.imul(B,Y)|0)+Math.imul(D,G)|0,o=o+Math.imul(D,Y)|0,n=n+Math.imul(k,X)|0,i=(i=i+Math.imul(k,J)|0)+Math.imul(R,X)|0,o=o+Math.imul(R,J)|0,n=n+Math.imul(N,Q)|0,i=(i=i+Math.imul(N,ee)|0)+Math.imul(x,Q)|0,o=o+Math.imul(x,ee)|0,n=n+Math.imul(M,re)|0,i=(i=i+Math.imul(M,ne)|0)+Math.imul(T,re)|0,o=o+Math.imul(T,ne)|0,n=n+Math.imul(S,oe)|0,i=(i=i+Math.imul(S,ae)|0)+Math.imul(A,oe)|0,o=o+Math.imul(A,ae)|0,n=n+Math.imul(w,ue)|0,i=(i=i+Math.imul(w,ce)|0)+Math.imul(_,ue)|0,o=o+Math.imul(_,ce)|0,n=n+Math.imul(b,le)|0,i=(i=i+Math.imul(b,de)|0)+Math.imul(m,le)|0,o=o+Math.imul(m,de)|0;var Me=(c+(n=n+Math.imul(p,pe)|0)|0)+((8191&(i=(i=i+Math.imul(p,ye)|0)+Math.imul(y,pe)|0))<<13)|0;c=((o=o+Math.imul(y,ye)|0)+(i>>>13)|0)+(Me>>>26)|0,Me&=67108863,n=Math.imul(j,G),i=(i=Math.imul(j,Y))+Math.imul(F,G)|0,o=Math.imul(F,Y),n=n+Math.imul(B,X)|0,i=(i=i+Math.imul(B,J)|0)+Math.imul(D,X)|0,o=o+Math.imul(D,J)|0,n=n+Math.imul(k,Q)|0,i=(i=i+Math.imul(k,ee)|0)+Math.imul(R,Q)|0,o=o+Math.imul(R,ee)|0,n=n+Math.imul(N,re)|0,i=(i=i+Math.imul(N,ne)|0)+Math.imul(x,re)|0,o=o+Math.imul(x,ne)|0,n=n+Math.imul(M,oe)|0,i=(i=i+Math.imul(M,ae)|0)+Math.imul(T,oe)|0,o=o+Math.imul(T,ae)|0,n=n+Math.imul(S,ue)|0,i=(i=i+Math.imul(S,ce)|0)+Math.imul(A,ue)|0,o=o+Math.imul(A,ce)|0,n=n+Math.imul(w,le)|0,i=(i=i+Math.imul(w,de)|0)+Math.imul(_,le)|0,o=o+Math.imul(_,de)|0;var Te=(c+(n=n+Math.imul(b,pe)|0)|0)+((8191&(i=(i=i+Math.imul(b,ye)|0)+Math.imul(m,pe)|0))<<13)|0;c=((o=o+Math.imul(m,ye)|0)+(i>>>13)|0)+(Te>>>26)|0,Te&=67108863,n=Math.imul(j,X),i=(i=Math.imul(j,J))+Math.imul(F,X)|0,o=Math.imul(F,J),n=n+Math.imul(B,Q)|0,i=(i=i+Math.imul(B,ee)|0)+Math.imul(D,Q)|0,o=o+Math.imul(D,ee)|0,n=n+Math.imul(k,re)|0,i=(i=i+Math.imul(k,ne)|0)+Math.imul(R,re)|0,o=o+Math.imul(R,ne)|0,n=n+Math.imul(N,oe)|0,i=(i=i+Math.imul(N,ae)|0)+Math.imul(x,oe)|0,o=o+Math.imul(x,ae)|0,n=n+Math.imul(M,ue)|0,i=(i=i+Math.imul(M,ce)|0)+Math.imul(T,ue)|0,o=o+Math.imul(T,ce)|0,n=n+Math.imul(S,le)|0,i=(i=i+Math.imul(S,de)|0)+Math.imul(A,le)|0,o=o+Math.imul(A,de)|0;var Ie=(c+(n=n+Math.imul(w,pe)|0)|0)+((8191&(i=(i=i+Math.imul(w,ye)|0)+Math.imul(_,pe)|0))<<13)|0;c=((o=o+Math.imul(_,ye)|0)+(i>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,n=Math.imul(j,Q),i=(i=Math.imul(j,ee))+Math.imul(F,Q)|0,o=Math.imul(F,ee),n=n+Math.imul(B,re)|0,i=(i=i+Math.imul(B,ne)|0)+Math.imul(D,re)|0,o=o+Math.imul(D,ne)|0,n=n+Math.imul(k,oe)|0,i=(i=i+Math.imul(k,ae)|0)+Math.imul(R,oe)|0,o=o+Math.imul(R,ae)|0,n=n+Math.imul(N,ue)|0,i=(i=i+Math.imul(N,ce)|0)+Math.imul(x,ue)|0,o=o+Math.imul(x,ce)|0,n=n+Math.imul(M,le)|0,i=(i=i+Math.imul(M,de)|0)+Math.imul(T,le)|0,o=o+Math.imul(T,de)|0;var Ne=(c+(n=n+Math.imul(S,pe)|0)|0)+((8191&(i=(i=i+Math.imul(S,ye)|0)+Math.imul(A,pe)|0))<<13)|0;c=((o=o+Math.imul(A,ye)|0)+(i>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,n=Math.imul(j,re),i=(i=Math.imul(j,ne))+Math.imul(F,re)|0,o=Math.imul(F,ne),n=n+Math.imul(B,oe)|0,i=(i=i+Math.imul(B,ae)|0)+Math.imul(D,oe)|0,o=o+Math.imul(D,ae)|0,n=n+Math.imul(k,ue)|0,i=(i=i+Math.imul(k,ce)|0)+Math.imul(R,ue)|0,o=o+Math.imul(R,ce)|0,n=n+Math.imul(N,le)|0,i=(i=i+Math.imul(N,de)|0)+Math.imul(x,le)|0,o=o+Math.imul(x,de)|0;var xe=(c+(n=n+Math.imul(M,pe)|0)|0)+((8191&(i=(i=i+Math.imul(M,ye)|0)+Math.imul(T,pe)|0))<<13)|0;c=((o=o+Math.imul(T,ye)|0)+(i>>>13)|0)+(xe>>>26)|0,xe&=67108863,n=Math.imul(j,oe),i=(i=Math.imul(j,ae))+Math.imul(F,oe)|0,o=Math.imul(F,ae),n=n+Math.imul(B,ue)|0,i=(i=i+Math.imul(B,ce)|0)+Math.imul(D,ue)|0,o=o+Math.imul(D,ce)|0,n=n+Math.imul(k,le)|0,i=(i=i+Math.imul(k,de)|0)+Math.imul(R,le)|0,o=o+Math.imul(R,de)|0;var Le=(c+(n=n+Math.imul(N,pe)|0)|0)+((8191&(i=(i=i+Math.imul(N,ye)|0)+Math.imul(x,pe)|0))<<13)|0;c=((o=o+Math.imul(x,ye)|0)+(i>>>13)|0)+(Le>>>26)|0,Le&=67108863,n=Math.imul(j,ue),i=(i=Math.imul(j,ce))+Math.imul(F,ue)|0,o=Math.imul(F,ce),n=n+Math.imul(B,le)|0,i=(i=i+Math.imul(B,de)|0)+Math.imul(D,le)|0,o=o+Math.imul(D,de)|0;var ke=(c+(n=n+Math.imul(k,pe)|0)|0)+((8191&(i=(i=i+Math.imul(k,ye)|0)+Math.imul(R,pe)|0))<<13)|0;c=((o=o+Math.imul(R,ye)|0)+(i>>>13)|0)+(ke>>>26)|0,ke&=67108863,n=Math.imul(j,le),i=(i=Math.imul(j,de))+Math.imul(F,le)|0,o=Math.imul(F,de);var Re=(c+(n=n+Math.imul(B,pe)|0)|0)+((8191&(i=(i=i+Math.imul(B,ye)|0)+Math.imul(D,pe)|0))<<13)|0;c=((o=o+Math.imul(D,ye)|0)+(i>>>13)|0)+(Re>>>26)|0,Re&=67108863;var Pe=(c+(n=Math.imul(j,pe))|0)+((8191&(i=(i=Math.imul(j,ye))+Math.imul(F,pe)|0))<<13)|0;return c=((o=Math.imul(F,ye))+(i>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,u[0]=ge,u[1]=be,u[2]=me,u[3]=ve,u[4]=we,u[5]=_e,u[6]=Ee,u[7]=Se,u[8]=Ae,u[9]=Oe,u[10]=Me,u[11]=Te,u[12]=Ie,u[13]=Ne,u[14]=xe,u[15]=Le,u[16]=ke,u[17]=Re,u[18]=Pe,0!==c&&(u[19]=c,r.length++),r};function y(e,t,r){return(new g).mulp(e,t,r)}function g(e,t){this.x=e,this.y=t}Math.imul||(p=h),o.prototype.mulTo=function(e,t){var r,n=this.length+e.length;return r=10===this.length&&10===e.length?p(this,e,t):n<63?h(this,e,t):n<1024?function(e,t,r){r.negative=t.negative^e.negative,r.length=e.length+t.length;for(var n=0,i=0,o=0;o<r.length-1;o++){var a=i;i=0;for(var s=67108863&n,u=Math.min(o,t.length-1),c=Math.max(0,o-e.length+1);c<=u;c++){var f=o-c,l=(0|e.words[f])*(0|t.words[c]),d=67108863&l;s=67108863&(d=d+s|0),i+=(a=(a=a+(l/67108864|0)|0)+(d>>>26)|0)>>>26,a&=67108863}r.words[o]=s,n=a,a=i}return 0!==n?r.words[o]=n:r.length--,r.strip()}(this,e,t):y(this,e,t),r},g.prototype.makeRBT=function(e){for(var t=new Array(e),r=o.prototype._countBits(e)-1,n=0;n<e;n++)t[n]=this.revBin(n,r,e);return t},g.prototype.revBin=function(e,t,r){if(0===e||e===r-1)return e;for(var n=0,i=0;i<t;i++)n|=(1&e)<<t-i-1,e>>=1;return n},g.prototype.permute=function(e,t,r,n,i,o){for(var a=0;a<o;a++)n[a]=t[e[a]],i[a]=r[e[a]]},g.prototype.transform=function(e,t,r,n,i,o){this.permute(o,e,t,r,n,i);for(var a=1;a<i;a<<=1)for(var s=a<<1,u=Math.cos(2*Math.PI/s),c=Math.sin(2*Math.PI/s),f=0;f<i;f+=s)for(var l=u,d=c,h=0;h<a;h++){var p=r[f+h],y=n[f+h],g=r[f+h+a],b=n[f+h+a],m=l*g-d*b;b=l*b+d*g,g=m,r[f+h]=p+g,n[f+h]=y+b,r[f+h+a]=p-g,n[f+h+a]=y-b,h!==s&&(m=u*l-c*d,d=u*d+c*l,l=m)}},g.prototype.guessLen13b=function(e,t){var r=1|Math.max(t,e),n=1&r,i=0;for(r=r/2|0;r;r>>>=1)i++;return 1<<i+1+n},g.prototype.conjugate=function(e,t,r){if(!(r<=1))for(var n=0;n<r/2;n++){var i=e[n];e[n]=e[r-n-1],e[r-n-1]=i,i=t[n],t[n]=-t[r-n-1],t[r-n-1]=-i}},g.prototype.normalize13b=function(e,t){for(var r=0,n=0;n<t/2;n++){var i=8192*Math.round(e[2*n+1]/t)+Math.round(e[2*n]/t)+r;e[n]=67108863&i,r=i<67108864?0:i/67108864|0}return e},g.prototype.convert13b=function(e,t,r,i){for(var o=0,a=0;a<t;a++)o+=0|e[a],r[2*a]=8191&o,o>>>=13,r[2*a+1]=8191&o,o>>>=13;for(a=2*t;a<i;++a)r[a]=0;n(0===o),n(0==(-8192&o))},g.prototype.stub=function(e){for(var t=new Array(e),r=0;r<e;r++)t[r]=0;return t},g.prototype.mulp=function(e,t,r){var n=2*this.guessLen13b(e.length,t.length),i=this.makeRBT(n),o=this.stub(n),a=new Array(n),s=new Array(n),u=new Array(n),c=new Array(n),f=new Array(n),l=new Array(n),d=r.words;d.length=n,this.convert13b(e.words,e.length,a,n),this.convert13b(t.words,t.length,c,n),this.transform(a,o,s,u,n,i),this.transform(c,o,f,l,n,i);for(var h=0;h<n;h++){var p=s[h]*f[h]-u[h]*l[h];u[h]=s[h]*l[h]+u[h]*f[h],s[h]=p}return this.conjugate(s,u,n),this.transform(s,u,d,o,n,i),this.conjugate(d,o,n),this.normalize13b(d,n),r.negative=e.negative^t.negative,r.length=e.length+t.length,r.strip()},o.prototype.mul=function(e){var t=new o(null);return t.words=new Array(this.length+e.length),this.mulTo(e,t)},o.prototype.mulf=function(e){var t=new o(null);return t.words=new Array(this.length+e.length),y(this,e,t)},o.prototype.imul=function(e){return this.clone().mulTo(e,this)},o.prototype.imuln=function(e){n("number"==typeof e),n(e<67108864);for(var t=0,r=0;r<this.length;r++){var i=(0|this.words[r])*e,o=(67108863&i)+(67108863&t);t>>=26,t+=i/67108864|0,t+=o>>>26,this.words[r]=67108863&o}return 0!==t&&(this.words[r]=t,this.length++),this},o.prototype.muln=function(e){return this.clone().imuln(e)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),r=0;r<t.length;r++){var n=r/26|0,i=r%26;t[r]=(e.words[n]&1<<i)>>>i}return t}(e);if(0===t.length)return new o(1);for(var r=this,n=0;n<t.length&&0===t[n];n++,r=r.sqr());if(++n<t.length)for(var i=r.sqr();n<t.length;n++,i=i.sqr())0!==t[n]&&(r=r.mul(i));return r},o.prototype.iushln=function(e){n("number"==typeof e&&e>=0);var t,r=e%26,i=(e-r)/26,o=67108863>>>26-r<<26-r;if(0!==r){var a=0;for(t=0;t<this.length;t++){var s=this.words[t]&o,u=(0|this.words[t])-s<<r;this.words[t]=u|a,a=s>>>26-r}a&&(this.words[t]=a,this.length++)}if(0!==i){for(t=this.length-1;t>=0;t--)this.words[t+i]=this.words[t];for(t=0;t<i;t++)this.words[t]=0;this.length+=i}return this.strip()},o.prototype.ishln=function(e){return n(0===this.negative),this.iushln(e)},o.prototype.iushrn=function(e,t,r){var i;n("number"==typeof e&&e>=0),i=t?(t-t%26)/26:0;var o=e%26,a=Math.min((e-o)/26,this.length),s=67108863^67108863>>>o<<o,u=r;if(i-=a,i=Math.max(0,i),u){for(var c=0;c<a;c++)u.words[c]=this.words[c];u.length=a}if(0===a);else if(this.length>a)for(this.length-=a,c=0;c<this.length;c++)this.words[c]=this.words[c+a];else this.words[0]=0,this.length=1;var f=0;for(c=this.length-1;c>=0&&(0!==f||c>=i);c--){var l=0|this.words[c];this.words[c]=f<<26-o|l>>>o,f=l&s}return u&&0!==f&&(u.words[u.length++]=f),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(e,t,r){return n(0===this.negative),this.iushrn(e,t,r)},o.prototype.shln=function(e){return this.clone().ishln(e)},o.prototype.ushln=function(e){return this.clone().iushln(e)},o.prototype.shrn=function(e){return this.clone().ishrn(e)},o.prototype.ushrn=function(e){return this.clone().iushrn(e)},o.prototype.testn=function(e){n("number"==typeof e&&e>=0);var t=e%26,r=(e-t)/26,i=1<<t;return!(this.length<=r||!(this.words[r]&i))},o.prototype.imaskn=function(e){n("number"==typeof e&&e>=0);var t=e%26,r=(e-t)/26;if(n(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==t&&r++,this.length=Math.min(r,this.length),0!==t){var i=67108863^67108863>>>t<<t;this.words[this.length-1]&=i}return this.strip()},o.prototype.maskn=function(e){return this.clone().imaskn(e)},o.prototype.iaddn=function(e){return n("number"==typeof e),n(e<67108864),e<0?this.isubn(-e):0!==this.negative?1===this.length&&(0|this.words[0])<e?(this.words[0]=e-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(e),this.negative=1,this):this._iaddn(e)},o.prototype._iaddn=function(e){this.words[0]+=e;for(var t=0;t<this.length&&this.words[t]>=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},o.prototype.isubn=function(e){if(n("number"==typeof e),n(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t<this.length&&this.words[t]<0;t++)this.words[t]+=67108864,this.words[t+1]-=1;return this.strip()},o.prototype.addn=function(e){return this.clone().iaddn(e)},o.prototype.subn=function(e){return this.clone().isubn(e)},o.prototype.iabs=function(){return this.negative=0,this},o.prototype.abs=function(){return this.clone().iabs()},o.prototype._ishlnsubmul=function(e,t,r){var i,o,a=e.length+r;this._expand(a);var s=0;for(i=0;i<e.length;i++){o=(0|this.words[i+r])+s;var u=(0|e.words[i])*t;s=((o-=67108863&u)>>26)-(u/67108864|0),this.words[i+r]=67108863&o}for(;i<this.length-r;i++)s=(o=(0|this.words[i+r])+s)>>26,this.words[i+r]=67108863&o;if(0===s)return this.strip();for(n(-1===s),s=0,i=0;i<this.length;i++)s=(o=-(0|this.words[i])+s)>>26,this.words[i]=67108863&o;return this.negative=1,this.strip()},o.prototype._wordDiv=function(e,t){var r=(this.length,e.length),n=this.clone(),i=e,a=0|i.words[i.length-1];0!=(r=26-this._countBits(a))&&(i=i.ushln(r),n.iushln(r),a=0|i.words[i.length-1]);var s,u=n.length-i.length;if("mod"!==t){(s=new o(null)).length=u+1,s.words=new Array(s.length);for(var c=0;c<s.length;c++)s.words[c]=0}var f=n.clone()._ishlnsubmul(i,1,u);0===f.negative&&(n=f,s&&(s.words[u]=1));for(var l=u-1;l>=0;l--){var d=67108864*(0|n.words[i.length+l])+(0|n.words[i.length+l-1]);for(d=Math.min(d/a|0,67108863),n._ishlnsubmul(i,d,l);0!==n.negative;)d--,n.negative=0,n._ishlnsubmul(i,1,l),n.isZero()||(n.negative^=1);s&&(s.words[l]=d)}return s&&s.strip(),n.strip(),"div"!==t&&0!==r&&n.iushrn(r),{div:s||null,mod:n}},o.prototype.divmod=function(e,t,r){return n(!e.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===e.negative?(s=this.neg().divmod(e,t),"mod"!==t&&(i=s.div.neg()),"div"!==t&&(a=s.mod.neg(),r&&0!==a.negative&&a.iadd(e)),{div:i,mod:a}):0===this.negative&&0!==e.negative?(s=this.divmod(e.neg(),t),"mod"!==t&&(i=s.div.neg()),{div:i,mod:s.mod}):0!=(this.negative&e.negative)?(s=this.neg().divmod(e.neg(),t),"div"!==t&&(a=s.mod.neg(),r&&0!==a.negative&&a.isub(e)),{div:s.div,mod:a}):e.length>this.length||this.cmp(e)<0?{div:new o(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new o(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new o(this.modn(e.words[0]))}:this._wordDiv(e,t);var i,a,s},o.prototype.div=function(e){return this.divmod(e,"div",!1).div},o.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},o.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},o.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var r=0!==t.div.negative?t.mod.isub(e):t.mod,n=e.ushrn(1),i=e.andln(1),o=r.cmp(n);return o<0||1===i&&0===o?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},o.prototype.modn=function(e){n(e<=67108863);for(var t=(1<<26)%e,r=0,i=this.length-1;i>=0;i--)r=(t*r+(0|this.words[i]))%e;return r},o.prototype.idivn=function(e){n(e<=67108863);for(var t=0,r=this.length-1;r>=0;r--){var i=(0|this.words[r])+67108864*t;this.words[r]=i/e|0,t=i%e}return this.strip()},o.prototype.divn=function(e){return this.clone().idivn(e)},o.prototype.egcd=function(e){n(0===e.negative),n(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i=new o(1),a=new o(0),s=new o(0),u=new o(1),c=0;t.isEven()&&r.isEven();)t.iushrn(1),r.iushrn(1),++c;for(var f=r.clone(),l=t.clone();!t.isZero();){for(var d=0,h=1;0==(t.words[0]&h)&&d<26;++d,h<<=1);if(d>0)for(t.iushrn(d);d-- >0;)(i.isOdd()||a.isOdd())&&(i.iadd(f),a.isub(l)),i.iushrn(1),a.iushrn(1);for(var p=0,y=1;0==(r.words[0]&y)&&p<26;++p,y<<=1);if(p>0)for(r.iushrn(p);p-- >0;)(s.isOdd()||u.isOdd())&&(s.iadd(f),u.isub(l)),s.iushrn(1),u.iushrn(1);t.cmp(r)>=0?(t.isub(r),i.isub(s),a.isub(u)):(r.isub(t),s.isub(i),u.isub(a))}return{a:s,b:u,gcd:r.iushln(c)}},o.prototype._invmp=function(e){n(0===e.negative),n(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i,a=new o(1),s=new o(0),u=r.clone();t.cmpn(1)>0&&r.cmpn(1)>0;){for(var c=0,f=1;0==(t.words[0]&f)&&c<26;++c,f<<=1);if(c>0)for(t.iushrn(c);c-- >0;)a.isOdd()&&a.iadd(u),a.iushrn(1);for(var l=0,d=1;0==(r.words[0]&d)&&l<26;++l,d<<=1);if(l>0)for(r.iushrn(l);l-- >0;)s.isOdd()&&s.iadd(u),s.iushrn(1);t.cmp(r)>=0?(t.isub(r),a.isub(s)):(r.isub(t),s.isub(a))}return(i=0===t.cmpn(1)?a:s).cmpn(0)<0&&i.iadd(e),i},o.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),r=e.clone();t.negative=0,r.negative=0;for(var n=0;t.isEven()&&r.isEven();n++)t.iushrn(1),r.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;r.isEven();)r.iushrn(1);var i=t.cmp(r);if(i<0){var o=t;t=r,r=o}else if(0===i||0===r.cmpn(1))break;t.isub(r)}return r.iushln(n)},o.prototype.invm=function(e){return this.egcd(e).a.umod(e)},o.prototype.isEven=function(){return 0==(1&this.words[0])},o.prototype.isOdd=function(){return 1==(1&this.words[0])},o.prototype.andln=function(e){return this.words[0]&e},o.prototype.bincn=function(e){n("number"==typeof e);var t=e%26,r=(e-t)/26,i=1<<t;if(this.length<=r)return this._expand(r+1),this.words[r]|=i,this;for(var o=i,a=r;0!==o&&a<this.length;a++){var s=0|this.words[a];o=(s+=o)>>>26,s&=67108863,this.words[a]=s}return 0!==o&&(this.words[a]=o,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(e){var t,r=e<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this.strip(),this.length>1)t=1;else{r&&(e=-e),n(e<=67108863,"Number is too big");var i=0|this.words[0];t=i===e?0:i<e?-1:1}return 0!==this.negative?0|-t:t},o.prototype.cmp=function(e){if(0!==this.negative&&0===e.negative)return-1;if(0===this.negative&&0!==e.negative)return 1;var t=this.ucmp(e);return 0!==this.negative?0|-t:t},o.prototype.ucmp=function(e){if(this.length>e.length)return 1;if(this.length<e.length)return-1;for(var t=0,r=this.length-1;r>=0;r--){var n=0|this.words[r],i=0|e.words[r];if(n!==i){n<i?t=-1:n>i&&(t=1);break}}return t},o.prototype.gtn=function(e){return 1===this.cmpn(e)},o.prototype.gt=function(e){return 1===this.cmp(e)},o.prototype.gten=function(e){return this.cmpn(e)>=0},o.prototype.gte=function(e){return this.cmp(e)>=0},o.prototype.ltn=function(e){return-1===this.cmpn(e)},o.prototype.lt=function(e){return-1===this.cmp(e)},o.prototype.lten=function(e){return this.cmpn(e)<=0},o.prototype.lte=function(e){return this.cmp(e)<=0},o.prototype.eqn=function(e){return 0===this.cmpn(e)},o.prototype.eq=function(e){return 0===this.cmp(e)},o.red=function(e){return new S(e)},o.prototype.toRed=function(e){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},o.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(e){return this.red=e,this},o.prototype.forceRed=function(e){return n(!this.red,"Already a number in reduction context"),this._forceRed(e)},o.prototype.redAdd=function(e){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},o.prototype.redIAdd=function(e){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},o.prototype.redSub=function(e){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},o.prototype.redISub=function(e){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},o.prototype.redShl=function(e){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},o.prototype.redMul=function(e){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},o.prototype.redIMul=function(e){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},o.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(e){return n(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var b={k256:null,p224:null,p192:null,p25519:null};function m(e,t){this.name=e,this.p=new o(t,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function v(){m.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function w(){m.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function _(){m.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function E(){m.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function S(e){if("string"==typeof e){var t=o._prime(e);this.m=t.p,this.prime=t}else n(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function A(e){S.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}m.prototype._tmp=function(){var e=new o(null);return e.words=new Array(Math.ceil(this.n/13)),e},m.prototype.ireduce=function(e){var t,r=e;do{this.split(r,this.tmp),t=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(t>this.n);var n=t<this.n?-1:r.ucmp(this.p);return 0===n?(r.words[0]=0,r.length=1):n>0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},m.prototype.split=function(e,t){e.iushrn(this.n,0,t)},m.prototype.imulK=function(e){return e.imul(this.k)},i(v,m),v.prototype.split=function(e,t){for(var r=4194303,n=Math.min(e.length,9),i=0;i<n;i++)t.words[i]=e.words[i];if(t.length=n,e.length<=9)return e.words[0]=0,void(e.length=1);var o=e.words[9];for(t.words[t.length++]=o&r,i=10;i<e.length;i++){var a=0|e.words[i];e.words[i-10]=(a&r)<<4|o>>>22,o=a}o>>>=22,e.words[i-10]=o,0===o&&e.length>10?e.length-=10:e.length-=9},v.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,r=0;r<e.length;r++){var n=0|e.words[r];t+=977*n,e.words[r]=67108863&t,t=64*n+(t/67108864|0)}return 0===e.words[e.length-1]&&(e.length--,0===e.words[e.length-1]&&e.length--),e},i(w,m),i(_,m),i(E,m),E.prototype.imulK=function(e){for(var t=0,r=0;r<e.length;r++){var n=19*(0|e.words[r])+t,i=67108863&n;n>>>=26,e.words[r]=i,t=n}return 0!==t&&(e.words[e.length++]=t),e},o._prime=function(e){if(b[e])return b[e];var t;if("k256"===e)t=new v;else if("p224"===e)t=new w;else if("p192"===e)t=new _;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new E}return b[e]=t,t},S.prototype._verify1=function(e){n(0===e.negative,"red works only with positives"),n(e.red,"red works only with red numbers")},S.prototype._verify2=function(e,t){n(0==(e.negative|t.negative),"red works only with positives"),n(e.red&&e.red===t.red,"red works only with red numbers")},S.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},S.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},S.prototype.add=function(e,t){this._verify2(e,t);var r=e.add(t);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},S.prototype.iadd=function(e,t){this._verify2(e,t);var r=e.iadd(t);return r.cmp(this.m)>=0&&r.isub(this.m),r},S.prototype.sub=function(e,t){this._verify2(e,t);var r=e.sub(t);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},S.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},S.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},S.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},S.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},S.prototype.isqr=function(e){return this.imul(e,e.clone())},S.prototype.sqr=function(e){return this.mul(e,e)},S.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(n(t%2==1),3===t){var r=this.m.add(new o(1)).iushrn(2);return this.pow(e,r)}for(var i=this.m.subn(1),a=0;!i.isZero()&&0===i.andln(1);)a++,i.iushrn(1);n(!i.isZero());var s=new o(1).toRed(this),u=s.redNeg(),c=this.m.subn(1).iushrn(1),f=this.m.bitLength();for(f=new o(2*f*f).toRed(this);0!==this.pow(f,c).cmp(u);)f.redIAdd(u);for(var l=this.pow(f,i),d=this.pow(e,i.addn(1).iushrn(1)),h=this.pow(e,i),p=a;0!==h.cmp(s);){for(var y=h,g=0;0!==y.cmp(s);g++)y=y.redSqr();n(g<p);var b=this.pow(l,new o(1).iushln(p-g-1));d=d.redMul(b),l=b.redSqr(),h=h.redMul(l),p=g}return d},S.prototype.invm=function(e){var t=e._invmp(this.m);return 0!==t.negative?(t.negative=0,this.imod(t).redNeg()):this.imod(t)},S.prototype.pow=function(e,t){if(t.isZero())return new o(1).toRed(this);if(0===t.cmpn(1))return e.clone();var r=new Array(16);r[0]=new o(1).toRed(this),r[1]=e;for(var n=2;n<r.length;n++)r[n]=this.mul(r[n-1],e);var i=r[0],a=0,s=0,u=t.bitLength()%26;for(0===u&&(u=26),n=t.length-1;n>=0;n--){for(var c=t.words[n],f=u-1;f>=0;f--){var l=c>>f&1;i!==r[0]&&(i=this.sqr(i)),0!==l||0!==a?(a<<=1,a|=l,(4==++s||0===n&&0===f)&&(i=this.mul(i,r[a]),s=0,a=0)):s=0}u=26}return i},S.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},S.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},o.mont=function(e){return new A(e)},i(A,S),A.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},A.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},A.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var r=e.imul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},A.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new o(0)._forceRed(this);var r=e.mul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),a=i;return i.cmp(this.m)>=0?a=i.isub(this.m):i.cmpn(0)<0&&(a=i.iadd(this.m)),a._forceRed(this)},A.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e=r.nmd(e),this)},42870:(e,t,r)=>{"use strict";var n=t;n.version=r(40763).i8,n.utils=r(60218),n.rand=r(72486),n.curve=r(89751),n.curves=r(51736),n.ec=r(68252),n.eddsa=r(97751)},77975:(e,t,r)=>{"use strict";var n=r(10660),i=r(60218),o=i.getNAF,a=i.getJSF,s=i.assert;function u(e,t){this.type=e,this.p=new n(t.p,16),this.red=t.prime?n.red(t.prime):n.mont(this.p),this.zero=new n(0).toRed(this.red),this.one=new n(1).toRed(this.red),this.two=new n(2).toRed(this.red),this.n=t.n&&new n(t.n,16),this.g=t.g&&this.pointFromJSON(t.g,t.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var r=this.n&&this.p.div(this.n);!r||r.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}function c(e,t){this.curve=e,this.type=t,this.precomputed=null}e.exports=u,u.prototype.point=function(){throw new Error("Not implemented")},u.prototype.validate=function(){throw new Error("Not implemented")},u.prototype._fixedNafMul=function(e,t){s(e.precomputed);var r=e._getDoubles(),n=o(t,1,this._bitLength),i=(1<<r.step+1)-(r.step%2==0?2:1);i/=3;var a,u,c=[];for(a=0;a<n.length;a+=r.step){u=0;for(var f=a+r.step-1;f>=a;f--)u=(u<<1)+n[f];c.push(u)}for(var l=this.jpoint(null,null,null),d=this.jpoint(null,null,null),h=i;h>0;h--){for(a=0;a<c.length;a++)(u=c[a])===h?d=d.mixedAdd(r.points[a]):u===-h&&(d=d.mixedAdd(r.points[a].neg()));l=l.add(d)}return l.toP()},u.prototype._wnafMul=function(e,t){var r=4,n=e._getNAFPoints(r);r=n.wnd;for(var i=n.points,a=o(t,r,this._bitLength),u=this.jpoint(null,null,null),c=a.length-1;c>=0;c--){for(var f=0;c>=0&&0===a[c];c--)f++;if(c>=0&&f++,u=u.dblp(f),c<0)break;var l=a[c];s(0!==l),u="affine"===e.type?l>0?u.mixedAdd(i[l-1>>1]):u.mixedAdd(i[-l-1>>1].neg()):l>0?u.add(i[l-1>>1]):u.add(i[-l-1>>1].neg())}return"affine"===e.type?u.toP():u},u.prototype._wnafMulAdd=function(e,t,r,n,i){var s,u,c,f=this._wnafT1,l=this._wnafT2,d=this._wnafT3,h=0;for(s=0;s<n;s++){var p=(c=t[s])._getNAFPoints(e);f[s]=p.wnd,l[s]=p.points}for(s=n-1;s>=1;s-=2){var y=s-1,g=s;if(1===f[y]&&1===f[g]){var b=[t[y],null,null,t[g]];0===t[y].y.cmp(t[g].y)?(b[1]=t[y].add(t[g]),b[2]=t[y].toJ().mixedAdd(t[g].neg())):0===t[y].y.cmp(t[g].y.redNeg())?(b[1]=t[y].toJ().mixedAdd(t[g]),b[2]=t[y].add(t[g].neg())):(b[1]=t[y].toJ().mixedAdd(t[g]),b[2]=t[y].toJ().mixedAdd(t[g].neg()));var m=[-3,-1,-5,-7,0,7,5,1,3],v=a(r[y],r[g]);for(h=Math.max(v[0].length,h),d[y]=new Array(h),d[g]=new Array(h),u=0;u<h;u++){var w=0|v[0][u],_=0|v[1][u];d[y][u]=m[3*(w+1)+(_+1)],d[g][u]=0,l[y]=b}}else d[y]=o(r[y],f[y],this._bitLength),d[g]=o(r[g],f[g],this._bitLength),h=Math.max(d[y].length,h),h=Math.max(d[g].length,h)}var E=this.jpoint(null,null,null),S=this._wnafT4;for(s=h;s>=0;s--){for(var A=0;s>=0;){var O=!0;for(u=0;u<n;u++)S[u]=0|d[u][s],0!==S[u]&&(O=!1);if(!O)break;A++,s--}if(s>=0&&A++,E=E.dblp(A),s<0)break;for(u=0;u<n;u++){var M=S[u];0!==M&&(M>0?c=l[u][M-1>>1]:M<0&&(c=l[u][-M-1>>1].neg()),E="affine"===c.type?E.mixedAdd(c):E.add(c))}}for(s=0;s<n;s++)l[s]=null;return i?E:E.toP()},u.BasePoint=c,c.prototype.eq=function(){throw new Error("Not implemented")},c.prototype.validate=function(){return this.curve.validate(this)},u.prototype.decodePoint=function(e,t){e=i.toArray(e,t);var r=this.p.byteLength();if((4===e[0]||6===e[0]||7===e[0])&&e.length-1==2*r)return 6===e[0]?s(e[e.length-1]%2==0):7===e[0]&&s(e[e.length-1]%2==1),this.point(e.slice(1,1+r),e.slice(1+r,1+2*r));if((2===e[0]||3===e[0])&&e.length-1===r)return this.pointFromX(e.slice(1,1+r),3===e[0]);throw new Error("Unknown point format")},c.prototype.encodeCompressed=function(e){return this.encode(e,!0)},c.prototype._encode=function(e){var t=this.curve.p.byteLength(),r=this.getX().toArray("be",t);return e?[this.getY().isEven()?2:3].concat(r):[4].concat(r,this.getY().toArray("be",t))},c.prototype.encode=function(e,t){return i.encode(this._encode(t),e)},c.prototype.precompute=function(e){if(this.precomputed)return this;var t={doubles:null,naf:null,beta:null};return t.naf=this._getNAFPoints(8),t.doubles=this._getDoubles(4,e),t.beta=this._getBeta(),this.precomputed=t,this},c.prototype._hasDoubles=function(e){if(!this.precomputed)return!1;var t=this.precomputed.doubles;return!!t&&t.points.length>=Math.ceil((e.bitLength()+1)/t.step)},c.prototype._getDoubles=function(e,t){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var r=[this],n=this,i=0;i<t;i+=e){for(var o=0;o<e;o++)n=n.dbl();r.push(n)}return{step:e,points:r}},c.prototype._getNAFPoints=function(e){if(this.precomputed&&this.precomputed.naf)return this.precomputed.naf;for(var t=[this],r=(1<<e)-1,n=1===r?null:this.dbl(),i=1;i<r;i++)t[i]=t[i-1].add(n);return{wnd:e,points:t}},c.prototype._getBeta=function(){return null},c.prototype.dblp=function(e){for(var t=this,r=0;r<e;r++)t=t.dbl();return t}},66964:(e,t,r)=>{"use strict";var n=r(60218),i=r(10660),o=r(19105),a=r(77975),s=n.assert;function u(e){this.twisted=1!=(0|e.a),this.mOneA=this.twisted&&-1==(0|e.a),this.extended=this.mOneA,a.call(this,"edwards",e),this.a=new i(e.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new i(e.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new i(e.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),s(!this.twisted||0===this.c.fromRed().cmpn(1)),this.oneC=1==(0|e.c)}function c(e,t,r,n,o){a.BasePoint.call(this,e,"projective"),null===t&&null===r&&null===n?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new i(t,16),this.y=new i(r,16),this.z=n?new i(n,16):this.curve.one,this.t=o&&new i(o,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}o(u,a),e.exports=u,u.prototype._mulA=function(e){return this.mOneA?e.redNeg():this.a.redMul(e)},u.prototype._mulC=function(e){return this.oneC?e:this.c.redMul(e)},u.prototype.jpoint=function(e,t,r,n){return this.point(e,t,r,n)},u.prototype.pointFromX=function(e,t){(e=new i(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr(),n=this.c2.redSub(this.a.redMul(r)),o=this.one.redSub(this.c2.redMul(this.d).redMul(r)),a=n.redMul(o.redInvm()),s=a.redSqrt();if(0!==s.redSqr().redSub(a).cmp(this.zero))throw new Error("invalid point");var u=s.fromRed().isOdd();return(t&&!u||!t&&u)&&(s=s.redNeg()),this.point(e,s)},u.prototype.pointFromY=function(e,t){(e=new i(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr(),n=r.redSub(this.c2),o=r.redMul(this.d).redMul(this.c2).redSub(this.a),a=n.redMul(o.redInvm());if(0===a.cmp(this.zero)){if(t)throw new Error("invalid point");return this.point(this.zero,e)}var s=a.redSqrt();if(0!==s.redSqr().redSub(a).cmp(this.zero))throw new Error("invalid point");return s.fromRed().isOdd()!==t&&(s=s.redNeg()),this.point(s,e)},u.prototype.validate=function(e){if(e.isInfinity())return!0;e.normalize();var t=e.x.redSqr(),r=e.y.redSqr(),n=t.redMul(this.a).redAdd(r),i=this.c2.redMul(this.one.redAdd(this.d.redMul(t).redMul(r)));return 0===n.cmp(i)},o(c,a.BasePoint),u.prototype.pointFromJSON=function(e){return c.fromJSON(this,e)},u.prototype.point=function(e,t,r,n){return new c(this,e,t,r,n)},c.fromJSON=function(e,t){return new c(e,t[0],t[1],t[2])},c.prototype.inspect=function(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+this.x.fromRed().toString(16,2)+" y: "+this.y.fromRed().toString(16,2)+" z: "+this.z.fromRed().toString(16,2)+">"},c.prototype.isInfinity=function(){return 0===this.x.cmpn(0)&&(0===this.y.cmp(this.z)||this.zOne&&0===this.y.cmp(this.curve.c))},c.prototype._extDbl=function(){var e=this.x.redSqr(),t=this.y.redSqr(),r=this.z.redSqr();r=r.redIAdd(r);var n=this.curve._mulA(e),i=this.x.redAdd(this.y).redSqr().redISub(e).redISub(t),o=n.redAdd(t),a=o.redSub(r),s=n.redSub(t),u=i.redMul(a),c=o.redMul(s),f=i.redMul(s),l=a.redMul(o);return this.curve.point(u,c,l,f)},c.prototype._projDbl=function(){var e,t,r,n,i,o,a=this.x.redAdd(this.y).redSqr(),s=this.x.redSqr(),u=this.y.redSqr();if(this.curve.twisted){var c=(n=this.curve._mulA(s)).redAdd(u);this.zOne?(e=a.redSub(s).redSub(u).redMul(c.redSub(this.curve.two)),t=c.redMul(n.redSub(u)),r=c.redSqr().redSub(c).redSub(c)):(i=this.z.redSqr(),o=c.redSub(i).redISub(i),e=a.redSub(s).redISub(u).redMul(o),t=c.redMul(n.redSub(u)),r=c.redMul(o))}else n=s.redAdd(u),i=this.curve._mulC(this.z).redSqr(),o=n.redSub(i).redSub(i),e=this.curve._mulC(a.redISub(n)).redMul(o),t=this.curve._mulC(n).redMul(s.redISub(u)),r=n.redMul(o);return this.curve.point(e,t,r)},c.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},c.prototype._extAdd=function(e){var t=this.y.redSub(this.x).redMul(e.y.redSub(e.x)),r=this.y.redAdd(this.x).redMul(e.y.redAdd(e.x)),n=this.t.redMul(this.curve.dd).redMul(e.t),i=this.z.redMul(e.z.redAdd(e.z)),o=r.redSub(t),a=i.redSub(n),s=i.redAdd(n),u=r.redAdd(t),c=o.redMul(a),f=s.redMul(u),l=o.redMul(u),d=a.redMul(s);return this.curve.point(c,f,d,l)},c.prototype._projAdd=function(e){var t,r,n=this.z.redMul(e.z),i=n.redSqr(),o=this.x.redMul(e.x),a=this.y.redMul(e.y),s=this.curve.d.redMul(o).redMul(a),u=i.redSub(s),c=i.redAdd(s),f=this.x.redAdd(this.y).redMul(e.x.redAdd(e.y)).redISub(o).redISub(a),l=n.redMul(u).redMul(f);return this.curve.twisted?(t=n.redMul(c).redMul(a.redSub(this.curve._mulA(o))),r=u.redMul(c)):(t=n.redMul(c).redMul(a.redSub(o)),r=this.curve._mulC(u).redMul(c)),this.curve.point(l,t,r)},c.prototype.add=function(e){return this.isInfinity()?e:e.isInfinity()?this:this.curve.extended?this._extAdd(e):this._projAdd(e)},c.prototype.mul=function(e){return this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve._wnafMul(this,e)},c.prototype.mulAdd=function(e,t,r){return this.curve._wnafMulAdd(1,[this,t],[e,r],2,!1)},c.prototype.jmulAdd=function(e,t,r){return this.curve._wnafMulAdd(1,[this,t],[e,r],2,!0)},c.prototype.normalize=function(){if(this.zOne)return this;var e=this.z.redInvm();return this.x=this.x.redMul(e),this.y=this.y.redMul(e),this.t&&(this.t=this.t.redMul(e)),this.z=this.curve.one,this.zOne=!0,this},c.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},c.prototype.getX=function(){return this.normalize(),this.x.fromRed()},c.prototype.getY=function(){return this.normalize(),this.y.fromRed()},c.prototype.eq=function(e){return this===e||0===this.getX().cmp(e.getX())&&0===this.getY().cmp(e.getY())},c.prototype.eqXToP=function(e){var t=e.toRed(this.curve.red).redMul(this.z);if(0===this.x.cmp(t))return!0;for(var r=e.clone(),n=this.curve.redN.redMul(this.z);;){if(r.iadd(this.curve.n),r.cmp(this.curve.p)>=0)return!1;if(t.redIAdd(n),0===this.x.cmp(t))return!0}},c.prototype.toP=c.prototype.normalize,c.prototype.mixedAdd=c.prototype.add},89751:(e,t,r)=>{"use strict";var n=t;n.base=r(77975),n.short=r(20911),n.mont=r(76777),n.edwards=r(66964)},76777:(e,t,r)=>{"use strict";var n=r(10660),i=r(19105),o=r(77975),a=r(60218);function s(e){o.call(this,"mont",e),this.a=new n(e.a,16).toRed(this.red),this.b=new n(e.b,16).toRed(this.red),this.i4=new n(4).toRed(this.red).redInvm(),this.two=new n(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}function u(e,t,r){o.BasePoint.call(this,e,"projective"),null===t&&null===r?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new n(t,16),this.z=new n(r,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}i(s,o),e.exports=s,s.prototype.validate=function(e){var t=e.normalize().x,r=t.redSqr(),n=r.redMul(t).redAdd(r.redMul(this.a)).redAdd(t);return 0===n.redSqrt().redSqr().cmp(n)},i(u,o.BasePoint),s.prototype.decodePoint=function(e,t){return this.point(a.toArray(e,t),1)},s.prototype.point=function(e,t){return new u(this,e,t)},s.prototype.pointFromJSON=function(e){return u.fromJSON(this,e)},u.prototype.precompute=function(){},u.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},u.fromJSON=function(e,t){return new u(e,t[0],t[1]||e.one)},u.prototype.inspect=function(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+this.x.fromRed().toString(16,2)+" z: "+this.z.fromRed().toString(16,2)+">"},u.prototype.isInfinity=function(){return 0===this.z.cmpn(0)},u.prototype.dbl=function(){var e=this.x.redAdd(this.z).redSqr(),t=this.x.redSub(this.z).redSqr(),r=e.redSub(t),n=e.redMul(t),i=r.redMul(t.redAdd(this.curve.a24.redMul(r)));return this.curve.point(n,i)},u.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},u.prototype.diffAdd=function(e,t){var r=this.x.redAdd(this.z),n=this.x.redSub(this.z),i=e.x.redAdd(e.z),o=e.x.redSub(e.z).redMul(r),a=i.redMul(n),s=t.z.redMul(o.redAdd(a).redSqr()),u=t.x.redMul(o.redISub(a).redSqr());return this.curve.point(s,u)},u.prototype.mul=function(e){for(var t=e.clone(),r=this,n=this.curve.point(null,null),i=[];0!==t.cmpn(0);t.iushrn(1))i.push(t.andln(1));for(var o=i.length-1;o>=0;o--)0===i[o]?(r=r.diffAdd(n,this),n=n.dbl()):(n=r.diffAdd(n,this),r=r.dbl());return n},u.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},u.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},u.prototype.eq=function(e){return 0===this.getX().cmp(e.getX())},u.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},u.prototype.getX=function(){return this.normalize(),this.x.fromRed()}},20911:(e,t,r)=>{"use strict";var n=r(60218),i=r(10660),o=r(19105),a=r(77975),s=n.assert;function u(e){a.call(this,"short",e),this.a=new i(e.a,16).toRed(this.red),this.b=new i(e.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(e),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}function c(e,t,r,n){a.BasePoint.call(this,e,"affine"),null===t&&null===r?(this.x=null,this.y=null,this.inf=!0):(this.x=new i(t,16),this.y=new i(r,16),n&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function f(e,t,r,n){a.BasePoint.call(this,e,"jacobian"),null===t&&null===r&&null===n?(this.x=this.curve.one,this.y=this.curve.one,this.z=new i(0)):(this.x=new i(t,16),this.y=new i(r,16),this.z=new i(n,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}o(u,a),e.exports=u,u.prototype._getEndomorphism=function(e){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var t,r;if(e.beta)t=new i(e.beta,16).toRed(this.red);else{var n=this._getEndoRoots(this.p);t=(t=n[0].cmp(n[1])<0?n[0]:n[1]).toRed(this.red)}if(e.lambda)r=new i(e.lambda,16);else{var o=this._getEndoRoots(this.n);0===this.g.mul(o[0]).x.cmp(this.g.x.redMul(t))?r=o[0]:(r=o[1],s(0===this.g.mul(r).x.cmp(this.g.x.redMul(t))))}return{beta:t,lambda:r,basis:e.basis?e.basis.map((function(e){return{a:new i(e.a,16),b:new i(e.b,16)}})):this._getEndoBasis(r)}}},u.prototype._getEndoRoots=function(e){var t=e===this.p?this.red:i.mont(e),r=new i(2).toRed(t).redInvm(),n=r.redNeg(),o=new i(3).toRed(t).redNeg().redSqrt().redMul(r);return[n.redAdd(o).fromRed(),n.redSub(o).fromRed()]},u.prototype._getEndoBasis=function(e){for(var t,r,n,o,a,s,u,c,f,l=this.n.ushrn(Math.floor(this.n.bitLength()/2)),d=e,h=this.n.clone(),p=new i(1),y=new i(0),g=new i(0),b=new i(1),m=0;0!==d.cmpn(0);){var v=h.div(d);c=h.sub(v.mul(d)),f=g.sub(v.mul(p));var w=b.sub(v.mul(y));if(!n&&c.cmp(l)<0)t=u.neg(),r=p,n=c.neg(),o=f;else if(n&&2==++m)break;u=c,h=d,d=c,g=p,p=f,b=y,y=w}a=c.neg(),s=f;var _=n.sqr().add(o.sqr());return a.sqr().add(s.sqr()).cmp(_)>=0&&(a=t,s=r),n.negative&&(n=n.neg(),o=o.neg()),a.negative&&(a=a.neg(),s=s.neg()),[{a:n,b:o},{a,b:s}]},u.prototype._endoSplit=function(e){var t=this.endo.basis,r=t[0],n=t[1],i=n.b.mul(e).divRound(this.n),o=r.b.neg().mul(e).divRound(this.n),a=i.mul(r.a),s=o.mul(n.a),u=i.mul(r.b),c=o.mul(n.b);return{k1:e.sub(a).sub(s),k2:u.add(c).neg()}},u.prototype.pointFromX=function(e,t){(e=new i(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr().redMul(e).redIAdd(e.redMul(this.a)).redIAdd(this.b),n=r.redSqrt();if(0!==n.redSqr().redSub(r).cmp(this.zero))throw new Error("invalid point");var o=n.fromRed().isOdd();return(t&&!o||!t&&o)&&(n=n.redNeg()),this.point(e,n)},u.prototype.validate=function(e){if(e.inf)return!0;var t=e.x,r=e.y,n=this.a.redMul(t),i=t.redSqr().redMul(t).redIAdd(n).redIAdd(this.b);return 0===r.redSqr().redISub(i).cmpn(0)},u.prototype._endoWnafMulAdd=function(e,t,r){for(var n=this._endoWnafT1,i=this._endoWnafT2,o=0;o<e.length;o++){var a=this._endoSplit(t[o]),s=e[o],u=s._getBeta();a.k1.negative&&(a.k1.ineg(),s=s.neg(!0)),a.k2.negative&&(a.k2.ineg(),u=u.neg(!0)),n[2*o]=s,n[2*o+1]=u,i[2*o]=a.k1,i[2*o+1]=a.k2}for(var c=this._wnafMulAdd(1,n,i,2*o,r),f=0;f<2*o;f++)n[f]=null,i[f]=null;return c},o(c,a.BasePoint),u.prototype.point=function(e,t,r){return new c(this,e,t,r)},u.prototype.pointFromJSON=function(e,t){return c.fromJSON(this,e,t)},c.prototype._getBeta=function(){if(this.curve.endo){var e=this.precomputed;if(e&&e.beta)return e.beta;var t=this.curve.point(this.x.redMul(this.curve.endo.beta),this.y);if(e){var r=this.curve,n=function(e){return r.point(e.x.redMul(r.endo.beta),e.y)};e.beta=t,t.precomputed={beta:null,naf:e.naf&&{wnd:e.naf.wnd,points:e.naf.points.map(n)},doubles:e.doubles&&{step:e.doubles.step,points:e.doubles.points.map(n)}}}return t}},c.prototype.toJSON=function(){return this.precomputed?[this.x,this.y,this.precomputed&&{doubles:this.precomputed.doubles&&{step:this.precomputed.doubles.step,points:this.precomputed.doubles.points.slice(1)},naf:this.precomputed.naf&&{wnd:this.precomputed.naf.wnd,points:this.precomputed.naf.points.slice(1)}}]:[this.x,this.y]},c.fromJSON=function(e,t,r){"string"==typeof t&&(t=JSON.parse(t));var n=e.point(t[0],t[1],r);if(!t[2])return n;function i(t){return e.point(t[0],t[1],r)}var o=t[2];return n.precomputed={beta:null,doubles:o.doubles&&{step:o.doubles.step,points:[n].concat(o.doubles.points.map(i))},naf:o.naf&&{wnd:o.naf.wnd,points:[n].concat(o.naf.points.map(i))}},n},c.prototype.inspect=function(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+this.x.fromRed().toString(16,2)+" y: "+this.y.fromRed().toString(16,2)+">"},c.prototype.isInfinity=function(){return this.inf},c.prototype.add=function(e){if(this.inf)return e;if(e.inf)return this;if(this.eq(e))return this.dbl();if(this.neg().eq(e))return this.curve.point(null,null);if(0===this.x.cmp(e.x))return this.curve.point(null,null);var t=this.y.redSub(e.y);0!==t.cmpn(0)&&(t=t.redMul(this.x.redSub(e.x).redInvm()));var r=t.redSqr().redISub(this.x).redISub(e.x),n=t.redMul(this.x.redSub(r)).redISub(this.y);return this.curve.point(r,n)},c.prototype.dbl=function(){if(this.inf)return this;var e=this.y.redAdd(this.y);if(0===e.cmpn(0))return this.curve.point(null,null);var t=this.curve.a,r=this.x.redSqr(),n=e.redInvm(),i=r.redAdd(r).redIAdd(r).redIAdd(t).redMul(n),o=i.redSqr().redISub(this.x.redAdd(this.x)),a=i.redMul(this.x.redSub(o)).redISub(this.y);return this.curve.point(o,a)},c.prototype.getX=function(){return this.x.fromRed()},c.prototype.getY=function(){return this.y.fromRed()},c.prototype.mul=function(e){return e=new i(e,16),this.isInfinity()?this:this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve.endo?this.curve._endoWnafMulAdd([this],[e]):this.curve._wnafMul(this,e)},c.prototype.mulAdd=function(e,t,r){var n=[this,t],i=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,i):this.curve._wnafMulAdd(1,n,i,2)},c.prototype.jmulAdd=function(e,t,r){var n=[this,t],i=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,i,!0):this.curve._wnafMulAdd(1,n,i,2,!0)},c.prototype.eq=function(e){return this===e||this.inf===e.inf&&(this.inf||0===this.x.cmp(e.x)&&0===this.y.cmp(e.y))},c.prototype.neg=function(e){if(this.inf)return this;var t=this.curve.point(this.x,this.y.redNeg());if(e&&this.precomputed){var r=this.precomputed,n=function(e){return e.neg()};t.precomputed={naf:r.naf&&{wnd:r.naf.wnd,points:r.naf.points.map(n)},doubles:r.doubles&&{step:r.doubles.step,points:r.doubles.points.map(n)}}}return t},c.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},o(f,a.BasePoint),u.prototype.jpoint=function(e,t,r){return new f(this,e,t,r)},f.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var e=this.z.redInvm(),t=e.redSqr(),r=this.x.redMul(t),n=this.y.redMul(t).redMul(e);return this.curve.point(r,n)},f.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},f.prototype.add=function(e){if(this.isInfinity())return e;if(e.isInfinity())return this;var t=e.z.redSqr(),r=this.z.redSqr(),n=this.x.redMul(t),i=e.x.redMul(r),o=this.y.redMul(t.redMul(e.z)),a=e.y.redMul(r.redMul(this.z)),s=n.redSub(i),u=o.redSub(a);if(0===s.cmpn(0))return 0!==u.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var c=s.redSqr(),f=c.redMul(s),l=n.redMul(c),d=u.redSqr().redIAdd(f).redISub(l).redISub(l),h=u.redMul(l.redISub(d)).redISub(o.redMul(f)),p=this.z.redMul(e.z).redMul(s);return this.curve.jpoint(d,h,p)},f.prototype.mixedAdd=function(e){if(this.isInfinity())return e.toJ();if(e.isInfinity())return this;var t=this.z.redSqr(),r=this.x,n=e.x.redMul(t),i=this.y,o=e.y.redMul(t).redMul(this.z),a=r.redSub(n),s=i.redSub(o);if(0===a.cmpn(0))return 0!==s.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var u=a.redSqr(),c=u.redMul(a),f=r.redMul(u),l=s.redSqr().redIAdd(c).redISub(f).redISub(f),d=s.redMul(f.redISub(l)).redISub(i.redMul(c)),h=this.z.redMul(a);return this.curve.jpoint(l,d,h)},f.prototype.dblp=function(e){if(0===e)return this;if(this.isInfinity())return this;if(!e)return this.dbl();var t;if(this.curve.zeroA||this.curve.threeA){var r=this;for(t=0;t<e;t++)r=r.dbl();return r}var n=this.curve.a,i=this.curve.tinv,o=this.x,a=this.y,s=this.z,u=s.redSqr().redSqr(),c=a.redAdd(a);for(t=0;t<e;t++){var f=o.redSqr(),l=c.redSqr(),d=l.redSqr(),h=f.redAdd(f).redIAdd(f).redIAdd(n.redMul(u)),p=o.redMul(l),y=h.redSqr().redISub(p.redAdd(p)),g=p.redISub(y),b=h.redMul(g);b=b.redIAdd(b).redISub(d);var m=c.redMul(s);t+1<e&&(u=u.redMul(d)),o=y,s=m,c=b}return this.curve.jpoint(o,c.redMul(i),s)},f.prototype.dbl=function(){return this.isInfinity()?this:this.curve.zeroA?this._zeroDbl():this.curve.threeA?this._threeDbl():this._dbl()},f.prototype._zeroDbl=function(){var e,t,r;if(this.zOne){var n=this.x.redSqr(),i=this.y.redSqr(),o=i.redSqr(),a=this.x.redAdd(i).redSqr().redISub(n).redISub(o);a=a.redIAdd(a);var s=n.redAdd(n).redIAdd(n),u=s.redSqr().redISub(a).redISub(a),c=o.redIAdd(o);c=(c=c.redIAdd(c)).redIAdd(c),e=u,t=s.redMul(a.redISub(u)).redISub(c),r=this.y.redAdd(this.y)}else{var f=this.x.redSqr(),l=this.y.redSqr(),d=l.redSqr(),h=this.x.redAdd(l).redSqr().redISub(f).redISub(d);h=h.redIAdd(h);var p=f.redAdd(f).redIAdd(f),y=p.redSqr(),g=d.redIAdd(d);g=(g=g.redIAdd(g)).redIAdd(g),e=y.redISub(h).redISub(h),t=p.redMul(h.redISub(e)).redISub(g),r=(r=this.y.redMul(this.z)).redIAdd(r)}return this.curve.jpoint(e,t,r)},f.prototype._threeDbl=function(){var e,t,r;if(this.zOne){var n=this.x.redSqr(),i=this.y.redSqr(),o=i.redSqr(),a=this.x.redAdd(i).redSqr().redISub(n).redISub(o);a=a.redIAdd(a);var s=n.redAdd(n).redIAdd(n).redIAdd(this.curve.a),u=s.redSqr().redISub(a).redISub(a);e=u;var c=o.redIAdd(o);c=(c=c.redIAdd(c)).redIAdd(c),t=s.redMul(a.redISub(u)).redISub(c),r=this.y.redAdd(this.y)}else{var f=this.z.redSqr(),l=this.y.redSqr(),d=this.x.redMul(l),h=this.x.redSub(f).redMul(this.x.redAdd(f));h=h.redAdd(h).redIAdd(h);var p=d.redIAdd(d),y=(p=p.redIAdd(p)).redAdd(p);e=h.redSqr().redISub(y),r=this.y.redAdd(this.z).redSqr().redISub(l).redISub(f);var g=l.redSqr();g=(g=(g=g.redIAdd(g)).redIAdd(g)).redIAdd(g),t=h.redMul(p.redISub(e)).redISub(g)}return this.curve.jpoint(e,t,r)},f.prototype._dbl=function(){var e=this.curve.a,t=this.x,r=this.y,n=this.z,i=n.redSqr().redSqr(),o=t.redSqr(),a=r.redSqr(),s=o.redAdd(o).redIAdd(o).redIAdd(e.redMul(i)),u=t.redAdd(t),c=(u=u.redIAdd(u)).redMul(a),f=s.redSqr().redISub(c.redAdd(c)),l=c.redISub(f),d=a.redSqr();d=(d=(d=d.redIAdd(d)).redIAdd(d)).redIAdd(d);var h=s.redMul(l).redISub(d),p=r.redAdd(r).redMul(n);return this.curve.jpoint(f,h,p)},f.prototype.trpl=function(){if(!this.curve.zeroA)return this.dbl().add(this);var e=this.x.redSqr(),t=this.y.redSqr(),r=this.z.redSqr(),n=t.redSqr(),i=e.redAdd(e).redIAdd(e),o=i.redSqr(),a=this.x.redAdd(t).redSqr().redISub(e).redISub(n),s=(a=(a=(a=a.redIAdd(a)).redAdd(a).redIAdd(a)).redISub(o)).redSqr(),u=n.redIAdd(n);u=(u=(u=u.redIAdd(u)).redIAdd(u)).redIAdd(u);var c=i.redIAdd(a).redSqr().redISub(o).redISub(s).redISub(u),f=t.redMul(c);f=(f=f.redIAdd(f)).redIAdd(f);var l=this.x.redMul(s).redISub(f);l=(l=l.redIAdd(l)).redIAdd(l);var d=this.y.redMul(c.redMul(u.redISub(c)).redISub(a.redMul(s)));d=(d=(d=d.redIAdd(d)).redIAdd(d)).redIAdd(d);var h=this.z.redAdd(a).redSqr().redISub(r).redISub(s);return this.curve.jpoint(l,d,h)},f.prototype.mul=function(e,t){return e=new i(e,t),this.curve._wnafMul(this,e)},f.prototype.eq=function(e){if("affine"===e.type)return this.eq(e.toJ());if(this===e)return!0;var t=this.z.redSqr(),r=e.z.redSqr();if(0!==this.x.redMul(r).redISub(e.x.redMul(t)).cmpn(0))return!1;var n=t.redMul(this.z),i=r.redMul(e.z);return 0===this.y.redMul(i).redISub(e.y.redMul(n)).cmpn(0)},f.prototype.eqXToP=function(e){var t=this.z.redSqr(),r=e.toRed(this.curve.red).redMul(t);if(0===this.x.cmp(r))return!0;for(var n=e.clone(),i=this.curve.redN.redMul(t);;){if(n.iadd(this.curve.n),n.cmp(this.curve.p)>=0)return!1;if(r.redIAdd(i),0===this.x.cmp(r))return!0}},f.prototype.inspect=function(){return this.isInfinity()?"<EC JPoint Infinity>":"<EC JPoint x: "+this.x.toString(16,2)+" y: "+this.y.toString(16,2)+" z: "+this.z.toString(16,2)+">"},f.prototype.isInfinity=function(){return 0===this.z.cmpn(0)}},51736:(e,t,r)=>{"use strict";var n,i=t,o=r(58925),a=r(89751),s=r(60218).assert;function u(e){"short"===e.type?this.curve=new a.short(e):"edwards"===e.type?this.curve=new a.edwards(e):this.curve=new a.mont(e),this.g=this.curve.g,this.n=this.curve.n,this.hash=e.hash,s(this.g.validate(),"Invalid curve"),s(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function c(e,t){Object.defineProperty(i,e,{configurable:!0,enumerable:!0,get:function(){var r=new u(t);return Object.defineProperty(i,e,{configurable:!0,enumerable:!0,value:r}),r}})}i.PresetCurve=u,c("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:o.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),c("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:o.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),c("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:o.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),c("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:o.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),c("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:o.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),c("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:o.sha256,gRed:!1,g:["9"]}),c("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:o.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{n=r(61960)}catch(e){n=void 0}c("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:o.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",n]})},68252:(e,t,r)=>{"use strict";var n=r(10660),i=r(26941),o=r(60218),a=r(51736),s=r(72486),u=o.assert,c=r(33257),f=r(25296);function l(e){if(!(this instanceof l))return new l(e);"string"==typeof e&&(u(Object.prototype.hasOwnProperty.call(a,e),"Unknown curve "+e),e=a[e]),e instanceof a.PresetCurve&&(e={curve:e}),this.curve=e.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=e.curve.g,this.g.precompute(e.curve.n.bitLength()+1),this.hash=e.hash||e.curve.hash}e.exports=l,l.prototype.keyPair=function(e){return new c(this,e)},l.prototype.keyFromPrivate=function(e,t){return c.fromPrivate(this,e,t)},l.prototype.keyFromPublic=function(e,t){return c.fromPublic(this,e,t)},l.prototype.genKeyPair=function(e){e||(e={});for(var t=new i({hash:this.hash,pers:e.pers,persEnc:e.persEnc||"utf8",entropy:e.entropy||s(this.hash.hmacStrength),entropyEnc:e.entropy&&e.entropyEnc||"utf8",nonce:this.n.toArray()}),r=this.n.byteLength(),o=this.n.sub(new n(2));;){var a=new n(t.generate(r));if(!(a.cmp(o)>0))return a.iaddn(1),this.keyFromPrivate(a)}},l.prototype._truncateToN=function(e,t){var r=8*e.byteLength()-this.n.bitLength();return r>0&&(e=e.ushrn(r)),!t&&e.cmp(this.n)>=0?e.sub(this.n):e},l.prototype.sign=function(e,t,r,o){"object"==typeof r&&(o=r,r=null),o||(o={}),t=this.keyFromPrivate(t,r),e=this._truncateToN(new n(e,16));for(var a=this.n.byteLength(),s=t.getPrivate().toArray("be",a),u=e.toArray("be",a),c=new i({hash:this.hash,entropy:s,nonce:u,pers:o.pers,persEnc:o.persEnc||"utf8"}),l=this.n.sub(new n(1)),d=0;;d++){var h=o.k?o.k(d):new n(c.generate(this.n.byteLength()));if(!((h=this._truncateToN(h,!0)).cmpn(1)<=0||h.cmp(l)>=0)){var p=this.g.mul(h);if(!p.isInfinity()){var y=p.getX(),g=y.umod(this.n);if(0!==g.cmpn(0)){var b=h.invm(this.n).mul(g.mul(t.getPrivate()).iadd(e));if(0!==(b=b.umod(this.n)).cmpn(0)){var m=(p.getY().isOdd()?1:0)|(0!==y.cmp(g)?2:0);return o.canonical&&b.cmp(this.nh)>0&&(b=this.n.sub(b),m^=1),new f({r:g,s:b,recoveryParam:m})}}}}}},l.prototype.verify=function(e,t,r,i){e=this._truncateToN(new n(e,16)),r=this.keyFromPublic(r,i);var o=(t=new f(t,"hex")).r,a=t.s;if(o.cmpn(1)<0||o.cmp(this.n)>=0)return!1;if(a.cmpn(1)<0||a.cmp(this.n)>=0)return!1;var s,u=a.invm(this.n),c=u.mul(e).umod(this.n),l=u.mul(o).umod(this.n);return this.curve._maxwellTrick?!(s=this.g.jmulAdd(c,r.getPublic(),l)).isInfinity()&&s.eqXToP(o):!(s=this.g.mulAdd(c,r.getPublic(),l)).isInfinity()&&0===s.getX().umod(this.n).cmp(o)},l.prototype.recoverPubKey=function(e,t,r,i){u((3&r)===r,"The recovery param is more than two bits"),t=new f(t,i);var o=this.n,a=new n(e),s=t.r,c=t.s,l=1&r,d=r>>1;if(s.cmp(this.curve.p.umod(this.curve.n))>=0&&d)throw new Error("Unable to find sencond key candinate");s=d?this.curve.pointFromX(s.add(this.curve.n),l):this.curve.pointFromX(s,l);var h=t.r.invm(o),p=o.sub(a).mul(h).umod(o),y=c.mul(h).umod(o);return this.g.mulAdd(p,s,y)},l.prototype.getKeyRecoveryParam=function(e,t,r,n){if(null!==(t=new f(t,n)).recoveryParam)return t.recoveryParam;for(var i=0;i<4;i++){var o;try{o=this.recoverPubKey(e,t,i)}catch(e){continue}if(o.eq(r))return i}throw new Error("Unable to find valid recovery factor")}},33257:(e,t,r)=>{"use strict";var n=r(10660),i=r(60218).assert;function o(e,t){this.ec=e,this.priv=null,this.pub=null,t.priv&&this._importPrivate(t.priv,t.privEnc),t.pub&&this._importPublic(t.pub,t.pubEnc)}e.exports=o,o.fromPublic=function(e,t,r){return t instanceof o?t:new o(e,{pub:t,pubEnc:r})},o.fromPrivate=function(e,t,r){return t instanceof o?t:new o(e,{priv:t,privEnc:r})},o.prototype.validate=function(){var e=this.getPublic();return e.isInfinity()?{result:!1,reason:"Invalid public key"}:e.validate()?e.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},o.prototype.getPublic=function(e,t){return"string"==typeof e&&(t=e,e=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),t?this.pub.encode(t,e):this.pub},o.prototype.getPrivate=function(e){return"hex"===e?this.priv.toString(16,2):this.priv},o.prototype._importPrivate=function(e,t){this.priv=new n(e,t||16),this.priv=this.priv.umod(this.ec.curve.n)},o.prototype._importPublic=function(e,t){if(e.x||e.y)return"mont"===this.ec.curve.type?i(e.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||i(e.x&&e.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(e.x,e.y));this.pub=this.ec.curve.decodePoint(e,t)},o.prototype.derive=function(e){return e.validate()||i(e.validate(),"public point not validated"),e.mul(this.priv).getX()},o.prototype.sign=function(e,t,r){return this.ec.sign(e,this,t,r)},o.prototype.verify=function(e,t){return this.ec.verify(e,t,this)},o.prototype.inspect=function(){return"<Key priv: "+(this.priv&&this.priv.toString(16,2))+" pub: "+(this.pub&&this.pub.inspect())+" >"}},25296:(e,t,r)=>{"use strict";var n=r(10660),i=r(60218),o=i.assert;function a(e,t){if(e instanceof a)return e;this._importDER(e,t)||(o(e.r&&e.s,"Signature without r or s"),this.r=new n(e.r,16),this.s=new n(e.s,16),void 0===e.recoveryParam?this.recoveryParam=null:this.recoveryParam=e.recoveryParam)}function s(){this.place=0}function u(e,t){var r=e[t.place++];if(!(128&r))return r;var n=15&r;if(0===n||n>4)return!1;for(var i=0,o=0,a=t.place;o<n;o++,a++)i<<=8,i|=e[a],i>>>=0;return!(i<=127)&&(t.place=a,i)}function c(e){for(var t=0,r=e.length-1;!e[t]&&!(128&e[t+1])&&t<r;)t++;return 0===t?e:e.slice(t)}function f(e,t){if(t<128)e.push(t);else{var r=1+(Math.log(t)/Math.LN2>>>3);for(e.push(128|r);--r;)e.push(t>>>(r<<3)&255);e.push(t)}}e.exports=a,a.prototype._importDER=function(e,t){e=i.toArray(e,t);var r=new s;if(48!==e[r.place++])return!1;var o=u(e,r);if(!1===o)return!1;if(o+r.place!==e.length)return!1;if(2!==e[r.place++])return!1;var a=u(e,r);if(!1===a)return!1;var c=e.slice(r.place,a+r.place);if(r.place+=a,2!==e[r.place++])return!1;var f=u(e,r);if(!1===f)return!1;if(e.length!==f+r.place)return!1;var l=e.slice(r.place,f+r.place);if(0===c[0]){if(!(128&c[1]))return!1;c=c.slice(1)}if(0===l[0]){if(!(128&l[1]))return!1;l=l.slice(1)}return this.r=new n(c),this.s=new n(l),this.recoveryParam=null,!0},a.prototype.toDER=function(e){var t=this.r.toArray(),r=this.s.toArray();for(128&t[0]&&(t=[0].concat(t)),128&r[0]&&(r=[0].concat(r)),t=c(t),r=c(r);!(r[0]||128&r[1]);)r=r.slice(1);var n=[2];f(n,t.length),(n=n.concat(t)).push(2),f(n,r.length);var o=n.concat(r),a=[48];return f(a,o.length),a=a.concat(o),i.encode(a,e)}},97751:(e,t,r)=>{"use strict";var n=r(58925),i=r(51736),o=r(60218),a=o.assert,s=o.parseBytes,u=r(94830),c=r(2676);function f(e){if(a("ed25519"===e,"only tested with ed25519 so far"),!(this instanceof f))return new f(e);e=i[e].curve,this.curve=e,this.g=e.g,this.g.precompute(e.n.bitLength()+1),this.pointClass=e.point().constructor,this.encodingLength=Math.ceil(e.n.bitLength()/8),this.hash=n.sha512}e.exports=f,f.prototype.sign=function(e,t){e=s(e);var r=this.keyFromSecret(t),n=this.hashInt(r.messagePrefix(),e),i=this.g.mul(n),o=this.encodePoint(i),a=this.hashInt(o,r.pubBytes(),e).mul(r.priv()),u=n.add(a).umod(this.curve.n);return this.makeSignature({R:i,S:u,Rencoded:o})},f.prototype.verify=function(e,t,r){e=s(e),t=this.makeSignature(t);var n=this.keyFromPublic(r),i=this.hashInt(t.Rencoded(),n.pubBytes(),e),o=this.g.mul(t.S());return t.R().add(n.pub().mul(i)).eq(o)},f.prototype.hashInt=function(){for(var e=this.hash(),t=0;t<arguments.length;t++)e.update(arguments[t]);return o.intFromLE(e.digest()).umod(this.curve.n)},f.prototype.keyFromPublic=function(e){return u.fromPublic(this,e)},f.prototype.keyFromSecret=function(e){return u.fromSecret(this,e)},f.prototype.makeSignature=function(e){return e instanceof c?e:new c(this,e)},f.prototype.encodePoint=function(e){var t=e.getY().toArray("le",this.encodingLength);return t[this.encodingLength-1]|=e.getX().isOdd()?128:0,t},f.prototype.decodePoint=function(e){var t=(e=o.parseBytes(e)).length-1,r=e.slice(0,t).concat(-129&e[t]),n=0!=(128&e[t]),i=o.intFromLE(r);return this.curve.pointFromY(i,n)},f.prototype.encodeInt=function(e){return e.toArray("le",this.encodingLength)},f.prototype.decodeInt=function(e){return o.intFromLE(e)},f.prototype.isPoint=function(e){return e instanceof this.pointClass}},94830:(e,t,r)=>{"use strict";var n=r(60218),i=n.assert,o=n.parseBytes,a=n.cachedProperty;function s(e,t){this.eddsa=e,this._secret=o(t.secret),e.isPoint(t.pub)?this._pub=t.pub:this._pubBytes=o(t.pub)}s.fromPublic=function(e,t){return t instanceof s?t:new s(e,{pub:t})},s.fromSecret=function(e,t){return t instanceof s?t:new s(e,{secret:t})},s.prototype.secret=function(){return this._secret},a(s,"pubBytes",(function(){return this.eddsa.encodePoint(this.pub())})),a(s,"pub",(function(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())})),a(s,"privBytes",(function(){var e=this.eddsa,t=this.hash(),r=e.encodingLength-1,n=t.slice(0,e.encodingLength);return n[0]&=248,n[r]&=127,n[r]|=64,n})),a(s,"priv",(function(){return this.eddsa.decodeInt(this.privBytes())})),a(s,"hash",(function(){return this.eddsa.hash().update(this.secret()).digest()})),a(s,"messagePrefix",(function(){return this.hash().slice(this.eddsa.encodingLength)})),s.prototype.sign=function(e){return i(this._secret,"KeyPair can only verify"),this.eddsa.sign(e,this)},s.prototype.verify=function(e,t){return this.eddsa.verify(e,t,this)},s.prototype.getSecret=function(e){return i(this._secret,"KeyPair is public only"),n.encode(this.secret(),e)},s.prototype.getPublic=function(e){return n.encode(this.pubBytes(),e)},e.exports=s},2676:(e,t,r)=>{"use strict";var n=r(10660),i=r(60218),o=i.assert,a=i.cachedProperty,s=i.parseBytes;function u(e,t){this.eddsa=e,"object"!=typeof t&&(t=s(t)),Array.isArray(t)&&(t={R:t.slice(0,e.encodingLength),S:t.slice(e.encodingLength)}),o(t.R&&t.S,"Signature without R or S"),e.isPoint(t.R)&&(this._R=t.R),t.S instanceof n&&(this._S=t.S),this._Rencoded=Array.isArray(t.R)?t.R:t.Rencoded,this._Sencoded=Array.isArray(t.S)?t.S:t.Sencoded}a(u,"S",(function(){return this.eddsa.decodeInt(this.Sencoded())})),a(u,"R",(function(){return this.eddsa.decodePoint(this.Rencoded())})),a(u,"Rencoded",(function(){return this.eddsa.encodePoint(this.R())})),a(u,"Sencoded",(function(){return this.eddsa.encodeInt(this.S())})),u.prototype.toBytes=function(){return this.Rencoded().concat(this.Sencoded())},u.prototype.toHex=function(){return i.encode(this.toBytes(),"hex").toUpperCase()},e.exports=u},61960:e=>{e.exports={doubles:{step:4,points:[["e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a","f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821"],["8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508","11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf"],["175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739","d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695"],["363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640","4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9"],["8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c","4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36"],["723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda","96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f"],["eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa","5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999"],["100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0","cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09"],["e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d","9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d"],["feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d","e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088"],["da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1","9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d"],["53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0","5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8"],["8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047","10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a"],["385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862","283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453"],["6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7","7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160"],["3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd","56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0"],["85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83","7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6"],["948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a","53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589"],["6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8","bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17"],["e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d","4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda"],["e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725","7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd"],["213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754","4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2"],["4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c","17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6"],["fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6","6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f"],["76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39","c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01"],["c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891","893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3"],["d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b","febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f"],["b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03","2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7"],["e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d","eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78"],["a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070","7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1"],["90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4","e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150"],["8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da","662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82"],["e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11","1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc"],["8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e","efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b"],["e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41","2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51"],["b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef","67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45"],["d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8","db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120"],["324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d","648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84"],["4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96","35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d"],["9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd","ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d"],["6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5","9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8"],["a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266","40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8"],["7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71","34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac"],["928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac","c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f"],["85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751","1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962"],["ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e","493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907"],["827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241","c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec"],["eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3","be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d"],["e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f","4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414"],["1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19","aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd"],["146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be","b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0"],["fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9","6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811"],["da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2","8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1"],["a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13","7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c"],["174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c","ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73"],["959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba","2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd"],["d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151","e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405"],["64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073","d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589"],["8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458","38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e"],["13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b","69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27"],["bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366","d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1"],["8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa","40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482"],["8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0","620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945"],["dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787","7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573"],["f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e","ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82"]]},naf:{wnd:7,points:[["f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9","388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672"],["2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4","d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6"],["5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc","6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da"],["acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe","cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37"],["774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb","d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b"],["f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8","ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81"],["d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e","581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58"],["defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34","4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77"],["2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c","85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a"],["352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5","321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c"],["2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f","2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67"],["9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714","73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402"],["daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729","a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55"],["c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db","2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482"],["6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4","e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82"],["1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5","b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396"],["605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479","2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49"],["62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d","80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf"],["80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f","1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a"],["7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb","d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7"],["d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9","eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933"],["49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963","758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a"],["77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74","958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6"],["f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530","e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37"],["463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b","5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e"],["f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247","cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6"],["caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1","cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476"],["2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120","4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40"],["7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435","91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61"],["754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18","673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683"],["e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8","59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5"],["186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb","3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b"],["df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f","55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417"],["5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143","efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868"],["290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba","e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a"],["af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45","f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6"],["766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a","744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996"],["59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e","c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e"],["f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8","e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d"],["7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c","30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2"],["948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519","e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e"],["7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab","100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437"],["3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca","ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311"],["d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf","8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4"],["1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610","68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575"],["733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4","f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d"],["15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c","d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d"],["a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940","edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629"],["e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980","a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06"],["311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3","66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374"],["34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf","9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee"],["f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63","4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1"],["d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448","fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b"],["32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf","5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661"],["7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5","8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6"],["ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6","8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e"],["16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5","5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d"],["eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99","f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc"],["78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51","f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4"],["494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5","42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c"],["a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5","204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b"],["c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997","4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913"],["841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881","73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154"],["5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5","39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865"],["36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66","d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc"],["336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726","ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224"],["8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede","6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e"],["1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94","60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6"],["85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31","3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511"],["29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51","b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b"],["a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252","ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2"],["4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5","cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c"],["d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b","6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3"],["ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4","322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d"],["af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f","6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700"],["e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889","2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4"],["591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246","b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196"],["11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984","998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4"],["3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a","b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257"],["cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030","bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13"],["c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197","6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096"],["c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593","c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38"],["a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef","21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f"],["347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38","60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448"],["da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a","49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a"],["c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111","5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4"],["4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502","7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437"],["3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea","be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7"],["cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26","8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d"],["b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986","39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a"],["d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e","62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54"],["48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4","25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77"],["dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda","ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517"],["6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859","cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10"],["e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f","f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125"],["eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c","6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e"],["13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942","fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1"],["ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a","1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2"],["b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80","5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423"],["ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d","438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8"],["8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1","cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758"],["52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63","c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375"],["e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352","6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d"],["7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193","ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec"],["5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00","9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0"],["32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58","ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c"],["e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7","d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4"],["8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8","c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f"],["4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e","67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649"],["3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d","cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826"],["674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b","299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5"],["d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f","f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87"],["30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6","462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b"],["be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297","62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc"],["93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a","7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c"],["b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c","ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f"],["d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52","4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a"],["d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb","bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46"],["463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065","bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f"],["7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917","603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03"],["74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9","cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08"],["30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3","553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8"],["9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57","712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373"],["176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66","ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3"],["75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8","9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8"],["809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721","9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1"],["1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180","4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9"]]}}},60218:(e,t,r)=>{"use strict";var n=t,i=r(10660),o=r(44647),a=r(91349);n.assert=o,n.toArray=a.toArray,n.zero2=a.zero2,n.toHex=a.toHex,n.encode=a.encode,n.getNAF=function(e,t,r){var n=new Array(Math.max(e.bitLength(),r)+1);n.fill(0);for(var i=1<<t+1,o=e.clone(),a=0;a<n.length;a++){var s,u=o.andln(i-1);o.isOdd()?(s=u>(i>>1)-1?(i>>1)-u:u,o.isubn(s)):s=0,n[a]=s,o.iushrn(1)}return n},n.getJSF=function(e,t){var r=[[],[]];e=e.clone(),t=t.clone();for(var n,i=0,o=0;e.cmpn(-i)>0||t.cmpn(-o)>0;){var a,s,u=e.andln(3)+i&3,c=t.andln(3)+o&3;3===u&&(u=-1),3===c&&(c=-1),a=0==(1&u)?0:3!=(n=e.andln(7)+i&7)&&5!==n||2!==c?u:-u,r[0].push(a),s=0==(1&c)?0:3!=(n=t.andln(7)+o&7)&&5!==n||2!==u?c:-c,r[1].push(s),2*i===a+1&&(i=1-i),2*o===s+1&&(o=1-o),e.iushrn(1),t.iushrn(1)}return r},n.cachedProperty=function(e,t,r){var n="_"+t;e.prototype[t]=function(){return void 0!==this[n]?this[n]:this[n]=r.call(this)}},n.parseBytes=function(e){return"string"==typeof e?n.toArray(e,"hex"):e},n.intFromLE=function(e){return new i(e,"hex","le")}},49442:e=>{"use strict";function t(e,t){if(null==e)throw new TypeError("Cannot convert first argument to object");for(var r=Object(e),n=1;n<arguments.length;n++){var i=arguments[n];if(null!=i)for(var o=Object.keys(Object(i)),a=0,s=o.length;a<s;a++){var u=o[a],c=Object.getOwnPropertyDescriptor(i,u);void 0!==c&&c.enumerable&&(r[u]=i[u])}}return r}e.exports={assign:t,polyfill:function(){Object.assign||Object.defineProperty(Object,"assign",{enumerable:!1,configurable:!0,writable:!0,value:t})}}},67725:e=>{"use strict";var t,r="object"==typeof Reflect?Reflect:null,n=r&&"function"==typeof r.apply?r.apply:function(e,t,r){return Function.prototype.apply.call(e,t,r)};t=r&&"function"==typeof r.ownKeys?r.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var i=Number.isNaN||function(e){return e!=e};function o(){o.init.call(this)}e.exports=o,e.exports.once=function(e,t){return new Promise((function(r,n){function i(r){e.removeListener(t,o),n(r)}function o(){"function"==typeof e.removeListener&&e.removeListener("error",i),r([].slice.call(arguments))}y(e,t,o,{once:!0}),"error"!==t&&function(e,t,r){"function"==typeof e.on&&y(e,"error",t,{once:!0})}(e,i)}))},o.EventEmitter=o,o.prototype._events=void 0,o.prototype._eventsCount=0,o.prototype._maxListeners=void 0;var a=10;function s(e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function u(e){return void 0===e._maxListeners?o.defaultMaxListeners:e._maxListeners}function c(e,t,r,n){var i,o,a,c;if(s(r),void 0===(o=e._events)?(o=e._events=Object.create(null),e._eventsCount=0):(void 0!==o.newListener&&(e.emit("newListener",t,r.listener?r.listener:r),o=e._events),a=o[t]),void 0===a)a=o[t]=r,++e._eventsCount;else if("function"==typeof a?a=o[t]=n?[r,a]:[a,r]:n?a.unshift(r):a.push(r),(i=u(e))>0&&a.length>i&&!a.warned){a.warned=!0;var f=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");f.name="MaxListenersExceededWarning",f.emitter=e,f.type=t,f.count=a.length,c=f,console&&console.warn&&console.warn(c)}return e}function f(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function l(e,t,r){var n={fired:!1,wrapFn:void 0,target:e,type:t,listener:r},i=f.bind(n);return i.listener=r,n.wrapFn=i,i}function d(e,t,r){var n=e._events;if(void 0===n)return[];var i=n[t];return void 0===i?[]:"function"==typeof i?r?[i.listener||i]:[i]:r?function(e){for(var t=new Array(e.length),r=0;r<t.length;++r)t[r]=e[r].listener||e[r];return t}(i):p(i,i.length)}function h(e){var t=this._events;if(void 0!==t){var r=t[e];if("function"==typeof r)return 1;if(void 0!==r)return r.length}return 0}function p(e,t){for(var r=new Array(t),n=0;n<t;++n)r[n]=e[n];return r}function y(e,t,r,n){if("function"==typeof e.on)n.once?e.once(t,r):e.on(t,r);else{if("function"!=typeof e.addEventListener)throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e);e.addEventListener(t,(function i(o){n.once&&e.removeEventListener(t,i),r(o)}))}}Object.defineProperty(o,"defaultMaxListeners",{enumerable:!0,get:function(){return a},set:function(e){if("number"!=typeof e||e<0||i(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");a=e}}),o.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},o.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||i(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this},o.prototype.getMaxListeners=function(){return u(this)},o.prototype.emit=function(e){for(var t=[],r=1;r<arguments.length;r++)t.push(arguments[r]);var i="error"===e,o=this._events;if(void 0!==o)i=i&&void 0===o.error;else if(!i)return!1;if(i){var a;if(t.length>0&&(a=t[0]),a instanceof Error)throw a;var s=new Error("Unhandled error."+(a?" ("+a.message+")":""));throw s.context=a,s}var u=o[e];if(void 0===u)return!1;if("function"==typeof u)n(u,this,t);else{var c=u.length,f=p(u,c);for(r=0;r<c;++r)n(f[r],this,t)}return!0},o.prototype.addListener=function(e,t){return c(this,e,t,!1)},o.prototype.on=o.prototype.addListener,o.prototype.prependListener=function(e,t){return c(this,e,t,!0)},o.prototype.once=function(e,t){return s(t),this.on(e,l(this,e,t)),this},o.prototype.prependOnceListener=function(e,t){return s(t),this.prependListener(e,l(this,e,t)),this},o.prototype.removeListener=function(e,t){var r,n,i,o,a;if(s(t),void 0===(n=this._events))return this;if(void 0===(r=n[e]))return this;if(r===t||r.listener===t)0==--this._eventsCount?this._events=Object.create(null):(delete n[e],n.removeListener&&this.emit("removeListener",e,r.listener||t));else if("function"!=typeof r){for(i=-1,o=r.length-1;o>=0;o--)if(r[o]===t||r[o].listener===t){a=r[o].listener,i=o;break}if(i<0)return this;0===i?r.shift():function(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}(r,i),1===r.length&&(n[e]=r[0]),void 0!==n.removeListener&&this.emit("removeListener",e,a||t)}return this},o.prototype.off=o.prototype.removeListener,o.prototype.removeAllListeners=function(e){var t,r,n;if(void 0===(r=this._events))return this;if(void 0===r.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==r[e]&&(0==--this._eventsCount?this._events=Object.create(null):delete r[e]),this;if(0===arguments.length){var i,o=Object.keys(r);for(n=0;n<o.length;++n)"removeListener"!==(i=o[n])&&this.removeAllListeners(i);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if("function"==typeof(t=r[e]))this.removeListener(e,t);else if(void 0!==t)for(n=t.length-1;n>=0;n--)this.removeListener(e,t[n]);return this},o.prototype.listeners=function(e){return d(this,e,!0)},o.prototype.rawListeners=function(e){return d(this,e,!1)},o.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):h.call(e,t)},o.prototype.listenerCount=h,o.prototype.eventNames=function(){return this._eventsCount>0?t(this._events):[]}},94428:(e,t,r)=>{var n=r(59105).Buffer,i=r(54659);e.exports=function(e,t,r,o){if(n.isBuffer(e)||(e=n.from(e,"binary")),t&&(n.isBuffer(t)||(t=n.from(t,"binary")),8!==t.length))throw new RangeError("salt should be Buffer with 8 byte length");for(var a=r/8,s=n.alloc(a),u=n.alloc(o||0),c=n.alloc(0);a>0||o>0;){var f=new i;f.update(c),f.update(e),t&&f.update(t),c=f.digest();var l=0;if(a>0){var d=s.length-a;l=Math.min(a,c.length),c.copy(s,d,0,l),a-=l}if(l<c.length&&o>0){var h=u.length-o,p=Math.min(o,c.length-l);c.copy(u,h,l,l+p),o-=p}}return c.fill(0),{key:s,iv:u}}},15583:(e,t,r)=>{"use strict";var n=r(68416),i=Object.prototype.toString,o=Object.prototype.hasOwnProperty;e.exports=function(e,t,r){if(!n(t))throw new TypeError("iterator must be a function");var a;arguments.length>=3&&(a=r),"[object Array]"===i.call(e)?function(e,t,r){for(var n=0,i=e.length;n<i;n++)o.call(e,n)&&(null==r?t(e[n],n,e):t.call(r,e[n],n,e))}(e,t,a):"string"==typeof e?function(e,t,r){for(var n=0,i=e.length;n<i;n++)null==r?t(e.charAt(n),n,e):t.call(r,e.charAt(n),n,e)}(e,t,a):function(e,t,r){for(var n in e)o.call(e,n)&&(null==r?t(e[n],n,e):t.call(r,e[n],n,e))}(e,t,a)}},3843:e=>{"use strict";var t=Array.prototype.slice,r=Object.prototype.toString;e.exports=function(e){var n=this;if("function"!=typeof n||"[object Function]"!==r.call(n))throw new TypeError("Function.prototype.bind called on incompatible "+n);for(var i,o=t.call(arguments,1),a=Math.max(0,n.length-o.length),s=[],u=0;u<a;u++)s.push("$"+u);if(i=Function("binder","return function ("+s.join(",")+"){ return binder.apply(this,arguments); }")((function(){if(this instanceof i){var r=n.apply(this,o.concat(t.call(arguments)));return Object(r)===r?r:this}return n.apply(e,o.concat(t.call(arguments)))})),n.prototype){var c=function(){};c.prototype=n.prototype,i.prototype=new c,c.prototype=null}return i}},85395:(e,t,r)=>{"use strict";var n=r(3843);e.exports=Function.prototype.bind||n},65205:(e,t,r)=>{"use strict";var n,i=SyntaxError,o=Function,a=TypeError,s=function(e){try{return o('"use strict"; return ('+e+").constructor;")()}catch(e){}},u=Object.getOwnPropertyDescriptor;if(u)try{u({},"")}catch(e){u=null}var c=function(){throw new a},f=u?function(){try{return c}catch(e){try{return u(arguments,"callee").get}catch(e){return c}}}():c,l=r(89191)(),d=r(18757)(),h=Object.getPrototypeOf||(d?function(e){return e.__proto__}:null),p={},y="undefined"!=typeof Uint8Array&&h?h(Uint8Array):n,g={"%AggregateError%":"undefined"==typeof AggregateError?n:AggregateError,"%Array%":Array,"%ArrayBuffer%":"undefined"==typeof ArrayBuffer?n:ArrayBuffer,"%ArrayIteratorPrototype%":l&&h?h([][Symbol.iterator]()):n,"%AsyncFromSyncIteratorPrototype%":n,"%AsyncFunction%":p,"%AsyncGenerator%":p,"%AsyncGeneratorFunction%":p,"%AsyncIteratorPrototype%":p,"%Atomics%":"undefined"==typeof Atomics?n:Atomics,"%BigInt%":"undefined"==typeof BigInt?n:BigInt,"%BigInt64Array%":"undefined"==typeof BigInt64Array?n:BigInt64Array,"%BigUint64Array%":"undefined"==typeof BigUint64Array?n:BigUint64Array,"%Boolean%":Boolean,"%DataView%":"undefined"==typeof DataView?n:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":Error,"%eval%":eval,"%EvalError%":EvalError,"%Float32Array%":"undefined"==typeof Float32Array?n:Float32Array,"%Float64Array%":"undefined"==typeof Float64Array?n:Float64Array,"%FinalizationRegistry%":"undefined"==typeof FinalizationRegistry?n:FinalizationRegistry,"%Function%":o,"%GeneratorFunction%":p,"%Int8Array%":"undefined"==typeof Int8Array?n:Int8Array,"%Int16Array%":"undefined"==typeof Int16Array?n:Int16Array,"%Int32Array%":"undefined"==typeof Int32Array?n:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":l&&h?h(h([][Symbol.iterator]())):n,"%JSON%":"object"==typeof JSON?JSON:n,"%Map%":"undefined"==typeof Map?n:Map,"%MapIteratorPrototype%":"undefined"!=typeof Map&&l&&h?h((new Map)[Symbol.iterator]()):n,"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":"undefined"==typeof Promise?n:Promise,"%Proxy%":"undefined"==typeof Proxy?n:Proxy,"%RangeError%":RangeError,"%ReferenceError%":ReferenceError,"%Reflect%":"undefined"==typeof Reflect?n:Reflect,"%RegExp%":RegExp,"%Set%":"undefined"==typeof Set?n:Set,"%SetIteratorPrototype%":"undefined"!=typeof Set&&l&&h?h((new Set)[Symbol.iterator]()):n,"%SharedArrayBuffer%":"undefined"==typeof SharedArrayBuffer?n:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":l&&h?h(""[Symbol.iterator]()):n,"%Symbol%":l?Symbol:n,"%SyntaxError%":i,"%ThrowTypeError%":f,"%TypedArray%":y,"%TypeError%":a,"%Uint8Array%":"undefined"==typeof Uint8Array?n:Uint8Array,"%Uint8ClampedArray%":"undefined"==typeof Uint8ClampedArray?n:Uint8ClampedArray,"%Uint16Array%":"undefined"==typeof Uint16Array?n:Uint16Array,"%Uint32Array%":"undefined"==typeof Uint32Array?n:Uint32Array,"%URIError%":URIError,"%WeakMap%":"undefined"==typeof WeakMap?n:WeakMap,"%WeakRef%":"undefined"==typeof WeakRef?n:WeakRef,"%WeakSet%":"undefined"==typeof WeakSet?n:WeakSet};if(h)try{null.error}catch(e){var b=h(h(e));g["%Error.prototype%"]=b}var m=function e(t){var r;if("%AsyncFunction%"===t)r=s("async function () {}");else if("%GeneratorFunction%"===t)r=s("function* () {}");else if("%AsyncGeneratorFunction%"===t)r=s("async function* () {}");else if("%AsyncGenerator%"===t){var n=e("%AsyncGeneratorFunction%");n&&(r=n.prototype)}else if("%AsyncIteratorPrototype%"===t){var i=e("%AsyncGenerator%");i&&h&&(r=h(i.prototype))}return g[t]=r,r},v={"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},w=r(85395),_=r(86541),E=w.call(Function.call,Array.prototype.concat),S=w.call(Function.apply,Array.prototype.splice),A=w.call(Function.call,String.prototype.replace),O=w.call(Function.call,String.prototype.slice),M=w.call(Function.call,RegExp.prototype.exec),T=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,I=/\\(\\)?/g,N=function(e,t){var r,n=e;if(_(v,n)&&(n="%"+(r=v[n])[0]+"%"),_(g,n)){var o=g[n];if(o===p&&(o=m(n)),void 0===o&&!t)throw new a("intrinsic "+e+" exists, but is not available. Please file an issue!");return{alias:r,name:n,value:o}}throw new i("intrinsic "+e+" does not exist!")};e.exports=function(e,t){if("string"!=typeof e||0===e.length)throw new a("intrinsic name must be a non-empty string");if(arguments.length>1&&"boolean"!=typeof t)throw new a('"allowMissing" argument must be a boolean');if(null===M(/^%?[^%]*%?$/,e))throw new i("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var r=function(e){var t=O(e,0,1),r=O(e,-1);if("%"===t&&"%"!==r)throw new i("invalid intrinsic syntax, expected closing `%`");if("%"===r&&"%"!==t)throw new i("invalid intrinsic syntax, expected opening `%`");var n=[];return A(e,T,(function(e,t,r,i){n[n.length]=r?A(i,I,"$1"):t||e})),n}(e),n=r.length>0?r[0]:"",o=N("%"+n+"%",t),s=o.name,c=o.value,f=!1,l=o.alias;l&&(n=l[0],S(r,E([0,1],l)));for(var d=1,h=!0;d<r.length;d+=1){var p=r[d],y=O(p,0,1),b=O(p,-1);if(('"'===y||"'"===y||"`"===y||'"'===b||"'"===b||"`"===b)&&y!==b)throw new i("property names with quotes must have matching quotes");if("constructor"!==p&&h||(f=!0),_(g,s="%"+(n+="."+p)+"%"))c=g[s];else if(null!=c){if(!(p in c)){if(!t)throw new a("base intrinsic for "+e+" exists, but the property is not available.");return}if(u&&d+1>=r.length){var m=u(c,p);c=(h=!!m)&&"get"in m&&!("originalValue"in m.get)?m.get:c[p]}else h=_(c,p),c=c[p];h&&!f&&(g[s]=c)}}return c}},558:(e,t,r)=>{"use strict";var n=r(65205)("%Object.getOwnPropertyDescriptor%",!0);if(n)try{n([],"length")}catch(e){n=null}e.exports=n},23280:(e,t,r)=>{"use strict";var n=r(65205)("%Object.defineProperty%",!0),i=function(){if(n)try{return n({},"a",{value:1}),!0}catch(e){return!1}return!1};i.hasArrayLengthDefineBug=function(){if(!i())return null;try{return 1!==n([],"length",{value:1}).length}catch(e){return!0}},e.exports=i},18757:e=>{"use strict";var t={foo:{}},r=Object;e.exports=function(){return{__proto__:t}.foo===t.foo&&!({__proto__:null}instanceof r)}},89191:(e,t,r)=>{"use strict";var n="undefined"!=typeof Symbol&&Symbol,i=r(62267);e.exports=function(){return"function"==typeof n&&"function"==typeof Symbol&&"symbol"==typeof n("foo")&&"symbol"==typeof Symbol("bar")&&i()}},62267:e=>{"use strict";e.exports=function(){if("function"!=typeof Symbol||"function"!=typeof Object.getOwnPropertySymbols)return!1;if("symbol"==typeof Symbol.iterator)return!0;var e={},t=Symbol("test"),r=Object(t);if("string"==typeof t)return!1;if("[object Symbol]"!==Object.prototype.toString.call(t))return!1;if("[object Symbol]"!==Object.prototype.toString.call(r))return!1;for(t in e[t]=42,e)return!1;if("function"==typeof Object.keys&&0!==Object.keys(e).length)return!1;if("function"==typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(e).length)return!1;var n=Object.getOwnPropertySymbols(e);if(1!==n.length||n[0]!==t)return!1;if(!Object.prototype.propertyIsEnumerable.call(e,t))return!1;if("function"==typeof Object.getOwnPropertyDescriptor){var i=Object.getOwnPropertyDescriptor(e,t);if(42!==i.value||!0!==i.enumerable)return!1}return!0}},16697:(e,t,r)=>{"use strict";var n=r(62267);e.exports=function(){return n()&&!!Symbol.toStringTag}},86541:(e,t,r)=>{"use strict";var n=r(85395);e.exports=n.call(Function.call,Object.prototype.hasOwnProperty)},35921:(e,t,r)=>{"use strict";var n=r(59105).Buffer,i=r(8542).Transform;function o(e){i.call(this),this._block=n.allocUnsafe(e),this._blockSize=e,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}r(19105)(o,i),o.prototype._transform=function(e,t,r){var n=null;try{this.update(e,t)}catch(e){n=e}r(n)},o.prototype._flush=function(e){var t=null;try{this.push(this.digest())}catch(e){t=e}e(t)},o.prototype.update=function(e,t){if(function(e,t){if(!n.isBuffer(e)&&"string"!=typeof e)throw new TypeError("Data must be a string or a buffer")}(e),this._finalized)throw new Error("Digest already called");n.isBuffer(e)||(e=n.from(e,t));for(var r=this._block,i=0;this._blockOffset+e.length-i>=this._blockSize;){for(var o=this._blockOffset;o<this._blockSize;)r[o++]=e[i++];this._update(),this._blockOffset=0}for(;i<e.length;)r[this._blockOffset++]=e[i++];for(var a=0,s=8*e.length;s>0;++a)this._length[a]+=s,(s=this._length[a]/4294967296|0)>0&&(this._length[a]-=4294967296*s);return this},o.prototype._update=function(){throw new Error("_update is not implemented")},o.prototype.digest=function(e){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var t=this._digest();void 0!==e&&(t=t.toString(e)),this._block.fill(0),this._blockOffset=0;for(var r=0;r<4;++r)this._length[r]=0;return t},o.prototype._digest=function(){throw new Error("_digest is not implemented")},e.exports=o},58925:(e,t,r)=>{var n=t;n.utils=r(34554),n.common=r(73390),n.sha=r(88534),n.ripemd=r(75487),n.hmac=r(55691),n.sha1=n.sha.sha1,n.sha256=n.sha.sha256,n.sha224=n.sha.sha224,n.sha384=n.sha.sha384,n.sha512=n.sha.sha512,n.ripemd160=n.ripemd.ripemd160},73390:(e,t,r)=>{"use strict";var n=r(34554),i=r(44647);function o(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}t.BlockHash=o,o.prototype.update=function(e,t){if(e=n.toArray(e,t),this.pending?this.pending=this.pending.concat(e):this.pending=e,this.pendingTotal+=e.length,this.pending.length>=this._delta8){var r=(e=this.pending).length%this._delta8;this.pending=e.slice(e.length-r,e.length),0===this.pending.length&&(this.pending=null),e=n.join32(e,0,e.length-r,this.endian);for(var i=0;i<e.length;i+=this._delta32)this._update(e,i,i+this._delta32)}return this},o.prototype.digest=function(e){return this.update(this._pad()),i(null===this.pending),this._digest(e)},o.prototype._pad=function(){var e=this.pendingTotal,t=this._delta8,r=t-(e+this.padLength)%t,n=new Array(r+this.padLength);n[0]=128;for(var i=1;i<r;i++)n[i]=0;if(e<<=3,"big"===this.endian){for(var o=8;o<this.padLength;o++)n[i++]=0;n[i++]=0,n[i++]=0,n[i++]=0,n[i++]=0,n[i++]=e>>>24&255,n[i++]=e>>>16&255,n[i++]=e>>>8&255,n[i++]=255&e}else for(n[i++]=255&e,n[i++]=e>>>8&255,n[i++]=e>>>16&255,n[i++]=e>>>24&255,n[i++]=0,n[i++]=0,n[i++]=0,n[i++]=0,o=8;o<this.padLength;o++)n[i++]=0;return n}},55691:(e,t,r)=>{"use strict";var n=r(34554),i=r(44647);function o(e,t,r){if(!(this instanceof o))return new o(e,t,r);this.Hash=e,this.blockSize=e.blockSize/8,this.outSize=e.outSize/8,this.inner=null,this.outer=null,this._init(n.toArray(t,r))}e.exports=o,o.prototype._init=function(e){e.length>this.blockSize&&(e=(new this.Hash).update(e).digest()),i(e.length<=this.blockSize);for(var t=e.length;t<this.blockSize;t++)e.push(0);for(t=0;t<e.length;t++)e[t]^=54;for(this.inner=(new this.Hash).update(e),t=0;t<e.length;t++)e[t]^=106;this.outer=(new this.Hash).update(e)},o.prototype.update=function(e,t){return this.inner.update(e,t),this},o.prototype.digest=function(e){return this.outer.update(this.inner.digest()),this.outer.digest(e)}},75487:(e,t,r)=>{"use strict";var n=r(34554),i=r(73390),o=n.rotl32,a=n.sum32,s=n.sum32_3,u=n.sum32_4,c=i.BlockHash;function f(){if(!(this instanceof f))return new f;c.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}function l(e,t,r,n){return e<=15?t^r^n:e<=31?t&r|~t&n:e<=47?(t|~r)^n:e<=63?t&n|r&~n:t^(r|~n)}function d(e){return e<=15?0:e<=31?1518500249:e<=47?1859775393:e<=63?2400959708:2840853838}function h(e){return e<=15?1352829926:e<=31?1548603684:e<=47?1836072691:e<=63?2053994217:0}n.inherits(f,c),t.ripemd160=f,f.blockSize=512,f.outSize=160,f.hmacStrength=192,f.padLength=64,f.prototype._update=function(e,t){for(var r=this.h[0],n=this.h[1],i=this.h[2],c=this.h[3],f=this.h[4],m=r,v=n,w=i,_=c,E=f,S=0;S<80;S++){var A=a(o(u(r,l(S,n,i,c),e[p[S]+t],d(S)),g[S]),f);r=f,f=c,c=o(i,10),i=n,n=A,A=a(o(u(m,l(79-S,v,w,_),e[y[S]+t],h(S)),b[S]),E),m=E,E=_,_=o(w,10),w=v,v=A}A=s(this.h[1],i,_),this.h[1]=s(this.h[2],c,E),this.h[2]=s(this.h[3],f,m),this.h[3]=s(this.h[4],r,v),this.h[4]=s(this.h[0],n,w),this.h[0]=A},f.prototype._digest=function(e){return"hex"===e?n.toHex32(this.h,"little"):n.split32(this.h,"little")};var p=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],y=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],g=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],b=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]},88534:(e,t,r)=>{"use strict";t.sha1=r(99750),t.sha224=r(39381),t.sha256=r(80207),t.sha384=r(63939),t.sha512=r(73796)},99750:(e,t,r)=>{"use strict";var n=r(34554),i=r(73390),o=r(1965),a=n.rotl32,s=n.sum32,u=n.sum32_5,c=o.ft_1,f=i.BlockHash,l=[1518500249,1859775393,2400959708,3395469782];function d(){if(!(this instanceof d))return new d;f.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}n.inherits(d,f),e.exports=d,d.blockSize=512,d.outSize=160,d.hmacStrength=80,d.padLength=64,d.prototype._update=function(e,t){for(var r=this.W,n=0;n<16;n++)r[n]=e[t+n];for(;n<r.length;n++)r[n]=a(r[n-3]^r[n-8]^r[n-14]^r[n-16],1);var i=this.h[0],o=this.h[1],f=this.h[2],d=this.h[3],h=this.h[4];for(n=0;n<r.length;n++){var p=~~(n/20),y=u(a(i,5),c(p,o,f,d),h,r[n],l[p]);h=d,d=f,f=a(o,30),o=i,i=y}this.h[0]=s(this.h[0],i),this.h[1]=s(this.h[1],o),this.h[2]=s(this.h[2],f),this.h[3]=s(this.h[3],d),this.h[4]=s(this.h[4],h)},d.prototype._digest=function(e){return"hex"===e?n.toHex32(this.h,"big"):n.split32(this.h,"big")}},39381:(e,t,r)=>{"use strict";var n=r(34554),i=r(80207);function o(){if(!(this instanceof o))return new o;i.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}n.inherits(o,i),e.exports=o,o.blockSize=512,o.outSize=224,o.hmacStrength=192,o.padLength=64,o.prototype._digest=function(e){return"hex"===e?n.toHex32(this.h.slice(0,7),"big"):n.split32(this.h.slice(0,7),"big")}},80207:(e,t,r)=>{"use strict";var n=r(34554),i=r(73390),o=r(1965),a=r(44647),s=n.sum32,u=n.sum32_4,c=n.sum32_5,f=o.ch32,l=o.maj32,d=o.s0_256,h=o.s1_256,p=o.g0_256,y=o.g1_256,g=i.BlockHash,b=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];function m(){if(!(this instanceof m))return new m;g.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=b,this.W=new Array(64)}n.inherits(m,g),e.exports=m,m.blockSize=512,m.outSize=256,m.hmacStrength=192,m.padLength=64,m.prototype._update=function(e,t){for(var r=this.W,n=0;n<16;n++)r[n]=e[t+n];for(;n<r.length;n++)r[n]=u(y(r[n-2]),r[n-7],p(r[n-15]),r[n-16]);var i=this.h[0],o=this.h[1],g=this.h[2],b=this.h[3],m=this.h[4],v=this.h[5],w=this.h[6],_=this.h[7];for(a(this.k.length===r.length),n=0;n<r.length;n++){var E=c(_,h(m),f(m,v,w),this.k[n],r[n]),S=s(d(i),l(i,o,g));_=w,w=v,v=m,m=s(b,E),b=g,g=o,o=i,i=s(E,S)}this.h[0]=s(this.h[0],i),this.h[1]=s(this.h[1],o),this.h[2]=s(this.h[2],g),this.h[3]=s(this.h[3],b),this.h[4]=s(this.h[4],m),this.h[5]=s(this.h[5],v),this.h[6]=s(this.h[6],w),this.h[7]=s(this.h[7],_)},m.prototype._digest=function(e){return"hex"===e?n.toHex32(this.h,"big"):n.split32(this.h,"big")}},63939:(e,t,r)=>{"use strict";var n=r(34554),i=r(73796);function o(){if(!(this instanceof o))return new o;i.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}n.inherits(o,i),e.exports=o,o.blockSize=1024,o.outSize=384,o.hmacStrength=192,o.padLength=128,o.prototype._digest=function(e){return"hex"===e?n.toHex32(this.h.slice(0,12),"big"):n.split32(this.h.slice(0,12),"big")}},73796:(e,t,r)=>{"use strict";var n=r(34554),i=r(73390),o=r(44647),a=n.rotr64_hi,s=n.rotr64_lo,u=n.shr64_hi,c=n.shr64_lo,f=n.sum64,l=n.sum64_hi,d=n.sum64_lo,h=n.sum64_4_hi,p=n.sum64_4_lo,y=n.sum64_5_hi,g=n.sum64_5_lo,b=i.BlockHash,m=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function v(){if(!(this instanceof v))return new v;b.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=m,this.W=new Array(160)}function w(e,t,r,n,i){var o=e&r^~e&i;return o<0&&(o+=4294967296),o}function _(e,t,r,n,i,o){var a=t&n^~t&o;return a<0&&(a+=4294967296),a}function E(e,t,r,n,i){var o=e&r^e&i^r&i;return o<0&&(o+=4294967296),o}function S(e,t,r,n,i,o){var a=t&n^t&o^n&o;return a<0&&(a+=4294967296),a}function A(e,t){var r=a(e,t,28)^a(t,e,2)^a(t,e,7);return r<0&&(r+=4294967296),r}function O(e,t){var r=s(e,t,28)^s(t,e,2)^s(t,e,7);return r<0&&(r+=4294967296),r}function M(e,t){var r=s(e,t,14)^s(e,t,18)^s(t,e,9);return r<0&&(r+=4294967296),r}function T(e,t){var r=a(e,t,1)^a(e,t,8)^u(e,t,7);return r<0&&(r+=4294967296),r}function I(e,t){var r=s(e,t,1)^s(e,t,8)^c(e,t,7);return r<0&&(r+=4294967296),r}function N(e,t){var r=s(e,t,19)^s(t,e,29)^c(e,t,6);return r<0&&(r+=4294967296),r}n.inherits(v,b),e.exports=v,v.blockSize=1024,v.outSize=512,v.hmacStrength=192,v.padLength=128,v.prototype._prepareBlock=function(e,t){for(var r=this.W,n=0;n<32;n++)r[n]=e[t+n];for(;n<r.length;n+=2){var i=(g=r[n-4],b=r[n-3],m=void 0,(m=a(g,b,19)^a(b,g,29)^u(g,b,6))<0&&(m+=4294967296),m),o=N(r[n-4],r[n-3]),s=r[n-14],c=r[n-13],f=T(r[n-30],r[n-29]),l=I(r[n-30],r[n-29]),d=r[n-32],y=r[n-31];r[n]=h(i,o,s,c,f,l,d,y),r[n+1]=p(i,o,s,c,f,l,d,y)}var g,b,m},v.prototype._update=function(e,t){this._prepareBlock(e,t);var r,n,i,s=this.W,u=this.h[0],c=this.h[1],h=this.h[2],p=this.h[3],b=this.h[4],m=this.h[5],v=this.h[6],T=this.h[7],I=this.h[8],N=this.h[9],x=this.h[10],L=this.h[11],k=this.h[12],R=this.h[13],P=this.h[14],B=this.h[15];o(this.k.length===s.length);for(var D=0;D<s.length;D+=2){var C=P,j=B,F=(i=void 0,(i=a(r=I,n=N,14)^a(r,n,18)^a(n,r,9))<0&&(i+=4294967296),i),U=M(I,N),V=w(I,0,x,0,k),H=_(0,N,0,L,0,R),z=this.k[D],q=this.k[D+1],K=s[D],W=s[D+1],G=y(C,j,F,U,V,H,z,q,K,W),Y=g(C,j,F,U,V,H,z,q,K,W);C=A(u,c),j=O(u,c),F=E(u,0,h,0,b),U=S(0,c,0,p,0,m);var $=l(C,j,F,U),X=d(C,j,F,U);P=k,B=R,k=x,R=L,x=I,L=N,I=l(v,T,G,Y),N=d(T,T,G,Y),v=b,T=m,b=h,m=p,h=u,p=c,u=l(G,Y,$,X),c=d(G,Y,$,X)}f(this.h,0,u,c),f(this.h,2,h,p),f(this.h,4,b,m),f(this.h,6,v,T),f(this.h,8,I,N),f(this.h,10,x,L),f(this.h,12,k,R),f(this.h,14,P,B)},v.prototype._digest=function(e){return"hex"===e?n.toHex32(this.h,"big"):n.split32(this.h,"big")}},1965:(e,t,r)=>{"use strict";var n=r(34554).rotr32;function i(e,t,r){return e&t^~e&r}function o(e,t,r){return e&t^e&r^t&r}function a(e,t,r){return e^t^r}t.ft_1=function(e,t,r,n){return 0===e?i(t,r,n):1===e||3===e?a(t,r,n):2===e?o(t,r,n):void 0},t.ch32=i,t.maj32=o,t.p32=a,t.s0_256=function(e){return n(e,2)^n(e,13)^n(e,22)},t.s1_256=function(e){return n(e,6)^n(e,11)^n(e,25)},t.g0_256=function(e){return n(e,7)^n(e,18)^e>>>3},t.g1_256=function(e){return n(e,17)^n(e,19)^e>>>10}},34554:(e,t,r)=>{"use strict";var n=r(44647),i=r(19105);function o(e,t){return 55296==(64512&e.charCodeAt(t))&&!(t<0||t+1>=e.length)&&56320==(64512&e.charCodeAt(t+1))}function a(e){return(e>>>24|e>>>8&65280|e<<8&16711680|(255&e)<<24)>>>0}function s(e){return 1===e.length?"0"+e:e}function u(e){return 7===e.length?"0"+e:6===e.length?"00"+e:5===e.length?"000"+e:4===e.length?"0000"+e:3===e.length?"00000"+e:2===e.length?"000000"+e:1===e.length?"0000000"+e:e}t.inherits=i,t.toArray=function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var r=[];if("string"==typeof e)if(t){if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),i=0;i<e.length;i+=2)r.push(parseInt(e[i]+e[i+1],16))}else for(var n=0,i=0;i<e.length;i++){var a=e.charCodeAt(i);a<128?r[n++]=a:a<2048?(r[n++]=a>>6|192,r[n++]=63&a|128):o(e,i)?(a=65536+((1023&a)<<10)+(1023&e.charCodeAt(++i)),r[n++]=a>>18|240,r[n++]=a>>12&63|128,r[n++]=a>>6&63|128,r[n++]=63&a|128):(r[n++]=a>>12|224,r[n++]=a>>6&63|128,r[n++]=63&a|128)}else for(i=0;i<e.length;i++)r[i]=0|e[i];return r},t.toHex=function(e){for(var t="",r=0;r<e.length;r++)t+=s(e[r].toString(16));return t},t.htonl=a,t.toHex32=function(e,t){for(var r="",n=0;n<e.length;n++){var i=e[n];"little"===t&&(i=a(i)),r+=u(i.toString(16))}return r},t.zero2=s,t.zero8=u,t.join32=function(e,t,r,i){var o=r-t;n(o%4==0);for(var a=new Array(o/4),s=0,u=t;s<a.length;s++,u+=4){var c;c="big"===i?e[u]<<24|e[u+1]<<16|e[u+2]<<8|e[u+3]:e[u+3]<<24|e[u+2]<<16|e[u+1]<<8|e[u],a[s]=c>>>0}return a},t.split32=function(e,t){for(var r=new Array(4*e.length),n=0,i=0;n<e.length;n++,i+=4){var o=e[n];"big"===t?(r[i]=o>>>24,r[i+1]=o>>>16&255,r[i+2]=o>>>8&255,r[i+3]=255&o):(r[i+3]=o>>>24,r[i+2]=o>>>16&255,r[i+1]=o>>>8&255,r[i]=255&o)}return r},t.rotr32=function(e,t){return e>>>t|e<<32-t},t.rotl32=function(e,t){return e<<t|e>>>32-t},t.sum32=function(e,t){return e+t>>>0},t.sum32_3=function(e,t,r){return e+t+r>>>0},t.sum32_4=function(e,t,r,n){return e+t+r+n>>>0},t.sum32_5=function(e,t,r,n,i){return e+t+r+n+i>>>0},t.sum64=function(e,t,r,n){var i=e[t],o=n+e[t+1]>>>0,a=(o<n?1:0)+r+i;e[t]=a>>>0,e[t+1]=o},t.sum64_hi=function(e,t,r,n){return(t+n>>>0<t?1:0)+e+r>>>0},t.sum64_lo=function(e,t,r,n){return t+n>>>0},t.sum64_4_hi=function(e,t,r,n,i,o,a,s){var u=0,c=t;return u+=(c=c+n>>>0)<t?1:0,u+=(c=c+o>>>0)<o?1:0,e+r+i+a+(u+=(c=c+s>>>0)<s?1:0)>>>0},t.sum64_4_lo=function(e,t,r,n,i,o,a,s){return t+n+o+s>>>0},t.sum64_5_hi=function(e,t,r,n,i,o,a,s,u,c){var f=0,l=t;return f+=(l=l+n>>>0)<t?1:0,f+=(l=l+o>>>0)<o?1:0,f+=(l=l+s>>>0)<s?1:0,e+r+i+a+u+(f+=(l=l+c>>>0)<c?1:0)>>>0},t.sum64_5_lo=function(e,t,r,n,i,o,a,s,u,c){return t+n+o+s+c>>>0},t.rotr64_hi=function(e,t,r){return(t<<32-r|e>>>r)>>>0},t.rotr64_lo=function(e,t,r){return(e<<32-r|t>>>r)>>>0},t.shr64_hi=function(e,t,r){return e>>>r},t.shr64_lo=function(e,t,r){return(e<<32-r|t>>>r)>>>0}},26941:(e,t,r)=>{"use strict";var n=r(58925),i=r(91349),o=r(44647);function a(e){if(!(this instanceof a))return new a(e);this.hash=e.hash,this.predResist=!!e.predResist,this.outLen=this.hash.outSize,this.minEntropy=e.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var t=i.toArray(e.entropy,e.entropyEnc||"hex"),r=i.toArray(e.nonce,e.nonceEnc||"hex"),n=i.toArray(e.pers,e.persEnc||"hex");o(t.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(t,r,n)}e.exports=a,a.prototype._init=function(e,t,r){var n=e.concat(t).concat(r);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var i=0;i<this.V.length;i++)this.K[i]=0,this.V[i]=1;this._update(n),this._reseed=1,this.reseedInterval=281474976710656},a.prototype._hmac=function(){return new n.hmac(this.hash,this.K)},a.prototype._update=function(e){var t=this._hmac().update(this.V).update([0]);e&&(t=t.update(e)),this.K=t.digest(),this.V=this._hmac().update(this.V).digest(),e&&(this.K=this._hmac().update(this.V).update([1]).update(e).digest(),this.V=this._hmac().update(this.V).digest())},a.prototype.reseed=function(e,t,r,n){"string"!=typeof t&&(n=r,r=t,t=null),e=i.toArray(e,t),r=i.toArray(r,n),o(e.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(e.concat(r||[])),this._reseed=1},a.prototype.generate=function(e,t,r,n){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof t&&(n=r,r=t,t=null),r&&(r=i.toArray(r,n||"hex"),this._update(r));for(var o=[];o.length<e;)this.V=this._hmac().update(this.V).digest(),o=o.concat(this.V);var a=o.slice(0,e);return this._update(r),this._reseed++,i.encode(a,t)}},41178:(e,t,r)=>{var n=r(4254),i=r(85192),o=e.exports;for(var a in n)n.hasOwnProperty(a)&&(o[a]=n[a]);function s(e){if("string"==typeof e&&(e=i.parse(e)),e.protocol||(e.protocol="https:"),"https:"!==e.protocol)throw new Error('Protocol "'+e.protocol+'" not supported. Expected "https:"');return e}o.request=function(e,t){return e=s(e),n.request.call(this,e,t)},o.get=function(e,t){return e=s(e),n.get.call(this,e,t)}},98329:(e,t)=>{t.read=function(e,t,r,n,i){var o,a,s=8*i-n-1,u=(1<<s)-1,c=u>>1,f=-7,l=r?i-1:0,d=r?-1:1,h=e[t+l];for(l+=d,o=h&(1<<-f)-1,h>>=-f,f+=s;f>0;o=256*o+e[t+l],l+=d,f-=8);for(a=o&(1<<-f)-1,o>>=-f,f+=n;f>0;a=256*a+e[t+l],l+=d,f-=8);if(0===o)o=1-c;else{if(o===u)return a?NaN:1/0*(h?-1:1);a+=Math.pow(2,n),o-=c}return(h?-1:1)*a*Math.pow(2,o-n)},t.write=function(e,t,r,n,i,o){var a,s,u,c=8*o-i-1,f=(1<<c)-1,l=f>>1,d=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,h=n?0:o-1,p=n?1:-1,y=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=f):(a=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-a))<1&&(a--,u*=2),(t+=a+l>=1?d/u:d*Math.pow(2,1-l))*u>=2&&(a++,u/=2),a+l>=f?(s=0,a=f):a+l>=1?(s=(t*u-1)*Math.pow(2,i),a+=l):(s=t*Math.pow(2,l-1)*Math.pow(2,i),a=0));i>=8;e[r+h]=255&s,h+=p,s/=256,i-=8);for(a=a<<i|s,c+=i;c>0;e[r+h]=255&a,h+=p,a/=256,c-=8);e[r+h-p]|=128*y}},19105:e=>{"function"==typeof Object.create?e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(e,t){if(t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}}},1025:(e,t,r)=>{"use strict";var n=r(16697)(),i=r(34537)("Object.prototype.toString"),o=function(e){return!(n&&e&&"object"==typeof e&&Symbol.toStringTag in e)&&"[object Arguments]"===i(e)},a=function(e){return!!o(e)||null!==e&&"object"==typeof e&&"number"==typeof e.length&&e.length>=0&&"[object Array]"!==i(e)&&"[object Function]"===i(e.callee)},s=function(){return o(arguments)}();o.isLegacyArguments=a,e.exports=s?o:a},68416:e=>{"use strict";var t,r,n=Function.prototype.toString,i="object"==typeof Reflect&&null!==Reflect&&Reflect.apply;if("function"==typeof i&&"function"==typeof Object.defineProperty)try{t=Object.defineProperty({},"length",{get:function(){throw r}}),r={},i((function(){throw 42}),null,t)}catch(e){e!==r&&(i=null)}else i=null;var o=/^\s*class\b/,a=function(e){try{var t=n.call(e);return o.test(t)}catch(e){return!1}},s=function(e){try{return!a(e)&&(n.call(e),!0)}catch(e){return!1}},u=Object.prototype.toString,c="function"==typeof Symbol&&!!Symbol.toStringTag,f=!(0 in[,]),l=function(){return!1};if("object"==typeof document){var d=document.all;u.call(d)===u.call(document.all)&&(l=function(e){if((f||!e)&&(void 0===e||"object"==typeof e))try{var t=u.call(e);return("[object HTMLAllCollection]"===t||"[object HTML document.all class]"===t||"[object HTMLCollection]"===t||"[object Object]"===t)&&null==e("")}catch(e){}return!1})}e.exports=i?function(e){if(l(e))return!0;if(!e)return!1;if("function"!=typeof e&&"object"!=typeof e)return!1;try{i(e,null,t)}catch(e){if(e!==r)return!1}return!a(e)&&s(e)}:function(e){if(l(e))return!0;if(!e)return!1;if("function"!=typeof e&&"object"!=typeof e)return!1;if(c)return s(e);if(a(e))return!1;var t=u.call(e);return!("[object Function]"!==t&&"[object GeneratorFunction]"!==t&&!/^\[object HTML/.test(t))&&s(e)}},99958:(e,t,r)=>{"use strict";var n,i=Object.prototype.toString,o=Function.prototype.toString,a=/^\s*(?:function)?\*/,s=r(16697)(),u=Object.getPrototypeOf;e.exports=function(e){if("function"!=typeof e)return!1;if(a.test(o.call(e)))return!0;if(!s)return"[object GeneratorFunction]"===i.call(e);if(!u)return!1;if(void 0===n){var t=function(){if(!s)return!1;try{return Function("return function*() {}")()}catch(e){}}();n=!!t&&u(t)}return u(e)===n}},52160:e=>{"use strict";e.exports=function(e){return e!=e}},34124:(e,t,r)=>{"use strict";var n=r(47208),i=r(31907),o=r(52160),a=r(46226),s=r(28728),u=n(a(),Number);i(u,{getPolyfill:a,implementation:o,shim:s}),e.exports=u},46226:(e,t,r)=>{"use strict";var n=r(52160);e.exports=function(){return Number.isNaN&&Number.isNaN(NaN)&&!Number.isNaN("a")?Number.isNaN:n}},28728:(e,t,r)=>{"use strict";var n=r(31907),i=r(46226);e.exports=function(){var e=i();return n(Number,{isNaN:e},{isNaN:function(){return Number.isNaN!==e}}),e}},44406:(e,t,r)=>{"use strict";var n=r(15583),i=r(74546),o=r(34537),a=o("Object.prototype.toString"),s=r(16697)(),u=r(558),c="undefined"==typeof globalThis?r.g:globalThis,f=i(),l=o("Array.prototype.indexOf",!0)||function(e,t){for(var r=0;r<e.length;r+=1)if(e[r]===t)return r;return-1},d=o("String.prototype.slice"),h={},p=Object.getPrototypeOf;s&&u&&p&&n(f,(function(e){var t=new c[e];if(Symbol.toStringTag in t){var r=p(t),n=u(r,Symbol.toStringTag);if(!n){var i=p(r);n=u(i,Symbol.toStringTag)}h[e]=n.get}})),e.exports=function(e){if(!e||"object"!=typeof e)return!1;if(!s||!(Symbol.toStringTag in e)){var t=d(a(e),8,-1);return l(f,t)>-1}return!!u&&function(e){var t=!1;return n(h,(function(r,n){if(!t)try{t=r.call(e)===n}catch(e){}})),t}(e)}},26056:(e,t,r)=>{var n=r(72221)(r(9649),"DataView");e.exports=n},21102:(e,t,r)=>{var n=r(1637),i=r(16380),o=r(17408),a=r(53997),s=r(34642);function u(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}u.prototype.clear=n,u.prototype.delete=i,u.prototype.get=o,u.prototype.has=a,u.prototype.set=s,e.exports=u},36491:(e,t,r)=>{var n=r(76073),i=r(23390),o=r(42461),a=r(18190),s=r(95670);function u(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}u.prototype.clear=n,u.prototype.delete=i,u.prototype.get=o,u.prototype.has=a,u.prototype.set=s,e.exports=u},95651:(e,t,r)=>{var n=r(72221)(r(9649),"Map");e.exports=n},52290:(e,t,r)=>{var n=r(6881),i=r(25089),o=r(67548),a=r(72151),s=r(51476);function u(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}u.prototype.clear=n,u.prototype.delete=i,u.prototype.get=o,u.prototype.has=a,u.prototype.set=s,e.exports=u},36561:(e,t,r)=>{var n=r(72221)(r(9649),"Promise");e.exports=n},89018:(e,t,r)=>{var n=r(72221)(r(9649),"Set");e.exports=n},88212:(e,t,r)=>{var n=r(52290),i=r(94636),o=r(49810);function a(e){var t=-1,r=null==e?0:e.length;for(this.__data__=new n;++t<r;)this.add(e[t])}a.prototype.add=a.prototype.push=i,a.prototype.has=o,e.exports=a},47649:(e,t,r)=>{var n=r(36491),i=r(38023),o=r(39611),a=r(6138),s=r(96961),u=r(32631);function c(e){var t=this.__data__=new n(e);this.size=t.size}c.prototype.clear=i,c.prototype.delete=o,c.prototype.get=a,c.prototype.has=s,c.prototype.set=u,e.exports=c},20997:(e,t,r)=>{var n=r(9649).Symbol;e.exports=n},37830:(e,t,r)=>{var n=r(9649).Uint8Array;e.exports=n},43895:(e,t,r)=>{var n=r(72221)(r(9649),"WeakMap");e.exports=n},65757:e=>{e.exports=function(e,t,r,n){for(var i=-1,o=null==e?0:e.length;++i<o;){var a=e[i];t(n,a,r(a),e)}return n}},41155:e=>{e.exports=function(e,t){for(var r=-1,n=null==e?0:e.length,i=0,o=[];++r<n;){var a=e[r];t(a,r,e)&&(o[i++]=a)}return o}},17296:(e,t,r)=>{var n=r(4830),i=r(27987),o=r(69546),a=r(80758),s=r(95824),u=r(65739),c=Object.prototype.hasOwnProperty;e.exports=function(e,t){var r=o(e),f=!r&&i(e),l=!r&&!f&&a(e),d=!r&&!f&&!l&&u(e),h=r||f||l||d,p=h?n(e.length,String):[],y=p.length;for(var g in e)!t&&!c.call(e,g)||h&&("length"==g||l&&("offset"==g||"parent"==g)||d&&("buffer"==g||"byteLength"==g||"byteOffset"==g)||s(g,y))||p.push(g);return p}},81078:e=>{e.exports=function(e,t){for(var r=-1,n=null==e?0:e.length,i=Array(n);++r<n;)i[r]=t(e[r],r,e);return i}},35276:e=>{e.exports=function(e,t){for(var r=-1,n=t.length,i=e.length;++r<n;)e[i+r]=t[r];return e}},22289:e=>{e.exports=function(e,t){for(var r=-1,n=null==e?0:e.length;++r<n;)if(t(e[r],r,e))return!0;return!1}},88902:(e,t,r)=>{var n=r(32618),i=r(17689),o=Object.prototype.hasOwnProperty;e.exports=function(e,t,r){var a=e[t];o.call(e,t)&&i(a,r)&&(void 0!==r||t in e)||n(e,t,r)}},28627:(e,t,r)=>{var n=r(17689);e.exports=function(e,t){for(var r=e.length;r--;)if(n(e[r][0],t))return r;return-1}},78959:(e,t,r)=>{var n=r(60836);e.exports=function(e,t,r,i){return n(e,(function(e,n,o){t(i,e,r(e),o)})),i}},32618:(e,t,r)=>{var n=r(80026);e.exports=function(e,t,r){"__proto__"==t&&n?n(e,t,{configurable:!0,enumerable:!0,value:r,writable:!0}):e[t]=r}},60836:(e,t,r)=>{var n=r(17623),i=r(68804)(n);e.exports=i},33169:(e,t,r)=>{var n=r(35276),i=r(54788);e.exports=function e(t,r,o,a,s){var u=-1,c=t.length;for(o||(o=i),s||(s=[]);++u<c;){var f=t[u];r>0&&o(f)?r>1?e(f,r-1,o,a,s):n(s,f):a||(s[s.length]=f)}return s}},11453:(e,t,r)=>{var n=r(55517)();e.exports=n},17623:(e,t,r)=>{var n=r(11453),i=r(25961);e.exports=function(e,t){return e&&n(e,t,i)}},28829:(e,t,r)=>{var n=r(6927),i=r(49558);e.exports=function(e,t){for(var r=0,o=(t=n(t,e)).length;null!=e&&r<o;)e=e[i(t[r++])];return r&&r==o?e:void 0}},12506:(e,t,r)=>{var n=r(35276),i=r(69546);e.exports=function(e,t,r){var o=t(e);return i(e)?o:n(o,r(e))}},28247:(e,t,r)=>{var n=r(20997),i=r(37386),o=r(4591),a=n?n.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":a&&a in Object(e)?i(e):o(e)}},13233:e=>{e.exports=function(e,t){return null!=e&&t in Object(e)}},70621:(e,t,r)=>{var n=r(28247),i=r(17734);e.exports=function(e){return i(e)&&"[object Arguments]"==n(e)}},89107:(e,t,r)=>{var n=r(49739),i=r(17734);e.exports=function e(t,r,o,a,s){return t===r||(null==t||null==r||!i(t)&&!i(r)?t!=t&&r!=r:n(t,r,o,a,e,s))}},49739:(e,t,r)=>{var n=r(47649),i=r(79327),o=r(21550),a=r(98761),s=r(11970),u=r(69546),c=r(80758),f=r(65739),l="[object Arguments]",d="[object Array]",h="[object Object]",p=Object.prototype.hasOwnProperty;e.exports=function(e,t,r,y,g,b){var m=u(e),v=u(t),w=m?d:s(e),_=v?d:s(t),E=(w=w==l?h:w)==h,S=(_=_==l?h:_)==h,A=w==_;if(A&&c(e)){if(!c(t))return!1;m=!0,E=!1}if(A&&!E)return b||(b=new n),m||f(e)?i(e,t,r,y,g,b):o(e,t,w,r,y,g,b);if(!(1&r)){var O=E&&p.call(e,"__wrapped__"),M=S&&p.call(t,"__wrapped__");if(O||M){var T=O?e.value():e,I=M?t.value():t;return b||(b=new n),g(T,I,r,y,b)}}return!!A&&(b||(b=new n),a(e,t,r,y,g,b))}},24283:(e,t,r)=>{var n=r(47649),i=r(89107);e.exports=function(e,t,r,o){var a=r.length,s=a,u=!o;if(null==e)return!s;for(e=Object(e);a--;){var c=r[a];if(u&&c[2]?c[1]!==e[c[0]]:!(c[0]in e))return!1}for(;++a<s;){var f=(c=r[a])[0],l=e[f],d=c[1];if(u&&c[2]){if(void 0===l&&!(f in e))return!1}else{var h=new n;if(o)var p=o(l,d,f,e,t,h);if(!(void 0===p?i(d,l,3,o,h):p))return!1}}return!0}},50291:(e,t,r)=>{var n=r(93331),i=r(37114),o=r(12289),a=r(77606),s=/^\[object .+?Constructor\]$/,u=Function.prototype,c=Object.prototype,f=u.toString,l=c.hasOwnProperty,d=RegExp("^"+f.call(l).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=function(e){return!(!o(e)||i(e))&&(n(e)?d:s).test(a(e))}},89278:(e,t,r)=>{var n=r(28247),i=r(80459),o=r(17734),a={};a["[object Float32Array]"]=a["[object Float64Array]"]=a["[object Int8Array]"]=a["[object Int16Array]"]=a["[object Int32Array]"]=a["[object Uint8Array]"]=a["[object Uint8ClampedArray]"]=a["[object Uint16Array]"]=a["[object Uint32Array]"]=!0,a["[object Arguments]"]=a["[object Array]"]=a["[object ArrayBuffer]"]=a["[object Boolean]"]=a["[object DataView]"]=a["[object Date]"]=a["[object Error]"]=a["[object Function]"]=a["[object Map]"]=a["[object Number]"]=a["[object Object]"]=a["[object RegExp]"]=a["[object Set]"]=a["[object String]"]=a["[object WeakMap]"]=!1,e.exports=function(e){return o(e)&&i(e.length)&&!!a[n(e)]}},55615:(e,t,r)=>{var n=r(68835),i=r(95010),o=r(19568),a=r(69546),s=r(96730);e.exports=function(e){return"function"==typeof e?e:null==e?o:"object"==typeof e?a(e)?i(e[0],e[1]):n(e):s(e)}},59011:(e,t,r)=>{var n=r(46358),i=r(95513),o=Object.prototype.hasOwnProperty;e.exports=function(e){if(!n(e))return i(e);var t=[];for(var r in Object(e))o.call(e,r)&&"constructor"!=r&&t.push(r);return t}},56827:(e,t,r)=>{var n=r(12289),i=r(46358),o=r(34040),a=Object.prototype.hasOwnProperty;e.exports=function(e){if(!n(e))return o(e);var t=i(e),r=[];for(var s in e)("constructor"!=s||!t&&a.call(e,s))&&r.push(s);return r}},91996:(e,t,r)=>{var n=r(60836),i=r(46387);e.exports=function(e,t){var r=-1,o=i(e)?Array(e.length):[];return n(e,(function(e,n,i){o[++r]=t(e,n,i)})),o}},68835:(e,t,r)=>{var n=r(24283),i=r(96256),o=r(85447);e.exports=function(e){var t=i(e);return 1==t.length&&t[0][2]?o(t[0][0],t[0][1]):function(r){return r===e||n(r,e,t)}}},95010:(e,t,r)=>{var n=r(89107),i=r(9229),o=r(86717),a=r(65677),s=r(34834),u=r(85447),c=r(49558);e.exports=function(e,t){return a(e)&&s(t)?u(c(e),t):function(r){var a=i(r,e);return void 0===a&&a===t?o(r,e):n(t,a,3)}}},33092:(e,t,r)=>{var n=r(28829),i=r(17338),o=r(6927);e.exports=function(e,t,r){for(var a=-1,s=t.length,u={};++a<s;){var c=t[a],f=n(e,c);r(f,c)&&i(u,o(c,e),f)}return u}},74430:e=>{e.exports=function(e){return function(t){return null==t?void 0:t[e]}}},12257:(e,t,r)=>{var n=r(28829);e.exports=function(e){return function(t){return n(t,e)}}},17338:(e,t,r)=>{var n=r(88902),i=r(6927),o=r(95824),a=r(12289),s=r(49558);e.exports=function(e,t,r,u){if(!a(e))return e;for(var c=-1,f=(t=i(t,e)).length,l=f-1,d=e;null!=d&&++c<f;){var h=s(t[c]),p=r;if("__proto__"===h||"constructor"===h||"prototype"===h)return e;if(c!=l){var y=d[h];void 0===(p=u?u(y,h,d):void 0)&&(p=a(y)?y:o(t[c+1])?[]:{})}n(d,h,p),d=d[h]}return e}},4830:e=>{e.exports=function(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}},7874:(e,t,r)=>{var n=r(20997),i=r(81078),o=r(69546),a=r(42008),s=n?n.prototype:void 0,u=s?s.toString:void 0;e.exports=function e(t){if("string"==typeof t)return t;if(o(t))return i(t,e)+"";if(a(t))return u?u.call(t):"";var r=t+"";return"0"==r&&1/t==-1/0?"-0":r}},99199:e=>{e.exports=function(e){return function(t){return e(t)}}},48138:e=>{e.exports=function(e,t){return e.has(t)}},6927:(e,t,r)=>{var n=r(69546),i=r(65677),o=r(91503),a=r(39244);e.exports=function(e,t){return n(e)?e:i(e,t)?[e]:o(a(e))}},48976:(e,t,r)=>{var n=r(9649)["__core-js_shared__"];e.exports=n},97147:(e,t,r)=>{var n=r(65757),i=r(78959),o=r(55615),a=r(69546);e.exports=function(e,t){return function(r,s){var u=a(r)?n:i,c=t?t():{};return u(r,e,o(s,2),c)}}},68804:(e,t,r)=>{var n=r(46387);e.exports=function(e,t){return function(r,i){if(null==r)return r;if(!n(r))return e(r,i);for(var o=r.length,a=t?o:-1,s=Object(r);(t?a--:++a<o)&&!1!==i(s[a],a,s););return r}}},55517:e=>{e.exports=function(e){return function(t,r,n){for(var i=-1,o=Object(t),a=n(t),s=a.length;s--;){var u=a[e?s:++i];if(!1===r(o[u],u,o))break}return t}}},80026:(e,t,r)=>{var n=r(72221),i=function(){try{var e=n(Object,"defineProperty");return e({},"",{}),e}catch(e){}}();e.exports=i},79327:(e,t,r)=>{var n=r(88212),i=r(22289),o=r(48138);e.exports=function(e,t,r,a,s,u){var c=1&r,f=e.length,l=t.length;if(f!=l&&!(c&&l>f))return!1;var d=u.get(e),h=u.get(t);if(d&&h)return d==t&&h==e;var p=-1,y=!0,g=2&r?new n:void 0;for(u.set(e,t),u.set(t,e);++p<f;){var b=e[p],m=t[p];if(a)var v=c?a(m,b,p,t,e,u):a(b,m,p,e,t,u);if(void 0!==v){if(v)continue;y=!1;break}if(g){if(!i(t,(function(e,t){if(!o(g,t)&&(b===e||s(b,e,r,a,u)))return g.push(t)}))){y=!1;break}}else if(b!==m&&!s(b,m,r,a,u)){y=!1;break}}return u.delete(e),u.delete(t),y}},21550:(e,t,r)=>{var n=r(20997),i=r(37830),o=r(17689),a=r(79327),s=r(46498),u=r(56783),c=n?n.prototype:void 0,f=c?c.valueOf:void 0;e.exports=function(e,t,r,n,c,l,d){switch(r){case"[object DataView]":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case"[object ArrayBuffer]":return!(e.byteLength!=t.byteLength||!l(new i(e),new i(t)));case"[object Boolean]":case"[object Date]":case"[object Number]":return o(+e,+t);case"[object Error]":return e.name==t.name&&e.message==t.message;case"[object RegExp]":case"[object String]":return e==t+"";case"[object Map]":var h=s;case"[object Set]":var p=1&n;if(h||(h=u),e.size!=t.size&&!p)return!1;var y=d.get(e);if(y)return y==t;n|=2,d.set(e,t);var g=a(h(e),h(t),n,c,l,d);return d.delete(e),g;case"[object Symbol]":if(f)return f.call(e)==f.call(t)}return!1}},98761:(e,t,r)=>{var n=r(28616),i=Object.prototype.hasOwnProperty;e.exports=function(e,t,r,o,a,s){var u=1&r,c=n(e),f=c.length;if(f!=n(t).length&&!u)return!1;for(var l=f;l--;){var d=c[l];if(!(u?d in t:i.call(t,d)))return!1}var h=s.get(e),p=s.get(t);if(h&&p)return h==t&&p==e;var y=!0;s.set(e,t),s.set(t,e);for(var g=u;++l<f;){var b=e[d=c[l]],m=t[d];if(o)var v=u?o(m,b,d,t,e,s):o(b,m,d,e,t,s);if(!(void 0===v?b===m||a(b,m,r,o,s):v)){y=!1;break}g||(g="constructor"==d)}if(y&&!g){var w=e.constructor,_=t.constructor;w==_||!("constructor"in e)||!("constructor"in t)||"function"==typeof w&&w instanceof w&&"function"==typeof _&&_ instanceof _||(y=!1)}return s.delete(e),s.delete(t),y}},46954:(e,t,r)=>{var n="object"==typeof r.g&&r.g&&r.g.Object===Object&&r.g;e.exports=n},28616:(e,t,r)=>{var n=r(12506),i=r(4918),o=r(25961);e.exports=function(e){return n(e,o,i)}},10478:(e,t,r)=>{var n=r(12506),i=r(2659),o=r(14399);e.exports=function(e){return n(e,o,i)}},55502:(e,t,r)=>{var n=r(89983);e.exports=function(e,t){var r=e.__data__;return n(t)?r["string"==typeof t?"string":"hash"]:r.map}},96256:(e,t,r)=>{var n=r(34834),i=r(25961);e.exports=function(e){for(var t=i(e),r=t.length;r--;){var o=t[r],a=e[o];t[r]=[o,a,n(a)]}return t}},72221:(e,t,r)=>{var n=r(50291),i=r(85779);e.exports=function(e,t){var r=i(e,t);return n(r)?r:void 0}},65506:(e,t,r)=>{var n=r(78892)(Object.getPrototypeOf,Object);e.exports=n},37386:(e,t,r)=>{var n=r(20997),i=Object.prototype,o=i.hasOwnProperty,a=i.toString,s=n?n.toStringTag:void 0;e.exports=function(e){var t=o.call(e,s),r=e[s];try{e[s]=void 0;var n=!0}catch(e){}var i=a.call(e);return n&&(t?e[s]=r:delete e[s]),i}},4918:(e,t,r)=>{var n=r(41155),i=r(41258),o=Object.prototype.propertyIsEnumerable,a=Object.getOwnPropertySymbols,s=a?function(e){return null==e?[]:(e=Object(e),n(a(e),(function(t){return o.call(e,t)})))}:i;e.exports=s},2659:(e,t,r)=>{var n=r(35276),i=r(65506),o=r(4918),a=r(41258),s=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)n(t,o(e)),e=i(e);return t}:a;e.exports=s},11970:(e,t,r)=>{var n=r(26056),i=r(95651),o=r(36561),a=r(89018),s=r(43895),u=r(28247),c=r(77606),f="[object Map]",l="[object Promise]",d="[object Set]",h="[object WeakMap]",p="[object DataView]",y=c(n),g=c(i),b=c(o),m=c(a),v=c(s),w=u;(n&&w(new n(new ArrayBuffer(1)))!=p||i&&w(new i)!=f||o&&w(o.resolve())!=l||a&&w(new a)!=d||s&&w(new s)!=h)&&(w=function(e){var t=u(e),r="[object Object]"==t?e.constructor:void 0,n=r?c(r):"";if(n)switch(n){case y:return p;case g:return f;case b:return l;case m:return d;case v:return h}return t}),e.exports=w},85779:e=>{e.exports=function(e,t){return null==e?void 0:e[t]}},32889:(e,t,r)=>{var n=r(6927),i=r(27987),o=r(69546),a=r(95824),s=r(80459),u=r(49558);e.exports=function(e,t,r){for(var c=-1,f=(t=n(t,e)).length,l=!1;++c<f;){var d=u(t[c]);if(!(l=null!=e&&r(e,d)))break;e=e[d]}return l||++c!=f?l:!!(f=null==e?0:e.length)&&s(f)&&a(d,f)&&(o(e)||i(e))}},1637:(e,t,r)=>{var n=r(55586);e.exports=function(){this.__data__=n?n(null):{},this.size=0}},16380:e=>{e.exports=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}},17408:(e,t,r)=>{var n=r(55586),i=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;if(n){var r=t[e];return"__lodash_hash_undefined__"===r?void 0:r}return i.call(t,e)?t[e]:void 0}},53997:(e,t,r)=>{var n=r(55586),i=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;return n?void 0!==t[e]:i.call(t,e)}},34642:(e,t,r)=>{var n=r(55586);e.exports=function(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=n&&void 0===t?"__lodash_hash_undefined__":t,this}},54788:(e,t,r)=>{var n=r(20997),i=r(27987),o=r(69546),a=n?n.isConcatSpreadable:void 0;e.exports=function(e){return o(e)||i(e)||!!(a&&e&&e[a])}},95824:e=>{var t=/^(?:0|[1-9]\d*)$/;e.exports=function(e,r){var n=typeof e;return!!(r=null==r?9007199254740991:r)&&("number"==n||"symbol"!=n&&t.test(e))&&e>-1&&e%1==0&&e<r}},65677:(e,t,r)=>{var n=r(69546),i=r(42008),o=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,a=/^\w*$/;e.exports=function(e,t){if(n(e))return!1;var r=typeof e;return!("number"!=r&&"symbol"!=r&&"boolean"!=r&&null!=e&&!i(e))||a.test(e)||!o.test(e)||null!=t&&e in Object(t)}},89983:e=>{e.exports=function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}},37114:(e,t,r)=>{var n,i=r(48976),o=(n=/[^.]+$/.exec(i&&i.keys&&i.keys.IE_PROTO||""))?"Symbol(src)_1."+n:"";e.exports=function(e){return!!o&&o in e}},46358:e=>{var t=Object.prototype;e.exports=function(e){var r=e&&e.constructor;return e===("function"==typeof r&&r.prototype||t)}},34834:(e,t,r)=>{var n=r(12289);e.exports=function(e){return e==e&&!n(e)}},76073:e=>{e.exports=function(){this.__data__=[],this.size=0}},23390:(e,t,r)=>{var n=r(28627),i=Array.prototype.splice;e.exports=function(e){var t=this.__data__,r=n(t,e);return!(r<0||(r==t.length-1?t.pop():i.call(t,r,1),--this.size,0))}},42461:(e,t,r)=>{var n=r(28627);e.exports=function(e){var t=this.__data__,r=n(t,e);return r<0?void 0:t[r][1]}},18190:(e,t,r)=>{var n=r(28627);e.exports=function(e){return n(this.__data__,e)>-1}},95670:(e,t,r)=>{var n=r(28627);e.exports=function(e,t){var r=this.__data__,i=n(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}},6881:(e,t,r)=>{var n=r(21102),i=r(36491),o=r(95651);e.exports=function(){this.size=0,this.__data__={hash:new n,map:new(o||i),string:new n}}},25089:(e,t,r)=>{var n=r(55502);e.exports=function(e){var t=n(this,e).delete(e);return this.size-=t?1:0,t}},67548:(e,t,r)=>{var n=r(55502);e.exports=function(e){return n(this,e).get(e)}},72151:(e,t,r)=>{var n=r(55502);e.exports=function(e){return n(this,e).has(e)}},51476:(e,t,r)=>{var n=r(55502);e.exports=function(e,t){var r=n(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}},46498:e=>{e.exports=function(e){var t=-1,r=Array(e.size);return e.forEach((function(e,n){r[++t]=[n,e]})),r}},85447:e=>{e.exports=function(e,t){return function(r){return null!=r&&r[e]===t&&(void 0!==t||e in Object(r))}}},72984:(e,t,r)=>{var n=r(2520);e.exports=function(e){var t=n(e,(function(e){return 500===r.size&&r.clear(),e})),r=t.cache;return t}},55586:(e,t,r)=>{var n=r(72221)(Object,"create");e.exports=n},95513:(e,t,r)=>{var n=r(78892)(Object.keys,Object);e.exports=n},34040:e=>{e.exports=function(e){var t=[];if(null!=e)for(var r in Object(e))t.push(r);return t}},59214:(e,t,r)=>{e=r.nmd(e);var n=r(46954),i=t&&!t.nodeType&&t,o=i&&e&&!e.nodeType&&e,a=o&&o.exports===i&&n.process,s=function(){try{return o&&o.require&&o.require("util").types||a&&a.binding&&a.binding("util")}catch(e){}}();e.exports=s},4591:e=>{var t=Object.prototype.toString;e.exports=function(e){return t.call(e)}},78892:e=>{e.exports=function(e,t){return function(r){return e(t(r))}}},9649:(e,t,r)=>{var n=r(46954),i="object"==typeof self&&self&&self.Object===Object&&self,o=n||i||Function("return this")();e.exports=o},94636:e=>{e.exports=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this}},49810:e=>{e.exports=function(e){return this.__data__.has(e)}},56783:e=>{e.exports=function(e){var t=-1,r=Array(e.size);return e.forEach((function(e){r[++t]=e})),r}},38023:(e,t,r)=>{var n=r(36491);e.exports=function(){this.__data__=new n,this.size=0}},39611:e=>{e.exports=function(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}},6138:e=>{e.exports=function(e){return this.__data__.get(e)}},96961:e=>{e.exports=function(e){return this.__data__.has(e)}},32631:(e,t,r)=>{var n=r(36491),i=r(95651),o=r(52290);e.exports=function(e,t){var r=this.__data__;if(r instanceof n){var a=r.__data__;if(!i||a.length<199)return a.push([e,t]),this.size=++r.size,this;r=this.__data__=new o(a)}return r.set(e,t),this.size=r.size,this}},91503:(e,t,r)=>{var n=r(72984),i=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,o=/\\(\\)?/g,a=n((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(i,(function(e,r,n,i){t.push(n?i.replace(o,"$1"):r||e)})),t}));e.exports=a},49558:(e,t,r)=>{var n=r(42008);e.exports=function(e){if("string"==typeof e||n(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}},77606:e=>{var t=Function.prototype.toString;e.exports=function(e){if(null!=e){try{return t.call(e)}catch(e){}try{return e+""}catch(e){}}return""}},17689:e=>{e.exports=function(e,t){return e===t||e!=e&&t!=t}},96372:(e,t,r)=>{var n=r(33169),i=r(82856);e.exports=function(e,t){return n(i(e,t),1)}},60567:(e,t,r)=>{var n=r(33169);e.exports=function(e){return null!=e&&e.length?n(e,1):[]}},9229:(e,t,r)=>{var n=r(28829);e.exports=function(e,t,r){var i=null==e?void 0:n(e,t);return void 0===i?r:i}},24865:(e,t,r)=>{var n=r(32618),i=r(97147),o=Object.prototype.hasOwnProperty,a=i((function(e,t,r){o.call(e,r)?e[r].push(t):n(e,r,[t])}));e.exports=a},86717:(e,t,r)=>{var n=r(13233),i=r(32889);e.exports=function(e,t){return null!=e&&i(e,t,n)}},19568:e=>{e.exports=function(e){return e}},27987:(e,t,r)=>{var n=r(70621),i=r(17734),o=Object.prototype,a=o.hasOwnProperty,s=o.propertyIsEnumerable,u=n(function(){return arguments}())?n:function(e){return i(e)&&a.call(e,"callee")&&!s.call(e,"callee")};e.exports=u},69546:e=>{var t=Array.isArray;e.exports=t},46387:(e,t,r)=>{var n=r(93331),i=r(80459);e.exports=function(e){return null!=e&&i(e.length)&&!n(e)}},80758:(e,t,r)=>{e=r.nmd(e);var n=r(9649),i=r(68854),o=t&&!t.nodeType&&t,a=o&&e&&!e.nodeType&&e,s=a&&a.exports===o?n.Buffer:void 0,u=(s?s.isBuffer:void 0)||i;e.exports=u},93331:(e,t,r)=>{var n=r(28247),i=r(12289);e.exports=function(e){if(!i(e))return!1;var t=n(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}},80459:e=>{e.exports=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}},12289:e=>{e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},17734:e=>{e.exports=function(e){return null!=e&&"object"==typeof e}},42008:(e,t,r)=>{var n=r(28247),i=r(17734);e.exports=function(e){return"symbol"==typeof e||i(e)&&"[object Symbol]"==n(e)}},65739:(e,t,r)=>{var n=r(89278),i=r(99199),o=r(59214),a=o&&o.isTypedArray,s=a?i(a):n;e.exports=s},25961:(e,t,r)=>{var n=r(17296),i=r(59011),o=r(46387);e.exports=function(e){return o(e)?n(e):i(e)}},14399:(e,t,r)=>{var n=r(17296),i=r(56827),o=r(46387);e.exports=function(e){return o(e)?n(e,!0):i(e)}},40180:function(e,t,r){var n;e=r.nmd(e),function(){var i,o="Expected a function",a="__lodash_hash_undefined__",s="__lodash_placeholder__",u=32,c=128,f=1/0,l=9007199254740991,d=NaN,h=4294967295,p=[["ary",c],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",u],["partialRight",64],["rearg",256]],y="[object Arguments]",g="[object Array]",b="[object Boolean]",m="[object Date]",v="[object Error]",w="[object Function]",_="[object GeneratorFunction]",E="[object Map]",S="[object Number]",A="[object Object]",O="[object Promise]",M="[object RegExp]",T="[object Set]",I="[object String]",N="[object Symbol]",x="[object WeakMap]",L="[object ArrayBuffer]",k="[object DataView]",R="[object Float32Array]",P="[object Float64Array]",B="[object Int8Array]",D="[object Int16Array]",C="[object Int32Array]",j="[object Uint8Array]",F="[object Uint8ClampedArray]",U="[object Uint16Array]",V="[object Uint32Array]",H=/\b__p \+= '';/g,z=/\b(__p \+=) '' \+/g,q=/(__e\(.*?\)|\b__t\)) \+\n'';/g,K=/&(?:amp|lt|gt|quot|#39);/g,W=/[&<>"']/g,G=RegExp(K.source),Y=RegExp(W.source),$=/<%-([\s\S]+?)%>/g,X=/<%([\s\S]+?)%>/g,J=/<%=([\s\S]+?)%>/g,Z=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Q=/^\w*$/,ee=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,te=/[\\^$.*+?()[\]{}|]/g,re=RegExp(te.source),ne=/^\s+/,ie=/\s/,oe=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,ae=/\{\n\/\* \[wrapped with (.+)\] \*/,se=/,? & /,ue=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,ce=/[()=,{}\[\]\/\s]/,fe=/\\(\\)?/g,le=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,de=/\w*$/,he=/^[-+]0x[0-9a-f]+$/i,pe=/^0b[01]+$/i,ye=/^\[object .+?Constructor\]$/,ge=/^0o[0-7]+$/i,be=/^(?:0|[1-9]\d*)$/,me=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,ve=/($^)/,we=/['\n\r\u2028\u2029\\]/g,_e="\\ud800-\\udfff",Ee="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",Se="\\u2700-\\u27bf",Ae="a-z\\xdf-\\xf6\\xf8-\\xff",Oe="A-Z\\xc0-\\xd6\\xd8-\\xde",Me="\\ufe0e\\ufe0f",Te="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Ie="["+_e+"]",Ne="["+Te+"]",xe="["+Ee+"]",Le="\\d+",ke="["+Se+"]",Re="["+Ae+"]",Pe="[^"+_e+Te+Le+Se+Ae+Oe+"]",Be="\\ud83c[\\udffb-\\udfff]",De="[^"+_e+"]",Ce="(?:\\ud83c[\\udde6-\\uddff]){2}",je="[\\ud800-\\udbff][\\udc00-\\udfff]",Fe="["+Oe+"]",Ue="\\u200d",Ve="(?:"+Re+"|"+Pe+")",He="(?:"+Fe+"|"+Pe+")",ze="(?:['’](?:d|ll|m|re|s|t|ve))?",qe="(?:['’](?:D|LL|M|RE|S|T|VE))?",Ke="(?:"+xe+"|"+Be+")?",We="["+Me+"]?",Ge=We+Ke+"(?:"+Ue+"(?:"+[De,Ce,je].join("|")+")"+We+Ke+")*",Ye="(?:"+[ke,Ce,je].join("|")+")"+Ge,$e="(?:"+[De+xe+"?",xe,Ce,je,Ie].join("|")+")",Xe=RegExp("['’]","g"),Je=RegExp(xe,"g"),Ze=RegExp(Be+"(?="+Be+")|"+$e+Ge,"g"),Qe=RegExp([Fe+"?"+Re+"+"+ze+"(?="+[Ne,Fe,"$"].join("|")+")",He+"+"+qe+"(?="+[Ne,Fe+Ve,"$"].join("|")+")",Fe+"?"+Ve+"+"+ze,Fe+"+"+qe,"\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Le,Ye].join("|"),"g"),et=RegExp("["+Ue+_e+Ee+Me+"]"),tt=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,rt=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],nt=-1,it={};it[R]=it[P]=it[B]=it[D]=it[C]=it[j]=it[F]=it[U]=it[V]=!0,it[y]=it[g]=it[L]=it[b]=it[k]=it[m]=it[v]=it[w]=it[E]=it[S]=it[A]=it[M]=it[T]=it[I]=it[x]=!1;var ot={};ot[y]=ot[g]=ot[L]=ot[k]=ot[b]=ot[m]=ot[R]=ot[P]=ot[B]=ot[D]=ot[C]=ot[E]=ot[S]=ot[A]=ot[M]=ot[T]=ot[I]=ot[N]=ot[j]=ot[F]=ot[U]=ot[V]=!0,ot[v]=ot[w]=ot[x]=!1;var at={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},st=parseFloat,ut=parseInt,ct="object"==typeof r.g&&r.g&&r.g.Object===Object&&r.g,ft="object"==typeof self&&self&&self.Object===Object&&self,lt=ct||ft||Function("return this")(),dt=t&&!t.nodeType&&t,ht=dt&&e&&!e.nodeType&&e,pt=ht&&ht.exports===dt,yt=pt&&ct.process,gt=function(){try{return ht&&ht.require&&ht.require("util").types||yt&&yt.binding&&yt.binding("util")}catch(e){}}(),bt=gt&>.isArrayBuffer,mt=gt&>.isDate,vt=gt&>.isMap,wt=gt&>.isRegExp,_t=gt&>.isSet,Et=gt&>.isTypedArray;function St(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}function At(e,t,r,n){for(var i=-1,o=null==e?0:e.length;++i<o;){var a=e[i];t(n,a,r(a),e)}return n}function Ot(e,t){for(var r=-1,n=null==e?0:e.length;++r<n&&!1!==t(e[r],r,e););return e}function Mt(e,t){for(var r=null==e?0:e.length;r--&&!1!==t(e[r],r,e););return e}function Tt(e,t){for(var r=-1,n=null==e?0:e.length;++r<n;)if(!t(e[r],r,e))return!1;return!0}function It(e,t){for(var r=-1,n=null==e?0:e.length,i=0,o=[];++r<n;){var a=e[r];t(a,r,e)&&(o[i++]=a)}return o}function Nt(e,t){return!(null==e||!e.length)&&Ft(e,t,0)>-1}function xt(e,t,r){for(var n=-1,i=null==e?0:e.length;++n<i;)if(r(t,e[n]))return!0;return!1}function Lt(e,t){for(var r=-1,n=null==e?0:e.length,i=Array(n);++r<n;)i[r]=t(e[r],r,e);return i}function kt(e,t){for(var r=-1,n=t.length,i=e.length;++r<n;)e[i+r]=t[r];return e}function Rt(e,t,r,n){var i=-1,o=null==e?0:e.length;for(n&&o&&(r=e[++i]);++i<o;)r=t(r,e[i],i,e);return r}function Pt(e,t,r,n){var i=null==e?0:e.length;for(n&&i&&(r=e[--i]);i--;)r=t(r,e[i],i,e);return r}function Bt(e,t){for(var r=-1,n=null==e?0:e.length;++r<n;)if(t(e[r],r,e))return!0;return!1}var Dt=zt("length");function Ct(e,t,r){var n;return r(e,(function(e,r,i){if(t(e,r,i))return n=r,!1})),n}function jt(e,t,r,n){for(var i=e.length,o=r+(n?1:-1);n?o--:++o<i;)if(t(e[o],o,e))return o;return-1}function Ft(e,t,r){return t==t?function(e,t,r){for(var n=r-1,i=e.length;++n<i;)if(e[n]===t)return n;return-1}(e,t,r):jt(e,Vt,r)}function Ut(e,t,r,n){for(var i=r-1,o=e.length;++i<o;)if(n(e[i],t))return i;return-1}function Vt(e){return e!=e}function Ht(e,t){var r=null==e?0:e.length;return r?Wt(e,t)/r:d}function zt(e){return function(t){return null==t?i:t[e]}}function qt(e){return function(t){return null==e?i:e[t]}}function Kt(e,t,r,n,i){return i(e,(function(e,i,o){r=n?(n=!1,e):t(r,e,i,o)})),r}function Wt(e,t){for(var r,n=-1,o=e.length;++n<o;){var a=t(e[n]);a!==i&&(r=r===i?a:r+a)}return r}function Gt(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}function Yt(e){return e?e.slice(0,lr(e)+1).replace(ne,""):e}function $t(e){return function(t){return e(t)}}function Xt(e,t){return Lt(t,(function(t){return e[t]}))}function Jt(e,t){return e.has(t)}function Zt(e,t){for(var r=-1,n=e.length;++r<n&&Ft(t,e[r],0)>-1;);return r}function Qt(e,t){for(var r=e.length;r--&&Ft(t,e[r],0)>-1;);return r}var er=qt({À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"}),tr=qt({"&":"&","<":"<",">":">",'"':""","'":"'"});function rr(e){return"\\"+at[e]}function nr(e){return et.test(e)}function ir(e){var t=-1,r=Array(e.size);return e.forEach((function(e,n){r[++t]=[n,e]})),r}function or(e,t){return function(r){return e(t(r))}}function ar(e,t){for(var r=-1,n=e.length,i=0,o=[];++r<n;){var a=e[r];a!==t&&a!==s||(e[r]=s,o[i++]=r)}return o}function sr(e){var t=-1,r=Array(e.size);return e.forEach((function(e){r[++t]=e})),r}function ur(e){var t=-1,r=Array(e.size);return e.forEach((function(e){r[++t]=[e,e]})),r}function cr(e){return nr(e)?function(e){for(var t=Ze.lastIndex=0;Ze.test(e);)++t;return t}(e):Dt(e)}function fr(e){return nr(e)?function(e){return e.match(Ze)||[]}(e):function(e){return e.split("")}(e)}function lr(e){for(var t=e.length;t--&&ie.test(e.charAt(t)););return t}var dr=qt({"&":"&","<":"<",">":">",""":'"',"'":"'"}),hr=function e(t){var r,n=(t=null==t?lt:hr.defaults(lt.Object(),t,hr.pick(lt,rt))).Array,ie=t.Date,_e=t.Error,Ee=t.Function,Se=t.Math,Ae=t.Object,Oe=t.RegExp,Me=t.String,Te=t.TypeError,Ie=n.prototype,Ne=Ee.prototype,xe=Ae.prototype,Le=t["__core-js_shared__"],ke=Ne.toString,Re=xe.hasOwnProperty,Pe=0,Be=(r=/[^.]+$/.exec(Le&&Le.keys&&Le.keys.IE_PROTO||""))?"Symbol(src)_1."+r:"",De=xe.toString,Ce=ke.call(Ae),je=lt._,Fe=Oe("^"+ke.call(Re).replace(te,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Ue=pt?t.Buffer:i,Ve=t.Symbol,He=t.Uint8Array,ze=Ue?Ue.allocUnsafe:i,qe=or(Ae.getPrototypeOf,Ae),Ke=Ae.create,We=xe.propertyIsEnumerable,Ge=Ie.splice,Ye=Ve?Ve.isConcatSpreadable:i,$e=Ve?Ve.iterator:i,Ze=Ve?Ve.toStringTag:i,et=function(){try{var e=uo(Ae,"defineProperty");return e({},"",{}),e}catch(e){}}(),at=t.clearTimeout!==lt.clearTimeout&&t.clearTimeout,ct=ie&&ie.now!==lt.Date.now&&ie.now,ft=t.setTimeout!==lt.setTimeout&&t.setTimeout,dt=Se.ceil,ht=Se.floor,yt=Ae.getOwnPropertySymbols,gt=Ue?Ue.isBuffer:i,Dt=t.isFinite,qt=Ie.join,pr=or(Ae.keys,Ae),yr=Se.max,gr=Se.min,br=ie.now,mr=t.parseInt,vr=Se.random,wr=Ie.reverse,_r=uo(t,"DataView"),Er=uo(t,"Map"),Sr=uo(t,"Promise"),Ar=uo(t,"Set"),Or=uo(t,"WeakMap"),Mr=uo(Ae,"create"),Tr=Or&&new Or,Ir={},Nr=Co(_r),xr=Co(Er),Lr=Co(Sr),kr=Co(Ar),Rr=Co(Or),Pr=Ve?Ve.prototype:i,Br=Pr?Pr.valueOf:i,Dr=Pr?Pr.toString:i;function Cr(e){if(es(e)&&!za(e)&&!(e instanceof Vr)){if(e instanceof Ur)return e;if(Re.call(e,"__wrapped__"))return jo(e)}return new Ur(e)}var jr=function(){function e(){}return function(t){if(!Qa(t))return{};if(Ke)return Ke(t);e.prototype=t;var r=new e;return e.prototype=i,r}}();function Fr(){}function Ur(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=i}function Vr(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=h,this.__views__=[]}function Hr(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}function zr(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}function qr(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}function Kr(e){var t=-1,r=null==e?0:e.length;for(this.__data__=new qr;++t<r;)this.add(e[t])}function Wr(e){var t=this.__data__=new zr(e);this.size=t.size}function Gr(e,t){var r=za(e),n=!r&&Ha(e),i=!r&&!n&&Ga(e),o=!r&&!n&&!i&&us(e),a=r||n||i||o,s=a?Gt(e.length,Me):[],u=s.length;for(var c in e)!t&&!Re.call(e,c)||a&&("length"==c||i&&("offset"==c||"parent"==c)||o&&("buffer"==c||"byteLength"==c||"byteOffset"==c)||go(c,u))||s.push(c);return s}function Yr(e){var t=e.length;return t?e[Kn(0,t-1)]:i}function $r(e,t){return ko(Mi(e),on(t,0,e.length))}function Xr(e){return ko(Mi(e))}function Jr(e,t,r){(r!==i&&!Fa(e[t],r)||r===i&&!(t in e))&&rn(e,t,r)}function Zr(e,t,r){var n=e[t];Re.call(e,t)&&Fa(n,r)&&(r!==i||t in e)||rn(e,t,r)}function Qr(e,t){for(var r=e.length;r--;)if(Fa(e[r][0],t))return r;return-1}function en(e,t,r,n){return fn(e,(function(e,i,o){t(n,e,r(e),o)})),n}function tn(e,t){return e&&Ti(t,xs(t),e)}function rn(e,t,r){"__proto__"==t&&et?et(e,t,{configurable:!0,enumerable:!0,value:r,writable:!0}):e[t]=r}function nn(e,t){for(var r=-1,o=t.length,a=n(o),s=null==e;++r<o;)a[r]=s?i:Os(e,t[r]);return a}function on(e,t,r){return e==e&&(r!==i&&(e=e<=r?e:r),t!==i&&(e=e>=t?e:t)),e}function an(e,t,r,n,o,a){var s,u=1&t,c=2&t,f=4&t;if(r&&(s=o?r(e,n,o,a):r(e)),s!==i)return s;if(!Qa(e))return e;var l=za(e);if(l){if(s=function(e){var t=e.length,r=new e.constructor(t);return t&&"string"==typeof e[0]&&Re.call(e,"index")&&(r.index=e.index,r.input=e.input),r}(e),!u)return Mi(e,s)}else{var d=lo(e),h=d==w||d==_;if(Ga(e))return wi(e,u);if(d==A||d==y||h&&!o){if(s=c||h?{}:po(e),!u)return c?function(e,t){return Ti(e,fo(e),t)}(e,function(e,t){return e&&Ti(t,Ls(t),e)}(s,e)):function(e,t){return Ti(e,co(e),t)}(e,tn(s,e))}else{if(!ot[d])return o?e:{};s=function(e,t,r){var n,i=e.constructor;switch(t){case L:return _i(e);case b:case m:return new i(+e);case k:return function(e,t){var r=t?_i(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.byteLength)}(e,r);case R:case P:case B:case D:case C:case j:case F:case U:case V:return Ei(e,r);case E:return new i;case S:case I:return new i(e);case M:return function(e){var t=new e.constructor(e.source,de.exec(e));return t.lastIndex=e.lastIndex,t}(e);case T:return new i;case N:return n=e,Br?Ae(Br.call(n)):{}}}(e,d,u)}}a||(a=new Wr);var p=a.get(e);if(p)return p;a.set(e,s),os(e)?e.forEach((function(n){s.add(an(n,t,r,n,e,a))})):ts(e)&&e.forEach((function(n,i){s.set(i,an(n,t,r,i,e,a))}));var g=l?i:(f?c?to:eo:c?Ls:xs)(e);return Ot(g||e,(function(n,i){g&&(n=e[i=n]),Zr(s,i,an(n,t,r,i,e,a))})),s}function sn(e,t,r){var n=r.length;if(null==e)return!n;for(e=Ae(e);n--;){var o=r[n],a=t[o],s=e[o];if(s===i&&!(o in e)||!a(s))return!1}return!0}function un(e,t,r){if("function"!=typeof e)throw new Te(o);return Io((function(){e.apply(i,r)}),t)}function cn(e,t,r,n){var i=-1,o=Nt,a=!0,s=e.length,u=[],c=t.length;if(!s)return u;r&&(t=Lt(t,$t(r))),n?(o=xt,a=!1):t.length>=200&&(o=Jt,a=!1,t=new Kr(t));e:for(;++i<s;){var f=e[i],l=null==r?f:r(f);if(f=n||0!==f?f:0,a&&l==l){for(var d=c;d--;)if(t[d]===l)continue e;u.push(f)}else o(t,l,n)||u.push(f)}return u}Cr.templateSettings={escape:$,evaluate:X,interpolate:J,variable:"",imports:{_:Cr}},Cr.prototype=Fr.prototype,Cr.prototype.constructor=Cr,Ur.prototype=jr(Fr.prototype),Ur.prototype.constructor=Ur,Vr.prototype=jr(Fr.prototype),Vr.prototype.constructor=Vr,Hr.prototype.clear=function(){this.__data__=Mr?Mr(null):{},this.size=0},Hr.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},Hr.prototype.get=function(e){var t=this.__data__;if(Mr){var r=t[e];return r===a?i:r}return Re.call(t,e)?t[e]:i},Hr.prototype.has=function(e){var t=this.__data__;return Mr?t[e]!==i:Re.call(t,e)},Hr.prototype.set=function(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Mr&&t===i?a:t,this},zr.prototype.clear=function(){this.__data__=[],this.size=0},zr.prototype.delete=function(e){var t=this.__data__,r=Qr(t,e);return!(r<0||(r==t.length-1?t.pop():Ge.call(t,r,1),--this.size,0))},zr.prototype.get=function(e){var t=this.__data__,r=Qr(t,e);return r<0?i:t[r][1]},zr.prototype.has=function(e){return Qr(this.__data__,e)>-1},zr.prototype.set=function(e,t){var r=this.__data__,n=Qr(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this},qr.prototype.clear=function(){this.size=0,this.__data__={hash:new Hr,map:new(Er||zr),string:new Hr}},qr.prototype.delete=function(e){var t=ao(this,e).delete(e);return this.size-=t?1:0,t},qr.prototype.get=function(e){return ao(this,e).get(e)},qr.prototype.has=function(e){return ao(this,e).has(e)},qr.prototype.set=function(e,t){var r=ao(this,e),n=r.size;return r.set(e,t),this.size+=r.size==n?0:1,this},Kr.prototype.add=Kr.prototype.push=function(e){return this.__data__.set(e,a),this},Kr.prototype.has=function(e){return this.__data__.has(e)},Wr.prototype.clear=function(){this.__data__=new zr,this.size=0},Wr.prototype.delete=function(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r},Wr.prototype.get=function(e){return this.__data__.get(e)},Wr.prototype.has=function(e){return this.__data__.has(e)},Wr.prototype.set=function(e,t){var r=this.__data__;if(r instanceof zr){var n=r.__data__;if(!Er||n.length<199)return n.push([e,t]),this.size=++r.size,this;r=this.__data__=new qr(n)}return r.set(e,t),this.size=r.size,this};var fn=xi(mn),ln=xi(vn,!0);function dn(e,t){var r=!0;return fn(e,(function(e,n,i){return r=!!t(e,n,i)})),r}function hn(e,t,r){for(var n=-1,o=e.length;++n<o;){var a=e[n],s=t(a);if(null!=s&&(u===i?s==s&&!ss(s):r(s,u)))var u=s,c=a}return c}function pn(e,t){var r=[];return fn(e,(function(e,n,i){t(e,n,i)&&r.push(e)})),r}function yn(e,t,r,n,i){var o=-1,a=e.length;for(r||(r=yo),i||(i=[]);++o<a;){var s=e[o];t>0&&r(s)?t>1?yn(s,t-1,r,n,i):kt(i,s):n||(i[i.length]=s)}return i}var gn=Li(),bn=Li(!0);function mn(e,t){return e&&gn(e,t,xs)}function vn(e,t){return e&&bn(e,t,xs)}function wn(e,t){return It(t,(function(t){return Xa(e[t])}))}function _n(e,t){for(var r=0,n=(t=gi(t,e)).length;null!=e&&r<n;)e=e[Do(t[r++])];return r&&r==n?e:i}function En(e,t,r){var n=t(e);return za(e)?n:kt(n,r(e))}function Sn(e){return null==e?e===i?"[object Undefined]":"[object Null]":Ze&&Ze in Ae(e)?function(e){var t=Re.call(e,Ze),r=e[Ze];try{e[Ze]=i;var n=!0}catch(e){}var o=De.call(e);return n&&(t?e[Ze]=r:delete e[Ze]),o}(e):function(e){return De.call(e)}(e)}function An(e,t){return e>t}function On(e,t){return null!=e&&Re.call(e,t)}function Mn(e,t){return null!=e&&t in Ae(e)}function Tn(e,t,r){for(var o=r?xt:Nt,a=e[0].length,s=e.length,u=s,c=n(s),f=1/0,l=[];u--;){var d=e[u];u&&t&&(d=Lt(d,$t(t))),f=gr(d.length,f),c[u]=!r&&(t||a>=120&&d.length>=120)?new Kr(u&&d):i}d=e[0];var h=-1,p=c[0];e:for(;++h<a&&l.length<f;){var y=d[h],g=t?t(y):y;if(y=r||0!==y?y:0,!(p?Jt(p,g):o(l,g,r))){for(u=s;--u;){var b=c[u];if(!(b?Jt(b,g):o(e[u],g,r)))continue e}p&&p.push(g),l.push(y)}}return l}function In(e,t,r){var n=null==(e=Oo(e,t=gi(t,e)))?e:e[Do($o(t))];return null==n?i:St(n,e,r)}function Nn(e){return es(e)&&Sn(e)==y}function xn(e,t,r,n,o){return e===t||(null==e||null==t||!es(e)&&!es(t)?e!=e&&t!=t:function(e,t,r,n,o,a){var s=za(e),u=za(t),c=s?g:lo(e),f=u?g:lo(t),l=(c=c==y?A:c)==A,d=(f=f==y?A:f)==A,h=c==f;if(h&&Ga(e)){if(!Ga(t))return!1;s=!0,l=!1}if(h&&!l)return a||(a=new Wr),s||us(e)?Zi(e,t,r,n,o,a):function(e,t,r,n,i,o,a){switch(r){case k:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case L:return!(e.byteLength!=t.byteLength||!o(new He(e),new He(t)));case b:case m:case S:return Fa(+e,+t);case v:return e.name==t.name&&e.message==t.message;case M:case I:return e==t+"";case E:var s=ir;case T:var u=1&n;if(s||(s=sr),e.size!=t.size&&!u)return!1;var c=a.get(e);if(c)return c==t;n|=2,a.set(e,t);var f=Zi(s(e),s(t),n,i,o,a);return a.delete(e),f;case N:if(Br)return Br.call(e)==Br.call(t)}return!1}(e,t,c,r,n,o,a);if(!(1&r)){var p=l&&Re.call(e,"__wrapped__"),w=d&&Re.call(t,"__wrapped__");if(p||w){var _=p?e.value():e,O=w?t.value():t;return a||(a=new Wr),o(_,O,r,n,a)}}return!!h&&(a||(a=new Wr),function(e,t,r,n,o,a){var s=1&r,u=eo(e),c=u.length;if(c!=eo(t).length&&!s)return!1;for(var f=c;f--;){var l=u[f];if(!(s?l in t:Re.call(t,l)))return!1}var d=a.get(e),h=a.get(t);if(d&&h)return d==t&&h==e;var p=!0;a.set(e,t),a.set(t,e);for(var y=s;++f<c;){var g=e[l=u[f]],b=t[l];if(n)var m=s?n(b,g,l,t,e,a):n(g,b,l,e,t,a);if(!(m===i?g===b||o(g,b,r,n,a):m)){p=!1;break}y||(y="constructor"==l)}if(p&&!y){var v=e.constructor,w=t.constructor;v==w||!("constructor"in e)||!("constructor"in t)||"function"==typeof v&&v instanceof v&&"function"==typeof w&&w instanceof w||(p=!1)}return a.delete(e),a.delete(t),p}(e,t,r,n,o,a))}(e,t,r,n,xn,o))}function Ln(e,t,r,n){var o=r.length,a=o,s=!n;if(null==e)return!a;for(e=Ae(e);o--;){var u=r[o];if(s&&u[2]?u[1]!==e[u[0]]:!(u[0]in e))return!1}for(;++o<a;){var c=(u=r[o])[0],f=e[c],l=u[1];if(s&&u[2]){if(f===i&&!(c in e))return!1}else{var d=new Wr;if(n)var h=n(f,l,c,e,t,d);if(!(h===i?xn(l,f,3,n,d):h))return!1}}return!0}function kn(e){return!(!Qa(e)||(t=e,Be&&Be in t))&&(Xa(e)?Fe:ye).test(Co(e));var t}function Rn(e){return"function"==typeof e?e:null==e?ru:"object"==typeof e?za(e)?jn(e[0],e[1]):Cn(e):lu(e)}function Pn(e){if(!_o(e))return pr(e);var t=[];for(var r in Ae(e))Re.call(e,r)&&"constructor"!=r&&t.push(r);return t}function Bn(e,t){return e<t}function Dn(e,t){var r=-1,i=Ka(e)?n(e.length):[];return fn(e,(function(e,n,o){i[++r]=t(e,n,o)})),i}function Cn(e){var t=so(e);return 1==t.length&&t[0][2]?So(t[0][0],t[0][1]):function(r){return r===e||Ln(r,e,t)}}function jn(e,t){return mo(e)&&Eo(t)?So(Do(e),t):function(r){var n=Os(r,e);return n===i&&n===t?Ms(r,e):xn(t,n,3)}}function Fn(e,t,r,n,o){e!==t&&gn(t,(function(a,s){if(o||(o=new Wr),Qa(a))!function(e,t,r,n,o,a,s){var u=Mo(e,r),c=Mo(t,r),f=s.get(c);if(f)Jr(e,r,f);else{var l=a?a(u,c,r+"",e,t,s):i,d=l===i;if(d){var h=za(c),p=!h&&Ga(c),y=!h&&!p&&us(c);l=c,h||p||y?za(u)?l=u:Wa(u)?l=Mi(u):p?(d=!1,l=wi(c,!0)):y?(d=!1,l=Ei(c,!0)):l=[]:ns(c)||Ha(c)?(l=u,Ha(u)?l=gs(u):Qa(u)&&!Xa(u)||(l=po(c))):d=!1}d&&(s.set(c,l),o(l,c,n,a,s),s.delete(c)),Jr(e,r,l)}}(e,t,s,r,Fn,n,o);else{var u=n?n(Mo(e,s),a,s+"",e,t,o):i;u===i&&(u=a),Jr(e,s,u)}}),Ls)}function Un(e,t){var r=e.length;if(r)return go(t+=t<0?r:0,r)?e[t]:i}function Vn(e,t,r){t=t.length?Lt(t,(function(e){return za(e)?function(t){return _n(t,1===e.length?e[0]:e)}:e})):[ru];var n=-1;t=Lt(t,$t(oo()));var i=Dn(e,(function(e,r,i){var o=Lt(t,(function(t){return t(e)}));return{criteria:o,index:++n,value:e}}));return function(e,t){var n=e.length;for(e.sort((function(e,t){return function(e,t,r){for(var n=-1,i=e.criteria,o=t.criteria,a=i.length,s=r.length;++n<a;){var u=Si(i[n],o[n]);if(u)return n>=s?u:u*("desc"==r[n]?-1:1)}return e.index-t.index}(e,t,r)}));n--;)e[n]=e[n].value;return e}(i)}function Hn(e,t,r){for(var n=-1,i=t.length,o={};++n<i;){var a=t[n],s=_n(e,a);r(s,a)&&Xn(o,gi(a,e),s)}return o}function zn(e,t,r,n){var i=n?Ut:Ft,o=-1,a=t.length,s=e;for(e===t&&(t=Mi(t)),r&&(s=Lt(e,$t(r)));++o<a;)for(var u=0,c=t[o],f=r?r(c):c;(u=i(s,f,u,n))>-1;)s!==e&&Ge.call(s,u,1),Ge.call(e,u,1);return e}function qn(e,t){for(var r=e?t.length:0,n=r-1;r--;){var i=t[r];if(r==n||i!==o){var o=i;go(i)?Ge.call(e,i,1):ui(e,i)}}return e}function Kn(e,t){return e+ht(vr()*(t-e+1))}function Wn(e,t){var r="";if(!e||t<1||t>l)return r;do{t%2&&(r+=e),(t=ht(t/2))&&(e+=e)}while(t);return r}function Gn(e,t){return No(Ao(e,t,ru),e+"")}function Yn(e){return Yr(Fs(e))}function $n(e,t){var r=Fs(e);return ko(r,on(t,0,r.length))}function Xn(e,t,r,n){if(!Qa(e))return e;for(var o=-1,a=(t=gi(t,e)).length,s=a-1,u=e;null!=u&&++o<a;){var c=Do(t[o]),f=r;if("__proto__"===c||"constructor"===c||"prototype"===c)return e;if(o!=s){var l=u[c];(f=n?n(l,c,u):i)===i&&(f=Qa(l)?l:go(t[o+1])?[]:{})}Zr(u,c,f),u=u[c]}return e}var Jn=Tr?function(e,t){return Tr.set(e,t),e}:ru,Zn=et?function(e,t){return et(e,"toString",{configurable:!0,enumerable:!1,value:Qs(t),writable:!0})}:ru;function Qn(e){return ko(Fs(e))}function ei(e,t,r){var i=-1,o=e.length;t<0&&(t=-t>o?0:o+t),(r=r>o?o:r)<0&&(r+=o),o=t>r?0:r-t>>>0,t>>>=0;for(var a=n(o);++i<o;)a[i]=e[i+t];return a}function ti(e,t){var r;return fn(e,(function(e,n,i){return!(r=t(e,n,i))})),!!r}function ri(e,t,r){var n=0,i=null==e?n:e.length;if("number"==typeof t&&t==t&&i<=2147483647){for(;n<i;){var o=n+i>>>1,a=e[o];null!==a&&!ss(a)&&(r?a<=t:a<t)?n=o+1:i=o}return i}return ni(e,t,ru,r)}function ni(e,t,r,n){var o=0,a=null==e?0:e.length;if(0===a)return 0;for(var s=(t=r(t))!=t,u=null===t,c=ss(t),f=t===i;o<a;){var l=ht((o+a)/2),d=r(e[l]),h=d!==i,p=null===d,y=d==d,g=ss(d);if(s)var b=n||y;else b=f?y&&(n||h):u?y&&h&&(n||!p):c?y&&h&&!p&&(n||!g):!p&&!g&&(n?d<=t:d<t);b?o=l+1:a=l}return gr(a,4294967294)}function ii(e,t){for(var r=-1,n=e.length,i=0,o=[];++r<n;){var a=e[r],s=t?t(a):a;if(!r||!Fa(s,u)){var u=s;o[i++]=0===a?0:a}}return o}function oi(e){return"number"==typeof e?e:ss(e)?d:+e}function ai(e){if("string"==typeof e)return e;if(za(e))return Lt(e,ai)+"";if(ss(e))return Dr?Dr.call(e):"";var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function si(e,t,r){var n=-1,i=Nt,o=e.length,a=!0,s=[],u=s;if(r)a=!1,i=xt;else if(o>=200){var c=t?null:Wi(e);if(c)return sr(c);a=!1,i=Jt,u=new Kr}else u=t?[]:s;e:for(;++n<o;){var f=e[n],l=t?t(f):f;if(f=r||0!==f?f:0,a&&l==l){for(var d=u.length;d--;)if(u[d]===l)continue e;t&&u.push(l),s.push(f)}else i(u,l,r)||(u!==s&&u.push(l),s.push(f))}return s}function ui(e,t){return null==(e=Oo(e,t=gi(t,e)))||delete e[Do($o(t))]}function ci(e,t,r,n){return Xn(e,t,r(_n(e,t)),n)}function fi(e,t,r,n){for(var i=e.length,o=n?i:-1;(n?o--:++o<i)&&t(e[o],o,e););return r?ei(e,n?0:o,n?o+1:i):ei(e,n?o+1:0,n?i:o)}function li(e,t){var r=e;return r instanceof Vr&&(r=r.value()),Rt(t,(function(e,t){return t.func.apply(t.thisArg,kt([e],t.args))}),r)}function di(e,t,r){var i=e.length;if(i<2)return i?si(e[0]):[];for(var o=-1,a=n(i);++o<i;)for(var s=e[o],u=-1;++u<i;)u!=o&&(a[o]=cn(a[o]||s,e[u],t,r));return si(yn(a,1),t,r)}function hi(e,t,r){for(var n=-1,o=e.length,a=t.length,s={};++n<o;){var u=n<a?t[n]:i;r(s,e[n],u)}return s}function pi(e){return Wa(e)?e:[]}function yi(e){return"function"==typeof e?e:ru}function gi(e,t){return za(e)?e:mo(e,t)?[e]:Bo(bs(e))}var bi=Gn;function mi(e,t,r){var n=e.length;return r=r===i?n:r,!t&&r>=n?e:ei(e,t,r)}var vi=at||function(e){return lt.clearTimeout(e)};function wi(e,t){if(t)return e.slice();var r=e.length,n=ze?ze(r):new e.constructor(r);return e.copy(n),n}function _i(e){var t=new e.constructor(e.byteLength);return new He(t).set(new He(e)),t}function Ei(e,t){var r=t?_i(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.length)}function Si(e,t){if(e!==t){var r=e!==i,n=null===e,o=e==e,a=ss(e),s=t!==i,u=null===t,c=t==t,f=ss(t);if(!u&&!f&&!a&&e>t||a&&s&&c&&!u&&!f||n&&s&&c||!r&&c||!o)return 1;if(!n&&!a&&!f&&e<t||f&&r&&o&&!n&&!a||u&&r&&o||!s&&o||!c)return-1}return 0}function Ai(e,t,r,i){for(var o=-1,a=e.length,s=r.length,u=-1,c=t.length,f=yr(a-s,0),l=n(c+f),d=!i;++u<c;)l[u]=t[u];for(;++o<s;)(d||o<a)&&(l[r[o]]=e[o]);for(;f--;)l[u++]=e[o++];return l}function Oi(e,t,r,i){for(var o=-1,a=e.length,s=-1,u=r.length,c=-1,f=t.length,l=yr(a-u,0),d=n(l+f),h=!i;++o<l;)d[o]=e[o];for(var p=o;++c<f;)d[p+c]=t[c];for(;++s<u;)(h||o<a)&&(d[p+r[s]]=e[o++]);return d}function Mi(e,t){var r=-1,i=e.length;for(t||(t=n(i));++r<i;)t[r]=e[r];return t}function Ti(e,t,r,n){var o=!r;r||(r={});for(var a=-1,s=t.length;++a<s;){var u=t[a],c=n?n(r[u],e[u],u,r,e):i;c===i&&(c=e[u]),o?rn(r,u,c):Zr(r,u,c)}return r}function Ii(e,t){return function(r,n){var i=za(r)?At:en,o=t?t():{};return i(r,e,oo(n,2),o)}}function Ni(e){return Gn((function(t,r){var n=-1,o=r.length,a=o>1?r[o-1]:i,s=o>2?r[2]:i;for(a=e.length>3&&"function"==typeof a?(o--,a):i,s&&bo(r[0],r[1],s)&&(a=o<3?i:a,o=1),t=Ae(t);++n<o;){var u=r[n];u&&e(t,u,n,a)}return t}))}function xi(e,t){return function(r,n){if(null==r)return r;if(!Ka(r))return e(r,n);for(var i=r.length,o=t?i:-1,a=Ae(r);(t?o--:++o<i)&&!1!==n(a[o],o,a););return r}}function Li(e){return function(t,r,n){for(var i=-1,o=Ae(t),a=n(t),s=a.length;s--;){var u=a[e?s:++i];if(!1===r(o[u],u,o))break}return t}}function ki(e){return function(t){var r=nr(t=bs(t))?fr(t):i,n=r?r[0]:t.charAt(0),o=r?mi(r,1).join(""):t.slice(1);return n[e]()+o}}function Ri(e){return function(t){return Rt(Xs(Hs(t).replace(Xe,"")),e,"")}}function Pi(e){return function(){var t=arguments;switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3]);case 5:return new e(t[0],t[1],t[2],t[3],t[4]);case 6:return new e(t[0],t[1],t[2],t[3],t[4],t[5]);case 7:return new e(t[0],t[1],t[2],t[3],t[4],t[5],t[6])}var r=jr(e.prototype),n=e.apply(r,t);return Qa(n)?n:r}}function Bi(e){return function(t,r,n){var o=Ae(t);if(!Ka(t)){var a=oo(r,3);t=xs(t),r=function(e){return a(o[e],e,o)}}var s=e(t,r,n);return s>-1?o[a?t[s]:s]:i}}function Di(e){return Qi((function(t){var r=t.length,n=r,a=Ur.prototype.thru;for(e&&t.reverse();n--;){var s=t[n];if("function"!=typeof s)throw new Te(o);if(a&&!u&&"wrapper"==no(s))var u=new Ur([],!0)}for(n=u?n:r;++n<r;){var c=no(s=t[n]),f="wrapper"==c?ro(s):i;u=f&&vo(f[0])&&424==f[1]&&!f[4].length&&1==f[9]?u[no(f[0])].apply(u,f[3]):1==s.length&&vo(s)?u[c]():u.thru(s)}return function(){var e=arguments,n=e[0];if(u&&1==e.length&&za(n))return u.plant(n).value();for(var i=0,o=r?t[i].apply(this,e):n;++i<r;)o=t[i].call(this,o);return o}}))}function Ci(e,t,r,o,a,s,u,f,l,d){var h=t&c,p=1&t,y=2&t,g=24&t,b=512&t,m=y?i:Pi(e);return function c(){for(var v=arguments.length,w=n(v),_=v;_--;)w[_]=arguments[_];if(g)var E=io(c),S=function(e,t){for(var r=e.length,n=0;r--;)e[r]===t&&++n;return n}(w,E);if(o&&(w=Ai(w,o,a,g)),s&&(w=Oi(w,s,u,g)),v-=S,g&&v<d){var A=ar(w,E);return qi(e,t,Ci,c.placeholder,r,w,A,f,l,d-v)}var O=p?r:this,M=y?O[e]:e;return v=w.length,f?w=function(e,t){for(var r=e.length,n=gr(t.length,r),o=Mi(e);n--;){var a=t[n];e[n]=go(a,r)?o[a]:i}return e}(w,f):b&&v>1&&w.reverse(),h&&l<v&&(w.length=l),this&&this!==lt&&this instanceof c&&(M=m||Pi(M)),M.apply(O,w)}}function ji(e,t){return function(r,n){return function(e,t,r,n){return mn(e,(function(e,i,o){t(n,r(e),i,o)})),n}(r,e,t(n),{})}}function Fi(e,t){return function(r,n){var o;if(r===i&&n===i)return t;if(r!==i&&(o=r),n!==i){if(o===i)return n;"string"==typeof r||"string"==typeof n?(r=ai(r),n=ai(n)):(r=oi(r),n=oi(n)),o=e(r,n)}return o}}function Ui(e){return Qi((function(t){return t=Lt(t,$t(oo())),Gn((function(r){var n=this;return e(t,(function(e){return St(e,n,r)}))}))}))}function Vi(e,t){var r=(t=t===i?" ":ai(t)).length;if(r<2)return r?Wn(t,e):t;var n=Wn(t,dt(e/cr(t)));return nr(t)?mi(fr(n),0,e).join(""):n.slice(0,e)}function Hi(e){return function(t,r,o){return o&&"number"!=typeof o&&bo(t,r,o)&&(r=o=i),t=ds(t),r===i?(r=t,t=0):r=ds(r),function(e,t,r,i){for(var o=-1,a=yr(dt((t-e)/(r||1)),0),s=n(a);a--;)s[i?a:++o]=e,e+=r;return s}(t,r,o=o===i?t<r?1:-1:ds(o),e)}}function zi(e){return function(t,r){return"string"==typeof t&&"string"==typeof r||(t=ys(t),r=ys(r)),e(t,r)}}function qi(e,t,r,n,o,a,s,c,f,l){var d=8&t;t|=d?u:64,4&(t&=~(d?64:u))||(t&=-4);var h=[e,t,o,d?a:i,d?s:i,d?i:a,d?i:s,c,f,l],p=r.apply(i,h);return vo(e)&&To(p,h),p.placeholder=n,xo(p,e,t)}function Ki(e){var t=Se[e];return function(e,r){if(e=ys(e),(r=null==r?0:gr(hs(r),292))&&Dt(e)){var n=(bs(e)+"e").split("e");return+((n=(bs(t(n[0]+"e"+(+n[1]+r)))+"e").split("e"))[0]+"e"+(+n[1]-r))}return t(e)}}var Wi=Ar&&1/sr(new Ar([,-0]))[1]==f?function(e){return new Ar(e)}:su;function Gi(e){return function(t){var r=lo(t);return r==E?ir(t):r==T?ur(t):function(e,t){return Lt(t,(function(t){return[t,e[t]]}))}(t,e(t))}}function Yi(e,t,r,a,f,l,d,h){var p=2&t;if(!p&&"function"!=typeof e)throw new Te(o);var y=a?a.length:0;if(y||(t&=-97,a=f=i),d=d===i?d:yr(hs(d),0),h=h===i?h:hs(h),y-=f?f.length:0,64&t){var g=a,b=f;a=f=i}var m=p?i:ro(e),v=[e,t,r,a,f,g,b,l,d,h];if(m&&function(e,t){var r=e[1],n=t[1],i=r|n,o=i<131,a=n==c&&8==r||n==c&&256==r&&e[7].length<=t[8]||384==n&&t[7].length<=t[8]&&8==r;if(!o&&!a)return e;1&n&&(e[2]=t[2],i|=1&r?0:4);var u=t[3];if(u){var f=e[3];e[3]=f?Ai(f,u,t[4]):u,e[4]=f?ar(e[3],s):t[4]}(u=t[5])&&(f=e[5],e[5]=f?Oi(f,u,t[6]):u,e[6]=f?ar(e[5],s):t[6]),(u=t[7])&&(e[7]=u),n&c&&(e[8]=null==e[8]?t[8]:gr(e[8],t[8])),null==e[9]&&(e[9]=t[9]),e[0]=t[0],e[1]=i}(v,m),e=v[0],t=v[1],r=v[2],a=v[3],f=v[4],!(h=v[9]=v[9]===i?p?0:e.length:yr(v[9]-y,0))&&24&t&&(t&=-25),t&&1!=t)w=8==t||16==t?function(e,t,r){var o=Pi(e);return function a(){for(var s=arguments.length,u=n(s),c=s,f=io(a);c--;)u[c]=arguments[c];var l=s<3&&u[0]!==f&&u[s-1]!==f?[]:ar(u,f);return(s-=l.length)<r?qi(e,t,Ci,a.placeholder,i,u,l,i,i,r-s):St(this&&this!==lt&&this instanceof a?o:e,this,u)}}(e,t,h):t!=u&&33!=t||f.length?Ci.apply(i,v):function(e,t,r,i){var o=1&t,a=Pi(e);return function t(){for(var s=-1,u=arguments.length,c=-1,f=i.length,l=n(f+u),d=this&&this!==lt&&this instanceof t?a:e;++c<f;)l[c]=i[c];for(;u--;)l[c++]=arguments[++s];return St(d,o?r:this,l)}}(e,t,r,a);else var w=function(e,t,r){var n=1&t,i=Pi(e);return function t(){return(this&&this!==lt&&this instanceof t?i:e).apply(n?r:this,arguments)}}(e,t,r);return xo((m?Jn:To)(w,v),e,t)}function $i(e,t,r,n){return e===i||Fa(e,xe[r])&&!Re.call(n,r)?t:e}function Xi(e,t,r,n,o,a){return Qa(e)&&Qa(t)&&(a.set(t,e),Fn(e,t,i,Xi,a),a.delete(t)),e}function Ji(e){return ns(e)?i:e}function Zi(e,t,r,n,o,a){var s=1&r,u=e.length,c=t.length;if(u!=c&&!(s&&c>u))return!1;var f=a.get(e),l=a.get(t);if(f&&l)return f==t&&l==e;var d=-1,h=!0,p=2&r?new Kr:i;for(a.set(e,t),a.set(t,e);++d<u;){var y=e[d],g=t[d];if(n)var b=s?n(g,y,d,t,e,a):n(y,g,d,e,t,a);if(b!==i){if(b)continue;h=!1;break}if(p){if(!Bt(t,(function(e,t){if(!Jt(p,t)&&(y===e||o(y,e,r,n,a)))return p.push(t)}))){h=!1;break}}else if(y!==g&&!o(y,g,r,n,a)){h=!1;break}}return a.delete(e),a.delete(t),h}function Qi(e){return No(Ao(e,i,qo),e+"")}function eo(e){return En(e,xs,co)}function to(e){return En(e,Ls,fo)}var ro=Tr?function(e){return Tr.get(e)}:su;function no(e){for(var t=e.name+"",r=Ir[t],n=Re.call(Ir,t)?r.length:0;n--;){var i=r[n],o=i.func;if(null==o||o==e)return i.name}return t}function io(e){return(Re.call(Cr,"placeholder")?Cr:e).placeholder}function oo(){var e=Cr.iteratee||nu;return e=e===nu?Rn:e,arguments.length?e(arguments[0],arguments[1]):e}function ao(e,t){var r,n,i=e.__data__;return("string"==(n=typeof(r=t))||"number"==n||"symbol"==n||"boolean"==n?"__proto__"!==r:null===r)?i["string"==typeof t?"string":"hash"]:i.map}function so(e){for(var t=xs(e),r=t.length;r--;){var n=t[r],i=e[n];t[r]=[n,i,Eo(i)]}return t}function uo(e,t){var r=function(e,t){return null==e?i:e[t]}(e,t);return kn(r)?r:i}var co=yt?function(e){return null==e?[]:(e=Ae(e),It(yt(e),(function(t){return We.call(e,t)})))}:pu,fo=yt?function(e){for(var t=[];e;)kt(t,co(e)),e=qe(e);return t}:pu,lo=Sn;function ho(e,t,r){for(var n=-1,i=(t=gi(t,e)).length,o=!1;++n<i;){var a=Do(t[n]);if(!(o=null!=e&&r(e,a)))break;e=e[a]}return o||++n!=i?o:!!(i=null==e?0:e.length)&&Za(i)&&go(a,i)&&(za(e)||Ha(e))}function po(e){return"function"!=typeof e.constructor||_o(e)?{}:jr(qe(e))}function yo(e){return za(e)||Ha(e)||!!(Ye&&e&&e[Ye])}function go(e,t){var r=typeof e;return!!(t=null==t?l:t)&&("number"==r||"symbol"!=r&&be.test(e))&&e>-1&&e%1==0&&e<t}function bo(e,t,r){if(!Qa(r))return!1;var n=typeof t;return!!("number"==n?Ka(r)&&go(t,r.length):"string"==n&&t in r)&&Fa(r[t],e)}function mo(e,t){if(za(e))return!1;var r=typeof e;return!("number"!=r&&"symbol"!=r&&"boolean"!=r&&null!=e&&!ss(e))||Q.test(e)||!Z.test(e)||null!=t&&e in Ae(t)}function vo(e){var t=no(e),r=Cr[t];if("function"!=typeof r||!(t in Vr.prototype))return!1;if(e===r)return!0;var n=ro(r);return!!n&&e===n[0]}(_r&&lo(new _r(new ArrayBuffer(1)))!=k||Er&&lo(new Er)!=E||Sr&&lo(Sr.resolve())!=O||Ar&&lo(new Ar)!=T||Or&&lo(new Or)!=x)&&(lo=function(e){var t=Sn(e),r=t==A?e.constructor:i,n=r?Co(r):"";if(n)switch(n){case Nr:return k;case xr:return E;case Lr:return O;case kr:return T;case Rr:return x}return t});var wo=Le?Xa:yu;function _o(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||xe)}function Eo(e){return e==e&&!Qa(e)}function So(e,t){return function(r){return null!=r&&r[e]===t&&(t!==i||e in Ae(r))}}function Ao(e,t,r){return t=yr(t===i?e.length-1:t,0),function(){for(var i=arguments,o=-1,a=yr(i.length-t,0),s=n(a);++o<a;)s[o]=i[t+o];o=-1;for(var u=n(t+1);++o<t;)u[o]=i[o];return u[t]=r(s),St(e,this,u)}}function Oo(e,t){return t.length<2?e:_n(e,ei(t,0,-1))}function Mo(e,t){if(("constructor"!==t||"function"!=typeof e[t])&&"__proto__"!=t)return e[t]}var To=Lo(Jn),Io=ft||function(e,t){return lt.setTimeout(e,t)},No=Lo(Zn);function xo(e,t,r){var n=t+"";return No(e,function(e,t){var r=t.length;if(!r)return e;var n=r-1;return t[n]=(r>1?"& ":"")+t[n],t=t.join(r>2?", ":" "),e.replace(oe,"{\n/* [wrapped with "+t+"] */\n")}(n,function(e,t){return Ot(p,(function(r){var n="_."+r[0];t&r[1]&&!Nt(e,n)&&e.push(n)})),e.sort()}(function(e){var t=e.match(ae);return t?t[1].split(se):[]}(n),r)))}function Lo(e){var t=0,r=0;return function(){var n=br(),o=16-(n-r);if(r=n,o>0){if(++t>=800)return arguments[0]}else t=0;return e.apply(i,arguments)}}function ko(e,t){var r=-1,n=e.length,o=n-1;for(t=t===i?n:t;++r<t;){var a=Kn(r,o),s=e[a];e[a]=e[r],e[r]=s}return e.length=t,e}var Ro,Po,Bo=(Ro=Ra((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(ee,(function(e,r,n,i){t.push(n?i.replace(fe,"$1"):r||e)})),t}),(function(e){return 500===Po.size&&Po.clear(),e})),Po=Ro.cache,Ro);function Do(e){if("string"==typeof e||ss(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function Co(e){if(null!=e){try{return ke.call(e)}catch(e){}try{return e+""}catch(e){}}return""}function jo(e){if(e instanceof Vr)return e.clone();var t=new Ur(e.__wrapped__,e.__chain__);return t.__actions__=Mi(e.__actions__),t.__index__=e.__index__,t.__values__=e.__values__,t}var Fo=Gn((function(e,t){return Wa(e)?cn(e,yn(t,1,Wa,!0)):[]})),Uo=Gn((function(e,t){var r=$o(t);return Wa(r)&&(r=i),Wa(e)?cn(e,yn(t,1,Wa,!0),oo(r,2)):[]})),Vo=Gn((function(e,t){var r=$o(t);return Wa(r)&&(r=i),Wa(e)?cn(e,yn(t,1,Wa,!0),i,r):[]}));function Ho(e,t,r){var n=null==e?0:e.length;if(!n)return-1;var i=null==r?0:hs(r);return i<0&&(i=yr(n+i,0)),jt(e,oo(t,3),i)}function zo(e,t,r){var n=null==e?0:e.length;if(!n)return-1;var o=n-1;return r!==i&&(o=hs(r),o=r<0?yr(n+o,0):gr(o,n-1)),jt(e,oo(t,3),o,!0)}function qo(e){return null!=e&&e.length?yn(e,1):[]}function Ko(e){return e&&e.length?e[0]:i}var Wo=Gn((function(e){var t=Lt(e,pi);return t.length&&t[0]===e[0]?Tn(t):[]})),Go=Gn((function(e){var t=$o(e),r=Lt(e,pi);return t===$o(r)?t=i:r.pop(),r.length&&r[0]===e[0]?Tn(r,oo(t,2)):[]})),Yo=Gn((function(e){var t=$o(e),r=Lt(e,pi);return(t="function"==typeof t?t:i)&&r.pop(),r.length&&r[0]===e[0]?Tn(r,i,t):[]}));function $o(e){var t=null==e?0:e.length;return t?e[t-1]:i}var Xo=Gn(Jo);function Jo(e,t){return e&&e.length&&t&&t.length?zn(e,t):e}var Zo=Qi((function(e,t){var r=null==e?0:e.length,n=nn(e,t);return qn(e,Lt(t,(function(e){return go(e,r)?+e:e})).sort(Si)),n}));function Qo(e){return null==e?e:wr.call(e)}var ea=Gn((function(e){return si(yn(e,1,Wa,!0))})),ta=Gn((function(e){var t=$o(e);return Wa(t)&&(t=i),si(yn(e,1,Wa,!0),oo(t,2))})),ra=Gn((function(e){var t=$o(e);return t="function"==typeof t?t:i,si(yn(e,1,Wa,!0),i,t)}));function na(e){if(!e||!e.length)return[];var t=0;return e=It(e,(function(e){if(Wa(e))return t=yr(e.length,t),!0})),Gt(t,(function(t){return Lt(e,zt(t))}))}function ia(e,t){if(!e||!e.length)return[];var r=na(e);return null==t?r:Lt(r,(function(e){return St(t,i,e)}))}var oa=Gn((function(e,t){return Wa(e)?cn(e,t):[]})),aa=Gn((function(e){return di(It(e,Wa))})),sa=Gn((function(e){var t=$o(e);return Wa(t)&&(t=i),di(It(e,Wa),oo(t,2))})),ua=Gn((function(e){var t=$o(e);return t="function"==typeof t?t:i,di(It(e,Wa),i,t)})),ca=Gn(na),fa=Gn((function(e){var t=e.length,r=t>1?e[t-1]:i;return r="function"==typeof r?(e.pop(),r):i,ia(e,r)}));function la(e){var t=Cr(e);return t.__chain__=!0,t}function da(e,t){return t(e)}var ha=Qi((function(e){var t=e.length,r=t?e[0]:0,n=this.__wrapped__,o=function(t){return nn(t,e)};return!(t>1||this.__actions__.length)&&n instanceof Vr&&go(r)?((n=n.slice(r,+r+(t?1:0))).__actions__.push({func:da,args:[o],thisArg:i}),new Ur(n,this.__chain__).thru((function(e){return t&&!e.length&&e.push(i),e}))):this.thru(o)})),pa=Ii((function(e,t,r){Re.call(e,r)?++e[r]:rn(e,r,1)})),ya=Bi(Ho),ga=Bi(zo);function ba(e,t){return(za(e)?Ot:fn)(e,oo(t,3))}function ma(e,t){return(za(e)?Mt:ln)(e,oo(t,3))}var va=Ii((function(e,t,r){Re.call(e,r)?e[r].push(t):rn(e,r,[t])})),wa=Gn((function(e,t,r){var i=-1,o="function"==typeof t,a=Ka(e)?n(e.length):[];return fn(e,(function(e){a[++i]=o?St(t,e,r):In(e,t,r)})),a})),_a=Ii((function(e,t,r){rn(e,r,t)}));function Ea(e,t){return(za(e)?Lt:Dn)(e,oo(t,3))}var Sa=Ii((function(e,t,r){e[r?0:1].push(t)}),(function(){return[[],[]]})),Aa=Gn((function(e,t){if(null==e)return[];var r=t.length;return r>1&&bo(e,t[0],t[1])?t=[]:r>2&&bo(t[0],t[1],t[2])&&(t=[t[0]]),Vn(e,yn(t,1),[])})),Oa=ct||function(){return lt.Date.now()};function Ma(e,t,r){return t=r?i:t,t=e&&null==t?e.length:t,Yi(e,c,i,i,i,i,t)}function Ta(e,t){var r;if("function"!=typeof t)throw new Te(o);return e=hs(e),function(){return--e>0&&(r=t.apply(this,arguments)),e<=1&&(t=i),r}}var Ia=Gn((function(e,t,r){var n=1;if(r.length){var i=ar(r,io(Ia));n|=u}return Yi(e,n,t,r,i)})),Na=Gn((function(e,t,r){var n=3;if(r.length){var i=ar(r,io(Na));n|=u}return Yi(t,n,e,r,i)}));function xa(e,t,r){var n,a,s,u,c,f,l=0,d=!1,h=!1,p=!0;if("function"!=typeof e)throw new Te(o);function y(t){var r=n,o=a;return n=a=i,l=t,u=e.apply(o,r)}function g(e){var r=e-f;return f===i||r>=t||r<0||h&&e-l>=s}function b(){var e=Oa();if(g(e))return m(e);c=Io(b,function(e){var r=t-(e-f);return h?gr(r,s-(e-l)):r}(e))}function m(e){return c=i,p&&n?y(e):(n=a=i,u)}function v(){var e=Oa(),r=g(e);if(n=arguments,a=this,f=e,r){if(c===i)return function(e){return l=e,c=Io(b,t),d?y(e):u}(f);if(h)return vi(c),c=Io(b,t),y(f)}return c===i&&(c=Io(b,t)),u}return t=ys(t)||0,Qa(r)&&(d=!!r.leading,s=(h="maxWait"in r)?yr(ys(r.maxWait)||0,t):s,p="trailing"in r?!!r.trailing:p),v.cancel=function(){c!==i&&vi(c),l=0,n=f=a=c=i},v.flush=function(){return c===i?u:m(Oa())},v}var La=Gn((function(e,t){return un(e,1,t)})),ka=Gn((function(e,t,r){return un(e,ys(t)||0,r)}));function Ra(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new Te(o);var r=function(){var n=arguments,i=t?t.apply(this,n):n[0],o=r.cache;if(o.has(i))return o.get(i);var a=e.apply(this,n);return r.cache=o.set(i,a)||o,a};return r.cache=new(Ra.Cache||qr),r}function Pa(e){if("function"!=typeof e)throw new Te(o);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}Ra.Cache=qr;var Ba=bi((function(e,t){var r=(t=1==t.length&&za(t[0])?Lt(t[0],$t(oo())):Lt(yn(t,1),$t(oo()))).length;return Gn((function(n){for(var i=-1,o=gr(n.length,r);++i<o;)n[i]=t[i].call(this,n[i]);return St(e,this,n)}))})),Da=Gn((function(e,t){var r=ar(t,io(Da));return Yi(e,u,i,t,r)})),Ca=Gn((function(e,t){var r=ar(t,io(Ca));return Yi(e,64,i,t,r)})),ja=Qi((function(e,t){return Yi(e,256,i,i,i,t)}));function Fa(e,t){return e===t||e!=e&&t!=t}var Ua=zi(An),Va=zi((function(e,t){return e>=t})),Ha=Nn(function(){return arguments}())?Nn:function(e){return es(e)&&Re.call(e,"callee")&&!We.call(e,"callee")},za=n.isArray,qa=bt?$t(bt):function(e){return es(e)&&Sn(e)==L};function Ka(e){return null!=e&&Za(e.length)&&!Xa(e)}function Wa(e){return es(e)&&Ka(e)}var Ga=gt||yu,Ya=mt?$t(mt):function(e){return es(e)&&Sn(e)==m};function $a(e){if(!es(e))return!1;var t=Sn(e);return t==v||"[object DOMException]"==t||"string"==typeof e.message&&"string"==typeof e.name&&!ns(e)}function Xa(e){if(!Qa(e))return!1;var t=Sn(e);return t==w||t==_||"[object AsyncFunction]"==t||"[object Proxy]"==t}function Ja(e){return"number"==typeof e&&e==hs(e)}function Za(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=l}function Qa(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function es(e){return null!=e&&"object"==typeof e}var ts=vt?$t(vt):function(e){return es(e)&&lo(e)==E};function rs(e){return"number"==typeof e||es(e)&&Sn(e)==S}function ns(e){if(!es(e)||Sn(e)!=A)return!1;var t=qe(e);if(null===t)return!0;var r=Re.call(t,"constructor")&&t.constructor;return"function"==typeof r&&r instanceof r&&ke.call(r)==Ce}var is=wt?$t(wt):function(e){return es(e)&&Sn(e)==M},os=_t?$t(_t):function(e){return es(e)&&lo(e)==T};function as(e){return"string"==typeof e||!za(e)&&es(e)&&Sn(e)==I}function ss(e){return"symbol"==typeof e||es(e)&&Sn(e)==N}var us=Et?$t(Et):function(e){return es(e)&&Za(e.length)&&!!it[Sn(e)]},cs=zi(Bn),fs=zi((function(e,t){return e<=t}));function ls(e){if(!e)return[];if(Ka(e))return as(e)?fr(e):Mi(e);if($e&&e[$e])return function(e){for(var t,r=[];!(t=e.next()).done;)r.push(t.value);return r}(e[$e]());var t=lo(e);return(t==E?ir:t==T?sr:Fs)(e)}function ds(e){return e?(e=ys(e))===f||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0}function hs(e){var t=ds(e),r=t%1;return t==t?r?t-r:t:0}function ps(e){return e?on(hs(e),0,h):0}function ys(e){if("number"==typeof e)return e;if(ss(e))return d;if(Qa(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=Qa(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=Yt(e);var r=pe.test(e);return r||ge.test(e)?ut(e.slice(2),r?2:8):he.test(e)?d:+e}function gs(e){return Ti(e,Ls(e))}function bs(e){return null==e?"":ai(e)}var ms=Ni((function(e,t){if(_o(t)||Ka(t))Ti(t,xs(t),e);else for(var r in t)Re.call(t,r)&&Zr(e,r,t[r])})),vs=Ni((function(e,t){Ti(t,Ls(t),e)})),ws=Ni((function(e,t,r,n){Ti(t,Ls(t),e,n)})),_s=Ni((function(e,t,r,n){Ti(t,xs(t),e,n)})),Es=Qi(nn),Ss=Gn((function(e,t){e=Ae(e);var r=-1,n=t.length,o=n>2?t[2]:i;for(o&&bo(t[0],t[1],o)&&(n=1);++r<n;)for(var a=t[r],s=Ls(a),u=-1,c=s.length;++u<c;){var f=s[u],l=e[f];(l===i||Fa(l,xe[f])&&!Re.call(e,f))&&(e[f]=a[f])}return e})),As=Gn((function(e){return e.push(i,Xi),St(Rs,i,e)}));function Os(e,t,r){var n=null==e?i:_n(e,t);return n===i?r:n}function Ms(e,t){return null!=e&&ho(e,t,Mn)}var Ts=ji((function(e,t,r){null!=t&&"function"!=typeof t.toString&&(t=De.call(t)),e[t]=r}),Qs(ru)),Is=ji((function(e,t,r){null!=t&&"function"!=typeof t.toString&&(t=De.call(t)),Re.call(e,t)?e[t].push(r):e[t]=[r]}),oo),Ns=Gn(In);function xs(e){return Ka(e)?Gr(e):Pn(e)}function Ls(e){return Ka(e)?Gr(e,!0):function(e){if(!Qa(e))return function(e){var t=[];if(null!=e)for(var r in Ae(e))t.push(r);return t}(e);var t=_o(e),r=[];for(var n in e)("constructor"!=n||!t&&Re.call(e,n))&&r.push(n);return r}(e)}var ks=Ni((function(e,t,r){Fn(e,t,r)})),Rs=Ni((function(e,t,r,n){Fn(e,t,r,n)})),Ps=Qi((function(e,t){var r={};if(null==e)return r;var n=!1;t=Lt(t,(function(t){return t=gi(t,e),n||(n=t.length>1),t})),Ti(e,to(e),r),n&&(r=an(r,7,Ji));for(var i=t.length;i--;)ui(r,t[i]);return r})),Bs=Qi((function(e,t){return null==e?{}:function(e,t){return Hn(e,t,(function(t,r){return Ms(e,r)}))}(e,t)}));function Ds(e,t){if(null==e)return{};var r=Lt(to(e),(function(e){return[e]}));return t=oo(t),Hn(e,r,(function(e,r){return t(e,r[0])}))}var Cs=Gi(xs),js=Gi(Ls);function Fs(e){return null==e?[]:Xt(e,xs(e))}var Us=Ri((function(e,t,r){return t=t.toLowerCase(),e+(r?Vs(t):t)}));function Vs(e){return $s(bs(e).toLowerCase())}function Hs(e){return(e=bs(e))&&e.replace(me,er).replace(Je,"")}var zs=Ri((function(e,t,r){return e+(r?"-":"")+t.toLowerCase()})),qs=Ri((function(e,t,r){return e+(r?" ":"")+t.toLowerCase()})),Ks=ki("toLowerCase"),Ws=Ri((function(e,t,r){return e+(r?"_":"")+t.toLowerCase()})),Gs=Ri((function(e,t,r){return e+(r?" ":"")+$s(t)})),Ys=Ri((function(e,t,r){return e+(r?" ":"")+t.toUpperCase()})),$s=ki("toUpperCase");function Xs(e,t,r){return e=bs(e),(t=r?i:t)===i?function(e){return tt.test(e)}(e)?function(e){return e.match(Qe)||[]}(e):function(e){return e.match(ue)||[]}(e):e.match(t)||[]}var Js=Gn((function(e,t){try{return St(e,i,t)}catch(e){return $a(e)?e:new _e(e)}})),Zs=Qi((function(e,t){return Ot(t,(function(t){t=Do(t),rn(e,t,Ia(e[t],e))})),e}));function Qs(e){return function(){return e}}var eu=Di(),tu=Di(!0);function ru(e){return e}function nu(e){return Rn("function"==typeof e?e:an(e,1))}var iu=Gn((function(e,t){return function(r){return In(r,e,t)}})),ou=Gn((function(e,t){return function(r){return In(e,r,t)}}));function au(e,t,r){var n=xs(t),i=wn(t,n);null!=r||Qa(t)&&(i.length||!n.length)||(r=t,t=e,e=this,i=wn(t,xs(t)));var o=!(Qa(r)&&"chain"in r&&!r.chain),a=Xa(e);return Ot(i,(function(r){var n=t[r];e[r]=n,a&&(e.prototype[r]=function(){var t=this.__chain__;if(o||t){var r=e(this.__wrapped__);return(r.__actions__=Mi(this.__actions__)).push({func:n,args:arguments,thisArg:e}),r.__chain__=t,r}return n.apply(e,kt([this.value()],arguments))})})),e}function su(){}var uu=Ui(Lt),cu=Ui(Tt),fu=Ui(Bt);function lu(e){return mo(e)?zt(Do(e)):function(e){return function(t){return _n(t,e)}}(e)}var du=Hi(),hu=Hi(!0);function pu(){return[]}function yu(){return!1}var gu,bu=Fi((function(e,t){return e+t}),0),mu=Ki("ceil"),vu=Fi((function(e,t){return e/t}),1),wu=Ki("floor"),_u=Fi((function(e,t){return e*t}),1),Eu=Ki("round"),Su=Fi((function(e,t){return e-t}),0);return Cr.after=function(e,t){if("function"!=typeof t)throw new Te(o);return e=hs(e),function(){if(--e<1)return t.apply(this,arguments)}},Cr.ary=Ma,Cr.assign=ms,Cr.assignIn=vs,Cr.assignInWith=ws,Cr.assignWith=_s,Cr.at=Es,Cr.before=Ta,Cr.bind=Ia,Cr.bindAll=Zs,Cr.bindKey=Na,Cr.castArray=function(){if(!arguments.length)return[];var e=arguments[0];return za(e)?e:[e]},Cr.chain=la,Cr.chunk=function(e,t,r){t=(r?bo(e,t,r):t===i)?1:yr(hs(t),0);var o=null==e?0:e.length;if(!o||t<1)return[];for(var a=0,s=0,u=n(dt(o/t));a<o;)u[s++]=ei(e,a,a+=t);return u},Cr.compact=function(e){for(var t=-1,r=null==e?0:e.length,n=0,i=[];++t<r;){var o=e[t];o&&(i[n++]=o)}return i},Cr.concat=function(){var e=arguments.length;if(!e)return[];for(var t=n(e-1),r=arguments[0],i=e;i--;)t[i-1]=arguments[i];return kt(za(r)?Mi(r):[r],yn(t,1))},Cr.cond=function(e){var t=null==e?0:e.length,r=oo();return e=t?Lt(e,(function(e){if("function"!=typeof e[1])throw new Te(o);return[r(e[0]),e[1]]})):[],Gn((function(r){for(var n=-1;++n<t;){var i=e[n];if(St(i[0],this,r))return St(i[1],this,r)}}))},Cr.conforms=function(e){return function(e){var t=xs(e);return function(r){return sn(r,e,t)}}(an(e,1))},Cr.constant=Qs,Cr.countBy=pa,Cr.create=function(e,t){var r=jr(e);return null==t?r:tn(r,t)},Cr.curry=function e(t,r,n){var o=Yi(t,8,i,i,i,i,i,r=n?i:r);return o.placeholder=e.placeholder,o},Cr.curryRight=function e(t,r,n){var o=Yi(t,16,i,i,i,i,i,r=n?i:r);return o.placeholder=e.placeholder,o},Cr.debounce=xa,Cr.defaults=Ss,Cr.defaultsDeep=As,Cr.defer=La,Cr.delay=ka,Cr.difference=Fo,Cr.differenceBy=Uo,Cr.differenceWith=Vo,Cr.drop=function(e,t,r){var n=null==e?0:e.length;return n?ei(e,(t=r||t===i?1:hs(t))<0?0:t,n):[]},Cr.dropRight=function(e,t,r){var n=null==e?0:e.length;return n?ei(e,0,(t=n-(t=r||t===i?1:hs(t)))<0?0:t):[]},Cr.dropRightWhile=function(e,t){return e&&e.length?fi(e,oo(t,3),!0,!0):[]},Cr.dropWhile=function(e,t){return e&&e.length?fi(e,oo(t,3),!0):[]},Cr.fill=function(e,t,r,n){var o=null==e?0:e.length;return o?(r&&"number"!=typeof r&&bo(e,t,r)&&(r=0,n=o),function(e,t,r,n){var o=e.length;for((r=hs(r))<0&&(r=-r>o?0:o+r),(n=n===i||n>o?o:hs(n))<0&&(n+=o),n=r>n?0:ps(n);r<n;)e[r++]=t;return e}(e,t,r,n)):[]},Cr.filter=function(e,t){return(za(e)?It:pn)(e,oo(t,3))},Cr.flatMap=function(e,t){return yn(Ea(e,t),1)},Cr.flatMapDeep=function(e,t){return yn(Ea(e,t),f)},Cr.flatMapDepth=function(e,t,r){return r=r===i?1:hs(r),yn(Ea(e,t),r)},Cr.flatten=qo,Cr.flattenDeep=function(e){return null!=e&&e.length?yn(e,f):[]},Cr.flattenDepth=function(e,t){return null!=e&&e.length?yn(e,t=t===i?1:hs(t)):[]},Cr.flip=function(e){return Yi(e,512)},Cr.flow=eu,Cr.flowRight=tu,Cr.fromPairs=function(e){for(var t=-1,r=null==e?0:e.length,n={};++t<r;){var i=e[t];n[i[0]]=i[1]}return n},Cr.functions=function(e){return null==e?[]:wn(e,xs(e))},Cr.functionsIn=function(e){return null==e?[]:wn(e,Ls(e))},Cr.groupBy=va,Cr.initial=function(e){return null!=e&&e.length?ei(e,0,-1):[]},Cr.intersection=Wo,Cr.intersectionBy=Go,Cr.intersectionWith=Yo,Cr.invert=Ts,Cr.invertBy=Is,Cr.invokeMap=wa,Cr.iteratee=nu,Cr.keyBy=_a,Cr.keys=xs,Cr.keysIn=Ls,Cr.map=Ea,Cr.mapKeys=function(e,t){var r={};return t=oo(t,3),mn(e,(function(e,n,i){rn(r,t(e,n,i),e)})),r},Cr.mapValues=function(e,t){var r={};return t=oo(t,3),mn(e,(function(e,n,i){rn(r,n,t(e,n,i))})),r},Cr.matches=function(e){return Cn(an(e,1))},Cr.matchesProperty=function(e,t){return jn(e,an(t,1))},Cr.memoize=Ra,Cr.merge=ks,Cr.mergeWith=Rs,Cr.method=iu,Cr.methodOf=ou,Cr.mixin=au,Cr.negate=Pa,Cr.nthArg=function(e){return e=hs(e),Gn((function(t){return Un(t,e)}))},Cr.omit=Ps,Cr.omitBy=function(e,t){return Ds(e,Pa(oo(t)))},Cr.once=function(e){return Ta(2,e)},Cr.orderBy=function(e,t,r,n){return null==e?[]:(za(t)||(t=null==t?[]:[t]),za(r=n?i:r)||(r=null==r?[]:[r]),Vn(e,t,r))},Cr.over=uu,Cr.overArgs=Ba,Cr.overEvery=cu,Cr.overSome=fu,Cr.partial=Da,Cr.partialRight=Ca,Cr.partition=Sa,Cr.pick=Bs,Cr.pickBy=Ds,Cr.property=lu,Cr.propertyOf=function(e){return function(t){return null==e?i:_n(e,t)}},Cr.pull=Xo,Cr.pullAll=Jo,Cr.pullAllBy=function(e,t,r){return e&&e.length&&t&&t.length?zn(e,t,oo(r,2)):e},Cr.pullAllWith=function(e,t,r){return e&&e.length&&t&&t.length?zn(e,t,i,r):e},Cr.pullAt=Zo,Cr.range=du,Cr.rangeRight=hu,Cr.rearg=ja,Cr.reject=function(e,t){return(za(e)?It:pn)(e,Pa(oo(t,3)))},Cr.remove=function(e,t){var r=[];if(!e||!e.length)return r;var n=-1,i=[],o=e.length;for(t=oo(t,3);++n<o;){var a=e[n];t(a,n,e)&&(r.push(a),i.push(n))}return qn(e,i),r},Cr.rest=function(e,t){if("function"!=typeof e)throw new Te(o);return Gn(e,t=t===i?t:hs(t))},Cr.reverse=Qo,Cr.sampleSize=function(e,t,r){return t=(r?bo(e,t,r):t===i)?1:hs(t),(za(e)?$r:$n)(e,t)},Cr.set=function(e,t,r){return null==e?e:Xn(e,t,r)},Cr.setWith=function(e,t,r,n){return n="function"==typeof n?n:i,null==e?e:Xn(e,t,r,n)},Cr.shuffle=function(e){return(za(e)?Xr:Qn)(e)},Cr.slice=function(e,t,r){var n=null==e?0:e.length;return n?(r&&"number"!=typeof r&&bo(e,t,r)?(t=0,r=n):(t=null==t?0:hs(t),r=r===i?n:hs(r)),ei(e,t,r)):[]},Cr.sortBy=Aa,Cr.sortedUniq=function(e){return e&&e.length?ii(e):[]},Cr.sortedUniqBy=function(e,t){return e&&e.length?ii(e,oo(t,2)):[]},Cr.split=function(e,t,r){return r&&"number"!=typeof r&&bo(e,t,r)&&(t=r=i),(r=r===i?h:r>>>0)?(e=bs(e))&&("string"==typeof t||null!=t&&!is(t))&&!(t=ai(t))&&nr(e)?mi(fr(e),0,r):e.split(t,r):[]},Cr.spread=function(e,t){if("function"!=typeof e)throw new Te(o);return t=null==t?0:yr(hs(t),0),Gn((function(r){var n=r[t],i=mi(r,0,t);return n&&kt(i,n),St(e,this,i)}))},Cr.tail=function(e){var t=null==e?0:e.length;return t?ei(e,1,t):[]},Cr.take=function(e,t,r){return e&&e.length?ei(e,0,(t=r||t===i?1:hs(t))<0?0:t):[]},Cr.takeRight=function(e,t,r){var n=null==e?0:e.length;return n?ei(e,(t=n-(t=r||t===i?1:hs(t)))<0?0:t,n):[]},Cr.takeRightWhile=function(e,t){return e&&e.length?fi(e,oo(t,3),!1,!0):[]},Cr.takeWhile=function(e,t){return e&&e.length?fi(e,oo(t,3)):[]},Cr.tap=function(e,t){return t(e),e},Cr.throttle=function(e,t,r){var n=!0,i=!0;if("function"!=typeof e)throw new Te(o);return Qa(r)&&(n="leading"in r?!!r.leading:n,i="trailing"in r?!!r.trailing:i),xa(e,t,{leading:n,maxWait:t,trailing:i})},Cr.thru=da,Cr.toArray=ls,Cr.toPairs=Cs,Cr.toPairsIn=js,Cr.toPath=function(e){return za(e)?Lt(e,Do):ss(e)?[e]:Mi(Bo(bs(e)))},Cr.toPlainObject=gs,Cr.transform=function(e,t,r){var n=za(e),i=n||Ga(e)||us(e);if(t=oo(t,4),null==r){var o=e&&e.constructor;r=i?n?new o:[]:Qa(e)&&Xa(o)?jr(qe(e)):{}}return(i?Ot:mn)(e,(function(e,n,i){return t(r,e,n,i)})),r},Cr.unary=function(e){return Ma(e,1)},Cr.union=ea,Cr.unionBy=ta,Cr.unionWith=ra,Cr.uniq=function(e){return e&&e.length?si(e):[]},Cr.uniqBy=function(e,t){return e&&e.length?si(e,oo(t,2)):[]},Cr.uniqWith=function(e,t){return t="function"==typeof t?t:i,e&&e.length?si(e,i,t):[]},Cr.unset=function(e,t){return null==e||ui(e,t)},Cr.unzip=na,Cr.unzipWith=ia,Cr.update=function(e,t,r){return null==e?e:ci(e,t,yi(r))},Cr.updateWith=function(e,t,r,n){return n="function"==typeof n?n:i,null==e?e:ci(e,t,yi(r),n)},Cr.values=Fs,Cr.valuesIn=function(e){return null==e?[]:Xt(e,Ls(e))},Cr.without=oa,Cr.words=Xs,Cr.wrap=function(e,t){return Da(yi(t),e)},Cr.xor=aa,Cr.xorBy=sa,Cr.xorWith=ua,Cr.zip=ca,Cr.zipObject=function(e,t){return hi(e||[],t||[],Zr)},Cr.zipObjectDeep=function(e,t){return hi(e||[],t||[],Xn)},Cr.zipWith=fa,Cr.entries=Cs,Cr.entriesIn=js,Cr.extend=vs,Cr.extendWith=ws,au(Cr,Cr),Cr.add=bu,Cr.attempt=Js,Cr.camelCase=Us,Cr.capitalize=Vs,Cr.ceil=mu,Cr.clamp=function(e,t,r){return r===i&&(r=t,t=i),r!==i&&(r=(r=ys(r))==r?r:0),t!==i&&(t=(t=ys(t))==t?t:0),on(ys(e),t,r)},Cr.clone=function(e){return an(e,4)},Cr.cloneDeep=function(e){return an(e,5)},Cr.cloneDeepWith=function(e,t){return an(e,5,t="function"==typeof t?t:i)},Cr.cloneWith=function(e,t){return an(e,4,t="function"==typeof t?t:i)},Cr.conformsTo=function(e,t){return null==t||sn(e,t,xs(t))},Cr.deburr=Hs,Cr.defaultTo=function(e,t){return null==e||e!=e?t:e},Cr.divide=vu,Cr.endsWith=function(e,t,r){e=bs(e),t=ai(t);var n=e.length,o=r=r===i?n:on(hs(r),0,n);return(r-=t.length)>=0&&e.slice(r,o)==t},Cr.eq=Fa,Cr.escape=function(e){return(e=bs(e))&&Y.test(e)?e.replace(W,tr):e},Cr.escapeRegExp=function(e){return(e=bs(e))&&re.test(e)?e.replace(te,"\\$&"):e},Cr.every=function(e,t,r){var n=za(e)?Tt:dn;return r&&bo(e,t,r)&&(t=i),n(e,oo(t,3))},Cr.find=ya,Cr.findIndex=Ho,Cr.findKey=function(e,t){return Ct(e,oo(t,3),mn)},Cr.findLast=ga,Cr.findLastIndex=zo,Cr.findLastKey=function(e,t){return Ct(e,oo(t,3),vn)},Cr.floor=wu,Cr.forEach=ba,Cr.forEachRight=ma,Cr.forIn=function(e,t){return null==e?e:gn(e,oo(t,3),Ls)},Cr.forInRight=function(e,t){return null==e?e:bn(e,oo(t,3),Ls)},Cr.forOwn=function(e,t){return e&&mn(e,oo(t,3))},Cr.forOwnRight=function(e,t){return e&&vn(e,oo(t,3))},Cr.get=Os,Cr.gt=Ua,Cr.gte=Va,Cr.has=function(e,t){return null!=e&&ho(e,t,On)},Cr.hasIn=Ms,Cr.head=Ko,Cr.identity=ru,Cr.includes=function(e,t,r,n){e=Ka(e)?e:Fs(e),r=r&&!n?hs(r):0;var i=e.length;return r<0&&(r=yr(i+r,0)),as(e)?r<=i&&e.indexOf(t,r)>-1:!!i&&Ft(e,t,r)>-1},Cr.indexOf=function(e,t,r){var n=null==e?0:e.length;if(!n)return-1;var i=null==r?0:hs(r);return i<0&&(i=yr(n+i,0)),Ft(e,t,i)},Cr.inRange=function(e,t,r){return t=ds(t),r===i?(r=t,t=0):r=ds(r),function(e,t,r){return e>=gr(t,r)&&e<yr(t,r)}(e=ys(e),t,r)},Cr.invoke=Ns,Cr.isArguments=Ha,Cr.isArray=za,Cr.isArrayBuffer=qa,Cr.isArrayLike=Ka,Cr.isArrayLikeObject=Wa,Cr.isBoolean=function(e){return!0===e||!1===e||es(e)&&Sn(e)==b},Cr.isBuffer=Ga,Cr.isDate=Ya,Cr.isElement=function(e){return es(e)&&1===e.nodeType&&!ns(e)},Cr.isEmpty=function(e){if(null==e)return!0;if(Ka(e)&&(za(e)||"string"==typeof e||"function"==typeof e.splice||Ga(e)||us(e)||Ha(e)))return!e.length;var t=lo(e);if(t==E||t==T)return!e.size;if(_o(e))return!Pn(e).length;for(var r in e)if(Re.call(e,r))return!1;return!0},Cr.isEqual=function(e,t){return xn(e,t)},Cr.isEqualWith=function(e,t,r){var n=(r="function"==typeof r?r:i)?r(e,t):i;return n===i?xn(e,t,i,r):!!n},Cr.isError=$a,Cr.isFinite=function(e){return"number"==typeof e&&Dt(e)},Cr.isFunction=Xa,Cr.isInteger=Ja,Cr.isLength=Za,Cr.isMap=ts,Cr.isMatch=function(e,t){return e===t||Ln(e,t,so(t))},Cr.isMatchWith=function(e,t,r){return r="function"==typeof r?r:i,Ln(e,t,so(t),r)},Cr.isNaN=function(e){return rs(e)&&e!=+e},Cr.isNative=function(e){if(wo(e))throw new _e("Unsupported core-js use. Try https://npms.io/search?q=ponyfill.");return kn(e)},Cr.isNil=function(e){return null==e},Cr.isNull=function(e){return null===e},Cr.isNumber=rs,Cr.isObject=Qa,Cr.isObjectLike=es,Cr.isPlainObject=ns,Cr.isRegExp=is,Cr.isSafeInteger=function(e){return Ja(e)&&e>=-9007199254740991&&e<=l},Cr.isSet=os,Cr.isString=as,Cr.isSymbol=ss,Cr.isTypedArray=us,Cr.isUndefined=function(e){return e===i},Cr.isWeakMap=function(e){return es(e)&&lo(e)==x},Cr.isWeakSet=function(e){return es(e)&&"[object WeakSet]"==Sn(e)},Cr.join=function(e,t){return null==e?"":qt.call(e,t)},Cr.kebabCase=zs,Cr.last=$o,Cr.lastIndexOf=function(e,t,r){var n=null==e?0:e.length;if(!n)return-1;var o=n;return r!==i&&(o=(o=hs(r))<0?yr(n+o,0):gr(o,n-1)),t==t?function(e,t,r){for(var n=r+1;n--;)if(e[n]===t)return n;return n}(e,t,o):jt(e,Vt,o,!0)},Cr.lowerCase=qs,Cr.lowerFirst=Ks,Cr.lt=cs,Cr.lte=fs,Cr.max=function(e){return e&&e.length?hn(e,ru,An):i},Cr.maxBy=function(e,t){return e&&e.length?hn(e,oo(t,2),An):i},Cr.mean=function(e){return Ht(e,ru)},Cr.meanBy=function(e,t){return Ht(e,oo(t,2))},Cr.min=function(e){return e&&e.length?hn(e,ru,Bn):i},Cr.minBy=function(e,t){return e&&e.length?hn(e,oo(t,2),Bn):i},Cr.stubArray=pu,Cr.stubFalse=yu,Cr.stubObject=function(){return{}},Cr.stubString=function(){return""},Cr.stubTrue=function(){return!0},Cr.multiply=_u,Cr.nth=function(e,t){return e&&e.length?Un(e,hs(t)):i},Cr.noConflict=function(){return lt._===this&&(lt._=je),this},Cr.noop=su,Cr.now=Oa,Cr.pad=function(e,t,r){e=bs(e);var n=(t=hs(t))?cr(e):0;if(!t||n>=t)return e;var i=(t-n)/2;return Vi(ht(i),r)+e+Vi(dt(i),r)},Cr.padEnd=function(e,t,r){e=bs(e);var n=(t=hs(t))?cr(e):0;return t&&n<t?e+Vi(t-n,r):e},Cr.padStart=function(e,t,r){e=bs(e);var n=(t=hs(t))?cr(e):0;return t&&n<t?Vi(t-n,r)+e:e},Cr.parseInt=function(e,t,r){return r||null==t?t=0:t&&(t=+t),mr(bs(e).replace(ne,""),t||0)},Cr.random=function(e,t,r){if(r&&"boolean"!=typeof r&&bo(e,t,r)&&(t=r=i),r===i&&("boolean"==typeof t?(r=t,t=i):"boolean"==typeof e&&(r=e,e=i)),e===i&&t===i?(e=0,t=1):(e=ds(e),t===i?(t=e,e=0):t=ds(t)),e>t){var n=e;e=t,t=n}if(r||e%1||t%1){var o=vr();return gr(e+o*(t-e+st("1e-"+((o+"").length-1))),t)}return Kn(e,t)},Cr.reduce=function(e,t,r){var n=za(e)?Rt:Kt,i=arguments.length<3;return n(e,oo(t,4),r,i,fn)},Cr.reduceRight=function(e,t,r){var n=za(e)?Pt:Kt,i=arguments.length<3;return n(e,oo(t,4),r,i,ln)},Cr.repeat=function(e,t,r){return t=(r?bo(e,t,r):t===i)?1:hs(t),Wn(bs(e),t)},Cr.replace=function(){var e=arguments,t=bs(e[0]);return e.length<3?t:t.replace(e[1],e[2])},Cr.result=function(e,t,r){var n=-1,o=(t=gi(t,e)).length;for(o||(o=1,e=i);++n<o;){var a=null==e?i:e[Do(t[n])];a===i&&(n=o,a=r),e=Xa(a)?a.call(e):a}return e},Cr.round=Eu,Cr.runInContext=e,Cr.sample=function(e){return(za(e)?Yr:Yn)(e)},Cr.size=function(e){if(null==e)return 0;if(Ka(e))return as(e)?cr(e):e.length;var t=lo(e);return t==E||t==T?e.size:Pn(e).length},Cr.snakeCase=Ws,Cr.some=function(e,t,r){var n=za(e)?Bt:ti;return r&&bo(e,t,r)&&(t=i),n(e,oo(t,3))},Cr.sortedIndex=function(e,t){return ri(e,t)},Cr.sortedIndexBy=function(e,t,r){return ni(e,t,oo(r,2))},Cr.sortedIndexOf=function(e,t){var r=null==e?0:e.length;if(r){var n=ri(e,t);if(n<r&&Fa(e[n],t))return n}return-1},Cr.sortedLastIndex=function(e,t){return ri(e,t,!0)},Cr.sortedLastIndexBy=function(e,t,r){return ni(e,t,oo(r,2),!0)},Cr.sortedLastIndexOf=function(e,t){if(null!=e&&e.length){var r=ri(e,t,!0)-1;if(Fa(e[r],t))return r}return-1},Cr.startCase=Gs,Cr.startsWith=function(e,t,r){return e=bs(e),r=null==r?0:on(hs(r),0,e.length),t=ai(t),e.slice(r,r+t.length)==t},Cr.subtract=Su,Cr.sum=function(e){return e&&e.length?Wt(e,ru):0},Cr.sumBy=function(e,t){return e&&e.length?Wt(e,oo(t,2)):0},Cr.template=function(e,t,r){var n=Cr.templateSettings;r&&bo(e,t,r)&&(t=i),e=bs(e),t=ws({},t,n,$i);var o,a,s=ws({},t.imports,n.imports,$i),u=xs(s),c=Xt(s,u),f=0,l=t.interpolate||ve,d="__p += '",h=Oe((t.escape||ve).source+"|"+l.source+"|"+(l===J?le:ve).source+"|"+(t.evaluate||ve).source+"|$","g"),p="//# sourceURL="+(Re.call(t,"sourceURL")?(t.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++nt+"]")+"\n";e.replace(h,(function(t,r,n,i,s,u){return n||(n=i),d+=e.slice(f,u).replace(we,rr),r&&(o=!0,d+="' +\n__e("+r+") +\n'"),s&&(a=!0,d+="';\n"+s+";\n__p += '"),n&&(d+="' +\n((__t = ("+n+")) == null ? '' : __t) +\n'"),f=u+t.length,t})),d+="';\n";var y=Re.call(t,"variable")&&t.variable;if(y){if(ce.test(y))throw new _e("Invalid `variable` option passed into `_.template`")}else d="with (obj) {\n"+d+"\n}\n";d=(a?d.replace(H,""):d).replace(z,"$1").replace(q,"$1;"),d="function("+(y||"obj")+") {\n"+(y?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(o?", __e = _.escape":"")+(a?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+d+"return __p\n}";var g=Js((function(){return Ee(u,p+"return "+d).apply(i,c)}));if(g.source=d,$a(g))throw g;return g},Cr.times=function(e,t){if((e=hs(e))<1||e>l)return[];var r=h,n=gr(e,h);t=oo(t),e-=h;for(var i=Gt(n,t);++r<e;)t(r);return i},Cr.toFinite=ds,Cr.toInteger=hs,Cr.toLength=ps,Cr.toLower=function(e){return bs(e).toLowerCase()},Cr.toNumber=ys,Cr.toSafeInteger=function(e){return e?on(hs(e),-9007199254740991,l):0===e?e:0},Cr.toString=bs,Cr.toUpper=function(e){return bs(e).toUpperCase()},Cr.trim=function(e,t,r){if((e=bs(e))&&(r||t===i))return Yt(e);if(!e||!(t=ai(t)))return e;var n=fr(e),o=fr(t);return mi(n,Zt(n,o),Qt(n,o)+1).join("")},Cr.trimEnd=function(e,t,r){if((e=bs(e))&&(r||t===i))return e.slice(0,lr(e)+1);if(!e||!(t=ai(t)))return e;var n=fr(e);return mi(n,0,Qt(n,fr(t))+1).join("")},Cr.trimStart=function(e,t,r){if((e=bs(e))&&(r||t===i))return e.replace(ne,"");if(!e||!(t=ai(t)))return e;var n=fr(e);return mi(n,Zt(n,fr(t))).join("")},Cr.truncate=function(e,t){var r=30,n="...";if(Qa(t)){var o="separator"in t?t.separator:o;r="length"in t?hs(t.length):r,n="omission"in t?ai(t.omission):n}var a=(e=bs(e)).length;if(nr(e)){var s=fr(e);a=s.length}if(r>=a)return e;var u=r-cr(n);if(u<1)return n;var c=s?mi(s,0,u).join(""):e.slice(0,u);if(o===i)return c+n;if(s&&(u+=c.length-u),is(o)){if(e.slice(u).search(o)){var f,l=c;for(o.global||(o=Oe(o.source,bs(de.exec(o))+"g")),o.lastIndex=0;f=o.exec(l);)var d=f.index;c=c.slice(0,d===i?u:d)}}else if(e.indexOf(ai(o),u)!=u){var h=c.lastIndexOf(o);h>-1&&(c=c.slice(0,h))}return c+n},Cr.unescape=function(e){return(e=bs(e))&&G.test(e)?e.replace(K,dr):e},Cr.uniqueId=function(e){var t=++Pe;return bs(e)+t},Cr.upperCase=Ys,Cr.upperFirst=$s,Cr.each=ba,Cr.eachRight=ma,Cr.first=Ko,au(Cr,(gu={},mn(Cr,(function(e,t){Re.call(Cr.prototype,t)||(gu[t]=e)})),gu),{chain:!1}),Cr.VERSION="4.17.21",Ot(["bind","bindKey","curry","curryRight","partial","partialRight"],(function(e){Cr[e].placeholder=Cr})),Ot(["drop","take"],(function(e,t){Vr.prototype[e]=function(r){r=r===i?1:yr(hs(r),0);var n=this.__filtered__&&!t?new Vr(this):this.clone();return n.__filtered__?n.__takeCount__=gr(r,n.__takeCount__):n.__views__.push({size:gr(r,h),type:e+(n.__dir__<0?"Right":"")}),n},Vr.prototype[e+"Right"]=function(t){return this.reverse()[e](t).reverse()}})),Ot(["filter","map","takeWhile"],(function(e,t){var r=t+1,n=1==r||3==r;Vr.prototype[e]=function(e){var t=this.clone();return t.__iteratees__.push({iteratee:oo(e,3),type:r}),t.__filtered__=t.__filtered__||n,t}})),Ot(["head","last"],(function(e,t){var r="take"+(t?"Right":"");Vr.prototype[e]=function(){return this[r](1).value()[0]}})),Ot(["initial","tail"],(function(e,t){var r="drop"+(t?"":"Right");Vr.prototype[e]=function(){return this.__filtered__?new Vr(this):this[r](1)}})),Vr.prototype.compact=function(){return this.filter(ru)},Vr.prototype.find=function(e){return this.filter(e).head()},Vr.prototype.findLast=function(e){return this.reverse().find(e)},Vr.prototype.invokeMap=Gn((function(e,t){return"function"==typeof e?new Vr(this):this.map((function(r){return In(r,e,t)}))})),Vr.prototype.reject=function(e){return this.filter(Pa(oo(e)))},Vr.prototype.slice=function(e,t){e=hs(e);var r=this;return r.__filtered__&&(e>0||t<0)?new Vr(r):(e<0?r=r.takeRight(-e):e&&(r=r.drop(e)),t!==i&&(r=(t=hs(t))<0?r.dropRight(-t):r.take(t-e)),r)},Vr.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},Vr.prototype.toArray=function(){return this.take(h)},mn(Vr.prototype,(function(e,t){var r=/^(?:filter|find|map|reject)|While$/.test(t),n=/^(?:head|last)$/.test(t),o=Cr[n?"take"+("last"==t?"Right":""):t],a=n||/^find/.test(t);o&&(Cr.prototype[t]=function(){var t=this.__wrapped__,s=n?[1]:arguments,u=t instanceof Vr,c=s[0],f=u||za(t),l=function(e){var t=o.apply(Cr,kt([e],s));return n&&d?t[0]:t};f&&r&&"function"==typeof c&&1!=c.length&&(u=f=!1);var d=this.__chain__,h=!!this.__actions__.length,p=a&&!d,y=u&&!h;if(!a&&f){t=y?t:new Vr(this);var g=e.apply(t,s);return g.__actions__.push({func:da,args:[l],thisArg:i}),new Ur(g,d)}return p&&y?e.apply(this,s):(g=this.thru(l),p?n?g.value()[0]:g.value():g)})})),Ot(["pop","push","shift","sort","splice","unshift"],(function(e){var t=Ie[e],r=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",n=/^(?:pop|shift)$/.test(e);Cr.prototype[e]=function(){var e=arguments;if(n&&!this.__chain__){var i=this.value();return t.apply(za(i)?i:[],e)}return this[r]((function(r){return t.apply(za(r)?r:[],e)}))}})),mn(Vr.prototype,(function(e,t){var r=Cr[t];if(r){var n=r.name+"";Re.call(Ir,n)||(Ir[n]=[]),Ir[n].push({name:t,func:r})}})),Ir[Ci(i,2).name]=[{name:"wrapper",func:i}],Vr.prototype.clone=function(){var e=new Vr(this.__wrapped__);return e.__actions__=Mi(this.__actions__),e.__dir__=this.__dir__,e.__filtered__=this.__filtered__,e.__iteratees__=Mi(this.__iteratees__),e.__takeCount__=this.__takeCount__,e.__views__=Mi(this.__views__),e},Vr.prototype.reverse=function(){if(this.__filtered__){var e=new Vr(this);e.__dir__=-1,e.__filtered__=!0}else(e=this.clone()).__dir__*=-1;return e},Vr.prototype.value=function(){var e=this.__wrapped__.value(),t=this.__dir__,r=za(e),n=t<0,i=r?e.length:0,o=function(e,t,r){for(var n=-1,i=r.length;++n<i;){var o=r[n],a=o.size;switch(o.type){case"drop":e+=a;break;case"dropRight":t-=a;break;case"take":t=gr(t,e+a);break;case"takeRight":e=yr(e,t-a)}}return{start:e,end:t}}(0,i,this.__views__),a=o.start,s=o.end,u=s-a,c=n?s:a-1,f=this.__iteratees__,l=f.length,d=0,h=gr(u,this.__takeCount__);if(!r||!n&&i==u&&h==u)return li(e,this.__actions__);var p=[];e:for(;u--&&d<h;){for(var y=-1,g=e[c+=t];++y<l;){var b=f[y],m=b.iteratee,v=b.type,w=m(g);if(2==v)g=w;else if(!w){if(1==v)continue e;break e}}p[d++]=g}return p},Cr.prototype.at=ha,Cr.prototype.chain=function(){return la(this)},Cr.prototype.commit=function(){return new Ur(this.value(),this.__chain__)},Cr.prototype.next=function(){this.__values__===i&&(this.__values__=ls(this.value()));var e=this.__index__>=this.__values__.length;return{done:e,value:e?i:this.__values__[this.__index__++]}},Cr.prototype.plant=function(e){for(var t,r=this;r instanceof Fr;){var n=jo(r);n.__index__=0,n.__values__=i,t?o.__wrapped__=n:t=n;var o=n;r=r.__wrapped__}return o.__wrapped__=e,t},Cr.prototype.reverse=function(){var e=this.__wrapped__;if(e instanceof Vr){var t=e;return this.__actions__.length&&(t=new Vr(this)),(t=t.reverse()).__actions__.push({func:da,args:[Qo],thisArg:i}),new Ur(t,this.__chain__)}return this.thru(Qo)},Cr.prototype.toJSON=Cr.prototype.valueOf=Cr.prototype.value=function(){return li(this.__wrapped__,this.__actions__)},Cr.prototype.first=Cr.prototype.head,$e&&(Cr.prototype[$e]=function(){return this}),Cr}();lt._=hr,(n=function(){return hr}.call(t,r,t,e))===i||(e.exports=n)}.call(this)},82856:(e,t,r)=>{var n=r(81078),i=r(55615),o=r(91996),a=r(69546);e.exports=function(e,t){return(a(e)?n:o)(e,i(t,3))}},2520:(e,t,r)=>{var n=r(52290);function i(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");var r=function(){var n=arguments,i=t?t.apply(this,n):n[0],o=r.cache;if(o.has(i))return o.get(i);var a=e.apply(this,n);return r.cache=o.set(i,a)||o,a};return r.cache=new(i.Cache||n),r}i.Cache=n,e.exports=i},88034:e=>{e.exports=function(e){if("function"!=typeof e)throw new TypeError("Expected a function");return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}},27629:(e,t,r)=>{var n=r(55615),i=r(88034),o=r(36432);e.exports=function(e,t){return o(e,i(n(t)))}},36432:(e,t,r)=>{var n=r(81078),i=r(55615),o=r(33092),a=r(10478);e.exports=function(e,t){if(null==e)return{};var r=n(a(e),(function(e){return[e]}));return t=i(t),o(e,r,(function(e,r){return t(e,r[0])}))}},96730:(e,t,r)=>{var n=r(74430),i=r(12257),o=r(65677),a=r(49558);e.exports=function(e){return o(e)?n(a(e)):i(e)}},41258:e=>{e.exports=function(){return[]}},68854:e=>{e.exports=function(){return!1}},39244:(e,t,r)=>{var n=r(7874);e.exports=function(e){return null==e?"":n(e)}},54659:(e,t,r)=>{"use strict";var n=r(19105),i=r(35921),o=r(59105).Buffer,a=new Array(16);function s(){i.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}function u(e,t){return e<<t|e>>>32-t}function c(e,t,r,n,i,o,a){return u(e+(t&r|~t&n)+i+o|0,a)+t|0}function f(e,t,r,n,i,o,a){return u(e+(t&n|r&~n)+i+o|0,a)+t|0}function l(e,t,r,n,i,o,a){return u(e+(t^r^n)+i+o|0,a)+t|0}function d(e,t,r,n,i,o,a){return u(e+(r^(t|~n))+i+o|0,a)+t|0}n(s,i),s.prototype._update=function(){for(var e=a,t=0;t<16;++t)e[t]=this._block.readInt32LE(4*t);var r=this._a,n=this._b,i=this._c,o=this._d;r=c(r,n,i,o,e[0],3614090360,7),o=c(o,r,n,i,e[1],3905402710,12),i=c(i,o,r,n,e[2],606105819,17),n=c(n,i,o,r,e[3],3250441966,22),r=c(r,n,i,o,e[4],4118548399,7),o=c(o,r,n,i,e[5],1200080426,12),i=c(i,o,r,n,e[6],2821735955,17),n=c(n,i,o,r,e[7],4249261313,22),r=c(r,n,i,o,e[8],1770035416,7),o=c(o,r,n,i,e[9],2336552879,12),i=c(i,o,r,n,e[10],4294925233,17),n=c(n,i,o,r,e[11],2304563134,22),r=c(r,n,i,o,e[12],1804603682,7),o=c(o,r,n,i,e[13],4254626195,12),i=c(i,o,r,n,e[14],2792965006,17),r=f(r,n=c(n,i,o,r,e[15],1236535329,22),i,o,e[1],4129170786,5),o=f(o,r,n,i,e[6],3225465664,9),i=f(i,o,r,n,e[11],643717713,14),n=f(n,i,o,r,e[0],3921069994,20),r=f(r,n,i,o,e[5],3593408605,5),o=f(o,r,n,i,e[10],38016083,9),i=f(i,o,r,n,e[15],3634488961,14),n=f(n,i,o,r,e[4],3889429448,20),r=f(r,n,i,o,e[9],568446438,5),o=f(o,r,n,i,e[14],3275163606,9),i=f(i,o,r,n,e[3],4107603335,14),n=f(n,i,o,r,e[8],1163531501,20),r=f(r,n,i,o,e[13],2850285829,5),o=f(o,r,n,i,e[2],4243563512,9),i=f(i,o,r,n,e[7],1735328473,14),r=l(r,n=f(n,i,o,r,e[12],2368359562,20),i,o,e[5],4294588738,4),o=l(o,r,n,i,e[8],2272392833,11),i=l(i,o,r,n,e[11],1839030562,16),n=l(n,i,o,r,e[14],4259657740,23),r=l(r,n,i,o,e[1],2763975236,4),o=l(o,r,n,i,e[4],1272893353,11),i=l(i,o,r,n,e[7],4139469664,16),n=l(n,i,o,r,e[10],3200236656,23),r=l(r,n,i,o,e[13],681279174,4),o=l(o,r,n,i,e[0],3936430074,11),i=l(i,o,r,n,e[3],3572445317,16),n=l(n,i,o,r,e[6],76029189,23),r=l(r,n,i,o,e[9],3654602809,4),o=l(o,r,n,i,e[12],3873151461,11),i=l(i,o,r,n,e[15],530742520,16),r=d(r,n=l(n,i,o,r,e[2],3299628645,23),i,o,e[0],4096336452,6),o=d(o,r,n,i,e[7],1126891415,10),i=d(i,o,r,n,e[14],2878612391,15),n=d(n,i,o,r,e[5],4237533241,21),r=d(r,n,i,o,e[12],1700485571,6),o=d(o,r,n,i,e[3],2399980690,10),i=d(i,o,r,n,e[10],4293915773,15),n=d(n,i,o,r,e[1],2240044497,21),r=d(r,n,i,o,e[8],1873313359,6),o=d(o,r,n,i,e[15],4264355552,10),i=d(i,o,r,n,e[6],2734768916,15),n=d(n,i,o,r,e[13],1309151649,21),r=d(r,n,i,o,e[4],4149444226,6),o=d(o,r,n,i,e[11],3174756917,10),i=d(i,o,r,n,e[2],718787259,15),n=d(n,i,o,r,e[9],3951481745,21),this._a=this._a+r|0,this._b=this._b+n|0,this._c=this._c+i|0,this._d=this._d+o|0},s.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var e=o.allocUnsafe(16);return e.writeInt32LE(this._a,0),e.writeInt32LE(this._b,4),e.writeInt32LE(this._c,8),e.writeInt32LE(this._d,12),e},e.exports=s},85501:(e,t,r)=>{var n=r(10660),i=r(72486);function o(e){this.rand=e||new i.Rand}e.exports=o,o.create=function(e){return new o(e)},o.prototype._randbelow=function(e){var t=e.bitLength(),r=Math.ceil(t/8);do{var i=new n(this.rand.generate(r))}while(i.cmp(e)>=0);return i},o.prototype._randrange=function(e,t){var r=t.sub(e);return e.add(this._randbelow(r))},o.prototype.test=function(e,t,r){var i=e.bitLength(),o=n.mont(e),a=new n(1).toRed(o);t||(t=Math.max(1,i/48|0));for(var s=e.subn(1),u=0;!s.testn(u);u++);for(var c=e.shrn(u),f=s.toRed(o);t>0;t--){var l=this._randrange(new n(2),s);r&&r(l);var d=l.toRed(o).redPow(c);if(0!==d.cmp(a)&&0!==d.cmp(f)){for(var h=1;h<u;h++){if(0===(d=d.redSqr()).cmp(a))return!1;if(0===d.cmp(f))break}if(h===u)return!1}}return!0},o.prototype.getDivisor=function(e,t){var r=e.bitLength(),i=n.mont(e),o=new n(1).toRed(i);t||(t=Math.max(1,r/48|0));for(var a=e.subn(1),s=0;!a.testn(s);s++);for(var u=e.shrn(s),c=a.toRed(i);t>0;t--){var f=this._randrange(new n(2),a),l=e.gcd(f);if(0!==l.cmpn(1))return l;var d=f.toRed(i).redPow(u);if(0!==d.cmp(o)&&0!==d.cmp(c)){for(var h=1;h<s;h++){if(0===(d=d.redSqr()).cmp(o))return d.fromRed().subn(1).gcd(e);if(0===d.cmp(c))break}if(h===s)return(d=d.redSqr()).fromRed().subn(1).gcd(e)}}return!1}},44647:e=>{function t(e,t){if(!e)throw new Error(t||"Assertion failed")}e.exports=t,t.equal=function(e,t,r){if(e!=t)throw new Error(r||"Assertion failed: "+e+" != "+t)}},91349:(e,t)=>{"use strict";var r=t;function n(e){return 1===e.length?"0"+e:e}function i(e){for(var t="",r=0;r<e.length;r++)t+=n(e[r].toString(16));return t}r.toArray=function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var r=[];if("string"!=typeof e){for(var n=0;n<e.length;n++)r[n]=0|e[n];return r}if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),n=0;n<e.length;n+=2)r.push(parseInt(e[n]+e[n+1],16));else for(n=0;n<e.length;n++){var i=e.charCodeAt(n),o=i>>8,a=255&i;o?r.push(o,a):r.push(a)}return r},r.zero2=n,r.toHex=i,r.encode=function(e,t){return"hex"===t?i(e):e}},64651:(e,t,r)=>{var n="function"==typeof Map&&Map.prototype,i=Object.getOwnPropertyDescriptor&&n?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,o=n&&i&&"function"==typeof i.get?i.get:null,a=n&&Map.prototype.forEach,s="function"==typeof Set&&Set.prototype,u=Object.getOwnPropertyDescriptor&&s?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,c=s&&u&&"function"==typeof u.get?u.get:null,f=s&&Set.prototype.forEach,l="function"==typeof WeakMap&&WeakMap.prototype?WeakMap.prototype.has:null,d="function"==typeof WeakSet&&WeakSet.prototype?WeakSet.prototype.has:null,h="function"==typeof WeakRef&&WeakRef.prototype?WeakRef.prototype.deref:null,p=Boolean.prototype.valueOf,y=Object.prototype.toString,g=Function.prototype.toString,b=String.prototype.match,m=String.prototype.slice,v=String.prototype.replace,w=String.prototype.toUpperCase,_=String.prototype.toLowerCase,E=RegExp.prototype.test,S=Array.prototype.concat,A=Array.prototype.join,O=Array.prototype.slice,M=Math.floor,T="function"==typeof BigInt?BigInt.prototype.valueOf:null,I=Object.getOwnPropertySymbols,N="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?Symbol.prototype.toString:null,x="function"==typeof Symbol&&"object"==typeof Symbol.iterator,L="function"==typeof Symbol&&Symbol.toStringTag&&(Symbol.toStringTag,1)?Symbol.toStringTag:null,k=Object.prototype.propertyIsEnumerable,R=("function"==typeof Reflect?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(e){return e.__proto__}:null);function P(e,t){if(e===1/0||e===-1/0||e!=e||e&&e>-1e3&&e<1e3||E.call(/e/,t))return t;var r=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if("number"==typeof e){var n=e<0?-M(-e):M(e);if(n!==e){var i=String(n),o=m.call(t,i.length+1);return v.call(i,r,"$&_")+"."+v.call(v.call(o,/([0-9]{3})/g,"$&_"),/_$/,"")}}return v.call(t,r,"$&_")}var B=r(53260),D=B.custom,C=H(D)?D:null;function j(e,t,r){var n="double"===(r.quoteStyle||t)?'"':"'";return n+e+n}function F(e){return v.call(String(e),/"/g,""")}function U(e){return!("[object Array]"!==K(e)||L&&"object"==typeof e&&L in e)}function V(e){return!("[object RegExp]"!==K(e)||L&&"object"==typeof e&&L in e)}function H(e){if(x)return e&&"object"==typeof e&&e instanceof Symbol;if("symbol"==typeof e)return!0;if(!e||"object"!=typeof e||!N)return!1;try{return N.call(e),!0}catch(e){}return!1}e.exports=function e(t,r,n,i){var s=r||{};if(q(s,"quoteStyle")&&"single"!==s.quoteStyle&&"double"!==s.quoteStyle)throw new TypeError('option "quoteStyle" must be "single" or "double"');if(q(s,"maxStringLength")&&("number"==typeof s.maxStringLength?s.maxStringLength<0&&s.maxStringLength!==1/0:null!==s.maxStringLength))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var u=!q(s,"customInspect")||s.customInspect;if("boolean"!=typeof u&&"symbol"!==u)throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(q(s,"indent")&&null!==s.indent&&"\t"!==s.indent&&!(parseInt(s.indent,10)===s.indent&&s.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(q(s,"numericSeparator")&&"boolean"!=typeof s.numericSeparator)throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var y=s.numericSeparator;if(void 0===t)return"undefined";if(null===t)return"null";if("boolean"==typeof t)return t?"true":"false";if("string"==typeof t)return G(t,s);if("number"==typeof t){if(0===t)return 1/0/t>0?"0":"-0";var w=String(t);return y?P(t,w):w}if("bigint"==typeof t){var E=String(t)+"n";return y?P(t,E):E}var M=void 0===s.depth?5:s.depth;if(void 0===n&&(n=0),n>=M&&M>0&&"object"==typeof t)return U(t)?"[Array]":"[Object]";var I,D=function(e,t){var r;if("\t"===e.indent)r="\t";else{if(!("number"==typeof e.indent&&e.indent>0))return null;r=A.call(Array(e.indent+1)," ")}return{base:r,prev:A.call(Array(t+1),r)}}(s,n);if(void 0===i)i=[];else if(W(i,t)>=0)return"[Circular]";function z(t,r,o){if(r&&(i=O.call(i)).push(r),o){var a={depth:s.depth};return q(s,"quoteStyle")&&(a.quoteStyle=s.quoteStyle),e(t,a,n+1,i)}return e(t,s,n+1,i)}if("function"==typeof t&&!V(t)){var Y=function(e){if(e.name)return e.name;var t=b.call(g.call(e),/^function\s*([\w$]+)/);return t?t[1]:null}(t),ee=Q(t,z);return"[Function"+(Y?": "+Y:" (anonymous)")+"]"+(ee.length>0?" { "+A.call(ee,", ")+" }":"")}if(H(t)){var te=x?v.call(String(t),/^(Symbol\(.*\))_[^)]*$/,"$1"):N.call(t);return"object"!=typeof t||x?te:$(te)}if((I=t)&&"object"==typeof I&&("undefined"!=typeof HTMLElement&&I instanceof HTMLElement||"string"==typeof I.nodeName&&"function"==typeof I.getAttribute)){for(var re="<"+_.call(String(t.nodeName)),ne=t.attributes||[],ie=0;ie<ne.length;ie++)re+=" "+ne[ie].name+"="+j(F(ne[ie].value),"double",s);return re+=">",t.childNodes&&t.childNodes.length&&(re+="..."),re+"</"+_.call(String(t.nodeName))+">"}if(U(t)){if(0===t.length)return"[]";var oe=Q(t,z);return D&&!function(e){for(var t=0;t<e.length;t++)if(W(e[t],"\n")>=0)return!1;return!0}(oe)?"["+Z(oe,D)+"]":"[ "+A.call(oe,", ")+" ]"}if(function(e){return!("[object Error]"!==K(e)||L&&"object"==typeof e&&L in e)}(t)){var ae=Q(t,z);return"cause"in Error.prototype||!("cause"in t)||k.call(t,"cause")?0===ae.length?"["+String(t)+"]":"{ ["+String(t)+"] "+A.call(ae,", ")+" }":"{ ["+String(t)+"] "+A.call(S.call("[cause]: "+z(t.cause),ae),", ")+" }"}if("object"==typeof t&&u){if(C&&"function"==typeof t[C]&&B)return B(t,{depth:M-n});if("symbol"!==u&&"function"==typeof t.inspect)return t.inspect()}if(function(e){if(!o||!e||"object"!=typeof e)return!1;try{o.call(e);try{c.call(e)}catch(e){return!0}return e instanceof Map}catch(e){}return!1}(t)){var se=[];return a&&a.call(t,(function(e,r){se.push(z(r,t,!0)+" => "+z(e,t))})),J("Map",o.call(t),se,D)}if(function(e){if(!c||!e||"object"!=typeof e)return!1;try{c.call(e);try{o.call(e)}catch(e){return!0}return e instanceof Set}catch(e){}return!1}(t)){var ue=[];return f&&f.call(t,(function(e){ue.push(z(e,t))})),J("Set",c.call(t),ue,D)}if(function(e){if(!l||!e||"object"!=typeof e)return!1;try{l.call(e,l);try{d.call(e,d)}catch(e){return!0}return e instanceof WeakMap}catch(e){}return!1}(t))return X("WeakMap");if(function(e){if(!d||!e||"object"!=typeof e)return!1;try{d.call(e,d);try{l.call(e,l)}catch(e){return!0}return e instanceof WeakSet}catch(e){}return!1}(t))return X("WeakSet");if(function(e){if(!h||!e||"object"!=typeof e)return!1;try{return h.call(e),!0}catch(e){}return!1}(t))return X("WeakRef");if(function(e){return!("[object Number]"!==K(e)||L&&"object"==typeof e&&L in e)}(t))return $(z(Number(t)));if(function(e){if(!e||"object"!=typeof e||!T)return!1;try{return T.call(e),!0}catch(e){}return!1}(t))return $(z(T.call(t)));if(function(e){return!("[object Boolean]"!==K(e)||L&&"object"==typeof e&&L in e)}(t))return $(p.call(t));if(function(e){return!("[object String]"!==K(e)||L&&"object"==typeof e&&L in e)}(t))return $(z(String(t)));if(!function(e){return!("[object Date]"!==K(e)||L&&"object"==typeof e&&L in e)}(t)&&!V(t)){var ce=Q(t,z),fe=R?R(t)===Object.prototype:t instanceof Object||t.constructor===Object,le=t instanceof Object?"":"null prototype",de=!fe&&L&&Object(t)===t&&L in t?m.call(K(t),8,-1):le?"Object":"",he=(fe||"function"!=typeof t.constructor?"":t.constructor.name?t.constructor.name+" ":"")+(de||le?"["+A.call(S.call([],de||[],le||[]),": ")+"] ":"");return 0===ce.length?he+"{}":D?he+"{"+Z(ce,D)+"}":he+"{ "+A.call(ce,", ")+" }"}return String(t)};var z=Object.prototype.hasOwnProperty||function(e){return e in this};function q(e,t){return z.call(e,t)}function K(e){return y.call(e)}function W(e,t){if(e.indexOf)return e.indexOf(t);for(var r=0,n=e.length;r<n;r++)if(e[r]===t)return r;return-1}function G(e,t){if(e.length>t.maxStringLength){var r=e.length-t.maxStringLength,n="... "+r+" more character"+(r>1?"s":"");return G(m.call(e,0,t.maxStringLength),t)+n}return j(v.call(v.call(e,/(['\\])/g,"\\$1"),/[\x00-\x1f]/g,Y),"single",t)}function Y(e){var t=e.charCodeAt(0),r={8:"b",9:"t",10:"n",12:"f",13:"r"}[t];return r?"\\"+r:"\\x"+(t<16?"0":"")+w.call(t.toString(16))}function $(e){return"Object("+e+")"}function X(e){return e+" { ? }"}function J(e,t,r,n){return e+" ("+t+") {"+(n?Z(r,n):A.call(r,", "))+"}"}function Z(e,t){if(0===e.length)return"";var r="\n"+t.prev+t.base;return r+A.call(e,","+r)+"\n"+t.prev}function Q(e,t){var r=U(e),n=[];if(r){n.length=e.length;for(var i=0;i<e.length;i++)n[i]=q(e,i)?t(e[i],e):""}var o,a="function"==typeof I?I(e):[];if(x){o={};for(var s=0;s<a.length;s++)o["$"+a[s]]=a[s]}for(var u in e)q(e,u)&&(r&&String(Number(u))===u&&u<e.length||x&&o["$"+u]instanceof Symbol||(E.call(/[^\w$]/,u)?n.push(t(u,e)+": "+t(e[u],e)):n.push(u+": "+t(e[u],e))));if("function"==typeof I)for(var c=0;c<a.length;c++)k.call(e,a[c])&&n.push("["+t(a[c])+"]: "+t(e[a[c]],e));return n}},56179:e=>{"use strict";var t=function(e){return e!=e};e.exports=function(e,r){return 0===e&&0===r?1/e==1/r:e===r||!(!t(e)||!t(r))}},81044:(e,t,r)=>{"use strict";var n=r(31907),i=r(47208),o=r(56179),a=r(97179),s=r(76901),u=i(a(),Object);n(u,{getPolyfill:a,implementation:o,shim:s}),e.exports=u},97179:(e,t,r)=>{"use strict";var n=r(56179);e.exports=function(){return"function"==typeof Object.is?Object.is:n}},76901:(e,t,r)=>{"use strict";var n=r(97179),i=r(31907);e.exports=function(){var e=n();return i(Object,{is:e},{is:function(){return Object.is!==e}}),e}},78504:(e,t,r)=>{"use strict";var n;if(!Object.keys){var i=Object.prototype.hasOwnProperty,o=Object.prototype.toString,a=r(60310),s=Object.prototype.propertyIsEnumerable,u=!s.call({toString:null},"toString"),c=s.call((function(){}),"prototype"),f=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],l=function(e){var t=e.constructor;return t&&t.prototype===e},d={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},h=function(){if("undefined"==typeof window)return!1;for(var e in window)try{if(!d["$"+e]&&i.call(window,e)&&null!==window[e]&&"object"==typeof window[e])try{l(window[e])}catch(e){return!0}}catch(e){return!0}return!1}();n=function(e){var t=null!==e&&"object"==typeof e,r="[object Function]"===o.call(e),n=a(e),s=t&&"[object String]"===o.call(e),d=[];if(!t&&!r&&!n)throw new TypeError("Object.keys called on a non-object");var p=c&&r;if(s&&e.length>0&&!i.call(e,0))for(var y=0;y<e.length;++y)d.push(String(y));if(n&&e.length>0)for(var g=0;g<e.length;++g)d.push(String(g));else for(var b in e)p&&"prototype"===b||!i.call(e,b)||d.push(String(b));if(u)for(var m=function(e){if("undefined"==typeof window||!h)return l(e);try{return l(e)}catch(e){return!1}}(e),v=0;v<f.length;++v)m&&"constructor"===f[v]||!i.call(e,f[v])||d.push(f[v]);return d}}e.exports=n},33025:(e,t,r)=>{"use strict";var n=Array.prototype.slice,i=r(60310),o=Object.keys,a=o?function(e){return o(e)}:r(78504),s=Object.keys;a.shim=function(){if(Object.keys){var e=function(){var e=Object.keys(arguments);return e&&e.length===arguments.length}(1,2);e||(Object.keys=function(e){return i(e)?s(n.call(e)):s(e)})}else Object.keys=a;return Object.keys||a},e.exports=a},60310:e=>{"use strict";var t=Object.prototype.toString;e.exports=function(e){var r=t.call(e),n="[object Arguments]"===r;return n||(n="[object Array]"!==r&&null!==e&&"object"==typeof e&&"number"==typeof e.length&&e.length>=0&&"[object Function]"===t.call(e.callee)),n}},62465:(e,t,r)=>{"use strict";var n=r(65975);t.certificate=r(55259);var i=n.define("RSAPrivateKey",(function(){this.seq().obj(this.key("version").int(),this.key("modulus").int(),this.key("publicExponent").int(),this.key("privateExponent").int(),this.key("prime1").int(),this.key("prime2").int(),this.key("exponent1").int(),this.key("exponent2").int(),this.key("coefficient").int())}));t.RSAPrivateKey=i;var o=n.define("RSAPublicKey",(function(){this.seq().obj(this.key("modulus").int(),this.key("publicExponent").int())}));t.RSAPublicKey=o;var a=n.define("SubjectPublicKeyInfo",(function(){this.seq().obj(this.key("algorithm").use(s),this.key("subjectPublicKey").bitstr())}));t.PublicKey=a;var s=n.define("AlgorithmIdentifier",(function(){this.seq().obj(this.key("algorithm").objid(),this.key("none").null_().optional(),this.key("curve").objid().optional(),this.key("params").seq().obj(this.key("p").int(),this.key("q").int(),this.key("g").int()).optional())})),u=n.define("PrivateKeyInfo",(function(){this.seq().obj(this.key("version").int(),this.key("algorithm").use(s),this.key("subjectPrivateKey").octstr())}));t.PrivateKey=u;var c=n.define("EncryptedPrivateKeyInfo",(function(){this.seq().obj(this.key("algorithm").seq().obj(this.key("id").objid(),this.key("decrypt").seq().obj(this.key("kde").seq().obj(this.key("id").objid(),this.key("kdeparams").seq().obj(this.key("salt").octstr(),this.key("iters").int())),this.key("cipher").seq().obj(this.key("algo").objid(),this.key("iv").octstr()))),this.key("subjectPrivateKey").octstr())}));t.EncryptedPrivateKey=c;var f=n.define("DSAPrivateKey",(function(){this.seq().obj(this.key("version").int(),this.key("p").int(),this.key("q").int(),this.key("g").int(),this.key("pub_key").int(),this.key("priv_key").int())}));t.DSAPrivateKey=f,t.DSAparam=n.define("DSAparam",(function(){this.int()}));var l=n.define("ECPrivateKey",(function(){this.seq().obj(this.key("version").int(),this.key("privateKey").octstr(),this.key("parameters").optional().explicit(0).use(d),this.key("publicKey").optional().explicit(1).bitstr())}));t.ECPrivateKey=l;var d=n.define("ECParameters",(function(){this.choice({namedCurve:this.objid()})}));t.signature=n.define("signature",(function(){this.seq().obj(this.key("r").int(),this.key("s").int())}))},55259:(e,t,r)=>{"use strict";var n=r(65975),i=n.define("Time",(function(){this.choice({utcTime:this.utctime(),generalTime:this.gentime()})})),o=n.define("AttributeTypeValue",(function(){this.seq().obj(this.key("type").objid(),this.key("value").any())})),a=n.define("AlgorithmIdentifier",(function(){this.seq().obj(this.key("algorithm").objid(),this.key("parameters").optional(),this.key("curve").objid().optional())})),s=n.define("SubjectPublicKeyInfo",(function(){this.seq().obj(this.key("algorithm").use(a),this.key("subjectPublicKey").bitstr())})),u=n.define("RelativeDistinguishedName",(function(){this.setof(o)})),c=n.define("RDNSequence",(function(){this.seqof(u)})),f=n.define("Name",(function(){this.choice({rdnSequence:this.use(c)})})),l=n.define("Validity",(function(){this.seq().obj(this.key("notBefore").use(i),this.key("notAfter").use(i))})),d=n.define("Extension",(function(){this.seq().obj(this.key("extnID").objid(),this.key("critical").bool().def(!1),this.key("extnValue").octstr())})),h=n.define("TBSCertificate",(function(){this.seq().obj(this.key("version").explicit(0).int().optional(),this.key("serialNumber").int(),this.key("signature").use(a),this.key("issuer").use(f),this.key("validity").use(l),this.key("subject").use(f),this.key("subjectPublicKeyInfo").use(s),this.key("issuerUniqueID").implicit(1).bitstr().optional(),this.key("subjectUniqueID").implicit(2).bitstr().optional(),this.key("extensions").explicit(3).seqof(d).optional())})),p=n.define("X509Certificate",(function(){this.seq().obj(this.key("tbsCertificate").use(h),this.key("signatureAlgorithm").use(a),this.key("signatureValue").bitstr())}));e.exports=p},61493:(e,t,r)=>{var n=/Proc-Type: 4,ENCRYPTED[\n\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\n\r]+([0-9A-z\n\r+/=]+)[\n\r]+/m,i=/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m,o=/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\n\r+/=]+)-----END \1-----$/m,a=r(94428),s=r(43773),u=r(59105).Buffer;e.exports=function(e,t){var r,c=e.toString(),f=c.match(n);if(f){var l="aes"+f[1],d=u.from(f[2],"hex"),h=u.from(f[3].replace(/[\r\n]/g,""),"base64"),p=a(t,d.slice(0,8),parseInt(f[1],10)).key,y=[],g=s.createDecipheriv(l,p,d);y.push(g.update(h)),y.push(g.final()),r=u.concat(y)}else{var b=c.match(o);r=u.from(b[2].replace(/[\r\n]/g,""),"base64")}return{tag:c.match(i)[1],data:r}}},58155:(e,t,r)=>{var n=r(62465),i=r(68675),o=r(61493),a=r(43773),s=r(14321),u=r(59105).Buffer;function c(e){var t;"object"!=typeof e||u.isBuffer(e)||(t=e.passphrase,e=e.key),"string"==typeof e&&(e=u.from(e));var r,c,f=o(e,t),l=f.tag,d=f.data;switch(l){case"CERTIFICATE":c=n.certificate.decode(d,"der").tbsCertificate.subjectPublicKeyInfo;case"PUBLIC KEY":switch(c||(c=n.PublicKey.decode(d,"der")),r=c.algorithm.algorithm.join(".")){case"1.2.840.113549.1.1.1":return n.RSAPublicKey.decode(c.subjectPublicKey.data,"der");case"1.2.840.10045.2.1":return c.subjectPrivateKey=c.subjectPublicKey,{type:"ec",data:c};case"1.2.840.10040.4.1":return c.algorithm.params.pub_key=n.DSAparam.decode(c.subjectPublicKey.data,"der"),{type:"dsa",data:c.algorithm.params};default:throw new Error("unknown key id "+r)}case"ENCRYPTED PRIVATE KEY":d=function(e,t){var r=e.algorithm.decrypt.kde.kdeparams.salt,n=parseInt(e.algorithm.decrypt.kde.kdeparams.iters.toString(),10),o=i[e.algorithm.decrypt.cipher.algo.join(".")],c=e.algorithm.decrypt.cipher.iv,f=e.subjectPrivateKey,l=parseInt(o.split("-")[1],10)/8,d=s.pbkdf2Sync(t,r,n,l,"sha1"),h=a.createDecipheriv(o,d,c),p=[];return p.push(h.update(f)),p.push(h.final()),u.concat(p)}(d=n.EncryptedPrivateKey.decode(d,"der"),t);case"PRIVATE KEY":switch(r=(c=n.PrivateKey.decode(d,"der")).algorithm.algorithm.join(".")){case"1.2.840.113549.1.1.1":return n.RSAPrivateKey.decode(c.subjectPrivateKey,"der");case"1.2.840.10045.2.1":return{curve:c.algorithm.curve,privateKey:n.ECPrivateKey.decode(c.subjectPrivateKey,"der").privateKey};case"1.2.840.10040.4.1":return c.algorithm.params.priv_key=n.DSAparam.decode(c.subjectPrivateKey,"der"),{type:"dsa",params:c.algorithm.params};default:throw new Error("unknown key id "+r)}case"RSA PUBLIC KEY":return n.RSAPublicKey.decode(d,"der");case"RSA PRIVATE KEY":return n.RSAPrivateKey.decode(d,"der");case"DSA PRIVATE KEY":return{type:"dsa",params:n.DSAPrivateKey.decode(d,"der")};case"EC PRIVATE KEY":return{curve:(d=n.ECPrivateKey.decode(d,"der")).parameters.value,privateKey:d.privateKey};default:throw new Error("unknown key type "+l)}}e.exports=c,c.signature=n.signature},14321:(e,t,r)=>{t.pbkdf2=r(73723),t.pbkdf2Sync=r(16518)},73723:(e,t,r)=>{var n,i,o=r(59105).Buffer,a=r(32505),s=r(90204),u=r(16518),c=r(38006),f=r.g.crypto&&r.g.crypto.subtle,l={sha:"SHA-1","sha-1":"SHA-1",sha1:"SHA-1",sha256:"SHA-256","sha-256":"SHA-256",sha384:"SHA-384","sha-384":"SHA-384","sha-512":"SHA-512",sha512:"SHA-512"},d=[];function h(){return i||(i=r.g.process&&r.g.process.nextTick?r.g.process.nextTick:r.g.queueMicrotask?r.g.queueMicrotask:r.g.setImmediate?r.g.setImmediate:r.g.setTimeout)}function p(e,t,r,n,i){return f.importKey("raw",e,{name:"PBKDF2"},!1,["deriveBits"]).then((function(e){return f.deriveBits({name:"PBKDF2",salt:t,iterations:r,hash:{name:i}},e,n<<3)})).then((function(e){return o.from(e)}))}e.exports=function(e,t,i,y,g,b){"function"==typeof g&&(b=g,g=void 0);var m=l[(g=g||"sha1").toLowerCase()];if(m&&"function"==typeof r.g.Promise){if(a(i,y),e=c(e,s,"Password"),t=c(t,s,"Salt"),"function"!=typeof b)throw new Error("No callback provided to pbkdf2");!function(e,t){e.then((function(e){h()((function(){t(null,e)}))}),(function(e){h()((function(){t(e)}))}))}(function(e){if(r.g.process&&!r.g.process.browser)return Promise.resolve(!1);if(!f||!f.importKey||!f.deriveBits)return Promise.resolve(!1);if(void 0!==d[e])return d[e];var t=p(n=n||o.alloc(8),n,10,128,e).then((function(){return!0})).catch((function(){return!1}));return d[e]=t,t}(m).then((function(r){return r?p(e,t,i,y,m):u(e,t,i,y,g)})),b)}else h()((function(){var r;try{r=u(e,t,i,y,g)}catch(e){return b(e)}b(null,r)}))}},90204:(e,t,r)=>{var n,i=r(48494);n=r.g.process&&r.g.process.browser?"utf-8":r.g.process&&r.g.process.version?parseInt(i.version.split(".")[0].slice(1),10)>=6?"utf-8":"binary":"utf-8",e.exports=n},32505:e=>{var t=Math.pow(2,30)-1;e.exports=function(e,r){if("number"!=typeof e)throw new TypeError("Iterations not a number");if(e<0)throw new TypeError("Bad iterations");if("number"!=typeof r)throw new TypeError("Key length not a number");if(r<0||r>t||r!=r)throw new TypeError("Bad key length")}},16518:(e,t,r)=>{var n=r(22944),i=r(92027),o=r(55695),a=r(59105).Buffer,s=r(32505),u=r(90204),c=r(38006),f=a.alloc(128),l={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,rmd160:20,ripemd160:20};function d(e,t,r){var s=function(e){return"rmd160"===e||"ripemd160"===e?function(e){return(new i).update(e).digest()}:"md5"===e?n:function(t){return o(e).update(t).digest()}}(e),u="sha512"===e||"sha384"===e?128:64;t.length>u?t=s(t):t.length<u&&(t=a.concat([t,f],u));for(var c=a.allocUnsafe(u+l[e]),d=a.allocUnsafe(u+l[e]),h=0;h<u;h++)c[h]=54^t[h],d[h]=92^t[h];var p=a.allocUnsafe(u+r+4);c.copy(p,0,0,u),this.ipad1=p,this.ipad2=c,this.opad=d,this.alg=e,this.blocksize=u,this.hash=s,this.size=l[e]}d.prototype.run=function(e,t){return e.copy(t,this.blocksize),this.hash(t).copy(this.opad,this.blocksize),this.hash(this.opad)},e.exports=function(e,t,r,n,i){s(r,n);var o=new d(i=i||"sha1",e=c(e,u,"Password"),(t=c(t,u,"Salt")).length),f=a.allocUnsafe(n),h=a.allocUnsafe(t.length+4);t.copy(h,0,0,t.length);for(var p=0,y=l[i],g=Math.ceil(n/y),b=1;b<=g;b++){h.writeUInt32BE(b,t.length);for(var m=o.run(h,o.ipad1),v=m,w=1;w<r;w++){v=o.run(v,o.ipad2);for(var _=0;_<y;_++)m[_]^=v[_]}m.copy(f,p),p+=y}return f}},38006:(e,t,r)=>{var n=r(59105).Buffer;e.exports=function(e,t,r){if(n.isBuffer(e))return e;if("string"==typeof e)return n.from(e,t);if(ArrayBuffer.isView(e))return n.from(e.buffer);throw new TypeError(r+" must be a string, a Buffer, a typed array or a DataView")}},48494:e=>{var t,r,n=e.exports={};function i(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function a(e){if(t===setTimeout)return setTimeout(e,0);if((t===i||!t)&&setTimeout)return t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(r){try{return t.call(null,e,0)}catch(r){return t.call(this,e,0)}}}!function(){try{t="function"==typeof setTimeout?setTimeout:i}catch(e){t=i}try{r="function"==typeof clearTimeout?clearTimeout:o}catch(e){r=o}}();var s,u=[],c=!1,f=-1;function l(){c&&s&&(c=!1,s.length?u=s.concat(u):f=-1,u.length&&d())}function d(){if(!c){var e=a(l);c=!0;for(var t=u.length;t;){for(s=u,u=[];++f<t;)s&&s[f].run();f=-1,t=u.length}s=null,c=!1,function(e){if(r===clearTimeout)return clearTimeout(e);if((r===o||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(e);try{return r(e)}catch(t){try{return r.call(null,e)}catch(t){return r.call(this,e)}}}(e)}}function h(e,t){this.fun=e,this.array=t}function p(){}n.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];u.push(new h(e,t)),1!==u.length||c||a(d)},h.prototype.run=function(){this.fun.apply(null,this.array)},n.title="browser",n.browser=!0,n.env={},n.argv=[],n.version="",n.versions={},n.on=p,n.addListener=p,n.once=p,n.off=p,n.removeListener=p,n.removeAllListeners=p,n.emit=p,n.prependListener=p,n.prependOnceListener=p,n.listeners=function(e){return[]},n.binding=function(e){throw new Error("process.binding is not supported")},n.cwd=function(){return"/"},n.chdir=function(e){throw new Error("process.chdir is not supported")},n.umask=function(){return 0}},92518:(e,t,r)=>{t.publicEncrypt=r(33532),t.privateDecrypt=r(20326),t.privateEncrypt=function(e,r){return t.publicEncrypt(e,r,!0)},t.publicDecrypt=function(e,r){return t.privateDecrypt(e,r,!0)}},83559:(e,t,r)=>{var n=r(50637),i=r(59105).Buffer;function o(e){var t=i.allocUnsafe(4);return t.writeUInt32BE(e,0),t}e.exports=function(e,t){for(var r,a=i.alloc(0),s=0;a.length<t;)r=o(s++),a=i.concat([a,n("sha1").update(e).update(r).digest()]);return a.slice(0,t)}},20326:(e,t,r)=>{var n=r(58155),i=r(83559),o=r(76016),a=r(10660),s=r(4621),u=r(50637),c=r(24941),f=r(59105).Buffer;e.exports=function(e,t,r){var l;l=e.padding?e.padding:r?1:4;var d,h=n(e),p=h.modulus.byteLength();if(t.length>p||new a(t).cmp(h.modulus)>=0)throw new Error("decryption error");d=r?c(new a(t),h):s(t,h);var y=f.alloc(p-d.length);if(d=f.concat([y,d],p),4===l)return function(e,t){var r=e.modulus.byteLength(),n=u("sha1").update(f.alloc(0)).digest(),a=n.length;if(0!==t[0])throw new Error("decryption error");var s=t.slice(1,a+1),c=t.slice(a+1),l=o(s,i(c,a)),d=o(c,i(l,r-a-1));if(function(e,t){e=f.from(e),t=f.from(t);var r=0,n=e.length;e.length!==t.length&&(r++,n=Math.min(e.length,t.length));for(var i=-1;++i<n;)r+=e[i]^t[i];return r}(n,d.slice(0,a)))throw new Error("decryption error");for(var h=a;0===d[h];)h++;if(1!==d[h++])throw new Error("decryption error");return d.slice(h)}(h,d);if(1===l)return function(e,t,r){for(var n=t.slice(0,2),i=2,o=0;0!==t[i++];)if(i>=t.length){o++;break}var a=t.slice(2,i-1);if(("0002"!==n.toString("hex")&&!r||"0001"!==n.toString("hex")&&r)&&o++,a.length<8&&o++,o)throw new Error("decryption error");return t.slice(i)}(0,d,r);if(3===l)return d;throw new Error("unknown padding")}},33532:(e,t,r)=>{var n=r(58155),i=r(83638),o=r(50637),a=r(83559),s=r(76016),u=r(10660),c=r(24941),f=r(4621),l=r(59105).Buffer;e.exports=function(e,t,r){var d;d=e.padding?e.padding:r?1:4;var h,p=n(e);if(4===d)h=function(e,t){var r=e.modulus.byteLength(),n=t.length,c=o("sha1").update(l.alloc(0)).digest(),f=c.length,d=2*f;if(n>r-d-2)throw new Error("message too long");var h=l.alloc(r-n-d-2),p=r-f-1,y=i(f),g=s(l.concat([c,h,l.alloc(1,1),t],p),a(y,p)),b=s(y,a(g,f));return new u(l.concat([l.alloc(1),b,g],r))}(p,t);else if(1===d)h=function(e,t,r){var n,o=t.length,a=e.modulus.byteLength();if(o>a-11)throw new Error("message too long");return n=r?l.alloc(a-o-3,255):function(e){for(var t,r=l.allocUnsafe(e),n=0,o=i(2*e),a=0;n<e;)a===o.length&&(o=i(2*e),a=0),(t=o[a++])&&(r[n++]=t);return r}(a-o-3),new u(l.concat([l.from([0,r?1:2]),n,l.alloc(1),t],a))}(p,t,r);else{if(3!==d)throw new Error("unknown padding");if((h=new u(t)).cmp(p.modulus)>=0)throw new Error("data too long for modulus")}return r?f(h,p):c(h,p)}},24941:(e,t,r)=>{var n=r(10660),i=r(59105).Buffer;e.exports=function(e,t){return i.from(e.toRed(n.mont(t.modulus)).redPow(new n(t.publicExponent)).fromRed().toArray())}},76016:e=>{e.exports=function(e,t){for(var r=e.length,n=-1;++n<r;)e[n]^=t[n];return e}},30162:e=>{"use strict";var t=String.prototype.replace,r=/%20/g,n="RFC3986";e.exports={default:n,formatters:{RFC1738:function(e){return t.call(e,r,"+")},RFC3986:function(e){return String(e)}},RFC1738:"RFC1738",RFC3986:n}},88924:(e,t,r)=>{"use strict";var n=r(67546),i=r(20156),o=r(30162);e.exports={formats:o,parse:i,stringify:n}},20156:(e,t,r)=>{"use strict";var n=r(35562),i=Object.prototype.hasOwnProperty,o=Array.isArray,a={allowDots:!1,allowPrototypes:!1,allowSparse:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decoder:n.decode,delimiter:"&",depth:5,ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictNullHandling:!1},s=function(e){return e.replace(/&#(\d+);/g,(function(e,t){return String.fromCharCode(parseInt(t,10))}))},u=function(e,t){return e&&"string"==typeof e&&t.comma&&e.indexOf(",")>-1?e.split(","):e},c=function(e,t,r,n){if(e){var o=r.allowDots?e.replace(/\.([^.[]+)/g,"[$1]"):e,a=/(\[[^[\]]*])/g,s=r.depth>0&&/(\[[^[\]]*])/.exec(o),c=s?o.slice(0,s.index):o,f=[];if(c){if(!r.plainObjects&&i.call(Object.prototype,c)&&!r.allowPrototypes)return;f.push(c)}for(var l=0;r.depth>0&&null!==(s=a.exec(o))&&l<r.depth;){if(l+=1,!r.plainObjects&&i.call(Object.prototype,s[1].slice(1,-1))&&!r.allowPrototypes)return;f.push(s[1])}return s&&f.push("["+o.slice(s.index)+"]"),function(e,t,r,n){for(var i=n?t:u(t,r),o=e.length-1;o>=0;--o){var a,s=e[o];if("[]"===s&&r.parseArrays)a=[].concat(i);else{a=r.plainObjects?Object.create(null):{};var c="["===s.charAt(0)&&"]"===s.charAt(s.length-1)?s.slice(1,-1):s,f=parseInt(c,10);r.parseArrays||""!==c?!isNaN(f)&&s!==c&&String(f)===c&&f>=0&&r.parseArrays&&f<=r.arrayLimit?(a=[])[f]=i:"__proto__"!==c&&(a[c]=i):a={0:i}}i=a}return i}(f,t,r,n)}};e.exports=function(e,t){var r=function(e){if(!e)return a;if(null!==e.decoder&&void 0!==e.decoder&&"function"!=typeof e.decoder)throw new TypeError("Decoder has to be a function.");if(void 0!==e.charset&&"utf-8"!==e.charset&&"iso-8859-1"!==e.charset)throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");var t=void 0===e.charset?a.charset:e.charset;return{allowDots:void 0===e.allowDots?a.allowDots:!!e.allowDots,allowPrototypes:"boolean"==typeof e.allowPrototypes?e.allowPrototypes:a.allowPrototypes,allowSparse:"boolean"==typeof e.allowSparse?e.allowSparse:a.allowSparse,arrayLimit:"number"==typeof e.arrayLimit?e.arrayLimit:a.arrayLimit,charset:t,charsetSentinel:"boolean"==typeof e.charsetSentinel?e.charsetSentinel:a.charsetSentinel,comma:"boolean"==typeof e.comma?e.comma:a.comma,decoder:"function"==typeof e.decoder?e.decoder:a.decoder,delimiter:"string"==typeof e.delimiter||n.isRegExp(e.delimiter)?e.delimiter:a.delimiter,depth:"number"==typeof e.depth||!1===e.depth?+e.depth:a.depth,ignoreQueryPrefix:!0===e.ignoreQueryPrefix,interpretNumericEntities:"boolean"==typeof e.interpretNumericEntities?e.interpretNumericEntities:a.interpretNumericEntities,parameterLimit:"number"==typeof e.parameterLimit?e.parameterLimit:a.parameterLimit,parseArrays:!1!==e.parseArrays,plainObjects:"boolean"==typeof e.plainObjects?e.plainObjects:a.plainObjects,strictNullHandling:"boolean"==typeof e.strictNullHandling?e.strictNullHandling:a.strictNullHandling}}(t);if(""===e||null==e)return r.plainObjects?Object.create(null):{};for(var f="string"==typeof e?function(e,t){var r,c={},f=t.ignoreQueryPrefix?e.replace(/^\?/,""):e,l=t.parameterLimit===1/0?void 0:t.parameterLimit,d=f.split(t.delimiter,l),h=-1,p=t.charset;if(t.charsetSentinel)for(r=0;r<d.length;++r)0===d[r].indexOf("utf8=")&&("utf8=%E2%9C%93"===d[r]?p="utf-8":"utf8=%26%2310003%3B"===d[r]&&(p="iso-8859-1"),h=r,r=d.length);for(r=0;r<d.length;++r)if(r!==h){var y,g,b=d[r],m=b.indexOf("]="),v=-1===m?b.indexOf("="):m+1;-1===v?(y=t.decoder(b,a.decoder,p,"key"),g=t.strictNullHandling?null:""):(y=t.decoder(b.slice(0,v),a.decoder,p,"key"),g=n.maybeMap(u(b.slice(v+1),t),(function(e){return t.decoder(e,a.decoder,p,"value")}))),g&&t.interpretNumericEntities&&"iso-8859-1"===p&&(g=s(g)),b.indexOf("[]=")>-1&&(g=o(g)?[g]:g),i.call(c,y)?c[y]=n.combine(c[y],g):c[y]=g}return c}(e,r):e,l=r.plainObjects?Object.create(null):{},d=Object.keys(f),h=0;h<d.length;++h){var p=d[h],y=c(p,f[p],r,"string"==typeof e);l=n.merge(l,y,r)}return!0===r.allowSparse?l:n.compact(l)}},67546:(e,t,r)=>{"use strict";var n=r(64301),i=r(35562),o=r(30162),a=Object.prototype.hasOwnProperty,s={brackets:function(e){return e+"[]"},comma:"comma",indices:function(e,t){return e+"["+t+"]"},repeat:function(e){return e}},u=Array.isArray,c=String.prototype.split,f=Array.prototype.push,l=function(e,t){f.apply(e,u(t)?t:[t])},d=Date.prototype.toISOString,h=o.default,p={addQueryPrefix:!1,allowDots:!1,charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encoder:i.encode,encodeValuesOnly:!1,format:h,formatter:o.formatters[h],indices:!1,serializeDate:function(e){return d.call(e)},skipNulls:!1,strictNullHandling:!1},y={},g=function e(t,r,o,a,s,f,d,h,g,b,m,v,w,_,E,S){for(var A,O=t,M=S,T=0,I=!1;void 0!==(M=M.get(y))&&!I;){var N=M.get(t);if(T+=1,void 0!==N){if(N===T)throw new RangeError("Cyclic object value");I=!0}void 0===M.get(y)&&(T=0)}if("function"==typeof h?O=h(r,O):O instanceof Date?O=m(O):"comma"===o&&u(O)&&(O=i.maybeMap(O,(function(e){return e instanceof Date?m(e):e}))),null===O){if(s)return d&&!_?d(r,p.encoder,E,"key",v):r;O=""}if("string"==typeof(A=O)||"number"==typeof A||"boolean"==typeof A||"symbol"==typeof A||"bigint"==typeof A||i.isBuffer(O)){if(d){var x=_?r:d(r,p.encoder,E,"key",v);if("comma"===o&&_){for(var L=c.call(String(O),","),k="",R=0;R<L.length;++R)k+=(0===R?"":",")+w(d(L[R],p.encoder,E,"value",v));return[w(x)+(a&&u(O)&&1===L.length?"[]":"")+"="+k]}return[w(x)+"="+w(d(O,p.encoder,E,"value",v))]}return[w(r)+"="+w(String(O))]}var P,B=[];if(void 0===O)return B;if("comma"===o&&u(O))P=[{value:O.length>0?O.join(",")||null:void 0}];else if(u(h))P=h;else{var D=Object.keys(O);P=g?D.sort(g):D}for(var C=a&&u(O)&&1===O.length?r+"[]":r,j=0;j<P.length;++j){var F=P[j],U="object"==typeof F&&void 0!==F.value?F.value:O[F];if(!f||null!==U){var V=u(O)?"function"==typeof o?o(C,F):C:C+(b?"."+F:"["+F+"]");S.set(t,T);var H=n();H.set(y,S),l(B,e(U,V,o,a,s,f,d,h,g,b,m,v,w,_,E,H))}}return B};e.exports=function(e,t){var r,i=e,c=function(e){if(!e)return p;if(null!==e.encoder&&void 0!==e.encoder&&"function"!=typeof e.encoder)throw new TypeError("Encoder has to be a function.");var t=e.charset||p.charset;if(void 0!==e.charset&&"utf-8"!==e.charset&&"iso-8859-1"!==e.charset)throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");var r=o.default;if(void 0!==e.format){if(!a.call(o.formatters,e.format))throw new TypeError("Unknown format option provided.");r=e.format}var n=o.formatters[r],i=p.filter;return("function"==typeof e.filter||u(e.filter))&&(i=e.filter),{addQueryPrefix:"boolean"==typeof e.addQueryPrefix?e.addQueryPrefix:p.addQueryPrefix,allowDots:void 0===e.allowDots?p.allowDots:!!e.allowDots,charset:t,charsetSentinel:"boolean"==typeof e.charsetSentinel?e.charsetSentinel:p.charsetSentinel,delimiter:void 0===e.delimiter?p.delimiter:e.delimiter,encode:"boolean"==typeof e.encode?e.encode:p.encode,encoder:"function"==typeof e.encoder?e.encoder:p.encoder,encodeValuesOnly:"boolean"==typeof e.encodeValuesOnly?e.encodeValuesOnly:p.encodeValuesOnly,filter:i,format:r,formatter:n,serializeDate:"function"==typeof e.serializeDate?e.serializeDate:p.serializeDate,skipNulls:"boolean"==typeof e.skipNulls?e.skipNulls:p.skipNulls,sort:"function"==typeof e.sort?e.sort:null,strictNullHandling:"boolean"==typeof e.strictNullHandling?e.strictNullHandling:p.strictNullHandling}}(t);"function"==typeof c.filter?i=(0,c.filter)("",i):u(c.filter)&&(r=c.filter);var f,d=[];if("object"!=typeof i||null===i)return"";f=t&&t.arrayFormat in s?t.arrayFormat:t&&"indices"in t?t.indices?"indices":"repeat":"indices";var h=s[f];if(t&&"commaRoundTrip"in t&&"boolean"!=typeof t.commaRoundTrip)throw new TypeError("`commaRoundTrip` must be a boolean, or absent");var y="comma"===h&&t&&t.commaRoundTrip;r||(r=Object.keys(i)),c.sort&&r.sort(c.sort);for(var b=n(),m=0;m<r.length;++m){var v=r[m];c.skipNulls&&null===i[v]||l(d,g(i[v],v,h,y,c.strictNullHandling,c.skipNulls,c.encode?c.encoder:null,c.filter,c.sort,c.allowDots,c.serializeDate,c.format,c.formatter,c.encodeValuesOnly,c.charset,b))}var w=d.join(c.delimiter),_=!0===c.addQueryPrefix?"?":"";return c.charsetSentinel&&("iso-8859-1"===c.charset?_+="utf8=%26%2310003%3B&":_+="utf8=%E2%9C%93&"),w.length>0?_+w:""}},35562:(e,t,r)=>{"use strict";var n=r(30162),i=Object.prototype.hasOwnProperty,o=Array.isArray,a=function(){for(var e=[],t=0;t<256;++t)e.push("%"+((t<16?"0":"")+t.toString(16)).toUpperCase());return e}(),s=function(e,t){for(var r=t&&t.plainObjects?Object.create(null):{},n=0;n<e.length;++n)void 0!==e[n]&&(r[n]=e[n]);return r};e.exports={arrayToObject:s,assign:function(e,t){return Object.keys(t).reduce((function(e,r){return e[r]=t[r],e}),e)},combine:function(e,t){return[].concat(e,t)},compact:function(e){for(var t=[{obj:{o:e},prop:"o"}],r=[],n=0;n<t.length;++n)for(var i=t[n],a=i.obj[i.prop],s=Object.keys(a),u=0;u<s.length;++u){var c=s[u],f=a[c];"object"==typeof f&&null!==f&&-1===r.indexOf(f)&&(t.push({obj:a,prop:c}),r.push(f))}return function(e){for(;e.length>1;){var t=e.pop(),r=t.obj[t.prop];if(o(r)){for(var n=[],i=0;i<r.length;++i)void 0!==r[i]&&n.push(r[i]);t.obj[t.prop]=n}}}(t),e},decode:function(e,t,r){var n=e.replace(/\+/g," ");if("iso-8859-1"===r)return n.replace(/%[0-9a-f]{2}/gi,unescape);try{return decodeURIComponent(n)}catch(e){return n}},encode:function(e,t,r,i,o){if(0===e.length)return e;var s=e;if("symbol"==typeof e?s=Symbol.prototype.toString.call(e):"string"!=typeof e&&(s=String(e)),"iso-8859-1"===r)return escape(s).replace(/%u[0-9a-f]{4}/gi,(function(e){return"%26%23"+parseInt(e.slice(2),16)+"%3B"}));for(var u="",c=0;c<s.length;++c){var f=s.charCodeAt(c);45===f||46===f||95===f||126===f||f>=48&&f<=57||f>=65&&f<=90||f>=97&&f<=122||o===n.RFC1738&&(40===f||41===f)?u+=s.charAt(c):f<128?u+=a[f]:f<2048?u+=a[192|f>>6]+a[128|63&f]:f<55296||f>=57344?u+=a[224|f>>12]+a[128|f>>6&63]+a[128|63&f]:(c+=1,f=65536+((1023&f)<<10|1023&s.charCodeAt(c)),u+=a[240|f>>18]+a[128|f>>12&63]+a[128|f>>6&63]+a[128|63&f])}return u},isBuffer:function(e){return!(!e||"object"!=typeof e||!(e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer(e)))},isRegExp:function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},maybeMap:function(e,t){if(o(e)){for(var r=[],n=0;n<e.length;n+=1)r.push(t(e[n]));return r}return t(e)},merge:function e(t,r,n){if(!r)return t;if("object"!=typeof r){if(o(t))t.push(r);else{if(!t||"object"!=typeof t)return[t,r];(n&&(n.plainObjects||n.allowPrototypes)||!i.call(Object.prototype,r))&&(t[r]=!0)}return t}if(!t||"object"!=typeof t)return[t].concat(r);var a=t;return o(t)&&!o(r)&&(a=s(t,n)),o(t)&&o(r)?(r.forEach((function(r,o){if(i.call(t,o)){var a=t[o];a&&"object"==typeof a&&r&&"object"==typeof r?t[o]=e(a,r,n):t.push(r)}else t[o]=r})),t):Object.keys(r).reduce((function(t,o){var a=r[o];return i.call(t,o)?t[o]=e(t[o],a,n):t[o]=a,t}),a)}}},83638:(e,t,r)=>{"use strict";var n=r(48494),i=65536,o=r(59105).Buffer,a=r.g.crypto||r.g.msCrypto;a&&a.getRandomValues?e.exports=function(e,t){if(e>4294967295)throw new RangeError("requested too many random bytes");var r=o.allocUnsafe(e);if(e>0)if(e>i)for(var s=0;s<e;s+=i)a.getRandomValues(r.slice(s,s+i));else a.getRandomValues(r);return"function"==typeof t?n.nextTick((function(){t(null,r)})):r}:e.exports=function(){throw new Error("Secure random number generation is not supported by this browser.\nUse Chrome, Firefox or Internet Explorer 11")}},91538:(e,t,r)=>{"use strict";var n=r(48494);function i(){throw new Error("secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer 11")}var o=r(59105),a=r(83638),s=o.Buffer,u=o.kMaxLength,c=r.g.crypto||r.g.msCrypto,f=Math.pow(2,32)-1;function l(e,t){if("number"!=typeof e||e!=e)throw new TypeError("offset must be a number");if(e>f||e<0)throw new TypeError("offset must be a uint32");if(e>u||e>t)throw new RangeError("offset out of range")}function d(e,t,r){if("number"!=typeof e||e!=e)throw new TypeError("size must be a number");if(e>f||e<0)throw new TypeError("size must be a uint32");if(e+t>r||e>u)throw new RangeError("buffer too small")}function h(e,t,r,i){if(n.browser){var o=e.buffer,s=new Uint8Array(o,t,r);return c.getRandomValues(s),i?void n.nextTick((function(){i(null,e)})):e}if(!i)return a(r).copy(e,t),e;a(r,(function(r,n){if(r)return i(r);n.copy(e,t),i(null,e)}))}c&&c.getRandomValues||!n.browser?(t.randomFill=function(e,t,n,i){if(!(s.isBuffer(e)||e instanceof r.g.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');if("function"==typeof t)i=t,t=0,n=e.length;else if("function"==typeof n)i=n,n=e.length-t;else if("function"!=typeof i)throw new TypeError('"cb" argument must be a function');return l(t,e.length),d(n,t,e.length),h(e,t,n,i)},t.randomFillSync=function(e,t,n){if(void 0===t&&(t=0),!(s.isBuffer(e)||e instanceof r.g.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');return l(t,e.length),void 0===n&&(n=e.length-t),d(n,t,e.length),h(e,t,n)}):(t.randomFill=i,t.randomFillSync=i)},23388:e=>{"use strict";var t={};function r(e,r,n){n||(n=Error);var i=function(e){var t,n;function i(t,n,i){return e.call(this,function(e,t,n){return"string"==typeof r?r:r(e,t,n)}(t,n,i))||this}return n=e,(t=i).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,i}(n);i.prototype.name=n.name,i.prototype.code=e,t[e]=i}function n(e,t){if(Array.isArray(e)){var r=e.length;return e=e.map((function(e){return String(e)})),r>2?"one of ".concat(t," ").concat(e.slice(0,r-1).join(", "),", or ")+e[r-1]:2===r?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}return"of ".concat(t," ").concat(String(e))}r("ERR_INVALID_OPT_VALUE",(function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'}),TypeError),r("ERR_INVALID_ARG_TYPE",(function(e,t,r){var i,o,a,s,u;if("string"==typeof t&&(o="not ",t.substr(0,4)===o)?(i="must not be",t=t.replace(/^not /,"")):i="must be",function(e,t,r){return(void 0===r||r>e.length)&&(r=e.length),e.substring(r-9,r)===t}(e," argument"))a="The ".concat(e," ").concat(i," ").concat(n(t,"type"));else{var c=("number"!=typeof u&&(u=0),u+1>(s=e).length||-1===s.indexOf(".",u)?"argument":"property");a='The "'.concat(e,'" ').concat(c," ").concat(i," ").concat(n(t,"type"))}return a+". Received type ".concat(typeof r)}),TypeError),r("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),r("ERR_METHOD_NOT_IMPLEMENTED",(function(e){return"The "+e+" method is not implemented"})),r("ERR_STREAM_PREMATURE_CLOSE","Premature close"),r("ERR_STREAM_DESTROYED",(function(e){return"Cannot call "+e+" after a stream was destroyed"})),r("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),r("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),r("ERR_STREAM_WRITE_AFTER_END","write after end"),r("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),r("ERR_UNKNOWN_ENCODING",(function(e){return"Unknown encoding: "+e}),TypeError),r("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),e.exports.q=t},55101:(e,t,r)=>{"use strict";var n=r(48494),i=Object.keys||function(e){var t=[];for(var r in e)t.push(r);return t};e.exports=f;var o=r(6246),a=r(90609);r(19105)(f,o);for(var s=i(a.prototype),u=0;u<s.length;u++){var c=s[u];f.prototype[c]||(f.prototype[c]=a.prototype[c])}function f(e){if(!(this instanceof f))return new f(e);o.call(this,e),a.call(this,e),this.allowHalfOpen=!0,e&&(!1===e.readable&&(this.readable=!1),!1===e.writable&&(this.writable=!1),!1===e.allowHalfOpen&&(this.allowHalfOpen=!1,this.once("end",l)))}function l(){this._writableState.ended||n.nextTick(d,this)}function d(e){e.end()}Object.defineProperty(f.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(f.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(f.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(f.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._readableState&&void 0!==this._writableState&&this._readableState.destroyed&&this._writableState.destroyed},set:function(e){void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed=e,this._writableState.destroyed=e)}})},17153:(e,t,r)=>{"use strict";e.exports=i;var n=r(16889);function i(e){if(!(this instanceof i))return new i(e);n.call(this,e)}r(19105)(i,n),i.prototype._transform=function(e,t,r){r(null,e)}},6246:(e,t,r)=>{"use strict";var n,i=r(48494);e.exports=O,O.ReadableState=A,r(67725).EventEmitter;var o,a=function(e,t){return e.listeners(t).length},s=r(38774),u=r(18390).Buffer,c=r.g.Uint8Array||function(){},f=r(66602);o=f&&f.debuglog?f.debuglog("stream"):function(){};var l,d,h,p=r(90033),y=r(16946),g=r(50824).getHighWaterMark,b=r(23388).q,m=b.ERR_INVALID_ARG_TYPE,v=b.ERR_STREAM_PUSH_AFTER_EOF,w=b.ERR_METHOD_NOT_IMPLEMENTED,_=b.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;r(19105)(O,s);var E=y.errorOrDestroy,S=["error","close","destroy","pause","resume"];function A(e,t,i){n=n||r(55101),e=e||{},"boolean"!=typeof i&&(i=t instanceof n),this.objectMode=!!e.objectMode,i&&(this.objectMode=this.objectMode||!!e.readableObjectMode),this.highWaterMark=g(this,e,"readableHighWaterMark",i),this.buffer=new p,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=!1!==e.emitClose,this.autoDestroy=!!e.autoDestroy,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(l||(l=r(18842).s),this.decoder=new l(e.encoding),this.encoding=e.encoding)}function O(e){if(n=n||r(55101),!(this instanceof O))return new O(e);var t=this instanceof n;this._readableState=new A(e,this,t),this.readable=!0,e&&("function"==typeof e.read&&(this._read=e.read),"function"==typeof e.destroy&&(this._destroy=e.destroy)),s.call(this)}function M(e,t,r,n,i){o("readableAddChunk",t);var a,s=e._readableState;if(null===t)s.reading=!1,function(e,t){if(o("onEofChunk"),!t.ended){if(t.decoder){var r=t.decoder.end();r&&r.length&&(t.buffer.push(r),t.length+=t.objectMode?1:r.length)}t.ended=!0,t.sync?x(e):(t.needReadable=!1,t.emittedReadable||(t.emittedReadable=!0,L(e)))}}(e,s);else if(i||(a=function(e,t){var r,n;return n=t,u.isBuffer(n)||n instanceof c||"string"==typeof t||void 0===t||e.objectMode||(r=new m("chunk",["string","Buffer","Uint8Array"],t)),r}(s,t)),a)E(e,a);else if(s.objectMode||t&&t.length>0)if("string"==typeof t||s.objectMode||Object.getPrototypeOf(t)===u.prototype||(t=function(e){return u.from(e)}(t)),n)s.endEmitted?E(e,new _):T(e,s,t,!0);else if(s.ended)E(e,new v);else{if(s.destroyed)return!1;s.reading=!1,s.decoder&&!r?(t=s.decoder.write(t),s.objectMode||0!==t.length?T(e,s,t,!1):k(e,s)):T(e,s,t,!1)}else n||(s.reading=!1,k(e,s));return!s.ended&&(s.length<s.highWaterMark||0===s.length)}function T(e,t,r,n){t.flowing&&0===t.length&&!t.sync?(t.awaitDrain=0,e.emit("data",r)):(t.length+=t.objectMode?1:r.length,n?t.buffer.unshift(r):t.buffer.push(r),t.needReadable&&x(e)),k(e,t)}Object.defineProperty(O.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._readableState&&this._readableState.destroyed},set:function(e){this._readableState&&(this._readableState.destroyed=e)}}),O.prototype.destroy=y.destroy,O.prototype._undestroy=y.undestroy,O.prototype._destroy=function(e,t){t(e)},O.prototype.push=function(e,t){var r,n=this._readableState;return n.objectMode?r=!0:"string"==typeof e&&((t=t||n.defaultEncoding)!==n.encoding&&(e=u.from(e,t),t=""),r=!0),M(this,e,t,!1,r)},O.prototype.unshift=function(e){return M(this,e,null,!0,!1)},O.prototype.isPaused=function(){return!1===this._readableState.flowing},O.prototype.setEncoding=function(e){l||(l=r(18842).s);var t=new l(e);this._readableState.decoder=t,this._readableState.encoding=this._readableState.decoder.encoding;for(var n=this._readableState.buffer.head,i="";null!==n;)i+=t.write(n.data),n=n.next;return this._readableState.buffer.clear(),""!==i&&this._readableState.buffer.push(i),this._readableState.length=i.length,this};var I=1073741824;function N(e,t){return e<=0||0===t.length&&t.ended?0:t.objectMode?1:e!=e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=function(e){return e>=I?e=I:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function x(e){var t=e._readableState;o("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(o("emitReadable",t.flowing),t.emittedReadable=!0,i.nextTick(L,e))}function L(e){var t=e._readableState;o("emitReadable_",t.destroyed,t.length,t.ended),t.destroyed||!t.length&&!t.ended||(e.emit("readable"),t.emittedReadable=!1),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,C(e)}function k(e,t){t.readingMore||(t.readingMore=!0,i.nextTick(R,e,t))}function R(e,t){for(;!t.reading&&!t.ended&&(t.length<t.highWaterMark||t.flowing&&0===t.length);){var r=t.length;if(o("maybeReadMore read 0"),e.read(0),r===t.length)break}t.readingMore=!1}function P(e){var t=e._readableState;t.readableListening=e.listenerCount("readable")>0,t.resumeScheduled&&!t.paused?t.flowing=!0:e.listenerCount("data")>0&&e.resume()}function B(e){o("readable nexttick read 0"),e.read(0)}function D(e,t){o("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),C(e),t.flowing&&!t.reading&&e.read(0)}function C(e){var t=e._readableState;for(o("flow",t.flowing);t.flowing&&null!==e.read(););}function j(e,t){return 0===t.length?null:(t.objectMode?r=t.buffer.shift():!e||e>=t.length?(r=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.first():t.buffer.concat(t.length),t.buffer.clear()):r=t.buffer.consume(e,t.decoder),r);var r}function F(e){var t=e._readableState;o("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,i.nextTick(U,t,e))}function U(e,t){if(o("endReadableNT",e.endEmitted,e.length),!e.endEmitted&&0===e.length&&(e.endEmitted=!0,t.readable=!1,t.emit("end"),e.autoDestroy)){var r=t._writableState;(!r||r.autoDestroy&&r.finished)&&t.destroy()}}function V(e,t){for(var r=0,n=e.length;r<n;r++)if(e[r]===t)return r;return-1}O.prototype.read=function(e){o("read",e),e=parseInt(e,10);var t=this._readableState,r=e;if(0!==e&&(t.emittedReadable=!1),0===e&&t.needReadable&&((0!==t.highWaterMark?t.length>=t.highWaterMark:t.length>0)||t.ended))return o("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?F(this):x(this),null;if(0===(e=N(e,t))&&t.ended)return 0===t.length&&F(this),null;var n,i=t.needReadable;return o("need readable",i),(0===t.length||t.length-e<t.highWaterMark)&&o("length less than watermark",i=!0),t.ended||t.reading?o("reading or ended",i=!1):i&&(o("do read"),t.reading=!0,t.sync=!0,0===t.length&&(t.needReadable=!0),this._read(t.highWaterMark),t.sync=!1,t.reading||(e=N(r,t))),null===(n=e>0?j(e,t):null)?(t.needReadable=t.length<=t.highWaterMark,e=0):(t.length-=e,t.awaitDrain=0),0===t.length&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&&F(this)),null!==n&&this.emit("data",n),n},O.prototype._read=function(e){E(this,new w("_read()"))},O.prototype.pipe=function(e,t){var r=this,n=this._readableState;switch(n.pipesCount){case 0:n.pipes=e;break;case 1:n.pipes=[n.pipes,e];break;default:n.pipes.push(e)}n.pipesCount+=1,o("pipe count=%d opts=%j",n.pipesCount,t);var s=t&&!1===t.end||e===i.stdout||e===i.stderr?y:u;function u(){o("onend"),e.end()}n.endEmitted?i.nextTick(s):r.once("end",s),e.on("unpipe",(function t(i,a){o("onunpipe"),i===r&&a&&!1===a.hasUnpiped&&(a.hasUnpiped=!0,o("cleanup"),e.removeListener("close",h),e.removeListener("finish",p),e.removeListener("drain",c),e.removeListener("error",d),e.removeListener("unpipe",t),r.removeListener("end",u),r.removeListener("end",y),r.removeListener("data",l),f=!0,!n.awaitDrain||e._writableState&&!e._writableState.needDrain||c())}));var c=function(e){return function(){var t=e._readableState;o("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&a(e,"data")&&(t.flowing=!0,C(e))}}(r);e.on("drain",c);var f=!1;function l(t){o("ondata");var i=e.write(t);o("dest.write",i),!1===i&&((1===n.pipesCount&&n.pipes===e||n.pipesCount>1&&-1!==V(n.pipes,e))&&!f&&(o("false write response, pause",n.awaitDrain),n.awaitDrain++),r.pause())}function d(t){o("onerror",t),y(),e.removeListener("error",d),0===a(e,"error")&&E(e,t)}function h(){e.removeListener("finish",p),y()}function p(){o("onfinish"),e.removeListener("close",h),y()}function y(){o("unpipe"),r.unpipe(e)}return r.on("data",l),function(e,t,r){if("function"==typeof e.prependListener)return e.prependListener(t,r);e._events&&e._events[t]?Array.isArray(e._events[t])?e._events[t].unshift(r):e._events[t]=[r,e._events[t]]:e.on(t,r)}(e,"error",d),e.once("close",h),e.once("finish",p),e.emit("pipe",r),n.flowing||(o("pipe resume"),r.resume()),e},O.prototype.unpipe=function(e){var t=this._readableState,r={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,r)),this;if(!e){var n=t.pipes,i=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var o=0;o<i;o++)n[o].emit("unpipe",this,{hasUnpiped:!1});return this}var a=V(t.pipes,e);return-1===a||(t.pipes.splice(a,1),t.pipesCount-=1,1===t.pipesCount&&(t.pipes=t.pipes[0]),e.emit("unpipe",this,r)),this},O.prototype.on=function(e,t){var r=s.prototype.on.call(this,e,t),n=this._readableState;return"data"===e?(n.readableListening=this.listenerCount("readable")>0,!1!==n.flowing&&this.resume()):"readable"===e&&(n.endEmitted||n.readableListening||(n.readableListening=n.needReadable=!0,n.flowing=!1,n.emittedReadable=!1,o("on readable",n.length,n.reading),n.length?x(this):n.reading||i.nextTick(B,this))),r},O.prototype.addListener=O.prototype.on,O.prototype.removeListener=function(e,t){var r=s.prototype.removeListener.call(this,e,t);return"readable"===e&&i.nextTick(P,this),r},O.prototype.removeAllListeners=function(e){var t=s.prototype.removeAllListeners.apply(this,arguments);return"readable"!==e&&void 0!==e||i.nextTick(P,this),t},O.prototype.resume=function(){var e=this._readableState;return e.flowing||(o("resume"),e.flowing=!e.readableListening,function(e,t){t.resumeScheduled||(t.resumeScheduled=!0,i.nextTick(D,e,t))}(this,e)),e.paused=!1,this},O.prototype.pause=function(){return o("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(o("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},O.prototype.wrap=function(e){var t=this,r=this._readableState,n=!1;for(var i in e.on("end",(function(){if(o("wrapped end"),r.decoder&&!r.ended){var e=r.decoder.end();e&&e.length&&t.push(e)}t.push(null)})),e.on("data",(function(i){o("wrapped data"),r.decoder&&(i=r.decoder.write(i)),r.objectMode&&null==i||(r.objectMode||i&&i.length)&&(t.push(i)||(n=!0,e.pause()))})),e)void 0===this[i]&&"function"==typeof e[i]&&(this[i]=function(t){return function(){return e[t].apply(e,arguments)}}(i));for(var a=0;a<S.length;a++)e.on(S[a],this.emit.bind(this,S[a]));return this._read=function(t){o("wrapped _read",t),n&&(n=!1,e.resume())},this},"function"==typeof Symbol&&(O.prototype[Symbol.asyncIterator]=function(){return void 0===d&&(d=r(52326)),d(this)}),Object.defineProperty(O.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),Object.defineProperty(O.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}}),Object.defineProperty(O.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(e){this._readableState&&(this._readableState.flowing=e)}}),O._fromList=j,Object.defineProperty(O.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}}),"function"==typeof Symbol&&(O.from=function(e,t){return void 0===h&&(h=r(19990)),h(O,e,t)})},16889:(e,t,r)=>{"use strict";e.exports=f;var n=r(23388).q,i=n.ERR_METHOD_NOT_IMPLEMENTED,o=n.ERR_MULTIPLE_CALLBACK,a=n.ERR_TRANSFORM_ALREADY_TRANSFORMING,s=n.ERR_TRANSFORM_WITH_LENGTH_0,u=r(55101);function c(e,t){var r=this._transformState;r.transforming=!1;var n=r.writecb;if(null===n)return this.emit("error",new o);r.writechunk=null,r.writecb=null,null!=t&&this.push(t),n(e);var i=this._readableState;i.reading=!1,(i.needReadable||i.length<i.highWaterMark)&&this._read(i.highWaterMark)}function f(e){if(!(this instanceof f))return new f(e);u.call(this,e),this._transformState={afterTransform:c.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,e&&("function"==typeof e.transform&&(this._transform=e.transform),"function"==typeof e.flush&&(this._flush=e.flush)),this.on("prefinish",l)}function l(){var e=this;"function"!=typeof this._flush||this._readableState.destroyed?d(this,null,null):this._flush((function(t,r){d(e,t,r)}))}function d(e,t,r){if(t)return e.emit("error",t);if(null!=r&&e.push(r),e._writableState.length)throw new s;if(e._transformState.transforming)throw new a;return e.push(null)}r(19105)(f,u),f.prototype.push=function(e,t){return this._transformState.needTransform=!1,u.prototype.push.call(this,e,t)},f.prototype._transform=function(e,t,r){r(new i("_transform()"))},f.prototype._write=function(e,t,r){var n=this._transformState;if(n.writecb=r,n.writechunk=e,n.writeencoding=t,!n.transforming){var i=this._readableState;(n.needTransform||i.needReadable||i.length<i.highWaterMark)&&this._read(i.highWaterMark)}},f.prototype._read=function(e){var t=this._transformState;null===t.writechunk||t.transforming?t.needTransform=!0:(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform))},f.prototype._destroy=function(e,t){u.prototype._destroy.call(this,e,(function(e){t(e)}))}},90609:(e,t,r)=>{"use strict";var n,i=r(48494);function o(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,r){var n=e.entry;for(e.entry=null;n;){var i=n.callback;t.pendingcb--,i(undefined),n=n.next}t.corkedRequestsFree.next=e}(t,e)}}e.exports=O,O.WritableState=A;var a,s={deprecate:r(11741)},u=r(38774),c=r(18390).Buffer,f=r.g.Uint8Array||function(){},l=r(16946),d=r(50824).getHighWaterMark,h=r(23388).q,p=h.ERR_INVALID_ARG_TYPE,y=h.ERR_METHOD_NOT_IMPLEMENTED,g=h.ERR_MULTIPLE_CALLBACK,b=h.ERR_STREAM_CANNOT_PIPE,m=h.ERR_STREAM_DESTROYED,v=h.ERR_STREAM_NULL_VALUES,w=h.ERR_STREAM_WRITE_AFTER_END,_=h.ERR_UNKNOWN_ENCODING,E=l.errorOrDestroy;function S(){}function A(e,t,a){n=n||r(55101),e=e||{},"boolean"!=typeof a&&(a=t instanceof n),this.objectMode=!!e.objectMode,a&&(this.objectMode=this.objectMode||!!e.writableObjectMode),this.highWaterMark=d(this,e,"writableHighWaterMark",a),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var s=!1===e.decodeStrings;this.decodeStrings=!s,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var r=e._writableState,n=r.sync,o=r.writecb;if("function"!=typeof o)throw new g;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(r),t)!function(e,t,r,n,o){--t.pendingcb,r?(i.nextTick(o,n),i.nextTick(L,e,t),e._writableState.errorEmitted=!0,E(e,n)):(o(n),e._writableState.errorEmitted=!0,E(e,n),L(e,t))}(e,r,n,t,o);else{var a=N(r)||e.destroyed;a||r.corked||r.bufferProcessing||!r.bufferedRequest||I(e,r),n?i.nextTick(T,e,r,a,o):T(e,r,a,o)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!1!==e.emitClose,this.autoDestroy=!!e.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new o(this)}function O(e){var t=this instanceof(n=n||r(55101));if(!t&&!a.call(O,this))return new O(e);this._writableState=new A(e,this,t),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),u.call(this)}function M(e,t,r,n,i,o,a){t.writelen=n,t.writecb=a,t.writing=!0,t.sync=!0,t.destroyed?t.onwrite(new m("write")):r?e._writev(i,t.onwrite):e._write(i,o,t.onwrite),t.sync=!1}function T(e,t,r,n){r||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,n(),L(e,t)}function I(e,t){t.bufferProcessing=!0;var r=t.bufferedRequest;if(e._writev&&r&&r.next){var n=t.bufferedRequestCount,i=new Array(n),a=t.corkedRequestsFree;a.entry=r;for(var s=0,u=!0;r;)i[s]=r,r.isBuf||(u=!1),r=r.next,s+=1;i.allBuffers=u,M(e,t,!0,t.length,i,"",a.finish),t.pendingcb++,t.lastBufferedRequest=null,a.next?(t.corkedRequestsFree=a.next,a.next=null):t.corkedRequestsFree=new o(t),t.bufferedRequestCount=0}else{for(;r;){var c=r.chunk,f=r.encoding,l=r.callback;if(M(e,t,!1,t.objectMode?1:c.length,c,f,l),r=r.next,t.bufferedRequestCount--,t.writing)break}null===r&&(t.lastBufferedRequest=null)}t.bufferedRequest=r,t.bufferProcessing=!1}function N(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function x(e,t){e._final((function(r){t.pendingcb--,r&&E(e,r),t.prefinished=!0,e.emit("prefinish"),L(e,t)}))}function L(e,t){var r=N(t);if(r&&(function(e,t){t.prefinished||t.finalCalled||("function"!=typeof e._final||t.destroyed?(t.prefinished=!0,e.emit("prefinish")):(t.pendingcb++,t.finalCalled=!0,i.nextTick(x,e,t)))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"),t.autoDestroy))){var n=e._readableState;(!n||n.autoDestroy&&n.endEmitted)&&e.destroy()}return r}r(19105)(O,u),A.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(A.prototype,"buffer",{get:s.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(a=Function.prototype[Symbol.hasInstance],Object.defineProperty(O,Symbol.hasInstance,{value:function(e){return!!a.call(this,e)||this===O&&e&&e._writableState instanceof A}})):a=function(e){return e instanceof this},O.prototype.pipe=function(){E(this,new b)},O.prototype.write=function(e,t,r){var n,o=this._writableState,a=!1,s=!o.objectMode&&(n=e,c.isBuffer(n)||n instanceof f);return s&&!c.isBuffer(e)&&(e=function(e){return c.from(e)}(e)),"function"==typeof t&&(r=t,t=null),s?t="buffer":t||(t=o.defaultEncoding),"function"!=typeof r&&(r=S),o.ending?function(e,t){var r=new w;E(e,r),i.nextTick(t,r)}(this,r):(s||function(e,t,r,n){var o;return null===r?o=new v:"string"==typeof r||t.objectMode||(o=new p("chunk",["string","Buffer"],r)),!o||(E(e,o),i.nextTick(n,o),!1)}(this,o,e,r))&&(o.pendingcb++,a=function(e,t,r,n,i,o){if(!r){var a=function(e,t,r){return e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=c.from(t,r)),t}(t,n,i);n!==a&&(r=!0,i="buffer",n=a)}var s=t.objectMode?1:n.length;t.length+=s;var u=t.length<t.highWaterMark;if(u||(t.needDrain=!0),t.writing||t.corked){var f=t.lastBufferedRequest;t.lastBufferedRequest={chunk:n,encoding:i,isBuf:r,callback:o,next:null},f?f.next=t.lastBufferedRequest:t.bufferedRequest=t.lastBufferedRequest,t.bufferedRequestCount+=1}else M(e,t,!1,s,n,i,o);return u}(this,o,s,e,t,r)),a},O.prototype.cork=function(){this._writableState.corked++},O.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,e.writing||e.corked||e.bufferProcessing||!e.bufferedRequest||I(this,e))},O.prototype.setDefaultEncoding=function(e){if("string"==typeof e&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new _(e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(O.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(O.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),O.prototype._write=function(e,t,r){r(new y("_write()"))},O.prototype._writev=null,O.prototype.end=function(e,t,r){var n=this._writableState;return"function"==typeof e?(r=e,e=null,t=null):"function"==typeof t&&(r=t,t=null),null!=e&&this.write(e,t),n.corked&&(n.corked=1,this.uncork()),n.ending||function(e,t,r){t.ending=!0,L(e,t),r&&(t.finished?i.nextTick(r):e.once("finish",r)),t.ended=!0,e.writable=!1}(this,n,r),this},Object.defineProperty(O.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(O.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),O.prototype.destroy=l.destroy,O.prototype._undestroy=l.undestroy,O.prototype._destroy=function(e,t){t(e)}},52326:(e,t,r)=>{"use strict";var n,i=r(48494);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var a=r(84781),s=Symbol("lastResolve"),u=Symbol("lastReject"),c=Symbol("error"),f=Symbol("ended"),l=Symbol("lastPromise"),d=Symbol("handlePromise"),h=Symbol("stream");function p(e,t){return{value:e,done:t}}function y(e){var t=e[s];if(null!==t){var r=e[h].read();null!==r&&(e[l]=null,e[s]=null,e[u]=null,t(p(r,!1)))}}function g(e){i.nextTick(y,e)}var b=Object.getPrototypeOf((function(){})),m=Object.setPrototypeOf((o(n={get stream(){return this[h]},next:function(){var e=this,t=this[c];if(null!==t)return Promise.reject(t);if(this[f])return Promise.resolve(p(void 0,!0));if(this[h].destroyed)return new Promise((function(t,r){i.nextTick((function(){e[c]?r(e[c]):t(p(void 0,!0))}))}));var r,n=this[l];if(n)r=new Promise(function(e,t){return function(r,n){e.then((function(){t[f]?r(p(void 0,!0)):t[d](r,n)}),n)}}(n,this));else{var o=this[h].read();if(null!==o)return Promise.resolve(p(o,!1));r=new Promise(this[d])}return this[l]=r,r}},Symbol.asyncIterator,(function(){return this})),o(n,"return",(function(){var e=this;return new Promise((function(t,r){e[h].destroy(null,(function(e){e?r(e):t(p(void 0,!0))}))}))})),n),b);e.exports=function(e){var t,r=Object.create(m,(o(t={},h,{value:e,writable:!0}),o(t,s,{value:null,writable:!0}),o(t,u,{value:null,writable:!0}),o(t,c,{value:null,writable:!0}),o(t,f,{value:e._readableState.endEmitted,writable:!0}),o(t,d,{value:function(e,t){var n=r[h].read();n?(r[l]=null,r[s]=null,r[u]=null,e(p(n,!1))):(r[s]=e,r[u]=t)},writable:!0}),t));return r[l]=null,a(e,(function(e){if(e&&"ERR_STREAM_PREMATURE_CLOSE"!==e.code){var t=r[u];return null!==t&&(r[l]=null,r[s]=null,r[u]=null,t(e)),void(r[c]=e)}var n=r[s];null!==n&&(r[l]=null,r[s]=null,r[u]=null,n(p(void 0,!0))),r[f]=!0})),e.on("readable",g.bind(null,r)),r}},90033:(e,t,r)=>{"use strict";function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}var a=r(18390).Buffer,s=r(74854).inspect,u=s&&s.custom||"inspect";e.exports=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.head=null,this.tail=null,this.length=0}var t,r;return t=e,r=[{key:"push",value:function(e){var t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length}},{key:"unshift",value:function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length}},{key:"shift",value:function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(e){if(0===this.length)return"";for(var t=this.head,r=""+t.data;t=t.next;)r+=e+t.data;return r}},{key:"concat",value:function(e){if(0===this.length)return a.alloc(0);for(var t,r,n,i=a.allocUnsafe(e>>>0),o=this.head,s=0;o;)t=o.data,r=i,n=s,a.prototype.copy.call(t,r,n),s+=o.data.length,o=o.next;return i}},{key:"consume",value:function(e,t){var r;return e<this.head.data.length?(r=this.head.data.slice(0,e),this.head.data=this.head.data.slice(e)):r=e===this.head.data.length?this.shift():t?this._getString(e):this._getBuffer(e),r}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(e){var t=this.head,r=1,n=t.data;for(e-=n.length;t=t.next;){var i=t.data,o=e>i.length?i.length:e;if(o===i.length?n+=i:n+=i.slice(0,e),0==(e-=o)){o===i.length?(++r,t.next?this.head=t.next:this.head=this.tail=null):(this.head=t,t.data=i.slice(o));break}++r}return this.length-=r,n}},{key:"_getBuffer",value:function(e){var t=a.allocUnsafe(e),r=this.head,n=1;for(r.data.copy(t),e-=r.data.length;r=r.next;){var i=r.data,o=e>i.length?i.length:e;if(i.copy(t,t.length-e,0,o),0==(e-=o)){o===i.length?(++n,r.next?this.head=r.next:this.head=this.tail=null):(this.head=r,r.data=i.slice(o));break}++n}return this.length-=n,t}},{key:u,value:function(e,t){return s(this,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?n(Object(r),!0).forEach((function(t){i(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({},t,{depth:0,customInspect:!1}))}}],r&&o(t.prototype,r),e}()},16946:(e,t,r)=>{"use strict";var n=r(48494);function i(e,t){a(e,t),o(e)}function o(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function a(e,t){e.emit("error",t)}e.exports={destroy:function(e,t){var r=this,s=this._readableState&&this._readableState.destroyed,u=this._writableState&&this._writableState.destroyed;return s||u?(t?t(e):e&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,n.nextTick(a,this,e)):n.nextTick(a,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,(function(e){!t&&e?r._writableState?r._writableState.errorEmitted?n.nextTick(o,r):(r._writableState.errorEmitted=!0,n.nextTick(i,r,e)):n.nextTick(i,r,e):t?(n.nextTick(o,r),t(e)):n.nextTick(o,r)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)},errorOrDestroy:function(e,t){var r=e._readableState,n=e._writableState;r&&r.autoDestroy||n&&n.autoDestroy?e.destroy(t):e.emit("error",t)}}},84781:(e,t,r)=>{"use strict";var n=r(23388).q.ERR_STREAM_PREMATURE_CLOSE;function i(){}e.exports=function e(t,r,o){if("function"==typeof r)return e(t,null,r);r||(r={}),o=function(e){var t=!1;return function(){if(!t){t=!0;for(var r=arguments.length,n=new Array(r),i=0;i<r;i++)n[i]=arguments[i];e.apply(this,n)}}}(o||i);var a=r.readable||!1!==r.readable&&t.readable,s=r.writable||!1!==r.writable&&t.writable,u=function(){t.writable||f()},c=t._writableState&&t._writableState.finished,f=function(){s=!1,c=!0,a||o.call(t)},l=t._readableState&&t._readableState.endEmitted,d=function(){a=!1,l=!0,s||o.call(t)},h=function(e){o.call(t,e)},p=function(){var e;return a&&!l?(t._readableState&&t._readableState.ended||(e=new n),o.call(t,e)):s&&!c?(t._writableState&&t._writableState.ended||(e=new n),o.call(t,e)):void 0},y=function(){t.req.on("finish",f)};return function(e){return e.setHeader&&"function"==typeof e.abort}(t)?(t.on("complete",f),t.on("abort",p),t.req?y():t.on("request",y)):s&&!t._writableState&&(t.on("end",u),t.on("close",u)),t.on("end",d),t.on("finish",f),!1!==r.error&&t.on("error",h),t.on("close",p),function(){t.removeListener("complete",f),t.removeListener("abort",p),t.removeListener("request",y),t.req&&t.req.removeListener("finish",f),t.removeListener("end",u),t.removeListener("close",u),t.removeListener("finish",f),t.removeListener("end",d),t.removeListener("error",h),t.removeListener("close",p)}}},19990:e=>{e.exports=function(){throw new Error("Readable.from is not available in the browser")}},69635:(e,t,r)=>{"use strict";var n,i=r(23388).q,o=i.ERR_MISSING_ARGS,a=i.ERR_STREAM_DESTROYED;function s(e){if(e)throw e}function u(e){e()}function c(e,t){return e.pipe(t)}e.exports=function(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];var f,l=function(e){return e.length?"function"!=typeof e[e.length-1]?s:e.pop():s}(t);if(Array.isArray(t[0])&&(t=t[0]),t.length<2)throw new o("streams");var d=t.map((function(e,i){var o=i<t.length-1;return function(e,t,i,o){o=function(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}(o);var s=!1;e.on("close",(function(){s=!0})),void 0===n&&(n=r(84781)),n(e,{readable:t,writable:i},(function(e){if(e)return o(e);s=!0,o()}));var u=!1;return function(t){if(!s&&!u)return u=!0,function(e){return e.setHeader&&"function"==typeof e.abort}(e)?e.abort():"function"==typeof e.destroy?e.destroy():void o(t||new a("pipe"))}}(e,o,i>0,(function(e){f||(f=e),e&&d.forEach(u),o||(d.forEach(u),l(f))}))}));return t.reduce(c)}},50824:(e,t,r)=>{"use strict";var n=r(23388).q.ERR_INVALID_OPT_VALUE;e.exports={getHighWaterMark:function(e,t,r,i){var o=function(e,t,r){return null!=e.highWaterMark?e.highWaterMark:t?e[r]:null}(t,i,r);if(null!=o){if(!isFinite(o)||Math.floor(o)!==o||o<0)throw new n(i?r:"highWaterMark",o);return Math.floor(o)}return e.objectMode?16:16384}}},38774:(e,t,r)=>{e.exports=r(67725).EventEmitter},8542:(e,t,r)=>{(t=e.exports=r(6246)).Stream=t,t.Readable=t,t.Writable=r(90609),t.Duplex=r(55101),t.Transform=r(16889),t.PassThrough=r(17153),t.finished=r(84781),t.pipeline=r(69635)},92027:(e,t,r)=>{"use strict";var n=r(18390).Buffer,i=r(19105),o=r(35921),a=new Array(16),s=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],u=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],c=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],f=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],l=[0,1518500249,1859775393,2400959708,2840853838],d=[1352829926,1548603684,1836072691,2053994217,0];function h(){o.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}function p(e,t){return e<<t|e>>>32-t}function y(e,t,r,n,i,o,a,s){return p(e+(t^r^n)+o+a|0,s)+i|0}function g(e,t,r,n,i,o,a,s){return p(e+(t&r|~t&n)+o+a|0,s)+i|0}function b(e,t,r,n,i,o,a,s){return p(e+((t|~r)^n)+o+a|0,s)+i|0}function m(e,t,r,n,i,o,a,s){return p(e+(t&n|r&~n)+o+a|0,s)+i|0}function v(e,t,r,n,i,o,a,s){return p(e+(t^(r|~n))+o+a|0,s)+i|0}i(h,o),h.prototype._update=function(){for(var e=a,t=0;t<16;++t)e[t]=this._block.readInt32LE(4*t);for(var r=0|this._a,n=0|this._b,i=0|this._c,o=0|this._d,h=0|this._e,w=0|this._a,_=0|this._b,E=0|this._c,S=0|this._d,A=0|this._e,O=0;O<80;O+=1){var M,T;O<16?(M=y(r,n,i,o,h,e[s[O]],l[0],c[O]),T=v(w,_,E,S,A,e[u[O]],d[0],f[O])):O<32?(M=g(r,n,i,o,h,e[s[O]],l[1],c[O]),T=m(w,_,E,S,A,e[u[O]],d[1],f[O])):O<48?(M=b(r,n,i,o,h,e[s[O]],l[2],c[O]),T=b(w,_,E,S,A,e[u[O]],d[2],f[O])):O<64?(M=m(r,n,i,o,h,e[s[O]],l[3],c[O]),T=g(w,_,E,S,A,e[u[O]],d[3],f[O])):(M=v(r,n,i,o,h,e[s[O]],l[4],c[O]),T=y(w,_,E,S,A,e[u[O]],d[4],f[O])),r=h,h=o,o=p(i,10),i=n,n=M,w=A,A=S,S=p(E,10),E=_,_=T}var I=this._b+i+S|0;this._b=this._c+o+A|0,this._c=this._d+h+w|0,this._d=this._e+r+_|0,this._e=this._a+n+E|0,this._a=I},h.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var e=n.alloc?n.alloc(20):new n(20);return e.writeInt32LE(this._a,0),e.writeInt32LE(this._b,4),e.writeInt32LE(this._c,8),e.writeInt32LE(this._d,12),e.writeInt32LE(this._e,16),e},e.exports=h},79798:function(e,t,r){"use strict";var n=r(18390).Buffer,i=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return o(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.isValidXAddress=t.decodeXAddress=t.xAddressToClassicAddress=t.encodeXAddress=t.classicAddressToXAddress=t.isValidClassicAddress=t.decodeAccountPublic=t.encodeAccountPublic=t.decodeNodePublic=t.encodeNodePublic=t.decodeAccountID=t.encodeAccountID=t.decodeSeed=t.encodeSeed=t.codec=void 0;const s=a(r(32037)),u=r(89526);Object.defineProperty(t,"codec",{enumerable:!0,get:function(){return u.codec}}),Object.defineProperty(t,"encodeSeed",{enumerable:!0,get:function(){return u.encodeSeed}}),Object.defineProperty(t,"decodeSeed",{enumerable:!0,get:function(){return u.decodeSeed}}),Object.defineProperty(t,"encodeAccountID",{enumerable:!0,get:function(){return u.encodeAccountID}}),Object.defineProperty(t,"decodeAccountID",{enumerable:!0,get:function(){return u.decodeAccountID}}),Object.defineProperty(t,"encodeNodePublic",{enumerable:!0,get:function(){return u.encodeNodePublic}}),Object.defineProperty(t,"decodeNodePublic",{enumerable:!0,get:function(){return u.decodeNodePublic}}),Object.defineProperty(t,"encodeAccountPublic",{enumerable:!0,get:function(){return u.encodeAccountPublic}}),Object.defineProperty(t,"decodeAccountPublic",{enumerable:!0,get:function(){return u.decodeAccountPublic}}),Object.defineProperty(t,"isValidClassicAddress",{enumerable:!0,get:function(){return u.isValidClassicAddress}});const c={main:n.from([5,68]),test:n.from([4,147])};function f(e,t,r){if(20!==e.length)throw new Error("Account ID must be 20 bytes");if(t>4294967295)throw new Error("Invalid tag");const i=t||0,o=!1===t||null==t?0:1,a=n.concat([r?c.test:c.main,e,n.from([o,255&i,i>>8&255,i>>16&255,i>>24&255,0,0,0,0])]);return u.codec.encodeChecked(a)}function l(e){const t=u.codec.decodeChecked(e),r=function(e){const t=e.slice(0,2);if(c.main.equals(t))return!1;if(c.test.equals(t))return!0;throw new Error("Invalid X-address: bad prefix")}(t);return{accountId:t.slice(2,22),tag:function(e){const t=e[22];if(t>=2)throw new Error("Unsupported X-address");return 1===t?e[23]+256*e[24]+65536*e[25]+16777216*e[26]:(s.strictEqual(t,0,"flag must be zero to indicate no tag"),s.ok(n.from("0000000000000000","hex").equals(e.slice(23,31)),"remaining bytes must be zero"),!1)}(t),test:r}}t.classicAddressToXAddress=function(e,t,r){return f((0,u.decodeAccountID)(e),t,r)},t.encodeXAddress=f,t.xAddressToClassicAddress=function(e){const{accountId:t,tag:r,test:n}=l(e);return{classicAddress:(0,u.encodeAccountID)(t),tag:r,test:n}},t.decodeXAddress=l,t.isValidXAddress=function(e){try{l(e)}catch(e){return!1}return!0}},93259:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.concatArgs=t.seqEqual=void 0,t.seqEqual=function(e,t){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(e[r]!==t[r])return!1;return!0},t.concatArgs=function(...e){const t=[];return e.forEach((e=>{if("number"!=typeof e)for(const r of e)t.push(r);else t.push(e)})),t}},89526:(e,t,r)=>{"use strict";var n=r(18390).Buffer;Object.defineProperty(t,"__esModule",{value:!0}),t.isValidClassicAddress=t.decodeAccountPublic=t.encodeAccountPublic=t.encodeNodePublic=t.decodeNodePublic=t.decodeAddress=t.decodeAccountID=t.encodeAddress=t.encodeAccountID=t.decodeSeed=t.encodeSeed=t.codec=void 0;const i=r(90638),o=r(50637),a=r(93259),s=[1,225,75],u={sha256:e=>o("sha256").update(n.from(e)).digest(),alphabet:"rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz"},c=new class{constructor(e){this._sha256=e.sha256,this._alphabet=e.alphabet,this._codec=i(this._alphabet)}encode(e,t){const r=t.versions;return this._encodeVersioned(e,r,t.expectedLength)}decode(e,t){var r;const n=t.versions,i=t.versionTypes,o=this.decodeChecked(e);if(n.length>1&&!t.expectedLength)throw new Error("expectedLength is required because there are >= 2 possible versions");const s="number"==typeof n[0]?1:n[0].length,u=null!==(r=t.expectedLength)&&void 0!==r?r:o.length-s,c=o.slice(0,-u),f=o.slice(-u);for(let e=0;e<n.length;e++){const t=Array.isArray(n[e])?n[e]:[n[e]];if((0,a.seqEqual)(c,t))return{version:t,bytes:f,type:i?i[e]:null}}throw new Error("version_invalid: version bytes do not match any of the provided version(s)")}encodeChecked(e){const t=this._sha256(this._sha256(e)).slice(0,4);return this._encodeRaw(n.from((0,a.concatArgs)(e,t)))}decodeChecked(e){const t=this._decodeRaw(e);if(t.length<5)throw new Error("invalid_input_size: decoded data must have length >= 5");if(!this._verifyCheckSum(t))throw new Error("checksum_invalid");return t.slice(0,-4)}_encodeVersioned(e,t,r){if(r&&e.length!==r)throw new Error("unexpected_payload_length: bytes.length does not match expectedLength. Ensure that the bytes are a Buffer.");return this.encodeChecked(n.from((0,a.concatArgs)(t,e)))}_encodeRaw(e){return this._codec.encode(e)}_decodeRaw(e){return this._codec.decode(e)}_verifyCheckSum(e){const t=this._sha256(this._sha256(e.slice(0,-4))).slice(0,4),r=e.slice(-4);return(0,a.seqEqual)(t,r)}}(u);function f(e){const t={versions:[0],expectedLength:20};return c.encode(e,t)}function l(e){const t={versions:[0],expectedLength:20};return c.decode(e,t).bytes}t.codec=c,t.encodeSeed=function(e,t){if(16!==e.length)throw new Error("entropy must have length 16");const r={expectedLength:16,versions:"ed25519"===t?s:[33]};return c.encode(e,r)},t.decodeSeed=function(e,t={versionTypes:["ed25519","secp256k1"],versions:[s,33],expectedLength:16}){return c.decode(e,t)},t.encodeAccountID=f,t.encodeAddress=f,t.decodeAccountID=l,t.decodeAddress=l,t.decodeNodePublic=function(e){return c.decode(e,{versions:[28],expectedLength:33}).bytes},t.encodeNodePublic=function(e){return c.encode(e,{versions:[28],expectedLength:33})},t.encodeAccountPublic=function(e){return c.encode(e,{versions:[35],expectedLength:33})},t.decodeAccountPublic=function(e){return c.decode(e,{versions:[35],expectedLength:33}).bytes},t.isValidClassicAddress=function(e){try{l(e)}catch(e){return!1}return!0}},85388:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.transactionID=t.sha512Half=t.binaryToJSON=t.signingClaimData=t.signingData=t.multiSigningData=t.readJSON=t.serializeObject=t.makeParser=t.BytesList=t.BinarySerializer=t.BinaryParser=void 0;const n=r(27601),i=r(60844);Object.defineProperty(t,"BinaryParser",{enumerable:!0,get:function(){return i.BinaryParser}});const o=r(46091),a=r(42510);Object.defineProperty(t,"BinarySerializer",{enumerable:!0,get:function(){return a.BinarySerializer}}),Object.defineProperty(t,"BytesList",{enumerable:!0,get:function(){return a.BytesList}});const s=r(72747);Object.defineProperty(t,"sha512Half",{enumerable:!0,get:function(){return s.sha512Half}}),Object.defineProperty(t,"transactionID",{enumerable:!0,get:function(){return s.transactionID}});const u=r(12933),c=r(32548),f=(e,t)=>new i.BinaryParser(e,t);t.makeParser=f;const l=(e,t=u.DEFAULT_DEFINITIONS)=>e.readType(n.coreTypes.STObject).toJSON(t);function d(e,t={}){const{prefix:r,suffix:i,signingFieldsOnly:o=!1,definitions:s}=t,u=new a.BytesList;r&&u.put(r);const c=o?e=>e.isSigningField:void 0;return n.coreTypes.STObject.from(e,c,s).toBytesSink(u),i&&u.put(i),u.toBytes()}t.readJSON=l,t.binaryToJSON=(e,t)=>l(f(e,t),t),t.serializeObject=d,t.signingData=function(e,t=o.HashPrefix.transactionSig,r={}){return d(e,{prefix:t,signingFieldsOnly:!0,definitions:r.definitions})},t.signingClaimData=function(e){const t=c(String(e.amount)),r=o.HashPrefix.paymentChannelClaim,i=n.coreTypes.Hash256.from(e.channel).toBytes(),s=n.coreTypes.UInt64.from(t).toBytes(),u=new a.BytesList;return u.put(r),u.put(i),u.put(s),u.toBytes()},t.multiSigningData=function(e,t,r={definitions:u.DEFAULT_DEFINITIONS}){return d(e,{prefix:o.HashPrefix.transactionMultiSig,suffix:n.coreTypes.AccountID.from(t).toBytes(),signingFieldsOnly:!0,definitions:r.definitions})}},50591:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.types=t.ShaMap=t.HashPrefix=t.quality=t.TransactionResult=t.Type=t.LedgerEntryType=t.TransactionType=t.Field=t.DEFAULT_DEFINITIONS=t.ledgerHashes=t.binary=t.hashes=void 0;const a=r(12933);Object.defineProperty(t,"DEFAULT_DEFINITIONS",{enumerable:!0,get:function(){return a.DEFAULT_DEFINITIONS}}),Object.defineProperty(t,"Field",{enumerable:!0,get:function(){return a.Field}}),Object.defineProperty(t,"TransactionType",{enumerable:!0,get:function(){return a.TransactionType}}),Object.defineProperty(t,"LedgerEntryType",{enumerable:!0,get:function(){return a.LedgerEntryType}}),Object.defineProperty(t,"Type",{enumerable:!0,get:function(){return a.Type}}),Object.defineProperty(t,"TransactionResult",{enumerable:!0,get:function(){return a.TransactionResult}});const s=o(r(27601));t.types=s;const u=o(r(85388));t.binary=u;const c=r(11957);Object.defineProperty(t,"ShaMap",{enumerable:!0,get:function(){return c.ShaMap}});const f=o(r(62939));t.ledgerHashes=f;const l=o(r(72747));t.hashes=l;const d=r(83350);Object.defineProperty(t,"quality",{enumerable:!0,get:function(){return d.quality}});const h=r(46091);Object.defineProperty(t,"HashPrefix",{enumerable:!0,get:function(){return h.HashPrefix}})},71027:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BytesLookup=t.Bytes=void 0;const n=r(18390);class i{constructor(e,t,r){this.name=e,this.ordinal=t,this.ordinalWidth=r,this.bytes=n.Buffer.alloc(r);for(let e=0;e<r;e++)this.bytes[r-e-1]=t>>>8*e&255}toJSON(){return this.name}toBytesSink(e){e.put(this.bytes)}toBytes(){return this.bytes}}t.Bytes=i,t.BytesLookup=class{constructor(e,t){this.ordinalWidth=t,Object.entries(e).forEach((([e,t])=>{this.add(e,t)}))}add(e,t){if(this[e])throw new SyntaxError(`Attempted to add a value with a duplicate name "${e}". This is not allowed because it is unclear how to decode.`);if(this[t.toString()])throw new SyntaxError(`Attempted to add a duplicate value under a different name (Given name: "${e}" and previous name: "${this[t.toString()]}. This is not allowed because it is unclear how to decode.\nGiven value: ${t.toString()}`);this[e]=new i(e,t,this.ordinalWidth),this[t.toString()]=this[e]}from(e){return e instanceof i?e:this[e]}fromParser(e){return this.from(e.readUIntN(this.ordinalWidth).toString())}}},53938:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TRANSACTION_RESULT_WIDTH=t.TRANSACTION_TYPE_WIDTH=t.LEDGER_ENTRY_WIDTH=t.TYPE_WIDTH=void 0,t.TYPE_WIDTH=2,t.LEDGER_ENTRY_WIDTH=2,t.TRANSACTION_TYPE_WIDTH=2,t.TRANSACTION_RESULT_WIDTH=1},52836:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.FieldLookup=void 0;const n=r(71027),i=r(43859),o=r(53938),a=r(18390);t.FieldLookup=class{constructor(e,t){e.forEach((([e,r])=>{const s=t[r.type];this[e]=function([e,t],r){const s=function(e,t){const r=[];return e<16?t<16?r.push(e<<4|t):r.push(e<<4,t):t<16?r.push(t,e):r.push(0,e,t),a.Buffer.from(r)}(r,t.nth);return{name:e,nth:t.nth,isVariableLengthEncoded:t.isVLEncoded,isSerialized:t.isSerialized,isSigningField:t.isSigningField,ordinal:r<<16|t.nth,type:new n.Bytes(t.type,r,o.TYPE_WIDTH),header:s,associatedType:i.SerializedType}}([e,r],s),this[this[e].ordinal.toString()]=this[e]}))}fromString(e){return this[e]}}},12933:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.TRANSACTION_TYPES=t.TransactionType=t.TransactionResult=t.LedgerEntryType=t.Type=t.Field=t.DEFAULT_DEFINITIONS=t.XrplDefinitionsBase=t.Bytes=void 0;const a=o(r(49792)),s=r(11670);Object.defineProperty(t,"XrplDefinitionsBase",{enumerable:!0,get:function(){return s.XrplDefinitionsBase}}),Object.defineProperty(t,"Bytes",{enumerable:!0,get:function(){return s.Bytes}});const u=new s.XrplDefinitionsBase(a,{});t.DEFAULT_DEFINITIONS=u;const c=u.type;t.Type=c;const f=u.ledgerEntryType;t.LedgerEntryType=f;const l=u.transactionType;t.TransactionType=l;const d=u.transactionResult;t.TransactionResult=d;const h=u.field;t.Field=h;const p=u.transactionNames;t.TRANSACTION_TYPES=p},11670:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BytesLookup=t.Bytes=t.FieldLookup=t.XrplDefinitionsBase=void 0;const n=r(71027);Object.defineProperty(t,"Bytes",{enumerable:!0,get:function(){return n.Bytes}}),Object.defineProperty(t,"BytesLookup",{enumerable:!0,get:function(){return n.BytesLookup}});const i=r(52836);Object.defineProperty(t,"FieldLookup",{enumerable:!0,get:function(){return i.FieldLookup}});const o=r(53938);t.XrplDefinitionsBase=class{constructor(e,t){this.type=new n.BytesLookup(e.TYPES,o.TYPE_WIDTH),this.ledgerEntryType=new n.BytesLookup(e.LEDGER_ENTRY_TYPES,o.LEDGER_ENTRY_WIDTH),this.transactionType=new n.BytesLookup(e.TRANSACTION_TYPES,o.TRANSACTION_TYPE_WIDTH),this.transactionResult=new n.BytesLookup(e.TRANSACTION_RESULTS,o.TRANSACTION_RESULT_WIDTH),this.field=new i.FieldLookup(e.FIELDS,e.TYPES),this.transactionNames=Object.entries(e.TRANSACTION_TYPES).filter((([e,t])=>t>=0)).map((([e,t])=>e)),this.dataTypes={},this.associateTypes(t)}associateTypes(e){this.dataTypes=Object.assign({},this.dataTypes,e),Object.values(this.field).forEach((e=>{e.associatedType=this.dataTypes[e.type.name]})),this.field.TransactionType.associatedType=this.transactionType,this.field.TransactionResult.associatedType=this.transactionResult,this.field.LedgerEntryType.associatedType=this.ledgerEntryType}getAssociatedTypes(){return this.dataTypes}}},72620:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.XrplDefinitions=void 0;const n=r(11670),i=r(27601);class o extends n.XrplDefinitionsBase{constructor(e,t){super(e,Object.assign({},i.coreTypes,t))}}t.XrplDefinitions=o},46091:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HashPrefix=void 0;const n=r(18390);function i(e){const t=n.Buffer.alloc(4);return t.writeUInt32BE(e,0),t}const o={transactionID:i(1415073280),transaction:i(1397638144),accountStateEntry:i(1296846336),innerNode:i(1296649728),ledgerHeader:i(1280791040),transactionSig:i(1398036480),transactionMultiSig:i(1397576704),validation:i(1447119872),proposal:i(1347571712),paymentChannelClaim:i(1129073920)};t.HashPrefix=o},72747:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.transactionID=t.sha512Half=t.Sha512Half=void 0;const n=r(46091),i=r(50637),o=r(28467),a=r(42510),s=r(18390);class u extends a.BytesList{constructor(){super(...arguments),this.hash=i("sha512")}static put(e){return(new u).put(e)}put(e){return this.hash.update(e),this}finish256(){return s.Buffer.from(this.hash.digest().slice(0,32))}finish(){return new o.Hash256(this.finish256())}}function c(...e){const t=new u;return e.forEach((e=>t.put(e))),t.finish256()}t.Sha512Half=u,t.sha512Half=c,t.transactionID=function(e){return new o.Hash256(c(n.HashPrefix.transactionID,e))}},79056:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.coreTypes=t.DEFAULT_DEFINITIONS=t.XrplDefinitionsBase=t.XrplDefinitions=t.TRANSACTION_TYPES=t.decodeLedgerData=t.decodeQuality=t.encodeQuality=t.encodeForMultisigning=t.encodeForSigningClaim=t.encodeForSigning=t.encode=t.decode=void 0;const a=o(r(32037)),s=r(50591),u=r(62939);Object.defineProperty(t,"decodeLedgerData",{enumerable:!0,get:function(){return u.decodeLedgerData}});const c=r(12933);Object.defineProperty(t,"XrplDefinitionsBase",{enumerable:!0,get:function(){return c.XrplDefinitionsBase}}),Object.defineProperty(t,"TRANSACTION_TYPES",{enumerable:!0,get:function(){return c.TRANSACTION_TYPES}}),Object.defineProperty(t,"DEFAULT_DEFINITIONS",{enumerable:!0,get:function(){return c.DEFAULT_DEFINITIONS}});const f=r(72620);Object.defineProperty(t,"XrplDefinitions",{enumerable:!0,get:function(){return f.XrplDefinitions}});const l=r(27601);Object.defineProperty(t,"coreTypes",{enumerable:!0,get:function(){return l.coreTypes}});const{signingData:d,signingClaimData:h,multiSigningData:p,binaryToJSON:y,serializeObject:g}=s.binary;t.decode=function(e,t){return a.ok("string"==typeof e,"binary must be a hex string"),y(e,t)},t.encode=function(e,t){return a.ok("object"==typeof e),g(e,{definitions:t}).toString("hex").toUpperCase()},t.encodeForSigning=function(e,t){return a.ok("object"==typeof e),d(e,s.HashPrefix.transactionSig,{definitions:t}).toString("hex").toUpperCase()},t.encodeForSigningClaim=function(e){return a.ok("object"==typeof e),h(e).toString("hex").toUpperCase()},t.encodeForMultisigning=function(e,t,r){return a.ok("object"==typeof e),a.equal(e.SigningPubKey,""),p(e,t,r?{definitions:r}:void 0).toString("hex").toUpperCase()},t.encodeQuality=function(e){return a.ok("string"==typeof e),s.quality.encode(e).toString("hex").toUpperCase()},t.decodeQuality=function(e){return a.ok("string"==typeof e),s.quality.decode(e).toString()}},62939:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.decodeLedgerData=t.ledgerHash=t.transactionTreeHash=t.accountStateHash=void 0;const a=o(r(32037)),s=r(11957),u=r(46091),c=r(72747),f=r(85388),l=r(28467),d=r(4477),h=r(80897),p=r(64775),y=r(87246),g=r(60844),b=r(32548);function m(e,t){const r=new s.ShaMap;return t.forEach((t=>r.addItem(...e(t)))),r.hash()}function v(e){return a.ok(e.hash),[l.Hash256.from(e.hash),{hashPrefix:()=>u.HashPrefix.transaction,toBytesSink(t){const r=new f.BinarySerializer(t);r.writeLengthEncoded(d.STObject.from(e)),r.writeLengthEncoded(d.STObject.from(e.metaData))}},void 0]}function w(e){const t=l.Hash256.from(e.index),r=(0,f.serializeObject)(e);return[t,{hashPrefix:()=>u.HashPrefix.accountStateEntry,toBytesSink(e){e.put(r)}},void 0]}t.transactionTreeHash=function(e){return m(v,e)},t.accountStateHash=function(e){return m(w,e)},t.ledgerHash=function(e){const t=new c.Sha512Half;return t.put(u.HashPrefix.ledgerHeader),a.ok(void 0!==e.parent_close_time),a.ok(void 0!==e.close_flags),p.UInt32.from(e.ledger_index).toBytesSink(t),h.UInt64.from(b(String(e.total_coins))).toBytesSink(t),l.Hash256.from(e.parent_hash).toBytesSink(t),l.Hash256.from(e.transaction_hash).toBytesSink(t),l.Hash256.from(e.account_hash).toBytesSink(t),p.UInt32.from(e.parent_close_time).toBytesSink(t),p.UInt32.from(e.close_time).toBytesSink(t),y.UInt8.from(e.close_time_resolution).toBytesSink(t),y.UInt8.from(e.close_flags).toBytesSink(t),t.finish()},t.decodeLedgerData=function(e,t){a.ok("string"==typeof e,"binary must be a hex string");const r=new g.BinaryParser(e,t);return{ledger_index:r.readUInt32(),total_coins:r.readType(h.UInt64).valueOf().toString(),parent_hash:r.readType(l.Hash256).toHex(),transaction_hash:r.readType(l.Hash256).toHex(),account_hash:r.readType(l.Hash256).toHex(),parent_close_time:r.readUInt32(),close_time:r.readUInt32(),close_time_resolution:r.readUInt8(),close_flags:r.readUInt8()}}},83350:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.quality=void 0;const n=r(27601),i=r(16856),o=r(32548),a=r(18390);t.quality=class{static encode(e){const t=new i.Decimal(e),r=t.e-15,a=t.times("1e"+-r).abs().toString(),s=n.coreTypes.UInt64.from(o(a)).toBytes();return s[0]=r+100,s}static decode(e){const t=a.Buffer.from(e,"hex").slice(-8),r=t[0]-100;return new i.Decimal(`0x${t.slice(1).toString("hex")}`).times(`1e${r}`)}}},60844:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.BinaryParser=void 0;const a=o(r(32037)),s=r(12933),u=r(18390);t.BinaryParser=class{constructor(e,t=s.DEFAULT_DEFINITIONS){this.bytes=u.Buffer.from(e,"hex"),this.definitions=t}peek(){return a.ok(0!==this.bytes.byteLength),this.bytes[0]}skip(e){a.ok(e<=this.bytes.byteLength),this.bytes=this.bytes.slice(e)}read(e){a.ok(e<=this.bytes.byteLength);const t=this.bytes.slice(0,e);return this.skip(e),t}readUIntN(e){return a.ok(0<e&&e<=4,"invalid n"),this.read(e).reduce(((e,t)=>e<<8|t))>>>0}readUInt8(){return this.readUIntN(1)}readUInt16(){return this.readUIntN(2)}readUInt32(){return this.readUIntN(4)}size(){return this.bytes.byteLength}end(e){const t=this.bytes.byteLength;return 0===t||void 0!==e&&t<=e}readVariableLength(){return this.read(this.readVariableLengthLength())}readVariableLengthLength(){const e=this.readUInt8();if(e<=192)return e;if(e<=240)return 193+256*(e-193)+this.readUInt8();if(e<=254)return 12481+65536*(e-241)+256*this.readUInt8()+this.readUInt8();throw new Error("Invalid variable length indicator")}readFieldOrdinal(){let e=this.readUInt8(),t=15&e;if(e>>=4,0===e&&(e=this.readUInt8(),0===e||e<16))throw new Error("Cannot read FieldOrdinal, type_code out of range");if(0===t&&(t=this.readUInt8(),0===t||t<16))throw new Error("Cannot read FieldOrdinal, field_code out of range");return e<<16|t}readField(){return this.definitions.field.fromString(this.readFieldOrdinal().toString())}readType(e){return e.fromParser(this)}typeForField(e){return e.associatedType}readFieldValue(e){const t=this.typeForField(e);if(!t)throw new Error(`unsupported: (${e.name}, ${e.type.name})`);const r=e.isVariableLengthEncoded?this.readVariableLengthLength():void 0,n=t.fromParser(this,r);if(void 0===n)throw new Error(`fromParser for (${e.name}, ${e.type.name}) -> undefined `);return n}readFieldAndValue(){const e=this.readField();return[e,this.readFieldValue(e)]}}},42510:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.BinarySerializer=t.BytesList=void 0;const a=o(r(32037)),s=r(18390);class u{constructor(){this.bytesArray=[]}getLength(){return s.Buffer.concat(this.bytesArray).byteLength}put(e){const t=s.Buffer.from(e);return this.bytesArray.push(t),this}toBytesSink(e){e.put(this.toBytes())}toBytes(){return s.Buffer.concat(this.bytesArray)}toHex(){return this.toBytes().toString("hex").toUpperCase()}}t.BytesList=u,t.BinarySerializer=class{constructor(e){this.sink=new u,this.sink=e}write(e){e.toBytesSink(this.sink)}put(e){this.sink.put(e)}writeType(e,t){this.write(e.from(t))}writeBytesList(e){e.toBytesSink(this.sink)}encodeVariableLength(e){const t=s.Buffer.alloc(3);if(e<=192)return t[0]=e,t.slice(0,1);if(e<=12480)return e-=193,t[0]=193+(e>>>8),t[1]=255&e,t.slice(0,2);if(e<=918744)return e-=12481,t[0]=241+(e>>>16),t[1]=e>>8&255,t[2]=255&e,t.slice(0,3);throw new Error("Overflow error")}writeFieldAndValue(e,t,r=!1){const n=e.associatedType.from(t);a.ok(void 0!==n.toBytesSink),a.ok(void 0!==e.name),this.sink.put(e.header),e.isVariableLengthEncoded?this.writeLengthEncoded(n,r):n.toBytesSink(this.sink)}writeLengthEncoded(e,t=!1){const r=new u;t||e.toBytesSink(r),this.put(this.encodeVariableLength(r.getLength())),this.writeBytesList(r)}}},11957:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ShaMapLeaf=t.ShaMapNode=t.ShaMap=void 0;const n=r(32037),i=r(27601),o=r(46091),a=r(72747),s=r(18390);class u{}t.ShaMapNode=u;class c extends u{constructor(e,t){super(),this.index=e,this.item=t}isLeaf(){return!0}isInner(){return!1}hashPrefix(){return void 0===this.item?s.Buffer.alloc(0):this.item.hashPrefix()}hash(){const e=a.Sha512Half.put(this.hashPrefix());return this.toBytesSink(e),e.finish()}toBytesSink(e){void 0!==this.item&&this.item.toBytesSink(e),this.index.toBytesSink(e)}}t.ShaMapLeaf=c;class f extends u{constructor(e=0){super(),this.depth=e,this.slotBits=0,this.branches=Array(16)}isInner(){return!0}isLeaf(){return!1}hashPrefix(){return o.HashPrefix.innerNode}setBranch(e,t){this.slotBits=this.slotBits|1<<e,this.branches[e]=t}empty(){return 0===this.slotBits}hash(){if(this.empty())return i.coreTypes.Hash256.ZERO_256;const e=a.Sha512Half.put(this.hashPrefix());return this.toBytesSink(e),e.finish()}toBytesSink(e){for(let t=0;t<this.branches.length;t++){const r=this.branches[t];(r?r.hash():i.coreTypes.Hash256.ZERO_256).toBytesSink(e)}}addItem(e,t,r){if(n.strict.ok(void 0!==e),void 0!==e){const n=e.nibblet(this.depth),i=this.branches[n];if(void 0===i)this.setBranch(n,r||new c(e,t));else if(i instanceof c){const o=new f(this.depth+1);o.addItem(i.index,void 0,i),o.addItem(e,t,r),this.setBranch(n,o)}else{if(!(i instanceof f))throw new Error("invalid ShaMap.addItem call");i.addItem(e,t,r)}}}}t.ShaMap=class extends f{}},34897:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AccountID=void 0;const n=r(79798),i=r(28357),o=r(18390),a=/^[A-F0-9]{40}$/;class s extends i.Hash160{constructor(e){super(null!=e?e:s.defaultAccountID.bytes)}static from(e){if(e instanceof s)return e;if("string"==typeof e)return""===e?new s:a.test(e)?new s(o.Buffer.from(e,"hex")):this.fromBase58(e);throw new Error("Cannot construct AccountID from value given")}static fromBase58(e){if((0,n.isValidXAddress)(e)){const t=(0,n.xAddressToClassicAddress)(e);if(!1!==t.tag)throw new Error("Only allowed to have tag on Account or Destination");e=t.classicAddress}return new s(o.Buffer.from((0,n.decodeAccountID)(e)))}toJSON(){return this.toBase58()}toBase58(){return(0,n.encodeAccountID)(this.bytes)}}t.AccountID=s,s.defaultAccountID=new s(o.Buffer.alloc(20))},78631:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Amount=void 0;const n=r(16856),i=r(60844),o=r(34897),a=r(11861),s=r(43859),u=r(32548),c=r(18390),f=new n.Decimal("1e17"),l=new n.Decimal("1e-6"),d=u(4294967295);n.Decimal.config({toExpPos:96,toExpNeg:-112});class h extends s.SerializedType{constructor(e){super(null!=e?e:h.defaultAmount.bytes)}static from(e){if(e instanceof h)return e;let t=c.Buffer.alloc(8);if("string"==typeof e){h.assertXrpIsValid(e);const r=u(e),n=[c.Buffer.alloc(4),c.Buffer.alloc(4)];return n[0].writeUInt32BE(Number(r.shiftRight(32)),0),n[1].writeUInt32BE(Number(r.and(d)),0),t=c.Buffer.concat(n),t[0]|=64,new h(t)}if(function(e){const t=Object.keys(e).sort();return 3===t.length&&"currency"===t[0]&&"issuer"===t[1]&&"value"===t[2]}(e)){const r=new n.Decimal(e.value);if(h.assertIouIsValid(r),r.isZero())t[0]|=128;else{const e=r.times("1e"+-(r.e-15)).abs().toString(),i=u(e),o=[c.Buffer.alloc(4),c.Buffer.alloc(4)];o[0].writeUInt32BE(Number(i.shiftRight(32)),0),o[1].writeUInt32BE(Number(i.and(d)),0),t=c.Buffer.concat(o),t[0]|=128,r.gt(new n.Decimal(0))&&(t[0]|=64);const a=r.e-15+97;t[0]|=a>>>2,t[1]|=(3&a)<<6}const i=a.Currency.from(e.currency).toBytes(),s=o.AccountID.from(e.issuer).toBytes();return new h(c.Buffer.concat([t,i,s]))}throw new Error("Invalid type to construct an Amount")}static fromParser(e){const t=128&e.peek()?48:8;return new h(e.read(t))}toJSON(){if(this.isNative()){const e=this.bytes,t=64&e[0]?"":"-";e[0]&=63;const r=u(e.slice(0,4).readUInt32BE(0)),n=u(e.slice(4).readUInt32BE(0));return`${t}${r.shiftLeft(32).or(n).toString()}`}{const e=new i.BinaryParser(this.toString()),t=e.read(8),r=a.Currency.fromParser(e),s=o.AccountID.fromParser(e),u=t[0],c=64&u?"":"-",f=((63&u)<<2)+((255&t[1])>>6)-97;t[0]=0,t[1]&=63;const l=new n.Decimal(`${c}0x${t.toString("hex")}`).times(`1e${f}`);return h.assertIouIsValid(l),{value:l.toString(),currency:r.toJSON(),issuer:s.toJSON()}}}static assertXrpIsValid(e){if(-1!==e.indexOf("."))throw new Error(`${e.toString()} is an illegal amount`);const t=new n.Decimal(e);if(!t.isZero()&&(t.lt(l)||t.gt(f)))throw new Error(`${e.toString()} is an illegal amount`)}static assertIouIsValid(e){if(!e.isZero()){const t=e.precision(),r=e.e-15;if(t>16||r>80||r<-96)throw new Error("Decimal precision out of range");this.verifyNoDecimal(e)}}static verifyNoDecimal(e){if(-1!==e.times("1e"+-(e.e-15)).abs().toString().indexOf("."))throw new Error("Decimal place found in integerNumberString")}isNative(){return 0==(128&this.bytes[0])}}t.Amount=h,h.defaultAmount=new h(c.Buffer.from("4000000000000000","hex"))},72374:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Blob=void 0;const n=r(43859),i=r(18390);class o extends n.SerializedType{constructor(e){super(e)}static fromParser(e,t){return new o(e.read(t))}static from(e){if(e instanceof o)return e;if("string"==typeof e)return new o(i.Buffer.from(e,"hex"));throw new Error("Cannot construct Blob from value given")}}t.Blob=o},11861:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Currency=void 0;const n=r(28357),i=r(18390),o=/^0{40}$/,a=/^[A-Z0-9a-z?!@#$%^&*(){}[\]|]{3}$/,s=/^[A-F0-9]{40}$/,u=/^0{24}[\x00-\x7F]{6}0{10}$/;function c(e){if(!function(e){return e instanceof i.Buffer?20===e.byteLength:function(e){return 3===e.length||(t=e,s.test(t));var t}(e)}(e))throw new Error(`Unsupported Currency representation: ${e}`);return 3===e.length?function(e){const t=i.Buffer.alloc(20);if("XRP"!==e){const r=e.split("").map((e=>e.charCodeAt(0)));t.set(r,12)}return t}(e):i.Buffer.from(e,"hex")}class f extends n.Hash160{constructor(e){super(null!=e?e:f.XRP.bytes);const t=this.bytes.toString("hex");o.test(t)?this._iso="XRP":u.test(t)?this._iso=function(e){const t=e.toString();return"XRP"===t?null:function(e){return a.test(e)}(t)?t:null}(this.bytes.slice(12,15)):this._iso=null}iso(){return this._iso}static from(e){if(e instanceof f)return e;if("string"==typeof e)return new f(c(e));throw new Error("Cannot construct Currency from value given")}toJSON(){const e=this.iso();return null!==e?e:this.bytes.toString("hex").toUpperCase()}}t.Currency=f,f.XRP=new f(i.Buffer.alloc(20))},74084:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Hash128=void 0;const n=r(48118),i=r(18390);class o extends n.Hash{constructor(e){e&&0===e.byteLength&&(e=o.ZERO_128.bytes),super(null!=e?e:o.ZERO_128.bytes)}toHex(){const e=this.toBytes().toString("hex").toUpperCase();return/^0+$/.exec(e)?"":e}}t.Hash128=o,o.width=16,o.ZERO_128=new o(i.Buffer.alloc(o.width))},28357:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Hash160=void 0;const n=r(48118),i=r(18390);class o extends n.Hash{constructor(e){e&&0===e.byteLength&&(e=o.ZERO_160.bytes),super(null!=e?e:o.ZERO_160.bytes)}}t.Hash160=o,o.width=20,o.ZERO_160=new o(i.Buffer.alloc(o.width))},28467:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Hash256=void 0;const n=r(48118),i=r(18390);class o extends n.Hash{constructor(e){super(null!=e?e:o.ZERO_256.bytes)}}t.Hash256=o,o.width=32,o.ZERO_256=new o(i.Buffer.alloc(o.width))},48118:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Hash=void 0;const n=r(43859),i=r(18390);class o extends n.Comparable{constructor(e){if(super(e),this.bytes.byteLength!==this.constructor.width)throw new Error(`Invalid Hash length ${this.bytes.byteLength}`)}static from(e){if(e instanceof this)return e;if("string"==typeof e)return new this(i.Buffer.from(e,"hex"));throw new Error("Cannot construct Hash from given value")}static fromParser(e,t){return new this(e.read(null!=t?t:this.width))}compareTo(e){return this.bytes.compare(this.constructor.from(e).bytes)}toString(){return this.toHex()}nibblet(e){const t=e>0?e/2|0:0;let r=this.bytes[t];return e%2==0?r=(240&r)>>>4:r&=15,r}}t.Hash=o},27601:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Vector256=t.UInt64=t.UInt32=t.UInt16=t.UInt8=t.STObject=t.STArray=t.PathSet=t.Hash256=t.Hash160=t.Hash128=t.Currency=t.Blob=t.Amount=t.AccountID=t.coreTypes=void 0;const n=r(34897);Object.defineProperty(t,"AccountID",{enumerable:!0,get:function(){return n.AccountID}});const i=r(78631);Object.defineProperty(t,"Amount",{enumerable:!0,get:function(){return i.Amount}});const o=r(72374);Object.defineProperty(t,"Blob",{enumerable:!0,get:function(){return o.Blob}});const a=r(11861);Object.defineProperty(t,"Currency",{enumerable:!0,get:function(){return a.Currency}});const s=r(74084);Object.defineProperty(t,"Hash128",{enumerable:!0,get:function(){return s.Hash128}});const u=r(28357);Object.defineProperty(t,"Hash160",{enumerable:!0,get:function(){return u.Hash160}});const c=r(28467);Object.defineProperty(t,"Hash256",{enumerable:!0,get:function(){return c.Hash256}});const f=r(81910),l=r(71380);Object.defineProperty(t,"PathSet",{enumerable:!0,get:function(){return l.PathSet}});const d=r(93094);Object.defineProperty(t,"STArray",{enumerable:!0,get:function(){return d.STArray}});const h=r(4477);Object.defineProperty(t,"STObject",{enumerable:!0,get:function(){return h.STObject}});const p=r(26651);Object.defineProperty(t,"UInt16",{enumerable:!0,get:function(){return p.UInt16}});const y=r(64775);Object.defineProperty(t,"UInt32",{enumerable:!0,get:function(){return y.UInt32}});const g=r(80897);Object.defineProperty(t,"UInt64",{enumerable:!0,get:function(){return g.UInt64}});const b=r(87246);Object.defineProperty(t,"UInt8",{enumerable:!0,get:function(){return b.UInt8}});const m=r(38552);Object.defineProperty(t,"Vector256",{enumerable:!0,get:function(){return m.Vector256}});const v=r(12933),w={AccountID:n.AccountID,Amount:i.Amount,Blob:o.Blob,Currency:a.Currency,Hash128:s.Hash128,Hash160:u.Hash160,Hash256:c.Hash256,Issue:f.Issue,PathSet:l.PathSet,STArray:d.STArray,STObject:h.STObject,UInt8:b.UInt8,UInt16:p.UInt16,UInt32:y.UInt32,UInt64:g.UInt64,Vector256:m.Vector256};t.coreTypes=w,v.DEFAULT_DEFINITIONS.associateTypes(w)},81910:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Issue=void 0;const n=r(60844),i=r(34897),o=r(11861),a=r(43859),s=r(18390);class u extends a.SerializedType{constructor(e){super(null!=e?e:u.ZERO_ISSUED_CURRENCY.bytes)}static from(e){if(e instanceof u)return e;if(function(e){const t=Object.keys(e).sort();return 1===t.length?"currency"===t[0]:2===t.length&&"currency"===t[0]&&"issuer"===t[1]}(e)){const t=o.Currency.from(e.currency).toBytes();if(null==e.issuer)return new u(t);const r=i.AccountID.from(e.issuer).toBytes();return new u(s.Buffer.concat([t,r]))}throw new Error("Invalid type to construct an Amount")}static fromParser(e){const t=e.read(20);if("XRP"===new o.Currency(t).toJSON())return new u(t);const r=[t,e.read(20)];return new u(s.Buffer.concat(r))}toJSON(){const e=new n.BinaryParser(this.toString()),t=o.Currency.fromParser(e);if("XRP"===t.toJSON())return{currency:t.toJSON()};const r=i.AccountID.fromParser(e);return{currency:t.toJSON(),issuer:r.toJSON()}}}t.Issue=u,u.ZERO_ISSUED_CURRENCY=new u(s.Buffer.alloc(20))},71380:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PathSet=void 0;const n=r(34897),i=r(11861),o=r(60844),a=r(43859),s=r(18390);class u extends a.SerializedType{static from(e){if(e instanceof u)return e;const t=[s.Buffer.from([0])];return e.account&&(t.push(n.AccountID.from(e.account).toBytes()),t[0][0]|=1),e.currency&&(t.push(i.Currency.from(e.currency).toBytes()),t[0][0]|=16),e.issuer&&(t.push(n.AccountID.from(e.issuer).toBytes()),t[0][0]|=32),new u(s.Buffer.concat(t))}static fromParser(e){const t=e.readUInt8(),r=[s.Buffer.from([t])];return 1&t&&r.push(e.read(n.AccountID.width)),16&t&&r.push(e.read(i.Currency.width)),32&t&&r.push(e.read(n.AccountID.width)),new u(s.Buffer.concat(r))}toJSON(){const e=new o.BinaryParser(this.bytes.toString("hex")),t=e.readUInt8();let r,a,s;1&t&&(r=n.AccountID.fromParser(e).toJSON()),16&t&&(a=i.Currency.fromParser(e).toJSON()),32&t&&(s=n.AccountID.fromParser(e).toJSON());const u={};return r&&(u.account=r),s&&(u.issuer=s),a&&(u.currency=a),u}type(){return this.bytes[0]}}class c extends a.SerializedType{static from(e){if(e instanceof c)return e;const t=[];return e.forEach((e=>{t.push(u.from(e).toBytes())})),new c(s.Buffer.concat(t))}static fromParser(e){const t=[];for(;!e.end()&&(t.push(u.fromParser(e).toBytes()),0!==e.peek()&&255!==e.peek()););return new c(s.Buffer.concat(t))}toJSON(){const e=[],t=new o.BinaryParser(this.toString());for(;!t.end();)e.push(u.fromParser(t).toJSON());return e}}class f extends a.SerializedType{static from(e){if(e instanceof f)return e;if(t=e,Array.isArray(t)&&0===t.length||Array.isArray(t)&&Array.isArray(t[0])&&0===t[0].length||Array.isArray(t)&&Array.isArray(t[0])&&function(e){return void 0!==e.issuer||void 0!==e.account||void 0!==e.currency}(t[0][0])){const t=[];return e.forEach((e=>{t.push(c.from(e).toBytes()),t.push(s.Buffer.from([255]))})),t[t.length-1]=s.Buffer.from([0]),new f(s.Buffer.concat(t))}var t;throw new Error("Cannot construct PathSet from given value")}static fromParser(e){const t=[];for(;!e.end()&&(t.push(c.fromParser(e).toBytes()),t.push(e.read(1)),0!=t[t.length-1][0]););return new f(s.Buffer.concat(t))}toJSON(){const e=[],t=new o.BinaryParser(this.toString());for(;!t.end();)e.push(c.fromParser(t).toJSON()),t.skip(1);return e}}t.PathSet=f},43859:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Comparable=t.SerializedType=void 0;const n=r(42510),i=r(18390);class o{constructor(e){this.bytes=i.Buffer.alloc(0),this.bytes=null!=e?e:i.Buffer.alloc(0)}static fromParser(e,t){throw new Error("fromParser not implemented")}static from(e){throw new Error("from not implemented")}toBytesSink(e){e.put(this.bytes)}toHex(){return this.toBytes().toString("hex").toUpperCase()}toBytes(){if(this.bytes)return this.bytes;const e=new n.BytesList;return this.toBytesSink(e),e.toBytes()}toJSON(e){return this.toHex()}toString(){return this.toHex()}}t.SerializedType=o,t.Comparable=class extends o{lt(e){return this.compareTo(e)<0}eq(e){return 0===this.compareTo(e)}gt(e){return this.compareTo(e)>0}gte(e){return this.compareTo(e)>-1}lte(e){return this.compareTo(e)<1}compareTo(e){throw new Error(`cannot compare ${this.toString()} and ${e.toString()}`)}}},93094:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.STArray=void 0;const n=r(12933),i=r(43859),o=r(4477),a=r(60844),s=r(18390),u=s.Buffer.from([241]),c="ArrayEndMarker",f=s.Buffer.from([225]);class l extends i.SerializedType{static fromParser(e){const t=[];for(;!e.end();){const r=e.readField();if(r.name===c)break;t.push(r.header,e.readFieldValue(r).toBytes(),f)}return t.push(u),new l(s.Buffer.concat(t))}static from(e,t=n.DEFAULT_DEFINITIONS){if(e instanceof l)return e;if(r=e,Array.isArray(r)&&(0===r.length||"object"==typeof r[0])){const r=[];return e.forEach((e=>{r.push(o.STObject.from(e,void 0,t).toBytes())})),r.push(u),new l(s.Buffer.concat(r))}var r;throw new Error("Cannot construct STArray from value given")}toJSON(e=n.DEFAULT_DEFINITIONS){const t=[],r=new a.BinaryParser(this.toString(),e);for(;!r.end();){const n=r.readField();if(n.name===c)break;const i={};i[n.name]=o.STObject.fromParser(r).toJSON(e),t.push(i)}return t}}t.STArray=l},4477:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.STObject=void 0;const n=r(12933),i=r(43859),o=r(79798),a=r(60844),s=r(42510),u=r(18390),c=r(93094),f=u.Buffer.from([225]),l="ObjectEndMarker",d="STObject",h="SourceTag",p="DestinationTag";class y extends i.SerializedType{static fromParser(e){const t=new s.BytesList,r=new s.BinarySerializer(t);for(;!e.end();){const t=e.readField();if(t.name===l)break;const n=e.readFieldValue(t);r.writeFieldAndValue(t,n),t.type.name===d&&r.put(f)}return new y(t.toBytes())}static from(e,t,r=n.DEFAULT_DEFINITIONS){if(e instanceof y)return e;const i=new s.BytesList,a=new s.BinarySerializer(i);let u=!1;const l=Object.entries(e).reduce(((t,[r,n])=>{let i;return n&&(0,o.isValidXAddress)(n.toString())&&(i=function(e,t){const r=(0,o.xAddressToClassicAddress)(t);let n;if("Destination"===e)n=p;else if("Account"===e)n=h;else if(!1!==r.tag)throw new Error(`${e} cannot have an associated tag`);return!1!==r.tag?{[e]:r.classicAddress,[n]:r.tag}:{[e]:r.classicAddress}}(r,n.toString()),function(e,t){if(void 0!==e[h]&&void 0!==t[h])throw new Error("Cannot have Account X-Address and SourceTag");if(void 0!==e[p]&&void 0!==t[p])throw new Error("Cannot have Destination X-Address and DestinationTag")}(i,e)),Object.assign(t,null!=i?i:{[r]:n})}),{});let g=Object.keys(l).map((e=>r.field[e])).filter((e=>void 0!==e&&void 0!==l[e.name]&&e.isSerialized)).sort(((e,t)=>e.ordinal-t.ordinal));return void 0!==t&&(g=g.filter(t)),g.forEach((e=>{const t=e.type.name===d?this.from(l[e.name],void 0,r):"STArray"===e.type.name?c.STArray.from(l[e.name],r):e.associatedType.from(l[e.name]);if(null==t)throw new TypeError(`Unable to interpret "${e.name}: ${l[e.name]}".`);"UNLModify"===t.name&&(u=!0);const n="Account"==e.name&&u;a.writeFieldAndValue(e,t,n),e.type.name===d&&a.put(f)})),new y(i.toBytes())}toJSON(e){const t=new a.BinaryParser(this.toString(),e),r={};for(;!t.end();){const n=t.readField();if(n.name===l)break;r[n.name]=t.readFieldValue(n).toJSON(e)}return r}}t.STObject=y},26651:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.UInt16=void 0;const n=r(18014),i=r(18390);class o extends n.UInt{constructor(e){super(null!=e?e:o.defaultUInt16.bytes)}static fromParser(e){return new o(e.read(o.width))}static from(e){if(e instanceof o)return e;if("number"==typeof e){const t=i.Buffer.alloc(o.width);return t.writeUInt16BE(e,0),new o(t)}throw new Error("Can not construct UInt16 with given value")}valueOf(){return this.bytes.readUInt16BE(0)}}t.UInt16=o,o.width=2,o.defaultUInt16=new o(i.Buffer.alloc(o.width))},64775:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.UInt32=void 0;const n=r(18014),i=r(18390);class o extends n.UInt{constructor(e){super(null!=e?e:o.defaultUInt32.bytes)}static fromParser(e){return new o(e.read(o.width))}static from(e){if(e instanceof o)return e;const t=i.Buffer.alloc(o.width);if("string"==typeof e){const r=Number.parseInt(e);return t.writeUInt32BE(r,0),new o(t)}if("number"==typeof e)return t.writeUInt32BE(e,0),new o(t);throw new Error("Cannot construct UInt32 from given value")}valueOf(){return this.bytes.readUInt32BE(0)}}t.UInt32=o,o.width=4,o.defaultUInt32=new o(i.Buffer.alloc(o.width))},80897:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.UInt64=void 0;const n=r(18014),i=r(32548),o=r(32548),a=r(18390),s=/^[a-fA-F0-9]{1,16}$/,u=i(4294967295);class c extends n.UInt{constructor(e){super(null!=e?e:c.defaultUInt64.bytes)}static fromParser(e){return new c(e.read(c.width))}static from(e){if(e instanceof c)return e;let t=a.Buffer.alloc(c.width);if("number"==typeof e){if(e<0)throw new Error("value must be an unsigned integer");const t=i(e),r=[a.Buffer.alloc(4),a.Buffer.alloc(4)];return r[0].writeUInt32BE(Number(t.shiftRight(32)),0),r[1].writeUInt32BE(Number(t.and(u)),0),new c(a.Buffer.concat(r))}if("string"==typeof e){if(!s.test(e))throw new Error(`${e} is not a valid hex-string`);const r=e.padStart(16,"0");return t=a.Buffer.from(r,"hex"),new c(t)}if((0,o.isInstance)(e)){const t=[a.Buffer.alloc(4),a.Buffer.alloc(4)];return t[0].writeUInt32BE(Number(e.shiftRight(i(32))),0),t[1].writeUInt32BE(Number(e.and(u)),0),new c(a.Buffer.concat(t))}throw new Error("Cannot construct UInt64 from given value")}toJSON(){return this.bytes.toString("hex").toUpperCase()}valueOf(){const e=i(this.bytes.slice(0,4).readUInt32BE(0)),t=i(this.bytes.slice(4).readUInt32BE(0));return e.shiftLeft(i(32)).or(t)}toBytes(){return this.bytes}}t.UInt64=c,c.width=8,c.defaultUInt64=new c(a.Buffer.alloc(c.width))},87246:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.UInt8=void 0;const n=r(18014),i=r(18390);class o extends n.UInt{constructor(e){super(null!=e?e:o.defaultUInt8.bytes)}static fromParser(e){return new o(e.read(o.width))}static from(e){if(e instanceof o)return e;if("number"==typeof e){const t=i.Buffer.alloc(o.width);return t.writeUInt8(e,0),new o(t)}throw new Error("Cannot construct UInt8 from given value")}valueOf(){return this.bytes.readUInt8(0)}}t.UInt8=o,o.width=1,o.defaultUInt8=new o(i.Buffer.alloc(o.width))},18014:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.UInt=void 0;const n=r(43859);class i extends n.Comparable{constructor(e){super(e)}compareTo(e){return(t=this.valueOf())<(r=e.valueOf())?-1:t==r?0:1;var t,r}toJSON(){const e=this.valueOf();return"number"==typeof e?e:e.toString()}}t.UInt=i},38552:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Vector256=void 0;const n=r(43859),i=r(28467),o=r(42510);class a extends n.SerializedType{constructor(e){super(e)}static fromParser(e,t){const r=new o.BytesList,n=(null!=t?t:e.size())/32;for(let t=0;t<n;t++)i.Hash256.fromParser(e).toBytesSink(r);return new a(r.toBytes())}static from(e){if(e instanceof a)return e;if(t=e,Array.isArray(t)&&(0===t.length||"string"==typeof t[0])){const t=new o.BytesList;return e.forEach((e=>{i.Hash256.from(e).toBytesSink(t)})),new a(t.toBytes())}var t;throw new Error("Cannot construct Vector256 from given value")}toJSON(){if(this.bytes.byteLength%32!=0)throw new Error("Invalid bytes for Vector256");const e=[];for(let t=0;t<this.bytes.byteLength;t+=32)e.push(this.bytes.slice(t,t+32).toString("hex").toUpperCase());return e}}t.Vector256=a},85830:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t};Object.defineProperty(t,"__esModule",{value:!0});const a=o(r(58925)),s=r(69999);t.default=class{constructor(){this.hash=a.sha512()}add(e){return this.hash.update(e),this}addU32(e){return this.add([e>>>24&255,e>>>16&255,e>>>8&255,255&e])}finish(){return this.hash.digest()}first256(){return this.finish().slice(0,32)}first256BN(){return new s(this.first256())}}},43004:function(e,t,r){"use strict";var n=r(18390).Buffer,i=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return o(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.decodeSeed=t.deriveNodeAddress=t.deriveAddress=t.verify=t.sign=t.deriveKeypair=t.generateSeed=void 0;const s=a(r(32037)),u=r(72486),c=a(r(58925)),f=a(r(42870)),l=a(r(79798)),d=r(80184),h=a(r(31434)),p=f.eddsa("ed25519"),y=f.ec("secp256k1"),{hexToBytes:g}=h,{bytesToHex:b}=h;function m(e){return c.sha512().update(e).digest().slice(0,32)}t.generateSeed=function(e={}){s.ok(!e.entropy||e.entropy.length>=16,"entropy too short");const t=e.entropy?e.entropy.slice(0,16):u(16),r="ed25519"===e.algorithm?"ed25519":"secp256k1";return l.encodeSeed(n.from(t),r)};const v={deriveKeypair(e,t){const r="00"+(0,d.derivePrivateKey)(e,t).toString(16,64).toUpperCase(),n=b(y.keyFromPrivate(r.slice(2)).getPublic().encodeCompressed());return{privateKey:r,publicKey:n}},sign:(e,t)=>b(y.sign(m(e),g(t),{canonical:!0}).toDER()),verify:(e,t,r)=>y.verify(m(e),t,g(r))},w={deriveKeypair(e){const t=m(e);return{privateKey:"ED"+b(t),publicKey:"ED"+b(p.keyFromSecret(t).pubBytes())}},sign:(e,t)=>(s.ok(Array.isArray(e),"message must be array of octets"),b(p.sign(e,g(t).slice(1)).toBytes())),verify:(e,t,r)=>p.verify(e,g(t),g(r).slice(1))};function _(e){return{"ecdsa-secp256k1":v,ed25519:w}[e]}function E(e){const t=g(e);return 33===t.length&&237===t[0]?"ed25519":"ecdsa-secp256k1"}function S(e){return l.encodeAccountID(h.computePublicKeyHash(e))}t.deriveKeypair=function(e,t){const r=l.decodeSeed(e),n=_("ed25519"===r.type?"ed25519":"ecdsa-secp256k1"),i=n.deriveKeypair(r.bytes,t),o=m("This test message should verify."),a=n.sign(o,i.privateKey);if(!0!==n.verify(o,a,i.publicKey))throw new Error("derived keypair did not generate verifiable signature");return i},t.sign=function(e,t){return _(E(t)).sign(g(e),t)},t.verify=function(e,t,r){return _(E(r)).verify(g(e),t,r)},t.deriveAddress=function(e){return S(n.from(g(e)))},t.deriveNodeAddress=function(e){const t=l.decodeNodePublic(e);return S((0,d.accountPublicFromPublicGenerator)(t))};const{decodeSeed:A}=l;t.decodeSeed=A},80184:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t},a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.accountPublicFromPublicGenerator=t.derivePrivateKey=void 0;const s=o(r(42870)),u=a(r(85830)),c=s.ec("secp256k1");function f(e,t){const r=c.curve.n;for(let n=0;n<=4294967295;n++){const i=(new u.default).add(e);void 0!==t&&i.addU32(t),i.addU32(n);const o=i.first256BN();if(o.cmpn(0)>0&&o.cmp(r)<0)return o}throw new Error("impossible unicorn ;)")}t.derivePrivateKey=function(e,t={}){const r=t.validator,n=c.curve.n,i=f(e);if(r)return i;const o=c.g.mul(i),a=t.accountIndex||0;return f(o.encodeCompressed(),a).add(i).mod(n)},t.accountPublicFromPublicGenerator=function(e){const t=c.curve.decodePoint(e),r=f(e,0),n=c.g.mul(r);return t.add(n).encodeCompressed()}},31434:function(e,t,r){"use strict";var n=r(18390).Buffer,i=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return o(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.computePublicKeyHash=t.hexToBytes=t.bytesToHex=void 0;const s=a(r(32037)),u=a(r(58925)),c=r(69999);t.bytesToHex=function(e){return Array.from(e,(e=>{const t=e.toString(16).toUpperCase();return t.length>1?t:`0${t}`})).join("")},t.hexToBytes=function(e){return s.ok(e.length%2==0),0===e.length?[]:new c(e,16).toArray(null,e.length/2)},t.computePublicKeyHash=function(e){const t=u.sha256().update(e).digest(),r=u.ripemd160().update(t).digest();return n.from(r)}},59105:(e,t,r)=>{var n=r(18390),i=n.Buffer;function o(e,t){for(var r in e)t[r]=e[r]}function a(e,t,r){return i(e,t,r)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=n:(o(n,t),t.Buffer=a),a.prototype=Object.create(i.prototype),o(i,a),a.from=function(e,t,r){if("number"==typeof e)throw new TypeError("Argument must not be a number");return i(e,t,r)},a.alloc=function(e,t,r){if("number"!=typeof e)throw new TypeError("Argument must be a number");var n=i(e);return void 0!==t?"string"==typeof r?n.fill(t,r):n.fill(t):n.fill(0),n},a.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return i(e)},a.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return n.SlowBuffer(e)}},95848:(e,t,r)=>{"use strict";var n,i=r(48494),o=r(18390),a=o.Buffer,s={};for(n in o)o.hasOwnProperty(n)&&"SlowBuffer"!==n&&"Buffer"!==n&&(s[n]=o[n]);var u=s.Buffer={};for(n in a)a.hasOwnProperty(n)&&"allocUnsafe"!==n&&"allocUnsafeSlow"!==n&&(u[n]=a[n]);if(s.Buffer.prototype=a.prototype,u.from&&u.from!==Uint8Array.from||(u.from=function(e,t,r){if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type '+typeof e);if(e&&void 0===e.length)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);return a(e,t,r)}),u.alloc||(u.alloc=function(e,t,r){if("number"!=typeof e)throw new TypeError('The "size" argument must be of type number. Received type '+typeof e);if(e<0||e>=2*(1<<30))throw new RangeError('The value "'+e+'" is invalid for option "size"');var n=a(e);return t&&0!==t.length?"string"==typeof r?n.fill(t,r):n.fill(t):n.fill(0),n}),!s.kStringMaxLength)try{s.kStringMaxLength=i.binding("buffer").kStringMaxLength}catch(e){}s.constants||(s.constants={MAX_LENGTH:s.kMaxLength},s.kStringMaxLength&&(s.constants.MAX_STRING_LENGTH=s.kStringMaxLength)),e.exports=s},63221:(e,t,r)=>{var n=r(59105).Buffer;function i(e,t){this._block=n.alloc(e),this._finalSize=t,this._blockSize=e,this._len=0}i.prototype.update=function(e,t){"string"==typeof e&&(t=t||"utf8",e=n.from(e,t));for(var r=this._block,i=this._blockSize,o=e.length,a=this._len,s=0;s<o;){for(var u=a%i,c=Math.min(o-s,i-u),f=0;f<c;f++)r[u+f]=e[s+f];s+=c,(a+=c)%i==0&&this._update(r)}return this._len+=o,this},i.prototype.digest=function(e){var t=this._len%this._blockSize;this._block[t]=128,this._block.fill(0,t+1),t>=this._finalSize&&(this._update(this._block),this._block.fill(0));var r=8*this._len;if(r<=4294967295)this._block.writeUInt32BE(r,this._blockSize-4);else{var n=(4294967295&r)>>>0,i=(r-n)/4294967296;this._block.writeUInt32BE(i,this._blockSize-8),this._block.writeUInt32BE(n,this._blockSize-4)}this._update(this._block);var o=this._hash();return e?o.toString(e):o},i.prototype._update=function(){throw new Error("_update must be implemented by subclass")},e.exports=i},55695:(e,t,r)=>{var n=e.exports=function(e){e=e.toLowerCase();var t=n[e];if(!t)throw new Error(e+" is not supported (we accept pull requests)");return new t};n.sha=r(53875),n.sha1=r(5090),n.sha224=r(21698),n.sha256=r(58710),n.sha384=r(36333),n.sha512=r(91720)},53875:(e,t,r)=>{var n=r(19105),i=r(63221),o=r(59105).Buffer,a=[1518500249,1859775393,-1894007588,-899497514],s=new Array(80);function u(){this.init(),this._w=s,i.call(this,64,56)}function c(e){return e<<30|e>>>2}function f(e,t,r,n){return 0===e?t&r|~t&n:2===e?t&r|t&n|r&n:t^r^n}n(u,i),u.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},u.prototype._update=function(e){for(var t,r=this._w,n=0|this._a,i=0|this._b,o=0|this._c,s=0|this._d,u=0|this._e,l=0;l<16;++l)r[l]=e.readInt32BE(4*l);for(;l<80;++l)r[l]=r[l-3]^r[l-8]^r[l-14]^r[l-16];for(var d=0;d<80;++d){var h=~~(d/20),p=0|((t=n)<<5|t>>>27)+f(h,i,o,s)+u+r[d]+a[h];u=s,s=o,o=c(i),i=n,n=p}this._a=n+this._a|0,this._b=i+this._b|0,this._c=o+this._c|0,this._d=s+this._d|0,this._e=u+this._e|0},u.prototype._hash=function(){var e=o.allocUnsafe(20);return e.writeInt32BE(0|this._a,0),e.writeInt32BE(0|this._b,4),e.writeInt32BE(0|this._c,8),e.writeInt32BE(0|this._d,12),e.writeInt32BE(0|this._e,16),e},e.exports=u},5090:(e,t,r)=>{var n=r(19105),i=r(63221),o=r(59105).Buffer,a=[1518500249,1859775393,-1894007588,-899497514],s=new Array(80);function u(){this.init(),this._w=s,i.call(this,64,56)}function c(e){return e<<5|e>>>27}function f(e){return e<<30|e>>>2}function l(e,t,r,n){return 0===e?t&r|~t&n:2===e?t&r|t&n|r&n:t^r^n}n(u,i),u.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},u.prototype._update=function(e){for(var t,r=this._w,n=0|this._a,i=0|this._b,o=0|this._c,s=0|this._d,u=0|this._e,d=0;d<16;++d)r[d]=e.readInt32BE(4*d);for(;d<80;++d)r[d]=(t=r[d-3]^r[d-8]^r[d-14]^r[d-16])<<1|t>>>31;for(var h=0;h<80;++h){var p=~~(h/20),y=c(n)+l(p,i,o,s)+u+r[h]+a[p]|0;u=s,s=o,o=f(i),i=n,n=y}this._a=n+this._a|0,this._b=i+this._b|0,this._c=o+this._c|0,this._d=s+this._d|0,this._e=u+this._e|0},u.prototype._hash=function(){var e=o.allocUnsafe(20);return e.writeInt32BE(0|this._a,0),e.writeInt32BE(0|this._b,4),e.writeInt32BE(0|this._c,8),e.writeInt32BE(0|this._d,12),e.writeInt32BE(0|this._e,16),e},e.exports=u},21698:(e,t,r)=>{var n=r(19105),i=r(58710),o=r(63221),a=r(59105).Buffer,s=new Array(64);function u(){this.init(),this._w=s,o.call(this,64,56)}n(u,i),u.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},u.prototype._hash=function(){var e=a.allocUnsafe(28);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e},e.exports=u},58710:(e,t,r)=>{var n=r(19105),i=r(63221),o=r(59105).Buffer,a=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],s=new Array(64);function u(){this.init(),this._w=s,i.call(this,64,56)}function c(e,t,r){return r^e&(t^r)}function f(e,t,r){return e&t|r&(e|t)}function l(e){return(e>>>2|e<<30)^(e>>>13|e<<19)^(e>>>22|e<<10)}function d(e){return(e>>>6|e<<26)^(e>>>11|e<<21)^(e>>>25|e<<7)}function h(e){return(e>>>7|e<<25)^(e>>>18|e<<14)^e>>>3}n(u,i),u.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this},u.prototype._update=function(e){for(var t,r=this._w,n=0|this._a,i=0|this._b,o=0|this._c,s=0|this._d,u=0|this._e,p=0|this._f,y=0|this._g,g=0|this._h,b=0;b<16;++b)r[b]=e.readInt32BE(4*b);for(;b<64;++b)r[b]=0|(((t=r[b-2])>>>17|t<<15)^(t>>>19|t<<13)^t>>>10)+r[b-7]+h(r[b-15])+r[b-16];for(var m=0;m<64;++m){var v=g+d(u)+c(u,p,y)+a[m]+r[m]|0,w=l(n)+f(n,i,o)|0;g=y,y=p,p=u,u=s+v|0,s=o,o=i,i=n,n=v+w|0}this._a=n+this._a|0,this._b=i+this._b|0,this._c=o+this._c|0,this._d=s+this._d|0,this._e=u+this._e|0,this._f=p+this._f|0,this._g=y+this._g|0,this._h=g+this._h|0},u.prototype._hash=function(){var e=o.allocUnsafe(32);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e.writeInt32BE(this._h,28),e},e.exports=u},36333:(e,t,r)=>{var n=r(19105),i=r(91720),o=r(63221),a=r(59105).Buffer,s=new Array(160);function u(){this.init(),this._w=s,o.call(this,128,112)}n(u,i),u.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},u.prototype._hash=function(){var e=a.allocUnsafe(48);function t(t,r,n){e.writeInt32BE(t,n),e.writeInt32BE(r,n+4)}return t(this._ah,this._al,0),t(this._bh,this._bl,8),t(this._ch,this._cl,16),t(this._dh,this._dl,24),t(this._eh,this._el,32),t(this._fh,this._fl,40),e},e.exports=u},91720:(e,t,r)=>{var n=r(19105),i=r(63221),o=r(59105).Buffer,a=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],s=new Array(160);function u(){this.init(),this._w=s,i.call(this,128,112)}function c(e,t,r){return r^e&(t^r)}function f(e,t,r){return e&t|r&(e|t)}function l(e,t){return(e>>>28|t<<4)^(t>>>2|e<<30)^(t>>>7|e<<25)}function d(e,t){return(e>>>14|t<<18)^(e>>>18|t<<14)^(t>>>9|e<<23)}function h(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^e>>>7}function p(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^(e>>>7|t<<25)}function y(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^e>>>6}function g(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^(e>>>6|t<<26)}function b(e,t){return e>>>0<t>>>0?1:0}n(u,i),u.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this},u.prototype._update=function(e){for(var t=this._w,r=0|this._ah,n=0|this._bh,i=0|this._ch,o=0|this._dh,s=0|this._eh,u=0|this._fh,m=0|this._gh,v=0|this._hh,w=0|this._al,_=0|this._bl,E=0|this._cl,S=0|this._dl,A=0|this._el,O=0|this._fl,M=0|this._gl,T=0|this._hl,I=0;I<32;I+=2)t[I]=e.readInt32BE(4*I),t[I+1]=e.readInt32BE(4*I+4);for(;I<160;I+=2){var N=t[I-30],x=t[I-30+1],L=h(N,x),k=p(x,N),R=y(N=t[I-4],x=t[I-4+1]),P=g(x,N),B=t[I-14],D=t[I-14+1],C=t[I-32],j=t[I-32+1],F=k+D|0,U=L+B+b(F,k)|0;U=(U=U+R+b(F=F+P|0,P)|0)+C+b(F=F+j|0,j)|0,t[I]=U,t[I+1]=F}for(var V=0;V<160;V+=2){U=t[V],F=t[V+1];var H=f(r,n,i),z=f(w,_,E),q=l(r,w),K=l(w,r),W=d(s,A),G=d(A,s),Y=a[V],$=a[V+1],X=c(s,u,m),J=c(A,O,M),Z=T+G|0,Q=v+W+b(Z,T)|0;Q=(Q=(Q=Q+X+b(Z=Z+J|0,J)|0)+Y+b(Z=Z+$|0,$)|0)+U+b(Z=Z+F|0,F)|0;var ee=K+z|0,te=q+H+b(ee,K)|0;v=m,T=M,m=u,M=O,u=s,O=A,s=o+Q+b(A=S+Z|0,S)|0,o=i,S=E,i=n,E=_,n=r,_=w,r=Q+te+b(w=Z+ee|0,Z)|0}this._al=this._al+w|0,this._bl=this._bl+_|0,this._cl=this._cl+E|0,this._dl=this._dl+S|0,this._el=this._el+A|0,this._fl=this._fl+O|0,this._gl=this._gl+M|0,this._hl=this._hl+T|0,this._ah=this._ah+r+b(this._al,w)|0,this._bh=this._bh+n+b(this._bl,_)|0,this._ch=this._ch+i+b(this._cl,E)|0,this._dh=this._dh+o+b(this._dl,S)|0,this._eh=this._eh+s+b(this._el,A)|0,this._fh=this._fh+u+b(this._fl,O)|0,this._gh=this._gh+m+b(this._gl,M)|0,this._hh=this._hh+v+b(this._hl,T)|0},u.prototype._hash=function(){var e=o.allocUnsafe(64);function t(t,r,n){e.writeInt32BE(t,n),e.writeInt32BE(r,n+4)}return t(this._ah,this._al,0),t(this._bh,this._bl,8),t(this._ch,this._cl,16),t(this._dh,this._dl,24),t(this._eh,this._el,32),t(this._fh,this._fl,40),t(this._gh,this._gl,48),t(this._hh,this._hl,56),e},e.exports=u},64301:(e,t,r)=>{"use strict";var n=r(65205),i=r(34537),o=r(64651),a=n("%TypeError%"),s=n("%WeakMap%",!0),u=n("%Map%",!0),c=i("WeakMap.prototype.get",!0),f=i("WeakMap.prototype.set",!0),l=i("WeakMap.prototype.has",!0),d=i("Map.prototype.get",!0),h=i("Map.prototype.set",!0),p=i("Map.prototype.has",!0),y=function(e,t){for(var r,n=e;null!==(r=n.next);n=r)if(r.key===t)return n.next=r.next,r.next=e.next,e.next=r,r};e.exports=function(){var e,t,r,n={assert:function(e){if(!n.has(e))throw new a("Side channel does not contain "+o(e))},get:function(n){if(s&&n&&("object"==typeof n||"function"==typeof n)){if(e)return c(e,n)}else if(u){if(t)return d(t,n)}else if(r)return function(e,t){var r=y(e,t);return r&&r.value}(r,n)},has:function(n){if(s&&n&&("object"==typeof n||"function"==typeof n)){if(e)return l(e,n)}else if(u){if(t)return p(t,n)}else if(r)return function(e,t){return!!y(e,t)}(r,n);return!1},set:function(n,i){s&&n&&("object"==typeof n||"function"==typeof n)?(e||(e=new s),f(e,n,i)):u?(t||(t=new u),h(t,n,i)):(r||(r={key:{},next:null}),function(e,t,r){var n=y(e,t);n?n.value=r:e.next={key:t,next:e.next,value:r}}(r,n,i))}};return n}},98672:(e,t,r)=>{e.exports=i;var n=r(67725).EventEmitter;function i(){n.call(this)}r(19105)(i,n),i.Readable=r(6246),i.Writable=r(90609),i.Duplex=r(55101),i.Transform=r(16889),i.PassThrough=r(17153),i.finished=r(84781),i.pipeline=r(69635),i.Stream=i,i.prototype.pipe=function(e,t){var r=this;function i(t){e.writable&&!1===e.write(t)&&r.pause&&r.pause()}function o(){r.readable&&r.resume&&r.resume()}r.on("data",i),e.on("drain",o),e._isStdio||t&&!1===t.end||(r.on("end",s),r.on("close",u));var a=!1;function s(){a||(a=!0,e.end())}function u(){a||(a=!0,"function"==typeof e.destroy&&e.destroy())}function c(e){if(f(),0===n.listenerCount(this,"error"))throw e}function f(){r.removeListener("data",i),e.removeListener("drain",o),r.removeListener("end",s),r.removeListener("close",u),r.removeListener("error",c),e.removeListener("error",c),r.removeListener("end",f),r.removeListener("close",f),e.removeListener("close",f)}return r.on("error",c),e.on("error",c),r.on("end",f),r.on("close",f),e.on("close",f),e.emit("pipe",r),e}},4254:(e,t,r)=>{var n=r(33818),i=r(69684),o=r(90139),a=r(77124),s=r(85192),u=t;u.request=function(e,t){e="string"==typeof e?s.parse(e):o(e);var i=-1===r.g.location.protocol.search(/^https?:$/)?"http:":"",a=e.protocol||i,u=e.hostname||e.host,c=e.port,f=e.path||"/";u&&-1!==u.indexOf(":")&&(u="["+u+"]"),e.url=(u?a+"//"+u:"")+(c?":"+c:"")+f,e.method=(e.method||"GET").toUpperCase(),e.headers=e.headers||{};var l=new n(e);return t&&l.on("response",t),l},u.get=function(e,t){var r=u.request(e,t);return r.end(),r},u.ClientRequest=n,u.IncomingMessage=i.IncomingMessage,u.Agent=function(){},u.Agent.defaultMaxSockets=4,u.globalAgent=new u.Agent,u.STATUS_CODES=a,u.METHODS=["CHECKOUT","CONNECT","COPY","DELETE","GET","HEAD","LOCK","M-SEARCH","MERGE","MKACTIVITY","MKCOL","MOVE","NOTIFY","OPTIONS","PATCH","POST","PROPFIND","PROPPATCH","PURGE","PUT","REPORT","SEARCH","SUBSCRIBE","TRACE","UNLOCK","UNSUBSCRIBE"]},3650:(e,t,r)=>{var n;function i(){if(void 0!==n)return n;if(r.g.XMLHttpRequest){n=new r.g.XMLHttpRequest;try{n.open("GET",r.g.XDomainRequest?"/":"https://example.com")}catch(e){n=null}}else n=null;return n}function o(e){var t=i();if(!t)return!1;try{return t.responseType=e,t.responseType===e}catch(e){}return!1}function a(e){return"function"==typeof e}t.fetch=a(r.g.fetch)&&a(r.g.ReadableStream),t.writableStream=a(r.g.WritableStream),t.abortController=a(r.g.AbortController),t.arraybuffer=t.fetch||o("arraybuffer"),t.msstream=!t.fetch&&o("ms-stream"),t.mozchunkedarraybuffer=!t.fetch&&o("moz-chunked-arraybuffer"),t.overrideMimeType=t.fetch||!!i()&&a(i().overrideMimeType),n=null},33818:(e,t,r)=>{var n=r(18390).Buffer,i=r(48494),o=r(3650),a=r(19105),s=r(69684),u=r(8542),c=s.IncomingMessage,f=s.readyStates,l=e.exports=function(e){var t,r=this;u.Writable.call(r),r._opts=e,r._body=[],r._headers={},e.auth&&r.setHeader("Authorization","Basic "+n.from(e.auth).toString("base64")),Object.keys(e.headers).forEach((function(t){r.setHeader(t,e.headers[t])}));var i=!0;if("disable-fetch"===e.mode||"requestTimeout"in e&&!o.abortController)i=!1,t=!0;else if("prefer-streaming"===e.mode)t=!1;else if("allow-wrong-content-type"===e.mode)t=!o.overrideMimeType;else{if(e.mode&&"default"!==e.mode&&"prefer-fast"!==e.mode)throw new Error("Invalid value for opts.mode");t=!0}r._mode=function(e,t){return o.fetch&&t?"fetch":o.mozchunkedarraybuffer?"moz-chunked-arraybuffer":o.msstream?"ms-stream":o.arraybuffer&&e?"arraybuffer":"text"}(t,i),r._fetchTimer=null,r._socketTimeout=null,r._socketTimer=null,r.on("finish",(function(){r._onFinish()}))};a(l,u.Writable),l.prototype.setHeader=function(e,t){var r=e.toLowerCase();-1===d.indexOf(r)&&(this._headers[r]={name:e,value:t})},l.prototype.getHeader=function(e){var t=this._headers[e.toLowerCase()];return t?t.value:null},l.prototype.removeHeader=function(e){delete this._headers[e.toLowerCase()]},l.prototype._onFinish=function(){var e=this;if(!e._destroyed){var t=e._opts;"timeout"in t&&0!==t.timeout&&e.setTimeout(t.timeout);var n=e._headers,a=null;"GET"!==t.method&&"HEAD"!==t.method&&(a=new Blob(e._body,{type:(n["content-type"]||{}).value||""}));var s=[];if(Object.keys(n).forEach((function(e){var t=n[e].name,r=n[e].value;Array.isArray(r)?r.forEach((function(e){s.push([t,e])})):s.push([t,r])})),"fetch"===e._mode){var u=null;if(o.abortController){var c=new AbortController;u=c.signal,e._fetchAbortController=c,"requestTimeout"in t&&0!==t.requestTimeout&&(e._fetchTimer=r.g.setTimeout((function(){e.emit("requestTimeout"),e._fetchAbortController&&e._fetchAbortController.abort()}),t.requestTimeout))}r.g.fetch(e._opts.url,{method:e._opts.method,headers:s,body:a||void 0,mode:"cors",credentials:t.withCredentials?"include":"same-origin",signal:u}).then((function(t){e._fetchResponse=t,e._resetTimers(!1),e._connect()}),(function(t){e._resetTimers(!0),e._destroyed||e.emit("error",t)}))}else{var l=e._xhr=new r.g.XMLHttpRequest;try{l.open(e._opts.method,e._opts.url,!0)}catch(t){return void i.nextTick((function(){e.emit("error",t)}))}"responseType"in l&&(l.responseType=e._mode),"withCredentials"in l&&(l.withCredentials=!!t.withCredentials),"text"===e._mode&&"overrideMimeType"in l&&l.overrideMimeType("text/plain; charset=x-user-defined"),"requestTimeout"in t&&(l.timeout=t.requestTimeout,l.ontimeout=function(){e.emit("requestTimeout")}),s.forEach((function(e){l.setRequestHeader(e[0],e[1])})),e._response=null,l.onreadystatechange=function(){switch(l.readyState){case f.LOADING:case f.DONE:e._onXHRProgress()}},"moz-chunked-arraybuffer"===e._mode&&(l.onprogress=function(){e._onXHRProgress()}),l.onerror=function(){e._destroyed||(e._resetTimers(!0),e.emit("error",new Error("XHR error")))};try{l.send(a)}catch(t){return void i.nextTick((function(){e.emit("error",t)}))}}}},l.prototype._onXHRProgress=function(){var e=this;e._resetTimers(!1),function(e){try{var t=e.status;return null!==t&&0!==t}catch(e){return!1}}(e._xhr)&&!e._destroyed&&(e._response||e._connect(),e._response._onXHRProgress(e._resetTimers.bind(e)))},l.prototype._connect=function(){var e=this;e._destroyed||(e._response=new c(e._xhr,e._fetchResponse,e._mode,e._resetTimers.bind(e)),e._response.on("error",(function(t){e.emit("error",t)})),e.emit("response",e._response))},l.prototype._write=function(e,t,r){this._body.push(e),r()},l.prototype._resetTimers=function(e){var t=this;r.g.clearTimeout(t._socketTimer),t._socketTimer=null,e?(r.g.clearTimeout(t._fetchTimer),t._fetchTimer=null):t._socketTimeout&&(t._socketTimer=r.g.setTimeout((function(){t.emit("timeout")}),t._socketTimeout))},l.prototype.abort=l.prototype.destroy=function(e){var t=this;t._destroyed=!0,t._resetTimers(!0),t._response&&(t._response._destroyed=!0),t._xhr?t._xhr.abort():t._fetchAbortController&&t._fetchAbortController.abort(),e&&t.emit("error",e)},l.prototype.end=function(e,t,r){"function"==typeof e&&(r=e,e=void 0),u.Writable.prototype.end.call(this,e,t,r)},l.prototype.setTimeout=function(e,t){var r=this;t&&r.once("timeout",t),r._socketTimeout=e,r._resetTimers(!1)},l.prototype.flushHeaders=function(){},l.prototype.setNoDelay=function(){},l.prototype.setSocketKeepAlive=function(){};var d=["accept-charset","accept-encoding","access-control-request-headers","access-control-request-method","connection","content-length","cookie","cookie2","date","dnt","expect","host","keep-alive","origin","referer","te","trailer","transfer-encoding","upgrade","via"]},69684:(e,t,r)=>{var n=r(48494),i=r(18390).Buffer,o=r(3650),a=r(19105),s=r(8542),u=t.readyStates={UNSENT:0,OPENED:1,HEADERS_RECEIVED:2,LOADING:3,DONE:4},c=t.IncomingMessage=function(e,t,r,a){var u=this;if(s.Readable.call(u),u._mode=r,u.headers={},u.rawHeaders=[],u.trailers={},u.rawTrailers=[],u.on("end",(function(){n.nextTick((function(){u.emit("close")}))})),"fetch"===r){if(u._fetchResponse=t,u.url=t.url,u.statusCode=t.status,u.statusMessage=t.statusText,t.headers.forEach((function(e,t){u.headers[t.toLowerCase()]=e,u.rawHeaders.push(t,e)})),o.writableStream){var c=new WritableStream({write:function(e){return a(!1),new Promise((function(t,r){u._destroyed?r():u.push(i.from(e))?t():u._resumeFetch=t}))},close:function(){a(!0),u._destroyed||u.push(null)},abort:function(e){a(!0),u._destroyed||u.emit("error",e)}});try{return void t.body.pipeTo(c).catch((function(e){a(!0),u._destroyed||u.emit("error",e)}))}catch(e){}}var f=t.body.getReader();!function e(){f.read().then((function(t){u._destroyed||(a(t.done),t.done?u.push(null):(u.push(i.from(t.value)),e()))})).catch((function(e){a(!0),u._destroyed||u.emit("error",e)}))}()}else if(u._xhr=e,u._pos=0,u.url=e.responseURL,u.statusCode=e.status,u.statusMessage=e.statusText,e.getAllResponseHeaders().split(/\r?\n/).forEach((function(e){var t=e.match(/^([^:]+):\s*(.*)/);if(t){var r=t[1].toLowerCase();"set-cookie"===r?(void 0===u.headers[r]&&(u.headers[r]=[]),u.headers[r].push(t[2])):void 0!==u.headers[r]?u.headers[r]+=", "+t[2]:u.headers[r]=t[2],u.rawHeaders.push(t[1],t[2])}})),u._charset="x-user-defined",!o.overrideMimeType){var l=u.rawHeaders["mime-type"];if(l){var d=l.match(/;\s*charset=([^;])(;|$)/);d&&(u._charset=d[1].toLowerCase())}u._charset||(u._charset="utf-8")}};a(c,s.Readable),c.prototype._read=function(){var e=this._resumeFetch;e&&(this._resumeFetch=null,e())},c.prototype._onXHRProgress=function(e){var t=this,n=t._xhr,o=null;switch(t._mode){case"text":if((o=n.responseText).length>t._pos){var a=o.substr(t._pos);if("x-user-defined"===t._charset){for(var s=i.alloc(a.length),c=0;c<a.length;c++)s[c]=255&a.charCodeAt(c);t.push(s)}else t.push(a,t._charset);t._pos=o.length}break;case"arraybuffer":if(n.readyState!==u.DONE||!n.response)break;o=n.response,t.push(i.from(new Uint8Array(o)));break;case"moz-chunked-arraybuffer":if(o=n.response,n.readyState!==u.LOADING||!o)break;t.push(i.from(new Uint8Array(o)));break;case"ms-stream":if(o=n.response,n.readyState!==u.LOADING)break;var f=new r.g.MSStreamReader;f.onprogress=function(){f.result.byteLength>t._pos&&(t.push(i.from(new Uint8Array(f.result.slice(t._pos)))),t._pos=f.result.byteLength)},f.onload=function(){e(!0),t.push(null)},f.readAsArrayBuffer(o)}t._xhr.readyState===u.DONE&&"ms-stream"!==t._mode&&(e(!0),t.push(null))}},18842:(e,t,r)=>{"use strict";var n=r(59105).Buffer,i=n.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function o(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(n.isEncoding===i||!i(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=u,this.end=c,t=4;break;case"utf8":this.fillLast=s,t=4;break;case"base64":this.text=f,this.end=l,t=3;break;default:return this.write=d,void(this.end=h)}this.lastNeed=0,this.lastTotal=0,this.lastChar=n.allocUnsafe(t)}function a(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function s(e){var t=this.lastTotal-this.lastNeed,r=function(e,t,r){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==r?r:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function u(e,t){if((e.length-t)%2==0){var r=e.toString("utf16le",t);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function c(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,r)}return t}function f(e,t){var r=(e.length-t)%3;return 0===r?e.toString("base64",t):(this.lastNeed=3-r,this.lastTotal=3,1===r?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-r))}function l(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function d(e){return e.toString(this.encoding)}function h(e){return e&&e.length?this.write(e):""}t.s=o,o.prototype.write=function(e){if(0===e.length)return"";var t,r;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r<e.length?t?t+this.text(e,r):this.text(e,r):t||""},o.prototype.end=function(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"�":t},o.prototype.text=function(e,t){var r=function(e,t,r){var n=t.length-1;if(n<r)return 0;var i=a(t[n]);return i>=0?(i>0&&(e.lastNeed=i-1),i):--n<r||-2===i?0:(i=a(t[n]))>=0?(i>0&&(e.lastNeed=i-2),i):--n<r||-2===i?0:(i=a(t[n]))>=0?(i>0&&(2===i?i=0:e.lastNeed=i-3),i):0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=r;var n=e.length-(r-this.lastNeed);return e.copy(this.lastChar,0,n),e.toString("utf8",t,n)},o.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},41058:(e,t,r)=>{var n=r(18390).Buffer;const i=r(10660),o=new(0,r(42870).ec)("secp256k1"),a=r(40382),s=n.alloc(32,0),u=n.from("fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141","hex"),c=n.from("fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f","hex"),f=o.curve.n,l=f.shrn(1),d=o.curve.g,h="Expected Private",p="Expected Point",y="Expected Tweak",g="Expected Hash";function b(e){return n.isBuffer(e)&&32===e.length}function m(e){return!!b(e)&&e.compare(u)<0}function v(e){if(!n.isBuffer(e))return!1;if(e.length<33)return!1;const t=e[0],r=e.slice(1,33);if(0===r.compare(s))return!1;if(r.compare(c)>=0)return!1;if((2===t||3===t)&&33===e.length){try{O(e)}catch(e){return!1}return!0}const i=e.slice(33);return 0!==i.compare(s)&&!(i.compare(c)>=0)&&4===t&&65===e.length}function w(e){return 4!==e[0]}function _(e){return!!b(e)&&e.compare(s)>0&&e.compare(u)<0}function E(e,t){return void 0===e&&void 0!==t?w(t):void 0===e||e}function S(e){return new i(e)}function A(e){return e.toArrayLike(n,"be",32)}function O(e){return o.curve.decodePoint(e)}function M(e,t){return n.from(e._encode(t))}function T(e,t,r){if(!b(e))throw new TypeError(g);if(!_(t))throw new TypeError(h);if(void 0!==r&&!b(r))throw new TypeError("Expected Extra Data (32 bytes)");const i=S(t),o=S(e);let s,u;a(e,t,(function(e){const t=S(e),r=d.mul(t);return!r.isInfinity()&&(s=r.x.umod(f),0!==s.isZero()&&(u=t.invm(f).mul(o.add(i.mul(s))).umod(f),0!==u.isZero()))}),_,r),u.cmp(l)>0&&(u=f.sub(u));const c=n.allocUnsafe(64);return A(s).copy(c,0),A(u).copy(c,32),c}e.exports={isPoint:v,isPointCompressed:function(e){return!!v(e)&&w(e)},isPrivate:_,pointAdd:function(e,t,r){if(!v(e))throw new TypeError(p);if(!v(t))throw new TypeError(p);const n=O(e),i=O(t),o=n.add(i);return o.isInfinity()?null:M(o,E(r,e))},pointAddScalar:function(e,t,r){if(!v(e))throw new TypeError(p);if(!m(t))throw new TypeError(y);const n=E(r,e),i=O(e);if(0===t.compare(s))return M(i,n);const o=S(t),a=d.mul(o),u=i.add(a);return u.isInfinity()?null:M(u,n)},pointCompress:function(e,t){if(!v(e))throw new TypeError(p);const r=O(e);if(r.isInfinity())throw new TypeError(p);return M(r,E(t,e))},pointFromScalar:function(e,t){if(!_(e))throw new TypeError(h);const r=S(e),n=d.mul(r);return n.isInfinity()?null:M(n,E(t))},pointMultiply:function(e,t,r){if(!v(e))throw new TypeError(p);if(!m(t))throw new TypeError(y);const n=E(r,e),i=O(e),o=S(t),a=i.mul(o);return a.isInfinity()?null:M(a,n)},privateAdd:function(e,t){if(!_(e))throw new TypeError(h);if(!m(t))throw new TypeError(y);const r=S(e),n=S(t),i=A(r.add(n).umod(f));return _(i)?i:null},privateSub:function(e,t){if(!_(e))throw new TypeError(h);if(!m(t))throw new TypeError(y);const r=S(e),n=S(t),i=A(r.sub(n).umod(f));return _(i)?i:null},sign:function(e,t){return T(e,t)},signWithEntropy:function(e,t,r){return T(e,t,r)},verify:function(e,t,r,i){if(!b(e))throw new TypeError(g);if(!v(t))throw new TypeError(p);if(!function(e){const t=e.slice(0,32),r=e.slice(32,64);return n.isBuffer(e)&&64===e.length&&t.compare(u)<0&&r.compare(u)<0}(r))throw new TypeError("Expected Signature");const o=O(t),a=S(r.slice(0,32)),s=S(r.slice(32,64));if(i&&s.cmp(l)>0)return!1;if(a.gtn(0)<=0)return!1;if(s.gtn(0)<=0)return!1;const c=S(e),h=s.invm(f),y=c.mul(h).umod(f),m=a.mul(h).umod(f),w=d.mulAdd(y,o,m);return!w.isInfinity()&&w.x.umod(f).eq(a)}}},40382:(e,t,r)=>{var n=r(18390).Buffer;const i=r(18451),o=n.alloc(1,1),a=n.alloc(1,0);e.exports=function(e,t,r,s,u){let c=n.alloc(32,0),f=n.alloc(32,1);c=i("sha256",c).update(f).update(a).update(t).update(e).update(u||"").digest(),f=i("sha256",c).update(f).digest(),c=i("sha256",c).update(f).update(o).update(t).update(e).update(u||"").digest(),f=i("sha256",c).update(f).digest(),f=i("sha256",c).update(f).digest();let l=f;for(;!s(l)||!r(l);)c=i("sha256",c).update(f).update(a).digest(),f=i("sha256",c).update(f).digest(),f=i("sha256",c).update(f).digest(),l=f;return l}},4367:(e,t,r)=>{var n=r(27400);function i(e){return e.name||e.toString().match(/function (.*?)\s*\(/)[1]}function o(e){return n.Nil(e)?"":i(e.constructor)}function a(e,t){Error.captureStackTrace&&Error.captureStackTrace(e,t)}function s(e){return n.Function(e)?e.toJSON?e.toJSON():i(e):n.Array(e)?"Array":e&&n.Object(e)?"Object":void 0!==e?e:""}function u(e,t,r){var i=function(e){return n.Function(e)?"":n.String(e)?JSON.stringify(e):e&&n.Object(e)?"":e}(t);return"Expected "+s(e)+", got"+(""!==r?" "+r:"")+(""!==i?" "+i:"")}function c(e,t,r){r=r||o(t),this.message=u(e,t,r),a(this,c),this.__type=e,this.__value=t,this.__valueTypeName=r}function f(e,t,r,n,i){e?(i=i||o(n),this.message=function(e,t,r,n,i){var o='" of type ';return"key"===t&&(o='" with key type '),u('property "'+s(r)+o+s(e),n,i)}(e,r,t,n,i)):this.message='Unexpected property "'+t+'"',a(this,c),this.__label=r,this.__property=t,this.__type=e,this.__value=n,this.__valueTypeName=i}c.prototype=Object.create(Error.prototype),c.prototype.constructor=c,f.prototype=Object.create(Error.prototype),f.prototype.constructor=c,e.exports={TfTypeError:c,TfPropertyTypeError:f,tfCustomError:function(e,t){return new c(e,{},t)},tfSubError:function(e,t,r){return e instanceof f?(t=t+"."+e.__property,e=new f(e.__type,t,e.__label,e.__value,e.__valueTypeName)):e instanceof c&&(e=new f(e.__type,t,r,e.__value,e.__valueTypeName)),a(e),e},tfJSON:s,getValueTypeName:o}},51566:(e,t,r)=>{var n=r(18390).Buffer,i=r(27400),o=r(4367);function a(e){return n.isBuffer(e)}function s(e){return"string"==typeof e&&/^([0-9a-f]{2})+$/i.test(e)}function u(e,t){var r=e.toJSON();function n(n){if(!e(n))return!1;if(n.length===t)return!0;throw o.tfCustomError(r+"(Length: "+t+")",r+"(Length: "+n.length+")")}return n.toJSON=function(){return r},n}var c=u.bind(null,i.Array),f=u.bind(null,a),l=u.bind(null,s),d=u.bind(null,i.String),h=Math.pow(2,53)-1,p={ArrayN:c,Buffer:a,BufferN:f,Finite:function(e){return"number"==typeof e&&isFinite(e)},Hex:s,HexN:l,Int8:function(e){return e<<24>>24===e},Int16:function(e){return e<<16>>16===e},Int32:function(e){return(0|e)===e},Int53:function(e){return"number"==typeof e&&e>=-h&&e<=h&&Math.floor(e)===e},Range:function(e,t,r){function n(n,i){return r(n,i)&&n>e&&n<t}return r=r||i.Number,n.toJSON=function(){return`${r.toJSON()} between [${e}, ${t}]`},n},StringN:d,UInt8:function(e){return(255&e)===e},UInt16:function(e){return(65535&e)===e},UInt32:function(e){return e>>>0===e},UInt53:function(e){return"number"==typeof e&&e>=0&&e<=h&&Math.floor(e)===e}};for(var y in p)p[y].toJSON=function(e){return e}.bind(null,y);e.exports=p},22420:(e,t,r)=>{var n=r(4367),i=r(27400),o=n.tfJSON,a=n.TfTypeError,s=n.TfPropertyTypeError,u=n.tfSubError,c=n.getValueTypeName,f={arrayOf:function(e,t){function r(r,n){return!!i.Array(r)&&!i.Nil(r)&&!(void 0!==t.minLength&&r.length<t.minLength)&&!(void 0!==t.maxLength&&r.length>t.maxLength)&&(void 0===t.length||r.length===t.length)&&r.every((function(t,r){try{return d(e,t,n)}catch(e){throw u(e,r)}}))}return e=l(e),t=t||{},r.toJSON=function(){var r="["+o(e)+"]";return void 0!==t.length?r+="{"+t.length+"}":void 0===t.minLength&&void 0===t.maxLength||(r+="{"+(void 0===t.minLength?0:t.minLength)+","+(void 0===t.maxLength?1/0:t.maxLength)+"}"),r},r},maybe:function e(t){function r(r,n){return i.Nil(r)||t(r,n,e)}return t=l(t),r.toJSON=function(){return"?"+o(t)},r},map:function(e,t){function r(r,n){if(!i.Object(r))return!1;if(i.Nil(r))return!1;for(var o in r){try{t&&d(t,o,n)}catch(e){throw u(e,o,"key")}try{var a=r[o];d(e,a,n)}catch(e){throw u(e,o)}}return!0}return e=l(e),t&&(t=l(t)),r.toJSON=t?function(){return"{"+o(t)+": "+o(e)+"}"}:function(){return"{"+o(e)+"}"},r},object:function(e){var t={};for(var r in e)t[r]=l(e[r]);function n(e,r){if(!i.Object(e))return!1;if(i.Nil(e))return!1;var n;try{for(n in t)d(t[n],e[n],r)}catch(e){throw u(e,n)}if(r)for(n in e)if(!t[n])throw new s(void 0,n);return!0}return n.toJSON=function(){return o(t)},n},anyOf:function(){var e=[].slice.call(arguments).map(l);function t(t,r){return e.some((function(e){try{return d(e,t,r)}catch(e){return!1}}))}return t.toJSON=function(){return e.map(o).join("|")},t},allOf:function(){var e=[].slice.call(arguments).map(l);function t(t,r){return e.every((function(e){try{return d(e,t,r)}catch(e){return!1}}))}return t.toJSON=function(){return e.map(o).join(" & ")},t},quacksLike:function(e){function t(t){return e===c(t)}return t.toJSON=function(){return e},t},tuple:function(){var e=[].slice.call(arguments).map(l);function t(t,r){return!i.Nil(t)&&!i.Nil(t.length)&&(!r||t.length===e.length)&&e.every((function(e,n){try{return d(e,t[n],r)}catch(e){throw u(e,n)}}))}return t.toJSON=function(){return"("+e.map(o).join(", ")+")"},t},value:function(e){function t(t){return t===e}return t.toJSON=function(){return e},t}};function l(e){if(i.String(e))return"?"===e[0]?f.maybe(e.slice(1)):i[e]||f.quacksLike(e);if(e&&i.Object(e)){if(i.Array(e)){if(1!==e.length)throw new TypeError("Expected compile() parameter of type Array of length 1");return f.arrayOf(e[0])}return f.object(e)}return i.Function(e)?e:f.value(e)}function d(e,t,r,n){if(i.Function(e)){if(e(t,r))return!0;throw new a(n||e,t)}return d(l(e),t,r)}for(var h in f.oneOf=f.anyOf,i)d[h]=i[h];for(h in f)d[h]=f[h];var p=r(51566);for(h in p)d[h]=p[h];d.compile=l,d.TfTypeError=a,d.TfPropertyTypeError=s,e.exports=d},27400:e=>{var t={Array:function(e){return null!=e&&e.constructor===Array},Boolean:function(e){return"boolean"==typeof e},Function:function(e){return"function"==typeof e},Nil:function(e){return null==e},Number:function(e){return"number"==typeof e},Object:function(e){return"object"==typeof e},String:function(e){return"string"==typeof e},"":function(){return!0}};for(var r in t.Null=t.Nil,t)t[r].toJSON=function(e){return e}.bind(null,r);e.exports=t},92761:function(e,t,r){var n;e=r.nmd(e),function(i){t&&t.nodeType,e&&e.nodeType;var o="object"==typeof r.g&&r.g;o.global!==o&&o.window!==o&&o.self;var a,s=2147483647,u=36,c=26,f=38,l=700,d=/^xn--/,h=/[^\x20-\x7E]/,p=/[\x2E\u3002\uFF0E\uFF61]/g,y={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},g=u-1,b=Math.floor,m=String.fromCharCode;function v(e){throw new RangeError(y[e])}function w(e,t){for(var r=e.length,n=[];r--;)n[r]=t(e[r]);return n}function _(e,t){var r=e.split("@"),n="";return r.length>1&&(n=r[0]+"@",e=r[1]),n+w((e=e.replace(p,".")).split("."),t).join(".")}function E(e){for(var t,r,n=[],i=0,o=e.length;i<o;)(t=e.charCodeAt(i++))>=55296&&t<=56319&&i<o?56320==(64512&(r=e.charCodeAt(i++)))?n.push(((1023&t)<<10)+(1023&r)+65536):(n.push(t),i--):n.push(t);return n}function S(e){return w(e,(function(e){var t="";return e>65535&&(t+=m((e-=65536)>>>10&1023|55296),e=56320|1023&e),t+m(e)})).join("")}function A(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function O(e,t,r){var n=0;for(e=r?b(e/l):e>>1,e+=b(e/t);e>g*c>>1;n+=u)e=b(e/g);return b(n+(g+1)*e/(e+f))}function M(e){var t,r,n,i,o,a,f,l,d,h,p,y=[],g=e.length,m=0,w=128,_=72;for((r=e.lastIndexOf("-"))<0&&(r=0),n=0;n<r;++n)e.charCodeAt(n)>=128&&v("not-basic"),y.push(e.charCodeAt(n));for(i=r>0?r+1:0;i<g;){for(o=m,a=1,f=u;i>=g&&v("invalid-input"),((l=(p=e.charCodeAt(i++))-48<10?p-22:p-65<26?p-65:p-97<26?p-97:u)>=u||l>b((s-m)/a))&&v("overflow"),m+=l*a,!(l<(d=f<=_?1:f>=_+c?c:f-_));f+=u)a>b(s/(h=u-d))&&v("overflow"),a*=h;_=O(m-o,t=y.length+1,0==o),b(m/t)>s-w&&v("overflow"),w+=b(m/t),m%=t,y.splice(m++,0,w)}return S(y)}function T(e){var t,r,n,i,o,a,f,l,d,h,p,y,g,w,_,S=[];for(y=(e=E(e)).length,t=128,r=0,o=72,a=0;a<y;++a)(p=e[a])<128&&S.push(m(p));for(n=i=S.length,i&&S.push("-");n<y;){for(f=s,a=0;a<y;++a)(p=e[a])>=t&&p<f&&(f=p);for(f-t>b((s-r)/(g=n+1))&&v("overflow"),r+=(f-t)*g,t=f,a=0;a<y;++a)if((p=e[a])<t&&++r>s&&v("overflow"),p==t){for(l=r,d=u;!(l<(h=d<=o?1:d>=o+c?c:d-o));d+=u)_=l-h,w=u-h,S.push(m(A(h+_%w,0))),l=b(_/w);S.push(m(A(l,0))),o=O(r,g,n==i),r=0,++n}++r,++t}return S.join("")}a={version:"1.4.1",ucs2:{decode:E,encode:S},decode:M,encode:T,toASCII:function(e){return _(e,(function(e){return h.test(e)?"xn--"+T(e):e}))},toUnicode:function(e){return _(e,(function(e){return d.test(e)?M(e.slice(4).toLowerCase()):e}))}},void 0===(n=function(){return a}.call(t,r,t,e))||(e.exports=n)}()},85192:(e,t,r)=>{"use strict";var n=r(92761);function i(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}var o=/^([a-z0-9.+-]+:)/i,a=/:[0-9]*$/,s=/^(\/\/?(?!\/)[^?\s]*)(\?[^\s]*)?$/,u=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),c=["'"].concat(u),f=["%","/","?",";","#"].concat(c),l=["/","?","#"],d=/^[+a-z0-9A-Z_-]{0,63}$/,h=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,p={javascript:!0,"javascript:":!0},y={javascript:!0,"javascript:":!0},g={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},b=r(88924);function m(e,t,r){if(e&&"object"==typeof e&&e instanceof i)return e;var n=new i;return n.parse(e,t,r),n}i.prototype.parse=function(e,t,r){if("string"!=typeof e)throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var i=e.indexOf("?"),a=-1!==i&&i<e.indexOf("#")?"?":"#",u=e.split(a);u[0]=u[0].replace(/\\/g,"/");var m=e=u.join(a);if(m=m.trim(),!r&&1===e.split("#").length){var v=s.exec(m);if(v)return this.path=m,this.href=m,this.pathname=v[1],v[2]?(this.search=v[2],this.query=t?b.parse(this.search.substr(1)):this.search.substr(1)):t&&(this.search="",this.query={}),this}var w=o.exec(m);if(w){var _=(w=w[0]).toLowerCase();this.protocol=_,m=m.substr(w.length)}if(r||w||m.match(/^\/\/[^@/]+@[^@/]+/)){var E="//"===m.substr(0,2);!E||w&&y[w]||(m=m.substr(2),this.slashes=!0)}if(!y[w]&&(E||w&&!g[w])){for(var S,A,O=-1,M=0;M<l.length;M++)-1!==(T=m.indexOf(l[M]))&&(-1===O||T<O)&&(O=T);for(-1!==(A=-1===O?m.lastIndexOf("@"):m.lastIndexOf("@",O))&&(S=m.slice(0,A),m=m.slice(A+1),this.auth=decodeURIComponent(S)),O=-1,M=0;M<f.length;M++){var T;-1!==(T=m.indexOf(f[M]))&&(-1===O||T<O)&&(O=T)}-1===O&&(O=m.length),this.host=m.slice(0,O),m=m.slice(O),this.parseHost(),this.hostname=this.hostname||"";var I="["===this.hostname[0]&&"]"===this.hostname[this.hostname.length-1];if(!I)for(var N=this.hostname.split(/\./),x=(M=0,N.length);M<x;M++){var L=N[M];if(L&&!L.match(d)){for(var k="",R=0,P=L.length;R<P;R++)L.charCodeAt(R)>127?k+="x":k+=L[R];if(!k.match(d)){var B=N.slice(0,M),D=N.slice(M+1),C=L.match(h);C&&(B.push(C[1]),D.unshift(C[2])),D.length&&(m="/"+D.join(".")+m),this.hostname=B.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),I||(this.hostname=n.toASCII(this.hostname));var j=this.port?":"+this.port:"",F=this.hostname||"";this.host=F+j,this.href+=this.host,I&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==m[0]&&(m="/"+m))}if(!p[_])for(M=0,x=c.length;M<x;M++){var U=c[M];if(-1!==m.indexOf(U)){var V=encodeURIComponent(U);V===U&&(V=escape(U)),m=m.split(U).join(V)}}var H=m.indexOf("#");-1!==H&&(this.hash=m.substr(H),m=m.slice(0,H));var z=m.indexOf("?");if(-1!==z?(this.search=m.substr(z),this.query=m.substr(z+1),t&&(this.query=b.parse(this.query)),m=m.slice(0,z)):t&&(this.search="",this.query={}),m&&(this.pathname=m),g[_]&&this.hostname&&!this.pathname&&(this.pathname="/"),this.pathname||this.search){j=this.pathname||"";var q=this.search||"";this.path=j+q}return this.href=this.format(),this},i.prototype.format=function(){var e=this.auth||"";e&&(e=(e=encodeURIComponent(e)).replace(/%3A/i,":"),e+="@");var t=this.protocol||"",r=this.pathname||"",n=this.hash||"",i=!1,o="";this.host?i=e+this.host:this.hostname&&(i=e+(-1===this.hostname.indexOf(":")?this.hostname:"["+this.hostname+"]"),this.port&&(i+=":"+this.port)),this.query&&"object"==typeof this.query&&Object.keys(this.query).length&&(o=b.stringify(this.query));var a=this.search||o&&"?"+o||"";return t&&":"!==t.substr(-1)&&(t+=":"),this.slashes||(!t||g[t])&&!1!==i?(i="//"+(i||""),r&&"/"!==r.charAt(0)&&(r="/"+r)):i||(i=""),n&&"#"!==n.charAt(0)&&(n="#"+n),a&&"?"!==a.charAt(0)&&(a="?"+a),t+i+(r=r.replace(/[?#]/g,(function(e){return encodeURIComponent(e)})))+(a=a.replace("#","%23"))+n},i.prototype.resolve=function(e){return this.resolveObject(m(e,!1,!0)).format()},i.prototype.resolveObject=function(e){if("string"==typeof e){var t=new i;t.parse(e,!1,!0),e=t}for(var r=new i,n=Object.keys(this),o=0;o<n.length;o++){var a=n[o];r[a]=this[a]}if(r.hash=e.hash,""===e.href)return r.href=r.format(),r;if(e.slashes&&!e.protocol){for(var s=Object.keys(e),u=0;u<s.length;u++){var c=s[u];"protocol"!==c&&(r[c]=e[c])}return g[r.protocol]&&r.hostname&&!r.pathname&&(r.pathname="/",r.path=r.pathname),r.href=r.format(),r}if(e.protocol&&e.protocol!==r.protocol){if(!g[e.protocol]){for(var f=Object.keys(e),l=0;l<f.length;l++){var d=f[l];r[d]=e[d]}return r.href=r.format(),r}if(r.protocol=e.protocol,e.host||y[e.protocol])r.pathname=e.pathname;else{for(var h=(e.pathname||"").split("/");h.length&&!(e.host=h.shift()););e.host||(e.host=""),e.hostname||(e.hostname=""),""!==h[0]&&h.unshift(""),h.length<2&&h.unshift(""),r.pathname=h.join("/")}if(r.search=e.search,r.query=e.query,r.host=e.host||"",r.auth=e.auth,r.hostname=e.hostname||e.host,r.port=e.port,r.pathname||r.search){var p=r.pathname||"",b=r.search||"";r.path=p+b}return r.slashes=r.slashes||e.slashes,r.href=r.format(),r}var m=r.pathname&&"/"===r.pathname.charAt(0),v=e.host||e.pathname&&"/"===e.pathname.charAt(0),w=v||m||r.host&&e.pathname,_=w,E=r.pathname&&r.pathname.split("/")||[],S=(h=e.pathname&&e.pathname.split("/")||[],r.protocol&&!g[r.protocol]);if(S&&(r.hostname="",r.port=null,r.host&&(""===E[0]?E[0]=r.host:E.unshift(r.host)),r.host="",e.protocol&&(e.hostname=null,e.port=null,e.host&&(""===h[0]?h[0]=e.host:h.unshift(e.host)),e.host=null),w=w&&(""===h[0]||""===E[0])),v)r.host=e.host||""===e.host?e.host:r.host,r.hostname=e.hostname||""===e.hostname?e.hostname:r.hostname,r.search=e.search,r.query=e.query,E=h;else if(h.length)E||(E=[]),E.pop(),E=E.concat(h),r.search=e.search,r.query=e.query;else if(null!=e.search)return S&&(r.host=E.shift(),r.hostname=r.host,(I=!!(r.host&&r.host.indexOf("@")>0)&&r.host.split("@"))&&(r.auth=I.shift(),r.hostname=I.shift(),r.host=r.hostname)),r.search=e.search,r.query=e.query,null===r.pathname&&null===r.search||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.href=r.format(),r;if(!E.length)return r.pathname=null,r.search?r.path="/"+r.search:r.path=null,r.href=r.format(),r;for(var A=E.slice(-1)[0],O=(r.host||e.host||E.length>1)&&("."===A||".."===A)||""===A,M=0,T=E.length;T>=0;T--)"."===(A=E[T])?E.splice(T,1):".."===A?(E.splice(T,1),M++):M&&(E.splice(T,1),M--);if(!w&&!_)for(;M--;M)E.unshift("..");!w||""===E[0]||E[0]&&"/"===E[0].charAt(0)||E.unshift(""),O&&"/"!==E.join("/").substr(-1)&&E.push("");var I,N=""===E[0]||E[0]&&"/"===E[0].charAt(0);return S&&(r.hostname=N?"":E.length?E.shift():"",r.host=r.hostname,(I=!!(r.host&&r.host.indexOf("@")>0)&&r.host.split("@"))&&(r.auth=I.shift(),r.hostname=I.shift(),r.host=r.hostname)),(w=w||r.host&&E.length)&&!N&&E.unshift(""),E.length>0?r.pathname=E.join("/"):(r.pathname=null,r.path=null),null===r.pathname&&null===r.search||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.auth=e.auth||r.auth,r.slashes=r.slashes||e.slashes,r.href=r.format(),r},i.prototype.parseHost=function(){var e=this.host,t=a.exec(e);t&&(":"!==(t=t[0])&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)},t.parse=m,t.resolve=function(e,t){return m(e,!1,!0).resolve(t)},t.resolveObject=function(e,t){return e?m(e,!1,!0).resolveObject(t):t},t.format=function(e){return"string"==typeof e&&(e=m(e)),e instanceof i?e.format():i.prototype.format.call(e)},t.Url=i},11741:(e,t,r)=>{function n(e){try{if(!r.g.localStorage)return!1}catch(e){return!1}var t=r.g.localStorage[e];return null!=t&&"true"===String(t).toLowerCase()}e.exports=function(e,t){if(n("noDeprecation"))return e;var r=!1;return function(){if(!r){if(n("throwDeprecation"))throw new Error(t);n("traceDeprecation")?console.trace(t):console.warn(t),r=!0}return e.apply(this,arguments)}}},31303:e=>{e.exports=function(e){return e&&"object"==typeof e&&"function"==typeof e.copy&&"function"==typeof e.fill&&"function"==typeof e.readUInt8}},92273:(e,t,r)=>{"use strict";var n=r(1025),i=r(99958),o=r(90194),a=r(44406);function s(e){return e.call.bind(e)}var u="undefined"!=typeof BigInt,c="undefined"!=typeof Symbol,f=s(Object.prototype.toString),l=s(Number.prototype.valueOf),d=s(String.prototype.valueOf),h=s(Boolean.prototype.valueOf);if(u)var p=s(BigInt.prototype.valueOf);if(c)var y=s(Symbol.prototype.valueOf);function g(e,t){if("object"!=typeof e)return!1;try{return t(e),!0}catch(e){return!1}}function b(e){return"[object Map]"===f(e)}function m(e){return"[object Set]"===f(e)}function v(e){return"[object WeakMap]"===f(e)}function w(e){return"[object WeakSet]"===f(e)}function _(e){return"[object ArrayBuffer]"===f(e)}function E(e){return"undefined"!=typeof ArrayBuffer&&(_.working?_(e):e instanceof ArrayBuffer)}function S(e){return"[object DataView]"===f(e)}function A(e){return"undefined"!=typeof DataView&&(S.working?S(e):e instanceof DataView)}t.isArgumentsObject=n,t.isGeneratorFunction=i,t.isTypedArray=a,t.isPromise=function(e){return"undefined"!=typeof Promise&&e instanceof Promise||null!==e&&"object"==typeof e&&"function"==typeof e.then&&"function"==typeof e.catch},t.isArrayBufferView=function(e){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):a(e)||A(e)},t.isUint8Array=function(e){return"Uint8Array"===o(e)},t.isUint8ClampedArray=function(e){return"Uint8ClampedArray"===o(e)},t.isUint16Array=function(e){return"Uint16Array"===o(e)},t.isUint32Array=function(e){return"Uint32Array"===o(e)},t.isInt8Array=function(e){return"Int8Array"===o(e)},t.isInt16Array=function(e){return"Int16Array"===o(e)},t.isInt32Array=function(e){return"Int32Array"===o(e)},t.isFloat32Array=function(e){return"Float32Array"===o(e)},t.isFloat64Array=function(e){return"Float64Array"===o(e)},t.isBigInt64Array=function(e){return"BigInt64Array"===o(e)},t.isBigUint64Array=function(e){return"BigUint64Array"===o(e)},b.working="undefined"!=typeof Map&&b(new Map),t.isMap=function(e){return"undefined"!=typeof Map&&(b.working?b(e):e instanceof Map)},m.working="undefined"!=typeof Set&&m(new Set),t.isSet=function(e){return"undefined"!=typeof Set&&(m.working?m(e):e instanceof Set)},v.working="undefined"!=typeof WeakMap&&v(new WeakMap),t.isWeakMap=function(e){return"undefined"!=typeof WeakMap&&(v.working?v(e):e instanceof WeakMap)},w.working="undefined"!=typeof WeakSet&&w(new WeakSet),t.isWeakSet=function(e){return w(e)},_.working="undefined"!=typeof ArrayBuffer&&_(new ArrayBuffer),t.isArrayBuffer=E,S.working="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView&&S(new DataView(new ArrayBuffer(1),0,1)),t.isDataView=A;var O="undefined"!=typeof SharedArrayBuffer?SharedArrayBuffer:void 0;function M(e){return"[object SharedArrayBuffer]"===f(e)}function T(e){return void 0!==O&&(void 0===M.working&&(M.working=M(new O)),M.working?M(e):e instanceof O)}function I(e){return g(e,l)}function N(e){return g(e,d)}function x(e){return g(e,h)}function L(e){return u&&g(e,p)}function k(e){return c&&g(e,y)}t.isSharedArrayBuffer=T,t.isAsyncFunction=function(e){return"[object AsyncFunction]"===f(e)},t.isMapIterator=function(e){return"[object Map Iterator]"===f(e)},t.isSetIterator=function(e){return"[object Set Iterator]"===f(e)},t.isGeneratorObject=function(e){return"[object Generator]"===f(e)},t.isWebAssemblyCompiledModule=function(e){return"[object WebAssembly.Module]"===f(e)},t.isNumberObject=I,t.isStringObject=N,t.isBooleanObject=x,t.isBigIntObject=L,t.isSymbolObject=k,t.isBoxedPrimitive=function(e){return I(e)||N(e)||x(e)||L(e)||k(e)},t.isAnyArrayBuffer=function(e){return"undefined"!=typeof Uint8Array&&(E(e)||T(e))},["isProxy","isExternal","isModuleNamespaceObject"].forEach((function(e){Object.defineProperty(t,e,{enumerable:!1,value:function(){throw new Error(e+" is not supported in userland")}})}))},75786:(e,t,r)=>{var n=r(48494),i=Object.getOwnPropertyDescriptors||function(e){for(var t=Object.keys(e),r={},n=0;n<t.length;n++)r[t[n]]=Object.getOwnPropertyDescriptor(e,t[n]);return r},o=/%[sdj%]/g;t.format=function(e){if(!v(e)){for(var t=[],r=0;r<arguments.length;r++)t.push(c(arguments[r]));return t.join(" ")}r=1;for(var n=arguments,i=n.length,a=String(e).replace(o,(function(e){if("%%"===e)return"%";if(r>=i)return e;switch(e){case"%s":return String(n[r++]);case"%d":return Number(n[r++]);case"%j":try{return JSON.stringify(n[r++])}catch(e){return"[Circular]"}default:return e}})),s=n[r];r<i;s=n[++r])b(s)||!E(s)?a+=" "+s:a+=" "+c(s);return a},t.deprecate=function(e,r){if(void 0!==n&&!0===n.noDeprecation)return e;if(void 0===n)return function(){return t.deprecate(e,r).apply(this,arguments)};var i=!1;return function(){if(!i){if(n.throwDeprecation)throw new Error(r);n.traceDeprecation?console.trace(r):console.error(r),i=!0}return e.apply(this,arguments)}};var a={},s=/^$/;if(n.env.NODE_DEBUG){var u=n.env.NODE_DEBUG;u=u.replace(/[|\\{}()[\]^$+?.]/g,"\\$&").replace(/\*/g,".*").replace(/,/g,"$|^").toUpperCase(),s=new RegExp("^"+u+"$","i")}function c(e,r){var n={seen:[],stylize:l};return arguments.length>=3&&(n.depth=arguments[2]),arguments.length>=4&&(n.colors=arguments[3]),g(r)?n.showHidden=r:r&&t._extend(n,r),w(n.showHidden)&&(n.showHidden=!1),w(n.depth)&&(n.depth=2),w(n.colors)&&(n.colors=!1),w(n.customInspect)&&(n.customInspect=!0),n.colors&&(n.stylize=f),d(n,e,n.depth)}function f(e,t){var r=c.styles[t];return r?"["+c.colors[r][0]+"m"+e+"["+c.colors[r][1]+"m":e}function l(e,t){return e}function d(e,r,n){if(e.customInspect&&r&&O(r.inspect)&&r.inspect!==t.inspect&&(!r.constructor||r.constructor.prototype!==r)){var i=r.inspect(n,e);return v(i)||(i=d(e,i,n)),i}var o=function(e,t){if(w(t))return e.stylize("undefined","undefined");if(v(t)){var r="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(r,"string")}return m(t)?e.stylize(""+t,"number"):g(t)?e.stylize(""+t,"boolean"):b(t)?e.stylize("null","null"):void 0}(e,r);if(o)return o;var a=Object.keys(r),s=function(e){var t={};return e.forEach((function(e,r){t[e]=!0})),t}(a);if(e.showHidden&&(a=Object.getOwnPropertyNames(r)),A(r)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return h(r);if(0===a.length){if(O(r)){var u=r.name?": "+r.name:"";return e.stylize("[Function"+u+"]","special")}if(_(r))return e.stylize(RegExp.prototype.toString.call(r),"regexp");if(S(r))return e.stylize(Date.prototype.toString.call(r),"date");if(A(r))return h(r)}var c,f="",l=!1,E=["{","}"];return y(r)&&(l=!0,E=["[","]"]),O(r)&&(f=" [Function"+(r.name?": "+r.name:"")+"]"),_(r)&&(f=" "+RegExp.prototype.toString.call(r)),S(r)&&(f=" "+Date.prototype.toUTCString.call(r)),A(r)&&(f=" "+h(r)),0!==a.length||l&&0!=r.length?n<0?_(r)?e.stylize(RegExp.prototype.toString.call(r),"regexp"):e.stylize("[Object]","special"):(e.seen.push(r),c=l?function(e,t,r,n,i){for(var o=[],a=0,s=t.length;a<s;++a)N(t,String(a))?o.push(p(e,t,r,n,String(a),!0)):o.push("");return i.forEach((function(i){i.match(/^\d+$/)||o.push(p(e,t,r,n,i,!0))})),o}(e,r,n,s,a):a.map((function(t){return p(e,r,n,s,t,l)})),e.seen.pop(),function(e,t,r){return e.reduce((function(e,t){return t.indexOf("\n"),e+t.replace(/\u001b\[\d\d?m/g,"").length+1}),0)>60?r[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+r[1]:r[0]+t+" "+e.join(", ")+" "+r[1]}(c,f,E)):E[0]+f+E[1]}function h(e){return"["+Error.prototype.toString.call(e)+"]"}function p(e,t,r,n,i,o){var a,s,u;if((u=Object.getOwnPropertyDescriptor(t,i)||{value:t[i]}).get?s=u.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):u.set&&(s=e.stylize("[Setter]","special")),N(n,i)||(a="["+i+"]"),s||(e.seen.indexOf(u.value)<0?(s=b(r)?d(e,u.value,null):d(e,u.value,r-1)).indexOf("\n")>-1&&(s=o?s.split("\n").map((function(e){return" "+e})).join("\n").slice(2):"\n"+s.split("\n").map((function(e){return" "+e})).join("\n")):s=e.stylize("[Circular]","special")),w(a)){if(o&&i.match(/^\d+$/))return s;(a=JSON.stringify(""+i)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.slice(1,-1),a=e.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=e.stylize(a,"string"))}return a+": "+s}function y(e){return Array.isArray(e)}function g(e){return"boolean"==typeof e}function b(e){return null===e}function m(e){return"number"==typeof e}function v(e){return"string"==typeof e}function w(e){return void 0===e}function _(e){return E(e)&&"[object RegExp]"===M(e)}function E(e){return"object"==typeof e&&null!==e}function S(e){return E(e)&&"[object Date]"===M(e)}function A(e){return E(e)&&("[object Error]"===M(e)||e instanceof Error)}function O(e){return"function"==typeof e}function M(e){return Object.prototype.toString.call(e)}function T(e){return e<10?"0"+e.toString(10):e.toString(10)}t.debuglog=function(e){if(e=e.toUpperCase(),!a[e])if(s.test(e)){var r=n.pid;a[e]=function(){var n=t.format.apply(t,arguments);console.error("%s %d: %s",e,r,n)}}else a[e]=function(){};return a[e]},t.inspect=c,c.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},c.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.types=r(92273),t.isArray=y,t.isBoolean=g,t.isNull=b,t.isNullOrUndefined=function(e){return null==e},t.isNumber=m,t.isString=v,t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=w,t.isRegExp=_,t.types.isRegExp=_,t.isObject=E,t.isDate=S,t.types.isDate=S,t.isError=A,t.types.isNativeError=A,t.isFunction=O,t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=r(31303);var I=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function N(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){var e,r;console.log("%s - %s",(r=[T((e=new Date).getHours()),T(e.getMinutes()),T(e.getSeconds())].join(":"),[e.getDate(),I[e.getMonth()],r].join(" ")),t.format.apply(t,arguments))},t.inherits=r(19105),t._extend=function(e,t){if(!t||!E(t))return e;for(var r=Object.keys(t),n=r.length;n--;)e[r[n]]=t[r[n]];return e};var x="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function L(e,t){if(!e){var r=new Error("Promise was rejected with a falsy value");r.reason=e,e=r}return t(e)}t.promisify=function(e){if("function"!=typeof e)throw new TypeError('The "original" argument must be of type Function');if(x&&e[x]){var t;if("function"!=typeof(t=e[x]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(t,x,{value:t,enumerable:!1,writable:!1,configurable:!0}),t}function t(){for(var t,r,n=new Promise((function(e,n){t=e,r=n})),i=[],o=0;o<arguments.length;o++)i.push(arguments[o]);i.push((function(e,n){e?r(e):t(n)}));try{e.apply(this,i)}catch(e){r(e)}return n}return Object.setPrototypeOf(t,Object.getPrototypeOf(e)),x&&Object.defineProperty(t,x,{value:t,enumerable:!1,writable:!1,configurable:!0}),Object.defineProperties(t,i(e))},t.promisify.custom=x,t.callbackify=function(e){if("function"!=typeof e)throw new TypeError('The "original" argument must be of type Function');function t(){for(var t=[],r=0;r<arguments.length;r++)t.push(arguments[r]);var i=t.pop();if("function"!=typeof i)throw new TypeError("The last argument must be of type Function");var o=this,a=function(){return i.apply(o,arguments)};e.apply(this,t).then((function(e){n.nextTick(a.bind(null,null,e))}),(function(e){n.nextTick(L.bind(null,e,a))}))}return Object.setPrototypeOf(t,Object.getPrototypeOf(e)),Object.defineProperties(t,i(e)),t}},90194:(e,t,r)=>{"use strict";var n=r(15583),i=r(74546),o=r(34537),a=r(558),s=o("Object.prototype.toString"),u=r(16697)(),c="undefined"==typeof globalThis?r.g:globalThis,f=i(),l=o("String.prototype.slice"),d={},h=Object.getPrototypeOf;u&&a&&h&&n(f,(function(e){if("function"==typeof c[e]){var t=new c[e];if(Symbol.toStringTag in t){var r=h(t),n=a(r,Symbol.toStringTag);if(!n){var i=h(r);n=a(i,Symbol.toStringTag)}d[e]=n.get}}}));var p=r(44406);e.exports=function(e){return!!p(e)&&(u&&Symbol.toStringTag in e?function(e){var t=!1;return n(d,(function(r,n){if(!t)try{var i=r.call(e);i===n&&(t=i)}catch(e){}})),t}(e):l(s(e),8,-1))}},71150:(e,t,r)=>{var n=r(18390).Buffer,i=r(84948);function o(e,t){if(void 0!==t&&e[0]!==t)throw new Error("Invalid network version");if(33===e.length)return{version:e[0],privateKey:e.slice(1,33),compressed:!1};if(34!==e.length)throw new Error("Invalid WIF length");if(1!==e[33])throw new Error("Invalid compression flag");return{version:e[0],privateKey:e.slice(1,33),compressed:!0}}function a(e,t,r){var i=new n(r?34:33);return i.writeUInt8(e,0),t.copy(i,1),r&&(i[33]=1),i}e.exports={decode:function(e,t){return o(i.decode(e),t)},decodeRaw:o,encode:function(e,t,r){return"number"==typeof e?i.encode(a(e,t,r)):i.encode(a(e.version,e.privateKey,e.compressed))},encodeRaw:a}},48056:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t},a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Utils=t.Account=void 0;var s=o(r(80046));t.Utils=s;var u=a(r(29129));t.Account=u.default},29129:function(e,t,r){"use strict";var n=r(18390).Buffer,i=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return o(t,e),t},s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var u=s(r(32037)),c=a(r(43004)),f=a(r(80046)),l=function(){function e(e){var t=this;this.account={familySeed:"",address:"",keypair:{publicKey:"",privateKey:""}},"string"==typeof e?this.secret=f.parseSecretString(e):Array.isArray(e)?this.secret=e:n.isBuffer(e)?this.secret=f.entropyToSecret(e):this.secret=f.randomSecret(),u.default.strictEqual(t.secret.length,8),t.secret.forEach((function(e,t){u.default.strictEqual(e.length,6)})),function(){try{var e=f.secretToEntropy(t.secret);t.account.familySeed=c.generateSeed({entropy:e}),t.account.keypair=c.deriveKeypair(t.account.familySeed),t.account.address=c.deriveAddress(t.account.keypair.publicKey)}catch(e){throw e.message}}()}return e.prototype.getSecret=function(){return this.secret},e.prototype.getSecretString=function(){return this.secret.join(" ")},e.prototype.getAddress=function(){return this.account.address},e.prototype.getFamilySeed=function(){return this.account.familySeed},e.prototype.getKeypair=function(){return this.account.keypair},e.prototype.toString=function(){return this.getSecretString()},e}();t.default=l},80046:function(e,t,r){"use strict";var n=r(18390).Buffer,i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.parseSecretString=t.checkChecksum=t.calculateChecksum=t.secretToEntropy=t.entropyToSecret=t.randomSecret=t.randomEntropy=void 0;var o=i(r(32037)),a=i(r(72486));function s(){return n.from(a.default(16))}function u(e,t){return t*(2*e+1)%9}function c(e,t,r){return"string"==typeof t&&(o.default.strictEqual(t.length,6),r=parseInt(t.slice(5),10),t=parseInt(t.slice(0,5),10)),t*(2*e+1)%9===r}function f(e){var t=Array(Math.ceil(e.length/2)),r=Array.apply(null,t).map((function(t,r){return e.slice(2*r,2*++r)})).map((function(e,t){var r=parseInt(e.toString("hex"),16);return"0".repeat(5-String(r).length)+String(r)+String(u(t,r))}));return o.default.equal(r.length,8),r}t.randomEntropy=s,t.calculateChecksum=u,t.checkChecksum=c,t.entropyToSecret=f,t.randomSecret=function(){return f(s())},t.secretToEntropy=function(e){return n.concat(e.map((function(e,t){var r=Number(e.slice(0,5)),i=Number(e.slice(5));try{o.default.strictEqual(e.length,6)}catch(e){throw new Error("Invalid secret: number invalid")}try{o.default.strictEqual(c(t,r,i),!0)}catch(e){throw new Error("Invalid secret part: checksum invalid")}var a=("0000"+r.toString(16)).slice(-4);return n.from(a,"hex")})))},t.parseSecretString=function(e){if(48!==(e=e.replace(/[^0-9]/g,"")).length)throw new Error("Invalid secret string (should contain 8 blocks of 6 digits");return Array.apply(null,Array(8)).map((function(t,r){return e.slice(6*r,6*(r+1))}))}},90139:e=>{e.exports=function(){for(var e={},r=0;r<arguments.length;r++){var n=arguments[r];for(var i in n)t.call(n,i)&&(e[i]=n[i])}return e};var t=Object.prototype.hasOwnProperty},8831:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.ed25519="ed25519",e.secp256k1="ecdsa-secp256k1"}(r||(r={})),t.default=r},14343:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getDefaultFaucetPath=t.getFaucetHost=t.FaucetNetworkPaths=t.FaucetNetwork=void 0;const n=r(74337);var i;!function(e){e.Testnet="faucet.altnet.rippletest.net",e.Devnet="faucet.devnet.rippletest.net",e.AMMDevnet="ammfaucet.devnet.rippletest.net",e.HooksV3Testnet="hooks-testnet-v3.xrpl-labs.com",e.SidechainDevnet="sidechain-faucet.devnet.rippletest.net"}(i=t.FaucetNetwork||(t.FaucetNetwork={})),t.FaucetNetworkPaths={[i.Testnet]:"/accounts",[i.Devnet]:"/accounts",[i.AMMDevnet]:"/accounts",[i.HooksV3Testnet]:"/accounts",[i.SidechainDevnet]:"/accounts"},t.getFaucetHost=function(e){const t=e.url;if(t.includes("hooks-testnet-v3"))return i.HooksV3Testnet;if(t.includes("altnet")||t.includes("testnet"))return i.Testnet;if(t.includes("amm"))return i.AMMDevnet;if(t.includes("sidechain-net1"))return i.SidechainDevnet;if(t.includes("sidechain-net2"))throw new n.XRPLFaucetError("Cannot fund an account on an issuing chain. Accounts must be created via the bridge.");if(t.includes("devnet"))return i.Devnet;throw new n.XRPLFaucetError("Faucet URL is not defined or inferrable.")},t.getDefaultFaucetPath=function(e){return void 0===e?"/accounts":t.FaucetNetworkPaths[e]||"/accounts"}},1222:function(e,t,r){"use strict";var n=r(18390).Buffer,i=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,o){function a(e){try{u(n.next(e))}catch(e){o(e)}}function s(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,s)}u((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0});const o=r(41178),a=r(79798),s=r(74337),u=r(14343),c=r(52211);function f(e,t,r){return i(this,void 0,void 0,(function*(){return new Promise(((n,o)=>{let a=20;const u=setInterval((()=>i(this,void 0,void 0,(function*(){a<0?(clearInterval(u),n(r)):a-=1;try{let i;try{i=Number(yield e.getXrpBalance(t))}catch(e){}i>r&&(clearInterval(u),n(i))}catch(e){clearInterval(u),e instanceof Error&&o(new s.XRPLFaucetError(`Unable to check if the address ${t} balance has increased. Error: ${e.message}`)),o(e)}}))),1e3)}))}))}t.default=function(e,t){return i(this,void 0,void 0,(function*(){if(!this.isConnected())throw new s.RippledError("Client not connected, cannot call faucet");const r=e&&(0,a.isValidClassicAddress)(e.classicAddress)?e:c.Wallet.generate(),l=n.from((new TextEncoder).encode(JSON.stringify({destination:r.classicAddress,xrpAmount:null==t?void 0:t.amount,userAgent:"xrpl.js",usageContext:null==t?void 0:t.usageContext})));let d=0;try{d=Number(yield this.getXrpBalance(r.classicAddress))}catch(e){}const h=function(e,t,r){var n,i;const o=null!==(n=null==r?void 0:r.hostname)&&void 0!==n?n:(0,u.getFaucetHost)(e);return{hostname:o,port:443,path:null!==(i=null==r?void 0:r.pathname)&&void 0!==i?i:(0,u.getDefaultFaucetPath)(o),method:"POST",headers:{"Content-Type":"application/json","Content-Length":t.length}}}(this,l,{hostname:null==t?void 0:t.faucetHost,pathname:null==t?void 0:t.faucetPath});return function(e,t,r,a,u){return i(this,void 0,void 0,(function*(){return new Promise(((c,l)=>{const d=(0,o.request)(e,(e=>{const o=[];e.on("data",(e=>o.push(e))),e.on("end",(()=>i(this,void 0,void 0,(function*(){return function(e,t,r,o,a,u,c){var l;return i(this,void 0,void 0,(function*(){const d=n.concat(t).toString();if(null===(l=e.headers["content-type"])||void 0===l?void 0:l.startsWith("application/json")){const e=JSON.parse(d).account.classicAddress;yield function(e,t,r,n,o,a){return i(this,void 0,void 0,(function*(){if(t)try{(yield f(e,t,n))>n?o({wallet:r,balance:yield f(e,r.classicAddress,n)}):a(new s.XRPLFaucetError("Unable to fund address with faucet after waiting 20 seconds"))}catch(e){e instanceof Error&&a(new s.XRPLFaucetError(e.message)),a(e)}else a(new s.XRPLFaucetError("The faucet account is undefined"))}))}(r,e,a,o,u,c)}else c(new s.XRPLFaucetError(`Content type is not \`application/json\`: ${JSON.stringify({statusCode:e.statusCode,contentType:e.headers["content-type"],body:d})}`))}))}(e,o,t,r,a,c,l)}))))}));d.write(u),d.on("error",(e=>{l(e)})),d.end()}))}))}(h,this,d,r,l)}))}},52211:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Wallet=void 0;const i=n(r(83753)),o=r(84973),a=r(63399),s=n(r(27629)),u=r(79798),c=r(79056),f=r(43004),l=n(r(8831)),d=r(74337),h=r(9879),p=r(21796),y=r(62061),g=r(15567),b=l.default.ed25519;function m(e){return e.toString("hex").toUpperCase()}class v{constructor(e,t,r={}){this.publicKey=e,this.privateKey=t,this.classicAddress=r.masterAddress?(0,p.ensureClassicAddress)(r.masterAddress):(0,f.deriveAddress)(e),this.seed=r.seed}get address(){return this.classicAddress}static generate(e=b){if(!Object.values(l.default).includes(e))throw new d.ValidationError("Invalid cryptographic signing algorithm");const t=(0,f.generateSeed)({algorithm:e});return v.fromSeed(t)}static fromSeed(e,t={}){return v.deriveWallet(e,{algorithm:t.algorithm,masterAddress:t.masterAddress})}static fromEntropy(e,t={}){var r;const n=null!==(r=t.algorithm)&&void 0!==r?r:b,i={entropy:Uint8Array.from(e),algorithm:n},o=(0,f.generateSeed)(i);return v.deriveWallet(o,{algorithm:n,masterAddress:t.masterAddress})}static fromMnemonic(e,t={}){var r;if("rfc1751"===t.mnemonicEncoding)return v.fromRFC1751Mnemonic(e,{masterAddress:t.masterAddress,algorithm:t.algorithm});if(!(0,a.validateMnemonic)(e))throw new d.ValidationError("Unable to parse the given mnemonic using bip39 encoding");const n=(0,a.mnemonicToSeedSync)(e),i=(0,o.fromSeed)(n).derivePath(null!==(r=t.derivationPath)&&void 0!==r?r:"m/44'/144'/0'/0/0");if(void 0===i.privateKey)throw new d.ValidationError("Unable to derive privateKey from mnemonic input");const s=m(i.publicKey),u=m(i.privateKey);return new v(s,`00${u}`,{masterAddress:t.masterAddress})}static fromRFC1751Mnemonic(e,t){const r=(0,g.rfc1751MnemonicToKey)(e);let n;n=t.algorithm===l.default.ed25519?"ed25519":"secp256k1";const i=(0,u.encodeSeed)(r,n);return v.fromSeed(i,{masterAddress:t.masterAddress,algorithm:t.algorithm})}static deriveWallet(e,t={}){var r;const{publicKey:n,privateKey:i}=(0,f.deriveKeypair)(e,{algorithm:null!==(r=t.algorithm)&&void 0!==r?r:b});return new v(n,i,{seed:e,masterAddress:t.masterAddress})}sign(e,t){let r=!1;"string"==typeof t&&t.startsWith("X")?r=t:t&&(r=this.classicAddress);const n=(0,s.default)(Object.assign({},e),(e=>null==e));if(n.TxnSignature||n.Signers)throw new d.ValidationError('txJSON must not contain "TxnSignature" or "Signers" properties');!function(e){"Payment"===e.TransactionType&&"string"!=typeof e.Amount&&e.Amount.value.includes(".")&&e.Amount.value.endsWith("0")&&(e.Amount=Object.assign({},e.Amount),e.Amount.value=new i.default(e.Amount.value).toString())}(n),(0,h.validate)(n);const o=Object.assign({},n);if(o.SigningPubKey=r?"":this.publicKey,r){const e={Account:r,SigningPubKey:this.publicKey,TxnSignature:w(o,this.privateKey,r)};o.Signers=[{Signer:e}]}else o.TxnSignature=w(o,this.privateKey);const a=(0,c.encode)(o);return{tx_blob:a,hash:(0,y.hashSignedTx)(a)}}verifyTransaction(e){const t="string"==typeof e?(0,c.decode)(e):e,r=(0,c.encodeForSigning)(t),n=t.TxnSignature;return(0,f.verify)(r,n,this.publicKey)}getXAddress(e=!1,t=!1){return(0,u.classicAddressToXAddress)(this.classicAddress,e,t)}}function w(e,t,r){if(r){const n=(0,u.isValidXAddress)(r)?(0,u.xAddressToClassicAddress)(r).classicAddress:r;return(0,f.sign)((0,c.encodeForMultisigning)(e,n),t)}return(0,f.sign)((0,c.encodeForSigning)(e),t)}t.Wallet=v,v.fromSecret=v.fromSeed},15567:function(e,t,r){"use strict";var n=r(18390).Buffer,i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.keyToRFC1751Mnemonic=t.rfc1751MnemonicToKey=void 0;const o=i(r(51944)).default,a=["0000","0001","0010","0011","0100","0101","0110","0111","1000","1001","1010","1011","1100","1101","1110","1111"];function s(e){let t="";for(const r of e)t+=a[r>>4]+a[15&r];return t}function u(e,t,r){const n=e.substring(t,t+r);let i=0;for(let e=0;e<n.length;e++)i=2*i+n.charCodeAt(e)-48;return i}function c(e,t){const r=e.slice(t,t+6);let n=0;const i=[0,0,0,0,0,0,0,0,0];let a="";for(a of r){const e=o.indexOf(a.toUpperCase());if(-1===e)throw new TypeError(`Expected an RFC1751 word, but received '${a}'. For the full list of words in the RFC1751 encoding see https://datatracker.ietf.org/doc/html/rfc1751`);const t=(8-(n+11)%8)%8,r=e<<t,s=r>>16,u=r>>8&255,c=255&r,f=Math.floor(n/8);t>5?(i[f]|=s,i[f+1]|=u,i[f+2]|=c):t>-3?(i[f]|=u,i[f+1]|=c):i[f]|=c,n+=11}return{subKey:i.slice(),word:a}}function f(e){const t=e.swap64();return n.concat([t.slice(8,16),t.slice(0,8)],16)}t.keyToRFC1751Mnemonic=function(e){let t=(r=f(n.from(e.replace(/\s+/gu,""),"hex")),Array.prototype.slice.call(r));var r;const i=[];for(let e=0;e<(8-t.length%8)%8;e++)i.push(0);t=i.concat(t);const a=[];for(let e=0;e<t.length;e+=8){const r=t.slice(e,e+8);let n=s(r),i=0;for(let e=0;e<64;e+=2)i+=u(n,e,2);r.push(i<<6&255),n=s(r);for(let e=0;e<64;e+=11)a.push(o[u(n,e,11)])}return a.join(" ")},t.rfc1751MnemonicToKey=function(e){const t=e.split(" ");let r=[];for(let e=0;e<t.length;e+=6){const{subKey:n,word:i}=c(t,e),o=s(n);let a=0;for(let e=0;e<64;e+=2)a+=u(o,e,2);if(u(o,64,2)!==(3&a))throw new Error(`Parity error at ${i}`);r=r.concat(n.slice(0,8))}return f(n.from(r))}},29421:(e,t,r)=>{"use strict";var n=r(18390).Buffer;Object.defineProperty(t,"__esModule",{value:!0}),t.multisign=t.verifySignature=t.authorizeChannel=void 0;const i=r(83753),o=r(40180),a=r(79798),s=r(79056),u=r(43004),c=r(74337),f=r(9879);function l(e,t){return h(e.Signer.Account).comparedTo(h(t.Signer.Account))}t.multisign=function(e){if(0===e.length)throw new c.ValidationError("There were 0 transactions to multisign");const t=e.map((e=>p(e)));return t.forEach((e=>{if((0,f.validate)(e),null==e.Signers||0===e.Signers.length)throw new c.ValidationError("For multisigning all transactions must include a Signers field containing an array of signatures. You may have forgotten to pass the 'forMultisign' parameter when signing.");if(""!==e.SigningPubKey)throw new c.ValidationError("SigningPubKey must be an empty string for all transactions when multisigning.")})),function(e){const t=JSON.stringify(Object.assign(Object.assign({},e[0]),{Signers:null}));if(e.slice(1).some((e=>JSON.stringify(Object.assign(Object.assign({},e),{Signers:null}))!==t)))throw new c.ValidationError("txJSON is not the same for all signedTransactions")}(t),(0,s.encode)(function(e){const t=(0,o.flatMap)(e,(e=>{var t;return null!==(t=e.Signers)&&void 0!==t?t:[]})).sort(l);return Object.assign(Object.assign({},e[0]),{Signers:t})}(t))},t.authorizeChannel=function(e,t,r){const n=(0,s.encodeForSigningClaim)({channel:t,amount:r});return(0,u.sign)(n,e.privateKey)},t.verifySignature=function(e){const t=p(e);return(0,u.verify)((0,s.encodeForSigning)(t),t.TxnSignature,t.SigningPubKey)};const d=16;function h(e){const t=n.from((0,a.decodeAccountID)(e)).toString("hex");return new i.BigNumber(t,d)}function p(e){return"object"==typeof e?(0,s.decode)((0,s.encode)(e)):(0,s.decode)(e)}},71402:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.walletFromSecretNumbers=void 0;const i=r(48056),o=n(r(8831)),a=r(52211);t.walletFromSecretNumbers=function(e,t){var r;const n=new i.Account(e).getFamilySeed(),s={masterAddress:void 0,algorithm:void 0};return void 0===t?s.algorithm=o.default.secp256k1:(s.masterAddress=t.masterAddress,s.algorithm=null!==(r=t.algorithm)&&void 0!==r?r:o.default.secp256k1),a.Wallet.fromSecret(n,s)}},89289:function(e,t,r){"use strict";var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,o){function a(e){try{u(n.next(e))}catch(e){o(e)}}function s(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,s)}u((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.BroadcastClient=void 0;const i=r(44278);class o extends i.Client{constructor(e,t={}){super(e[0],t);const r=e.map((e=>new i.Client(e,t)));this.clients=r,this.getMethodNames().forEach((e=>{this[e]=(...t)=>n(this,void 0,void 0,(function*(){return Promise.race(r.map((r=>n(this,void 0,void 0,(function*(){return r[e](...t)})))))}))})),this.connect=()=>n(this,void 0,void 0,(function*(){yield Promise.all(r.map((e=>n(this,void 0,void 0,(function*(){return e.connect()})))))})),this.disconnect=()=>n(this,void 0,void 0,(function*(){yield Promise.all(r.map((e=>n(this,void 0,void 0,(function*(){return e.disconnect()})))))})),this.isConnected=()=>r.map((e=>e.isConnected())).every(Boolean),r.forEach((e=>{e.on("error",((e,t,r)=>this.emit("error",e,t,r)))}))}getMethodNames(){const e=[],t=this.clients[0],r=Object.getOwnPropertyNames(t);r.push(...Object.getOwnPropertyNames(Object.getPrototypeOf(t)));for(const n of r)"function"==typeof t[n]&&"constructor"!==n&&"on"!==n&&e.push(n);return e}}t.BroadcastClient=o},76808:function(e,t){"use strict";var r=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,o){function a(e){try{u(n.next(e))}catch(e){o(e)}}function s(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,s)}u((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.default=class{constructor(){this.promisesAwaitingConnection=[]}resolveAllAwaiting(){this.promisesAwaitingConnection.map((({resolve:e})=>e())),this.promisesAwaitingConnection=[]}rejectAllAwaiting(e){this.promisesAwaitingConnection.map((({reject:t})=>t(e))),this.promisesAwaitingConnection=[]}awaitConnection(){return r(this,void 0,void 0,(function*(){return new Promise(((e,t)=>{this.promisesAwaitingConnection.push({resolve:e,reject:t})}))}))}}},16598:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=class{constructor(e={}){var t,r;this.factor=2,this.numAttempts=0,this.ms=null!==(t=e.min)&&void 0!==t?t:100,this.max=null!==(r=e.max)&&void 0!==r?r:1e3}get attempts(){return this.numAttempts}duration(){const e=this.ms*Math.pow(this.factor,this.numAttempts);return this.numAttempts+=1,Math.floor(Math.min(e,this.max))}reset(){this.numAttempts=0}}},23621:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(74337);t.default=class{constructor(){this.nextId=0,this.promisesAwaitingResponse=new Map}resolve(e,t){const r=this.promisesAwaitingResponse.get(e);if(null==r)throw new n.XrplError(`No existing promise with id ${e}`,{type:"resolve",response:t});clearTimeout(r.timer),r.resolve(t),this.deletePromise(e)}reject(e,t){const r=this.promisesAwaitingResponse.get(e);if(null==r)throw new n.XrplError(`No existing promise with id ${e}`,{type:"reject",error:t});clearTimeout(r.timer),r.reject(t),this.deletePromise(e)}rejectAll(e){this.promisesAwaitingResponse.forEach(((t,r,n)=>{this.reject(r,e),this.deletePromise(r)}))}createRequest(e,t){let r;null==e.id?(r=this.nextId,this.nextId+=1):r=e.id;const i=JSON.stringify(Object.assign(Object.assign({},e),{id:r})),o=setTimeout((()=>{this.reject(r,new n.TimeoutError(`Timeout for request: ${JSON.stringify(e)} with id ${r}`,e))}),t);if(o.unref&&o.unref(),this.promisesAwaitingResponse.has(r))throw clearTimeout(o),new n.XrplError(`Response with id '${r}' is already pending`,e);const a=new Promise(((e,t)=>{this.promisesAwaitingResponse.set(r,{resolve:e,reject:t,timer:o})}));return[r,i,a]}handleResponse(e){var t,r;if(null==e.id||"string"!=typeof e.id&&"number"!=typeof e.id)throw new n.ResponseFormatError("valid id not found in response",e);if(this.promisesAwaitingResponse.has(e.id)){if(null==e.status){const t=new n.ResponseFormatError("Response has no status");this.reject(e.id,t)}if("error"!==e.status)if("success"===e.status)delete e.status,this.resolve(e.id,e);else{const t=new n.ResponseFormatError(`unrecognized response.status: ${null!==(r=e.status)&&void 0!==r?r:""}`,e);this.reject(e.id,t)}else{const r=e,i=new n.RippledError(null!==(t=r.error_message)&&void 0!==t?t:r.error,r);this.reject(e.id,i)}}}deletePromise(e){this.promisesAwaitingResponse.delete(e)}}},65785:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(67725);class i extends n.EventEmitter{constructor(e,t,r){super(),this.setMaxListeners(1/0),this.ws=new WebSocket(e),this.ws.onclose=e=>{let t;e.reason&&(t=(new TextEncoder).encode(e.reason)),this.emit("close",e.code,t)},this.ws.onopen=()=>{this.emit("open")},this.ws.onerror=e=>{this.emit("error",e)},this.ws.onmessage=e=>{this.emit("message",e.data)}}get readyState(){return this.ws.readyState}close(e,t){1===this.readyState&&this.ws.close(e,t)}send(e){this.ws.send(e)}}t.default=i,i.CONNECTING=0,i.OPEN=1,i.CLOSING=2,i.CLOSED=3},8564:function(e,t,r){"use strict";var n=r(18390).Buffer,i=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,o){function a(e){try{u(n.next(e))}catch(e){o(e)}}function s(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,s)}u((n=n.apply(e,t||[])).next())}))},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Connection=t.INTENTIONAL_DISCONNECT_CODE=void 0;const a=r(67725),s=o(r(27629)),u=o(r(65785)),c=r(74337),f=o(r(76808)),l=o(r(16598)),d=o(r(23621));t.INTENTIONAL_DISCONNECT_CODE=4e3;class h extends a.EventEmitter{constructor(e,t={}){super(),this.ws=null,this.reconnectTimeoutID=null,this.heartbeatIntervalID=null,this.retryConnectionBackoff=new l.default({min:100,max:6e4}),this.requestManager=new d.default,this.connectionManager=new f.default,this.trace=()=>{},this.setMaxListeners(1/0),this.url=e,this.config=Object.assign({timeout:2e4,connectionTimeout:5e3},t),"function"==typeof t.trace?this.trace=t.trace:t.trace&&(this.trace=console.log)}get state(){return this.ws?this.ws.readyState:u.default.CLOSED}get shouldBeConnected(){return null!==this.ws}isConnected(){return this.state===u.default.OPEN}connect(){return i(this,void 0,void 0,(function*(){if(this.isConnected())return Promise.resolve();if(this.state===u.default.CONNECTING)return this.connectionManager.awaitConnection();if(!this.url)return Promise.reject(new c.ConnectionError("Cannot connect because no server was specified"));if(null!=this.ws)return Promise.reject(new c.XrplError("Websocket connection never cleaned up.",{state:this.state}));const e=setTimeout((()=>{this.onConnectionFailed(new c.ConnectionError(`Error: connect() timed out after ${this.config.connectionTimeout} ms. If your internet connection is working, the rippled server may be blocked or inaccessible. You can also try setting the 'connectionTimeout' option in the Client constructor.`))}),this.config.connectionTimeout);if(this.ws=function(e,t){const i={};if(i.agent=function(e,t){if(null==t.proxy)return;const n=new URL(e),i=new URL(t.proxy),o=(0,s.default)({secureEndpoint:"wss:"===n.protocol,secureProxy:"https:"===i.protocol,auth:t.proxyAuthorization,ca:t.trustedCertificates,key:t.key,passphrase:t.passphrase,cert:t.certificate,href:i.href,origin:i.origin,protocol:i.protocol,username:i.username,password:i.password,host:i.host,hostname:i.hostname,port:i.port,pathname:i.pathname,search:i.search,hash:i.hash},(e=>null==e));let a;try{a=r(30174)}catch(e){throw new Error('"proxy" option is not supported in the browser')}return new a(o)}(e,t),t.headers&&(i.headers=t.headers),null!=t.authorization){const e=n.from(t.authorization).toString("base64");i.headers=Object.assign(Object.assign({},i.headers),{Authorization:`Basic ${e}`})}const o=(0,s.default)({ca:t.trustedCertificates,key:t.key,passphrase:t.passphrase,cert:t.certificate},(e=>null==e)),a=Object.assign(Object.assign({},i),o),c=new u.default(e,a);return"function"==typeof c.setMaxListeners&&c.setMaxListeners(1/0),c}(this.url,this.config),null==this.ws)throw new c.XrplError("Connect: created null websocket");return this.ws.on("error",(e=>this.onConnectionFailed(e))),this.ws.on("error",(()=>clearTimeout(e))),this.ws.on("close",(e=>this.onConnectionFailed(e))),this.ws.on("close",(()=>clearTimeout(e))),this.ws.once("open",(()=>{this.onceOpen(e)})),this.connectionManager.awaitConnection()}))}disconnect(){return i(this,void 0,void 0,(function*(){return this.clearHeartbeatInterval(),null!==this.reconnectTimeoutID&&(clearTimeout(this.reconnectTimeoutID),this.reconnectTimeoutID=null),this.state===u.default.CLOSED||null==this.ws?Promise.resolve(void 0):new Promise((e=>{null==this.ws&&e(void 0),null!=this.ws&&this.ws.once("close",(t=>e(t))),null!=this.ws&&this.state!==u.default.CLOSING&&this.ws.close(t.INTENTIONAL_DISCONNECT_CODE)}))}))}reconnect(){return i(this,void 0,void 0,(function*(){this.emit("reconnect"),yield this.disconnect(),yield this.connect()}))}request(e,t){return i(this,void 0,void 0,(function*(){if(!this.shouldBeConnected||null==this.ws)throw new c.NotConnectedError(JSON.stringify(e),e);const[r,n,o]=this.requestManager.createRequest(e,null!=t?t:this.config.timeout);return this.trace("send",n),function(e,t){return i(this,void 0,void 0,(function*(){return new Promise(((r,n)=>{e.send(t,(e=>{e?n(new c.DisconnectedError(e.message,e)):r()}))}))}))}(this.ws,n).catch((e=>{this.requestManager.reject(r,e)})),o}))}getUrl(){var e;return null!==(e=this.url)&&void 0!==e?e:""}onMessage(e){let t;this.trace("receive",e);try{t=JSON.parse(e)}catch(t){return void(t instanceof Error&&this.emit("error","badMessage",t.message,e))}if(null==t.type&&t.error)this.emit("error",t.error,t.error_message,t);else if(t.type&&this.emit(t.type,t),"response"===t.type)try{this.requestManager.handleResponse(t)}catch(t){t instanceof Error?this.emit("error","badMessage",t.message,e):this.emit("error","badMessage",t,t)}}onceOpen(e){return i(this,void 0,void 0,(function*(){if(null==this.ws)throw new c.XrplError("onceOpen: ws is null");this.ws.removeAllListeners(),clearTimeout(e),this.ws.on("message",(e=>this.onMessage(e))),this.ws.on("error",(e=>this.emit("error","websocket",e.message,e))),this.ws.once("close",((e,r)=>{if(null==this.ws)throw new c.XrplError("onceClose: ws is null");if(this.clearHeartbeatInterval(),this.requestManager.rejectAll(new c.DisconnectedError(`websocket was closed, ${new TextDecoder("utf-8").decode(r)}`)),this.ws.removeAllListeners(),this.ws=null,void 0===e){const e=1011;this.emit("disconnected",e)}else this.emit("disconnected",e);e!==t.INTENTIONAL_DISCONNECT_CODE&&void 0!==e&&this.intentionalDisconnect()}));try{this.retryConnectionBackoff.reset(),this.startHeartbeatInterval(),this.connectionManager.resolveAllAwaiting(),this.emit("connected")}catch(e){e instanceof Error&&(this.connectionManager.rejectAllAwaiting(e),yield this.disconnect().catch((()=>{})))}}))}intentionalDisconnect(){const e=this.retryConnectionBackoff.duration();this.trace("reconnect",`Retrying connection in ${e}ms.`),this.emit("reconnecting",this.retryConnectionBackoff.attempts),this.reconnectTimeoutID=setTimeout((()=>{this.reconnect().catch((e=>{this.emit("error","reconnect",e.message,e)}))}),e)}clearHeartbeatInterval(){this.heartbeatIntervalID&&clearInterval(this.heartbeatIntervalID)}startHeartbeatInterval(){this.clearHeartbeatInterval(),this.heartbeatIntervalID=setInterval((()=>{this.heartbeat()}),this.config.timeout)}heartbeat(){return i(this,void 0,void 0,(function*(){this.request({command:"ping"}).catch((()=>i(this,void 0,void 0,(function*(){return this.reconnect().catch((e=>{this.emit("error","reconnect",e.message,e)}))}))))}))}onConnectionFailed(e){this.ws&&(this.ws.removeAllListeners(),this.ws.on("error",(()=>{})),this.ws.close(),this.ws=null),"number"==typeof e?this.connectionManager.rejectAllAwaiting(new c.NotConnectedError(`Connection failed with code ${e}.`,{code:e})):(null==e?void 0:e.message)?this.connectionManager.rejectAllAwaiting(new c.NotConnectedError(e.message,e)):this.connectionManager.rejectAllAwaiting(new c.NotConnectedError("Connection failed."))}}t.Connection=h},44278:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t},a=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,o){function a(e){try{u(n.next(e))}catch(e){o(e)}}function s(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,s)}u((n=n.apply(e,t||[])).next())}))},s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Client=void 0;const u=o(r(32037)),c=r(67725),f=r(74337),l=r(92475),d=s(r(1222)),h=r(8564),p=r(56742);class y extends c.EventEmitter{constructor(e,t={}){var r,n;if(super(),this.autofill=l.autofill,this.submit=l.submit,this.submitAndWait=l.submitAndWait,this.prepareTransaction=l.autofill,this.getXrpBalance=l.getXrpBalance,this.getBalances=l.getBalances,this.getOrderbook=l.getOrderbook,this.getLedgerIndex=l.getLedgerIndex,this.fundWallet=d.default,"string"!=typeof e||!/wss?(?:\+unix)?:\/\//u.exec(e))throw new f.ValidationError("server URI must start with `wss://`, `ws://`, `wss+unix://`, or `ws+unix://`.");this.feeCushion=null!==(r=t.feeCushion)&&void 0!==r?r:1.2,this.maxFeeXRP=null!==(n=t.maxFeeXRP)&&void 0!==n?n:"2",this.connection=new h.Connection(e,t),this.connection.on("error",((e,t,r)=>{this.emit("error",e,t,r)})),this.connection.on("reconnect",(()=>{this.connection.on("connected",(()=>this.emit("connected")))})),this.connection.on("disconnected",(e=>{let t=e;t===h.INTENTIONAL_DISCONNECT_CODE&&(t=1e3),this.emit("disconnected",t)})),this.connection.on("ledgerClosed",(e=>{this.emit("ledgerClosed",e)})),this.connection.on("transaction",(e=>{(0,p.handleStreamPartialPayment)(e,this.connection.trace),this.emit("transaction",e)})),this.connection.on("validationReceived",(e=>{this.emit("validationReceived",e)})),this.connection.on("manifestReceived",(e=>{this.emit("manifestReceived",e)})),this.connection.on("peerStatusChange",(e=>{this.emit("peerStatusChange",e)})),this.connection.on("consensusPhase",(e=>{this.emit("consensusPhase",e)})),this.connection.on("path_find",(e=>{this.emit("path_find",e)}))}get url(){return this.connection.getUrl()}request(e){return a(this,void 0,void 0,(function*(){const t=yield this.connection.request(Object.assign(Object.assign({},e),{account:e.account?(0,l.ensureClassicAddress)(e.account):void 0}));return(0,p.handlePartialPayment)(e.command,t),t}))}requestNextPage(e,t){return a(this,void 0,void 0,(function*(){if(!t.result.marker)return Promise.reject(new f.NotFoundError("response does not have a next page"));const r=Object.assign(Object.assign({},e),{marker:t.result.marker});return this.request(r)}))}on(e,t){return super.on(e,t)}requestAll(e,t){return a(this,void 0,void 0,(function*(){const r=null!=t?t:function(e){switch(e){case"account_channels":return"channels";case"account_lines":return"lines";case"account_objects":return"account_objects";case"account_tx":return"transactions";case"account_offers":case"book_offers":return"offers";case"ledger_data":return"state";default:return null}}(e.command);if(!r)throw new f.ValidationError(`no collect key for command ${e.command}`);const n=null==e.limit?1/0:e.limit;let i,o=0,a=e.marker;const s=[];do{const t=(c=n-o,10,400,u.ok(!0,"Illegal clamp bounds"),Math.min(Math.max(c,10),400)),l=Object.assign(Object.assign({},e),{limit:t,marker:a}),d=yield this.connection.request(l),h=d.result;if(!(r in h))throw new f.XrplError(`${r} not in result`);const p=h[r];a=h.marker,s.push(d),Array.isArray(p)?(o+=p.length,i=p.length):i=0}while(Boolean(a)&&o<n&&0!==i);var c;return s}))}getServerInfo(){var e;return a(this,void 0,void 0,(function*(){try{const t=yield this.request({command:"server_info"});this.networkID=null!==(e=t.result.info.network_id)&&void 0!==e?e:void 0,this.buildVersion=t.result.info.build_version}catch(e){console.error(e)}}))}connect(){return a(this,void 0,void 0,(function*(){return this.connection.connect().then((()=>a(this,void 0,void 0,(function*(){yield this.getServerInfo(),this.emit("connected")}))))}))}disconnect(){return a(this,void 0,void 0,(function*(){yield this.connection.disconnect()}))}isConnected(){return this.connection.isConnected()}}t.Client=y},56742:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.handleStreamPartialPayment=t.handlePartialPayment=void 0;const i=n(r(83753)),o=r(79056),a=r(9879),s=r(143);function u(e,t){var r;if(null==e||null==t||"Payment"!==e.TransactionType)return!1;let n=t;if("string"==typeof n){if("unavailable"===n)return!1;n=(0,o.decode)(n)}if(!("number"==typeof e.Flags?(0,s.isFlagEnabled)(e.Flags,a.PaymentFlags.tfPartialPayment):null===(r=e.Flags)||void 0===r?void 0:r.tfPartialPayment))return!1;const u=n.delivered_amount,c=e.Amount;return void 0!==u&&!function(e,t){if("string"==typeof e&&"string"==typeof t)return e===t;if("string"==typeof e||"string"==typeof t)return!1;const r=new i.default(e.value),n=new i.default(t.value);return e.currency===t.currency&&e.issuer===t.issuer&&r.isEqualTo(n)}(u,c)}t.handlePartialPayment=function(e,t){var r;if(function(e,t){switch(e){case"tx":return function(e){return u(e.result,e.result.meta)}(t);case"transaction_entry":return function(e){return u(e.result.tx_json,e.result.metadata)}(t);case"account_tx":return function(e){const{transactions:t}=e.result;return t.some((e=>u(e.tx,e.meta)))}(t);default:return!1}}(e,t)){const e=null!==(r=t.warnings)&&void 0!==r?r:[],n={id:2001,message:"This response contains a Partial Payment"};e.push(n),t.warnings=e}},t.handleStreamPartialPayment=function(e,t){var r;if(u(e.transaction,e.meta)){const n=null!==(r=e.warnings)&&void 0!==r?r:[],i={id:2001,message:"This response contains a Partial Payment"};n.push(i),e.warnings=n,t("Partial payment received",JSON.stringify(e))}}},74337:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.XRPLFaucetError=t.NotFoundError=t.ValidationError=t.ResponseFormatError=t.TimeoutError=t.RippledNotInitializedError=t.DisconnectedError=t.NotConnectedError=t.RippledError=t.ConnectionError=t.UnexpectedError=t.XrplError=void 0;const n=r(75786);class i extends Error{constructor(e="",t){super(e),this.name=this.constructor.name,this.message=e,this.data=t,null!=Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}toString(){let e=`[${this.name}(${this.message}`;return this.data&&(e+=`, ${(0,n.inspect)(this.data)}`),e+=")]",e}inspect(){return this.toString()}}t.XrplError=i,t.RippledError=class extends i{},t.UnexpectedError=class extends i{};class o extends i{}t.ConnectionError=o,t.NotConnectedError=class extends o{},t.DisconnectedError=class extends o{},t.RippledNotInitializedError=class extends o{},t.TimeoutError=class extends o{},t.ResponseFormatError=class extends o{},t.ValidationError=class extends i{},t.XRPLFaucetError=class extends i{},t.NotFoundError=class extends i{constructor(e="Not found"){super(e)}}},20066:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.rfc1751MnemonicToKey=t.keyToRFC1751Mnemonic=t.walletFromSecretNumbers=t.Wallet=t.ECDSA=t.Client=t.BroadcastClient=void 0;var a=r(89289);Object.defineProperty(t,"BroadcastClient",{enumerable:!0,get:function(){return a.BroadcastClient}});var s=r(44278);Object.defineProperty(t,"Client",{enumerable:!0,get:function(){return s.Client}}),i(r(84980),t),i(r(17455),t);var u=r(8831);Object.defineProperty(t,"ECDSA",{enumerable:!0,get:function(){return o(u).default}}),i(r(74337),t);var c=r(52211);Object.defineProperty(t,"Wallet",{enumerable:!0,get:function(){return c.Wallet}});var f=r(71402);Object.defineProperty(t,"walletFromSecretNumbers",{enumerable:!0,get:function(){return f.walletFromSecretNumbers}});var l=r(15567);Object.defineProperty(t,"keyToRFC1751Mnemonic",{enumerable:!0,get:function(){return l.keyToRFC1751Mnemonic}}),Object.defineProperty(t,"rfc1751MnemonicToKey",{enumerable:!0,get:function(){return l.rfc1751MnemonicToKey}}),i(r(29421),t)},86437:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},84980:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t},a=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),t.parseAccountRootFlags=t.setTransactionFlagsToNumber=t.LedgerEntry=void 0,t.LedgerEntry=o(r(10143));var s=r(27161);Object.defineProperty(t,"setTransactionFlagsToNumber",{enumerable:!0,get:function(){return s.setTransactionFlagsToNumber}}),Object.defineProperty(t,"parseAccountRootFlags",{enumerable:!0,get:function(){return s.parseAccountRootFlags}}),a(r(31892),t),a(r(9879),t),a(r(86437),t)},74347:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.AccountRootFlags=void 0,(r=t.AccountRootFlags||(t.AccountRootFlags={}))[r.lsfPasswordSpent=65536]="lsfPasswordSpent",r[r.lsfRequireDestTag=131072]="lsfRequireDestTag",r[r.lsfRequireAuth=262144]="lsfRequireAuth",r[r.lsfDisallowXRP=524288]="lsfDisallowXRP",r[r.lsfDisableMaster=1048576]="lsfDisableMaster",r[r.lsfNoFreeze=2097152]="lsfNoFreeze",r[r.lsfGlobalFreeze=4194304]="lsfGlobalFreeze",r[r.lsfDefaultRipple=8388608]="lsfDefaultRipple",r[r.lsfDepositAuth=16777216]="lsfDepositAuth",r[r.lsfAMM=33554432]="lsfAMM",r[r.lsfDisallowIncomingNFTokenOffer=67108864]="lsfDisallowIncomingNFTokenOffer",r[r.lsfDisallowIncomingCheck=134217728]="lsfDisallowIncomingCheck",r[r.lsfDisallowIncomingPayChan=268435456]="lsfDisallowIncomingPayChan",r[r.lsfDisallowIncomingTrustline=536870912]="lsfDisallowIncomingTrustline",r[r.lsfAllowTrustLineClawback=2147483648]="lsfAllowTrustLineClawback"},30296:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AMENDMENTS_ID=void 0,t.AMENDMENTS_ID="7DB0788C020F02780A673DC74757F23823FA3014C1866E72CC4CD8B226CD6EF4"},67209:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.FEE_SETTINGS_ID=void 0,t.FEE_SETTINGS_ID="4BC50C9B0D8515D3EAAE1E74B29A95804346C491EE1A95BF25E4AAB854A6A651"},51184:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NEGATIVE_UNL_ID=void 0,t.NEGATIVE_UNL_ID="2E8A59AA9D3B5B186B0B9E0F62E6C02587CA74A4D778938E957B6357D364B244"},36867:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.OfferFlags=void 0,(r=t.OfferFlags||(t.OfferFlags={}))[r.lsfPassive=65536]="lsfPassive",r[r.lsfSell=131072]="lsfSell"},85226:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.RippleStateFlags=void 0,(r=t.RippleStateFlags||(t.RippleStateFlags={}))[r.lsfLowReserve=65536]="lsfLowReserve",r[r.lsfHighReserve=131072]="lsfHighReserve",r[r.lsfLowAuth=262144]="lsfLowAuth",r[r.lsfHighAuth=524288]="lsfHighAuth",r[r.lsfLowNoRipple=1048576]="lsfLowNoRipple",r[r.lsfHighNoRipple=2097152]="lsfHighNoRipple",r[r.lsfLowFreeze=4194304]="lsfLowFreeze",r[r.lsfHighFreeze=8388608]="lsfHighFreeze"},57331:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.SignerListFlags=void 0,(r=t.SignerListFlags||(t.SignerListFlags={}))[r.lsfOneOwnerCount=65536]="lsfOneOwnerCount"},10143:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SignerListFlags=t.RippleStateFlags=t.OfferFlags=t.NEGATIVE_UNL_ID=t.FEE_SETTINGS_ID=t.AMENDMENTS_ID=t.AccountRootFlags=void 0;const n=r(74347);Object.defineProperty(t,"AccountRootFlags",{enumerable:!0,get:function(){return n.AccountRootFlags}});const i=r(30296);Object.defineProperty(t,"AMENDMENTS_ID",{enumerable:!0,get:function(){return i.AMENDMENTS_ID}});const o=r(67209);Object.defineProperty(t,"FEE_SETTINGS_ID",{enumerable:!0,get:function(){return o.FEE_SETTINGS_ID}});const a=r(51184);Object.defineProperty(t,"NEGATIVE_UNL_ID",{enumerable:!0,get:function(){return a.NEGATIVE_UNL_ID}});const s=r(36867);Object.defineProperty(t,"OfferFlags",{enumerable:!0,get:function(){return s.OfferFlags}});const u=r(85226);Object.defineProperty(t,"RippleStateFlags",{enumerable:!0,get:function(){return u.RippleStateFlags}});const c=r(57331);Object.defineProperty(t,"SignerListFlags",{enumerable:!0,get:function(){return c.SignerListFlags}})},31892:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},14139:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateAMMBid=void 0;const n=r(74337),i=r(19061);t.validateAMMBid=function(e){if((0,i.validateBaseTransaction)(e),null==e.Asset)throw new n.ValidationError("AMMBid: missing field Asset");if(!(0,i.isCurrency)(e.Asset))throw new n.ValidationError("AMMBid: Asset must be a Currency");if(null==e.Asset2)throw new n.ValidationError("AMMBid: missing field Asset2");if(!(0,i.isCurrency)(e.Asset2))throw new n.ValidationError("AMMBid: Asset2 must be a Currency");if(null!=e.BidMin&&!(0,i.isAmount)(e.BidMin))throw new n.ValidationError("AMMBid: BidMin must be an Amount");if(null!=e.BidMax&&!(0,i.isAmount)(e.BidMax))throw new n.ValidationError("AMMBid: BidMax must be an Amount");if(null!=e.AuthAccounts){if(!Array.isArray(e.AuthAccounts))throw new n.ValidationError("AMMBid: AuthAccounts must be an AuthAccount array");if(e.AuthAccounts.length>4)throw new n.ValidationError("AMMBid: AuthAccounts length must not be greater than 4");!function(e,t){for(const r of t){if(null==r.AuthAccount||"object"!=typeof r.AuthAccount)throw new n.ValidationError("AMMBid: invalid AuthAccounts");if(null==r.AuthAccount.Account)throw new n.ValidationError("AMMBid: invalid AuthAccounts");if("string"!=typeof r.AuthAccount.Account)throw new n.ValidationError("AMMBid: invalid AuthAccounts");if(r.AuthAccount.Account===e)throw new n.ValidationError("AMMBid: AuthAccounts must not include sender's address")}}(e.Account,e.AuthAccounts)}}},59906:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateAMMCreate=t.AMM_MAX_TRADING_FEE=void 0;const n=r(74337),i=r(19061);t.AMM_MAX_TRADING_FEE=1e3,t.validateAMMCreate=function(e){if((0,i.validateBaseTransaction)(e),null==e.Amount)throw new n.ValidationError("AMMCreate: missing field Amount");if(!(0,i.isAmount)(e.Amount))throw new n.ValidationError("AMMCreate: Amount must be an Amount");if(null==e.Amount2)throw new n.ValidationError("AMMCreate: missing field Amount2");if(!(0,i.isAmount)(e.Amount2))throw new n.ValidationError("AMMCreate: Amount2 must be an Amount");if(null==e.TradingFee)throw new n.ValidationError("AMMCreate: missing field TradingFee");if("number"!=typeof e.TradingFee)throw new n.ValidationError("AMMCreate: TradingFee must be a number");if(e.TradingFee<0||e.TradingFee>t.AMM_MAX_TRADING_FEE)throw new n.ValidationError(`AMMCreate: TradingFee must be between 0 and ${t.AMM_MAX_TRADING_FEE}`)}},22781:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateAMMDelete=void 0;const n=r(74337),i=r(19061);t.validateAMMDelete=function(e){if((0,i.validateBaseTransaction)(e),null==e.Asset)throw new n.ValidationError("AMMDelete: missing field Asset");if(!(0,i.isCurrency)(e.Asset))throw new n.ValidationError("AMMDelete: Asset must be a Currency");if(null==e.Asset2)throw new n.ValidationError("AMMDelete: missing field Asset2");if(!(0,i.isCurrency)(e.Asset2))throw new n.ValidationError("AMMDelete: Asset2 must be a Currency")}},74350:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateAMMDeposit=t.AMMDepositFlags=void 0;const n=r(74337),i=r(19061);var o;(o=t.AMMDepositFlags||(t.AMMDepositFlags={}))[o.tfLPToken=65536]="tfLPToken",o[o.tfSingleAsset=524288]="tfSingleAsset",o[o.tfTwoAsset=1048576]="tfTwoAsset",o[o.tfOneAssetLPToken=2097152]="tfOneAssetLPToken",o[o.tfLimitLPToken=4194304]="tfLimitLPToken",t.validateAMMDeposit=function(e){if((0,i.validateBaseTransaction)(e),null==e.Asset)throw new n.ValidationError("AMMDeposit: missing field Asset");if(!(0,i.isCurrency)(e.Asset))throw new n.ValidationError("AMMDeposit: Asset must be a Currency");if(null==e.Asset2)throw new n.ValidationError("AMMDeposit: missing field Asset2");if(!(0,i.isCurrency)(e.Asset2))throw new n.ValidationError("AMMDeposit: Asset2 must be a Currency");if(null!=e.Amount2&&null==e.Amount)throw new n.ValidationError("AMMDeposit: must set Amount with Amount2");if(null!=e.EPrice&&null==e.Amount)throw new n.ValidationError("AMMDeposit: must set Amount with EPrice");if(null==e.LPTokenOut&&null==e.Amount)throw new n.ValidationError("AMMDeposit: must set at least LPTokenOut or Amount");if(null!=e.LPTokenOut&&!(0,i.isIssuedCurrency)(e.LPTokenOut))throw new n.ValidationError("AMMDeposit: LPTokenOut must be an IssuedCurrencyAmount");if(null!=e.Amount&&!(0,i.isAmount)(e.Amount))throw new n.ValidationError("AMMDeposit: Amount must be an Amount");if(null!=e.Amount2&&!(0,i.isAmount)(e.Amount2))throw new n.ValidationError("AMMDeposit: Amount2 must be an Amount");if(null!=e.EPrice&&!(0,i.isAmount)(e.EPrice))throw new n.ValidationError("AMMDeposit: EPrice must be an Amount")}},2638:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateAMMVote=void 0;const n=r(74337),i=r(59906),o=r(19061);t.validateAMMVote=function(e){if((0,o.validateBaseTransaction)(e),null==e.Asset)throw new n.ValidationError("AMMVote: missing field Asset");if(!(0,o.isCurrency)(e.Asset))throw new n.ValidationError("AMMVote: Asset must be a Currency");if(null==e.Asset2)throw new n.ValidationError("AMMVote: missing field Asset2");if(!(0,o.isCurrency)(e.Asset2))throw new n.ValidationError("AMMVote: Asset2 must be a Currency");if(null==e.TradingFee)throw new n.ValidationError("AMMVote: missing field TradingFee");if("number"!=typeof e.TradingFee)throw new n.ValidationError("AMMVote: TradingFee must be a number");if(e.TradingFee<0||e.TradingFee>i.AMM_MAX_TRADING_FEE)throw new n.ValidationError(`AMMVote: TradingFee must be between 0 and ${i.AMM_MAX_TRADING_FEE}`)}},71637:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateAMMWithdraw=t.AMMWithdrawFlags=void 0;const n=r(74337),i=r(19061);var o;(o=t.AMMWithdrawFlags||(t.AMMWithdrawFlags={}))[o.tfLPToken=65536]="tfLPToken",o[o.tfWithdrawAll=131072]="tfWithdrawAll",o[o.tfOneAssetWithdrawAll=262144]="tfOneAssetWithdrawAll",o[o.tfSingleAsset=524288]="tfSingleAsset",o[o.tfTwoAsset=1048576]="tfTwoAsset",o[o.tfOneAssetLPToken=2097152]="tfOneAssetLPToken",o[o.tfLimitLPToken=4194304]="tfLimitLPToken",t.validateAMMWithdraw=function(e){if((0,i.validateBaseTransaction)(e),null==e.Asset)throw new n.ValidationError("AMMWithdraw: missing field Asset");if(!(0,i.isCurrency)(e.Asset))throw new n.ValidationError("AMMWithdraw: Asset must be a Currency");if(null==e.Asset2)throw new n.ValidationError("AMMWithdraw: missing field Asset2");if(!(0,i.isCurrency)(e.Asset2))throw new n.ValidationError("AMMWithdraw: Asset2 must be a Currency");if(null!=e.Amount2&&null==e.Amount)throw new n.ValidationError("AMMWithdraw: must set Amount with Amount2");if(null!=e.EPrice&&null==e.Amount)throw new n.ValidationError("AMMWithdraw: must set Amount with EPrice");if(null!=e.LPTokenIn&&!(0,i.isIssuedCurrency)(e.LPTokenIn))throw new n.ValidationError("AMMWithdraw: LPTokenIn must be an IssuedCurrencyAmount");if(null!=e.Amount&&!(0,i.isAmount)(e.Amount))throw new n.ValidationError("AMMWithdraw: Amount must be an Amount");if(null!=e.Amount2&&!(0,i.isAmount)(e.Amount2))throw new n.ValidationError("AMMWithdraw: Amount2 must be an Amount");if(null!=e.EPrice&&!(0,i.isAmount)(e.EPrice))throw new n.ValidationError("AMMWithdraw: EPrice must be an Amount")}},10329:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateNFTokenAcceptOffer=void 0;const n=r(74337),i=r(19061);t.validateNFTokenAcceptOffer=function(e){if((0,i.validateBaseTransaction)(e),null!=e.NFTokenBrokerFee&&function(e){const t=(0,i.parseAmountValue)(e.NFTokenBrokerFee);if(Number.isNaN(t))throw new n.ValidationError("NFTokenAcceptOffer: invalid NFTokenBrokerFee");if(t<=0)throw new n.ValidationError("NFTokenAcceptOffer: NFTokenBrokerFee must be greater than 0; omit if there is no fee");if(null==e.NFTokenSellOffer||null==e.NFTokenBuyOffer)throw new n.ValidationError("NFTokenAcceptOffer: both NFTokenSellOffer and NFTokenBuyOffer must be set if using brokered mode")}(e),null==e.NFTokenSellOffer&&null==e.NFTokenBuyOffer)throw new n.ValidationError("NFTokenAcceptOffer: must set either NFTokenSellOffer or NFTokenBuyOffer")}},16362:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateNFTokenBurn=void 0;const n=r(74337),i=r(19061);t.validateNFTokenBurn=function(e){if((0,i.validateBaseTransaction)(e),null==e.NFTokenID)throw new n.ValidationError("NFTokenBurn: missing field NFTokenID")}},66357:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateNFTokenCancelOffer=void 0;const n=r(74337),i=r(19061);t.validateNFTokenCancelOffer=function(e){if((0,i.validateBaseTransaction)(e),!Array.isArray(e.NFTokenOffers))throw new n.ValidationError("NFTokenCancelOffer: missing field NFTokenOffers");if(e.NFTokenOffers.length<1)throw new n.ValidationError("NFTokenCancelOffer: empty field NFTokenOffers")}},38256:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateNFTokenCreateOffer=t.NFTokenCreateOfferFlags=void 0;const n=r(74337),i=r(143),o=r(19061);var a;!function(e){e[e.tfSellNFToken=1]="tfSellNFToken"}(a=t.NFTokenCreateOfferFlags||(t.NFTokenCreateOfferFlags={})),t.validateNFTokenCreateOffer=function(e){if((0,o.validateBaseTransaction)(e),e.Account===e.Owner)throw new n.ValidationError("NFTokenCreateOffer: Owner and Account must not be equal");if(e.Account===e.Destination)throw new n.ValidationError("NFTokenCreateOffer: Destination and Account must not be equal");if(null==e.NFTokenID)throw new n.ValidationError("NFTokenCreateOffer: missing field NFTokenID");if(!(0,o.isAmount)(e.Amount))throw new n.ValidationError("NFTokenCreateOffer: invalid Amount");"number"==typeof e.Flags&&(0,i.isFlagEnabled)(e.Flags,a.tfSellNFToken)?function(e){if(null!=e.Owner)throw new n.ValidationError("NFTokenCreateOffer: Owner must not be present for sell offers")}(e):function(e){if(null==e.Owner)throw new n.ValidationError("NFTokenCreateOffer: Owner must be present for buy offers");if((0,o.parseAmountValue)(e.Amount)<=0)throw new n.ValidationError("NFTokenCreateOffer: Amount must be greater than 0 for buy offers")}(e)}},69404:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateNFTokenMint=t.NFTokenMintFlags=void 0;const n=r(74337),i=r(143),o=r(19061);var a;(a=t.NFTokenMintFlags||(t.NFTokenMintFlags={}))[a.tfBurnable=1]="tfBurnable",a[a.tfOnlyXRP=2]="tfOnlyXRP",a[a.tfTrustLine=4]="tfTrustLine",a[a.tfTransferable=8]="tfTransferable",t.validateNFTokenMint=function(e){if((0,o.validateBaseTransaction)(e),e.Account===e.Issuer)throw new n.ValidationError("NFTokenMint: Issuer must not be equal to Account");if("string"==typeof e.URI&&""===e.URI)throw new n.ValidationError("NFTokenMint: URI must not be empty string");if("string"==typeof e.URI&&!(0,i.isHex)(e.URI))throw new n.ValidationError("NFTokenMint: URI must be in hex format");if(null==e.NFTokenTaxon)throw new n.ValidationError("NFTokenMint: missing field NFTokenTaxon")}},79228:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateAccountDelete=void 0;const n=r(74337),i=r(19061);t.validateAccountDelete=function(e){if((0,i.validateBaseTransaction)(e),void 0===e.Destination)throw new n.ValidationError("AccountDelete: missing field Destination");if("string"!=typeof e.Destination)throw new n.ValidationError("AccountDelete: invalid Destination");if(void 0!==e.DestinationTag&&"number"!=typeof e.DestinationTag)throw new n.ValidationError("AccountDelete: invalid DestinationTag")}},20489:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateAccountSet=t.AccountSetTfFlags=t.AccountSetAsfFlags=void 0;const n=r(79798),i=r(74337),o=r(19061);var a,s;!function(e){e[e.asfRequireDest=1]="asfRequireDest",e[e.asfRequireAuth=2]="asfRequireAuth",e[e.asfDisallowXRP=3]="asfDisallowXRP",e[e.asfDisableMaster=4]="asfDisableMaster",e[e.asfAccountTxnID=5]="asfAccountTxnID",e[e.asfNoFreeze=6]="asfNoFreeze",e[e.asfGlobalFreeze=7]="asfGlobalFreeze",e[e.asfDefaultRipple=8]="asfDefaultRipple",e[e.asfDepositAuth=9]="asfDepositAuth",e[e.asfAuthorizedNFTokenMinter=10]="asfAuthorizedNFTokenMinter",e[e.asfDisallowIncomingNFTokenOffer=12]="asfDisallowIncomingNFTokenOffer",e[e.asfDisallowIncomingCheck=13]="asfDisallowIncomingCheck",e[e.asfDisallowIncomingPayChan=14]="asfDisallowIncomingPayChan",e[e.asfDisallowIncomingTrustline=15]="asfDisallowIncomingTrustline",e[e.asfAllowTrustLineClawback=16]="asfAllowTrustLineClawback"}(a=t.AccountSetAsfFlags||(t.AccountSetAsfFlags={})),(s=t.AccountSetTfFlags||(t.AccountSetTfFlags={}))[s.tfRequireDestTag=65536]="tfRequireDestTag",s[s.tfOptionalDestTag=131072]="tfOptionalDestTag",s[s.tfRequireAuth=262144]="tfRequireAuth",s[s.tfOptionalAuth=524288]="tfOptionalAuth",s[s.tfDisallowXRP=1048576]="tfDisallowXRP",s[s.tfAllowXRP=2097152]="tfAllowXRP",t.validateAccountSet=function(e){if((0,o.validateBaseTransaction)(e),void 0!==e.NFTokenMinter&&!(0,n.isValidClassicAddress)(String(e.NFTokenMinter)))throw new i.ValidationError("AccountSet: invalid NFTokenMinter");if(void 0!==e.ClearFlag){if("number"!=typeof e.ClearFlag)throw new i.ValidationError("AccountSet: invalid ClearFlag");if(!Object.values(a).includes(e.ClearFlag))throw new i.ValidationError("AccountSet: invalid ClearFlag")}if(void 0!==e.Domain&&"string"!=typeof e.Domain)throw new i.ValidationError("AccountSet: invalid Domain");if(void 0!==e.EmailHash&&"string"!=typeof e.EmailHash)throw new i.ValidationError("AccountSet: invalid EmailHash");if(void 0!==e.MessageKey&&"string"!=typeof e.MessageKey)throw new i.ValidationError("AccountSet: invalid MessageKey");if(void 0!==e.SetFlag){if("number"!=typeof e.SetFlag)throw new i.ValidationError("AccountSet: invalid SetFlag");if(!Object.values(a).includes(e.SetFlag))throw new i.ValidationError("AccountSet: invalid SetFlag")}if(void 0!==e.TransferRate&&"number"!=typeof e.TransferRate)throw new i.ValidationError("AccountSet: invalid TransferRate");if(void 0!==e.TickSize){if("number"!=typeof e.TickSize)throw new i.ValidationError("AccountSet: invalid TickSize");if(0!==e.TickSize&&(e.TickSize<3||e.TickSize>15))throw new i.ValidationError("AccountSet: invalid TickSize")}}},99618:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateCheckCancel=void 0;const n=r(74337),i=r(19061);t.validateCheckCancel=function(e){if((0,i.validateBaseTransaction)(e),void 0!==e.CheckID&&"string"!=typeof e.CheckID)throw new n.ValidationError("CheckCancel: invalid CheckID")}},97931:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateCheckCash=void 0;const n=r(74337),i=r(19061);t.validateCheckCash=function(e){if((0,i.validateBaseTransaction)(e),null==e.Amount&&null==e.DeliverMin)throw new n.ValidationError("CheckCash: must have either Amount or DeliverMin");if(null!=e.Amount&&null!=e.DeliverMin)throw new n.ValidationError("CheckCash: cannot have both Amount and DeliverMin");if(null!=e.Amount&&void 0!==e.Amount&&!(0,i.isAmount)(e.Amount))throw new n.ValidationError("CheckCash: invalid Amount");if(null!=e.DeliverMin&&void 0!==e.DeliverMin&&!(0,i.isAmount)(e.DeliverMin))throw new n.ValidationError("CheckCash: invalid DeliverMin");if(void 0!==e.CheckID&&"string"!=typeof e.CheckID)throw new n.ValidationError("CheckCash: invalid CheckID")}},56680:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateCheckCreate=void 0;const n=r(74337),i=r(19061);t.validateCheckCreate=function(e){if((0,i.validateBaseTransaction)(e),void 0===e.SendMax)throw new n.ValidationError("CheckCreate: missing field SendMax");if(void 0===e.Destination)throw new n.ValidationError("CheckCreate: missing field Destination");if("string"!=typeof e.SendMax&&!(0,i.isIssuedCurrency)(e.SendMax))throw new n.ValidationError("CheckCreate: invalid SendMax");if("string"!=typeof e.Destination)throw new n.ValidationError("CheckCreate: invalid Destination");if(void 0!==e.DestinationTag&&"number"!=typeof e.DestinationTag)throw new n.ValidationError("CheckCreate: invalid DestinationTag");if(void 0!==e.Expiration&&"number"!=typeof e.Expiration)throw new n.ValidationError("CheckCreate: invalid Expiration");if(void 0!==e.InvoiceID&&"string"!=typeof e.InvoiceID)throw new n.ValidationError("CheckCreate: invalid InvoiceID")}},61062:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateClawback=void 0;const n=r(74337),i=r(19061);t.validateClawback=function(e){if((0,i.validateBaseTransaction)(e),null==e.Amount)throw new n.ValidationError("Clawback: missing field Amount");if(!(0,i.isIssuedCurrency)(e.Amount))throw new n.ValidationError("Clawback: invalid Amount");if((0,i.isIssuedCurrency)(e.Amount)&&e.Account===e.Amount.issuer)throw new n.ValidationError("Clawback: invalid holder Account")}},19061:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.parseAmountValue=t.validateBaseTransaction=t.isAmount=t.isIssuedCurrency=t.isCurrency=void 0;const n=r(79056),i=r(74337),o=r(143);function a(e){if(null==e.Memo)return!1;const t=e.Memo,r=Object.keys(t).length,n=null==t.MemoData||"string"==typeof t.MemoData,i=null==t.MemoFormat||"string"==typeof t.MemoFormat,a=null==t.MemoType||"string"==typeof t.MemoType;return r>=1&&r<=3&&n&&i&&a&&(0,o.onlyHasFields)(t,["MemoFormat","MemoData","MemoType"])}function s(e){const t=e;if(null==t.Signer)return!1;const r=t.Signer;return 3===Object.keys(r).length&&"string"==typeof r.Account&&"string"==typeof r.TxnSignature&&"string"==typeof r.SigningPubKey}const u=3;function c(e){return null!==e&&"object"==typeof e}function f(e){return c(e)&&Object.keys(e).length===u&&"string"==typeof e.value&&"string"==typeof e.issuer&&"string"==typeof e.currency}function l(e){return"string"==typeof e||f(e)}t.isCurrency=function(e){return c(e)&&(2===Object.keys(e).length&&"string"==typeof e.issuer&&"string"==typeof e.currency||1===Object.keys(e).length&&"XRP"===e.currency)},t.isIssuedCurrency=f,t.isAmount=l,t.validateBaseTransaction=function(e){if(void 0===e.Account)throw new i.ValidationError("BaseTransaction: missing field Account");if("string"!=typeof e.Account)throw new i.ValidationError("BaseTransaction: Account not string");if(void 0===e.TransactionType)throw new i.ValidationError("BaseTransaction: missing field TransactionType");if("string"!=typeof e.TransactionType)throw new i.ValidationError("BaseTransaction: TransactionType not string");if(!n.TRANSACTION_TYPES.includes(e.TransactionType))throw new i.ValidationError("BaseTransaction: Unknown TransactionType");if(void 0!==e.Fee&&"string"!=typeof e.Fee)throw new i.ValidationError("BaseTransaction: invalid Fee");if(void 0!==e.Sequence&&"number"!=typeof e.Sequence)throw new i.ValidationError("BaseTransaction: invalid Sequence");if(void 0!==e.AccountTxnID&&"string"!=typeof e.AccountTxnID)throw new i.ValidationError("BaseTransaction: invalid AccountTxnID");if(void 0!==e.LastLedgerSequence&&"number"!=typeof e.LastLedgerSequence)throw new i.ValidationError("BaseTransaction: invalid LastLedgerSequence");const t=e.Memos;if(void 0!==t&&!t.every(a))throw new i.ValidationError("BaseTransaction: invalid Memos");const r=e.Signers;if(void 0!==r&&(0===r.length||!r.every(s)))throw new i.ValidationError("BaseTransaction: invalid Signers");if(void 0!==e.SourceTag&&"number"!=typeof e.SourceTag)throw new i.ValidationError("BaseTransaction: invalid SourceTag");if(void 0!==e.SigningPubKey&&"string"!=typeof e.SigningPubKey)throw new i.ValidationError("BaseTransaction: invalid SigningPubKey");if(void 0!==e.TicketSequence&&"number"!=typeof e.TicketSequence)throw new i.ValidationError("BaseTransaction: invalid TicketSequence");if(void 0!==e.TxnSignature&&"string"!=typeof e.TxnSignature)throw new i.ValidationError("BaseTransaction: invalid TxnSignature");if(void 0!==e.NetworkID&&"number"!=typeof e.NetworkID)throw new i.ValidationError("BaseTransaction: invalid NetworkID")},t.parseAmountValue=function(e){return l(e)?"string"==typeof e?parseFloat(e):parseFloat(e.value):NaN}},44992:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateDepositPreauth=void 0;const n=r(74337),i=r(19061);t.validateDepositPreauth=function(e){if((0,i.validateBaseTransaction)(e),void 0!==e.Authorize&&void 0!==e.Unauthorize)throw new n.ValidationError("DepositPreauth: can't provide both Authorize and Unauthorize fields");if(void 0===e.Authorize&&void 0===e.Unauthorize)throw new n.ValidationError("DepositPreauth: must provide either Authorize or Unauthorize field");if(void 0!==e.Authorize){if("string"!=typeof e.Authorize)throw new n.ValidationError("DepositPreauth: Authorize must be a string");if(e.Account===e.Authorize)throw new n.ValidationError("DepositPreauth: Account can't preauthorize its own address")}if(void 0!==e.Unauthorize){if("string"!=typeof e.Unauthorize)throw new n.ValidationError("DepositPreauth: Unauthorize must be a string");if(e.Account===e.Unauthorize)throw new n.ValidationError("DepositPreauth: Account can't unauthorize its own address")}}},70255:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.EnableAmendmentFlags=void 0,(r=t.EnableAmendmentFlags||(t.EnableAmendmentFlags={}))[r.tfGotMajority=65536]="tfGotMajority",r[r.tfLostMajority=131072]="tfLostMajority"},66350:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateEscrowCancel=void 0;const n=r(74337),i=r(19061);t.validateEscrowCancel=function(e){if((0,i.validateBaseTransaction)(e),void 0===e.Owner)throw new n.ValidationError("EscrowCancel: missing Owner");if("string"!=typeof e.Owner)throw new n.ValidationError("EscrowCancel: Owner must be a string");if(void 0===e.OfferSequence)throw new n.ValidationError("EscrowCancel: missing OfferSequence");if("number"!=typeof e.OfferSequence)throw new n.ValidationError("EscrowCancel: OfferSequence must be a number")}},26145:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateEscrowCreate=void 0;const n=r(74337),i=r(19061);t.validateEscrowCreate=function(e){if((0,i.validateBaseTransaction)(e),void 0===e.Amount)throw new n.ValidationError("EscrowCreate: missing field Amount");if("string"!=typeof e.Amount)throw new n.ValidationError("EscrowCreate: Amount must be a string");if(void 0===e.Destination)throw new n.ValidationError("EscrowCreate: missing field Destination");if("string"!=typeof e.Destination)throw new n.ValidationError("EscrowCreate: Destination must be a string");if(void 0===e.CancelAfter&&void 0===e.FinishAfter)throw new n.ValidationError("EscrowCreate: Either CancelAfter or FinishAfter must be specified");if(void 0===e.FinishAfter&&void 0===e.Condition)throw new n.ValidationError("EscrowCreate: Either Condition or FinishAfter must be specified");if(void 0!==e.CancelAfter&&"number"!=typeof e.CancelAfter)throw new n.ValidationError("EscrowCreate: CancelAfter must be a number");if(void 0!==e.FinishAfter&&"number"!=typeof e.FinishAfter)throw new n.ValidationError("EscrowCreate: FinishAfter must be a number");if(void 0!==e.Condition&&"string"!=typeof e.Condition)throw new n.ValidationError("EscrowCreate: Condition must be a string");if(void 0!==e.DestinationTag&&"number"!=typeof e.DestinationTag)throw new n.ValidationError("EscrowCreate: DestinationTag must be a number")}},64055:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateEscrowFinish=void 0;const n=r(74337),i=r(19061);t.validateEscrowFinish=function(e){if((0,i.validateBaseTransaction)(e),void 0===e.Owner)throw new n.ValidationError("EscrowFinish: missing field Owner");if("string"!=typeof e.Owner)throw new n.ValidationError("EscrowFinish: Owner must be a string");if(void 0===e.OfferSequence)throw new n.ValidationError("EscrowFinish: missing field OfferSequence");if("number"!=typeof e.OfferSequence)throw new n.ValidationError("EscrowFinish: OfferSequence must be a number");if(void 0!==e.Condition&&"string"!=typeof e.Condition)throw new n.ValidationError("EscrowFinish: Condition must be a string");if(void 0!==e.Fulfillment&&"string"!=typeof e.Fulfillment)throw new n.ValidationError("EscrowFinish: Fulfillment must be a string")}},9879:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),t.TrustSetFlags=t.PaymentChannelClaimFlags=t.PaymentFlags=t.OfferCreateFlags=t.NFTokenMintFlags=t.NFTokenCreateOfferFlags=t.EnableAmendmentFlags=t.AMMWithdrawFlags=t.AMMDepositFlags=t.AccountSetTfFlags=t.AccountSetAsfFlags=t.validate=void 0;var o=r(40951);Object.defineProperty(t,"validate",{enumerable:!0,get:function(){return o.validate}}),i(r(3378),t);var a=r(20489);Object.defineProperty(t,"AccountSetAsfFlags",{enumerable:!0,get:function(){return a.AccountSetAsfFlags}}),Object.defineProperty(t,"AccountSetTfFlags",{enumerable:!0,get:function(){return a.AccountSetTfFlags}});var s=r(74350);Object.defineProperty(t,"AMMDepositFlags",{enumerable:!0,get:function(){return s.AMMDepositFlags}});var u=r(71637);Object.defineProperty(t,"AMMWithdrawFlags",{enumerable:!0,get:function(){return u.AMMWithdrawFlags}});var c=r(70255);Object.defineProperty(t,"EnableAmendmentFlags",{enumerable:!0,get:function(){return c.EnableAmendmentFlags}});var f=r(38256);Object.defineProperty(t,"NFTokenCreateOfferFlags",{enumerable:!0,get:function(){return f.NFTokenCreateOfferFlags}});var l=r(69404);Object.defineProperty(t,"NFTokenMintFlags",{enumerable:!0,get:function(){return l.NFTokenMintFlags}});var d=r(82297);Object.defineProperty(t,"OfferCreateFlags",{enumerable:!0,get:function(){return d.OfferCreateFlags}});var h=r(4059);Object.defineProperty(t,"PaymentFlags",{enumerable:!0,get:function(){return h.PaymentFlags}});var p=r(24498);Object.defineProperty(t,"PaymentChannelClaimFlags",{enumerable:!0,get:function(){return p.PaymentChannelClaimFlags}});var y=r(18748);Object.defineProperty(t,"TrustSetFlags",{enumerable:!0,get:function(){return y.TrustSetFlags}})},3378:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isDeletedNode=t.isModifiedNode=t.isCreatedNode=void 0,t.isCreatedNode=function(e){return Object.prototype.hasOwnProperty.call(e,"CreatedNode")},t.isModifiedNode=function(e){return Object.prototype.hasOwnProperty.call(e,"ModifiedNode")},t.isDeletedNode=function(e){return Object.prototype.hasOwnProperty.call(e,"DeletedNode")}},84255:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateOfferCancel=void 0;const n=r(74337),i=r(19061);t.validateOfferCancel=function(e){if((0,i.validateBaseTransaction)(e),void 0===e.OfferSequence)throw new n.ValidationError("OfferCancel: missing field OfferSequence");if("number"!=typeof e.OfferSequence)throw new n.ValidationError("OfferCancel: OfferSequence must be a number")}},82297:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateOfferCreate=t.OfferCreateFlags=void 0;const n=r(74337),i=r(19061);var o;(o=t.OfferCreateFlags||(t.OfferCreateFlags={}))[o.tfPassive=65536]="tfPassive",o[o.tfImmediateOrCancel=131072]="tfImmediateOrCancel",o[o.tfFillOrKill=262144]="tfFillOrKill",o[o.tfSell=524288]="tfSell",t.validateOfferCreate=function(e){if((0,i.validateBaseTransaction)(e),void 0===e.TakerGets)throw new n.ValidationError("OfferCreate: missing field TakerGets");if(void 0===e.TakerPays)throw new n.ValidationError("OfferCreate: missing field TakerPays");if("string"!=typeof e.TakerGets&&!(0,i.isAmount)(e.TakerGets))throw new n.ValidationError("OfferCreate: invalid TakerGets");if("string"!=typeof e.TakerPays&&!(0,i.isAmount)(e.TakerPays))throw new n.ValidationError("OfferCreate: invalid TakerPays");if(void 0!==e.Expiration&&"number"!=typeof e.Expiration)throw new n.ValidationError("OfferCreate: invalid Expiration");if(void 0!==e.OfferSequence&&"number"!=typeof e.OfferSequence)throw new n.ValidationError("OfferCreate: invalid OfferSequence")}},4059:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validatePayment=t.PaymentFlags=void 0;const n=r(74337),i=r(143),o=r(19061);var a;function s(e){return!(void 0!==e.account&&"string"!=typeof e.account||void 0!==e.currency&&"string"!=typeof e.currency||void 0!==e.issuer&&"string"!=typeof e.issuer||(void 0===e.account||void 0!==e.currency||void 0!==e.issuer)&&void 0===e.currency&&void 0===e.issuer)}function u(e){for(const t of e)if(!s(t))return!1;return!0}!function(e){e[e.tfNoDirectRipple=65536]="tfNoDirectRipple",e[e.tfPartialPayment=131072]="tfPartialPayment",e[e.tfLimitQuality=262144]="tfLimitQuality"}(a=t.PaymentFlags||(t.PaymentFlags={})),t.validatePayment=function(e){if((0,o.validateBaseTransaction)(e),void 0===e.Amount)throw new n.ValidationError("PaymentTransaction: missing field Amount");if(!(0,o.isAmount)(e.Amount))throw new n.ValidationError("PaymentTransaction: invalid Amount");if(void 0===e.Destination)throw new n.ValidationError("PaymentTransaction: missing field Destination");if(!(0,o.isAmount)(e.Destination))throw new n.ValidationError("PaymentTransaction: invalid Destination");if(null!=e.DestinationTag&&"number"!=typeof e.DestinationTag)throw new n.ValidationError("PaymentTransaction: DestinationTag must be a number");if(void 0!==e.InvoiceID&&"string"!=typeof e.InvoiceID)throw new n.ValidationError("PaymentTransaction: InvoiceID must be a string");if(void 0!==e.Paths&&!function(e){if(!Array.isArray(e)||0===e.length)return!1;for(const t of e){if(!Array.isArray(t)||0===t.length)return!1;if(!u(t))return!1}return!0}(e.Paths))throw new n.ValidationError("PaymentTransaction: invalid Paths");if(void 0!==e.SendMax&&!(0,o.isAmount)(e.SendMax))throw new n.ValidationError("PaymentTransaction: invalid SendMax");!function(e){var t;if(null!=e.DeliverMin){if(null==e.Flags)throw new n.ValidationError("PaymentTransaction: tfPartialPayment flag required with DeliverMin");const r=e.Flags;if(!("number"==typeof r?(0,i.isFlagEnabled)(r,a.tfPartialPayment):null!==(t=r.tfPartialPayment)&&void 0!==t&&t))throw new n.ValidationError("PaymentTransaction: tfPartialPayment flag required with DeliverMin");if(!(0,o.isAmount)(e.DeliverMin))throw new n.ValidationError("PaymentTransaction: invalid DeliverMin")}}(e)}},24498:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validatePaymentChannelClaim=t.PaymentChannelClaimFlags=void 0;const n=r(74337),i=r(19061);var o;(o=t.PaymentChannelClaimFlags||(t.PaymentChannelClaimFlags={}))[o.tfRenew=65536]="tfRenew",o[o.tfClose=131072]="tfClose",t.validatePaymentChannelClaim=function(e){if((0,i.validateBaseTransaction)(e),void 0===e.Channel)throw new n.ValidationError("PaymentChannelClaim: missing Channel");if("string"!=typeof e.Channel)throw new n.ValidationError("PaymentChannelClaim: Channel must be a string");if(void 0!==e.Balance&&"string"!=typeof e.Balance)throw new n.ValidationError("PaymentChannelClaim: Balance must be a string");if(void 0!==e.Amount&&"string"!=typeof e.Amount)throw new n.ValidationError("PaymentChannelClaim: Amount must be a string");if(void 0!==e.Signature&&"string"!=typeof e.Signature)throw new n.ValidationError("PaymentChannelClaim: Signature must be a string");if(void 0!==e.PublicKey&&"string"!=typeof e.PublicKey)throw new n.ValidationError("PaymentChannelClaim: PublicKey must be a string")}},51434:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validatePaymentChannelCreate=void 0;const n=r(74337),i=r(19061);t.validatePaymentChannelCreate=function(e){if((0,i.validateBaseTransaction)(e),void 0===e.Amount)throw new n.ValidationError("PaymentChannelCreate: missing Amount");if("string"!=typeof e.Amount)throw new n.ValidationError("PaymentChannelCreate: Amount must be a string");if(void 0===e.Destination)throw new n.ValidationError("PaymentChannelCreate: missing Destination");if("string"!=typeof e.Destination)throw new n.ValidationError("PaymentChannelCreate: Destination must be a string");if(void 0===e.SettleDelay)throw new n.ValidationError("PaymentChannelCreate: missing SettleDelay");if("number"!=typeof e.SettleDelay)throw new n.ValidationError("PaymentChannelCreate: SettleDelay must be a number");if(void 0===e.PublicKey)throw new n.ValidationError("PaymentChannelCreate: missing PublicKey");if("string"!=typeof e.PublicKey)throw new n.ValidationError("PaymentChannelCreate: PublicKey must be a string");if(void 0!==e.CancelAfter&&"number"!=typeof e.CancelAfter)throw new n.ValidationError("PaymentChannelCreate: CancelAfter must be a number");if(void 0!==e.DestinationTag&&"number"!=typeof e.DestinationTag)throw new n.ValidationError("PaymentChannelCreate: DestinationTag must be a number")}},1734:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validatePaymentChannelFund=void 0;const n=r(74337),i=r(19061);t.validatePaymentChannelFund=function(e){if((0,i.validateBaseTransaction)(e),void 0===e.Channel)throw new n.ValidationError("PaymentChannelFund: missing Channel");if("string"!=typeof e.Channel)throw new n.ValidationError("PaymentChannelFund: Channel must be a string");if(void 0===e.Amount)throw new n.ValidationError("PaymentChannelFund: missing Amount");if("string"!=typeof e.Amount)throw new n.ValidationError("PaymentChannelFund: Amount must be a string");if(void 0!==e.Expiration&&"number"!=typeof e.Expiration)throw new n.ValidationError("PaymentChannelFund: Expiration must be a number")}},5586:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateSetRegularKey=void 0;const n=r(74337),i=r(19061);t.validateSetRegularKey=function(e){if((0,i.validateBaseTransaction)(e),void 0!==e.RegularKey&&"string"!=typeof e.RegularKey)throw new n.ValidationError("SetRegularKey: RegularKey must be a string")}},51756:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateSignerListSet=void 0;const n=r(74337),i=r(19061),o=/^[0-9A-Fa-f]{64}$/u;t.validateSignerListSet=function(e){if((0,i.validateBaseTransaction)(e),void 0===e.SignerQuorum)throw new n.ValidationError("SignerListSet: missing field SignerQuorum");if("number"!=typeof e.SignerQuorum)throw new n.ValidationError("SignerListSet: invalid SignerQuorum");if(0!==e.SignerQuorum){if(void 0===e.SignerEntries)throw new n.ValidationError("SignerListSet: missing field SignerEntries");if(!Array.isArray(e.SignerEntries))throw new n.ValidationError("SignerListSet: invalid SignerEntries");if(0===e.SignerEntries.length)throw new n.ValidationError("SignerListSet: need at least 1 member in SignerEntries");if(e.SignerEntries.length>32)throw new n.ValidationError("SignerListSet: maximum of 32 members allowed in SignerEntries");for(const t of e.SignerEntries){const e=t,{WalletLocator:r}=e.SignerEntry;if(void 0!==r&&!o.test(r))throw new n.ValidationError("SignerListSet: WalletLocator in SignerEntry must be a 256-bit (32-byte) hexadecimal value")}}}},58920:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateTicketCreate=void 0;const n=r(74337),i=r(19061);t.validateTicketCreate=function(e){(0,i.validateBaseTransaction)(e);const{TicketCount:t}=e;if(void 0===t)throw new n.ValidationError("TicketCreate: missing field TicketCount");if("number"!=typeof t)throw new n.ValidationError("TicketCreate: TicketCount must be a number");if(!Number.isInteger(t)||t<1||t>250)throw new n.ValidationError("TicketCreate: TicketCount must be an integer from 1 to 250")}},40951:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validate=void 0;const n=r(74337),i=r(143),o=r(27161),a=r(79228),s=r(20489),u=r(14139),c=r(59906),f=r(22781),l=r(74350),d=r(2638),h=r(71637),p=r(99618),y=r(97931),g=r(56680),b=r(61062),m=r(19061),v=r(44992),w=r(66350),_=r(26145),E=r(64055),S=r(10329),A=r(16362),O=r(66357),M=r(38256),T=r(69404),I=r(84255),N=r(82297),x=r(4059),L=r(24498),k=r(51434),R=r(1734),P=r(5586),B=r(51756),D=r(58920),C=r(18748);t.validate=function(e){const t=Object.assign({},e);if(null==t.TransactionType)throw new n.ValidationError("Object does not have a `TransactionType`");if("string"!=typeof t.TransactionType)throw new n.ValidationError("Object's `TransactionType` is not a string");if(null!=t.Memos&&"object"!=typeof t.Memos)throw new n.ValidationError("Memo must be array");switch(null!=t.Memos&&t.Memos.forEach((e=>{if(null==(null==e?void 0:e.Memo))throw new n.ValidationError("Memo data must be in a `Memo` field");if(e.Memo.MemoData&&!(0,i.isHex)(e.Memo.MemoData))throw new n.ValidationError("MemoData field must be a hex value");if(e.Memo.MemoType&&!(0,i.isHex)(e.Memo.MemoType))throw new n.ValidationError("MemoType field must be a hex value");if(e.Memo.MemoFormat&&!(0,i.isHex)(e.Memo.MemoFormat))throw new n.ValidationError("MemoFormat field must be a hex value")})),Object.keys(t).forEach((e=>{if(t[e]&&(0,m.isIssuedCurrency)(t[e])){const r=t[e].currency;if(3===r.length&&"XRP"===r.toUpperCase())throw new n.ValidationError(`Cannot have an issued currency with a similar standard code to XRP (received '${r}'). XRP is not an issued currency.`)}})),(0,o.setTransactionFlagsToNumber)(t),t.TransactionType){case"AccountDelete":(0,a.validateAccountDelete)(t);break;case"AccountSet":(0,s.validateAccountSet)(t);break;case"AMMBid":(0,u.validateAMMBid)(t);break;case"AMMDelete":(0,f.validateAMMDelete)(t);break;case"AMMDeposit":(0,l.validateAMMDeposit)(t);break;case"AMMCreate":(0,c.validateAMMCreate)(t);break;case"AMMVote":(0,d.validateAMMVote)(t);break;case"AMMWithdraw":(0,h.validateAMMWithdraw)(t);break;case"CheckCancel":(0,p.validateCheckCancel)(t);break;case"CheckCash":(0,y.validateCheckCash)(t);break;case"CheckCreate":(0,g.validateCheckCreate)(t);break;case"Clawback":(0,b.validateClawback)(t);break;case"DepositPreauth":(0,v.validateDepositPreauth)(t);break;case"EscrowCancel":(0,w.validateEscrowCancel)(t);break;case"EscrowCreate":(0,_.validateEscrowCreate)(t);break;case"EscrowFinish":(0,E.validateEscrowFinish)(t);break;case"NFTokenAcceptOffer":(0,S.validateNFTokenAcceptOffer)(t);break;case"NFTokenBurn":(0,A.validateNFTokenBurn)(t);break;case"NFTokenCancelOffer":(0,O.validateNFTokenCancelOffer)(t);break;case"NFTokenCreateOffer":(0,M.validateNFTokenCreateOffer)(t);break;case"NFTokenMint":(0,T.validateNFTokenMint)(t);break;case"OfferCancel":(0,I.validateOfferCancel)(t);break;case"OfferCreate":(0,N.validateOfferCreate)(t);break;case"Payment":(0,x.validatePayment)(t);break;case"PaymentChannelClaim":(0,L.validatePaymentChannelClaim)(t);break;case"PaymentChannelCreate":(0,k.validatePaymentChannelCreate)(t);break;case"PaymentChannelFund":(0,R.validatePaymentChannelFund)(t);break;case"SetRegularKey":(0,P.validateSetRegularKey)(t);break;case"SignerListSet":(0,B.validateSignerListSet)(t);break;case"TicketCreate":(0,D.validateTicketCreate)(t);break;case"TrustSet":(0,C.validateTrustSet)(t);break;default:throw new n.ValidationError(`Invalid field TransactionType: ${t.TransactionType}`)}}},18748:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateTrustSet=t.TrustSetFlags=void 0;const n=r(74337),i=r(19061);var o;(o=t.TrustSetFlags||(t.TrustSetFlags={}))[o.tfSetfAuth=65536]="tfSetfAuth",o[o.tfSetNoRipple=131072]="tfSetNoRipple",o[o.tfClearNoRipple=262144]="tfClearNoRipple",o[o.tfSetFreeze=1048576]="tfSetFreeze",o[o.tfClearFreeze=2097152]="tfClearFreeze",t.validateTrustSet=function(e){(0,i.validateBaseTransaction)(e);const{LimitAmount:t,QualityIn:r,QualityOut:o}=e;if(void 0===t)throw new n.ValidationError("TrustSet: missing field LimitAmount");if(!(0,i.isAmount)(t))throw new n.ValidationError("TrustSet: invalid LimitAmount");if(void 0!==r&&"number"!=typeof r)throw new n.ValidationError("TrustSet: QualityIn must be a number");if(void 0!==o&&"number"!=typeof o)throw new n.ValidationError("TrustSet: QualityOut must be a number")}},27161:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.setTransactionFlagsToNumber=t.parseAccountRootFlags=void 0;const n=r(74337),i=r(74347),o=r(20489),a=r(74350),s=r(71637),u=r(82297),c=r(4059),f=r(24498),l=r(18748),d=r(143);function h(e,t){return Object.keys(e).reduce(((r,i)=>{if(null==t[i])throw new n.ValidationError(`flag ${i} doesn't exist in flagEnum: ${JSON.stringify(t)}`);return e[i]?r|t[i]:r}),0)}t.parseAccountRootFlags=function(e){const t={};return Object.values(i.AccountRootFlags).forEach((r=>{"string"==typeof r&&(0,d.isFlagEnabled)(e,i.AccountRootFlags[r])&&(t[r]=!0)})),t},t.setTransactionFlagsToNumber=function(e){if(null!=e.Flags){if("number"!=typeof e.Flags)switch(e.TransactionType){case"AccountSet":return void(e.Flags=h(e.Flags,o.AccountSetTfFlags));case"AMMDeposit":return void(e.Flags=h(e.Flags,a.AMMDepositFlags));case"AMMWithdraw":return void(e.Flags=h(e.Flags,s.AMMWithdrawFlags));case"OfferCreate":return void(e.Flags=h(e.Flags,u.OfferCreateFlags));case"PaymentChannelClaim":return void(e.Flags=h(e.Flags,f.PaymentChannelClaimFlags));case"Payment":return void(e.Flags=h(e.Flags,c.PaymentFlags));case"TrustSet":return void(e.Flags=h(e.Flags,l.TrustSetFlags));default:e.Flags=0}}else e.Flags=0}},143:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isHex=t.isFlagEnabled=t.onlyHasFields=void 0;const r=/^[0-9A-Fa-f]+$/u;t.onlyHasFields=function(e,t){return Object.keys(e).every((e=>t.includes(e)))},t.isFlagEnabled=function(e,t){return(BigInt(t)&BigInt(e))===BigInt(t)},t.isHex=function(e){return r.test(e)}},71083:function(e,t,r){"use strict";var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,o){function a(e){try{u(n.next(e))}catch(e){o(e)}}function s(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,s)}u((n=n.apply(e,t||[])).next())}))},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=i(r(83753)),a=r(79798),s=r(74337),u=r(27161),c=r(17455),f=i(r(11437));function l(e,t,r){const{classicAccount:n,tag:i}=d(e[t]);if(e[t]=n,null!=i&&!1!==i){if(e[r]&&e[r]!==i)throw new s.ValidationError(`The ${r}, if present, must match the tag of the ${t} X-address`);e[r]=i}}function d(e,t){if((0,a.isValidXAddress)(e)){const r=(0,a.xAddressToClassicAddress)(e);if(null!=t&&r.tag!==t)throw new s.ValidationError("address includes a tag that does not match the tag specified in the transaction");return{classicAccount:r.classicAddress,tag:r.tag}}return{classicAccount:e,tag:t}}function h(e,t){const r=e[t];if("string"==typeof r){const{classicAccount:n}=d(r);e[t]=n}}function p(e,t){return new o.default(e).times(t).toString()}t.default=function(e,t){return n(this,void 0,void 0,(function*(){const r=Object.assign({},e);!function(e){l(e,"Account","SourceTag"),null!=e.Destination&&l(e,"Destination","DestinationTag"),h(e,"Authorize"),h(e,"Unauthorize"),h(e,"Owner"),h(e,"RegularKey")}(r),(0,u.setTransactionFlagsToNumber)(r);const i=[];return null==r.NetworkID&&(r.NetworkID=void 0!==(a=this).networkID&&a.networkID>1024&&(a.buildVersion&&function(e,t){if(e===t)return!0;const r=e.split("."),n=t.split("."),i=parseInt(r[0],10),o=parseInt(r[1],10),a=parseInt(n[0],10),s=parseInt(n[1],10);if(i!==a)return i<a;if(o!==s)return o<s;const u=r[2].split("-"),c=n[2].split("-"),f=parseInt(u[0],10),l=parseInt(c[0],10);return f!==l?f<l:u.length!==c.length?u.length>c.length:2===u.length&&(u[1][0].startsWith(c[1][0])?u[1].startsWith("b")?parseInt(u[1].slice(1),10)<parseInt(c[1].slice(1),10):parseInt(u[1].slice(2),10)<parseInt(c[1].slice(2),10):u[1]<c[1])}("1.11.0",a.buildVersion)||21338===a.networkID)?this.networkID:void 0),null==r.Sequence&&i.push(function(e,t){return n(this,void 0,void 0,(function*(){const r={command:"account_info",account:t.Account,ledger_index:"current"},n=yield e.request(r);t.Sequence=n.result.account_data.Sequence}))}(this,r)),null==r.Fee&&i.push(function(e,t,r=0){return n(this,void 0,void 0,(function*(){const i=yield(0,f.default)(e),a=(0,c.xrpToDrops)(i);let s=new o.default(a);if("EscrowFinish"===t.TransactionType&&null!=t.Fulfillment){const e=Math.ceil(t.Fulfillment.length/2);s=new o.default(p(a,33+e/16)).dp(0,o.default.ROUND_CEIL)}"AccountDelete"!==t.TransactionType&&"AMMCreate"!==t.TransactionType||(s=yield function(e){var t;return n(this,void 0,void 0,(function*(){const r=yield e.request({command:"server_state"}),n=null===(t=r.result.state.validated_ledger)||void 0===t?void 0:t.reserve_inc;return null==n?Promise.reject(new Error("Could not fetch Owner Reserve.")):new o.default(n)}))}(e)),r>0&&(s=o.default.sum(s,p(a,1+r)));const u=(0,c.xrpToDrops)(e.maxFeeXRP),l="AccountDelete"===t.TransactionType?s:o.default.min(s,u);t.Fee=l.dp(0,o.default.ROUND_CEIL).toString(10)}))}(this,r,t)),null==r.LastLedgerSequence&&i.push(function(e,t){return n(this,void 0,void 0,(function*(){const r=yield e.getLedgerIndex();t.LastLedgerSequence=r+20}))}(this,r)),"AccountDelete"===r.TransactionType&&i.push(function(e,t){return n(this,void 0,void 0,(function*(){const r={command:"account_objects",account:t.Account,ledger_index:"validated",deletion_blockers_only:!0},n=yield e.request(r);return new Promise(((e,r)=>{n.result.account_objects.length>0&&r(new s.XrplError(`Account ${t.Account} cannot be deleted; there are Escrows, PayChannels, RippleStates, or Checks associated with the account.`,n.result.account_objects)),e()}))}))}(this,r)),Promise.all(i).then((()=>r));var a}))}},21701:function(e,t,r){"use strict";var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,o){function a(e){try{u(n.next(e))}catch(e){o(e)}}function s(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,s)}u((n=n.apply(e,t||[])).next())}))},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getBalances=t.getXrpBalance=void 0;const o=i(r(96372)),a=r(17455);t.getXrpBalance=function(e,t={}){var r;return n(this,void 0,void 0,(function*(){const n={command:"account_info",account:e,ledger_index:null!==(r=t.ledger_index)&&void 0!==r?r:"validated",ledger_hash:t.ledger_hash},i=yield this.request(n);return(0,a.dropsToXrp)(i.result.account_data.Balance)}))},t.getBalances=function(e,t={}){var r;return n(this,void 0,void 0,(function*(){const n=[];let i=Promise.resolve("");t.peer||(i=this.getXrpBalance(e,{ledger_hash:t.ledger_hash,ledger_index:t.ledger_index}));const a={command:"account_lines",account:e,ledger_index:null!==(r=t.ledger_index)&&void 0!==r?r:"validated",ledger_hash:t.ledger_hash,peer:t.peer,limit:t.limit},s=this.requestAll(a);return yield Promise.all([i,s]).then((([e,t])=>{const r=(0,o.default)(t,(e=>e.result.lines.map((e=>({value:e.balance,currency:e.currency,issuer:e.account})))));""!==e&&n.push({currency:"XRP",value:e}),n.push(...r)})),n.slice(0,t.limit)}))}},11437:function(e,t,r){"use strict";var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,o){function a(e){try{u(n.next(e))}catch(e){o(e)}}function s(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,s)}u((n=n.apply(e,t||[])).next())}))},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=i(r(83753)),a=r(74337);t.default=function(e,t){var r;return n(this,void 0,void 0,(function*(){const n=null!=t?t:e.feeCushion,i=(yield e.request({command:"server_info"})).result.info,s=null===(r=i.validated_ledger)||void 0===r?void 0:r.base_fee_xrp;if(null==s)throw new a.XrplError("getFeeXrp: Could not get base_fee_xrp from server_info");const u=new o.default(s);null==i.load_factor&&(i.load_factor=1);let c=u.times(i.load_factor).times(n);return c=o.default.min(c,e.maxFeeXRP),new o.default(c.toFixed(6)).toString(10)}))}},4871:function(e,t){"use strict";var r=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,o){function a(e){try{u(n.next(e))}catch(e){o(e)}}function s(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,s)}u((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){return r(this,void 0,void 0,(function*(){return(yield this.request({command:"ledger",ledger_index:"validated"})).result.ledger_index}))}},64374:function(e,t,r){"use strict";var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,o){function a(e){try{u(n.next(e))}catch(e){o(e)}}function s(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,s)}u((n=n.apply(e,t||[])).next())}))},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=i(r(83753)),a=i(r(96372)),s=r(74337),u=r(36867);function c(e){return e.sort(((e,t)=>{var r,n;const i=null!==(r=e.quality)&&void 0!==r?r:0,a=null!==(n=t.quality)&&void 0!==n?n:0;return new o.default(i).comparedTo(a)}))}const f=new Set(["limit","ledger_index","ledger_hash","taker"]);t.default=function(e,t,r={}){var i,o;return n(this,void 0,void 0,(function*(){if(Object.keys(r).forEach((e=>{if(!f.has(e))throw new s.ValidationError(`Unexpected option: ${e}`,r)})),r.limit&&"number"!=typeof r.limit)throw new s.ValidationError("limit must be a number",r.limit);if(r.ledger_index&&!("number"==typeof r.ledger_index||"string"==typeof r.ledger_index&&["validated","closed","current"].includes(r.ledger_index)))throw new s.ValidationError('ledger_index must be a number or a string of "validated", "closed", or "current"',r.ledger_index);if(void 0!==r.ledger_hash&&null!==r.ledger_hash&&"string"!=typeof r.ledger_hash)throw new s.ValidationError("ledger_hash must be a string",r.ledger_hash);if(void 0!==r.taker&&"string"!=typeof r.taker)throw new s.ValidationError("taker must be a string",r.taker);const n={command:"book_offers",taker_pays:e,taker_gets:t,ledger_index:null!==(i=r.ledger_index)&&void 0!==i?i:"validated",ledger_hash:null===r.ledger_hash?void 0:r.ledger_hash,limit:null!==(o=r.limit)&&void 0!==o?o:20,taker:r.taker?r.taker:void 0},l=yield this.requestAll(n);n.taker_gets=e,n.taker_pays=t;const d=yield this.requestAll(n),h=[...(0,a.default)(l,(e=>e.result.offers)),...(0,a.default)(d,(e=>e.result.offers))],p=[],y=[];return h.forEach((e=>{0==(e.Flags&u.OfferFlags.lsfSell)?p.push(e):y.push(e)})),{buy:c(p).slice(0,r.limit),sell:c(y).slice(0,r.limit)}}))}},92475:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getOrderbook=t.getLedgerIndex=t.getXrpBalance=t.getBalances=t.autofill=void 0;var a=r(71083);Object.defineProperty(t,"autofill",{enumerable:!0,get:function(){return o(a).default}});var s=r(21701);Object.defineProperty(t,"getBalances",{enumerable:!0,get:function(){return s.getBalances}}),Object.defineProperty(t,"getXrpBalance",{enumerable:!0,get:function(){return s.getXrpBalance}});var u=r(4871);Object.defineProperty(t,"getLedgerIndex",{enumerable:!0,get:function(){return o(u).default}});var c=r(64374);Object.defineProperty(t,"getOrderbook",{enumerable:!0,get:function(){return o(c).default}}),i(r(69134),t),i(r(21796),t)},69134:function(e,t,r){"use strict";var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,o){function a(e){try{u(n.next(e))}catch(e){o(e)}}function s(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,s)}u((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.submitAndWait=t.submit=void 0;const i=r(79056),o=r(74337),a=r(17455);function s(e,t,r=!1){return n(this,void 0,void 0,(function*(){if(!c(t))throw new o.ValidationError("Transaction must be signed");const n={command:"submit",tx_blob:"string"==typeof t?t:(0,i.encode)(t),fail_hard:(a=t,"AccountDelete"===("string"==typeof a?(0,i.decode)(a):a).TransactionType||r)};var a;return e.request(n)}))}function u(e,t,r,i){return n(this,void 0,void 0,(function*(){yield function(e){return n(this,void 0,void 0,(function*(){return new Promise((e=>{setTimeout(e,1e3)}))}))}();const a=yield e.getLedgerIndex();if(r<a)throw new o.XrplError(`The latest ledger sequence ${a} is greater than the transaction's LastLedgerSequence (${r}).\nPreliminary result: ${i}`);const s=yield e.request({command:"tx",transaction:t}).catch((o=>n(this,void 0,void 0,(function*(){var n;const a=null===(n=null==o?void 0:o.data)||void 0===n?void 0:n.error;if("txnNotFound"===a)return u(e,t,r,i);throw new Error(`${a} \n Preliminary result: ${i}.\nFull error details: ${String(o)}`)}))));return s.result.validated?s:u(e,t,r,i)}))}function c(e){const t="string"==typeof e?(0,i.decode)(e):e;if("string"==typeof t)return!1;if(null!=t.Signers){const e=t.Signers;for(const t of e)if(null==t.Signer.SigningPubKey||null==t.Signer.TxnSignature)return!1;return!0}return null!=t.SigningPubKey&&null!=t.TxnSignature}function f(e,t,{autofill:r=!0,wallet:a}={}){return n(this,void 0,void 0,(function*(){if(c(t))return t;if(!a)throw new o.ValidationError("Wallet must be provided when submitting an unsigned transaction");let n="string"==typeof t?(0,i.decode)(t):t;return r&&(n=yield e.autofill(n)),a.sign(n).tx_blob}))}t.submit=function(e,t){return n(this,void 0,void 0,(function*(){return s(this,yield f(this,e,t),null==t?void 0:t.failHard)}))},t.submitAndWait=function(e,t){return n(this,void 0,void 0,(function*(){const r=yield f(this,e,t),n=function(e){return("string"==typeof e?(0,i.decode)(e):e).LastLedgerSequence}(r);if(null==n)throw new o.ValidationError("Transaction must contain a LastLedgerSequence value for reliable submission.");const c=yield s(this,r,null==t?void 0:t.failHard);return u(this,a.hashes.hashSignedTx(r),n,c.result.engine_result)}))}},21796:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ensureClassicAddress=void 0;const n=r(79798);t.ensureClassicAddress=function(e){if((0,n.isValidXAddress)(e)){const{classicAddress:t,tag:r}=(0,n.xAddressToClassicAddress)(e);if(!1!==r)throw new Error("This command does not support the use of a tag. Use an address without a tag.");return t}return e}},37620:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.deriveXAddress=t.deriveAddress=t.deriveKeypair=void 0;const n=r(79798),i=r(43004);Object.defineProperty(t,"deriveKeypair",{enumerable:!0,get:function(){return i.deriveKeypair}}),Object.defineProperty(t,"deriveAddress",{enumerable:!0,get:function(){return i.deriveAddress}}),t.deriveXAddress=function(e){const t=(0,i.deriveAddress)(e.publicKey);return(0,n.classicAddressToXAddress)(t,e.tag,e.test)}},91905:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const i=n(r(83753)),o=n(r(60567)),a=n(r(24865)),s=r(95488);function u(e){const t=Object.keys(e)[0],r=e[t];return Object.assign(Object.assign({},r),{NodeType:t,LedgerEntryType:r.LedgerEntryType,LedgerIndex:r.LedgerIndex,NewFields:r.NewFields,FinalFields:r.FinalFields,PreviousFields:r.PreviousFields})}function c(e){return"string"==typeof e?new i.default(e):new i.default(e.value)}function f(e){var t,r,n;let i=null;return(null===(t=e.NewFields)||void 0===t?void 0:t.Balance)?i=c(e.NewFields.Balance):(null===(r=e.PreviousFields)||void 0===r?void 0:r.Balance)&&(null===(n=e.FinalFields)||void 0===n?void 0:n.Balance)&&(i=c(e.FinalFields.Balance).minus(c(e.PreviousFields.Balance))),null===i||i.isZero()?null:i}function l(e){const t=new i.default(e.balance.value).negated();return{account:e.balance.issuer,balance:{issuer:e.account,currency:e.balance.currency,value:t.toString()}}}t.default=function(e){const t=function(e){return 0===e.AffectedNodes.length?[]:e.AffectedNodes.map(u)}(e).map((e=>{if("AccountRoot"===e.LedgerEntryType){const t=function(e){var t,r,n;const i=f(e);return null===i?null:{account:null!==(r=null===(t=e.FinalFields)||void 0===t?void 0:t.Account)&&void 0!==r?r:null===(n=e.NewFields)||void 0===n?void 0:n.Account,balance:{currency:"XRP",value:(0,s.dropsToXrp)(i).toString()}}}(e);return null==t?[]:[t]}if("RippleState"===e.LedgerEntryType){const t=function(e){var t,r;const n=f(e);if(null===n)return null;const i=null==e.NewFields?e.FinalFields:e.NewFields,o={account:null===(t=null==i?void 0:i.LowLimit)||void 0===t?void 0:t.issuer,balance:{issuer:null===(r=null==i?void 0:i.HighLimit)||void 0===r?void 0:r.issuer,currency:(null==i?void 0:i.Balance).currency,value:n.toString()}};return[o,l(o)]}(e);return null==t?[]:t}return[]}));return function(e){const t=(0,a.default)(e,(e=>e.account));return Object.entries(t).map((([e,t])=>({account:e,balances:t.map((e=>e.balance))})))}((0,o.default)(t))}},64212:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const i=n(r(96372)),o=r(79056),a=r(3378);t.default=function(e){if("string"!=typeof e&&void 0===(null==e?void 0:e.AffectedNodes))throw new TypeError(`Unable to parse the parameter given to getNFTokenID.\n 'meta' must be the metadata from an NFTokenMint transaction. Received ${JSON.stringify(e)} instead.`);const t=function(e){return"string"==typeof e?(0,o.decode)(e):e}(e).AffectedNodes.filter((e=>{var t;return(0,a.isCreatedNode)(e)?"NFTokenPage"===e.CreatedNode.LedgerEntryType:!!(0,a.isModifiedNode)(e)&&"NFTokenPage"===e.ModifiedNode.LedgerEntryType&&Boolean(null===(t=e.ModifiedNode.PreviousFields)||void 0===t?void 0:t.NFTokens)})),r=new Set((0,i.default)(t,(e=>{var t;return((0,a.isModifiedNode)(e)?null===(t=e.ModifiedNode.PreviousFields)||void 0===t?void 0:t.NFTokens:[]).map((e=>e.NFToken.NFTokenID))})).filter((e=>Boolean(e))));return(0,i.default)(t,(e=>{var t,r,n,i,o,a;return(null!==(a=null!==(n=null===(r=null===(t=e.ModifiedNode)||void 0===t?void 0:t.FinalFields)||void 0===r?void 0:r.NFTokens)&&void 0!==n?n:null===(o=null===(i=e.CreatedNode)||void 0===i?void 0:i.NewFields)||void 0===o?void 0:o.NFTokens)&&void 0!==a?a:[]).map((e=>e.NFToken.NFTokenID))})).filter((e=>Boolean(e))).find((e=>!r.has(e)))}},95963:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.TRANSACTION_ID=1415073280]="TRANSACTION_ID",e[e.TRANSACTION_NODE=1397638144]="TRANSACTION_NODE",e[e.INNER_NODE=1296649728]="INNER_NODE",e[e.LEAF_NODE=1296846336]="LEAF_NODE",e[e.TRANSACTION_SIGN=1398036480]="TRANSACTION_SIGN",e[e.TRANSACTION_SIGN_TESTNET=1937012736]="TRANSACTION_SIGN_TESTNET",e[e.TRANSACTION_MULTISIGN=1397576704]="TRANSACTION_MULTISIGN",e[e.LEDGER=1280791040]="LEDGER"}(r||(r={})),t.default=r},46728:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const i=r(74337),o=n(r(95963)),a=n(r(1582)),s=n(r(57663)),u=r(30134),c="0000000000000000000000000000000000000000000000000000000000000000";class f extends u.Node{constructor(e=0){super(),this.leaves={},this.type=u.NodeType.INNER,this.depth=e,this.empty=!0}get hash(){if(this.empty)return c;let e="";for(let t=0;t<=15;t++){const r=this.leaves[t];e+=null==r?c:r.hash}const t=o.default.INNER_NODE.toString(16);return(0,a.default)(t+e)}addItem(e,t){const r=this.getNode(parseInt(e[this.depth],16));if(void 0!==r){if(r instanceof f)r.addItem(e,t);else if(r instanceof s.default){if(r.tag===e)throw new i.XrplError("Tried to add a node to a SHAMap that was already in there.");{const n=new f(this.depth+1);n.addItem(r.tag,r),n.addItem(e,t),this.setNode(parseInt(e[this.depth],16),n)}}}else this.setNode(parseInt(e[this.depth],16),t)}setNode(e,t){if(e<0||e>15)throw new i.XrplError("Invalid slot: slot must be between 0-15.");this.leaves[e]=t,this.empty=!1}getNode(e){if(e<0||e>15)throw new i.XrplError("Invalid slot: slot must be between 0-15.");return this.leaves[e]}}t.default=f},57663:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const i=r(74337),o=n(r(95963)),a=n(r(1582)),s=r(30134);class u extends s.Node{constructor(e,t,r){super(),this.tag=e,this.type=r,this.data=t}get hash(){switch(this.type){case s.NodeType.ACCOUNT_STATE:{const e=o.default.LEAF_NODE.toString(16);return(0,a.default)(e+this.data+this.tag)}case s.NodeType.TRANSACTION_NO_METADATA:{const e=o.default.TRANSACTION_ID.toString(16);return(0,a.default)(e+this.data)}case s.NodeType.TRANSACTION_METADATA:{const e=o.default.TRANSACTION_NODE.toString(16);return(0,a.default)(e+this.data+this.tag)}default:throw new i.XrplError("Tried to hash a SHAMap node of unknown type.")}}addItem(e,t){throw new i.XrplError("Cannot call addItem on a LeafNode")}}t.default=u},17418:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const a=o(r(46728)),s=o(r(57663));i(r(30134),t),t.default=class{constructor(){this.root=new a.default(0)}get hash(){return this.root.hash}addItem(e,t,r){this.root.addItem(e,new s.default(e,t,r))}}},30134:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.Node=t.NodeType=void 0,(r=t.NodeType||(t.NodeType={}))[r.INNER=1]="INNER",r[r.TRANSACTION_NO_METADATA=2]="TRANSACTION_NO_METADATA",r[r.TRANSACTION_METADATA=3]="TRANSACTION_METADATA",r[r.ACCOUNT_STATE=4]="ACCOUNT_STATE",t.Node=class{}},62061:function(e,t,r){"use strict";var n=r(18390).Buffer,i=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return o(t,e),t},s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.hashStateTree=t.hashTxTree=t.hashLedgerHeader=t.hashSignedTx=void 0;const u=s(r(83753)),c=r(79056),f=r(74337),l=s(r(95963)),d=s(r(1582)),h=a(r(17418)),p=16;function y(e,t){return Number(e).toString(p).padStart(2*t,"0")}function g(e){return n.from(e).toString("hex")}function b(e){const t=e.length/2;if(t<=192)return g([t])+e;if(t<=12480){const r=t-193;return g([193+(r>>>8),255&r])+e}if(t<=918744){const r=t-12481;return g([241+(r>>>16),r>>>8&255,255&r])+e}throw new f.XrplError("Variable integer overflow.")}function m(e){let t,r;if("string"==typeof e?(t=e,r=(0,c.decode)(e)):(t=(0,c.encode)(e),r=e),void 0===r.TxnSignature&&void 0===r.Signers)throw new f.ValidationError("The transaction must be signed to hash it.");const n=l.default.TRANSACTION_ID.toString(16).toUpperCase();return(0,d.default)(n.concat(t))}function v(e){const t=l.default.LEDGER.toString(p).toUpperCase()+y(Number(e.ledger_index),4)+(r=e.total_coins,8,new u.default(r).toString(p).padStart(16,"0"))+e.parent_hash+e.transaction_hash+e.account_hash+y(e.parent_close_time,4)+y(e.close_time,4)+y(e.close_time_resolution,1)+y(e.close_flags,1);var r;return(0,d.default)(t)}function w(e){var t;const r=new h.default;for(const n of e){const e=(0,c.encode)(n),i=(0,c.encode)(null!==(t=n.metaData)&&void 0!==t?t:{}),o=m(e),a=b(e)+b(i);r.addItem(o,a,h.NodeType.TRANSACTION_METADATA)}return r.hash}function _(e){const t=new h.default;return e.forEach((e=>{const r=(0,c.encode)(e);t.addItem(e.index,r,h.NodeType.ACCOUNT_STATE)})),t.hash}function E(e,t){const{transaction_hash:r}=e;if(!t.computeTreeHashes)return r;if(null==e.transactions)throw new f.ValidationError("transactions is missing from the ledger");const n=w(e.transactions);if(r!==n)throw new f.ValidationError("transactionHash in header does not match computed hash of transactions",{transactionHashInHeader:r,computedHashOfTransactions:n});return n}function S(e,t){const{account_hash:r}=e;if(!t.computeTreeHashes)return r;if(null==e.accountState)throw new f.ValidationError("accountState is missing from the ledger");const n=_(e.accountState);if(r!==n)throw new f.ValidationError("stateHash in header does not match computed hash of state");return n}t.hashSignedTx=m,t.hashLedgerHeader=v,t.hashTxTree=w,t.hashStateTree=_,t.default=function(e,t={}){const r={transaction_hash:E(e,t),account_hash:S(e,t)};return v(Object.assign(Object.assign({},e),r))}},65570:function(e,t,r){"use strict";var n=r(18390).Buffer,i=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return o(t,e),t},s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.hashTxTree=t.hashStateTree=t.hashLedger=t.hashSignedTx=t.hashLedgerHeader=t.hashPaymentChannel=t.hashEscrow=t.hashTrustline=t.hashOfferId=t.hashSignerListId=t.hashAccountRoot=t.hashTx=void 0;const u=s(r(83753)),c=r(79798),f=a(r(62061));t.hashLedger=f.default,Object.defineProperty(t,"hashLedgerHeader",{enumerable:!0,get:function(){return f.hashLedgerHeader}}),Object.defineProperty(t,"hashSignedTx",{enumerable:!0,get:function(){return f.hashSignedTx}}),Object.defineProperty(t,"hashTxTree",{enumerable:!0,get:function(){return f.hashTxTree}}),Object.defineProperty(t,"hashStateTree",{enumerable:!0,get:function(){return f.hashStateTree}});const l=s(r(95963)),d=s(r(75265)),h=s(r(1582)),p=16;function y(e){return n.from((0,c.decodeAccountID)(e)).toString("hex")}function g(e){return d.default[e].charCodeAt(0).toString(p).padStart(4,"0")}t.hashTx=function(e){const t=l.default.TRANSACTION_SIGN.toString(p).toUpperCase();return(0,h.default)(t+e)},t.hashAccountRoot=function(e){return(0,h.default)(g("account")+y(e))},t.hashSignerListId=function(e){return(0,h.default)(`${g("signerList")+y(e)}00000000`)},t.hashOfferId=function(e,t){const r=d.default.offer.charCodeAt(0).toString(p).padStart(2,"0"),n=t.toString(p).padStart(8,"0"),i=`00${r}`;return(0,h.default)(i+y(e)+n)},t.hashTrustline=function(e,t,r){const i=y(e),o=y(t),a=new u.default(i,16).isGreaterThan(new u.default(o,16)),s=a?o:i,c=a?i:o,f=g("rippleState");return(0,h.default)(f+s+c+function(e){if(3!==e.length)return e;const t=Array(20).fill(0);return t[12]=255&e.charCodeAt(0),t[13]=255&e.charCodeAt(1),t[14]=255&e.charCodeAt(2),n.from(t).toString("hex")}(r))},t.hashEscrow=function(e,t){return(0,h.default)(g("escrow")+y(e)+t.toString(p).padStart(8,"0"))},t.hashPaymentChannel=function(e,t,r){return(0,h.default)(g("paychan")+y(e)+y(t)+r.toString(p).padStart(8,"0"))}},75265:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={account:"a",dirNode:"d",generatorMap:"g",rippleState:"r",offer:"o",ownerDir:"O",bookDir:"B",contract:"c",skipList:"s",escrow:"u",amendment:"f",feeSettings:"e",ticket:"T",signerList:"S",paychan:"x",check:"C",depositPreauth:"p"}},1582:(e,t,r)=>{"use strict";var n=r(18390).Buffer;Object.defineProperty(t,"__esModule",{value:!0});const i=r(54795);t.default=function(e){return(0,i.createHash)("sha512").update(n.from(e,"hex")).digest("hex").toUpperCase().slice(0,64)}},17455:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t},a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.parseNFTokenID=t.getNFTokenID=t.encodeForSigningClaim=t.encodeForSigning=t.encodeForMultiSigning=t.decode=t.encode=t.decodeXAddress=t.encodeXAddress=t.decodeAccountPublic=t.encodeAccountPublic=t.decodeNodePublic=t.encodeNodePublic=t.decodeAccountID=t.encodeAccountID=t.decodeSeed=t.encodeSeed=t.isValidClassicAddress=t.isValidXAddress=t.xAddressToClassicAddress=t.classicAddressToXAddress=t.convertHexToString=t.convertStringToHex=t.verifyPaymentChannelClaim=t.verifyKeypairSignature=t.signPaymentChannelClaim=t.deriveXAddress=t.deriveAddress=t.deriveKeypair=t.hashes=t.isValidAddress=t.isValidSecret=t.qualityToDecimal=t.transferRateToDecimal=t.decimalToTransferRate=t.percentToTransferRate=t.decimalToQuality=t.percentToQuality=t.unixTimeToRippleTime=t.rippleTimeToUnixTime=t.isoTimeToRippleTime=t.rippleTimeToISOTime=t.hasNextPage=t.xrpToDrops=t.dropsToXrp=t.getBalanceChanges=void 0;const s=r(79798);Object.defineProperty(t,"classicAddressToXAddress",{enumerable:!0,get:function(){return s.classicAddressToXAddress}}),Object.defineProperty(t,"decodeAccountID",{enumerable:!0,get:function(){return s.decodeAccountID}}),Object.defineProperty(t,"decodeAccountPublic",{enumerable:!0,get:function(){return s.decodeAccountPublic}}),Object.defineProperty(t,"decodeNodePublic",{enumerable:!0,get:function(){return s.decodeNodePublic}}),Object.defineProperty(t,"decodeSeed",{enumerable:!0,get:function(){return s.decodeSeed}}),Object.defineProperty(t,"decodeXAddress",{enumerable:!0,get:function(){return s.decodeXAddress}}),Object.defineProperty(t,"encodeAccountID",{enumerable:!0,get:function(){return s.encodeAccountID}}),Object.defineProperty(t,"encodeAccountPublic",{enumerable:!0,get:function(){return s.encodeAccountPublic}}),Object.defineProperty(t,"encodeNodePublic",{enumerable:!0,get:function(){return s.encodeNodePublic}}),Object.defineProperty(t,"encodeSeed",{enumerable:!0,get:function(){return s.encodeSeed}}),Object.defineProperty(t,"encodeXAddress",{enumerable:!0,get:function(){return s.encodeXAddress}}),Object.defineProperty(t,"isValidClassicAddress",{enumerable:!0,get:function(){return s.isValidClassicAddress}}),Object.defineProperty(t,"isValidXAddress",{enumerable:!0,get:function(){return s.isValidXAddress}}),Object.defineProperty(t,"xAddressToClassicAddress",{enumerable:!0,get:function(){return s.xAddressToClassicAddress}});const u=o(r(79056)),c=r(43004);Object.defineProperty(t,"verifyKeypairSignature",{enumerable:!0,get:function(){return c.verify}});const f=r(37620);Object.defineProperty(t,"deriveKeypair",{enumerable:!0,get:function(){return f.deriveKeypair}}),Object.defineProperty(t,"deriveAddress",{enumerable:!0,get:function(){return f.deriveAddress}}),Object.defineProperty(t,"deriveXAddress",{enumerable:!0,get:function(){return f.deriveXAddress}});const l=a(r(91905));t.getBalanceChanges=l.default;const d=a(r(64212));t.getNFTokenID=d.default;const h=r(65570),p=a(r(39826));t.parseNFTokenID=p.default;const y=r(12234);Object.defineProperty(t,"percentToTransferRate",{enumerable:!0,get:function(){return y.percentToTransferRate}}),Object.defineProperty(t,"decimalToTransferRate",{enumerable:!0,get:function(){return y.decimalToTransferRate}}),Object.defineProperty(t,"transferRateToDecimal",{enumerable:!0,get:function(){return y.transferRateToDecimal}}),Object.defineProperty(t,"percentToQuality",{enumerable:!0,get:function(){return y.percentToQuality}}),Object.defineProperty(t,"decimalToQuality",{enumerable:!0,get:function(){return y.decimalToQuality}}),Object.defineProperty(t,"qualityToDecimal",{enumerable:!0,get:function(){return y.qualityToDecimal}});const g=a(r(48673));t.signPaymentChannelClaim=g.default;const b=r(62850);Object.defineProperty(t,"convertHexToString",{enumerable:!0,get:function(){return b.convertHexToString}}),Object.defineProperty(t,"convertStringToHex",{enumerable:!0,get:function(){return b.convertStringToHex}});const m=r(21063);Object.defineProperty(t,"rippleTimeToISOTime",{enumerable:!0,get:function(){return m.rippleTimeToISOTime}}),Object.defineProperty(t,"isoTimeToRippleTime",{enumerable:!0,get:function(){return m.isoTimeToRippleTime}}),Object.defineProperty(t,"rippleTimeToUnixTime",{enumerable:!0,get:function(){return m.rippleTimeToUnixTime}}),Object.defineProperty(t,"unixTimeToRippleTime",{enumerable:!0,get:function(){return m.unixTimeToRippleTime}});const v=a(r(80563));t.verifyPaymentChannelClaim=v.default;const w=r(95488);Object.defineProperty(t,"xrpToDrops",{enumerable:!0,get:function(){return w.xrpToDrops}}),Object.defineProperty(t,"dropsToXrp",{enumerable:!0,get:function(){return w.dropsToXrp}}),t.isValidSecret=function(e){try{return(0,f.deriveKeypair)(e),!0}catch(e){return!1}},t.encode=function(e){return u.encode(e)},t.encodeForSigning=function(e){return u.encodeForSigning(e)},t.encodeForSigningClaim=function(e){return u.encodeForSigningClaim(e)},t.encodeForMultiSigning=function(e,t){return u.encodeForMultisigning(e,t)},t.decode=function(e){return u.decode(e)},t.isValidAddress=function(e){return(0,s.isValidXAddress)(e)||(0,s.isValidClassicAddress)(e)},t.hasNextPage=function(e){return Boolean(e.result.marker)};const _={hashSignedTx:h.hashSignedTx,hashTx:h.hashTx,hashAccountRoot:h.hashAccountRoot,hashSignerListId:h.hashSignerListId,hashOfferId:h.hashOfferId,hashTrustline:h.hashTrustline,hashTxTree:h.hashTxTree,hashStateTree:h.hashStateTree,hashLedger:h.hashLedger,hashLedgerHeader:h.hashLedgerHeader,hashEscrow:h.hashEscrow,hashPaymentChannel:h.hashPaymentChannel};t.hashes=_},39826:function(e,t,r){"use strict";var n=r(18390).Buffer,i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=i(r(83753)),a=r(79798),s=r(74337);t.default=function(e){if(64!==e.length)throw new s.XrplError(`Attempting to parse a nftokenID with length ${e.length}\n , but expected a token with length 64`);const t=new o.default(e.substring(48,56),16).toNumber(),r=new o.default(e.substring(56,64),16).toNumber();var i,u;return{NFTokenID:e,Flags:new o.default(e.substring(0,4),16).toNumber(),TransferFee:new o.default(e.substring(4,8),16).toNumber(),Issuer:(0,a.encodeAccountID)(n.from(e.substring(8,48),"hex")),Taxon:(i=t,u=r,(i^384160001*u+2459)%4294967296),Sequence:r}}},12234:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.percentToQuality=t.transferRateToDecimal=t.qualityToDecimal=t.decimalToQuality=t.percentToTransferRate=t.decimalToTransferRate=void 0;const i=n(r(83753)),o=r(74337),a="1000000000";function s(e){if(!e.endsWith("%"))throw new o.ValidationError(`Value ${e} must end with %`);const t=e.split("%").filter((e=>""!==e));if(1!==t.length)throw new o.ValidationError(`Value ${e} contains too many % signs`);return new i.default(t[0]).dividedBy("100").toString(10)}function u(e){const t=new i.default(e).times(a).plus(a);if(t.isLessThan(a)||t.isGreaterThan("2000000000"))throw new o.ValidationError("Decimal value must be between 0 and 1.00.");const r=t.toString(10);if(r===a)return 0;if("NaN"===r)throw new o.ValidationError("Value is not a number");if(r.includes("."))throw new o.ValidationError("Decimal exceeds maximum precision.");return Number(r)}function c(e){const t=new i.default(e).times(a).toString(10);if("NaN"===t)throw new o.ValidationError("Value is not a number");if(t.includes("-"))throw new o.ValidationError("Cannot have negative Quality");if(t===a)return 0;if(t.includes("."))throw new o.ValidationError("Decimal exceeds maximum precision.");return Number(t)}t.decimalToTransferRate=u,t.percentToTransferRate=function(e){return u(s(e))},t.decimalToQuality=c,t.qualityToDecimal=function(e){if(!Number.isInteger(e))throw new o.ValidationError("Quality must be an integer");if(e<0)throw new o.ValidationError("Negative quality not allowed");return 0===e?"1":new i.default(e).dividedBy(a).toString(10)},t.transferRateToDecimal=function(e){if(!Number.isInteger(e))throw new o.ValidationError("Error decoding, transfer Rate must be an integer");if(0===e)return"0";const t=new i.default(e).minus(a).dividedBy(a);if(t.isLessThan(0))throw new o.ValidationError("Error decoding, negative transfer rate");return t.toString(10)},t.percentToQuality=function(e){return c(s(e))}},48673:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(79056),i=r(43004),o=r(95488);t.default=function(e,t,r){const a=(0,n.encodeForSigningClaim)({channel:e,amount:(0,o.xrpToDrops)(t)});return(0,i.sign)(a,r)}},62850:(e,t,r)=>{"use strict";var n=r(18390).Buffer;Object.defineProperty(t,"__esModule",{value:!0}),t.convertStringToHex=t.convertHexToString=void 0,t.convertStringToHex=function(e){return n.from(e,"utf8").toString("hex").toUpperCase()},t.convertHexToString=function(e,t="utf8"){return n.from(e,"hex").toString(t)}},21063:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isoTimeToRippleTime=t.rippleTimeToISOTime=t.unixTimeToRippleTime=t.rippleTimeToUnixTime=void 0;const r=946684800;function n(e){return 1e3*(e+r)}function i(e){return Math.round(e/1e3)-r}t.rippleTimeToUnixTime=n,t.unixTimeToRippleTime=i,t.rippleTimeToISOTime=function(e){return new Date(n(e)).toISOString()},t.isoTimeToRippleTime=function(e){return i(("string"==typeof e?new Date(e):e).getTime())}},80563:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(79056),i=r(43004),o=r(95488);t.default=function(e,t,r,a){const s=(0,n.encodeForSigningClaim)({channel:e,amount:(0,o.xrpToDrops)(t)});return(0,i.verify)(s,r,a)}},95488:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.xrpToDrops=t.dropsToXrp=void 0;const i=n(r(83753)),o=r(74337),a=1e6,s=/^-?[0-9.]+$/u;t.dropsToXrp=function(e){const t=new i.default(e).toString(10);if("string"==typeof e&&"NaN"===t)throw new o.ValidationError(`dropsToXrp: invalid value '${e}', should be a BigNumber or string-encoded number.`);if(t.includes("."))throw new o.ValidationError(`dropsToXrp: value '${t}' has too many decimal places.`);if(!s.exec(t))throw new o.ValidationError(`dropsToXrp: failed sanity check - value '${t}', does not match (^-?[0-9]+$).`);return new i.default(t).dividedBy(a).toString(10)},t.xrpToDrops=function(e){const t=new i.default(e).toString(10);if("string"==typeof e&&"NaN"===t)throw new o.ValidationError(`xrpToDrops: invalid value '${e}', should be a BigNumber or string-encoded number.`);if(!s.exec(t))throw new o.ValidationError(`xrpToDrops: failed sanity check - value '${t}', does not match (^-?[0-9.]+$).`);const r=t.split(".");if(r.length>2)throw new o.ValidationError(`xrpToDrops: failed sanity check - value '${t}' has too many decimal points.`);if((r[1]||"0").length>6)throw new o.ValidationError(`xrpToDrops: value '${t}' has too many decimal places.`);return new i.default(t).times(a).integerValue(i.default.ROUND_FLOOR).toString(10)}},33196:()=>{},38087:()=>{},20395:()=>{},53260:()=>{},74854:()=>{},66602:()=>{},30174:()=>{},74546:(e,t,r)=>{"use strict";var n=["BigInt64Array","BigUint64Array","Float32Array","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Uint8Array","Uint8ClampedArray"],i="undefined"==typeof globalThis?r.g:globalThis;e.exports=function(){for(var e=[],t=0;t<n.length;t++)"function"==typeof i[n[t]]&&(e[e.length]=n[t]);return e}},32308:e=>{"use strict";e.exports=JSON.parse('["abandon","ability","able","about","above","absent","absorb","abstract","absurd","abuse","access","accident","account","accuse","achieve","acid","acoustic","acquire","across","act","action","actor","actress","actual","adapt","add","addict","address","adjust","admit","adult","advance","advice","aerobic","affair","afford","afraid","again","age","agent","agree","ahead","aim","air","airport","aisle","alarm","album","alcohol","alert","alien","all","alley","allow","almost","alone","alpha","already","also","alter","always","amateur","amazing","among","amount","amused","analyst","anchor","ancient","anger","angle","angry","animal","ankle","announce","annual","another","answer","antenna","antique","anxiety","any","apart","apology","appear","apple","approve","april","arch","arctic","area","arena","argue","arm","armed","armor","army","around","arrange","arrest","arrive","arrow","art","artefact","artist","artwork","ask","aspect","assault","asset","assist","assume","asthma","athlete","atom","attack","attend","attitude","attract","auction","audit","august","aunt","author","auto","autumn","average","avocado","avoid","awake","aware","away","awesome","awful","awkward","axis","baby","bachelor","bacon","badge","bag","balance","balcony","ball","bamboo","banana","banner","bar","barely","bargain","barrel","base","basic","basket","battle","beach","bean","beauty","because","become","beef","before","begin","behave","behind","believe","below","belt","bench","benefit","best","betray","better","between","beyond","bicycle","bid","bike","bind","biology","bird","birth","bitter","black","blade","blame","blanket","blast","bleak","bless","blind","blood","blossom","blouse","blue","blur","blush","board","boat","body","boil","bomb","bone","bonus","book","boost","border","boring","borrow","boss","bottom","bounce","box","boy","bracket","brain","brand","brass","brave","bread","breeze","brick","bridge","brief","bright","bring","brisk","broccoli","broken","bronze","broom","brother","brown","brush","bubble","buddy","budget","buffalo","build","bulb","bulk","bullet","bundle","bunker","burden","burger","burst","bus","business","busy","butter","buyer","buzz","cabbage","cabin","cable","cactus","cage","cake","call","calm","camera","camp","can","canal","cancel","candy","cannon","canoe","canvas","canyon","capable","capital","captain","car","carbon","card","cargo","carpet","carry","cart","case","cash","casino","castle","casual","cat","catalog","catch","category","cattle","caught","cause","caution","cave","ceiling","celery","cement","census","century","cereal","certain","chair","chalk","champion","change","chaos","chapter","charge","chase","chat","cheap","check","cheese","chef","cherry","chest","chicken","chief","child","chimney","choice","choose","chronic","chuckle","chunk","churn","cigar","cinnamon","circle","citizen","city","civil","claim","clap","clarify","claw","clay","clean","clerk","clever","click","client","cliff","climb","clinic","clip","clock","clog","close","cloth","cloud","clown","club","clump","cluster","clutch","coach","coast","coconut","code","coffee","coil","coin","collect","color","column","combine","come","comfort","comic","common","company","concert","conduct","confirm","congress","connect","consider","control","convince","cook","cool","copper","copy","coral","core","corn","correct","cost","cotton","couch","country","couple","course","cousin","cover","coyote","crack","cradle","craft","cram","crane","crash","crater","crawl","crazy","cream","credit","creek","crew","cricket","crime","crisp","critic","crop","cross","crouch","crowd","crucial","cruel","cruise","crumble","crunch","crush","cry","crystal","cube","culture","cup","cupboard","curious","current","curtain","curve","cushion","custom","cute","cycle","dad","damage","damp","dance","danger","daring","dash","daughter","dawn","day","deal","debate","debris","decade","december","decide","decline","decorate","decrease","deer","defense","define","defy","degree","delay","deliver","demand","demise","denial","dentist","deny","depart","depend","deposit","depth","deputy","derive","describe","desert","design","desk","despair","destroy","detail","detect","develop","device","devote","diagram","dial","diamond","diary","dice","diesel","diet","differ","digital","dignity","dilemma","dinner","dinosaur","direct","dirt","disagree","discover","disease","dish","dismiss","disorder","display","distance","divert","divide","divorce","dizzy","doctor","document","dog","doll","dolphin","domain","donate","donkey","donor","door","dose","double","dove","draft","dragon","drama","drastic","draw","dream","dress","drift","drill","drink","drip","drive","drop","drum","dry","duck","dumb","dune","during","dust","dutch","duty","dwarf","dynamic","eager","eagle","early","earn","earth","easily","east","easy","echo","ecology","economy","edge","edit","educate","effort","egg","eight","either","elbow","elder","electric","elegant","element","elephant","elevator","elite","else","embark","embody","embrace","emerge","emotion","employ","empower","empty","enable","enact","end","endless","endorse","enemy","energy","enforce","engage","engine","enhance","enjoy","enlist","enough","enrich","enroll","ensure","enter","entire","entry","envelope","episode","equal","equip","era","erase","erode","erosion","error","erupt","escape","essay","essence","estate","eternal","ethics","evidence","evil","evoke","evolve","exact","example","excess","exchange","excite","exclude","excuse","execute","exercise","exhaust","exhibit","exile","exist","exit","exotic","expand","expect","expire","explain","expose","express","extend","extra","eye","eyebrow","fabric","face","faculty","fade","faint","faith","fall","false","fame","family","famous","fan","fancy","fantasy","farm","fashion","fat","fatal","father","fatigue","fault","favorite","feature","february","federal","fee","feed","feel","female","fence","festival","fetch","fever","few","fiber","fiction","field","figure","file","film","filter","final","find","fine","finger","finish","fire","firm","first","fiscal","fish","fit","fitness","fix","flag","flame","flash","flat","flavor","flee","flight","flip","float","flock","floor","flower","fluid","flush","fly","foam","focus","fog","foil","fold","follow","food","foot","force","forest","forget","fork","fortune","forum","forward","fossil","foster","found","fox","fragile","frame","frequent","fresh","friend","fringe","frog","front","frost","frown","frozen","fruit","fuel","fun","funny","furnace","fury","future","gadget","gain","galaxy","gallery","game","gap","garage","garbage","garden","garlic","garment","gas","gasp","gate","gather","gauge","gaze","general","genius","genre","gentle","genuine","gesture","ghost","giant","gift","giggle","ginger","giraffe","girl","give","glad","glance","glare","glass","glide","glimpse","globe","gloom","glory","glove","glow","glue","goat","goddess","gold","good","goose","gorilla","gospel","gossip","govern","gown","grab","grace","grain","grant","grape","grass","gravity","great","green","grid","grief","grit","grocery","group","grow","grunt","guard","guess","guide","guilt","guitar","gun","gym","habit","hair","half","hammer","hamster","hand","happy","harbor","hard","harsh","harvest","hat","have","hawk","hazard","head","health","heart","heavy","hedgehog","height","hello","helmet","help","hen","hero","hidden","high","hill","hint","hip","hire","history","hobby","hockey","hold","hole","holiday","hollow","home","honey","hood","hope","horn","horror","horse","hospital","host","hotel","hour","hover","hub","huge","human","humble","humor","hundred","hungry","hunt","hurdle","hurry","hurt","husband","hybrid","ice","icon","idea","identify","idle","ignore","ill","illegal","illness","image","imitate","immense","immune","impact","impose","improve","impulse","inch","include","income","increase","index","indicate","indoor","industry","infant","inflict","inform","inhale","inherit","initial","inject","injury","inmate","inner","innocent","input","inquiry","insane","insect","inside","inspire","install","intact","interest","into","invest","invite","involve","iron","island","isolate","issue","item","ivory","jacket","jaguar","jar","jazz","jealous","jeans","jelly","jewel","job","join","joke","journey","joy","judge","juice","jump","jungle","junior","junk","just","kangaroo","keen","keep","ketchup","key","kick","kid","kidney","kind","kingdom","kiss","kit","kitchen","kite","kitten","kiwi","knee","knife","knock","know","lab","label","labor","ladder","lady","lake","lamp","language","laptop","large","later","latin","laugh","laundry","lava","law","lawn","lawsuit","layer","lazy","leader","leaf","learn","leave","lecture","left","leg","legal","legend","leisure","lemon","lend","length","lens","leopard","lesson","letter","level","liar","liberty","library","license","life","lift","light","like","limb","limit","link","lion","liquid","list","little","live","lizard","load","loan","lobster","local","lock","logic","lonely","long","loop","lottery","loud","lounge","love","loyal","lucky","luggage","lumber","lunar","lunch","luxury","lyrics","machine","mad","magic","magnet","maid","mail","main","major","make","mammal","man","manage","mandate","mango","mansion","manual","maple","marble","march","margin","marine","market","marriage","mask","mass","master","match","material","math","matrix","matter","maximum","maze","meadow","mean","measure","meat","mechanic","medal","media","melody","melt","member","memory","mention","menu","mercy","merge","merit","merry","mesh","message","metal","method","middle","midnight","milk","million","mimic","mind","minimum","minor","minute","miracle","mirror","misery","miss","mistake","mix","mixed","mixture","mobile","model","modify","mom","moment","monitor","monkey","monster","month","moon","moral","more","morning","mosquito","mother","motion","motor","mountain","mouse","move","movie","much","muffin","mule","multiply","muscle","museum","mushroom","music","must","mutual","myself","mystery","myth","naive","name","napkin","narrow","nasty","nation","nature","near","neck","need","negative","neglect","neither","nephew","nerve","nest","net","network","neutral","never","news","next","nice","night","noble","noise","nominee","noodle","normal","north","nose","notable","note","nothing","notice","novel","now","nuclear","number","nurse","nut","oak","obey","object","oblige","obscure","observe","obtain","obvious","occur","ocean","october","odor","off","offer","office","often","oil","okay","old","olive","olympic","omit","once","one","onion","online","only","open","opera","opinion","oppose","option","orange","orbit","orchard","order","ordinary","organ","orient","original","orphan","ostrich","other","outdoor","outer","output","outside","oval","oven","over","own","owner","oxygen","oyster","ozone","pact","paddle","page","pair","palace","palm","panda","panel","panic","panther","paper","parade","parent","park","parrot","party","pass","patch","path","patient","patrol","pattern","pause","pave","payment","peace","peanut","pear","peasant","pelican","pen","penalty","pencil","people","pepper","perfect","permit","person","pet","phone","photo","phrase","physical","piano","picnic","picture","piece","pig","pigeon","pill","pilot","pink","pioneer","pipe","pistol","pitch","pizza","place","planet","plastic","plate","play","please","pledge","pluck","plug","plunge","poem","poet","point","polar","pole","police","pond","pony","pool","popular","portion","position","possible","post","potato","pottery","poverty","powder","power","practice","praise","predict","prefer","prepare","present","pretty","prevent","price","pride","primary","print","priority","prison","private","prize","problem","process","produce","profit","program","project","promote","proof","property","prosper","protect","proud","provide","public","pudding","pull","pulp","pulse","pumpkin","punch","pupil","puppy","purchase","purity","purpose","purse","push","put","puzzle","pyramid","quality","quantum","quarter","question","quick","quit","quiz","quote","rabbit","raccoon","race","rack","radar","radio","rail","rain","raise","rally","ramp","ranch","random","range","rapid","rare","rate","rather","raven","raw","razor","ready","real","reason","rebel","rebuild","recall","receive","recipe","record","recycle","reduce","reflect","reform","refuse","region","regret","regular","reject","relax","release","relief","rely","remain","remember","remind","remove","render","renew","rent","reopen","repair","repeat","replace","report","require","rescue","resemble","resist","resource","response","result","retire","retreat","return","reunion","reveal","review","reward","rhythm","rib","ribbon","rice","rich","ride","ridge","rifle","right","rigid","ring","riot","ripple","risk","ritual","rival","river","road","roast","robot","robust","rocket","romance","roof","rookie","room","rose","rotate","rough","round","route","royal","rubber","rude","rug","rule","run","runway","rural","sad","saddle","sadness","safe","sail","salad","salmon","salon","salt","salute","same","sample","sand","satisfy","satoshi","sauce","sausage","save","say","scale","scan","scare","scatter","scene","scheme","school","science","scissors","scorpion","scout","scrap","screen","script","scrub","sea","search","season","seat","second","secret","section","security","seed","seek","segment","select","sell","seminar","senior","sense","sentence","series","service","session","settle","setup","seven","shadow","shaft","shallow","share","shed","shell","sheriff","shield","shift","shine","ship","shiver","shock","shoe","shoot","shop","short","shoulder","shove","shrimp","shrug","shuffle","shy","sibling","sick","side","siege","sight","sign","silent","silk","silly","silver","similar","simple","since","sing","siren","sister","situate","six","size","skate","sketch","ski","skill","skin","skirt","skull","slab","slam","sleep","slender","slice","slide","slight","slim","slogan","slot","slow","slush","small","smart","smile","smoke","smooth","snack","snake","snap","sniff","snow","soap","soccer","social","sock","soda","soft","solar","soldier","solid","solution","solve","someone","song","soon","sorry","sort","soul","sound","soup","source","south","space","spare","spatial","spawn","speak","special","speed","spell","spend","sphere","spice","spider","spike","spin","spirit","split","spoil","sponsor","spoon","sport","spot","spray","spread","spring","spy","square","squeeze","squirrel","stable","stadium","staff","stage","stairs","stamp","stand","start","state","stay","steak","steel","stem","step","stereo","stick","still","sting","stock","stomach","stone","stool","story","stove","strategy","street","strike","strong","struggle","student","stuff","stumble","style","subject","submit","subway","success","such","sudden","suffer","sugar","suggest","suit","summer","sun","sunny","sunset","super","supply","supreme","sure","surface","surge","surprise","surround","survey","suspect","sustain","swallow","swamp","swap","swarm","swear","sweet","swift","swim","swing","switch","sword","symbol","symptom","syrup","system","table","tackle","tag","tail","talent","talk","tank","tape","target","task","taste","tattoo","taxi","teach","team","tell","ten","tenant","tennis","tent","term","test","text","thank","that","theme","then","theory","there","they","thing","this","thought","three","thrive","throw","thumb","thunder","ticket","tide","tiger","tilt","timber","time","tiny","tip","tired","tissue","title","toast","tobacco","today","toddler","toe","together","toilet","token","tomato","tomorrow","tone","tongue","tonight","tool","tooth","top","topic","topple","torch","tornado","tortoise","toss","total","tourist","toward","tower","town","toy","track","trade","traffic","tragic","train","transfer","trap","trash","travel","tray","treat","tree","trend","trial","tribe","trick","trigger","trim","trip","trophy","trouble","truck","true","truly","trumpet","trust","truth","try","tube","tuition","tumble","tuna","tunnel","turkey","turn","turtle","twelve","twenty","twice","twin","twist","two","type","typical","ugly","umbrella","unable","unaware","uncle","uncover","under","undo","unfair","unfold","unhappy","uniform","unique","unit","universe","unknown","unlock","until","unusual","unveil","update","upgrade","uphold","upon","upper","upset","urban","urge","usage","use","used","useful","useless","usual","utility","vacant","vacuum","vague","valid","valley","valve","van","vanish","vapor","various","vast","vault","vehicle","velvet","vendor","venture","venue","verb","verify","version","very","vessel","veteran","viable","vibrant","vicious","victory","video","view","village","vintage","violin","virtual","virus","visa","visit","visual","vital","vivid","vocal","voice","void","volcano","volume","vote","voyage","wage","wagon","wait","walk","wall","walnut","want","warfare","warm","warrior","wash","wasp","waste","water","wave","way","wealth","weapon","wear","weasel","weather","web","wedding","weekend","weird","welcome","west","wet","whale","what","wheat","wheel","when","where","whip","whisper","wide","width","wife","wild","will","win","window","wine","wing","wink","winner","winter","wire","wisdom","wise","wish","witness","wolf","woman","wonder","wood","wool","word","work","world","worry","worth","wrap","wreck","wrestle","wrist","write","wrong","yard","year","yellow","you","young","youth","zebra","zero","zone","zoo"]')},49234:e=>{"use strict";e.exports=JSON.parse('{"aes-128-ecb":{"cipher":"AES","key":128,"iv":0,"mode":"ECB","type":"block"},"aes-192-ecb":{"cipher":"AES","key":192,"iv":0,"mode":"ECB","type":"block"},"aes-256-ecb":{"cipher":"AES","key":256,"iv":0,"mode":"ECB","type":"block"},"aes-128-cbc":{"cipher":"AES","key":128,"iv":16,"mode":"CBC","type":"block"},"aes-192-cbc":{"cipher":"AES","key":192,"iv":16,"mode":"CBC","type":"block"},"aes-256-cbc":{"cipher":"AES","key":256,"iv":16,"mode":"CBC","type":"block"},"aes128":{"cipher":"AES","key":128,"iv":16,"mode":"CBC","type":"block"},"aes192":{"cipher":"AES","key":192,"iv":16,"mode":"CBC","type":"block"},"aes256":{"cipher":"AES","key":256,"iv":16,"mode":"CBC","type":"block"},"aes-128-cfb":{"cipher":"AES","key":128,"iv":16,"mode":"CFB","type":"stream"},"aes-192-cfb":{"cipher":"AES","key":192,"iv":16,"mode":"CFB","type":"stream"},"aes-256-cfb":{"cipher":"AES","key":256,"iv":16,"mode":"CFB","type":"stream"},"aes-128-cfb8":{"cipher":"AES","key":128,"iv":16,"mode":"CFB8","type":"stream"},"aes-192-cfb8":{"cipher":"AES","key":192,"iv":16,"mode":"CFB8","type":"stream"},"aes-256-cfb8":{"cipher":"AES","key":256,"iv":16,"mode":"CFB8","type":"stream"},"aes-128-cfb1":{"cipher":"AES","key":128,"iv":16,"mode":"CFB1","type":"stream"},"aes-192-cfb1":{"cipher":"AES","key":192,"iv":16,"mode":"CFB1","type":"stream"},"aes-256-cfb1":{"cipher":"AES","key":256,"iv":16,"mode":"CFB1","type":"stream"},"aes-128-ofb":{"cipher":"AES","key":128,"iv":16,"mode":"OFB","type":"stream"},"aes-192-ofb":{"cipher":"AES","key":192,"iv":16,"mode":"OFB","type":"stream"},"aes-256-ofb":{"cipher":"AES","key":256,"iv":16,"mode":"OFB","type":"stream"},"aes-128-ctr":{"cipher":"AES","key":128,"iv":16,"mode":"CTR","type":"stream"},"aes-192-ctr":{"cipher":"AES","key":192,"iv":16,"mode":"CTR","type":"stream"},"aes-256-ctr":{"cipher":"AES","key":256,"iv":16,"mode":"CTR","type":"stream"},"aes-128-gcm":{"cipher":"AES","key":128,"iv":12,"mode":"GCM","type":"auth"},"aes-192-gcm":{"cipher":"AES","key":192,"iv":12,"mode":"GCM","type":"auth"},"aes-256-gcm":{"cipher":"AES","key":256,"iv":12,"mode":"GCM","type":"auth"}}')},40026:e=>{"use strict";e.exports=JSON.parse('{"sha224WithRSAEncryption":{"sign":"rsa","hash":"sha224","id":"302d300d06096086480165030402040500041c"},"RSA-SHA224":{"sign":"ecdsa/rsa","hash":"sha224","id":"302d300d06096086480165030402040500041c"},"sha256WithRSAEncryption":{"sign":"rsa","hash":"sha256","id":"3031300d060960864801650304020105000420"},"RSA-SHA256":{"sign":"ecdsa/rsa","hash":"sha256","id":"3031300d060960864801650304020105000420"},"sha384WithRSAEncryption":{"sign":"rsa","hash":"sha384","id":"3041300d060960864801650304020205000430"},"RSA-SHA384":{"sign":"ecdsa/rsa","hash":"sha384","id":"3041300d060960864801650304020205000430"},"sha512WithRSAEncryption":{"sign":"rsa","hash":"sha512","id":"3051300d060960864801650304020305000440"},"RSA-SHA512":{"sign":"ecdsa/rsa","hash":"sha512","id":"3051300d060960864801650304020305000440"},"RSA-SHA1":{"sign":"rsa","hash":"sha1","id":"3021300906052b0e03021a05000414"},"ecdsa-with-SHA1":{"sign":"ecdsa","hash":"sha1","id":""},"sha256":{"sign":"ecdsa","hash":"sha256","id":""},"sha224":{"sign":"ecdsa","hash":"sha224","id":""},"sha384":{"sign":"ecdsa","hash":"sha384","id":""},"sha512":{"sign":"ecdsa","hash":"sha512","id":""},"DSA-SHA":{"sign":"dsa","hash":"sha1","id":""},"DSA-SHA1":{"sign":"dsa","hash":"sha1","id":""},"DSA":{"sign":"dsa","hash":"sha1","id":""},"DSA-WITH-SHA224":{"sign":"dsa","hash":"sha224","id":""},"DSA-SHA224":{"sign":"dsa","hash":"sha224","id":""},"DSA-WITH-SHA256":{"sign":"dsa","hash":"sha256","id":""},"DSA-SHA256":{"sign":"dsa","hash":"sha256","id":""},"DSA-WITH-SHA384":{"sign":"dsa","hash":"sha384","id":""},"DSA-SHA384":{"sign":"dsa","hash":"sha384","id":""},"DSA-WITH-SHA512":{"sign":"dsa","hash":"sha512","id":""},"DSA-SHA512":{"sign":"dsa","hash":"sha512","id":""},"DSA-RIPEMD160":{"sign":"dsa","hash":"rmd160","id":""},"ripemd160WithRSA":{"sign":"rsa","hash":"rmd160","id":"3021300906052b2403020105000414"},"RSA-RIPEMD160":{"sign":"rsa","hash":"rmd160","id":"3021300906052b2403020105000414"},"md5WithRSAEncryption":{"sign":"rsa","hash":"md5","id":"3020300c06082a864886f70d020505000410"},"RSA-MD5":{"sign":"rsa","hash":"md5","id":"3020300c06082a864886f70d020505000410"}}')},39167:e=>{"use strict";e.exports=JSON.parse('{"1.3.132.0.10":"secp256k1","1.3.132.0.33":"p224","1.2.840.10045.3.1.1":"p192","1.2.840.10045.3.1.7":"p256","1.3.132.0.34":"p384","1.3.132.0.35":"p521"}')},23418:e=>{"use strict";e.exports=JSON.parse('{"modp1":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"},"modp2":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"},"modp5":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"},"modp14":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"},"modp15":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"},"modp16":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"},"modp17":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"},"modp18":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"}}')},40763:e=>{"use strict";e.exports={i8:"6.5.4"}},68675:e=>{"use strict";e.exports=JSON.parse('{"2.16.840.1.101.3.4.1.1":"aes-128-ecb","2.16.840.1.101.3.4.1.2":"aes-128-cbc","2.16.840.1.101.3.4.1.3":"aes-128-ofb","2.16.840.1.101.3.4.1.4":"aes-128-cfb","2.16.840.1.101.3.4.1.21":"aes-192-ecb","2.16.840.1.101.3.4.1.22":"aes-192-cbc","2.16.840.1.101.3.4.1.23":"aes-192-ofb","2.16.840.1.101.3.4.1.24":"aes-192-cfb","2.16.840.1.101.3.4.1.41":"aes-256-ecb","2.16.840.1.101.3.4.1.42":"aes-256-cbc","2.16.840.1.101.3.4.1.43":"aes-256-ofb","2.16.840.1.101.3.4.1.44":"aes-256-cfb"}')},49792:e=>{"use strict";e.exports=JSON.parse('{"TYPES":{"Done":-1,"Unknown":-2,"NotPresent":0,"UInt16":1,"UInt32":2,"UInt64":3,"Hash128":4,"Hash256":5,"Amount":6,"Blob":7,"AccountID":8,"STObject":14,"STArray":15,"UInt8":16,"Hash160":17,"PathSet":18,"Vector256":19,"UInt96":20,"UInt192":21,"UInt384":22,"UInt512":23,"Issue":24,"Transaction":10001,"LedgerEntry":10002,"Validation":10003,"Metadata":10004},"LEDGER_ENTRY_TYPES":{"Invalid":-1,"AccountRoot":97,"DirectoryNode":100,"RippleState":114,"Ticket":84,"SignerList":83,"Offer":111,"LedgerHashes":104,"Amendments":102,"FeeSettings":115,"Escrow":117,"PayChannel":120,"Check":67,"DepositPreauth":112,"NegativeUNL":78,"NFTokenPage":80,"NFTokenOffer":55,"AMM":121,"Any":-3,"Child":-2,"Nickname":110,"Contract":99,"GeneratorMap":103},"FIELDS":[["Generic",{"nth":0,"isVLEncoded":false,"isSerialized":false,"isSigningField":false,"type":"Unknown"}],["Invalid",{"nth":-1,"isVLEncoded":false,"isSerialized":false,"isSigningField":false,"type":"Unknown"}],["ObjectEndMarker",{"nth":1,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["ArrayEndMarker",{"nth":1,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STArray"}],["hash",{"nth":257,"isVLEncoded":false,"isSerialized":false,"isSigningField":false,"type":"Hash256"}],["index",{"nth":258,"isVLEncoded":false,"isSerialized":false,"isSigningField":false,"type":"Hash256"}],["taker_gets_funded",{"nth":258,"isVLEncoded":false,"isSerialized":false,"isSigningField":false,"type":"Amount"}],["taker_pays_funded",{"nth":259,"isVLEncoded":false,"isSerialized":false,"isSigningField":false,"type":"Amount"}],["LedgerEntry",{"nth":1,"isVLEncoded":false,"isSerialized":false,"isSigningField":true,"type":"LedgerEntry"}],["Transaction",{"nth":1,"isVLEncoded":false,"isSerialized":false,"isSigningField":true,"type":"Transaction"}],["Validation",{"nth":1,"isVLEncoded":false,"isSerialized":false,"isSigningField":true,"type":"Validation"}],["Metadata",{"nth":1,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Metadata"}],["CloseResolution",{"nth":1,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt8"}],["Method",{"nth":2,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt8"}],["TransactionResult",{"nth":3,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt8"}],["TickSize",{"nth":16,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt8"}],["UNLModifyDisabling",{"nth":17,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt8"}],["HookResult",{"nth":18,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt8"}],["LedgerEntryType",{"nth":1,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt16"}],["TransactionType",{"nth":2,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt16"}],["SignerWeight",{"nth":3,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt16"}],["TransferFee",{"nth":4,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt16"}],["TradingFee",{"nth":5,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt16"}],["DiscountedFee",{"nth":6,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt16"}],["Version",{"nth":16,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt16"}],["HookStateChangeCount",{"nth":17,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt16"}],["HookEmitCount",{"nth":18,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt16"}],["HookExecutionIndex",{"nth":19,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt16"}],["HookApiVersion",{"nth":20,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt16"}],["NetworkID",{"nth":1,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["Flags",{"nth":2,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["SourceTag",{"nth":3,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["Sequence",{"nth":4,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["PreviousTxnLgrSeq",{"nth":5,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["LedgerSequence",{"nth":6,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["CloseTime",{"nth":7,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["ParentCloseTime",{"nth":8,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["SigningTime",{"nth":9,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["Expiration",{"nth":10,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["TransferRate",{"nth":11,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["WalletSize",{"nth":12,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["OwnerCount",{"nth":13,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["DestinationTag",{"nth":14,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["HighQualityIn",{"nth":16,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["HighQualityOut",{"nth":17,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["LowQualityIn",{"nth":18,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["LowQualityOut",{"nth":19,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["QualityIn",{"nth":20,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["QualityOut",{"nth":21,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["StampEscrow",{"nth":22,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["BondAmount",{"nth":23,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["LoadFee",{"nth":24,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["OfferSequence",{"nth":25,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["FirstLedgerSequence",{"nth":26,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["LastLedgerSequence",{"nth":27,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["TransactionIndex",{"nth":28,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["OperationLimit",{"nth":29,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["ReferenceFeeUnits",{"nth":30,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["ReserveBase",{"nth":31,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["ReserveIncrement",{"nth":32,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["SetFlag",{"nth":33,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["ClearFlag",{"nth":34,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["SignerQuorum",{"nth":35,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["CancelAfter",{"nth":36,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["FinishAfter",{"nth":37,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["SignerListID",{"nth":38,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["SettleDelay",{"nth":39,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["TicketCount",{"nth":40,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["TicketSequence",{"nth":41,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["NFTokenTaxon",{"nth":42,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["MintedNFTokens",{"nth":43,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["BurnedNFTokens",{"nth":44,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["HookStateCount",{"nth":45,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["EmitGeneration",{"nth":46,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["VoteWeight",{"nth":48,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["FirstNFTokenSequence",{"nth":50,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["IndexNext",{"nth":1,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt64"}],["IndexPrevious",{"nth":2,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt64"}],["BookNode",{"nth":3,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt64"}],["OwnerNode",{"nth":4,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt64"}],["BaseFee",{"nth":5,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt64"}],["ExchangeRate",{"nth":6,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt64"}],["LowNode",{"nth":7,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt64"}],["HighNode",{"nth":8,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt64"}],["DestinationNode",{"nth":9,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt64"}],["Cookie",{"nth":10,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt64"}],["ServerVersion",{"nth":11,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt64"}],["NFTokenOfferNode",{"nth":12,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt64"}],["EmitBurden",{"nth":13,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt64"}],["HookOn",{"nth":16,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt64"}],["HookInstructionCount",{"nth":17,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt64"}],["HookReturnCode",{"nth":18,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt64"}],["ReferenceCount",{"nth":19,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt64"}],["EmailHash",{"nth":1,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash128"}],["TakerPaysCurrency",{"nth":1,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash160"}],["TakerPaysIssuer",{"nth":2,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash160"}],["TakerGetsCurrency",{"nth":3,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash160"}],["TakerGetsIssuer",{"nth":4,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash160"}],["LedgerHash",{"nth":1,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["ParentHash",{"nth":2,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["TransactionHash",{"nth":3,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["AccountHash",{"nth":4,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["PreviousTxnID",{"nth":5,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["LedgerIndex",{"nth":6,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["WalletLocator",{"nth":7,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["RootIndex",{"nth":8,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["AccountTxnID",{"nth":9,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["NFTokenID",{"nth":10,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["EmitParentTxnID",{"nth":11,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["EmitNonce",{"nth":12,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["EmitHookHash",{"nth":13,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["AMMID",{"nth":14,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["BookDirectory",{"nth":16,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["InvoiceID",{"nth":17,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["Nickname",{"nth":18,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["Amendment",{"nth":19,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["Digest",{"nth":21,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["Channel",{"nth":22,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["ConsensusHash",{"nth":23,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["CheckID",{"nth":24,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["ValidatedHash",{"nth":25,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["PreviousPageMin",{"nth":26,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["NextPageMin",{"nth":27,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["NFTokenBuyOffer",{"nth":28,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["NFTokenSellOffer",{"nth":29,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["HookStateKey",{"nth":30,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["HookHash",{"nth":31,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["HookNamespace",{"nth":32,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["HookSetTxnID",{"nth":33,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["Amount",{"nth":1,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["Balance",{"nth":2,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["LimitAmount",{"nth":3,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["TakerPays",{"nth":4,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["TakerGets",{"nth":5,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["LowLimit",{"nth":6,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["HighLimit",{"nth":7,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["Fee",{"nth":8,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["SendMax",{"nth":9,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["DeliverMin",{"nth":10,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["Amount2",{"nth":11,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["BidMin",{"nth":12,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["BidMax",{"nth":13,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["MinimumOffer",{"nth":16,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["RippleEscrow",{"nth":17,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["DeliveredAmount",{"nth":18,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["NFTokenBrokerFee",{"nth":19,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["BaseFeeDrops",{"nth":22,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["ReserveBaseDrops",{"nth":23,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["ReserveIncrementDrops",{"nth":24,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["LPTokenOut",{"nth":25,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["LPTokenIn",{"nth":26,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["EPrice",{"nth":27,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["Price",{"nth":28,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["LPTokenBalance",{"nth":31,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["PublicKey",{"nth":1,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["MessageKey",{"nth":2,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["SigningPubKey",{"nth":3,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["TxnSignature",{"nth":4,"isVLEncoded":true,"isSerialized":true,"isSigningField":false,"type":"Blob"}],["URI",{"nth":5,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["Signature",{"nth":6,"isVLEncoded":true,"isSerialized":true,"isSigningField":false,"type":"Blob"}],["Domain",{"nth":7,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["FundCode",{"nth":8,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["RemoveCode",{"nth":9,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["ExpireCode",{"nth":10,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["CreateCode",{"nth":11,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["MemoType",{"nth":12,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["MemoData",{"nth":13,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["MemoFormat",{"nth":14,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["Fulfillment",{"nth":16,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["Condition",{"nth":17,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["MasterSignature",{"nth":18,"isVLEncoded":true,"isSerialized":true,"isSigningField":false,"type":"Blob"}],["UNLModifyValidator",{"nth":19,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["ValidatorToDisable",{"nth":20,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["ValidatorToReEnable",{"nth":21,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["HookStateData",{"nth":22,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["HookReturnString",{"nth":23,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["HookParameterName",{"nth":24,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["HookParameterValue",{"nth":25,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["Account",{"nth":1,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"AccountID"}],["Owner",{"nth":2,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"AccountID"}],["Destination",{"nth":3,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"AccountID"}],["Issuer",{"nth":4,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"AccountID"}],["Authorize",{"nth":5,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"AccountID"}],["Unauthorize",{"nth":6,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"AccountID"}],["RegularKey",{"nth":8,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"AccountID"}],["NFTokenMinter",{"nth":9,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"AccountID"}],["EmitCallback",{"nth":10,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"AccountID"}],["HookAccount",{"nth":16,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"AccountID"}],["Indexes",{"nth":1,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Vector256"}],["Hashes",{"nth":2,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Vector256"}],["Amendments",{"nth":3,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Vector256"}],["NFTokenOffers",{"nth":4,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Vector256"}],["Paths",{"nth":1,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"PathSet"}],["Asset",{"nth":3,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Issue"}],["Asset2",{"nth":4,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Issue"}],["TransactionMetaData",{"nth":2,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["CreatedNode",{"nth":3,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["DeletedNode",{"nth":4,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["ModifiedNode",{"nth":5,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["PreviousFields",{"nth":6,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["FinalFields",{"nth":7,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["NewFields",{"nth":8,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["TemplateEntry",{"nth":9,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["Memo",{"nth":10,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["SignerEntry",{"nth":11,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["NFToken",{"nth":12,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["EmitDetails",{"nth":13,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["Hook",{"nth":14,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["Signer",{"nth":16,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["Majority",{"nth":18,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["DisabledValidator",{"nth":19,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["EmittedTxn",{"nth":20,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["HookExecution",{"nth":21,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["HookDefinition",{"nth":22,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["HookParameter",{"nth":23,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["HookGrant",{"nth":24,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["VoteEntry",{"nth":25,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["AuctionSlot",{"nth":26,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["AuthAccount",{"nth":27,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["Signers",{"nth":3,"isVLEncoded":false,"isSerialized":true,"isSigningField":false,"type":"STArray"}],["SignerEntries",{"nth":4,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STArray"}],["Template",{"nth":5,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STArray"}],["Necessary",{"nth":6,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STArray"}],["Sufficient",{"nth":7,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STArray"}],["AffectedNodes",{"nth":8,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STArray"}],["Memos",{"nth":9,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STArray"}],["NFTokens",{"nth":10,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STArray"}],["Hooks",{"nth":11,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STArray"}],["VoteSlots",{"nth":12,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STArray"}],["Majorities",{"nth":16,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STArray"}],["DisabledValidators",{"nth":17,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STArray"}],["HookExecutions",{"nth":18,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STArray"}],["HookParameters",{"nth":19,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STArray"}],["HookGrants",{"nth":20,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STArray"}],["AuthAccounts",{"nth":25,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STArray"}]],"TRANSACTION_RESULTS":{"telLOCAL_ERROR":-399,"telBAD_DOMAIN":-398,"telBAD_PATH_COUNT":-397,"telBAD_PUBLIC_KEY":-396,"telFAILED_PROCESSING":-395,"telINSUF_FEE_P":-394,"telNO_DST_PARTIAL":-393,"telCAN_NOT_QUEUE":-392,"telCAN_NOT_QUEUE_BALANCE":-391,"telCAN_NOT_QUEUE_BLOCKS":-390,"telCAN_NOT_QUEUE_BLOCKED":-389,"telCAN_NOT_QUEUE_FEE":-388,"telCAN_NOT_QUEUE_FULL":-387,"telWRONG_NETWORK":-386,"telREQUIRES_NETWORK_ID":-385,"telNETWORK_ID_MAKES_TX_NON_CANONICAL":-384,"temMALFORMED":-299,"temBAD_AMOUNT":-298,"temBAD_CURRENCY":-297,"temBAD_EXPIRATION":-296,"temBAD_FEE":-295,"temBAD_ISSUER":-294,"temBAD_LIMIT":-293,"temBAD_OFFER":-292,"temBAD_PATH":-291,"temBAD_PATH_LOOP":-290,"temBAD_REGKEY":-289,"temBAD_SEND_XRP_LIMIT":-288,"temBAD_SEND_XRP_MAX":-287,"temBAD_SEND_XRP_NO_DIRECT":-286,"temBAD_SEND_XRP_PARTIAL":-285,"temBAD_SEND_XRP_PATHS":-284,"temBAD_SEQUENCE":-283,"temBAD_SIGNATURE":-282,"temBAD_SRC_ACCOUNT":-281,"temBAD_TRANSFER_RATE":-280,"temDST_IS_SRC":-279,"temDST_NEEDED":-278,"temINVALID":-277,"temINVALID_FLAG":-276,"temREDUNDANT":-275,"temRIPPLE_EMPTY":-274,"temDISABLED":-273,"temBAD_SIGNER":-272,"temBAD_QUORUM":-271,"temBAD_WEIGHT":-270,"temBAD_TICK_SIZE":-269,"temINVALID_ACCOUNT_ID":-268,"temCANNOT_PREAUTH_SELF":-267,"temINVALID_COUNT":-266,"temUNCERTAIN":-265,"temUNKNOWN":-264,"temSEQ_AND_TICKET":-263,"temBAD_NFTOKEN_TRANSFER_FEE":-262,"temBAD_AMM_TOKENS":-261,"tefFAILURE":-199,"tefALREADY":-198,"tefBAD_ADD_AUTH":-197,"tefBAD_AUTH":-196,"tefBAD_LEDGER":-195,"tefCREATED":-194,"tefEXCEPTION":-193,"tefINTERNAL":-192,"tefNO_AUTH_REQUIRED":-191,"tefPAST_SEQ":-190,"tefWRONG_PRIOR":-189,"tefMASTER_DISABLED":-188,"tefMAX_LEDGER":-187,"tefBAD_SIGNATURE":-186,"tefBAD_QUORUM":-185,"tefNOT_MULTI_SIGNING":-184,"tefBAD_AUTH_MASTER":-183,"tefINVARIANT_FAILED":-182,"tefTOO_BIG":-181,"tefNO_TICKET":-180,"tefNFTOKEN_IS_NOT_TRANSFERABLE":-179,"terRETRY":-99,"terFUNDS_SPENT":-98,"terINSUF_FEE_B":-97,"terNO_ACCOUNT":-96,"terNO_AUTH":-95,"terNO_LINE":-94,"terOWNERS":-93,"terPRE_SEQ":-92,"terLAST":-91,"terNO_RIPPLE":-90,"terQUEUED":-89,"terPRE_TICKET":-88,"terNO_AMM":-87,"tesSUCCESS":0,"tecCLAIM":100,"tecPATH_PARTIAL":101,"tecUNFUNDED_ADD":102,"tecUNFUNDED_OFFER":103,"tecUNFUNDED_PAYMENT":104,"tecFAILED_PROCESSING":105,"tecDIR_FULL":121,"tecINSUF_RESERVE_LINE":122,"tecINSUF_RESERVE_OFFER":123,"tecNO_DST":124,"tecNO_DST_INSUF_XRP":125,"tecNO_LINE_INSUF_RESERVE":126,"tecNO_LINE_REDUNDANT":127,"tecPATH_DRY":128,"tecUNFUNDED":129,"tecNO_ALTERNATIVE_KEY":130,"tecNO_REGULAR_KEY":131,"tecOWNERS":132,"tecNO_ISSUER":133,"tecNO_AUTH":134,"tecNO_LINE":135,"tecINSUFF_FEE":136,"tecFROZEN":137,"tecNO_TARGET":138,"tecNO_PERMISSION":139,"tecNO_ENTRY":140,"tecINSUFFICIENT_RESERVE":141,"tecNEED_MASTER_KEY":142,"tecDST_TAG_NEEDED":143,"tecINTERNAL":144,"tecOVERSIZE":145,"tecCRYPTOCONDITION_ERROR":146,"tecINVARIANT_FAILED":147,"tecEXPIRED":148,"tecDUPLICATE":149,"tecKILLED":150,"tecHAS_OBLIGATIONS":151,"tecTOO_SOON":152,"tecMAX_SEQUENCE_REACHED":154,"tecNO_SUITABLE_NFTOKEN_PAGE":155,"tecNFTOKEN_BUY_SELL_MISMATCH":156,"tecNFTOKEN_OFFER_TYPE_MISMATCH":157,"tecCANT_ACCEPT_OWN_NFTOKEN_OFFER":158,"tecINSUFFICIENT_FUNDS":159,"tecOBJECT_NOT_FOUND":160,"tecINSUFFICIENT_PAYMENT":161,"tecUNFUNDED_AMM":162,"tecAMM_BALANCE":163,"tecAMM_FAILED":164,"tecAMM_INVALID_TOKENS":165,"tecAMM_EMPTY":166,"tecAMM_NOT_EMPTY":167,"tecAMM_ACCOUNT":168,"tecINCOMPLETE":169},"TRANSACTION_TYPES":{"Invalid":-1,"Payment":0,"EscrowCreate":1,"EscrowFinish":2,"AccountSet":3,"EscrowCancel":4,"SetRegularKey":5,"NickNameSet":6,"OfferCreate":7,"OfferCancel":8,"Contract":9,"TicketCreate":10,"TicketCancel":11,"SignerListSet":12,"PaymentChannelCreate":13,"PaymentChannelFund":14,"PaymentChannelClaim":15,"CheckCreate":16,"CheckCash":17,"CheckCancel":18,"DepositPreauth":19,"TrustSet":20,"AccountDelete":21,"SetHook":22,"NFTokenMint":25,"NFTokenBurn":26,"NFTokenCreateOffer":27,"NFTokenCancelOffer":28,"NFTokenAcceptOffer":29,"Clawback":30,"AMMCreate":35,"AMMDeposit":36,"AMMWithdraw":37,"AMMVote":38,"AMMBid":39,"AMMDelete":40,"EnableAmendment":100,"SetFee":101,"UNLModify":102}}')},51944:e=>{"use strict";e.exports=JSON.parse('["A","ABE","ACE","ACT","AD","ADA","ADD","AGO","AID","AIM","AIR","ALL","ALP","AM","AMY","AN","ANA","AND","ANN","ANT","ANY","APE","APS","APT","ARC","ARE","ARK","ARM","ART","AS","ASH","ASK","AT","ATE","AUG","AUK","AVE","AWE","AWK","AWL","AWN","AX","AYE","BAD","BAG","BAH","BAM","BAN","BAR","BAT","BAY","BE","BED","BEE","BEG","BEN","BET","BEY","BIB","BID","BIG","BIN","BIT","BOB","BOG","BON","BOO","BOP","BOW","BOY","BUB","BUD","BUG","BUM","BUN","BUS","BUT","BUY","BY","BYE","CAB","CAL","CAM","CAN","CAP","CAR","CAT","CAW","COD","COG","COL","CON","COO","COP","COT","COW","COY","CRY","CUB","CUE","CUP","CUR","CUT","DAB","DAD","DAM","DAN","DAR","DAY","DEE","DEL","DEN","DES","DEW","DID","DIE","DIG","DIN","DIP","DO","DOE","DOG","DON","DOT","DOW","DRY","DUB","DUD","DUE","DUG","DUN","EAR","EAT","ED","EEL","EGG","EGO","ELI","ELK","ELM","ELY","EM","END","EST","ETC","EVA","EVE","EWE","EYE","FAD","FAN","FAR","FAT","FAY","FED","FEE","FEW","FIB","FIG","FIN","FIR","FIT","FLO","FLY","FOE","FOG","FOR","FRY","FUM","FUN","FUR","GAB","GAD","GAG","GAL","GAM","GAP","GAS","GAY","GEE","GEL","GEM","GET","GIG","GIL","GIN","GO","GOT","GUM","GUN","GUS","GUT","GUY","GYM","GYP","HA","HAD","HAL","HAM","HAN","HAP","HAS","HAT","HAW","HAY","HE","HEM","HEN","HER","HEW","HEY","HI","HID","HIM","HIP","HIS","HIT","HO","HOB","HOC","HOE","HOG","HOP","HOT","HOW","HUB","HUE","HUG","HUH","HUM","HUT","I","ICY","IDA","IF","IKE","ILL","INK","INN","IO","ION","IQ","IRA","IRE","IRK","IS","IT","ITS","IVY","JAB","JAG","JAM","JAN","JAR","JAW","JAY","JET","JIG","JIM","JO","JOB","JOE","JOG","JOT","JOY","JUG","JUT","KAY","KEG","KEN","KEY","KID","KIM","KIN","KIT","LA","LAB","LAC","LAD","LAG","LAM","LAP","LAW","LAY","LEA","LED","LEE","LEG","LEN","LEO","LET","LEW","LID","LIE","LIN","LIP","LIT","LO","LOB","LOG","LOP","LOS","LOT","LOU","LOW","LOY","LUG","LYE","MA","MAC","MAD","MAE","MAN","MAO","MAP","MAT","MAW","MAY","ME","MEG","MEL","MEN","MET","MEW","MID","MIN","MIT","MOB","MOD","MOE","MOO","MOP","MOS","MOT","MOW","MUD","MUG","MUM","MY","NAB","NAG","NAN","NAP","NAT","NAY","NE","NED","NEE","NET","NEW","NIB","NIL","NIP","NIT","NO","NOB","NOD","NON","NOR","NOT","NOV","NOW","NU","NUN","NUT","O","OAF","OAK","OAR","OAT","ODD","ODE","OF","OFF","OFT","OH","OIL","OK","OLD","ON","ONE","OR","ORB","ORE","ORR","OS","OTT","OUR","OUT","OVA","OW","OWE","OWL","OWN","OX","PA","PAD","PAL","PAM","PAN","PAP","PAR","PAT","PAW","PAY","PEA","PEG","PEN","PEP","PER","PET","PEW","PHI","PI","PIE","PIN","PIT","PLY","PO","POD","POE","POP","POT","POW","PRO","PRY","PUB","PUG","PUN","PUP","PUT","QUO","RAG","RAM","RAN","RAP","RAT","RAW","RAY","REB","RED","REP","RET","RIB","RID","RIG","RIM","RIO","RIP","ROB","ROD","ROE","RON","ROT","ROW","ROY","RUB","RUE","RUG","RUM","RUN","RYE","SAC","SAD","SAG","SAL","SAM","SAN","SAP","SAT","SAW","SAY","SEA","SEC","SEE","SEN","SET","SEW","SHE","SHY","SIN","SIP","SIR","SIS","SIT","SKI","SKY","SLY","SO","SOB","SOD","SON","SOP","SOW","SOY","SPA","SPY","SUB","SUD","SUE","SUM","SUN","SUP","TAB","TAD","TAG","TAN","TAP","TAR","TEA","TED","TEE","TEN","THE","THY","TIC","TIE","TIM","TIN","TIP","TO","TOE","TOG","TOM","TON","TOO","TOP","TOW","TOY","TRY","TUB","TUG","TUM","TUN","TWO","UN","UP","US","USE","VAN","VAT","VET","VIE","WAD","WAG","WAR","WAS","WAY","WE","WEB","WED","WEE","WET","WHO","WHY","WIN","WIT","WOK","WON","WOO","WOW","WRY","WU","YAM","YAP","YAW","YE","YEA","YES","YET","YOU","ABED","ABEL","ABET","ABLE","ABUT","ACHE","ACID","ACME","ACRE","ACTA","ACTS","ADAM","ADDS","ADEN","AFAR","AFRO","AGEE","AHEM","AHOY","AIDA","AIDE","AIDS","AIRY","AJAR","AKIN","ALAN","ALEC","ALGA","ALIA","ALLY","ALMA","ALOE","ALSO","ALTO","ALUM","ALVA","AMEN","AMES","AMID","AMMO","AMOK","AMOS","AMRA","ANDY","ANEW","ANNA","ANNE","ANTE","ANTI","AQUA","ARAB","ARCH","AREA","ARGO","ARID","ARMY","ARTS","ARTY","ASIA","ASKS","ATOM","AUNT","AURA","AUTO","AVER","AVID","AVIS","AVON","AVOW","AWAY","AWRY","BABE","BABY","BACH","BACK","BADE","BAIL","BAIT","BAKE","BALD","BALE","BALI","BALK","BALL","BALM","BAND","BANE","BANG","BANK","BARB","BARD","BARE","BARK","BARN","BARR","BASE","BASH","BASK","BASS","BATE","BATH","BAWD","BAWL","BEAD","BEAK","BEAM","BEAN","BEAR","BEAT","BEAU","BECK","BEEF","BEEN","BEER","BEET","BELA","BELL","BELT","BEND","BENT","BERG","BERN","BERT","BESS","BEST","BETA","BETH","BHOY","BIAS","BIDE","BIEN","BILE","BILK","BILL","BIND","BING","BIRD","BITE","BITS","BLAB","BLAT","BLED","BLEW","BLOB","BLOC","BLOT","BLOW","BLUE","BLUM","BLUR","BOAR","BOAT","BOCA","BOCK","BODE","BODY","BOGY","BOHR","BOIL","BOLD","BOLO","BOLT","BOMB","BONA","BOND","BONE","BONG","BONN","BONY","BOOK","BOOM","BOON","BOOT","BORE","BORG","BORN","BOSE","BOSS","BOTH","BOUT","BOWL","BOYD","BRAD","BRAE","BRAG","BRAN","BRAY","BRED","BREW","BRIG","BRIM","BROW","BUCK","BUDD","BUFF","BULB","BULK","BULL","BUNK","BUNT","BUOY","BURG","BURL","BURN","BURR","BURT","BURY","BUSH","BUSS","BUST","BUSY","BYTE","CADY","CAFE","CAGE","CAIN","CAKE","CALF","CALL","CALM","CAME","CANE","CANT","CARD","CARE","CARL","CARR","CART","CASE","CASH","CASK","CAST","CAVE","CEIL","CELL","CENT","CERN","CHAD","CHAR","CHAT","CHAW","CHEF","CHEN","CHEW","CHIC","CHIN","CHOU","CHOW","CHUB","CHUG","CHUM","CITE","CITY","CLAD","CLAM","CLAN","CLAW","CLAY","CLOD","CLOG","CLOT","CLUB","CLUE","COAL","COAT","COCA","COCK","COCO","CODA","CODE","CODY","COED","COIL","COIN","COKE","COLA","COLD","COLT","COMA","COMB","COME","COOK","COOL","COON","COOT","CORD","CORE","CORK","CORN","COST","COVE","COWL","CRAB","CRAG","CRAM","CRAY","CREW","CRIB","CROW","CRUD","CUBA","CUBE","CUFF","CULL","CULT","CUNY","CURB","CURD","CURE","CURL","CURT","CUTS","DADE","DALE","DAME","DANA","DANE","DANG","DANK","DARE","DARK","DARN","DART","DASH","DATA","DATE","DAVE","DAVY","DAWN","DAYS","DEAD","DEAF","DEAL","DEAN","DEAR","DEBT","DECK","DEED","DEEM","DEER","DEFT","DEFY","DELL","DENT","DENY","DESK","DIAL","DICE","DIED","DIET","DIME","DINE","DING","DINT","DIRE","DIRT","DISC","DISH","DISK","DIVE","DOCK","DOES","DOLE","DOLL","DOLT","DOME","DONE","DOOM","DOOR","DORA","DOSE","DOTE","DOUG","DOUR","DOVE","DOWN","DRAB","DRAG","DRAM","DRAW","DREW","DRUB","DRUG","DRUM","DUAL","DUCK","DUCT","DUEL","DUET","DUKE","DULL","DUMB","DUNE","DUNK","DUSK","DUST","DUTY","EACH","EARL","EARN","EASE","EAST","EASY","EBEN","ECHO","EDDY","EDEN","EDGE","EDGY","EDIT","EDNA","EGAN","ELAN","ELBA","ELLA","ELSE","EMIL","EMIT","EMMA","ENDS","ERIC","EROS","EVEN","EVER","EVIL","EYED","FACE","FACT","FADE","FAIL","FAIN","FAIR","FAKE","FALL","FAME","FANG","FARM","FAST","FATE","FAWN","FEAR","FEAT","FEED","FEEL","FEET","FELL","FELT","FEND","FERN","FEST","FEUD","FIEF","FIGS","FILE","FILL","FILM","FIND","FINE","FINK","FIRE","FIRM","FISH","FISK","FIST","FITS","FIVE","FLAG","FLAK","FLAM","FLAT","FLAW","FLEA","FLED","FLEW","FLIT","FLOC","FLOG","FLOW","FLUB","FLUE","FOAL","FOAM","FOGY","FOIL","FOLD","FOLK","FOND","FONT","FOOD","FOOL","FOOT","FORD","FORE","FORK","FORM","FORT","FOSS","FOUL","FOUR","FOWL","FRAU","FRAY","FRED","FREE","FRET","FREY","FROG","FROM","FUEL","FULL","FUME","FUND","FUNK","FURY","FUSE","FUSS","GAFF","GAGE","GAIL","GAIN","GAIT","GALA","GALE","GALL","GALT","GAME","GANG","GARB","GARY","GASH","GATE","GAUL","GAUR","GAVE","GAWK","GEAR","GELD","GENE","GENT","GERM","GETS","GIBE","GIFT","GILD","GILL","GILT","GINA","GIRD","GIRL","GIST","GIVE","GLAD","GLEE","GLEN","GLIB","GLOB","GLOM","GLOW","GLUE","GLUM","GLUT","GOAD","GOAL","GOAT","GOER","GOES","GOLD","GOLF","GONE","GONG","GOOD","GOOF","GORE","GORY","GOSH","GOUT","GOWN","GRAB","GRAD","GRAY","GREG","GREW","GREY","GRID","GRIM","GRIN","GRIT","GROW","GRUB","GULF","GULL","GUNK","GURU","GUSH","GUST","GWEN","GWYN","HAAG","HAAS","HACK","HAIL","HAIR","HALE","HALF","HALL","HALO","HALT","HAND","HANG","HANK","HANS","HARD","HARK","HARM","HART","HASH","HAST","HATE","HATH","HAUL","HAVE","HAWK","HAYS","HEAD","HEAL","HEAR","HEAT","HEBE","HECK","HEED","HEEL","HEFT","HELD","HELL","HELM","HERB","HERD","HERE","HERO","HERS","HESS","HEWN","HICK","HIDE","HIGH","HIKE","HILL","HILT","HIND","HINT","HIRE","HISS","HIVE","HOBO","HOCK","HOFF","HOLD","HOLE","HOLM","HOLT","HOME","HONE","HONK","HOOD","HOOF","HOOK","HOOT","HORN","HOSE","HOST","HOUR","HOVE","HOWE","HOWL","HOYT","HUCK","HUED","HUFF","HUGE","HUGH","HUGO","HULK","HULL","HUNK","HUNT","HURD","HURL","HURT","HUSH","HYDE","HYMN","IBIS","ICON","IDEA","IDLE","IFFY","INCA","INCH","INTO","IONS","IOTA","IOWA","IRIS","IRMA","IRON","ISLE","ITCH","ITEM","IVAN","JACK","JADE","JAIL","JAKE","JANE","JAVA","JEAN","JEFF","JERK","JESS","JEST","JIBE","JILL","JILT","JIVE","JOAN","JOBS","JOCK","JOEL","JOEY","JOHN","JOIN","JOKE","JOLT","JOVE","JUDD","JUDE","JUDO","JUDY","JUJU","JUKE","JULY","JUNE","JUNK","JUNO","JURY","JUST","JUTE","KAHN","KALE","KANE","KANT","KARL","KATE","KEEL","KEEN","KENO","KENT","KERN","KERR","KEYS","KICK","KILL","KIND","KING","KIRK","KISS","KITE","KLAN","KNEE","KNEW","KNIT","KNOB","KNOT","KNOW","KOCH","KONG","KUDO","KURD","KURT","KYLE","LACE","LACK","LACY","LADY","LAID","LAIN","LAIR","LAKE","LAMB","LAME","LAND","LANE","LANG","LARD","LARK","LASS","LAST","LATE","LAUD","LAVA","LAWN","LAWS","LAYS","LEAD","LEAF","LEAK","LEAN","LEAR","LEEK","LEER","LEFT","LEND","LENS","LENT","LEON","LESK","LESS","LEST","LETS","LIAR","LICE","LICK","LIED","LIEN","LIES","LIEU","LIFE","LIFT","LIKE","LILA","LILT","LILY","LIMA","LIMB","LIME","LIND","LINE","LINK","LINT","LION","LISA","LIST","LIVE","LOAD","LOAF","LOAM","LOAN","LOCK","LOFT","LOGE","LOIS","LOLA","LONE","LONG","LOOK","LOON","LOOT","LORD","LORE","LOSE","LOSS","LOST","LOUD","LOVE","LOWE","LUCK","LUCY","LUGE","LUKE","LULU","LUND","LUNG","LURA","LURE","LURK","LUSH","LUST","LYLE","LYNN","LYON","LYRA","MACE","MADE","MAGI","MAID","MAIL","MAIN","MAKE","MALE","MALI","MALL","MALT","MANA","MANN","MANY","MARC","MARE","MARK","MARS","MART","MARY","MASH","MASK","MASS","MAST","MATE","MATH","MAUL","MAYO","MEAD","MEAL","MEAN","MEAT","MEEK","MEET","MELD","MELT","MEMO","MEND","MENU","MERT","MESH","MESS","MICE","MIKE","MILD","MILE","MILK","MILL","MILT","MIMI","MIND","MINE","MINI","MINK","MINT","MIRE","MISS","MIST","MITE","MITT","MOAN","MOAT","MOCK","MODE","MOLD","MOLE","MOLL","MOLT","MONA","MONK","MONT","MOOD","MOON","MOOR","MOOT","MORE","MORN","MORT","MOSS","MOST","MOTH","MOVE","MUCH","MUCK","MUDD","MUFF","MULE","MULL","MURK","MUSH","MUST","MUTE","MUTT","MYRA","MYTH","NAGY","NAIL","NAIR","NAME","NARY","NASH","NAVE","NAVY","NEAL","NEAR","NEAT","NECK","NEED","NEIL","NELL","NEON","NERO","NESS","NEST","NEWS","NEWT","NIBS","NICE","NICK","NILE","NINA","NINE","NOAH","NODE","NOEL","NOLL","NONE","NOOK","NOON","NORM","NOSE","NOTE","NOUN","NOVA","NUDE","NULL","NUMB","OATH","OBEY","OBOE","ODIN","OHIO","OILY","OINT","OKAY","OLAF","OLDY","OLGA","OLIN","OMAN","OMEN","OMIT","ONCE","ONES","ONLY","ONTO","ONUS","ORAL","ORGY","OSLO","OTIS","OTTO","OUCH","OUST","OUTS","OVAL","OVEN","OVER","OWLY","OWNS","QUAD","QUIT","QUOD","RACE","RACK","RACY","RAFT","RAGE","RAID","RAIL","RAIN","RAKE","RANK","RANT","RARE","RASH","RATE","RAVE","RAYS","READ","REAL","REAM","REAR","RECK","REED","REEF","REEK","REEL","REID","REIN","RENA","REND","RENT","REST","RICE","RICH","RICK","RIDE","RIFT","RILL","RIME","RING","RINK","RISE","RISK","RITE","ROAD","ROAM","ROAR","ROBE","ROCK","RODE","ROIL","ROLL","ROME","ROOD","ROOF","ROOK","ROOM","ROOT","ROSA","ROSE","ROSS","ROSY","ROTH","ROUT","ROVE","ROWE","ROWS","RUBE","RUBY","RUDE","RUDY","RUIN","RULE","RUNG","RUNS","RUNT","RUSE","RUSH","RUSK","RUSS","RUST","RUTH","SACK","SAFE","SAGE","SAID","SAIL","SALE","SALK","SALT","SAME","SAND","SANE","SANG","SANK","SARA","SAUL","SAVE","SAYS","SCAN","SCAR","SCAT","SCOT","SEAL","SEAM","SEAR","SEAT","SEED","SEEK","SEEM","SEEN","SEES","SELF","SELL","SEND","SENT","SETS","SEWN","SHAG","SHAM","SHAW","SHAY","SHED","SHIM","SHIN","SHOD","SHOE","SHOT","SHOW","SHUN","SHUT","SICK","SIDE","SIFT","SIGH","SIGN","SILK","SILL","SILO","SILT","SINE","SING","SINK","SIRE","SITE","SITS","SITU","SKAT","SKEW","SKID","SKIM","SKIN","SKIT","SLAB","SLAM","SLAT","SLAY","SLED","SLEW","SLID","SLIM","SLIT","SLOB","SLOG","SLOT","SLOW","SLUG","SLUM","SLUR","SMOG","SMUG","SNAG","SNOB","SNOW","SNUB","SNUG","SOAK","SOAR","SOCK","SODA","SOFA","SOFT","SOIL","SOLD","SOME","SONG","SOON","SOOT","SORE","SORT","SOUL","SOUR","SOWN","STAB","STAG","STAN","STAR","STAY","STEM","STEW","STIR","STOW","STUB","STUN","SUCH","SUDS","SUIT","SULK","SUMS","SUNG","SUNK","SURE","SURF","SWAB","SWAG","SWAM","SWAN","SWAT","SWAY","SWIM","SWUM","TACK","TACT","TAIL","TAKE","TALE","TALK","TALL","TANK","TASK","TATE","TAUT","TEAL","TEAM","TEAR","TECH","TEEM","TEEN","TEET","TELL","TEND","TENT","TERM","TERN","TESS","TEST","THAN","THAT","THEE","THEM","THEN","THEY","THIN","THIS","THUD","THUG","TICK","TIDE","TIDY","TIED","TIER","TILE","TILL","TILT","TIME","TINA","TINE","TINT","TINY","TIRE","TOAD","TOGO","TOIL","TOLD","TOLL","TONE","TONG","TONY","TOOK","TOOL","TOOT","TORE","TORN","TOTE","TOUR","TOUT","TOWN","TRAG","TRAM","TRAY","TREE","TREK","TRIG","TRIM","TRIO","TROD","TROT","TROY","TRUE","TUBA","TUBE","TUCK","TUFT","TUNA","TUNE","TUNG","TURF","TURN","TUSK","TWIG","TWIN","TWIT","ULAN","UNIT","URGE","USED","USER","USES","UTAH","VAIL","VAIN","VALE","VARY","VASE","VAST","VEAL","VEDA","VEIL","VEIN","VEND","VENT","VERB","VERY","VETO","VICE","VIEW","VINE","VISE","VOID","VOLT","VOTE","WACK","WADE","WAGE","WAIL","WAIT","WAKE","WALE","WALK","WALL","WALT","WAND","WANE","WANG","WANT","WARD","WARM","WARN","WART","WASH","WAST","WATS","WATT","WAVE","WAVY","WAYS","WEAK","WEAL","WEAN","WEAR","WEED","WEEK","WEIR","WELD","WELL","WELT","WENT","WERE","WERT","WEST","WHAM","WHAT","WHEE","WHEN","WHET","WHOA","WHOM","WICK","WIFE","WILD","WILL","WIND","WINE","WING","WINK","WINO","WIRE","WISE","WISH","WITH","WOLF","WONT","WOOD","WOOL","WORD","WORE","WORK","WORM","WORN","WOVE","WRIT","WYNN","YALE","YANG","YANK","YARD","YARN","YAWL","YAWN","YEAH","YEAR","YELL","YOGA","YOKE"]')}},t={};function r(n){var i=t[n];if(void 0!==i)return i.exports;var o=t[n]={id:n,loaded:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.loaded=!0,o.exports}r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e);var n=r(20066);xrpl=n})(); -//# sourceMappingURL=xrpl-latest-min.js.map \ No newline at end of file +var xrpl +;(() => { + var e = { + 54373: (e, t) => { + 'use strict' + function r(e) { + if (!Number.isSafeInteger(e) || e < 0) throw new Error(`Wrong positive integer: ${e}`) + } + function n(e) { + if ('boolean' != typeof e) throw new Error(`Expected boolean, not ${e}`) + } + function i(e, ...t) { + if (!(e instanceof Uint8Array)) throw new TypeError('Expected Uint8Array') + if (t.length > 0 && !t.includes(e.length)) throw new TypeError(`Expected Uint8Array of length ${t}, not of length=${e.length}`) + } + function o(e) { + if ('function' != typeof e || 'function' != typeof e.create) throw new Error('Hash should be wrapped by utils.wrapConstructor') + ;(r(e.outputLen), r(e.blockLen)) + } + function a(e, t = !0) { + if (e.destroyed) throw new Error('Hash instance has been destroyed') + if (t && e.finished) throw new Error('Hash#digest() has already been called') + } + function s(e, t) { + i(e) + const r = t.outputLen + if (e.length < r) throw new Error(`digestInto() expects output buffer of length at least ${r}`) + } + ;(Object.defineProperty(t, '__esModule', { value: !0 }), + (t.output = t.exists = t.hash = t.bytes = t.bool = t.number = void 0), + (t.number = r), + (t.bool = n), + (t.bytes = i), + (t.hash = o), + (t.exists = a), + (t.output = s)) + const u = { number: r, bool: n, bytes: i, hash: o, exists: a, output: s } + t.default = u + }, + 74826: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.SHA2 = void 0)) + const n = r(54373), + i = r(56266) + class o extends i.Hash { + constructor(e, t, r, n) { + ;(super(), + (this.blockLen = e), + (this.outputLen = t), + (this.padOffset = r), + (this.isLE = n), + (this.finished = !1), + (this.length = 0), + (this.pos = 0), + (this.destroyed = !1), + (this.buffer = new Uint8Array(e)), + (this.view = (0, i.createView)(this.buffer))) + } + update(e) { + n.default.exists(this) + const { view: t, buffer: r, blockLen: o } = this, + a = (e = (0, i.toBytes)(e)).length + for (let n = 0; n < a; ) { + const s = Math.min(o - this.pos, a - n) + if (s !== o) (r.set(e.subarray(n, n + s), this.pos), (this.pos += s), (n += s), this.pos === o && (this.process(t, 0), (this.pos = 0))) + else { + const t = (0, i.createView)(e) + for (; o <= a - n; n += o) this.process(t, n) + } + } + return ((this.length += e.length), this.roundClean(), this) + } + digestInto(e) { + ;(n.default.exists(this), n.default.output(e, this), (this.finished = !0)) + const { buffer: t, view: r, blockLen: o, isLE: a } = this + let { pos: s } = this + ;((t[s++] = 128), this.buffer.subarray(s).fill(0), this.padOffset > o - s && (this.process(r, 0), (s = 0))) + for (let e = s; e < o; e++) t[e] = 0 + ;(!(function (e, t, r, n) { + if ('function' == typeof e.setBigUint64) return e.setBigUint64(t, r, n) + const i = BigInt(32), + o = BigInt(4294967295), + a = Number((r >> i) & o), + s = Number(r & o), + u = n ? 4 : 0, + c = n ? 0 : 4 + ;(e.setUint32(t + u, a, n), e.setUint32(t + c, s, n)) + })(r, o - 8, BigInt(8 * this.length), a), + this.process(r, 0)) + const u = (0, i.createView)(e), + c = this.outputLen + if (c % 4) throw new Error('_sha2: outputLen should be aligned to 32bit') + const f = c / 4, + l = this.get() + if (f > l.length) throw new Error('_sha2: outputLen bigger than state') + for (let e = 0; e < f; e++) u.setUint32(4 * e, l[e], a) + } + digest() { + const { buffer: e, outputLen: t } = this + this.digestInto(e) + const r = e.slice(0, t) + return (this.destroy(), r) + } + _cloneInto(e) { + ;(e || (e = new this.constructor()), e.set(...this.get())) + const { blockLen: t, buffer: r, length: n, finished: i, destroyed: o, pos: a } = this + return ((e.length = n), (e.pos = a), (e.finished = i), (e.destroyed = o), n % t && e.buffer.set(r), e) + } + } + t.SHA2 = o + }, + 35117: (e, t) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.add = t.toBig = t.split = t.fromBig = void 0)) + const r = BigInt(2 ** 32 - 1), + n = BigInt(32) + function i(e, t = !1) { + return t ? { h: Number(e & r), l: Number((e >> n) & r) } : { h: 0 | Number((e >> n) & r), l: 0 | Number(e & r) } + } + function o(e, t = !1) { + let r = new Uint32Array(e.length), + n = new Uint32Array(e.length) + for (let o = 0; o < e.length; o++) { + const { h: a, l: s } = i(e[o], t) + ;[r[o], n[o]] = [a, s] + } + return [r, n] + } + function a(e, t, r, n) { + const i = (t >>> 0) + (n >>> 0) + return { h: (e + r + ((i / 2 ** 32) | 0)) | 0, l: 0 | i } + } + ;((t.fromBig = i), (t.split = o), (t.toBig = (e, t) => (BigInt(e >>> 0) << n) | BigInt(t >>> 0)), (t.add = a)) + const s = { + fromBig: i, + split: o, + toBig: t.toBig, + shrSH: (e, t, r) => e >>> r, + shrSL: (e, t, r) => (e << (32 - r)) | (t >>> r), + rotrSH: (e, t, r) => (e >>> r) | (t << (32 - r)), + rotrSL: (e, t, r) => (e << (32 - r)) | (t >>> r), + rotrBH: (e, t, r) => (e << (64 - r)) | (t >>> (r - 32)), + rotrBL: (e, t, r) => (e >>> (r - 32)) | (t << (64 - r)), + rotr32H: (e, t) => t, + rotr32L: (e, t) => e, + rotlSH: (e, t, r) => (e << r) | (t >>> (32 - r)), + rotlSL: (e, t, r) => (t << r) | (e >>> (32 - r)), + rotlBH: (e, t, r) => (t << (r - 32)) | (e >>> (64 - r)), + rotlBL: (e, t, r) => (e << (r - 32)) | (t >>> (64 - r)), + add: a, + add3L: (e, t, r) => (e >>> 0) + (t >>> 0) + (r >>> 0), + add3H: (e, t, r, n) => (t + r + n + ((e / 2 ** 32) | 0)) | 0, + add4L: (e, t, r, n) => (e >>> 0) + (t >>> 0) + (r >>> 0) + (n >>> 0), + add4H: (e, t, r, n, i) => (t + r + n + i + ((e / 2 ** 32) | 0)) | 0, + add5H: (e, t, r, n, i, o) => (t + r + n + i + o + ((e / 2 ** 32) | 0)) | 0, + add5L: (e, t, r, n, i) => (e >>> 0) + (t >>> 0) + (r >>> 0) + (n >>> 0) + (i >>> 0), + } + t.default = s + }, + 22235: (e, t) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), + (t.crypto = void 0), + (t.crypto = 'object' == typeof globalThis && 'crypto' in globalThis ? globalThis.crypto : void 0)) + }, + 5070: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.hmac = void 0)) + const n = r(54373), + i = r(56266) + class o extends i.Hash { + constructor(e, t) { + ;(super(), (this.finished = !1), (this.destroyed = !1), n.default.hash(e)) + const r = (0, i.toBytes)(t) + if (((this.iHash = e.create()), 'function' != typeof this.iHash.update)) + throw new TypeError('Expected instance of class which extends utils.Hash') + ;((this.blockLen = this.iHash.blockLen), (this.outputLen = this.iHash.outputLen)) + const o = this.blockLen, + a = new Uint8Array(o) + a.set(r.length > o ? e.create().update(r).digest() : r) + for (let e = 0; e < a.length; e++) a[e] ^= 54 + ;(this.iHash.update(a), (this.oHash = e.create())) + for (let e = 0; e < a.length; e++) a[e] ^= 106 + ;(this.oHash.update(a), a.fill(0)) + } + update(e) { + return (n.default.exists(this), this.iHash.update(e), this) + } + digestInto(e) { + ;(n.default.exists(this), + n.default.bytes(e, this.outputLen), + (this.finished = !0), + this.iHash.digestInto(e), + this.oHash.update(e), + this.oHash.digestInto(e), + this.destroy()) + } + digest() { + const e = new Uint8Array(this.oHash.outputLen) + return (this.digestInto(e), e) + } + _cloneInto(e) { + e || (e = Object.create(Object.getPrototypeOf(this), {})) + const { oHash: t, iHash: r, finished: n, destroyed: i, blockLen: o, outputLen: a } = this + return ( + (e.finished = n), + (e.destroyed = i), + (e.blockLen = o), + (e.outputLen = a), + (e.oHash = t._cloneInto(e.oHash)), + (e.iHash = r._cloneInto(e.iHash)), + e + ) + } + destroy() { + ;((this.destroyed = !0), this.oHash.destroy(), this.iHash.destroy()) + } + } + ;((t.hmac = (e, t, r) => new o(e, t).update(r).digest()), (t.hmac.create = (e, t) => new o(e, t))) + }, + 35e3: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.pbkdf2Async = t.pbkdf2 = void 0)) + const n = r(54373), + i = r(5070), + o = r(56266) + function a(e, t, r, a) { + n.default.hash(e) + const s = (0, o.checkOpts)({ dkLen: 32, asyncTick: 10 }, a), + { c: u, dkLen: c, asyncTick: f } = s + if ((n.default.number(u), n.default.number(c), n.default.number(f), u < 1)) throw new Error('PBKDF2: iterations (c) should be >= 1') + const l = (0, o.toBytes)(t), + d = (0, o.toBytes)(r), + h = new Uint8Array(c), + p = i.hmac.create(e, l), + y = p._cloneInto().update(d) + return { c: u, dkLen: c, asyncTick: f, DK: h, PRF: p, PRFSalt: y } + } + function s(e, t, r, n, i) { + return (e.destroy(), t.destroy(), n && n.destroy(), i.fill(0), r) + } + ;((t.pbkdf2 = function (e, t, r, n) { + const { c: i, dkLen: u, DK: c, PRF: f, PRFSalt: l } = a(e, t, r, n) + let d + const h = new Uint8Array(4), + p = (0, o.createView)(h), + y = new Uint8Array(f.outputLen) + for (let e = 1, t = 0; t < u; e++, t += f.outputLen) { + const r = c.subarray(t, t + f.outputLen) + ;(p.setInt32(0, e, !1), (d = l._cloneInto(d)).update(h).digestInto(y), r.set(y.subarray(0, r.length))) + for (let e = 1; e < i; e++) { + f._cloneInto(d).update(y).digestInto(y) + for (let e = 0; e < r.length; e++) r[e] ^= y[e] + } + } + return s(f, l, c, d, y) + }), + (t.pbkdf2Async = async function (e, t, r, n) { + const { c: i, dkLen: u, asyncTick: c, DK: f, PRF: l, PRFSalt: d } = a(e, t, r, n) + let h + const p = new Uint8Array(4), + y = (0, o.createView)(p), + g = new Uint8Array(l.outputLen) + for (let e = 1, t = 0; t < u; e++, t += l.outputLen) { + const r = f.subarray(t, t + l.outputLen) + ;(y.setInt32(0, e, !1), + (h = d._cloneInto(h)).update(p).digestInto(g), + r.set(g.subarray(0, r.length)), + await (0, o.asyncLoop)(i - 1, c, (e) => { + l._cloneInto(h).update(g).digestInto(g) + for (let e = 0; e < r.length; e++) r[e] ^= g[e] + })) + } + return s(l, d, f, h, g) + })) + }, + 37789: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.sha224 = t.sha256 = void 0)) + const n = r(74826), + i = r(56266), + o = (e, t, r) => (e & t) ^ (e & r) ^ (t & r), + a = new Uint32Array([ + 1116352408, 1899447441, 3049323471, 3921009573, 961987163, 1508970993, 2453635748, 2870763221, 3624381080, 310598401, 607225278, + 1426881987, 1925078388, 2162078206, 2614888103, 3248222580, 3835390401, 4022224774, 264347078, 604807628, 770255983, 1249150122, + 1555081692, 1996064986, 2554220882, 2821834349, 2952996808, 3210313671, 3336571891, 3584528711, 113926993, 338241895, 666307205, + 773529912, 1294757372, 1396182291, 1695183700, 1986661051, 2177026350, 2456956037, 2730485921, 2820302411, 3259730800, 3345764771, + 3516065817, 3600352804, 4094571909, 275423344, 430227734, 506948616, 659060556, 883997877, 958139571, 1322822218, 1537002063, 1747873779, + 1955562222, 2024104815, 2227730452, 2361852424, 2428436474, 2756734187, 3204031479, 3329325298, + ]), + s = new Uint32Array([1779033703, 3144134277, 1013904242, 2773480762, 1359893119, 2600822924, 528734635, 1541459225]), + u = new Uint32Array(64) + class c extends n.SHA2 { + constructor() { + ;(super(64, 32, 8, !1), + (this.A = 0 | s[0]), + (this.B = 0 | s[1]), + (this.C = 0 | s[2]), + (this.D = 0 | s[3]), + (this.E = 0 | s[4]), + (this.F = 0 | s[5]), + (this.G = 0 | s[6]), + (this.H = 0 | s[7])) + } + get() { + const { A: e, B: t, C: r, D: n, E: i, F: o, G: a, H: s } = this + return [e, t, r, n, i, o, a, s] + } + set(e, t, r, n, i, o, a, s) { + ;((this.A = 0 | e), + (this.B = 0 | t), + (this.C = 0 | r), + (this.D = 0 | n), + (this.E = 0 | i), + (this.F = 0 | o), + (this.G = 0 | a), + (this.H = 0 | s)) + } + process(e, t) { + for (let r = 0; r < 16; r++, t += 4) u[r] = e.getUint32(t, !1) + for (let e = 16; e < 64; e++) { + const t = u[e - 15], + r = u[e - 2], + n = (0, i.rotr)(t, 7) ^ (0, i.rotr)(t, 18) ^ (t >>> 3), + o = (0, i.rotr)(r, 17) ^ (0, i.rotr)(r, 19) ^ (r >>> 10) + u[e] = (o + u[e - 7] + n + u[e - 16]) | 0 + } + let { A: r, B: n, C: s, D: c, E: f, F: l, G: d, H: h } = this + for (let e = 0; e < 64; e++) { + const t = (h + ((0, i.rotr)(f, 6) ^ (0, i.rotr)(f, 11) ^ (0, i.rotr)(f, 25)) + (((p = f) & l) ^ (~p & d)) + a[e] + u[e]) | 0, + y = (((0, i.rotr)(r, 2) ^ (0, i.rotr)(r, 13) ^ (0, i.rotr)(r, 22)) + o(r, n, s)) | 0 + ;((h = d), (d = l), (l = f), (f = (c + t) | 0), (c = s), (s = n), (n = r), (r = (t + y) | 0)) + } + var p + ;((r = (r + this.A) | 0), + (n = (n + this.B) | 0), + (s = (s + this.C) | 0), + (c = (c + this.D) | 0), + (f = (f + this.E) | 0), + (l = (l + this.F) | 0), + (d = (d + this.G) | 0), + (h = (h + this.H) | 0), + this.set(r, n, s, c, f, l, d, h)) + } + roundClean() { + u.fill(0) + } + destroy() { + ;(this.set(0, 0, 0, 0, 0, 0, 0, 0), this.buffer.fill(0)) + } + } + class f extends c { + constructor() { + ;(super(), + (this.A = -1056596264), + (this.B = 914150663), + (this.C = 812702999), + (this.D = -150054599), + (this.E = -4191439), + (this.F = 1750603025), + (this.G = 1694076839), + (this.H = -1090891868), + (this.outputLen = 28)) + } + } + ;((t.sha256 = (0, i.wrapConstructor)(() => new c())), (t.sha224 = (0, i.wrapConstructor)(() => new f()))) + }, + 94391: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.sha384 = t.sha512_256 = t.sha512_224 = t.sha512 = t.SHA512 = void 0)) + const n = r(74826), + i = r(35117), + o = r(56266), + [a, s] = i.default.split( + [ + '0x428a2f98d728ae22', + '0x7137449123ef65cd', + '0xb5c0fbcfec4d3b2f', + '0xe9b5dba58189dbbc', + '0x3956c25bf348b538', + '0x59f111f1b605d019', + '0x923f82a4af194f9b', + '0xab1c5ed5da6d8118', + '0xd807aa98a3030242', + '0x12835b0145706fbe', + '0x243185be4ee4b28c', + '0x550c7dc3d5ffb4e2', + '0x72be5d74f27b896f', + '0x80deb1fe3b1696b1', + '0x9bdc06a725c71235', + '0xc19bf174cf692694', + '0xe49b69c19ef14ad2', + '0xefbe4786384f25e3', + '0x0fc19dc68b8cd5b5', + '0x240ca1cc77ac9c65', + '0x2de92c6f592b0275', + '0x4a7484aa6ea6e483', + '0x5cb0a9dcbd41fbd4', + '0x76f988da831153b5', + '0x983e5152ee66dfab', + '0xa831c66d2db43210', + '0xb00327c898fb213f', + '0xbf597fc7beef0ee4', + '0xc6e00bf33da88fc2', + '0xd5a79147930aa725', + '0x06ca6351e003826f', + '0x142929670a0e6e70', + '0x27b70a8546d22ffc', + '0x2e1b21385c26c926', + '0x4d2c6dfc5ac42aed', + '0x53380d139d95b3df', + '0x650a73548baf63de', + '0x766a0abb3c77b2a8', + '0x81c2c92e47edaee6', + '0x92722c851482353b', + '0xa2bfe8a14cf10364', + '0xa81a664bbc423001', + '0xc24b8b70d0f89791', + '0xc76c51a30654be30', + '0xd192e819d6ef5218', + '0xd69906245565a910', + '0xf40e35855771202a', + '0x106aa07032bbd1b8', + '0x19a4c116b8d2d0c8', + '0x1e376c085141ab53', + '0x2748774cdf8eeb99', + '0x34b0bcb5e19b48a8', + '0x391c0cb3c5c95a63', + '0x4ed8aa4ae3418acb', + '0x5b9cca4f7763e373', + '0x682e6ff3d6b2b8a3', + '0x748f82ee5defb2fc', + '0x78a5636f43172f60', + '0x84c87814a1f0ab72', + '0x8cc702081a6439ec', + '0x90befffa23631e28', + '0xa4506cebde82bde9', + '0xbef9a3f7b2c67915', + '0xc67178f2e372532b', + '0xca273eceea26619c', + '0xd186b8c721c0c207', + '0xeada7dd6cde0eb1e', + '0xf57d4f7fee6ed178', + '0x06f067aa72176fba', + '0x0a637dc5a2c898a6', + '0x113f9804bef90dae', + '0x1b710b35131c471b', + '0x28db77f523047d84', + '0x32caab7b40c72493', + '0x3c9ebe0a15c9bebc', + '0x431d67c49c100d4c', + '0x4cc5d4becb3e42b6', + '0x597f299cfc657e2a', + '0x5fcb6fab3ad6faec', + '0x6c44198c4a475817', + ].map((e) => BigInt(e)), + ), + u = new Uint32Array(80), + c = new Uint32Array(80) + class f extends n.SHA2 { + constructor() { + ;(super(128, 64, 16, !1), + (this.Ah = 1779033703), + (this.Al = -205731576), + (this.Bh = -1150833019), + (this.Bl = -2067093701), + (this.Ch = 1013904242), + (this.Cl = -23791573), + (this.Dh = -1521486534), + (this.Dl = 1595750129), + (this.Eh = 1359893119), + (this.El = -1377402159), + (this.Fh = -1694144372), + (this.Fl = 725511199), + (this.Gh = 528734635), + (this.Gl = -79577749), + (this.Hh = 1541459225), + (this.Hl = 327033209)) + } + get() { + const { Ah: e, Al: t, Bh: r, Bl: n, Ch: i, Cl: o, Dh: a, Dl: s, Eh: u, El: c, Fh: f, Fl: l, Gh: d, Gl: h, Hh: p, Hl: y } = this + return [e, t, r, n, i, o, a, s, u, c, f, l, d, h, p, y] + } + set(e, t, r, n, i, o, a, s, u, c, f, l, d, h, p, y) { + ;((this.Ah = 0 | e), + (this.Al = 0 | t), + (this.Bh = 0 | r), + (this.Bl = 0 | n), + (this.Ch = 0 | i), + (this.Cl = 0 | o), + (this.Dh = 0 | a), + (this.Dl = 0 | s), + (this.Eh = 0 | u), + (this.El = 0 | c), + (this.Fh = 0 | f), + (this.Fl = 0 | l), + (this.Gh = 0 | d), + (this.Gl = 0 | h), + (this.Hh = 0 | p), + (this.Hl = 0 | y)) + } + process(e, t) { + for (let r = 0; r < 16; r++, t += 4) ((u[r] = e.getUint32(t)), (c[r] = e.getUint32((t += 4)))) + for (let e = 16; e < 80; e++) { + const t = 0 | u[e - 15], + r = 0 | c[e - 15], + n = i.default.rotrSH(t, r, 1) ^ i.default.rotrSH(t, r, 8) ^ i.default.shrSH(t, r, 7), + o = i.default.rotrSL(t, r, 1) ^ i.default.rotrSL(t, r, 8) ^ i.default.shrSL(t, r, 7), + a = 0 | u[e - 2], + s = 0 | c[e - 2], + f = i.default.rotrSH(a, s, 19) ^ i.default.rotrBH(a, s, 61) ^ i.default.shrSH(a, s, 6), + l = i.default.rotrSL(a, s, 19) ^ i.default.rotrBL(a, s, 61) ^ i.default.shrSL(a, s, 6), + d = i.default.add4L(o, l, c[e - 7], c[e - 16]), + h = i.default.add4H(d, n, f, u[e - 7], u[e - 16]) + ;((u[e] = 0 | h), (c[e] = 0 | d)) + } + let { Ah: r, Al: n, Bh: o, Bl: f, Ch: l, Cl: d, Dh: h, Dl: p, Eh: y, El: g, Fh: b, Fl: m, Gh: v, Gl: w, Hh: _, Hl: E } = this + for (let e = 0; e < 80; e++) { + const t = i.default.rotrSH(y, g, 14) ^ i.default.rotrSH(y, g, 18) ^ i.default.rotrBH(y, g, 41), + S = i.default.rotrSL(y, g, 14) ^ i.default.rotrSL(y, g, 18) ^ i.default.rotrBL(y, g, 41), + A = (y & b) ^ (~y & v), + O = (g & m) ^ (~g & w), + M = i.default.add5L(E, S, O, s[e], c[e]), + T = i.default.add5H(M, _, t, A, a[e], u[e]), + I = 0 | M, + N = i.default.rotrSH(r, n, 28) ^ i.default.rotrBH(r, n, 34) ^ i.default.rotrBH(r, n, 39), + x = i.default.rotrSL(r, n, 28) ^ i.default.rotrBL(r, n, 34) ^ i.default.rotrBL(r, n, 39), + L = (r & o) ^ (r & l) ^ (o & l), + k = (n & f) ^ (n & d) ^ (f & d) + ;((_ = 0 | v), + (E = 0 | w), + (v = 0 | b), + (w = 0 | m), + (b = 0 | y), + (m = 0 | g), + ({ h: y, l: g } = i.default.add(0 | h, 0 | p, 0 | T, 0 | I)), + (h = 0 | l), + (p = 0 | d), + (l = 0 | o), + (d = 0 | f), + (o = 0 | r), + (f = 0 | n)) + const R = i.default.add3L(I, x, k) + ;((r = i.default.add3H(R, T, N, L)), (n = 0 | R)) + } + ;(({ h: r, l: n } = i.default.add(0 | this.Ah, 0 | this.Al, 0 | r, 0 | n)), + ({ h: o, l: f } = i.default.add(0 | this.Bh, 0 | this.Bl, 0 | o, 0 | f)), + ({ h: l, l: d } = i.default.add(0 | this.Ch, 0 | this.Cl, 0 | l, 0 | d)), + ({ h, l: p } = i.default.add(0 | this.Dh, 0 | this.Dl, 0 | h, 0 | p)), + ({ h: y, l: g } = i.default.add(0 | this.Eh, 0 | this.El, 0 | y, 0 | g)), + ({ h: b, l: m } = i.default.add(0 | this.Fh, 0 | this.Fl, 0 | b, 0 | m)), + ({ h: v, l: w } = i.default.add(0 | this.Gh, 0 | this.Gl, 0 | v, 0 | w)), + ({ h: _, l: E } = i.default.add(0 | this.Hh, 0 | this.Hl, 0 | _, 0 | E)), + this.set(r, n, o, f, l, d, h, p, y, g, b, m, v, w, _, E)) + } + roundClean() { + ;(u.fill(0), c.fill(0)) + } + destroy() { + ;(this.buffer.fill(0), this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)) + } + } + t.SHA512 = f + class l extends f { + constructor() { + ;(super(), + (this.Ah = -1942145080), + (this.Al = 424955298), + (this.Bh = 1944164710), + (this.Bl = -1982016298), + (this.Ch = 502970286), + (this.Cl = 855612546), + (this.Dh = 1738396948), + (this.Dl = 1479516111), + (this.Eh = 258812777), + (this.El = 2077511080), + (this.Fh = 2011393907), + (this.Fl = 79989058), + (this.Gh = 1067287976), + (this.Gl = 1780299464), + (this.Hh = 286451373), + (this.Hl = -1848208735), + (this.outputLen = 28)) + } + } + class d extends f { + constructor() { + ;(super(), + (this.Ah = 573645204), + (this.Al = -64227540), + (this.Bh = -1621794909), + (this.Bl = -934517566), + (this.Ch = 596883563), + (this.Cl = 1867755857), + (this.Dh = -1774684391), + (this.Dl = 1497426621), + (this.Eh = -1775747358), + (this.El = -1467023389), + (this.Fh = -1101128155), + (this.Fl = 1401305490), + (this.Gh = 721525244), + (this.Gl = 746961066), + (this.Hh = 246885852), + (this.Hl = -2117784414), + (this.outputLen = 32)) + } + } + class h extends f { + constructor() { + ;(super(), + (this.Ah = -876896931), + (this.Al = -1056596264), + (this.Bh = 1654270250), + (this.Bl = 914150663), + (this.Ch = -1856437926), + (this.Cl = 812702999), + (this.Dh = 355462360), + (this.Dl = -150054599), + (this.Eh = 1731405415), + (this.El = -4191439), + (this.Fh = -1900787065), + (this.Fl = 1750603025), + (this.Gh = -619958771), + (this.Gl = 1694076839), + (this.Hh = 1203062813), + (this.Hl = -1090891868), + (this.outputLen = 48)) + } + } + ;((t.sha512 = (0, o.wrapConstructor)(() => new f())), + (t.sha512_224 = (0, o.wrapConstructor)(() => new l())), + (t.sha512_256 = (0, o.wrapConstructor)(() => new d())), + (t.sha384 = (0, o.wrapConstructor)(() => new h()))) + }, + 56266: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), + (t.randomBytes = + t.wrapConstructorWithOpts = + t.wrapConstructor = + t.checkOpts = + t.Hash = + t.concatBytes = + t.toBytes = + t.utf8ToBytes = + t.asyncLoop = + t.nextTick = + t.hexToBytes = + t.bytesToHex = + t.isLE = + t.rotr = + t.createView = + t.u32 = + t.u8 = + void 0)) + const n = r(22235) + if ( + ((t.u8 = (e) => new Uint8Array(e.buffer, e.byteOffset, e.byteLength)), + (t.u32 = (e) => new Uint32Array(e.buffer, e.byteOffset, Math.floor(e.byteLength / 4))), + (t.createView = (e) => new DataView(e.buffer, e.byteOffset, e.byteLength)), + (t.rotr = (e, t) => (e << (32 - t)) | (e >>> t)), + (t.isLE = 68 === new Uint8Array(new Uint32Array([287454020]).buffer)[0]), + !t.isLE) + ) + throw new Error('Non little-endian hardware is not supported') + const i = Array.from({ length: 256 }, (e, t) => t.toString(16).padStart(2, '0')) + function o(e) { + if ('string' != typeof e) throw new TypeError('utf8ToBytes expected string, got ' + typeof e) + return new TextEncoder().encode(e) + } + function a(e) { + if (('string' == typeof e && (e = o(e)), !(e instanceof Uint8Array))) + throw new TypeError(`Expected input type is Uint8Array (got ${typeof e})`) + return e + } + ;((t.bytesToHex = function (e) { + if (!(e instanceof Uint8Array)) throw new Error('Uint8Array expected') + let t = '' + for (let r = 0; r < e.length; r++) t += i[e[r]] + return t + }), + (t.hexToBytes = function (e) { + if ('string' != typeof e) throw new TypeError('hexToBytes: expected string, got ' + typeof e) + if (e.length % 2) throw new Error('hexToBytes: received invalid unpadded hex') + const t = new Uint8Array(e.length / 2) + for (let r = 0; r < t.length; r++) { + const n = 2 * r, + i = e.slice(n, n + 2), + o = Number.parseInt(i, 16) + if (Number.isNaN(o) || o < 0) throw new Error('Invalid byte sequence') + t[r] = o + } + return t + }), + (t.nextTick = async () => {}), + (t.asyncLoop = async function (e, r, n) { + let i = Date.now() + for (let o = 0; o < e; o++) { + n(o) + const e = Date.now() - i + ;(e >= 0 && e < r) || (await (0, t.nextTick)(), (i += e)) + } + }), + (t.utf8ToBytes = o), + (t.toBytes = a), + (t.concatBytes = function (...e) { + if (!e.every((e) => e instanceof Uint8Array)) throw new Error('Uint8Array list expected') + if (1 === e.length) return e[0] + const t = e.reduce((e, t) => e + t.length, 0), + r = new Uint8Array(t) + for (let t = 0, n = 0; t < e.length; t++) { + const i = e[t] + ;(r.set(i, n), (n += i.length)) + } + return r + }), + (t.Hash = class { + clone() { + return this._cloneInto() + } + }), + (t.checkOpts = function (e, t) { + if ( + void 0 !== t && + ('object' != typeof t || ((r = t), '[object Object]' !== Object.prototype.toString.call(r) || r.constructor !== Object)) + ) + throw new TypeError('Options should be object or undefined') + var r + return Object.assign(e, t) + }), + (t.wrapConstructor = function (e) { + const t = (t) => e().update(a(t)).digest(), + r = e() + return ((t.outputLen = r.outputLen), (t.blockLen = r.blockLen), (t.create = () => e()), t) + }), + (t.wrapConstructorWithOpts = function (e) { + const t = (t, r) => e(r).update(a(t)).digest(), + r = e({}) + return ((t.outputLen = r.outputLen), (t.blockLen = r.blockLen), (t.create = (t) => e(t)), t) + }), + (t.randomBytes = function (e = 32) { + if (n.crypto && 'function' == typeof n.crypto.getRandomValues) return n.crypto.getRandomValues(new Uint8Array(e)) + throw new Error('crypto.getRandomValues must be defined') + })) + }, + 65975: (e, t, r) => { + 'use strict' + const n = t + ;((n.bignum = r(10660)), + (n.define = r(36944).define), + (n.base = r(64581)), + (n.constants = r(47961)), + (n.decoders = r(39605)), + (n.encoders = r(52408))) + }, + 36944: (e, t, r) => { + 'use strict' + const n = r(52408), + i = r(39605), + o = r(19105) + function a(e, t) { + ;((this.name = e), (this.body = t), (this.decoders = {}), (this.encoders = {})) + } + ;((t.define = function (e, t) { + return new a(e, t) + }), + (a.prototype._createNamed = function (e) { + const t = this.name + function r(e) { + this._initNamed(e, t) + } + return ( + o(r, e), + (r.prototype._initNamed = function (t, r) { + e.call(this, t, r) + }), + new r(this) + ) + }), + (a.prototype._getDecoder = function (e) { + return ((e = e || 'der'), this.decoders.hasOwnProperty(e) || (this.decoders[e] = this._createNamed(i[e])), this.decoders[e]) + }), + (a.prototype.decode = function (e, t, r) { + return this._getDecoder(t).decode(e, r) + }), + (a.prototype._getEncoder = function (e) { + return ((e = e || 'der'), this.encoders.hasOwnProperty(e) || (this.encoders[e] = this._createNamed(n[e])), this.encoders[e]) + }), + (a.prototype.encode = function (e, t, r) { + return this._getEncoder(t).encode(e, r) + })) + }, + 3961: (e, t, r) => { + 'use strict' + const n = r(19105), + i = r(98147).b, + o = r(95848).Buffer + function a(e, t) { + ;(i.call(this, t), o.isBuffer(e) ? ((this.base = e), (this.offset = 0), (this.length = e.length)) : this.error('Input not Buffer')) + } + function s(e, t) { + if (Array.isArray(e)) + ((this.length = 0), + (this.value = e.map(function (e) { + return (s.isEncoderBuffer(e) || (e = new s(e, t)), (this.length += e.length), e) + }, this))) + else if ('number' == typeof e) { + if (!(0 <= e && e <= 255)) return t.error('non-byte EncoderBuffer value') + ;((this.value = e), (this.length = 1)) + } else if ('string' == typeof e) ((this.value = e), (this.length = o.byteLength(e))) + else { + if (!o.isBuffer(e)) return t.error('Unsupported type: ' + typeof e) + ;((this.value = e), (this.length = e.length)) + } + } + ;(n(a, i), + (t.C = a), + (a.isDecoderBuffer = function (e) { + return ( + e instanceof a || + ('object' == typeof e && + o.isBuffer(e.base) && + 'DecoderBuffer' === e.constructor.name && + 'number' == typeof e.offset && + 'number' == typeof e.length && + 'function' == typeof e.save && + 'function' == typeof e.restore && + 'function' == typeof e.isEmpty && + 'function' == typeof e.readUInt8 && + 'function' == typeof e.skip && + 'function' == typeof e.raw) + ) + }), + (a.prototype.save = function () { + return { offset: this.offset, reporter: i.prototype.save.call(this) } + }), + (a.prototype.restore = function (e) { + const t = new a(this.base) + return ((t.offset = e.offset), (t.length = this.offset), (this.offset = e.offset), i.prototype.restore.call(this, e.reporter), t) + }), + (a.prototype.isEmpty = function () { + return this.offset === this.length + }), + (a.prototype.readUInt8 = function (e) { + return this.offset + 1 <= this.length ? this.base.readUInt8(this.offset++, !0) : this.error(e || 'DecoderBuffer overrun') + }), + (a.prototype.skip = function (e, t) { + if (!(this.offset + e <= this.length)) return this.error(t || 'DecoderBuffer overrun') + const r = new a(this.base) + return ((r._reporterState = this._reporterState), (r.offset = this.offset), (r.length = this.offset + e), (this.offset += e), r) + }), + (a.prototype.raw = function (e) { + return this.base.slice(e ? e.offset : this.offset, this.length) + }), + (t.R = s), + (s.isEncoderBuffer = function (e) { + return ( + e instanceof s || + ('object' == typeof e && 'EncoderBuffer' === e.constructor.name && 'number' == typeof e.length && 'function' == typeof e.join) + ) + }), + (s.prototype.join = function (e, t) { + return ( + e || (e = o.alloc(this.length)), + t || (t = 0), + 0 === this.length || + (Array.isArray(this.value) + ? this.value.forEach(function (r) { + ;(r.join(e, t), (t += r.length)) + }) + : ('number' == typeof this.value + ? (e[t] = this.value) + : 'string' == typeof this.value + ? e.write(this.value, t) + : o.isBuffer(this.value) && this.value.copy(e, t), + (t += this.length))), + e + ) + })) + }, + 64581: (e, t, r) => { + 'use strict' + const n = t + ;((n.Reporter = r(98147).b), (n.DecoderBuffer = r(3961).C), (n.EncoderBuffer = r(3961).R), (n.Node = r(7412))) + }, + 7412: (e, t, r) => { + 'use strict' + const n = r(98147).b, + i = r(3961).R, + o = r(3961).C, + a = r(44647), + s = [ + 'seq', + 'seqof', + 'set', + 'setof', + 'objid', + 'bool', + 'gentime', + 'utctime', + 'null_', + 'enum', + 'int', + 'objDesc', + 'bitstr', + 'bmpstr', + 'charstr', + 'genstr', + 'graphstr', + 'ia5str', + 'iso646str', + 'numstr', + 'octstr', + 'printstr', + 't61str', + 'unistr', + 'utf8str', + 'videostr', + ], + u = ['key', 'obj', 'use', 'optional', 'explicit', 'implicit', 'def', 'choice', 'any', 'contains'].concat(s) + function c(e, t, r) { + const n = {} + ;((this._baseState = n), + (n.name = r), + (n.enc = e), + (n.parent = t || null), + (n.children = null), + (n.tag = null), + (n.args = null), + (n.reverseArgs = null), + (n.choice = null), + (n.optional = !1), + (n.any = !1), + (n.obj = !1), + (n.use = null), + (n.useDecoder = null), + (n.key = null), + (n.default = null), + (n.explicit = null), + (n.implicit = null), + (n.contains = null), + n.parent || ((n.children = []), this._wrap())) + } + e.exports = c + const f = [ + 'enc', + 'parent', + 'children', + 'tag', + 'args', + 'reverseArgs', + 'choice', + 'optional', + 'any', + 'obj', + 'use', + 'alteredUse', + 'key', + 'default', + 'explicit', + 'implicit', + 'contains', + ] + ;((c.prototype.clone = function () { + const e = this._baseState, + t = {} + f.forEach(function (r) { + t[r] = e[r] + }) + const r = new this.constructor(t.parent) + return ((r._baseState = t), r) + }), + (c.prototype._wrap = function () { + const e = this._baseState + u.forEach(function (t) { + this[t] = function () { + const r = new this.constructor(this) + return (e.children.push(r), r[t].apply(r, arguments)) + } + }, this) + }), + (c.prototype._init = function (e) { + const t = this._baseState + ;(a(null === t.parent), + e.call(this), + (t.children = t.children.filter(function (e) { + return e._baseState.parent === this + }, this)), + a.equal(t.children.length, 1, 'Root node can have only one child')) + }), + (c.prototype._useArgs = function (e) { + const t = this._baseState, + r = e.filter(function (e) { + return e instanceof this.constructor + }, this) + ;((e = e.filter(function (e) { + return !(e instanceof this.constructor) + }, this)), + 0 !== r.length && + (a(null === t.children), + (t.children = r), + r.forEach(function (e) { + e._baseState.parent = this + }, this)), + 0 !== e.length && + (a(null === t.args), + (t.args = e), + (t.reverseArgs = e.map(function (e) { + if ('object' != typeof e || e.constructor !== Object) return e + const t = {} + return ( + Object.keys(e).forEach(function (r) { + r == (0 | r) && (r |= 0) + const n = e[r] + t[n] = r + }), + t + ) + })))) + }), + [ + '_peekTag', + '_decodeTag', + '_use', + '_decodeStr', + '_decodeObjid', + '_decodeTime', + '_decodeNull', + '_decodeInt', + '_decodeBool', + '_decodeList', + '_encodeComposite', + '_encodeStr', + '_encodeObjid', + '_encodeTime', + '_encodeNull', + '_encodeInt', + '_encodeBool', + ].forEach(function (e) { + c.prototype[e] = function () { + const t = this._baseState + throw new Error(e + ' not implemented for encoding: ' + t.enc) + } + }), + s.forEach(function (e) { + c.prototype[e] = function () { + const t = this._baseState, + r = Array.prototype.slice.call(arguments) + return (a(null === t.tag), (t.tag = e), this._useArgs(r), this) + } + }), + (c.prototype.use = function (e) { + a(e) + const t = this._baseState + return (a(null === t.use), (t.use = e), this) + }), + (c.prototype.optional = function () { + return ((this._baseState.optional = !0), this) + }), + (c.prototype.def = function (e) { + const t = this._baseState + return (a(null === t.default), (t.default = e), (t.optional = !0), this) + }), + (c.prototype.explicit = function (e) { + const t = this._baseState + return (a(null === t.explicit && null === t.implicit), (t.explicit = e), this) + }), + (c.prototype.implicit = function (e) { + const t = this._baseState + return (a(null === t.explicit && null === t.implicit), (t.implicit = e), this) + }), + (c.prototype.obj = function () { + const e = this._baseState, + t = Array.prototype.slice.call(arguments) + return ((e.obj = !0), 0 !== t.length && this._useArgs(t), this) + }), + (c.prototype.key = function (e) { + const t = this._baseState + return (a(null === t.key), (t.key = e), this) + }), + (c.prototype.any = function () { + return ((this._baseState.any = !0), this) + }), + (c.prototype.choice = function (e) { + const t = this._baseState + return ( + a(null === t.choice), + (t.choice = e), + this._useArgs( + Object.keys(e).map(function (t) { + return e[t] + }), + ), + this + ) + }), + (c.prototype.contains = function (e) { + const t = this._baseState + return (a(null === t.use), (t.contains = e), this) + }), + (c.prototype._decode = function (e, t) { + const r = this._baseState + if (null === r.parent) return e.wrapResult(r.children[0]._decode(e, t)) + let n, + i = r.default, + a = !0, + s = null + if ((null !== r.key && (s = e.enterKey(r.key)), r.optional)) { + let n = null + if ( + (null !== r.explicit ? (n = r.explicit) : null !== r.implicit ? (n = r.implicit) : null !== r.tag && (n = r.tag), null !== n || r.any) + ) { + if (((a = this._peekTag(e, n, r.any)), e.isError(a))) return a + } else { + const n = e.save() + try { + ;(null === r.choice ? this._decodeGeneric(r.tag, e, t) : this._decodeChoice(e, t), (a = !0)) + } catch (e) { + a = !1 + } + e.restore(n) + } + } + if ((r.obj && a && (n = e.enterObject()), a)) { + if (null !== r.explicit) { + const t = this._decodeTag(e, r.explicit) + if (e.isError(t)) return t + e = t + } + const n = e.offset + if (null === r.use && null === r.choice) { + let t + r.any && (t = e.save()) + const n = this._decodeTag(e, null !== r.implicit ? r.implicit : r.tag, r.any) + if (e.isError(n)) return n + r.any ? (i = e.raw(t)) : (e = n) + } + if ( + (t && t.track && null !== r.tag && t.track(e.path(), n, e.length, 'tagged'), + t && t.track && null !== r.tag && t.track(e.path(), e.offset, e.length, 'content'), + r.any || (i = null === r.choice ? this._decodeGeneric(r.tag, e, t) : this._decodeChoice(e, t)), + e.isError(i)) + ) + return i + if ( + (r.any || + null !== r.choice || + null === r.children || + r.children.forEach(function (r) { + r._decode(e, t) + }), + r.contains && ('octstr' === r.tag || 'bitstr' === r.tag)) + ) { + const n = new o(i) + i = this._getUse(r.contains, e._reporterState.obj)._decode(n, t) + } + } + return ( + r.obj && a && (i = e.leaveObject(n)), + null === r.key || (null === i && !0 !== a) ? null !== s && e.exitKey(s) : e.leaveKey(s, r.key, i), + i + ) + }), + (c.prototype._decodeGeneric = function (e, t, r) { + const n = this._baseState + return 'seq' === e || 'set' === e + ? null + : 'seqof' === e || 'setof' === e + ? this._decodeList(t, e, n.args[0], r) + : /str$/.test(e) + ? this._decodeStr(t, e, r) + : 'objid' === e && n.args + ? this._decodeObjid(t, n.args[0], n.args[1], r) + : 'objid' === e + ? this._decodeObjid(t, null, null, r) + : 'gentime' === e || 'utctime' === e + ? this._decodeTime(t, e, r) + : 'null_' === e + ? this._decodeNull(t, r) + : 'bool' === e + ? this._decodeBool(t, r) + : 'objDesc' === e + ? this._decodeStr(t, e, r) + : 'int' === e || 'enum' === e + ? this._decodeInt(t, n.args && n.args[0], r) + : null !== n.use + ? this._getUse(n.use, t._reporterState.obj)._decode(t, r) + : t.error('unknown tag: ' + e) + }), + (c.prototype._getUse = function (e, t) { + const r = this._baseState + return ( + (r.useDecoder = this._use(e, t)), + a(null === r.useDecoder._baseState.parent), + (r.useDecoder = r.useDecoder._baseState.children[0]), + r.implicit !== r.useDecoder._baseState.implicit && + ((r.useDecoder = r.useDecoder.clone()), (r.useDecoder._baseState.implicit = r.implicit)), + r.useDecoder + ) + }), + (c.prototype._decodeChoice = function (e, t) { + const r = this._baseState + let n = null, + i = !1 + return ( + Object.keys(r.choice).some(function (o) { + const a = e.save(), + s = r.choice[o] + try { + const r = s._decode(e, t) + if (e.isError(r)) return !1 + ;((n = { type: o, value: r }), (i = !0)) + } catch (t) { + return (e.restore(a), !1) + } + return !0 + }, this), + i ? n : e.error('Choice not matched') + ) + }), + (c.prototype._createEncoderBuffer = function (e) { + return new i(e, this.reporter) + }), + (c.prototype._encode = function (e, t, r) { + const n = this._baseState + if (null !== n.default && n.default === e) return + const i = this._encodeValue(e, t, r) + return void 0 === i || this._skipDefault(i, t, r) ? void 0 : i + }), + (c.prototype._encodeValue = function (e, t, r) { + const i = this._baseState + if (null === i.parent) return i.children[0]._encode(e, t || new n()) + let o = null + if (((this.reporter = t), i.optional && void 0 === e)) { + if (null === i.default) return + e = i.default + } + let a = null, + s = !1 + if (i.any) o = this._createEncoderBuffer(e) + else if (i.choice) o = this._encodeChoice(e, t) + else if (i.contains) ((a = this._getUse(i.contains, r)._encode(e, t)), (s = !0)) + else if (i.children) + ((a = i.children + .map(function (r) { + if ('null_' === r._baseState.tag) return r._encode(null, t, e) + if (null === r._baseState.key) return t.error('Child should have a key') + const n = t.enterKey(r._baseState.key) + if ('object' != typeof e) return t.error('Child expected, but input is not object') + const i = r._encode(e[r._baseState.key], t, e) + return (t.leaveKey(n), i) + }, this) + .filter(function (e) { + return e + })), + (a = this._createEncoderBuffer(a))) + else if ('seqof' === i.tag || 'setof' === i.tag) { + if (!i.args || 1 !== i.args.length) return t.error('Too many args for : ' + i.tag) + if (!Array.isArray(e)) return t.error('seqof/setof, but data is not Array') + const r = this.clone() + ;((r._baseState.implicit = null), + (a = this._createEncoderBuffer( + e.map(function (r) { + const n = this._baseState + return this._getUse(n.args[0], e)._encode(r, t) + }, r), + ))) + } else null !== i.use ? (o = this._getUse(i.use, r)._encode(e, t)) : ((a = this._encodePrimitive(i.tag, e)), (s = !0)) + if (!i.any && null === i.choice) { + const e = null !== i.implicit ? i.implicit : i.tag, + r = null === i.implicit ? 'universal' : 'context' + null === e + ? null === i.use && t.error('Tag could be omitted only for .use()') + : null === i.use && (o = this._encodeComposite(e, s, r, a)) + } + return (null !== i.explicit && (o = this._encodeComposite(i.explicit, !1, 'context', o)), o) + }), + (c.prototype._encodeChoice = function (e, t) { + const r = this._baseState, + n = r.choice[e.type] + return (n || a(!1, e.type + ' not found in ' + JSON.stringify(Object.keys(r.choice))), n._encode(e.value, t)) + }), + (c.prototype._encodePrimitive = function (e, t) { + const r = this._baseState + if (/str$/.test(e)) return this._encodeStr(t, e) + if ('objid' === e && r.args) return this._encodeObjid(t, r.reverseArgs[0], r.args[1]) + if ('objid' === e) return this._encodeObjid(t, null, null) + if ('gentime' === e || 'utctime' === e) return this._encodeTime(t, e) + if ('null_' === e) return this._encodeNull() + if ('int' === e || 'enum' === e) return this._encodeInt(t, r.args && r.reverseArgs[0]) + if ('bool' === e) return this._encodeBool(t) + if ('objDesc' === e) return this._encodeStr(t, e) + throw new Error('Unsupported tag: ' + e) + }), + (c.prototype._isNumstr = function (e) { + return /^[0-9 ]*$/.test(e) + }), + (c.prototype._isPrintstr = function (e) { + return /^[A-Za-z0-9 '()+,-./:=?]*$/.test(e) + })) + }, + 98147: (e, t, r) => { + 'use strict' + const n = r(19105) + function i(e) { + this._reporterState = { obj: null, path: [], options: e || {}, errors: [] } + } + function o(e, t) { + ;((this.path = e), this.rethrow(t)) + } + ;((t.b = i), + (i.prototype.isError = function (e) { + return e instanceof o + }), + (i.prototype.save = function () { + const e = this._reporterState + return { obj: e.obj, pathLen: e.path.length } + }), + (i.prototype.restore = function (e) { + const t = this._reporterState + ;((t.obj = e.obj), (t.path = t.path.slice(0, e.pathLen))) + }), + (i.prototype.enterKey = function (e) { + return this._reporterState.path.push(e) + }), + (i.prototype.exitKey = function (e) { + const t = this._reporterState + t.path = t.path.slice(0, e - 1) + }), + (i.prototype.leaveKey = function (e, t, r) { + const n = this._reporterState + ;(this.exitKey(e), null !== n.obj && (n.obj[t] = r)) + }), + (i.prototype.path = function () { + return this._reporterState.path.join('/') + }), + (i.prototype.enterObject = function () { + const e = this._reporterState, + t = e.obj + return ((e.obj = {}), t) + }), + (i.prototype.leaveObject = function (e) { + const t = this._reporterState, + r = t.obj + return ((t.obj = e), r) + }), + (i.prototype.error = function (e) { + let t + const r = this._reporterState, + n = e instanceof o + if ( + ((t = n + ? e + : new o( + r.path + .map(function (e) { + return '[' + JSON.stringify(e) + ']' + }) + .join(''), + e.message || e, + e.stack, + )), + !r.options.partial) + ) + throw t + return (n || r.errors.push(t), t) + }), + (i.prototype.wrapResult = function (e) { + const t = this._reporterState + return t.options.partial ? { result: this.isError(e) ? null : e, errors: t.errors } : e + }), + n(o, Error), + (o.prototype.rethrow = function (e) { + if (((this.message = e + ' at: ' + (this.path || '(shallow)')), Error.captureStackTrace && Error.captureStackTrace(this, o), !this.stack)) + try { + throw new Error(this.message) + } catch (e) { + this.stack = e.stack + } + return this + })) + }, + 95543: (e, t) => { + 'use strict' + function r(e) { + const t = {} + return ( + Object.keys(e).forEach(function (r) { + ;(0 | r) == r && (r |= 0) + const n = e[r] + t[n] = r + }), + t + ) + } + ;((t.tagClass = { 0: 'universal', 1: 'application', 2: 'context', 3: 'private' }), + (t.tagClassByName = r(t.tagClass)), + (t.tag = { + 0: 'end', + 1: 'bool', + 2: 'int', + 3: 'bitstr', + 4: 'octstr', + 5: 'null_', + 6: 'objid', + 7: 'objDesc', + 8: 'external', + 9: 'real', + 10: 'enum', + 11: 'embed', + 12: 'utf8str', + 13: 'relativeOid', + 16: 'seq', + 17: 'set', + 18: 'numstr', + 19: 'printstr', + 20: 't61str', + 21: 'videostr', + 22: 'ia5str', + 23: 'utctime', + 24: 'gentime', + 25: 'graphstr', + 26: 'iso646str', + 27: 'genstr', + 28: 'unistr', + 29: 'charstr', + 30: 'bmpstr', + }), + (t.tagByName = r(t.tag))) + }, + 47961: (e, t, r) => { + 'use strict' + const n = t + ;((n._reverse = function (e) { + const t = {} + return ( + Object.keys(e).forEach(function (r) { + ;(0 | r) == r && (r |= 0) + const n = e[r] + t[n] = r + }), + t + ) + }), + (n.der = r(95543))) + }, + 6660: (e, t, r) => { + 'use strict' + const n = r(19105), + i = r(10660), + o = r(3961).C, + a = r(7412), + s = r(95543) + function u(e) { + ;((this.enc = 'der'), (this.name = e.name), (this.entity = e), (this.tree = new c()), this.tree._init(e.body)) + } + function c(e) { + a.call(this, 'der', e) + } + function f(e, t) { + let r = e.readUInt8(t) + if (e.isError(r)) return r + const n = s.tagClass[r >> 6], + i = 0 == (32 & r) + if (31 == (31 & r)) { + let n = r + for (r = 0; 128 == (128 & n); ) { + if (((n = e.readUInt8(t)), e.isError(n))) return n + ;((r <<= 7), (r |= 127 & n)) + } + } else r &= 31 + return { cls: n, primitive: i, tag: r, tagStr: s.tag[r] } + } + function l(e, t, r) { + let n = e.readUInt8(r) + if (e.isError(n)) return n + if (!t && 128 === n) return null + if (0 == (128 & n)) return n + const i = 127 & n + if (i > 4) return e.error('length octect is too long') + n = 0 + for (let t = 0; t < i; t++) { + n <<= 8 + const t = e.readUInt8(r) + if (e.isError(t)) return t + n |= t + } + return n + } + ;((e.exports = u), + (u.prototype.decode = function (e, t) { + return (o.isDecoderBuffer(e) || (e = new o(e, t)), this.tree._decode(e, t)) + }), + n(c, a), + (c.prototype._peekTag = function (e, t, r) { + if (e.isEmpty()) return !1 + const n = e.save(), + i = f(e, 'Failed to peek tag: "' + t + '"') + return e.isError(i) ? i : (e.restore(n), i.tag === t || i.tagStr === t || i.tagStr + 'of' === t || r) + }), + (c.prototype._decodeTag = function (e, t, r) { + const n = f(e, 'Failed to decode tag of "' + t + '"') + if (e.isError(n)) return n + let i = l(e, n.primitive, 'Failed to get length of "' + t + '"') + if (e.isError(i)) return i + if (!r && n.tag !== t && n.tagStr !== t && n.tagStr + 'of' !== t) return e.error('Failed to match tag: "' + t + '"') + if (n.primitive || null !== i) return e.skip(i, 'Failed to match body of: "' + t + '"') + const o = e.save(), + a = this._skipUntilEnd(e, 'Failed to skip indefinite length body: "' + this.tag + '"') + return e.isError(a) ? a : ((i = e.offset - o.offset), e.restore(o), e.skip(i, 'Failed to match body of: "' + t + '"')) + }), + (c.prototype._skipUntilEnd = function (e, t) { + for (;;) { + const r = f(e, t) + if (e.isError(r)) return r + const n = l(e, r.primitive, t) + if (e.isError(n)) return n + let i + if (((i = r.primitive || null !== n ? e.skip(n) : this._skipUntilEnd(e, t)), e.isError(i))) return i + if ('end' === r.tagStr) break + } + }), + (c.prototype._decodeList = function (e, t, r, n) { + const i = [] + for (; !e.isEmpty(); ) { + const t = this._peekTag(e, 'end') + if (e.isError(t)) return t + const o = r.decode(e, 'der', n) + if (e.isError(o) && t) break + i.push(o) + } + return i + }), + (c.prototype._decodeStr = function (e, t) { + if ('bitstr' === t) { + const t = e.readUInt8() + return e.isError(t) ? t : { unused: t, data: e.raw() } + } + if ('bmpstr' === t) { + const t = e.raw() + if (t.length % 2 == 1) return e.error('Decoding of string type: bmpstr length mismatch') + let r = '' + for (let e = 0; e < t.length / 2; e++) r += String.fromCharCode(t.readUInt16BE(2 * e)) + return r + } + if ('numstr' === t) { + const t = e.raw().toString('ascii') + return this._isNumstr(t) ? t : e.error('Decoding of string type: numstr unsupported characters') + } + if ('octstr' === t) return e.raw() + if ('objDesc' === t) return e.raw() + if ('printstr' === t) { + const t = e.raw().toString('ascii') + return this._isPrintstr(t) ? t : e.error('Decoding of string type: printstr unsupported characters') + } + return /str$/.test(t) ? e.raw().toString() : e.error('Decoding of string type: ' + t + ' unsupported') + }), + (c.prototype._decodeObjid = function (e, t, r) { + let n + const i = [] + let o = 0, + a = 0 + for (; !e.isEmpty(); ) ((a = e.readUInt8()), (o <<= 7), (o |= 127 & a), 0 == (128 & a) && (i.push(o), (o = 0))) + 128 & a && i.push(o) + const s = (i[0] / 40) | 0, + u = i[0] % 40 + if (((n = r ? i : [s, u].concat(i.slice(1))), t)) { + let e = t[n.join(' ')] + ;(void 0 === e && (e = t[n.join('.')]), void 0 !== e && (n = e)) + } + return n + }), + (c.prototype._decodeTime = function (e, t) { + const r = e.raw().toString() + let n, i, o, a, s, u + if ('gentime' === t) + ((n = 0 | r.slice(0, 4)), + (i = 0 | r.slice(4, 6)), + (o = 0 | r.slice(6, 8)), + (a = 0 | r.slice(8, 10)), + (s = 0 | r.slice(10, 12)), + (u = 0 | r.slice(12, 14))) + else { + if ('utctime' !== t) return e.error('Decoding ' + t + ' time is not supported yet') + ;((n = 0 | r.slice(0, 2)), + (i = 0 | r.slice(2, 4)), + (o = 0 | r.slice(4, 6)), + (a = 0 | r.slice(6, 8)), + (s = 0 | r.slice(8, 10)), + (u = 0 | r.slice(10, 12)), + (n = n < 70 ? 2e3 + n : 1900 + n)) + } + return Date.UTC(n, i - 1, o, a, s, u, 0) + }), + (c.prototype._decodeNull = function () { + return null + }), + (c.prototype._decodeBool = function (e) { + const t = e.readUInt8() + return e.isError(t) ? t : 0 !== t + }), + (c.prototype._decodeInt = function (e, t) { + const r = e.raw() + let n = new i(r) + return (t && (n = t[n.toString(10)] || n), n) + }), + (c.prototype._use = function (e, t) { + return ('function' == typeof e && (e = e(t)), e._getDecoder('der').tree) + })) + }, + 39605: (e, t, r) => { + 'use strict' + const n = t + ;((n.der = r(6660)), (n.pem = r(95087))) + }, + 95087: (e, t, r) => { + 'use strict' + const n = r(19105), + i = r(95848).Buffer, + o = r(6660) + function a(e) { + ;(o.call(this, e), (this.enc = 'pem')) + } + ;(n(a, o), + (e.exports = a), + (a.prototype.decode = function (e, t) { + const r = e.toString().split(/[\r\n]+/g), + n = t.label.toUpperCase(), + a = /^-----(BEGIN|END) ([^-]+)-----$/ + let s = -1, + u = -1 + for (let e = 0; e < r.length; e++) { + const t = r[e].match(a) + if (null !== t && t[2] === n) { + if (-1 !== s) { + if ('END' !== t[1]) break + u = e + break + } + if ('BEGIN' !== t[1]) break + s = e + } + } + if (-1 === s || -1 === u) throw new Error('PEM section not found for: ' + n) + const c = r.slice(s + 1, u).join('') + c.replace(/[^a-z0-9+/=]+/gi, '') + const f = i.from(c, 'base64') + return o.prototype.decode.call(this, f, t) + })) + }, + 3814: (e, t, r) => { + 'use strict' + const n = r(19105), + i = r(95848).Buffer, + o = r(7412), + a = r(95543) + function s(e) { + ;((this.enc = 'der'), (this.name = e.name), (this.entity = e), (this.tree = new u()), this.tree._init(e.body)) + } + function u(e) { + o.call(this, 'der', e) + } + function c(e) { + return e < 10 ? '0' + e : e + } + ;((e.exports = s), + (s.prototype.encode = function (e, t) { + return this.tree._encode(e, t).join() + }), + n(u, o), + (u.prototype._encodeComposite = function (e, t, r, n) { + const o = (function (e, t, r, n) { + let i + if (('seqof' === e ? (e = 'seq') : 'setof' === e && (e = 'set'), a.tagByName.hasOwnProperty(e))) i = a.tagByName[e] + else { + if ('number' != typeof e || (0 | e) !== e) return n.error('Unknown tag: ' + e) + i = e + } + return i >= 31 ? n.error('Multi-octet tag encoding unsupported') : (t || (i |= 32), (i |= a.tagClassByName[r || 'universal'] << 6), i) + })(e, t, r, this.reporter) + if (n.length < 128) { + const e = i.alloc(2) + return ((e[0] = o), (e[1] = n.length), this._createEncoderBuffer([e, n])) + } + let s = 1 + for (let e = n.length; e >= 256; e >>= 8) s++ + const u = i.alloc(2 + s) + ;((u[0] = o), (u[1] = 128 | s)) + for (let e = 1 + s, t = n.length; t > 0; e--, t >>= 8) u[e] = 255 & t + return this._createEncoderBuffer([u, n]) + }), + (u.prototype._encodeStr = function (e, t) { + if ('bitstr' === t) return this._createEncoderBuffer([0 | e.unused, e.data]) + if ('bmpstr' === t) { + const t = i.alloc(2 * e.length) + for (let r = 0; r < e.length; r++) t.writeUInt16BE(e.charCodeAt(r), 2 * r) + return this._createEncoderBuffer(t) + } + return 'numstr' === t + ? this._isNumstr(e) + ? this._createEncoderBuffer(e) + : this.reporter.error('Encoding of string type: numstr supports only digits and space') + : 'printstr' === t + ? this._isPrintstr(e) + ? this._createEncoderBuffer(e) + : this.reporter.error( + 'Encoding of string type: printstr supports only latin upper and lower case letters, digits, space, apostrophe, left and rigth parenthesis, plus sign, comma, hyphen, dot, slash, colon, equal sign, question mark', + ) + : /str$/.test(t) || 'objDesc' === t + ? this._createEncoderBuffer(e) + : this.reporter.error('Encoding of string type: ' + t + ' unsupported') + }), + (u.prototype._encodeObjid = function (e, t, r) { + if ('string' == typeof e) { + if (!t) return this.reporter.error('string objid given, but no values map found') + if (!t.hasOwnProperty(e)) return this.reporter.error('objid not found in values map') + e = t[e].split(/[\s.]+/g) + for (let t = 0; t < e.length; t++) e[t] |= 0 + } else if (Array.isArray(e)) { + e = e.slice() + for (let t = 0; t < e.length; t++) e[t] |= 0 + } + if (!Array.isArray(e)) return this.reporter.error('objid() should be either array or string, got: ' + JSON.stringify(e)) + if (!r) { + if (e[1] >= 40) return this.reporter.error('Second objid identifier OOB') + e.splice(0, 2, 40 * e[0] + e[1]) + } + let n = 0 + for (let t = 0; t < e.length; t++) { + let r = e[t] + for (n++; r >= 128; r >>= 7) n++ + } + const o = i.alloc(n) + let a = o.length - 1 + for (let t = e.length - 1; t >= 0; t--) { + let r = e[t] + for (o[a--] = 127 & r; (r >>= 7) > 0; ) o[a--] = 128 | (127 & r) + } + return this._createEncoderBuffer(o) + }), + (u.prototype._encodeTime = function (e, t) { + let r + const n = new Date(e) + return ( + 'gentime' === t + ? (r = [ + c(n.getUTCFullYear()), + c(n.getUTCMonth() + 1), + c(n.getUTCDate()), + c(n.getUTCHours()), + c(n.getUTCMinutes()), + c(n.getUTCSeconds()), + 'Z', + ].join('')) + : 'utctime' === t + ? (r = [ + c(n.getUTCFullYear() % 100), + c(n.getUTCMonth() + 1), + c(n.getUTCDate()), + c(n.getUTCHours()), + c(n.getUTCMinutes()), + c(n.getUTCSeconds()), + 'Z', + ].join('')) + : this.reporter.error('Encoding ' + t + ' time is not supported yet'), + this._encodeStr(r, 'octstr') + ) + }), + (u.prototype._encodeNull = function () { + return this._createEncoderBuffer('') + }), + (u.prototype._encodeInt = function (e, t) { + if ('string' == typeof e) { + if (!t) return this.reporter.error('String int or enum given, but no values map') + if (!t.hasOwnProperty(e)) return this.reporter.error("Values map doesn't contain: " + JSON.stringify(e)) + e = t[e] + } + if ('number' != typeof e && !i.isBuffer(e)) { + const t = e.toArray() + ;(!e.sign && 128 & t[0] && t.unshift(0), (e = i.from(t))) + } + if (i.isBuffer(e)) { + let t = e.length + 0 === e.length && t++ + const r = i.alloc(t) + return (e.copy(r), 0 === e.length && (r[0] = 0), this._createEncoderBuffer(r)) + } + if (e < 128) return this._createEncoderBuffer(e) + if (e < 256) return this._createEncoderBuffer([0, e]) + let r = 1 + for (let t = e; t >= 256; t >>= 8) r++ + const n = new Array(r) + for (let t = n.length - 1; t >= 0; t--) ((n[t] = 255 & e), (e >>= 8)) + return (128 & n[0] && n.unshift(0), this._createEncoderBuffer(i.from(n))) + }), + (u.prototype._encodeBool = function (e) { + return this._createEncoderBuffer(e ? 255 : 0) + }), + (u.prototype._use = function (e, t) { + return ('function' == typeof e && (e = e(t)), e._getEncoder('der').tree) + }), + (u.prototype._skipDefault = function (e, t, r) { + const n = this._baseState + let i + if (null === n.default) return !1 + const o = e.join() + if ((void 0 === n.defaultBuffer && (n.defaultBuffer = this._encodeValue(n.default, t, r).join()), o.length !== n.defaultBuffer.length)) + return !1 + for (i = 0; i < o.length; i++) if (o[i] !== n.defaultBuffer[i]) return !1 + return !0 + })) + }, + 52408: (e, t, r) => { + 'use strict' + const n = t + ;((n.der = r(3814)), (n.pem = r(33687))) + }, + 33687: (e, t, r) => { + 'use strict' + const n = r(19105), + i = r(3814) + function o(e) { + ;(i.call(this, e), (this.enc = 'pem')) + } + ;(n(o, i), + (e.exports = o), + (o.prototype.encode = function (e, t) { + const r = i.prototype.encode.call(this, e).toString('base64'), + n = ['-----BEGIN ' + t.label + '-----'] + for (let e = 0; e < r.length; e += 64) n.push(r.slice(e, e + 64)) + return (n.push('-----END ' + t.label + '-----'), n.join('\n')) + })) + }, + 32037: (e, t, r) => { + 'use strict' + var n = r(48494) + function i(e) { + return ( + (i = + 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator + ? function (e) { + return typeof e + } + : function (e) { + return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e + }), + i(e) + ) + } + var o, + a, + s = r(47665).codes, + u = s.ERR_AMBIGUOUS_ARGUMENT, + c = s.ERR_INVALID_ARG_TYPE, + f = s.ERR_INVALID_ARG_VALUE, + l = s.ERR_INVALID_RETURN_VALUE, + d = s.ERR_MISSING_ARGS, + h = r(56625), + p = r(75786).inspect, + y = r(75786).types, + g = y.isPromise, + b = y.isRegExp, + m = Object.assign ? Object.assign : r(49442).assign, + v = Object.is ? Object.is : r(81044) + function w() { + var e = r(86214) + ;((o = e.isDeepEqual), (a = e.isDeepStrictEqual)) + } + new Map() + var _ = !1, + E = (e.exports = M), + S = {} + function A(e) { + if (e.message instanceof Error) throw e.message + throw new h(e) + } + function O(e, t, r, n) { + if (!r) { + var i = !1 + if (0 === t) ((i = !0), (n = 'No value argument passed to `assert.ok()`')) + else if (n instanceof Error) throw n + var o = new h({ actual: r, expected: !0, message: n, operator: '==', stackStartFn: e }) + throw ((o.generatedMessage = i), o) + } + } + function M() { + for (var e = arguments.length, t = new Array(e), r = 0; r < e; r++) t[r] = arguments[r] + O.apply(void 0, [M, t.length].concat(t)) + } + ;((E.fail = function e(t, r, i, o, a) { + var s, + u = arguments.length + if ( + (0 === u + ? (s = 'Failed') + : 1 === u + ? ((i = t), (t = void 0)) + : (!1 === _ && + ((_ = !0), + (n.emitWarning ? n.emitWarning : console.warn.bind(console))( + 'assert.fail() with more than one argument is deprecated. Please use assert.strictEqual() instead or only pass a message.', + 'DeprecationWarning', + 'DEP0094', + )), + 2 === u && (o = '!=')), + i instanceof Error) + ) + throw i + var c = { actual: t, expected: r, operator: void 0 === o ? 'fail' : o, stackStartFn: a || e } + void 0 !== i && (c.message = i) + var f = new h(c) + throw (s && ((f.message = s), (f.generatedMessage = !0)), f) + }), + (E.AssertionError = h), + (E.ok = M), + (E.equal = function e(t, r, n) { + if (arguments.length < 2) throw new d('actual', 'expected') + t != r && A({ actual: t, expected: r, message: n, operator: '==', stackStartFn: e }) + }), + (E.notEqual = function e(t, r, n) { + if (arguments.length < 2) throw new d('actual', 'expected') + t == r && A({ actual: t, expected: r, message: n, operator: '!=', stackStartFn: e }) + }), + (E.deepEqual = function e(t, r, n) { + if (arguments.length < 2) throw new d('actual', 'expected') + ;(void 0 === o && w(), o(t, r) || A({ actual: t, expected: r, message: n, operator: 'deepEqual', stackStartFn: e })) + }), + (E.notDeepEqual = function e(t, r, n) { + if (arguments.length < 2) throw new d('actual', 'expected') + ;(void 0 === o && w(), o(t, r) && A({ actual: t, expected: r, message: n, operator: 'notDeepEqual', stackStartFn: e })) + }), + (E.deepStrictEqual = function e(t, r, n) { + if (arguments.length < 2) throw new d('actual', 'expected') + ;(void 0 === o && w(), a(t, r) || A({ actual: t, expected: r, message: n, operator: 'deepStrictEqual', stackStartFn: e })) + }), + (E.notDeepStrictEqual = function e(t, r, n) { + if (arguments.length < 2) throw new d('actual', 'expected') + ;(void 0 === o && w(), a(t, r) && A({ actual: t, expected: r, message: n, operator: 'notDeepStrictEqual', stackStartFn: e })) + }), + (E.strictEqual = function e(t, r, n) { + if (arguments.length < 2) throw new d('actual', 'expected') + v(t, r) || A({ actual: t, expected: r, message: n, operator: 'strictEqual', stackStartFn: e }) + }), + (E.notStrictEqual = function e(t, r, n) { + if (arguments.length < 2) throw new d('actual', 'expected') + v(t, r) && A({ actual: t, expected: r, message: n, operator: 'notStrictEqual', stackStartFn: e }) + })) + var T = function e(t, r, n) { + var i = this + ;(!(function (e, t) { + if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function') + })(this, e), + r.forEach(function (e) { + e in t && (void 0 !== n && 'string' == typeof n[e] && b(t[e]) && t[e].test(n[e]) ? (i[e] = n[e]) : (i[e] = t[e])) + })) + } + function I(e, t, r, n) { + if ('function' != typeof t) { + if (b(t)) return t.test(e) + if (2 === arguments.length) throw new c('expected', ['Function', 'RegExp'], t) + if ('object' !== i(e) || null === e) { + var s = new h({ actual: e, expected: t, message: r, operator: 'deepStrictEqual', stackStartFn: n }) + throw ((s.operator = n.name), s) + } + var u = Object.keys(t) + if (t instanceof Error) u.push('name', 'message') + else if (0 === u.length) throw new f('error', t, 'may not be an empty object') + return ( + void 0 === o && w(), + u.forEach(function (i) { + ;('string' == typeof e[i] && b(t[i]) && t[i].test(e[i])) || + (function (e, t, r, n, i, o) { + if (!(r in e) || !a(e[r], t[r])) { + if (!n) { + var s = new T(e, i), + u = new T(t, i, e), + c = new h({ actual: s, expected: u, operator: 'deepStrictEqual', stackStartFn: o }) + throw ((c.actual = e), (c.expected = t), (c.operator = o.name), c) + } + A({ actual: e, expected: t, message: n, operator: o.name, stackStartFn: o }) + } + })(e, t, i, r, u, n) + }), + !0 + ) + } + return (void 0 !== t.prototype && e instanceof t) || (!Error.isPrototypeOf(t) && !0 === t.call({}, e)) + } + function N(e) { + if ('function' != typeof e) throw new c('fn', 'Function', e) + try { + e() + } catch (e) { + return e + } + return S + } + function x(e) { + return g(e) || (null !== e && 'object' === i(e) && 'function' == typeof e.then && 'function' == typeof e.catch) + } + function L(e) { + return Promise.resolve().then(function () { + var t + if ('function' == typeof e) { + if (!x((t = e()))) throw new l('instance of Promise', 'promiseFn', t) + } else { + if (!x(e)) throw new c('promiseFn', ['Function', 'Promise'], e) + t = e + } + return Promise.resolve() + .then(function () { + return t + }) + .then(function () { + return S + }) + .catch(function (e) { + return e + }) + }) + } + function k(e, t, r, n) { + if ('string' == typeof r) { + if (4 === arguments.length) throw new c('error', ['Object', 'Error', 'Function', 'RegExp'], r) + if ('object' === i(t) && null !== t) { + if (t.message === r) throw new u('error/message', 'The error message "'.concat(t.message, '" is identical to the message.')) + } else if (t === r) throw new u('error/message', 'The error "'.concat(t, '" is identical to the message.')) + ;((n = r), (r = void 0)) + } else if (null != r && 'object' !== i(r) && 'function' != typeof r) throw new c('error', ['Object', 'Error', 'Function', 'RegExp'], r) + if (t === S) { + var o = '' + ;(r && r.name && (o += ' ('.concat(r.name, ')')), (o += n ? ': '.concat(n) : '.')) + var a = 'rejects' === e.name ? 'rejection' : 'exception' + A({ actual: void 0, expected: r, operator: e.name, message: 'Missing expected '.concat(a).concat(o), stackStartFn: e }) + } + if (r && !I(t, r, n, e)) throw t + } + function R(e, t, r, n) { + if (t !== S) { + if (('string' == typeof r && ((n = r), (r = void 0)), !r || I(t, r))) { + var i = n ? ': '.concat(n) : '.', + o = 'doesNotReject' === e.name ? 'rejection' : 'exception' + A({ + actual: t, + expected: r, + operator: e.name, + message: 'Got unwanted '.concat(o).concat(i, '\n') + 'Actual message: "'.concat(t && t.message, '"'), + stackStartFn: e, + }) + } + throw t + } + } + function P() { + for (var e = arguments.length, t = new Array(e), r = 0; r < e; r++) t[r] = arguments[r] + O.apply(void 0, [P, t.length].concat(t)) + } + ;((E.throws = function e(t) { + for (var r = arguments.length, n = new Array(r > 1 ? r - 1 : 0), i = 1; i < r; i++) n[i - 1] = arguments[i] + k.apply(void 0, [e, N(t)].concat(n)) + }), + (E.rejects = function e(t) { + for (var r = arguments.length, n = new Array(r > 1 ? r - 1 : 0), i = 1; i < r; i++) n[i - 1] = arguments[i] + return L(t).then(function (t) { + return k.apply(void 0, [e, t].concat(n)) + }) + }), + (E.doesNotThrow = function e(t) { + for (var r = arguments.length, n = new Array(r > 1 ? r - 1 : 0), i = 1; i < r; i++) n[i - 1] = arguments[i] + R.apply(void 0, [e, N(t)].concat(n)) + }), + (E.doesNotReject = function e(t) { + for (var r = arguments.length, n = new Array(r > 1 ? r - 1 : 0), i = 1; i < r; i++) n[i - 1] = arguments[i] + return L(t).then(function (t) { + return R.apply(void 0, [e, t].concat(n)) + }) + }), + (E.ifError = function e(t) { + if (null != t) { + var r = 'ifError got unwanted exception: ' + 'object' === i(t) && 'string' == typeof t.message + ? 0 === t.message.length && t.constructor + ? (r += t.constructor.name) + : (r += t.message) + : (r += p(t)) + var n = new h({ actual: t, expected: null, operator: 'ifError', message: r, stackStartFn: e }), + o = t.stack + if ('string' == typeof o) { + var a = o.split('\n') + a.shift() + for (var s = n.stack.split('\n'), u = 0; u < a.length; u++) { + var c = s.indexOf(a[u]) + if (-1 !== c) { + s = s.slice(0, c) + break + } + } + n.stack = ''.concat(s.join('\n'), '\n').concat(a.join('\n')) + } + throw n + } + }), + (E.strict = m(P, E, { + equal: E.strictEqual, + deepEqual: E.deepStrictEqual, + notEqual: E.notStrictEqual, + notDeepEqual: E.notDeepStrictEqual, + })), + (E.strict.strict = E.strict)) + }, + 56625: (e, t, r) => { + 'use strict' + var n = r(48494) + function i(e, t, r) { + return (t in e ? Object.defineProperty(e, t, { value: r, enumerable: !0, configurable: !0, writable: !0 }) : (e[t] = r), e) + } + function o(e, t) { + for (var r = 0; r < t.length; r++) { + var n = t[r] + ;((n.enumerable = n.enumerable || !1), (n.configurable = !0), 'value' in n && (n.writable = !0), Object.defineProperty(e, n.key, n)) + } + } + function a(e, t) { + return !t || ('object' !== d(t) && 'function' != typeof t) ? s(e) : t + } + function s(e) { + if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called") + return e + } + function u(e) { + var t = 'function' == typeof Map ? new Map() : void 0 + return ( + (u = function (e) { + if (null === e || ((r = e), -1 === Function.toString.call(r).indexOf('[native code]'))) return e + var r + if ('function' != typeof e) throw new TypeError('Super expression must either be null or a function') + if (void 0 !== t) { + if (t.has(e)) return t.get(e) + t.set(e, n) + } + function n() { + return c(e, arguments, l(this).constructor) + } + return ( + (n.prototype = Object.create(e.prototype, { constructor: { value: n, enumerable: !1, writable: !0, configurable: !0 } })), + f(n, e) + ) + }), + u(e) + ) + } + function c(e, t, r) { + return ( + (c = (function () { + if ('undefined' == typeof Reflect || !Reflect.construct) return !1 + if (Reflect.construct.sham) return !1 + if ('function' == typeof Proxy) return !0 + try { + return (Date.prototype.toString.call(Reflect.construct(Date, [], function () {})), !0) + } catch (e) { + return !1 + } + })() + ? Reflect.construct + : function (e, t, r) { + var n = [null] + n.push.apply(n, t) + var i = new (Function.bind.apply(e, n))() + return (r && f(i, r.prototype), i) + }), + c.apply(null, arguments) + ) + } + function f(e, t) { + return ( + (f = + Object.setPrototypeOf || + function (e, t) { + return ((e.__proto__ = t), e) + }), + f(e, t) + ) + } + function l(e) { + return ( + (l = Object.setPrototypeOf + ? Object.getPrototypeOf + : function (e) { + return e.__proto__ || Object.getPrototypeOf(e) + }), + l(e) + ) + } + function d(e) { + return ( + (d = + 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator + ? function (e) { + return typeof e + } + : function (e) { + return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e + }), + d(e) + ) + } + var h = r(75786).inspect, + p = r(47665).codes.ERR_INVALID_ARG_TYPE + function y(e, t, r) { + return ((void 0 === r || r > e.length) && (r = e.length), e.substring(r - t.length, r) === t) + } + var g = '', + b = '', + m = '', + v = '', + w = { + deepStrictEqual: 'Expected values to be strictly deep-equal:', + strictEqual: 'Expected values to be strictly equal:', + strictEqualObject: 'Expected "actual" to be reference-equal to "expected":', + deepEqual: 'Expected values to be loosely deep-equal:', + equal: 'Expected values to be loosely equal:', + notDeepStrictEqual: 'Expected "actual" not to be strictly deep-equal to:', + notStrictEqual: 'Expected "actual" to be strictly unequal to:', + notStrictEqualObject: 'Expected "actual" not to be reference-equal to "expected":', + notDeepEqual: 'Expected "actual" not to be loosely deep-equal to:', + notEqual: 'Expected "actual" to be loosely unequal to:', + notIdentical: 'Values identical but not reference-equal:', + } + function _(e) { + var t = Object.keys(e), + r = Object.create(Object.getPrototypeOf(e)) + return ( + t.forEach(function (t) { + r[t] = e[t] + }), + Object.defineProperty(r, 'message', { value: e.message }), + r + ) + } + function E(e) { + return h(e, { + compact: !1, + customInspect: !1, + depth: 1e3, + maxArrayLength: 1 / 0, + showHidden: !1, + breakLength: 1 / 0, + showProxy: !1, + sorted: !0, + getters: !0, + }) + } + var S = (function (e) { + function t(e) { + var r + if ( + ((function (e, t) { + if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function') + })(this, t), + 'object' !== d(e) || null === e) + ) + throw new p('options', 'Object', e) + var i = e.message, + o = e.operator, + u = e.stackStartFn, + c = e.actual, + f = e.expected, + h = Error.stackTraceLimit + if (((Error.stackTraceLimit = 0), null != i)) r = a(this, l(t).call(this, String(i))) + else if ( + (n.stderr && + n.stderr.isTTY && + (n.stderr && n.stderr.getColorDepth && 1 !== n.stderr.getColorDepth() + ? ((g = ''), (b = ''), (v = ''), (m = '')) + : ((g = ''), (b = ''), (v = ''), (m = ''))), + 'object' === d(c) && + null !== c && + 'object' === d(f) && + null !== f && + 'stack' in c && + c instanceof Error && + 'stack' in f && + f instanceof Error && + ((c = _(c)), (f = _(f))), + 'deepStrictEqual' === o || 'strictEqual' === o) + ) + r = a( + this, + l(t).call( + this, + (function (e, t, r) { + var i = '', + o = '', + a = 0, + s = '', + u = !1, + c = E(e), + f = c.split('\n'), + l = E(t).split('\n'), + h = 0, + p = '' + if ( + ('strictEqual' === r && 'object' === d(e) && 'object' === d(t) && null !== e && null !== t && (r = 'strictEqualObject'), + 1 === f.length && 1 === l.length && f[0] !== l[0]) + ) { + var _ = f[0].length + l[0].length + if (_ <= 10) { + if (!(('object' === d(e) && null !== e) || ('object' === d(t) && null !== t) || (0 === e && 0 === t))) + return ''.concat(w[r], '\n\n') + ''.concat(f[0], ' !== ').concat(l[0], '\n') + } else if ('strictEqualObject' !== r && _ < (n.stderr && n.stderr.isTTY ? n.stderr.columns : 80)) { + for (; f[0][h] === l[0][h]; ) h++ + h > 2 && + ((p = '\n '.concat( + (function (e, t) { + if (((t = Math.floor(t)), 0 == e.length || 0 == t)) return '' + var r = e.length * t + for (t = Math.floor(Math.log(t) / Math.log(2)); t; ) ((e += e), t--) + return e + e.substring(0, r - e.length) + })(' ', h), + '^', + )), + (h = 0)) + } + } + for ( + var S = f[f.length - 1], A = l[l.length - 1]; + S === A && (h++ < 2 ? (s = '\n '.concat(S).concat(s)) : (i = S), f.pop(), l.pop(), 0 !== f.length && 0 !== l.length); + ) + ((S = f[f.length - 1]), (A = l[l.length - 1])) + var O = Math.max(f.length, l.length) + if (0 === O) { + var M = c.split('\n') + if (M.length > 30) for (M[26] = ''.concat(g, '...').concat(v); M.length > 27; ) M.pop() + return ''.concat(w.notIdentical, '\n\n').concat(M.join('\n'), '\n') + } + ;(h > 3 && ((s = '\n'.concat(g, '...').concat(v).concat(s)), (u = !0)), '' !== i && ((s = '\n '.concat(i).concat(s)), (i = ''))) + var T = 0, + I = w[r] + '\n'.concat(b, '+ actual').concat(v, ' ').concat(m, '- expected').concat(v), + N = ' '.concat(g, '...').concat(v, ' Lines skipped') + for (h = 0; h < O; h++) { + var x = h - a + if (f.length < h + 1) + (x > 1 && + h > 2 && + (x > 4 ? ((o += '\n'.concat(g, '...').concat(v)), (u = !0)) : x > 3 && ((o += '\n '.concat(l[h - 2])), T++), + (o += '\n '.concat(l[h - 1])), + T++), + (a = h), + (i += '\n'.concat(m, '-').concat(v, ' ').concat(l[h])), + T++) + else if (l.length < h + 1) + (x > 1 && + h > 2 && + (x > 4 ? ((o += '\n'.concat(g, '...').concat(v)), (u = !0)) : x > 3 && ((o += '\n '.concat(f[h - 2])), T++), + (o += '\n '.concat(f[h - 1])), + T++), + (a = h), + (o += '\n'.concat(b, '+').concat(v, ' ').concat(f[h])), + T++) + else { + var L = l[h], + k = f[h], + R = k !== L && (!y(k, ',') || k.slice(0, -1) !== L) + ;(R && y(L, ',') && L.slice(0, -1) === k && ((R = !1), (k += ',')), + R + ? (x > 1 && + h > 2 && + (x > 4 ? ((o += '\n'.concat(g, '...').concat(v)), (u = !0)) : x > 3 && ((o += '\n '.concat(f[h - 2])), T++), + (o += '\n '.concat(f[h - 1])), + T++), + (a = h), + (o += '\n'.concat(b, '+').concat(v, ' ').concat(k)), + (i += '\n'.concat(m, '-').concat(v, ' ').concat(L)), + (T += 2)) + : ((o += i), (i = ''), (1 !== x && 0 !== h) || ((o += '\n '.concat(k)), T++))) + } + if (T > 20 && h < O - 2) + return ''.concat(I).concat(N, '\n').concat(o, '\n').concat(g, '...').concat(v).concat(i, '\n') + ''.concat(g, '...').concat(v) + } + return '' + .concat(I) + .concat(u ? N : '', '\n') + .concat(o) + .concat(i) + .concat(s) + .concat(p) + })(c, f, o), + ), + ) + else if ('notDeepStrictEqual' === o || 'notStrictEqual' === o) { + var S = w[o], + A = E(c).split('\n') + if (('notStrictEqual' === o && 'object' === d(c) && null !== c && (S = w.notStrictEqualObject), A.length > 30)) + for (A[26] = ''.concat(g, '...').concat(v); A.length > 27; ) A.pop() + r = + 1 === A.length + ? a(this, l(t).call(this, ''.concat(S, ' ').concat(A[0]))) + : a(this, l(t).call(this, ''.concat(S, '\n\n').concat(A.join('\n'), '\n'))) + } else { + var O = E(c), + M = '', + T = w[o] + ;('notDeepEqual' === o || 'notEqual' === o + ? (O = ''.concat(w[o], '\n\n').concat(O)).length > 1024 && (O = ''.concat(O.slice(0, 1021), '...')) + : ((M = ''.concat(E(f))), + O.length > 512 && (O = ''.concat(O.slice(0, 509), '...')), + M.length > 512 && (M = ''.concat(M.slice(0, 509), '...')), + 'deepEqual' === o || 'equal' === o + ? (O = ''.concat(T, '\n\n').concat(O, '\n\nshould equal\n\n')) + : (M = ' '.concat(o, ' ').concat(M))), + (r = a(this, l(t).call(this, ''.concat(O).concat(M))))) + } + return ( + (Error.stackTraceLimit = h), + (r.generatedMessage = !i), + Object.defineProperty(s(r), 'name', { value: 'AssertionError [ERR_ASSERTION]', enumerable: !1, writable: !0, configurable: !0 }), + (r.code = 'ERR_ASSERTION'), + (r.actual = c), + (r.expected = f), + (r.operator = o), + Error.captureStackTrace && Error.captureStackTrace(s(r), u), + r.stack, + (r.name = 'AssertionError'), + a(r) + ) + } + var r, u + return ( + (function (e, t) { + if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function') + ;((e.prototype = Object.create(t && t.prototype, { constructor: { value: e, writable: !0, configurable: !0 } })), t && f(e, t)) + })(t, e), + (r = t), + (u = [ + { + key: 'toString', + value: function () { + return ''.concat(this.name, ' [').concat(this.code, ']: ').concat(this.message) + }, + }, + { + key: h.custom, + value: function (e, t) { + return h( + this, + (function (e) { + for (var t = 1; t < arguments.length; t++) { + var r = null != arguments[t] ? arguments[t] : {}, + n = Object.keys(r) + ;('function' == typeof Object.getOwnPropertySymbols && + (n = n.concat( + Object.getOwnPropertySymbols(r).filter(function (e) { + return Object.getOwnPropertyDescriptor(r, e).enumerable + }), + )), + n.forEach(function (t) { + i(e, t, r[t]) + })) + } + return e + })({}, t, { customInspect: !1, depth: 0 }), + ) + }, + }, + ]), + u && o(r.prototype, u), + t + ) + })(u(Error)) + e.exports = S + }, + 47665: (e, t, r) => { + 'use strict' + function n(e) { + return ( + (n = + 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator + ? function (e) { + return typeof e + } + : function (e) { + return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e + }), + n(e) + ) + } + function i(e) { + return ( + (i = Object.setPrototypeOf + ? Object.getPrototypeOf + : function (e) { + return e.__proto__ || Object.getPrototypeOf(e) + }), + i(e) + ) + } + function o(e, t) { + return ( + (o = + Object.setPrototypeOf || + function (e, t) { + return ((e.__proto__ = t), e) + }), + o(e, t) + ) + } + var a, + s, + u = {} + function c(e, t, r) { + r || (r = Error) + var a = (function (r) { + function a(r, o, s) { + var u + return ( + (function (e, t) { + if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function') + })(this, a), + (u = (function (e, t) { + return !t || ('object' !== n(t) && 'function' != typeof t) + ? (function (e) { + if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called") + return e + })(e) + : t + })( + this, + i(a).call( + this, + (function (e, r, n) { + return 'string' == typeof t ? t : t(e, r, n) + })(r, o, s), + ), + )), + (u.code = e), + u + ) + } + return ( + (function (e, t) { + if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function') + ;((e.prototype = Object.create(t && t.prototype, { constructor: { value: e, writable: !0, configurable: !0 } })), t && o(e, t)) + })(a, r), + a + ) + })(r) + u[e] = a + } + function f(e, t) { + if (Array.isArray(e)) { + var r = e.length + return ( + (e = e.map(function (e) { + return String(e) + })), + r > 2 + ? 'one of '.concat(t, ' ').concat(e.slice(0, r - 1).join(', '), ', or ') + e[r - 1] + : 2 === r + ? 'one of '.concat(t, ' ').concat(e[0], ' or ').concat(e[1]) + : 'of '.concat(t, ' ').concat(e[0]) + ) + } + return 'of '.concat(t, ' ').concat(String(e)) + } + ;(c('ERR_AMBIGUOUS_ARGUMENT', 'The "%s" argument is ambiguous. %s', TypeError), + c( + 'ERR_INVALID_ARG_TYPE', + function (e, t, i) { + var o, s, u, c, l + if ( + (void 0 === a && (a = r(32037)), + a('string' == typeof e, "'name' must be a string"), + 'string' == typeof t && ((s = 'not '), t.substr(0, 4) === s) ? ((o = 'must not be'), (t = t.replace(/^not /, ''))) : (o = 'must be'), + (function (e, t, r) { + return ((void 0 === r || r > e.length) && (r = e.length), e.substring(r - 9, r) === t) + })(e, ' argument')) + ) + u = 'The '.concat(e, ' ').concat(o, ' ').concat(f(t, 'type')) + else { + var d = ('number' != typeof l && (l = 0), l + 1 > (c = e).length || -1 === c.indexOf('.', l) ? 'argument' : 'property') + u = 'The "'.concat(e, '" ').concat(d, ' ').concat(o, ' ').concat(f(t, 'type')) + } + return u + '. Received type '.concat(n(i)) + }, + TypeError, + ), + c( + 'ERR_INVALID_ARG_VALUE', + function (e, t) { + var n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 'is invalid' + void 0 === s && (s = r(75786)) + var i = s.inspect(t) + return (i.length > 128 && (i = ''.concat(i.slice(0, 128), '...')), "The argument '".concat(e, "' ").concat(n, '. Received ').concat(i)) + }, + TypeError, + RangeError, + ), + c( + 'ERR_INVALID_RETURN_VALUE', + function (e, t, r) { + var i + return ( + (i = r && r.constructor && r.constructor.name ? 'instance of '.concat(r.constructor.name) : 'type '.concat(n(r))), + 'Expected '.concat(e, ' to be returned from the "').concat(t, '"') + ' function but got '.concat(i, '.') + ) + }, + TypeError, + ), + c( + 'ERR_MISSING_ARGS', + function () { + for (var e = arguments.length, t = new Array(e), n = 0; n < e; n++) t[n] = arguments[n] + ;(void 0 === a && (a = r(32037)), a(t.length > 0, 'At least one arg needs to be specified')) + var i = 'The ', + o = t.length + switch ( + ((t = t.map(function (e) { + return '"'.concat(e, '"') + })), + o) + ) { + case 1: + i += ''.concat(t[0], ' argument') + break + case 2: + i += ''.concat(t[0], ' and ').concat(t[1], ' arguments') + break + default: + ;((i += t.slice(0, o - 1).join(', ')), (i += ', and '.concat(t[o - 1], ' arguments'))) + } + return ''.concat(i, ' must be specified') + }, + TypeError, + ), + (e.exports.codes = u)) + }, + 86214: (e, t, r) => { + 'use strict' + function n(e, t) { + return ( + (function (e) { + if (Array.isArray(e)) return e + })(e) || + (function (e, t) { + var r = [], + n = !0, + i = !1, + o = void 0 + try { + for (var a, s = e[Symbol.iterator](); !(n = (a = s.next()).done) && (r.push(a.value), !t || r.length !== t); n = !0); + } catch (e) { + ;((i = !0), (o = e)) + } finally { + try { + n || null == s.return || s.return() + } finally { + if (i) throw o + } + } + return r + })(e, t) || + (function () { + throw new TypeError('Invalid attempt to destructure non-iterable instance') + })() + ) + } + function i(e) { + return ( + (i = + 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator + ? function (e) { + return typeof e + } + : function (e) { + return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e + }), + i(e) + ) + } + var o = void 0 !== /a/g.flags, + a = function (e) { + var t = [] + return ( + e.forEach(function (e) { + return t.push(e) + }), + t + ) + }, + s = function (e) { + var t = [] + return ( + e.forEach(function (e, r) { + return t.push([r, e]) + }), + t + ) + }, + u = Object.is ? Object.is : r(81044), + c = Object.getOwnPropertySymbols + ? Object.getOwnPropertySymbols + : function () { + return [] + }, + f = Number.isNaN ? Number.isNaN : r(34124) + function l(e) { + return e.call.bind(e) + } + var d = l(Object.prototype.hasOwnProperty), + h = l(Object.prototype.propertyIsEnumerable), + p = l(Object.prototype.toString), + y = r(75786).types, + g = y.isAnyArrayBuffer, + b = y.isArrayBufferView, + m = y.isDate, + v = y.isMap, + w = y.isRegExp, + _ = y.isSet, + E = y.isNativeError, + S = y.isBoxedPrimitive, + A = y.isNumberObject, + O = y.isStringObject, + M = y.isBooleanObject, + T = y.isBigIntObject, + I = y.isSymbolObject, + N = y.isFloat32Array, + x = y.isFloat64Array + function L(e) { + if (0 === e.length || e.length > 10) return !0 + for (var t = 0; t < e.length; t++) { + var r = e.charCodeAt(t) + if (r < 48 || r > 57) return !0 + } + return 10 === e.length && e >= Math.pow(2, 32) + } + function k(e) { + return Object.keys(e) + .filter(L) + .concat(c(e).filter(Object.prototype.propertyIsEnumerable.bind(e))) + } + function R(e, t) { + if (e === t) return 0 + for (var r = e.length, n = t.length, i = 0, o = Math.min(r, n); i < o; ++i) + if (e[i] !== t[i]) { + ;((r = e[i]), (n = t[i])) + break + } + return r < n ? -1 : n < r ? 1 : 0 + } + var P = 0, + B = 1, + D = 2, + C = 3 + function j(e, t, r, n) { + if (e === t) return 0 !== e || !r || u(e, t) + if (r) { + if ('object' !== i(e)) return 'number' == typeof e && f(e) && f(t) + if ('object' !== i(t) || null === e || null === t) return !1 + if (Object.getPrototypeOf(e) !== Object.getPrototypeOf(t)) return !1 + } else { + if (null === e || 'object' !== i(e)) return (null === t || 'object' !== i(t)) && e == t + if (null === t || 'object' !== i(t)) return !1 + } + var a, + s, + c, + l, + d = p(e) + if (d !== p(t)) return !1 + if (Array.isArray(e)) { + if (e.length !== t.length) return !1 + var h = k(e), + y = k(t) + return h.length === y.length && U(e, t, r, n, B, h) + } + if ('[object Object]' === d && ((!v(e) && v(t)) || (!_(e) && _(t)))) return !1 + if (m(e)) { + if (!m(t) || Date.prototype.getTime.call(e) !== Date.prototype.getTime.call(t)) return !1 + } else if (w(e)) { + if ( + !w(t) || + ((c = e), + (l = t), + !(o ? c.source === l.source && c.flags === l.flags : RegExp.prototype.toString.call(c) === RegExp.prototype.toString.call(l))) + ) + return !1 + } else if (E(e) || e instanceof Error) { + if (e.message !== t.message || e.name !== t.name) return !1 + } else { + if (b(e)) { + if (r || (!N(e) && !x(e))) { + if ( + !(function (e, t) { + return ( + e.byteLength === t.byteLength && + 0 === R(new Uint8Array(e.buffer, e.byteOffset, e.byteLength), new Uint8Array(t.buffer, t.byteOffset, t.byteLength)) + ) + })(e, t) + ) + return !1 + } else if ( + !(function (e, t) { + if (e.byteLength !== t.byteLength) return !1 + for (var r = 0; r < e.byteLength; r++) if (e[r] !== t[r]) return !1 + return !0 + })(e, t) + ) + return !1 + var L = k(e), + j = k(t) + return L.length === j.length && U(e, t, r, n, P, L) + } + if (_(e)) return !(!_(t) || e.size !== t.size) && U(e, t, r, n, D) + if (v(e)) return !(!v(t) || e.size !== t.size) && U(e, t, r, n, C) + if (g(e)) { + if (((s = t), (a = e).byteLength !== s.byteLength || 0 !== R(new Uint8Array(a), new Uint8Array(s)))) return !1 + } else if ( + S(e) && + !(function (e, t) { + return A(e) + ? A(t) && u(Number.prototype.valueOf.call(e), Number.prototype.valueOf.call(t)) + : O(e) + ? O(t) && String.prototype.valueOf.call(e) === String.prototype.valueOf.call(t) + : M(e) + ? M(t) && Boolean.prototype.valueOf.call(e) === Boolean.prototype.valueOf.call(t) + : T(e) + ? T(t) && BigInt.prototype.valueOf.call(e) === BigInt.prototype.valueOf.call(t) + : I(t) && Symbol.prototype.valueOf.call(e) === Symbol.prototype.valueOf.call(t) + })(e, t) + ) + return !1 + } + return U(e, t, r, n, P) + } + function F(e, t) { + return t.filter(function (t) { + return h(e, t) + }) + } + function U(e, t, r, o, u, f) { + if (5 === arguments.length) { + f = Object.keys(e) + var l = Object.keys(t) + if (f.length !== l.length) return !1 + } + for (var p = 0; p < f.length; p++) if (!d(t, f[p])) return !1 + if (r && 5 === arguments.length) { + var y = c(e) + if (0 !== y.length) { + var g = 0 + for (p = 0; p < y.length; p++) { + var b = y[p] + if (h(e, b)) { + if (!h(t, b)) return !1 + ;(f.push(b), g++) + } else if (h(t, b)) return !1 + } + var m = c(t) + if (y.length !== m.length && F(t, m).length !== g) return !1 + } else { + var v = c(t) + if (0 !== v.length && 0 !== F(t, v).length) return !1 + } + } + if (0 === f.length && (u === P || (u === B && 0 === e.length) || 0 === e.size)) return !0 + if (void 0 === o) o = { val1: new Map(), val2: new Map(), position: 0 } + else { + var w = o.val1.get(e) + if (void 0 !== w) { + var _ = o.val2.get(t) + if (void 0 !== _) return w === _ + } + o.position++ + } + ;(o.val1.set(e, o.position), o.val2.set(t, o.position)) + var E = (function (e, t, r, o, u, c) { + var f = 0 + if (c === D) { + if ( + !(function (e, t, r, n) { + for (var o = null, s = a(e), u = 0; u < s.length; u++) { + var c = s[u] + if ('object' === i(c) && null !== c) (null === o && (o = new Set()), o.add(c)) + else if (!t.has(c)) { + if (r) return !1 + if (!z(e, t, c)) return !1 + ;(null === o && (o = new Set()), o.add(c)) + } + } + if (null !== o) { + for (var f = a(t), l = 0; l < f.length; l++) { + var d = f[l] + if ('object' === i(d) && null !== d) { + if (!V(o, d, r, n)) return !1 + } else if (!r && !e.has(d) && !V(o, d, r, n)) return !1 + } + return 0 === o.size + } + return !0 + })(e, t, r, u) + ) + return !1 + } else if (c === C) { + if ( + !(function (e, t, r, o) { + for (var a = null, u = s(e), c = 0; c < u.length; c++) { + var f = n(u[c], 2), + l = f[0], + d = f[1] + if ('object' === i(l) && null !== l) (null === a && (a = new Set()), a.add(l)) + else { + var h = t.get(l) + if ((void 0 === h && !t.has(l)) || !j(d, h, r, o)) { + if (r) return !1 + if (!q(e, t, l, d, o)) return !1 + ;(null === a && (a = new Set()), a.add(l)) + } + } + } + if (null !== a) { + for (var p = s(t), y = 0; y < p.length; y++) { + var g = n(p[y], 2), + b = ((l = g[0]), g[1]) + if ('object' === i(l) && null !== l) { + if (!K(a, e, l, b, r, o)) return !1 + } else if (!(r || (e.has(l) && j(e.get(l), b, !1, o)) || K(a, e, l, b, !1, o))) return !1 + } + return 0 === a.size + } + return !0 + })(e, t, r, u) + ) + return !1 + } else if (c === B) + for (; f < e.length; f++) { + if (!d(e, f)) { + if (d(t, f)) return !1 + for (var l = Object.keys(e); f < l.length; f++) { + var h = l[f] + if (!d(t, h) || !j(e[h], t[h], r, u)) return !1 + } + return l.length === Object.keys(t).length + } + if (!d(t, f) || !j(e[f], t[f], r, u)) return !1 + } + for (f = 0; f < o.length; f++) { + var p = o[f] + if (!j(e[p], t[p], r, u)) return !1 + } + return !0 + })(e, t, r, f, o, u) + return (o.val1.delete(e), o.val2.delete(t), E) + } + function V(e, t, r, n) { + for (var i = a(e), o = 0; o < i.length; o++) { + var s = i[o] + if (j(t, s, r, n)) return (e.delete(s), !0) + } + return !1 + } + function H(e) { + switch (i(e)) { + case 'undefined': + return null + case 'object': + return + case 'symbol': + return !1 + case 'string': + e = +e + case 'number': + if (f(e)) return !1 + } + return !0 + } + function z(e, t, r) { + var n = H(r) + return null != n ? n : t.has(n) && !e.has(n) + } + function q(e, t, r, n, i) { + var o = H(r) + if (null != o) return o + var a = t.get(o) + return !((void 0 === a && !t.has(o)) || !j(n, a, !1, i)) && !e.has(o) && j(n, a, !1, i) + } + function K(e, t, r, n, i, o) { + for (var s = a(e), u = 0; u < s.length; u++) { + var c = s[u] + if (j(r, c, i, o) && j(n, t.get(c), i, o)) return (e.delete(c), !0) + } + return !1 + } + e.exports = { + isDeepEqual: function (e, t) { + return j(e, t, !1) + }, + isDeepStrictEqual: function (e, t) { + return j(e, t, !0) + }, + } + }, + 90638: (e, t, r) => { + 'use strict' + var n = r(59105).Buffer + e.exports = function (e) { + if (e.length >= 255) throw new TypeError('Alphabet too long') + for (var t = new Uint8Array(256), r = 0; r < t.length; r++) t[r] = 255 + for (var i = 0; i < e.length; i++) { + var o = e.charAt(i), + a = o.charCodeAt(0) + if (255 !== t[a]) throw new TypeError(o + ' is ambiguous') + t[a] = i + } + var s = e.length, + u = e.charAt(0), + c = Math.log(s) / Math.log(256), + f = Math.log(256) / Math.log(s) + function l(e) { + if ('string' != typeof e) throw new TypeError('Expected String') + if (0 === e.length) return n.alloc(0) + for (var r = 0, i = 0, o = 0; e[r] === u; ) (i++, r++) + for (var a = ((e.length - r) * c + 1) >>> 0, f = new Uint8Array(a); e[r]; ) { + var l = t[e.charCodeAt(r)] + if (255 === l) return + for (var d = 0, h = a - 1; (0 !== l || d < o) && -1 !== h; h--, d++) + ((l += (s * f[h]) >>> 0), (f[h] = (l % 256) >>> 0), (l = (l / 256) >>> 0)) + if (0 !== l) throw new Error('Non-zero carry') + ;((o = d), r++) + } + for (var p = a - o; p !== a && 0 === f[p]; ) p++ + var y = n.allocUnsafe(i + (a - p)) + y.fill(0, 0, i) + for (var g = i; p !== a; ) y[g++] = f[p++] + return y + } + return { + encode: function (t) { + if (((Array.isArray(t) || t instanceof Uint8Array) && (t = n.from(t)), !n.isBuffer(t))) throw new TypeError('Expected Buffer') + if (0 === t.length) return '' + for (var r = 0, i = 0, o = 0, a = t.length; o !== a && 0 === t[o]; ) (o++, r++) + for (var c = ((a - o) * f + 1) >>> 0, l = new Uint8Array(c); o !== a; ) { + for (var d = t[o], h = 0, p = c - 1; (0 !== d || h < i) && -1 !== p; p--, h++) + ((d += (256 * l[p]) >>> 0), (l[p] = (d % s) >>> 0), (d = (d / s) >>> 0)) + if (0 !== d) throw new Error('Non-zero carry') + ;((i = h), o++) + } + for (var y = c - i; y !== c && 0 === l[y]; ) y++ + for (var g = u.repeat(r); y < c; ++y) g += e.charAt(l[y]) + return g + }, + decodeUnsafe: l, + decode: function (e) { + var t = l(e) + if (t) return t + throw new Error('Non-base' + s + ' character') + }, + } + } + }, + 17086: (e, t) => { + 'use strict' + ;((t.byteLength = function (e) { + var t = s(e), + r = t[0], + n = t[1] + return (3 * (r + n)) / 4 - n + }), + (t.toByteArray = function (e) { + var t, + r, + o = s(e), + a = o[0], + u = o[1], + c = new i( + (function (e, t, r) { + return (3 * (t + r)) / 4 - r + })(0, a, u), + ), + f = 0, + l = u > 0 ? a - 4 : a + for (r = 0; r < l; r += 4) + ((t = (n[e.charCodeAt(r)] << 18) | (n[e.charCodeAt(r + 1)] << 12) | (n[e.charCodeAt(r + 2)] << 6) | n[e.charCodeAt(r + 3)]), + (c[f++] = (t >> 16) & 255), + (c[f++] = (t >> 8) & 255), + (c[f++] = 255 & t)) + return ( + 2 === u && ((t = (n[e.charCodeAt(r)] << 2) | (n[e.charCodeAt(r + 1)] >> 4)), (c[f++] = 255 & t)), + 1 === u && + ((t = (n[e.charCodeAt(r)] << 10) | (n[e.charCodeAt(r + 1)] << 4) | (n[e.charCodeAt(r + 2)] >> 2)), + (c[f++] = (t >> 8) & 255), + (c[f++] = 255 & t)), + c + ) + }), + (t.fromByteArray = function (e) { + for (var t, n = e.length, i = n % 3, o = [], a = 16383, s = 0, c = n - i; s < c; s += a) o.push(u(e, s, s + a > c ? c : s + a)) + return ( + 1 === i + ? ((t = e[n - 1]), o.push(r[t >> 2] + r[(t << 4) & 63] + '==')) + : 2 === i && ((t = (e[n - 2] << 8) + e[n - 1]), o.push(r[t >> 10] + r[(t >> 4) & 63] + r[(t << 2) & 63] + '=')), + o.join('') + ) + })) + for ( + var r = [], + n = [], + i = 'undefined' != typeof Uint8Array ? Uint8Array : Array, + o = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/', + a = 0; + a < 64; + ++a + ) + ((r[a] = o[a]), (n[o.charCodeAt(a)] = a)) + function s(e) { + var t = e.length + if (t % 4 > 0) throw new Error('Invalid string. Length must be a multiple of 4') + var r = e.indexOf('=') + return (-1 === r && (r = t), [r, r === t ? 0 : 4 - (r % 4)]) + } + function u(e, t, n) { + for (var i, o, a = [], s = t; s < n; s += 3) + ((i = ((e[s] << 16) & 16711680) + ((e[s + 1] << 8) & 65280) + (255 & e[s + 2])), + a.push(r[((o = i) >> 18) & 63] + r[(o >> 12) & 63] + r[(o >> 6) & 63] + r[63 & o])) + return a.join('') + } + ;((n['-'.charCodeAt(0)] = 62), (n['_'.charCodeAt(0)] = 63)) + }, + 32548: (e, t, r) => { + var n + e = r.nmd(e) + var i = (function (e) { + 'use strict' + var t = 1e7, + r = 7, + n = 9007199254740992, + o = h(n), + a = '0123456789abcdefghijklmnopqrstuvwxyz', + s = 'function' == typeof BigInt + function u(e, t, r, n) { + return void 0 === e ? u[0] : void 0 === t || (10 == +t && !r) ? J(e) : W(e, t, r, n) + } + function c(e, t) { + ;((this.value = e), (this.sign = t), (this.isSmall = !1)) + } + function f(e) { + ;((this.value = e), (this.sign = e < 0), (this.isSmall = !0)) + } + function l(e) { + this.value = e + } + function d(e) { + return -n < e && e < n + } + function h(e) { + return e < 1e7 ? [e] : e < 1e14 ? [e % 1e7, Math.floor(e / 1e7)] : [e % 1e7, Math.floor(e / 1e7) % 1e7, Math.floor(e / 1e14)] + } + function p(e) { + y(e) + var r = e.length + if (r < 4 && L(e, o) < 0) + switch (r) { + case 0: + return 0 + case 1: + return e[0] + case 2: + return e[0] + e[1] * t + default: + return e[0] + (e[1] + e[2] * t) * t + } + return e + } + function y(e) { + for (var t = e.length; 0 === e[--t]; ); + e.length = t + 1 + } + function g(e) { + for (var t = new Array(e), r = -1; ++r < e; ) t[r] = 0 + return t + } + function b(e) { + return e > 0 ? Math.floor(e) : Math.ceil(e) + } + function m(e, r) { + var n, + i, + o = e.length, + a = r.length, + s = new Array(o), + u = 0, + c = t + for (i = 0; i < a; i++) ((u = (n = e[i] + r[i] + u) >= c ? 1 : 0), (s[i] = n - u * c)) + for (; i < o; ) ((u = (n = e[i] + u) === c ? 1 : 0), (s[i++] = n - u * c)) + return (u > 0 && s.push(u), s) + } + function v(e, t) { + return e.length >= t.length ? m(e, t) : m(t, e) + } + function w(e, r) { + var n, + i, + o = e.length, + a = new Array(o), + s = t + for (i = 0; i < o; i++) ((n = e[i] - s + r), (r = Math.floor(n / s)), (a[i] = n - r * s), (r += 1)) + for (; r > 0; ) ((a[i++] = r % s), (r = Math.floor(r / s))) + return a + } + function _(e, r) { + var n, + i, + o = e.length, + a = r.length, + s = new Array(o), + u = 0, + c = t + for (n = 0; n < a; n++) ((i = e[n] - u - r[n]) < 0 ? ((i += c), (u = 1)) : (u = 0), (s[n] = i)) + for (n = a; n < o; n++) { + if (!((i = e[n] - u) < 0)) { + s[n++] = i + break + } + ;((i += c), (s[n] = i)) + } + for (; n < o; n++) s[n] = e[n] + return (y(s), s) + } + function E(e, r, n) { + var i, + o, + a = e.length, + s = new Array(a), + u = -r, + l = t + for (i = 0; i < a; i++) ((o = e[i] + u), (u = Math.floor(o / l)), (o %= l), (s[i] = o < 0 ? o + l : o)) + return 'number' == typeof (s = p(s)) ? (n && (s = -s), new f(s)) : new c(s, n) + } + function S(e, r) { + var n, + i, + o, + a, + s = e.length, + u = r.length, + c = g(s + u), + f = t + for (o = 0; o < s; ++o) { + a = e[o] + for (var l = 0; l < u; ++l) ((n = a * r[l] + c[o + l]), (i = Math.floor(n / f)), (c[o + l] = n - i * f), (c[o + l + 1] += i)) + } + return (y(c), c) + } + function A(e, r) { + var n, + i, + o = e.length, + a = new Array(o), + s = t, + u = 0 + for (i = 0; i < o; i++) ((n = e[i] * r + u), (u = Math.floor(n / s)), (a[i] = n - u * s)) + for (; u > 0; ) ((a[i++] = u % s), (u = Math.floor(u / s))) + return a + } + function O(e, t) { + for (var r = []; t-- > 0; ) r.push(0) + return r.concat(e) + } + function M(e, t) { + var r = Math.max(e.length, t.length) + if (r <= 30) return S(e, t) + r = Math.ceil(r / 2) + var n = e.slice(r), + i = e.slice(0, r), + o = t.slice(r), + a = t.slice(0, r), + s = M(i, a), + u = M(n, o), + c = M(v(i, n), v(a, o)), + f = v(v(s, O(_(_(c, s), u), r)), O(u, 2 * r)) + return (y(f), f) + } + function T(e, r, n) { + return new c(e < t ? A(r, e) : S(r, h(e)), n) + } + function I(e) { + var r, + n, + i, + o, + a = e.length, + s = g(a + a), + u = t + for (i = 0; i < a; i++) { + n = 0 - (o = e[i]) * o + for (var c = i; c < a; c++) ((r = o * e[c] * 2 + s[i + c] + n), (n = Math.floor(r / u)), (s[i + c] = r - n * u)) + s[i + a] = n + } + return (y(s), s) + } + function N(e, r) { + var n, + i, + o, + a, + s = e.length, + u = g(s), + c = t + for (o = 0, n = s - 1; n >= 0; --n) ((o = (a = o * c + e[n]) - (i = b(a / r)) * r), (u[n] = 0 | i)) + return [u, 0 | o] + } + function x(e, r) { + var n, + i = J(r) + if (s) return [new l(e.value / i.value), new l(e.value % i.value)] + var o, + a = e.value, + d = i.value + if (0 === d) throw new Error('Cannot divide by zero') + if (e.isSmall) return i.isSmall ? [new f(b(a / d)), new f(a % d)] : [u[0], e] + if (i.isSmall) { + if (1 === d) return [e, u[0]] + if (-1 == d) return [e.negate(), u[0]] + var m = Math.abs(d) + if (m < t) { + o = p((n = N(a, m))[0]) + var v = n[1] + return ( + e.sign && (v = -v), + 'number' == typeof o ? (e.sign !== i.sign && (o = -o), [new f(o), new f(v)]) : [new c(o, e.sign !== i.sign), new f(v)] + ) + } + d = h(m) + } + var w = L(a, d) + if (-1 === w) return [u[0], e] + if (0 === w) return [u[e.sign === i.sign ? 1 : -1], u[0]] + ;((n = + a.length + d.length <= 200 + ? (function (e, r) { + var n, + i, + o, + a, + s, + u, + c, + f = e.length, + l = r.length, + d = t, + h = g(r.length), + y = r[l - 1], + b = Math.ceil(d / (2 * y)), + m = A(e, b), + v = A(r, b) + for (m.length <= f && m.push(0), v.push(0), y = v[l - 1], i = f - l; i >= 0; i--) { + for ( + n = d - 1, m[i + l] !== y && (n = Math.floor((m[i + l] * d + m[i + l - 1]) / y)), o = 0, a = 0, u = v.length, s = 0; + s < u; + s++ + ) + ((o += n * v[s]), + (c = Math.floor(o / d)), + (a += m[i + s] - (o - c * d)), + (o = c), + a < 0 ? ((m[i + s] = a + d), (a = -1)) : ((m[i + s] = a), (a = 0))) + for (; 0 !== a; ) { + for (n -= 1, o = 0, s = 0; s < u; s++) + (o += m[i + s] - d + v[s]) < 0 ? ((m[i + s] = o + d), (o = 0)) : ((m[i + s] = o), (o = 1)) + a += o + } + h[i] = n + } + return ((m = N(m, b)[0]), [p(h), p(m)]) + })(a, d) + : (function (e, r) { + for (var n, i, o, a, s, u = e.length, c = r.length, f = [], l = [], d = t; u; ) + if ((l.unshift(e[--u]), y(l), L(l, r) < 0)) f.push(0) + else { + ;((o = l[(i = l.length) - 1] * d + l[i - 2]), + (a = r[c - 1] * d + r[c - 2]), + i > c && (o = (o + 1) * d), + (n = Math.ceil(o / a))) + do { + if (L((s = A(r, n)), l) <= 0) break + n-- + } while (n) + ;(f.push(n), (l = _(l, s))) + } + return (f.reverse(), [p(f), p(l)]) + })(a, d)), + (o = n[0])) + var E = e.sign !== i.sign, + S = n[1], + O = e.sign + return ( + 'number' == typeof o ? (E && (o = -o), (o = new f(o))) : (o = new c(o, E)), + 'number' == typeof S ? (O && (S = -S), (S = new f(S))) : (S = new c(S, O)), + [o, S] + ) + } + function L(e, t) { + if (e.length !== t.length) return e.length > t.length ? 1 : -1 + for (var r = e.length - 1; r >= 0; r--) if (e[r] !== t[r]) return e[r] > t[r] ? 1 : -1 + return 0 + } + function k(e) { + var t = e.abs() + return ( + !t.isUnit() && + (!!(t.equals(2) || t.equals(3) || t.equals(5)) || + (!(t.isEven() || t.isDivisibleBy(3) || t.isDivisibleBy(5)) && (!!t.lesser(49) || void 0))) + ) + } + function R(e, t) { + for (var r, n, o, a = e.prev(), s = a, u = 0; s.isEven(); ) ((s = s.divide(2)), u++) + e: for (n = 0; n < t.length; n++) + if (!e.lesser(t[n]) && !(o = i(t[n]).modPow(s, e)).isUnit() && !o.equals(a)) { + for (r = u - 1; 0 != r; r--) { + if ((o = o.square().mod(e)).isUnit()) return !1 + if (o.equals(a)) continue e + } + return !1 + } + return !0 + } + ;((c.prototype = Object.create(u.prototype)), + (f.prototype = Object.create(u.prototype)), + (l.prototype = Object.create(u.prototype)), + (c.prototype.add = function (e) { + var t = J(e) + if (this.sign !== t.sign) return this.subtract(t.negate()) + var r = this.value, + n = t.value + return t.isSmall ? new c(w(r, Math.abs(n)), this.sign) : new c(v(r, n), this.sign) + }), + (c.prototype.plus = c.prototype.add), + (f.prototype.add = function (e) { + var t = J(e), + r = this.value + if (r < 0 !== t.sign) return this.subtract(t.negate()) + var n = t.value + if (t.isSmall) { + if (d(r + n)) return new f(r + n) + n = h(Math.abs(n)) + } + return new c(w(n, Math.abs(r)), r < 0) + }), + (f.prototype.plus = f.prototype.add), + (l.prototype.add = function (e) { + return new l(this.value + J(e).value) + }), + (l.prototype.plus = l.prototype.add), + (c.prototype.subtract = function (e) { + var t = J(e) + if (this.sign !== t.sign) return this.add(t.negate()) + var r = this.value, + n = t.value + return t.isSmall + ? E(r, Math.abs(n), this.sign) + : (function (e, t, r) { + var n + return ( + L(e, t) >= 0 ? (n = _(e, t)) : ((n = _(t, e)), (r = !r)), + 'number' == typeof (n = p(n)) ? (r && (n = -n), new f(n)) : new c(n, r) + ) + })(r, n, this.sign) + }), + (c.prototype.minus = c.prototype.subtract), + (f.prototype.subtract = function (e) { + var t = J(e), + r = this.value + if (r < 0 !== t.sign) return this.add(t.negate()) + var n = t.value + return t.isSmall ? new f(r - n) : E(n, Math.abs(r), r >= 0) + }), + (f.prototype.minus = f.prototype.subtract), + (l.prototype.subtract = function (e) { + return new l(this.value - J(e).value) + }), + (l.prototype.minus = l.prototype.subtract), + (c.prototype.negate = function () { + return new c(this.value, !this.sign) + }), + (f.prototype.negate = function () { + var e = this.sign, + t = new f(-this.value) + return ((t.sign = !e), t) + }), + (l.prototype.negate = function () { + return new l(-this.value) + }), + (c.prototype.abs = function () { + return new c(this.value, !1) + }), + (f.prototype.abs = function () { + return new f(Math.abs(this.value)) + }), + (l.prototype.abs = function () { + return new l(this.value >= 0 ? this.value : -this.value) + }), + (c.prototype.multiply = function (e) { + var r, + n, + i, + o = J(e), + a = this.value, + s = o.value, + f = this.sign !== o.sign + if (o.isSmall) { + if (0 === s) return u[0] + if (1 === s) return this + if (-1 === s) return this.negate() + if ((r = Math.abs(s)) < t) return new c(A(a, r), f) + s = h(r) + } + return new c(-0.012 * (n = a.length) - 0.012 * (i = s.length) + 15e-6 * n * i > 0 ? M(a, s) : S(a, s), f) + }), + (c.prototype.times = c.prototype.multiply), + (f.prototype._multiplyBySmall = function (e) { + return d(e.value * this.value) ? new f(e.value * this.value) : T(Math.abs(e.value), h(Math.abs(this.value)), this.sign !== e.sign) + }), + (c.prototype._multiplyBySmall = function (e) { + return 0 === e.value + ? u[0] + : 1 === e.value + ? this + : -1 === e.value + ? this.negate() + : T(Math.abs(e.value), this.value, this.sign !== e.sign) + }), + (f.prototype.multiply = function (e) { + return J(e)._multiplyBySmall(this) + }), + (f.prototype.times = f.prototype.multiply), + (l.prototype.multiply = function (e) { + return new l(this.value * J(e).value) + }), + (l.prototype.times = l.prototype.multiply), + (c.prototype.square = function () { + return new c(I(this.value), !1) + }), + (f.prototype.square = function () { + var e = this.value * this.value + return d(e) ? new f(e) : new c(I(h(Math.abs(this.value))), !1) + }), + (l.prototype.square = function (e) { + return new l(this.value * this.value) + }), + (c.prototype.divmod = function (e) { + var t = x(this, e) + return { quotient: t[0], remainder: t[1] } + }), + (l.prototype.divmod = f.prototype.divmod = c.prototype.divmod), + (c.prototype.divide = function (e) { + return x(this, e)[0] + }), + (l.prototype.over = l.prototype.divide = + function (e) { + return new l(this.value / J(e).value) + }), + (f.prototype.over = f.prototype.divide = c.prototype.over = c.prototype.divide), + (c.prototype.mod = function (e) { + return x(this, e)[1] + }), + (l.prototype.mod = l.prototype.remainder = + function (e) { + return new l(this.value % J(e).value) + }), + (f.prototype.remainder = f.prototype.mod = c.prototype.remainder = c.prototype.mod), + (c.prototype.pow = function (e) { + var t, + r, + n, + i = J(e), + o = this.value, + a = i.value + if (0 === a) return u[1] + if (0 === o) return u[0] + if (1 === o) return u[1] + if (-1 === o) return i.isEven() ? u[1] : u[-1] + if (i.sign) return u[0] + if (!i.isSmall) throw new Error('The exponent ' + i.toString() + ' is too large.') + if (this.isSmall && d((t = Math.pow(o, a)))) return new f(b(t)) + for (r = this, n = u[1]; !0 & a && ((n = n.times(r)), --a), 0 !== a; ) ((a /= 2), (r = r.square())) + return n + }), + (f.prototype.pow = c.prototype.pow), + (l.prototype.pow = function (e) { + var t = J(e), + r = this.value, + n = t.value, + i = BigInt(0), + o = BigInt(1), + a = BigInt(2) + if (n === i) return u[1] + if (r === i) return u[0] + if (r === o) return u[1] + if (r === BigInt(-1)) return t.isEven() ? u[1] : u[-1] + if (t.isNegative()) return new l(i) + for (var s = this, c = u[1]; (n & o) === o && ((c = c.times(s)), --n), n !== i; ) ((n /= a), (s = s.square())) + return c + }), + (c.prototype.modPow = function (e, t) { + if (((e = J(e)), (t = J(t)).isZero())) throw new Error('Cannot take modPow with modulus 0') + var r = u[1], + n = this.mod(t) + for (e.isNegative() && ((e = e.multiply(u[-1])), (n = n.modInv(t))); e.isPositive(); ) { + if (n.isZero()) return u[0] + ;(e.isOdd() && (r = r.multiply(n).mod(t)), (e = e.divide(2)), (n = n.square().mod(t))) + } + return r + }), + (l.prototype.modPow = f.prototype.modPow = c.prototype.modPow), + (c.prototype.compareAbs = function (e) { + var t = J(e), + r = this.value, + n = t.value + return t.isSmall ? 1 : L(r, n) + }), + (f.prototype.compareAbs = function (e) { + var t = J(e), + r = Math.abs(this.value), + n = t.value + return t.isSmall ? (r === (n = Math.abs(n)) ? 0 : r > n ? 1 : -1) : -1 + }), + (l.prototype.compareAbs = function (e) { + var t = this.value, + r = J(e).value + return (t = t >= 0 ? t : -t) === (r = r >= 0 ? r : -r) ? 0 : t > r ? 1 : -1 + }), + (c.prototype.compare = function (e) { + if (e === 1 / 0) return -1 + if (e === -1 / 0) return 1 + var t = J(e), + r = this.value, + n = t.value + return this.sign !== t.sign ? (t.sign ? 1 : -1) : t.isSmall ? (this.sign ? -1 : 1) : L(r, n) * (this.sign ? -1 : 1) + }), + (c.prototype.compareTo = c.prototype.compare), + (f.prototype.compare = function (e) { + if (e === 1 / 0) return -1 + if (e === -1 / 0) return 1 + var t = J(e), + r = this.value, + n = t.value + return t.isSmall ? (r == n ? 0 : r > n ? 1 : -1) : r < 0 !== t.sign ? (r < 0 ? -1 : 1) : r < 0 ? 1 : -1 + }), + (f.prototype.compareTo = f.prototype.compare), + (l.prototype.compare = function (e) { + if (e === 1 / 0) return -1 + if (e === -1 / 0) return 1 + var t = this.value, + r = J(e).value + return t === r ? 0 : t > r ? 1 : -1 + }), + (l.prototype.compareTo = l.prototype.compare), + (c.prototype.equals = function (e) { + return 0 === this.compare(e) + }), + (l.prototype.eq = l.prototype.equals = f.prototype.eq = f.prototype.equals = c.prototype.eq = c.prototype.equals), + (c.prototype.notEquals = function (e) { + return 0 !== this.compare(e) + }), + (l.prototype.neq = l.prototype.notEquals = f.prototype.neq = f.prototype.notEquals = c.prototype.neq = c.prototype.notEquals), + (c.prototype.greater = function (e) { + return this.compare(e) > 0 + }), + (l.prototype.gt = l.prototype.greater = f.prototype.gt = f.prototype.greater = c.prototype.gt = c.prototype.greater), + (c.prototype.lesser = function (e) { + return this.compare(e) < 0 + }), + (l.prototype.lt = l.prototype.lesser = f.prototype.lt = f.prototype.lesser = c.prototype.lt = c.prototype.lesser), + (c.prototype.greaterOrEquals = function (e) { + return this.compare(e) >= 0 + }), + (l.prototype.geq = + l.prototype.greaterOrEquals = + f.prototype.geq = + f.prototype.greaterOrEquals = + c.prototype.geq = + c.prototype.greaterOrEquals), + (c.prototype.lesserOrEquals = function (e) { + return this.compare(e) <= 0 + }), + (l.prototype.leq = + l.prototype.lesserOrEquals = + f.prototype.leq = + f.prototype.lesserOrEquals = + c.prototype.leq = + c.prototype.lesserOrEquals), + (c.prototype.isEven = function () { + return 0 == (1 & this.value[0]) + }), + (f.prototype.isEven = function () { + return 0 == (1 & this.value) + }), + (l.prototype.isEven = function () { + return (this.value & BigInt(1)) === BigInt(0) + }), + (c.prototype.isOdd = function () { + return 1 == (1 & this.value[0]) + }), + (f.prototype.isOdd = function () { + return 1 == (1 & this.value) + }), + (l.prototype.isOdd = function () { + return (this.value & BigInt(1)) === BigInt(1) + }), + (c.prototype.isPositive = function () { + return !this.sign + }), + (f.prototype.isPositive = function () { + return this.value > 0 + }), + (l.prototype.isPositive = f.prototype.isPositive), + (c.prototype.isNegative = function () { + return this.sign + }), + (f.prototype.isNegative = function () { + return this.value < 0 + }), + (l.prototype.isNegative = f.prototype.isNegative), + (c.prototype.isUnit = function () { + return !1 + }), + (f.prototype.isUnit = function () { + return 1 === Math.abs(this.value) + }), + (l.prototype.isUnit = function () { + return this.abs().value === BigInt(1) + }), + (c.prototype.isZero = function () { + return !1 + }), + (f.prototype.isZero = function () { + return 0 === this.value + }), + (l.prototype.isZero = function () { + return this.value === BigInt(0) + }), + (c.prototype.isDivisibleBy = function (e) { + var t = J(e) + return !t.isZero() && (!!t.isUnit() || (0 === t.compareAbs(2) ? this.isEven() : this.mod(t).isZero())) + }), + (l.prototype.isDivisibleBy = f.prototype.isDivisibleBy = c.prototype.isDivisibleBy), + (c.prototype.isPrime = function (t) { + var r = k(this) + if (r !== e) return r + var n = this.abs(), + o = n.bitLength() + if (o <= 64) return R(n, [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37]) + for (var a = Math.log(2) * o.toJSNumber(), s = Math.ceil(!0 === t ? 2 * Math.pow(a, 2) : a), u = [], c = 0; c < s; c++) u.push(i(c + 2)) + return R(n, u) + }), + (l.prototype.isPrime = f.prototype.isPrime = c.prototype.isPrime), + (c.prototype.isProbablePrime = function (t, r) { + var n = k(this) + if (n !== e) return n + for (var o = this.abs(), a = t === e ? 5 : t, s = [], u = 0; u < a; u++) s.push(i.randBetween(2, o.minus(2), r)) + return R(o, s) + }), + (l.prototype.isProbablePrime = f.prototype.isProbablePrime = c.prototype.isProbablePrime), + (c.prototype.modInv = function (e) { + for (var t, r, n, o = i.zero, a = i.one, s = J(e), u = this.abs(); !u.isZero(); ) + ((t = s.divide(u)), (r = o), (n = s), (o = a), (s = u), (a = r.subtract(t.multiply(a))), (u = n.subtract(t.multiply(u)))) + if (!s.isUnit()) throw new Error(this.toString() + ' and ' + e.toString() + ' are not co-prime') + return (-1 === o.compare(0) && (o = o.add(e)), this.isNegative() ? o.negate() : o) + }), + (l.prototype.modInv = f.prototype.modInv = c.prototype.modInv), + (c.prototype.next = function () { + var e = this.value + return this.sign ? E(e, 1, this.sign) : new c(w(e, 1), this.sign) + }), + (f.prototype.next = function () { + var e = this.value + return e + 1 < n ? new f(e + 1) : new c(o, !1) + }), + (l.prototype.next = function () { + return new l(this.value + BigInt(1)) + }), + (c.prototype.prev = function () { + var e = this.value + return this.sign ? new c(w(e, 1), !0) : E(e, 1, this.sign) + }), + (f.prototype.prev = function () { + var e = this.value + return e - 1 > -n ? new f(e - 1) : new c(o, !0) + }), + (l.prototype.prev = function () { + return new l(this.value - BigInt(1)) + })) + for (var P = [1]; 2 * P[P.length - 1] <= t; ) P.push(2 * P[P.length - 1]) + var B = P.length, + D = P[B - 1] + function C(e) { + return Math.abs(e) <= t + } + function j(e, t, r) { + t = J(t) + for ( + var n = e.isNegative(), o = t.isNegative(), a = n ? e.not() : e, s = o ? t.not() : t, u = 0, c = 0, f = null, l = null, d = []; + !a.isZero() || !s.isZero(); + ) + ((u = (f = x(a, D))[1].toJSNumber()), + n && (u = D - 1 - u), + (c = (l = x(s, D))[1].toJSNumber()), + o && (c = D - 1 - c), + (a = f[0]), + (s = l[0]), + d.push(r(u, c))) + for (var h = 0 !== r(n ? 1 : 0, o ? 1 : 0) ? i(-1) : i(0), p = d.length - 1; p >= 0; p -= 1) h = h.multiply(D).add(i(d[p])) + return h + } + ;((c.prototype.shiftLeft = function (e) { + var t = J(e).toJSNumber() + if (!C(t)) throw new Error(String(t) + ' is too large for shifting.') + if (t < 0) return this.shiftRight(-t) + var r = this + if (r.isZero()) return r + for (; t >= B; ) ((r = r.multiply(D)), (t -= B - 1)) + return r.multiply(P[t]) + }), + (l.prototype.shiftLeft = f.prototype.shiftLeft = c.prototype.shiftLeft), + (c.prototype.shiftRight = function (e) { + var t, + r = J(e).toJSNumber() + if (!C(r)) throw new Error(String(r) + ' is too large for shifting.') + if (r < 0) return this.shiftLeft(-r) + for (var n = this; r >= B; ) { + if (n.isZero() || (n.isNegative() && n.isUnit())) return n + ;((n = (t = x(n, D))[1].isNegative() ? t[0].prev() : t[0]), (r -= B - 1)) + } + return (t = x(n, P[r]))[1].isNegative() ? t[0].prev() : t[0] + }), + (l.prototype.shiftRight = f.prototype.shiftRight = c.prototype.shiftRight), + (c.prototype.not = function () { + return this.negate().prev() + }), + (l.prototype.not = f.prototype.not = c.prototype.not), + (c.prototype.and = function (e) { + return j(this, e, function (e, t) { + return e & t + }) + }), + (l.prototype.and = f.prototype.and = c.prototype.and), + (c.prototype.or = function (e) { + return j(this, e, function (e, t) { + return e | t + }) + }), + (l.prototype.or = f.prototype.or = c.prototype.or), + (c.prototype.xor = function (e) { + return j(this, e, function (e, t) { + return e ^ t + }) + }), + (l.prototype.xor = f.prototype.xor = c.prototype.xor)) + var F = 1 << 30, + U = ((t & -t) * (t & -t)) | F + function V(e) { + var r = e.value, + n = 'number' == typeof r ? r | F : 'bigint' == typeof r ? r | BigInt(F) : (r[0] + r[1] * t) | U + return n & -n + } + function H(e, t) { + if (t.compareTo(e) <= 0) { + var r = H(e, t.square(t)), + n = r.p, + o = r.e, + a = n.multiply(t) + return a.compareTo(e) <= 0 ? { p: a, e: 2 * o + 1 } : { p: n, e: 2 * o } + } + return { p: i(1), e: 0 } + } + function z(e, t) { + return ((e = J(e)), (t = J(t)), e.greater(t) ? e : t) + } + function q(e, t) { + return ((e = J(e)), (t = J(t)), e.lesser(t) ? e : t) + } + function K(e, t) { + if (((e = J(e).abs()), (t = J(t).abs()), e.equals(t))) return e + if (e.isZero()) return t + if (t.isZero()) return e + for (var r, n, i = u[1]; e.isEven() && t.isEven(); ) ((r = q(V(e), V(t))), (e = e.divide(r)), (t = t.divide(r)), (i = i.multiply(r))) + for (; e.isEven(); ) e = e.divide(V(e)) + do { + for (; t.isEven(); ) t = t.divide(V(t)) + ;(e.greater(t) && ((n = t), (t = e), (e = n)), (t = t.subtract(e))) + } while (!t.isZero()) + return i.isUnit() ? e : e.multiply(i) + } + ;((c.prototype.bitLength = function () { + var e = this + return (e.compareTo(i(0)) < 0 && (e = e.negate().subtract(i(1))), 0 === e.compareTo(i(0)) ? i(0) : i(H(e, i(2)).e).add(i(1))) + }), + (l.prototype.bitLength = f.prototype.bitLength = c.prototype.bitLength)) + var W = function (e, t, r, n) { + ;((r = r || a), (e = String(e)), n || ((e = e.toLowerCase()), (r = r.toLowerCase()))) + var i, + o = e.length, + s = Math.abs(t), + u = {} + for (i = 0; i < r.length; i++) u[r[i]] = i + for (i = 0; i < o; i++) + if ('-' !== (l = e[i]) && l in u && u[l] >= s) { + if ('1' === l && 1 === s) continue + throw new Error(l + ' is not a valid digit in base ' + t + '.') + } + t = J(t) + var c = [], + f = '-' === e[0] + for (i = f ? 1 : 0; i < e.length; i++) { + var l + if ((l = e[i]) in u) c.push(J(u[l])) + else { + if ('<' !== l) throw new Error(l + ' is not a valid character') + var d = i + do { + i++ + } while ('>' !== e[i] && i < e.length) + c.push(J(e.slice(d + 1, i))) + } + } + return G(c, t, f) + } + function G(e, t, r) { + var n, + i = u[0], + o = u[1] + for (n = e.length - 1; n >= 0; n--) ((i = i.add(e[n].times(o))), (o = o.times(t))) + return r ? i.negate() : i + } + function Y(e, t) { + if ((t = i(t)).isZero()) { + if (e.isZero()) return { value: [0], isNegative: !1 } + throw new Error('Cannot convert nonzero numbers to base 0.') + } + if (t.equals(-1)) { + if (e.isZero()) return { value: [0], isNegative: !1 } + if (e.isNegative()) + return { value: [].concat.apply([], Array.apply(null, Array(-e.toJSNumber())).map(Array.prototype.valueOf, [1, 0])), isNegative: !1 } + var r = Array.apply(null, Array(e.toJSNumber() - 1)).map(Array.prototype.valueOf, [0, 1]) + return (r.unshift([1]), { value: [].concat.apply([], r), isNegative: !1 }) + } + var n = !1 + if ((e.isNegative() && t.isPositive() && ((n = !0), (e = e.abs())), t.isUnit())) + return e.isZero() + ? { value: [0], isNegative: !1 } + : { value: Array.apply(null, Array(e.toJSNumber())).map(Number.prototype.valueOf, 1), isNegative: n } + for (var o, a = [], s = e; s.isNegative() || s.compareAbs(t) >= 0; ) { + ;((o = s.divmod(t)), (s = o.quotient)) + var u = o.remainder + ;(u.isNegative() && ((u = t.minus(u).abs()), (s = s.next())), a.push(u.toJSNumber())) + } + return (a.push(s.toJSNumber()), { value: a.reverse(), isNegative: n }) + } + function $(e, t, r) { + var n = Y(e, t) + return ( + (n.isNegative ? '-' : '') + + n.value + .map(function (e) { + return (function (e, t) { + return e < (t = t || a).length ? t[e] : '<' + e + '>' + })(e, r) + }) + .join('') + ) + } + function X(e) { + if (d(+e)) { + var t = +e + if (t === b(t)) return s ? new l(BigInt(t)) : new f(t) + throw new Error('Invalid integer: ' + e) + } + var n = '-' === e[0] + n && (e = e.slice(1)) + var i = e.split(/e/i) + if (i.length > 2) throw new Error('Invalid integer: ' + i.join('e')) + if (2 === i.length) { + var o = i[1] + if (('+' === o[0] && (o = o.slice(1)), (o = +o) !== b(o) || !d(o))) + throw new Error('Invalid integer: ' + o + ' is not a valid exponent.') + var a = i[0], + u = a.indexOf('.') + if ((u >= 0 && ((o -= a.length - u - 1), (a = a.slice(0, u) + a.slice(u + 1))), o < 0)) + throw new Error('Cannot include negative exponent part for integers') + e = a += new Array(o + 1).join('0') + } + if (!/^([0-9][0-9]*)$/.test(e)) throw new Error('Invalid integer: ' + e) + if (s) return new l(BigInt(n ? '-' + e : e)) + for (var h = [], p = e.length, g = r, m = p - g; p > 0; ) (h.push(+e.slice(m, p)), (m -= g) < 0 && (m = 0), (p -= g)) + return (y(h), new c(h, n)) + } + function J(e) { + return 'number' == typeof e + ? (function (e) { + if (s) return new l(BigInt(e)) + if (d(e)) { + if (e !== b(e)) throw new Error(e + ' is not an integer.') + return new f(e) + } + return X(e.toString()) + })(e) + : 'string' == typeof e + ? X(e) + : 'bigint' == typeof e + ? new l(e) + : e + } + ;((c.prototype.toArray = function (e) { + return Y(this, e) + }), + (f.prototype.toArray = function (e) { + return Y(this, e) + }), + (l.prototype.toArray = function (e) { + return Y(this, e) + }), + (c.prototype.toString = function (t, r) { + if ((t === e && (t = 10), 10 !== t)) return $(this, t, r) + for (var n, i = this.value, o = i.length, a = String(i[--o]); --o >= 0; ) ((n = String(i[o])), (a += '0000000'.slice(n.length) + n)) + return (this.sign ? '-' : '') + a + }), + (f.prototype.toString = function (t, r) { + return (t === e && (t = 10), 10 != t ? $(this, t, r) : String(this.value)) + }), + (l.prototype.toString = f.prototype.toString), + (l.prototype.toJSON = + c.prototype.toJSON = + f.prototype.toJSON = + function () { + return this.toString() + }), + (c.prototype.valueOf = function () { + return parseInt(this.toString(), 10) + }), + (c.prototype.toJSNumber = c.prototype.valueOf), + (f.prototype.valueOf = function () { + return this.value + }), + (f.prototype.toJSNumber = f.prototype.valueOf), + (l.prototype.valueOf = l.prototype.toJSNumber = + function () { + return parseInt(this.toString(), 10) + })) + for (var Z = 0; Z < 1e3; Z++) ((u[Z] = J(Z)), Z > 0 && (u[-Z] = J(-Z))) + return ( + (u.one = u[1]), + (u.zero = u[0]), + (u.minusOne = u[-1]), + (u.max = z), + (u.min = q), + (u.gcd = K), + (u.lcm = function (e, t) { + return ((e = J(e).abs()), (t = J(t).abs()), e.divide(K(e, t)).multiply(t)) + }), + (u.isInstance = function (e) { + return e instanceof c || e instanceof f || e instanceof l + }), + (u.randBetween = function (e, r, n) { + ;((e = J(e)), (r = J(r))) + var i = n || Math.random, + o = q(e, r), + a = z(e, r).subtract(o).add(1) + if (a.isSmall) return o.add(Math.floor(i() * a)) + for (var s = Y(a, t).value, c = [], f = !0, l = 0; l < s.length; l++) { + var d = f ? s[l] + (l + 1 < s.length ? s[l + 1] / t : 0) : t, + h = b(i() * d) + ;(c.push(h), h < s[l] && (f = !1)) + } + return o.add(u.fromArray(c, t, !1)) + }), + (u.fromArray = function (e, t, r) { + return G(e.map(J), J(t || 10), r) + }), + u + ) + })() + ;(e.hasOwnProperty('exports') && (e.exports = i), + void 0 === + (n = function () { + return i + }.call(t, r, t, e)) || (e.exports = n)) + }, + 83753: function (e, t, r) { + var n + !(function (i) { + 'use strict' + var o, + a = /^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i, + s = Math.ceil, + u = Math.floor, + c = '[BigNumber Error] ', + f = c + 'Number primitive has more than 15 significant digits: ', + l = 1e14, + d = 14, + h = 9007199254740991, + p = [1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13], + y = 1e7, + g = 1e9 + function b(e) { + var t = 0 | e + return e > 0 || e === t ? t : t - 1 + } + function m(e) { + for (var t, r, n = 1, i = e.length, o = e[0] + ''; n < i; ) { + for (t = e[n++] + '', r = d - t.length; r--; t = '0' + t); + o += t + } + for (i = o.length; 48 === o.charCodeAt(--i); ); + return o.slice(0, i + 1 || 1) + } + function v(e, t) { + var r, + n, + i = e.c, + o = t.c, + a = e.s, + s = t.s, + u = e.e, + c = t.e + if (!a || !s) return null + if (((r = i && !i[0]), (n = o && !o[0]), r || n)) return r ? (n ? 0 : -s) : a + if (a != s) return a + if (((r = a < 0), (n = u == c), !i || !o)) return n ? 0 : !i ^ r ? 1 : -1 + if (!n) return (u > c) ^ r ? 1 : -1 + for (s = (u = i.length) < (c = o.length) ? u : c, a = 0; a < s; a++) if (i[a] != o[a]) return (i[a] > o[a]) ^ r ? 1 : -1 + return u == c ? 0 : (u > c) ^ r ? 1 : -1 + } + function w(e, t, r, n) { + if (e < t || e > r || e !== u(e)) + throw Error( + c + + (n || 'Argument') + + ('number' == typeof e ? (e < t || e > r ? ' out of range: ' : ' not an integer: ') : ' not a primitive number: ') + + String(e), + ) + } + function _(e) { + var t = e.c.length - 1 + return b(e.e / d) == t && e.c[t] % 2 != 0 + } + function E(e, t) { + return (e.length > 1 ? e.charAt(0) + '.' + e.slice(1) : e) + (t < 0 ? 'e' : 'e+') + t + } + function S(e, t, r) { + var n, i + if (t < 0) { + for (i = r + '.'; ++t; i += r); + e = i + e + } else if (++t > (n = e.length)) { + for (i = r, t -= n; --t; i += r); + e += i + } else t < n && (e = e.slice(0, t) + '.' + e.slice(t)) + return e + } + ;((o = (function e(t) { + var r, + n, + i, + o, + A, + O, + M, + T, + I, + N, + x = (q.prototype = { constructor: q, toString: null, valueOf: null }), + L = new q(1), + k = 20, + R = 4, + P = -7, + B = 21, + D = -1e7, + C = 1e7, + j = !1, + F = 1, + U = 0, + V = { + prefix: '', + groupSize: 3, + secondaryGroupSize: 0, + groupSeparator: ',', + decimalSeparator: '.', + fractionGroupSize: 0, + fractionGroupSeparator: ' ', + suffix: '', + }, + H = '0123456789abcdefghijklmnopqrstuvwxyz', + z = !0 + function q(e, t) { + var r, + o, + s, + c, + l, + p, + y, + g, + b = this + if (!(b instanceof q)) return new q(e, t) + if (null == t) { + if (e && !0 === e._isBigNumber) + return ( + (b.s = e.s), + void (!e.c || e.e > C ? (b.c = b.e = null) : e.e < D ? (b.c = [(b.e = 0)]) : ((b.e = e.e), (b.c = e.c.slice()))) + ) + if ((p = 'number' == typeof e) && 0 * e == 0) { + if (((b.s = 1 / e < 0 ? ((e = -e), -1) : 1), e === ~~e)) { + for (c = 0, l = e; l >= 10; l /= 10, c++); + return void (c > C ? (b.c = b.e = null) : ((b.e = c), (b.c = [e]))) + } + g = String(e) + } else { + if (!a.test((g = String(e)))) return i(b, g, p) + b.s = 45 == g.charCodeAt(0) ? ((g = g.slice(1)), -1) : 1 + } + ;((c = g.indexOf('.')) > -1 && (g = g.replace('.', '')), + (l = g.search(/e/i)) > 0 ? (c < 0 && (c = l), (c += +g.slice(l + 1)), (g = g.substring(0, l))) : c < 0 && (c = g.length)) + } else { + if ((w(t, 2, H.length, 'Base'), 10 == t && z)) return Y((b = new q(e)), k + b.e + 1, R) + if (((g = String(e)), (p = 'number' == typeof e))) { + if (0 * e != 0) return i(b, g, p, t) + if (((b.s = 1 / e < 0 ? ((g = g.slice(1)), -1) : 1), q.DEBUG && g.replace(/^0\.0*|\./, '').length > 15)) throw Error(f + e) + } else b.s = 45 === g.charCodeAt(0) ? ((g = g.slice(1)), -1) : 1 + for (r = H.slice(0, t), c = l = 0, y = g.length; l < y; l++) + if (r.indexOf((o = g.charAt(l))) < 0) { + if ('.' == o) { + if (l > c) { + c = y + continue + } + } else if (!s && ((g == g.toUpperCase() && (g = g.toLowerCase())) || (g == g.toLowerCase() && (g = g.toUpperCase())))) { + ;((s = !0), (l = -1), (c = 0)) + continue + } + return i(b, String(e), p, t) + } + ;((p = !1), (c = (g = n(g, t, 10, b.s)).indexOf('.')) > -1 ? (g = g.replace('.', '')) : (c = g.length)) + } + for (l = 0; 48 === g.charCodeAt(l); l++); + for (y = g.length; 48 === g.charCodeAt(--y); ); + if ((g = g.slice(l, ++y))) { + if (((y -= l), p && q.DEBUG && y > 15 && (e > h || e !== u(e)))) throw Error(f + b.s * e) + if ((c = c - l - 1) > C) b.c = b.e = null + else if (c < D) b.c = [(b.e = 0)] + else { + if (((b.e = c), (b.c = []), (l = (c + 1) % d), c < 0 && (l += d), l < y)) { + for (l && b.c.push(+g.slice(0, l)), y -= d; l < y; ) b.c.push(+g.slice(l, (l += d))) + l = d - (g = g.slice(l)).length + } else l -= y + for (; l--; g += '0'); + b.c.push(+g) + } + } else b.c = [(b.e = 0)] + } + function K(e, t, r, n) { + var i, o, a, s, u + if ((null == r ? (r = R) : w(r, 0, 8), !e.c)) return e.toString() + if (((i = e.c[0]), (a = e.e), null == t)) ((u = m(e.c)), (u = 1 == n || (2 == n && (a <= P || a >= B)) ? E(u, a) : S(u, a, '0'))) + else if (((o = (e = Y(new q(e), t, r)).e), (s = (u = m(e.c)).length), 1 == n || (2 == n && (t <= o || o <= P)))) { + for (; s < t; u += '0', s++); + u = E(u, o) + } else if (((t -= a), (u = S(u, o, '0')), o + 1 > s)) { + if (--t > 0) for (u += '.'; t--; u += '0'); + } else if ((t += o - s) > 0) for (o + 1 == s && (u += '.'); t--; u += '0'); + return e.s < 0 && i ? '-' + u : u + } + function W(e, t) { + for (var r, n = 1, i = new q(e[0]); n < e.length; n++) { + if (!(r = new q(e[n])).s) { + i = r + break + } + t.call(i, r) && (i = r) + } + return i + } + function G(e, t, r) { + for (var n = 1, i = t.length; !t[--i]; t.pop()); + for (i = t[0]; i >= 10; i /= 10, n++); + return ((r = n + r * d - 1) > C ? (e.c = e.e = null) : r < D ? (e.c = [(e.e = 0)]) : ((e.e = r), (e.c = t)), e) + } + function Y(e, t, r, n) { + var i, + o, + a, + c, + f, + h, + y, + g = e.c, + b = p + if (g) { + e: { + for (i = 1, c = g[0]; c >= 10; c /= 10, i++); + if ((o = t - i) < 0) ((o += d), (a = t), (y = (((f = g[(h = 0)]) / b[i - a - 1]) % 10) | 0)) + else if ((h = s((o + 1) / d)) >= g.length) { + if (!n) break e + for (; g.length <= h; g.push(0)); + ;((f = y = 0), (i = 1), (a = (o %= d) - d + 1)) + } else { + for (f = c = g[h], i = 1; c >= 10; c /= 10, i++); + y = (a = (o %= d) - d + i) < 0 ? 0 : ((f / b[i - a - 1]) % 10) | 0 + } + if ( + ((n = n || t < 0 || null != g[h + 1] || (a < 0 ? f : f % b[i - a - 1])), + (n = + r < 4 + ? (y || n) && (0 == r || r == (e.s < 0 ? 3 : 2)) + : y > 5 || + (5 == y && + (4 == r || n || (6 == r && ((o > 0 ? (a > 0 ? f / b[i - a] : 0) : g[h - 1]) % 10) & 1) || r == (e.s < 0 ? 8 : 7)))), + t < 1 || !g[0]) + ) + return ((g.length = 0), n ? ((t -= e.e + 1), (g[0] = b[(d - (t % d)) % d]), (e.e = -t || 0)) : (g[0] = e.e = 0), e) + if ( + (0 == o + ? ((g.length = h), (c = 1), h--) + : ((g.length = h + 1), (c = b[d - o]), (g[h] = a > 0 ? u((f / b[i - a]) % b[a]) * c : 0)), + n) + ) + for (;;) { + if (0 == h) { + for (o = 1, a = g[0]; a >= 10; a /= 10, o++); + for (a = g[0] += c, c = 1; a >= 10; a /= 10, c++); + o != c && (e.e++, g[0] == l && (g[0] = 1)) + break + } + if (((g[h] += c), g[h] != l)) break + ;((g[h--] = 0), (c = 1)) + } + for (o = g.length; 0 === g[--o]; g.pop()); + } + e.e > C ? (e.c = e.e = null) : e.e < D && (e.c = [(e.e = 0)]) + } + return e + } + function $(e) { + var t, + r = e.e + return null === r ? e.toString() : ((t = m(e.c)), (t = r <= P || r >= B ? E(t, r) : S(t, r, '0')), e.s < 0 ? '-' + t : t) + } + return ( + (q.clone = e), + (q.ROUND_UP = 0), + (q.ROUND_DOWN = 1), + (q.ROUND_CEIL = 2), + (q.ROUND_FLOOR = 3), + (q.ROUND_HALF_UP = 4), + (q.ROUND_HALF_DOWN = 5), + (q.ROUND_HALF_EVEN = 6), + (q.ROUND_HALF_CEIL = 7), + (q.ROUND_HALF_FLOOR = 8), + (q.EUCLID = 9), + (q.config = q.set = + function (e) { + var t, r + if (null != e) { + if ('object' != typeof e) throw Error(c + 'Object expected: ' + e) + if ( + (e.hasOwnProperty((t = 'DECIMAL_PLACES')) && (w((r = e[t]), 0, g, t), (k = r)), + e.hasOwnProperty((t = 'ROUNDING_MODE')) && (w((r = e[t]), 0, 8, t), (R = r)), + e.hasOwnProperty((t = 'EXPONENTIAL_AT')) && + ((r = e[t]) && r.pop + ? (w(r[0], -g, 0, t), w(r[1], 0, g, t), (P = r[0]), (B = r[1])) + : (w(r, -g, g, t), (P = -(B = r < 0 ? -r : r)))), + e.hasOwnProperty((t = 'RANGE'))) + ) + if ((r = e[t]) && r.pop) (w(r[0], -g, -1, t), w(r[1], 1, g, t), (D = r[0]), (C = r[1])) + else { + if ((w(r, -g, g, t), !r)) throw Error(c + t + ' cannot be zero: ' + r) + D = -(C = r < 0 ? -r : r) + } + if (e.hasOwnProperty((t = 'CRYPTO'))) { + if ((r = e[t]) !== !!r) throw Error(c + t + ' not true or false: ' + r) + if (r) { + if ('undefined' == typeof crypto || !crypto || (!crypto.getRandomValues && !crypto.randomBytes)) + throw ((j = !r), Error(c + 'crypto unavailable')) + j = r + } else j = r + } + if ( + (e.hasOwnProperty((t = 'MODULO_MODE')) && (w((r = e[t]), 0, 9, t), (F = r)), + e.hasOwnProperty((t = 'POW_PRECISION')) && (w((r = e[t]), 0, g, t), (U = r)), + e.hasOwnProperty((t = 'FORMAT'))) + ) { + if ('object' != typeof (r = e[t])) throw Error(c + t + ' not an object: ' + r) + V = r + } + if (e.hasOwnProperty((t = 'ALPHABET'))) { + if ('string' != typeof (r = e[t]) || /^.?$|[+\-.\s]|(.).*\1/.test(r)) throw Error(c + t + ' invalid: ' + r) + ;((z = '0123456789' == r.slice(0, 10)), (H = r)) + } + } + return { + DECIMAL_PLACES: k, + ROUNDING_MODE: R, + EXPONENTIAL_AT: [P, B], + RANGE: [D, C], + CRYPTO: j, + MODULO_MODE: F, + POW_PRECISION: U, + FORMAT: V, + ALPHABET: H, + } + }), + (q.isBigNumber = function (e) { + if (!e || !0 !== e._isBigNumber) return !1 + if (!q.DEBUG) return !0 + var t, + r, + n = e.c, + i = e.e, + o = e.s + e: if ('[object Array]' == {}.toString.call(n)) { + if ((1 === o || -1 === o) && i >= -g && i <= g && i === u(i)) { + if (0 === n[0]) { + if (0 === i && 1 === n.length) return !0 + break e + } + if (((t = (i + 1) % d) < 1 && (t += d), String(n[0]).length == t)) { + for (t = 0; t < n.length; t++) if ((r = n[t]) < 0 || r >= l || r !== u(r)) break e + if (0 !== r) return !0 + } + } + } else if (null === n && null === i && (null === o || 1 === o || -1 === o)) return !0 + throw Error(c + 'Invalid BigNumber: ' + e) + }), + (q.maximum = q.max = + function () { + return W(arguments, x.lt) + }), + (q.minimum = q.min = + function () { + return W(arguments, x.gt) + }), + (q.random = + ((o = 9007199254740992), + (A = + (Math.random() * o) & 2097151 + ? function () { + return u(Math.random() * o) + } + : function () { + return 8388608 * ((1073741824 * Math.random()) | 0) + ((8388608 * Math.random()) | 0) + }), + function (e) { + var t, + r, + n, + i, + o, + a = 0, + f = [], + l = new q(L) + if ((null == e ? (e = k) : w(e, 0, g), (i = s(e / d)), j)) + if (crypto.getRandomValues) { + for (t = crypto.getRandomValues(new Uint32Array((i *= 2))); a < i; ) + (o = 131072 * t[a] + (t[a + 1] >>> 11)) >= 9e15 + ? ((r = crypto.getRandomValues(new Uint32Array(2))), (t[a] = r[0]), (t[a + 1] = r[1])) + : (f.push(o % 1e14), (a += 2)) + a = i / 2 + } else { + if (!crypto.randomBytes) throw ((j = !1), Error(c + 'crypto unavailable')) + for (t = crypto.randomBytes((i *= 7)); a < i; ) + (o = + 281474976710656 * (31 & t[a]) + + 1099511627776 * t[a + 1] + + 4294967296 * t[a + 2] + + 16777216 * t[a + 3] + + (t[a + 4] << 16) + + (t[a + 5] << 8) + + t[a + 6]) >= 9e15 + ? crypto.randomBytes(7).copy(t, a) + : (f.push(o % 1e14), (a += 7)) + a = i / 7 + } + if (!j) for (; a < i; ) (o = A()) < 9e15 && (f[a++] = o % 1e14) + for (i = f[--a], e %= d, i && e && ((o = p[d - e]), (f[a] = u(i / o) * o)); 0 === f[a]; f.pop(), a--); + if (a < 0) f = [(n = 0)] + else { + for (n = -1; 0 === f[0]; f.splice(0, 1), n -= d); + for (a = 1, o = f[0]; o >= 10; o /= 10, a++); + a < d && (n -= d - a) + } + return ((l.e = n), (l.c = f), l) + })), + (q.sum = function () { + for (var e = 1, t = arguments, r = new q(t[0]); e < t.length; ) r = r.plus(t[e++]) + return r + }), + (n = (function () { + var e = '0123456789' + function t(e, t, r, n) { + for (var i, o, a = [0], s = 0, u = e.length; s < u; ) { + for (o = a.length; o--; a[o] *= t); + for (a[0] += n.indexOf(e.charAt(s++)), i = 0; i < a.length; i++) + a[i] > r - 1 && (null == a[i + 1] && (a[i + 1] = 0), (a[i + 1] += (a[i] / r) | 0), (a[i] %= r)) + } + return a.reverse() + } + return function (n, i, o, a, s) { + var u, + c, + f, + l, + d, + h, + p, + y, + g = n.indexOf('.'), + b = k, + v = R + for ( + g >= 0 && + ((l = U), + (U = 0), + (n = n.replace('.', '')), + (h = (y = new q(i)).pow(n.length - g)), + (U = l), + (y.c = t(S(m(h.c), h.e, '0'), 10, o, e)), + (y.e = y.c.length)), + f = l = (p = t(n, i, o, s ? ((u = H), e) : ((u = e), H))).length; + 0 == p[--l]; + p.pop() + ); + if (!p[0]) return u.charAt(0) + if ( + (g < 0 ? --f : ((h.c = p), (h.e = f), (h.s = a), (p = (h = r(h, y, b, v, o)).c), (d = h.r), (f = h.e)), + (g = p[(c = f + b + 1)]), + (l = o / 2), + (d = d || c < 0 || null != p[c + 1]), + (d = + v < 4 + ? (null != g || d) && (0 == v || v == (h.s < 0 ? 3 : 2)) + : g > l || (g == l && (4 == v || d || (6 == v && 1 & p[c - 1]) || v == (h.s < 0 ? 8 : 7)))), + c < 1 || !p[0]) + ) + n = d ? S(u.charAt(1), -b, u.charAt(0)) : u.charAt(0) + else { + if (((p.length = c), d)) for (--o; ++p[--c] > o; ) ((p[c] = 0), c || (++f, (p = [1].concat(p)))) + for (l = p.length; !p[--l]; ); + for (g = 0, n = ''; g <= l; n += u.charAt(p[g++])); + n = S(n, f, u.charAt(0)) + } + return n + } + })()), + (r = (function () { + function e(e, t, r) { + var n, + i, + o, + a, + s = 0, + u = e.length, + c = t % y, + f = (t / y) | 0 + for (e = e.slice(); u--; ) + ((s = (((i = c * (o = e[u] % y) + ((n = f * o + (a = (e[u] / y) | 0) * c) % y) * y + s) / r) | 0) + ((n / y) | 0) + f * a), + (e[u] = i % r)) + return (s && (e = [s].concat(e)), e) + } + function t(e, t, r, n) { + var i, o + if (r != n) o = r > n ? 1 : -1 + else + for (i = o = 0; i < r; i++) + if (e[i] != t[i]) { + o = e[i] > t[i] ? 1 : -1 + break + } + return o + } + function r(e, t, r, n) { + for (var i = 0; r--; ) ((e[r] -= i), (i = e[r] < t[r] ? 1 : 0), (e[r] = i * n + e[r] - t[r])) + for (; !e[0] && e.length > 1; e.splice(0, 1)); + } + return function (n, i, o, a, s) { + var c, + f, + h, + p, + y, + g, + m, + v, + w, + _, + E, + S, + A, + O, + M, + T, + I, + N = n.s == i.s ? 1 : -1, + x = n.c, + L = i.c + if (!(x && x[0] && L && L[0])) + return new q(n.s && i.s && (x ? !L || x[0] != L[0] : L) ? ((x && 0 == x[0]) || !L ? 0 * N : N / 0) : NaN) + for ( + w = (v = new q(N)).c = [], N = o + (f = n.e - i.e) + 1, s || ((s = l), (f = b(n.e / d) - b(i.e / d)), (N = (N / d) | 0)), h = 0; + L[h] == (x[h] || 0); + h++ + ); + if ((L[h] > (x[h] || 0) && f--, N < 0)) (w.push(1), (p = !0)) + else { + for ( + O = x.length, + T = L.length, + h = 0, + N += 2, + (y = u(s / (L[0] + 1))) > 1 && ((L = e(L, y, s)), (x = e(x, y, s)), (T = L.length), (O = x.length)), + A = T, + E = (_ = x.slice(0, T)).length; + E < T; + _[E++] = 0 + ); + ;((I = L.slice()), (I = [0].concat(I)), (M = L[0]), L[1] >= s / 2 && M++) + do { + if (((y = 0), (c = t(L, _, T, E)) < 0)) { + if (((S = _[0]), T != E && (S = S * s + (_[1] || 0)), (y = u(S / M)) > 1)) + for (y >= s && (y = s - 1), m = (g = e(L, y, s)).length, E = _.length; 1 == t(g, _, m, E); ) + (y--, r(g, T < m ? I : L, m, s), (m = g.length), (c = 1)) + else (0 == y && (c = y = 1), (m = (g = L.slice()).length)) + if ((m < E && (g = [0].concat(g)), r(_, g, E, s), (E = _.length), -1 == c)) + for (; t(L, _, T, E) < 1; ) (y++, r(_, T < E ? I : L, E, s), (E = _.length)) + } else 0 === c && (y++, (_ = [0])) + ;((w[h++] = y), _[0] ? (_[E++] = x[A] || 0) : ((_ = [x[A]]), (E = 1))) + } while ((A++ < O || null != _[0]) && N--) + ;((p = null != _[0]), w[0] || w.splice(0, 1)) + } + if (s == l) { + for (h = 1, N = w[0]; N >= 10; N /= 10, h++); + Y(v, o + (v.e = h + f * d - 1) + 1, a, p) + } else ((v.e = f), (v.r = +p)) + return v + } + })()), + (O = /^(-?)0([xbo])(?=\w[\w.]*$)/i), + (M = /^([^.]+)\.$/), + (T = /^\.([^.]+)$/), + (I = /^-?(Infinity|NaN)$/), + (N = /^\s*\+(?=[\w.])|^\s+|\s+$/g), + (i = function (e, t, r, n) { + var i, + o = r ? t : t.replace(N, '') + if (I.test(o)) e.s = isNaN(o) ? null : o < 0 ? -1 : 1 + else { + if ( + !r && + ((o = o.replace(O, function (e, t, r) { + return ((i = 'x' == (r = r.toLowerCase()) ? 16 : 'b' == r ? 2 : 8), n && n != i ? e : t) + })), + n && ((i = n), (o = o.replace(M, '$1').replace(T, '0.$1'))), + t != o) + ) + return new q(o, i) + if (q.DEBUG) throw Error(c + 'Not a' + (n ? ' base ' + n : '') + ' number: ' + t) + e.s = null + } + e.c = e.e = null + }), + (x.absoluteValue = x.abs = + function () { + var e = new q(this) + return (e.s < 0 && (e.s = 1), e) + }), + (x.comparedTo = function (e, t) { + return v(this, new q(e, t)) + }), + (x.decimalPlaces = x.dp = + function (e, t) { + var r, + n, + i, + o = this + if (null != e) return (w(e, 0, g), null == t ? (t = R) : w(t, 0, 8), Y(new q(o), e + o.e + 1, t)) + if (!(r = o.c)) return null + if (((n = ((i = r.length - 1) - b(this.e / d)) * d), (i = r[i]))) for (; i % 10 == 0; i /= 10, n--); + return (n < 0 && (n = 0), n) + }), + (x.dividedBy = x.div = + function (e, t) { + return r(this, new q(e, t), k, R) + }), + (x.dividedToIntegerBy = x.idiv = + function (e, t) { + return r(this, new q(e, t), 0, 1) + }), + (x.exponentiatedBy = x.pow = + function (e, t) { + var r, + n, + i, + o, + a, + f, + l, + h, + p = this + if ((e = new q(e)).c && !e.isInteger()) throw Error(c + 'Exponent not an integer: ' + $(e)) + if ((null != t && (t = new q(t)), (a = e.e > 14), !p.c || !p.c[0] || (1 == p.c[0] && !p.e && 1 == p.c.length) || !e.c || !e.c[0])) + return ((h = new q(Math.pow(+$(p), a ? e.s * (2 - _(e)) : +$(e)))), t ? h.mod(t) : h) + if (((f = e.s < 0), t)) { + if (t.c ? !t.c[0] : !t.s) return new q(NaN) + ;(n = !f && p.isInteger() && t.isInteger()) && (p = p.mod(t)) + } else { + if ( + e.e > 9 && + (p.e > 0 || p.e < -1 || (0 == p.e ? p.c[0] > 1 || (a && p.c[1] >= 24e7) : p.c[0] < 8e13 || (a && p.c[0] <= 9999975e7))) + ) + return ((o = p.s < 0 && _(e) ? -0 : 0), p.e > -1 && (o = 1 / o), new q(f ? 1 / o : o)) + U && (o = s(U / d + 2)) + } + for (a ? ((r = new q(0.5)), f && (e.s = 1), (l = _(e))) : (l = (i = Math.abs(+$(e))) % 2), h = new q(L); ; ) { + if (l) { + if (!(h = h.times(p)).c) break + o ? h.c.length > o && (h.c.length = o) : n && (h = h.mod(t)) + } + if (i) { + if (0 === (i = u(i / 2))) break + l = i % 2 + } else if ((Y((e = e.times(r)), e.e + 1, 1), e.e > 14)) l = _(e) + else { + if (0 == (i = +$(e))) break + l = i % 2 + } + ;((p = p.times(p)), o ? p.c && p.c.length > o && (p.c.length = o) : n && (p = p.mod(t))) + } + return n ? h : (f && (h = L.div(h)), t ? h.mod(t) : o ? Y(h, U, R, void 0) : h) + }), + (x.integerValue = function (e) { + var t = new q(this) + return (null == e ? (e = R) : w(e, 0, 8), Y(t, t.e + 1, e)) + }), + (x.isEqualTo = x.eq = + function (e, t) { + return 0 === v(this, new q(e, t)) + }), + (x.isFinite = function () { + return !!this.c + }), + (x.isGreaterThan = x.gt = + function (e, t) { + return v(this, new q(e, t)) > 0 + }), + (x.isGreaterThanOrEqualTo = x.gte = + function (e, t) { + return 1 === (t = v(this, new q(e, t))) || 0 === t + }), + (x.isInteger = function () { + return !!this.c && b(this.e / d) > this.c.length - 2 + }), + (x.isLessThan = x.lt = + function (e, t) { + return v(this, new q(e, t)) < 0 + }), + (x.isLessThanOrEqualTo = x.lte = + function (e, t) { + return -1 === (t = v(this, new q(e, t))) || 0 === t + }), + (x.isNaN = function () { + return !this.s + }), + (x.isNegative = function () { + return this.s < 0 + }), + (x.isPositive = function () { + return this.s > 0 + }), + (x.isZero = function () { + return !!this.c && 0 == this.c[0] + }), + (x.minus = function (e, t) { + var r, + n, + i, + o, + a = this, + s = a.s + if (((t = (e = new q(e, t)).s), !s || !t)) return new q(NaN) + if (s != t) return ((e.s = -t), a.plus(e)) + var u = a.e / d, + c = e.e / d, + f = a.c, + h = e.c + if (!u || !c) { + if (!f || !h) return f ? ((e.s = -t), e) : new q(h ? a : NaN) + if (!f[0] || !h[0]) return h[0] ? ((e.s = -t), e) : new q(f[0] ? a : 3 == R ? -0 : 0) + } + if (((u = b(u)), (c = b(c)), (f = f.slice()), (s = u - c))) { + for ((o = s < 0) ? ((s = -s), (i = f)) : ((c = u), (i = h)), i.reverse(), t = s; t--; i.push(0)); + i.reverse() + } else + for (n = (o = (s = f.length) < (t = h.length)) ? s : t, s = t = 0; t < n; t++) + if (f[t] != h[t]) { + o = f[t] < h[t] + break + } + if ((o && ((i = f), (f = h), (h = i), (e.s = -e.s)), (t = (n = h.length) - (r = f.length)) > 0)) for (; t--; f[r++] = 0); + for (t = l - 1; n > s; ) { + if (f[--n] < h[n]) { + for (r = n; r && !f[--r]; f[r] = t); + ;(--f[r], (f[n] += l)) + } + f[n] -= h[n] + } + for (; 0 == f[0]; f.splice(0, 1), --c); + return f[0] ? G(e, f, c) : ((e.s = 3 == R ? -1 : 1), (e.c = [(e.e = 0)]), e) + }), + (x.modulo = x.mod = + function (e, t) { + var n, + i, + o = this + return ( + (e = new q(e, t)), + !o.c || !e.s || (e.c && !e.c[0]) + ? new q(NaN) + : !e.c || (o.c && !o.c[0]) + ? new q(o) + : (9 == F ? ((i = e.s), (e.s = 1), (n = r(o, e, 0, 3)), (e.s = i), (n.s *= i)) : (n = r(o, e, 0, F)), + (e = o.minus(n.times(e))).c[0] || 1 != F || (e.s = o.s), + e) + ) + }), + (x.multipliedBy = x.times = + function (e, t) { + var r, + n, + i, + o, + a, + s, + u, + c, + f, + h, + p, + g, + m, + v, + w, + _ = this, + E = _.c, + S = (e = new q(e, t)).c + if (!(E && S && E[0] && S[0])) + return ( + !_.s || !e.s || (E && !E[0] && !S) || (S && !S[0] && !E) + ? (e.c = e.e = e.s = null) + : ((e.s *= _.s), E && S ? ((e.c = [0]), (e.e = 0)) : (e.c = e.e = null)), + e + ) + for ( + n = b(_.e / d) + b(e.e / d), + e.s *= _.s, + (u = E.length) < (h = S.length) && ((m = E), (E = S), (S = m), (i = u), (u = h), (h = i)), + i = u + h, + m = []; + i--; + m.push(0) + ); + for (v = l, w = y, i = h; --i >= 0; ) { + for (r = 0, p = S[i] % w, g = (S[i] / w) | 0, o = i + (a = u); o > i; ) + ((r = + (((c = p * (c = E[--a] % w) + ((s = g * c + (f = (E[a] / w) | 0) * p) % w) * w + m[o] + r) / v) | 0) + ((s / w) | 0) + g * f), + (m[o--] = c % v)) + m[o] = r + } + return (r ? ++n : m.splice(0, 1), G(e, m, n)) + }), + (x.negated = function () { + var e = new q(this) + return ((e.s = -e.s || null), e) + }), + (x.plus = function (e, t) { + var r, + n = this, + i = n.s + if (((t = (e = new q(e, t)).s), !i || !t)) return new q(NaN) + if (i != t) return ((e.s = -t), n.minus(e)) + var o = n.e / d, + a = e.e / d, + s = n.c, + u = e.c + if (!o || !a) { + if (!s || !u) return new q(i / 0) + if (!s[0] || !u[0]) return u[0] ? e : new q(s[0] ? n : 0 * i) + } + if (((o = b(o)), (a = b(a)), (s = s.slice()), (i = o - a))) { + for (i > 0 ? ((a = o), (r = u)) : ((i = -i), (r = s)), r.reverse(); i--; r.push(0)); + r.reverse() + } + for ((i = s.length) - (t = u.length) < 0 && ((r = u), (u = s), (s = r), (t = i)), i = 0; t; ) + ((i = ((s[--t] = s[t] + u[t] + i) / l) | 0), (s[t] = l === s[t] ? 0 : s[t] % l)) + return (i && ((s = [i].concat(s)), ++a), G(e, s, a)) + }), + (x.precision = x.sd = + function (e, t) { + var r, + n, + i, + o = this + if (null != e && e !== !!e) return (w(e, 1, g), null == t ? (t = R) : w(t, 0, 8), Y(new q(o), e, t)) + if (!(r = o.c)) return null + if (((n = (i = r.length - 1) * d + 1), (i = r[i]))) { + for (; i % 10 == 0; i /= 10, n--); + for (i = r[0]; i >= 10; i /= 10, n++); + } + return (e && o.e + 1 > n && (n = o.e + 1), n) + }), + (x.shiftedBy = function (e) { + return (w(e, -9007199254740991, h), this.times('1e' + e)) + }), + (x.squareRoot = x.sqrt = + function () { + var e, + t, + n, + i, + o, + a = this, + s = a.c, + u = a.s, + c = a.e, + f = k + 4, + l = new q('0.5') + if (1 !== u || !s || !s[0]) return new q(!u || (u < 0 && (!s || s[0])) ? NaN : s ? a : 1 / 0) + if ( + (0 == (u = Math.sqrt(+$(a))) || u == 1 / 0 + ? (((t = m(s)).length + c) % 2 == 0 && (t += '0'), + (u = Math.sqrt(+t)), + (c = b((c + 1) / 2) - (c < 0 || c % 2)), + (n = new q((t = u == 1 / 0 ? '5e' + c : (t = u.toExponential()).slice(0, t.indexOf('e') + 1) + c)))) + : (n = new q(u + '')), + n.c[0]) + ) + for ((u = (c = n.e) + f) < 3 && (u = 0); ; ) + if (((o = n), (n = l.times(o.plus(r(a, o, f, 1)))), m(o.c).slice(0, u) === (t = m(n.c)).slice(0, u))) { + if ((n.e < c && --u, '9999' != (t = t.slice(u - 3, u + 1)) && (i || '4999' != t))) { + ;(+t && (+t.slice(1) || '5' != t.charAt(0))) || (Y(n, n.e + k + 2, 1), (e = !n.times(n).eq(a))) + break + } + if (!i && (Y(o, o.e + k + 2, 0), o.times(o).eq(a))) { + n = o + break + } + ;((f += 4), (u += 4), (i = 1)) + } + return Y(n, n.e + k + 1, R, e) + }), + (x.toExponential = function (e, t) { + return (null != e && (w(e, 0, g), e++), K(this, e, t, 1)) + }), + (x.toFixed = function (e, t) { + return (null != e && (w(e, 0, g), (e = e + this.e + 1)), K(this, e, t)) + }), + (x.toFormat = function (e, t, r) { + var n, + i = this + if (null == r) + null != e && t && 'object' == typeof t ? ((r = t), (t = null)) : e && 'object' == typeof e ? ((r = e), (e = t = null)) : (r = V) + else if ('object' != typeof r) throw Error(c + 'Argument not an object: ' + r) + if (((n = i.toFixed(e, t)), i.c)) { + var o, + a = n.split('.'), + s = +r.groupSize, + u = +r.secondaryGroupSize, + f = r.groupSeparator || '', + l = a[0], + d = a[1], + h = i.s < 0, + p = h ? l.slice(1) : l, + y = p.length + if ((u && ((o = s), (s = u), (u = o), (y -= o)), s > 0 && y > 0)) { + for (o = y % s || s, l = p.substr(0, o); o < y; o += s) l += f + p.substr(o, s) + ;(u > 0 && (l += f + p.slice(o)), h && (l = '-' + l)) + } + n = d + ? l + + (r.decimalSeparator || '') + + ((u = +r.fractionGroupSize) ? d.replace(new RegExp('\\d{' + u + '}\\B', 'g'), '$&' + (r.fractionGroupSeparator || '')) : d) + : l + } + return (r.prefix || '') + n + (r.suffix || '') + }), + (x.toFraction = function (e) { + var t, + n, + i, + o, + a, + s, + u, + f, + l, + h, + y, + g, + b = this, + v = b.c + if (null != e && ((!(u = new q(e)).isInteger() && (u.c || 1 !== u.s)) || u.lt(L))) + throw Error(c + 'Argument ' + (u.isInteger() ? 'out of range: ' : 'not an integer: ') + $(u)) + if (!v) return new q(b) + for ( + t = new q(L), + l = n = new q(L), + i = f = new q(L), + g = m(v), + a = t.e = g.length - b.e - 1, + t.c[0] = p[(s = a % d) < 0 ? d + s : s], + e = !e || u.comparedTo(t) > 0 ? (a > 0 ? t : l) : u, + s = C, + C = 1 / 0, + u = new q(g), + f.c[0] = 0; + (h = r(u, t, 0, 1)), 1 != (o = n.plus(h.times(i))).comparedTo(e); + ) + ((n = i), (i = o), (l = f.plus(h.times((o = l)))), (f = o), (t = u.minus(h.times((o = t)))), (u = o)) + return ( + (o = r(e.minus(n), i, 0, 1)), + (f = f.plus(o.times(l))), + (n = n.plus(o.times(i))), + (f.s = l.s = b.s), + (y = + r(l, i, (a *= 2), R) + .minus(b) + .abs() + .comparedTo(r(f, n, a, R).minus(b).abs()) < 1 + ? [l, i] + : [f, n]), + (C = s), + y + ) + }), + (x.toNumber = function () { + return +$(this) + }), + (x.toPrecision = function (e, t) { + return (null != e && w(e, 1, g), K(this, e, t, 2)) + }), + (x.toString = function (e) { + var t, + r = this, + i = r.s, + o = r.e + return ( + null === o + ? i + ? ((t = 'Infinity'), i < 0 && (t = '-' + t)) + : (t = 'NaN') + : (null == e + ? (t = o <= P || o >= B ? E(m(r.c), o) : S(m(r.c), o, '0')) + : 10 === e && z + ? (t = S(m((r = Y(new q(r), k + o + 1, R)).c), r.e, '0')) + : (w(e, 2, H.length, 'Base'), (t = n(S(m(r.c), o, '0'), 10, e, i, !0))), + i < 0 && r.c[0] && (t = '-' + t)), + t + ) + }), + (x.valueOf = x.toJSON = + function () { + return $(this) + }), + (x._isBigNumber = !0), + null != t && q.set(t), + q + ) + })()), + (o.default = o.BigNumber = o), + void 0 === + (n = function () { + return o + }.call(t, r, t, e)) || (e.exports = n)) + })() + }, + 47932: (e, t, r) => { + 'use strict' + var n = r(18390).Buffer + Object.defineProperty(t, '__esModule', { value: !0 }) + const i = r(68482), + o = r(84948), + a = r(41058), + s = r(22420), + u = r(71150), + c = s.BufferN(32), + f = s.compile({ wif: s.UInt8, bip32: { public: s.UInt32, private: s.UInt32 } }), + l = { + messagePrefix: 'Bitcoin Signed Message:\n', + bech32: 'bc', + bip32: { public: 76067358, private: 76066276 }, + pubKeyHash: 0, + scriptHash: 5, + wif: 128, + }, + d = 2147483648, + h = Math.pow(2, 31) - 1 + function p(e) { + return s.String(e) && null !== e.match(/^(m\/)?(\d+'?\/)*\d+'?$/) + } + function y(e) { + return s.UInt32(e) && e <= h + } + class g { + constructor(e, t, r, n, i = 0, o = 0, a = 0) { + ;((this.__D = e), + (this.__Q = t), + (this.chainCode = r), + (this.network = n), + (this.__DEPTH = i), + (this.__INDEX = o), + (this.__PARENT_FINGERPRINT = a), + s(f, n), + (this.lowR = !1)) + } + get depth() { + return this.__DEPTH + } + get index() { + return this.__INDEX + } + get parentFingerprint() { + return this.__PARENT_FINGERPRINT + } + get publicKey() { + return (void 0 === this.__Q && (this.__Q = a.pointFromScalar(this.__D, !0)), this.__Q) + } + get privateKey() { + return this.__D + } + get identifier() { + return i.hash160(this.publicKey) + } + get fingerprint() { + return this.identifier.slice(0, 4) + } + get compressed() { + return !0 + } + isNeutered() { + return void 0 === this.__D + } + neutered() { + return v(this.publicKey, this.chainCode, this.network, this.depth, this.index, this.parentFingerprint) + } + toBase58() { + const e = this.network, + t = this.isNeutered() ? e.bip32.public : e.bip32.private, + r = n.allocUnsafe(78) + return ( + r.writeUInt32BE(t, 0), + r.writeUInt8(this.depth, 4), + r.writeUInt32BE(this.parentFingerprint, 5), + r.writeUInt32BE(this.index, 9), + this.chainCode.copy(r, 13), + this.isNeutered() ? this.publicKey.copy(r, 45) : (r.writeUInt8(0, 45), this.privateKey.copy(r, 46)), + o.encode(r) + ) + } + toWIF() { + if (!this.privateKey) throw new TypeError('Missing private key') + return u.encode(this.network.wif, this.privateKey, !0) + } + derive(e) { + s(s.UInt32, e) + const t = e >= d, + r = n.allocUnsafe(37) + if (t) { + if (this.isNeutered()) throw new TypeError('Missing private key for hardened child key') + ;((r[0] = 0), this.privateKey.copy(r, 1), r.writeUInt32BE(e, 33)) + } else (this.publicKey.copy(r, 0), r.writeUInt32BE(e, 33)) + const o = i.hmacSHA512(this.chainCode, r), + u = o.slice(0, 32), + c = o.slice(32) + if (!a.isPrivate(u)) return this.derive(e + 1) + let f + if (this.isNeutered()) { + const t = a.pointAddScalar(this.publicKey, u, !0) + if (null === t) return this.derive(e + 1) + f = v(t, c, this.network, this.depth + 1, e, this.fingerprint.readUInt32BE(0)) + } else { + const t = a.privateAdd(this.privateKey, u) + if (null == t) return this.derive(e + 1) + f = m(t, c, this.network, this.depth + 1, e, this.fingerprint.readUInt32BE(0)) + } + return f + } + deriveHardened(e) { + return (s(y, e), this.derive(e + d)) + } + derivePath(e) { + s(p, e) + let t = e.split('/') + if ('m' === t[0]) { + if (this.parentFingerprint) throw new TypeError('Expected master, got child') + t = t.slice(1) + } + return t.reduce((e, t) => { + let r + return "'" === t.slice(-1) ? ((r = parseInt(t.slice(0, -1), 10)), e.deriveHardened(r)) : ((r = parseInt(t, 10)), e.derive(r)) + }, this) + } + sign(e, t) { + if (!this.privateKey) throw new Error('Missing private key') + if ((void 0 === t && (t = this.lowR), !1 === t)) return a.sign(e, this.privateKey) + { + let t = a.sign(e, this.privateKey) + const r = n.alloc(32, 0) + let i = 0 + for (; t[0] > 127; ) (i++, r.writeUIntLE(i, 0, 6), (t = a.signWithEntropy(e, this.privateKey, r))) + return t + } + } + verify(e, t) { + return a.verify(e, this.publicKey, t) + } + } + function b(e, t, r) { + return m(e, t, r) + } + function m(e, t, r, n, i, o) { + if ((s({ privateKey: c, chainCode: c }, { privateKey: e, chainCode: t }), (r = r || l), !a.isPrivate(e))) + throw new TypeError('Private key not in range [1, n)') + return new g(e, void 0, t, r, n, i, o) + } + function v(e, t, r, n, i, o) { + if ((s({ publicKey: s.BufferN(33), chainCode: c }, { publicKey: e, chainCode: t }), (r = r || l), !a.isPoint(e))) + throw new TypeError('Point is not on the curve') + return new g(void 0, e, t, r, n, i, o) + } + ;((t.fromBase58 = function (e, t) { + const r = o.decode(e) + if (78 !== r.length) throw new TypeError('Invalid buffer length') + t = t || l + const n = r.readUInt32BE(0) + if (n !== t.bip32.private && n !== t.bip32.public) throw new TypeError('Invalid network version') + const i = r[4], + a = r.readUInt32BE(5) + if (0 === i && 0 !== a) throw new TypeError('Invalid parent fingerprint') + const s = r.readUInt32BE(9) + if (0 === i && 0 !== s) throw new TypeError('Invalid index') + const u = r.slice(13, 45) + let c + if (n === t.bip32.private) { + if (0 !== r.readUInt8(45)) throw new TypeError('Invalid private key') + c = m(r.slice(46, 78), u, t, i, s, a) + } else c = v(r.slice(45, 78), u, t, i, s, a) + return c + }), + (t.fromPrivateKey = b), + (t.fromPublicKey = function (e, t, r) { + return v(e, t, r) + }), + (t.fromSeed = function (e, t) { + if ((s(s.Buffer, e), e.length < 16)) throw new TypeError('Seed should be at least 128 bits') + if (e.length > 64) throw new TypeError('Seed should be at most 512 bits') + t = t || l + const r = i.hmacSHA512(n.from('Bitcoin seed', 'utf8'), e) + return b(r.slice(0, 32), r.slice(32), t) + })) + }, + 68482: (e, t, r) => { + 'use strict' + Object.defineProperty(t, '__esModule', { value: !0 }) + const n = r(50637), + i = r(18451) + ;((t.hash160 = function (e) { + const t = n('sha256').update(e).digest() + try { + return n('rmd160').update(t).digest() + } catch (e) { + return n('ripemd160').update(t).digest() + } + }), + (t.hmacSHA512 = function (e, t) { + return i('sha512', e).update(t).digest() + })) + }, + 84973: (e, t, r) => { + 'use strict' + Object.defineProperty(t, '__esModule', { value: !0 }) + var n = r(47932) + ;((t.fromSeed = n.fromSeed), (t.fromBase58 = n.fromBase58), (t.fromPublicKey = n.fromPublicKey), (t.fromPrivateKey = n.fromPrivateKey)) + }, + 7042: (e, t, r) => { + 'use strict' + Object.defineProperty(t, '__esModule', { value: !0 }) + const n = {} + let i + ;((t.wordlists = n), (t._default = i)) + try { + ;((t._default = i = + r( + Object( + (function () { + var e = new Error("Cannot find module './wordlists/czech.json'") + throw ((e.code = 'MODULE_NOT_FOUND'), e) + })(), + ), + )), + (n.czech = i)) + } catch (e) {} + try { + ;((t._default = i = + r( + Object( + (function () { + var e = new Error("Cannot find module './wordlists/chinese_simplified.json'") + throw ((e.code = 'MODULE_NOT_FOUND'), e) + })(), + ), + )), + (n.chinese_simplified = i)) + } catch (e) {} + try { + ;((t._default = i = + r( + Object( + (function () { + var e = new Error("Cannot find module './wordlists/chinese_traditional.json'") + throw ((e.code = 'MODULE_NOT_FOUND'), e) + })(), + ), + )), + (n.chinese_traditional = i)) + } catch (e) {} + try { + ;((t._default = i = + r( + Object( + (function () { + var e = new Error("Cannot find module './wordlists/korean.json'") + throw ((e.code = 'MODULE_NOT_FOUND'), e) + })(), + ), + )), + (n.korean = i)) + } catch (e) {} + try { + ;((t._default = i = + r( + Object( + (function () { + var e = new Error("Cannot find module './wordlists/french.json'") + throw ((e.code = 'MODULE_NOT_FOUND'), e) + })(), + ), + )), + (n.french = i)) + } catch (e) {} + try { + ;((t._default = i = + r( + Object( + (function () { + var e = new Error("Cannot find module './wordlists/italian.json'") + throw ((e.code = 'MODULE_NOT_FOUND'), e) + })(), + ), + )), + (n.italian = i)) + } catch (e) {} + try { + ;((t._default = i = + r( + Object( + (function () { + var e = new Error("Cannot find module './wordlists/spanish.json'") + throw ((e.code = 'MODULE_NOT_FOUND'), e) + })(), + ), + )), + (n.spanish = i)) + } catch (e) {} + try { + ;((t._default = i = + r( + Object( + (function () { + var e = new Error("Cannot find module './wordlists/japanese.json'") + throw ((e.code = 'MODULE_NOT_FOUND'), e) + })(), + ), + )), + (n.japanese = i), + (n.JA = i)) + } catch (e) {} + try { + ;((t._default = i = + r( + Object( + (function () { + var e = new Error("Cannot find module './wordlists/portuguese.json'") + throw ((e.code = 'MODULE_NOT_FOUND'), e) + })(), + ), + )), + (n.portuguese = i)) + } catch (e) {} + try { + ;((t._default = i = r(32308)), (n.english = i), (n.EN = i)) + } catch (e) {} + }, + 63399: (e, t, r) => { + 'use strict' + var n = r(18390).Buffer + Object.defineProperty(t, '__esModule', { value: !0 }) + const i = r(37789), + o = r(94391), + a = r(35e3), + s = r(56266), + u = r(7042) + let c = u._default + const f = 'Invalid mnemonic', + l = 'Invalid entropy', + d = 'A wordlist is required but a default could not be found.\nPlease pass a 2048 word array explicitly.' + function h(e) { + return (e || '').normalize('NFKD') + } + function p(e, t, r) { + for (; e.length < r; ) e = t + e + return e + } + function y(e) { + return parseInt(e, 2) + } + function g(e) { + return e.map((e) => p(e.toString(2), '0', 8)).join('') + } + function b(e) { + const t = (8 * e.length) / 32, + r = i.sha256(Uint8Array.from(e)) + return g(Array.from(r)).slice(0, t) + } + function m(e) { + return 'mnemonic' + (e || '') + } + function v(e, t) { + if (!(t = t || c)) throw new Error(d) + const r = h(e).split(' ') + if (r.length % 3 != 0) throw new Error(f) + const i = r + .map((e) => { + const r = t.indexOf(e) + if (-1 === r) throw new Error(f) + return p(r.toString(2), '0', 11) + }) + .join(''), + o = 32 * Math.floor(i.length / 33), + a = i.slice(0, o), + s = i.slice(o), + u = a.match(/(.{1,8})/g).map(y) + if (u.length < 16) throw new Error(l) + if (u.length > 32) throw new Error(l) + if (u.length % 4 != 0) throw new Error(l) + const g = n.from(u) + if (b(g) !== s) throw new Error('Invalid mnemonic checksum') + return g.toString('hex') + } + function w(e, t) { + if ((n.isBuffer(e) || (e = n.from(e, 'hex')), !(t = t || c))) throw new Error(d) + if (e.length < 16) throw new TypeError(l) + if (e.length > 32) throw new TypeError(l) + if (e.length % 4 != 0) throw new TypeError(l) + const r = (g(Array.from(e)) + b(e)).match(/(.{1,11})/g).map((e) => { + const r = y(e) + return t[r] + }) + return 'あいこくしん' === t[0] ? r.join(' ') : r.join(' ') + } + ;((t.mnemonicToSeedSync = function (e, t) { + const r = Uint8Array.from(n.from(h(e), 'utf8')), + i = Uint8Array.from(n.from(m(h(t)), 'utf8')), + s = a.pbkdf2(o.sha512, r, i, { c: 2048, dkLen: 64 }) + return n.from(s) + }), + (t.mnemonicToSeed = function (e, t) { + const r = Uint8Array.from(n.from(h(e), 'utf8')), + i = Uint8Array.from(n.from(m(h(t)), 'utf8')) + return a.pbkdf2Async(o.sha512, r, i, { c: 2048, dkLen: 64 }).then((e) => n.from(e)) + }), + (t.mnemonicToEntropy = v), + (t.entropyToMnemonic = w), + (t.generateMnemonic = function (e, t, r) { + if ((e = e || 128) % 32 != 0) throw new TypeError(l) + return w((t = t || ((e) => n.from(s.randomBytes(e))))(e / 8), r) + }), + (t.validateMnemonic = function (e, t) { + try { + v(e, t) + } catch (e) { + return !1 + } + return !0 + }), + (t.setDefaultWordlist = function (e) { + const t = u.wordlists[e] + if (!t) throw new Error('Could not find wordlist for language "' + e + '"') + c = t + }), + (t.getDefaultWordlist = function () { + if (!c) throw new Error('No Default Wordlist set') + return Object.keys(u.wordlists).filter((e) => 'JA' !== e && 'EN' !== e && u.wordlists[e].every((e, t) => e === c[t]))[0] + })) + var _ = r(7042) + t.wordlists = _.wordlists + }, + 69999: function (e, t, r) { + !(function (e, t) { + 'use strict' + function n(e, t) { + if (!e) throw new Error(t || 'Assertion failed') + } + function i(e, t) { + e.super_ = t + var r = function () {} + ;((r.prototype = t.prototype), (e.prototype = new r()), (e.prototype.constructor = e)) + } + function o(e, t, r) { + if (o.isBN(e)) return e + ;((this.negative = 0), + (this.words = null), + (this.length = 0), + (this.red = null), + null !== e && (('le' !== t && 'be' !== t) || ((r = t), (t = 10)), this._init(e || 0, t || 10, r || 'be'))) + } + var a + ;('object' == typeof e ? (e.exports = o) : (t.BN = o), (o.BN = o), (o.wordSize = 26)) + try { + a = 'undefined' != typeof window && void 0 !== window.Buffer ? window.Buffer : r(33196).Buffer + } catch (e) {} + function s(e, t) { + var r = e.charCodeAt(t) + return r >= 48 && r <= 57 ? r - 48 : r >= 65 && r <= 70 ? r - 55 : r >= 97 && r <= 102 ? r - 87 : void n(!1, 'Invalid character in ' + e) + } + function u(e, t, r) { + var n = s(e, r) + return (r - 1 >= t && (n |= s(e, r - 1) << 4), n) + } + function c(e, t, r, i) { + for (var o = 0, a = 0, s = Math.min(e.length, r), u = t; u < s; u++) { + var c = e.charCodeAt(u) - 48 + ;((o *= i), (a = c >= 49 ? c - 49 + 10 : c >= 17 ? c - 17 + 10 : c), n(c >= 0 && a < i, 'Invalid character'), (o += a)) + } + return o + } + function f(e, t) { + ;((e.words = t.words), (e.length = t.length), (e.negative = t.negative), (e.red = t.red)) + } + if ( + ((o.isBN = function (e) { + return e instanceof o || (null !== e && 'object' == typeof e && e.constructor.wordSize === o.wordSize && Array.isArray(e.words)) + }), + (o.max = function (e, t) { + return e.cmp(t) > 0 ? e : t + }), + (o.min = function (e, t) { + return e.cmp(t) < 0 ? e : t + }), + (o.prototype._init = function (e, t, r) { + if ('number' == typeof e) return this._initNumber(e, t, r) + if ('object' == typeof e) return this._initArray(e, t, r) + ;('hex' === t && (t = 16), n(t === (0 | t) && t >= 2 && t <= 36)) + var i = 0 + ;('-' === (e = e.toString().replace(/\s+/g, ''))[0] && (i++, (this.negative = 1)), + i < e.length && + (16 === t ? this._parseHex(e, i, r) : (this._parseBase(e, t, i), 'le' === r && this._initArray(this.toArray(), t, r)))) + }), + (o.prototype._initNumber = function (e, t, r) { + ;(e < 0 && ((this.negative = 1), (e = -e)), + e < 67108864 + ? ((this.words = [67108863 & e]), (this.length = 1)) + : e < 4503599627370496 + ? ((this.words = [67108863 & e, (e / 67108864) & 67108863]), (this.length = 2)) + : (n(e < 9007199254740992), (this.words = [67108863 & e, (e / 67108864) & 67108863, 1]), (this.length = 3)), + 'le' === r && this._initArray(this.toArray(), t, r)) + }), + (o.prototype._initArray = function (e, t, r) { + if ((n('number' == typeof e.length), e.length <= 0)) return ((this.words = [0]), (this.length = 1), this) + ;((this.length = Math.ceil(e.length / 3)), (this.words = new Array(this.length))) + for (var i = 0; i < this.length; i++) this.words[i] = 0 + var o, + a, + s = 0 + if ('be' === r) + for (i = e.length - 1, o = 0; i >= 0; i -= 3) + ((a = e[i] | (e[i - 1] << 8) | (e[i - 2] << 16)), + (this.words[o] |= (a << s) & 67108863), + (this.words[o + 1] = (a >>> (26 - s)) & 67108863), + (s += 24) >= 26 && ((s -= 26), o++)) + else if ('le' === r) + for (i = 0, o = 0; i < e.length; i += 3) + ((a = e[i] | (e[i + 1] << 8) | (e[i + 2] << 16)), + (this.words[o] |= (a << s) & 67108863), + (this.words[o + 1] = (a >>> (26 - s)) & 67108863), + (s += 24) >= 26 && ((s -= 26), o++)) + return this._strip() + }), + (o.prototype._parseHex = function (e, t, r) { + ;((this.length = Math.ceil((e.length - t) / 6)), (this.words = new Array(this.length))) + for (var n = 0; n < this.length; n++) this.words[n] = 0 + var i, + o = 0, + a = 0 + if ('be' === r) + for (n = e.length - 1; n >= t; n -= 2) + ((i = u(e, t, n) << o), (this.words[a] |= 67108863 & i), o >= 18 ? ((o -= 18), (a += 1), (this.words[a] |= i >>> 26)) : (o += 8)) + else + for (n = (e.length - t) % 2 == 0 ? t + 1 : t; n < e.length; n += 2) + ((i = u(e, t, n) << o), (this.words[a] |= 67108863 & i), o >= 18 ? ((o -= 18), (a += 1), (this.words[a] |= i >>> 26)) : (o += 8)) + this._strip() + }), + (o.prototype._parseBase = function (e, t, r) { + ;((this.words = [0]), (this.length = 1)) + for (var n = 0, i = 1; i <= 67108863; i *= t) n++ + ;(n--, (i = (i / t) | 0)) + for (var o = e.length - r, a = o % n, s = Math.min(o, o - a) + r, u = 0, f = r; f < s; f += n) + ((u = c(e, f, f + n, t)), this.imuln(i), this.words[0] + u < 67108864 ? (this.words[0] += u) : this._iaddn(u)) + if (0 !== a) { + var l = 1 + for (u = c(e, f, e.length, t), f = 0; f < a; f++) l *= t + ;(this.imuln(l), this.words[0] + u < 67108864 ? (this.words[0] += u) : this._iaddn(u)) + } + this._strip() + }), + (o.prototype.copy = function (e) { + e.words = new Array(this.length) + for (var t = 0; t < this.length; t++) e.words[t] = this.words[t] + ;((e.length = this.length), (e.negative = this.negative), (e.red = this.red)) + }), + (o.prototype._move = function (e) { + f(e, this) + }), + (o.prototype.clone = function () { + var e = new o(null) + return (this.copy(e), e) + }), + (o.prototype._expand = function (e) { + for (; this.length < e; ) this.words[this.length++] = 0 + return this + }), + (o.prototype._strip = function () { + for (; this.length > 1 && 0 === this.words[this.length - 1]; ) this.length-- + return this._normSign() + }), + (o.prototype._normSign = function () { + return (1 === this.length && 0 === this.words[0] && (this.negative = 0), this) + }), + 'undefined' != typeof Symbol && 'function' == typeof Symbol.for) + ) + try { + o.prototype[Symbol.for('nodejs.util.inspect.custom')] = l + } catch (e) { + o.prototype.inspect = l + } + else o.prototype.inspect = l + function l() { + return (this.red ? '<BN-R: ' : '<BN: ') + this.toString(16) + '>' + } + var d = [ + '', + '0', + '00', + '000', + '0000', + '00000', + '000000', + '0000000', + '00000000', + '000000000', + '0000000000', + '00000000000', + '000000000000', + '0000000000000', + '00000000000000', + '000000000000000', + '0000000000000000', + '00000000000000000', + '000000000000000000', + '0000000000000000000', + '00000000000000000000', + '000000000000000000000', + '0000000000000000000000', + '00000000000000000000000', + '000000000000000000000000', + '0000000000000000000000000', + ], + h = [0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5], + p = [ + 0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, 1e7, 19487171, 35831808, 62748517, 7529536, + 11390625, 16777216, 24137569, 34012224, 47045881, 64e6, 4084101, 5153632, 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, + 20511149, 243e5, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176, + ] + function y(e, t, r) { + r.negative = t.negative ^ e.negative + var n = (e.length + t.length) | 0 + ;((r.length = n), (n = (n - 1) | 0)) + var i = 0 | e.words[0], + o = 0 | t.words[0], + a = i * o, + s = 67108863 & a, + u = (a / 67108864) | 0 + r.words[0] = s + for (var c = 1; c < n; c++) { + for (var f = u >>> 26, l = 67108863 & u, d = Math.min(c, t.length - 1), h = Math.max(0, c - e.length + 1); h <= d; h++) { + var p = (c - h) | 0 + ;((f += ((a = (i = 0 | e.words[p]) * (o = 0 | t.words[h]) + l) / 67108864) | 0), (l = 67108863 & a)) + } + ;((r.words[c] = 0 | l), (u = 0 | f)) + } + return (0 !== u ? (r.words[c] = 0 | u) : r.length--, r._strip()) + } + ;((o.prototype.toString = function (e, t) { + var r + if (((t = 0 | t || 1), 16 === (e = e || 10) || 'hex' === e)) { + r = '' + for (var i = 0, o = 0, a = 0; a < this.length; a++) { + var s = this.words[a], + u = (16777215 & ((s << i) | o)).toString(16) + ;((o = (s >>> (24 - i)) & 16777215), + (i += 2) >= 26 && ((i -= 26), a--), + (r = 0 !== o || a !== this.length - 1 ? d[6 - u.length] + u + r : u + r)) + } + for (0 !== o && (r = o.toString(16) + r); r.length % t != 0; ) r = '0' + r + return (0 !== this.negative && (r = '-' + r), r) + } + if (e === (0 | e) && e >= 2 && e <= 36) { + var c = h[e], + f = p[e] + r = '' + var l = this.clone() + for (l.negative = 0; !l.isZero(); ) { + var y = l.modrn(f).toString(e) + r = (l = l.idivn(f)).isZero() ? y + r : d[c - y.length] + y + r + } + for (this.isZero() && (r = '0' + r); r.length % t != 0; ) r = '0' + r + return (0 !== this.negative && (r = '-' + r), r) + } + n(!1, 'Base should be between 2 and 36') + }), + (o.prototype.toNumber = function () { + var e = this.words[0] + return ( + 2 === this.length + ? (e += 67108864 * this.words[1]) + : 3 === this.length && 1 === this.words[2] + ? (e += 4503599627370496 + 67108864 * this.words[1]) + : this.length > 2 && n(!1, 'Number can only safely store up to 53 bits'), + 0 !== this.negative ? -e : e + ) + }), + (o.prototype.toJSON = function () { + return this.toString(16, 2) + }), + a && + (o.prototype.toBuffer = function (e, t) { + return this.toArrayLike(a, e, t) + }), + (o.prototype.toArray = function (e, t) { + return this.toArrayLike(Array, e, t) + }), + (o.prototype.toArrayLike = function (e, t, r) { + this._strip() + var i = this.byteLength(), + o = r || Math.max(1, i) + ;(n(i <= o, 'byte array longer than desired length'), n(o > 0, 'Requested array length <= 0')) + var a = (function (e, t) { + return e.allocUnsafe ? e.allocUnsafe(t) : new e(t) + })(e, o) + return (this['_toArrayLike' + ('le' === t ? 'LE' : 'BE')](a, i), a) + }), + (o.prototype._toArrayLikeLE = function (e, t) { + for (var r = 0, n = 0, i = 0, o = 0; i < this.length; i++) { + var a = (this.words[i] << o) | n + ;((e[r++] = 255 & a), + r < e.length && (e[r++] = (a >> 8) & 255), + r < e.length && (e[r++] = (a >> 16) & 255), + 6 === o ? (r < e.length && (e[r++] = (a >> 24) & 255), (n = 0), (o = 0)) : ((n = a >>> 24), (o += 2))) + } + if (r < e.length) for (e[r++] = n; r < e.length; ) e[r++] = 0 + }), + (o.prototype._toArrayLikeBE = function (e, t) { + for (var r = e.length - 1, n = 0, i = 0, o = 0; i < this.length; i++) { + var a = (this.words[i] << o) | n + ;((e[r--] = 255 & a), + r >= 0 && (e[r--] = (a >> 8) & 255), + r >= 0 && (e[r--] = (a >> 16) & 255), + 6 === o ? (r >= 0 && (e[r--] = (a >> 24) & 255), (n = 0), (o = 0)) : ((n = a >>> 24), (o += 2))) + } + if (r >= 0) for (e[r--] = n; r >= 0; ) e[r--] = 0 + }), + Math.clz32 + ? (o.prototype._countBits = function (e) { + return 32 - Math.clz32(e) + }) + : (o.prototype._countBits = function (e) { + var t = e, + r = 0 + return ( + t >= 4096 && ((r += 13), (t >>>= 13)), + t >= 64 && ((r += 7), (t >>>= 7)), + t >= 8 && ((r += 4), (t >>>= 4)), + t >= 2 && ((r += 2), (t >>>= 2)), + r + t + ) + }), + (o.prototype._zeroBits = function (e) { + if (0 === e) return 26 + var t = e, + r = 0 + return ( + 0 == (8191 & t) && ((r += 13), (t >>>= 13)), + 0 == (127 & t) && ((r += 7), (t >>>= 7)), + 0 == (15 & t) && ((r += 4), (t >>>= 4)), + 0 == (3 & t) && ((r += 2), (t >>>= 2)), + 0 == (1 & t) && r++, + r + ) + }), + (o.prototype.bitLength = function () { + var e = this.words[this.length - 1], + t = this._countBits(e) + return 26 * (this.length - 1) + t + }), + (o.prototype.zeroBits = function () { + if (this.isZero()) return 0 + for (var e = 0, t = 0; t < this.length; t++) { + var r = this._zeroBits(this.words[t]) + if (((e += r), 26 !== r)) break + } + return e + }), + (o.prototype.byteLength = function () { + return Math.ceil(this.bitLength() / 8) + }), + (o.prototype.toTwos = function (e) { + return 0 !== this.negative ? this.abs().inotn(e).iaddn(1) : this.clone() + }), + (o.prototype.fromTwos = function (e) { + return this.testn(e - 1) ? this.notn(e).iaddn(1).ineg() : this.clone() + }), + (o.prototype.isNeg = function () { + return 0 !== this.negative + }), + (o.prototype.neg = function () { + return this.clone().ineg() + }), + (o.prototype.ineg = function () { + return (this.isZero() || (this.negative ^= 1), this) + }), + (o.prototype.iuor = function (e) { + for (; this.length < e.length; ) this.words[this.length++] = 0 + for (var t = 0; t < e.length; t++) this.words[t] = this.words[t] | e.words[t] + return this._strip() + }), + (o.prototype.ior = function (e) { + return (n(0 == (this.negative | e.negative)), this.iuor(e)) + }), + (o.prototype.or = function (e) { + return this.length > e.length ? this.clone().ior(e) : e.clone().ior(this) + }), + (o.prototype.uor = function (e) { + return this.length > e.length ? this.clone().iuor(e) : e.clone().iuor(this) + }), + (o.prototype.iuand = function (e) { + var t + t = this.length > e.length ? e : this + for (var r = 0; r < t.length; r++) this.words[r] = this.words[r] & e.words[r] + return ((this.length = t.length), this._strip()) + }), + (o.prototype.iand = function (e) { + return (n(0 == (this.negative | e.negative)), this.iuand(e)) + }), + (o.prototype.and = function (e) { + return this.length > e.length ? this.clone().iand(e) : e.clone().iand(this) + }), + (o.prototype.uand = function (e) { + return this.length > e.length ? this.clone().iuand(e) : e.clone().iuand(this) + }), + (o.prototype.iuxor = function (e) { + var t, r + this.length > e.length ? ((t = this), (r = e)) : ((t = e), (r = this)) + for (var n = 0; n < r.length; n++) this.words[n] = t.words[n] ^ r.words[n] + if (this !== t) for (; n < t.length; n++) this.words[n] = t.words[n] + return ((this.length = t.length), this._strip()) + }), + (o.prototype.ixor = function (e) { + return (n(0 == (this.negative | e.negative)), this.iuxor(e)) + }), + (o.prototype.xor = function (e) { + return this.length > e.length ? this.clone().ixor(e) : e.clone().ixor(this) + }), + (o.prototype.uxor = function (e) { + return this.length > e.length ? this.clone().iuxor(e) : e.clone().iuxor(this) + }), + (o.prototype.inotn = function (e) { + n('number' == typeof e && e >= 0) + var t = 0 | Math.ceil(e / 26), + r = e % 26 + ;(this._expand(t), r > 0 && t--) + for (var i = 0; i < t; i++) this.words[i] = 67108863 & ~this.words[i] + return (r > 0 && (this.words[i] = ~this.words[i] & (67108863 >> (26 - r))), this._strip()) + }), + (o.prototype.notn = function (e) { + return this.clone().inotn(e) + }), + (o.prototype.setn = function (e, t) { + n('number' == typeof e && e >= 0) + var r = (e / 26) | 0, + i = e % 26 + return (this._expand(r + 1), (this.words[r] = t ? this.words[r] | (1 << i) : this.words[r] & ~(1 << i)), this._strip()) + }), + (o.prototype.iadd = function (e) { + var t, r, n + if (0 !== this.negative && 0 === e.negative) return ((this.negative = 0), (t = this.isub(e)), (this.negative ^= 1), this._normSign()) + if (0 === this.negative && 0 !== e.negative) return ((e.negative = 0), (t = this.isub(e)), (e.negative = 1), t._normSign()) + this.length > e.length ? ((r = this), (n = e)) : ((r = e), (n = this)) + for (var i = 0, o = 0; o < n.length; o++) + ((t = (0 | r.words[o]) + (0 | n.words[o]) + i), (this.words[o] = 67108863 & t), (i = t >>> 26)) + for (; 0 !== i && o < r.length; o++) ((t = (0 | r.words[o]) + i), (this.words[o] = 67108863 & t), (i = t >>> 26)) + if (((this.length = r.length), 0 !== i)) ((this.words[this.length] = i), this.length++) + else if (r !== this) for (; o < r.length; o++) this.words[o] = r.words[o] + return this + }), + (o.prototype.add = function (e) { + var t + return 0 !== e.negative && 0 === this.negative + ? ((e.negative = 0), (t = this.sub(e)), (e.negative ^= 1), t) + : 0 === e.negative && 0 !== this.negative + ? ((this.negative = 0), (t = e.sub(this)), (this.negative = 1), t) + : this.length > e.length + ? this.clone().iadd(e) + : e.clone().iadd(this) + }), + (o.prototype.isub = function (e) { + if (0 !== e.negative) { + e.negative = 0 + var t = this.iadd(e) + return ((e.negative = 1), t._normSign()) + } + if (0 !== this.negative) return ((this.negative = 0), this.iadd(e), (this.negative = 1), this._normSign()) + var r, + n, + i = this.cmp(e) + if (0 === i) return ((this.negative = 0), (this.length = 1), (this.words[0] = 0), this) + i > 0 ? ((r = this), (n = e)) : ((r = e), (n = this)) + for (var o = 0, a = 0; a < n.length; a++) ((o = (t = (0 | r.words[a]) - (0 | n.words[a]) + o) >> 26), (this.words[a] = 67108863 & t)) + for (; 0 !== o && a < r.length; a++) ((o = (t = (0 | r.words[a]) + o) >> 26), (this.words[a] = 67108863 & t)) + if (0 === o && a < r.length && r !== this) for (; a < r.length; a++) this.words[a] = r.words[a] + return ((this.length = Math.max(this.length, a)), r !== this && (this.negative = 1), this._strip()) + }), + (o.prototype.sub = function (e) { + return this.clone().isub(e) + })) + var g = function (e, t, r) { + var n, + i, + o, + a = e.words, + s = t.words, + u = r.words, + c = 0, + f = 0 | a[0], + l = 8191 & f, + d = f >>> 13, + h = 0 | a[1], + p = 8191 & h, + y = h >>> 13, + g = 0 | a[2], + b = 8191 & g, + m = g >>> 13, + v = 0 | a[3], + w = 8191 & v, + _ = v >>> 13, + E = 0 | a[4], + S = 8191 & E, + A = E >>> 13, + O = 0 | a[5], + M = 8191 & O, + T = O >>> 13, + I = 0 | a[6], + N = 8191 & I, + x = I >>> 13, + L = 0 | a[7], + k = 8191 & L, + R = L >>> 13, + P = 0 | a[8], + B = 8191 & P, + D = P >>> 13, + C = 0 | a[9], + j = 8191 & C, + F = C >>> 13, + U = 0 | s[0], + V = 8191 & U, + H = U >>> 13, + z = 0 | s[1], + q = 8191 & z, + K = z >>> 13, + W = 0 | s[2], + G = 8191 & W, + Y = W >>> 13, + $ = 0 | s[3], + X = 8191 & $, + J = $ >>> 13, + Z = 0 | s[4], + Q = 8191 & Z, + ee = Z >>> 13, + te = 0 | s[5], + re = 8191 & te, + ne = te >>> 13, + ie = 0 | s[6], + oe = 8191 & ie, + ae = ie >>> 13, + se = 0 | s[7], + ue = 8191 & se, + ce = se >>> 13, + fe = 0 | s[8], + le = 8191 & fe, + de = fe >>> 13, + he = 0 | s[9], + pe = 8191 & he, + ye = he >>> 13 + ;((r.negative = e.negative ^ t.negative), (r.length = 19)) + var ge = (((c + (n = Math.imul(l, V))) | 0) + ((8191 & (i = ((i = Math.imul(l, H)) + Math.imul(d, V)) | 0)) << 13)) | 0 + ;((c = ((((o = Math.imul(d, H)) + (i >>> 13)) | 0) + (ge >>> 26)) | 0), + (ge &= 67108863), + (n = Math.imul(p, V)), + (i = ((i = Math.imul(p, H)) + Math.imul(y, V)) | 0), + (o = Math.imul(y, H))) + var be = + (((c + (n = (n + Math.imul(l, q)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(l, K)) | 0) + Math.imul(d, q)) | 0)) << 13)) | 0 + ;((c = ((((o = (o + Math.imul(d, K)) | 0) + (i >>> 13)) | 0) + (be >>> 26)) | 0), + (be &= 67108863), + (n = Math.imul(b, V)), + (i = ((i = Math.imul(b, H)) + Math.imul(m, V)) | 0), + (o = Math.imul(m, H)), + (n = (n + Math.imul(p, q)) | 0), + (i = ((i = (i + Math.imul(p, K)) | 0) + Math.imul(y, q)) | 0), + (o = (o + Math.imul(y, K)) | 0)) + var me = + (((c + (n = (n + Math.imul(l, G)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(l, Y)) | 0) + Math.imul(d, G)) | 0)) << 13)) | 0 + ;((c = ((((o = (o + Math.imul(d, Y)) | 0) + (i >>> 13)) | 0) + (me >>> 26)) | 0), + (me &= 67108863), + (n = Math.imul(w, V)), + (i = ((i = Math.imul(w, H)) + Math.imul(_, V)) | 0), + (o = Math.imul(_, H)), + (n = (n + Math.imul(b, q)) | 0), + (i = ((i = (i + Math.imul(b, K)) | 0) + Math.imul(m, q)) | 0), + (o = (o + Math.imul(m, K)) | 0), + (n = (n + Math.imul(p, G)) | 0), + (i = ((i = (i + Math.imul(p, Y)) | 0) + Math.imul(y, G)) | 0), + (o = (o + Math.imul(y, Y)) | 0)) + var ve = + (((c + (n = (n + Math.imul(l, X)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(l, J)) | 0) + Math.imul(d, X)) | 0)) << 13)) | 0 + ;((c = ((((o = (o + Math.imul(d, J)) | 0) + (i >>> 13)) | 0) + (ve >>> 26)) | 0), + (ve &= 67108863), + (n = Math.imul(S, V)), + (i = ((i = Math.imul(S, H)) + Math.imul(A, V)) | 0), + (o = Math.imul(A, H)), + (n = (n + Math.imul(w, q)) | 0), + (i = ((i = (i + Math.imul(w, K)) | 0) + Math.imul(_, q)) | 0), + (o = (o + Math.imul(_, K)) | 0), + (n = (n + Math.imul(b, G)) | 0), + (i = ((i = (i + Math.imul(b, Y)) | 0) + Math.imul(m, G)) | 0), + (o = (o + Math.imul(m, Y)) | 0), + (n = (n + Math.imul(p, X)) | 0), + (i = ((i = (i + Math.imul(p, J)) | 0) + Math.imul(y, X)) | 0), + (o = (o + Math.imul(y, J)) | 0)) + var we = + (((c + (n = (n + Math.imul(l, Q)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(l, ee)) | 0) + Math.imul(d, Q)) | 0)) << 13)) | 0 + ;((c = ((((o = (o + Math.imul(d, ee)) | 0) + (i >>> 13)) | 0) + (we >>> 26)) | 0), + (we &= 67108863), + (n = Math.imul(M, V)), + (i = ((i = Math.imul(M, H)) + Math.imul(T, V)) | 0), + (o = Math.imul(T, H)), + (n = (n + Math.imul(S, q)) | 0), + (i = ((i = (i + Math.imul(S, K)) | 0) + Math.imul(A, q)) | 0), + (o = (o + Math.imul(A, K)) | 0), + (n = (n + Math.imul(w, G)) | 0), + (i = ((i = (i + Math.imul(w, Y)) | 0) + Math.imul(_, G)) | 0), + (o = (o + Math.imul(_, Y)) | 0), + (n = (n + Math.imul(b, X)) | 0), + (i = ((i = (i + Math.imul(b, J)) | 0) + Math.imul(m, X)) | 0), + (o = (o + Math.imul(m, J)) | 0), + (n = (n + Math.imul(p, Q)) | 0), + (i = ((i = (i + Math.imul(p, ee)) | 0) + Math.imul(y, Q)) | 0), + (o = (o + Math.imul(y, ee)) | 0)) + var _e = + (((c + (n = (n + Math.imul(l, re)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(l, ne)) | 0) + Math.imul(d, re)) | 0)) << 13)) | 0 + ;((c = ((((o = (o + Math.imul(d, ne)) | 0) + (i >>> 13)) | 0) + (_e >>> 26)) | 0), + (_e &= 67108863), + (n = Math.imul(N, V)), + (i = ((i = Math.imul(N, H)) + Math.imul(x, V)) | 0), + (o = Math.imul(x, H)), + (n = (n + Math.imul(M, q)) | 0), + (i = ((i = (i + Math.imul(M, K)) | 0) + Math.imul(T, q)) | 0), + (o = (o + Math.imul(T, K)) | 0), + (n = (n + Math.imul(S, G)) | 0), + (i = ((i = (i + Math.imul(S, Y)) | 0) + Math.imul(A, G)) | 0), + (o = (o + Math.imul(A, Y)) | 0), + (n = (n + Math.imul(w, X)) | 0), + (i = ((i = (i + Math.imul(w, J)) | 0) + Math.imul(_, X)) | 0), + (o = (o + Math.imul(_, J)) | 0), + (n = (n + Math.imul(b, Q)) | 0), + (i = ((i = (i + Math.imul(b, ee)) | 0) + Math.imul(m, Q)) | 0), + (o = (o + Math.imul(m, ee)) | 0), + (n = (n + Math.imul(p, re)) | 0), + (i = ((i = (i + Math.imul(p, ne)) | 0) + Math.imul(y, re)) | 0), + (o = (o + Math.imul(y, ne)) | 0)) + var Ee = + (((c + (n = (n + Math.imul(l, oe)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(l, ae)) | 0) + Math.imul(d, oe)) | 0)) << 13)) | 0 + ;((c = ((((o = (o + Math.imul(d, ae)) | 0) + (i >>> 13)) | 0) + (Ee >>> 26)) | 0), + (Ee &= 67108863), + (n = Math.imul(k, V)), + (i = ((i = Math.imul(k, H)) + Math.imul(R, V)) | 0), + (o = Math.imul(R, H)), + (n = (n + Math.imul(N, q)) | 0), + (i = ((i = (i + Math.imul(N, K)) | 0) + Math.imul(x, q)) | 0), + (o = (o + Math.imul(x, K)) | 0), + (n = (n + Math.imul(M, G)) | 0), + (i = ((i = (i + Math.imul(M, Y)) | 0) + Math.imul(T, G)) | 0), + (o = (o + Math.imul(T, Y)) | 0), + (n = (n + Math.imul(S, X)) | 0), + (i = ((i = (i + Math.imul(S, J)) | 0) + Math.imul(A, X)) | 0), + (o = (o + Math.imul(A, J)) | 0), + (n = (n + Math.imul(w, Q)) | 0), + (i = ((i = (i + Math.imul(w, ee)) | 0) + Math.imul(_, Q)) | 0), + (o = (o + Math.imul(_, ee)) | 0), + (n = (n + Math.imul(b, re)) | 0), + (i = ((i = (i + Math.imul(b, ne)) | 0) + Math.imul(m, re)) | 0), + (o = (o + Math.imul(m, ne)) | 0), + (n = (n + Math.imul(p, oe)) | 0), + (i = ((i = (i + Math.imul(p, ae)) | 0) + Math.imul(y, oe)) | 0), + (o = (o + Math.imul(y, ae)) | 0)) + var Se = + (((c + (n = (n + Math.imul(l, ue)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(l, ce)) | 0) + Math.imul(d, ue)) | 0)) << 13)) | 0 + ;((c = ((((o = (o + Math.imul(d, ce)) | 0) + (i >>> 13)) | 0) + (Se >>> 26)) | 0), + (Se &= 67108863), + (n = Math.imul(B, V)), + (i = ((i = Math.imul(B, H)) + Math.imul(D, V)) | 0), + (o = Math.imul(D, H)), + (n = (n + Math.imul(k, q)) | 0), + (i = ((i = (i + Math.imul(k, K)) | 0) + Math.imul(R, q)) | 0), + (o = (o + Math.imul(R, K)) | 0), + (n = (n + Math.imul(N, G)) | 0), + (i = ((i = (i + Math.imul(N, Y)) | 0) + Math.imul(x, G)) | 0), + (o = (o + Math.imul(x, Y)) | 0), + (n = (n + Math.imul(M, X)) | 0), + (i = ((i = (i + Math.imul(M, J)) | 0) + Math.imul(T, X)) | 0), + (o = (o + Math.imul(T, J)) | 0), + (n = (n + Math.imul(S, Q)) | 0), + (i = ((i = (i + Math.imul(S, ee)) | 0) + Math.imul(A, Q)) | 0), + (o = (o + Math.imul(A, ee)) | 0), + (n = (n + Math.imul(w, re)) | 0), + (i = ((i = (i + Math.imul(w, ne)) | 0) + Math.imul(_, re)) | 0), + (o = (o + Math.imul(_, ne)) | 0), + (n = (n + Math.imul(b, oe)) | 0), + (i = ((i = (i + Math.imul(b, ae)) | 0) + Math.imul(m, oe)) | 0), + (o = (o + Math.imul(m, ae)) | 0), + (n = (n + Math.imul(p, ue)) | 0), + (i = ((i = (i + Math.imul(p, ce)) | 0) + Math.imul(y, ue)) | 0), + (o = (o + Math.imul(y, ce)) | 0)) + var Ae = + (((c + (n = (n + Math.imul(l, le)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(l, de)) | 0) + Math.imul(d, le)) | 0)) << 13)) | 0 + ;((c = ((((o = (o + Math.imul(d, de)) | 0) + (i >>> 13)) | 0) + (Ae >>> 26)) | 0), + (Ae &= 67108863), + (n = Math.imul(j, V)), + (i = ((i = Math.imul(j, H)) + Math.imul(F, V)) | 0), + (o = Math.imul(F, H)), + (n = (n + Math.imul(B, q)) | 0), + (i = ((i = (i + Math.imul(B, K)) | 0) + Math.imul(D, q)) | 0), + (o = (o + Math.imul(D, K)) | 0), + (n = (n + Math.imul(k, G)) | 0), + (i = ((i = (i + Math.imul(k, Y)) | 0) + Math.imul(R, G)) | 0), + (o = (o + Math.imul(R, Y)) | 0), + (n = (n + Math.imul(N, X)) | 0), + (i = ((i = (i + Math.imul(N, J)) | 0) + Math.imul(x, X)) | 0), + (o = (o + Math.imul(x, J)) | 0), + (n = (n + Math.imul(M, Q)) | 0), + (i = ((i = (i + Math.imul(M, ee)) | 0) + Math.imul(T, Q)) | 0), + (o = (o + Math.imul(T, ee)) | 0), + (n = (n + Math.imul(S, re)) | 0), + (i = ((i = (i + Math.imul(S, ne)) | 0) + Math.imul(A, re)) | 0), + (o = (o + Math.imul(A, ne)) | 0), + (n = (n + Math.imul(w, oe)) | 0), + (i = ((i = (i + Math.imul(w, ae)) | 0) + Math.imul(_, oe)) | 0), + (o = (o + Math.imul(_, ae)) | 0), + (n = (n + Math.imul(b, ue)) | 0), + (i = ((i = (i + Math.imul(b, ce)) | 0) + Math.imul(m, ue)) | 0), + (o = (o + Math.imul(m, ce)) | 0), + (n = (n + Math.imul(p, le)) | 0), + (i = ((i = (i + Math.imul(p, de)) | 0) + Math.imul(y, le)) | 0), + (o = (o + Math.imul(y, de)) | 0)) + var Oe = + (((c + (n = (n + Math.imul(l, pe)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(l, ye)) | 0) + Math.imul(d, pe)) | 0)) << 13)) | 0 + ;((c = ((((o = (o + Math.imul(d, ye)) | 0) + (i >>> 13)) | 0) + (Oe >>> 26)) | 0), + (Oe &= 67108863), + (n = Math.imul(j, q)), + (i = ((i = Math.imul(j, K)) + Math.imul(F, q)) | 0), + (o = Math.imul(F, K)), + (n = (n + Math.imul(B, G)) | 0), + (i = ((i = (i + Math.imul(B, Y)) | 0) + Math.imul(D, G)) | 0), + (o = (o + Math.imul(D, Y)) | 0), + (n = (n + Math.imul(k, X)) | 0), + (i = ((i = (i + Math.imul(k, J)) | 0) + Math.imul(R, X)) | 0), + (o = (o + Math.imul(R, J)) | 0), + (n = (n + Math.imul(N, Q)) | 0), + (i = ((i = (i + Math.imul(N, ee)) | 0) + Math.imul(x, Q)) | 0), + (o = (o + Math.imul(x, ee)) | 0), + (n = (n + Math.imul(M, re)) | 0), + (i = ((i = (i + Math.imul(M, ne)) | 0) + Math.imul(T, re)) | 0), + (o = (o + Math.imul(T, ne)) | 0), + (n = (n + Math.imul(S, oe)) | 0), + (i = ((i = (i + Math.imul(S, ae)) | 0) + Math.imul(A, oe)) | 0), + (o = (o + Math.imul(A, ae)) | 0), + (n = (n + Math.imul(w, ue)) | 0), + (i = ((i = (i + Math.imul(w, ce)) | 0) + Math.imul(_, ue)) | 0), + (o = (o + Math.imul(_, ce)) | 0), + (n = (n + Math.imul(b, le)) | 0), + (i = ((i = (i + Math.imul(b, de)) | 0) + Math.imul(m, le)) | 0), + (o = (o + Math.imul(m, de)) | 0)) + var Me = + (((c + (n = (n + Math.imul(p, pe)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(p, ye)) | 0) + Math.imul(y, pe)) | 0)) << 13)) | 0 + ;((c = ((((o = (o + Math.imul(y, ye)) | 0) + (i >>> 13)) | 0) + (Me >>> 26)) | 0), + (Me &= 67108863), + (n = Math.imul(j, G)), + (i = ((i = Math.imul(j, Y)) + Math.imul(F, G)) | 0), + (o = Math.imul(F, Y)), + (n = (n + Math.imul(B, X)) | 0), + (i = ((i = (i + Math.imul(B, J)) | 0) + Math.imul(D, X)) | 0), + (o = (o + Math.imul(D, J)) | 0), + (n = (n + Math.imul(k, Q)) | 0), + (i = ((i = (i + Math.imul(k, ee)) | 0) + Math.imul(R, Q)) | 0), + (o = (o + Math.imul(R, ee)) | 0), + (n = (n + Math.imul(N, re)) | 0), + (i = ((i = (i + Math.imul(N, ne)) | 0) + Math.imul(x, re)) | 0), + (o = (o + Math.imul(x, ne)) | 0), + (n = (n + Math.imul(M, oe)) | 0), + (i = ((i = (i + Math.imul(M, ae)) | 0) + Math.imul(T, oe)) | 0), + (o = (o + Math.imul(T, ae)) | 0), + (n = (n + Math.imul(S, ue)) | 0), + (i = ((i = (i + Math.imul(S, ce)) | 0) + Math.imul(A, ue)) | 0), + (o = (o + Math.imul(A, ce)) | 0), + (n = (n + Math.imul(w, le)) | 0), + (i = ((i = (i + Math.imul(w, de)) | 0) + Math.imul(_, le)) | 0), + (o = (o + Math.imul(_, de)) | 0)) + var Te = + (((c + (n = (n + Math.imul(b, pe)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(b, ye)) | 0) + Math.imul(m, pe)) | 0)) << 13)) | 0 + ;((c = ((((o = (o + Math.imul(m, ye)) | 0) + (i >>> 13)) | 0) + (Te >>> 26)) | 0), + (Te &= 67108863), + (n = Math.imul(j, X)), + (i = ((i = Math.imul(j, J)) + Math.imul(F, X)) | 0), + (o = Math.imul(F, J)), + (n = (n + Math.imul(B, Q)) | 0), + (i = ((i = (i + Math.imul(B, ee)) | 0) + Math.imul(D, Q)) | 0), + (o = (o + Math.imul(D, ee)) | 0), + (n = (n + Math.imul(k, re)) | 0), + (i = ((i = (i + Math.imul(k, ne)) | 0) + Math.imul(R, re)) | 0), + (o = (o + Math.imul(R, ne)) | 0), + (n = (n + Math.imul(N, oe)) | 0), + (i = ((i = (i + Math.imul(N, ae)) | 0) + Math.imul(x, oe)) | 0), + (o = (o + Math.imul(x, ae)) | 0), + (n = (n + Math.imul(M, ue)) | 0), + (i = ((i = (i + Math.imul(M, ce)) | 0) + Math.imul(T, ue)) | 0), + (o = (o + Math.imul(T, ce)) | 0), + (n = (n + Math.imul(S, le)) | 0), + (i = ((i = (i + Math.imul(S, de)) | 0) + Math.imul(A, le)) | 0), + (o = (o + Math.imul(A, de)) | 0)) + var Ie = + (((c + (n = (n + Math.imul(w, pe)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(w, ye)) | 0) + Math.imul(_, pe)) | 0)) << 13)) | 0 + ;((c = ((((o = (o + Math.imul(_, ye)) | 0) + (i >>> 13)) | 0) + (Ie >>> 26)) | 0), + (Ie &= 67108863), + (n = Math.imul(j, Q)), + (i = ((i = Math.imul(j, ee)) + Math.imul(F, Q)) | 0), + (o = Math.imul(F, ee)), + (n = (n + Math.imul(B, re)) | 0), + (i = ((i = (i + Math.imul(B, ne)) | 0) + Math.imul(D, re)) | 0), + (o = (o + Math.imul(D, ne)) | 0), + (n = (n + Math.imul(k, oe)) | 0), + (i = ((i = (i + Math.imul(k, ae)) | 0) + Math.imul(R, oe)) | 0), + (o = (o + Math.imul(R, ae)) | 0), + (n = (n + Math.imul(N, ue)) | 0), + (i = ((i = (i + Math.imul(N, ce)) | 0) + Math.imul(x, ue)) | 0), + (o = (o + Math.imul(x, ce)) | 0), + (n = (n + Math.imul(M, le)) | 0), + (i = ((i = (i + Math.imul(M, de)) | 0) + Math.imul(T, le)) | 0), + (o = (o + Math.imul(T, de)) | 0)) + var Ne = + (((c + (n = (n + Math.imul(S, pe)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(S, ye)) | 0) + Math.imul(A, pe)) | 0)) << 13)) | 0 + ;((c = ((((o = (o + Math.imul(A, ye)) | 0) + (i >>> 13)) | 0) + (Ne >>> 26)) | 0), + (Ne &= 67108863), + (n = Math.imul(j, re)), + (i = ((i = Math.imul(j, ne)) + Math.imul(F, re)) | 0), + (o = Math.imul(F, ne)), + (n = (n + Math.imul(B, oe)) | 0), + (i = ((i = (i + Math.imul(B, ae)) | 0) + Math.imul(D, oe)) | 0), + (o = (o + Math.imul(D, ae)) | 0), + (n = (n + Math.imul(k, ue)) | 0), + (i = ((i = (i + Math.imul(k, ce)) | 0) + Math.imul(R, ue)) | 0), + (o = (o + Math.imul(R, ce)) | 0), + (n = (n + Math.imul(N, le)) | 0), + (i = ((i = (i + Math.imul(N, de)) | 0) + Math.imul(x, le)) | 0), + (o = (o + Math.imul(x, de)) | 0)) + var xe = + (((c + (n = (n + Math.imul(M, pe)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(M, ye)) | 0) + Math.imul(T, pe)) | 0)) << 13)) | 0 + ;((c = ((((o = (o + Math.imul(T, ye)) | 0) + (i >>> 13)) | 0) + (xe >>> 26)) | 0), + (xe &= 67108863), + (n = Math.imul(j, oe)), + (i = ((i = Math.imul(j, ae)) + Math.imul(F, oe)) | 0), + (o = Math.imul(F, ae)), + (n = (n + Math.imul(B, ue)) | 0), + (i = ((i = (i + Math.imul(B, ce)) | 0) + Math.imul(D, ue)) | 0), + (o = (o + Math.imul(D, ce)) | 0), + (n = (n + Math.imul(k, le)) | 0), + (i = ((i = (i + Math.imul(k, de)) | 0) + Math.imul(R, le)) | 0), + (o = (o + Math.imul(R, de)) | 0)) + var Le = + (((c + (n = (n + Math.imul(N, pe)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(N, ye)) | 0) + Math.imul(x, pe)) | 0)) << 13)) | 0 + ;((c = ((((o = (o + Math.imul(x, ye)) | 0) + (i >>> 13)) | 0) + (Le >>> 26)) | 0), + (Le &= 67108863), + (n = Math.imul(j, ue)), + (i = ((i = Math.imul(j, ce)) + Math.imul(F, ue)) | 0), + (o = Math.imul(F, ce)), + (n = (n + Math.imul(B, le)) | 0), + (i = ((i = (i + Math.imul(B, de)) | 0) + Math.imul(D, le)) | 0), + (o = (o + Math.imul(D, de)) | 0)) + var ke = + (((c + (n = (n + Math.imul(k, pe)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(k, ye)) | 0) + Math.imul(R, pe)) | 0)) << 13)) | 0 + ;((c = ((((o = (o + Math.imul(R, ye)) | 0) + (i >>> 13)) | 0) + (ke >>> 26)) | 0), + (ke &= 67108863), + (n = Math.imul(j, le)), + (i = ((i = Math.imul(j, de)) + Math.imul(F, le)) | 0), + (o = Math.imul(F, de))) + var Re = + (((c + (n = (n + Math.imul(B, pe)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(B, ye)) | 0) + Math.imul(D, pe)) | 0)) << 13)) | 0 + ;((c = ((((o = (o + Math.imul(D, ye)) | 0) + (i >>> 13)) | 0) + (Re >>> 26)) | 0), (Re &= 67108863)) + var Pe = (((c + (n = Math.imul(j, pe))) | 0) + ((8191 & (i = ((i = Math.imul(j, ye)) + Math.imul(F, pe)) | 0)) << 13)) | 0 + return ( + (c = ((((o = Math.imul(F, ye)) + (i >>> 13)) | 0) + (Pe >>> 26)) | 0), + (Pe &= 67108863), + (u[0] = ge), + (u[1] = be), + (u[2] = me), + (u[3] = ve), + (u[4] = we), + (u[5] = _e), + (u[6] = Ee), + (u[7] = Se), + (u[8] = Ae), + (u[9] = Oe), + (u[10] = Me), + (u[11] = Te), + (u[12] = Ie), + (u[13] = Ne), + (u[14] = xe), + (u[15] = Le), + (u[16] = ke), + (u[17] = Re), + (u[18] = Pe), + 0 !== c && ((u[19] = c), r.length++), + r + ) + } + function b(e, t, r) { + ;((r.negative = t.negative ^ e.negative), (r.length = e.length + t.length)) + for (var n = 0, i = 0, o = 0; o < r.length - 1; o++) { + var a = i + i = 0 + for (var s = 67108863 & n, u = Math.min(o, t.length - 1), c = Math.max(0, o - e.length + 1); c <= u; c++) { + var f = o - c, + l = (0 | e.words[f]) * (0 | t.words[c]), + d = 67108863 & l + ;((s = 67108863 & (d = (d + s) | 0)), (i += (a = ((a = (a + ((l / 67108864) | 0)) | 0) + (d >>> 26)) | 0) >>> 26), (a &= 67108863)) + } + ;((r.words[o] = s), (n = a), (a = i)) + } + return (0 !== n ? (r.words[o] = n) : r.length--, r._strip()) + } + function m(e, t, r) { + return b(e, t, r) + } + function v(e, t) { + ;((this.x = e), (this.y = t)) + } + ;(Math.imul || (g = y), + (o.prototype.mulTo = function (e, t) { + var r = this.length + e.length + return 10 === this.length && 10 === e.length ? g(this, e, t) : r < 63 ? y(this, e, t) : r < 1024 ? b(this, e, t) : m(this, e, t) + }), + (v.prototype.makeRBT = function (e) { + for (var t = new Array(e), r = o.prototype._countBits(e) - 1, n = 0; n < e; n++) t[n] = this.revBin(n, r, e) + return t + }), + (v.prototype.revBin = function (e, t, r) { + if (0 === e || e === r - 1) return e + for (var n = 0, i = 0; i < t; i++) ((n |= (1 & e) << (t - i - 1)), (e >>= 1)) + return n + }), + (v.prototype.permute = function (e, t, r, n, i, o) { + for (var a = 0; a < o; a++) ((n[a] = t[e[a]]), (i[a] = r[e[a]])) + }), + (v.prototype.transform = function (e, t, r, n, i, o) { + this.permute(o, e, t, r, n, i) + for (var a = 1; a < i; a <<= 1) + for (var s = a << 1, u = Math.cos((2 * Math.PI) / s), c = Math.sin((2 * Math.PI) / s), f = 0; f < i; f += s) + for (var l = u, d = c, h = 0; h < a; h++) { + var p = r[f + h], + y = n[f + h], + g = r[f + h + a], + b = n[f + h + a], + m = l * g - d * b + ;((b = l * b + d * g), + (g = m), + (r[f + h] = p + g), + (n[f + h] = y + b), + (r[f + h + a] = p - g), + (n[f + h + a] = y - b), + h !== s && ((m = u * l - c * d), (d = u * d + c * l), (l = m))) + } + }), + (v.prototype.guessLen13b = function (e, t) { + var r = 1 | Math.max(t, e), + n = 1 & r, + i = 0 + for (r = (r / 2) | 0; r; r >>>= 1) i++ + return 1 << (i + 1 + n) + }), + (v.prototype.conjugate = function (e, t, r) { + if (!(r <= 1)) + for (var n = 0; n < r / 2; n++) { + var i = e[n] + ;((e[n] = e[r - n - 1]), (e[r - n - 1] = i), (i = t[n]), (t[n] = -t[r - n - 1]), (t[r - n - 1] = -i)) + } + }), + (v.prototype.normalize13b = function (e, t) { + for (var r = 0, n = 0; n < t / 2; n++) { + var i = 8192 * Math.round(e[2 * n + 1] / t) + Math.round(e[2 * n] / t) + r + ;((e[n] = 67108863 & i), (r = i < 67108864 ? 0 : (i / 67108864) | 0)) + } + return e + }), + (v.prototype.convert13b = function (e, t, r, i) { + for (var o = 0, a = 0; a < t; a++) ((o += 0 | e[a]), (r[2 * a] = 8191 & o), (o >>>= 13), (r[2 * a + 1] = 8191 & o), (o >>>= 13)) + for (a = 2 * t; a < i; ++a) r[a] = 0 + ;(n(0 === o), n(0 == (-8192 & o))) + }), + (v.prototype.stub = function (e) { + for (var t = new Array(e), r = 0; r < e; r++) t[r] = 0 + return t + }), + (v.prototype.mulp = function (e, t, r) { + var n = 2 * this.guessLen13b(e.length, t.length), + i = this.makeRBT(n), + o = this.stub(n), + a = new Array(n), + s = new Array(n), + u = new Array(n), + c = new Array(n), + f = new Array(n), + l = new Array(n), + d = r.words + ;((d.length = n), + this.convert13b(e.words, e.length, a, n), + this.convert13b(t.words, t.length, c, n), + this.transform(a, o, s, u, n, i), + this.transform(c, o, f, l, n, i)) + for (var h = 0; h < n; h++) { + var p = s[h] * f[h] - u[h] * l[h] + ;((u[h] = s[h] * l[h] + u[h] * f[h]), (s[h] = p)) + } + return ( + this.conjugate(s, u, n), + this.transform(s, u, d, o, n, i), + this.conjugate(d, o, n), + this.normalize13b(d, n), + (r.negative = e.negative ^ t.negative), + (r.length = e.length + t.length), + r._strip() + ) + }), + (o.prototype.mul = function (e) { + var t = new o(null) + return ((t.words = new Array(this.length + e.length)), this.mulTo(e, t)) + }), + (o.prototype.mulf = function (e) { + var t = new o(null) + return ((t.words = new Array(this.length + e.length)), m(this, e, t)) + }), + (o.prototype.imul = function (e) { + return this.clone().mulTo(e, this) + }), + (o.prototype.imuln = function (e) { + var t = e < 0 + ;(t && (e = -e), n('number' == typeof e), n(e < 67108864)) + for (var r = 0, i = 0; i < this.length; i++) { + var o = (0 | this.words[i]) * e, + a = (67108863 & o) + (67108863 & r) + ;((r >>= 26), (r += (o / 67108864) | 0), (r += a >>> 26), (this.words[i] = 67108863 & a)) + } + return (0 !== r && ((this.words[i] = r), this.length++), t ? this.ineg() : this) + }), + (o.prototype.muln = function (e) { + return this.clone().imuln(e) + }), + (o.prototype.sqr = function () { + return this.mul(this) + }), + (o.prototype.isqr = function () { + return this.imul(this.clone()) + }), + (o.prototype.pow = function (e) { + var t = (function (e) { + for (var t = new Array(e.bitLength()), r = 0; r < t.length; r++) { + var n = (r / 26) | 0, + i = r % 26 + t[r] = (e.words[n] >>> i) & 1 + } + return t + })(e) + if (0 === t.length) return new o(1) + for (var r = this, n = 0; n < t.length && 0 === t[n]; n++, r = r.sqr()); + if (++n < t.length) for (var i = r.sqr(); n < t.length; n++, i = i.sqr()) 0 !== t[n] && (r = r.mul(i)) + return r + }), + (o.prototype.iushln = function (e) { + n('number' == typeof e && e >= 0) + var t, + r = e % 26, + i = (e - r) / 26, + o = (67108863 >>> (26 - r)) << (26 - r) + if (0 !== r) { + var a = 0 + for (t = 0; t < this.length; t++) { + var s = this.words[t] & o, + u = ((0 | this.words[t]) - s) << r + ;((this.words[t] = u | a), (a = s >>> (26 - r))) + } + a && ((this.words[t] = a), this.length++) + } + if (0 !== i) { + for (t = this.length - 1; t >= 0; t--) this.words[t + i] = this.words[t] + for (t = 0; t < i; t++) this.words[t] = 0 + this.length += i + } + return this._strip() + }), + (o.prototype.ishln = function (e) { + return (n(0 === this.negative), this.iushln(e)) + }), + (o.prototype.iushrn = function (e, t, r) { + var i + ;(n('number' == typeof e && e >= 0), (i = t ? (t - (t % 26)) / 26 : 0)) + var o = e % 26, + a = Math.min((e - o) / 26, this.length), + s = 67108863 ^ ((67108863 >>> o) << o), + u = r + if (((i -= a), (i = Math.max(0, i)), u)) { + for (var c = 0; c < a; c++) u.words[c] = this.words[c] + u.length = a + } + if (0 === a); + else if (this.length > a) for (this.length -= a, c = 0; c < this.length; c++) this.words[c] = this.words[c + a] + else ((this.words[0] = 0), (this.length = 1)) + var f = 0 + for (c = this.length - 1; c >= 0 && (0 !== f || c >= i); c--) { + var l = 0 | this.words[c] + ;((this.words[c] = (f << (26 - o)) | (l >>> o)), (f = l & s)) + } + return (u && 0 !== f && (u.words[u.length++] = f), 0 === this.length && ((this.words[0] = 0), (this.length = 1)), this._strip()) + }), + (o.prototype.ishrn = function (e, t, r) { + return (n(0 === this.negative), this.iushrn(e, t, r)) + }), + (o.prototype.shln = function (e) { + return this.clone().ishln(e) + }), + (o.prototype.ushln = function (e) { + return this.clone().iushln(e) + }), + (o.prototype.shrn = function (e) { + return this.clone().ishrn(e) + }), + (o.prototype.ushrn = function (e) { + return this.clone().iushrn(e) + }), + (o.prototype.testn = function (e) { + n('number' == typeof e && e >= 0) + var t = e % 26, + r = (e - t) / 26, + i = 1 << t + return !(this.length <= r || !(this.words[r] & i)) + }), + (o.prototype.imaskn = function (e) { + n('number' == typeof e && e >= 0) + var t = e % 26, + r = (e - t) / 26 + if ((n(0 === this.negative, 'imaskn works only with positive numbers'), this.length <= r)) return this + if ((0 !== t && r++, (this.length = Math.min(r, this.length)), 0 !== t)) { + var i = 67108863 ^ ((67108863 >>> t) << t) + this.words[this.length - 1] &= i + } + return this._strip() + }), + (o.prototype.maskn = function (e) { + return this.clone().imaskn(e) + }), + (o.prototype.iaddn = function (e) { + return ( + n('number' == typeof e), + n(e < 67108864), + e < 0 + ? this.isubn(-e) + : 0 !== this.negative + ? 1 === this.length && (0 | this.words[0]) <= e + ? ((this.words[0] = e - (0 | this.words[0])), (this.negative = 0), this) + : ((this.negative = 0), this.isubn(e), (this.negative = 1), this) + : this._iaddn(e) + ) + }), + (o.prototype._iaddn = function (e) { + this.words[0] += e + for (var t = 0; t < this.length && this.words[t] >= 67108864; t++) + ((this.words[t] -= 67108864), t === this.length - 1 ? (this.words[t + 1] = 1) : this.words[t + 1]++) + return ((this.length = Math.max(this.length, t + 1)), this) + }), + (o.prototype.isubn = function (e) { + if ((n('number' == typeof e), n(e < 67108864), e < 0)) return this.iaddn(-e) + if (0 !== this.negative) return ((this.negative = 0), this.iaddn(e), (this.negative = 1), this) + if (((this.words[0] -= e), 1 === this.length && this.words[0] < 0)) ((this.words[0] = -this.words[0]), (this.negative = 1)) + else for (var t = 0; t < this.length && this.words[t] < 0; t++) ((this.words[t] += 67108864), (this.words[t + 1] -= 1)) + return this._strip() + }), + (o.prototype.addn = function (e) { + return this.clone().iaddn(e) + }), + (o.prototype.subn = function (e) { + return this.clone().isubn(e) + }), + (o.prototype.iabs = function () { + return ((this.negative = 0), this) + }), + (o.prototype.abs = function () { + return this.clone().iabs() + }), + (o.prototype._ishlnsubmul = function (e, t, r) { + var i, + o, + a = e.length + r + this._expand(a) + var s = 0 + for (i = 0; i < e.length; i++) { + o = (0 | this.words[i + r]) + s + var u = (0 | e.words[i]) * t + ;((s = ((o -= 67108863 & u) >> 26) - ((u / 67108864) | 0)), (this.words[i + r] = 67108863 & o)) + } + for (; i < this.length - r; i++) ((s = (o = (0 | this.words[i + r]) + s) >> 26), (this.words[i + r] = 67108863 & o)) + if (0 === s) return this._strip() + for (n(-1 === s), s = 0, i = 0; i < this.length; i++) ((s = (o = -(0 | this.words[i]) + s) >> 26), (this.words[i] = 67108863 & o)) + return ((this.negative = 1), this._strip()) + }), + (o.prototype._wordDiv = function (e, t) { + var r = (this.length, e.length), + n = this.clone(), + i = e, + a = 0 | i.words[i.length - 1] + 0 != (r = 26 - this._countBits(a)) && ((i = i.ushln(r)), n.iushln(r), (a = 0 | i.words[i.length - 1])) + var s, + u = n.length - i.length + if ('mod' !== t) { + ;(((s = new o(null)).length = u + 1), (s.words = new Array(s.length))) + for (var c = 0; c < s.length; c++) s.words[c] = 0 + } + var f = n.clone()._ishlnsubmul(i, 1, u) + 0 === f.negative && ((n = f), s && (s.words[u] = 1)) + for (var l = u - 1; l >= 0; l--) { + var d = 67108864 * (0 | n.words[i.length + l]) + (0 | n.words[i.length + l - 1]) + for (d = Math.min((d / a) | 0, 67108863), n._ishlnsubmul(i, d, l); 0 !== n.negative; ) + (d--, (n.negative = 0), n._ishlnsubmul(i, 1, l), n.isZero() || (n.negative ^= 1)) + s && (s.words[l] = d) + } + return (s && s._strip(), n._strip(), 'div' !== t && 0 !== r && n.iushrn(r), { div: s || null, mod: n }) + }), + (o.prototype.divmod = function (e, t, r) { + return ( + n(!e.isZero()), + this.isZero() + ? { div: new o(0), mod: new o(0) } + : 0 !== this.negative && 0 === e.negative + ? ((s = this.neg().divmod(e, t)), + 'mod' !== t && (i = s.div.neg()), + 'div' !== t && ((a = s.mod.neg()), r && 0 !== a.negative && a.iadd(e)), + { div: i, mod: a }) + : 0 === this.negative && 0 !== e.negative + ? ((s = this.divmod(e.neg(), t)), 'mod' !== t && (i = s.div.neg()), { div: i, mod: s.mod }) + : 0 != (this.negative & e.negative) + ? ((s = this.neg().divmod(e.neg(), t)), + 'div' !== t && ((a = s.mod.neg()), r && 0 !== a.negative && a.isub(e)), + { div: s.div, mod: a }) + : e.length > this.length || this.cmp(e) < 0 + ? { div: new o(0), mod: this } + : 1 === e.length + ? 'div' === t + ? { div: this.divn(e.words[0]), mod: null } + : 'mod' === t + ? { div: null, mod: new o(this.modrn(e.words[0])) } + : { div: this.divn(e.words[0]), mod: new o(this.modrn(e.words[0])) } + : this._wordDiv(e, t) + ) + var i, a, s + }), + (o.prototype.div = function (e) { + return this.divmod(e, 'div', !1).div + }), + (o.prototype.mod = function (e) { + return this.divmod(e, 'mod', !1).mod + }), + (o.prototype.umod = function (e) { + return this.divmod(e, 'mod', !0).mod + }), + (o.prototype.divRound = function (e) { + var t = this.divmod(e) + if (t.mod.isZero()) return t.div + var r = 0 !== t.div.negative ? t.mod.isub(e) : t.mod, + n = e.ushrn(1), + i = e.andln(1), + o = r.cmp(n) + return o < 0 || (1 === i && 0 === o) ? t.div : 0 !== t.div.negative ? t.div.isubn(1) : t.div.iaddn(1) + }), + (o.prototype.modrn = function (e) { + var t = e < 0 + ;(t && (e = -e), n(e <= 67108863)) + for (var r = (1 << 26) % e, i = 0, o = this.length - 1; o >= 0; o--) i = (r * i + (0 | this.words[o])) % e + return t ? -i : i + }), + (o.prototype.modn = function (e) { + return this.modrn(e) + }), + (o.prototype.idivn = function (e) { + var t = e < 0 + ;(t && (e = -e), n(e <= 67108863)) + for (var r = 0, i = this.length - 1; i >= 0; i--) { + var o = (0 | this.words[i]) + 67108864 * r + ;((this.words[i] = (o / e) | 0), (r = o % e)) + } + return (this._strip(), t ? this.ineg() : this) + }), + (o.prototype.divn = function (e) { + return this.clone().idivn(e) + }), + (o.prototype.egcd = function (e) { + ;(n(0 === e.negative), n(!e.isZero())) + var t = this, + r = e.clone() + t = 0 !== t.negative ? t.umod(e) : t.clone() + for (var i = new o(1), a = new o(0), s = new o(0), u = new o(1), c = 0; t.isEven() && r.isEven(); ) (t.iushrn(1), r.iushrn(1), ++c) + for (var f = r.clone(), l = t.clone(); !t.isZero(); ) { + for (var d = 0, h = 1; 0 == (t.words[0] & h) && d < 26; ++d, h <<= 1); + if (d > 0) for (t.iushrn(d); d-- > 0; ) ((i.isOdd() || a.isOdd()) && (i.iadd(f), a.isub(l)), i.iushrn(1), a.iushrn(1)) + for (var p = 0, y = 1; 0 == (r.words[0] & y) && p < 26; ++p, y <<= 1); + if (p > 0) for (r.iushrn(p); p-- > 0; ) ((s.isOdd() || u.isOdd()) && (s.iadd(f), u.isub(l)), s.iushrn(1), u.iushrn(1)) + t.cmp(r) >= 0 ? (t.isub(r), i.isub(s), a.isub(u)) : (r.isub(t), s.isub(i), u.isub(a)) + } + return { a: s, b: u, gcd: r.iushln(c) } + }), + (o.prototype._invmp = function (e) { + ;(n(0 === e.negative), n(!e.isZero())) + var t = this, + r = e.clone() + t = 0 !== t.negative ? t.umod(e) : t.clone() + for (var i, a = new o(1), s = new o(0), u = r.clone(); t.cmpn(1) > 0 && r.cmpn(1) > 0; ) { + for (var c = 0, f = 1; 0 == (t.words[0] & f) && c < 26; ++c, f <<= 1); + if (c > 0) for (t.iushrn(c); c-- > 0; ) (a.isOdd() && a.iadd(u), a.iushrn(1)) + for (var l = 0, d = 1; 0 == (r.words[0] & d) && l < 26; ++l, d <<= 1); + if (l > 0) for (r.iushrn(l); l-- > 0; ) (s.isOdd() && s.iadd(u), s.iushrn(1)) + t.cmp(r) >= 0 ? (t.isub(r), a.isub(s)) : (r.isub(t), s.isub(a)) + } + return ((i = 0 === t.cmpn(1) ? a : s).cmpn(0) < 0 && i.iadd(e), i) + }), + (o.prototype.gcd = function (e) { + if (this.isZero()) return e.abs() + if (e.isZero()) return this.abs() + var t = this.clone(), + r = e.clone() + ;((t.negative = 0), (r.negative = 0)) + for (var n = 0; t.isEven() && r.isEven(); n++) (t.iushrn(1), r.iushrn(1)) + for (;;) { + for (; t.isEven(); ) t.iushrn(1) + for (; r.isEven(); ) r.iushrn(1) + var i = t.cmp(r) + if (i < 0) { + var o = t + ;((t = r), (r = o)) + } else if (0 === i || 0 === r.cmpn(1)) break + t.isub(r) + } + return r.iushln(n) + }), + (o.prototype.invm = function (e) { + return this.egcd(e).a.umod(e) + }), + (o.prototype.isEven = function () { + return 0 == (1 & this.words[0]) + }), + (o.prototype.isOdd = function () { + return 1 == (1 & this.words[0]) + }), + (o.prototype.andln = function (e) { + return this.words[0] & e + }), + (o.prototype.bincn = function (e) { + n('number' == typeof e) + var t = e % 26, + r = (e - t) / 26, + i = 1 << t + if (this.length <= r) return (this._expand(r + 1), (this.words[r] |= i), this) + for (var o = i, a = r; 0 !== o && a < this.length; a++) { + var s = 0 | this.words[a] + ;((o = (s += o) >>> 26), (s &= 67108863), (this.words[a] = s)) + } + return (0 !== o && ((this.words[a] = o), this.length++), this) + }), + (o.prototype.isZero = function () { + return 1 === this.length && 0 === this.words[0] + }), + (o.prototype.cmpn = function (e) { + var t, + r = e < 0 + if (0 !== this.negative && !r) return -1 + if (0 === this.negative && r) return 1 + if ((this._strip(), this.length > 1)) t = 1 + else { + ;(r && (e = -e), n(e <= 67108863, 'Number is too big')) + var i = 0 | this.words[0] + t = i === e ? 0 : i < e ? -1 : 1 + } + return 0 !== this.negative ? 0 | -t : t + }), + (o.prototype.cmp = function (e) { + if (0 !== this.negative && 0 === e.negative) return -1 + if (0 === this.negative && 0 !== e.negative) return 1 + var t = this.ucmp(e) + return 0 !== this.negative ? 0 | -t : t + }), + (o.prototype.ucmp = function (e) { + if (this.length > e.length) return 1 + if (this.length < e.length) return -1 + for (var t = 0, r = this.length - 1; r >= 0; r--) { + var n = 0 | this.words[r], + i = 0 | e.words[r] + if (n !== i) { + n < i ? (t = -1) : n > i && (t = 1) + break + } + } + return t + }), + (o.prototype.gtn = function (e) { + return 1 === this.cmpn(e) + }), + (o.prototype.gt = function (e) { + return 1 === this.cmp(e) + }), + (o.prototype.gten = function (e) { + return this.cmpn(e) >= 0 + }), + (o.prototype.gte = function (e) { + return this.cmp(e) >= 0 + }), + (o.prototype.ltn = function (e) { + return -1 === this.cmpn(e) + }), + (o.prototype.lt = function (e) { + return -1 === this.cmp(e) + }), + (o.prototype.lten = function (e) { + return this.cmpn(e) <= 0 + }), + (o.prototype.lte = function (e) { + return this.cmp(e) <= 0 + }), + (o.prototype.eqn = function (e) { + return 0 === this.cmpn(e) + }), + (o.prototype.eq = function (e) { + return 0 === this.cmp(e) + }), + (o.red = function (e) { + return new M(e) + }), + (o.prototype.toRed = function (e) { + return ( + n(!this.red, 'Already a number in reduction context'), + n(0 === this.negative, 'red works only with positives'), + e.convertTo(this)._forceRed(e) + ) + }), + (o.prototype.fromRed = function () { + return (n(this.red, 'fromRed works only with numbers in reduction context'), this.red.convertFrom(this)) + }), + (o.prototype._forceRed = function (e) { + return ((this.red = e), this) + }), + (o.prototype.forceRed = function (e) { + return (n(!this.red, 'Already a number in reduction context'), this._forceRed(e)) + }), + (o.prototype.redAdd = function (e) { + return (n(this.red, 'redAdd works only with red numbers'), this.red.add(this, e)) + }), + (o.prototype.redIAdd = function (e) { + return (n(this.red, 'redIAdd works only with red numbers'), this.red.iadd(this, e)) + }), + (o.prototype.redSub = function (e) { + return (n(this.red, 'redSub works only with red numbers'), this.red.sub(this, e)) + }), + (o.prototype.redISub = function (e) { + return (n(this.red, 'redISub works only with red numbers'), this.red.isub(this, e)) + }), + (o.prototype.redShl = function (e) { + return (n(this.red, 'redShl works only with red numbers'), this.red.shl(this, e)) + }), + (o.prototype.redMul = function (e) { + return (n(this.red, 'redMul works only with red numbers'), this.red._verify2(this, e), this.red.mul(this, e)) + }), + (o.prototype.redIMul = function (e) { + return (n(this.red, 'redMul works only with red numbers'), this.red._verify2(this, e), this.red.imul(this, e)) + }), + (o.prototype.redSqr = function () { + return (n(this.red, 'redSqr works only with red numbers'), this.red._verify1(this), this.red.sqr(this)) + }), + (o.prototype.redISqr = function () { + return (n(this.red, 'redISqr works only with red numbers'), this.red._verify1(this), this.red.isqr(this)) + }), + (o.prototype.redSqrt = function () { + return (n(this.red, 'redSqrt works only with red numbers'), this.red._verify1(this), this.red.sqrt(this)) + }), + (o.prototype.redInvm = function () { + return (n(this.red, 'redInvm works only with red numbers'), this.red._verify1(this), this.red.invm(this)) + }), + (o.prototype.redNeg = function () { + return (n(this.red, 'redNeg works only with red numbers'), this.red._verify1(this), this.red.neg(this)) + }), + (o.prototype.redPow = function (e) { + return (n(this.red && !e.red, 'redPow(normalNum)'), this.red._verify1(this), this.red.pow(this, e)) + })) + var w = { k256: null, p224: null, p192: null, p25519: null } + function _(e, t) { + ;((this.name = e), + (this.p = new o(t, 16)), + (this.n = this.p.bitLength()), + (this.k = new o(1).iushln(this.n).isub(this.p)), + (this.tmp = this._tmp())) + } + function E() { + _.call(this, 'k256', 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f') + } + function S() { + _.call(this, 'p224', 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001') + } + function A() { + _.call(this, 'p192', 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff') + } + function O() { + _.call(this, '25519', '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed') + } + function M(e) { + if ('string' == typeof e) { + var t = o._prime(e) + ;((this.m = t.p), (this.prime = t)) + } else (n(e.gtn(1), 'modulus must be greater than 1'), (this.m = e), (this.prime = null)) + } + function T(e) { + ;(M.call(this, e), + (this.shift = this.m.bitLength()), + this.shift % 26 != 0 && (this.shift += 26 - (this.shift % 26)), + (this.r = new o(1).iushln(this.shift)), + (this.r2 = this.imod(this.r.sqr())), + (this.rinv = this.r._invmp(this.m)), + (this.minv = this.rinv.mul(this.r).isubn(1).div(this.m)), + (this.minv = this.minv.umod(this.r)), + (this.minv = this.r.sub(this.minv))) + } + ;((_.prototype._tmp = function () { + var e = new o(null) + return ((e.words = new Array(Math.ceil(this.n / 13))), e) + }), + (_.prototype.ireduce = function (e) { + var t, + r = e + do { + ;(this.split(r, this.tmp), (t = (r = (r = this.imulK(r)).iadd(this.tmp)).bitLength())) + } while (t > this.n) + var n = t < this.n ? -1 : r.ucmp(this.p) + return (0 === n ? ((r.words[0] = 0), (r.length = 1)) : n > 0 ? r.isub(this.p) : void 0 !== r.strip ? r.strip() : r._strip(), r) + }), + (_.prototype.split = function (e, t) { + e.iushrn(this.n, 0, t) + }), + (_.prototype.imulK = function (e) { + return e.imul(this.k) + }), + i(E, _), + (E.prototype.split = function (e, t) { + for (var r = 4194303, n = Math.min(e.length, 9), i = 0; i < n; i++) t.words[i] = e.words[i] + if (((t.length = n), e.length <= 9)) return ((e.words[0] = 0), void (e.length = 1)) + var o = e.words[9] + for (t.words[t.length++] = o & r, i = 10; i < e.length; i++) { + var a = 0 | e.words[i] + ;((e.words[i - 10] = ((a & r) << 4) | (o >>> 22)), (o = a)) + } + ;((o >>>= 22), (e.words[i - 10] = o), 0 === o && e.length > 10 ? (e.length -= 10) : (e.length -= 9)) + }), + (E.prototype.imulK = function (e) { + ;((e.words[e.length] = 0), (e.words[e.length + 1] = 0), (e.length += 2)) + for (var t = 0, r = 0; r < e.length; r++) { + var n = 0 | e.words[r] + ;((t += 977 * n), (e.words[r] = 67108863 & t), (t = 64 * n + ((t / 67108864) | 0))) + } + return (0 === e.words[e.length - 1] && (e.length--, 0 === e.words[e.length - 1] && e.length--), e) + }), + i(S, _), + i(A, _), + i(O, _), + (O.prototype.imulK = function (e) { + for (var t = 0, r = 0; r < e.length; r++) { + var n = 19 * (0 | e.words[r]) + t, + i = 67108863 & n + ;((n >>>= 26), (e.words[r] = i), (t = n)) + } + return (0 !== t && (e.words[e.length++] = t), e) + }), + (o._prime = function (e) { + if (w[e]) return w[e] + var t + if ('k256' === e) t = new E() + else if ('p224' === e) t = new S() + else if ('p192' === e) t = new A() + else { + if ('p25519' !== e) throw new Error('Unknown prime ' + e) + t = new O() + } + return ((w[e] = t), t) + }), + (M.prototype._verify1 = function (e) { + ;(n(0 === e.negative, 'red works only with positives'), n(e.red, 'red works only with red numbers')) + }), + (M.prototype._verify2 = function (e, t) { + ;(n(0 == (e.negative | t.negative), 'red works only with positives'), n(e.red && e.red === t.red, 'red works only with red numbers')) + }), + (M.prototype.imod = function (e) { + return this.prime ? this.prime.ireduce(e)._forceRed(this) : (f(e, e.umod(this.m)._forceRed(this)), e) + }), + (M.prototype.neg = function (e) { + return e.isZero() ? e.clone() : this.m.sub(e)._forceRed(this) + }), + (M.prototype.add = function (e, t) { + this._verify2(e, t) + var r = e.add(t) + return (r.cmp(this.m) >= 0 && r.isub(this.m), r._forceRed(this)) + }), + (M.prototype.iadd = function (e, t) { + this._verify2(e, t) + var r = e.iadd(t) + return (r.cmp(this.m) >= 0 && r.isub(this.m), r) + }), + (M.prototype.sub = function (e, t) { + this._verify2(e, t) + var r = e.sub(t) + return (r.cmpn(0) < 0 && r.iadd(this.m), r._forceRed(this)) + }), + (M.prototype.isub = function (e, t) { + this._verify2(e, t) + var r = e.isub(t) + return (r.cmpn(0) < 0 && r.iadd(this.m), r) + }), + (M.prototype.shl = function (e, t) { + return (this._verify1(e), this.imod(e.ushln(t))) + }), + (M.prototype.imul = function (e, t) { + return (this._verify2(e, t), this.imod(e.imul(t))) + }), + (M.prototype.mul = function (e, t) { + return (this._verify2(e, t), this.imod(e.mul(t))) + }), + (M.prototype.isqr = function (e) { + return this.imul(e, e.clone()) + }), + (M.prototype.sqr = function (e) { + return this.mul(e, e) + }), + (M.prototype.sqrt = function (e) { + if (e.isZero()) return e.clone() + var t = this.m.andln(3) + if ((n(t % 2 == 1), 3 === t)) { + var r = this.m.add(new o(1)).iushrn(2) + return this.pow(e, r) + } + for (var i = this.m.subn(1), a = 0; !i.isZero() && 0 === i.andln(1); ) (a++, i.iushrn(1)) + n(!i.isZero()) + var s = new o(1).toRed(this), + u = s.redNeg(), + c = this.m.subn(1).iushrn(1), + f = this.m.bitLength() + for (f = new o(2 * f * f).toRed(this); 0 !== this.pow(f, c).cmp(u); ) f.redIAdd(u) + for (var l = this.pow(f, i), d = this.pow(e, i.addn(1).iushrn(1)), h = this.pow(e, i), p = a; 0 !== h.cmp(s); ) { + for (var y = h, g = 0; 0 !== y.cmp(s); g++) y = y.redSqr() + n(g < p) + var b = this.pow(l, new o(1).iushln(p - g - 1)) + ;((d = d.redMul(b)), (l = b.redSqr()), (h = h.redMul(l)), (p = g)) + } + return d + }), + (M.prototype.invm = function (e) { + var t = e._invmp(this.m) + return 0 !== t.negative ? ((t.negative = 0), this.imod(t).redNeg()) : this.imod(t) + }), + (M.prototype.pow = function (e, t) { + if (t.isZero()) return new o(1).toRed(this) + if (0 === t.cmpn(1)) return e.clone() + var r = new Array(16) + ;((r[0] = new o(1).toRed(this)), (r[1] = e)) + for (var n = 2; n < r.length; n++) r[n] = this.mul(r[n - 1], e) + var i = r[0], + a = 0, + s = 0, + u = t.bitLength() % 26 + for (0 === u && (u = 26), n = t.length - 1; n >= 0; n--) { + for (var c = t.words[n], f = u - 1; f >= 0; f--) { + var l = (c >> f) & 1 + ;(i !== r[0] && (i = this.sqr(i)), + 0 !== l || 0 !== a + ? ((a <<= 1), (a |= l), (4 == ++s || (0 === n && 0 === f)) && ((i = this.mul(i, r[a])), (s = 0), (a = 0))) + : (s = 0)) + } + u = 26 + } + return i + }), + (M.prototype.convertTo = function (e) { + var t = e.umod(this.m) + return t === e ? t.clone() : t + }), + (M.prototype.convertFrom = function (e) { + var t = e.clone() + return ((t.red = null), t) + }), + (o.mont = function (e) { + return new T(e) + }), + i(T, M), + (T.prototype.convertTo = function (e) { + return this.imod(e.ushln(this.shift)) + }), + (T.prototype.convertFrom = function (e) { + var t = this.imod(e.mul(this.rinv)) + return ((t.red = null), t) + }), + (T.prototype.imul = function (e, t) { + if (e.isZero() || t.isZero()) return ((e.words[0] = 0), (e.length = 1), e) + var r = e.imul(t), + n = r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m), + i = r.isub(n).iushrn(this.shift), + o = i + return (i.cmp(this.m) >= 0 ? (o = i.isub(this.m)) : i.cmpn(0) < 0 && (o = i.iadd(this.m)), o._forceRed(this)) + }), + (T.prototype.mul = function (e, t) { + if (e.isZero() || t.isZero()) return new o(0)._forceRed(this) + var r = e.mul(t), + n = r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m), + i = r.isub(n).iushrn(this.shift), + a = i + return (i.cmp(this.m) >= 0 ? (a = i.isub(this.m)) : i.cmpn(0) < 0 && (a = i.iadd(this.m)), a._forceRed(this)) + }), + (T.prototype.invm = function (e) { + return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this) + })) + })((e = r.nmd(e)), this) + }, + 72486: (e, t, r) => { + var n + function i(e) { + this.rand = e + } + if ( + ((e.exports = function (e) { + return (n || (n = new i(null)), n.generate(e)) + }), + (e.exports.Rand = i), + (i.prototype.generate = function (e) { + return this._rand(e) + }), + (i.prototype._rand = function (e) { + if (this.rand.getBytes) return this.rand.getBytes(e) + for (var t = new Uint8Array(e), r = 0; r < t.length; r++) t[r] = this.rand.getByte() + return t + }), + 'object' == typeof self) + ) + self.crypto && self.crypto.getRandomValues + ? (i.prototype._rand = function (e) { + var t = new Uint8Array(e) + return (self.crypto.getRandomValues(t), t) + }) + : self.msCrypto && self.msCrypto.getRandomValues + ? (i.prototype._rand = function (e) { + var t = new Uint8Array(e) + return (self.msCrypto.getRandomValues(t), t) + }) + : 'object' == typeof window && + (i.prototype._rand = function () { + throw new Error('Not implemented yet') + }) + else + try { + var o = r(38087) + if ('function' != typeof o.randomBytes) throw new Error('Not supported') + i.prototype._rand = function (e) { + return o.randomBytes(e) + } + } catch (e) {} + }, + 4692: (e, t, r) => { + var n = r(59105).Buffer + function i(e) { + n.isBuffer(e) || (e = n.from(e)) + for (var t = (e.length / 4) | 0, r = new Array(t), i = 0; i < t; i++) r[i] = e.readUInt32BE(4 * i) + return r + } + function o(e) { + for (; 0 < e.length; e++) e[0] = 0 + } + function a(e, t, r, n, i) { + for ( + var o, a, s, u, c = r[0], f = r[1], l = r[2], d = r[3], h = e[0] ^ t[0], p = e[1] ^ t[1], y = e[2] ^ t[2], g = e[3] ^ t[3], b = 4, m = 1; + m < i; + m++ + ) + ((o = c[h >>> 24] ^ f[(p >>> 16) & 255] ^ l[(y >>> 8) & 255] ^ d[255 & g] ^ t[b++]), + (a = c[p >>> 24] ^ f[(y >>> 16) & 255] ^ l[(g >>> 8) & 255] ^ d[255 & h] ^ t[b++]), + (s = c[y >>> 24] ^ f[(g >>> 16) & 255] ^ l[(h >>> 8) & 255] ^ d[255 & p] ^ t[b++]), + (u = c[g >>> 24] ^ f[(h >>> 16) & 255] ^ l[(p >>> 8) & 255] ^ d[255 & y] ^ t[b++]), + (h = o), + (p = a), + (y = s), + (g = u)) + return ( + (o = ((n[h >>> 24] << 24) | (n[(p >>> 16) & 255] << 16) | (n[(y >>> 8) & 255] << 8) | n[255 & g]) ^ t[b++]), + (a = ((n[p >>> 24] << 24) | (n[(y >>> 16) & 255] << 16) | (n[(g >>> 8) & 255] << 8) | n[255 & h]) ^ t[b++]), + (s = ((n[y >>> 24] << 24) | (n[(g >>> 16) & 255] << 16) | (n[(h >>> 8) & 255] << 8) | n[255 & p]) ^ t[b++]), + (u = ((n[g >>> 24] << 24) | (n[(h >>> 16) & 255] << 16) | (n[(p >>> 8) & 255] << 8) | n[255 & y]) ^ t[b++]), + [(o >>>= 0), (a >>>= 0), (s >>>= 0), (u >>>= 0)] + ) + } + var s = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54], + u = (function () { + for (var e = new Array(256), t = 0; t < 256; t++) e[t] = t < 128 ? t << 1 : (t << 1) ^ 283 + for (var r = [], n = [], i = [[], [], [], []], o = [[], [], [], []], a = 0, s = 0, u = 0; u < 256; ++u) { + var c = s ^ (s << 1) ^ (s << 2) ^ (s << 3) ^ (s << 4) + ;((c = (c >>> 8) ^ (255 & c) ^ 99), (r[a] = c), (n[c] = a)) + var f = e[a], + l = e[f], + d = e[l], + h = (257 * e[c]) ^ (16843008 * c) + ;((i[0][a] = (h << 24) | (h >>> 8)), + (i[1][a] = (h << 16) | (h >>> 16)), + (i[2][a] = (h << 8) | (h >>> 24)), + (i[3][a] = h), + (h = (16843009 * d) ^ (65537 * l) ^ (257 * f) ^ (16843008 * a)), + (o[0][c] = (h << 24) | (h >>> 8)), + (o[1][c] = (h << 16) | (h >>> 16)), + (o[2][c] = (h << 8) | (h >>> 24)), + (o[3][c] = h), + 0 === a ? (a = s = 1) : ((a = f ^ e[e[e[d ^ f]]]), (s ^= e[e[s]]))) + } + return { SBOX: r, INV_SBOX: n, SUB_MIX: i, INV_SUB_MIX: o } + })() + function c(e) { + ;((this._key = i(e)), this._reset()) + } + ;((c.blockSize = 16), + (c.keySize = 32), + (c.prototype.blockSize = c.blockSize), + (c.prototype.keySize = c.keySize), + (c.prototype._reset = function () { + for (var e = this._key, t = e.length, r = t + 6, n = 4 * (r + 1), i = [], o = 0; o < t; o++) i[o] = e[o] + for (o = t; o < n; o++) { + var a = i[o - 1] + ;(o % t == 0 + ? ((a = (a << 8) | (a >>> 24)), + (a = (u.SBOX[a >>> 24] << 24) | (u.SBOX[(a >>> 16) & 255] << 16) | (u.SBOX[(a >>> 8) & 255] << 8) | u.SBOX[255 & a]), + (a ^= s[(o / t) | 0] << 24)) + : t > 6 && + o % t == 4 && + (a = (u.SBOX[a >>> 24] << 24) | (u.SBOX[(a >>> 16) & 255] << 16) | (u.SBOX[(a >>> 8) & 255] << 8) | u.SBOX[255 & a]), + (i[o] = i[o - t] ^ a)) + } + for (var c = [], f = 0; f < n; f++) { + var l = n - f, + d = i[l - (f % 4 ? 0 : 4)] + c[f] = + f < 4 || l <= 4 + ? d + : u.INV_SUB_MIX[0][u.SBOX[d >>> 24]] ^ + u.INV_SUB_MIX[1][u.SBOX[(d >>> 16) & 255]] ^ + u.INV_SUB_MIX[2][u.SBOX[(d >>> 8) & 255]] ^ + u.INV_SUB_MIX[3][u.SBOX[255 & d]] + } + ;((this._nRounds = r), (this._keySchedule = i), (this._invKeySchedule = c)) + }), + (c.prototype.encryptBlockRaw = function (e) { + return a((e = i(e)), this._keySchedule, u.SUB_MIX, u.SBOX, this._nRounds) + }), + (c.prototype.encryptBlock = function (e) { + var t = this.encryptBlockRaw(e), + r = n.allocUnsafe(16) + return (r.writeUInt32BE(t[0], 0), r.writeUInt32BE(t[1], 4), r.writeUInt32BE(t[2], 8), r.writeUInt32BE(t[3], 12), r) + }), + (c.prototype.decryptBlock = function (e) { + var t = (e = i(e))[1] + ;((e[1] = e[3]), (e[3] = t)) + var r = a(e, this._invKeySchedule, u.INV_SUB_MIX, u.INV_SBOX, this._nRounds), + o = n.allocUnsafe(16) + return (o.writeUInt32BE(r[0], 0), o.writeUInt32BE(r[3], 4), o.writeUInt32BE(r[2], 8), o.writeUInt32BE(r[1], 12), o) + }), + (c.prototype.scrub = function () { + ;(o(this._keySchedule), o(this._invKeySchedule), o(this._key)) + }), + (e.exports.AES = c)) + }, + 16843: (e, t, r) => { + var n = r(4692), + i = r(59105).Buffer, + o = r(95108), + a = r(19105), + s = r(87215), + u = r(23698), + c = r(23536) + function f(e, t, r, a) { + o.call(this) + var u = i.alloc(4, 0) + this._cipher = new n.AES(t) + var f = this._cipher.encryptBlock(u) + ;((this._ghash = new s(f)), + (r = (function (e, t, r) { + if (12 === t.length) return ((e._finID = i.concat([t, i.from([0, 0, 0, 1])])), i.concat([t, i.from([0, 0, 0, 2])])) + var n = new s(r), + o = t.length, + a = o % 16 + ;(n.update(t), a && ((a = 16 - a), n.update(i.alloc(a, 0))), n.update(i.alloc(8, 0))) + var u = 8 * o, + f = i.alloc(8) + ;(f.writeUIntBE(u, 0, 8), n.update(f), (e._finID = n.state)) + var l = i.from(e._finID) + return (c(l), l) + })(this, r, f)), + (this._prev = i.from(r)), + (this._cache = i.allocUnsafe(0)), + (this._secCache = i.allocUnsafe(0)), + (this._decrypt = a), + (this._alen = 0), + (this._len = 0), + (this._mode = e), + (this._authTag = null), + (this._called = !1)) + } + ;(a(f, o), + (f.prototype._update = function (e) { + if (!this._called && this._alen) { + var t = 16 - (this._alen % 16) + t < 16 && ((t = i.alloc(t, 0)), this._ghash.update(t)) + } + this._called = !0 + var r = this._mode.encrypt(this, e) + return (this._decrypt ? this._ghash.update(e) : this._ghash.update(r), (this._len += e.length), r) + }), + (f.prototype._final = function () { + if (this._decrypt && !this._authTag) throw new Error('Unsupported state or unable to authenticate data') + var e = u(this._ghash.final(8 * this._alen, 8 * this._len), this._cipher.encryptBlock(this._finID)) + if ( + this._decrypt && + (function (e, t) { + var r = 0 + e.length !== t.length && r++ + for (var n = Math.min(e.length, t.length), i = 0; i < n; ++i) r += e[i] ^ t[i] + return r + })(e, this._authTag) + ) + throw new Error('Unsupported state or unable to authenticate data') + ;((this._authTag = e), this._cipher.scrub()) + }), + (f.prototype.getAuthTag = function () { + if (this._decrypt || !i.isBuffer(this._authTag)) throw new Error('Attempting to get auth tag in unsupported state') + return this._authTag + }), + (f.prototype.setAuthTag = function (e) { + if (!this._decrypt) throw new Error('Attempting to set auth tag in unsupported state') + this._authTag = e + }), + (f.prototype.setAAD = function (e) { + if (this._called) throw new Error('Attempting to set AAD in unsupported state') + ;(this._ghash.update(e), (this._alen += e.length)) + }), + (e.exports = f)) + }, + 43773: (e, t, r) => { + var n = r(25527), + i = r(16122), + o = r(49234) + ;((t.createCipher = t.Cipher = n.createCipher), + (t.createCipheriv = t.Cipheriv = n.createCipheriv), + (t.createDecipher = t.Decipher = i.createDecipher), + (t.createDecipheriv = t.Decipheriv = i.createDecipheriv), + (t.listCiphers = t.getCiphers = + function () { + return Object.keys(o) + })) + }, + 16122: (e, t, r) => { + var n = r(16843), + i = r(59105).Buffer, + o = r(60569), + a = r(15476), + s = r(95108), + u = r(4692), + c = r(94428) + function f(e, t, r) { + ;(s.call(this), + (this._cache = new l()), + (this._last = void 0), + (this._cipher = new u.AES(t)), + (this._prev = i.from(r)), + (this._mode = e), + (this._autopadding = !0)) + } + function l() { + this.cache = i.allocUnsafe(0) + } + function d(e, t, r) { + var s = o[e.toLowerCase()] + if (!s) throw new TypeError('invalid suite type') + if (('string' == typeof r && (r = i.from(r)), 'GCM' !== s.mode && r.length !== s.iv)) throw new TypeError('invalid iv length ' + r.length) + if (('string' == typeof t && (t = i.from(t)), t.length !== s.key / 8)) throw new TypeError('invalid key length ' + t.length) + return 'stream' === s.type ? new a(s.module, t, r, !0) : 'auth' === s.type ? new n(s.module, t, r, !0) : new f(s.module, t, r) + } + ;(r(19105)(f, s), + (f.prototype._update = function (e) { + var t, r + this._cache.add(e) + for (var n = []; (t = this._cache.get(this._autopadding)); ) ((r = this._mode.decrypt(this, t)), n.push(r)) + return i.concat(n) + }), + (f.prototype._final = function () { + var e = this._cache.flush() + if (this._autopadding) + return (function (e) { + var t = e[15] + if (t < 1 || t > 16) throw new Error('unable to decrypt data') + for (var r = -1; ++r < t; ) if (e[r + (16 - t)] !== t) throw new Error('unable to decrypt data') + if (16 !== t) return e.slice(0, 16 - t) + })(this._mode.decrypt(this, e)) + if (e) throw new Error('data not multiple of block length') + }), + (f.prototype.setAutoPadding = function (e) { + return ((this._autopadding = !!e), this) + }), + (l.prototype.add = function (e) { + this.cache = i.concat([this.cache, e]) + }), + (l.prototype.get = function (e) { + var t + if (e) { + if (this.cache.length > 16) return ((t = this.cache.slice(0, 16)), (this.cache = this.cache.slice(16)), t) + } else if (this.cache.length >= 16) return ((t = this.cache.slice(0, 16)), (this.cache = this.cache.slice(16)), t) + return null + }), + (l.prototype.flush = function () { + if (this.cache.length) return this.cache + }), + (t.createDecipher = function (e, t) { + var r = o[e.toLowerCase()] + if (!r) throw new TypeError('invalid suite type') + var n = c(t, !1, r.key, r.iv) + return d(e, n.key, n.iv) + }), + (t.createDecipheriv = d)) + }, + 25527: (e, t, r) => { + var n = r(60569), + i = r(16843), + o = r(59105).Buffer, + a = r(15476), + s = r(95108), + u = r(4692), + c = r(94428) + function f(e, t, r) { + ;(s.call(this), + (this._cache = new d()), + (this._cipher = new u.AES(t)), + (this._prev = o.from(r)), + (this._mode = e), + (this._autopadding = !0)) + } + ;(r(19105)(f, s), + (f.prototype._update = function (e) { + var t, r + this._cache.add(e) + for (var n = []; (t = this._cache.get()); ) ((r = this._mode.encrypt(this, t)), n.push(r)) + return o.concat(n) + })) + var l = o.alloc(16, 16) + function d() { + this.cache = o.allocUnsafe(0) + } + function h(e, t, r) { + var s = n[e.toLowerCase()] + if (!s) throw new TypeError('invalid suite type') + if (('string' == typeof t && (t = o.from(t)), t.length !== s.key / 8)) throw new TypeError('invalid key length ' + t.length) + if (('string' == typeof r && (r = o.from(r)), 'GCM' !== s.mode && r.length !== s.iv)) throw new TypeError('invalid iv length ' + r.length) + return 'stream' === s.type ? new a(s.module, t, r) : 'auth' === s.type ? new i(s.module, t, r) : new f(s.module, t, r) + } + ;((f.prototype._final = function () { + var e = this._cache.flush() + if (this._autopadding) return ((e = this._mode.encrypt(this, e)), this._cipher.scrub(), e) + if (!e.equals(l)) throw (this._cipher.scrub(), new Error('data not multiple of block length')) + }), + (f.prototype.setAutoPadding = function (e) { + return ((this._autopadding = !!e), this) + }), + (d.prototype.add = function (e) { + this.cache = o.concat([this.cache, e]) + }), + (d.prototype.get = function () { + if (this.cache.length > 15) { + var e = this.cache.slice(0, 16) + return ((this.cache = this.cache.slice(16)), e) + } + return null + }), + (d.prototype.flush = function () { + for (var e = 16 - this.cache.length, t = o.allocUnsafe(e), r = -1; ++r < e; ) t.writeUInt8(e, r) + return o.concat([this.cache, t]) + }), + (t.createCipheriv = h), + (t.createCipher = function (e, t) { + var r = n[e.toLowerCase()] + if (!r) throw new TypeError('invalid suite type') + var i = c(t, !1, r.key, r.iv) + return h(e, i.key, i.iv) + })) + }, + 87215: (e, t, r) => { + var n = r(59105).Buffer, + i = n.alloc(16, 0) + function o(e) { + var t = n.allocUnsafe(16) + return (t.writeUInt32BE(e[0] >>> 0, 0), t.writeUInt32BE(e[1] >>> 0, 4), t.writeUInt32BE(e[2] >>> 0, 8), t.writeUInt32BE(e[3] >>> 0, 12), t) + } + function a(e) { + ;((this.h = e), (this.state = n.alloc(16, 0)), (this.cache = n.allocUnsafe(0))) + } + ;((a.prototype.ghash = function (e) { + for (var t = -1; ++t < e.length; ) this.state[t] ^= e[t] + this._multiply() + }), + (a.prototype._multiply = function () { + for ( + var e, t, r, n = [(e = this.h).readUInt32BE(0), e.readUInt32BE(4), e.readUInt32BE(8), e.readUInt32BE(12)], i = [0, 0, 0, 0], a = -1; + ++a < 128; + ) { + for ( + 0 != (this.state[~~(a / 8)] & (1 << (7 - (a % 8)))) && ((i[0] ^= n[0]), (i[1] ^= n[1]), (i[2] ^= n[2]), (i[3] ^= n[3])), + r = 0 != (1 & n[3]), + t = 3; + t > 0; + t-- + ) + n[t] = (n[t] >>> 1) | ((1 & n[t - 1]) << 31) + ;((n[0] = n[0] >>> 1), r && (n[0] = n[0] ^ (225 << 24))) + } + this.state = o(i) + }), + (a.prototype.update = function (e) { + var t + for (this.cache = n.concat([this.cache, e]); this.cache.length >= 16; ) + ((t = this.cache.slice(0, 16)), (this.cache = this.cache.slice(16)), this.ghash(t)) + }), + (a.prototype.final = function (e, t) { + return (this.cache.length && this.ghash(n.concat([this.cache, i], 16)), this.ghash(o([0, e, 0, t])), this.state) + }), + (e.exports = a)) + }, + 23536: (e) => { + e.exports = function (e) { + for (var t, r = e.length; r--; ) { + if (255 !== (t = e.readUInt8(r))) { + ;(t++, e.writeUInt8(t, r)) + break + } + e.writeUInt8(0, r) + } + } + }, + 73846: (e, t, r) => { + var n = r(23698) + ;((t.encrypt = function (e, t) { + var r = n(t, e._prev) + return ((e._prev = e._cipher.encryptBlock(r)), e._prev) + }), + (t.decrypt = function (e, t) { + var r = e._prev + e._prev = t + var i = e._cipher.decryptBlock(t) + return n(i, r) + })) + }, + 71662: (e, t, r) => { + var n = r(59105).Buffer, + i = r(23698) + function o(e, t, r) { + var o = t.length, + a = i(t, e._cache) + return ((e._cache = e._cache.slice(o)), (e._prev = n.concat([e._prev, r ? t : a])), a) + } + t.encrypt = function (e, t, r) { + for (var i, a = n.allocUnsafe(0); t.length; ) { + if ( + (0 === e._cache.length && ((e._cache = e._cipher.encryptBlock(e._prev)), (e._prev = n.allocUnsafe(0))), !(e._cache.length <= t.length)) + ) { + a = n.concat([a, o(e, t, r)]) + break + } + ;((i = e._cache.length), (a = n.concat([a, o(e, t.slice(0, i), r)])), (t = t.slice(i))) + } + return a + } + }, + 7778: (e, t, r) => { + var n = r(59105).Buffer + function i(e, t, r) { + for (var n, i, a = -1, s = 0; ++a < 8; ) + ((n = t & (1 << (7 - a)) ? 128 : 0), + (s += (128 & (i = e._cipher.encryptBlock(e._prev)[0] ^ n)) >> (a % 8)), + (e._prev = o(e._prev, r ? n : i))) + return s + } + function o(e, t) { + var r = e.length, + i = -1, + o = n.allocUnsafe(e.length) + for (e = n.concat([e, n.from([t])]); ++i < r; ) o[i] = (e[i] << 1) | (e[i + 1] >> 7) + return o + } + t.encrypt = function (e, t, r) { + for (var o = t.length, a = n.allocUnsafe(o), s = -1; ++s < o; ) a[s] = i(e, t[s], r) + return a + } + }, + 69828: (e, t, r) => { + var n = r(59105).Buffer + function i(e, t, r) { + var i = e._cipher.encryptBlock(e._prev)[0] ^ t + return ((e._prev = n.concat([e._prev.slice(1), n.from([r ? t : i])])), i) + } + t.encrypt = function (e, t, r) { + for (var o = t.length, a = n.allocUnsafe(o), s = -1; ++s < o; ) a[s] = i(e, t[s], r) + return a + } + }, + 14855: (e, t, r) => { + var n = r(23698), + i = r(59105).Buffer, + o = r(23536) + function a(e) { + var t = e._cipher.encryptBlockRaw(e._prev) + return (o(e._prev), t) + } + t.encrypt = function (e, t) { + var r = Math.ceil(t.length / 16), + o = e._cache.length + e._cache = i.concat([e._cache, i.allocUnsafe(16 * r)]) + for (var s = 0; s < r; s++) { + var u = a(e), + c = o + 16 * s + ;(e._cache.writeUInt32BE(u[0], c + 0), + e._cache.writeUInt32BE(u[1], c + 4), + e._cache.writeUInt32BE(u[2], c + 8), + e._cache.writeUInt32BE(u[3], c + 12)) + } + var f = e._cache.slice(0, t.length) + return ((e._cache = e._cache.slice(t.length)), n(t, f)) + } + }, + 38943: (e, t) => { + ;((t.encrypt = function (e, t) { + return e._cipher.encryptBlock(t) + }), + (t.decrypt = function (e, t) { + return e._cipher.decryptBlock(t) + })) + }, + 60569: (e, t, r) => { + var n = { ECB: r(38943), CBC: r(73846), CFB: r(71662), CFB8: r(69828), CFB1: r(7778), OFB: r(12327), CTR: r(14855), GCM: r(14855) }, + i = r(49234) + for (var o in i) i[o].module = n[i[o].mode] + e.exports = i + }, + 12327: (e, t, r) => { + var n = r(18390).Buffer, + i = r(23698) + function o(e) { + return ((e._prev = e._cipher.encryptBlock(e._prev)), e._prev) + } + t.encrypt = function (e, t) { + for (; e._cache.length < t.length; ) e._cache = n.concat([e._cache, o(e)]) + var r = e._cache.slice(0, t.length) + return ((e._cache = e._cache.slice(t.length)), i(t, r)) + } + }, + 15476: (e, t, r) => { + var n = r(4692), + i = r(59105).Buffer, + o = r(95108) + function a(e, t, r, a) { + ;(o.call(this), + (this._cipher = new n.AES(t)), + (this._prev = i.from(r)), + (this._cache = i.allocUnsafe(0)), + (this._secCache = i.allocUnsafe(0)), + (this._decrypt = a), + (this._mode = e)) + } + ;(r(19105)(a, o), + (a.prototype._update = function (e) { + return this._mode.encrypt(this, e, this._decrypt) + }), + (a.prototype._final = function () { + this._cipher.scrub() + }), + (e.exports = a)) + }, + 57797: (e, t, r) => { + var n = r(90122), + i = r(43773), + o = r(60569), + a = r(65624), + s = r(94428) + function u(e, t, r) { + if (((e = e.toLowerCase()), o[e])) return i.createCipheriv(e, t, r) + if (a[e]) return new n({ key: t, iv: r, mode: e }) + throw new TypeError('invalid suite type') + } + function c(e, t, r) { + if (((e = e.toLowerCase()), o[e])) return i.createDecipheriv(e, t, r) + if (a[e]) return new n({ key: t, iv: r, mode: e, decrypt: !0 }) + throw new TypeError('invalid suite type') + } + ;((t.createCipher = t.Cipher = + function (e, t) { + var r, n + if (((e = e.toLowerCase()), o[e])) ((r = o[e].key), (n = o[e].iv)) + else { + if (!a[e]) throw new TypeError('invalid suite type') + ;((r = 8 * a[e].key), (n = a[e].iv)) + } + var i = s(t, !1, r, n) + return u(e, i.key, i.iv) + }), + (t.createCipheriv = t.Cipheriv = u), + (t.createDecipher = t.Decipher = + function (e, t) { + var r, n + if (((e = e.toLowerCase()), o[e])) ((r = o[e].key), (n = o[e].iv)) + else { + if (!a[e]) throw new TypeError('invalid suite type') + ;((r = 8 * a[e].key), (n = a[e].iv)) + } + var i = s(t, !1, r, n) + return c(e, i.key, i.iv) + }), + (t.createDecipheriv = t.Decipheriv = c), + (t.listCiphers = t.getCiphers = + function () { + return Object.keys(a).concat(i.getCiphers()) + })) + }, + 90122: (e, t, r) => { + var n = r(95108), + i = r(99417), + o = r(19105), + a = r(59105).Buffer, + s = { + 'des-ede3-cbc': i.CBC.instantiate(i.EDE), + 'des-ede3': i.EDE, + 'des-ede-cbc': i.CBC.instantiate(i.EDE), + 'des-ede': i.EDE, + 'des-cbc': i.CBC.instantiate(i.DES), + 'des-ecb': i.DES, + } + function u(e) { + n.call(this) + var t, + r = e.mode.toLowerCase(), + i = s[r] + t = e.decrypt ? 'decrypt' : 'encrypt' + var o = e.key + ;(a.isBuffer(o) || (o = a.from(o)), ('des-ede' !== r && 'des-ede-cbc' !== r) || (o = a.concat([o, o.slice(0, 8)]))) + var u = e.iv + ;(a.isBuffer(u) || (u = a.from(u)), (this._des = i.create({ key: o, iv: u, type: t }))) + } + ;((s.des = s['des-cbc']), + (s.des3 = s['des-ede3-cbc']), + (e.exports = u), + o(u, n), + (u.prototype._update = function (e) { + return a.from(this._des.update(e)) + }), + (u.prototype._final = function () { + return a.from(this._des.final()) + })) + }, + 65624: (e, t) => { + ;((t['des-ecb'] = { key: 8, iv: 0 }), + (t['des-cbc'] = t.des = { key: 8, iv: 8 }), + (t['des-ede3-cbc'] = t.des3 = { key: 24, iv: 8 }), + (t['des-ede3'] = { key: 24, iv: 0 }), + (t['des-ede-cbc'] = { key: 16, iv: 8 }), + (t['des-ede'] = { key: 16, iv: 0 })) + }, + 4621: (e, t, r) => { + var n = r(18390).Buffer, + i = r(69999), + o = r(83638) + function a(e) { + var t, + r = e.modulus.byteLength() + do { + t = new i(o(r)) + } while (t.cmp(e.modulus) >= 0 || !t.umod(e.prime1) || !t.umod(e.prime2)) + return t + } + function s(e, t) { + var r = (function (e) { + var t = a(e) + return { blinder: t.toRed(i.mont(e.modulus)).redPow(new i(e.publicExponent)).fromRed(), unblinder: t.invm(e.modulus) } + })(t), + o = t.modulus.byteLength(), + s = new i(e).mul(r.blinder).umod(t.modulus), + u = s.toRed(i.mont(t.prime1)), + c = s.toRed(i.mont(t.prime2)), + f = t.coefficient, + l = t.prime1, + d = t.prime2, + h = u.redPow(t.exponent1).fromRed(), + p = c.redPow(t.exponent2).fromRed(), + y = h.isub(p).imul(f).umod(l).imul(d) + return p.iadd(y).imul(r.unblinder).umod(t.modulus).toArrayLike(n, 'be', o) + } + ;((s.getr = a), (e.exports = s)) + }, + 54301: (e, t, r) => { + e.exports = r(40026) + }, + 93564: (e, t, r) => { + var n = r(59105).Buffer, + i = r(50637), + o = r(8542), + a = r(19105), + s = r(66119), + u = r(35760), + c = r(40026) + function f(e) { + o.Writable.call(this) + var t = c[e] + if (!t) throw new Error('Unknown message digest') + ;((this._hashType = t.hash), (this._hash = i(t.hash)), (this._tag = t.id), (this._signType = t.sign)) + } + function l(e) { + o.Writable.call(this) + var t = c[e] + if (!t) throw new Error('Unknown message digest') + ;((this._hash = i(t.hash)), (this._tag = t.id), (this._signType = t.sign)) + } + function d(e) { + return new f(e) + } + function h(e) { + return new l(e) + } + ;(Object.keys(c).forEach(function (e) { + ;((c[e].id = n.from(c[e].id, 'hex')), (c[e.toLowerCase()] = c[e])) + }), + a(f, o.Writable), + (f.prototype._write = function (e, t, r) { + ;(this._hash.update(e), r()) + }), + (f.prototype.update = function (e, t) { + return ('string' == typeof e && (e = n.from(e, t)), this._hash.update(e), this) + }), + (f.prototype.sign = function (e, t) { + this.end() + var r = this._hash.digest(), + n = s(r, e, this._hashType, this._signType, this._tag) + return t ? n.toString(t) : n + }), + a(l, o.Writable), + (l.prototype._write = function (e, t, r) { + ;(this._hash.update(e), r()) + }), + (l.prototype.update = function (e, t) { + return ('string' == typeof e && (e = n.from(e, t)), this._hash.update(e), this) + }), + (l.prototype.verify = function (e, t, r) { + ;('string' == typeof t && (t = n.from(t, r)), this.end()) + var i = this._hash.digest() + return u(t, i, e, this._signType, this._tag) + }), + (e.exports = { Sign: d, Verify: h, createSign: d, createVerify: h })) + }, + 66119: (e, t, r) => { + var n = r(59105).Buffer, + i = r(18451), + o = r(4621), + a = r(42870).ec, + s = r(69999), + u = r(58155), + c = r(39167) + function f(e, t, r, o) { + if ((e = n.from(e.toArray())).length < t.byteLength()) { + var a = n.alloc(t.byteLength() - e.length) + e = n.concat([a, e]) + } + var s = r.length, + u = (function (e, t) { + e = (e = l(e, t)).mod(t) + var r = n.from(e.toArray()) + if (r.length < t.byteLength()) { + var i = n.alloc(t.byteLength() - r.length) + r = n.concat([i, r]) + } + return r + })(r, t), + c = n.alloc(s) + c.fill(1) + var f = n.alloc(s) + return ( + (f = i(o, f) + .update(c) + .update(n.from([0])) + .update(e) + .update(u) + .digest()), + (c = i(o, f).update(c).digest()), + { + k: (f = i(o, f) + .update(c) + .update(n.from([1])) + .update(e) + .update(u) + .digest()), + v: (c = i(o, f).update(c).digest()), + } + ) + } + function l(e, t) { + var r = new s(e), + n = (e.length << 3) - t.bitLength() + return (n > 0 && r.ishrn(n), r) + } + function d(e, t, r) { + var o, a + do { + for (o = n.alloc(0); 8 * o.length < e.bitLength(); ) ((t.v = i(r, t.k).update(t.v).digest()), (o = n.concat([o, t.v]))) + ;((a = l(o, e)), + (t.k = i(r, t.k) + .update(t.v) + .update(n.from([0])) + .digest()), + (t.v = i(r, t.k).update(t.v).digest())) + } while (-1 !== a.cmp(e)) + return a + } + function h(e, t, r, n) { + return e.toRed(s.mont(r)).redPow(t).fromRed().mod(n) + } + ;((e.exports = function (e, t, r, i, p) { + var y = u(t) + if (y.curve) { + if ('ecdsa' !== i && 'ecdsa/rsa' !== i) throw new Error('wrong private key type') + return (function (e, t) { + var r = c[t.curve.join('.')] + if (!r) throw new Error('unknown curve ' + t.curve.join('.')) + var i = new a(r).keyFromPrivate(t.privateKey).sign(e) + return n.from(i.toDER()) + })(e, y) + } + if ('dsa' === y.type) { + if ('dsa' !== i) throw new Error('wrong private key type') + return (function (e, t, r) { + for ( + var i, + o = t.params.priv_key, + a = t.params.p, + u = t.params.q, + c = t.params.g, + p = new s(0), + y = l(e, u).mod(u), + g = !1, + b = f(o, u, e, r); + !1 === g; + ) + ((p = h(c, (i = d(u, b, r)), a, u)), + 0 === + (g = i + .invm(u) + .imul(y.add(o.mul(p))) + .mod(u)).cmpn(0) && ((g = !1), (p = new s(0)))) + return (function (e, t) { + ;((e = e.toArray()), (t = t.toArray()), 128 & e[0] && (e = [0].concat(e)), 128 & t[0] && (t = [0].concat(t))) + var r = [48, e.length + t.length + 4, 2, e.length] + return ((r = r.concat(e, [2, t.length], t)), n.from(r)) + })(p, g) + })(e, y, r) + } + if ('rsa' !== i && 'ecdsa/rsa' !== i) throw new Error('wrong private key type') + e = n.concat([p, e]) + for (var g = y.modulus.byteLength(), b = [0, 1]; e.length + b.length + 1 < g; ) b.push(255) + b.push(0) + for (var m = -1; ++m < e.length; ) b.push(e[m]) + return o(b, y) + }), + (e.exports.getKey = f), + (e.exports.makeKey = d)) + }, + 35760: (e, t, r) => { + var n = r(59105).Buffer, + i = r(69999), + o = r(42870).ec, + a = r(58155), + s = r(39167) + function u(e, t) { + if (e.cmpn(0) <= 0) throw new Error('invalid sig') + if (e.cmp(t) >= t) throw new Error('invalid sig') + } + e.exports = function (e, t, r, c, f) { + var l = a(r) + if ('ec' === l.type) { + if ('ecdsa' !== c && 'ecdsa/rsa' !== c) throw new Error('wrong public key type') + return (function (e, t, r) { + var n = s[r.data.algorithm.curve.join('.')] + if (!n) throw new Error('unknown curve ' + r.data.algorithm.curve.join('.')) + var i = new o(n), + a = r.data.subjectPrivateKey.data + return i.verify(t, e, a) + })(e, t, l) + } + if ('dsa' === l.type) { + if ('dsa' !== c) throw new Error('wrong public key type') + return (function (e, t, r) { + var n = r.data.p, + o = r.data.q, + s = r.data.g, + c = r.data.pub_key, + f = a.signature.decode(e, 'der'), + l = f.s, + d = f.r + ;(u(l, o), u(d, o)) + var h = i.mont(n), + p = l.invm(o) + return ( + 0 === + s + .toRed(h) + .redPow(new i(t).mul(p).mod(o)) + .fromRed() + .mul(c.toRed(h).redPow(d.mul(p).mod(o)).fromRed()) + .mod(n) + .mod(o) + .cmp(d) + ) + })(e, t, l) + } + if ('rsa' !== c && 'ecdsa/rsa' !== c) throw new Error('wrong public key type') + t = n.concat([f, t]) + for (var d = l.modulus.byteLength(), h = [1], p = 0; t.length + h.length + 2 < d; ) (h.push(255), p++) + h.push(0) + for (var y = -1; ++y < t.length; ) h.push(t[y]) + h = n.from(h) + var g = i.mont(l.modulus) + ;((e = (e = new i(e).toRed(g)).redPow(new i(l.publicExponent))), (e = n.from(e.fromRed().toArray()))) + var b = p < 8 ? 1 : 0 + for (d = Math.min(e.length, h.length), e.length !== h.length && (b = 1), y = -1; ++y < d; ) b |= e[y] ^ h[y] + return 0 === b + } + }, + 55973: (e, t, r) => { + var n = r(90638) + e.exports = n('123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz') + }, + 6632: (e, t, r) => { + 'use strict' + var n = r(55973), + i = r(59105).Buffer + e.exports = function (e) { + function t(t) { + var r = t.slice(0, -4), + n = t.slice(-4), + i = e(r) + if (!((n[0] ^ i[0]) | (n[1] ^ i[1]) | (n[2] ^ i[2]) | (n[3] ^ i[3]))) return r + } + return { + encode: function (t) { + var r = e(t) + return n.encode(i.concat([t, r], t.length + 4)) + }, + decode: function (e) { + var r = t(n.decode(e)) + if (!r) throw new Error('Invalid checksum') + return r + }, + decodeUnsafe: function (e) { + var r = n.decodeUnsafe(e) + if (r) return t(r) + }, + } + } + }, + 84948: (e, t, r) => { + 'use strict' + var n = r(50637), + i = r(6632) + e.exports = i(function (e) { + var t = n('sha256').update(e).digest() + return n('sha256').update(t).digest() + }) + }, + 23698: (e, t, r) => { + var n = r(18390).Buffer + e.exports = function (e, t) { + for (var r = Math.min(e.length, t.length), i = new n(r), o = 0; o < r; ++o) i[o] = e[o] ^ t[o] + return i + } + }, + 18390: (e, t, r) => { + 'use strict' + const n = r(17086), + i = r(98329), + o = 'function' == typeof Symbol && 'function' == typeof Symbol.for ? Symbol.for('nodejs.util.inspect.custom') : null + ;((t.Buffer = u), + (t.SlowBuffer = function (e) { + return (+e != e && (e = 0), u.alloc(+e)) + }), + (t.INSPECT_MAX_BYTES = 50)) + const a = 2147483647 + function s(e) { + if (e > a) throw new RangeError('The value "' + e + '" is invalid for option "size"') + const t = new Uint8Array(e) + return (Object.setPrototypeOf(t, u.prototype), t) + } + function u(e, t, r) { + if ('number' == typeof e) { + if ('string' == typeof t) throw new TypeError('The "string" argument must be of type string. Received type number') + return l(e) + } + return c(e, t, r) + } + function c(e, t, r) { + if ('string' == typeof e) + return (function (e, t) { + if ((('string' == typeof t && '' !== t) || (t = 'utf8'), !u.isEncoding(t))) throw new TypeError('Unknown encoding: ' + t) + const r = 0 | y(e, t) + let n = s(r) + const i = n.write(e, t) + return (i !== r && (n = n.slice(0, i)), n) + })(e, t) + if (ArrayBuffer.isView(e)) + return (function (e) { + if ($(e, Uint8Array)) { + const t = new Uint8Array(e) + return h(t.buffer, t.byteOffset, t.byteLength) + } + return d(e) + })(e) + if (null == e) + throw new TypeError( + 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type ' + typeof e, + ) + if ($(e, ArrayBuffer) || (e && $(e.buffer, ArrayBuffer))) return h(e, t, r) + if ('undefined' != typeof SharedArrayBuffer && ($(e, SharedArrayBuffer) || (e && $(e.buffer, SharedArrayBuffer)))) return h(e, t, r) + if ('number' == typeof e) throw new TypeError('The "value" argument must not be of type number. Received type number') + const n = e.valueOf && e.valueOf() + if (null != n && n !== e) return u.from(n, t, r) + const i = (function (e) { + if (u.isBuffer(e)) { + const t = 0 | p(e.length), + r = s(t) + return (0 === r.length || e.copy(r, 0, 0, t), r) + } + return void 0 !== e.length + ? 'number' != typeof e.length || X(e.length) + ? s(0) + : d(e) + : 'Buffer' === e.type && Array.isArray(e.data) + ? d(e.data) + : void 0 + })(e) + if (i) return i + if ('undefined' != typeof Symbol && null != Symbol.toPrimitive && 'function' == typeof e[Symbol.toPrimitive]) + return u.from(e[Symbol.toPrimitive]('string'), t, r) + throw new TypeError( + 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type ' + typeof e, + ) + } + function f(e) { + if ('number' != typeof e) throw new TypeError('"size" argument must be of type number') + if (e < 0) throw new RangeError('The value "' + e + '" is invalid for option "size"') + } + function l(e) { + return (f(e), s(e < 0 ? 0 : 0 | p(e))) + } + function d(e) { + const t = e.length < 0 ? 0 : 0 | p(e.length), + r = s(t) + for (let n = 0; n < t; n += 1) r[n] = 255 & e[n] + return r + } + function h(e, t, r) { + if (t < 0 || e.byteLength < t) throw new RangeError('"offset" is outside of buffer bounds') + if (e.byteLength < t + (r || 0)) throw new RangeError('"length" is outside of buffer bounds') + let n + return ( + (n = void 0 === t && void 0 === r ? new Uint8Array(e) : void 0 === r ? new Uint8Array(e, t) : new Uint8Array(e, t, r)), + Object.setPrototypeOf(n, u.prototype), + n + ) + } + function p(e) { + if (e >= a) throw new RangeError('Attempt to allocate Buffer larger than maximum size: 0x' + a.toString(16) + ' bytes') + return 0 | e + } + function y(e, t) { + if (u.isBuffer(e)) return e.length + if (ArrayBuffer.isView(e) || $(e, ArrayBuffer)) return e.byteLength + if ('string' != typeof e) + throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type ' + typeof e) + const r = e.length, + n = arguments.length > 2 && !0 === arguments[2] + if (!n && 0 === r) return 0 + let i = !1 + for (;;) + switch (t) { + case 'ascii': + case 'latin1': + case 'binary': + return r + case 'utf8': + case 'utf-8': + return W(e).length + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return 2 * r + case 'hex': + return r >>> 1 + case 'base64': + return G(e).length + default: + if (i) return n ? -1 : W(e).length + ;((t = ('' + t).toLowerCase()), (i = !0)) + } + } + function g(e, t, r) { + let n = !1 + if (((void 0 === t || t < 0) && (t = 0), t > this.length)) return '' + if (((void 0 === r || r > this.length) && (r = this.length), r <= 0)) return '' + if ((r >>>= 0) <= (t >>>= 0)) return '' + for (e || (e = 'utf8'); ; ) + switch (e) { + case 'hex': + return x(this, t, r) + case 'utf8': + case 'utf-8': + return M(this, t, r) + case 'ascii': + return I(this, t, r) + case 'latin1': + case 'binary': + return N(this, t, r) + case 'base64': + return O(this, t, r) + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return L(this, t, r) + default: + if (n) throw new TypeError('Unknown encoding: ' + e) + ;((e = (e + '').toLowerCase()), (n = !0)) + } + } + function b(e, t, r) { + const n = e[t] + ;((e[t] = e[r]), (e[r] = n)) + } + function m(e, t, r, n, i) { + if (0 === e.length) return -1 + if ( + ('string' == typeof r ? ((n = r), (r = 0)) : r > 2147483647 ? (r = 2147483647) : r < -2147483648 && (r = -2147483648), + X((r = +r)) && (r = i ? 0 : e.length - 1), + r < 0 && (r = e.length + r), + r >= e.length) + ) { + if (i) return -1 + r = e.length - 1 + } else if (r < 0) { + if (!i) return -1 + r = 0 + } + if (('string' == typeof t && (t = u.from(t, n)), u.isBuffer(t))) return 0 === t.length ? -1 : v(e, t, r, n, i) + if ('number' == typeof t) + return ( + (t &= 255), + 'function' == typeof Uint8Array.prototype.indexOf + ? i + ? Uint8Array.prototype.indexOf.call(e, t, r) + : Uint8Array.prototype.lastIndexOf.call(e, t, r) + : v(e, [t], r, n, i) + ) + throw new TypeError('val must be string, number or Buffer') + } + function v(e, t, r, n, i) { + let o, + a = 1, + s = e.length, + u = t.length + if (void 0 !== n && ('ucs2' === (n = String(n).toLowerCase()) || 'ucs-2' === n || 'utf16le' === n || 'utf-16le' === n)) { + if (e.length < 2 || t.length < 2) return -1 + ;((a = 2), (s /= 2), (u /= 2), (r /= 2)) + } + function c(e, t) { + return 1 === a ? e[t] : e.readUInt16BE(t * a) + } + if (i) { + let n = -1 + for (o = r; o < s; o++) + if (c(e, o) === c(t, -1 === n ? 0 : o - n)) { + if ((-1 === n && (n = o), o - n + 1 === u)) return n * a + } else (-1 !== n && (o -= o - n), (n = -1)) + } else + for (r + u > s && (r = s - u), o = r; o >= 0; o--) { + let r = !0 + for (let n = 0; n < u; n++) + if (c(e, o + n) !== c(t, n)) { + r = !1 + break + } + if (r) return o + } + return -1 + } + function w(e, t, r, n) { + r = Number(r) || 0 + const i = e.length - r + n ? (n = Number(n)) > i && (n = i) : (n = i) + const o = t.length + let a + for (n > o / 2 && (n = o / 2), a = 0; a < n; ++a) { + const n = parseInt(t.substr(2 * a, 2), 16) + if (X(n)) return a + e[r + a] = n + } + return a + } + function _(e, t, r, n) { + return Y(W(t, e.length - r), e, r, n) + } + function E(e, t, r, n) { + return Y( + (function (e) { + const t = [] + for (let r = 0; r < e.length; ++r) t.push(255 & e.charCodeAt(r)) + return t + })(t), + e, + r, + n, + ) + } + function S(e, t, r, n) { + return Y(G(t), e, r, n) + } + function A(e, t, r, n) { + return Y( + (function (e, t) { + let r, n, i + const o = [] + for (let a = 0; a < e.length && !((t -= 2) < 0); ++a) ((r = e.charCodeAt(a)), (n = r >> 8), (i = r % 256), o.push(i), o.push(n)) + return o + })(t, e.length - r), + e, + r, + n, + ) + } + function O(e, t, r) { + return 0 === t && r === e.length ? n.fromByteArray(e) : n.fromByteArray(e.slice(t, r)) + } + function M(e, t, r) { + r = Math.min(e.length, r) + const n = [] + let i = t + for (; i < r; ) { + const t = e[i] + let o = null, + a = t > 239 ? 4 : t > 223 ? 3 : t > 191 ? 2 : 1 + if (i + a <= r) { + let r, n, s, u + switch (a) { + case 1: + t < 128 && (o = t) + break + case 2: + ;((r = e[i + 1]), 128 == (192 & r) && ((u = ((31 & t) << 6) | (63 & r)), u > 127 && (o = u))) + break + case 3: + ;((r = e[i + 1]), + (n = e[i + 2]), + 128 == (192 & r) && + 128 == (192 & n) && + ((u = ((15 & t) << 12) | ((63 & r) << 6) | (63 & n)), u > 2047 && (u < 55296 || u > 57343) && (o = u))) + break + case 4: + ;((r = e[i + 1]), + (n = e[i + 2]), + (s = e[i + 3]), + 128 == (192 & r) && + 128 == (192 & n) && + 128 == (192 & s) && + ((u = ((15 & t) << 18) | ((63 & r) << 12) | ((63 & n) << 6) | (63 & s)), u > 65535 && u < 1114112 && (o = u))) + } + } + ;(null === o ? ((o = 65533), (a = 1)) : o > 65535 && ((o -= 65536), n.push(((o >>> 10) & 1023) | 55296), (o = 56320 | (1023 & o))), + n.push(o), + (i += a)) + } + return (function (e) { + const t = e.length + if (t <= T) return String.fromCharCode.apply(String, e) + let r = '', + n = 0 + for (; n < t; ) r += String.fromCharCode.apply(String, e.slice(n, (n += T))) + return r + })(n) + } + ;((t.kMaxLength = a), + (u.TYPED_ARRAY_SUPPORT = (function () { + try { + const e = new Uint8Array(1), + t = { + foo: function () { + return 42 + }, + } + return (Object.setPrototypeOf(t, Uint8Array.prototype), Object.setPrototypeOf(e, t), 42 === e.foo()) + } catch (e) { + return !1 + } + })()), + u.TYPED_ARRAY_SUPPORT || + 'undefined' == typeof console || + 'function' != typeof console.error || + console.error( + 'This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.', + ), + Object.defineProperty(u.prototype, 'parent', { + enumerable: !0, + get: function () { + if (u.isBuffer(this)) return this.buffer + }, + }), + Object.defineProperty(u.prototype, 'offset', { + enumerable: !0, + get: function () { + if (u.isBuffer(this)) return this.byteOffset + }, + }), + (u.poolSize = 8192), + (u.from = function (e, t, r) { + return c(e, t, r) + }), + Object.setPrototypeOf(u.prototype, Uint8Array.prototype), + Object.setPrototypeOf(u, Uint8Array), + (u.alloc = function (e, t, r) { + return (function (e, t, r) { + return (f(e), e <= 0 ? s(e) : void 0 !== t ? ('string' == typeof r ? s(e).fill(t, r) : s(e).fill(t)) : s(e)) + })(e, t, r) + }), + (u.allocUnsafe = function (e) { + return l(e) + }), + (u.allocUnsafeSlow = function (e) { + return l(e) + }), + (u.isBuffer = function (e) { + return null != e && !0 === e._isBuffer && e !== u.prototype + }), + (u.compare = function (e, t) { + if ( + ($(e, Uint8Array) && (e = u.from(e, e.offset, e.byteLength)), + $(t, Uint8Array) && (t = u.from(t, t.offset, t.byteLength)), + !u.isBuffer(e) || !u.isBuffer(t)) + ) + throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array') + if (e === t) return 0 + let r = e.length, + n = t.length + for (let i = 0, o = Math.min(r, n); i < o; ++i) + if (e[i] !== t[i]) { + ;((r = e[i]), (n = t[i])) + break + } + return r < n ? -1 : n < r ? 1 : 0 + }), + (u.isEncoding = function (e) { + switch (String(e).toLowerCase()) { + case 'hex': + case 'utf8': + case 'utf-8': + case 'ascii': + case 'latin1': + case 'binary': + case 'base64': + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return !0 + default: + return !1 + } + }), + (u.concat = function (e, t) { + if (!Array.isArray(e)) throw new TypeError('"list" argument must be an Array of Buffers') + if (0 === e.length) return u.alloc(0) + let r + if (void 0 === t) for (t = 0, r = 0; r < e.length; ++r) t += e[r].length + const n = u.allocUnsafe(t) + let i = 0 + for (r = 0; r < e.length; ++r) { + let t = e[r] + if ($(t, Uint8Array)) + i + t.length > n.length ? (u.isBuffer(t) || (t = u.from(t)), t.copy(n, i)) : Uint8Array.prototype.set.call(n, t, i) + else { + if (!u.isBuffer(t)) throw new TypeError('"list" argument must be an Array of Buffers') + t.copy(n, i) + } + i += t.length + } + return n + }), + (u.byteLength = y), + (u.prototype._isBuffer = !0), + (u.prototype.swap16 = function () { + const e = this.length + if (e % 2 != 0) throw new RangeError('Buffer size must be a multiple of 16-bits') + for (let t = 0; t < e; t += 2) b(this, t, t + 1) + return this + }), + (u.prototype.swap32 = function () { + const e = this.length + if (e % 4 != 0) throw new RangeError('Buffer size must be a multiple of 32-bits') + for (let t = 0; t < e; t += 4) (b(this, t, t + 3), b(this, t + 1, t + 2)) + return this + }), + (u.prototype.swap64 = function () { + const e = this.length + if (e % 8 != 0) throw new RangeError('Buffer size must be a multiple of 64-bits') + for (let t = 0; t < e; t += 8) (b(this, t, t + 7), b(this, t + 1, t + 6), b(this, t + 2, t + 5), b(this, t + 3, t + 4)) + return this + }), + (u.prototype.toString = function () { + const e = this.length + return 0 === e ? '' : 0 === arguments.length ? M(this, 0, e) : g.apply(this, arguments) + }), + (u.prototype.toLocaleString = u.prototype.toString), + (u.prototype.equals = function (e) { + if (!u.isBuffer(e)) throw new TypeError('Argument must be a Buffer') + return this === e || 0 === u.compare(this, e) + }), + (u.prototype.inspect = function () { + let e = '' + const r = t.INSPECT_MAX_BYTES + return ( + (e = this.toString('hex', 0, r) + .replace(/(.{2})/g, '$1 ') + .trim()), + this.length > r && (e += ' ... '), + '<Buffer ' + e + '>' + ) + }), + o && (u.prototype[o] = u.prototype.inspect), + (u.prototype.compare = function (e, t, r, n, i) { + if (($(e, Uint8Array) && (e = u.from(e, e.offset, e.byteLength)), !u.isBuffer(e))) + throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type ' + typeof e) + if ( + (void 0 === t && (t = 0), + void 0 === r && (r = e ? e.length : 0), + void 0 === n && (n = 0), + void 0 === i && (i = this.length), + t < 0 || r > e.length || n < 0 || i > this.length) + ) + throw new RangeError('out of range index') + if (n >= i && t >= r) return 0 + if (n >= i) return -1 + if (t >= r) return 1 + if (this === e) return 0 + let o = (i >>>= 0) - (n >>>= 0), + a = (r >>>= 0) - (t >>>= 0) + const s = Math.min(o, a), + c = this.slice(n, i), + f = e.slice(t, r) + for (let e = 0; e < s; ++e) + if (c[e] !== f[e]) { + ;((o = c[e]), (a = f[e])) + break + } + return o < a ? -1 : a < o ? 1 : 0 + }), + (u.prototype.includes = function (e, t, r) { + return -1 !== this.indexOf(e, t, r) + }), + (u.prototype.indexOf = function (e, t, r) { + return m(this, e, t, r, !0) + }), + (u.prototype.lastIndexOf = function (e, t, r) { + return m(this, e, t, r, !1) + }), + (u.prototype.write = function (e, t, r, n) { + if (void 0 === t) ((n = 'utf8'), (r = this.length), (t = 0)) + else if (void 0 === r && 'string' == typeof t) ((n = t), (r = this.length), (t = 0)) + else { + if (!isFinite(t)) throw new Error('Buffer.write(string, encoding, offset[, length]) is no longer supported') + ;((t >>>= 0), isFinite(r) ? ((r >>>= 0), void 0 === n && (n = 'utf8')) : ((n = r), (r = void 0))) + } + const i = this.length - t + if (((void 0 === r || r > i) && (r = i), (e.length > 0 && (r < 0 || t < 0)) || t > this.length)) + throw new RangeError('Attempt to write outside buffer bounds') + n || (n = 'utf8') + let o = !1 + for (;;) + switch (n) { + case 'hex': + return w(this, e, t, r) + case 'utf8': + case 'utf-8': + return _(this, e, t, r) + case 'ascii': + case 'latin1': + case 'binary': + return E(this, e, t, r) + case 'base64': + return S(this, e, t, r) + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return A(this, e, t, r) + default: + if (o) throw new TypeError('Unknown encoding: ' + n) + ;((n = ('' + n).toLowerCase()), (o = !0)) + } + }), + (u.prototype.toJSON = function () { + return { type: 'Buffer', data: Array.prototype.slice.call(this._arr || this, 0) } + })) + const T = 4096 + function I(e, t, r) { + let n = '' + r = Math.min(e.length, r) + for (let i = t; i < r; ++i) n += String.fromCharCode(127 & e[i]) + return n + } + function N(e, t, r) { + let n = '' + r = Math.min(e.length, r) + for (let i = t; i < r; ++i) n += String.fromCharCode(e[i]) + return n + } + function x(e, t, r) { + const n = e.length + ;((!t || t < 0) && (t = 0), (!r || r < 0 || r > n) && (r = n)) + let i = '' + for (let n = t; n < r; ++n) i += J[e[n]] + return i + } + function L(e, t, r) { + const n = e.slice(t, r) + let i = '' + for (let e = 0; e < n.length - 1; e += 2) i += String.fromCharCode(n[e] + 256 * n[e + 1]) + return i + } + function k(e, t, r) { + if (e % 1 != 0 || e < 0) throw new RangeError('offset is not uint') + if (e + t > r) throw new RangeError('Trying to access beyond buffer length') + } + function R(e, t, r, n, i, o) { + if (!u.isBuffer(e)) throw new TypeError('"buffer" argument must be a Buffer instance') + if (t > i || t < o) throw new RangeError('"value" argument is out of bounds') + if (r + n > e.length) throw new RangeError('Index out of range') + } + function P(e, t, r, n, i) { + H(t, n, i, e, r, 7) + let o = Number(t & BigInt(4294967295)) + ;((e[r++] = o), (o >>= 8), (e[r++] = o), (o >>= 8), (e[r++] = o), (o >>= 8), (e[r++] = o)) + let a = Number((t >> BigInt(32)) & BigInt(4294967295)) + return ((e[r++] = a), (a >>= 8), (e[r++] = a), (a >>= 8), (e[r++] = a), (a >>= 8), (e[r++] = a), r) + } + function B(e, t, r, n, i) { + H(t, n, i, e, r, 7) + let o = Number(t & BigInt(4294967295)) + ;((e[r + 7] = o), (o >>= 8), (e[r + 6] = o), (o >>= 8), (e[r + 5] = o), (o >>= 8), (e[r + 4] = o)) + let a = Number((t >> BigInt(32)) & BigInt(4294967295)) + return ((e[r + 3] = a), (a >>= 8), (e[r + 2] = a), (a >>= 8), (e[r + 1] = a), (a >>= 8), (e[r] = a), r + 8) + } + function D(e, t, r, n, i, o) { + if (r + n > e.length) throw new RangeError('Index out of range') + if (r < 0) throw new RangeError('Index out of range') + } + function C(e, t, r, n, o) { + return ((t = +t), (r >>>= 0), o || D(e, 0, r, 4), i.write(e, t, r, n, 23, 4), r + 4) + } + function j(e, t, r, n, o) { + return ((t = +t), (r >>>= 0), o || D(e, 0, r, 8), i.write(e, t, r, n, 52, 8), r + 8) + } + ;((u.prototype.slice = function (e, t) { + const r = this.length + ;((e = ~~e) < 0 ? (e += r) < 0 && (e = 0) : e > r && (e = r), + (t = void 0 === t ? r : ~~t) < 0 ? (t += r) < 0 && (t = 0) : t > r && (t = r), + t < e && (t = e)) + const n = this.subarray(e, t) + return (Object.setPrototypeOf(n, u.prototype), n) + }), + (u.prototype.readUintLE = u.prototype.readUIntLE = + function (e, t, r) { + ;((e >>>= 0), (t >>>= 0), r || k(e, t, this.length)) + let n = this[e], + i = 1, + o = 0 + for (; ++o < t && (i *= 256); ) n += this[e + o] * i + return n + }), + (u.prototype.readUintBE = u.prototype.readUIntBE = + function (e, t, r) { + ;((e >>>= 0), (t >>>= 0), r || k(e, t, this.length)) + let n = this[e + --t], + i = 1 + for (; t > 0 && (i *= 256); ) n += this[e + --t] * i + return n + }), + (u.prototype.readUint8 = u.prototype.readUInt8 = + function (e, t) { + return ((e >>>= 0), t || k(e, 1, this.length), this[e]) + }), + (u.prototype.readUint16LE = u.prototype.readUInt16LE = + function (e, t) { + return ((e >>>= 0), t || k(e, 2, this.length), this[e] | (this[e + 1] << 8)) + }), + (u.prototype.readUint16BE = u.prototype.readUInt16BE = + function (e, t) { + return ((e >>>= 0), t || k(e, 2, this.length), (this[e] << 8) | this[e + 1]) + }), + (u.prototype.readUint32LE = u.prototype.readUInt32LE = + function (e, t) { + return ((e >>>= 0), t || k(e, 4, this.length), (this[e] | (this[e + 1] << 8) | (this[e + 2] << 16)) + 16777216 * this[e + 3]) + }), + (u.prototype.readUint32BE = u.prototype.readUInt32BE = + function (e, t) { + return ((e >>>= 0), t || k(e, 4, this.length), 16777216 * this[e] + ((this[e + 1] << 16) | (this[e + 2] << 8) | this[e + 3])) + }), + (u.prototype.readBigUInt64LE = Z(function (e) { + z((e >>>= 0), 'offset') + const t = this[e], + r = this[e + 7] + ;(void 0 !== t && void 0 !== r) || q(e, this.length - 8) + const n = t + 256 * this[++e] + 65536 * this[++e] + this[++e] * 2 ** 24, + i = this[++e] + 256 * this[++e] + 65536 * this[++e] + r * 2 ** 24 + return BigInt(n) + (BigInt(i) << BigInt(32)) + })), + (u.prototype.readBigUInt64BE = Z(function (e) { + z((e >>>= 0), 'offset') + const t = this[e], + r = this[e + 7] + ;(void 0 !== t && void 0 !== r) || q(e, this.length - 8) + const n = t * 2 ** 24 + 65536 * this[++e] + 256 * this[++e] + this[++e], + i = this[++e] * 2 ** 24 + 65536 * this[++e] + 256 * this[++e] + r + return (BigInt(n) << BigInt(32)) + BigInt(i) + })), + (u.prototype.readIntLE = function (e, t, r) { + ;((e >>>= 0), (t >>>= 0), r || k(e, t, this.length)) + let n = this[e], + i = 1, + o = 0 + for (; ++o < t && (i *= 256); ) n += this[e + o] * i + return ((i *= 128), n >= i && (n -= Math.pow(2, 8 * t)), n) + }), + (u.prototype.readIntBE = function (e, t, r) { + ;((e >>>= 0), (t >>>= 0), r || k(e, t, this.length)) + let n = t, + i = 1, + o = this[e + --n] + for (; n > 0 && (i *= 256); ) o += this[e + --n] * i + return ((i *= 128), o >= i && (o -= Math.pow(2, 8 * t)), o) + }), + (u.prototype.readInt8 = function (e, t) { + return ((e >>>= 0), t || k(e, 1, this.length), 128 & this[e] ? -1 * (255 - this[e] + 1) : this[e]) + }), + (u.prototype.readInt16LE = function (e, t) { + ;((e >>>= 0), t || k(e, 2, this.length)) + const r = this[e] | (this[e + 1] << 8) + return 32768 & r ? 4294901760 | r : r + }), + (u.prototype.readInt16BE = function (e, t) { + ;((e >>>= 0), t || k(e, 2, this.length)) + const r = this[e + 1] | (this[e] << 8) + return 32768 & r ? 4294901760 | r : r + }), + (u.prototype.readInt32LE = function (e, t) { + return ((e >>>= 0), t || k(e, 4, this.length), this[e] | (this[e + 1] << 8) | (this[e + 2] << 16) | (this[e + 3] << 24)) + }), + (u.prototype.readInt32BE = function (e, t) { + return ((e >>>= 0), t || k(e, 4, this.length), (this[e] << 24) | (this[e + 1] << 16) | (this[e + 2] << 8) | this[e + 3]) + }), + (u.prototype.readBigInt64LE = Z(function (e) { + z((e >>>= 0), 'offset') + const t = this[e], + r = this[e + 7] + ;(void 0 !== t && void 0 !== r) || q(e, this.length - 8) + const n = this[e + 4] + 256 * this[e + 5] + 65536 * this[e + 6] + (r << 24) + return (BigInt(n) << BigInt(32)) + BigInt(t + 256 * this[++e] + 65536 * this[++e] + this[++e] * 2 ** 24) + })), + (u.prototype.readBigInt64BE = Z(function (e) { + z((e >>>= 0), 'offset') + const t = this[e], + r = this[e + 7] + ;(void 0 !== t && void 0 !== r) || q(e, this.length - 8) + const n = (t << 24) + 65536 * this[++e] + 256 * this[++e] + this[++e] + return (BigInt(n) << BigInt(32)) + BigInt(this[++e] * 2 ** 24 + 65536 * this[++e] + 256 * this[++e] + r) + })), + (u.prototype.readFloatLE = function (e, t) { + return ((e >>>= 0), t || k(e, 4, this.length), i.read(this, e, !0, 23, 4)) + }), + (u.prototype.readFloatBE = function (e, t) { + return ((e >>>= 0), t || k(e, 4, this.length), i.read(this, e, !1, 23, 4)) + }), + (u.prototype.readDoubleLE = function (e, t) { + return ((e >>>= 0), t || k(e, 8, this.length), i.read(this, e, !0, 52, 8)) + }), + (u.prototype.readDoubleBE = function (e, t) { + return ((e >>>= 0), t || k(e, 8, this.length), i.read(this, e, !1, 52, 8)) + }), + (u.prototype.writeUintLE = u.prototype.writeUIntLE = + function (e, t, r, n) { + ;((e = +e), (t >>>= 0), (r >>>= 0), n || R(this, e, t, r, Math.pow(2, 8 * r) - 1, 0)) + let i = 1, + o = 0 + for (this[t] = 255 & e; ++o < r && (i *= 256); ) this[t + o] = (e / i) & 255 + return t + r + }), + (u.prototype.writeUintBE = u.prototype.writeUIntBE = + function (e, t, r, n) { + ;((e = +e), (t >>>= 0), (r >>>= 0), n || R(this, e, t, r, Math.pow(2, 8 * r) - 1, 0)) + let i = r - 1, + o = 1 + for (this[t + i] = 255 & e; --i >= 0 && (o *= 256); ) this[t + i] = (e / o) & 255 + return t + r + }), + (u.prototype.writeUint8 = u.prototype.writeUInt8 = + function (e, t, r) { + return ((e = +e), (t >>>= 0), r || R(this, e, t, 1, 255, 0), (this[t] = 255 & e), t + 1) + }), + (u.prototype.writeUint16LE = u.prototype.writeUInt16LE = + function (e, t, r) { + return ((e = +e), (t >>>= 0), r || R(this, e, t, 2, 65535, 0), (this[t] = 255 & e), (this[t + 1] = e >>> 8), t + 2) + }), + (u.prototype.writeUint16BE = u.prototype.writeUInt16BE = + function (e, t, r) { + return ((e = +e), (t >>>= 0), r || R(this, e, t, 2, 65535, 0), (this[t] = e >>> 8), (this[t + 1] = 255 & e), t + 2) + }), + (u.prototype.writeUint32LE = u.prototype.writeUInt32LE = + function (e, t, r) { + return ( + (e = +e), + (t >>>= 0), + r || R(this, e, t, 4, 4294967295, 0), + (this[t + 3] = e >>> 24), + (this[t + 2] = e >>> 16), + (this[t + 1] = e >>> 8), + (this[t] = 255 & e), + t + 4 + ) + }), + (u.prototype.writeUint32BE = u.prototype.writeUInt32BE = + function (e, t, r) { + return ( + (e = +e), + (t >>>= 0), + r || R(this, e, t, 4, 4294967295, 0), + (this[t] = e >>> 24), + (this[t + 1] = e >>> 16), + (this[t + 2] = e >>> 8), + (this[t + 3] = 255 & e), + t + 4 + ) + }), + (u.prototype.writeBigUInt64LE = Z(function (e, t = 0) { + return P(this, e, t, BigInt(0), BigInt('0xffffffffffffffff')) + })), + (u.prototype.writeBigUInt64BE = Z(function (e, t = 0) { + return B(this, e, t, BigInt(0), BigInt('0xffffffffffffffff')) + })), + (u.prototype.writeIntLE = function (e, t, r, n) { + if (((e = +e), (t >>>= 0), !n)) { + const n = Math.pow(2, 8 * r - 1) + R(this, e, t, r, n - 1, -n) + } + let i = 0, + o = 1, + a = 0 + for (this[t] = 255 & e; ++i < r && (o *= 256); ) + (e < 0 && 0 === a && 0 !== this[t + i - 1] && (a = 1), (this[t + i] = (((e / o) >> 0) - a) & 255)) + return t + r + }), + (u.prototype.writeIntBE = function (e, t, r, n) { + if (((e = +e), (t >>>= 0), !n)) { + const n = Math.pow(2, 8 * r - 1) + R(this, e, t, r, n - 1, -n) + } + let i = r - 1, + o = 1, + a = 0 + for (this[t + i] = 255 & e; --i >= 0 && (o *= 256); ) + (e < 0 && 0 === a && 0 !== this[t + i + 1] && (a = 1), (this[t + i] = (((e / o) >> 0) - a) & 255)) + return t + r + }), + (u.prototype.writeInt8 = function (e, t, r) { + return ((e = +e), (t >>>= 0), r || R(this, e, t, 1, 127, -128), e < 0 && (e = 255 + e + 1), (this[t] = 255 & e), t + 1) + }), + (u.prototype.writeInt16LE = function (e, t, r) { + return ((e = +e), (t >>>= 0), r || R(this, e, t, 2, 32767, -32768), (this[t] = 255 & e), (this[t + 1] = e >>> 8), t + 2) + }), + (u.prototype.writeInt16BE = function (e, t, r) { + return ((e = +e), (t >>>= 0), r || R(this, e, t, 2, 32767, -32768), (this[t] = e >>> 8), (this[t + 1] = 255 & e), t + 2) + }), + (u.prototype.writeInt32LE = function (e, t, r) { + return ( + (e = +e), + (t >>>= 0), + r || R(this, e, t, 4, 2147483647, -2147483648), + (this[t] = 255 & e), + (this[t + 1] = e >>> 8), + (this[t + 2] = e >>> 16), + (this[t + 3] = e >>> 24), + t + 4 + ) + }), + (u.prototype.writeInt32BE = function (e, t, r) { + return ( + (e = +e), + (t >>>= 0), + r || R(this, e, t, 4, 2147483647, -2147483648), + e < 0 && (e = 4294967295 + e + 1), + (this[t] = e >>> 24), + (this[t + 1] = e >>> 16), + (this[t + 2] = e >>> 8), + (this[t + 3] = 255 & e), + t + 4 + ) + }), + (u.prototype.writeBigInt64LE = Z(function (e, t = 0) { + return P(this, e, t, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff')) + })), + (u.prototype.writeBigInt64BE = Z(function (e, t = 0) { + return B(this, e, t, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff')) + })), + (u.prototype.writeFloatLE = function (e, t, r) { + return C(this, e, t, !0, r) + }), + (u.prototype.writeFloatBE = function (e, t, r) { + return C(this, e, t, !1, r) + }), + (u.prototype.writeDoubleLE = function (e, t, r) { + return j(this, e, t, !0, r) + }), + (u.prototype.writeDoubleBE = function (e, t, r) { + return j(this, e, t, !1, r) + }), + (u.prototype.copy = function (e, t, r, n) { + if (!u.isBuffer(e)) throw new TypeError('argument should be a Buffer') + if ((r || (r = 0), n || 0 === n || (n = this.length), t >= e.length && (t = e.length), t || (t = 0), n > 0 && n < r && (n = r), n === r)) + return 0 + if (0 === e.length || 0 === this.length) return 0 + if (t < 0) throw new RangeError('targetStart out of bounds') + if (r < 0 || r >= this.length) throw new RangeError('Index out of range') + if (n < 0) throw new RangeError('sourceEnd out of bounds') + ;(n > this.length && (n = this.length), e.length - t < n - r && (n = e.length - t + r)) + const i = n - r + return ( + this === e && 'function' == typeof Uint8Array.prototype.copyWithin + ? this.copyWithin(t, r, n) + : Uint8Array.prototype.set.call(e, this.subarray(r, n), t), + i + ) + }), + (u.prototype.fill = function (e, t, r, n) { + if ('string' == typeof e) { + if ( + ('string' == typeof t ? ((n = t), (t = 0), (r = this.length)) : 'string' == typeof r && ((n = r), (r = this.length)), + void 0 !== n && 'string' != typeof n) + ) + throw new TypeError('encoding must be a string') + if ('string' == typeof n && !u.isEncoding(n)) throw new TypeError('Unknown encoding: ' + n) + if (1 === e.length) { + const t = e.charCodeAt(0) + ;(('utf8' === n && t < 128) || 'latin1' === n) && (e = t) + } + } else 'number' == typeof e ? (e &= 255) : 'boolean' == typeof e && (e = Number(e)) + if (t < 0 || this.length < t || this.length < r) throw new RangeError('Out of range index') + if (r <= t) return this + let i + if (((t >>>= 0), (r = void 0 === r ? this.length : r >>> 0), e || (e = 0), 'number' == typeof e)) for (i = t; i < r; ++i) this[i] = e + else { + const o = u.isBuffer(e) ? e : u.from(e, n), + a = o.length + if (0 === a) throw new TypeError('The value "' + e + '" is invalid for argument "value"') + for (i = 0; i < r - t; ++i) this[i + t] = o[i % a] + } + return this + })) + const F = {} + function U(e, t, r) { + F[e] = class extends r { + constructor() { + ;(super(), + Object.defineProperty(this, 'message', { value: t.apply(this, arguments), writable: !0, configurable: !0 }), + (this.name = `${this.name} [${e}]`), + this.stack, + delete this.name) + } + get code() { + return e + } + set code(e) { + Object.defineProperty(this, 'code', { configurable: !0, enumerable: !0, value: e, writable: !0 }) + } + toString() { + return `${this.name} [${e}]: ${this.message}` + } + } + } + function V(e) { + let t = '', + r = e.length + const n = '-' === e[0] ? 1 : 0 + for (; r >= n + 4; r -= 3) t = `_${e.slice(r - 3, r)}${t}` + return `${e.slice(0, r)}${t}` + } + function H(e, t, r, n, i, o) { + if (e > r || e < t) { + const n = 'bigint' == typeof t ? 'n' : '' + let i + throw ( + (i = + o > 3 + ? 0 === t || t === BigInt(0) + ? `>= 0${n} and < 2${n} ** ${8 * (o + 1)}${n}` + : `>= -(2${n} ** ${8 * (o + 1) - 1}${n}) and < 2 ** ${8 * (o + 1) - 1}${n}` + : `>= ${t}${n} and <= ${r}${n}`), + new F.ERR_OUT_OF_RANGE('value', i, e) + ) + } + !(function (e, t, r) { + ;(z(t, 'offset'), (void 0 !== e[t] && void 0 !== e[t + r]) || q(t, e.length - (r + 1))) + })(n, i, o) + } + function z(e, t) { + if ('number' != typeof e) throw new F.ERR_INVALID_ARG_TYPE(t, 'number', e) + } + function q(e, t, r) { + if (Math.floor(e) !== e) throw (z(e, r), new F.ERR_OUT_OF_RANGE(r || 'offset', 'an integer', e)) + if (t < 0) throw new F.ERR_BUFFER_OUT_OF_BOUNDS() + throw new F.ERR_OUT_OF_RANGE(r || 'offset', `>= ${r ? 1 : 0} and <= ${t}`, e) + } + ;(U( + 'ERR_BUFFER_OUT_OF_BOUNDS', + function (e) { + return e ? `${e} is outside of buffer bounds` : 'Attempt to access memory outside buffer bounds' + }, + RangeError, + ), + U( + 'ERR_INVALID_ARG_TYPE', + function (e, t) { + return `The "${e}" argument must be of type number. Received type ${typeof t}` + }, + TypeError, + ), + U( + 'ERR_OUT_OF_RANGE', + function (e, t, r) { + let n = `The value of "${e}" is out of range.`, + i = r + return ( + Number.isInteger(r) && Math.abs(r) > 2 ** 32 + ? (i = V(String(r))) + : 'bigint' == typeof r && + ((i = String(r)), (r > BigInt(2) ** BigInt(32) || r < -(BigInt(2) ** BigInt(32))) && (i = V(i)), (i += 'n')), + (n += ` It must be ${t}. Received ${i}`), + n + ) + }, + RangeError, + )) + const K = /[^+/0-9A-Za-z-_]/g + function W(e, t) { + let r + t = t || 1 / 0 + const n = e.length + let i = null + const o = [] + for (let a = 0; a < n; ++a) { + if (((r = e.charCodeAt(a)), r > 55295 && r < 57344)) { + if (!i) { + if (r > 56319) { + ;(t -= 3) > -1 && o.push(239, 191, 189) + continue + } + if (a + 1 === n) { + ;(t -= 3) > -1 && o.push(239, 191, 189) + continue + } + i = r + continue + } + if (r < 56320) { + ;((t -= 3) > -1 && o.push(239, 191, 189), (i = r)) + continue + } + r = 65536 + (((i - 55296) << 10) | (r - 56320)) + } else i && (t -= 3) > -1 && o.push(239, 191, 189) + if (((i = null), r < 128)) { + if ((t -= 1) < 0) break + o.push(r) + } else if (r < 2048) { + if ((t -= 2) < 0) break + o.push((r >> 6) | 192, (63 & r) | 128) + } else if (r < 65536) { + if ((t -= 3) < 0) break + o.push((r >> 12) | 224, ((r >> 6) & 63) | 128, (63 & r) | 128) + } else { + if (!(r < 1114112)) throw new Error('Invalid code point') + if ((t -= 4) < 0) break + o.push((r >> 18) | 240, ((r >> 12) & 63) | 128, ((r >> 6) & 63) | 128, (63 & r) | 128) + } + } + return o + } + function G(e) { + return n.toByteArray( + (function (e) { + if ((e = (e = e.split('=')[0]).trim().replace(K, '')).length < 2) return '' + for (; e.length % 4 != 0; ) e += '=' + return e + })(e), + ) + } + function Y(e, t, r, n) { + let i + for (i = 0; i < n && !(i + r >= t.length || i >= e.length); ++i) t[i + r] = e[i] + return i + } + function $(e, t) { + return e instanceof t || (null != e && null != e.constructor && null != e.constructor.name && e.constructor.name === t.name) + } + function X(e) { + return e != e + } + const J = (function () { + const e = '0123456789abcdef', + t = new Array(256) + for (let r = 0; r < 16; ++r) { + const n = 16 * r + for (let i = 0; i < 16; ++i) t[n + i] = e[r] + e[i] + } + return t + })() + function Z(e) { + return 'undefined' == typeof BigInt ? Q : e + } + function Q() { + throw new Error('BigInt not supported') + } + }, + 77124: (e) => { + e.exports = { + 100: 'Continue', + 101: 'Switching Protocols', + 102: 'Processing', + 200: 'OK', + 201: 'Created', + 202: 'Accepted', + 203: 'Non-Authoritative Information', + 204: 'No Content', + 205: 'Reset Content', + 206: 'Partial Content', + 207: 'Multi-Status', + 208: 'Already Reported', + 226: 'IM Used', + 300: 'Multiple Choices', + 301: 'Moved Permanently', + 302: 'Found', + 303: 'See Other', + 304: 'Not Modified', + 305: 'Use Proxy', + 307: 'Temporary Redirect', + 308: 'Permanent Redirect', + 400: 'Bad Request', + 401: 'Unauthorized', + 402: 'Payment Required', + 403: 'Forbidden', + 404: 'Not Found', + 405: 'Method Not Allowed', + 406: 'Not Acceptable', + 407: 'Proxy Authentication Required', + 408: 'Request Timeout', + 409: 'Conflict', + 410: 'Gone', + 411: 'Length Required', + 412: 'Precondition Failed', + 413: 'Payload Too Large', + 414: 'URI Too Long', + 415: 'Unsupported Media Type', + 416: 'Range Not Satisfiable', + 417: 'Expectation Failed', + 418: "I'm a teapot", + 421: 'Misdirected Request', + 422: 'Unprocessable Entity', + 423: 'Locked', + 424: 'Failed Dependency', + 425: 'Unordered Collection', + 426: 'Upgrade Required', + 428: 'Precondition Required', + 429: 'Too Many Requests', + 431: 'Request Header Fields Too Large', + 451: 'Unavailable For Legal Reasons', + 500: 'Internal Server Error', + 501: 'Not Implemented', + 502: 'Bad Gateway', + 503: 'Service Unavailable', + 504: 'Gateway Timeout', + 505: 'HTTP Version Not Supported', + 506: 'Variant Also Negotiates', + 507: 'Insufficient Storage', + 508: 'Loop Detected', + 509: 'Bandwidth Limit Exceeded', + 510: 'Not Extended', + 511: 'Network Authentication Required', + } + }, + 34537: (e, t, r) => { + 'use strict' + var n = r(65205), + i = r(47208), + o = i(n('String.prototype.indexOf')) + e.exports = function (e, t) { + var r = n(e, !!t) + return 'function' == typeof r && o(e, '.prototype.') > -1 ? i(r) : r + } + }, + 47208: (e, t, r) => { + 'use strict' + var n = r(85395), + i = r(65205), + o = i('%Function.prototype.apply%'), + a = i('%Function.prototype.call%'), + s = i('%Reflect.apply%', !0) || n.call(a, o), + u = i('%Object.getOwnPropertyDescriptor%', !0), + c = i('%Object.defineProperty%', !0), + f = i('%Math.max%') + if (c) + try { + c({}, 'a', { value: 1 }) + } catch (e) { + c = null + } + e.exports = function (e) { + var t = s(n, a, arguments) + return (u && c && u(t, 'length').configurable && c(t, 'length', { value: 1 + f(0, e.length - (arguments.length - 1)) }), t) + } + var l = function () { + return s(n, o, arguments) + } + c ? c(e.exports, 'apply', { value: l }) : (e.exports.apply = l) + }, + 95108: (e, t, r) => { + var n = r(59105).Buffer, + i = r(98672).Transform, + o = r(18842).s + function a(e) { + ;(i.call(this), + (this.hashMode = 'string' == typeof e), + this.hashMode ? (this[e] = this._finalOrDigest) : (this.final = this._finalOrDigest), + this._final && ((this.__final = this._final), (this._final = null)), + (this._decoder = null), + (this._encoding = null)) + } + ;(r(19105)(a, i), + (a.prototype.update = function (e, t, r) { + 'string' == typeof e && (e = n.from(e, t)) + var i = this._update(e) + return this.hashMode ? this : (r && (i = this._toString(i, r)), i) + }), + (a.prototype.setAutoPadding = function () {}), + (a.prototype.getAuthTag = function () { + throw new Error('trying to get auth tag in unsupported state') + }), + (a.prototype.setAuthTag = function () { + throw new Error('trying to set auth tag in unsupported state') + }), + (a.prototype.setAAD = function () { + throw new Error('trying to set aad in unsupported state') + }), + (a.prototype._transform = function (e, t, r) { + var n + try { + this.hashMode ? this._update(e) : this.push(this._update(e)) + } catch (e) { + n = e + } finally { + r(n) + } + }), + (a.prototype._flush = function (e) { + var t + try { + this.push(this.__final()) + } catch (e) { + t = e + } + e(t) + }), + (a.prototype._finalOrDigest = function (e) { + var t = this.__final() || n.alloc(0) + return (e && (t = this._toString(t, e, !0)), t) + }), + (a.prototype._toString = function (e, t, r) { + if ((this._decoder || ((this._decoder = new o(t)), (this._encoding = t)), this._encoding !== t)) throw new Error("can't switch encodings") + var n = this._decoder.write(e) + return (r && (n += this._decoder.end()), n) + }), + (e.exports = a)) + }, + 99220: (e, t, r) => { + var n = r(18390).Buffer, + i = r(42870), + o = r(10660) + e.exports = function (e) { + return new s(e) + } + var a = { + secp256k1: { name: 'secp256k1', byteLength: 32 }, + secp224r1: { name: 'p224', byteLength: 28 }, + prime256v1: { name: 'p256', byteLength: 32 }, + prime192v1: { name: 'p192', byteLength: 24 }, + ed25519: { name: 'ed25519', byteLength: 32 }, + secp384r1: { name: 'p384', byteLength: 48 }, + secp521r1: { name: 'p521', byteLength: 66 }, + } + function s(e) { + ;((this.curveType = a[e]), + this.curveType || (this.curveType = { name: e }), + (this.curve = new i.ec(this.curveType.name)), + (this.keys = void 0)) + } + function u(e, t, r) { + Array.isArray(e) || (e = e.toArray()) + var i = new n(e) + if (r && i.length < r) { + var o = new n(r - i.length) + ;(o.fill(0), (i = n.concat([o, i]))) + } + return t ? i.toString(t) : i + } + ;((a.p224 = a.secp224r1), + (a.p256 = a.secp256r1 = a.prime256v1), + (a.p192 = a.secp192r1 = a.prime192v1), + (a.p384 = a.secp384r1), + (a.p521 = a.secp521r1), + (s.prototype.generateKeys = function (e, t) { + return ((this.keys = this.curve.genKeyPair()), this.getPublicKey(e, t)) + }), + (s.prototype.computeSecret = function (e, t, r) { + return ( + (t = t || 'utf8'), + n.isBuffer(e) || (e = new n(e, t)), + u(this.curve.keyFromPublic(e).getPublic().mul(this.keys.getPrivate()).getX(), r, this.curveType.byteLength) + ) + }), + (s.prototype.getPublicKey = function (e, t) { + var r = this.keys.getPublic('compressed' === t, !0) + return ('hybrid' === t && (r[r.length - 1] % 2 ? (r[0] = 7) : (r[0] = 6)), u(r, e)) + }), + (s.prototype.getPrivateKey = function (e) { + return u(this.keys.getPrivate(), e) + }), + (s.prototype.setPublicKey = function (e, t) { + return ((t = t || 'utf8'), n.isBuffer(e) || (e = new n(e, t)), this.keys._importPublic(e), this) + }), + (s.prototype.setPrivateKey = function (e, t) { + ;((t = t || 'utf8'), n.isBuffer(e) || (e = new n(e, t))) + var r = new o(e) + return ((r = r.toString(16)), (this.keys = this.curve.genKeyPair()), this.keys._importPrivate(r), this) + })) + }, + 50637: (e, t, r) => { + 'use strict' + var n = r(19105), + i = r(54659), + o = r(92027), + a = r(55695), + s = r(95108) + function u(e) { + ;(s.call(this, 'digest'), (this._hash = e)) + } + ;(n(u, s), + (u.prototype._update = function (e) { + this._hash.update(e) + }), + (u.prototype._final = function () { + return this._hash.digest() + }), + (e.exports = function (e) { + return 'md5' === (e = e.toLowerCase()) ? new i() : 'rmd160' === e || 'ripemd160' === e ? new o() : new u(a(e)) + })) + }, + 22944: (e, t, r) => { + var n = r(54659) + e.exports = function (e) { + return new n().update(e).digest() + } + }, + 18451: (e, t, r) => { + 'use strict' + var n = r(19105), + i = r(6880), + o = r(95108), + a = r(59105).Buffer, + s = r(22944), + u = r(92027), + c = r(55695), + f = a.alloc(128) + function l(e, t) { + ;(o.call(this, 'digest'), 'string' == typeof t && (t = a.from(t))) + var r = 'sha512' === e || 'sha384' === e ? 128 : 64 + ;((this._alg = e), + (this._key = t), + t.length > r ? (t = ('rmd160' === e ? new u() : c(e)).update(t).digest()) : t.length < r && (t = a.concat([t, f], r))) + for (var n = (this._ipad = a.allocUnsafe(r)), i = (this._opad = a.allocUnsafe(r)), s = 0; s < r; s++) + ((n[s] = 54 ^ t[s]), (i[s] = 92 ^ t[s])) + ;((this._hash = 'rmd160' === e ? new u() : c(e)), this._hash.update(n)) + } + ;(n(l, o), + (l.prototype._update = function (e) { + this._hash.update(e) + }), + (l.prototype._final = function () { + var e = this._hash.digest() + return ('rmd160' === this._alg ? new u() : c(this._alg)).update(this._opad).update(e).digest() + }), + (e.exports = function (e, t) { + return 'rmd160' === (e = e.toLowerCase()) || 'ripemd160' === e ? new l('rmd160', t) : 'md5' === e ? new i(s, t) : new l(e, t) + })) + }, + 6880: (e, t, r) => { + 'use strict' + var n = r(19105), + i = r(59105).Buffer, + o = r(95108), + a = i.alloc(128), + s = 64 + function u(e, t) { + ;(o.call(this, 'digest'), + 'string' == typeof t && (t = i.from(t)), + (this._alg = e), + (this._key = t), + t.length > s ? (t = e(t)) : t.length < s && (t = i.concat([t, a], s))) + for (var r = (this._ipad = i.allocUnsafe(s)), n = (this._opad = i.allocUnsafe(s)), u = 0; u < s; u++) + ((r[u] = 54 ^ t[u]), (n[u] = 92 ^ t[u])) + this._hash = [r] + } + ;(n(u, o), + (u.prototype._update = function (e) { + this._hash.push(e) + }), + (u.prototype._final = function () { + var e = this._alg(i.concat(this._hash)) + return this._alg(i.concat([this._opad, e])) + }), + (e.exports = u)) + }, + 54795: (e, t, r) => { + 'use strict' + ;((t.randomBytes = t.rng = t.pseudoRandomBytes = t.prng = r(83638)), (t.createHash = t.Hash = r(50637)), (t.createHmac = t.Hmac = r(18451))) + var n = r(54301), + i = Object.keys(n), + o = ['sha1', 'sha224', 'sha256', 'sha384', 'sha512', 'md5', 'rmd160'].concat(i) + t.getHashes = function () { + return o + } + var a = r(14321) + ;((t.pbkdf2 = a.pbkdf2), (t.pbkdf2Sync = a.pbkdf2Sync)) + var s = r(57797) + ;((t.Cipher = s.Cipher), + (t.createCipher = s.createCipher), + (t.Cipheriv = s.Cipheriv), + (t.createCipheriv = s.createCipheriv), + (t.Decipher = s.Decipher), + (t.createDecipher = s.createDecipher), + (t.Decipheriv = s.Decipheriv), + (t.createDecipheriv = s.createDecipheriv), + (t.getCiphers = s.getCiphers), + (t.listCiphers = s.listCiphers)) + var u = r(3947) + ;((t.DiffieHellmanGroup = u.DiffieHellmanGroup), + (t.createDiffieHellmanGroup = u.createDiffieHellmanGroup), + (t.getDiffieHellman = u.getDiffieHellman), + (t.createDiffieHellman = u.createDiffieHellman), + (t.DiffieHellman = u.DiffieHellman)) + var c = r(93564) + ;((t.createSign = c.createSign), (t.Sign = c.Sign), (t.createVerify = c.createVerify), (t.Verify = c.Verify), (t.createECDH = r(99220))) + var f = r(92518) + ;((t.publicEncrypt = f.publicEncrypt), + (t.privateEncrypt = f.privateEncrypt), + (t.publicDecrypt = f.publicDecrypt), + (t.privateDecrypt = f.privateDecrypt)) + var l = r(91538) + ;((t.randomFill = l.randomFill), + (t.randomFillSync = l.randomFillSync), + (t.createCredentials = function () { + throw new Error( + [ + 'sorry, createCredentials is not implemented yet', + 'we accept pull requests', + 'https://github.com/crypto-browserify/crypto-browserify', + ].join('\n'), + ) + }), + (t.constants = { + DH_CHECK_P_NOT_SAFE_PRIME: 2, + DH_CHECK_P_NOT_PRIME: 1, + DH_UNABLE_TO_CHECK_GENERATOR: 4, + DH_NOT_SUITABLE_GENERATOR: 8, + NPN_ENABLED: 1, + ALPN_ENABLED: 1, + RSA_PKCS1_PADDING: 1, + RSA_SSLV23_PADDING: 2, + RSA_NO_PADDING: 3, + RSA_PKCS1_OAEP_PADDING: 4, + RSA_X931_PADDING: 5, + RSA_PKCS1_PSS_PADDING: 6, + POINT_CONVERSION_COMPRESSED: 2, + POINT_CONVERSION_UNCOMPRESSED: 4, + POINT_CONVERSION_HYBRID: 6, + })) + }, + 16856: function (e, t, r) { + var n + !(function (i) { + 'use strict' + var o, + a, + s, + u = 9e15, + c = 1e9, + f = '0123456789abcdef', + l = + '2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058', + d = + '3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789', + h = { precision: 20, rounding: 4, modulo: 1, toExpNeg: -7, toExpPos: 21, minE: -u, maxE: u, crypto: !1 }, + p = !0, + y = '[DecimalError] ', + g = y + 'Invalid argument: ', + b = y + 'Precision limit exceeded', + m = y + 'crypto unavailable', + v = '[object Decimal]', + w = Math.floor, + _ = Math.pow, + E = /^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i, + S = /^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i, + A = /^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i, + O = /^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i, + M = 1e7, + T = 7, + I = l.length - 1, + N = d.length - 1, + x = { toStringTag: v } + function L(e) { + var t, + r, + n, + i = e.length - 1, + o = '', + a = e[0] + if (i > 0) { + for (o += a, t = 1; t < i; t++) ((n = e[t] + ''), (r = T - n.length) && (o += H(r)), (o += n)) + ;((a = e[t]), (r = T - (n = a + '').length) && (o += H(r))) + } else if (0 === a) return '0' + for (; a % 10 == 0; ) a /= 10 + return o + a + } + function k(e, t, r) { + if (e !== ~~e || e < t || e > r) throw Error(g + e) + } + function R(e, t, r, n) { + var i, o, a, s + for (o = e[0]; o >= 10; o /= 10) --t + return ( + --t < 0 ? ((t += T), (i = 0)) : ((i = Math.ceil((t + 1) / T)), (t %= T)), + (o = _(10, T - t)), + (s = (e[i] % o) | 0), + null == n + ? t < 3 + ? (0 == t ? (s = (s / 100) | 0) : 1 == t && (s = (s / 10) | 0), + (a = (r < 4 && 99999 == s) || (r > 3 && 49999 == s) || 5e4 == s || 0 == s)) + : (a = + (((r < 4 && s + 1 == o) || (r > 3 && s + 1 == o / 2)) && ((e[i + 1] / o / 100) | 0) == _(10, t - 2) - 1) || + ((s == o / 2 || 0 == s) && 0 == ((e[i + 1] / o / 100) | 0))) + : t < 4 + ? (0 == t ? (s = (s / 1e3) | 0) : 1 == t ? (s = (s / 100) | 0) : 2 == t && (s = (s / 10) | 0), + (a = ((n || r < 4) && 9999 == s) || (!n && r > 3 && 4999 == s))) + : (a = (((n || r < 4) && s + 1 == o) || (!n && r > 3 && s + 1 == o / 2)) && ((e[i + 1] / o / 1e3) | 0) == _(10, t - 3) - 1), + a + ) + } + function P(e, t, r) { + for (var n, i, o = [0], a = 0, s = e.length; a < s; ) { + for (i = o.length; i--; ) o[i] *= t + for (o[0] += f.indexOf(e.charAt(a++)), n = 0; n < o.length; n++) + o[n] > r - 1 && (void 0 === o[n + 1] && (o[n + 1] = 0), (o[n + 1] += (o[n] / r) | 0), (o[n] %= r)) + } + return o.reverse() + } + ;((x.absoluteValue = x.abs = + function () { + var e = new this.constructor(this) + return (e.s < 0 && (e.s = 1), D(e)) + }), + (x.ceil = function () { + return D(new this.constructor(this), this.e + 1, 2) + }), + (x.clampedTo = x.clamp = + function (e, t) { + var r = this, + n = r.constructor + if (((e = new n(e)), (t = new n(t)), !e.s || !t.s)) return new n(NaN) + if (e.gt(t)) throw Error(g + t) + return r.cmp(e) < 0 ? e : r.cmp(t) > 0 ? t : new n(r) + }), + (x.comparedTo = x.cmp = + function (e) { + var t, + r, + n, + i, + o = this, + a = o.d, + s = (e = new o.constructor(e)).d, + u = o.s, + c = e.s + if (!a || !s) return u && c ? (u !== c ? u : a === s ? 0 : !a ^ (u < 0) ? 1 : -1) : NaN + if (!a[0] || !s[0]) return a[0] ? u : s[0] ? -c : 0 + if (u !== c) return u + if (o.e !== e.e) return (o.e > e.e) ^ (u < 0) ? 1 : -1 + for (t = 0, r = (n = a.length) < (i = s.length) ? n : i; t < r; ++t) if (a[t] !== s[t]) return (a[t] > s[t]) ^ (u < 0) ? 1 : -1 + return n === i ? 0 : (n > i) ^ (u < 0) ? 1 : -1 + }), + (x.cosine = x.cos = + function () { + var e, + t, + r = this, + n = r.constructor + return r.d + ? r.d[0] + ? ((e = n.precision), + (t = n.rounding), + (n.precision = e + Math.max(r.e, r.sd()) + T), + (n.rounding = 1), + (r = (function (e, t) { + var r, n, i + if (t.isZero()) return t + ;((n = t.d.length) < 32 + ? (i = (1 / Z(4, (r = Math.ceil(n / 3)))).toString()) + : ((r = 16), (i = '2.3283064365386962890625e-10')), + (e.precision += r), + (t = J(e, 1, t.times(i), new e(1)))) + for (var o = r; o--; ) { + var a = t.times(t) + t = a.times(a).minus(a).times(8).plus(1) + } + return ((e.precision -= r), t) + })(n, Q(n, r))), + (n.precision = e), + (n.rounding = t), + D(2 == s || 3 == s ? r.neg() : r, e, t, !0)) + : new n(1) + : new n(NaN) + }), + (x.cubeRoot = x.cbrt = + function () { + var e, + t, + r, + n, + i, + o, + a, + s, + u, + c, + f = this, + l = f.constructor + if (!f.isFinite() || f.isZero()) return new l(f) + for ( + p = !1, + (o = f.s * _(f.s * f, 1 / 3)) && Math.abs(o) != 1 / 0 + ? (n = new l(o.toString())) + : ((r = L(f.d)), + (o = ((e = f.e) - r.length + 1) % 3) && (r += 1 == o || -2 == o ? '0' : '00'), + (o = _(r, 1 / 3)), + (e = w((e + 1) / 3) - (e % 3 == (e < 0 ? -1 : 2))), + ((n = new l((r = o == 1 / 0 ? '5e' + e : (r = o.toExponential()).slice(0, r.indexOf('e') + 1) + e))).s = f.s)), + a = (e = l.precision) + 3; + ; + ) + if ( + ((c = (u = (s = n).times(s).times(s)).plus(f)), + (n = B(c.plus(f).times(s), c.plus(u), a + 2, 1)), + L(s.d).slice(0, a) === (r = L(n.d)).slice(0, a)) + ) { + if ('9999' != (r = r.slice(a - 3, a + 1)) && (i || '4999' != r)) { + ;(+r && (+r.slice(1) || '5' != r.charAt(0))) || (D(n, e + 1, 1), (t = !n.times(n).times(n).eq(f))) + break + } + if (!i && (D(s, e + 1, 0), s.times(s).times(s).eq(f))) { + n = s + break + } + ;((a += 4), (i = 1)) + } + return ((p = !0), D(n, e, l.rounding, t)) + }), + (x.decimalPlaces = x.dp = + function () { + var e, + t = this.d, + r = NaN + if (t) { + if (((r = ((e = t.length - 1) - w(this.e / T)) * T), (e = t[e]))) for (; e % 10 == 0; e /= 10) r-- + r < 0 && (r = 0) + } + return r + }), + (x.dividedBy = x.div = + function (e) { + return B(this, new this.constructor(e)) + }), + (x.dividedToIntegerBy = x.divToInt = + function (e) { + var t = this.constructor + return D(B(this, new t(e), 0, 1, 1), t.precision, t.rounding) + }), + (x.equals = x.eq = + function (e) { + return 0 === this.cmp(e) + }), + (x.floor = function () { + return D(new this.constructor(this), this.e + 1, 3) + }), + (x.greaterThan = x.gt = + function (e) { + return this.cmp(e) > 0 + }), + (x.greaterThanOrEqualTo = x.gte = + function (e) { + var t = this.cmp(e) + return 1 == t || 0 === t + }), + (x.hyperbolicCosine = x.cosh = + function () { + var e, + t, + r, + n, + i, + o = this, + a = o.constructor, + s = new a(1) + if (!o.isFinite()) return new a(o.s ? 1 / 0 : NaN) + if (o.isZero()) return s + ;((r = a.precision), + (n = a.rounding), + (a.precision = r + Math.max(o.e, o.sd()) + 4), + (a.rounding = 1), + (i = o.d.length) < 32 ? (t = (1 / Z(4, (e = Math.ceil(i / 3)))).toString()) : ((e = 16), (t = '2.3283064365386962890625e-10')), + (o = J(a, 1, o.times(t), new a(1), !0))) + for (var u, c = e, f = new a(8); c--; ) ((u = o.times(o)), (o = s.minus(u.times(f.minus(u.times(f)))))) + return D(o, (a.precision = r), (a.rounding = n), !0) + }), + (x.hyperbolicSine = x.sinh = + function () { + var e, + t, + r, + n, + i = this, + o = i.constructor + if (!i.isFinite() || i.isZero()) return new o(i) + if (((t = o.precision), (r = o.rounding), (o.precision = t + Math.max(i.e, i.sd()) + 4), (o.rounding = 1), (n = i.d.length) < 3)) + i = J(o, 2, i, i, !0) + else { + ;((e = (e = 1.4 * Math.sqrt(n)) > 16 ? 16 : 0 | e), (i = J(o, 2, (i = i.times(1 / Z(5, e))), i, !0))) + for (var a, s = new o(5), u = new o(16), c = new o(20); e--; ) + ((a = i.times(i)), (i = i.times(s.plus(a.times(u.times(a).plus(c)))))) + } + return ((o.precision = t), (o.rounding = r), D(i, t, r, !0)) + }), + (x.hyperbolicTangent = x.tanh = + function () { + var e, + t, + r = this, + n = r.constructor + return r.isFinite() + ? r.isZero() + ? new n(r) + : ((e = n.precision), + (t = n.rounding), + (n.precision = e + 7), + (n.rounding = 1), + B(r.sinh(), r.cosh(), (n.precision = e), (n.rounding = t))) + : new n(r.s) + }), + (x.inverseCosine = x.acos = + function () { + var e, + t = this, + r = t.constructor, + n = t.abs().cmp(1), + i = r.precision, + o = r.rounding + return -1 !== n + ? 0 === n + ? t.isNeg() + ? U(r, i, o) + : new r(0) + : new r(NaN) + : t.isZero() + ? U(r, i + 4, o).times(0.5) + : ((r.precision = i + 6), + (r.rounding = 1), + (t = t.asin()), + (e = U(r, i + 4, o).times(0.5)), + (r.precision = i), + (r.rounding = o), + e.minus(t)) + }), + (x.inverseHyperbolicCosine = x.acosh = + function () { + var e, + t, + r = this, + n = r.constructor + return r.lte(1) + ? new n(r.eq(1) ? 0 : NaN) + : r.isFinite() + ? ((e = n.precision), + (t = n.rounding), + (n.precision = e + Math.max(Math.abs(r.e), r.sd()) + 4), + (n.rounding = 1), + (p = !1), + (r = r.times(r).minus(1).sqrt().plus(r)), + (p = !0), + (n.precision = e), + (n.rounding = t), + r.ln()) + : new n(r) + }), + (x.inverseHyperbolicSine = x.asinh = + function () { + var e, + t, + r = this, + n = r.constructor + return !r.isFinite() || r.isZero() + ? new n(r) + : ((e = n.precision), + (t = n.rounding), + (n.precision = e + 2 * Math.max(Math.abs(r.e), r.sd()) + 6), + (n.rounding = 1), + (p = !1), + (r = r.times(r).plus(1).sqrt().plus(r)), + (p = !0), + (n.precision = e), + (n.rounding = t), + r.ln()) + }), + (x.inverseHyperbolicTangent = x.atanh = + function () { + var e, + t, + r, + n, + i = this, + o = i.constructor + return i.isFinite() + ? i.e >= 0 + ? new o(i.abs().eq(1) ? i.s / 0 : i.isZero() ? i : NaN) + : ((e = o.precision), + (t = o.rounding), + (n = i.sd()), + Math.max(n, e) < 2 * -i.e - 1 + ? D(new o(i), e, t, !0) + : ((o.precision = r = n - i.e), + (i = B(i.plus(1), new o(1).minus(i), r + e, 1)), + (o.precision = e + 4), + (o.rounding = 1), + (i = i.ln()), + (o.precision = e), + (o.rounding = t), + i.times(0.5))) + : new o(NaN) + }), + (x.inverseSine = x.asin = + function () { + var e, + t, + r, + n, + i = this, + o = i.constructor + return i.isZero() + ? new o(i) + : ((t = i.abs().cmp(1)), + (r = o.precision), + (n = o.rounding), + -1 !== t + ? 0 === t + ? (((e = U(o, r + 4, n).times(0.5)).s = i.s), e) + : new o(NaN) + : ((o.precision = r + 6), + (o.rounding = 1), + (i = i.div(new o(1).minus(i.times(i)).sqrt().plus(1)).atan()), + (o.precision = r), + (o.rounding = n), + i.times(2))) + }), + (x.inverseTangent = x.atan = + function () { + var e, + t, + r, + n, + i, + o, + a, + s, + u, + c = this, + f = c.constructor, + l = f.precision, + d = f.rounding + if (c.isFinite()) { + if (c.isZero()) return new f(c) + if (c.abs().eq(1) && l + 4 <= N) return (((a = U(f, l + 4, d).times(0.25)).s = c.s), a) + } else { + if (!c.s) return new f(NaN) + if (l + 4 <= N) return (((a = U(f, l + 4, d).times(0.5)).s = c.s), a) + } + for (f.precision = s = l + 10, f.rounding = 1, e = r = Math.min(28, (s / T + 2) | 0); e; --e) + c = c.div(c.times(c).plus(1).sqrt().plus(1)) + for (p = !1, t = Math.ceil(s / T), n = 1, u = c.times(c), a = new f(c), i = c; -1 !== e; ) + if (((i = i.times(u)), (o = a.minus(i.div((n += 2)))), (i = i.times(u)), void 0 !== (a = o.plus(i.div((n += 2)))).d[t])) + for (e = t; a.d[e] === o.d[e] && e--; ); + return (r && (a = a.times(2 << (r - 1))), (p = !0), D(a, (f.precision = l), (f.rounding = d), !0)) + }), + (x.isFinite = function () { + return !!this.d + }), + (x.isInteger = x.isInt = + function () { + return !!this.d && w(this.e / T) > this.d.length - 2 + }), + (x.isNaN = function () { + return !this.s + }), + (x.isNegative = x.isNeg = + function () { + return this.s < 0 + }), + (x.isPositive = x.isPos = + function () { + return this.s > 0 + }), + (x.isZero = function () { + return !!this.d && 0 === this.d[0] + }), + (x.lessThan = x.lt = + function (e) { + return this.cmp(e) < 0 + }), + (x.lessThanOrEqualTo = x.lte = + function (e) { + return this.cmp(e) < 1 + }), + (x.logarithm = x.log = + function (e) { + var t, + r, + n, + i, + o, + a, + s, + u, + c = this, + f = c.constructor, + l = f.precision, + d = f.rounding + if (null == e) ((e = new f(10)), (t = !0)) + else { + if (((r = (e = new f(e)).d), e.s < 0 || !r || !r[0] || e.eq(1))) return new f(NaN) + t = e.eq(10) + } + if (((r = c.d), c.s < 0 || !r || !r[0] || c.eq(1))) return new f(r && !r[0] ? -1 / 0 : 1 != c.s ? NaN : r ? 0 : 1 / 0) + if (t) + if (r.length > 1) o = !0 + else { + for (i = r[0]; i % 10 == 0; ) i /= 10 + o = 1 !== i + } + if (((p = !1), (a = G(c, (s = l + 5))), (n = t ? F(f, s + 10) : G(e, s)), R((u = B(a, n, s, 1)).d, (i = l), d))) + do { + if (((a = G(c, (s += 10))), (n = t ? F(f, s + 10) : G(e, s)), (u = B(a, n, s, 1)), !o)) { + ;+L(u.d).slice(i + 1, i + 15) + 1 == 1e14 && (u = D(u, l + 1, 0)) + break + } + } while (R(u.d, (i += 10), d)) + return ((p = !0), D(u, l, d)) + }), + (x.minus = x.sub = + function (e) { + var t, + r, + n, + i, + o, + a, + s, + u, + c, + f, + l, + d, + h = this, + y = h.constructor + if (((e = new y(e)), !h.d || !e.d)) + return (h.s && e.s ? (h.d ? (e.s = -e.s) : (e = new y(e.d || h.s !== e.s ? h : NaN))) : (e = new y(NaN)), e) + if (h.s != e.s) return ((e.s = -e.s), h.plus(e)) + if (((c = h.d), (d = e.d), (s = y.precision), (u = y.rounding), !c[0] || !d[0])) { + if (d[0]) e.s = -e.s + else { + if (!c[0]) return new y(3 === u ? -0 : 0) + e = new y(h) + } + return p ? D(e, s, u) : e + } + if (((r = w(e.e / T)), (f = w(h.e / T)), (c = c.slice()), (o = f - r))) { + for ( + (l = o < 0) ? ((t = c), (o = -o), (a = d.length)) : ((t = d), (r = f), (a = c.length)), + o > (n = Math.max(Math.ceil(s / T), a) + 2) && ((o = n), (t.length = 1)), + t.reverse(), + n = o; + n--; + ) + t.push(0) + t.reverse() + } else { + for ((l = (n = c.length) < (a = d.length)) && (a = n), n = 0; n < a; n++) + if (c[n] != d[n]) { + l = c[n] < d[n] + break + } + o = 0 + } + for (l && ((t = c), (c = d), (d = t), (e.s = -e.s)), a = c.length, n = d.length - a; n > 0; --n) c[a++] = 0 + for (n = d.length; n > o; ) { + if (c[--n] < d[n]) { + for (i = n; i && 0 === c[--i]; ) c[i] = M - 1 + ;(--c[i], (c[n] += M)) + } + c[n] -= d[n] + } + for (; 0 === c[--a]; ) c.pop() + for (; 0 === c[0]; c.shift()) --r + return c[0] ? ((e.d = c), (e.e = j(c, r)), p ? D(e, s, u) : e) : new y(3 === u ? -0 : 0) + }), + (x.modulo = x.mod = + function (e) { + var t, + r = this, + n = r.constructor + return ( + (e = new n(e)), + !r.d || !e.s || (e.d && !e.d[0]) + ? new n(NaN) + : !e.d || (r.d && !r.d[0]) + ? D(new n(r), n.precision, n.rounding) + : ((p = !1), + 9 == n.modulo ? ((t = B(r, e.abs(), 0, 3, 1)).s *= e.s) : (t = B(r, e, 0, n.modulo, 1)), + (t = t.times(e)), + (p = !0), + r.minus(t)) + ) + }), + (x.naturalExponential = x.exp = + function () { + return W(this) + }), + (x.naturalLogarithm = x.ln = + function () { + return G(this) + }), + (x.negated = x.neg = + function () { + var e = new this.constructor(this) + return ((e.s = -e.s), D(e)) + }), + (x.plus = x.add = + function (e) { + var t, + r, + n, + i, + o, + a, + s, + u, + c, + f, + l = this, + d = l.constructor + if (((e = new d(e)), !l.d || !e.d)) return (l.s && e.s ? l.d || (e = new d(e.d || l.s === e.s ? l : NaN)) : (e = new d(NaN)), e) + if (l.s != e.s) return ((e.s = -e.s), l.minus(e)) + if (((c = l.d), (f = e.d), (s = d.precision), (u = d.rounding), !c[0] || !f[0])) return (f[0] || (e = new d(l)), p ? D(e, s, u) : e) + if (((o = w(l.e / T)), (n = w(e.e / T)), (c = c.slice()), (i = o - n))) { + for ( + i < 0 ? ((r = c), (i = -i), (a = f.length)) : ((r = f), (n = o), (a = c.length)), + i > (a = (o = Math.ceil(s / T)) > a ? o + 1 : a + 1) && ((i = a), (r.length = 1)), + r.reverse(); + i--; + ) + r.push(0) + r.reverse() + } + for ((a = c.length) - (i = f.length) < 0 && ((i = a), (r = f), (f = c), (c = r)), t = 0; i; ) + ((t = ((c[--i] = c[i] + f[i] + t) / M) | 0), (c[i] %= M)) + for (t && (c.unshift(t), ++n), a = c.length; 0 == c[--a]; ) c.pop() + return ((e.d = c), (e.e = j(c, n)), p ? D(e, s, u) : e) + }), + (x.precision = x.sd = + function (e) { + var t, + r = this + if (void 0 !== e && e !== !!e && 1 !== e && 0 !== e) throw Error(g + e) + return (r.d ? ((t = V(r.d)), e && r.e + 1 > t && (t = r.e + 1)) : (t = NaN), t) + }), + (x.round = function () { + var e = this, + t = e.constructor + return D(new t(e), e.e + 1, t.rounding) + }), + (x.sine = x.sin = + function () { + var e, + t, + r = this, + n = r.constructor + return r.isFinite() + ? r.isZero() + ? new n(r) + : ((e = n.precision), + (t = n.rounding), + (n.precision = e + Math.max(r.e, r.sd()) + T), + (n.rounding = 1), + (r = (function (e, t) { + var r, + n = t.d.length + if (n < 3) return t.isZero() ? t : J(e, 2, t, t) + ;((r = (r = 1.4 * Math.sqrt(n)) > 16 ? 16 : 0 | r), (t = J(e, 2, (t = t.times(1 / Z(5, r))), t))) + for (var i, o = new e(5), a = new e(16), s = new e(20); r--; ) + ((i = t.times(t)), (t = t.times(o.plus(i.times(a.times(i).minus(s)))))) + return t + })(n, Q(n, r))), + (n.precision = e), + (n.rounding = t), + D(s > 2 ? r.neg() : r, e, t, !0)) + : new n(NaN) + }), + (x.squareRoot = x.sqrt = + function () { + var e, + t, + r, + n, + i, + o, + a = this, + s = a.d, + u = a.e, + c = a.s, + f = a.constructor + if (1 !== c || !s || !s[0]) return new f(!c || (c < 0 && (!s || s[0])) ? NaN : s ? a : 1 / 0) + for ( + p = !1, + 0 == (c = Math.sqrt(+a)) || c == 1 / 0 + ? (((t = L(s)).length + u) % 2 == 0 && (t += '0'), + (c = Math.sqrt(t)), + (u = w((u + 1) / 2) - (u < 0 || u % 2)), + (n = new f((t = c == 1 / 0 ? '5e' + u : (t = c.toExponential()).slice(0, t.indexOf('e') + 1) + u)))) + : (n = new f(c.toString())), + r = (u = f.precision) + 3; + ; + ) + if (((n = (o = n).plus(B(a, o, r + 2, 1)).times(0.5)), L(o.d).slice(0, r) === (t = L(n.d)).slice(0, r))) { + if ('9999' != (t = t.slice(r - 3, r + 1)) && (i || '4999' != t)) { + ;(+t && (+t.slice(1) || '5' != t.charAt(0))) || (D(n, u + 1, 1), (e = !n.times(n).eq(a))) + break + } + if (!i && (D(o, u + 1, 0), o.times(o).eq(a))) { + n = o + break + } + ;((r += 4), (i = 1)) + } + return ((p = !0), D(n, u, f.rounding, e)) + }), + (x.tangent = x.tan = + function () { + var e, + t, + r = this, + n = r.constructor + return r.isFinite() + ? r.isZero() + ? new n(r) + : ((e = n.precision), + (t = n.rounding), + (n.precision = e + 10), + (n.rounding = 1), + ((r = r.sin()).s = 1), + (r = B(r, new n(1).minus(r.times(r)).sqrt(), e + 10, 0)), + (n.precision = e), + (n.rounding = t), + D(2 == s || 4 == s ? r.neg() : r, e, t, !0)) + : new n(NaN) + }), + (x.times = x.mul = + function (e) { + var t, + r, + n, + i, + o, + a, + s, + u, + c, + f = this, + l = f.constructor, + d = f.d, + h = (e = new l(e)).d + if (((e.s *= f.s), !(d && d[0] && h && h[0]))) + return new l(!e.s || (d && !d[0] && !h) || (h && !h[0] && !d) ? NaN : d && h ? 0 * e.s : e.s / 0) + for ( + r = w(f.e / T) + w(e.e / T), + (u = d.length) < (c = h.length) && ((o = d), (d = h), (h = o), (a = u), (u = c), (c = a)), + o = [], + n = a = u + c; + n--; + ) + o.push(0) + for (n = c; --n >= 0; ) { + for (t = 0, i = u + n; i > n; ) ((s = o[i] + h[n] * d[i - n - 1] + t), (o[i--] = (s % M) | 0), (t = (s / M) | 0)) + o[i] = ((o[i] + t) % M) | 0 + } + for (; !o[--a]; ) o.pop() + return (t ? ++r : o.shift(), (e.d = o), (e.e = j(o, r)), p ? D(e, l.precision, l.rounding) : e) + }), + (x.toBinary = function (e, t) { + return ee(this, 2, e, t) + }), + (x.toDecimalPlaces = x.toDP = + function (e, t) { + var r = this, + n = r.constructor + return ((r = new n(r)), void 0 === e ? r : (k(e, 0, c), void 0 === t ? (t = n.rounding) : k(t, 0, 8), D(r, e + r.e + 1, t))) + }), + (x.toExponential = function (e, t) { + var r, + n = this, + i = n.constructor + return ( + void 0 === e + ? (r = C(n, !0)) + : (k(e, 0, c), void 0 === t ? (t = i.rounding) : k(t, 0, 8), (r = C((n = D(new i(n), e + 1, t)), !0, e + 1))), + n.isNeg() && !n.isZero() ? '-' + r : r + ) + }), + (x.toFixed = function (e, t) { + var r, + n, + i = this, + o = i.constructor + return ( + void 0 === e + ? (r = C(i)) + : (k(e, 0, c), void 0 === t ? (t = o.rounding) : k(t, 0, 8), (r = C((n = D(new o(i), e + i.e + 1, t)), !1, e + n.e + 1))), + i.isNeg() && !i.isZero() ? '-' + r : r + ) + }), + (x.toFraction = function (e) { + var t, + r, + n, + i, + o, + a, + s, + u, + c, + f, + l, + d, + h = this, + y = h.d, + b = h.constructor + if (!y) return new b(h) + if ( + ((c = r = new b(1)), + (n = u = new b(0)), + (a = (o = (t = new b(n)).e = V(y) - h.e - 1) % T), + (t.d[0] = _(10, a < 0 ? T + a : a)), + null == e) + ) + e = o > 0 ? t : c + else { + if (!(s = new b(e)).isInt() || s.lt(c)) throw Error(g + s) + e = s.gt(t) ? (o > 0 ? t : c) : s + } + for ( + p = !1, s = new b(L(y)), f = b.precision, b.precision = o = y.length * T * 2; + (l = B(s, t, 0, 1, 1)), 1 != (i = r.plus(l.times(n))).cmp(e); + ) + ((r = n), (n = i), (i = c), (c = u.plus(l.times(i))), (u = i), (i = t), (t = s.minus(l.times(i))), (s = i)) + return ( + (i = B(e.minus(r), n, 0, 1, 1)), + (u = u.plus(i.times(c))), + (r = r.plus(i.times(n))), + (u.s = c.s = h.s), + (d = + B(c, n, o, 1) + .minus(h) + .abs() + .cmp(B(u, r, o, 1).minus(h).abs()) < 1 + ? [c, n] + : [u, r]), + (b.precision = f), + (p = !0), + d + ) + }), + (x.toHexadecimal = x.toHex = + function (e, t) { + return ee(this, 16, e, t) + }), + (x.toNearest = function (e, t) { + var r = this, + n = r.constructor + if (((r = new n(r)), null == e)) { + if (!r.d) return r + ;((e = new n(1)), (t = n.rounding)) + } else { + if (((e = new n(e)), void 0 === t ? (t = n.rounding) : k(t, 0, 8), !r.d)) return e.s ? r : e + if (!e.d) return (e.s && (e.s = r.s), e) + } + return (e.d[0] ? ((p = !1), (r = B(r, e, 0, t, 1).times(e)), (p = !0), D(r)) : ((e.s = r.s), (r = e)), r) + }), + (x.toNumber = function () { + return +this + }), + (x.toOctal = function (e, t) { + return ee(this, 8, e, t) + }), + (x.toPower = x.pow = + function (e) { + var t, + r, + n, + i, + o, + a, + s = this, + u = s.constructor, + c = +(e = new u(e)) + if (!(s.d && e.d && s.d[0] && e.d[0])) return new u(_(+s, c)) + if ((s = new u(s)).eq(1)) return s + if (((n = u.precision), (o = u.rounding), e.eq(1))) return D(s, n, o) + if ((t = w(e.e / T)) >= e.d.length - 1 && (r = c < 0 ? -c : c) <= 9007199254740991) + return ((i = z(u, s, r, n)), e.s < 0 ? new u(1).div(i) : D(i, n, o)) + if ((a = s.s) < 0) { + if (t < e.d.length - 1) return new u(NaN) + if ((0 == (1 & e.d[t]) && (a = 1), 0 == s.e && 1 == s.d[0] && 1 == s.d.length)) return ((s.s = a), s) + } + return (t = 0 != (r = _(+s, c)) && isFinite(r) ? new u(r + '').e : w(c * (Math.log('0.' + L(s.d)) / Math.LN10 + s.e + 1))) > + u.maxE + 1 || t < u.minE - 1 + ? new u(t > 0 ? a / 0 : 0) + : ((p = !1), + (u.rounding = s.s = 1), + (r = Math.min(12, (t + '').length)), + (i = W(e.times(G(s, n + r)), n)).d && + R((i = D(i, n + 5, 1)).d, n, o) && + ((t = n + 10), +L((i = D(W(e.times(G(s, t + r)), t), t + 5, 1)).d).slice(n + 1, n + 15) + 1 == 1e14 && (i = D(i, n + 1, 0))), + (i.s = a), + (p = !0), + (u.rounding = o), + D(i, n, o)) + }), + (x.toPrecision = function (e, t) { + var r, + n = this, + i = n.constructor + return ( + void 0 === e + ? (r = C(n, n.e <= i.toExpNeg || n.e >= i.toExpPos)) + : (k(e, 1, c), void 0 === t ? (t = i.rounding) : k(t, 0, 8), (r = C((n = D(new i(n), e, t)), e <= n.e || n.e <= i.toExpNeg, e))), + n.isNeg() && !n.isZero() ? '-' + r : r + ) + }), + (x.toSignificantDigits = x.toSD = + function (e, t) { + var r = this.constructor + return ( + void 0 === e ? ((e = r.precision), (t = r.rounding)) : (k(e, 1, c), void 0 === t ? (t = r.rounding) : k(t, 0, 8)), + D(new r(this), e, t) + ) + }), + (x.toString = function () { + var e = this, + t = e.constructor, + r = C(e, e.e <= t.toExpNeg || e.e >= t.toExpPos) + return e.isNeg() && !e.isZero() ? '-' + r : r + }), + (x.truncated = x.trunc = + function () { + return D(new this.constructor(this), this.e + 1, 1) + }), + (x.valueOf = x.toJSON = + function () { + var e = this, + t = e.constructor, + r = C(e, e.e <= t.toExpNeg || e.e >= t.toExpPos) + return e.isNeg() ? '-' + r : r + })) + var B = (function () { + function e(e, t, r) { + var n, + i = 0, + o = e.length + for (e = e.slice(); o--; ) ((n = e[o] * t + i), (e[o] = (n % r) | 0), (i = (n / r) | 0)) + return (i && e.unshift(i), e) + } + function t(e, t, r, n) { + var i, o + if (r != n) o = r > n ? 1 : -1 + else + for (i = o = 0; i < r; i++) + if (e[i] != t[i]) { + o = e[i] > t[i] ? 1 : -1 + break + } + return o + } + function r(e, t, r, n) { + for (var i = 0; r--; ) ((e[r] -= i), (i = e[r] < t[r] ? 1 : 0), (e[r] = i * n + e[r] - t[r])) + for (; !e[0] && e.length > 1; ) e.shift() + } + return function (n, i, o, s, u, c) { + var f, + l, + d, + h, + p, + y, + g, + b, + m, + v, + _, + E, + S, + A, + O, + I, + N, + x, + L, + k, + R = n.constructor, + P = n.s == i.s ? 1 : -1, + B = n.d, + C = i.d + if (!(B && B[0] && C && C[0])) return new R(n.s && i.s && (B ? !C || B[0] != C[0] : C) ? ((B && 0 == B[0]) || !C ? 0 * P : P / 0) : NaN) + for ( + c ? ((p = 1), (l = n.e - i.e)) : ((c = M), (p = T), (l = w(n.e / p) - w(i.e / p))), + L = C.length, + N = B.length, + v = (m = new R(P)).d = [], + d = 0; + C[d] == (B[d] || 0); + d++ + ); + if ((C[d] > (B[d] || 0) && l--, null == o ? ((A = o = R.precision), (s = R.rounding)) : (A = u ? o + (n.e - i.e) + 1 : o), A < 0)) + (v.push(1), (y = !0)) + else { + if (((A = (A / p + 2) | 0), (d = 0), 1 == L)) { + for (h = 0, C = C[0], A++; (d < N || h) && A--; d++) ((O = h * c + (B[d] || 0)), (v[d] = (O / C) | 0), (h = (O % C) | 0)) + y = h || d < N + } else { + for ( + (h = (c / (C[0] + 1)) | 0) > 1 && ((C = e(C, h, c)), (B = e(B, h, c)), (L = C.length), (N = B.length)), + I = L, + E = (_ = B.slice(0, L)).length; + E < L; + ) + _[E++] = 0 + ;((k = C.slice()).unshift(0), (x = C[0]), C[1] >= c / 2 && ++x) + do { + ;((h = 0), + (f = t(C, _, L, E)) < 0 + ? ((S = _[0]), + L != E && (S = S * c + (_[1] || 0)), + (h = (S / x) | 0) > 1 + ? (h >= c && (h = c - 1), + 1 == (f = t((g = e(C, h, c)), _, (b = g.length), (E = _.length))) && (h--, r(g, L < b ? k : C, b, c))) + : (0 == h && (f = h = 1), (g = C.slice())), + (b = g.length) < E && g.unshift(0), + r(_, g, E, c), + -1 == f && (f = t(C, _, L, (E = _.length))) < 1 && (h++, r(_, L < E ? k : C, E, c)), + (E = _.length)) + : 0 === f && (h++, (_ = [0])), + (v[d++] = h), + f && _[0] ? (_[E++] = B[I] || 0) : ((_ = [B[I]]), (E = 1))) + } while ((I++ < N || void 0 !== _[0]) && A--) + y = void 0 !== _[0] + } + v[0] || v.shift() + } + if (1 == p) ((m.e = l), (a = y)) + else { + for (d = 1, h = v[0]; h >= 10; h /= 10) d++ + ;((m.e = d + l * p - 1), D(m, u ? o + m.e + 1 : o, s, y)) + } + return m + } + })() + function D(e, t, r, n) { + var i, + o, + a, + s, + u, + c, + f, + l, + d, + h = e.constructor + e: if (null != t) { + if (!(l = e.d)) return e + for (i = 1, s = l[0]; s >= 10; s /= 10) i++ + if ((o = t - i) < 0) ((o += T), (a = t), (u = (((f = l[(d = 0)]) / _(10, i - a - 1)) % 10) | 0)) + else if ((d = Math.ceil((o + 1) / T)) >= (s = l.length)) { + if (!n) break e + for (; s++ <= d; ) l.push(0) + ;((f = u = 0), (i = 1), (a = (o %= T) - T + 1)) + } else { + for (f = s = l[d], i = 1; s >= 10; s /= 10) i++ + u = (a = (o %= T) - T + i) < 0 ? 0 : ((f / _(10, i - a - 1)) % 10) | 0 + } + if ( + ((n = n || t < 0 || void 0 !== l[d + 1] || (a < 0 ? f : f % _(10, i - a - 1))), + (c = + r < 4 + ? (u || n) && (0 == r || r == (e.s < 0 ? 3 : 2)) + : u > 5 || + (5 == u && + (4 == r || n || (6 == r && ((o > 0 ? (a > 0 ? f / _(10, i - a) : 0) : l[d - 1]) % 10) & 1) || r == (e.s < 0 ? 8 : 7)))), + t < 1 || !l[0]) + ) + return ((l.length = 0), c ? ((t -= e.e + 1), (l[0] = _(10, (T - (t % T)) % T)), (e.e = -t || 0)) : (l[0] = e.e = 0), e) + if ( + (0 == o + ? ((l.length = d), (s = 1), d--) + : ((l.length = d + 1), (s = _(10, T - o)), (l[d] = a > 0 ? (((f / _(10, i - a)) % _(10, a)) | 0) * s : 0)), + c) + ) + for (;;) { + if (0 == d) { + for (o = 1, a = l[0]; a >= 10; a /= 10) o++ + for (a = l[0] += s, s = 1; a >= 10; a /= 10) s++ + o != s && (e.e++, l[0] == M && (l[0] = 1)) + break + } + if (((l[d] += s), l[d] != M)) break + ;((l[d--] = 0), (s = 1)) + } + for (o = l.length; 0 === l[--o]; ) l.pop() + } + return (p && (e.e > h.maxE ? ((e.d = null), (e.e = NaN)) : e.e < h.minE && ((e.e = 0), (e.d = [0]))), e) + } + function C(e, t, r) { + if (!e.isFinite()) return Y(e) + var n, + i = e.e, + o = L(e.d), + a = o.length + return ( + t + ? (r && (n = r - a) > 0 ? (o = o.charAt(0) + '.' + o.slice(1) + H(n)) : a > 1 && (o = o.charAt(0) + '.' + o.slice(1)), + (o = o + (e.e < 0 ? 'e' : 'e+') + e.e)) + : i < 0 + ? ((o = '0.' + H(-i - 1) + o), r && (n = r - a) > 0 && (o += H(n))) + : i >= a + ? ((o += H(i + 1 - a)), r && (n = r - i - 1) > 0 && (o = o + '.' + H(n))) + : ((n = i + 1) < a && (o = o.slice(0, n) + '.' + o.slice(n)), r && (n = r - a) > 0 && (i + 1 === a && (o += '.'), (o += H(n)))), + o + ) + } + function j(e, t) { + var r = e[0] + for (t *= T; r >= 10; r /= 10) t++ + return t + } + function F(e, t, r) { + if (t > I) throw ((p = !0), r && (e.precision = r), Error(b)) + return D(new e(l), t, 1, !0) + } + function U(e, t, r) { + if (t > N) throw Error(b) + return D(new e(d), t, r, !0) + } + function V(e) { + var t = e.length - 1, + r = t * T + 1 + if ((t = e[t])) { + for (; t % 10 == 0; t /= 10) r-- + for (t = e[0]; t >= 10; t /= 10) r++ + } + return r + } + function H(e) { + for (var t = ''; e--; ) t += '0' + return t + } + function z(e, t, r, n) { + var i, + o = new e(1), + a = Math.ceil(n / T + 4) + for (p = !1; ; ) { + if ((r % 2 && te((o = o.times(t)).d, a) && (i = !0), 0 === (r = w(r / 2)))) { + ;((r = o.d.length - 1), i && 0 === o.d[r] && ++o.d[r]) + break + } + te((t = t.times(t)).d, a) + } + return ((p = !0), o) + } + function q(e) { + return 1 & e.d[e.d.length - 1] + } + function K(e, t, r) { + for (var n, i = new e(t[0]), o = 0; ++o < t.length; ) { + if (!(n = new e(t[o])).s) { + i = n + break + } + i[r](n) && (i = n) + } + return i + } + function W(e, t) { + var r, + n, + i, + o, + a, + s, + u, + c = 0, + f = 0, + l = 0, + d = e.constructor, + h = d.rounding, + y = d.precision + if (!e.d || !e.d[0] || e.e > 17) return new d(e.d ? (e.d[0] ? (e.s < 0 ? 0 : 1 / 0) : 1) : e.s ? (e.s < 0 ? 0 : e) : NaN) + for (null == t ? ((p = !1), (u = y)) : (u = t), s = new d(0.03125); e.e > -2; ) ((e = e.times(s)), (l += 5)) + for (u += n = ((Math.log(_(2, l)) / Math.LN10) * 2 + 5) | 0, r = o = a = new d(1), d.precision = u; ; ) { + if (((o = D(o.times(e), u, 1)), (r = r.times(++f)), L((s = a.plus(B(o, r, u, 1))).d).slice(0, u) === L(a.d).slice(0, u))) { + for (i = l; i--; ) a = D(a.times(a), u, 1) + if (null != t) return ((d.precision = y), a) + if (!(c < 3 && R(a.d, u - n, h, c))) return D(a, (d.precision = y), h, (p = !0)) + ;((d.precision = u += 10), (r = o = s = new d(1)), (f = 0), c++) + } + a = s + } + } + function G(e, t) { + var r, + n, + i, + o, + a, + s, + u, + c, + f, + l, + d, + h = 1, + y = e, + g = y.d, + b = y.constructor, + m = b.rounding, + v = b.precision + if (y.s < 0 || !g || !g[0] || (!y.e && 1 == g[0] && 1 == g.length)) return new b(g && !g[0] ? -1 / 0 : 1 != y.s ? NaN : g ? 0 : y) + if ((null == t ? ((p = !1), (f = v)) : (f = t), (b.precision = f += 10), (n = (r = L(g)).charAt(0)), !(Math.abs((o = y.e)) < 15e14))) + return ( + (c = F(b, f + 2, v).times(o + '')), + (y = G(new b(n + '.' + r.slice(1)), f - 10).plus(c)), + (b.precision = v), + null == t ? D(y, v, m, (p = !0)) : y + ) + for (; (n < 7 && 1 != n) || (1 == n && r.charAt(1) > 3); ) ((n = (r = L((y = y.times(e)).d)).charAt(0)), h++) + for ( + o = y.e, + n > 1 ? ((y = new b('0.' + r)), o++) : (y = new b(n + '.' + r.slice(1))), + l = y, + u = a = y = B(y.minus(1), y.plus(1), f, 1), + d = D(y.times(y), f, 1), + i = 3; + ; + ) { + if (((a = D(a.times(d), f, 1)), L((c = u.plus(B(a, new b(i), f, 1))).d).slice(0, f) === L(u.d).slice(0, f))) { + if (((u = u.times(2)), 0 !== o && (u = u.plus(F(b, f + 2, v).times(o + ''))), (u = B(u, new b(h), f, 1)), null != t)) + return ((b.precision = v), u) + if (!R(u.d, f - 10, m, s)) return D(u, (b.precision = v), m, (p = !0)) + ;((b.precision = f += 10), (c = a = y = B(l.minus(1), l.plus(1), f, 1)), (d = D(y.times(y), f, 1)), (i = s = 1)) + } + ;((u = c), (i += 2)) + } + } + function Y(e) { + return String((e.s * e.s) / 0) + } + function $(e, t) { + var r, n, i + for ( + (r = t.indexOf('.')) > -1 && (t = t.replace('.', '')), + (n = t.search(/e/i)) > 0 ? (r < 0 && (r = n), (r += +t.slice(n + 1)), (t = t.substring(0, n))) : r < 0 && (r = t.length), + n = 0; + 48 === t.charCodeAt(n); + n++ + ); + for (i = t.length; 48 === t.charCodeAt(i - 1); --i); + if ((t = t.slice(n, i))) { + if (((i -= n), (e.e = r = r - n - 1), (e.d = []), (n = (r + 1) % T), r < 0 && (n += T), n < i)) { + for (n && e.d.push(+t.slice(0, n)), i -= T; n < i; ) e.d.push(+t.slice(n, (n += T))) + ;((t = t.slice(n)), (n = T - t.length)) + } else n -= i + for (; n--; ) t += '0' + ;(e.d.push(+t), p && (e.e > e.constructor.maxE ? ((e.d = null), (e.e = NaN)) : e.e < e.constructor.minE && ((e.e = 0), (e.d = [0])))) + } else ((e.e = 0), (e.d = [0])) + return e + } + function X(e, t) { + var r, n, i, a, s, u, c, f, l + if (t.indexOf('_') > -1) { + if (((t = t.replace(/(\d)_(?=\d)/g, '$1')), O.test(t))) return $(e, t) + } else if ('Infinity' === t || 'NaN' === t) return (+t || (e.s = NaN), (e.e = NaN), (e.d = null), e) + if (S.test(t)) ((r = 16), (t = t.toLowerCase())) + else if (E.test(t)) r = 2 + else { + if (!A.test(t)) throw Error(g + t) + r = 8 + } + for ( + (a = t.search(/p/i)) > 0 ? ((c = +t.slice(a + 1)), (t = t.substring(2, a))) : (t = t.slice(2)), + s = (a = t.indexOf('.')) >= 0, + n = e.constructor, + s && ((a = (u = (t = t.replace('.', '')).length) - a), (i = z(n, new n(r), a, 2 * a))), + a = l = (f = P(t, r, M)).length - 1; + 0 === f[a]; + --a + ) + f.pop() + return a < 0 + ? new n(0 * e.s) + : ((e.e = j(f, l)), + (e.d = f), + (p = !1), + s && (e = B(e, i, 4 * u)), + c && (e = e.times(Math.abs(c) < 54 ? _(2, c) : o.pow(2, c))), + (p = !0), + e) + } + function J(e, t, r, n, i) { + var o, + a, + s, + u, + c = e.precision, + f = Math.ceil(c / T) + for (p = !1, u = r.times(r), s = new e(n); ; ) { + if ( + ((a = B(s.times(u), new e(t++ * t++), c, 1)), + (s = i ? n.plus(a) : n.minus(a)), + (n = B(a.times(u), new e(t++ * t++), c, 1)), + void 0 !== (a = s.plus(n)).d[f]) + ) { + for (o = f; a.d[o] === s.d[o] && o--; ); + if (-1 == o) break + } + ;((o = s), (s = n), (n = a), (a = o)) + } + return ((p = !0), (a.d.length = f + 1), a) + } + function Z(e, t) { + for (var r = e; --t; ) r *= e + return r + } + function Q(e, t) { + var r, + n = t.s < 0, + i = U(e, e.precision, 1), + o = i.times(0.5) + if ((t = t.abs()).lte(o)) return ((s = n ? 4 : 1), t) + if ((r = t.divToInt(i)).isZero()) s = n ? 3 : 2 + else { + if ((t = t.minus(r.times(i))).lte(o)) return ((s = q(r) ? (n ? 2 : 3) : n ? 4 : 1), t) + s = q(r) ? (n ? 1 : 4) : n ? 3 : 2 + } + return t.minus(i).abs() + } + function ee(e, t, r, n) { + var i, + o, + s, + u, + l, + d, + h, + p, + y, + g = e.constructor, + b = void 0 !== r + if ((b ? (k(r, 1, c), void 0 === n ? (n = g.rounding) : k(n, 0, 8)) : ((r = g.precision), (n = g.rounding)), e.isFinite())) { + for ( + b ? ((i = 2), 16 == t ? (r = 4 * r - 3) : 8 == t && (r = 3 * r - 2)) : (i = t), + (s = (h = C(e)).indexOf('.')) >= 0 && + ((h = h.replace('.', '')), ((y = new g(1)).e = h.length - s), (y.d = P(C(y), 10, i)), (y.e = y.d.length)), + o = l = (p = P(h, 10, i)).length; + 0 == p[--l]; + ) + p.pop() + if (p[0]) { + if ( + (s < 0 ? o-- : (((e = new g(e)).d = p), (e.e = o), (p = (e = B(e, y, r, n, 0, i)).d), (o = e.e), (d = a)), + (s = p[r]), + (u = i / 2), + (d = d || void 0 !== p[r + 1]), + (d = + n < 4 + ? (void 0 !== s || d) && (0 === n || n === (e.s < 0 ? 3 : 2)) + : s > u || (s === u && (4 === n || d || (6 === n && 1 & p[r - 1]) || n === (e.s < 0 ? 8 : 7)))), + (p.length = r), + d) + ) + for (; ++p[--r] > i - 1; ) ((p[r] = 0), r || (++o, p.unshift(1))) + for (l = p.length; !p[l - 1]; --l); + for (s = 0, h = ''; s < l; s++) h += f.charAt(p[s]) + if (b) { + if (l > 1) + if (16 == t || 8 == t) { + for (s = 16 == t ? 4 : 3, --l; l % s; l++) h += '0' + for (l = (p = P(h, i, t)).length; !p[l - 1]; --l); + for (s = 1, h = '1.'; s < l; s++) h += f.charAt(p[s]) + } else h = h.charAt(0) + '.' + h.slice(1) + h = h + (o < 0 ? 'p' : 'p+') + o + } else if (o < 0) { + for (; ++o; ) h = '0' + h + h = '0.' + h + } else if (++o > l) for (o -= l; o--; ) h += '0' + else o < l && (h = h.slice(0, o) + '.' + h.slice(o)) + } else h = b ? '0p+0' : '0' + h = (16 == t ? '0x' : 2 == t ? '0b' : 8 == t ? '0o' : '') + h + } else h = Y(e) + return e.s < 0 ? '-' + h : h + } + function te(e, t) { + if (e.length > t) return ((e.length = t), !0) + } + function re(e) { + return new this(e).abs() + } + function ne(e) { + return new this(e).acos() + } + function ie(e) { + return new this(e).acosh() + } + function oe(e, t) { + return new this(e).plus(t) + } + function ae(e) { + return new this(e).asin() + } + function se(e) { + return new this(e).asinh() + } + function ue(e) { + return new this(e).atan() + } + function ce(e) { + return new this(e).atanh() + } + function fe(e, t) { + ;((e = new this(e)), (t = new this(t))) + var r, + n = this.precision, + i = this.rounding, + o = n + 4 + return ( + e.s && t.s + ? e.d || t.d + ? !t.d || e.isZero() + ? ((r = t.s < 0 ? U(this, n, i) : new this(0)).s = e.s) + : !e.d || t.isZero() + ? ((r = U(this, o, 1).times(0.5)).s = e.s) + : t.s < 0 + ? ((this.precision = o), + (this.rounding = 1), + (r = this.atan(B(e, t, o, 1))), + (t = U(this, o, 1)), + (this.precision = n), + (this.rounding = i), + (r = e.s < 0 ? r.minus(t) : r.plus(t))) + : (r = this.atan(B(e, t, o, 1))) + : ((r = U(this, o, 1).times(t.s > 0 ? 0.25 : 0.75)).s = e.s) + : (r = new this(NaN)), + r + ) + } + function le(e) { + return new this(e).cbrt() + } + function de(e) { + return D((e = new this(e)), e.e + 1, 2) + } + function he(e, t, r) { + return new this(e).clamp(t, r) + } + function pe(e) { + if (!e || 'object' != typeof e) throw Error(y + 'Object expected') + var t, + r, + n, + i = !0 === e.defaults, + o = ['precision', 1, c, 'rounding', 0, 8, 'toExpNeg', -u, 0, 'toExpPos', 0, u, 'maxE', 0, u, 'minE', -u, 0, 'modulo', 0, 9] + for (t = 0; t < o.length; t += 3) + if (((r = o[t]), i && (this[r] = h[r]), void 0 !== (n = e[r]))) { + if (!(w(n) === n && n >= o[t + 1] && n <= o[t + 2])) throw Error(g + r + ': ' + n) + this[r] = n + } + if (((r = 'crypto'), i && (this[r] = h[r]), void 0 !== (n = e[r]))) { + if (!0 !== n && !1 !== n && 0 !== n && 1 !== n) throw Error(g + r + ': ' + n) + if (n) { + if ('undefined' == typeof crypto || !crypto || (!crypto.getRandomValues && !crypto.randomBytes)) throw Error(m) + this[r] = !0 + } else this[r] = !1 + } + return this + } + function ye(e) { + return new this(e).cos() + } + function ge(e) { + return new this(e).cosh() + } + function be(e, t) { + return new this(e).div(t) + } + function me(e) { + return new this(e).exp() + } + function ve(e) { + return D((e = new this(e)), e.e + 1, 3) + } + function we() { + var e, + t, + r = new this(0) + for (p = !1, e = 0; e < arguments.length; ) + if ((t = new this(arguments[e++])).d) r.d && (r = r.plus(t.times(t))) + else { + if (t.s) return ((p = !0), new this(1 / 0)) + r = t + } + return ((p = !0), r.sqrt()) + } + function _e(e) { + return e instanceof o || (e && e.toStringTag === v) || !1 + } + function Ee(e) { + return new this(e).ln() + } + function Se(e, t) { + return new this(e).log(t) + } + function Ae(e) { + return new this(e).log(2) + } + function Oe(e) { + return new this(e).log(10) + } + function Me() { + return K(this, arguments, 'lt') + } + function Te() { + return K(this, arguments, 'gt') + } + function Ie(e, t) { + return new this(e).mod(t) + } + function Ne(e, t) { + return new this(e).mul(t) + } + function xe(e, t) { + return new this(e).pow(t) + } + function Le(e) { + var t, + r, + n, + i, + o = 0, + a = new this(1), + s = [] + if ((void 0 === e ? (e = this.precision) : k(e, 1, c), (n = Math.ceil(e / T)), this.crypto)) + if (crypto.getRandomValues) + for (t = crypto.getRandomValues(new Uint32Array(n)); o < n; ) + (i = t[o]) >= 429e7 ? (t[o] = crypto.getRandomValues(new Uint32Array(1))[0]) : (s[o++] = i % 1e7) + else { + if (!crypto.randomBytes) throw Error(m) + for (t = crypto.randomBytes((n *= 4)); o < n; ) + (i = t[o] + (t[o + 1] << 8) + (t[o + 2] << 16) + ((127 & t[o + 3]) << 24)) >= 214e7 + ? crypto.randomBytes(4).copy(t, o) + : (s.push(i % 1e7), (o += 4)) + o = n / 4 + } + else for (; o < n; ) s[o++] = (1e7 * Math.random()) | 0 + for (n = s[--o], e %= T, n && e && ((i = _(10, T - e)), (s[o] = ((n / i) | 0) * i)); 0 === s[o]; o--) s.pop() + if (o < 0) ((r = 0), (s = [0])) + else { + for (r = -1; 0 === s[0]; r -= T) s.shift() + for (n = 1, i = s[0]; i >= 10; i /= 10) n++ + n < T && (r -= T - n) + } + return ((a.e = r), (a.d = s), a) + } + function ke(e) { + return D((e = new this(e)), e.e + 1, this.rounding) + } + function Re(e) { + return (e = new this(e)).d ? (e.d[0] ? e.s : 0 * e.s) : e.s || NaN + } + function Pe(e) { + return new this(e).sin() + } + function Be(e) { + return new this(e).sinh() + } + function De(e) { + return new this(e).sqrt() + } + function Ce(e, t) { + return new this(e).sub(t) + } + function je() { + var e = 0, + t = arguments, + r = new this(t[e]) + for (p = !1; r.s && ++e < t.length; ) r = r.plus(t[e]) + return ((p = !0), D(r, this.precision, this.rounding)) + } + function Fe(e) { + return new this(e).tan() + } + function Ue(e) { + return new this(e).tanh() + } + function Ve(e) { + return D((e = new this(e)), e.e + 1, 1) + } + ;(((o = (function e(t) { + var r, n, i + function o(e) { + var t, + r, + n, + i = this + if (!(i instanceof o)) return new o(e) + if (((i.constructor = o), _e(e))) + return ( + (i.s = e.s), + void (p + ? !e.d || e.e > o.maxE + ? ((i.e = NaN), (i.d = null)) + : e.e < o.minE + ? ((i.e = 0), (i.d = [0])) + : ((i.e = e.e), (i.d = e.d.slice())) + : ((i.e = e.e), (i.d = e.d ? e.d.slice() : e.d))) + ) + if ('number' == (n = typeof e)) { + if (0 === e) return ((i.s = 1 / e < 0 ? -1 : 1), (i.e = 0), void (i.d = [0])) + if ((e < 0 ? ((e = -e), (i.s = -1)) : (i.s = 1), e === ~~e && e < 1e7)) { + for (t = 0, r = e; r >= 10; r /= 10) t++ + return void (p + ? t > o.maxE + ? ((i.e = NaN), (i.d = null)) + : t < o.minE + ? ((i.e = 0), (i.d = [0])) + : ((i.e = t), (i.d = [e])) + : ((i.e = t), (i.d = [e]))) + } + return 0 * e != 0 ? (e || (i.s = NaN), (i.e = NaN), void (i.d = null)) : $(i, e.toString()) + } + if ('string' !== n) throw Error(g + e) + return ( + 45 === (r = e.charCodeAt(0)) ? ((e = e.slice(1)), (i.s = -1)) : (43 === r && (e = e.slice(1)), (i.s = 1)), + O.test(e) ? $(i, e) : X(i, e) + ) + } + if ( + ((o.prototype = x), + (o.ROUND_UP = 0), + (o.ROUND_DOWN = 1), + (o.ROUND_CEIL = 2), + (o.ROUND_FLOOR = 3), + (o.ROUND_HALF_UP = 4), + (o.ROUND_HALF_DOWN = 5), + (o.ROUND_HALF_EVEN = 6), + (o.ROUND_HALF_CEIL = 7), + (o.ROUND_HALF_FLOOR = 8), + (o.EUCLID = 9), + (o.config = o.set = pe), + (o.clone = e), + (o.isDecimal = _e), + (o.abs = re), + (o.acos = ne), + (o.acosh = ie), + (o.add = oe), + (o.asin = ae), + (o.asinh = se), + (o.atan = ue), + (o.atanh = ce), + (o.atan2 = fe), + (o.cbrt = le), + (o.ceil = de), + (o.clamp = he), + (o.cos = ye), + (o.cosh = ge), + (o.div = be), + (o.exp = me), + (o.floor = ve), + (o.hypot = we), + (o.ln = Ee), + (o.log = Se), + (o.log10 = Oe), + (o.log2 = Ae), + (o.max = Me), + (o.min = Te), + (o.mod = Ie), + (o.mul = Ne), + (o.pow = xe), + (o.random = Le), + (o.round = ke), + (o.sign = Re), + (o.sin = Pe), + (o.sinh = Be), + (o.sqrt = De), + (o.sub = Ce), + (o.sum = je), + (o.tan = Fe), + (o.tanh = Ue), + (o.trunc = Ve), + void 0 === t && (t = {}), + t && !0 !== t.defaults) + ) + for (i = ['precision', 'rounding', 'toExpNeg', 'toExpPos', 'maxE', 'minE', 'modulo', 'crypto'], r = 0; r < i.length; ) + t.hasOwnProperty((n = i[r++])) || (t[n] = this[n]) + return (o.config(t), o) + })(h)).prototype.constructor = o), + (o.default = o.Decimal = o), + (l = new o(l)), + (d = new o(d)), + void 0 === + (n = function () { + return o + }.call(t, r, t, e)) || (e.exports = n)) + })() + }, + 31907: (e, t, r) => { + 'use strict' + var n = r(33025), + i = 'function' == typeof Symbol && 'symbol' == typeof Symbol('foo'), + o = Object.prototype.toString, + a = Array.prototype.concat, + s = Object.defineProperty, + u = r(23280)(), + c = s && u, + f = function (e, t, r, n) { + if (t in e) + if (!0 === n) { + if (e[t] === r) return + } else if ('function' != typeof (i = n) || '[object Function]' !== o.call(i) || !n()) return + var i + c ? s(e, t, { configurable: !0, enumerable: !1, value: r, writable: !0 }) : (e[t] = r) + }, + l = function (e, t) { + var r = arguments.length > 2 ? arguments[2] : {}, + o = n(t) + i && (o = a.call(o, Object.getOwnPropertySymbols(t))) + for (var s = 0; s < o.length; s += 1) f(e, o[s], t[o[s]], r[o[s]]) + } + ;((l.supportsDescriptors = !!c), (e.exports = l)) + }, + 99417: (e, t, r) => { + 'use strict' + ;((t.utils = r(68559)), (t.Cipher = r(47094)), (t.DES = r(30349)), (t.CBC = r(86768)), (t.EDE = r(87118))) + }, + 86768: (e, t, r) => { + 'use strict' + var n = r(44647), + i = r(19105), + o = {} + function a(e) { + ;(n.equal(e.length, 8, 'Invalid IV length'), (this.iv = new Array(8))) + for (var t = 0; t < this.iv.length; t++) this.iv[t] = e[t] + } + ;((t.instantiate = function (e) { + function t(t) { + ;(e.call(this, t), this._cbcInit()) + } + i(t, e) + for (var r = Object.keys(o), n = 0; n < r.length; n++) { + var a = r[n] + t.prototype[a] = o[a] + } + return ( + (t.create = function (e) { + return new t(e) + }), + t + ) + }), + (o._cbcInit = function () { + var e = new a(this.options.iv) + this._cbcState = e + }), + (o._update = function (e, t, r, n) { + var i = this._cbcState, + o = this.constructor.super_.prototype, + a = i.iv + if ('encrypt' === this.type) { + for (var s = 0; s < this.blockSize; s++) a[s] ^= e[t + s] + for (o._update.call(this, a, 0, r, n), s = 0; s < this.blockSize; s++) a[s] = r[n + s] + } else { + for (o._update.call(this, e, t, r, n), s = 0; s < this.blockSize; s++) r[n + s] ^= a[s] + for (s = 0; s < this.blockSize; s++) a[s] = e[t + s] + } + })) + }, + 47094: (e, t, r) => { + 'use strict' + var n = r(44647) + function i(e) { + ;((this.options = e), + (this.type = this.options.type), + (this.blockSize = 8), + this._init(), + (this.buffer = new Array(this.blockSize)), + (this.bufferOff = 0)) + } + ;((e.exports = i), + (i.prototype._init = function () {}), + (i.prototype.update = function (e) { + return 0 === e.length ? [] : 'decrypt' === this.type ? this._updateDecrypt(e) : this._updateEncrypt(e) + }), + (i.prototype._buffer = function (e, t) { + for (var r = Math.min(this.buffer.length - this.bufferOff, e.length - t), n = 0; n < r; n++) this.buffer[this.bufferOff + n] = e[t + n] + return ((this.bufferOff += r), r) + }), + (i.prototype._flushBuffer = function (e, t) { + return (this._update(this.buffer, 0, e, t), (this.bufferOff = 0), this.blockSize) + }), + (i.prototype._updateEncrypt = function (e) { + var t = 0, + r = 0, + n = ((this.bufferOff + e.length) / this.blockSize) | 0, + i = new Array(n * this.blockSize) + 0 !== this.bufferOff && ((t += this._buffer(e, t)), this.bufferOff === this.buffer.length && (r += this._flushBuffer(i, r))) + for (var o = e.length - ((e.length - t) % this.blockSize); t < o; t += this.blockSize) (this._update(e, t, i, r), (r += this.blockSize)) + for (; t < e.length; t++, this.bufferOff++) this.buffer[this.bufferOff] = e[t] + return i + }), + (i.prototype._updateDecrypt = function (e) { + for (var t = 0, r = 0, n = Math.ceil((this.bufferOff + e.length) / this.blockSize) - 1, i = new Array(n * this.blockSize); n > 0; n--) + ((t += this._buffer(e, t)), (r += this._flushBuffer(i, r))) + return ((t += this._buffer(e, t)), i) + }), + (i.prototype.final = function (e) { + var t, r + return (e && (t = this.update(e)), (r = 'encrypt' === this.type ? this._finalEncrypt() : this._finalDecrypt()), t ? t.concat(r) : r) + }), + (i.prototype._pad = function (e, t) { + if (0 === t) return !1 + for (; t < e.length; ) e[t++] = 0 + return !0 + }), + (i.prototype._finalEncrypt = function () { + if (!this._pad(this.buffer, this.bufferOff)) return [] + var e = new Array(this.blockSize) + return (this._update(this.buffer, 0, e, 0), e) + }), + (i.prototype._unpad = function (e) { + return e + }), + (i.prototype._finalDecrypt = function () { + n.equal(this.bufferOff, this.blockSize, 'Not enough data to decrypt') + var e = new Array(this.blockSize) + return (this._flushBuffer(e, 0), this._unpad(e)) + })) + }, + 30349: (e, t, r) => { + 'use strict' + var n = r(44647), + i = r(19105), + o = r(68559), + a = r(47094) + function s() { + ;((this.tmp = new Array(2)), (this.keys = null)) + } + function u(e) { + a.call(this, e) + var t = new s() + ;((this._desState = t), this.deriveKeys(t, e.key)) + } + ;(i(u, a), + (e.exports = u), + (u.create = function (e) { + return new u(e) + })) + var c = [1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1] + ;((u.prototype.deriveKeys = function (e, t) { + ;((e.keys = new Array(32)), n.equal(t.length, this.blockSize, 'Invalid key length')) + var r = o.readUInt32BE(t, 0), + i = o.readUInt32BE(t, 4) + ;(o.pc1(r, i, e.tmp, 0), (r = e.tmp[0]), (i = e.tmp[1])) + for (var a = 0; a < e.keys.length; a += 2) { + var s = c[a >>> 1] + ;((r = o.r28shl(r, s)), (i = o.r28shl(i, s)), o.pc2(r, i, e.keys, a)) + } + }), + (u.prototype._update = function (e, t, r, n) { + var i = this._desState, + a = o.readUInt32BE(e, t), + s = o.readUInt32BE(e, t + 4) + ;(o.ip(a, s, i.tmp, 0), + (a = i.tmp[0]), + (s = i.tmp[1]), + 'encrypt' === this.type ? this._encrypt(i, a, s, i.tmp, 0) : this._decrypt(i, a, s, i.tmp, 0), + (a = i.tmp[0]), + (s = i.tmp[1]), + o.writeUInt32BE(r, a, n), + o.writeUInt32BE(r, s, n + 4)) + }), + (u.prototype._pad = function (e, t) { + for (var r = e.length - t, n = t; n < e.length; n++) e[n] = r + return !0 + }), + (u.prototype._unpad = function (e) { + for (var t = e[e.length - 1], r = e.length - t; r < e.length; r++) n.equal(e[r], t) + return e.slice(0, e.length - t) + }), + (u.prototype._encrypt = function (e, t, r, n, i) { + for (var a = t, s = r, u = 0; u < e.keys.length; u += 2) { + var c = e.keys[u], + f = e.keys[u + 1] + ;(o.expand(s, e.tmp, 0), (c ^= e.tmp[0]), (f ^= e.tmp[1])) + var l = o.substitute(c, f), + d = s + ;((s = (a ^ o.permute(l)) >>> 0), (a = d)) + } + o.rip(s, a, n, i) + }), + (u.prototype._decrypt = function (e, t, r, n, i) { + for (var a = r, s = t, u = e.keys.length - 2; u >= 0; u -= 2) { + var c = e.keys[u], + f = e.keys[u + 1] + ;(o.expand(a, e.tmp, 0), (c ^= e.tmp[0]), (f ^= e.tmp[1])) + var l = o.substitute(c, f), + d = a + ;((a = (s ^ o.permute(l)) >>> 0), (s = d)) + } + o.rip(a, s, n, i) + })) + }, + 87118: (e, t, r) => { + 'use strict' + var n = r(44647), + i = r(19105), + o = r(47094), + a = r(30349) + function s(e, t) { + n.equal(t.length, 24, 'Invalid key length') + var r = t.slice(0, 8), + i = t.slice(8, 16), + o = t.slice(16, 24) + this.ciphers = + 'encrypt' === e + ? [a.create({ type: 'encrypt', key: r }), a.create({ type: 'decrypt', key: i }), a.create({ type: 'encrypt', key: o })] + : [a.create({ type: 'decrypt', key: o }), a.create({ type: 'encrypt', key: i }), a.create({ type: 'decrypt', key: r })] + } + function u(e) { + o.call(this, e) + var t = new s(this.type, this.options.key) + this._edeState = t + } + ;(i(u, o), + (e.exports = u), + (u.create = function (e) { + return new u(e) + }), + (u.prototype._update = function (e, t, r, n) { + var i = this._edeState + ;(i.ciphers[0]._update(e, t, r, n), i.ciphers[1]._update(r, n, r, n), i.ciphers[2]._update(r, n, r, n)) + }), + (u.prototype._pad = a.prototype._pad), + (u.prototype._unpad = a.prototype._unpad)) + }, + 68559: (e, t) => { + 'use strict' + ;((t.readUInt32BE = function (e, t) { + return ((e[0 + t] << 24) | (e[1 + t] << 16) | (e[2 + t] << 8) | e[3 + t]) >>> 0 + }), + (t.writeUInt32BE = function (e, t, r) { + ;((e[0 + r] = t >>> 24), (e[1 + r] = (t >>> 16) & 255), (e[2 + r] = (t >>> 8) & 255), (e[3 + r] = 255 & t)) + }), + (t.ip = function (e, t, r, n) { + for (var i = 0, o = 0, a = 6; a >= 0; a -= 2) { + for (var s = 0; s <= 24; s += 8) ((i <<= 1), (i |= (t >>> (s + a)) & 1)) + for (s = 0; s <= 24; s += 8) ((i <<= 1), (i |= (e >>> (s + a)) & 1)) + } + for (a = 6; a >= 0; a -= 2) { + for (s = 1; s <= 25; s += 8) ((o <<= 1), (o |= (t >>> (s + a)) & 1)) + for (s = 1; s <= 25; s += 8) ((o <<= 1), (o |= (e >>> (s + a)) & 1)) + } + ;((r[n + 0] = i >>> 0), (r[n + 1] = o >>> 0)) + }), + (t.rip = function (e, t, r, n) { + for (var i = 0, o = 0, a = 0; a < 4; a++) + for (var s = 24; s >= 0; s -= 8) ((i <<= 1), (i |= (t >>> (s + a)) & 1), (i <<= 1), (i |= (e >>> (s + a)) & 1)) + for (a = 4; a < 8; a++) for (s = 24; s >= 0; s -= 8) ((o <<= 1), (o |= (t >>> (s + a)) & 1), (o <<= 1), (o |= (e >>> (s + a)) & 1)) + ;((r[n + 0] = i >>> 0), (r[n + 1] = o >>> 0)) + }), + (t.pc1 = function (e, t, r, n) { + for (var i = 0, o = 0, a = 7; a >= 5; a--) { + for (var s = 0; s <= 24; s += 8) ((i <<= 1), (i |= (t >> (s + a)) & 1)) + for (s = 0; s <= 24; s += 8) ((i <<= 1), (i |= (e >> (s + a)) & 1)) + } + for (s = 0; s <= 24; s += 8) ((i <<= 1), (i |= (t >> (s + a)) & 1)) + for (a = 1; a <= 3; a++) { + for (s = 0; s <= 24; s += 8) ((o <<= 1), (o |= (t >> (s + a)) & 1)) + for (s = 0; s <= 24; s += 8) ((o <<= 1), (o |= (e >> (s + a)) & 1)) + } + for (s = 0; s <= 24; s += 8) ((o <<= 1), (o |= (e >> (s + a)) & 1)) + ;((r[n + 0] = i >>> 0), (r[n + 1] = o >>> 0)) + }), + (t.r28shl = function (e, t) { + return ((e << t) & 268435455) | (e >>> (28 - t)) + })) + var r = [ + 14, 11, 17, 4, 27, 23, 25, 0, 13, 22, 7, 18, 5, 9, 16, 24, 2, 20, 12, 21, 1, 8, 15, 26, 15, 4, 25, 19, 9, 1, 26, 16, 5, 11, 23, 8, 12, 7, + 17, 0, 22, 3, 10, 14, 6, 20, 27, 24, + ] + ;((t.pc2 = function (e, t, n, i) { + for (var o = 0, a = 0, s = r.length >>> 1, u = 0; u < s; u++) ((o <<= 1), (o |= (e >>> r[u]) & 1)) + for (u = s; u < r.length; u++) ((a <<= 1), (a |= (t >>> r[u]) & 1)) + ;((n[i + 0] = o >>> 0), (n[i + 1] = a >>> 0)) + }), + (t.expand = function (e, t, r) { + var n = 0, + i = 0 + n = ((1 & e) << 5) | (e >>> 27) + for (var o = 23; o >= 15; o -= 4) ((n <<= 6), (n |= (e >>> o) & 63)) + for (o = 11; o >= 3; o -= 4) ((i |= (e >>> o) & 63), (i <<= 6)) + ;((i |= ((31 & e) << 1) | (e >>> 31)), (t[r + 0] = n >>> 0), (t[r + 1] = i >>> 0)) + })) + var n = [ + 14, 0, 4, 15, 13, 7, 1, 4, 2, 14, 15, 2, 11, 13, 8, 1, 3, 10, 10, 6, 6, 12, 12, 11, 5, 9, 9, 5, 0, 3, 7, 8, 4, 15, 1, 12, 14, 8, 8, 2, 13, + 4, 6, 9, 2, 1, 11, 7, 15, 5, 12, 11, 9, 3, 7, 14, 3, 10, 10, 0, 5, 6, 0, 13, 15, 3, 1, 13, 8, 4, 14, 7, 6, 15, 11, 2, 3, 8, 4, 14, 9, 12, 7, + 0, 2, 1, 13, 10, 12, 6, 0, 9, 5, 11, 10, 5, 0, 13, 14, 8, 7, 10, 11, 1, 10, 3, 4, 15, 13, 4, 1, 2, 5, 11, 8, 6, 12, 7, 6, 12, 9, 0, 3, 5, 2, + 14, 15, 9, 10, 13, 0, 7, 9, 0, 14, 9, 6, 3, 3, 4, 15, 6, 5, 10, 1, 2, 13, 8, 12, 5, 7, 14, 11, 12, 4, 11, 2, 15, 8, 1, 13, 1, 6, 10, 4, 13, + 9, 0, 8, 6, 15, 9, 3, 8, 0, 7, 11, 4, 1, 15, 2, 14, 12, 3, 5, 11, 10, 5, 14, 2, 7, 12, 7, 13, 13, 8, 14, 11, 3, 5, 0, 6, 6, 15, 9, 0, 10, 3, + 1, 4, 2, 7, 8, 2, 5, 12, 11, 1, 12, 10, 4, 14, 15, 9, 10, 3, 6, 15, 9, 0, 0, 6, 12, 10, 11, 1, 7, 13, 13, 8, 15, 9, 1, 4, 3, 5, 14, 11, 5, + 12, 2, 7, 8, 2, 4, 14, 2, 14, 12, 11, 4, 2, 1, 12, 7, 4, 10, 7, 11, 13, 6, 1, 8, 5, 5, 0, 3, 15, 15, 10, 13, 3, 0, 9, 14, 8, 9, 6, 4, 11, 2, + 8, 1, 12, 11, 7, 10, 1, 13, 14, 7, 2, 8, 13, 15, 6, 9, 15, 12, 0, 5, 9, 6, 10, 3, 4, 0, 5, 14, 3, 12, 10, 1, 15, 10, 4, 15, 2, 9, 7, 2, 12, + 6, 9, 8, 5, 0, 6, 13, 1, 3, 13, 4, 14, 14, 0, 7, 11, 5, 3, 11, 8, 9, 4, 14, 3, 15, 2, 5, 12, 2, 9, 8, 5, 12, 15, 3, 10, 7, 11, 0, 14, 4, 1, + 10, 7, 1, 6, 13, 0, 11, 8, 6, 13, 4, 13, 11, 0, 2, 11, 14, 7, 15, 4, 0, 9, 8, 1, 13, 10, 3, 14, 12, 3, 9, 5, 7, 12, 5, 2, 10, 15, 6, 8, 1, + 6, 1, 6, 4, 11, 11, 13, 13, 8, 12, 1, 3, 4, 7, 10, 14, 7, 10, 9, 15, 5, 6, 0, 8, 15, 0, 14, 5, 2, 9, 3, 2, 12, 13, 1, 2, 15, 8, 13, 4, 8, 6, + 10, 15, 3, 11, 7, 1, 4, 10, 12, 9, 5, 3, 6, 14, 11, 5, 0, 0, 14, 12, 9, 7, 2, 7, 2, 11, 1, 4, 14, 1, 7, 9, 4, 12, 10, 14, 8, 2, 13, 0, 15, + 6, 12, 10, 9, 13, 0, 15, 3, 3, 5, 5, 6, 8, 11, + ] + t.substitute = function (e, t) { + for (var r = 0, i = 0; i < 4; i++) ((r <<= 4), (r |= n[64 * i + ((e >>> (18 - 6 * i)) & 63)])) + for (i = 0; i < 4; i++) ((r <<= 4), (r |= n[256 + 64 * i + ((t >>> (18 - 6 * i)) & 63)])) + return r >>> 0 + } + var i = [16, 25, 12, 11, 3, 20, 4, 15, 31, 17, 9, 6, 27, 14, 1, 22, 30, 24, 8, 18, 0, 5, 29, 23, 13, 19, 2, 26, 10, 21, 28, 7] + ;((t.permute = function (e) { + for (var t = 0, r = 0; r < i.length; r++) ((t <<= 1), (t |= (e >>> i[r]) & 1)) + return t >>> 0 + }), + (t.padSplit = function (e, t, r) { + for (var n = e.toString(2); n.length < t; ) n = '0' + n + for (var i = [], o = 0; o < t; o += r) i.push(n.slice(o, o + r)) + return i.join(' ') + })) + }, + 3947: (e, t, r) => { + var n = r(18390).Buffer, + i = r(2711), + o = r(23418), + a = r(21478), + s = { binary: !0, hex: !0, base64: !0 } + ;((t.DiffieHellmanGroup = + t.createDiffieHellmanGroup = + t.getDiffieHellman = + function (e) { + var t = new n(o[e].prime, 'hex'), + r = new n(o[e].gen, 'hex') + return new a(t, r) + }), + (t.createDiffieHellman = t.DiffieHellman = + function e(t, r, o, u) { + return n.isBuffer(r) || void 0 === s[r] + ? e(t, 'binary', r, o) + : ((r = r || 'binary'), + (u = u || 'binary'), + (o = o || new n([2])), + n.isBuffer(o) || (o = new n(o, u)), + 'number' == typeof t ? new a(i(t, o), o, !0) : (n.isBuffer(t) || (t = new n(t, r)), new a(t, o, !0))) + })) + }, + 21478: (e, t, r) => { + var n = r(18390).Buffer, + i = r(10660), + o = new (r(85501))(), + a = new i(24), + s = new i(11), + u = new i(10), + c = new i(3), + f = new i(7), + l = r(2711), + d = r(83638) + function h(e, t) { + return ((t = t || 'utf8'), n.isBuffer(e) || (e = new n(e, t)), (this._pub = new i(e)), this) + } + function p(e, t) { + return ((t = t || 'utf8'), n.isBuffer(e) || (e = new n(e, t)), (this._priv = new i(e)), this) + } + e.exports = g + var y = {} + function g(e, t, r) { + ;(this.setGenerator(t), + (this.__prime = new i(e)), + (this._prime = i.mont(this.__prime)), + (this._primeLen = e.length), + (this._pub = void 0), + (this._priv = void 0), + (this._primeCode = void 0), + r ? ((this.setPublicKey = h), (this.setPrivateKey = p)) : (this._primeCode = 8)) + } + function b(e, t) { + var r = new n(e.toArray()) + return t ? r.toString(t) : r + } + ;(Object.defineProperty(g.prototype, 'verifyError', { + enumerable: !0, + get: function () { + return ( + 'number' != typeof this._primeCode && + (this._primeCode = (function (e, t) { + var r = t.toString('hex'), + n = [r, e.toString(16)].join('_') + if (n in y) return y[n] + var i, + d = 0 + if (e.isEven() || !l.simpleSieve || !l.fermatTest(e) || !o.test(e)) + return ((d += 1), (d += '02' === r || '05' === r ? 8 : 4), (y[n] = d), d) + switch ((o.test(e.shrn(1)) || (d += 2), r)) { + case '02': + e.mod(a).cmp(s) && (d += 8) + break + case '05': + ;(i = e.mod(u)).cmp(c) && i.cmp(f) && (d += 8) + break + default: + d += 4 + } + return ((y[n] = d), d) + })(this.__prime, this.__gen)), + this._primeCode + ) + }, + }), + (g.prototype.generateKeys = function () { + return ( + this._priv || (this._priv = new i(d(this._primeLen))), + (this._pub = this._gen.toRed(this._prime).redPow(this._priv).fromRed()), + this.getPublicKey() + ) + }), + (g.prototype.computeSecret = function (e) { + var t = (e = (e = new i(e)).toRed(this._prime)).redPow(this._priv).fromRed(), + r = new n(t.toArray()), + o = this.getPrime() + if (r.length < o.length) { + var a = new n(o.length - r.length) + ;(a.fill(0), (r = n.concat([a, r]))) + } + return r + }), + (g.prototype.getPublicKey = function (e) { + return b(this._pub, e) + }), + (g.prototype.getPrivateKey = function (e) { + return b(this._priv, e) + }), + (g.prototype.getPrime = function (e) { + return b(this.__prime, e) + }), + (g.prototype.getGenerator = function (e) { + return b(this._gen, e) + }), + (g.prototype.setGenerator = function (e, t) { + return ((t = t || 'utf8'), n.isBuffer(e) || (e = new n(e, t)), (this.__gen = e), (this._gen = new i(e)), this) + })) + }, + 2711: (e, t, r) => { + var n = r(83638) + ;((e.exports = m), (m.simpleSieve = g), (m.fermatTest = b)) + var i = r(10660), + o = new i(24), + a = new (r(85501))(), + s = new i(1), + u = new i(2), + c = new i(5), + f = (new i(16), new i(8), new i(10)), + l = new i(3), + d = (new i(7), new i(11)), + h = new i(4), + p = (new i(12), null) + function y() { + if (null !== p) return p + var e = [] + e[0] = 2 + for (var t = 1, r = 3; r < 1048576; r += 2) { + for (var n = Math.ceil(Math.sqrt(r)), i = 0; i < t && e[i] <= n && r % e[i] != 0; i++); + ;(t !== i && e[i] <= n) || (e[t++] = r) + } + return ((p = e), e) + } + function g(e) { + for (var t = y(), r = 0; r < t.length; r++) if (0 === e.modn(t[r])) return 0 === e.cmpn(t[r]) + return !0 + } + function b(e) { + var t = i.mont(e) + return 0 === u.toRed(t).redPow(e.subn(1)).fromRed().cmpn(1) + } + function m(e, t) { + if (e < 16) return new i(2 === t || 5 === t ? [140, 123] : [140, 39]) + var r, p + for (t = new i(t); ; ) { + for (r = new i(n(Math.ceil(e / 8))); r.bitLength() > e; ) r.ishrn(1) + if ((r.isEven() && r.iadd(s), r.testn(1) || r.iadd(u), t.cmp(u))) { + if (!t.cmp(c)) for (; r.mod(f).cmp(l); ) r.iadd(h) + } else for (; r.mod(o).cmp(d); ) r.iadd(h) + if (g((p = r.shrn(1))) && g(r) && b(p) && b(r) && a.test(p) && a.test(r)) return r + } + } + }, + 10660: function (e, t, r) { + !(function (e, t) { + 'use strict' + function n(e, t) { + if (!e) throw new Error(t || 'Assertion failed') + } + function i(e, t) { + e.super_ = t + var r = function () {} + ;((r.prototype = t.prototype), (e.prototype = new r()), (e.prototype.constructor = e)) + } + function o(e, t, r) { + if (o.isBN(e)) return e + ;((this.negative = 0), + (this.words = null), + (this.length = 0), + (this.red = null), + null !== e && (('le' !== t && 'be' !== t) || ((r = t), (t = 10)), this._init(e || 0, t || 10, r || 'be'))) + } + var a + ;('object' == typeof e ? (e.exports = o) : (t.BN = o), (o.BN = o), (o.wordSize = 26)) + try { + a = 'undefined' != typeof window && void 0 !== window.Buffer ? window.Buffer : r(20395).Buffer + } catch (e) {} + function s(e, t) { + var r = e.charCodeAt(t) + return r >= 65 && r <= 70 ? r - 55 : r >= 97 && r <= 102 ? r - 87 : (r - 48) & 15 + } + function u(e, t, r) { + var n = s(e, r) + return (r - 1 >= t && (n |= s(e, r - 1) << 4), n) + } + function c(e, t, r, n) { + for (var i = 0, o = Math.min(e.length, r), a = t; a < o; a++) { + var s = e.charCodeAt(a) - 48 + ;((i *= n), (i += s >= 49 ? s - 49 + 10 : s >= 17 ? s - 17 + 10 : s)) + } + return i + } + ;((o.isBN = function (e) { + return e instanceof o || (null !== e && 'object' == typeof e && e.constructor.wordSize === o.wordSize && Array.isArray(e.words)) + }), + (o.max = function (e, t) { + return e.cmp(t) > 0 ? e : t + }), + (o.min = function (e, t) { + return e.cmp(t) < 0 ? e : t + }), + (o.prototype._init = function (e, t, r) { + if ('number' == typeof e) return this._initNumber(e, t, r) + if ('object' == typeof e) return this._initArray(e, t, r) + ;('hex' === t && (t = 16), n(t === (0 | t) && t >= 2 && t <= 36)) + var i = 0 + ;('-' === (e = e.toString().replace(/\s+/g, ''))[0] && (i++, (this.negative = 1)), + i < e.length && + (16 === t ? this._parseHex(e, i, r) : (this._parseBase(e, t, i), 'le' === r && this._initArray(this.toArray(), t, r)))) + }), + (o.prototype._initNumber = function (e, t, r) { + ;(e < 0 && ((this.negative = 1), (e = -e)), + e < 67108864 + ? ((this.words = [67108863 & e]), (this.length = 1)) + : e < 4503599627370496 + ? ((this.words = [67108863 & e, (e / 67108864) & 67108863]), (this.length = 2)) + : (n(e < 9007199254740992), (this.words = [67108863 & e, (e / 67108864) & 67108863, 1]), (this.length = 3)), + 'le' === r && this._initArray(this.toArray(), t, r)) + }), + (o.prototype._initArray = function (e, t, r) { + if ((n('number' == typeof e.length), e.length <= 0)) return ((this.words = [0]), (this.length = 1), this) + ;((this.length = Math.ceil(e.length / 3)), (this.words = new Array(this.length))) + for (var i = 0; i < this.length; i++) this.words[i] = 0 + var o, + a, + s = 0 + if ('be' === r) + for (i = e.length - 1, o = 0; i >= 0; i -= 3) + ((a = e[i] | (e[i - 1] << 8) | (e[i - 2] << 16)), + (this.words[o] |= (a << s) & 67108863), + (this.words[o + 1] = (a >>> (26 - s)) & 67108863), + (s += 24) >= 26 && ((s -= 26), o++)) + else if ('le' === r) + for (i = 0, o = 0; i < e.length; i += 3) + ((a = e[i] | (e[i + 1] << 8) | (e[i + 2] << 16)), + (this.words[o] |= (a << s) & 67108863), + (this.words[o + 1] = (a >>> (26 - s)) & 67108863), + (s += 24) >= 26 && ((s -= 26), o++)) + return this.strip() + }), + (o.prototype._parseHex = function (e, t, r) { + ;((this.length = Math.ceil((e.length - t) / 6)), (this.words = new Array(this.length))) + for (var n = 0; n < this.length; n++) this.words[n] = 0 + var i, + o = 0, + a = 0 + if ('be' === r) + for (n = e.length - 1; n >= t; n -= 2) + ((i = u(e, t, n) << o), (this.words[a] |= 67108863 & i), o >= 18 ? ((o -= 18), (a += 1), (this.words[a] |= i >>> 26)) : (o += 8)) + else + for (n = (e.length - t) % 2 == 0 ? t + 1 : t; n < e.length; n += 2) + ((i = u(e, t, n) << o), (this.words[a] |= 67108863 & i), o >= 18 ? ((o -= 18), (a += 1), (this.words[a] |= i >>> 26)) : (o += 8)) + this.strip() + }), + (o.prototype._parseBase = function (e, t, r) { + ;((this.words = [0]), (this.length = 1)) + for (var n = 0, i = 1; i <= 67108863; i *= t) n++ + ;(n--, (i = (i / t) | 0)) + for (var o = e.length - r, a = o % n, s = Math.min(o, o - a) + r, u = 0, f = r; f < s; f += n) + ((u = c(e, f, f + n, t)), this.imuln(i), this.words[0] + u < 67108864 ? (this.words[0] += u) : this._iaddn(u)) + if (0 !== a) { + var l = 1 + for (u = c(e, f, e.length, t), f = 0; f < a; f++) l *= t + ;(this.imuln(l), this.words[0] + u < 67108864 ? (this.words[0] += u) : this._iaddn(u)) + } + this.strip() + }), + (o.prototype.copy = function (e) { + e.words = new Array(this.length) + for (var t = 0; t < this.length; t++) e.words[t] = this.words[t] + ;((e.length = this.length), (e.negative = this.negative), (e.red = this.red)) + }), + (o.prototype.clone = function () { + var e = new o(null) + return (this.copy(e), e) + }), + (o.prototype._expand = function (e) { + for (; this.length < e; ) this.words[this.length++] = 0 + return this + }), + (o.prototype.strip = function () { + for (; this.length > 1 && 0 === this.words[this.length - 1]; ) this.length-- + return this._normSign() + }), + (o.prototype._normSign = function () { + return (1 === this.length && 0 === this.words[0] && (this.negative = 0), this) + }), + (o.prototype.inspect = function () { + return (this.red ? '<BN-R: ' : '<BN: ') + this.toString(16) + '>' + })) + var f = [ + '', + '0', + '00', + '000', + '0000', + '00000', + '000000', + '0000000', + '00000000', + '000000000', + '0000000000', + '00000000000', + '000000000000', + '0000000000000', + '00000000000000', + '000000000000000', + '0000000000000000', + '00000000000000000', + '000000000000000000', + '0000000000000000000', + '00000000000000000000', + '000000000000000000000', + '0000000000000000000000', + '00000000000000000000000', + '000000000000000000000000', + '0000000000000000000000000', + ], + l = [0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5], + d = [ + 0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, 1e7, 19487171, 35831808, 62748517, 7529536, + 11390625, 16777216, 24137569, 34012224, 47045881, 64e6, 4084101, 5153632, 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, + 20511149, 243e5, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176, + ] + function h(e, t, r) { + r.negative = t.negative ^ e.negative + var n = (e.length + t.length) | 0 + ;((r.length = n), (n = (n - 1) | 0)) + var i = 0 | e.words[0], + o = 0 | t.words[0], + a = i * o, + s = 67108863 & a, + u = (a / 67108864) | 0 + r.words[0] = s + for (var c = 1; c < n; c++) { + for (var f = u >>> 26, l = 67108863 & u, d = Math.min(c, t.length - 1), h = Math.max(0, c - e.length + 1); h <= d; h++) { + var p = (c - h) | 0 + ;((f += ((a = (i = 0 | e.words[p]) * (o = 0 | t.words[h]) + l) / 67108864) | 0), (l = 67108863 & a)) + } + ;((r.words[c] = 0 | l), (u = 0 | f)) + } + return (0 !== u ? (r.words[c] = 0 | u) : r.length--, r.strip()) + } + ;((o.prototype.toString = function (e, t) { + var r + if (((t = 0 | t || 1), 16 === (e = e || 10) || 'hex' === e)) { + r = '' + for (var i = 0, o = 0, a = 0; a < this.length; a++) { + var s = this.words[a], + u = (16777215 & ((s << i) | o)).toString(16) + ;((r = 0 != (o = (s >>> (24 - i)) & 16777215) || a !== this.length - 1 ? f[6 - u.length] + u + r : u + r), + (i += 2) >= 26 && ((i -= 26), a--)) + } + for (0 !== o && (r = o.toString(16) + r); r.length % t != 0; ) r = '0' + r + return (0 !== this.negative && (r = '-' + r), r) + } + if (e === (0 | e) && e >= 2 && e <= 36) { + var c = l[e], + h = d[e] + r = '' + var p = this.clone() + for (p.negative = 0; !p.isZero(); ) { + var y = p.modn(h).toString(e) + r = (p = p.idivn(h)).isZero() ? y + r : f[c - y.length] + y + r + } + for (this.isZero() && (r = '0' + r); r.length % t != 0; ) r = '0' + r + return (0 !== this.negative && (r = '-' + r), r) + } + n(!1, 'Base should be between 2 and 36') + }), + (o.prototype.toNumber = function () { + var e = this.words[0] + return ( + 2 === this.length + ? (e += 67108864 * this.words[1]) + : 3 === this.length && 1 === this.words[2] + ? (e += 4503599627370496 + 67108864 * this.words[1]) + : this.length > 2 && n(!1, 'Number can only safely store up to 53 bits'), + 0 !== this.negative ? -e : e + ) + }), + (o.prototype.toJSON = function () { + return this.toString(16) + }), + (o.prototype.toBuffer = function (e, t) { + return (n(void 0 !== a), this.toArrayLike(a, e, t)) + }), + (o.prototype.toArray = function (e, t) { + return this.toArrayLike(Array, e, t) + }), + (o.prototype.toArrayLike = function (e, t, r) { + var i = this.byteLength(), + o = r || Math.max(1, i) + ;(n(i <= o, 'byte array longer than desired length'), n(o > 0, 'Requested array length <= 0'), this.strip()) + var a, + s, + u = 'le' === t, + c = new e(o), + f = this.clone() + if (u) { + for (s = 0; !f.isZero(); s++) ((a = f.andln(255)), f.iushrn(8), (c[s] = a)) + for (; s < o; s++) c[s] = 0 + } else { + for (s = 0; s < o - i; s++) c[s] = 0 + for (s = 0; !f.isZero(); s++) ((a = f.andln(255)), f.iushrn(8), (c[o - s - 1] = a)) + } + return c + }), + Math.clz32 + ? (o.prototype._countBits = function (e) { + return 32 - Math.clz32(e) + }) + : (o.prototype._countBits = function (e) { + var t = e, + r = 0 + return ( + t >= 4096 && ((r += 13), (t >>>= 13)), + t >= 64 && ((r += 7), (t >>>= 7)), + t >= 8 && ((r += 4), (t >>>= 4)), + t >= 2 && ((r += 2), (t >>>= 2)), + r + t + ) + }), + (o.prototype._zeroBits = function (e) { + if (0 === e) return 26 + var t = e, + r = 0 + return ( + 0 == (8191 & t) && ((r += 13), (t >>>= 13)), + 0 == (127 & t) && ((r += 7), (t >>>= 7)), + 0 == (15 & t) && ((r += 4), (t >>>= 4)), + 0 == (3 & t) && ((r += 2), (t >>>= 2)), + 0 == (1 & t) && r++, + r + ) + }), + (o.prototype.bitLength = function () { + var e = this.words[this.length - 1], + t = this._countBits(e) + return 26 * (this.length - 1) + t + }), + (o.prototype.zeroBits = function () { + if (this.isZero()) return 0 + for (var e = 0, t = 0; t < this.length; t++) { + var r = this._zeroBits(this.words[t]) + if (((e += r), 26 !== r)) break + } + return e + }), + (o.prototype.byteLength = function () { + return Math.ceil(this.bitLength() / 8) + }), + (o.prototype.toTwos = function (e) { + return 0 !== this.negative ? this.abs().inotn(e).iaddn(1) : this.clone() + }), + (o.prototype.fromTwos = function (e) { + return this.testn(e - 1) ? this.notn(e).iaddn(1).ineg() : this.clone() + }), + (o.prototype.isNeg = function () { + return 0 !== this.negative + }), + (o.prototype.neg = function () { + return this.clone().ineg() + }), + (o.prototype.ineg = function () { + return (this.isZero() || (this.negative ^= 1), this) + }), + (o.prototype.iuor = function (e) { + for (; this.length < e.length; ) this.words[this.length++] = 0 + for (var t = 0; t < e.length; t++) this.words[t] = this.words[t] | e.words[t] + return this.strip() + }), + (o.prototype.ior = function (e) { + return (n(0 == (this.negative | e.negative)), this.iuor(e)) + }), + (o.prototype.or = function (e) { + return this.length > e.length ? this.clone().ior(e) : e.clone().ior(this) + }), + (o.prototype.uor = function (e) { + return this.length > e.length ? this.clone().iuor(e) : e.clone().iuor(this) + }), + (o.prototype.iuand = function (e) { + var t + t = this.length > e.length ? e : this + for (var r = 0; r < t.length; r++) this.words[r] = this.words[r] & e.words[r] + return ((this.length = t.length), this.strip()) + }), + (o.prototype.iand = function (e) { + return (n(0 == (this.negative | e.negative)), this.iuand(e)) + }), + (o.prototype.and = function (e) { + return this.length > e.length ? this.clone().iand(e) : e.clone().iand(this) + }), + (o.prototype.uand = function (e) { + return this.length > e.length ? this.clone().iuand(e) : e.clone().iuand(this) + }), + (o.prototype.iuxor = function (e) { + var t, r + this.length > e.length ? ((t = this), (r = e)) : ((t = e), (r = this)) + for (var n = 0; n < r.length; n++) this.words[n] = t.words[n] ^ r.words[n] + if (this !== t) for (; n < t.length; n++) this.words[n] = t.words[n] + return ((this.length = t.length), this.strip()) + }), + (o.prototype.ixor = function (e) { + return (n(0 == (this.negative | e.negative)), this.iuxor(e)) + }), + (o.prototype.xor = function (e) { + return this.length > e.length ? this.clone().ixor(e) : e.clone().ixor(this) + }), + (o.prototype.uxor = function (e) { + return this.length > e.length ? this.clone().iuxor(e) : e.clone().iuxor(this) + }), + (o.prototype.inotn = function (e) { + n('number' == typeof e && e >= 0) + var t = 0 | Math.ceil(e / 26), + r = e % 26 + ;(this._expand(t), r > 0 && t--) + for (var i = 0; i < t; i++) this.words[i] = 67108863 & ~this.words[i] + return (r > 0 && (this.words[i] = ~this.words[i] & (67108863 >> (26 - r))), this.strip()) + }), + (o.prototype.notn = function (e) { + return this.clone().inotn(e) + }), + (o.prototype.setn = function (e, t) { + n('number' == typeof e && e >= 0) + var r = (e / 26) | 0, + i = e % 26 + return (this._expand(r + 1), (this.words[r] = t ? this.words[r] | (1 << i) : this.words[r] & ~(1 << i)), this.strip()) + }), + (o.prototype.iadd = function (e) { + var t, r, n + if (0 !== this.negative && 0 === e.negative) return ((this.negative = 0), (t = this.isub(e)), (this.negative ^= 1), this._normSign()) + if (0 === this.negative && 0 !== e.negative) return ((e.negative = 0), (t = this.isub(e)), (e.negative = 1), t._normSign()) + this.length > e.length ? ((r = this), (n = e)) : ((r = e), (n = this)) + for (var i = 0, o = 0; o < n.length; o++) + ((t = (0 | r.words[o]) + (0 | n.words[o]) + i), (this.words[o] = 67108863 & t), (i = t >>> 26)) + for (; 0 !== i && o < r.length; o++) ((t = (0 | r.words[o]) + i), (this.words[o] = 67108863 & t), (i = t >>> 26)) + if (((this.length = r.length), 0 !== i)) ((this.words[this.length] = i), this.length++) + else if (r !== this) for (; o < r.length; o++) this.words[o] = r.words[o] + return this + }), + (o.prototype.add = function (e) { + var t + return 0 !== e.negative && 0 === this.negative + ? ((e.negative = 0), (t = this.sub(e)), (e.negative ^= 1), t) + : 0 === e.negative && 0 !== this.negative + ? ((this.negative = 0), (t = e.sub(this)), (this.negative = 1), t) + : this.length > e.length + ? this.clone().iadd(e) + : e.clone().iadd(this) + }), + (o.prototype.isub = function (e) { + if (0 !== e.negative) { + e.negative = 0 + var t = this.iadd(e) + return ((e.negative = 1), t._normSign()) + } + if (0 !== this.negative) return ((this.negative = 0), this.iadd(e), (this.negative = 1), this._normSign()) + var r, + n, + i = this.cmp(e) + if (0 === i) return ((this.negative = 0), (this.length = 1), (this.words[0] = 0), this) + i > 0 ? ((r = this), (n = e)) : ((r = e), (n = this)) + for (var o = 0, a = 0; a < n.length; a++) ((o = (t = (0 | r.words[a]) - (0 | n.words[a]) + o) >> 26), (this.words[a] = 67108863 & t)) + for (; 0 !== o && a < r.length; a++) ((o = (t = (0 | r.words[a]) + o) >> 26), (this.words[a] = 67108863 & t)) + if (0 === o && a < r.length && r !== this) for (; a < r.length; a++) this.words[a] = r.words[a] + return ((this.length = Math.max(this.length, a)), r !== this && (this.negative = 1), this.strip()) + }), + (o.prototype.sub = function (e) { + return this.clone().isub(e) + })) + var p = function (e, t, r) { + var n, + i, + o, + a = e.words, + s = t.words, + u = r.words, + c = 0, + f = 0 | a[0], + l = 8191 & f, + d = f >>> 13, + h = 0 | a[1], + p = 8191 & h, + y = h >>> 13, + g = 0 | a[2], + b = 8191 & g, + m = g >>> 13, + v = 0 | a[3], + w = 8191 & v, + _ = v >>> 13, + E = 0 | a[4], + S = 8191 & E, + A = E >>> 13, + O = 0 | a[5], + M = 8191 & O, + T = O >>> 13, + I = 0 | a[6], + N = 8191 & I, + x = I >>> 13, + L = 0 | a[7], + k = 8191 & L, + R = L >>> 13, + P = 0 | a[8], + B = 8191 & P, + D = P >>> 13, + C = 0 | a[9], + j = 8191 & C, + F = C >>> 13, + U = 0 | s[0], + V = 8191 & U, + H = U >>> 13, + z = 0 | s[1], + q = 8191 & z, + K = z >>> 13, + W = 0 | s[2], + G = 8191 & W, + Y = W >>> 13, + $ = 0 | s[3], + X = 8191 & $, + J = $ >>> 13, + Z = 0 | s[4], + Q = 8191 & Z, + ee = Z >>> 13, + te = 0 | s[5], + re = 8191 & te, + ne = te >>> 13, + ie = 0 | s[6], + oe = 8191 & ie, + ae = ie >>> 13, + se = 0 | s[7], + ue = 8191 & se, + ce = se >>> 13, + fe = 0 | s[8], + le = 8191 & fe, + de = fe >>> 13, + he = 0 | s[9], + pe = 8191 & he, + ye = he >>> 13 + ;((r.negative = e.negative ^ t.negative), (r.length = 19)) + var ge = (((c + (n = Math.imul(l, V))) | 0) + ((8191 & (i = ((i = Math.imul(l, H)) + Math.imul(d, V)) | 0)) << 13)) | 0 + ;((c = ((((o = Math.imul(d, H)) + (i >>> 13)) | 0) + (ge >>> 26)) | 0), + (ge &= 67108863), + (n = Math.imul(p, V)), + (i = ((i = Math.imul(p, H)) + Math.imul(y, V)) | 0), + (o = Math.imul(y, H))) + var be = + (((c + (n = (n + Math.imul(l, q)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(l, K)) | 0) + Math.imul(d, q)) | 0)) << 13)) | 0 + ;((c = ((((o = (o + Math.imul(d, K)) | 0) + (i >>> 13)) | 0) + (be >>> 26)) | 0), + (be &= 67108863), + (n = Math.imul(b, V)), + (i = ((i = Math.imul(b, H)) + Math.imul(m, V)) | 0), + (o = Math.imul(m, H)), + (n = (n + Math.imul(p, q)) | 0), + (i = ((i = (i + Math.imul(p, K)) | 0) + Math.imul(y, q)) | 0), + (o = (o + Math.imul(y, K)) | 0)) + var me = + (((c + (n = (n + Math.imul(l, G)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(l, Y)) | 0) + Math.imul(d, G)) | 0)) << 13)) | 0 + ;((c = ((((o = (o + Math.imul(d, Y)) | 0) + (i >>> 13)) | 0) + (me >>> 26)) | 0), + (me &= 67108863), + (n = Math.imul(w, V)), + (i = ((i = Math.imul(w, H)) + Math.imul(_, V)) | 0), + (o = Math.imul(_, H)), + (n = (n + Math.imul(b, q)) | 0), + (i = ((i = (i + Math.imul(b, K)) | 0) + Math.imul(m, q)) | 0), + (o = (o + Math.imul(m, K)) | 0), + (n = (n + Math.imul(p, G)) | 0), + (i = ((i = (i + Math.imul(p, Y)) | 0) + Math.imul(y, G)) | 0), + (o = (o + Math.imul(y, Y)) | 0)) + var ve = + (((c + (n = (n + Math.imul(l, X)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(l, J)) | 0) + Math.imul(d, X)) | 0)) << 13)) | 0 + ;((c = ((((o = (o + Math.imul(d, J)) | 0) + (i >>> 13)) | 0) + (ve >>> 26)) | 0), + (ve &= 67108863), + (n = Math.imul(S, V)), + (i = ((i = Math.imul(S, H)) + Math.imul(A, V)) | 0), + (o = Math.imul(A, H)), + (n = (n + Math.imul(w, q)) | 0), + (i = ((i = (i + Math.imul(w, K)) | 0) + Math.imul(_, q)) | 0), + (o = (o + Math.imul(_, K)) | 0), + (n = (n + Math.imul(b, G)) | 0), + (i = ((i = (i + Math.imul(b, Y)) | 0) + Math.imul(m, G)) | 0), + (o = (o + Math.imul(m, Y)) | 0), + (n = (n + Math.imul(p, X)) | 0), + (i = ((i = (i + Math.imul(p, J)) | 0) + Math.imul(y, X)) | 0), + (o = (o + Math.imul(y, J)) | 0)) + var we = + (((c + (n = (n + Math.imul(l, Q)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(l, ee)) | 0) + Math.imul(d, Q)) | 0)) << 13)) | 0 + ;((c = ((((o = (o + Math.imul(d, ee)) | 0) + (i >>> 13)) | 0) + (we >>> 26)) | 0), + (we &= 67108863), + (n = Math.imul(M, V)), + (i = ((i = Math.imul(M, H)) + Math.imul(T, V)) | 0), + (o = Math.imul(T, H)), + (n = (n + Math.imul(S, q)) | 0), + (i = ((i = (i + Math.imul(S, K)) | 0) + Math.imul(A, q)) | 0), + (o = (o + Math.imul(A, K)) | 0), + (n = (n + Math.imul(w, G)) | 0), + (i = ((i = (i + Math.imul(w, Y)) | 0) + Math.imul(_, G)) | 0), + (o = (o + Math.imul(_, Y)) | 0), + (n = (n + Math.imul(b, X)) | 0), + (i = ((i = (i + Math.imul(b, J)) | 0) + Math.imul(m, X)) | 0), + (o = (o + Math.imul(m, J)) | 0), + (n = (n + Math.imul(p, Q)) | 0), + (i = ((i = (i + Math.imul(p, ee)) | 0) + Math.imul(y, Q)) | 0), + (o = (o + Math.imul(y, ee)) | 0)) + var _e = + (((c + (n = (n + Math.imul(l, re)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(l, ne)) | 0) + Math.imul(d, re)) | 0)) << 13)) | 0 + ;((c = ((((o = (o + Math.imul(d, ne)) | 0) + (i >>> 13)) | 0) + (_e >>> 26)) | 0), + (_e &= 67108863), + (n = Math.imul(N, V)), + (i = ((i = Math.imul(N, H)) + Math.imul(x, V)) | 0), + (o = Math.imul(x, H)), + (n = (n + Math.imul(M, q)) | 0), + (i = ((i = (i + Math.imul(M, K)) | 0) + Math.imul(T, q)) | 0), + (o = (o + Math.imul(T, K)) | 0), + (n = (n + Math.imul(S, G)) | 0), + (i = ((i = (i + Math.imul(S, Y)) | 0) + Math.imul(A, G)) | 0), + (o = (o + Math.imul(A, Y)) | 0), + (n = (n + Math.imul(w, X)) | 0), + (i = ((i = (i + Math.imul(w, J)) | 0) + Math.imul(_, X)) | 0), + (o = (o + Math.imul(_, J)) | 0), + (n = (n + Math.imul(b, Q)) | 0), + (i = ((i = (i + Math.imul(b, ee)) | 0) + Math.imul(m, Q)) | 0), + (o = (o + Math.imul(m, ee)) | 0), + (n = (n + Math.imul(p, re)) | 0), + (i = ((i = (i + Math.imul(p, ne)) | 0) + Math.imul(y, re)) | 0), + (o = (o + Math.imul(y, ne)) | 0)) + var Ee = + (((c + (n = (n + Math.imul(l, oe)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(l, ae)) | 0) + Math.imul(d, oe)) | 0)) << 13)) | 0 + ;((c = ((((o = (o + Math.imul(d, ae)) | 0) + (i >>> 13)) | 0) + (Ee >>> 26)) | 0), + (Ee &= 67108863), + (n = Math.imul(k, V)), + (i = ((i = Math.imul(k, H)) + Math.imul(R, V)) | 0), + (o = Math.imul(R, H)), + (n = (n + Math.imul(N, q)) | 0), + (i = ((i = (i + Math.imul(N, K)) | 0) + Math.imul(x, q)) | 0), + (o = (o + Math.imul(x, K)) | 0), + (n = (n + Math.imul(M, G)) | 0), + (i = ((i = (i + Math.imul(M, Y)) | 0) + Math.imul(T, G)) | 0), + (o = (o + Math.imul(T, Y)) | 0), + (n = (n + Math.imul(S, X)) | 0), + (i = ((i = (i + Math.imul(S, J)) | 0) + Math.imul(A, X)) | 0), + (o = (o + Math.imul(A, J)) | 0), + (n = (n + Math.imul(w, Q)) | 0), + (i = ((i = (i + Math.imul(w, ee)) | 0) + Math.imul(_, Q)) | 0), + (o = (o + Math.imul(_, ee)) | 0), + (n = (n + Math.imul(b, re)) | 0), + (i = ((i = (i + Math.imul(b, ne)) | 0) + Math.imul(m, re)) | 0), + (o = (o + Math.imul(m, ne)) | 0), + (n = (n + Math.imul(p, oe)) | 0), + (i = ((i = (i + Math.imul(p, ae)) | 0) + Math.imul(y, oe)) | 0), + (o = (o + Math.imul(y, ae)) | 0)) + var Se = + (((c + (n = (n + Math.imul(l, ue)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(l, ce)) | 0) + Math.imul(d, ue)) | 0)) << 13)) | 0 + ;((c = ((((o = (o + Math.imul(d, ce)) | 0) + (i >>> 13)) | 0) + (Se >>> 26)) | 0), + (Se &= 67108863), + (n = Math.imul(B, V)), + (i = ((i = Math.imul(B, H)) + Math.imul(D, V)) | 0), + (o = Math.imul(D, H)), + (n = (n + Math.imul(k, q)) | 0), + (i = ((i = (i + Math.imul(k, K)) | 0) + Math.imul(R, q)) | 0), + (o = (o + Math.imul(R, K)) | 0), + (n = (n + Math.imul(N, G)) | 0), + (i = ((i = (i + Math.imul(N, Y)) | 0) + Math.imul(x, G)) | 0), + (o = (o + Math.imul(x, Y)) | 0), + (n = (n + Math.imul(M, X)) | 0), + (i = ((i = (i + Math.imul(M, J)) | 0) + Math.imul(T, X)) | 0), + (o = (o + Math.imul(T, J)) | 0), + (n = (n + Math.imul(S, Q)) | 0), + (i = ((i = (i + Math.imul(S, ee)) | 0) + Math.imul(A, Q)) | 0), + (o = (o + Math.imul(A, ee)) | 0), + (n = (n + Math.imul(w, re)) | 0), + (i = ((i = (i + Math.imul(w, ne)) | 0) + Math.imul(_, re)) | 0), + (o = (o + Math.imul(_, ne)) | 0), + (n = (n + Math.imul(b, oe)) | 0), + (i = ((i = (i + Math.imul(b, ae)) | 0) + Math.imul(m, oe)) | 0), + (o = (o + Math.imul(m, ae)) | 0), + (n = (n + Math.imul(p, ue)) | 0), + (i = ((i = (i + Math.imul(p, ce)) | 0) + Math.imul(y, ue)) | 0), + (o = (o + Math.imul(y, ce)) | 0)) + var Ae = + (((c + (n = (n + Math.imul(l, le)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(l, de)) | 0) + Math.imul(d, le)) | 0)) << 13)) | 0 + ;((c = ((((o = (o + Math.imul(d, de)) | 0) + (i >>> 13)) | 0) + (Ae >>> 26)) | 0), + (Ae &= 67108863), + (n = Math.imul(j, V)), + (i = ((i = Math.imul(j, H)) + Math.imul(F, V)) | 0), + (o = Math.imul(F, H)), + (n = (n + Math.imul(B, q)) | 0), + (i = ((i = (i + Math.imul(B, K)) | 0) + Math.imul(D, q)) | 0), + (o = (o + Math.imul(D, K)) | 0), + (n = (n + Math.imul(k, G)) | 0), + (i = ((i = (i + Math.imul(k, Y)) | 0) + Math.imul(R, G)) | 0), + (o = (o + Math.imul(R, Y)) | 0), + (n = (n + Math.imul(N, X)) | 0), + (i = ((i = (i + Math.imul(N, J)) | 0) + Math.imul(x, X)) | 0), + (o = (o + Math.imul(x, J)) | 0), + (n = (n + Math.imul(M, Q)) | 0), + (i = ((i = (i + Math.imul(M, ee)) | 0) + Math.imul(T, Q)) | 0), + (o = (o + Math.imul(T, ee)) | 0), + (n = (n + Math.imul(S, re)) | 0), + (i = ((i = (i + Math.imul(S, ne)) | 0) + Math.imul(A, re)) | 0), + (o = (o + Math.imul(A, ne)) | 0), + (n = (n + Math.imul(w, oe)) | 0), + (i = ((i = (i + Math.imul(w, ae)) | 0) + Math.imul(_, oe)) | 0), + (o = (o + Math.imul(_, ae)) | 0), + (n = (n + Math.imul(b, ue)) | 0), + (i = ((i = (i + Math.imul(b, ce)) | 0) + Math.imul(m, ue)) | 0), + (o = (o + Math.imul(m, ce)) | 0), + (n = (n + Math.imul(p, le)) | 0), + (i = ((i = (i + Math.imul(p, de)) | 0) + Math.imul(y, le)) | 0), + (o = (o + Math.imul(y, de)) | 0)) + var Oe = + (((c + (n = (n + Math.imul(l, pe)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(l, ye)) | 0) + Math.imul(d, pe)) | 0)) << 13)) | 0 + ;((c = ((((o = (o + Math.imul(d, ye)) | 0) + (i >>> 13)) | 0) + (Oe >>> 26)) | 0), + (Oe &= 67108863), + (n = Math.imul(j, q)), + (i = ((i = Math.imul(j, K)) + Math.imul(F, q)) | 0), + (o = Math.imul(F, K)), + (n = (n + Math.imul(B, G)) | 0), + (i = ((i = (i + Math.imul(B, Y)) | 0) + Math.imul(D, G)) | 0), + (o = (o + Math.imul(D, Y)) | 0), + (n = (n + Math.imul(k, X)) | 0), + (i = ((i = (i + Math.imul(k, J)) | 0) + Math.imul(R, X)) | 0), + (o = (o + Math.imul(R, J)) | 0), + (n = (n + Math.imul(N, Q)) | 0), + (i = ((i = (i + Math.imul(N, ee)) | 0) + Math.imul(x, Q)) | 0), + (o = (o + Math.imul(x, ee)) | 0), + (n = (n + Math.imul(M, re)) | 0), + (i = ((i = (i + Math.imul(M, ne)) | 0) + Math.imul(T, re)) | 0), + (o = (o + Math.imul(T, ne)) | 0), + (n = (n + Math.imul(S, oe)) | 0), + (i = ((i = (i + Math.imul(S, ae)) | 0) + Math.imul(A, oe)) | 0), + (o = (o + Math.imul(A, ae)) | 0), + (n = (n + Math.imul(w, ue)) | 0), + (i = ((i = (i + Math.imul(w, ce)) | 0) + Math.imul(_, ue)) | 0), + (o = (o + Math.imul(_, ce)) | 0), + (n = (n + Math.imul(b, le)) | 0), + (i = ((i = (i + Math.imul(b, de)) | 0) + Math.imul(m, le)) | 0), + (o = (o + Math.imul(m, de)) | 0)) + var Me = + (((c + (n = (n + Math.imul(p, pe)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(p, ye)) | 0) + Math.imul(y, pe)) | 0)) << 13)) | 0 + ;((c = ((((o = (o + Math.imul(y, ye)) | 0) + (i >>> 13)) | 0) + (Me >>> 26)) | 0), + (Me &= 67108863), + (n = Math.imul(j, G)), + (i = ((i = Math.imul(j, Y)) + Math.imul(F, G)) | 0), + (o = Math.imul(F, Y)), + (n = (n + Math.imul(B, X)) | 0), + (i = ((i = (i + Math.imul(B, J)) | 0) + Math.imul(D, X)) | 0), + (o = (o + Math.imul(D, J)) | 0), + (n = (n + Math.imul(k, Q)) | 0), + (i = ((i = (i + Math.imul(k, ee)) | 0) + Math.imul(R, Q)) | 0), + (o = (o + Math.imul(R, ee)) | 0), + (n = (n + Math.imul(N, re)) | 0), + (i = ((i = (i + Math.imul(N, ne)) | 0) + Math.imul(x, re)) | 0), + (o = (o + Math.imul(x, ne)) | 0), + (n = (n + Math.imul(M, oe)) | 0), + (i = ((i = (i + Math.imul(M, ae)) | 0) + Math.imul(T, oe)) | 0), + (o = (o + Math.imul(T, ae)) | 0), + (n = (n + Math.imul(S, ue)) | 0), + (i = ((i = (i + Math.imul(S, ce)) | 0) + Math.imul(A, ue)) | 0), + (o = (o + Math.imul(A, ce)) | 0), + (n = (n + Math.imul(w, le)) | 0), + (i = ((i = (i + Math.imul(w, de)) | 0) + Math.imul(_, le)) | 0), + (o = (o + Math.imul(_, de)) | 0)) + var Te = + (((c + (n = (n + Math.imul(b, pe)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(b, ye)) | 0) + Math.imul(m, pe)) | 0)) << 13)) | 0 + ;((c = ((((o = (o + Math.imul(m, ye)) | 0) + (i >>> 13)) | 0) + (Te >>> 26)) | 0), + (Te &= 67108863), + (n = Math.imul(j, X)), + (i = ((i = Math.imul(j, J)) + Math.imul(F, X)) | 0), + (o = Math.imul(F, J)), + (n = (n + Math.imul(B, Q)) | 0), + (i = ((i = (i + Math.imul(B, ee)) | 0) + Math.imul(D, Q)) | 0), + (o = (o + Math.imul(D, ee)) | 0), + (n = (n + Math.imul(k, re)) | 0), + (i = ((i = (i + Math.imul(k, ne)) | 0) + Math.imul(R, re)) | 0), + (o = (o + Math.imul(R, ne)) | 0), + (n = (n + Math.imul(N, oe)) | 0), + (i = ((i = (i + Math.imul(N, ae)) | 0) + Math.imul(x, oe)) | 0), + (o = (o + Math.imul(x, ae)) | 0), + (n = (n + Math.imul(M, ue)) | 0), + (i = ((i = (i + Math.imul(M, ce)) | 0) + Math.imul(T, ue)) | 0), + (o = (o + Math.imul(T, ce)) | 0), + (n = (n + Math.imul(S, le)) | 0), + (i = ((i = (i + Math.imul(S, de)) | 0) + Math.imul(A, le)) | 0), + (o = (o + Math.imul(A, de)) | 0)) + var Ie = + (((c + (n = (n + Math.imul(w, pe)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(w, ye)) | 0) + Math.imul(_, pe)) | 0)) << 13)) | 0 + ;((c = ((((o = (o + Math.imul(_, ye)) | 0) + (i >>> 13)) | 0) + (Ie >>> 26)) | 0), + (Ie &= 67108863), + (n = Math.imul(j, Q)), + (i = ((i = Math.imul(j, ee)) + Math.imul(F, Q)) | 0), + (o = Math.imul(F, ee)), + (n = (n + Math.imul(B, re)) | 0), + (i = ((i = (i + Math.imul(B, ne)) | 0) + Math.imul(D, re)) | 0), + (o = (o + Math.imul(D, ne)) | 0), + (n = (n + Math.imul(k, oe)) | 0), + (i = ((i = (i + Math.imul(k, ae)) | 0) + Math.imul(R, oe)) | 0), + (o = (o + Math.imul(R, ae)) | 0), + (n = (n + Math.imul(N, ue)) | 0), + (i = ((i = (i + Math.imul(N, ce)) | 0) + Math.imul(x, ue)) | 0), + (o = (o + Math.imul(x, ce)) | 0), + (n = (n + Math.imul(M, le)) | 0), + (i = ((i = (i + Math.imul(M, de)) | 0) + Math.imul(T, le)) | 0), + (o = (o + Math.imul(T, de)) | 0)) + var Ne = + (((c + (n = (n + Math.imul(S, pe)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(S, ye)) | 0) + Math.imul(A, pe)) | 0)) << 13)) | 0 + ;((c = ((((o = (o + Math.imul(A, ye)) | 0) + (i >>> 13)) | 0) + (Ne >>> 26)) | 0), + (Ne &= 67108863), + (n = Math.imul(j, re)), + (i = ((i = Math.imul(j, ne)) + Math.imul(F, re)) | 0), + (o = Math.imul(F, ne)), + (n = (n + Math.imul(B, oe)) | 0), + (i = ((i = (i + Math.imul(B, ae)) | 0) + Math.imul(D, oe)) | 0), + (o = (o + Math.imul(D, ae)) | 0), + (n = (n + Math.imul(k, ue)) | 0), + (i = ((i = (i + Math.imul(k, ce)) | 0) + Math.imul(R, ue)) | 0), + (o = (o + Math.imul(R, ce)) | 0), + (n = (n + Math.imul(N, le)) | 0), + (i = ((i = (i + Math.imul(N, de)) | 0) + Math.imul(x, le)) | 0), + (o = (o + Math.imul(x, de)) | 0)) + var xe = + (((c + (n = (n + Math.imul(M, pe)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(M, ye)) | 0) + Math.imul(T, pe)) | 0)) << 13)) | 0 + ;((c = ((((o = (o + Math.imul(T, ye)) | 0) + (i >>> 13)) | 0) + (xe >>> 26)) | 0), + (xe &= 67108863), + (n = Math.imul(j, oe)), + (i = ((i = Math.imul(j, ae)) + Math.imul(F, oe)) | 0), + (o = Math.imul(F, ae)), + (n = (n + Math.imul(B, ue)) | 0), + (i = ((i = (i + Math.imul(B, ce)) | 0) + Math.imul(D, ue)) | 0), + (o = (o + Math.imul(D, ce)) | 0), + (n = (n + Math.imul(k, le)) | 0), + (i = ((i = (i + Math.imul(k, de)) | 0) + Math.imul(R, le)) | 0), + (o = (o + Math.imul(R, de)) | 0)) + var Le = + (((c + (n = (n + Math.imul(N, pe)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(N, ye)) | 0) + Math.imul(x, pe)) | 0)) << 13)) | 0 + ;((c = ((((o = (o + Math.imul(x, ye)) | 0) + (i >>> 13)) | 0) + (Le >>> 26)) | 0), + (Le &= 67108863), + (n = Math.imul(j, ue)), + (i = ((i = Math.imul(j, ce)) + Math.imul(F, ue)) | 0), + (o = Math.imul(F, ce)), + (n = (n + Math.imul(B, le)) | 0), + (i = ((i = (i + Math.imul(B, de)) | 0) + Math.imul(D, le)) | 0), + (o = (o + Math.imul(D, de)) | 0)) + var ke = + (((c + (n = (n + Math.imul(k, pe)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(k, ye)) | 0) + Math.imul(R, pe)) | 0)) << 13)) | 0 + ;((c = ((((o = (o + Math.imul(R, ye)) | 0) + (i >>> 13)) | 0) + (ke >>> 26)) | 0), + (ke &= 67108863), + (n = Math.imul(j, le)), + (i = ((i = Math.imul(j, de)) + Math.imul(F, le)) | 0), + (o = Math.imul(F, de))) + var Re = + (((c + (n = (n + Math.imul(B, pe)) | 0)) | 0) + ((8191 & (i = ((i = (i + Math.imul(B, ye)) | 0) + Math.imul(D, pe)) | 0)) << 13)) | 0 + ;((c = ((((o = (o + Math.imul(D, ye)) | 0) + (i >>> 13)) | 0) + (Re >>> 26)) | 0), (Re &= 67108863)) + var Pe = (((c + (n = Math.imul(j, pe))) | 0) + ((8191 & (i = ((i = Math.imul(j, ye)) + Math.imul(F, pe)) | 0)) << 13)) | 0 + return ( + (c = ((((o = Math.imul(F, ye)) + (i >>> 13)) | 0) + (Pe >>> 26)) | 0), + (Pe &= 67108863), + (u[0] = ge), + (u[1] = be), + (u[2] = me), + (u[3] = ve), + (u[4] = we), + (u[5] = _e), + (u[6] = Ee), + (u[7] = Se), + (u[8] = Ae), + (u[9] = Oe), + (u[10] = Me), + (u[11] = Te), + (u[12] = Ie), + (u[13] = Ne), + (u[14] = xe), + (u[15] = Le), + (u[16] = ke), + (u[17] = Re), + (u[18] = Pe), + 0 !== c && ((u[19] = c), r.length++), + r + ) + } + function y(e, t, r) { + return new g().mulp(e, t, r) + } + function g(e, t) { + ;((this.x = e), (this.y = t)) + } + ;(Math.imul || (p = h), + (o.prototype.mulTo = function (e, t) { + var r, + n = this.length + e.length + return ( + (r = + 10 === this.length && 10 === e.length + ? p(this, e, t) + : n < 63 + ? h(this, e, t) + : n < 1024 + ? (function (e, t, r) { + ;((r.negative = t.negative ^ e.negative), (r.length = e.length + t.length)) + for (var n = 0, i = 0, o = 0; o < r.length - 1; o++) { + var a = i + i = 0 + for (var s = 67108863 & n, u = Math.min(o, t.length - 1), c = Math.max(0, o - e.length + 1); c <= u; c++) { + var f = o - c, + l = (0 | e.words[f]) * (0 | t.words[c]), + d = 67108863 & l + ;((s = 67108863 & (d = (d + s) | 0)), + (i += (a = ((a = (a + ((l / 67108864) | 0)) | 0) + (d >>> 26)) | 0) >>> 26), + (a &= 67108863)) + } + ;((r.words[o] = s), (n = a), (a = i)) + } + return (0 !== n ? (r.words[o] = n) : r.length--, r.strip()) + })(this, e, t) + : y(this, e, t)), + r + ) + }), + (g.prototype.makeRBT = function (e) { + for (var t = new Array(e), r = o.prototype._countBits(e) - 1, n = 0; n < e; n++) t[n] = this.revBin(n, r, e) + return t + }), + (g.prototype.revBin = function (e, t, r) { + if (0 === e || e === r - 1) return e + for (var n = 0, i = 0; i < t; i++) ((n |= (1 & e) << (t - i - 1)), (e >>= 1)) + return n + }), + (g.prototype.permute = function (e, t, r, n, i, o) { + for (var a = 0; a < o; a++) ((n[a] = t[e[a]]), (i[a] = r[e[a]])) + }), + (g.prototype.transform = function (e, t, r, n, i, o) { + this.permute(o, e, t, r, n, i) + for (var a = 1; a < i; a <<= 1) + for (var s = a << 1, u = Math.cos((2 * Math.PI) / s), c = Math.sin((2 * Math.PI) / s), f = 0; f < i; f += s) + for (var l = u, d = c, h = 0; h < a; h++) { + var p = r[f + h], + y = n[f + h], + g = r[f + h + a], + b = n[f + h + a], + m = l * g - d * b + ;((b = l * b + d * g), + (g = m), + (r[f + h] = p + g), + (n[f + h] = y + b), + (r[f + h + a] = p - g), + (n[f + h + a] = y - b), + h !== s && ((m = u * l - c * d), (d = u * d + c * l), (l = m))) + } + }), + (g.prototype.guessLen13b = function (e, t) { + var r = 1 | Math.max(t, e), + n = 1 & r, + i = 0 + for (r = (r / 2) | 0; r; r >>>= 1) i++ + return 1 << (i + 1 + n) + }), + (g.prototype.conjugate = function (e, t, r) { + if (!(r <= 1)) + for (var n = 0; n < r / 2; n++) { + var i = e[n] + ;((e[n] = e[r - n - 1]), (e[r - n - 1] = i), (i = t[n]), (t[n] = -t[r - n - 1]), (t[r - n - 1] = -i)) + } + }), + (g.prototype.normalize13b = function (e, t) { + for (var r = 0, n = 0; n < t / 2; n++) { + var i = 8192 * Math.round(e[2 * n + 1] / t) + Math.round(e[2 * n] / t) + r + ;((e[n] = 67108863 & i), (r = i < 67108864 ? 0 : (i / 67108864) | 0)) + } + return e + }), + (g.prototype.convert13b = function (e, t, r, i) { + for (var o = 0, a = 0; a < t; a++) ((o += 0 | e[a]), (r[2 * a] = 8191 & o), (o >>>= 13), (r[2 * a + 1] = 8191 & o), (o >>>= 13)) + for (a = 2 * t; a < i; ++a) r[a] = 0 + ;(n(0 === o), n(0 == (-8192 & o))) + }), + (g.prototype.stub = function (e) { + for (var t = new Array(e), r = 0; r < e; r++) t[r] = 0 + return t + }), + (g.prototype.mulp = function (e, t, r) { + var n = 2 * this.guessLen13b(e.length, t.length), + i = this.makeRBT(n), + o = this.stub(n), + a = new Array(n), + s = new Array(n), + u = new Array(n), + c = new Array(n), + f = new Array(n), + l = new Array(n), + d = r.words + ;((d.length = n), + this.convert13b(e.words, e.length, a, n), + this.convert13b(t.words, t.length, c, n), + this.transform(a, o, s, u, n, i), + this.transform(c, o, f, l, n, i)) + for (var h = 0; h < n; h++) { + var p = s[h] * f[h] - u[h] * l[h] + ;((u[h] = s[h] * l[h] + u[h] * f[h]), (s[h] = p)) + } + return ( + this.conjugate(s, u, n), + this.transform(s, u, d, o, n, i), + this.conjugate(d, o, n), + this.normalize13b(d, n), + (r.negative = e.negative ^ t.negative), + (r.length = e.length + t.length), + r.strip() + ) + }), + (o.prototype.mul = function (e) { + var t = new o(null) + return ((t.words = new Array(this.length + e.length)), this.mulTo(e, t)) + }), + (o.prototype.mulf = function (e) { + var t = new o(null) + return ((t.words = new Array(this.length + e.length)), y(this, e, t)) + }), + (o.prototype.imul = function (e) { + return this.clone().mulTo(e, this) + }), + (o.prototype.imuln = function (e) { + ;(n('number' == typeof e), n(e < 67108864)) + for (var t = 0, r = 0; r < this.length; r++) { + var i = (0 | this.words[r]) * e, + o = (67108863 & i) + (67108863 & t) + ;((t >>= 26), (t += (i / 67108864) | 0), (t += o >>> 26), (this.words[r] = 67108863 & o)) + } + return (0 !== t && ((this.words[r] = t), this.length++), this) + }), + (o.prototype.muln = function (e) { + return this.clone().imuln(e) + }), + (o.prototype.sqr = function () { + return this.mul(this) + }), + (o.prototype.isqr = function () { + return this.imul(this.clone()) + }), + (o.prototype.pow = function (e) { + var t = (function (e) { + for (var t = new Array(e.bitLength()), r = 0; r < t.length; r++) { + var n = (r / 26) | 0, + i = r % 26 + t[r] = (e.words[n] & (1 << i)) >>> i + } + return t + })(e) + if (0 === t.length) return new o(1) + for (var r = this, n = 0; n < t.length && 0 === t[n]; n++, r = r.sqr()); + if (++n < t.length) for (var i = r.sqr(); n < t.length; n++, i = i.sqr()) 0 !== t[n] && (r = r.mul(i)) + return r + }), + (o.prototype.iushln = function (e) { + n('number' == typeof e && e >= 0) + var t, + r = e % 26, + i = (e - r) / 26, + o = (67108863 >>> (26 - r)) << (26 - r) + if (0 !== r) { + var a = 0 + for (t = 0; t < this.length; t++) { + var s = this.words[t] & o, + u = ((0 | this.words[t]) - s) << r + ;((this.words[t] = u | a), (a = s >>> (26 - r))) + } + a && ((this.words[t] = a), this.length++) + } + if (0 !== i) { + for (t = this.length - 1; t >= 0; t--) this.words[t + i] = this.words[t] + for (t = 0; t < i; t++) this.words[t] = 0 + this.length += i + } + return this.strip() + }), + (o.prototype.ishln = function (e) { + return (n(0 === this.negative), this.iushln(e)) + }), + (o.prototype.iushrn = function (e, t, r) { + var i + ;(n('number' == typeof e && e >= 0), (i = t ? (t - (t % 26)) / 26 : 0)) + var o = e % 26, + a = Math.min((e - o) / 26, this.length), + s = 67108863 ^ ((67108863 >>> o) << o), + u = r + if (((i -= a), (i = Math.max(0, i)), u)) { + for (var c = 0; c < a; c++) u.words[c] = this.words[c] + u.length = a + } + if (0 === a); + else if (this.length > a) for (this.length -= a, c = 0; c < this.length; c++) this.words[c] = this.words[c + a] + else ((this.words[0] = 0), (this.length = 1)) + var f = 0 + for (c = this.length - 1; c >= 0 && (0 !== f || c >= i); c--) { + var l = 0 | this.words[c] + ;((this.words[c] = (f << (26 - o)) | (l >>> o)), (f = l & s)) + } + return (u && 0 !== f && (u.words[u.length++] = f), 0 === this.length && ((this.words[0] = 0), (this.length = 1)), this.strip()) + }), + (o.prototype.ishrn = function (e, t, r) { + return (n(0 === this.negative), this.iushrn(e, t, r)) + }), + (o.prototype.shln = function (e) { + return this.clone().ishln(e) + }), + (o.prototype.ushln = function (e) { + return this.clone().iushln(e) + }), + (o.prototype.shrn = function (e) { + return this.clone().ishrn(e) + }), + (o.prototype.ushrn = function (e) { + return this.clone().iushrn(e) + }), + (o.prototype.testn = function (e) { + n('number' == typeof e && e >= 0) + var t = e % 26, + r = (e - t) / 26, + i = 1 << t + return !(this.length <= r || !(this.words[r] & i)) + }), + (o.prototype.imaskn = function (e) { + n('number' == typeof e && e >= 0) + var t = e % 26, + r = (e - t) / 26 + if ((n(0 === this.negative, 'imaskn works only with positive numbers'), this.length <= r)) return this + if ((0 !== t && r++, (this.length = Math.min(r, this.length)), 0 !== t)) { + var i = 67108863 ^ ((67108863 >>> t) << t) + this.words[this.length - 1] &= i + } + return this.strip() + }), + (o.prototype.maskn = function (e) { + return this.clone().imaskn(e) + }), + (o.prototype.iaddn = function (e) { + return ( + n('number' == typeof e), + n(e < 67108864), + e < 0 + ? this.isubn(-e) + : 0 !== this.negative + ? 1 === this.length && (0 | this.words[0]) < e + ? ((this.words[0] = e - (0 | this.words[0])), (this.negative = 0), this) + : ((this.negative = 0), this.isubn(e), (this.negative = 1), this) + : this._iaddn(e) + ) + }), + (o.prototype._iaddn = function (e) { + this.words[0] += e + for (var t = 0; t < this.length && this.words[t] >= 67108864; t++) + ((this.words[t] -= 67108864), t === this.length - 1 ? (this.words[t + 1] = 1) : this.words[t + 1]++) + return ((this.length = Math.max(this.length, t + 1)), this) + }), + (o.prototype.isubn = function (e) { + if ((n('number' == typeof e), n(e < 67108864), e < 0)) return this.iaddn(-e) + if (0 !== this.negative) return ((this.negative = 0), this.iaddn(e), (this.negative = 1), this) + if (((this.words[0] -= e), 1 === this.length && this.words[0] < 0)) ((this.words[0] = -this.words[0]), (this.negative = 1)) + else for (var t = 0; t < this.length && this.words[t] < 0; t++) ((this.words[t] += 67108864), (this.words[t + 1] -= 1)) + return this.strip() + }), + (o.prototype.addn = function (e) { + return this.clone().iaddn(e) + }), + (o.prototype.subn = function (e) { + return this.clone().isubn(e) + }), + (o.prototype.iabs = function () { + return ((this.negative = 0), this) + }), + (o.prototype.abs = function () { + return this.clone().iabs() + }), + (o.prototype._ishlnsubmul = function (e, t, r) { + var i, + o, + a = e.length + r + this._expand(a) + var s = 0 + for (i = 0; i < e.length; i++) { + o = (0 | this.words[i + r]) + s + var u = (0 | e.words[i]) * t + ;((s = ((o -= 67108863 & u) >> 26) - ((u / 67108864) | 0)), (this.words[i + r] = 67108863 & o)) + } + for (; i < this.length - r; i++) ((s = (o = (0 | this.words[i + r]) + s) >> 26), (this.words[i + r] = 67108863 & o)) + if (0 === s) return this.strip() + for (n(-1 === s), s = 0, i = 0; i < this.length; i++) ((s = (o = -(0 | this.words[i]) + s) >> 26), (this.words[i] = 67108863 & o)) + return ((this.negative = 1), this.strip()) + }), + (o.prototype._wordDiv = function (e, t) { + var r = (this.length, e.length), + n = this.clone(), + i = e, + a = 0 | i.words[i.length - 1] + 0 != (r = 26 - this._countBits(a)) && ((i = i.ushln(r)), n.iushln(r), (a = 0 | i.words[i.length - 1])) + var s, + u = n.length - i.length + if ('mod' !== t) { + ;(((s = new o(null)).length = u + 1), (s.words = new Array(s.length))) + for (var c = 0; c < s.length; c++) s.words[c] = 0 + } + var f = n.clone()._ishlnsubmul(i, 1, u) + 0 === f.negative && ((n = f), s && (s.words[u] = 1)) + for (var l = u - 1; l >= 0; l--) { + var d = 67108864 * (0 | n.words[i.length + l]) + (0 | n.words[i.length + l - 1]) + for (d = Math.min((d / a) | 0, 67108863), n._ishlnsubmul(i, d, l); 0 !== n.negative; ) + (d--, (n.negative = 0), n._ishlnsubmul(i, 1, l), n.isZero() || (n.negative ^= 1)) + s && (s.words[l] = d) + } + return (s && s.strip(), n.strip(), 'div' !== t && 0 !== r && n.iushrn(r), { div: s || null, mod: n }) + }), + (o.prototype.divmod = function (e, t, r) { + return ( + n(!e.isZero()), + this.isZero() + ? { div: new o(0), mod: new o(0) } + : 0 !== this.negative && 0 === e.negative + ? ((s = this.neg().divmod(e, t)), + 'mod' !== t && (i = s.div.neg()), + 'div' !== t && ((a = s.mod.neg()), r && 0 !== a.negative && a.iadd(e)), + { div: i, mod: a }) + : 0 === this.negative && 0 !== e.negative + ? ((s = this.divmod(e.neg(), t)), 'mod' !== t && (i = s.div.neg()), { div: i, mod: s.mod }) + : 0 != (this.negative & e.negative) + ? ((s = this.neg().divmod(e.neg(), t)), + 'div' !== t && ((a = s.mod.neg()), r && 0 !== a.negative && a.isub(e)), + { div: s.div, mod: a }) + : e.length > this.length || this.cmp(e) < 0 + ? { div: new o(0), mod: this } + : 1 === e.length + ? 'div' === t + ? { div: this.divn(e.words[0]), mod: null } + : 'mod' === t + ? { div: null, mod: new o(this.modn(e.words[0])) } + : { div: this.divn(e.words[0]), mod: new o(this.modn(e.words[0])) } + : this._wordDiv(e, t) + ) + var i, a, s + }), + (o.prototype.div = function (e) { + return this.divmod(e, 'div', !1).div + }), + (o.prototype.mod = function (e) { + return this.divmod(e, 'mod', !1).mod + }), + (o.prototype.umod = function (e) { + return this.divmod(e, 'mod', !0).mod + }), + (o.prototype.divRound = function (e) { + var t = this.divmod(e) + if (t.mod.isZero()) return t.div + var r = 0 !== t.div.negative ? t.mod.isub(e) : t.mod, + n = e.ushrn(1), + i = e.andln(1), + o = r.cmp(n) + return o < 0 || (1 === i && 0 === o) ? t.div : 0 !== t.div.negative ? t.div.isubn(1) : t.div.iaddn(1) + }), + (o.prototype.modn = function (e) { + n(e <= 67108863) + for (var t = (1 << 26) % e, r = 0, i = this.length - 1; i >= 0; i--) r = (t * r + (0 | this.words[i])) % e + return r + }), + (o.prototype.idivn = function (e) { + n(e <= 67108863) + for (var t = 0, r = this.length - 1; r >= 0; r--) { + var i = (0 | this.words[r]) + 67108864 * t + ;((this.words[r] = (i / e) | 0), (t = i % e)) + } + return this.strip() + }), + (o.prototype.divn = function (e) { + return this.clone().idivn(e) + }), + (o.prototype.egcd = function (e) { + ;(n(0 === e.negative), n(!e.isZero())) + var t = this, + r = e.clone() + t = 0 !== t.negative ? t.umod(e) : t.clone() + for (var i = new o(1), a = new o(0), s = new o(0), u = new o(1), c = 0; t.isEven() && r.isEven(); ) (t.iushrn(1), r.iushrn(1), ++c) + for (var f = r.clone(), l = t.clone(); !t.isZero(); ) { + for (var d = 0, h = 1; 0 == (t.words[0] & h) && d < 26; ++d, h <<= 1); + if (d > 0) for (t.iushrn(d); d-- > 0; ) ((i.isOdd() || a.isOdd()) && (i.iadd(f), a.isub(l)), i.iushrn(1), a.iushrn(1)) + for (var p = 0, y = 1; 0 == (r.words[0] & y) && p < 26; ++p, y <<= 1); + if (p > 0) for (r.iushrn(p); p-- > 0; ) ((s.isOdd() || u.isOdd()) && (s.iadd(f), u.isub(l)), s.iushrn(1), u.iushrn(1)) + t.cmp(r) >= 0 ? (t.isub(r), i.isub(s), a.isub(u)) : (r.isub(t), s.isub(i), u.isub(a)) + } + return { a: s, b: u, gcd: r.iushln(c) } + }), + (o.prototype._invmp = function (e) { + ;(n(0 === e.negative), n(!e.isZero())) + var t = this, + r = e.clone() + t = 0 !== t.negative ? t.umod(e) : t.clone() + for (var i, a = new o(1), s = new o(0), u = r.clone(); t.cmpn(1) > 0 && r.cmpn(1) > 0; ) { + for (var c = 0, f = 1; 0 == (t.words[0] & f) && c < 26; ++c, f <<= 1); + if (c > 0) for (t.iushrn(c); c-- > 0; ) (a.isOdd() && a.iadd(u), a.iushrn(1)) + for (var l = 0, d = 1; 0 == (r.words[0] & d) && l < 26; ++l, d <<= 1); + if (l > 0) for (r.iushrn(l); l-- > 0; ) (s.isOdd() && s.iadd(u), s.iushrn(1)) + t.cmp(r) >= 0 ? (t.isub(r), a.isub(s)) : (r.isub(t), s.isub(a)) + } + return ((i = 0 === t.cmpn(1) ? a : s).cmpn(0) < 0 && i.iadd(e), i) + }), + (o.prototype.gcd = function (e) { + if (this.isZero()) return e.abs() + if (e.isZero()) return this.abs() + var t = this.clone(), + r = e.clone() + ;((t.negative = 0), (r.negative = 0)) + for (var n = 0; t.isEven() && r.isEven(); n++) (t.iushrn(1), r.iushrn(1)) + for (;;) { + for (; t.isEven(); ) t.iushrn(1) + for (; r.isEven(); ) r.iushrn(1) + var i = t.cmp(r) + if (i < 0) { + var o = t + ;((t = r), (r = o)) + } else if (0 === i || 0 === r.cmpn(1)) break + t.isub(r) + } + return r.iushln(n) + }), + (o.prototype.invm = function (e) { + return this.egcd(e).a.umod(e) + }), + (o.prototype.isEven = function () { + return 0 == (1 & this.words[0]) + }), + (o.prototype.isOdd = function () { + return 1 == (1 & this.words[0]) + }), + (o.prototype.andln = function (e) { + return this.words[0] & e + }), + (o.prototype.bincn = function (e) { + n('number' == typeof e) + var t = e % 26, + r = (e - t) / 26, + i = 1 << t + if (this.length <= r) return (this._expand(r + 1), (this.words[r] |= i), this) + for (var o = i, a = r; 0 !== o && a < this.length; a++) { + var s = 0 | this.words[a] + ;((o = (s += o) >>> 26), (s &= 67108863), (this.words[a] = s)) + } + return (0 !== o && ((this.words[a] = o), this.length++), this) + }), + (o.prototype.isZero = function () { + return 1 === this.length && 0 === this.words[0] + }), + (o.prototype.cmpn = function (e) { + var t, + r = e < 0 + if (0 !== this.negative && !r) return -1 + if (0 === this.negative && r) return 1 + if ((this.strip(), this.length > 1)) t = 1 + else { + ;(r && (e = -e), n(e <= 67108863, 'Number is too big')) + var i = 0 | this.words[0] + t = i === e ? 0 : i < e ? -1 : 1 + } + return 0 !== this.negative ? 0 | -t : t + }), + (o.prototype.cmp = function (e) { + if (0 !== this.negative && 0 === e.negative) return -1 + if (0 === this.negative && 0 !== e.negative) return 1 + var t = this.ucmp(e) + return 0 !== this.negative ? 0 | -t : t + }), + (o.prototype.ucmp = function (e) { + if (this.length > e.length) return 1 + if (this.length < e.length) return -1 + for (var t = 0, r = this.length - 1; r >= 0; r--) { + var n = 0 | this.words[r], + i = 0 | e.words[r] + if (n !== i) { + n < i ? (t = -1) : n > i && (t = 1) + break + } + } + return t + }), + (o.prototype.gtn = function (e) { + return 1 === this.cmpn(e) + }), + (o.prototype.gt = function (e) { + return 1 === this.cmp(e) + }), + (o.prototype.gten = function (e) { + return this.cmpn(e) >= 0 + }), + (o.prototype.gte = function (e) { + return this.cmp(e) >= 0 + }), + (o.prototype.ltn = function (e) { + return -1 === this.cmpn(e) + }), + (o.prototype.lt = function (e) { + return -1 === this.cmp(e) + }), + (o.prototype.lten = function (e) { + return this.cmpn(e) <= 0 + }), + (o.prototype.lte = function (e) { + return this.cmp(e) <= 0 + }), + (o.prototype.eqn = function (e) { + return 0 === this.cmpn(e) + }), + (o.prototype.eq = function (e) { + return 0 === this.cmp(e) + }), + (o.red = function (e) { + return new S(e) + }), + (o.prototype.toRed = function (e) { + return ( + n(!this.red, 'Already a number in reduction context'), + n(0 === this.negative, 'red works only with positives'), + e.convertTo(this)._forceRed(e) + ) + }), + (o.prototype.fromRed = function () { + return (n(this.red, 'fromRed works only with numbers in reduction context'), this.red.convertFrom(this)) + }), + (o.prototype._forceRed = function (e) { + return ((this.red = e), this) + }), + (o.prototype.forceRed = function (e) { + return (n(!this.red, 'Already a number in reduction context'), this._forceRed(e)) + }), + (o.prototype.redAdd = function (e) { + return (n(this.red, 'redAdd works only with red numbers'), this.red.add(this, e)) + }), + (o.prototype.redIAdd = function (e) { + return (n(this.red, 'redIAdd works only with red numbers'), this.red.iadd(this, e)) + }), + (o.prototype.redSub = function (e) { + return (n(this.red, 'redSub works only with red numbers'), this.red.sub(this, e)) + }), + (o.prototype.redISub = function (e) { + return (n(this.red, 'redISub works only with red numbers'), this.red.isub(this, e)) + }), + (o.prototype.redShl = function (e) { + return (n(this.red, 'redShl works only with red numbers'), this.red.shl(this, e)) + }), + (o.prototype.redMul = function (e) { + return (n(this.red, 'redMul works only with red numbers'), this.red._verify2(this, e), this.red.mul(this, e)) + }), + (o.prototype.redIMul = function (e) { + return (n(this.red, 'redMul works only with red numbers'), this.red._verify2(this, e), this.red.imul(this, e)) + }), + (o.prototype.redSqr = function () { + return (n(this.red, 'redSqr works only with red numbers'), this.red._verify1(this), this.red.sqr(this)) + }), + (o.prototype.redISqr = function () { + return (n(this.red, 'redISqr works only with red numbers'), this.red._verify1(this), this.red.isqr(this)) + }), + (o.prototype.redSqrt = function () { + return (n(this.red, 'redSqrt works only with red numbers'), this.red._verify1(this), this.red.sqrt(this)) + }), + (o.prototype.redInvm = function () { + return (n(this.red, 'redInvm works only with red numbers'), this.red._verify1(this), this.red.invm(this)) + }), + (o.prototype.redNeg = function () { + return (n(this.red, 'redNeg works only with red numbers'), this.red._verify1(this), this.red.neg(this)) + }), + (o.prototype.redPow = function (e) { + return (n(this.red && !e.red, 'redPow(normalNum)'), this.red._verify1(this), this.red.pow(this, e)) + })) + var b = { k256: null, p224: null, p192: null, p25519: null } + function m(e, t) { + ;((this.name = e), + (this.p = new o(t, 16)), + (this.n = this.p.bitLength()), + (this.k = new o(1).iushln(this.n).isub(this.p)), + (this.tmp = this._tmp())) + } + function v() { + m.call(this, 'k256', 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f') + } + function w() { + m.call(this, 'p224', 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001') + } + function _() { + m.call(this, 'p192', 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff') + } + function E() { + m.call(this, '25519', '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed') + } + function S(e) { + if ('string' == typeof e) { + var t = o._prime(e) + ;((this.m = t.p), (this.prime = t)) + } else (n(e.gtn(1), 'modulus must be greater than 1'), (this.m = e), (this.prime = null)) + } + function A(e) { + ;(S.call(this, e), + (this.shift = this.m.bitLength()), + this.shift % 26 != 0 && (this.shift += 26 - (this.shift % 26)), + (this.r = new o(1).iushln(this.shift)), + (this.r2 = this.imod(this.r.sqr())), + (this.rinv = this.r._invmp(this.m)), + (this.minv = this.rinv.mul(this.r).isubn(1).div(this.m)), + (this.minv = this.minv.umod(this.r)), + (this.minv = this.r.sub(this.minv))) + } + ;((m.prototype._tmp = function () { + var e = new o(null) + return ((e.words = new Array(Math.ceil(this.n / 13))), e) + }), + (m.prototype.ireduce = function (e) { + var t, + r = e + do { + ;(this.split(r, this.tmp), (t = (r = (r = this.imulK(r)).iadd(this.tmp)).bitLength())) + } while (t > this.n) + var n = t < this.n ? -1 : r.ucmp(this.p) + return (0 === n ? ((r.words[0] = 0), (r.length = 1)) : n > 0 ? r.isub(this.p) : void 0 !== r.strip ? r.strip() : r._strip(), r) + }), + (m.prototype.split = function (e, t) { + e.iushrn(this.n, 0, t) + }), + (m.prototype.imulK = function (e) { + return e.imul(this.k) + }), + i(v, m), + (v.prototype.split = function (e, t) { + for (var r = 4194303, n = Math.min(e.length, 9), i = 0; i < n; i++) t.words[i] = e.words[i] + if (((t.length = n), e.length <= 9)) return ((e.words[0] = 0), void (e.length = 1)) + var o = e.words[9] + for (t.words[t.length++] = o & r, i = 10; i < e.length; i++) { + var a = 0 | e.words[i] + ;((e.words[i - 10] = ((a & r) << 4) | (o >>> 22)), (o = a)) + } + ;((o >>>= 22), (e.words[i - 10] = o), 0 === o && e.length > 10 ? (e.length -= 10) : (e.length -= 9)) + }), + (v.prototype.imulK = function (e) { + ;((e.words[e.length] = 0), (e.words[e.length + 1] = 0), (e.length += 2)) + for (var t = 0, r = 0; r < e.length; r++) { + var n = 0 | e.words[r] + ;((t += 977 * n), (e.words[r] = 67108863 & t), (t = 64 * n + ((t / 67108864) | 0))) + } + return (0 === e.words[e.length - 1] && (e.length--, 0 === e.words[e.length - 1] && e.length--), e) + }), + i(w, m), + i(_, m), + i(E, m), + (E.prototype.imulK = function (e) { + for (var t = 0, r = 0; r < e.length; r++) { + var n = 19 * (0 | e.words[r]) + t, + i = 67108863 & n + ;((n >>>= 26), (e.words[r] = i), (t = n)) + } + return (0 !== t && (e.words[e.length++] = t), e) + }), + (o._prime = function (e) { + if (b[e]) return b[e] + var t + if ('k256' === e) t = new v() + else if ('p224' === e) t = new w() + else if ('p192' === e) t = new _() + else { + if ('p25519' !== e) throw new Error('Unknown prime ' + e) + t = new E() + } + return ((b[e] = t), t) + }), + (S.prototype._verify1 = function (e) { + ;(n(0 === e.negative, 'red works only with positives'), n(e.red, 'red works only with red numbers')) + }), + (S.prototype._verify2 = function (e, t) { + ;(n(0 == (e.negative | t.negative), 'red works only with positives'), n(e.red && e.red === t.red, 'red works only with red numbers')) + }), + (S.prototype.imod = function (e) { + return this.prime ? this.prime.ireduce(e)._forceRed(this) : e.umod(this.m)._forceRed(this) + }), + (S.prototype.neg = function (e) { + return e.isZero() ? e.clone() : this.m.sub(e)._forceRed(this) + }), + (S.prototype.add = function (e, t) { + this._verify2(e, t) + var r = e.add(t) + return (r.cmp(this.m) >= 0 && r.isub(this.m), r._forceRed(this)) + }), + (S.prototype.iadd = function (e, t) { + this._verify2(e, t) + var r = e.iadd(t) + return (r.cmp(this.m) >= 0 && r.isub(this.m), r) + }), + (S.prototype.sub = function (e, t) { + this._verify2(e, t) + var r = e.sub(t) + return (r.cmpn(0) < 0 && r.iadd(this.m), r._forceRed(this)) + }), + (S.prototype.isub = function (e, t) { + this._verify2(e, t) + var r = e.isub(t) + return (r.cmpn(0) < 0 && r.iadd(this.m), r) + }), + (S.prototype.shl = function (e, t) { + return (this._verify1(e), this.imod(e.ushln(t))) + }), + (S.prototype.imul = function (e, t) { + return (this._verify2(e, t), this.imod(e.imul(t))) + }), + (S.prototype.mul = function (e, t) { + return (this._verify2(e, t), this.imod(e.mul(t))) + }), + (S.prototype.isqr = function (e) { + return this.imul(e, e.clone()) + }), + (S.prototype.sqr = function (e) { + return this.mul(e, e) + }), + (S.prototype.sqrt = function (e) { + if (e.isZero()) return e.clone() + var t = this.m.andln(3) + if ((n(t % 2 == 1), 3 === t)) { + var r = this.m.add(new o(1)).iushrn(2) + return this.pow(e, r) + } + for (var i = this.m.subn(1), a = 0; !i.isZero() && 0 === i.andln(1); ) (a++, i.iushrn(1)) + n(!i.isZero()) + var s = new o(1).toRed(this), + u = s.redNeg(), + c = this.m.subn(1).iushrn(1), + f = this.m.bitLength() + for (f = new o(2 * f * f).toRed(this); 0 !== this.pow(f, c).cmp(u); ) f.redIAdd(u) + for (var l = this.pow(f, i), d = this.pow(e, i.addn(1).iushrn(1)), h = this.pow(e, i), p = a; 0 !== h.cmp(s); ) { + for (var y = h, g = 0; 0 !== y.cmp(s); g++) y = y.redSqr() + n(g < p) + var b = this.pow(l, new o(1).iushln(p - g - 1)) + ;((d = d.redMul(b)), (l = b.redSqr()), (h = h.redMul(l)), (p = g)) + } + return d + }), + (S.prototype.invm = function (e) { + var t = e._invmp(this.m) + return 0 !== t.negative ? ((t.negative = 0), this.imod(t).redNeg()) : this.imod(t) + }), + (S.prototype.pow = function (e, t) { + if (t.isZero()) return new o(1).toRed(this) + if (0 === t.cmpn(1)) return e.clone() + var r = new Array(16) + ;((r[0] = new o(1).toRed(this)), (r[1] = e)) + for (var n = 2; n < r.length; n++) r[n] = this.mul(r[n - 1], e) + var i = r[0], + a = 0, + s = 0, + u = t.bitLength() % 26 + for (0 === u && (u = 26), n = t.length - 1; n >= 0; n--) { + for (var c = t.words[n], f = u - 1; f >= 0; f--) { + var l = (c >> f) & 1 + ;(i !== r[0] && (i = this.sqr(i)), + 0 !== l || 0 !== a + ? ((a <<= 1), (a |= l), (4 == ++s || (0 === n && 0 === f)) && ((i = this.mul(i, r[a])), (s = 0), (a = 0))) + : (s = 0)) + } + u = 26 + } + return i + }), + (S.prototype.convertTo = function (e) { + var t = e.umod(this.m) + return t === e ? t.clone() : t + }), + (S.prototype.convertFrom = function (e) { + var t = e.clone() + return ((t.red = null), t) + }), + (o.mont = function (e) { + return new A(e) + }), + i(A, S), + (A.prototype.convertTo = function (e) { + return this.imod(e.ushln(this.shift)) + }), + (A.prototype.convertFrom = function (e) { + var t = this.imod(e.mul(this.rinv)) + return ((t.red = null), t) + }), + (A.prototype.imul = function (e, t) { + if (e.isZero() || t.isZero()) return ((e.words[0] = 0), (e.length = 1), e) + var r = e.imul(t), + n = r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m), + i = r.isub(n).iushrn(this.shift), + o = i + return (i.cmp(this.m) >= 0 ? (o = i.isub(this.m)) : i.cmpn(0) < 0 && (o = i.iadd(this.m)), o._forceRed(this)) + }), + (A.prototype.mul = function (e, t) { + if (e.isZero() || t.isZero()) return new o(0)._forceRed(this) + var r = e.mul(t), + n = r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m), + i = r.isub(n).iushrn(this.shift), + a = i + return (i.cmp(this.m) >= 0 ? (a = i.isub(this.m)) : i.cmpn(0) < 0 && (a = i.iadd(this.m)), a._forceRed(this)) + }), + (A.prototype.invm = function (e) { + return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this) + })) + })((e = r.nmd(e)), this) + }, + 42870: (e, t, r) => { + 'use strict' + var n = t + ;((n.version = r(40763).i8), + (n.utils = r(60218)), + (n.rand = r(72486)), + (n.curve = r(89751)), + (n.curves = r(51736)), + (n.ec = r(68252)), + (n.eddsa = r(97751))) + }, + 77975: (e, t, r) => { + 'use strict' + var n = r(10660), + i = r(60218), + o = i.getNAF, + a = i.getJSF, + s = i.assert + function u(e, t) { + ;((this.type = e), + (this.p = new n(t.p, 16)), + (this.red = t.prime ? n.red(t.prime) : n.mont(this.p)), + (this.zero = new n(0).toRed(this.red)), + (this.one = new n(1).toRed(this.red)), + (this.two = new n(2).toRed(this.red)), + (this.n = t.n && new n(t.n, 16)), + (this.g = t.g && this.pointFromJSON(t.g, t.gRed)), + (this._wnafT1 = new Array(4)), + (this._wnafT2 = new Array(4)), + (this._wnafT3 = new Array(4)), + (this._wnafT4 = new Array(4)), + (this._bitLength = this.n ? this.n.bitLength() : 0)) + var r = this.n && this.p.div(this.n) + !r || r.cmpn(100) > 0 ? (this.redN = null) : ((this._maxwellTrick = !0), (this.redN = this.n.toRed(this.red))) + } + function c(e, t) { + ;((this.curve = e), (this.type = t), (this.precomputed = null)) + } + ;((e.exports = u), + (u.prototype.point = function () { + throw new Error('Not implemented') + }), + (u.prototype.validate = function () { + throw new Error('Not implemented') + }), + (u.prototype._fixedNafMul = function (e, t) { + s(e.precomputed) + var r = e._getDoubles(), + n = o(t, 1, this._bitLength), + i = (1 << (r.step + 1)) - (r.step % 2 == 0 ? 2 : 1) + i /= 3 + var a, + u, + c = [] + for (a = 0; a < n.length; a += r.step) { + u = 0 + for (var f = a + r.step - 1; f >= a; f--) u = (u << 1) + n[f] + c.push(u) + } + for (var l = this.jpoint(null, null, null), d = this.jpoint(null, null, null), h = i; h > 0; h--) { + for (a = 0; a < c.length; a++) (u = c[a]) === h ? (d = d.mixedAdd(r.points[a])) : u === -h && (d = d.mixedAdd(r.points[a].neg())) + l = l.add(d) + } + return l.toP() + }), + (u.prototype._wnafMul = function (e, t) { + var r = 4, + n = e._getNAFPoints(r) + r = n.wnd + for (var i = n.points, a = o(t, r, this._bitLength), u = this.jpoint(null, null, null), c = a.length - 1; c >= 0; c--) { + for (var f = 0; c >= 0 && 0 === a[c]; c--) f++ + if ((c >= 0 && f++, (u = u.dblp(f)), c < 0)) break + var l = a[c] + ;(s(0 !== l), + (u = + 'affine' === e.type + ? l > 0 + ? u.mixedAdd(i[(l - 1) >> 1]) + : u.mixedAdd(i[(-l - 1) >> 1].neg()) + : l > 0 + ? u.add(i[(l - 1) >> 1]) + : u.add(i[(-l - 1) >> 1].neg()))) + } + return 'affine' === e.type ? u.toP() : u + }), + (u.prototype._wnafMulAdd = function (e, t, r, n, i) { + var s, + u, + c, + f = this._wnafT1, + l = this._wnafT2, + d = this._wnafT3, + h = 0 + for (s = 0; s < n; s++) { + var p = (c = t[s])._getNAFPoints(e) + ;((f[s] = p.wnd), (l[s] = p.points)) + } + for (s = n - 1; s >= 1; s -= 2) { + var y = s - 1, + g = s + if (1 === f[y] && 1 === f[g]) { + var b = [t[y], null, null, t[g]] + 0 === t[y].y.cmp(t[g].y) + ? ((b[1] = t[y].add(t[g])), (b[2] = t[y].toJ().mixedAdd(t[g].neg()))) + : 0 === t[y].y.cmp(t[g].y.redNeg()) + ? ((b[1] = t[y].toJ().mixedAdd(t[g])), (b[2] = t[y].add(t[g].neg()))) + : ((b[1] = t[y].toJ().mixedAdd(t[g])), (b[2] = t[y].toJ().mixedAdd(t[g].neg()))) + var m = [-3, -1, -5, -7, 0, 7, 5, 1, 3], + v = a(r[y], r[g]) + for (h = Math.max(v[0].length, h), d[y] = new Array(h), d[g] = new Array(h), u = 0; u < h; u++) { + var w = 0 | v[0][u], + _ = 0 | v[1][u] + ;((d[y][u] = m[3 * (w + 1) + (_ + 1)]), (d[g][u] = 0), (l[y] = b)) + } + } else + ((d[y] = o(r[y], f[y], this._bitLength)), + (d[g] = o(r[g], f[g], this._bitLength)), + (h = Math.max(d[y].length, h)), + (h = Math.max(d[g].length, h))) + } + var E = this.jpoint(null, null, null), + S = this._wnafT4 + for (s = h; s >= 0; s--) { + for (var A = 0; s >= 0; ) { + var O = !0 + for (u = 0; u < n; u++) ((S[u] = 0 | d[u][s]), 0 !== S[u] && (O = !1)) + if (!O) break + ;(A++, s--) + } + if ((s >= 0 && A++, (E = E.dblp(A)), s < 0)) break + for (u = 0; u < n; u++) { + var M = S[u] + 0 !== M && + (M > 0 ? (c = l[u][(M - 1) >> 1]) : M < 0 && (c = l[u][(-M - 1) >> 1].neg()), (E = 'affine' === c.type ? E.mixedAdd(c) : E.add(c))) + } + } + for (s = 0; s < n; s++) l[s] = null + return i ? E : E.toP() + }), + (u.BasePoint = c), + (c.prototype.eq = function () { + throw new Error('Not implemented') + }), + (c.prototype.validate = function () { + return this.curve.validate(this) + }), + (u.prototype.decodePoint = function (e, t) { + e = i.toArray(e, t) + var r = this.p.byteLength() + if ((4 === e[0] || 6 === e[0] || 7 === e[0]) && e.length - 1 == 2 * r) + return ( + 6 === e[0] ? s(e[e.length - 1] % 2 == 0) : 7 === e[0] && s(e[e.length - 1] % 2 == 1), + this.point(e.slice(1, 1 + r), e.slice(1 + r, 1 + 2 * r)) + ) + if ((2 === e[0] || 3 === e[0]) && e.length - 1 === r) return this.pointFromX(e.slice(1, 1 + r), 3 === e[0]) + throw new Error('Unknown point format') + }), + (c.prototype.encodeCompressed = function (e) { + return this.encode(e, !0) + }), + (c.prototype._encode = function (e) { + var t = this.curve.p.byteLength(), + r = this.getX().toArray('be', t) + return e ? [this.getY().isEven() ? 2 : 3].concat(r) : [4].concat(r, this.getY().toArray('be', t)) + }), + (c.prototype.encode = function (e, t) { + return i.encode(this._encode(t), e) + }), + (c.prototype.precompute = function (e) { + if (this.precomputed) return this + var t = { doubles: null, naf: null, beta: null } + return ((t.naf = this._getNAFPoints(8)), (t.doubles = this._getDoubles(4, e)), (t.beta = this._getBeta()), (this.precomputed = t), this) + }), + (c.prototype._hasDoubles = function (e) { + if (!this.precomputed) return !1 + var t = this.precomputed.doubles + return !!t && t.points.length >= Math.ceil((e.bitLength() + 1) / t.step) + }), + (c.prototype._getDoubles = function (e, t) { + if (this.precomputed && this.precomputed.doubles) return this.precomputed.doubles + for (var r = [this], n = this, i = 0; i < t; i += e) { + for (var o = 0; o < e; o++) n = n.dbl() + r.push(n) + } + return { step: e, points: r } + }), + (c.prototype._getNAFPoints = function (e) { + if (this.precomputed && this.precomputed.naf) return this.precomputed.naf + for (var t = [this], r = (1 << e) - 1, n = 1 === r ? null : this.dbl(), i = 1; i < r; i++) t[i] = t[i - 1].add(n) + return { wnd: e, points: t } + }), + (c.prototype._getBeta = function () { + return null + }), + (c.prototype.dblp = function (e) { + for (var t = this, r = 0; r < e; r++) t = t.dbl() + return t + })) + }, + 66964: (e, t, r) => { + 'use strict' + var n = r(60218), + i = r(10660), + o = r(19105), + a = r(77975), + s = n.assert + function u(e) { + ;((this.twisted = 1 != (0 | e.a)), + (this.mOneA = this.twisted && -1 == (0 | e.a)), + (this.extended = this.mOneA), + a.call(this, 'edwards', e), + (this.a = new i(e.a, 16).umod(this.red.m)), + (this.a = this.a.toRed(this.red)), + (this.c = new i(e.c, 16).toRed(this.red)), + (this.c2 = this.c.redSqr()), + (this.d = new i(e.d, 16).toRed(this.red)), + (this.dd = this.d.redAdd(this.d)), + s(!this.twisted || 0 === this.c.fromRed().cmpn(1)), + (this.oneC = 1 == (0 | e.c))) + } + function c(e, t, r, n, o) { + ;(a.BasePoint.call(this, e, 'projective'), + null === t && null === r && null === n + ? ((this.x = this.curve.zero), (this.y = this.curve.one), (this.z = this.curve.one), (this.t = this.curve.zero), (this.zOne = !0)) + : ((this.x = new i(t, 16)), + (this.y = new i(r, 16)), + (this.z = n ? new i(n, 16) : this.curve.one), + (this.t = o && new i(o, 16)), + this.x.red || (this.x = this.x.toRed(this.curve.red)), + this.y.red || (this.y = this.y.toRed(this.curve.red)), + this.z.red || (this.z = this.z.toRed(this.curve.red)), + this.t && !this.t.red && (this.t = this.t.toRed(this.curve.red)), + (this.zOne = this.z === this.curve.one), + this.curve.extended && !this.t && ((this.t = this.x.redMul(this.y)), this.zOne || (this.t = this.t.redMul(this.z.redInvm()))))) + } + ;(o(u, a), + (e.exports = u), + (u.prototype._mulA = function (e) { + return this.mOneA ? e.redNeg() : this.a.redMul(e) + }), + (u.prototype._mulC = function (e) { + return this.oneC ? e : this.c.redMul(e) + }), + (u.prototype.jpoint = function (e, t, r, n) { + return this.point(e, t, r, n) + }), + (u.prototype.pointFromX = function (e, t) { + ;(e = new i(e, 16)).red || (e = e.toRed(this.red)) + var r = e.redSqr(), + n = this.c2.redSub(this.a.redMul(r)), + o = this.one.redSub(this.c2.redMul(this.d).redMul(r)), + a = n.redMul(o.redInvm()), + s = a.redSqrt() + if (0 !== s.redSqr().redSub(a).cmp(this.zero)) throw new Error('invalid point') + var u = s.fromRed().isOdd() + return (((t && !u) || (!t && u)) && (s = s.redNeg()), this.point(e, s)) + }), + (u.prototype.pointFromY = function (e, t) { + ;(e = new i(e, 16)).red || (e = e.toRed(this.red)) + var r = e.redSqr(), + n = r.redSub(this.c2), + o = r.redMul(this.d).redMul(this.c2).redSub(this.a), + a = n.redMul(o.redInvm()) + if (0 === a.cmp(this.zero)) { + if (t) throw new Error('invalid point') + return this.point(this.zero, e) + } + var s = a.redSqrt() + if (0 !== s.redSqr().redSub(a).cmp(this.zero)) throw new Error('invalid point') + return (s.fromRed().isOdd() !== t && (s = s.redNeg()), this.point(s, e)) + }), + (u.prototype.validate = function (e) { + if (e.isInfinity()) return !0 + e.normalize() + var t = e.x.redSqr(), + r = e.y.redSqr(), + n = t.redMul(this.a).redAdd(r), + i = this.c2.redMul(this.one.redAdd(this.d.redMul(t).redMul(r))) + return 0 === n.cmp(i) + }), + o(c, a.BasePoint), + (u.prototype.pointFromJSON = function (e) { + return c.fromJSON(this, e) + }), + (u.prototype.point = function (e, t, r, n) { + return new c(this, e, t, r, n) + }), + (c.fromJSON = function (e, t) { + return new c(e, t[0], t[1], t[2]) + }), + (c.prototype.inspect = function () { + return this.isInfinity() + ? '<EC Point Infinity>' + : '<EC Point x: ' + + this.x.fromRed().toString(16, 2) + + ' y: ' + + this.y.fromRed().toString(16, 2) + + ' z: ' + + this.z.fromRed().toString(16, 2) + + '>' + }), + (c.prototype.isInfinity = function () { + return 0 === this.x.cmpn(0) && (0 === this.y.cmp(this.z) || (this.zOne && 0 === this.y.cmp(this.curve.c))) + }), + (c.prototype._extDbl = function () { + var e = this.x.redSqr(), + t = this.y.redSqr(), + r = this.z.redSqr() + r = r.redIAdd(r) + var n = this.curve._mulA(e), + i = this.x.redAdd(this.y).redSqr().redISub(e).redISub(t), + o = n.redAdd(t), + a = o.redSub(r), + s = n.redSub(t), + u = i.redMul(a), + c = o.redMul(s), + f = i.redMul(s), + l = a.redMul(o) + return this.curve.point(u, c, l, f) + }), + (c.prototype._projDbl = function () { + var e, + t, + r, + n, + i, + o, + a = this.x.redAdd(this.y).redSqr(), + s = this.x.redSqr(), + u = this.y.redSqr() + if (this.curve.twisted) { + var c = (n = this.curve._mulA(s)).redAdd(u) + this.zOne + ? ((e = a.redSub(s).redSub(u).redMul(c.redSub(this.curve.two))), (t = c.redMul(n.redSub(u))), (r = c.redSqr().redSub(c).redSub(c))) + : ((i = this.z.redSqr()), + (o = c.redSub(i).redISub(i)), + (e = a.redSub(s).redISub(u).redMul(o)), + (t = c.redMul(n.redSub(u))), + (r = c.redMul(o))) + } else + ((n = s.redAdd(u)), + (i = this.curve._mulC(this.z).redSqr()), + (o = n.redSub(i).redSub(i)), + (e = this.curve._mulC(a.redISub(n)).redMul(o)), + (t = this.curve._mulC(n).redMul(s.redISub(u))), + (r = n.redMul(o))) + return this.curve.point(e, t, r) + }), + (c.prototype.dbl = function () { + return this.isInfinity() ? this : this.curve.extended ? this._extDbl() : this._projDbl() + }), + (c.prototype._extAdd = function (e) { + var t = this.y.redSub(this.x).redMul(e.y.redSub(e.x)), + r = this.y.redAdd(this.x).redMul(e.y.redAdd(e.x)), + n = this.t.redMul(this.curve.dd).redMul(e.t), + i = this.z.redMul(e.z.redAdd(e.z)), + o = r.redSub(t), + a = i.redSub(n), + s = i.redAdd(n), + u = r.redAdd(t), + c = o.redMul(a), + f = s.redMul(u), + l = o.redMul(u), + d = a.redMul(s) + return this.curve.point(c, f, d, l) + }), + (c.prototype._projAdd = function (e) { + var t, + r, + n = this.z.redMul(e.z), + i = n.redSqr(), + o = this.x.redMul(e.x), + a = this.y.redMul(e.y), + s = this.curve.d.redMul(o).redMul(a), + u = i.redSub(s), + c = i.redAdd(s), + f = this.x.redAdd(this.y).redMul(e.x.redAdd(e.y)).redISub(o).redISub(a), + l = n.redMul(u).redMul(f) + return ( + this.curve.twisted + ? ((t = n.redMul(c).redMul(a.redSub(this.curve._mulA(o)))), (r = u.redMul(c))) + : ((t = n.redMul(c).redMul(a.redSub(o))), (r = this.curve._mulC(u).redMul(c))), + this.curve.point(l, t, r) + ) + }), + (c.prototype.add = function (e) { + return this.isInfinity() ? e : e.isInfinity() ? this : this.curve.extended ? this._extAdd(e) : this._projAdd(e) + }), + (c.prototype.mul = function (e) { + return this._hasDoubles(e) ? this.curve._fixedNafMul(this, e) : this.curve._wnafMul(this, e) + }), + (c.prototype.mulAdd = function (e, t, r) { + return this.curve._wnafMulAdd(1, [this, t], [e, r], 2, !1) + }), + (c.prototype.jmulAdd = function (e, t, r) { + return this.curve._wnafMulAdd(1, [this, t], [e, r], 2, !0) + }), + (c.prototype.normalize = function () { + if (this.zOne) return this + var e = this.z.redInvm() + return ( + (this.x = this.x.redMul(e)), + (this.y = this.y.redMul(e)), + this.t && (this.t = this.t.redMul(e)), + (this.z = this.curve.one), + (this.zOne = !0), + this + ) + }), + (c.prototype.neg = function () { + return this.curve.point(this.x.redNeg(), this.y, this.z, this.t && this.t.redNeg()) + }), + (c.prototype.getX = function () { + return (this.normalize(), this.x.fromRed()) + }), + (c.prototype.getY = function () { + return (this.normalize(), this.y.fromRed()) + }), + (c.prototype.eq = function (e) { + return this === e || (0 === this.getX().cmp(e.getX()) && 0 === this.getY().cmp(e.getY())) + }), + (c.prototype.eqXToP = function (e) { + var t = e.toRed(this.curve.red).redMul(this.z) + if (0 === this.x.cmp(t)) return !0 + for (var r = e.clone(), n = this.curve.redN.redMul(this.z); ; ) { + if ((r.iadd(this.curve.n), r.cmp(this.curve.p) >= 0)) return !1 + if ((t.redIAdd(n), 0 === this.x.cmp(t))) return !0 + } + }), + (c.prototype.toP = c.prototype.normalize), + (c.prototype.mixedAdd = c.prototype.add)) + }, + 89751: (e, t, r) => { + 'use strict' + var n = t + ;((n.base = r(77975)), (n.short = r(20911)), (n.mont = r(76777)), (n.edwards = r(66964))) + }, + 76777: (e, t, r) => { + 'use strict' + var n = r(10660), + i = r(19105), + o = r(77975), + a = r(60218) + function s(e) { + ;(o.call(this, 'mont', e), + (this.a = new n(e.a, 16).toRed(this.red)), + (this.b = new n(e.b, 16).toRed(this.red)), + (this.i4 = new n(4).toRed(this.red).redInvm()), + (this.two = new n(2).toRed(this.red)), + (this.a24 = this.i4.redMul(this.a.redAdd(this.two)))) + } + function u(e, t, r) { + ;(o.BasePoint.call(this, e, 'projective'), + null === t && null === r + ? ((this.x = this.curve.one), (this.z = this.curve.zero)) + : ((this.x = new n(t, 16)), + (this.z = new n(r, 16)), + this.x.red || (this.x = this.x.toRed(this.curve.red)), + this.z.red || (this.z = this.z.toRed(this.curve.red)))) + } + ;(i(s, o), + (e.exports = s), + (s.prototype.validate = function (e) { + var t = e.normalize().x, + r = t.redSqr(), + n = r.redMul(t).redAdd(r.redMul(this.a)).redAdd(t) + return 0 === n.redSqrt().redSqr().cmp(n) + }), + i(u, o.BasePoint), + (s.prototype.decodePoint = function (e, t) { + return this.point(a.toArray(e, t), 1) + }), + (s.prototype.point = function (e, t) { + return new u(this, e, t) + }), + (s.prototype.pointFromJSON = function (e) { + return u.fromJSON(this, e) + }), + (u.prototype.precompute = function () {}), + (u.prototype._encode = function () { + return this.getX().toArray('be', this.curve.p.byteLength()) + }), + (u.fromJSON = function (e, t) { + return new u(e, t[0], t[1] || e.one) + }), + (u.prototype.inspect = function () { + return this.isInfinity() + ? '<EC Point Infinity>' + : '<EC Point x: ' + this.x.fromRed().toString(16, 2) + ' z: ' + this.z.fromRed().toString(16, 2) + '>' + }), + (u.prototype.isInfinity = function () { + return 0 === this.z.cmpn(0) + }), + (u.prototype.dbl = function () { + var e = this.x.redAdd(this.z).redSqr(), + t = this.x.redSub(this.z).redSqr(), + r = e.redSub(t), + n = e.redMul(t), + i = r.redMul(t.redAdd(this.curve.a24.redMul(r))) + return this.curve.point(n, i) + }), + (u.prototype.add = function () { + throw new Error('Not supported on Montgomery curve') + }), + (u.prototype.diffAdd = function (e, t) { + var r = this.x.redAdd(this.z), + n = this.x.redSub(this.z), + i = e.x.redAdd(e.z), + o = e.x.redSub(e.z).redMul(r), + a = i.redMul(n), + s = t.z.redMul(o.redAdd(a).redSqr()), + u = t.x.redMul(o.redISub(a).redSqr()) + return this.curve.point(s, u) + }), + (u.prototype.mul = function (e) { + for (var t = e.clone(), r = this, n = this.curve.point(null, null), i = []; 0 !== t.cmpn(0); t.iushrn(1)) i.push(t.andln(1)) + for (var o = i.length - 1; o >= 0; o--) 0 === i[o] ? ((r = r.diffAdd(n, this)), (n = n.dbl())) : ((n = r.diffAdd(n, this)), (r = r.dbl())) + return n + }), + (u.prototype.mulAdd = function () { + throw new Error('Not supported on Montgomery curve') + }), + (u.prototype.jumlAdd = function () { + throw new Error('Not supported on Montgomery curve') + }), + (u.prototype.eq = function (e) { + return 0 === this.getX().cmp(e.getX()) + }), + (u.prototype.normalize = function () { + return ((this.x = this.x.redMul(this.z.redInvm())), (this.z = this.curve.one), this) + }), + (u.prototype.getX = function () { + return (this.normalize(), this.x.fromRed()) + })) + }, + 20911: (e, t, r) => { + 'use strict' + var n = r(60218), + i = r(10660), + o = r(19105), + a = r(77975), + s = n.assert + function u(e) { + ;(a.call(this, 'short', e), + (this.a = new i(e.a, 16).toRed(this.red)), + (this.b = new i(e.b, 16).toRed(this.red)), + (this.tinv = this.two.redInvm()), + (this.zeroA = 0 === this.a.fromRed().cmpn(0)), + (this.threeA = 0 === this.a.fromRed().sub(this.p).cmpn(-3)), + (this.endo = this._getEndomorphism(e)), + (this._endoWnafT1 = new Array(4)), + (this._endoWnafT2 = new Array(4))) + } + function c(e, t, r, n) { + ;(a.BasePoint.call(this, e, 'affine'), + null === t && null === r + ? ((this.x = null), (this.y = null), (this.inf = !0)) + : ((this.x = new i(t, 16)), + (this.y = new i(r, 16)), + n && (this.x.forceRed(this.curve.red), this.y.forceRed(this.curve.red)), + this.x.red || (this.x = this.x.toRed(this.curve.red)), + this.y.red || (this.y = this.y.toRed(this.curve.red)), + (this.inf = !1))) + } + function f(e, t, r, n) { + ;(a.BasePoint.call(this, e, 'jacobian'), + null === t && null === r && null === n + ? ((this.x = this.curve.one), (this.y = this.curve.one), (this.z = new i(0))) + : ((this.x = new i(t, 16)), (this.y = new i(r, 16)), (this.z = new i(n, 16))), + this.x.red || (this.x = this.x.toRed(this.curve.red)), + this.y.red || (this.y = this.y.toRed(this.curve.red)), + this.z.red || (this.z = this.z.toRed(this.curve.red)), + (this.zOne = this.z === this.curve.one)) + } + ;(o(u, a), + (e.exports = u), + (u.prototype._getEndomorphism = function (e) { + if (this.zeroA && this.g && this.n && 1 === this.p.modn(3)) { + var t, r + if (e.beta) t = new i(e.beta, 16).toRed(this.red) + else { + var n = this._getEndoRoots(this.p) + t = (t = n[0].cmp(n[1]) < 0 ? n[0] : n[1]).toRed(this.red) + } + if (e.lambda) r = new i(e.lambda, 16) + else { + var o = this._getEndoRoots(this.n) + 0 === this.g.mul(o[0]).x.cmp(this.g.x.redMul(t)) ? (r = o[0]) : ((r = o[1]), s(0 === this.g.mul(r).x.cmp(this.g.x.redMul(t)))) + } + return { + beta: t, + lambda: r, + basis: e.basis + ? e.basis.map(function (e) { + return { a: new i(e.a, 16), b: new i(e.b, 16) } + }) + : this._getEndoBasis(r), + } + } + }), + (u.prototype._getEndoRoots = function (e) { + var t = e === this.p ? this.red : i.mont(e), + r = new i(2).toRed(t).redInvm(), + n = r.redNeg(), + o = new i(3).toRed(t).redNeg().redSqrt().redMul(r) + return [n.redAdd(o).fromRed(), n.redSub(o).fromRed()] + }), + (u.prototype._getEndoBasis = function (e) { + for ( + var t, + r, + n, + o, + a, + s, + u, + c, + f, + l = this.n.ushrn(Math.floor(this.n.bitLength() / 2)), + d = e, + h = this.n.clone(), + p = new i(1), + y = new i(0), + g = new i(0), + b = new i(1), + m = 0; + 0 !== d.cmpn(0); + ) { + var v = h.div(d) + ;((c = h.sub(v.mul(d))), (f = g.sub(v.mul(p)))) + var w = b.sub(v.mul(y)) + if (!n && c.cmp(l) < 0) ((t = u.neg()), (r = p), (n = c.neg()), (o = f)) + else if (n && 2 == ++m) break + ;((u = c), (h = d), (d = c), (g = p), (p = f), (b = y), (y = w)) + } + ;((a = c.neg()), (s = f)) + var _ = n.sqr().add(o.sqr()) + return ( + a.sqr().add(s.sqr()).cmp(_) >= 0 && ((a = t), (s = r)), + n.negative && ((n = n.neg()), (o = o.neg())), + a.negative && ((a = a.neg()), (s = s.neg())), + [ + { a: n, b: o }, + { a, b: s }, + ] + ) + }), + (u.prototype._endoSplit = function (e) { + var t = this.endo.basis, + r = t[0], + n = t[1], + i = n.b.mul(e).divRound(this.n), + o = r.b.neg().mul(e).divRound(this.n), + a = i.mul(r.a), + s = o.mul(n.a), + u = i.mul(r.b), + c = o.mul(n.b) + return { k1: e.sub(a).sub(s), k2: u.add(c).neg() } + }), + (u.prototype.pointFromX = function (e, t) { + ;(e = new i(e, 16)).red || (e = e.toRed(this.red)) + var r = e.redSqr().redMul(e).redIAdd(e.redMul(this.a)).redIAdd(this.b), + n = r.redSqrt() + if (0 !== n.redSqr().redSub(r).cmp(this.zero)) throw new Error('invalid point') + var o = n.fromRed().isOdd() + return (((t && !o) || (!t && o)) && (n = n.redNeg()), this.point(e, n)) + }), + (u.prototype.validate = function (e) { + if (e.inf) return !0 + var t = e.x, + r = e.y, + n = this.a.redMul(t), + i = t.redSqr().redMul(t).redIAdd(n).redIAdd(this.b) + return 0 === r.redSqr().redISub(i).cmpn(0) + }), + (u.prototype._endoWnafMulAdd = function (e, t, r) { + for (var n = this._endoWnafT1, i = this._endoWnafT2, o = 0; o < e.length; o++) { + var a = this._endoSplit(t[o]), + s = e[o], + u = s._getBeta() + ;(a.k1.negative && (a.k1.ineg(), (s = s.neg(!0))), + a.k2.negative && (a.k2.ineg(), (u = u.neg(!0))), + (n[2 * o] = s), + (n[2 * o + 1] = u), + (i[2 * o] = a.k1), + (i[2 * o + 1] = a.k2)) + } + for (var c = this._wnafMulAdd(1, n, i, 2 * o, r), f = 0; f < 2 * o; f++) ((n[f] = null), (i[f] = null)) + return c + }), + o(c, a.BasePoint), + (u.prototype.point = function (e, t, r) { + return new c(this, e, t, r) + }), + (u.prototype.pointFromJSON = function (e, t) { + return c.fromJSON(this, e, t) + }), + (c.prototype._getBeta = function () { + if (this.curve.endo) { + var e = this.precomputed + if (e && e.beta) return e.beta + var t = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y) + if (e) { + var r = this.curve, + n = function (e) { + return r.point(e.x.redMul(r.endo.beta), e.y) + } + ;((e.beta = t), + (t.precomputed = { + beta: null, + naf: e.naf && { wnd: e.naf.wnd, points: e.naf.points.map(n) }, + doubles: e.doubles && { step: e.doubles.step, points: e.doubles.points.map(n) }, + })) + } + return t + } + }), + (c.prototype.toJSON = function () { + return this.precomputed + ? [ + this.x, + this.y, + this.precomputed && { + doubles: this.precomputed.doubles && { step: this.precomputed.doubles.step, points: this.precomputed.doubles.points.slice(1) }, + naf: this.precomputed.naf && { wnd: this.precomputed.naf.wnd, points: this.precomputed.naf.points.slice(1) }, + }, + ] + : [this.x, this.y] + }), + (c.fromJSON = function (e, t, r) { + 'string' == typeof t && (t = JSON.parse(t)) + var n = e.point(t[0], t[1], r) + if (!t[2]) return n + function i(t) { + return e.point(t[0], t[1], r) + } + var o = t[2] + return ( + (n.precomputed = { + beta: null, + doubles: o.doubles && { step: o.doubles.step, points: [n].concat(o.doubles.points.map(i)) }, + naf: o.naf && { wnd: o.naf.wnd, points: [n].concat(o.naf.points.map(i)) }, + }), + n + ) + }), + (c.prototype.inspect = function () { + return this.isInfinity() + ? '<EC Point Infinity>' + : '<EC Point x: ' + this.x.fromRed().toString(16, 2) + ' y: ' + this.y.fromRed().toString(16, 2) + '>' + }), + (c.prototype.isInfinity = function () { + return this.inf + }), + (c.prototype.add = function (e) { + if (this.inf) return e + if (e.inf) return this + if (this.eq(e)) return this.dbl() + if (this.neg().eq(e)) return this.curve.point(null, null) + if (0 === this.x.cmp(e.x)) return this.curve.point(null, null) + var t = this.y.redSub(e.y) + 0 !== t.cmpn(0) && (t = t.redMul(this.x.redSub(e.x).redInvm())) + var r = t.redSqr().redISub(this.x).redISub(e.x), + n = t.redMul(this.x.redSub(r)).redISub(this.y) + return this.curve.point(r, n) + }), + (c.prototype.dbl = function () { + if (this.inf) return this + var e = this.y.redAdd(this.y) + if (0 === e.cmpn(0)) return this.curve.point(null, null) + var t = this.curve.a, + r = this.x.redSqr(), + n = e.redInvm(), + i = r.redAdd(r).redIAdd(r).redIAdd(t).redMul(n), + o = i.redSqr().redISub(this.x.redAdd(this.x)), + a = i.redMul(this.x.redSub(o)).redISub(this.y) + return this.curve.point(o, a) + }), + (c.prototype.getX = function () { + return this.x.fromRed() + }), + (c.prototype.getY = function () { + return this.y.fromRed() + }), + (c.prototype.mul = function (e) { + return ( + (e = new i(e, 16)), + this.isInfinity() + ? this + : this._hasDoubles(e) + ? this.curve._fixedNafMul(this, e) + : this.curve.endo + ? this.curve._endoWnafMulAdd([this], [e]) + : this.curve._wnafMul(this, e) + ) + }), + (c.prototype.mulAdd = function (e, t, r) { + var n = [this, t], + i = [e, r] + return this.curve.endo ? this.curve._endoWnafMulAdd(n, i) : this.curve._wnafMulAdd(1, n, i, 2) + }), + (c.prototype.jmulAdd = function (e, t, r) { + var n = [this, t], + i = [e, r] + return this.curve.endo ? this.curve._endoWnafMulAdd(n, i, !0) : this.curve._wnafMulAdd(1, n, i, 2, !0) + }), + (c.prototype.eq = function (e) { + return this === e || (this.inf === e.inf && (this.inf || (0 === this.x.cmp(e.x) && 0 === this.y.cmp(e.y)))) + }), + (c.prototype.neg = function (e) { + if (this.inf) return this + var t = this.curve.point(this.x, this.y.redNeg()) + if (e && this.precomputed) { + var r = this.precomputed, + n = function (e) { + return e.neg() + } + t.precomputed = { + naf: r.naf && { wnd: r.naf.wnd, points: r.naf.points.map(n) }, + doubles: r.doubles && { step: r.doubles.step, points: r.doubles.points.map(n) }, + } + } + return t + }), + (c.prototype.toJ = function () { + return this.inf ? this.curve.jpoint(null, null, null) : this.curve.jpoint(this.x, this.y, this.curve.one) + }), + o(f, a.BasePoint), + (u.prototype.jpoint = function (e, t, r) { + return new f(this, e, t, r) + }), + (f.prototype.toP = function () { + if (this.isInfinity()) return this.curve.point(null, null) + var e = this.z.redInvm(), + t = e.redSqr(), + r = this.x.redMul(t), + n = this.y.redMul(t).redMul(e) + return this.curve.point(r, n) + }), + (f.prototype.neg = function () { + return this.curve.jpoint(this.x, this.y.redNeg(), this.z) + }), + (f.prototype.add = function (e) { + if (this.isInfinity()) return e + if (e.isInfinity()) return this + var t = e.z.redSqr(), + r = this.z.redSqr(), + n = this.x.redMul(t), + i = e.x.redMul(r), + o = this.y.redMul(t.redMul(e.z)), + a = e.y.redMul(r.redMul(this.z)), + s = n.redSub(i), + u = o.redSub(a) + if (0 === s.cmpn(0)) return 0 !== u.cmpn(0) ? this.curve.jpoint(null, null, null) : this.dbl() + var c = s.redSqr(), + f = c.redMul(s), + l = n.redMul(c), + d = u.redSqr().redIAdd(f).redISub(l).redISub(l), + h = u.redMul(l.redISub(d)).redISub(o.redMul(f)), + p = this.z.redMul(e.z).redMul(s) + return this.curve.jpoint(d, h, p) + }), + (f.prototype.mixedAdd = function (e) { + if (this.isInfinity()) return e.toJ() + if (e.isInfinity()) return this + var t = this.z.redSqr(), + r = this.x, + n = e.x.redMul(t), + i = this.y, + o = e.y.redMul(t).redMul(this.z), + a = r.redSub(n), + s = i.redSub(o) + if (0 === a.cmpn(0)) return 0 !== s.cmpn(0) ? this.curve.jpoint(null, null, null) : this.dbl() + var u = a.redSqr(), + c = u.redMul(a), + f = r.redMul(u), + l = s.redSqr().redIAdd(c).redISub(f).redISub(f), + d = s.redMul(f.redISub(l)).redISub(i.redMul(c)), + h = this.z.redMul(a) + return this.curve.jpoint(l, d, h) + }), + (f.prototype.dblp = function (e) { + if (0 === e) return this + if (this.isInfinity()) return this + if (!e) return this.dbl() + var t + if (this.curve.zeroA || this.curve.threeA) { + var r = this + for (t = 0; t < e; t++) r = r.dbl() + return r + } + var n = this.curve.a, + i = this.curve.tinv, + o = this.x, + a = this.y, + s = this.z, + u = s.redSqr().redSqr(), + c = a.redAdd(a) + for (t = 0; t < e; t++) { + var f = o.redSqr(), + l = c.redSqr(), + d = l.redSqr(), + h = f.redAdd(f).redIAdd(f).redIAdd(n.redMul(u)), + p = o.redMul(l), + y = h.redSqr().redISub(p.redAdd(p)), + g = p.redISub(y), + b = h.redMul(g) + b = b.redIAdd(b).redISub(d) + var m = c.redMul(s) + ;(t + 1 < e && (u = u.redMul(d)), (o = y), (s = m), (c = b)) + } + return this.curve.jpoint(o, c.redMul(i), s) + }), + (f.prototype.dbl = function () { + return this.isInfinity() ? this : this.curve.zeroA ? this._zeroDbl() : this.curve.threeA ? this._threeDbl() : this._dbl() + }), + (f.prototype._zeroDbl = function () { + var e, t, r + if (this.zOne) { + var n = this.x.redSqr(), + i = this.y.redSqr(), + o = i.redSqr(), + a = this.x.redAdd(i).redSqr().redISub(n).redISub(o) + a = a.redIAdd(a) + var s = n.redAdd(n).redIAdd(n), + u = s.redSqr().redISub(a).redISub(a), + c = o.redIAdd(o) + ;((c = (c = c.redIAdd(c)).redIAdd(c)), (e = u), (t = s.redMul(a.redISub(u)).redISub(c)), (r = this.y.redAdd(this.y))) + } else { + var f = this.x.redSqr(), + l = this.y.redSqr(), + d = l.redSqr(), + h = this.x.redAdd(l).redSqr().redISub(f).redISub(d) + h = h.redIAdd(h) + var p = f.redAdd(f).redIAdd(f), + y = p.redSqr(), + g = d.redIAdd(d) + ;((g = (g = g.redIAdd(g)).redIAdd(g)), + (e = y.redISub(h).redISub(h)), + (t = p.redMul(h.redISub(e)).redISub(g)), + (r = (r = this.y.redMul(this.z)).redIAdd(r))) + } + return this.curve.jpoint(e, t, r) + }), + (f.prototype._threeDbl = function () { + var e, t, r + if (this.zOne) { + var n = this.x.redSqr(), + i = this.y.redSqr(), + o = i.redSqr(), + a = this.x.redAdd(i).redSqr().redISub(n).redISub(o) + a = a.redIAdd(a) + var s = n.redAdd(n).redIAdd(n).redIAdd(this.curve.a), + u = s.redSqr().redISub(a).redISub(a) + e = u + var c = o.redIAdd(o) + ;((c = (c = c.redIAdd(c)).redIAdd(c)), (t = s.redMul(a.redISub(u)).redISub(c)), (r = this.y.redAdd(this.y))) + } else { + var f = this.z.redSqr(), + l = this.y.redSqr(), + d = this.x.redMul(l), + h = this.x.redSub(f).redMul(this.x.redAdd(f)) + h = h.redAdd(h).redIAdd(h) + var p = d.redIAdd(d), + y = (p = p.redIAdd(p)).redAdd(p) + ;((e = h.redSqr().redISub(y)), (r = this.y.redAdd(this.z).redSqr().redISub(l).redISub(f))) + var g = l.redSqr() + ;((g = (g = (g = g.redIAdd(g)).redIAdd(g)).redIAdd(g)), (t = h.redMul(p.redISub(e)).redISub(g))) + } + return this.curve.jpoint(e, t, r) + }), + (f.prototype._dbl = function () { + var e = this.curve.a, + t = this.x, + r = this.y, + n = this.z, + i = n.redSqr().redSqr(), + o = t.redSqr(), + a = r.redSqr(), + s = o.redAdd(o).redIAdd(o).redIAdd(e.redMul(i)), + u = t.redAdd(t), + c = (u = u.redIAdd(u)).redMul(a), + f = s.redSqr().redISub(c.redAdd(c)), + l = c.redISub(f), + d = a.redSqr() + d = (d = (d = d.redIAdd(d)).redIAdd(d)).redIAdd(d) + var h = s.redMul(l).redISub(d), + p = r.redAdd(r).redMul(n) + return this.curve.jpoint(f, h, p) + }), + (f.prototype.trpl = function () { + if (!this.curve.zeroA) return this.dbl().add(this) + var e = this.x.redSqr(), + t = this.y.redSqr(), + r = this.z.redSqr(), + n = t.redSqr(), + i = e.redAdd(e).redIAdd(e), + o = i.redSqr(), + a = this.x.redAdd(t).redSqr().redISub(e).redISub(n), + s = (a = (a = (a = a.redIAdd(a)).redAdd(a).redIAdd(a)).redISub(o)).redSqr(), + u = n.redIAdd(n) + u = (u = (u = u.redIAdd(u)).redIAdd(u)).redIAdd(u) + var c = i.redIAdd(a).redSqr().redISub(o).redISub(s).redISub(u), + f = t.redMul(c) + f = (f = f.redIAdd(f)).redIAdd(f) + var l = this.x.redMul(s).redISub(f) + l = (l = l.redIAdd(l)).redIAdd(l) + var d = this.y.redMul(c.redMul(u.redISub(c)).redISub(a.redMul(s))) + d = (d = (d = d.redIAdd(d)).redIAdd(d)).redIAdd(d) + var h = this.z.redAdd(a).redSqr().redISub(r).redISub(s) + return this.curve.jpoint(l, d, h) + }), + (f.prototype.mul = function (e, t) { + return ((e = new i(e, t)), this.curve._wnafMul(this, e)) + }), + (f.prototype.eq = function (e) { + if ('affine' === e.type) return this.eq(e.toJ()) + if (this === e) return !0 + var t = this.z.redSqr(), + r = e.z.redSqr() + if (0 !== this.x.redMul(r).redISub(e.x.redMul(t)).cmpn(0)) return !1 + var n = t.redMul(this.z), + i = r.redMul(e.z) + return 0 === this.y.redMul(i).redISub(e.y.redMul(n)).cmpn(0) + }), + (f.prototype.eqXToP = function (e) { + var t = this.z.redSqr(), + r = e.toRed(this.curve.red).redMul(t) + if (0 === this.x.cmp(r)) return !0 + for (var n = e.clone(), i = this.curve.redN.redMul(t); ; ) { + if ((n.iadd(this.curve.n), n.cmp(this.curve.p) >= 0)) return !1 + if ((r.redIAdd(i), 0 === this.x.cmp(r))) return !0 + } + }), + (f.prototype.inspect = function () { + return this.isInfinity() + ? '<EC JPoint Infinity>' + : '<EC JPoint x: ' + this.x.toString(16, 2) + ' y: ' + this.y.toString(16, 2) + ' z: ' + this.z.toString(16, 2) + '>' + }), + (f.prototype.isInfinity = function () { + return 0 === this.z.cmpn(0) + })) + }, + 51736: (e, t, r) => { + 'use strict' + var n, + i = t, + o = r(58925), + a = r(89751), + s = r(60218).assert + function u(e) { + ;('short' === e.type + ? (this.curve = new a.short(e)) + : 'edwards' === e.type + ? (this.curve = new a.edwards(e)) + : (this.curve = new a.mont(e)), + (this.g = this.curve.g), + (this.n = this.curve.n), + (this.hash = e.hash), + s(this.g.validate(), 'Invalid curve'), + s(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O')) + } + function c(e, t) { + Object.defineProperty(i, e, { + configurable: !0, + enumerable: !0, + get: function () { + var r = new u(t) + return (Object.defineProperty(i, e, { configurable: !0, enumerable: !0, value: r }), r) + }, + }) + } + ;((i.PresetCurve = u), + c('p192', { + type: 'short', + prime: 'p192', + p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff', + a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc', + b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1', + n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831', + hash: o.sha256, + gRed: !1, + g: ['188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012', '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811'], + }), + c('p224', { + type: 'short', + prime: 'p224', + p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001', + a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe', + b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4', + n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d', + hash: o.sha256, + gRed: !1, + g: ['b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21', 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34'], + }), + c('p256', { + type: 'short', + prime: null, + p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff', + a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc', + b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b', + n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551', + hash: o.sha256, + gRed: !1, + g: [ + '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296', + '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5', + ], + }), + c('p384', { + type: 'short', + prime: null, + p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff', + a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc', + b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef', + n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973', + hash: o.sha384, + gRed: !1, + g: [ + 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7', + '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f', + ], + }), + c('p521', { + type: 'short', + prime: null, + p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff', + a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc', + b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00', + n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409', + hash: o.sha512, + gRed: !1, + g: [ + '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66', + '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650', + ], + }), + c('curve25519', { + type: 'mont', + prime: 'p25519', + p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed', + a: '76d06', + b: '1', + n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed', + hash: o.sha256, + gRed: !1, + g: ['9'], + }), + c('ed25519', { + type: 'edwards', + prime: 'p25519', + p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed', + a: '-1', + c: '1', + d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3', + n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed', + hash: o.sha256, + gRed: !1, + g: [ + '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a', + '6666666666666666666666666666666666666666666666666666666666666658', + ], + })) + try { + n = r(61960) + } catch (e) { + n = void 0 + } + c('secp256k1', { + type: 'short', + prime: 'k256', + p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f', + a: '0', + b: '7', + n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141', + h: '1', + hash: o.sha256, + beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee', + lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72', + basis: [ + { a: '3086d221a7d46bcde86c90e49284eb15', b: '-e4437ed6010e88286f547fa90abfe4c3' }, + { a: '114ca50f7a8e2f3f657c1108d9d44cfd8', b: '3086d221a7d46bcde86c90e49284eb15' }, + ], + gRed: !1, + g: [ + '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798', + '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8', + n, + ], + }) + }, + 68252: (e, t, r) => { + 'use strict' + var n = r(10660), + i = r(26941), + o = r(60218), + a = r(51736), + s = r(72486), + u = o.assert, + c = r(33257), + f = r(25296) + function l(e) { + if (!(this instanceof l)) return new l(e) + ;('string' == typeof e && (u(Object.prototype.hasOwnProperty.call(a, e), 'Unknown curve ' + e), (e = a[e])), + e instanceof a.PresetCurve && (e = { curve: e }), + (this.curve = e.curve.curve), + (this.n = this.curve.n), + (this.nh = this.n.ushrn(1)), + (this.g = this.curve.g), + (this.g = e.curve.g), + this.g.precompute(e.curve.n.bitLength() + 1), + (this.hash = e.hash || e.curve.hash)) + } + ;((e.exports = l), + (l.prototype.keyPair = function (e) { + return new c(this, e) + }), + (l.prototype.keyFromPrivate = function (e, t) { + return c.fromPrivate(this, e, t) + }), + (l.prototype.keyFromPublic = function (e, t) { + return c.fromPublic(this, e, t) + }), + (l.prototype.genKeyPair = function (e) { + e || (e = {}) + for ( + var t = new i({ + hash: this.hash, + pers: e.pers, + persEnc: e.persEnc || 'utf8', + entropy: e.entropy || s(this.hash.hmacStrength), + entropyEnc: (e.entropy && e.entropyEnc) || 'utf8', + nonce: this.n.toArray(), + }), + r = this.n.byteLength(), + o = this.n.sub(new n(2)); + ; + ) { + var a = new n(t.generate(r)) + if (!(a.cmp(o) > 0)) return (a.iaddn(1), this.keyFromPrivate(a)) + } + }), + (l.prototype._truncateToN = function (e, t) { + var r = 8 * e.byteLength() - this.n.bitLength() + return (r > 0 && (e = e.ushrn(r)), !t && e.cmp(this.n) >= 0 ? e.sub(this.n) : e) + }), + (l.prototype.sign = function (e, t, r, o) { + ;('object' == typeof r && ((o = r), (r = null)), o || (o = {}), (t = this.keyFromPrivate(t, r)), (e = this._truncateToN(new n(e, 16)))) + for ( + var a = this.n.byteLength(), + s = t.getPrivate().toArray('be', a), + u = e.toArray('be', a), + c = new i({ hash: this.hash, entropy: s, nonce: u, pers: o.pers, persEnc: o.persEnc || 'utf8' }), + l = this.n.sub(new n(1)), + d = 0; + ; + d++ + ) { + var h = o.k ? o.k(d) : new n(c.generate(this.n.byteLength())) + if (!((h = this._truncateToN(h, !0)).cmpn(1) <= 0 || h.cmp(l) >= 0)) { + var p = this.g.mul(h) + if (!p.isInfinity()) { + var y = p.getX(), + g = y.umod(this.n) + if (0 !== g.cmpn(0)) { + var b = h.invm(this.n).mul(g.mul(t.getPrivate()).iadd(e)) + if (0 !== (b = b.umod(this.n)).cmpn(0)) { + var m = (p.getY().isOdd() ? 1 : 0) | (0 !== y.cmp(g) ? 2 : 0) + return (o.canonical && b.cmp(this.nh) > 0 && ((b = this.n.sub(b)), (m ^= 1)), new f({ r: g, s: b, recoveryParam: m })) + } + } + } + } + } + }), + (l.prototype.verify = function (e, t, r, i) { + ;((e = this._truncateToN(new n(e, 16))), (r = this.keyFromPublic(r, i))) + var o = (t = new f(t, 'hex')).r, + a = t.s + if (o.cmpn(1) < 0 || o.cmp(this.n) >= 0) return !1 + if (a.cmpn(1) < 0 || a.cmp(this.n) >= 0) return !1 + var s, + u = a.invm(this.n), + c = u.mul(e).umod(this.n), + l = u.mul(o).umod(this.n) + return this.curve._maxwellTrick + ? !(s = this.g.jmulAdd(c, r.getPublic(), l)).isInfinity() && s.eqXToP(o) + : !(s = this.g.mulAdd(c, r.getPublic(), l)).isInfinity() && 0 === s.getX().umod(this.n).cmp(o) + }), + (l.prototype.recoverPubKey = function (e, t, r, i) { + ;(u((3 & r) === r, 'The recovery param is more than two bits'), (t = new f(t, i))) + var o = this.n, + a = new n(e), + s = t.r, + c = t.s, + l = 1 & r, + d = r >> 1 + if (s.cmp(this.curve.p.umod(this.curve.n)) >= 0 && d) throw new Error('Unable to find sencond key candinate') + s = d ? this.curve.pointFromX(s.add(this.curve.n), l) : this.curve.pointFromX(s, l) + var h = t.r.invm(o), + p = o.sub(a).mul(h).umod(o), + y = c.mul(h).umod(o) + return this.g.mulAdd(p, s, y) + }), + (l.prototype.getKeyRecoveryParam = function (e, t, r, n) { + if (null !== (t = new f(t, n)).recoveryParam) return t.recoveryParam + for (var i = 0; i < 4; i++) { + var o + try { + o = this.recoverPubKey(e, t, i) + } catch (e) { + continue + } + if (o.eq(r)) return i + } + throw new Error('Unable to find valid recovery factor') + })) + }, + 33257: (e, t, r) => { + 'use strict' + var n = r(10660), + i = r(60218).assert + function o(e, t) { + ;((this.ec = e), + (this.priv = null), + (this.pub = null), + t.priv && this._importPrivate(t.priv, t.privEnc), + t.pub && this._importPublic(t.pub, t.pubEnc)) + } + ;((e.exports = o), + (o.fromPublic = function (e, t, r) { + return t instanceof o ? t : new o(e, { pub: t, pubEnc: r }) + }), + (o.fromPrivate = function (e, t, r) { + return t instanceof o ? t : new o(e, { priv: t, privEnc: r }) + }), + (o.prototype.validate = function () { + var e = this.getPublic() + return e.isInfinity() + ? { result: !1, reason: 'Invalid public key' } + : e.validate() + ? e.mul(this.ec.curve.n).isInfinity() + ? { result: !0, reason: null } + : { result: !1, reason: 'Public key * N != O' } + : { result: !1, reason: 'Public key is not a point' } + }), + (o.prototype.getPublic = function (e, t) { + return ( + 'string' == typeof e && ((t = e), (e = null)), + this.pub || (this.pub = this.ec.g.mul(this.priv)), + t ? this.pub.encode(t, e) : this.pub + ) + }), + (o.prototype.getPrivate = function (e) { + return 'hex' === e ? this.priv.toString(16, 2) : this.priv + }), + (o.prototype._importPrivate = function (e, t) { + ;((this.priv = new n(e, t || 16)), (this.priv = this.priv.umod(this.ec.curve.n))) + }), + (o.prototype._importPublic = function (e, t) { + if (e.x || e.y) + return ( + 'mont' === this.ec.curve.type + ? i(e.x, 'Need x coordinate') + : ('short' !== this.ec.curve.type && 'edwards' !== this.ec.curve.type) || i(e.x && e.y, 'Need both x and y coordinate'), + void (this.pub = this.ec.curve.point(e.x, e.y)) + ) + this.pub = this.ec.curve.decodePoint(e, t) + }), + (o.prototype.derive = function (e) { + return (e.validate() || i(e.validate(), 'public point not validated'), e.mul(this.priv).getX()) + }), + (o.prototype.sign = function (e, t, r) { + return this.ec.sign(e, this, t, r) + }), + (o.prototype.verify = function (e, t) { + return this.ec.verify(e, t, this) + }), + (o.prototype.inspect = function () { + return '<Key priv: ' + (this.priv && this.priv.toString(16, 2)) + ' pub: ' + (this.pub && this.pub.inspect()) + ' >' + })) + }, + 25296: (e, t, r) => { + 'use strict' + var n = r(10660), + i = r(60218), + o = i.assert + function a(e, t) { + if (e instanceof a) return e + this._importDER(e, t) || + (o(e.r && e.s, 'Signature without r or s'), + (this.r = new n(e.r, 16)), + (this.s = new n(e.s, 16)), + void 0 === e.recoveryParam ? (this.recoveryParam = null) : (this.recoveryParam = e.recoveryParam)) + } + function s() { + this.place = 0 + } + function u(e, t) { + var r = e[t.place++] + if (!(128 & r)) return r + var n = 15 & r + if (0 === n || n > 4) return !1 + for (var i = 0, o = 0, a = t.place; o < n; o++, a++) ((i <<= 8), (i |= e[a]), (i >>>= 0)) + return !(i <= 127) && ((t.place = a), i) + } + function c(e) { + for (var t = 0, r = e.length - 1; !e[t] && !(128 & e[t + 1]) && t < r; ) t++ + return 0 === t ? e : e.slice(t) + } + function f(e, t) { + if (t < 128) e.push(t) + else { + var r = 1 + ((Math.log(t) / Math.LN2) >>> 3) + for (e.push(128 | r); --r; ) e.push((t >>> (r << 3)) & 255) + e.push(t) + } + } + ;((e.exports = a), + (a.prototype._importDER = function (e, t) { + e = i.toArray(e, t) + var r = new s() + if (48 !== e[r.place++]) return !1 + var o = u(e, r) + if (!1 === o) return !1 + if (o + r.place !== e.length) return !1 + if (2 !== e[r.place++]) return !1 + var a = u(e, r) + if (!1 === a) return !1 + var c = e.slice(r.place, a + r.place) + if (((r.place += a), 2 !== e[r.place++])) return !1 + var f = u(e, r) + if (!1 === f) return !1 + if (e.length !== f + r.place) return !1 + var l = e.slice(r.place, f + r.place) + if (0 === c[0]) { + if (!(128 & c[1])) return !1 + c = c.slice(1) + } + if (0 === l[0]) { + if (!(128 & l[1])) return !1 + l = l.slice(1) + } + return ((this.r = new n(c)), (this.s = new n(l)), (this.recoveryParam = null), !0) + }), + (a.prototype.toDER = function (e) { + var t = this.r.toArray(), + r = this.s.toArray() + for (128 & t[0] && (t = [0].concat(t)), 128 & r[0] && (r = [0].concat(r)), t = c(t), r = c(r); !(r[0] || 128 & r[1]); ) r = r.slice(1) + var n = [2] + ;(f(n, t.length), (n = n.concat(t)).push(2), f(n, r.length)) + var o = n.concat(r), + a = [48] + return (f(a, o.length), (a = a.concat(o)), i.encode(a, e)) + })) + }, + 97751: (e, t, r) => { + 'use strict' + var n = r(58925), + i = r(51736), + o = r(60218), + a = o.assert, + s = o.parseBytes, + u = r(94830), + c = r(2676) + function f(e) { + if ((a('ed25519' === e, 'only tested with ed25519 so far'), !(this instanceof f))) return new f(e) + ;((e = i[e].curve), + (this.curve = e), + (this.g = e.g), + this.g.precompute(e.n.bitLength() + 1), + (this.pointClass = e.point().constructor), + (this.encodingLength = Math.ceil(e.n.bitLength() / 8)), + (this.hash = n.sha512)) + } + ;((e.exports = f), + (f.prototype.sign = function (e, t) { + e = s(e) + var r = this.keyFromSecret(t), + n = this.hashInt(r.messagePrefix(), e), + i = this.g.mul(n), + o = this.encodePoint(i), + a = this.hashInt(o, r.pubBytes(), e).mul(r.priv()), + u = n.add(a).umod(this.curve.n) + return this.makeSignature({ R: i, S: u, Rencoded: o }) + }), + (f.prototype.verify = function (e, t, r) { + ;((e = s(e)), (t = this.makeSignature(t))) + var n = this.keyFromPublic(r), + i = this.hashInt(t.Rencoded(), n.pubBytes(), e), + o = this.g.mul(t.S()) + return t.R().add(n.pub().mul(i)).eq(o) + }), + (f.prototype.hashInt = function () { + for (var e = this.hash(), t = 0; t < arguments.length; t++) e.update(arguments[t]) + return o.intFromLE(e.digest()).umod(this.curve.n) + }), + (f.prototype.keyFromPublic = function (e) { + return u.fromPublic(this, e) + }), + (f.prototype.keyFromSecret = function (e) { + return u.fromSecret(this, e) + }), + (f.prototype.makeSignature = function (e) { + return e instanceof c ? e : new c(this, e) + }), + (f.prototype.encodePoint = function (e) { + var t = e.getY().toArray('le', this.encodingLength) + return ((t[this.encodingLength - 1] |= e.getX().isOdd() ? 128 : 0), t) + }), + (f.prototype.decodePoint = function (e) { + var t = (e = o.parseBytes(e)).length - 1, + r = e.slice(0, t).concat(-129 & e[t]), + n = 0 != (128 & e[t]), + i = o.intFromLE(r) + return this.curve.pointFromY(i, n) + }), + (f.prototype.encodeInt = function (e) { + return e.toArray('le', this.encodingLength) + }), + (f.prototype.decodeInt = function (e) { + return o.intFromLE(e) + }), + (f.prototype.isPoint = function (e) { + return e instanceof this.pointClass + })) + }, + 94830: (e, t, r) => { + 'use strict' + var n = r(60218), + i = n.assert, + o = n.parseBytes, + a = n.cachedProperty + function s(e, t) { + ;((this.eddsa = e), (this._secret = o(t.secret)), e.isPoint(t.pub) ? (this._pub = t.pub) : (this._pubBytes = o(t.pub))) + } + ;((s.fromPublic = function (e, t) { + return t instanceof s ? t : new s(e, { pub: t }) + }), + (s.fromSecret = function (e, t) { + return t instanceof s ? t : new s(e, { secret: t }) + }), + (s.prototype.secret = function () { + return this._secret + }), + a(s, 'pubBytes', function () { + return this.eddsa.encodePoint(this.pub()) + }), + a(s, 'pub', function () { + return this._pubBytes ? this.eddsa.decodePoint(this._pubBytes) : this.eddsa.g.mul(this.priv()) + }), + a(s, 'privBytes', function () { + var e = this.eddsa, + t = this.hash(), + r = e.encodingLength - 1, + n = t.slice(0, e.encodingLength) + return ((n[0] &= 248), (n[r] &= 127), (n[r] |= 64), n) + }), + a(s, 'priv', function () { + return this.eddsa.decodeInt(this.privBytes()) + }), + a(s, 'hash', function () { + return this.eddsa.hash().update(this.secret()).digest() + }), + a(s, 'messagePrefix', function () { + return this.hash().slice(this.eddsa.encodingLength) + }), + (s.prototype.sign = function (e) { + return (i(this._secret, 'KeyPair can only verify'), this.eddsa.sign(e, this)) + }), + (s.prototype.verify = function (e, t) { + return this.eddsa.verify(e, t, this) + }), + (s.prototype.getSecret = function (e) { + return (i(this._secret, 'KeyPair is public only'), n.encode(this.secret(), e)) + }), + (s.prototype.getPublic = function (e) { + return n.encode(this.pubBytes(), e) + }), + (e.exports = s)) + }, + 2676: (e, t, r) => { + 'use strict' + var n = r(10660), + i = r(60218), + o = i.assert, + a = i.cachedProperty, + s = i.parseBytes + function u(e, t) { + ;((this.eddsa = e), + 'object' != typeof t && (t = s(t)), + Array.isArray(t) && (t = { R: t.slice(0, e.encodingLength), S: t.slice(e.encodingLength) }), + o(t.R && t.S, 'Signature without R or S'), + e.isPoint(t.R) && (this._R = t.R), + t.S instanceof n && (this._S = t.S), + (this._Rencoded = Array.isArray(t.R) ? t.R : t.Rencoded), + (this._Sencoded = Array.isArray(t.S) ? t.S : t.Sencoded)) + } + ;(a(u, 'S', function () { + return this.eddsa.decodeInt(this.Sencoded()) + }), + a(u, 'R', function () { + return this.eddsa.decodePoint(this.Rencoded()) + }), + a(u, 'Rencoded', function () { + return this.eddsa.encodePoint(this.R()) + }), + a(u, 'Sencoded', function () { + return this.eddsa.encodeInt(this.S()) + }), + (u.prototype.toBytes = function () { + return this.Rencoded().concat(this.Sencoded()) + }), + (u.prototype.toHex = function () { + return i.encode(this.toBytes(), 'hex').toUpperCase() + }), + (e.exports = u)) + }, + 61960: (e) => { + e.exports = { + doubles: { + step: 4, + points: [ + [ + 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a', + 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821', + ], + [ + '8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508', + '11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf', + ], + [ + '175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739', + 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695', + ], + ['363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640', '4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9'], + [ + '8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c', + '4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36', + ], + [ + '723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda', + '96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f', + ], + [ + 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa', + '5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999', + ], + [ + '100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0', + 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09', + ], + [ + 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d', + '9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d', + ], + [ + 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d', + 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088', + ], + [ + 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1', + '9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d', + ], + [ + '53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0', + '5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8', + ], + [ + '8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047', + '10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a', + ], + [ + '385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862', + '283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453', + ], + ['6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7', '7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160'], + [ + '3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd', + '56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0', + ], + [ + '85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83', + '7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6', + ], + ['948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a', '53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589'], + [ + '6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8', + 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17', + ], + [ + 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d', + '4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda', + ], + [ + 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725', + '7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd', + ], + [ + '213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754', + '4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2', + ], + [ + '4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c', + '17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6', + ], + [ + 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6', + '6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f', + ], + [ + '76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39', + 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01', + ], + [ + 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891', + '893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3', + ], + [ + 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b', + 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f', + ], + [ + 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03', + '2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7', + ], + [ + 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d', + 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78', + ], + [ + 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070', + '7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1', + ], + ['90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4', 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150'], + [ + '8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da', + '662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82', + ], + [ + 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11', + '1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc', + ], + [ + '8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e', + 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b', + ], + [ + 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41', + '2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51', + ], + ['b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef', '67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45'], + [ + 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8', + 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120', + ], + [ + '324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d', + '648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84', + ], + ['4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96', '35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d'], + [ + '9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd', + 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d', + ], + [ + '6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5', + '9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8', + ], + [ + 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266', + '40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8', + ], + [ + '7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71', + '34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac', + ], + ['928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac', 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f'], + [ + '85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751', + '1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962', + ], + [ + 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e', + '493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907', + ], + [ + '827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241', + 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec', + ], + [ + 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3', + 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d', + ], + [ + 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f', + '4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414', + ], + [ + '1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19', + 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd', + ], + [ + '146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be', + 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0', + ], + [ + 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9', + '6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811', + ], + [ + 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2', + '8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1', + ], + [ + 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13', + '7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c', + ], + [ + '174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c', + 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73', + ], + [ + '959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba', + '2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd', + ], + [ + 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151', + 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405', + ], + [ + '64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073', + 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589', + ], + [ + '8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458', + '38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e', + ], + [ + '13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b', + '69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27', + ], + ['bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366', 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1'], + [ + '8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa', + '40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482', + ], + ['8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0', '620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945'], + [ + 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787', + '7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573', + ], + [ + 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e', + 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82', + ], + ], + }, + naf: { + wnd: 7, + points: [ + [ + 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9', + '388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672', + ], + [ + '2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4', + 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6', + ], + [ + '5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc', + '6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da', + ], + [ + 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe', + 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37', + ], + [ + '774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb', + 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b', + ], + ['f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8', 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81'], + [ + 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e', + '581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58', + ], + [ + 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34', + '4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77', + ], + [ + '2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c', + '85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a', + ], + [ + '352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5', + '321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c', + ], + ['2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f', '2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67'], + [ + '9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714', + '73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402', + ], + [ + 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729', + 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55', + ], + [ + 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db', + '2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482', + ], + [ + '6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4', + 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82', + ], + [ + '1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5', + 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396', + ], + ['605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479', '2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49'], + [ + '62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d', + '80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf', + ], + [ + '80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f', + '1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a', + ], + ['7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb', 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7'], + [ + 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9', + 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933', + ], + ['49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963', '758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a'], + [ + '77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74', + '958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6', + ], + [ + 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530', + 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37', + ], + [ + '463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b', + '5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e', + ], + [ + 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247', + 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6', + ], + [ + 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1', + 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476', + ], + [ + '2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120', + '4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40', + ], + ['7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435', '91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61'], + ['754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18', '673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683'], + [ + 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8', + '59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5', + ], + [ + '186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb', + '3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b', + ], + [ + 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f', + '55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417', + ], + [ + '5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143', + 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868', + ], + [ + '290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba', + 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a', + ], + [ + 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45', + 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6', + ], + [ + '766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a', + '744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996', + ], + [ + '59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e', + 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e', + ], + [ + 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8', + 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d', + ], + [ + '7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c', + '30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2', + ], + [ + '948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519', + 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e', + ], + [ + '7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab', + '100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437', + ], + [ + '3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca', + 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311', + ], + [ + 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf', + '8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4', + ], + [ + '1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610', + '68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575', + ], + [ + '733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4', + 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d', + ], + [ + '15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c', + 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d', + ], + [ + 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940', + 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629', + ], + ['e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980', 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06'], + [ + '311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3', + '66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374', + ], + ['34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf', '9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee'], + [ + 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63', + '4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1', + ], + [ + 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448', + 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b', + ], + [ + '32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf', + '5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661', + ], + [ + '7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5', + '8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6', + ], + [ + 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6', + '8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e', + ], + [ + '16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5', + '5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d', + ], + [ + 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99', + 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc', + ], + ['78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51', 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4'], + [ + '494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5', + '42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c', + ], + [ + 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5', + '204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b', + ], + ['c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997', '4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913'], + ['841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881', '73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154'], + [ + '5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5', + '39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865', + ], + [ + '36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66', + 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc', + ], + ['336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726', 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224'], + [ + '8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede', + '6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e', + ], + ['1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94', '60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6'], + [ + '85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31', + '3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511', + ], + ['29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51', 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b'], + [ + 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252', + 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2', + ], + ['4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5', 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c'], + [ + 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b', + '6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3', + ], + [ + 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4', + '322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d', + ], + [ + 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f', + '6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700', + ], + ['e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889', '2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4'], + [ + '591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246', + 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196', + ], + [ + '11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984', + '998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4', + ], + [ + '3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a', + 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257', + ], + [ + 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030', + 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13', + ], + [ + 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197', + '6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096', + ], + ['c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593', 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38'], + ['a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef', '21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f'], + [ + '347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38', + '60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448', + ], + [ + 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a', + '49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a', + ], + [ + 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111', + '5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4', + ], + [ + '4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502', + '7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437', + ], + [ + '3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea', + 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7', + ], + [ + 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26', + '8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d', + ], + [ + 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986', + '39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a', + ], + [ + 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e', + '62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54', + ], + [ + '48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4', + '25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77', + ], + [ + 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda', + 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517', + ], + [ + '6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859', + 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10', + ], + [ + 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f', + 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125', + ], + [ + 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c', + '6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e', + ], + [ + '13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942', + 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1', + ], + [ + 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a', + '1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2', + ], + [ + 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80', + '5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423', + ], + [ + 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d', + '438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8', + ], + [ + '8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1', + 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758', + ], + ['52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63', 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375'], + [ + 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352', + '6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d', + ], + [ + '7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193', + 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec', + ], + ['5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00', '9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0'], + [ + '32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58', + 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c', + ], + [ + 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7', + 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4', + ], + [ + '8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8', + 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f', + ], + [ + '4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e', + '67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649', + ], + ['3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d', 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826'], + [ + '674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b', + '299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5', + ], + [ + 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f', + 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87', + ], + [ + '30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6', + '462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b', + ], + [ + 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297', + '62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc', + ], + [ + '93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a', + '7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c', + ], + [ + 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c', + 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f', + ], + [ + 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52', + '4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a', + ], + [ + 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb', + 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46', + ], + [ + '463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065', + 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f', + ], + [ + '7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917', + '603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03', + ], + [ + '74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9', + 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08', + ], + [ + '30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3', + '553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8', + ], + ['9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57', '712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373'], + [ + '176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66', + 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3', + ], + [ + '75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8', + '9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8', + ], + [ + '809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721', + '9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1', + ], + [ + '1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180', + '4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9', + ], + ], + }, + } + }, + 60218: (e, t, r) => { + 'use strict' + var n = t, + i = r(10660), + o = r(44647), + a = r(91349) + ;((n.assert = o), + (n.toArray = a.toArray), + (n.zero2 = a.zero2), + (n.toHex = a.toHex), + (n.encode = a.encode), + (n.getNAF = function (e, t, r) { + var n = new Array(Math.max(e.bitLength(), r) + 1) + n.fill(0) + for (var i = 1 << (t + 1), o = e.clone(), a = 0; a < n.length; a++) { + var s, + u = o.andln(i - 1) + ;(o.isOdd() ? ((s = u > (i >> 1) - 1 ? (i >> 1) - u : u), o.isubn(s)) : (s = 0), (n[a] = s), o.iushrn(1)) + } + return n + }), + (n.getJSF = function (e, t) { + var r = [[], []] + ;((e = e.clone()), (t = t.clone())) + for (var n, i = 0, o = 0; e.cmpn(-i) > 0 || t.cmpn(-o) > 0; ) { + var a, + s, + u = (e.andln(3) + i) & 3, + c = (t.andln(3) + o) & 3 + ;(3 === u && (u = -1), + 3 === c && (c = -1), + (a = 0 == (1 & u) ? 0 : (3 != (n = (e.andln(7) + i) & 7) && 5 !== n) || 2 !== c ? u : -u), + r[0].push(a), + (s = 0 == (1 & c) ? 0 : (3 != (n = (t.andln(7) + o) & 7) && 5 !== n) || 2 !== u ? c : -c), + r[1].push(s), + 2 * i === a + 1 && (i = 1 - i), + 2 * o === s + 1 && (o = 1 - o), + e.iushrn(1), + t.iushrn(1)) + } + return r + }), + (n.cachedProperty = function (e, t, r) { + var n = '_' + t + e.prototype[t] = function () { + return void 0 !== this[n] ? this[n] : (this[n] = r.call(this)) + } + }), + (n.parseBytes = function (e) { + return 'string' == typeof e ? n.toArray(e, 'hex') : e + }), + (n.intFromLE = function (e) { + return new i(e, 'hex', 'le') + })) + }, + 49442: (e) => { + 'use strict' + function t(e, t) { + if (null == e) throw new TypeError('Cannot convert first argument to object') + for (var r = Object(e), n = 1; n < arguments.length; n++) { + var i = arguments[n] + if (null != i) + for (var o = Object.keys(Object(i)), a = 0, s = o.length; a < s; a++) { + var u = o[a], + c = Object.getOwnPropertyDescriptor(i, u) + void 0 !== c && c.enumerable && (r[u] = i[u]) + } + } + return r + } + e.exports = { + assign: t, + polyfill: function () { + Object.assign || Object.defineProperty(Object, 'assign', { enumerable: !1, configurable: !0, writable: !0, value: t }) + }, + } + }, + 67725: (e) => { + 'use strict' + var t, + r = 'object' == typeof Reflect ? Reflect : null, + n = + r && 'function' == typeof r.apply + ? r.apply + : function (e, t, r) { + return Function.prototype.apply.call(e, t, r) + } + t = + r && 'function' == typeof r.ownKeys + ? r.ownKeys + : Object.getOwnPropertySymbols + ? function (e) { + return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e)) + } + : function (e) { + return Object.getOwnPropertyNames(e) + } + var i = + Number.isNaN || + function (e) { + return e != e + } + function o() { + o.init.call(this) + } + ;((e.exports = o), + (e.exports.once = function (e, t) { + return new Promise(function (r, n) { + function i(r) { + ;(e.removeListener(t, o), n(r)) + } + function o() { + ;('function' == typeof e.removeListener && e.removeListener('error', i), r([].slice.call(arguments))) + } + ;(y(e, t, o, { once: !0 }), + 'error' !== t && + (function (e, t, r) { + 'function' == typeof e.on && y(e, 'error', t, { once: !0 }) + })(e, i)) + }) + }), + (o.EventEmitter = o), + (o.prototype._events = void 0), + (o.prototype._eventsCount = 0), + (o.prototype._maxListeners = void 0)) + var a = 10 + function s(e) { + if ('function' != typeof e) throw new TypeError('The "listener" argument must be of type Function. Received type ' + typeof e) + } + function u(e) { + return void 0 === e._maxListeners ? o.defaultMaxListeners : e._maxListeners + } + function c(e, t, r, n) { + var i, o, a, c + if ( + (s(r), + void 0 === (o = e._events) + ? ((o = e._events = Object.create(null)), (e._eventsCount = 0)) + : (void 0 !== o.newListener && (e.emit('newListener', t, r.listener ? r.listener : r), (o = e._events)), (a = o[t])), + void 0 === a) + ) + ((a = o[t] = r), ++e._eventsCount) + else if ( + ('function' == typeof a ? (a = o[t] = n ? [r, a] : [a, r]) : n ? a.unshift(r) : a.push(r), (i = u(e)) > 0 && a.length > i && !a.warned) + ) { + a.warned = !0 + var f = new Error( + 'Possible EventEmitter memory leak detected. ' + + a.length + + ' ' + + String(t) + + ' listeners added. Use emitter.setMaxListeners() to increase limit', + ) + ;((f.name = 'MaxListenersExceededWarning'), + (f.emitter = e), + (f.type = t), + (f.count = a.length), + (c = f), + console && console.warn && console.warn(c)) + } + return e + } + function f() { + if (!this.fired) + return ( + this.target.removeListener(this.type, this.wrapFn), + (this.fired = !0), + 0 === arguments.length ? this.listener.call(this.target) : this.listener.apply(this.target, arguments) + ) + } + function l(e, t, r) { + var n = { fired: !1, wrapFn: void 0, target: e, type: t, listener: r }, + i = f.bind(n) + return ((i.listener = r), (n.wrapFn = i), i) + } + function d(e, t, r) { + var n = e._events + if (void 0 === n) return [] + var i = n[t] + return void 0 === i + ? [] + : 'function' == typeof i + ? r + ? [i.listener || i] + : [i] + : r + ? (function (e) { + for (var t = new Array(e.length), r = 0; r < t.length; ++r) t[r] = e[r].listener || e[r] + return t + })(i) + : p(i, i.length) + } + function h(e) { + var t = this._events + if (void 0 !== t) { + var r = t[e] + if ('function' == typeof r) return 1 + if (void 0 !== r) return r.length + } + return 0 + } + function p(e, t) { + for (var r = new Array(t), n = 0; n < t; ++n) r[n] = e[n] + return r + } + function y(e, t, r, n) { + if ('function' == typeof e.on) n.once ? e.once(t, r) : e.on(t, r) + else { + if ('function' != typeof e.addEventListener) + throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type ' + typeof e) + e.addEventListener(t, function i(o) { + ;(n.once && e.removeEventListener(t, i), r(o)) + }) + } + } + ;(Object.defineProperty(o, 'defaultMaxListeners', { + enumerable: !0, + get: function () { + return a + }, + set: function (e) { + if ('number' != typeof e || e < 0 || i(e)) + throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received ' + e + '.') + a = e + }, + }), + (o.init = function () { + ;((void 0 !== this._events && this._events !== Object.getPrototypeOf(this)._events) || + ((this._events = Object.create(null)), (this._eventsCount = 0)), + (this._maxListeners = this._maxListeners || void 0)) + }), + (o.prototype.setMaxListeners = function (e) { + if ('number' != typeof e || e < 0 || i(e)) + throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received ' + e + '.') + return ((this._maxListeners = e), this) + }), + (o.prototype.getMaxListeners = function () { + return u(this) + }), + (o.prototype.emit = function (e) { + for (var t = [], r = 1; r < arguments.length; r++) t.push(arguments[r]) + var i = 'error' === e, + o = this._events + if (void 0 !== o) i = i && void 0 === o.error + else if (!i) return !1 + if (i) { + var a + if ((t.length > 0 && (a = t[0]), a instanceof Error)) throw a + var s = new Error('Unhandled error.' + (a ? ' (' + a.message + ')' : '')) + throw ((s.context = a), s) + } + var u = o[e] + if (void 0 === u) return !1 + if ('function' == typeof u) n(u, this, t) + else { + var c = u.length, + f = p(u, c) + for (r = 0; r < c; ++r) n(f[r], this, t) + } + return !0 + }), + (o.prototype.addListener = function (e, t) { + return c(this, e, t, !1) + }), + (o.prototype.on = o.prototype.addListener), + (o.prototype.prependListener = function (e, t) { + return c(this, e, t, !0) + }), + (o.prototype.once = function (e, t) { + return (s(t), this.on(e, l(this, e, t)), this) + }), + (o.prototype.prependOnceListener = function (e, t) { + return (s(t), this.prependListener(e, l(this, e, t)), this) + }), + (o.prototype.removeListener = function (e, t) { + var r, n, i, o, a + if ((s(t), void 0 === (n = this._events))) return this + if (void 0 === (r = n[e])) return this + if (r === t || r.listener === t) + 0 == --this._eventsCount + ? (this._events = Object.create(null)) + : (delete n[e], n.removeListener && this.emit('removeListener', e, r.listener || t)) + else if ('function' != typeof r) { + for (i = -1, o = r.length - 1; o >= 0; o--) + if (r[o] === t || r[o].listener === t) { + ;((a = r[o].listener), (i = o)) + break + } + if (i < 0) return this + ;(0 === i + ? r.shift() + : (function (e, t) { + for (; t + 1 < e.length; t++) e[t] = e[t + 1] + e.pop() + })(r, i), + 1 === r.length && (n[e] = r[0]), + void 0 !== n.removeListener && this.emit('removeListener', e, a || t)) + } + return this + }), + (o.prototype.off = o.prototype.removeListener), + (o.prototype.removeAllListeners = function (e) { + var t, r, n + if (void 0 === (r = this._events)) return this + if (void 0 === r.removeListener) + return ( + 0 === arguments.length + ? ((this._events = Object.create(null)), (this._eventsCount = 0)) + : void 0 !== r[e] && (0 == --this._eventsCount ? (this._events = Object.create(null)) : delete r[e]), + this + ) + if (0 === arguments.length) { + var i, + o = Object.keys(r) + for (n = 0; n < o.length; ++n) 'removeListener' !== (i = o[n]) && this.removeAllListeners(i) + return (this.removeAllListeners('removeListener'), (this._events = Object.create(null)), (this._eventsCount = 0), this) + } + if ('function' == typeof (t = r[e])) this.removeListener(e, t) + else if (void 0 !== t) for (n = t.length - 1; n >= 0; n--) this.removeListener(e, t[n]) + return this + }), + (o.prototype.listeners = function (e) { + return d(this, e, !0) + }), + (o.prototype.rawListeners = function (e) { + return d(this, e, !1) + }), + (o.listenerCount = function (e, t) { + return 'function' == typeof e.listenerCount ? e.listenerCount(t) : h.call(e, t) + }), + (o.prototype.listenerCount = h), + (o.prototype.eventNames = function () { + return this._eventsCount > 0 ? t(this._events) : [] + })) + }, + 94428: (e, t, r) => { + var n = r(59105).Buffer, + i = r(54659) + e.exports = function (e, t, r, o) { + if ((n.isBuffer(e) || (e = n.from(e, 'binary')), t && (n.isBuffer(t) || (t = n.from(t, 'binary')), 8 !== t.length))) + throw new RangeError('salt should be Buffer with 8 byte length') + for (var a = r / 8, s = n.alloc(a), u = n.alloc(o || 0), c = n.alloc(0); a > 0 || o > 0; ) { + var f = new i() + ;(f.update(c), f.update(e), t && f.update(t), (c = f.digest())) + var l = 0 + if (a > 0) { + var d = s.length - a + ;((l = Math.min(a, c.length)), c.copy(s, d, 0, l), (a -= l)) + } + if (l < c.length && o > 0) { + var h = u.length - o, + p = Math.min(o, c.length - l) + ;(c.copy(u, h, l, l + p), (o -= p)) + } + } + return (c.fill(0), { key: s, iv: u }) + } + }, + 15583: (e, t, r) => { + 'use strict' + var n = r(68416), + i = Object.prototype.toString, + o = Object.prototype.hasOwnProperty + e.exports = function (e, t, r) { + if (!n(t)) throw new TypeError('iterator must be a function') + var a + ;(arguments.length >= 3 && (a = r), + '[object Array]' === i.call(e) + ? (function (e, t, r) { + for (var n = 0, i = e.length; n < i; n++) o.call(e, n) && (null == r ? t(e[n], n, e) : t.call(r, e[n], n, e)) + })(e, t, a) + : 'string' == typeof e + ? (function (e, t, r) { + for (var n = 0, i = e.length; n < i; n++) null == r ? t(e.charAt(n), n, e) : t.call(r, e.charAt(n), n, e) + })(e, t, a) + : (function (e, t, r) { + for (var n in e) o.call(e, n) && (null == r ? t(e[n], n, e) : t.call(r, e[n], n, e)) + })(e, t, a)) + } + }, + 3843: (e) => { + 'use strict' + var t = Array.prototype.slice, + r = Object.prototype.toString + e.exports = function (e) { + var n = this + if ('function' != typeof n || '[object Function]' !== r.call(n)) throw new TypeError('Function.prototype.bind called on incompatible ' + n) + for (var i, o = t.call(arguments, 1), a = Math.max(0, n.length - o.length), s = [], u = 0; u < a; u++) s.push('$' + u) + if ( + ((i = Function( + 'binder', + 'return function (' + s.join(',') + '){ return binder.apply(this,arguments); }', + )(function () { + if (this instanceof i) { + var r = n.apply(this, o.concat(t.call(arguments))) + return Object(r) === r ? r : this + } + return n.apply(e, o.concat(t.call(arguments))) + })), + n.prototype) + ) { + var c = function () {} + ;((c.prototype = n.prototype), (i.prototype = new c()), (c.prototype = null)) + } + return i + } + }, + 85395: (e, t, r) => { + 'use strict' + var n = r(3843) + e.exports = Function.prototype.bind || n + }, + 65205: (e, t, r) => { + 'use strict' + var n, + i = SyntaxError, + o = Function, + a = TypeError, + s = function (e) { + try { + return o('"use strict"; return (' + e + ').constructor;')() + } catch (e) {} + }, + u = Object.getOwnPropertyDescriptor + if (u) + try { + u({}, '') + } catch (e) { + u = null + } + var c = function () { + throw new a() + }, + f = u + ? (function () { + try { + return c + } catch (e) { + try { + return u(arguments, 'callee').get + } catch (e) { + return c + } + } + })() + : c, + l = r(89191)(), + d = r(18757)(), + h = + Object.getPrototypeOf || + (d + ? function (e) { + return e.__proto__ + } + : null), + p = {}, + y = 'undefined' != typeof Uint8Array && h ? h(Uint8Array) : n, + g = { + '%AggregateError%': 'undefined' == typeof AggregateError ? n : AggregateError, + '%Array%': Array, + '%ArrayBuffer%': 'undefined' == typeof ArrayBuffer ? n : ArrayBuffer, + '%ArrayIteratorPrototype%': l && h ? h([][Symbol.iterator]()) : n, + '%AsyncFromSyncIteratorPrototype%': n, + '%AsyncFunction%': p, + '%AsyncGenerator%': p, + '%AsyncGeneratorFunction%': p, + '%AsyncIteratorPrototype%': p, + '%Atomics%': 'undefined' == typeof Atomics ? n : Atomics, + '%BigInt%': 'undefined' == typeof BigInt ? n : BigInt, + '%BigInt64Array%': 'undefined' == typeof BigInt64Array ? n : BigInt64Array, + '%BigUint64Array%': 'undefined' == typeof BigUint64Array ? n : BigUint64Array, + '%Boolean%': Boolean, + '%DataView%': 'undefined' == typeof DataView ? n : DataView, + '%Date%': Date, + '%decodeURI%': decodeURI, + '%decodeURIComponent%': decodeURIComponent, + '%encodeURI%': encodeURI, + '%encodeURIComponent%': encodeURIComponent, + '%Error%': Error, + '%eval%': eval, + '%EvalError%': EvalError, + '%Float32Array%': 'undefined' == typeof Float32Array ? n : Float32Array, + '%Float64Array%': 'undefined' == typeof Float64Array ? n : Float64Array, + '%FinalizationRegistry%': 'undefined' == typeof FinalizationRegistry ? n : FinalizationRegistry, + '%Function%': o, + '%GeneratorFunction%': p, + '%Int8Array%': 'undefined' == typeof Int8Array ? n : Int8Array, + '%Int16Array%': 'undefined' == typeof Int16Array ? n : Int16Array, + '%Int32Array%': 'undefined' == typeof Int32Array ? n : Int32Array, + '%isFinite%': isFinite, + '%isNaN%': isNaN, + '%IteratorPrototype%': l && h ? h(h([][Symbol.iterator]())) : n, + '%JSON%': 'object' == typeof JSON ? JSON : n, + '%Map%': 'undefined' == typeof Map ? n : Map, + '%MapIteratorPrototype%': 'undefined' != typeof Map && l && h ? h(new Map()[Symbol.iterator]()) : n, + '%Math%': Math, + '%Number%': Number, + '%Object%': Object, + '%parseFloat%': parseFloat, + '%parseInt%': parseInt, + '%Promise%': 'undefined' == typeof Promise ? n : Promise, + '%Proxy%': 'undefined' == typeof Proxy ? n : Proxy, + '%RangeError%': RangeError, + '%ReferenceError%': ReferenceError, + '%Reflect%': 'undefined' == typeof Reflect ? n : Reflect, + '%RegExp%': RegExp, + '%Set%': 'undefined' == typeof Set ? n : Set, + '%SetIteratorPrototype%': 'undefined' != typeof Set && l && h ? h(new Set()[Symbol.iterator]()) : n, + '%SharedArrayBuffer%': 'undefined' == typeof SharedArrayBuffer ? n : SharedArrayBuffer, + '%String%': String, + '%StringIteratorPrototype%': l && h ? h(''[Symbol.iterator]()) : n, + '%Symbol%': l ? Symbol : n, + '%SyntaxError%': i, + '%ThrowTypeError%': f, + '%TypedArray%': y, + '%TypeError%': a, + '%Uint8Array%': 'undefined' == typeof Uint8Array ? n : Uint8Array, + '%Uint8ClampedArray%': 'undefined' == typeof Uint8ClampedArray ? n : Uint8ClampedArray, + '%Uint16Array%': 'undefined' == typeof Uint16Array ? n : Uint16Array, + '%Uint32Array%': 'undefined' == typeof Uint32Array ? n : Uint32Array, + '%URIError%': URIError, + '%WeakMap%': 'undefined' == typeof WeakMap ? n : WeakMap, + '%WeakRef%': 'undefined' == typeof WeakRef ? n : WeakRef, + '%WeakSet%': 'undefined' == typeof WeakSet ? n : WeakSet, + } + if (h) + try { + null.error + } catch (e) { + var b = h(h(e)) + g['%Error.prototype%'] = b + } + var m = function e(t) { + var r + if ('%AsyncFunction%' === t) r = s('async function () {}') + else if ('%GeneratorFunction%' === t) r = s('function* () {}') + else if ('%AsyncGeneratorFunction%' === t) r = s('async function* () {}') + else if ('%AsyncGenerator%' === t) { + var n = e('%AsyncGeneratorFunction%') + n && (r = n.prototype) + } else if ('%AsyncIteratorPrototype%' === t) { + var i = e('%AsyncGenerator%') + i && h && (r = h(i.prototype)) + } + return ((g[t] = r), r) + }, + v = { + '%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'], + '%ArrayPrototype%': ['Array', 'prototype'], + '%ArrayProto_entries%': ['Array', 'prototype', 'entries'], + '%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'], + '%ArrayProto_keys%': ['Array', 'prototype', 'keys'], + '%ArrayProto_values%': ['Array', 'prototype', 'values'], + '%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'], + '%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'], + '%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'], + '%BooleanPrototype%': ['Boolean', 'prototype'], + '%DataViewPrototype%': ['DataView', 'prototype'], + '%DatePrototype%': ['Date', 'prototype'], + '%ErrorPrototype%': ['Error', 'prototype'], + '%EvalErrorPrototype%': ['EvalError', 'prototype'], + '%Float32ArrayPrototype%': ['Float32Array', 'prototype'], + '%Float64ArrayPrototype%': ['Float64Array', 'prototype'], + '%FunctionPrototype%': ['Function', 'prototype'], + '%Generator%': ['GeneratorFunction', 'prototype'], + '%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'], + '%Int8ArrayPrototype%': ['Int8Array', 'prototype'], + '%Int16ArrayPrototype%': ['Int16Array', 'prototype'], + '%Int32ArrayPrototype%': ['Int32Array', 'prototype'], + '%JSONParse%': ['JSON', 'parse'], + '%JSONStringify%': ['JSON', 'stringify'], + '%MapPrototype%': ['Map', 'prototype'], + '%NumberPrototype%': ['Number', 'prototype'], + '%ObjectPrototype%': ['Object', 'prototype'], + '%ObjProto_toString%': ['Object', 'prototype', 'toString'], + '%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'], + '%PromisePrototype%': ['Promise', 'prototype'], + '%PromiseProto_then%': ['Promise', 'prototype', 'then'], + '%Promise_all%': ['Promise', 'all'], + '%Promise_reject%': ['Promise', 'reject'], + '%Promise_resolve%': ['Promise', 'resolve'], + '%RangeErrorPrototype%': ['RangeError', 'prototype'], + '%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'], + '%RegExpPrototype%': ['RegExp', 'prototype'], + '%SetPrototype%': ['Set', 'prototype'], + '%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'], + '%StringPrototype%': ['String', 'prototype'], + '%SymbolPrototype%': ['Symbol', 'prototype'], + '%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'], + '%TypedArrayPrototype%': ['TypedArray', 'prototype'], + '%TypeErrorPrototype%': ['TypeError', 'prototype'], + '%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'], + '%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'], + '%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'], + '%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'], + '%URIErrorPrototype%': ['URIError', 'prototype'], + '%WeakMapPrototype%': ['WeakMap', 'prototype'], + '%WeakSetPrototype%': ['WeakSet', 'prototype'], + }, + w = r(85395), + _ = r(86541), + E = w.call(Function.call, Array.prototype.concat), + S = w.call(Function.apply, Array.prototype.splice), + A = w.call(Function.call, String.prototype.replace), + O = w.call(Function.call, String.prototype.slice), + M = w.call(Function.call, RegExp.prototype.exec), + T = /[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g, + I = /\\(\\)?/g, + N = function (e, t) { + var r, + n = e + if ((_(v, n) && (n = '%' + (r = v[n])[0] + '%'), _(g, n))) { + var o = g[n] + if ((o === p && (o = m(n)), void 0 === o && !t)) throw new a('intrinsic ' + e + ' exists, but is not available. Please file an issue!') + return { alias: r, name: n, value: o } + } + throw new i('intrinsic ' + e + ' does not exist!') + } + e.exports = function (e, t) { + if ('string' != typeof e || 0 === e.length) throw new a('intrinsic name must be a non-empty string') + if (arguments.length > 1 && 'boolean' != typeof t) throw new a('"allowMissing" argument must be a boolean') + if (null === M(/^%?[^%]*%?$/, e)) throw new i('`%` may not be present anywhere but at the beginning and end of the intrinsic name') + var r = (function (e) { + var t = O(e, 0, 1), + r = O(e, -1) + if ('%' === t && '%' !== r) throw new i('invalid intrinsic syntax, expected closing `%`') + if ('%' === r && '%' !== t) throw new i('invalid intrinsic syntax, expected opening `%`') + var n = [] + return ( + A(e, T, function (e, t, r, i) { + n[n.length] = r ? A(i, I, '$1') : t || e + }), + n + ) + })(e), + n = r.length > 0 ? r[0] : '', + o = N('%' + n + '%', t), + s = o.name, + c = o.value, + f = !1, + l = o.alias + l && ((n = l[0]), S(r, E([0, 1], l))) + for (var d = 1, h = !0; d < r.length; d += 1) { + var p = r[d], + y = O(p, 0, 1), + b = O(p, -1) + if (('"' === y || "'" === y || '`' === y || '"' === b || "'" === b || '`' === b) && y !== b) + throw new i('property names with quotes must have matching quotes') + if ((('constructor' !== p && h) || (f = !0), _(g, (s = '%' + (n += '.' + p) + '%')))) c = g[s] + else if (null != c) { + if (!(p in c)) { + if (!t) throw new a('base intrinsic for ' + e + ' exists, but the property is not available.') + return + } + if (u && d + 1 >= r.length) { + var m = u(c, p) + c = (h = !!m) && 'get' in m && !('originalValue' in m.get) ? m.get : c[p] + } else ((h = _(c, p)), (c = c[p])) + h && !f && (g[s] = c) + } + } + return c + } + }, + 558: (e, t, r) => { + 'use strict' + var n = r(65205)('%Object.getOwnPropertyDescriptor%', !0) + if (n) + try { + n([], 'length') + } catch (e) { + n = null + } + e.exports = n + }, + 23280: (e, t, r) => { + 'use strict' + var n = r(65205)('%Object.defineProperty%', !0), + i = function () { + if (n) + try { + return (n({}, 'a', { value: 1 }), !0) + } catch (e) { + return !1 + } + return !1 + } + ;((i.hasArrayLengthDefineBug = function () { + if (!i()) return null + try { + return 1 !== n([], 'length', { value: 1 }).length + } catch (e) { + return !0 + } + }), + (e.exports = i)) + }, + 18757: (e) => { + 'use strict' + var t = { foo: {} }, + r = Object + e.exports = function () { + return { __proto__: t }.foo === t.foo && !({ __proto__: null } instanceof r) + } + }, + 89191: (e, t, r) => { + 'use strict' + var n = 'undefined' != typeof Symbol && Symbol, + i = r(62267) + e.exports = function () { + return 'function' == typeof n && 'function' == typeof Symbol && 'symbol' == typeof n('foo') && 'symbol' == typeof Symbol('bar') && i() + } + }, + 62267: (e) => { + 'use strict' + e.exports = function () { + if ('function' != typeof Symbol || 'function' != typeof Object.getOwnPropertySymbols) return !1 + if ('symbol' == typeof Symbol.iterator) return !0 + var e = {}, + t = Symbol('test'), + r = Object(t) + if ('string' == typeof t) return !1 + if ('[object Symbol]' !== Object.prototype.toString.call(t)) return !1 + if ('[object Symbol]' !== Object.prototype.toString.call(r)) return !1 + for (t in ((e[t] = 42), e)) return !1 + if ('function' == typeof Object.keys && 0 !== Object.keys(e).length) return !1 + if ('function' == typeof Object.getOwnPropertyNames && 0 !== Object.getOwnPropertyNames(e).length) return !1 + var n = Object.getOwnPropertySymbols(e) + if (1 !== n.length || n[0] !== t) return !1 + if (!Object.prototype.propertyIsEnumerable.call(e, t)) return !1 + if ('function' == typeof Object.getOwnPropertyDescriptor) { + var i = Object.getOwnPropertyDescriptor(e, t) + if (42 !== i.value || !0 !== i.enumerable) return !1 + } + return !0 + } + }, + 16697: (e, t, r) => { + 'use strict' + var n = r(62267) + e.exports = function () { + return n() && !!Symbol.toStringTag + } + }, + 86541: (e, t, r) => { + 'use strict' + var n = r(85395) + e.exports = n.call(Function.call, Object.prototype.hasOwnProperty) + }, + 35921: (e, t, r) => { + 'use strict' + var n = r(59105).Buffer, + i = r(8542).Transform + function o(e) { + ;(i.call(this), + (this._block = n.allocUnsafe(e)), + (this._blockSize = e), + (this._blockOffset = 0), + (this._length = [0, 0, 0, 0]), + (this._finalized = !1)) + } + ;(r(19105)(o, i), + (o.prototype._transform = function (e, t, r) { + var n = null + try { + this.update(e, t) + } catch (e) { + n = e + } + r(n) + }), + (o.prototype._flush = function (e) { + var t = null + try { + this.push(this.digest()) + } catch (e) { + t = e + } + e(t) + }), + (o.prototype.update = function (e, t) { + if ( + ((function (e, t) { + if (!n.isBuffer(e) && 'string' != typeof e) throw new TypeError('Data must be a string or a buffer') + })(e), + this._finalized) + ) + throw new Error('Digest already called') + n.isBuffer(e) || (e = n.from(e, t)) + for (var r = this._block, i = 0; this._blockOffset + e.length - i >= this._blockSize; ) { + for (var o = this._blockOffset; o < this._blockSize; ) r[o++] = e[i++] + ;(this._update(), (this._blockOffset = 0)) + } + for (; i < e.length; ) r[this._blockOffset++] = e[i++] + for (var a = 0, s = 8 * e.length; s > 0; ++a) + ((this._length[a] += s), (s = (this._length[a] / 4294967296) | 0) > 0 && (this._length[a] -= 4294967296 * s)) + return this + }), + (o.prototype._update = function () { + throw new Error('_update is not implemented') + }), + (o.prototype.digest = function (e) { + if (this._finalized) throw new Error('Digest already called') + this._finalized = !0 + var t = this._digest() + ;(void 0 !== e && (t = t.toString(e)), this._block.fill(0), (this._blockOffset = 0)) + for (var r = 0; r < 4; ++r) this._length[r] = 0 + return t + }), + (o.prototype._digest = function () { + throw new Error('_digest is not implemented') + }), + (e.exports = o)) + }, + 58925: (e, t, r) => { + var n = t + ;((n.utils = r(34554)), + (n.common = r(73390)), + (n.sha = r(88534)), + (n.ripemd = r(75487)), + (n.hmac = r(55691)), + (n.sha1 = n.sha.sha1), + (n.sha256 = n.sha.sha256), + (n.sha224 = n.sha.sha224), + (n.sha384 = n.sha.sha384), + (n.sha512 = n.sha.sha512), + (n.ripemd160 = n.ripemd.ripemd160)) + }, + 73390: (e, t, r) => { + 'use strict' + var n = r(34554), + i = r(44647) + function o() { + ;((this.pending = null), + (this.pendingTotal = 0), + (this.blockSize = this.constructor.blockSize), + (this.outSize = this.constructor.outSize), + (this.hmacStrength = this.constructor.hmacStrength), + (this.padLength = this.constructor.padLength / 8), + (this.endian = 'big'), + (this._delta8 = this.blockSize / 8), + (this._delta32 = this.blockSize / 32)) + } + ;((t.BlockHash = o), + (o.prototype.update = function (e, t) { + if ( + ((e = n.toArray(e, t)), + this.pending ? (this.pending = this.pending.concat(e)) : (this.pending = e), + (this.pendingTotal += e.length), + this.pending.length >= this._delta8) + ) { + var r = (e = this.pending).length % this._delta8 + ;((this.pending = e.slice(e.length - r, e.length)), + 0 === this.pending.length && (this.pending = null), + (e = n.join32(e, 0, e.length - r, this.endian))) + for (var i = 0; i < e.length; i += this._delta32) this._update(e, i, i + this._delta32) + } + return this + }), + (o.prototype.digest = function (e) { + return (this.update(this._pad()), i(null === this.pending), this._digest(e)) + }), + (o.prototype._pad = function () { + var e = this.pendingTotal, + t = this._delta8, + r = t - ((e + this.padLength) % t), + n = new Array(r + this.padLength) + n[0] = 128 + for (var i = 1; i < r; i++) n[i] = 0 + if (((e <<= 3), 'big' === this.endian)) { + for (var o = 8; o < this.padLength; o++) n[i++] = 0 + ;((n[i++] = 0), + (n[i++] = 0), + (n[i++] = 0), + (n[i++] = 0), + (n[i++] = (e >>> 24) & 255), + (n[i++] = (e >>> 16) & 255), + (n[i++] = (e >>> 8) & 255), + (n[i++] = 255 & e)) + } else + for ( + n[i++] = 255 & e, + n[i++] = (e >>> 8) & 255, + n[i++] = (e >>> 16) & 255, + n[i++] = (e >>> 24) & 255, + n[i++] = 0, + n[i++] = 0, + n[i++] = 0, + n[i++] = 0, + o = 8; + o < this.padLength; + o++ + ) + n[i++] = 0 + return n + })) + }, + 55691: (e, t, r) => { + 'use strict' + var n = r(34554), + i = r(44647) + function o(e, t, r) { + if (!(this instanceof o)) return new o(e, t, r) + ;((this.Hash = e), + (this.blockSize = e.blockSize / 8), + (this.outSize = e.outSize / 8), + (this.inner = null), + (this.outer = null), + this._init(n.toArray(t, r))) + } + ;((e.exports = o), + (o.prototype._init = function (e) { + ;(e.length > this.blockSize && (e = new this.Hash().update(e).digest()), i(e.length <= this.blockSize)) + for (var t = e.length; t < this.blockSize; t++) e.push(0) + for (t = 0; t < e.length; t++) e[t] ^= 54 + for (this.inner = new this.Hash().update(e), t = 0; t < e.length; t++) e[t] ^= 106 + this.outer = new this.Hash().update(e) + }), + (o.prototype.update = function (e, t) { + return (this.inner.update(e, t), this) + }), + (o.prototype.digest = function (e) { + return (this.outer.update(this.inner.digest()), this.outer.digest(e)) + })) + }, + 75487: (e, t, r) => { + 'use strict' + var n = r(34554), + i = r(73390), + o = n.rotl32, + a = n.sum32, + s = n.sum32_3, + u = n.sum32_4, + c = i.BlockHash + function f() { + if (!(this instanceof f)) return new f() + ;(c.call(this), (this.h = [1732584193, 4023233417, 2562383102, 271733878, 3285377520]), (this.endian = 'little')) + } + function l(e, t, r, n) { + return e <= 15 ? t ^ r ^ n : e <= 31 ? (t & r) | (~t & n) : e <= 47 ? (t | ~r) ^ n : e <= 63 ? (t & n) | (r & ~n) : t ^ (r | ~n) + } + function d(e) { + return e <= 15 ? 0 : e <= 31 ? 1518500249 : e <= 47 ? 1859775393 : e <= 63 ? 2400959708 : 2840853838 + } + function h(e) { + return e <= 15 ? 1352829926 : e <= 31 ? 1548603684 : e <= 47 ? 1836072691 : e <= 63 ? 2053994217 : 0 + } + ;(n.inherits(f, c), + (t.ripemd160 = f), + (f.blockSize = 512), + (f.outSize = 160), + (f.hmacStrength = 192), + (f.padLength = 64), + (f.prototype._update = function (e, t) { + for ( + var r = this.h[0], n = this.h[1], i = this.h[2], c = this.h[3], f = this.h[4], m = r, v = n, w = i, _ = c, E = f, S = 0; + S < 80; + S++ + ) { + var A = a(o(u(r, l(S, n, i, c), e[p[S] + t], d(S)), g[S]), f) + ;((r = f), + (f = c), + (c = o(i, 10)), + (i = n), + (n = A), + (A = a(o(u(m, l(79 - S, v, w, _), e[y[S] + t], h(S)), b[S]), E)), + (m = E), + (E = _), + (_ = o(w, 10)), + (w = v), + (v = A)) + } + ;((A = s(this.h[1], i, _)), + (this.h[1] = s(this.h[2], c, E)), + (this.h[2] = s(this.h[3], f, m)), + (this.h[3] = s(this.h[4], r, v)), + (this.h[4] = s(this.h[0], n, w)), + (this.h[0] = A)) + }), + (f.prototype._digest = function (e) { + return 'hex' === e ? n.toHex32(this.h, 'little') : n.split32(this.h, 'little') + })) + var p = [ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, + 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13, + ], + y = [ + 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, + 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11, + ], + g = [ + 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, + 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, + 5, 6, + ], + b = [ + 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, + 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, + 11, + ] + }, + 88534: (e, t, r) => { + 'use strict' + ;((t.sha1 = r(99750)), (t.sha224 = r(39381)), (t.sha256 = r(80207)), (t.sha384 = r(63939)), (t.sha512 = r(73796))) + }, + 99750: (e, t, r) => { + 'use strict' + var n = r(34554), + i = r(73390), + o = r(1965), + a = n.rotl32, + s = n.sum32, + u = n.sum32_5, + c = o.ft_1, + f = i.BlockHash, + l = [1518500249, 1859775393, 2400959708, 3395469782] + function d() { + if (!(this instanceof d)) return new d() + ;(f.call(this), (this.h = [1732584193, 4023233417, 2562383102, 271733878, 3285377520]), (this.W = new Array(80))) + } + ;(n.inherits(d, f), + (e.exports = d), + (d.blockSize = 512), + (d.outSize = 160), + (d.hmacStrength = 80), + (d.padLength = 64), + (d.prototype._update = function (e, t) { + for (var r = this.W, n = 0; n < 16; n++) r[n] = e[t + n] + for (; n < r.length; n++) r[n] = a(r[n - 3] ^ r[n - 8] ^ r[n - 14] ^ r[n - 16], 1) + var i = this.h[0], + o = this.h[1], + f = this.h[2], + d = this.h[3], + h = this.h[4] + for (n = 0; n < r.length; n++) { + var p = ~~(n / 20), + y = u(a(i, 5), c(p, o, f, d), h, r[n], l[p]) + ;((h = d), (d = f), (f = a(o, 30)), (o = i), (i = y)) + } + ;((this.h[0] = s(this.h[0], i)), + (this.h[1] = s(this.h[1], o)), + (this.h[2] = s(this.h[2], f)), + (this.h[3] = s(this.h[3], d)), + (this.h[4] = s(this.h[4], h))) + }), + (d.prototype._digest = function (e) { + return 'hex' === e ? n.toHex32(this.h, 'big') : n.split32(this.h, 'big') + })) + }, + 39381: (e, t, r) => { + 'use strict' + var n = r(34554), + i = r(80207) + function o() { + if (!(this instanceof o)) return new o() + ;(i.call(this), (this.h = [3238371032, 914150663, 812702999, 4144912697, 4290775857, 1750603025, 1694076839, 3204075428])) + } + ;(n.inherits(o, i), + (e.exports = o), + (o.blockSize = 512), + (o.outSize = 224), + (o.hmacStrength = 192), + (o.padLength = 64), + (o.prototype._digest = function (e) { + return 'hex' === e ? n.toHex32(this.h.slice(0, 7), 'big') : n.split32(this.h.slice(0, 7), 'big') + })) + }, + 80207: (e, t, r) => { + 'use strict' + var n = r(34554), + i = r(73390), + o = r(1965), + a = r(44647), + s = n.sum32, + u = n.sum32_4, + c = n.sum32_5, + f = o.ch32, + l = o.maj32, + d = o.s0_256, + h = o.s1_256, + p = o.g0_256, + y = o.g1_256, + g = i.BlockHash, + b = [ + 1116352408, 1899447441, 3049323471, 3921009573, 961987163, 1508970993, 2453635748, 2870763221, 3624381080, 310598401, 607225278, + 1426881987, 1925078388, 2162078206, 2614888103, 3248222580, 3835390401, 4022224774, 264347078, 604807628, 770255983, 1249150122, + 1555081692, 1996064986, 2554220882, 2821834349, 2952996808, 3210313671, 3336571891, 3584528711, 113926993, 338241895, 666307205, + 773529912, 1294757372, 1396182291, 1695183700, 1986661051, 2177026350, 2456956037, 2730485921, 2820302411, 3259730800, 3345764771, + 3516065817, 3600352804, 4094571909, 275423344, 430227734, 506948616, 659060556, 883997877, 958139571, 1322822218, 1537002063, 1747873779, + 1955562222, 2024104815, 2227730452, 2361852424, 2428436474, 2756734187, 3204031479, 3329325298, + ] + function m() { + if (!(this instanceof m)) return new m() + ;(g.call(this), + (this.h = [1779033703, 3144134277, 1013904242, 2773480762, 1359893119, 2600822924, 528734635, 1541459225]), + (this.k = b), + (this.W = new Array(64))) + } + ;(n.inherits(m, g), + (e.exports = m), + (m.blockSize = 512), + (m.outSize = 256), + (m.hmacStrength = 192), + (m.padLength = 64), + (m.prototype._update = function (e, t) { + for (var r = this.W, n = 0; n < 16; n++) r[n] = e[t + n] + for (; n < r.length; n++) r[n] = u(y(r[n - 2]), r[n - 7], p(r[n - 15]), r[n - 16]) + var i = this.h[0], + o = this.h[1], + g = this.h[2], + b = this.h[3], + m = this.h[4], + v = this.h[5], + w = this.h[6], + _ = this.h[7] + for (a(this.k.length === r.length), n = 0; n < r.length; n++) { + var E = c(_, h(m), f(m, v, w), this.k[n], r[n]), + S = s(d(i), l(i, o, g)) + ;((_ = w), (w = v), (v = m), (m = s(b, E)), (b = g), (g = o), (o = i), (i = s(E, S))) + } + ;((this.h[0] = s(this.h[0], i)), + (this.h[1] = s(this.h[1], o)), + (this.h[2] = s(this.h[2], g)), + (this.h[3] = s(this.h[3], b)), + (this.h[4] = s(this.h[4], m)), + (this.h[5] = s(this.h[5], v)), + (this.h[6] = s(this.h[6], w)), + (this.h[7] = s(this.h[7], _))) + }), + (m.prototype._digest = function (e) { + return 'hex' === e ? n.toHex32(this.h, 'big') : n.split32(this.h, 'big') + })) + }, + 63939: (e, t, r) => { + 'use strict' + var n = r(34554), + i = r(73796) + function o() { + if (!(this instanceof o)) return new o() + ;(i.call(this), + (this.h = [ + 3418070365, 3238371032, 1654270250, 914150663, 2438529370, 812702999, 355462360, 4144912697, 1731405415, 4290775857, 2394180231, + 1750603025, 3675008525, 1694076839, 1203062813, 3204075428, + ])) + } + ;(n.inherits(o, i), + (e.exports = o), + (o.blockSize = 1024), + (o.outSize = 384), + (o.hmacStrength = 192), + (o.padLength = 128), + (o.prototype._digest = function (e) { + return 'hex' === e ? n.toHex32(this.h.slice(0, 12), 'big') : n.split32(this.h.slice(0, 12), 'big') + })) + }, + 73796: (e, t, r) => { + 'use strict' + var n = r(34554), + i = r(73390), + o = r(44647), + a = n.rotr64_hi, + s = n.rotr64_lo, + u = n.shr64_hi, + c = n.shr64_lo, + f = n.sum64, + l = n.sum64_hi, + d = n.sum64_lo, + h = n.sum64_4_hi, + p = n.sum64_4_lo, + y = n.sum64_5_hi, + g = n.sum64_5_lo, + b = i.BlockHash, + m = [ + 1116352408, 3609767458, 1899447441, 602891725, 3049323471, 3964484399, 3921009573, 2173295548, 961987163, 4081628472, 1508970993, + 3053834265, 2453635748, 2937671579, 2870763221, 3664609560, 3624381080, 2734883394, 310598401, 1164996542, 607225278, 1323610764, + 1426881987, 3590304994, 1925078388, 4068182383, 2162078206, 991336113, 2614888103, 633803317, 3248222580, 3479774868, 3835390401, + 2666613458, 4022224774, 944711139, 264347078, 2341262773, 604807628, 2007800933, 770255983, 1495990901, 1249150122, 1856431235, + 1555081692, 3175218132, 1996064986, 2198950837, 2554220882, 3999719339, 2821834349, 766784016, 2952996808, 2566594879, 3210313671, + 3203337956, 3336571891, 1034457026, 3584528711, 2466948901, 113926993, 3758326383, 338241895, 168717936, 666307205, 1188179964, 773529912, + 1546045734, 1294757372, 1522805485, 1396182291, 2643833823, 1695183700, 2343527390, 1986661051, 1014477480, 2177026350, 1206759142, + 2456956037, 344077627, 2730485921, 1290863460, 2820302411, 3158454273, 3259730800, 3505952657, 3345764771, 106217008, 3516065817, + 3606008344, 3600352804, 1432725776, 4094571909, 1467031594, 275423344, 851169720, 430227734, 3100823752, 506948616, 1363258195, 659060556, + 3750685593, 883997877, 3785050280, 958139571, 3318307427, 1322822218, 3812723403, 1537002063, 2003034995, 1747873779, 3602036899, + 1955562222, 1575990012, 2024104815, 1125592928, 2227730452, 2716904306, 2361852424, 442776044, 2428436474, 593698344, 2756734187, + 3733110249, 3204031479, 2999351573, 3329325298, 3815920427, 3391569614, 3928383900, 3515267271, 566280711, 3940187606, 3454069534, + 4118630271, 4000239992, 116418474, 1914138554, 174292421, 2731055270, 289380356, 3203993006, 460393269, 320620315, 685471733, 587496836, + 852142971, 1086792851, 1017036298, 365543100, 1126000580, 2618297676, 1288033470, 3409855158, 1501505948, 4234509866, 1607167915, + 987167468, 1816402316, 1246189591, + ] + function v() { + if (!(this instanceof v)) return new v() + ;(b.call(this), + (this.h = [ + 1779033703, 4089235720, 3144134277, 2227873595, 1013904242, 4271175723, 2773480762, 1595750129, 1359893119, 2917565137, 2600822924, + 725511199, 528734635, 4215389547, 1541459225, 327033209, + ]), + (this.k = m), + (this.W = new Array(160))) + } + function w(e, t, r, n, i) { + var o = (e & r) ^ (~e & i) + return (o < 0 && (o += 4294967296), o) + } + function _(e, t, r, n, i, o) { + var a = (t & n) ^ (~t & o) + return (a < 0 && (a += 4294967296), a) + } + function E(e, t, r, n, i) { + var o = (e & r) ^ (e & i) ^ (r & i) + return (o < 0 && (o += 4294967296), o) + } + function S(e, t, r, n, i, o) { + var a = (t & n) ^ (t & o) ^ (n & o) + return (a < 0 && (a += 4294967296), a) + } + function A(e, t) { + var r = a(e, t, 28) ^ a(t, e, 2) ^ a(t, e, 7) + return (r < 0 && (r += 4294967296), r) + } + function O(e, t) { + var r = s(e, t, 28) ^ s(t, e, 2) ^ s(t, e, 7) + return (r < 0 && (r += 4294967296), r) + } + function M(e, t) { + var r = s(e, t, 14) ^ s(e, t, 18) ^ s(t, e, 9) + return (r < 0 && (r += 4294967296), r) + } + function T(e, t) { + var r = a(e, t, 1) ^ a(e, t, 8) ^ u(e, t, 7) + return (r < 0 && (r += 4294967296), r) + } + function I(e, t) { + var r = s(e, t, 1) ^ s(e, t, 8) ^ c(e, t, 7) + return (r < 0 && (r += 4294967296), r) + } + function N(e, t) { + var r = s(e, t, 19) ^ s(t, e, 29) ^ c(e, t, 6) + return (r < 0 && (r += 4294967296), r) + } + ;(n.inherits(v, b), + (e.exports = v), + (v.blockSize = 1024), + (v.outSize = 512), + (v.hmacStrength = 192), + (v.padLength = 128), + (v.prototype._prepareBlock = function (e, t) { + for (var r = this.W, n = 0; n < 32; n++) r[n] = e[t + n] + for (; n < r.length; n += 2) { + var i = ((g = r[n - 4]), (b = r[n - 3]), (m = void 0), (m = a(g, b, 19) ^ a(b, g, 29) ^ u(g, b, 6)) < 0 && (m += 4294967296), m), + o = N(r[n - 4], r[n - 3]), + s = r[n - 14], + c = r[n - 13], + f = T(r[n - 30], r[n - 29]), + l = I(r[n - 30], r[n - 29]), + d = r[n - 32], + y = r[n - 31] + ;((r[n] = h(i, o, s, c, f, l, d, y)), (r[n + 1] = p(i, o, s, c, f, l, d, y))) + } + var g, b, m + }), + (v.prototype._update = function (e, t) { + this._prepareBlock(e, t) + var r, + n, + i, + s = this.W, + u = this.h[0], + c = this.h[1], + h = this.h[2], + p = this.h[3], + b = this.h[4], + m = this.h[5], + v = this.h[6], + T = this.h[7], + I = this.h[8], + N = this.h[9], + x = this.h[10], + L = this.h[11], + k = this.h[12], + R = this.h[13], + P = this.h[14], + B = this.h[15] + o(this.k.length === s.length) + for (var D = 0; D < s.length; D += 2) { + var C = P, + j = B, + F = ((i = void 0), (i = a((r = I), (n = N), 14) ^ a(r, n, 18) ^ a(n, r, 9)) < 0 && (i += 4294967296), i), + U = M(I, N), + V = w(I, 0, x, 0, k), + H = _(0, N, 0, L, 0, R), + z = this.k[D], + q = this.k[D + 1], + K = s[D], + W = s[D + 1], + G = y(C, j, F, U, V, H, z, q, K, W), + Y = g(C, j, F, U, V, H, z, q, K, W) + ;((C = A(u, c)), (j = O(u, c)), (F = E(u, 0, h, 0, b)), (U = S(0, c, 0, p, 0, m))) + var $ = l(C, j, F, U), + X = d(C, j, F, U) + ;((P = k), + (B = R), + (k = x), + (R = L), + (x = I), + (L = N), + (I = l(v, T, G, Y)), + (N = d(T, T, G, Y)), + (v = b), + (T = m), + (b = h), + (m = p), + (h = u), + (p = c), + (u = l(G, Y, $, X)), + (c = d(G, Y, $, X))) + } + ;(f(this.h, 0, u, c), + f(this.h, 2, h, p), + f(this.h, 4, b, m), + f(this.h, 6, v, T), + f(this.h, 8, I, N), + f(this.h, 10, x, L), + f(this.h, 12, k, R), + f(this.h, 14, P, B)) + }), + (v.prototype._digest = function (e) { + return 'hex' === e ? n.toHex32(this.h, 'big') : n.split32(this.h, 'big') + })) + }, + 1965: (e, t, r) => { + 'use strict' + var n = r(34554).rotr32 + function i(e, t, r) { + return (e & t) ^ (~e & r) + } + function o(e, t, r) { + return (e & t) ^ (e & r) ^ (t & r) + } + function a(e, t, r) { + return e ^ t ^ r + } + ;((t.ft_1 = function (e, t, r, n) { + return 0 === e ? i(t, r, n) : 1 === e || 3 === e ? a(t, r, n) : 2 === e ? o(t, r, n) : void 0 + }), + (t.ch32 = i), + (t.maj32 = o), + (t.p32 = a), + (t.s0_256 = function (e) { + return n(e, 2) ^ n(e, 13) ^ n(e, 22) + }), + (t.s1_256 = function (e) { + return n(e, 6) ^ n(e, 11) ^ n(e, 25) + }), + (t.g0_256 = function (e) { + return n(e, 7) ^ n(e, 18) ^ (e >>> 3) + }), + (t.g1_256 = function (e) { + return n(e, 17) ^ n(e, 19) ^ (e >>> 10) + })) + }, + 34554: (e, t, r) => { + 'use strict' + var n = r(44647), + i = r(19105) + function o(e, t) { + return 55296 == (64512 & e.charCodeAt(t)) && !(t < 0 || t + 1 >= e.length) && 56320 == (64512 & e.charCodeAt(t + 1)) + } + function a(e) { + return ((e >>> 24) | ((e >>> 8) & 65280) | ((e << 8) & 16711680) | ((255 & e) << 24)) >>> 0 + } + function s(e) { + return 1 === e.length ? '0' + e : e + } + function u(e) { + return 7 === e.length + ? '0' + e + : 6 === e.length + ? '00' + e + : 5 === e.length + ? '000' + e + : 4 === e.length + ? '0000' + e + : 3 === e.length + ? '00000' + e + : 2 === e.length + ? '000000' + e + : 1 === e.length + ? '0000000' + e + : e + } + ;((t.inherits = i), + (t.toArray = function (e, t) { + if (Array.isArray(e)) return e.slice() + if (!e) return [] + var r = [] + if ('string' == typeof e) + if (t) { + if ('hex' === t) + for ((e = e.replace(/[^a-z0-9]+/gi, '')).length % 2 != 0 && (e = '0' + e), i = 0; i < e.length; i += 2) + r.push(parseInt(e[i] + e[i + 1], 16)) + } else + for (var n = 0, i = 0; i < e.length; i++) { + var a = e.charCodeAt(i) + a < 128 + ? (r[n++] = a) + : a < 2048 + ? ((r[n++] = (a >> 6) | 192), (r[n++] = (63 & a) | 128)) + : o(e, i) + ? ((a = 65536 + ((1023 & a) << 10) + (1023 & e.charCodeAt(++i))), + (r[n++] = (a >> 18) | 240), + (r[n++] = ((a >> 12) & 63) | 128), + (r[n++] = ((a >> 6) & 63) | 128), + (r[n++] = (63 & a) | 128)) + : ((r[n++] = (a >> 12) | 224), (r[n++] = ((a >> 6) & 63) | 128), (r[n++] = (63 & a) | 128)) + } + else for (i = 0; i < e.length; i++) r[i] = 0 | e[i] + return r + }), + (t.toHex = function (e) { + for (var t = '', r = 0; r < e.length; r++) t += s(e[r].toString(16)) + return t + }), + (t.htonl = a), + (t.toHex32 = function (e, t) { + for (var r = '', n = 0; n < e.length; n++) { + var i = e[n] + ;('little' === t && (i = a(i)), (r += u(i.toString(16)))) + } + return r + }), + (t.zero2 = s), + (t.zero8 = u), + (t.join32 = function (e, t, r, i) { + var o = r - t + n(o % 4 == 0) + for (var a = new Array(o / 4), s = 0, u = t; s < a.length; s++, u += 4) { + var c + ;((c = + 'big' === i + ? (e[u] << 24) | (e[u + 1] << 16) | (e[u + 2] << 8) | e[u + 3] + : (e[u + 3] << 24) | (e[u + 2] << 16) | (e[u + 1] << 8) | e[u]), + (a[s] = c >>> 0)) + } + return a + }), + (t.split32 = function (e, t) { + for (var r = new Array(4 * e.length), n = 0, i = 0; n < e.length; n++, i += 4) { + var o = e[n] + 'big' === t + ? ((r[i] = o >>> 24), (r[i + 1] = (o >>> 16) & 255), (r[i + 2] = (o >>> 8) & 255), (r[i + 3] = 255 & o)) + : ((r[i + 3] = o >>> 24), (r[i + 2] = (o >>> 16) & 255), (r[i + 1] = (o >>> 8) & 255), (r[i] = 255 & o)) + } + return r + }), + (t.rotr32 = function (e, t) { + return (e >>> t) | (e << (32 - t)) + }), + (t.rotl32 = function (e, t) { + return (e << t) | (e >>> (32 - t)) + }), + (t.sum32 = function (e, t) { + return (e + t) >>> 0 + }), + (t.sum32_3 = function (e, t, r) { + return (e + t + r) >>> 0 + }), + (t.sum32_4 = function (e, t, r, n) { + return (e + t + r + n) >>> 0 + }), + (t.sum32_5 = function (e, t, r, n, i) { + return (e + t + r + n + i) >>> 0 + }), + (t.sum64 = function (e, t, r, n) { + var i = e[t], + o = (n + e[t + 1]) >>> 0, + a = (o < n ? 1 : 0) + r + i + ;((e[t] = a >>> 0), (e[t + 1] = o)) + }), + (t.sum64_hi = function (e, t, r, n) { + return (((t + n) >>> 0 < t ? 1 : 0) + e + r) >>> 0 + }), + (t.sum64_lo = function (e, t, r, n) { + return (t + n) >>> 0 + }), + (t.sum64_4_hi = function (e, t, r, n, i, o, a, s) { + var u = 0, + c = t + return ( + (u += (c = (c + n) >>> 0) < t ? 1 : 0), + (u += (c = (c + o) >>> 0) < o ? 1 : 0), + (e + r + i + a + (u += (c = (c + s) >>> 0) < s ? 1 : 0)) >>> 0 + ) + }), + (t.sum64_4_lo = function (e, t, r, n, i, o, a, s) { + return (t + n + o + s) >>> 0 + }), + (t.sum64_5_hi = function (e, t, r, n, i, o, a, s, u, c) { + var f = 0, + l = t + return ( + (f += (l = (l + n) >>> 0) < t ? 1 : 0), + (f += (l = (l + o) >>> 0) < o ? 1 : 0), + (f += (l = (l + s) >>> 0) < s ? 1 : 0), + (e + r + i + a + u + (f += (l = (l + c) >>> 0) < c ? 1 : 0)) >>> 0 + ) + }), + (t.sum64_5_lo = function (e, t, r, n, i, o, a, s, u, c) { + return (t + n + o + s + c) >>> 0 + }), + (t.rotr64_hi = function (e, t, r) { + return ((t << (32 - r)) | (e >>> r)) >>> 0 + }), + (t.rotr64_lo = function (e, t, r) { + return ((e << (32 - r)) | (t >>> r)) >>> 0 + }), + (t.shr64_hi = function (e, t, r) { + return e >>> r + }), + (t.shr64_lo = function (e, t, r) { + return ((e << (32 - r)) | (t >>> r)) >>> 0 + })) + }, + 26941: (e, t, r) => { + 'use strict' + var n = r(58925), + i = r(91349), + o = r(44647) + function a(e) { + if (!(this instanceof a)) return new a(e) + ;((this.hash = e.hash), + (this.predResist = !!e.predResist), + (this.outLen = this.hash.outSize), + (this.minEntropy = e.minEntropy || this.hash.hmacStrength), + (this._reseed = null), + (this.reseedInterval = null), + (this.K = null), + (this.V = null)) + var t = i.toArray(e.entropy, e.entropyEnc || 'hex'), + r = i.toArray(e.nonce, e.nonceEnc || 'hex'), + n = i.toArray(e.pers, e.persEnc || 'hex') + ;(o(t.length >= this.minEntropy / 8, 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits'), this._init(t, r, n)) + } + ;((e.exports = a), + (a.prototype._init = function (e, t, r) { + var n = e.concat(t).concat(r) + ;((this.K = new Array(this.outLen / 8)), (this.V = new Array(this.outLen / 8))) + for (var i = 0; i < this.V.length; i++) ((this.K[i] = 0), (this.V[i] = 1)) + ;(this._update(n), (this._reseed = 1), (this.reseedInterval = 281474976710656)) + }), + (a.prototype._hmac = function () { + return new n.hmac(this.hash, this.K) + }), + (a.prototype._update = function (e) { + var t = this._hmac().update(this.V).update([0]) + ;(e && (t = t.update(e)), + (this.K = t.digest()), + (this.V = this._hmac().update(this.V).digest()), + e && ((this.K = this._hmac().update(this.V).update([1]).update(e).digest()), (this.V = this._hmac().update(this.V).digest()))) + }), + (a.prototype.reseed = function (e, t, r, n) { + ;('string' != typeof t && ((n = r), (r = t), (t = null)), + (e = i.toArray(e, t)), + (r = i.toArray(r, n)), + o(e.length >= this.minEntropy / 8, 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits'), + this._update(e.concat(r || [])), + (this._reseed = 1)) + }), + (a.prototype.generate = function (e, t, r, n) { + if (this._reseed > this.reseedInterval) throw new Error('Reseed is required') + ;('string' != typeof t && ((n = r), (r = t), (t = null)), r && ((r = i.toArray(r, n || 'hex')), this._update(r))) + for (var o = []; o.length < e; ) ((this.V = this._hmac().update(this.V).digest()), (o = o.concat(this.V))) + var a = o.slice(0, e) + return (this._update(r), this._reseed++, i.encode(a, t)) + })) + }, + 41178: (e, t, r) => { + var n = r(4254), + i = r(85192), + o = e.exports + for (var a in n) n.hasOwnProperty(a) && (o[a] = n[a]) + function s(e) { + if (('string' == typeof e && (e = i.parse(e)), e.protocol || (e.protocol = 'https:'), 'https:' !== e.protocol)) + throw new Error('Protocol "' + e.protocol + '" not supported. Expected "https:"') + return e + } + ;((o.request = function (e, t) { + return ((e = s(e)), n.request.call(this, e, t)) + }), + (o.get = function (e, t) { + return ((e = s(e)), n.get.call(this, e, t)) + })) + }, + 98329: (e, t) => { + ;((t.read = function (e, t, r, n, i) { + var o, + a, + s = 8 * i - n - 1, + u = (1 << s) - 1, + c = u >> 1, + f = -7, + l = r ? i - 1 : 0, + d = r ? -1 : 1, + h = e[t + l] + for (l += d, o = h & ((1 << -f) - 1), h >>= -f, f += s; f > 0; o = 256 * o + e[t + l], l += d, f -= 8); + for (a = o & ((1 << -f) - 1), o >>= -f, f += n; f > 0; a = 256 * a + e[t + l], l += d, f -= 8); + if (0 === o) o = 1 - c + else { + if (o === u) return a ? NaN : (1 / 0) * (h ? -1 : 1) + ;((a += Math.pow(2, n)), (o -= c)) + } + return (h ? -1 : 1) * a * Math.pow(2, o - n) + }), + (t.write = function (e, t, r, n, i, o) { + var a, + s, + u, + c = 8 * o - i - 1, + f = (1 << c) - 1, + l = f >> 1, + d = 23 === i ? Math.pow(2, -24) - Math.pow(2, -77) : 0, + h = n ? 0 : o - 1, + p = n ? 1 : -1, + y = t < 0 || (0 === t && 1 / t < 0) ? 1 : 0 + for ( + t = Math.abs(t), + isNaN(t) || t === 1 / 0 + ? ((s = isNaN(t) ? 1 : 0), (a = f)) + : ((a = Math.floor(Math.log(t) / Math.LN2)), + t * (u = Math.pow(2, -a)) < 1 && (a--, (u *= 2)), + (t += a + l >= 1 ? d / u : d * Math.pow(2, 1 - l)) * u >= 2 && (a++, (u /= 2)), + a + l >= f + ? ((s = 0), (a = f)) + : a + l >= 1 + ? ((s = (t * u - 1) * Math.pow(2, i)), (a += l)) + : ((s = t * Math.pow(2, l - 1) * Math.pow(2, i)), (a = 0))); + i >= 8; + e[r + h] = 255 & s, h += p, s /= 256, i -= 8 + ); + for (a = (a << i) | s, c += i; c > 0; e[r + h] = 255 & a, h += p, a /= 256, c -= 8); + e[r + h - p] |= 128 * y + })) + }, + 19105: (e) => { + 'function' == typeof Object.create + ? (e.exports = function (e, t) { + t && + ((e.super_ = t), + (e.prototype = Object.create(t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }))) + }) + : (e.exports = function (e, t) { + if (t) { + e.super_ = t + var r = function () {} + ;((r.prototype = t.prototype), (e.prototype = new r()), (e.prototype.constructor = e)) + } + }) + }, + 1025: (e, t, r) => { + 'use strict' + var n = r(16697)(), + i = r(34537)('Object.prototype.toString'), + o = function (e) { + return !(n && e && 'object' == typeof e && Symbol.toStringTag in e) && '[object Arguments]' === i(e) + }, + a = function (e) { + return ( + !!o(e) || + (null !== e && + 'object' == typeof e && + 'number' == typeof e.length && + e.length >= 0 && + '[object Array]' !== i(e) && + '[object Function]' === i(e.callee)) + ) + }, + s = (function () { + return o(arguments) + })() + ;((o.isLegacyArguments = a), (e.exports = s ? o : a)) + }, + 68416: (e) => { + 'use strict' + var t, + r, + n = Function.prototype.toString, + i = 'object' == typeof Reflect && null !== Reflect && Reflect.apply + if ('function' == typeof i && 'function' == typeof Object.defineProperty) + try { + ;((t = Object.defineProperty({}, 'length', { + get: function () { + throw r + }, + })), + (r = {}), + i( + function () { + throw 42 + }, + null, + t, + )) + } catch (e) { + e !== r && (i = null) + } + else i = null + var o = /^\s*class\b/, + a = function (e) { + try { + var t = n.call(e) + return o.test(t) + } catch (e) { + return !1 + } + }, + s = function (e) { + try { + return !a(e) && (n.call(e), !0) + } catch (e) { + return !1 + } + }, + u = Object.prototype.toString, + c = 'function' == typeof Symbol && !!Symbol.toStringTag, + f = !(0 in [,]), + l = function () { + return !1 + } + if ('object' == typeof document) { + var d = document.all + u.call(d) === u.call(document.all) && + (l = function (e) { + if ((f || !e) && (void 0 === e || 'object' == typeof e)) + try { + var t = u.call(e) + return ( + ('[object HTMLAllCollection]' === t || + '[object HTML document.all class]' === t || + '[object HTMLCollection]' === t || + '[object Object]' === t) && + null == e('') + ) + } catch (e) {} + return !1 + }) + } + e.exports = i + ? function (e) { + if (l(e)) return !0 + if (!e) return !1 + if ('function' != typeof e && 'object' != typeof e) return !1 + try { + i(e, null, t) + } catch (e) { + if (e !== r) return !1 + } + return !a(e) && s(e) + } + : function (e) { + if (l(e)) return !0 + if (!e) return !1 + if ('function' != typeof e && 'object' != typeof e) return !1 + if (c) return s(e) + if (a(e)) return !1 + var t = u.call(e) + return !('[object Function]' !== t && '[object GeneratorFunction]' !== t && !/^\[object HTML/.test(t)) && s(e) + } + }, + 99958: (e, t, r) => { + 'use strict' + var n, + i = Object.prototype.toString, + o = Function.prototype.toString, + a = /^\s*(?:function)?\*/, + s = r(16697)(), + u = Object.getPrototypeOf + e.exports = function (e) { + if ('function' != typeof e) return !1 + if (a.test(o.call(e))) return !0 + if (!s) return '[object GeneratorFunction]' === i.call(e) + if (!u) return !1 + if (void 0 === n) { + var t = (function () { + if (!s) return !1 + try { + return Function('return function*() {}')() + } catch (e) {} + })() + n = !!t && u(t) + } + return u(e) === n + } + }, + 52160: (e) => { + 'use strict' + e.exports = function (e) { + return e != e + } + }, + 34124: (e, t, r) => { + 'use strict' + var n = r(47208), + i = r(31907), + o = r(52160), + a = r(46226), + s = r(28728), + u = n(a(), Number) + ;(i(u, { getPolyfill: a, implementation: o, shim: s }), (e.exports = u)) + }, + 46226: (e, t, r) => { + 'use strict' + var n = r(52160) + e.exports = function () { + return Number.isNaN && Number.isNaN(NaN) && !Number.isNaN('a') ? Number.isNaN : n + } + }, + 28728: (e, t, r) => { + 'use strict' + var n = r(31907), + i = r(46226) + e.exports = function () { + var e = i() + return ( + n( + Number, + { isNaN: e }, + { + isNaN: function () { + return Number.isNaN !== e + }, + }, + ), + e + ) + } + }, + 44406: (e, t, r) => { + 'use strict' + var n = r(15583), + i = r(74546), + o = r(34537), + a = o('Object.prototype.toString'), + s = r(16697)(), + u = r(558), + c = 'undefined' == typeof globalThis ? r.g : globalThis, + f = i(), + l = + o('Array.prototype.indexOf', !0) || + function (e, t) { + for (var r = 0; r < e.length; r += 1) if (e[r] === t) return r + return -1 + }, + d = o('String.prototype.slice'), + h = {}, + p = Object.getPrototypeOf + ;(s && + u && + p && + n(f, function (e) { + var t = new c[e]() + if (Symbol.toStringTag in t) { + var r = p(t), + n = u(r, Symbol.toStringTag) + if (!n) { + var i = p(r) + n = u(i, Symbol.toStringTag) + } + h[e] = n.get + } + }), + (e.exports = function (e) { + if (!e || 'object' != typeof e) return !1 + if (!s || !(Symbol.toStringTag in e)) { + var t = d(a(e), 8, -1) + return l(f, t) > -1 + } + return ( + !!u && + (function (e) { + var t = !1 + return ( + n(h, function (r, n) { + if (!t) + try { + t = r.call(e) === n + } catch (e) {} + }), + t + ) + })(e) + ) + })) + }, + 26056: (e, t, r) => { + var n = r(72221)(r(9649), 'DataView') + e.exports = n + }, + 21102: (e, t, r) => { + var n = r(1637), + i = r(16380), + o = r(17408), + a = r(53997), + s = r(34642) + function u(e) { + var t = -1, + r = null == e ? 0 : e.length + for (this.clear(); ++t < r; ) { + var n = e[t] + this.set(n[0], n[1]) + } + } + ;((u.prototype.clear = n), (u.prototype.delete = i), (u.prototype.get = o), (u.prototype.has = a), (u.prototype.set = s), (e.exports = u)) + }, + 36491: (e, t, r) => { + var n = r(76073), + i = r(23390), + o = r(42461), + a = r(18190), + s = r(95670) + function u(e) { + var t = -1, + r = null == e ? 0 : e.length + for (this.clear(); ++t < r; ) { + var n = e[t] + this.set(n[0], n[1]) + } + } + ;((u.prototype.clear = n), (u.prototype.delete = i), (u.prototype.get = o), (u.prototype.has = a), (u.prototype.set = s), (e.exports = u)) + }, + 95651: (e, t, r) => { + var n = r(72221)(r(9649), 'Map') + e.exports = n + }, + 52290: (e, t, r) => { + var n = r(6881), + i = r(25089), + o = r(67548), + a = r(72151), + s = r(51476) + function u(e) { + var t = -1, + r = null == e ? 0 : e.length + for (this.clear(); ++t < r; ) { + var n = e[t] + this.set(n[0], n[1]) + } + } + ;((u.prototype.clear = n), (u.prototype.delete = i), (u.prototype.get = o), (u.prototype.has = a), (u.prototype.set = s), (e.exports = u)) + }, + 36561: (e, t, r) => { + var n = r(72221)(r(9649), 'Promise') + e.exports = n + }, + 89018: (e, t, r) => { + var n = r(72221)(r(9649), 'Set') + e.exports = n + }, + 88212: (e, t, r) => { + var n = r(52290), + i = r(94636), + o = r(49810) + function a(e) { + var t = -1, + r = null == e ? 0 : e.length + for (this.__data__ = new n(); ++t < r; ) this.add(e[t]) + } + ;((a.prototype.add = a.prototype.push = i), (a.prototype.has = o), (e.exports = a)) + }, + 47649: (e, t, r) => { + var n = r(36491), + i = r(38023), + o = r(39611), + a = r(6138), + s = r(96961), + u = r(32631) + function c(e) { + var t = (this.__data__ = new n(e)) + this.size = t.size + } + ;((c.prototype.clear = i), (c.prototype.delete = o), (c.prototype.get = a), (c.prototype.has = s), (c.prototype.set = u), (e.exports = c)) + }, + 20997: (e, t, r) => { + var n = r(9649).Symbol + e.exports = n + }, + 37830: (e, t, r) => { + var n = r(9649).Uint8Array + e.exports = n + }, + 43895: (e, t, r) => { + var n = r(72221)(r(9649), 'WeakMap') + e.exports = n + }, + 65757: (e) => { + e.exports = function (e, t, r, n) { + for (var i = -1, o = null == e ? 0 : e.length; ++i < o; ) { + var a = e[i] + t(n, a, r(a), e) + } + return n + } + }, + 41155: (e) => { + e.exports = function (e, t) { + for (var r = -1, n = null == e ? 0 : e.length, i = 0, o = []; ++r < n; ) { + var a = e[r] + t(a, r, e) && (o[i++] = a) + } + return o + } + }, + 17296: (e, t, r) => { + var n = r(4830), + i = r(27987), + o = r(69546), + a = r(80758), + s = r(95824), + u = r(65739), + c = Object.prototype.hasOwnProperty + e.exports = function (e, t) { + var r = o(e), + f = !r && i(e), + l = !r && !f && a(e), + d = !r && !f && !l && u(e), + h = r || f || l || d, + p = h ? n(e.length, String) : [], + y = p.length + for (var g in e) + (!t && !c.call(e, g)) || + (h && + ('length' == g || + (l && ('offset' == g || 'parent' == g)) || + (d && ('buffer' == g || 'byteLength' == g || 'byteOffset' == g)) || + s(g, y))) || + p.push(g) + return p + } + }, + 81078: (e) => { + e.exports = function (e, t) { + for (var r = -1, n = null == e ? 0 : e.length, i = Array(n); ++r < n; ) i[r] = t(e[r], r, e) + return i + } + }, + 35276: (e) => { + e.exports = function (e, t) { + for (var r = -1, n = t.length, i = e.length; ++r < n; ) e[i + r] = t[r] + return e + } + }, + 22289: (e) => { + e.exports = function (e, t) { + for (var r = -1, n = null == e ? 0 : e.length; ++r < n; ) if (t(e[r], r, e)) return !0 + return !1 + } + }, + 88902: (e, t, r) => { + var n = r(32618), + i = r(17689), + o = Object.prototype.hasOwnProperty + e.exports = function (e, t, r) { + var a = e[t] + ;(o.call(e, t) && i(a, r) && (void 0 !== r || t in e)) || n(e, t, r) + } + }, + 28627: (e, t, r) => { + var n = r(17689) + e.exports = function (e, t) { + for (var r = e.length; r--; ) if (n(e[r][0], t)) return r + return -1 + } + }, + 78959: (e, t, r) => { + var n = r(60836) + e.exports = function (e, t, r, i) { + return ( + n(e, function (e, n, o) { + t(i, e, r(e), o) + }), + i + ) + } + }, + 32618: (e, t, r) => { + var n = r(80026) + e.exports = function (e, t, r) { + '__proto__' == t && n ? n(e, t, { configurable: !0, enumerable: !0, value: r, writable: !0 }) : (e[t] = r) + } + }, + 60836: (e, t, r) => { + var n = r(17623), + i = r(68804)(n) + e.exports = i + }, + 33169: (e, t, r) => { + var n = r(35276), + i = r(54788) + e.exports = function e(t, r, o, a, s) { + var u = -1, + c = t.length + for (o || (o = i), s || (s = []); ++u < c; ) { + var f = t[u] + r > 0 && o(f) ? (r > 1 ? e(f, r - 1, o, a, s) : n(s, f)) : a || (s[s.length] = f) + } + return s + } + }, + 11453: (e, t, r) => { + var n = r(55517)() + e.exports = n + }, + 17623: (e, t, r) => { + var n = r(11453), + i = r(25961) + e.exports = function (e, t) { + return e && n(e, t, i) + } + }, + 28829: (e, t, r) => { + var n = r(6927), + i = r(49558) + e.exports = function (e, t) { + for (var r = 0, o = (t = n(t, e)).length; null != e && r < o; ) e = e[i(t[r++])] + return r && r == o ? e : void 0 + } + }, + 12506: (e, t, r) => { + var n = r(35276), + i = r(69546) + e.exports = function (e, t, r) { + var o = t(e) + return i(e) ? o : n(o, r(e)) + } + }, + 28247: (e, t, r) => { + var n = r(20997), + i = r(37386), + o = r(4591), + a = n ? n.toStringTag : void 0 + e.exports = function (e) { + return null == e ? (void 0 === e ? '[object Undefined]' : '[object Null]') : a && a in Object(e) ? i(e) : o(e) + } + }, + 13233: (e) => { + e.exports = function (e, t) { + return null != e && t in Object(e) + } + }, + 70621: (e, t, r) => { + var n = r(28247), + i = r(17734) + e.exports = function (e) { + return i(e) && '[object Arguments]' == n(e) + } + }, + 89107: (e, t, r) => { + var n = r(49739), + i = r(17734) + e.exports = function e(t, r, o, a, s) { + return t === r || (null == t || null == r || (!i(t) && !i(r)) ? t != t && r != r : n(t, r, o, a, e, s)) + } + }, + 49739: (e, t, r) => { + var n = r(47649), + i = r(79327), + o = r(21550), + a = r(98761), + s = r(11970), + u = r(69546), + c = r(80758), + f = r(65739), + l = '[object Arguments]', + d = '[object Array]', + h = '[object Object]', + p = Object.prototype.hasOwnProperty + e.exports = function (e, t, r, y, g, b) { + var m = u(e), + v = u(t), + w = m ? d : s(e), + _ = v ? d : s(t), + E = (w = w == l ? h : w) == h, + S = (_ = _ == l ? h : _) == h, + A = w == _ + if (A && c(e)) { + if (!c(t)) return !1 + ;((m = !0), (E = !1)) + } + if (A && !E) return (b || (b = new n()), m || f(e) ? i(e, t, r, y, g, b) : o(e, t, w, r, y, g, b)) + if (!(1 & r)) { + var O = E && p.call(e, '__wrapped__'), + M = S && p.call(t, '__wrapped__') + if (O || M) { + var T = O ? e.value() : e, + I = M ? t.value() : t + return (b || (b = new n()), g(T, I, r, y, b)) + } + } + return !!A && (b || (b = new n()), a(e, t, r, y, g, b)) + } + }, + 24283: (e, t, r) => { + var n = r(47649), + i = r(89107) + e.exports = function (e, t, r, o) { + var a = r.length, + s = a, + u = !o + if (null == e) return !s + for (e = Object(e); a--; ) { + var c = r[a] + if (u && c[2] ? c[1] !== e[c[0]] : !(c[0] in e)) return !1 + } + for (; ++a < s; ) { + var f = (c = r[a])[0], + l = e[f], + d = c[1] + if (u && c[2]) { + if (void 0 === l && !(f in e)) return !1 + } else { + var h = new n() + if (o) var p = o(l, d, f, e, t, h) + if (!(void 0 === p ? i(d, l, 3, o, h) : p)) return !1 + } + } + return !0 + } + }, + 50291: (e, t, r) => { + var n = r(93331), + i = r(37114), + o = r(12289), + a = r(77606), + s = /^\[object .+?Constructor\]$/, + u = Function.prototype, + c = Object.prototype, + f = u.toString, + l = c.hasOwnProperty, + d = RegExp( + '^' + + f + .call(l) + .replace(/[\\^$.*+?()[\]{}|]/g, '\\$&') + .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + + '$', + ) + e.exports = function (e) { + return !(!o(e) || i(e)) && (n(e) ? d : s).test(a(e)) + } + }, + 89278: (e, t, r) => { + var n = r(28247), + i = r(80459), + o = r(17734), + a = {} + ;((a['[object Float32Array]'] = + a['[object Float64Array]'] = + a['[object Int8Array]'] = + a['[object Int16Array]'] = + a['[object Int32Array]'] = + a['[object Uint8Array]'] = + a['[object Uint8ClampedArray]'] = + a['[object Uint16Array]'] = + a['[object Uint32Array]'] = + !0), + (a['[object Arguments]'] = + a['[object Array]'] = + a['[object ArrayBuffer]'] = + a['[object Boolean]'] = + a['[object DataView]'] = + a['[object Date]'] = + a['[object Error]'] = + a['[object Function]'] = + a['[object Map]'] = + a['[object Number]'] = + a['[object Object]'] = + a['[object RegExp]'] = + a['[object Set]'] = + a['[object String]'] = + a['[object WeakMap]'] = + !1), + (e.exports = function (e) { + return o(e) && i(e.length) && !!a[n(e)] + })) + }, + 55615: (e, t, r) => { + var n = r(68835), + i = r(95010), + o = r(19568), + a = r(69546), + s = r(96730) + e.exports = function (e) { + return 'function' == typeof e ? e : null == e ? o : 'object' == typeof e ? (a(e) ? i(e[0], e[1]) : n(e)) : s(e) + } + }, + 59011: (e, t, r) => { + var n = r(46358), + i = r(95513), + o = Object.prototype.hasOwnProperty + e.exports = function (e) { + if (!n(e)) return i(e) + var t = [] + for (var r in Object(e)) o.call(e, r) && 'constructor' != r && t.push(r) + return t + } + }, + 56827: (e, t, r) => { + var n = r(12289), + i = r(46358), + o = r(34040), + a = Object.prototype.hasOwnProperty + e.exports = function (e) { + if (!n(e)) return o(e) + var t = i(e), + r = [] + for (var s in e) ('constructor' != s || (!t && a.call(e, s))) && r.push(s) + return r + } + }, + 91996: (e, t, r) => { + var n = r(60836), + i = r(46387) + e.exports = function (e, t) { + var r = -1, + o = i(e) ? Array(e.length) : [] + return ( + n(e, function (e, n, i) { + o[++r] = t(e, n, i) + }), + o + ) + } + }, + 68835: (e, t, r) => { + var n = r(24283), + i = r(96256), + o = r(85447) + e.exports = function (e) { + var t = i(e) + return 1 == t.length && t[0][2] + ? o(t[0][0], t[0][1]) + : function (r) { + return r === e || n(r, e, t) + } + } + }, + 95010: (e, t, r) => { + var n = r(89107), + i = r(9229), + o = r(86717), + a = r(65677), + s = r(34834), + u = r(85447), + c = r(49558) + e.exports = function (e, t) { + return a(e) && s(t) + ? u(c(e), t) + : function (r) { + var a = i(r, e) + return void 0 === a && a === t ? o(r, e) : n(t, a, 3) + } + } + }, + 33092: (e, t, r) => { + var n = r(28829), + i = r(17338), + o = r(6927) + e.exports = function (e, t, r) { + for (var a = -1, s = t.length, u = {}; ++a < s; ) { + var c = t[a], + f = n(e, c) + r(f, c) && i(u, o(c, e), f) + } + return u + } + }, + 74430: (e) => { + e.exports = function (e) { + return function (t) { + return null == t ? void 0 : t[e] + } + } + }, + 12257: (e, t, r) => { + var n = r(28829) + e.exports = function (e) { + return function (t) { + return n(t, e) + } + } + }, + 17338: (e, t, r) => { + var n = r(88902), + i = r(6927), + o = r(95824), + a = r(12289), + s = r(49558) + e.exports = function (e, t, r, u) { + if (!a(e)) return e + for (var c = -1, f = (t = i(t, e)).length, l = f - 1, d = e; null != d && ++c < f; ) { + var h = s(t[c]), + p = r + if ('__proto__' === h || 'constructor' === h || 'prototype' === h) return e + if (c != l) { + var y = d[h] + void 0 === (p = u ? u(y, h, d) : void 0) && (p = a(y) ? y : o(t[c + 1]) ? [] : {}) + } + ;(n(d, h, p), (d = d[h])) + } + return e + } + }, + 4830: (e) => { + e.exports = function (e, t) { + for (var r = -1, n = Array(e); ++r < e; ) n[r] = t(r) + return n + } + }, + 7874: (e, t, r) => { + var n = r(20997), + i = r(81078), + o = r(69546), + a = r(42008), + s = n ? n.prototype : void 0, + u = s ? s.toString : void 0 + e.exports = function e(t) { + if ('string' == typeof t) return t + if (o(t)) return i(t, e) + '' + if (a(t)) return u ? u.call(t) : '' + var r = t + '' + return '0' == r && 1 / t == -1 / 0 ? '-0' : r + } + }, + 99199: (e) => { + e.exports = function (e) { + return function (t) { + return e(t) + } + } + }, + 48138: (e) => { + e.exports = function (e, t) { + return e.has(t) + } + }, + 6927: (e, t, r) => { + var n = r(69546), + i = r(65677), + o = r(91503), + a = r(39244) + e.exports = function (e, t) { + return n(e) ? e : i(e, t) ? [e] : o(a(e)) + } + }, + 48976: (e, t, r) => { + var n = r(9649)['__core-js_shared__'] + e.exports = n + }, + 97147: (e, t, r) => { + var n = r(65757), + i = r(78959), + o = r(55615), + a = r(69546) + e.exports = function (e, t) { + return function (r, s) { + var u = a(r) ? n : i, + c = t ? t() : {} + return u(r, e, o(s, 2), c) + } + } + }, + 68804: (e, t, r) => { + var n = r(46387) + e.exports = function (e, t) { + return function (r, i) { + if (null == r) return r + if (!n(r)) return e(r, i) + for (var o = r.length, a = t ? o : -1, s = Object(r); (t ? a-- : ++a < o) && !1 !== i(s[a], a, s); ); + return r + } + } + }, + 55517: (e) => { + e.exports = function (e) { + return function (t, r, n) { + for (var i = -1, o = Object(t), a = n(t), s = a.length; s--; ) { + var u = a[e ? s : ++i] + if (!1 === r(o[u], u, o)) break + } + return t + } + } + }, + 80026: (e, t, r) => { + var n = r(72221), + i = (function () { + try { + var e = n(Object, 'defineProperty') + return (e({}, '', {}), e) + } catch (e) {} + })() + e.exports = i + }, + 79327: (e, t, r) => { + var n = r(88212), + i = r(22289), + o = r(48138) + e.exports = function (e, t, r, a, s, u) { + var c = 1 & r, + f = e.length, + l = t.length + if (f != l && !(c && l > f)) return !1 + var d = u.get(e), + h = u.get(t) + if (d && h) return d == t && h == e + var p = -1, + y = !0, + g = 2 & r ? new n() : void 0 + for (u.set(e, t), u.set(t, e); ++p < f; ) { + var b = e[p], + m = t[p] + if (a) var v = c ? a(m, b, p, t, e, u) : a(b, m, p, e, t, u) + if (void 0 !== v) { + if (v) continue + y = !1 + break + } + if (g) { + if ( + !i(t, function (e, t) { + if (!o(g, t) && (b === e || s(b, e, r, a, u))) return g.push(t) + }) + ) { + y = !1 + break + } + } else if (b !== m && !s(b, m, r, a, u)) { + y = !1 + break + } + } + return (u.delete(e), u.delete(t), y) + } + }, + 21550: (e, t, r) => { + var n = r(20997), + i = r(37830), + o = r(17689), + a = r(79327), + s = r(46498), + u = r(56783), + c = n ? n.prototype : void 0, + f = c ? c.valueOf : void 0 + e.exports = function (e, t, r, n, c, l, d) { + switch (r) { + case '[object DataView]': + if (e.byteLength != t.byteLength || e.byteOffset != t.byteOffset) return !1 + ;((e = e.buffer), (t = t.buffer)) + case '[object ArrayBuffer]': + return !(e.byteLength != t.byteLength || !l(new i(e), new i(t))) + case '[object Boolean]': + case '[object Date]': + case '[object Number]': + return o(+e, +t) + case '[object Error]': + return e.name == t.name && e.message == t.message + case '[object RegExp]': + case '[object String]': + return e == t + '' + case '[object Map]': + var h = s + case '[object Set]': + var p = 1 & n + if ((h || (h = u), e.size != t.size && !p)) return !1 + var y = d.get(e) + if (y) return y == t + ;((n |= 2), d.set(e, t)) + var g = a(h(e), h(t), n, c, l, d) + return (d.delete(e), g) + case '[object Symbol]': + if (f) return f.call(e) == f.call(t) + } + return !1 + } + }, + 98761: (e, t, r) => { + var n = r(28616), + i = Object.prototype.hasOwnProperty + e.exports = function (e, t, r, o, a, s) { + var u = 1 & r, + c = n(e), + f = c.length + if (f != n(t).length && !u) return !1 + for (var l = f; l--; ) { + var d = c[l] + if (!(u ? d in t : i.call(t, d))) return !1 + } + var h = s.get(e), + p = s.get(t) + if (h && p) return h == t && p == e + var y = !0 + ;(s.set(e, t), s.set(t, e)) + for (var g = u; ++l < f; ) { + var b = e[(d = c[l])], + m = t[d] + if (o) var v = u ? o(m, b, d, t, e, s) : o(b, m, d, e, t, s) + if (!(void 0 === v ? b === m || a(b, m, r, o, s) : v)) { + y = !1 + break + } + g || (g = 'constructor' == d) + } + if (y && !g) { + var w = e.constructor, + _ = t.constructor + w == _ || + !('constructor' in e) || + !('constructor' in t) || + ('function' == typeof w && w instanceof w && 'function' == typeof _ && _ instanceof _) || + (y = !1) + } + return (s.delete(e), s.delete(t), y) + } + }, + 46954: (e, t, r) => { + var n = 'object' == typeof r.g && r.g && r.g.Object === Object && r.g + e.exports = n + }, + 28616: (e, t, r) => { + var n = r(12506), + i = r(4918), + o = r(25961) + e.exports = function (e) { + return n(e, o, i) + } + }, + 10478: (e, t, r) => { + var n = r(12506), + i = r(2659), + o = r(14399) + e.exports = function (e) { + return n(e, o, i) + } + }, + 55502: (e, t, r) => { + var n = r(89983) + e.exports = function (e, t) { + var r = e.__data__ + return n(t) ? r['string' == typeof t ? 'string' : 'hash'] : r.map + } + }, + 96256: (e, t, r) => { + var n = r(34834), + i = r(25961) + e.exports = function (e) { + for (var t = i(e), r = t.length; r--; ) { + var o = t[r], + a = e[o] + t[r] = [o, a, n(a)] + } + return t + } + }, + 72221: (e, t, r) => { + var n = r(50291), + i = r(85779) + e.exports = function (e, t) { + var r = i(e, t) + return n(r) ? r : void 0 + } + }, + 65506: (e, t, r) => { + var n = r(78892)(Object.getPrototypeOf, Object) + e.exports = n + }, + 37386: (e, t, r) => { + var n = r(20997), + i = Object.prototype, + o = i.hasOwnProperty, + a = i.toString, + s = n ? n.toStringTag : void 0 + e.exports = function (e) { + var t = o.call(e, s), + r = e[s] + try { + e[s] = void 0 + var n = !0 + } catch (e) {} + var i = a.call(e) + return (n && (t ? (e[s] = r) : delete e[s]), i) + } + }, + 4918: (e, t, r) => { + var n = r(41155), + i = r(41258), + o = Object.prototype.propertyIsEnumerable, + a = Object.getOwnPropertySymbols, + s = a + ? function (e) { + return null == e + ? [] + : ((e = Object(e)), + n(a(e), function (t) { + return o.call(e, t) + })) + } + : i + e.exports = s + }, + 2659: (e, t, r) => { + var n = r(35276), + i = r(65506), + o = r(4918), + a = r(41258), + s = Object.getOwnPropertySymbols + ? function (e) { + for (var t = []; e; ) (n(t, o(e)), (e = i(e))) + return t + } + : a + e.exports = s + }, + 11970: (e, t, r) => { + var n = r(26056), + i = r(95651), + o = r(36561), + a = r(89018), + s = r(43895), + u = r(28247), + c = r(77606), + f = '[object Map]', + l = '[object Promise]', + d = '[object Set]', + h = '[object WeakMap]', + p = '[object DataView]', + y = c(n), + g = c(i), + b = c(o), + m = c(a), + v = c(s), + w = u + ;(((n && w(new n(new ArrayBuffer(1))) != p) || + (i && w(new i()) != f) || + (o && w(o.resolve()) != l) || + (a && w(new a()) != d) || + (s && w(new s()) != h)) && + (w = function (e) { + var t = u(e), + r = '[object Object]' == t ? e.constructor : void 0, + n = r ? c(r) : '' + if (n) + switch (n) { + case y: + return p + case g: + return f + case b: + return l + case m: + return d + case v: + return h + } + return t + }), + (e.exports = w)) + }, + 85779: (e) => { + e.exports = function (e, t) { + return null == e ? void 0 : e[t] + } + }, + 32889: (e, t, r) => { + var n = r(6927), + i = r(27987), + o = r(69546), + a = r(95824), + s = r(80459), + u = r(49558) + e.exports = function (e, t, r) { + for (var c = -1, f = (t = n(t, e)).length, l = !1; ++c < f; ) { + var d = u(t[c]) + if (!(l = null != e && r(e, d))) break + e = e[d] + } + return l || ++c != f ? l : !!(f = null == e ? 0 : e.length) && s(f) && a(d, f) && (o(e) || i(e)) + } + }, + 1637: (e, t, r) => { + var n = r(55586) + e.exports = function () { + ;((this.__data__ = n ? n(null) : {}), (this.size = 0)) + } + }, + 16380: (e) => { + e.exports = function (e) { + var t = this.has(e) && delete this.__data__[e] + return ((this.size -= t ? 1 : 0), t) + } + }, + 17408: (e, t, r) => { + var n = r(55586), + i = Object.prototype.hasOwnProperty + e.exports = function (e) { + var t = this.__data__ + if (n) { + var r = t[e] + return '__lodash_hash_undefined__' === r ? void 0 : r + } + return i.call(t, e) ? t[e] : void 0 + } + }, + 53997: (e, t, r) => { + var n = r(55586), + i = Object.prototype.hasOwnProperty + e.exports = function (e) { + var t = this.__data__ + return n ? void 0 !== t[e] : i.call(t, e) + } + }, + 34642: (e, t, r) => { + var n = r(55586) + e.exports = function (e, t) { + var r = this.__data__ + return ((this.size += this.has(e) ? 0 : 1), (r[e] = n && void 0 === t ? '__lodash_hash_undefined__' : t), this) + } + }, + 54788: (e, t, r) => { + var n = r(20997), + i = r(27987), + o = r(69546), + a = n ? n.isConcatSpreadable : void 0 + e.exports = function (e) { + return o(e) || i(e) || !!(a && e && e[a]) + } + }, + 95824: (e) => { + var t = /^(?:0|[1-9]\d*)$/ + e.exports = function (e, r) { + var n = typeof e + return !!(r = null == r ? 9007199254740991 : r) && ('number' == n || ('symbol' != n && t.test(e))) && e > -1 && e % 1 == 0 && e < r + } + }, + 65677: (e, t, r) => { + var n = r(69546), + i = r(42008), + o = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, + a = /^\w*$/ + e.exports = function (e, t) { + if (n(e)) return !1 + var r = typeof e + return !('number' != r && 'symbol' != r && 'boolean' != r && null != e && !i(e)) || a.test(e) || !o.test(e) || (null != t && e in Object(t)) + } + }, + 89983: (e) => { + e.exports = function (e) { + var t = typeof e + return 'string' == t || 'number' == t || 'symbol' == t || 'boolean' == t ? '__proto__' !== e : null === e + } + }, + 37114: (e, t, r) => { + var n, + i = r(48976), + o = (n = /[^.]+$/.exec((i && i.keys && i.keys.IE_PROTO) || '')) ? 'Symbol(src)_1.' + n : '' + e.exports = function (e) { + return !!o && o in e + } + }, + 46358: (e) => { + var t = Object.prototype + e.exports = function (e) { + var r = e && e.constructor + return e === (('function' == typeof r && r.prototype) || t) + } + }, + 34834: (e, t, r) => { + var n = r(12289) + e.exports = function (e) { + return e == e && !n(e) + } + }, + 76073: (e) => { + e.exports = function () { + ;((this.__data__ = []), (this.size = 0)) + } + }, + 23390: (e, t, r) => { + var n = r(28627), + i = Array.prototype.splice + e.exports = function (e) { + var t = this.__data__, + r = n(t, e) + return !(r < 0 || (r == t.length - 1 ? t.pop() : i.call(t, r, 1), --this.size, 0)) + } + }, + 42461: (e, t, r) => { + var n = r(28627) + e.exports = function (e) { + var t = this.__data__, + r = n(t, e) + return r < 0 ? void 0 : t[r][1] + } + }, + 18190: (e, t, r) => { + var n = r(28627) + e.exports = function (e) { + return n(this.__data__, e) > -1 + } + }, + 95670: (e, t, r) => { + var n = r(28627) + e.exports = function (e, t) { + var r = this.__data__, + i = n(r, e) + return (i < 0 ? (++this.size, r.push([e, t])) : (r[i][1] = t), this) + } + }, + 6881: (e, t, r) => { + var n = r(21102), + i = r(36491), + o = r(95651) + e.exports = function () { + ;((this.size = 0), (this.__data__ = { hash: new n(), map: new (o || i)(), string: new n() })) + } + }, + 25089: (e, t, r) => { + var n = r(55502) + e.exports = function (e) { + var t = n(this, e).delete(e) + return ((this.size -= t ? 1 : 0), t) + } + }, + 67548: (e, t, r) => { + var n = r(55502) + e.exports = function (e) { + return n(this, e).get(e) + } + }, + 72151: (e, t, r) => { + var n = r(55502) + e.exports = function (e) { + return n(this, e).has(e) + } + }, + 51476: (e, t, r) => { + var n = r(55502) + e.exports = function (e, t) { + var r = n(this, e), + i = r.size + return (r.set(e, t), (this.size += r.size == i ? 0 : 1), this) + } + }, + 46498: (e) => { + e.exports = function (e) { + var t = -1, + r = Array(e.size) + return ( + e.forEach(function (e, n) { + r[++t] = [n, e] + }), + r + ) + } + }, + 85447: (e) => { + e.exports = function (e, t) { + return function (r) { + return null != r && r[e] === t && (void 0 !== t || e in Object(r)) + } + } + }, + 72984: (e, t, r) => { + var n = r(2520) + e.exports = function (e) { + var t = n(e, function (e) { + return (500 === r.size && r.clear(), e) + }), + r = t.cache + return t + } + }, + 55586: (e, t, r) => { + var n = r(72221)(Object, 'create') + e.exports = n + }, + 95513: (e, t, r) => { + var n = r(78892)(Object.keys, Object) + e.exports = n + }, + 34040: (e) => { + e.exports = function (e) { + var t = [] + if (null != e) for (var r in Object(e)) t.push(r) + return t + } + }, + 59214: (e, t, r) => { + e = r.nmd(e) + var n = r(46954), + i = t && !t.nodeType && t, + o = i && e && !e.nodeType && e, + a = o && o.exports === i && n.process, + s = (function () { + try { + return (o && o.require && o.require('util').types) || (a && a.binding && a.binding('util')) + } catch (e) {} + })() + e.exports = s + }, + 4591: (e) => { + var t = Object.prototype.toString + e.exports = function (e) { + return t.call(e) + } + }, + 78892: (e) => { + e.exports = function (e, t) { + return function (r) { + return e(t(r)) + } + } + }, + 9649: (e, t, r) => { + var n = r(46954), + i = 'object' == typeof self && self && self.Object === Object && self, + o = n || i || Function('return this')() + e.exports = o + }, + 94636: (e) => { + e.exports = function (e) { + return (this.__data__.set(e, '__lodash_hash_undefined__'), this) + } + }, + 49810: (e) => { + e.exports = function (e) { + return this.__data__.has(e) + } + }, + 56783: (e) => { + e.exports = function (e) { + var t = -1, + r = Array(e.size) + return ( + e.forEach(function (e) { + r[++t] = e + }), + r + ) + } + }, + 38023: (e, t, r) => { + var n = r(36491) + e.exports = function () { + ;((this.__data__ = new n()), (this.size = 0)) + } + }, + 39611: (e) => { + e.exports = function (e) { + var t = this.__data__, + r = t.delete(e) + return ((this.size = t.size), r) + } + }, + 6138: (e) => { + e.exports = function (e) { + return this.__data__.get(e) + } + }, + 96961: (e) => { + e.exports = function (e) { + return this.__data__.has(e) + } + }, + 32631: (e, t, r) => { + var n = r(36491), + i = r(95651), + o = r(52290) + e.exports = function (e, t) { + var r = this.__data__ + if (r instanceof n) { + var a = r.__data__ + if (!i || a.length < 199) return (a.push([e, t]), (this.size = ++r.size), this) + r = this.__data__ = new o(a) + } + return (r.set(e, t), (this.size = r.size), this) + } + }, + 91503: (e, t, r) => { + var n = r(72984), + i = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g, + o = /\\(\\)?/g, + a = n(function (e) { + var t = [] + return ( + 46 === e.charCodeAt(0) && t.push(''), + e.replace(i, function (e, r, n, i) { + t.push(n ? i.replace(o, '$1') : r || e) + }), + t + ) + }) + e.exports = a + }, + 49558: (e, t, r) => { + var n = r(42008) + e.exports = function (e) { + if ('string' == typeof e || n(e)) return e + var t = e + '' + return '0' == t && 1 / e == -1 / 0 ? '-0' : t + } + }, + 77606: (e) => { + var t = Function.prototype.toString + e.exports = function (e) { + if (null != e) { + try { + return t.call(e) + } catch (e) {} + try { + return e + '' + } catch (e) {} + } + return '' + } + }, + 17689: (e) => { + e.exports = function (e, t) { + return e === t || (e != e && t != t) + } + }, + 96372: (e, t, r) => { + var n = r(33169), + i = r(82856) + e.exports = function (e, t) { + return n(i(e, t), 1) + } + }, + 60567: (e, t, r) => { + var n = r(33169) + e.exports = function (e) { + return null != e && e.length ? n(e, 1) : [] + } + }, + 9229: (e, t, r) => { + var n = r(28829) + e.exports = function (e, t, r) { + var i = null == e ? void 0 : n(e, t) + return void 0 === i ? r : i + } + }, + 24865: (e, t, r) => { + var n = r(32618), + i = r(97147), + o = Object.prototype.hasOwnProperty, + a = i(function (e, t, r) { + o.call(e, r) ? e[r].push(t) : n(e, r, [t]) + }) + e.exports = a + }, + 86717: (e, t, r) => { + var n = r(13233), + i = r(32889) + e.exports = function (e, t) { + return null != e && i(e, t, n) + } + }, + 19568: (e) => { + e.exports = function (e) { + return e + } + }, + 27987: (e, t, r) => { + var n = r(70621), + i = r(17734), + o = Object.prototype, + a = o.hasOwnProperty, + s = o.propertyIsEnumerable, + u = n( + (function () { + return arguments + })(), + ) + ? n + : function (e) { + return i(e) && a.call(e, 'callee') && !s.call(e, 'callee') + } + e.exports = u + }, + 69546: (e) => { + var t = Array.isArray + e.exports = t + }, + 46387: (e, t, r) => { + var n = r(93331), + i = r(80459) + e.exports = function (e) { + return null != e && i(e.length) && !n(e) + } + }, + 80758: (e, t, r) => { + e = r.nmd(e) + var n = r(9649), + i = r(68854), + o = t && !t.nodeType && t, + a = o && e && !e.nodeType && e, + s = a && a.exports === o ? n.Buffer : void 0, + u = (s ? s.isBuffer : void 0) || i + e.exports = u + }, + 93331: (e, t, r) => { + var n = r(28247), + i = r(12289) + e.exports = function (e) { + if (!i(e)) return !1 + var t = n(e) + return '[object Function]' == t || '[object GeneratorFunction]' == t || '[object AsyncFunction]' == t || '[object Proxy]' == t + } + }, + 80459: (e) => { + e.exports = function (e) { + return 'number' == typeof e && e > -1 && e % 1 == 0 && e <= 9007199254740991 + } + }, + 12289: (e) => { + e.exports = function (e) { + var t = typeof e + return null != e && ('object' == t || 'function' == t) + } + }, + 17734: (e) => { + e.exports = function (e) { + return null != e && 'object' == typeof e + } + }, + 42008: (e, t, r) => { + var n = r(28247), + i = r(17734) + e.exports = function (e) { + return 'symbol' == typeof e || (i(e) && '[object Symbol]' == n(e)) + } + }, + 65739: (e, t, r) => { + var n = r(89278), + i = r(99199), + o = r(59214), + a = o && o.isTypedArray, + s = a ? i(a) : n + e.exports = s + }, + 25961: (e, t, r) => { + var n = r(17296), + i = r(59011), + o = r(46387) + e.exports = function (e) { + return o(e) ? n(e) : i(e) + } + }, + 14399: (e, t, r) => { + var n = r(17296), + i = r(56827), + o = r(46387) + e.exports = function (e) { + return o(e) ? n(e, !0) : i(e) + } + }, + 40180: function (e, t, r) { + var n + ;((e = r.nmd(e)), + function () { + var i, + o = 'Expected a function', + a = '__lodash_hash_undefined__', + s = '__lodash_placeholder__', + u = 32, + c = 128, + f = 1 / 0, + l = 9007199254740991, + d = NaN, + h = 4294967295, + p = [ + ['ary', c], + ['bind', 1], + ['bindKey', 2], + ['curry', 8], + ['curryRight', 16], + ['flip', 512], + ['partial', u], + ['partialRight', 64], + ['rearg', 256], + ], + y = '[object Arguments]', + g = '[object Array]', + b = '[object Boolean]', + m = '[object Date]', + v = '[object Error]', + w = '[object Function]', + _ = '[object GeneratorFunction]', + E = '[object Map]', + S = '[object Number]', + A = '[object Object]', + O = '[object Promise]', + M = '[object RegExp]', + T = '[object Set]', + I = '[object String]', + N = '[object Symbol]', + x = '[object WeakMap]', + L = '[object ArrayBuffer]', + k = '[object DataView]', + R = '[object Float32Array]', + P = '[object Float64Array]', + B = '[object Int8Array]', + D = '[object Int16Array]', + C = '[object Int32Array]', + j = '[object Uint8Array]', + F = '[object Uint8ClampedArray]', + U = '[object Uint16Array]', + V = '[object Uint32Array]', + H = /\b__p \+= '';/g, + z = /\b(__p \+=) '' \+/g, + q = /(__e\(.*?\)|\b__t\)) \+\n'';/g, + K = /&(?:amp|lt|gt|quot|#39);/g, + W = /[&<>"']/g, + G = RegExp(K.source), + Y = RegExp(W.source), + $ = /<%-([\s\S]+?)%>/g, + X = /<%([\s\S]+?)%>/g, + J = /<%=([\s\S]+?)%>/g, + Z = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, + Q = /^\w*$/, + ee = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g, + te = /[\\^$.*+?()[\]{}|]/g, + re = RegExp(te.source), + ne = /^\s+/, + ie = /\s/, + oe = /\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/, + ae = /\{\n\/\* \[wrapped with (.+)\] \*/, + se = /,? & /, + ue = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g, + ce = /[()=,{}\[\]\/\s]/, + fe = /\\(\\)?/g, + le = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g, + de = /\w*$/, + he = /^[-+]0x[0-9a-f]+$/i, + pe = /^0b[01]+$/i, + ye = /^\[object .+?Constructor\]$/, + ge = /^0o[0-7]+$/i, + be = /^(?:0|[1-9]\d*)$/, + me = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g, + ve = /($^)/, + we = /['\n\r\u2028\u2029\\]/g, + _e = '\\ud800-\\udfff', + Ee = '\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff', + Se = '\\u2700-\\u27bf', + Ae = 'a-z\\xdf-\\xf6\\xf8-\\xff', + Oe = 'A-Z\\xc0-\\xd6\\xd8-\\xde', + Me = '\\ufe0e\\ufe0f', + Te = + '\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000', + Ie = '[' + _e + ']', + Ne = '[' + Te + ']', + xe = '[' + Ee + ']', + Le = '\\d+', + ke = '[' + Se + ']', + Re = '[' + Ae + ']', + Pe = '[^' + _e + Te + Le + Se + Ae + Oe + ']', + Be = '\\ud83c[\\udffb-\\udfff]', + De = '[^' + _e + ']', + Ce = '(?:\\ud83c[\\udde6-\\uddff]){2}', + je = '[\\ud800-\\udbff][\\udc00-\\udfff]', + Fe = '[' + Oe + ']', + Ue = '\\u200d', + Ve = '(?:' + Re + '|' + Pe + ')', + He = '(?:' + Fe + '|' + Pe + ')', + ze = "(?:['’](?:d|ll|m|re|s|t|ve))?", + qe = "(?:['’](?:D|LL|M|RE|S|T|VE))?", + Ke = '(?:' + xe + '|' + Be + ')?', + We = '[' + Me + ']?', + Ge = We + Ke + '(?:' + Ue + '(?:' + [De, Ce, je].join('|') + ')' + We + Ke + ')*', + Ye = '(?:' + [ke, Ce, je].join('|') + ')' + Ge, + $e = '(?:' + [De + xe + '?', xe, Ce, je, Ie].join('|') + ')', + Xe = RegExp("['’]", 'g'), + Je = RegExp(xe, 'g'), + Ze = RegExp(Be + '(?=' + Be + ')|' + $e + Ge, 'g'), + Qe = RegExp( + [ + Fe + '?' + Re + '+' + ze + '(?=' + [Ne, Fe, '$'].join('|') + ')', + He + '+' + qe + '(?=' + [Ne, Fe + Ve, '$'].join('|') + ')', + Fe + '?' + Ve + '+' + ze, + Fe + '+' + qe, + '\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])', + '\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])', + Le, + Ye, + ].join('|'), + 'g', + ), + et = RegExp('[' + Ue + _e + Ee + Me + ']'), + tt = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/, + rt = [ + 'Array', + 'Buffer', + 'DataView', + 'Date', + 'Error', + 'Float32Array', + 'Float64Array', + 'Function', + 'Int8Array', + 'Int16Array', + 'Int32Array', + 'Map', + 'Math', + 'Object', + 'Promise', + 'RegExp', + 'Set', + 'String', + 'Symbol', + 'TypeError', + 'Uint8Array', + 'Uint8ClampedArray', + 'Uint16Array', + 'Uint32Array', + 'WeakMap', + '_', + 'clearTimeout', + 'isFinite', + 'parseInt', + 'setTimeout', + ], + nt = -1, + it = {} + ;((it[R] = it[P] = it[B] = it[D] = it[C] = it[j] = it[F] = it[U] = it[V] = !0), + (it[y] = it[g] = it[L] = it[b] = it[k] = it[m] = it[v] = it[w] = it[E] = it[S] = it[A] = it[M] = it[T] = it[I] = it[x] = !1)) + var ot = {} + ;((ot[y] = + ot[g] = + ot[L] = + ot[k] = + ot[b] = + ot[m] = + ot[R] = + ot[P] = + ot[B] = + ot[D] = + ot[C] = + ot[E] = + ot[S] = + ot[A] = + ot[M] = + ot[T] = + ot[I] = + ot[N] = + ot[j] = + ot[F] = + ot[U] = + ot[V] = + !0), + (ot[v] = ot[w] = ot[x] = !1)) + var at = { '\\': '\\', "'": "'", '\n': 'n', '\r': 'r', '\u2028': 'u2028', '\u2029': 'u2029' }, + st = parseFloat, + ut = parseInt, + ct = 'object' == typeof r.g && r.g && r.g.Object === Object && r.g, + ft = 'object' == typeof self && self && self.Object === Object && self, + lt = ct || ft || Function('return this')(), + dt = t && !t.nodeType && t, + ht = dt && e && !e.nodeType && e, + pt = ht && ht.exports === dt, + yt = pt && ct.process, + gt = (function () { + try { + return (ht && ht.require && ht.require('util').types) || (yt && yt.binding && yt.binding('util')) + } catch (e) {} + })(), + bt = gt && gt.isArrayBuffer, + mt = gt && gt.isDate, + vt = gt && gt.isMap, + wt = gt && gt.isRegExp, + _t = gt && gt.isSet, + Et = gt && gt.isTypedArray + function St(e, t, r) { + switch (r.length) { + case 0: + return e.call(t) + case 1: + return e.call(t, r[0]) + case 2: + return e.call(t, r[0], r[1]) + case 3: + return e.call(t, r[0], r[1], r[2]) + } + return e.apply(t, r) + } + function At(e, t, r, n) { + for (var i = -1, o = null == e ? 0 : e.length; ++i < o; ) { + var a = e[i] + t(n, a, r(a), e) + } + return n + } + function Ot(e, t) { + for (var r = -1, n = null == e ? 0 : e.length; ++r < n && !1 !== t(e[r], r, e); ); + return e + } + function Mt(e, t) { + for (var r = null == e ? 0 : e.length; r-- && !1 !== t(e[r], r, e); ); + return e + } + function Tt(e, t) { + for (var r = -1, n = null == e ? 0 : e.length; ++r < n; ) if (!t(e[r], r, e)) return !1 + return !0 + } + function It(e, t) { + for (var r = -1, n = null == e ? 0 : e.length, i = 0, o = []; ++r < n; ) { + var a = e[r] + t(a, r, e) && (o[i++] = a) + } + return o + } + function Nt(e, t) { + return !(null == e || !e.length) && Ft(e, t, 0) > -1 + } + function xt(e, t, r) { + for (var n = -1, i = null == e ? 0 : e.length; ++n < i; ) if (r(t, e[n])) return !0 + return !1 + } + function Lt(e, t) { + for (var r = -1, n = null == e ? 0 : e.length, i = Array(n); ++r < n; ) i[r] = t(e[r], r, e) + return i + } + function kt(e, t) { + for (var r = -1, n = t.length, i = e.length; ++r < n; ) e[i + r] = t[r] + return e + } + function Rt(e, t, r, n) { + var i = -1, + o = null == e ? 0 : e.length + for (n && o && (r = e[++i]); ++i < o; ) r = t(r, e[i], i, e) + return r + } + function Pt(e, t, r, n) { + var i = null == e ? 0 : e.length + for (n && i && (r = e[--i]); i--; ) r = t(r, e[i], i, e) + return r + } + function Bt(e, t) { + for (var r = -1, n = null == e ? 0 : e.length; ++r < n; ) if (t(e[r], r, e)) return !0 + return !1 + } + var Dt = zt('length') + function Ct(e, t, r) { + var n + return ( + r(e, function (e, r, i) { + if (t(e, r, i)) return ((n = r), !1) + }), + n + ) + } + function jt(e, t, r, n) { + for (var i = e.length, o = r + (n ? 1 : -1); n ? o-- : ++o < i; ) if (t(e[o], o, e)) return o + return -1 + } + function Ft(e, t, r) { + return t == t + ? (function (e, t, r) { + for (var n = r - 1, i = e.length; ++n < i; ) if (e[n] === t) return n + return -1 + })(e, t, r) + : jt(e, Vt, r) + } + function Ut(e, t, r, n) { + for (var i = r - 1, o = e.length; ++i < o; ) if (n(e[i], t)) return i + return -1 + } + function Vt(e) { + return e != e + } + function Ht(e, t) { + var r = null == e ? 0 : e.length + return r ? Wt(e, t) / r : d + } + function zt(e) { + return function (t) { + return null == t ? i : t[e] + } + } + function qt(e) { + return function (t) { + return null == e ? i : e[t] + } + } + function Kt(e, t, r, n, i) { + return ( + i(e, function (e, i, o) { + r = n ? ((n = !1), e) : t(r, e, i, o) + }), + r + ) + } + function Wt(e, t) { + for (var r, n = -1, o = e.length; ++n < o; ) { + var a = t(e[n]) + a !== i && (r = r === i ? a : r + a) + } + return r + } + function Gt(e, t) { + for (var r = -1, n = Array(e); ++r < e; ) n[r] = t(r) + return n + } + function Yt(e) { + return e ? e.slice(0, lr(e) + 1).replace(ne, '') : e + } + function $t(e) { + return function (t) { + return e(t) + } + } + function Xt(e, t) { + return Lt(t, function (t) { + return e[t] + }) + } + function Jt(e, t) { + return e.has(t) + } + function Zt(e, t) { + for (var r = -1, n = e.length; ++r < n && Ft(t, e[r], 0) > -1; ); + return r + } + function Qt(e, t) { + for (var r = e.length; r-- && Ft(t, e[r], 0) > -1; ); + return r + } + var er = qt({ + À: 'A', + Á: 'A', + Â: 'A', + Ã: 'A', + Ä: 'A', + Å: 'A', + à: 'a', + á: 'a', + â: 'a', + ã: 'a', + ä: 'a', + å: 'a', + Ç: 'C', + ç: 'c', + Ð: 'D', + ð: 'd', + È: 'E', + É: 'E', + Ê: 'E', + Ë: 'E', + è: 'e', + é: 'e', + ê: 'e', + ë: 'e', + Ì: 'I', + Í: 'I', + Î: 'I', + Ï: 'I', + ì: 'i', + í: 'i', + î: 'i', + ï: 'i', + Ñ: 'N', + ñ: 'n', + Ò: 'O', + Ó: 'O', + Ô: 'O', + Õ: 'O', + Ö: 'O', + Ø: 'O', + ò: 'o', + ó: 'o', + ô: 'o', + õ: 'o', + ö: 'o', + ø: 'o', + Ù: 'U', + Ú: 'U', + Û: 'U', + Ü: 'U', + ù: 'u', + ú: 'u', + û: 'u', + ü: 'u', + Ý: 'Y', + ý: 'y', + ÿ: 'y', + Æ: 'Ae', + æ: 'ae', + Þ: 'Th', + þ: 'th', + ß: 'ss', + Ā: 'A', + Ă: 'A', + Ą: 'A', + ā: 'a', + ă: 'a', + ą: 'a', + Ć: 'C', + Ĉ: 'C', + Ċ: 'C', + Č: 'C', + ć: 'c', + ĉ: 'c', + ċ: 'c', + č: 'c', + Ď: 'D', + Đ: 'D', + ď: 'd', + đ: 'd', + Ē: 'E', + Ĕ: 'E', + Ė: 'E', + Ę: 'E', + Ě: 'E', + ē: 'e', + ĕ: 'e', + ė: 'e', + ę: 'e', + ě: 'e', + Ĝ: 'G', + Ğ: 'G', + Ġ: 'G', + Ģ: 'G', + ĝ: 'g', + ğ: 'g', + ġ: 'g', + ģ: 'g', + Ĥ: 'H', + Ħ: 'H', + ĥ: 'h', + ħ: 'h', + Ĩ: 'I', + Ī: 'I', + Ĭ: 'I', + Į: 'I', + İ: 'I', + ĩ: 'i', + ī: 'i', + ĭ: 'i', + į: 'i', + ı: 'i', + Ĵ: 'J', + ĵ: 'j', + Ķ: 'K', + ķ: 'k', + ĸ: 'k', + Ĺ: 'L', + Ļ: 'L', + Ľ: 'L', + Ŀ: 'L', + Ł: 'L', + ĺ: 'l', + ļ: 'l', + ľ: 'l', + ŀ: 'l', + ł: 'l', + Ń: 'N', + Ņ: 'N', + Ň: 'N', + Ŋ: 'N', + ń: 'n', + ņ: 'n', + ň: 'n', + ŋ: 'n', + Ō: 'O', + Ŏ: 'O', + Ő: 'O', + ō: 'o', + ŏ: 'o', + ő: 'o', + Ŕ: 'R', + Ŗ: 'R', + Ř: 'R', + ŕ: 'r', + ŗ: 'r', + ř: 'r', + Ś: 'S', + Ŝ: 'S', + Ş: 'S', + Š: 'S', + ś: 's', + ŝ: 's', + ş: 's', + š: 's', + Ţ: 'T', + Ť: 'T', + Ŧ: 'T', + ţ: 't', + ť: 't', + ŧ: 't', + Ũ: 'U', + Ū: 'U', + Ŭ: 'U', + Ů: 'U', + Ű: 'U', + Ų: 'U', + ũ: 'u', + ū: 'u', + ŭ: 'u', + ů: 'u', + ű: 'u', + ų: 'u', + Ŵ: 'W', + ŵ: 'w', + Ŷ: 'Y', + ŷ: 'y', + Ÿ: 'Y', + Ź: 'Z', + Ż: 'Z', + Ž: 'Z', + ź: 'z', + ż: 'z', + ž: 'z', + IJ: 'IJ', + ij: 'ij', + Œ: 'Oe', + œ: 'oe', + ʼn: "'n", + ſ: 's', + }), + tr = qt({ '&': '&', '<': '<', '>': '>', '"': '"', "'": ''' }) + function rr(e) { + return '\\' + at[e] + } + function nr(e) { + return et.test(e) + } + function ir(e) { + var t = -1, + r = Array(e.size) + return ( + e.forEach(function (e, n) { + r[++t] = [n, e] + }), + r + ) + } + function or(e, t) { + return function (r) { + return e(t(r)) + } + } + function ar(e, t) { + for (var r = -1, n = e.length, i = 0, o = []; ++r < n; ) { + var a = e[r] + ;(a !== t && a !== s) || ((e[r] = s), (o[i++] = r)) + } + return o + } + function sr(e) { + var t = -1, + r = Array(e.size) + return ( + e.forEach(function (e) { + r[++t] = e + }), + r + ) + } + function ur(e) { + var t = -1, + r = Array(e.size) + return ( + e.forEach(function (e) { + r[++t] = [e, e] + }), + r + ) + } + function cr(e) { + return nr(e) + ? (function (e) { + for (var t = (Ze.lastIndex = 0); Ze.test(e); ) ++t + return t + })(e) + : Dt(e) + } + function fr(e) { + return nr(e) + ? (function (e) { + return e.match(Ze) || [] + })(e) + : (function (e) { + return e.split('') + })(e) + } + function lr(e) { + for (var t = e.length; t-- && ie.test(e.charAt(t)); ); + return t + } + var dr = qt({ '&': '&', '<': '<', '>': '>', '"': '"', ''': "'" }), + hr = (function e(t) { + var r, + n = (t = null == t ? lt : hr.defaults(lt.Object(), t, hr.pick(lt, rt))).Array, + ie = t.Date, + _e = t.Error, + Ee = t.Function, + Se = t.Math, + Ae = t.Object, + Oe = t.RegExp, + Me = t.String, + Te = t.TypeError, + Ie = n.prototype, + Ne = Ee.prototype, + xe = Ae.prototype, + Le = t['__core-js_shared__'], + ke = Ne.toString, + Re = xe.hasOwnProperty, + Pe = 0, + Be = (r = /[^.]+$/.exec((Le && Le.keys && Le.keys.IE_PROTO) || '')) ? 'Symbol(src)_1.' + r : '', + De = xe.toString, + Ce = ke.call(Ae), + je = lt._, + Fe = Oe( + '^' + + ke + .call(Re) + .replace(te, '\\$&') + .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + + '$', + ), + Ue = pt ? t.Buffer : i, + Ve = t.Symbol, + He = t.Uint8Array, + ze = Ue ? Ue.allocUnsafe : i, + qe = or(Ae.getPrototypeOf, Ae), + Ke = Ae.create, + We = xe.propertyIsEnumerable, + Ge = Ie.splice, + Ye = Ve ? Ve.isConcatSpreadable : i, + $e = Ve ? Ve.iterator : i, + Ze = Ve ? Ve.toStringTag : i, + et = (function () { + try { + var e = uo(Ae, 'defineProperty') + return (e({}, '', {}), e) + } catch (e) {} + })(), + at = t.clearTimeout !== lt.clearTimeout && t.clearTimeout, + ct = ie && ie.now !== lt.Date.now && ie.now, + ft = t.setTimeout !== lt.setTimeout && t.setTimeout, + dt = Se.ceil, + ht = Se.floor, + yt = Ae.getOwnPropertySymbols, + gt = Ue ? Ue.isBuffer : i, + Dt = t.isFinite, + qt = Ie.join, + pr = or(Ae.keys, Ae), + yr = Se.max, + gr = Se.min, + br = ie.now, + mr = t.parseInt, + vr = Se.random, + wr = Ie.reverse, + _r = uo(t, 'DataView'), + Er = uo(t, 'Map'), + Sr = uo(t, 'Promise'), + Ar = uo(t, 'Set'), + Or = uo(t, 'WeakMap'), + Mr = uo(Ae, 'create'), + Tr = Or && new Or(), + Ir = {}, + Nr = Co(_r), + xr = Co(Er), + Lr = Co(Sr), + kr = Co(Ar), + Rr = Co(Or), + Pr = Ve ? Ve.prototype : i, + Br = Pr ? Pr.valueOf : i, + Dr = Pr ? Pr.toString : i + function Cr(e) { + if (es(e) && !za(e) && !(e instanceof Vr)) { + if (e instanceof Ur) return e + if (Re.call(e, '__wrapped__')) return jo(e) + } + return new Ur(e) + } + var jr = (function () { + function e() {} + return function (t) { + if (!Qa(t)) return {} + if (Ke) return Ke(t) + e.prototype = t + var r = new e() + return ((e.prototype = i), r) + } + })() + function Fr() {} + function Ur(e, t) { + ;((this.__wrapped__ = e), (this.__actions__ = []), (this.__chain__ = !!t), (this.__index__ = 0), (this.__values__ = i)) + } + function Vr(e) { + ;((this.__wrapped__ = e), + (this.__actions__ = []), + (this.__dir__ = 1), + (this.__filtered__ = !1), + (this.__iteratees__ = []), + (this.__takeCount__ = h), + (this.__views__ = [])) + } + function Hr(e) { + var t = -1, + r = null == e ? 0 : e.length + for (this.clear(); ++t < r; ) { + var n = e[t] + this.set(n[0], n[1]) + } + } + function zr(e) { + var t = -1, + r = null == e ? 0 : e.length + for (this.clear(); ++t < r; ) { + var n = e[t] + this.set(n[0], n[1]) + } + } + function qr(e) { + var t = -1, + r = null == e ? 0 : e.length + for (this.clear(); ++t < r; ) { + var n = e[t] + this.set(n[0], n[1]) + } + } + function Kr(e) { + var t = -1, + r = null == e ? 0 : e.length + for (this.__data__ = new qr(); ++t < r; ) this.add(e[t]) + } + function Wr(e) { + var t = (this.__data__ = new zr(e)) + this.size = t.size + } + function Gr(e, t) { + var r = za(e), + n = !r && Ha(e), + i = !r && !n && Ga(e), + o = !r && !n && !i && us(e), + a = r || n || i || o, + s = a ? Gt(e.length, Me) : [], + u = s.length + for (var c in e) + (!t && !Re.call(e, c)) || + (a && + ('length' == c || + (i && ('offset' == c || 'parent' == c)) || + (o && ('buffer' == c || 'byteLength' == c || 'byteOffset' == c)) || + go(c, u))) || + s.push(c) + return s + } + function Yr(e) { + var t = e.length + return t ? e[Kn(0, t - 1)] : i + } + function $r(e, t) { + return ko(Mi(e), on(t, 0, e.length)) + } + function Xr(e) { + return ko(Mi(e)) + } + function Jr(e, t, r) { + ;((r !== i && !Fa(e[t], r)) || (r === i && !(t in e))) && rn(e, t, r) + } + function Zr(e, t, r) { + var n = e[t] + ;(Re.call(e, t) && Fa(n, r) && (r !== i || t in e)) || rn(e, t, r) + } + function Qr(e, t) { + for (var r = e.length; r--; ) if (Fa(e[r][0], t)) return r + return -1 + } + function en(e, t, r, n) { + return ( + fn(e, function (e, i, o) { + t(n, e, r(e), o) + }), + n + ) + } + function tn(e, t) { + return e && Ti(t, xs(t), e) + } + function rn(e, t, r) { + '__proto__' == t && et ? et(e, t, { configurable: !0, enumerable: !0, value: r, writable: !0 }) : (e[t] = r) + } + function nn(e, t) { + for (var r = -1, o = t.length, a = n(o), s = null == e; ++r < o; ) a[r] = s ? i : Os(e, t[r]) + return a + } + function on(e, t, r) { + return (e == e && (r !== i && (e = e <= r ? e : r), t !== i && (e = e >= t ? e : t)), e) + } + function an(e, t, r, n, o, a) { + var s, + u = 1 & t, + c = 2 & t, + f = 4 & t + if ((r && (s = o ? r(e, n, o, a) : r(e)), s !== i)) return s + if (!Qa(e)) return e + var l = za(e) + if (l) { + if ( + ((s = (function (e) { + var t = e.length, + r = new e.constructor(t) + return (t && 'string' == typeof e[0] && Re.call(e, 'index') && ((r.index = e.index), (r.input = e.input)), r) + })(e)), + !u) + ) + return Mi(e, s) + } else { + var d = lo(e), + h = d == w || d == _ + if (Ga(e)) return wi(e, u) + if (d == A || d == y || (h && !o)) { + if (((s = c || h ? {} : po(e)), !u)) + return c + ? (function (e, t) { + return Ti(e, fo(e), t) + })( + e, + (function (e, t) { + return e && Ti(t, Ls(t), e) + })(s, e), + ) + : (function (e, t) { + return Ti(e, co(e), t) + })(e, tn(s, e)) + } else { + if (!ot[d]) return o ? e : {} + s = (function (e, t, r) { + var n, + i = e.constructor + switch (t) { + case L: + return _i(e) + case b: + case m: + return new i(+e) + case k: + return (function (e, t) { + var r = t ? _i(e.buffer) : e.buffer + return new e.constructor(r, e.byteOffset, e.byteLength) + })(e, r) + case R: + case P: + case B: + case D: + case C: + case j: + case F: + case U: + case V: + return Ei(e, r) + case E: + return new i() + case S: + case I: + return new i(e) + case M: + return (function (e) { + var t = new e.constructor(e.source, de.exec(e)) + return ((t.lastIndex = e.lastIndex), t) + })(e) + case T: + return new i() + case N: + return ((n = e), Br ? Ae(Br.call(n)) : {}) + } + })(e, d, u) + } + } + a || (a = new Wr()) + var p = a.get(e) + if (p) return p + ;(a.set(e, s), + os(e) + ? e.forEach(function (n) { + s.add(an(n, t, r, n, e, a)) + }) + : ts(e) && + e.forEach(function (n, i) { + s.set(i, an(n, t, r, i, e, a)) + })) + var g = l ? i : (f ? (c ? to : eo) : c ? Ls : xs)(e) + return ( + Ot(g || e, function (n, i) { + ;(g && (n = e[(i = n)]), Zr(s, i, an(n, t, r, i, e, a))) + }), + s + ) + } + function sn(e, t, r) { + var n = r.length + if (null == e) return !n + for (e = Ae(e); n--; ) { + var o = r[n], + a = t[o], + s = e[o] + if ((s === i && !(o in e)) || !a(s)) return !1 + } + return !0 + } + function un(e, t, r) { + if ('function' != typeof e) throw new Te(o) + return Io(function () { + e.apply(i, r) + }, t) + } + function cn(e, t, r, n) { + var i = -1, + o = Nt, + a = !0, + s = e.length, + u = [], + c = t.length + if (!s) return u + ;(r && (t = Lt(t, $t(r))), n ? ((o = xt), (a = !1)) : t.length >= 200 && ((o = Jt), (a = !1), (t = new Kr(t)))) + e: for (; ++i < s; ) { + var f = e[i], + l = null == r ? f : r(f) + if (((f = n || 0 !== f ? f : 0), a && l == l)) { + for (var d = c; d--; ) if (t[d] === l) continue e + u.push(f) + } else o(t, l, n) || u.push(f) + } + return u + } + ;((Cr.templateSettings = { escape: $, evaluate: X, interpolate: J, variable: '', imports: { _: Cr } }), + (Cr.prototype = Fr.prototype), + (Cr.prototype.constructor = Cr), + (Ur.prototype = jr(Fr.prototype)), + (Ur.prototype.constructor = Ur), + (Vr.prototype = jr(Fr.prototype)), + (Vr.prototype.constructor = Vr), + (Hr.prototype.clear = function () { + ;((this.__data__ = Mr ? Mr(null) : {}), (this.size = 0)) + }), + (Hr.prototype.delete = function (e) { + var t = this.has(e) && delete this.__data__[e] + return ((this.size -= t ? 1 : 0), t) + }), + (Hr.prototype.get = function (e) { + var t = this.__data__ + if (Mr) { + var r = t[e] + return r === a ? i : r + } + return Re.call(t, e) ? t[e] : i + }), + (Hr.prototype.has = function (e) { + var t = this.__data__ + return Mr ? t[e] !== i : Re.call(t, e) + }), + (Hr.prototype.set = function (e, t) { + var r = this.__data__ + return ((this.size += this.has(e) ? 0 : 1), (r[e] = Mr && t === i ? a : t), this) + }), + (zr.prototype.clear = function () { + ;((this.__data__ = []), (this.size = 0)) + }), + (zr.prototype.delete = function (e) { + var t = this.__data__, + r = Qr(t, e) + return !(r < 0 || (r == t.length - 1 ? t.pop() : Ge.call(t, r, 1), --this.size, 0)) + }), + (zr.prototype.get = function (e) { + var t = this.__data__, + r = Qr(t, e) + return r < 0 ? i : t[r][1] + }), + (zr.prototype.has = function (e) { + return Qr(this.__data__, e) > -1 + }), + (zr.prototype.set = function (e, t) { + var r = this.__data__, + n = Qr(r, e) + return (n < 0 ? (++this.size, r.push([e, t])) : (r[n][1] = t), this) + }), + (qr.prototype.clear = function () { + ;((this.size = 0), (this.__data__ = { hash: new Hr(), map: new (Er || zr)(), string: new Hr() })) + }), + (qr.prototype.delete = function (e) { + var t = ao(this, e).delete(e) + return ((this.size -= t ? 1 : 0), t) + }), + (qr.prototype.get = function (e) { + return ao(this, e).get(e) + }), + (qr.prototype.has = function (e) { + return ao(this, e).has(e) + }), + (qr.prototype.set = function (e, t) { + var r = ao(this, e), + n = r.size + return (r.set(e, t), (this.size += r.size == n ? 0 : 1), this) + }), + (Kr.prototype.add = Kr.prototype.push = + function (e) { + return (this.__data__.set(e, a), this) + }), + (Kr.prototype.has = function (e) { + return this.__data__.has(e) + }), + (Wr.prototype.clear = function () { + ;((this.__data__ = new zr()), (this.size = 0)) + }), + (Wr.prototype.delete = function (e) { + var t = this.__data__, + r = t.delete(e) + return ((this.size = t.size), r) + }), + (Wr.prototype.get = function (e) { + return this.__data__.get(e) + }), + (Wr.prototype.has = function (e) { + return this.__data__.has(e) + }), + (Wr.prototype.set = function (e, t) { + var r = this.__data__ + if (r instanceof zr) { + var n = r.__data__ + if (!Er || n.length < 199) return (n.push([e, t]), (this.size = ++r.size), this) + r = this.__data__ = new qr(n) + } + return (r.set(e, t), (this.size = r.size), this) + })) + var fn = xi(mn), + ln = xi(vn, !0) + function dn(e, t) { + var r = !0 + return ( + fn(e, function (e, n, i) { + return (r = !!t(e, n, i)) + }), + r + ) + } + function hn(e, t, r) { + for (var n = -1, o = e.length; ++n < o; ) { + var a = e[n], + s = t(a) + if (null != s && (u === i ? s == s && !ss(s) : r(s, u))) + var u = s, + c = a + } + return c + } + function pn(e, t) { + var r = [] + return ( + fn(e, function (e, n, i) { + t(e, n, i) && r.push(e) + }), + r + ) + } + function yn(e, t, r, n, i) { + var o = -1, + a = e.length + for (r || (r = yo), i || (i = []); ++o < a; ) { + var s = e[o] + t > 0 && r(s) ? (t > 1 ? yn(s, t - 1, r, n, i) : kt(i, s)) : n || (i[i.length] = s) + } + return i + } + var gn = Li(), + bn = Li(!0) + function mn(e, t) { + return e && gn(e, t, xs) + } + function vn(e, t) { + return e && bn(e, t, xs) + } + function wn(e, t) { + return It(t, function (t) { + return Xa(e[t]) + }) + } + function _n(e, t) { + for (var r = 0, n = (t = gi(t, e)).length; null != e && r < n; ) e = e[Do(t[r++])] + return r && r == n ? e : i + } + function En(e, t, r) { + var n = t(e) + return za(e) ? n : kt(n, r(e)) + } + function Sn(e) { + return null == e + ? e === i + ? '[object Undefined]' + : '[object Null]' + : Ze && Ze in Ae(e) + ? (function (e) { + var t = Re.call(e, Ze), + r = e[Ze] + try { + e[Ze] = i + var n = !0 + } catch (e) {} + var o = De.call(e) + return (n && (t ? (e[Ze] = r) : delete e[Ze]), o) + })(e) + : (function (e) { + return De.call(e) + })(e) + } + function An(e, t) { + return e > t + } + function On(e, t) { + return null != e && Re.call(e, t) + } + function Mn(e, t) { + return null != e && t in Ae(e) + } + function Tn(e, t, r) { + for (var o = r ? xt : Nt, a = e[0].length, s = e.length, u = s, c = n(s), f = 1 / 0, l = []; u--; ) { + var d = e[u] + ;(u && t && (d = Lt(d, $t(t))), (f = gr(d.length, f)), (c[u] = !r && (t || (a >= 120 && d.length >= 120)) ? new Kr(u && d) : i)) + } + d = e[0] + var h = -1, + p = c[0] + e: for (; ++h < a && l.length < f; ) { + var y = d[h], + g = t ? t(y) : y + if (((y = r || 0 !== y ? y : 0), !(p ? Jt(p, g) : o(l, g, r)))) { + for (u = s; --u; ) { + var b = c[u] + if (!(b ? Jt(b, g) : o(e[u], g, r))) continue e + } + ;(p && p.push(g), l.push(y)) + } + } + return l + } + function In(e, t, r) { + var n = null == (e = Oo(e, (t = gi(t, e)))) ? e : e[Do($o(t))] + return null == n ? i : St(n, e, r) + } + function Nn(e) { + return es(e) && Sn(e) == y + } + function xn(e, t, r, n, o) { + return ( + e === t || + (null == e || null == t || (!es(e) && !es(t)) + ? e != e && t != t + : (function (e, t, r, n, o, a) { + var s = za(e), + u = za(t), + c = s ? g : lo(e), + f = u ? g : lo(t), + l = (c = c == y ? A : c) == A, + d = (f = f == y ? A : f) == A, + h = c == f + if (h && Ga(e)) { + if (!Ga(t)) return !1 + ;((s = !0), (l = !1)) + } + if (h && !l) + return ( + a || (a = new Wr()), + s || us(e) + ? Zi(e, t, r, n, o, a) + : (function (e, t, r, n, i, o, a) { + switch (r) { + case k: + if (e.byteLength != t.byteLength || e.byteOffset != t.byteOffset) return !1 + ;((e = e.buffer), (t = t.buffer)) + case L: + return !(e.byteLength != t.byteLength || !o(new He(e), new He(t))) + case b: + case m: + case S: + return Fa(+e, +t) + case v: + return e.name == t.name && e.message == t.message + case M: + case I: + return e == t + '' + case E: + var s = ir + case T: + var u = 1 & n + if ((s || (s = sr), e.size != t.size && !u)) return !1 + var c = a.get(e) + if (c) return c == t + ;((n |= 2), a.set(e, t)) + var f = Zi(s(e), s(t), n, i, o, a) + return (a.delete(e), f) + case N: + if (Br) return Br.call(e) == Br.call(t) + } + return !1 + })(e, t, c, r, n, o, a) + ) + if (!(1 & r)) { + var p = l && Re.call(e, '__wrapped__'), + w = d && Re.call(t, '__wrapped__') + if (p || w) { + var _ = p ? e.value() : e, + O = w ? t.value() : t + return (a || (a = new Wr()), o(_, O, r, n, a)) + } + } + return ( + !!h && + (a || (a = new Wr()), + (function (e, t, r, n, o, a) { + var s = 1 & r, + u = eo(e), + c = u.length + if (c != eo(t).length && !s) return !1 + for (var f = c; f--; ) { + var l = u[f] + if (!(s ? l in t : Re.call(t, l))) return !1 + } + var d = a.get(e), + h = a.get(t) + if (d && h) return d == t && h == e + var p = !0 + ;(a.set(e, t), a.set(t, e)) + for (var y = s; ++f < c; ) { + var g = e[(l = u[f])], + b = t[l] + if (n) var m = s ? n(b, g, l, t, e, a) : n(g, b, l, e, t, a) + if (!(m === i ? g === b || o(g, b, r, n, a) : m)) { + p = !1 + break + } + y || (y = 'constructor' == l) + } + if (p && !y) { + var v = e.constructor, + w = t.constructor + v == w || + !('constructor' in e) || + !('constructor' in t) || + ('function' == typeof v && v instanceof v && 'function' == typeof w && w instanceof w) || + (p = !1) + } + return (a.delete(e), a.delete(t), p) + })(e, t, r, n, o, a)) + ) + })(e, t, r, n, xn, o)) + ) + } + function Ln(e, t, r, n) { + var o = r.length, + a = o, + s = !n + if (null == e) return !a + for (e = Ae(e); o--; ) { + var u = r[o] + if (s && u[2] ? u[1] !== e[u[0]] : !(u[0] in e)) return !1 + } + for (; ++o < a; ) { + var c = (u = r[o])[0], + f = e[c], + l = u[1] + if (s && u[2]) { + if (f === i && !(c in e)) return !1 + } else { + var d = new Wr() + if (n) var h = n(f, l, c, e, t, d) + if (!(h === i ? xn(l, f, 3, n, d) : h)) return !1 + } + } + return !0 + } + function kn(e) { + return !(!Qa(e) || ((t = e), Be && Be in t)) && (Xa(e) ? Fe : ye).test(Co(e)) + var t + } + function Rn(e) { + return 'function' == typeof e ? e : null == e ? ru : 'object' == typeof e ? (za(e) ? jn(e[0], e[1]) : Cn(e)) : lu(e) + } + function Pn(e) { + if (!_o(e)) return pr(e) + var t = [] + for (var r in Ae(e)) Re.call(e, r) && 'constructor' != r && t.push(r) + return t + } + function Bn(e, t) { + return e < t + } + function Dn(e, t) { + var r = -1, + i = Ka(e) ? n(e.length) : [] + return ( + fn(e, function (e, n, o) { + i[++r] = t(e, n, o) + }), + i + ) + } + function Cn(e) { + var t = so(e) + return 1 == t.length && t[0][2] + ? So(t[0][0], t[0][1]) + : function (r) { + return r === e || Ln(r, e, t) + } + } + function jn(e, t) { + return mo(e) && Eo(t) + ? So(Do(e), t) + : function (r) { + var n = Os(r, e) + return n === i && n === t ? Ms(r, e) : xn(t, n, 3) + } + } + function Fn(e, t, r, n, o) { + e !== t && + gn( + t, + function (a, s) { + if ((o || (o = new Wr()), Qa(a))) + !(function (e, t, r, n, o, a, s) { + var u = Mo(e, r), + c = Mo(t, r), + f = s.get(c) + if (f) Jr(e, r, f) + else { + var l = a ? a(u, c, r + '', e, t, s) : i, + d = l === i + if (d) { + var h = za(c), + p = !h && Ga(c), + y = !h && !p && us(c) + ;((l = c), + h || p || y + ? za(u) + ? (l = u) + : Wa(u) + ? (l = Mi(u)) + : p + ? ((d = !1), (l = wi(c, !0))) + : y + ? ((d = !1), (l = Ei(c, !0))) + : (l = []) + : ns(c) || Ha(c) + ? ((l = u), Ha(u) ? (l = gs(u)) : (Qa(u) && !Xa(u)) || (l = po(c))) + : (d = !1)) + } + ;(d && (s.set(c, l), o(l, c, n, a, s), s.delete(c)), Jr(e, r, l)) + } + })(e, t, s, r, Fn, n, o) + else { + var u = n ? n(Mo(e, s), a, s + '', e, t, o) : i + ;(u === i && (u = a), Jr(e, s, u)) + } + }, + Ls, + ) + } + function Un(e, t) { + var r = e.length + if (r) return go((t += t < 0 ? r : 0), r) ? e[t] : i + } + function Vn(e, t, r) { + t = t.length + ? Lt(t, function (e) { + return za(e) + ? function (t) { + return _n(t, 1 === e.length ? e[0] : e) + } + : e + }) + : [ru] + var n = -1 + t = Lt(t, $t(oo())) + var i = Dn(e, function (e, r, i) { + var o = Lt(t, function (t) { + return t(e) + }) + return { criteria: o, index: ++n, value: e } + }) + return (function (e, t) { + var n = e.length + for ( + e.sort(function (e, t) { + return (function (e, t, r) { + for (var n = -1, i = e.criteria, o = t.criteria, a = i.length, s = r.length; ++n < a; ) { + var u = Si(i[n], o[n]) + if (u) return n >= s ? u : u * ('desc' == r[n] ? -1 : 1) + } + return e.index - t.index + })(e, t, r) + }); + n--; + ) + e[n] = e[n].value + return e + })(i) + } + function Hn(e, t, r) { + for (var n = -1, i = t.length, o = {}; ++n < i; ) { + var a = t[n], + s = _n(e, a) + r(s, a) && Xn(o, gi(a, e), s) + } + return o + } + function zn(e, t, r, n) { + var i = n ? Ut : Ft, + o = -1, + a = t.length, + s = e + for (e === t && (t = Mi(t)), r && (s = Lt(e, $t(r))); ++o < a; ) + for (var u = 0, c = t[o], f = r ? r(c) : c; (u = i(s, f, u, n)) > -1; ) (s !== e && Ge.call(s, u, 1), Ge.call(e, u, 1)) + return e + } + function qn(e, t) { + for (var r = e ? t.length : 0, n = r - 1; r--; ) { + var i = t[r] + if (r == n || i !== o) { + var o = i + go(i) ? Ge.call(e, i, 1) : ui(e, i) + } + } + return e + } + function Kn(e, t) { + return e + ht(vr() * (t - e + 1)) + } + function Wn(e, t) { + var r = '' + if (!e || t < 1 || t > l) return r + do { + ;(t % 2 && (r += e), (t = ht(t / 2)) && (e += e)) + } while (t) + return r + } + function Gn(e, t) { + return No(Ao(e, t, ru), e + '') + } + function Yn(e) { + return Yr(Fs(e)) + } + function $n(e, t) { + var r = Fs(e) + return ko(r, on(t, 0, r.length)) + } + function Xn(e, t, r, n) { + if (!Qa(e)) return e + for (var o = -1, a = (t = gi(t, e)).length, s = a - 1, u = e; null != u && ++o < a; ) { + var c = Do(t[o]), + f = r + if ('__proto__' === c || 'constructor' === c || 'prototype' === c) return e + if (o != s) { + var l = u[c] + ;(f = n ? n(l, c, u) : i) === i && (f = Qa(l) ? l : go(t[o + 1]) ? [] : {}) + } + ;(Zr(u, c, f), (u = u[c])) + } + return e + } + var Jn = Tr + ? function (e, t) { + return (Tr.set(e, t), e) + } + : ru, + Zn = et + ? function (e, t) { + return et(e, 'toString', { configurable: !0, enumerable: !1, value: Qs(t), writable: !0 }) + } + : ru + function Qn(e) { + return ko(Fs(e)) + } + function ei(e, t, r) { + var i = -1, + o = e.length + ;(t < 0 && (t = -t > o ? 0 : o + t), (r = r > o ? o : r) < 0 && (r += o), (o = t > r ? 0 : (r - t) >>> 0), (t >>>= 0)) + for (var a = n(o); ++i < o; ) a[i] = e[i + t] + return a + } + function ti(e, t) { + var r + return ( + fn(e, function (e, n, i) { + return !(r = t(e, n, i)) + }), + !!r + ) + } + function ri(e, t, r) { + var n = 0, + i = null == e ? n : e.length + if ('number' == typeof t && t == t && i <= 2147483647) { + for (; n < i; ) { + var o = (n + i) >>> 1, + a = e[o] + null !== a && !ss(a) && (r ? a <= t : a < t) ? (n = o + 1) : (i = o) + } + return i + } + return ni(e, t, ru, r) + } + function ni(e, t, r, n) { + var o = 0, + a = null == e ? 0 : e.length + if (0 === a) return 0 + for (var s = (t = r(t)) != t, u = null === t, c = ss(t), f = t === i; o < a; ) { + var l = ht((o + a) / 2), + d = r(e[l]), + h = d !== i, + p = null === d, + y = d == d, + g = ss(d) + if (s) var b = n || y + else b = f ? y && (n || h) : u ? y && h && (n || !p) : c ? y && h && !p && (n || !g) : !p && !g && (n ? d <= t : d < t) + b ? (o = l + 1) : (a = l) + } + return gr(a, 4294967294) + } + function ii(e, t) { + for (var r = -1, n = e.length, i = 0, o = []; ++r < n; ) { + var a = e[r], + s = t ? t(a) : a + if (!r || !Fa(s, u)) { + var u = s + o[i++] = 0 === a ? 0 : a + } + } + return o + } + function oi(e) { + return 'number' == typeof e ? e : ss(e) ? d : +e + } + function ai(e) { + if ('string' == typeof e) return e + if (za(e)) return Lt(e, ai) + '' + if (ss(e)) return Dr ? Dr.call(e) : '' + var t = e + '' + return '0' == t && 1 / e == -1 / 0 ? '-0' : t + } + function si(e, t, r) { + var n = -1, + i = Nt, + o = e.length, + a = !0, + s = [], + u = s + if (r) ((a = !1), (i = xt)) + else if (o >= 200) { + var c = t ? null : Wi(e) + if (c) return sr(c) + ;((a = !1), (i = Jt), (u = new Kr())) + } else u = t ? [] : s + e: for (; ++n < o; ) { + var f = e[n], + l = t ? t(f) : f + if (((f = r || 0 !== f ? f : 0), a && l == l)) { + for (var d = u.length; d--; ) if (u[d] === l) continue e + ;(t && u.push(l), s.push(f)) + } else i(u, l, r) || (u !== s && u.push(l), s.push(f)) + } + return s + } + function ui(e, t) { + return null == (e = Oo(e, (t = gi(t, e)))) || delete e[Do($o(t))] + } + function ci(e, t, r, n) { + return Xn(e, t, r(_n(e, t)), n) + } + function fi(e, t, r, n) { + for (var i = e.length, o = n ? i : -1; (n ? o-- : ++o < i) && t(e[o], o, e); ); + return r ? ei(e, n ? 0 : o, n ? o + 1 : i) : ei(e, n ? o + 1 : 0, n ? i : o) + } + function li(e, t) { + var r = e + return ( + r instanceof Vr && (r = r.value()), + Rt( + t, + function (e, t) { + return t.func.apply(t.thisArg, kt([e], t.args)) + }, + r, + ) + ) + } + function di(e, t, r) { + var i = e.length + if (i < 2) return i ? si(e[0]) : [] + for (var o = -1, a = n(i); ++o < i; ) for (var s = e[o], u = -1; ++u < i; ) u != o && (a[o] = cn(a[o] || s, e[u], t, r)) + return si(yn(a, 1), t, r) + } + function hi(e, t, r) { + for (var n = -1, o = e.length, a = t.length, s = {}; ++n < o; ) { + var u = n < a ? t[n] : i + r(s, e[n], u) + } + return s + } + function pi(e) { + return Wa(e) ? e : [] + } + function yi(e) { + return 'function' == typeof e ? e : ru + } + function gi(e, t) { + return za(e) ? e : mo(e, t) ? [e] : Bo(bs(e)) + } + var bi = Gn + function mi(e, t, r) { + var n = e.length + return ((r = r === i ? n : r), !t && r >= n ? e : ei(e, t, r)) + } + var vi = + at || + function (e) { + return lt.clearTimeout(e) + } + function wi(e, t) { + if (t) return e.slice() + var r = e.length, + n = ze ? ze(r) : new e.constructor(r) + return (e.copy(n), n) + } + function _i(e) { + var t = new e.constructor(e.byteLength) + return (new He(t).set(new He(e)), t) + } + function Ei(e, t) { + var r = t ? _i(e.buffer) : e.buffer + return new e.constructor(r, e.byteOffset, e.length) + } + function Si(e, t) { + if (e !== t) { + var r = e !== i, + n = null === e, + o = e == e, + a = ss(e), + s = t !== i, + u = null === t, + c = t == t, + f = ss(t) + if ((!u && !f && !a && e > t) || (a && s && c && !u && !f) || (n && s && c) || (!r && c) || !o) return 1 + if ((!n && !a && !f && e < t) || (f && r && o && !n && !a) || (u && r && o) || (!s && o) || !c) return -1 + } + return 0 + } + function Ai(e, t, r, i) { + for (var o = -1, a = e.length, s = r.length, u = -1, c = t.length, f = yr(a - s, 0), l = n(c + f), d = !i; ++u < c; ) l[u] = t[u] + for (; ++o < s; ) (d || o < a) && (l[r[o]] = e[o]) + for (; f--; ) l[u++] = e[o++] + return l + } + function Oi(e, t, r, i) { + for (var o = -1, a = e.length, s = -1, u = r.length, c = -1, f = t.length, l = yr(a - u, 0), d = n(l + f), h = !i; ++o < l; ) + d[o] = e[o] + for (var p = o; ++c < f; ) d[p + c] = t[c] + for (; ++s < u; ) (h || o < a) && (d[p + r[s]] = e[o++]) + return d + } + function Mi(e, t) { + var r = -1, + i = e.length + for (t || (t = n(i)); ++r < i; ) t[r] = e[r] + return t + } + function Ti(e, t, r, n) { + var o = !r + r || (r = {}) + for (var a = -1, s = t.length; ++a < s; ) { + var u = t[a], + c = n ? n(r[u], e[u], u, r, e) : i + ;(c === i && (c = e[u]), o ? rn(r, u, c) : Zr(r, u, c)) + } + return r + } + function Ii(e, t) { + return function (r, n) { + var i = za(r) ? At : en, + o = t ? t() : {} + return i(r, e, oo(n, 2), o) + } + } + function Ni(e) { + return Gn(function (t, r) { + var n = -1, + o = r.length, + a = o > 1 ? r[o - 1] : i, + s = o > 2 ? r[2] : i + for ( + a = e.length > 3 && 'function' == typeof a ? (o--, a) : i, s && bo(r[0], r[1], s) && ((a = o < 3 ? i : a), (o = 1)), t = Ae(t); + ++n < o; + ) { + var u = r[n] + u && e(t, u, n, a) + } + return t + }) + } + function xi(e, t) { + return function (r, n) { + if (null == r) return r + if (!Ka(r)) return e(r, n) + for (var i = r.length, o = t ? i : -1, a = Ae(r); (t ? o-- : ++o < i) && !1 !== n(a[o], o, a); ); + return r + } + } + function Li(e) { + return function (t, r, n) { + for (var i = -1, o = Ae(t), a = n(t), s = a.length; s--; ) { + var u = a[e ? s : ++i] + if (!1 === r(o[u], u, o)) break + } + return t + } + } + function ki(e) { + return function (t) { + var r = nr((t = bs(t))) ? fr(t) : i, + n = r ? r[0] : t.charAt(0), + o = r ? mi(r, 1).join('') : t.slice(1) + return n[e]() + o + } + } + function Ri(e) { + return function (t) { + return Rt(Xs(Hs(t).replace(Xe, '')), e, '') + } + } + function Pi(e) { + return function () { + var t = arguments + switch (t.length) { + case 0: + return new e() + case 1: + return new e(t[0]) + case 2: + return new e(t[0], t[1]) + case 3: + return new e(t[0], t[1], t[2]) + case 4: + return new e(t[0], t[1], t[2], t[3]) + case 5: + return new e(t[0], t[1], t[2], t[3], t[4]) + case 6: + return new e(t[0], t[1], t[2], t[3], t[4], t[5]) + case 7: + return new e(t[0], t[1], t[2], t[3], t[4], t[5], t[6]) + } + var r = jr(e.prototype), + n = e.apply(r, t) + return Qa(n) ? n : r + } + } + function Bi(e) { + return function (t, r, n) { + var o = Ae(t) + if (!Ka(t)) { + var a = oo(r, 3) + ;((t = xs(t)), + (r = function (e) { + return a(o[e], e, o) + })) + } + var s = e(t, r, n) + return s > -1 ? o[a ? t[s] : s] : i + } + } + function Di(e) { + return Qi(function (t) { + var r = t.length, + n = r, + a = Ur.prototype.thru + for (e && t.reverse(); n--; ) { + var s = t[n] + if ('function' != typeof s) throw new Te(o) + if (a && !u && 'wrapper' == no(s)) var u = new Ur([], !0) + } + for (n = u ? n : r; ++n < r; ) { + var c = no((s = t[n])), + f = 'wrapper' == c ? ro(s) : i + u = + f && vo(f[0]) && 424 == f[1] && !f[4].length && 1 == f[9] + ? u[no(f[0])].apply(u, f[3]) + : 1 == s.length && vo(s) + ? u[c]() + : u.thru(s) + } + return function () { + var e = arguments, + n = e[0] + if (u && 1 == e.length && za(n)) return u.plant(n).value() + for (var i = 0, o = r ? t[i].apply(this, e) : n; ++i < r; ) o = t[i].call(this, o) + return o + } + }) + } + function Ci(e, t, r, o, a, s, u, f, l, d) { + var h = t & c, + p = 1 & t, + y = 2 & t, + g = 24 & t, + b = 512 & t, + m = y ? i : Pi(e) + return function c() { + for (var v = arguments.length, w = n(v), _ = v; _--; ) w[_] = arguments[_] + if (g) + var E = io(c), + S = (function (e, t) { + for (var r = e.length, n = 0; r--; ) e[r] === t && ++n + return n + })(w, E) + if ((o && (w = Ai(w, o, a, g)), s && (w = Oi(w, s, u, g)), (v -= S), g && v < d)) { + var A = ar(w, E) + return qi(e, t, Ci, c.placeholder, r, w, A, f, l, d - v) + } + var O = p ? r : this, + M = y ? O[e] : e + return ( + (v = w.length), + f + ? (w = (function (e, t) { + for (var r = e.length, n = gr(t.length, r), o = Mi(e); n--; ) { + var a = t[n] + e[n] = go(a, r) ? o[a] : i + } + return e + })(w, f)) + : b && v > 1 && w.reverse(), + h && l < v && (w.length = l), + this && this !== lt && this instanceof c && (M = m || Pi(M)), + M.apply(O, w) + ) + } + } + function ji(e, t) { + return function (r, n) { + return (function (e, t, r, n) { + return ( + mn(e, function (e, i, o) { + t(n, r(e), i, o) + }), + n + ) + })(r, e, t(n), {}) + } + } + function Fi(e, t) { + return function (r, n) { + var o + if (r === i && n === i) return t + if ((r !== i && (o = r), n !== i)) { + if (o === i) return n + ;('string' == typeof r || 'string' == typeof n ? ((r = ai(r)), (n = ai(n))) : ((r = oi(r)), (n = oi(n))), (o = e(r, n))) + } + return o + } + } + function Ui(e) { + return Qi(function (t) { + return ( + (t = Lt(t, $t(oo()))), + Gn(function (r) { + var n = this + return e(t, function (e) { + return St(e, n, r) + }) + }) + ) + }) + } + function Vi(e, t) { + var r = (t = t === i ? ' ' : ai(t)).length + if (r < 2) return r ? Wn(t, e) : t + var n = Wn(t, dt(e / cr(t))) + return nr(t) ? mi(fr(n), 0, e).join('') : n.slice(0, e) + } + function Hi(e) { + return function (t, r, o) { + return ( + o && 'number' != typeof o && bo(t, r, o) && (r = o = i), + (t = ds(t)), + r === i ? ((r = t), (t = 0)) : (r = ds(r)), + (function (e, t, r, i) { + for (var o = -1, a = yr(dt((t - e) / (r || 1)), 0), s = n(a); a--; ) ((s[i ? a : ++o] = e), (e += r)) + return s + })(t, r, (o = o === i ? (t < r ? 1 : -1) : ds(o)), e) + ) + } + } + function zi(e) { + return function (t, r) { + return (('string' == typeof t && 'string' == typeof r) || ((t = ys(t)), (r = ys(r))), e(t, r)) + } + } + function qi(e, t, r, n, o, a, s, c, f, l) { + var d = 8 & t + ;((t |= d ? u : 64), 4 & (t &= ~(d ? 64 : u)) || (t &= -4)) + var h = [e, t, o, d ? a : i, d ? s : i, d ? i : a, d ? i : s, c, f, l], + p = r.apply(i, h) + return (vo(e) && To(p, h), (p.placeholder = n), xo(p, e, t)) + } + function Ki(e) { + var t = Se[e] + return function (e, r) { + if (((e = ys(e)), (r = null == r ? 0 : gr(hs(r), 292)) && Dt(e))) { + var n = (bs(e) + 'e').split('e') + return +((n = (bs(t(n[0] + 'e' + (+n[1] + r))) + 'e').split('e'))[0] + 'e' + (+n[1] - r)) + } + return t(e) + } + } + var Wi = + Ar && 1 / sr(new Ar([, -0]))[1] == f + ? function (e) { + return new Ar(e) + } + : su + function Gi(e) { + return function (t) { + var r = lo(t) + return r == E + ? ir(t) + : r == T + ? ur(t) + : (function (e, t) { + return Lt(t, function (t) { + return [t, e[t]] + }) + })(t, e(t)) + } + } + function Yi(e, t, r, a, f, l, d, h) { + var p = 2 & t + if (!p && 'function' != typeof e) throw new Te(o) + var y = a ? a.length : 0 + if ( + (y || ((t &= -97), (a = f = i)), (d = d === i ? d : yr(hs(d), 0)), (h = h === i ? h : hs(h)), (y -= f ? f.length : 0), 64 & t) + ) { + var g = a, + b = f + a = f = i + } + var m = p ? i : ro(e), + v = [e, t, r, a, f, g, b, l, d, h] + if ( + (m && + (function (e, t) { + var r = e[1], + n = t[1], + i = r | n, + o = i < 131, + a = (n == c && 8 == r) || (n == c && 256 == r && e[7].length <= t[8]) || (384 == n && t[7].length <= t[8] && 8 == r) + if (!o && !a) return e + 1 & n && ((e[2] = t[2]), (i |= 1 & r ? 0 : 4)) + var u = t[3] + if (u) { + var f = e[3] + ;((e[3] = f ? Ai(f, u, t[4]) : u), (e[4] = f ? ar(e[3], s) : t[4])) + } + ;((u = t[5]) && ((f = e[5]), (e[5] = f ? Oi(f, u, t[6]) : u), (e[6] = f ? ar(e[5], s) : t[6])), + (u = t[7]) && (e[7] = u), + n & c && (e[8] = null == e[8] ? t[8] : gr(e[8], t[8])), + null == e[9] && (e[9] = t[9]), + (e[0] = t[0]), + (e[1] = i)) + })(v, m), + (e = v[0]), + (t = v[1]), + (r = v[2]), + (a = v[3]), + (f = v[4]), + !(h = v[9] = v[9] === i ? (p ? 0 : e.length) : yr(v[9] - y, 0)) && 24 & t && (t &= -25), + t && 1 != t) + ) + w = + 8 == t || 16 == t + ? (function (e, t, r) { + var o = Pi(e) + return function a() { + for (var s = arguments.length, u = n(s), c = s, f = io(a); c--; ) u[c] = arguments[c] + var l = s < 3 && u[0] !== f && u[s - 1] !== f ? [] : ar(u, f) + return (s -= l.length) < r + ? qi(e, t, Ci, a.placeholder, i, u, l, i, i, r - s) + : St(this && this !== lt && this instanceof a ? o : e, this, u) + } + })(e, t, h) + : (t != u && 33 != t) || f.length + ? Ci.apply(i, v) + : (function (e, t, r, i) { + var o = 1 & t, + a = Pi(e) + return function t() { + for ( + var s = -1, + u = arguments.length, + c = -1, + f = i.length, + l = n(f + u), + d = this && this !== lt && this instanceof t ? a : e; + ++c < f; + ) + l[c] = i[c] + for (; u--; ) l[c++] = arguments[++s] + return St(d, o ? r : this, l) + } + })(e, t, r, a) + else + var w = (function (e, t, r) { + var n = 1 & t, + i = Pi(e) + return function t() { + return (this && this !== lt && this instanceof t ? i : e).apply(n ? r : this, arguments) + } + })(e, t, r) + return xo((m ? Jn : To)(w, v), e, t) + } + function $i(e, t, r, n) { + return e === i || (Fa(e, xe[r]) && !Re.call(n, r)) ? t : e + } + function Xi(e, t, r, n, o, a) { + return (Qa(e) && Qa(t) && (a.set(t, e), Fn(e, t, i, Xi, a), a.delete(t)), e) + } + function Ji(e) { + return ns(e) ? i : e + } + function Zi(e, t, r, n, o, a) { + var s = 1 & r, + u = e.length, + c = t.length + if (u != c && !(s && c > u)) return !1 + var f = a.get(e), + l = a.get(t) + if (f && l) return f == t && l == e + var d = -1, + h = !0, + p = 2 & r ? new Kr() : i + for (a.set(e, t), a.set(t, e); ++d < u; ) { + var y = e[d], + g = t[d] + if (n) var b = s ? n(g, y, d, t, e, a) : n(y, g, d, e, t, a) + if (b !== i) { + if (b) continue + h = !1 + break + } + if (p) { + if ( + !Bt(t, function (e, t) { + if (!Jt(p, t) && (y === e || o(y, e, r, n, a))) return p.push(t) + }) + ) { + h = !1 + break + } + } else if (y !== g && !o(y, g, r, n, a)) { + h = !1 + break + } + } + return (a.delete(e), a.delete(t), h) + } + function Qi(e) { + return No(Ao(e, i, qo), e + '') + } + function eo(e) { + return En(e, xs, co) + } + function to(e) { + return En(e, Ls, fo) + } + var ro = Tr + ? function (e) { + return Tr.get(e) + } + : su + function no(e) { + for (var t = e.name + '', r = Ir[t], n = Re.call(Ir, t) ? r.length : 0; n--; ) { + var i = r[n], + o = i.func + if (null == o || o == e) return i.name + } + return t + } + function io(e) { + return (Re.call(Cr, 'placeholder') ? Cr : e).placeholder + } + function oo() { + var e = Cr.iteratee || nu + return ((e = e === nu ? Rn : e), arguments.length ? e(arguments[0], arguments[1]) : e) + } + function ao(e, t) { + var r, + n, + i = e.__data__ + return ('string' == (n = typeof (r = t)) || 'number' == n || 'symbol' == n || 'boolean' == n ? '__proto__' !== r : null === r) + ? i['string' == typeof t ? 'string' : 'hash'] + : i.map + } + function so(e) { + for (var t = xs(e), r = t.length; r--; ) { + var n = t[r], + i = e[n] + t[r] = [n, i, Eo(i)] + } + return t + } + function uo(e, t) { + var r = (function (e, t) { + return null == e ? i : e[t] + })(e, t) + return kn(r) ? r : i + } + var co = yt + ? function (e) { + return null == e + ? [] + : ((e = Ae(e)), + It(yt(e), function (t) { + return We.call(e, t) + })) + } + : pu, + fo = yt + ? function (e) { + for (var t = []; e; ) (kt(t, co(e)), (e = qe(e))) + return t + } + : pu, + lo = Sn + function ho(e, t, r) { + for (var n = -1, i = (t = gi(t, e)).length, o = !1; ++n < i; ) { + var a = Do(t[n]) + if (!(o = null != e && r(e, a))) break + e = e[a] + } + return o || ++n != i ? o : !!(i = null == e ? 0 : e.length) && Za(i) && go(a, i) && (za(e) || Ha(e)) + } + function po(e) { + return 'function' != typeof e.constructor || _o(e) ? {} : jr(qe(e)) + } + function yo(e) { + return za(e) || Ha(e) || !!(Ye && e && e[Ye]) + } + function go(e, t) { + var r = typeof e + return !!(t = null == t ? l : t) && ('number' == r || ('symbol' != r && be.test(e))) && e > -1 && e % 1 == 0 && e < t + } + function bo(e, t, r) { + if (!Qa(r)) return !1 + var n = typeof t + return !!('number' == n ? Ka(r) && go(t, r.length) : 'string' == n && t in r) && Fa(r[t], e) + } + function mo(e, t) { + if (za(e)) return !1 + var r = typeof e + return ( + !('number' != r && 'symbol' != r && 'boolean' != r && null != e && !ss(e)) || Q.test(e) || !Z.test(e) || (null != t && e in Ae(t)) + ) + } + function vo(e) { + var t = no(e), + r = Cr[t] + if ('function' != typeof r || !(t in Vr.prototype)) return !1 + if (e === r) return !0 + var n = ro(r) + return !!n && e === n[0] + } + ;((_r && lo(new _r(new ArrayBuffer(1))) != k) || + (Er && lo(new Er()) != E) || + (Sr && lo(Sr.resolve()) != O) || + (Ar && lo(new Ar()) != T) || + (Or && lo(new Or()) != x)) && + (lo = function (e) { + var t = Sn(e), + r = t == A ? e.constructor : i, + n = r ? Co(r) : '' + if (n) + switch (n) { + case Nr: + return k + case xr: + return E + case Lr: + return O + case kr: + return T + case Rr: + return x + } + return t + }) + var wo = Le ? Xa : yu + function _o(e) { + var t = e && e.constructor + return e === (('function' == typeof t && t.prototype) || xe) + } + function Eo(e) { + return e == e && !Qa(e) + } + function So(e, t) { + return function (r) { + return null != r && r[e] === t && (t !== i || e in Ae(r)) + } + } + function Ao(e, t, r) { + return ( + (t = yr(t === i ? e.length - 1 : t, 0)), + function () { + for (var i = arguments, o = -1, a = yr(i.length - t, 0), s = n(a); ++o < a; ) s[o] = i[t + o] + o = -1 + for (var u = n(t + 1); ++o < t; ) u[o] = i[o] + return ((u[t] = r(s)), St(e, this, u)) + } + ) + } + function Oo(e, t) { + return t.length < 2 ? e : _n(e, ei(t, 0, -1)) + } + function Mo(e, t) { + if (('constructor' !== t || 'function' != typeof e[t]) && '__proto__' != t) return e[t] + } + var To = Lo(Jn), + Io = + ft || + function (e, t) { + return lt.setTimeout(e, t) + }, + No = Lo(Zn) + function xo(e, t, r) { + var n = t + '' + return No( + e, + (function (e, t) { + var r = t.length + if (!r) return e + var n = r - 1 + return ( + (t[n] = (r > 1 ? '& ' : '') + t[n]), + (t = t.join(r > 2 ? ', ' : ' ')), + e.replace(oe, '{\n/* [wrapped with ' + t + '] */\n') + ) + })( + n, + (function (e, t) { + return ( + Ot(p, function (r) { + var n = '_.' + r[0] + t & r[1] && !Nt(e, n) && e.push(n) + }), + e.sort() + ) + })( + (function (e) { + var t = e.match(ae) + return t ? t[1].split(se) : [] + })(n), + r, + ), + ), + ) + } + function Lo(e) { + var t = 0, + r = 0 + return function () { + var n = br(), + o = 16 - (n - r) + if (((r = n), o > 0)) { + if (++t >= 800) return arguments[0] + } else t = 0 + return e.apply(i, arguments) + } + } + function ko(e, t) { + var r = -1, + n = e.length, + o = n - 1 + for (t = t === i ? n : t; ++r < t; ) { + var a = Kn(r, o), + s = e[a] + ;((e[a] = e[r]), (e[r] = s)) + } + return ((e.length = t), e) + } + var Ro, + Po, + Bo = + ((Ro = Ra( + function (e) { + var t = [] + return ( + 46 === e.charCodeAt(0) && t.push(''), + e.replace(ee, function (e, r, n, i) { + t.push(n ? i.replace(fe, '$1') : r || e) + }), + t + ) + }, + function (e) { + return (500 === Po.size && Po.clear(), e) + }, + )), + (Po = Ro.cache), + Ro) + function Do(e) { + if ('string' == typeof e || ss(e)) return e + var t = e + '' + return '0' == t && 1 / e == -1 / 0 ? '-0' : t + } + function Co(e) { + if (null != e) { + try { + return ke.call(e) + } catch (e) {} + try { + return e + '' + } catch (e) {} + } + return '' + } + function jo(e) { + if (e instanceof Vr) return e.clone() + var t = new Ur(e.__wrapped__, e.__chain__) + return ((t.__actions__ = Mi(e.__actions__)), (t.__index__ = e.__index__), (t.__values__ = e.__values__), t) + } + var Fo = Gn(function (e, t) { + return Wa(e) ? cn(e, yn(t, 1, Wa, !0)) : [] + }), + Uo = Gn(function (e, t) { + var r = $o(t) + return (Wa(r) && (r = i), Wa(e) ? cn(e, yn(t, 1, Wa, !0), oo(r, 2)) : []) + }), + Vo = Gn(function (e, t) { + var r = $o(t) + return (Wa(r) && (r = i), Wa(e) ? cn(e, yn(t, 1, Wa, !0), i, r) : []) + }) + function Ho(e, t, r) { + var n = null == e ? 0 : e.length + if (!n) return -1 + var i = null == r ? 0 : hs(r) + return (i < 0 && (i = yr(n + i, 0)), jt(e, oo(t, 3), i)) + } + function zo(e, t, r) { + var n = null == e ? 0 : e.length + if (!n) return -1 + var o = n - 1 + return (r !== i && ((o = hs(r)), (o = r < 0 ? yr(n + o, 0) : gr(o, n - 1))), jt(e, oo(t, 3), o, !0)) + } + function qo(e) { + return null != e && e.length ? yn(e, 1) : [] + } + function Ko(e) { + return e && e.length ? e[0] : i + } + var Wo = Gn(function (e) { + var t = Lt(e, pi) + return t.length && t[0] === e[0] ? Tn(t) : [] + }), + Go = Gn(function (e) { + var t = $o(e), + r = Lt(e, pi) + return (t === $o(r) ? (t = i) : r.pop(), r.length && r[0] === e[0] ? Tn(r, oo(t, 2)) : []) + }), + Yo = Gn(function (e) { + var t = $o(e), + r = Lt(e, pi) + return ((t = 'function' == typeof t ? t : i) && r.pop(), r.length && r[0] === e[0] ? Tn(r, i, t) : []) + }) + function $o(e) { + var t = null == e ? 0 : e.length + return t ? e[t - 1] : i + } + var Xo = Gn(Jo) + function Jo(e, t) { + return e && e.length && t && t.length ? zn(e, t) : e + } + var Zo = Qi(function (e, t) { + var r = null == e ? 0 : e.length, + n = nn(e, t) + return ( + qn( + e, + Lt(t, function (e) { + return go(e, r) ? +e : e + }).sort(Si), + ), + n + ) + }) + function Qo(e) { + return null == e ? e : wr.call(e) + } + var ea = Gn(function (e) { + return si(yn(e, 1, Wa, !0)) + }), + ta = Gn(function (e) { + var t = $o(e) + return (Wa(t) && (t = i), si(yn(e, 1, Wa, !0), oo(t, 2))) + }), + ra = Gn(function (e) { + var t = $o(e) + return ((t = 'function' == typeof t ? t : i), si(yn(e, 1, Wa, !0), i, t)) + }) + function na(e) { + if (!e || !e.length) return [] + var t = 0 + return ( + (e = It(e, function (e) { + if (Wa(e)) return ((t = yr(e.length, t)), !0) + })), + Gt(t, function (t) { + return Lt(e, zt(t)) + }) + ) + } + function ia(e, t) { + if (!e || !e.length) return [] + var r = na(e) + return null == t + ? r + : Lt(r, function (e) { + return St(t, i, e) + }) + } + var oa = Gn(function (e, t) { + return Wa(e) ? cn(e, t) : [] + }), + aa = Gn(function (e) { + return di(It(e, Wa)) + }), + sa = Gn(function (e) { + var t = $o(e) + return (Wa(t) && (t = i), di(It(e, Wa), oo(t, 2))) + }), + ua = Gn(function (e) { + var t = $o(e) + return ((t = 'function' == typeof t ? t : i), di(It(e, Wa), i, t)) + }), + ca = Gn(na), + fa = Gn(function (e) { + var t = e.length, + r = t > 1 ? e[t - 1] : i + return ((r = 'function' == typeof r ? (e.pop(), r) : i), ia(e, r)) + }) + function la(e) { + var t = Cr(e) + return ((t.__chain__ = !0), t) + } + function da(e, t) { + return t(e) + } + var ha = Qi(function (e) { + var t = e.length, + r = t ? e[0] : 0, + n = this.__wrapped__, + o = function (t) { + return nn(t, e) + } + return !(t > 1 || this.__actions__.length) && n instanceof Vr && go(r) + ? ((n = n.slice(r, +r + (t ? 1 : 0))).__actions__.push({ func: da, args: [o], thisArg: i }), + new Ur(n, this.__chain__).thru(function (e) { + return (t && !e.length && e.push(i), e) + })) + : this.thru(o) + }), + pa = Ii(function (e, t, r) { + Re.call(e, r) ? ++e[r] : rn(e, r, 1) + }), + ya = Bi(Ho), + ga = Bi(zo) + function ba(e, t) { + return (za(e) ? Ot : fn)(e, oo(t, 3)) + } + function ma(e, t) { + return (za(e) ? Mt : ln)(e, oo(t, 3)) + } + var va = Ii(function (e, t, r) { + Re.call(e, r) ? e[r].push(t) : rn(e, r, [t]) + }), + wa = Gn(function (e, t, r) { + var i = -1, + o = 'function' == typeof t, + a = Ka(e) ? n(e.length) : [] + return ( + fn(e, function (e) { + a[++i] = o ? St(t, e, r) : In(e, t, r) + }), + a + ) + }), + _a = Ii(function (e, t, r) { + rn(e, r, t) + }) + function Ea(e, t) { + return (za(e) ? Lt : Dn)(e, oo(t, 3)) + } + var Sa = Ii( + function (e, t, r) { + e[r ? 0 : 1].push(t) + }, + function () { + return [[], []] + }, + ), + Aa = Gn(function (e, t) { + if (null == e) return [] + var r = t.length + return (r > 1 && bo(e, t[0], t[1]) ? (t = []) : r > 2 && bo(t[0], t[1], t[2]) && (t = [t[0]]), Vn(e, yn(t, 1), [])) + }), + Oa = + ct || + function () { + return lt.Date.now() + } + function Ma(e, t, r) { + return ((t = r ? i : t), (t = e && null == t ? e.length : t), Yi(e, c, i, i, i, i, t)) + } + function Ta(e, t) { + var r + if ('function' != typeof t) throw new Te(o) + return ( + (e = hs(e)), + function () { + return (--e > 0 && (r = t.apply(this, arguments)), e <= 1 && (t = i), r) + } + ) + } + var Ia = Gn(function (e, t, r) { + var n = 1 + if (r.length) { + var i = ar(r, io(Ia)) + n |= u + } + return Yi(e, n, t, r, i) + }), + Na = Gn(function (e, t, r) { + var n = 3 + if (r.length) { + var i = ar(r, io(Na)) + n |= u + } + return Yi(t, n, e, r, i) + }) + function xa(e, t, r) { + var n, + a, + s, + u, + c, + f, + l = 0, + d = !1, + h = !1, + p = !0 + if ('function' != typeof e) throw new Te(o) + function y(t) { + var r = n, + o = a + return ((n = a = i), (l = t), (u = e.apply(o, r))) + } + function g(e) { + var r = e - f + return f === i || r >= t || r < 0 || (h && e - l >= s) + } + function b() { + var e = Oa() + if (g(e)) return m(e) + c = Io( + b, + (function (e) { + var r = t - (e - f) + return h ? gr(r, s - (e - l)) : r + })(e), + ) + } + function m(e) { + return ((c = i), p && n ? y(e) : ((n = a = i), u)) + } + function v() { + var e = Oa(), + r = g(e) + if (((n = arguments), (a = this), (f = e), r)) { + if (c === i) + return (function (e) { + return ((l = e), (c = Io(b, t)), d ? y(e) : u) + })(f) + if (h) return (vi(c), (c = Io(b, t)), y(f)) + } + return (c === i && (c = Io(b, t)), u) + } + return ( + (t = ys(t) || 0), + Qa(r) && + ((d = !!r.leading), (s = (h = 'maxWait' in r) ? yr(ys(r.maxWait) || 0, t) : s), (p = 'trailing' in r ? !!r.trailing : p)), + (v.cancel = function () { + ;(c !== i && vi(c), (l = 0), (n = f = a = c = i)) + }), + (v.flush = function () { + return c === i ? u : m(Oa()) + }), + v + ) + } + var La = Gn(function (e, t) { + return un(e, 1, t) + }), + ka = Gn(function (e, t, r) { + return un(e, ys(t) || 0, r) + }) + function Ra(e, t) { + if ('function' != typeof e || (null != t && 'function' != typeof t)) throw new Te(o) + var r = function () { + var n = arguments, + i = t ? t.apply(this, n) : n[0], + o = r.cache + if (o.has(i)) return o.get(i) + var a = e.apply(this, n) + return ((r.cache = o.set(i, a) || o), a) + } + return ((r.cache = new (Ra.Cache || qr)()), r) + } + function Pa(e) { + if ('function' != typeof e) throw new Te(o) + return function () { + var t = arguments + switch (t.length) { + case 0: + return !e.call(this) + case 1: + return !e.call(this, t[0]) + case 2: + return !e.call(this, t[0], t[1]) + case 3: + return !e.call(this, t[0], t[1], t[2]) + } + return !e.apply(this, t) + } + } + Ra.Cache = qr + var Ba = bi(function (e, t) { + var r = (t = 1 == t.length && za(t[0]) ? Lt(t[0], $t(oo())) : Lt(yn(t, 1), $t(oo()))).length + return Gn(function (n) { + for (var i = -1, o = gr(n.length, r); ++i < o; ) n[i] = t[i].call(this, n[i]) + return St(e, this, n) + }) + }), + Da = Gn(function (e, t) { + var r = ar(t, io(Da)) + return Yi(e, u, i, t, r) + }), + Ca = Gn(function (e, t) { + var r = ar(t, io(Ca)) + return Yi(e, 64, i, t, r) + }), + ja = Qi(function (e, t) { + return Yi(e, 256, i, i, i, t) + }) + function Fa(e, t) { + return e === t || (e != e && t != t) + } + var Ua = zi(An), + Va = zi(function (e, t) { + return e >= t + }), + Ha = Nn( + (function () { + return arguments + })(), + ) + ? Nn + : function (e) { + return es(e) && Re.call(e, 'callee') && !We.call(e, 'callee') + }, + za = n.isArray, + qa = bt + ? $t(bt) + : function (e) { + return es(e) && Sn(e) == L + } + function Ka(e) { + return null != e && Za(e.length) && !Xa(e) + } + function Wa(e) { + return es(e) && Ka(e) + } + var Ga = gt || yu, + Ya = mt + ? $t(mt) + : function (e) { + return es(e) && Sn(e) == m + } + function $a(e) { + if (!es(e)) return !1 + var t = Sn(e) + return t == v || '[object DOMException]' == t || ('string' == typeof e.message && 'string' == typeof e.name && !ns(e)) + } + function Xa(e) { + if (!Qa(e)) return !1 + var t = Sn(e) + return t == w || t == _ || '[object AsyncFunction]' == t || '[object Proxy]' == t + } + function Ja(e) { + return 'number' == typeof e && e == hs(e) + } + function Za(e) { + return 'number' == typeof e && e > -1 && e % 1 == 0 && e <= l + } + function Qa(e) { + var t = typeof e + return null != e && ('object' == t || 'function' == t) + } + function es(e) { + return null != e && 'object' == typeof e + } + var ts = vt + ? $t(vt) + : function (e) { + return es(e) && lo(e) == E + } + function rs(e) { + return 'number' == typeof e || (es(e) && Sn(e) == S) + } + function ns(e) { + if (!es(e) || Sn(e) != A) return !1 + var t = qe(e) + if (null === t) return !0 + var r = Re.call(t, 'constructor') && t.constructor + return 'function' == typeof r && r instanceof r && ke.call(r) == Ce + } + var is = wt + ? $t(wt) + : function (e) { + return es(e) && Sn(e) == M + }, + os = _t + ? $t(_t) + : function (e) { + return es(e) && lo(e) == T + } + function as(e) { + return 'string' == typeof e || (!za(e) && es(e) && Sn(e) == I) + } + function ss(e) { + return 'symbol' == typeof e || (es(e) && Sn(e) == N) + } + var us = Et + ? $t(Et) + : function (e) { + return es(e) && Za(e.length) && !!it[Sn(e)] + }, + cs = zi(Bn), + fs = zi(function (e, t) { + return e <= t + }) + function ls(e) { + if (!e) return [] + if (Ka(e)) return as(e) ? fr(e) : Mi(e) + if ($e && e[$e]) + return (function (e) { + for (var t, r = []; !(t = e.next()).done; ) r.push(t.value) + return r + })(e[$e]()) + var t = lo(e) + return (t == E ? ir : t == T ? sr : Fs)(e) + } + function ds(e) { + return e ? ((e = ys(e)) === f || e === -1 / 0 ? 17976931348623157e292 * (e < 0 ? -1 : 1) : e == e ? e : 0) : 0 === e ? e : 0 + } + function hs(e) { + var t = ds(e), + r = t % 1 + return t == t ? (r ? t - r : t) : 0 + } + function ps(e) { + return e ? on(hs(e), 0, h) : 0 + } + function ys(e) { + if ('number' == typeof e) return e + if (ss(e)) return d + if (Qa(e)) { + var t = 'function' == typeof e.valueOf ? e.valueOf() : e + e = Qa(t) ? t + '' : t + } + if ('string' != typeof e) return 0 === e ? e : +e + e = Yt(e) + var r = pe.test(e) + return r || ge.test(e) ? ut(e.slice(2), r ? 2 : 8) : he.test(e) ? d : +e + } + function gs(e) { + return Ti(e, Ls(e)) + } + function bs(e) { + return null == e ? '' : ai(e) + } + var ms = Ni(function (e, t) { + if (_o(t) || Ka(t)) Ti(t, xs(t), e) + else for (var r in t) Re.call(t, r) && Zr(e, r, t[r]) + }), + vs = Ni(function (e, t) { + Ti(t, Ls(t), e) + }), + ws = Ni(function (e, t, r, n) { + Ti(t, Ls(t), e, n) + }), + _s = Ni(function (e, t, r, n) { + Ti(t, xs(t), e, n) + }), + Es = Qi(nn), + Ss = Gn(function (e, t) { + e = Ae(e) + var r = -1, + n = t.length, + o = n > 2 ? t[2] : i + for (o && bo(t[0], t[1], o) && (n = 1); ++r < n; ) + for (var a = t[r], s = Ls(a), u = -1, c = s.length; ++u < c; ) { + var f = s[u], + l = e[f] + ;(l === i || (Fa(l, xe[f]) && !Re.call(e, f))) && (e[f] = a[f]) + } + return e + }), + As = Gn(function (e) { + return (e.push(i, Xi), St(Rs, i, e)) + }) + function Os(e, t, r) { + var n = null == e ? i : _n(e, t) + return n === i ? r : n + } + function Ms(e, t) { + return null != e && ho(e, t, Mn) + } + var Ts = ji(function (e, t, r) { + ;(null != t && 'function' != typeof t.toString && (t = De.call(t)), (e[t] = r)) + }, Qs(ru)), + Is = ji(function (e, t, r) { + ;(null != t && 'function' != typeof t.toString && (t = De.call(t)), Re.call(e, t) ? e[t].push(r) : (e[t] = [r])) + }, oo), + Ns = Gn(In) + function xs(e) { + return Ka(e) ? Gr(e) : Pn(e) + } + function Ls(e) { + return Ka(e) + ? Gr(e, !0) + : (function (e) { + if (!Qa(e)) + return (function (e) { + var t = [] + if (null != e) for (var r in Ae(e)) t.push(r) + return t + })(e) + var t = _o(e), + r = [] + for (var n in e) ('constructor' != n || (!t && Re.call(e, n))) && r.push(n) + return r + })(e) + } + var ks = Ni(function (e, t, r) { + Fn(e, t, r) + }), + Rs = Ni(function (e, t, r, n) { + Fn(e, t, r, n) + }), + Ps = Qi(function (e, t) { + var r = {} + if (null == e) return r + var n = !1 + ;((t = Lt(t, function (t) { + return ((t = gi(t, e)), n || (n = t.length > 1), t) + })), + Ti(e, to(e), r), + n && (r = an(r, 7, Ji))) + for (var i = t.length; i--; ) ui(r, t[i]) + return r + }), + Bs = Qi(function (e, t) { + return null == e + ? {} + : (function (e, t) { + return Hn(e, t, function (t, r) { + return Ms(e, r) + }) + })(e, t) + }) + function Ds(e, t) { + if (null == e) return {} + var r = Lt(to(e), function (e) { + return [e] + }) + return ( + (t = oo(t)), + Hn(e, r, function (e, r) { + return t(e, r[0]) + }) + ) + } + var Cs = Gi(xs), + js = Gi(Ls) + function Fs(e) { + return null == e ? [] : Xt(e, xs(e)) + } + var Us = Ri(function (e, t, r) { + return ((t = t.toLowerCase()), e + (r ? Vs(t) : t)) + }) + function Vs(e) { + return $s(bs(e).toLowerCase()) + } + function Hs(e) { + return (e = bs(e)) && e.replace(me, er).replace(Je, '') + } + var zs = Ri(function (e, t, r) { + return e + (r ? '-' : '') + t.toLowerCase() + }), + qs = Ri(function (e, t, r) { + return e + (r ? ' ' : '') + t.toLowerCase() + }), + Ks = ki('toLowerCase'), + Ws = Ri(function (e, t, r) { + return e + (r ? '_' : '') + t.toLowerCase() + }), + Gs = Ri(function (e, t, r) { + return e + (r ? ' ' : '') + $s(t) + }), + Ys = Ri(function (e, t, r) { + return e + (r ? ' ' : '') + t.toUpperCase() + }), + $s = ki('toUpperCase') + function Xs(e, t, r) { + return ( + (e = bs(e)), + (t = r ? i : t) === i + ? (function (e) { + return tt.test(e) + })(e) + ? (function (e) { + return e.match(Qe) || [] + })(e) + : (function (e) { + return e.match(ue) || [] + })(e) + : e.match(t) || [] + ) + } + var Js = Gn(function (e, t) { + try { + return St(e, i, t) + } catch (e) { + return $a(e) ? e : new _e(e) + } + }), + Zs = Qi(function (e, t) { + return ( + Ot(t, function (t) { + ;((t = Do(t)), rn(e, t, Ia(e[t], e))) + }), + e + ) + }) + function Qs(e) { + return function () { + return e + } + } + var eu = Di(), + tu = Di(!0) + function ru(e) { + return e + } + function nu(e) { + return Rn('function' == typeof e ? e : an(e, 1)) + } + var iu = Gn(function (e, t) { + return function (r) { + return In(r, e, t) + } + }), + ou = Gn(function (e, t) { + return function (r) { + return In(e, r, t) + } + }) + function au(e, t, r) { + var n = xs(t), + i = wn(t, n) + null != r || (Qa(t) && (i.length || !n.length)) || ((r = t), (t = e), (e = this), (i = wn(t, xs(t)))) + var o = !(Qa(r) && 'chain' in r && !r.chain), + a = Xa(e) + return ( + Ot(i, function (r) { + var n = t[r] + ;((e[r] = n), + a && + (e.prototype[r] = function () { + var t = this.__chain__ + if (o || t) { + var r = e(this.__wrapped__) + return ((r.__actions__ = Mi(this.__actions__)).push({ func: n, args: arguments, thisArg: e }), (r.__chain__ = t), r) + } + return n.apply(e, kt([this.value()], arguments)) + })) + }), + e + ) + } + function su() {} + var uu = Ui(Lt), + cu = Ui(Tt), + fu = Ui(Bt) + function lu(e) { + return mo(e) + ? zt(Do(e)) + : (function (e) { + return function (t) { + return _n(t, e) + } + })(e) + } + var du = Hi(), + hu = Hi(!0) + function pu() { + return [] + } + function yu() { + return !1 + } + var gu, + bu = Fi(function (e, t) { + return e + t + }, 0), + mu = Ki('ceil'), + vu = Fi(function (e, t) { + return e / t + }, 1), + wu = Ki('floor'), + _u = Fi(function (e, t) { + return e * t + }, 1), + Eu = Ki('round'), + Su = Fi(function (e, t) { + return e - t + }, 0) + return ( + (Cr.after = function (e, t) { + if ('function' != typeof t) throw new Te(o) + return ( + (e = hs(e)), + function () { + if (--e < 1) return t.apply(this, arguments) + } + ) + }), + (Cr.ary = Ma), + (Cr.assign = ms), + (Cr.assignIn = vs), + (Cr.assignInWith = ws), + (Cr.assignWith = _s), + (Cr.at = Es), + (Cr.before = Ta), + (Cr.bind = Ia), + (Cr.bindAll = Zs), + (Cr.bindKey = Na), + (Cr.castArray = function () { + if (!arguments.length) return [] + var e = arguments[0] + return za(e) ? e : [e] + }), + (Cr.chain = la), + (Cr.chunk = function (e, t, r) { + t = (r ? bo(e, t, r) : t === i) ? 1 : yr(hs(t), 0) + var o = null == e ? 0 : e.length + if (!o || t < 1) return [] + for (var a = 0, s = 0, u = n(dt(o / t)); a < o; ) u[s++] = ei(e, a, (a += t)) + return u + }), + (Cr.compact = function (e) { + for (var t = -1, r = null == e ? 0 : e.length, n = 0, i = []; ++t < r; ) { + var o = e[t] + o && (i[n++] = o) + } + return i + }), + (Cr.concat = function () { + var e = arguments.length + if (!e) return [] + for (var t = n(e - 1), r = arguments[0], i = e; i--; ) t[i - 1] = arguments[i] + return kt(za(r) ? Mi(r) : [r], yn(t, 1)) + }), + (Cr.cond = function (e) { + var t = null == e ? 0 : e.length, + r = oo() + return ( + (e = t + ? Lt(e, function (e) { + if ('function' != typeof e[1]) throw new Te(o) + return [r(e[0]), e[1]] + }) + : []), + Gn(function (r) { + for (var n = -1; ++n < t; ) { + var i = e[n] + if (St(i[0], this, r)) return St(i[1], this, r) + } + }) + ) + }), + (Cr.conforms = function (e) { + return (function (e) { + var t = xs(e) + return function (r) { + return sn(r, e, t) + } + })(an(e, 1)) + }), + (Cr.constant = Qs), + (Cr.countBy = pa), + (Cr.create = function (e, t) { + var r = jr(e) + return null == t ? r : tn(r, t) + }), + (Cr.curry = function e(t, r, n) { + var o = Yi(t, 8, i, i, i, i, i, (r = n ? i : r)) + return ((o.placeholder = e.placeholder), o) + }), + (Cr.curryRight = function e(t, r, n) { + var o = Yi(t, 16, i, i, i, i, i, (r = n ? i : r)) + return ((o.placeholder = e.placeholder), o) + }), + (Cr.debounce = xa), + (Cr.defaults = Ss), + (Cr.defaultsDeep = As), + (Cr.defer = La), + (Cr.delay = ka), + (Cr.difference = Fo), + (Cr.differenceBy = Uo), + (Cr.differenceWith = Vo), + (Cr.drop = function (e, t, r) { + var n = null == e ? 0 : e.length + return n ? ei(e, (t = r || t === i ? 1 : hs(t)) < 0 ? 0 : t, n) : [] + }), + (Cr.dropRight = function (e, t, r) { + var n = null == e ? 0 : e.length + return n ? ei(e, 0, (t = n - (t = r || t === i ? 1 : hs(t))) < 0 ? 0 : t) : [] + }), + (Cr.dropRightWhile = function (e, t) { + return e && e.length ? fi(e, oo(t, 3), !0, !0) : [] + }), + (Cr.dropWhile = function (e, t) { + return e && e.length ? fi(e, oo(t, 3), !0) : [] + }), + (Cr.fill = function (e, t, r, n) { + var o = null == e ? 0 : e.length + return o + ? (r && 'number' != typeof r && bo(e, t, r) && ((r = 0), (n = o)), + (function (e, t, r, n) { + var o = e.length + for ( + (r = hs(r)) < 0 && (r = -r > o ? 0 : o + r), (n = n === i || n > o ? o : hs(n)) < 0 && (n += o), n = r > n ? 0 : ps(n); + r < n; + ) + e[r++] = t + return e + })(e, t, r, n)) + : [] + }), + (Cr.filter = function (e, t) { + return (za(e) ? It : pn)(e, oo(t, 3)) + }), + (Cr.flatMap = function (e, t) { + return yn(Ea(e, t), 1) + }), + (Cr.flatMapDeep = function (e, t) { + return yn(Ea(e, t), f) + }), + (Cr.flatMapDepth = function (e, t, r) { + return ((r = r === i ? 1 : hs(r)), yn(Ea(e, t), r)) + }), + (Cr.flatten = qo), + (Cr.flattenDeep = function (e) { + return null != e && e.length ? yn(e, f) : [] + }), + (Cr.flattenDepth = function (e, t) { + return null != e && e.length ? yn(e, (t = t === i ? 1 : hs(t))) : [] + }), + (Cr.flip = function (e) { + return Yi(e, 512) + }), + (Cr.flow = eu), + (Cr.flowRight = tu), + (Cr.fromPairs = function (e) { + for (var t = -1, r = null == e ? 0 : e.length, n = {}; ++t < r; ) { + var i = e[t] + n[i[0]] = i[1] + } + return n + }), + (Cr.functions = function (e) { + return null == e ? [] : wn(e, xs(e)) + }), + (Cr.functionsIn = function (e) { + return null == e ? [] : wn(e, Ls(e)) + }), + (Cr.groupBy = va), + (Cr.initial = function (e) { + return null != e && e.length ? ei(e, 0, -1) : [] + }), + (Cr.intersection = Wo), + (Cr.intersectionBy = Go), + (Cr.intersectionWith = Yo), + (Cr.invert = Ts), + (Cr.invertBy = Is), + (Cr.invokeMap = wa), + (Cr.iteratee = nu), + (Cr.keyBy = _a), + (Cr.keys = xs), + (Cr.keysIn = Ls), + (Cr.map = Ea), + (Cr.mapKeys = function (e, t) { + var r = {} + return ( + (t = oo(t, 3)), + mn(e, function (e, n, i) { + rn(r, t(e, n, i), e) + }), + r + ) + }), + (Cr.mapValues = function (e, t) { + var r = {} + return ( + (t = oo(t, 3)), + mn(e, function (e, n, i) { + rn(r, n, t(e, n, i)) + }), + r + ) + }), + (Cr.matches = function (e) { + return Cn(an(e, 1)) + }), + (Cr.matchesProperty = function (e, t) { + return jn(e, an(t, 1)) + }), + (Cr.memoize = Ra), + (Cr.merge = ks), + (Cr.mergeWith = Rs), + (Cr.method = iu), + (Cr.methodOf = ou), + (Cr.mixin = au), + (Cr.negate = Pa), + (Cr.nthArg = function (e) { + return ( + (e = hs(e)), + Gn(function (t) { + return Un(t, e) + }) + ) + }), + (Cr.omit = Ps), + (Cr.omitBy = function (e, t) { + return Ds(e, Pa(oo(t))) + }), + (Cr.once = function (e) { + return Ta(2, e) + }), + (Cr.orderBy = function (e, t, r, n) { + return null == e ? [] : (za(t) || (t = null == t ? [] : [t]), za((r = n ? i : r)) || (r = null == r ? [] : [r]), Vn(e, t, r)) + }), + (Cr.over = uu), + (Cr.overArgs = Ba), + (Cr.overEvery = cu), + (Cr.overSome = fu), + (Cr.partial = Da), + (Cr.partialRight = Ca), + (Cr.partition = Sa), + (Cr.pick = Bs), + (Cr.pickBy = Ds), + (Cr.property = lu), + (Cr.propertyOf = function (e) { + return function (t) { + return null == e ? i : _n(e, t) + } + }), + (Cr.pull = Xo), + (Cr.pullAll = Jo), + (Cr.pullAllBy = function (e, t, r) { + return e && e.length && t && t.length ? zn(e, t, oo(r, 2)) : e + }), + (Cr.pullAllWith = function (e, t, r) { + return e && e.length && t && t.length ? zn(e, t, i, r) : e + }), + (Cr.pullAt = Zo), + (Cr.range = du), + (Cr.rangeRight = hu), + (Cr.rearg = ja), + (Cr.reject = function (e, t) { + return (za(e) ? It : pn)(e, Pa(oo(t, 3))) + }), + (Cr.remove = function (e, t) { + var r = [] + if (!e || !e.length) return r + var n = -1, + i = [], + o = e.length + for (t = oo(t, 3); ++n < o; ) { + var a = e[n] + t(a, n, e) && (r.push(a), i.push(n)) + } + return (qn(e, i), r) + }), + (Cr.rest = function (e, t) { + if ('function' != typeof e) throw new Te(o) + return Gn(e, (t = t === i ? t : hs(t))) + }), + (Cr.reverse = Qo), + (Cr.sampleSize = function (e, t, r) { + return ((t = (r ? bo(e, t, r) : t === i) ? 1 : hs(t)), (za(e) ? $r : $n)(e, t)) + }), + (Cr.set = function (e, t, r) { + return null == e ? e : Xn(e, t, r) + }), + (Cr.setWith = function (e, t, r, n) { + return ((n = 'function' == typeof n ? n : i), null == e ? e : Xn(e, t, r, n)) + }), + (Cr.shuffle = function (e) { + return (za(e) ? Xr : Qn)(e) + }), + (Cr.slice = function (e, t, r) { + var n = null == e ? 0 : e.length + return n + ? (r && 'number' != typeof r && bo(e, t, r) ? ((t = 0), (r = n)) : ((t = null == t ? 0 : hs(t)), (r = r === i ? n : hs(r))), + ei(e, t, r)) + : [] + }), + (Cr.sortBy = Aa), + (Cr.sortedUniq = function (e) { + return e && e.length ? ii(e) : [] + }), + (Cr.sortedUniqBy = function (e, t) { + return e && e.length ? ii(e, oo(t, 2)) : [] + }), + (Cr.split = function (e, t, r) { + return ( + r && 'number' != typeof r && bo(e, t, r) && (t = r = i), + (r = r === i ? h : r >>> 0) + ? (e = bs(e)) && ('string' == typeof t || (null != t && !is(t))) && !(t = ai(t)) && nr(e) + ? mi(fr(e), 0, r) + : e.split(t, r) + : [] + ) + }), + (Cr.spread = function (e, t) { + if ('function' != typeof e) throw new Te(o) + return ( + (t = null == t ? 0 : yr(hs(t), 0)), + Gn(function (r) { + var n = r[t], + i = mi(r, 0, t) + return (n && kt(i, n), St(e, this, i)) + }) + ) + }), + (Cr.tail = function (e) { + var t = null == e ? 0 : e.length + return t ? ei(e, 1, t) : [] + }), + (Cr.take = function (e, t, r) { + return e && e.length ? ei(e, 0, (t = r || t === i ? 1 : hs(t)) < 0 ? 0 : t) : [] + }), + (Cr.takeRight = function (e, t, r) { + var n = null == e ? 0 : e.length + return n ? ei(e, (t = n - (t = r || t === i ? 1 : hs(t))) < 0 ? 0 : t, n) : [] + }), + (Cr.takeRightWhile = function (e, t) { + return e && e.length ? fi(e, oo(t, 3), !1, !0) : [] + }), + (Cr.takeWhile = function (e, t) { + return e && e.length ? fi(e, oo(t, 3)) : [] + }), + (Cr.tap = function (e, t) { + return (t(e), e) + }), + (Cr.throttle = function (e, t, r) { + var n = !0, + i = !0 + if ('function' != typeof e) throw new Te(o) + return ( + Qa(r) && ((n = 'leading' in r ? !!r.leading : n), (i = 'trailing' in r ? !!r.trailing : i)), + xa(e, t, { leading: n, maxWait: t, trailing: i }) + ) + }), + (Cr.thru = da), + (Cr.toArray = ls), + (Cr.toPairs = Cs), + (Cr.toPairsIn = js), + (Cr.toPath = function (e) { + return za(e) ? Lt(e, Do) : ss(e) ? [e] : Mi(Bo(bs(e))) + }), + (Cr.toPlainObject = gs), + (Cr.transform = function (e, t, r) { + var n = za(e), + i = n || Ga(e) || us(e) + if (((t = oo(t, 4)), null == r)) { + var o = e && e.constructor + r = i ? (n ? new o() : []) : Qa(e) && Xa(o) ? jr(qe(e)) : {} + } + return ( + (i ? Ot : mn)(e, function (e, n, i) { + return t(r, e, n, i) + }), + r + ) + }), + (Cr.unary = function (e) { + return Ma(e, 1) + }), + (Cr.union = ea), + (Cr.unionBy = ta), + (Cr.unionWith = ra), + (Cr.uniq = function (e) { + return e && e.length ? si(e) : [] + }), + (Cr.uniqBy = function (e, t) { + return e && e.length ? si(e, oo(t, 2)) : [] + }), + (Cr.uniqWith = function (e, t) { + return ((t = 'function' == typeof t ? t : i), e && e.length ? si(e, i, t) : []) + }), + (Cr.unset = function (e, t) { + return null == e || ui(e, t) + }), + (Cr.unzip = na), + (Cr.unzipWith = ia), + (Cr.update = function (e, t, r) { + return null == e ? e : ci(e, t, yi(r)) + }), + (Cr.updateWith = function (e, t, r, n) { + return ((n = 'function' == typeof n ? n : i), null == e ? e : ci(e, t, yi(r), n)) + }), + (Cr.values = Fs), + (Cr.valuesIn = function (e) { + return null == e ? [] : Xt(e, Ls(e)) + }), + (Cr.without = oa), + (Cr.words = Xs), + (Cr.wrap = function (e, t) { + return Da(yi(t), e) + }), + (Cr.xor = aa), + (Cr.xorBy = sa), + (Cr.xorWith = ua), + (Cr.zip = ca), + (Cr.zipObject = function (e, t) { + return hi(e || [], t || [], Zr) + }), + (Cr.zipObjectDeep = function (e, t) { + return hi(e || [], t || [], Xn) + }), + (Cr.zipWith = fa), + (Cr.entries = Cs), + (Cr.entriesIn = js), + (Cr.extend = vs), + (Cr.extendWith = ws), + au(Cr, Cr), + (Cr.add = bu), + (Cr.attempt = Js), + (Cr.camelCase = Us), + (Cr.capitalize = Vs), + (Cr.ceil = mu), + (Cr.clamp = function (e, t, r) { + return ( + r === i && ((r = t), (t = i)), + r !== i && (r = (r = ys(r)) == r ? r : 0), + t !== i && (t = (t = ys(t)) == t ? t : 0), + on(ys(e), t, r) + ) + }), + (Cr.clone = function (e) { + return an(e, 4) + }), + (Cr.cloneDeep = function (e) { + return an(e, 5) + }), + (Cr.cloneDeepWith = function (e, t) { + return an(e, 5, (t = 'function' == typeof t ? t : i)) + }), + (Cr.cloneWith = function (e, t) { + return an(e, 4, (t = 'function' == typeof t ? t : i)) + }), + (Cr.conformsTo = function (e, t) { + return null == t || sn(e, t, xs(t)) + }), + (Cr.deburr = Hs), + (Cr.defaultTo = function (e, t) { + return null == e || e != e ? t : e + }), + (Cr.divide = vu), + (Cr.endsWith = function (e, t, r) { + ;((e = bs(e)), (t = ai(t))) + var n = e.length, + o = (r = r === i ? n : on(hs(r), 0, n)) + return (r -= t.length) >= 0 && e.slice(r, o) == t + }), + (Cr.eq = Fa), + (Cr.escape = function (e) { + return (e = bs(e)) && Y.test(e) ? e.replace(W, tr) : e + }), + (Cr.escapeRegExp = function (e) { + return (e = bs(e)) && re.test(e) ? e.replace(te, '\\$&') : e + }), + (Cr.every = function (e, t, r) { + var n = za(e) ? Tt : dn + return (r && bo(e, t, r) && (t = i), n(e, oo(t, 3))) + }), + (Cr.find = ya), + (Cr.findIndex = Ho), + (Cr.findKey = function (e, t) { + return Ct(e, oo(t, 3), mn) + }), + (Cr.findLast = ga), + (Cr.findLastIndex = zo), + (Cr.findLastKey = function (e, t) { + return Ct(e, oo(t, 3), vn) + }), + (Cr.floor = wu), + (Cr.forEach = ba), + (Cr.forEachRight = ma), + (Cr.forIn = function (e, t) { + return null == e ? e : gn(e, oo(t, 3), Ls) + }), + (Cr.forInRight = function (e, t) { + return null == e ? e : bn(e, oo(t, 3), Ls) + }), + (Cr.forOwn = function (e, t) { + return e && mn(e, oo(t, 3)) + }), + (Cr.forOwnRight = function (e, t) { + return e && vn(e, oo(t, 3)) + }), + (Cr.get = Os), + (Cr.gt = Ua), + (Cr.gte = Va), + (Cr.has = function (e, t) { + return null != e && ho(e, t, On) + }), + (Cr.hasIn = Ms), + (Cr.head = Ko), + (Cr.identity = ru), + (Cr.includes = function (e, t, r, n) { + ;((e = Ka(e) ? e : Fs(e)), (r = r && !n ? hs(r) : 0)) + var i = e.length + return (r < 0 && (r = yr(i + r, 0)), as(e) ? r <= i && e.indexOf(t, r) > -1 : !!i && Ft(e, t, r) > -1) + }), + (Cr.indexOf = function (e, t, r) { + var n = null == e ? 0 : e.length + if (!n) return -1 + var i = null == r ? 0 : hs(r) + return (i < 0 && (i = yr(n + i, 0)), Ft(e, t, i)) + }), + (Cr.inRange = function (e, t, r) { + return ( + (t = ds(t)), + r === i ? ((r = t), (t = 0)) : (r = ds(r)), + (function (e, t, r) { + return e >= gr(t, r) && e < yr(t, r) + })((e = ys(e)), t, r) + ) + }), + (Cr.invoke = Ns), + (Cr.isArguments = Ha), + (Cr.isArray = za), + (Cr.isArrayBuffer = qa), + (Cr.isArrayLike = Ka), + (Cr.isArrayLikeObject = Wa), + (Cr.isBoolean = function (e) { + return !0 === e || !1 === e || (es(e) && Sn(e) == b) + }), + (Cr.isBuffer = Ga), + (Cr.isDate = Ya), + (Cr.isElement = function (e) { + return es(e) && 1 === e.nodeType && !ns(e) + }), + (Cr.isEmpty = function (e) { + if (null == e) return !0 + if (Ka(e) && (za(e) || 'string' == typeof e || 'function' == typeof e.splice || Ga(e) || us(e) || Ha(e))) return !e.length + var t = lo(e) + if (t == E || t == T) return !e.size + if (_o(e)) return !Pn(e).length + for (var r in e) if (Re.call(e, r)) return !1 + return !0 + }), + (Cr.isEqual = function (e, t) { + return xn(e, t) + }), + (Cr.isEqualWith = function (e, t, r) { + var n = (r = 'function' == typeof r ? r : i) ? r(e, t) : i + return n === i ? xn(e, t, i, r) : !!n + }), + (Cr.isError = $a), + (Cr.isFinite = function (e) { + return 'number' == typeof e && Dt(e) + }), + (Cr.isFunction = Xa), + (Cr.isInteger = Ja), + (Cr.isLength = Za), + (Cr.isMap = ts), + (Cr.isMatch = function (e, t) { + return e === t || Ln(e, t, so(t)) + }), + (Cr.isMatchWith = function (e, t, r) { + return ((r = 'function' == typeof r ? r : i), Ln(e, t, so(t), r)) + }), + (Cr.isNaN = function (e) { + return rs(e) && e != +e + }), + (Cr.isNative = function (e) { + if (wo(e)) throw new _e('Unsupported core-js use. Try https://npms.io/search?q=ponyfill.') + return kn(e) + }), + (Cr.isNil = function (e) { + return null == e + }), + (Cr.isNull = function (e) { + return null === e + }), + (Cr.isNumber = rs), + (Cr.isObject = Qa), + (Cr.isObjectLike = es), + (Cr.isPlainObject = ns), + (Cr.isRegExp = is), + (Cr.isSafeInteger = function (e) { + return Ja(e) && e >= -9007199254740991 && e <= l + }), + (Cr.isSet = os), + (Cr.isString = as), + (Cr.isSymbol = ss), + (Cr.isTypedArray = us), + (Cr.isUndefined = function (e) { + return e === i + }), + (Cr.isWeakMap = function (e) { + return es(e) && lo(e) == x + }), + (Cr.isWeakSet = function (e) { + return es(e) && '[object WeakSet]' == Sn(e) + }), + (Cr.join = function (e, t) { + return null == e ? '' : qt.call(e, t) + }), + (Cr.kebabCase = zs), + (Cr.last = $o), + (Cr.lastIndexOf = function (e, t, r) { + var n = null == e ? 0 : e.length + if (!n) return -1 + var o = n + return ( + r !== i && (o = (o = hs(r)) < 0 ? yr(n + o, 0) : gr(o, n - 1)), + t == t + ? (function (e, t, r) { + for (var n = r + 1; n--; ) if (e[n] === t) return n + return n + })(e, t, o) + : jt(e, Vt, o, !0) + ) + }), + (Cr.lowerCase = qs), + (Cr.lowerFirst = Ks), + (Cr.lt = cs), + (Cr.lte = fs), + (Cr.max = function (e) { + return e && e.length ? hn(e, ru, An) : i + }), + (Cr.maxBy = function (e, t) { + return e && e.length ? hn(e, oo(t, 2), An) : i + }), + (Cr.mean = function (e) { + return Ht(e, ru) + }), + (Cr.meanBy = function (e, t) { + return Ht(e, oo(t, 2)) + }), + (Cr.min = function (e) { + return e && e.length ? hn(e, ru, Bn) : i + }), + (Cr.minBy = function (e, t) { + return e && e.length ? hn(e, oo(t, 2), Bn) : i + }), + (Cr.stubArray = pu), + (Cr.stubFalse = yu), + (Cr.stubObject = function () { + return {} + }), + (Cr.stubString = function () { + return '' + }), + (Cr.stubTrue = function () { + return !0 + }), + (Cr.multiply = _u), + (Cr.nth = function (e, t) { + return e && e.length ? Un(e, hs(t)) : i + }), + (Cr.noConflict = function () { + return (lt._ === this && (lt._ = je), this) + }), + (Cr.noop = su), + (Cr.now = Oa), + (Cr.pad = function (e, t, r) { + e = bs(e) + var n = (t = hs(t)) ? cr(e) : 0 + if (!t || n >= t) return e + var i = (t - n) / 2 + return Vi(ht(i), r) + e + Vi(dt(i), r) + }), + (Cr.padEnd = function (e, t, r) { + e = bs(e) + var n = (t = hs(t)) ? cr(e) : 0 + return t && n < t ? e + Vi(t - n, r) : e + }), + (Cr.padStart = function (e, t, r) { + e = bs(e) + var n = (t = hs(t)) ? cr(e) : 0 + return t && n < t ? Vi(t - n, r) + e : e + }), + (Cr.parseInt = function (e, t, r) { + return (r || null == t ? (t = 0) : t && (t = +t), mr(bs(e).replace(ne, ''), t || 0)) + }), + (Cr.random = function (e, t, r) { + if ( + (r && 'boolean' != typeof r && bo(e, t, r) && (t = r = i), + r === i && ('boolean' == typeof t ? ((r = t), (t = i)) : 'boolean' == typeof e && ((r = e), (e = i))), + e === i && t === i ? ((e = 0), (t = 1)) : ((e = ds(e)), t === i ? ((t = e), (e = 0)) : (t = ds(t))), + e > t) + ) { + var n = e + ;((e = t), (t = n)) + } + if (r || e % 1 || t % 1) { + var o = vr() + return gr(e + o * (t - e + st('1e-' + ((o + '').length - 1))), t) + } + return Kn(e, t) + }), + (Cr.reduce = function (e, t, r) { + var n = za(e) ? Rt : Kt, + i = arguments.length < 3 + return n(e, oo(t, 4), r, i, fn) + }), + (Cr.reduceRight = function (e, t, r) { + var n = za(e) ? Pt : Kt, + i = arguments.length < 3 + return n(e, oo(t, 4), r, i, ln) + }), + (Cr.repeat = function (e, t, r) { + return ((t = (r ? bo(e, t, r) : t === i) ? 1 : hs(t)), Wn(bs(e), t)) + }), + (Cr.replace = function () { + var e = arguments, + t = bs(e[0]) + return e.length < 3 ? t : t.replace(e[1], e[2]) + }), + (Cr.result = function (e, t, r) { + var n = -1, + o = (t = gi(t, e)).length + for (o || ((o = 1), (e = i)); ++n < o; ) { + var a = null == e ? i : e[Do(t[n])] + ;(a === i && ((n = o), (a = r)), (e = Xa(a) ? a.call(e) : a)) + } + return e + }), + (Cr.round = Eu), + (Cr.runInContext = e), + (Cr.sample = function (e) { + return (za(e) ? Yr : Yn)(e) + }), + (Cr.size = function (e) { + if (null == e) return 0 + if (Ka(e)) return as(e) ? cr(e) : e.length + var t = lo(e) + return t == E || t == T ? e.size : Pn(e).length + }), + (Cr.snakeCase = Ws), + (Cr.some = function (e, t, r) { + var n = za(e) ? Bt : ti + return (r && bo(e, t, r) && (t = i), n(e, oo(t, 3))) + }), + (Cr.sortedIndex = function (e, t) { + return ri(e, t) + }), + (Cr.sortedIndexBy = function (e, t, r) { + return ni(e, t, oo(r, 2)) + }), + (Cr.sortedIndexOf = function (e, t) { + var r = null == e ? 0 : e.length + if (r) { + var n = ri(e, t) + if (n < r && Fa(e[n], t)) return n + } + return -1 + }), + (Cr.sortedLastIndex = function (e, t) { + return ri(e, t, !0) + }), + (Cr.sortedLastIndexBy = function (e, t, r) { + return ni(e, t, oo(r, 2), !0) + }), + (Cr.sortedLastIndexOf = function (e, t) { + if (null != e && e.length) { + var r = ri(e, t, !0) - 1 + if (Fa(e[r], t)) return r + } + return -1 + }), + (Cr.startCase = Gs), + (Cr.startsWith = function (e, t, r) { + return ((e = bs(e)), (r = null == r ? 0 : on(hs(r), 0, e.length)), (t = ai(t)), e.slice(r, r + t.length) == t) + }), + (Cr.subtract = Su), + (Cr.sum = function (e) { + return e && e.length ? Wt(e, ru) : 0 + }), + (Cr.sumBy = function (e, t) { + return e && e.length ? Wt(e, oo(t, 2)) : 0 + }), + (Cr.template = function (e, t, r) { + var n = Cr.templateSettings + ;(r && bo(e, t, r) && (t = i), (e = bs(e)), (t = ws({}, t, n, $i))) + var o, + a, + s = ws({}, t.imports, n.imports, $i), + u = xs(s), + c = Xt(s, u), + f = 0, + l = t.interpolate || ve, + d = "__p += '", + h = Oe( + (t.escape || ve).source + '|' + l.source + '|' + (l === J ? le : ve).source + '|' + (t.evaluate || ve).source + '|$', + 'g', + ), + p = + '//# sourceURL=' + + (Re.call(t, 'sourceURL') ? (t.sourceURL + '').replace(/\s/g, ' ') : 'lodash.templateSources[' + ++nt + ']') + + '\n' + ;(e.replace(h, function (t, r, n, i, s, u) { + return ( + n || (n = i), + (d += e.slice(f, u).replace(we, rr)), + r && ((o = !0), (d += "' +\n__e(" + r + ") +\n'")), + s && ((a = !0), (d += "';\n" + s + ";\n__p += '")), + n && (d += "' +\n((__t = (" + n + ")) == null ? '' : __t) +\n'"), + (f = u + t.length), + t + ) + }), + (d += "';\n")) + var y = Re.call(t, 'variable') && t.variable + if (y) { + if (ce.test(y)) throw new _e('Invalid `variable` option passed into `_.template`') + } else d = 'with (obj) {\n' + d + '\n}\n' + ;((d = (a ? d.replace(H, '') : d).replace(z, '$1').replace(q, '$1;')), + (d = + 'function(' + + (y || 'obj') + + ') {\n' + + (y ? '' : 'obj || (obj = {});\n') + + "var __t, __p = ''" + + (o ? ', __e = _.escape' : '') + + (a ? ", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n" : ';\n') + + d + + 'return __p\n}')) + var g = Js(function () { + return Ee(u, p + 'return ' + d).apply(i, c) + }) + if (((g.source = d), $a(g))) throw g + return g + }), + (Cr.times = function (e, t) { + if ((e = hs(e)) < 1 || e > l) return [] + var r = h, + n = gr(e, h) + ;((t = oo(t)), (e -= h)) + for (var i = Gt(n, t); ++r < e; ) t(r) + return i + }), + (Cr.toFinite = ds), + (Cr.toInteger = hs), + (Cr.toLength = ps), + (Cr.toLower = function (e) { + return bs(e).toLowerCase() + }), + (Cr.toNumber = ys), + (Cr.toSafeInteger = function (e) { + return e ? on(hs(e), -9007199254740991, l) : 0 === e ? e : 0 + }), + (Cr.toString = bs), + (Cr.toUpper = function (e) { + return bs(e).toUpperCase() + }), + (Cr.trim = function (e, t, r) { + if ((e = bs(e)) && (r || t === i)) return Yt(e) + if (!e || !(t = ai(t))) return e + var n = fr(e), + o = fr(t) + return mi(n, Zt(n, o), Qt(n, o) + 1).join('') + }), + (Cr.trimEnd = function (e, t, r) { + if ((e = bs(e)) && (r || t === i)) return e.slice(0, lr(e) + 1) + if (!e || !(t = ai(t))) return e + var n = fr(e) + return mi(n, 0, Qt(n, fr(t)) + 1).join('') + }), + (Cr.trimStart = function (e, t, r) { + if ((e = bs(e)) && (r || t === i)) return e.replace(ne, '') + if (!e || !(t = ai(t))) return e + var n = fr(e) + return mi(n, Zt(n, fr(t))).join('') + }), + (Cr.truncate = function (e, t) { + var r = 30, + n = '...' + if (Qa(t)) { + var o = 'separator' in t ? t.separator : o + ;((r = 'length' in t ? hs(t.length) : r), (n = 'omission' in t ? ai(t.omission) : n)) + } + var a = (e = bs(e)).length + if (nr(e)) { + var s = fr(e) + a = s.length + } + if (r >= a) return e + var u = r - cr(n) + if (u < 1) return n + var c = s ? mi(s, 0, u).join('') : e.slice(0, u) + if (o === i) return c + n + if ((s && (u += c.length - u), is(o))) { + if (e.slice(u).search(o)) { + var f, + l = c + for (o.global || (o = Oe(o.source, bs(de.exec(o)) + 'g')), o.lastIndex = 0; (f = o.exec(l)); ) var d = f.index + c = c.slice(0, d === i ? u : d) + } + } else if (e.indexOf(ai(o), u) != u) { + var h = c.lastIndexOf(o) + h > -1 && (c = c.slice(0, h)) + } + return c + n + }), + (Cr.unescape = function (e) { + return (e = bs(e)) && G.test(e) ? e.replace(K, dr) : e + }), + (Cr.uniqueId = function (e) { + var t = ++Pe + return bs(e) + t + }), + (Cr.upperCase = Ys), + (Cr.upperFirst = $s), + (Cr.each = ba), + (Cr.eachRight = ma), + (Cr.first = Ko), + au( + Cr, + ((gu = {}), + mn(Cr, function (e, t) { + Re.call(Cr.prototype, t) || (gu[t] = e) + }), + gu), + { chain: !1 }, + ), + (Cr.VERSION = '4.17.21'), + Ot(['bind', 'bindKey', 'curry', 'curryRight', 'partial', 'partialRight'], function (e) { + Cr[e].placeholder = Cr + }), + Ot(['drop', 'take'], function (e, t) { + ;((Vr.prototype[e] = function (r) { + r = r === i ? 1 : yr(hs(r), 0) + var n = this.__filtered__ && !t ? new Vr(this) : this.clone() + return ( + n.__filtered__ + ? (n.__takeCount__ = gr(r, n.__takeCount__)) + : n.__views__.push({ size: gr(r, h), type: e + (n.__dir__ < 0 ? 'Right' : '') }), + n + ) + }), + (Vr.prototype[e + 'Right'] = function (t) { + return this.reverse()[e](t).reverse() + })) + }), + Ot(['filter', 'map', 'takeWhile'], function (e, t) { + var r = t + 1, + n = 1 == r || 3 == r + Vr.prototype[e] = function (e) { + var t = this.clone() + return (t.__iteratees__.push({ iteratee: oo(e, 3), type: r }), (t.__filtered__ = t.__filtered__ || n), t) + } + }), + Ot(['head', 'last'], function (e, t) { + var r = 'take' + (t ? 'Right' : '') + Vr.prototype[e] = function () { + return this[r](1).value()[0] + } + }), + Ot(['initial', 'tail'], function (e, t) { + var r = 'drop' + (t ? '' : 'Right') + Vr.prototype[e] = function () { + return this.__filtered__ ? new Vr(this) : this[r](1) + } + }), + (Vr.prototype.compact = function () { + return this.filter(ru) + }), + (Vr.prototype.find = function (e) { + return this.filter(e).head() + }), + (Vr.prototype.findLast = function (e) { + return this.reverse().find(e) + }), + (Vr.prototype.invokeMap = Gn(function (e, t) { + return 'function' == typeof e + ? new Vr(this) + : this.map(function (r) { + return In(r, e, t) + }) + })), + (Vr.prototype.reject = function (e) { + return this.filter(Pa(oo(e))) + }), + (Vr.prototype.slice = function (e, t) { + e = hs(e) + var r = this + return r.__filtered__ && (e > 0 || t < 0) + ? new Vr(r) + : (e < 0 ? (r = r.takeRight(-e)) : e && (r = r.drop(e)), t !== i && (r = (t = hs(t)) < 0 ? r.dropRight(-t) : r.take(t - e)), r) + }), + (Vr.prototype.takeRightWhile = function (e) { + return this.reverse().takeWhile(e).reverse() + }), + (Vr.prototype.toArray = function () { + return this.take(h) + }), + mn(Vr.prototype, function (e, t) { + var r = /^(?:filter|find|map|reject)|While$/.test(t), + n = /^(?:head|last)$/.test(t), + o = Cr[n ? 'take' + ('last' == t ? 'Right' : '') : t], + a = n || /^find/.test(t) + o && + (Cr.prototype[t] = function () { + var t = this.__wrapped__, + s = n ? [1] : arguments, + u = t instanceof Vr, + c = s[0], + f = u || za(t), + l = function (e) { + var t = o.apply(Cr, kt([e], s)) + return n && d ? t[0] : t + } + f && r && 'function' == typeof c && 1 != c.length && (u = f = !1) + var d = this.__chain__, + h = !!this.__actions__.length, + p = a && !d, + y = u && !h + if (!a && f) { + t = y ? t : new Vr(this) + var g = e.apply(t, s) + return (g.__actions__.push({ func: da, args: [l], thisArg: i }), new Ur(g, d)) + } + return p && y ? e.apply(this, s) : ((g = this.thru(l)), p ? (n ? g.value()[0] : g.value()) : g) + }) + }), + Ot(['pop', 'push', 'shift', 'sort', 'splice', 'unshift'], function (e) { + var t = Ie[e], + r = /^(?:push|sort|unshift)$/.test(e) ? 'tap' : 'thru', + n = /^(?:pop|shift)$/.test(e) + Cr.prototype[e] = function () { + var e = arguments + if (n && !this.__chain__) { + var i = this.value() + return t.apply(za(i) ? i : [], e) + } + return this[r](function (r) { + return t.apply(za(r) ? r : [], e) + }) + } + }), + mn(Vr.prototype, function (e, t) { + var r = Cr[t] + if (r) { + var n = r.name + '' + ;(Re.call(Ir, n) || (Ir[n] = []), Ir[n].push({ name: t, func: r })) + } + }), + (Ir[Ci(i, 2).name] = [{ name: 'wrapper', func: i }]), + (Vr.prototype.clone = function () { + var e = new Vr(this.__wrapped__) + return ( + (e.__actions__ = Mi(this.__actions__)), + (e.__dir__ = this.__dir__), + (e.__filtered__ = this.__filtered__), + (e.__iteratees__ = Mi(this.__iteratees__)), + (e.__takeCount__ = this.__takeCount__), + (e.__views__ = Mi(this.__views__)), + e + ) + }), + (Vr.prototype.reverse = function () { + if (this.__filtered__) { + var e = new Vr(this) + ;((e.__dir__ = -1), (e.__filtered__ = !0)) + } else (e = this.clone()).__dir__ *= -1 + return e + }), + (Vr.prototype.value = function () { + var e = this.__wrapped__.value(), + t = this.__dir__, + r = za(e), + n = t < 0, + i = r ? e.length : 0, + o = (function (e, t, r) { + for (var n = -1, i = r.length; ++n < i; ) { + var o = r[n], + a = o.size + switch (o.type) { + case 'drop': + e += a + break + case 'dropRight': + t -= a + break + case 'take': + t = gr(t, e + a) + break + case 'takeRight': + e = yr(e, t - a) + } + } + return { start: e, end: t } + })(0, i, this.__views__), + a = o.start, + s = o.end, + u = s - a, + c = n ? s : a - 1, + f = this.__iteratees__, + l = f.length, + d = 0, + h = gr(u, this.__takeCount__) + if (!r || (!n && i == u && h == u)) return li(e, this.__actions__) + var p = [] + e: for (; u-- && d < h; ) { + for (var y = -1, g = e[(c += t)]; ++y < l; ) { + var b = f[y], + m = b.iteratee, + v = b.type, + w = m(g) + if (2 == v) g = w + else if (!w) { + if (1 == v) continue e + break e + } + } + p[d++] = g + } + return p + }), + (Cr.prototype.at = ha), + (Cr.prototype.chain = function () { + return la(this) + }), + (Cr.prototype.commit = function () { + return new Ur(this.value(), this.__chain__) + }), + (Cr.prototype.next = function () { + this.__values__ === i && (this.__values__ = ls(this.value())) + var e = this.__index__ >= this.__values__.length + return { done: e, value: e ? i : this.__values__[this.__index__++] } + }), + (Cr.prototype.plant = function (e) { + for (var t, r = this; r instanceof Fr; ) { + var n = jo(r) + ;((n.__index__ = 0), (n.__values__ = i), t ? (o.__wrapped__ = n) : (t = n)) + var o = n + r = r.__wrapped__ + } + return ((o.__wrapped__ = e), t) + }), + (Cr.prototype.reverse = function () { + var e = this.__wrapped__ + if (e instanceof Vr) { + var t = e + return ( + this.__actions__.length && (t = new Vr(this)), + (t = t.reverse()).__actions__.push({ func: da, args: [Qo], thisArg: i }), + new Ur(t, this.__chain__) + ) + } + return this.thru(Qo) + }), + (Cr.prototype.toJSON = + Cr.prototype.valueOf = + Cr.prototype.value = + function () { + return li(this.__wrapped__, this.__actions__) + }), + (Cr.prototype.first = Cr.prototype.head), + $e && + (Cr.prototype[$e] = function () { + return this + }), + Cr + ) + })() + ;((lt._ = hr), + (n = function () { + return hr + }.call(t, r, t, e)) === i || (e.exports = n)) + }.call(this)) + }, + 82856: (e, t, r) => { + var n = r(81078), + i = r(55615), + o = r(91996), + a = r(69546) + e.exports = function (e, t) { + return (a(e) ? n : o)(e, i(t, 3)) + } + }, + 2520: (e, t, r) => { + var n = r(52290) + function i(e, t) { + if ('function' != typeof e || (null != t && 'function' != typeof t)) throw new TypeError('Expected a function') + var r = function () { + var n = arguments, + i = t ? t.apply(this, n) : n[0], + o = r.cache + if (o.has(i)) return o.get(i) + var a = e.apply(this, n) + return ((r.cache = o.set(i, a) || o), a) + } + return ((r.cache = new (i.Cache || n)()), r) + } + ;((i.Cache = n), (e.exports = i)) + }, + 88034: (e) => { + e.exports = function (e) { + if ('function' != typeof e) throw new TypeError('Expected a function') + return function () { + var t = arguments + switch (t.length) { + case 0: + return !e.call(this) + case 1: + return !e.call(this, t[0]) + case 2: + return !e.call(this, t[0], t[1]) + case 3: + return !e.call(this, t[0], t[1], t[2]) + } + return !e.apply(this, t) + } + } + }, + 27629: (e, t, r) => { + var n = r(55615), + i = r(88034), + o = r(36432) + e.exports = function (e, t) { + return o(e, i(n(t))) + } + }, + 36432: (e, t, r) => { + var n = r(81078), + i = r(55615), + o = r(33092), + a = r(10478) + e.exports = function (e, t) { + if (null == e) return {} + var r = n(a(e), function (e) { + return [e] + }) + return ( + (t = i(t)), + o(e, r, function (e, r) { + return t(e, r[0]) + }) + ) + } + }, + 96730: (e, t, r) => { + var n = r(74430), + i = r(12257), + o = r(65677), + a = r(49558) + e.exports = function (e) { + return o(e) ? n(a(e)) : i(e) + } + }, + 41258: (e) => { + e.exports = function () { + return [] + } + }, + 68854: (e) => { + e.exports = function () { + return !1 + } + }, + 39244: (e, t, r) => { + var n = r(7874) + e.exports = function (e) { + return null == e ? '' : n(e) + } + }, + 54659: (e, t, r) => { + 'use strict' + var n = r(19105), + i = r(35921), + o = r(59105).Buffer, + a = new Array(16) + function s() { + ;(i.call(this, 64), (this._a = 1732584193), (this._b = 4023233417), (this._c = 2562383102), (this._d = 271733878)) + } + function u(e, t) { + return (e << t) | (e >>> (32 - t)) + } + function c(e, t, r, n, i, o, a) { + return (u((e + ((t & r) | (~t & n)) + i + o) | 0, a) + t) | 0 + } + function f(e, t, r, n, i, o, a) { + return (u((e + ((t & n) | (r & ~n)) + i + o) | 0, a) + t) | 0 + } + function l(e, t, r, n, i, o, a) { + return (u((e + (t ^ r ^ n) + i + o) | 0, a) + t) | 0 + } + function d(e, t, r, n, i, o, a) { + return (u((e + (r ^ (t | ~n)) + i + o) | 0, a) + t) | 0 + } + ;(n(s, i), + (s.prototype._update = function () { + for (var e = a, t = 0; t < 16; ++t) e[t] = this._block.readInt32LE(4 * t) + var r = this._a, + n = this._b, + i = this._c, + o = this._d + ;((r = c(r, n, i, o, e[0], 3614090360, 7)), + (o = c(o, r, n, i, e[1], 3905402710, 12)), + (i = c(i, o, r, n, e[2], 606105819, 17)), + (n = c(n, i, o, r, e[3], 3250441966, 22)), + (r = c(r, n, i, o, e[4], 4118548399, 7)), + (o = c(o, r, n, i, e[5], 1200080426, 12)), + (i = c(i, o, r, n, e[6], 2821735955, 17)), + (n = c(n, i, o, r, e[7], 4249261313, 22)), + (r = c(r, n, i, o, e[8], 1770035416, 7)), + (o = c(o, r, n, i, e[9], 2336552879, 12)), + (i = c(i, o, r, n, e[10], 4294925233, 17)), + (n = c(n, i, o, r, e[11], 2304563134, 22)), + (r = c(r, n, i, o, e[12], 1804603682, 7)), + (o = c(o, r, n, i, e[13], 4254626195, 12)), + (i = c(i, o, r, n, e[14], 2792965006, 17)), + (r = f(r, (n = c(n, i, o, r, e[15], 1236535329, 22)), i, o, e[1], 4129170786, 5)), + (o = f(o, r, n, i, e[6], 3225465664, 9)), + (i = f(i, o, r, n, e[11], 643717713, 14)), + (n = f(n, i, o, r, e[0], 3921069994, 20)), + (r = f(r, n, i, o, e[5], 3593408605, 5)), + (o = f(o, r, n, i, e[10], 38016083, 9)), + (i = f(i, o, r, n, e[15], 3634488961, 14)), + (n = f(n, i, o, r, e[4], 3889429448, 20)), + (r = f(r, n, i, o, e[9], 568446438, 5)), + (o = f(o, r, n, i, e[14], 3275163606, 9)), + (i = f(i, o, r, n, e[3], 4107603335, 14)), + (n = f(n, i, o, r, e[8], 1163531501, 20)), + (r = f(r, n, i, o, e[13], 2850285829, 5)), + (o = f(o, r, n, i, e[2], 4243563512, 9)), + (i = f(i, o, r, n, e[7], 1735328473, 14)), + (r = l(r, (n = f(n, i, o, r, e[12], 2368359562, 20)), i, o, e[5], 4294588738, 4)), + (o = l(o, r, n, i, e[8], 2272392833, 11)), + (i = l(i, o, r, n, e[11], 1839030562, 16)), + (n = l(n, i, o, r, e[14], 4259657740, 23)), + (r = l(r, n, i, o, e[1], 2763975236, 4)), + (o = l(o, r, n, i, e[4], 1272893353, 11)), + (i = l(i, o, r, n, e[7], 4139469664, 16)), + (n = l(n, i, o, r, e[10], 3200236656, 23)), + (r = l(r, n, i, o, e[13], 681279174, 4)), + (o = l(o, r, n, i, e[0], 3936430074, 11)), + (i = l(i, o, r, n, e[3], 3572445317, 16)), + (n = l(n, i, o, r, e[6], 76029189, 23)), + (r = l(r, n, i, o, e[9], 3654602809, 4)), + (o = l(o, r, n, i, e[12], 3873151461, 11)), + (i = l(i, o, r, n, e[15], 530742520, 16)), + (r = d(r, (n = l(n, i, o, r, e[2], 3299628645, 23)), i, o, e[0], 4096336452, 6)), + (o = d(o, r, n, i, e[7], 1126891415, 10)), + (i = d(i, o, r, n, e[14], 2878612391, 15)), + (n = d(n, i, o, r, e[5], 4237533241, 21)), + (r = d(r, n, i, o, e[12], 1700485571, 6)), + (o = d(o, r, n, i, e[3], 2399980690, 10)), + (i = d(i, o, r, n, e[10], 4293915773, 15)), + (n = d(n, i, o, r, e[1], 2240044497, 21)), + (r = d(r, n, i, o, e[8], 1873313359, 6)), + (o = d(o, r, n, i, e[15], 4264355552, 10)), + (i = d(i, o, r, n, e[6], 2734768916, 15)), + (n = d(n, i, o, r, e[13], 1309151649, 21)), + (r = d(r, n, i, o, e[4], 4149444226, 6)), + (o = d(o, r, n, i, e[11], 3174756917, 10)), + (i = d(i, o, r, n, e[2], 718787259, 15)), + (n = d(n, i, o, r, e[9], 3951481745, 21)), + (this._a = (this._a + r) | 0), + (this._b = (this._b + n) | 0), + (this._c = (this._c + i) | 0), + (this._d = (this._d + o) | 0)) + }), + (s.prototype._digest = function () { + ;((this._block[this._blockOffset++] = 128), + this._blockOffset > 56 && (this._block.fill(0, this._blockOffset, 64), this._update(), (this._blockOffset = 0)), + this._block.fill(0, this._blockOffset, 56), + this._block.writeUInt32LE(this._length[0], 56), + this._block.writeUInt32LE(this._length[1], 60), + this._update()) + var e = o.allocUnsafe(16) + return (e.writeInt32LE(this._a, 0), e.writeInt32LE(this._b, 4), e.writeInt32LE(this._c, 8), e.writeInt32LE(this._d, 12), e) + }), + (e.exports = s)) + }, + 85501: (e, t, r) => { + var n = r(10660), + i = r(72486) + function o(e) { + this.rand = e || new i.Rand() + } + ;((e.exports = o), + (o.create = function (e) { + return new o(e) + }), + (o.prototype._randbelow = function (e) { + var t = e.bitLength(), + r = Math.ceil(t / 8) + do { + var i = new n(this.rand.generate(r)) + } while (i.cmp(e) >= 0) + return i + }), + (o.prototype._randrange = function (e, t) { + var r = t.sub(e) + return e.add(this._randbelow(r)) + }), + (o.prototype.test = function (e, t, r) { + var i = e.bitLength(), + o = n.mont(e), + a = new n(1).toRed(o) + t || (t = Math.max(1, (i / 48) | 0)) + for (var s = e.subn(1), u = 0; !s.testn(u); u++); + for (var c = e.shrn(u), f = s.toRed(o); t > 0; t--) { + var l = this._randrange(new n(2), s) + r && r(l) + var d = l.toRed(o).redPow(c) + if (0 !== d.cmp(a) && 0 !== d.cmp(f)) { + for (var h = 1; h < u; h++) { + if (0 === (d = d.redSqr()).cmp(a)) return !1 + if (0 === d.cmp(f)) break + } + if (h === u) return !1 + } + } + return !0 + }), + (o.prototype.getDivisor = function (e, t) { + var r = e.bitLength(), + i = n.mont(e), + o = new n(1).toRed(i) + t || (t = Math.max(1, (r / 48) | 0)) + for (var a = e.subn(1), s = 0; !a.testn(s); s++); + for (var u = e.shrn(s), c = a.toRed(i); t > 0; t--) { + var f = this._randrange(new n(2), a), + l = e.gcd(f) + if (0 !== l.cmpn(1)) return l + var d = f.toRed(i).redPow(u) + if (0 !== d.cmp(o) && 0 !== d.cmp(c)) { + for (var h = 1; h < s; h++) { + if (0 === (d = d.redSqr()).cmp(o)) return d.fromRed().subn(1).gcd(e) + if (0 === d.cmp(c)) break + } + if (h === s) return (d = d.redSqr()).fromRed().subn(1).gcd(e) + } + } + return !1 + })) + }, + 44647: (e) => { + function t(e, t) { + if (!e) throw new Error(t || 'Assertion failed') + } + ;((e.exports = t), + (t.equal = function (e, t, r) { + if (e != t) throw new Error(r || 'Assertion failed: ' + e + ' != ' + t) + })) + }, + 91349: (e, t) => { + 'use strict' + var r = t + function n(e) { + return 1 === e.length ? '0' + e : e + } + function i(e) { + for (var t = '', r = 0; r < e.length; r++) t += n(e[r].toString(16)) + return t + } + ;((r.toArray = function (e, t) { + if (Array.isArray(e)) return e.slice() + if (!e) return [] + var r = [] + if ('string' != typeof e) { + for (var n = 0; n < e.length; n++) r[n] = 0 | e[n] + return r + } + if ('hex' === t) + for ((e = e.replace(/[^a-z0-9]+/gi, '')).length % 2 != 0 && (e = '0' + e), n = 0; n < e.length; n += 2) + r.push(parseInt(e[n] + e[n + 1], 16)) + else + for (n = 0; n < e.length; n++) { + var i = e.charCodeAt(n), + o = i >> 8, + a = 255 & i + o ? r.push(o, a) : r.push(a) + } + return r + }), + (r.zero2 = n), + (r.toHex = i), + (r.encode = function (e, t) { + return 'hex' === t ? i(e) : e + })) + }, + 64651: (e, t, r) => { + var n = 'function' == typeof Map && Map.prototype, + i = Object.getOwnPropertyDescriptor && n ? Object.getOwnPropertyDescriptor(Map.prototype, 'size') : null, + o = n && i && 'function' == typeof i.get ? i.get : null, + a = n && Map.prototype.forEach, + s = 'function' == typeof Set && Set.prototype, + u = Object.getOwnPropertyDescriptor && s ? Object.getOwnPropertyDescriptor(Set.prototype, 'size') : null, + c = s && u && 'function' == typeof u.get ? u.get : null, + f = s && Set.prototype.forEach, + l = 'function' == typeof WeakMap && WeakMap.prototype ? WeakMap.prototype.has : null, + d = 'function' == typeof WeakSet && WeakSet.prototype ? WeakSet.prototype.has : null, + h = 'function' == typeof WeakRef && WeakRef.prototype ? WeakRef.prototype.deref : null, + p = Boolean.prototype.valueOf, + y = Object.prototype.toString, + g = Function.prototype.toString, + b = String.prototype.match, + m = String.prototype.slice, + v = String.prototype.replace, + w = String.prototype.toUpperCase, + _ = String.prototype.toLowerCase, + E = RegExp.prototype.test, + S = Array.prototype.concat, + A = Array.prototype.join, + O = Array.prototype.slice, + M = Math.floor, + T = 'function' == typeof BigInt ? BigInt.prototype.valueOf : null, + I = Object.getOwnPropertySymbols, + N = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? Symbol.prototype.toString : null, + x = 'function' == typeof Symbol && 'object' == typeof Symbol.iterator, + L = 'function' == typeof Symbol && Symbol.toStringTag && (Symbol.toStringTag, 1) ? Symbol.toStringTag : null, + k = Object.prototype.propertyIsEnumerable, + R = + ('function' == typeof Reflect ? Reflect.getPrototypeOf : Object.getPrototypeOf) || + ([].__proto__ === Array.prototype + ? function (e) { + return e.__proto__ + } + : null) + function P(e, t) { + if (e === 1 / 0 || e === -1 / 0 || e != e || (e && e > -1e3 && e < 1e3) || E.call(/e/, t)) return t + var r = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g + if ('number' == typeof e) { + var n = e < 0 ? -M(-e) : M(e) + if (n !== e) { + var i = String(n), + o = m.call(t, i.length + 1) + return v.call(i, r, '$&_') + '.' + v.call(v.call(o, /([0-9]{3})/g, '$&_'), /_$/, '') + } + } + return v.call(t, r, '$&_') + } + var B = r(53260), + D = B.custom, + C = H(D) ? D : null + function j(e, t, r) { + var n = 'double' === (r.quoteStyle || t) ? '"' : "'" + return n + e + n + } + function F(e) { + return v.call(String(e), /"/g, '"') + } + function U(e) { + return !('[object Array]' !== K(e) || (L && 'object' == typeof e && L in e)) + } + function V(e) { + return !('[object RegExp]' !== K(e) || (L && 'object' == typeof e && L in e)) + } + function H(e) { + if (x) return e && 'object' == typeof e && e instanceof Symbol + if ('symbol' == typeof e) return !0 + if (!e || 'object' != typeof e || !N) return !1 + try { + return (N.call(e), !0) + } catch (e) {} + return !1 + } + e.exports = function e(t, r, n, i) { + var s = r || {} + if (q(s, 'quoteStyle') && 'single' !== s.quoteStyle && 'double' !== s.quoteStyle) + throw new TypeError('option "quoteStyle" must be "single" or "double"') + if ( + q(s, 'maxStringLength') && + ('number' == typeof s.maxStringLength ? s.maxStringLength < 0 && s.maxStringLength !== 1 / 0 : null !== s.maxStringLength) + ) + throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`') + var u = !q(s, 'customInspect') || s.customInspect + if ('boolean' != typeof u && 'symbol' !== u) + throw new TypeError('option "customInspect", if provided, must be `true`, `false`, or `\'symbol\'`') + if (q(s, 'indent') && null !== s.indent && '\t' !== s.indent && !(parseInt(s.indent, 10) === s.indent && s.indent > 0)) + throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`') + if (q(s, 'numericSeparator') && 'boolean' != typeof s.numericSeparator) + throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`') + var y = s.numericSeparator + if (void 0 === t) return 'undefined' + if (null === t) return 'null' + if ('boolean' == typeof t) return t ? 'true' : 'false' + if ('string' == typeof t) return G(t, s) + if ('number' == typeof t) { + if (0 === t) return 1 / 0 / t > 0 ? '0' : '-0' + var w = String(t) + return y ? P(t, w) : w + } + if ('bigint' == typeof t) { + var E = String(t) + 'n' + return y ? P(t, E) : E + } + var M = void 0 === s.depth ? 5 : s.depth + if ((void 0 === n && (n = 0), n >= M && M > 0 && 'object' == typeof t)) return U(t) ? '[Array]' : '[Object]' + var I, + D = (function (e, t) { + var r + if ('\t' === e.indent) r = '\t' + else { + if (!('number' == typeof e.indent && e.indent > 0)) return null + r = A.call(Array(e.indent + 1), ' ') + } + return { base: r, prev: A.call(Array(t + 1), r) } + })(s, n) + if (void 0 === i) i = [] + else if (W(i, t) >= 0) return '[Circular]' + function z(t, r, o) { + if ((r && (i = O.call(i)).push(r), o)) { + var a = { depth: s.depth } + return (q(s, 'quoteStyle') && (a.quoteStyle = s.quoteStyle), e(t, a, n + 1, i)) + } + return e(t, s, n + 1, i) + } + if ('function' == typeof t && !V(t)) { + var Y = (function (e) { + if (e.name) return e.name + var t = b.call(g.call(e), /^function\s*([\w$]+)/) + return t ? t[1] : null + })(t), + ee = Q(t, z) + return '[Function' + (Y ? ': ' + Y : ' (anonymous)') + ']' + (ee.length > 0 ? ' { ' + A.call(ee, ', ') + ' }' : '') + } + if (H(t)) { + var te = x ? v.call(String(t), /^(Symbol\(.*\))_[^)]*$/, '$1') : N.call(t) + return 'object' != typeof t || x ? te : $(te) + } + if ( + (I = t) && + 'object' == typeof I && + (('undefined' != typeof HTMLElement && I instanceof HTMLElement) || + ('string' == typeof I.nodeName && 'function' == typeof I.getAttribute)) + ) { + for (var re = '<' + _.call(String(t.nodeName)), ne = t.attributes || [], ie = 0; ie < ne.length; ie++) + re += ' ' + ne[ie].name + '=' + j(F(ne[ie].value), 'double', s) + return ((re += '>'), t.childNodes && t.childNodes.length && (re += '...'), re + '</' + _.call(String(t.nodeName)) + '>') + } + if (U(t)) { + if (0 === t.length) return '[]' + var oe = Q(t, z) + return D && + !(function (e) { + for (var t = 0; t < e.length; t++) if (W(e[t], '\n') >= 0) return !1 + return !0 + })(oe) + ? '[' + Z(oe, D) + ']' + : '[ ' + A.call(oe, ', ') + ' ]' + } + if ( + (function (e) { + return !('[object Error]' !== K(e) || (L && 'object' == typeof e && L in e)) + })(t) + ) { + var ae = Q(t, z) + return 'cause' in Error.prototype || !('cause' in t) || k.call(t, 'cause') + ? 0 === ae.length + ? '[' + String(t) + ']' + : '{ [' + String(t) + '] ' + A.call(ae, ', ') + ' }' + : '{ [' + String(t) + '] ' + A.call(S.call('[cause]: ' + z(t.cause), ae), ', ') + ' }' + } + if ('object' == typeof t && u) { + if (C && 'function' == typeof t[C] && B) return B(t, { depth: M - n }) + if ('symbol' !== u && 'function' == typeof t.inspect) return t.inspect() + } + if ( + (function (e) { + if (!o || !e || 'object' != typeof e) return !1 + try { + o.call(e) + try { + c.call(e) + } catch (e) { + return !0 + } + return e instanceof Map + } catch (e) {} + return !1 + })(t) + ) { + var se = [] + return ( + a && + a.call(t, function (e, r) { + se.push(z(r, t, !0) + ' => ' + z(e, t)) + }), + J('Map', o.call(t), se, D) + ) + } + if ( + (function (e) { + if (!c || !e || 'object' != typeof e) return !1 + try { + c.call(e) + try { + o.call(e) + } catch (e) { + return !0 + } + return e instanceof Set + } catch (e) {} + return !1 + })(t) + ) { + var ue = [] + return ( + f && + f.call(t, function (e) { + ue.push(z(e, t)) + }), + J('Set', c.call(t), ue, D) + ) + } + if ( + (function (e) { + if (!l || !e || 'object' != typeof e) return !1 + try { + l.call(e, l) + try { + d.call(e, d) + } catch (e) { + return !0 + } + return e instanceof WeakMap + } catch (e) {} + return !1 + })(t) + ) + return X('WeakMap') + if ( + (function (e) { + if (!d || !e || 'object' != typeof e) return !1 + try { + d.call(e, d) + try { + l.call(e, l) + } catch (e) { + return !0 + } + return e instanceof WeakSet + } catch (e) {} + return !1 + })(t) + ) + return X('WeakSet') + if ( + (function (e) { + if (!h || !e || 'object' != typeof e) return !1 + try { + return (h.call(e), !0) + } catch (e) {} + return !1 + })(t) + ) + return X('WeakRef') + if ( + (function (e) { + return !('[object Number]' !== K(e) || (L && 'object' == typeof e && L in e)) + })(t) + ) + return $(z(Number(t))) + if ( + (function (e) { + if (!e || 'object' != typeof e || !T) return !1 + try { + return (T.call(e), !0) + } catch (e) {} + return !1 + })(t) + ) + return $(z(T.call(t))) + if ( + (function (e) { + return !('[object Boolean]' !== K(e) || (L && 'object' == typeof e && L in e)) + })(t) + ) + return $(p.call(t)) + if ( + (function (e) { + return !('[object String]' !== K(e) || (L && 'object' == typeof e && L in e)) + })(t) + ) + return $(z(String(t))) + if ( + !(function (e) { + return !('[object Date]' !== K(e) || (L && 'object' == typeof e && L in e)) + })(t) && + !V(t) + ) { + var ce = Q(t, z), + fe = R ? R(t) === Object.prototype : t instanceof Object || t.constructor === Object, + le = t instanceof Object ? '' : 'null prototype', + de = !fe && L && Object(t) === t && L in t ? m.call(K(t), 8, -1) : le ? 'Object' : '', + he = + (fe || 'function' != typeof t.constructor ? '' : t.constructor.name ? t.constructor.name + ' ' : '') + + (de || le ? '[' + A.call(S.call([], de || [], le || []), ': ') + '] ' : '') + return 0 === ce.length ? he + '{}' : D ? he + '{' + Z(ce, D) + '}' : he + '{ ' + A.call(ce, ', ') + ' }' + } + return String(t) + } + var z = + Object.prototype.hasOwnProperty || + function (e) { + return e in this + } + function q(e, t) { + return z.call(e, t) + } + function K(e) { + return y.call(e) + } + function W(e, t) { + if (e.indexOf) return e.indexOf(t) + for (var r = 0, n = e.length; r < n; r++) if (e[r] === t) return r + return -1 + } + function G(e, t) { + if (e.length > t.maxStringLength) { + var r = e.length - t.maxStringLength, + n = '... ' + r + ' more character' + (r > 1 ? 's' : '') + return G(m.call(e, 0, t.maxStringLength), t) + n + } + return j(v.call(v.call(e, /(['\\])/g, '\\$1'), /[\x00-\x1f]/g, Y), 'single', t) + } + function Y(e) { + var t = e.charCodeAt(0), + r = { 8: 'b', 9: 't', 10: 'n', 12: 'f', 13: 'r' }[t] + return r ? '\\' + r : '\\x' + (t < 16 ? '0' : '') + w.call(t.toString(16)) + } + function $(e) { + return 'Object(' + e + ')' + } + function X(e) { + return e + ' { ? }' + } + function J(e, t, r, n) { + return e + ' (' + t + ') {' + (n ? Z(r, n) : A.call(r, ', ')) + '}' + } + function Z(e, t) { + if (0 === e.length) return '' + var r = '\n' + t.prev + t.base + return r + A.call(e, ',' + r) + '\n' + t.prev + } + function Q(e, t) { + var r = U(e), + n = [] + if (r) { + n.length = e.length + for (var i = 0; i < e.length; i++) n[i] = q(e, i) ? t(e[i], e) : '' + } + var o, + a = 'function' == typeof I ? I(e) : [] + if (x) { + o = {} + for (var s = 0; s < a.length; s++) o['$' + a[s]] = a[s] + } + for (var u in e) + q(e, u) && + ((r && String(Number(u)) === u && u < e.length) || + (x && o['$' + u] instanceof Symbol) || + (E.call(/[^\w$]/, u) ? n.push(t(u, e) + ': ' + t(e[u], e)) : n.push(u + ': ' + t(e[u], e)))) + if ('function' == typeof I) for (var c = 0; c < a.length; c++) k.call(e, a[c]) && n.push('[' + t(a[c]) + ']: ' + t(e[a[c]], e)) + return n + } + }, + 56179: (e) => { + 'use strict' + var t = function (e) { + return e != e + } + e.exports = function (e, r) { + return 0 === e && 0 === r ? 1 / e == 1 / r : e === r || !(!t(e) || !t(r)) + } + }, + 81044: (e, t, r) => { + 'use strict' + var n = r(31907), + i = r(47208), + o = r(56179), + a = r(97179), + s = r(76901), + u = i(a(), Object) + ;(n(u, { getPolyfill: a, implementation: o, shim: s }), (e.exports = u)) + }, + 97179: (e, t, r) => { + 'use strict' + var n = r(56179) + e.exports = function () { + return 'function' == typeof Object.is ? Object.is : n + } + }, + 76901: (e, t, r) => { + 'use strict' + var n = r(97179), + i = r(31907) + e.exports = function () { + var e = n() + return ( + i( + Object, + { is: e }, + { + is: function () { + return Object.is !== e + }, + }, + ), + e + ) + } + }, + 78504: (e, t, r) => { + 'use strict' + var n + if (!Object.keys) { + var i = Object.prototype.hasOwnProperty, + o = Object.prototype.toString, + a = r(60310), + s = Object.prototype.propertyIsEnumerable, + u = !s.call({ toString: null }, 'toString'), + c = s.call(function () {}, 'prototype'), + f = ['toString', 'toLocaleString', 'valueOf', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', 'constructor'], + l = function (e) { + var t = e.constructor + return t && t.prototype === e + }, + d = { + $applicationCache: !0, + $console: !0, + $external: !0, + $frame: !0, + $frameElement: !0, + $frames: !0, + $innerHeight: !0, + $innerWidth: !0, + $onmozfullscreenchange: !0, + $onmozfullscreenerror: !0, + $outerHeight: !0, + $outerWidth: !0, + $pageXOffset: !0, + $pageYOffset: !0, + $parent: !0, + $scrollLeft: !0, + $scrollTop: !0, + $scrollX: !0, + $scrollY: !0, + $self: !0, + $webkitIndexedDB: !0, + $webkitStorageInfo: !0, + $window: !0, + }, + h = (function () { + if ('undefined' == typeof window) return !1 + for (var e in window) + try { + if (!d['$' + e] && i.call(window, e) && null !== window[e] && 'object' == typeof window[e]) + try { + l(window[e]) + } catch (e) { + return !0 + } + } catch (e) { + return !0 + } + return !1 + })() + n = function (e) { + var t = null !== e && 'object' == typeof e, + r = '[object Function]' === o.call(e), + n = a(e), + s = t && '[object String]' === o.call(e), + d = [] + if (!t && !r && !n) throw new TypeError('Object.keys called on a non-object') + var p = c && r + if (s && e.length > 0 && !i.call(e, 0)) for (var y = 0; y < e.length; ++y) d.push(String(y)) + if (n && e.length > 0) for (var g = 0; g < e.length; ++g) d.push(String(g)) + else for (var b in e) (p && 'prototype' === b) || !i.call(e, b) || d.push(String(b)) + if (u) + for ( + var m = (function (e) { + if ('undefined' == typeof window || !h) return l(e) + try { + return l(e) + } catch (e) { + return !1 + } + })(e), + v = 0; + v < f.length; + ++v + ) + (m && 'constructor' === f[v]) || !i.call(e, f[v]) || d.push(f[v]) + return d + } + } + e.exports = n + }, + 33025: (e, t, r) => { + 'use strict' + var n = Array.prototype.slice, + i = r(60310), + o = Object.keys, + a = o + ? function (e) { + return o(e) + } + : r(78504), + s = Object.keys + ;((a.shim = function () { + if (Object.keys) { + var e = (function () { + var e = Object.keys(arguments) + return e && e.length === arguments.length + })(1, 2) + e || + (Object.keys = function (e) { + return i(e) ? s(n.call(e)) : s(e) + }) + } else Object.keys = a + return Object.keys || a + }), + (e.exports = a)) + }, + 60310: (e) => { + 'use strict' + var t = Object.prototype.toString + e.exports = function (e) { + var r = t.call(e), + n = '[object Arguments]' === r + return ( + n || + (n = + '[object Array]' !== r && + null !== e && + 'object' == typeof e && + 'number' == typeof e.length && + e.length >= 0 && + '[object Function]' === t.call(e.callee)), + n + ) + } + }, + 62465: (e, t, r) => { + 'use strict' + var n = r(65975) + t.certificate = r(55259) + var i = n.define('RSAPrivateKey', function () { + this.seq().obj( + this.key('version').int(), + this.key('modulus').int(), + this.key('publicExponent').int(), + this.key('privateExponent').int(), + this.key('prime1').int(), + this.key('prime2').int(), + this.key('exponent1').int(), + this.key('exponent2').int(), + this.key('coefficient').int(), + ) + }) + t.RSAPrivateKey = i + var o = n.define('RSAPublicKey', function () { + this.seq().obj(this.key('modulus').int(), this.key('publicExponent').int()) + }) + t.RSAPublicKey = o + var a = n.define('SubjectPublicKeyInfo', function () { + this.seq().obj(this.key('algorithm').use(s), this.key('subjectPublicKey').bitstr()) + }) + t.PublicKey = a + var s = n.define('AlgorithmIdentifier', function () { + this.seq().obj( + this.key('algorithm').objid(), + this.key('none').null_().optional(), + this.key('curve').objid().optional(), + this.key('params').seq().obj(this.key('p').int(), this.key('q').int(), this.key('g').int()).optional(), + ) + }), + u = n.define('PrivateKeyInfo', function () { + this.seq().obj(this.key('version').int(), this.key('algorithm').use(s), this.key('subjectPrivateKey').octstr()) + }) + t.PrivateKey = u + var c = n.define('EncryptedPrivateKeyInfo', function () { + this.seq().obj( + this.key('algorithm') + .seq() + .obj( + this.key('id').objid(), + this.key('decrypt') + .seq() + .obj( + this.key('kde') + .seq() + .obj(this.key('id').objid(), this.key('kdeparams').seq().obj(this.key('salt').octstr(), this.key('iters').int())), + this.key('cipher').seq().obj(this.key('algo').objid(), this.key('iv').octstr()), + ), + ), + this.key('subjectPrivateKey').octstr(), + ) + }) + t.EncryptedPrivateKey = c + var f = n.define('DSAPrivateKey', function () { + this.seq().obj( + this.key('version').int(), + this.key('p').int(), + this.key('q').int(), + this.key('g').int(), + this.key('pub_key').int(), + this.key('priv_key').int(), + ) + }) + ;((t.DSAPrivateKey = f), + (t.DSAparam = n.define('DSAparam', function () { + this.int() + }))) + var l = n.define('ECPrivateKey', function () { + this.seq().obj( + this.key('version').int(), + this.key('privateKey').octstr(), + this.key('parameters').optional().explicit(0).use(d), + this.key('publicKey').optional().explicit(1).bitstr(), + ) + }) + t.ECPrivateKey = l + var d = n.define('ECParameters', function () { + this.choice({ namedCurve: this.objid() }) + }) + t.signature = n.define('signature', function () { + this.seq().obj(this.key('r').int(), this.key('s').int()) + }) + }, + 55259: (e, t, r) => { + 'use strict' + var n = r(65975), + i = n.define('Time', function () { + this.choice({ utcTime: this.utctime(), generalTime: this.gentime() }) + }), + o = n.define('AttributeTypeValue', function () { + this.seq().obj(this.key('type').objid(), this.key('value').any()) + }), + a = n.define('AlgorithmIdentifier', function () { + this.seq().obj(this.key('algorithm').objid(), this.key('parameters').optional(), this.key('curve').objid().optional()) + }), + s = n.define('SubjectPublicKeyInfo', function () { + this.seq().obj(this.key('algorithm').use(a), this.key('subjectPublicKey').bitstr()) + }), + u = n.define('RelativeDistinguishedName', function () { + this.setof(o) + }), + c = n.define('RDNSequence', function () { + this.seqof(u) + }), + f = n.define('Name', function () { + this.choice({ rdnSequence: this.use(c) }) + }), + l = n.define('Validity', function () { + this.seq().obj(this.key('notBefore').use(i), this.key('notAfter').use(i)) + }), + d = n.define('Extension', function () { + this.seq().obj(this.key('extnID').objid(), this.key('critical').bool().def(!1), this.key('extnValue').octstr()) + }), + h = n.define('TBSCertificate', function () { + this.seq().obj( + this.key('version').explicit(0).int().optional(), + this.key('serialNumber').int(), + this.key('signature').use(a), + this.key('issuer').use(f), + this.key('validity').use(l), + this.key('subject').use(f), + this.key('subjectPublicKeyInfo').use(s), + this.key('issuerUniqueID').implicit(1).bitstr().optional(), + this.key('subjectUniqueID').implicit(2).bitstr().optional(), + this.key('extensions').explicit(3).seqof(d).optional(), + ) + }), + p = n.define('X509Certificate', function () { + this.seq().obj(this.key('tbsCertificate').use(h), this.key('signatureAlgorithm').use(a), this.key('signatureValue').bitstr()) + }) + e.exports = p + }, + 61493: (e, t, r) => { + var n = /Proc-Type: 4,ENCRYPTED[\n\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\n\r]+([0-9A-z\n\r+/=]+)[\n\r]+/m, + i = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m, + o = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\n\r+/=]+)-----END \1-----$/m, + a = r(94428), + s = r(43773), + u = r(59105).Buffer + e.exports = function (e, t) { + var r, + c = e.toString(), + f = c.match(n) + if (f) { + var l = 'aes' + f[1], + d = u.from(f[2], 'hex'), + h = u.from(f[3].replace(/[\r\n]/g, ''), 'base64'), + p = a(t, d.slice(0, 8), parseInt(f[1], 10)).key, + y = [], + g = s.createDecipheriv(l, p, d) + ;(y.push(g.update(h)), y.push(g.final()), (r = u.concat(y))) + } else { + var b = c.match(o) + r = u.from(b[2].replace(/[\r\n]/g, ''), 'base64') + } + return { tag: c.match(i)[1], data: r } + } + }, + 58155: (e, t, r) => { + var n = r(62465), + i = r(68675), + o = r(61493), + a = r(43773), + s = r(14321), + u = r(59105).Buffer + function c(e) { + var t + ;('object' != typeof e || u.isBuffer(e) || ((t = e.passphrase), (e = e.key)), 'string' == typeof e && (e = u.from(e))) + var r, + c, + f = o(e, t), + l = f.tag, + d = f.data + switch (l) { + case 'CERTIFICATE': + c = n.certificate.decode(d, 'der').tbsCertificate.subjectPublicKeyInfo + case 'PUBLIC KEY': + switch ((c || (c = n.PublicKey.decode(d, 'der')), (r = c.algorithm.algorithm.join('.')))) { + case '1.2.840.113549.1.1.1': + return n.RSAPublicKey.decode(c.subjectPublicKey.data, 'der') + case '1.2.840.10045.2.1': + return ((c.subjectPrivateKey = c.subjectPublicKey), { type: 'ec', data: c }) + case '1.2.840.10040.4.1': + return ((c.algorithm.params.pub_key = n.DSAparam.decode(c.subjectPublicKey.data, 'der')), { type: 'dsa', data: c.algorithm.params }) + default: + throw new Error('unknown key id ' + r) + } + case 'ENCRYPTED PRIVATE KEY': + d = (function (e, t) { + var r = e.algorithm.decrypt.kde.kdeparams.salt, + n = parseInt(e.algorithm.decrypt.kde.kdeparams.iters.toString(), 10), + o = i[e.algorithm.decrypt.cipher.algo.join('.')], + c = e.algorithm.decrypt.cipher.iv, + f = e.subjectPrivateKey, + l = parseInt(o.split('-')[1], 10) / 8, + d = s.pbkdf2Sync(t, r, n, l, 'sha1'), + h = a.createDecipheriv(o, d, c), + p = [] + return (p.push(h.update(f)), p.push(h.final()), u.concat(p)) + })((d = n.EncryptedPrivateKey.decode(d, 'der')), t) + case 'PRIVATE KEY': + switch ((r = (c = n.PrivateKey.decode(d, 'der')).algorithm.algorithm.join('.'))) { + case '1.2.840.113549.1.1.1': + return n.RSAPrivateKey.decode(c.subjectPrivateKey, 'der') + case '1.2.840.10045.2.1': + return { curve: c.algorithm.curve, privateKey: n.ECPrivateKey.decode(c.subjectPrivateKey, 'der').privateKey } + case '1.2.840.10040.4.1': + return ((c.algorithm.params.priv_key = n.DSAparam.decode(c.subjectPrivateKey, 'der')), { type: 'dsa', params: c.algorithm.params }) + default: + throw new Error('unknown key id ' + r) + } + case 'RSA PUBLIC KEY': + return n.RSAPublicKey.decode(d, 'der') + case 'RSA PRIVATE KEY': + return n.RSAPrivateKey.decode(d, 'der') + case 'DSA PRIVATE KEY': + return { type: 'dsa', params: n.DSAPrivateKey.decode(d, 'der') } + case 'EC PRIVATE KEY': + return { curve: (d = n.ECPrivateKey.decode(d, 'der')).parameters.value, privateKey: d.privateKey } + default: + throw new Error('unknown key type ' + l) + } + } + ;((e.exports = c), (c.signature = n.signature)) + }, + 14321: (e, t, r) => { + ;((t.pbkdf2 = r(73723)), (t.pbkdf2Sync = r(16518))) + }, + 73723: (e, t, r) => { + var n, + i, + o = r(59105).Buffer, + a = r(32505), + s = r(90204), + u = r(16518), + c = r(38006), + f = r.g.crypto && r.g.crypto.subtle, + l = { + sha: 'SHA-1', + 'sha-1': 'SHA-1', + sha1: 'SHA-1', + sha256: 'SHA-256', + 'sha-256': 'SHA-256', + sha384: 'SHA-384', + 'sha-384': 'SHA-384', + 'sha-512': 'SHA-512', + sha512: 'SHA-512', + }, + d = [] + function h() { + return ( + i || + (i = + r.g.process && r.g.process.nextTick + ? r.g.process.nextTick + : r.g.queueMicrotask + ? r.g.queueMicrotask + : r.g.setImmediate + ? r.g.setImmediate + : r.g.setTimeout) + ) + } + function p(e, t, r, n, i) { + return f + .importKey('raw', e, { name: 'PBKDF2' }, !1, ['deriveBits']) + .then(function (e) { + return f.deriveBits({ name: 'PBKDF2', salt: t, iterations: r, hash: { name: i } }, e, n << 3) + }) + .then(function (e) { + return o.from(e) + }) + } + e.exports = function (e, t, i, y, g, b) { + 'function' == typeof g && ((b = g), (g = void 0)) + var m = l[(g = g || 'sha1').toLowerCase()] + if (m && 'function' == typeof r.g.Promise) { + if ((a(i, y), (e = c(e, s, 'Password')), (t = c(t, s, 'Salt')), 'function' != typeof b)) throw new Error('No callback provided to pbkdf2') + !(function (e, t) { + e.then( + function (e) { + h()(function () { + t(null, e) + }) + }, + function (e) { + h()(function () { + t(e) + }) + }, + ) + })( + (function (e) { + if (r.g.process && !r.g.process.browser) return Promise.resolve(!1) + if (!f || !f.importKey || !f.deriveBits) return Promise.resolve(!1) + if (void 0 !== d[e]) return d[e] + var t = p((n = n || o.alloc(8)), n, 10, 128, e) + .then(function () { + return !0 + }) + .catch(function () { + return !1 + }) + return ((d[e] = t), t) + })(m).then(function (r) { + return r ? p(e, t, i, y, m) : u(e, t, i, y, g) + }), + b, + ) + } else + h()(function () { + var r + try { + r = u(e, t, i, y, g) + } catch (e) { + return b(e) + } + b(null, r) + }) + } + }, + 90204: (e, t, r) => { + var n, + i = r(48494) + ;((n = + r.g.process && r.g.process.browser + ? 'utf-8' + : r.g.process && r.g.process.version + ? parseInt(i.version.split('.')[0].slice(1), 10) >= 6 + ? 'utf-8' + : 'binary' + : 'utf-8'), + (e.exports = n)) + }, + 32505: (e) => { + var t = Math.pow(2, 30) - 1 + e.exports = function (e, r) { + if ('number' != typeof e) throw new TypeError('Iterations not a number') + if (e < 0) throw new TypeError('Bad iterations') + if ('number' != typeof r) throw new TypeError('Key length not a number') + if (r < 0 || r > t || r != r) throw new TypeError('Bad key length') + } + }, + 16518: (e, t, r) => { + var n = r(22944), + i = r(92027), + o = r(55695), + a = r(59105).Buffer, + s = r(32505), + u = r(90204), + c = r(38006), + f = a.alloc(128), + l = { md5: 16, sha1: 20, sha224: 28, sha256: 32, sha384: 48, sha512: 64, rmd160: 20, ripemd160: 20 } + function d(e, t, r) { + var s = (function (e) { + return 'rmd160' === e || 'ripemd160' === e + ? function (e) { + return new i().update(e).digest() + } + : 'md5' === e + ? n + : function (t) { + return o(e).update(t).digest() + } + })(e), + u = 'sha512' === e || 'sha384' === e ? 128 : 64 + t.length > u ? (t = s(t)) : t.length < u && (t = a.concat([t, f], u)) + for (var c = a.allocUnsafe(u + l[e]), d = a.allocUnsafe(u + l[e]), h = 0; h < u; h++) ((c[h] = 54 ^ t[h]), (d[h] = 92 ^ t[h])) + var p = a.allocUnsafe(u + r + 4) + ;(c.copy(p, 0, 0, u), + (this.ipad1 = p), + (this.ipad2 = c), + (this.opad = d), + (this.alg = e), + (this.blocksize = u), + (this.hash = s), + (this.size = l[e])) + } + ;((d.prototype.run = function (e, t) { + return (e.copy(t, this.blocksize), this.hash(t).copy(this.opad, this.blocksize), this.hash(this.opad)) + }), + (e.exports = function (e, t, r, n, i) { + s(r, n) + var o = new d((i = i || 'sha1'), (e = c(e, u, 'Password')), (t = c(t, u, 'Salt')).length), + f = a.allocUnsafe(n), + h = a.allocUnsafe(t.length + 4) + t.copy(h, 0, 0, t.length) + for (var p = 0, y = l[i], g = Math.ceil(n / y), b = 1; b <= g; b++) { + h.writeUInt32BE(b, t.length) + for (var m = o.run(h, o.ipad1), v = m, w = 1; w < r; w++) { + v = o.run(v, o.ipad2) + for (var _ = 0; _ < y; _++) m[_] ^= v[_] + } + ;(m.copy(f, p), (p += y)) + } + return f + })) + }, + 38006: (e, t, r) => { + var n = r(59105).Buffer + e.exports = function (e, t, r) { + if (n.isBuffer(e)) return e + if ('string' == typeof e) return n.from(e, t) + if (ArrayBuffer.isView(e)) return n.from(e.buffer) + throw new TypeError(r + ' must be a string, a Buffer, a typed array or a DataView') + } + }, + 48494: (e) => { + var t, + r, + n = (e.exports = {}) + function i() { + throw new Error('setTimeout has not been defined') + } + function o() { + throw new Error('clearTimeout has not been defined') + } + function a(e) { + if (t === setTimeout) return setTimeout(e, 0) + if ((t === i || !t) && setTimeout) return ((t = setTimeout), setTimeout(e, 0)) + try { + return t(e, 0) + } catch (r) { + try { + return t.call(null, e, 0) + } catch (r) { + return t.call(this, e, 0) + } + } + } + !(function () { + try { + t = 'function' == typeof setTimeout ? setTimeout : i + } catch (e) { + t = i + } + try { + r = 'function' == typeof clearTimeout ? clearTimeout : o + } catch (e) { + r = o + } + })() + var s, + u = [], + c = !1, + f = -1 + function l() { + c && s && ((c = !1), s.length ? (u = s.concat(u)) : (f = -1), u.length && d()) + } + function d() { + if (!c) { + var e = a(l) + c = !0 + for (var t = u.length; t; ) { + for (s = u, u = []; ++f < t; ) s && s[f].run() + ;((f = -1), (t = u.length)) + } + ;((s = null), + (c = !1), + (function (e) { + if (r === clearTimeout) return clearTimeout(e) + if ((r === o || !r) && clearTimeout) return ((r = clearTimeout), clearTimeout(e)) + try { + return r(e) + } catch (t) { + try { + return r.call(null, e) + } catch (t) { + return r.call(this, e) + } + } + })(e)) + } + } + function h(e, t) { + ;((this.fun = e), (this.array = t)) + } + function p() {} + ;((n.nextTick = function (e) { + var t = new Array(arguments.length - 1) + if (arguments.length > 1) for (var r = 1; r < arguments.length; r++) t[r - 1] = arguments[r] + ;(u.push(new h(e, t)), 1 !== u.length || c || a(d)) + }), + (h.prototype.run = function () { + this.fun.apply(null, this.array) + }), + (n.title = 'browser'), + (n.browser = !0), + (n.env = {}), + (n.argv = []), + (n.version = ''), + (n.versions = {}), + (n.on = p), + (n.addListener = p), + (n.once = p), + (n.off = p), + (n.removeListener = p), + (n.removeAllListeners = p), + (n.emit = p), + (n.prependListener = p), + (n.prependOnceListener = p), + (n.listeners = function (e) { + return [] + }), + (n.binding = function (e) { + throw new Error('process.binding is not supported') + }), + (n.cwd = function () { + return '/' + }), + (n.chdir = function (e) { + throw new Error('process.chdir is not supported') + }), + (n.umask = function () { + return 0 + })) + }, + 92518: (e, t, r) => { + ;((t.publicEncrypt = r(33532)), + (t.privateDecrypt = r(20326)), + (t.privateEncrypt = function (e, r) { + return t.publicEncrypt(e, r, !0) + }), + (t.publicDecrypt = function (e, r) { + return t.privateDecrypt(e, r, !0) + })) + }, + 83559: (e, t, r) => { + var n = r(50637), + i = r(59105).Buffer + function o(e) { + var t = i.allocUnsafe(4) + return (t.writeUInt32BE(e, 0), t) + } + e.exports = function (e, t) { + for (var r, a = i.alloc(0), s = 0; a.length < t; ) ((r = o(s++)), (a = i.concat([a, n('sha1').update(e).update(r).digest()]))) + return a.slice(0, t) + } + }, + 20326: (e, t, r) => { + var n = r(58155), + i = r(83559), + o = r(76016), + a = r(10660), + s = r(4621), + u = r(50637), + c = r(24941), + f = r(59105).Buffer + e.exports = function (e, t, r) { + var l + l = e.padding ? e.padding : r ? 1 : 4 + var d, + h = n(e), + p = h.modulus.byteLength() + if (t.length > p || new a(t).cmp(h.modulus) >= 0) throw new Error('decryption error') + d = r ? c(new a(t), h) : s(t, h) + var y = f.alloc(p - d.length) + if (((d = f.concat([y, d], p)), 4 === l)) + return (function (e, t) { + var r = e.modulus.byteLength(), + n = u('sha1').update(f.alloc(0)).digest(), + a = n.length + if (0 !== t[0]) throw new Error('decryption error') + var s = t.slice(1, a + 1), + c = t.slice(a + 1), + l = o(s, i(c, a)), + d = o(c, i(l, r - a - 1)) + if ( + (function (e, t) { + ;((e = f.from(e)), (t = f.from(t))) + var r = 0, + n = e.length + e.length !== t.length && (r++, (n = Math.min(e.length, t.length))) + for (var i = -1; ++i < n; ) r += e[i] ^ t[i] + return r + })(n, d.slice(0, a)) + ) + throw new Error('decryption error') + for (var h = a; 0 === d[h]; ) h++ + if (1 !== d[h++]) throw new Error('decryption error') + return d.slice(h) + })(h, d) + if (1 === l) + return (function (e, t, r) { + for (var n = t.slice(0, 2), i = 2, o = 0; 0 !== t[i++]; ) + if (i >= t.length) { + o++ + break + } + var a = t.slice(2, i - 1) + if (((('0002' !== n.toString('hex') && !r) || ('0001' !== n.toString('hex') && r)) && o++, a.length < 8 && o++, o)) + throw new Error('decryption error') + return t.slice(i) + })(0, d, r) + if (3 === l) return d + throw new Error('unknown padding') + } + }, + 33532: (e, t, r) => { + var n = r(58155), + i = r(83638), + o = r(50637), + a = r(83559), + s = r(76016), + u = r(10660), + c = r(24941), + f = r(4621), + l = r(59105).Buffer + e.exports = function (e, t, r) { + var d + d = e.padding ? e.padding : r ? 1 : 4 + var h, + p = n(e) + if (4 === d) + h = (function (e, t) { + var r = e.modulus.byteLength(), + n = t.length, + c = o('sha1').update(l.alloc(0)).digest(), + f = c.length, + d = 2 * f + if (n > r - d - 2) throw new Error('message too long') + var h = l.alloc(r - n - d - 2), + p = r - f - 1, + y = i(f), + g = s(l.concat([c, h, l.alloc(1, 1), t], p), a(y, p)), + b = s(y, a(g, f)) + return new u(l.concat([l.alloc(1), b, g], r)) + })(p, t) + else if (1 === d) + h = (function (e, t, r) { + var n, + o = t.length, + a = e.modulus.byteLength() + if (o > a - 11) throw new Error('message too long') + return ( + (n = r + ? l.alloc(a - o - 3, 255) + : (function (e) { + for (var t, r = l.allocUnsafe(e), n = 0, o = i(2 * e), a = 0; n < e; ) + (a === o.length && ((o = i(2 * e)), (a = 0)), (t = o[a++]) && (r[n++] = t)) + return r + })(a - o - 3)), + new u(l.concat([l.from([0, r ? 1 : 2]), n, l.alloc(1), t], a)) + ) + })(p, t, r) + else { + if (3 !== d) throw new Error('unknown padding') + if ((h = new u(t)).cmp(p.modulus) >= 0) throw new Error('data too long for modulus') + } + return r ? f(h, p) : c(h, p) + } + }, + 24941: (e, t, r) => { + var n = r(10660), + i = r(59105).Buffer + e.exports = function (e, t) { + return i.from(e.toRed(n.mont(t.modulus)).redPow(new n(t.publicExponent)).fromRed().toArray()) + } + }, + 76016: (e) => { + e.exports = function (e, t) { + for (var r = e.length, n = -1; ++n < r; ) e[n] ^= t[n] + return e + } + }, + 30162: (e) => { + 'use strict' + var t = String.prototype.replace, + r = /%20/g, + n = 'RFC3986' + e.exports = { + default: n, + formatters: { + RFC1738: function (e) { + return t.call(e, r, '+') + }, + RFC3986: function (e) { + return String(e) + }, + }, + RFC1738: 'RFC1738', + RFC3986: n, + } + }, + 88924: (e, t, r) => { + 'use strict' + var n = r(67546), + i = r(20156), + o = r(30162) + e.exports = { formats: o, parse: i, stringify: n } + }, + 20156: (e, t, r) => { + 'use strict' + var n = r(35562), + i = Object.prototype.hasOwnProperty, + o = Array.isArray, + a = { + allowDots: !1, + allowPrototypes: !1, + allowSparse: !1, + arrayLimit: 20, + charset: 'utf-8', + charsetSentinel: !1, + comma: !1, + decoder: n.decode, + delimiter: '&', + depth: 5, + ignoreQueryPrefix: !1, + interpretNumericEntities: !1, + parameterLimit: 1e3, + parseArrays: !0, + plainObjects: !1, + strictNullHandling: !1, + }, + s = function (e) { + return e.replace(/&#(\d+);/g, function (e, t) { + return String.fromCharCode(parseInt(t, 10)) + }) + }, + u = function (e, t) { + return e && 'string' == typeof e && t.comma && e.indexOf(',') > -1 ? e.split(',') : e + }, + c = function (e, t, r, n) { + if (e) { + var o = r.allowDots ? e.replace(/\.([^.[]+)/g, '[$1]') : e, + a = /(\[[^[\]]*])/g, + s = r.depth > 0 && /(\[[^[\]]*])/.exec(o), + c = s ? o.slice(0, s.index) : o, + f = [] + if (c) { + if (!r.plainObjects && i.call(Object.prototype, c) && !r.allowPrototypes) return + f.push(c) + } + for (var l = 0; r.depth > 0 && null !== (s = a.exec(o)) && l < r.depth; ) { + if (((l += 1), !r.plainObjects && i.call(Object.prototype, s[1].slice(1, -1)) && !r.allowPrototypes)) return + f.push(s[1]) + } + return ( + s && f.push('[' + o.slice(s.index) + ']'), + (function (e, t, r, n) { + for (var i = n ? t : u(t, r), o = e.length - 1; o >= 0; --o) { + var a, + s = e[o] + if ('[]' === s && r.parseArrays) a = [].concat(i) + else { + a = r.plainObjects ? Object.create(null) : {} + var c = '[' === s.charAt(0) && ']' === s.charAt(s.length - 1) ? s.slice(1, -1) : s, + f = parseInt(c, 10) + r.parseArrays || '' !== c + ? !isNaN(f) && s !== c && String(f) === c && f >= 0 && r.parseArrays && f <= r.arrayLimit + ? ((a = [])[f] = i) + : '__proto__' !== c && (a[c] = i) + : (a = { 0: i }) + } + i = a + } + return i + })(f, t, r, n) + ) + } + } + e.exports = function (e, t) { + var r = (function (e) { + if (!e) return a + if (null !== e.decoder && void 0 !== e.decoder && 'function' != typeof e.decoder) throw new TypeError('Decoder has to be a function.') + if (void 0 !== e.charset && 'utf-8' !== e.charset && 'iso-8859-1' !== e.charset) + throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined') + var t = void 0 === e.charset ? a.charset : e.charset + return { + allowDots: void 0 === e.allowDots ? a.allowDots : !!e.allowDots, + allowPrototypes: 'boolean' == typeof e.allowPrototypes ? e.allowPrototypes : a.allowPrototypes, + allowSparse: 'boolean' == typeof e.allowSparse ? e.allowSparse : a.allowSparse, + arrayLimit: 'number' == typeof e.arrayLimit ? e.arrayLimit : a.arrayLimit, + charset: t, + charsetSentinel: 'boolean' == typeof e.charsetSentinel ? e.charsetSentinel : a.charsetSentinel, + comma: 'boolean' == typeof e.comma ? e.comma : a.comma, + decoder: 'function' == typeof e.decoder ? e.decoder : a.decoder, + delimiter: 'string' == typeof e.delimiter || n.isRegExp(e.delimiter) ? e.delimiter : a.delimiter, + depth: 'number' == typeof e.depth || !1 === e.depth ? +e.depth : a.depth, + ignoreQueryPrefix: !0 === e.ignoreQueryPrefix, + interpretNumericEntities: 'boolean' == typeof e.interpretNumericEntities ? e.interpretNumericEntities : a.interpretNumericEntities, + parameterLimit: 'number' == typeof e.parameterLimit ? e.parameterLimit : a.parameterLimit, + parseArrays: !1 !== e.parseArrays, + plainObjects: 'boolean' == typeof e.plainObjects ? e.plainObjects : a.plainObjects, + strictNullHandling: 'boolean' == typeof e.strictNullHandling ? e.strictNullHandling : a.strictNullHandling, + } + })(t) + if ('' === e || null == e) return r.plainObjects ? Object.create(null) : {} + for ( + var f = + 'string' == typeof e + ? (function (e, t) { + var r, + c = {}, + f = t.ignoreQueryPrefix ? e.replace(/^\?/, '') : e, + l = t.parameterLimit === 1 / 0 ? void 0 : t.parameterLimit, + d = f.split(t.delimiter, l), + h = -1, + p = t.charset + if (t.charsetSentinel) + for (r = 0; r < d.length; ++r) + 0 === d[r].indexOf('utf8=') && + ('utf8=%E2%9C%93' === d[r] ? (p = 'utf-8') : 'utf8=%26%2310003%3B' === d[r] && (p = 'iso-8859-1'), + (h = r), + (r = d.length)) + for (r = 0; r < d.length; ++r) + if (r !== h) { + var y, + g, + b = d[r], + m = b.indexOf(']='), + v = -1 === m ? b.indexOf('=') : m + 1 + ;(-1 === v + ? ((y = t.decoder(b, a.decoder, p, 'key')), (g = t.strictNullHandling ? null : '')) + : ((y = t.decoder(b.slice(0, v), a.decoder, p, 'key')), + (g = n.maybeMap(u(b.slice(v + 1), t), function (e) { + return t.decoder(e, a.decoder, p, 'value') + }))), + g && t.interpretNumericEntities && 'iso-8859-1' === p && (g = s(g)), + b.indexOf('[]=') > -1 && (g = o(g) ? [g] : g), + i.call(c, y) ? (c[y] = n.combine(c[y], g)) : (c[y] = g)) + } + return c + })(e, r) + : e, + l = r.plainObjects ? Object.create(null) : {}, + d = Object.keys(f), + h = 0; + h < d.length; + ++h + ) { + var p = d[h], + y = c(p, f[p], r, 'string' == typeof e) + l = n.merge(l, y, r) + } + return !0 === r.allowSparse ? l : n.compact(l) + } + }, + 67546: (e, t, r) => { + 'use strict' + var n = r(64301), + i = r(35562), + o = r(30162), + a = Object.prototype.hasOwnProperty, + s = { + brackets: function (e) { + return e + '[]' + }, + comma: 'comma', + indices: function (e, t) { + return e + '[' + t + ']' + }, + repeat: function (e) { + return e + }, + }, + u = Array.isArray, + c = String.prototype.split, + f = Array.prototype.push, + l = function (e, t) { + f.apply(e, u(t) ? t : [t]) + }, + d = Date.prototype.toISOString, + h = o.default, + p = { + addQueryPrefix: !1, + allowDots: !1, + charset: 'utf-8', + charsetSentinel: !1, + delimiter: '&', + encode: !0, + encoder: i.encode, + encodeValuesOnly: !1, + format: h, + formatter: o.formatters[h], + indices: !1, + serializeDate: function (e) { + return d.call(e) + }, + skipNulls: !1, + strictNullHandling: !1, + }, + y = {}, + g = function e(t, r, o, a, s, f, d, h, g, b, m, v, w, _, E, S) { + for (var A, O = t, M = S, T = 0, I = !1; void 0 !== (M = M.get(y)) && !I; ) { + var N = M.get(t) + if (((T += 1), void 0 !== N)) { + if (N === T) throw new RangeError('Cyclic object value') + I = !0 + } + void 0 === M.get(y) && (T = 0) + } + if ( + ('function' == typeof h + ? (O = h(r, O)) + : O instanceof Date + ? (O = m(O)) + : 'comma' === o && + u(O) && + (O = i.maybeMap(O, function (e) { + return e instanceof Date ? m(e) : e + })), + null === O) + ) { + if (s) return d && !_ ? d(r, p.encoder, E, 'key', v) : r + O = '' + } + if ( + 'string' == typeof (A = O) || + 'number' == typeof A || + 'boolean' == typeof A || + 'symbol' == typeof A || + 'bigint' == typeof A || + i.isBuffer(O) + ) { + if (d) { + var x = _ ? r : d(r, p.encoder, E, 'key', v) + if ('comma' === o && _) { + for (var L = c.call(String(O), ','), k = '', R = 0; R < L.length; ++R) + k += (0 === R ? '' : ',') + w(d(L[R], p.encoder, E, 'value', v)) + return [w(x) + (a && u(O) && 1 === L.length ? '[]' : '') + '=' + k] + } + return [w(x) + '=' + w(d(O, p.encoder, E, 'value', v))] + } + return [w(r) + '=' + w(String(O))] + } + var P, + B = [] + if (void 0 === O) return B + if ('comma' === o && u(O)) P = [{ value: O.length > 0 ? O.join(',') || null : void 0 }] + else if (u(h)) P = h + else { + var D = Object.keys(O) + P = g ? D.sort(g) : D + } + for (var C = a && u(O) && 1 === O.length ? r + '[]' : r, j = 0; j < P.length; ++j) { + var F = P[j], + U = 'object' == typeof F && void 0 !== F.value ? F.value : O[F] + if (!f || null !== U) { + var V = u(O) ? ('function' == typeof o ? o(C, F) : C) : C + (b ? '.' + F : '[' + F + ']') + S.set(t, T) + var H = n() + ;(H.set(y, S), l(B, e(U, V, o, a, s, f, d, h, g, b, m, v, w, _, E, H))) + } + } + return B + } + e.exports = function (e, t) { + var r, + i = e, + c = (function (e) { + if (!e) return p + if (null !== e.encoder && void 0 !== e.encoder && 'function' != typeof e.encoder) throw new TypeError('Encoder has to be a function.') + var t = e.charset || p.charset + if (void 0 !== e.charset && 'utf-8' !== e.charset && 'iso-8859-1' !== e.charset) + throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined') + var r = o.default + if (void 0 !== e.format) { + if (!a.call(o.formatters, e.format)) throw new TypeError('Unknown format option provided.') + r = e.format + } + var n = o.formatters[r], + i = p.filter + return ( + ('function' == typeof e.filter || u(e.filter)) && (i = e.filter), + { + addQueryPrefix: 'boolean' == typeof e.addQueryPrefix ? e.addQueryPrefix : p.addQueryPrefix, + allowDots: void 0 === e.allowDots ? p.allowDots : !!e.allowDots, + charset: t, + charsetSentinel: 'boolean' == typeof e.charsetSentinel ? e.charsetSentinel : p.charsetSentinel, + delimiter: void 0 === e.delimiter ? p.delimiter : e.delimiter, + encode: 'boolean' == typeof e.encode ? e.encode : p.encode, + encoder: 'function' == typeof e.encoder ? e.encoder : p.encoder, + encodeValuesOnly: 'boolean' == typeof e.encodeValuesOnly ? e.encodeValuesOnly : p.encodeValuesOnly, + filter: i, + format: r, + formatter: n, + serializeDate: 'function' == typeof e.serializeDate ? e.serializeDate : p.serializeDate, + skipNulls: 'boolean' == typeof e.skipNulls ? e.skipNulls : p.skipNulls, + sort: 'function' == typeof e.sort ? e.sort : null, + strictNullHandling: 'boolean' == typeof e.strictNullHandling ? e.strictNullHandling : p.strictNullHandling, + } + ) + })(t) + 'function' == typeof c.filter ? (i = (0, c.filter)('', i)) : u(c.filter) && (r = c.filter) + var f, + d = [] + if ('object' != typeof i || null === i) return '' + f = t && t.arrayFormat in s ? t.arrayFormat : t && 'indices' in t ? (t.indices ? 'indices' : 'repeat') : 'indices' + var h = s[f] + if (t && 'commaRoundTrip' in t && 'boolean' != typeof t.commaRoundTrip) throw new TypeError('`commaRoundTrip` must be a boolean, or absent') + var y = 'comma' === h && t && t.commaRoundTrip + ;(r || (r = Object.keys(i)), c.sort && r.sort(c.sort)) + for (var b = n(), m = 0; m < r.length; ++m) { + var v = r[m] + ;(c.skipNulls && null === i[v]) || + l( + d, + g( + i[v], + v, + h, + y, + c.strictNullHandling, + c.skipNulls, + c.encode ? c.encoder : null, + c.filter, + c.sort, + c.allowDots, + c.serializeDate, + c.format, + c.formatter, + c.encodeValuesOnly, + c.charset, + b, + ), + ) + } + var w = d.join(c.delimiter), + _ = !0 === c.addQueryPrefix ? '?' : '' + return ( + c.charsetSentinel && ('iso-8859-1' === c.charset ? (_ += 'utf8=%26%2310003%3B&') : (_ += 'utf8=%E2%9C%93&')), + w.length > 0 ? _ + w : '' + ) + } + }, + 35562: (e, t, r) => { + 'use strict' + var n = r(30162), + i = Object.prototype.hasOwnProperty, + o = Array.isArray, + a = (function () { + for (var e = [], t = 0; t < 256; ++t) e.push('%' + ((t < 16 ? '0' : '') + t.toString(16)).toUpperCase()) + return e + })(), + s = function (e, t) { + for (var r = t && t.plainObjects ? Object.create(null) : {}, n = 0; n < e.length; ++n) void 0 !== e[n] && (r[n] = e[n]) + return r + } + e.exports = { + arrayToObject: s, + assign: function (e, t) { + return Object.keys(t).reduce(function (e, r) { + return ((e[r] = t[r]), e) + }, e) + }, + combine: function (e, t) { + return [].concat(e, t) + }, + compact: function (e) { + for (var t = [{ obj: { o: e }, prop: 'o' }], r = [], n = 0; n < t.length; ++n) + for (var i = t[n], a = i.obj[i.prop], s = Object.keys(a), u = 0; u < s.length; ++u) { + var c = s[u], + f = a[c] + 'object' == typeof f && null !== f && -1 === r.indexOf(f) && (t.push({ obj: a, prop: c }), r.push(f)) + } + return ( + (function (e) { + for (; e.length > 1; ) { + var t = e.pop(), + r = t.obj[t.prop] + if (o(r)) { + for (var n = [], i = 0; i < r.length; ++i) void 0 !== r[i] && n.push(r[i]) + t.obj[t.prop] = n + } + } + })(t), + e + ) + }, + decode: function (e, t, r) { + var n = e.replace(/\+/g, ' ') + if ('iso-8859-1' === r) return n.replace(/%[0-9a-f]{2}/gi, unescape) + try { + return decodeURIComponent(n) + } catch (e) { + return n + } + }, + encode: function (e, t, r, i, o) { + if (0 === e.length) return e + var s = e + if (('symbol' == typeof e ? (s = Symbol.prototype.toString.call(e)) : 'string' != typeof e && (s = String(e)), 'iso-8859-1' === r)) + return escape(s).replace(/%u[0-9a-f]{4}/gi, function (e) { + return '%26%23' + parseInt(e.slice(2), 16) + '%3B' + }) + for (var u = '', c = 0; c < s.length; ++c) { + var f = s.charCodeAt(c) + 45 === f || + 46 === f || + 95 === f || + 126 === f || + (f >= 48 && f <= 57) || + (f >= 65 && f <= 90) || + (f >= 97 && f <= 122) || + (o === n.RFC1738 && (40 === f || 41 === f)) + ? (u += s.charAt(c)) + : f < 128 + ? (u += a[f]) + : f < 2048 + ? (u += a[192 | (f >> 6)] + a[128 | (63 & f)]) + : f < 55296 || f >= 57344 + ? (u += a[224 | (f >> 12)] + a[128 | ((f >> 6) & 63)] + a[128 | (63 & f)]) + : ((c += 1), + (f = 65536 + (((1023 & f) << 10) | (1023 & s.charCodeAt(c)))), + (u += a[240 | (f >> 18)] + a[128 | ((f >> 12) & 63)] + a[128 | ((f >> 6) & 63)] + a[128 | (63 & f)])) + } + return u + }, + isBuffer: function (e) { + return !(!e || 'object' != typeof e || !(e.constructor && e.constructor.isBuffer && e.constructor.isBuffer(e))) + }, + isRegExp: function (e) { + return '[object RegExp]' === Object.prototype.toString.call(e) + }, + maybeMap: function (e, t) { + if (o(e)) { + for (var r = [], n = 0; n < e.length; n += 1) r.push(t(e[n])) + return r + } + return t(e) + }, + merge: function e(t, r, n) { + if (!r) return t + if ('object' != typeof r) { + if (o(t)) t.push(r) + else { + if (!t || 'object' != typeof t) return [t, r] + ;((n && (n.plainObjects || n.allowPrototypes)) || !i.call(Object.prototype, r)) && (t[r] = !0) + } + return t + } + if (!t || 'object' != typeof t) return [t].concat(r) + var a = t + return ( + o(t) && !o(r) && (a = s(t, n)), + o(t) && o(r) + ? (r.forEach(function (r, o) { + if (i.call(t, o)) { + var a = t[o] + a && 'object' == typeof a && r && 'object' == typeof r ? (t[o] = e(a, r, n)) : t.push(r) + } else t[o] = r + }), + t) + : Object.keys(r).reduce(function (t, o) { + var a = r[o] + return (i.call(t, o) ? (t[o] = e(t[o], a, n)) : (t[o] = a), t) + }, a) + ) + }, + } + }, + 83638: (e, t, r) => { + 'use strict' + var n = r(48494), + i = 65536, + o = r(59105).Buffer, + a = r.g.crypto || r.g.msCrypto + a && a.getRandomValues + ? (e.exports = function (e, t) { + if (e > 4294967295) throw new RangeError('requested too many random bytes') + var r = o.allocUnsafe(e) + if (e > 0) + if (e > i) for (var s = 0; s < e; s += i) a.getRandomValues(r.slice(s, s + i)) + else a.getRandomValues(r) + return 'function' == typeof t + ? n.nextTick(function () { + t(null, r) + }) + : r + }) + : (e.exports = function () { + throw new Error('Secure random number generation is not supported by this browser.\nUse Chrome, Firefox or Internet Explorer 11') + }) + }, + 91538: (e, t, r) => { + 'use strict' + var n = r(48494) + function i() { + throw new Error('secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer 11') + } + var o = r(59105), + a = r(83638), + s = o.Buffer, + u = o.kMaxLength, + c = r.g.crypto || r.g.msCrypto, + f = Math.pow(2, 32) - 1 + function l(e, t) { + if ('number' != typeof e || e != e) throw new TypeError('offset must be a number') + if (e > f || e < 0) throw new TypeError('offset must be a uint32') + if (e > u || e > t) throw new RangeError('offset out of range') + } + function d(e, t, r) { + if ('number' != typeof e || e != e) throw new TypeError('size must be a number') + if (e > f || e < 0) throw new TypeError('size must be a uint32') + if (e + t > r || e > u) throw new RangeError('buffer too small') + } + function h(e, t, r, i) { + if (n.browser) { + var o = e.buffer, + s = new Uint8Array(o, t, r) + return ( + c.getRandomValues(s), + i + ? void n.nextTick(function () { + i(null, e) + }) + : e + ) + } + if (!i) return (a(r).copy(e, t), e) + a(r, function (r, n) { + if (r) return i(r) + ;(n.copy(e, t), i(null, e)) + }) + } + ;(c && c.getRandomValues) || !n.browser + ? ((t.randomFill = function (e, t, n, i) { + if (!(s.isBuffer(e) || e instanceof r.g.Uint8Array)) throw new TypeError('"buf" argument must be a Buffer or Uint8Array') + if ('function' == typeof t) ((i = t), (t = 0), (n = e.length)) + else if ('function' == typeof n) ((i = n), (n = e.length - t)) + else if ('function' != typeof i) throw new TypeError('"cb" argument must be a function') + return (l(t, e.length), d(n, t, e.length), h(e, t, n, i)) + }), + (t.randomFillSync = function (e, t, n) { + if ((void 0 === t && (t = 0), !(s.isBuffer(e) || e instanceof r.g.Uint8Array))) + throw new TypeError('"buf" argument must be a Buffer or Uint8Array') + return (l(t, e.length), void 0 === n && (n = e.length - t), d(n, t, e.length), h(e, t, n)) + })) + : ((t.randomFill = i), (t.randomFillSync = i)) + }, + 23388: (e) => { + 'use strict' + var t = {} + function r(e, r, n) { + n || (n = Error) + var i = (function (e) { + var t, n + function i(t, n, i) { + return ( + e.call( + this, + (function (e, t, n) { + return 'string' == typeof r ? r : r(e, t, n) + })(t, n, i), + ) || this + ) + } + return ((n = e), ((t = i).prototype = Object.create(n.prototype)), (t.prototype.constructor = t), (t.__proto__ = n), i) + })(n) + ;((i.prototype.name = n.name), (i.prototype.code = e), (t[e] = i)) + } + function n(e, t) { + if (Array.isArray(e)) { + var r = e.length + return ( + (e = e.map(function (e) { + return String(e) + })), + r > 2 + ? 'one of '.concat(t, ' ').concat(e.slice(0, r - 1).join(', '), ', or ') + e[r - 1] + : 2 === r + ? 'one of '.concat(t, ' ').concat(e[0], ' or ').concat(e[1]) + : 'of '.concat(t, ' ').concat(e[0]) + ) + } + return 'of '.concat(t, ' ').concat(String(e)) + } + ;(r( + 'ERR_INVALID_OPT_VALUE', + function (e, t) { + return 'The value "' + t + '" is invalid for option "' + e + '"' + }, + TypeError, + ), + r( + 'ERR_INVALID_ARG_TYPE', + function (e, t, r) { + var i, o, a, s, u + if ( + ('string' == typeof t && ((o = 'not '), t.substr(0, 4) === o) ? ((i = 'must not be'), (t = t.replace(/^not /, ''))) : (i = 'must be'), + (function (e, t, r) { + return ((void 0 === r || r > e.length) && (r = e.length), e.substring(r - 9, r) === t) + })(e, ' argument')) + ) + a = 'The '.concat(e, ' ').concat(i, ' ').concat(n(t, 'type')) + else { + var c = ('number' != typeof u && (u = 0), u + 1 > (s = e).length || -1 === s.indexOf('.', u) ? 'argument' : 'property') + a = 'The "'.concat(e, '" ').concat(c, ' ').concat(i, ' ').concat(n(t, 'type')) + } + return a + '. Received type '.concat(typeof r) + }, + TypeError, + ), + r('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF'), + r('ERR_METHOD_NOT_IMPLEMENTED', function (e) { + return 'The ' + e + ' method is not implemented' + }), + r('ERR_STREAM_PREMATURE_CLOSE', 'Premature close'), + r('ERR_STREAM_DESTROYED', function (e) { + return 'Cannot call ' + e + ' after a stream was destroyed' + }), + r('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times'), + r('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable'), + r('ERR_STREAM_WRITE_AFTER_END', 'write after end'), + r('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError), + r( + 'ERR_UNKNOWN_ENCODING', + function (e) { + return 'Unknown encoding: ' + e + }, + TypeError, + ), + r('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event'), + (e.exports.q = t)) + }, + 55101: (e, t, r) => { + 'use strict' + var n = r(48494), + i = + Object.keys || + function (e) { + var t = [] + for (var r in e) t.push(r) + return t + } + e.exports = f + var o = r(6246), + a = r(90609) + r(19105)(f, o) + for (var s = i(a.prototype), u = 0; u < s.length; u++) { + var c = s[u] + f.prototype[c] || (f.prototype[c] = a.prototype[c]) + } + function f(e) { + if (!(this instanceof f)) return new f(e) + ;(o.call(this, e), + a.call(this, e), + (this.allowHalfOpen = !0), + e && + (!1 === e.readable && (this.readable = !1), + !1 === e.writable && (this.writable = !1), + !1 === e.allowHalfOpen && ((this.allowHalfOpen = !1), this.once('end', l)))) + } + function l() { + this._writableState.ended || n.nextTick(d, this) + } + function d(e) { + e.end() + } + ;(Object.defineProperty(f.prototype, 'writableHighWaterMark', { + enumerable: !1, + get: function () { + return this._writableState.highWaterMark + }, + }), + Object.defineProperty(f.prototype, 'writableBuffer', { + enumerable: !1, + get: function () { + return this._writableState && this._writableState.getBuffer() + }, + }), + Object.defineProperty(f.prototype, 'writableLength', { + enumerable: !1, + get: function () { + return this._writableState.length + }, + }), + Object.defineProperty(f.prototype, 'destroyed', { + enumerable: !1, + get: function () { + return ( + void 0 !== this._readableState && void 0 !== this._writableState && this._readableState.destroyed && this._writableState.destroyed + ) + }, + set: function (e) { + void 0 !== this._readableState && + void 0 !== this._writableState && + ((this._readableState.destroyed = e), (this._writableState.destroyed = e)) + }, + })) + }, + 17153: (e, t, r) => { + 'use strict' + e.exports = i + var n = r(16889) + function i(e) { + if (!(this instanceof i)) return new i(e) + n.call(this, e) + } + ;(r(19105)(i, n), + (i.prototype._transform = function (e, t, r) { + r(null, e) + })) + }, + 6246: (e, t, r) => { + 'use strict' + var n, + i = r(48494) + ;((e.exports = O), (O.ReadableState = A), r(67725).EventEmitter) + var o, + a = function (e, t) { + return e.listeners(t).length + }, + s = r(38774), + u = r(18390).Buffer, + c = r.g.Uint8Array || function () {}, + f = r(66602) + o = f && f.debuglog ? f.debuglog('stream') : function () {} + var l, + d, + h, + p = r(90033), + y = r(16946), + g = r(50824).getHighWaterMark, + b = r(23388).q, + m = b.ERR_INVALID_ARG_TYPE, + v = b.ERR_STREAM_PUSH_AFTER_EOF, + w = b.ERR_METHOD_NOT_IMPLEMENTED, + _ = b.ERR_STREAM_UNSHIFT_AFTER_END_EVENT + r(19105)(O, s) + var E = y.errorOrDestroy, + S = ['error', 'close', 'destroy', 'pause', 'resume'] + function A(e, t, i) { + ;((n = n || r(55101)), + (e = e || {}), + 'boolean' != typeof i && (i = t instanceof n), + (this.objectMode = !!e.objectMode), + i && (this.objectMode = this.objectMode || !!e.readableObjectMode), + (this.highWaterMark = g(this, e, 'readableHighWaterMark', i)), + (this.buffer = new p()), + (this.length = 0), + (this.pipes = null), + (this.pipesCount = 0), + (this.flowing = null), + (this.ended = !1), + (this.endEmitted = !1), + (this.reading = !1), + (this.sync = !0), + (this.needReadable = !1), + (this.emittedReadable = !1), + (this.readableListening = !1), + (this.resumeScheduled = !1), + (this.paused = !0), + (this.emitClose = !1 !== e.emitClose), + (this.autoDestroy = !!e.autoDestroy), + (this.destroyed = !1), + (this.defaultEncoding = e.defaultEncoding || 'utf8'), + (this.awaitDrain = 0), + (this.readingMore = !1), + (this.decoder = null), + (this.encoding = null), + e.encoding && (l || (l = r(18842).s), (this.decoder = new l(e.encoding)), (this.encoding = e.encoding))) + } + function O(e) { + if (((n = n || r(55101)), !(this instanceof O))) return new O(e) + var t = this instanceof n + ;((this._readableState = new A(e, this, t)), + (this.readable = !0), + e && ('function' == typeof e.read && (this._read = e.read), 'function' == typeof e.destroy && (this._destroy = e.destroy)), + s.call(this)) + } + function M(e, t, r, n, i) { + o('readableAddChunk', t) + var a, + s = e._readableState + if (null === t) + ((s.reading = !1), + (function (e, t) { + if ((o('onEofChunk'), !t.ended)) { + if (t.decoder) { + var r = t.decoder.end() + r && r.length && (t.buffer.push(r), (t.length += t.objectMode ? 1 : r.length)) + } + ;((t.ended = !0), t.sync ? x(e) : ((t.needReadable = !1), t.emittedReadable || ((t.emittedReadable = !0), L(e)))) + } + })(e, s)) + else if ( + (i || + (a = (function (e, t) { + var r, n + return ( + (n = t), + u.isBuffer(n) || + n instanceof c || + 'string' == typeof t || + void 0 === t || + e.objectMode || + (r = new m('chunk', ['string', 'Buffer', 'Uint8Array'], t)), + r + ) + })(s, t)), + a) + ) + E(e, a) + else if (s.objectMode || (t && t.length > 0)) + if ( + ('string' == typeof t || + s.objectMode || + Object.getPrototypeOf(t) === u.prototype || + (t = (function (e) { + return u.from(e) + })(t)), + n) + ) + s.endEmitted ? E(e, new _()) : T(e, s, t, !0) + else if (s.ended) E(e, new v()) + else { + if (s.destroyed) return !1 + ;((s.reading = !1), + s.decoder && !r ? ((t = s.decoder.write(t)), s.objectMode || 0 !== t.length ? T(e, s, t, !1) : k(e, s)) : T(e, s, t, !1)) + } + else n || ((s.reading = !1), k(e, s)) + return !s.ended && (s.length < s.highWaterMark || 0 === s.length) + } + function T(e, t, r, n) { + ;(t.flowing && 0 === t.length && !t.sync + ? ((t.awaitDrain = 0), e.emit('data', r)) + : ((t.length += t.objectMode ? 1 : r.length), n ? t.buffer.unshift(r) : t.buffer.push(r), t.needReadable && x(e)), + k(e, t)) + } + ;(Object.defineProperty(O.prototype, 'destroyed', { + enumerable: !1, + get: function () { + return void 0 !== this._readableState && this._readableState.destroyed + }, + set: function (e) { + this._readableState && (this._readableState.destroyed = e) + }, + }), + (O.prototype.destroy = y.destroy), + (O.prototype._undestroy = y.undestroy), + (O.prototype._destroy = function (e, t) { + t(e) + }), + (O.prototype.push = function (e, t) { + var r, + n = this._readableState + return ( + n.objectMode + ? (r = !0) + : 'string' == typeof e && ((t = t || n.defaultEncoding) !== n.encoding && ((e = u.from(e, t)), (t = '')), (r = !0)), + M(this, e, t, !1, r) + ) + }), + (O.prototype.unshift = function (e) { + return M(this, e, null, !0, !1) + }), + (O.prototype.isPaused = function () { + return !1 === this._readableState.flowing + }), + (O.prototype.setEncoding = function (e) { + l || (l = r(18842).s) + var t = new l(e) + ;((this._readableState.decoder = t), (this._readableState.encoding = this._readableState.decoder.encoding)) + for (var n = this._readableState.buffer.head, i = ''; null !== n; ) ((i += t.write(n.data)), (n = n.next)) + return (this._readableState.buffer.clear(), '' !== i && this._readableState.buffer.push(i), (this._readableState.length = i.length), this) + })) + var I = 1073741824 + function N(e, t) { + return e <= 0 || (0 === t.length && t.ended) + ? 0 + : t.objectMode + ? 1 + : e != e + ? t.flowing && t.length + ? t.buffer.head.data.length + : t.length + : (e > t.highWaterMark && + (t.highWaterMark = (function (e) { + return (e >= I ? (e = I) : (e--, (e |= e >>> 1), (e |= e >>> 2), (e |= e >>> 4), (e |= e >>> 8), (e |= e >>> 16), e++), e) + })(e)), + e <= t.length ? e : t.ended ? t.length : ((t.needReadable = !0), 0)) + } + function x(e) { + var t = e._readableState + ;(o('emitReadable', t.needReadable, t.emittedReadable), + (t.needReadable = !1), + t.emittedReadable || (o('emitReadable', t.flowing), (t.emittedReadable = !0), i.nextTick(L, e))) + } + function L(e) { + var t = e._readableState + ;(o('emitReadable_', t.destroyed, t.length, t.ended), + t.destroyed || (!t.length && !t.ended) || (e.emit('readable'), (t.emittedReadable = !1)), + (t.needReadable = !t.flowing && !t.ended && t.length <= t.highWaterMark), + C(e)) + } + function k(e, t) { + t.readingMore || ((t.readingMore = !0), i.nextTick(R, e, t)) + } + function R(e, t) { + for (; !t.reading && !t.ended && (t.length < t.highWaterMark || (t.flowing && 0 === t.length)); ) { + var r = t.length + if ((o('maybeReadMore read 0'), e.read(0), r === t.length)) break + } + t.readingMore = !1 + } + function P(e) { + var t = e._readableState + ;((t.readableListening = e.listenerCount('readable') > 0), + t.resumeScheduled && !t.paused ? (t.flowing = !0) : e.listenerCount('data') > 0 && e.resume()) + } + function B(e) { + ;(o('readable nexttick read 0'), e.read(0)) + } + function D(e, t) { + ;(o('resume', t.reading), t.reading || e.read(0), (t.resumeScheduled = !1), e.emit('resume'), C(e), t.flowing && !t.reading && e.read(0)) + } + function C(e) { + var t = e._readableState + for (o('flow', t.flowing); t.flowing && null !== e.read(); ); + } + function j(e, t) { + return 0 === t.length + ? null + : (t.objectMode + ? (r = t.buffer.shift()) + : !e || e >= t.length + ? ((r = t.decoder ? t.buffer.join('') : 1 === t.buffer.length ? t.buffer.first() : t.buffer.concat(t.length)), t.buffer.clear()) + : (r = t.buffer.consume(e, t.decoder)), + r) + var r + } + function F(e) { + var t = e._readableState + ;(o('endReadable', t.endEmitted), t.endEmitted || ((t.ended = !0), i.nextTick(U, t, e))) + } + function U(e, t) { + if ( + (o('endReadableNT', e.endEmitted, e.length), + !e.endEmitted && 0 === e.length && ((e.endEmitted = !0), (t.readable = !1), t.emit('end'), e.autoDestroy)) + ) { + var r = t._writableState + ;(!r || (r.autoDestroy && r.finished)) && t.destroy() + } + } + function V(e, t) { + for (var r = 0, n = e.length; r < n; r++) if (e[r] === t) return r + return -1 + } + ;((O.prototype.read = function (e) { + ;(o('read', e), (e = parseInt(e, 10))) + var t = this._readableState, + r = e + if ( + (0 !== e && (t.emittedReadable = !1), + 0 === e && t.needReadable && ((0 !== t.highWaterMark ? t.length >= t.highWaterMark : t.length > 0) || t.ended)) + ) + return (o('read: emitReadable', t.length, t.ended), 0 === t.length && t.ended ? F(this) : x(this), null) + if (0 === (e = N(e, t)) && t.ended) return (0 === t.length && F(this), null) + var n, + i = t.needReadable + return ( + o('need readable', i), + (0 === t.length || t.length - e < t.highWaterMark) && o('length less than watermark', (i = !0)), + t.ended || t.reading + ? o('reading or ended', (i = !1)) + : i && + (o('do read'), + (t.reading = !0), + (t.sync = !0), + 0 === t.length && (t.needReadable = !0), + this._read(t.highWaterMark), + (t.sync = !1), + t.reading || (e = N(r, t))), + null === (n = e > 0 ? j(e, t) : null) ? ((t.needReadable = t.length <= t.highWaterMark), (e = 0)) : ((t.length -= e), (t.awaitDrain = 0)), + 0 === t.length && (t.ended || (t.needReadable = !0), r !== e && t.ended && F(this)), + null !== n && this.emit('data', n), + n + ) + }), + (O.prototype._read = function (e) { + E(this, new w('_read()')) + }), + (O.prototype.pipe = function (e, t) { + var r = this, + n = this._readableState + switch (n.pipesCount) { + case 0: + n.pipes = e + break + case 1: + n.pipes = [n.pipes, e] + break + default: + n.pipes.push(e) + } + ;((n.pipesCount += 1), o('pipe count=%d opts=%j', n.pipesCount, t)) + var s = (t && !1 === t.end) || e === i.stdout || e === i.stderr ? y : u + function u() { + ;(o('onend'), e.end()) + } + ;(n.endEmitted ? i.nextTick(s) : r.once('end', s), + e.on('unpipe', function t(i, a) { + ;(o('onunpipe'), + i === r && + a && + !1 === a.hasUnpiped && + ((a.hasUnpiped = !0), + o('cleanup'), + e.removeListener('close', h), + e.removeListener('finish', p), + e.removeListener('drain', c), + e.removeListener('error', d), + e.removeListener('unpipe', t), + r.removeListener('end', u), + r.removeListener('end', y), + r.removeListener('data', l), + (f = !0), + !n.awaitDrain || (e._writableState && !e._writableState.needDrain) || c())) + })) + var c = (function (e) { + return function () { + var t = e._readableState + ;(o('pipeOnDrain', t.awaitDrain), t.awaitDrain && t.awaitDrain--, 0 === t.awaitDrain && a(e, 'data') && ((t.flowing = !0), C(e))) + } + })(r) + e.on('drain', c) + var f = !1 + function l(t) { + o('ondata') + var i = e.write(t) + ;(o('dest.write', i), + !1 === i && + (((1 === n.pipesCount && n.pipes === e) || (n.pipesCount > 1 && -1 !== V(n.pipes, e))) && + !f && + (o('false write response, pause', n.awaitDrain), n.awaitDrain++), + r.pause())) + } + function d(t) { + ;(o('onerror', t), y(), e.removeListener('error', d), 0 === a(e, 'error') && E(e, t)) + } + function h() { + ;(e.removeListener('finish', p), y()) + } + function p() { + ;(o('onfinish'), e.removeListener('close', h), y()) + } + function y() { + ;(o('unpipe'), r.unpipe(e)) + } + return ( + r.on('data', l), + (function (e, t, r) { + if ('function' == typeof e.prependListener) return e.prependListener(t, r) + e._events && e._events[t] ? (Array.isArray(e._events[t]) ? e._events[t].unshift(r) : (e._events[t] = [r, e._events[t]])) : e.on(t, r) + })(e, 'error', d), + e.once('close', h), + e.once('finish', p), + e.emit('pipe', r), + n.flowing || (o('pipe resume'), r.resume()), + e + ) + }), + (O.prototype.unpipe = function (e) { + var t = this._readableState, + r = { hasUnpiped: !1 } + if (0 === t.pipesCount) return this + if (1 === t.pipesCount) + return ( + (e && e !== t.pipes) || (e || (e = t.pipes), (t.pipes = null), (t.pipesCount = 0), (t.flowing = !1), e && e.emit('unpipe', this, r)), + this + ) + if (!e) { + var n = t.pipes, + i = t.pipesCount + ;((t.pipes = null), (t.pipesCount = 0), (t.flowing = !1)) + for (var o = 0; o < i; o++) n[o].emit('unpipe', this, { hasUnpiped: !1 }) + return this + } + var a = V(t.pipes, e) + return ( + -1 === a || (t.pipes.splice(a, 1), (t.pipesCount -= 1), 1 === t.pipesCount && (t.pipes = t.pipes[0]), e.emit('unpipe', this, r)), + this + ) + }), + (O.prototype.on = function (e, t) { + var r = s.prototype.on.call(this, e, t), + n = this._readableState + return ( + 'data' === e + ? ((n.readableListening = this.listenerCount('readable') > 0), !1 !== n.flowing && this.resume()) + : 'readable' === e && + (n.endEmitted || + n.readableListening || + ((n.readableListening = n.needReadable = !0), + (n.flowing = !1), + (n.emittedReadable = !1), + o('on readable', n.length, n.reading), + n.length ? x(this) : n.reading || i.nextTick(B, this))), + r + ) + }), + (O.prototype.addListener = O.prototype.on), + (O.prototype.removeListener = function (e, t) { + var r = s.prototype.removeListener.call(this, e, t) + return ('readable' === e && i.nextTick(P, this), r) + }), + (O.prototype.removeAllListeners = function (e) { + var t = s.prototype.removeAllListeners.apply(this, arguments) + return (('readable' !== e && void 0 !== e) || i.nextTick(P, this), t) + }), + (O.prototype.resume = function () { + var e = this._readableState + return ( + e.flowing || + (o('resume'), + (e.flowing = !e.readableListening), + (function (e, t) { + t.resumeScheduled || ((t.resumeScheduled = !0), i.nextTick(D, e, t)) + })(this, e)), + (e.paused = !1), + this + ) + }), + (O.prototype.pause = function () { + return ( + o('call pause flowing=%j', this._readableState.flowing), + !1 !== this._readableState.flowing && (o('pause'), (this._readableState.flowing = !1), this.emit('pause')), + (this._readableState.paused = !0), + this + ) + }), + (O.prototype.wrap = function (e) { + var t = this, + r = this._readableState, + n = !1 + for (var i in (e.on('end', function () { + if ((o('wrapped end'), r.decoder && !r.ended)) { + var e = r.decoder.end() + e && e.length && t.push(e) + } + t.push(null) + }), + e.on('data', function (i) { + ;(o('wrapped data'), + r.decoder && (i = r.decoder.write(i)), + (r.objectMode && null == i) || ((r.objectMode || (i && i.length)) && (t.push(i) || ((n = !0), e.pause())))) + }), + e)) + void 0 === this[i] && + 'function' == typeof e[i] && + (this[i] = (function (t) { + return function () { + return e[t].apply(e, arguments) + } + })(i)) + for (var a = 0; a < S.length; a++) e.on(S[a], this.emit.bind(this, S[a])) + return ( + (this._read = function (t) { + ;(o('wrapped _read', t), n && ((n = !1), e.resume())) + }), + this + ) + }), + 'function' == typeof Symbol && + (O.prototype[Symbol.asyncIterator] = function () { + return (void 0 === d && (d = r(52326)), d(this)) + }), + Object.defineProperty(O.prototype, 'readableHighWaterMark', { + enumerable: !1, + get: function () { + return this._readableState.highWaterMark + }, + }), + Object.defineProperty(O.prototype, 'readableBuffer', { + enumerable: !1, + get: function () { + return this._readableState && this._readableState.buffer + }, + }), + Object.defineProperty(O.prototype, 'readableFlowing', { + enumerable: !1, + get: function () { + return this._readableState.flowing + }, + set: function (e) { + this._readableState && (this._readableState.flowing = e) + }, + }), + (O._fromList = j), + Object.defineProperty(O.prototype, 'readableLength', { + enumerable: !1, + get: function () { + return this._readableState.length + }, + }), + 'function' == typeof Symbol && + (O.from = function (e, t) { + return (void 0 === h && (h = r(19990)), h(O, e, t)) + })) + }, + 16889: (e, t, r) => { + 'use strict' + e.exports = f + var n = r(23388).q, + i = n.ERR_METHOD_NOT_IMPLEMENTED, + o = n.ERR_MULTIPLE_CALLBACK, + a = n.ERR_TRANSFORM_ALREADY_TRANSFORMING, + s = n.ERR_TRANSFORM_WITH_LENGTH_0, + u = r(55101) + function c(e, t) { + var r = this._transformState + r.transforming = !1 + var n = r.writecb + if (null === n) return this.emit('error', new o()) + ;((r.writechunk = null), (r.writecb = null), null != t && this.push(t), n(e)) + var i = this._readableState + ;((i.reading = !1), (i.needReadable || i.length < i.highWaterMark) && this._read(i.highWaterMark)) + } + function f(e) { + if (!(this instanceof f)) return new f(e) + ;(u.call(this, e), + (this._transformState = { + afterTransform: c.bind(this), + needTransform: !1, + transforming: !1, + writecb: null, + writechunk: null, + writeencoding: null, + }), + (this._readableState.needReadable = !0), + (this._readableState.sync = !1), + e && ('function' == typeof e.transform && (this._transform = e.transform), 'function' == typeof e.flush && (this._flush = e.flush)), + this.on('prefinish', l)) + } + function l() { + var e = this + 'function' != typeof this._flush || this._readableState.destroyed + ? d(this, null, null) + : this._flush(function (t, r) { + d(e, t, r) + }) + } + function d(e, t, r) { + if (t) return e.emit('error', t) + if ((null != r && e.push(r), e._writableState.length)) throw new s() + if (e._transformState.transforming) throw new a() + return e.push(null) + } + ;(r(19105)(f, u), + (f.prototype.push = function (e, t) { + return ((this._transformState.needTransform = !1), u.prototype.push.call(this, e, t)) + }), + (f.prototype._transform = function (e, t, r) { + r(new i('_transform()')) + }), + (f.prototype._write = function (e, t, r) { + var n = this._transformState + if (((n.writecb = r), (n.writechunk = e), (n.writeencoding = t), !n.transforming)) { + var i = this._readableState + ;(n.needTransform || i.needReadable || i.length < i.highWaterMark) && this._read(i.highWaterMark) + } + }), + (f.prototype._read = function (e) { + var t = this._transformState + null === t.writechunk || t.transforming + ? (t.needTransform = !0) + : ((t.transforming = !0), this._transform(t.writechunk, t.writeencoding, t.afterTransform)) + }), + (f.prototype._destroy = function (e, t) { + u.prototype._destroy.call(this, e, function (e) { + t(e) + }) + })) + }, + 90609: (e, t, r) => { + 'use strict' + var n, + i = r(48494) + function o(e) { + var t = this + ;((this.next = null), + (this.entry = null), + (this.finish = function () { + !(function (e, t, r) { + var n = e.entry + for (e.entry = null; n; ) { + var i = n.callback + ;(t.pendingcb--, i(undefined), (n = n.next)) + } + t.corkedRequestsFree.next = e + })(t, e) + })) + } + ;((e.exports = O), (O.WritableState = A)) + var a, + s = { deprecate: r(11741) }, + u = r(38774), + c = r(18390).Buffer, + f = r.g.Uint8Array || function () {}, + l = r(16946), + d = r(50824).getHighWaterMark, + h = r(23388).q, + p = h.ERR_INVALID_ARG_TYPE, + y = h.ERR_METHOD_NOT_IMPLEMENTED, + g = h.ERR_MULTIPLE_CALLBACK, + b = h.ERR_STREAM_CANNOT_PIPE, + m = h.ERR_STREAM_DESTROYED, + v = h.ERR_STREAM_NULL_VALUES, + w = h.ERR_STREAM_WRITE_AFTER_END, + _ = h.ERR_UNKNOWN_ENCODING, + E = l.errorOrDestroy + function S() {} + function A(e, t, a) { + ;((n = n || r(55101)), + (e = e || {}), + 'boolean' != typeof a && (a = t instanceof n), + (this.objectMode = !!e.objectMode), + a && (this.objectMode = this.objectMode || !!e.writableObjectMode), + (this.highWaterMark = d(this, e, 'writableHighWaterMark', a)), + (this.finalCalled = !1), + (this.needDrain = !1), + (this.ending = !1), + (this.ended = !1), + (this.finished = !1), + (this.destroyed = !1)) + var s = !1 === e.decodeStrings + ;((this.decodeStrings = !s), + (this.defaultEncoding = e.defaultEncoding || 'utf8'), + (this.length = 0), + (this.writing = !1), + (this.corked = 0), + (this.sync = !0), + (this.bufferProcessing = !1), + (this.onwrite = function (e) { + !(function (e, t) { + var r = e._writableState, + n = r.sync, + o = r.writecb + if ('function' != typeof o) throw new g() + if ( + ((function (e) { + ;((e.writing = !1), (e.writecb = null), (e.length -= e.writelen), (e.writelen = 0)) + })(r), + t) + ) + !(function (e, t, r, n, o) { + ;(--t.pendingcb, + r + ? (i.nextTick(o, n), i.nextTick(L, e, t), (e._writableState.errorEmitted = !0), E(e, n)) + : (o(n), (e._writableState.errorEmitted = !0), E(e, n), L(e, t))) + })(e, r, n, t, o) + else { + var a = N(r) || e.destroyed + ;(a || r.corked || r.bufferProcessing || !r.bufferedRequest || I(e, r), n ? i.nextTick(T, e, r, a, o) : T(e, r, a, o)) + } + })(t, e) + }), + (this.writecb = null), + (this.writelen = 0), + (this.bufferedRequest = null), + (this.lastBufferedRequest = null), + (this.pendingcb = 0), + (this.prefinished = !1), + (this.errorEmitted = !1), + (this.emitClose = !1 !== e.emitClose), + (this.autoDestroy = !!e.autoDestroy), + (this.bufferedRequestCount = 0), + (this.corkedRequestsFree = new o(this))) + } + function O(e) { + var t = this instanceof (n = n || r(55101)) + if (!t && !a.call(O, this)) return new O(e) + ;((this._writableState = new A(e, this, t)), + (this.writable = !0), + e && + ('function' == typeof e.write && (this._write = e.write), + 'function' == typeof e.writev && (this._writev = e.writev), + 'function' == typeof e.destroy && (this._destroy = e.destroy), + 'function' == typeof e.final && (this._final = e.final)), + u.call(this)) + } + function M(e, t, r, n, i, o, a) { + ;((t.writelen = n), + (t.writecb = a), + (t.writing = !0), + (t.sync = !0), + t.destroyed ? t.onwrite(new m('write')) : r ? e._writev(i, t.onwrite) : e._write(i, o, t.onwrite), + (t.sync = !1)) + } + function T(e, t, r, n) { + ;(r || + (function (e, t) { + 0 === t.length && t.needDrain && ((t.needDrain = !1), e.emit('drain')) + })(e, t), + t.pendingcb--, + n(), + L(e, t)) + } + function I(e, t) { + t.bufferProcessing = !0 + var r = t.bufferedRequest + if (e._writev && r && r.next) { + var n = t.bufferedRequestCount, + i = new Array(n), + a = t.corkedRequestsFree + a.entry = r + for (var s = 0, u = !0; r; ) ((i[s] = r), r.isBuf || (u = !1), (r = r.next), (s += 1)) + ;((i.allBuffers = u), + M(e, t, !0, t.length, i, '', a.finish), + t.pendingcb++, + (t.lastBufferedRequest = null), + a.next ? ((t.corkedRequestsFree = a.next), (a.next = null)) : (t.corkedRequestsFree = new o(t)), + (t.bufferedRequestCount = 0)) + } else { + for (; r; ) { + var c = r.chunk, + f = r.encoding, + l = r.callback + if ((M(e, t, !1, t.objectMode ? 1 : c.length, c, f, l), (r = r.next), t.bufferedRequestCount--, t.writing)) break + } + null === r && (t.lastBufferedRequest = null) + } + ;((t.bufferedRequest = r), (t.bufferProcessing = !1)) + } + function N(e) { + return e.ending && 0 === e.length && null === e.bufferedRequest && !e.finished && !e.writing + } + function x(e, t) { + e._final(function (r) { + ;(t.pendingcb--, r && E(e, r), (t.prefinished = !0), e.emit('prefinish'), L(e, t)) + }) + } + function L(e, t) { + var r = N(t) + if ( + r && + ((function (e, t) { + t.prefinished || + t.finalCalled || + ('function' != typeof e._final || t.destroyed + ? ((t.prefinished = !0), e.emit('prefinish')) + : (t.pendingcb++, (t.finalCalled = !0), i.nextTick(x, e, t))) + })(e, t), + 0 === t.pendingcb && ((t.finished = !0), e.emit('finish'), t.autoDestroy)) + ) { + var n = e._readableState + ;(!n || (n.autoDestroy && n.endEmitted)) && e.destroy() + } + return r + } + ;(r(19105)(O, u), + (A.prototype.getBuffer = function () { + for (var e = this.bufferedRequest, t = []; e; ) (t.push(e), (e = e.next)) + return t + }), + (function () { + try { + Object.defineProperty(A.prototype, 'buffer', { + get: s.deprecate( + function () { + return this.getBuffer() + }, + '_writableState.buffer is deprecated. Use _writableState.getBuffer instead.', + 'DEP0003', + ), + }) + } catch (e) {} + })(), + 'function' == typeof Symbol && Symbol.hasInstance && 'function' == typeof Function.prototype[Symbol.hasInstance] + ? ((a = Function.prototype[Symbol.hasInstance]), + Object.defineProperty(O, Symbol.hasInstance, { + value: function (e) { + return !!a.call(this, e) || (this === O && e && e._writableState instanceof A) + }, + })) + : (a = function (e) { + return e instanceof this + }), + (O.prototype.pipe = function () { + E(this, new b()) + }), + (O.prototype.write = function (e, t, r) { + var n, + o = this._writableState, + a = !1, + s = !o.objectMode && ((n = e), c.isBuffer(n) || n instanceof f) + return ( + s && + !c.isBuffer(e) && + (e = (function (e) { + return c.from(e) + })(e)), + 'function' == typeof t && ((r = t), (t = null)), + s ? (t = 'buffer') : t || (t = o.defaultEncoding), + 'function' != typeof r && (r = S), + o.ending + ? (function (e, t) { + var r = new w() + ;(E(e, r), i.nextTick(t, r)) + })(this, r) + : (s || + (function (e, t, r, n) { + var o + return ( + null === r ? (o = new v()) : 'string' == typeof r || t.objectMode || (o = new p('chunk', ['string', 'Buffer'], r)), + !o || (E(e, o), i.nextTick(n, o), !1) + ) + })(this, o, e, r)) && + (o.pendingcb++, + (a = (function (e, t, r, n, i, o) { + if (!r) { + var a = (function (e, t, r) { + return (e.objectMode || !1 === e.decodeStrings || 'string' != typeof t || (t = c.from(t, r)), t) + })(t, n, i) + n !== a && ((r = !0), (i = 'buffer'), (n = a)) + } + var s = t.objectMode ? 1 : n.length + t.length += s + var u = t.length < t.highWaterMark + if ((u || (t.needDrain = !0), t.writing || t.corked)) { + var f = t.lastBufferedRequest + ;((t.lastBufferedRequest = { chunk: n, encoding: i, isBuf: r, callback: o, next: null }), + f ? (f.next = t.lastBufferedRequest) : (t.bufferedRequest = t.lastBufferedRequest), + (t.bufferedRequestCount += 1)) + } else M(e, t, !1, s, n, i, o) + return u + })(this, o, s, e, t, r))), + a + ) + }), + (O.prototype.cork = function () { + this._writableState.corked++ + }), + (O.prototype.uncork = function () { + var e = this._writableState + e.corked && (e.corked--, e.writing || e.corked || e.bufferProcessing || !e.bufferedRequest || I(this, e)) + }), + (O.prototype.setDefaultEncoding = function (e) { + if ( + ('string' == typeof e && (e = e.toLowerCase()), + !( + ['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((e + '').toLowerCase()) > + -1 + )) + ) + throw new _(e) + return ((this._writableState.defaultEncoding = e), this) + }), + Object.defineProperty(O.prototype, 'writableBuffer', { + enumerable: !1, + get: function () { + return this._writableState && this._writableState.getBuffer() + }, + }), + Object.defineProperty(O.prototype, 'writableHighWaterMark', { + enumerable: !1, + get: function () { + return this._writableState.highWaterMark + }, + }), + (O.prototype._write = function (e, t, r) { + r(new y('_write()')) + }), + (O.prototype._writev = null), + (O.prototype.end = function (e, t, r) { + var n = this._writableState + return ( + 'function' == typeof e ? ((r = e), (e = null), (t = null)) : 'function' == typeof t && ((r = t), (t = null)), + null != e && this.write(e, t), + n.corked && ((n.corked = 1), this.uncork()), + n.ending || + (function (e, t, r) { + ;((t.ending = !0), L(e, t), r && (t.finished ? i.nextTick(r) : e.once('finish', r)), (t.ended = !0), (e.writable = !1)) + })(this, n, r), + this + ) + }), + Object.defineProperty(O.prototype, 'writableLength', { + enumerable: !1, + get: function () { + return this._writableState.length + }, + }), + Object.defineProperty(O.prototype, 'destroyed', { + enumerable: !1, + get: function () { + return void 0 !== this._writableState && this._writableState.destroyed + }, + set: function (e) { + this._writableState && (this._writableState.destroyed = e) + }, + }), + (O.prototype.destroy = l.destroy), + (O.prototype._undestroy = l.undestroy), + (O.prototype._destroy = function (e, t) { + t(e) + })) + }, + 52326: (e, t, r) => { + 'use strict' + var n, + i = r(48494) + function o(e, t, r) { + return (t in e ? Object.defineProperty(e, t, { value: r, enumerable: !0, configurable: !0, writable: !0 }) : (e[t] = r), e) + } + var a = r(84781), + s = Symbol('lastResolve'), + u = Symbol('lastReject'), + c = Symbol('error'), + f = Symbol('ended'), + l = Symbol('lastPromise'), + d = Symbol('handlePromise'), + h = Symbol('stream') + function p(e, t) { + return { value: e, done: t } + } + function y(e) { + var t = e[s] + if (null !== t) { + var r = e[h].read() + null !== r && ((e[l] = null), (e[s] = null), (e[u] = null), t(p(r, !1))) + } + } + function g(e) { + i.nextTick(y, e) + } + var b = Object.getPrototypeOf(function () {}), + m = Object.setPrototypeOf( + (o( + (n = { + get stream() { + return this[h] + }, + next: function () { + var e = this, + t = this[c] + if (null !== t) return Promise.reject(t) + if (this[f]) return Promise.resolve(p(void 0, !0)) + if (this[h].destroyed) + return new Promise(function (t, r) { + i.nextTick(function () { + e[c] ? r(e[c]) : t(p(void 0, !0)) + }) + }) + var r, + n = this[l] + if (n) + r = new Promise( + (function (e, t) { + return function (r, n) { + e.then(function () { + t[f] ? r(p(void 0, !0)) : t[d](r, n) + }, n) + } + })(n, this), + ) + else { + var o = this[h].read() + if (null !== o) return Promise.resolve(p(o, !1)) + r = new Promise(this[d]) + } + return ((this[l] = r), r) + }, + }), + Symbol.asyncIterator, + function () { + return this + }, + ), + o(n, 'return', function () { + var e = this + return new Promise(function (t, r) { + e[h].destroy(null, function (e) { + e ? r(e) : t(p(void 0, !0)) + }) + }) + }), + n), + b, + ) + e.exports = function (e) { + var t, + r = Object.create( + m, + (o((t = {}), h, { value: e, writable: !0 }), + o(t, s, { value: null, writable: !0 }), + o(t, u, { value: null, writable: !0 }), + o(t, c, { value: null, writable: !0 }), + o(t, f, { value: e._readableState.endEmitted, writable: !0 }), + o(t, d, { + value: function (e, t) { + var n = r[h].read() + n ? ((r[l] = null), (r[s] = null), (r[u] = null), e(p(n, !1))) : ((r[s] = e), (r[u] = t)) + }, + writable: !0, + }), + t), + ) + return ( + (r[l] = null), + a(e, function (e) { + if (e && 'ERR_STREAM_PREMATURE_CLOSE' !== e.code) { + var t = r[u] + return (null !== t && ((r[l] = null), (r[s] = null), (r[u] = null), t(e)), void (r[c] = e)) + } + var n = r[s] + ;(null !== n && ((r[l] = null), (r[s] = null), (r[u] = null), n(p(void 0, !0))), (r[f] = !0)) + }), + e.on('readable', g.bind(null, r)), + r + ) + } + }, + 90033: (e, t, r) => { + 'use strict' + function n(e, t) { + var r = Object.keys(e) + if (Object.getOwnPropertySymbols) { + var n = Object.getOwnPropertySymbols(e) + ;(t && + (n = n.filter(function (t) { + return Object.getOwnPropertyDescriptor(e, t).enumerable + })), + r.push.apply(r, n)) + } + return r + } + function i(e, t, r) { + return (t in e ? Object.defineProperty(e, t, { value: r, enumerable: !0, configurable: !0, writable: !0 }) : (e[t] = r), e) + } + function o(e, t) { + for (var r = 0; r < t.length; r++) { + var n = t[r] + ;((n.enumerable = n.enumerable || !1), (n.configurable = !0), 'value' in n && (n.writable = !0), Object.defineProperty(e, n.key, n)) + } + } + var a = r(18390).Buffer, + s = r(74854).inspect, + u = (s && s.custom) || 'inspect' + e.exports = (function () { + function e() { + ;(!(function (e, t) { + if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function') + })(this, e), + (this.head = null), + (this.tail = null), + (this.length = 0)) + } + var t, r + return ( + (t = e), + (r = [ + { + key: 'push', + value: function (e) { + var t = { data: e, next: null } + ;(this.length > 0 ? (this.tail.next = t) : (this.head = t), (this.tail = t), ++this.length) + }, + }, + { + key: 'unshift', + value: function (e) { + var t = { data: e, next: this.head } + ;(0 === this.length && (this.tail = t), (this.head = t), ++this.length) + }, + }, + { + key: 'shift', + value: function () { + if (0 !== this.length) { + var e = this.head.data + return (1 === this.length ? (this.head = this.tail = null) : (this.head = this.head.next), --this.length, e) + } + }, + }, + { + key: 'clear', + value: function () { + ;((this.head = this.tail = null), (this.length = 0)) + }, + }, + { + key: 'join', + value: function (e) { + if (0 === this.length) return '' + for (var t = this.head, r = '' + t.data; (t = t.next); ) r += e + t.data + return r + }, + }, + { + key: 'concat', + value: function (e) { + if (0 === this.length) return a.alloc(0) + for (var t, r, n, i = a.allocUnsafe(e >>> 0), o = this.head, s = 0; o; ) + ((t = o.data), (r = i), (n = s), a.prototype.copy.call(t, r, n), (s += o.data.length), (o = o.next)) + return i + }, + }, + { + key: 'consume', + value: function (e, t) { + var r + return ( + e < this.head.data.length + ? ((r = this.head.data.slice(0, e)), (this.head.data = this.head.data.slice(e))) + : (r = e === this.head.data.length ? this.shift() : t ? this._getString(e) : this._getBuffer(e)), + r + ) + }, + }, + { + key: 'first', + value: function () { + return this.head.data + }, + }, + { + key: '_getString', + value: function (e) { + var t = this.head, + r = 1, + n = t.data + for (e -= n.length; (t = t.next); ) { + var i = t.data, + o = e > i.length ? i.length : e + if ((o === i.length ? (n += i) : (n += i.slice(0, e)), 0 == (e -= o))) { + o === i.length + ? (++r, t.next ? (this.head = t.next) : (this.head = this.tail = null)) + : ((this.head = t), (t.data = i.slice(o))) + break + } + ++r + } + return ((this.length -= r), n) + }, + }, + { + key: '_getBuffer', + value: function (e) { + var t = a.allocUnsafe(e), + r = this.head, + n = 1 + for (r.data.copy(t), e -= r.data.length; (r = r.next); ) { + var i = r.data, + o = e > i.length ? i.length : e + if ((i.copy(t, t.length - e, 0, o), 0 == (e -= o))) { + o === i.length + ? (++n, r.next ? (this.head = r.next) : (this.head = this.tail = null)) + : ((this.head = r), (r.data = i.slice(o))) + break + } + ++n + } + return ((this.length -= n), t) + }, + }, + { + key: u, + value: function (e, t) { + return s( + this, + (function (e) { + for (var t = 1; t < arguments.length; t++) { + var r = null != arguments[t] ? arguments[t] : {} + t % 2 + ? n(Object(r), !0).forEach(function (t) { + i(e, t, r[t]) + }) + : Object.getOwnPropertyDescriptors + ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(r)) + : n(Object(r)).forEach(function (t) { + Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(r, t)) + }) + } + return e + })({}, t, { depth: 0, customInspect: !1 }), + ) + }, + }, + ]), + r && o(t.prototype, r), + e + ) + })() + }, + 16946: (e, t, r) => { + 'use strict' + var n = r(48494) + function i(e, t) { + ;(a(e, t), o(e)) + } + function o(e) { + ;(e._writableState && !e._writableState.emitClose) || (e._readableState && !e._readableState.emitClose) || e.emit('close') + } + function a(e, t) { + e.emit('error', t) + } + e.exports = { + destroy: function (e, t) { + var r = this, + s = this._readableState && this._readableState.destroyed, + u = this._writableState && this._writableState.destroyed + return s || u + ? (t + ? t(e) + : e && + (this._writableState + ? this._writableState.errorEmitted || ((this._writableState.errorEmitted = !0), n.nextTick(a, this, e)) + : n.nextTick(a, this, e)), + this) + : (this._readableState && (this._readableState.destroyed = !0), + this._writableState && (this._writableState.destroyed = !0), + this._destroy(e || null, function (e) { + !t && e + ? r._writableState + ? r._writableState.errorEmitted + ? n.nextTick(o, r) + : ((r._writableState.errorEmitted = !0), n.nextTick(i, r, e)) + : n.nextTick(i, r, e) + : t + ? (n.nextTick(o, r), t(e)) + : n.nextTick(o, r) + }), + this) + }, + undestroy: function () { + ;(this._readableState && + ((this._readableState.destroyed = !1), + (this._readableState.reading = !1), + (this._readableState.ended = !1), + (this._readableState.endEmitted = !1)), + this._writableState && + ((this._writableState.destroyed = !1), + (this._writableState.ended = !1), + (this._writableState.ending = !1), + (this._writableState.finalCalled = !1), + (this._writableState.prefinished = !1), + (this._writableState.finished = !1), + (this._writableState.errorEmitted = !1))) + }, + errorOrDestroy: function (e, t) { + var r = e._readableState, + n = e._writableState + ;(r && r.autoDestroy) || (n && n.autoDestroy) ? e.destroy(t) : e.emit('error', t) + }, + } + }, + 84781: (e, t, r) => { + 'use strict' + var n = r(23388).q.ERR_STREAM_PREMATURE_CLOSE + function i() {} + e.exports = function e(t, r, o) { + if ('function' == typeof r) return e(t, null, r) + ;(r || (r = {}), + (o = (function (e) { + var t = !1 + return function () { + if (!t) { + t = !0 + for (var r = arguments.length, n = new Array(r), i = 0; i < r; i++) n[i] = arguments[i] + e.apply(this, n) + } + } + })(o || i))) + var a = r.readable || (!1 !== r.readable && t.readable), + s = r.writable || (!1 !== r.writable && t.writable), + u = function () { + t.writable || f() + }, + c = t._writableState && t._writableState.finished, + f = function () { + ;((s = !1), (c = !0), a || o.call(t)) + }, + l = t._readableState && t._readableState.endEmitted, + d = function () { + ;((a = !1), (l = !0), s || o.call(t)) + }, + h = function (e) { + o.call(t, e) + }, + p = function () { + var e + return a && !l + ? ((t._readableState && t._readableState.ended) || (e = new n()), o.call(t, e)) + : s && !c + ? ((t._writableState && t._writableState.ended) || (e = new n()), o.call(t, e)) + : void 0 + }, + y = function () { + t.req.on('finish', f) + } + return ( + (function (e) { + return e.setHeader && 'function' == typeof e.abort + })(t) + ? (t.on('complete', f), t.on('abort', p), t.req ? y() : t.on('request', y)) + : s && !t._writableState && (t.on('end', u), t.on('close', u)), + t.on('end', d), + t.on('finish', f), + !1 !== r.error && t.on('error', h), + t.on('close', p), + function () { + ;(t.removeListener('complete', f), + t.removeListener('abort', p), + t.removeListener('request', y), + t.req && t.req.removeListener('finish', f), + t.removeListener('end', u), + t.removeListener('close', u), + t.removeListener('finish', f), + t.removeListener('end', d), + t.removeListener('error', h), + t.removeListener('close', p)) + } + ) + } + }, + 19990: (e) => { + e.exports = function () { + throw new Error('Readable.from is not available in the browser') + } + }, + 69635: (e, t, r) => { + 'use strict' + var n, + i = r(23388).q, + o = i.ERR_MISSING_ARGS, + a = i.ERR_STREAM_DESTROYED + function s(e) { + if (e) throw e + } + function u(e) { + e() + } + function c(e, t) { + return e.pipe(t) + } + e.exports = function () { + for (var e = arguments.length, t = new Array(e), i = 0; i < e; i++) t[i] = arguments[i] + var f, + l = (function (e) { + return e.length ? ('function' != typeof e[e.length - 1] ? s : e.pop()) : s + })(t) + if ((Array.isArray(t[0]) && (t = t[0]), t.length < 2)) throw new o('streams') + var d = t.map(function (e, i) { + var o = i < t.length - 1 + return (function (e, t, i, o) { + o = (function (e) { + var t = !1 + return function () { + t || ((t = !0), e.apply(void 0, arguments)) + } + })(o) + var s = !1 + ;(e.on('close', function () { + s = !0 + }), + void 0 === n && (n = r(84781)), + n(e, { readable: t, writable: i }, function (e) { + if (e) return o(e) + ;((s = !0), o()) + })) + var u = !1 + return function (t) { + if (!s && !u) + return ( + (u = !0), + (function (e) { + return e.setHeader && 'function' == typeof e.abort + })(e) + ? e.abort() + : 'function' == typeof e.destroy + ? e.destroy() + : void o(t || new a('pipe')) + ) + } + })(e, o, i > 0, function (e) { + ;(f || (f = e), e && d.forEach(u), o || (d.forEach(u), l(f))) + }) + }) + return t.reduce(c) + } + }, + 50824: (e, t, r) => { + 'use strict' + var n = r(23388).q.ERR_INVALID_OPT_VALUE + e.exports = { + getHighWaterMark: function (e, t, r, i) { + var o = (function (e, t, r) { + return null != e.highWaterMark ? e.highWaterMark : t ? e[r] : null + })(t, i, r) + if (null != o) { + if (!isFinite(o) || Math.floor(o) !== o || o < 0) throw new n(i ? r : 'highWaterMark', o) + return Math.floor(o) + } + return e.objectMode ? 16 : 16384 + }, + } + }, + 38774: (e, t, r) => { + e.exports = r(67725).EventEmitter + }, + 8542: (e, t, r) => { + ;(((t = e.exports = r(6246)).Stream = t), + (t.Readable = t), + (t.Writable = r(90609)), + (t.Duplex = r(55101)), + (t.Transform = r(16889)), + (t.PassThrough = r(17153)), + (t.finished = r(84781)), + (t.pipeline = r(69635))) + }, + 92027: (e, t, r) => { + 'use strict' + var n = r(18390).Buffer, + i = r(19105), + o = r(35921), + a = new Array(16), + s = [ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, + 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13, + ], + u = [ + 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, + 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11, + ], + c = [ + 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, + 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, + 5, 6, + ], + f = [ + 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, + 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, + 11, + ], + l = [0, 1518500249, 1859775393, 2400959708, 2840853838], + d = [1352829926, 1548603684, 1836072691, 2053994217, 0] + function h() { + ;(o.call(this, 64), (this._a = 1732584193), (this._b = 4023233417), (this._c = 2562383102), (this._d = 271733878), (this._e = 3285377520)) + } + function p(e, t) { + return (e << t) | (e >>> (32 - t)) + } + function y(e, t, r, n, i, o, a, s) { + return (p((e + (t ^ r ^ n) + o + a) | 0, s) + i) | 0 + } + function g(e, t, r, n, i, o, a, s) { + return (p((e + ((t & r) | (~t & n)) + o + a) | 0, s) + i) | 0 + } + function b(e, t, r, n, i, o, a, s) { + return (p((e + ((t | ~r) ^ n) + o + a) | 0, s) + i) | 0 + } + function m(e, t, r, n, i, o, a, s) { + return (p((e + ((t & n) | (r & ~n)) + o + a) | 0, s) + i) | 0 + } + function v(e, t, r, n, i, o, a, s) { + return (p((e + (t ^ (r | ~n)) + o + a) | 0, s) + i) | 0 + } + ;(i(h, o), + (h.prototype._update = function () { + for (var e = a, t = 0; t < 16; ++t) e[t] = this._block.readInt32LE(4 * t) + for ( + var r = 0 | this._a, + n = 0 | this._b, + i = 0 | this._c, + o = 0 | this._d, + h = 0 | this._e, + w = 0 | this._a, + _ = 0 | this._b, + E = 0 | this._c, + S = 0 | this._d, + A = 0 | this._e, + O = 0; + O < 80; + O += 1 + ) { + var M, T + ;(O < 16 + ? ((M = y(r, n, i, o, h, e[s[O]], l[0], c[O])), (T = v(w, _, E, S, A, e[u[O]], d[0], f[O]))) + : O < 32 + ? ((M = g(r, n, i, o, h, e[s[O]], l[1], c[O])), (T = m(w, _, E, S, A, e[u[O]], d[1], f[O]))) + : O < 48 + ? ((M = b(r, n, i, o, h, e[s[O]], l[2], c[O])), (T = b(w, _, E, S, A, e[u[O]], d[2], f[O]))) + : O < 64 + ? ((M = m(r, n, i, o, h, e[s[O]], l[3], c[O])), (T = g(w, _, E, S, A, e[u[O]], d[3], f[O]))) + : ((M = v(r, n, i, o, h, e[s[O]], l[4], c[O])), (T = y(w, _, E, S, A, e[u[O]], d[4], f[O]))), + (r = h), + (h = o), + (o = p(i, 10)), + (i = n), + (n = M), + (w = A), + (A = S), + (S = p(E, 10)), + (E = _), + (_ = T)) + } + var I = (this._b + i + S) | 0 + ;((this._b = (this._c + o + A) | 0), + (this._c = (this._d + h + w) | 0), + (this._d = (this._e + r + _) | 0), + (this._e = (this._a + n + E) | 0), + (this._a = I)) + }), + (h.prototype._digest = function () { + ;((this._block[this._blockOffset++] = 128), + this._blockOffset > 56 && (this._block.fill(0, this._blockOffset, 64), this._update(), (this._blockOffset = 0)), + this._block.fill(0, this._blockOffset, 56), + this._block.writeUInt32LE(this._length[0], 56), + this._block.writeUInt32LE(this._length[1], 60), + this._update()) + var e = n.alloc ? n.alloc(20) : new n(20) + return ( + e.writeInt32LE(this._a, 0), + e.writeInt32LE(this._b, 4), + e.writeInt32LE(this._c, 8), + e.writeInt32LE(this._d, 12), + e.writeInt32LE(this._e, 16), + e + ) + }), + (e.exports = h)) + }, + 79798: function (e, t, r) { + 'use strict' + var n = r(18390).Buffer, + i = + (this && this.__createBinding) || + (Object.create + ? function (e, t, r, n) { + void 0 === n && (n = r) + var i = Object.getOwnPropertyDescriptor(t, r) + ;((i && !('get' in i ? !t.__esModule : i.writable || i.configurable)) || + (i = { + enumerable: !0, + get: function () { + return t[r] + }, + }), + Object.defineProperty(e, n, i)) + } + : function (e, t, r, n) { + ;(void 0 === n && (n = r), (e[n] = t[r])) + }), + o = + (this && this.__setModuleDefault) || + (Object.create + ? function (e, t) { + Object.defineProperty(e, 'default', { enumerable: !0, value: t }) + } + : function (e, t) { + e.default = t + }), + a = + (this && this.__importStar) || + function (e) { + if (e && e.__esModule) return e + var t = {} + if (null != e) for (var r in e) 'default' !== r && Object.prototype.hasOwnProperty.call(e, r) && i(t, e, r) + return (o(t, e), t) + } + ;(Object.defineProperty(t, '__esModule', { value: !0 }), + (t.isValidXAddress = + t.decodeXAddress = + t.xAddressToClassicAddress = + t.encodeXAddress = + t.classicAddressToXAddress = + t.isValidClassicAddress = + t.decodeAccountPublic = + t.encodeAccountPublic = + t.decodeNodePublic = + t.encodeNodePublic = + t.decodeAccountID = + t.encodeAccountID = + t.decodeSeed = + t.encodeSeed = + t.codec = + void 0)) + const s = a(r(32037)), + u = r(89526) + ;(Object.defineProperty(t, 'codec', { + enumerable: !0, + get: function () { + return u.codec + }, + }), + Object.defineProperty(t, 'encodeSeed', { + enumerable: !0, + get: function () { + return u.encodeSeed + }, + }), + Object.defineProperty(t, 'decodeSeed', { + enumerable: !0, + get: function () { + return u.decodeSeed + }, + }), + Object.defineProperty(t, 'encodeAccountID', { + enumerable: !0, + get: function () { + return u.encodeAccountID + }, + }), + Object.defineProperty(t, 'decodeAccountID', { + enumerable: !0, + get: function () { + return u.decodeAccountID + }, + }), + Object.defineProperty(t, 'encodeNodePublic', { + enumerable: !0, + get: function () { + return u.encodeNodePublic + }, + }), + Object.defineProperty(t, 'decodeNodePublic', { + enumerable: !0, + get: function () { + return u.decodeNodePublic + }, + }), + Object.defineProperty(t, 'encodeAccountPublic', { + enumerable: !0, + get: function () { + return u.encodeAccountPublic + }, + }), + Object.defineProperty(t, 'decodeAccountPublic', { + enumerable: !0, + get: function () { + return u.decodeAccountPublic + }, + }), + Object.defineProperty(t, 'isValidClassicAddress', { + enumerable: !0, + get: function () { + return u.isValidClassicAddress + }, + })) + const c = { main: n.from([5, 68]), test: n.from([4, 147]) } + function f(e, t, r) { + if (20 !== e.length) throw new Error('Account ID must be 20 bytes') + if (t > 4294967295) throw new Error('Invalid tag') + const i = t || 0, + o = !1 === t || null == t ? 0 : 1, + a = n.concat([r ? c.test : c.main, e, n.from([o, 255 & i, (i >> 8) & 255, (i >> 16) & 255, (i >> 24) & 255, 0, 0, 0, 0])]) + return u.codec.encodeChecked(a) + } + function l(e) { + const t = u.codec.decodeChecked(e), + r = (function (e) { + const t = e.slice(0, 2) + if (c.main.equals(t)) return !1 + if (c.test.equals(t)) return !0 + throw new Error('Invalid X-address: bad prefix') + })(t) + return { + accountId: t.slice(2, 22), + tag: (function (e) { + const t = e[22] + if (t >= 2) throw new Error('Unsupported X-address') + return 1 === t + ? e[23] + 256 * e[24] + 65536 * e[25] + 16777216 * e[26] + : (s.strictEqual(t, 0, 'flag must be zero to indicate no tag'), + s.ok(n.from('0000000000000000', 'hex').equals(e.slice(23, 31)), 'remaining bytes must be zero'), + !1) + })(t), + test: r, + } + } + ;((t.classicAddressToXAddress = function (e, t, r) { + return f((0, u.decodeAccountID)(e), t, r) + }), + (t.encodeXAddress = f), + (t.xAddressToClassicAddress = function (e) { + const { accountId: t, tag: r, test: n } = l(e) + return { classicAddress: (0, u.encodeAccountID)(t), tag: r, test: n } + }), + (t.decodeXAddress = l), + (t.isValidXAddress = function (e) { + try { + l(e) + } catch (e) { + return !1 + } + return !0 + })) + }, + 93259: (e, t) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), + (t.concatArgs = t.seqEqual = void 0), + (t.seqEqual = function (e, t) { + if (e.length !== t.length) return !1 + for (let r = 0; r < e.length; r++) if (e[r] !== t[r]) return !1 + return !0 + }), + (t.concatArgs = function (...e) { + const t = [] + return ( + e.forEach((e) => { + if ('number' != typeof e) for (const r of e) t.push(r) + else t.push(e) + }), + t + ) + })) + }, + 89526: (e, t, r) => { + 'use strict' + var n = r(18390).Buffer + ;(Object.defineProperty(t, '__esModule', { value: !0 }), + (t.isValidClassicAddress = + t.decodeAccountPublic = + t.encodeAccountPublic = + t.encodeNodePublic = + t.decodeNodePublic = + t.decodeAddress = + t.decodeAccountID = + t.encodeAddress = + t.encodeAccountID = + t.decodeSeed = + t.encodeSeed = + t.codec = + void 0)) + const i = r(90638), + o = r(50637), + a = r(93259), + s = [1, 225, 75], + u = { sha256: (e) => o('sha256').update(n.from(e)).digest(), alphabet: 'rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz' }, + c = new (class { + constructor(e) { + ;((this._sha256 = e.sha256), (this._alphabet = e.alphabet), (this._codec = i(this._alphabet))) + } + encode(e, t) { + const r = t.versions + return this._encodeVersioned(e, r, t.expectedLength) + } + decode(e, t) { + var r + const n = t.versions, + i = t.versionTypes, + o = this.decodeChecked(e) + if (n.length > 1 && !t.expectedLength) throw new Error('expectedLength is required because there are >= 2 possible versions') + const s = 'number' == typeof n[0] ? 1 : n[0].length, + u = null !== (r = t.expectedLength) && void 0 !== r ? r : o.length - s, + c = o.slice(0, -u), + f = o.slice(-u) + for (let e = 0; e < n.length; e++) { + const t = Array.isArray(n[e]) ? n[e] : [n[e]] + if ((0, a.seqEqual)(c, t)) return { version: t, bytes: f, type: i ? i[e] : null } + } + throw new Error('version_invalid: version bytes do not match any of the provided version(s)') + } + encodeChecked(e) { + const t = this._sha256(this._sha256(e)).slice(0, 4) + return this._encodeRaw(n.from((0, a.concatArgs)(e, t))) + } + decodeChecked(e) { + const t = this._decodeRaw(e) + if (t.length < 5) throw new Error('invalid_input_size: decoded data must have length >= 5') + if (!this._verifyCheckSum(t)) throw new Error('checksum_invalid') + return t.slice(0, -4) + } + _encodeVersioned(e, t, r) { + if (r && e.length !== r) + throw new Error('unexpected_payload_length: bytes.length does not match expectedLength. Ensure that the bytes are a Buffer.') + return this.encodeChecked(n.from((0, a.concatArgs)(t, e))) + } + _encodeRaw(e) { + return this._codec.encode(e) + } + _decodeRaw(e) { + return this._codec.decode(e) + } + _verifyCheckSum(e) { + const t = this._sha256(this._sha256(e.slice(0, -4))).slice(0, 4), + r = e.slice(-4) + return (0, a.seqEqual)(t, r) + } + })(u) + function f(e) { + const t = { versions: [0], expectedLength: 20 } + return c.encode(e, t) + } + function l(e) { + const t = { versions: [0], expectedLength: 20 } + return c.decode(e, t).bytes + } + ;((t.codec = c), + (t.encodeSeed = function (e, t) { + if (16 !== e.length) throw new Error('entropy must have length 16') + const r = { expectedLength: 16, versions: 'ed25519' === t ? s : [33] } + return c.encode(e, r) + }), + (t.decodeSeed = function (e, t = { versionTypes: ['ed25519', 'secp256k1'], versions: [s, 33], expectedLength: 16 }) { + return c.decode(e, t) + }), + (t.encodeAccountID = f), + (t.encodeAddress = f), + (t.decodeAccountID = l), + (t.decodeAddress = l), + (t.decodeNodePublic = function (e) { + return c.decode(e, { versions: [28], expectedLength: 33 }).bytes + }), + (t.encodeNodePublic = function (e) { + return c.encode(e, { versions: [28], expectedLength: 33 }) + }), + (t.encodeAccountPublic = function (e) { + return c.encode(e, { versions: [35], expectedLength: 33 }) + }), + (t.decodeAccountPublic = function (e) { + return c.decode(e, { versions: [35], expectedLength: 33 }).bytes + }), + (t.isValidClassicAddress = function (e) { + try { + l(e) + } catch (e) { + return !1 + } + return !0 + })) + }, + 85388: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), + (t.transactionID = + t.sha512Half = + t.binaryToJSON = + t.signingClaimData = + t.signingData = + t.multiSigningData = + t.readJSON = + t.serializeObject = + t.makeParser = + t.BytesList = + t.BinarySerializer = + t.BinaryParser = + void 0)) + const n = r(27601), + i = r(60844) + Object.defineProperty(t, 'BinaryParser', { + enumerable: !0, + get: function () { + return i.BinaryParser + }, + }) + const o = r(46091), + a = r(42510) + ;(Object.defineProperty(t, 'BinarySerializer', { + enumerable: !0, + get: function () { + return a.BinarySerializer + }, + }), + Object.defineProperty(t, 'BytesList', { + enumerable: !0, + get: function () { + return a.BytesList + }, + })) + const s = r(72747) + ;(Object.defineProperty(t, 'sha512Half', { + enumerable: !0, + get: function () { + return s.sha512Half + }, + }), + Object.defineProperty(t, 'transactionID', { + enumerable: !0, + get: function () { + return s.transactionID + }, + })) + const u = r(12933), + c = r(32548), + f = (e, t) => new i.BinaryParser(e, t) + t.makeParser = f + const l = (e, t = u.DEFAULT_DEFINITIONS) => e.readType(n.coreTypes.STObject).toJSON(t) + function d(e, t = {}) { + const { prefix: r, suffix: i, signingFieldsOnly: o = !1, definitions: s } = t, + u = new a.BytesList() + r && u.put(r) + const c = o ? (e) => e.isSigningField : void 0 + return (n.coreTypes.STObject.from(e, c, s).toBytesSink(u), i && u.put(i), u.toBytes()) + } + ;((t.readJSON = l), + (t.binaryToJSON = (e, t) => l(f(e, t), t)), + (t.serializeObject = d), + (t.signingData = function (e, t = o.HashPrefix.transactionSig, r = {}) { + return d(e, { prefix: t, signingFieldsOnly: !0, definitions: r.definitions }) + }), + (t.signingClaimData = function (e) { + const t = c(String(e.amount)), + r = o.HashPrefix.paymentChannelClaim, + i = n.coreTypes.Hash256.from(e.channel).toBytes(), + s = n.coreTypes.UInt64.from(t).toBytes(), + u = new a.BytesList() + return (u.put(r), u.put(i), u.put(s), u.toBytes()) + }), + (t.multiSigningData = function (e, t, r = { definitions: u.DEFAULT_DEFINITIONS }) { + return d(e, { + prefix: o.HashPrefix.transactionMultiSig, + suffix: n.coreTypes.AccountID.from(t).toBytes(), + signingFieldsOnly: !0, + definitions: r.definitions, + }) + })) + }, + 50591: function (e, t, r) { + 'use strict' + var n = + (this && this.__createBinding) || + (Object.create + ? function (e, t, r, n) { + void 0 === n && (n = r) + var i = Object.getOwnPropertyDescriptor(t, r) + ;((i && !('get' in i ? !t.__esModule : i.writable || i.configurable)) || + (i = { + enumerable: !0, + get: function () { + return t[r] + }, + }), + Object.defineProperty(e, n, i)) + } + : function (e, t, r, n) { + ;(void 0 === n && (n = r), (e[n] = t[r])) + }), + i = + (this && this.__setModuleDefault) || + (Object.create + ? function (e, t) { + Object.defineProperty(e, 'default', { enumerable: !0, value: t }) + } + : function (e, t) { + e.default = t + }), + o = + (this && this.__importStar) || + function (e) { + if (e && e.__esModule) return e + var t = {} + if (null != e) for (var r in e) 'default' !== r && Object.prototype.hasOwnProperty.call(e, r) && n(t, e, r) + return (i(t, e), t) + } + ;(Object.defineProperty(t, '__esModule', { value: !0 }), + (t.types = + t.ShaMap = + t.HashPrefix = + t.quality = + t.TransactionResult = + t.Type = + t.LedgerEntryType = + t.TransactionType = + t.Field = + t.DEFAULT_DEFINITIONS = + t.ledgerHashes = + t.binary = + t.hashes = + void 0)) + const a = r(12933) + ;(Object.defineProperty(t, 'DEFAULT_DEFINITIONS', { + enumerable: !0, + get: function () { + return a.DEFAULT_DEFINITIONS + }, + }), + Object.defineProperty(t, 'Field', { + enumerable: !0, + get: function () { + return a.Field + }, + }), + Object.defineProperty(t, 'TransactionType', { + enumerable: !0, + get: function () { + return a.TransactionType + }, + }), + Object.defineProperty(t, 'LedgerEntryType', { + enumerable: !0, + get: function () { + return a.LedgerEntryType + }, + }), + Object.defineProperty(t, 'Type', { + enumerable: !0, + get: function () { + return a.Type + }, + }), + Object.defineProperty(t, 'TransactionResult', { + enumerable: !0, + get: function () { + return a.TransactionResult + }, + })) + const s = o(r(27601)) + t.types = s + const u = o(r(85388)) + t.binary = u + const c = r(11957) + Object.defineProperty(t, 'ShaMap', { + enumerable: !0, + get: function () { + return c.ShaMap + }, + }) + const f = o(r(62939)) + t.ledgerHashes = f + const l = o(r(72747)) + t.hashes = l + const d = r(83350) + Object.defineProperty(t, 'quality', { + enumerable: !0, + get: function () { + return d.quality + }, + }) + const h = r(46091) + Object.defineProperty(t, 'HashPrefix', { + enumerable: !0, + get: function () { + return h.HashPrefix + }, + }) + }, + 71027: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.BytesLookup = t.Bytes = void 0)) + const n = r(18390) + class i { + constructor(e, t, r) { + ;((this.name = e), (this.ordinal = t), (this.ordinalWidth = r), (this.bytes = n.Buffer.alloc(r))) + for (let e = 0; e < r; e++) this.bytes[r - e - 1] = (t >>> (8 * e)) & 255 + } + toJSON() { + return this.name + } + toBytesSink(e) { + e.put(this.bytes) + } + toBytes() { + return this.bytes + } + } + ;((t.Bytes = i), + (t.BytesLookup = class { + constructor(e, t) { + ;((this.ordinalWidth = t), + Object.entries(e).forEach(([e, t]) => { + this.add(e, t) + })) + } + add(e, t) { + if (this[e]) + throw new SyntaxError( + `Attempted to add a value with a duplicate name "${e}". This is not allowed because it is unclear how to decode.`, + ) + if (this[t.toString()]) + throw new SyntaxError( + `Attempted to add a duplicate value under a different name (Given name: "${e}" and previous name: "${this[t.toString()]}. This is not allowed because it is unclear how to decode.\nGiven value: ${t.toString()}`, + ) + ;((this[e] = new i(e, t, this.ordinalWidth)), (this[t.toString()] = this[e])) + } + from(e) { + return e instanceof i ? e : this[e] + } + fromParser(e) { + return this.from(e.readUIntN(this.ordinalWidth).toString()) + } + })) + }, + 53938: (e, t) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), + (t.TRANSACTION_RESULT_WIDTH = t.TRANSACTION_TYPE_WIDTH = t.LEDGER_ENTRY_WIDTH = t.TYPE_WIDTH = void 0), + (t.TYPE_WIDTH = 2), + (t.LEDGER_ENTRY_WIDTH = 2), + (t.TRANSACTION_TYPE_WIDTH = 2), + (t.TRANSACTION_RESULT_WIDTH = 1)) + }, + 52836: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.FieldLookup = void 0)) + const n = r(71027), + i = r(43859), + o = r(53938), + a = r(18390) + t.FieldLookup = class { + constructor(e, t) { + e.forEach(([e, r]) => { + const s = t[r.type] + ;((this[e] = (function ([e, t], r) { + const s = (function (e, t) { + const r = [] + return (e < 16 ? (t < 16 ? r.push((e << 4) | t) : r.push(e << 4, t)) : t < 16 ? r.push(t, e) : r.push(0, e, t), a.Buffer.from(r)) + })(r, t.nth) + return { + name: e, + nth: t.nth, + isVariableLengthEncoded: t.isVLEncoded, + isSerialized: t.isSerialized, + isSigningField: t.isSigningField, + ordinal: (r << 16) | t.nth, + type: new n.Bytes(t.type, r, o.TYPE_WIDTH), + header: s, + associatedType: i.SerializedType, + } + })([e, r], s)), + (this[this[e].ordinal.toString()] = this[e])) + }) + } + fromString(e) { + return this[e] + } + } + }, + 12933: function (e, t, r) { + 'use strict' + var n = + (this && this.__createBinding) || + (Object.create + ? function (e, t, r, n) { + void 0 === n && (n = r) + var i = Object.getOwnPropertyDescriptor(t, r) + ;((i && !('get' in i ? !t.__esModule : i.writable || i.configurable)) || + (i = { + enumerable: !0, + get: function () { + return t[r] + }, + }), + Object.defineProperty(e, n, i)) + } + : function (e, t, r, n) { + ;(void 0 === n && (n = r), (e[n] = t[r])) + }), + i = + (this && this.__setModuleDefault) || + (Object.create + ? function (e, t) { + Object.defineProperty(e, 'default', { enumerable: !0, value: t }) + } + : function (e, t) { + e.default = t + }), + o = + (this && this.__importStar) || + function (e) { + if (e && e.__esModule) return e + var t = {} + if (null != e) for (var r in e) 'default' !== r && Object.prototype.hasOwnProperty.call(e, r) && n(t, e, r) + return (i(t, e), t) + } + ;(Object.defineProperty(t, '__esModule', { value: !0 }), + (t.TRANSACTION_TYPES = + t.TransactionType = + t.TransactionResult = + t.LedgerEntryType = + t.Type = + t.Field = + t.DEFAULT_DEFINITIONS = + t.XrplDefinitionsBase = + t.Bytes = + void 0)) + const a = o(r(49792)), + s = r(11670) + ;(Object.defineProperty(t, 'XrplDefinitionsBase', { + enumerable: !0, + get: function () { + return s.XrplDefinitionsBase + }, + }), + Object.defineProperty(t, 'Bytes', { + enumerable: !0, + get: function () { + return s.Bytes + }, + })) + const u = new s.XrplDefinitionsBase(a, {}) + t.DEFAULT_DEFINITIONS = u + const c = u.type + t.Type = c + const f = u.ledgerEntryType + t.LedgerEntryType = f + const l = u.transactionType + t.TransactionType = l + const d = u.transactionResult + t.TransactionResult = d + const h = u.field + t.Field = h + const p = u.transactionNames + t.TRANSACTION_TYPES = p + }, + 11670: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.BytesLookup = t.Bytes = t.FieldLookup = t.XrplDefinitionsBase = void 0)) + const n = r(71027) + ;(Object.defineProperty(t, 'Bytes', { + enumerable: !0, + get: function () { + return n.Bytes + }, + }), + Object.defineProperty(t, 'BytesLookup', { + enumerable: !0, + get: function () { + return n.BytesLookup + }, + })) + const i = r(52836) + Object.defineProperty(t, 'FieldLookup', { + enumerable: !0, + get: function () { + return i.FieldLookup + }, + }) + const o = r(53938) + t.XrplDefinitionsBase = class { + constructor(e, t) { + ;((this.type = new n.BytesLookup(e.TYPES, o.TYPE_WIDTH)), + (this.ledgerEntryType = new n.BytesLookup(e.LEDGER_ENTRY_TYPES, o.LEDGER_ENTRY_WIDTH)), + (this.transactionType = new n.BytesLookup(e.TRANSACTION_TYPES, o.TRANSACTION_TYPE_WIDTH)), + (this.transactionResult = new n.BytesLookup(e.TRANSACTION_RESULTS, o.TRANSACTION_RESULT_WIDTH)), + (this.field = new i.FieldLookup(e.FIELDS, e.TYPES)), + (this.transactionNames = Object.entries(e.TRANSACTION_TYPES) + .filter(([e, t]) => t >= 0) + .map(([e, t]) => e)), + (this.dataTypes = {}), + this.associateTypes(t)) + } + associateTypes(e) { + ;((this.dataTypes = Object.assign({}, this.dataTypes, e)), + Object.values(this.field).forEach((e) => { + e.associatedType = this.dataTypes[e.type.name] + }), + (this.field.TransactionType.associatedType = this.transactionType), + (this.field.TransactionResult.associatedType = this.transactionResult), + (this.field.LedgerEntryType.associatedType = this.ledgerEntryType)) + } + getAssociatedTypes() { + return this.dataTypes + } + } + }, + 72620: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.XrplDefinitions = void 0)) + const n = r(11670), + i = r(27601) + class o extends n.XrplDefinitionsBase { + constructor(e, t) { + super(e, Object.assign({}, i.coreTypes, t)) + } + } + t.XrplDefinitions = o + }, + 46091: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.HashPrefix = void 0)) + const n = r(18390) + function i(e) { + const t = n.Buffer.alloc(4) + return (t.writeUInt32BE(e, 0), t) + } + const o = { + transactionID: i(1415073280), + transaction: i(1397638144), + accountStateEntry: i(1296846336), + innerNode: i(1296649728), + ledgerHeader: i(1280791040), + transactionSig: i(1398036480), + transactionMultiSig: i(1397576704), + validation: i(1447119872), + proposal: i(1347571712), + paymentChannelClaim: i(1129073920), + } + t.HashPrefix = o + }, + 72747: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.transactionID = t.sha512Half = t.Sha512Half = void 0)) + const n = r(46091), + i = r(50637), + o = r(28467), + a = r(42510), + s = r(18390) + class u extends a.BytesList { + constructor() { + ;(super(...arguments), (this.hash = i('sha512'))) + } + static put(e) { + return new u().put(e) + } + put(e) { + return (this.hash.update(e), this) + } + finish256() { + return s.Buffer.from(this.hash.digest().slice(0, 32)) + } + finish() { + return new o.Hash256(this.finish256()) + } + } + function c(...e) { + const t = new u() + return (e.forEach((e) => t.put(e)), t.finish256()) + } + ;((t.Sha512Half = u), + (t.sha512Half = c), + (t.transactionID = function (e) { + return new o.Hash256(c(n.HashPrefix.transactionID, e)) + })) + }, + 79056: function (e, t, r) { + 'use strict' + var n = + (this && this.__createBinding) || + (Object.create + ? function (e, t, r, n) { + void 0 === n && (n = r) + var i = Object.getOwnPropertyDescriptor(t, r) + ;((i && !('get' in i ? !t.__esModule : i.writable || i.configurable)) || + (i = { + enumerable: !0, + get: function () { + return t[r] + }, + }), + Object.defineProperty(e, n, i)) + } + : function (e, t, r, n) { + ;(void 0 === n && (n = r), (e[n] = t[r])) + }), + i = + (this && this.__setModuleDefault) || + (Object.create + ? function (e, t) { + Object.defineProperty(e, 'default', { enumerable: !0, value: t }) + } + : function (e, t) { + e.default = t + }), + o = + (this && this.__importStar) || + function (e) { + if (e && e.__esModule) return e + var t = {} + if (null != e) for (var r in e) 'default' !== r && Object.prototype.hasOwnProperty.call(e, r) && n(t, e, r) + return (i(t, e), t) + } + ;(Object.defineProperty(t, '__esModule', { value: !0 }), + (t.coreTypes = + t.DEFAULT_DEFINITIONS = + t.XrplDefinitionsBase = + t.XrplDefinitions = + t.TRANSACTION_TYPES = + t.decodeLedgerData = + t.decodeQuality = + t.encodeQuality = + t.encodeForMultisigning = + t.encodeForSigningClaim = + t.encodeForSigning = + t.encode = + t.decode = + void 0)) + const a = o(r(32037)), + s = r(50591), + u = r(62939) + Object.defineProperty(t, 'decodeLedgerData', { + enumerable: !0, + get: function () { + return u.decodeLedgerData + }, + }) + const c = r(12933) + ;(Object.defineProperty(t, 'XrplDefinitionsBase', { + enumerable: !0, + get: function () { + return c.XrplDefinitionsBase + }, + }), + Object.defineProperty(t, 'TRANSACTION_TYPES', { + enumerable: !0, + get: function () { + return c.TRANSACTION_TYPES + }, + }), + Object.defineProperty(t, 'DEFAULT_DEFINITIONS', { + enumerable: !0, + get: function () { + return c.DEFAULT_DEFINITIONS + }, + })) + const f = r(72620) + Object.defineProperty(t, 'XrplDefinitions', { + enumerable: !0, + get: function () { + return f.XrplDefinitions + }, + }) + const l = r(27601) + Object.defineProperty(t, 'coreTypes', { + enumerable: !0, + get: function () { + return l.coreTypes + }, + }) + const { signingData: d, signingClaimData: h, multiSigningData: p, binaryToJSON: y, serializeObject: g } = s.binary + ;((t.decode = function (e, t) { + return (a.ok('string' == typeof e, 'binary must be a hex string'), y(e, t)) + }), + (t.encode = function (e, t) { + return (a.ok('object' == typeof e), g(e, { definitions: t }).toString('hex').toUpperCase()) + }), + (t.encodeForSigning = function (e, t) { + return (a.ok('object' == typeof e), d(e, s.HashPrefix.transactionSig, { definitions: t }).toString('hex').toUpperCase()) + }), + (t.encodeForSigningClaim = function (e) { + return (a.ok('object' == typeof e), h(e).toString('hex').toUpperCase()) + }), + (t.encodeForMultisigning = function (e, t, r) { + return ( + a.ok('object' == typeof e), + a.equal(e.SigningPubKey, ''), + p(e, t, r ? { definitions: r } : void 0) + .toString('hex') + .toUpperCase() + ) + }), + (t.encodeQuality = function (e) { + return (a.ok('string' == typeof e), s.quality.encode(e).toString('hex').toUpperCase()) + }), + (t.decodeQuality = function (e) { + return (a.ok('string' == typeof e), s.quality.decode(e).toString()) + })) + }, + 62939: function (e, t, r) { + 'use strict' + var n = + (this && this.__createBinding) || + (Object.create + ? function (e, t, r, n) { + void 0 === n && (n = r) + var i = Object.getOwnPropertyDescriptor(t, r) + ;((i && !('get' in i ? !t.__esModule : i.writable || i.configurable)) || + (i = { + enumerable: !0, + get: function () { + return t[r] + }, + }), + Object.defineProperty(e, n, i)) + } + : function (e, t, r, n) { + ;(void 0 === n && (n = r), (e[n] = t[r])) + }), + i = + (this && this.__setModuleDefault) || + (Object.create + ? function (e, t) { + Object.defineProperty(e, 'default', { enumerable: !0, value: t }) + } + : function (e, t) { + e.default = t + }), + o = + (this && this.__importStar) || + function (e) { + if (e && e.__esModule) return e + var t = {} + if (null != e) for (var r in e) 'default' !== r && Object.prototype.hasOwnProperty.call(e, r) && n(t, e, r) + return (i(t, e), t) + } + ;(Object.defineProperty(t, '__esModule', { value: !0 }), + (t.decodeLedgerData = t.ledgerHash = t.transactionTreeHash = t.accountStateHash = void 0)) + const a = o(r(32037)), + s = r(11957), + u = r(46091), + c = r(72747), + f = r(85388), + l = r(28467), + d = r(4477), + h = r(80897), + p = r(64775), + y = r(87246), + g = r(60844), + b = r(32548) + function m(e, t) { + const r = new s.ShaMap() + return (t.forEach((t) => r.addItem(...e(t))), r.hash()) + } + function v(e) { + return ( + a.ok(e.hash), + [ + l.Hash256.from(e.hash), + { + hashPrefix: () => u.HashPrefix.transaction, + toBytesSink(t) { + const r = new f.BinarySerializer(t) + ;(r.writeLengthEncoded(d.STObject.from(e)), r.writeLengthEncoded(d.STObject.from(e.metaData))) + }, + }, + void 0, + ] + ) + } + function w(e) { + const t = l.Hash256.from(e.index), + r = (0, f.serializeObject)(e) + return [ + t, + { + hashPrefix: () => u.HashPrefix.accountStateEntry, + toBytesSink(e) { + e.put(r) + }, + }, + void 0, + ] + } + ;((t.transactionTreeHash = function (e) { + return m(v, e) + }), + (t.accountStateHash = function (e) { + return m(w, e) + }), + (t.ledgerHash = function (e) { + const t = new c.Sha512Half() + return ( + t.put(u.HashPrefix.ledgerHeader), + a.ok(void 0 !== e.parent_close_time), + a.ok(void 0 !== e.close_flags), + p.UInt32.from(e.ledger_index).toBytesSink(t), + h.UInt64.from(b(String(e.total_coins))).toBytesSink(t), + l.Hash256.from(e.parent_hash).toBytesSink(t), + l.Hash256.from(e.transaction_hash).toBytesSink(t), + l.Hash256.from(e.account_hash).toBytesSink(t), + p.UInt32.from(e.parent_close_time).toBytesSink(t), + p.UInt32.from(e.close_time).toBytesSink(t), + y.UInt8.from(e.close_time_resolution).toBytesSink(t), + y.UInt8.from(e.close_flags).toBytesSink(t), + t.finish() + ) + }), + (t.decodeLedgerData = function (e, t) { + a.ok('string' == typeof e, 'binary must be a hex string') + const r = new g.BinaryParser(e, t) + return { + ledger_index: r.readUInt32(), + total_coins: r.readType(h.UInt64).valueOf().toString(), + parent_hash: r.readType(l.Hash256).toHex(), + transaction_hash: r.readType(l.Hash256).toHex(), + account_hash: r.readType(l.Hash256).toHex(), + parent_close_time: r.readUInt32(), + close_time: r.readUInt32(), + close_time_resolution: r.readUInt8(), + close_flags: r.readUInt8(), + } + })) + }, + 83350: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.quality = void 0)) + const n = r(27601), + i = r(16856), + o = r(32548), + a = r(18390) + t.quality = class { + static encode(e) { + const t = new i.Decimal(e), + r = t.e - 15, + a = t + .times('1e' + -r) + .abs() + .toString(), + s = n.coreTypes.UInt64.from(o(a)).toBytes() + return ((s[0] = r + 100), s) + } + static decode(e) { + const t = a.Buffer.from(e, 'hex').slice(-8), + r = t[0] - 100 + return new i.Decimal(`0x${t.slice(1).toString('hex')}`).times(`1e${r}`) + } + } + }, + 60844: function (e, t, r) { + 'use strict' + var n = + (this && this.__createBinding) || + (Object.create + ? function (e, t, r, n) { + void 0 === n && (n = r) + var i = Object.getOwnPropertyDescriptor(t, r) + ;((i && !('get' in i ? !t.__esModule : i.writable || i.configurable)) || + (i = { + enumerable: !0, + get: function () { + return t[r] + }, + }), + Object.defineProperty(e, n, i)) + } + : function (e, t, r, n) { + ;(void 0 === n && (n = r), (e[n] = t[r])) + }), + i = + (this && this.__setModuleDefault) || + (Object.create + ? function (e, t) { + Object.defineProperty(e, 'default', { enumerable: !0, value: t }) + } + : function (e, t) { + e.default = t + }), + o = + (this && this.__importStar) || + function (e) { + if (e && e.__esModule) return e + var t = {} + if (null != e) for (var r in e) 'default' !== r && Object.prototype.hasOwnProperty.call(e, r) && n(t, e, r) + return (i(t, e), t) + } + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.BinaryParser = void 0)) + const a = o(r(32037)), + s = r(12933), + u = r(18390) + t.BinaryParser = class { + constructor(e, t = s.DEFAULT_DEFINITIONS) { + ;((this.bytes = u.Buffer.from(e, 'hex')), (this.definitions = t)) + } + peek() { + return (a.ok(0 !== this.bytes.byteLength), this.bytes[0]) + } + skip(e) { + ;(a.ok(e <= this.bytes.byteLength), (this.bytes = this.bytes.slice(e))) + } + read(e) { + a.ok(e <= this.bytes.byteLength) + const t = this.bytes.slice(0, e) + return (this.skip(e), t) + } + readUIntN(e) { + return (a.ok(0 < e && e <= 4, 'invalid n'), this.read(e).reduce((e, t) => (e << 8) | t) >>> 0) + } + readUInt8() { + return this.readUIntN(1) + } + readUInt16() { + return this.readUIntN(2) + } + readUInt32() { + return this.readUIntN(4) + } + size() { + return this.bytes.byteLength + } + end(e) { + const t = this.bytes.byteLength + return 0 === t || (void 0 !== e && t <= e) + } + readVariableLength() { + return this.read(this.readVariableLengthLength()) + } + readVariableLengthLength() { + const e = this.readUInt8() + if (e <= 192) return e + if (e <= 240) return 193 + 256 * (e - 193) + this.readUInt8() + if (e <= 254) return 12481 + 65536 * (e - 241) + 256 * this.readUInt8() + this.readUInt8() + throw new Error('Invalid variable length indicator') + } + readFieldOrdinal() { + let e = this.readUInt8(), + t = 15 & e + if (((e >>= 4), 0 === e && ((e = this.readUInt8()), 0 === e || e < 16))) + throw new Error('Cannot read FieldOrdinal, type_code out of range') + if (0 === t && ((t = this.readUInt8()), 0 === t || t < 16)) throw new Error('Cannot read FieldOrdinal, field_code out of range') + return (e << 16) | t + } + readField() { + return this.definitions.field.fromString(this.readFieldOrdinal().toString()) + } + readType(e) { + return e.fromParser(this) + } + typeForField(e) { + return e.associatedType + } + readFieldValue(e) { + const t = this.typeForField(e) + if (!t) throw new Error(`unsupported: (${e.name}, ${e.type.name})`) + const r = e.isVariableLengthEncoded ? this.readVariableLengthLength() : void 0, + n = t.fromParser(this, r) + if (void 0 === n) throw new Error(`fromParser for (${e.name}, ${e.type.name}) -> undefined `) + return n + } + readFieldAndValue() { + const e = this.readField() + return [e, this.readFieldValue(e)] + } + } + }, + 42510: function (e, t, r) { + 'use strict' + var n = + (this && this.__createBinding) || + (Object.create + ? function (e, t, r, n) { + void 0 === n && (n = r) + var i = Object.getOwnPropertyDescriptor(t, r) + ;((i && !('get' in i ? !t.__esModule : i.writable || i.configurable)) || + (i = { + enumerable: !0, + get: function () { + return t[r] + }, + }), + Object.defineProperty(e, n, i)) + } + : function (e, t, r, n) { + ;(void 0 === n && (n = r), (e[n] = t[r])) + }), + i = + (this && this.__setModuleDefault) || + (Object.create + ? function (e, t) { + Object.defineProperty(e, 'default', { enumerable: !0, value: t }) + } + : function (e, t) { + e.default = t + }), + o = + (this && this.__importStar) || + function (e) { + if (e && e.__esModule) return e + var t = {} + if (null != e) for (var r in e) 'default' !== r && Object.prototype.hasOwnProperty.call(e, r) && n(t, e, r) + return (i(t, e), t) + } + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.BinarySerializer = t.BytesList = void 0)) + const a = o(r(32037)), + s = r(18390) + class u { + constructor() { + this.bytesArray = [] + } + getLength() { + return s.Buffer.concat(this.bytesArray).byteLength + } + put(e) { + const t = s.Buffer.from(e) + return (this.bytesArray.push(t), this) + } + toBytesSink(e) { + e.put(this.toBytes()) + } + toBytes() { + return s.Buffer.concat(this.bytesArray) + } + toHex() { + return this.toBytes().toString('hex').toUpperCase() + } + } + ;((t.BytesList = u), + (t.BinarySerializer = class { + constructor(e) { + ;((this.sink = new u()), (this.sink = e)) + } + write(e) { + e.toBytesSink(this.sink) + } + put(e) { + this.sink.put(e) + } + writeType(e, t) { + this.write(e.from(t)) + } + writeBytesList(e) { + e.toBytesSink(this.sink) + } + encodeVariableLength(e) { + const t = s.Buffer.alloc(3) + if (e <= 192) return ((t[0] = e), t.slice(0, 1)) + if (e <= 12480) return ((e -= 193), (t[0] = 193 + (e >>> 8)), (t[1] = 255 & e), t.slice(0, 2)) + if (e <= 918744) return ((e -= 12481), (t[0] = 241 + (e >>> 16)), (t[1] = (e >> 8) & 255), (t[2] = 255 & e), t.slice(0, 3)) + throw new Error('Overflow error') + } + writeFieldAndValue(e, t, r = !1) { + const n = e.associatedType.from(t) + ;(a.ok(void 0 !== n.toBytesSink), + a.ok(void 0 !== e.name), + this.sink.put(e.header), + e.isVariableLengthEncoded ? this.writeLengthEncoded(n, r) : n.toBytesSink(this.sink)) + } + writeLengthEncoded(e, t = !1) { + const r = new u() + ;(t || e.toBytesSink(r), this.put(this.encodeVariableLength(r.getLength())), this.writeBytesList(r)) + } + })) + }, + 11957: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.ShaMapLeaf = t.ShaMapNode = t.ShaMap = void 0)) + const n = r(32037), + i = r(27601), + o = r(46091), + a = r(72747), + s = r(18390) + class u {} + t.ShaMapNode = u + class c extends u { + constructor(e, t) { + ;(super(), (this.index = e), (this.item = t)) + } + isLeaf() { + return !0 + } + isInner() { + return !1 + } + hashPrefix() { + return void 0 === this.item ? s.Buffer.alloc(0) : this.item.hashPrefix() + } + hash() { + const e = a.Sha512Half.put(this.hashPrefix()) + return (this.toBytesSink(e), e.finish()) + } + toBytesSink(e) { + ;(void 0 !== this.item && this.item.toBytesSink(e), this.index.toBytesSink(e)) + } + } + t.ShaMapLeaf = c + class f extends u { + constructor(e = 0) { + ;(super(), (this.depth = e), (this.slotBits = 0), (this.branches = Array(16))) + } + isInner() { + return !0 + } + isLeaf() { + return !1 + } + hashPrefix() { + return o.HashPrefix.innerNode + } + setBranch(e, t) { + ;((this.slotBits = this.slotBits | (1 << e)), (this.branches[e] = t)) + } + empty() { + return 0 === this.slotBits + } + hash() { + if (this.empty()) return i.coreTypes.Hash256.ZERO_256 + const e = a.Sha512Half.put(this.hashPrefix()) + return (this.toBytesSink(e), e.finish()) + } + toBytesSink(e) { + for (let t = 0; t < this.branches.length; t++) { + const r = this.branches[t] + ;(r ? r.hash() : i.coreTypes.Hash256.ZERO_256).toBytesSink(e) + } + } + addItem(e, t, r) { + if ((n.strict.ok(void 0 !== e), void 0 !== e)) { + const n = e.nibblet(this.depth), + i = this.branches[n] + if (void 0 === i) this.setBranch(n, r || new c(e, t)) + else if (i instanceof c) { + const o = new f(this.depth + 1) + ;(o.addItem(i.index, void 0, i), o.addItem(e, t, r), this.setBranch(n, o)) + } else { + if (!(i instanceof f)) throw new Error('invalid ShaMap.addItem call') + i.addItem(e, t, r) + } + } + } + } + t.ShaMap = class extends f {} + }, + 34897: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.AccountID = void 0)) + const n = r(79798), + i = r(28357), + o = r(18390), + a = /^[A-F0-9]{40}$/ + class s extends i.Hash160 { + constructor(e) { + super(null != e ? e : s.defaultAccountID.bytes) + } + static from(e) { + if (e instanceof s) return e + if ('string' == typeof e) return '' === e ? new s() : a.test(e) ? new s(o.Buffer.from(e, 'hex')) : this.fromBase58(e) + throw new Error('Cannot construct AccountID from value given') + } + static fromBase58(e) { + if ((0, n.isValidXAddress)(e)) { + const t = (0, n.xAddressToClassicAddress)(e) + if (!1 !== t.tag) throw new Error('Only allowed to have tag on Account or Destination') + e = t.classicAddress + } + return new s(o.Buffer.from((0, n.decodeAccountID)(e))) + } + toJSON() { + return this.toBase58() + } + toBase58() { + return (0, n.encodeAccountID)(this.bytes) + } + } + ;((t.AccountID = s), (s.defaultAccountID = new s(o.Buffer.alloc(20)))) + }, + 78631: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.Amount = void 0)) + const n = r(16856), + i = r(60844), + o = r(34897), + a = r(11861), + s = r(43859), + u = r(32548), + c = r(18390), + f = new n.Decimal('1e17'), + l = new n.Decimal('1e-6'), + d = u(4294967295) + n.Decimal.config({ toExpPos: 96, toExpNeg: -112 }) + class h extends s.SerializedType { + constructor(e) { + super(null != e ? e : h.defaultAmount.bytes) + } + static from(e) { + if (e instanceof h) return e + let t = c.Buffer.alloc(8) + if ('string' == typeof e) { + h.assertXrpIsValid(e) + const r = u(e), + n = [c.Buffer.alloc(4), c.Buffer.alloc(4)] + return ( + n[0].writeUInt32BE(Number(r.shiftRight(32)), 0), + n[1].writeUInt32BE(Number(r.and(d)), 0), + (t = c.Buffer.concat(n)), + (t[0] |= 64), + new h(t) + ) + } + if ( + (function (e) { + const t = Object.keys(e).sort() + return 3 === t.length && 'currency' === t[0] && 'issuer' === t[1] && 'value' === t[2] + })(e) + ) { + const r = new n.Decimal(e.value) + if ((h.assertIouIsValid(r), r.isZero())) t[0] |= 128 + else { + const e = r + .times('1e' + -(r.e - 15)) + .abs() + .toString(), + i = u(e), + o = [c.Buffer.alloc(4), c.Buffer.alloc(4)] + ;(o[0].writeUInt32BE(Number(i.shiftRight(32)), 0), + o[1].writeUInt32BE(Number(i.and(d)), 0), + (t = c.Buffer.concat(o)), + (t[0] |= 128), + r.gt(new n.Decimal(0)) && (t[0] |= 64)) + const a = r.e - 15 + 97 + ;((t[0] |= a >>> 2), (t[1] |= (3 & a) << 6)) + } + const i = a.Currency.from(e.currency).toBytes(), + s = o.AccountID.from(e.issuer).toBytes() + return new h(c.Buffer.concat([t, i, s])) + } + throw new Error('Invalid type to construct an Amount') + } + static fromParser(e) { + const t = 128 & e.peek() ? 48 : 8 + return new h(e.read(t)) + } + toJSON() { + if (this.isNative()) { + const e = this.bytes, + t = 64 & e[0] ? '' : '-' + e[0] &= 63 + const r = u(e.slice(0, 4).readUInt32BE(0)), + n = u(e.slice(4).readUInt32BE(0)) + return `${t}${r.shiftLeft(32).or(n).toString()}` + } + { + const e = new i.BinaryParser(this.toString()), + t = e.read(8), + r = a.Currency.fromParser(e), + s = o.AccountID.fromParser(e), + u = t[0], + c = 64 & u ? '' : '-', + f = ((63 & u) << 2) + ((255 & t[1]) >> 6) - 97 + ;((t[0] = 0), (t[1] &= 63)) + const l = new n.Decimal(`${c}0x${t.toString('hex')}`).times(`1e${f}`) + return (h.assertIouIsValid(l), { value: l.toString(), currency: r.toJSON(), issuer: s.toJSON() }) + } + } + static assertXrpIsValid(e) { + if (-1 !== e.indexOf('.')) throw new Error(`${e.toString()} is an illegal amount`) + const t = new n.Decimal(e) + if (!t.isZero() && (t.lt(l) || t.gt(f))) throw new Error(`${e.toString()} is an illegal amount`) + } + static assertIouIsValid(e) { + if (!e.isZero()) { + const t = e.precision(), + r = e.e - 15 + if (t > 16 || r > 80 || r < -96) throw new Error('Decimal precision out of range') + this.verifyNoDecimal(e) + } + } + static verifyNoDecimal(e) { + if ( + -1 !== + e + .times('1e' + -(e.e - 15)) + .abs() + .toString() + .indexOf('.') + ) + throw new Error('Decimal place found in integerNumberString') + } + isNative() { + return 0 == (128 & this.bytes[0]) + } + } + ;((t.Amount = h), (h.defaultAmount = new h(c.Buffer.from('4000000000000000', 'hex')))) + }, + 72374: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.Blob = void 0)) + const n = r(43859), + i = r(18390) + class o extends n.SerializedType { + constructor(e) { + super(e) + } + static fromParser(e, t) { + return new o(e.read(t)) + } + static from(e) { + if (e instanceof o) return e + if ('string' == typeof e) return new o(i.Buffer.from(e, 'hex')) + throw new Error('Cannot construct Blob from value given') + } + } + t.Blob = o + }, + 11861: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.Currency = void 0)) + const n = r(28357), + i = r(18390), + o = /^0{40}$/, + a = /^[A-Z0-9a-z?!@#$%^&*(){}[\]|]{3}$/, + s = /^[A-F0-9]{40}$/, + u = /^0{24}[\x00-\x7F]{6}0{10}$/ + function c(e) { + if ( + !(function (e) { + return e instanceof i.Buffer + ? 20 === e.byteLength + : (function (e) { + return 3 === e.length || ((t = e), s.test(t)) + var t + })(e) + })(e) + ) + throw new Error(`Unsupported Currency representation: ${e}`) + return 3 === e.length + ? (function (e) { + const t = i.Buffer.alloc(20) + if ('XRP' !== e) { + const r = e.split('').map((e) => e.charCodeAt(0)) + t.set(r, 12) + } + return t + })(e) + : i.Buffer.from(e, 'hex') + } + class f extends n.Hash160 { + constructor(e) { + super(null != e ? e : f.XRP.bytes) + const t = this.bytes.toString('hex') + o.test(t) + ? (this._iso = 'XRP') + : u.test(t) + ? (this._iso = (function (e) { + const t = e.toString() + return 'XRP' === t + ? null + : (function (e) { + return a.test(e) + })(t) + ? t + : null + })(this.bytes.slice(12, 15))) + : (this._iso = null) + } + iso() { + return this._iso + } + static from(e) { + if (e instanceof f) return e + if ('string' == typeof e) return new f(c(e)) + throw new Error('Cannot construct Currency from value given') + } + toJSON() { + const e = this.iso() + return null !== e ? e : this.bytes.toString('hex').toUpperCase() + } + } + ;((t.Currency = f), (f.XRP = new f(i.Buffer.alloc(20)))) + }, + 74084: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.Hash128 = void 0)) + const n = r(48118), + i = r(18390) + class o extends n.Hash { + constructor(e) { + ;(e && 0 === e.byteLength && (e = o.ZERO_128.bytes), super(null != e ? e : o.ZERO_128.bytes)) + } + toHex() { + const e = this.toBytes().toString('hex').toUpperCase() + return /^0+$/.exec(e) ? '' : e + } + } + ;((t.Hash128 = o), (o.width = 16), (o.ZERO_128 = new o(i.Buffer.alloc(o.width)))) + }, + 28357: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.Hash160 = void 0)) + const n = r(48118), + i = r(18390) + class o extends n.Hash { + constructor(e) { + ;(e && 0 === e.byteLength && (e = o.ZERO_160.bytes), super(null != e ? e : o.ZERO_160.bytes)) + } + } + ;((t.Hash160 = o), (o.width = 20), (o.ZERO_160 = new o(i.Buffer.alloc(o.width)))) + }, + 28467: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.Hash256 = void 0)) + const n = r(48118), + i = r(18390) + class o extends n.Hash { + constructor(e) { + super(null != e ? e : o.ZERO_256.bytes) + } + } + ;((t.Hash256 = o), (o.width = 32), (o.ZERO_256 = new o(i.Buffer.alloc(o.width)))) + }, + 48118: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.Hash = void 0)) + const n = r(43859), + i = r(18390) + class o extends n.Comparable { + constructor(e) { + if ((super(e), this.bytes.byteLength !== this.constructor.width)) throw new Error(`Invalid Hash length ${this.bytes.byteLength}`) + } + static from(e) { + if (e instanceof this) return e + if ('string' == typeof e) return new this(i.Buffer.from(e, 'hex')) + throw new Error('Cannot construct Hash from given value') + } + static fromParser(e, t) { + return new this(e.read(null != t ? t : this.width)) + } + compareTo(e) { + return this.bytes.compare(this.constructor.from(e).bytes) + } + toString() { + return this.toHex() + } + nibblet(e) { + const t = e > 0 ? (e / 2) | 0 : 0 + let r = this.bytes[t] + return (e % 2 == 0 ? (r = (240 & r) >>> 4) : (r &= 15), r) + } + } + t.Hash = o + }, + 27601: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), + (t.Vector256 = + t.UInt64 = + t.UInt32 = + t.UInt16 = + t.UInt8 = + t.STObject = + t.STArray = + t.PathSet = + t.Hash256 = + t.Hash160 = + t.Hash128 = + t.Currency = + t.Blob = + t.Amount = + t.AccountID = + t.coreTypes = + void 0)) + const n = r(34897) + Object.defineProperty(t, 'AccountID', { + enumerable: !0, + get: function () { + return n.AccountID + }, + }) + const i = r(78631) + Object.defineProperty(t, 'Amount', { + enumerable: !0, + get: function () { + return i.Amount + }, + }) + const o = r(72374) + Object.defineProperty(t, 'Blob', { + enumerable: !0, + get: function () { + return o.Blob + }, + }) + const a = r(11861) + Object.defineProperty(t, 'Currency', { + enumerable: !0, + get: function () { + return a.Currency + }, + }) + const s = r(74084) + Object.defineProperty(t, 'Hash128', { + enumerable: !0, + get: function () { + return s.Hash128 + }, + }) + const u = r(28357) + Object.defineProperty(t, 'Hash160', { + enumerable: !0, + get: function () { + return u.Hash160 + }, + }) + const c = r(28467) + Object.defineProperty(t, 'Hash256', { + enumerable: !0, + get: function () { + return c.Hash256 + }, + }) + const f = r(81910), + l = r(71380) + Object.defineProperty(t, 'PathSet', { + enumerable: !0, + get: function () { + return l.PathSet + }, + }) + const d = r(93094) + Object.defineProperty(t, 'STArray', { + enumerable: !0, + get: function () { + return d.STArray + }, + }) + const h = r(4477) + Object.defineProperty(t, 'STObject', { + enumerable: !0, + get: function () { + return h.STObject + }, + }) + const p = r(26651) + Object.defineProperty(t, 'UInt16', { + enumerable: !0, + get: function () { + return p.UInt16 + }, + }) + const y = r(64775) + Object.defineProperty(t, 'UInt32', { + enumerable: !0, + get: function () { + return y.UInt32 + }, + }) + const g = r(80897) + Object.defineProperty(t, 'UInt64', { + enumerable: !0, + get: function () { + return g.UInt64 + }, + }) + const b = r(87246) + Object.defineProperty(t, 'UInt8', { + enumerable: !0, + get: function () { + return b.UInt8 + }, + }) + const m = r(38552) + Object.defineProperty(t, 'Vector256', { + enumerable: !0, + get: function () { + return m.Vector256 + }, + }) + const v = r(12933), + w = { + AccountID: n.AccountID, + Amount: i.Amount, + Blob: o.Blob, + Currency: a.Currency, + Hash128: s.Hash128, + Hash160: u.Hash160, + Hash256: c.Hash256, + Issue: f.Issue, + PathSet: l.PathSet, + STArray: d.STArray, + STObject: h.STObject, + UInt8: b.UInt8, + UInt16: p.UInt16, + UInt32: y.UInt32, + UInt64: g.UInt64, + Vector256: m.Vector256, + } + ;((t.coreTypes = w), v.DEFAULT_DEFINITIONS.associateTypes(w)) + }, + 81910: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.Issue = void 0)) + const n = r(60844), + i = r(34897), + o = r(11861), + a = r(43859), + s = r(18390) + class u extends a.SerializedType { + constructor(e) { + super(null != e ? e : u.ZERO_ISSUED_CURRENCY.bytes) + } + static from(e) { + if (e instanceof u) return e + if ( + (function (e) { + const t = Object.keys(e).sort() + return 1 === t.length ? 'currency' === t[0] : 2 === t.length && 'currency' === t[0] && 'issuer' === t[1] + })(e) + ) { + const t = o.Currency.from(e.currency).toBytes() + if (null == e.issuer) return new u(t) + const r = i.AccountID.from(e.issuer).toBytes() + return new u(s.Buffer.concat([t, r])) + } + throw new Error('Invalid type to construct an Amount') + } + static fromParser(e) { + const t = e.read(20) + if ('XRP' === new o.Currency(t).toJSON()) return new u(t) + const r = [t, e.read(20)] + return new u(s.Buffer.concat(r)) + } + toJSON() { + const e = new n.BinaryParser(this.toString()), + t = o.Currency.fromParser(e) + if ('XRP' === t.toJSON()) return { currency: t.toJSON() } + const r = i.AccountID.fromParser(e) + return { currency: t.toJSON(), issuer: r.toJSON() } + } + } + ;((t.Issue = u), (u.ZERO_ISSUED_CURRENCY = new u(s.Buffer.alloc(20)))) + }, + 71380: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.PathSet = void 0)) + const n = r(34897), + i = r(11861), + o = r(60844), + a = r(43859), + s = r(18390) + class u extends a.SerializedType { + static from(e) { + if (e instanceof u) return e + const t = [s.Buffer.from([0])] + return ( + e.account && (t.push(n.AccountID.from(e.account).toBytes()), (t[0][0] |= 1)), + e.currency && (t.push(i.Currency.from(e.currency).toBytes()), (t[0][0] |= 16)), + e.issuer && (t.push(n.AccountID.from(e.issuer).toBytes()), (t[0][0] |= 32)), + new u(s.Buffer.concat(t)) + ) + } + static fromParser(e) { + const t = e.readUInt8(), + r = [s.Buffer.from([t])] + return ( + 1 & t && r.push(e.read(n.AccountID.width)), + 16 & t && r.push(e.read(i.Currency.width)), + 32 & t && r.push(e.read(n.AccountID.width)), + new u(s.Buffer.concat(r)) + ) + } + toJSON() { + const e = new o.BinaryParser(this.bytes.toString('hex')), + t = e.readUInt8() + let r, a, s + ;(1 & t && (r = n.AccountID.fromParser(e).toJSON()), + 16 & t && (a = i.Currency.fromParser(e).toJSON()), + 32 & t && (s = n.AccountID.fromParser(e).toJSON())) + const u = {} + return (r && (u.account = r), s && (u.issuer = s), a && (u.currency = a), u) + } + type() { + return this.bytes[0] + } + } + class c extends a.SerializedType { + static from(e) { + if (e instanceof c) return e + const t = [] + return ( + e.forEach((e) => { + t.push(u.from(e).toBytes()) + }), + new c(s.Buffer.concat(t)) + ) + } + static fromParser(e) { + const t = [] + for (; !e.end() && (t.push(u.fromParser(e).toBytes()), 0 !== e.peek() && 255 !== e.peek()); ); + return new c(s.Buffer.concat(t)) + } + toJSON() { + const e = [], + t = new o.BinaryParser(this.toString()) + for (; !t.end(); ) e.push(u.fromParser(t).toJSON()) + return e + } + } + class f extends a.SerializedType { + static from(e) { + if (e instanceof f) return e + if ( + ((t = e), + (Array.isArray(t) && 0 === t.length) || + (Array.isArray(t) && Array.isArray(t[0]) && 0 === t[0].length) || + (Array.isArray(t) && + Array.isArray(t[0]) && + (function (e) { + return void 0 !== e.issuer || void 0 !== e.account || void 0 !== e.currency + })(t[0][0]))) + ) { + const t = [] + return ( + e.forEach((e) => { + ;(t.push(c.from(e).toBytes()), t.push(s.Buffer.from([255]))) + }), + (t[t.length - 1] = s.Buffer.from([0])), + new f(s.Buffer.concat(t)) + ) + } + var t + throw new Error('Cannot construct PathSet from given value') + } + static fromParser(e) { + const t = [] + for (; !e.end() && (t.push(c.fromParser(e).toBytes()), t.push(e.read(1)), 0 != t[t.length - 1][0]); ); + return new f(s.Buffer.concat(t)) + } + toJSON() { + const e = [], + t = new o.BinaryParser(this.toString()) + for (; !t.end(); ) (e.push(c.fromParser(t).toJSON()), t.skip(1)) + return e + } + } + t.PathSet = f + }, + 43859: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.Comparable = t.SerializedType = void 0)) + const n = r(42510), + i = r(18390) + class o { + constructor(e) { + ;((this.bytes = i.Buffer.alloc(0)), (this.bytes = null != e ? e : i.Buffer.alloc(0))) + } + static fromParser(e, t) { + throw new Error('fromParser not implemented') + } + static from(e) { + throw new Error('from not implemented') + } + toBytesSink(e) { + e.put(this.bytes) + } + toHex() { + return this.toBytes().toString('hex').toUpperCase() + } + toBytes() { + if (this.bytes) return this.bytes + const e = new n.BytesList() + return (this.toBytesSink(e), e.toBytes()) + } + toJSON(e) { + return this.toHex() + } + toString() { + return this.toHex() + } + } + ;((t.SerializedType = o), + (t.Comparable = class extends o { + lt(e) { + return this.compareTo(e) < 0 + } + eq(e) { + return 0 === this.compareTo(e) + } + gt(e) { + return this.compareTo(e) > 0 + } + gte(e) { + return this.compareTo(e) > -1 + } + lte(e) { + return this.compareTo(e) < 1 + } + compareTo(e) { + throw new Error(`cannot compare ${this.toString()} and ${e.toString()}`) + } + })) + }, + 93094: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.STArray = void 0)) + const n = r(12933), + i = r(43859), + o = r(4477), + a = r(60844), + s = r(18390), + u = s.Buffer.from([241]), + c = 'ArrayEndMarker', + f = s.Buffer.from([225]) + class l extends i.SerializedType { + static fromParser(e) { + const t = [] + for (; !e.end(); ) { + const r = e.readField() + if (r.name === c) break + t.push(r.header, e.readFieldValue(r).toBytes(), f) + } + return (t.push(u), new l(s.Buffer.concat(t))) + } + static from(e, t = n.DEFAULT_DEFINITIONS) { + if (e instanceof l) return e + if (((r = e), Array.isArray(r) && (0 === r.length || 'object' == typeof r[0]))) { + const r = [] + return ( + e.forEach((e) => { + r.push(o.STObject.from(e, void 0, t).toBytes()) + }), + r.push(u), + new l(s.Buffer.concat(r)) + ) + } + var r + throw new Error('Cannot construct STArray from value given') + } + toJSON(e = n.DEFAULT_DEFINITIONS) { + const t = [], + r = new a.BinaryParser(this.toString(), e) + for (; !r.end(); ) { + const n = r.readField() + if (n.name === c) break + const i = {} + ;((i[n.name] = o.STObject.fromParser(r).toJSON(e)), t.push(i)) + } + return t + } + } + t.STArray = l + }, + 4477: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.STObject = void 0)) + const n = r(12933), + i = r(43859), + o = r(79798), + a = r(60844), + s = r(42510), + u = r(18390), + c = r(93094), + f = u.Buffer.from([225]), + l = 'ObjectEndMarker', + d = 'STObject', + h = 'SourceTag', + p = 'DestinationTag' + class y extends i.SerializedType { + static fromParser(e) { + const t = new s.BytesList(), + r = new s.BinarySerializer(t) + for (; !e.end(); ) { + const t = e.readField() + if (t.name === l) break + const n = e.readFieldValue(t) + ;(r.writeFieldAndValue(t, n), t.type.name === d && r.put(f)) + } + return new y(t.toBytes()) + } + static from(e, t, r = n.DEFAULT_DEFINITIONS) { + if (e instanceof y) return e + const i = new s.BytesList(), + a = new s.BinarySerializer(i) + let u = !1 + const l = Object.entries(e).reduce((t, [r, n]) => { + let i + return ( + n && + (0, o.isValidXAddress)(n.toString()) && + ((i = (function (e, t) { + const r = (0, o.xAddressToClassicAddress)(t) + let n + if ('Destination' === e) n = p + else if ('Account' === e) n = h + else if (!1 !== r.tag) throw new Error(`${e} cannot have an associated tag`) + return !1 !== r.tag ? { [e]: r.classicAddress, [n]: r.tag } : { [e]: r.classicAddress } + })(r, n.toString())), + (function (e, t) { + if (void 0 !== e[h] && void 0 !== t[h]) throw new Error('Cannot have Account X-Address and SourceTag') + if (void 0 !== e[p] && void 0 !== t[p]) throw new Error('Cannot have Destination X-Address and DestinationTag') + })(i, e)), + Object.assign(t, null != i ? i : { [r]: n }) + ) + }, {}) + let g = Object.keys(l) + .map((e) => r.field[e]) + .filter((e) => void 0 !== e && void 0 !== l[e.name] && e.isSerialized) + .sort((e, t) => e.ordinal - t.ordinal) + return ( + void 0 !== t && (g = g.filter(t)), + g.forEach((e) => { + const t = + e.type.name === d + ? this.from(l[e.name], void 0, r) + : 'STArray' === e.type.name + ? c.STArray.from(l[e.name], r) + : e.associatedType.from(l[e.name]) + if (null == t) throw new TypeError(`Unable to interpret "${e.name}: ${l[e.name]}".`) + 'UNLModify' === t.name && (u = !0) + const n = 'Account' == e.name && u + ;(a.writeFieldAndValue(e, t, n), e.type.name === d && a.put(f)) + }), + new y(i.toBytes()) + ) + } + toJSON(e) { + const t = new a.BinaryParser(this.toString(), e), + r = {} + for (; !t.end(); ) { + const n = t.readField() + if (n.name === l) break + r[n.name] = t.readFieldValue(n).toJSON(e) + } + return r + } + } + t.STObject = y + }, + 26651: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.UInt16 = void 0)) + const n = r(18014), + i = r(18390) + class o extends n.UInt { + constructor(e) { + super(null != e ? e : o.defaultUInt16.bytes) + } + static fromParser(e) { + return new o(e.read(o.width)) + } + static from(e) { + if (e instanceof o) return e + if ('number' == typeof e) { + const t = i.Buffer.alloc(o.width) + return (t.writeUInt16BE(e, 0), new o(t)) + } + throw new Error('Can not construct UInt16 with given value') + } + valueOf() { + return this.bytes.readUInt16BE(0) + } + } + ;((t.UInt16 = o), (o.width = 2), (o.defaultUInt16 = new o(i.Buffer.alloc(o.width)))) + }, + 64775: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.UInt32 = void 0)) + const n = r(18014), + i = r(18390) + class o extends n.UInt { + constructor(e) { + super(null != e ? e : o.defaultUInt32.bytes) + } + static fromParser(e) { + return new o(e.read(o.width)) + } + static from(e) { + if (e instanceof o) return e + const t = i.Buffer.alloc(o.width) + if ('string' == typeof e) { + const r = Number.parseInt(e) + return (t.writeUInt32BE(r, 0), new o(t)) + } + if ('number' == typeof e) return (t.writeUInt32BE(e, 0), new o(t)) + throw new Error('Cannot construct UInt32 from given value') + } + valueOf() { + return this.bytes.readUInt32BE(0) + } + } + ;((t.UInt32 = o), (o.width = 4), (o.defaultUInt32 = new o(i.Buffer.alloc(o.width)))) + }, + 80897: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.UInt64 = void 0)) + const n = r(18014), + i = r(32548), + o = r(32548), + a = r(18390), + s = /^[a-fA-F0-9]{1,16}$/, + u = i(4294967295) + class c extends n.UInt { + constructor(e) { + super(null != e ? e : c.defaultUInt64.bytes) + } + static fromParser(e) { + return new c(e.read(c.width)) + } + static from(e) { + if (e instanceof c) return e + let t = a.Buffer.alloc(c.width) + if ('number' == typeof e) { + if (e < 0) throw new Error('value must be an unsigned integer') + const t = i(e), + r = [a.Buffer.alloc(4), a.Buffer.alloc(4)] + return (r[0].writeUInt32BE(Number(t.shiftRight(32)), 0), r[1].writeUInt32BE(Number(t.and(u)), 0), new c(a.Buffer.concat(r))) + } + if ('string' == typeof e) { + if (!s.test(e)) throw new Error(`${e} is not a valid hex-string`) + const r = e.padStart(16, '0') + return ((t = a.Buffer.from(r, 'hex')), new c(t)) + } + if ((0, o.isInstance)(e)) { + const t = [a.Buffer.alloc(4), a.Buffer.alloc(4)] + return (t[0].writeUInt32BE(Number(e.shiftRight(i(32))), 0), t[1].writeUInt32BE(Number(e.and(u)), 0), new c(a.Buffer.concat(t))) + } + throw new Error('Cannot construct UInt64 from given value') + } + toJSON() { + return this.bytes.toString('hex').toUpperCase() + } + valueOf() { + const e = i(this.bytes.slice(0, 4).readUInt32BE(0)), + t = i(this.bytes.slice(4).readUInt32BE(0)) + return e.shiftLeft(i(32)).or(t) + } + toBytes() { + return this.bytes + } + } + ;((t.UInt64 = c), (c.width = 8), (c.defaultUInt64 = new c(a.Buffer.alloc(c.width)))) + }, + 87246: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.UInt8 = void 0)) + const n = r(18014), + i = r(18390) + class o extends n.UInt { + constructor(e) { + super(null != e ? e : o.defaultUInt8.bytes) + } + static fromParser(e) { + return new o(e.read(o.width)) + } + static from(e) { + if (e instanceof o) return e + if ('number' == typeof e) { + const t = i.Buffer.alloc(o.width) + return (t.writeUInt8(e, 0), new o(t)) + } + throw new Error('Cannot construct UInt8 from given value') + } + valueOf() { + return this.bytes.readUInt8(0) + } + } + ;((t.UInt8 = o), (o.width = 1), (o.defaultUInt8 = new o(i.Buffer.alloc(o.width)))) + }, + 18014: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.UInt = void 0)) + const n = r(43859) + class i extends n.Comparable { + constructor(e) { + super(e) + } + compareTo(e) { + return (t = this.valueOf()) < (r = e.valueOf()) ? -1 : t == r ? 0 : 1 + var t, r + } + toJSON() { + const e = this.valueOf() + return 'number' == typeof e ? e : e.toString() + } + } + t.UInt = i + }, + 38552: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.Vector256 = void 0)) + const n = r(43859), + i = r(28467), + o = r(42510) + class a extends n.SerializedType { + constructor(e) { + super(e) + } + static fromParser(e, t) { + const r = new o.BytesList(), + n = (null != t ? t : e.size()) / 32 + for (let t = 0; t < n; t++) i.Hash256.fromParser(e).toBytesSink(r) + return new a(r.toBytes()) + } + static from(e) { + if (e instanceof a) return e + if (((t = e), Array.isArray(t) && (0 === t.length || 'string' == typeof t[0]))) { + const t = new o.BytesList() + return ( + e.forEach((e) => { + i.Hash256.from(e).toBytesSink(t) + }), + new a(t.toBytes()) + ) + } + var t + throw new Error('Cannot construct Vector256 from given value') + } + toJSON() { + if (this.bytes.byteLength % 32 != 0) throw new Error('Invalid bytes for Vector256') + const e = [] + for (let t = 0; t < this.bytes.byteLength; t += 32) + e.push( + this.bytes + .slice(t, t + 32) + .toString('hex') + .toUpperCase(), + ) + return e + } + } + t.Vector256 = a + }, + 85830: function (e, t, r) { + 'use strict' + var n = + (this && this.__createBinding) || + (Object.create + ? function (e, t, r, n) { + void 0 === n && (n = r) + var i = Object.getOwnPropertyDescriptor(t, r) + ;((i && !('get' in i ? !t.__esModule : i.writable || i.configurable)) || + (i = { + enumerable: !0, + get: function () { + return t[r] + }, + }), + Object.defineProperty(e, n, i)) + } + : function (e, t, r, n) { + ;(void 0 === n && (n = r), (e[n] = t[r])) + }), + i = + (this && this.__setModuleDefault) || + (Object.create + ? function (e, t) { + Object.defineProperty(e, 'default', { enumerable: !0, value: t }) + } + : function (e, t) { + e.default = t + }), + o = + (this && this.__importStar) || + function (e) { + if (e && e.__esModule) return e + var t = {} + if (null != e) for (var r in e) 'default' !== r && Object.prototype.hasOwnProperty.call(e, r) && n(t, e, r) + return (i(t, e), t) + } + Object.defineProperty(t, '__esModule', { value: !0 }) + const a = o(r(58925)), + s = r(69999) + t.default = class { + constructor() { + this.hash = a.sha512() + } + add(e) { + return (this.hash.update(e), this) + } + addU32(e) { + return this.add([(e >>> 24) & 255, (e >>> 16) & 255, (e >>> 8) & 255, 255 & e]) + } + finish() { + return this.hash.digest() + } + first256() { + return this.finish().slice(0, 32) + } + first256BN() { + return new s(this.first256()) + } + } + }, + 43004: function (e, t, r) { + 'use strict' + var n = r(18390).Buffer, + i = + (this && this.__createBinding) || + (Object.create + ? function (e, t, r, n) { + void 0 === n && (n = r) + var i = Object.getOwnPropertyDescriptor(t, r) + ;((i && !('get' in i ? !t.__esModule : i.writable || i.configurable)) || + (i = { + enumerable: !0, + get: function () { + return t[r] + }, + }), + Object.defineProperty(e, n, i)) + } + : function (e, t, r, n) { + ;(void 0 === n && (n = r), (e[n] = t[r])) + }), + o = + (this && this.__setModuleDefault) || + (Object.create + ? function (e, t) { + Object.defineProperty(e, 'default', { enumerable: !0, value: t }) + } + : function (e, t) { + e.default = t + }), + a = + (this && this.__importStar) || + function (e) { + if (e && e.__esModule) return e + var t = {} + if (null != e) for (var r in e) 'default' !== r && Object.prototype.hasOwnProperty.call(e, r) && i(t, e, r) + return (o(t, e), t) + } + ;(Object.defineProperty(t, '__esModule', { value: !0 }), + (t.decodeSeed = t.deriveNodeAddress = t.deriveAddress = t.verify = t.sign = t.deriveKeypair = t.generateSeed = void 0)) + const s = a(r(32037)), + u = r(72486), + c = a(r(58925)), + f = a(r(42870)), + l = a(r(79798)), + d = r(80184), + h = a(r(31434)), + p = f.eddsa('ed25519'), + y = f.ec('secp256k1'), + { hexToBytes: g } = h, + { bytesToHex: b } = h + function m(e) { + return c.sha512().update(e).digest().slice(0, 32) + } + t.generateSeed = function (e = {}) { + s.ok(!e.entropy || e.entropy.length >= 16, 'entropy too short') + const t = e.entropy ? e.entropy.slice(0, 16) : u(16), + r = 'ed25519' === e.algorithm ? 'ed25519' : 'secp256k1' + return l.encodeSeed(n.from(t), r) + } + const v = { + deriveKeypair(e, t) { + const r = '00' + (0, d.derivePrivateKey)(e, t).toString(16, 64).toUpperCase(), + n = b(y.keyFromPrivate(r.slice(2)).getPublic().encodeCompressed()) + return { privateKey: r, publicKey: n } + }, + sign: (e, t) => b(y.sign(m(e), g(t), { canonical: !0 }).toDER()), + verify: (e, t, r) => y.verify(m(e), t, g(r)), + }, + w = { + deriveKeypair(e) { + const t = m(e) + return { privateKey: 'ED' + b(t), publicKey: 'ED' + b(p.keyFromSecret(t).pubBytes()) } + }, + sign: (e, t) => (s.ok(Array.isArray(e), 'message must be array of octets'), b(p.sign(e, g(t).slice(1)).toBytes())), + verify: (e, t, r) => p.verify(e, g(t), g(r).slice(1)), + } + function _(e) { + return { 'ecdsa-secp256k1': v, ed25519: w }[e] + } + function E(e) { + const t = g(e) + return 33 === t.length && 237 === t[0] ? 'ed25519' : 'ecdsa-secp256k1' + } + function S(e) { + return l.encodeAccountID(h.computePublicKeyHash(e)) + } + ;((t.deriveKeypair = function (e, t) { + const r = l.decodeSeed(e), + n = _('ed25519' === r.type ? 'ed25519' : 'ecdsa-secp256k1'), + i = n.deriveKeypair(r.bytes, t), + o = m('This test message should verify.'), + a = n.sign(o, i.privateKey) + if (!0 !== n.verify(o, a, i.publicKey)) throw new Error('derived keypair did not generate verifiable signature') + return i + }), + (t.sign = function (e, t) { + return _(E(t)).sign(g(e), t) + }), + (t.verify = function (e, t, r) { + return _(E(r)).verify(g(e), t, r) + }), + (t.deriveAddress = function (e) { + return S(n.from(g(e))) + }), + (t.deriveNodeAddress = function (e) { + const t = l.decodeNodePublic(e) + return S((0, d.accountPublicFromPublicGenerator)(t)) + })) + const { decodeSeed: A } = l + t.decodeSeed = A + }, + 80184: function (e, t, r) { + 'use strict' + var n = + (this && this.__createBinding) || + (Object.create + ? function (e, t, r, n) { + void 0 === n && (n = r) + var i = Object.getOwnPropertyDescriptor(t, r) + ;((i && !('get' in i ? !t.__esModule : i.writable || i.configurable)) || + (i = { + enumerable: !0, + get: function () { + return t[r] + }, + }), + Object.defineProperty(e, n, i)) + } + : function (e, t, r, n) { + ;(void 0 === n && (n = r), (e[n] = t[r])) + }), + i = + (this && this.__setModuleDefault) || + (Object.create + ? function (e, t) { + Object.defineProperty(e, 'default', { enumerable: !0, value: t }) + } + : function (e, t) { + e.default = t + }), + o = + (this && this.__importStar) || + function (e) { + if (e && e.__esModule) return e + var t = {} + if (null != e) for (var r in e) 'default' !== r && Object.prototype.hasOwnProperty.call(e, r) && n(t, e, r) + return (i(t, e), t) + }, + a = + (this && this.__importDefault) || + function (e) { + return e && e.__esModule ? e : { default: e } + } + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.accountPublicFromPublicGenerator = t.derivePrivateKey = void 0)) + const s = o(r(42870)), + u = a(r(85830)), + c = s.ec('secp256k1') + function f(e, t) { + const r = c.curve.n + for (let n = 0; n <= 4294967295; n++) { + const i = new u.default().add(e) + ;(void 0 !== t && i.addU32(t), i.addU32(n)) + const o = i.first256BN() + if (o.cmpn(0) > 0 && o.cmp(r) < 0) return o + } + throw new Error('impossible unicorn ;)') + } + ;((t.derivePrivateKey = function (e, t = {}) { + const r = t.validator, + n = c.curve.n, + i = f(e) + if (r) return i + const o = c.g.mul(i), + a = t.accountIndex || 0 + return f(o.encodeCompressed(), a).add(i).mod(n) + }), + (t.accountPublicFromPublicGenerator = function (e) { + const t = c.curve.decodePoint(e), + r = f(e, 0), + n = c.g.mul(r) + return t.add(n).encodeCompressed() + })) + }, + 31434: function (e, t, r) { + 'use strict' + var n = r(18390).Buffer, + i = + (this && this.__createBinding) || + (Object.create + ? function (e, t, r, n) { + void 0 === n && (n = r) + var i = Object.getOwnPropertyDescriptor(t, r) + ;((i && !('get' in i ? !t.__esModule : i.writable || i.configurable)) || + (i = { + enumerable: !0, + get: function () { + return t[r] + }, + }), + Object.defineProperty(e, n, i)) + } + : function (e, t, r, n) { + ;(void 0 === n && (n = r), (e[n] = t[r])) + }), + o = + (this && this.__setModuleDefault) || + (Object.create + ? function (e, t) { + Object.defineProperty(e, 'default', { enumerable: !0, value: t }) + } + : function (e, t) { + e.default = t + }), + a = + (this && this.__importStar) || + function (e) { + if (e && e.__esModule) return e + var t = {} + if (null != e) for (var r in e) 'default' !== r && Object.prototype.hasOwnProperty.call(e, r) && i(t, e, r) + return (o(t, e), t) + } + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.computePublicKeyHash = t.hexToBytes = t.bytesToHex = void 0)) + const s = a(r(32037)), + u = a(r(58925)), + c = r(69999) + ;((t.bytesToHex = function (e) { + return Array.from(e, (e) => { + const t = e.toString(16).toUpperCase() + return t.length > 1 ? t : `0${t}` + }).join('') + }), + (t.hexToBytes = function (e) { + return (s.ok(e.length % 2 == 0), 0 === e.length ? [] : new c(e, 16).toArray(null, e.length / 2)) + }), + (t.computePublicKeyHash = function (e) { + const t = u.sha256().update(e).digest(), + r = u.ripemd160().update(t).digest() + return n.from(r) + })) + }, + 59105: (e, t, r) => { + var n = r(18390), + i = n.Buffer + function o(e, t) { + for (var r in e) t[r] = e[r] + } + function a(e, t, r) { + return i(e, t, r) + } + ;(i.from && i.alloc && i.allocUnsafe && i.allocUnsafeSlow ? (e.exports = n) : (o(n, t), (t.Buffer = a)), + (a.prototype = Object.create(i.prototype)), + o(i, a), + (a.from = function (e, t, r) { + if ('number' == typeof e) throw new TypeError('Argument must not be a number') + return i(e, t, r) + }), + (a.alloc = function (e, t, r) { + if ('number' != typeof e) throw new TypeError('Argument must be a number') + var n = i(e) + return (void 0 !== t ? ('string' == typeof r ? n.fill(t, r) : n.fill(t)) : n.fill(0), n) + }), + (a.allocUnsafe = function (e) { + if ('number' != typeof e) throw new TypeError('Argument must be a number') + return i(e) + }), + (a.allocUnsafeSlow = function (e) { + if ('number' != typeof e) throw new TypeError('Argument must be a number') + return n.SlowBuffer(e) + })) + }, + 95848: (e, t, r) => { + 'use strict' + var n, + i = r(48494), + o = r(18390), + a = o.Buffer, + s = {} + for (n in o) o.hasOwnProperty(n) && 'SlowBuffer' !== n && 'Buffer' !== n && (s[n] = o[n]) + var u = (s.Buffer = {}) + for (n in a) a.hasOwnProperty(n) && 'allocUnsafe' !== n && 'allocUnsafeSlow' !== n && (u[n] = a[n]) + if ( + ((s.Buffer.prototype = a.prototype), + (u.from && u.from !== Uint8Array.from) || + (u.from = function (e, t, r) { + if ('number' == typeof e) throw new TypeError('The "value" argument must not be of type number. Received type ' + typeof e) + if (e && void 0 === e.length) + throw new TypeError( + 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type ' + typeof e, + ) + return a(e, t, r) + }), + u.alloc || + (u.alloc = function (e, t, r) { + if ('number' != typeof e) throw new TypeError('The "size" argument must be of type number. Received type ' + typeof e) + if (e < 0 || e >= 2 * (1 << 30)) throw new RangeError('The value "' + e + '" is invalid for option "size"') + var n = a(e) + return (t && 0 !== t.length ? ('string' == typeof r ? n.fill(t, r) : n.fill(t)) : n.fill(0), n) + }), + !s.kStringMaxLength) + ) + try { + s.kStringMaxLength = i.binding('buffer').kStringMaxLength + } catch (e) {} + ;(s.constants || ((s.constants = { MAX_LENGTH: s.kMaxLength }), s.kStringMaxLength && (s.constants.MAX_STRING_LENGTH = s.kStringMaxLength)), + (e.exports = s)) + }, + 63221: (e, t, r) => { + var n = r(59105).Buffer + function i(e, t) { + ;((this._block = n.alloc(e)), (this._finalSize = t), (this._blockSize = e), (this._len = 0)) + } + ;((i.prototype.update = function (e, t) { + 'string' == typeof e && ((t = t || 'utf8'), (e = n.from(e, t))) + for (var r = this._block, i = this._blockSize, o = e.length, a = this._len, s = 0; s < o; ) { + for (var u = a % i, c = Math.min(o - s, i - u), f = 0; f < c; f++) r[u + f] = e[s + f] + ;((s += c), (a += c) % i == 0 && this._update(r)) + } + return ((this._len += o), this) + }), + (i.prototype.digest = function (e) { + var t = this._len % this._blockSize + ;((this._block[t] = 128), this._block.fill(0, t + 1), t >= this._finalSize && (this._update(this._block), this._block.fill(0))) + var r = 8 * this._len + if (r <= 4294967295) this._block.writeUInt32BE(r, this._blockSize - 4) + else { + var n = (4294967295 & r) >>> 0, + i = (r - n) / 4294967296 + ;(this._block.writeUInt32BE(i, this._blockSize - 8), this._block.writeUInt32BE(n, this._blockSize - 4)) + } + this._update(this._block) + var o = this._hash() + return e ? o.toString(e) : o + }), + (i.prototype._update = function () { + throw new Error('_update must be implemented by subclass') + }), + (e.exports = i)) + }, + 55695: (e, t, r) => { + var n = (e.exports = function (e) { + e = e.toLowerCase() + var t = n[e] + if (!t) throw new Error(e + ' is not supported (we accept pull requests)') + return new t() + }) + ;((n.sha = r(53875)), (n.sha1 = r(5090)), (n.sha224 = r(21698)), (n.sha256 = r(58710)), (n.sha384 = r(36333)), (n.sha512 = r(91720))) + }, + 53875: (e, t, r) => { + var n = r(19105), + i = r(63221), + o = r(59105).Buffer, + a = [1518500249, 1859775393, -1894007588, -899497514], + s = new Array(80) + function u() { + ;(this.init(), (this._w = s), i.call(this, 64, 56)) + } + function c(e) { + return (e << 30) | (e >>> 2) + } + function f(e, t, r, n) { + return 0 === e ? (t & r) | (~t & n) : 2 === e ? (t & r) | (t & n) | (r & n) : t ^ r ^ n + } + ;(n(u, i), + (u.prototype.init = function () { + return ((this._a = 1732584193), (this._b = 4023233417), (this._c = 2562383102), (this._d = 271733878), (this._e = 3285377520), this) + }), + (u.prototype._update = function (e) { + for (var t, r = this._w, n = 0 | this._a, i = 0 | this._b, o = 0 | this._c, s = 0 | this._d, u = 0 | this._e, l = 0; l < 16; ++l) + r[l] = e.readInt32BE(4 * l) + for (; l < 80; ++l) r[l] = r[l - 3] ^ r[l - 8] ^ r[l - 14] ^ r[l - 16] + for (var d = 0; d < 80; ++d) { + var h = ~~(d / 20), + p = 0 | ((((t = n) << 5) | (t >>> 27)) + f(h, i, o, s) + u + r[d] + a[h]) + ;((u = s), (s = o), (o = c(i)), (i = n), (n = p)) + } + ;((this._a = (n + this._a) | 0), + (this._b = (i + this._b) | 0), + (this._c = (o + this._c) | 0), + (this._d = (s + this._d) | 0), + (this._e = (u + this._e) | 0)) + }), + (u.prototype._hash = function () { + var e = o.allocUnsafe(20) + return ( + e.writeInt32BE(0 | this._a, 0), + e.writeInt32BE(0 | this._b, 4), + e.writeInt32BE(0 | this._c, 8), + e.writeInt32BE(0 | this._d, 12), + e.writeInt32BE(0 | this._e, 16), + e + ) + }), + (e.exports = u)) + }, + 5090: (e, t, r) => { + var n = r(19105), + i = r(63221), + o = r(59105).Buffer, + a = [1518500249, 1859775393, -1894007588, -899497514], + s = new Array(80) + function u() { + ;(this.init(), (this._w = s), i.call(this, 64, 56)) + } + function c(e) { + return (e << 5) | (e >>> 27) + } + function f(e) { + return (e << 30) | (e >>> 2) + } + function l(e, t, r, n) { + return 0 === e ? (t & r) | (~t & n) : 2 === e ? (t & r) | (t & n) | (r & n) : t ^ r ^ n + } + ;(n(u, i), + (u.prototype.init = function () { + return ((this._a = 1732584193), (this._b = 4023233417), (this._c = 2562383102), (this._d = 271733878), (this._e = 3285377520), this) + }), + (u.prototype._update = function (e) { + for (var t, r = this._w, n = 0 | this._a, i = 0 | this._b, o = 0 | this._c, s = 0 | this._d, u = 0 | this._e, d = 0; d < 16; ++d) + r[d] = e.readInt32BE(4 * d) + for (; d < 80; ++d) r[d] = ((t = r[d - 3] ^ r[d - 8] ^ r[d - 14] ^ r[d - 16]) << 1) | (t >>> 31) + for (var h = 0; h < 80; ++h) { + var p = ~~(h / 20), + y = (c(n) + l(p, i, o, s) + u + r[h] + a[p]) | 0 + ;((u = s), (s = o), (o = f(i)), (i = n), (n = y)) + } + ;((this._a = (n + this._a) | 0), + (this._b = (i + this._b) | 0), + (this._c = (o + this._c) | 0), + (this._d = (s + this._d) | 0), + (this._e = (u + this._e) | 0)) + }), + (u.prototype._hash = function () { + var e = o.allocUnsafe(20) + return ( + e.writeInt32BE(0 | this._a, 0), + e.writeInt32BE(0 | this._b, 4), + e.writeInt32BE(0 | this._c, 8), + e.writeInt32BE(0 | this._d, 12), + e.writeInt32BE(0 | this._e, 16), + e + ) + }), + (e.exports = u)) + }, + 21698: (e, t, r) => { + var n = r(19105), + i = r(58710), + o = r(63221), + a = r(59105).Buffer, + s = new Array(64) + function u() { + ;(this.init(), (this._w = s), o.call(this, 64, 56)) + } + ;(n(u, i), + (u.prototype.init = function () { + return ( + (this._a = 3238371032), + (this._b = 914150663), + (this._c = 812702999), + (this._d = 4144912697), + (this._e = 4290775857), + (this._f = 1750603025), + (this._g = 1694076839), + (this._h = 3204075428), + this + ) + }), + (u.prototype._hash = function () { + var e = a.allocUnsafe(28) + return ( + e.writeInt32BE(this._a, 0), + e.writeInt32BE(this._b, 4), + e.writeInt32BE(this._c, 8), + e.writeInt32BE(this._d, 12), + e.writeInt32BE(this._e, 16), + e.writeInt32BE(this._f, 20), + e.writeInt32BE(this._g, 24), + e + ) + }), + (e.exports = u)) + }, + 58710: (e, t, r) => { + var n = r(19105), + i = r(63221), + o = r(59105).Buffer, + a = [ + 1116352408, 1899447441, 3049323471, 3921009573, 961987163, 1508970993, 2453635748, 2870763221, 3624381080, 310598401, 607225278, + 1426881987, 1925078388, 2162078206, 2614888103, 3248222580, 3835390401, 4022224774, 264347078, 604807628, 770255983, 1249150122, + 1555081692, 1996064986, 2554220882, 2821834349, 2952996808, 3210313671, 3336571891, 3584528711, 113926993, 338241895, 666307205, + 773529912, 1294757372, 1396182291, 1695183700, 1986661051, 2177026350, 2456956037, 2730485921, 2820302411, 3259730800, 3345764771, + 3516065817, 3600352804, 4094571909, 275423344, 430227734, 506948616, 659060556, 883997877, 958139571, 1322822218, 1537002063, 1747873779, + 1955562222, 2024104815, 2227730452, 2361852424, 2428436474, 2756734187, 3204031479, 3329325298, + ], + s = new Array(64) + function u() { + ;(this.init(), (this._w = s), i.call(this, 64, 56)) + } + function c(e, t, r) { + return r ^ (e & (t ^ r)) + } + function f(e, t, r) { + return (e & t) | (r & (e | t)) + } + function l(e) { + return ((e >>> 2) | (e << 30)) ^ ((e >>> 13) | (e << 19)) ^ ((e >>> 22) | (e << 10)) + } + function d(e) { + return ((e >>> 6) | (e << 26)) ^ ((e >>> 11) | (e << 21)) ^ ((e >>> 25) | (e << 7)) + } + function h(e) { + return ((e >>> 7) | (e << 25)) ^ ((e >>> 18) | (e << 14)) ^ (e >>> 3) + } + ;(n(u, i), + (u.prototype.init = function () { + return ( + (this._a = 1779033703), + (this._b = 3144134277), + (this._c = 1013904242), + (this._d = 2773480762), + (this._e = 1359893119), + (this._f = 2600822924), + (this._g = 528734635), + (this._h = 1541459225), + this + ) + }), + (u.prototype._update = function (e) { + for ( + var t, + r = this._w, + n = 0 | this._a, + i = 0 | this._b, + o = 0 | this._c, + s = 0 | this._d, + u = 0 | this._e, + p = 0 | this._f, + y = 0 | this._g, + g = 0 | this._h, + b = 0; + b < 16; + ++b + ) + r[b] = e.readInt32BE(4 * b) + for (; b < 64; ++b) + r[b] = 0 | (((((t = r[b - 2]) >>> 17) | (t << 15)) ^ ((t >>> 19) | (t << 13)) ^ (t >>> 10)) + r[b - 7] + h(r[b - 15]) + r[b - 16]) + for (var m = 0; m < 64; ++m) { + var v = (g + d(u) + c(u, p, y) + a[m] + r[m]) | 0, + w = (l(n) + f(n, i, o)) | 0 + ;((g = y), (y = p), (p = u), (u = (s + v) | 0), (s = o), (o = i), (i = n), (n = (v + w) | 0)) + } + ;((this._a = (n + this._a) | 0), + (this._b = (i + this._b) | 0), + (this._c = (o + this._c) | 0), + (this._d = (s + this._d) | 0), + (this._e = (u + this._e) | 0), + (this._f = (p + this._f) | 0), + (this._g = (y + this._g) | 0), + (this._h = (g + this._h) | 0)) + }), + (u.prototype._hash = function () { + var e = o.allocUnsafe(32) + return ( + e.writeInt32BE(this._a, 0), + e.writeInt32BE(this._b, 4), + e.writeInt32BE(this._c, 8), + e.writeInt32BE(this._d, 12), + e.writeInt32BE(this._e, 16), + e.writeInt32BE(this._f, 20), + e.writeInt32BE(this._g, 24), + e.writeInt32BE(this._h, 28), + e + ) + }), + (e.exports = u)) + }, + 36333: (e, t, r) => { + var n = r(19105), + i = r(91720), + o = r(63221), + a = r(59105).Buffer, + s = new Array(160) + function u() { + ;(this.init(), (this._w = s), o.call(this, 128, 112)) + } + ;(n(u, i), + (u.prototype.init = function () { + return ( + (this._ah = 3418070365), + (this._bh = 1654270250), + (this._ch = 2438529370), + (this._dh = 355462360), + (this._eh = 1731405415), + (this._fh = 2394180231), + (this._gh = 3675008525), + (this._hh = 1203062813), + (this._al = 3238371032), + (this._bl = 914150663), + (this._cl = 812702999), + (this._dl = 4144912697), + (this._el = 4290775857), + (this._fl = 1750603025), + (this._gl = 1694076839), + (this._hl = 3204075428), + this + ) + }), + (u.prototype._hash = function () { + var e = a.allocUnsafe(48) + function t(t, r, n) { + ;(e.writeInt32BE(t, n), e.writeInt32BE(r, n + 4)) + } + return ( + t(this._ah, this._al, 0), + t(this._bh, this._bl, 8), + t(this._ch, this._cl, 16), + t(this._dh, this._dl, 24), + t(this._eh, this._el, 32), + t(this._fh, this._fl, 40), + e + ) + }), + (e.exports = u)) + }, + 91720: (e, t, r) => { + var n = r(19105), + i = r(63221), + o = r(59105).Buffer, + a = [ + 1116352408, 3609767458, 1899447441, 602891725, 3049323471, 3964484399, 3921009573, 2173295548, 961987163, 4081628472, 1508970993, + 3053834265, 2453635748, 2937671579, 2870763221, 3664609560, 3624381080, 2734883394, 310598401, 1164996542, 607225278, 1323610764, + 1426881987, 3590304994, 1925078388, 4068182383, 2162078206, 991336113, 2614888103, 633803317, 3248222580, 3479774868, 3835390401, + 2666613458, 4022224774, 944711139, 264347078, 2341262773, 604807628, 2007800933, 770255983, 1495990901, 1249150122, 1856431235, + 1555081692, 3175218132, 1996064986, 2198950837, 2554220882, 3999719339, 2821834349, 766784016, 2952996808, 2566594879, 3210313671, + 3203337956, 3336571891, 1034457026, 3584528711, 2466948901, 113926993, 3758326383, 338241895, 168717936, 666307205, 1188179964, 773529912, + 1546045734, 1294757372, 1522805485, 1396182291, 2643833823, 1695183700, 2343527390, 1986661051, 1014477480, 2177026350, 1206759142, + 2456956037, 344077627, 2730485921, 1290863460, 2820302411, 3158454273, 3259730800, 3505952657, 3345764771, 106217008, 3516065817, + 3606008344, 3600352804, 1432725776, 4094571909, 1467031594, 275423344, 851169720, 430227734, 3100823752, 506948616, 1363258195, 659060556, + 3750685593, 883997877, 3785050280, 958139571, 3318307427, 1322822218, 3812723403, 1537002063, 2003034995, 1747873779, 3602036899, + 1955562222, 1575990012, 2024104815, 1125592928, 2227730452, 2716904306, 2361852424, 442776044, 2428436474, 593698344, 2756734187, + 3733110249, 3204031479, 2999351573, 3329325298, 3815920427, 3391569614, 3928383900, 3515267271, 566280711, 3940187606, 3454069534, + 4118630271, 4000239992, 116418474, 1914138554, 174292421, 2731055270, 289380356, 3203993006, 460393269, 320620315, 685471733, 587496836, + 852142971, 1086792851, 1017036298, 365543100, 1126000580, 2618297676, 1288033470, 3409855158, 1501505948, 4234509866, 1607167915, + 987167468, 1816402316, 1246189591, + ], + s = new Array(160) + function u() { + ;(this.init(), (this._w = s), i.call(this, 128, 112)) + } + function c(e, t, r) { + return r ^ (e & (t ^ r)) + } + function f(e, t, r) { + return (e & t) | (r & (e | t)) + } + function l(e, t) { + return ((e >>> 28) | (t << 4)) ^ ((t >>> 2) | (e << 30)) ^ ((t >>> 7) | (e << 25)) + } + function d(e, t) { + return ((e >>> 14) | (t << 18)) ^ ((e >>> 18) | (t << 14)) ^ ((t >>> 9) | (e << 23)) + } + function h(e, t) { + return ((e >>> 1) | (t << 31)) ^ ((e >>> 8) | (t << 24)) ^ (e >>> 7) + } + function p(e, t) { + return ((e >>> 1) | (t << 31)) ^ ((e >>> 8) | (t << 24)) ^ ((e >>> 7) | (t << 25)) + } + function y(e, t) { + return ((e >>> 19) | (t << 13)) ^ ((t >>> 29) | (e << 3)) ^ (e >>> 6) + } + function g(e, t) { + return ((e >>> 19) | (t << 13)) ^ ((t >>> 29) | (e << 3)) ^ ((e >>> 6) | (t << 26)) + } + function b(e, t) { + return e >>> 0 < t >>> 0 ? 1 : 0 + } + ;(n(u, i), + (u.prototype.init = function () { + return ( + (this._ah = 1779033703), + (this._bh = 3144134277), + (this._ch = 1013904242), + (this._dh = 2773480762), + (this._eh = 1359893119), + (this._fh = 2600822924), + (this._gh = 528734635), + (this._hh = 1541459225), + (this._al = 4089235720), + (this._bl = 2227873595), + (this._cl = 4271175723), + (this._dl = 1595750129), + (this._el = 2917565137), + (this._fl = 725511199), + (this._gl = 4215389547), + (this._hl = 327033209), + this + ) + }), + (u.prototype._update = function (e) { + for ( + var t = this._w, + r = 0 | this._ah, + n = 0 | this._bh, + i = 0 | this._ch, + o = 0 | this._dh, + s = 0 | this._eh, + u = 0 | this._fh, + m = 0 | this._gh, + v = 0 | this._hh, + w = 0 | this._al, + _ = 0 | this._bl, + E = 0 | this._cl, + S = 0 | this._dl, + A = 0 | this._el, + O = 0 | this._fl, + M = 0 | this._gl, + T = 0 | this._hl, + I = 0; + I < 32; + I += 2 + ) + ((t[I] = e.readInt32BE(4 * I)), (t[I + 1] = e.readInt32BE(4 * I + 4))) + for (; I < 160; I += 2) { + var N = t[I - 30], + x = t[I - 30 + 1], + L = h(N, x), + k = p(x, N), + R = y((N = t[I - 4]), (x = t[I - 4 + 1])), + P = g(x, N), + B = t[I - 14], + D = t[I - 14 + 1], + C = t[I - 32], + j = t[I - 32 + 1], + F = (k + D) | 0, + U = (L + B + b(F, k)) | 0 + ;((U = ((U = (U + R + b((F = (F + P) | 0), P)) | 0) + C + b((F = (F + j) | 0), j)) | 0), (t[I] = U), (t[I + 1] = F)) + } + for (var V = 0; V < 160; V += 2) { + ;((U = t[V]), (F = t[V + 1])) + var H = f(r, n, i), + z = f(w, _, E), + q = l(r, w), + K = l(w, r), + W = d(s, A), + G = d(A, s), + Y = a[V], + $ = a[V + 1], + X = c(s, u, m), + J = c(A, O, M), + Z = (T + G) | 0, + Q = (v + W + b(Z, T)) | 0 + Q = ((Q = ((Q = (Q + X + b((Z = (Z + J) | 0), J)) | 0) + Y + b((Z = (Z + $) | 0), $)) | 0) + U + b((Z = (Z + F) | 0), F)) | 0 + var ee = (K + z) | 0, + te = (q + H + b(ee, K)) | 0 + ;((v = m), + (T = M), + (m = u), + (M = O), + (u = s), + (O = A), + (s = (o + Q + b((A = (S + Z) | 0), S)) | 0), + (o = i), + (S = E), + (i = n), + (E = _), + (n = r), + (_ = w), + (r = (Q + te + b((w = (Z + ee) | 0), Z)) | 0)) + } + ;((this._al = (this._al + w) | 0), + (this._bl = (this._bl + _) | 0), + (this._cl = (this._cl + E) | 0), + (this._dl = (this._dl + S) | 0), + (this._el = (this._el + A) | 0), + (this._fl = (this._fl + O) | 0), + (this._gl = (this._gl + M) | 0), + (this._hl = (this._hl + T) | 0), + (this._ah = (this._ah + r + b(this._al, w)) | 0), + (this._bh = (this._bh + n + b(this._bl, _)) | 0), + (this._ch = (this._ch + i + b(this._cl, E)) | 0), + (this._dh = (this._dh + o + b(this._dl, S)) | 0), + (this._eh = (this._eh + s + b(this._el, A)) | 0), + (this._fh = (this._fh + u + b(this._fl, O)) | 0), + (this._gh = (this._gh + m + b(this._gl, M)) | 0), + (this._hh = (this._hh + v + b(this._hl, T)) | 0)) + }), + (u.prototype._hash = function () { + var e = o.allocUnsafe(64) + function t(t, r, n) { + ;(e.writeInt32BE(t, n), e.writeInt32BE(r, n + 4)) + } + return ( + t(this._ah, this._al, 0), + t(this._bh, this._bl, 8), + t(this._ch, this._cl, 16), + t(this._dh, this._dl, 24), + t(this._eh, this._el, 32), + t(this._fh, this._fl, 40), + t(this._gh, this._gl, 48), + t(this._hh, this._hl, 56), + e + ) + }), + (e.exports = u)) + }, + 64301: (e, t, r) => { + 'use strict' + var n = r(65205), + i = r(34537), + o = r(64651), + a = n('%TypeError%'), + s = n('%WeakMap%', !0), + u = n('%Map%', !0), + c = i('WeakMap.prototype.get', !0), + f = i('WeakMap.prototype.set', !0), + l = i('WeakMap.prototype.has', !0), + d = i('Map.prototype.get', !0), + h = i('Map.prototype.set', !0), + p = i('Map.prototype.has', !0), + y = function (e, t) { + for (var r, n = e; null !== (r = n.next); n = r) if (r.key === t) return ((n.next = r.next), (r.next = e.next), (e.next = r), r) + } + e.exports = function () { + var e, + t, + r, + n = { + assert: function (e) { + if (!n.has(e)) throw new a('Side channel does not contain ' + o(e)) + }, + get: function (n) { + if (s && n && ('object' == typeof n || 'function' == typeof n)) { + if (e) return c(e, n) + } else if (u) { + if (t) return d(t, n) + } else if (r) + return (function (e, t) { + var r = y(e, t) + return r && r.value + })(r, n) + }, + has: function (n) { + if (s && n && ('object' == typeof n || 'function' == typeof n)) { + if (e) return l(e, n) + } else if (u) { + if (t) return p(t, n) + } else if (r) + return (function (e, t) { + return !!y(e, t) + })(r, n) + return !1 + }, + set: function (n, i) { + s && n && ('object' == typeof n || 'function' == typeof n) + ? (e || (e = new s()), f(e, n, i)) + : u + ? (t || (t = new u()), h(t, n, i)) + : (r || (r = { key: {}, next: null }), + (function (e, t, r) { + var n = y(e, t) + n ? (n.value = r) : (e.next = { key: t, next: e.next, value: r }) + })(r, n, i)) + }, + } + return n + } + }, + 98672: (e, t, r) => { + e.exports = i + var n = r(67725).EventEmitter + function i() { + n.call(this) + } + ;(r(19105)(i, n), + (i.Readable = r(6246)), + (i.Writable = r(90609)), + (i.Duplex = r(55101)), + (i.Transform = r(16889)), + (i.PassThrough = r(17153)), + (i.finished = r(84781)), + (i.pipeline = r(69635)), + (i.Stream = i), + (i.prototype.pipe = function (e, t) { + var r = this + function i(t) { + e.writable && !1 === e.write(t) && r.pause && r.pause() + } + function o() { + r.readable && r.resume && r.resume() + } + ;(r.on('data', i), e.on('drain', o), e._isStdio || (t && !1 === t.end) || (r.on('end', s), r.on('close', u))) + var a = !1 + function s() { + a || ((a = !0), e.end()) + } + function u() { + a || ((a = !0), 'function' == typeof e.destroy && e.destroy()) + } + function c(e) { + if ((f(), 0 === n.listenerCount(this, 'error'))) throw e + } + function f() { + ;(r.removeListener('data', i), + e.removeListener('drain', o), + r.removeListener('end', s), + r.removeListener('close', u), + r.removeListener('error', c), + e.removeListener('error', c), + r.removeListener('end', f), + r.removeListener('close', f), + e.removeListener('close', f)) + } + return (r.on('error', c), e.on('error', c), r.on('end', f), r.on('close', f), e.on('close', f), e.emit('pipe', r), e) + })) + }, + 4254: (e, t, r) => { + var n = r(33818), + i = r(69684), + o = r(90139), + a = r(77124), + s = r(85192), + u = t + ;((u.request = function (e, t) { + e = 'string' == typeof e ? s.parse(e) : o(e) + var i = -1 === r.g.location.protocol.search(/^https?:$/) ? 'http:' : '', + a = e.protocol || i, + u = e.hostname || e.host, + c = e.port, + f = e.path || '/' + ;(u && -1 !== u.indexOf(':') && (u = '[' + u + ']'), + (e.url = (u ? a + '//' + u : '') + (c ? ':' + c : '') + f), + (e.method = (e.method || 'GET').toUpperCase()), + (e.headers = e.headers || {})) + var l = new n(e) + return (t && l.on('response', t), l) + }), + (u.get = function (e, t) { + var r = u.request(e, t) + return (r.end(), r) + }), + (u.ClientRequest = n), + (u.IncomingMessage = i.IncomingMessage), + (u.Agent = function () {}), + (u.Agent.defaultMaxSockets = 4), + (u.globalAgent = new u.Agent()), + (u.STATUS_CODES = a), + (u.METHODS = [ + 'CHECKOUT', + 'CONNECT', + 'COPY', + 'DELETE', + 'GET', + 'HEAD', + 'LOCK', + 'M-SEARCH', + 'MERGE', + 'MKACTIVITY', + 'MKCOL', + 'MOVE', + 'NOTIFY', + 'OPTIONS', + 'PATCH', + 'POST', + 'PROPFIND', + 'PROPPATCH', + 'PURGE', + 'PUT', + 'REPORT', + 'SEARCH', + 'SUBSCRIBE', + 'TRACE', + 'UNLOCK', + 'UNSUBSCRIBE', + ])) + }, + 3650: (e, t, r) => { + var n + function i() { + if (void 0 !== n) return n + if (r.g.XMLHttpRequest) { + n = new r.g.XMLHttpRequest() + try { + n.open('GET', r.g.XDomainRequest ? '/' : 'https://example.com') + } catch (e) { + n = null + } + } else n = null + return n + } + function o(e) { + var t = i() + if (!t) return !1 + try { + return ((t.responseType = e), t.responseType === e) + } catch (e) {} + return !1 + } + function a(e) { + return 'function' == typeof e + } + ;((t.fetch = a(r.g.fetch) && a(r.g.ReadableStream)), + (t.writableStream = a(r.g.WritableStream)), + (t.abortController = a(r.g.AbortController)), + (t.arraybuffer = t.fetch || o('arraybuffer')), + (t.msstream = !t.fetch && o('ms-stream')), + (t.mozchunkedarraybuffer = !t.fetch && o('moz-chunked-arraybuffer')), + (t.overrideMimeType = t.fetch || (!!i() && a(i().overrideMimeType))), + (n = null)) + }, + 33818: (e, t, r) => { + var n = r(18390).Buffer, + i = r(48494), + o = r(3650), + a = r(19105), + s = r(69684), + u = r(8542), + c = s.IncomingMessage, + f = s.readyStates, + l = (e.exports = function (e) { + var t, + r = this + ;(u.Writable.call(r), + (r._opts = e), + (r._body = []), + (r._headers = {}), + e.auth && r.setHeader('Authorization', 'Basic ' + n.from(e.auth).toString('base64')), + Object.keys(e.headers).forEach(function (t) { + r.setHeader(t, e.headers[t]) + })) + var i = !0 + if ('disable-fetch' === e.mode || ('requestTimeout' in e && !o.abortController)) ((i = !1), (t = !0)) + else if ('prefer-streaming' === e.mode) t = !1 + else if ('allow-wrong-content-type' === e.mode) t = !o.overrideMimeType + else { + if (e.mode && 'default' !== e.mode && 'prefer-fast' !== e.mode) throw new Error('Invalid value for opts.mode') + t = !0 + } + ;((r._mode = (function (e, t) { + return o.fetch && t + ? 'fetch' + : o.mozchunkedarraybuffer + ? 'moz-chunked-arraybuffer' + : o.msstream + ? 'ms-stream' + : o.arraybuffer && e + ? 'arraybuffer' + : 'text' + })(t, i)), + (r._fetchTimer = null), + (r._socketTimeout = null), + (r._socketTimer = null), + r.on('finish', function () { + r._onFinish() + })) + }) + ;(a(l, u.Writable), + (l.prototype.setHeader = function (e, t) { + var r = e.toLowerCase() + ;-1 === d.indexOf(r) && (this._headers[r] = { name: e, value: t }) + }), + (l.prototype.getHeader = function (e) { + var t = this._headers[e.toLowerCase()] + return t ? t.value : null + }), + (l.prototype.removeHeader = function (e) { + delete this._headers[e.toLowerCase()] + }), + (l.prototype._onFinish = function () { + var e = this + if (!e._destroyed) { + var t = e._opts + 'timeout' in t && 0 !== t.timeout && e.setTimeout(t.timeout) + var n = e._headers, + a = null + 'GET' !== t.method && 'HEAD' !== t.method && (a = new Blob(e._body, { type: (n['content-type'] || {}).value || '' })) + var s = [] + if ( + (Object.keys(n).forEach(function (e) { + var t = n[e].name, + r = n[e].value + Array.isArray(r) + ? r.forEach(function (e) { + s.push([t, e]) + }) + : s.push([t, r]) + }), + 'fetch' === e._mode) + ) { + var u = null + if (o.abortController) { + var c = new AbortController() + ;((u = c.signal), + (e._fetchAbortController = c), + 'requestTimeout' in t && + 0 !== t.requestTimeout && + (e._fetchTimer = r.g.setTimeout(function () { + ;(e.emit('requestTimeout'), e._fetchAbortController && e._fetchAbortController.abort()) + }, t.requestTimeout))) + } + r.g + .fetch(e._opts.url, { + method: e._opts.method, + headers: s, + body: a || void 0, + mode: 'cors', + credentials: t.withCredentials ? 'include' : 'same-origin', + signal: u, + }) + .then( + function (t) { + ;((e._fetchResponse = t), e._resetTimers(!1), e._connect()) + }, + function (t) { + ;(e._resetTimers(!0), e._destroyed || e.emit('error', t)) + }, + ) + } else { + var l = (e._xhr = new r.g.XMLHttpRequest()) + try { + l.open(e._opts.method, e._opts.url, !0) + } catch (t) { + return void i.nextTick(function () { + e.emit('error', t) + }) + } + ;('responseType' in l && (l.responseType = e._mode), + 'withCredentials' in l && (l.withCredentials = !!t.withCredentials), + 'text' === e._mode && 'overrideMimeType' in l && l.overrideMimeType('text/plain; charset=x-user-defined'), + 'requestTimeout' in t && + ((l.timeout = t.requestTimeout), + (l.ontimeout = function () { + e.emit('requestTimeout') + })), + s.forEach(function (e) { + l.setRequestHeader(e[0], e[1]) + }), + (e._response = null), + (l.onreadystatechange = function () { + switch (l.readyState) { + case f.LOADING: + case f.DONE: + e._onXHRProgress() + } + }), + 'moz-chunked-arraybuffer' === e._mode && + (l.onprogress = function () { + e._onXHRProgress() + }), + (l.onerror = function () { + e._destroyed || (e._resetTimers(!0), e.emit('error', new Error('XHR error'))) + })) + try { + l.send(a) + } catch (t) { + return void i.nextTick(function () { + e.emit('error', t) + }) + } + } + } + }), + (l.prototype._onXHRProgress = function () { + var e = this + ;(e._resetTimers(!1), + (function (e) { + try { + var t = e.status + return null !== t && 0 !== t + } catch (e) { + return !1 + } + })(e._xhr) && + !e._destroyed && + (e._response || e._connect(), e._response._onXHRProgress(e._resetTimers.bind(e)))) + }), + (l.prototype._connect = function () { + var e = this + e._destroyed || + ((e._response = new c(e._xhr, e._fetchResponse, e._mode, e._resetTimers.bind(e))), + e._response.on('error', function (t) { + e.emit('error', t) + }), + e.emit('response', e._response)) + }), + (l.prototype._write = function (e, t, r) { + ;(this._body.push(e), r()) + }), + (l.prototype._resetTimers = function (e) { + var t = this + ;(r.g.clearTimeout(t._socketTimer), + (t._socketTimer = null), + e + ? (r.g.clearTimeout(t._fetchTimer), (t._fetchTimer = null)) + : t._socketTimeout && + (t._socketTimer = r.g.setTimeout(function () { + t.emit('timeout') + }, t._socketTimeout))) + }), + (l.prototype.abort = l.prototype.destroy = + function (e) { + var t = this + ;((t._destroyed = !0), + t._resetTimers(!0), + t._response && (t._response._destroyed = !0), + t._xhr ? t._xhr.abort() : t._fetchAbortController && t._fetchAbortController.abort(), + e && t.emit('error', e)) + }), + (l.prototype.end = function (e, t, r) { + ;('function' == typeof e && ((r = e), (e = void 0)), u.Writable.prototype.end.call(this, e, t, r)) + }), + (l.prototype.setTimeout = function (e, t) { + var r = this + ;(t && r.once('timeout', t), (r._socketTimeout = e), r._resetTimers(!1)) + }), + (l.prototype.flushHeaders = function () {}), + (l.prototype.setNoDelay = function () {}), + (l.prototype.setSocketKeepAlive = function () {})) + var d = [ + 'accept-charset', + 'accept-encoding', + 'access-control-request-headers', + 'access-control-request-method', + 'connection', + 'content-length', + 'cookie', + 'cookie2', + 'date', + 'dnt', + 'expect', + 'host', + 'keep-alive', + 'origin', + 'referer', + 'te', + 'trailer', + 'transfer-encoding', + 'upgrade', + 'via', + ] + }, + 69684: (e, t, r) => { + var n = r(48494), + i = r(18390).Buffer, + o = r(3650), + a = r(19105), + s = r(8542), + u = (t.readyStates = { UNSENT: 0, OPENED: 1, HEADERS_RECEIVED: 2, LOADING: 3, DONE: 4 }), + c = (t.IncomingMessage = function (e, t, r, a) { + var u = this + if ( + (s.Readable.call(u), + (u._mode = r), + (u.headers = {}), + (u.rawHeaders = []), + (u.trailers = {}), + (u.rawTrailers = []), + u.on('end', function () { + n.nextTick(function () { + u.emit('close') + }) + }), + 'fetch' === r) + ) { + if ( + ((u._fetchResponse = t), + (u.url = t.url), + (u.statusCode = t.status), + (u.statusMessage = t.statusText), + t.headers.forEach(function (e, t) { + ;((u.headers[t.toLowerCase()] = e), u.rawHeaders.push(t, e)) + }), + o.writableStream) + ) { + var c = new WritableStream({ + write: function (e) { + return ( + a(!1), + new Promise(function (t, r) { + u._destroyed ? r() : u.push(i.from(e)) ? t() : (u._resumeFetch = t) + }) + ) + }, + close: function () { + ;(a(!0), u._destroyed || u.push(null)) + }, + abort: function (e) { + ;(a(!0), u._destroyed || u.emit('error', e)) + }, + }) + try { + return void t.body.pipeTo(c).catch(function (e) { + ;(a(!0), u._destroyed || u.emit('error', e)) + }) + } catch (e) {} + } + var f = t.body.getReader() + !(function e() { + f.read() + .then(function (t) { + u._destroyed || (a(t.done), t.done ? u.push(null) : (u.push(i.from(t.value)), e())) + }) + .catch(function (e) { + ;(a(!0), u._destroyed || u.emit('error', e)) + }) + })() + } else if ( + ((u._xhr = e), + (u._pos = 0), + (u.url = e.responseURL), + (u.statusCode = e.status), + (u.statusMessage = e.statusText), + e + .getAllResponseHeaders() + .split(/\r?\n/) + .forEach(function (e) { + var t = e.match(/^([^:]+):\s*(.*)/) + if (t) { + var r = t[1].toLowerCase() + ;('set-cookie' === r + ? (void 0 === u.headers[r] && (u.headers[r] = []), u.headers[r].push(t[2])) + : void 0 !== u.headers[r] + ? (u.headers[r] += ', ' + t[2]) + : (u.headers[r] = t[2]), + u.rawHeaders.push(t[1], t[2])) + } + }), + (u._charset = 'x-user-defined'), + !o.overrideMimeType) + ) { + var l = u.rawHeaders['mime-type'] + if (l) { + var d = l.match(/;\s*charset=([^;])(;|$)/) + d && (u._charset = d[1].toLowerCase()) + } + u._charset || (u._charset = 'utf-8') + } + }) + ;(a(c, s.Readable), + (c.prototype._read = function () { + var e = this._resumeFetch + e && ((this._resumeFetch = null), e()) + }), + (c.prototype._onXHRProgress = function (e) { + var t = this, + n = t._xhr, + o = null + switch (t._mode) { + case 'text': + if ((o = n.responseText).length > t._pos) { + var a = o.substr(t._pos) + if ('x-user-defined' === t._charset) { + for (var s = i.alloc(a.length), c = 0; c < a.length; c++) s[c] = 255 & a.charCodeAt(c) + t.push(s) + } else t.push(a, t._charset) + t._pos = o.length + } + break + case 'arraybuffer': + if (n.readyState !== u.DONE || !n.response) break + ;((o = n.response), t.push(i.from(new Uint8Array(o)))) + break + case 'moz-chunked-arraybuffer': + if (((o = n.response), n.readyState !== u.LOADING || !o)) break + t.push(i.from(new Uint8Array(o))) + break + case 'ms-stream': + if (((o = n.response), n.readyState !== u.LOADING)) break + var f = new r.g.MSStreamReader() + ;((f.onprogress = function () { + f.result.byteLength > t._pos && (t.push(i.from(new Uint8Array(f.result.slice(t._pos)))), (t._pos = f.result.byteLength)) + }), + (f.onload = function () { + ;(e(!0), t.push(null)) + }), + f.readAsArrayBuffer(o)) + } + t._xhr.readyState === u.DONE && 'ms-stream' !== t._mode && (e(!0), t.push(null)) + })) + }, + 18842: (e, t, r) => { + 'use strict' + var n = r(59105).Buffer, + i = + n.isEncoding || + function (e) { + switch ((e = '' + e) && e.toLowerCase()) { + case 'hex': + case 'utf8': + case 'utf-8': + case 'ascii': + case 'binary': + case 'base64': + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + case 'raw': + return !0 + default: + return !1 + } + } + function o(e) { + var t + switch ( + ((this.encoding = (function (e) { + var t = (function (e) { + if (!e) return 'utf8' + for (var t; ; ) + switch (e) { + case 'utf8': + case 'utf-8': + return 'utf8' + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return 'utf16le' + case 'latin1': + case 'binary': + return 'latin1' + case 'base64': + case 'ascii': + case 'hex': + return e + default: + if (t) return + ;((e = ('' + e).toLowerCase()), (t = !0)) + } + })(e) + if ('string' != typeof t && (n.isEncoding === i || !i(e))) throw new Error('Unknown encoding: ' + e) + return t || e + })(e)), + this.encoding) + ) { + case 'utf16le': + ;((this.text = u), (this.end = c), (t = 4)) + break + case 'utf8': + ;((this.fillLast = s), (t = 4)) + break + case 'base64': + ;((this.text = f), (this.end = l), (t = 3)) + break + default: + return ((this.write = d), void (this.end = h)) + } + ;((this.lastNeed = 0), (this.lastTotal = 0), (this.lastChar = n.allocUnsafe(t))) + } + function a(e) { + return e <= 127 ? 0 : e >> 5 == 6 ? 2 : e >> 4 == 14 ? 3 : e >> 3 == 30 ? 4 : e >> 6 == 2 ? -1 : -2 + } + function s(e) { + var t = this.lastTotal - this.lastNeed, + r = (function (e, t, r) { + if (128 != (192 & t[0])) return ((e.lastNeed = 0), '�') + if (e.lastNeed > 1 && t.length > 1) { + if (128 != (192 & t[1])) return ((e.lastNeed = 1), '�') + if (e.lastNeed > 2 && t.length > 2 && 128 != (192 & t[2])) return ((e.lastNeed = 2), '�') + } + })(this, e) + return void 0 !== r + ? r + : this.lastNeed <= e.length + ? (e.copy(this.lastChar, t, 0, this.lastNeed), this.lastChar.toString(this.encoding, 0, this.lastTotal)) + : (e.copy(this.lastChar, t, 0, e.length), void (this.lastNeed -= e.length)) + } + function u(e, t) { + if ((e.length - t) % 2 == 0) { + var r = e.toString('utf16le', t) + if (r) { + var n = r.charCodeAt(r.length - 1) + if (n >= 55296 && n <= 56319) + return ( + (this.lastNeed = 2), + (this.lastTotal = 4), + (this.lastChar[0] = e[e.length - 2]), + (this.lastChar[1] = e[e.length - 1]), + r.slice(0, -1) + ) + } + return r + } + return ((this.lastNeed = 1), (this.lastTotal = 2), (this.lastChar[0] = e[e.length - 1]), e.toString('utf16le', t, e.length - 1)) + } + function c(e) { + var t = e && e.length ? this.write(e) : '' + if (this.lastNeed) { + var r = this.lastTotal - this.lastNeed + return t + this.lastChar.toString('utf16le', 0, r) + } + return t + } + function f(e, t) { + var r = (e.length - t) % 3 + return 0 === r + ? e.toString('base64', t) + : ((this.lastNeed = 3 - r), + (this.lastTotal = 3), + 1 === r ? (this.lastChar[0] = e[e.length - 1]) : ((this.lastChar[0] = e[e.length - 2]), (this.lastChar[1] = e[e.length - 1])), + e.toString('base64', t, e.length - r)) + } + function l(e) { + var t = e && e.length ? this.write(e) : '' + return this.lastNeed ? t + this.lastChar.toString('base64', 0, 3 - this.lastNeed) : t + } + function d(e) { + return e.toString(this.encoding) + } + function h(e) { + return e && e.length ? this.write(e) : '' + } + ;((t.s = o), + (o.prototype.write = function (e) { + if (0 === e.length) return '' + var t, r + if (this.lastNeed) { + if (void 0 === (t = this.fillLast(e))) return '' + ;((r = this.lastNeed), (this.lastNeed = 0)) + } else r = 0 + return r < e.length ? (t ? t + this.text(e, r) : this.text(e, r)) : t || '' + }), + (o.prototype.end = function (e) { + var t = e && e.length ? this.write(e) : '' + return this.lastNeed ? t + '�' : t + }), + (o.prototype.text = function (e, t) { + var r = (function (e, t, r) { + var n = t.length - 1 + if (n < r) return 0 + var i = a(t[n]) + return i >= 0 + ? (i > 0 && (e.lastNeed = i - 1), i) + : --n < r || -2 === i + ? 0 + : (i = a(t[n])) >= 0 + ? (i > 0 && (e.lastNeed = i - 2), i) + : --n < r || -2 === i + ? 0 + : (i = a(t[n])) >= 0 + ? (i > 0 && (2 === i ? (i = 0) : (e.lastNeed = i - 3)), i) + : 0 + })(this, e, t) + if (!this.lastNeed) return e.toString('utf8', t) + this.lastTotal = r + var n = e.length - (r - this.lastNeed) + return (e.copy(this.lastChar, 0, n), e.toString('utf8', t, n)) + }), + (o.prototype.fillLast = function (e) { + if (this.lastNeed <= e.length) + return ( + e.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed), + this.lastChar.toString(this.encoding, 0, this.lastTotal) + ) + ;(e.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, e.length), (this.lastNeed -= e.length)) + })) + }, + 41058: (e, t, r) => { + var n = r(18390).Buffer + const i = r(10660), + o = new (0, r(42870).ec)('secp256k1'), + a = r(40382), + s = n.alloc(32, 0), + u = n.from('fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141', 'hex'), + c = n.from('fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f', 'hex'), + f = o.curve.n, + l = f.shrn(1), + d = o.curve.g, + h = 'Expected Private', + p = 'Expected Point', + y = 'Expected Tweak', + g = 'Expected Hash' + function b(e) { + return n.isBuffer(e) && 32 === e.length + } + function m(e) { + return !!b(e) && e.compare(u) < 0 + } + function v(e) { + if (!n.isBuffer(e)) return !1 + if (e.length < 33) return !1 + const t = e[0], + r = e.slice(1, 33) + if (0 === r.compare(s)) return !1 + if (r.compare(c) >= 0) return !1 + if ((2 === t || 3 === t) && 33 === e.length) { + try { + O(e) + } catch (e) { + return !1 + } + return !0 + } + const i = e.slice(33) + return 0 !== i.compare(s) && !(i.compare(c) >= 0) && 4 === t && 65 === e.length + } + function w(e) { + return 4 !== e[0] + } + function _(e) { + return !!b(e) && e.compare(s) > 0 && e.compare(u) < 0 + } + function E(e, t) { + return void 0 === e && void 0 !== t ? w(t) : void 0 === e || e + } + function S(e) { + return new i(e) + } + function A(e) { + return e.toArrayLike(n, 'be', 32) + } + function O(e) { + return o.curve.decodePoint(e) + } + function M(e, t) { + return n.from(e._encode(t)) + } + function T(e, t, r) { + if (!b(e)) throw new TypeError(g) + if (!_(t)) throw new TypeError(h) + if (void 0 !== r && !b(r)) throw new TypeError('Expected Extra Data (32 bytes)') + const i = S(t), + o = S(e) + let s, u + ;(a( + e, + t, + function (e) { + const t = S(e), + r = d.mul(t) + return ( + !r.isInfinity() && + ((s = r.x.umod(f)), + 0 !== s.isZero() && + ((u = t + .invm(f) + .mul(o.add(i.mul(s))) + .umod(f)), + 0 !== u.isZero())) + ) + }, + _, + r, + ), + u.cmp(l) > 0 && (u = f.sub(u))) + const c = n.allocUnsafe(64) + return (A(s).copy(c, 0), A(u).copy(c, 32), c) + } + e.exports = { + isPoint: v, + isPointCompressed: function (e) { + return !!v(e) && w(e) + }, + isPrivate: _, + pointAdd: function (e, t, r) { + if (!v(e)) throw new TypeError(p) + if (!v(t)) throw new TypeError(p) + const n = O(e), + i = O(t), + o = n.add(i) + return o.isInfinity() ? null : M(o, E(r, e)) + }, + pointAddScalar: function (e, t, r) { + if (!v(e)) throw new TypeError(p) + if (!m(t)) throw new TypeError(y) + const n = E(r, e), + i = O(e) + if (0 === t.compare(s)) return M(i, n) + const o = S(t), + a = d.mul(o), + u = i.add(a) + return u.isInfinity() ? null : M(u, n) + }, + pointCompress: function (e, t) { + if (!v(e)) throw new TypeError(p) + const r = O(e) + if (r.isInfinity()) throw new TypeError(p) + return M(r, E(t, e)) + }, + pointFromScalar: function (e, t) { + if (!_(e)) throw new TypeError(h) + const r = S(e), + n = d.mul(r) + return n.isInfinity() ? null : M(n, E(t)) + }, + pointMultiply: function (e, t, r) { + if (!v(e)) throw new TypeError(p) + if (!m(t)) throw new TypeError(y) + const n = E(r, e), + i = O(e), + o = S(t), + a = i.mul(o) + return a.isInfinity() ? null : M(a, n) + }, + privateAdd: function (e, t) { + if (!_(e)) throw new TypeError(h) + if (!m(t)) throw new TypeError(y) + const r = S(e), + n = S(t), + i = A(r.add(n).umod(f)) + return _(i) ? i : null + }, + privateSub: function (e, t) { + if (!_(e)) throw new TypeError(h) + if (!m(t)) throw new TypeError(y) + const r = S(e), + n = S(t), + i = A(r.sub(n).umod(f)) + return _(i) ? i : null + }, + sign: function (e, t) { + return T(e, t) + }, + signWithEntropy: function (e, t, r) { + return T(e, t, r) + }, + verify: function (e, t, r, i) { + if (!b(e)) throw new TypeError(g) + if (!v(t)) throw new TypeError(p) + if ( + !(function (e) { + const t = e.slice(0, 32), + r = e.slice(32, 64) + return n.isBuffer(e) && 64 === e.length && t.compare(u) < 0 && r.compare(u) < 0 + })(r) + ) + throw new TypeError('Expected Signature') + const o = O(t), + a = S(r.slice(0, 32)), + s = S(r.slice(32, 64)) + if (i && s.cmp(l) > 0) return !1 + if (a.gtn(0) <= 0) return !1 + if (s.gtn(0) <= 0) return !1 + const c = S(e), + h = s.invm(f), + y = c.mul(h).umod(f), + m = a.mul(h).umod(f), + w = d.mulAdd(y, o, m) + return !w.isInfinity() && w.x.umod(f).eq(a) + }, + } + }, + 40382: (e, t, r) => { + var n = r(18390).Buffer + const i = r(18451), + o = n.alloc(1, 1), + a = n.alloc(1, 0) + e.exports = function (e, t, r, s, u) { + let c = n.alloc(32, 0), + f = n.alloc(32, 1) + ;((c = i('sha256', c) + .update(f) + .update(a) + .update(t) + .update(e) + .update(u || '') + .digest()), + (f = i('sha256', c).update(f).digest()), + (c = i('sha256', c) + .update(f) + .update(o) + .update(t) + .update(e) + .update(u || '') + .digest()), + (f = i('sha256', c).update(f).digest()), + (f = i('sha256', c).update(f).digest())) + let l = f + for (; !s(l) || !r(l); ) + ((c = i('sha256', c).update(f).update(a).digest()), + (f = i('sha256', c).update(f).digest()), + (f = i('sha256', c).update(f).digest()), + (l = f)) + return l + } + }, + 4367: (e, t, r) => { + var n = r(27400) + function i(e) { + return e.name || e.toString().match(/function (.*?)\s*\(/)[1] + } + function o(e) { + return n.Nil(e) ? '' : i(e.constructor) + } + function a(e, t) { + Error.captureStackTrace && Error.captureStackTrace(e, t) + } + function s(e) { + return n.Function(e) ? (e.toJSON ? e.toJSON() : i(e)) : n.Array(e) ? 'Array' : e && n.Object(e) ? 'Object' : void 0 !== e ? e : '' + } + function u(e, t, r) { + var i = (function (e) { + return n.Function(e) ? '' : n.String(e) ? JSON.stringify(e) : e && n.Object(e) ? '' : e + })(t) + return 'Expected ' + s(e) + ', got' + ('' !== r ? ' ' + r : '') + ('' !== i ? ' ' + i : '') + } + function c(e, t, r) { + ;((r = r || o(t)), (this.message = u(e, t, r)), a(this, c), (this.__type = e), (this.__value = t), (this.__valueTypeName = r)) + } + function f(e, t, r, n, i) { + ;(e + ? ((i = i || o(n)), + (this.message = (function (e, t, r, n, i) { + var o = '" of type ' + return ('key' === t && (o = '" with key type '), u('property "' + s(r) + o + s(e), n, i)) + })(e, r, t, n, i))) + : (this.message = 'Unexpected property "' + t + '"'), + a(this, c), + (this.__label = r), + (this.__property = t), + (this.__type = e), + (this.__value = n), + (this.__valueTypeName = i)) + } + ;((c.prototype = Object.create(Error.prototype)), + (c.prototype.constructor = c), + (f.prototype = Object.create(Error.prototype)), + (f.prototype.constructor = c), + (e.exports = { + TfTypeError: c, + TfPropertyTypeError: f, + tfCustomError: function (e, t) { + return new c(e, {}, t) + }, + tfSubError: function (e, t, r) { + return ( + e instanceof f + ? ((t = t + '.' + e.__property), (e = new f(e.__type, t, e.__label, e.__value, e.__valueTypeName))) + : e instanceof c && (e = new f(e.__type, t, r, e.__value, e.__valueTypeName)), + a(e), + e + ) + }, + tfJSON: s, + getValueTypeName: o, + })) + }, + 51566: (e, t, r) => { + var n = r(18390).Buffer, + i = r(27400), + o = r(4367) + function a(e) { + return n.isBuffer(e) + } + function s(e) { + return 'string' == typeof e && /^([0-9a-f]{2})+$/i.test(e) + } + function u(e, t) { + var r = e.toJSON() + function n(n) { + if (!e(n)) return !1 + if (n.length === t) return !0 + throw o.tfCustomError(r + '(Length: ' + t + ')', r + '(Length: ' + n.length + ')') + } + return ( + (n.toJSON = function () { + return r + }), + n + ) + } + var c = u.bind(null, i.Array), + f = u.bind(null, a), + l = u.bind(null, s), + d = u.bind(null, i.String), + h = Math.pow(2, 53) - 1, + p = { + ArrayN: c, + Buffer: a, + BufferN: f, + Finite: function (e) { + return 'number' == typeof e && isFinite(e) + }, + Hex: s, + HexN: l, + Int8: function (e) { + return (e << 24) >> 24 === e + }, + Int16: function (e) { + return (e << 16) >> 16 === e + }, + Int32: function (e) { + return (0 | e) === e + }, + Int53: function (e) { + return 'number' == typeof e && e >= -h && e <= h && Math.floor(e) === e + }, + Range: function (e, t, r) { + function n(n, i) { + return r(n, i) && n > e && n < t + } + return ( + (r = r || i.Number), + (n.toJSON = function () { + return `${r.toJSON()} between [${e}, ${t}]` + }), + n + ) + }, + StringN: d, + UInt8: function (e) { + return (255 & e) === e + }, + UInt16: function (e) { + return (65535 & e) === e + }, + UInt32: function (e) { + return e >>> 0 === e + }, + UInt53: function (e) { + return 'number' == typeof e && e >= 0 && e <= h && Math.floor(e) === e + }, + } + for (var y in p) + p[y].toJSON = function (e) { + return e + }.bind(null, y) + e.exports = p + }, + 22420: (e, t, r) => { + var n = r(4367), + i = r(27400), + o = n.tfJSON, + a = n.TfTypeError, + s = n.TfPropertyTypeError, + u = n.tfSubError, + c = n.getValueTypeName, + f = { + arrayOf: function (e, t) { + function r(r, n) { + return ( + !!i.Array(r) && + !i.Nil(r) && + !(void 0 !== t.minLength && r.length < t.minLength) && + !(void 0 !== t.maxLength && r.length > t.maxLength) && + (void 0 === t.length || r.length === t.length) && + r.every(function (t, r) { + try { + return d(e, t, n) + } catch (e) { + throw u(e, r) + } + }) + ) + } + return ( + (e = l(e)), + (t = t || {}), + (r.toJSON = function () { + var r = '[' + o(e) + ']' + return ( + void 0 !== t.length + ? (r += '{' + t.length + '}') + : (void 0 === t.minLength && void 0 === t.maxLength) || + (r += '{' + (void 0 === t.minLength ? 0 : t.minLength) + ',' + (void 0 === t.maxLength ? 1 / 0 : t.maxLength) + '}'), + r + ) + }), + r + ) + }, + maybe: function e(t) { + function r(r, n) { + return i.Nil(r) || t(r, n, e) + } + return ( + (t = l(t)), + (r.toJSON = function () { + return '?' + o(t) + }), + r + ) + }, + map: function (e, t) { + function r(r, n) { + if (!i.Object(r)) return !1 + if (i.Nil(r)) return !1 + for (var o in r) { + try { + t && d(t, o, n) + } catch (e) { + throw u(e, o, 'key') + } + try { + var a = r[o] + d(e, a, n) + } catch (e) { + throw u(e, o) + } + } + return !0 + } + return ( + (e = l(e)), + t && (t = l(t)), + (r.toJSON = t + ? function () { + return '{' + o(t) + ': ' + o(e) + '}' + } + : function () { + return '{' + o(e) + '}' + }), + r + ) + }, + object: function (e) { + var t = {} + for (var r in e) t[r] = l(e[r]) + function n(e, r) { + if (!i.Object(e)) return !1 + if (i.Nil(e)) return !1 + var n + try { + for (n in t) d(t[n], e[n], r) + } catch (e) { + throw u(e, n) + } + if (r) for (n in e) if (!t[n]) throw new s(void 0, n) + return !0 + } + return ( + (n.toJSON = function () { + return o(t) + }), + n + ) + }, + anyOf: function () { + var e = [].slice.call(arguments).map(l) + function t(t, r) { + return e.some(function (e) { + try { + return d(e, t, r) + } catch (e) { + return !1 + } + }) + } + return ( + (t.toJSON = function () { + return e.map(o).join('|') + }), + t + ) + }, + allOf: function () { + var e = [].slice.call(arguments).map(l) + function t(t, r) { + return e.every(function (e) { + try { + return d(e, t, r) + } catch (e) { + return !1 + } + }) + } + return ( + (t.toJSON = function () { + return e.map(o).join(' & ') + }), + t + ) + }, + quacksLike: function (e) { + function t(t) { + return e === c(t) + } + return ( + (t.toJSON = function () { + return e + }), + t + ) + }, + tuple: function () { + var e = [].slice.call(arguments).map(l) + function t(t, r) { + return ( + !i.Nil(t) && + !i.Nil(t.length) && + (!r || t.length === e.length) && + e.every(function (e, n) { + try { + return d(e, t[n], r) + } catch (e) { + throw u(e, n) + } + }) + ) + } + return ( + (t.toJSON = function () { + return '(' + e.map(o).join(', ') + ')' + }), + t + ) + }, + value: function (e) { + function t(t) { + return t === e + } + return ( + (t.toJSON = function () { + return e + }), + t + ) + }, + } + function l(e) { + if (i.String(e)) return '?' === e[0] ? f.maybe(e.slice(1)) : i[e] || f.quacksLike(e) + if (e && i.Object(e)) { + if (i.Array(e)) { + if (1 !== e.length) throw new TypeError('Expected compile() parameter of type Array of length 1') + return f.arrayOf(e[0]) + } + return f.object(e) + } + return i.Function(e) ? e : f.value(e) + } + function d(e, t, r, n) { + if (i.Function(e)) { + if (e(t, r)) return !0 + throw new a(n || e, t) + } + return d(l(e), t, r) + } + for (var h in ((f.oneOf = f.anyOf), i)) d[h] = i[h] + for (h in f) d[h] = f[h] + var p = r(51566) + for (h in p) d[h] = p[h] + ;((d.compile = l), (d.TfTypeError = a), (d.TfPropertyTypeError = s), (e.exports = d)) + }, + 27400: (e) => { + var t = { + Array: function (e) { + return null != e && e.constructor === Array + }, + Boolean: function (e) { + return 'boolean' == typeof e + }, + Function: function (e) { + return 'function' == typeof e + }, + Nil: function (e) { + return null == e + }, + Number: function (e) { + return 'number' == typeof e + }, + Object: function (e) { + return 'object' == typeof e + }, + String: function (e) { + return 'string' == typeof e + }, + '': function () { + return !0 + }, + } + for (var r in ((t.Null = t.Nil), t)) + t[r].toJSON = function (e) { + return e + }.bind(null, r) + e.exports = t + }, + 92761: function (e, t, r) { + var n + ;((e = r.nmd(e)), + (function (i) { + ;(t && t.nodeType, e && e.nodeType) + var o = 'object' == typeof r.g && r.g + o.global !== o && o.window !== o && o.self + var a, + s = 2147483647, + u = 36, + c = 26, + f = 38, + l = 700, + d = /^xn--/, + h = /[^\x20-\x7E]/, + p = /[\x2E\u3002\uFF0E\uFF61]/g, + y = { + overflow: 'Overflow: input needs wider integers to process', + 'not-basic': 'Illegal input >= 0x80 (not a basic code point)', + 'invalid-input': 'Invalid input', + }, + g = u - 1, + b = Math.floor, + m = String.fromCharCode + function v(e) { + throw new RangeError(y[e]) + } + function w(e, t) { + for (var r = e.length, n = []; r--; ) n[r] = t(e[r]) + return n + } + function _(e, t) { + var r = e.split('@'), + n = '' + return (r.length > 1 && ((n = r[0] + '@'), (e = r[1])), n + w((e = e.replace(p, '.')).split('.'), t).join('.')) + } + function E(e) { + for (var t, r, n = [], i = 0, o = e.length; i < o; ) + (t = e.charCodeAt(i++)) >= 55296 && t <= 56319 && i < o + ? 56320 == (64512 & (r = e.charCodeAt(i++))) + ? n.push(((1023 & t) << 10) + (1023 & r) + 65536) + : (n.push(t), i--) + : n.push(t) + return n + } + function S(e) { + return w(e, function (e) { + var t = '' + return (e > 65535 && ((t += m((((e -= 65536) >>> 10) & 1023) | 55296)), (e = 56320 | (1023 & e))), t + m(e)) + }).join('') + } + function A(e, t) { + return e + 22 + 75 * (e < 26) - ((0 != t) << 5) + } + function O(e, t, r) { + var n = 0 + for (e = r ? b(e / l) : e >> 1, e += b(e / t); e > (g * c) >> 1; n += u) e = b(e / g) + return b(n + ((g + 1) * e) / (e + f)) + } + function M(e) { + var t, + r, + n, + i, + o, + a, + f, + l, + d, + h, + p, + y = [], + g = e.length, + m = 0, + w = 128, + _ = 72 + for ((r = e.lastIndexOf('-')) < 0 && (r = 0), n = 0; n < r; ++n) (e.charCodeAt(n) >= 128 && v('not-basic'), y.push(e.charCodeAt(n))) + for (i = r > 0 ? r + 1 : 0; i < g; ) { + for ( + o = m, a = 1, f = u; + i >= g && v('invalid-input'), + ((l = (p = e.charCodeAt(i++)) - 48 < 10 ? p - 22 : p - 65 < 26 ? p - 65 : p - 97 < 26 ? p - 97 : u) >= u || l > b((s - m) / a)) && + v('overflow'), + (m += l * a), + !(l < (d = f <= _ ? 1 : f >= _ + c ? c : f - _)); + f += u + ) + (a > b(s / (h = u - d)) && v('overflow'), (a *= h)) + ;((_ = O(m - o, (t = y.length + 1), 0 == o)), b(m / t) > s - w && v('overflow'), (w += b(m / t)), (m %= t), y.splice(m++, 0, w)) + } + return S(y) + } + function T(e) { + var t, + r, + n, + i, + o, + a, + f, + l, + d, + h, + p, + y, + g, + w, + _, + S = [] + for (y = (e = E(e)).length, t = 128, r = 0, o = 72, a = 0; a < y; ++a) (p = e[a]) < 128 && S.push(m(p)) + for (n = i = S.length, i && S.push('-'); n < y; ) { + for (f = s, a = 0; a < y; ++a) (p = e[a]) >= t && p < f && (f = p) + for (f - t > b((s - r) / (g = n + 1)) && v('overflow'), r += (f - t) * g, t = f, a = 0; a < y; ++a) + if (((p = e[a]) < t && ++r > s && v('overflow'), p == t)) { + for (l = r, d = u; !(l < (h = d <= o ? 1 : d >= o + c ? c : d - o)); d += u) + ((_ = l - h), (w = u - h), S.push(m(A(h + (_ % w), 0))), (l = b(_ / w))) + ;(S.push(m(A(l, 0))), (o = O(r, g, n == i)), (r = 0), ++n) + } + ;(++r, ++t) + } + return S.join('') + } + ;((a = { + version: '1.4.1', + ucs2: { decode: E, encode: S }, + decode: M, + encode: T, + toASCII: function (e) { + return _(e, function (e) { + return h.test(e) ? 'xn--' + T(e) : e + }) + }, + toUnicode: function (e) { + return _(e, function (e) { + return d.test(e) ? M(e.slice(4).toLowerCase()) : e + }) + }, + }), + void 0 === + (n = function () { + return a + }.call(t, r, t, e)) || (e.exports = n)) + })()) + }, + 85192: (e, t, r) => { + 'use strict' + var n = r(92761) + function i() { + ;((this.protocol = null), + (this.slashes = null), + (this.auth = null), + (this.host = null), + (this.port = null), + (this.hostname = null), + (this.hash = null), + (this.search = null), + (this.query = null), + (this.pathname = null), + (this.path = null), + (this.href = null)) + } + var o = /^([a-z0-9.+-]+:)/i, + a = /:[0-9]*$/, + s = /^(\/\/?(?!\/)[^?\s]*)(\?[^\s]*)?$/, + u = ['{', '}', '|', '\\', '^', '`'].concat(['<', '>', '"', '`', ' ', '\r', '\n', '\t']), + c = ["'"].concat(u), + f = ['%', '/', '?', ';', '#'].concat(c), + l = ['/', '?', '#'], + d = /^[+a-z0-9A-Z_-]{0,63}$/, + h = /^([+a-z0-9A-Z_-]{0,63})(.*)$/, + p = { javascript: !0, 'javascript:': !0 }, + y = { javascript: !0, 'javascript:': !0 }, + g = { http: !0, https: !0, ftp: !0, gopher: !0, file: !0, 'http:': !0, 'https:': !0, 'ftp:': !0, 'gopher:': !0, 'file:': !0 }, + b = r(88924) + function m(e, t, r) { + if (e && 'object' == typeof e && e instanceof i) return e + var n = new i() + return (n.parse(e, t, r), n) + } + ;((i.prototype.parse = function (e, t, r) { + if ('string' != typeof e) throw new TypeError("Parameter 'url' must be a string, not " + typeof e) + var i = e.indexOf('?'), + a = -1 !== i && i < e.indexOf('#') ? '?' : '#', + u = e.split(a) + u[0] = u[0].replace(/\\/g, '/') + var m = (e = u.join(a)) + if (((m = m.trim()), !r && 1 === e.split('#').length)) { + var v = s.exec(m) + if (v) + return ( + (this.path = m), + (this.href = m), + (this.pathname = v[1]), + v[2] + ? ((this.search = v[2]), (this.query = t ? b.parse(this.search.substr(1)) : this.search.substr(1))) + : t && ((this.search = ''), (this.query = {})), + this + ) + } + var w = o.exec(m) + if (w) { + var _ = (w = w[0]).toLowerCase() + ;((this.protocol = _), (m = m.substr(w.length))) + } + if (r || w || m.match(/^\/\/[^@/]+@[^@/]+/)) { + var E = '//' === m.substr(0, 2) + !E || (w && y[w]) || ((m = m.substr(2)), (this.slashes = !0)) + } + if (!y[w] && (E || (w && !g[w]))) { + for (var S, A, O = -1, M = 0; M < l.length; M++) -1 !== (T = m.indexOf(l[M])) && (-1 === O || T < O) && (O = T) + for ( + -1 !== (A = -1 === O ? m.lastIndexOf('@') : m.lastIndexOf('@', O)) && + ((S = m.slice(0, A)), (m = m.slice(A + 1)), (this.auth = decodeURIComponent(S))), + O = -1, + M = 0; + M < f.length; + M++ + ) { + var T + ;-1 !== (T = m.indexOf(f[M])) && (-1 === O || T < O) && (O = T) + } + ;(-1 === O && (O = m.length), (this.host = m.slice(0, O)), (m = m.slice(O)), this.parseHost(), (this.hostname = this.hostname || '')) + var I = '[' === this.hostname[0] && ']' === this.hostname[this.hostname.length - 1] + if (!I) + for (var N = this.hostname.split(/\./), x = ((M = 0), N.length); M < x; M++) { + var L = N[M] + if (L && !L.match(d)) { + for (var k = '', R = 0, P = L.length; R < P; R++) L.charCodeAt(R) > 127 ? (k += 'x') : (k += L[R]) + if (!k.match(d)) { + var B = N.slice(0, M), + D = N.slice(M + 1), + C = L.match(h) + ;(C && (B.push(C[1]), D.unshift(C[2])), D.length && (m = '/' + D.join('.') + m), (this.hostname = B.join('.'))) + break + } + } + } + ;(this.hostname.length > 255 ? (this.hostname = '') : (this.hostname = this.hostname.toLowerCase()), + I || (this.hostname = n.toASCII(this.hostname))) + var j = this.port ? ':' + this.port : '', + F = this.hostname || '' + ;((this.host = F + j), + (this.href += this.host), + I && ((this.hostname = this.hostname.substr(1, this.hostname.length - 2)), '/' !== m[0] && (m = '/' + m))) + } + if (!p[_]) + for (M = 0, x = c.length; M < x; M++) { + var U = c[M] + if (-1 !== m.indexOf(U)) { + var V = encodeURIComponent(U) + ;(V === U && (V = escape(U)), (m = m.split(U).join(V))) + } + } + var H = m.indexOf('#') + ;-1 !== H && ((this.hash = m.substr(H)), (m = m.slice(0, H))) + var z = m.indexOf('?') + if ( + (-1 !== z + ? ((this.search = m.substr(z)), (this.query = m.substr(z + 1)), t && (this.query = b.parse(this.query)), (m = m.slice(0, z))) + : t && ((this.search = ''), (this.query = {})), + m && (this.pathname = m), + g[_] && this.hostname && !this.pathname && (this.pathname = '/'), + this.pathname || this.search) + ) { + j = this.pathname || '' + var q = this.search || '' + this.path = j + q + } + return ((this.href = this.format()), this) + }), + (i.prototype.format = function () { + var e = this.auth || '' + e && ((e = (e = encodeURIComponent(e)).replace(/%3A/i, ':')), (e += '@')) + var t = this.protocol || '', + r = this.pathname || '', + n = this.hash || '', + i = !1, + o = '' + ;(this.host + ? (i = e + this.host) + : this.hostname && + ((i = e + (-1 === this.hostname.indexOf(':') ? this.hostname : '[' + this.hostname + ']')), this.port && (i += ':' + this.port)), + this.query && 'object' == typeof this.query && Object.keys(this.query).length && (o = b.stringify(this.query))) + var a = this.search || (o && '?' + o) || '' + return ( + t && ':' !== t.substr(-1) && (t += ':'), + this.slashes || ((!t || g[t]) && !1 !== i) ? ((i = '//' + (i || '')), r && '/' !== r.charAt(0) && (r = '/' + r)) : i || (i = ''), + n && '#' !== n.charAt(0) && (n = '#' + n), + a && '?' !== a.charAt(0) && (a = '?' + a), + t + + i + + (r = r.replace(/[?#]/g, function (e) { + return encodeURIComponent(e) + })) + + (a = a.replace('#', '%23')) + + n + ) + }), + (i.prototype.resolve = function (e) { + return this.resolveObject(m(e, !1, !0)).format() + }), + (i.prototype.resolveObject = function (e) { + if ('string' == typeof e) { + var t = new i() + ;(t.parse(e, !1, !0), (e = t)) + } + for (var r = new i(), n = Object.keys(this), o = 0; o < n.length; o++) { + var a = n[o] + r[a] = this[a] + } + if (((r.hash = e.hash), '' === e.href)) return ((r.href = r.format()), r) + if (e.slashes && !e.protocol) { + for (var s = Object.keys(e), u = 0; u < s.length; u++) { + var c = s[u] + 'protocol' !== c && (r[c] = e[c]) + } + return (g[r.protocol] && r.hostname && !r.pathname && ((r.pathname = '/'), (r.path = r.pathname)), (r.href = r.format()), r) + } + if (e.protocol && e.protocol !== r.protocol) { + if (!g[e.protocol]) { + for (var f = Object.keys(e), l = 0; l < f.length; l++) { + var d = f[l] + r[d] = e[d] + } + return ((r.href = r.format()), r) + } + if (((r.protocol = e.protocol), e.host || y[e.protocol])) r.pathname = e.pathname + else { + for (var h = (e.pathname || '').split('/'); h.length && !(e.host = h.shift()); ); + ;(e.host || (e.host = ''), + e.hostname || (e.hostname = ''), + '' !== h[0] && h.unshift(''), + h.length < 2 && h.unshift(''), + (r.pathname = h.join('/'))) + } + if ( + ((r.search = e.search), + (r.query = e.query), + (r.host = e.host || ''), + (r.auth = e.auth), + (r.hostname = e.hostname || e.host), + (r.port = e.port), + r.pathname || r.search) + ) { + var p = r.pathname || '', + b = r.search || '' + r.path = p + b + } + return ((r.slashes = r.slashes || e.slashes), (r.href = r.format()), r) + } + var m = r.pathname && '/' === r.pathname.charAt(0), + v = e.host || (e.pathname && '/' === e.pathname.charAt(0)), + w = v || m || (r.host && e.pathname), + _ = w, + E = (r.pathname && r.pathname.split('/')) || [], + S = ((h = (e.pathname && e.pathname.split('/')) || []), r.protocol && !g[r.protocol]) + if ( + (S && + ((r.hostname = ''), + (r.port = null), + r.host && ('' === E[0] ? (E[0] = r.host) : E.unshift(r.host)), + (r.host = ''), + e.protocol && ((e.hostname = null), (e.port = null), e.host && ('' === h[0] ? (h[0] = e.host) : h.unshift(e.host)), (e.host = null)), + (w = w && ('' === h[0] || '' === E[0]))), + v) + ) + ((r.host = e.host || '' === e.host ? e.host : r.host), + (r.hostname = e.hostname || '' === e.hostname ? e.hostname : r.hostname), + (r.search = e.search), + (r.query = e.query), + (E = h)) + else if (h.length) (E || (E = []), E.pop(), (E = E.concat(h)), (r.search = e.search), (r.query = e.query)) + else if (null != e.search) + return ( + S && + ((r.host = E.shift()), + (r.hostname = r.host), + (I = !!(r.host && r.host.indexOf('@') > 0) && r.host.split('@')) && + ((r.auth = I.shift()), (r.hostname = I.shift()), (r.host = r.hostname))), + (r.search = e.search), + (r.query = e.query), + (null === r.pathname && null === r.search) || (r.path = (r.pathname ? r.pathname : '') + (r.search ? r.search : '')), + (r.href = r.format()), + r + ) + if (!E.length) return ((r.pathname = null), r.search ? (r.path = '/' + r.search) : (r.path = null), (r.href = r.format()), r) + for ( + var A = E.slice(-1)[0], O = ((r.host || e.host || E.length > 1) && ('.' === A || '..' === A)) || '' === A, M = 0, T = E.length; + T >= 0; + T-- + ) + '.' === (A = E[T]) ? E.splice(T, 1) : '..' === A ? (E.splice(T, 1), M++) : M && (E.splice(T, 1), M--) + if (!w && !_) for (; M--; M) E.unshift('..') + ;(!w || '' === E[0] || (E[0] && '/' === E[0].charAt(0)) || E.unshift(''), O && '/' !== E.join('/').substr(-1) && E.push('')) + var I, + N = '' === E[0] || (E[0] && '/' === E[0].charAt(0)) + return ( + S && + ((r.hostname = N ? '' : E.length ? E.shift() : ''), + (r.host = r.hostname), + (I = !!(r.host && r.host.indexOf('@') > 0) && r.host.split('@')) && + ((r.auth = I.shift()), (r.hostname = I.shift()), (r.host = r.hostname))), + (w = w || (r.host && E.length)) && !N && E.unshift(''), + E.length > 0 ? (r.pathname = E.join('/')) : ((r.pathname = null), (r.path = null)), + (null === r.pathname && null === r.search) || (r.path = (r.pathname ? r.pathname : '') + (r.search ? r.search : '')), + (r.auth = e.auth || r.auth), + (r.slashes = r.slashes || e.slashes), + (r.href = r.format()), + r + ) + }), + (i.prototype.parseHost = function () { + var e = this.host, + t = a.exec(e) + ;(t && (':' !== (t = t[0]) && (this.port = t.substr(1)), (e = e.substr(0, e.length - t.length))), e && (this.hostname = e)) + }), + (t.parse = m), + (t.resolve = function (e, t) { + return m(e, !1, !0).resolve(t) + }), + (t.resolveObject = function (e, t) { + return e ? m(e, !1, !0).resolveObject(t) : t + }), + (t.format = function (e) { + return ('string' == typeof e && (e = m(e)), e instanceof i ? e.format() : i.prototype.format.call(e)) + }), + (t.Url = i)) + }, + 11741: (e, t, r) => { + function n(e) { + try { + if (!r.g.localStorage) return !1 + } catch (e) { + return !1 + } + var t = r.g.localStorage[e] + return null != t && 'true' === String(t).toLowerCase() + } + e.exports = function (e, t) { + if (n('noDeprecation')) return e + var r = !1 + return function () { + if (!r) { + if (n('throwDeprecation')) throw new Error(t) + ;(n('traceDeprecation') ? console.trace(t) : console.warn(t), (r = !0)) + } + return e.apply(this, arguments) + } + } + }, + 31303: (e) => { + e.exports = function (e) { + return e && 'object' == typeof e && 'function' == typeof e.copy && 'function' == typeof e.fill && 'function' == typeof e.readUInt8 + } + }, + 92273: (e, t, r) => { + 'use strict' + var n = r(1025), + i = r(99958), + o = r(90194), + a = r(44406) + function s(e) { + return e.call.bind(e) + } + var u = 'undefined' != typeof BigInt, + c = 'undefined' != typeof Symbol, + f = s(Object.prototype.toString), + l = s(Number.prototype.valueOf), + d = s(String.prototype.valueOf), + h = s(Boolean.prototype.valueOf) + if (u) var p = s(BigInt.prototype.valueOf) + if (c) var y = s(Symbol.prototype.valueOf) + function g(e, t) { + if ('object' != typeof e) return !1 + try { + return (t(e), !0) + } catch (e) { + return !1 + } + } + function b(e) { + return '[object Map]' === f(e) + } + function m(e) { + return '[object Set]' === f(e) + } + function v(e) { + return '[object WeakMap]' === f(e) + } + function w(e) { + return '[object WeakSet]' === f(e) + } + function _(e) { + return '[object ArrayBuffer]' === f(e) + } + function E(e) { + return 'undefined' != typeof ArrayBuffer && (_.working ? _(e) : e instanceof ArrayBuffer) + } + function S(e) { + return '[object DataView]' === f(e) + } + function A(e) { + return 'undefined' != typeof DataView && (S.working ? S(e) : e instanceof DataView) + } + ;((t.isArgumentsObject = n), + (t.isGeneratorFunction = i), + (t.isTypedArray = a), + (t.isPromise = function (e) { + return ( + ('undefined' != typeof Promise && e instanceof Promise) || + (null !== e && 'object' == typeof e && 'function' == typeof e.then && 'function' == typeof e.catch) + ) + }), + (t.isArrayBufferView = function (e) { + return 'undefined' != typeof ArrayBuffer && ArrayBuffer.isView ? ArrayBuffer.isView(e) : a(e) || A(e) + }), + (t.isUint8Array = function (e) { + return 'Uint8Array' === o(e) + }), + (t.isUint8ClampedArray = function (e) { + return 'Uint8ClampedArray' === o(e) + }), + (t.isUint16Array = function (e) { + return 'Uint16Array' === o(e) + }), + (t.isUint32Array = function (e) { + return 'Uint32Array' === o(e) + }), + (t.isInt8Array = function (e) { + return 'Int8Array' === o(e) + }), + (t.isInt16Array = function (e) { + return 'Int16Array' === o(e) + }), + (t.isInt32Array = function (e) { + return 'Int32Array' === o(e) + }), + (t.isFloat32Array = function (e) { + return 'Float32Array' === o(e) + }), + (t.isFloat64Array = function (e) { + return 'Float64Array' === o(e) + }), + (t.isBigInt64Array = function (e) { + return 'BigInt64Array' === o(e) + }), + (t.isBigUint64Array = function (e) { + return 'BigUint64Array' === o(e) + }), + (b.working = 'undefined' != typeof Map && b(new Map())), + (t.isMap = function (e) { + return 'undefined' != typeof Map && (b.working ? b(e) : e instanceof Map) + }), + (m.working = 'undefined' != typeof Set && m(new Set())), + (t.isSet = function (e) { + return 'undefined' != typeof Set && (m.working ? m(e) : e instanceof Set) + }), + (v.working = 'undefined' != typeof WeakMap && v(new WeakMap())), + (t.isWeakMap = function (e) { + return 'undefined' != typeof WeakMap && (v.working ? v(e) : e instanceof WeakMap) + }), + (w.working = 'undefined' != typeof WeakSet && w(new WeakSet())), + (t.isWeakSet = function (e) { + return w(e) + }), + (_.working = 'undefined' != typeof ArrayBuffer && _(new ArrayBuffer())), + (t.isArrayBuffer = E), + (S.working = 'undefined' != typeof ArrayBuffer && 'undefined' != typeof DataView && S(new DataView(new ArrayBuffer(1), 0, 1))), + (t.isDataView = A)) + var O = 'undefined' != typeof SharedArrayBuffer ? SharedArrayBuffer : void 0 + function M(e) { + return '[object SharedArrayBuffer]' === f(e) + } + function T(e) { + return void 0 !== O && (void 0 === M.working && (M.working = M(new O())), M.working ? M(e) : e instanceof O) + } + function I(e) { + return g(e, l) + } + function N(e) { + return g(e, d) + } + function x(e) { + return g(e, h) + } + function L(e) { + return u && g(e, p) + } + function k(e) { + return c && g(e, y) + } + ;((t.isSharedArrayBuffer = T), + (t.isAsyncFunction = function (e) { + return '[object AsyncFunction]' === f(e) + }), + (t.isMapIterator = function (e) { + return '[object Map Iterator]' === f(e) + }), + (t.isSetIterator = function (e) { + return '[object Set Iterator]' === f(e) + }), + (t.isGeneratorObject = function (e) { + return '[object Generator]' === f(e) + }), + (t.isWebAssemblyCompiledModule = function (e) { + return '[object WebAssembly.Module]' === f(e) + }), + (t.isNumberObject = I), + (t.isStringObject = N), + (t.isBooleanObject = x), + (t.isBigIntObject = L), + (t.isSymbolObject = k), + (t.isBoxedPrimitive = function (e) { + return I(e) || N(e) || x(e) || L(e) || k(e) + }), + (t.isAnyArrayBuffer = function (e) { + return 'undefined' != typeof Uint8Array && (E(e) || T(e)) + }), + ['isProxy', 'isExternal', 'isModuleNamespaceObject'].forEach(function (e) { + Object.defineProperty(t, e, { + enumerable: !1, + value: function () { + throw new Error(e + ' is not supported in userland') + }, + }) + })) + }, + 75786: (e, t, r) => { + var n = r(48494), + i = + Object.getOwnPropertyDescriptors || + function (e) { + for (var t = Object.keys(e), r = {}, n = 0; n < t.length; n++) r[t[n]] = Object.getOwnPropertyDescriptor(e, t[n]) + return r + }, + o = /%[sdj%]/g + ;((t.format = function (e) { + if (!v(e)) { + for (var t = [], r = 0; r < arguments.length; r++) t.push(c(arguments[r])) + return t.join(' ') + } + r = 1 + for ( + var n = arguments, + i = n.length, + a = String(e).replace(o, function (e) { + if ('%%' === e) return '%' + if (r >= i) return e + switch (e) { + case '%s': + return String(n[r++]) + case '%d': + return Number(n[r++]) + case '%j': + try { + return JSON.stringify(n[r++]) + } catch (e) { + return '[Circular]' + } + default: + return e + } + }), + s = n[r]; + r < i; + s = n[++r] + ) + b(s) || !E(s) ? (a += ' ' + s) : (a += ' ' + c(s)) + return a + }), + (t.deprecate = function (e, r) { + if (void 0 !== n && !0 === n.noDeprecation) return e + if (void 0 === n) + return function () { + return t.deprecate(e, r).apply(this, arguments) + } + var i = !1 + return function () { + if (!i) { + if (n.throwDeprecation) throw new Error(r) + ;(n.traceDeprecation ? console.trace(r) : console.error(r), (i = !0)) + } + return e.apply(this, arguments) + } + })) + var a = {}, + s = /^$/ + if (n.env.NODE_DEBUG) { + var u = n.env.NODE_DEBUG + ;((u = u + .replace(/[|\\{}()[\]^$+?.]/g, '\\$&') + .replace(/\*/g, '.*') + .replace(/,/g, '$|^') + .toUpperCase()), + (s = new RegExp('^' + u + '$', 'i'))) + } + function c(e, r) { + var n = { seen: [], stylize: l } + return ( + arguments.length >= 3 && (n.depth = arguments[2]), + arguments.length >= 4 && (n.colors = arguments[3]), + g(r) ? (n.showHidden = r) : r && t._extend(n, r), + w(n.showHidden) && (n.showHidden = !1), + w(n.depth) && (n.depth = 2), + w(n.colors) && (n.colors = !1), + w(n.customInspect) && (n.customInspect = !0), + n.colors && (n.stylize = f), + d(n, e, n.depth) + ) + } + function f(e, t) { + var r = c.styles[t] + return r ? '[' + c.colors[r][0] + 'm' + e + '[' + c.colors[r][1] + 'm' : e + } + function l(e, t) { + return e + } + function d(e, r, n) { + if (e.customInspect && r && O(r.inspect) && r.inspect !== t.inspect && (!r.constructor || r.constructor.prototype !== r)) { + var i = r.inspect(n, e) + return (v(i) || (i = d(e, i, n)), i) + } + var o = (function (e, t) { + if (w(t)) return e.stylize('undefined', 'undefined') + if (v(t)) { + var r = "'" + JSON.stringify(t).replace(/^"|"$/g, '').replace(/'/g, "\\'").replace(/\\"/g, '"') + "'" + return e.stylize(r, 'string') + } + return m(t) ? e.stylize('' + t, 'number') : g(t) ? e.stylize('' + t, 'boolean') : b(t) ? e.stylize('null', 'null') : void 0 + })(e, r) + if (o) return o + var a = Object.keys(r), + s = (function (e) { + var t = {} + return ( + e.forEach(function (e, r) { + t[e] = !0 + }), + t + ) + })(a) + if ((e.showHidden && (a = Object.getOwnPropertyNames(r)), A(r) && (a.indexOf('message') >= 0 || a.indexOf('description') >= 0))) return h(r) + if (0 === a.length) { + if (O(r)) { + var u = r.name ? ': ' + r.name : '' + return e.stylize('[Function' + u + ']', 'special') + } + if (_(r)) return e.stylize(RegExp.prototype.toString.call(r), 'regexp') + if (S(r)) return e.stylize(Date.prototype.toString.call(r), 'date') + if (A(r)) return h(r) + } + var c, + f = '', + l = !1, + E = ['{', '}'] + return ( + y(r) && ((l = !0), (E = ['[', ']'])), + O(r) && (f = ' [Function' + (r.name ? ': ' + r.name : '') + ']'), + _(r) && (f = ' ' + RegExp.prototype.toString.call(r)), + S(r) && (f = ' ' + Date.prototype.toUTCString.call(r)), + A(r) && (f = ' ' + h(r)), + 0 !== a.length || (l && 0 != r.length) + ? n < 0 + ? _(r) + ? e.stylize(RegExp.prototype.toString.call(r), 'regexp') + : e.stylize('[Object]', 'special') + : (e.seen.push(r), + (c = l + ? (function (e, t, r, n, i) { + for (var o = [], a = 0, s = t.length; a < s; ++a) N(t, String(a)) ? o.push(p(e, t, r, n, String(a), !0)) : o.push('') + return ( + i.forEach(function (i) { + i.match(/^\d+$/) || o.push(p(e, t, r, n, i, !0)) + }), + o + ) + })(e, r, n, s, a) + : a.map(function (t) { + return p(e, r, n, s, t, l) + })), + e.seen.pop(), + (function (e, t, r) { + return e.reduce(function (e, t) { + return (t.indexOf('\n'), e + t.replace(/\u001b\[\d\d?m/g, '').length + 1) + }, 0) > 60 + ? r[0] + ('' === t ? '' : t + '\n ') + ' ' + e.join(',\n ') + ' ' + r[1] + : r[0] + t + ' ' + e.join(', ') + ' ' + r[1] + })(c, f, E)) + : E[0] + f + E[1] + ) + } + function h(e) { + return '[' + Error.prototype.toString.call(e) + ']' + } + function p(e, t, r, n, i, o) { + var a, s, u + if ( + ((u = Object.getOwnPropertyDescriptor(t, i) || { value: t[i] }).get + ? (s = u.set ? e.stylize('[Getter/Setter]', 'special') : e.stylize('[Getter]', 'special')) + : u.set && (s = e.stylize('[Setter]', 'special')), + N(n, i) || (a = '[' + i + ']'), + s || + (e.seen.indexOf(u.value) < 0 + ? (s = b(r) ? d(e, u.value, null) : d(e, u.value, r - 1)).indexOf('\n') > -1 && + (s = o + ? s + .split('\n') + .map(function (e) { + return ' ' + e + }) + .join('\n') + .slice(2) + : '\n' + + s + .split('\n') + .map(function (e) { + return ' ' + e + }) + .join('\n')) + : (s = e.stylize('[Circular]', 'special'))), + w(a)) + ) { + if (o && i.match(/^\d+$/)) return s + ;(a = JSON.stringify('' + i)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/) + ? ((a = a.slice(1, -1)), (a = e.stylize(a, 'name'))) + : ((a = a + .replace(/'/g, "\\'") + .replace(/\\"/g, '"') + .replace(/(^"|"$)/g, "'")), + (a = e.stylize(a, 'string'))) + } + return a + ': ' + s + } + function y(e) { + return Array.isArray(e) + } + function g(e) { + return 'boolean' == typeof e + } + function b(e) { + return null === e + } + function m(e) { + return 'number' == typeof e + } + function v(e) { + return 'string' == typeof e + } + function w(e) { + return void 0 === e + } + function _(e) { + return E(e) && '[object RegExp]' === M(e) + } + function E(e) { + return 'object' == typeof e && null !== e + } + function S(e) { + return E(e) && '[object Date]' === M(e) + } + function A(e) { + return E(e) && ('[object Error]' === M(e) || e instanceof Error) + } + function O(e) { + return 'function' == typeof e + } + function M(e) { + return Object.prototype.toString.call(e) + } + function T(e) { + return e < 10 ? '0' + e.toString(10) : e.toString(10) + } + ;((t.debuglog = function (e) { + if (((e = e.toUpperCase()), !a[e])) + if (s.test(e)) { + var r = n.pid + a[e] = function () { + var n = t.format.apply(t, arguments) + console.error('%s %d: %s', e, r, n) + } + } else a[e] = function () {} + return a[e] + }), + (t.inspect = c), + (c.colors = { + bold: [1, 22], + italic: [3, 23], + underline: [4, 24], + inverse: [7, 27], + white: [37, 39], + grey: [90, 39], + black: [30, 39], + blue: [34, 39], + cyan: [36, 39], + green: [32, 39], + magenta: [35, 39], + red: [31, 39], + yellow: [33, 39], + }), + (c.styles = { + special: 'cyan', + number: 'yellow', + boolean: 'yellow', + undefined: 'grey', + null: 'bold', + string: 'green', + date: 'magenta', + regexp: 'red', + }), + (t.types = r(92273)), + (t.isArray = y), + (t.isBoolean = g), + (t.isNull = b), + (t.isNullOrUndefined = function (e) { + return null == e + }), + (t.isNumber = m), + (t.isString = v), + (t.isSymbol = function (e) { + return 'symbol' == typeof e + }), + (t.isUndefined = w), + (t.isRegExp = _), + (t.types.isRegExp = _), + (t.isObject = E), + (t.isDate = S), + (t.types.isDate = S), + (t.isError = A), + (t.types.isNativeError = A), + (t.isFunction = O), + (t.isPrimitive = function (e) { + return null === e || 'boolean' == typeof e || 'number' == typeof e || 'string' == typeof e || 'symbol' == typeof e || void 0 === e + }), + (t.isBuffer = r(31303))) + var I = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] + function N(e, t) { + return Object.prototype.hasOwnProperty.call(e, t) + } + ;((t.log = function () { + var e, r + console.log( + '%s - %s', + ((r = [T((e = new Date()).getHours()), T(e.getMinutes()), T(e.getSeconds())].join(':')), [e.getDate(), I[e.getMonth()], r].join(' ')), + t.format.apply(t, arguments), + ) + }), + (t.inherits = r(19105)), + (t._extend = function (e, t) { + if (!t || !E(t)) return e + for (var r = Object.keys(t), n = r.length; n--; ) e[r[n]] = t[r[n]] + return e + })) + var x = 'undefined' != typeof Symbol ? Symbol('util.promisify.custom') : void 0 + function L(e, t) { + if (!e) { + var r = new Error('Promise was rejected with a falsy value') + ;((r.reason = e), (e = r)) + } + return t(e) + } + ;((t.promisify = function (e) { + if ('function' != typeof e) throw new TypeError('The "original" argument must be of type Function') + if (x && e[x]) { + var t + if ('function' != typeof (t = e[x])) throw new TypeError('The "util.promisify.custom" argument must be of type Function') + return (Object.defineProperty(t, x, { value: t, enumerable: !1, writable: !1, configurable: !0 }), t) + } + function t() { + for ( + var t, + r, + n = new Promise(function (e, n) { + ;((t = e), (r = n)) + }), + i = [], + o = 0; + o < arguments.length; + o++ + ) + i.push(arguments[o]) + i.push(function (e, n) { + e ? r(e) : t(n) + }) + try { + e.apply(this, i) + } catch (e) { + r(e) + } + return n + } + return ( + Object.setPrototypeOf(t, Object.getPrototypeOf(e)), + x && Object.defineProperty(t, x, { value: t, enumerable: !1, writable: !1, configurable: !0 }), + Object.defineProperties(t, i(e)) + ) + }), + (t.promisify.custom = x), + (t.callbackify = function (e) { + if ('function' != typeof e) throw new TypeError('The "original" argument must be of type Function') + function t() { + for (var t = [], r = 0; r < arguments.length; r++) t.push(arguments[r]) + var i = t.pop() + if ('function' != typeof i) throw new TypeError('The last argument must be of type Function') + var o = this, + a = function () { + return i.apply(o, arguments) + } + e.apply(this, t).then( + function (e) { + n.nextTick(a.bind(null, null, e)) + }, + function (e) { + n.nextTick(L.bind(null, e, a)) + }, + ) + } + return (Object.setPrototypeOf(t, Object.getPrototypeOf(e)), Object.defineProperties(t, i(e)), t) + })) + }, + 90194: (e, t, r) => { + 'use strict' + var n = r(15583), + i = r(74546), + o = r(34537), + a = r(558), + s = o('Object.prototype.toString'), + u = r(16697)(), + c = 'undefined' == typeof globalThis ? r.g : globalThis, + f = i(), + l = o('String.prototype.slice'), + d = {}, + h = Object.getPrototypeOf + u && + a && + h && + n(f, function (e) { + if ('function' == typeof c[e]) { + var t = new c[e]() + if (Symbol.toStringTag in t) { + var r = h(t), + n = a(r, Symbol.toStringTag) + if (!n) { + var i = h(r) + n = a(i, Symbol.toStringTag) + } + d[e] = n.get + } + } + }) + var p = r(44406) + e.exports = function (e) { + return ( + !!p(e) && + (u && Symbol.toStringTag in e + ? (function (e) { + var t = !1 + return ( + n(d, function (r, n) { + if (!t) + try { + var i = r.call(e) + i === n && (t = i) + } catch (e) {} + }), + t + ) + })(e) + : l(s(e), 8, -1)) + ) + } + }, + 71150: (e, t, r) => { + var n = r(18390).Buffer, + i = r(84948) + function o(e, t) { + if (void 0 !== t && e[0] !== t) throw new Error('Invalid network version') + if (33 === e.length) return { version: e[0], privateKey: e.slice(1, 33), compressed: !1 } + if (34 !== e.length) throw new Error('Invalid WIF length') + if (1 !== e[33]) throw new Error('Invalid compression flag') + return { version: e[0], privateKey: e.slice(1, 33), compressed: !0 } + } + function a(e, t, r) { + var i = new n(r ? 34 : 33) + return (i.writeUInt8(e, 0), t.copy(i, 1), r && (i[33] = 1), i) + } + e.exports = { + decode: function (e, t) { + return o(i.decode(e), t) + }, + decodeRaw: o, + encode: function (e, t, r) { + return 'number' == typeof e ? i.encode(a(e, t, r)) : i.encode(a(e.version, e.privateKey, e.compressed)) + }, + encodeRaw: a, + } + }, + 48056: function (e, t, r) { + 'use strict' + var n = + (this && this.__createBinding) || + (Object.create + ? function (e, t, r, n) { + ;(void 0 === n && (n = r), + Object.defineProperty(e, n, { + enumerable: !0, + get: function () { + return t[r] + }, + })) + } + : function (e, t, r, n) { + ;(void 0 === n && (n = r), (e[n] = t[r])) + }), + i = + (this && this.__setModuleDefault) || + (Object.create + ? function (e, t) { + Object.defineProperty(e, 'default', { enumerable: !0, value: t }) + } + : function (e, t) { + e.default = t + }), + o = + (this && this.__importStar) || + function (e) { + if (e && e.__esModule) return e + var t = {} + if (null != e) for (var r in e) 'default' !== r && Object.prototype.hasOwnProperty.call(e, r) && n(t, e, r) + return (i(t, e), t) + }, + a = + (this && this.__importDefault) || + function (e) { + return e && e.__esModule ? e : { default: e } + } + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.Utils = t.Account = void 0)) + var s = o(r(80046)) + t.Utils = s + var u = a(r(29129)) + t.Account = u.default + }, + 29129: function (e, t, r) { + 'use strict' + var n = r(18390).Buffer, + i = + (this && this.__createBinding) || + (Object.create + ? function (e, t, r, n) { + ;(void 0 === n && (n = r), + Object.defineProperty(e, n, { + enumerable: !0, + get: function () { + return t[r] + }, + })) + } + : function (e, t, r, n) { + ;(void 0 === n && (n = r), (e[n] = t[r])) + }), + o = + (this && this.__setModuleDefault) || + (Object.create + ? function (e, t) { + Object.defineProperty(e, 'default', { enumerable: !0, value: t }) + } + : function (e, t) { + e.default = t + }), + a = + (this && this.__importStar) || + function (e) { + if (e && e.__esModule) return e + var t = {} + if (null != e) for (var r in e) 'default' !== r && Object.prototype.hasOwnProperty.call(e, r) && i(t, e, r) + return (o(t, e), t) + }, + s = + (this && this.__importDefault) || + function (e) { + return e && e.__esModule ? e : { default: e } + } + Object.defineProperty(t, '__esModule', { value: !0 }) + var u = s(r(32037)), + c = a(r(43004)), + f = a(r(80046)), + l = (function () { + function e(e) { + var t = this + ;((this.account = { familySeed: '', address: '', keypair: { publicKey: '', privateKey: '' } }), + 'string' == typeof e + ? (this.secret = f.parseSecretString(e)) + : Array.isArray(e) + ? (this.secret = e) + : n.isBuffer(e) + ? (this.secret = f.entropyToSecret(e)) + : (this.secret = f.randomSecret()), + u.default.strictEqual(t.secret.length, 8), + t.secret.forEach(function (e, t) { + u.default.strictEqual(e.length, 6) + }), + (function () { + try { + var e = f.secretToEntropy(t.secret) + ;((t.account.familySeed = c.generateSeed({ entropy: e })), + (t.account.keypair = c.deriveKeypair(t.account.familySeed)), + (t.account.address = c.deriveAddress(t.account.keypair.publicKey))) + } catch (e) { + throw e.message + } + })()) + } + return ( + (e.prototype.getSecret = function () { + return this.secret + }), + (e.prototype.getSecretString = function () { + return this.secret.join(' ') + }), + (e.prototype.getAddress = function () { + return this.account.address + }), + (e.prototype.getFamilySeed = function () { + return this.account.familySeed + }), + (e.prototype.getKeypair = function () { + return this.account.keypair + }), + (e.prototype.toString = function () { + return this.getSecretString() + }), + e + ) + })() + t.default = l + }, + 80046: function (e, t, r) { + 'use strict' + var n = r(18390).Buffer, + i = + (this && this.__importDefault) || + function (e) { + return e && e.__esModule ? e : { default: e } + } + ;(Object.defineProperty(t, '__esModule', { value: !0 }), + (t.parseSecretString = + t.checkChecksum = + t.calculateChecksum = + t.secretToEntropy = + t.entropyToSecret = + t.randomSecret = + t.randomEntropy = + void 0)) + var o = i(r(32037)), + a = i(r(72486)) + function s() { + return n.from(a.default(16)) + } + function u(e, t) { + return (t * (2 * e + 1)) % 9 + } + function c(e, t, r) { + return ( + 'string' == typeof t && (o.default.strictEqual(t.length, 6), (r = parseInt(t.slice(5), 10)), (t = parseInt(t.slice(0, 5), 10))), + (t * (2 * e + 1)) % 9 === r + ) + } + function f(e) { + var t = Array(Math.ceil(e.length / 2)), + r = Array.apply(null, t) + .map(function (t, r) { + return e.slice(2 * r, 2 * ++r) + }) + .map(function (e, t) { + var r = parseInt(e.toString('hex'), 16) + return '0'.repeat(5 - String(r).length) + String(r) + String(u(t, r)) + }) + return (o.default.equal(r.length, 8), r) + } + ;((t.randomEntropy = s), + (t.calculateChecksum = u), + (t.checkChecksum = c), + (t.entropyToSecret = f), + (t.randomSecret = function () { + return f(s()) + }), + (t.secretToEntropy = function (e) { + return n.concat( + e.map(function (e, t) { + var r = Number(e.slice(0, 5)), + i = Number(e.slice(5)) + try { + o.default.strictEqual(e.length, 6) + } catch (e) { + throw new Error('Invalid secret: number invalid') + } + try { + o.default.strictEqual(c(t, r, i), !0) + } catch (e) { + throw new Error('Invalid secret part: checksum invalid') + } + var a = ('0000' + r.toString(16)).slice(-4) + return n.from(a, 'hex') + }), + ) + }), + (t.parseSecretString = function (e) { + if (48 !== (e = e.replace(/[^0-9]/g, '')).length) throw new Error('Invalid secret string (should contain 8 blocks of 6 digits') + return Array.apply(null, Array(8)).map(function (t, r) { + return e.slice(6 * r, 6 * (r + 1)) + }) + })) + }, + 90139: (e) => { + e.exports = function () { + for (var e = {}, r = 0; r < arguments.length; r++) { + var n = arguments[r] + for (var i in n) t.call(n, i) && (e[i] = n[i]) + } + return e + } + var t = Object.prototype.hasOwnProperty + }, + 8831: (e, t) => { + 'use strict' + var r + ;(Object.defineProperty(t, '__esModule', { value: !0 }), + (function (e) { + ;((e.ed25519 = 'ed25519'), (e.secp256k1 = 'ecdsa-secp256k1')) + })(r || (r = {})), + (t.default = r)) + }, + 14343: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), + (t.getDefaultFaucetPath = t.getFaucetHost = t.FaucetNetworkPaths = t.FaucetNetwork = void 0)) + const n = r(74337) + var i + ;(!(function (e) { + ;((e.Testnet = 'faucet.altnet.rippletest.net'), + (e.Devnet = 'faucet.devnet.rippletest.net'), + (e.AMMDevnet = 'ammfaucet.devnet.rippletest.net'), + (e.HooksV3Testnet = 'hooks-testnet-v3.xrpl-labs.com'), + (e.SidechainDevnet = 'sidechain-faucet.devnet.rippletest.net')) + })((i = t.FaucetNetwork || (t.FaucetNetwork = {}))), + (t.FaucetNetworkPaths = { + [i.Testnet]: '/accounts', + [i.Devnet]: '/accounts', + [i.AMMDevnet]: '/accounts', + [i.HooksV3Testnet]: '/accounts', + [i.SidechainDevnet]: '/accounts', + }), + (t.getFaucetHost = function (e) { + const t = e.url + if (t.includes('hooks-testnet-v3')) return i.HooksV3Testnet + if (t.includes('altnet') || t.includes('testnet')) return i.Testnet + if (t.includes('amm')) return i.AMMDevnet + if (t.includes('sidechain-net1')) return i.SidechainDevnet + if (t.includes('sidechain-net2')) + throw new n.XRPLFaucetError('Cannot fund an account on an issuing chain. Accounts must be created via the bridge.') + if (t.includes('devnet')) return i.Devnet + throw new n.XRPLFaucetError('Faucet URL is not defined or inferrable.') + }), + (t.getDefaultFaucetPath = function (e) { + return void 0 === e ? '/accounts' : t.FaucetNetworkPaths[e] || '/accounts' + })) + }, + 1222: function (e, t, r) { + 'use strict' + var n = r(18390).Buffer, + i = + (this && this.__awaiter) || + function (e, t, r, n) { + return new (r || (r = Promise))(function (i, o) { + function a(e) { + try { + u(n.next(e)) + } catch (e) { + o(e) + } + } + function s(e) { + try { + u(n.throw(e)) + } catch (e) { + o(e) + } + } + function u(e) { + var t + e.done + ? i(e.value) + : ((t = e.value), + t instanceof r + ? t + : new r(function (e) { + e(t) + })).then(a, s) + } + u((n = n.apply(e, t || [])).next()) + }) + } + Object.defineProperty(t, '__esModule', { value: !0 }) + const o = r(41178), + a = r(79798), + s = r(74337), + u = r(14343), + c = r(52211) + function f(e, t, r) { + return i(this, void 0, void 0, function* () { + return new Promise((n, o) => { + let a = 20 + const u = setInterval( + () => + i(this, void 0, void 0, function* () { + a < 0 ? (clearInterval(u), n(r)) : (a -= 1) + try { + let i + try { + i = Number(yield e.getXrpBalance(t)) + } catch (e) {} + i > r && (clearInterval(u), n(i)) + } catch (e) { + ;(clearInterval(u), + e instanceof Error && + o(new s.XRPLFaucetError(`Unable to check if the address ${t} balance has increased. Error: ${e.message}`)), + o(e)) + } + }), + 1e3, + ) + }) + }) + } + t.default = function (e, t) { + return i(this, void 0, void 0, function* () { + if (!this.isConnected()) throw new s.RippledError('Client not connected, cannot call faucet') + const r = e && (0, a.isValidClassicAddress)(e.classicAddress) ? e : c.Wallet.generate(), + l = n.from( + new TextEncoder().encode( + JSON.stringify({ + destination: r.classicAddress, + xrpAmount: null == t ? void 0 : t.amount, + userAgent: 'xrpl.js', + usageContext: null == t ? void 0 : t.usageContext, + }), + ), + ) + let d = 0 + try { + d = Number(yield this.getXrpBalance(r.classicAddress)) + } catch (e) {} + const h = (function (e, t, r) { + var n, i + const o = null !== (n = null == r ? void 0 : r.hostname) && void 0 !== n ? n : (0, u.getFaucetHost)(e) + return { + hostname: o, + port: 443, + path: null !== (i = null == r ? void 0 : r.pathname) && void 0 !== i ? i : (0, u.getDefaultFaucetPath)(o), + method: 'POST', + headers: { 'Content-Type': 'application/json', 'Content-Length': t.length }, + } + })(this, l, { hostname: null == t ? void 0 : t.faucetHost, pathname: null == t ? void 0 : t.faucetPath }) + return (function (e, t, r, a, u) { + return i(this, void 0, void 0, function* () { + return new Promise((c, l) => { + const d = (0, o.request)(e, (e) => { + const o = [] + ;(e.on('data', (e) => o.push(e)), + e.on('end', () => + i(this, void 0, void 0, function* () { + return (function (e, t, r, o, a, u, c) { + var l + return i(this, void 0, void 0, function* () { + const d = n.concat(t).toString() + if (null === (l = e.headers['content-type']) || void 0 === l ? void 0 : l.startsWith('application/json')) { + const e = JSON.parse(d).account.classicAddress + yield (function (e, t, r, n, o, a) { + return i(this, void 0, void 0, function* () { + if (t) + try { + ;(yield f(e, t, n)) > n + ? o({ wallet: r, balance: yield f(e, r.classicAddress, n) }) + : a(new s.XRPLFaucetError('Unable to fund address with faucet after waiting 20 seconds')) + } catch (e) { + ;(e instanceof Error && a(new s.XRPLFaucetError(e.message)), a(e)) + } + else a(new s.XRPLFaucetError('The faucet account is undefined')) + }) + })(r, e, a, o, u, c) + } else + c( + new s.XRPLFaucetError( + `Content type is not \`application/json\`: ${JSON.stringify({ statusCode: e.statusCode, contentType: e.headers['content-type'], body: d })}`, + ), + ) + }) + })(e, o, t, r, a, c, l) + }), + )) + }) + ;(d.write(u), + d.on('error', (e) => { + l(e) + }), + d.end()) + }) + }) + })(h, this, d, r, l) + }) + } + }, + 52211: function (e, t, r) { + 'use strict' + var n = + (this && this.__importDefault) || + function (e) { + return e && e.__esModule ? e : { default: e } + } + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.Wallet = void 0)) + const i = n(r(83753)), + o = r(84973), + a = r(63399), + s = n(r(27629)), + u = r(79798), + c = r(79056), + f = r(43004), + l = n(r(8831)), + d = r(74337), + h = r(9879), + p = r(21796), + y = r(62061), + g = r(15567), + b = l.default.ed25519 + function m(e) { + return e.toString('hex').toUpperCase() + } + class v { + constructor(e, t, r = {}) { + ;((this.publicKey = e), + (this.privateKey = t), + (this.classicAddress = r.masterAddress ? (0, p.ensureClassicAddress)(r.masterAddress) : (0, f.deriveAddress)(e)), + (this.seed = r.seed)) + } + get address() { + return this.classicAddress + } + static generate(e = b) { + if (!Object.values(l.default).includes(e)) throw new d.ValidationError('Invalid cryptographic signing algorithm') + const t = (0, f.generateSeed)({ algorithm: e }) + return v.fromSeed(t) + } + static fromSeed(e, t = {}) { + return v.deriveWallet(e, { algorithm: t.algorithm, masterAddress: t.masterAddress }) + } + static fromEntropy(e, t = {}) { + var r + const n = null !== (r = t.algorithm) && void 0 !== r ? r : b, + i = { entropy: Uint8Array.from(e), algorithm: n }, + o = (0, f.generateSeed)(i) + return v.deriveWallet(o, { algorithm: n, masterAddress: t.masterAddress }) + } + static fromMnemonic(e, t = {}) { + var r + if ('rfc1751' === t.mnemonicEncoding) return v.fromRFC1751Mnemonic(e, { masterAddress: t.masterAddress, algorithm: t.algorithm }) + if (!(0, a.validateMnemonic)(e)) throw new d.ValidationError('Unable to parse the given mnemonic using bip39 encoding') + const n = (0, a.mnemonicToSeedSync)(e), + i = (0, o.fromSeed)(n).derivePath(null !== (r = t.derivationPath) && void 0 !== r ? r : "m/44'/144'/0'/0/0") + if (void 0 === i.privateKey) throw new d.ValidationError('Unable to derive privateKey from mnemonic input') + const s = m(i.publicKey), + u = m(i.privateKey) + return new v(s, `00${u}`, { masterAddress: t.masterAddress }) + } + static fromRFC1751Mnemonic(e, t) { + const r = (0, g.rfc1751MnemonicToKey)(e) + let n + n = t.algorithm === l.default.ed25519 ? 'ed25519' : 'secp256k1' + const i = (0, u.encodeSeed)(r, n) + return v.fromSeed(i, { masterAddress: t.masterAddress, algorithm: t.algorithm }) + } + static deriveWallet(e, t = {}) { + var r + const { publicKey: n, privateKey: i } = (0, f.deriveKeypair)(e, { algorithm: null !== (r = t.algorithm) && void 0 !== r ? r : b }) + return new v(n, i, { seed: e, masterAddress: t.masterAddress }) + } + sign(e, t) { + let r = !1 + 'string' == typeof t && t.startsWith('X') ? (r = t) : t && (r = this.classicAddress) + const n = (0, s.default)(Object.assign({}, e), (e) => null == e) + if (n.TxnSignature || n.Signers) throw new d.ValidationError('txJSON must not contain "TxnSignature" or "Signers" properties') + ;(!(function (e) { + 'Payment' === e.TransactionType && + 'string' != typeof e.Amount && + e.Amount.value.includes('.') && + e.Amount.value.endsWith('0') && + ((e.Amount = Object.assign({}, e.Amount)), (e.Amount.value = new i.default(e.Amount.value).toString())) + })(n), + (0, h.validate)(n)) + const o = Object.assign({}, n) + if (((o.SigningPubKey = r ? '' : this.publicKey), r)) { + const e = { Account: r, SigningPubKey: this.publicKey, TxnSignature: w(o, this.privateKey, r) } + o.Signers = [{ Signer: e }] + } else o.TxnSignature = w(o, this.privateKey) + const a = (0, c.encode)(o) + return { tx_blob: a, hash: (0, y.hashSignedTx)(a) } + } + verifyTransaction(e) { + const t = 'string' == typeof e ? (0, c.decode)(e) : e, + r = (0, c.encodeForSigning)(t), + n = t.TxnSignature + return (0, f.verify)(r, n, this.publicKey) + } + getXAddress(e = !1, t = !1) { + return (0, u.classicAddressToXAddress)(this.classicAddress, e, t) + } + } + function w(e, t, r) { + if (r) { + const n = (0, u.isValidXAddress)(r) ? (0, u.xAddressToClassicAddress)(r).classicAddress : r + return (0, f.sign)((0, c.encodeForMultisigning)(e, n), t) + } + return (0, f.sign)((0, c.encodeForSigning)(e), t) + } + ;((t.Wallet = v), (v.fromSecret = v.fromSeed)) + }, + 15567: function (e, t, r) { + 'use strict' + var n = r(18390).Buffer, + i = + (this && this.__importDefault) || + function (e) { + return e && e.__esModule ? e : { default: e } + } + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.keyToRFC1751Mnemonic = t.rfc1751MnemonicToKey = void 0)) + const o = i(r(51944)).default, + a = ['0000', '0001', '0010', '0011', '0100', '0101', '0110', '0111', '1000', '1001', '1010', '1011', '1100', '1101', '1110', '1111'] + function s(e) { + let t = '' + for (const r of e) t += a[r >> 4] + a[15 & r] + return t + } + function u(e, t, r) { + const n = e.substring(t, t + r) + let i = 0 + for (let e = 0; e < n.length; e++) i = 2 * i + n.charCodeAt(e) - 48 + return i + } + function c(e, t) { + const r = e.slice(t, t + 6) + let n = 0 + const i = [0, 0, 0, 0, 0, 0, 0, 0, 0] + let a = '' + for (a of r) { + const e = o.indexOf(a.toUpperCase()) + if (-1 === e) + throw new TypeError( + `Expected an RFC1751 word, but received '${a}'. For the full list of words in the RFC1751 encoding see https://datatracker.ietf.org/doc/html/rfc1751`, + ) + const t = (8 - ((n + 11) % 8)) % 8, + r = e << t, + s = r >> 16, + u = (r >> 8) & 255, + c = 255 & r, + f = Math.floor(n / 8) + ;(t > 5 ? ((i[f] |= s), (i[f + 1] |= u), (i[f + 2] |= c)) : t > -3 ? ((i[f] |= u), (i[f + 1] |= c)) : (i[f] |= c), (n += 11)) + } + return { subKey: i.slice(), word: a } + } + function f(e) { + const t = e.swap64() + return n.concat([t.slice(8, 16), t.slice(0, 8)], 16) + } + ;((t.keyToRFC1751Mnemonic = function (e) { + let t = ((r = f(n.from(e.replace(/\s+/gu, ''), 'hex'))), Array.prototype.slice.call(r)) + var r + const i = [] + for (let e = 0; e < (8 - (t.length % 8)) % 8; e++) i.push(0) + t = i.concat(t) + const a = [] + for (let e = 0; e < t.length; e += 8) { + const r = t.slice(e, e + 8) + let n = s(r), + i = 0 + for (let e = 0; e < 64; e += 2) i += u(n, e, 2) + ;(r.push((i << 6) & 255), (n = s(r))) + for (let e = 0; e < 64; e += 11) a.push(o[u(n, e, 11)]) + } + return a.join(' ') + }), + (t.rfc1751MnemonicToKey = function (e) { + const t = e.split(' ') + let r = [] + for (let e = 0; e < t.length; e += 6) { + const { subKey: n, word: i } = c(t, e), + o = s(n) + let a = 0 + for (let e = 0; e < 64; e += 2) a += u(o, e, 2) + if (u(o, 64, 2) !== (3 & a)) throw new Error(`Parity error at ${i}`) + r = r.concat(n.slice(0, 8)) + } + return f(n.from(r)) + })) + }, + 29421: (e, t, r) => { + 'use strict' + var n = r(18390).Buffer + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.multisign = t.verifySignature = t.authorizeChannel = void 0)) + const i = r(83753), + o = r(40180), + a = r(79798), + s = r(79056), + u = r(43004), + c = r(74337), + f = r(9879) + function l(e, t) { + return h(e.Signer.Account).comparedTo(h(t.Signer.Account)) + } + ;((t.multisign = function (e) { + if (0 === e.length) throw new c.ValidationError('There were 0 transactions to multisign') + const t = e.map((e) => p(e)) + return ( + t.forEach((e) => { + if (((0, f.validate)(e), null == e.Signers || 0 === e.Signers.length)) + throw new c.ValidationError( + "For multisigning all transactions must include a Signers field containing an array of signatures. You may have forgotten to pass the 'forMultisign' parameter when signing.", + ) + if ('' !== e.SigningPubKey) throw new c.ValidationError('SigningPubKey must be an empty string for all transactions when multisigning.') + }), + (function (e) { + const t = JSON.stringify(Object.assign(Object.assign({}, e[0]), { Signers: null })) + if (e.slice(1).some((e) => JSON.stringify(Object.assign(Object.assign({}, e), { Signers: null })) !== t)) + throw new c.ValidationError('txJSON is not the same for all signedTransactions') + })(t), + (0, s.encode)( + (function (e) { + const t = (0, o.flatMap)(e, (e) => { + var t + return null !== (t = e.Signers) && void 0 !== t ? t : [] + }).sort(l) + return Object.assign(Object.assign({}, e[0]), { Signers: t }) + })(t), + ) + ) + }), + (t.authorizeChannel = function (e, t, r) { + const n = (0, s.encodeForSigningClaim)({ channel: t, amount: r }) + return (0, u.sign)(n, e.privateKey) + }), + (t.verifySignature = function (e) { + const t = p(e) + return (0, u.verify)((0, s.encodeForSigning)(t), t.TxnSignature, t.SigningPubKey) + })) + const d = 16 + function h(e) { + const t = n.from((0, a.decodeAccountID)(e)).toString('hex') + return new i.BigNumber(t, d) + } + function p(e) { + return 'object' == typeof e ? (0, s.decode)((0, s.encode)(e)) : (0, s.decode)(e) + } + }, + 71402: function (e, t, r) { + 'use strict' + var n = + (this && this.__importDefault) || + function (e) { + return e && e.__esModule ? e : { default: e } + } + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.walletFromSecretNumbers = void 0)) + const i = r(48056), + o = n(r(8831)), + a = r(52211) + t.walletFromSecretNumbers = function (e, t) { + var r + const n = new i.Account(e).getFamilySeed(), + s = { masterAddress: void 0, algorithm: void 0 } + return ( + void 0 === t + ? (s.algorithm = o.default.secp256k1) + : ((s.masterAddress = t.masterAddress), (s.algorithm = null !== (r = t.algorithm) && void 0 !== r ? r : o.default.secp256k1)), + a.Wallet.fromSecret(n, s) + ) + } + }, + 89289: function (e, t, r) { + 'use strict' + var n = + (this && this.__awaiter) || + function (e, t, r, n) { + return new (r || (r = Promise))(function (i, o) { + function a(e) { + try { + u(n.next(e)) + } catch (e) { + o(e) + } + } + function s(e) { + try { + u(n.throw(e)) + } catch (e) { + o(e) + } + } + function u(e) { + var t + e.done + ? i(e.value) + : ((t = e.value), + t instanceof r + ? t + : new r(function (e) { + e(t) + })).then(a, s) + } + u((n = n.apply(e, t || [])).next()) + }) + } + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.BroadcastClient = void 0)) + const i = r(44278) + class o extends i.Client { + constructor(e, t = {}) { + super(e[0], t) + const r = e.map((e) => new i.Client(e, t)) + ;((this.clients = r), + this.getMethodNames().forEach((e) => { + this[e] = (...t) => + n(this, void 0, void 0, function* () { + return Promise.race( + r.map((r) => + n(this, void 0, void 0, function* () { + return r[e](...t) + }), + ), + ) + }) + }), + (this.connect = () => + n(this, void 0, void 0, function* () { + yield Promise.all( + r.map((e) => + n(this, void 0, void 0, function* () { + return e.connect() + }), + ), + ) + })), + (this.disconnect = () => + n(this, void 0, void 0, function* () { + yield Promise.all( + r.map((e) => + n(this, void 0, void 0, function* () { + return e.disconnect() + }), + ), + ) + })), + (this.isConnected = () => r.map((e) => e.isConnected()).every(Boolean)), + r.forEach((e) => { + e.on('error', (e, t, r) => this.emit('error', e, t, r)) + })) + } + getMethodNames() { + const e = [], + t = this.clients[0], + r = Object.getOwnPropertyNames(t) + r.push(...Object.getOwnPropertyNames(Object.getPrototypeOf(t))) + for (const n of r) 'function' == typeof t[n] && 'constructor' !== n && 'on' !== n && e.push(n) + return e + } + } + t.BroadcastClient = o + }, + 76808: function (e, t) { + 'use strict' + var r = + (this && this.__awaiter) || + function (e, t, r, n) { + return new (r || (r = Promise))(function (i, o) { + function a(e) { + try { + u(n.next(e)) + } catch (e) { + o(e) + } + } + function s(e) { + try { + u(n.throw(e)) + } catch (e) { + o(e) + } + } + function u(e) { + var t + e.done + ? i(e.value) + : ((t = e.value), + t instanceof r + ? t + : new r(function (e) { + e(t) + })).then(a, s) + } + u((n = n.apply(e, t || [])).next()) + }) + } + ;(Object.defineProperty(t, '__esModule', { value: !0 }), + (t.default = class { + constructor() { + this.promisesAwaitingConnection = [] + } + resolveAllAwaiting() { + ;(this.promisesAwaitingConnection.map(({ resolve: e }) => e()), (this.promisesAwaitingConnection = [])) + } + rejectAllAwaiting(e) { + ;(this.promisesAwaitingConnection.map(({ reject: t }) => t(e)), (this.promisesAwaitingConnection = [])) + } + awaitConnection() { + return r(this, void 0, void 0, function* () { + return new Promise((e, t) => { + this.promisesAwaitingConnection.push({ resolve: e, reject: t }) + }) + }) + } + })) + }, + 16598: (e, t) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), + (t.default = class { + constructor(e = {}) { + var t, r + ;((this.factor = 2), + (this.numAttempts = 0), + (this.ms = null !== (t = e.min) && void 0 !== t ? t : 100), + (this.max = null !== (r = e.max) && void 0 !== r ? r : 1e3)) + } + get attempts() { + return this.numAttempts + } + duration() { + const e = this.ms * Math.pow(this.factor, this.numAttempts) + return ((this.numAttempts += 1), Math.floor(Math.min(e, this.max))) + } + reset() { + this.numAttempts = 0 + } + })) + }, + 23621: (e, t, r) => { + 'use strict' + Object.defineProperty(t, '__esModule', { value: !0 }) + const n = r(74337) + t.default = class { + constructor() { + ;((this.nextId = 0), (this.promisesAwaitingResponse = new Map())) + } + resolve(e, t) { + const r = this.promisesAwaitingResponse.get(e) + if (null == r) throw new n.XrplError(`No existing promise with id ${e}`, { type: 'resolve', response: t }) + ;(clearTimeout(r.timer), r.resolve(t), this.deletePromise(e)) + } + reject(e, t) { + const r = this.promisesAwaitingResponse.get(e) + if (null == r) throw new n.XrplError(`No existing promise with id ${e}`, { type: 'reject', error: t }) + ;(clearTimeout(r.timer), r.reject(t), this.deletePromise(e)) + } + rejectAll(e) { + this.promisesAwaitingResponse.forEach((t, r, n) => { + ;(this.reject(r, e), this.deletePromise(r)) + }) + } + createRequest(e, t) { + let r + null == e.id ? ((r = this.nextId), (this.nextId += 1)) : (r = e.id) + const i = JSON.stringify(Object.assign(Object.assign({}, e), { id: r })), + o = setTimeout(() => { + this.reject(r, new n.TimeoutError(`Timeout for request: ${JSON.stringify(e)} with id ${r}`, e)) + }, t) + if ((o.unref && o.unref(), this.promisesAwaitingResponse.has(r))) + throw (clearTimeout(o), new n.XrplError(`Response with id '${r}' is already pending`, e)) + const a = new Promise((e, t) => { + this.promisesAwaitingResponse.set(r, { resolve: e, reject: t, timer: o }) + }) + return [r, i, a] + } + handleResponse(e) { + var t, r + if (null == e.id || ('string' != typeof e.id && 'number' != typeof e.id)) + throw new n.ResponseFormatError('valid id not found in response', e) + if (this.promisesAwaitingResponse.has(e.id)) { + if (null == e.status) { + const t = new n.ResponseFormatError('Response has no status') + this.reject(e.id, t) + } + if ('error' !== e.status) + if ('success' === e.status) (delete e.status, this.resolve(e.id, e)) + else { + const t = new n.ResponseFormatError(`unrecognized response.status: ${null !== (r = e.status) && void 0 !== r ? r : ''}`, e) + this.reject(e.id, t) + } + else { + const r = e, + i = new n.RippledError(null !== (t = r.error_message) && void 0 !== t ? t : r.error, r) + this.reject(e.id, i) + } + } + } + deletePromise(e) { + this.promisesAwaitingResponse.delete(e) + } + } + }, + 65785: (e, t, r) => { + 'use strict' + Object.defineProperty(t, '__esModule', { value: !0 }) + const n = r(67725) + class i extends n.EventEmitter { + constructor(e, t, r) { + ;(super(), + this.setMaxListeners(1 / 0), + (this.ws = new WebSocket(e)), + (this.ws.onclose = (e) => { + let t + ;(e.reason && (t = new TextEncoder().encode(e.reason)), this.emit('close', e.code, t)) + }), + (this.ws.onopen = () => { + this.emit('open') + }), + (this.ws.onerror = (e) => { + this.emit('error', e) + }), + (this.ws.onmessage = (e) => { + this.emit('message', e.data) + })) + } + get readyState() { + return this.ws.readyState + } + close(e, t) { + 1 === this.readyState && this.ws.close(e, t) + } + send(e) { + this.ws.send(e) + } + } + ;((t.default = i), (i.CONNECTING = 0), (i.OPEN = 1), (i.CLOSING = 2), (i.CLOSED = 3)) + }, + 8564: function (e, t, r) { + 'use strict' + var n = r(18390).Buffer, + i = + (this && this.__awaiter) || + function (e, t, r, n) { + return new (r || (r = Promise))(function (i, o) { + function a(e) { + try { + u(n.next(e)) + } catch (e) { + o(e) + } + } + function s(e) { + try { + u(n.throw(e)) + } catch (e) { + o(e) + } + } + function u(e) { + var t + e.done + ? i(e.value) + : ((t = e.value), + t instanceof r + ? t + : new r(function (e) { + e(t) + })).then(a, s) + } + u((n = n.apply(e, t || [])).next()) + }) + }, + o = + (this && this.__importDefault) || + function (e) { + return e && e.__esModule ? e : { default: e } + } + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.Connection = t.INTENTIONAL_DISCONNECT_CODE = void 0)) + const a = r(67725), + s = o(r(27629)), + u = o(r(65785)), + c = r(74337), + f = o(r(76808)), + l = o(r(16598)), + d = o(r(23621)) + t.INTENTIONAL_DISCONNECT_CODE = 4e3 + class h extends a.EventEmitter { + constructor(e, t = {}) { + ;(super(), + (this.ws = null), + (this.reconnectTimeoutID = null), + (this.heartbeatIntervalID = null), + (this.retryConnectionBackoff = new l.default({ min: 100, max: 6e4 })), + (this.requestManager = new d.default()), + (this.connectionManager = new f.default()), + (this.trace = () => {}), + this.setMaxListeners(1 / 0), + (this.url = e), + (this.config = Object.assign({ timeout: 2e4, connectionTimeout: 5e3 }, t)), + 'function' == typeof t.trace ? (this.trace = t.trace) : t.trace && (this.trace = console.log)) + } + get state() { + return this.ws ? this.ws.readyState : u.default.CLOSED + } + get shouldBeConnected() { + return null !== this.ws + } + isConnected() { + return this.state === u.default.OPEN + } + connect() { + return i(this, void 0, void 0, function* () { + if (this.isConnected()) return Promise.resolve() + if (this.state === u.default.CONNECTING) return this.connectionManager.awaitConnection() + if (!this.url) return Promise.reject(new c.ConnectionError('Cannot connect because no server was specified')) + if (null != this.ws) return Promise.reject(new c.XrplError('Websocket connection never cleaned up.', { state: this.state })) + const e = setTimeout(() => { + this.onConnectionFailed( + new c.ConnectionError( + `Error: connect() timed out after ${this.config.connectionTimeout} ms. If your internet connection is working, the rippled server may be blocked or inaccessible. You can also try setting the 'connectionTimeout' option in the Client constructor.`, + ), + ) + }, this.config.connectionTimeout) + if ( + ((this.ws = (function (e, t) { + const i = {} + if ( + ((i.agent = (function (e, t) { + if (null == t.proxy) return + const n = new URL(e), + i = new URL(t.proxy), + o = (0, s.default)( + { + secureEndpoint: 'wss:' === n.protocol, + secureProxy: 'https:' === i.protocol, + auth: t.proxyAuthorization, + ca: t.trustedCertificates, + key: t.key, + passphrase: t.passphrase, + cert: t.certificate, + href: i.href, + origin: i.origin, + protocol: i.protocol, + username: i.username, + password: i.password, + host: i.host, + hostname: i.hostname, + port: i.port, + pathname: i.pathname, + search: i.search, + hash: i.hash, + }, + (e) => null == e, + ) + let a + try { + a = r(30174) + } catch (e) { + throw new Error('"proxy" option is not supported in the browser') + } + return new a(o) + })(e, t)), + t.headers && (i.headers = t.headers), + null != t.authorization) + ) { + const e = n.from(t.authorization).toString('base64') + i.headers = Object.assign(Object.assign({}, i.headers), { Authorization: `Basic ${e}` }) + } + const o = (0, s.default)( + { ca: t.trustedCertificates, key: t.key, passphrase: t.passphrase, cert: t.certificate }, + (e) => null == e, + ), + a = Object.assign(Object.assign({}, i), o), + c = new u.default(e, a) + return ('function' == typeof c.setMaxListeners && c.setMaxListeners(1 / 0), c) + })(this.url, this.config)), + null == this.ws) + ) + throw new c.XrplError('Connect: created null websocket') + return ( + this.ws.on('error', (e) => this.onConnectionFailed(e)), + this.ws.on('error', () => clearTimeout(e)), + this.ws.on('close', (e) => this.onConnectionFailed(e)), + this.ws.on('close', () => clearTimeout(e)), + this.ws.once('open', () => { + this.onceOpen(e) + }), + this.connectionManager.awaitConnection() + ) + }) + } + disconnect() { + return i(this, void 0, void 0, function* () { + return ( + this.clearHeartbeatInterval(), + null !== this.reconnectTimeoutID && (clearTimeout(this.reconnectTimeoutID), (this.reconnectTimeoutID = null)), + this.state === u.default.CLOSED || null == this.ws + ? Promise.resolve(void 0) + : new Promise((e) => { + ;(null == this.ws && e(void 0), + null != this.ws && this.ws.once('close', (t) => e(t)), + null != this.ws && this.state !== u.default.CLOSING && this.ws.close(t.INTENTIONAL_DISCONNECT_CODE)) + }) + ) + }) + } + reconnect() { + return i(this, void 0, void 0, function* () { + ;(this.emit('reconnect'), yield this.disconnect(), yield this.connect()) + }) + } + request(e, t) { + return i(this, void 0, void 0, function* () { + if (!this.shouldBeConnected || null == this.ws) throw new c.NotConnectedError(JSON.stringify(e), e) + const [r, n, o] = this.requestManager.createRequest(e, null != t ? t : this.config.timeout) + return ( + this.trace('send', n), + (function (e, t) { + return i(this, void 0, void 0, function* () { + return new Promise((r, n) => { + e.send(t, (e) => { + e ? n(new c.DisconnectedError(e.message, e)) : r() + }) + }) + }) + })(this.ws, n).catch((e) => { + this.requestManager.reject(r, e) + }), + o + ) + }) + } + getUrl() { + var e + return null !== (e = this.url) && void 0 !== e ? e : '' + } + onMessage(e) { + let t + this.trace('receive', e) + try { + t = JSON.parse(e) + } catch (t) { + return void (t instanceof Error && this.emit('error', 'badMessage', t.message, e)) + } + if (null == t.type && t.error) this.emit('error', t.error, t.error_message, t) + else if ((t.type && this.emit(t.type, t), 'response' === t.type)) + try { + this.requestManager.handleResponse(t) + } catch (t) { + t instanceof Error ? this.emit('error', 'badMessage', t.message, e) : this.emit('error', 'badMessage', t, t) + } + } + onceOpen(e) { + return i(this, void 0, void 0, function* () { + if (null == this.ws) throw new c.XrplError('onceOpen: ws is null') + ;(this.ws.removeAllListeners(), + clearTimeout(e), + this.ws.on('message', (e) => this.onMessage(e)), + this.ws.on('error', (e) => this.emit('error', 'websocket', e.message, e)), + this.ws.once('close', (e, r) => { + if (null == this.ws) throw new c.XrplError('onceClose: ws is null') + if ( + (this.clearHeartbeatInterval(), + this.requestManager.rejectAll(new c.DisconnectedError(`websocket was closed, ${new TextDecoder('utf-8').decode(r)}`)), + this.ws.removeAllListeners(), + (this.ws = null), + void 0 === e) + ) { + const e = 1011 + this.emit('disconnected', e) + } else this.emit('disconnected', e) + e !== t.INTENTIONAL_DISCONNECT_CODE && void 0 !== e && this.intentionalDisconnect() + })) + try { + ;(this.retryConnectionBackoff.reset(), + this.startHeartbeatInterval(), + this.connectionManager.resolveAllAwaiting(), + this.emit('connected')) + } catch (e) { + e instanceof Error && (this.connectionManager.rejectAllAwaiting(e), yield this.disconnect().catch(() => {})) + } + }) + } + intentionalDisconnect() { + const e = this.retryConnectionBackoff.duration() + ;(this.trace('reconnect', `Retrying connection in ${e}ms.`), + this.emit('reconnecting', this.retryConnectionBackoff.attempts), + (this.reconnectTimeoutID = setTimeout(() => { + this.reconnect().catch((e) => { + this.emit('error', 'reconnect', e.message, e) + }) + }, e))) + } + clearHeartbeatInterval() { + this.heartbeatIntervalID && clearInterval(this.heartbeatIntervalID) + } + startHeartbeatInterval() { + ;(this.clearHeartbeatInterval(), + (this.heartbeatIntervalID = setInterval(() => { + this.heartbeat() + }, this.config.timeout))) + } + heartbeat() { + return i(this, void 0, void 0, function* () { + this.request({ command: 'ping' }).catch(() => + i(this, void 0, void 0, function* () { + return this.reconnect().catch((e) => { + this.emit('error', 'reconnect', e.message, e) + }) + }), + ) + }) + } + onConnectionFailed(e) { + ;(this.ws && (this.ws.removeAllListeners(), this.ws.on('error', () => {}), this.ws.close(), (this.ws = null)), + 'number' == typeof e + ? this.connectionManager.rejectAllAwaiting(new c.NotConnectedError(`Connection failed with code ${e}.`, { code: e })) + : (null == e ? void 0 : e.message) + ? this.connectionManager.rejectAllAwaiting(new c.NotConnectedError(e.message, e)) + : this.connectionManager.rejectAllAwaiting(new c.NotConnectedError('Connection failed.'))) + } + } + t.Connection = h + }, + 44278: function (e, t, r) { + 'use strict' + var n = + (this && this.__createBinding) || + (Object.create + ? function (e, t, r, n) { + void 0 === n && (n = r) + var i = Object.getOwnPropertyDescriptor(t, r) + ;((i && !('get' in i ? !t.__esModule : i.writable || i.configurable)) || + (i = { + enumerable: !0, + get: function () { + return t[r] + }, + }), + Object.defineProperty(e, n, i)) + } + : function (e, t, r, n) { + ;(void 0 === n && (n = r), (e[n] = t[r])) + }), + i = + (this && this.__setModuleDefault) || + (Object.create + ? function (e, t) { + Object.defineProperty(e, 'default', { enumerable: !0, value: t }) + } + : function (e, t) { + e.default = t + }), + o = + (this && this.__importStar) || + function (e) { + if (e && e.__esModule) return e + var t = {} + if (null != e) for (var r in e) 'default' !== r && Object.prototype.hasOwnProperty.call(e, r) && n(t, e, r) + return (i(t, e), t) + }, + a = + (this && this.__awaiter) || + function (e, t, r, n) { + return new (r || (r = Promise))(function (i, o) { + function a(e) { + try { + u(n.next(e)) + } catch (e) { + o(e) + } + } + function s(e) { + try { + u(n.throw(e)) + } catch (e) { + o(e) + } + } + function u(e) { + var t + e.done + ? i(e.value) + : ((t = e.value), + t instanceof r + ? t + : new r(function (e) { + e(t) + })).then(a, s) + } + u((n = n.apply(e, t || [])).next()) + }) + }, + s = + (this && this.__importDefault) || + function (e) { + return e && e.__esModule ? e : { default: e } + } + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.Client = void 0)) + const u = o(r(32037)), + c = r(67725), + f = r(74337), + l = r(92475), + d = s(r(1222)), + h = r(8564), + p = r(56742) + class y extends c.EventEmitter { + constructor(e, t = {}) { + var r, n + if ( + (super(), + (this.autofill = l.autofill), + (this.submit = l.submit), + (this.submitAndWait = l.submitAndWait), + (this.prepareTransaction = l.autofill), + (this.getXrpBalance = l.getXrpBalance), + (this.getBalances = l.getBalances), + (this.getOrderbook = l.getOrderbook), + (this.getLedgerIndex = l.getLedgerIndex), + (this.fundWallet = d.default), + 'string' != typeof e || !/wss?(?:\+unix)?:\/\//u.exec(e)) + ) + throw new f.ValidationError('server URI must start with `wss://`, `ws://`, `wss+unix://`, or `ws+unix://`.') + ;((this.feeCushion = null !== (r = t.feeCushion) && void 0 !== r ? r : 1.2), + (this.maxFeeXRP = null !== (n = t.maxFeeXRP) && void 0 !== n ? n : '2'), + (this.connection = new h.Connection(e, t)), + this.connection.on('error', (e, t, r) => { + this.emit('error', e, t, r) + }), + this.connection.on('reconnect', () => { + this.connection.on('connected', () => this.emit('connected')) + }), + this.connection.on('disconnected', (e) => { + let t = e + ;(t === h.INTENTIONAL_DISCONNECT_CODE && (t = 1e3), this.emit('disconnected', t)) + }), + this.connection.on('ledgerClosed', (e) => { + this.emit('ledgerClosed', e) + }), + this.connection.on('transaction', (e) => { + ;((0, p.handleStreamPartialPayment)(e, this.connection.trace), this.emit('transaction', e)) + }), + this.connection.on('validationReceived', (e) => { + this.emit('validationReceived', e) + }), + this.connection.on('manifestReceived', (e) => { + this.emit('manifestReceived', e) + }), + this.connection.on('peerStatusChange', (e) => { + this.emit('peerStatusChange', e) + }), + this.connection.on('consensusPhase', (e) => { + this.emit('consensusPhase', e) + }), + this.connection.on('path_find', (e) => { + this.emit('path_find', e) + })) + } + get url() { + return this.connection.getUrl() + } + request(e) { + return a(this, void 0, void 0, function* () { + const t = yield this.connection.request( + Object.assign(Object.assign({}, e), { account: e.account ? (0, l.ensureClassicAddress)(e.account) : void 0 }), + ) + return ((0, p.handlePartialPayment)(e.command, t), t) + }) + } + requestNextPage(e, t) { + return a(this, void 0, void 0, function* () { + if (!t.result.marker) return Promise.reject(new f.NotFoundError('response does not have a next page')) + const r = Object.assign(Object.assign({}, e), { marker: t.result.marker }) + return this.request(r) + }) + } + on(e, t) { + return super.on(e, t) + } + requestAll(e, t) { + return a(this, void 0, void 0, function* () { + const r = + null != t + ? t + : (function (e) { + switch (e) { + case 'account_channels': + return 'channels' + case 'account_lines': + return 'lines' + case 'account_objects': + return 'account_objects' + case 'account_tx': + return 'transactions' + case 'account_offers': + case 'book_offers': + return 'offers' + case 'ledger_data': + return 'state' + default: + return null + } + })(e.command) + if (!r) throw new f.ValidationError(`no collect key for command ${e.command}`) + const n = null == e.limit ? 1 / 0 : e.limit + let i, + o = 0, + a = e.marker + const s = [] + do { + const t = ((c = n - o), 10, 400, u.ok(!0, 'Illegal clamp bounds'), Math.min(Math.max(c, 10), 400)), + l = Object.assign(Object.assign({}, e), { limit: t, marker: a }), + d = yield this.connection.request(l), + h = d.result + if (!(r in h)) throw new f.XrplError(`${r} not in result`) + const p = h[r] + ;((a = h.marker), s.push(d), Array.isArray(p) ? ((o += p.length), (i = p.length)) : (i = 0)) + } while (Boolean(a) && o < n && 0 !== i) + var c + return s + }) + } + getServerInfo() { + var e + return a(this, void 0, void 0, function* () { + try { + const t = yield this.request({ command: 'server_info' }) + ;((this.networkID = null !== (e = t.result.info.network_id) && void 0 !== e ? e : void 0), + (this.buildVersion = t.result.info.build_version)) + } catch (e) { + console.error(e) + } + }) + } + connect() { + return a(this, void 0, void 0, function* () { + return this.connection.connect().then(() => + a(this, void 0, void 0, function* () { + ;(yield this.getServerInfo(), this.emit('connected')) + }), + ) + }) + } + disconnect() { + return a(this, void 0, void 0, function* () { + yield this.connection.disconnect() + }) + } + isConnected() { + return this.connection.isConnected() + } + } + t.Client = y + }, + 56742: function (e, t, r) { + 'use strict' + var n = + (this && this.__importDefault) || + function (e) { + return e && e.__esModule ? e : { default: e } + } + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.handleStreamPartialPayment = t.handlePartialPayment = void 0)) + const i = n(r(83753)), + o = r(79056), + a = r(9879), + s = r(143) + function u(e, t) { + var r + if (null == e || null == t || 'Payment' !== e.TransactionType) return !1 + let n = t + if ('string' == typeof n) { + if ('unavailable' === n) return !1 + n = (0, o.decode)(n) + } + if ( + !('number' == typeof e.Flags + ? (0, s.isFlagEnabled)(e.Flags, a.PaymentFlags.tfPartialPayment) + : null === (r = e.Flags) || void 0 === r + ? void 0 + : r.tfPartialPayment) + ) + return !1 + const u = n.delivered_amount, + c = e.Amount + return ( + void 0 !== u && + !(function (e, t) { + if ('string' == typeof e && 'string' == typeof t) return e === t + if ('string' == typeof e || 'string' == typeof t) return !1 + const r = new i.default(e.value), + n = new i.default(t.value) + return e.currency === t.currency && e.issuer === t.issuer && r.isEqualTo(n) + })(u, c) + ) + } + ;((t.handlePartialPayment = function (e, t) { + var r + if ( + (function (e, t) { + switch (e) { + case 'tx': + return (function (e) { + return u(e.result, e.result.meta) + })(t) + case 'transaction_entry': + return (function (e) { + return u(e.result.tx_json, e.result.metadata) + })(t) + case 'account_tx': + return (function (e) { + const { transactions: t } = e.result + return t.some((e) => u(e.tx, e.meta)) + })(t) + default: + return !1 + } + })(e, t) + ) { + const e = null !== (r = t.warnings) && void 0 !== r ? r : [], + n = { id: 2001, message: 'This response contains a Partial Payment' } + ;(e.push(n), (t.warnings = e)) + } + }), + (t.handleStreamPartialPayment = function (e, t) { + var r + if (u(e.transaction, e.meta)) { + const n = null !== (r = e.warnings) && void 0 !== r ? r : [], + i = { id: 2001, message: 'This response contains a Partial Payment' } + ;(n.push(i), (e.warnings = n), t('Partial payment received', JSON.stringify(e))) + } + })) + }, + 74337: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), + (t.XRPLFaucetError = + t.NotFoundError = + t.ValidationError = + t.ResponseFormatError = + t.TimeoutError = + t.RippledNotInitializedError = + t.DisconnectedError = + t.NotConnectedError = + t.RippledError = + t.ConnectionError = + t.UnexpectedError = + t.XrplError = + void 0)) + const n = r(75786) + class i extends Error { + constructor(e = '', t) { + ;(super(e), + (this.name = this.constructor.name), + (this.message = e), + (this.data = t), + null != Error.captureStackTrace && Error.captureStackTrace(this, this.constructor)) + } + toString() { + let e = `[${this.name}(${this.message}` + return (this.data && (e += `, ${(0, n.inspect)(this.data)}`), (e += ')]'), e) + } + inspect() { + return this.toString() + } + } + ;((t.XrplError = i), (t.RippledError = class extends i {}), (t.UnexpectedError = class extends i {})) + class o extends i {} + ;((t.ConnectionError = o), + (t.NotConnectedError = class extends o {}), + (t.DisconnectedError = class extends o {}), + (t.RippledNotInitializedError = class extends o {}), + (t.TimeoutError = class extends o {}), + (t.ResponseFormatError = class extends o {}), + (t.ValidationError = class extends i {}), + (t.XRPLFaucetError = class extends i {}), + (t.NotFoundError = class extends i { + constructor(e = 'Not found') { + super(e) + } + })) + }, + 20066: function (e, t, r) { + 'use strict' + var n = + (this && this.__createBinding) || + (Object.create + ? function (e, t, r, n) { + void 0 === n && (n = r) + var i = Object.getOwnPropertyDescriptor(t, r) + ;((i && !('get' in i ? !t.__esModule : i.writable || i.configurable)) || + (i = { + enumerable: !0, + get: function () { + return t[r] + }, + }), + Object.defineProperty(e, n, i)) + } + : function (e, t, r, n) { + ;(void 0 === n && (n = r), (e[n] = t[r])) + }), + i = + (this && this.__exportStar) || + function (e, t) { + for (var r in e) 'default' === r || Object.prototype.hasOwnProperty.call(t, r) || n(t, e, r) + }, + o = + (this && this.__importDefault) || + function (e) { + return e && e.__esModule ? e : { default: e } + } + ;(Object.defineProperty(t, '__esModule', { value: !0 }), + (t.rfc1751MnemonicToKey = t.keyToRFC1751Mnemonic = t.walletFromSecretNumbers = t.Wallet = t.ECDSA = t.Client = t.BroadcastClient = void 0)) + var a = r(89289) + Object.defineProperty(t, 'BroadcastClient', { + enumerable: !0, + get: function () { + return a.BroadcastClient + }, + }) + var s = r(44278) + ;(Object.defineProperty(t, 'Client', { + enumerable: !0, + get: function () { + return s.Client + }, + }), + i(r(84980), t), + i(r(17455), t)) + var u = r(8831) + ;(Object.defineProperty(t, 'ECDSA', { + enumerable: !0, + get: function () { + return o(u).default + }, + }), + i(r(74337), t)) + var c = r(52211) + Object.defineProperty(t, 'Wallet', { + enumerable: !0, + get: function () { + return c.Wallet + }, + }) + var f = r(71402) + Object.defineProperty(t, 'walletFromSecretNumbers', { + enumerable: !0, + get: function () { + return f.walletFromSecretNumbers + }, + }) + var l = r(15567) + ;(Object.defineProperty(t, 'keyToRFC1751Mnemonic', { + enumerable: !0, + get: function () { + return l.keyToRFC1751Mnemonic + }, + }), + Object.defineProperty(t, 'rfc1751MnemonicToKey', { + enumerable: !0, + get: function () { + return l.rfc1751MnemonicToKey + }, + }), + i(r(29421), t)) + }, + 86437: (e, t) => { + 'use strict' + Object.defineProperty(t, '__esModule', { value: !0 }) + }, + 84980: function (e, t, r) { + 'use strict' + var n = + (this && this.__createBinding) || + (Object.create + ? function (e, t, r, n) { + void 0 === n && (n = r) + var i = Object.getOwnPropertyDescriptor(t, r) + ;((i && !('get' in i ? !t.__esModule : i.writable || i.configurable)) || + (i = { + enumerable: !0, + get: function () { + return t[r] + }, + }), + Object.defineProperty(e, n, i)) + } + : function (e, t, r, n) { + ;(void 0 === n && (n = r), (e[n] = t[r])) + }), + i = + (this && this.__setModuleDefault) || + (Object.create + ? function (e, t) { + Object.defineProperty(e, 'default', { enumerable: !0, value: t }) + } + : function (e, t) { + e.default = t + }), + o = + (this && this.__importStar) || + function (e) { + if (e && e.__esModule) return e + var t = {} + if (null != e) for (var r in e) 'default' !== r && Object.prototype.hasOwnProperty.call(e, r) && n(t, e, r) + return (i(t, e), t) + }, + a = + (this && this.__exportStar) || + function (e, t) { + for (var r in e) 'default' === r || Object.prototype.hasOwnProperty.call(t, r) || n(t, e, r) + } + ;(Object.defineProperty(t, '__esModule', { value: !0 }), + (t.parseAccountRootFlags = t.setTransactionFlagsToNumber = t.LedgerEntry = void 0), + (t.LedgerEntry = o(r(10143)))) + var s = r(27161) + ;(Object.defineProperty(t, 'setTransactionFlagsToNumber', { + enumerable: !0, + get: function () { + return s.setTransactionFlagsToNumber + }, + }), + Object.defineProperty(t, 'parseAccountRootFlags', { + enumerable: !0, + get: function () { + return s.parseAccountRootFlags + }, + }), + a(r(31892), t), + a(r(9879), t), + a(r(86437), t)) + }, + 74347: (e, t) => { + 'use strict' + var r + ;(Object.defineProperty(t, '__esModule', { value: !0 }), + (t.AccountRootFlags = void 0), + ((r = t.AccountRootFlags || (t.AccountRootFlags = {}))[(r.lsfPasswordSpent = 65536)] = 'lsfPasswordSpent'), + (r[(r.lsfRequireDestTag = 131072)] = 'lsfRequireDestTag'), + (r[(r.lsfRequireAuth = 262144)] = 'lsfRequireAuth'), + (r[(r.lsfDisallowXRP = 524288)] = 'lsfDisallowXRP'), + (r[(r.lsfDisableMaster = 1048576)] = 'lsfDisableMaster'), + (r[(r.lsfNoFreeze = 2097152)] = 'lsfNoFreeze'), + (r[(r.lsfGlobalFreeze = 4194304)] = 'lsfGlobalFreeze'), + (r[(r.lsfDefaultRipple = 8388608)] = 'lsfDefaultRipple'), + (r[(r.lsfDepositAuth = 16777216)] = 'lsfDepositAuth'), + (r[(r.lsfAMM = 33554432)] = 'lsfAMM'), + (r[(r.lsfDisallowIncomingNFTokenOffer = 67108864)] = 'lsfDisallowIncomingNFTokenOffer'), + (r[(r.lsfDisallowIncomingCheck = 134217728)] = 'lsfDisallowIncomingCheck'), + (r[(r.lsfDisallowIncomingPayChan = 268435456)] = 'lsfDisallowIncomingPayChan'), + (r[(r.lsfDisallowIncomingTrustline = 536870912)] = 'lsfDisallowIncomingTrustline'), + (r[(r.lsfAllowTrustLineClawback = 2147483648)] = 'lsfAllowTrustLineClawback')) + }, + 30296: (e, t) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), + (t.AMENDMENTS_ID = void 0), + (t.AMENDMENTS_ID = '7DB0788C020F02780A673DC74757F23823FA3014C1866E72CC4CD8B226CD6EF4')) + }, + 67209: (e, t) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), + (t.FEE_SETTINGS_ID = void 0), + (t.FEE_SETTINGS_ID = '4BC50C9B0D8515D3EAAE1E74B29A95804346C491EE1A95BF25E4AAB854A6A651')) + }, + 51184: (e, t) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), + (t.NEGATIVE_UNL_ID = void 0), + (t.NEGATIVE_UNL_ID = '2E8A59AA9D3B5B186B0B9E0F62E6C02587CA74A4D778938E957B6357D364B244')) + }, + 36867: (e, t) => { + 'use strict' + var r + ;(Object.defineProperty(t, '__esModule', { value: !0 }), + (t.OfferFlags = void 0), + ((r = t.OfferFlags || (t.OfferFlags = {}))[(r.lsfPassive = 65536)] = 'lsfPassive'), + (r[(r.lsfSell = 131072)] = 'lsfSell')) + }, + 85226: (e, t) => { + 'use strict' + var r + ;(Object.defineProperty(t, '__esModule', { value: !0 }), + (t.RippleStateFlags = void 0), + ((r = t.RippleStateFlags || (t.RippleStateFlags = {}))[(r.lsfLowReserve = 65536)] = 'lsfLowReserve'), + (r[(r.lsfHighReserve = 131072)] = 'lsfHighReserve'), + (r[(r.lsfLowAuth = 262144)] = 'lsfLowAuth'), + (r[(r.lsfHighAuth = 524288)] = 'lsfHighAuth'), + (r[(r.lsfLowNoRipple = 1048576)] = 'lsfLowNoRipple'), + (r[(r.lsfHighNoRipple = 2097152)] = 'lsfHighNoRipple'), + (r[(r.lsfLowFreeze = 4194304)] = 'lsfLowFreeze'), + (r[(r.lsfHighFreeze = 8388608)] = 'lsfHighFreeze')) + }, + 57331: (e, t) => { + 'use strict' + var r + ;(Object.defineProperty(t, '__esModule', { value: !0 }), + (t.SignerListFlags = void 0), + ((r = t.SignerListFlags || (t.SignerListFlags = {}))[(r.lsfOneOwnerCount = 65536)] = 'lsfOneOwnerCount')) + }, + 10143: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), + (t.SignerListFlags = + t.RippleStateFlags = + t.OfferFlags = + t.NEGATIVE_UNL_ID = + t.FEE_SETTINGS_ID = + t.AMENDMENTS_ID = + t.AccountRootFlags = + void 0)) + const n = r(74347) + Object.defineProperty(t, 'AccountRootFlags', { + enumerable: !0, + get: function () { + return n.AccountRootFlags + }, + }) + const i = r(30296) + Object.defineProperty(t, 'AMENDMENTS_ID', { + enumerable: !0, + get: function () { + return i.AMENDMENTS_ID + }, + }) + const o = r(67209) + Object.defineProperty(t, 'FEE_SETTINGS_ID', { + enumerable: !0, + get: function () { + return o.FEE_SETTINGS_ID + }, + }) + const a = r(51184) + Object.defineProperty(t, 'NEGATIVE_UNL_ID', { + enumerable: !0, + get: function () { + return a.NEGATIVE_UNL_ID + }, + }) + const s = r(36867) + Object.defineProperty(t, 'OfferFlags', { + enumerable: !0, + get: function () { + return s.OfferFlags + }, + }) + const u = r(85226) + Object.defineProperty(t, 'RippleStateFlags', { + enumerable: !0, + get: function () { + return u.RippleStateFlags + }, + }) + const c = r(57331) + Object.defineProperty(t, 'SignerListFlags', { + enumerable: !0, + get: function () { + return c.SignerListFlags + }, + }) + }, + 31892: (e, t) => { + 'use strict' + Object.defineProperty(t, '__esModule', { value: !0 }) + }, + 14139: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.validateAMMBid = void 0)) + const n = r(74337), + i = r(19061) + t.validateAMMBid = function (e) { + if (((0, i.validateBaseTransaction)(e), null == e.Asset)) throw new n.ValidationError('AMMBid: missing field Asset') + if (!(0, i.isCurrency)(e.Asset)) throw new n.ValidationError('AMMBid: Asset must be a Currency') + if (null == e.Asset2) throw new n.ValidationError('AMMBid: missing field Asset2') + if (!(0, i.isCurrency)(e.Asset2)) throw new n.ValidationError('AMMBid: Asset2 must be a Currency') + if (null != e.BidMin && !(0, i.isAmount)(e.BidMin)) throw new n.ValidationError('AMMBid: BidMin must be an Amount') + if (null != e.BidMax && !(0, i.isAmount)(e.BidMax)) throw new n.ValidationError('AMMBid: BidMax must be an Amount') + if (null != e.AuthAccounts) { + if (!Array.isArray(e.AuthAccounts)) throw new n.ValidationError('AMMBid: AuthAccounts must be an AuthAccount array') + if (e.AuthAccounts.length > 4) throw new n.ValidationError('AMMBid: AuthAccounts length must not be greater than 4') + !(function (e, t) { + for (const r of t) { + if (null == r.AuthAccount || 'object' != typeof r.AuthAccount) throw new n.ValidationError('AMMBid: invalid AuthAccounts') + if (null == r.AuthAccount.Account) throw new n.ValidationError('AMMBid: invalid AuthAccounts') + if ('string' != typeof r.AuthAccount.Account) throw new n.ValidationError('AMMBid: invalid AuthAccounts') + if (r.AuthAccount.Account === e) throw new n.ValidationError("AMMBid: AuthAccounts must not include sender's address") + } + })(e.Account, e.AuthAccounts) + } + } + }, + 59906: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.validateAMMCreate = t.AMM_MAX_TRADING_FEE = void 0)) + const n = r(74337), + i = r(19061) + ;((t.AMM_MAX_TRADING_FEE = 1e3), + (t.validateAMMCreate = function (e) { + if (((0, i.validateBaseTransaction)(e), null == e.Amount)) throw new n.ValidationError('AMMCreate: missing field Amount') + if (!(0, i.isAmount)(e.Amount)) throw new n.ValidationError('AMMCreate: Amount must be an Amount') + if (null == e.Amount2) throw new n.ValidationError('AMMCreate: missing field Amount2') + if (!(0, i.isAmount)(e.Amount2)) throw new n.ValidationError('AMMCreate: Amount2 must be an Amount') + if (null == e.TradingFee) throw new n.ValidationError('AMMCreate: missing field TradingFee') + if ('number' != typeof e.TradingFee) throw new n.ValidationError('AMMCreate: TradingFee must be a number') + if (e.TradingFee < 0 || e.TradingFee > t.AMM_MAX_TRADING_FEE) + throw new n.ValidationError(`AMMCreate: TradingFee must be between 0 and ${t.AMM_MAX_TRADING_FEE}`) + })) + }, + 22781: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.validateAMMDelete = void 0)) + const n = r(74337), + i = r(19061) + t.validateAMMDelete = function (e) { + if (((0, i.validateBaseTransaction)(e), null == e.Asset)) throw new n.ValidationError('AMMDelete: missing field Asset') + if (!(0, i.isCurrency)(e.Asset)) throw new n.ValidationError('AMMDelete: Asset must be a Currency') + if (null == e.Asset2) throw new n.ValidationError('AMMDelete: missing field Asset2') + if (!(0, i.isCurrency)(e.Asset2)) throw new n.ValidationError('AMMDelete: Asset2 must be a Currency') + } + }, + 74350: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.validateAMMDeposit = t.AMMDepositFlags = void 0)) + const n = r(74337), + i = r(19061) + var o + ;(((o = t.AMMDepositFlags || (t.AMMDepositFlags = {}))[(o.tfLPToken = 65536)] = 'tfLPToken'), + (o[(o.tfSingleAsset = 524288)] = 'tfSingleAsset'), + (o[(o.tfTwoAsset = 1048576)] = 'tfTwoAsset'), + (o[(o.tfOneAssetLPToken = 2097152)] = 'tfOneAssetLPToken'), + (o[(o.tfLimitLPToken = 4194304)] = 'tfLimitLPToken'), + (t.validateAMMDeposit = function (e) { + if (((0, i.validateBaseTransaction)(e), null == e.Asset)) throw new n.ValidationError('AMMDeposit: missing field Asset') + if (!(0, i.isCurrency)(e.Asset)) throw new n.ValidationError('AMMDeposit: Asset must be a Currency') + if (null == e.Asset2) throw new n.ValidationError('AMMDeposit: missing field Asset2') + if (!(0, i.isCurrency)(e.Asset2)) throw new n.ValidationError('AMMDeposit: Asset2 must be a Currency') + if (null != e.Amount2 && null == e.Amount) throw new n.ValidationError('AMMDeposit: must set Amount with Amount2') + if (null != e.EPrice && null == e.Amount) throw new n.ValidationError('AMMDeposit: must set Amount with EPrice') + if (null == e.LPTokenOut && null == e.Amount) throw new n.ValidationError('AMMDeposit: must set at least LPTokenOut or Amount') + if (null != e.LPTokenOut && !(0, i.isIssuedCurrency)(e.LPTokenOut)) + throw new n.ValidationError('AMMDeposit: LPTokenOut must be an IssuedCurrencyAmount') + if (null != e.Amount && !(0, i.isAmount)(e.Amount)) throw new n.ValidationError('AMMDeposit: Amount must be an Amount') + if (null != e.Amount2 && !(0, i.isAmount)(e.Amount2)) throw new n.ValidationError('AMMDeposit: Amount2 must be an Amount') + if (null != e.EPrice && !(0, i.isAmount)(e.EPrice)) throw new n.ValidationError('AMMDeposit: EPrice must be an Amount') + })) + }, + 2638: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.validateAMMVote = void 0)) + const n = r(74337), + i = r(59906), + o = r(19061) + t.validateAMMVote = function (e) { + if (((0, o.validateBaseTransaction)(e), null == e.Asset)) throw new n.ValidationError('AMMVote: missing field Asset') + if (!(0, o.isCurrency)(e.Asset)) throw new n.ValidationError('AMMVote: Asset must be a Currency') + if (null == e.Asset2) throw new n.ValidationError('AMMVote: missing field Asset2') + if (!(0, o.isCurrency)(e.Asset2)) throw new n.ValidationError('AMMVote: Asset2 must be a Currency') + if (null == e.TradingFee) throw new n.ValidationError('AMMVote: missing field TradingFee') + if ('number' != typeof e.TradingFee) throw new n.ValidationError('AMMVote: TradingFee must be a number') + if (e.TradingFee < 0 || e.TradingFee > i.AMM_MAX_TRADING_FEE) + throw new n.ValidationError(`AMMVote: TradingFee must be between 0 and ${i.AMM_MAX_TRADING_FEE}`) + } + }, + 71637: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.validateAMMWithdraw = t.AMMWithdrawFlags = void 0)) + const n = r(74337), + i = r(19061) + var o + ;(((o = t.AMMWithdrawFlags || (t.AMMWithdrawFlags = {}))[(o.tfLPToken = 65536)] = 'tfLPToken'), + (o[(o.tfWithdrawAll = 131072)] = 'tfWithdrawAll'), + (o[(o.tfOneAssetWithdrawAll = 262144)] = 'tfOneAssetWithdrawAll'), + (o[(o.tfSingleAsset = 524288)] = 'tfSingleAsset'), + (o[(o.tfTwoAsset = 1048576)] = 'tfTwoAsset'), + (o[(o.tfOneAssetLPToken = 2097152)] = 'tfOneAssetLPToken'), + (o[(o.tfLimitLPToken = 4194304)] = 'tfLimitLPToken'), + (t.validateAMMWithdraw = function (e) { + if (((0, i.validateBaseTransaction)(e), null == e.Asset)) throw new n.ValidationError('AMMWithdraw: missing field Asset') + if (!(0, i.isCurrency)(e.Asset)) throw new n.ValidationError('AMMWithdraw: Asset must be a Currency') + if (null == e.Asset2) throw new n.ValidationError('AMMWithdraw: missing field Asset2') + if (!(0, i.isCurrency)(e.Asset2)) throw new n.ValidationError('AMMWithdraw: Asset2 must be a Currency') + if (null != e.Amount2 && null == e.Amount) throw new n.ValidationError('AMMWithdraw: must set Amount with Amount2') + if (null != e.EPrice && null == e.Amount) throw new n.ValidationError('AMMWithdraw: must set Amount with EPrice') + if (null != e.LPTokenIn && !(0, i.isIssuedCurrency)(e.LPTokenIn)) + throw new n.ValidationError('AMMWithdraw: LPTokenIn must be an IssuedCurrencyAmount') + if (null != e.Amount && !(0, i.isAmount)(e.Amount)) throw new n.ValidationError('AMMWithdraw: Amount must be an Amount') + if (null != e.Amount2 && !(0, i.isAmount)(e.Amount2)) throw new n.ValidationError('AMMWithdraw: Amount2 must be an Amount') + if (null != e.EPrice && !(0, i.isAmount)(e.EPrice)) throw new n.ValidationError('AMMWithdraw: EPrice must be an Amount') + })) + }, + 10329: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.validateNFTokenAcceptOffer = void 0)) + const n = r(74337), + i = r(19061) + t.validateNFTokenAcceptOffer = function (e) { + if ( + ((0, i.validateBaseTransaction)(e), + null != e.NFTokenBrokerFee && + (function (e) { + const t = (0, i.parseAmountValue)(e.NFTokenBrokerFee) + if (Number.isNaN(t)) throw new n.ValidationError('NFTokenAcceptOffer: invalid NFTokenBrokerFee') + if (t <= 0) throw new n.ValidationError('NFTokenAcceptOffer: NFTokenBrokerFee must be greater than 0; omit if there is no fee') + if (null == e.NFTokenSellOffer || null == e.NFTokenBuyOffer) + throw new n.ValidationError('NFTokenAcceptOffer: both NFTokenSellOffer and NFTokenBuyOffer must be set if using brokered mode') + })(e), + null == e.NFTokenSellOffer && null == e.NFTokenBuyOffer) + ) + throw new n.ValidationError('NFTokenAcceptOffer: must set either NFTokenSellOffer or NFTokenBuyOffer') + } + }, + 16362: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.validateNFTokenBurn = void 0)) + const n = r(74337), + i = r(19061) + t.validateNFTokenBurn = function (e) { + if (((0, i.validateBaseTransaction)(e), null == e.NFTokenID)) throw new n.ValidationError('NFTokenBurn: missing field NFTokenID') + } + }, + 66357: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.validateNFTokenCancelOffer = void 0)) + const n = r(74337), + i = r(19061) + t.validateNFTokenCancelOffer = function (e) { + if (((0, i.validateBaseTransaction)(e), !Array.isArray(e.NFTokenOffers))) + throw new n.ValidationError('NFTokenCancelOffer: missing field NFTokenOffers') + if (e.NFTokenOffers.length < 1) throw new n.ValidationError('NFTokenCancelOffer: empty field NFTokenOffers') + } + }, + 38256: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.validateNFTokenCreateOffer = t.NFTokenCreateOfferFlags = void 0)) + const n = r(74337), + i = r(143), + o = r(19061) + var a + ;(!(function (e) { + e[(e.tfSellNFToken = 1)] = 'tfSellNFToken' + })((a = t.NFTokenCreateOfferFlags || (t.NFTokenCreateOfferFlags = {}))), + (t.validateNFTokenCreateOffer = function (e) { + if (((0, o.validateBaseTransaction)(e), e.Account === e.Owner)) + throw new n.ValidationError('NFTokenCreateOffer: Owner and Account must not be equal') + if (e.Account === e.Destination) throw new n.ValidationError('NFTokenCreateOffer: Destination and Account must not be equal') + if (null == e.NFTokenID) throw new n.ValidationError('NFTokenCreateOffer: missing field NFTokenID') + if (!(0, o.isAmount)(e.Amount)) throw new n.ValidationError('NFTokenCreateOffer: invalid Amount') + 'number' == typeof e.Flags && (0, i.isFlagEnabled)(e.Flags, a.tfSellNFToken) + ? (function (e) { + if (null != e.Owner) throw new n.ValidationError('NFTokenCreateOffer: Owner must not be present for sell offers') + })(e) + : (function (e) { + if (null == e.Owner) throw new n.ValidationError('NFTokenCreateOffer: Owner must be present for buy offers') + if ((0, o.parseAmountValue)(e.Amount) <= 0) + throw new n.ValidationError('NFTokenCreateOffer: Amount must be greater than 0 for buy offers') + })(e) + })) + }, + 69404: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.validateNFTokenMint = t.NFTokenMintFlags = void 0)) + const n = r(74337), + i = r(143), + o = r(19061) + var a + ;(((a = t.NFTokenMintFlags || (t.NFTokenMintFlags = {}))[(a.tfBurnable = 1)] = 'tfBurnable'), + (a[(a.tfOnlyXRP = 2)] = 'tfOnlyXRP'), + (a[(a.tfTrustLine = 4)] = 'tfTrustLine'), + (a[(a.tfTransferable = 8)] = 'tfTransferable'), + (t.validateNFTokenMint = function (e) { + if (((0, o.validateBaseTransaction)(e), e.Account === e.Issuer)) + throw new n.ValidationError('NFTokenMint: Issuer must not be equal to Account') + if ('string' == typeof e.URI && '' === e.URI) throw new n.ValidationError('NFTokenMint: URI must not be empty string') + if ('string' == typeof e.URI && !(0, i.isHex)(e.URI)) throw new n.ValidationError('NFTokenMint: URI must be in hex format') + if (null == e.NFTokenTaxon) throw new n.ValidationError('NFTokenMint: missing field NFTokenTaxon') + })) + }, + 79228: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.validateAccountDelete = void 0)) + const n = r(74337), + i = r(19061) + t.validateAccountDelete = function (e) { + if (((0, i.validateBaseTransaction)(e), void 0 === e.Destination)) throw new n.ValidationError('AccountDelete: missing field Destination') + if ('string' != typeof e.Destination) throw new n.ValidationError('AccountDelete: invalid Destination') + if (void 0 !== e.DestinationTag && 'number' != typeof e.DestinationTag) throw new n.ValidationError('AccountDelete: invalid DestinationTag') + } + }, + 20489: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.validateAccountSet = t.AccountSetTfFlags = t.AccountSetAsfFlags = void 0)) + const n = r(79798), + i = r(74337), + o = r(19061) + var a, s + ;(!(function (e) { + ;((e[(e.asfRequireDest = 1)] = 'asfRequireDest'), + (e[(e.asfRequireAuth = 2)] = 'asfRequireAuth'), + (e[(e.asfDisallowXRP = 3)] = 'asfDisallowXRP'), + (e[(e.asfDisableMaster = 4)] = 'asfDisableMaster'), + (e[(e.asfAccountTxnID = 5)] = 'asfAccountTxnID'), + (e[(e.asfNoFreeze = 6)] = 'asfNoFreeze'), + (e[(e.asfGlobalFreeze = 7)] = 'asfGlobalFreeze'), + (e[(e.asfDefaultRipple = 8)] = 'asfDefaultRipple'), + (e[(e.asfDepositAuth = 9)] = 'asfDepositAuth'), + (e[(e.asfAuthorizedNFTokenMinter = 10)] = 'asfAuthorizedNFTokenMinter'), + (e[(e.asfDisallowIncomingNFTokenOffer = 12)] = 'asfDisallowIncomingNFTokenOffer'), + (e[(e.asfDisallowIncomingCheck = 13)] = 'asfDisallowIncomingCheck'), + (e[(e.asfDisallowIncomingPayChan = 14)] = 'asfDisallowIncomingPayChan'), + (e[(e.asfDisallowIncomingTrustline = 15)] = 'asfDisallowIncomingTrustline'), + (e[(e.asfAllowTrustLineClawback = 16)] = 'asfAllowTrustLineClawback')) + })((a = t.AccountSetAsfFlags || (t.AccountSetAsfFlags = {}))), + ((s = t.AccountSetTfFlags || (t.AccountSetTfFlags = {}))[(s.tfRequireDestTag = 65536)] = 'tfRequireDestTag'), + (s[(s.tfOptionalDestTag = 131072)] = 'tfOptionalDestTag'), + (s[(s.tfRequireAuth = 262144)] = 'tfRequireAuth'), + (s[(s.tfOptionalAuth = 524288)] = 'tfOptionalAuth'), + (s[(s.tfDisallowXRP = 1048576)] = 'tfDisallowXRP'), + (s[(s.tfAllowXRP = 2097152)] = 'tfAllowXRP'), + (t.validateAccountSet = function (e) { + if (((0, o.validateBaseTransaction)(e), void 0 !== e.NFTokenMinter && !(0, n.isValidClassicAddress)(String(e.NFTokenMinter)))) + throw new i.ValidationError('AccountSet: invalid NFTokenMinter') + if (void 0 !== e.ClearFlag) { + if ('number' != typeof e.ClearFlag) throw new i.ValidationError('AccountSet: invalid ClearFlag') + if (!Object.values(a).includes(e.ClearFlag)) throw new i.ValidationError('AccountSet: invalid ClearFlag') + } + if (void 0 !== e.Domain && 'string' != typeof e.Domain) throw new i.ValidationError('AccountSet: invalid Domain') + if (void 0 !== e.EmailHash && 'string' != typeof e.EmailHash) throw new i.ValidationError('AccountSet: invalid EmailHash') + if (void 0 !== e.MessageKey && 'string' != typeof e.MessageKey) throw new i.ValidationError('AccountSet: invalid MessageKey') + if (void 0 !== e.SetFlag) { + if ('number' != typeof e.SetFlag) throw new i.ValidationError('AccountSet: invalid SetFlag') + if (!Object.values(a).includes(e.SetFlag)) throw new i.ValidationError('AccountSet: invalid SetFlag') + } + if (void 0 !== e.TransferRate && 'number' != typeof e.TransferRate) throw new i.ValidationError('AccountSet: invalid TransferRate') + if (void 0 !== e.TickSize) { + if ('number' != typeof e.TickSize) throw new i.ValidationError('AccountSet: invalid TickSize') + if (0 !== e.TickSize && (e.TickSize < 3 || e.TickSize > 15)) throw new i.ValidationError('AccountSet: invalid TickSize') + } + })) + }, + 99618: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.validateCheckCancel = void 0)) + const n = r(74337), + i = r(19061) + t.validateCheckCancel = function (e) { + if (((0, i.validateBaseTransaction)(e), void 0 !== e.CheckID && 'string' != typeof e.CheckID)) + throw new n.ValidationError('CheckCancel: invalid CheckID') + } + }, + 97931: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.validateCheckCash = void 0)) + const n = r(74337), + i = r(19061) + t.validateCheckCash = function (e) { + if (((0, i.validateBaseTransaction)(e), null == e.Amount && null == e.DeliverMin)) + throw new n.ValidationError('CheckCash: must have either Amount or DeliverMin') + if (null != e.Amount && null != e.DeliverMin) throw new n.ValidationError('CheckCash: cannot have both Amount and DeliverMin') + if (null != e.Amount && void 0 !== e.Amount && !(0, i.isAmount)(e.Amount)) throw new n.ValidationError('CheckCash: invalid Amount') + if (null != e.DeliverMin && void 0 !== e.DeliverMin && !(0, i.isAmount)(e.DeliverMin)) + throw new n.ValidationError('CheckCash: invalid DeliverMin') + if (void 0 !== e.CheckID && 'string' != typeof e.CheckID) throw new n.ValidationError('CheckCash: invalid CheckID') + } + }, + 56680: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.validateCheckCreate = void 0)) + const n = r(74337), + i = r(19061) + t.validateCheckCreate = function (e) { + if (((0, i.validateBaseTransaction)(e), void 0 === e.SendMax)) throw new n.ValidationError('CheckCreate: missing field SendMax') + if (void 0 === e.Destination) throw new n.ValidationError('CheckCreate: missing field Destination') + if ('string' != typeof e.SendMax && !(0, i.isIssuedCurrency)(e.SendMax)) throw new n.ValidationError('CheckCreate: invalid SendMax') + if ('string' != typeof e.Destination) throw new n.ValidationError('CheckCreate: invalid Destination') + if (void 0 !== e.DestinationTag && 'number' != typeof e.DestinationTag) throw new n.ValidationError('CheckCreate: invalid DestinationTag') + if (void 0 !== e.Expiration && 'number' != typeof e.Expiration) throw new n.ValidationError('CheckCreate: invalid Expiration') + if (void 0 !== e.InvoiceID && 'string' != typeof e.InvoiceID) throw new n.ValidationError('CheckCreate: invalid InvoiceID') + } + }, + 61062: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.validateClawback = void 0)) + const n = r(74337), + i = r(19061) + t.validateClawback = function (e) { + if (((0, i.validateBaseTransaction)(e), null == e.Amount)) throw new n.ValidationError('Clawback: missing field Amount') + if (!(0, i.isIssuedCurrency)(e.Amount)) throw new n.ValidationError('Clawback: invalid Amount') + if ((0, i.isIssuedCurrency)(e.Amount) && e.Account === e.Amount.issuer) throw new n.ValidationError('Clawback: invalid holder Account') + } + }, + 19061: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), + (t.parseAmountValue = t.validateBaseTransaction = t.isAmount = t.isIssuedCurrency = t.isCurrency = void 0)) + const n = r(79056), + i = r(74337), + o = r(143) + function a(e) { + if (null == e.Memo) return !1 + const t = e.Memo, + r = Object.keys(t).length, + n = null == t.MemoData || 'string' == typeof t.MemoData, + i = null == t.MemoFormat || 'string' == typeof t.MemoFormat, + a = null == t.MemoType || 'string' == typeof t.MemoType + return r >= 1 && r <= 3 && n && i && a && (0, o.onlyHasFields)(t, ['MemoFormat', 'MemoData', 'MemoType']) + } + function s(e) { + const t = e + if (null == t.Signer) return !1 + const r = t.Signer + return ( + 3 === Object.keys(r).length && 'string' == typeof r.Account && 'string' == typeof r.TxnSignature && 'string' == typeof r.SigningPubKey + ) + } + const u = 3 + function c(e) { + return null !== e && 'object' == typeof e + } + function f(e) { + return c(e) && Object.keys(e).length === u && 'string' == typeof e.value && 'string' == typeof e.issuer && 'string' == typeof e.currency + } + function l(e) { + return 'string' == typeof e || f(e) + } + ;((t.isCurrency = function (e) { + return ( + c(e) && + ((2 === Object.keys(e).length && 'string' == typeof e.issuer && 'string' == typeof e.currency) || + (1 === Object.keys(e).length && 'XRP' === e.currency)) + ) + }), + (t.isIssuedCurrency = f), + (t.isAmount = l), + (t.validateBaseTransaction = function (e) { + if (void 0 === e.Account) throw new i.ValidationError('BaseTransaction: missing field Account') + if ('string' != typeof e.Account) throw new i.ValidationError('BaseTransaction: Account not string') + if (void 0 === e.TransactionType) throw new i.ValidationError('BaseTransaction: missing field TransactionType') + if ('string' != typeof e.TransactionType) throw new i.ValidationError('BaseTransaction: TransactionType not string') + if (!n.TRANSACTION_TYPES.includes(e.TransactionType)) throw new i.ValidationError('BaseTransaction: Unknown TransactionType') + if (void 0 !== e.Fee && 'string' != typeof e.Fee) throw new i.ValidationError('BaseTransaction: invalid Fee') + if (void 0 !== e.Sequence && 'number' != typeof e.Sequence) throw new i.ValidationError('BaseTransaction: invalid Sequence') + if (void 0 !== e.AccountTxnID && 'string' != typeof e.AccountTxnID) throw new i.ValidationError('BaseTransaction: invalid AccountTxnID') + if (void 0 !== e.LastLedgerSequence && 'number' != typeof e.LastLedgerSequence) + throw new i.ValidationError('BaseTransaction: invalid LastLedgerSequence') + const t = e.Memos + if (void 0 !== t && !t.every(a)) throw new i.ValidationError('BaseTransaction: invalid Memos') + const r = e.Signers + if (void 0 !== r && (0 === r.length || !r.every(s))) throw new i.ValidationError('BaseTransaction: invalid Signers') + if (void 0 !== e.SourceTag && 'number' != typeof e.SourceTag) throw new i.ValidationError('BaseTransaction: invalid SourceTag') + if (void 0 !== e.SigningPubKey && 'string' != typeof e.SigningPubKey) + throw new i.ValidationError('BaseTransaction: invalid SigningPubKey') + if (void 0 !== e.TicketSequence && 'number' != typeof e.TicketSequence) + throw new i.ValidationError('BaseTransaction: invalid TicketSequence') + if (void 0 !== e.TxnSignature && 'string' != typeof e.TxnSignature) throw new i.ValidationError('BaseTransaction: invalid TxnSignature') + if (void 0 !== e.NetworkID && 'number' != typeof e.NetworkID) throw new i.ValidationError('BaseTransaction: invalid NetworkID') + }), + (t.parseAmountValue = function (e) { + return l(e) ? ('string' == typeof e ? parseFloat(e) : parseFloat(e.value)) : NaN + })) + }, + 44992: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.validateDepositPreauth = void 0)) + const n = r(74337), + i = r(19061) + t.validateDepositPreauth = function (e) { + if (((0, i.validateBaseTransaction)(e), void 0 !== e.Authorize && void 0 !== e.Unauthorize)) + throw new n.ValidationError("DepositPreauth: can't provide both Authorize and Unauthorize fields") + if (void 0 === e.Authorize && void 0 === e.Unauthorize) + throw new n.ValidationError('DepositPreauth: must provide either Authorize or Unauthorize field') + if (void 0 !== e.Authorize) { + if ('string' != typeof e.Authorize) throw new n.ValidationError('DepositPreauth: Authorize must be a string') + if (e.Account === e.Authorize) throw new n.ValidationError("DepositPreauth: Account can't preauthorize its own address") + } + if (void 0 !== e.Unauthorize) { + if ('string' != typeof e.Unauthorize) throw new n.ValidationError('DepositPreauth: Unauthorize must be a string') + if (e.Account === e.Unauthorize) throw new n.ValidationError("DepositPreauth: Account can't unauthorize its own address") + } + } + }, + 70255: (e, t) => { + 'use strict' + var r + ;(Object.defineProperty(t, '__esModule', { value: !0 }), + (t.EnableAmendmentFlags = void 0), + ((r = t.EnableAmendmentFlags || (t.EnableAmendmentFlags = {}))[(r.tfGotMajority = 65536)] = 'tfGotMajority'), + (r[(r.tfLostMajority = 131072)] = 'tfLostMajority')) + }, + 66350: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.validateEscrowCancel = void 0)) + const n = r(74337), + i = r(19061) + t.validateEscrowCancel = function (e) { + if (((0, i.validateBaseTransaction)(e), void 0 === e.Owner)) throw new n.ValidationError('EscrowCancel: missing Owner') + if ('string' != typeof e.Owner) throw new n.ValidationError('EscrowCancel: Owner must be a string') + if (void 0 === e.OfferSequence) throw new n.ValidationError('EscrowCancel: missing OfferSequence') + if ('number' != typeof e.OfferSequence) throw new n.ValidationError('EscrowCancel: OfferSequence must be a number') + } + }, + 26145: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.validateEscrowCreate = void 0)) + const n = r(74337), + i = r(19061) + t.validateEscrowCreate = function (e) { + if (((0, i.validateBaseTransaction)(e), void 0 === e.Amount)) throw new n.ValidationError('EscrowCreate: missing field Amount') + if ('string' != typeof e.Amount) throw new n.ValidationError('EscrowCreate: Amount must be a string') + if (void 0 === e.Destination) throw new n.ValidationError('EscrowCreate: missing field Destination') + if ('string' != typeof e.Destination) throw new n.ValidationError('EscrowCreate: Destination must be a string') + if (void 0 === e.CancelAfter && void 0 === e.FinishAfter) + throw new n.ValidationError('EscrowCreate: Either CancelAfter or FinishAfter must be specified') + if (void 0 === e.FinishAfter && void 0 === e.Condition) + throw new n.ValidationError('EscrowCreate: Either Condition or FinishAfter must be specified') + if (void 0 !== e.CancelAfter && 'number' != typeof e.CancelAfter) throw new n.ValidationError('EscrowCreate: CancelAfter must be a number') + if (void 0 !== e.FinishAfter && 'number' != typeof e.FinishAfter) throw new n.ValidationError('EscrowCreate: FinishAfter must be a number') + if (void 0 !== e.Condition && 'string' != typeof e.Condition) throw new n.ValidationError('EscrowCreate: Condition must be a string') + if (void 0 !== e.DestinationTag && 'number' != typeof e.DestinationTag) + throw new n.ValidationError('EscrowCreate: DestinationTag must be a number') + } + }, + 64055: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.validateEscrowFinish = void 0)) + const n = r(74337), + i = r(19061) + t.validateEscrowFinish = function (e) { + if (((0, i.validateBaseTransaction)(e), void 0 === e.Owner)) throw new n.ValidationError('EscrowFinish: missing field Owner') + if ('string' != typeof e.Owner) throw new n.ValidationError('EscrowFinish: Owner must be a string') + if (void 0 === e.OfferSequence) throw new n.ValidationError('EscrowFinish: missing field OfferSequence') + if ('number' != typeof e.OfferSequence) throw new n.ValidationError('EscrowFinish: OfferSequence must be a number') + if (void 0 !== e.Condition && 'string' != typeof e.Condition) throw new n.ValidationError('EscrowFinish: Condition must be a string') + if (void 0 !== e.Fulfillment && 'string' != typeof e.Fulfillment) throw new n.ValidationError('EscrowFinish: Fulfillment must be a string') + } + }, + 9879: function (e, t, r) { + 'use strict' + var n = + (this && this.__createBinding) || + (Object.create + ? function (e, t, r, n) { + void 0 === n && (n = r) + var i = Object.getOwnPropertyDescriptor(t, r) + ;((i && !('get' in i ? !t.__esModule : i.writable || i.configurable)) || + (i = { + enumerable: !0, + get: function () { + return t[r] + }, + }), + Object.defineProperty(e, n, i)) + } + : function (e, t, r, n) { + ;(void 0 === n && (n = r), (e[n] = t[r])) + }), + i = + (this && this.__exportStar) || + function (e, t) { + for (var r in e) 'default' === r || Object.prototype.hasOwnProperty.call(t, r) || n(t, e, r) + } + ;(Object.defineProperty(t, '__esModule', { value: !0 }), + (t.TrustSetFlags = + t.PaymentChannelClaimFlags = + t.PaymentFlags = + t.OfferCreateFlags = + t.NFTokenMintFlags = + t.NFTokenCreateOfferFlags = + t.EnableAmendmentFlags = + t.AMMWithdrawFlags = + t.AMMDepositFlags = + t.AccountSetTfFlags = + t.AccountSetAsfFlags = + t.validate = + void 0)) + var o = r(40951) + ;(Object.defineProperty(t, 'validate', { + enumerable: !0, + get: function () { + return o.validate + }, + }), + i(r(3378), t)) + var a = r(20489) + ;(Object.defineProperty(t, 'AccountSetAsfFlags', { + enumerable: !0, + get: function () { + return a.AccountSetAsfFlags + }, + }), + Object.defineProperty(t, 'AccountSetTfFlags', { + enumerable: !0, + get: function () { + return a.AccountSetTfFlags + }, + })) + var s = r(74350) + Object.defineProperty(t, 'AMMDepositFlags', { + enumerable: !0, + get: function () { + return s.AMMDepositFlags + }, + }) + var u = r(71637) + Object.defineProperty(t, 'AMMWithdrawFlags', { + enumerable: !0, + get: function () { + return u.AMMWithdrawFlags + }, + }) + var c = r(70255) + Object.defineProperty(t, 'EnableAmendmentFlags', { + enumerable: !0, + get: function () { + return c.EnableAmendmentFlags + }, + }) + var f = r(38256) + Object.defineProperty(t, 'NFTokenCreateOfferFlags', { + enumerable: !0, + get: function () { + return f.NFTokenCreateOfferFlags + }, + }) + var l = r(69404) + Object.defineProperty(t, 'NFTokenMintFlags', { + enumerable: !0, + get: function () { + return l.NFTokenMintFlags + }, + }) + var d = r(82297) + Object.defineProperty(t, 'OfferCreateFlags', { + enumerable: !0, + get: function () { + return d.OfferCreateFlags + }, + }) + var h = r(4059) + Object.defineProperty(t, 'PaymentFlags', { + enumerable: !0, + get: function () { + return h.PaymentFlags + }, + }) + var p = r(24498) + Object.defineProperty(t, 'PaymentChannelClaimFlags', { + enumerable: !0, + get: function () { + return p.PaymentChannelClaimFlags + }, + }) + var y = r(18748) + Object.defineProperty(t, 'TrustSetFlags', { + enumerable: !0, + get: function () { + return y.TrustSetFlags + }, + }) + }, + 3378: (e, t) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), + (t.isDeletedNode = t.isModifiedNode = t.isCreatedNode = void 0), + (t.isCreatedNode = function (e) { + return Object.prototype.hasOwnProperty.call(e, 'CreatedNode') + }), + (t.isModifiedNode = function (e) { + return Object.prototype.hasOwnProperty.call(e, 'ModifiedNode') + }), + (t.isDeletedNode = function (e) { + return Object.prototype.hasOwnProperty.call(e, 'DeletedNode') + })) + }, + 84255: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.validateOfferCancel = void 0)) + const n = r(74337), + i = r(19061) + t.validateOfferCancel = function (e) { + if (((0, i.validateBaseTransaction)(e), void 0 === e.OfferSequence)) throw new n.ValidationError('OfferCancel: missing field OfferSequence') + if ('number' != typeof e.OfferSequence) throw new n.ValidationError('OfferCancel: OfferSequence must be a number') + } + }, + 82297: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.validateOfferCreate = t.OfferCreateFlags = void 0)) + const n = r(74337), + i = r(19061) + var o + ;(((o = t.OfferCreateFlags || (t.OfferCreateFlags = {}))[(o.tfPassive = 65536)] = 'tfPassive'), + (o[(o.tfImmediateOrCancel = 131072)] = 'tfImmediateOrCancel'), + (o[(o.tfFillOrKill = 262144)] = 'tfFillOrKill'), + (o[(o.tfSell = 524288)] = 'tfSell'), + (t.validateOfferCreate = function (e) { + if (((0, i.validateBaseTransaction)(e), void 0 === e.TakerGets)) throw new n.ValidationError('OfferCreate: missing field TakerGets') + if (void 0 === e.TakerPays) throw new n.ValidationError('OfferCreate: missing field TakerPays') + if ('string' != typeof e.TakerGets && !(0, i.isAmount)(e.TakerGets)) throw new n.ValidationError('OfferCreate: invalid TakerGets') + if ('string' != typeof e.TakerPays && !(0, i.isAmount)(e.TakerPays)) throw new n.ValidationError('OfferCreate: invalid TakerPays') + if (void 0 !== e.Expiration && 'number' != typeof e.Expiration) throw new n.ValidationError('OfferCreate: invalid Expiration') + if (void 0 !== e.OfferSequence && 'number' != typeof e.OfferSequence) throw new n.ValidationError('OfferCreate: invalid OfferSequence') + })) + }, + 4059: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.validatePayment = t.PaymentFlags = void 0)) + const n = r(74337), + i = r(143), + o = r(19061) + var a + function s(e) { + return !( + (void 0 !== e.account && 'string' != typeof e.account) || + (void 0 !== e.currency && 'string' != typeof e.currency) || + (void 0 !== e.issuer && 'string' != typeof e.issuer) || + ((void 0 === e.account || void 0 !== e.currency || void 0 !== e.issuer) && void 0 === e.currency && void 0 === e.issuer) + ) + } + function u(e) { + for (const t of e) if (!s(t)) return !1 + return !0 + } + ;(!(function (e) { + ;((e[(e.tfNoDirectRipple = 65536)] = 'tfNoDirectRipple'), + (e[(e.tfPartialPayment = 131072)] = 'tfPartialPayment'), + (e[(e.tfLimitQuality = 262144)] = 'tfLimitQuality')) + })((a = t.PaymentFlags || (t.PaymentFlags = {}))), + (t.validatePayment = function (e) { + if (((0, o.validateBaseTransaction)(e), void 0 === e.Amount)) throw new n.ValidationError('PaymentTransaction: missing field Amount') + if (!(0, o.isAmount)(e.Amount)) throw new n.ValidationError('PaymentTransaction: invalid Amount') + if (void 0 === e.Destination) throw new n.ValidationError('PaymentTransaction: missing field Destination') + if (!(0, o.isAmount)(e.Destination)) throw new n.ValidationError('PaymentTransaction: invalid Destination') + if (null != e.DestinationTag && 'number' != typeof e.DestinationTag) + throw new n.ValidationError('PaymentTransaction: DestinationTag must be a number') + if (void 0 !== e.InvoiceID && 'string' != typeof e.InvoiceID) + throw new n.ValidationError('PaymentTransaction: InvoiceID must be a string') + if ( + void 0 !== e.Paths && + !(function (e) { + if (!Array.isArray(e) || 0 === e.length) return !1 + for (const t of e) { + if (!Array.isArray(t) || 0 === t.length) return !1 + if (!u(t)) return !1 + } + return !0 + })(e.Paths) + ) + throw new n.ValidationError('PaymentTransaction: invalid Paths') + if (void 0 !== e.SendMax && !(0, o.isAmount)(e.SendMax)) throw new n.ValidationError('PaymentTransaction: invalid SendMax') + !(function (e) { + var t + if (null != e.DeliverMin) { + if (null == e.Flags) throw new n.ValidationError('PaymentTransaction: tfPartialPayment flag required with DeliverMin') + const r = e.Flags + if (!('number' == typeof r ? (0, i.isFlagEnabled)(r, a.tfPartialPayment) : null !== (t = r.tfPartialPayment) && void 0 !== t && t)) + throw new n.ValidationError('PaymentTransaction: tfPartialPayment flag required with DeliverMin') + if (!(0, o.isAmount)(e.DeliverMin)) throw new n.ValidationError('PaymentTransaction: invalid DeliverMin') + } + })(e) + })) + }, + 24498: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.validatePaymentChannelClaim = t.PaymentChannelClaimFlags = void 0)) + const n = r(74337), + i = r(19061) + var o + ;(((o = t.PaymentChannelClaimFlags || (t.PaymentChannelClaimFlags = {}))[(o.tfRenew = 65536)] = 'tfRenew'), + (o[(o.tfClose = 131072)] = 'tfClose'), + (t.validatePaymentChannelClaim = function (e) { + if (((0, i.validateBaseTransaction)(e), void 0 === e.Channel)) throw new n.ValidationError('PaymentChannelClaim: missing Channel') + if ('string' != typeof e.Channel) throw new n.ValidationError('PaymentChannelClaim: Channel must be a string') + if (void 0 !== e.Balance && 'string' != typeof e.Balance) throw new n.ValidationError('PaymentChannelClaim: Balance must be a string') + if (void 0 !== e.Amount && 'string' != typeof e.Amount) throw new n.ValidationError('PaymentChannelClaim: Amount must be a string') + if (void 0 !== e.Signature && 'string' != typeof e.Signature) + throw new n.ValidationError('PaymentChannelClaim: Signature must be a string') + if (void 0 !== e.PublicKey && 'string' != typeof e.PublicKey) + throw new n.ValidationError('PaymentChannelClaim: PublicKey must be a string') + })) + }, + 51434: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.validatePaymentChannelCreate = void 0)) + const n = r(74337), + i = r(19061) + t.validatePaymentChannelCreate = function (e) { + if (((0, i.validateBaseTransaction)(e), void 0 === e.Amount)) throw new n.ValidationError('PaymentChannelCreate: missing Amount') + if ('string' != typeof e.Amount) throw new n.ValidationError('PaymentChannelCreate: Amount must be a string') + if (void 0 === e.Destination) throw new n.ValidationError('PaymentChannelCreate: missing Destination') + if ('string' != typeof e.Destination) throw new n.ValidationError('PaymentChannelCreate: Destination must be a string') + if (void 0 === e.SettleDelay) throw new n.ValidationError('PaymentChannelCreate: missing SettleDelay') + if ('number' != typeof e.SettleDelay) throw new n.ValidationError('PaymentChannelCreate: SettleDelay must be a number') + if (void 0 === e.PublicKey) throw new n.ValidationError('PaymentChannelCreate: missing PublicKey') + if ('string' != typeof e.PublicKey) throw new n.ValidationError('PaymentChannelCreate: PublicKey must be a string') + if (void 0 !== e.CancelAfter && 'number' != typeof e.CancelAfter) + throw new n.ValidationError('PaymentChannelCreate: CancelAfter must be a number') + if (void 0 !== e.DestinationTag && 'number' != typeof e.DestinationTag) + throw new n.ValidationError('PaymentChannelCreate: DestinationTag must be a number') + } + }, + 1734: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.validatePaymentChannelFund = void 0)) + const n = r(74337), + i = r(19061) + t.validatePaymentChannelFund = function (e) { + if (((0, i.validateBaseTransaction)(e), void 0 === e.Channel)) throw new n.ValidationError('PaymentChannelFund: missing Channel') + if ('string' != typeof e.Channel) throw new n.ValidationError('PaymentChannelFund: Channel must be a string') + if (void 0 === e.Amount) throw new n.ValidationError('PaymentChannelFund: missing Amount') + if ('string' != typeof e.Amount) throw new n.ValidationError('PaymentChannelFund: Amount must be a string') + if (void 0 !== e.Expiration && 'number' != typeof e.Expiration) + throw new n.ValidationError('PaymentChannelFund: Expiration must be a number') + } + }, + 5586: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.validateSetRegularKey = void 0)) + const n = r(74337), + i = r(19061) + t.validateSetRegularKey = function (e) { + if (((0, i.validateBaseTransaction)(e), void 0 !== e.RegularKey && 'string' != typeof e.RegularKey)) + throw new n.ValidationError('SetRegularKey: RegularKey must be a string') + } + }, + 51756: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.validateSignerListSet = void 0)) + const n = r(74337), + i = r(19061), + o = /^[0-9A-Fa-f]{64}$/u + t.validateSignerListSet = function (e) { + if (((0, i.validateBaseTransaction)(e), void 0 === e.SignerQuorum)) throw new n.ValidationError('SignerListSet: missing field SignerQuorum') + if ('number' != typeof e.SignerQuorum) throw new n.ValidationError('SignerListSet: invalid SignerQuorum') + if (0 !== e.SignerQuorum) { + if (void 0 === e.SignerEntries) throw new n.ValidationError('SignerListSet: missing field SignerEntries') + if (!Array.isArray(e.SignerEntries)) throw new n.ValidationError('SignerListSet: invalid SignerEntries') + if (0 === e.SignerEntries.length) throw new n.ValidationError('SignerListSet: need at least 1 member in SignerEntries') + if (e.SignerEntries.length > 32) throw new n.ValidationError('SignerListSet: maximum of 32 members allowed in SignerEntries') + for (const t of e.SignerEntries) { + const e = t, + { WalletLocator: r } = e.SignerEntry + if (void 0 !== r && !o.test(r)) + throw new n.ValidationError('SignerListSet: WalletLocator in SignerEntry must be a 256-bit (32-byte) hexadecimal value') + } + } + } + }, + 58920: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.validateTicketCreate = void 0)) + const n = r(74337), + i = r(19061) + t.validateTicketCreate = function (e) { + ;(0, i.validateBaseTransaction)(e) + const { TicketCount: t } = e + if (void 0 === t) throw new n.ValidationError('TicketCreate: missing field TicketCount') + if ('number' != typeof t) throw new n.ValidationError('TicketCreate: TicketCount must be a number') + if (!Number.isInteger(t) || t < 1 || t > 250) throw new n.ValidationError('TicketCreate: TicketCount must be an integer from 1 to 250') + } + }, + 40951: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.validate = void 0)) + const n = r(74337), + i = r(143), + o = r(27161), + a = r(79228), + s = r(20489), + u = r(14139), + c = r(59906), + f = r(22781), + l = r(74350), + d = r(2638), + h = r(71637), + p = r(99618), + y = r(97931), + g = r(56680), + b = r(61062), + m = r(19061), + v = r(44992), + w = r(66350), + _ = r(26145), + E = r(64055), + S = r(10329), + A = r(16362), + O = r(66357), + M = r(38256), + T = r(69404), + I = r(84255), + N = r(82297), + x = r(4059), + L = r(24498), + k = r(51434), + R = r(1734), + P = r(5586), + B = r(51756), + D = r(58920), + C = r(18748) + t.validate = function (e) { + const t = Object.assign({}, e) + if (null == t.TransactionType) throw new n.ValidationError('Object does not have a `TransactionType`') + if ('string' != typeof t.TransactionType) throw new n.ValidationError("Object's `TransactionType` is not a string") + if (null != t.Memos && 'object' != typeof t.Memos) throw new n.ValidationError('Memo must be array') + switch ( + (null != t.Memos && + t.Memos.forEach((e) => { + if (null == (null == e ? void 0 : e.Memo)) throw new n.ValidationError('Memo data must be in a `Memo` field') + if (e.Memo.MemoData && !(0, i.isHex)(e.Memo.MemoData)) throw new n.ValidationError('MemoData field must be a hex value') + if (e.Memo.MemoType && !(0, i.isHex)(e.Memo.MemoType)) throw new n.ValidationError('MemoType field must be a hex value') + if (e.Memo.MemoFormat && !(0, i.isHex)(e.Memo.MemoFormat)) throw new n.ValidationError('MemoFormat field must be a hex value') + }), + Object.keys(t).forEach((e) => { + if (t[e] && (0, m.isIssuedCurrency)(t[e])) { + const r = t[e].currency + if (3 === r.length && 'XRP' === r.toUpperCase()) + throw new n.ValidationError( + `Cannot have an issued currency with a similar standard code to XRP (received '${r}'). XRP is not an issued currency.`, + ) + } + }), + (0, o.setTransactionFlagsToNumber)(t), + t.TransactionType) + ) { + case 'AccountDelete': + ;(0, a.validateAccountDelete)(t) + break + case 'AccountSet': + ;(0, s.validateAccountSet)(t) + break + case 'AMMBid': + ;(0, u.validateAMMBid)(t) + break + case 'AMMDelete': + ;(0, f.validateAMMDelete)(t) + break + case 'AMMDeposit': + ;(0, l.validateAMMDeposit)(t) + break + case 'AMMCreate': + ;(0, c.validateAMMCreate)(t) + break + case 'AMMVote': + ;(0, d.validateAMMVote)(t) + break + case 'AMMWithdraw': + ;(0, h.validateAMMWithdraw)(t) + break + case 'CheckCancel': + ;(0, p.validateCheckCancel)(t) + break + case 'CheckCash': + ;(0, y.validateCheckCash)(t) + break + case 'CheckCreate': + ;(0, g.validateCheckCreate)(t) + break + case 'Clawback': + ;(0, b.validateClawback)(t) + break + case 'DepositPreauth': + ;(0, v.validateDepositPreauth)(t) + break + case 'EscrowCancel': + ;(0, w.validateEscrowCancel)(t) + break + case 'EscrowCreate': + ;(0, _.validateEscrowCreate)(t) + break + case 'EscrowFinish': + ;(0, E.validateEscrowFinish)(t) + break + case 'NFTokenAcceptOffer': + ;(0, S.validateNFTokenAcceptOffer)(t) + break + case 'NFTokenBurn': + ;(0, A.validateNFTokenBurn)(t) + break + case 'NFTokenCancelOffer': + ;(0, O.validateNFTokenCancelOffer)(t) + break + case 'NFTokenCreateOffer': + ;(0, M.validateNFTokenCreateOffer)(t) + break + case 'NFTokenMint': + ;(0, T.validateNFTokenMint)(t) + break + case 'OfferCancel': + ;(0, I.validateOfferCancel)(t) + break + case 'OfferCreate': + ;(0, N.validateOfferCreate)(t) + break + case 'Payment': + ;(0, x.validatePayment)(t) + break + case 'PaymentChannelClaim': + ;(0, L.validatePaymentChannelClaim)(t) + break + case 'PaymentChannelCreate': + ;(0, k.validatePaymentChannelCreate)(t) + break + case 'PaymentChannelFund': + ;(0, R.validatePaymentChannelFund)(t) + break + case 'SetRegularKey': + ;(0, P.validateSetRegularKey)(t) + break + case 'SignerListSet': + ;(0, B.validateSignerListSet)(t) + break + case 'TicketCreate': + ;(0, D.validateTicketCreate)(t) + break + case 'TrustSet': + ;(0, C.validateTrustSet)(t) + break + default: + throw new n.ValidationError(`Invalid field TransactionType: ${t.TransactionType}`) + } + } + }, + 18748: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.validateTrustSet = t.TrustSetFlags = void 0)) + const n = r(74337), + i = r(19061) + var o + ;(((o = t.TrustSetFlags || (t.TrustSetFlags = {}))[(o.tfSetfAuth = 65536)] = 'tfSetfAuth'), + (o[(o.tfSetNoRipple = 131072)] = 'tfSetNoRipple'), + (o[(o.tfClearNoRipple = 262144)] = 'tfClearNoRipple'), + (o[(o.tfSetFreeze = 1048576)] = 'tfSetFreeze'), + (o[(o.tfClearFreeze = 2097152)] = 'tfClearFreeze'), + (t.validateTrustSet = function (e) { + ;(0, i.validateBaseTransaction)(e) + const { LimitAmount: t, QualityIn: r, QualityOut: o } = e + if (void 0 === t) throw new n.ValidationError('TrustSet: missing field LimitAmount') + if (!(0, i.isAmount)(t)) throw new n.ValidationError('TrustSet: invalid LimitAmount') + if (void 0 !== r && 'number' != typeof r) throw new n.ValidationError('TrustSet: QualityIn must be a number') + if (void 0 !== o && 'number' != typeof o) throw new n.ValidationError('TrustSet: QualityOut must be a number') + })) + }, + 27161: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.setTransactionFlagsToNumber = t.parseAccountRootFlags = void 0)) + const n = r(74337), + i = r(74347), + o = r(20489), + a = r(74350), + s = r(71637), + u = r(82297), + c = r(4059), + f = r(24498), + l = r(18748), + d = r(143) + function h(e, t) { + return Object.keys(e).reduce((r, i) => { + if (null == t[i]) throw new n.ValidationError(`flag ${i} doesn't exist in flagEnum: ${JSON.stringify(t)}`) + return e[i] ? r | t[i] : r + }, 0) + } + ;((t.parseAccountRootFlags = function (e) { + const t = {} + return ( + Object.values(i.AccountRootFlags).forEach((r) => { + 'string' == typeof r && (0, d.isFlagEnabled)(e, i.AccountRootFlags[r]) && (t[r] = !0) + }), + t + ) + }), + (t.setTransactionFlagsToNumber = function (e) { + if (null != e.Flags) { + if ('number' != typeof e.Flags) + switch (e.TransactionType) { + case 'AccountSet': + return void (e.Flags = h(e.Flags, o.AccountSetTfFlags)) + case 'AMMDeposit': + return void (e.Flags = h(e.Flags, a.AMMDepositFlags)) + case 'AMMWithdraw': + return void (e.Flags = h(e.Flags, s.AMMWithdrawFlags)) + case 'OfferCreate': + return void (e.Flags = h(e.Flags, u.OfferCreateFlags)) + case 'PaymentChannelClaim': + return void (e.Flags = h(e.Flags, f.PaymentChannelClaimFlags)) + case 'Payment': + return void (e.Flags = h(e.Flags, c.PaymentFlags)) + case 'TrustSet': + return void (e.Flags = h(e.Flags, l.TrustSetFlags)) + default: + e.Flags = 0 + } + } else e.Flags = 0 + })) + }, + 143: (e, t) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.isHex = t.isFlagEnabled = t.onlyHasFields = void 0)) + const r = /^[0-9A-Fa-f]+$/u + ;((t.onlyHasFields = function (e, t) { + return Object.keys(e).every((e) => t.includes(e)) + }), + (t.isFlagEnabled = function (e, t) { + return (BigInt(t) & BigInt(e)) === BigInt(t) + }), + (t.isHex = function (e) { + return r.test(e) + })) + }, + 71083: function (e, t, r) { + 'use strict' + var n = + (this && this.__awaiter) || + function (e, t, r, n) { + return new (r || (r = Promise))(function (i, o) { + function a(e) { + try { + u(n.next(e)) + } catch (e) { + o(e) + } + } + function s(e) { + try { + u(n.throw(e)) + } catch (e) { + o(e) + } + } + function u(e) { + var t + e.done + ? i(e.value) + : ((t = e.value), + t instanceof r + ? t + : new r(function (e) { + e(t) + })).then(a, s) + } + u((n = n.apply(e, t || [])).next()) + }) + }, + i = + (this && this.__importDefault) || + function (e) { + return e && e.__esModule ? e : { default: e } + } + Object.defineProperty(t, '__esModule', { value: !0 }) + const o = i(r(83753)), + a = r(79798), + s = r(74337), + u = r(27161), + c = r(17455), + f = i(r(11437)) + function l(e, t, r) { + const { classicAccount: n, tag: i } = d(e[t]) + if (((e[t] = n), null != i && !1 !== i)) { + if (e[r] && e[r] !== i) throw new s.ValidationError(`The ${r}, if present, must match the tag of the ${t} X-address`) + e[r] = i + } + } + function d(e, t) { + if ((0, a.isValidXAddress)(e)) { + const r = (0, a.xAddressToClassicAddress)(e) + if (null != t && r.tag !== t) + throw new s.ValidationError('address includes a tag that does not match the tag specified in the transaction') + return { classicAccount: r.classicAddress, tag: r.tag } + } + return { classicAccount: e, tag: t } + } + function h(e, t) { + const r = e[t] + if ('string' == typeof r) { + const { classicAccount: n } = d(r) + e[t] = n + } + } + function p(e, t) { + return new o.default(e).times(t).toString() + } + t.default = function (e, t) { + return n(this, void 0, void 0, function* () { + const r = Object.assign({}, e) + ;(!(function (e) { + ;(l(e, 'Account', 'SourceTag'), + null != e.Destination && l(e, 'Destination', 'DestinationTag'), + h(e, 'Authorize'), + h(e, 'Unauthorize'), + h(e, 'Owner'), + h(e, 'RegularKey')) + })(r), + (0, u.setTransactionFlagsToNumber)(r)) + const i = [] + return ( + null == r.NetworkID && + (r.NetworkID = + void 0 !== (a = this).networkID && + a.networkID > 1024 && + ((a.buildVersion && + (function (e, t) { + if (e === t) return !0 + const r = e.split('.'), + n = t.split('.'), + i = parseInt(r[0], 10), + o = parseInt(r[1], 10), + a = parseInt(n[0], 10), + s = parseInt(n[1], 10) + if (i !== a) return i < a + if (o !== s) return o < s + const u = r[2].split('-'), + c = n[2].split('-'), + f = parseInt(u[0], 10), + l = parseInt(c[0], 10) + return f !== l + ? f < l + : u.length !== c.length + ? u.length > c.length + : 2 === u.length && + (u[1][0].startsWith(c[1][0]) + ? u[1].startsWith('b') + ? parseInt(u[1].slice(1), 10) < parseInt(c[1].slice(1), 10) + : parseInt(u[1].slice(2), 10) < parseInt(c[1].slice(2), 10) + : u[1] < c[1]) + })('1.11.0', a.buildVersion)) || + 21338 === a.networkID) + ? this.networkID + : void 0), + null == r.Sequence && + i.push( + (function (e, t) { + return n(this, void 0, void 0, function* () { + const r = { command: 'account_info', account: t.Account, ledger_index: 'current' }, + n = yield e.request(r) + t.Sequence = n.result.account_data.Sequence + }) + })(this, r), + ), + null == r.Fee && + i.push( + (function (e, t, r = 0) { + return n(this, void 0, void 0, function* () { + const i = yield (0, f.default)(e), + a = (0, c.xrpToDrops)(i) + let s = new o.default(a) + if ('EscrowFinish' === t.TransactionType && null != t.Fulfillment) { + const e = Math.ceil(t.Fulfillment.length / 2) + s = new o.default(p(a, 33 + e / 16)).dp(0, o.default.ROUND_CEIL) + } + ;(('AccountDelete' !== t.TransactionType && 'AMMCreate' !== t.TransactionType) || + (s = yield (function (e) { + var t + return n(this, void 0, void 0, function* () { + const r = yield e.request({ command: 'server_state' }), + n = null === (t = r.result.state.validated_ledger) || void 0 === t ? void 0 : t.reserve_inc + return null == n ? Promise.reject(new Error('Could not fetch Owner Reserve.')) : new o.default(n) + }) + })(e)), + r > 0 && (s = o.default.sum(s, p(a, 1 + r)))) + const u = (0, c.xrpToDrops)(e.maxFeeXRP), + l = 'AccountDelete' === t.TransactionType ? s : o.default.min(s, u) + t.Fee = l.dp(0, o.default.ROUND_CEIL).toString(10) + }) + })(this, r, t), + ), + null == r.LastLedgerSequence && + i.push( + (function (e, t) { + return n(this, void 0, void 0, function* () { + const r = yield e.getLedgerIndex() + t.LastLedgerSequence = r + 20 + }) + })(this, r), + ), + 'AccountDelete' === r.TransactionType && + i.push( + (function (e, t) { + return n(this, void 0, void 0, function* () { + const r = { command: 'account_objects', account: t.Account, ledger_index: 'validated', deletion_blockers_only: !0 }, + n = yield e.request(r) + return new Promise((e, r) => { + ;(n.result.account_objects.length > 0 && + r( + new s.XrplError( + `Account ${t.Account} cannot be deleted; there are Escrows, PayChannels, RippleStates, or Checks associated with the account.`, + n.result.account_objects, + ), + ), + e()) + }) + }) + })(this, r), + ), + Promise.all(i).then(() => r) + ) + var a + }) + } + }, + 21701: function (e, t, r) { + 'use strict' + var n = + (this && this.__awaiter) || + function (e, t, r, n) { + return new (r || (r = Promise))(function (i, o) { + function a(e) { + try { + u(n.next(e)) + } catch (e) { + o(e) + } + } + function s(e) { + try { + u(n.throw(e)) + } catch (e) { + o(e) + } + } + function u(e) { + var t + e.done + ? i(e.value) + : ((t = e.value), + t instanceof r + ? t + : new r(function (e) { + e(t) + })).then(a, s) + } + u((n = n.apply(e, t || [])).next()) + }) + }, + i = + (this && this.__importDefault) || + function (e) { + return e && e.__esModule ? e : { default: e } + } + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.getBalances = t.getXrpBalance = void 0)) + const o = i(r(96372)), + a = r(17455) + ;((t.getXrpBalance = function (e, t = {}) { + var r + return n(this, void 0, void 0, function* () { + const n = { + command: 'account_info', + account: e, + ledger_index: null !== (r = t.ledger_index) && void 0 !== r ? r : 'validated', + ledger_hash: t.ledger_hash, + }, + i = yield this.request(n) + return (0, a.dropsToXrp)(i.result.account_data.Balance) + }) + }), + (t.getBalances = function (e, t = {}) { + var r + return n(this, void 0, void 0, function* () { + const n = [] + let i = Promise.resolve('') + t.peer || (i = this.getXrpBalance(e, { ledger_hash: t.ledger_hash, ledger_index: t.ledger_index })) + const a = { + command: 'account_lines', + account: e, + ledger_index: null !== (r = t.ledger_index) && void 0 !== r ? r : 'validated', + ledger_hash: t.ledger_hash, + peer: t.peer, + limit: t.limit, + }, + s = this.requestAll(a) + return ( + yield Promise.all([i, s]).then(([e, t]) => { + const r = (0, o.default)(t, (e) => e.result.lines.map((e) => ({ value: e.balance, currency: e.currency, issuer: e.account }))) + ;('' !== e && n.push({ currency: 'XRP', value: e }), n.push(...r)) + }), + n.slice(0, t.limit) + ) + }) + })) + }, + 11437: function (e, t, r) { + 'use strict' + var n = + (this && this.__awaiter) || + function (e, t, r, n) { + return new (r || (r = Promise))(function (i, o) { + function a(e) { + try { + u(n.next(e)) + } catch (e) { + o(e) + } + } + function s(e) { + try { + u(n.throw(e)) + } catch (e) { + o(e) + } + } + function u(e) { + var t + e.done + ? i(e.value) + : ((t = e.value), + t instanceof r + ? t + : new r(function (e) { + e(t) + })).then(a, s) + } + u((n = n.apply(e, t || [])).next()) + }) + }, + i = + (this && this.__importDefault) || + function (e) { + return e && e.__esModule ? e : { default: e } + } + Object.defineProperty(t, '__esModule', { value: !0 }) + const o = i(r(83753)), + a = r(74337) + t.default = function (e, t) { + var r + return n(this, void 0, void 0, function* () { + const n = null != t ? t : e.feeCushion, + i = (yield e.request({ command: 'server_info' })).result.info, + s = null === (r = i.validated_ledger) || void 0 === r ? void 0 : r.base_fee_xrp + if (null == s) throw new a.XrplError('getFeeXrp: Could not get base_fee_xrp from server_info') + const u = new o.default(s) + null == i.load_factor && (i.load_factor = 1) + let c = u.times(i.load_factor).times(n) + return ((c = o.default.min(c, e.maxFeeXRP)), new o.default(c.toFixed(6)).toString(10)) + }) + } + }, + 4871: function (e, t) { + 'use strict' + var r = + (this && this.__awaiter) || + function (e, t, r, n) { + return new (r || (r = Promise))(function (i, o) { + function a(e) { + try { + u(n.next(e)) + } catch (e) { + o(e) + } + } + function s(e) { + try { + u(n.throw(e)) + } catch (e) { + o(e) + } + } + function u(e) { + var t + e.done + ? i(e.value) + : ((t = e.value), + t instanceof r + ? t + : new r(function (e) { + e(t) + })).then(a, s) + } + u((n = n.apply(e, t || [])).next()) + }) + } + ;(Object.defineProperty(t, '__esModule', { value: !0 }), + (t.default = function () { + return r(this, void 0, void 0, function* () { + return (yield this.request({ command: 'ledger', ledger_index: 'validated' })).result.ledger_index + }) + })) + }, + 64374: function (e, t, r) { + 'use strict' + var n = + (this && this.__awaiter) || + function (e, t, r, n) { + return new (r || (r = Promise))(function (i, o) { + function a(e) { + try { + u(n.next(e)) + } catch (e) { + o(e) + } + } + function s(e) { + try { + u(n.throw(e)) + } catch (e) { + o(e) + } + } + function u(e) { + var t + e.done + ? i(e.value) + : ((t = e.value), + t instanceof r + ? t + : new r(function (e) { + e(t) + })).then(a, s) + } + u((n = n.apply(e, t || [])).next()) + }) + }, + i = + (this && this.__importDefault) || + function (e) { + return e && e.__esModule ? e : { default: e } + } + Object.defineProperty(t, '__esModule', { value: !0 }) + const o = i(r(83753)), + a = i(r(96372)), + s = r(74337), + u = r(36867) + function c(e) { + return e.sort((e, t) => { + var r, n + const i = null !== (r = e.quality) && void 0 !== r ? r : 0, + a = null !== (n = t.quality) && void 0 !== n ? n : 0 + return new o.default(i).comparedTo(a) + }) + } + const f = new Set(['limit', 'ledger_index', 'ledger_hash', 'taker']) + t.default = function (e, t, r = {}) { + var i, o + return n(this, void 0, void 0, function* () { + if ( + (Object.keys(r).forEach((e) => { + if (!f.has(e)) throw new s.ValidationError(`Unexpected option: ${e}`, r) + }), + r.limit && 'number' != typeof r.limit) + ) + throw new s.ValidationError('limit must be a number', r.limit) + if ( + r.ledger_index && + !( + 'number' == typeof r.ledger_index || + ('string' == typeof r.ledger_index && ['validated', 'closed', 'current'].includes(r.ledger_index)) + ) + ) + throw new s.ValidationError('ledger_index must be a number or a string of "validated", "closed", or "current"', r.ledger_index) + if (void 0 !== r.ledger_hash && null !== r.ledger_hash && 'string' != typeof r.ledger_hash) + throw new s.ValidationError('ledger_hash must be a string', r.ledger_hash) + if (void 0 !== r.taker && 'string' != typeof r.taker) throw new s.ValidationError('taker must be a string', r.taker) + const n = { + command: 'book_offers', + taker_pays: e, + taker_gets: t, + ledger_index: null !== (i = r.ledger_index) && void 0 !== i ? i : 'validated', + ledger_hash: null === r.ledger_hash ? void 0 : r.ledger_hash, + limit: null !== (o = r.limit) && void 0 !== o ? o : 20, + taker: r.taker ? r.taker : void 0, + }, + l = yield this.requestAll(n) + ;((n.taker_gets = e), (n.taker_pays = t)) + const d = yield this.requestAll(n), + h = [...(0, a.default)(l, (e) => e.result.offers), ...(0, a.default)(d, (e) => e.result.offers)], + p = [], + y = [] + return ( + h.forEach((e) => { + 0 == (e.Flags & u.OfferFlags.lsfSell) ? p.push(e) : y.push(e) + }), + { buy: c(p).slice(0, r.limit), sell: c(y).slice(0, r.limit) } + ) + }) + } + }, + 92475: function (e, t, r) { + 'use strict' + var n = + (this && this.__createBinding) || + (Object.create + ? function (e, t, r, n) { + void 0 === n && (n = r) + var i = Object.getOwnPropertyDescriptor(t, r) + ;((i && !('get' in i ? !t.__esModule : i.writable || i.configurable)) || + (i = { + enumerable: !0, + get: function () { + return t[r] + }, + }), + Object.defineProperty(e, n, i)) + } + : function (e, t, r, n) { + ;(void 0 === n && (n = r), (e[n] = t[r])) + }), + i = + (this && this.__exportStar) || + function (e, t) { + for (var r in e) 'default' === r || Object.prototype.hasOwnProperty.call(t, r) || n(t, e, r) + }, + o = + (this && this.__importDefault) || + function (e) { + return e && e.__esModule ? e : { default: e } + } + ;(Object.defineProperty(t, '__esModule', { value: !0 }), + (t.getOrderbook = t.getLedgerIndex = t.getXrpBalance = t.getBalances = t.autofill = void 0)) + var a = r(71083) + Object.defineProperty(t, 'autofill', { + enumerable: !0, + get: function () { + return o(a).default + }, + }) + var s = r(21701) + ;(Object.defineProperty(t, 'getBalances', { + enumerable: !0, + get: function () { + return s.getBalances + }, + }), + Object.defineProperty(t, 'getXrpBalance', { + enumerable: !0, + get: function () { + return s.getXrpBalance + }, + })) + var u = r(4871) + Object.defineProperty(t, 'getLedgerIndex', { + enumerable: !0, + get: function () { + return o(u).default + }, + }) + var c = r(64374) + ;(Object.defineProperty(t, 'getOrderbook', { + enumerable: !0, + get: function () { + return o(c).default + }, + }), + i(r(69134), t), + i(r(21796), t)) + }, + 69134: function (e, t, r) { + 'use strict' + var n = + (this && this.__awaiter) || + function (e, t, r, n) { + return new (r || (r = Promise))(function (i, o) { + function a(e) { + try { + u(n.next(e)) + } catch (e) { + o(e) + } + } + function s(e) { + try { + u(n.throw(e)) + } catch (e) { + o(e) + } + } + function u(e) { + var t + e.done + ? i(e.value) + : ((t = e.value), + t instanceof r + ? t + : new r(function (e) { + e(t) + })).then(a, s) + } + u((n = n.apply(e, t || [])).next()) + }) + } + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.submitAndWait = t.submit = void 0)) + const i = r(79056), + o = r(74337), + a = r(17455) + function s(e, t, r = !1) { + return n(this, void 0, void 0, function* () { + if (!c(t)) throw new o.ValidationError('Transaction must be signed') + const n = { + command: 'submit', + tx_blob: 'string' == typeof t ? t : (0, i.encode)(t), + fail_hard: ((a = t), 'AccountDelete' === ('string' == typeof a ? (0, i.decode)(a) : a).TransactionType || r), + } + var a + return e.request(n) + }) + } + function u(e, t, r, i) { + return n(this, void 0, void 0, function* () { + yield (function (e) { + return n(this, void 0, void 0, function* () { + return new Promise((e) => { + setTimeout(e, 1e3) + }) + }) + })() + const a = yield e.getLedgerIndex() + if (r < a) + throw new o.XrplError( + `The latest ledger sequence ${a} is greater than the transaction's LastLedgerSequence (${r}).\nPreliminary result: ${i}`, + ) + const s = yield e.request({ command: 'tx', transaction: t }).catch((o) => + n(this, void 0, void 0, function* () { + var n + const a = null === (n = null == o ? void 0 : o.data) || void 0 === n ? void 0 : n.error + if ('txnNotFound' === a) return u(e, t, r, i) + throw new Error(`${a} \n Preliminary result: ${i}.\nFull error details: ${String(o)}`) + }), + ) + return s.result.validated ? s : u(e, t, r, i) + }) + } + function c(e) { + const t = 'string' == typeof e ? (0, i.decode)(e) : e + if ('string' == typeof t) return !1 + if (null != t.Signers) { + const e = t.Signers + for (const t of e) if (null == t.Signer.SigningPubKey || null == t.Signer.TxnSignature) return !1 + return !0 + } + return null != t.SigningPubKey && null != t.TxnSignature + } + function f(e, t, { autofill: r = !0, wallet: a } = {}) { + return n(this, void 0, void 0, function* () { + if (c(t)) return t + if (!a) throw new o.ValidationError('Wallet must be provided when submitting an unsigned transaction') + let n = 'string' == typeof t ? (0, i.decode)(t) : t + return (r && (n = yield e.autofill(n)), a.sign(n).tx_blob) + }) + } + ;((t.submit = function (e, t) { + return n(this, void 0, void 0, function* () { + return s(this, yield f(this, e, t), null == t ? void 0 : t.failHard) + }) + }), + (t.submitAndWait = function (e, t) { + return n(this, void 0, void 0, function* () { + const r = yield f(this, e, t), + n = (function (e) { + return ('string' == typeof e ? (0, i.decode)(e) : e).LastLedgerSequence + })(r) + if (null == n) throw new o.ValidationError('Transaction must contain a LastLedgerSequence value for reliable submission.') + const c = yield s(this, r, null == t ? void 0 : t.failHard) + return u(this, a.hashes.hashSignedTx(r), n, c.result.engine_result) + }) + })) + }, + 21796: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.ensureClassicAddress = void 0)) + const n = r(79798) + t.ensureClassicAddress = function (e) { + if ((0, n.isValidXAddress)(e)) { + const { classicAddress: t, tag: r } = (0, n.xAddressToClassicAddress)(e) + if (!1 !== r) throw new Error('This command does not support the use of a tag. Use an address without a tag.') + return t + } + return e + } + }, + 37620: (e, t, r) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.deriveXAddress = t.deriveAddress = t.deriveKeypair = void 0)) + const n = r(79798), + i = r(43004) + ;(Object.defineProperty(t, 'deriveKeypair', { + enumerable: !0, + get: function () { + return i.deriveKeypair + }, + }), + Object.defineProperty(t, 'deriveAddress', { + enumerable: !0, + get: function () { + return i.deriveAddress + }, + }), + (t.deriveXAddress = function (e) { + const t = (0, i.deriveAddress)(e.publicKey) + return (0, n.classicAddressToXAddress)(t, e.tag, e.test) + })) + }, + 91905: function (e, t, r) { + 'use strict' + var n = + (this && this.__importDefault) || + function (e) { + return e && e.__esModule ? e : { default: e } + } + Object.defineProperty(t, '__esModule', { value: !0 }) + const i = n(r(83753)), + o = n(r(60567)), + a = n(r(24865)), + s = r(95488) + function u(e) { + const t = Object.keys(e)[0], + r = e[t] + return Object.assign(Object.assign({}, r), { + NodeType: t, + LedgerEntryType: r.LedgerEntryType, + LedgerIndex: r.LedgerIndex, + NewFields: r.NewFields, + FinalFields: r.FinalFields, + PreviousFields: r.PreviousFields, + }) + } + function c(e) { + return 'string' == typeof e ? new i.default(e) : new i.default(e.value) + } + function f(e) { + var t, r, n + let i = null + return ( + (null === (t = e.NewFields) || void 0 === t ? void 0 : t.Balance) + ? (i = c(e.NewFields.Balance)) + : (null === (r = e.PreviousFields) || void 0 === r ? void 0 : r.Balance) && + (null === (n = e.FinalFields) || void 0 === n ? void 0 : n.Balance) && + (i = c(e.FinalFields.Balance).minus(c(e.PreviousFields.Balance))), + null === i || i.isZero() ? null : i + ) + } + function l(e) { + const t = new i.default(e.balance.value).negated() + return { account: e.balance.issuer, balance: { issuer: e.account, currency: e.balance.currency, value: t.toString() } } + } + t.default = function (e) { + const t = (function (e) { + return 0 === e.AffectedNodes.length ? [] : e.AffectedNodes.map(u) + })(e).map((e) => { + if ('AccountRoot' === e.LedgerEntryType) { + const t = (function (e) { + var t, r, n + const i = f(e) + return null === i + ? null + : { + account: + null !== (r = null === (t = e.FinalFields) || void 0 === t ? void 0 : t.Account) && void 0 !== r + ? r + : null === (n = e.NewFields) || void 0 === n + ? void 0 + : n.Account, + balance: { currency: 'XRP', value: (0, s.dropsToXrp)(i).toString() }, + } + })(e) + return null == t ? [] : [t] + } + if ('RippleState' === e.LedgerEntryType) { + const t = (function (e) { + var t, r + const n = f(e) + if (null === n) return null + const i = null == e.NewFields ? e.FinalFields : e.NewFields, + o = { + account: null === (t = null == i ? void 0 : i.LowLimit) || void 0 === t ? void 0 : t.issuer, + balance: { + issuer: null === (r = null == i ? void 0 : i.HighLimit) || void 0 === r ? void 0 : r.issuer, + currency: (null == i ? void 0 : i.Balance).currency, + value: n.toString(), + }, + } + return [o, l(o)] + })(e) + return null == t ? [] : t + } + return [] + }) + return (function (e) { + const t = (0, a.default)(e, (e) => e.account) + return Object.entries(t).map(([e, t]) => ({ account: e, balances: t.map((e) => e.balance) })) + })((0, o.default)(t)) + } + }, + 64212: function (e, t, r) { + 'use strict' + var n = + (this && this.__importDefault) || + function (e) { + return e && e.__esModule ? e : { default: e } + } + Object.defineProperty(t, '__esModule', { value: !0 }) + const i = n(r(96372)), + o = r(79056), + a = r(3378) + t.default = function (e) { + if ('string' != typeof e && void 0 === (null == e ? void 0 : e.AffectedNodes)) + throw new TypeError( + `Unable to parse the parameter given to getNFTokenID.\n 'meta' must be the metadata from an NFTokenMint transaction. Received ${JSON.stringify(e)} instead.`, + ) + const t = (function (e) { + return 'string' == typeof e ? (0, o.decode)(e) : e + })(e).AffectedNodes.filter((e) => { + var t + return (0, a.isCreatedNode)(e) + ? 'NFTokenPage' === e.CreatedNode.LedgerEntryType + : !!(0, a.isModifiedNode)(e) && + 'NFTokenPage' === e.ModifiedNode.LedgerEntryType && + Boolean(null === (t = e.ModifiedNode.PreviousFields) || void 0 === t ? void 0 : t.NFTokens) + }), + r = new Set( + (0, i.default)(t, (e) => { + var t + return ((0, a.isModifiedNode)(e) ? (null === (t = e.ModifiedNode.PreviousFields) || void 0 === t ? void 0 : t.NFTokens) : []).map( + (e) => e.NFToken.NFTokenID, + ) + }).filter((e) => Boolean(e)), + ) + return (0, i.default)(t, (e) => { + var t, r, n, i, o, a + return ( + null !== + (a = + null !== + (n = + null === (r = null === (t = e.ModifiedNode) || void 0 === t ? void 0 : t.FinalFields) || void 0 === r ? void 0 : r.NFTokens) && + void 0 !== n + ? n + : null === (o = null === (i = e.CreatedNode) || void 0 === i ? void 0 : i.NewFields) || void 0 === o + ? void 0 + : o.NFTokens) && void 0 !== a + ? a + : [] + ).map((e) => e.NFToken.NFTokenID) + }) + .filter((e) => Boolean(e)) + .find((e) => !r.has(e)) + } + }, + 95963: (e, t) => { + 'use strict' + var r + ;(Object.defineProperty(t, '__esModule', { value: !0 }), + (function (e) { + ;((e[(e.TRANSACTION_ID = 1415073280)] = 'TRANSACTION_ID'), + (e[(e.TRANSACTION_NODE = 1397638144)] = 'TRANSACTION_NODE'), + (e[(e.INNER_NODE = 1296649728)] = 'INNER_NODE'), + (e[(e.LEAF_NODE = 1296846336)] = 'LEAF_NODE'), + (e[(e.TRANSACTION_SIGN = 1398036480)] = 'TRANSACTION_SIGN'), + (e[(e.TRANSACTION_SIGN_TESTNET = 1937012736)] = 'TRANSACTION_SIGN_TESTNET'), + (e[(e.TRANSACTION_MULTISIGN = 1397576704)] = 'TRANSACTION_MULTISIGN'), + (e[(e.LEDGER = 1280791040)] = 'LEDGER')) + })(r || (r = {})), + (t.default = r)) + }, + 46728: function (e, t, r) { + 'use strict' + var n = + (this && this.__importDefault) || + function (e) { + return e && e.__esModule ? e : { default: e } + } + Object.defineProperty(t, '__esModule', { value: !0 }) + const i = r(74337), + o = n(r(95963)), + a = n(r(1582)), + s = n(r(57663)), + u = r(30134), + c = '0000000000000000000000000000000000000000000000000000000000000000' + class f extends u.Node { + constructor(e = 0) { + ;(super(), (this.leaves = {}), (this.type = u.NodeType.INNER), (this.depth = e), (this.empty = !0)) + } + get hash() { + if (this.empty) return c + let e = '' + for (let t = 0; t <= 15; t++) { + const r = this.leaves[t] + e += null == r ? c : r.hash + } + const t = o.default.INNER_NODE.toString(16) + return (0, a.default)(t + e) + } + addItem(e, t) { + const r = this.getNode(parseInt(e[this.depth], 16)) + if (void 0 !== r) { + if (r instanceof f) r.addItem(e, t) + else if (r instanceof s.default) { + if (r.tag === e) throw new i.XrplError('Tried to add a node to a SHAMap that was already in there.') + { + const n = new f(this.depth + 1) + ;(n.addItem(r.tag, r), n.addItem(e, t), this.setNode(parseInt(e[this.depth], 16), n)) + } + } + } else this.setNode(parseInt(e[this.depth], 16), t) + } + setNode(e, t) { + if (e < 0 || e > 15) throw new i.XrplError('Invalid slot: slot must be between 0-15.') + ;((this.leaves[e] = t), (this.empty = !1)) + } + getNode(e) { + if (e < 0 || e > 15) throw new i.XrplError('Invalid slot: slot must be between 0-15.') + return this.leaves[e] + } + } + t.default = f + }, + 57663: function (e, t, r) { + 'use strict' + var n = + (this && this.__importDefault) || + function (e) { + return e && e.__esModule ? e : { default: e } + } + Object.defineProperty(t, '__esModule', { value: !0 }) + const i = r(74337), + o = n(r(95963)), + a = n(r(1582)), + s = r(30134) + class u extends s.Node { + constructor(e, t, r) { + ;(super(), (this.tag = e), (this.type = r), (this.data = t)) + } + get hash() { + switch (this.type) { + case s.NodeType.ACCOUNT_STATE: { + const e = o.default.LEAF_NODE.toString(16) + return (0, a.default)(e + this.data + this.tag) + } + case s.NodeType.TRANSACTION_NO_METADATA: { + const e = o.default.TRANSACTION_ID.toString(16) + return (0, a.default)(e + this.data) + } + case s.NodeType.TRANSACTION_METADATA: { + const e = o.default.TRANSACTION_NODE.toString(16) + return (0, a.default)(e + this.data + this.tag) + } + default: + throw new i.XrplError('Tried to hash a SHAMap node of unknown type.') + } + } + addItem(e, t) { + throw new i.XrplError('Cannot call addItem on a LeafNode') + } + } + t.default = u + }, + 17418: function (e, t, r) { + 'use strict' + var n = + (this && this.__createBinding) || + (Object.create + ? function (e, t, r, n) { + void 0 === n && (n = r) + var i = Object.getOwnPropertyDescriptor(t, r) + ;((i && !('get' in i ? !t.__esModule : i.writable || i.configurable)) || + (i = { + enumerable: !0, + get: function () { + return t[r] + }, + }), + Object.defineProperty(e, n, i)) + } + : function (e, t, r, n) { + ;(void 0 === n && (n = r), (e[n] = t[r])) + }), + i = + (this && this.__exportStar) || + function (e, t) { + for (var r in e) 'default' === r || Object.prototype.hasOwnProperty.call(t, r) || n(t, e, r) + }, + o = + (this && this.__importDefault) || + function (e) { + return e && e.__esModule ? e : { default: e } + } + Object.defineProperty(t, '__esModule', { value: !0 }) + const a = o(r(46728)), + s = o(r(57663)) + ;(i(r(30134), t), + (t.default = class { + constructor() { + this.root = new a.default(0) + } + get hash() { + return this.root.hash + } + addItem(e, t, r) { + this.root.addItem(e, new s.default(e, t, r)) + } + })) + }, + 30134: (e, t) => { + 'use strict' + var r + ;(Object.defineProperty(t, '__esModule', { value: !0 }), + (t.Node = t.NodeType = void 0), + ((r = t.NodeType || (t.NodeType = {}))[(r.INNER = 1)] = 'INNER'), + (r[(r.TRANSACTION_NO_METADATA = 2)] = 'TRANSACTION_NO_METADATA'), + (r[(r.TRANSACTION_METADATA = 3)] = 'TRANSACTION_METADATA'), + (r[(r.ACCOUNT_STATE = 4)] = 'ACCOUNT_STATE'), + (t.Node = class {})) + }, + 62061: function (e, t, r) { + 'use strict' + var n = r(18390).Buffer, + i = + (this && this.__createBinding) || + (Object.create + ? function (e, t, r, n) { + void 0 === n && (n = r) + var i = Object.getOwnPropertyDescriptor(t, r) + ;((i && !('get' in i ? !t.__esModule : i.writable || i.configurable)) || + (i = { + enumerable: !0, + get: function () { + return t[r] + }, + }), + Object.defineProperty(e, n, i)) + } + : function (e, t, r, n) { + ;(void 0 === n && (n = r), (e[n] = t[r])) + }), + o = + (this && this.__setModuleDefault) || + (Object.create + ? function (e, t) { + Object.defineProperty(e, 'default', { enumerable: !0, value: t }) + } + : function (e, t) { + e.default = t + }), + a = + (this && this.__importStar) || + function (e) { + if (e && e.__esModule) return e + var t = {} + if (null != e) for (var r in e) 'default' !== r && Object.prototype.hasOwnProperty.call(e, r) && i(t, e, r) + return (o(t, e), t) + }, + s = + (this && this.__importDefault) || + function (e) { + return e && e.__esModule ? e : { default: e } + } + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.hashStateTree = t.hashTxTree = t.hashLedgerHeader = t.hashSignedTx = void 0)) + const u = s(r(83753)), + c = r(79056), + f = r(74337), + l = s(r(95963)), + d = s(r(1582)), + h = a(r(17418)), + p = 16 + function y(e, t) { + return Number(e) + .toString(p) + .padStart(2 * t, '0') + } + function g(e) { + return n.from(e).toString('hex') + } + function b(e) { + const t = e.length / 2 + if (t <= 192) return g([t]) + e + if (t <= 12480) { + const r = t - 193 + return g([193 + (r >>> 8), 255 & r]) + e + } + if (t <= 918744) { + const r = t - 12481 + return g([241 + (r >>> 16), (r >>> 8) & 255, 255 & r]) + e + } + throw new f.XrplError('Variable integer overflow.') + } + function m(e) { + let t, r + if ( + ('string' == typeof e ? ((t = e), (r = (0, c.decode)(e))) : ((t = (0, c.encode)(e)), (r = e)), + void 0 === r.TxnSignature && void 0 === r.Signers) + ) + throw new f.ValidationError('The transaction must be signed to hash it.') + const n = l.default.TRANSACTION_ID.toString(16).toUpperCase() + return (0, d.default)(n.concat(t)) + } + function v(e) { + const t = + l.default.LEDGER.toString(p).toUpperCase() + + y(Number(e.ledger_index), 4) + + ((r = e.total_coins), 8, new u.default(r).toString(p).padStart(16, '0')) + + e.parent_hash + + e.transaction_hash + + e.account_hash + + y(e.parent_close_time, 4) + + y(e.close_time, 4) + + y(e.close_time_resolution, 1) + + y(e.close_flags, 1) + var r + return (0, d.default)(t) + } + function w(e) { + var t + const r = new h.default() + for (const n of e) { + const e = (0, c.encode)(n), + i = (0, c.encode)(null !== (t = n.metaData) && void 0 !== t ? t : {}), + o = m(e), + a = b(e) + b(i) + r.addItem(o, a, h.NodeType.TRANSACTION_METADATA) + } + return r.hash + } + function _(e) { + const t = new h.default() + return ( + e.forEach((e) => { + const r = (0, c.encode)(e) + t.addItem(e.index, r, h.NodeType.ACCOUNT_STATE) + }), + t.hash + ) + } + function E(e, t) { + const { transaction_hash: r } = e + if (!t.computeTreeHashes) return r + if (null == e.transactions) throw new f.ValidationError('transactions is missing from the ledger') + const n = w(e.transactions) + if (r !== n) + throw new f.ValidationError('transactionHash in header does not match computed hash of transactions', { + transactionHashInHeader: r, + computedHashOfTransactions: n, + }) + return n + } + function S(e, t) { + const { account_hash: r } = e + if (!t.computeTreeHashes) return r + if (null == e.accountState) throw new f.ValidationError('accountState is missing from the ledger') + const n = _(e.accountState) + if (r !== n) throw new f.ValidationError('stateHash in header does not match computed hash of state') + return n + } + ;((t.hashSignedTx = m), + (t.hashLedgerHeader = v), + (t.hashTxTree = w), + (t.hashStateTree = _), + (t.default = function (e, t = {}) { + const r = { transaction_hash: E(e, t), account_hash: S(e, t) } + return v(Object.assign(Object.assign({}, e), r)) + })) + }, + 65570: function (e, t, r) { + 'use strict' + var n = r(18390).Buffer, + i = + (this && this.__createBinding) || + (Object.create + ? function (e, t, r, n) { + void 0 === n && (n = r) + var i = Object.getOwnPropertyDescriptor(t, r) + ;((i && !('get' in i ? !t.__esModule : i.writable || i.configurable)) || + (i = { + enumerable: !0, + get: function () { + return t[r] + }, + }), + Object.defineProperty(e, n, i)) + } + : function (e, t, r, n) { + ;(void 0 === n && (n = r), (e[n] = t[r])) + }), + o = + (this && this.__setModuleDefault) || + (Object.create + ? function (e, t) { + Object.defineProperty(e, 'default', { enumerable: !0, value: t }) + } + : function (e, t) { + e.default = t + }), + a = + (this && this.__importStar) || + function (e) { + if (e && e.__esModule) return e + var t = {} + if (null != e) for (var r in e) 'default' !== r && Object.prototype.hasOwnProperty.call(e, r) && i(t, e, r) + return (o(t, e), t) + }, + s = + (this && this.__importDefault) || + function (e) { + return e && e.__esModule ? e : { default: e } + } + ;(Object.defineProperty(t, '__esModule', { value: !0 }), + (t.hashTxTree = + t.hashStateTree = + t.hashLedger = + t.hashSignedTx = + t.hashLedgerHeader = + t.hashPaymentChannel = + t.hashEscrow = + t.hashTrustline = + t.hashOfferId = + t.hashSignerListId = + t.hashAccountRoot = + t.hashTx = + void 0)) + const u = s(r(83753)), + c = r(79798), + f = a(r(62061)) + ;((t.hashLedger = f.default), + Object.defineProperty(t, 'hashLedgerHeader', { + enumerable: !0, + get: function () { + return f.hashLedgerHeader + }, + }), + Object.defineProperty(t, 'hashSignedTx', { + enumerable: !0, + get: function () { + return f.hashSignedTx + }, + }), + Object.defineProperty(t, 'hashTxTree', { + enumerable: !0, + get: function () { + return f.hashTxTree + }, + }), + Object.defineProperty(t, 'hashStateTree', { + enumerable: !0, + get: function () { + return f.hashStateTree + }, + })) + const l = s(r(95963)), + d = s(r(75265)), + h = s(r(1582)), + p = 16 + function y(e) { + return n.from((0, c.decodeAccountID)(e)).toString('hex') + } + function g(e) { + return d.default[e].charCodeAt(0).toString(p).padStart(4, '0') + } + ;((t.hashTx = function (e) { + const t = l.default.TRANSACTION_SIGN.toString(p).toUpperCase() + return (0, h.default)(t + e) + }), + (t.hashAccountRoot = function (e) { + return (0, h.default)(g('account') + y(e)) + }), + (t.hashSignerListId = function (e) { + return (0, h.default)(`${g('signerList') + y(e)}00000000`) + }), + (t.hashOfferId = function (e, t) { + const r = d.default.offer.charCodeAt(0).toString(p).padStart(2, '0'), + n = t.toString(p).padStart(8, '0'), + i = `00${r}` + return (0, h.default)(i + y(e) + n) + }), + (t.hashTrustline = function (e, t, r) { + const i = y(e), + o = y(t), + a = new u.default(i, 16).isGreaterThan(new u.default(o, 16)), + s = a ? o : i, + c = a ? i : o, + f = g('rippleState') + return (0, h.default)( + f + + s + + c + + (function (e) { + if (3 !== e.length) return e + const t = Array(20).fill(0) + return ( + (t[12] = 255 & e.charCodeAt(0)), + (t[13] = 255 & e.charCodeAt(1)), + (t[14] = 255 & e.charCodeAt(2)), + n.from(t).toString('hex') + ) + })(r), + ) + }), + (t.hashEscrow = function (e, t) { + return (0, h.default)(g('escrow') + y(e) + t.toString(p).padStart(8, '0')) + }), + (t.hashPaymentChannel = function (e, t, r) { + return (0, h.default)(g('paychan') + y(e) + y(t) + r.toString(p).padStart(8, '0')) + })) + }, + 75265: (e, t) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), + (t.default = { + account: 'a', + dirNode: 'd', + generatorMap: 'g', + rippleState: 'r', + offer: 'o', + ownerDir: 'O', + bookDir: 'B', + contract: 'c', + skipList: 's', + escrow: 'u', + amendment: 'f', + feeSettings: 'e', + ticket: 'T', + signerList: 'S', + paychan: 'x', + check: 'C', + depositPreauth: 'p', + })) + }, + 1582: (e, t, r) => { + 'use strict' + var n = r(18390).Buffer + Object.defineProperty(t, '__esModule', { value: !0 }) + const i = r(54795) + t.default = function (e) { + return (0, i.createHash)('sha512').update(n.from(e, 'hex')).digest('hex').toUpperCase().slice(0, 64) + } + }, + 17455: function (e, t, r) { + 'use strict' + var n = + (this && this.__createBinding) || + (Object.create + ? function (e, t, r, n) { + void 0 === n && (n = r) + var i = Object.getOwnPropertyDescriptor(t, r) + ;((i && !('get' in i ? !t.__esModule : i.writable || i.configurable)) || + (i = { + enumerable: !0, + get: function () { + return t[r] + }, + }), + Object.defineProperty(e, n, i)) + } + : function (e, t, r, n) { + ;(void 0 === n && (n = r), (e[n] = t[r])) + }), + i = + (this && this.__setModuleDefault) || + (Object.create + ? function (e, t) { + Object.defineProperty(e, 'default', { enumerable: !0, value: t }) + } + : function (e, t) { + e.default = t + }), + o = + (this && this.__importStar) || + function (e) { + if (e && e.__esModule) return e + var t = {} + if (null != e) for (var r in e) 'default' !== r && Object.prototype.hasOwnProperty.call(e, r) && n(t, e, r) + return (i(t, e), t) + }, + a = + (this && this.__importDefault) || + function (e) { + return e && e.__esModule ? e : { default: e } + } + ;(Object.defineProperty(t, '__esModule', { value: !0 }), + (t.parseNFTokenID = + t.getNFTokenID = + t.encodeForSigningClaim = + t.encodeForSigning = + t.encodeForMultiSigning = + t.decode = + t.encode = + t.decodeXAddress = + t.encodeXAddress = + t.decodeAccountPublic = + t.encodeAccountPublic = + t.decodeNodePublic = + t.encodeNodePublic = + t.decodeAccountID = + t.encodeAccountID = + t.decodeSeed = + t.encodeSeed = + t.isValidClassicAddress = + t.isValidXAddress = + t.xAddressToClassicAddress = + t.classicAddressToXAddress = + t.convertHexToString = + t.convertStringToHex = + t.verifyPaymentChannelClaim = + t.verifyKeypairSignature = + t.signPaymentChannelClaim = + t.deriveXAddress = + t.deriveAddress = + t.deriveKeypair = + t.hashes = + t.isValidAddress = + t.isValidSecret = + t.qualityToDecimal = + t.transferRateToDecimal = + t.decimalToTransferRate = + t.percentToTransferRate = + t.decimalToQuality = + t.percentToQuality = + t.unixTimeToRippleTime = + t.rippleTimeToUnixTime = + t.isoTimeToRippleTime = + t.rippleTimeToISOTime = + t.hasNextPage = + t.xrpToDrops = + t.dropsToXrp = + t.getBalanceChanges = + void 0)) + const s = r(79798) + ;(Object.defineProperty(t, 'classicAddressToXAddress', { + enumerable: !0, + get: function () { + return s.classicAddressToXAddress + }, + }), + Object.defineProperty(t, 'decodeAccountID', { + enumerable: !0, + get: function () { + return s.decodeAccountID + }, + }), + Object.defineProperty(t, 'decodeAccountPublic', { + enumerable: !0, + get: function () { + return s.decodeAccountPublic + }, + }), + Object.defineProperty(t, 'decodeNodePublic', { + enumerable: !0, + get: function () { + return s.decodeNodePublic + }, + }), + Object.defineProperty(t, 'decodeSeed', { + enumerable: !0, + get: function () { + return s.decodeSeed + }, + }), + Object.defineProperty(t, 'decodeXAddress', { + enumerable: !0, + get: function () { + return s.decodeXAddress + }, + }), + Object.defineProperty(t, 'encodeAccountID', { + enumerable: !0, + get: function () { + return s.encodeAccountID + }, + }), + Object.defineProperty(t, 'encodeAccountPublic', { + enumerable: !0, + get: function () { + return s.encodeAccountPublic + }, + }), + Object.defineProperty(t, 'encodeNodePublic', { + enumerable: !0, + get: function () { + return s.encodeNodePublic + }, + }), + Object.defineProperty(t, 'encodeSeed', { + enumerable: !0, + get: function () { + return s.encodeSeed + }, + }), + Object.defineProperty(t, 'encodeXAddress', { + enumerable: !0, + get: function () { + return s.encodeXAddress + }, + }), + Object.defineProperty(t, 'isValidClassicAddress', { + enumerable: !0, + get: function () { + return s.isValidClassicAddress + }, + }), + Object.defineProperty(t, 'isValidXAddress', { + enumerable: !0, + get: function () { + return s.isValidXAddress + }, + }), + Object.defineProperty(t, 'xAddressToClassicAddress', { + enumerable: !0, + get: function () { + return s.xAddressToClassicAddress + }, + })) + const u = o(r(79056)), + c = r(43004) + Object.defineProperty(t, 'verifyKeypairSignature', { + enumerable: !0, + get: function () { + return c.verify + }, + }) + const f = r(37620) + ;(Object.defineProperty(t, 'deriveKeypair', { + enumerable: !0, + get: function () { + return f.deriveKeypair + }, + }), + Object.defineProperty(t, 'deriveAddress', { + enumerable: !0, + get: function () { + return f.deriveAddress + }, + }), + Object.defineProperty(t, 'deriveXAddress', { + enumerable: !0, + get: function () { + return f.deriveXAddress + }, + })) + const l = a(r(91905)) + t.getBalanceChanges = l.default + const d = a(r(64212)) + t.getNFTokenID = d.default + const h = r(65570), + p = a(r(39826)) + t.parseNFTokenID = p.default + const y = r(12234) + ;(Object.defineProperty(t, 'percentToTransferRate', { + enumerable: !0, + get: function () { + return y.percentToTransferRate + }, + }), + Object.defineProperty(t, 'decimalToTransferRate', { + enumerable: !0, + get: function () { + return y.decimalToTransferRate + }, + }), + Object.defineProperty(t, 'transferRateToDecimal', { + enumerable: !0, + get: function () { + return y.transferRateToDecimal + }, + }), + Object.defineProperty(t, 'percentToQuality', { + enumerable: !0, + get: function () { + return y.percentToQuality + }, + }), + Object.defineProperty(t, 'decimalToQuality', { + enumerable: !0, + get: function () { + return y.decimalToQuality + }, + }), + Object.defineProperty(t, 'qualityToDecimal', { + enumerable: !0, + get: function () { + return y.qualityToDecimal + }, + })) + const g = a(r(48673)) + t.signPaymentChannelClaim = g.default + const b = r(62850) + ;(Object.defineProperty(t, 'convertHexToString', { + enumerable: !0, + get: function () { + return b.convertHexToString + }, + }), + Object.defineProperty(t, 'convertStringToHex', { + enumerable: !0, + get: function () { + return b.convertStringToHex + }, + })) + const m = r(21063) + ;(Object.defineProperty(t, 'rippleTimeToISOTime', { + enumerable: !0, + get: function () { + return m.rippleTimeToISOTime + }, + }), + Object.defineProperty(t, 'isoTimeToRippleTime', { + enumerable: !0, + get: function () { + return m.isoTimeToRippleTime + }, + }), + Object.defineProperty(t, 'rippleTimeToUnixTime', { + enumerable: !0, + get: function () { + return m.rippleTimeToUnixTime + }, + }), + Object.defineProperty(t, 'unixTimeToRippleTime', { + enumerable: !0, + get: function () { + return m.unixTimeToRippleTime + }, + })) + const v = a(r(80563)) + t.verifyPaymentChannelClaim = v.default + const w = r(95488) + ;(Object.defineProperty(t, 'xrpToDrops', { + enumerable: !0, + get: function () { + return w.xrpToDrops + }, + }), + Object.defineProperty(t, 'dropsToXrp', { + enumerable: !0, + get: function () { + return w.dropsToXrp + }, + }), + (t.isValidSecret = function (e) { + try { + return ((0, f.deriveKeypair)(e), !0) + } catch (e) { + return !1 + } + }), + (t.encode = function (e) { + return u.encode(e) + }), + (t.encodeForSigning = function (e) { + return u.encodeForSigning(e) + }), + (t.encodeForSigningClaim = function (e) { + return u.encodeForSigningClaim(e) + }), + (t.encodeForMultiSigning = function (e, t) { + return u.encodeForMultisigning(e, t) + }), + (t.decode = function (e) { + return u.decode(e) + }), + (t.isValidAddress = function (e) { + return (0, s.isValidXAddress)(e) || (0, s.isValidClassicAddress)(e) + }), + (t.hasNextPage = function (e) { + return Boolean(e.result.marker) + })) + const _ = { + hashSignedTx: h.hashSignedTx, + hashTx: h.hashTx, + hashAccountRoot: h.hashAccountRoot, + hashSignerListId: h.hashSignerListId, + hashOfferId: h.hashOfferId, + hashTrustline: h.hashTrustline, + hashTxTree: h.hashTxTree, + hashStateTree: h.hashStateTree, + hashLedger: h.hashLedger, + hashLedgerHeader: h.hashLedgerHeader, + hashEscrow: h.hashEscrow, + hashPaymentChannel: h.hashPaymentChannel, + } + t.hashes = _ + }, + 39826: function (e, t, r) { + 'use strict' + var n = r(18390).Buffer, + i = + (this && this.__importDefault) || + function (e) { + return e && e.__esModule ? e : { default: e } + } + Object.defineProperty(t, '__esModule', { value: !0 }) + const o = i(r(83753)), + a = r(79798), + s = r(74337) + t.default = function (e) { + if (64 !== e.length) + throw new s.XrplError(`Attempting to parse a nftokenID with length ${e.length}\n , but expected a token with length 64`) + const t = new o.default(e.substring(48, 56), 16).toNumber(), + r = new o.default(e.substring(56, 64), 16).toNumber() + var i, u + return { + NFTokenID: e, + Flags: new o.default(e.substring(0, 4), 16).toNumber(), + TransferFee: new o.default(e.substring(4, 8), 16).toNumber(), + Issuer: (0, a.encodeAccountID)(n.from(e.substring(8, 48), 'hex')), + Taxon: ((i = t), (u = r), (i ^ (384160001 * u + 2459)) % 4294967296), + Sequence: r, + } + } + }, + 12234: function (e, t, r) { + 'use strict' + var n = + (this && this.__importDefault) || + function (e) { + return e && e.__esModule ? e : { default: e } + } + ;(Object.defineProperty(t, '__esModule', { value: !0 }), + (t.percentToQuality = + t.transferRateToDecimal = + t.qualityToDecimal = + t.decimalToQuality = + t.percentToTransferRate = + t.decimalToTransferRate = + void 0)) + const i = n(r(83753)), + o = r(74337), + a = '1000000000' + function s(e) { + if (!e.endsWith('%')) throw new o.ValidationError(`Value ${e} must end with %`) + const t = e.split('%').filter((e) => '' !== e) + if (1 !== t.length) throw new o.ValidationError(`Value ${e} contains too many % signs`) + return new i.default(t[0]).dividedBy('100').toString(10) + } + function u(e) { + const t = new i.default(e).times(a).plus(a) + if (t.isLessThan(a) || t.isGreaterThan('2000000000')) throw new o.ValidationError('Decimal value must be between 0 and 1.00.') + const r = t.toString(10) + if (r === a) return 0 + if ('NaN' === r) throw new o.ValidationError('Value is not a number') + if (r.includes('.')) throw new o.ValidationError('Decimal exceeds maximum precision.') + return Number(r) + } + function c(e) { + const t = new i.default(e).times(a).toString(10) + if ('NaN' === t) throw new o.ValidationError('Value is not a number') + if (t.includes('-')) throw new o.ValidationError('Cannot have negative Quality') + if (t === a) return 0 + if (t.includes('.')) throw new o.ValidationError('Decimal exceeds maximum precision.') + return Number(t) + } + ;((t.decimalToTransferRate = u), + (t.percentToTransferRate = function (e) { + return u(s(e)) + }), + (t.decimalToQuality = c), + (t.qualityToDecimal = function (e) { + if (!Number.isInteger(e)) throw new o.ValidationError('Quality must be an integer') + if (e < 0) throw new o.ValidationError('Negative quality not allowed') + return 0 === e ? '1' : new i.default(e).dividedBy(a).toString(10) + }), + (t.transferRateToDecimal = function (e) { + if (!Number.isInteger(e)) throw new o.ValidationError('Error decoding, transfer Rate must be an integer') + if (0 === e) return '0' + const t = new i.default(e).minus(a).dividedBy(a) + if (t.isLessThan(0)) throw new o.ValidationError('Error decoding, negative transfer rate') + return t.toString(10) + }), + (t.percentToQuality = function (e) { + return c(s(e)) + })) + }, + 48673: (e, t, r) => { + 'use strict' + Object.defineProperty(t, '__esModule', { value: !0 }) + const n = r(79056), + i = r(43004), + o = r(95488) + t.default = function (e, t, r) { + const a = (0, n.encodeForSigningClaim)({ channel: e, amount: (0, o.xrpToDrops)(t) }) + return (0, i.sign)(a, r) + } + }, + 62850: (e, t, r) => { + 'use strict' + var n = r(18390).Buffer + ;(Object.defineProperty(t, '__esModule', { value: !0 }), + (t.convertStringToHex = t.convertHexToString = void 0), + (t.convertStringToHex = function (e) { + return n.from(e, 'utf8').toString('hex').toUpperCase() + }), + (t.convertHexToString = function (e, t = 'utf8') { + return n.from(e, 'hex').toString(t) + })) + }, + 21063: (e, t) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), + (t.isoTimeToRippleTime = t.rippleTimeToISOTime = t.unixTimeToRippleTime = t.rippleTimeToUnixTime = void 0)) + const r = 946684800 + function n(e) { + return 1e3 * (e + r) + } + function i(e) { + return Math.round(e / 1e3) - r + } + ;((t.rippleTimeToUnixTime = n), + (t.unixTimeToRippleTime = i), + (t.rippleTimeToISOTime = function (e) { + return new Date(n(e)).toISOString() + }), + (t.isoTimeToRippleTime = function (e) { + return i(('string' == typeof e ? new Date(e) : e).getTime()) + })) + }, + 80563: (e, t, r) => { + 'use strict' + Object.defineProperty(t, '__esModule', { value: !0 }) + const n = r(79056), + i = r(43004), + o = r(95488) + t.default = function (e, t, r, a) { + const s = (0, n.encodeForSigningClaim)({ channel: e, amount: (0, o.xrpToDrops)(t) }) + return (0, i.verify)(s, r, a) + } + }, + 95488: function (e, t, r) { + 'use strict' + var n = + (this && this.__importDefault) || + function (e) { + return e && e.__esModule ? e : { default: e } + } + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.xrpToDrops = t.dropsToXrp = void 0)) + const i = n(r(83753)), + o = r(74337), + a = 1e6, + s = /^-?[0-9.]+$/u + ;((t.dropsToXrp = function (e) { + const t = new i.default(e).toString(10) + if ('string' == typeof e && 'NaN' === t) + throw new o.ValidationError(`dropsToXrp: invalid value '${e}', should be a BigNumber or string-encoded number.`) + if (t.includes('.')) throw new o.ValidationError(`dropsToXrp: value '${t}' has too many decimal places.`) + if (!s.exec(t)) throw new o.ValidationError(`dropsToXrp: failed sanity check - value '${t}', does not match (^-?[0-9]+$).`) + return new i.default(t).dividedBy(a).toString(10) + }), + (t.xrpToDrops = function (e) { + const t = new i.default(e).toString(10) + if ('string' == typeof e && 'NaN' === t) + throw new o.ValidationError(`xrpToDrops: invalid value '${e}', should be a BigNumber or string-encoded number.`) + if (!s.exec(t)) throw new o.ValidationError(`xrpToDrops: failed sanity check - value '${t}', does not match (^-?[0-9.]+$).`) + const r = t.split('.') + if (r.length > 2) throw new o.ValidationError(`xrpToDrops: failed sanity check - value '${t}' has too many decimal points.`) + if ((r[1] || '0').length > 6) throw new o.ValidationError(`xrpToDrops: value '${t}' has too many decimal places.`) + return new i.default(t).times(a).integerValue(i.default.ROUND_FLOOR).toString(10) + })) + }, + 33196: () => {}, + 38087: () => {}, + 20395: () => {}, + 53260: () => {}, + 74854: () => {}, + 66602: () => {}, + 30174: () => {}, + 74546: (e, t, r) => { + 'use strict' + var n = [ + 'BigInt64Array', + 'BigUint64Array', + 'Float32Array', + 'Float64Array', + 'Int16Array', + 'Int32Array', + 'Int8Array', + 'Uint16Array', + 'Uint32Array', + 'Uint8Array', + 'Uint8ClampedArray', + ], + i = 'undefined' == typeof globalThis ? r.g : globalThis + e.exports = function () { + for (var e = [], t = 0; t < n.length; t++) 'function' == typeof i[n[t]] && (e[e.length] = n[t]) + return e + } + }, + 32308: (e) => { + 'use strict' + e.exports = JSON.parse( + '["abandon","ability","able","about","above","absent","absorb","abstract","absurd","abuse","access","accident","account","accuse","achieve","acid","acoustic","acquire","across","act","action","actor","actress","actual","adapt","add","addict","address","adjust","admit","adult","advance","advice","aerobic","affair","afford","afraid","again","age","agent","agree","ahead","aim","air","airport","aisle","alarm","album","alcohol","alert","alien","all","alley","allow","almost","alone","alpha","already","also","alter","always","amateur","amazing","among","amount","amused","analyst","anchor","ancient","anger","angle","angry","animal","ankle","announce","annual","another","answer","antenna","antique","anxiety","any","apart","apology","appear","apple","approve","april","arch","arctic","area","arena","argue","arm","armed","armor","army","around","arrange","arrest","arrive","arrow","art","artefact","artist","artwork","ask","aspect","assault","asset","assist","assume","asthma","athlete","atom","attack","attend","attitude","attract","auction","audit","august","aunt","author","auto","autumn","average","avocado","avoid","awake","aware","away","awesome","awful","awkward","axis","baby","bachelor","bacon","badge","bag","balance","balcony","ball","bamboo","banana","banner","bar","barely","bargain","barrel","base","basic","basket","battle","beach","bean","beauty","because","become","beef","before","begin","behave","behind","believe","below","belt","bench","benefit","best","betray","better","between","beyond","bicycle","bid","bike","bind","biology","bird","birth","bitter","black","blade","blame","blanket","blast","bleak","bless","blind","blood","blossom","blouse","blue","blur","blush","board","boat","body","boil","bomb","bone","bonus","book","boost","border","boring","borrow","boss","bottom","bounce","box","boy","bracket","brain","brand","brass","brave","bread","breeze","brick","bridge","brief","bright","bring","brisk","broccoli","broken","bronze","broom","brother","brown","brush","bubble","buddy","budget","buffalo","build","bulb","bulk","bullet","bundle","bunker","burden","burger","burst","bus","business","busy","butter","buyer","buzz","cabbage","cabin","cable","cactus","cage","cake","call","calm","camera","camp","can","canal","cancel","candy","cannon","canoe","canvas","canyon","capable","capital","captain","car","carbon","card","cargo","carpet","carry","cart","case","cash","casino","castle","casual","cat","catalog","catch","category","cattle","caught","cause","caution","cave","ceiling","celery","cement","census","century","cereal","certain","chair","chalk","champion","change","chaos","chapter","charge","chase","chat","cheap","check","cheese","chef","cherry","chest","chicken","chief","child","chimney","choice","choose","chronic","chuckle","chunk","churn","cigar","cinnamon","circle","citizen","city","civil","claim","clap","clarify","claw","clay","clean","clerk","clever","click","client","cliff","climb","clinic","clip","clock","clog","close","cloth","cloud","clown","club","clump","cluster","clutch","coach","coast","coconut","code","coffee","coil","coin","collect","color","column","combine","come","comfort","comic","common","company","concert","conduct","confirm","congress","connect","consider","control","convince","cook","cool","copper","copy","coral","core","corn","correct","cost","cotton","couch","country","couple","course","cousin","cover","coyote","crack","cradle","craft","cram","crane","crash","crater","crawl","crazy","cream","credit","creek","crew","cricket","crime","crisp","critic","crop","cross","crouch","crowd","crucial","cruel","cruise","crumble","crunch","crush","cry","crystal","cube","culture","cup","cupboard","curious","current","curtain","curve","cushion","custom","cute","cycle","dad","damage","damp","dance","danger","daring","dash","daughter","dawn","day","deal","debate","debris","decade","december","decide","decline","decorate","decrease","deer","defense","define","defy","degree","delay","deliver","demand","demise","denial","dentist","deny","depart","depend","deposit","depth","deputy","derive","describe","desert","design","desk","despair","destroy","detail","detect","develop","device","devote","diagram","dial","diamond","diary","dice","diesel","diet","differ","digital","dignity","dilemma","dinner","dinosaur","direct","dirt","disagree","discover","disease","dish","dismiss","disorder","display","distance","divert","divide","divorce","dizzy","doctor","document","dog","doll","dolphin","domain","donate","donkey","donor","door","dose","double","dove","draft","dragon","drama","drastic","draw","dream","dress","drift","drill","drink","drip","drive","drop","drum","dry","duck","dumb","dune","during","dust","dutch","duty","dwarf","dynamic","eager","eagle","early","earn","earth","easily","east","easy","echo","ecology","economy","edge","edit","educate","effort","egg","eight","either","elbow","elder","electric","elegant","element","elephant","elevator","elite","else","embark","embody","embrace","emerge","emotion","employ","empower","empty","enable","enact","end","endless","endorse","enemy","energy","enforce","engage","engine","enhance","enjoy","enlist","enough","enrich","enroll","ensure","enter","entire","entry","envelope","episode","equal","equip","era","erase","erode","erosion","error","erupt","escape","essay","essence","estate","eternal","ethics","evidence","evil","evoke","evolve","exact","example","excess","exchange","excite","exclude","excuse","execute","exercise","exhaust","exhibit","exile","exist","exit","exotic","expand","expect","expire","explain","expose","express","extend","extra","eye","eyebrow","fabric","face","faculty","fade","faint","faith","fall","false","fame","family","famous","fan","fancy","fantasy","farm","fashion","fat","fatal","father","fatigue","fault","favorite","feature","february","federal","fee","feed","feel","female","fence","festival","fetch","fever","few","fiber","fiction","field","figure","file","film","filter","final","find","fine","finger","finish","fire","firm","first","fiscal","fish","fit","fitness","fix","flag","flame","flash","flat","flavor","flee","flight","flip","float","flock","floor","flower","fluid","flush","fly","foam","focus","fog","foil","fold","follow","food","foot","force","forest","forget","fork","fortune","forum","forward","fossil","foster","found","fox","fragile","frame","frequent","fresh","friend","fringe","frog","front","frost","frown","frozen","fruit","fuel","fun","funny","furnace","fury","future","gadget","gain","galaxy","gallery","game","gap","garage","garbage","garden","garlic","garment","gas","gasp","gate","gather","gauge","gaze","general","genius","genre","gentle","genuine","gesture","ghost","giant","gift","giggle","ginger","giraffe","girl","give","glad","glance","glare","glass","glide","glimpse","globe","gloom","glory","glove","glow","glue","goat","goddess","gold","good","goose","gorilla","gospel","gossip","govern","gown","grab","grace","grain","grant","grape","grass","gravity","great","green","grid","grief","grit","grocery","group","grow","grunt","guard","guess","guide","guilt","guitar","gun","gym","habit","hair","half","hammer","hamster","hand","happy","harbor","hard","harsh","harvest","hat","have","hawk","hazard","head","health","heart","heavy","hedgehog","height","hello","helmet","help","hen","hero","hidden","high","hill","hint","hip","hire","history","hobby","hockey","hold","hole","holiday","hollow","home","honey","hood","hope","horn","horror","horse","hospital","host","hotel","hour","hover","hub","huge","human","humble","humor","hundred","hungry","hunt","hurdle","hurry","hurt","husband","hybrid","ice","icon","idea","identify","idle","ignore","ill","illegal","illness","image","imitate","immense","immune","impact","impose","improve","impulse","inch","include","income","increase","index","indicate","indoor","industry","infant","inflict","inform","inhale","inherit","initial","inject","injury","inmate","inner","innocent","input","inquiry","insane","insect","inside","inspire","install","intact","interest","into","invest","invite","involve","iron","island","isolate","issue","item","ivory","jacket","jaguar","jar","jazz","jealous","jeans","jelly","jewel","job","join","joke","journey","joy","judge","juice","jump","jungle","junior","junk","just","kangaroo","keen","keep","ketchup","key","kick","kid","kidney","kind","kingdom","kiss","kit","kitchen","kite","kitten","kiwi","knee","knife","knock","know","lab","label","labor","ladder","lady","lake","lamp","language","laptop","large","later","latin","laugh","laundry","lava","law","lawn","lawsuit","layer","lazy","leader","leaf","learn","leave","lecture","left","leg","legal","legend","leisure","lemon","lend","length","lens","leopard","lesson","letter","level","liar","liberty","library","license","life","lift","light","like","limb","limit","link","lion","liquid","list","little","live","lizard","load","loan","lobster","local","lock","logic","lonely","long","loop","lottery","loud","lounge","love","loyal","lucky","luggage","lumber","lunar","lunch","luxury","lyrics","machine","mad","magic","magnet","maid","mail","main","major","make","mammal","man","manage","mandate","mango","mansion","manual","maple","marble","march","margin","marine","market","marriage","mask","mass","master","match","material","math","matrix","matter","maximum","maze","meadow","mean","measure","meat","mechanic","medal","media","melody","melt","member","memory","mention","menu","mercy","merge","merit","merry","mesh","message","metal","method","middle","midnight","milk","million","mimic","mind","minimum","minor","minute","miracle","mirror","misery","miss","mistake","mix","mixed","mixture","mobile","model","modify","mom","moment","monitor","monkey","monster","month","moon","moral","more","morning","mosquito","mother","motion","motor","mountain","mouse","move","movie","much","muffin","mule","multiply","muscle","museum","mushroom","music","must","mutual","myself","mystery","myth","naive","name","napkin","narrow","nasty","nation","nature","near","neck","need","negative","neglect","neither","nephew","nerve","nest","net","network","neutral","never","news","next","nice","night","noble","noise","nominee","noodle","normal","north","nose","notable","note","nothing","notice","novel","now","nuclear","number","nurse","nut","oak","obey","object","oblige","obscure","observe","obtain","obvious","occur","ocean","october","odor","off","offer","office","often","oil","okay","old","olive","olympic","omit","once","one","onion","online","only","open","opera","opinion","oppose","option","orange","orbit","orchard","order","ordinary","organ","orient","original","orphan","ostrich","other","outdoor","outer","output","outside","oval","oven","over","own","owner","oxygen","oyster","ozone","pact","paddle","page","pair","palace","palm","panda","panel","panic","panther","paper","parade","parent","park","parrot","party","pass","patch","path","patient","patrol","pattern","pause","pave","payment","peace","peanut","pear","peasant","pelican","pen","penalty","pencil","people","pepper","perfect","permit","person","pet","phone","photo","phrase","physical","piano","picnic","picture","piece","pig","pigeon","pill","pilot","pink","pioneer","pipe","pistol","pitch","pizza","place","planet","plastic","plate","play","please","pledge","pluck","plug","plunge","poem","poet","point","polar","pole","police","pond","pony","pool","popular","portion","position","possible","post","potato","pottery","poverty","powder","power","practice","praise","predict","prefer","prepare","present","pretty","prevent","price","pride","primary","print","priority","prison","private","prize","problem","process","produce","profit","program","project","promote","proof","property","prosper","protect","proud","provide","public","pudding","pull","pulp","pulse","pumpkin","punch","pupil","puppy","purchase","purity","purpose","purse","push","put","puzzle","pyramid","quality","quantum","quarter","question","quick","quit","quiz","quote","rabbit","raccoon","race","rack","radar","radio","rail","rain","raise","rally","ramp","ranch","random","range","rapid","rare","rate","rather","raven","raw","razor","ready","real","reason","rebel","rebuild","recall","receive","recipe","record","recycle","reduce","reflect","reform","refuse","region","regret","regular","reject","relax","release","relief","rely","remain","remember","remind","remove","render","renew","rent","reopen","repair","repeat","replace","report","require","rescue","resemble","resist","resource","response","result","retire","retreat","return","reunion","reveal","review","reward","rhythm","rib","ribbon","rice","rich","ride","ridge","rifle","right","rigid","ring","riot","ripple","risk","ritual","rival","river","road","roast","robot","robust","rocket","romance","roof","rookie","room","rose","rotate","rough","round","route","royal","rubber","rude","rug","rule","run","runway","rural","sad","saddle","sadness","safe","sail","salad","salmon","salon","salt","salute","same","sample","sand","satisfy","satoshi","sauce","sausage","save","say","scale","scan","scare","scatter","scene","scheme","school","science","scissors","scorpion","scout","scrap","screen","script","scrub","sea","search","season","seat","second","secret","section","security","seed","seek","segment","select","sell","seminar","senior","sense","sentence","series","service","session","settle","setup","seven","shadow","shaft","shallow","share","shed","shell","sheriff","shield","shift","shine","ship","shiver","shock","shoe","shoot","shop","short","shoulder","shove","shrimp","shrug","shuffle","shy","sibling","sick","side","siege","sight","sign","silent","silk","silly","silver","similar","simple","since","sing","siren","sister","situate","six","size","skate","sketch","ski","skill","skin","skirt","skull","slab","slam","sleep","slender","slice","slide","slight","slim","slogan","slot","slow","slush","small","smart","smile","smoke","smooth","snack","snake","snap","sniff","snow","soap","soccer","social","sock","soda","soft","solar","soldier","solid","solution","solve","someone","song","soon","sorry","sort","soul","sound","soup","source","south","space","spare","spatial","spawn","speak","special","speed","spell","spend","sphere","spice","spider","spike","spin","spirit","split","spoil","sponsor","spoon","sport","spot","spray","spread","spring","spy","square","squeeze","squirrel","stable","stadium","staff","stage","stairs","stamp","stand","start","state","stay","steak","steel","stem","step","stereo","stick","still","sting","stock","stomach","stone","stool","story","stove","strategy","street","strike","strong","struggle","student","stuff","stumble","style","subject","submit","subway","success","such","sudden","suffer","sugar","suggest","suit","summer","sun","sunny","sunset","super","supply","supreme","sure","surface","surge","surprise","surround","survey","suspect","sustain","swallow","swamp","swap","swarm","swear","sweet","swift","swim","swing","switch","sword","symbol","symptom","syrup","system","table","tackle","tag","tail","talent","talk","tank","tape","target","task","taste","tattoo","taxi","teach","team","tell","ten","tenant","tennis","tent","term","test","text","thank","that","theme","then","theory","there","they","thing","this","thought","three","thrive","throw","thumb","thunder","ticket","tide","tiger","tilt","timber","time","tiny","tip","tired","tissue","title","toast","tobacco","today","toddler","toe","together","toilet","token","tomato","tomorrow","tone","tongue","tonight","tool","tooth","top","topic","topple","torch","tornado","tortoise","toss","total","tourist","toward","tower","town","toy","track","trade","traffic","tragic","train","transfer","trap","trash","travel","tray","treat","tree","trend","trial","tribe","trick","trigger","trim","trip","trophy","trouble","truck","true","truly","trumpet","trust","truth","try","tube","tuition","tumble","tuna","tunnel","turkey","turn","turtle","twelve","twenty","twice","twin","twist","two","type","typical","ugly","umbrella","unable","unaware","uncle","uncover","under","undo","unfair","unfold","unhappy","uniform","unique","unit","universe","unknown","unlock","until","unusual","unveil","update","upgrade","uphold","upon","upper","upset","urban","urge","usage","use","used","useful","useless","usual","utility","vacant","vacuum","vague","valid","valley","valve","van","vanish","vapor","various","vast","vault","vehicle","velvet","vendor","venture","venue","verb","verify","version","very","vessel","veteran","viable","vibrant","vicious","victory","video","view","village","vintage","violin","virtual","virus","visa","visit","visual","vital","vivid","vocal","voice","void","volcano","volume","vote","voyage","wage","wagon","wait","walk","wall","walnut","want","warfare","warm","warrior","wash","wasp","waste","water","wave","way","wealth","weapon","wear","weasel","weather","web","wedding","weekend","weird","welcome","west","wet","whale","what","wheat","wheel","when","where","whip","whisper","wide","width","wife","wild","will","win","window","wine","wing","wink","winner","winter","wire","wisdom","wise","wish","witness","wolf","woman","wonder","wood","wool","word","work","world","worry","worth","wrap","wreck","wrestle","wrist","write","wrong","yard","year","yellow","you","young","youth","zebra","zero","zone","zoo"]', + ) + }, + 49234: (e) => { + 'use strict' + e.exports = JSON.parse( + '{"aes-128-ecb":{"cipher":"AES","key":128,"iv":0,"mode":"ECB","type":"block"},"aes-192-ecb":{"cipher":"AES","key":192,"iv":0,"mode":"ECB","type":"block"},"aes-256-ecb":{"cipher":"AES","key":256,"iv":0,"mode":"ECB","type":"block"},"aes-128-cbc":{"cipher":"AES","key":128,"iv":16,"mode":"CBC","type":"block"},"aes-192-cbc":{"cipher":"AES","key":192,"iv":16,"mode":"CBC","type":"block"},"aes-256-cbc":{"cipher":"AES","key":256,"iv":16,"mode":"CBC","type":"block"},"aes128":{"cipher":"AES","key":128,"iv":16,"mode":"CBC","type":"block"},"aes192":{"cipher":"AES","key":192,"iv":16,"mode":"CBC","type":"block"},"aes256":{"cipher":"AES","key":256,"iv":16,"mode":"CBC","type":"block"},"aes-128-cfb":{"cipher":"AES","key":128,"iv":16,"mode":"CFB","type":"stream"},"aes-192-cfb":{"cipher":"AES","key":192,"iv":16,"mode":"CFB","type":"stream"},"aes-256-cfb":{"cipher":"AES","key":256,"iv":16,"mode":"CFB","type":"stream"},"aes-128-cfb8":{"cipher":"AES","key":128,"iv":16,"mode":"CFB8","type":"stream"},"aes-192-cfb8":{"cipher":"AES","key":192,"iv":16,"mode":"CFB8","type":"stream"},"aes-256-cfb8":{"cipher":"AES","key":256,"iv":16,"mode":"CFB8","type":"stream"},"aes-128-cfb1":{"cipher":"AES","key":128,"iv":16,"mode":"CFB1","type":"stream"},"aes-192-cfb1":{"cipher":"AES","key":192,"iv":16,"mode":"CFB1","type":"stream"},"aes-256-cfb1":{"cipher":"AES","key":256,"iv":16,"mode":"CFB1","type":"stream"},"aes-128-ofb":{"cipher":"AES","key":128,"iv":16,"mode":"OFB","type":"stream"},"aes-192-ofb":{"cipher":"AES","key":192,"iv":16,"mode":"OFB","type":"stream"},"aes-256-ofb":{"cipher":"AES","key":256,"iv":16,"mode":"OFB","type":"stream"},"aes-128-ctr":{"cipher":"AES","key":128,"iv":16,"mode":"CTR","type":"stream"},"aes-192-ctr":{"cipher":"AES","key":192,"iv":16,"mode":"CTR","type":"stream"},"aes-256-ctr":{"cipher":"AES","key":256,"iv":16,"mode":"CTR","type":"stream"},"aes-128-gcm":{"cipher":"AES","key":128,"iv":12,"mode":"GCM","type":"auth"},"aes-192-gcm":{"cipher":"AES","key":192,"iv":12,"mode":"GCM","type":"auth"},"aes-256-gcm":{"cipher":"AES","key":256,"iv":12,"mode":"GCM","type":"auth"}}', + ) + }, + 40026: (e) => { + 'use strict' + e.exports = JSON.parse( + '{"sha224WithRSAEncryption":{"sign":"rsa","hash":"sha224","id":"302d300d06096086480165030402040500041c"},"RSA-SHA224":{"sign":"ecdsa/rsa","hash":"sha224","id":"302d300d06096086480165030402040500041c"},"sha256WithRSAEncryption":{"sign":"rsa","hash":"sha256","id":"3031300d060960864801650304020105000420"},"RSA-SHA256":{"sign":"ecdsa/rsa","hash":"sha256","id":"3031300d060960864801650304020105000420"},"sha384WithRSAEncryption":{"sign":"rsa","hash":"sha384","id":"3041300d060960864801650304020205000430"},"RSA-SHA384":{"sign":"ecdsa/rsa","hash":"sha384","id":"3041300d060960864801650304020205000430"},"sha512WithRSAEncryption":{"sign":"rsa","hash":"sha512","id":"3051300d060960864801650304020305000440"},"RSA-SHA512":{"sign":"ecdsa/rsa","hash":"sha512","id":"3051300d060960864801650304020305000440"},"RSA-SHA1":{"sign":"rsa","hash":"sha1","id":"3021300906052b0e03021a05000414"},"ecdsa-with-SHA1":{"sign":"ecdsa","hash":"sha1","id":""},"sha256":{"sign":"ecdsa","hash":"sha256","id":""},"sha224":{"sign":"ecdsa","hash":"sha224","id":""},"sha384":{"sign":"ecdsa","hash":"sha384","id":""},"sha512":{"sign":"ecdsa","hash":"sha512","id":""},"DSA-SHA":{"sign":"dsa","hash":"sha1","id":""},"DSA-SHA1":{"sign":"dsa","hash":"sha1","id":""},"DSA":{"sign":"dsa","hash":"sha1","id":""},"DSA-WITH-SHA224":{"sign":"dsa","hash":"sha224","id":""},"DSA-SHA224":{"sign":"dsa","hash":"sha224","id":""},"DSA-WITH-SHA256":{"sign":"dsa","hash":"sha256","id":""},"DSA-SHA256":{"sign":"dsa","hash":"sha256","id":""},"DSA-WITH-SHA384":{"sign":"dsa","hash":"sha384","id":""},"DSA-SHA384":{"sign":"dsa","hash":"sha384","id":""},"DSA-WITH-SHA512":{"sign":"dsa","hash":"sha512","id":""},"DSA-SHA512":{"sign":"dsa","hash":"sha512","id":""},"DSA-RIPEMD160":{"sign":"dsa","hash":"rmd160","id":""},"ripemd160WithRSA":{"sign":"rsa","hash":"rmd160","id":"3021300906052b2403020105000414"},"RSA-RIPEMD160":{"sign":"rsa","hash":"rmd160","id":"3021300906052b2403020105000414"},"md5WithRSAEncryption":{"sign":"rsa","hash":"md5","id":"3020300c06082a864886f70d020505000410"},"RSA-MD5":{"sign":"rsa","hash":"md5","id":"3020300c06082a864886f70d020505000410"}}', + ) + }, + 39167: (e) => { + 'use strict' + e.exports = JSON.parse( + '{"1.3.132.0.10":"secp256k1","1.3.132.0.33":"p224","1.2.840.10045.3.1.1":"p192","1.2.840.10045.3.1.7":"p256","1.3.132.0.34":"p384","1.3.132.0.35":"p521"}', + ) + }, + 23418: (e) => { + 'use strict' + e.exports = JSON.parse( + '{"modp1":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"},"modp2":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"},"modp5":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"},"modp14":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"},"modp15":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"},"modp16":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"},"modp17":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"},"modp18":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"}}', + ) + }, + 40763: (e) => { + 'use strict' + e.exports = { i8: '6.5.4' } + }, + 68675: (e) => { + 'use strict' + e.exports = JSON.parse( + '{"2.16.840.1.101.3.4.1.1":"aes-128-ecb","2.16.840.1.101.3.4.1.2":"aes-128-cbc","2.16.840.1.101.3.4.1.3":"aes-128-ofb","2.16.840.1.101.3.4.1.4":"aes-128-cfb","2.16.840.1.101.3.4.1.21":"aes-192-ecb","2.16.840.1.101.3.4.1.22":"aes-192-cbc","2.16.840.1.101.3.4.1.23":"aes-192-ofb","2.16.840.1.101.3.4.1.24":"aes-192-cfb","2.16.840.1.101.3.4.1.41":"aes-256-ecb","2.16.840.1.101.3.4.1.42":"aes-256-cbc","2.16.840.1.101.3.4.1.43":"aes-256-ofb","2.16.840.1.101.3.4.1.44":"aes-256-cfb"}', + ) + }, + 49792: (e) => { + 'use strict' + e.exports = JSON.parse( + '{"TYPES":{"Done":-1,"Unknown":-2,"NotPresent":0,"UInt16":1,"UInt32":2,"UInt64":3,"Hash128":4,"Hash256":5,"Amount":6,"Blob":7,"AccountID":8,"STObject":14,"STArray":15,"UInt8":16,"Hash160":17,"PathSet":18,"Vector256":19,"UInt96":20,"UInt192":21,"UInt384":22,"UInt512":23,"Issue":24,"Transaction":10001,"LedgerEntry":10002,"Validation":10003,"Metadata":10004},"LEDGER_ENTRY_TYPES":{"Invalid":-1,"AccountRoot":97,"DirectoryNode":100,"RippleState":114,"Ticket":84,"SignerList":83,"Offer":111,"LedgerHashes":104,"Amendments":102,"FeeSettings":115,"Escrow":117,"PayChannel":120,"Check":67,"DepositPreauth":112,"NegativeUNL":78,"NFTokenPage":80,"NFTokenOffer":55,"AMM":121,"Any":-3,"Child":-2,"Nickname":110,"Contract":99,"GeneratorMap":103},"FIELDS":[["Generic",{"nth":0,"isVLEncoded":false,"isSerialized":false,"isSigningField":false,"type":"Unknown"}],["Invalid",{"nth":-1,"isVLEncoded":false,"isSerialized":false,"isSigningField":false,"type":"Unknown"}],["ObjectEndMarker",{"nth":1,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["ArrayEndMarker",{"nth":1,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STArray"}],["hash",{"nth":257,"isVLEncoded":false,"isSerialized":false,"isSigningField":false,"type":"Hash256"}],["index",{"nth":258,"isVLEncoded":false,"isSerialized":false,"isSigningField":false,"type":"Hash256"}],["taker_gets_funded",{"nth":258,"isVLEncoded":false,"isSerialized":false,"isSigningField":false,"type":"Amount"}],["taker_pays_funded",{"nth":259,"isVLEncoded":false,"isSerialized":false,"isSigningField":false,"type":"Amount"}],["LedgerEntry",{"nth":1,"isVLEncoded":false,"isSerialized":false,"isSigningField":true,"type":"LedgerEntry"}],["Transaction",{"nth":1,"isVLEncoded":false,"isSerialized":false,"isSigningField":true,"type":"Transaction"}],["Validation",{"nth":1,"isVLEncoded":false,"isSerialized":false,"isSigningField":true,"type":"Validation"}],["Metadata",{"nth":1,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Metadata"}],["CloseResolution",{"nth":1,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt8"}],["Method",{"nth":2,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt8"}],["TransactionResult",{"nth":3,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt8"}],["TickSize",{"nth":16,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt8"}],["UNLModifyDisabling",{"nth":17,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt8"}],["HookResult",{"nth":18,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt8"}],["LedgerEntryType",{"nth":1,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt16"}],["TransactionType",{"nth":2,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt16"}],["SignerWeight",{"nth":3,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt16"}],["TransferFee",{"nth":4,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt16"}],["TradingFee",{"nth":5,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt16"}],["DiscountedFee",{"nth":6,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt16"}],["Version",{"nth":16,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt16"}],["HookStateChangeCount",{"nth":17,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt16"}],["HookEmitCount",{"nth":18,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt16"}],["HookExecutionIndex",{"nth":19,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt16"}],["HookApiVersion",{"nth":20,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt16"}],["NetworkID",{"nth":1,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["Flags",{"nth":2,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["SourceTag",{"nth":3,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["Sequence",{"nth":4,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["PreviousTxnLgrSeq",{"nth":5,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["LedgerSequence",{"nth":6,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["CloseTime",{"nth":7,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["ParentCloseTime",{"nth":8,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["SigningTime",{"nth":9,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["Expiration",{"nth":10,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["TransferRate",{"nth":11,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["WalletSize",{"nth":12,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["OwnerCount",{"nth":13,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["DestinationTag",{"nth":14,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["HighQualityIn",{"nth":16,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["HighQualityOut",{"nth":17,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["LowQualityIn",{"nth":18,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["LowQualityOut",{"nth":19,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["QualityIn",{"nth":20,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["QualityOut",{"nth":21,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["StampEscrow",{"nth":22,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["BondAmount",{"nth":23,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["LoadFee",{"nth":24,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["OfferSequence",{"nth":25,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["FirstLedgerSequence",{"nth":26,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["LastLedgerSequence",{"nth":27,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["TransactionIndex",{"nth":28,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["OperationLimit",{"nth":29,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["ReferenceFeeUnits",{"nth":30,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["ReserveBase",{"nth":31,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["ReserveIncrement",{"nth":32,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["SetFlag",{"nth":33,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["ClearFlag",{"nth":34,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["SignerQuorum",{"nth":35,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["CancelAfter",{"nth":36,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["FinishAfter",{"nth":37,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["SignerListID",{"nth":38,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["SettleDelay",{"nth":39,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["TicketCount",{"nth":40,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["TicketSequence",{"nth":41,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["NFTokenTaxon",{"nth":42,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["MintedNFTokens",{"nth":43,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["BurnedNFTokens",{"nth":44,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["HookStateCount",{"nth":45,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["EmitGeneration",{"nth":46,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["VoteWeight",{"nth":48,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["FirstNFTokenSequence",{"nth":50,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt32"}],["IndexNext",{"nth":1,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt64"}],["IndexPrevious",{"nth":2,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt64"}],["BookNode",{"nth":3,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt64"}],["OwnerNode",{"nth":4,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt64"}],["BaseFee",{"nth":5,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt64"}],["ExchangeRate",{"nth":6,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt64"}],["LowNode",{"nth":7,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt64"}],["HighNode",{"nth":8,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt64"}],["DestinationNode",{"nth":9,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt64"}],["Cookie",{"nth":10,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt64"}],["ServerVersion",{"nth":11,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt64"}],["NFTokenOfferNode",{"nth":12,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt64"}],["EmitBurden",{"nth":13,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt64"}],["HookOn",{"nth":16,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt64"}],["HookInstructionCount",{"nth":17,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt64"}],["HookReturnCode",{"nth":18,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt64"}],["ReferenceCount",{"nth":19,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"UInt64"}],["EmailHash",{"nth":1,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash128"}],["TakerPaysCurrency",{"nth":1,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash160"}],["TakerPaysIssuer",{"nth":2,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash160"}],["TakerGetsCurrency",{"nth":3,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash160"}],["TakerGetsIssuer",{"nth":4,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash160"}],["LedgerHash",{"nth":1,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["ParentHash",{"nth":2,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["TransactionHash",{"nth":3,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["AccountHash",{"nth":4,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["PreviousTxnID",{"nth":5,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["LedgerIndex",{"nth":6,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["WalletLocator",{"nth":7,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["RootIndex",{"nth":8,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["AccountTxnID",{"nth":9,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["NFTokenID",{"nth":10,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["EmitParentTxnID",{"nth":11,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["EmitNonce",{"nth":12,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["EmitHookHash",{"nth":13,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["AMMID",{"nth":14,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["BookDirectory",{"nth":16,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["InvoiceID",{"nth":17,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["Nickname",{"nth":18,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["Amendment",{"nth":19,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["Digest",{"nth":21,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["Channel",{"nth":22,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["ConsensusHash",{"nth":23,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["CheckID",{"nth":24,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["ValidatedHash",{"nth":25,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["PreviousPageMin",{"nth":26,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["NextPageMin",{"nth":27,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["NFTokenBuyOffer",{"nth":28,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["NFTokenSellOffer",{"nth":29,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["HookStateKey",{"nth":30,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["HookHash",{"nth":31,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["HookNamespace",{"nth":32,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["HookSetTxnID",{"nth":33,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Hash256"}],["Amount",{"nth":1,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["Balance",{"nth":2,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["LimitAmount",{"nth":3,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["TakerPays",{"nth":4,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["TakerGets",{"nth":5,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["LowLimit",{"nth":6,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["HighLimit",{"nth":7,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["Fee",{"nth":8,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["SendMax",{"nth":9,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["DeliverMin",{"nth":10,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["Amount2",{"nth":11,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["BidMin",{"nth":12,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["BidMax",{"nth":13,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["MinimumOffer",{"nth":16,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["RippleEscrow",{"nth":17,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["DeliveredAmount",{"nth":18,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["NFTokenBrokerFee",{"nth":19,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["BaseFeeDrops",{"nth":22,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["ReserveBaseDrops",{"nth":23,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["ReserveIncrementDrops",{"nth":24,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["LPTokenOut",{"nth":25,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["LPTokenIn",{"nth":26,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["EPrice",{"nth":27,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["Price",{"nth":28,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["LPTokenBalance",{"nth":31,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Amount"}],["PublicKey",{"nth":1,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["MessageKey",{"nth":2,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["SigningPubKey",{"nth":3,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["TxnSignature",{"nth":4,"isVLEncoded":true,"isSerialized":true,"isSigningField":false,"type":"Blob"}],["URI",{"nth":5,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["Signature",{"nth":6,"isVLEncoded":true,"isSerialized":true,"isSigningField":false,"type":"Blob"}],["Domain",{"nth":7,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["FundCode",{"nth":8,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["RemoveCode",{"nth":9,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["ExpireCode",{"nth":10,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["CreateCode",{"nth":11,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["MemoType",{"nth":12,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["MemoData",{"nth":13,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["MemoFormat",{"nth":14,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["Fulfillment",{"nth":16,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["Condition",{"nth":17,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["MasterSignature",{"nth":18,"isVLEncoded":true,"isSerialized":true,"isSigningField":false,"type":"Blob"}],["UNLModifyValidator",{"nth":19,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["ValidatorToDisable",{"nth":20,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["ValidatorToReEnable",{"nth":21,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["HookStateData",{"nth":22,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["HookReturnString",{"nth":23,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["HookParameterName",{"nth":24,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["HookParameterValue",{"nth":25,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Blob"}],["Account",{"nth":1,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"AccountID"}],["Owner",{"nth":2,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"AccountID"}],["Destination",{"nth":3,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"AccountID"}],["Issuer",{"nth":4,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"AccountID"}],["Authorize",{"nth":5,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"AccountID"}],["Unauthorize",{"nth":6,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"AccountID"}],["RegularKey",{"nth":8,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"AccountID"}],["NFTokenMinter",{"nth":9,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"AccountID"}],["EmitCallback",{"nth":10,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"AccountID"}],["HookAccount",{"nth":16,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"AccountID"}],["Indexes",{"nth":1,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Vector256"}],["Hashes",{"nth":2,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Vector256"}],["Amendments",{"nth":3,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Vector256"}],["NFTokenOffers",{"nth":4,"isVLEncoded":true,"isSerialized":true,"isSigningField":true,"type":"Vector256"}],["Paths",{"nth":1,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"PathSet"}],["Asset",{"nth":3,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Issue"}],["Asset2",{"nth":4,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"Issue"}],["TransactionMetaData",{"nth":2,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["CreatedNode",{"nth":3,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["DeletedNode",{"nth":4,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["ModifiedNode",{"nth":5,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["PreviousFields",{"nth":6,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["FinalFields",{"nth":7,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["NewFields",{"nth":8,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["TemplateEntry",{"nth":9,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["Memo",{"nth":10,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["SignerEntry",{"nth":11,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["NFToken",{"nth":12,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["EmitDetails",{"nth":13,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["Hook",{"nth":14,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["Signer",{"nth":16,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["Majority",{"nth":18,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["DisabledValidator",{"nth":19,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["EmittedTxn",{"nth":20,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["HookExecution",{"nth":21,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["HookDefinition",{"nth":22,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["HookParameter",{"nth":23,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["HookGrant",{"nth":24,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["VoteEntry",{"nth":25,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["AuctionSlot",{"nth":26,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["AuthAccount",{"nth":27,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STObject"}],["Signers",{"nth":3,"isVLEncoded":false,"isSerialized":true,"isSigningField":false,"type":"STArray"}],["SignerEntries",{"nth":4,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STArray"}],["Template",{"nth":5,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STArray"}],["Necessary",{"nth":6,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STArray"}],["Sufficient",{"nth":7,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STArray"}],["AffectedNodes",{"nth":8,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STArray"}],["Memos",{"nth":9,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STArray"}],["NFTokens",{"nth":10,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STArray"}],["Hooks",{"nth":11,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STArray"}],["VoteSlots",{"nth":12,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STArray"}],["Majorities",{"nth":16,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STArray"}],["DisabledValidators",{"nth":17,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STArray"}],["HookExecutions",{"nth":18,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STArray"}],["HookParameters",{"nth":19,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STArray"}],["HookGrants",{"nth":20,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STArray"}],["AuthAccounts",{"nth":25,"isVLEncoded":false,"isSerialized":true,"isSigningField":true,"type":"STArray"}]],"TRANSACTION_RESULTS":{"telLOCAL_ERROR":-399,"telBAD_DOMAIN":-398,"telBAD_PATH_COUNT":-397,"telBAD_PUBLIC_KEY":-396,"telFAILED_PROCESSING":-395,"telINSUF_FEE_P":-394,"telNO_DST_PARTIAL":-393,"telCAN_NOT_QUEUE":-392,"telCAN_NOT_QUEUE_BALANCE":-391,"telCAN_NOT_QUEUE_BLOCKS":-390,"telCAN_NOT_QUEUE_BLOCKED":-389,"telCAN_NOT_QUEUE_FEE":-388,"telCAN_NOT_QUEUE_FULL":-387,"telWRONG_NETWORK":-386,"telREQUIRES_NETWORK_ID":-385,"telNETWORK_ID_MAKES_TX_NON_CANONICAL":-384,"temMALFORMED":-299,"temBAD_AMOUNT":-298,"temBAD_CURRENCY":-297,"temBAD_EXPIRATION":-296,"temBAD_FEE":-295,"temBAD_ISSUER":-294,"temBAD_LIMIT":-293,"temBAD_OFFER":-292,"temBAD_PATH":-291,"temBAD_PATH_LOOP":-290,"temBAD_REGKEY":-289,"temBAD_SEND_XRP_LIMIT":-288,"temBAD_SEND_XRP_MAX":-287,"temBAD_SEND_XRP_NO_DIRECT":-286,"temBAD_SEND_XRP_PARTIAL":-285,"temBAD_SEND_XRP_PATHS":-284,"temBAD_SEQUENCE":-283,"temBAD_SIGNATURE":-282,"temBAD_SRC_ACCOUNT":-281,"temBAD_TRANSFER_RATE":-280,"temDST_IS_SRC":-279,"temDST_NEEDED":-278,"temINVALID":-277,"temINVALID_FLAG":-276,"temREDUNDANT":-275,"temRIPPLE_EMPTY":-274,"temDISABLED":-273,"temBAD_SIGNER":-272,"temBAD_QUORUM":-271,"temBAD_WEIGHT":-270,"temBAD_TICK_SIZE":-269,"temINVALID_ACCOUNT_ID":-268,"temCANNOT_PREAUTH_SELF":-267,"temINVALID_COUNT":-266,"temUNCERTAIN":-265,"temUNKNOWN":-264,"temSEQ_AND_TICKET":-263,"temBAD_NFTOKEN_TRANSFER_FEE":-262,"temBAD_AMM_TOKENS":-261,"tefFAILURE":-199,"tefALREADY":-198,"tefBAD_ADD_AUTH":-197,"tefBAD_AUTH":-196,"tefBAD_LEDGER":-195,"tefCREATED":-194,"tefEXCEPTION":-193,"tefINTERNAL":-192,"tefNO_AUTH_REQUIRED":-191,"tefPAST_SEQ":-190,"tefWRONG_PRIOR":-189,"tefMASTER_DISABLED":-188,"tefMAX_LEDGER":-187,"tefBAD_SIGNATURE":-186,"tefBAD_QUORUM":-185,"tefNOT_MULTI_SIGNING":-184,"tefBAD_AUTH_MASTER":-183,"tefINVARIANT_FAILED":-182,"tefTOO_BIG":-181,"tefNO_TICKET":-180,"tefNFTOKEN_IS_NOT_TRANSFERABLE":-179,"terRETRY":-99,"terFUNDS_SPENT":-98,"terINSUF_FEE_B":-97,"terNO_ACCOUNT":-96,"terNO_AUTH":-95,"terNO_LINE":-94,"terOWNERS":-93,"terPRE_SEQ":-92,"terLAST":-91,"terNO_RIPPLE":-90,"terQUEUED":-89,"terPRE_TICKET":-88,"terNO_AMM":-87,"tesSUCCESS":0,"tecCLAIM":100,"tecPATH_PARTIAL":101,"tecUNFUNDED_ADD":102,"tecUNFUNDED_OFFER":103,"tecUNFUNDED_PAYMENT":104,"tecFAILED_PROCESSING":105,"tecDIR_FULL":121,"tecINSUF_RESERVE_LINE":122,"tecINSUF_RESERVE_OFFER":123,"tecNO_DST":124,"tecNO_DST_INSUF_XRP":125,"tecNO_LINE_INSUF_RESERVE":126,"tecNO_LINE_REDUNDANT":127,"tecPATH_DRY":128,"tecUNFUNDED":129,"tecNO_ALTERNATIVE_KEY":130,"tecNO_REGULAR_KEY":131,"tecOWNERS":132,"tecNO_ISSUER":133,"tecNO_AUTH":134,"tecNO_LINE":135,"tecINSUFF_FEE":136,"tecFROZEN":137,"tecNO_TARGET":138,"tecNO_PERMISSION":139,"tecNO_ENTRY":140,"tecINSUFFICIENT_RESERVE":141,"tecNEED_MASTER_KEY":142,"tecDST_TAG_NEEDED":143,"tecINTERNAL":144,"tecOVERSIZE":145,"tecCRYPTOCONDITION_ERROR":146,"tecINVARIANT_FAILED":147,"tecEXPIRED":148,"tecDUPLICATE":149,"tecKILLED":150,"tecHAS_OBLIGATIONS":151,"tecTOO_SOON":152,"tecMAX_SEQUENCE_REACHED":154,"tecNO_SUITABLE_NFTOKEN_PAGE":155,"tecNFTOKEN_BUY_SELL_MISMATCH":156,"tecNFTOKEN_OFFER_TYPE_MISMATCH":157,"tecCANT_ACCEPT_OWN_NFTOKEN_OFFER":158,"tecINSUFFICIENT_FUNDS":159,"tecOBJECT_NOT_FOUND":160,"tecINSUFFICIENT_PAYMENT":161,"tecUNFUNDED_AMM":162,"tecAMM_BALANCE":163,"tecAMM_FAILED":164,"tecAMM_INVALID_TOKENS":165,"tecAMM_EMPTY":166,"tecAMM_NOT_EMPTY":167,"tecAMM_ACCOUNT":168,"tecINCOMPLETE":169},"TRANSACTION_TYPES":{"Invalid":-1,"Payment":0,"EscrowCreate":1,"EscrowFinish":2,"AccountSet":3,"EscrowCancel":4,"SetRegularKey":5,"NickNameSet":6,"OfferCreate":7,"OfferCancel":8,"Contract":9,"TicketCreate":10,"TicketCancel":11,"SignerListSet":12,"PaymentChannelCreate":13,"PaymentChannelFund":14,"PaymentChannelClaim":15,"CheckCreate":16,"CheckCash":17,"CheckCancel":18,"DepositPreauth":19,"TrustSet":20,"AccountDelete":21,"SetHook":22,"NFTokenMint":25,"NFTokenBurn":26,"NFTokenCreateOffer":27,"NFTokenCancelOffer":28,"NFTokenAcceptOffer":29,"Clawback":30,"AMMCreate":35,"AMMDeposit":36,"AMMWithdraw":37,"AMMVote":38,"AMMBid":39,"AMMDelete":40,"EnableAmendment":100,"SetFee":101,"UNLModify":102}}', + ) + }, + 51944: (e) => { + 'use strict' + e.exports = JSON.parse( + '["A","ABE","ACE","ACT","AD","ADA","ADD","AGO","AID","AIM","AIR","ALL","ALP","AM","AMY","AN","ANA","AND","ANN","ANT","ANY","APE","APS","APT","ARC","ARE","ARK","ARM","ART","AS","ASH","ASK","AT","ATE","AUG","AUK","AVE","AWE","AWK","AWL","AWN","AX","AYE","BAD","BAG","BAH","BAM","BAN","BAR","BAT","BAY","BE","BED","BEE","BEG","BEN","BET","BEY","BIB","BID","BIG","BIN","BIT","BOB","BOG","BON","BOO","BOP","BOW","BOY","BUB","BUD","BUG","BUM","BUN","BUS","BUT","BUY","BY","BYE","CAB","CAL","CAM","CAN","CAP","CAR","CAT","CAW","COD","COG","COL","CON","COO","COP","COT","COW","COY","CRY","CUB","CUE","CUP","CUR","CUT","DAB","DAD","DAM","DAN","DAR","DAY","DEE","DEL","DEN","DES","DEW","DID","DIE","DIG","DIN","DIP","DO","DOE","DOG","DON","DOT","DOW","DRY","DUB","DUD","DUE","DUG","DUN","EAR","EAT","ED","EEL","EGG","EGO","ELI","ELK","ELM","ELY","EM","END","EST","ETC","EVA","EVE","EWE","EYE","FAD","FAN","FAR","FAT","FAY","FED","FEE","FEW","FIB","FIG","FIN","FIR","FIT","FLO","FLY","FOE","FOG","FOR","FRY","FUM","FUN","FUR","GAB","GAD","GAG","GAL","GAM","GAP","GAS","GAY","GEE","GEL","GEM","GET","GIG","GIL","GIN","GO","GOT","GUM","GUN","GUS","GUT","GUY","GYM","GYP","HA","HAD","HAL","HAM","HAN","HAP","HAS","HAT","HAW","HAY","HE","HEM","HEN","HER","HEW","HEY","HI","HID","HIM","HIP","HIS","HIT","HO","HOB","HOC","HOE","HOG","HOP","HOT","HOW","HUB","HUE","HUG","HUH","HUM","HUT","I","ICY","IDA","IF","IKE","ILL","INK","INN","IO","ION","IQ","IRA","IRE","IRK","IS","IT","ITS","IVY","JAB","JAG","JAM","JAN","JAR","JAW","JAY","JET","JIG","JIM","JO","JOB","JOE","JOG","JOT","JOY","JUG","JUT","KAY","KEG","KEN","KEY","KID","KIM","KIN","KIT","LA","LAB","LAC","LAD","LAG","LAM","LAP","LAW","LAY","LEA","LED","LEE","LEG","LEN","LEO","LET","LEW","LID","LIE","LIN","LIP","LIT","LO","LOB","LOG","LOP","LOS","LOT","LOU","LOW","LOY","LUG","LYE","MA","MAC","MAD","MAE","MAN","MAO","MAP","MAT","MAW","MAY","ME","MEG","MEL","MEN","MET","MEW","MID","MIN","MIT","MOB","MOD","MOE","MOO","MOP","MOS","MOT","MOW","MUD","MUG","MUM","MY","NAB","NAG","NAN","NAP","NAT","NAY","NE","NED","NEE","NET","NEW","NIB","NIL","NIP","NIT","NO","NOB","NOD","NON","NOR","NOT","NOV","NOW","NU","NUN","NUT","O","OAF","OAK","OAR","OAT","ODD","ODE","OF","OFF","OFT","OH","OIL","OK","OLD","ON","ONE","OR","ORB","ORE","ORR","OS","OTT","OUR","OUT","OVA","OW","OWE","OWL","OWN","OX","PA","PAD","PAL","PAM","PAN","PAP","PAR","PAT","PAW","PAY","PEA","PEG","PEN","PEP","PER","PET","PEW","PHI","PI","PIE","PIN","PIT","PLY","PO","POD","POE","POP","POT","POW","PRO","PRY","PUB","PUG","PUN","PUP","PUT","QUO","RAG","RAM","RAN","RAP","RAT","RAW","RAY","REB","RED","REP","RET","RIB","RID","RIG","RIM","RIO","RIP","ROB","ROD","ROE","RON","ROT","ROW","ROY","RUB","RUE","RUG","RUM","RUN","RYE","SAC","SAD","SAG","SAL","SAM","SAN","SAP","SAT","SAW","SAY","SEA","SEC","SEE","SEN","SET","SEW","SHE","SHY","SIN","SIP","SIR","SIS","SIT","SKI","SKY","SLY","SO","SOB","SOD","SON","SOP","SOW","SOY","SPA","SPY","SUB","SUD","SUE","SUM","SUN","SUP","TAB","TAD","TAG","TAN","TAP","TAR","TEA","TED","TEE","TEN","THE","THY","TIC","TIE","TIM","TIN","TIP","TO","TOE","TOG","TOM","TON","TOO","TOP","TOW","TOY","TRY","TUB","TUG","TUM","TUN","TWO","UN","UP","US","USE","VAN","VAT","VET","VIE","WAD","WAG","WAR","WAS","WAY","WE","WEB","WED","WEE","WET","WHO","WHY","WIN","WIT","WOK","WON","WOO","WOW","WRY","WU","YAM","YAP","YAW","YE","YEA","YES","YET","YOU","ABED","ABEL","ABET","ABLE","ABUT","ACHE","ACID","ACME","ACRE","ACTA","ACTS","ADAM","ADDS","ADEN","AFAR","AFRO","AGEE","AHEM","AHOY","AIDA","AIDE","AIDS","AIRY","AJAR","AKIN","ALAN","ALEC","ALGA","ALIA","ALLY","ALMA","ALOE","ALSO","ALTO","ALUM","ALVA","AMEN","AMES","AMID","AMMO","AMOK","AMOS","AMRA","ANDY","ANEW","ANNA","ANNE","ANTE","ANTI","AQUA","ARAB","ARCH","AREA","ARGO","ARID","ARMY","ARTS","ARTY","ASIA","ASKS","ATOM","AUNT","AURA","AUTO","AVER","AVID","AVIS","AVON","AVOW","AWAY","AWRY","BABE","BABY","BACH","BACK","BADE","BAIL","BAIT","BAKE","BALD","BALE","BALI","BALK","BALL","BALM","BAND","BANE","BANG","BANK","BARB","BARD","BARE","BARK","BARN","BARR","BASE","BASH","BASK","BASS","BATE","BATH","BAWD","BAWL","BEAD","BEAK","BEAM","BEAN","BEAR","BEAT","BEAU","BECK","BEEF","BEEN","BEER","BEET","BELA","BELL","BELT","BEND","BENT","BERG","BERN","BERT","BESS","BEST","BETA","BETH","BHOY","BIAS","BIDE","BIEN","BILE","BILK","BILL","BIND","BING","BIRD","BITE","BITS","BLAB","BLAT","BLED","BLEW","BLOB","BLOC","BLOT","BLOW","BLUE","BLUM","BLUR","BOAR","BOAT","BOCA","BOCK","BODE","BODY","BOGY","BOHR","BOIL","BOLD","BOLO","BOLT","BOMB","BONA","BOND","BONE","BONG","BONN","BONY","BOOK","BOOM","BOON","BOOT","BORE","BORG","BORN","BOSE","BOSS","BOTH","BOUT","BOWL","BOYD","BRAD","BRAE","BRAG","BRAN","BRAY","BRED","BREW","BRIG","BRIM","BROW","BUCK","BUDD","BUFF","BULB","BULK","BULL","BUNK","BUNT","BUOY","BURG","BURL","BURN","BURR","BURT","BURY","BUSH","BUSS","BUST","BUSY","BYTE","CADY","CAFE","CAGE","CAIN","CAKE","CALF","CALL","CALM","CAME","CANE","CANT","CARD","CARE","CARL","CARR","CART","CASE","CASH","CASK","CAST","CAVE","CEIL","CELL","CENT","CERN","CHAD","CHAR","CHAT","CHAW","CHEF","CHEN","CHEW","CHIC","CHIN","CHOU","CHOW","CHUB","CHUG","CHUM","CITE","CITY","CLAD","CLAM","CLAN","CLAW","CLAY","CLOD","CLOG","CLOT","CLUB","CLUE","COAL","COAT","COCA","COCK","COCO","CODA","CODE","CODY","COED","COIL","COIN","COKE","COLA","COLD","COLT","COMA","COMB","COME","COOK","COOL","COON","COOT","CORD","CORE","CORK","CORN","COST","COVE","COWL","CRAB","CRAG","CRAM","CRAY","CREW","CRIB","CROW","CRUD","CUBA","CUBE","CUFF","CULL","CULT","CUNY","CURB","CURD","CURE","CURL","CURT","CUTS","DADE","DALE","DAME","DANA","DANE","DANG","DANK","DARE","DARK","DARN","DART","DASH","DATA","DATE","DAVE","DAVY","DAWN","DAYS","DEAD","DEAF","DEAL","DEAN","DEAR","DEBT","DECK","DEED","DEEM","DEER","DEFT","DEFY","DELL","DENT","DENY","DESK","DIAL","DICE","DIED","DIET","DIME","DINE","DING","DINT","DIRE","DIRT","DISC","DISH","DISK","DIVE","DOCK","DOES","DOLE","DOLL","DOLT","DOME","DONE","DOOM","DOOR","DORA","DOSE","DOTE","DOUG","DOUR","DOVE","DOWN","DRAB","DRAG","DRAM","DRAW","DREW","DRUB","DRUG","DRUM","DUAL","DUCK","DUCT","DUEL","DUET","DUKE","DULL","DUMB","DUNE","DUNK","DUSK","DUST","DUTY","EACH","EARL","EARN","EASE","EAST","EASY","EBEN","ECHO","EDDY","EDEN","EDGE","EDGY","EDIT","EDNA","EGAN","ELAN","ELBA","ELLA","ELSE","EMIL","EMIT","EMMA","ENDS","ERIC","EROS","EVEN","EVER","EVIL","EYED","FACE","FACT","FADE","FAIL","FAIN","FAIR","FAKE","FALL","FAME","FANG","FARM","FAST","FATE","FAWN","FEAR","FEAT","FEED","FEEL","FEET","FELL","FELT","FEND","FERN","FEST","FEUD","FIEF","FIGS","FILE","FILL","FILM","FIND","FINE","FINK","FIRE","FIRM","FISH","FISK","FIST","FITS","FIVE","FLAG","FLAK","FLAM","FLAT","FLAW","FLEA","FLED","FLEW","FLIT","FLOC","FLOG","FLOW","FLUB","FLUE","FOAL","FOAM","FOGY","FOIL","FOLD","FOLK","FOND","FONT","FOOD","FOOL","FOOT","FORD","FORE","FORK","FORM","FORT","FOSS","FOUL","FOUR","FOWL","FRAU","FRAY","FRED","FREE","FRET","FREY","FROG","FROM","FUEL","FULL","FUME","FUND","FUNK","FURY","FUSE","FUSS","GAFF","GAGE","GAIL","GAIN","GAIT","GALA","GALE","GALL","GALT","GAME","GANG","GARB","GARY","GASH","GATE","GAUL","GAUR","GAVE","GAWK","GEAR","GELD","GENE","GENT","GERM","GETS","GIBE","GIFT","GILD","GILL","GILT","GINA","GIRD","GIRL","GIST","GIVE","GLAD","GLEE","GLEN","GLIB","GLOB","GLOM","GLOW","GLUE","GLUM","GLUT","GOAD","GOAL","GOAT","GOER","GOES","GOLD","GOLF","GONE","GONG","GOOD","GOOF","GORE","GORY","GOSH","GOUT","GOWN","GRAB","GRAD","GRAY","GREG","GREW","GREY","GRID","GRIM","GRIN","GRIT","GROW","GRUB","GULF","GULL","GUNK","GURU","GUSH","GUST","GWEN","GWYN","HAAG","HAAS","HACK","HAIL","HAIR","HALE","HALF","HALL","HALO","HALT","HAND","HANG","HANK","HANS","HARD","HARK","HARM","HART","HASH","HAST","HATE","HATH","HAUL","HAVE","HAWK","HAYS","HEAD","HEAL","HEAR","HEAT","HEBE","HECK","HEED","HEEL","HEFT","HELD","HELL","HELM","HERB","HERD","HERE","HERO","HERS","HESS","HEWN","HICK","HIDE","HIGH","HIKE","HILL","HILT","HIND","HINT","HIRE","HISS","HIVE","HOBO","HOCK","HOFF","HOLD","HOLE","HOLM","HOLT","HOME","HONE","HONK","HOOD","HOOF","HOOK","HOOT","HORN","HOSE","HOST","HOUR","HOVE","HOWE","HOWL","HOYT","HUCK","HUED","HUFF","HUGE","HUGH","HUGO","HULK","HULL","HUNK","HUNT","HURD","HURL","HURT","HUSH","HYDE","HYMN","IBIS","ICON","IDEA","IDLE","IFFY","INCA","INCH","INTO","IONS","IOTA","IOWA","IRIS","IRMA","IRON","ISLE","ITCH","ITEM","IVAN","JACK","JADE","JAIL","JAKE","JANE","JAVA","JEAN","JEFF","JERK","JESS","JEST","JIBE","JILL","JILT","JIVE","JOAN","JOBS","JOCK","JOEL","JOEY","JOHN","JOIN","JOKE","JOLT","JOVE","JUDD","JUDE","JUDO","JUDY","JUJU","JUKE","JULY","JUNE","JUNK","JUNO","JURY","JUST","JUTE","KAHN","KALE","KANE","KANT","KARL","KATE","KEEL","KEEN","KENO","KENT","KERN","KERR","KEYS","KICK","KILL","KIND","KING","KIRK","KISS","KITE","KLAN","KNEE","KNEW","KNIT","KNOB","KNOT","KNOW","KOCH","KONG","KUDO","KURD","KURT","KYLE","LACE","LACK","LACY","LADY","LAID","LAIN","LAIR","LAKE","LAMB","LAME","LAND","LANE","LANG","LARD","LARK","LASS","LAST","LATE","LAUD","LAVA","LAWN","LAWS","LAYS","LEAD","LEAF","LEAK","LEAN","LEAR","LEEK","LEER","LEFT","LEND","LENS","LENT","LEON","LESK","LESS","LEST","LETS","LIAR","LICE","LICK","LIED","LIEN","LIES","LIEU","LIFE","LIFT","LIKE","LILA","LILT","LILY","LIMA","LIMB","LIME","LIND","LINE","LINK","LINT","LION","LISA","LIST","LIVE","LOAD","LOAF","LOAM","LOAN","LOCK","LOFT","LOGE","LOIS","LOLA","LONE","LONG","LOOK","LOON","LOOT","LORD","LORE","LOSE","LOSS","LOST","LOUD","LOVE","LOWE","LUCK","LUCY","LUGE","LUKE","LULU","LUND","LUNG","LURA","LURE","LURK","LUSH","LUST","LYLE","LYNN","LYON","LYRA","MACE","MADE","MAGI","MAID","MAIL","MAIN","MAKE","MALE","MALI","MALL","MALT","MANA","MANN","MANY","MARC","MARE","MARK","MARS","MART","MARY","MASH","MASK","MASS","MAST","MATE","MATH","MAUL","MAYO","MEAD","MEAL","MEAN","MEAT","MEEK","MEET","MELD","MELT","MEMO","MEND","MENU","MERT","MESH","MESS","MICE","MIKE","MILD","MILE","MILK","MILL","MILT","MIMI","MIND","MINE","MINI","MINK","MINT","MIRE","MISS","MIST","MITE","MITT","MOAN","MOAT","MOCK","MODE","MOLD","MOLE","MOLL","MOLT","MONA","MONK","MONT","MOOD","MOON","MOOR","MOOT","MORE","MORN","MORT","MOSS","MOST","MOTH","MOVE","MUCH","MUCK","MUDD","MUFF","MULE","MULL","MURK","MUSH","MUST","MUTE","MUTT","MYRA","MYTH","NAGY","NAIL","NAIR","NAME","NARY","NASH","NAVE","NAVY","NEAL","NEAR","NEAT","NECK","NEED","NEIL","NELL","NEON","NERO","NESS","NEST","NEWS","NEWT","NIBS","NICE","NICK","NILE","NINA","NINE","NOAH","NODE","NOEL","NOLL","NONE","NOOK","NOON","NORM","NOSE","NOTE","NOUN","NOVA","NUDE","NULL","NUMB","OATH","OBEY","OBOE","ODIN","OHIO","OILY","OINT","OKAY","OLAF","OLDY","OLGA","OLIN","OMAN","OMEN","OMIT","ONCE","ONES","ONLY","ONTO","ONUS","ORAL","ORGY","OSLO","OTIS","OTTO","OUCH","OUST","OUTS","OVAL","OVEN","OVER","OWLY","OWNS","QUAD","QUIT","QUOD","RACE","RACK","RACY","RAFT","RAGE","RAID","RAIL","RAIN","RAKE","RANK","RANT","RARE","RASH","RATE","RAVE","RAYS","READ","REAL","REAM","REAR","RECK","REED","REEF","REEK","REEL","REID","REIN","RENA","REND","RENT","REST","RICE","RICH","RICK","RIDE","RIFT","RILL","RIME","RING","RINK","RISE","RISK","RITE","ROAD","ROAM","ROAR","ROBE","ROCK","RODE","ROIL","ROLL","ROME","ROOD","ROOF","ROOK","ROOM","ROOT","ROSA","ROSE","ROSS","ROSY","ROTH","ROUT","ROVE","ROWE","ROWS","RUBE","RUBY","RUDE","RUDY","RUIN","RULE","RUNG","RUNS","RUNT","RUSE","RUSH","RUSK","RUSS","RUST","RUTH","SACK","SAFE","SAGE","SAID","SAIL","SALE","SALK","SALT","SAME","SAND","SANE","SANG","SANK","SARA","SAUL","SAVE","SAYS","SCAN","SCAR","SCAT","SCOT","SEAL","SEAM","SEAR","SEAT","SEED","SEEK","SEEM","SEEN","SEES","SELF","SELL","SEND","SENT","SETS","SEWN","SHAG","SHAM","SHAW","SHAY","SHED","SHIM","SHIN","SHOD","SHOE","SHOT","SHOW","SHUN","SHUT","SICK","SIDE","SIFT","SIGH","SIGN","SILK","SILL","SILO","SILT","SINE","SING","SINK","SIRE","SITE","SITS","SITU","SKAT","SKEW","SKID","SKIM","SKIN","SKIT","SLAB","SLAM","SLAT","SLAY","SLED","SLEW","SLID","SLIM","SLIT","SLOB","SLOG","SLOT","SLOW","SLUG","SLUM","SLUR","SMOG","SMUG","SNAG","SNOB","SNOW","SNUB","SNUG","SOAK","SOAR","SOCK","SODA","SOFA","SOFT","SOIL","SOLD","SOME","SONG","SOON","SOOT","SORE","SORT","SOUL","SOUR","SOWN","STAB","STAG","STAN","STAR","STAY","STEM","STEW","STIR","STOW","STUB","STUN","SUCH","SUDS","SUIT","SULK","SUMS","SUNG","SUNK","SURE","SURF","SWAB","SWAG","SWAM","SWAN","SWAT","SWAY","SWIM","SWUM","TACK","TACT","TAIL","TAKE","TALE","TALK","TALL","TANK","TASK","TATE","TAUT","TEAL","TEAM","TEAR","TECH","TEEM","TEEN","TEET","TELL","TEND","TENT","TERM","TERN","TESS","TEST","THAN","THAT","THEE","THEM","THEN","THEY","THIN","THIS","THUD","THUG","TICK","TIDE","TIDY","TIED","TIER","TILE","TILL","TILT","TIME","TINA","TINE","TINT","TINY","TIRE","TOAD","TOGO","TOIL","TOLD","TOLL","TONE","TONG","TONY","TOOK","TOOL","TOOT","TORE","TORN","TOTE","TOUR","TOUT","TOWN","TRAG","TRAM","TRAY","TREE","TREK","TRIG","TRIM","TRIO","TROD","TROT","TROY","TRUE","TUBA","TUBE","TUCK","TUFT","TUNA","TUNE","TUNG","TURF","TURN","TUSK","TWIG","TWIN","TWIT","ULAN","UNIT","URGE","USED","USER","USES","UTAH","VAIL","VAIN","VALE","VARY","VASE","VAST","VEAL","VEDA","VEIL","VEIN","VEND","VENT","VERB","VERY","VETO","VICE","VIEW","VINE","VISE","VOID","VOLT","VOTE","WACK","WADE","WAGE","WAIL","WAIT","WAKE","WALE","WALK","WALL","WALT","WAND","WANE","WANG","WANT","WARD","WARM","WARN","WART","WASH","WAST","WATS","WATT","WAVE","WAVY","WAYS","WEAK","WEAL","WEAN","WEAR","WEED","WEEK","WEIR","WELD","WELL","WELT","WENT","WERE","WERT","WEST","WHAM","WHAT","WHEE","WHEN","WHET","WHOA","WHOM","WICK","WIFE","WILD","WILL","WIND","WINE","WING","WINK","WINO","WIRE","WISE","WISH","WITH","WOLF","WONT","WOOD","WOOL","WORD","WORE","WORK","WORM","WORN","WOVE","WRIT","WYNN","YALE","YANG","YANK","YARD","YARN","YAWL","YAWN","YEAH","YEAR","YELL","YOGA","YOKE"]', + ) + }, + }, + t = {} + function r(n) { + var i = t[n] + if (void 0 !== i) return i.exports + var o = (t[n] = { id: n, loaded: !1, exports: {} }) + return (e[n].call(o.exports, o, o.exports, r), (o.loaded = !0), o.exports) + } + ;((r.g = (function () { + if ('object' == typeof globalThis) return globalThis + try { + return this || new Function('return this')() + } catch (e) { + if ('object' == typeof window) return window + } + })()), + (r.nmd = (e) => ((e.paths = []), e.children || (e.children = []), e))) + var n = r(20066) + xrpl = n +})() +//# sourceMappingURL=xrpl-latest-min.js.map diff --git a/static/js/xrpl-guard.tsx b/static/js/xrpl-guard.tsx index 953d052ed1..53192911f9 100644 --- a/static/js/xrpl-guard.tsx +++ b/static/js/xrpl-guard.tsx @@ -1,9 +1,9 @@ -import { useThemeHooks } from '@redocly/theme/core/hooks'; +import { useThemeHooks } from '@redocly/theme/core/hooks' import { isFunction } from './type-helpers' import { FC } from 'react' import { useEffect, useState } from 'react' -import React = require('react'); -import XRPLoader from '../components/XRPLoader'; +import React = require('react') +import XRPLoader from '../components/XRPLoader' import * as xrpl from 'xrpl' export const MIN_LOADER_MS = 1250 @@ -17,10 +17,7 @@ const sleep = (delay) => new Promise((resolve) => setTimeout(resolve, delay)) * If check is initially true, immediatly return `isTrue` * If check is initially false and becomes true, return true after `timeoutMs` */ -export const useThrottledCheck = ( - check: () => boolean, - timeoutMs = DEFAULT_TIMEOUT, -) => { +export const useThrottledCheck = (check: () => boolean, timeoutMs = DEFAULT_TIMEOUT) => { const [isTrue, setIsTrue] = useState(() => check()) useEffect(() => { @@ -29,8 +26,7 @@ export const useThrottledCheck = ( waitedMs = tries * waitMs if (check()) { - const debouncedDelay = - waitedMs < timeoutMs ? timeoutMs - (waitedMs % timeoutMs) : 0 + const debouncedDelay = waitedMs < timeoutMs ? timeoutMs - (waitedMs % timeoutMs) : 0 setTimeout(() => setIsTrue(true), debouncedDelay) return @@ -59,27 +55,10 @@ export const useThrottledCheck = ( * * @param {function} testCheck for testing only, a check function to use */ -export const XRPLGuard: FC<{ testCheck?: () => boolean, children }> = ({ - testCheck, - children, -}) => { - const { useTranslate } = useThemeHooks(); - const { translate } = useTranslate(); - const isXRPLLoaded = useThrottledCheck( - testCheck ?? (() => typeof xrpl === 'object'), - MIN_LOADER_MS, - ) +export const XRPLGuard: FC<{ testCheck?: () => boolean; children }> = ({ testCheck, children }) => { + const { useTranslate } = useThemeHooks() + const { translate } = useTranslate() + const isXRPLLoaded = useThrottledCheck(testCheck ?? (() => typeof xrpl === 'object'), MIN_LOADER_MS) - return ( - <> - {isXRPLLoaded ? ( - isFunction(children) ? ( - children() - ) : ( - children - ) - ) : <XRPLoader message={translate("Loading...")}/> - } - </> - ) + return <>{isXRPLLoaded ? isFunction(children) ? children() : children : <XRPLoader message={translate('Loading...')} />}</> } diff --git a/static/vendor/big.min.js b/static/vendor/big.min.js index eb82fe8053..b48b600cd5 100644 --- a/static/vendor/big.min.js +++ b/static/vendor/big.min.js @@ -1,2 +1,319 @@ /* big.js v5.2.2 https://github.com/MikeMcl/big.js/LICENCE */ -!function(e){"use strict";var r,i=20,s=1,P=1e6,o=-7,f=21,c="[big.js] ",u=c+"Invalid ",b=u+"decimal places",h=u+"rounding mode",x=c+"Division by zero",l={},D=void 0,a=/^-?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i;function R(e,r,t,n){var i=e.c,s=e.e+r+1;if(s<i.length){if(1===t)n=5<=i[s];else if(2===t)n=5<i[s]||5==i[s]&&(n||s<0||i[s+1]!==D||1&i[s-1]);else if(3===t)n=n||!!i[0];else if(n=!1,0!==t)throw Error(h);if(s<1)i.length=1,i[0]=n?(e.e=-r,1):e.e=0;else{if(i.length=s--,n)for(;9<++i[s];)i[s]=0,s--||(++e.e,i.unshift(1));for(s=i.length;!i[--s];)i.pop()}}else if(t<0||3<t||t!==~~t)throw Error(h);return e}function t(e,r,t,n){var i,s,o=e.constructor,f=!e.c[0];if(t!==D){if(t!==~~t||t<(3==r)||P<t)throw Error(3==r?u+"precision":b);for(t=n-(e=new o(e)).e,e.c.length>++n&&R(e,t,o.RM),2==r&&(n=e.e+t+1);e.c.length<n;)e.c.push(0)}if(i=e.e,t=(s=e.c.join("")).length,2!=r&&(1==r||3==r&&n<=i||i<=o.NE||i>=o.PE))s=s.charAt(0)+(1<t?"."+s.slice(1):"")+(i<0?"e":"e+")+i;else if(i<0){for(;++i;)s="0"+s;s="0."+s}else if(0<i)if(++i>t)for(i-=t;i--;)s+="0";else i<t&&(s=s.slice(0,i)+"."+s.slice(i));else 1<t&&(s=s.charAt(0)+"."+s.slice(1));return e.s<0&&(!f||4==r)?"-"+s:s}l.abs=function(){var e=new this.constructor(this);return e.s=1,e},l.cmp=function(e){var r,t=this,n=t.c,i=(e=new t.constructor(e)).c,s=t.s,o=e.s,f=t.e,c=e.e;if(!n[0]||!i[0])return n[0]?s:i[0]?-o:0;if(s!=o)return s;if(r=s<0,f!=c)return c<f^r?1:-1;for(o=(f=n.length)<(c=i.length)?f:c,s=-1;++s<o;)if(n[s]!=i[s])return n[s]>i[s]^r?1:-1;return f==c?0:c<f^r?1:-1},l.div=function(e){var r=this,t=r.constructor,n=r.c,i=(e=new t(e)).c,s=r.s==e.s?1:-1,o=t.DP;if(o!==~~o||o<0||P<o)throw Error(b);if(!i[0])throw Error(x);if(!n[0])return new t(0*s);var f,c,u,h,l,a=i.slice(),g=f=i.length,p=n.length,w=n.slice(0,f),d=w.length,v=e,m=v.c=[],E=0,M=o+(v.e=r.e-e.e)+1;for(v.s=s,s=M<0?0:M,a.unshift(0);d++<f;)w.push(0);do{for(u=0;u<10;u++){if(f!=(d=w.length))h=d<f?1:-1;else for(l=-1,h=0;++l<f;)if(i[l]!=w[l]){h=i[l]>w[l]?1:-1;break}if(!(h<0))break;for(c=d==f?i:a;d;){if(w[--d]<c[d]){for(l=d;l&&!w[--l];)w[l]=9;--w[l],w[d]+=10}w[d]-=c[d]}for(;!w[0];)w.shift()}m[E++]=h?u:++u,w[0]&&h?w[d]=n[g]||0:w=[n[g]]}while((g++<p||w[0]!==D)&&s--);return m[0]||1==E||(m.shift(),v.e--),M<E&&R(v,o,t.RM,w[0]!==D),v},l.eq=function(e){return!this.cmp(e)},l.gt=function(e){return 0<this.cmp(e)},l.gte=function(e){return-1<this.cmp(e)},l.lt=function(e){return this.cmp(e)<0},l.lte=function(e){return this.cmp(e)<1},l.minus=l.sub=function(e){var r,t,n,i,s=this,o=s.constructor,f=s.s,c=(e=new o(e)).s;if(f!=c)return e.s=-c,s.plus(e);var u=s.c.slice(),h=s.e,l=e.c,a=e.e;if(!u[0]||!l[0])return l[0]?(e.s=-c,e):new o(u[0]?s:0);if(f=h-a){for((n=(i=f<0)?(f=-f,u):(a=h,l)).reverse(),c=f;c--;)n.push(0);n.reverse()}else for(t=((i=u.length<l.length)?u:l).length,f=c=0;c<t;c++)if(u[c]!=l[c]){i=u[c]<l[c];break}if(i&&(n=u,u=l,l=n,e.s=-e.s),0<(c=(t=l.length)-(r=u.length)))for(;c--;)u[r++]=0;for(c=r;f<t;){if(u[--t]<l[t]){for(r=t;r&&!u[--r];)u[r]=9;--u[r],u[t]+=10}u[t]-=l[t]}for(;0===u[--c];)u.pop();for(;0===u[0];)u.shift(),--a;return u[0]||(e.s=1,u=[a=0]),e.c=u,e.e=a,e},l.mod=function(e){var r,t=this,n=t.constructor,i=t.s,s=(e=new n(e)).s;if(!e.c[0])throw Error(x);return t.s=e.s=1,r=1==e.cmp(t),t.s=i,e.s=s,r?new n(t):(i=n.DP,s=n.RM,n.DP=n.RM=0,t=t.div(e),n.DP=i,n.RM=s,this.minus(t.times(e)))},l.plus=l.add=function(e){var r,t=this,n=t.constructor,i=t.s,s=(e=new n(e)).s;if(i!=s)return e.s=-s,t.minus(e);var o=t.e,f=t.c,c=e.e,u=e.c;if(!f[0]||!u[0])return u[0]?e:new n(f[0]?t:0*i);if(f=f.slice(),i=o-c){for((r=0<i?(c=o,u):(i=-i,f)).reverse();i--;)r.push(0);r.reverse()}for(f.length-u.length<0&&(r=u,u=f,f=r),i=u.length,s=0;i;f[i]%=10)s=(f[--i]=f[i]+u[i]+s)/10|0;for(s&&(f.unshift(s),++c),i=f.length;0===f[--i];)f.pop();return e.c=f,e.e=c,e},l.pow=function(e){var r=this,t=new r.constructor(1),n=t,i=e<0;if(e!==~~e||e<-1e6||1e6<e)throw Error(u+"exponent");for(i&&(e=-e);1&e&&(n=n.times(r)),e>>=1;)r=r.times(r);return i?t.div(n):n},l.round=function(e,r){var t=this.constructor;if(e===D)e=0;else if(e!==~~e||e<-P||P<e)throw Error(b);return R(new t(this),e,r===D?t.RM:r)},l.sqrt=function(){var e,r,t,n=this,i=n.constructor,s=n.s,o=n.e,f=new i(.5);if(!n.c[0])return new i(n);if(s<0)throw Error(c+"No square root");for(o=(e=0===(s=Math.sqrt(n+""))||s===1/0?((r=n.c.join("")).length+o&1||(r+="0"),o=((o+1)/2|0)-(o<0||1&o),new i(((s=Math.sqrt(r))==1/0?"1e":(s=s.toExponential()).slice(0,s.indexOf("e")+1))+o)):new i(s)).e+(i.DP+=4);t=e,e=f.times(t.plus(n.div(t))),t.c.slice(0,o).join("")!==e.c.slice(0,o).join(""););return R(e,i.DP-=4,i.RM)},l.times=l.mul=function(e){var r,t=this.constructor,n=this.c,i=(e=new t(e)).c,s=n.length,o=i.length,f=this.e,c=e.e;if(e.s=this.s==e.s?1:-1,!n[0]||!i[0])return new t(0*e.s);for(e.e=f+c,s<o&&(r=n,n=i,i=r,c=s,s=o,o=c),r=new Array(c=s+o);c--;)r[c]=0;for(f=o;f--;){for(o=0,c=s+f;f<c;)o=r[c]+i[f]*n[c-f-1]+o,r[c--]=o%10,o=o/10|0;r[c]=(r[c]+o)%10}for(o?++e.e:r.shift(),f=r.length;!r[--f];)r.pop();return e.c=r,e},l.toExponential=function(e){return t(this,1,e,e)},l.toFixed=function(e){return t(this,2,e,this.e+e)},l.toPrecision=function(e){return t(this,3,e,e-1)},l.toString=function(){return t(this)},l.valueOf=l.toJSON=function(){return t(this,4)},(r=function t(){function n(e){var r=this;if(!(r instanceof n))return e===D?t():new n(e);e instanceof n?(r.s=e.s,r.e=e.e,r.c=e.c.slice()):function(e,r){var t,n,i;if(0===r&&1/r<0)r="-0";else if(!a.test(r+=""))throw Error(u+"number");for(e.s="-"==r.charAt(0)?(r=r.slice(1),-1):1,-1<(t=r.indexOf("."))&&(r=r.replace(".","")),0<(n=r.search(/e/i))?(t<0&&(t=n),t+=+r.slice(n+1),r=r.substring(0,n)):t<0&&(t=r.length),i=r.length,n=0;n<i&&"0"==r.charAt(n);)++n;if(n==i)e.c=[e.e=0];else{for(;0<i&&"0"==r.charAt(--i););for(e.e=t-n-1,e.c=[],t=0;n<=i;)e.c[t++]=+r.charAt(n++)}}(r,e),r.constructor=n}return n.prototype=l,n.DP=i,n.RM=s,n.NE=o,n.PE=f,n.version="5.2.2",n}()).default=r.Big=r,"function"==typeof define&&define.amd?define(function(){return r}):"undefined"!=typeof module&&module.exports?module.exports=r:e.Big=r}(this); \ No newline at end of file +!(function (e) { + 'use strict' + var r, + i = 20, + s = 1, + P = 1e6, + o = -7, + f = 21, + c = '[big.js] ', + u = c + 'Invalid ', + b = u + 'decimal places', + h = u + 'rounding mode', + x = c + 'Division by zero', + l = {}, + D = void 0, + a = /^-?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i + function R(e, r, t, n) { + var i = e.c, + s = e.e + r + 1 + if (s < i.length) { + if (1 === t) n = 5 <= i[s] + else if (2 === t) n = 5 < i[s] || (5 == i[s] && (n || s < 0 || i[s + 1] !== D || 1 & i[s - 1])) + else if (3 === t) n = n || !!i[0] + else if (((n = !1), 0 !== t)) throw Error(h) + if (s < 1) ((i.length = 1), (i[0] = n ? ((e.e = -r), 1) : (e.e = 0))) + else { + if (((i.length = s--), n)) for (; 9 < ++i[s]; ) ((i[s] = 0), s-- || (++e.e, i.unshift(1))) + for (s = i.length; !i[--s]; ) i.pop() + } + } else if (t < 0 || 3 < t || t !== ~~t) throw Error(h) + return e + } + function t(e, r, t, n) { + var i, + s, + o = e.constructor, + f = !e.c[0] + if (t !== D) { + if (t !== ~~t || t < (3 == r) || P < t) throw Error(3 == r ? u + 'precision' : b) + for (t = n - (e = new o(e)).e, e.c.length > ++n && R(e, t, o.RM), 2 == r && (n = e.e + t + 1); e.c.length < n; ) e.c.push(0) + } + if (((i = e.e), (t = (s = e.c.join('')).length), 2 != r && (1 == r || (3 == r && n <= i) || i <= o.NE || i >= o.PE))) + s = s.charAt(0) + (1 < t ? '.' + s.slice(1) : '') + (i < 0 ? 'e' : 'e+') + i + else if (i < 0) { + for (; ++i; ) s = '0' + s + s = '0.' + s + } else if (0 < i) + if (++i > t) for (i -= t; i--; ) s += '0' + else i < t && (s = s.slice(0, i) + '.' + s.slice(i)) + else 1 < t && (s = s.charAt(0) + '.' + s.slice(1)) + return e.s < 0 && (!f || 4 == r) ? '-' + s : s + } + ;((l.abs = function () { + var e = new this.constructor(this) + return ((e.s = 1), e) + }), + (l.cmp = function (e) { + var r, + t = this, + n = t.c, + i = (e = new t.constructor(e)).c, + s = t.s, + o = e.s, + f = t.e, + c = e.e + if (!n[0] || !i[0]) return n[0] ? s : i[0] ? -o : 0 + if (s != o) return s + if (((r = s < 0), f != c)) return (c < f) ^ r ? 1 : -1 + for (o = (f = n.length) < (c = i.length) ? f : c, s = -1; ++s < o; ) if (n[s] != i[s]) return (n[s] > i[s]) ^ r ? 1 : -1 + return f == c ? 0 : (c < f) ^ r ? 1 : -1 + }), + (l.div = function (e) { + var r = this, + t = r.constructor, + n = r.c, + i = (e = new t(e)).c, + s = r.s == e.s ? 1 : -1, + o = t.DP + if (o !== ~~o || o < 0 || P < o) throw Error(b) + if (!i[0]) throw Error(x) + if (!n[0]) return new t(0 * s) + var f, + c, + u, + h, + l, + a = i.slice(), + g = (f = i.length), + p = n.length, + w = n.slice(0, f), + d = w.length, + v = e, + m = (v.c = []), + E = 0, + M = o + (v.e = r.e - e.e) + 1 + for (v.s = s, s = M < 0 ? 0 : M, a.unshift(0); d++ < f; ) w.push(0) + do { + for (u = 0; u < 10; u++) { + if (f != (d = w.length)) h = d < f ? 1 : -1 + else + for (l = -1, h = 0; ++l < f; ) + if (i[l] != w[l]) { + h = i[l] > w[l] ? 1 : -1 + break + } + if (!(h < 0)) break + for (c = d == f ? i : a; d; ) { + if (w[--d] < c[d]) { + for (l = d; l && !w[--l]; ) w[l] = 9 + ;(--w[l], (w[d] += 10)) + } + w[d] -= c[d] + } + for (; !w[0]; ) w.shift() + } + ;((m[E++] = h ? u : ++u), w[0] && h ? (w[d] = n[g] || 0) : (w = [n[g]])) + } while ((g++ < p || w[0] !== D) && s--) + return (m[0] || 1 == E || (m.shift(), v.e--), M < E && R(v, o, t.RM, w[0] !== D), v) + }), + (l.eq = function (e) { + return !this.cmp(e) + }), + (l.gt = function (e) { + return 0 < this.cmp(e) + }), + (l.gte = function (e) { + return -1 < this.cmp(e) + }), + (l.lt = function (e) { + return this.cmp(e) < 0 + }), + (l.lte = function (e) { + return this.cmp(e) < 1 + }), + (l.minus = l.sub = + function (e) { + var r, + t, + n, + i, + s = this, + o = s.constructor, + f = s.s, + c = (e = new o(e)).s + if (f != c) return ((e.s = -c), s.plus(e)) + var u = s.c.slice(), + h = s.e, + l = e.c, + a = e.e + if (!u[0] || !l[0]) return l[0] ? ((e.s = -c), e) : new o(u[0] ? s : 0) + if ((f = h - a)) { + for ((n = (i = f < 0) ? ((f = -f), u) : ((a = h), l)).reverse(), c = f; c--; ) n.push(0) + n.reverse() + } else + for (t = ((i = u.length < l.length) ? u : l).length, f = c = 0; c < t; c++) + if (u[c] != l[c]) { + i = u[c] < l[c] + break + } + if ((i && ((n = u), (u = l), (l = n), (e.s = -e.s)), 0 < (c = (t = l.length) - (r = u.length)))) for (; c--; ) u[r++] = 0 + for (c = r; f < t; ) { + if (u[--t] < l[t]) { + for (r = t; r && !u[--r]; ) u[r] = 9 + ;(--u[r], (u[t] += 10)) + } + u[t] -= l[t] + } + for (; 0 === u[--c]; ) u.pop() + for (; 0 === u[0]; ) (u.shift(), --a) + return (u[0] || ((e.s = 1), (u = [(a = 0)])), (e.c = u), (e.e = a), e) + }), + (l.mod = function (e) { + var r, + t = this, + n = t.constructor, + i = t.s, + s = (e = new n(e)).s + if (!e.c[0]) throw Error(x) + return ( + (t.s = e.s = 1), + (r = 1 == e.cmp(t)), + (t.s = i), + (e.s = s), + r ? new n(t) : ((i = n.DP), (s = n.RM), (n.DP = n.RM = 0), (t = t.div(e)), (n.DP = i), (n.RM = s), this.minus(t.times(e))) + ) + }), + (l.plus = l.add = + function (e) { + var r, + t = this, + n = t.constructor, + i = t.s, + s = (e = new n(e)).s + if (i != s) return ((e.s = -s), t.minus(e)) + var o = t.e, + f = t.c, + c = e.e, + u = e.c + if (!f[0] || !u[0]) return u[0] ? e : new n(f[0] ? t : 0 * i) + if (((f = f.slice()), (i = o - c))) { + for ((r = 0 < i ? ((c = o), u) : ((i = -i), f)).reverse(); i--; ) r.push(0) + r.reverse() + } + for (f.length - u.length < 0 && ((r = u), (u = f), (f = r)), i = u.length, s = 0; i; f[i] %= 10) s = ((f[--i] = f[i] + u[i] + s) / 10) | 0 + for (s && (f.unshift(s), ++c), i = f.length; 0 === f[--i]; ) f.pop() + return ((e.c = f), (e.e = c), e) + }), + (l.pow = function (e) { + var r = this, + t = new r.constructor(1), + n = t, + i = e < 0 + if (e !== ~~e || e < -1e6 || 1e6 < e) throw Error(u + 'exponent') + for (i && (e = -e); 1 & e && (n = n.times(r)), (e >>= 1); ) r = r.times(r) + return i ? t.div(n) : n + }), + (l.round = function (e, r) { + var t = this.constructor + if (e === D) e = 0 + else if (e !== ~~e || e < -P || P < e) throw Error(b) + return R(new t(this), e, r === D ? t.RM : r) + }), + (l.sqrt = function () { + var e, + r, + t, + n = this, + i = n.constructor, + s = n.s, + o = n.e, + f = new i(0.5) + if (!n.c[0]) return new i(n) + if (s < 0) throw Error(c + 'No square root') + for ( + o = + (e = + 0 === (s = Math.sqrt(n + '')) || s === 1 / 0 + ? (((r = n.c.join('')).length + o) & 1 || (r += '0'), + (o = (((o + 1) / 2) | 0) - (o < 0 || 1 & o)), + new i(((s = Math.sqrt(r)) == 1 / 0 ? '1e' : (s = s.toExponential()).slice(0, s.indexOf('e') + 1)) + o)) + : new i(s)).e + (i.DP += 4); + (t = e), (e = f.times(t.plus(n.div(t)))), t.c.slice(0, o).join('') !== e.c.slice(0, o).join(''); + ); + return R(e, (i.DP -= 4), i.RM) + }), + (l.times = l.mul = + function (e) { + var r, + t = this.constructor, + n = this.c, + i = (e = new t(e)).c, + s = n.length, + o = i.length, + f = this.e, + c = e.e + if (((e.s = this.s == e.s ? 1 : -1), !n[0] || !i[0])) return new t(0 * e.s) + for (e.e = f + c, s < o && ((r = n), (n = i), (i = r), (c = s), (s = o), (o = c)), r = new Array((c = s + o)); c--; ) r[c] = 0 + for (f = o; f--; ) { + for (o = 0, c = s + f; f < c; ) ((o = r[c] + i[f] * n[c - f - 1] + o), (r[c--] = o % 10), (o = (o / 10) | 0)) + r[c] = (r[c] + o) % 10 + } + for (o ? ++e.e : r.shift(), f = r.length; !r[--f]; ) r.pop() + return ((e.c = r), e) + }), + (l.toExponential = function (e) { + return t(this, 1, e, e) + }), + (l.toFixed = function (e) { + return t(this, 2, e, this.e + e) + }), + (l.toPrecision = function (e) { + return t(this, 3, e, e - 1) + }), + (l.toString = function () { + return t(this) + }), + (l.valueOf = l.toJSON = + function () { + return t(this, 4) + }), + ((r = (function t() { + function n(e) { + var r = this + if (!(r instanceof n)) return e === D ? t() : new n(e) + ;(e instanceof n + ? ((r.s = e.s), (r.e = e.e), (r.c = e.c.slice())) + : (function (e, r) { + var t, n, i + if (0 === r && 1 / r < 0) r = '-0' + else if (!a.test((r += ''))) throw Error(u + 'number') + for ( + e.s = '-' == r.charAt(0) ? ((r = r.slice(1)), -1) : 1, + -1 < (t = r.indexOf('.')) && (r = r.replace('.', '')), + 0 < (n = r.search(/e/i)) ? (t < 0 && (t = n), (t += +r.slice(n + 1)), (r = r.substring(0, n))) : t < 0 && (t = r.length), + i = r.length, + n = 0; + n < i && '0' == r.charAt(n); + ) + ++n + if (n == i) e.c = [(e.e = 0)] + else { + for (; 0 < i && '0' == r.charAt(--i); ); + for (e.e = t - n - 1, e.c = [], t = 0; n <= i; ) e.c[t++] = +r.charAt(n++) + } + })(r, e), + (r.constructor = n)) + } + return ((n.prototype = l), (n.DP = i), (n.RM = s), (n.NE = o), (n.PE = f), (n.version = '5.2.2'), n) + })()).default = r.Big = + r), + 'function' == typeof define && define.amd + ? define(function () { + return r + }) + : 'undefined' != typeof module && module.exports + ? (module.exports = r) + : (e.Big = r)) +})(this) diff --git a/static/vendor/bootstrap-growl.jquery.js b/static/vendor/bootstrap-growl.jquery.js index 2b743763ff..953e34b1e1 100644 --- a/static/vendor/bootstrap-growl.jquery.js +++ b/static/vendor/bootstrap-growl.jquery.js @@ -23,84 +23,85 @@ THE SOFTWARE. */ /** - * Replaced by react-alert after the Redocly migration. + * Replaced by react-alert after the Redocly migration. * Please see tx-sender.page.tsx for an example of react-alerts in action. */ -(function() { - var $; +;(function () { + var $ - $ = jQuery; + $ = jQuery - $.bootstrapGrowl = function(message, options) { - var $alert, css, offsetAmount; - options = $.extend({}, $.bootstrapGrowl.default_options, options); - $alert = $("<div>"); - $alert.attr("class", "bootstrap-growl alert"); + $.bootstrapGrowl = function (message, options) { + var $alert, css, offsetAmount + options = $.extend({}, $.bootstrapGrowl.default_options, options) + $alert = $('<div>') + $alert.attr('class', 'bootstrap-growl alert') if (options.type) { - $alert.addClass("alert-" + options.type); + $alert.addClass('alert-' + options.type) } if (options.allow_dismiss) { - $alert.addClass("alert-dismissible"); - $alert.append("<button class=\"close\" data-dismiss=\"alert\" type=\"button\"><span aria-hidden=\"true\">×</span><span class=\"sr-only\">Close</span></button>"); + $alert.addClass('alert-dismissible') + $alert.append( + '<button class="close" data-dismiss="alert" type="button"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>', + ) } - $alert.append(message); + $alert.append(message) if (options.top_offset) { options.offset = { - from: "top", - amount: options.top_offset - }; + from: 'top', + amount: options.top_offset, + } } - offsetAmount = options.offset.amount; - $(".bootstrap-growl").each(function() { - return offsetAmount = Math.max(offsetAmount, parseInt($(this).css(options.offset.from)) + $(this).outerHeight() + options.stackup_spacing); - }); + offsetAmount = options.offset.amount + $('.bootstrap-growl').each(function () { + return (offsetAmount = Math.max(offsetAmount, parseInt($(this).css(options.offset.from)) + $(this).outerHeight() + options.stackup_spacing)) + }) css = { - "position": (options.ele === "body" ? "fixed" : "absolute"), - "margin": 0, - "z-index": "9999", - "display": "none" - }; - css[options.offset.from] = offsetAmount + "px"; - $alert.css(css); - if (options.width !== "auto") { - $alert.css("width", options.width + "px"); + position: options.ele === 'body' ? 'fixed' : 'absolute', + margin: 0, + 'z-index': '9999', + display: 'none', } - $(options.ele).append($alert); + css[options.offset.from] = offsetAmount + 'px' + $alert.css(css) + if (options.width !== 'auto') { + $alert.css('width', options.width + 'px') + } + $(options.ele).append($alert) switch (options.align) { - case "center": + case 'center': $alert.css({ - "left": "50%", - "margin-left": "-" + ($alert.outerWidth() / 2) + "px" - }); - break; - case "left": - $alert.css("left", "20px"); - break; + left: '50%', + 'margin-left': '-' + $alert.outerWidth() / 2 + 'px', + }) + break + case 'left': + $alert.css('left', '20px') + break default: - $alert.css("right", "20px"); + $alert.css('right', '20px') } - $alert.fadeIn(); + $alert.fadeIn() if (options.delay > 0) { - $alert.delay(options.delay).fadeOut(function() { - return $(this).alert("close"); - }); + $alert.delay(options.delay).fadeOut(function () { + return $(this).alert('close') + }) } - return $alert; - }; + return $alert + } $.bootstrapGrowl.default_options = { - ele: "body", - type: "info", + ele: 'body', + type: 'info', offset: { - from: "top", - amount: 20 + from: 'top', + amount: 20, }, - align: "right", + align: 'right', width: 250, delay: 4000, allow_dismiss: true, - stackup_spacing: 10 - }; - -}).call(this); + stackup_spacing: 10, + } +}).call(this) diff --git a/static/vendor/bootstrap.min.js b/static/vendor/bootstrap.min.js index eac9842d74..a8fdde4408 100644 --- a/static/vendor/bootstrap.min.js +++ b/static/vendor/bootstrap.min.js @@ -1,7 +1,2256 @@ /*! - * Bootstrap v4.1.0 (https://getbootstrap.com/) - * Copyright 2011-2018 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("jquery"),require("popper.js")):"function"==typeof define&&define.amd?define(["exports","jquery","popper.js"],e):e(t.bootstrap={},t.jQuery,t.Popper)}(this,function(t,e,c){"use strict";function i(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function o(t,e,n){return e&&i(t.prototype,e),n&&i(t,n),t}function h(r){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{},e=Object.keys(s);"function"==typeof Object.getOwnPropertySymbols&&(e=e.concat(Object.getOwnPropertySymbols(s).filter(function(t){return Object.getOwnPropertyDescriptor(s,t).enumerable}))),e.forEach(function(t){var e,n,i;e=r,i=s[n=t],n in e?Object.defineProperty(e,n,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[n]=i})}return r}e=e&&e.hasOwnProperty("default")?e.default:e,c=c&&c.hasOwnProperty("default")?c.default:c;var r,n,s,a,l,u,f,d,_,g,m,p,v,E,y,T,C,I,A,D,b,S,w,N,O,k,P,L,j,R,H,W,M,x,U,K,F,V,Q,B,Y,G,q,z,X,J,Z,$,tt,et,nt,it,rt,st,ot,at,lt,ht,ct,ut,ft,dt,_t,gt,mt,pt,vt,Et,yt,Tt,Ct,It,At,Dt,bt,St,wt,Nt,Ot,kt,Pt,Lt,jt,Rt,Ht,Wt,Mt,xt,Ut,Kt,Ft,Vt,Qt,Bt,Yt,Gt,qt,zt,Xt,Jt,Zt,$t,te,ee,ne,ie,re,se,oe,ae,le,he,ce,ue,fe,de,_e,ge,me,pe,ve,Ee,ye,Te,Ce,Ie,Ae,De,be,Se,we,Ne,Oe,ke,Pe,Le,je,Re,He,We,Me,xe,Ue,Ke,Fe,Ve,Qe,Be,Ye,Ge,qe,ze,Xe,Je,Ze,$e,tn,en,nn,rn,sn,on,an,ln,hn,cn,un,fn,dn,_n,gn,mn,pn,vn,En,yn,Tn,Cn=function(i){var e="transitionend";function t(t){var e=this,n=!1;return i(this).one(l.TRANSITION_END,function(){n=!0}),setTimeout(function(){n||l.triggerTransitionEnd(e)},t),this}var l={TRANSITION_END:"bsTransitionEnd",getUID:function(t){for(;t+=~~(1e6*Math.random()),document.getElementById(t););return t},getSelectorFromElement:function(t){var e=t.getAttribute("data-target");e&&"#"!==e||(e=t.getAttribute("href")||"");try{return 0<i(document).find(e).length?e:null}catch(t){return null}},getTransitionDurationFromElement:function(t){if(!t)return 0;var e=i(t).css("transition-duration");return parseFloat(e)?(e=e.split(",")[0],1e3*parseFloat(e)):0},reflow:function(t){return t.offsetHeight},triggerTransitionEnd:function(t){i(t).trigger(e)},supportsTransitionEnd:function(){return Boolean(e)},isElement:function(t){return(t[0]||t).nodeType},typeCheckConfig:function(t,e,n){for(var i in n)if(Object.prototype.hasOwnProperty.call(n,i)){var r=n[i],s=e[i],o=s&&l.isElement(s)?"element":(a=s,{}.toString.call(a).match(/\s([a-z]+)/i)[1].toLowerCase());if(!new RegExp(r).test(o))throw new Error(t.toUpperCase()+': Option "'+i+'" provided type "'+o+'" but expected type "'+r+'".')}var a}};return i.fn.emulateTransitionEnd=t,i.event.special[l.TRANSITION_END]={bindType:e,delegateType:e,handle:function(t){if(i(t.target).is(this))return t.handleObj.handler.apply(this,arguments)}},l}(e),In=(n="alert",a="."+(s="bs.alert"),l=(r=e).fn[n],u={CLOSE:"close"+a,CLOSED:"closed"+a,CLICK_DATA_API:"click"+a+".data-api"},f="alert",d="fade",_="show",g=function(){function i(t){this._element=t}var t=i.prototype;return t.close=function(t){t=t||this._element;var e=this._getRootElement(t);this._triggerCloseEvent(e).isDefaultPrevented()||this._removeElement(e)},t.dispose=function(){r.removeData(this._element,s),this._element=null},t._getRootElement=function(t){var e=Cn.getSelectorFromElement(t),n=!1;return e&&(n=r(e)[0]),n||(n=r(t).closest("."+f)[0]),n},t._triggerCloseEvent=function(t){var e=r.Event(u.CLOSE);return r(t).trigger(e),e},t._removeElement=function(e){var n=this;if(r(e).removeClass(_),r(e).hasClass(d)){var t=Cn.getTransitionDurationFromElement(e);r(e).one(Cn.TRANSITION_END,function(t){return n._destroyElement(e,t)}).emulateTransitionEnd(t)}else this._destroyElement(e)},t._destroyElement=function(t){r(t).detach().trigger(u.CLOSED).remove()},i._jQueryInterface=function(n){return this.each(function(){var t=r(this),e=t.data(s);e||(e=new i(this),t.data(s,e)),"close"===n&&e[n](this)})},i._handleDismiss=function(e){return function(t){t&&t.preventDefault(),e.close(this)}},o(i,null,[{key:"VERSION",get:function(){return"4.1.0"}}]),i}(),r(document).on(u.CLICK_DATA_API,'[data-dismiss="alert"]',g._handleDismiss(new g)),r.fn[n]=g._jQueryInterface,r.fn[n].Constructor=g,r.fn[n].noConflict=function(){return r.fn[n]=l,g._jQueryInterface},g),An=(p="button",E="."+(v="bs.button"),y=".data-api",T=(m=e).fn[p],C="active",I="btn",D='[data-toggle^="button"]',b='[data-toggle="buttons"]',S="input",w=".active",N=".btn",O={CLICK_DATA_API:"click"+E+y,FOCUS_BLUR_DATA_API:(A="focus")+E+y+" blur"+E+y},k=function(){function n(t){this._element=t}var t=n.prototype;return t.toggle=function(){var t=!0,e=!0,n=m(this._element).closest(b)[0];if(n){var i=m(this._element).find(S)[0];if(i){if("radio"===i.type)if(i.checked&&m(this._element).hasClass(C))t=!1;else{var r=m(n).find(w)[0];r&&m(r).removeClass(C)}if(t){if(i.hasAttribute("disabled")||n.hasAttribute("disabled")||i.classList.contains("disabled")||n.classList.contains("disabled"))return;i.checked=!m(this._element).hasClass(C),m(i).trigger("change")}i.focus(),e=!1}}e&&this._element.setAttribute("aria-pressed",!m(this._element).hasClass(C)),t&&m(this._element).toggleClass(C)},t.dispose=function(){m.removeData(this._element,v),this._element=null},n._jQueryInterface=function(e){return this.each(function(){var t=m(this).data(v);t||(t=new n(this),m(this).data(v,t)),"toggle"===e&&t[e]()})},o(n,null,[{key:"VERSION",get:function(){return"4.1.0"}}]),n}(),m(document).on(O.CLICK_DATA_API,D,function(t){t.preventDefault();var e=t.target;m(e).hasClass(I)||(e=m(e).closest(N)),k._jQueryInterface.call(m(e),"toggle")}).on(O.FOCUS_BLUR_DATA_API,D,function(t){var e=m(t.target).closest(N)[0];m(e).toggleClass(A,/^focus(in)?$/.test(t.type))}),m.fn[p]=k._jQueryInterface,m.fn[p].Constructor=k,m.fn[p].noConflict=function(){return m.fn[p]=T,k._jQueryInterface},k),Dn=(L="carousel",R="."+(j="bs.carousel"),H=".data-api",W=(P=e).fn[L],M={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0},x={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean"},U="next",K="prev",F="left",V="right",Q={SLIDE:"slide"+R,SLID:"slid"+R,KEYDOWN:"keydown"+R,MOUSEENTER:"mouseenter"+R,MOUSELEAVE:"mouseleave"+R,TOUCHEND:"touchend"+R,LOAD_DATA_API:"load"+R+H,CLICK_DATA_API:"click"+R+H},B="carousel",Y="active",G="slide",q="carousel-item-right",z="carousel-item-left",X="carousel-item-next",J="carousel-item-prev",Z={ACTIVE:".active",ACTIVE_ITEM:".active.carousel-item",ITEM:".carousel-item",NEXT_PREV:".carousel-item-next, .carousel-item-prev",INDICATORS:".carousel-indicators",DATA_SLIDE:"[data-slide], [data-slide-to]",DATA_RIDE:'[data-ride="carousel"]'},$=function(){function s(t,e){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this._config=this._getConfig(e),this._element=P(t)[0],this._indicatorsElement=P(this._element).find(Z.INDICATORS)[0],this._addEventListeners()}var t=s.prototype;return t.next=function(){this._isSliding||this._slide(U)},t.nextWhenVisible=function(){!document.hidden&&P(this._element).is(":visible")&&"hidden"!==P(this._element).css("visibility")&&this.next()},t.prev=function(){this._isSliding||this._slide(K)},t.pause=function(t){t||(this._isPaused=!0),P(this._element).find(Z.NEXT_PREV)[0]&&(Cn.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},t.cycle=function(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config.interval&&!this._isPaused&&(this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},t.to=function(t){var e=this;this._activeElement=P(this._element).find(Z.ACTIVE_ITEM)[0];var n=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)P(this._element).one(Q.SLID,function(){return e.to(t)});else{if(n===t)return this.pause(),void this.cycle();var i=n<t?U:K;this._slide(i,this._items[t])}},t.dispose=function(){P(this._element).off(R),P.removeData(this._element,j),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},t._getConfig=function(t){return t=h({},M,t),Cn.typeCheckConfig(L,t,x),t},t._addEventListeners=function(){var e=this;this._config.keyboard&&P(this._element).on(Q.KEYDOWN,function(t){return e._keydown(t)}),"hover"===this._config.pause&&(P(this._element).on(Q.MOUSEENTER,function(t){return e.pause(t)}).on(Q.MOUSELEAVE,function(t){return e.cycle(t)}),"ontouchstart"in document.documentElement&&P(this._element).on(Q.TOUCHEND,function(){e.pause(),e.touchTimeout&&clearTimeout(e.touchTimeout),e.touchTimeout=setTimeout(function(t){return e.cycle(t)},500+e._config.interval)}))},t._keydown=function(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.which){case 37:t.preventDefault(),this.prev();break;case 39:t.preventDefault(),this.next()}},t._getItemIndex=function(t){return this._items=P.makeArray(P(t).parent().find(Z.ITEM)),this._items.indexOf(t)},t._getItemByDirection=function(t,e){var n=t===U,i=t===K,r=this._getItemIndex(e),s=this._items.length-1;if((i&&0===r||n&&r===s)&&!this._config.wrap)return e;var o=(r+(t===K?-1:1))%this._items.length;return-1===o?this._items[this._items.length-1]:this._items[o]},t._triggerSlideEvent=function(t,e){var n=this._getItemIndex(t),i=this._getItemIndex(P(this._element).find(Z.ACTIVE_ITEM)[0]),r=P.Event(Q.SLIDE,{relatedTarget:t,direction:e,from:i,to:n});return P(this._element).trigger(r),r},t._setActiveIndicatorElement=function(t){if(this._indicatorsElement){P(this._indicatorsElement).find(Z.ACTIVE).removeClass(Y);var e=this._indicatorsElement.children[this._getItemIndex(t)];e&&P(e).addClass(Y)}},t._slide=function(t,e){var n,i,r,s=this,o=P(this._element).find(Z.ACTIVE_ITEM)[0],a=this._getItemIndex(o),l=e||o&&this._getItemByDirection(t,o),h=this._getItemIndex(l),c=Boolean(this._interval);if(t===U?(n=z,i=X,r=F):(n=q,i=J,r=V),l&&P(l).hasClass(Y))this._isSliding=!1;else if(!this._triggerSlideEvent(l,r).isDefaultPrevented()&&o&&l){this._isSliding=!0,c&&this.pause(),this._setActiveIndicatorElement(l);var u=P.Event(Q.SLID,{relatedTarget:l,direction:r,from:a,to:h});if(P(this._element).hasClass(G)){P(l).addClass(i),Cn.reflow(l),P(o).addClass(n),P(l).addClass(n);var f=Cn.getTransitionDurationFromElement(o);P(o).one(Cn.TRANSITION_END,function(){P(l).removeClass(n+" "+i).addClass(Y),P(o).removeClass(Y+" "+i+" "+n),s._isSliding=!1,setTimeout(function(){return P(s._element).trigger(u)},0)}).emulateTransitionEnd(f)}else P(o).removeClass(Y),P(l).addClass(Y),this._isSliding=!1,P(this._element).trigger(u);c&&this.cycle()}},s._jQueryInterface=function(i){return this.each(function(){var t=P(this).data(j),e=h({},M,P(this).data());"object"==typeof i&&(e=h({},e,i));var n="string"==typeof i?i:e.slide;if(t||(t=new s(this,e),P(this).data(j,t)),"number"==typeof i)t.to(i);else if("string"==typeof n){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n]()}else e.interval&&(t.pause(),t.cycle())})},s._dataApiClickHandler=function(t){var e=Cn.getSelectorFromElement(this);if(e){var n=P(e)[0];if(n&&P(n).hasClass(B)){var i=h({},P(n).data(),P(this).data()),r=this.getAttribute("data-slide-to");r&&(i.interval=!1),s._jQueryInterface.call(P(n),i),r&&P(n).data(j).to(r),t.preventDefault()}}},o(s,null,[{key:"VERSION",get:function(){return"4.1.0"}},{key:"Default",get:function(){return M}}]),s}(),P(document).on(Q.CLICK_DATA_API,Z.DATA_SLIDE,$._dataApiClickHandler),P(window).on(Q.LOAD_DATA_API,function(){P(Z.DATA_RIDE).each(function(){var t=P(this);$._jQueryInterface.call(t,t.data())})}),P.fn[L]=$._jQueryInterface,P.fn[L].Constructor=$,P.fn[L].noConflict=function(){return P.fn[L]=W,$._jQueryInterface},$),bn=(et="collapse",it="."+(nt="bs.collapse"),rt=(tt=e).fn[et],st={toggle:!0,parent:""},ot={toggle:"boolean",parent:"(string|element)"},at={SHOW:"show"+it,SHOWN:"shown"+it,HIDE:"hide"+it,HIDDEN:"hidden"+it,CLICK_DATA_API:"click"+it+".data-api"},lt="show",ht="collapse",ct="collapsing",ut="collapsed",ft="width",dt="height",_t={ACTIVES:".show, .collapsing",DATA_TOGGLE:'[data-toggle="collapse"]'},gt=function(){function a(t,e){this._isTransitioning=!1,this._element=t,this._config=this._getConfig(e),this._triggerArray=tt.makeArray(tt('[data-toggle="collapse"][href="#'+t.id+'"],[data-toggle="collapse"][data-target="#'+t.id+'"]'));for(var n=tt(_t.DATA_TOGGLE),i=0;i<n.length;i++){var r=n[i],s=Cn.getSelectorFromElement(r);null!==s&&0<tt(s).filter(t).length&&(this._selector=s,this._triggerArray.push(r))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}var t=a.prototype;return t.toggle=function(){tt(this._element).hasClass(lt)?this.hide():this.show()},t.show=function(){var t,e,n=this;if(!this._isTransitioning&&!tt(this._element).hasClass(lt)&&(this._parent&&0===(t=tt.makeArray(tt(this._parent).find(_t.ACTIVES).filter('[data-parent="'+this._config.parent+'"]'))).length&&(t=null),!(t&&(e=tt(t).not(this._selector).data(nt))&&e._isTransitioning))){var i=tt.Event(at.SHOW);if(tt(this._element).trigger(i),!i.isDefaultPrevented()){t&&(a._jQueryInterface.call(tt(t).not(this._selector),"hide"),e||tt(t).data(nt,null));var r=this._getDimension();tt(this._element).removeClass(ht).addClass(ct),(this._element.style[r]=0)<this._triggerArray.length&&tt(this._triggerArray).removeClass(ut).attr("aria-expanded",!0),this.setTransitioning(!0);var s="scroll"+(r[0].toUpperCase()+r.slice(1)),o=Cn.getTransitionDurationFromElement(this._element);tt(this._element).one(Cn.TRANSITION_END,function(){tt(n._element).removeClass(ct).addClass(ht).addClass(lt),n._element.style[r]="",n.setTransitioning(!1),tt(n._element).trigger(at.SHOWN)}).emulateTransitionEnd(o),this._element.style[r]=this._element[s]+"px"}}},t.hide=function(){var t=this;if(!this._isTransitioning&&tt(this._element).hasClass(lt)){var e=tt.Event(at.HIDE);if(tt(this._element).trigger(e),!e.isDefaultPrevented()){var n=this._getDimension();if(this._element.style[n]=this._element.getBoundingClientRect()[n]+"px",Cn.reflow(this._element),tt(this._element).addClass(ct).removeClass(ht).removeClass(lt),0<this._triggerArray.length)for(var i=0;i<this._triggerArray.length;i++){var r=this._triggerArray[i],s=Cn.getSelectorFromElement(r);if(null!==s)tt(s).hasClass(lt)||tt(r).addClass(ut).attr("aria-expanded",!1)}this.setTransitioning(!0);this._element.style[n]="";var o=Cn.getTransitionDurationFromElement(this._element);tt(this._element).one(Cn.TRANSITION_END,function(){t.setTransitioning(!1),tt(t._element).removeClass(ct).addClass(ht).trigger(at.HIDDEN)}).emulateTransitionEnd(o)}}},t.setTransitioning=function(t){this._isTransitioning=t},t.dispose=function(){tt.removeData(this._element,nt),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null},t._getConfig=function(t){return(t=h({},st,t)).toggle=Boolean(t.toggle),Cn.typeCheckConfig(et,t,ot),t},t._getDimension=function(){return tt(this._element).hasClass(ft)?ft:dt},t._getParent=function(){var n=this,t=null;Cn.isElement(this._config.parent)?(t=this._config.parent,"undefined"!=typeof this._config.parent.jquery&&(t=this._config.parent[0])):t=tt(this._config.parent)[0];var e='[data-toggle="collapse"][data-parent="'+this._config.parent+'"]';return tt(t).find(e).each(function(t,e){n._addAriaAndCollapsedClass(a._getTargetFromElement(e),[e])}),t},t._addAriaAndCollapsedClass=function(t,e){if(t){var n=tt(t).hasClass(lt);0<e.length&&tt(e).toggleClass(ut,!n).attr("aria-expanded",n)}},a._getTargetFromElement=function(t){var e=Cn.getSelectorFromElement(t);return e?tt(e)[0]:null},a._jQueryInterface=function(i){return this.each(function(){var t=tt(this),e=t.data(nt),n=h({},st,t.data(),"object"==typeof i&&i);if(!e&&n.toggle&&/show|hide/.test(i)&&(n.toggle=!1),e||(e=new a(this,n),t.data(nt,e)),"string"==typeof i){if("undefined"==typeof e[i])throw new TypeError('No method named "'+i+'"');e[i]()}})},o(a,null,[{key:"VERSION",get:function(){return"4.1.0"}},{key:"Default",get:function(){return st}}]),a}(),tt(document).on(at.CLICK_DATA_API,_t.DATA_TOGGLE,function(t){"A"===t.currentTarget.tagName&&t.preventDefault();var n=tt(this),e=Cn.getSelectorFromElement(this);tt(e).each(function(){var t=tt(this),e=t.data(nt)?"toggle":n.data();gt._jQueryInterface.call(t,e)})}),tt.fn[et]=gt._jQueryInterface,tt.fn[et].Constructor=gt,tt.fn[et].noConflict=function(){return tt.fn[et]=rt,gt._jQueryInterface},gt),Sn=(pt="dropdown",Et="."+(vt="bs.dropdown"),yt=".data-api",Tt=(mt=e).fn[pt],Ct=new RegExp("38|40|27"),It={HIDE:"hide"+Et,HIDDEN:"hidden"+Et,SHOW:"show"+Et,SHOWN:"shown"+Et,CLICK:"click"+Et,CLICK_DATA_API:"click"+Et+yt,KEYDOWN_DATA_API:"keydown"+Et+yt,KEYUP_DATA_API:"keyup"+Et+yt},At="disabled",Dt="show",bt="dropup",St="dropright",wt="dropleft",Nt="dropdown-menu-right",Ot="position-static",kt='[data-toggle="dropdown"]',Pt=".dropdown form",Lt=".dropdown-menu",jt=".navbar-nav",Rt=".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",Ht="top-start",Wt="top-end",Mt="bottom-start",xt="bottom-end",Ut="right-start",Kt="left-start",Ft={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic"},Vt={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string"},Qt=function(){function l(t,e){this._element=t,this._popper=null,this._config=this._getConfig(e),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners()}var t=l.prototype;return t.toggle=function(){if(!this._element.disabled&&!mt(this._element).hasClass(At)){var t=l._getParentFromElement(this._element),e=mt(this._menu).hasClass(Dt);if(l._clearMenus(),!e){var n={relatedTarget:this._element},i=mt.Event(It.SHOW,n);if(mt(t).trigger(i),!i.isDefaultPrevented()){if(!this._inNavbar){if("undefined"==typeof c)throw new TypeError("Bootstrap dropdown require Popper.js (https://popper.js.org)");var r=this._element;"parent"===this._config.reference?r=t:Cn.isElement(this._config.reference)&&(r=this._config.reference,"undefined"!=typeof this._config.reference.jquery&&(r=this._config.reference[0])),"scrollParent"!==this._config.boundary&&mt(t).addClass(Ot),this._popper=new c(r,this._menu,this._getPopperConfig())}"ontouchstart"in document.documentElement&&0===mt(t).closest(jt).length&&mt(document.body).children().on("mouseover",null,mt.noop),this._element.focus(),this._element.setAttribute("aria-expanded",!0),mt(this._menu).toggleClass(Dt),mt(t).toggleClass(Dt).trigger(mt.Event(It.SHOWN,n))}}}},t.dispose=function(){mt.removeData(this._element,vt),mt(this._element).off(Et),this._element=null,(this._menu=null)!==this._popper&&(this._popper.destroy(),this._popper=null)},t.update=function(){this._inNavbar=this._detectNavbar(),null!==this._popper&&this._popper.scheduleUpdate()},t._addEventListeners=function(){var e=this;mt(this._element).on(It.CLICK,function(t){t.preventDefault(),t.stopPropagation(),e.toggle()})},t._getConfig=function(t){return t=h({},this.constructor.Default,mt(this._element).data(),t),Cn.typeCheckConfig(pt,t,this.constructor.DefaultType),t},t._getMenuElement=function(){if(!this._menu){var t=l._getParentFromElement(this._element);this._menu=mt(t).find(Lt)[0]}return this._menu},t._getPlacement=function(){var t=mt(this._element).parent(),e=Mt;return t.hasClass(bt)?(e=Ht,mt(this._menu).hasClass(Nt)&&(e=Wt)):t.hasClass(St)?e=Ut:t.hasClass(wt)?e=Kt:mt(this._menu).hasClass(Nt)&&(e=xt),e},t._detectNavbar=function(){return 0<mt(this._element).closest(".navbar").length},t._getPopperConfig=function(){var e=this,t={};"function"==typeof this._config.offset?t.fn=function(t){return t.offsets=h({},t.offsets,e._config.offset(t.offsets)||{}),t}:t.offset=this._config.offset;var n={placement:this._getPlacement(),modifiers:{offset:t,flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(n.modifiers.applyStyle={enabled:!1}),n},l._jQueryInterface=function(e){return this.each(function(){var t=mt(this).data(vt);if(t||(t=new l(this,"object"==typeof e?e:null),mt(this).data(vt,t)),"string"==typeof e){if("undefined"==typeof t[e])throw new TypeError('No method named "'+e+'"');t[e]()}})},l._clearMenus=function(t){if(!t||3!==t.which&&("keyup"!==t.type||9===t.which))for(var e=mt.makeArray(mt(kt)),n=0;n<e.length;n++){var i=l._getParentFromElement(e[n]),r=mt(e[n]).data(vt),s={relatedTarget:e[n]};if(r){var o=r._menu;if(mt(i).hasClass(Dt)&&!(t&&("click"===t.type&&/input|textarea/i.test(t.target.tagName)||"keyup"===t.type&&9===t.which)&&mt.contains(i,t.target))){var a=mt.Event(It.HIDE,s);mt(i).trigger(a),a.isDefaultPrevented()||("ontouchstart"in document.documentElement&&mt(document.body).children().off("mouseover",null,mt.noop),e[n].setAttribute("aria-expanded","false"),mt(o).removeClass(Dt),mt(i).removeClass(Dt).trigger(mt.Event(It.HIDDEN,s)))}}}},l._getParentFromElement=function(t){var e,n=Cn.getSelectorFromElement(t);return n&&(e=mt(n)[0]),e||t.parentNode},l._dataApiKeydownHandler=function(t){if((/input|textarea/i.test(t.target.tagName)?!(32===t.which||27!==t.which&&(40!==t.which&&38!==t.which||mt(t.target).closest(Lt).length)):Ct.test(t.which))&&(t.preventDefault(),t.stopPropagation(),!this.disabled&&!mt(this).hasClass(At))){var e=l._getParentFromElement(this),n=mt(e).hasClass(Dt);if((n||27===t.which&&32===t.which)&&(!n||27!==t.which&&32!==t.which)){var i=mt(e).find(Rt).get();if(0!==i.length){var r=i.indexOf(t.target);38===t.which&&0<r&&r--,40===t.which&&r<i.length-1&&r++,r<0&&(r=0),i[r].focus()}}else{if(27===t.which){var s=mt(e).find(kt)[0];mt(s).trigger("focus")}mt(this).trigger("click")}}},o(l,null,[{key:"VERSION",get:function(){return"4.1.0"}},{key:"Default",get:function(){return Ft}},{key:"DefaultType",get:function(){return Vt}}]),l}(),mt(document).on(It.KEYDOWN_DATA_API,kt,Qt._dataApiKeydownHandler).on(It.KEYDOWN_DATA_API,Lt,Qt._dataApiKeydownHandler).on(It.CLICK_DATA_API+" "+It.KEYUP_DATA_API,Qt._clearMenus).on(It.CLICK_DATA_API,kt,function(t){t.preventDefault(),t.stopPropagation(),Qt._jQueryInterface.call(mt(this),"toggle")}).on(It.CLICK_DATA_API,Pt,function(t){t.stopPropagation()}),mt.fn[pt]=Qt._jQueryInterface,mt.fn[pt].Constructor=Qt,mt.fn[pt].noConflict=function(){return mt.fn[pt]=Tt,Qt._jQueryInterface},Qt),wn=(Yt="modal",qt="."+(Gt="bs.modal"),zt=(Bt=e).fn[Yt],Xt={backdrop:!0,keyboard:!0,focus:!0,show:!0},Jt={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},Zt={HIDE:"hide"+qt,HIDDEN:"hidden"+qt,SHOW:"show"+qt,SHOWN:"shown"+qt,FOCUSIN:"focusin"+qt,RESIZE:"resize"+qt,CLICK_DISMISS:"click.dismiss"+qt,KEYDOWN_DISMISS:"keydown.dismiss"+qt,MOUSEUP_DISMISS:"mouseup.dismiss"+qt,MOUSEDOWN_DISMISS:"mousedown.dismiss"+qt,CLICK_DATA_API:"click"+qt+".data-api"},$t="modal-scrollbar-measure",te="modal-backdrop",ee="modal-open",ne="fade",ie="show",re={DIALOG:".modal-dialog",DATA_TOGGLE:'[data-toggle="modal"]',DATA_DISMISS:'[data-dismiss="modal"]',FIXED_CONTENT:".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",STICKY_CONTENT:".sticky-top",NAVBAR_TOGGLER:".navbar-toggler"},se=function(){function r(t,e){this._config=this._getConfig(e),this._element=t,this._dialog=Bt(t).find(re.DIALOG)[0],this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._scrollbarWidth=0}var t=r.prototype;return t.toggle=function(t){return this._isShown?this.hide():this.show(t)},t.show=function(t){var e=this;if(!this._isTransitioning&&!this._isShown){Bt(this._element).hasClass(ne)&&(this._isTransitioning=!0);var n=Bt.Event(Zt.SHOW,{relatedTarget:t});Bt(this._element).trigger(n),this._isShown||n.isDefaultPrevented()||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),Bt(document.body).addClass(ee),this._setEscapeEvent(),this._setResizeEvent(),Bt(this._element).on(Zt.CLICK_DISMISS,re.DATA_DISMISS,function(t){return e.hide(t)}),Bt(this._dialog).on(Zt.MOUSEDOWN_DISMISS,function(){Bt(e._element).one(Zt.MOUSEUP_DISMISS,function(t){Bt(t.target).is(e._element)&&(e._ignoreBackdropClick=!0)})}),this._showBackdrop(function(){return e._showElement(t)}))}},t.hide=function(t){var e=this;if(t&&t.preventDefault(),!this._isTransitioning&&this._isShown){var n=Bt.Event(Zt.HIDE);if(Bt(this._element).trigger(n),this._isShown&&!n.isDefaultPrevented()){this._isShown=!1;var i=Bt(this._element).hasClass(ne);if(i&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),Bt(document).off(Zt.FOCUSIN),Bt(this._element).removeClass(ie),Bt(this._element).off(Zt.CLICK_DISMISS),Bt(this._dialog).off(Zt.MOUSEDOWN_DISMISS),i){var r=Cn.getTransitionDurationFromElement(this._element);Bt(this._element).one(Cn.TRANSITION_END,function(t){return e._hideModal(t)}).emulateTransitionEnd(r)}else this._hideModal()}}},t.dispose=function(){Bt.removeData(this._element,Gt),Bt(window,document,this._element,this._backdrop).off(qt),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._scrollbarWidth=null},t.handleUpdate=function(){this._adjustDialog()},t._getConfig=function(t){return t=h({},Xt,t),Cn.typeCheckConfig(Yt,t,Jt),t},t._showElement=function(t){var e=this,n=Bt(this._element).hasClass(ne);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.scrollTop=0,n&&Cn.reflow(this._element),Bt(this._element).addClass(ie),this._config.focus&&this._enforceFocus();var i=Bt.Event(Zt.SHOWN,{relatedTarget:t}),r=function(){e._config.focus&&e._element.focus(),e._isTransitioning=!1,Bt(e._element).trigger(i)};if(n){var s=Cn.getTransitionDurationFromElement(this._element);Bt(this._dialog).one(Cn.TRANSITION_END,r).emulateTransitionEnd(s)}else r()},t._enforceFocus=function(){var e=this;Bt(document).off(Zt.FOCUSIN).on(Zt.FOCUSIN,function(t){document!==t.target&&e._element!==t.target&&0===Bt(e._element).has(t.target).length&&e._element.focus()})},t._setEscapeEvent=function(){var e=this;this._isShown&&this._config.keyboard?Bt(this._element).on(Zt.KEYDOWN_DISMISS,function(t){27===t.which&&(t.preventDefault(),e.hide())}):this._isShown||Bt(this._element).off(Zt.KEYDOWN_DISMISS)},t._setResizeEvent=function(){var e=this;this._isShown?Bt(window).on(Zt.RESIZE,function(t){return e.handleUpdate(t)}):Bt(window).off(Zt.RESIZE)},t._hideModal=function(){var t=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._isTransitioning=!1,this._showBackdrop(function(){Bt(document.body).removeClass(ee),t._resetAdjustments(),t._resetScrollbar(),Bt(t._element).trigger(Zt.HIDDEN)})},t._removeBackdrop=function(){this._backdrop&&(Bt(this._backdrop).remove(),this._backdrop=null)},t._showBackdrop=function(t){var e=this,n=Bt(this._element).hasClass(ne)?ne:"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className=te,n&&Bt(this._backdrop).addClass(n),Bt(this._backdrop).appendTo(document.body),Bt(this._element).on(Zt.CLICK_DISMISS,function(t){e._ignoreBackdropClick?e._ignoreBackdropClick=!1:t.target===t.currentTarget&&("static"===e._config.backdrop?e._element.focus():e.hide())}),n&&Cn.reflow(this._backdrop),Bt(this._backdrop).addClass(ie),!t)return;if(!n)return void t();var i=Cn.getTransitionDurationFromElement(this._backdrop);Bt(this._backdrop).one(Cn.TRANSITION_END,t).emulateTransitionEnd(i)}else if(!this._isShown&&this._backdrop){Bt(this._backdrop).removeClass(ie);var r=function(){e._removeBackdrop(),t&&t()};if(Bt(this._element).hasClass(ne)){var s=Cn.getTransitionDurationFromElement(this._backdrop);Bt(this._backdrop).one(Cn.TRANSITION_END,r).emulateTransitionEnd(s)}else r()}else t&&t()},t._adjustDialog=function(){var t=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},t._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},t._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=t.left+t.right<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},t._setScrollbar=function(){var r=this;if(this._isBodyOverflowing){Bt(re.FIXED_CONTENT).each(function(t,e){var n=Bt(e)[0].style.paddingRight,i=Bt(e).css("padding-right");Bt(e).data("padding-right",n).css("padding-right",parseFloat(i)+r._scrollbarWidth+"px")}),Bt(re.STICKY_CONTENT).each(function(t,e){var n=Bt(e)[0].style.marginRight,i=Bt(e).css("margin-right");Bt(e).data("margin-right",n).css("margin-right",parseFloat(i)-r._scrollbarWidth+"px")}),Bt(re.NAVBAR_TOGGLER).each(function(t,e){var n=Bt(e)[0].style.marginRight,i=Bt(e).css("margin-right");Bt(e).data("margin-right",n).css("margin-right",parseFloat(i)+r._scrollbarWidth+"px")});var t=document.body.style.paddingRight,e=Bt(document.body).css("padding-right");Bt(document.body).data("padding-right",t).css("padding-right",parseFloat(e)+this._scrollbarWidth+"px")}},t._resetScrollbar=function(){Bt(re.FIXED_CONTENT).each(function(t,e){var n=Bt(e).data("padding-right");"undefined"!=typeof n&&Bt(e).css("padding-right",n).removeData("padding-right")}),Bt(re.STICKY_CONTENT+", "+re.NAVBAR_TOGGLER).each(function(t,e){var n=Bt(e).data("margin-right");"undefined"!=typeof n&&Bt(e).css("margin-right",n).removeData("margin-right")});var t=Bt(document.body).data("padding-right");"undefined"!=typeof t&&Bt(document.body).css("padding-right",t).removeData("padding-right")},t._getScrollbarWidth=function(){var t=document.createElement("div");t.className=$t,document.body.appendChild(t);var e=t.getBoundingClientRect().width-t.clientWidth;return document.body.removeChild(t),e},r._jQueryInterface=function(n,i){return this.each(function(){var t=Bt(this).data(Gt),e=h({},r.Default,Bt(this).data(),"object"==typeof n&&n);if(t||(t=new r(this,e),Bt(this).data(Gt,t)),"string"==typeof n){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n](i)}else e.show&&t.show(i)})},o(r,null,[{key:"VERSION",get:function(){return"4.1.0"}},{key:"Default",get:function(){return Xt}}]),r}(),Bt(document).on(Zt.CLICK_DATA_API,re.DATA_TOGGLE,function(t){var e,n=this,i=Cn.getSelectorFromElement(this);i&&(e=Bt(i)[0]);var r=Bt(e).data(Gt)?"toggle":h({},Bt(e).data(),Bt(this).data());"A"!==this.tagName&&"AREA"!==this.tagName||t.preventDefault();var s=Bt(e).one(Zt.SHOW,function(t){t.isDefaultPrevented()||s.one(Zt.HIDDEN,function(){Bt(n).is(":visible")&&n.focus()})});se._jQueryInterface.call(Bt(e),r,this)}),Bt.fn[Yt]=se._jQueryInterface,Bt.fn[Yt].Constructor=se,Bt.fn[Yt].noConflict=function(){return Bt.fn[Yt]=zt,se._jQueryInterface},se),Nn=(ae="tooltip",he="."+(le="bs.tooltip"),ce=(oe=e).fn[ae],ue="bs-tooltip",fe=new RegExp("(^|\\s)"+ue+"\\S+","g"),ge={animation:!0,template:'<div class="tooltip" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!(_e={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"}),selector:!(de={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)"}),placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent"},pe="out",ve={HIDE:"hide"+he,HIDDEN:"hidden"+he,SHOW:(me="show")+he,SHOWN:"shown"+he,INSERTED:"inserted"+he,CLICK:"click"+he,FOCUSIN:"focusin"+he,FOCUSOUT:"focusout"+he,MOUSEENTER:"mouseenter"+he,MOUSELEAVE:"mouseleave"+he},Ee="fade",ye="show",Te=".tooltip-inner",Ce=".arrow",Ie="hover",Ae="focus",De="click",be="manual",Se=function(){function i(t,e){if("undefined"==typeof c)throw new TypeError("Bootstrap tooltips require Popper.js (https://popper.js.org)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()}var t=i.prototype;return t.enable=function(){this._isEnabled=!0},t.disable=function(){this._isEnabled=!1},t.toggleEnabled=function(){this._isEnabled=!this._isEnabled},t.toggle=function(t){if(this._isEnabled)if(t){var e=this.constructor.DATA_KEY,n=oe(t.currentTarget).data(e);n||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),oe(t.currentTarget).data(e,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(oe(this.getTipElement()).hasClass(ye))return void this._leave(null,this);this._enter(null,this)}},t.dispose=function(){clearTimeout(this._timeout),oe.removeData(this.element,this.constructor.DATA_KEY),oe(this.element).off(this.constructor.EVENT_KEY),oe(this.element).closest(".modal").off("hide.bs.modal"),this.tip&&oe(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,(this._activeTrigger=null)!==this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},t.show=function(){var e=this;if("none"===oe(this.element).css("display"))throw new Error("Please use show on visible elements");var t=oe.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){oe(this.element).trigger(t);var n=oe.contains(this.element.ownerDocument.documentElement,this.element);if(t.isDefaultPrevented()||!n)return;var i=this.getTipElement(),r=Cn.getUID(this.constructor.NAME);i.setAttribute("id",r),this.element.setAttribute("aria-describedby",r),this.setContent(),this.config.animation&&oe(i).addClass(Ee);var s="function"==typeof this.config.placement?this.config.placement.call(this,i,this.element):this.config.placement,o=this._getAttachment(s);this.addAttachmentClass(o);var a=!1===this.config.container?document.body:oe(this.config.container);oe(i).data(this.constructor.DATA_KEY,this),oe.contains(this.element.ownerDocument.documentElement,this.tip)||oe(i).appendTo(a),oe(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new c(this.element,i,{placement:o,modifiers:{offset:{offset:this.config.offset},flip:{behavior:this.config.fallbackPlacement},arrow:{element:Ce},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){e._handlePopperPlacementChange(t)}}),oe(i).addClass(ye),"ontouchstart"in document.documentElement&&oe(document.body).children().on("mouseover",null,oe.noop);var l=function(){e.config.animation&&e._fixTransition();var t=e._hoverState;e._hoverState=null,oe(e.element).trigger(e.constructor.Event.SHOWN),t===pe&&e._leave(null,e)};if(oe(this.tip).hasClass(Ee)){var h=Cn.getTransitionDurationFromElement(this.tip);oe(this.tip).one(Cn.TRANSITION_END,l).emulateTransitionEnd(h)}else l()}},t.hide=function(t){var e=this,n=this.getTipElement(),i=oe.Event(this.constructor.Event.HIDE),r=function(){e._hoverState!==me&&n.parentNode&&n.parentNode.removeChild(n),e._cleanTipClass(),e.element.removeAttribute("aria-describedby"),oe(e.element).trigger(e.constructor.Event.HIDDEN),null!==e._popper&&e._popper.destroy(),t&&t()};if(oe(this.element).trigger(i),!i.isDefaultPrevented()){if(oe(n).removeClass(ye),"ontouchstart"in document.documentElement&&oe(document.body).children().off("mouseover",null,oe.noop),this._activeTrigger[De]=!1,this._activeTrigger[Ae]=!1,this._activeTrigger[Ie]=!1,oe(this.tip).hasClass(Ee)){var s=Cn.getTransitionDurationFromElement(n);oe(n).one(Cn.TRANSITION_END,r).emulateTransitionEnd(s)}else r();this._hoverState=""}},t.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},t.isWithContent=function(){return Boolean(this.getTitle())},t.addAttachmentClass=function(t){oe(this.getTipElement()).addClass(ue+"-"+t)},t.getTipElement=function(){return this.tip=this.tip||oe(this.config.template)[0],this.tip},t.setContent=function(){var t=oe(this.getTipElement());this.setElementContent(t.find(Te),this.getTitle()),t.removeClass(Ee+" "+ye)},t.setElementContent=function(t,e){var n=this.config.html;"object"==typeof e&&(e.nodeType||e.jquery)?n?oe(e).parent().is(t)||t.empty().append(e):t.text(oe(e).text()):t[n?"html":"text"](e)},t.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},t._getAttachment=function(t){return _e[t.toUpperCase()]},t._setListeners=function(){var i=this;this.config.trigger.split(" ").forEach(function(t){if("click"===t)oe(i.element).on(i.constructor.Event.CLICK,i.config.selector,function(t){return i.toggle(t)});else if(t!==be){var e=t===Ie?i.constructor.Event.MOUSEENTER:i.constructor.Event.FOCUSIN,n=t===Ie?i.constructor.Event.MOUSELEAVE:i.constructor.Event.FOCUSOUT;oe(i.element).on(e,i.config.selector,function(t){return i._enter(t)}).on(n,i.config.selector,function(t){return i._leave(t)})}oe(i.element).closest(".modal").on("hide.bs.modal",function(){return i.hide()})}),this.config.selector?this.config=h({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},t._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},t._enter=function(t,e){var n=this.constructor.DATA_KEY;(e=e||oe(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),oe(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusin"===t.type?Ae:Ie]=!0),oe(e.getTipElement()).hasClass(ye)||e._hoverState===me?e._hoverState=me:(clearTimeout(e._timeout),e._hoverState=me,e.config.delay&&e.config.delay.show?e._timeout=setTimeout(function(){e._hoverState===me&&e.show()},e.config.delay.show):e.show())},t._leave=function(t,e){var n=this.constructor.DATA_KEY;(e=e||oe(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),oe(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusout"===t.type?Ae:Ie]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState=pe,e.config.delay&&e.config.delay.hide?e._timeout=setTimeout(function(){e._hoverState===pe&&e.hide()},e.config.delay.hide):e.hide())},t._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},t._getConfig=function(t){return"number"==typeof(t=h({},this.constructor.Default,oe(this.element).data(),t)).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),Cn.typeCheckConfig(ae,t,this.constructor.DefaultType),t},t._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},t._cleanTipClass=function(){var t=oe(this.getTipElement()),e=t.attr("class").match(fe);null!==e&&0<e.length&&t.removeClass(e.join(""))},t._handlePopperPlacementChange=function(t){this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},t._fixTransition=function(){var t=this.getTipElement(),e=this.config.animation;null===t.getAttribute("x-placement")&&(oe(t).removeClass(Ee),this.config.animation=!1,this.hide(),this.show(),this.config.animation=e)},i._jQueryInterface=function(n){return this.each(function(){var t=oe(this).data(le),e="object"==typeof n&&n;if((t||!/dispose|hide/.test(n))&&(t||(t=new i(this,e),oe(this).data(le,t)),"string"==typeof n)){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n]()}})},o(i,null,[{key:"VERSION",get:function(){return"4.1.0"}},{key:"Default",get:function(){return ge}},{key:"NAME",get:function(){return ae}},{key:"DATA_KEY",get:function(){return le}},{key:"Event",get:function(){return ve}},{key:"EVENT_KEY",get:function(){return he}},{key:"DefaultType",get:function(){return de}}]),i}(),oe.fn[ae]=Se._jQueryInterface,oe.fn[ae].Constructor=Se,oe.fn[ae].noConflict=function(){return oe.fn[ae]=ce,Se._jQueryInterface},Se),On=(Ne="popover",ke="."+(Oe="bs.popover"),Pe=(we=e).fn[Ne],Le="bs-popover",je=new RegExp("(^|\\s)"+Le+"\\S+","g"),Re=h({},Nn.Default,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'}),He=h({},Nn.DefaultType,{content:"(string|element|function)"}),We="fade",xe=".popover-header",Ue=".popover-body",Ke={HIDE:"hide"+ke,HIDDEN:"hidden"+ke,SHOW:(Me="show")+ke,SHOWN:"shown"+ke,INSERTED:"inserted"+ke,CLICK:"click"+ke,FOCUSIN:"focusin"+ke,FOCUSOUT:"focusout"+ke,MOUSEENTER:"mouseenter"+ke,MOUSELEAVE:"mouseleave"+ke},Fe=function(t){var e,n;function i(){return t.apply(this,arguments)||this}n=t,(e=i).prototype=Object.create(n.prototype),(e.prototype.constructor=e).__proto__=n;var r=i.prototype;return r.isWithContent=function(){return this.getTitle()||this._getContent()},r.addAttachmentClass=function(t){we(this.getTipElement()).addClass(Le+"-"+t)},r.getTipElement=function(){return this.tip=this.tip||we(this.config.template)[0],this.tip},r.setContent=function(){var t=we(this.getTipElement());this.setElementContent(t.find(xe),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent(t.find(Ue),e),t.removeClass(We+" "+Me)},r._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},r._cleanTipClass=function(){var t=we(this.getTipElement()),e=t.attr("class").match(je);null!==e&&0<e.length&&t.removeClass(e.join(""))},i._jQueryInterface=function(n){return this.each(function(){var t=we(this).data(Oe),e="object"==typeof n?n:null;if((t||!/destroy|hide/.test(n))&&(t||(t=new i(this,e),we(this).data(Oe,t)),"string"==typeof n)){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n]()}})},o(i,null,[{key:"VERSION",get:function(){return"4.1.0"}},{key:"Default",get:function(){return Re}},{key:"NAME",get:function(){return Ne}},{key:"DATA_KEY",get:function(){return Oe}},{key:"Event",get:function(){return Ke}},{key:"EVENT_KEY",get:function(){return ke}},{key:"DefaultType",get:function(){return He}}]),i}(Nn),we.fn[Ne]=Fe._jQueryInterface,we.fn[Ne].Constructor=Fe,we.fn[Ne].noConflict=function(){return we.fn[Ne]=Pe,Fe._jQueryInterface},Fe),kn=(Qe="scrollspy",Ye="."+(Be="bs.scrollspy"),Ge=(Ve=e).fn[Qe],qe={offset:10,method:"auto",target:""},ze={offset:"number",method:"string",target:"(string|element)"},Xe={ACTIVATE:"activate"+Ye,SCROLL:"scroll"+Ye,LOAD_DATA_API:"load"+Ye+".data-api"},Je="dropdown-item",Ze="active",$e={DATA_SPY:'[data-spy="scroll"]',ACTIVE:".active",NAV_LIST_GROUP:".nav, .list-group",NAV_LINKS:".nav-link",NAV_ITEMS:".nav-item",LIST_ITEMS:".list-group-item",DROPDOWN:".dropdown",DROPDOWN_ITEMS:".dropdown-item",DROPDOWN_TOGGLE:".dropdown-toggle"},tn="offset",en="position",nn=function(){function n(t,e){var n=this;this._element=t,this._scrollElement="BODY"===t.tagName?window:t,this._config=this._getConfig(e),this._selector=this._config.target+" "+$e.NAV_LINKS+","+this._config.target+" "+$e.LIST_ITEMS+","+this._config.target+" "+$e.DROPDOWN_ITEMS,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,Ve(this._scrollElement).on(Xe.SCROLL,function(t){return n._process(t)}),this.refresh(),this._process()}var t=n.prototype;return t.refresh=function(){var e=this,t=this._scrollElement===this._scrollElement.window?tn:en,r="auto"===this._config.method?t:this._config.method,s=r===en?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),Ve.makeArray(Ve(this._selector)).map(function(t){var e,n=Cn.getSelectorFromElement(t);if(n&&(e=Ve(n)[0]),e){var i=e.getBoundingClientRect();if(i.width||i.height)return[Ve(e)[r]().top+s,n]}return null}).filter(function(t){return t}).sort(function(t,e){return t[0]-e[0]}).forEach(function(t){e._offsets.push(t[0]),e._targets.push(t[1])})},t.dispose=function(){Ve.removeData(this._element,Be),Ve(this._scrollElement).off(Ye),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},t._getConfig=function(t){if("string"!=typeof(t=h({},qe,t)).target){var e=Ve(t.target).attr("id");e||(e=Cn.getUID(Qe),Ve(t.target).attr("id",e)),t.target="#"+e}return Cn.typeCheckConfig(Qe,t,ze),t},t._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},t._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},t._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},t._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),n<=t){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&t<this._offsets[0]&&0<this._offsets[0])return this._activeTarget=null,void this._clear();for(var r=this._offsets.length;r--;){this._activeTarget!==this._targets[r]&&t>=this._offsets[r]&&("undefined"==typeof this._offsets[r+1]||t<this._offsets[r+1])&&this._activate(this._targets[r])}}},t._activate=function(e){this._activeTarget=e,this._clear();var t=this._selector.split(",");t=t.map(function(t){return t+'[data-target="'+e+'"],'+t+'[href="'+e+'"]'});var n=Ve(t.join(","));n.hasClass(Je)?(n.closest($e.DROPDOWN).find($e.DROPDOWN_TOGGLE).addClass(Ze),n.addClass(Ze)):(n.addClass(Ze),n.parents($e.NAV_LIST_GROUP).prev($e.NAV_LINKS+", "+$e.LIST_ITEMS).addClass(Ze),n.parents($e.NAV_LIST_GROUP).prev($e.NAV_ITEMS).children($e.NAV_LINKS).addClass(Ze)),Ve(this._scrollElement).trigger(Xe.ACTIVATE,{relatedTarget:e})},t._clear=function(){Ve(this._selector).filter($e.ACTIVE).removeClass(Ze)},n._jQueryInterface=function(e){return this.each(function(){var t=Ve(this).data(Be);if(t||(t=new n(this,"object"==typeof e&&e),Ve(this).data(Be,t)),"string"==typeof e){if("undefined"==typeof t[e])throw new TypeError('No method named "'+e+'"');t[e]()}})},o(n,null,[{key:"VERSION",get:function(){return"4.1.0"}},{key:"Default",get:function(){return qe}}]),n}(),Ve(window).on(Xe.LOAD_DATA_API,function(){for(var t=Ve.makeArray(Ve($e.DATA_SPY)),e=t.length;e--;){var n=Ve(t[e]);nn._jQueryInterface.call(n,n.data())}}),Ve.fn[Qe]=nn._jQueryInterface,Ve.fn[Qe].Constructor=nn,Ve.fn[Qe].noConflict=function(){return Ve.fn[Qe]=Ge,nn._jQueryInterface},nn),Pn=(on="."+(sn="bs.tab"),an=(rn=e).fn.tab,ln={HIDE:"hide"+on,HIDDEN:"hidden"+on,SHOW:"show"+on,SHOWN:"shown"+on,CLICK_DATA_API:"click"+on+".data-api"},hn="dropdown-menu",cn="active",un="disabled",fn="fade",dn="show",_n=".dropdown",gn=".nav, .list-group",mn=".active",pn="> li > .active",vn='[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',En=".dropdown-toggle",yn="> .dropdown-menu .active",Tn=function(){function i(t){this._element=t}var t=i.prototype;return t.show=function(){var n=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&rn(this._element).hasClass(cn)||rn(this._element).hasClass(un))){var t,i,e=rn(this._element).closest(gn)[0],r=Cn.getSelectorFromElement(this._element);if(e){var s="UL"===e.nodeName?pn:mn;i=(i=rn.makeArray(rn(e).find(s)))[i.length-1]}var o=rn.Event(ln.HIDE,{relatedTarget:this._element}),a=rn.Event(ln.SHOW,{relatedTarget:i});if(i&&rn(i).trigger(o),rn(this._element).trigger(a),!a.isDefaultPrevented()&&!o.isDefaultPrevented()){r&&(t=rn(r)[0]),this._activate(this._element,e);var l=function(){var t=rn.Event(ln.HIDDEN,{relatedTarget:n._element}),e=rn.Event(ln.SHOWN,{relatedTarget:i});rn(i).trigger(t),rn(n._element).trigger(e)};t?this._activate(t,t.parentNode,l):l()}}},t.dispose=function(){rn.removeData(this._element,sn),this._element=null},t._activate=function(t,e,n){var i=this,r=("UL"===e.nodeName?rn(e).find(pn):rn(e).children(mn))[0],s=n&&r&&rn(r).hasClass(fn),o=function(){return i._transitionComplete(t,r,n)};if(r&&s){var a=Cn.getTransitionDurationFromElement(r);rn(r).one(Cn.TRANSITION_END,o).emulateTransitionEnd(a)}else o()},t._transitionComplete=function(t,e,n){if(e){rn(e).removeClass(dn+" "+cn);var i=rn(e.parentNode).find(yn)[0];i&&rn(i).removeClass(cn),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}if(rn(t).addClass(cn),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),Cn.reflow(t),rn(t).addClass(dn),t.parentNode&&rn(t.parentNode).hasClass(hn)){var r=rn(t).closest(_n)[0];r&&rn(r).find(En).addClass(cn),t.setAttribute("aria-expanded",!0)}n&&n()},i._jQueryInterface=function(n){return this.each(function(){var t=rn(this),e=t.data(sn);if(e||(e=new i(this),t.data(sn,e)),"string"==typeof n){if("undefined"==typeof e[n])throw new TypeError('No method named "'+n+'"');e[n]()}})},o(i,null,[{key:"VERSION",get:function(){return"4.1.0"}}]),i}(),rn(document).on(ln.CLICK_DATA_API,vn,function(t){t.preventDefault(),Tn._jQueryInterface.call(rn(this),"show")}),rn.fn.tab=Tn._jQueryInterface,rn.fn.tab.Constructor=Tn,rn.fn.tab.noConflict=function(){return rn.fn.tab=an,Tn._jQueryInterface},Tn);!function(t){if("undefined"==typeof t)throw new TypeError("Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript.");var e=t.fn.jquery.split(" ")[0].split(".");if(e[0]<2&&e[1]<9||1===e[0]&&9===e[1]&&e[2]<1||4<=e[0])throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")}(e),t.Util=Cn,t.Alert=In,t.Button=An,t.Carousel=Dn,t.Collapse=bn,t.Dropdown=Sn,t.Modal=wn,t.Popover=On,t.Scrollspy=kn,t.Tab=Pn,t.Tooltip=Nn,Object.defineProperty(t,"__esModule",{value:!0})}); -//# sourceMappingURL=bootstrap.min.js.map \ No newline at end of file + * Bootstrap v4.1.0 (https://getbootstrap.com/) + * Copyright 2011-2018 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ +!(function (t, e) { + 'object' == typeof exports && 'undefined' != typeof module + ? e(exports, require('jquery'), require('popper.js')) + : 'function' == typeof define && define.amd + ? define(['exports', 'jquery', 'popper.js'], e) + : e((t.bootstrap = {}), t.jQuery, t.Popper) +})(this, function (t, e, c) { + 'use strict' + function i(t, e) { + for (var n = 0; n < e.length; n++) { + var i = e[n] + ;((i.enumerable = i.enumerable || !1), (i.configurable = !0), 'value' in i && (i.writable = !0), Object.defineProperty(t, i.key, i)) + } + } + function o(t, e, n) { + return (e && i(t.prototype, e), n && i(t, n), t) + } + function h(r) { + for (var t = 1; t < arguments.length; t++) { + var s = null != arguments[t] ? arguments[t] : {}, + e = Object.keys(s) + ;('function' == typeof Object.getOwnPropertySymbols && + (e = e.concat( + Object.getOwnPropertySymbols(s).filter(function (t) { + return Object.getOwnPropertyDescriptor(s, t).enumerable + }), + )), + e.forEach(function (t) { + var e, n, i + ;((e = r), + (i = s[(n = t)]), + n in e ? Object.defineProperty(e, n, { value: i, enumerable: !0, configurable: !0, writable: !0 }) : (e[n] = i)) + })) + } + return r + } + ;((e = e && e.hasOwnProperty('default') ? e.default : e), (c = c && c.hasOwnProperty('default') ? c.default : c)) + var r, + n, + s, + a, + l, + u, + f, + d, + _, + g, + m, + p, + v, + E, + y, + T, + C, + I, + A, + D, + b, + S, + w, + N, + O, + k, + P, + L, + j, + R, + H, + W, + M, + x, + U, + K, + F, + V, + Q, + B, + Y, + G, + q, + z, + X, + J, + Z, + $, + tt, + et, + nt, + it, + rt, + st, + ot, + at, + lt, + ht, + ct, + ut, + ft, + dt, + _t, + gt, + mt, + pt, + vt, + Et, + yt, + Tt, + Ct, + It, + At, + Dt, + bt, + St, + wt, + Nt, + Ot, + kt, + Pt, + Lt, + jt, + Rt, + Ht, + Wt, + Mt, + xt, + Ut, + Kt, + Ft, + Vt, + Qt, + Bt, + Yt, + Gt, + qt, + zt, + Xt, + Jt, + Zt, + $t, + te, + ee, + ne, + ie, + re, + se, + oe, + ae, + le, + he, + ce, + ue, + fe, + de, + _e, + ge, + me, + pe, + ve, + Ee, + ye, + Te, + Ce, + Ie, + Ae, + De, + be, + Se, + we, + Ne, + Oe, + ke, + Pe, + Le, + je, + Re, + He, + We, + Me, + xe, + Ue, + Ke, + Fe, + Ve, + Qe, + Be, + Ye, + Ge, + qe, + ze, + Xe, + Je, + Ze, + $e, + tn, + en, + nn, + rn, + sn, + on, + an, + ln, + hn, + cn, + un, + fn, + dn, + _n, + gn, + mn, + pn, + vn, + En, + yn, + Tn, + Cn = (function (i) { + var e = 'transitionend' + function t(t) { + var e = this, + n = !1 + return ( + i(this).one(l.TRANSITION_END, function () { + n = !0 + }), + setTimeout(function () { + n || l.triggerTransitionEnd(e) + }, t), + this + ) + } + var l = { + TRANSITION_END: 'bsTransitionEnd', + getUID: function (t) { + for (; (t += ~~(1e6 * Math.random())), document.getElementById(t); ); + return t + }, + getSelectorFromElement: function (t) { + var e = t.getAttribute('data-target') + ;(e && '#' !== e) || (e = t.getAttribute('href') || '') + try { + return 0 < i(document).find(e).length ? e : null + } catch (t) { + return null + } + }, + getTransitionDurationFromElement: function (t) { + if (!t) return 0 + var e = i(t).css('transition-duration') + return parseFloat(e) ? ((e = e.split(',')[0]), 1e3 * parseFloat(e)) : 0 + }, + reflow: function (t) { + return t.offsetHeight + }, + triggerTransitionEnd: function (t) { + i(t).trigger(e) + }, + supportsTransitionEnd: function () { + return Boolean(e) + }, + isElement: function (t) { + return (t[0] || t).nodeType + }, + typeCheckConfig: function (t, e, n) { + for (var i in n) + if (Object.prototype.hasOwnProperty.call(n, i)) { + var r = n[i], + s = e[i], + o = + s && l.isElement(s) + ? 'element' + : ((a = s), + {}.toString + .call(a) + .match(/\s([a-z]+)/i)[1] + .toLowerCase()) + if (!new RegExp(r).test(o)) + throw new Error(t.toUpperCase() + ': Option "' + i + '" provided type "' + o + '" but expected type "' + r + '".') + } + var a + }, + } + return ( + (i.fn.emulateTransitionEnd = t), + (i.event.special[l.TRANSITION_END] = { + bindType: e, + delegateType: e, + handle: function (t) { + if (i(t.target).is(this)) return t.handleObj.handler.apply(this, arguments) + }, + }), + l + ) + })(e), + In = + ((n = 'alert'), + (a = '.' + (s = 'bs.alert')), + (l = (r = e).fn[n]), + (u = { CLOSE: 'close' + a, CLOSED: 'closed' + a, CLICK_DATA_API: 'click' + a + '.data-api' }), + (f = 'alert'), + (d = 'fade'), + (_ = 'show'), + (g = (function () { + function i(t) { + this._element = t + } + var t = i.prototype + return ( + (t.close = function (t) { + t = t || this._element + var e = this._getRootElement(t) + this._triggerCloseEvent(e).isDefaultPrevented() || this._removeElement(e) + }), + (t.dispose = function () { + ;(r.removeData(this._element, s), (this._element = null)) + }), + (t._getRootElement = function (t) { + var e = Cn.getSelectorFromElement(t), + n = !1 + return (e && (n = r(e)[0]), n || (n = r(t).closest('.' + f)[0]), n) + }), + (t._triggerCloseEvent = function (t) { + var e = r.Event(u.CLOSE) + return (r(t).trigger(e), e) + }), + (t._removeElement = function (e) { + var n = this + if ((r(e).removeClass(_), r(e).hasClass(d))) { + var t = Cn.getTransitionDurationFromElement(e) + r(e) + .one(Cn.TRANSITION_END, function (t) { + return n._destroyElement(e, t) + }) + .emulateTransitionEnd(t) + } else this._destroyElement(e) + }), + (t._destroyElement = function (t) { + r(t).detach().trigger(u.CLOSED).remove() + }), + (i._jQueryInterface = function (n) { + return this.each(function () { + var t = r(this), + e = t.data(s) + ;(e || ((e = new i(this)), t.data(s, e)), 'close' === n && e[n](this)) + }) + }), + (i._handleDismiss = function (e) { + return function (t) { + ;(t && t.preventDefault(), e.close(this)) + } + }), + o(i, null, [ + { + key: 'VERSION', + get: function () { + return '4.1.0' + }, + }, + ]), + i + ) + })()), + r(document).on(u.CLICK_DATA_API, '[data-dismiss="alert"]', g._handleDismiss(new g())), + (r.fn[n] = g._jQueryInterface), + (r.fn[n].Constructor = g), + (r.fn[n].noConflict = function () { + return ((r.fn[n] = l), g._jQueryInterface) + }), + g), + An = + ((p = 'button'), + (E = '.' + (v = 'bs.button')), + (y = '.data-api'), + (T = (m = e).fn[p]), + (C = 'active'), + (I = 'btn'), + (D = '[data-toggle^="button"]'), + (b = '[data-toggle="buttons"]'), + (S = 'input'), + (w = '.active'), + (N = '.btn'), + (O = { CLICK_DATA_API: 'click' + E + y, FOCUS_BLUR_DATA_API: (A = 'focus') + E + y + ' blur' + E + y }), + (k = (function () { + function n(t) { + this._element = t + } + var t = n.prototype + return ( + (t.toggle = function () { + var t = !0, + e = !0, + n = m(this._element).closest(b)[0] + if (n) { + var i = m(this._element).find(S)[0] + if (i) { + if ('radio' === i.type) + if (i.checked && m(this._element).hasClass(C)) t = !1 + else { + var r = m(n).find(w)[0] + r && m(r).removeClass(C) + } + if (t) { + if ( + i.hasAttribute('disabled') || + n.hasAttribute('disabled') || + i.classList.contains('disabled') || + n.classList.contains('disabled') + ) + return + ;((i.checked = !m(this._element).hasClass(C)), m(i).trigger('change')) + } + ;(i.focus(), (e = !1)) + } + } + ;(e && this._element.setAttribute('aria-pressed', !m(this._element).hasClass(C)), t && m(this._element).toggleClass(C)) + }), + (t.dispose = function () { + ;(m.removeData(this._element, v), (this._element = null)) + }), + (n._jQueryInterface = function (e) { + return this.each(function () { + var t = m(this).data(v) + ;(t || ((t = new n(this)), m(this).data(v, t)), 'toggle' === e && t[e]()) + }) + }), + o(n, null, [ + { + key: 'VERSION', + get: function () { + return '4.1.0' + }, + }, + ]), + n + ) + })()), + m(document) + .on(O.CLICK_DATA_API, D, function (t) { + t.preventDefault() + var e = t.target + ;(m(e).hasClass(I) || (e = m(e).closest(N)), k._jQueryInterface.call(m(e), 'toggle')) + }) + .on(O.FOCUS_BLUR_DATA_API, D, function (t) { + var e = m(t.target).closest(N)[0] + m(e).toggleClass(A, /^focus(in)?$/.test(t.type)) + }), + (m.fn[p] = k._jQueryInterface), + (m.fn[p].Constructor = k), + (m.fn[p].noConflict = function () { + return ((m.fn[p] = T), k._jQueryInterface) + }), + k), + Dn = + ((L = 'carousel'), + (R = '.' + (j = 'bs.carousel')), + (H = '.data-api'), + (W = (P = e).fn[L]), + (M = { interval: 5e3, keyboard: !0, slide: !1, pause: 'hover', wrap: !0 }), + (x = { interval: '(number|boolean)', keyboard: 'boolean', slide: '(boolean|string)', pause: '(string|boolean)', wrap: 'boolean' }), + (U = 'next'), + (K = 'prev'), + (F = 'left'), + (V = 'right'), + (Q = { + SLIDE: 'slide' + R, + SLID: 'slid' + R, + KEYDOWN: 'keydown' + R, + MOUSEENTER: 'mouseenter' + R, + MOUSELEAVE: 'mouseleave' + R, + TOUCHEND: 'touchend' + R, + LOAD_DATA_API: 'load' + R + H, + CLICK_DATA_API: 'click' + R + H, + }), + (B = 'carousel'), + (Y = 'active'), + (G = 'slide'), + (q = 'carousel-item-right'), + (z = 'carousel-item-left'), + (X = 'carousel-item-next'), + (J = 'carousel-item-prev'), + (Z = { + ACTIVE: '.active', + ACTIVE_ITEM: '.active.carousel-item', + ITEM: '.carousel-item', + NEXT_PREV: '.carousel-item-next, .carousel-item-prev', + INDICATORS: '.carousel-indicators', + DATA_SLIDE: '[data-slide], [data-slide-to]', + DATA_RIDE: '[data-ride="carousel"]', + }), + ($ = (function () { + function s(t, e) { + ;((this._items = null), + (this._interval = null), + (this._activeElement = null), + (this._isPaused = !1), + (this._isSliding = !1), + (this.touchTimeout = null), + (this._config = this._getConfig(e)), + (this._element = P(t)[0]), + (this._indicatorsElement = P(this._element).find(Z.INDICATORS)[0]), + this._addEventListeners()) + } + var t = s.prototype + return ( + (t.next = function () { + this._isSliding || this._slide(U) + }), + (t.nextWhenVisible = function () { + !document.hidden && P(this._element).is(':visible') && 'hidden' !== P(this._element).css('visibility') && this.next() + }), + (t.prev = function () { + this._isSliding || this._slide(K) + }), + (t.pause = function (t) { + ;(t || (this._isPaused = !0), + P(this._element).find(Z.NEXT_PREV)[0] && (Cn.triggerTransitionEnd(this._element), this.cycle(!0)), + clearInterval(this._interval), + (this._interval = null)) + }), + (t.cycle = function (t) { + ;(t || (this._isPaused = !1), + this._interval && (clearInterval(this._interval), (this._interval = null)), + this._config.interval && + !this._isPaused && + (this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval))) + }), + (t.to = function (t) { + var e = this + this._activeElement = P(this._element).find(Z.ACTIVE_ITEM)[0] + var n = this._getItemIndex(this._activeElement) + if (!(t > this._items.length - 1 || t < 0)) + if (this._isSliding) + P(this._element).one(Q.SLID, function () { + return e.to(t) + }) + else { + if (n === t) return (this.pause(), void this.cycle()) + var i = n < t ? U : K + this._slide(i, this._items[t]) + } + }), + (t.dispose = function () { + ;(P(this._element).off(R), + P.removeData(this._element, j), + (this._items = null), + (this._config = null), + (this._element = null), + (this._interval = null), + (this._isPaused = null), + (this._isSliding = null), + (this._activeElement = null), + (this._indicatorsElement = null)) + }), + (t._getConfig = function (t) { + return ((t = h({}, M, t)), Cn.typeCheckConfig(L, t, x), t) + }), + (t._addEventListeners = function () { + var e = this + ;(this._config.keyboard && + P(this._element).on(Q.KEYDOWN, function (t) { + return e._keydown(t) + }), + 'hover' === this._config.pause && + (P(this._element) + .on(Q.MOUSEENTER, function (t) { + return e.pause(t) + }) + .on(Q.MOUSELEAVE, function (t) { + return e.cycle(t) + }), + 'ontouchstart' in document.documentElement && + P(this._element).on(Q.TOUCHEND, function () { + ;(e.pause(), + e.touchTimeout && clearTimeout(e.touchTimeout), + (e.touchTimeout = setTimeout(function (t) { + return e.cycle(t) + }, 500 + e._config.interval))) + }))) + }), + (t._keydown = function (t) { + if (!/input|textarea/i.test(t.target.tagName)) + switch (t.which) { + case 37: + ;(t.preventDefault(), this.prev()) + break + case 39: + ;(t.preventDefault(), this.next()) + } + }), + (t._getItemIndex = function (t) { + return ((this._items = P.makeArray(P(t).parent().find(Z.ITEM))), this._items.indexOf(t)) + }), + (t._getItemByDirection = function (t, e) { + var n = t === U, + i = t === K, + r = this._getItemIndex(e), + s = this._items.length - 1 + if (((i && 0 === r) || (n && r === s)) && !this._config.wrap) return e + var o = (r + (t === K ? -1 : 1)) % this._items.length + return -1 === o ? this._items[this._items.length - 1] : this._items[o] + }), + (t._triggerSlideEvent = function (t, e) { + var n = this._getItemIndex(t), + i = this._getItemIndex(P(this._element).find(Z.ACTIVE_ITEM)[0]), + r = P.Event(Q.SLIDE, { relatedTarget: t, direction: e, from: i, to: n }) + return (P(this._element).trigger(r), r) + }), + (t._setActiveIndicatorElement = function (t) { + if (this._indicatorsElement) { + P(this._indicatorsElement).find(Z.ACTIVE).removeClass(Y) + var e = this._indicatorsElement.children[this._getItemIndex(t)] + e && P(e).addClass(Y) + } + }), + (t._slide = function (t, e) { + var n, + i, + r, + s = this, + o = P(this._element).find(Z.ACTIVE_ITEM)[0], + a = this._getItemIndex(o), + l = e || (o && this._getItemByDirection(t, o)), + h = this._getItemIndex(l), + c = Boolean(this._interval) + if ((t === U ? ((n = z), (i = X), (r = F)) : ((n = q), (i = J), (r = V)), l && P(l).hasClass(Y))) this._isSliding = !1 + else if (!this._triggerSlideEvent(l, r).isDefaultPrevented() && o && l) { + ;((this._isSliding = !0), c && this.pause(), this._setActiveIndicatorElement(l)) + var u = P.Event(Q.SLID, { relatedTarget: l, direction: r, from: a, to: h }) + if (P(this._element).hasClass(G)) { + ;(P(l).addClass(i), Cn.reflow(l), P(o).addClass(n), P(l).addClass(n)) + var f = Cn.getTransitionDurationFromElement(o) + P(o) + .one(Cn.TRANSITION_END, function () { + ;(P(l) + .removeClass(n + ' ' + i) + .addClass(Y), + P(o).removeClass(Y + ' ' + i + ' ' + n), + (s._isSliding = !1), + setTimeout(function () { + return P(s._element).trigger(u) + }, 0)) + }) + .emulateTransitionEnd(f) + } else (P(o).removeClass(Y), P(l).addClass(Y), (this._isSliding = !1), P(this._element).trigger(u)) + c && this.cycle() + } + }), + (s._jQueryInterface = function (i) { + return this.each(function () { + var t = P(this).data(j), + e = h({}, M, P(this).data()) + 'object' == typeof i && (e = h({}, e, i)) + var n = 'string' == typeof i ? i : e.slide + if ((t || ((t = new s(this, e)), P(this).data(j, t)), 'number' == typeof i)) t.to(i) + else if ('string' == typeof n) { + if ('undefined' == typeof t[n]) throw new TypeError('No method named "' + n + '"') + t[n]() + } else e.interval && (t.pause(), t.cycle()) + }) + }), + (s._dataApiClickHandler = function (t) { + var e = Cn.getSelectorFromElement(this) + if (e) { + var n = P(e)[0] + if (n && P(n).hasClass(B)) { + var i = h({}, P(n).data(), P(this).data()), + r = this.getAttribute('data-slide-to') + ;(r && (i.interval = !1), s._jQueryInterface.call(P(n), i), r && P(n).data(j).to(r), t.preventDefault()) + } + } + }), + o(s, null, [ + { + key: 'VERSION', + get: function () { + return '4.1.0' + }, + }, + { + key: 'Default', + get: function () { + return M + }, + }, + ]), + s + ) + })()), + P(document).on(Q.CLICK_DATA_API, Z.DATA_SLIDE, $._dataApiClickHandler), + P(window).on(Q.LOAD_DATA_API, function () { + P(Z.DATA_RIDE).each(function () { + var t = P(this) + $._jQueryInterface.call(t, t.data()) + }) + }), + (P.fn[L] = $._jQueryInterface), + (P.fn[L].Constructor = $), + (P.fn[L].noConflict = function () { + return ((P.fn[L] = W), $._jQueryInterface) + }), + $), + bn = + ((et = 'collapse'), + (it = '.' + (nt = 'bs.collapse')), + (rt = (tt = e).fn[et]), + (st = { toggle: !0, parent: '' }), + (ot = { toggle: 'boolean', parent: '(string|element)' }), + (at = { SHOW: 'show' + it, SHOWN: 'shown' + it, HIDE: 'hide' + it, HIDDEN: 'hidden' + it, CLICK_DATA_API: 'click' + it + '.data-api' }), + (lt = 'show'), + (ht = 'collapse'), + (ct = 'collapsing'), + (ut = 'collapsed'), + (ft = 'width'), + (dt = 'height'), + (_t = { ACTIVES: '.show, .collapsing', DATA_TOGGLE: '[data-toggle="collapse"]' }), + (gt = (function () { + function a(t, e) { + ;((this._isTransitioning = !1), + (this._element = t), + (this._config = this._getConfig(e)), + (this._triggerArray = tt.makeArray( + tt('[data-toggle="collapse"][href="#' + t.id + '"],[data-toggle="collapse"][data-target="#' + t.id + '"]'), + ))) + for (var n = tt(_t.DATA_TOGGLE), i = 0; i < n.length; i++) { + var r = n[i], + s = Cn.getSelectorFromElement(r) + null !== s && 0 < tt(s).filter(t).length && ((this._selector = s), this._triggerArray.push(r)) + } + ;((this._parent = this._config.parent ? this._getParent() : null), + this._config.parent || this._addAriaAndCollapsedClass(this._element, this._triggerArray), + this._config.toggle && this.toggle()) + } + var t = a.prototype + return ( + (t.toggle = function () { + tt(this._element).hasClass(lt) ? this.hide() : this.show() + }), + (t.show = function () { + var t, + e, + n = this + if ( + !this._isTransitioning && + !tt(this._element).hasClass(lt) && + (this._parent && + 0 === + (t = tt.makeArray( + tt(this._parent) + .find(_t.ACTIVES) + .filter('[data-parent="' + this._config.parent + '"]'), + )).length && + (t = null), + !(t && (e = tt(t).not(this._selector).data(nt)) && e._isTransitioning)) + ) { + var i = tt.Event(at.SHOW) + if ((tt(this._element).trigger(i), !i.isDefaultPrevented())) { + t && (a._jQueryInterface.call(tt(t).not(this._selector), 'hide'), e || tt(t).data(nt, null)) + var r = this._getDimension() + ;(tt(this._element).removeClass(ht).addClass(ct), + (this._element.style[r] = 0) < this._triggerArray.length && tt(this._triggerArray).removeClass(ut).attr('aria-expanded', !0), + this.setTransitioning(!0)) + var s = 'scroll' + (r[0].toUpperCase() + r.slice(1)), + o = Cn.getTransitionDurationFromElement(this._element) + ;(tt(this._element) + .one(Cn.TRANSITION_END, function () { + ;(tt(n._element).removeClass(ct).addClass(ht).addClass(lt), + (n._element.style[r] = ''), + n.setTransitioning(!1), + tt(n._element).trigger(at.SHOWN)) + }) + .emulateTransitionEnd(o), + (this._element.style[r] = this._element[s] + 'px')) + } + } + }), + (t.hide = function () { + var t = this + if (!this._isTransitioning && tt(this._element).hasClass(lt)) { + var e = tt.Event(at.HIDE) + if ((tt(this._element).trigger(e), !e.isDefaultPrevented())) { + var n = this._getDimension() + if ( + ((this._element.style[n] = this._element.getBoundingClientRect()[n] + 'px'), + Cn.reflow(this._element), + tt(this._element).addClass(ct).removeClass(ht).removeClass(lt), + 0 < this._triggerArray.length) + ) + for (var i = 0; i < this._triggerArray.length; i++) { + var r = this._triggerArray[i], + s = Cn.getSelectorFromElement(r) + if (null !== s) tt(s).hasClass(lt) || tt(r).addClass(ut).attr('aria-expanded', !1) + } + this.setTransitioning(!0) + this._element.style[n] = '' + var o = Cn.getTransitionDurationFromElement(this._element) + tt(this._element) + .one(Cn.TRANSITION_END, function () { + ;(t.setTransitioning(!1), tt(t._element).removeClass(ct).addClass(ht).trigger(at.HIDDEN)) + }) + .emulateTransitionEnd(o) + } + } + }), + (t.setTransitioning = function (t) { + this._isTransitioning = t + }), + (t.dispose = function () { + ;(tt.removeData(this._element, nt), + (this._config = null), + (this._parent = null), + (this._element = null), + (this._triggerArray = null), + (this._isTransitioning = null)) + }), + (t._getConfig = function (t) { + return (((t = h({}, st, t)).toggle = Boolean(t.toggle)), Cn.typeCheckConfig(et, t, ot), t) + }), + (t._getDimension = function () { + return tt(this._element).hasClass(ft) ? ft : dt + }), + (t._getParent = function () { + var n = this, + t = null + Cn.isElement(this._config.parent) + ? ((t = this._config.parent), 'undefined' != typeof this._config.parent.jquery && (t = this._config.parent[0])) + : (t = tt(this._config.parent)[0]) + var e = '[data-toggle="collapse"][data-parent="' + this._config.parent + '"]' + return ( + tt(t) + .find(e) + .each(function (t, e) { + n._addAriaAndCollapsedClass(a._getTargetFromElement(e), [e]) + }), + t + ) + }), + (t._addAriaAndCollapsedClass = function (t, e) { + if (t) { + var n = tt(t).hasClass(lt) + 0 < e.length && tt(e).toggleClass(ut, !n).attr('aria-expanded', n) + } + }), + (a._getTargetFromElement = function (t) { + var e = Cn.getSelectorFromElement(t) + return e ? tt(e)[0] : null + }), + (a._jQueryInterface = function (i) { + return this.each(function () { + var t = tt(this), + e = t.data(nt), + n = h({}, st, t.data(), 'object' == typeof i && i) + if ((!e && n.toggle && /show|hide/.test(i) && (n.toggle = !1), e || ((e = new a(this, n)), t.data(nt, e)), 'string' == typeof i)) { + if ('undefined' == typeof e[i]) throw new TypeError('No method named "' + i + '"') + e[i]() + } + }) + }), + o(a, null, [ + { + key: 'VERSION', + get: function () { + return '4.1.0' + }, + }, + { + key: 'Default', + get: function () { + return st + }, + }, + ]), + a + ) + })()), + tt(document).on(at.CLICK_DATA_API, _t.DATA_TOGGLE, function (t) { + 'A' === t.currentTarget.tagName && t.preventDefault() + var n = tt(this), + e = Cn.getSelectorFromElement(this) + tt(e).each(function () { + var t = tt(this), + e = t.data(nt) ? 'toggle' : n.data() + gt._jQueryInterface.call(t, e) + }) + }), + (tt.fn[et] = gt._jQueryInterface), + (tt.fn[et].Constructor = gt), + (tt.fn[et].noConflict = function () { + return ((tt.fn[et] = rt), gt._jQueryInterface) + }), + gt), + Sn = + ((pt = 'dropdown'), + (Et = '.' + (vt = 'bs.dropdown')), + (yt = '.data-api'), + (Tt = (mt = e).fn[pt]), + (Ct = new RegExp('38|40|27')), + (It = { + HIDE: 'hide' + Et, + HIDDEN: 'hidden' + Et, + SHOW: 'show' + Et, + SHOWN: 'shown' + Et, + CLICK: 'click' + Et, + CLICK_DATA_API: 'click' + Et + yt, + KEYDOWN_DATA_API: 'keydown' + Et + yt, + KEYUP_DATA_API: 'keyup' + Et + yt, + }), + (At = 'disabled'), + (Dt = 'show'), + (bt = 'dropup'), + (St = 'dropright'), + (wt = 'dropleft'), + (Nt = 'dropdown-menu-right'), + (Ot = 'position-static'), + (kt = '[data-toggle="dropdown"]'), + (Pt = '.dropdown form'), + (Lt = '.dropdown-menu'), + (jt = '.navbar-nav'), + (Rt = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'), + (Ht = 'top-start'), + (Wt = 'top-end'), + (Mt = 'bottom-start'), + (xt = 'bottom-end'), + (Ut = 'right-start'), + (Kt = 'left-start'), + (Ft = { offset: 0, flip: !0, boundary: 'scrollParent', reference: 'toggle', display: 'dynamic' }), + (Vt = { offset: '(number|string|function)', flip: 'boolean', boundary: '(string|element)', reference: '(string|element)', display: 'string' }), + (Qt = (function () { + function l(t, e) { + ;((this._element = t), + (this._popper = null), + (this._config = this._getConfig(e)), + (this._menu = this._getMenuElement()), + (this._inNavbar = this._detectNavbar()), + this._addEventListeners()) + } + var t = l.prototype + return ( + (t.toggle = function () { + if (!this._element.disabled && !mt(this._element).hasClass(At)) { + var t = l._getParentFromElement(this._element), + e = mt(this._menu).hasClass(Dt) + if ((l._clearMenus(), !e)) { + var n = { relatedTarget: this._element }, + i = mt.Event(It.SHOW, n) + if ((mt(t).trigger(i), !i.isDefaultPrevented())) { + if (!this._inNavbar) { + if ('undefined' == typeof c) throw new TypeError('Bootstrap dropdown require Popper.js (https://popper.js.org)') + var r = this._element + ;('parent' === this._config.reference + ? (r = t) + : Cn.isElement(this._config.reference) && + ((r = this._config.reference), 'undefined' != typeof this._config.reference.jquery && (r = this._config.reference[0])), + 'scrollParent' !== this._config.boundary && mt(t).addClass(Ot), + (this._popper = new c(r, this._menu, this._getPopperConfig()))) + } + ;('ontouchstart' in document.documentElement && + 0 === mt(t).closest(jt).length && + mt(document.body).children().on('mouseover', null, mt.noop), + this._element.focus(), + this._element.setAttribute('aria-expanded', !0), + mt(this._menu).toggleClass(Dt), + mt(t).toggleClass(Dt).trigger(mt.Event(It.SHOWN, n))) + } + } + } + }), + (t.dispose = function () { + ;(mt.removeData(this._element, vt), + mt(this._element).off(Et), + (this._element = null), + (this._menu = null) !== this._popper && (this._popper.destroy(), (this._popper = null))) + }), + (t.update = function () { + ;((this._inNavbar = this._detectNavbar()), null !== this._popper && this._popper.scheduleUpdate()) + }), + (t._addEventListeners = function () { + var e = this + mt(this._element).on(It.CLICK, function (t) { + ;(t.preventDefault(), t.stopPropagation(), e.toggle()) + }) + }), + (t._getConfig = function (t) { + return ((t = h({}, this.constructor.Default, mt(this._element).data(), t)), Cn.typeCheckConfig(pt, t, this.constructor.DefaultType), t) + }), + (t._getMenuElement = function () { + if (!this._menu) { + var t = l._getParentFromElement(this._element) + this._menu = mt(t).find(Lt)[0] + } + return this._menu + }), + (t._getPlacement = function () { + var t = mt(this._element).parent(), + e = Mt + return ( + t.hasClass(bt) + ? ((e = Ht), mt(this._menu).hasClass(Nt) && (e = Wt)) + : t.hasClass(St) + ? (e = Ut) + : t.hasClass(wt) + ? (e = Kt) + : mt(this._menu).hasClass(Nt) && (e = xt), + e + ) + }), + (t._detectNavbar = function () { + return 0 < mt(this._element).closest('.navbar').length + }), + (t._getPopperConfig = function () { + var e = this, + t = {} + 'function' == typeof this._config.offset + ? (t.fn = function (t) { + return ((t.offsets = h({}, t.offsets, e._config.offset(t.offsets) || {})), t) + }) + : (t.offset = this._config.offset) + var n = { + placement: this._getPlacement(), + modifiers: { offset: t, flip: { enabled: this._config.flip }, preventOverflow: { boundariesElement: this._config.boundary } }, + } + return ('static' === this._config.display && (n.modifiers.applyStyle = { enabled: !1 }), n) + }), + (l._jQueryInterface = function (e) { + return this.each(function () { + var t = mt(this).data(vt) + if ((t || ((t = new l(this, 'object' == typeof e ? e : null)), mt(this).data(vt, t)), 'string' == typeof e)) { + if ('undefined' == typeof t[e]) throw new TypeError('No method named "' + e + '"') + t[e]() + } + }) + }), + (l._clearMenus = function (t) { + if (!t || (3 !== t.which && ('keyup' !== t.type || 9 === t.which))) + for (var e = mt.makeArray(mt(kt)), n = 0; n < e.length; n++) { + var i = l._getParentFromElement(e[n]), + r = mt(e[n]).data(vt), + s = { relatedTarget: e[n] } + if (r) { + var o = r._menu + if ( + mt(i).hasClass(Dt) && + !( + t && + (('click' === t.type && /input|textarea/i.test(t.target.tagName)) || ('keyup' === t.type && 9 === t.which)) && + mt.contains(i, t.target) + ) + ) { + var a = mt.Event(It.HIDE, s) + ;(mt(i).trigger(a), + a.isDefaultPrevented() || + ('ontouchstart' in document.documentElement && mt(document.body).children().off('mouseover', null, mt.noop), + e[n].setAttribute('aria-expanded', 'false'), + mt(o).removeClass(Dt), + mt(i).removeClass(Dt).trigger(mt.Event(It.HIDDEN, s)))) + } + } + } + }), + (l._getParentFromElement = function (t) { + var e, + n = Cn.getSelectorFromElement(t) + return (n && (e = mt(n)[0]), e || t.parentNode) + }), + (l._dataApiKeydownHandler = function (t) { + if ( + (/input|textarea/i.test(t.target.tagName) + ? !(32 === t.which || (27 !== t.which && ((40 !== t.which && 38 !== t.which) || mt(t.target).closest(Lt).length))) + : Ct.test(t.which)) && + (t.preventDefault(), t.stopPropagation(), !this.disabled && !mt(this).hasClass(At)) + ) { + var e = l._getParentFromElement(this), + n = mt(e).hasClass(Dt) + if ((n || (27 === t.which && 32 === t.which)) && (!n || (27 !== t.which && 32 !== t.which))) { + var i = mt(e).find(Rt).get() + if (0 !== i.length) { + var r = i.indexOf(t.target) + ;(38 === t.which && 0 < r && r--, 40 === t.which && r < i.length - 1 && r++, r < 0 && (r = 0), i[r].focus()) + } + } else { + if (27 === t.which) { + var s = mt(e).find(kt)[0] + mt(s).trigger('focus') + } + mt(this).trigger('click') + } + } + }), + o(l, null, [ + { + key: 'VERSION', + get: function () { + return '4.1.0' + }, + }, + { + key: 'Default', + get: function () { + return Ft + }, + }, + { + key: 'DefaultType', + get: function () { + return Vt + }, + }, + ]), + l + ) + })()), + mt(document) + .on(It.KEYDOWN_DATA_API, kt, Qt._dataApiKeydownHandler) + .on(It.KEYDOWN_DATA_API, Lt, Qt._dataApiKeydownHandler) + .on(It.CLICK_DATA_API + ' ' + It.KEYUP_DATA_API, Qt._clearMenus) + .on(It.CLICK_DATA_API, kt, function (t) { + ;(t.preventDefault(), t.stopPropagation(), Qt._jQueryInterface.call(mt(this), 'toggle')) + }) + .on(It.CLICK_DATA_API, Pt, function (t) { + t.stopPropagation() + }), + (mt.fn[pt] = Qt._jQueryInterface), + (mt.fn[pt].Constructor = Qt), + (mt.fn[pt].noConflict = function () { + return ((mt.fn[pt] = Tt), Qt._jQueryInterface) + }), + Qt), + wn = + ((Yt = 'modal'), + (qt = '.' + (Gt = 'bs.modal')), + (zt = (Bt = e).fn[Yt]), + (Xt = { backdrop: !0, keyboard: !0, focus: !0, show: !0 }), + (Jt = { backdrop: '(boolean|string)', keyboard: 'boolean', focus: 'boolean', show: 'boolean' }), + (Zt = { + HIDE: 'hide' + qt, + HIDDEN: 'hidden' + qt, + SHOW: 'show' + qt, + SHOWN: 'shown' + qt, + FOCUSIN: 'focusin' + qt, + RESIZE: 'resize' + qt, + CLICK_DISMISS: 'click.dismiss' + qt, + KEYDOWN_DISMISS: 'keydown.dismiss' + qt, + MOUSEUP_DISMISS: 'mouseup.dismiss' + qt, + MOUSEDOWN_DISMISS: 'mousedown.dismiss' + qt, + CLICK_DATA_API: 'click' + qt + '.data-api', + }), + ($t = 'modal-scrollbar-measure'), + (te = 'modal-backdrop'), + (ee = 'modal-open'), + (ne = 'fade'), + (ie = 'show'), + (re = { + DIALOG: '.modal-dialog', + DATA_TOGGLE: '[data-toggle="modal"]', + DATA_DISMISS: '[data-dismiss="modal"]', + FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top', + STICKY_CONTENT: '.sticky-top', + NAVBAR_TOGGLER: '.navbar-toggler', + }), + (se = (function () { + function r(t, e) { + ;((this._config = this._getConfig(e)), + (this._element = t), + (this._dialog = Bt(t).find(re.DIALOG)[0]), + (this._backdrop = null), + (this._isShown = !1), + (this._isBodyOverflowing = !1), + (this._ignoreBackdropClick = !1), + (this._scrollbarWidth = 0)) + } + var t = r.prototype + return ( + (t.toggle = function (t) { + return this._isShown ? this.hide() : this.show(t) + }), + (t.show = function (t) { + var e = this + if (!this._isTransitioning && !this._isShown) { + Bt(this._element).hasClass(ne) && (this._isTransitioning = !0) + var n = Bt.Event(Zt.SHOW, { relatedTarget: t }) + ;(Bt(this._element).trigger(n), + this._isShown || + n.isDefaultPrevented() || + ((this._isShown = !0), + this._checkScrollbar(), + this._setScrollbar(), + this._adjustDialog(), + Bt(document.body).addClass(ee), + this._setEscapeEvent(), + this._setResizeEvent(), + Bt(this._element).on(Zt.CLICK_DISMISS, re.DATA_DISMISS, function (t) { + return e.hide(t) + }), + Bt(this._dialog).on(Zt.MOUSEDOWN_DISMISS, function () { + Bt(e._element).one(Zt.MOUSEUP_DISMISS, function (t) { + Bt(t.target).is(e._element) && (e._ignoreBackdropClick = !0) + }) + }), + this._showBackdrop(function () { + return e._showElement(t) + }))) + } + }), + (t.hide = function (t) { + var e = this + if ((t && t.preventDefault(), !this._isTransitioning && this._isShown)) { + var n = Bt.Event(Zt.HIDE) + if ((Bt(this._element).trigger(n), this._isShown && !n.isDefaultPrevented())) { + this._isShown = !1 + var i = Bt(this._element).hasClass(ne) + if ( + (i && (this._isTransitioning = !0), + this._setEscapeEvent(), + this._setResizeEvent(), + Bt(document).off(Zt.FOCUSIN), + Bt(this._element).removeClass(ie), + Bt(this._element).off(Zt.CLICK_DISMISS), + Bt(this._dialog).off(Zt.MOUSEDOWN_DISMISS), + i) + ) { + var r = Cn.getTransitionDurationFromElement(this._element) + Bt(this._element) + .one(Cn.TRANSITION_END, function (t) { + return e._hideModal(t) + }) + .emulateTransitionEnd(r) + } else this._hideModal() + } + } + }), + (t.dispose = function () { + ;(Bt.removeData(this._element, Gt), + Bt(window, document, this._element, this._backdrop).off(qt), + (this._config = null), + (this._element = null), + (this._dialog = null), + (this._backdrop = null), + (this._isShown = null), + (this._isBodyOverflowing = null), + (this._ignoreBackdropClick = null), + (this._scrollbarWidth = null)) + }), + (t.handleUpdate = function () { + this._adjustDialog() + }), + (t._getConfig = function (t) { + return ((t = h({}, Xt, t)), Cn.typeCheckConfig(Yt, t, Jt), t) + }), + (t._showElement = function (t) { + var e = this, + n = Bt(this._element).hasClass(ne) + ;((this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE) || document.body.appendChild(this._element), + (this._element.style.display = 'block'), + this._element.removeAttribute('aria-hidden'), + (this._element.scrollTop = 0), + n && Cn.reflow(this._element), + Bt(this._element).addClass(ie), + this._config.focus && this._enforceFocus()) + var i = Bt.Event(Zt.SHOWN, { relatedTarget: t }), + r = function () { + ;(e._config.focus && e._element.focus(), (e._isTransitioning = !1), Bt(e._element).trigger(i)) + } + if (n) { + var s = Cn.getTransitionDurationFromElement(this._element) + Bt(this._dialog).one(Cn.TRANSITION_END, r).emulateTransitionEnd(s) + } else r() + }), + (t._enforceFocus = function () { + var e = this + Bt(document) + .off(Zt.FOCUSIN) + .on(Zt.FOCUSIN, function (t) { + document !== t.target && e._element !== t.target && 0 === Bt(e._element).has(t.target).length && e._element.focus() + }) + }), + (t._setEscapeEvent = function () { + var e = this + this._isShown && this._config.keyboard + ? Bt(this._element).on(Zt.KEYDOWN_DISMISS, function (t) { + 27 === t.which && (t.preventDefault(), e.hide()) + }) + : this._isShown || Bt(this._element).off(Zt.KEYDOWN_DISMISS) + }), + (t._setResizeEvent = function () { + var e = this + this._isShown + ? Bt(window).on(Zt.RESIZE, function (t) { + return e.handleUpdate(t) + }) + : Bt(window).off(Zt.RESIZE) + }), + (t._hideModal = function () { + var t = this + ;((this._element.style.display = 'none'), + this._element.setAttribute('aria-hidden', !0), + (this._isTransitioning = !1), + this._showBackdrop(function () { + ;(Bt(document.body).removeClass(ee), t._resetAdjustments(), t._resetScrollbar(), Bt(t._element).trigger(Zt.HIDDEN)) + })) + }), + (t._removeBackdrop = function () { + this._backdrop && (Bt(this._backdrop).remove(), (this._backdrop = null)) + }), + (t._showBackdrop = function (t) { + var e = this, + n = Bt(this._element).hasClass(ne) ? ne : '' + if (this._isShown && this._config.backdrop) { + if ( + ((this._backdrop = document.createElement('div')), + (this._backdrop.className = te), + n && Bt(this._backdrop).addClass(n), + Bt(this._backdrop).appendTo(document.body), + Bt(this._element).on(Zt.CLICK_DISMISS, function (t) { + e._ignoreBackdropClick + ? (e._ignoreBackdropClick = !1) + : t.target === t.currentTarget && ('static' === e._config.backdrop ? e._element.focus() : e.hide()) + }), + n && Cn.reflow(this._backdrop), + Bt(this._backdrop).addClass(ie), + !t) + ) + return + if (!n) return void t() + var i = Cn.getTransitionDurationFromElement(this._backdrop) + Bt(this._backdrop).one(Cn.TRANSITION_END, t).emulateTransitionEnd(i) + } else if (!this._isShown && this._backdrop) { + Bt(this._backdrop).removeClass(ie) + var r = function () { + ;(e._removeBackdrop(), t && t()) + } + if (Bt(this._element).hasClass(ne)) { + var s = Cn.getTransitionDurationFromElement(this._backdrop) + Bt(this._backdrop).one(Cn.TRANSITION_END, r).emulateTransitionEnd(s) + } else r() + } else t && t() + }), + (t._adjustDialog = function () { + var t = this._element.scrollHeight > document.documentElement.clientHeight + ;(!this._isBodyOverflowing && t && (this._element.style.paddingLeft = this._scrollbarWidth + 'px'), + this._isBodyOverflowing && !t && (this._element.style.paddingRight = this._scrollbarWidth + 'px')) + }), + (t._resetAdjustments = function () { + ;((this._element.style.paddingLeft = ''), (this._element.style.paddingRight = '')) + }), + (t._checkScrollbar = function () { + var t = document.body.getBoundingClientRect() + ;((this._isBodyOverflowing = t.left + t.right < window.innerWidth), (this._scrollbarWidth = this._getScrollbarWidth())) + }), + (t._setScrollbar = function () { + var r = this + if (this._isBodyOverflowing) { + ;(Bt(re.FIXED_CONTENT).each(function (t, e) { + var n = Bt(e)[0].style.paddingRight, + i = Bt(e).css('padding-right') + Bt(e) + .data('padding-right', n) + .css('padding-right', parseFloat(i) + r._scrollbarWidth + 'px') + }), + Bt(re.STICKY_CONTENT).each(function (t, e) { + var n = Bt(e)[0].style.marginRight, + i = Bt(e).css('margin-right') + Bt(e) + .data('margin-right', n) + .css('margin-right', parseFloat(i) - r._scrollbarWidth + 'px') + }), + Bt(re.NAVBAR_TOGGLER).each(function (t, e) { + var n = Bt(e)[0].style.marginRight, + i = Bt(e).css('margin-right') + Bt(e) + .data('margin-right', n) + .css('margin-right', parseFloat(i) + r._scrollbarWidth + 'px') + })) + var t = document.body.style.paddingRight, + e = Bt(document.body).css('padding-right') + Bt(document.body) + .data('padding-right', t) + .css('padding-right', parseFloat(e) + this._scrollbarWidth + 'px') + } + }), + (t._resetScrollbar = function () { + ;(Bt(re.FIXED_CONTENT).each(function (t, e) { + var n = Bt(e).data('padding-right') + 'undefined' != typeof n && Bt(e).css('padding-right', n).removeData('padding-right') + }), + Bt(re.STICKY_CONTENT + ', ' + re.NAVBAR_TOGGLER).each(function (t, e) { + var n = Bt(e).data('margin-right') + 'undefined' != typeof n && Bt(e).css('margin-right', n).removeData('margin-right') + })) + var t = Bt(document.body).data('padding-right') + 'undefined' != typeof t && Bt(document.body).css('padding-right', t).removeData('padding-right') + }), + (t._getScrollbarWidth = function () { + var t = document.createElement('div') + ;((t.className = $t), document.body.appendChild(t)) + var e = t.getBoundingClientRect().width - t.clientWidth + return (document.body.removeChild(t), e) + }), + (r._jQueryInterface = function (n, i) { + return this.each(function () { + var t = Bt(this).data(Gt), + e = h({}, r.Default, Bt(this).data(), 'object' == typeof n && n) + if ((t || ((t = new r(this, e)), Bt(this).data(Gt, t)), 'string' == typeof n)) { + if ('undefined' == typeof t[n]) throw new TypeError('No method named "' + n + '"') + t[n](i) + } else e.show && t.show(i) + }) + }), + o(r, null, [ + { + key: 'VERSION', + get: function () { + return '4.1.0' + }, + }, + { + key: 'Default', + get: function () { + return Xt + }, + }, + ]), + r + ) + })()), + Bt(document).on(Zt.CLICK_DATA_API, re.DATA_TOGGLE, function (t) { + var e, + n = this, + i = Cn.getSelectorFromElement(this) + i && (e = Bt(i)[0]) + var r = Bt(e).data(Gt) ? 'toggle' : h({}, Bt(e).data(), Bt(this).data()) + ;('A' !== this.tagName && 'AREA' !== this.tagName) || t.preventDefault() + var s = Bt(e).one(Zt.SHOW, function (t) { + t.isDefaultPrevented() || + s.one(Zt.HIDDEN, function () { + Bt(n).is(':visible') && n.focus() + }) + }) + se._jQueryInterface.call(Bt(e), r, this) + }), + (Bt.fn[Yt] = se._jQueryInterface), + (Bt.fn[Yt].Constructor = se), + (Bt.fn[Yt].noConflict = function () { + return ((Bt.fn[Yt] = zt), se._jQueryInterface) + }), + se), + Nn = + ((ae = 'tooltip'), + (he = '.' + (le = 'bs.tooltip')), + (ce = (oe = e).fn[ae]), + (ue = 'bs-tooltip'), + (fe = new RegExp('(^|\\s)' + ue + '\\S+', 'g')), + (ge = { + animation: !0, + template: '<div class="tooltip" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>', + trigger: 'hover focus', + title: '', + delay: 0, + html: !(_e = { AUTO: 'auto', TOP: 'top', RIGHT: 'right', BOTTOM: 'bottom', LEFT: 'left' }), + selector: !(de = { + animation: 'boolean', + template: 'string', + title: '(string|element|function)', + trigger: 'string', + delay: '(number|object)', + html: 'boolean', + selector: '(string|boolean)', + placement: '(string|function)', + offset: '(number|string)', + container: '(string|element|boolean)', + fallbackPlacement: '(string|array)', + boundary: '(string|element)', + }), + placement: 'top', + offset: 0, + container: !1, + fallbackPlacement: 'flip', + boundary: 'scrollParent', + }), + (pe = 'out'), + (ve = { + HIDE: 'hide' + he, + HIDDEN: 'hidden' + he, + SHOW: (me = 'show') + he, + SHOWN: 'shown' + he, + INSERTED: 'inserted' + he, + CLICK: 'click' + he, + FOCUSIN: 'focusin' + he, + FOCUSOUT: 'focusout' + he, + MOUSEENTER: 'mouseenter' + he, + MOUSELEAVE: 'mouseleave' + he, + }), + (Ee = 'fade'), + (ye = 'show'), + (Te = '.tooltip-inner'), + (Ce = '.arrow'), + (Ie = 'hover'), + (Ae = 'focus'), + (De = 'click'), + (be = 'manual'), + (Se = (function () { + function i(t, e) { + if ('undefined' == typeof c) throw new TypeError('Bootstrap tooltips require Popper.js (https://popper.js.org)') + ;((this._isEnabled = !0), + (this._timeout = 0), + (this._hoverState = ''), + (this._activeTrigger = {}), + (this._popper = null), + (this.element = t), + (this.config = this._getConfig(e)), + (this.tip = null), + this._setListeners()) + } + var t = i.prototype + return ( + (t.enable = function () { + this._isEnabled = !0 + }), + (t.disable = function () { + this._isEnabled = !1 + }), + (t.toggleEnabled = function () { + this._isEnabled = !this._isEnabled + }), + (t.toggle = function (t) { + if (this._isEnabled) + if (t) { + var e = this.constructor.DATA_KEY, + n = oe(t.currentTarget).data(e) + ;(n || ((n = new this.constructor(t.currentTarget, this._getDelegateConfig())), oe(t.currentTarget).data(e, n)), + (n._activeTrigger.click = !n._activeTrigger.click), + n._isWithActiveTrigger() ? n._enter(null, n) : n._leave(null, n)) + } else { + if (oe(this.getTipElement()).hasClass(ye)) return void this._leave(null, this) + this._enter(null, this) + } + }), + (t.dispose = function () { + ;(clearTimeout(this._timeout), + oe.removeData(this.element, this.constructor.DATA_KEY), + oe(this.element).off(this.constructor.EVENT_KEY), + oe(this.element).closest('.modal').off('hide.bs.modal'), + this.tip && oe(this.tip).remove(), + (this._isEnabled = null), + (this._timeout = null), + (this._hoverState = null), + (this._activeTrigger = null) !== this._popper && this._popper.destroy(), + (this._popper = null), + (this.element = null), + (this.config = null), + (this.tip = null)) + }), + (t.show = function () { + var e = this + if ('none' === oe(this.element).css('display')) throw new Error('Please use show on visible elements') + var t = oe.Event(this.constructor.Event.SHOW) + if (this.isWithContent() && this._isEnabled) { + oe(this.element).trigger(t) + var n = oe.contains(this.element.ownerDocument.documentElement, this.element) + if (t.isDefaultPrevented() || !n) return + var i = this.getTipElement(), + r = Cn.getUID(this.constructor.NAME) + ;(i.setAttribute('id', r), + this.element.setAttribute('aria-describedby', r), + this.setContent(), + this.config.animation && oe(i).addClass(Ee)) + var s = 'function' == typeof this.config.placement ? this.config.placement.call(this, i, this.element) : this.config.placement, + o = this._getAttachment(s) + this.addAttachmentClass(o) + var a = !1 === this.config.container ? document.body : oe(this.config.container) + ;(oe(i).data(this.constructor.DATA_KEY, this), + oe.contains(this.element.ownerDocument.documentElement, this.tip) || oe(i).appendTo(a), + oe(this.element).trigger(this.constructor.Event.INSERTED), + (this._popper = new c(this.element, i, { + placement: o, + modifiers: { + offset: { offset: this.config.offset }, + flip: { behavior: this.config.fallbackPlacement }, + arrow: { element: Ce }, + preventOverflow: { boundariesElement: this.config.boundary }, + }, + onCreate: function (t) { + t.originalPlacement !== t.placement && e._handlePopperPlacementChange(t) + }, + onUpdate: function (t) { + e._handlePopperPlacementChange(t) + }, + })), + oe(i).addClass(ye), + 'ontouchstart' in document.documentElement && oe(document.body).children().on('mouseover', null, oe.noop)) + var l = function () { + e.config.animation && e._fixTransition() + var t = e._hoverState + ;((e._hoverState = null), oe(e.element).trigger(e.constructor.Event.SHOWN), t === pe && e._leave(null, e)) + } + if (oe(this.tip).hasClass(Ee)) { + var h = Cn.getTransitionDurationFromElement(this.tip) + oe(this.tip).one(Cn.TRANSITION_END, l).emulateTransitionEnd(h) + } else l() + } + }), + (t.hide = function (t) { + var e = this, + n = this.getTipElement(), + i = oe.Event(this.constructor.Event.HIDE), + r = function () { + ;(e._hoverState !== me && n.parentNode && n.parentNode.removeChild(n), + e._cleanTipClass(), + e.element.removeAttribute('aria-describedby'), + oe(e.element).trigger(e.constructor.Event.HIDDEN), + null !== e._popper && e._popper.destroy(), + t && t()) + } + if ((oe(this.element).trigger(i), !i.isDefaultPrevented())) { + if ( + (oe(n).removeClass(ye), + 'ontouchstart' in document.documentElement && oe(document.body).children().off('mouseover', null, oe.noop), + (this._activeTrigger[De] = !1), + (this._activeTrigger[Ae] = !1), + (this._activeTrigger[Ie] = !1), + oe(this.tip).hasClass(Ee)) + ) { + var s = Cn.getTransitionDurationFromElement(n) + oe(n).one(Cn.TRANSITION_END, r).emulateTransitionEnd(s) + } else r() + this._hoverState = '' + } + }), + (t.update = function () { + null !== this._popper && this._popper.scheduleUpdate() + }), + (t.isWithContent = function () { + return Boolean(this.getTitle()) + }), + (t.addAttachmentClass = function (t) { + oe(this.getTipElement()).addClass(ue + '-' + t) + }), + (t.getTipElement = function () { + return ((this.tip = this.tip || oe(this.config.template)[0]), this.tip) + }), + (t.setContent = function () { + var t = oe(this.getTipElement()) + ;(this.setElementContent(t.find(Te), this.getTitle()), t.removeClass(Ee + ' ' + ye)) + }), + (t.setElementContent = function (t, e) { + var n = this.config.html + 'object' == typeof e && (e.nodeType || e.jquery) + ? n + ? oe(e).parent().is(t) || t.empty().append(e) + : t.text(oe(e).text()) + : t[n ? 'html' : 'text'](e) + }), + (t.getTitle = function () { + var t = this.element.getAttribute('data-original-title') + return (t || (t = 'function' == typeof this.config.title ? this.config.title.call(this.element) : this.config.title), t) + }), + (t._getAttachment = function (t) { + return _e[t.toUpperCase()] + }), + (t._setListeners = function () { + var i = this + ;(this.config.trigger.split(' ').forEach(function (t) { + if ('click' === t) + oe(i.element).on(i.constructor.Event.CLICK, i.config.selector, function (t) { + return i.toggle(t) + }) + else if (t !== be) { + var e = t === Ie ? i.constructor.Event.MOUSEENTER : i.constructor.Event.FOCUSIN, + n = t === Ie ? i.constructor.Event.MOUSELEAVE : i.constructor.Event.FOCUSOUT + oe(i.element) + .on(e, i.config.selector, function (t) { + return i._enter(t) + }) + .on(n, i.config.selector, function (t) { + return i._leave(t) + }) + } + oe(i.element) + .closest('.modal') + .on('hide.bs.modal', function () { + return i.hide() + }) + }), + this.config.selector ? (this.config = h({}, this.config, { trigger: 'manual', selector: '' })) : this._fixTitle()) + }), + (t._fixTitle = function () { + var t = typeof this.element.getAttribute('data-original-title') + ;(this.element.getAttribute('title') || 'string' !== t) && + (this.element.setAttribute('data-original-title', this.element.getAttribute('title') || ''), this.element.setAttribute('title', '')) + }), + (t._enter = function (t, e) { + var n = this.constructor.DATA_KEY + ;((e = e || oe(t.currentTarget).data(n)) || + ((e = new this.constructor(t.currentTarget, this._getDelegateConfig())), oe(t.currentTarget).data(n, e)), + t && (e._activeTrigger['focusin' === t.type ? Ae : Ie] = !0), + oe(e.getTipElement()).hasClass(ye) || e._hoverState === me + ? (e._hoverState = me) + : (clearTimeout(e._timeout), + (e._hoverState = me), + e.config.delay && e.config.delay.show + ? (e._timeout = setTimeout(function () { + e._hoverState === me && e.show() + }, e.config.delay.show)) + : e.show())) + }), + (t._leave = function (t, e) { + var n = this.constructor.DATA_KEY + ;((e = e || oe(t.currentTarget).data(n)) || + ((e = new this.constructor(t.currentTarget, this._getDelegateConfig())), oe(t.currentTarget).data(n, e)), + t && (e._activeTrigger['focusout' === t.type ? Ae : Ie] = !1), + e._isWithActiveTrigger() || + (clearTimeout(e._timeout), + (e._hoverState = pe), + e.config.delay && e.config.delay.hide + ? (e._timeout = setTimeout(function () { + e._hoverState === pe && e.hide() + }, e.config.delay.hide)) + : e.hide())) + }), + (t._isWithActiveTrigger = function () { + for (var t in this._activeTrigger) if (this._activeTrigger[t]) return !0 + return !1 + }), + (t._getConfig = function (t) { + return ( + 'number' == typeof (t = h({}, this.constructor.Default, oe(this.element).data(), t)).delay && + (t.delay = { show: t.delay, hide: t.delay }), + 'number' == typeof t.title && (t.title = t.title.toString()), + 'number' == typeof t.content && (t.content = t.content.toString()), + Cn.typeCheckConfig(ae, t, this.constructor.DefaultType), + t + ) + }), + (t._getDelegateConfig = function () { + var t = {} + if (this.config) for (var e in this.config) this.constructor.Default[e] !== this.config[e] && (t[e] = this.config[e]) + return t + }), + (t._cleanTipClass = function () { + var t = oe(this.getTipElement()), + e = t.attr('class').match(fe) + null !== e && 0 < e.length && t.removeClass(e.join('')) + }), + (t._handlePopperPlacementChange = function (t) { + ;(this._cleanTipClass(), this.addAttachmentClass(this._getAttachment(t.placement))) + }), + (t._fixTransition = function () { + var t = this.getTipElement(), + e = this.config.animation + null === t.getAttribute('x-placement') && + (oe(t).removeClass(Ee), (this.config.animation = !1), this.hide(), this.show(), (this.config.animation = e)) + }), + (i._jQueryInterface = function (n) { + return this.each(function () { + var t = oe(this).data(le), + e = 'object' == typeof n && n + if ((t || !/dispose|hide/.test(n)) && (t || ((t = new i(this, e)), oe(this).data(le, t)), 'string' == typeof n)) { + if ('undefined' == typeof t[n]) throw new TypeError('No method named "' + n + '"') + t[n]() + } + }) + }), + o(i, null, [ + { + key: 'VERSION', + get: function () { + return '4.1.0' + }, + }, + { + key: 'Default', + get: function () { + return ge + }, + }, + { + key: 'NAME', + get: function () { + return ae + }, + }, + { + key: 'DATA_KEY', + get: function () { + return le + }, + }, + { + key: 'Event', + get: function () { + return ve + }, + }, + { + key: 'EVENT_KEY', + get: function () { + return he + }, + }, + { + key: 'DefaultType', + get: function () { + return de + }, + }, + ]), + i + ) + })()), + (oe.fn[ae] = Se._jQueryInterface), + (oe.fn[ae].Constructor = Se), + (oe.fn[ae].noConflict = function () { + return ((oe.fn[ae] = ce), Se._jQueryInterface) + }), + Se), + On = + ((Ne = 'popover'), + (ke = '.' + (Oe = 'bs.popover')), + (Pe = (we = e).fn[Ne]), + (Le = 'bs-popover'), + (je = new RegExp('(^|\\s)' + Le + '\\S+', 'g')), + (Re = h({}, Nn.Default, { + placement: 'right', + trigger: 'click', + content: '', + template: + '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>', + })), + (He = h({}, Nn.DefaultType, { content: '(string|element|function)' })), + (We = 'fade'), + (xe = '.popover-header'), + (Ue = '.popover-body'), + (Ke = { + HIDE: 'hide' + ke, + HIDDEN: 'hidden' + ke, + SHOW: (Me = 'show') + ke, + SHOWN: 'shown' + ke, + INSERTED: 'inserted' + ke, + CLICK: 'click' + ke, + FOCUSIN: 'focusin' + ke, + FOCUSOUT: 'focusout' + ke, + MOUSEENTER: 'mouseenter' + ke, + MOUSELEAVE: 'mouseleave' + ke, + }), + (Fe = (function (t) { + var e, n + function i() { + return t.apply(this, arguments) || this + } + ;((n = t), ((e = i).prototype = Object.create(n.prototype)), ((e.prototype.constructor = e).__proto__ = n)) + var r = i.prototype + return ( + (r.isWithContent = function () { + return this.getTitle() || this._getContent() + }), + (r.addAttachmentClass = function (t) { + we(this.getTipElement()).addClass(Le + '-' + t) + }), + (r.getTipElement = function () { + return ((this.tip = this.tip || we(this.config.template)[0]), this.tip) + }), + (r.setContent = function () { + var t = we(this.getTipElement()) + this.setElementContent(t.find(xe), this.getTitle()) + var e = this._getContent() + ;('function' == typeof e && (e = e.call(this.element)), this.setElementContent(t.find(Ue), e), t.removeClass(We + ' ' + Me)) + }), + (r._getContent = function () { + return this.element.getAttribute('data-content') || this.config.content + }), + (r._cleanTipClass = function () { + var t = we(this.getTipElement()), + e = t.attr('class').match(je) + null !== e && 0 < e.length && t.removeClass(e.join('')) + }), + (i._jQueryInterface = function (n) { + return this.each(function () { + var t = we(this).data(Oe), + e = 'object' == typeof n ? n : null + if ((t || !/destroy|hide/.test(n)) && (t || ((t = new i(this, e)), we(this).data(Oe, t)), 'string' == typeof n)) { + if ('undefined' == typeof t[n]) throw new TypeError('No method named "' + n + '"') + t[n]() + } + }) + }), + o(i, null, [ + { + key: 'VERSION', + get: function () { + return '4.1.0' + }, + }, + { + key: 'Default', + get: function () { + return Re + }, + }, + { + key: 'NAME', + get: function () { + return Ne + }, + }, + { + key: 'DATA_KEY', + get: function () { + return Oe + }, + }, + { + key: 'Event', + get: function () { + return Ke + }, + }, + { + key: 'EVENT_KEY', + get: function () { + return ke + }, + }, + { + key: 'DefaultType', + get: function () { + return He + }, + }, + ]), + i + ) + })(Nn)), + (we.fn[Ne] = Fe._jQueryInterface), + (we.fn[Ne].Constructor = Fe), + (we.fn[Ne].noConflict = function () { + return ((we.fn[Ne] = Pe), Fe._jQueryInterface) + }), + Fe), + kn = + ((Qe = 'scrollspy'), + (Ye = '.' + (Be = 'bs.scrollspy')), + (Ge = (Ve = e).fn[Qe]), + (qe = { offset: 10, method: 'auto', target: '' }), + (ze = { offset: 'number', method: 'string', target: '(string|element)' }), + (Xe = { ACTIVATE: 'activate' + Ye, SCROLL: 'scroll' + Ye, LOAD_DATA_API: 'load' + Ye + '.data-api' }), + (Je = 'dropdown-item'), + (Ze = 'active'), + ($e = { + DATA_SPY: '[data-spy="scroll"]', + ACTIVE: '.active', + NAV_LIST_GROUP: '.nav, .list-group', + NAV_LINKS: '.nav-link', + NAV_ITEMS: '.nav-item', + LIST_ITEMS: '.list-group-item', + DROPDOWN: '.dropdown', + DROPDOWN_ITEMS: '.dropdown-item', + DROPDOWN_TOGGLE: '.dropdown-toggle', + }), + (tn = 'offset'), + (en = 'position'), + (nn = (function () { + function n(t, e) { + var n = this + ;((this._element = t), + (this._scrollElement = 'BODY' === t.tagName ? window : t), + (this._config = this._getConfig(e)), + (this._selector = + this._config.target + + ' ' + + $e.NAV_LINKS + + ',' + + this._config.target + + ' ' + + $e.LIST_ITEMS + + ',' + + this._config.target + + ' ' + + $e.DROPDOWN_ITEMS), + (this._offsets = []), + (this._targets = []), + (this._activeTarget = null), + (this._scrollHeight = 0), + Ve(this._scrollElement).on(Xe.SCROLL, function (t) { + return n._process(t) + }), + this.refresh(), + this._process()) + } + var t = n.prototype + return ( + (t.refresh = function () { + var e = this, + t = this._scrollElement === this._scrollElement.window ? tn : en, + r = 'auto' === this._config.method ? t : this._config.method, + s = r === en ? this._getScrollTop() : 0 + ;((this._offsets = []), + (this._targets = []), + (this._scrollHeight = this._getScrollHeight()), + Ve.makeArray(Ve(this._selector)) + .map(function (t) { + var e, + n = Cn.getSelectorFromElement(t) + if ((n && (e = Ve(n)[0]), e)) { + var i = e.getBoundingClientRect() + if (i.width || i.height) return [Ve(e)[r]().top + s, n] + } + return null + }) + .filter(function (t) { + return t + }) + .sort(function (t, e) { + return t[0] - e[0] + }) + .forEach(function (t) { + ;(e._offsets.push(t[0]), e._targets.push(t[1])) + })) + }), + (t.dispose = function () { + ;(Ve.removeData(this._element, Be), + Ve(this._scrollElement).off(Ye), + (this._element = null), + (this._scrollElement = null), + (this._config = null), + (this._selector = null), + (this._offsets = null), + (this._targets = null), + (this._activeTarget = null), + (this._scrollHeight = null)) + }), + (t._getConfig = function (t) { + if ('string' != typeof (t = h({}, qe, t)).target) { + var e = Ve(t.target).attr('id') + ;(e || ((e = Cn.getUID(Qe)), Ve(t.target).attr('id', e)), (t.target = '#' + e)) + } + return (Cn.typeCheckConfig(Qe, t, ze), t) + }), + (t._getScrollTop = function () { + return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop + }), + (t._getScrollHeight = function () { + return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight) + }), + (t._getOffsetHeight = function () { + return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height + }), + (t._process = function () { + var t = this._getScrollTop() + this._config.offset, + e = this._getScrollHeight(), + n = this._config.offset + e - this._getOffsetHeight() + if ((this._scrollHeight !== e && this.refresh(), n <= t)) { + var i = this._targets[this._targets.length - 1] + this._activeTarget !== i && this._activate(i) + } else { + if (this._activeTarget && t < this._offsets[0] && 0 < this._offsets[0]) return ((this._activeTarget = null), void this._clear()) + for (var r = this._offsets.length; r--; ) { + this._activeTarget !== this._targets[r] && + t >= this._offsets[r] && + ('undefined' == typeof this._offsets[r + 1] || t < this._offsets[r + 1]) && + this._activate(this._targets[r]) + } + } + }), + (t._activate = function (e) { + ;((this._activeTarget = e), this._clear()) + var t = this._selector.split(',') + t = t.map(function (t) { + return t + '[data-target="' + e + '"],' + t + '[href="' + e + '"]' + }) + var n = Ve(t.join(',')) + ;(n.hasClass(Je) + ? (n.closest($e.DROPDOWN).find($e.DROPDOWN_TOGGLE).addClass(Ze), n.addClass(Ze)) + : (n.addClass(Ze), + n + .parents($e.NAV_LIST_GROUP) + .prev($e.NAV_LINKS + ', ' + $e.LIST_ITEMS) + .addClass(Ze), + n.parents($e.NAV_LIST_GROUP).prev($e.NAV_ITEMS).children($e.NAV_LINKS).addClass(Ze)), + Ve(this._scrollElement).trigger(Xe.ACTIVATE, { relatedTarget: e })) + }), + (t._clear = function () { + Ve(this._selector).filter($e.ACTIVE).removeClass(Ze) + }), + (n._jQueryInterface = function (e) { + return this.each(function () { + var t = Ve(this).data(Be) + if ((t || ((t = new n(this, 'object' == typeof e && e)), Ve(this).data(Be, t)), 'string' == typeof e)) { + if ('undefined' == typeof t[e]) throw new TypeError('No method named "' + e + '"') + t[e]() + } + }) + }), + o(n, null, [ + { + key: 'VERSION', + get: function () { + return '4.1.0' + }, + }, + { + key: 'Default', + get: function () { + return qe + }, + }, + ]), + n + ) + })()), + Ve(window).on(Xe.LOAD_DATA_API, function () { + for (var t = Ve.makeArray(Ve($e.DATA_SPY)), e = t.length; e--; ) { + var n = Ve(t[e]) + nn._jQueryInterface.call(n, n.data()) + } + }), + (Ve.fn[Qe] = nn._jQueryInterface), + (Ve.fn[Qe].Constructor = nn), + (Ve.fn[Qe].noConflict = function () { + return ((Ve.fn[Qe] = Ge), nn._jQueryInterface) + }), + nn), + Pn = + ((on = '.' + (sn = 'bs.tab')), + (an = (rn = e).fn.tab), + (ln = { HIDE: 'hide' + on, HIDDEN: 'hidden' + on, SHOW: 'show' + on, SHOWN: 'shown' + on, CLICK_DATA_API: 'click' + on + '.data-api' }), + (hn = 'dropdown-menu'), + (cn = 'active'), + (un = 'disabled'), + (fn = 'fade'), + (dn = 'show'), + (_n = '.dropdown'), + (gn = '.nav, .list-group'), + (mn = '.active'), + (pn = '> li > .active'), + (vn = '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]'), + (En = '.dropdown-toggle'), + (yn = '> .dropdown-menu .active'), + (Tn = (function () { + function i(t) { + this._element = t + } + var t = i.prototype + return ( + (t.show = function () { + var n = this + if ( + !( + (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && rn(this._element).hasClass(cn)) || + rn(this._element).hasClass(un) + ) + ) { + var t, + i, + e = rn(this._element).closest(gn)[0], + r = Cn.getSelectorFromElement(this._element) + if (e) { + var s = 'UL' === e.nodeName ? pn : mn + i = (i = rn.makeArray(rn(e).find(s)))[i.length - 1] + } + var o = rn.Event(ln.HIDE, { relatedTarget: this._element }), + a = rn.Event(ln.SHOW, { relatedTarget: i }) + if ((i && rn(i).trigger(o), rn(this._element).trigger(a), !a.isDefaultPrevented() && !o.isDefaultPrevented())) { + ;(r && (t = rn(r)[0]), this._activate(this._element, e)) + var l = function () { + var t = rn.Event(ln.HIDDEN, { relatedTarget: n._element }), + e = rn.Event(ln.SHOWN, { relatedTarget: i }) + ;(rn(i).trigger(t), rn(n._element).trigger(e)) + } + t ? this._activate(t, t.parentNode, l) : l() + } + } + }), + (t.dispose = function () { + ;(rn.removeData(this._element, sn), (this._element = null)) + }), + (t._activate = function (t, e, n) { + var i = this, + r = ('UL' === e.nodeName ? rn(e).find(pn) : rn(e).children(mn))[0], + s = n && r && rn(r).hasClass(fn), + o = function () { + return i._transitionComplete(t, r, n) + } + if (r && s) { + var a = Cn.getTransitionDurationFromElement(r) + rn(r).one(Cn.TRANSITION_END, o).emulateTransitionEnd(a) + } else o() + }), + (t._transitionComplete = function (t, e, n) { + if (e) { + rn(e).removeClass(dn + ' ' + cn) + var i = rn(e.parentNode).find(yn)[0] + ;(i && rn(i).removeClass(cn), 'tab' === e.getAttribute('role') && e.setAttribute('aria-selected', !1)) + } + if ( + (rn(t).addClass(cn), + 'tab' === t.getAttribute('role') && t.setAttribute('aria-selected', !0), + Cn.reflow(t), + rn(t).addClass(dn), + t.parentNode && rn(t.parentNode).hasClass(hn)) + ) { + var r = rn(t).closest(_n)[0] + ;(r && rn(r).find(En).addClass(cn), t.setAttribute('aria-expanded', !0)) + } + n && n() + }), + (i._jQueryInterface = function (n) { + return this.each(function () { + var t = rn(this), + e = t.data(sn) + if ((e || ((e = new i(this)), t.data(sn, e)), 'string' == typeof n)) { + if ('undefined' == typeof e[n]) throw new TypeError('No method named "' + n + '"') + e[n]() + } + }) + }), + o(i, null, [ + { + key: 'VERSION', + get: function () { + return '4.1.0' + }, + }, + ]), + i + ) + })()), + rn(document).on(ln.CLICK_DATA_API, vn, function (t) { + ;(t.preventDefault(), Tn._jQueryInterface.call(rn(this), 'show')) + }), + (rn.fn.tab = Tn._jQueryInterface), + (rn.fn.tab.Constructor = Tn), + (rn.fn.tab.noConflict = function () { + return ((rn.fn.tab = an), Tn._jQueryInterface) + }), + Tn) + ;(!(function (t) { + if ('undefined' == typeof t) throw new TypeError("Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript.") + var e = t.fn.jquery.split(' ')[0].split('.') + if ((e[0] < 2 && e[1] < 9) || (1 === e[0] && 9 === e[1] && e[2] < 1) || 4 <= e[0]) + throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0") + })(e), + (t.Util = Cn), + (t.Alert = In), + (t.Button = An), + (t.Carousel = Dn), + (t.Collapse = bn), + (t.Dropdown = Sn), + (t.Modal = wn), + (t.Popover = On), + (t.Scrollspy = kn), + (t.Tab = Pn), + (t.Tooltip = Nn), + Object.defineProperty(t, '__esModule', { value: !0 })) +}) +//# sourceMappingURL=bootstrap.min.js.map diff --git a/static/vendor/docco.min.css b/static/vendor/docco.min.css index 751824d567..4cb7498034 100644 --- a/static/vendor/docco.min.css +++ b/static/vendor/docco.min.css @@ -1 +1,113 @@ -.hljs{display:block;overflow-x:auto;padding:0.5em;color:#000;background:#f8f8ff;-webkit-text-size-adjust:none}.hljs-comment,.hljs-template_comment,.diff .hljs-header,.hljs-javadoc{color:#408080;font-style:italic}.hljs-keyword,.assignment,.hljs-literal,.css .rule .hljs-keyword,.hljs-winutils,.javascript .hljs-title,.lisp .hljs-title,.hljs-subst{color:#954121}.hljs-number,.hljs-hexcolor{color:#40a070}.hljs-string,.hljs-tag .hljs-value,.hljs-phpdoc,.hljs-dartdoc,.tex .hljs-formula{color:#219161}.hljs-title,.hljs-id{color:#19469d}.hljs-params{color:#00f}.javascript .hljs-title,.lisp .hljs-title,.hljs-subst{font-weight:normal}.hljs-class .hljs-title,.haskell .hljs-label,.tex .hljs-command{color:#458;font-weight:bold}.hljs-tag,.hljs-tag .hljs-title,.hljs-rules .hljs-property,.django .hljs-tag .hljs-keyword{color:#000080;font-weight:normal}.hljs-attribute,.hljs-variable,.instancevar,.lisp .hljs-body{color:#008080}.hljs-regexp{color:#b68}.hljs-class{color:#458;font-weight:bold}.hljs-symbol,.ruby .hljs-symbol .hljs-string,.ruby .hljs-symbol .hljs-keyword,.ruby .hljs-symbol .keymethods,.lisp .hljs-keyword,.tex .hljs-special,.input_number{color:#990073}.builtin,.constructor,.hljs-built_in,.lisp .hljs-title{color:#0086b3}.hljs-preprocessor,.hljs-pragma,.hljs-pi,.hljs-doctype,.hljs-shebang,.hljs-cdata{color:#999;font-weight:bold}.hljs-deletion{background:#fdd}.hljs-addition{background:#dfd}.diff .hljs-change{background:#0086b3}.hljs-chunk{color:#aaa}.tex .hljs-formula{opacity:0.5} \ No newline at end of file +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + color: #000; + background: #f8f8ff; + -webkit-text-size-adjust: none; +} +.hljs-comment, +.hljs-template_comment, +.diff .hljs-header, +.hljs-javadoc { + color: #408080; + font-style: italic; +} +.hljs-keyword, +.assignment, +.hljs-literal, +.css .rule .hljs-keyword, +.hljs-winutils, +.javascript .hljs-title, +.lisp .hljs-title, +.hljs-subst { + color: #954121; +} +.hljs-number, +.hljs-hexcolor { + color: #40a070; +} +.hljs-string, +.hljs-tag .hljs-value, +.hljs-phpdoc, +.hljs-dartdoc, +.tex .hljs-formula { + color: #219161; +} +.hljs-title, +.hljs-id { + color: #19469d; +} +.hljs-params { + color: #00f; +} +.javascript .hljs-title, +.lisp .hljs-title, +.hljs-subst { + font-weight: normal; +} +.hljs-class .hljs-title, +.haskell .hljs-label, +.tex .hljs-command { + color: #458; + font-weight: bold; +} +.hljs-tag, +.hljs-tag .hljs-title, +.hljs-rules .hljs-property, +.django .hljs-tag .hljs-keyword { + color: #000080; + font-weight: normal; +} +.hljs-attribute, +.hljs-variable, +.instancevar, +.lisp .hljs-body { + color: #008080; +} +.hljs-regexp { + color: #b68; +} +.hljs-class { + color: #458; + font-weight: bold; +} +.hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.ruby .hljs-symbol .hljs-keyword, +.ruby .hljs-symbol .keymethods, +.lisp .hljs-keyword, +.tex .hljs-special, +.input_number { + color: #990073; +} +.builtin, +.constructor, +.hljs-built_in, +.lisp .hljs-title { + color: #0086b3; +} +.hljs-preprocessor, +.hljs-pragma, +.hljs-pi, +.hljs-doctype, +.hljs-shebang, +.hljs-cdata { + color: #999; + font-weight: bold; +} +.hljs-deletion { + background: #fdd; +} +.hljs-addition { + background: #dfd; +} +.diff .hljs-change { + background: #0086b3; +} +.hljs-chunk { + color: #aaa; +} +.tex .hljs-formula { + opacity: 0.5; +} diff --git a/static/vendor/feedback-widget.js b/static/vendor/feedback-widget.js index 2667131714..874845fe58 100644 --- a/static/vendor/feedback-widget.js +++ b/static/vendor/feedback-widget.js @@ -1,9 +1,18684 @@ /*! For license information please see feedback-widget.js.LICENSE.txt */ -(()=>{var e={1581:(e,t,n)=>{"use strict";n(2227).default;n(3487);const r=n(7159),a=n(3924),o=n(98),i=["/properties"],s="http://json-schema.org/draft-07/schema";class l extends r.default{_addVocabularies(){super._addVocabularies(),a.default.forEach((e=>this.addVocabulary(e)))}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;const e=this.opts.$data?this.$dataMetaSchema(o,i):o;this.addMetaSchema(e,s,!1),this.refs["http://json-schema.org/schema"]=s}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(s)?s:void 0)}}t.ZP=l},7023:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getProperty=t.safeStringify=t.stringify=t.strConcat=t.addCodeArg=t.str=t._=t.nil=t._Code=t.Name=t.IDENTIFIER=t._CodeOrName=void 0;class n{}t._CodeOrName=n,t.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;class r extends n{constructor(e){if(super(),!t.IDENTIFIER.test(e))throw new Error("CodeGen: name must be a valid identifier");this.str=e}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}}t.Name=r;class a extends n{constructor(e){super(),this._items="string"==typeof e?[e]:e}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;const e=this._items[0];return""===e||'""'===e}get str(){var e;return null!==(e=this._str)&&void 0!==e?e:this._str=this._items.reduce(((e,t)=>`${e}${t}`),"")}get names(){var e;return null!==(e=this._names)&&void 0!==e?e:this._names=this._items.reduce(((e,t)=>(t instanceof r&&(e[t.str]=(e[t.str]||0)+1),e)),{})}}function o(e,...t){const n=[e[0]];let r=0;for(;r<t.length;)l(n,t[r]),n.push(e[++r]);return new a(n)}t._Code=a,t.nil=new a(""),t._=o;const i=new a("+");function s(e,...t){const n=[c(e[0])];let r=0;for(;r<t.length;)n.push(i),l(n,t[r]),n.push(i,c(e[++r]));return function(e){let t=1;for(;t<e.length-1;){if(e[t]===i){const n=u(e[t-1],e[t+1]);if(void 0!==n){e.splice(t-1,3,n);continue}e[t++]="+"}t++}}(n),new a(n)}function l(e,t){var n;t instanceof a?e.push(...t._items):t instanceof r?e.push(t):e.push("number"==typeof(n=t)||"boolean"==typeof n||null===n?n:c(Array.isArray(n)?n.join(","):n))}function u(e,t){if('""'===t)return e;if('""'===e)return t;if("string"==typeof e){if(t instanceof r||'"'!==e[e.length-1])return;return"string"!=typeof t?`${e.slice(0,-1)}${t}"`:'"'===t[0]?e.slice(0,-1)+t.slice(1):void 0}return"string"!=typeof t||'"'!==t[0]||e instanceof r?void 0:`"${e}${t.slice(1)}`}function c(e){return JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}t.str=s,t.addCodeArg=l,t.strConcat=function(e,t){return t.emptyStr()?e:e.emptyStr()?t:s`${e}${t}`},t.stringify=function(e){return new a(c(e))},t.safeStringify=c,t.getProperty=function(e){return"string"==typeof e&&t.IDENTIFIER.test(e)?new a(`.${e}`):o`[${e}]`}},3487:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.or=t.and=t.not=t.CodeGen=t.operators=t.varKinds=t.ValueScopeName=t.ValueScope=t.Scope=t.Name=t.stringify=t.getProperty=t.nil=t.strConcat=t.str=t._=void 0;const r=n(7023),a=n(8490);var o=n(7023);Object.defineProperty(t,"_",{enumerable:!0,get:function(){return o._}}),Object.defineProperty(t,"str",{enumerable:!0,get:function(){return o.str}}),Object.defineProperty(t,"strConcat",{enumerable:!0,get:function(){return o.strConcat}}),Object.defineProperty(t,"nil",{enumerable:!0,get:function(){return o.nil}}),Object.defineProperty(t,"getProperty",{enumerable:!0,get:function(){return o.getProperty}}),Object.defineProperty(t,"stringify",{enumerable:!0,get:function(){return o.stringify}}),Object.defineProperty(t,"Name",{enumerable:!0,get:function(){return o.Name}});var i=n(8490);Object.defineProperty(t,"Scope",{enumerable:!0,get:function(){return i.Scope}}),Object.defineProperty(t,"ValueScope",{enumerable:!0,get:function(){return i.ValueScope}}),Object.defineProperty(t,"ValueScopeName",{enumerable:!0,get:function(){return i.ValueScopeName}}),Object.defineProperty(t,"varKinds",{enumerable:!0,get:function(){return i.varKinds}}),t.operators={GT:new r._Code(">"),GTE:new r._Code(">="),LT:new r._Code("<"),LTE:new r._Code("<="),EQ:new r._Code("==="),NEQ:new r._Code("!=="),NOT:new r._Code("!"),OR:new r._Code("||"),AND:new r._Code("&&"),ADD:new r._Code("+")};class s{optimizeNodes(){return this}optimizeNames(e,t){return this}}class l extends s{constructor(e,t,n){super(),this.varKind=e,this.name=t,this.rhs=n}render({es5:e,_n:t}){const n=e?a.varKinds.var:this.varKind,r=void 0===this.rhs?"":` = ${this.rhs}`;return`${n} ${this.name}${r};`+t}optimizeNames(e,t){if(e[this.name.str])return this.rhs&&(this.rhs=N(this.rhs,e,t)),this}get names(){return this.rhs instanceof r._CodeOrName?this.rhs.names:{}}}class u extends s{constructor(e,t,n){super(),this.lhs=e,this.rhs=t,this.sideEffects=n}render({_n:e}){return`${this.lhs} = ${this.rhs};`+e}optimizeNames(e,t){if(!(this.lhs instanceof r.Name)||e[this.lhs.str]||this.sideEffects)return this.rhs=N(this.rhs,e,t),this}get names(){return j(this.lhs instanceof r.Name?{}:{...this.lhs.names},this.rhs)}}class c extends u{constructor(e,t,n,r){super(e,n,r),this.op=t}render({_n:e}){return`${this.lhs} ${this.op}= ${this.rhs};`+e}}class f extends s{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`${this.label}:`+e}}class d extends s{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`break${this.label?` ${this.label}`:""};`+e}}class p extends s{constructor(e){super(),this.error=e}render({_n:e}){return`throw ${this.error};`+e}get names(){return this.error.names}}class h extends s{constructor(e){super(),this.code=e}render({_n:e}){return`${this.code};`+e}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(e,t){return this.code=N(this.code,e,t),this}get names(){return this.code instanceof r._CodeOrName?this.code.names:{}}}class m extends s{constructor(e=[]){super(),this.nodes=e}render(e){return this.nodes.reduce(((t,n)=>t+n.render(e)),"")}optimizeNodes(){const{nodes:e}=this;let t=e.length;for(;t--;){const n=e[t].optimizeNodes();Array.isArray(n)?e.splice(t,1,...n):n?e[t]=n:e.splice(t,1)}return e.length>0?this:void 0}optimizeNames(e,t){const{nodes:n}=this;let r=n.length;for(;r--;){const a=n[r];a.optimizeNames(e,t)||(I(e,a.names),n.splice(r,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce(((e,t)=>C(e,t.names)),{})}}class g extends m{render(e){return"{"+e._n+super.render(e)+"}"+e._n}}class v extends m{}class y extends g{}y.kind="else";class b extends g{constructor(e,t){super(t),this.condition=e}render(e){let t=`if(${this.condition})`+super.render(e);return this.else&&(t+="else "+this.else.render(e)),t}optimizeNodes(){super.optimizeNodes();const e=this.condition;if(!0===e)return this.nodes;let t=this.else;if(t){const e=t.optimizeNodes();t=this.else=Array.isArray(e)?new y(e):e}return t?!1===e?t instanceof b?t:t.nodes:this.nodes.length?this:new b(T(e),t instanceof b?[t]:t.nodes):!1!==e&&this.nodes.length?this:void 0}optimizeNames(e,t){var n;if(this.else=null===(n=this.else)||void 0===n?void 0:n.optimizeNames(e,t),super.optimizeNames(e,t)||this.else)return this.condition=N(this.condition,e,t),this}get names(){const e=super.names;return j(e,this.condition),this.else&&C(e,this.else.names),e}}b.kind="if";class w extends g{}w.kind="for";class _ extends w{constructor(e){super(),this.iteration=e}render(e){return`for(${this.iteration})`+super.render(e)}optimizeNames(e,t){if(super.optimizeNames(e,t))return this.iteration=N(this.iteration,e,t),this}get names(){return C(super.names,this.iteration.names)}}class x extends w{constructor(e,t,n,r){super(),this.varKind=e,this.name=t,this.from=n,this.to=r}render(e){const t=e.es5?a.varKinds.var:this.varKind,{name:n,from:r,to:o}=this;return`for(${t} ${n}=${r}; ${n}<${o}; ${n}++)`+super.render(e)}get names(){const e=j(super.names,this.from);return j(e,this.to)}}class E extends w{constructor(e,t,n,r){super(),this.loop=e,this.varKind=t,this.name=n,this.iterable=r}render(e){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(e)}optimizeNames(e,t){if(super.optimizeNames(e,t))return this.iterable=N(this.iterable,e,t),this}get names(){return C(super.names,this.iterable.names)}}class k extends g{constructor(e,t,n){super(),this.name=e,this.args=t,this.async=n}render(e){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(e)}}k.kind="func";class S extends m{render(e){return"return "+super.render(e)}}S.kind="return";class $ extends g{render(e){let t="try"+super.render(e);return this.catch&&(t+=this.catch.render(e)),this.finally&&(t+=this.finally.render(e)),t}optimizeNodes(){var e,t;return super.optimizeNodes(),null===(e=this.catch)||void 0===e||e.optimizeNodes(),null===(t=this.finally)||void 0===t||t.optimizeNodes(),this}optimizeNames(e,t){var n,r;return super.optimizeNames(e,t),null===(n=this.catch)||void 0===n||n.optimizeNames(e,t),null===(r=this.finally)||void 0===r||r.optimizeNames(e,t),this}get names(){const e=super.names;return this.catch&&C(e,this.catch.names),this.finally&&C(e,this.finally.names),e}}class P extends g{constructor(e){super(),this.error=e}render(e){return`catch(${this.error})`+super.render(e)}}P.kind="catch";class O extends g{render(e){return"finally"+super.render(e)}}function C(e,t){for(const n in t)e[n]=(e[n]||0)+(t[n]||0);return e}function j(e,t){return t instanceof r._CodeOrName?C(e,t.names):e}function N(e,t,n){return e instanceof r.Name?o(e):(a=e)instanceof r._Code&&a._items.some((e=>e instanceof r.Name&&1===t[e.str]&&void 0!==n[e.str]))?new r._Code(e._items.reduce(((e,t)=>(t instanceof r.Name&&(t=o(t)),t instanceof r._Code?e.push(...t._items):e.push(t),e)),[])):e;var a;function o(e){const r=n[e.str];return void 0===r||1!==t[e.str]?e:(delete t[e.str],r)}}function I(e,t){for(const n in t)e[n]=(e[n]||0)-(t[n]||0)}function T(e){return"boolean"==typeof e||"number"==typeof e||null===e?!e:r._`!${M(e)}`}O.kind="finally",t.CodeGen=class{constructor(e,t={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...t,_n:t.lines?"\n":""},this._extScope=e,this._scope=new a.Scope({parent:e}),this._nodes=[new v]}toString(){return this._root.render(this.opts)}name(e){return this._scope.name(e)}scopeName(e){return this._extScope.name(e)}scopeValue(e,t){const n=this._extScope.value(e,t);return(this._values[n.prefix]||(this._values[n.prefix]=new Set)).add(n),n}getScopeValue(e,t){return this._extScope.getValue(e,t)}scopeRefs(e){return this._extScope.scopeRefs(e,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(e,t,n,r){const a=this._scope.toName(t);return void 0!==n&&r&&(this._constants[a.str]=n),this._leafNode(new l(e,a,n)),a}const(e,t,n){return this._def(a.varKinds.const,e,t,n)}let(e,t,n){return this._def(a.varKinds.let,e,t,n)}var(e,t,n){return this._def(a.varKinds.var,e,t,n)}assign(e,t,n){return this._leafNode(new u(e,t,n))}add(e,n){return this._leafNode(new c(e,t.operators.ADD,n))}code(e){return"function"==typeof e?e():e!==r.nil&&this._leafNode(new h(e)),this}object(...e){const t=["{"];for(const[n,a]of e)t.length>1&&t.push(","),t.push(n),(n!==a||this.opts.es5)&&(t.push(":"),r.addCodeArg(t,a));return t.push("}"),new r._Code(t)}if(e,t,n){if(this._blockNode(new b(e)),t&&n)this.code(t).else().code(n).endIf();else if(t)this.code(t).endIf();else if(n)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(e){return this._elseNode(new b(e))}else(){return this._elseNode(new y)}endIf(){return this._endBlockNode(b,y)}_for(e,t){return this._blockNode(e),t&&this.code(t).endFor(),this}for(e,t){return this._for(new _(e),t)}forRange(e,t,n,r,o=(this.opts.es5?a.varKinds.var:a.varKinds.let)){const i=this._scope.toName(e);return this._for(new x(o,i,t,n),(()=>r(i)))}forOf(e,t,n,o=a.varKinds.const){const i=this._scope.toName(e);if(this.opts.es5){const e=t instanceof r.Name?t:this.var("_arr",t);return this.forRange("_i",0,r._`${e}.length`,(t=>{this.var(i,r._`${e}[${t}]`),n(i)}))}return this._for(new E("of",o,i,t),(()=>n(i)))}forIn(e,t,n,o=(this.opts.es5?a.varKinds.var:a.varKinds.const)){if(this.opts.ownProperties)return this.forOf(e,r._`Object.keys(${t})`,n);const i=this._scope.toName(e);return this._for(new E("in",o,i,t),(()=>n(i)))}endFor(){return this._endBlockNode(w)}label(e){return this._leafNode(new f(e))}break(e){return this._leafNode(new d(e))}return(e){const t=new S;if(this._blockNode(t),this.code(e),1!==t.nodes.length)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(S)}try(e,t,n){if(!t&&!n)throw new Error('CodeGen: "try" without "catch" and "finally"');const r=new $;if(this._blockNode(r),this.code(e),t){const e=this.name("e");this._currNode=r.catch=new P(e),t(e)}return n&&(this._currNode=r.finally=new O,this.code(n)),this._endBlockNode(P,O)}throw(e){return this._leafNode(new p(e))}block(e,t){return this._blockStarts.push(this._nodes.length),e&&this.code(e).endBlock(t),this}endBlock(e){const t=this._blockStarts.pop();if(void 0===t)throw new Error("CodeGen: not in self-balancing block");const n=this._nodes.length-t;if(n<0||void 0!==e&&n!==e)throw new Error(`CodeGen: wrong number of nodes: ${n} vs ${e} expected`);return this._nodes.length=t,this}func(e,t=r.nil,n,a){return this._blockNode(new k(e,t,n)),a&&this.code(a).endFunc(),this}endFunc(){return this._endBlockNode(k)}optimize(e=1){for(;e-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(e){return this._currNode.nodes.push(e),this}_blockNode(e){this._currNode.nodes.push(e),this._nodes.push(e)}_endBlockNode(e,t){const n=this._currNode;if(n instanceof e||t&&n instanceof t)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${t?`${e.kind}/${t.kind}`:e.kind}"`)}_elseNode(e){const t=this._currNode;if(!(t instanceof b))throw new Error('CodeGen: "else" without "if"');return this._currNode=t.else=e,this}get _root(){return this._nodes[0]}get _currNode(){const e=this._nodes;return e[e.length-1]}set _currNode(e){const t=this._nodes;t[t.length-1]=e}},t.not=T;const A=D(t.operators.AND);t.and=function(...e){return e.reduce(A)};const R=D(t.operators.OR);function D(e){return(t,n)=>t===r.nil?n:n===r.nil?t:r._`${M(t)} ${e} ${M(n)}`}function M(e){return e instanceof r.Name?e:r._`(${e})`}t.or=function(...e){return e.reduce(R)}},8490:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ValueScope=t.ValueScopeName=t.Scope=t.varKinds=t.UsedValueState=void 0;const r=n(7023);class a extends Error{constructor(e){super(`CodeGen: "code" for ${e} not defined`),this.value=e.value}}var o;!function(e){e[e.Started=0]="Started",e[e.Completed=1]="Completed"}(o=t.UsedValueState||(t.UsedValueState={})),t.varKinds={const:new r.Name("const"),let:new r.Name("let"),var:new r.Name("var")};class i{constructor({prefixes:e,parent:t}={}){this._names={},this._prefixes=e,this._parent=t}toName(e){return e instanceof r.Name?e:this.name(e)}name(e){return new r.Name(this._newName(e))}_newName(e){return`${e}${(this._names[e]||this._nameGroup(e)).index++}`}_nameGroup(e){var t,n;if((null===(n=null===(t=this._parent)||void 0===t?void 0:t._prefixes)||void 0===n?void 0:n.has(e))||this._prefixes&&!this._prefixes.has(e))throw new Error(`CodeGen: prefix "${e}" is not allowed in this scope`);return this._names[e]={prefix:e,index:0}}}t.Scope=i;class s extends r.Name{constructor(e,t){super(t),this.prefix=e}setValue(e,{property:t,itemIndex:n}){this.value=e,this.scopePath=r._`.${new r.Name(t)}[${n}]`}}t.ValueScopeName=s;const l=r._`\n`;t.ValueScope=class extends i{constructor(e){super(e),this._values={},this._scope=e.scope,this.opts={...e,_n:e.lines?l:r.nil}}get(){return this._scope}name(e){return new s(e,this._newName(e))}value(e,t){var n;if(void 0===t.ref)throw new Error("CodeGen: ref must be passed in value");const r=this.toName(e),{prefix:a}=r,o=null!==(n=t.key)&&void 0!==n?n:t.ref;let i=this._values[a];if(i){const e=i.get(o);if(e)return e}else i=this._values[a]=new Map;i.set(o,r);const s=this._scope[a]||(this._scope[a]=[]),l=s.length;return s[l]=t.ref,r.setValue(t,{property:a,itemIndex:l}),r}getValue(e,t){const n=this._values[e];if(n)return n.get(t)}scopeRefs(e,t=this._values){return this._reduceValues(t,(t=>{if(void 0===t.scopePath)throw new Error(`CodeGen: name "${t}" has no value`);return r._`${e}${t.scopePath}`}))}scopeCode(e=this._values,t,n){return this._reduceValues(e,(e=>{if(void 0===e.value)throw new Error(`CodeGen: name "${e}" has no value`);return e.value.code}),t,n)}_reduceValues(e,n,i={},s){let l=r.nil;for(const u in e){const c=e[u];if(!c)continue;const f=i[u]=i[u]||new Map;c.forEach((e=>{if(f.has(e))return;f.set(e,o.Started);let i=n(e);if(i){const n=this.opts.es5?t.varKinds.var:t.varKinds.const;l=r._`${l}${n} ${e} = ${i};${this.opts._n}`}else{if(!(i=null==s?void 0:s(e)))throw new a(e);l=r._`${l}${i}${this.opts._n}`}f.set(e,o.Completed)}))}return l}}},2227:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getData=void 0;const r=n(453),a=n(6776),o=n(4181),i=n(3487),s=n(2141),l=n(4069);t.default=class{constructor(e,t,n){if(function({schema:e,opts:t,self:n},r,a){if(Array.isArray(r.keyword)?!r.keyword.includes(a):r.keyword!==a)throw new Error("ajv implementation error");const o=r.dependencies;if(null==o?void 0:o.some((t=>!Object.prototype.hasOwnProperty.call(e,t))))throw new Error(`parent schema must have dependencies of ${a}: ${o.join(",")}`);if(r.validateSchema&&!r.validateSchema(e[a])){const e="keyword value is invalid: "+n.errorsText(r.validateSchema.errors);if("log"!==t.validateSchema)throw new Error(e);n.logger.error(e)}}(e,t,n),this.gen=e.gen,this.allErrors=e.allErrors,this.keyword=n,this.data=e.data,this.schema=e.schema[n],this.$data=t.$data&&e.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=a.schemaRefOrVal(e,this.schema,n,this.$data),this.schemaType=t.schemaType,this.parentSchema=e.schema,this.params={},this.it=e,this.def=t,this.$data)this.schemaCode=e.gen.const("vSchema",f(this.$data,e));else if(this.schemaCode=this.schemaValue,!function(e,t,n=!1){return!t.length||t.some((t=>"array"===t?Array.isArray(e):"object"===t?e&&"object"==typeof e&&!Array.isArray(e):typeof e==t||n&&void 0===e))}(this.schema,t.schemaType,t.allowUndefined))throw new Error(`${n} value must be ${JSON.stringify(t.schemaType)}`);("code"in t?t.trackErrors:!1!==t.errors)&&(this.errsCount=e.gen.const("_errs",s.default.errors))}result(e,t,n){this.gen.if(i.not(e)),n?n():this.error(),t?(this.gen.else(),t(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(e,t){this.result(e,void 0,t)}fail(e){if(void 0===e)return this.error(),void(this.allErrors||this.gen.if(!1));this.gen.if(e),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(e){if(!this.$data)return this.fail(e);const{schemaCode:t}=this;this.fail(i._`${t} !== undefined && (${i.or(this.invalid$data(),e)})`)}error(e){(e?o.reportExtraError:o.reportError)(this,this.def.error)}$dataError(){o.reportError(this,this.def.$dataError||o.keyword$DataError)}reset(){if(void 0===this.errsCount)throw new Error('add "trackErrors" to keyword definition');o.resetErrorsCount(this.gen,this.errsCount)}ok(e){this.allErrors||this.gen.if(e)}setParams(e,t){t?Object.assign(this.params,e):this.params=e}block$data(e,t,n=i.nil){this.gen.block((()=>{this.check$data(e,n),t()}))}check$data(e=i.nil,t=i.nil){if(!this.$data)return;const{gen:n,schemaCode:r,schemaType:a,def:o}=this;n.if(i.or(i._`${r} === undefined`,t)),e!==i.nil&&n.assign(e,!0),(a.length||o.validateSchema)&&(n.elseIf(this.invalid$data()),this.$dataError(),e!==i.nil&&n.assign(e,!1)),n.else()}invalid$data(){const{gen:e,schemaCode:t,schemaType:n,def:a,it:o}=this;return i.or(function(){if(n.length){if(!(t instanceof i.Name))throw new Error("ajv implementation error");const e=Array.isArray(n)?n:[n];return i._`${r.checkDataTypes(e,t,o.opts.strict,r.DataType.Wrong)}`}return i.nil}(),function(){if(a.validateSchema){const n=e.scopeValue("validate$data",{ref:a.validateSchema});return i._`!${n}(${t})`}return i.nil}())}subschema(e,t){return l.applySubschema(this.it,e,t)}mergeEvaluated(e,t){const{it:n,gen:r}=this;n.opts.unevaluated&&(!0!==n.props&&void 0!==e.props&&(n.props=a.mergeEvaluated.props(r,e.props,n.props,t)),!0!==n.items&&void 0!==e.items&&(n.items=a.mergeEvaluated.items(r,e.items,n.items,t)))}mergeValidEvaluated(e,t){const{it:n,gen:r}=this;if(n.opts.unevaluated&&(!0!==n.props||!0!==n.items))return r.if(t,(()=>this.mergeEvaluated(e,i.Name))),!0}};const u=/^\/(?:[^~]|~0|~1)*$/,c=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function f(e,{dataLevel:t,dataNames:n,dataPathArr:r}){let o,l;if(""===e)return s.default.rootData;if("/"===e[0]){if(!u.test(e))throw new Error(`Invalid JSON-pointer: ${e}`);o=e,l=s.default.rootData}else{const a=c.exec(e);if(!a)throw new Error(`Invalid JSON-pointer: ${e}`);const i=+a[1];if(o=a[2],"#"===o){if(i>=t)throw new Error(p("property/index",i));return r[t-i]}if(i>t)throw new Error(p("data",i));if(l=n[t-i],!o)return l}let f=l;const d=o.split("/");for(const e of d)e&&(l=i._`${l}${i.getProperty(a.unescapeJsonPointer(e))}`,f=i._`${f} && ${l}`);return f;function p(e,n){return`Cannot access ${e} ${n} levels up, current level is ${t}`}}t.getData=f},8727:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MissingRefError=t.ValidationError=void 0;const r=n(2531);class a extends Error{constructor(e){super("validation failed"),this.errors=e,this.ajv=this.validation=!0}}t.ValidationError=a;class o extends Error{constructor(e,t,n){super(n||`can't resolve reference ${t} from id ${e}`),this.missingRef=r.resolveUrl(e,t),this.missingSchema=r.normalizeId(r.getFullPath(this.missingRef))}}t.MissingRefError=o,e.exports={ValidationError:a,MissingRefError:o}},4181:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.extendErrors=t.resetErrorsCount=t.reportExtraError=t.reportError=t.keyword$DataError=t.keywordError=void 0;const r=n(3487),a=n(2141);function o(e,t){const n=e.const("err",t);e.if(r._`${a.default.vErrors} === null`,(()=>e.assign(a.default.vErrors,r._`[${n}]`)),r._`${a.default.vErrors}.push(${n})`),e.code(r._`${a.default.errors}++`)}function i(e,t){const{gen:n,validateName:a,schemaEnv:o}=e;o.$async?n.throw(r._`new ${e.ValidationError}(${t})`):(n.assign(r._`${a}.errors`,t),n.return(!1))}t.keywordError={message:({keyword:e})=>r.str`should pass "${e}" keyword validation`},t.keyword$DataError={message:({keyword:e,schemaType:t})=>t?r.str`"${e}" keyword must be ${t} ($data)`:r.str`"${e}" keyword is invalid ($data)`},t.reportError=function(e,n=t.keywordError,a){const{it:s}=e,{gen:u,compositeRule:c,allErrors:f}=s,d=l(e,n);(null!=a?a:c||f)?o(u,d):i(s,r._`[${d}]`)},t.reportExtraError=function(e,n=t.keywordError){const{it:r}=e,{gen:s,compositeRule:u,allErrors:c}=r;o(s,l(e,n)),u||c||i(r,a.default.vErrors)},t.resetErrorsCount=function(e,t){e.assign(a.default.errors,t),e.if(r._`${a.default.vErrors} !== null`,(()=>e.if(t,(()=>e.assign(r._`${a.default.vErrors}.length`,t)),(()=>e.assign(a.default.vErrors,null)))))},t.extendErrors=function({gen:e,keyword:t,schemaValue:n,data:o,errsCount:i,it:s}){if(void 0===i)throw new Error("ajv implementation error");const l=e.name("err");e.forRange("i",i,a.default.errors,(i=>{e.const(l,r._`${a.default.vErrors}[${i}]`),e.if(r._`${l}.dataPath === undefined`,(()=>e.assign(r._`${l}.dataPath`,r.strConcat(a.default.dataPath,s.errorPath)))),e.assign(r._`${l}.schemaPath`,r.str`${s.errSchemaPath}/${t}`),s.opts.verbose&&(e.assign(r._`${l}.schema`,n),e.assign(r._`${l}.data`,o))}))};const s={keyword:new r.Name("keyword"),schemaPath:new r.Name("schemaPath"),params:new r.Name("params"),propertyName:new r.Name("propertyName"),message:new r.Name("message"),schema:new r.Name("schema"),parentSchema:new r.Name("parentSchema"),instancePath:new r.Name("instancePath")};function l(e,t){const{createErrors:n,opts:a}=e.it;return!1===n?r._`{}`:(a.jtd&&!a.ajvErrors?u:c)(e,t)}function u(e,{message:t}){const{gen:n,keyword:o,it:i}=e,{errorPath:l,errSchemaPath:u,opts:c}=i,f=[[s.instancePath,r.strConcat(a.default.dataPath,l)],[s.schemaPath,r.str`${u}/${o}`]];return c.messages&&f.push([s.message,"function"==typeof t?t(e):t]),n.object(...f)}function c(e,t){const{gen:n,keyword:o,data:i,schemaValue:l,it:u}=e,{topSchemaRef:c,schemaPath:f,errorPath:d,errSchemaPath:p,propertyName:h,opts:m}=u,{params:g,message:v}=t,y=[[s.keyword,o],[a.default.dataPath,r.strConcat(a.default.dataPath,d)],[s.schemaPath,r.str`${p}/${o}`],[s.params,"function"==typeof g?g(e):g||r._`{}`]];return h&&y.push([s.propertyName,h]),m.messages&&y.push([s.message,"function"==typeof v?v(e):v]),m.verbose&&y.push([s.schema,l],[s.parentSchema,r._`${c}${f}`],[a.default.data,i]),n.object(...y)}},5173:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.resolveSchema=t.getCompilingSchema=t.resolveRef=t.compileSchema=t.SchemaEnv=void 0;const r=n(3487),a=n(8727),o=n(2141),i=n(2531),s=n(6776),l=n(4815),u=n(540);class c{constructor(e){var t;let n;this.refs={},this.dynamicAnchors={},"object"==typeof e.schema&&(n=e.schema),this.schema=e.schema,this.root=e.root||this,this.baseId=null!==(t=e.baseId)&&void 0!==t?t:i.normalizeId(null==n?void 0:n.$id),this.localRefs=e.localRefs,this.meta=e.meta,this.$async=null==n?void 0:n.$async,this.refs={}}}function f(e){const t=p.call(this,e);if(t)return t;const n=i.getFullPath(e.root.baseId),{es5:s,lines:u}=this.opts.code,{ownProperties:c}=this.opts,f=new r.CodeGen(this.scope,{es5:s,lines:u,ownProperties:c});let d;e.$async&&(d=f.scopeValue("Error",{ref:a.ValidationError,code:r._`require("ajv/dist/compile/error_classes").ValidationError`}));const h=f.scopeName("validate");e.validateName=h;const m={gen:f,allErrors:this.opts.allErrors,data:o.default.data,parentData:o.default.parentData,parentDataProperty:o.default.parentDataProperty,dataNames:[o.default.data],dataPathArr:[r.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:f.scopeValue("schema",!0===this.opts.code.source?{ref:e.schema,code:r.stringify(e.schema)}:{ref:e.schema}),validateName:h,ValidationError:d,schema:e.schema,schemaEnv:e,rootId:n,baseId:e.baseId||n,schemaPath:r.nil,errSchemaPath:this.opts.jtd?"":"#",errorPath:r._`""`,opts:this.opts,self:this};let g;try{this._compilations.add(e),l.validateFunctionCode(m),f.optimize(this.opts.code.optimize);const t=f.toString();g=`${f.scopeRefs(o.default.scope)}return ${t}`,this.opts.code.process&&(g=this.opts.code.process(g,e));const n=new Function(`${o.default.self}`,`${o.default.scope}`,g)(this,this.scope.get());if(this.scope.value(h,{ref:n}),n.errors=null,n.schema=e.schema,n.schemaEnv=e,e.$async&&(n.$async=!0),!0===this.opts.code.source&&(n.source={validateName:h,validateCode:t,scopeValues:f._values}),this.opts.unevaluated){const{props:e,items:t}=m;n.evaluated={props:e instanceof r.Name?void 0:e,items:t instanceof r.Name?void 0:t,dynamicProps:e instanceof r.Name,dynamicItems:t instanceof r.Name},n.source&&(n.source.evaluated=r.stringify(n.evaluated))}return e.validate=n,e}catch(t){throw delete e.validate,delete e.validateName,g&&this.logger.error("Error compiling schema, function code:",g),t}finally{this._compilations.delete(e)}}function d(e){return i.inlineRef(e.schema,this.opts.inlineRefs)?e.schema:e.validate?e:f.call(this,e)}function p(e){for(const r of this._compilations)if(n=e,(t=r).schema===n.schema&&t.root===n.root&&t.baseId===n.baseId)return r;var t,n}function h(e,t){let n;for(;"string"==typeof(n=this.refs[t]);)t=n;return n||this.schemas[t]||m.call(this,e,t)}function m(e,t){const n=u.parse(t),r=i._getFullPath(n);let a=i.getFullPath(e.baseId);if(Object.keys(e.schema).length>0&&r===a)return v.call(this,n,e);const o=i.normalizeId(r),s=this.refs[o]||this.schemas[o];if("string"==typeof s){const t=m.call(this,e,s);if("object"!=typeof(null==t?void 0:t.schema))return;return v.call(this,n,t)}if("object"==typeof(null==s?void 0:s.schema)){if(s.validate||f.call(this,s),o===i.normalizeId(t)){const{schema:t}=s;return t.$id&&(a=i.resolveUrl(a,t.$id)),new c({schema:t,root:e,baseId:a})}return v.call(this,n,s)}}t.SchemaEnv=c,t.compileSchema=f,t.resolveRef=function(e,t,n){var r;n=i.resolveUrl(t,n);const a=e.refs[n];if(a)return a;let o=h.call(this,e,n);if(void 0===o){const a=null===(r=e.localRefs)||void 0===r?void 0:r[n];a&&(o=new c({schema:a,root:e,baseId:t}))}return void 0!==o?e.refs[n]=d.call(this,o):void 0},t.getCompilingSchema=p,t.resolveSchema=m;const g=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function v(e,{baseId:t,schema:n,root:r}){var a;if("/"!==(null===(a=e.fragment)||void 0===a?void 0:a[0]))return;for(const r of e.fragment.slice(1).split("/")){if("boolean"==typeof n)return;if(void 0===(n=n[s.unescapeFragment(r)]))return;!g.has(r)&&"object"==typeof n&&n.$id&&(t=i.resolveUrl(t,n.$id))}let o;if("boolean"!=typeof n&&n.$ref&&!s.schemaHasRulesButRef(n,this.RULES)){const e=i.resolveUrl(t,n.$ref);o=m.call(this,r,e)}return o=o||new c({schema:n,root:r,baseId:t}),o.schema!==o.root.schema?o:void 0}},2141:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(3487),a={data:new r.Name("data"),valCxt:new r.Name("valCxt"),dataPath:new r.Name("dataPath"),parentData:new r.Name("parentData"),parentDataProperty:new r.Name("parentDataProperty"),rootData:new r.Name("rootData"),dynamicAnchors:new r.Name("dynamicAnchors"),vErrors:new r.Name("vErrors"),errors:new r.Name("errors"),this:new r.Name("this"),self:new r.Name("self"),scope:new r.Name("scope"),json:new r.Name("json"),jsonPos:new r.Name("jsonPos"),jsonLen:new r.Name("jsonLen"),jsonPart:new r.Name("jsonPart")};t.default=a},2531:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getSchemaRefs=t.resolveUrl=t.normalizeId=t._getFullPath=t.getFullPath=t.inlineRef=void 0;const r=n(6776),a=n(6728),o=n(9461),i=n(540),s=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);t.inlineRef=function(e,t=!0){return"boolean"==typeof e||(!0===t?!u(e):!!t&&c(e)<=t)};const l=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function u(e){for(const t in e){if(l.has(t))return!0;const n=e[t];if(Array.isArray(n)&&n.some(u))return!0;if("object"==typeof n&&u(n))return!0}return!1}function c(e){let t=0;for(const n in e){if("$ref"===n)return 1/0;if(t++,!s.has(n)&&("object"==typeof e[n]&&r.eachItem(e[n],(e=>t+=c(e))),t===1/0))return 1/0}return t}function f(e="",t){return!1!==t&&(e=h(e)),d(i.parse(e))}function d(e){return i.serialize(e).split("#")[0]+"#"}t.getFullPath=f,t._getFullPath=d;const p=/#\/?$/;function h(e){return e?e.replace(p,""):""}t.normalizeId=h,t.resolveUrl=function(e,t){return t=h(t),i.resolve(e,t)};const m=/^[a-z_][-a-z0-9._]*$/i;t.getSchemaRefs=function(e){if("boolean"==typeof e)return{};const t=h(e.$id),n={"":t},r=f(t,!1),s={},l=new Set;return o(e,{allKeys:!0},((e,t,a,o)=>{if(void 0===o)return;const f=r+t;let d=n[o];function p(t){if(t=h(d?i.resolve(d,t):t),l.has(t))throw c(t);l.add(t);let n=this.refs[t];return"string"==typeof n&&(n=this.refs[n]),"object"==typeof n?u(e,n.schema,t):t!==h(f)&&("#"===t[0]?(u(e,s[t],t),s[t]=e):this.refs[t]=f),t}function g(e){if("string"==typeof e){if(!m.test(e))throw new Error(`invalid anchor "${e}"`);p.call(this,`#${e}`)}}"string"==typeof e.$id&&(d=p.call(this,e.$id)),g.call(this,e.$anchor),g.call(this,e.$dynamicAnchor),n[t]=d})),s;function u(e,t,n){if(void 0!==t&&!a(e,t))throw c(n)}function c(e){return new Error(`reference "${e}" resolves to more than one schema`)}}},3141:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getRules=t.isJSONType=void 0;const n=new Set(["string","number","integer","boolean","null","object","array"]);t.isJSONType=function(e){return"string"==typeof e&&n.has(e)},t.getRules=function(){const e={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...e,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},e.number,e.string,e.array,e.object],post:{rules:[]},all:{},keywords:{}}}},4069:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.applySubschema=t.Type=void 0;const r=n(4815),a=n(6776),o=n(3487);var i;!function(e){e[e.Num=0]="Num",e[e.Str=1]="Str"}(i=t.Type||(t.Type={})),t.applySubschema=function(e,t,n){const s=function(e,{keyword:t,schemaProp:n,schema:r,schemaPath:i,errSchemaPath:s,topSchemaRef:l}){if(void 0!==t&&void 0!==r)throw new Error('both "keyword" and "schema" passed, only one allowed');if(void 0!==t){const r=e.schema[t];return void 0===n?{schema:r,schemaPath:o._`${e.schemaPath}${o.getProperty(t)}`,errSchemaPath:`${e.errSchemaPath}/${t}`}:{schema:r[n],schemaPath:o._`${e.schemaPath}${o.getProperty(t)}${o.getProperty(n)}`,errSchemaPath:`${e.errSchemaPath}/${t}/${a.escapeFragment(n)}`}}if(void 0!==r){if(void 0===i||void 0===s||void 0===l)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:r,schemaPath:i,topSchemaRef:l,errSchemaPath:s}}throw new Error('either "keyword" or "schema" must be passed')}(e,t);!function(e,t,{dataProp:n,dataPropType:r,data:s,dataTypes:l,propertyName:u}){if(void 0!==s&&void 0!==n)throw new Error('both "data" and "dataProp" passed, only one allowed');const{gen:c}=t;if(void 0!==n){const{errorPath:s,dataPathArr:l,opts:u}=t;f(c.let("data",o._`${t.data}${o.getProperty(n)}`,!0)),e.errorPath=o.str`${s}${function(e,t,n){if(e instanceof o.Name){const r=t===i.Num;return n?r?o._`"[" + ${e} + "]"`:o._`"['" + ${e} + "']"`:r?o._`"/" + ${e}`:o._`"/" + ${e}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return n?o.getProperty(e).toString():"/"+a.escapeJsonPointer(e)}(n,r,u.jsPropertySyntax)}`,e.parentDataProperty=o._`${n}`,e.dataPathArr=[...l,e.parentDataProperty]}function f(n){e.data=n,e.dataLevel=t.dataLevel+1,e.dataTypes=[],t.definedProperties=new Set,e.parentData=t.data,e.dataNames=[...t.dataNames,n]}void 0!==s&&(f(s instanceof o.Name?s:c.let("data",s,!0)),void 0!==u&&(e.propertyName=u)),l&&(e.dataTypes=l)}(s,e,t),function(e,{jtdDiscriminator:t,jtdMetadata:n,compositeRule:r,createErrors:a,allErrors:o}){void 0!==r&&(e.compositeRule=r),void 0!==a&&(e.createErrors=a),void 0!==o&&(e.allErrors=o),e.jtdDiscriminator=t,e.jtdMetadata=n}(s,t);const l={...e,...s,items:void 0,props:void 0};return r.subschemaCode(l,n),l}},4776:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){const t=e.length;let n,r=0,a=0;for(;a<t;)r++,n=e.charCodeAt(a++),n>=55296&&n<=56319&&a<t&&(n=e.charCodeAt(a),56320==(64512&n)&&a++);return r}},6776:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.func=t.setEvaluated=t.evaluatedPropsToName=t.mergeEvaluated=t.eachItem=t.unescapeJsonPointer=t.escapeJsonPointer=t.escapeFragment=t.unescapeFragment=t.schemaRefOrVal=t.schemaHasRulesButRef=t.schemaHasRules=t.checkUnknownRules=t.alwaysValidSchema=t.toHash=void 0;const r=n(3487),a=n(4815);function o(e,t=e.schema){const{opts:n,self:r}=e;if(!n.strict)return;if("boolean"==typeof t)return;const o=r.RULES.keywords;for(const n in t)o[n]||a.checkStrictMode(e,`unknown keyword: "${n}"`)}function i(e,t){if("boolean"==typeof e)return!e;for(const n in e)if(t[n])return!0;return!1}function s(e){return"number"==typeof e?`${e}`:e.replace(/~/g,"~0").replace(/\//g,"~1")}function l(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}function u({mergeNames:e,mergeToName:t,mergeValues:n,resultToName:a}){return(o,i,s,l)=>{const u=void 0===s?i:s instanceof r.Name?(i instanceof r.Name?e(o,i,s):t(o,i,s),s):i instanceof r.Name?(t(o,s,i),i):n(i,s);return l!==r.Name||u instanceof r.Name?u:a(o,u)}}function c(e,t){if(!0===t)return e.var("props",!0);const n=e.var("props",r._`{}`);return void 0!==t&&f(e,n,t),n}function f(e,t,n){Object.keys(n).forEach((n=>e.assign(r._`${t}${r.getProperty(n)}`,!0)))}t.toHash=function(e){const t={};for(const n of e)t[n]=!0;return t},t.alwaysValidSchema=function(e,t){return"boolean"==typeof t?t:0===Object.keys(t).length||(o(e,t),!i(t,e.self.RULES.all))},t.checkUnknownRules=o,t.schemaHasRules=i,t.schemaHasRulesButRef=function(e,t){if("boolean"==typeof e)return!e;for(const n in e)if("$ref"!==n&&t.all[n])return!0;return!1},t.schemaRefOrVal=function({topSchemaRef:e,schemaPath:t},n,a,o){if(!o){if("number"==typeof n||"boolean"==typeof n)return n;if("string"==typeof n)return r._`${n}`}return r._`${e}${t}${r.getProperty(a)}`},t.unescapeFragment=function(e){return l(decodeURIComponent(e))},t.escapeFragment=function(e){return encodeURIComponent(s(e))},t.escapeJsonPointer=s,t.unescapeJsonPointer=l,t.eachItem=function(e,t){if(Array.isArray(e))for(const n of e)t(n);else t(e)},t.mergeEvaluated={props:u({mergeNames:(e,t,n)=>e.if(r._`${n} !== true && ${t} !== undefined`,(()=>{e.if(r._`${t} === true`,(()=>e.assign(n,!0)),(()=>e.assign(n,r._`${n} || {}`).code(r._`Object.assign(${n}, ${t})`)))})),mergeToName:(e,t,n)=>e.if(r._`${n} !== true`,(()=>{!0===t?e.assign(n,!0):(e.assign(n,r._`${n} || {}`),f(e,n,t))})),mergeValues:(e,t)=>!0===e||{...e,...t},resultToName:c}),items:u({mergeNames:(e,t,n)=>e.if(r._`${n} !== true && ${t} !== undefined`,(()=>e.assign(n,r._`${t} === true ? true : ${n} > ${t} ? ${n} : ${t}`))),mergeToName:(e,t,n)=>e.if(r._`${n} !== true`,(()=>e.assign(n,!0===t||r._`${n} > ${t} ? ${n} : ${t}`))),mergeValues:(e,t)=>!0===e||Math.max(e,t),resultToName:(e,t)=>e.var("items",t)})},t.evaluatedPropsToName=c,t.setEvaluated=f,t.func=function(e,t){return e.scopeValue("func",{ref:t,code:t.code})}},8876:(e,t)=>{"use strict";function n(e,t){return t.rules.some((t=>r(e,t)))}function r(e,t){var n;return void 0!==e[t.keyword]||(null===(n=t.definition.implements)||void 0===n?void 0:n.some((t=>void 0!==e[t])))}Object.defineProperty(t,"__esModule",{value:!0}),t.shouldUseRule=t.shouldUseGroup=t.schemaHasRulesForType=void 0,t.schemaHasRulesForType=function({schema:e,self:t},r){const a=t.RULES.types[r];return a&&!0!==a&&n(e,a)},t.shouldUseGroup=n,t.shouldUseRule=r},5667:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.boolOrEmptySchema=t.topBoolOrEmptySchema=void 0;const r=n(4181),a=n(3487),o=n(2141),i={message:"boolean schema is false"};function s(e,t){const{gen:n,data:a}=e,o={gen:n,keyword:"false schema",data:a,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:e};r.reportError(o,i,t)}t.topBoolOrEmptySchema=function(e){const{gen:t,schema:n,validateName:r}=e;!1===n?s(e,!1):"object"==typeof n&&!0===n.$async?t.return(o.default.data):(t.assign(a._`${r}.errors`,null),t.return(!0))},t.boolOrEmptySchema=function(e,t){const{gen:n,schema:r}=e;!1===r?(n.var(t,!1),s(e)):n.var(t,!0)}},453:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.reportTypeError=t.checkDataTypes=t.checkDataType=t.coerceAndCheckDataType=t.getJSONTypes=t.getSchemaTypes=t.DataType=void 0;const r=n(3141),a=n(8876),o=n(4181),i=n(3487),s=n(6776);var l;function u(e){const t=Array.isArray(e)?e:e?[e]:[];if(t.every(r.isJSONType))return t;throw new Error("type must be JSONType or JSONType[]: "+t.join(","))}!function(e){e[e.Correct=0]="Correct",e[e.Wrong=1]="Wrong"}(l=t.DataType||(t.DataType={})),t.getSchemaTypes=function(e){const t=u(e.type);if(t.includes("null")){if(!1===e.nullable)throw new Error("type: null contradicts nullable: false")}else{if(!t.length&&void 0!==e.nullable)throw new Error('"nullable" cannot be used without "type"');!0===e.nullable&&t.push("null")}return t},t.getJSONTypes=u,t.coerceAndCheckDataType=function(e,t){const{gen:n,data:r,opts:o}=e,s=function(e,t){return t?e.filter((e=>c.has(e)||"array"===t&&"array"===e)):[]}(t,o.coerceTypes),u=t.length>0&&!(0===s.length&&1===t.length&&a.schemaHasRulesForType(e,t[0]));if(u){const a=d(t,r,o.strict,l.Wrong);n.if(a,(()=>{s.length?function(e,t,n){const{gen:r,data:a,opts:o}=e,s=r.let("dataType",i._`typeof ${a}`),l=r.let("coerced",i._`undefined`);"array"===o.coerceTypes&&r.if(i._`${s} == 'object' && Array.isArray(${a}) && ${a}.length == 1`,(()=>r.assign(a,i._`${a}[0]`).assign(s,i._`typeof ${a}`).if(d(t,a,o.strict),(()=>r.assign(l,a))))),r.if(i._`${l} !== undefined`);for(const e of n)(c.has(e)||"array"===e&&"array"===o.coerceTypes)&&u(e);function u(e){switch(e){case"string":return void r.elseIf(i._`${s} == "number" || ${s} == "boolean"`).assign(l,i._`"" + ${a}`).elseIf(i._`${a} === null`).assign(l,i._`""`);case"number":return void r.elseIf(i._`${s} == "boolean" || ${a} === null - || (${s} == "string" && ${a} && ${a} == +${a})`).assign(l,i._`+${a}`);case"integer":return void r.elseIf(i._`${s} === "boolean" || ${a} === null - || (${s} === "string" && ${a} && ${a} == +${a} && !(${a} % 1))`).assign(l,i._`+${a}`);case"boolean":return void r.elseIf(i._`${a} === "false" || ${a} === 0 || ${a} === null`).assign(l,!1).elseIf(i._`${a} === "true" || ${a} === 1`).assign(l,!0);case"null":return r.elseIf(i._`${a} === "" || ${a} === 0 || ${a} === false`),void r.assign(l,null);case"array":r.elseIf(i._`${s} === "string" || ${s} === "number" - || ${s} === "boolean" || ${a} === null`).assign(l,i._`[${a}]`)}}r.else(),h(e),r.endIf(),r.if(i._`${l} !== undefined`,(()=>{r.assign(a,l),function({gen:e,parentData:t,parentDataProperty:n},r){e.if(i._`${t} !== undefined`,(()=>e.assign(i._`${t}[${n}]`,r)))}(e,l)}))}(e,t,s):h(e)}))}return u};const c=new Set(["string","number","integer","boolean","null"]);function f(e,t,n,r=l.Correct){const a=r===l.Correct?i.operators.EQ:i.operators.NEQ;let o;switch(e){case"null":return i._`${t} ${a} null`;case"array":o=i._`Array.isArray(${t})`;break;case"object":o=i._`${t} && typeof ${t} == "object" && !Array.isArray(${t})`;break;case"integer":o=s(i._`!(${t} % 1) && !isNaN(${t})`);break;case"number":o=s();break;default:return i._`typeof ${t} ${a} ${e}`}return r===l.Correct?o:i.not(o);function s(e=i.nil){return i.and(i._`typeof ${t} == "number"`,e,n?i._`isFinite(${t})`:i.nil)}}function d(e,t,n,r){if(1===e.length)return f(e[0],t,n,r);let a;const o=s.toHash(e);if(o.array&&o.object){const e=i._`typeof ${t} != "object"`;a=o.null?e:i._`!${t} || ${e}`,delete o.null,delete o.array,delete o.object}else a=i.nil;o.number&&delete o.integer;for(const e in o)a=i.and(a,f(e,t,n,r));return a}t.checkDataType=f,t.checkDataTypes=d;const p={message:({schema:e})=>i.str`should be ${e}`,params:({schema:e,schemaValue:t})=>"string"==typeof e?i._`{type: ${e}}`:i._`{type: ${t}}`};function h(e){const t=function(e){const{gen:t,data:n,schema:r}=e,a=s.schemaRefOrVal(e,r,"type");return{gen:t,keyword:"type",data:n,schema:r.type,schemaCode:a,schemaValue:a,parentSchema:r,params:{},it:e}}(e);o.reportError(t,p)}t.reportTypeError=h},2966:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.assignDefaults=void 0;const r=n(3487),a=n(4815);function o(e,t,n){const{gen:o,compositeRule:i,data:s,opts:l}=e;if(void 0===n)return;const u=r._`${s}${r.getProperty(t)}`;if(i)return void a.checkStrictMode(e,`default is ignored for: ${u}`);let c=r._`${u} === undefined`;"empty"===l.useDefaults&&(c=r._`${c} || ${u} === null || ${u} === ""`),o.if(c,r._`${u} = ${r.stringify(n)}`)}t.assignDefaults=function(e,t){const{properties:n,items:r}=e.schema;if("object"===t&&n)for(const t in n)o(e,t,n[t].default);else"array"===t&&Array.isArray(r)&&r.forEach(((t,n)=>o(e,n,t.default)))}},4815:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.checkStrictMode=t.schemaCxtHasRules=t.subschemaCode=t.validateFunctionCode=void 0;const r=n(5667),a=n(453),o=n(7449),i=n(3487),s=n(2141),l=n(2531),u=n(6776);function c({gen:e,validateName:t,schema:n,schemaEnv:r,opts:a},o){a.code.es5?e.func(t,i._`${s.default.data}, ${s.default.valCxt}`,r.$async,(()=>{e.code(i._`"use strict"; ${f(n,a)}`),function(e,t){e.if(s.default.valCxt,(()=>{e.var(s.default.dataPath,i._`${s.default.valCxt}.${s.default.dataPath}`),e.var(s.default.parentData,i._`${s.default.valCxt}.${s.default.parentData}`),e.var(s.default.parentDataProperty,i._`${s.default.valCxt}.${s.default.parentDataProperty}`),e.var(s.default.rootData,i._`${s.default.valCxt}.${s.default.rootData}`),t.dynamicRef&&e.var(s.default.dynamicAnchors,i._`${s.default.valCxt}.${s.default.dynamicAnchors}`)}),(()=>{e.var(s.default.dataPath,i._`""`),e.var(s.default.parentData,i._`undefined`),e.var(s.default.parentDataProperty,i._`undefined`),e.var(s.default.rootData,s.default.data),t.dynamicRef&&e.var(s.default.dynamicAnchors,i._`{}`)}))}(e,a),e.code(o)})):e.func(t,i._`${s.default.data}, ${function(e){return i._`{${s.default.dataPath}="", ${s.default.parentData}, ${s.default.parentDataProperty}, ${s.default.rootData}=${s.default.data}${e.dynamicRef?i._`, ${s.default.dynamicAnchors}={}`:i.nil}}={}`}(a)}`,r.$async,(()=>e.code(f(n,a)).code(o)))}function f(e,t){return"object"==typeof e&&e.$id&&(t.code.source||t.code.process)?i._`/*# sourceURL=${e.$id} */`:i.nil}function d({schema:e,self:t}){if("boolean"==typeof e)return!e;for(const n in e)if(t.RULES.all[n])return!0;return!1}function p(e){return"boolean"!=typeof e.schema}function h(e){u.checkUnknownRules(e),function(e){const{schema:t,errSchemaPath:n,opts:r,self:a}=e;t.$ref&&r.ignoreKeywordsWithRef&&u.schemaHasRulesButRef(t,a.RULES)&&a.logger.warn(`$ref: keywords ignored in schema at path "${n}"`)}(e)}function m(e,t){if(e.opts.jtd)return o.schemaKeywords(e,[],!1,t);const n=a.getSchemaTypes(e.schema),r=a.coerceAndCheckDataType(e,n);o.schemaKeywords(e,n,!r,t)}function g({gen:e,schemaEnv:t,schema:n,errSchemaPath:r,opts:a}){const o=n.$comment;if(!0===a.$comment)e.code(i._`${s.default.self}.logger.log(${o})`);else if("function"==typeof a.$comment){const n=i.str`${r}/$comment`,a=e.scopeValue("root",{ref:t.root});e.code(i._`${s.default.self}.opts.$comment(${o}, ${n}, ${a}.schema)`)}}function v(e,t,n=e.opts.strict){if(n){if(t=`strict mode: ${t}`,!0===n)throw new Error(t);e.self.logger.warn(t)}}t.validateFunctionCode=function(e){p(e)&&(h(e),d(e))?function(e){const{schema:t,opts:n,gen:r}=e;c(e,(()=>{n.$comment&&t.$comment&&g(e),function(e){const{schema:t,opts:n}=e;void 0!==t.default&&n.useDefaults&&n.strict&&v(e,"default is ignored in the schema root")}(e),r.let(s.default.vErrors,null),r.let(s.default.errors,0),n.unevaluated&&function(e){const{gen:t,validateName:n}=e;e.evaluated=t.const("evaluated",i._`${n}.evaluated`),t.if(i._`${e.evaluated}.dynamicProps`,(()=>t.assign(i._`${e.evaluated}.props`,i._`undefined`))),t.if(i._`${e.evaluated}.dynamicItems`,(()=>t.assign(i._`${e.evaluated}.items`,i._`undefined`)))}(e),m(e),function(e){const{gen:t,schemaEnv:n,validateName:r,ValidationError:a,opts:o}=e;n.$async?t.if(i._`${s.default.errors} === 0`,(()=>t.return(s.default.data)),(()=>t.throw(i._`new ${a}(${s.default.vErrors})`))):(t.assign(i._`${r}.errors`,s.default.vErrors),o.unevaluated&&function({gen:e,evaluated:t,props:n,items:r}){n instanceof i.Name&&e.assign(i._`${t}.props`,n),r instanceof i.Name&&e.assign(i._`${t}.items`,r)}(e),t.return(i._`${s.default.errors} === 0`))}(e)}))}(e):c(e,(()=>r.topBoolOrEmptySchema(e)))},t.subschemaCode=function(e,t){p(e)&&(h(e),d(e))?function(e,t){const{schema:n,gen:r,opts:a}=e;a.$comment&&n.$comment&&g(e),function(e){e.schema.$id&&(e.baseId=l.resolveUrl(e.baseId,e.schema.$id))}(e),function(e){if(e.schema.$async&&!e.schemaEnv.$async)throw new Error("async schema in sync schema")}(e);const o=r.const("_errs",s.default.errors);m(e,o),r.var(t,i._`${o} === ${s.default.errors}`)}(e,t):r.boolOrEmptySchema(e,t)},t.schemaCxtHasRules=d,t.checkStrictMode=v},7449:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.schemaKeywords=void 0;const r=n(8876),a=n(453),o=n(2966),i=n(5005),s=n(6776),l=n(4815),u=n(3487),c=n(2141);function f(e,t){const{gen:n,schema:a,opts:{useDefaults:s}}=e;s&&o.assignDefaults(e,t.type),n.block((()=>{for(const n of t.rules)r.shouldUseRule(a,n)&&i.keywordCode(e,n.keyword,n.definition,t.type)}))}function d(e,t){return e.includes(t)||"integer"===t&&e.includes("number")}function p(e,t){t+=` at "${e.schemaEnv.baseId+e.errSchemaPath}" (strictTypes)`,l.checkStrictMode(e,t,e.opts.strictTypes)}t.schemaKeywords=function(e,t,n,o){const{gen:l,schema:h,data:m,allErrors:g,opts:v,self:y}=e,{RULES:b}=y;function w(i){r.shouldUseGroup(h,i)&&(i.type?(l.if(a.checkDataType(i.type,m,v.strict)),f(e,i),1===t.length&&t[0]===i.type&&n&&(l.else(),a.reportTypeError(e)),l.endIf()):f(e,i),g||l.if(u._`${c.default.errors} === ${o||0}`))}!h.$ref||!v.ignoreKeywordsWithRef&&s.schemaHasRulesButRef(h,b)?(v.jtd||function(e,t){!e.schemaEnv.meta&&e.opts.strictTypes&&(function(e,t){t.length&&(e.dataTypes.length?(t.forEach((t=>{d(e.dataTypes,t)||p(e,`type "${t}" not allowed by context "${e.dataTypes.join(",")}"`)})),e.dataTypes=e.dataTypes.filter((e=>d(t,e)))):e.dataTypes=t)}(e,t),e.opts.allowUnionTypes||function(e,t){t.length>1&&(2!==t.length||!t.includes("null"))&&p(e,"use allowUnionTypes to allow union type keyword")}(e,t),function(e,t){const n=e.self.RULES.all;for(const a in n){const o=n[a];if("object"==typeof o&&r.shouldUseRule(e.schema,o)){const{type:n}=o.definition;n.length&&!n.some((e=>{return r=e,(n=t).includes(r)||"number"===r&&n.includes("integer");var n,r}))&&p(e,`missing type "${n.join(",")}" for keyword "${a}"`)}}}(e,e.dataTypes))}(e,t),l.block((()=>{for(const e of b.rules)w(e);w(b.post)}))):l.block((()=>i.keywordCode(e,"$ref",b.all.$ref.definition)))}},5005:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.keywordCode=void 0;const r=n(2227),a=n(4181),o=n(412),i=n(3487),s=n(2141);function l(e,t){var n;const{gen:r,keyword:l,schema:f,parentSchema:d,$data:p,it:h}=e;!function({schemaEnv:e},t){if(t.async&&!e.$async)throw new Error("async keyword in sync schema")}(h,t);const m=!p&&t.compile?t.compile.call(h.self,f,d,h):t.validate,g=c(r,l,m),v=r.let("valid");function y(n=(t.async?i._`await `:i.nil)){const a=h.opts.passContext?s.default.this:s.default.self,l=!("compile"in t&&!p||!1===t.schema);r.assign(v,i._`${n}${o.callValidateCode(e,g,a,l)}`,t.modifying)}function b(e){var n;r.if(i.not(null!==(n=t.valid)&&void 0!==n?n:v),e)}e.block$data(v,(function(){if(!1===t.errors)y(),t.modifying&&u(e),b((()=>e.error()));else{const n=t.async?function(){const e=r.let("ruleErrs",null);return r.try((()=>y(i._`await `)),(t=>r.assign(v,!1).if(i._`${t} instanceof ${h.ValidationError}`,(()=>r.assign(e,i._`${t}.errors`)),(()=>r.throw(t))))),e}():function(){const e=i._`${g}.errors`;return r.assign(e,null),y(i.nil),e}();t.modifying&&u(e),b((()=>function(e,t){const{gen:n}=e;n.if(i._`Array.isArray(${t})`,(()=>{n.assign(s.default.vErrors,i._`${s.default.vErrors} === null ? ${t} : ${s.default.vErrors}.concat(${t})`).assign(s.default.errors,i._`${s.default.vErrors}.length`),a.extendErrors(e)}),(()=>e.error()))}(e,n)))}})),e.ok(null!==(n=t.valid)&&void 0!==n?n:v)}function u(e){const{gen:t,data:n,it:r}=e;t.if(r.parentData,(()=>t.assign(n,i._`${r.parentData}[${r.parentDataProperty}]`)))}function c(e,t,n){if(void 0===n)throw new Error(`keyword "${t}" failed to compile`);return e.scopeValue("keyword","function"==typeof n?{ref:n}:{ref:n,code:i.stringify(n)})}t.keywordCode=function(e,t,n,a){const o=new r.default(e,n,t);"code"in n?n.code(o,a):o.$data&&n.validate?l(o,n):"macro"in n?function(e,t){const{gen:n,keyword:r,schema:a,parentSchema:o,it:s}=e,l=t.macro.call(s.self,a,o,s),u=c(n,r,l);!1!==s.opts.validateSchema&&s.self.validateSchema(l,!0);const f=n.name("valid");e.subschema({schema:l,schemaPath:i.nil,errSchemaPath:`${s.errSchemaPath}/${r}`,topSchemaRef:u,compositeRule:!0},f),e.pass(f,(()=>e.error(!0)))}(o,n):(n.compile||n.validate)&&l(o,n)}},7159:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CodeGen=t.Name=t.nil=t.stringify=t.str=t._=t.KeywordCxt=void 0;const r=n(2227);t.KeywordCxt=r.default;var a=n(3487);Object.defineProperty(t,"_",{enumerable:!0,get:function(){return a._}}),Object.defineProperty(t,"str",{enumerable:!0,get:function(){return a.str}}),Object.defineProperty(t,"stringify",{enumerable:!0,get:function(){return a.stringify}}),Object.defineProperty(t,"nil",{enumerable:!0,get:function(){return a.nil}}),Object.defineProperty(t,"Name",{enumerable:!0,get:function(){return a.Name}}),Object.defineProperty(t,"CodeGen",{enumerable:!0,get:function(){return a.CodeGen}});const o=n(8727),i=n(3141),s=n(5173),l=n(3487),u=n(2531),c=n(453),f=n(6776),d=n(4775),p=["removeAdditional","useDefaults","coerceTypes"],h=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),m={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",schemaId:"JSON Schema draft-04 is not supported in Ajv v7.",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",strictNumbers:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key."},g={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'};function v(e){var t,n,r,a,o,i,s,l,u,c,f,d;const p=null===(t=e.strict)||void 0===t||t,h=!!p&&"log",m=null===(n=e.code)||void 0===n?void 0:n.optimize,g=!0===m||void 0===m?1:m||0;return{strict:p,strictTypes:null!==(r=e.strictTypes)&&void 0!==r?r:h,strictTuples:null!==(a=e.strictTuples)&&void 0!==a?a:h,code:e.code?{...e.code,optimize:g}:{optimize:g},loopRequired:null!==(o=e.loopRequired)&&void 0!==o?o:1/0,loopEnum:null!==(i=e.loopEnum)&&void 0!==i?i:1/0,meta:null===(s=e.meta)||void 0===s||s,messages:null===(l=e.messages)||void 0===l||l,inlineRefs:null===(u=e.inlineRefs)||void 0===u||u,addUsedSchema:null===(c=e.addUsedSchema)||void 0===c||c,validateSchema:null===(f=e.validateSchema)||void 0===f||f,validateFormats:null===(d=e.validateFormats)||void 0===d||d}}class y{constructor(e={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,e=this.opts={...e,...v(e)};const{es5:t,lines:n}=this.opts.code;this.scope=new l.ValueScope({scope:{},prefixes:h,es5:t,lines:n}),this.logger=function(e){if(!1===e)return S;if(void 0===e)return console;if(e.log&&e.warn&&e.error)return e;throw new Error("logger must implement log, warn and error methods")}(e.logger);const r=e.validateFormats;e.validateFormats=!1,this.RULES=i.getRules(),b.call(this,m,e,"NOT SUPPORTED"),b.call(this,g,e,"DEPRECATED","warn"),this._metaOpts=k.call(this),e.formats&&x.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),e.keywords&&E.call(this,e.keywords),"object"==typeof e.meta&&this.addMetaSchema(e.meta),_.call(this),e.validateFormats=r}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){const{$data:e,meta:t}=this.opts;t&&e&&this.addMetaSchema(d,d.$id,!1)}defaultMeta(){const{meta:e}=this.opts;return this.opts.defaultMeta="object"==typeof e?e.$id||e:void 0}validate(e,t){let n;if("string"==typeof e){if(n=this.getSchema(e),!n)throw new Error(`no schema with key or ref "${e}"`)}else n=this.compile(e);const r=n(t);return"$async"in n||(this.errors=n.errors),r}compile(e,t){const n=this._addSchema(e,t);return n.validate||this._compileSchemaEnv(n)}compileAsync(e,t){if("function"!=typeof this.opts.loadSchema)throw new Error("options.loadSchema should be a function");const{loadSchema:n}=this.opts;return r.call(this,e,t);async function r(e,t){await a.call(this,e.$schema);const n=this._addSchema(e,t);return n.validate||i.call(this,n)}async function a(e){e&&!this.getSchema(e)&&await r.call(this,{$ref:e},!0)}async function i(e){try{return this._compileSchemaEnv(e)}catch(t){if(!(t instanceof o.MissingRefError))throw t;return s.call(this,t),await l.call(this,t.missingSchema),i.call(this,e)}}function s({missingSchema:e,missingRef:t}){if(this.refs[e])throw new Error(`AnySchema ${e} is loaded but ${t} cannot be resolved`)}async function l(e){const n=await u.call(this,e);this.refs[e]||await a.call(this,n.$schema),this.refs[e]||this.addSchema(n,e,t)}async function u(e){const t=this._loading[e];if(t)return t;try{return await(this._loading[e]=n(e))}finally{delete this._loading[e]}}}addSchema(e,t,n,r=this.opts.validateSchema){if(Array.isArray(e)){for(const t of e)this.addSchema(t,void 0,n,r);return this}let a;if("object"==typeof e&&(a=e.$id,void 0!==a&&"string"!=typeof a))throw new Error("schema id must be string");return t=u.normalizeId(t||a),this._checkUnique(t),this.schemas[t]=this._addSchema(e,n,r,!0),this}addMetaSchema(e,t,n=this.opts.validateSchema){return this.addSchema(e,t,!0,n),this}validateSchema(e,t){if("boolean"==typeof e)return!0;let n;if(n=e.$schema,void 0!==n&&"string"!=typeof n)throw new Error("$schema must be a string");if(n=n||this.opts.defaultMeta||this.defaultMeta(),!n)return this.logger.warn("meta-schema not available"),this.errors=null,!0;const r=this.validate(n,e);if(!r&&t){const e="schema is invalid: "+this.errorsText();if("log"!==this.opts.validateSchema)throw new Error(e);this.logger.error(e)}return r}getSchema(e){let t;for(;"string"==typeof(t=w.call(this,e));)e=t;if(void 0===t){const n=new s.SchemaEnv({schema:{}});if(t=s.resolveSchema.call(this,n,e),!t)return;this.refs[e]=t}return t.validate||this._compileSchemaEnv(t)}removeSchema(e){if(e instanceof RegExp)return this._removeAllSchemas(this.schemas,e),this._removeAllSchemas(this.refs,e),this;switch(typeof e){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{const t=w.call(this,e);return"object"==typeof t&&this._cache.delete(t.schema),delete this.schemas[e],delete this.refs[e],this}case"object":{const t=e;this._cache.delete(t);let n=e.$id;return n&&(n=u.normalizeId(n),delete this.schemas[n],delete this.refs[n]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(e){for(const t of e)this.addKeyword(t);return this}addKeyword(e,t){let n;if("string"==typeof e)n=e,"object"==typeof t&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),t.keyword=n);else{if("object"!=typeof e||void 0!==t)throw new Error("invalid addKeywords parameters");if(n=(t=e).keyword,Array.isArray(n)&&!n.length)throw new Error("addKeywords: keyword must be string or non-empty array")}if(P.call(this,n,t),!t)return f.eachItem(n,(e=>O.call(this,e))),this;j.call(this,t);const r={...t,type:c.getJSONTypes(t.type),schemaType:c.getJSONTypes(t.schemaType)};return f.eachItem(n,0===r.type.length?e=>O.call(this,e,r):e=>r.type.forEach((t=>O.call(this,e,r,t)))),this}getKeyword(e){const t=this.RULES.all[e];return"object"==typeof t?t.definition:!!t}removeKeyword(e){const{RULES:t}=this;delete t.keywords[e],delete t.all[e];for(const n of t.rules){const t=n.rules.findIndex((t=>t.keyword===e));t>=0&&n.rules.splice(t,1)}return this}addFormat(e,t){return"string"==typeof t&&(t=new RegExp(t)),this.formats[e]=t,this}errorsText(e=this.errors,{separator:t=", ",dataVar:n="data"}={}){return e&&0!==e.length?e.map((e=>`${n}${e.dataPath} ${e.message}`)).reduce(((e,n)=>e+t+n)):"No errors"}$dataMetaSchema(e,t){const n=this.RULES.all;e=JSON.parse(JSON.stringify(e));for(const r of t){const t=r.split("/").slice(1);let a=e;for(const e of t)a=a[e];for(const e in n){const t=n[e];if("object"!=typeof t)continue;const{$data:r}=t.definition,o=a[e];r&&o&&(a[e]=I(o))}}return e}_removeAllSchemas(e,t){for(const n in e){const r=e[n];t&&!t.test(n)||("string"==typeof r?delete e[n]:r&&!r.meta&&(this._cache.delete(r.schema),delete e[n]))}}_addSchema(e,t,n=this.opts.validateSchema,r=this.opts.addUsedSchema){if("object"!=typeof e){if(this.opts.jtd)throw new Error("schema must be object");if("boolean"!=typeof e)throw new Error("schema must be object or boolean")}let a=this._cache.get(e);if(void 0!==a)return a;const o=u.getSchemaRefs.call(this,e);a=new s.SchemaEnv({schema:e,meta:t,localRefs:o}),this._cache.set(a.schema,a);const i=a.baseId;return r&&!i.startsWith("#")&&(i&&this._checkUnique(i),this.refs[i]=a),n&&this.validateSchema(e,!0),a}_checkUnique(e){if(this.schemas[e]||this.refs[e])throw new Error(`schema with key or id "${e}" already exists`)}_compileSchemaEnv(e){if(e.meta?this._compileMetaSchema(e):s.compileSchema.call(this,e),!e.validate)throw new Error("ajv implementation error");return e.validate}_compileMetaSchema(e){const t=this.opts;this.opts=this._metaOpts;try{s.compileSchema.call(this,e)}finally{this.opts=t}}}function b(e,t,n,r="error"){for(const a in e){const o=a;o in t&&this.logger[r](`${n}: option ${a}. ${e[o]}`)}}function w(e){return e=u.normalizeId(e),this.schemas[e]||this.refs[e]}function _(){const e=this.opts.schemas;if(e)if(Array.isArray(e))this.addSchema(e);else for(const t in e)this.addSchema(e[t],t)}function x(){for(const e in this.opts.formats){const t=this.opts.formats[e];t&&this.addFormat(e,t)}}function E(e){if(Array.isArray(e))this.addVocabulary(e);else{this.logger.warn("keywords option as map is deprecated, pass array");for(const t in e){const n=e[t];n.keyword||(n.keyword=t),this.addKeyword(n)}}}function k(){const e={...this.opts};for(const t of p)delete e[t];return e}t.default=y,y.ValidationError=o.ValidationError,y.MissingRefError=o.MissingRefError;const S={log(){},warn(){},error(){}},$=/^[a-z_$][a-z0-9_$:-]*$/i;function P(e,t){const{RULES:n}=this;if(f.eachItem(e,(e=>{if(n.keywords[e])throw new Error(`Keyword ${e} is already defined`);if(!$.test(e))throw new Error(`Keyword ${e} has invalid name`)})),t&&t.$data&&!("code"in t)&&!("validate"in t))throw new Error('$data keyword must have "code" or "validate" function')}function O(e,t,n){var r;const a=null==t?void 0:t.post;if(n&&a)throw new Error('keyword with "post" flag cannot have "type"');const{RULES:o}=this;let i=a?o.post:o.rules.find((({type:e})=>e===n));if(i||(i={type:n,rules:[]},o.rules.push(i)),o.keywords[e]=!0,!t)return;const s={keyword:e,definition:{...t,type:c.getJSONTypes(t.type),schemaType:c.getJSONTypes(t.schemaType)}};t.before?C.call(this,i,s,t.before):i.rules.push(s),o.all[e]=s,null===(r=t.implements)||void 0===r||r.forEach((e=>this.addKeyword(e)))}function C(e,t,n){const r=e.rules.findIndex((e=>e.keyword===n));r>=0?e.rules.splice(r,0,t):(e.rules.push(t),this.logger.warn(`rule ${n} is not defined`))}function j(e){let{metaSchema:t}=e;void 0!==t&&(e.$data&&this.opts.$data&&(t=I(t)),e.validateSchema=this.compile(t,!0))}const N={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function I(e){return{anyOf:[e,N]}}},4783:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(3487),a=n(4069),o=n(6776),i=n(4815),s={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:{message:({params:{len:e}})=>r.str`should NOT have more than ${e} items`,params:({params:{len:e}})=>r._`{limit: ${e}}`},code(e){const{gen:t,schema:n,parentSchema:s,data:l,it:u}=e,{items:c}=s;if(!Array.isArray(c))return void i.checkStrictMode(u,'"additionalItems" is ignored when "items" is not an array of schemas');u.items=!0;const f=t.const("len",r._`${l}.length`);if(!1===n)e.setParams({len:c.length}),e.pass(r._`${f} <= ${c.length}`);else if("object"==typeof n&&!o.alwaysValidSchema(u,n)){const n=t.var("valid",r._`${f} <= ${c.length}`);t.if(r.not(n),(()=>function(n){t.forRange("i",c.length,f,(o=>{e.subschema({keyword:"additionalItems",dataProp:o,dataPropType:a.Type.Num},n),u.allErrors||t.if(r.not(n),(()=>t.break()))}))}(n))),e.ok(n)}}};t.default=s},9351:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(412),a=n(3487),o=n(2141),i=n(4069),s=n(6776),l={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:{message:"should NOT have additional properties",params:({params:e})=>a._`{additionalProperty: ${e.additionalProperty}}`},code(e){const{gen:t,schema:n,parentSchema:l,data:u,errsCount:c,it:f}=e;if(!c)throw new Error("ajv implementation error");const{allErrors:d,opts:p}=f;if(f.props=!0,"all"!==p.removeAdditional&&s.alwaysValidSchema(f,n))return;const h=r.allSchemaProperties(l.properties),m=r.allSchemaProperties(l.patternProperties);function g(e){t.code(a._`delete ${u}[${e}]`)}function v(r){if("all"===p.removeAdditional||p.removeAdditional&&!1===n)g(r);else{if(!1===n)return e.setParams({additionalProperty:r}),e.error(),void(d||t.break());if("object"==typeof n&&!s.alwaysValidSchema(f,n)){const n=t.name("valid");"failing"===p.removeAdditional?(y(r,n,!1),t.if(a.not(n),(()=>{e.reset(),g(r)}))):(y(r,n),d||t.if(a.not(n),(()=>t.break())))}}}function y(t,n,r){const a={keyword:"additionalProperties",dataProp:t,dataPropType:i.Type.Str};!1===r&&Object.assign(a,{compositeRule:!0,createErrors:!1,allErrors:!1}),e.subschema(a,n)}t.forIn("key",u,(e=>{h.length||m.length?t.if(function(e){let n;if(h.length>8){const a=s.schemaRefOrVal(f,l.properties,"properties");n=r.isOwnProperty(t,a,e)}else n=h.length?a.or(...h.map((t=>a._`${e} === ${t}`))):a.nil;return m.length&&(n=a.or(n,...m.map((n=>a._`${r.usePattern(t,n)}.test(${e})`)))),a.not(n)}(e),(()=>v(e))):v(e)})),e.ok(a._`${c} === ${o.default.errors}`)}};t.default=l},1125:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(6776),a={keyword:"allOf",schemaType:"array",code(e){const{gen:t,schema:n,it:a}=e;if(!Array.isArray(n))throw new Error("ajv implementation error");const o=t.name("valid");n.forEach(((t,n)=>{if(r.alwaysValidSchema(a,t))return;const i=e.subschema({keyword:"allOf",schemaProp:n},o);e.ok(o),e.mergeEvaluated(i)}))}};t.default=a},19:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:n(412).validateUnion,error:{message:"should match some schema in anyOf"}};t.default=r},9864:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(3487),a=n(4069),o=n(6776),i=n(4815),s={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:{message:({params:{min:e,max:t}})=>void 0===t?r.str`should contain at least ${e} valid item(s)`:r.str`should contain at least ${e} and no more than ${t} valid item(s)`,params:({params:{min:e,max:t}})=>void 0===t?r._`{minContains: ${e}}`:r._`{minContains: ${e}, maxContains: ${t}}`},code(e){const{gen:t,schema:n,parentSchema:s,data:l,it:u}=e;let c,f;const{minContains:d,maxContains:p}=s;u.opts.next?(c=void 0===d?1:d,f=p):c=1;const h=t.const("len",r._`${l}.length`);if(e.setParams({min:c,max:f}),void 0===f&&0===c)return void i.checkStrictMode(u,'"minContains" == 0 without "maxContains": "contains" keyword ignored');if(void 0!==f&&c>f)return i.checkStrictMode(u,'"minContains" > "maxContains" is always invalid'),void e.fail();if(o.alwaysValidSchema(u,n)){let t=r._`${h} >= ${c}`;return void 0!==f&&(t=r._`${t} && ${h} <= ${f}`),void e.pass(t)}u.items=!0;const m=t.name("valid");if(void 0===f&&1===c)g(m,(()=>t.if(m,(()=>t.break()))));else{t.let(m,!1);const e=t.name("_valid"),n=t.let("count",0);g(e,(()=>t.if(e,(()=>function(e){t.code(r._`${e}++`),void 0===f?t.if(r._`${e} >= ${c}`,(()=>t.assign(m,!0).break())):(t.if(r._`${e} > ${f}`,(()=>t.assign(m,!1).break())),1===c?t.assign(m,!0):t.if(r._`${e} >= ${c}`,(()=>t.assign(m,!0))))}(n)))))}function g(n,r){t.forRange("i",0,h,(t=>{e.subschema({keyword:"contains",dataProp:t,dataPropType:a.Type.Num,compositeRule:!0},n),r()}))}e.result(m,(()=>e.reset()))}};t.default=s},7772:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateSchemaDeps=t.validatePropertyDeps=t.error=void 0;const r=n(3487),a=n(6776),o=n(412);t.error={message:({params:{property:e,depsCount:t,deps:n}})=>{const a=1===t?"property":"properties";return r.str`should have ${a} ${n} when property ${e} is present`},params:({params:{property:e,depsCount:t,deps:n,missingProperty:a}})=>r._`{property: ${e}, +;(() => { + var e = { + 1581: (e, t, n) => { + 'use strict' + n(2227).default + n(3487) + const r = n(7159), + a = n(3924), + o = n(98), + i = ['/properties'], + s = 'http://json-schema.org/draft-07/schema' + class l extends r.default { + _addVocabularies() { + ;(super._addVocabularies(), a.default.forEach((e) => this.addVocabulary(e))) + } + _addDefaultMetaSchema() { + if ((super._addDefaultMetaSchema(), !this.opts.meta)) return + const e = this.opts.$data ? this.$dataMetaSchema(o, i) : o + ;(this.addMetaSchema(e, s, !1), (this.refs['http://json-schema.org/schema'] = s)) + } + defaultMeta() { + return (this.opts.defaultMeta = super.defaultMeta() || (this.getSchema(s) ? s : void 0)) + } + } + t.ZP = l + }, + 7023: (e, t) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), + (t.getProperty = + t.safeStringify = + t.stringify = + t.strConcat = + t.addCodeArg = + t.str = + t._ = + t.nil = + t._Code = + t.Name = + t.IDENTIFIER = + t._CodeOrName = + void 0)) + class n {} + ;((t._CodeOrName = n), (t.IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i)) + class r extends n { + constructor(e) { + if ((super(), !t.IDENTIFIER.test(e))) throw new Error('CodeGen: name must be a valid identifier') + this.str = e + } + toString() { + return this.str + } + emptyStr() { + return !1 + } + get names() { + return { [this.str]: 1 } + } + } + t.Name = r + class a extends n { + constructor(e) { + ;(super(), (this._items = 'string' == typeof e ? [e] : e)) + } + toString() { + return this.str + } + emptyStr() { + if (this._items.length > 1) return !1 + const e = this._items[0] + return '' === e || '""' === e + } + get str() { + var e + return null !== (e = this._str) && void 0 !== e ? e : (this._str = this._items.reduce((e, t) => `${e}${t}`, '')) + } + get names() { + var e + return null !== (e = this._names) && void 0 !== e + ? e + : (this._names = this._items.reduce((e, t) => (t instanceof r && (e[t.str] = (e[t.str] || 0) + 1), e), {})) + } + } + function o(e, ...t) { + const n = [e[0]] + let r = 0 + for (; r < t.length; ) (l(n, t[r]), n.push(e[++r])) + return new a(n) + } + ;((t._Code = a), (t.nil = new a('')), (t._ = o)) + const i = new a('+') + function s(e, ...t) { + const n = [c(e[0])] + let r = 0 + for (; r < t.length; ) (n.push(i), l(n, t[r]), n.push(i, c(e[++r]))) + return ( + (function (e) { + let t = 1 + for (; t < e.length - 1; ) { + if (e[t] === i) { + const n = u(e[t - 1], e[t + 1]) + if (void 0 !== n) { + e.splice(t - 1, 3, n) + continue + } + e[t++] = '+' + } + t++ + } + })(n), + new a(n) + ) + } + function l(e, t) { + var n + t instanceof a + ? e.push(...t._items) + : t instanceof r + ? e.push(t) + : e.push('number' == typeof (n = t) || 'boolean' == typeof n || null === n ? n : c(Array.isArray(n) ? n.join(',') : n)) + } + function u(e, t) { + if ('""' === t) return e + if ('""' === e) return t + if ('string' == typeof e) { + if (t instanceof r || '"' !== e[e.length - 1]) return + return 'string' != typeof t ? `${e.slice(0, -1)}${t}"` : '"' === t[0] ? e.slice(0, -1) + t.slice(1) : void 0 + } + return 'string' != typeof t || '"' !== t[0] || e instanceof r ? void 0 : `"${e}${t.slice(1)}` + } + function c(e) { + return JSON.stringify(e) + .replace(/\u2028/g, '\\u2028') + .replace(/\u2029/g, '\\u2029') + } + ;((t.str = s), + (t.addCodeArg = l), + (t.strConcat = function (e, t) { + return t.emptyStr() ? e : e.emptyStr() ? t : s`${e}${t}` + }), + (t.stringify = function (e) { + return new a(c(e)) + }), + (t.safeStringify = c), + (t.getProperty = function (e) { + return 'string' == typeof e && t.IDENTIFIER.test(e) ? new a(`.${e}`) : o`[${e}]` + })) + }, + 3487: (e, t, n) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), + (t.or = + t.and = + t.not = + t.CodeGen = + t.operators = + t.varKinds = + t.ValueScopeName = + t.ValueScope = + t.Scope = + t.Name = + t.stringify = + t.getProperty = + t.nil = + t.strConcat = + t.str = + t._ = + void 0)) + const r = n(7023), + a = n(8490) + var o = n(7023) + ;(Object.defineProperty(t, '_', { + enumerable: !0, + get: function () { + return o._ + }, + }), + Object.defineProperty(t, 'str', { + enumerable: !0, + get: function () { + return o.str + }, + }), + Object.defineProperty(t, 'strConcat', { + enumerable: !0, + get: function () { + return o.strConcat + }, + }), + Object.defineProperty(t, 'nil', { + enumerable: !0, + get: function () { + return o.nil + }, + }), + Object.defineProperty(t, 'getProperty', { + enumerable: !0, + get: function () { + return o.getProperty + }, + }), + Object.defineProperty(t, 'stringify', { + enumerable: !0, + get: function () { + return o.stringify + }, + }), + Object.defineProperty(t, 'Name', { + enumerable: !0, + get: function () { + return o.Name + }, + })) + var i = n(8490) + ;(Object.defineProperty(t, 'Scope', { + enumerable: !0, + get: function () { + return i.Scope + }, + }), + Object.defineProperty(t, 'ValueScope', { + enumerable: !0, + get: function () { + return i.ValueScope + }, + }), + Object.defineProperty(t, 'ValueScopeName', { + enumerable: !0, + get: function () { + return i.ValueScopeName + }, + }), + Object.defineProperty(t, 'varKinds', { + enumerable: !0, + get: function () { + return i.varKinds + }, + }), + (t.operators = { + GT: new r._Code('>'), + GTE: new r._Code('>='), + LT: new r._Code('<'), + LTE: new r._Code('<='), + EQ: new r._Code('==='), + NEQ: new r._Code('!=='), + NOT: new r._Code('!'), + OR: new r._Code('||'), + AND: new r._Code('&&'), + ADD: new r._Code('+'), + })) + class s { + optimizeNodes() { + return this + } + optimizeNames(e, t) { + return this + } + } + class l extends s { + constructor(e, t, n) { + ;(super(), (this.varKind = e), (this.name = t), (this.rhs = n)) + } + render({ es5: e, _n: t }) { + const n = e ? a.varKinds.var : this.varKind, + r = void 0 === this.rhs ? '' : ` = ${this.rhs}` + return `${n} ${this.name}${r};` + t + } + optimizeNames(e, t) { + if (e[this.name.str]) return (this.rhs && (this.rhs = N(this.rhs, e, t)), this) + } + get names() { + return this.rhs instanceof r._CodeOrName ? this.rhs.names : {} + } + } + class u extends s { + constructor(e, t, n) { + ;(super(), (this.lhs = e), (this.rhs = t), (this.sideEffects = n)) + } + render({ _n: e }) { + return `${this.lhs} = ${this.rhs};` + e + } + optimizeNames(e, t) { + if (!(this.lhs instanceof r.Name) || e[this.lhs.str] || this.sideEffects) return ((this.rhs = N(this.rhs, e, t)), this) + } + get names() { + return j(this.lhs instanceof r.Name ? {} : { ...this.lhs.names }, this.rhs) + } + } + class c extends u { + constructor(e, t, n, r) { + ;(super(e, n, r), (this.op = t)) + } + render({ _n: e }) { + return `${this.lhs} ${this.op}= ${this.rhs};` + e + } + } + class f extends s { + constructor(e) { + ;(super(), (this.label = e), (this.names = {})) + } + render({ _n: e }) { + return `${this.label}:` + e + } + } + class d extends s { + constructor(e) { + ;(super(), (this.label = e), (this.names = {})) + } + render({ _n: e }) { + return `break${this.label ? ` ${this.label}` : ''};` + e + } + } + class p extends s { + constructor(e) { + ;(super(), (this.error = e)) + } + render({ _n: e }) { + return `throw ${this.error};` + e + } + get names() { + return this.error.names + } + } + class h extends s { + constructor(e) { + ;(super(), (this.code = e)) + } + render({ _n: e }) { + return `${this.code};` + e + } + optimizeNodes() { + return `${this.code}` ? this : void 0 + } + optimizeNames(e, t) { + return ((this.code = N(this.code, e, t)), this) + } + get names() { + return this.code instanceof r._CodeOrName ? this.code.names : {} + } + } + class m extends s { + constructor(e = []) { + ;(super(), (this.nodes = e)) + } + render(e) { + return this.nodes.reduce((t, n) => t + n.render(e), '') + } + optimizeNodes() { + const { nodes: e } = this + let t = e.length + for (; t--; ) { + const n = e[t].optimizeNodes() + Array.isArray(n) ? e.splice(t, 1, ...n) : n ? (e[t] = n) : e.splice(t, 1) + } + return e.length > 0 ? this : void 0 + } + optimizeNames(e, t) { + const { nodes: n } = this + let r = n.length + for (; r--; ) { + const a = n[r] + a.optimizeNames(e, t) || (I(e, a.names), n.splice(r, 1)) + } + return n.length > 0 ? this : void 0 + } + get names() { + return this.nodes.reduce((e, t) => C(e, t.names), {}) + } + } + class g extends m { + render(e) { + return '{' + e._n + super.render(e) + '}' + e._n + } + } + class v extends m {} + class y extends g {} + y.kind = 'else' + class b extends g { + constructor(e, t) { + ;(super(t), (this.condition = e)) + } + render(e) { + let t = `if(${this.condition})` + super.render(e) + return (this.else && (t += 'else ' + this.else.render(e)), t) + } + optimizeNodes() { + super.optimizeNodes() + const e = this.condition + if (!0 === e) return this.nodes + let t = this.else + if (t) { + const e = t.optimizeNodes() + t = this.else = Array.isArray(e) ? new y(e) : e + } + return t + ? !1 === e + ? t instanceof b + ? t + : t.nodes + : this.nodes.length + ? this + : new b(T(e), t instanceof b ? [t] : t.nodes) + : !1 !== e && this.nodes.length + ? this + : void 0 + } + optimizeNames(e, t) { + var n + if (((this.else = null === (n = this.else) || void 0 === n ? void 0 : n.optimizeNames(e, t)), super.optimizeNames(e, t) || this.else)) + return ((this.condition = N(this.condition, e, t)), this) + } + get names() { + const e = super.names + return (j(e, this.condition), this.else && C(e, this.else.names), e) + } + } + b.kind = 'if' + class w extends g {} + w.kind = 'for' + class _ extends w { + constructor(e) { + ;(super(), (this.iteration = e)) + } + render(e) { + return `for(${this.iteration})` + super.render(e) + } + optimizeNames(e, t) { + if (super.optimizeNames(e, t)) return ((this.iteration = N(this.iteration, e, t)), this) + } + get names() { + return C(super.names, this.iteration.names) + } + } + class x extends w { + constructor(e, t, n, r) { + ;(super(), (this.varKind = e), (this.name = t), (this.from = n), (this.to = r)) + } + render(e) { + const t = e.es5 ? a.varKinds.var : this.varKind, + { name: n, from: r, to: o } = this + return `for(${t} ${n}=${r}; ${n}<${o}; ${n}++)` + super.render(e) + } + get names() { + const e = j(super.names, this.from) + return j(e, this.to) + } + } + class E extends w { + constructor(e, t, n, r) { + ;(super(), (this.loop = e), (this.varKind = t), (this.name = n), (this.iterable = r)) + } + render(e) { + return `for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})` + super.render(e) + } + optimizeNames(e, t) { + if (super.optimizeNames(e, t)) return ((this.iterable = N(this.iterable, e, t)), this) + } + get names() { + return C(super.names, this.iterable.names) + } + } + class k extends g { + constructor(e, t, n) { + ;(super(), (this.name = e), (this.args = t), (this.async = n)) + } + render(e) { + return `${this.async ? 'async ' : ''}function ${this.name}(${this.args})` + super.render(e) + } + } + k.kind = 'func' + class S extends m { + render(e) { + return 'return ' + super.render(e) + } + } + S.kind = 'return' + class $ extends g { + render(e) { + let t = 'try' + super.render(e) + return (this.catch && (t += this.catch.render(e)), this.finally && (t += this.finally.render(e)), t) + } + optimizeNodes() { + var e, t + return ( + super.optimizeNodes(), + null === (e = this.catch) || void 0 === e || e.optimizeNodes(), + null === (t = this.finally) || void 0 === t || t.optimizeNodes(), + this + ) + } + optimizeNames(e, t) { + var n, r + return ( + super.optimizeNames(e, t), + null === (n = this.catch) || void 0 === n || n.optimizeNames(e, t), + null === (r = this.finally) || void 0 === r || r.optimizeNames(e, t), + this + ) + } + get names() { + const e = super.names + return (this.catch && C(e, this.catch.names), this.finally && C(e, this.finally.names), e) + } + } + class P extends g { + constructor(e) { + ;(super(), (this.error = e)) + } + render(e) { + return `catch(${this.error})` + super.render(e) + } + } + P.kind = 'catch' + class O extends g { + render(e) { + return 'finally' + super.render(e) + } + } + function C(e, t) { + for (const n in t) e[n] = (e[n] || 0) + (t[n] || 0) + return e + } + function j(e, t) { + return t instanceof r._CodeOrName ? C(e, t.names) : e + } + function N(e, t, n) { + return e instanceof r.Name + ? o(e) + : (a = e) instanceof r._Code && a._items.some((e) => e instanceof r.Name && 1 === t[e.str] && void 0 !== n[e.str]) + ? new r._Code( + e._items.reduce((e, t) => (t instanceof r.Name && (t = o(t)), t instanceof r._Code ? e.push(...t._items) : e.push(t), e), []), + ) + : e + var a + function o(e) { + const r = n[e.str] + return void 0 === r || 1 !== t[e.str] ? e : (delete t[e.str], r) + } + } + function I(e, t) { + for (const n in t) e[n] = (e[n] || 0) - (t[n] || 0) + } + function T(e) { + return 'boolean' == typeof e || 'number' == typeof e || null === e ? !e : r._`!${M(e)}` + } + ;((O.kind = 'finally'), + (t.CodeGen = class { + constructor(e, t = {}) { + ;((this._values = {}), + (this._blockStarts = []), + (this._constants = {}), + (this.opts = { ...t, _n: t.lines ? '\n' : '' }), + (this._extScope = e), + (this._scope = new a.Scope({ parent: e })), + (this._nodes = [new v()])) + } + toString() { + return this._root.render(this.opts) + } + name(e) { + return this._scope.name(e) + } + scopeName(e) { + return this._extScope.name(e) + } + scopeValue(e, t) { + const n = this._extScope.value(e, t) + return ((this._values[n.prefix] || (this._values[n.prefix] = new Set())).add(n), n) + } + getScopeValue(e, t) { + return this._extScope.getValue(e, t) + } + scopeRefs(e) { + return this._extScope.scopeRefs(e, this._values) + } + scopeCode() { + return this._extScope.scopeCode(this._values) + } + _def(e, t, n, r) { + const a = this._scope.toName(t) + return (void 0 !== n && r && (this._constants[a.str] = n), this._leafNode(new l(e, a, n)), a) + } + const(e, t, n) { + return this._def(a.varKinds.const, e, t, n) + } + let(e, t, n) { + return this._def(a.varKinds.let, e, t, n) + } + var(e, t, n) { + return this._def(a.varKinds.var, e, t, n) + } + assign(e, t, n) { + return this._leafNode(new u(e, t, n)) + } + add(e, n) { + return this._leafNode(new c(e, t.operators.ADD, n)) + } + code(e) { + return ('function' == typeof e ? e() : e !== r.nil && this._leafNode(new h(e)), this) + } + object(...e) { + const t = ['{'] + for (const [n, a] of e) (t.length > 1 && t.push(','), t.push(n), (n !== a || this.opts.es5) && (t.push(':'), r.addCodeArg(t, a))) + return (t.push('}'), new r._Code(t)) + } + if(e, t, n) { + if ((this._blockNode(new b(e)), t && n)) this.code(t).else().code(n).endIf() + else if (t) this.code(t).endIf() + else if (n) throw new Error('CodeGen: "else" body without "then" body') + return this + } + elseIf(e) { + return this._elseNode(new b(e)) + } + else() { + return this._elseNode(new y()) + } + endIf() { + return this._endBlockNode(b, y) + } + _for(e, t) { + return (this._blockNode(e), t && this.code(t).endFor(), this) + } + for(e, t) { + return this._for(new _(e), t) + } + forRange(e, t, n, r, o = this.opts.es5 ? a.varKinds.var : a.varKinds.let) { + const i = this._scope.toName(e) + return this._for(new x(o, i, t, n), () => r(i)) + } + forOf(e, t, n, o = a.varKinds.const) { + const i = this._scope.toName(e) + if (this.opts.es5) { + const e = t instanceof r.Name ? t : this.var('_arr', t) + return this.forRange('_i', 0, r._`${e}.length`, (t) => { + ;(this.var(i, r._`${e}[${t}]`), n(i)) + }) + } + return this._for(new E('of', o, i, t), () => n(i)) + } + forIn(e, t, n, o = this.opts.es5 ? a.varKinds.var : a.varKinds.const) { + if (this.opts.ownProperties) return this.forOf(e, r._`Object.keys(${t})`, n) + const i = this._scope.toName(e) + return this._for(new E('in', o, i, t), () => n(i)) + } + endFor() { + return this._endBlockNode(w) + } + label(e) { + return this._leafNode(new f(e)) + } + break(e) { + return this._leafNode(new d(e)) + } + return(e) { + const t = new S() + if ((this._blockNode(t), this.code(e), 1 !== t.nodes.length)) throw new Error('CodeGen: "return" should have one node') + return this._endBlockNode(S) + } + try(e, t, n) { + if (!t && !n) throw new Error('CodeGen: "try" without "catch" and "finally"') + const r = new $() + if ((this._blockNode(r), this.code(e), t)) { + const e = this.name('e') + ;((this._currNode = r.catch = new P(e)), t(e)) + } + return (n && ((this._currNode = r.finally = new O()), this.code(n)), this._endBlockNode(P, O)) + } + throw(e) { + return this._leafNode(new p(e)) + } + block(e, t) { + return (this._blockStarts.push(this._nodes.length), e && this.code(e).endBlock(t), this) + } + endBlock(e) { + const t = this._blockStarts.pop() + if (void 0 === t) throw new Error('CodeGen: not in self-balancing block') + const n = this._nodes.length - t + if (n < 0 || (void 0 !== e && n !== e)) throw new Error(`CodeGen: wrong number of nodes: ${n} vs ${e} expected`) + return ((this._nodes.length = t), this) + } + func(e, t = r.nil, n, a) { + return (this._blockNode(new k(e, t, n)), a && this.code(a).endFunc(), this) + } + endFunc() { + return this._endBlockNode(k) + } + optimize(e = 1) { + for (; e-- > 0; ) (this._root.optimizeNodes(), this._root.optimizeNames(this._root.names, this._constants)) + } + _leafNode(e) { + return (this._currNode.nodes.push(e), this) + } + _blockNode(e) { + ;(this._currNode.nodes.push(e), this._nodes.push(e)) + } + _endBlockNode(e, t) { + const n = this._currNode + if (n instanceof e || (t && n instanceof t)) return (this._nodes.pop(), this) + throw new Error(`CodeGen: not in block "${t ? `${e.kind}/${t.kind}` : e.kind}"`) + } + _elseNode(e) { + const t = this._currNode + if (!(t instanceof b)) throw new Error('CodeGen: "else" without "if"') + return ((this._currNode = t.else = e), this) + } + get _root() { + return this._nodes[0] + } + get _currNode() { + const e = this._nodes + return e[e.length - 1] + } + set _currNode(e) { + const t = this._nodes + t[t.length - 1] = e + } + }), + (t.not = T)) + const A = D(t.operators.AND) + t.and = function (...e) { + return e.reduce(A) + } + const R = D(t.operators.OR) + function D(e) { + return (t, n) => (t === r.nil ? n : n === r.nil ? t : r._`${M(t)} ${e} ${M(n)}`) + } + function M(e) { + return e instanceof r.Name ? e : r._`(${e})` + } + t.or = function (...e) { + return e.reduce(R) + } + }, + 8490: (e, t, n) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.ValueScope = t.ValueScopeName = t.Scope = t.varKinds = t.UsedValueState = void 0)) + const r = n(7023) + class a extends Error { + constructor(e) { + ;(super(`CodeGen: "code" for ${e} not defined`), (this.value = e.value)) + } + } + var o + ;(!(function (e) { + ;((e[(e.Started = 0)] = 'Started'), (e[(e.Completed = 1)] = 'Completed')) + })((o = t.UsedValueState || (t.UsedValueState = {}))), + (t.varKinds = { const: new r.Name('const'), let: new r.Name('let'), var: new r.Name('var') })) + class i { + constructor({ prefixes: e, parent: t } = {}) { + ;((this._names = {}), (this._prefixes = e), (this._parent = t)) + } + toName(e) { + return e instanceof r.Name ? e : this.name(e) + } + name(e) { + return new r.Name(this._newName(e)) + } + _newName(e) { + return `${e}${(this._names[e] || this._nameGroup(e)).index++}` + } + _nameGroup(e) { + var t, n + if ( + (null === (n = null === (t = this._parent) || void 0 === t ? void 0 : t._prefixes) || void 0 === n ? void 0 : n.has(e)) || + (this._prefixes && !this._prefixes.has(e)) + ) + throw new Error(`CodeGen: prefix "${e}" is not allowed in this scope`) + return (this._names[e] = { prefix: e, index: 0 }) + } + } + t.Scope = i + class s extends r.Name { + constructor(e, t) { + ;(super(t), (this.prefix = e)) + } + setValue(e, { property: t, itemIndex: n }) { + ;((this.value = e), (this.scopePath = r._`.${new r.Name(t)}[${n}]`)) + } + } + t.ValueScopeName = s + const l = r._`\n` + t.ValueScope = class extends i { + constructor(e) { + ;(super(e), (this._values = {}), (this._scope = e.scope), (this.opts = { ...e, _n: e.lines ? l : r.nil })) + } + get() { + return this._scope + } + name(e) { + return new s(e, this._newName(e)) + } + value(e, t) { + var n + if (void 0 === t.ref) throw new Error('CodeGen: ref must be passed in value') + const r = this.toName(e), + { prefix: a } = r, + o = null !== (n = t.key) && void 0 !== n ? n : t.ref + let i = this._values[a] + if (i) { + const e = i.get(o) + if (e) return e + } else i = this._values[a] = new Map() + i.set(o, r) + const s = this._scope[a] || (this._scope[a] = []), + l = s.length + return ((s[l] = t.ref), r.setValue(t, { property: a, itemIndex: l }), r) + } + getValue(e, t) { + const n = this._values[e] + if (n) return n.get(t) + } + scopeRefs(e, t = this._values) { + return this._reduceValues(t, (t) => { + if (void 0 === t.scopePath) throw new Error(`CodeGen: name "${t}" has no value`) + return r._`${e}${t.scopePath}` + }) + } + scopeCode(e = this._values, t, n) { + return this._reduceValues( + e, + (e) => { + if (void 0 === e.value) throw new Error(`CodeGen: name "${e}" has no value`) + return e.value.code + }, + t, + n, + ) + } + _reduceValues(e, n, i = {}, s) { + let l = r.nil + for (const u in e) { + const c = e[u] + if (!c) continue + const f = (i[u] = i[u] || new Map()) + c.forEach((e) => { + if (f.has(e)) return + f.set(e, o.Started) + let i = n(e) + if (i) { + const n = this.opts.es5 ? t.varKinds.var : t.varKinds.const + l = r._`${l}${n} ${e} = ${i};${this.opts._n}` + } else { + if (!(i = null == s ? void 0 : s(e))) throw new a(e) + l = r._`${l}${i}${this.opts._n}` + } + f.set(e, o.Completed) + }) + } + return l + } + } + }, + 2227: (e, t, n) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.getData = void 0)) + const r = n(453), + a = n(6776), + o = n(4181), + i = n(3487), + s = n(2141), + l = n(4069) + t.default = class { + constructor(e, t, n) { + if ( + ((function ({ schema: e, opts: t, self: n }, r, a) { + if (Array.isArray(r.keyword) ? !r.keyword.includes(a) : r.keyword !== a) throw new Error('ajv implementation error') + const o = r.dependencies + if (null == o ? void 0 : o.some((t) => !Object.prototype.hasOwnProperty.call(e, t))) + throw new Error(`parent schema must have dependencies of ${a}: ${o.join(',')}`) + if (r.validateSchema && !r.validateSchema(e[a])) { + const e = 'keyword value is invalid: ' + n.errorsText(r.validateSchema.errors) + if ('log' !== t.validateSchema) throw new Error(e) + n.logger.error(e) + } + })(e, t, n), + (this.gen = e.gen), + (this.allErrors = e.allErrors), + (this.keyword = n), + (this.data = e.data), + (this.schema = e.schema[n]), + (this.$data = t.$data && e.opts.$data && this.schema && this.schema.$data), + (this.schemaValue = a.schemaRefOrVal(e, this.schema, n, this.$data)), + (this.schemaType = t.schemaType), + (this.parentSchema = e.schema), + (this.params = {}), + (this.it = e), + (this.def = t), + this.$data) + ) + this.schemaCode = e.gen.const('vSchema', f(this.$data, e)) + else if ( + ((this.schemaCode = this.schemaValue), + !(function (e, t, n = !1) { + return ( + !t.length || + t.some((t) => + 'array' === t + ? Array.isArray(e) + : 'object' === t + ? e && 'object' == typeof e && !Array.isArray(e) + : typeof e == t || (n && void 0 === e), + ) + ) + })(this.schema, t.schemaType, t.allowUndefined)) + ) + throw new Error(`${n} value must be ${JSON.stringify(t.schemaType)}`) + ;('code' in t ? t.trackErrors : !1 !== t.errors) && (this.errsCount = e.gen.const('_errs', s.default.errors)) + } + result(e, t, n) { + ;(this.gen.if(i.not(e)), + n ? n() : this.error(), + t ? (this.gen.else(), t(), this.allErrors && this.gen.endIf()) : this.allErrors ? this.gen.endIf() : this.gen.else()) + } + pass(e, t) { + this.result(e, void 0, t) + } + fail(e) { + if (void 0 === e) return (this.error(), void (this.allErrors || this.gen.if(!1))) + ;(this.gen.if(e), this.error(), this.allErrors ? this.gen.endIf() : this.gen.else()) + } + fail$data(e) { + if (!this.$data) return this.fail(e) + const { schemaCode: t } = this + this.fail(i._`${t} !== undefined && (${i.or(this.invalid$data(), e)})`) + } + error(e) { + ;(e ? o.reportExtraError : o.reportError)(this, this.def.error) + } + $dataError() { + o.reportError(this, this.def.$dataError || o.keyword$DataError) + } + reset() { + if (void 0 === this.errsCount) throw new Error('add "trackErrors" to keyword definition') + o.resetErrorsCount(this.gen, this.errsCount) + } + ok(e) { + this.allErrors || this.gen.if(e) + } + setParams(e, t) { + t ? Object.assign(this.params, e) : (this.params = e) + } + block$data(e, t, n = i.nil) { + this.gen.block(() => { + ;(this.check$data(e, n), t()) + }) + } + check$data(e = i.nil, t = i.nil) { + if (!this.$data) return + const { gen: n, schemaCode: r, schemaType: a, def: o } = this + ;(n.if(i.or(i._`${r} === undefined`, t)), + e !== i.nil && n.assign(e, !0), + (a.length || o.validateSchema) && (n.elseIf(this.invalid$data()), this.$dataError(), e !== i.nil && n.assign(e, !1)), + n.else()) + } + invalid$data() { + const { gen: e, schemaCode: t, schemaType: n, def: a, it: o } = this + return i.or( + (function () { + if (n.length) { + if (!(t instanceof i.Name)) throw new Error('ajv implementation error') + const e = Array.isArray(n) ? n : [n] + return i._`${r.checkDataTypes(e, t, o.opts.strict, r.DataType.Wrong)}` + } + return i.nil + })(), + (function () { + if (a.validateSchema) { + const n = e.scopeValue('validate$data', { ref: a.validateSchema }) + return i._`!${n}(${t})` + } + return i.nil + })(), + ) + } + subschema(e, t) { + return l.applySubschema(this.it, e, t) + } + mergeEvaluated(e, t) { + const { it: n, gen: r } = this + n.opts.unevaluated && + (!0 !== n.props && void 0 !== e.props && (n.props = a.mergeEvaluated.props(r, e.props, n.props, t)), + !0 !== n.items && void 0 !== e.items && (n.items = a.mergeEvaluated.items(r, e.items, n.items, t))) + } + mergeValidEvaluated(e, t) { + const { it: n, gen: r } = this + if (n.opts.unevaluated && (!0 !== n.props || !0 !== n.items)) return (r.if(t, () => this.mergeEvaluated(e, i.Name)), !0) + } + } + const u = /^\/(?:[^~]|~0|~1)*$/, + c = /^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/ + function f(e, { dataLevel: t, dataNames: n, dataPathArr: r }) { + let o, l + if ('' === e) return s.default.rootData + if ('/' === e[0]) { + if (!u.test(e)) throw new Error(`Invalid JSON-pointer: ${e}`) + ;((o = e), (l = s.default.rootData)) + } else { + const a = c.exec(e) + if (!a) throw new Error(`Invalid JSON-pointer: ${e}`) + const i = +a[1] + if (((o = a[2]), '#' === o)) { + if (i >= t) throw new Error(p('property/index', i)) + return r[t - i] + } + if (i > t) throw new Error(p('data', i)) + if (((l = n[t - i]), !o)) return l + } + let f = l + const d = o.split('/') + for (const e of d) e && ((l = i._`${l}${i.getProperty(a.unescapeJsonPointer(e))}`), (f = i._`${f} && ${l}`)) + return f + function p(e, n) { + return `Cannot access ${e} ${n} levels up, current level is ${t}` + } + } + t.getData = f + }, + 8727: (e, t, n) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.MissingRefError = t.ValidationError = void 0)) + const r = n(2531) + class a extends Error { + constructor(e) { + ;(super('validation failed'), (this.errors = e), (this.ajv = this.validation = !0)) + } + } + t.ValidationError = a + class o extends Error { + constructor(e, t, n) { + ;(super(n || `can't resolve reference ${t} from id ${e}`), + (this.missingRef = r.resolveUrl(e, t)), + (this.missingSchema = r.normalizeId(r.getFullPath(this.missingRef)))) + } + } + ;((t.MissingRefError = o), (e.exports = { ValidationError: a, MissingRefError: o })) + }, + 4181: (e, t, n) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), + (t.extendErrors = t.resetErrorsCount = t.reportExtraError = t.reportError = t.keyword$DataError = t.keywordError = void 0)) + const r = n(3487), + a = n(2141) + function o(e, t) { + const n = e.const('err', t) + ;(e.if(r._`${a.default.vErrors} === null`, () => e.assign(a.default.vErrors, r._`[${n}]`), r._`${a.default.vErrors}.push(${n})`), + e.code(r._`${a.default.errors}++`)) + } + function i(e, t) { + const { gen: n, validateName: a, schemaEnv: o } = e + o.$async ? n.throw(r._`new ${e.ValidationError}(${t})`) : (n.assign(r._`${a}.errors`, t), n.return(!1)) + } + ;((t.keywordError = { message: ({ keyword: e }) => r.str`should pass "${e}" keyword validation` }), + (t.keyword$DataError = { + message: ({ keyword: e, schemaType: t }) => (t ? r.str`"${e}" keyword must be ${t} ($data)` : r.str`"${e}" keyword is invalid ($data)`), + }), + (t.reportError = function (e, n = t.keywordError, a) { + const { it: s } = e, + { gen: u, compositeRule: c, allErrors: f } = s, + d = l(e, n) + ;(null != a ? a : c || f) ? o(u, d) : i(s, r._`[${d}]`) + }), + (t.reportExtraError = function (e, n = t.keywordError) { + const { it: r } = e, + { gen: s, compositeRule: u, allErrors: c } = r + ;(o(s, l(e, n)), u || c || i(r, a.default.vErrors)) + }), + (t.resetErrorsCount = function (e, t) { + ;(e.assign(a.default.errors, t), + e.if(r._`${a.default.vErrors} !== null`, () => + e.if( + t, + () => e.assign(r._`${a.default.vErrors}.length`, t), + () => e.assign(a.default.vErrors, null), + ), + )) + }), + (t.extendErrors = function ({ gen: e, keyword: t, schemaValue: n, data: o, errsCount: i, it: s }) { + if (void 0 === i) throw new Error('ajv implementation error') + const l = e.name('err') + e.forRange('i', i, a.default.errors, (i) => { + ;(e.const(l, r._`${a.default.vErrors}[${i}]`), + e.if(r._`${l}.dataPath === undefined`, () => e.assign(r._`${l}.dataPath`, r.strConcat(a.default.dataPath, s.errorPath))), + e.assign(r._`${l}.schemaPath`, r.str`${s.errSchemaPath}/${t}`), + s.opts.verbose && (e.assign(r._`${l}.schema`, n), e.assign(r._`${l}.data`, o))) + }) + })) + const s = { + keyword: new r.Name('keyword'), + schemaPath: new r.Name('schemaPath'), + params: new r.Name('params'), + propertyName: new r.Name('propertyName'), + message: new r.Name('message'), + schema: new r.Name('schema'), + parentSchema: new r.Name('parentSchema'), + instancePath: new r.Name('instancePath'), + } + function l(e, t) { + const { createErrors: n, opts: a } = e.it + return !1 === n ? r._`{}` : (a.jtd && !a.ajvErrors ? u : c)(e, t) + } + function u(e, { message: t }) { + const { gen: n, keyword: o, it: i } = e, + { errorPath: l, errSchemaPath: u, opts: c } = i, + f = [ + [s.instancePath, r.strConcat(a.default.dataPath, l)], + [s.schemaPath, r.str`${u}/${o}`], + ] + return (c.messages && f.push([s.message, 'function' == typeof t ? t(e) : t]), n.object(...f)) + } + function c(e, t) { + const { gen: n, keyword: o, data: i, schemaValue: l, it: u } = e, + { topSchemaRef: c, schemaPath: f, errorPath: d, errSchemaPath: p, propertyName: h, opts: m } = u, + { params: g, message: v } = t, + y = [ + [s.keyword, o], + [a.default.dataPath, r.strConcat(a.default.dataPath, d)], + [s.schemaPath, r.str`${p}/${o}`], + [s.params, 'function' == typeof g ? g(e) : g || r._`{}`], + ] + return ( + h && y.push([s.propertyName, h]), + m.messages && y.push([s.message, 'function' == typeof v ? v(e) : v]), + m.verbose && y.push([s.schema, l], [s.parentSchema, r._`${c}${f}`], [a.default.data, i]), + n.object(...y) + ) + } + }, + 5173: (e, t, n) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), + (t.resolveSchema = t.getCompilingSchema = t.resolveRef = t.compileSchema = t.SchemaEnv = void 0)) + const r = n(3487), + a = n(8727), + o = n(2141), + i = n(2531), + s = n(6776), + l = n(4815), + u = n(540) + class c { + constructor(e) { + var t + let n + ;((this.refs = {}), + (this.dynamicAnchors = {}), + 'object' == typeof e.schema && (n = e.schema), + (this.schema = e.schema), + (this.root = e.root || this), + (this.baseId = null !== (t = e.baseId) && void 0 !== t ? t : i.normalizeId(null == n ? void 0 : n.$id)), + (this.localRefs = e.localRefs), + (this.meta = e.meta), + (this.$async = null == n ? void 0 : n.$async), + (this.refs = {})) + } + } + function f(e) { + const t = p.call(this, e) + if (t) return t + const n = i.getFullPath(e.root.baseId), + { es5: s, lines: u } = this.opts.code, + { ownProperties: c } = this.opts, + f = new r.CodeGen(this.scope, { es5: s, lines: u, ownProperties: c }) + let d + e.$async && (d = f.scopeValue('Error', { ref: a.ValidationError, code: r._`require("ajv/dist/compile/error_classes").ValidationError` })) + const h = f.scopeName('validate') + e.validateName = h + const m = { + gen: f, + allErrors: this.opts.allErrors, + data: o.default.data, + parentData: o.default.parentData, + parentDataProperty: o.default.parentDataProperty, + dataNames: [o.default.data], + dataPathArr: [r.nil], + dataLevel: 0, + dataTypes: [], + definedProperties: new Set(), + topSchemaRef: f.scopeValue('schema', !0 === this.opts.code.source ? { ref: e.schema, code: r.stringify(e.schema) } : { ref: e.schema }), + validateName: h, + ValidationError: d, + schema: e.schema, + schemaEnv: e, + rootId: n, + baseId: e.baseId || n, + schemaPath: r.nil, + errSchemaPath: this.opts.jtd ? '' : '#', + errorPath: r._`""`, + opts: this.opts, + self: this, + } + let g + try { + ;(this._compilations.add(e), l.validateFunctionCode(m), f.optimize(this.opts.code.optimize)) + const t = f.toString() + ;((g = `${f.scopeRefs(o.default.scope)}return ${t}`), this.opts.code.process && (g = this.opts.code.process(g, e))) + const n = new Function(`${o.default.self}`, `${o.default.scope}`, g)(this, this.scope.get()) + if ( + (this.scope.value(h, { ref: n }), + (n.errors = null), + (n.schema = e.schema), + (n.schemaEnv = e), + e.$async && (n.$async = !0), + !0 === this.opts.code.source && (n.source = { validateName: h, validateCode: t, scopeValues: f._values }), + this.opts.unevaluated) + ) { + const { props: e, items: t } = m + ;((n.evaluated = { + props: e instanceof r.Name ? void 0 : e, + items: t instanceof r.Name ? void 0 : t, + dynamicProps: e instanceof r.Name, + dynamicItems: t instanceof r.Name, + }), + n.source && (n.source.evaluated = r.stringify(n.evaluated))) + } + return ((e.validate = n), e) + } catch (t) { + throw (delete e.validate, delete e.validateName, g && this.logger.error('Error compiling schema, function code:', g), t) + } finally { + this._compilations.delete(e) + } + } + function d(e) { + return i.inlineRef(e.schema, this.opts.inlineRefs) ? e.schema : e.validate ? e : f.call(this, e) + } + function p(e) { + for (const r of this._compilations) if (((n = e), (t = r).schema === n.schema && t.root === n.root && t.baseId === n.baseId)) return r + var t, n + } + function h(e, t) { + let n + for (; 'string' == typeof (n = this.refs[t]); ) t = n + return n || this.schemas[t] || m.call(this, e, t) + } + function m(e, t) { + const n = u.parse(t), + r = i._getFullPath(n) + let a = i.getFullPath(e.baseId) + if (Object.keys(e.schema).length > 0 && r === a) return v.call(this, n, e) + const o = i.normalizeId(r), + s = this.refs[o] || this.schemas[o] + if ('string' == typeof s) { + const t = m.call(this, e, s) + if ('object' != typeof (null == t ? void 0 : t.schema)) return + return v.call(this, n, t) + } + if ('object' == typeof (null == s ? void 0 : s.schema)) { + if ((s.validate || f.call(this, s), o === i.normalizeId(t))) { + const { schema: t } = s + return (t.$id && (a = i.resolveUrl(a, t.$id)), new c({ schema: t, root: e, baseId: a })) + } + return v.call(this, n, s) + } + } + ;((t.SchemaEnv = c), + (t.compileSchema = f), + (t.resolveRef = function (e, t, n) { + var r + n = i.resolveUrl(t, n) + const a = e.refs[n] + if (a) return a + let o = h.call(this, e, n) + if (void 0 === o) { + const a = null === (r = e.localRefs) || void 0 === r ? void 0 : r[n] + a && (o = new c({ schema: a, root: e, baseId: t })) + } + return void 0 !== o ? (e.refs[n] = d.call(this, o)) : void 0 + }), + (t.getCompilingSchema = p), + (t.resolveSchema = m)) + const g = new Set(['properties', 'patternProperties', 'enum', 'dependencies', 'definitions']) + function v(e, { baseId: t, schema: n, root: r }) { + var a + if ('/' !== (null === (a = e.fragment) || void 0 === a ? void 0 : a[0])) return + for (const r of e.fragment.slice(1).split('/')) { + if ('boolean' == typeof n) return + if (void 0 === (n = n[s.unescapeFragment(r)])) return + !g.has(r) && 'object' == typeof n && n.$id && (t = i.resolveUrl(t, n.$id)) + } + let o + if ('boolean' != typeof n && n.$ref && !s.schemaHasRulesButRef(n, this.RULES)) { + const e = i.resolveUrl(t, n.$ref) + o = m.call(this, r, e) + } + return ((o = o || new c({ schema: n, root: r, baseId: t })), o.schema !== o.root.schema ? o : void 0) + } + }, + 2141: (e, t, n) => { + 'use strict' + Object.defineProperty(t, '__esModule', { value: !0 }) + const r = n(3487), + a = { + data: new r.Name('data'), + valCxt: new r.Name('valCxt'), + dataPath: new r.Name('dataPath'), + parentData: new r.Name('parentData'), + parentDataProperty: new r.Name('parentDataProperty'), + rootData: new r.Name('rootData'), + dynamicAnchors: new r.Name('dynamicAnchors'), + vErrors: new r.Name('vErrors'), + errors: new r.Name('errors'), + this: new r.Name('this'), + self: new r.Name('self'), + scope: new r.Name('scope'), + json: new r.Name('json'), + jsonPos: new r.Name('jsonPos'), + jsonLen: new r.Name('jsonLen'), + jsonPart: new r.Name('jsonPart'), + } + t.default = a + }, + 2531: (e, t, n) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), + (t.getSchemaRefs = t.resolveUrl = t.normalizeId = t._getFullPath = t.getFullPath = t.inlineRef = void 0)) + const r = n(6776), + a = n(6728), + o = n(9461), + i = n(540), + s = new Set([ + 'type', + 'format', + 'pattern', + 'maxLength', + 'minLength', + 'maxProperties', + 'minProperties', + 'maxItems', + 'minItems', + 'maximum', + 'minimum', + 'uniqueItems', + 'multipleOf', + 'required', + 'enum', + 'const', + ]) + t.inlineRef = function (e, t = !0) { + return 'boolean' == typeof e || (!0 === t ? !u(e) : !!t && c(e) <= t) + } + const l = new Set(['$ref', '$recursiveRef', '$recursiveAnchor', '$dynamicRef', '$dynamicAnchor']) + function u(e) { + for (const t in e) { + if (l.has(t)) return !0 + const n = e[t] + if (Array.isArray(n) && n.some(u)) return !0 + if ('object' == typeof n && u(n)) return !0 + } + return !1 + } + function c(e) { + let t = 0 + for (const n in e) { + if ('$ref' === n) return 1 / 0 + if ((t++, !s.has(n) && ('object' == typeof e[n] && r.eachItem(e[n], (e) => (t += c(e))), t === 1 / 0))) return 1 / 0 + } + return t + } + function f(e = '', t) { + return (!1 !== t && (e = h(e)), d(i.parse(e))) + } + function d(e) { + return i.serialize(e).split('#')[0] + '#' + } + ;((t.getFullPath = f), (t._getFullPath = d)) + const p = /#\/?$/ + function h(e) { + return e ? e.replace(p, '') : '' + } + ;((t.normalizeId = h), + (t.resolveUrl = function (e, t) { + return ((t = h(t)), i.resolve(e, t)) + })) + const m = /^[a-z_][-a-z0-9._]*$/i + t.getSchemaRefs = function (e) { + if ('boolean' == typeof e) return {} + const t = h(e.$id), + n = { '': t }, + r = f(t, !1), + s = {}, + l = new Set() + return ( + o(e, { allKeys: !0 }, (e, t, a, o) => { + if (void 0 === o) return + const f = r + t + let d = n[o] + function p(t) { + if (((t = h(d ? i.resolve(d, t) : t)), l.has(t))) throw c(t) + l.add(t) + let n = this.refs[t] + return ( + 'string' == typeof n && (n = this.refs[n]), + 'object' == typeof n ? u(e, n.schema, t) : t !== h(f) && ('#' === t[0] ? (u(e, s[t], t), (s[t] = e)) : (this.refs[t] = f)), + t + ) + } + function g(e) { + if ('string' == typeof e) { + if (!m.test(e)) throw new Error(`invalid anchor "${e}"`) + p.call(this, `#${e}`) + } + } + ;('string' == typeof e.$id && (d = p.call(this, e.$id)), g.call(this, e.$anchor), g.call(this, e.$dynamicAnchor), (n[t] = d)) + }), + s + ) + function u(e, t, n) { + if (void 0 !== t && !a(e, t)) throw c(n) + } + function c(e) { + return new Error(`reference "${e}" resolves to more than one schema`) + } + } + }, + 3141: (e, t) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.getRules = t.isJSONType = void 0)) + const n = new Set(['string', 'number', 'integer', 'boolean', 'null', 'object', 'array']) + ;((t.isJSONType = function (e) { + return 'string' == typeof e && n.has(e) + }), + (t.getRules = function () { + const e = { + number: { type: 'number', rules: [] }, + string: { type: 'string', rules: [] }, + array: { type: 'array', rules: [] }, + object: { type: 'object', rules: [] }, + } + return { + types: { ...e, integer: !0, boolean: !0, null: !0 }, + rules: [{ rules: [] }, e.number, e.string, e.array, e.object], + post: { rules: [] }, + all: {}, + keywords: {}, + } + })) + }, + 4069: (e, t, n) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.applySubschema = t.Type = void 0)) + const r = n(4815), + a = n(6776), + o = n(3487) + var i + ;(!(function (e) { + ;((e[(e.Num = 0)] = 'Num'), (e[(e.Str = 1)] = 'Str')) + })((i = t.Type || (t.Type = {}))), + (t.applySubschema = function (e, t, n) { + const s = (function (e, { keyword: t, schemaProp: n, schema: r, schemaPath: i, errSchemaPath: s, topSchemaRef: l }) { + if (void 0 !== t && void 0 !== r) throw new Error('both "keyword" and "schema" passed, only one allowed') + if (void 0 !== t) { + const r = e.schema[t] + return void 0 === n + ? { schema: r, schemaPath: o._`${e.schemaPath}${o.getProperty(t)}`, errSchemaPath: `${e.errSchemaPath}/${t}` } + : { + schema: r[n], + schemaPath: o._`${e.schemaPath}${o.getProperty(t)}${o.getProperty(n)}`, + errSchemaPath: `${e.errSchemaPath}/${t}/${a.escapeFragment(n)}`, + } + } + if (void 0 !== r) { + if (void 0 === i || void 0 === s || void 0 === l) + throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"') + return { schema: r, schemaPath: i, topSchemaRef: l, errSchemaPath: s } + } + throw new Error('either "keyword" or "schema" must be passed') + })(e, t) + ;(!(function (e, t, { dataProp: n, dataPropType: r, data: s, dataTypes: l, propertyName: u }) { + if (void 0 !== s && void 0 !== n) throw new Error('both "data" and "dataProp" passed, only one allowed') + const { gen: c } = t + if (void 0 !== n) { + const { errorPath: s, dataPathArr: l, opts: u } = t + ;(f(c.let('data', o._`${t.data}${o.getProperty(n)}`, !0)), + (e.errorPath = o.str`${s}${(function (e, t, n) { + if (e instanceof o.Name) { + const r = t === i.Num + return n + ? r + ? o._`"[" + ${e} + "]"` + : o._`"['" + ${e} + "']"` + : r + ? o._`"/" + ${e}` + : o._`"/" + ${e}.replace(/~/g, "~0").replace(/\\//g, "~1")` + } + return n ? o.getProperty(e).toString() : '/' + a.escapeJsonPointer(e) + })(n, r, u.jsPropertySyntax)}`), + (e.parentDataProperty = o._`${n}`), + (e.dataPathArr = [...l, e.parentDataProperty])) + } + function f(n) { + ;((e.data = n), + (e.dataLevel = t.dataLevel + 1), + (e.dataTypes = []), + (t.definedProperties = new Set()), + (e.parentData = t.data), + (e.dataNames = [...t.dataNames, n])) + } + ;(void 0 !== s && (f(s instanceof o.Name ? s : c.let('data', s, !0)), void 0 !== u && (e.propertyName = u)), l && (e.dataTypes = l)) + })(s, e, t), + (function (e, { jtdDiscriminator: t, jtdMetadata: n, compositeRule: r, createErrors: a, allErrors: o }) { + ;(void 0 !== r && (e.compositeRule = r), + void 0 !== a && (e.createErrors = a), + void 0 !== o && (e.allErrors = o), + (e.jtdDiscriminator = t), + (e.jtdMetadata = n)) + })(s, t)) + const l = { ...e, ...s, items: void 0, props: void 0 } + return (r.subschemaCode(l, n), l) + })) + }, + 4776: (e, t) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), + (t.default = function (e) { + const t = e.length + let n, + r = 0, + a = 0 + for (; a < t; ) (r++, (n = e.charCodeAt(a++)), n >= 55296 && n <= 56319 && a < t && ((n = e.charCodeAt(a)), 56320 == (64512 & n) && a++)) + return r + })) + }, + 6776: (e, t, n) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), + (t.func = + t.setEvaluated = + t.evaluatedPropsToName = + t.mergeEvaluated = + t.eachItem = + t.unescapeJsonPointer = + t.escapeJsonPointer = + t.escapeFragment = + t.unescapeFragment = + t.schemaRefOrVal = + t.schemaHasRulesButRef = + t.schemaHasRules = + t.checkUnknownRules = + t.alwaysValidSchema = + t.toHash = + void 0)) + const r = n(3487), + a = n(4815) + function o(e, t = e.schema) { + const { opts: n, self: r } = e + if (!n.strict) return + if ('boolean' == typeof t) return + const o = r.RULES.keywords + for (const n in t) o[n] || a.checkStrictMode(e, `unknown keyword: "${n}"`) + } + function i(e, t) { + if ('boolean' == typeof e) return !e + for (const n in e) if (t[n]) return !0 + return !1 + } + function s(e) { + return 'number' == typeof e ? `${e}` : e.replace(/~/g, '~0').replace(/\//g, '~1') + } + function l(e) { + return e.replace(/~1/g, '/').replace(/~0/g, '~') + } + function u({ mergeNames: e, mergeToName: t, mergeValues: n, resultToName: a }) { + return (o, i, s, l) => { + const u = + void 0 === s + ? i + : s instanceof r.Name + ? (i instanceof r.Name ? e(o, i, s) : t(o, i, s), s) + : i instanceof r.Name + ? (t(o, s, i), i) + : n(i, s) + return l !== r.Name || u instanceof r.Name ? u : a(o, u) + } + } + function c(e, t) { + if (!0 === t) return e.var('props', !0) + const n = e.var('props', r._`{}`) + return (void 0 !== t && f(e, n, t), n) + } + function f(e, t, n) { + Object.keys(n).forEach((n) => e.assign(r._`${t}${r.getProperty(n)}`, !0)) + } + ;((t.toHash = function (e) { + const t = {} + for (const n of e) t[n] = !0 + return t + }), + (t.alwaysValidSchema = function (e, t) { + return 'boolean' == typeof t ? t : 0 === Object.keys(t).length || (o(e, t), !i(t, e.self.RULES.all)) + }), + (t.checkUnknownRules = o), + (t.schemaHasRules = i), + (t.schemaHasRulesButRef = function (e, t) { + if ('boolean' == typeof e) return !e + for (const n in e) if ('$ref' !== n && t.all[n]) return !0 + return !1 + }), + (t.schemaRefOrVal = function ({ topSchemaRef: e, schemaPath: t }, n, a, o) { + if (!o) { + if ('number' == typeof n || 'boolean' == typeof n) return n + if ('string' == typeof n) return r._`${n}` + } + return r._`${e}${t}${r.getProperty(a)}` + }), + (t.unescapeFragment = function (e) { + return l(decodeURIComponent(e)) + }), + (t.escapeFragment = function (e) { + return encodeURIComponent(s(e)) + }), + (t.escapeJsonPointer = s), + (t.unescapeJsonPointer = l), + (t.eachItem = function (e, t) { + if (Array.isArray(e)) for (const n of e) t(n) + else t(e) + }), + (t.mergeEvaluated = { + props: u({ + mergeNames: (e, t, n) => + e.if(r._`${n} !== true && ${t} !== undefined`, () => { + e.if( + r._`${t} === true`, + () => e.assign(n, !0), + () => e.assign(n, r._`${n} || {}`).code(r._`Object.assign(${n}, ${t})`), + ) + }), + mergeToName: (e, t, n) => + e.if(r._`${n} !== true`, () => { + !0 === t ? e.assign(n, !0) : (e.assign(n, r._`${n} || {}`), f(e, n, t)) + }), + mergeValues: (e, t) => !0 === e || { ...e, ...t }, + resultToName: c, + }), + items: u({ + mergeNames: (e, t, n) => + e.if(r._`${n} !== true && ${t} !== undefined`, () => e.assign(n, r._`${t} === true ? true : ${n} > ${t} ? ${n} : ${t}`)), + mergeToName: (e, t, n) => e.if(r._`${n} !== true`, () => e.assign(n, !0 === t || r._`${n} > ${t} ? ${n} : ${t}`)), + mergeValues: (e, t) => !0 === e || Math.max(e, t), + resultToName: (e, t) => e.var('items', t), + }), + }), + (t.evaluatedPropsToName = c), + (t.setEvaluated = f), + (t.func = function (e, t) { + return e.scopeValue('func', { ref: t, code: t.code }) + })) + }, + 8876: (e, t) => { + 'use strict' + function n(e, t) { + return t.rules.some((t) => r(e, t)) + } + function r(e, t) { + var n + return void 0 !== e[t.keyword] || (null === (n = t.definition.implements) || void 0 === n ? void 0 : n.some((t) => void 0 !== e[t])) + } + ;(Object.defineProperty(t, '__esModule', { value: !0 }), + (t.shouldUseRule = t.shouldUseGroup = t.schemaHasRulesForType = void 0), + (t.schemaHasRulesForType = function ({ schema: e, self: t }, r) { + const a = t.RULES.types[r] + return a && !0 !== a && n(e, a) + }), + (t.shouldUseGroup = n), + (t.shouldUseRule = r)) + }, + 5667: (e, t, n) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.boolOrEmptySchema = t.topBoolOrEmptySchema = void 0)) + const r = n(4181), + a = n(3487), + o = n(2141), + i = { message: 'boolean schema is false' } + function s(e, t) { + const { gen: n, data: a } = e, + o = { gen: n, keyword: 'false schema', data: a, schema: !1, schemaCode: !1, schemaValue: !1, params: {}, it: e } + r.reportError(o, i, t) + } + ;((t.topBoolOrEmptySchema = function (e) { + const { gen: t, schema: n, validateName: r } = e + !1 === n ? s(e, !1) : 'object' == typeof n && !0 === n.$async ? t.return(o.default.data) : (t.assign(a._`${r}.errors`, null), t.return(!0)) + }), + (t.boolOrEmptySchema = function (e, t) { + const { gen: n, schema: r } = e + !1 === r ? (n.var(t, !1), s(e)) : n.var(t, !0) + })) + }, + 453: (e, t, n) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), + (t.reportTypeError = + t.checkDataTypes = + t.checkDataType = + t.coerceAndCheckDataType = + t.getJSONTypes = + t.getSchemaTypes = + t.DataType = + void 0)) + const r = n(3141), + a = n(8876), + o = n(4181), + i = n(3487), + s = n(6776) + var l + function u(e) { + const t = Array.isArray(e) ? e : e ? [e] : [] + if (t.every(r.isJSONType)) return t + throw new Error('type must be JSONType or JSONType[]: ' + t.join(',')) + } + ;(!(function (e) { + ;((e[(e.Correct = 0)] = 'Correct'), (e[(e.Wrong = 1)] = 'Wrong')) + })((l = t.DataType || (t.DataType = {}))), + (t.getSchemaTypes = function (e) { + const t = u(e.type) + if (t.includes('null')) { + if (!1 === e.nullable) throw new Error('type: null contradicts nullable: false') + } else { + if (!t.length && void 0 !== e.nullable) throw new Error('"nullable" cannot be used without "type"') + !0 === e.nullable && t.push('null') + } + return t + }), + (t.getJSONTypes = u), + (t.coerceAndCheckDataType = function (e, t) { + const { gen: n, data: r, opts: o } = e, + s = (function (e, t) { + return t ? e.filter((e) => c.has(e) || ('array' === t && 'array' === e)) : [] + })(t, o.coerceTypes), + u = t.length > 0 && !(0 === s.length && 1 === t.length && a.schemaHasRulesForType(e, t[0])) + if (u) { + const a = d(t, r, o.strict, l.Wrong) + n.if(a, () => { + s.length + ? (function (e, t, n) { + const { gen: r, data: a, opts: o } = e, + s = r.let('dataType', i._`typeof ${a}`), + l = r.let('coerced', i._`undefined`) + ;('array' === o.coerceTypes && + r.if(i._`${s} == 'object' && Array.isArray(${a}) && ${a}.length == 1`, () => + r + .assign(a, i._`${a}[0]`) + .assign(s, i._`typeof ${a}`) + .if(d(t, a, o.strict), () => r.assign(l, a)), + ), + r.if(i._`${l} !== undefined`)) + for (const e of n) (c.has(e) || ('array' === e && 'array' === o.coerceTypes)) && u(e) + function u(e) { + switch (e) { + case 'string': + return void r + .elseIf(i._`${s} == "number" || ${s} == "boolean"`) + .assign(l, i._`"" + ${a}`) + .elseIf(i._`${a} === null`) + .assign(l, i._`""`) + case 'number': + return void r + .elseIf( + i._`${s} == "boolean" || ${a} === null + || (${s} == "string" && ${a} && ${a} == +${a})`, + ) + .assign(l, i._`+${a}`) + case 'integer': + return void r + .elseIf( + i._`${s} === "boolean" || ${a} === null + || (${s} === "string" && ${a} && ${a} == +${a} && !(${a} % 1))`, + ) + .assign(l, i._`+${a}`) + case 'boolean': + return void r + .elseIf(i._`${a} === "false" || ${a} === 0 || ${a} === null`) + .assign(l, !1) + .elseIf(i._`${a} === "true" || ${a} === 1`) + .assign(l, !0) + case 'null': + return (r.elseIf(i._`${a} === "" || ${a} === 0 || ${a} === false`), void r.assign(l, null)) + case 'array': + r.elseIf( + i._`${s} === "string" || ${s} === "number" + || ${s} === "boolean" || ${a} === null`, + ).assign(l, i._`[${a}]`) + } + } + ;(r.else(), + h(e), + r.endIf(), + r.if(i._`${l} !== undefined`, () => { + ;(r.assign(a, l), + (function ({ gen: e, parentData: t, parentDataProperty: n }, r) { + e.if(i._`${t} !== undefined`, () => e.assign(i._`${t}[${n}]`, r)) + })(e, l)) + })) + })(e, t, s) + : h(e) + }) + } + return u + })) + const c = new Set(['string', 'number', 'integer', 'boolean', 'null']) + function f(e, t, n, r = l.Correct) { + const a = r === l.Correct ? i.operators.EQ : i.operators.NEQ + let o + switch (e) { + case 'null': + return i._`${t} ${a} null` + case 'array': + o = i._`Array.isArray(${t})` + break + case 'object': + o = i._`${t} && typeof ${t} == "object" && !Array.isArray(${t})` + break + case 'integer': + o = s(i._`!(${t} % 1) && !isNaN(${t})`) + break + case 'number': + o = s() + break + default: + return i._`typeof ${t} ${a} ${e}` + } + return r === l.Correct ? o : i.not(o) + function s(e = i.nil) { + return i.and(i._`typeof ${t} == "number"`, e, n ? i._`isFinite(${t})` : i.nil) + } + } + function d(e, t, n, r) { + if (1 === e.length) return f(e[0], t, n, r) + let a + const o = s.toHash(e) + if (o.array && o.object) { + const e = i._`typeof ${t} != "object"` + ;((a = o.null ? e : i._`!${t} || ${e}`), delete o.null, delete o.array, delete o.object) + } else a = i.nil + o.number && delete o.integer + for (const e in o) a = i.and(a, f(e, t, n, r)) + return a + } + ;((t.checkDataType = f), (t.checkDataTypes = d)) + const p = { + message: ({ schema: e }) => i.str`should be ${e}`, + params: ({ schema: e, schemaValue: t }) => ('string' == typeof e ? i._`{type: ${e}}` : i._`{type: ${t}}`), + } + function h(e) { + const t = (function (e) { + const { gen: t, data: n, schema: r } = e, + a = s.schemaRefOrVal(e, r, 'type') + return { gen: t, keyword: 'type', data: n, schema: r.type, schemaCode: a, schemaValue: a, parentSchema: r, params: {}, it: e } + })(e) + o.reportError(t, p) + } + t.reportTypeError = h + }, + 2966: (e, t, n) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.assignDefaults = void 0)) + const r = n(3487), + a = n(4815) + function o(e, t, n) { + const { gen: o, compositeRule: i, data: s, opts: l } = e + if (void 0 === n) return + const u = r._`${s}${r.getProperty(t)}` + if (i) return void a.checkStrictMode(e, `default is ignored for: ${u}`) + let c = r._`${u} === undefined` + ;('empty' === l.useDefaults && (c = r._`${c} || ${u} === null || ${u} === ""`), o.if(c, r._`${u} = ${r.stringify(n)}`)) + } + t.assignDefaults = function (e, t) { + const { properties: n, items: r } = e.schema + if ('object' === t && n) for (const t in n) o(e, t, n[t].default) + else 'array' === t && Array.isArray(r) && r.forEach((t, n) => o(e, n, t.default)) + } + }, + 4815: (e, t, n) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), + (t.checkStrictMode = t.schemaCxtHasRules = t.subschemaCode = t.validateFunctionCode = void 0)) + const r = n(5667), + a = n(453), + o = n(7449), + i = n(3487), + s = n(2141), + l = n(2531), + u = n(6776) + function c({ gen: e, validateName: t, schema: n, schemaEnv: r, opts: a }, o) { + a.code.es5 + ? e.func(t, i._`${s.default.data}, ${s.default.valCxt}`, r.$async, () => { + ;(e.code(i._`"use strict"; ${f(n, a)}`), + (function (e, t) { + e.if( + s.default.valCxt, + () => { + ;(e.var(s.default.dataPath, i._`${s.default.valCxt}.${s.default.dataPath}`), + e.var(s.default.parentData, i._`${s.default.valCxt}.${s.default.parentData}`), + e.var(s.default.parentDataProperty, i._`${s.default.valCxt}.${s.default.parentDataProperty}`), + e.var(s.default.rootData, i._`${s.default.valCxt}.${s.default.rootData}`), + t.dynamicRef && e.var(s.default.dynamicAnchors, i._`${s.default.valCxt}.${s.default.dynamicAnchors}`)) + }, + () => { + ;(e.var(s.default.dataPath, i._`""`), + e.var(s.default.parentData, i._`undefined`), + e.var(s.default.parentDataProperty, i._`undefined`), + e.var(s.default.rootData, s.default.data), + t.dynamicRef && e.var(s.default.dynamicAnchors, i._`{}`)) + }, + ) + })(e, a), + e.code(o)) + }) + : e.func( + t, + i._`${s.default.data}, ${(function (e) { + return i._`{${s.default.dataPath}="", ${s.default.parentData}, ${s.default.parentDataProperty}, ${s.default.rootData}=${s.default.data}${e.dynamicRef ? i._`, ${s.default.dynamicAnchors}={}` : i.nil}}={}` + })(a)}`, + r.$async, + () => e.code(f(n, a)).code(o), + ) + } + function f(e, t) { + return 'object' == typeof e && e.$id && (t.code.source || t.code.process) ? i._`/*# sourceURL=${e.$id} */` : i.nil + } + function d({ schema: e, self: t }) { + if ('boolean' == typeof e) return !e + for (const n in e) if (t.RULES.all[n]) return !0 + return !1 + } + function p(e) { + return 'boolean' != typeof e.schema + } + function h(e) { + ;(u.checkUnknownRules(e), + (function (e) { + const { schema: t, errSchemaPath: n, opts: r, self: a } = e + t.$ref && + r.ignoreKeywordsWithRef && + u.schemaHasRulesButRef(t, a.RULES) && + a.logger.warn(`$ref: keywords ignored in schema at path "${n}"`) + })(e)) + } + function m(e, t) { + if (e.opts.jtd) return o.schemaKeywords(e, [], !1, t) + const n = a.getSchemaTypes(e.schema), + r = a.coerceAndCheckDataType(e, n) + o.schemaKeywords(e, n, !r, t) + } + function g({ gen: e, schemaEnv: t, schema: n, errSchemaPath: r, opts: a }) { + const o = n.$comment + if (!0 === a.$comment) e.code(i._`${s.default.self}.logger.log(${o})`) + else if ('function' == typeof a.$comment) { + const n = i.str`${r}/$comment`, + a = e.scopeValue('root', { ref: t.root }) + e.code(i._`${s.default.self}.opts.$comment(${o}, ${n}, ${a}.schema)`) + } + } + function v(e, t, n = e.opts.strict) { + if (n) { + if (((t = `strict mode: ${t}`), !0 === n)) throw new Error(t) + e.self.logger.warn(t) + } + } + ;((t.validateFunctionCode = function (e) { + p(e) && (h(e), d(e)) + ? (function (e) { + const { schema: t, opts: n, gen: r } = e + c(e, () => { + ;(n.$comment && t.$comment && g(e), + (function (e) { + const { schema: t, opts: n } = e + void 0 !== t.default && n.useDefaults && n.strict && v(e, 'default is ignored in the schema root') + })(e), + r.let(s.default.vErrors, null), + r.let(s.default.errors, 0), + n.unevaluated && + (function (e) { + const { gen: t, validateName: n } = e + ;((e.evaluated = t.const('evaluated', i._`${n}.evaluated`)), + t.if(i._`${e.evaluated}.dynamicProps`, () => t.assign(i._`${e.evaluated}.props`, i._`undefined`)), + t.if(i._`${e.evaluated}.dynamicItems`, () => t.assign(i._`${e.evaluated}.items`, i._`undefined`))) + })(e), + m(e), + (function (e) { + const { gen: t, schemaEnv: n, validateName: r, ValidationError: a, opts: o } = e + n.$async + ? t.if( + i._`${s.default.errors} === 0`, + () => t.return(s.default.data), + () => t.throw(i._`new ${a}(${s.default.vErrors})`), + ) + : (t.assign(i._`${r}.errors`, s.default.vErrors), + o.unevaluated && + (function ({ gen: e, evaluated: t, props: n, items: r }) { + ;(n instanceof i.Name && e.assign(i._`${t}.props`, n), r instanceof i.Name && e.assign(i._`${t}.items`, r)) + })(e), + t.return(i._`${s.default.errors} === 0`)) + })(e)) + }) + })(e) + : c(e, () => r.topBoolOrEmptySchema(e)) + }), + (t.subschemaCode = function (e, t) { + p(e) && (h(e), d(e)) + ? (function (e, t) { + const { schema: n, gen: r, opts: a } = e + ;(a.$comment && n.$comment && g(e), + (function (e) { + e.schema.$id && (e.baseId = l.resolveUrl(e.baseId, e.schema.$id)) + })(e), + (function (e) { + if (e.schema.$async && !e.schemaEnv.$async) throw new Error('async schema in sync schema') + })(e)) + const o = r.const('_errs', s.default.errors) + ;(m(e, o), r.var(t, i._`${o} === ${s.default.errors}`)) + })(e, t) + : r.boolOrEmptySchema(e, t) + }), + (t.schemaCxtHasRules = d), + (t.checkStrictMode = v)) + }, + 7449: (e, t, n) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.schemaKeywords = void 0)) + const r = n(8876), + a = n(453), + o = n(2966), + i = n(5005), + s = n(6776), + l = n(4815), + u = n(3487), + c = n(2141) + function f(e, t) { + const { + gen: n, + schema: a, + opts: { useDefaults: s }, + } = e + ;(s && o.assignDefaults(e, t.type), + n.block(() => { + for (const n of t.rules) r.shouldUseRule(a, n) && i.keywordCode(e, n.keyword, n.definition, t.type) + })) + } + function d(e, t) { + return e.includes(t) || ('integer' === t && e.includes('number')) + } + function p(e, t) { + ;((t += ` at "${e.schemaEnv.baseId + e.errSchemaPath}" (strictTypes)`), l.checkStrictMode(e, t, e.opts.strictTypes)) + } + t.schemaKeywords = function (e, t, n, o) { + const { gen: l, schema: h, data: m, allErrors: g, opts: v, self: y } = e, + { RULES: b } = y + function w(i) { + r.shouldUseGroup(h, i) && + (i.type + ? (l.if(a.checkDataType(i.type, m, v.strict)), + f(e, i), + 1 === t.length && t[0] === i.type && n && (l.else(), a.reportTypeError(e)), + l.endIf()) + : f(e, i), + g || l.if(u._`${c.default.errors} === ${o || 0}`)) + } + !h.$ref || (!v.ignoreKeywordsWithRef && s.schemaHasRulesButRef(h, b)) + ? (v.jtd || + (function (e, t) { + !e.schemaEnv.meta && + e.opts.strictTypes && + ((function (e, t) { + t.length && + (e.dataTypes.length + ? (t.forEach((t) => { + d(e.dataTypes, t) || p(e, `type "${t}" not allowed by context "${e.dataTypes.join(',')}"`) + }), + (e.dataTypes = e.dataTypes.filter((e) => d(t, e)))) + : (e.dataTypes = t)) + })(e, t), + e.opts.allowUnionTypes || + (function (e, t) { + t.length > 1 && (2 !== t.length || !t.includes('null')) && p(e, 'use allowUnionTypes to allow union type keyword') + })(e, t), + (function (e, t) { + const n = e.self.RULES.all + for (const a in n) { + const o = n[a] + if ('object' == typeof o && r.shouldUseRule(e.schema, o)) { + const { type: n } = o.definition + n.length && + !n.some((e) => { + return ((r = e), (n = t).includes(r) || ('number' === r && n.includes('integer'))) + var n, r + }) && + p(e, `missing type "${n.join(',')}" for keyword "${a}"`) + } + } + })(e, e.dataTypes)) + })(e, t), + l.block(() => { + for (const e of b.rules) w(e) + w(b.post) + })) + : l.block(() => i.keywordCode(e, '$ref', b.all.$ref.definition)) + } + }, + 5005: (e, t, n) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.keywordCode = void 0)) + const r = n(2227), + a = n(4181), + o = n(412), + i = n(3487), + s = n(2141) + function l(e, t) { + var n + const { gen: r, keyword: l, schema: f, parentSchema: d, $data: p, it: h } = e + !(function ({ schemaEnv: e }, t) { + if (t.async && !e.$async) throw new Error('async keyword in sync schema') + })(h, t) + const m = !p && t.compile ? t.compile.call(h.self, f, d, h) : t.validate, + g = c(r, l, m), + v = r.let('valid') + function y(n = t.async ? i._`await ` : i.nil) { + const a = h.opts.passContext ? s.default.this : s.default.self, + l = !(('compile' in t && !p) || !1 === t.schema) + r.assign(v, i._`${n}${o.callValidateCode(e, g, a, l)}`, t.modifying) + } + function b(e) { + var n + r.if(i.not(null !== (n = t.valid) && void 0 !== n ? n : v), e) + } + ;(e.block$data(v, function () { + if (!1 === t.errors) (y(), t.modifying && u(e), b(() => e.error())) + else { + const n = t.async + ? (function () { + const e = r.let('ruleErrs', null) + return ( + r.try( + () => y(i._`await `), + (t) => + r.assign(v, !1).if( + i._`${t} instanceof ${h.ValidationError}`, + () => r.assign(e, i._`${t}.errors`), + () => r.throw(t), + ), + ), + e + ) + })() + : (function () { + const e = i._`${g}.errors` + return (r.assign(e, null), y(i.nil), e) + })() + ;(t.modifying && u(e), + b(() => + (function (e, t) { + const { gen: n } = e + n.if( + i._`Array.isArray(${t})`, + () => { + ;(n + .assign(s.default.vErrors, i._`${s.default.vErrors} === null ? ${t} : ${s.default.vErrors}.concat(${t})`) + .assign(s.default.errors, i._`${s.default.vErrors}.length`), + a.extendErrors(e)) + }, + () => e.error(), + ) + })(e, n), + )) + } + }), + e.ok(null !== (n = t.valid) && void 0 !== n ? n : v)) + } + function u(e) { + const { gen: t, data: n, it: r } = e + t.if(r.parentData, () => t.assign(n, i._`${r.parentData}[${r.parentDataProperty}]`)) + } + function c(e, t, n) { + if (void 0 === n) throw new Error(`keyword "${t}" failed to compile`) + return e.scopeValue('keyword', 'function' == typeof n ? { ref: n } : { ref: n, code: i.stringify(n) }) + } + t.keywordCode = function (e, t, n, a) { + const o = new r.default(e, n, t) + 'code' in n + ? n.code(o, a) + : o.$data && n.validate + ? l(o, n) + : 'macro' in n + ? (function (e, t) { + const { gen: n, keyword: r, schema: a, parentSchema: o, it: s } = e, + l = t.macro.call(s.self, a, o, s), + u = c(n, r, l) + !1 !== s.opts.validateSchema && s.self.validateSchema(l, !0) + const f = n.name('valid') + ;(e.subschema({ schema: l, schemaPath: i.nil, errSchemaPath: `${s.errSchemaPath}/${r}`, topSchemaRef: u, compositeRule: !0 }, f), + e.pass(f, () => e.error(!0))) + })(o, n) + : (n.compile || n.validate) && l(o, n) + } + }, + 7159: (e, t, n) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.CodeGen = t.Name = t.nil = t.stringify = t.str = t._ = t.KeywordCxt = void 0)) + const r = n(2227) + t.KeywordCxt = r.default + var a = n(3487) + ;(Object.defineProperty(t, '_', { + enumerable: !0, + get: function () { + return a._ + }, + }), + Object.defineProperty(t, 'str', { + enumerable: !0, + get: function () { + return a.str + }, + }), + Object.defineProperty(t, 'stringify', { + enumerable: !0, + get: function () { + return a.stringify + }, + }), + Object.defineProperty(t, 'nil', { + enumerable: !0, + get: function () { + return a.nil + }, + }), + Object.defineProperty(t, 'Name', { + enumerable: !0, + get: function () { + return a.Name + }, + }), + Object.defineProperty(t, 'CodeGen', { + enumerable: !0, + get: function () { + return a.CodeGen + }, + })) + const o = n(8727), + i = n(3141), + s = n(5173), + l = n(3487), + u = n(2531), + c = n(453), + f = n(6776), + d = n(4775), + p = ['removeAdditional', 'useDefaults', 'coerceTypes'], + h = new Set([ + 'validate', + 'serialize', + 'parse', + 'wrapper', + 'root', + 'schema', + 'keyword', + 'pattern', + 'formats', + 'validate$data', + 'func', + 'obj', + 'Error', + ]), + m = { + errorDataPath: '', + format: '`validateFormats: false` can be used instead.', + nullable: '"nullable" keyword is supported by default.', + jsonPointers: 'Deprecated jsPropertySyntax can be used instead.', + extendRefs: 'Deprecated ignoreKeywordsWithRef can be used instead.', + missingRefs: 'Pass empty schema with $id that should be ignored to ajv.addSchema.', + processCode: 'Use option `code: {process: (code, schemaEnv: object) => string}`', + sourceCode: 'Use option `code: {source: true}`', + schemaId: 'JSON Schema draft-04 is not supported in Ajv v7.', + strictDefaults: 'It is default now, see option `strict`.', + strictKeywords: 'It is default now, see option `strict`.', + strictNumbers: 'It is default now, see option `strict`.', + uniqueItems: '"uniqueItems" keyword is always validated.', + unknownFormats: 'Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).', + cache: 'Map is used as cache, schema object as key.', + serialize: 'Map is used as cache, schema object as key.', + }, + g = { ignoreKeywordsWithRef: '', jsPropertySyntax: '', unicode: '"minLength"/"maxLength" account for unicode characters by default.' } + function v(e) { + var t, n, r, a, o, i, s, l, u, c, f, d + const p = null === (t = e.strict) || void 0 === t || t, + h = !!p && 'log', + m = null === (n = e.code) || void 0 === n ? void 0 : n.optimize, + g = !0 === m || void 0 === m ? 1 : m || 0 + return { + strict: p, + strictTypes: null !== (r = e.strictTypes) && void 0 !== r ? r : h, + strictTuples: null !== (a = e.strictTuples) && void 0 !== a ? a : h, + code: e.code ? { ...e.code, optimize: g } : { optimize: g }, + loopRequired: null !== (o = e.loopRequired) && void 0 !== o ? o : 1 / 0, + loopEnum: null !== (i = e.loopEnum) && void 0 !== i ? i : 1 / 0, + meta: null === (s = e.meta) || void 0 === s || s, + messages: null === (l = e.messages) || void 0 === l || l, + inlineRefs: null === (u = e.inlineRefs) || void 0 === u || u, + addUsedSchema: null === (c = e.addUsedSchema) || void 0 === c || c, + validateSchema: null === (f = e.validateSchema) || void 0 === f || f, + validateFormats: null === (d = e.validateFormats) || void 0 === d || d, + } + } + class y { + constructor(e = {}) { + ;((this.schemas = {}), + (this.refs = {}), + (this.formats = {}), + (this._compilations = new Set()), + (this._loading = {}), + (this._cache = new Map()), + (e = this.opts = { ...e, ...v(e) })) + const { es5: t, lines: n } = this.opts.code + ;((this.scope = new l.ValueScope({ scope: {}, prefixes: h, es5: t, lines: n })), + (this.logger = (function (e) { + if (!1 === e) return S + if (void 0 === e) return console + if (e.log && e.warn && e.error) return e + throw new Error('logger must implement log, warn and error methods') + })(e.logger))) + const r = e.validateFormats + ;((e.validateFormats = !1), + (this.RULES = i.getRules()), + b.call(this, m, e, 'NOT SUPPORTED'), + b.call(this, g, e, 'DEPRECATED', 'warn'), + (this._metaOpts = k.call(this)), + e.formats && x.call(this), + this._addVocabularies(), + this._addDefaultMetaSchema(), + e.keywords && E.call(this, e.keywords), + 'object' == typeof e.meta && this.addMetaSchema(e.meta), + _.call(this), + (e.validateFormats = r)) + } + _addVocabularies() { + this.addKeyword('$async') + } + _addDefaultMetaSchema() { + const { $data: e, meta: t } = this.opts + t && e && this.addMetaSchema(d, d.$id, !1) + } + defaultMeta() { + const { meta: e } = this.opts + return (this.opts.defaultMeta = 'object' == typeof e ? e.$id || e : void 0) + } + validate(e, t) { + let n + if ('string' == typeof e) { + if (((n = this.getSchema(e)), !n)) throw new Error(`no schema with key or ref "${e}"`) + } else n = this.compile(e) + const r = n(t) + return ('$async' in n || (this.errors = n.errors), r) + } + compile(e, t) { + const n = this._addSchema(e, t) + return n.validate || this._compileSchemaEnv(n) + } + compileAsync(e, t) { + if ('function' != typeof this.opts.loadSchema) throw new Error('options.loadSchema should be a function') + const { loadSchema: n } = this.opts + return r.call(this, e, t) + async function r(e, t) { + await a.call(this, e.$schema) + const n = this._addSchema(e, t) + return n.validate || i.call(this, n) + } + async function a(e) { + e && !this.getSchema(e) && (await r.call(this, { $ref: e }, !0)) + } + async function i(e) { + try { + return this._compileSchemaEnv(e) + } catch (t) { + if (!(t instanceof o.MissingRefError)) throw t + return (s.call(this, t), await l.call(this, t.missingSchema), i.call(this, e)) + } + } + function s({ missingSchema: e, missingRef: t }) { + if (this.refs[e]) throw new Error(`AnySchema ${e} is loaded but ${t} cannot be resolved`) + } + async function l(e) { + const n = await u.call(this, e) + ;(this.refs[e] || (await a.call(this, n.$schema)), this.refs[e] || this.addSchema(n, e, t)) + } + async function u(e) { + const t = this._loading[e] + if (t) return t + try { + return await (this._loading[e] = n(e)) + } finally { + delete this._loading[e] + } + } + } + addSchema(e, t, n, r = this.opts.validateSchema) { + if (Array.isArray(e)) { + for (const t of e) this.addSchema(t, void 0, n, r) + return this + } + let a + if ('object' == typeof e && ((a = e.$id), void 0 !== a && 'string' != typeof a)) throw new Error('schema id must be string') + return ((t = u.normalizeId(t || a)), this._checkUnique(t), (this.schemas[t] = this._addSchema(e, n, r, !0)), this) + } + addMetaSchema(e, t, n = this.opts.validateSchema) { + return (this.addSchema(e, t, !0, n), this) + } + validateSchema(e, t) { + if ('boolean' == typeof e) return !0 + let n + if (((n = e.$schema), void 0 !== n && 'string' != typeof n)) throw new Error('$schema must be a string') + if (((n = n || this.opts.defaultMeta || this.defaultMeta()), !n)) + return (this.logger.warn('meta-schema not available'), (this.errors = null), !0) + const r = this.validate(n, e) + if (!r && t) { + const e = 'schema is invalid: ' + this.errorsText() + if ('log' !== this.opts.validateSchema) throw new Error(e) + this.logger.error(e) + } + return r + } + getSchema(e) { + let t + for (; 'string' == typeof (t = w.call(this, e)); ) e = t + if (void 0 === t) { + const n = new s.SchemaEnv({ schema: {} }) + if (((t = s.resolveSchema.call(this, n, e)), !t)) return + this.refs[e] = t + } + return t.validate || this._compileSchemaEnv(t) + } + removeSchema(e) { + if (e instanceof RegExp) return (this._removeAllSchemas(this.schemas, e), this._removeAllSchemas(this.refs, e), this) + switch (typeof e) { + case 'undefined': + return (this._removeAllSchemas(this.schemas), this._removeAllSchemas(this.refs), this._cache.clear(), this) + case 'string': { + const t = w.call(this, e) + return ('object' == typeof t && this._cache.delete(t.schema), delete this.schemas[e], delete this.refs[e], this) + } + case 'object': { + const t = e + this._cache.delete(t) + let n = e.$id + return (n && ((n = u.normalizeId(n)), delete this.schemas[n], delete this.refs[n]), this) + } + default: + throw new Error('ajv.removeSchema: invalid parameter') + } + } + addVocabulary(e) { + for (const t of e) this.addKeyword(t) + return this + } + addKeyword(e, t) { + let n + if ('string' == typeof e) + ((n = e), 'object' == typeof t && (this.logger.warn('these parameters are deprecated, see docs for addKeyword'), (t.keyword = n))) + else { + if ('object' != typeof e || void 0 !== t) throw new Error('invalid addKeywords parameters') + if (((n = (t = e).keyword), Array.isArray(n) && !n.length)) throw new Error('addKeywords: keyword must be string or non-empty array') + } + if ((P.call(this, n, t), !t)) return (f.eachItem(n, (e) => O.call(this, e)), this) + j.call(this, t) + const r = { ...t, type: c.getJSONTypes(t.type), schemaType: c.getJSONTypes(t.schemaType) } + return (f.eachItem(n, 0 === r.type.length ? (e) => O.call(this, e, r) : (e) => r.type.forEach((t) => O.call(this, e, r, t))), this) + } + getKeyword(e) { + const t = this.RULES.all[e] + return 'object' == typeof t ? t.definition : !!t + } + removeKeyword(e) { + const { RULES: t } = this + ;(delete t.keywords[e], delete t.all[e]) + for (const n of t.rules) { + const t = n.rules.findIndex((t) => t.keyword === e) + t >= 0 && n.rules.splice(t, 1) + } + return this + } + addFormat(e, t) { + return ('string' == typeof t && (t = new RegExp(t)), (this.formats[e] = t), this) + } + errorsText(e = this.errors, { separator: t = ', ', dataVar: n = 'data' } = {}) { + return e && 0 !== e.length ? e.map((e) => `${n}${e.dataPath} ${e.message}`).reduce((e, n) => e + t + n) : 'No errors' + } + $dataMetaSchema(e, t) { + const n = this.RULES.all + e = JSON.parse(JSON.stringify(e)) + for (const r of t) { + const t = r.split('/').slice(1) + let a = e + for (const e of t) a = a[e] + for (const e in n) { + const t = n[e] + if ('object' != typeof t) continue + const { $data: r } = t.definition, + o = a[e] + r && o && (a[e] = I(o)) + } + } + return e + } + _removeAllSchemas(e, t) { + for (const n in e) { + const r = e[n] + ;(t && !t.test(n)) || ('string' == typeof r ? delete e[n] : r && !r.meta && (this._cache.delete(r.schema), delete e[n])) + } + } + _addSchema(e, t, n = this.opts.validateSchema, r = this.opts.addUsedSchema) { + if ('object' != typeof e) { + if (this.opts.jtd) throw new Error('schema must be object') + if ('boolean' != typeof e) throw new Error('schema must be object or boolean') + } + let a = this._cache.get(e) + if (void 0 !== a) return a + const o = u.getSchemaRefs.call(this, e) + ;((a = new s.SchemaEnv({ schema: e, meta: t, localRefs: o })), this._cache.set(a.schema, a)) + const i = a.baseId + return (r && !i.startsWith('#') && (i && this._checkUnique(i), (this.refs[i] = a)), n && this.validateSchema(e, !0), a) + } + _checkUnique(e) { + if (this.schemas[e] || this.refs[e]) throw new Error(`schema with key or id "${e}" already exists`) + } + _compileSchemaEnv(e) { + if ((e.meta ? this._compileMetaSchema(e) : s.compileSchema.call(this, e), !e.validate)) throw new Error('ajv implementation error') + return e.validate + } + _compileMetaSchema(e) { + const t = this.opts + this.opts = this._metaOpts + try { + s.compileSchema.call(this, e) + } finally { + this.opts = t + } + } + } + function b(e, t, n, r = 'error') { + for (const a in e) { + const o = a + o in t && this.logger[r](`${n}: option ${a}. ${e[o]}`) + } + } + function w(e) { + return ((e = u.normalizeId(e)), this.schemas[e] || this.refs[e]) + } + function _() { + const e = this.opts.schemas + if (e) + if (Array.isArray(e)) this.addSchema(e) + else for (const t in e) this.addSchema(e[t], t) + } + function x() { + for (const e in this.opts.formats) { + const t = this.opts.formats[e] + t && this.addFormat(e, t) + } + } + function E(e) { + if (Array.isArray(e)) this.addVocabulary(e) + else { + this.logger.warn('keywords option as map is deprecated, pass array') + for (const t in e) { + const n = e[t] + ;(n.keyword || (n.keyword = t), this.addKeyword(n)) + } + } + } + function k() { + const e = { ...this.opts } + for (const t of p) delete e[t] + return e + } + ;((t.default = y), (y.ValidationError = o.ValidationError), (y.MissingRefError = o.MissingRefError)) + const S = { log() {}, warn() {}, error() {} }, + $ = /^[a-z_$][a-z0-9_$:-]*$/i + function P(e, t) { + const { RULES: n } = this + if ( + (f.eachItem(e, (e) => { + if (n.keywords[e]) throw new Error(`Keyword ${e} is already defined`) + if (!$.test(e)) throw new Error(`Keyword ${e} has invalid name`) + }), + t && t.$data && !('code' in t) && !('validate' in t)) + ) + throw new Error('$data keyword must have "code" or "validate" function') + } + function O(e, t, n) { + var r + const a = null == t ? void 0 : t.post + if (n && a) throw new Error('keyword with "post" flag cannot have "type"') + const { RULES: o } = this + let i = a ? o.post : o.rules.find(({ type: e }) => e === n) + if ((i || ((i = { type: n, rules: [] }), o.rules.push(i)), (o.keywords[e] = !0), !t)) return + const s = { keyword: e, definition: { ...t, type: c.getJSONTypes(t.type), schemaType: c.getJSONTypes(t.schemaType) } } + ;(t.before ? C.call(this, i, s, t.before) : i.rules.push(s), + (o.all[e] = s), + null === (r = t.implements) || void 0 === r || r.forEach((e) => this.addKeyword(e))) + } + function C(e, t, n) { + const r = e.rules.findIndex((e) => e.keyword === n) + r >= 0 ? e.rules.splice(r, 0, t) : (e.rules.push(t), this.logger.warn(`rule ${n} is not defined`)) + } + function j(e) { + let { metaSchema: t } = e + void 0 !== t && (e.$data && this.opts.$data && (t = I(t)), (e.validateSchema = this.compile(t, !0))) + } + const N = { $ref: 'https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#' } + function I(e) { + return { anyOf: [e, N] } + } + }, + 4783: (e, t, n) => { + 'use strict' + Object.defineProperty(t, '__esModule', { value: !0 }) + const r = n(3487), + a = n(4069), + o = n(6776), + i = n(4815), + s = { + keyword: 'additionalItems', + type: 'array', + schemaType: ['boolean', 'object'], + before: 'uniqueItems', + error: { + message: ({ params: { len: e } }) => r.str`should NOT have more than ${e} items`, + params: ({ params: { len: e } }) => r._`{limit: ${e}}`, + }, + code(e) { + const { gen: t, schema: n, parentSchema: s, data: l, it: u } = e, + { items: c } = s + if (!Array.isArray(c)) return void i.checkStrictMode(u, '"additionalItems" is ignored when "items" is not an array of schemas') + u.items = !0 + const f = t.const('len', r._`${l}.length`) + if (!1 === n) (e.setParams({ len: c.length }), e.pass(r._`${f} <= ${c.length}`)) + else if ('object' == typeof n && !o.alwaysValidSchema(u, n)) { + const n = t.var('valid', r._`${f} <= ${c.length}`) + ;(t.if(r.not(n), () => + (function (n) { + t.forRange('i', c.length, f, (o) => { + ;(e.subschema({ keyword: 'additionalItems', dataProp: o, dataPropType: a.Type.Num }, n), + u.allErrors || t.if(r.not(n), () => t.break())) + }) + })(n), + ), + e.ok(n)) + } + }, + } + t.default = s + }, + 9351: (e, t, n) => { + 'use strict' + Object.defineProperty(t, '__esModule', { value: !0 }) + const r = n(412), + a = n(3487), + o = n(2141), + i = n(4069), + s = n(6776), + l = { + keyword: 'additionalProperties', + type: ['object'], + schemaType: ['boolean', 'object'], + allowUndefined: !0, + trackErrors: !0, + error: { + message: 'should NOT have additional properties', + params: ({ params: e }) => a._`{additionalProperty: ${e.additionalProperty}}`, + }, + code(e) { + const { gen: t, schema: n, parentSchema: l, data: u, errsCount: c, it: f } = e + if (!c) throw new Error('ajv implementation error') + const { allErrors: d, opts: p } = f + if (((f.props = !0), 'all' !== p.removeAdditional && s.alwaysValidSchema(f, n))) return + const h = r.allSchemaProperties(l.properties), + m = r.allSchemaProperties(l.patternProperties) + function g(e) { + t.code(a._`delete ${u}[${e}]`) + } + function v(r) { + if ('all' === p.removeAdditional || (p.removeAdditional && !1 === n)) g(r) + else { + if (!1 === n) return (e.setParams({ additionalProperty: r }), e.error(), void (d || t.break())) + if ('object' == typeof n && !s.alwaysValidSchema(f, n)) { + const n = t.name('valid') + 'failing' === p.removeAdditional + ? (y(r, n, !1), + t.if(a.not(n), () => { + ;(e.reset(), g(r)) + })) + : (y(r, n), d || t.if(a.not(n), () => t.break())) + } + } + } + function y(t, n, r) { + const a = { keyword: 'additionalProperties', dataProp: t, dataPropType: i.Type.Str } + ;(!1 === r && Object.assign(a, { compositeRule: !0, createErrors: !1, allErrors: !1 }), e.subschema(a, n)) + } + ;(t.forIn('key', u, (e) => { + h.length || m.length + ? t.if( + (function (e) { + let n + if (h.length > 8) { + const a = s.schemaRefOrVal(f, l.properties, 'properties') + n = r.isOwnProperty(t, a, e) + } else n = h.length ? a.or(...h.map((t) => a._`${e} === ${t}`)) : a.nil + return (m.length && (n = a.or(n, ...m.map((n) => a._`${r.usePattern(t, n)}.test(${e})`))), a.not(n)) + })(e), + () => v(e), + ) + : v(e) + }), + e.ok(a._`${c} === ${o.default.errors}`)) + }, + } + t.default = l + }, + 1125: (e, t, n) => { + 'use strict' + Object.defineProperty(t, '__esModule', { value: !0 }) + const r = n(6776), + a = { + keyword: 'allOf', + schemaType: 'array', + code(e) { + const { gen: t, schema: n, it: a } = e + if (!Array.isArray(n)) throw new Error('ajv implementation error') + const o = t.name('valid') + n.forEach((t, n) => { + if (r.alwaysValidSchema(a, t)) return + const i = e.subschema({ keyword: 'allOf', schemaProp: n }, o) + ;(e.ok(o), e.mergeEvaluated(i)) + }) + }, + } + t.default = a + }, + 19: (e, t, n) => { + 'use strict' + Object.defineProperty(t, '__esModule', { value: !0 }) + const r = { + keyword: 'anyOf', + schemaType: 'array', + trackErrors: !0, + code: n(412).validateUnion, + error: { message: 'should match some schema in anyOf' }, + } + t.default = r + }, + 9864: (e, t, n) => { + 'use strict' + Object.defineProperty(t, '__esModule', { value: !0 }) + const r = n(3487), + a = n(4069), + o = n(6776), + i = n(4815), + s = { + keyword: 'contains', + type: 'array', + schemaType: ['object', 'boolean'], + before: 'uniqueItems', + trackErrors: !0, + error: { + message: ({ params: { min: e, max: t } }) => + void 0 === t + ? r.str`should contain at least ${e} valid item(s)` + : r.str`should contain at least ${e} and no more than ${t} valid item(s)`, + params: ({ params: { min: e, max: t } }) => (void 0 === t ? r._`{minContains: ${e}}` : r._`{minContains: ${e}, maxContains: ${t}}`), + }, + code(e) { + const { gen: t, schema: n, parentSchema: s, data: l, it: u } = e + let c, f + const { minContains: d, maxContains: p } = s + u.opts.next ? ((c = void 0 === d ? 1 : d), (f = p)) : (c = 1) + const h = t.const('len', r._`${l}.length`) + if ((e.setParams({ min: c, max: f }), void 0 === f && 0 === c)) + return void i.checkStrictMode(u, '"minContains" == 0 without "maxContains": "contains" keyword ignored') + if (void 0 !== f && c > f) return (i.checkStrictMode(u, '"minContains" > "maxContains" is always invalid'), void e.fail()) + if (o.alwaysValidSchema(u, n)) { + let t = r._`${h} >= ${c}` + return (void 0 !== f && (t = r._`${t} && ${h} <= ${f}`), void e.pass(t)) + } + u.items = !0 + const m = t.name('valid') + if (void 0 === f && 1 === c) g(m, () => t.if(m, () => t.break())) + else { + t.let(m, !1) + const e = t.name('_valid'), + n = t.let('count', 0) + g(e, () => + t.if(e, () => + (function (e) { + ;(t.code(r._`${e}++`), + void 0 === f + ? t.if(r._`${e} >= ${c}`, () => t.assign(m, !0).break()) + : (t.if(r._`${e} > ${f}`, () => t.assign(m, !1).break()), + 1 === c ? t.assign(m, !0) : t.if(r._`${e} >= ${c}`, () => t.assign(m, !0)))) + })(n), + ), + ) + } + function g(n, r) { + t.forRange('i', 0, h, (t) => { + ;(e.subschema({ keyword: 'contains', dataProp: t, dataPropType: a.Type.Num, compositeRule: !0 }, n), r()) + }) + } + e.result(m, () => e.reset()) + }, + } + t.default = s + }, + 7772: (e, t, n) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.validateSchemaDeps = t.validatePropertyDeps = t.error = void 0)) + const r = n(3487), + a = n(6776), + o = n(412) + t.error = { + message: ({ params: { property: e, depsCount: t, deps: n } }) => { + const a = 1 === t ? 'property' : 'properties' + return r.str`should have ${a} ${n} when property ${e} is present` + }, + params: ({ params: { property: e, depsCount: t, deps: n, missingProperty: a } }) => r._`{property: ${e}, missingProperty: ${a}, depsCount: ${t}, - deps: ${n}}`};const i={keyword:"dependencies",type:"object",schemaType:"object",error:t.error,code(e){const[t,n]=function({schema:e}){const t={},n={};for(const r in e)"__proto__"!==r&&((Array.isArray(e[r])?t:n)[r]=e[r]);return[t,n]}(e);s(e,t),l(e,n)}};function s(e,t=e.schema){const{gen:n,data:a,it:i}=e;if(0===Object.keys(t).length)return;const s=n.let("missing");for(const l in t){const u=t[l];if(0===u.length)continue;const c=o.propertyInData(n,a,l,i.opts.ownProperties);e.setParams({property:l,depsCount:u.length,deps:u.join(", ")}),i.allErrors?n.if(c,(()=>{for(const t of u)o.checkReportMissingProp(e,t)})):(n.if(r._`${c} && (${o.checkMissingProp(e,u,s)})`),o.reportMissingProp(e,s),n.else())}}function l(e,t=e.schema){const{gen:n,data:r,keyword:i,it:s}=e,l=n.name("valid");for(const u in t)a.alwaysValidSchema(s,t[u])||(n.if(o.propertyInData(n,r,u,s.opts.ownProperties),(()=>{const t=e.subschema({keyword:i,schemaProp:u},l);e.mergeValidEvaluated(t,l)}),(()=>n.var(l,!0))),e.ok(l))}t.validatePropertyDeps=s,t.validateSchemaDeps=l,t.default=i},9434:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(3487),a=n(6776),o=n(4815),i={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:{message:({params:e})=>r.str`should match "${e.ifClause}" schema`,params:({params:e})=>r._`{failingKeyword: ${e.ifClause}}`},code(e){const{gen:t,parentSchema:n,it:a}=e;void 0===n.then&&void 0===n.else&&o.checkStrictMode(a,'"if" without "then" and "else" is ignored');const i=s(a,"then"),l=s(a,"else");if(!i&&!l)return;const u=t.let("valid",!0),c=t.name("_valid");if(function(){const t=e.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},c);e.mergeEvaluated(t)}(),e.reset(),i&&l){const n=t.let("ifClause");e.setParams({ifClause:n}),t.if(c,f("then",n),f("else",n))}else i?t.if(c,f("then")):t.if(r.not(c),f("else"));function f(n,a){return()=>{const o=e.subschema({keyword:n},c);t.assign(u,c),e.mergeValidEvaluated(o,u),a?t.assign(a,r._`${n}`):e.setParams({ifClause:n})}}e.pass(u,(()=>e.error(!0)))}};function s(e,t){const n=e.schema[t];return void 0!==n&&!a.alwaysValidSchema(e,n)}t.default=i},8200:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(4783),a=n(4665),o=n(9864),i=n(7772),s=n(3708),l=n(9351),u=n(6239),c=n(2296),f=n(5697),d=n(19),p=n(4200),h=n(1125),m=n(9434),g=n(6552),v=[f.default,d.default,p.default,h.default,m.default,g.default,r.default,a.default,o.default,s.default,l.default,i.default,u.default,c.default];t.default=v},4665:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(3487),a=n(6776),o=n(4815),i=n(412),s={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(e){const{gen:t,schema:n,it:s}=e;if(Array.isArray(n))s.opts.unevaluated&&n.length&&!0!==s.items&&(s.items=a.mergeEvaluated.items(t,n.length,s.items)),function(n){const{parentSchema:i,data:l}=e;if(s.opts.strictTuples&&!function(e,t){return e===t.minItems&&(e===t.maxItems||!1===t.additionalItems)}(n.length,i)){const e=`"items" is ${n.length}-tuple, but minItems or maxItems/additionalItems are not specified or different`;o.checkStrictMode(s,e,s.opts.strictTuples)}const u=t.name("valid"),c=t.const("len",r._`${l}.length`);n.forEach(((n,o)=>{a.alwaysValidSchema(s,n)||(t.if(r._`${c} > ${o}`,(()=>e.subschema({keyword:"items",schemaProp:o,dataProp:o},u))),e.ok(u))}))}(n);else{if(s.items=!0,a.alwaysValidSchema(s,n))return;e.ok(i.validateArray(e))}}};t.default=s},5697:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(6776),a={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(e){const{gen:t,schema:n,it:a}=e;if(r.alwaysValidSchema(a,n))return void e.fail();const o=t.name("valid");e.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},o),e.result(o,(()=>e.error()),(()=>e.reset()))},error:{message:"should NOT be valid"}};t.default=a},4200:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(3487),a=n(6776),o={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:{message:"should match exactly one schema in oneOf",params:({params:e})=>r._`{passingSchemas: ${e.passing}}`},code(e){const{gen:t,schema:n,it:o}=e;if(!Array.isArray(n))throw new Error("ajv implementation error");const i=n,s=t.let("valid",!1),l=t.let("passing",null),u=t.name("_valid");e.setParams({passing:l}),t.block((function(){i.forEach(((n,i)=>{let c;a.alwaysValidSchema(o,n)?t.var(u,!0):c=e.subschema({keyword:"oneOf",schemaProp:i,compositeRule:!0},u),i>0&&t.if(r._`${u} && ${s}`).assign(s,!1).assign(l,r._`[${l}, ${i}]`).else(),t.if(u,(()=>{t.assign(s,!0),t.assign(l,i),c&&e.mergeEvaluated(c,r.Name)}))}))})),e.result(s,(()=>e.reset()),(()=>e.error(!0)))}};t.default=o},2296:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(412),a=n(3487),o=n(4069),i=n(4815),s=n(6776),l={keyword:"patternProperties",type:"object",schemaType:"object",code(e){const{gen:t,schema:n,data:l,parentSchema:u,it:c}=e,{opts:f}=c,d=r.schemaProperties(c,n);if(0===d.length)return;const p=f.strict&&!f.allowMatchingProperties&&u.properties,h=t.name("valid");!0===c.props||c.props instanceof a.Name||(c.props=s.evaluatedPropsToName(t,c.props));const{props:m}=c;function g(e){for(const t in p)new RegExp(e).test(t)&&i.checkStrictMode(c,`property ${t} matches pattern ${e} (use allowMatchingProperties)`)}function v(n){t.forIn("key",l,(i=>{t.if(a._`${r.usePattern(t,n)}.test(${i})`,(()=>{e.subschema({keyword:"patternProperties",schemaProp:n,dataProp:i,dataPropType:o.Type.Str},h),c.opts.unevaluated&&!0!==m?t.assign(a._`${m}[${i}]`,!0):c.allErrors||t.if(a.not(h),(()=>t.break()))}))}))}!function(){for(const e of d)p&&g(e),c.allErrors?v(e):(t.var(h,!0),v(e),t.if(h))}()}};t.default=l},6239:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(2227),a=n(412),o=n(6776),i=n(9351),s={keyword:"properties",type:"object",schemaType:"object",code(e){const{gen:t,schema:n,parentSchema:s,data:l,it:u}=e;"all"===u.opts.removeAdditional&&void 0===s.additionalProperties&&i.default.code(new r.default(u,i.default,"additionalProperties"));const c=a.allSchemaProperties(n);for(const e of c)u.definedProperties.add(e);u.opts.unevaluated&&c.length&&!0!==u.props&&(u.props=o.mergeEvaluated.props(t,o.toHash(c),u.props));const f=c.filter((e=>!o.alwaysValidSchema(u,n[e])));if(0===f.length)return;const d=t.name("valid");for(const n of f)p(n)?h(n):(t.if(a.propertyInData(t,l,n,u.opts.ownProperties)),h(n),u.allErrors||t.else().var(d,!0),t.endIf()),e.it.definedProperties.add(n),e.ok(d);function p(e){return u.opts.useDefaults&&!u.compositeRule&&void 0!==n[e].default}function h(t){e.subschema({keyword:"properties",schemaProp:t,dataProp:t},d)}}};t.default=s},3708:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(3487),a=n(6776),o={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:{message:({params:e})=>r.str`property name '${e.propertyName}' is invalid`,params:({params:e})=>r._`{propertyName: ${e.propertyName}}`},code(e){const{gen:t,schema:n,data:o,it:i}=e;if(a.alwaysValidSchema(i,n))return;const s=t.name("valid");t.forIn("key",o,(n=>{e.setParams({propertyName:n}),e.subschema({keyword:"propertyNames",data:n,dataTypes:["string"],propertyName:n,compositeRule:!0},s),t.if(r.not(s),(()=>{e.error(!0),i.allErrors||t.break()}))})),e.ok(s)}};t.default=o},6552:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(4815),a={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:e,parentSchema:t,it:n}){void 0===t.if&&r.checkStrictMode(n,`"${e}" without "if" is ignored`)}};t.default=a},412:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateUnion=t.validateArray=t.usePattern=t.callValidateCode=t.schemaProperties=t.allSchemaProperties=t.noPropertyInData=t.propertyInData=t.isOwnProperty=t.hasPropFunc=t.reportMissingProp=t.checkMissingProp=t.checkReportMissingProp=void 0;const r=n(3487),a=n(6776),o=n(4069),i=n(2141);function s(e){return e.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:r._`Object.prototype.hasOwnProperty`})}function l(e,t,n){return r._`${s(e)}.call(${t}, ${n})`}function u(e,t,n,a){const o=r._`${t}${r.getProperty(n)} === undefined`;return a?r.or(o,r.not(l(e,t,n))):o}function c(e){return e?Object.keys(e).filter((e=>"__proto__"!==e)):[]}t.checkReportMissingProp=function(e,t){const{gen:n,data:a,it:o}=e;n.if(u(n,a,t,o.opts.ownProperties),(()=>{e.setParams({missingProperty:r._`${t}`},!0),e.error()}))},t.checkMissingProp=function({gen:e,data:t,it:{opts:n}},a,o){return r.or(...a.map((a=>r.and(u(e,t,a,n.ownProperties),r._`${o} = ${a}`))))},t.reportMissingProp=function(e,t){e.setParams({missingProperty:t},!0),e.error()},t.hasPropFunc=s,t.isOwnProperty=l,t.propertyInData=function(e,t,n,a){const o=r._`${t}${r.getProperty(n)} !== undefined`;return a?r._`${o} && ${l(e,t,n)}`:o},t.noPropertyInData=u,t.allSchemaProperties=c,t.schemaProperties=function(e,t){return c(t).filter((n=>!a.alwaysValidSchema(e,t[n])))},t.callValidateCode=function({schemaCode:e,data:t,it:{gen:n,topSchemaRef:a,schemaPath:o,errorPath:s},it:l},u,c,f){const d=f?r._`${e}, ${t}, ${a}${o}`:t,p=[[i.default.dataPath,r.strConcat(i.default.dataPath,s)],[i.default.parentData,l.parentData],[i.default.parentDataProperty,l.parentDataProperty],[i.default.rootData,i.default.rootData]];l.opts.dynamicRef&&p.push([i.default.dynamicAnchors,i.default.dynamicAnchors]);const h=r._`${d}, ${n.object(...p)}`;return c!==r.nil?r._`${u}.call(${c}, ${h})`:r._`${u}(${h})`},t.usePattern=function(e,t){return e.scopeValue("pattern",{key:t,ref:new RegExp(t,"u"),code:r._`new RegExp(${t}, "u")`})},t.validateArray=function(e){const{gen:t,data:n,keyword:a,it:i}=e,s=t.name("valid");if(i.allErrors){const e=t.let("valid",!0);return l((()=>t.assign(e,!1))),e}return t.var(s,!0),l((()=>t.break())),s;function l(i){const l=t.const("len",r._`${n}.length`);t.forRange("i",0,l,(n=>{e.subschema({keyword:a,dataProp:n,dataPropType:o.Type.Num},s),t.if(r.not(s),i)}))}},t.validateUnion=function(e){const{gen:t,schema:n,keyword:o,it:i}=e;if(!Array.isArray(n))throw new Error("ajv implementation error");if(n.some((e=>a.alwaysValidSchema(i,e)))&&!i.opts.unevaluated)return;const s=t.let("valid",!1),l=t.name("_valid");t.block((()=>n.forEach(((n,a)=>{const i=e.subschema({keyword:o,schemaProp:a,compositeRule:!0},l);t.assign(s,r._`${s} || ${l}`),e.mergeValidEvaluated(i,l)||t.if(r.not(s))})))),e.result(s,(()=>e.reset()),(()=>e.error(!0)))}},8386:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};t.default=n},5684:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(8386),a=n(8280),o=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",r.default,a.default];t.default=o},8280:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.callRef=t.getValidate=void 0;const r=n(8727),a=n(412),o=n(3487),i=n(2141),s=n(5173),l=n(6776),u={keyword:"$ref",schemaType:"string",code(e){const{gen:t,schema:n,it:a}=e,{baseId:i,schemaEnv:l,validateName:u,opts:d,self:p}=a;if("#"===n||"#/"===n)return function(){if(l===l.root)return f(e,u,l,l.$async);const n=t.scopeValue("root",{ref:l.root});return f(e,o._`${n}.validate`,l.root,l.root.$async)}();const h=s.resolveRef.call(p,l.root,i,n);if(void 0===h)throw new r.MissingRefError(i,n);return h instanceof s.SchemaEnv?function(t){const n=c(e,t);f(e,n,t,t.$async)}(h):function(r){const a=t.scopeValue("schema",!0===d.code.source?{ref:r,code:o.stringify(r)}:{ref:r}),i=t.name("valid"),s=e.subschema({schema:r,dataTypes:[],schemaPath:o.nil,topSchemaRef:a,errSchemaPath:n},i);e.mergeEvaluated(s),e.ok(i)}(h)}};function c(e,t){const{gen:n}=e;return t.validate?n.scopeValue("validate",{ref:t.validate}):o._`${n.scopeValue("wrapper",{ref:t})}.validate`}function f(e,t,n,r){const{gen:s,it:u}=e,{allErrors:c,schemaEnv:f,opts:d}=u,p=d.passContext?i.default.this:o.nil;function h(e){const t=o._`${e}.errors`;s.assign(i.default.vErrors,o._`${i.default.vErrors} === null ? ${t} : ${i.default.vErrors}.concat(${t})`),s.assign(i.default.errors,o._`${i.default.vErrors}.length`)}function m(e){var t;if(!u.opts.unevaluated)return;const r=null===(t=null==n?void 0:n.validate)||void 0===t?void 0:t.evaluated;if(!0!==u.props)if(r&&!r.dynamicProps)void 0!==r.props&&(u.props=l.mergeEvaluated.props(s,r.props,u.props));else{const t=s.var("props",o._`${e}.evaluated.props`);u.props=l.mergeEvaluated.props(s,t,u.props,o.Name)}if(!0!==u.items)if(r&&!r.dynamicItems)void 0!==r.items&&(u.items=l.mergeEvaluated.items(s,r.items,u.items));else{const t=s.var("items",o._`${e}.evaluated.items`);u.items=l.mergeEvaluated.items(s,t,u.items,o.Name)}}r?function(){if(!f.$async)throw new Error("async schema referenced by sync schema");const n=s.let("valid");s.try((()=>{s.code(o._`await ${a.callValidateCode(e,t,p)}`),m(t),c||s.assign(n,!0)}),(e=>{s.if(o._`!(${e} instanceof ${u.ValidationError})`,(()=>s.throw(e))),h(e),c||s.assign(n,!1)})),e.ok(n)}():e.result(a.callValidateCode(e,t,p),(()=>m(t)),(()=>h(t)))}t.getValidate=c,t.callRef=f,t.default=u},3924:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(5684),a=n(2649),o=n(8200),i=n(9502),s=n(6167),l=[r.default,a.default,o.default,i.default,s.metadataVocabulary,s.contentVocabulary];t.default=l},9651:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(3487),a={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:{message:({schemaCode:e})=>r.str`should match format "${e}"`,params:({schemaCode:e})=>r._`{format: ${e}}`},code(e,t){const{gen:n,data:a,$data:o,schema:i,schemaCode:s,it:l}=e,{opts:u,errSchemaPath:c,schemaEnv:f,self:d}=l;u.validateFormats&&(o?function(){const o=n.scopeValue("formats",{ref:d.formats,code:u.code.formats}),i=n.const("fDef",r._`${o}[${s}]`),l=n.let("fType"),c=n.let("format");n.if(r._`typeof ${i} == "object" && !(${i} instanceof RegExp)`,(()=>n.assign(l,r._`${i}.type || "string"`).assign(c,r._`${i}.validate`)),(()=>n.assign(l,r._`"string"`).assign(c,i))),e.fail$data(r.or(!1===u.strict?r.nil:r._`${s} && !${c}`,function(){const e=f.$async?r._`(${i}.async ? await ${c}(${a}) : ${c}(${a}))`:r._`${c}(${a})`,n=r._`(typeof ${c} == "function" ? ${e} : ${c}.test(${a}))`;return r._`${c} && ${c} !== true && ${l} === ${t} && !${n}`}()))}():function(){const o=d.formats[i];if(!o)return void function(){if(!1!==u.strict)throw new Error(e());function e(){return`unknown format "${i}" ignored in schema at path "${c}"`}d.logger.warn(e())}();if(!0===o)return;const[s,l,p]=function(e){const t=n.scopeValue("formats",{key:i,ref:e,code:u.code.formats?r._`${u.code.formats}${r.getProperty(i)}`:void 0});return"object"!=typeof e||e instanceof RegExp?["string",e,t]:[e.type||"string",e.validate,r._`${t}.validate`]}(o);s===t&&e.pass(function(){if("object"==typeof o&&!(o instanceof RegExp)&&o.async){if(!f.$async)throw new Error("async format in sync schema");return r._`await ${p}(${a})`}return"function"==typeof l?r._`${p}(${a})`:r._`${p}.test(${a})`}())}())}};t.default=a},9502:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=[n(9651).default];t.default=r},6167:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.contentVocabulary=t.metadataVocabulary=void 0,t.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"],t.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]},4693:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(3487),a=n(6728),o={keyword:"const",$data:!0,error:{message:"should be equal to constant",params:({schemaCode:e})=>r._`{allowedValue: ${e}}`},code(e){const t=e.gen.scopeValue("func",{ref:a,code:r._`require("ajv/dist/compile/equal")`});e.fail$data(r._`!${t}(${e.data}, ${e.schemaCode})`)}};t.default=o},966:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(3487),a=n(6728),o={keyword:"enum",schemaType:"array",$data:!0,error:{message:"should be equal to one of the allowed values",params:({schemaCode:e})=>r._`{allowedValues: ${e}}`},code(e){const{gen:t,data:n,$data:o,schema:i,schemaCode:s,it:l}=e;if(!o&&0===i.length)throw new Error("enum must have non-empty array");const u=i.length>=l.opts.loopEnum,c=e.gen.scopeValue("func",{ref:a,code:r._`require("ajv/dist/compile/equal")`});let f;if(u||o)f=t.let("valid"),e.block$data(f,(function(){t.assign(f,!1),t.forOf("v",s,(e=>t.if(r._`${c}(${n}, ${e})`,(()=>t.assign(f,!0).break()))))}));else{if(!Array.isArray(i))throw new Error("ajv implementation error");const e=t.const("vSchema",s);f=r.or(...i.map(((t,a)=>function(e,t){const a=i[t];return a&&"object"==typeof a?r._`${c}(${n}, ${e}[${t}])`:r._`${n} === ${a}`}(e,a))))}e.pass(f)}};t.default=o},2649:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(3983),a=n(430),o=n(3229),i=n(4336),s=n(498),l=n(3301),u=n(1687),c=n(2958),f=n(4693),d=n(966),p=[r.default,a.default,o.default,i.default,s.default,l.default,u.default,c.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},f.default,d.default];t.default=p},1687:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(3487),a={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:{message({keyword:e,schemaCode:t}){const n="maxItems"===e?"more":"fewer";return r.str`should NOT have ${n} than ${t} items`},params:({schemaCode:e})=>r._`{limit: ${e}}`},code(e){const{keyword:t,data:n,schemaCode:a}=e,o="maxItems"===t?r.operators.GT:r.operators.LT;e.fail$data(r._`${n}.length ${o} ${a}`)}};t.default=a},3229:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(3487),a=n(4776),o={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:{message({keyword:e,schemaCode:t}){const n="maxLength"===e?"more":"fewer";return r.str`should NOT have ${n} than ${t} characters`},params:({schemaCode:e})=>r._`{limit: ${e}}`},code(e){const{keyword:t,data:n,schemaCode:o,it:i}=e,s="maxLength"===t?r.operators.GT:r.operators.LT;let l;if(!1===i.opts.unicode)l=r._`${n}.length`;else{const t=e.gen.scopeValue("func",{ref:a.default,code:r._`require("ajv/dist/compile/ucs2length").default`});l=r._`${t}(${n})`}e.fail$data(r._`${l} ${s} ${o}`)}};t.default=o},3983:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(3487),a=r.operators,o={maximum:{okStr:"<=",ok:a.LTE,fail:a.GT},minimum:{okStr:">=",ok:a.GTE,fail:a.LT},exclusiveMaximum:{okStr:"<",ok:a.LT,fail:a.GTE},exclusiveMinimum:{okStr:">",ok:a.GT,fail:a.LTE}},i={message:({keyword:e,schemaCode:t})=>r.str`should be ${o[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>r._`{comparison: ${o[e].okStr}, limit: ${t}}`},s={keyword:Object.keys(o),type:"number",schemaType:"number",$data:!0,error:i,code(e){const{keyword:t,data:n,schemaCode:a}=e;e.fail$data(r._`${n} ${o[t].fail} ${a} || isNaN(${n})`)}};t.default=s},498:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(3487),a={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:{message({keyword:e,schemaCode:t}){const n="maxProperties"===e?"more":"fewer";return r.str`should NOT have ${n} than ${t} items`},params:({schemaCode:e})=>r._`{limit: ${e}}`},code(e){const{keyword:t,data:n,schemaCode:a}=e,o="maxProperties"===t?r.operators.GT:r.operators.LT;e.fail$data(r._`Object.keys(${n}).length ${o} ${a}`)}};t.default=a},430:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(3487),a={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:{message:({schemaCode:e})=>r.str`should be multiple of ${e}`,params:({schemaCode:e})=>r._`{multipleOf: ${e}}`},code(e){const{gen:t,data:n,schemaCode:a,it:o}=e,i=o.opts.multipleOfPrecision,s=t.let("res"),l=i?r._`Math.abs(Math.round(${s}) - ${s}) > 1e-${i}`:r._`${s} !== parseInt(${s})`;e.fail$data(r._`(${a} === 0 || (${s} = ${n}/${a}, ${l}))`)}};t.default=a},4336:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(412),a=n(3487),o={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:{message:({schemaCode:e})=>a.str`should match pattern "${e}"`,params:({schemaCode:e})=>a._`{pattern: ${e}}`},code(e){const{gen:t,data:n,$data:o,schema:i,schemaCode:s}=e,l=o?a._`(new RegExp(${s}, "u"))`:r.usePattern(t,i);e.fail$data(a._`!${l}.test(${n})`)}};t.default=o},3301:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(412),a=n(3487),o=n(4815),i={keyword:"required",type:"object",schemaType:"array",$data:!0,error:{message:({params:{missingProperty:e}})=>a.str`should have required property '${e}'`,params:({params:{missingProperty:e}})=>a._`{missingProperty: ${e}}`},code(e){const{gen:t,schema:n,schemaCode:i,data:s,$data:l,it:u}=e,{opts:c}=u;if(!l&&0===n.length)return;const f=n.length>=c.loopRequired;if(u.allErrors?function(){if(f||l)e.block$data(a.nil,d);else for(const t of n)r.checkReportMissingProp(e,t)}():function(){const o=t.let("missing");if(f||l){const n=t.let("valid",!0);e.block$data(n,(()=>function(n,o){e.setParams({missingProperty:n}),t.forOf(n,i,(()=>{t.assign(o,r.propertyInData(t,s,n,c.ownProperties)),t.if(a.not(o),(()=>{e.error(),t.break()}))}),a.nil)}(o,n))),e.ok(n)}else t.if(r.checkMissingProp(e,n,o)),r.reportMissingProp(e,o),t.else()}(),c.strictRequired){const t=e.parentSchema.properties,{definedProperties:r}=e.it;for(const e of n)if(void 0===(null==t?void 0:t[e])&&!r.has(e)){const t=`required property "${e}" is not defined at "${u.schemaEnv.baseId+u.errSchemaPath}" (strictRequired)`;o.checkStrictMode(u,t,u.opts.strictRequired)}}function d(){t.forOf("prop",i,(n=>{e.setParams({missingProperty:n}),t.if(r.noPropertyInData(t,s,n,c.ownProperties),(()=>e.error()))}))}}};t.default=i},2958:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(453),a=n(3487),o=n(6728),i={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:{message:({params:{i:e,j:t}})=>a.str`should NOT have duplicate items (items ## ${t} and ${e} are identical)`,params:({params:{i:e,j:t}})=>a._`{i: ${e}, j: ${t}}`},code(e){const{gen:t,data:n,$data:i,schema:s,parentSchema:l,schemaCode:u,it:c}=e;if(!i&&!s)return;const f=t.let("valid"),d=l.items?r.getSchemaTypes(l.items):[];function p(o,i){const s=t.name("item"),l=r.checkDataTypes(d,s,c.opts.strict,r.DataType.Wrong),u=t.const("indices",a._`{}`);t.for(a._`;${o}--;`,(()=>{t.let(s,a._`${n}[${o}]`),t.if(l,a._`continue`),d.length>1&&t.if(a._`typeof ${s} == "string"`,a._`${s} += "_"`),t.if(a._`typeof ${u}[${s}] == "number"`,(()=>{t.assign(i,a._`${u}[${s}]`),e.error(),t.assign(f,!1).break()})).code(a._`${u}[${s}] = ${o}`)}))}function h(r,i){const s=e.gen.scopeValue("func",{ref:o,code:a._`require("ajv/dist/compile/equal")`}),l=t.name("outer");t.label(l).for(a._`;${r}--;`,(()=>t.for(a._`${i} = ${r}; ${i}--;`,(()=>t.if(a._`${s}(${n}[${r}], ${n}[${i}])`,(()=>{e.error(),t.assign(f,!1).break(l)}))))))}e.block$data(f,(function(){const r=t.let("i",a._`${n}.length`),o=t.let("j");e.setParams({i:r,j:o}),t.assign(f,!0),t.if(a._`${r} > 1`,(()=>(d.length>0&&!d.some((e=>"object"===e||"array"===e))?p:h)(r,o)))}),a._`${u} === false`),e.ok(f)}};t.default=i},6728:e=>{"use strict";e.exports=function e(t,n){if(t===n)return!0;if(t&&n&&"object"==typeof t&&"object"==typeof n){if(t.constructor!==n.constructor)return!1;var r,a,o;if(Array.isArray(t)){if((r=t.length)!=n.length)return!1;for(a=r;0!=a--;)if(!e(t[a],n[a]))return!1;return!0}if(t.constructor===RegExp)return t.source===n.source&&t.flags===n.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===n.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===n.toString();if((r=(o=Object.keys(t)).length)!==Object.keys(n).length)return!1;for(a=r;0!=a--;)if(!Object.prototype.hasOwnProperty.call(n,o[a]))return!1;for(a=r;0!=a--;){var i=o[a];if(!e(t[i],n[i]))return!1}return!0}return t!=t&&n!=n}},5287:(e,t,n)=>{(t=n(3645)(!1)).push([e.id,'@keyframes slideInUp {\n from {\n transform: translate3d(0, 100%, 0);\n display: inherit;\n visibility: visible;\n }\n\n to {\n transform: translate3d(0, 0, 0);\n }\n}\n\n@keyframes slideOutDown {\n from {\n transform: translate3d(0, 0, 0);\n }\n\n to {\n display: none;\n visibility: hidden;\n transform: translate3d(0, 100%, 0);\n }\n}\n\n.cleanslate .docked-widget {\n position: fixed !important;\n z-index: 100 !important;\n box-shadow: 0px 8px 12px 0px rgba(0,0,0,0.12) !important;\n}\n\n@media (min-width: 768px) {\n .cleanslate .docked-widget {\n right: 164px !important;\n bottom: 36px !important;\n }\n}\n\n.cleanslate .dock {\n cursor: pointer !important;\n display: flex !important;\n align-items: center !important;\n justify-content: center !important;\n padding: 10px !important;\n background: white !important;\n}\n\n.cleanslate .icon-yes {\n width: 32px !important;\n height: 32px !important;\n border: none !important;\n background-color: transparent !important;\n}\n\n.cleanslate .icon-no {\n transform: rotate(180deg) !important;\n width: 32px !important;\n height: 32px !important;\n border: none !important;\n background-color: transparent !important;\n}\n\n.cleanslate .form-group {\n margin-bottom: 0 !important;\n}\n\n.cleanslate #playgroundTextArea {\n height: 350px !important;\n width: 40% !important;\n}\n\n.cleanslate #closeFeedback {\n color: #999da2 !important;\n border: none !important;\n font-size: 15px !important;\n background-color: transparent !important;\n position: absolute !important;\n right: 0px !important;\n top: 5px !important;\n}\n\n.cleanslate #closeFeedback:hover {\n cursor: pointer !important;\n}\n\n.cleanslate form {\n padding: 10px !important;\n}\n\n.cleanslate formdiv {\n margin: 10px 0 !important;\n}\n\n.cleanslate label {\n margin-right: 5px !important;\n}\n\n.cleanslate input[type="text" i] {\n padding: 1px 2px !important;\n margin: 10px 0 !important;\n}\n\n.cleanslate input[type="submit" i] {\n padding: 10px !important;\n margin: 10px !important;\n align-items: center !important;\n color: #fff !important;\n font-size: 15px !important;\n background-color: #0f72e5 !important;\n border: 1px solid #0f72e5 !important;\n border-radius: 4px !important;\n}\n\n.cleanslate .xrpl input[type="submit" i] {\n color: #171C21 !important;\n font-size: 15 !important;\n font-weight: bold !important;\n background-color: #ffffff !important;\n border: 2px solid #171C21 !important;\n border-radius: 0 !important;\n padding: 8px 16px !important;\n}\n\n.cleanslate .ripplex input[type="submit" i] {\n color: #ffffff !important;\n font-size: 15 !important;\n background-color: #0F72E5 !important;\n border: 1px solid #0F72E5 !important;\n border-radius: 4 !important;\n}\n\n.cleanslate .paystring input[type="submit" i] {\n color: #ffffff !important;\n font-size: 15 !important;\n background-color: #FF8100 !important;\n border: 1px solid #FF8100 !important;\n border-radius: 4 !important;\n}\n\n.cleanslate .widget {\n animation-duration: 0.2s !important;\n animation-fill-mode: forwards !important;\n}\n\n.cleanslate .widgetli {\n vertical-align: bottom !important;\n}\n\n.cleanslate .widget-entering {\n animation-name: slideInUp !important;\n}\n\n.cleanslate .widget-entered {\n display: inherit !important;\n visibility: visible !important;\n}\n\n.cleanslate .widget-exiting {\n animation-name: slideOutDown !important;\n}\n\n.cleanslate .widget-exited {\n display: none !important;\n visibility: hidden !important;\n}\n\n.cleanslate .widget-helpful {\n display: flex !important;\n align-items: stretch !important;\n height: 48px !important;\n font-size: 16px !important;\n align-items: center !important;\n justify-content: center !important;\n}\n\n.cleanslate .widget-form-wrapper {\n width: 100% !important;\n font-size: 16px !important;\n}\n\n.cleanslate .widget-form {\n display: flex !important;\n align-items: stretch !important;\n max-height: 240px !important;\n font-size: 16px !important;\n align-items: center !important;\n justify-content: center !important;\n flex-direction: column !important;\n}\n\n.cleanslate .widget-form-footer {\n display: flex !important;\n justify-content: flex-end !important;\n}\n\n.cleanslate .widget-form-footer .submit {\n font-style: normal !important;\n font-weight: normal !important;\n}\n\n.cleanslate .widget-form-footer .cancel {\n font-style: normal !important;\n font-weight: normal !important;\n line-height: 18px !important;\n}\n\n.cleanslate .widget-header {\n line-height: 30px !important;\n width: 100% !important;\n height: 100% !important;\n padding-left: 10px !important;\n display: flex !important;\n align-items: stretch !important;\n}\n\n.cleanslate .widget-header-title {\n display: flex !important;\n flex-grow: 1 !important;\n align-items: center !important;\n height: 40px !important;\n padding-left: 10px !important;\n padding-top: 5px !important;\n font-style: normal !important;\n line-height: 18px !important;\n}\n\n.cleanslate .widget-header-icon {\n cursor: pointer !important;\n display: flex !important;\n align-items: center !important;\n justify-content: center !important;\n padding: .75rem !important;\n margin: 6px !important;\n line-height: initial !important;\n}\n\n.cleanslate .widget-body {\n background: white !important;\n padding: 10px !important;\n height: 150px !important;\n}\n\n.cleanslate .widget-footer {\n background: radial-gradient(156.83% 78.7% at 61.88% 86.04%, rgba(23,28,33,0) 0%, #031B36 100%),radial-gradient(44.33% 47.76% at 5.74% 42.2%, rgba(20,153,249,0.8) 32.68%, rgba(15,114,229,0) 100%),radial-gradient(77.84% 153.29% at 83.57% 149.34%, #1499F9 0%, rgba(16,131,231,0.9) 41.91%, rgba(15,114,229,0) 93.71%),#063975 !important;\n line-height: 30px !important;\n padding-left: 10px !important;\n height: 150px !important;\n}\n\n.cleanslate .widget-thankyou {\n display: flex !important;\n justify-content: center !important;\n font-family: Roboto !important;\n font-style: normal !important;\n font-weight: bold !important;\n font-size: 18px !important;\n line-height: 21px !important;\n text-align: center !important;\n color: #FFFFFF !important;\n padding: 20px !important;\n}\n\n.cleanslate .widget-thankyoufooter {\n display: flex !important;\n justify-content: center !important;\n}\n\n.cleanslate .widget textarea {\n resize: none !important;\n border: "1px solid #171C21" !important;\n}',""]),e.exports=t},3645:e=>{"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n=function(e,t){var n,r,a,o=e[1]||"",i=e[3];if(!i)return o;if(t&&"function"==typeof btoa){var s=(n=i,r=btoa(unescape(encodeURIComponent(JSON.stringify(n)))),a="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(r),"/*# ".concat(a," */")),l=i.sources.map((function(e){return"/*# sourceURL=".concat(i.sourceRoot||"").concat(e," */")}));return[o].concat(l).concat([s]).join("\n")}return[o].join("\n")}(t,e);return t[2]?"@media ".concat(t[2]," {").concat(n,"}"):n})).join("")},t.i=function(e,n,r){"string"==typeof e&&(e=[[null,e,""]]);var a={};if(r)for(var o=0;o<this.length;o++){var i=this[o][0];null!=i&&(a[i]=!0)}for(var s=0;s<e.length;s++){var l=[].concat(e[s]);r&&a[l[0]]||(n&&(l[2]?l[2]="".concat(n," and ").concat(l[2]):l[2]=n),t.push(l))}},t}},6905:function(e){e.exports=function(e,t,n,r,a){for(t=t.split?t.split("."):t,r=0;r<t.length;r++)e=e?e[t[r]]:a;return e===a?n:e}},1143:e=>{"use strict";e.exports=function(e,t,n,r,a,o,i,s){if(!e){var l;if(void 0===t)l=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var u=[n,r,a,o,i,s],c=0;(l=new Error(t.replace(/%s/g,(function(){return u[c++]})))).name="Invariant Violation"}throw l.framesToPop=1,l}}},9461:e=>{"use strict";var t=e.exports=function(e,t,r){"function"==typeof t&&(r=t,t={}),n(t,"function"==typeof(r=t.cb||r)?r:r.pre||function(){},r.post||function(){},e,"",e)};function n(e,r,a,o,i,s,l,u,c,f){if(o&&"object"==typeof o&&!Array.isArray(o)){for(var d in r(o,i,s,l,u,c,f),o){var p=o[d];if(Array.isArray(p)){if(d in t.arrayKeywords)for(var h=0;h<p.length;h++)n(e,r,a,p[h],i+"/"+d+"/"+h,s,i,d,o,h)}else if(d in t.propsKeywords){if(p&&"object"==typeof p)for(var m in p)n(e,r,a,p[m],i+"/"+d+"/"+m.replace(/~/g,"~0").replace(/\//g,"~1"),s,i,d,o,m)}else(d in t.keywords||e.allKeys&&!(d in t.skipKeywords))&&n(e,r,a,p,i+"/"+d,s,i,d,o)}a(o,i,s,l,u,c,f)}}t.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0},t.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0},t.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0},t.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0}},8552:(e,t,n)=>{var r=n(852)(n(5639),"DataView");e.exports=r},1989:(e,t,n)=>{var r=n(1789),a=n(401),o=n(7667),i=n(1327),s=n(1866);function l(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}l.prototype.clear=r,l.prototype.delete=a,l.prototype.get=o,l.prototype.has=i,l.prototype.set=s,e.exports=l},8407:(e,t,n)=>{var r=n(7040),a=n(4125),o=n(2117),i=n(7518),s=n(4705);function l(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}l.prototype.clear=r,l.prototype.delete=a,l.prototype.get=o,l.prototype.has=i,l.prototype.set=s,e.exports=l},7071:(e,t,n)=>{var r=n(852)(n(5639),"Map");e.exports=r},3369:(e,t,n)=>{var r=n(4785),a=n(1285),o=n(6e3),i=n(9916),s=n(5265);function l(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}l.prototype.clear=r,l.prototype.delete=a,l.prototype.get=o,l.prototype.has=i,l.prototype.set=s,e.exports=l},3818:(e,t,n)=>{var r=n(852)(n(5639),"Promise");e.exports=r},8525:(e,t,n)=>{var r=n(852)(n(5639),"Set");e.exports=r},8668:(e,t,n)=>{var r=n(3369),a=n(619),o=n(2385);function i(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new r;++t<n;)this.add(e[t])}i.prototype.add=i.prototype.push=a,i.prototype.has=o,e.exports=i},6384:(e,t,n)=>{var r=n(8407),a=n(7465),o=n(3779),i=n(7599),s=n(4758),l=n(4309);function u(e){var t=this.__data__=new r(e);this.size=t.size}u.prototype.clear=a,u.prototype.delete=o,u.prototype.get=i,u.prototype.has=s,u.prototype.set=l,e.exports=u},2705:(e,t,n)=>{var r=n(5639).Symbol;e.exports=r},1149:(e,t,n)=>{var r=n(5639).Uint8Array;e.exports=r},577:(e,t,n)=>{var r=n(852)(n(5639),"WeakMap");e.exports=r},6874:e=>{e.exports=function(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}},7412:e=>{e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length;++n<r&&!1!==t(e[n],n,e););return e}},4963:e=>{e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length,a=0,o=[];++n<r;){var i=e[n];t(i,n,e)&&(o[a++]=i)}return o}},7443:(e,t,n)=>{var r=n(2118);e.exports=function(e,t){return!(null==e||!e.length)&&r(e,t,0)>-1}},1196:e=>{e.exports=function(e,t,n){for(var r=-1,a=null==e?0:e.length;++r<a;)if(n(t,e[r]))return!0;return!1}},4636:(e,t,n)=>{var r=n(2545),a=n(5694),o=n(1469),i=n(4144),s=n(5776),l=n(6719),u=Object.prototype.hasOwnProperty;e.exports=function(e,t){var n=o(e),c=!n&&a(e),f=!n&&!c&&i(e),d=!n&&!c&&!f&&l(e),p=n||c||f||d,h=p?r(e.length,String):[],m=h.length;for(var g in e)!t&&!u.call(e,g)||p&&("length"==g||f&&("offset"==g||"parent"==g)||d&&("buffer"==g||"byteLength"==g||"byteOffset"==g)||s(g,m))||h.push(g);return h}},9932:e=>{e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length,a=Array(r);++n<r;)a[n]=t(e[n],n,e);return a}},2488:e=>{e.exports=function(e,t){for(var n=-1,r=t.length,a=e.length;++n<r;)e[a+n]=t[n];return e}},2663:e=>{e.exports=function(e,t,n,r){var a=-1,o=null==e?0:e.length;for(r&&o&&(n=e[++a]);++a<o;)n=t(n,e[a],a,e);return n}},2908:e=>{e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}},4286:e=>{e.exports=function(e){return e.split("")}},9029:e=>{var t=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;e.exports=function(e){return e.match(t)||[]}},4865:(e,t,n)=>{var r=n(9465),a=n(7813),o=Object.prototype.hasOwnProperty;e.exports=function(e,t,n){var i=e[t];o.call(e,t)&&a(i,n)&&(void 0!==n||t in e)||r(e,t,n)}},8470:(e,t,n)=>{var r=n(7813);e.exports=function(e,t){for(var n=e.length;n--;)if(r(e[n][0],t))return n;return-1}},4037:(e,t,n)=>{var r=n(8363),a=n(3674);e.exports=function(e,t){return e&&r(t,a(t),e)}},3886:(e,t,n)=>{var r=n(8363),a=n(1704);e.exports=function(e,t){return e&&r(t,a(t),e)}},9465:(e,t,n)=>{var r=n(8777);e.exports=function(e,t,n){"__proto__"==t&&r?r(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}},5990:(e,t,n)=>{var r=n(6384),a=n(7412),o=n(4865),i=n(4037),s=n(3886),l=n(4626),u=n(278),c=n(8805),f=n(1911),d=n(8234),p=n(6904),h=n(4160),m=n(3824),g=n(9148),v=n(8517),y=n(1469),b=n(4144),w=n(6688),_=n(3218),x=n(2928),E=n(3674),k=n(1704),S="[object Arguments]",$="[object Function]",P="[object Object]",O={};O[S]=O["[object Array]"]=O["[object ArrayBuffer]"]=O["[object DataView]"]=O["[object Boolean]"]=O["[object Date]"]=O["[object Float32Array]"]=O["[object Float64Array]"]=O["[object Int8Array]"]=O["[object Int16Array]"]=O["[object Int32Array]"]=O["[object Map]"]=O["[object Number]"]=O[P]=O["[object RegExp]"]=O["[object Set]"]=O["[object String]"]=O["[object Symbol]"]=O["[object Uint8Array]"]=O["[object Uint8ClampedArray]"]=O["[object Uint16Array]"]=O["[object Uint32Array]"]=!0,O["[object Error]"]=O[$]=O["[object WeakMap]"]=!1,e.exports=function e(t,n,C,j,N,I){var T,A=1&n,R=2&n,D=4&n;if(C&&(T=N?C(t,j,N,I):C(t)),void 0!==T)return T;if(!_(t))return t;var M=y(t);if(M){if(T=m(t),!A)return u(t,T)}else{var F=h(t),z=F==$||"[object GeneratorFunction]"==F;if(b(t))return l(t,A);if(F==P||F==S||z&&!N){if(T=R||z?{}:v(t),!A)return R?f(t,s(T,t)):c(t,i(T,t))}else{if(!O[F])return N?t:{};T=g(t,F,A)}}I||(I=new r);var L=I.get(t);if(L)return L;I.set(t,T),x(t)?t.forEach((function(r){T.add(e(r,n,C,r,t,I))})):w(t)&&t.forEach((function(r,a){T.set(a,e(r,n,C,a,t,I))}));var V=M?void 0:(D?R?p:d:R?k:E)(t);return a(V||t,(function(r,a){V&&(r=t[a=r]),o(T,a,e(r,n,C,a,t,I))})),T}},3118:(e,t,n)=>{var r=n(3218),a=Object.create,o=function(){function e(){}return function(t){if(!r(t))return{};if(a)return a(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}();e.exports=o},731:(e,t,n)=>{var r=n(8668),a=n(7443),o=n(1196),i=n(9932),s=n(1717),l=n(4757);e.exports=function(e,t,n,u){var c=-1,f=a,d=!0,p=e.length,h=[],m=t.length;if(!p)return h;n&&(t=i(t,s(n))),u?(f=o,d=!1):t.length>=200&&(f=l,d=!1,t=new r(t));e:for(;++c<p;){var g=e[c],v=null==n?g:n(g);if(g=u||0!==g?g:0,d&&v==v){for(var y=m;y--;)if(t[y]===v)continue e;h.push(g)}else f(t,v,u)||h.push(g)}return h}},1848:e=>{e.exports=function(e,t,n,r){for(var a=e.length,o=n+(r?1:-1);r?o--:++o<a;)if(t(e[o],o,e))return o;return-1}},1078:(e,t,n)=>{var r=n(2488),a=n(7285);e.exports=function e(t,n,o,i,s){var l=-1,u=t.length;for(o||(o=a),s||(s=[]);++l<u;){var c=t[l];n>0&&o(c)?n>1?e(c,n-1,o,i,s):r(s,c):i||(s[s.length]=c)}return s}},8483:(e,t,n)=>{var r=n(5063)();e.exports=r},7816:(e,t,n)=>{var r=n(8483),a=n(3674);e.exports=function(e,t){return e&&r(e,t,a)}},7786:(e,t,n)=>{var r=n(1811),a=n(327);e.exports=function(e,t){for(var n=0,o=(t=r(t,e)).length;null!=e&&n<o;)e=e[a(t[n++])];return n&&n==o?e:void 0}},8866:(e,t,n)=>{var r=n(2488),a=n(1469);e.exports=function(e,t,n){var o=t(e);return a(e)?o:r(o,n(e))}},4239:(e,t,n)=>{var r=n(2705),a=n(9607),o=n(2333),i=r?r.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":i&&i in Object(e)?a(e):o(e)}},13:e=>{e.exports=function(e,t){return null!=e&&t in Object(e)}},2118:(e,t,n)=>{var r=n(1848),a=n(2722),o=n(2351);e.exports=function(e,t,n){return t==t?o(e,t,n):r(e,a,n)}},9454:(e,t,n)=>{var r=n(4239),a=n(7005);e.exports=function(e){return a(e)&&"[object Arguments]"==r(e)}},939:(e,t,n)=>{var r=n(2492),a=n(7005);e.exports=function e(t,n,o,i,s){return t===n||(null==t||null==n||!a(t)&&!a(n)?t!=t&&n!=n:r(t,n,o,i,e,s))}},2492:(e,t,n)=>{var r=n(6384),a=n(7114),o=n(8351),i=n(6096),s=n(4160),l=n(1469),u=n(4144),c=n(6719),f="[object Arguments]",d="[object Array]",p="[object Object]",h=Object.prototype.hasOwnProperty;e.exports=function(e,t,n,m,g,v){var y=l(e),b=l(t),w=y?d:s(e),_=b?d:s(t),x=(w=w==f?p:w)==p,E=(_=_==f?p:_)==p,k=w==_;if(k&&u(e)){if(!u(t))return!1;y=!0,x=!1}if(k&&!x)return v||(v=new r),y||c(e)?a(e,t,n,m,g,v):o(e,t,w,n,m,g,v);if(!(1&n)){var S=x&&h.call(e,"__wrapped__"),$=E&&h.call(t,"__wrapped__");if(S||$){var P=S?e.value():e,O=$?t.value():t;return v||(v=new r),g(P,O,n,m,v)}}return!!k&&(v||(v=new r),i(e,t,n,m,g,v))}},5588:(e,t,n)=>{var r=n(4160),a=n(7005);e.exports=function(e){return a(e)&&"[object Map]"==r(e)}},7365:(e,t,n)=>{var r=n(6384),a=n(939);e.exports=function(e,t,n,o){var i=n.length,s=i,l=!o;if(null==e)return!s;for(e=Object(e);i--;){var u=n[i];if(l&&u[2]?u[1]!==e[u[0]]:!(u[0]in e))return!1}for(;++i<s;){var c=(u=n[i])[0],f=e[c],d=u[1];if(l&&u[2]){if(void 0===f&&!(c in e))return!1}else{var p=new r;if(o)var h=o(f,d,c,e,t,p);if(!(void 0===h?a(d,f,3,o,p):h))return!1}}return!0}},2722:e=>{e.exports=function(e){return e!=e}},8458:(e,t,n)=>{var r=n(3560),a=n(5346),o=n(3218),i=n(346),s=/^\[object .+?Constructor\]$/,l=Function.prototype,u=Object.prototype,c=l.toString,f=u.hasOwnProperty,d=RegExp("^"+c.call(f).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=function(e){return!(!o(e)||a(e))&&(r(e)?d:s).test(i(e))}},9221:(e,t,n)=>{var r=n(4160),a=n(7005);e.exports=function(e){return a(e)&&"[object Set]"==r(e)}},8749:(e,t,n)=>{var r=n(4239),a=n(1780),o=n(7005),i={};i["[object Float32Array]"]=i["[object Float64Array]"]=i["[object Int8Array]"]=i["[object Int16Array]"]=i["[object Int32Array]"]=i["[object Uint8Array]"]=i["[object Uint8ClampedArray]"]=i["[object Uint16Array]"]=i["[object Uint32Array]"]=!0,i["[object Arguments]"]=i["[object Array]"]=i["[object ArrayBuffer]"]=i["[object Boolean]"]=i["[object DataView]"]=i["[object Date]"]=i["[object Error]"]=i["[object Function]"]=i["[object Map]"]=i["[object Number]"]=i["[object Object]"]=i["[object RegExp]"]=i["[object Set]"]=i["[object String]"]=i["[object WeakMap]"]=!1,e.exports=function(e){return o(e)&&a(e.length)&&!!i[r(e)]}},7206:(e,t,n)=>{var r=n(1573),a=n(6432),o=n(6557),i=n(1469),s=n(9601);e.exports=function(e){return"function"==typeof e?e:null==e?o:"object"==typeof e?i(e)?a(e[0],e[1]):r(e):s(e)}},280:(e,t,n)=>{var r=n(5726),a=n(6916),o=Object.prototype.hasOwnProperty;e.exports=function(e){if(!r(e))return a(e);var t=[];for(var n in Object(e))o.call(e,n)&&"constructor"!=n&&t.push(n);return t}},313:(e,t,n)=>{var r=n(3218),a=n(5726),o=n(3498),i=Object.prototype.hasOwnProperty;e.exports=function(e){if(!r(e))return o(e);var t=a(e),n=[];for(var s in e)("constructor"!=s||!t&&i.call(e,s))&&n.push(s);return n}},1573:(e,t,n)=>{var r=n(7365),a=n(1499),o=n(2634);e.exports=function(e){var t=a(e);return 1==t.length&&t[0][2]?o(t[0][0],t[0][1]):function(n){return n===e||r(n,e,t)}}},6432:(e,t,n)=>{var r=n(939),a=n(7361),o=n(9095),i=n(5403),s=n(9162),l=n(2634),u=n(327);e.exports=function(e,t){return i(e)&&s(t)?l(u(e),t):function(n){var i=a(n,e);return void 0===i&&i===t?o(n,e):r(t,i,3)}}},371:e=>{e.exports=function(e){return function(t){return null==t?void 0:t[e]}}},9152:(e,t,n)=>{var r=n(7786);e.exports=function(e){return function(t){return r(t,e)}}},8674:e=>{e.exports=function(e){return function(t){return null==e?void 0:e[t]}}},5976:(e,t,n)=>{var r=n(6557),a=n(5357),o=n(61);e.exports=function(e,t){return o(a(e,t,r),e+"")}},611:(e,t,n)=>{var r=n(4865),a=n(1811),o=n(5776),i=n(3218),s=n(327);e.exports=function(e,t,n,l){if(!i(e))return e;for(var u=-1,c=(t=a(t,e)).length,f=c-1,d=e;null!=d&&++u<c;){var p=s(t[u]),h=n;if("__proto__"===p||"constructor"===p||"prototype"===p)return e;if(u!=f){var m=d[p];void 0===(h=l?l(m,p,d):void 0)&&(h=i(m)?m:o(t[u+1])?[]:{})}r(d,p,h),d=d[p]}return e}},6560:(e,t,n)=>{var r=n(5703),a=n(8777),o=n(6557),i=a?function(e,t){return a(e,"toString",{configurable:!0,enumerable:!1,value:r(t),writable:!0})}:o;e.exports=i},4259:e=>{e.exports=function(e,t,n){var r=-1,a=e.length;t<0&&(t=-t>a?0:a+t),(n=n>a?a:n)<0&&(n+=a),a=t>n?0:n-t>>>0,t>>>=0;for(var o=Array(a);++r<a;)o[r]=e[r+t];return o}},2545:e=>{e.exports=function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}},531:(e,t,n)=>{var r=n(2705),a=n(9932),o=n(1469),i=n(3448),s=r?r.prototype:void 0,l=s?s.toString:void 0;e.exports=function e(t){if("string"==typeof t)return t;if(o(t))return a(t,e)+"";if(i(t))return l?l.call(t):"";var n=t+"";return"0"==n&&1/t==-1/0?"-0":n}},1717:e=>{e.exports=function(e){return function(t){return e(t)}}},5652:(e,t,n)=>{var r=n(8668),a=n(7443),o=n(1196),i=n(4757),s=n(3593),l=n(1814);e.exports=function(e,t,n){var u=-1,c=a,f=e.length,d=!0,p=[],h=p;if(n)d=!1,c=o;else if(f>=200){var m=t?null:s(e);if(m)return l(m);d=!1,c=i,h=new r}else h=t?[]:p;e:for(;++u<f;){var g=e[u],v=t?t(g):g;if(g=n||0!==g?g:0,d&&v==v){for(var y=h.length;y--;)if(h[y]===v)continue e;t&&h.push(v),p.push(g)}else c(h,v,n)||(h!==p&&h.push(v),p.push(g))}return p}},7406:(e,t,n)=>{var r=n(1811),a=n(928),o=n(292),i=n(327);e.exports=function(e,t){return t=r(t,e),null==(e=o(e,t))||delete e[i(a(t))]}},6128:(e,t,n)=>{var r=n(731),a=n(1078),o=n(5652);e.exports=function(e,t,n){var i=e.length;if(i<2)return i?o(e[0]):[];for(var s=-1,l=Array(i);++s<i;)for(var u=e[s],c=-1;++c<i;)c!=s&&(l[s]=r(l[s]||u,e[c],t,n));return o(a(l,1),t,n)}},4757:e=>{e.exports=function(e,t){return e.has(t)}},1811:(e,t,n)=>{var r=n(1469),a=n(5403),o=n(5514),i=n(9833);e.exports=function(e,t){return r(e)?e:a(e,t)?[e]:o(i(e))}},180:(e,t,n)=>{var r=n(4259);e.exports=function(e,t,n){var a=e.length;return n=void 0===n?a:n,!t&&n>=a?e:r(e,t,n)}},4318:(e,t,n)=>{var r=n(1149);e.exports=function(e){var t=new e.constructor(e.byteLength);return new r(t).set(new r(e)),t}},4626:(e,t,n)=>{e=n.nmd(e);var r=n(5639),a=t&&!t.nodeType&&t,o=a&&e&&!e.nodeType&&e,i=o&&o.exports===a?r.Buffer:void 0,s=i?i.allocUnsafe:void 0;e.exports=function(e,t){if(t)return e.slice();var n=e.length,r=s?s(n):new e.constructor(n);return e.copy(r),r}},7157:(e,t,n)=>{var r=n(4318);e.exports=function(e,t){var n=t?r(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}},3147:e=>{var t=/\w*$/;e.exports=function(e){var n=new e.constructor(e.source,t.exec(e));return n.lastIndex=e.lastIndex,n}},419:(e,t,n)=>{var r=n(2705),a=r?r.prototype:void 0,o=a?a.valueOf:void 0;e.exports=function(e){return o?Object(o.call(e)):{}}},7133:(e,t,n)=>{var r=n(4318);e.exports=function(e,t){var n=t?r(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}},278:e=>{e.exports=function(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n<r;)t[n]=e[n];return t}},8363:(e,t,n)=>{var r=n(4865),a=n(9465);e.exports=function(e,t,n,o){var i=!n;n||(n={});for(var s=-1,l=t.length;++s<l;){var u=t[s],c=o?o(n[u],e[u],u,n,e):void 0;void 0===c&&(c=e[u]),i?a(n,u,c):r(n,u,c)}return n}},8805:(e,t,n)=>{var r=n(8363),a=n(9551);e.exports=function(e,t){return r(e,a(e),t)}},1911:(e,t,n)=>{var r=n(8363),a=n(1442);e.exports=function(e,t){return r(e,a(e),t)}},4429:(e,t,n)=>{var r=n(5639)["__core-js_shared__"];e.exports=r},5063:e=>{e.exports=function(e){return function(t,n,r){for(var a=-1,o=Object(t),i=r(t),s=i.length;s--;){var l=i[e?s:++a];if(!1===n(o[l],l,o))break}return t}}},8882:(e,t,n)=>{var r=n(180),a=n(2689),o=n(3140),i=n(9833);e.exports=function(e){return function(t){t=i(t);var n=a(t)?o(t):void 0,s=n?n[0]:t.charAt(0),l=n?r(n,1).join(""):t.slice(1);return s[e]()+l}}},5393:(e,t,n)=>{var r=n(2663),a=n(3816),o=n(8748),i=RegExp("['’]","g");e.exports=function(e){return function(t){return r(o(a(t).replace(i,"")),e,"")}}},3593:(e,t,n)=>{var r=n(8525),a=n(308),o=n(1814),i=r&&1/o(new r([,-0]))[1]==1/0?function(e){return new r(e)}:a;e.exports=i},696:(e,t,n)=>{var r=n(8630);e.exports=function(e){return r(e)?void 0:e}},9389:(e,t,n)=>{var r=n(8674)({À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"});e.exports=r},8777:(e,t,n)=>{var r=n(852),a=function(){try{var e=r(Object,"defineProperty");return e({},"",{}),e}catch(e){}}();e.exports=a},7114:(e,t,n)=>{var r=n(8668),a=n(2908),o=n(4757);e.exports=function(e,t,n,i,s,l){var u=1&n,c=e.length,f=t.length;if(c!=f&&!(u&&f>c))return!1;var d=l.get(e),p=l.get(t);if(d&&p)return d==t&&p==e;var h=-1,m=!0,g=2&n?new r:void 0;for(l.set(e,t),l.set(t,e);++h<c;){var v=e[h],y=t[h];if(i)var b=u?i(y,v,h,t,e,l):i(v,y,h,e,t,l);if(void 0!==b){if(b)continue;m=!1;break}if(g){if(!a(t,(function(e,t){if(!o(g,t)&&(v===e||s(v,e,n,i,l)))return g.push(t)}))){m=!1;break}}else if(v!==y&&!s(v,y,n,i,l)){m=!1;break}}return l.delete(e),l.delete(t),m}},8351:(e,t,n)=>{var r=n(2705),a=n(1149),o=n(7813),i=n(7114),s=n(8776),l=n(1814),u=r?r.prototype:void 0,c=u?u.valueOf:void 0;e.exports=function(e,t,n,r,u,f,d){switch(n){case"[object DataView]":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case"[object ArrayBuffer]":return!(e.byteLength!=t.byteLength||!f(new a(e),new a(t)));case"[object Boolean]":case"[object Date]":case"[object Number]":return o(+e,+t);case"[object Error]":return e.name==t.name&&e.message==t.message;case"[object RegExp]":case"[object String]":return e==t+"";case"[object Map]":var p=s;case"[object Set]":var h=1&r;if(p||(p=l),e.size!=t.size&&!h)return!1;var m=d.get(e);if(m)return m==t;r|=2,d.set(e,t);var g=i(p(e),p(t),r,u,f,d);return d.delete(e),g;case"[object Symbol]":if(c)return c.call(e)==c.call(t)}return!1}},6096:(e,t,n)=>{var r=n(8234),a=Object.prototype.hasOwnProperty;e.exports=function(e,t,n,o,i,s){var l=1&n,u=r(e),c=u.length;if(c!=r(t).length&&!l)return!1;for(var f=c;f--;){var d=u[f];if(!(l?d in t:a.call(t,d)))return!1}var p=s.get(e),h=s.get(t);if(p&&h)return p==t&&h==e;var m=!0;s.set(e,t),s.set(t,e);for(var g=l;++f<c;){var v=e[d=u[f]],y=t[d];if(o)var b=l?o(y,v,d,t,e,s):o(v,y,d,e,t,s);if(!(void 0===b?v===y||i(v,y,n,o,s):b)){m=!1;break}g||(g="constructor"==d)}if(m&&!g){var w=e.constructor,_=t.constructor;w==_||!("constructor"in e)||!("constructor"in t)||"function"==typeof w&&w instanceof w&&"function"==typeof _&&_ instanceof _||(m=!1)}return s.delete(e),s.delete(t),m}},9021:(e,t,n)=>{var r=n(5564),a=n(5357),o=n(61);e.exports=function(e){return o(a(e,void 0,r),e+"")}},1957:(e,t,n)=>{var r="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g;e.exports=r},8234:(e,t,n)=>{var r=n(8866),a=n(9551),o=n(3674);e.exports=function(e){return r(e,o,a)}},6904:(e,t,n)=>{var r=n(8866),a=n(1442),o=n(1704);e.exports=function(e){return r(e,o,a)}},5050:(e,t,n)=>{var r=n(7019);e.exports=function(e,t){var n=e.__data__;return r(t)?n["string"==typeof t?"string":"hash"]:n.map}},1499:(e,t,n)=>{var r=n(9162),a=n(3674);e.exports=function(e){for(var t=a(e),n=t.length;n--;){var o=t[n],i=e[o];t[n]=[o,i,r(i)]}return t}},852:(e,t,n)=>{var r=n(8458),a=n(7801);e.exports=function(e,t){var n=a(e,t);return r(n)?n:void 0}},5924:(e,t,n)=>{var r=n(5569)(Object.getPrototypeOf,Object);e.exports=r},9607:(e,t,n)=>{var r=n(2705),a=Object.prototype,o=a.hasOwnProperty,i=a.toString,s=r?r.toStringTag:void 0;e.exports=function(e){var t=o.call(e,s),n=e[s];try{e[s]=void 0;var r=!0}catch(e){}var a=i.call(e);return r&&(t?e[s]=n:delete e[s]),a}},9551:(e,t,n)=>{var r=n(4963),a=n(479),o=Object.prototype.propertyIsEnumerable,i=Object.getOwnPropertySymbols,s=i?function(e){return null==e?[]:(e=Object(e),r(i(e),(function(t){return o.call(e,t)})))}:a;e.exports=s},1442:(e,t,n)=>{var r=n(2488),a=n(5924),o=n(9551),i=n(479),s=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)r(t,o(e)),e=a(e);return t}:i;e.exports=s},4160:(e,t,n)=>{var r=n(8552),a=n(7071),o=n(3818),i=n(8525),s=n(577),l=n(4239),u=n(346),c="[object Map]",f="[object Promise]",d="[object Set]",p="[object WeakMap]",h="[object DataView]",m=u(r),g=u(a),v=u(o),y=u(i),b=u(s),w=l;(r&&w(new r(new ArrayBuffer(1)))!=h||a&&w(new a)!=c||o&&w(o.resolve())!=f||i&&w(new i)!=d||s&&w(new s)!=p)&&(w=function(e){var t=l(e),n="[object Object]"==t?e.constructor:void 0,r=n?u(n):"";if(r)switch(r){case m:return h;case g:return c;case v:return f;case y:return d;case b:return p}return t}),e.exports=w},7801:e=>{e.exports=function(e,t){return null==e?void 0:e[t]}},222:(e,t,n)=>{var r=n(1811),a=n(5694),o=n(1469),i=n(5776),s=n(1780),l=n(327);e.exports=function(e,t,n){for(var u=-1,c=(t=r(t,e)).length,f=!1;++u<c;){var d=l(t[u]);if(!(f=null!=e&&n(e,d)))break;e=e[d]}return f||++u!=c?f:!!(c=null==e?0:e.length)&&s(c)&&i(d,c)&&(o(e)||a(e))}},2689:e=>{var t=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");e.exports=function(e){return t.test(e)}},3157:e=>{var t=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;e.exports=function(e){return t.test(e)}},1789:(e,t,n)=>{var r=n(4536);e.exports=function(){this.__data__=r?r(null):{},this.size=0}},401:e=>{e.exports=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}},7667:(e,t,n)=>{var r=n(4536),a=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;if(r){var n=t[e];return"__lodash_hash_undefined__"===n?void 0:n}return a.call(t,e)?t[e]:void 0}},1327:(e,t,n)=>{var r=n(4536),a=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;return r?void 0!==t[e]:a.call(t,e)}},1866:(e,t,n)=>{var r=n(4536);e.exports=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=r&&void 0===t?"__lodash_hash_undefined__":t,this}},3824:e=>{var t=Object.prototype.hasOwnProperty;e.exports=function(e){var n=e.length,r=new e.constructor(n);return n&&"string"==typeof e[0]&&t.call(e,"index")&&(r.index=e.index,r.input=e.input),r}},9148:(e,t,n)=>{var r=n(4318),a=n(7157),o=n(3147),i=n(419),s=n(7133);e.exports=function(e,t,n){var l=e.constructor;switch(t){case"[object ArrayBuffer]":return r(e);case"[object Boolean]":case"[object Date]":return new l(+e);case"[object DataView]":return a(e,n);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return s(e,n);case"[object Map]":case"[object Set]":return new l;case"[object Number]":case"[object String]":return new l(e);case"[object RegExp]":return o(e);case"[object Symbol]":return i(e)}}},8517:(e,t,n)=>{var r=n(3118),a=n(5924),o=n(5726);e.exports=function(e){return"function"!=typeof e.constructor||o(e)?{}:r(a(e))}},7285:(e,t,n)=>{var r=n(2705),a=n(5694),o=n(1469),i=r?r.isConcatSpreadable:void 0;e.exports=function(e){return o(e)||a(e)||!!(i&&e&&e[i])}},5776:e=>{var t=/^(?:0|[1-9]\d*)$/;e.exports=function(e,n){var r=typeof e;return!!(n=null==n?9007199254740991:n)&&("number"==r||"symbol"!=r&&t.test(e))&&e>-1&&e%1==0&&e<n}},5403:(e,t,n)=>{var r=n(1469),a=n(3448),o=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,i=/^\w*$/;e.exports=function(e,t){if(r(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!a(e))||i.test(e)||!o.test(e)||null!=t&&e in Object(t)}},7019:e=>{e.exports=function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}},5346:(e,t,n)=>{var r,a=n(4429),o=(r=/[^.]+$/.exec(a&&a.keys&&a.keys.IE_PROTO||""))?"Symbol(src)_1."+r:"";e.exports=function(e){return!!o&&o in e}},5726:e=>{var t=Object.prototype;e.exports=function(e){var n=e&&e.constructor;return e===("function"==typeof n&&n.prototype||t)}},9162:(e,t,n)=>{var r=n(3218);e.exports=function(e){return e==e&&!r(e)}},7040:e=>{e.exports=function(){this.__data__=[],this.size=0}},4125:(e,t,n)=>{var r=n(8470),a=Array.prototype.splice;e.exports=function(e){var t=this.__data__,n=r(t,e);return!(n<0||(n==t.length-1?t.pop():a.call(t,n,1),--this.size,0))}},2117:(e,t,n)=>{var r=n(8470);e.exports=function(e){var t=this.__data__,n=r(t,e);return n<0?void 0:t[n][1]}},7518:(e,t,n)=>{var r=n(8470);e.exports=function(e){return r(this.__data__,e)>-1}},4705:(e,t,n)=>{var r=n(8470);e.exports=function(e,t){var n=this.__data__,a=r(n,e);return a<0?(++this.size,n.push([e,t])):n[a][1]=t,this}},4785:(e,t,n)=>{var r=n(1989),a=n(8407),o=n(7071);e.exports=function(){this.size=0,this.__data__={hash:new r,map:new(o||a),string:new r}}},1285:(e,t,n)=>{var r=n(5050);e.exports=function(e){var t=r(this,e).delete(e);return this.size-=t?1:0,t}},6e3:(e,t,n)=>{var r=n(5050);e.exports=function(e){return r(this,e).get(e)}},9916:(e,t,n)=>{var r=n(5050);e.exports=function(e){return r(this,e).has(e)}},5265:(e,t,n)=>{var r=n(5050);e.exports=function(e,t){var n=r(this,e),a=n.size;return n.set(e,t),this.size+=n.size==a?0:1,this}},8776:e=>{e.exports=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}},2634:e=>{e.exports=function(e,t){return function(n){return null!=n&&n[e]===t&&(void 0!==t||e in Object(n))}}},4523:(e,t,n)=>{var r=n(8306);e.exports=function(e){var t=r(e,(function(e){return 500===n.size&&n.clear(),e})),n=t.cache;return t}},4536:(e,t,n)=>{var r=n(852)(Object,"create");e.exports=r},6916:(e,t,n)=>{var r=n(5569)(Object.keys,Object);e.exports=r},3498:e=>{e.exports=function(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t}},1167:(e,t,n)=>{e=n.nmd(e);var r=n(1957),a=t&&!t.nodeType&&t,o=a&&e&&!e.nodeType&&e,i=o&&o.exports===a&&r.process,s=function(){try{return o&&o.require&&o.require("util").types||i&&i.binding&&i.binding("util")}catch(e){}}();e.exports=s},2333:e=>{var t=Object.prototype.toString;e.exports=function(e){return t.call(e)}},5569:e=>{e.exports=function(e,t){return function(n){return e(t(n))}}},5357:(e,t,n)=>{var r=n(6874),a=Math.max;e.exports=function(e,t,n){return t=a(void 0===t?e.length-1:t,0),function(){for(var o=arguments,i=-1,s=a(o.length-t,0),l=Array(s);++i<s;)l[i]=o[t+i];i=-1;for(var u=Array(t+1);++i<t;)u[i]=o[i];return u[t]=n(l),r(e,this,u)}}},292:(e,t,n)=>{var r=n(7786),a=n(4259);e.exports=function(e,t){return t.length<2?e:r(e,a(t,0,-1))}},5639:(e,t,n)=>{var r=n(1957),a="object"==typeof self&&self&&self.Object===Object&&self,o=r||a||Function("return this")();e.exports=o},619:e=>{e.exports=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this}},2385:e=>{e.exports=function(e){return this.__data__.has(e)}},1814:e=>{e.exports=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}},61:(e,t,n)=>{var r=n(6560),a=n(1275)(r);e.exports=a},1275:e=>{var t=Date.now;e.exports=function(e){var n=0,r=0;return function(){var a=t(),o=16-(a-r);if(r=a,o>0){if(++n>=800)return arguments[0]}else n=0;return e.apply(void 0,arguments)}}},7465:(e,t,n)=>{var r=n(8407);e.exports=function(){this.__data__=new r,this.size=0}},3779:e=>{e.exports=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}},7599:e=>{e.exports=function(e){return this.__data__.get(e)}},4758:e=>{e.exports=function(e){return this.__data__.has(e)}},4309:(e,t,n)=>{var r=n(8407),a=n(7071),o=n(3369);e.exports=function(e,t){var n=this.__data__;if(n instanceof r){var i=n.__data__;if(!a||i.length<199)return i.push([e,t]),this.size=++n.size,this;n=this.__data__=new o(i)}return n.set(e,t),this.size=n.size,this}},2351:e=>{e.exports=function(e,t,n){for(var r=n-1,a=e.length;++r<a;)if(e[r]===t)return r;return-1}},3140:(e,t,n)=>{var r=n(4286),a=n(2689),o=n(676);e.exports=function(e){return a(e)?o(e):r(e)}},5514:(e,t,n)=>{var r=n(4523),a=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,o=/\\(\\)?/g,i=r((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(a,(function(e,n,r,a){t.push(r?a.replace(o,"$1"):n||e)})),t}));e.exports=i},327:(e,t,n)=>{var r=n(3448);e.exports=function(e){if("string"==typeof e||r(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}},346:e=>{var t=Function.prototype.toString;e.exports=function(e){if(null!=e){try{return t.call(e)}catch(e){}try{return e+""}catch(e){}}return""}},676:e=>{var t="\\ud800-\\udfff",n="["+t+"]",r="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",a="\\ud83c[\\udffb-\\udfff]",o="[^"+t+"]",i="(?:\\ud83c[\\udde6-\\uddff]){2}",s="[\\ud800-\\udbff][\\udc00-\\udfff]",l="(?:"+r+"|"+a+")?",u="[\\ufe0e\\ufe0f]?",c=u+l+"(?:\\u200d(?:"+[o,i,s].join("|")+")"+u+l+")*",f="(?:"+[o+r+"?",r,i,s,n].join("|")+")",d=RegExp(a+"(?="+a+")|"+f+c,"g");e.exports=function(e){return e.match(d)||[]}},2757:e=>{var t="\\ud800-\\udfff",n="\\u2700-\\u27bf",r="a-z\\xdf-\\xf6\\xf8-\\xff",a="A-Z\\xc0-\\xd6\\xd8-\\xde",o="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",i="["+o+"]",s="\\d+",l="["+n+"]",u="["+r+"]",c="[^"+t+o+s+n+r+a+"]",f="(?:\\ud83c[\\udde6-\\uddff]){2}",d="[\\ud800-\\udbff][\\udc00-\\udfff]",p="["+a+"]",h="(?:"+u+"|"+c+")",m="(?:"+p+"|"+c+")",g="(?:['’](?:d|ll|m|re|s|t|ve))?",v="(?:['’](?:D|LL|M|RE|S|T|VE))?",y="(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?",b="[\\ufe0e\\ufe0f]?",w=b+y+"(?:\\u200d(?:"+["[^"+t+"]",f,d].join("|")+")"+b+y+")*",_="(?:"+[l,f,d].join("|")+")"+w,x=RegExp([p+"?"+u+"+"+g+"(?="+[i,p,"$"].join("|")+")",m+"+"+v+"(?="+[i,p+h,"$"].join("|")+")",p+"?"+h+"+"+g,p+"+"+v,"\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",s,_].join("|"),"g");e.exports=function(e){return e.match(x)||[]}},6678:(e,t,n)=>{var r=n(5990);e.exports=function(e){return r(e,4)}},361:(e,t,n)=>{var r=n(5990);e.exports=function(e){return r(e,5)}},5703:e=>{e.exports=function(e){return function(){return e}}},3816:(e,t,n)=>{var r=n(9389),a=n(9833),o=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,i=RegExp("[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]","g");e.exports=function(e){return(e=a(e))&&e.replace(o,r).replace(i,"")}},7813:e=>{e.exports=function(e,t){return e===t||e!=e&&t!=t}},5564:(e,t,n)=>{var r=n(1078);e.exports=function(e){return null!=e&&e.length?r(e,1):[]}},7361:(e,t,n)=>{var r=n(7786);e.exports=function(e,t,n){var a=null==e?void 0:r(e,t);return void 0===a?n:a}},9095:(e,t,n)=>{var r=n(13),a=n(222);e.exports=function(e,t){return null!=e&&a(e,t,r)}},6557:e=>{e.exports=function(e){return e}},5694:(e,t,n)=>{var r=n(9454),a=n(7005),o=Object.prototype,i=o.hasOwnProperty,s=o.propertyIsEnumerable,l=r(function(){return arguments}())?r:function(e){return a(e)&&i.call(e,"callee")&&!s.call(e,"callee")};e.exports=l},1469:e=>{var t=Array.isArray;e.exports=t},8612:(e,t,n)=>{var r=n(3560),a=n(1780);e.exports=function(e){return null!=e&&a(e.length)&&!r(e)}},9246:(e,t,n)=>{var r=n(8612),a=n(7005);e.exports=function(e){return a(e)&&r(e)}},4144:(e,t,n)=>{e=n.nmd(e);var r=n(5639),a=n(5062),o=t&&!t.nodeType&&t,i=o&&e&&!e.nodeType&&e,s=i&&i.exports===o?r.Buffer:void 0,l=(s?s.isBuffer:void 0)||a;e.exports=l},1609:(e,t,n)=>{var r=n(280),a=n(4160),o=n(5694),i=n(1469),s=n(8612),l=n(4144),u=n(5726),c=n(6719),f=Object.prototype.hasOwnProperty;e.exports=function(e){if(null==e)return!0;if(s(e)&&(i(e)||"string"==typeof e||"function"==typeof e.splice||l(e)||c(e)||o(e)))return!e.length;var t=a(e);if("[object Map]"==t||"[object Set]"==t)return!e.size;if(u(e))return!r(e).length;for(var n in e)if(f.call(e,n))return!1;return!0}},8446:(e,t,n)=>{var r=n(939);e.exports=function(e,t){return r(e,t)}},3560:(e,t,n)=>{var r=n(4239),a=n(3218);e.exports=function(e){if(!a(e))return!1;var t=r(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}},1780:e=>{e.exports=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}},6688:(e,t,n)=>{var r=n(5588),a=n(1717),o=n(1167),i=o&&o.isMap,s=i?a(i):r;e.exports=s},3218:e=>{e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},7005:e=>{e.exports=function(e){return null!=e&&"object"==typeof e}},8630:(e,t,n)=>{var r=n(4239),a=n(5924),o=n(7005),i=Function.prototype,s=Object.prototype,l=i.toString,u=s.hasOwnProperty,c=l.call(Object);e.exports=function(e){if(!o(e)||"[object Object]"!=r(e))return!1;var t=a(e);if(null===t)return!0;var n=u.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&l.call(n)==c}},2928:(e,t,n)=>{var r=n(9221),a=n(1717),o=n(1167),i=o&&o.isSet,s=i?a(i):r;e.exports=s},3448:(e,t,n)=>{var r=n(4239),a=n(7005);e.exports=function(e){return"symbol"==typeof e||a(e)&&"[object Symbol]"==r(e)}},6719:(e,t,n)=>{var r=n(8749),a=n(1717),o=n(1167),i=o&&o.isTypedArray,s=i?a(i):r;e.exports=s},3674:(e,t,n)=>{var r=n(4636),a=n(280),o=n(8612);e.exports=function(e){return o(e)?r(e):a(e)}},1704:(e,t,n)=>{var r=n(4636),a=n(313),o=n(8612);e.exports=function(e){return o(e)?r(e,!0):a(e)}},928:e=>{e.exports=function(e){var t=null==e?0:e.length;return t?e[t-1]:void 0}},5021:(e,t,n)=>{var r=n(5393)((function(e,t,n){return e+(n?" ":"")+t.toLowerCase()}));e.exports=r},6604:(e,t,n)=>{var r=n(9465),a=n(7816),o=n(7206);e.exports=function(e,t){var n={};return t=o(t,3),a(e,(function(e,a,o){r(n,a,t(e,a,o))})),n}},8306:(e,t,n)=>{var r=n(3369);function a(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");var n=function(){var r=arguments,a=t?t.apply(this,r):r[0],o=n.cache;if(o.has(a))return o.get(a);var i=e.apply(this,r);return n.cache=o.set(a,i)||o,i};return n.cache=new(a.Cache||r),n}a.Cache=r,e.exports=a},308:e=>{e.exports=function(){}},7557:(e,t,n)=>{var r=n(9932),a=n(5990),o=n(7406),i=n(1811),s=n(8363),l=n(696),u=n(9021),c=n(6904),f=u((function(e,t){var n={};if(null==e)return n;var u=!1;t=r(t,(function(t){return t=i(t,e),u||(u=t.length>1),t})),s(e,c(e),n),u&&(n=a(n,7,l));for(var f=t.length;f--;)o(n,t[f]);return n}));e.exports=f},9601:(e,t,n)=>{var r=n(371),a=n(9152),o=n(5403),i=n(327);e.exports=function(e){return o(e)?r(i(e)):a(e)}},1921:(e,t,n)=>{var r=n(611);e.exports=function(e,t,n,a){return a="function"==typeof a?a:void 0,null==e?e:r(e,t,n,a)}},479:e=>{e.exports=function(){return[]}},5062:e=>{e.exports=function(){return!1}},9833:(e,t,n)=>{var r=n(531);e.exports=function(e){return null==e?"":r(e)}},1700:(e,t,n)=>{var r=n(8882)("toUpperCase");e.exports=r},8748:(e,t,n)=>{var r=n(9029),a=n(3157),o=n(9833),i=n(2757);e.exports=function(e,t,n){return e=o(e),void 0===(t=n?void 0:t)?a(e)?i(e):r(e):e.match(t)||[]}},6566:(e,t,n)=>{var r=n(4963),a=n(5976),o=n(6128),i=n(9246),s=a((function(e){return o(r(e,i))}));e.exports=s},7418:e=>{"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,a){for(var o,i,s=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),l=1;l<arguments.length;l++){for(var u in o=Object(arguments[l]))n.call(o,u)&&(s[u]=o[u]);if(t){i=t(o);for(var c=0;c<i.length;c++)r.call(o,i[c])&&(s[i[c]]=o[i[c]])}}return s}},4448:(e,t,n)=>{"use strict";var r=n(7294),a=n(7418),o=n(3840);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}if(!r)throw Error(i(227));var s=new Set,l={};function u(e,t){c(e,t),c(e+"Capture",t)}function c(e,t){for(l[e]=t,e=0;e<t.length;e++)s.add(t[e])}var f=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),d=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,p=Object.prototype.hasOwnProperty,h={},m={};function g(e,t,n,r,a,o,i){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=a,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=i}var v={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){v[e]=new g(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];v[t]=new g(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){v[e]=new g(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){v[e]=new g(e,2,!1,e,null,!1,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){v[e]=new g(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){v[e]=new g(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){v[e]=new g(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){v[e]=new g(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){v[e]=new g(e,5,!1,e.toLowerCase(),null,!1,!1)}));var y=/[\-:]([a-z])/g;function b(e){return e[1].toUpperCase()}function w(e,t,n,r){var a=v.hasOwnProperty(t)?v[t]:null;(null!==a?0===a.type:!r&&2<t.length&&("o"===t[0]||"O"===t[0])&&("n"===t[1]||"N"===t[1]))||(function(e,t,n,r){if(null==t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,a,r)&&(n=null),r||null===a?function(e){return!!p.call(m,e)||!p.call(h,e)&&(d.test(e)?m[e]=!0:(h[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):a.mustUseProperty?e[a.propertyName]=null===n?3!==a.type&&"":n:(t=a.attributeName,r=a.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(a=a.type)||4===a&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(y,b);v[t]=new g(t,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(y,b);v[t]=new g(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(y,b);v[t]=new g(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){v[e]=new g(e,1,!1,e.toLowerCase(),null,!1,!1)})),v.xlinkHref=new g("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){v[e]=new g(e,1,!1,e.toLowerCase(),null,!0,!0)}));var _=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,x=60103,E=60106,k=60107,S=60108,$=60114,P=60109,O=60110,C=60112,j=60113,N=60120,I=60115,T=60116,A=60121,R=60128,D=60129,M=60130,F=60131;if("function"==typeof Symbol&&Symbol.for){var z=Symbol.for;x=z("react.element"),E=z("react.portal"),k=z("react.fragment"),S=z("react.strict_mode"),$=z("react.profiler"),P=z("react.provider"),O=z("react.context"),C=z("react.forward_ref"),j=z("react.suspense"),N=z("react.suspense_list"),I=z("react.memo"),T=z("react.lazy"),A=z("react.block"),z("react.scope"),R=z("react.opaque.id"),D=z("react.debug_trace_mode"),M=z("react.offscreen"),F=z("react.legacy_hidden")}var L,V="function"==typeof Symbol&&Symbol.iterator;function U(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=V&&e[V]||e["@@iterator"])?e:null}function q(e){if(void 0===L)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);L=t&&t[1]||""}return"\n"+L+e}var B=!1;function H(e,t){if(!e||B)return"";B=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(e){var r=e}Reflect.construct(e,[],t)}else{try{t.call()}catch(e){r=e}e.call(t.prototype)}else{try{throw Error()}catch(e){r=e}e()}}catch(e){if(e&&r&&"string"==typeof e.stack){for(var a=e.stack.split("\n"),o=r.stack.split("\n"),i=a.length-1,s=o.length-1;1<=i&&0<=s&&a[i]!==o[s];)s--;for(;1<=i&&0<=s;i--,s--)if(a[i]!==o[s]){if(1!==i||1!==s)do{if(i--,0>--s||a[i]!==o[s])return"\n"+a[i].replace(" at new "," at ")}while(1<=i&&0<=s);break}}}finally{B=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?q(e):""}function W(e){switch(e.tag){case 5:return q(e.type);case 16:return q("Lazy");case 13:return q("Suspense");case 19:return q("SuspenseList");case 0:case 2:case 15:return H(e.type,!1);case 11:return H(e.type.render,!1);case 22:return H(e.type._render,!1);case 1:return H(e.type,!0);default:return""}}function K(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case k:return"Fragment";case E:return"Portal";case $:return"Profiler";case S:return"StrictMode";case j:return"Suspense";case N:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case O:return(e.displayName||"Context")+".Consumer";case P:return(e._context.displayName||"Context")+".Provider";case C:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(""!==t?"ForwardRef("+t+")":"ForwardRef");case I:return K(e.type);case A:return K(e._render);case T:t=e._payload,e=e._init;try{return K(e(t))}catch(e){}}return null}function Q(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function G(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function J(e){e._valueTracker||(e._valueTracker=function(e){var t=G(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var a=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(e){r=""+e,o.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function Y(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=G(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function Z(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function X(e,t){var n=t.checked;return a({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function ee(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=Q(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function te(e,t){null!=(t=t.checked)&&w(e,"checked",t,!1)}function ne(e,t){te(e,t);var n=Q(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?ae(e,t.type,n):t.hasOwnProperty("defaultValue")&&ae(e,t.type,Q(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function re(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function ae(e,t,n){"number"===t&&Z(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}function oe(e,t){return e=a({children:void 0},t),(t=function(e){var t="";return r.Children.forEach(e,(function(e){null!=e&&(t+=e)})),t}(t.children))&&(e.children=t),e}function ie(e,t,n,r){if(e=e.options,t){t={};for(var a=0;a<n.length;a++)t["$"+n[a]]=!0;for(n=0;n<e.length;n++)a=t.hasOwnProperty("$"+e[n].value),e[n].selected!==a&&(e[n].selected=a),a&&r&&(e[n].defaultSelected=!0)}else{for(n=""+Q(n),t=null,a=0;a<e.length;a++){if(e[a].value===n)return e[a].selected=!0,void(r&&(e[a].defaultSelected=!0));null!==t||e[a].disabled||(t=e[a])}null!==t&&(t.selected=!0)}}function se(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(i(91));return a({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function le(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(i(92));if(Array.isArray(n)){if(!(1>=n.length))throw Error(i(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:Q(n)}}function ue(e,t){var n=Q(t.value),r=Q(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function ce(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}var fe={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"};function de(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function pe(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?de(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var he,me,ge=(me=function(e,t){if(e.namespaceURI!==fe.svg||"innerHTML"in e)e.innerHTML=t;else{for((he=he||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=he.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction((function(){return me(e,t)}))}:me);function ve(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var ye={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},be=["Webkit","ms","Moz","O"];function we(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||ye.hasOwnProperty(e)&&ye[e]?(""+t).trim():t+"px"}function _e(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),a=we(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,a):e[n]=a}}Object.keys(ye).forEach((function(e){be.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),ye[t]=ye[e]}))}));var xe=a({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Ee(e,t){if(t){if(xe[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(i(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(i(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(i(61))}if(null!=t.style&&"object"!=typeof t.style)throw Error(i(62))}}function ke(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function Se(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var $e=null,Pe=null,Oe=null;function Ce(e){if(e=na(e)){if("function"!=typeof $e)throw Error(i(280));var t=e.stateNode;t&&(t=aa(t),$e(e.stateNode,e.type,t))}}function je(e){Pe?Oe?Oe.push(e):Oe=[e]:Pe=e}function Ne(){if(Pe){var e=Pe,t=Oe;if(Oe=Pe=null,Ce(e),t)for(e=0;e<t.length;e++)Ce(t[e])}}function Ie(e,t){return e(t)}function Te(e,t,n,r,a){return e(t,n,r,a)}function Ae(){}var Re=Ie,De=!1,Me=!1;function Fe(){null===Pe&&null===Oe||(Ae(),Ne())}function ze(e,t){var n=e.stateNode;if(null===n)return null;var r=aa(n);if(null===r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw Error(i(231,t,typeof n));return n}var Le=!1;if(f)try{var Ve={};Object.defineProperty(Ve,"passive",{get:function(){Le=!0}}),window.addEventListener("test",Ve,Ve),window.removeEventListener("test",Ve,Ve)}catch(me){Le=!1}function Ue(e,t,n,r,a,o,i,s,l){var u=Array.prototype.slice.call(arguments,3);try{t.apply(n,u)}catch(e){this.onError(e)}}var qe=!1,Be=null,He=!1,We=null,Ke={onError:function(e){qe=!0,Be=e}};function Qe(e,t,n,r,a,o,i,s,l){qe=!1,Be=null,Ue.apply(Ke,arguments)}function Ge(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!=(1026&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function Je(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&null!==(e=e.alternate)&&(t=e.memoizedState),null!==t)return t.dehydrated}return null}function Ye(e){if(Ge(e)!==e)throw Error(i(188))}function Ze(e){if(e=function(e){var t=e.alternate;if(!t){if(null===(t=Ge(e)))throw Error(i(188));return t!==e?null:e}for(var n=e,r=t;;){var a=n.return;if(null===a)break;var o=a.alternate;if(null===o){if(null!==(r=a.return)){n=r;continue}break}if(a.child===o.child){for(o=a.child;o;){if(o===n)return Ye(a),e;if(o===r)return Ye(a),t;o=o.sibling}throw Error(i(188))}if(n.return!==r.return)n=a,r=o;else{for(var s=!1,l=a.child;l;){if(l===n){s=!0,n=a,r=o;break}if(l===r){s=!0,r=a,n=o;break}l=l.sibling}if(!s){for(l=o.child;l;){if(l===n){s=!0,n=o,r=a;break}if(l===r){s=!0,r=o,n=a;break}l=l.sibling}if(!s)throw Error(i(189))}}if(n.alternate!==r)throw Error(i(190))}if(3!==n.tag)throw Error(i(188));return n.stateNode.current===n?e:t}(e),!e)return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}function Xe(e,t){for(var n=e.alternate;null!==t;){if(t===e||t===n)return!0;t=t.return}return!1}var et,tt,nt,rt,at=!1,ot=[],it=null,st=null,lt=null,ut=new Map,ct=new Map,ft=[],dt="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function pt(e,t,n,r,a){return{blockedOn:e,domEventName:t,eventSystemFlags:16|n,nativeEvent:a,targetContainers:[r]}}function ht(e,t){switch(e){case"focusin":case"focusout":it=null;break;case"dragenter":case"dragleave":st=null;break;case"mouseover":case"mouseout":lt=null;break;case"pointerover":case"pointerout":ut.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":ct.delete(t.pointerId)}}function mt(e,t,n,r,a,o){return null===e||e.nativeEvent!==o?(e=pt(t,n,r,a,o),null!==t&&null!==(t=na(t))&&tt(t),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==a&&-1===t.indexOf(a)&&t.push(a),e)}function gt(e){var t=ta(e.target);if(null!==t){var n=Ge(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=Je(n)))return e.blockedOn=t,void rt(e.lanePriority,(function(){o.unstable_runWithPriority(e.priority,(function(){nt(n)}))}))}else if(3===t&&n.stateNode.hydrate)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function vt(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Zt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=na(n))&&tt(t),e.blockedOn=n,!1;t.shift()}return!0}function yt(e,t,n){vt(e)&&n.delete(t)}function bt(){for(at=!1;0<ot.length;){var e=ot[0];if(null!==e.blockedOn){null!==(e=na(e.blockedOn))&&et(e);break}for(var t=e.targetContainers;0<t.length;){var n=Zt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n){e.blockedOn=n;break}t.shift()}null===e.blockedOn&&ot.shift()}null!==it&&vt(it)&&(it=null),null!==st&&vt(st)&&(st=null),null!==lt&&vt(lt)&&(lt=null),ut.forEach(yt),ct.forEach(yt)}function wt(e,t){e.blockedOn===t&&(e.blockedOn=null,at||(at=!0,o.unstable_scheduleCallback(o.unstable_NormalPriority,bt)))}function _t(e){function t(t){return wt(t,e)}if(0<ot.length){wt(ot[0],e);for(var n=1;n<ot.length;n++){var r=ot[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==it&&wt(it,e),null!==st&&wt(st,e),null!==lt&&wt(lt,e),ut.forEach(t),ct.forEach(t),n=0;n<ft.length;n++)(r=ft[n]).blockedOn===e&&(r.blockedOn=null);for(;0<ft.length&&null===(n=ft[0]).blockedOn;)gt(n),null===n.blockedOn&&ft.shift()}function xt(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var Et={animationend:xt("Animation","AnimationEnd"),animationiteration:xt("Animation","AnimationIteration"),animationstart:xt("Animation","AnimationStart"),transitionend:xt("Transition","TransitionEnd")},kt={},St={};function $t(e){if(kt[e])return kt[e];if(!Et[e])return e;var t,n=Et[e];for(t in n)if(n.hasOwnProperty(t)&&t in St)return kt[e]=n[t];return e}f&&(St=document.createElement("div").style,"AnimationEvent"in window||(delete Et.animationend.animation,delete Et.animationiteration.animation,delete Et.animationstart.animation),"TransitionEvent"in window||delete Et.transitionend.transition);var Pt=$t("animationend"),Ot=$t("animationiteration"),Ct=$t("animationstart"),jt=$t("transitionend"),Nt=new Map,It=new Map,Tt=["abort","abort",Pt,"animationEnd",Ot,"animationIteration",Ct,"animationStart","canplay","canPlay","canplaythrough","canPlayThrough","durationchange","durationChange","emptied","emptied","encrypted","encrypted","ended","ended","error","error","gotpointercapture","gotPointerCapture","load","load","loadeddata","loadedData","loadedmetadata","loadedMetadata","loadstart","loadStart","lostpointercapture","lostPointerCapture","playing","playing","progress","progress","seeking","seeking","stalled","stalled","suspend","suspend","timeupdate","timeUpdate",jt,"transitionEnd","waiting","waiting"];function At(e,t){for(var n=0;n<e.length;n+=2){var r=e[n],a=e[n+1];a="on"+(a[0].toUpperCase()+a.slice(1)),It.set(r,t),Nt.set(r,a),u(a,[r])}}(0,o.unstable_now)();var Rt=8;function Dt(e){if(0!=(1&e))return Rt=15,1;if(0!=(2&e))return Rt=14,2;if(0!=(4&e))return Rt=13,4;var t=24&e;return 0!==t?(Rt=12,t):0!=(32&e)?(Rt=11,32):0!=(t=192&e)?(Rt=10,t):0!=(256&e)?(Rt=9,256):0!=(t=3584&e)?(Rt=8,t):0!=(4096&e)?(Rt=7,4096):0!=(t=4186112&e)?(Rt=6,t):0!=(t=62914560&e)?(Rt=5,t):67108864&e?(Rt=4,67108864):0!=(134217728&e)?(Rt=3,134217728):0!=(t=805306368&e)?(Rt=2,t):0!=(1073741824&e)?(Rt=1,1073741824):(Rt=8,e)}function Mt(e,t){var n=e.pendingLanes;if(0===n)return Rt=0;var r=0,a=0,o=e.expiredLanes,i=e.suspendedLanes,s=e.pingedLanes;if(0!==o)r=o,a=Rt=15;else if(0!=(o=134217727&n)){var l=o&~i;0!==l?(r=Dt(l),a=Rt):0!=(s&=o)&&(r=Dt(s),a=Rt)}else 0!=(o=n&~i)?(r=Dt(o),a=Rt):0!==s&&(r=Dt(s),a=Rt);if(0===r)return 0;if(r=n&((0>(r=31-qt(r))?0:1<<r)<<1)-1,0!==t&&t!==r&&0==(t&i)){if(Dt(t),a<=Rt)return t;Rt=a}if(0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0<t;)a=1<<(n=31-qt(t)),r|=e[n],t&=~a;return r}function Ft(e){return 0!=(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function zt(e,t){switch(e){case 15:return 1;case 14:return 2;case 12:return 0===(e=Lt(24&~t))?zt(10,t):e;case 10:return 0===(e=Lt(192&~t))?zt(8,t):e;case 8:return 0===(e=Lt(3584&~t))&&0===(e=Lt(4186112&~t))&&(e=512),e;case 2:return 0===(t=Lt(805306368&~t))&&(t=268435456),t}throw Error(i(358,e))}function Lt(e){return e&-e}function Vt(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Ut(e,t,n){e.pendingLanes|=t;var r=t-1;e.suspendedLanes&=r,e.pingedLanes&=r,(e=e.eventTimes)[t=31-qt(t)]=n}var qt=Math.clz32?Math.clz32:function(e){return 0===e?32:31-(Bt(e)/Ht|0)|0},Bt=Math.log,Ht=Math.LN2,Wt=o.unstable_UserBlockingPriority,Kt=o.unstable_runWithPriority,Qt=!0;function Gt(e,t,n,r){De||Ae();var a=Yt,o=De;De=!0;try{Te(a,e,t,n,r)}finally{(De=o)||Fe()}}function Jt(e,t,n,r){Kt(Wt,Yt.bind(null,e,t,n,r))}function Yt(e,t,n,r){var a;if(Qt)if((a=0==(4&t))&&0<ot.length&&-1<dt.indexOf(e))e=pt(null,e,t,n,r),ot.push(e);else{var o=Zt(e,t,n,r);if(null===o)a&&ht(e,r);else{if(a){if(-1<dt.indexOf(e))return e=pt(o,e,t,n,r),void ot.push(e);if(function(e,t,n,r,a){switch(t){case"focusin":return it=mt(it,e,t,n,r,a),!0;case"dragenter":return st=mt(st,e,t,n,r,a),!0;case"mouseover":return lt=mt(lt,e,t,n,r,a),!0;case"pointerover":var o=a.pointerId;return ut.set(o,mt(ut.get(o)||null,e,t,n,r,a)),!0;case"gotpointercapture":return o=a.pointerId,ct.set(o,mt(ct.get(o)||null,e,t,n,r,a)),!0}return!1}(o,e,t,n,r))return;ht(e,r)}Ar(e,t,r,null,n)}}}function Zt(e,t,n,r){var a=Se(r);if(null!==(a=ta(a))){var o=Ge(a);if(null===o)a=null;else{var i=o.tag;if(13===i){if(null!==(a=Je(o)))return a;a=null}else if(3===i){if(o.stateNode.hydrate)return 3===o.tag?o.stateNode.containerInfo:null;a=null}else o!==a&&(a=null)}}return Ar(e,t,r,a,n),null}var Xt=null,en=null,tn=null;function nn(){if(tn)return tn;var e,t,n=en,r=n.length,a="value"in Xt?Xt.value:Xt.textContent,o=a.length;for(e=0;e<r&&n[e]===a[e];e++);var i=r-e;for(t=1;t<=i&&n[r-t]===a[o-t];t++);return tn=a.slice(e,1<t?1-t:void 0)}function rn(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function an(){return!0}function on(){return!1}function sn(e){function t(t,n,r,a,o){for(var i in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=a,this.target=o,this.currentTarget=null,e)e.hasOwnProperty(i)&&(t=e[i],this[i]=t?t(a):a[i]);return this.isDefaultPrevented=(null!=a.defaultPrevented?a.defaultPrevented:!1===a.returnValue)?an:on,this.isPropagationStopped=on,this}return a(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=an)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=an)},persist:function(){},isPersistent:an}),t}var ln,un,cn,fn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},dn=sn(fn),pn=a({},fn,{view:0,detail:0}),hn=sn(pn),mn=a({},pn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Pn,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==cn&&(cn&&"mousemove"===e.type?(ln=e.screenX-cn.screenX,un=e.screenY-cn.screenY):un=ln=0,cn=e),ln)},movementY:function(e){return"movementY"in e?e.movementY:un}}),gn=sn(mn),vn=sn(a({},mn,{dataTransfer:0})),yn=sn(a({},pn,{relatedTarget:0})),bn=sn(a({},fn,{animationName:0,elapsedTime:0,pseudoElement:0})),wn=a({},fn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),_n=sn(wn),xn=sn(a({},fn,{data:0})),En={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},kn={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Sn={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function $n(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=Sn[e])&&!!t[e]}function Pn(){return $n}var On=a({},pn,{key:function(e){if(e.key){var t=En[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=rn(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?kn[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Pn,charCode:function(e){return"keypress"===e.type?rn(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?rn(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),Cn=sn(On),jn=sn(a({},mn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Nn=sn(a({},pn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Pn})),In=sn(a({},fn,{propertyName:0,elapsedTime:0,pseudoElement:0})),Tn=a({},mn,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),An=sn(Tn),Rn=[9,13,27,32],Dn=f&&"CompositionEvent"in window,Mn=null;f&&"documentMode"in document&&(Mn=document.documentMode);var Fn=f&&"TextEvent"in window&&!Mn,zn=f&&(!Dn||Mn&&8<Mn&&11>=Mn),Ln=String.fromCharCode(32),Vn=!1;function Un(e,t){switch(e){case"keyup":return-1!==Rn.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function qn(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var Bn=!1,Hn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Wn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Hn[e.type]:"textarea"===t}function Kn(e,t,n,r){je(r),0<(t=Dr(t,"onChange")).length&&(n=new dn("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Qn=null,Gn=null;function Jn(e){Or(e,0)}function Yn(e){if(Y(ra(e)))return e}function Zn(e,t){if("change"===e)return t}var Xn=!1;if(f){var er;if(f){var tr="oninput"in document;if(!tr){var nr=document.createElement("div");nr.setAttribute("oninput","return;"),tr="function"==typeof nr.oninput}er=tr}else er=!1;Xn=er&&(!document.documentMode||9<document.documentMode)}function rr(){Qn&&(Qn.detachEvent("onpropertychange",ar),Gn=Qn=null)}function ar(e){if("value"===e.propertyName&&Yn(Gn)){var t=[];if(Kn(t,Gn,e,Se(e)),e=Jn,De)e(t);else{De=!0;try{Ie(e,t)}finally{De=!1,Fe()}}}}function or(e,t,n){"focusin"===e?(rr(),Gn=n,(Qn=t).attachEvent("onpropertychange",ar)):"focusout"===e&&rr()}function ir(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Yn(Gn)}function sr(e,t){if("click"===e)return Yn(t)}function lr(e,t){if("input"===e||"change"===e)return Yn(t)}var ur="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},cr=Object.prototype.hasOwnProperty;function fr(e,t){if(ur(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++)if(!cr.call(t,n[r])||!ur(e[n[r]],t[n[r]]))return!1;return!0}function dr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function pr(e,t){var n,r=dr(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=dr(r)}}function hr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?hr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function mr(){for(var e=window,t=Z();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(e){n=!1}if(!n)break;t=Z((e=t.contentWindow).document)}return t}function gr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}var vr=f&&"documentMode"in document&&11>=document.documentMode,yr=null,br=null,wr=null,_r=!1;function xr(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;_r||null==yr||yr!==Z(r)||(r="selectionStart"in(r=yr)&&gr(r)?{start:r.selectionStart,end:r.selectionEnd}:{anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},wr&&fr(wr,r)||(wr=r,0<(r=Dr(br,"onSelect")).length&&(t=new dn("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=yr)))}At("cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focusin focus focusout blur input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange".split(" "),0),At("drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel".split(" "),1),At(Tt,2);for(var Er="change selectionchange textInput compositionstart compositionend compositionupdate".split(" "),kr=0;kr<Er.length;kr++)It.set(Er[kr],0);c("onMouseEnter",["mouseout","mouseover"]),c("onMouseLeave",["mouseout","mouseover"]),c("onPointerEnter",["pointerout","pointerover"]),c("onPointerLeave",["pointerout","pointerover"]),u("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),u("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),u("onBeforeInput",["compositionend","keypress","textInput","paste"]),u("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),u("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),u("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Sr="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),$r=new Set("cancel close invalid load scroll toggle".split(" ").concat(Sr));function Pr(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,r,a,o,s,l,u){if(Qe.apply(this,arguments),qe){if(!qe)throw Error(i(198));var c=Be;qe=!1,Be=null,He||(He=!0,We=c)}}(r,t,void 0,e),e.currentTarget=null}function Or(e,t){t=0!=(4&t);for(var n=0;n<e.length;n++){var r=e[n],a=r.event;r=r.listeners;e:{var o=void 0;if(t)for(var i=r.length-1;0<=i;i--){var s=r[i],l=s.instance,u=s.currentTarget;if(s=s.listener,l!==o&&a.isPropagationStopped())break e;Pr(a,s,u),o=l}else for(i=0;i<r.length;i++){if(l=(s=r[i]).instance,u=s.currentTarget,s=s.listener,l!==o&&a.isPropagationStopped())break e;Pr(a,s,u),o=l}}}if(He)throw e=We,He=!1,We=null,e}function Cr(e,t){var n=oa(t),r=e+"__bubble";n.has(r)||(Tr(t,e,2,!1),n.add(r))}var jr="_reactListening"+Math.random().toString(36).slice(2);function Nr(e){e[jr]||(e[jr]=!0,s.forEach((function(t){$r.has(t)||Ir(t,!1,e,null),Ir(t,!0,e,null)})))}function Ir(e,t,n,r){var a=4<arguments.length&&void 0!==arguments[4]?arguments[4]:0,o=n;if("selectionchange"===e&&9!==n.nodeType&&(o=n.ownerDocument),null!==r&&!t&&$r.has(e)){if("scroll"!==e)return;a|=2,o=r}var i=oa(o),s=e+"__"+(t?"capture":"bubble");i.has(s)||(t&&(a|=4),Tr(o,e,a,t),i.add(s))}function Tr(e,t,n,r){var a=It.get(t);switch(void 0===a?2:a){case 0:a=Gt;break;case 1:a=Jt;break;default:a=Yt}n=a.bind(null,t,n,e),a=void 0,!Le||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(a=!0),r?void 0!==a?e.addEventListener(t,n,{capture:!0,passive:a}):e.addEventListener(t,n,!0):void 0!==a?e.addEventListener(t,n,{passive:a}):e.addEventListener(t,n,!1)}function Ar(e,t,n,r,a){var o=r;if(0==(1&t)&&0==(2&t)&&null!==r)e:for(;;){if(null===r)return;var i=r.tag;if(3===i||4===i){var s=r.stateNode.containerInfo;if(s===a||8===s.nodeType&&s.parentNode===a)break;if(4===i)for(i=r.return;null!==i;){var l=i.tag;if((3===l||4===l)&&((l=i.stateNode.containerInfo)===a||8===l.nodeType&&l.parentNode===a))return;i=i.return}for(;null!==s;){if(null===(i=ta(s)))return;if(5===(l=i.tag)||6===l){r=o=i;continue e}s=s.parentNode}}r=r.return}!function(e,t,n){if(Me)return e();Me=!0;try{return Re(e,t,n)}finally{Me=!1,Fe()}}((function(){var r=o,a=Se(n),i=[];e:{var s=Nt.get(e);if(void 0!==s){var l=dn,u=e;switch(e){case"keypress":if(0===rn(n))break e;case"keydown":case"keyup":l=Cn;break;case"focusin":u="focus",l=yn;break;case"focusout":u="blur",l=yn;break;case"beforeblur":case"afterblur":l=yn;break;case"click":if(2===n.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":l=gn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":l=vn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":l=Nn;break;case Pt:case Ot:case Ct:l=bn;break;case jt:l=In;break;case"scroll":l=hn;break;case"wheel":l=An;break;case"copy":case"cut":case"paste":l=_n;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":l=jn}var c=0!=(4&t),f=!c&&"scroll"===e,d=c?null!==s?s+"Capture":null:s;c=[];for(var p,h=r;null!==h;){var m=(p=h).stateNode;if(5===p.tag&&null!==m&&(p=m,null!==d&&null!=(m=ze(h,d))&&c.push(Rr(h,m,p))),f)break;h=h.return}0<c.length&&(s=new l(s,u,null,n,a),i.push({event:s,listeners:c}))}}if(0==(7&t)){if(l="mouseout"===e||"pointerout"===e,(!(s="mouseover"===e||"pointerover"===e)||0!=(16&t)||!(u=n.relatedTarget||n.fromElement)||!ta(u)&&!u[Xr])&&(l||s)&&(s=a.window===a?a:(s=a.ownerDocument)?s.defaultView||s.parentWindow:window,l?(l=r,null!==(u=(u=n.relatedTarget||n.toElement)?ta(u):null)&&(u!==(f=Ge(u))||5!==u.tag&&6!==u.tag)&&(u=null)):(l=null,u=r),l!==u)){if(c=gn,m="onMouseLeave",d="onMouseEnter",h="mouse","pointerout"!==e&&"pointerover"!==e||(c=jn,m="onPointerLeave",d="onPointerEnter",h="pointer"),f=null==l?s:ra(l),p=null==u?s:ra(u),(s=new c(m,h+"leave",l,n,a)).target=f,s.relatedTarget=p,m=null,ta(a)===r&&((c=new c(d,h+"enter",u,n,a)).target=p,c.relatedTarget=f,m=c),f=m,l&&u)e:{for(d=u,h=0,p=c=l;p;p=Mr(p))h++;for(p=0,m=d;m;m=Mr(m))p++;for(;0<h-p;)c=Mr(c),h--;for(;0<p-h;)d=Mr(d),p--;for(;h--;){if(c===d||null!==d&&c===d.alternate)break e;c=Mr(c),d=Mr(d)}c=null}else c=null;null!==l&&Fr(i,s,l,c,!1),null!==u&&null!==f&&Fr(i,f,u,c,!0)}if("select"===(l=(s=r?ra(r):window).nodeName&&s.nodeName.toLowerCase())||"input"===l&&"file"===s.type)var g=Zn;else if(Wn(s))if(Xn)g=lr;else{g=ir;var v=or}else(l=s.nodeName)&&"input"===l.toLowerCase()&&("checkbox"===s.type||"radio"===s.type)&&(g=sr);switch(g&&(g=g(e,r))?Kn(i,g,n,a):(v&&v(e,s,r),"focusout"===e&&(v=s._wrapperState)&&v.controlled&&"number"===s.type&&ae(s,"number",s.value)),v=r?ra(r):window,e){case"focusin":(Wn(v)||"true"===v.contentEditable)&&(yr=v,br=r,wr=null);break;case"focusout":wr=br=yr=null;break;case"mousedown":_r=!0;break;case"contextmenu":case"mouseup":case"dragend":_r=!1,xr(i,n,a);break;case"selectionchange":if(vr)break;case"keydown":case"keyup":xr(i,n,a)}var y;if(Dn)e:{switch(e){case"compositionstart":var b="onCompositionStart";break e;case"compositionend":b="onCompositionEnd";break e;case"compositionupdate":b="onCompositionUpdate";break e}b=void 0}else Bn?Un(e,n)&&(b="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(b="onCompositionStart");b&&(zn&&"ko"!==n.locale&&(Bn||"onCompositionStart"!==b?"onCompositionEnd"===b&&Bn&&(y=nn()):(en="value"in(Xt=a)?Xt.value:Xt.textContent,Bn=!0)),0<(v=Dr(r,b)).length&&(b=new xn(b,e,null,n,a),i.push({event:b,listeners:v}),(y||null!==(y=qn(n)))&&(b.data=y))),(y=Fn?function(e,t){switch(e){case"compositionend":return qn(t);case"keypress":return 32!==t.which?null:(Vn=!0,Ln);case"textInput":return(e=t.data)===Ln&&Vn?null:e;default:return null}}(e,n):function(e,t){if(Bn)return"compositionend"===e||!Dn&&Un(e,t)?(e=nn(),tn=en=Xt=null,Bn=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return zn&&"ko"!==t.locale?null:t.data}}(e,n))&&0<(r=Dr(r,"onBeforeInput")).length&&(a=new xn("onBeforeInput","beforeinput",null,n,a),i.push({event:a,listeners:r}),a.data=y)}Or(i,t)}))}function Rr(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Dr(e,t){for(var n=t+"Capture",r=[];null!==e;){var a=e,o=a.stateNode;5===a.tag&&null!==o&&(a=o,null!=(o=ze(e,n))&&r.unshift(Rr(e,o,a)),null!=(o=ze(e,t))&&r.push(Rr(e,o,a))),e=e.return}return r}function Mr(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function Fr(e,t,n,r,a){for(var o=t._reactName,i=[];null!==n&&n!==r;){var s=n,l=s.alternate,u=s.stateNode;if(null!==l&&l===r)break;5===s.tag&&null!==u&&(s=u,a?null!=(l=ze(n,o))&&i.unshift(Rr(n,l,s)):a||null!=(l=ze(n,o))&&i.push(Rr(n,l,s))),n=n.return}0!==i.length&&e.push({event:t,listeners:i})}function zr(){}var Lr=null,Vr=null;function Ur(e,t){switch(e){case"button":case"input":case"select":case"textarea":return!!t.autoFocus}return!1}function qr(e,t){return"textarea"===e||"option"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var Br="function"==typeof setTimeout?setTimeout:void 0,Hr="function"==typeof clearTimeout?clearTimeout:void 0;function Wr(e){(1===e.nodeType||9===e.nodeType&&null!=(e=e.body))&&(e.textContent="")}function Kr(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break}return e}function Qr(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var Gr=0,Jr=Math.random().toString(36).slice(2),Yr="__reactFiber$"+Jr,Zr="__reactProps$"+Jr,Xr="__reactContainer$"+Jr,ea="__reactEvents$"+Jr;function ta(e){var t=e[Yr];if(t)return t;for(var n=e.parentNode;n;){if(t=n[Xr]||n[Yr]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=Qr(e);null!==e;){if(n=e[Yr])return n;e=Qr(e)}return t}n=(e=n).parentNode}return null}function na(e){return!(e=e[Yr]||e[Xr])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function ra(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(i(33))}function aa(e){return e[Zr]||null}function oa(e){var t=e[ea];return void 0===t&&(t=e[ea]=new Set),t}var ia=[],sa=-1;function la(e){return{current:e}}function ua(e){0>sa||(e.current=ia[sa],ia[sa]=null,sa--)}function ca(e,t){sa++,ia[sa]=e.current,e.current=t}var fa={},da=la(fa),pa=la(!1),ha=fa;function ma(e,t){var n=e.type.contextTypes;if(!n)return fa;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var a,o={};for(a in n)o[a]=t[a];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function ga(e){return null!=e.childContextTypes}function va(){ua(pa),ua(da)}function ya(e,t,n){if(da.current!==fa)throw Error(i(168));ca(da,t),ca(pa,n)}function ba(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var o in r=r.getChildContext())if(!(o in e))throw Error(i(108,K(t)||"Unknown",o));return a({},n,r)}function wa(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||fa,ha=da.current,ca(da,e),ca(pa,pa.current),!0}function _a(e,t,n){var r=e.stateNode;if(!r)throw Error(i(169));n?(e=ba(e,t,ha),r.__reactInternalMemoizedMergedChildContext=e,ua(pa),ua(da),ca(da,e)):ua(pa),ca(pa,n)}var xa=null,Ea=null,ka=o.unstable_runWithPriority,Sa=o.unstable_scheduleCallback,$a=o.unstable_cancelCallback,Pa=o.unstable_shouldYield,Oa=o.unstable_requestPaint,Ca=o.unstable_now,ja=o.unstable_getCurrentPriorityLevel,Na=o.unstable_ImmediatePriority,Ia=o.unstable_UserBlockingPriority,Ta=o.unstable_NormalPriority,Aa=o.unstable_LowPriority,Ra=o.unstable_IdlePriority,Da={},Ma=void 0!==Oa?Oa:function(){},Fa=null,za=null,La=!1,Va=Ca(),Ua=1e4>Va?Ca:function(){return Ca()-Va};function qa(){switch(ja()){case Na:return 99;case Ia:return 98;case Ta:return 97;case Aa:return 96;case Ra:return 95;default:throw Error(i(332))}}function Ba(e){switch(e){case 99:return Na;case 98:return Ia;case 97:return Ta;case 96:return Aa;case 95:return Ra;default:throw Error(i(332))}}function Ha(e,t){return e=Ba(e),ka(e,t)}function Wa(e,t,n){return e=Ba(e),Sa(e,t,n)}function Ka(){if(null!==za){var e=za;za=null,$a(e)}Qa()}function Qa(){if(!La&&null!==Fa){La=!0;var e=0;try{var t=Fa;Ha(99,(function(){for(;e<t.length;e++){var n=t[e];do{n=n(!0)}while(null!==n)}})),Fa=null}catch(t){throw null!==Fa&&(Fa=Fa.slice(e+1)),Sa(Na,Ka),t}finally{La=!1}}}var Ga=_.ReactCurrentBatchConfig;function Ja(e,t){if(e&&e.defaultProps){for(var n in t=a({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}var Ya=la(null),Za=null,Xa=null,eo=null;function to(){eo=Xa=Za=null}function no(e){var t=Ya.current;ua(Ya),e.type._context._currentValue=t}function ro(e,t){for(;null!==e;){var n=e.alternate;if((e.childLanes&t)===t){if(null===n||(n.childLanes&t)===t)break;n.childLanes|=t}else e.childLanes|=t,null!==n&&(n.childLanes|=t);e=e.return}}function ao(e,t){Za=e,eo=Xa=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(0!=(e.lanes&t)&&(Di=!0),e.firstContext=null)}function oo(e,t){if(eo!==e&&!1!==t&&0!==t)if("number"==typeof t&&1073741823!==t||(eo=e,t=1073741823),t={context:e,observedBits:t,next:null},null===Xa){if(null===Za)throw Error(i(308));Xa=t,Za.dependencies={lanes:0,firstContext:t,responders:null}}else Xa=Xa.next=t;return e._currentValue}var io=!1;function so(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null},effects:null}}function lo(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function uo(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function co(e,t){if(null!==(e=e.updateQueue)){var n=(e=e.shared).pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}}function fo(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var a=null,o=null;if(null!==(n=n.firstBaseUpdate)){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};null===o?a=o=i:o=o.next=i,n=n.next}while(null!==n);null===o?a=o=t:o=o.next=t}else a=o=t;return n={baseState:r.baseState,firstBaseUpdate:a,lastBaseUpdate:o,shared:r.shared,effects:r.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function po(e,t,n,r){var o=e.updateQueue;io=!1;var i=o.firstBaseUpdate,s=o.lastBaseUpdate,l=o.shared.pending;if(null!==l){o.shared.pending=null;var u=l,c=u.next;u.next=null,null===s?i=c:s.next=c,s=u;var f=e.alternate;if(null!==f){var d=(f=f.updateQueue).lastBaseUpdate;d!==s&&(null===d?f.firstBaseUpdate=c:d.next=c,f.lastBaseUpdate=u)}}if(null!==i){for(d=o.baseState,s=0,f=c=u=null;;){l=i.lane;var p=i.eventTime;if((r&l)===l){null!==f&&(f=f.next={eventTime:p,lane:0,tag:i.tag,payload:i.payload,callback:i.callback,next:null});e:{var h=e,m=i;switch(l=t,p=n,m.tag){case 1:if("function"==typeof(h=m.payload)){d=h.call(p,d,l);break e}d=h;break e;case 3:h.flags=-4097&h.flags|64;case 0:if(null==(l="function"==typeof(h=m.payload)?h.call(p,d,l):h))break e;d=a({},d,l);break e;case 2:io=!0}}null!==i.callback&&(e.flags|=32,null===(l=o.effects)?o.effects=[i]:l.push(i))}else p={eventTime:p,lane:l,tag:i.tag,payload:i.payload,callback:i.callback,next:null},null===f?(c=f=p,u=d):f=f.next=p,s|=l;if(null===(i=i.next)){if(null===(l=o.shared.pending))break;i=l.next,l.next=null,o.lastBaseUpdate=l,o.shared.pending=null}}null===f&&(u=d),o.baseState=u,o.firstBaseUpdate=c,o.lastBaseUpdate=f,zs|=s,e.lanes=s,e.memoizedState=d}}function ho(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var r=e[t],a=r.callback;if(null!==a){if(r.callback=null,r=n,"function"!=typeof a)throw Error(i(191,a));a.call(r)}}}var mo=(new r.Component).refs;function go(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:a({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var vo={isMounted:function(e){return!!(e=e._reactInternals)&&Ge(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=cl(),a=fl(e),o=uo(r,a);o.payload=t,null!=n&&(o.callback=n),co(e,o),dl(e,a,r)},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=cl(),a=fl(e),o=uo(r,a);o.tag=1,o.payload=t,null!=n&&(o.callback=n),co(e,o),dl(e,a,r)},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=cl(),r=fl(e),a=uo(n,r);a.tag=2,null!=t&&(a.callback=t),co(e,a),dl(e,r,n)}};function yo(e,t,n,r,a,o,i){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,o,i):!(t.prototype&&t.prototype.isPureReactComponent&&fr(n,r)&&fr(a,o))}function bo(e,t,n){var r=!1,a=fa,o=t.contextType;return"object"==typeof o&&null!==o?o=oo(o):(a=ga(t)?ha:da.current,o=(r=null!=(r=t.contextTypes))?ma(e,a):fa),t=new t(n,o),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=vo,e.stateNode=t,t._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=a,e.__reactInternalMemoizedMaskedChildContext=o),t}function wo(e,t,n,r){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&vo.enqueueReplaceState(t,t.state,null)}function _o(e,t,n,r){var a=e.stateNode;a.props=n,a.state=e.memoizedState,a.refs=mo,so(e);var o=t.contextType;"object"==typeof o&&null!==o?a.context=oo(o):(o=ga(t)?ha:da.current,a.context=ma(e,o)),po(e,n,a,r),a.state=e.memoizedState,"function"==typeof(o=t.getDerivedStateFromProps)&&(go(e,t,o,n),a.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof a.getSnapshotBeforeUpdate||"function"!=typeof a.UNSAFE_componentWillMount&&"function"!=typeof a.componentWillMount||(t=a.state,"function"==typeof a.componentWillMount&&a.componentWillMount(),"function"==typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount(),t!==a.state&&vo.enqueueReplaceState(a,a.state,null),po(e,n,a,r),a.state=e.memoizedState),"function"==typeof a.componentDidMount&&(e.flags|=4)}var xo=Array.isArray;function Eo(e,t,n){if(null!==(e=n.ref)&&"function"!=typeof e&&"object"!=typeof e){if(n._owner){if(n=n._owner){if(1!==n.tag)throw Error(i(309));var r=n.stateNode}if(!r)throw Error(i(147,e));var a=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===a?t.ref:(t=function(e){var t=r.refs;t===mo&&(t=r.refs={}),null===e?delete t[a]:t[a]=e},t._stringRef=a,t)}if("string"!=typeof e)throw Error(i(284));if(!n._owner)throw Error(i(290,e))}return e}function ko(e,t){if("textarea"!==e.type)throw Error(i(31,"[object Object]"===Object.prototype.toString.call(t)?"object with keys {"+Object.keys(t).join(", ")+"}":t))}function So(e){function t(t,n){if(e){var r=t.lastEffect;null!==r?(r.nextEffect=n,t.lastEffect=n):t.firstEffect=t.lastEffect=n,n.nextEffect=null,n.flags=8}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function a(e,t){return(e=Bl(e,t)).index=0,e.sibling=null,e}function o(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.flags=2,n):r:(t.flags=2,n):n}function s(t){return e&&null===t.alternate&&(t.flags=2),t}function l(e,t,n,r){return null===t||6!==t.tag?((t=Ql(n,e.mode,r)).return=e,t):((t=a(t,n)).return=e,t)}function u(e,t,n,r){return null!==t&&t.elementType===n.type?((r=a(t,n.props)).ref=Eo(e,t,n),r.return=e,r):((r=Hl(n.type,n.key,n.props,null,e.mode,r)).ref=Eo(e,t,n),r.return=e,r)}function c(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Gl(n,e.mode,r)).return=e,t):((t=a(t,n.children||[])).return=e,t)}function f(e,t,n,r,o){return null===t||7!==t.tag?((t=Wl(n,e.mode,r,o)).return=e,t):((t=a(t,n)).return=e,t)}function d(e,t,n){if("string"==typeof t||"number"==typeof t)return(t=Ql(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case x:return(n=Hl(t.type,t.key,t.props,null,e.mode,n)).ref=Eo(e,null,t),n.return=e,n;case E:return(t=Gl(t,e.mode,n)).return=e,t}if(xo(t)||U(t))return(t=Wl(t,e.mode,n,null)).return=e,t;ko(e,t)}return null}function p(e,t,n,r){var a=null!==t?t.key:null;if("string"==typeof n||"number"==typeof n)return null!==a?null:l(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case x:return n.key===a?n.type===k?f(e,t,n.props.children,r,a):u(e,t,n,r):null;case E:return n.key===a?c(e,t,n,r):null}if(xo(n)||U(n))return null!==a?null:f(e,t,n,r,null);ko(e,n)}return null}function h(e,t,n,r,a){if("string"==typeof r||"number"==typeof r)return l(t,e=e.get(n)||null,""+r,a);if("object"==typeof r&&null!==r){switch(r.$$typeof){case x:return e=e.get(null===r.key?n:r.key)||null,r.type===k?f(t,e,r.props.children,a,r.key):u(t,e,r,a);case E:return c(t,e=e.get(null===r.key?n:r.key)||null,r,a)}if(xo(r)||U(r))return f(t,e=e.get(n)||null,r,a,null);ko(t,r)}return null}function m(a,i,s,l){for(var u=null,c=null,f=i,m=i=0,g=null;null!==f&&m<s.length;m++){f.index>m?(g=f,f=null):g=f.sibling;var v=p(a,f,s[m],l);if(null===v){null===f&&(f=g);break}e&&f&&null===v.alternate&&t(a,f),i=o(v,i,m),null===c?u=v:c.sibling=v,c=v,f=g}if(m===s.length)return n(a,f),u;if(null===f){for(;m<s.length;m++)null!==(f=d(a,s[m],l))&&(i=o(f,i,m),null===c?u=f:c.sibling=f,c=f);return u}for(f=r(a,f);m<s.length;m++)null!==(g=h(f,a,m,s[m],l))&&(e&&null!==g.alternate&&f.delete(null===g.key?m:g.key),i=o(g,i,m),null===c?u=g:c.sibling=g,c=g);return e&&f.forEach((function(e){return t(a,e)})),u}function g(a,s,l,u){var c=U(l);if("function"!=typeof c)throw Error(i(150));if(null==(l=c.call(l)))throw Error(i(151));for(var f=c=null,m=s,g=s=0,v=null,y=l.next();null!==m&&!y.done;g++,y=l.next()){m.index>g?(v=m,m=null):v=m.sibling;var b=p(a,m,y.value,u);if(null===b){null===m&&(m=v);break}e&&m&&null===b.alternate&&t(a,m),s=o(b,s,g),null===f?c=b:f.sibling=b,f=b,m=v}if(y.done)return n(a,m),c;if(null===m){for(;!y.done;g++,y=l.next())null!==(y=d(a,y.value,u))&&(s=o(y,s,g),null===f?c=y:f.sibling=y,f=y);return c}for(m=r(a,m);!y.done;g++,y=l.next())null!==(y=h(m,a,g,y.value,u))&&(e&&null!==y.alternate&&m.delete(null===y.key?g:y.key),s=o(y,s,g),null===f?c=y:f.sibling=y,f=y);return e&&m.forEach((function(e){return t(a,e)})),c}return function(e,r,o,l){var u="object"==typeof o&&null!==o&&o.type===k&&null===o.key;u&&(o=o.props.children);var c="object"==typeof o&&null!==o;if(c)switch(o.$$typeof){case x:e:{for(c=o.key,u=r;null!==u;){if(u.key===c){if(7===u.tag){if(o.type===k){n(e,u.sibling),(r=a(u,o.props.children)).return=e,e=r;break e}}else if(u.elementType===o.type){n(e,u.sibling),(r=a(u,o.props)).ref=Eo(e,u,o),r.return=e,e=r;break e}n(e,u);break}t(e,u),u=u.sibling}o.type===k?((r=Wl(o.props.children,e.mode,l,o.key)).return=e,e=r):((l=Hl(o.type,o.key,o.props,null,e.mode,l)).ref=Eo(e,r,o),l.return=e,e=l)}return s(e);case E:e:{for(u=o.key;null!==r;){if(r.key===u){if(4===r.tag&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),(r=a(r,o.children||[])).return=e,e=r;break e}n(e,r);break}t(e,r),r=r.sibling}(r=Gl(o,e.mode,l)).return=e,e=r}return s(e)}if("string"==typeof o||"number"==typeof o)return o=""+o,null!==r&&6===r.tag?(n(e,r.sibling),(r=a(r,o)).return=e,e=r):(n(e,r),(r=Ql(o,e.mode,l)).return=e,e=r),s(e);if(xo(o))return m(e,r,o,l);if(U(o))return g(e,r,o,l);if(c&&ko(e,o),void 0===o&&!u)switch(e.tag){case 1:case 22:case 0:case 11:case 15:throw Error(i(152,K(e.type)||"Component"))}return n(e,r)}}var $o=So(!0),Po=So(!1),Oo={},Co=la(Oo),jo=la(Oo),No=la(Oo);function Io(e){if(e===Oo)throw Error(i(174));return e}function To(e,t){switch(ca(No,t),ca(jo,e),ca(Co,Oo),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:pe(null,"");break;default:t=pe(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}ua(Co),ca(Co,t)}function Ao(){ua(Co),ua(jo),ua(No)}function Ro(e){Io(No.current);var t=Io(Co.current),n=pe(t,e.type);t!==n&&(ca(jo,e),ca(Co,n))}function Do(e){jo.current===e&&(ua(Co),ua(jo))}var Mo=la(0);function Fo(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!=(64&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var zo=null,Lo=null,Vo=!1;function Uo(e,t){var n=Ul(5,null,null,0);n.elementType="DELETED",n.type="DELETED",n.stateNode=t,n.return=e,n.flags=8,null!==e.lastEffect?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function qo(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,!0);default:return!1}}function Bo(e){if(Vo){var t=Lo;if(t){var n=t;if(!qo(e,t)){if(!(t=Kr(n.nextSibling))||!qo(e,t))return e.flags=-1025&e.flags|2,Vo=!1,void(zo=e);Uo(zo,n)}zo=e,Lo=Kr(t.firstChild)}else e.flags=-1025&e.flags|2,Vo=!1,zo=e}}function Ho(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;zo=e}function Wo(e){if(e!==zo)return!1;if(!Vo)return Ho(e),Vo=!0,!1;var t=e.type;if(5!==e.tag||"head"!==t&&"body"!==t&&!qr(t,e.memoizedProps))for(t=Lo;t;)Uo(e,t),t=Kr(t.nextSibling);if(Ho(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(i(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){Lo=Kr(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}Lo=null}}else Lo=zo?Kr(e.stateNode.nextSibling):null;return!0}function Ko(){Lo=zo=null,Vo=!1}var Qo=[];function Go(){for(var e=0;e<Qo.length;e++)Qo[e]._workInProgressVersionPrimary=null;Qo.length=0}var Jo=_.ReactCurrentDispatcher,Yo=_.ReactCurrentBatchConfig,Zo=0,Xo=null,ei=null,ti=null,ni=!1,ri=!1;function ai(){throw Error(i(321))}function oi(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!ur(e[n],t[n]))return!1;return!0}function ii(e,t,n,r,a,o){if(Zo=o,Xo=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,Jo.current=null===e||null===e.memoizedState?Ii:Ti,e=n(r,a),ri){o=0;do{if(ri=!1,!(25>o))throw Error(i(301));o+=1,ti=ei=null,t.updateQueue=null,Jo.current=Ai,e=n(r,a)}while(ri)}if(Jo.current=Ni,t=null!==ei&&null!==ei.next,Zo=0,ti=ei=Xo=null,ni=!1,t)throw Error(i(300));return e}function si(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===ti?Xo.memoizedState=ti=e:ti=ti.next=e,ti}function li(){if(null===ei){var e=Xo.alternate;e=null!==e?e.memoizedState:null}else e=ei.next;var t=null===ti?Xo.memoizedState:ti.next;if(null!==t)ti=t,ei=e;else{if(null===e)throw Error(i(310));e={memoizedState:(ei=e).memoizedState,baseState:ei.baseState,baseQueue:ei.baseQueue,queue:ei.queue,next:null},null===ti?Xo.memoizedState=ti=e:ti=ti.next=e}return ti}function ui(e,t){return"function"==typeof t?t(e):t}function ci(e){var t=li(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=ei,a=r.baseQueue,o=n.pending;if(null!==o){if(null!==a){var s=a.next;a.next=o.next,o.next=s}r.baseQueue=a=o,n.pending=null}if(null!==a){a=a.next,r=r.baseState;var l=s=o=null,u=a;do{var c=u.lane;if((Zo&c)===c)null!==l&&(l=l.next={lane:0,action:u.action,eagerReducer:u.eagerReducer,eagerState:u.eagerState,next:null}),r=u.eagerReducer===e?u.eagerState:e(r,u.action);else{var f={lane:c,action:u.action,eagerReducer:u.eagerReducer,eagerState:u.eagerState,next:null};null===l?(s=l=f,o=r):l=l.next=f,Xo.lanes|=c,zs|=c}u=u.next}while(null!==u&&u!==a);null===l?o=r:l.next=s,ur(r,t.memoizedState)||(Di=!0),t.memoizedState=r,t.baseState=o,t.baseQueue=l,n.lastRenderedState=r}return[t.memoizedState,n.dispatch]}function fi(e){var t=li(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=n.dispatch,a=n.pending,o=t.memoizedState;if(null!==a){n.pending=null;var s=a=a.next;do{o=e(o,s.action),s=s.next}while(s!==a);ur(o,t.memoizedState)||(Di=!0),t.memoizedState=o,null===t.baseQueue&&(t.baseState=o),n.lastRenderedState=o}return[o,r]}function di(e,t,n){var r=t._getVersion;r=r(t._source);var a=t._workInProgressVersionPrimary;if(null!==a?e=a===r:(e=e.mutableReadLanes,(e=(Zo&e)===e)&&(t._workInProgressVersionPrimary=r,Qo.push(t))),e)return n(t._source);throw Qo.push(t),Error(i(350))}function pi(e,t,n,r){var a=Ns;if(null===a)throw Error(i(349));var o=t._getVersion,s=o(t._source),l=Jo.current,u=l.useState((function(){return di(a,t,n)})),c=u[1],f=u[0];u=ti;var d=e.memoizedState,p=d.refs,h=p.getSnapshot,m=d.source;d=d.subscribe;var g=Xo;return e.memoizedState={refs:p,source:t,subscribe:r},l.useEffect((function(){p.getSnapshot=n,p.setSnapshot=c;var e=o(t._source);if(!ur(s,e)){e=n(t._source),ur(f,e)||(c(e),e=fl(g),a.mutableReadLanes|=e&a.pendingLanes),e=a.mutableReadLanes,a.entangledLanes|=e;for(var r=a.entanglements,i=e;0<i;){var l=31-qt(i),u=1<<l;r[l]|=e,i&=~u}}}),[n,t,r]),l.useEffect((function(){return r(t._source,(function(){var e=p.getSnapshot,n=p.setSnapshot;try{n(e(t._source));var r=fl(g);a.mutableReadLanes|=r&a.pendingLanes}catch(e){n((function(){throw e}))}}))}),[t,r]),ur(h,n)&&ur(m,t)&&ur(d,r)||((e={pending:null,dispatch:null,lastRenderedReducer:ui,lastRenderedState:f}).dispatch=c=ji.bind(null,Xo,e),u.queue=e,u.baseQueue=null,f=di(a,t,n),u.memoizedState=u.baseState=f),f}function hi(e,t,n){return pi(li(),e,t,n)}function mi(e){var t=si();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=(e=t.queue={pending:null,dispatch:null,lastRenderedReducer:ui,lastRenderedState:e}).dispatch=ji.bind(null,Xo,e),[t.memoizedState,e]}function gi(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=Xo.updateQueue)?(t={lastEffect:null},Xo.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function vi(e){return e={current:e},si().memoizedState=e}function yi(){return li().memoizedState}function bi(e,t,n,r){var a=si();Xo.flags|=e,a.memoizedState=gi(1|t,n,void 0,void 0===r?null:r)}function wi(e,t,n,r){var a=li();r=void 0===r?null:r;var o=void 0;if(null!==ei){var i=ei.memoizedState;if(o=i.destroy,null!==r&&oi(r,i.deps))return void gi(t,n,o,r)}Xo.flags|=e,a.memoizedState=gi(1|t,n,o,r)}function _i(e,t){return bi(516,4,e,t)}function xi(e,t){return wi(516,4,e,t)}function Ei(e,t){return wi(4,2,e,t)}function ki(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function Si(e,t,n){return n=null!=n?n.concat([e]):null,wi(4,2,ki.bind(null,t,e),n)}function $i(){}function Pi(e,t){var n=li();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&oi(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Oi(e,t){var n=li();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&oi(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Ci(e,t){var n=qa();Ha(98>n?98:n,(function(){e(!0)})),Ha(97<n?97:n,(function(){var n=Yo.transition;Yo.transition=1;try{e(!1),t()}finally{Yo.transition=n}}))}function ji(e,t,n){var r=cl(),a=fl(e),o={lane:a,action:n,eagerReducer:null,eagerState:null,next:null},i=t.pending;if(null===i?o.next=o:(o.next=i.next,i.next=o),t.pending=o,i=e.alternate,e===Xo||null!==i&&i===Xo)ri=ni=!0;else{if(0===e.lanes&&(null===i||0===i.lanes)&&null!==(i=t.lastRenderedReducer))try{var s=t.lastRenderedState,l=i(s,n);if(o.eagerReducer=i,o.eagerState=l,ur(l,s))return}catch(e){}dl(e,a,r)}}var Ni={readContext:oo,useCallback:ai,useContext:ai,useEffect:ai,useImperativeHandle:ai,useLayoutEffect:ai,useMemo:ai,useReducer:ai,useRef:ai,useState:ai,useDebugValue:ai,useDeferredValue:ai,useTransition:ai,useMutableSource:ai,useOpaqueIdentifier:ai,unstable_isNewReconciler:!1},Ii={readContext:oo,useCallback:function(e,t){return si().memoizedState=[e,void 0===t?null:t],e},useContext:oo,useEffect:_i,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,bi(4,2,ki.bind(null,t,e),n)},useLayoutEffect:function(e,t){return bi(4,2,e,t)},useMemo:function(e,t){var n=si();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=si();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e=(e=r.queue={pending:null,dispatch:null,lastRenderedReducer:e,lastRenderedState:t}).dispatch=ji.bind(null,Xo,e),[r.memoizedState,e]},useRef:vi,useState:mi,useDebugValue:$i,useDeferredValue:function(e){var t=mi(e),n=t[0],r=t[1];return _i((function(){var t=Yo.transition;Yo.transition=1;try{r(e)}finally{Yo.transition=t}}),[e]),n},useTransition:function(){var e=mi(!1),t=e[0];return vi(e=Ci.bind(null,e[1])),[e,t]},useMutableSource:function(e,t,n){var r=si();return r.memoizedState={refs:{getSnapshot:t,setSnapshot:null},source:e,subscribe:n},pi(r,e,t,n)},useOpaqueIdentifier:function(){if(Vo){var e=!1,t=function(e){return{$$typeof:R,toString:e,valueOf:e}}((function(){throw e||(e=!0,n("r:"+(Gr++).toString(36))),Error(i(355))})),n=mi(t)[1];return 0==(2&Xo.mode)&&(Xo.flags|=516,gi(5,(function(){n("r:"+(Gr++).toString(36))}),void 0,null)),t}return mi(t="r:"+(Gr++).toString(36)),t},unstable_isNewReconciler:!1},Ti={readContext:oo,useCallback:Pi,useContext:oo,useEffect:xi,useImperativeHandle:Si,useLayoutEffect:Ei,useMemo:Oi,useReducer:ci,useRef:yi,useState:function(){return ci(ui)},useDebugValue:$i,useDeferredValue:function(e){var t=ci(ui),n=t[0],r=t[1];return xi((function(){var t=Yo.transition;Yo.transition=1;try{r(e)}finally{Yo.transition=t}}),[e]),n},useTransition:function(){var e=ci(ui)[0];return[yi().current,e]},useMutableSource:hi,useOpaqueIdentifier:function(){return ci(ui)[0]},unstable_isNewReconciler:!1},Ai={readContext:oo,useCallback:Pi,useContext:oo,useEffect:xi,useImperativeHandle:Si,useLayoutEffect:Ei,useMemo:Oi,useReducer:fi,useRef:yi,useState:function(){return fi(ui)},useDebugValue:$i,useDeferredValue:function(e){var t=fi(ui),n=t[0],r=t[1];return xi((function(){var t=Yo.transition;Yo.transition=1;try{r(e)}finally{Yo.transition=t}}),[e]),n},useTransition:function(){var e=fi(ui)[0];return[yi().current,e]},useMutableSource:hi,useOpaqueIdentifier:function(){return fi(ui)[0]},unstable_isNewReconciler:!1},Ri=_.ReactCurrentOwner,Di=!1;function Mi(e,t,n,r){t.child=null===e?Po(t,null,n,r):$o(t,e.child,n,r)}function Fi(e,t,n,r,a){n=n.render;var o=t.ref;return ao(t,a),r=ii(e,t,n,r,o,a),null===e||Di?(t.flags|=1,Mi(e,t,r,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~a,rs(e,t,a))}function zi(e,t,n,r,a,o){if(null===e){var i=n.type;return"function"!=typeof i||ql(i)||void 0!==i.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Hl(n.type,null,r,t,t.mode,o)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=i,Li(e,t,i,r,a,o))}return i=e.child,0==(a&o)&&(a=i.memoizedProps,(n=null!==(n=n.compare)?n:fr)(a,r)&&e.ref===t.ref)?rs(e,t,o):(t.flags|=1,(e=Bl(i,r)).ref=t.ref,e.return=t,t.child=e)}function Li(e,t,n,r,a,o){if(null!==e&&fr(e.memoizedProps,r)&&e.ref===t.ref){if(Di=!1,0==(o&a))return t.lanes=e.lanes,rs(e,t,o);0!=(16384&e.flags)&&(Di=!0)}return qi(e,t,n,r,o)}function Vi(e,t,n){var r=t.pendingProps,a=r.children,o=null!==e?e.memoizedState:null;if("hidden"===r.mode||"unstable-defer-without-hiding"===r.mode)if(0==(4&t.mode))t.memoizedState={baseLanes:0},wl(0,n);else{if(0==(1073741824&n))return e=null!==o?o.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e},wl(0,e),null;t.memoizedState={baseLanes:0},wl(0,null!==o?o.baseLanes:n)}else null!==o?(r=o.baseLanes|n,t.memoizedState=null):r=n,wl(0,r);return Mi(e,t,a,n),t.child}function Ui(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=128)}function qi(e,t,n,r,a){var o=ga(n)?ha:da.current;return o=ma(t,o),ao(t,a),n=ii(e,t,n,r,o,a),null===e||Di?(t.flags|=1,Mi(e,t,n,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~a,rs(e,t,a))}function Bi(e,t,n,r,a){if(ga(n)){var o=!0;wa(t)}else o=!1;if(ao(t,a),null===t.stateNode)null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),bo(t,n,r),_o(t,n,r,a),r=!0;else if(null===e){var i=t.stateNode,s=t.memoizedProps;i.props=s;var l=i.context,u=n.contextType;u="object"==typeof u&&null!==u?oo(u):ma(t,u=ga(n)?ha:da.current);var c=n.getDerivedStateFromProps,f="function"==typeof c||"function"==typeof i.getSnapshotBeforeUpdate;f||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(s!==r||l!==u)&&wo(t,i,r,u),io=!1;var d=t.memoizedState;i.state=d,po(t,r,i,a),l=t.memoizedState,s!==r||d!==l||pa.current||io?("function"==typeof c&&(go(t,n,c,r),l=t.memoizedState),(s=io||yo(t,n,s,r,d,l,u))?(f||"function"!=typeof i.UNSAFE_componentWillMount&&"function"!=typeof i.componentWillMount||("function"==typeof i.componentWillMount&&i.componentWillMount(),"function"==typeof i.UNSAFE_componentWillMount&&i.UNSAFE_componentWillMount()),"function"==typeof i.componentDidMount&&(t.flags|=4)):("function"==typeof i.componentDidMount&&(t.flags|=4),t.memoizedProps=r,t.memoizedState=l),i.props=r,i.state=l,i.context=u,r=s):("function"==typeof i.componentDidMount&&(t.flags|=4),r=!1)}else{i=t.stateNode,lo(e,t),s=t.memoizedProps,u=t.type===t.elementType?s:Ja(t.type,s),i.props=u,f=t.pendingProps,d=i.context,l="object"==typeof(l=n.contextType)&&null!==l?oo(l):ma(t,l=ga(n)?ha:da.current);var p=n.getDerivedStateFromProps;(c="function"==typeof p||"function"==typeof i.getSnapshotBeforeUpdate)||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(s!==f||d!==l)&&wo(t,i,r,l),io=!1,d=t.memoizedState,i.state=d,po(t,r,i,a);var h=t.memoizedState;s!==f||d!==h||pa.current||io?("function"==typeof p&&(go(t,n,p,r),h=t.memoizedState),(u=io||yo(t,n,u,r,d,h,l))?(c||"function"!=typeof i.UNSAFE_componentWillUpdate&&"function"!=typeof i.componentWillUpdate||("function"==typeof i.componentWillUpdate&&i.componentWillUpdate(r,h,l),"function"==typeof i.UNSAFE_componentWillUpdate&&i.UNSAFE_componentWillUpdate(r,h,l)),"function"==typeof i.componentDidUpdate&&(t.flags|=4),"function"==typeof i.getSnapshotBeforeUpdate&&(t.flags|=256)):("function"!=typeof i.componentDidUpdate||s===e.memoizedProps&&d===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||s===e.memoizedProps&&d===e.memoizedState||(t.flags|=256),t.memoizedProps=r,t.memoizedState=h),i.props=r,i.state=h,i.context=l,r=u):("function"!=typeof i.componentDidUpdate||s===e.memoizedProps&&d===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||s===e.memoizedProps&&d===e.memoizedState||(t.flags|=256),r=!1)}return Hi(e,t,n,r,o,a)}function Hi(e,t,n,r,a,o){Ui(e,t);var i=0!=(64&t.flags);if(!r&&!i)return a&&_a(t,n,!1),rs(e,t,o);r=t.stateNode,Ri.current=t;var s=i&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&i?(t.child=$o(t,e.child,null,o),t.child=$o(t,null,s,o)):Mi(e,t,s,o),t.memoizedState=r.state,a&&_a(t,n,!0),t.child}function Wi(e){var t=e.stateNode;t.pendingContext?ya(0,t.pendingContext,t.pendingContext!==t.context):t.context&&ya(0,t.context,!1),To(e,t.containerInfo)}var Ki,Qi,Gi,Ji,Yi={dehydrated:null,retryLane:0};function Zi(e,t,n){var r,a=t.pendingProps,o=Mo.current,i=!1;return(r=0!=(64&t.flags))||(r=(null===e||null!==e.memoizedState)&&0!=(2&o)),r?(i=!0,t.flags&=-65):null!==e&&null===e.memoizedState||void 0===a.fallback||!0===a.unstable_avoidThisFallback||(o|=1),ca(Mo,1&o),null===e?(void 0!==a.fallback&&Bo(t),e=a.children,o=a.fallback,i?(e=Xi(t,e,o,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Yi,e):"number"==typeof a.unstable_expectedLoadTime?(e=Xi(t,e,o,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Yi,t.lanes=33554432,e):((n=Kl({mode:"visible",children:e},t.mode,n,null)).return=t,t.child=n)):(e.memoizedState,i?(a=function(e,t,n,r,a){var o=t.mode,i=e.child;e=i.sibling;var s={mode:"hidden",children:n};return 0==(2&o)&&t.child!==i?((n=t.child).childLanes=0,n.pendingProps=s,null!==(i=n.lastEffect)?(t.firstEffect=n.firstEffect,t.lastEffect=i,i.nextEffect=null):t.firstEffect=t.lastEffect=null):n=Bl(i,s),null!==e?r=Bl(e,r):(r=Wl(r,o,a,null)).flags|=2,r.return=t,n.return=t,n.sibling=r,t.child=n,r}(e,t,a.children,a.fallback,n),i=t.child,o=e.child.memoizedState,i.memoizedState=null===o?{baseLanes:n}:{baseLanes:o.baseLanes|n},i.childLanes=e.childLanes&~n,t.memoizedState=Yi,a):(n=function(e,t,n,r){var a=e.child;return e=a.sibling,n=Bl(a,{mode:"visible",children:n}),0==(2&t.mode)&&(n.lanes=r),n.return=t,n.sibling=null,null!==e&&(e.nextEffect=null,e.flags=8,t.firstEffect=t.lastEffect=e),t.child=n}(e,t,a.children,n),t.memoizedState=null,n))}function Xi(e,t,n,r){var a=e.mode,o=e.child;return t={mode:"hidden",children:t},0==(2&a)&&null!==o?(o.childLanes=0,o.pendingProps=t):o=Kl(t,a,0,null),n=Wl(n,a,r,null),o.return=e,n.return=e,o.sibling=n,e.child=o,n}function es(e,t){e.lanes|=t;var n=e.alternate;null!==n&&(n.lanes|=t),ro(e.return,t)}function ts(e,t,n,r,a,o){var i=e.memoizedState;null===i?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:a,lastEffect:o}:(i.isBackwards=t,i.rendering=null,i.renderingStartTime=0,i.last=r,i.tail=n,i.tailMode=a,i.lastEffect=o)}function ns(e,t,n){var r=t.pendingProps,a=r.revealOrder,o=r.tail;if(Mi(e,t,r.children,n),0!=(2&(r=Mo.current)))r=1&r|2,t.flags|=64;else{if(null!==e&&0!=(64&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&es(e,n);else if(19===e.tag)es(e,n);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(ca(Mo,r),0==(2&t.mode))t.memoizedState=null;else switch(a){case"forwards":for(n=t.child,a=null;null!==n;)null!==(e=n.alternate)&&null===Fo(e)&&(a=n),n=n.sibling;null===(n=a)?(a=t.child,t.child=null):(a=n.sibling,n.sibling=null),ts(t,!1,a,n,o,t.lastEffect);break;case"backwards":for(n=null,a=t.child,t.child=null;null!==a;){if(null!==(e=a.alternate)&&null===Fo(e)){t.child=a;break}e=a.sibling,a.sibling=n,n=a,a=e}ts(t,!0,n,null,o,t.lastEffect);break;case"together":ts(t,!1,null,null,void 0,t.lastEffect);break;default:t.memoizedState=null}return t.child}function rs(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),zs|=t.lanes,0!=(n&t.childLanes)){if(null!==e&&t.child!==e.child)throw Error(i(153));if(null!==t.child){for(n=Bl(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Bl(e,e.pendingProps)).return=t;n.sibling=null}return t.child}return null}function as(e,t){if(!Vo)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function os(e,t,n){var r=t.pendingProps;switch(t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:case 17:return ga(t.type)&&va(),null;case 3:return Ao(),ua(pa),ua(da),Go(),(r=t.stateNode).pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(Wo(t)?t.flags|=4:r.hydrate||(t.flags|=256)),Qi(t),null;case 5:Do(t);var o=Io(No.current);if(n=t.type,null!==e&&null!=t.stateNode)Gi(e,t,n,r,o),e.ref!==t.ref&&(t.flags|=128);else{if(!r){if(null===t.stateNode)throw Error(i(166));return null}if(e=Io(Co.current),Wo(t)){r=t.stateNode,n=t.type;var s=t.memoizedProps;switch(r[Yr]=t,r[Zr]=s,n){case"dialog":Cr("cancel",r),Cr("close",r);break;case"iframe":case"object":case"embed":Cr("load",r);break;case"video":case"audio":for(e=0;e<Sr.length;e++)Cr(Sr[e],r);break;case"source":Cr("error",r);break;case"img":case"image":case"link":Cr("error",r),Cr("load",r);break;case"details":Cr("toggle",r);break;case"input":ee(r,s),Cr("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!s.multiple},Cr("invalid",r);break;case"textarea":le(r,s),Cr("invalid",r)}for(var u in Ee(n,s),e=null,s)s.hasOwnProperty(u)&&(o=s[u],"children"===u?"string"==typeof o?r.textContent!==o&&(e=["children",o]):"number"==typeof o&&r.textContent!==""+o&&(e=["children",""+o]):l.hasOwnProperty(u)&&null!=o&&"onScroll"===u&&Cr("scroll",r));switch(n){case"input":J(r),re(r,s,!0);break;case"textarea":J(r),ce(r);break;case"select":case"option":break;default:"function"==typeof s.onClick&&(r.onclick=zr)}r=e,t.updateQueue=r,null!==r&&(t.flags|=4)}else{switch(u=9===o.nodeType?o:o.ownerDocument,e===fe.html&&(e=de(n)),e===fe.html?"script"===n?((e=u.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"==typeof r.is?e=u.createElement(n,{is:r.is}):(e=u.createElement(n),"select"===n&&(u=e,r.multiple?u.multiple=!0:r.size&&(u.size=r.size))):e=u.createElementNS(e,n),e[Yr]=t,e[Zr]=r,Ki(e,t,!1,!1),t.stateNode=e,u=ke(n,r),n){case"dialog":Cr("cancel",e),Cr("close",e),o=r;break;case"iframe":case"object":case"embed":Cr("load",e),o=r;break;case"video":case"audio":for(o=0;o<Sr.length;o++)Cr(Sr[o],e);o=r;break;case"source":Cr("error",e),o=r;break;case"img":case"image":case"link":Cr("error",e),Cr("load",e),o=r;break;case"details":Cr("toggle",e),o=r;break;case"input":ee(e,r),o=X(e,r),Cr("invalid",e);break;case"option":o=oe(e,r);break;case"select":e._wrapperState={wasMultiple:!!r.multiple},o=a({},r,{value:void 0}),Cr("invalid",e);break;case"textarea":le(e,r),o=se(e,r),Cr("invalid",e);break;default:o=r}Ee(n,o);var c=o;for(s in c)if(c.hasOwnProperty(s)){var f=c[s];"style"===s?_e(e,f):"dangerouslySetInnerHTML"===s?null!=(f=f?f.__html:void 0)&&ge(e,f):"children"===s?"string"==typeof f?("textarea"!==n||""!==f)&&ve(e,f):"number"==typeof f&&ve(e,""+f):"suppressContentEditableWarning"!==s&&"suppressHydrationWarning"!==s&&"autoFocus"!==s&&(l.hasOwnProperty(s)?null!=f&&"onScroll"===s&&Cr("scroll",e):null!=f&&w(e,s,f,u))}switch(n){case"input":J(e),re(e,r,!1);break;case"textarea":J(e),ce(e);break;case"option":null!=r.value&&e.setAttribute("value",""+Q(r.value));break;case"select":e.multiple=!!r.multiple,null!=(s=r.value)?ie(e,!!r.multiple,s,!1):null!=r.defaultValue&&ie(e,!!r.multiple,r.defaultValue,!0);break;default:"function"==typeof o.onClick&&(e.onclick=zr)}Ur(n,r)&&(t.flags|=4)}null!==t.ref&&(t.flags|=128)}return null;case 6:if(e&&null!=t.stateNode)Ji(e,t,e.memoizedProps,r);else{if("string"!=typeof r&&null===t.stateNode)throw Error(i(166));n=Io(No.current),Io(Co.current),Wo(t)?(r=t.stateNode,n=t.memoizedProps,r[Yr]=t,r.nodeValue!==n&&(t.flags|=4)):((r=(9===n.nodeType?n:n.ownerDocument).createTextNode(r))[Yr]=t,t.stateNode=r)}return null;case 13:return ua(Mo),r=t.memoizedState,0!=(64&t.flags)?(t.lanes=n,t):(r=null!==r,n=!1,null===e?void 0!==t.memoizedProps.fallback&&Wo(t):n=null!==e.memoizedState,r&&!n&&0!=(2&t.mode)&&(null===e&&!0!==t.memoizedProps.unstable_avoidThisFallback||0!=(1&Mo.current)?0===Ds&&(Ds=3):(0!==Ds&&3!==Ds||(Ds=4),null===Ns||0==(134217727&zs)&&0==(134217727&Ls)||gl(Ns,Ts))),(r||n)&&(t.flags|=4),null);case 4:return Ao(),Qi(t),null===e&&Nr(t.stateNode.containerInfo),null;case 10:return no(t),null;case 19:if(ua(Mo),null===(r=t.memoizedState))return null;if(s=0!=(64&t.flags),null===(u=r.rendering))if(s)as(r,!1);else{if(0!==Ds||null!==e&&0!=(64&e.flags))for(e=t.child;null!==e;){if(null!==(u=Fo(e))){for(t.flags|=64,as(r,!1),null!==(s=u.updateQueue)&&(t.updateQueue=s,t.flags|=4),null===r.lastEffect&&(t.firstEffect=null),t.lastEffect=r.lastEffect,r=n,n=t.child;null!==n;)e=r,(s=n).flags&=2,s.nextEffect=null,s.firstEffect=null,s.lastEffect=null,null===(u=s.alternate)?(s.childLanes=0,s.lanes=e,s.child=null,s.memoizedProps=null,s.memoizedState=null,s.updateQueue=null,s.dependencies=null,s.stateNode=null):(s.childLanes=u.childLanes,s.lanes=u.lanes,s.child=u.child,s.memoizedProps=u.memoizedProps,s.memoizedState=u.memoizedState,s.updateQueue=u.updateQueue,s.type=u.type,e=u.dependencies,s.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return ca(Mo,1&Mo.current|2),t.child}e=e.sibling}null!==r.tail&&Ua()>Bs&&(t.flags|=64,s=!0,as(r,!1),t.lanes=33554432)}else{if(!s)if(null!==(e=Fo(u))){if(t.flags|=64,s=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),as(r,!0),null===r.tail&&"hidden"===r.tailMode&&!u.alternate&&!Vo)return null!==(t=t.lastEffect=r.lastEffect)&&(t.nextEffect=null),null}else 2*Ua()-r.renderingStartTime>Bs&&1073741824!==n&&(t.flags|=64,s=!0,as(r,!1),t.lanes=33554432);r.isBackwards?(u.sibling=t.child,t.child=u):(null!==(n=r.last)?n.sibling=u:t.child=u,r.last=u)}return null!==r.tail?(n=r.tail,r.rendering=n,r.tail=n.sibling,r.lastEffect=t.lastEffect,r.renderingStartTime=Ua(),n.sibling=null,t=Mo.current,ca(Mo,s?1&t|2:1&t),n):null;case 23:case 24:return _l(),null!==e&&null!==e.memoizedState!=(null!==t.memoizedState)&&"unstable-defer-without-hiding"!==r.mode&&(t.flags|=4),null}throw Error(i(156,t.tag))}function is(e){switch(e.tag){case 1:ga(e.type)&&va();var t=e.flags;return 4096&t?(e.flags=-4097&t|64,e):null;case 3:if(Ao(),ua(pa),ua(da),Go(),0!=(64&(t=e.flags)))throw Error(i(285));return e.flags=-4097&t|64,e;case 5:return Do(e),null;case 13:return ua(Mo),4096&(t=e.flags)?(e.flags=-4097&t|64,e):null;case 19:return ua(Mo),null;case 4:return Ao(),null;case 10:return no(e),null;case 23:case 24:return _l(),null;default:return null}}function ss(e,t){try{var n="",r=t;do{n+=W(r),r=r.return}while(r);var a=n}catch(e){a="\nError generating stack: "+e.message+"\n"+e.stack}return{value:e,source:t,stack:a}}function ls(e,t){try{console.error(t.value)}catch(e){setTimeout((function(){throw e}))}}Ki=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Qi=function(){},Gi=function(e,t,n,r){var o=e.memoizedProps;if(o!==r){e=t.stateNode,Io(Co.current);var i,s=null;switch(n){case"input":o=X(e,o),r=X(e,r),s=[];break;case"option":o=oe(e,o),r=oe(e,r),s=[];break;case"select":o=a({},o,{value:void 0}),r=a({},r,{value:void 0}),s=[];break;case"textarea":o=se(e,o),r=se(e,r),s=[];break;default:"function"!=typeof o.onClick&&"function"==typeof r.onClick&&(e.onclick=zr)}for(f in Ee(n,r),n=null,o)if(!r.hasOwnProperty(f)&&o.hasOwnProperty(f)&&null!=o[f])if("style"===f){var u=o[f];for(i in u)u.hasOwnProperty(i)&&(n||(n={}),n[i]="")}else"dangerouslySetInnerHTML"!==f&&"children"!==f&&"suppressContentEditableWarning"!==f&&"suppressHydrationWarning"!==f&&"autoFocus"!==f&&(l.hasOwnProperty(f)?s||(s=[]):(s=s||[]).push(f,null));for(f in r){var c=r[f];if(u=null!=o?o[f]:void 0,r.hasOwnProperty(f)&&c!==u&&(null!=c||null!=u))if("style"===f)if(u){for(i in u)!u.hasOwnProperty(i)||c&&c.hasOwnProperty(i)||(n||(n={}),n[i]="");for(i in c)c.hasOwnProperty(i)&&u[i]!==c[i]&&(n||(n={}),n[i]=c[i])}else n||(s||(s=[]),s.push(f,n)),n=c;else"dangerouslySetInnerHTML"===f?(c=c?c.__html:void 0,u=u?u.__html:void 0,null!=c&&u!==c&&(s=s||[]).push(f,c)):"children"===f?"string"!=typeof c&&"number"!=typeof c||(s=s||[]).push(f,""+c):"suppressContentEditableWarning"!==f&&"suppressHydrationWarning"!==f&&(l.hasOwnProperty(f)?(null!=c&&"onScroll"===f&&Cr("scroll",e),s||u===c||(s=[])):"object"==typeof c&&null!==c&&c.$$typeof===R?c.toString():(s=s||[]).push(f,c))}n&&(s=s||[]).push("style",n);var f=s;(t.updateQueue=f)&&(t.flags|=4)}},Ji=function(e,t,n,r){n!==r&&(t.flags|=4)};var us="function"==typeof WeakMap?WeakMap:Map;function cs(e,t,n){(n=uo(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Qs||(Qs=!0,Gs=r),ls(0,t)},n}function fs(e,t,n){(n=uo(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var a=t.value;n.payload=function(){return ls(0,t),r(a)}}var o=e.stateNode;return null!==o&&"function"==typeof o.componentDidCatch&&(n.callback=function(){"function"!=typeof r&&(null===Js?Js=new Set([this]):Js.add(this),ls(0,t));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}var ds="function"==typeof WeakSet?WeakSet:Set;function ps(e){var t=e.ref;if(null!==t)if("function"==typeof t)try{t(null)}catch(t){Fl(e,t)}else t.current=null}function hs(e,t){switch(t.tag){case 0:case 11:case 15:case 22:case 5:case 6:case 4:case 17:return;case 1:if(256&t.flags&&null!==e){var n=e.memoizedProps,r=e.memoizedState;t=(e=t.stateNode).getSnapshotBeforeUpdate(t.elementType===t.type?n:Ja(t.type,n),r),e.__reactInternalSnapshotBeforeUpdate=t}return;case 3:return void(256&t.flags&&Wr(t.stateNode.containerInfo))}throw Error(i(163))}function ms(e,t,n){switch(n.tag){case 0:case 11:case 15:case 22:if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{if(3==(3&e.tag)){var r=e.create;e.destroy=r()}e=e.next}while(e!==t)}if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{var a=e;r=a.next,0!=(4&(a=a.tag))&&0!=(1&a)&&(Rl(n,e),Al(n,e)),e=r}while(e!==t)}return;case 1:return e=n.stateNode,4&n.flags&&(null===t?e.componentDidMount():(r=n.elementType===n.type?t.memoizedProps:Ja(n.type,t.memoizedProps),e.componentDidUpdate(r,t.memoizedState,e.__reactInternalSnapshotBeforeUpdate))),void(null!==(t=n.updateQueue)&&ho(n,t,e));case 3:if(null!==(t=n.updateQueue)){if(e=null,null!==n.child)switch(n.child.tag){case 5:case 1:e=n.child.stateNode}ho(n,t,e)}return;case 5:return e=n.stateNode,void(null===t&&4&n.flags&&Ur(n.type,n.memoizedProps)&&e.focus());case 6:case 4:case 12:case 19:case 17:case 20:case 21:case 23:case 24:return;case 13:return void(null===n.memoizedState&&(n=n.alternate,null!==n&&(n=n.memoizedState,null!==n&&(n=n.dehydrated,null!==n&&_t(n)))))}throw Error(i(163))}function gs(e,t){for(var n=e;;){if(5===n.tag){var r=n.stateNode;if(t)"function"==typeof(r=r.style).setProperty?r.setProperty("display","none","important"):r.display="none";else{r=n.stateNode;var a=n.memoizedProps.style;a=null!=a&&a.hasOwnProperty("display")?a.display:null,r.style.display=we("display",a)}}else if(6===n.tag)n.stateNode.nodeValue=t?"":n.memoizedProps;else if((23!==n.tag&&24!==n.tag||null===n.memoizedState||n===e)&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return;n=n.return}n.sibling.return=n.return,n=n.sibling}}function vs(e,t){if(Ea&&"function"==typeof Ea.onCommitFiberUnmount)try{Ea.onCommitFiberUnmount(xa,t)}catch(e){}switch(t.tag){case 0:case 11:case 14:case 15:case 22:if(null!==(e=t.updateQueue)&&null!==(e=e.lastEffect)){var n=e=e.next;do{var r=n,a=r.destroy;if(r=r.tag,void 0!==a)if(0!=(4&r))Rl(t,n);else{r=t;try{a()}catch(e){Fl(r,e)}}n=n.next}while(n!==e)}break;case 1:if(ps(t),"function"==typeof(e=t.stateNode).componentWillUnmount)try{e.props=t.memoizedProps,e.state=t.memoizedState,e.componentWillUnmount()}catch(e){Fl(t,e)}break;case 5:ps(t);break;case 4:Es(e,t)}}function ys(e){e.alternate=null,e.child=null,e.dependencies=null,e.firstEffect=null,e.lastEffect=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.return=null,e.updateQueue=null}function bs(e){return 5===e.tag||3===e.tag||4===e.tag}function ws(e){e:{for(var t=e.return;null!==t;){if(bs(t))break e;t=t.return}throw Error(i(160))}var n=t;switch(t=n.stateNode,n.tag){case 5:var r=!1;break;case 3:case 4:t=t.containerInfo,r=!0;break;default:throw Error(i(161))}16&n.flags&&(ve(t,""),n.flags&=-17);e:t:for(n=e;;){for(;null===n.sibling;){if(null===n.return||bs(n.return)){n=null;break e}n=n.return}for(n.sibling.return=n.return,n=n.sibling;5!==n.tag&&6!==n.tag&&18!==n.tag;){if(2&n.flags)continue t;if(null===n.child||4===n.tag)continue t;n.child.return=n,n=n.child}if(!(2&n.flags)){n=n.stateNode;break e}}r?_s(e,n,t):xs(e,n,t)}function _s(e,t,n){var r=e.tag,a=5===r||6===r;if(a)e=a?e.stateNode:e.stateNode.instance,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!=(n=n._reactRootContainer)||null!==t.onclick||(t.onclick=zr));else if(4!==r&&null!==(e=e.child))for(_s(e,t,n),e=e.sibling;null!==e;)_s(e,t,n),e=e.sibling}function xs(e,t,n){var r=e.tag,a=5===r||6===r;if(a)e=a?e.stateNode:e.stateNode.instance,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(xs(e,t,n),e=e.sibling;null!==e;)xs(e,t,n),e=e.sibling}function Es(e,t){for(var n,r,a=t,o=!1;;){if(!o){o=a.return;e:for(;;){if(null===o)throw Error(i(160));switch(n=o.stateNode,o.tag){case 5:r=!1;break e;case 3:case 4:n=n.containerInfo,r=!0;break e}o=o.return}o=!0}if(5===a.tag||6===a.tag){e:for(var s=e,l=a,u=l;;)if(vs(s,u),null!==u.child&&4!==u.tag)u.child.return=u,u=u.child;else{if(u===l)break e;for(;null===u.sibling;){if(null===u.return||u.return===l)break e;u=u.return}u.sibling.return=u.return,u=u.sibling}r?(s=n,l=a.stateNode,8===s.nodeType?s.parentNode.removeChild(l):s.removeChild(l)):n.removeChild(a.stateNode)}else if(4===a.tag){if(null!==a.child){n=a.stateNode.containerInfo,r=!0,a.child.return=a,a=a.child;continue}}else if(vs(e,a),null!==a.child){a.child.return=a,a=a.child;continue}if(a===t)break;for(;null===a.sibling;){if(null===a.return||a.return===t)return;4===(a=a.return).tag&&(o=!1)}a.sibling.return=a.return,a=a.sibling}}function ks(e,t){switch(t.tag){case 0:case 11:case 14:case 15:case 22:var n=t.updateQueue;if(null!==(n=null!==n?n.lastEffect:null)){var r=n=n.next;do{3==(3&r.tag)&&(e=r.destroy,r.destroy=void 0,void 0!==e&&e()),r=r.next}while(r!==n)}return;case 1:case 12:case 17:return;case 5:if(null!=(n=t.stateNode)){r=t.memoizedProps;var a=null!==e?e.memoizedProps:r;e=t.type;var o=t.updateQueue;if(t.updateQueue=null,null!==o){for(n[Zr]=r,"input"===e&&"radio"===r.type&&null!=r.name&&te(n,r),ke(e,a),t=ke(e,r),a=0;a<o.length;a+=2){var s=o[a],l=o[a+1];"style"===s?_e(n,l):"dangerouslySetInnerHTML"===s?ge(n,l):"children"===s?ve(n,l):w(n,s,l,t)}switch(e){case"input":ne(n,r);break;case"textarea":ue(n,r);break;case"select":e=n._wrapperState.wasMultiple,n._wrapperState.wasMultiple=!!r.multiple,null!=(o=r.value)?ie(n,!!r.multiple,o,!1):e!==!!r.multiple&&(null!=r.defaultValue?ie(n,!!r.multiple,r.defaultValue,!0):ie(n,!!r.multiple,r.multiple?[]:"",!1))}}}return;case 6:if(null===t.stateNode)throw Error(i(162));return void(t.stateNode.nodeValue=t.memoizedProps);case 3:return void((n=t.stateNode).hydrate&&(n.hydrate=!1,_t(n.containerInfo)));case 13:return null!==t.memoizedState&&(qs=Ua(),gs(t.child,!0)),void Ss(t);case 19:return void Ss(t);case 23:case 24:return void gs(t,null!==t.memoizedState)}throw Error(i(163))}function Ss(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new ds),t.forEach((function(t){var r=Ll.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function $s(e,t){return null!==e&&(null===(e=e.memoizedState)||null!==e.dehydrated)&&null!==(t=t.memoizedState)&&null===t.dehydrated}var Ps=Math.ceil,Os=_.ReactCurrentDispatcher,Cs=_.ReactCurrentOwner,js=0,Ns=null,Is=null,Ts=0,As=0,Rs=la(0),Ds=0,Ms=null,Fs=0,zs=0,Ls=0,Vs=0,Us=null,qs=0,Bs=1/0;function Hs(){Bs=Ua()+500}var Ws,Ks=null,Qs=!1,Gs=null,Js=null,Ys=!1,Zs=null,Xs=90,el=[],tl=[],nl=null,rl=0,al=null,ol=-1,il=0,sl=0,ll=null,ul=!1;function cl(){return 0!=(48&js)?Ua():-1!==ol?ol:ol=Ua()}function fl(e){if(0==(2&(e=e.mode)))return 1;if(0==(4&e))return 99===qa()?1:2;if(0===il&&(il=Fs),0!==Ga.transition){0!==sl&&(sl=null!==Us?Us.pendingLanes:0),e=il;var t=4186112&~sl;return 0==(t&=-t)&&0==(t=(e=4186112&~e)&-e)&&(t=8192),t}return e=qa(),e=zt(0!=(4&js)&&98===e?12:e=function(e){switch(e){case 99:return 15;case 98:return 10;case 97:case 96:return 8;case 95:return 2;default:return 0}}(e),il)}function dl(e,t,n){if(50<rl)throw rl=0,al=null,Error(i(185));if(null===(e=pl(e,t)))return null;Ut(e,t,n),e===Ns&&(Ls|=t,4===Ds&&gl(e,Ts));var r=qa();1===t?0!=(8&js)&&0==(48&js)?vl(e):(hl(e,n),0===js&&(Hs(),Ka())):(0==(4&js)||98!==r&&99!==r||(null===nl?nl=new Set([e]):nl.add(e)),hl(e,n)),Us=e}function pl(e,t){e.lanes|=t;var n=e.alternate;for(null!==n&&(n.lanes|=t),n=e,e=e.return;null!==e;)e.childLanes|=t,null!==(n=e.alternate)&&(n.childLanes|=t),n=e,e=e.return;return 3===n.tag?n.stateNode:null}function hl(e,t){for(var n=e.callbackNode,r=e.suspendedLanes,a=e.pingedLanes,o=e.expirationTimes,s=e.pendingLanes;0<s;){var l=31-qt(s),u=1<<l,c=o[l];if(-1===c){if(0==(u&r)||0!=(u&a)){c=t,Dt(u);var f=Rt;o[l]=10<=f?c+250:6<=f?c+5e3:-1}}else c<=t&&(e.expiredLanes|=u);s&=~u}if(r=Mt(e,e===Ns?Ts:0),t=Rt,0===r)null!==n&&(n!==Da&&$a(n),e.callbackNode=null,e.callbackPriority=0);else{if(null!==n){if(e.callbackPriority===t)return;n!==Da&&$a(n)}15===t?(n=vl.bind(null,e),null===Fa?(Fa=[n],za=Sa(Na,Qa)):Fa.push(n),n=Da):14===t?n=Wa(99,vl.bind(null,e)):(n=function(e){switch(e){case 15:case 14:return 99;case 13:case 12:case 11:case 10:return 98;case 9:case 8:case 7:case 6:case 4:case 5:return 97;case 3:case 2:case 1:return 95;case 0:return 90;default:throw Error(i(358,e))}}(t),n=Wa(n,ml.bind(null,e))),e.callbackPriority=t,e.callbackNode=n}}function ml(e){if(ol=-1,sl=il=0,0!=(48&js))throw Error(i(327));var t=e.callbackNode;if(Tl()&&e.callbackNode!==t)return null;var n=Mt(e,e===Ns?Ts:0);if(0===n)return null;var r=n,a=js;js|=16;var o=kl();for(Ns===e&&Ts===r||(Hs(),xl(e,r));;)try{Pl();break}catch(t){El(e,t)}if(to(),Os.current=o,js=a,null!==Is?r=0:(Ns=null,Ts=0,r=Ds),0!=(Fs&Ls))xl(e,0);else if(0!==r){if(2===r&&(js|=64,e.hydrate&&(e.hydrate=!1,Wr(e.containerInfo)),0!==(n=Ft(e))&&(r=Sl(e,n))),1===r)throw t=Ms,xl(e,0),gl(e,n),hl(e,Ua()),t;switch(e.finishedWork=e.current.alternate,e.finishedLanes=n,r){case 0:case 1:throw Error(i(345));case 2:case 5:jl(e);break;case 3:if(gl(e,n),(62914560&n)===n&&10<(r=qs+500-Ua())){if(0!==Mt(e,0))break;if(((a=e.suspendedLanes)&n)!==n){cl(),e.pingedLanes|=e.suspendedLanes&a;break}e.timeoutHandle=Br(jl.bind(null,e),r);break}jl(e);break;case 4:if(gl(e,n),(4186112&n)===n)break;for(r=e.eventTimes,a=-1;0<n;){var s=31-qt(n);o=1<<s,(s=r[s])>a&&(a=s),n&=~o}if(n=a,10<(n=(120>(n=Ua()-n)?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*Ps(n/1960))-n)){e.timeoutHandle=Br(jl.bind(null,e),n);break}jl(e);break;default:throw Error(i(329))}}return hl(e,Ua()),e.callbackNode===t?ml.bind(null,e):null}function gl(e,t){for(t&=~Vs,t&=~Ls,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-qt(t),r=1<<n;e[n]=-1,t&=~r}}function vl(e){if(0!=(48&js))throw Error(i(327));if(Tl(),e===Ns&&0!=(e.expiredLanes&Ts)){var t=Ts,n=Sl(e,t);0!=(Fs&Ls)&&(n=Sl(e,t=Mt(e,t)))}else n=Sl(e,t=Mt(e,0));if(0!==e.tag&&2===n&&(js|=64,e.hydrate&&(e.hydrate=!1,Wr(e.containerInfo)),0!==(t=Ft(e))&&(n=Sl(e,t))),1===n)throw n=Ms,xl(e,0),gl(e,t),hl(e,Ua()),n;return e.finishedWork=e.current.alternate,e.finishedLanes=t,jl(e),hl(e,Ua()),null}function yl(e,t){var n=js;js|=1;try{return e(t)}finally{0===(js=n)&&(Hs(),Ka())}}function bl(e,t){var n=js;js&=-2,js|=8;try{return e(t)}finally{0===(js=n)&&(Hs(),Ka())}}function wl(e,t){ca(Rs,As),As|=t,Fs|=t}function _l(){As=Rs.current,ua(Rs)}function xl(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,Hr(n)),null!==Is)for(n=Is.return;null!==n;){var r=n;switch(r.tag){case 1:null!=(r=r.type.childContextTypes)&&va();break;case 3:Ao(),ua(pa),ua(da),Go();break;case 5:Do(r);break;case 4:Ao();break;case 13:case 19:ua(Mo);break;case 10:no(r);break;case 23:case 24:_l()}n=n.return}Ns=e,Is=Bl(e.current,null),Ts=As=Fs=t,Ds=0,Ms=null,Vs=Ls=zs=0}function El(e,t){for(;;){var n=Is;try{if(to(),Jo.current=Ni,ni){for(var r=Xo.memoizedState;null!==r;){var a=r.queue;null!==a&&(a.pending=null),r=r.next}ni=!1}if(Zo=0,ti=ei=Xo=null,ri=!1,Cs.current=null,null===n||null===n.return){Ds=1,Ms=t,Is=null;break}e:{var o=e,i=n.return,s=n,l=t;if(t=Ts,s.flags|=2048,s.firstEffect=s.lastEffect=null,null!==l&&"object"==typeof l&&"function"==typeof l.then){var u=l;if(0==(2&s.mode)){var c=s.alternate;c?(s.updateQueue=c.updateQueue,s.memoizedState=c.memoizedState,s.lanes=c.lanes):(s.updateQueue=null,s.memoizedState=null)}var f=0!=(1&Mo.current),d=i;do{var p;if(p=13===d.tag){var h=d.memoizedState;if(null!==h)p=null!==h.dehydrated;else{var m=d.memoizedProps;p=void 0!==m.fallback&&(!0!==m.unstable_avoidThisFallback||!f)}}if(p){var g=d.updateQueue;if(null===g){var v=new Set;v.add(u),d.updateQueue=v}else g.add(u);if(0==(2&d.mode)){if(d.flags|=64,s.flags|=16384,s.flags&=-2981,1===s.tag)if(null===s.alternate)s.tag=17;else{var y=uo(-1,1);y.tag=2,co(s,y)}s.lanes|=1;break e}l=void 0,s=t;var b=o.pingCache;if(null===b?(b=o.pingCache=new us,l=new Set,b.set(u,l)):void 0===(l=b.get(u))&&(l=new Set,b.set(u,l)),!l.has(s)){l.add(s);var w=zl.bind(null,o,u,s);u.then(w,w)}d.flags|=4096,d.lanes=t;break e}d=d.return}while(null!==d);l=Error((K(s.type)||"A React component")+" suspended while rendering, but no fallback UI was specified.\n\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.")}5!==Ds&&(Ds=2),l=ss(l,s),d=i;do{switch(d.tag){case 3:o=l,d.flags|=4096,t&=-t,d.lanes|=t,fo(d,cs(0,o,t));break e;case 1:o=l;var _=d.type,x=d.stateNode;if(0==(64&d.flags)&&("function"==typeof _.getDerivedStateFromError||null!==x&&"function"==typeof x.componentDidCatch&&(null===Js||!Js.has(x)))){d.flags|=4096,t&=-t,d.lanes|=t,fo(d,fs(d,o,t));break e}}d=d.return}while(null!==d)}Cl(n)}catch(e){t=e,Is===n&&null!==n&&(Is=n=n.return);continue}break}}function kl(){var e=Os.current;return Os.current=Ni,null===e?Ni:e}function Sl(e,t){var n=js;js|=16;var r=kl();for(Ns===e&&Ts===t||xl(e,t);;)try{$l();break}catch(t){El(e,t)}if(to(),js=n,Os.current=r,null!==Is)throw Error(i(261));return Ns=null,Ts=0,Ds}function $l(){for(;null!==Is;)Ol(Is)}function Pl(){for(;null!==Is&&!Pa();)Ol(Is)}function Ol(e){var t=Ws(e.alternate,e,As);e.memoizedProps=e.pendingProps,null===t?Cl(e):Is=t,Cs.current=null}function Cl(e){var t=e;do{var n=t.alternate;if(e=t.return,0==(2048&t.flags)){if(null!==(n=os(n,t,As)))return void(Is=n);if(24!==(n=t).tag&&23!==n.tag||null===n.memoizedState||0!=(1073741824&As)||0==(4&n.mode)){for(var r=0,a=n.child;null!==a;)r|=a.lanes|a.childLanes,a=a.sibling;n.childLanes=r}null!==e&&0==(2048&e.flags)&&(null===e.firstEffect&&(e.firstEffect=t.firstEffect),null!==t.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=t.firstEffect),e.lastEffect=t.lastEffect),1<t.flags&&(null!==e.lastEffect?e.lastEffect.nextEffect=t:e.firstEffect=t,e.lastEffect=t))}else{if(null!==(n=is(t)))return n.flags&=2047,void(Is=n);null!==e&&(e.firstEffect=e.lastEffect=null,e.flags|=2048)}if(null!==(t=t.sibling))return void(Is=t);Is=t=e}while(null!==t);0===Ds&&(Ds=5)}function jl(e){var t=qa();return Ha(99,Nl.bind(null,e,t)),null}function Nl(e,t){do{Tl()}while(null!==Zs);if(0!=(48&js))throw Error(i(327));var n=e.finishedWork;if(null===n)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(i(177));e.callbackNode=null;var r=n.lanes|n.childLanes,a=r,o=e.pendingLanes&~a;e.pendingLanes=a,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=a,e.mutableReadLanes&=a,e.entangledLanes&=a,a=e.entanglements;for(var s=e.eventTimes,l=e.expirationTimes;0<o;){var u=31-qt(o),c=1<<u;a[u]=0,s[u]=-1,l[u]=-1,o&=~c}if(null!==nl&&0==(24&r)&&nl.has(e)&&nl.delete(e),e===Ns&&(Is=Ns=null,Ts=0),1<n.flags?null!==n.lastEffect?(n.lastEffect.nextEffect=n,r=n.firstEffect):r=n:r=n.firstEffect,null!==r){if(a=js,js|=32,Cs.current=null,Lr=Qt,gr(s=mr())){if("selectionStart"in s)l={start:s.selectionStart,end:s.selectionEnd};else e:if(l=(l=s.ownerDocument)&&l.defaultView||window,(c=l.getSelection&&l.getSelection())&&0!==c.rangeCount){l=c.anchorNode,o=c.anchorOffset,u=c.focusNode,c=c.focusOffset;try{l.nodeType,u.nodeType}catch(e){l=null;break e}var f=0,d=-1,p=-1,h=0,m=0,g=s,v=null;t:for(;;){for(var y;g!==l||0!==o&&3!==g.nodeType||(d=f+o),g!==u||0!==c&&3!==g.nodeType||(p=f+c),3===g.nodeType&&(f+=g.nodeValue.length),null!==(y=g.firstChild);)v=g,g=y;for(;;){if(g===s)break t;if(v===l&&++h===o&&(d=f),v===u&&++m===c&&(p=f),null!==(y=g.nextSibling))break;v=(g=v).parentNode}g=y}l=-1===d||-1===p?null:{start:d,end:p}}else l=null;l=l||{start:0,end:0}}else l=null;Vr={focusedElem:s,selectionRange:l},Qt=!1,ll=null,ul=!1,Ks=r;do{try{Il()}catch(e){if(null===Ks)throw Error(i(330));Fl(Ks,e),Ks=Ks.nextEffect}}while(null!==Ks);ll=null,Ks=r;do{try{for(s=e;null!==Ks;){var b=Ks.flags;if(16&b&&ve(Ks.stateNode,""),128&b){var w=Ks.alternate;if(null!==w){var _=w.ref;null!==_&&("function"==typeof _?_(null):_.current=null)}}switch(1038&b){case 2:ws(Ks),Ks.flags&=-3;break;case 6:ws(Ks),Ks.flags&=-3,ks(Ks.alternate,Ks);break;case 1024:Ks.flags&=-1025;break;case 1028:Ks.flags&=-1025,ks(Ks.alternate,Ks);break;case 4:ks(Ks.alternate,Ks);break;case 8:Es(s,l=Ks);var x=l.alternate;ys(l),null!==x&&ys(x)}Ks=Ks.nextEffect}}catch(e){if(null===Ks)throw Error(i(330));Fl(Ks,e),Ks=Ks.nextEffect}}while(null!==Ks);if(_=Vr,w=mr(),b=_.focusedElem,s=_.selectionRange,w!==b&&b&&b.ownerDocument&&hr(b.ownerDocument.documentElement,b)){null!==s&&gr(b)&&(w=s.start,void 0===(_=s.end)&&(_=w),"selectionStart"in b?(b.selectionStart=w,b.selectionEnd=Math.min(_,b.value.length)):(_=(w=b.ownerDocument||document)&&w.defaultView||window).getSelection&&(_=_.getSelection(),l=b.textContent.length,x=Math.min(s.start,l),s=void 0===s.end?x:Math.min(s.end,l),!_.extend&&x>s&&(l=s,s=x,x=l),l=pr(b,x),o=pr(b,s),l&&o&&(1!==_.rangeCount||_.anchorNode!==l.node||_.anchorOffset!==l.offset||_.focusNode!==o.node||_.focusOffset!==o.offset)&&((w=w.createRange()).setStart(l.node,l.offset),_.removeAllRanges(),x>s?(_.addRange(w),_.extend(o.node,o.offset)):(w.setEnd(o.node,o.offset),_.addRange(w))))),w=[];for(_=b;_=_.parentNode;)1===_.nodeType&&w.push({element:_,left:_.scrollLeft,top:_.scrollTop});for("function"==typeof b.focus&&b.focus(),b=0;b<w.length;b++)(_=w[b]).element.scrollLeft=_.left,_.element.scrollTop=_.top}Qt=!!Lr,Vr=Lr=null,e.current=n,Ks=r;do{try{for(b=e;null!==Ks;){var E=Ks.flags;if(36&E&&ms(b,Ks.alternate,Ks),128&E){w=void 0;var k=Ks.ref;if(null!==k){var S=Ks.stateNode;Ks.tag,w=S,"function"==typeof k?k(w):k.current=w}}Ks=Ks.nextEffect}}catch(e){if(null===Ks)throw Error(i(330));Fl(Ks,e),Ks=Ks.nextEffect}}while(null!==Ks);Ks=null,Ma(),js=a}else e.current=n;if(Ys)Ys=!1,Zs=e,Xs=t;else for(Ks=r;null!==Ks;)t=Ks.nextEffect,Ks.nextEffect=null,8&Ks.flags&&((E=Ks).sibling=null,E.stateNode=null),Ks=t;if(0===(r=e.pendingLanes)&&(Js=null),1===r?e===al?rl++:(rl=0,al=e):rl=0,n=n.stateNode,Ea&&"function"==typeof Ea.onCommitFiberRoot)try{Ea.onCommitFiberRoot(xa,n,void 0,64==(64&n.current.flags))}catch(e){}if(hl(e,Ua()),Qs)throw Qs=!1,e=Gs,Gs=null,e;return 0!=(8&js)||Ka(),null}function Il(){for(;null!==Ks;){var e=Ks.alternate;ul||null===ll||(0!=(8&Ks.flags)?Xe(Ks,ll)&&(ul=!0):13===Ks.tag&&$s(e,Ks)&&Xe(Ks,ll)&&(ul=!0));var t=Ks.flags;0!=(256&t)&&hs(e,Ks),0==(512&t)||Ys||(Ys=!0,Wa(97,(function(){return Tl(),null}))),Ks=Ks.nextEffect}}function Tl(){if(90!==Xs){var e=97<Xs?97:Xs;return Xs=90,Ha(e,Dl)}return!1}function Al(e,t){el.push(t,e),Ys||(Ys=!0,Wa(97,(function(){return Tl(),null})))}function Rl(e,t){tl.push(t,e),Ys||(Ys=!0,Wa(97,(function(){return Tl(),null})))}function Dl(){if(null===Zs)return!1;var e=Zs;if(Zs=null,0!=(48&js))throw Error(i(331));var t=js;js|=32;var n=tl;tl=[];for(var r=0;r<n.length;r+=2){var a=n[r],o=n[r+1],s=a.destroy;if(a.destroy=void 0,"function"==typeof s)try{s()}catch(e){if(null===o)throw Error(i(330));Fl(o,e)}}for(n=el,el=[],r=0;r<n.length;r+=2){a=n[r],o=n[r+1];try{var l=a.create;a.destroy=l()}catch(e){if(null===o)throw Error(i(330));Fl(o,e)}}for(l=e.current.firstEffect;null!==l;)e=l.nextEffect,l.nextEffect=null,8&l.flags&&(l.sibling=null,l.stateNode=null),l=e;return js=t,Ka(),!0}function Ml(e,t,n){co(e,t=cs(0,t=ss(n,t),1)),t=cl(),null!==(e=pl(e,1))&&(Ut(e,1,t),hl(e,t))}function Fl(e,t){if(3===e.tag)Ml(e,e,t);else for(var n=e.return;null!==n;){if(3===n.tag){Ml(n,e,t);break}if(1===n.tag){var r=n.stateNode;if("function"==typeof n.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Js||!Js.has(r))){var a=fs(n,e=ss(t,e),1);if(co(n,a),a=cl(),null!==(n=pl(n,1)))Ut(n,1,a),hl(n,a);else if("function"==typeof r.componentDidCatch&&(null===Js||!Js.has(r)))try{r.componentDidCatch(t,e)}catch(e){}break}}n=n.return}}function zl(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=cl(),e.pingedLanes|=e.suspendedLanes&n,Ns===e&&(Ts&n)===n&&(4===Ds||3===Ds&&(62914560&Ts)===Ts&&500>Ua()-qs?xl(e,0):Vs|=n),hl(e,t)}function Ll(e,t){var n=e.stateNode;null!==n&&n.delete(t),0==(t=0)&&(0==(2&(t=e.mode))?t=1:0==(4&t)?t=99===qa()?1:2:(0===il&&(il=Fs),0===(t=Lt(62914560&~il))&&(t=4194304))),n=cl(),null!==(e=pl(e,t))&&(Ut(e,t,n),hl(e,n))}function Vl(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.flags=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childLanes=this.lanes=0,this.alternate=null}function Ul(e,t,n,r){return new Vl(e,t,n,r)}function ql(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Bl(e,t){var n=e.alternate;return null===n?((n=Ul(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.nextEffect=null,n.firstEffect=null,n.lastEffect=null),n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Hl(e,t,n,r,a,o){var s=2;if(r=e,"function"==typeof e)ql(e)&&(s=1);else if("string"==typeof e)s=5;else e:switch(e){case k:return Wl(n.children,a,o,t);case D:s=8,a|=16;break;case S:s=8,a|=1;break;case $:return(e=Ul(12,n,t,8|a)).elementType=$,e.type=$,e.lanes=o,e;case j:return(e=Ul(13,n,t,a)).type=j,e.elementType=j,e.lanes=o,e;case N:return(e=Ul(19,n,t,a)).elementType=N,e.lanes=o,e;case M:return Kl(n,a,o,t);case F:return(e=Ul(24,n,t,a)).elementType=F,e.lanes=o,e;default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case P:s=10;break e;case O:s=9;break e;case C:s=11;break e;case I:s=14;break e;case T:s=16,r=null;break e;case A:s=22;break e}throw Error(i(130,null==e?e:typeof e,""))}return(t=Ul(s,n,t,a)).elementType=e,t.type=r,t.lanes=o,t}function Wl(e,t,n,r){return(e=Ul(7,e,r,t)).lanes=n,e}function Kl(e,t,n,r){return(e=Ul(23,e,r,t)).elementType=M,e.lanes=n,e}function Ql(e,t,n){return(e=Ul(6,e,null,t)).lanes=n,e}function Gl(e,t,n){return(t=Ul(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Jl(e,t,n){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.pendingContext=this.context=null,this.hydrate=n,this.callbackNode=null,this.callbackPriority=0,this.eventTimes=Vt(0),this.expirationTimes=Vt(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Vt(0),this.mutableSourceEagerHydrationData=null}function Yl(e,t,n,r){var a=t.current,o=cl(),s=fl(a);e:if(n){t:{if(Ge(n=n._reactInternals)!==n||1!==n.tag)throw Error(i(170));var l=n;do{switch(l.tag){case 3:l=l.stateNode.context;break t;case 1:if(ga(l.type)){l=l.stateNode.__reactInternalMemoizedMergedChildContext;break t}}l=l.return}while(null!==l);throw Error(i(171))}if(1===n.tag){var u=n.type;if(ga(u)){n=ba(n,u,l);break e}}n=l}else n=fa;return null===t.context?t.context=n:t.pendingContext=n,(t=uo(o,s)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),co(a,t),dl(a,s,o),s}function Zl(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function Xl(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function eu(e,t){Xl(e,t),(e=e.alternate)&&Xl(e,t)}function tu(e,t,n){var r=null!=n&&null!=n.hydrationOptions&&n.hydrationOptions.mutableSources||null;if(n=new Jl(e,t,null!=n&&!0===n.hydrate),t=Ul(3,null,null,2===t?7:1===t?3:0),n.current=t,t.stateNode=n,so(t),e[Xr]=n.current,Nr(8===e.nodeType?e.parentNode:e),r)for(e=0;e<r.length;e++){var a=(t=r[e])._getVersion;a=a(t._source),null==n.mutableSourceEagerHydrationData?n.mutableSourceEagerHydrationData=[t,a]:n.mutableSourceEagerHydrationData.push(t,a)}this._internalRoot=n}function nu(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function ru(e,t,n,r,a){var o=n._reactRootContainer;if(o){var i=o._internalRoot;if("function"==typeof a){var s=a;a=function(){var e=Zl(i);s.call(e)}}Yl(t,i,e,a)}else{if(o=n._reactRootContainer=function(e,t){if(t||(t=!(!(t=e?9===e.nodeType?e.documentElement:e.firstChild:null)||1!==t.nodeType||!t.hasAttribute("data-reactroot"))),!t)for(var n;n=e.lastChild;)e.removeChild(n);return new tu(e,0,t?{hydrate:!0}:void 0)}(n,r),i=o._internalRoot,"function"==typeof a){var l=a;a=function(){var e=Zl(i);l.call(e)}}bl((function(){Yl(t,i,e,a)}))}return Zl(i)}function au(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!nu(t))throw Error(i(200));return function(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:E,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}(e,t,null,n)}Ws=function(e,t,n){var r=t.lanes;if(null!==e)if(e.memoizedProps!==t.pendingProps||pa.current)Di=!0;else{if(0==(n&r)){switch(Di=!1,t.tag){case 3:Wi(t),Ko();break;case 5:Ro(t);break;case 1:ga(t.type)&&wa(t);break;case 4:To(t,t.stateNode.containerInfo);break;case 10:r=t.memoizedProps.value;var a=t.type._context;ca(Ya,a._currentValue),a._currentValue=r;break;case 13:if(null!==t.memoizedState)return 0!=(n&t.child.childLanes)?Zi(e,t,n):(ca(Mo,1&Mo.current),null!==(t=rs(e,t,n))?t.sibling:null);ca(Mo,1&Mo.current);break;case 19:if(r=0!=(n&t.childLanes),0!=(64&e.flags)){if(r)return ns(e,t,n);t.flags|=64}if(null!==(a=t.memoizedState)&&(a.rendering=null,a.tail=null,a.lastEffect=null),ca(Mo,Mo.current),r)break;return null;case 23:case 24:return t.lanes=0,Vi(e,t,n)}return rs(e,t,n)}Di=0!=(16384&e.flags)}else Di=!1;switch(t.lanes=0,t.tag){case 2:if(r=t.type,null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,a=ma(t,da.current),ao(t,n),a=ii(null,t,r,e,a,n),t.flags|=1,"object"==typeof a&&null!==a&&"function"==typeof a.render&&void 0===a.$$typeof){if(t.tag=1,t.memoizedState=null,t.updateQueue=null,ga(r)){var o=!0;wa(t)}else o=!1;t.memoizedState=null!==a.state&&void 0!==a.state?a.state:null,so(t);var s=r.getDerivedStateFromProps;"function"==typeof s&&go(t,r,s,e),a.updater=vo,t.stateNode=a,a._reactInternals=t,_o(t,r,e,n),t=Hi(null,t,r,!0,o,n)}else t.tag=0,Mi(null,t,a,n),t=t.child;return t;case 16:a=t.elementType;e:{switch(null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,a=(o=a._init)(a._payload),t.type=a,o=t.tag=function(e){if("function"==typeof e)return ql(e)?1:0;if(null!=e){if((e=e.$$typeof)===C)return 11;if(e===I)return 14}return 2}(a),e=Ja(a,e),o){case 0:t=qi(null,t,a,e,n);break e;case 1:t=Bi(null,t,a,e,n);break e;case 11:t=Fi(null,t,a,e,n);break e;case 14:t=zi(null,t,a,Ja(a.type,e),r,n);break e}throw Error(i(306,a,""))}return t;case 0:return r=t.type,a=t.pendingProps,qi(e,t,r,a=t.elementType===r?a:Ja(r,a),n);case 1:return r=t.type,a=t.pendingProps,Bi(e,t,r,a=t.elementType===r?a:Ja(r,a),n);case 3:if(Wi(t),r=t.updateQueue,null===e||null===r)throw Error(i(282));if(r=t.pendingProps,a=null!==(a=t.memoizedState)?a.element:null,lo(e,t),po(t,r,null,n),(r=t.memoizedState.element)===a)Ko(),t=rs(e,t,n);else{if((o=(a=t.stateNode).hydrate)&&(Lo=Kr(t.stateNode.containerInfo.firstChild),zo=t,o=Vo=!0),o){if(null!=(e=a.mutableSourceEagerHydrationData))for(a=0;a<e.length;a+=2)(o=e[a])._workInProgressVersionPrimary=e[a+1],Qo.push(o);for(n=Po(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|1024,n=n.sibling}else Mi(e,t,r,n),Ko();t=t.child}return t;case 5:return Ro(t),null===e&&Bo(t),r=t.type,a=t.pendingProps,o=null!==e?e.memoizedProps:null,s=a.children,qr(r,a)?s=null:null!==o&&qr(r,o)&&(t.flags|=16),Ui(e,t),Mi(e,t,s,n),t.child;case 6:return null===e&&Bo(t),null;case 13:return Zi(e,t,n);case 4:return To(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=$o(t,null,r,n):Mi(e,t,r,n),t.child;case 11:return r=t.type,a=t.pendingProps,Fi(e,t,r,a=t.elementType===r?a:Ja(r,a),n);case 7:return Mi(e,t,t.pendingProps,n),t.child;case 8:case 12:return Mi(e,t,t.pendingProps.children,n),t.child;case 10:e:{r=t.type._context,a=t.pendingProps,s=t.memoizedProps,o=a.value;var l=t.type._context;if(ca(Ya,l._currentValue),l._currentValue=o,null!==s)if(l=s.value,0==(o=ur(l,o)?0:0|("function"==typeof r._calculateChangedBits?r._calculateChangedBits(l,o):1073741823))){if(s.children===a.children&&!pa.current){t=rs(e,t,n);break e}}else for(null!==(l=t.child)&&(l.return=t);null!==l;){var u=l.dependencies;if(null!==u){s=l.child;for(var c=u.firstContext;null!==c;){if(c.context===r&&0!=(c.observedBits&o)){1===l.tag&&((c=uo(-1,n&-n)).tag=2,co(l,c)),l.lanes|=n,null!==(c=l.alternate)&&(c.lanes|=n),ro(l.return,n),u.lanes|=n;break}c=c.next}}else s=10===l.tag&&l.type===t.type?null:l.child;if(null!==s)s.return=l;else for(s=l;null!==s;){if(s===t){s=null;break}if(null!==(l=s.sibling)){l.return=s.return,s=l;break}s=s.return}l=s}Mi(e,t,a.children,n),t=t.child}return t;case 9:return a=t.type,r=(o=t.pendingProps).children,ao(t,n),r=r(a=oo(a,o.unstable_observedBits)),t.flags|=1,Mi(e,t,r,n),t.child;case 14:return o=Ja(a=t.type,t.pendingProps),zi(e,t,a,o=Ja(a.type,o),r,n);case 15:return Li(e,t,t.type,t.pendingProps,r,n);case 17:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:Ja(r,a),null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),t.tag=1,ga(r)?(e=!0,wa(t)):e=!1,ao(t,n),bo(t,r,a),_o(t,r,a,n),Hi(null,t,r,!0,e,n);case 19:return ns(e,t,n);case 23:case 24:return Vi(e,t,n)}throw Error(i(156,t.tag))},tu.prototype.render=function(e){Yl(e,this._internalRoot,null,null)},tu.prototype.unmount=function(){var e=this._internalRoot,t=e.containerInfo;Yl(null,e,null,(function(){t[Xr]=null}))},et=function(e){13===e.tag&&(dl(e,4,cl()),eu(e,4))},tt=function(e){13===e.tag&&(dl(e,67108864,cl()),eu(e,67108864))},nt=function(e){if(13===e.tag){var t=cl(),n=fl(e);dl(e,n,t),eu(e,n)}},rt=function(e,t){return t()},$e=function(e,t,n){switch(t){case"input":if(ne(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var a=aa(r);if(!a)throw Error(i(90));Y(r),ne(r,a)}}}break;case"textarea":ue(e,n);break;case"select":null!=(t=n.value)&&ie(e,!!n.multiple,t,!1)}},Ie=yl,Te=function(e,t,n,r,a){var o=js;js|=4;try{return Ha(98,e.bind(null,t,n,r,a))}finally{0===(js=o)&&(Hs(),Ka())}},Ae=function(){0==(49&js)&&(function(){if(null!==nl){var e=nl;nl=null,e.forEach((function(e){e.expiredLanes|=24&e.pendingLanes,hl(e,Ua())}))}Ka()}(),Tl())},Re=function(e,t){var n=js;js|=2;try{return e(t)}finally{0===(js=n)&&(Hs(),Ka())}};var ou={Events:[na,ra,aa,je,Ne,Tl,{current:!1}]},iu={findFiberByHostInstance:ta,bundleType:0,version:"17.0.2",rendererPackageName:"react-dom"},su={bundleType:iu.bundleType,version:iu.version,rendererPackageName:iu.rendererPackageName,rendererConfig:iu.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:_.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=Ze(e))?null:e.stateNode},findFiberByHostInstance:iu.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var lu=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!lu.isDisabled&&lu.supportsFiber)try{xa=lu.inject(su),Ea=lu}catch(me){}}t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=ou,t.createPortal=au,t.findDOMNode=function(e){if(null==e)return null;if(1===e.nodeType)return e;var t=e._reactInternals;if(void 0===t){if("function"==typeof e.render)throw Error(i(188));throw Error(i(268,Object.keys(e)))}return null===(e=Ze(t))?null:e.stateNode},t.flushSync=function(e,t){var n=js;if(0!=(48&n))return e(t);js|=1;try{if(e)return Ha(99,e.bind(null,t))}finally{js=n,Ka()}},t.hydrate=function(e,t,n){if(!nu(t))throw Error(i(200));return ru(null,e,t,!0,n)},t.render=function(e,t,n){if(!nu(t))throw Error(i(200));return ru(null,e,t,!1,n)},t.unmountComponentAtNode=function(e){if(!nu(e))throw Error(i(40));return!!e._reactRootContainer&&(bl((function(){ru(null,null,e,!1,(function(){e._reactRootContainer=null,e[Xr]=null}))})),!0)},t.unstable_batchedUpdates=yl,t.unstable_createPortal=function(e,t){return au(e,t,2<arguments.length&&void 0!==arguments[2]?arguments[2]:null)},t.unstable_renderSubtreeIntoContainer=function(e,t,n,r){if(!nu(n))throw Error(i(200));if(null==e||void 0===e._reactInternals)throw Error(i(38));return ru(e,t,n,!1,r)},t.version="17.0.2"},3935:(e,t,n)=>{"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),e.exports=n(4448)},8465:function(e,t,n){"use strict";var r=this&&this.__assign||function(){return r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var a in t=arguments[n])Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e},r.apply(this,arguments)},a=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&a(t,e,n);return o(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.Step=t.Steps=void 0;var s=i(n(7294)),l=s.default.createContext({size:0,current:1,progress:0,allSteps:[],state:{},handleChange:function(e){},setState:function(e,t){},getState:function(e,t){return""},next:function(){},prev:function(){},jump:function(e){}}),u=s.default.createContext({order:0});t.Steps=function(e){var t,n,a=e.children,o=e.config,i=s.default.Children.toArray(a),c=function(e){var t,n;if(null===(t=null==o?void 0:o.navigation)||void 0===t?void 0:t.component){var a=null===(n=null==o?void 0:o.navigation)||void 0===n?void 0:n.component;return s.default.createElement(a,r({},e))}},f=i.map((function(e,t){return{title:e.props.title||"Step "+(t+1),order:t+1}})),d=i.length,p=s.useState(1),h=p[0],m=p[1],g=s.useState({}),v=g[0],y=g[1],b=s.useState(0),w=b[0],_=b[1];s.useEffect((function(){_(1===h?0:h===d?1:Number(((h-1)/(d-1)).toFixed(2)))}),[h,_,d]);var x={size:d,current:h,progress:w,allSteps:f,state:v,handleChange:function(e){var t=e.currentTarget.name,n="checkbox"===e.currentTarget.type?e.currentTarget.checked:e.currentTarget.value,r=Object.assign({},v);r[t]=n,y(r)},setState:function(e,t){var n=Object.assign({},v);n[e]=t,y(n)},getState:function(e,t){return e in v?v[e]:t},next:function(){h<d&&m(h+1)},prev:function(){h>1&&m(h-1)},jump:function(e){e>=1&&e<=d&&m(e)}};return s.default.createElement(l.Provider,{value:x},(null==o?void 0:o.before)&&function(e){if(null==o?void 0:o.before){var t=o.before;return s.default.createElement(t,r({},e))}}(x),"before"===(null===(t=null==o?void 0:o.navigation)||void 0===t?void 0:t.location)&&c(x),s.default.Children.map(a,(function(e,t){return s.default.createElement(u.Provider,{value:{order:t+1}},e)})),"after"===(null===(n=null==o?void 0:o.navigation)||void 0===n?void 0:n.location)&&c(x),(null==o?void 0:o.after)&&function(e){if(null==o?void 0:o.after){var t=o.after;return s.default.createElement(t,r({},e))}}(x))},t.Step=function(e){var t=s.useContext(u).order,n=e.title,a=e.component,o=e.beforeStepChange,i=s.useContext(l),c=i.size,f=i.current;if(s.useEffect((function(){return function(){f===t&&o&&o()}}),[f,t,o]),t===f){var d=Object.assign({},e);delete d.component;var p="Step "+t;return s.default.createElement(a,r({},d,i,{title:n||p,order:t,hasPrev:function(){return t>1},hasNext:function(){return t<c},isFirst:function(){return 1===t},isLast:function(){return t===c}}))}return null}},2408:(e,t,n)=>{"use strict";var r=n(7418),a=60103,o=60106;t.Fragment=60107,t.StrictMode=60108,t.Profiler=60114;var i=60109,s=60110,l=60112;t.Suspense=60113;var u=60115,c=60116;if("function"==typeof Symbol&&Symbol.for){var f=Symbol.for;a=f("react.element"),o=f("react.portal"),t.Fragment=f("react.fragment"),t.StrictMode=f("react.strict_mode"),t.Profiler=f("react.profiler"),i=f("react.provider"),s=f("react.context"),l=f("react.forward_ref"),t.Suspense=f("react.suspense"),u=f("react.memo"),c=f("react.lazy")}var d="function"==typeof Symbol&&Symbol.iterator;function p(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},m={};function g(e,t,n){this.props=e,this.context=t,this.refs=m,this.updater=n||h}function v(){}function y(e,t,n){this.props=e,this.context=t,this.refs=m,this.updater=n||h}g.prototype.isReactComponent={},g.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error(p(85));this.updater.enqueueSetState(this,e,t,"setState")},g.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},v.prototype=g.prototype;var b=y.prototype=new v;b.constructor=y,r(b,g.prototype),b.isPureReactComponent=!0;var w={current:null},_=Object.prototype.hasOwnProperty,x={key:!0,ref:!0,__self:!0,__source:!0};function E(e,t,n){var r,o={},i=null,s=null;if(null!=t)for(r in void 0!==t.ref&&(s=t.ref),void 0!==t.key&&(i=""+t.key),t)_.call(t,r)&&!x.hasOwnProperty(r)&&(o[r]=t[r]);var l=arguments.length-2;if(1===l)o.children=n;else if(1<l){for(var u=Array(l),c=0;c<l;c++)u[c]=arguments[c+2];o.children=u}if(e&&e.defaultProps)for(r in l=e.defaultProps)void 0===o[r]&&(o[r]=l[r]);return{$$typeof:a,type:e,key:i,ref:s,props:o,_owner:w.current}}function k(e){return"object"==typeof e&&null!==e&&e.$$typeof===a}var S=/\/+/g;function $(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function P(e,t,n,r,i){var s=typeof e;"undefined"!==s&&"boolean"!==s||(e=null);var l=!1;if(null===e)l=!0;else switch(s){case"string":case"number":l=!0;break;case"object":switch(e.$$typeof){case a:case o:l=!0}}if(l)return i=i(l=e),e=""===r?"."+$(l,0):r,Array.isArray(i)?(n="",null!=e&&(n=e.replace(S,"$&/")+"/"),P(i,t,n,"",(function(e){return e}))):null!=i&&(k(i)&&(i=function(e,t){return{$$typeof:a,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(i,n+(!i.key||l&&l.key===i.key?"":(""+i.key).replace(S,"$&/")+"/")+e)),t.push(i)),1;if(l=0,r=""===r?".":r+":",Array.isArray(e))for(var u=0;u<e.length;u++){var c=r+$(s=e[u],u);l+=P(s,t,n,c,i)}else if(c=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=d&&e[d]||e["@@iterator"])?e:null}(e),"function"==typeof c)for(e=c.call(e),u=0;!(s=e.next()).done;)l+=P(s=s.value,t,n,c=r+$(s,u++),i);else if("object"===s)throw t=""+e,Error(p(31,"[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t));return l}function O(e,t,n){if(null==e)return e;var r=[],a=0;return P(e,r,"","",(function(e){return t.call(n,e,a++)})),r}function C(e){if(-1===e._status){var t=e._result;t=t(),e._status=0,e._result=t,t.then((function(t){0===e._status&&(t=t.default,e._status=1,e._result=t)}),(function(t){0===e._status&&(e._status=2,e._result=t)}))}if(1===e._status)return e._result;throw e._result}var j={current:null};function N(){var e=j.current;if(null===e)throw Error(p(321));return e}var I={ReactCurrentDispatcher:j,ReactCurrentBatchConfig:{transition:0},ReactCurrentOwner:w,IsSomeRendererActing:{current:!1},assign:r};t.Children={map:O,forEach:function(e,t,n){O(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return O(e,(function(){t++})),t},toArray:function(e){return O(e,(function(e){return e}))||[]},only:function(e){if(!k(e))throw Error(p(143));return e}},t.Component=g,t.PureComponent=y,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=I,t.cloneElement=function(e,t,n){if(null==e)throw Error(p(267,e));var o=r({},e.props),i=e.key,s=e.ref,l=e._owner;if(null!=t){if(void 0!==t.ref&&(s=t.ref,l=w.current),void 0!==t.key&&(i=""+t.key),e.type&&e.type.defaultProps)var u=e.type.defaultProps;for(c in t)_.call(t,c)&&!x.hasOwnProperty(c)&&(o[c]=void 0===t[c]&&void 0!==u?u[c]:t[c])}var c=arguments.length-2;if(1===c)o.children=n;else if(1<c){u=Array(c);for(var f=0;f<c;f++)u[f]=arguments[f+2];o.children=u}return{$$typeof:a,type:e.type,key:i,ref:s,props:o,_owner:l}},t.createContext=function(e,t){return void 0===t&&(t=null),(e={$$typeof:s,_calculateChangedBits:t,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider={$$typeof:i,_context:e},e.Consumer=e},t.createElement=E,t.createFactory=function(e){var t=E.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:l,render:e}},t.isValidElement=k,t.lazy=function(e){return{$$typeof:c,_payload:{_status:-1,_result:e},_init:C}},t.memo=function(e,t){return{$$typeof:u,type:e,compare:void 0===t?null:t}},t.useCallback=function(e,t){return N().useCallback(e,t)},t.useContext=function(e,t){return N().useContext(e,t)},t.useDebugValue=function(){},t.useEffect=function(e,t){return N().useEffect(e,t)},t.useImperativeHandle=function(e,t,n){return N().useImperativeHandle(e,t,n)},t.useLayoutEffect=function(e,t){return N().useLayoutEffect(e,t)},t.useMemo=function(e,t){return N().useMemo(e,t)},t.useReducer=function(e,t,n){return N().useReducer(e,t,n)},t.useRef=function(e){return N().useRef(e)},t.useState=function(e){return N().useState(e)},t.version="17.0.2"},7294:(e,t,n)=>{"use strict";e.exports=n(2408)},53:(e,t)=>{"use strict";var n,r,a,o;if("object"==typeof performance&&"function"==typeof performance.now){var i=performance;t.unstable_now=function(){return i.now()}}else{var s=Date,l=s.now();t.unstable_now=function(){return s.now()-l}}if("undefined"==typeof window||"function"!=typeof MessageChannel){var u=null,c=null,f=function(){if(null!==u)try{var e=t.unstable_now();u(!0,e),u=null}catch(e){throw setTimeout(f,0),e}};n=function(e){null!==u?setTimeout(n,0,e):(u=e,setTimeout(f,0))},r=function(e,t){c=setTimeout(e,t)},a=function(){clearTimeout(c)},t.unstable_shouldYield=function(){return!1},o=t.unstable_forceFrameRate=function(){}}else{var d=window.setTimeout,p=window.clearTimeout;if("undefined"!=typeof console){var h=window.cancelAnimationFrame;"function"!=typeof window.requestAnimationFrame&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),"function"!=typeof h&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")}var m=!1,g=null,v=-1,y=5,b=0;t.unstable_shouldYield=function(){return t.unstable_now()>=b},o=function(){},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):y=0<e?Math.floor(1e3/e):5};var w=new MessageChannel,_=w.port2;w.port1.onmessage=function(){if(null!==g){var e=t.unstable_now();b=e+y;try{g(!0,e)?_.postMessage(null):(m=!1,g=null)}catch(e){throw _.postMessage(null),e}}else m=!1},n=function(e){g=e,m||(m=!0,_.postMessage(null))},r=function(e,n){v=d((function(){e(t.unstable_now())}),n)},a=function(){p(v),v=-1}}function x(e,t){var n=e.length;e.push(t);e:for(;;){var r=n-1>>>1,a=e[r];if(!(void 0!==a&&0<S(a,t)))break e;e[r]=t,e[n]=a,n=r}}function E(e){return void 0===(e=e[0])?null:e}function k(e){var t=e[0];if(void 0!==t){var n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,a=e.length;r<a;){var o=2*(r+1)-1,i=e[o],s=o+1,l=e[s];if(void 0!==i&&0>S(i,n))void 0!==l&&0>S(l,i)?(e[r]=l,e[s]=n,r=s):(e[r]=i,e[o]=n,r=o);else{if(!(void 0!==l&&0>S(l,n)))break e;e[r]=l,e[s]=n,r=s}}}return t}return null}function S(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}var $=[],P=[],O=1,C=null,j=3,N=!1,I=!1,T=!1;function A(e){for(var t=E(P);null!==t;){if(null===t.callback)k(P);else{if(!(t.startTime<=e))break;k(P),t.sortIndex=t.expirationTime,x($,t)}t=E(P)}}function R(e){if(T=!1,A(e),!I)if(null!==E($))I=!0,n(D);else{var t=E(P);null!==t&&r(R,t.startTime-e)}}function D(e,n){I=!1,T&&(T=!1,a()),N=!0;var o=j;try{for(A(n),C=E($);null!==C&&(!(C.expirationTime>n)||e&&!t.unstable_shouldYield());){var i=C.callback;if("function"==typeof i){C.callback=null,j=C.priorityLevel;var s=i(C.expirationTime<=n);n=t.unstable_now(),"function"==typeof s?C.callback=s:C===E($)&&k($),A(n)}else k($);C=E($)}if(null!==C)var l=!0;else{var u=E(P);null!==u&&r(R,u.startTime-n),l=!1}return l}finally{C=null,j=o,N=!1}}var M=o;t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){I||N||(I=!0,n(D))},t.unstable_getCurrentPriorityLevel=function(){return j},t.unstable_getFirstCallbackNode=function(){return E($)},t.unstable_next=function(e){switch(j){case 1:case 2:case 3:var t=3;break;default:t=j}var n=j;j=t;try{return e()}finally{j=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=M,t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=j;j=e;try{return t()}finally{j=n}},t.unstable_scheduleCallback=function(e,o,i){var s=t.unstable_now();switch(i="object"==typeof i&&null!==i&&"number"==typeof(i=i.delay)&&0<i?s+i:s,e){case 1:var l=-1;break;case 2:l=250;break;case 5:l=1073741823;break;case 4:l=1e4;break;default:l=5e3}return e={id:O++,callback:o,priorityLevel:e,startTime:i,expirationTime:l=i+l,sortIndex:-1},i>s?(e.sortIndex=i,x(P,e),null===E($)&&e===E(P)&&(T?a():T=!0,r(R,i-s))):(e.sortIndex=l,x($,e),I||N||(I=!0,n(D))),e},t.unstable_wrapCallback=function(e){var t=j;return function(){var n=j;j=t;try{return e.apply(this,arguments)}finally{j=n}}}},3840:(e,t,n)=>{"use strict";e.exports=n(53)},5864:(e,t,n)=>{var r=n(3379),a=n(5287);"string"==typeof(a=a.__esModule?a.default:a)&&(a=[[e.id,a,""]]);r(a,{insert:"head",singleton:!1}),e.exports=a.locals||{}},3379:(e,t,n)=>{"use strict";var r,a=function(){var e={};return function(t){if(void 0===e[t]){var n=document.querySelector(t);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}e[t]=n}return e[t]}}(),o=[];function i(e){for(var t=-1,n=0;n<o.length;n++)if(o[n].identifier===e){t=n;break}return t}function s(e,t){for(var n={},r=[],a=0;a<e.length;a++){var s=e[a],l=t.base?s[0]+t.base:s[0],u=n[l]||0,c="".concat(l," ").concat(u);n[l]=u+1;var f=i(c),d={css:s[1],media:s[2],sourceMap:s[3]};-1!==f?(o[f].references++,o[f].updater(d)):o.push({identifier:c,updater:m(d,t),references:1}),r.push(c)}return r}function l(e){var t=document.createElement("style"),r=e.attributes||{};if(void 0===r.nonce){var o=n.nc;o&&(r.nonce=o)}if(Object.keys(r).forEach((function(e){t.setAttribute(e,r[e])})),"function"==typeof e.insert)e.insert(t);else{var i=a(e.insert||"head");if(!i)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");i.appendChild(t)}return t}var u,c=(u=[],function(e,t){return u[e]=t,u.filter(Boolean).join("\n")});function f(e,t,n,r){var a=n?"":r.media?"@media ".concat(r.media," {").concat(r.css,"}"):r.css;if(e.styleSheet)e.styleSheet.cssText=c(t,a);else{var o=document.createTextNode(a),i=e.childNodes;i[t]&&e.removeChild(i[t]),i.length?e.insertBefore(o,i[t]):e.appendChild(o)}}function d(e,t,n){var r=n.css,a=n.media,o=n.sourceMap;if(a?e.setAttribute("media",a):e.removeAttribute("media"),o&&"undefined"!=typeof btoa&&(r+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(o))))," */")),e.styleSheet)e.styleSheet.cssText=r;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(r))}}var p=null,h=0;function m(e,t){var n,r,a;if(t.singleton){var o=h++;n=p||(p=l(t)),r=f.bind(null,n,o,!1),a=f.bind(null,n,o,!0)}else n=l(t),r=d.bind(null,n,t),a=function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(n)};return r(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;r(e=t)}else a()}}e.exports=function(e,t){(t=t||{}).singleton||"boolean"==typeof t.singleton||(t.singleton=(void 0===r&&(r=Boolean(window&&document&&document.all&&!window.atob)),r));var n=s(e=e||[],t);return function(e){if(e=e||[],"[object Array]"===Object.prototype.toString.call(e)){for(var r=0;r<n.length;r++){var a=i(n[r]);o[a].references--}for(var l=s(e,t),u=0;u<n.length;u++){var c=i(n[u]);0===o[c].references&&(o[c].updater(),o.splice(c,1))}n=l}}}},540:function(e,t){!function(e){"use strict";function t(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];if(t.length>1){t[0]=t[0].slice(0,-1);for(var r=t.length-1,a=1;a<r;++a)t[a]=t[a].slice(1,-1);return t[r]=t[r].slice(1),t.join("")}return t[0]}function n(e){return"(?:"+e+")"}function r(e){return void 0===e?"undefined":null===e?"null":Object.prototype.toString.call(e).split(" ").pop().split("]").shift().toLowerCase()}function a(e){return e.toUpperCase()}function o(e){var r="[A-Za-z]",a="[0-9]",o=t(a,"[A-Fa-f]"),i=n(n("%[EFef]"+o+"%"+o+o+"%"+o+o)+"|"+n("%[89A-Fa-f]"+o+"%"+o+o)+"|"+n("%"+o+o)),s="[\\!\\$\\&\\'\\(\\)\\*\\+\\,\\;\\=]",l=t("[\\:\\/\\?\\#\\[\\]\\@]",s),u=e?"[\\uE000-\\uF8FF]":"[]",c=t(r,a,"[\\-\\.\\_\\~]",e?"[\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]":"[]"),f=n(r+t(r,a,"[\\+\\-\\.]")+"*"),d=n(n(i+"|"+t(c,s,"[\\:]"))+"*"),p=(n(n("25[0-5]")+"|"+n("2[0-4]"+a)+"|"+n("1"+a+a)+"|"+n("[1-9]"+a)+"|"+a),n(n("25[0-5]")+"|"+n("2[0-4]"+a)+"|"+n("1"+a+a)+"|"+n("0?[1-9]"+a)+"|0?0?"+a)),h=n(p+"\\."+p+"\\."+p+"\\."+p),m=n(o+"{1,4}"),g=n(n(m+"\\:"+m)+"|"+h),v=n(n(m+"\\:")+"{6}"+g),y=n("\\:\\:"+n(m+"\\:")+"{5}"+g),b=n(n(m)+"?\\:\\:"+n(m+"\\:")+"{4}"+g),w=n(n(n(m+"\\:")+"{0,1}"+m)+"?\\:\\:"+n(m+"\\:")+"{3}"+g),_=n(n(n(m+"\\:")+"{0,2}"+m)+"?\\:\\:"+n(m+"\\:")+"{2}"+g),x=n(n(n(m+"\\:")+"{0,3}"+m)+"?\\:\\:"+m+"\\:"+g),E=n(n(n(m+"\\:")+"{0,4}"+m)+"?\\:\\:"+g),k=n(n(n(m+"\\:")+"{0,5}"+m)+"?\\:\\:"+m),S=n(n(n(m+"\\:")+"{0,6}"+m)+"?\\:\\:"),$=n([v,y,b,w,_,x,E,k,S].join("|")),P=n(n(c+"|"+i)+"+"),O=(n($+"\\%25"+P),n($+n("\\%25|\\%(?!"+o+"{2})")+P)),C=n("[vV]"+o+"+\\."+t(c,s,"[\\:]")+"+"),j=n("\\["+n(O+"|"+$+"|"+C)+"\\]"),N=n(n(i+"|"+t(c,s))+"*"),I=n(j+"|"+h+"(?!"+N+")|"+N),T=n(a+"*"),A=n(n(d+"@")+"?"+I+n("\\:"+T)+"?"),R=n(i+"|"+t(c,s,"[\\:\\@]")),D=n(R+"*"),M=n(R+"+"),F=n(n(i+"|"+t(c,s,"[\\@]"))+"+"),z=n(n("\\/"+D)+"*"),L=n("\\/"+n(M+z)+"?"),V=n(F+z),U=n(M+z),q="(?!"+R+")",B=(n(z+"|"+L+"|"+V+"|"+U+"|"+q),n(n(R+"|"+t("[\\/\\?]",u))+"*")),H=n(n(R+"|[\\/\\?]")+"*"),W=n(n("\\/\\/"+A+z)+"|"+L+"|"+U+"|"+q),K=n(f+"\\:"+W+n("\\?"+B)+"?"+n("\\#"+H)+"?"),Q=n(n("\\/\\/"+A+z)+"|"+L+"|"+V+"|"+q),G=n(Q+n("\\?"+B)+"?"+n("\\#"+H)+"?");return n(K+"|"+G),n(f+"\\:"+W+n("\\?"+B)+"?"),n(n("\\/\\/("+n("("+d+")@")+"?("+I+")"+n("\\:("+T+")")+"?)")+"?("+z+"|"+L+"|"+U+"|"+q+")"),n("\\?("+B+")"),n("\\#("+H+")"),n(n("\\/\\/("+n("("+d+")@")+"?("+I+")"+n("\\:("+T+")")+"?)")+"?("+z+"|"+L+"|"+V+"|"+q+")"),n("\\?("+B+")"),n("\\#("+H+")"),n(n("\\/\\/("+n("("+d+")@")+"?("+I+")"+n("\\:("+T+")")+"?)")+"?("+z+"|"+L+"|"+U+"|"+q+")"),n("\\?("+B+")"),n("\\#("+H+")"),n("("+d+")@"),n("\\:("+T+")"),{NOT_SCHEME:new RegExp(t("[^]",r,a,"[\\+\\-\\.]"),"g"),NOT_USERINFO:new RegExp(t("[^\\%\\:]",c,s),"g"),NOT_HOST:new RegExp(t("[^\\%\\[\\]\\:]",c,s),"g"),NOT_PATH:new RegExp(t("[^\\%\\/\\:\\@]",c,s),"g"),NOT_PATH_NOSCHEME:new RegExp(t("[^\\%\\/\\@]",c,s),"g"),NOT_QUERY:new RegExp(t("[^\\%]",c,s,"[\\:\\@\\/\\?]",u),"g"),NOT_FRAGMENT:new RegExp(t("[^\\%]",c,s,"[\\:\\@\\/\\?]"),"g"),ESCAPE:new RegExp(t("[^]",c,s),"g"),UNRESERVED:new RegExp(c,"g"),OTHER_CHARS:new RegExp(t("[^\\%]",c,l),"g"),PCT_ENCODED:new RegExp(i,"g"),IPV4ADDRESS:new RegExp("^("+h+")$"),IPV6ADDRESS:new RegExp("^\\[?("+$+")"+n(n("\\%25|\\%(?!"+o+"{2})")+"("+P+")")+"?\\]?$")}}var i=o(!1),s=o(!0),l=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{!r&&s.return&&s.return()}finally{if(a)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},u=2147483647,c=36,f=/^xn--/,d=/[^\0-\x7E]/,p=/[\x2E\u3002\uFF0E\uFF61]/g,h={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},m=Math.floor,g=String.fromCharCode;function v(e){throw new RangeError(h[e])}function y(e,t){var n=e.split("@"),r="";return n.length>1&&(r=n[0]+"@",e=n[1]),r+function(e,t){for(var n=[],r=e.length;r--;)n[r]=t(e[r]);return n}((e=e.replace(p,".")).split("."),t).join(".")}function b(e){for(var t=[],n=0,r=e.length;n<r;){var a=e.charCodeAt(n++);if(a>=55296&&a<=56319&&n<r){var o=e.charCodeAt(n++);56320==(64512&o)?t.push(((1023&a)<<10)+(1023&o)+65536):(t.push(a),n--)}else t.push(a)}return t}var w=function(e,t){return e+22+75*(e<26)-((0!=t)<<5)},_=function(e,t,n){var r=0;for(e=n?m(e/700):e>>1,e+=m(e/t);e>455;r+=c)e=m(e/35);return m(r+36*e/(e+38))},x=function(e){var t,n=[],r=e.length,a=0,o=128,i=72,s=e.lastIndexOf("-");s<0&&(s=0);for(var l=0;l<s;++l)e.charCodeAt(l)>=128&&v("not-basic"),n.push(e.charCodeAt(l));for(var f=s>0?s+1:0;f<r;){for(var d=a,p=1,h=c;;h+=c){f>=r&&v("invalid-input");var g=(t=e.charCodeAt(f++))-48<10?t-22:t-65<26?t-65:t-97<26?t-97:c;(g>=c||g>m((u-a)/p))&&v("overflow"),a+=g*p;var y=h<=i?1:h>=i+26?26:h-i;if(g<y)break;var b=c-y;p>m(u/b)&&v("overflow"),p*=b}var w=n.length+1;i=_(a-d,w,0==d),m(a/w)>u-o&&v("overflow"),o+=m(a/w),a%=w,n.splice(a++,0,o)}return String.fromCodePoint.apply(String,n)},E=function(e){var t=[],n=(e=b(e)).length,r=128,a=0,o=72,i=!0,s=!1,l=void 0;try{for(var f,d=e[Symbol.iterator]();!(i=(f=d.next()).done);i=!0){var p=f.value;p<128&&t.push(g(p))}}catch(e){s=!0,l=e}finally{try{!i&&d.return&&d.return()}finally{if(s)throw l}}var h=t.length,y=h;for(h&&t.push("-");y<n;){var x=u,E=!0,k=!1,S=void 0;try{for(var $,P=e[Symbol.iterator]();!(E=($=P.next()).done);E=!0){var O=$.value;O>=r&&O<x&&(x=O)}}catch(e){k=!0,S=e}finally{try{!E&&P.return&&P.return()}finally{if(k)throw S}}var C=y+1;x-r>m((u-a)/C)&&v("overflow"),a+=(x-r)*C,r=x;var j=!0,N=!1,I=void 0;try{for(var T,A=e[Symbol.iterator]();!(j=(T=A.next()).done);j=!0){var R=T.value;if(R<r&&++a>u&&v("overflow"),R==r){for(var D=a,M=c;;M+=c){var F=M<=o?1:M>=o+26?26:M-o;if(D<F)break;var z=D-F,L=c-F;t.push(g(w(F+z%L,0))),D=m(z/L)}t.push(g(w(D,0))),o=_(a,C,y==h),a=0,++y}}}catch(e){N=!0,I=e}finally{try{!j&&A.return&&A.return()}finally{if(N)throw I}}++a,++r}return t.join("")},k={version:"2.1.0",ucs2:{decode:b,encode:function(e){return String.fromCodePoint.apply(String,function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}(e))}},decode:x,encode:E,toASCII:function(e){return y(e,(function(e){return d.test(e)?"xn--"+E(e):e}))},toUnicode:function(e){return y(e,(function(e){return f.test(e)?x(e.slice(4).toLowerCase()):e}))}},S={};function $(e){var t=e.charCodeAt(0);return t<16?"%0"+t.toString(16).toUpperCase():t<128?"%"+t.toString(16).toUpperCase():t<2048?"%"+(t>>6|192).toString(16).toUpperCase()+"%"+(63&t|128).toString(16).toUpperCase():"%"+(t>>12|224).toString(16).toUpperCase()+"%"+(t>>6&63|128).toString(16).toUpperCase()+"%"+(63&t|128).toString(16).toUpperCase()}function P(e){for(var t="",n=0,r=e.length;n<r;){var a=parseInt(e.substr(n+1,2),16);if(a<128)t+=String.fromCharCode(a),n+=3;else if(a>=194&&a<224){if(r-n>=6){var o=parseInt(e.substr(n+4,2),16);t+=String.fromCharCode((31&a)<<6|63&o)}else t+=e.substr(n,6);n+=6}else if(a>=224){if(r-n>=9){var i=parseInt(e.substr(n+4,2),16),s=parseInt(e.substr(n+7,2),16);t+=String.fromCharCode((15&a)<<12|(63&i)<<6|63&s)}else t+=e.substr(n,9);n+=9}else t+=e.substr(n,3),n+=3}return t}function O(e,t){function n(e){var n=P(e);return n.match(t.UNRESERVED)?n:e}return e.scheme&&(e.scheme=String(e.scheme).replace(t.PCT_ENCODED,n).toLowerCase().replace(t.NOT_SCHEME,"")),void 0!==e.userinfo&&(e.userinfo=String(e.userinfo).replace(t.PCT_ENCODED,n).replace(t.NOT_USERINFO,$).replace(t.PCT_ENCODED,a)),void 0!==e.host&&(e.host=String(e.host).replace(t.PCT_ENCODED,n).toLowerCase().replace(t.NOT_HOST,$).replace(t.PCT_ENCODED,a)),void 0!==e.path&&(e.path=String(e.path).replace(t.PCT_ENCODED,n).replace(e.scheme?t.NOT_PATH:t.NOT_PATH_NOSCHEME,$).replace(t.PCT_ENCODED,a)),void 0!==e.query&&(e.query=String(e.query).replace(t.PCT_ENCODED,n).replace(t.NOT_QUERY,$).replace(t.PCT_ENCODED,a)),void 0!==e.fragment&&(e.fragment=String(e.fragment).replace(t.PCT_ENCODED,n).replace(t.NOT_FRAGMENT,$).replace(t.PCT_ENCODED,a)),e}function C(e){return e.replace(/^0*(.*)/,"$1")||"0"}function j(e,t){var n=e.match(t.IPV4ADDRESS)||[],r=l(n,2)[1];return r?r.split(".").map(C).join("."):e}function N(e,t){var n=e.match(t.IPV6ADDRESS)||[],r=l(n,3),a=r[1],o=r[2];if(a){for(var i=a.toLowerCase().split("::").reverse(),s=l(i,2),u=s[0],c=s[1],f=c?c.split(":").map(C):[],d=u.split(":").map(C),p=t.IPV4ADDRESS.test(d[d.length-1]),h=p?7:8,m=d.length-h,g=Array(h),v=0;v<h;++v)g[v]=f[v]||d[m+v]||"";p&&(g[h-1]=j(g[h-1],t));var y=g.reduce((function(e,t,n){if(!t||"0"===t){var r=e[e.length-1];r&&r.index+r.length===n?r.length++:e.push({index:n,length:1})}return e}),[]).sort((function(e,t){return t.length-e.length}))[0],b=void 0;if(y&&y.length>1){var w=g.slice(0,y.index),_=g.slice(y.index+y.length);b=w.join(":")+"::"+_.join(":")}else b=g.join(":");return o&&(b+="%"+o),b}return e}var I=/^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i,T=void 0==="".match(/(){0}/)[1];function A(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={},r=!1!==t.iri?s:i;"suffix"===t.reference&&(e=(t.scheme?t.scheme+":":"")+"//"+e);var a=e.match(I);if(a){T?(n.scheme=a[1],n.userinfo=a[3],n.host=a[4],n.port=parseInt(a[5],10),n.path=a[6]||"",n.query=a[7],n.fragment=a[8],isNaN(n.port)&&(n.port=a[5])):(n.scheme=a[1]||void 0,n.userinfo=-1!==e.indexOf("@")?a[3]:void 0,n.host=-1!==e.indexOf("//")?a[4]:void 0,n.port=parseInt(a[5],10),n.path=a[6]||"",n.query=-1!==e.indexOf("?")?a[7]:void 0,n.fragment=-1!==e.indexOf("#")?a[8]:void 0,isNaN(n.port)&&(n.port=e.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/)?a[4]:void 0)),n.host&&(n.host=N(j(n.host,r),r)),void 0!==n.scheme||void 0!==n.userinfo||void 0!==n.host||void 0!==n.port||n.path||void 0!==n.query?void 0===n.scheme?n.reference="relative":void 0===n.fragment?n.reference="absolute":n.reference="uri":n.reference="same-document",t.reference&&"suffix"!==t.reference&&t.reference!==n.reference&&(n.error=n.error||"URI is not a "+t.reference+" reference.");var o=S[(t.scheme||n.scheme||"").toLowerCase()];if(t.unicodeSupport||o&&o.unicodeSupport)O(n,r);else{if(n.host&&(t.domainHost||o&&o.domainHost))try{n.host=k.toASCII(n.host.replace(r.PCT_ENCODED,P).toLowerCase())}catch(e){n.error=n.error||"Host's domain name can not be converted to ASCII via punycode: "+e}O(n,i)}o&&o.parse&&o.parse(n,t)}else n.error=n.error||"URI can not be parsed.";return n}var R=/^\.\.?\//,D=/^\/\.(\/|$)/,M=/^\/\.\.(\/|$)/,F=/^\/?(?:.|\n)*?(?=\/|$)/;function z(e){for(var t=[];e.length;)if(e.match(R))e=e.replace(R,"");else if(e.match(D))e=e.replace(D,"/");else if(e.match(M))e=e.replace(M,"/"),t.pop();else if("."===e||".."===e)e="";else{var n=e.match(F);if(!n)throw new Error("Unexpected dot segment condition");var r=n[0];e=e.slice(r.length),t.push(r)}return t.join("")}function L(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.iri?s:i,r=[],a=S[(t.scheme||e.scheme||"").toLowerCase()];if(a&&a.serialize&&a.serialize(e,t),e.host)if(n.IPV6ADDRESS.test(e.host));else if(t.domainHost||a&&a.domainHost)try{e.host=t.iri?k.toUnicode(e.host):k.toASCII(e.host.replace(n.PCT_ENCODED,P).toLowerCase())}catch(n){e.error=e.error||"Host's domain name can not be converted to "+(t.iri?"Unicode":"ASCII")+" via punycode: "+n}O(e,n),"suffix"!==t.reference&&e.scheme&&(r.push(e.scheme),r.push(":"));var o=function(e,t){var n=!1!==t.iri?s:i,r=[];return void 0!==e.userinfo&&(r.push(e.userinfo),r.push("@")),void 0!==e.host&&r.push(N(j(String(e.host),n),n).replace(n.IPV6ADDRESS,(function(e,t,n){return"["+t+(n?"%25"+n:"")+"]"}))),"number"!=typeof e.port&&"string"!=typeof e.port||(r.push(":"),r.push(String(e.port))),r.length?r.join(""):void 0}(e,t);if(void 0!==o&&("suffix"!==t.reference&&r.push("//"),r.push(o),e.path&&"/"!==e.path.charAt(0)&&r.push("/")),void 0!==e.path){var l=e.path;t.absolutePath||a&&a.absolutePath||(l=z(l)),void 0===o&&(l=l.replace(/^\/\//,"/%2F")),r.push(l)}return void 0!==e.query&&(r.push("?"),r.push(e.query)),void 0!==e.fragment&&(r.push("#"),r.push(e.fragment)),r.join("")}function V(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r={};return arguments[3]||(e=A(L(e,n),n),t=A(L(t,n),n)),!(n=n||{}).tolerant&&t.scheme?(r.scheme=t.scheme,r.userinfo=t.userinfo,r.host=t.host,r.port=t.port,r.path=z(t.path||""),r.query=t.query):(void 0!==t.userinfo||void 0!==t.host||void 0!==t.port?(r.userinfo=t.userinfo,r.host=t.host,r.port=t.port,r.path=z(t.path||""),r.query=t.query):(t.path?("/"===t.path.charAt(0)?r.path=z(t.path):(void 0===e.userinfo&&void 0===e.host&&void 0===e.port||e.path?e.path?r.path=e.path.slice(0,e.path.lastIndexOf("/")+1)+t.path:r.path=t.path:r.path="/"+t.path,r.path=z(r.path)),r.query=t.query):(r.path=e.path,void 0!==t.query?r.query=t.query:r.query=e.query),r.userinfo=e.userinfo,r.host=e.host,r.port=e.port),r.scheme=e.scheme),r.fragment=t.fragment,r}function U(e,t){return e&&e.toString().replace(t&&t.iri?s.PCT_ENCODED:i.PCT_ENCODED,P)}var q={scheme:"http",domainHost:!0,parse:function(e,t){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e},serialize:function(e,t){var n="https"===String(e.scheme).toLowerCase();return e.port!==(n?443:80)&&""!==e.port||(e.port=void 0),e.path||(e.path="/"),e}},B={scheme:"https",domainHost:q.domainHost,parse:q.parse,serialize:q.serialize};function H(e){return"boolean"==typeof e.secure?e.secure:"wss"===String(e.scheme).toLowerCase()}var W={scheme:"ws",domainHost:!0,parse:function(e,t){var n=e;return n.secure=H(n),n.resourceName=(n.path||"/")+(n.query?"?"+n.query:""),n.path=void 0,n.query=void 0,n},serialize:function(e,t){if(e.port!==(H(e)?443:80)&&""!==e.port||(e.port=void 0),"boolean"==typeof e.secure&&(e.scheme=e.secure?"wss":"ws",e.secure=void 0),e.resourceName){var n=e.resourceName.split("?"),r=l(n,2),a=r[0],o=r[1];e.path=a&&"/"!==a?a:void 0,e.query=o,e.resourceName=void 0}return e.fragment=void 0,e}},K={scheme:"wss",domainHost:W.domainHost,parse:W.parse,serialize:W.serialize},Q={},G="[A-Za-z0-9\\-\\.\\_\\~\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]",J="[0-9A-Fa-f]",Y=n(n("%[EFef]"+J+"%"+J+J+"%"+J+J)+"|"+n("%[89A-Fa-f]"+J+"%"+J+J)+"|"+n("%"+J+J)),Z=t("[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]",'[\\"\\\\]'),X=new RegExp(G,"g"),ee=new RegExp(Y,"g"),te=new RegExp(t("[^]","[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]","[\\.]",'[\\"]',Z),"g"),ne=new RegExp(t("[^]",G,"[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]"),"g"),re=ne;function ae(e){var t=P(e);return t.match(X)?t:e}var oe={scheme:"mailto",parse:function(e,t){var n=e,r=n.to=n.path?n.path.split(","):[];if(n.path=void 0,n.query){for(var a=!1,o={},i=n.query.split("&"),s=0,l=i.length;s<l;++s){var u=i[s].split("=");switch(u[0]){case"to":for(var c=u[1].split(","),f=0,d=c.length;f<d;++f)r.push(c[f]);break;case"subject":n.subject=U(u[1],t);break;case"body":n.body=U(u[1],t);break;default:a=!0,o[U(u[0],t)]=U(u[1],t)}}a&&(n.headers=o)}n.query=void 0;for(var p=0,h=r.length;p<h;++p){var m=r[p].split("@");if(m[0]=U(m[0]),t.unicodeSupport)m[1]=U(m[1],t).toLowerCase();else try{m[1]=k.toASCII(U(m[1],t).toLowerCase())}catch(e){n.error=n.error||"Email address's domain name can not be converted to ASCII via punycode: "+e}r[p]=m.join("@")}return n},serialize:function(e,t){var n,r=e,o=null!=(n=e.to)?n instanceof Array?n:"number"!=typeof n.length||n.split||n.setInterval||n.call?[n]:Array.prototype.slice.call(n):[];if(o){for(var i=0,s=o.length;i<s;++i){var l=String(o[i]),u=l.lastIndexOf("@"),c=l.slice(0,u).replace(ee,ae).replace(ee,a).replace(te,$),f=l.slice(u+1);try{f=t.iri?k.toUnicode(f):k.toASCII(U(f,t).toLowerCase())}catch(e){r.error=r.error||"Email address's domain name can not be converted to "+(t.iri?"Unicode":"ASCII")+" via punycode: "+e}o[i]=c+"@"+f}r.path=o.join(",")}var d=e.headers=e.headers||{};e.subject&&(d.subject=e.subject),e.body&&(d.body=e.body);var p=[];for(var h in d)d[h]!==Q[h]&&p.push(h.replace(ee,ae).replace(ee,a).replace(ne,$)+"="+d[h].replace(ee,ae).replace(ee,a).replace(re,$));return p.length&&(r.query=p.join("&")),r}},ie=/^([^\:]+)\:(.*)/,se={scheme:"urn",parse:function(e,t){var n=e.path&&e.path.match(ie),r=e;if(n){var a=t.scheme||r.scheme||"urn",o=n[1].toLowerCase(),i=n[2],s=a+":"+(t.nid||o),l=S[s];r.nid=o,r.nss=i,r.path=void 0,l&&(r=l.parse(r,t))}else r.error=r.error||"URN can not be parsed.";return r},serialize:function(e,t){var n=t.scheme||e.scheme||"urn",r=e.nid,a=n+":"+(t.nid||r),o=S[a];o&&(e=o.serialize(e,t));var i=e,s=e.nss;return i.path=(r||t.nid)+":"+s,i}},le=/^[0-9A-Fa-f]{8}(?:\-[0-9A-Fa-f]{4}){3}\-[0-9A-Fa-f]{12}$/,ue={scheme:"urn:uuid",parse:function(e,t){var n=e;return n.uuid=n.nss,n.nss=void 0,t.tolerant||n.uuid&&n.uuid.match(le)||(n.error=n.error||"UUID is not valid."),n},serialize:function(e,t){var n=e;return n.nss=(e.uuid||"").toLowerCase(),n}};S[q.scheme]=q,S[B.scheme]=B,S[W.scheme]=W,S[K.scheme]=K,S[oe.scheme]=oe,S[se.scheme]=se,S[ue.scheme]=ue,e.SCHEMES=S,e.pctEncChar=$,e.pctDecChars=P,e.parse=A,e.removeDotSegments=z,e.serialize=L,e.resolveComponents=V,e.resolve=function(e,t,n){var r=function(e,t){var n=e;if(t)for(var r in t)n[r]=t[r];return n}({scheme:"null"},n);return L(V(A(e,r),A(t,r),r,!0),r)},e.normalize=function(e,t){return"string"==typeof e?e=L(A(e,t),t):"object"===r(e)&&(e=A(L(e,t),t)),e},e.equal=function(e,t,n){return"string"==typeof e?e=L(A(e,n),n):"object"===r(e)&&(e=L(e,n)),"string"==typeof t?t=L(A(t,n),n):"object"===r(t)&&(t=L(t,n)),e===t},e.escapeComponent=function(e,t){return e&&e.toString().replace(t&&t.iri?s.ESCAPE:i.ESCAPE,$)},e.unescapeComponent=U,Object.defineProperty(e,"__esModule",{value:!0})}(t)},4775:e=>{"use strict";e.exports=JSON.parse('{"$id":"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#","description":"Meta-schema for $data reference (JSON AnySchema extension proposal)","type":"object","required":["$data"],"properties":{"$data":{"type":"string","anyOf":[{"format":"relative-json-pointer"},{"format":"json-pointer"}]}},"additionalProperties":false}')},98:e=>{"use strict";e.exports=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema#","$id":"http://json-schema.org/draft-07/schema#","title":"Core schema meta-schema","definitions":{"schemaArray":{"type":"array","minItems":1,"items":{"$ref":"#"}},"nonNegativeInteger":{"type":"integer","minimum":0},"nonNegativeIntegerDefault0":{"allOf":[{"$ref":"#/definitions/nonNegativeInteger"},{"default":0}]},"simpleTypes":{"enum":["array","boolean","integer","null","number","object","string"]},"stringArray":{"type":"array","items":{"type":"string"},"uniqueItems":true,"default":[]}},"type":["object","boolean"],"properties":{"$id":{"type":"string","format":"uri-reference"},"$schema":{"type":"string","format":"uri"},"$ref":{"type":"string","format":"uri-reference"},"$comment":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"default":true,"readOnly":{"type":"boolean","default":false},"examples":{"type":"array","items":true},"multipleOf":{"type":"number","exclusiveMinimum":0},"maximum":{"type":"number"},"exclusiveMaximum":{"type":"number"},"minimum":{"type":"number"},"exclusiveMinimum":{"type":"number"},"maxLength":{"$ref":"#/definitions/nonNegativeInteger"},"minLength":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"pattern":{"type":"string","format":"regex"},"additionalItems":{"$ref":"#"},"items":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/schemaArray"}],"default":true},"maxItems":{"$ref":"#/definitions/nonNegativeInteger"},"minItems":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"uniqueItems":{"type":"boolean","default":false},"contains":{"$ref":"#"},"maxProperties":{"$ref":"#/definitions/nonNegativeInteger"},"minProperties":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"required":{"$ref":"#/definitions/stringArray"},"additionalProperties":{"$ref":"#"},"definitions":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"properties":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"patternProperties":{"type":"object","additionalProperties":{"$ref":"#"},"propertyNames":{"format":"regex"},"default":{}},"dependencies":{"type":"object","additionalProperties":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/stringArray"}]}},"propertyNames":{"$ref":"#"},"const":true,"enum":{"type":"array","items":true,"minItems":1,"uniqueItems":true},"type":{"anyOf":[{"$ref":"#/definitions/simpleTypes"},{"type":"array","items":{"$ref":"#/definitions/simpleTypes"},"minItems":1,"uniqueItems":true}]},"format":{"type":"string"},"contentMediaType":{"type":"string"},"contentEncoding":{"type":"string"},"if":{"$ref":"#"},"then":{"$ref":"#"},"else":{"$ref":"#"},"allOf":{"$ref":"#/definitions/schemaArray"},"anyOf":{"$ref":"#/definitions/schemaArray"},"oneOf":{"$ref":"#/definitions/schemaArray"},"not":{"$ref":"#"}},"default":true}')}},t={};function n(r){var a=t[r];if(void 0!==a)return a.exports;var o=t[r]={id:r,loaded:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.loaded=!0,o.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),n.nc=void 0;var r={};(()=>{"use strict";n.d(r,{Z:()=>Na});var e=n(7294),t=n(3935),a=n(8465);const o={title:"Feedback widget",labels:{en:{step1Title:"Was this page helpful?",step2Title:"How can we do better?",step3Title:"Thank you for your feedback",cancelButtonText:"Cancel",submitButtonText:"Submit",doneButtonText:"Done"}},themes:{ripplex:{position:"right",styles:{playground:{backgroundColor:"#23292F",left:0,bottom:0,height:300,position:"fixed"},colors:{primary:"blue",secondary:"red"},font:{family:"Roboto",baseWeight:"12px",baseColor:"primary"},container:{fontFamily:"Roboto",color:"#000000",backgroundColor:"#FFFFFF",borderColor:"",borderRadius:2,padding:0,margin:0,width:360,right:36,bottom:36},yesIcon:{backgroundImage:"url(/assets/thumb.svg)"},noIcon:{backgroundImage:"url(/assets/thumb.svg)"},step1header:{color:"#000000",fontWeight:"bold",fontSize:15,background:"#F5F7F9",paddingRight:20},step2header:{color:"#000000",fontWeight:"bold",fontSize:15,background:"#F5F7F9"},step3:{background:"radial-gradient(156.83% 78.7% at 61.88% 86.04%, rgba(23, 28, 33, 0) 0%, #031B36 100%), radial-gradient(44.33% 47.76% at 5.74% 42.2%, rgba(20, 153, 249, 0.8) 32.68%, rgba(15, 114, 229, 0) 100%), radial-gradient(77.84% 153.29% at 83.57% 149.34%, #1499F9 0%, rgba(16, 131, 231, 0.9) 41.91%, rgba(15, 114, 229, 0) 93.71%), #063975",lineHeight:30,paddingLeft:10,height:150},inputForm:{height:100,width:"90%",margin:10,border:"1px solid #171C21"},formCancelButton:{color:"#999DA2",border:"none",fontSize:15,backgroundColor:"transparent","&:hover":{color:"#494949",background:"#ffffff"}},formSubmitButton:{color:"#ffffff",fontSize:15,backgroundColor:"#0F72E5",border:"1px solid #0F72E5",borderRadius:4},thankyouDoneButton:{color:"#ffffff",fontSize:15,backgroundColor:"#0F72E5",border:"1px solid #0F72E5",borderRadius:4}}},xrpl:{position:"right",styles:{playground:{backgroundColor:"black",left:0,bottom:0,height:300,position:"fixed"},colors:{primary:"Gold",secondary:"Black"},font:{family:"Work Sans",baseWeight:"12px",baseColor:"primary"},container:{fontFamily:"Work Sans",color:"white",backgroundColor:"#000000",border:"2px solid #FFFFFF",borderColor:"#FFFFFF",borderRadius:0,padding:0,margin:0,width:360,right:36,bottom:100},yesIcon:{backgroundImage:"url(/assets/img/fb-thumb.svg)"},noIcon:{backgroundImage:"url(/assets/img/fb-thumb.svg)"},step1header:{color:"#ffffff",fontWeight:"bold",fontSize:15,background:"#000000",paddingRight:20},step2header:{backgroundImage:"url(/assets/img/fb-step2header.png)",backgroundRepeat:"no-repeat",color:"#ffffff",fontWeight:"bold",fontSize:15},step2formarea:{background:"#ffffff"},step2footer:{background:"#ffffff",paddingRight:15},step3:{backgroundImage:"url(/assets/img/fb-background.png)",backgroundRepeat:"no-repeat",lineHeight:30,paddingLeft:60,paddingRight:60,height:150},inputForm:{height:100,width:"90%",margin:10,border:"1px solid #171C21",opacity:.5},formCancelButton:{color:"#999DA2",border:"none",fontSize:15,backgroundColor:"transparent","&:hover":{color:"#494949",background:"#ffffff"}},formSubmitButton:{color:"#171C21",fontSize:15,fontWeight:"bold",backgroundColor:"#ffffff",border:"2px solid #171C21",borderRadius:0,padding:"8px 16px !important"},thankyouDoneButton:{color:"#fff",fontSize:15,fontWeight:"bold",backgroundColor:"#000000",border:"2px solid #fff",borderRadius:0}}},paystring:{position:"left",styles:{playground:{backgroundColor:"#000e33",left:0,bottom:0,height:300,position:"fixed"},colors:{primary:"green",secondary:"blue"},font:{family:"test",baseWeight:"12px",baseColor:"primary"},container:{fontFamily:"Roboto",color:"#000000",backgroundColor:"#FFFFFF",borderWidth:1,borderStyle:"solid",borderColor:"#e1e4e8",borderRadius:12,padding:0,margin:0,width:360,left:36,bottom:36},yesIcon:{backgroundImage:"url(/assets/thumb.svg)"},noIcon:{backgroundImage:"url(/assets/thumb.svg)"},step1header:{color:"#000000",fontWeight:"bold",fontSize:15,background:"#F5F7F9",paddingRight:20},step2header:{color:"#000000",fontWeight:"bold",fontSize:15,background:"#F5F7F9",borderRadius:"10px 10px 0 0"},step3:{backgroundImage:"url(/assets/feedback_background.png)",lineHeight:30,paddingLeft:10,height:150,borderRadius:12},inputForm:{height:100,width:"90%",margin:10},formCancelButton:{color:"#999DA2",border:"none",fontSize:15,backgroundColor:"transparent","&:hover":{color:"#494949",background:"#ffffff"}},formSubmitButton:{color:"#ffffff",fontSize:15,backgroundColor:"#FF8100",border:"1px solid #FF8100",borderRadius:4},thankyouDoneButton:{color:"#ffffff",fontSize:15,backgroundColor:"#FF8100",border:"1px solid #FF8100",borderRadius:4}}}}};var i=n(6678),s=n.n(i),l=n(8446),u=n.n(l),c=n(7557),f=n.n(c),d=n(1921),p=n.n(d),h=n(7361),m=n.n(h);const g=/[.[\]]/,v=/"/g;function y(e){return""===e||g.test(e)?`["${e.replace(v,'\\"')}"]`:e}function b(e,t){const n=y(e);return n===e?t?`.${e}`:e:n}const w=/^\["(.*)"]$/,_=/\\"/g;function x(e){const t=w.exec(e);return t?t[1].replace(_,'"'):e}const E=/^([^.[\]]*(?:\.[^.[\]]+)*)(?:\.?(\["(?:(?:[^"]|\\")*?[^\\])?"])\.?(.*))?$/,k=Object.assign((function(...e){const t=null===e[0],n=[];for(let t=0;t!==e.length;++t){const r=e[t];if(r||0===r)if("string"==typeof r){const a=E.exec(r);if(a){const[,r,o,i]=a;r&&(r.includes(".")?n.push(...r.split(".")):n.push(r)),o&&(n.push(x(o)),i&&(e[t--]=i))}else n.push(r)}else if(Array.isArray(r)){if(r.length){const n=Math.min(t+1,r.length);t-=n,e.splice(t+1,n,...r)}}else n.push(""+r)}return t?n.map(y):n.map(b).join("")}),{escape:y,unescape:x});function S(e){return!(!e||e!==Object(e)||e instanceof Date)}const $=(0,e.createContext)(null);function P(e){let t=0;return()=>`${e}-${("000"+(t++).toString(36)).slice(-4)}`}const O=P("uniforms");class C extends e.Component{constructor(e){super(e),this.state={changed:!1,changedMap:Object.create(null),resetCount:0,submitted:!1,submitting:!1},this.mounted=!1,this.randomId=function(e=O()){return P(e)}(this.props.id),this.onReset=this.reset=this.onReset.bind(this),this.onChange=this.change=this.onChange.bind(this),this.onSubmit=this.submit=this.onSubmit.bind(this);const t=this.getModel.bind(this);this.getModel=(e,n=t(e))=>void 0!==e&&this.props.modelTransform?this.props.modelTransform(e,n):n}componentDidMount(){this.mounted=!0}componentDidUpdate(e,t,n){}componentWillUnmount(){this.mounted=!1,this.delayId&&clearTimeout(this.delayId),this.setState=()=>{}}getContext(){return{changed:this.state.changed,changedMap:this.state.changedMap,error:this.getContextError(),formRef:this,model:this.getContextModel(),name:this.getContextName(),onChange:this.getContextOnChange(),onSubmit:this.getContextOnSubmit(),randomId:this.randomId,schema:this.getContextSchema(),state:this.getContextState(),submitted:this.state.submitted,submitting:this.state.submitting,validating:!1}}getContextName(){return[]}getContextError(){return this.props.error}getContextModel(){return this.getModel("form")}getContextState(){return{disabled:!!this.props.disabled,label:!!this.props.label,placeholder:!!this.props.placeholder,readOnly:!!this.props.readOnly,showInlineError:!!this.props.showInlineError}}getContextSchema(){return this.props.schema}getContextOnChange(){return this.onChange}getContextOnSubmit(){return this.onSubmit}getModel(e,t=this.props.model){return t}getNativeFormProps(){const e=f()(this.props,["autosave","autosaveDelay","disabled","error","label","model","modelTransform","onChange","onSubmit","placeholder","readOnly","schema","showInlineError"]);return Object.assign(Object.assign({},e),{onSubmit:this.onSubmit,key:`reset-${this.state.resetCount}`})}onChange(e,t){if(this.mounted){const n=function(e,t,n){if(!S(t)||n&&typeof t!=typeof n)return u()(t,n)?[]:[e];const r=[e];if(S(n)){for(const a in t)a in n&&u()(t[a],n[a])||r.push(k(e,a));for(const a in n)a in t||r.push(k(e,a));1===r.length&&r.pop()}else for(const n in t)r.push(k(e,n));return r}(e,t,m()(this.getModel(),e));0!==n.length&&this.setState((e=>e.changed&&n.every((t=>!!m()(e.changedMap,t)))?null:{changed:!0,changedMap:n.reduce(((e,t)=>p()(e,t,{},s())),s()(e.changedMap))}))}this.props.onChange&&this.props.onChange(e,t),this.mounted&&this.props.autosave&&(this.delayId&&(this.delayId=clearTimeout(this.delayId)),this.delayId=setTimeout((()=>{this.setState((()=>null),(()=>{this.onSubmit()}))}),this.props.autosaveDelay))}__reset(e){return{changed:!1,changedMap:Object.create(null),resetCount:e.resetCount+1,submitted:!1,submitting:!1}}onReset(){this.setState(this.__reset)}onSubmit(e){e&&(e.preventDefault(),e.stopPropagation()),this.setState((e=>e.submitted?null:{submitted:!0}));const t=this.props.onSubmit(this.getModel("submit"));return t instanceof Promise?(this.setState({submitting:!0}),t.finally((()=>{this.setState({submitting:!1})}))):Promise.resolve()}render(){return e.createElement($.Provider,{value:this.getContext()},e.createElement("form",Object.assign({},this.getNativeFormProps())))}}function j(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n}function N(t){class n extends t{getNativeFormProps(){const t=super.getNativeFormProps(),{autoField:n=this.getAutoField(),errorsField:r=this.getErrorsField(),submitField:a=this.getSubmitField()}=t,o=j(t,["autoField","errorsField","submitField"]);return o.children||(o.children=this.getContextSchema().getSubfields().map((t=>e.createElement(n,{key:t,name:t}))).concat([e.createElement(r,{key:"$ErrorsField"}),e.createElement(a,{key:"$SubmitField"})])),o}getAutoField(){return()=>null}getErrorsField(){return()=>null}getSubmitField(){return()=>null}}return n.Quick=N,n.displayName=`Quick${t.displayName}`,n}C.displayName="Form",C.defaultProps={autosave:!1,autosaveDelay:0,error:null,label:!0,model:Object.create(null),noValidate:!0,onSubmit(){}},Object.create,Object.create;const I=N(C);var T=n(361),A=n.n(T),R=n(308),D=n.n(R);function M(e){class t extends e{constructor(e){super(e),this.state=Object.assign(Object.assign({},this.state),{error:null,validate:!1,validating:!1,validator:this.getContextSchema().getValidator(e.validator)}),this.onValidate=this.validate=this.onValidate.bind(this),this.onValidateModel=this.validateModel=this.onValidateModel.bind(this)}getContextError(){var e;return null!==(e=super.getContextError())&&void 0!==e?e:this.state.error}getContext(){return Object.assign(Object.assign({},super.getContext()),{validating:this.state.validating})}getNativeFormProps(){const e=super.getNativeFormProps();return f()(e,["onValidate","validate","validator"])}componentDidUpdate(e,t,n){super.componentDidUpdate(e,t,n);const{model:r,schema:a,validate:o,validator:i}=this.props;a!==e.schema||i!==e.validator?this.setState({validator:a.getValidator(i)},(()=>{F(o,this.state.validate)&&this.onValidate()})):!u()(r,e.model)&&F(o,this.state.validate)&&this.onValidateModel(r)}onChange(e,t){F(this.props.validate,this.state.validate)&&this.onValidate(e,t),super.onChange(e,t)}__reset(e){return Object.assign(Object.assign({},super.__reset(e)),{error:null,validate:!1,validating:!1})}onSubmit(e){e&&(e.preventDefault(),e.stopPropagation()),this.setState({submitted:!0,validate:!0});const t=this.onValidate().then((e=>null!==e?Promise.reject(e):super.onSubmit().catch((e=>{throw this.setState({error:e}),e}))));return t.catch(D()),t}onValidate(e,t){let n=this.getContextModel();return n&&e&&(n=p()(s()(n),e,A()(t),s())),this.onValidateModel(n)}onValidateModel(e){const t=this.getModel("validate",e),n=(r=()=>{this.setState({validating:!0})},function(e,t){return e instanceof Promise?(r(),e.then(t)):t(e)});var r;return n(this.state.validator(t),((e=null)=>n(this.props.onValidate(t,e),((e=null)=>{var t;return e=this.props.error===e?null:e,this.setState((t=>t.error!==e||t.validating?{error:e,validating:!1}:null)),Promise.resolve(null!==(t=this.props.error)&&void 0!==t?t:e)}))))}}return t.Validated=M,t.displayName=`Validated${e.displayName}`,t.defaultProps=Object.assign(Object.assign({},e.defaultProps),{onValidate:(e,t)=>t,validate:"onChangeAfterSubmit"}),t}function F(e,t){return"onChange"===e||"onChangeAfterSubmit"===e&&t}const z=M(C),L=function e(t){class n extends t{constructor(e){super(e),this.state=Object.assign(Object.assign({},this.state),{model:e.model})}componentDidUpdate(e,t,n){const{model:r}=this.props;u()(r,e.model)||this.setState({model:r}),super.componentDidUpdate(e,t,n)}getNativeFormProps(){const e=super.getNativeFormProps();return f()(e,["onChangeModel"])}getModel(e){return this.state.model}onChange(e,t){super.onChange(e,t),this.setState((n=>({model:p()(s()(n.model),e,t,s())})),(()=>{this.props.onChangeModel&&this.props.onChangeModel(this.state.model)}))}__reset(e){return Object.assign(Object.assign({},super.__reset(e)),{model:this.props.model})}}return n.Auto=e,n.displayName=`Auto${t.displayName}`,n}(M(N(C))),V=function e(t){class n extends t{}return n.Unstyled=e,n.displayName=`Unstyled${t.displayName}`,n}(C);var U=n(1143),q=n.n(U),B=n(6604),H=n.n(B);function W(){const t=(0,e.useContext)($);return q()(null!==t,"useForm must be used within a form.\n\nTwo most common reasons for this error are:\n1. Component calling this function doesn't have a parent Form component in the tree.\n2. A duplicate uniforms dependency is installed in node_modules.\n\nFor more info check FAQ: https://uniforms.tools/docs/faq/#useform-must-be-used-within-a-form\n "),t}function K(e,t,n,r){const a=!0===e||void 0===e,o=!0===t||void 0===t,i=o?r:t;return[""===e||!1===e||null===e||a&&(o||!n)?"":a?i:e,i]}function Q(t,n,r){var a;const o=W(),i=k((null==r?void 0:r.absoluteName)?"":o.name,t),s=o.schema.getField(i),l=!1!==(null==r?void 0:r.initialValue),u=l?(0,e.useRef)(!1):{current:!1},c=H()(o.state,((e,t)=>{const r=n[t];return null!=r?!!r:e})),f=!!m()(o.changedMap,i),d=o.schema.getError(i,o.error),p=o.schema.getErrorMessage(i,o.error),h=o.schema.getType(i),g=o.schema.getSubfields(i),v=o.schema.getProps(i,Object.assign(Object.assign({},c),n)),[y,b]=K(n.label,v.label,c.label,""),[w]=K(n.placeholder,v.placeholder,c.placeholder,y||b),_=(0,e.useMemo)((()=>o.randomId()),[]),x=(0,e.useCallback)(((e,t=i)=>{u.current=!0,o.onChange(t,e)}),[o.onChange,i]),E=m()(o.model,i);let S,$=null!==(a=n.value)&&void 0!==a?a:E;return l&&(u.current||(void 0===$?($=o.schema.getInitialValue(i,n),S=$):void 0!==n.value&&n.value!==E&&(S=n.value)),(0,e.useEffect)((()=>{var e;(null!==(e=n.required)&&void 0!==e?e:v.required)&&void 0!==S&&x(S)}),[])),[Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({id:_},c),{changed:f,error:d,errorMessage:p,field:s,fieldType:h,fields:g,onChange:x,value:$}),v),n),{label:y,name:i,placeholder:w}),o]}const G=[],J=new Set,Y=Object.assign((function(e){const t=Object.assign({},e);for(const n in e)J.has(n)&&delete t[n];return t}),{register(...e){e.forEach((e=>{J.has(e)||(G.push(e),J.add(e))})),G.sort()},registered:G});function Z(t,n){function r(r){const[a,o]=Q(r.name,r,n),i=function(e,t,n){if("leaf"===(null==n?void 0:n.kind))return e;const r=""!==t.name,a=Object.keys(e.state).some((e=>null!=t[e]));if(!r&&!a)return e;const o=Object.assign({},e);return r&&(o.name=o.name.concat(t.name)),a&&(o.state=H()(o.state,((e,n)=>{const r=t[n];return null!=r?!!r:e}))),o}(o,r,n),s=e.createElement(t,Object.assign({},r,a));return o===i?s:e.createElement($.Provider,{children:s,value:i})}return r.displayName=`${t.displayName||t.name}Field`,Object.assign(r,{Component:t,options:n})}Y.register("changed","error","errorMessage","field","fieldType","fields","initialCount","name","onChange","transform","value","disabled","label","placeholder","showInlineError","component","allowedValues");const X=Z((function(t){var{disabled:n,id:r,inputRef:a,label:o,name:i,onChange:s,readOnly:l,value:u}=t,c=j(t,["disabled","id","inputRef","label","name","onChange","readOnly","value"]);return e.createElement("div",Object.assign({},Y(c)),e.createElement("input",{checked:u||!1,disabled:n,id:r,name:i,onChange:()=>!n&&!l&&s(!u),ref:a,type:"checkbox"}),o&&e.createElement("label",{htmlFor:r},o))}),{kind:"leaf"}),ee=("object"==typeof n.g?n.g:window).Date,te=(e,t="datetime-local")=>null==e?void 0:e.toISOString().slice(0,"datetime-local"===t?-8:-14),ne=Z((function(t){var n,{disabled:r,id:a,inputRef:o,label:i,max:s,min:l,name:u,onChange:c,placeholder:f,readOnly:d,value:p,type:h="datetime-local"}=t,m=j(t,["disabled","id","inputRef","label","max","min","name","onChange","placeholder","readOnly","value","type"]);return e.createElement("div",Object.assign({},Y(m)),i&&e.createElement("label",{htmlFor:a},i),e.createElement("input",{disabled:r,id:a,max:te(s),min:te(l),name:u,onChange:e=>{const t=new ee(e.target.valueAsNumber);t.getFullYear()<1e4?c(t):isNaN(e.target.valueAsNumber)&&c(void 0)},placeholder:f,readOnly:d,ref:o,type:h,value:null!==(n=te(p,h))&&void 0!==n?n:""}))}),{kind:"leaf"}),re=Z((function(t){var{disabled:n,initialCount:r,name:a,readOnly:o,value:i}=t,s=j(t,["disabled","initialCount","name","readOnly","value"]);const l=k(null,a),u=Q(k(l.slice(0,-1)),{initialCount:r},{absoluteName:!0})[0],c=!(n||u.maxCount<=u.value.length);function f(e){!c||o||"key"in e&&"Enter"!==e.key||u.onChange(u.value.concat([A()(i)]))}return e.createElement("span",Object.assign({},Y(s),{onClick:f,onKeyDown:f,role:"button",tabIndex:0}),"+")}),{initialValue:!1,kind:"leaf"}),ae=Z((function(t){var{disabled:n,name:r,readOnly:a}=t,o=j(t,["disabled","name","readOnly"]);const i=k(null,r),s=+i[i.length-1],l=Q(k(i.slice(0,-1)),{},{absoluteName:!0})[0],u=!(n||l.minCount>=l.value.length);function c(e){if(u&&!a&&(!("key"in e)||"Enter"===e.key)){const e=l.value.slice();e.splice(s,1),l.onChange(e)}}return e.createElement("span",Object.assign({},Y(o),{onClick:c,onKeyDown:c,role:"button",tabIndex:0}),"-")}),{initialValue:!1,kind:"leaf"}),oe=Z((function({children:t=e.createElement(we,{label:null,name:""})}){return e.createElement("div",null,e.createElement(ae,{name:""}),t)}),{initialValue:!1}),ie=Z((function(t){var{children:n=e.createElement(oe,{name:"$"}),initialCount:r,itemProps:a,label:o,value:i}=t,s=j(t,["children","initialCount","itemProps","label","value"]);return e.createElement("ul",Object.assign({},Y(s)),o&&e.createElement("label",null,o,e.createElement(re,{initialCount:r,name:"$"})),null==i?void 0:i.map(((t,r)=>e.Children.map(n,((t,n)=>{var o;return(0,e.isValidElement)(t)?(0,e.cloneElement)(t,Object.assign({key:`${r}-${n}`,name:null===(o=t.props.name)||void 0===o?void 0:o.replace("$",""+r)},a)):t})))))})),se=Z((function(t){var{children:n,fields:r,itemProps:a,label:o}=t,i=j(t,["children","fields","itemProps","label"]);return e.createElement("div",Object.assign({},Y(i)),o&&e.createElement("label",null,o),n||r.map((t=>e.createElement(we,Object.assign({key:t,name:t},a)))))})),le=Z((function(t){var{decimal:n,disabled:r,id:a,inputRef:o,label:i,max:s,min:l,name:u,onChange:c,placeholder:f,readOnly:d,step:p,value:h}=t,m=j(t,["decimal","disabled","id","inputRef","label","max","min","name","onChange","placeholder","readOnly","step","value"]);return e.createElement("div",Object.assign({},Y(m)),i&&e.createElement("label",{htmlFor:a},i),e.createElement("input",{disabled:r,id:a,max:s,min:l,name:u,onChange:e=>{const t=(n?parseFloat:parseInt)(e.target.value);c(isNaN(t)?void 0:t)},placeholder:f,readOnly:d,ref:o,step:p||(n?.01:1),type:"number",value:null!=h?h:""}))}),{kind:"leaf"}),ue="undefined"==typeof btoa?e=>Buffer.from(e).toString("base64"):btoa,ce=e=>ue(encodeURIComponent(e)).replace(/=+$/,""),fe=Z((function(t){var{allowedValues:n,disabled:r,id:a,label:o,name:i,onChange:s,readOnly:l,transform:u,value:c}=t,d=j(t,["allowedValues","disabled","id","label","name","onChange","readOnly","transform","value"]);return e.createElement("div",Object.assign({},f()(Y(d),["checkboxes"])),o&&e.createElement("label",null,o),null==n?void 0:n.map((t=>e.createElement("div",{key:t},e.createElement("input",{checked:t===c,disabled:r,id:`${a}-${ce(t)}`,name:i,onChange:()=>{l||s(t)},type:"radio"}),e.createElement("label",{htmlFor:`${a}-${ce(t)}`},u?u(t):t)))))}),{kind:"leaf"});var de=n(6566),pe=n.n(de);const he="undefined"==typeof btoa?e=>Buffer.from(e).toString("base64"):btoa,me=e=>he(encodeURIComponent(e)).replace(/=+$/,""),ge=Z((function(t){var{allowedValues:n,checkboxes:r,disabled:a,fieldType:o,id:i,inputRef:s,label:l,name:u,onChange:c,placeholder:f,readOnly:d,required:p,disableItem:h,transform:m,value:g}=t,v=j(t,["allowedValues","checkboxes","disabled","fieldType","id","inputRef","label","name","onChange","placeholder","readOnly","required","disableItem","transform","value"]);const y=o===Array;return e.createElement("div",Object.assign({},Y(v)),l&&e.createElement("label",{htmlFor:i},l),r?n.map((t=>{var n;return e.createElement("div",{key:t},e.createElement("input",{checked:o===Array?g.includes(t):g===t,disabled:null!==(n=null==h?void 0:h(t))&&void 0!==n?n:a,id:`${i}-${me(t)}`,name:u,onChange:()=>{d||c(o===Array?pe()([t],g):t)},type:"checkbox"}),e.createElement("label",{htmlFor:`${i}-${me(t)}`},m?m(t):t))})):e.createElement("select",{disabled:a,id:i,multiple:y,name:u,onChange:e=>{if(!d){const t=e.target.value;if(y){const n=-1===e.target.selectedIndex;c(n?[]:pe()([t],g))}else c(""!==t?t:void 0)}},ref:s,value:null!=g?g:""},(!!f||!p||void 0===g)&&!y&&e.createElement("option",{value:"",disabled:p,hidden:p},f||l),null==n?void 0:n.map((t=>e.createElement("option",{disabled:null==h?void 0:h(t),key:t,value:t},m?m(t):t)))))}),{kind:"leaf"});function ve(t){var{autoComplete:n,disabled:r,id:a,inputRef:o,label:i,name:s,onChange:l,placeholder:u,readOnly:c,type:f,value:d}=t,p=j(t,["autoComplete","disabled","id","inputRef","label","name","onChange","placeholder","readOnly","type","value"]);return e.createElement("div",Object.assign({},Y(p)),i&&e.createElement("label",{htmlFor:a},i),e.createElement("input",{autoComplete:n,disabled:r,id:a,name:s,onChange:e=>l(e.target.value),placeholder:u,readOnly:c,ref:o,type:f,value:null!=d?d:""}))}ve.defaultProps={type:"text"};const ye=Z(ve,{kind:"leaf"}),be=function(t){const n=(0,e.createContext)(t);return Object.assign((function(t){var r,a;const[o,i]=Q(t.name,t),s=(0,e.useContext)(n),l=null!==(r=o.component)&&void 0!==r?r:s(o,i);return q()(l,"AutoField received no component for: %s",o.name),"options"in l&&"leaf"===(null===(a=l.options)||void 0===a?void 0:a.kind)?(0,e.createElement)(l.Component,o):(0,e.createElement)(l,t)}),{componentDetectorContext:n,defaultComponentDetector:t})}((e=>{if(e.allowedValues)return e.checkboxes&&e.fieldType!==Array?fe:ge;switch(e.fieldType){case Array:return ie;case Boolean:return X;case Date:return ne;case Number:return le;case Object:return se;case String:return ye}return q()(!1,"Unsupported field type: %s",e.fieldType)})),we=be;function _e(t){const{error:n,schema:r}=W();return n||t.children?e.createElement("div",Object.assign({},Y(t)),t.children,e.createElement("ul",null,r.getErrorMessages(n).map(((t,n)=>e.createElement("li",{key:n},t))))):null}function xe(t){var{disabled:n,inputRef:r,readOnly:a,value:o}=t,i=j(t,["disabled","inputRef","readOnly","value"]);const{error:s,state:l}=W();return e.createElement("input",Object.assign({disabled:void 0===n?!(!s&&!l.disabled):n,readOnly:a,ref:r,type:"submit"},o?{value:o}:{},Y(i)))}const Ee=function e(t){class n extends(I.Quick(t)){getAutoField(){return we}getErrorsField(){return _e}getSubmitField(){return xe}}return n.Quick=e,n}(V),ke=function e(t){class n extends(L.Auto(t)){}return n.Auto=e,n}(function e(t){class n extends(z.Validated(t)){}return n.Validated=e,n}(V).Validated(Ee.Quick(V)));Y.register("minCount","maxCount");var Se=n(1609),$e=n.n(Se),Pe=n(5021),Oe=n.n(Pe),Ce=n(8306),je=n.n(Ce),Ne=n(1700),Ie=n.n(Ne);class Te{constructor(...e){q()(this.constructor!==Te,"Bridge cannot be instantiated (args=%o).",{args:e})}getError(e,t){return q()(!1,"%s have not implemented `getError` method (args=%o).",this.constructor.name,{name:e,error:t})}getErrorMessage(e,t){return q()(!1,"%s have not implemented `getErrorMessage` method (args=%o).",this.constructor.name,{name:e,error:t})}getErrorMessages(e){return q()(!1,"%s have not implemented `getErrorMessages` method (args=%o).",this.constructor.name,{error:e})}getField(e){return q()(!1,"%s have not implemented `getField` method (args=%o).",this.constructor.name,{name:e})}getInitialValue(e,t){return q()(!1,"%s have not implemented `getInitialValue` method (args=%o).",this.constructor.name,{name:e,props:t})}getProps(e,t){return q()(!1,"%s have not implemented `getProps` method (args=%o).",this.constructor.name,{name:e,props:t})}getSubfields(e){return q()(!1,"%s have not implemented `getSubfields` method (args=%o).",this.constructor.name,{name:e})}getType(e){return q()(!1,"%s have not implemented `getType` method (args=%o).",this.constructor.name,{name:e})}getValidator(e){return q()(!1,"%s have not implemented `getValidator` method (args=%o).",this.constructor.name,{options:e})}}function Ae(e,t){q()(t,'Field not found in schema: "%s"',e)}function Re(e,t){if(!("$ref"in e))return e;const{$ref:n}=e,r=j(e,["$ref"]);return Re(Object.assign({},r,function(e,t){q()(e.startsWith("#"),'Reference is not an internal reference, and only such are allowed: "%s"',e);const n=e.split("/").filter((e=>e&&"#"!==e)).reduce(((e,t)=>e[t]),t);return q()(n,'Reference not found in schema: "%s"',e),n}(n,t)),t)}const De=["allOf","anyOf","oneOf"],Me=["default","enum","format","isRequired","title","uniforms"],Fe=[["maxItems","maxCount"],["maximum","max"],["minItems","minCount"],["minimum","min"],["multipleOf","step"]];class ze extends Te{constructor(e,t){super(),this.validator=t,this.schema=Re(e,e),this._compiledSchema={"":this.schema},this.getField=je()(this.getField.bind(this)),this.getSubfields=je()(this.getSubfields.bind(this)),this.getType=je()(this.getType.bind(this))}getError(e,t){const n=null==t?void 0:t.details;if(!Array.isArray(n))return null;const r=k(null,e).map(k.unescape),a=k(r),o=k(r.slice(0,-1)),i=r[r.length-1],s=n.find((e=>{var t;const n=function(e){return(e=e.startsWith("/")?e.replace(/\//g,".").replace(/~0/g,"~").replace(/~1/g,"/"):e.replace(/\[('|")(.+?)\1\]/g,".$2").replace(/\[(.+?)\]/g,".$1").replace(/\\'/g,"'")).slice(1)}(null!==(t=e.instancePath)&&void 0!==t?t:e.dataPath);return a===n||o===n&&i===e.params.missingProperty}));return s||null}getErrorMessage(e,t){const n=this.getError(e,t);return(null==n?void 0:n.message)||""}getErrorMessages(e){if(!e)return[];const{details:t}=e;return Array.isArray(t)?t.map((e=>e.message)):[e.message||e]}getField(e){return k(null,e).reduce(((t,n,r,a)=>{var o,i,s,l;const u=k(a.slice(0,r)),c=k(u,n),f=null!==(o=(l=this._compiledSchema)[c])&&void 0!==o?o:l[c]={};if(f.isRequired=!(!(null===(i=t.required)||void 0===i?void 0:i.includes(n))&&!(null===(s=this._compiledSchema[u].required)||void 0===s?void 0:s.includes(n))),"$"===n||n===""+parseInt(n,10))Ae(e,"array"===t.type),t=Array.isArray(t.items)?t.items[parseInt(n,10)]:t.items,Ae(e,!!t);else if("object"===t.type)Ae(e,!!t.properties),t=t.properties[k.unescape(n)],Ae(e,!!t);else{let r=!1;De.forEach((e=>{var a;null===(a=t[e])||void 0===a||a.forEach((e=>{r||(e=Re(e,this.schema),n in e.properties&&(t=e.properties[n],r=!0))}))})),Ae(e,r)}const d=(t=Re(t,this.schema)).required?t.required.slice():[],p=t.properties?Object.assign({},t.properties):{};return De.forEach((e=>{var n;null===(n=t[e])||void 0===n||n.forEach((e=>{(e=Re(e,this.schema)).required&&d.push(...e.required),Object.assign(p,e.properties),!f.type&&e.type&&(f.type=e.type)}))})),d.length>0&&(f.required=d),$e()(p)||(f.properties=p),t}),this.schema)}getInitialValue(e,t){var n;const r=this.getField(e),{default:a=(null!==(n=r.default)&&void 0!==n?n:m()(this.schema.default,e)),type:o=r.type}=this._compiledSchema[e];if(void 0!==a)return A()(a);if("array"===o){const n=this.getInitialValue(k(e,"0")),r=(null==t?void 0:t.initialCount)||0;return Array.from({length:r},(()=>n))}if("object"===o){const t={};return this.getSubfields(e).forEach((n=>{const r=this.getInitialValue(k(e,n));void 0!==r&&(t[n]=r)})),t}}getProps(e,t){var n,r,a;const o=this.getField(e),i=Object.assign({},o,o.uniforms,this._compiledSchema[e]);null!==(n=i.label)&&void 0!==n||(i.label=null!==(r=i.title)&&void 0!==r?r:Ie()(Oe()(k(null,e).slice(-1)[0]))),"number"===o.type&&(i.decimal=!0),void 0!==(null===(a=o.uniforms)||void 0===a?void 0:a.type)&&(i.type=o.uniforms.type),void 0===i.required&&(i.required=i.isRequired),i.type===o.type&&delete i.type;const s=(null==t?void 0:t.options)||i.options;return s?Array.isArray(s)?(i.allowedValues=s.map((e=>e.value)),i.transform=e=>s.find((t=>t.value===e)).label):(i.allowedValues=Object.keys(s),i.transform=e=>s[e]):i.enum&&(i.allowedValues=i.enum),Fe.forEach((([e,t])=>{e in i&&(i[t]=i[e],delete i[e])})),Me.forEach((e=>{e in i&&delete i[e]})),i}getSubfields(e=""){const t=this.getField(e),{properties:n=t.properties,type:r=t.type}=this._compiledSchema[e];return"object"===r&&n?Object.keys(n).map(k.escape):[]}getType(e){const{type:t,format:n}=this.getField(e),{type:r=t}=this._compiledSchema[e];return"date-time"===n?Date:"string"===r?String:"number"===r||"integer"===r?Number:"object"===r?Object:"array"===r?Array:"boolean"===r?Boolean:(q()("null"!==r,'Field "%s" can not be represented as a type null',e),r)}getValidator(){return this.validator}}const Le=new(n(1581).ZP)({allErrors:!0,useDefaults:!0,keywords:["uniforms","options","defaultValue","allowedValues"]});const Ve=t=>{var{setIsOpen:n,setOpenAnimation:r}=t,a=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n}(t,["setIsOpen","setOpenAnimation"]);const{stepData:o}=a,i=null==o?void 0:o.form,s=null==o?void 0:o.component;if(!o)throw new Error("Step data is required for every step.");if(s)return e.createElement(e.Fragment,null,e.createElement(s,a));if(i){const t=function(e){const t=Le.compile(e);return e=>(t(e),t.errors&&t.errors.length?{details:t.errors}:null)}(i);return e.createElement(ke,{schema:new ze(i,t),onSubmit:e=>{a.onSubmit&&a.onSubmit(a),a.analytics&&Object.entries(e).forEach((([e,t])=>{const n=`Step ${a.current}: ${e}`,r=JSON.stringify(t);Na.track(a.analytics,n,r)})),a.isLast()?a.handleClose():a.next()}})}return e.createElement(e.Fragment,null,e.createElement("h1",null,"Under Development"),e.createElement("p",null,"Please use React Components or Uniform only. (for now) Check the README.md file for other implementations."))},Ue={analytics:null,analyticsConfig:null,analyticsName:"feedback-widget",currentPath:window.location.pathname,onSubmit:null,steps:[],theme:"ripplex",themeValues:{container:null}},qe=t=>{const{themeValues:n}=t,r=e=>{if(t.analytics){const n="Step 1: Was page helpful?",r=e;Na.track(t.analytics,n,r)}else console.error("You must pass analytics options to track user responses.");t.next()};return e.createElement("div",{className:"widget-helpful form-group"},e.createElement("div",{style:n.step1header,className:"widget-header"},e.createElement("div",{className:"widget-header-title"},"Was this page helpful?"),e.createElement("button",{type:"button",style:n.yesIcon,className:"widget-header-icon icon-yes",onClick:()=>r("Yes")}," "),e.createElement("button",{type:"button",style:n.noIcon,className:"widget-header-icon icon-no",onClick:()=>r("No")}," ")))},Be=t=>{const{themeValues:n}=t,[r,a]=(0,e.useState)("");return e.createElement("div",{className:" widget-form form-group"},e.createElement("div",{className:"widget-form-wrapper"},e.createElement("div",{style:n.step2header,className:"widget-header-title"},t.themeLabels.step2Title),e.createElement("div",{style:n.step2formarea},e.createElement("textarea",{style:n.inputForm,onChange:e=>a(e.target.value)})),e.createElement("div",{style:n.step2footer,className:"widget-form-footer"},e.createElement("button",{style:n.formCancelButton,type:"button",className:"widget-header-icon cancel",onClick:()=>{t.handleClose&&t.handleClose()}},t.themeLabels.cancelButtonText),e.createElement("button",{style:n.formSubmitButton,type:"button",className:"widget-header-icon submit",onClick:()=>{(e=>{if(t.analytics){const n="Step 2: Feedback form.",r=e;Na.track(t.analytics,n,r)}else console.error("You must pass analytics options to track user responses.");t.next()})(r)}},t.themeLabels.submitButtonText))))},He=t=>{const{themeValues:n}=t;return e.createElement("div",{className:"widget-helpful form-group"},e.createElement("div",{style:n.step1header,className:"widget-header"},e.createElement("div",{className:"widget-header-title"},"Thank you for your feedback!")))};n(5864);const We=t=>{const[n,r]=(0,e.useState)(Object.assign(Object.assign({},Ue),t)),[i,s]=(0,e.useState)(!1),[l,u]=(0,e.useState)(null),[c,f]=(0,e.useState)(!0),[d,p]=(0,e.useState)("entering"),[h,m]=(0,e.useState)(null==t?void 0:t.theme),[g,v]=(0,e.useState)(o.themes[h].styles),[y,b]=(0,e.useState)(o.labels.en),w=()=>{console.log("Close Feedback Widget."),p("exiting"),f(!1)};return(0,e.useEffect)((function(){if(!n.steps||n.steps.length<=0){const e=[{component:qe},{component:Be},{component:He}];r((t=>{const n=t;return n.steps=e,n}))}n.analyticsConfig&&u(Na.connectAnalytics(n.analyticsConfig,n.analyticsName)),s(!0)}),[]),(0,e.useEffect)((function(){m(t.theme),v(o.themes[t.theme].styles),b(o.labels.en)}),[t]),e.createElement(e.Fragment,null,i?e.createElement("div",{className:"cleanslate"},e.createElement("div",{style:null==g?void 0:g.container,className:`\n ${h}\n widget\n docked-widget\n widget-${d}\n docked-widget-${o.themes[h].position}\n `},e.createElement("div",{className:`widget widget-${c}`},e.createElement("div",null,e.createElement("button",{type:"button",id:"closeFeedback",onClick:()=>w()},"X")),e.createElement(a.Steps,null,n.steps.map(((t,r)=>e.createElement(a.Step,{key:r,component:Ve,stepData:t,themeValues:g,themeLabels:y,onSubmit:n.onSubmit,handleClose:w,currentPath:n.currentPath,analytics:l||null}))))))):null)};var Ke=n(6905),Qe=n.n(Ke),Ge="undefined"!=typeof process?process:{},Je=(Ge.env&&Ge.env.NODE_ENV,"undefined"!=typeof document);function Ye(e,t){return t.charAt(0)[e]()+t.slice(1)}Je&&window.location.hostname,null!=Ge.versions&&Ge.versions.node,"undefined"!=typeof Deno&&Deno.core,"object"==typeof self&&self.constructor&&self.constructor.name,Je&&"nodejs"===window.name||"undefined"!=typeof navigator&&void 0!==navigator.userAgent&&(navigator.userAgent.includes("Node.js")||navigator.userAgent.includes("jsdom"));var Ze=Ye.bind(null,"toUpperCase"),Xe=Ye.bind(null,"toLowerCase");function et(e,t){void 0===t&&(t=!0);var n=function(e){return at(e)?Ze("null"):"object"==typeof e?function(e){return nt(e.constructor)?e.constructor.name:null}(e):Object.prototype.toString.call(e).slice(8,-1)}(e);return t?Xe(n):n}function tt(e,t){return typeof t===e}var nt=tt.bind(null,"function"),rt=tt.bind(null,"string");function at(e){return null===e}function ot(e,t){if("object"!=typeof t||at(t))return!1;if(t instanceof e)return!0;var n=et(new e(""));if(function(e){return e instanceof Error||rt(e.message)&&e.constructor&&function(e){return"number"===et(e)&&!isNaN(e)}(e.constructor.stackTraceLimit)}(t))for(;t;){if(et(t)===n)return!0;t=Object.getPrototypeOf(t)}return!1}function it(e,t){var n=e instanceof Element||e instanceof HTMLDocument;return n&&t?function(e,t){return void 0===t&&(t=""),e&&e.nodeName===t.toUpperCase()}(e,t):n}function st(e){var t=[].slice.call(arguments,1);return function(){return e.apply(void 0,[].slice.call(arguments).concat(t))}}function lt(e){try{return decodeURIComponent(e.replace(/\+/g," "))}catch(e){return null}}function ut(e,t,n){for(var r=t.length-1,a=0;a<r;++a){var o=t[a];if("__proto__"===o||"constructor"===o)break;o in e||(e[o]={}),e=e[o]}e[t[r]]=n}function ct(){for(var e="",t=0,n=4294967295*Math.random()|0;t++<36;){var r="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx"[t-1],a=15&n;e+="-"==r||"4"==r?r:("x"==r?a:3&a|8).toString(16),n=t%8==0?4294967295*Math.random()|0:n>>4}return e}tt.bind(null,"undefined"),tt.bind(null,"boolean"),tt.bind(null,"symbol"),ot.bind(null,TypeError),ot.bind(null,SyntaxError),st(it,"form"),st(it,"button"),st(it,"input"),st(it,"select");var ft="undefined",dt="object",pt="undefined"!=typeof process?process:{},ht=(pt.env&&pt.env.NODE_ENV,"undefined"!=typeof document);function mt(e,t){return t.charAt(0)[e]()+t.slice(1)}ht&&window.location.hostname,null!=pt.versions&&pt.versions.node,"undefined"!=typeof Deno&&Deno.core,"object"==typeof self&&self.constructor&&self.constructor.name,ht&&"nodejs"===window.name||"undefined"!=typeof navigator&&void 0!==navigator.userAgent&&(navigator.userAgent.includes("Node.js")||navigator.userAgent.includes("jsdom"));var gt=mt.bind(null,"toUpperCase"),vt=mt.bind(null,"toLowerCase");function yt(e,t){void 0===t&&(t=!0);var n=function(e){return xt(e)?gt("null"):"object"==typeof e?function(e){return wt(e.constructor)?e.constructor.name:null}(e):Object.prototype.toString.call(e).slice(8,-1)}(e);return t?vt(n):n}function bt(e,t){return typeof t===e}var wt=bt.bind(null,"function"),_t=bt.bind(null,"string");function xt(e){return null===e}function Et(e,t){if("object"!=typeof t||xt(t))return!1;if(t instanceof e)return!0;var n=yt(new e(""));if(function(e){return e instanceof Error||_t(e.message)&&e.constructor&&function(e){return"number"===yt(e)&&!isNaN(e)}(e.constructor.stackTraceLimit)}(t))for(;t;){if(yt(t)===n)return!0;t=Object.getPrototypeOf(t)}return!1}function kt(e,t){var n=e instanceof Element||e instanceof HTMLDocument;return n&&t?function(e,t){return void 0===t&&(t=""),e&&e.nodeName===t.toUpperCase()}(e,t):n}function St(e){var t=[].slice.call(arguments,1);return function(){return e.apply(void 0,[].slice.call(arguments).concat(t))}}bt.bind(null,"undefined"),bt.bind(null,"boolean"),bt.bind(null,"symbol"),Et.bind(null,TypeError),Et.bind(null,SyntaxError),St(kt,"form"),St(kt,"button"),St(kt,"input"),St(kt,"select");var $t="global",Pt="__global__",Ot=typeof self===dt&&self.self===self&&self||typeof n.g===dt&&n.g.global===n.g&&n.g||void 0;function Ct(e){return Ot[Pt][e]}function jt(e,t){return Ot[Pt][e]=t}function Nt(e){delete Ot[Pt][e]}function It(e,t,n){var r;try{if(At(e)){var a=window[e];r=a[t].bind(a)}}catch(e){}return r||n}Ot[Pt]||(Ot[Pt]={});var Tt={};function At(e){if(typeof Tt[e]!==ft)return Tt[e];try{var t=window[e];t.setItem(ft,ft),t.removeItem(ft)}catch(t){return Tt[e]=!1}return Tt[e]=!0}var Rt,Dt="any",Mt="*",Ft="undefined"!=typeof process?process:{},zt=(null==(Rt=Ft.env)||Rt.NODE_ENV,"undefined"!=typeof window);function Lt(e,t){return typeof t===e}zt&&window.location.hostname,null!=Ft.versions&&Ft.versions.node,"undefined"!=typeof Deno&&Deno.core,"object"==typeof self&&self.constructor&&self.constructor.name,zt&&"nodejs"===window.name||"undefined"!=typeof navigator&&(navigator.userAgent.includes("Node.js")||navigator.userAgent.includes("jsdom"));var Vt=Lt.bind(null,"function"),Ut=Lt.bind(null,"string"),qt=Lt.bind(null,"undefined"),Bt=Lt.bind(null,"boolean");function Ht(e){if(!function(e){return e&&("object"==typeof e||null!==e)}(e))return!1;for(var t=e;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function Wt(e,t){var n=e instanceof Element||e instanceof HTMLDocument;return n&&t?function(e,t){return void 0===t&&(t=""),e&&e.nodeName===t.toUpperCase()}(e,t):n}function Kt(e){return function(){return e.apply(void 0,[].slice.call(arguments).concat([].slice.call(arguments,1)))}}function Qt(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Gt(e,t){if(e){if("string"==typeof e)return Qt(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Qt(e,t):void 0}}function Jt(e){return function(e){if(Array.isArray(e))return Qt(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||Gt(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Yt(e){return Yt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Yt(e)}function Zt(e,t,n,r,a,o,i){try{var s=e[o](i),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,a)}function Xt(e){return function(){var t=this,n=arguments;return new Promise((function(r,a){var o=e.apply(t,n);function i(e){Zt(o,r,a,i,s,"next",e)}function s(e){Zt(o,r,a,i,s,"throw",e)}i(void 0)}))}}function en(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function tn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function nn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?tn(Object(n),!0).forEach((function(t){en(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):tn(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Kt(Wt),Kt(Wt),Kt(Wt),Kt(Wt);var rn={exports:{}};!function(e){var t=function(e){var t,n=Object.prototype,r=n.hasOwnProperty,a="function"==typeof Symbol?Symbol:{},o=a.iterator||"@@iterator",i=a.asyncIterator||"@@asyncIterator",s=a.toStringTag||"@@toStringTag";function l(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(e){l=function(e,t,n){return e[t]=n}}function u(e,t,n,r){var a=t&&t.prototype instanceof g?t:g,o=Object.create(a.prototype),i=new O(r||[]);return o._invoke=function(e,t,n){var r=f;return function(a,o){if(r===p)throw new Error("Generator is already running");if(r===h){if("throw"===a)throw o;return j()}for(n.method=a,n.arg=o;;){var i=n.delegate;if(i){var s=S(i,n);if(s){if(s===m)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(r===f)throw r=h,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r=p;var l=c(e,t,n);if("normal"===l.type){if(r=n.done?h:d,l.arg===m)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(r=h,n.method="throw",n.arg=l.arg)}}}(e,n,i),o}function c(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=u;var f="suspendedStart",d="suspendedYield",p="executing",h="completed",m={};function g(){}function v(){}function y(){}var b={};l(b,o,(function(){return this}));var w=Object.getPrototypeOf,_=w&&w(w(C([])));_&&_!==n&&r.call(_,o)&&(b=_);var x=y.prototype=g.prototype=Object.create(b);function E(e){["next","throw","return"].forEach((function(t){l(e,t,(function(e){return this._invoke(t,e)}))}))}function k(e,t){function n(a,o,i,s){var l=c(e[a],e,o);if("throw"!==l.type){var u=l.arg,f=u.value;return f&&"object"==typeof f&&r.call(f,"__await")?t.resolve(f.__await).then((function(e){n("next",e,i,s)}),(function(e){n("throw",e,i,s)})):t.resolve(f).then((function(e){u.value=e,i(u)}),(function(e){return n("throw",e,i,s)}))}s(l.arg)}var a;this._invoke=function(e,r){function o(){return new t((function(t,a){n(e,r,t,a)}))}return a=a?a.then(o,o):o()}}function S(e,n){var r=e.iterator[n.method];if(r===t){if(n.delegate=null,"throw"===n.method){if(e.iterator.return&&(n.method="return",n.arg=t,S(e,n),"throw"===n.method))return m;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return m}var a=c(r,e.iterator,n.arg);if("throw"===a.type)return n.method="throw",n.arg=a.arg,n.delegate=null,m;var o=a.arg;return o?o.done?(n[e.resultName]=o.value,n.next=e.nextLoc,"return"!==n.method&&(n.method="next",n.arg=t),n.delegate=null,m):o:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,m)}function $(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function P(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function O(e){this.tryEntries=[{tryLoc:"root"}],e.forEach($,this),this.reset(!0)}function C(e){if(e){var n=e[o];if(n)return n.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var a=-1,i=function n(){for(;++a<e.length;)if(r.call(e,a))return n.value=e[a],n.done=!1,n;return n.value=t,n.done=!0,n};return i.next=i}}return{next:j}}function j(){return{value:t,done:!0}}return v.prototype=y,l(x,"constructor",y),l(y,"constructor",v),v.displayName=l(y,s,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===v||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,y):(e.__proto__=y,l(e,s,"GeneratorFunction")),e.prototype=Object.create(x),e},e.awrap=function(e){return{__await:e}},E(k.prototype),l(k.prototype,i,(function(){return this})),e.AsyncIterator=k,e.async=function(t,n,r,a,o){void 0===o&&(o=Promise);var i=new k(u(t,n,r,a),o);return e.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},E(x),l(x,s,"Generator"),l(x,o,(function(){return this})),l(x,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=[];for(var n in e)t.push(n);return t.reverse(),function n(){for(;t.length;){var r=t.pop();if(r in e)return n.value=r,n.done=!1,n}return n.done=!0,n}},e.values=C,O.prototype={constructor:O,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(P),!e)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=t)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var n=this;function a(r,a){return s.type="throw",s.arg=e,n.next=r,a&&(n.method="next",n.arg=t),!!a}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],s=i.completion;if("root"===i.tryLoc)return a("end");if(i.tryLoc<=this.prev){var l=r.call(i,"catchLoc"),u=r.call(i,"finallyLoc");if(l&&u){if(this.prev<i.catchLoc)return a(i.catchLoc,!0);if(this.prev<i.finallyLoc)return a(i.finallyLoc)}else if(l){if(this.prev<i.catchLoc)return a(i.catchLoc,!0)}else{if(!u)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return a(i.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&r.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var o=a;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var i=o?o.completion:{};return i.type=e,i.arg=t,o?(this.method="next",this.next=o.finallyLoc,m):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),m},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),P(n),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;P(n)}return a}}throw new Error("illegal catch attempt")},delegateYield:function(e,n,r){return this.delegate={iterator:C(e),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=t),m}},e}(e.exports);try{regeneratorRuntime=t}catch(e){"object"==typeof globalThis?globalThis.regeneratorRuntime=t:Function("r","regeneratorRuntime = r")(t)}}(rn);var an=rn.exports,on="function",sn="undefined",ln="reducer",un="@@redux/",cn=un+"INIT",fn=un+Math.random().toString(36),dn=function(){return("undefined"==typeof Symbol?"undefined":Yt(Symbol))===on&&Symbol.observable||"@@observable"}(),pn=" != "+on;function hn(e,t,n){if(Yt(t)===on&&Yt(n)===sn&&(n=t,t=void 0),Yt(n)!==sn){if(Yt(n)!==on)throw new Error("enhancer"+pn);return n(hn)(e,t)}if(Yt(e)!==on)throw new Error(ln+pn);var r=e,a=t,o=[],i=o,s=!1;function l(){i===o&&(i=o.slice())}function u(){return a}function c(e){if(Yt(e)!==on)throw new Error("Listener"+pn);var t=!0;return l(),i.push(e),function(){if(t){t=!1,l();var n=i.indexOf(e);i.splice(n,1)}}}function f(e){if(!Ht(e))throw new Error("Act != obj");if(Yt(e.type)===sn)throw new Error("ActType "+sn);if(s)throw new Error("Dispatch in "+ln);try{s=!0,a=r(a,e)}finally{s=!1}for(var t=o=i,n=0;n<t.length;n++)(0,t[n])();return e}return f({type:cn}),en({dispatch:f,subscribe:c,getState:u,replaceReducer:function(e){if(Yt(e)!==on)throw new Error("next "+ln+pn);r=e,f({type:cn})}},dn,(function(){var e=c;return en({subscribe:function(t){if("object"!==Yt(t))throw new TypeError("Observer != obj");function n(){t.next&&t.next(u())}return n(),{unsubscribe:e(n)}}},dn,(function(){return this}))}))}function mn(e,t){var n=t&&t.type;return"action "+(n&&n.toString()||"?")+ln+" "+e+" returns "+sn}function gn(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return 0===t.length?function(e){return e}:1===t.length?t[0]:t.reduce((function(e,t){return function(){return e(t.apply(void 0,arguments))}}))}function vn(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(e){return function(n,r,a){var o,i=e(n,r,a),s=i.dispatch,l={getState:i.getState,dispatch:function(e){return s(e)}};return o=t.map((function(e){return e(l)})),s=gn.apply(void 0,Jt(o))(i.dispatch),nn(nn({},i),{},{dispatch:s})}}}var yn="__anon_id",bn="__user_id",wn="__user_traits",_n="analytics",xn="userId",En="anonymousId",kn=["bootstrap","params","campaign","initializeStart","initialize","initializeEnd","ready","resetStart","reset","resetEnd","pageStart","page","pageEnd","pageAborted","trackStart","track","trackEnd","trackAborted","identifyStart","identify","identifyEnd","identifyAborted","userIdChanged","registerPlugins","enablePlugin","disablePlugin","online","offline","setItemStart","setItem","setItemEnd","setItemAborted","removeItemStart","removeItem","removeItemEnd","removeItemAborted"],Sn=["name","EVENTS","config","loaded"],$n=kn.reduce((function(e,t){return e[t]=t,e}),{registerPluginType:function(e){return"registerPlugin:".concat(e)},pluginReadyType:function(e){return"ready:".concat(e)}}),Pn=/^utm_/,On=/^an_prop_/,Cn=/^an_trait_/;function jn(e){var t=e.storage.setItem;return function(n){return function(r){return function(a){if(a.type===$n.bootstrap){var o=a.params,i=a.user,s=a.persistedUser,l=a.initialUser,u=s.userId===i.userId;s.anonymousId!==i.anonymousId&&t(yn,i.anonymousId),u||t(bn,i.userId),l.traits&&t(wn,nn(nn({},u&&s.traits?s.traits:{}),l.traits));var c=Object.keys(a.params);if(c.length){var f=o.an_uid,d=o.an_event,p=c.reduce((function(e,t){if(t.match(Pn)||t.match(/^(d|g)clid/)){var n=t.replace(Pn,""),r="campaign"===n?"name":n;e.campaign[r]=o[t]}return t.match(On)&&(e.props[t.replace(On,"")]=o[t]),t.match(Cn)&&(e.traits[t.replace(Cn,"")]=o[t]),e}),{campaign:{},props:{},traits:{}});n.dispatch(nn(nn({type:$n.params,raw:o},p),f?{userId:f}:{})),f&&setTimeout((function(){return e.identify(f,p.traits)}),0),d&&setTimeout((function(){return e.track(d,p.props)}),0),Object.keys(p.campaign).length&&n.dispatch({type:$n.campaign,campaign:p.campaign})}}return r(a)}}}}function Nn(e){return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(n.type===$n.setItemEnd){if(n.key===yn)return nn(nn({},t),{anonymousId:n.value});if(n.key===bn)return nn(nn({},t),{userId:n.value})}switch(n.type){case $n.identify:return Object.assign({},t,{userId:n.userId,traits:nn(nn({},t.traits),n.traits)});case $n.reset:return[bn,yn,wn].forEach((function(t){e.removeItem(t)})),Object.assign({},t,{userId:null,anonymousId:null,traits:{}});default:return t}}}function In(e){return{userId:e.getItem(bn),anonymousId:e.getItem(yn),traits:e.getItem(wn)}}var Tn=function(e){return"__TEMP__"+e};function An(e){var t=e.storage,n=t.setItem,r=t.removeItem,a=t.getItem;return function(e){return function(t){return function(o){var i=o.userId,s=o.traits,l=o.options;if(o.type===$n.reset&&([bn,wn,yn].forEach((function(e){r(e)})),[xn,En,"traits"].forEach((function(e){Nt(Tn(e))}))),o.type===$n.identify){a(yn)||n(yn,ct());var u=a(bn),c=a(wn)||{};u&&u!==i&&e.dispatch({type:$n.userIdChanged,old:{userId:u,traits:c},new:{userId:i,traits:s},options:l}),i&&n(bn,i),s&&n(wn,nn(nn({},c),s))}return t(o)}}}}var Rn={};function Dn(e,t){Rn[e]&&Vt(Rn[e])&&(Rn[e](t),delete Rn[e])}function Mn(e,t,n){return new Promise((function(r,a){return t()?r(e):n<1?a(nn(nn({},e),{},{queue:!0})):(10,new Promise((function(e){return setTimeout(e,10)}))).then((function(o){return Mn(e,t,n-10).then(r,a)}))}))}function Fn(e,t,n){var r=t(),a=e.getState(),o=a.plugins,i=a.context,s=a.queue,l=a.user;if(!i.offline&&s&&s.actions&&s.actions.length){var u=s.actions.reduce((function(e,t,n){return o[t.plugin].loaded?(e.process.push(t),e.processIndex.push(n)):(e.requeue.push(t),e.requeueIndex.push(n)),e}),{processIndex:[],process:[],requeue:[],requeueIndex:[]});if(u.processIndex&&u.processIndex.length){u.processIndex.forEach((function(t){var a=s.actions[t],i=a.plugin,u=a.payload.type,c=r[i][u];if(c&&Vt(c)){var f=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return[xn,En].reduce((function(n,r){return e.hasOwnProperty(r)&&t[r]&&t[r]!==e[r]&&(n[r]=t[r]),n}),e)}(a.payload,l);c({payload:f,config:o[i].config,instance:n});var d="".concat(u,":").concat(i);e.dispatch(nn(nn({},f),{},{type:d,_:{called:d,from:"queueDrain"}}))}}));var c=s.actions.filter((function(e,t){return!~u.processIndex.indexOf(t)}));s.actions=c}}}function zn(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return Object.keys(e).filter((function(e){var r=n.plugins||{};return Bt(r[e])?r[e]:!1!==r.all&&(!t[e]||!1!==t[e].enabled)})).map((function(t){return e[t]}))}var Ln=/Start$/,Vn=/^bootstrap/,Un=/^ready/;function qn(e,t,n,r,a){return Bn.apply(this,arguments)}function Bn(){return(Bn=Xt(an.mark((function e(t,n,r,a,o){var i,s,l,u,c,f,d,p,h,m,g;return an.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(i=Vt(n)?n():n,s=t.type,l=s.replace(Ln,""),!t._||!t._.called){e.next=5;break}return e.abrupt("return",t);case 5:return u=r.getState(),c=zn(i,u.plugins,t.options),s===$n.initializeStart&&t.fromEnable&&(c=Object.keys(u.plugins).filter((function(e){var n=u.plugins[e];return t.plugins.includes(e)&&!n.initialized})).map((function(e){return i[e]}))),f=c.map((function(e){return e.name})),d=Yn(s,c),e.next=12,Hn({action:t,data:{exact:d.before,namespaced:d.beforeNS},state:u,allPlugins:i,allMatches:d,instance:r,store:a,EVENTS:o});case 12:if(!Xn(p=e.sent,f.length)){e.next=15;break}return e.abrupt("return",p);case 15:if(s!==l){e.next=19;break}h=p,e.next=22;break;case 19:return e.next=21,Hn({action:nn(nn({},p),{},{type:l}),data:{exact:d.during,namespaced:d.duringNS},state:u,allPlugins:i,allMatches:d,instance:r,store:a,EVENTS:o});case 21:h=e.sent;case 22:if(!s.match(Ln)){e.next=28;break}return m="".concat(l,"End"),e.next=26,Hn({action:nn(nn({},h),{},{type:m}),data:{exact:d.after,namespaced:d.afterNS},state:u,allPlugins:i,allMatches:d,instance:r,store:a,EVENTS:o});case 26:(g=e.sent).meta&&g.meta.hasCallback&&Dn(g.meta.rid,{payload:g});case 28:return e.abrupt("return",p);case 29:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Hn(e){return Wn.apply(this,arguments)}function Wn(){return Wn=Xt(an.mark((function e(t){var n,r,a,o,i,s,l,u,c,f,d,p,h,m,g,v,y,b;return an.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.data,r=t.action,a=t.instance,o=t.state,i=t.allPlugins,s=t.allMatches,l=t.store,u=t.EVENTS,c=o.plugins,f=o.context,d=r.type,p=d.match(Ln),h=n.exact.map((function(e){return e.pluginName})),p&&(h=s.during.map((function(e){return e.pluginName}))),m=nr(a,h),g=n.exact.reduce((function(e,t){var n=t.pluginName,r=t.methodName,a=!1;return r.match(/^initialize/)||r.match(/^reset/)||(a=!c[n].loaded),f.offline&&r.match(/^(page|track|identify)/)&&(a=!0),e["".concat(n)]=a,e}),{}),e.next=10,n.exact.reduce(function(){var e=Xt(an.mark((function e(t,o,s){var l,u,f;return an.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return l=o.pluginName,e.next=3,t;case 3:if(u=e.sent,!n.namespaced||!n.namespaced[l]){e.next=11;break}return e.next=7,n.namespaced[l].reduce(function(){var e=Xt(an.mark((function e(t,n,r){var o,s,u,f;return an.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s=function(e,t,n){return function(r,a){var o=n||t;return nn(nn({},e),{},{abort:{reason:r,plugins:a||[t],caller:d,from:o}})}},e.next=3,t;case 3:if(o=e.sent,n.method&&Vt(n.method)){e.next=6;break}return e.abrupt("return",o);case 6:return rr(n.methodName,n.pluginName),e.next=9,n.method({payload:o,instance:a,abort:s(o,l,n.pluginName),config:Qn(n.pluginName,c,i),plugins:c});case 9:return u=e.sent,f=Ht(u)?u:{},e.abrupt("return",Promise.resolve(nn(nn({},o),f)));case 12:case"end":return e.stop()}}),e)})));return function(t,n,r){return e.apply(this,arguments)}}(),Promise.resolve(r));case 7:f=e.sent,u[l]=f,e.next=12;break;case 11:u[l]=r;case 12:return e.abrupt("return",Promise.resolve(u));case 13:case"end":return e.stop()}}),e)})));return function(t,n,r){return e.apply(this,arguments)}}(),Promise.resolve({}));case 10:return v=e.sent,e.next=13,n.exact.reduce(function(){var e=Xt(an.mark((function e(t,r,o){var s,u,f,h,y,b,w,_,x,E,k,S;return an.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s=n.exact.length===o+1,u=r.pluginName,f=i[u],e.next=5,t;case 5:if(h=e.sent,y=v[u]?v[u]:{},p&&(y=h),!Zn(y,u)){e.next=11;break}return Kn({data:y,method:d,instance:a,pluginName:u,store:l}),e.abrupt("return",Promise.resolve(h));case 11:if(!Zn(h,u)){e.next=14;break}return s&&Kn({data:h,method:d,instance:a,store:l}),e.abrupt("return",Promise.resolve(h));case 14:if(!g.hasOwnProperty(u)||!0!==g[u]){e.next=17;break}return l.dispatch({type:"queue",plugin:u,payload:y,_:{called:"queue",from:"queueMechanism"}}),e.abrupt("return",Promise.resolve(h));case 17:return b=m(v[u],i[u]),e.next=20,f[d]({abort:b.abort,payload:y,instance:a,config:Qn(u,c,i),plugins:c});case 20:return w=e.sent,_=Ht(w)?w:{},x=nn(nn({},h),_),Zn(E=v[u],u)?Kn({data:E,method:d,instance:a,pluginName:u,store:l}):((k="".concat(d,":").concat(u)).match(/:/g)||[]).length<2&&!d.match(Vn)&&!d.match(Un)&&(S=p?x:y,a.dispatch(nn(nn({},S),{},{type:k,_:{called:k,from:"submethod"}}))),e.abrupt("return",Promise.resolve(x));case 26:case"end":return e.stop()}}),e)})));return function(t,n,r){return e.apply(this,arguments)}}(),Promise.resolve(r));case 13:if(y=e.sent,d.match(Ln)||d.match(/^registerPlugin/)||d.match(Un)||d.match(Vn)||d.match(/^params/)||d.match(/^userIdChanged/)){e.next=21;break}if(u.plugins.includes(d),!y._||y._.originalAction!==d){e.next=18;break}return e.abrupt("return",y);case 18:b=nn(nn({},y),{_:{originalAction:y.type,called:y.type,from:"engineEnd"}}),Xn(y,n.exact.length)&&!d.match(/End$/)&&(b=nn(nn({},b),{type:y.type+"Aborted"})),l.dispatch(b);case 21:return e.abrupt("return",y);case 22:case"end":return e.stop()}}),e)}))),Wn.apply(this,arguments)}function Kn(e){var t=e.data,n=e.method;e.instance;var r=e.pluginName,a=n+"Aborted"+(r?":"+r:"");e.store.dispatch(nn(nn({},t),{},{type:a,_:{called:a,from:"abort"}}))}function Qn(e,t,n){var r=t[e]||n[e];return r&&r.config?r.config:{}}function Gn(e,t){return t.reduce((function(t,n){return n[e]?t.concat({methodName:e,pluginName:n.name,method:n[e]}):t}),[])}function Jn(e,t){var n=e.replace(Ln,""),r=t?":".concat(t):"";return["".concat(e).concat(r),"".concat(n).concat(r),"".concat(n,"End").concat(r)]}function Yn(e,t,n){var r=Jn(e).map((function(e){return Gn(e,t)}));return t.reduce((function(n,r){var a,o,i=r.name,s=(a=Jn(e,i).map((function(e){return Gn(e,t)})),o=3,function(e){if(Array.isArray(e))return e}(a)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o=[],i=!0,s=!1;try{for(n=n.call(e);!(i=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);i=!0);}catch(e){s=!0,a=e}finally{try{i||null==n.return||n.return()}finally{if(s)throw a}}return o}}(a,o)||Gt(a,o)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),l=s[0],u=s[1],c=s[2];return l.length&&(n.beforeNS[i]=l),u.length&&(n.duringNS[i]=u),c.length&&(n.afterNS[i]=c),n}),{before:r[0],beforeNS:{},during:r[1],duringNS:{},after:r[2],afterNS:{}})}function Zn(e,t){var n=e.abort;return!!n&&(!0===n||tr(n,t)||n&&tr(n.plugins,t))}function Xn(e,t){var n=e.abort;if(!n)return!1;if(!0===n||Ut(n))return!0;var r=n.plugins;return er(n)&&n.length===t||er(r)&&r.length===t}function er(e){return Array.isArray(e)}function tr(e,t){return!(!e||!er(e))&&e.includes(t)}function nr(e,t){return function(n,r,a){var o=r.config,i=r.name,s="".concat(i,".").concat(n.type);a&&(s=a.event);var l=n.type.match(Ln)?function(e,t,n,r,a){return function(o,i){var s=r?r.name:e,l=i&&er(i)?i:n;if(r&&(!(l=i&&er(i)?i:[e]).includes(e)||1!==l.length))throw new Error("Method ".concat(t," can only abort ").concat(e," plugin. ").concat(JSON.stringify(l)," input valid"));return nn(nn({},a),{},{abort:{reason:o,plugins:l,caller:t,_:s}})}}(i,s,t,a,n):function(e,t){return function(){throw new Error(e.type+" action not cancellable. Remove abort in "+t)}}(n,s);return{payload:or(n),instance:e,config:o||{},abort:l}}}function rr(e,t){var n=ar(e);if(n&&n.name===t){var r=ar(n.method),a=r?"or "+r.method:"";throw new Error([t+" plugin is calling method "+e,"Plugins cant call self","Use ".concat(n.method," ").concat(a," in ").concat(t," plugin insteadof ").concat(e)].join("\n"))}}function ar(e){var t=e.match(/(.*):(.*)/);return!!t&&{method:t[1],name:t[2]}}function or(e){return Object.keys(e).reduce((function(t,n){return"type"===n||(Ht(e[n])?t[n]=Object.assign({},e[n]):t[n]=e[n]),t}),{})}function ir(e,t,n){var r={};return function(a){return function(o){return function(){var i=Xt(an.mark((function i(s){var l,u,c,f,d,p,h,m,g,v,y,b;return an.wrap((function(i){for(;;)switch(i.prev=i.next){case 0:if(l=s.type,u=s.abort,c=s.plugins,f=s,!u){i.next=4;break}return i.abrupt("return",o(s));case 4:if(l===$n.enablePlugin&&a.dispatch({type:$n.initializeStart,plugins:c,disabled:[],fromEnable:!0,meta:s.meta}),l===$n.disablePlugin&&setTimeout((function(){return Dn(s.meta.rid,{payload:s})}),0),l===$n.initializeEnd&&(d=t(),p=Object.keys(d),h=p.filter((function(e){return c.includes(e)})).map((function(e){return d[e]})),m=[],g=[],v=s.disabled,y=h.map((function(e){var t=e.loaded,n=e.name;return Mn(e,t,1e4).then((function(t){return r[n]||(a.dispatch({type:$n.pluginReadyType(n),name:n,events:Object.keys(e).filter((function(e){return!Sn.includes(e)}))}),r[n]=!0),m=m.concat(n),e})).catch((function(e){if(e instanceof Error)throw new Error(e);return g=g.concat(e.name),e}))})),Promise.all(y).then((function(e){var t={plugins:m,failed:g,disabled:v};setTimeout((function(){p.length===y.length+v.length&&a.dispatch(nn(nn({},{type:$n.ready}),t))}),0)}))),l===$n.bootstrap){i.next=13;break}return/^ready:([^:]*)$/.test(l)&&setTimeout((function(){return Fn(a,t,e)}),0),i.next=11,qn(s,t,e,a,n);case 11:return b=i.sent,i.abrupt("return",o(b));case 13:return i.abrupt("return",o(f));case 14:case"end":return i.stop()}}),i)})));return function(e){return i.apply(this,arguments)}}()}}}function sr(e){return function(t){return function(t){return function(n){var r=n.type,a=n.key,o=n.value,i=n.options;if(r===$n.setItem||r===$n.removeItem){if(n.abort)return t(n);r===$n.setItem?e.setItem(a,o,i):e.removeItem(a,i)}return t(n)}}}}function lr(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function ur(e,t,n){return t&&lr(e.prototype,t),n&&lr(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}var cr=ur((function e(){var t=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),en(this,"before",[]),en(this,"after",[]),en(this,"addMiddleware",(function(e,n){t[n]=t[n].concat(e)})),en(this,"removeMiddleware",(function(e,n){var r=t[n].findIndex((function(t){return t===e}));-1!==r&&(t[n]=[].concat(Jt(t[n].slice(0,r)),Jt(t[n].slice(r+1))))})),en(this,"dynamicMiddlewares",(function(e){return function(n){return function(r){return function(a){var o={getState:n.getState,dispatch:function(e){return n.dispatch(e)}},i=t[e].map((function(e){return e(o)}));return gn.apply(void 0,Jt(i))(r)(a)}}}}))}));function fr(e){return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r={};if("initialize:aborted"===n.type)return t;if(/^registerPlugin:([^:]*)$/.test(n.type)){var a=dr(n.type,"registerPlugin"),o=e()[a];if(!o||!a)return t;var i=n.enabled;return r[a]={enabled:i,initialized:!!i&&Boolean(!o.initialize),loaded:!!i&&Boolean(o.loaded()),config:o.config||{}},nn(nn({},t),r)}if(/^initialize:([^:]*)$/.test(n.type)){var s=dr(n.type,$n.initialize),l=e()[s];return l&&s?(r[s]=nn(nn({},t[s]),{initialized:!0,loaded:Boolean(l.loaded())}),nn(nn({},t),r)):t}if(/^ready:([^:]*)$/.test(n.type))return r[n.name]=nn(nn({},t[n.name]),{loaded:!0}),nn(nn({},t),r);switch(n.type){case $n.disablePlugin:return nn(nn({},t),pr(n.plugins,!1,t));case $n.enablePlugin:return nn(nn({},t),pr(n.plugins,!0,t));default:return t}}}function dr(e,t){return e.substring(t.length+1,e.length)}function pr(e,t,n){return e.reduce((function(e,r){return e[r]=nn(nn({},n[r]),{enabled:t}),e}),n)}function hr(e){try{return JSON.parse(JSON.stringify(e))}catch(e){}return e}var mr={last:{},history:[]};function gr(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:mr,t=arguments.length>1?arguments[1]:void 0,n=t.type,r=t.event,a=t.properties,o=t.options,i=t.meta;if(n===$n.track){var s=hr(nn(nn({event:r,properties:a},Object.keys(o).length&&{options:o}),{},{meta:i}));return nn(nn({},e),{last:s,history:e.history.concat(s)})}return e}var vr={actions:[]};function yr(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:vr,t=arguments.length>1?arguments[1]:void 0,n=t.type,r=t.payload;switch(n){case"queue":var a;return a=r&&r.type&&r.type===$n.identify?[t].concat(e.actions):e.actions.concat(t),nn(nn({},e),{},{actions:a});case"dequeue":return[];default:return e}}var br=/#.*$/;function wr(e){var t=/(http[s]?:\/\/)?([^\/\s]+\/)(.*)/g.exec(e);return"/"+(t&&t[3]?t[3].split("?")[0].replace(br,""):"")}var _r,xr,Er,kr,Sr=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!zt)return e;var t=document,n=t.title,r=t.referrer,a=window,o=a.location,i=a.innerWidth,s=a.innerHeight,l=o.hash,u=o.search,c=function(e){var t=function(){if(zt)for(var e,t=document.getElementsByTagName("link"),n=0;e=t[n];n++)if("canonical"===e.getAttribute("rel"))return e.getAttribute("href")}();return t?t.match(/\?/)?t:t+e:window.location.href.replace(br,"")}(u),f={title:n,url:c,path:wr(c),hash:l,search:u,width:i,height:s};return r&&""!==r&&(f.referrer=r),nn(nn({},f),e)},$r={last:{},history:[]};function Pr(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:$r,t=arguments.length>1?arguments[1]:void 0,n=t.properties,r=t.options,a=t.meta;if(t.type===$n.page){var o=hr(nn({properties:n,meta:a},Object.keys(r).length&&{options:r}));return nn(nn({},e),{last:o,history:e.history.concat(o)})}return e}_r=function(){if(!zt)return!1;var e=navigator.appVersion;return~e.indexOf("Win")?"Windows":~e.indexOf("Mac")?"MacOS":~e.indexOf("X11")?"UNIX":~e.indexOf("Linux")?"Linux":"Unknown OS"}(),xr=zt?document.referrer:null,Er=function(){if(Je){var e=navigator,t=e.languages;return e.userLanguage||(t&&t.length?t[0]:e.language)}}(),kr=function(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone}catch(e){}}();var Or={initialized:!1,sessionId:ct(),app:null,version:null,debug:!1,offline:!!zt&&!navigator.onLine,os:{name:_r},userAgent:zt?navigator.userAgent:"node",library:{name:_n,version:"0.10.22"},timezone:kr,locale:Er,campaign:{},referrer:xr};function Cr(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Or,t=arguments.length>1?arguments[1]:void 0,n=e.initialized,r=t.type,a=t.campaign;switch(r){case $n.campaign:return nn(nn({},e),{campaign:a});case $n.offline:return nn(nn({},e),{offline:!0});case $n.online:return nn(nn({},e),{offline:!1});default:return n?e:nn(nn(nn({},Or),e),{initialized:!0})}}var jr=["plugins","reducers","storage"];function Nr(e,t,n){if(zt){var r=window[(n?"add":"remove")+"EventListener"];e.split(" ").forEach((function(e){r(e,t)}))}}function Ir(e){var t=Nr.bind(null,"online offline",(function(t){return Promise.resolve(!navigator.onLine).then(e)}));return t(!0),function(e){return t(!1)}}function Tr(){return jt(_n,[]),function(e){return function(t,n,r){var a=e(t,n,r),o=a.dispatch;return Object.assign(a,{dispatch:function(e){var t=e.action||e;return Ot[Pt][_n].push(t),o(e)}})}}}function Ar(e){return function(){return gn(gn.apply(null,arguments),Tr())}}function Rr(e){return e?(t=e,"[object Array]"===Object.prototype.toString.call(t)?e:[e]):[];var t}function Dr(){var e,t,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,a=arguments.length>2?arguments[2]:void 0,o=ct();return r&&(Rn[o]=(e=r,t=function(e){for(var t,n=e||Array.prototype.slice.call(arguments),r=0;r<n.length;r++)if(Vt(n[r])){t=n[r];break}return t}(a),function(n){t&&t(n),e(n)})),nn(nn({},n),{},{rid:o,ts:(new Date).getTime()},r?{hasCallback:!0}:{})}function Mr(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.reducers||{},r=t.initialUser||{},a=(t.plugins||[]).reduce((function(e,t){if(Vt(t))return e.middlewares=e.middlewares.concat(t),e;if(t.NAMESPACE&&(t.name=t.NAMESPACE),!t.name)throw new Error("https://lytics.dev/errors/1");var n=t.EVENTS?Object.keys(t.EVENTS).map((function(e){return t.EVENTS[e]})):[],r=!(!1===t.enabled),a=!(t.config&&!1===t.config.enabled);e.pluginEnabled[t.name]=r&&a,delete t.enabled,t.methods&&(e.methods[t.name]=Object.keys(t.methods).reduce((function(e,n){return e[n]=(r=t.methods[n],function(){for(var e=Array.prototype.slice.call(arguments),t=new Array(r.length),n=0;n<e.length;n++)t[n]=e[n];return t[t.length]=k,r.apply({instance:k},t)}),e;var r}),{}),delete t.methods);var o=Object.keys(t).concat(n),i=new Set(e.events.concat(o));if(e.events=Array.from(i),e.pluginsArray=e.pluginsArray.concat(t),e.plugins[t.name])throw new Error(t.name+"AlreadyLoaded");return e.plugins[t.name]=t,e.plugins[t.name].loaded||(e.plugins[t.name].loaded=function(){return!0}),e}),{plugins:{},pluginEnabled:{},methods:{},pluginsArray:[],middlewares:[],events:[]}),o=t.storage?t.storage:{getItem:Ct,setItem:jt,removeItem:Nt},i=function(e){return function(t,n,r){return n.getState("user")[t]||(r&&Ht(r)&&r[t]?r[t]:In(e)[t]||Ct(Tn(t))||null)}}(o),s=a.plugins,l=a.events.filter((function(e){return!Sn.includes(e)})).sort(),u=new Set(l.concat(kn).filter((function(e){return!Sn.includes(e)}))),c=Array.from(u).sort(),f=function(){return s},d=new cr,p=d.addMiddleware,h=d.removeMiddleware,m=d.dynamicMiddlewares,g=function(){throw new Error("Abort disabled inListener")},v=function(e){for(var t,n=Object.create(null),r=/([^&=]+)=?([^&]*)/g;t=r.exec(e);){var a=lt(t[1]),o=lt(t[2]);"[]"===a.substring(a.length-2)?(n[a=a.substring(0,a.length-2)]||(n[a]=[])).push(o):n[a]=""===o||o}for(var i in n){var s=i.split("[");s.length>1&&(ut(n,s.map((function(e){return e.replace(/[?[\]\\ ]/g,"")})),n[i]),delete n[i])}return n}(function(e){if(e){var t=e.match(/\?(.*)/);return t&&t[1]?t[1].split("#")[0]:""}return Je&&window.location.search.substring(1)}(e)),y=In(o),b=nn(nn(nn(nn({},y),r),v.an_uid?{userId:v.an_uid}:{}),v.an_aid?{anonymousId:v.an_aid}:{});b.anonymousId||(b.anonymousId=ct());var w,_,x,E=nn({enable:function(e,t){return new Promise((function(n){A.dispatch({type:$n.enablePlugin,plugins:Rr(e),_:{originalAction:$n.enablePlugin}},n,[t])}))},disable:function(e,t){return new Promise((function(n){A.dispatch({type:$n.disablePlugin,plugins:Rr(e),_:{originalAction:$n.disablePlugin}},n,[t])}))}},a.methods),k={identify:(x=Xt(an.mark((function e(t,n,r,a){var o,s,l,u,c;return an.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=Ut(t)?t:null,s=Ht(t)?t:n,l=r||{},u=k.user(),jt(Tn(xn),o),c=o||s.userId||i(xn,k,s),e.abrupt("return",new Promise((function(e){A.dispatch(nn({type:$n.identifyStart,userId:c,traits:s||{},options:l,anonymousId:u.anonymousId},u.id&&u.id!==o&&{previousId:u.id}),e,[n,r,a])})));case 7:case"end":return e.stop()}}),e)}))),function(e,t,n,r){return x.apply(this,arguments)}),track:(_=Xt(an.mark((function e(t,n,r,a){var o,s,l;return an.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if((o=Ht(t)?t.event:t)&&Ut(o)){e.next=3;break}throw new Error("EventMissing");case 3:return s=Ht(t)?t:n||{},l=Ht(r)?r:{},e.abrupt("return",new Promise((function(e){A.dispatch({type:$n.trackStart,event:o,properties:s,options:l,userId:i(xn,k,n),anonymousId:i(En,k,n)},e,[n,r,a])})));case 6:case"end":return e.stop()}}),e)}))),function(e,t,n,r){return _.apply(this,arguments)}),page:(w=Xt(an.mark((function e(t,n,r){var a,o;return an.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=Ht(t)?t:{},o=Ht(n)?n:{},e.abrupt("return",new Promise((function(e){A.dispatch({type:$n.pageStart,properties:Sr(a),options:o,userId:i(xn,k,a),anonymousId:i(En,k,a)},e,[t,n,r])})));case 3:case"end":return e.stop()}}),e)}))),function(e,t,n){return w.apply(this,arguments)}),user:function(e){if(e===xn||"id"===e)return i(xn,k);if(e===En||"anonId"===e)return i(En,k);var t=k.getState("user");return e?Qe()(t,e):t},reset:function(e){return new Promise((function(t){A.dispatch({type:$n.resetStart},t,e)}))},ready:function(e){return k.on($n.ready,e)},on:function(e,t){if(!e||!Vt(t))return!1;if(e===$n.bootstrap)throw new Error(".on disabled for "+e);var n=/Start$|Start:/;if("*"===e){var r=function(e){return function(e){return function(r){return r.type.match(n)&&t({payload:r,instance:k,plugins:s}),e(r)}}},a=function(e){return function(e){return function(r){return r.type.match(n)||t({payload:r,instance:k,plugins:s}),e(r)}}};return p(r,Fr),p(a,zr),function(){h(r,Fr),h(a,zr)}}var o=e.match(n)?Fr:zr,i=function(n){return function(n){return function(r){return r.type===e&&t({payload:r,instance:k,plugins:s,abort:g}),n(r)}}};return p(i,o),function(){return h(i,o)}},once:function(e,t){if(!e||!Vt(t))return!1;if(e===$n.bootstrap)throw new Error(".once disabled for "+e);var n=k.on(e,(function(e){var r=e.payload;t({payload:r,instance:k,plugins:s,abort:g}),n()}));return n},getState:function(e){var t=A.getState();return e?Qe()(t,e):Object.assign({},t)},dispatch:function(e){var t,n=Ut(e)?{type:e}:e;if(t=n.type,kn.includes(t))throw new Error("reserved action "+n.type);var r=e._||{},a=nn(nn({},n),{},{_:nn({originalAction:n.type},r)});A.dispatch(a)},enablePlugin:E.enable,disablePlugin:E.disable,plugins:E,storage:{getItem:o.getItem,setItem:function(e,t,n){A.dispatch({type:$n.setItemStart,key:e,value:t,options:n})},removeItem:function(e,t){A.dispatch({type:$n.removeItemStart,key:e,options:t})}},setAnonymousId:function(e,t){k.storage.setItem(yn,e,t)},events:{all:c,core:kn,plugins:l}},S=a.middlewares.concat([function(e){return function(e){return function(t){return t.meta||(t.meta=Dr()),e(t)}}},m(Fr),ir(k,f,{all:c,plugins:l}),sr(o),jn(k),An(k),m(zr)]),$={context:Cr,user:Nn(o),page:Pr,track:gr,plugins:fr(f),queue:yr},P=gn,O=gn;if(zt&&t.debug){var C=window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__;C&&(P=C({trace:!0,traceLimit:25})),O=function(){return 0===arguments.length?Tr():Ht(Yt(arguments[0]))?Ar():Ar().apply(null,arguments)}}var j,N=function(e){return Object.keys(e).reduce((function(t,n){return jr.includes(n)||(t[n]=e[n]),t}),{})}(t),I=a.pluginsArray.reduce((function(e,t){var n=t.name,r=t.config,o=t.loaded,i=a.pluginEnabled[n];return e[n]={enabled:i,initialized:!!i&&Boolean(!t.initialize),loaded:Boolean(o()),config:r||{}},e}),{}),T={context:N,user:b,plugins:I},A=hn(function(e){for(var t=Object.keys(e),n={},r=0;r<t.length;r++){var a=t[r];Yt(e[a])===on&&(n[a]=e[a])}var o,i=Object.keys(n);try{!function(e){Object.keys(e).forEach((function(t){var n=e[t];if(Yt(n(void 0,{type:cn}))===sn||Yt(n(void 0,{type:fn}))===sn)throw new Error(ln+" "+t+" "+sn)}))}(n)}catch(e){o=e}return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;if(o)throw o;for(var r=!1,a={},s=0;s<i.length;s++){var l=i[s],u=n[l],c=e[l],f=u(c,t);if(Yt(f)===sn){var d=mn(l,t);throw new Error(d)}a[l]=f,r=r||f!==c}return r?a:e}}(nn(nn({},$),n)),T,O(P(vn.apply(void 0,Jt(S)))));A.dispatch=(j=A.dispatch,function(e,t,n){var r=Dr(e.meta,t,Rr(n)),a=nn(nn({},e),{meta:r});return j.apply(null,[a])});var R=Object.keys(s);A.dispatch({type:$n.bootstrap,plugins:R,config:N,params:v,user:b,initialUser:r,persistedUser:y});var D=R.filter((function(e){return a.pluginEnabled[e]})),M=R.filter((function(e){return!a.pluginEnabled[e]}));return A.dispatch({type:$n.registerPlugins,plugins:R,enabled:a.pluginEnabled}),a.pluginsArray.map((function(e,t){var n=e.bootstrap,r=e.config,o=e.name;n&&Vt(n)&&n({instance:k,config:r,payload:e}),A.dispatch({type:$n.registerPluginType(o),name:o,enabled:a.pluginEnabled[o],plugin:e}),a.pluginsArray.length===t+1&&A.dispatch({type:$n.initializeStart,plugins:D,disabled:M})})),Ir((function(e){A.dispatch({type:e?$n.offline:$n.online})})),function(e,t,n){setInterval((function(){return Fn(e,t,n)}),3e3)}(A,f,k),k}var Fr="before",zr="after",Lr="cookie",Vr=Hr(),Ur=Wr,qr=Wr;function Br(e){return Vr?Wr(e,"",-1):Nt(e)}function Hr(){if(void 0!==Vr)return Vr;var e="cookiecookie";try{Wr(e,e),Vr=-1!==document.cookie.indexOf(e),Br(e)}catch(e){Vr=!1}return Vr}function Wr(e,t,n,r,a,o){if("undefined"!=typeof window){var i=arguments.length>1;return!1===Vr&&(i?jt(e,t):Ct(e)),i?document.cookie=e+"="+encodeURIComponent(t)+(n?"; expires="+new Date(+new Date+1e3*n).toUTCString()+(r?"; path="+r:"")+(a?"; domain="+a:"")+(o?"; secure":""):""):decodeURIComponent((("; "+document.cookie).split("; "+e+"=")[1]||"").split(";")[0])}}var Kr="localStorage",Qr=At.bind(null,"localStorage"),Gr=(It("localStorage","getItem",Ct),It("localStorage","setItem",jt),It("localStorage","removeItem",Nt),"sessionStorage"),Jr=At.bind(null,"sessionStorage");function Yr(e){var t=e;try{if("true"===(t=JSON.parse(e)))return!0;if("false"===t)return!1;if(Ht(t))return t;parseFloat(t)===t&&(t=parseFloat(t))}catch(e){}if(null!==t&&""!==t)return t}It("sessionStorage","getItem",Ct),It("sessionStorage","setItem",jt),It("sessionStorage","removeItem",Nt);var Zr=Qr(),Xr=Jr(),ea=Hr();function ta(e,t){if(e){var n=na(t),r=!ia(n),a=ra(n)?Yr(localStorage.getItem(e)):void 0;if(r&&!qt(a))return a;var o=aa(n)?Yr(Ur(e)):void 0;if(r&&o)return o;var i=oa(n)?Yr(sessionStorage.getItem(e)):void 0;if(r&&i)return i;var s=Ct(e);return r?s:{localStorage:a,sessionStorage:i,cookie:o,global:s}}}function na(e){return e?Ut(e)?e:e.storage:Dt}function ra(e){return Zr&&sa(e,Kr)}function aa(e){return ea&&sa(e,Lr)}function oa(e){return Xr&&sa(e,Gr)}function ia(e){return e===Mt||"all"===e}function sa(e,t){return e===Dt||e===t||ia(e)}function la(e,t,n){return{location:e,current:t,previous:n}}const ua={setItem:function(e,t,n){if(e&&!qt(t)){var r={},a=na(n),o=JSON.stringify(t),i=!ia(a);return ra(a)&&(r[Kr]=la(Kr,t,Yr(localStorage.getItem(e))),localStorage.setItem(e,o),i)?r[Kr]:aa(a)&&(r[Lr]=la(Lr,t,Yr(Ur(e))),qr(e,o),i)?r[Lr]:oa(a)&&(r[Gr]=la(Gr,t,Yr(sessionStorage.getItem(e))),sessionStorage.setItem(e,o),i)?r[Gr]:(r[$t]=la($t,t,Ct(e)),jt(e,t),i?r[$t]:r)}},getItem:ta,removeItem:function(e,t){if(e){var n=na(t),r=ta(e,Mt),a={};return!qt(r.localStorage)&&ra(n)&&(localStorage.removeItem(e),a[Kr]=r.localStorage),!qt(r.cookie)&&aa(n)&&(Br(e),a[Lr]=r.cookie),!qt(r.sessionStorage)&&oa(n)&&(sessionStorage.removeItem(e),a[Gr]=r.sessionStorage),!qt(r.global)&&sa(n,$t)&&(Nt(e),a[$t]=r.global),a}}};function ca(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function fa(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function da(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?fa(Object(n),!0).forEach((function(t){ca(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):fa(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function pa(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ha(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?pa(Object(n),!0).forEach((function(t){ma(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):pa(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function ma(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var va,ya={debug:!1,containerId:null,dataLayerName:"dataLayer",dataLayer:void 0,preview:void 0,auth:void 0,execution:"async"},ba={};function wa(e,t){var n=ba[e];if(!n){var r=t.replace(/^https?:\/\//,"").replace(/[.*+?^${}()|[\]\\]/g,"\\$&");n=new RegExp(r+".*[?&]id="+e),ba[e]=n}var a=document.querySelectorAll("script[src]");return!!Object.keys(a).filter((function(e){return(a[e].src||"").match(n)})).length}function _a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function xa(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),r.forEach((function(t){_a(e,t,n[t])}))}return e}var Ea={trackingId:null,debug:!1,anonymizeIp:!1,customDimensions:{},resetCustomDimensionsOnPage:[],setCustomDimensionsToPage:!0},ka={};function Sa(e){return e?!function(e){var t=document.querySelectorAll("script[src]");return!!Object.keys(t).filter((function(n){return(t[n].src||"")===e})).length}(e):"undefined"==typeof ga}function $a(e){var t=e.instanceName;return{instancePrefix:t?"".concat(t,"."):"",instanceName:t}}function Pa(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t={},n=e.name,r=e.source,a=e.medium,o=e.content,i=e.keyword;return n&&(t.campaignName=n),r&&(t.campaignSource=r),a&&(t.campaignMedium=a),o&&(t.campaignContent=o),i&&(t.campaignKeyword=i),t}function Oa(e){var t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).customDimensions;return Object.keys(t).reduce((function(n,r){var a=t[r],o=function(e,t,n,r,a){for(t=t.split?t.split("."):t,r=0;r<t.length;r++)e=e?e[t[r]]:a;return e===a?void 0:e}(e,r)||e[r];return"boolean"==typeof o&&(o=o.toString()),o||0===o?(n[a]=o,n):n}),{})}function Ca(){var e=arguments.length>1?arguments[1]:void 0,t=arguments.length>2?arguments[2]:void 0,n=Oa(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e);return Object.keys(n).length?e.setCustomDimensionsToPage?(ga("".concat(t,"set"),n),{}):n:{}}const ja=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=!1,n=$a(e),r=n.instanceName,a=n.instancePrefix;return{name:"google-analytics",config:xa({},Ea,e),initialize:function(e){var t=e.config,n=e.instance;if(!t.trackingId)throw new Error("No GA trackingId defined");var o,i,s,l,u,c,f,d=t.customDimensions,p=t.customScriptSrc||"https://www.google-analytics.com/analytics.js";if(Sa(p)&&(o=window,i=document,s="script",l=p,u="ga",o.GoogleAnalyticsObject=u,o[u]=o[u]||function(){(o[u].q=o[u].q||[]).push(arguments)},o[u].l=1*new Date,c=i.createElement(s),f=i.getElementsByTagName(s)[0],c.async=1,c.src=l,f.parentNode.insertBefore(c,f)),!ka[r]){var h=xa({cookieDomain:t.domain||"auto",siteSpeedSampleRate:t.siteSpeedSampleRate||1,sampleRate:t.sampleRate||100,allowLinker:!0},t.cookieConfig);r&&(h.name=r),ga("create",t.trackingId,h),t.debug&&(ga("".concat(a,"set"),"sendHitTask",null),window.ga_debug={trace:!0}),t.anonymizeIp&&ga("".concat(a,"set"),"anonymizeIp",!0),t.tasks&&["customTask","previewTask","checkProtocolTask","validationTask","checkStorageTask","historyImportTask","samplerTask","buildHitTask","sendHitTask","timingTask","displayFeaturesTask"].forEach((function(e){if(t.tasks.hasOwnProperty(e)){var n=t.tasks[e];"function"==typeof n?ga(t.tasks[e]):null===n&&ga("".concat(a,"set"),e,n)}}));var m=(n.user()||{}).traits||{};if(Object.keys(m).length&&d&&Object.keys(d).length){var g=Oa(m,t);ga("".concat(a,"set"),g)}ka[r]=!0}},page:function(e){var n=e.payload,r=e.config,o=e.instance,i=n.properties,s=r.resetCustomDimensionsOnPage,l=r.customDimensions,u=o.getState("context.campaign");if(!Sa()){if(s&&s.length){var c=s.reduce((function(e,t){return l[t]&&(e[l[t]]=null),e}),{});Object.keys(c).length&&ga("".concat(a,"set"),c)}var f=i.path||document.location.pathname,d={page:f,title:i.title,location:i.url},p={page:f,title:i.title};i.referrer!==document.referrer&&(p.referrer=i.referrer);var h=xa({},d,Pa(u),Ca(i,r,a));ga("".concat(a,"set"),p),t&&delete h.location,ga("".concat(a,"send"),"pageview",h),t=!0}},track:function(e){var t=e.payload,n=e.config,r=e.instance,a=t.properties,o=t.event,i=a.label,s=a.value;!function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0;if(!Sa()){var r,a=$a(t).instancePrefix,o={hitType:e.hitType||"event",eventAction:e.event,eventLabel:e.label,eventCategory:e.category||"All",nonInteraction:void 0!==e.nonInteraction&&!!e.nonInteraction};e.value&&(o.eventValue=!(r=e.value)||r<0?0:Math.round(r));var i=xa({},o,Pa(e),Ca(n.properties,t,a));ga("".concat(a,"send"),"event",i)}}({hitType:"event",event:o,label:i,category:a.category||"All",value:s,nonInteraction:a.nonInteraction,campaign:r.getState("context.campaign")},n,t)},identify:function(e){var t=e.payload,n=e.config;!function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!Sa()){var r=$a(n).instancePrefix;if(e&&ga("".concat(r,"set"),"userId",e),Object.keys(t).length){var a=Oa(t,n);ga("".concat(r,"set"),a)}}}(t.userId,t.traits,n)},loaded:function(){return!!window.gaplugins}}};class Na{constructor(e){this.props=Object.assign(Object.assign({},Ue),e),this.el,this.component,this.init()}init(){this.component||(this.component=e.createElement(We,Object.assign({},this.props)),"complete"===document.readyState?this.render():window.addEventListener("load",(()=>this.render())))}render(){if(this.el)throw new Error("Widget is already rendered.");let e=document.createElement("div");const n=this.props.parentElement;if(n){const t=document.querySelector(n);if(!t)throw new Error(`${n} is undefined.`);t&&e&&(e=t)}else n||e||(e=document.getElementsByTagName("body")[0]);t.render(this.component,e),this.el=e}static connectAnalytics(e,t){const n=[];return e.forEach((e=>{switch(e.name){case"ga":n.push(ja({trackingId:e.id}));break;case"gtm":const t=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t="https://www.googletagmanager.com/gtm.js";return{name:"google-tag-manager",config:ha(ha({},ya),e),initialize:function(e){var n=e.config,r=n.containerId,a=n.dataLayerName,o=n.customScriptSrc,i=n.preview,s=n.auth,l=n.execution;if(!r)throw new Error("No google tag manager containerId defined");if(i&&!s)throw new Error("When enabling preview mode, both preview and auth parameters must be defined");var u=o||t;wa(r,u)||(function(e,t,n,r,a){e[r]=e[r]||[],e[r].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var o=t.getElementsByTagName(n)[0],c=t.createElement(n),f="dataLayer"!=r?"&l="+r:"",d=i?">m_preview="+i+">m_auth="+s+">m_cookies_win=x":"";l&&(c[l]=!0),c.src="".concat(u,"?id=")+a+f+d,o.parentNode.insertBefore(c,o)}(window,document,"script",a,r),va=a,n.dataLayer=window[a])},page:function(e){var t=e.payload;e.options,e.instance;var n=e.config;void 0!==n.dataLayer&&n.dataLayer.push(t.properties)},track:function(e){var t=e.payload;e.options;var n=e.config;if(void 0!==n.dataLayer){var r=t.anonymousId,a=t.userId,o=t.properties,i=o;a&&(i.userId=a),r&&(i.anonymousId=r),o.category||(i.category="All"),n.debug&&console.log("gtag push",ha({event:t.event},i)),n.dataLayer.push(ha({event:t.event},i))}},loaded:function(){var n=!!va&&!(!window[va]||Array.prototype.push===window[va].push);return wa(e.containerId,e.customScriptSrc||t)&&n}}}({containerId:e.id,dataLayer:window.dataLayer});t.loaded=()=>!!window.dataLayer&&!!window.dataLayer.push,n.push(t)}})),function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Mr(da(da({},{storage:ua}),e))}({debug:!0,app:t,plugins:n})}static track(e,t,n){const r=window.location.pathname;e.track(t,{category:r,label:n})}}window.WidgetClass=Na})()})(); -//# sourceMappingURL=feedback-widget.js.map \ No newline at end of file + deps: ${n}}`, + } + const i = { + keyword: 'dependencies', + type: 'object', + schemaType: 'object', + error: t.error, + code(e) { + const [t, n] = (function ({ schema: e }) { + const t = {}, + n = {} + for (const r in e) '__proto__' !== r && ((Array.isArray(e[r]) ? t : n)[r] = e[r]) + return [t, n] + })(e) + ;(s(e, t), l(e, n)) + }, + } + function s(e, t = e.schema) { + const { gen: n, data: a, it: i } = e + if (0 === Object.keys(t).length) return + const s = n.let('missing') + for (const l in t) { + const u = t[l] + if (0 === u.length) continue + const c = o.propertyInData(n, a, l, i.opts.ownProperties) + ;(e.setParams({ property: l, depsCount: u.length, deps: u.join(', ') }), + i.allErrors + ? n.if(c, () => { + for (const t of u) o.checkReportMissingProp(e, t) + }) + : (n.if(r._`${c} && (${o.checkMissingProp(e, u, s)})`), o.reportMissingProp(e, s), n.else())) + } + } + function l(e, t = e.schema) { + const { gen: n, data: r, keyword: i, it: s } = e, + l = n.name('valid') + for (const u in t) + a.alwaysValidSchema(s, t[u]) || + (n.if( + o.propertyInData(n, r, u, s.opts.ownProperties), + () => { + const t = e.subschema({ keyword: i, schemaProp: u }, l) + e.mergeValidEvaluated(t, l) + }, + () => n.var(l, !0), + ), + e.ok(l)) + } + ;((t.validatePropertyDeps = s), (t.validateSchemaDeps = l), (t.default = i)) + }, + 9434: (e, t, n) => { + 'use strict' + Object.defineProperty(t, '__esModule', { value: !0 }) + const r = n(3487), + a = n(6776), + o = n(4815), + i = { + keyword: 'if', + schemaType: ['object', 'boolean'], + trackErrors: !0, + error: { + message: ({ params: e }) => r.str`should match "${e.ifClause}" schema`, + params: ({ params: e }) => r._`{failingKeyword: ${e.ifClause}}`, + }, + code(e) { + const { gen: t, parentSchema: n, it: a } = e + void 0 === n.then && void 0 === n.else && o.checkStrictMode(a, '"if" without "then" and "else" is ignored') + const i = s(a, 'then'), + l = s(a, 'else') + if (!i && !l) return + const u = t.let('valid', !0), + c = t.name('_valid') + if ( + ((function () { + const t = e.subschema({ keyword: 'if', compositeRule: !0, createErrors: !1, allErrors: !1 }, c) + e.mergeEvaluated(t) + })(), + e.reset(), + i && l) + ) { + const n = t.let('ifClause') + ;(e.setParams({ ifClause: n }), t.if(c, f('then', n), f('else', n))) + } else i ? t.if(c, f('then')) : t.if(r.not(c), f('else')) + function f(n, a) { + return () => { + const o = e.subschema({ keyword: n }, c) + ;(t.assign(u, c), e.mergeValidEvaluated(o, u), a ? t.assign(a, r._`${n}`) : e.setParams({ ifClause: n })) + } + } + e.pass(u, () => e.error(!0)) + }, + } + function s(e, t) { + const n = e.schema[t] + return void 0 !== n && !a.alwaysValidSchema(e, n) + } + t.default = i + }, + 8200: (e, t, n) => { + 'use strict' + Object.defineProperty(t, '__esModule', { value: !0 }) + const r = n(4783), + a = n(4665), + o = n(9864), + i = n(7772), + s = n(3708), + l = n(9351), + u = n(6239), + c = n(2296), + f = n(5697), + d = n(19), + p = n(4200), + h = n(1125), + m = n(9434), + g = n(6552), + v = [ + f.default, + d.default, + p.default, + h.default, + m.default, + g.default, + r.default, + a.default, + o.default, + s.default, + l.default, + i.default, + u.default, + c.default, + ] + t.default = v + }, + 4665: (e, t, n) => { + 'use strict' + Object.defineProperty(t, '__esModule', { value: !0 }) + const r = n(3487), + a = n(6776), + o = n(4815), + i = n(412), + s = { + keyword: 'items', + type: 'array', + schemaType: ['object', 'array', 'boolean'], + before: 'uniqueItems', + code(e) { + const { gen: t, schema: n, it: s } = e + if (Array.isArray(n)) + (s.opts.unevaluated && n.length && !0 !== s.items && (s.items = a.mergeEvaluated.items(t, n.length, s.items)), + (function (n) { + const { parentSchema: i, data: l } = e + if ( + s.opts.strictTuples && + !(function (e, t) { + return e === t.minItems && (e === t.maxItems || !1 === t.additionalItems) + })(n.length, i) + ) { + const e = `"items" is ${n.length}-tuple, but minItems or maxItems/additionalItems are not specified or different` + o.checkStrictMode(s, e, s.opts.strictTuples) + } + const u = t.name('valid'), + c = t.const('len', r._`${l}.length`) + n.forEach((n, o) => { + a.alwaysValidSchema(s, n) || + (t.if(r._`${c} > ${o}`, () => e.subschema({ keyword: 'items', schemaProp: o, dataProp: o }, u)), e.ok(u)) + }) + })(n)) + else { + if (((s.items = !0), a.alwaysValidSchema(s, n))) return + e.ok(i.validateArray(e)) + } + }, + } + t.default = s + }, + 5697: (e, t, n) => { + 'use strict' + Object.defineProperty(t, '__esModule', { value: !0 }) + const r = n(6776), + a = { + keyword: 'not', + schemaType: ['object', 'boolean'], + trackErrors: !0, + code(e) { + const { gen: t, schema: n, it: a } = e + if (r.alwaysValidSchema(a, n)) return void e.fail() + const o = t.name('valid') + ;(e.subschema({ keyword: 'not', compositeRule: !0, createErrors: !1, allErrors: !1 }, o), + e.result( + o, + () => e.error(), + () => e.reset(), + )) + }, + error: { message: 'should NOT be valid' }, + } + t.default = a + }, + 4200: (e, t, n) => { + 'use strict' + Object.defineProperty(t, '__esModule', { value: !0 }) + const r = n(3487), + a = n(6776), + o = { + keyword: 'oneOf', + schemaType: 'array', + trackErrors: !0, + error: { message: 'should match exactly one schema in oneOf', params: ({ params: e }) => r._`{passingSchemas: ${e.passing}}` }, + code(e) { + const { gen: t, schema: n, it: o } = e + if (!Array.isArray(n)) throw new Error('ajv implementation error') + const i = n, + s = t.let('valid', !1), + l = t.let('passing', null), + u = t.name('_valid') + ;(e.setParams({ passing: l }), + t.block(function () { + i.forEach((n, i) => { + let c + ;(a.alwaysValidSchema(o, n) ? t.var(u, !0) : (c = e.subschema({ keyword: 'oneOf', schemaProp: i, compositeRule: !0 }, u)), + i > 0 && + t + .if(r._`${u} && ${s}`) + .assign(s, !1) + .assign(l, r._`[${l}, ${i}]`) + .else(), + t.if(u, () => { + ;(t.assign(s, !0), t.assign(l, i), c && e.mergeEvaluated(c, r.Name)) + })) + }) + }), + e.result( + s, + () => e.reset(), + () => e.error(!0), + )) + }, + } + t.default = o + }, + 2296: (e, t, n) => { + 'use strict' + Object.defineProperty(t, '__esModule', { value: !0 }) + const r = n(412), + a = n(3487), + o = n(4069), + i = n(4815), + s = n(6776), + l = { + keyword: 'patternProperties', + type: 'object', + schemaType: 'object', + code(e) { + const { gen: t, schema: n, data: l, parentSchema: u, it: c } = e, + { opts: f } = c, + d = r.schemaProperties(c, n) + if (0 === d.length) return + const p = f.strict && !f.allowMatchingProperties && u.properties, + h = t.name('valid') + !0 === c.props || c.props instanceof a.Name || (c.props = s.evaluatedPropsToName(t, c.props)) + const { props: m } = c + function g(e) { + for (const t in p) new RegExp(e).test(t) && i.checkStrictMode(c, `property ${t} matches pattern ${e} (use allowMatchingProperties)`) + } + function v(n) { + t.forIn('key', l, (i) => { + t.if(a._`${r.usePattern(t, n)}.test(${i})`, () => { + ;(e.subschema({ keyword: 'patternProperties', schemaProp: n, dataProp: i, dataPropType: o.Type.Str }, h), + c.opts.unevaluated && !0 !== m ? t.assign(a._`${m}[${i}]`, !0) : c.allErrors || t.if(a.not(h), () => t.break())) + }) + }) + } + !(function () { + for (const e of d) (p && g(e), c.allErrors ? v(e) : (t.var(h, !0), v(e), t.if(h))) + })() + }, + } + t.default = l + }, + 6239: (e, t, n) => { + 'use strict' + Object.defineProperty(t, '__esModule', { value: !0 }) + const r = n(2227), + a = n(412), + o = n(6776), + i = n(9351), + s = { + keyword: 'properties', + type: 'object', + schemaType: 'object', + code(e) { + const { gen: t, schema: n, parentSchema: s, data: l, it: u } = e + 'all' === u.opts.removeAdditional && + void 0 === s.additionalProperties && + i.default.code(new r.default(u, i.default, 'additionalProperties')) + const c = a.allSchemaProperties(n) + for (const e of c) u.definedProperties.add(e) + u.opts.unevaluated && c.length && !0 !== u.props && (u.props = o.mergeEvaluated.props(t, o.toHash(c), u.props)) + const f = c.filter((e) => !o.alwaysValidSchema(u, n[e])) + if (0 === f.length) return + const d = t.name('valid') + for (const n of f) + (p(n) ? h(n) : (t.if(a.propertyInData(t, l, n, u.opts.ownProperties)), h(n), u.allErrors || t.else().var(d, !0), t.endIf()), + e.it.definedProperties.add(n), + e.ok(d)) + function p(e) { + return u.opts.useDefaults && !u.compositeRule && void 0 !== n[e].default + } + function h(t) { + e.subschema({ keyword: 'properties', schemaProp: t, dataProp: t }, d) + } + }, + } + t.default = s + }, + 3708: (e, t, n) => { + 'use strict' + Object.defineProperty(t, '__esModule', { value: !0 }) + const r = n(3487), + a = n(6776), + o = { + keyword: 'propertyNames', + type: 'object', + schemaType: ['object', 'boolean'], + error: { + message: ({ params: e }) => r.str`property name '${e.propertyName}' is invalid`, + params: ({ params: e }) => r._`{propertyName: ${e.propertyName}}`, + }, + code(e) { + const { gen: t, schema: n, data: o, it: i } = e + if (a.alwaysValidSchema(i, n)) return + const s = t.name('valid') + ;(t.forIn('key', o, (n) => { + ;(e.setParams({ propertyName: n }), + e.subschema({ keyword: 'propertyNames', data: n, dataTypes: ['string'], propertyName: n, compositeRule: !0 }, s), + t.if(r.not(s), () => { + ;(e.error(!0), i.allErrors || t.break()) + })) + }), + e.ok(s)) + }, + } + t.default = o + }, + 6552: (e, t, n) => { + 'use strict' + Object.defineProperty(t, '__esModule', { value: !0 }) + const r = n(4815), + a = { + keyword: ['then', 'else'], + schemaType: ['object', 'boolean'], + code({ keyword: e, parentSchema: t, it: n }) { + void 0 === t.if && r.checkStrictMode(n, `"${e}" without "if" is ignored`) + }, + } + t.default = a + }, + 412: (e, t, n) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), + (t.validateUnion = + t.validateArray = + t.usePattern = + t.callValidateCode = + t.schemaProperties = + t.allSchemaProperties = + t.noPropertyInData = + t.propertyInData = + t.isOwnProperty = + t.hasPropFunc = + t.reportMissingProp = + t.checkMissingProp = + t.checkReportMissingProp = + void 0)) + const r = n(3487), + a = n(6776), + o = n(4069), + i = n(2141) + function s(e) { + return e.scopeValue('func', { ref: Object.prototype.hasOwnProperty, code: r._`Object.prototype.hasOwnProperty` }) + } + function l(e, t, n) { + return r._`${s(e)}.call(${t}, ${n})` + } + function u(e, t, n, a) { + const o = r._`${t}${r.getProperty(n)} === undefined` + return a ? r.or(o, r.not(l(e, t, n))) : o + } + function c(e) { + return e ? Object.keys(e).filter((e) => '__proto__' !== e) : [] + } + ;((t.checkReportMissingProp = function (e, t) { + const { gen: n, data: a, it: o } = e + n.if(u(n, a, t, o.opts.ownProperties), () => { + ;(e.setParams({ missingProperty: r._`${t}` }, !0), e.error()) + }) + }), + (t.checkMissingProp = function ({ gen: e, data: t, it: { opts: n } }, a, o) { + return r.or(...a.map((a) => r.and(u(e, t, a, n.ownProperties), r._`${o} = ${a}`))) + }), + (t.reportMissingProp = function (e, t) { + ;(e.setParams({ missingProperty: t }, !0), e.error()) + }), + (t.hasPropFunc = s), + (t.isOwnProperty = l), + (t.propertyInData = function (e, t, n, a) { + const o = r._`${t}${r.getProperty(n)} !== undefined` + return a ? r._`${o} && ${l(e, t, n)}` : o + }), + (t.noPropertyInData = u), + (t.allSchemaProperties = c), + (t.schemaProperties = function (e, t) { + return c(t).filter((n) => !a.alwaysValidSchema(e, t[n])) + }), + (t.callValidateCode = function ({ schemaCode: e, data: t, it: { gen: n, topSchemaRef: a, schemaPath: o, errorPath: s }, it: l }, u, c, f) { + const d = f ? r._`${e}, ${t}, ${a}${o}` : t, + p = [ + [i.default.dataPath, r.strConcat(i.default.dataPath, s)], + [i.default.parentData, l.parentData], + [i.default.parentDataProperty, l.parentDataProperty], + [i.default.rootData, i.default.rootData], + ] + l.opts.dynamicRef && p.push([i.default.dynamicAnchors, i.default.dynamicAnchors]) + const h = r._`${d}, ${n.object(...p)}` + return c !== r.nil ? r._`${u}.call(${c}, ${h})` : r._`${u}(${h})` + }), + (t.usePattern = function (e, t) { + return e.scopeValue('pattern', { key: t, ref: new RegExp(t, 'u'), code: r._`new RegExp(${t}, "u")` }) + }), + (t.validateArray = function (e) { + const { gen: t, data: n, keyword: a, it: i } = e, + s = t.name('valid') + if (i.allErrors) { + const e = t.let('valid', !0) + return (l(() => t.assign(e, !1)), e) + } + return (t.var(s, !0), l(() => t.break()), s) + function l(i) { + const l = t.const('len', r._`${n}.length`) + t.forRange('i', 0, l, (n) => { + ;(e.subschema({ keyword: a, dataProp: n, dataPropType: o.Type.Num }, s), t.if(r.not(s), i)) + }) + } + }), + (t.validateUnion = function (e) { + const { gen: t, schema: n, keyword: o, it: i } = e + if (!Array.isArray(n)) throw new Error('ajv implementation error') + if (n.some((e) => a.alwaysValidSchema(i, e)) && !i.opts.unevaluated) return + const s = t.let('valid', !1), + l = t.name('_valid') + ;(t.block(() => + n.forEach((n, a) => { + const i = e.subschema({ keyword: o, schemaProp: a, compositeRule: !0 }, l) + ;(t.assign(s, r._`${s} || ${l}`), e.mergeValidEvaluated(i, l) || t.if(r.not(s))) + }), + ), + e.result( + s, + () => e.reset(), + () => e.error(!0), + )) + })) + }, + 8386: (e, t) => { + 'use strict' + Object.defineProperty(t, '__esModule', { value: !0 }) + const n = { + keyword: 'id', + code() { + throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID') + }, + } + t.default = n + }, + 5684: (e, t, n) => { + 'use strict' + Object.defineProperty(t, '__esModule', { value: !0 }) + const r = n(8386), + a = n(8280), + o = ['$schema', '$id', '$defs', '$vocabulary', { keyword: '$comment' }, 'definitions', r.default, a.default] + t.default = o + }, + 8280: (e, t, n) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.callRef = t.getValidate = void 0)) + const r = n(8727), + a = n(412), + o = n(3487), + i = n(2141), + s = n(5173), + l = n(6776), + u = { + keyword: '$ref', + schemaType: 'string', + code(e) { + const { gen: t, schema: n, it: a } = e, + { baseId: i, schemaEnv: l, validateName: u, opts: d, self: p } = a + if ('#' === n || '#/' === n) + return (function () { + if (l === l.root) return f(e, u, l, l.$async) + const n = t.scopeValue('root', { ref: l.root }) + return f(e, o._`${n}.validate`, l.root, l.root.$async) + })() + const h = s.resolveRef.call(p, l.root, i, n) + if (void 0 === h) throw new r.MissingRefError(i, n) + return h instanceof s.SchemaEnv + ? (function (t) { + const n = c(e, t) + f(e, n, t, t.$async) + })(h) + : (function (r) { + const a = t.scopeValue('schema', !0 === d.code.source ? { ref: r, code: o.stringify(r) } : { ref: r }), + i = t.name('valid'), + s = e.subschema({ schema: r, dataTypes: [], schemaPath: o.nil, topSchemaRef: a, errSchemaPath: n }, i) + ;(e.mergeEvaluated(s), e.ok(i)) + })(h) + }, + } + function c(e, t) { + const { gen: n } = e + return t.validate ? n.scopeValue('validate', { ref: t.validate }) : o._`${n.scopeValue('wrapper', { ref: t })}.validate` + } + function f(e, t, n, r) { + const { gen: s, it: u } = e, + { allErrors: c, schemaEnv: f, opts: d } = u, + p = d.passContext ? i.default.this : o.nil + function h(e) { + const t = o._`${e}.errors` + ;(s.assign(i.default.vErrors, o._`${i.default.vErrors} === null ? ${t} : ${i.default.vErrors}.concat(${t})`), + s.assign(i.default.errors, o._`${i.default.vErrors}.length`)) + } + function m(e) { + var t + if (!u.opts.unevaluated) return + const r = null === (t = null == n ? void 0 : n.validate) || void 0 === t ? void 0 : t.evaluated + if (!0 !== u.props) + if (r && !r.dynamicProps) void 0 !== r.props && (u.props = l.mergeEvaluated.props(s, r.props, u.props)) + else { + const t = s.var('props', o._`${e}.evaluated.props`) + u.props = l.mergeEvaluated.props(s, t, u.props, o.Name) + } + if (!0 !== u.items) + if (r && !r.dynamicItems) void 0 !== r.items && (u.items = l.mergeEvaluated.items(s, r.items, u.items)) + else { + const t = s.var('items', o._`${e}.evaluated.items`) + u.items = l.mergeEvaluated.items(s, t, u.items, o.Name) + } + } + r + ? (function () { + if (!f.$async) throw new Error('async schema referenced by sync schema') + const n = s.let('valid') + ;(s.try( + () => { + ;(s.code(o._`await ${a.callValidateCode(e, t, p)}`), m(t), c || s.assign(n, !0)) + }, + (e) => { + ;(s.if(o._`!(${e} instanceof ${u.ValidationError})`, () => s.throw(e)), h(e), c || s.assign(n, !1)) + }, + ), + e.ok(n)) + })() + : e.result( + a.callValidateCode(e, t, p), + () => m(t), + () => h(t), + ) + } + ;((t.getValidate = c), (t.callRef = f), (t.default = u)) + }, + 3924: (e, t, n) => { + 'use strict' + Object.defineProperty(t, '__esModule', { value: !0 }) + const r = n(5684), + a = n(2649), + o = n(8200), + i = n(9502), + s = n(6167), + l = [r.default, a.default, o.default, i.default, s.metadataVocabulary, s.contentVocabulary] + t.default = l + }, + 9651: (e, t, n) => { + 'use strict' + Object.defineProperty(t, '__esModule', { value: !0 }) + const r = n(3487), + a = { + keyword: 'format', + type: ['number', 'string'], + schemaType: 'string', + $data: !0, + error: { message: ({ schemaCode: e }) => r.str`should match format "${e}"`, params: ({ schemaCode: e }) => r._`{format: ${e}}` }, + code(e, t) { + const { gen: n, data: a, $data: o, schema: i, schemaCode: s, it: l } = e, + { opts: u, errSchemaPath: c, schemaEnv: f, self: d } = l + u.validateFormats && + (o + ? (function () { + const o = n.scopeValue('formats', { ref: d.formats, code: u.code.formats }), + i = n.const('fDef', r._`${o}[${s}]`), + l = n.let('fType'), + c = n.let('format') + ;(n.if( + r._`typeof ${i} == "object" && !(${i} instanceof RegExp)`, + () => n.assign(l, r._`${i}.type || "string"`).assign(c, r._`${i}.validate`), + () => n.assign(l, r._`"string"`).assign(c, i), + ), + e.fail$data( + r.or( + !1 === u.strict ? r.nil : r._`${s} && !${c}`, + (function () { + const e = f.$async ? r._`(${i}.async ? await ${c}(${a}) : ${c}(${a}))` : r._`${c}(${a})`, + n = r._`(typeof ${c} == "function" ? ${e} : ${c}.test(${a}))` + return r._`${c} && ${c} !== true && ${l} === ${t} && !${n}` + })(), + ), + )) + })() + : (function () { + const o = d.formats[i] + if (!o) + return void (function () { + if (!1 !== u.strict) throw new Error(e()) + function e() { + return `unknown format "${i}" ignored in schema at path "${c}"` + } + d.logger.warn(e()) + })() + if (!0 === o) return + const [s, l, p] = (function (e) { + const t = n.scopeValue('formats', { + key: i, + ref: e, + code: u.code.formats ? r._`${u.code.formats}${r.getProperty(i)}` : void 0, + }) + return 'object' != typeof e || e instanceof RegExp ? ['string', e, t] : [e.type || 'string', e.validate, r._`${t}.validate`] + })(o) + s === t && + e.pass( + (function () { + if ('object' == typeof o && !(o instanceof RegExp) && o.async) { + if (!f.$async) throw new Error('async format in sync schema') + return r._`await ${p}(${a})` + } + return 'function' == typeof l ? r._`${p}(${a})` : r._`${p}.test(${a})` + })(), + ) + })()) + }, + } + t.default = a + }, + 9502: (e, t, n) => { + 'use strict' + Object.defineProperty(t, '__esModule', { value: !0 }) + const r = [n(9651).default] + t.default = r + }, + 6167: (e, t) => { + 'use strict' + ;(Object.defineProperty(t, '__esModule', { value: !0 }), + (t.contentVocabulary = t.metadataVocabulary = void 0), + (t.metadataVocabulary = ['title', 'description', 'default', 'deprecated', 'readOnly', 'writeOnly', 'examples']), + (t.contentVocabulary = ['contentMediaType', 'contentEncoding', 'contentSchema'])) + }, + 4693: (e, t, n) => { + 'use strict' + Object.defineProperty(t, '__esModule', { value: !0 }) + const r = n(3487), + a = n(6728), + o = { + keyword: 'const', + $data: !0, + error: { message: 'should be equal to constant', params: ({ schemaCode: e }) => r._`{allowedValue: ${e}}` }, + code(e) { + const t = e.gen.scopeValue('func', { ref: a, code: r._`require("ajv/dist/compile/equal")` }) + e.fail$data(r._`!${t}(${e.data}, ${e.schemaCode})`) + }, + } + t.default = o + }, + 966: (e, t, n) => { + 'use strict' + Object.defineProperty(t, '__esModule', { value: !0 }) + const r = n(3487), + a = n(6728), + o = { + keyword: 'enum', + schemaType: 'array', + $data: !0, + error: { message: 'should be equal to one of the allowed values', params: ({ schemaCode: e }) => r._`{allowedValues: ${e}}` }, + code(e) { + const { gen: t, data: n, $data: o, schema: i, schemaCode: s, it: l } = e + if (!o && 0 === i.length) throw new Error('enum must have non-empty array') + const u = i.length >= l.opts.loopEnum, + c = e.gen.scopeValue('func', { ref: a, code: r._`require("ajv/dist/compile/equal")` }) + let f + if (u || o) + ((f = t.let('valid')), + e.block$data(f, function () { + ;(t.assign(f, !1), t.forOf('v', s, (e) => t.if(r._`${c}(${n}, ${e})`, () => t.assign(f, !0).break()))) + })) + else { + if (!Array.isArray(i)) throw new Error('ajv implementation error') + const e = t.const('vSchema', s) + f = r.or( + ...i.map((t, a) => + (function (e, t) { + const a = i[t] + return a && 'object' == typeof a ? r._`${c}(${n}, ${e}[${t}])` : r._`${n} === ${a}` + })(e, a), + ), + ) + } + e.pass(f) + }, + } + t.default = o + }, + 2649: (e, t, n) => { + 'use strict' + Object.defineProperty(t, '__esModule', { value: !0 }) + const r = n(3983), + a = n(430), + o = n(3229), + i = n(4336), + s = n(498), + l = n(3301), + u = n(1687), + c = n(2958), + f = n(4693), + d = n(966), + p = [ + r.default, + a.default, + o.default, + i.default, + s.default, + l.default, + u.default, + c.default, + { keyword: 'type', schemaType: ['string', 'array'] }, + { keyword: 'nullable', schemaType: 'boolean' }, + f.default, + d.default, + ] + t.default = p + }, + 1687: (e, t, n) => { + 'use strict' + Object.defineProperty(t, '__esModule', { value: !0 }) + const r = n(3487), + a = { + keyword: ['maxItems', 'minItems'], + type: 'array', + schemaType: 'number', + $data: !0, + error: { + message({ keyword: e, schemaCode: t }) { + const n = 'maxItems' === e ? 'more' : 'fewer' + return r.str`should NOT have ${n} than ${t} items` + }, + params: ({ schemaCode: e }) => r._`{limit: ${e}}`, + }, + code(e) { + const { keyword: t, data: n, schemaCode: a } = e, + o = 'maxItems' === t ? r.operators.GT : r.operators.LT + e.fail$data(r._`${n}.length ${o} ${a}`) + }, + } + t.default = a + }, + 3229: (e, t, n) => { + 'use strict' + Object.defineProperty(t, '__esModule', { value: !0 }) + const r = n(3487), + a = n(4776), + o = { + keyword: ['maxLength', 'minLength'], + type: 'string', + schemaType: 'number', + $data: !0, + error: { + message({ keyword: e, schemaCode: t }) { + const n = 'maxLength' === e ? 'more' : 'fewer' + return r.str`should NOT have ${n} than ${t} characters` + }, + params: ({ schemaCode: e }) => r._`{limit: ${e}}`, + }, + code(e) { + const { keyword: t, data: n, schemaCode: o, it: i } = e, + s = 'maxLength' === t ? r.operators.GT : r.operators.LT + let l + if (!1 === i.opts.unicode) l = r._`${n}.length` + else { + const t = e.gen.scopeValue('func', { ref: a.default, code: r._`require("ajv/dist/compile/ucs2length").default` }) + l = r._`${t}(${n})` + } + e.fail$data(r._`${l} ${s} ${o}`) + }, + } + t.default = o + }, + 3983: (e, t, n) => { + 'use strict' + Object.defineProperty(t, '__esModule', { value: !0 }) + const r = n(3487), + a = r.operators, + o = { + maximum: { okStr: '<=', ok: a.LTE, fail: a.GT }, + minimum: { okStr: '>=', ok: a.GTE, fail: a.LT }, + exclusiveMaximum: { okStr: '<', ok: a.LT, fail: a.GTE }, + exclusiveMinimum: { okStr: '>', ok: a.GT, fail: a.LTE }, + }, + i = { + message: ({ keyword: e, schemaCode: t }) => r.str`should be ${o[e].okStr} ${t}`, + params: ({ keyword: e, schemaCode: t }) => r._`{comparison: ${o[e].okStr}, limit: ${t}}`, + }, + s = { + keyword: Object.keys(o), + type: 'number', + schemaType: 'number', + $data: !0, + error: i, + code(e) { + const { keyword: t, data: n, schemaCode: a } = e + e.fail$data(r._`${n} ${o[t].fail} ${a} || isNaN(${n})`) + }, + } + t.default = s + }, + 498: (e, t, n) => { + 'use strict' + Object.defineProperty(t, '__esModule', { value: !0 }) + const r = n(3487), + a = { + keyword: ['maxProperties', 'minProperties'], + type: 'object', + schemaType: 'number', + $data: !0, + error: { + message({ keyword: e, schemaCode: t }) { + const n = 'maxProperties' === e ? 'more' : 'fewer' + return r.str`should NOT have ${n} than ${t} items` + }, + params: ({ schemaCode: e }) => r._`{limit: ${e}}`, + }, + code(e) { + const { keyword: t, data: n, schemaCode: a } = e, + o = 'maxProperties' === t ? r.operators.GT : r.operators.LT + e.fail$data(r._`Object.keys(${n}).length ${o} ${a}`) + }, + } + t.default = a + }, + 430: (e, t, n) => { + 'use strict' + Object.defineProperty(t, '__esModule', { value: !0 }) + const r = n(3487), + a = { + keyword: 'multipleOf', + type: 'number', + schemaType: 'number', + $data: !0, + error: { message: ({ schemaCode: e }) => r.str`should be multiple of ${e}`, params: ({ schemaCode: e }) => r._`{multipleOf: ${e}}` }, + code(e) { + const { gen: t, data: n, schemaCode: a, it: o } = e, + i = o.opts.multipleOfPrecision, + s = t.let('res'), + l = i ? r._`Math.abs(Math.round(${s}) - ${s}) > 1e-${i}` : r._`${s} !== parseInt(${s})` + e.fail$data(r._`(${a} === 0 || (${s} = ${n}/${a}, ${l}))`) + }, + } + t.default = a + }, + 4336: (e, t, n) => { + 'use strict' + Object.defineProperty(t, '__esModule', { value: !0 }) + const r = n(412), + a = n(3487), + o = { + keyword: 'pattern', + type: 'string', + schemaType: 'string', + $data: !0, + error: { message: ({ schemaCode: e }) => a.str`should match pattern "${e}"`, params: ({ schemaCode: e }) => a._`{pattern: ${e}}` }, + code(e) { + const { gen: t, data: n, $data: o, schema: i, schemaCode: s } = e, + l = o ? a._`(new RegExp(${s}, "u"))` : r.usePattern(t, i) + e.fail$data(a._`!${l}.test(${n})`) + }, + } + t.default = o + }, + 3301: (e, t, n) => { + 'use strict' + Object.defineProperty(t, '__esModule', { value: !0 }) + const r = n(412), + a = n(3487), + o = n(4815), + i = { + keyword: 'required', + type: 'object', + schemaType: 'array', + $data: !0, + error: { + message: ({ params: { missingProperty: e } }) => a.str`should have required property '${e}'`, + params: ({ params: { missingProperty: e } }) => a._`{missingProperty: ${e}}`, + }, + code(e) { + const { gen: t, schema: n, schemaCode: i, data: s, $data: l, it: u } = e, + { opts: c } = u + if (!l && 0 === n.length) return + const f = n.length >= c.loopRequired + if ( + (u.allErrors + ? (function () { + if (f || l) e.block$data(a.nil, d) + else for (const t of n) r.checkReportMissingProp(e, t) + })() + : (function () { + const o = t.let('missing') + if (f || l) { + const n = t.let('valid', !0) + ;(e.block$data(n, () => + (function (n, o) { + ;(e.setParams({ missingProperty: n }), + t.forOf( + n, + i, + () => { + ;(t.assign(o, r.propertyInData(t, s, n, c.ownProperties)), + t.if(a.not(o), () => { + ;(e.error(), t.break()) + })) + }, + a.nil, + )) + })(o, n), + ), + e.ok(n)) + } else (t.if(r.checkMissingProp(e, n, o)), r.reportMissingProp(e, o), t.else()) + })(), + c.strictRequired) + ) { + const t = e.parentSchema.properties, + { definedProperties: r } = e.it + for (const e of n) + if (void 0 === (null == t ? void 0 : t[e]) && !r.has(e)) { + const t = `required property "${e}" is not defined at "${u.schemaEnv.baseId + u.errSchemaPath}" (strictRequired)` + o.checkStrictMode(u, t, u.opts.strictRequired) + } + } + function d() { + t.forOf('prop', i, (n) => { + ;(e.setParams({ missingProperty: n }), t.if(r.noPropertyInData(t, s, n, c.ownProperties), () => e.error())) + }) + } + }, + } + t.default = i + }, + 2958: (e, t, n) => { + 'use strict' + Object.defineProperty(t, '__esModule', { value: !0 }) + const r = n(453), + a = n(3487), + o = n(6728), + i = { + keyword: 'uniqueItems', + type: 'array', + schemaType: 'boolean', + $data: !0, + error: { + message: ({ params: { i: e, j: t } }) => a.str`should NOT have duplicate items (items ## ${t} and ${e} are identical)`, + params: ({ params: { i: e, j: t } }) => a._`{i: ${e}, j: ${t}}`, + }, + code(e) { + const { gen: t, data: n, $data: i, schema: s, parentSchema: l, schemaCode: u, it: c } = e + if (!i && !s) return + const f = t.let('valid'), + d = l.items ? r.getSchemaTypes(l.items) : [] + function p(o, i) { + const s = t.name('item'), + l = r.checkDataTypes(d, s, c.opts.strict, r.DataType.Wrong), + u = t.const('indices', a._`{}`) + t.for(a._`;${o}--;`, () => { + ;(t.let(s, a._`${n}[${o}]`), + t.if(l, a._`continue`), + d.length > 1 && t.if(a._`typeof ${s} == "string"`, a._`${s} += "_"`), + t + .if(a._`typeof ${u}[${s}] == "number"`, () => { + ;(t.assign(i, a._`${u}[${s}]`), e.error(), t.assign(f, !1).break()) + }) + .code(a._`${u}[${s}] = ${o}`)) + }) + } + function h(r, i) { + const s = e.gen.scopeValue('func', { ref: o, code: a._`require("ajv/dist/compile/equal")` }), + l = t.name('outer') + t.label(l).for(a._`;${r}--;`, () => + t.for(a._`${i} = ${r}; ${i}--;`, () => + t.if(a._`${s}(${n}[${r}], ${n}[${i}])`, () => { + ;(e.error(), t.assign(f, !1).break(l)) + }), + ), + ) + } + ;(e.block$data( + f, + function () { + const r = t.let('i', a._`${n}.length`), + o = t.let('j') + ;(e.setParams({ i: r, j: o }), + t.assign(f, !0), + t.if(a._`${r} > 1`, () => (d.length > 0 && !d.some((e) => 'object' === e || 'array' === e) ? p : h)(r, o))) + }, + a._`${u} === false`, + ), + e.ok(f)) + }, + } + t.default = i + }, + 6728: (e) => { + 'use strict' + e.exports = function e(t, n) { + if (t === n) return !0 + if (t && n && 'object' == typeof t && 'object' == typeof n) { + if (t.constructor !== n.constructor) return !1 + var r, a, o + if (Array.isArray(t)) { + if ((r = t.length) != n.length) return !1 + for (a = r; 0 != a--; ) if (!e(t[a], n[a])) return !1 + return !0 + } + if (t.constructor === RegExp) return t.source === n.source && t.flags === n.flags + if (t.valueOf !== Object.prototype.valueOf) return t.valueOf() === n.valueOf() + if (t.toString !== Object.prototype.toString) return t.toString() === n.toString() + if ((r = (o = Object.keys(t)).length) !== Object.keys(n).length) return !1 + for (a = r; 0 != a--; ) if (!Object.prototype.hasOwnProperty.call(n, o[a])) return !1 + for (a = r; 0 != a--; ) { + var i = o[a] + if (!e(t[i], n[i])) return !1 + } + return !0 + } + return t != t && n != n + } + }, + 5287: (e, t, n) => { + ;((t = n(3645)(!1)).push([ + e.id, + '@keyframes slideInUp {\n from {\n transform: translate3d(0, 100%, 0);\n display: inherit;\n visibility: visible;\n }\n\n to {\n transform: translate3d(0, 0, 0);\n }\n}\n\n@keyframes slideOutDown {\n from {\n transform: translate3d(0, 0, 0);\n }\n\n to {\n display: none;\n visibility: hidden;\n transform: translate3d(0, 100%, 0);\n }\n}\n\n.cleanslate .docked-widget {\n position: fixed !important;\n z-index: 100 !important;\n box-shadow: 0px 8px 12px 0px rgba(0,0,0,0.12) !important;\n}\n\n@media (min-width: 768px) {\n .cleanslate .docked-widget {\n right: 164px !important;\n bottom: 36px !important;\n }\n}\n\n.cleanslate .dock {\n cursor: pointer !important;\n display: flex !important;\n align-items: center !important;\n justify-content: center !important;\n padding: 10px !important;\n background: white !important;\n}\n\n.cleanslate .icon-yes {\n width: 32px !important;\n height: 32px !important;\n border: none !important;\n background-color: transparent !important;\n}\n\n.cleanslate .icon-no {\n transform: rotate(180deg) !important;\n width: 32px !important;\n height: 32px !important;\n border: none !important;\n background-color: transparent !important;\n}\n\n.cleanslate .form-group {\n margin-bottom: 0 !important;\n}\n\n.cleanslate #playgroundTextArea {\n height: 350px !important;\n width: 40% !important;\n}\n\n.cleanslate #closeFeedback {\n color: #999da2 !important;\n border: none !important;\n font-size: 15px !important;\n background-color: transparent !important;\n position: absolute !important;\n right: 0px !important;\n top: 5px !important;\n}\n\n.cleanslate #closeFeedback:hover {\n cursor: pointer !important;\n}\n\n.cleanslate form {\n padding: 10px !important;\n}\n\n.cleanslate formdiv {\n margin: 10px 0 !important;\n}\n\n.cleanslate label {\n margin-right: 5px !important;\n}\n\n.cleanslate input[type="text" i] {\n padding: 1px 2px !important;\n margin: 10px 0 !important;\n}\n\n.cleanslate input[type="submit" i] {\n padding: 10px !important;\n margin: 10px !important;\n align-items: center !important;\n color: #fff !important;\n font-size: 15px !important;\n background-color: #0f72e5 !important;\n border: 1px solid #0f72e5 !important;\n border-radius: 4px !important;\n}\n\n.cleanslate .xrpl input[type="submit" i] {\n color: #171C21 !important;\n font-size: 15 !important;\n font-weight: bold !important;\n background-color: #ffffff !important;\n border: 2px solid #171C21 !important;\n border-radius: 0 !important;\n padding: 8px 16px !important;\n}\n\n.cleanslate .ripplex input[type="submit" i] {\n color: #ffffff !important;\n font-size: 15 !important;\n background-color: #0F72E5 !important;\n border: 1px solid #0F72E5 !important;\n border-radius: 4 !important;\n}\n\n.cleanslate .paystring input[type="submit" i] {\n color: #ffffff !important;\n font-size: 15 !important;\n background-color: #FF8100 !important;\n border: 1px solid #FF8100 !important;\n border-radius: 4 !important;\n}\n\n.cleanslate .widget {\n animation-duration: 0.2s !important;\n animation-fill-mode: forwards !important;\n}\n\n.cleanslate .widgetli {\n vertical-align: bottom !important;\n}\n\n.cleanslate .widget-entering {\n animation-name: slideInUp !important;\n}\n\n.cleanslate .widget-entered {\n display: inherit !important;\n visibility: visible !important;\n}\n\n.cleanslate .widget-exiting {\n animation-name: slideOutDown !important;\n}\n\n.cleanslate .widget-exited {\n display: none !important;\n visibility: hidden !important;\n}\n\n.cleanslate .widget-helpful {\n display: flex !important;\n align-items: stretch !important;\n height: 48px !important;\n font-size: 16px !important;\n align-items: center !important;\n justify-content: center !important;\n}\n\n.cleanslate .widget-form-wrapper {\n width: 100% !important;\n font-size: 16px !important;\n}\n\n.cleanslate .widget-form {\n display: flex !important;\n align-items: stretch !important;\n max-height: 240px !important;\n font-size: 16px !important;\n align-items: center !important;\n justify-content: center !important;\n flex-direction: column !important;\n}\n\n.cleanslate .widget-form-footer {\n display: flex !important;\n justify-content: flex-end !important;\n}\n\n.cleanslate .widget-form-footer .submit {\n font-style: normal !important;\n font-weight: normal !important;\n}\n\n.cleanslate .widget-form-footer .cancel {\n font-style: normal !important;\n font-weight: normal !important;\n line-height: 18px !important;\n}\n\n.cleanslate .widget-header {\n line-height: 30px !important;\n width: 100% !important;\n height: 100% !important;\n padding-left: 10px !important;\n display: flex !important;\n align-items: stretch !important;\n}\n\n.cleanslate .widget-header-title {\n display: flex !important;\n flex-grow: 1 !important;\n align-items: center !important;\n height: 40px !important;\n padding-left: 10px !important;\n padding-top: 5px !important;\n font-style: normal !important;\n line-height: 18px !important;\n}\n\n.cleanslate .widget-header-icon {\n cursor: pointer !important;\n display: flex !important;\n align-items: center !important;\n justify-content: center !important;\n padding: .75rem !important;\n margin: 6px !important;\n line-height: initial !important;\n}\n\n.cleanslate .widget-body {\n background: white !important;\n padding: 10px !important;\n height: 150px !important;\n}\n\n.cleanslate .widget-footer {\n background: radial-gradient(156.83% 78.7% at 61.88% 86.04%, rgba(23,28,33,0) 0%, #031B36 100%),radial-gradient(44.33% 47.76% at 5.74% 42.2%, rgba(20,153,249,0.8) 32.68%, rgba(15,114,229,0) 100%),radial-gradient(77.84% 153.29% at 83.57% 149.34%, #1499F9 0%, rgba(16,131,231,0.9) 41.91%, rgba(15,114,229,0) 93.71%),#063975 !important;\n line-height: 30px !important;\n padding-left: 10px !important;\n height: 150px !important;\n}\n\n.cleanslate .widget-thankyou {\n display: flex !important;\n justify-content: center !important;\n font-family: Roboto !important;\n font-style: normal !important;\n font-weight: bold !important;\n font-size: 18px !important;\n line-height: 21px !important;\n text-align: center !important;\n color: #FFFFFF !important;\n padding: 20px !important;\n}\n\n.cleanslate .widget-thankyoufooter {\n display: flex !important;\n justify-content: center !important;\n}\n\n.cleanslate .widget textarea {\n resize: none !important;\n border: "1px solid #171C21" !important;\n}', + '', + ]), + (e.exports = t)) + }, + 3645: (e) => { + 'use strict' + e.exports = function (e) { + var t = [] + return ( + (t.toString = function () { + return this.map(function (t) { + var n = (function (e, t) { + var n, + r, + a, + o = e[1] || '', + i = e[3] + if (!i) return o + if (t && 'function' == typeof btoa) { + var s = + ((n = i), + (r = btoa(unescape(encodeURIComponent(JSON.stringify(n))))), + (a = 'sourceMappingURL=data:application/json;charset=utf-8;base64,'.concat(r)), + '/*# '.concat(a, ' */')), + l = i.sources.map(function (e) { + return '/*# sourceURL='.concat(i.sourceRoot || '').concat(e, ' */') + }) + return [o].concat(l).concat([s]).join('\n') + } + return [o].join('\n') + })(t, e) + return t[2] ? '@media '.concat(t[2], ' {').concat(n, '}') : n + }).join('') + }), + (t.i = function (e, n, r) { + 'string' == typeof e && (e = [[null, e, '']]) + var a = {} + if (r) + for (var o = 0; o < this.length; o++) { + var i = this[o][0] + null != i && (a[i] = !0) + } + for (var s = 0; s < e.length; s++) { + var l = [].concat(e[s]) + ;(r && a[l[0]]) || (n && (l[2] ? (l[2] = ''.concat(n, ' and ').concat(l[2])) : (l[2] = n)), t.push(l)) + } + }), + t + ) + } + }, + 6905: function (e) { + e.exports = function (e, t, n, r, a) { + for (t = t.split ? t.split('.') : t, r = 0; r < t.length; r++) e = e ? e[t[r]] : a + return e === a ? n : e + } + }, + 1143: (e) => { + 'use strict' + e.exports = function (e, t, n, r, a, o, i, s) { + if (!e) { + var l + if (void 0 === t) + l = new Error( + 'Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.', + ) + else { + var u = [n, r, a, o, i, s], + c = 0 + ;(l = new Error( + t.replace(/%s/g, function () { + return u[c++] + }), + )).name = 'Invariant Violation' + } + throw ((l.framesToPop = 1), l) + } + } + }, + 9461: (e) => { + 'use strict' + var t = (e.exports = function (e, t, r) { + ;('function' == typeof t && ((r = t), (t = {})), + n(t, 'function' == typeof (r = t.cb || r) ? r : r.pre || function () {}, r.post || function () {}, e, '', e)) + }) + function n(e, r, a, o, i, s, l, u, c, f) { + if (o && 'object' == typeof o && !Array.isArray(o)) { + for (var d in (r(o, i, s, l, u, c, f), o)) { + var p = o[d] + if (Array.isArray(p)) { + if (d in t.arrayKeywords) for (var h = 0; h < p.length; h++) n(e, r, a, p[h], i + '/' + d + '/' + h, s, i, d, o, h) + } else if (d in t.propsKeywords) { + if (p && 'object' == typeof p) + for (var m in p) n(e, r, a, p[m], i + '/' + d + '/' + m.replace(/~/g, '~0').replace(/\//g, '~1'), s, i, d, o, m) + } else (d in t.keywords || (e.allKeys && !(d in t.skipKeywords))) && n(e, r, a, p, i + '/' + d, s, i, d, o) + } + a(o, i, s, l, u, c, f) + } + } + ;((t.keywords = { + additionalItems: !0, + items: !0, + contains: !0, + additionalProperties: !0, + propertyNames: !0, + not: !0, + if: !0, + then: !0, + else: !0, + }), + (t.arrayKeywords = { items: !0, allOf: !0, anyOf: !0, oneOf: !0 }), + (t.propsKeywords = { $defs: !0, definitions: !0, properties: !0, patternProperties: !0, dependencies: !0 }), + (t.skipKeywords = { + default: !0, + enum: !0, + const: !0, + required: !0, + maximum: !0, + minimum: !0, + exclusiveMaximum: !0, + exclusiveMinimum: !0, + multipleOf: !0, + maxLength: !0, + minLength: !0, + pattern: !0, + format: !0, + maxItems: !0, + minItems: !0, + uniqueItems: !0, + maxProperties: !0, + minProperties: !0, + })) + }, + 8552: (e, t, n) => { + var r = n(852)(n(5639), 'DataView') + e.exports = r + }, + 1989: (e, t, n) => { + var r = n(1789), + a = n(401), + o = n(7667), + i = n(1327), + s = n(1866) + function l(e) { + var t = -1, + n = null == e ? 0 : e.length + for (this.clear(); ++t < n; ) { + var r = e[t] + this.set(r[0], r[1]) + } + } + ;((l.prototype.clear = r), (l.prototype.delete = a), (l.prototype.get = o), (l.prototype.has = i), (l.prototype.set = s), (e.exports = l)) + }, + 8407: (e, t, n) => { + var r = n(7040), + a = n(4125), + o = n(2117), + i = n(7518), + s = n(4705) + function l(e) { + var t = -1, + n = null == e ? 0 : e.length + for (this.clear(); ++t < n; ) { + var r = e[t] + this.set(r[0], r[1]) + } + } + ;((l.prototype.clear = r), (l.prototype.delete = a), (l.prototype.get = o), (l.prototype.has = i), (l.prototype.set = s), (e.exports = l)) + }, + 7071: (e, t, n) => { + var r = n(852)(n(5639), 'Map') + e.exports = r + }, + 3369: (e, t, n) => { + var r = n(4785), + a = n(1285), + o = n(6e3), + i = n(9916), + s = n(5265) + function l(e) { + var t = -1, + n = null == e ? 0 : e.length + for (this.clear(); ++t < n; ) { + var r = e[t] + this.set(r[0], r[1]) + } + } + ;((l.prototype.clear = r), (l.prototype.delete = a), (l.prototype.get = o), (l.prototype.has = i), (l.prototype.set = s), (e.exports = l)) + }, + 3818: (e, t, n) => { + var r = n(852)(n(5639), 'Promise') + e.exports = r + }, + 8525: (e, t, n) => { + var r = n(852)(n(5639), 'Set') + e.exports = r + }, + 8668: (e, t, n) => { + var r = n(3369), + a = n(619), + o = n(2385) + function i(e) { + var t = -1, + n = null == e ? 0 : e.length + for (this.__data__ = new r(); ++t < n; ) this.add(e[t]) + } + ;((i.prototype.add = i.prototype.push = a), (i.prototype.has = o), (e.exports = i)) + }, + 6384: (e, t, n) => { + var r = n(8407), + a = n(7465), + o = n(3779), + i = n(7599), + s = n(4758), + l = n(4309) + function u(e) { + var t = (this.__data__ = new r(e)) + this.size = t.size + } + ;((u.prototype.clear = a), (u.prototype.delete = o), (u.prototype.get = i), (u.prototype.has = s), (u.prototype.set = l), (e.exports = u)) + }, + 2705: (e, t, n) => { + var r = n(5639).Symbol + e.exports = r + }, + 1149: (e, t, n) => { + var r = n(5639).Uint8Array + e.exports = r + }, + 577: (e, t, n) => { + var r = n(852)(n(5639), 'WeakMap') + e.exports = r + }, + 6874: (e) => { + e.exports = function (e, t, n) { + switch (n.length) { + case 0: + return e.call(t) + case 1: + return e.call(t, n[0]) + case 2: + return e.call(t, n[0], n[1]) + case 3: + return e.call(t, n[0], n[1], n[2]) + } + return e.apply(t, n) + } + }, + 7412: (e) => { + e.exports = function (e, t) { + for (var n = -1, r = null == e ? 0 : e.length; ++n < r && !1 !== t(e[n], n, e); ); + return e + } + }, + 4963: (e) => { + e.exports = function (e, t) { + for (var n = -1, r = null == e ? 0 : e.length, a = 0, o = []; ++n < r; ) { + var i = e[n] + t(i, n, e) && (o[a++] = i) + } + return o + } + }, + 7443: (e, t, n) => { + var r = n(2118) + e.exports = function (e, t) { + return !(null == e || !e.length) && r(e, t, 0) > -1 + } + }, + 1196: (e) => { + e.exports = function (e, t, n) { + for (var r = -1, a = null == e ? 0 : e.length; ++r < a; ) if (n(t, e[r])) return !0 + return !1 + } + }, + 4636: (e, t, n) => { + var r = n(2545), + a = n(5694), + o = n(1469), + i = n(4144), + s = n(5776), + l = n(6719), + u = Object.prototype.hasOwnProperty + e.exports = function (e, t) { + var n = o(e), + c = !n && a(e), + f = !n && !c && i(e), + d = !n && !c && !f && l(e), + p = n || c || f || d, + h = p ? r(e.length, String) : [], + m = h.length + for (var g in e) + (!t && !u.call(e, g)) || + (p && + ('length' == g || + (f && ('offset' == g || 'parent' == g)) || + (d && ('buffer' == g || 'byteLength' == g || 'byteOffset' == g)) || + s(g, m))) || + h.push(g) + return h + } + }, + 9932: (e) => { + e.exports = function (e, t) { + for (var n = -1, r = null == e ? 0 : e.length, a = Array(r); ++n < r; ) a[n] = t(e[n], n, e) + return a + } + }, + 2488: (e) => { + e.exports = function (e, t) { + for (var n = -1, r = t.length, a = e.length; ++n < r; ) e[a + n] = t[n] + return e + } + }, + 2663: (e) => { + e.exports = function (e, t, n, r) { + var a = -1, + o = null == e ? 0 : e.length + for (r && o && (n = e[++a]); ++a < o; ) n = t(n, e[a], a, e) + return n + } + }, + 2908: (e) => { + e.exports = function (e, t) { + for (var n = -1, r = null == e ? 0 : e.length; ++n < r; ) if (t(e[n], n, e)) return !0 + return !1 + } + }, + 4286: (e) => { + e.exports = function (e) { + return e.split('') + } + }, + 9029: (e) => { + var t = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g + e.exports = function (e) { + return e.match(t) || [] + } + }, + 4865: (e, t, n) => { + var r = n(9465), + a = n(7813), + o = Object.prototype.hasOwnProperty + e.exports = function (e, t, n) { + var i = e[t] + ;(o.call(e, t) && a(i, n) && (void 0 !== n || t in e)) || r(e, t, n) + } + }, + 8470: (e, t, n) => { + var r = n(7813) + e.exports = function (e, t) { + for (var n = e.length; n--; ) if (r(e[n][0], t)) return n + return -1 + } + }, + 4037: (e, t, n) => { + var r = n(8363), + a = n(3674) + e.exports = function (e, t) { + return e && r(t, a(t), e) + } + }, + 3886: (e, t, n) => { + var r = n(8363), + a = n(1704) + e.exports = function (e, t) { + return e && r(t, a(t), e) + } + }, + 9465: (e, t, n) => { + var r = n(8777) + e.exports = function (e, t, n) { + '__proto__' == t && r ? r(e, t, { configurable: !0, enumerable: !0, value: n, writable: !0 }) : (e[t] = n) + } + }, + 5990: (e, t, n) => { + var r = n(6384), + a = n(7412), + o = n(4865), + i = n(4037), + s = n(3886), + l = n(4626), + u = n(278), + c = n(8805), + f = n(1911), + d = n(8234), + p = n(6904), + h = n(4160), + m = n(3824), + g = n(9148), + v = n(8517), + y = n(1469), + b = n(4144), + w = n(6688), + _ = n(3218), + x = n(2928), + E = n(3674), + k = n(1704), + S = '[object Arguments]', + $ = '[object Function]', + P = '[object Object]', + O = {} + ;((O[S] = + O['[object Array]'] = + O['[object ArrayBuffer]'] = + O['[object DataView]'] = + O['[object Boolean]'] = + O['[object Date]'] = + O['[object Float32Array]'] = + O['[object Float64Array]'] = + O['[object Int8Array]'] = + O['[object Int16Array]'] = + O['[object Int32Array]'] = + O['[object Map]'] = + O['[object Number]'] = + O[P] = + O['[object RegExp]'] = + O['[object Set]'] = + O['[object String]'] = + O['[object Symbol]'] = + O['[object Uint8Array]'] = + O['[object Uint8ClampedArray]'] = + O['[object Uint16Array]'] = + O['[object Uint32Array]'] = + !0), + (O['[object Error]'] = O[$] = O['[object WeakMap]'] = !1), + (e.exports = function e(t, n, C, j, N, I) { + var T, + A = 1 & n, + R = 2 & n, + D = 4 & n + if ((C && (T = N ? C(t, j, N, I) : C(t)), void 0 !== T)) return T + if (!_(t)) return t + var M = y(t) + if (M) { + if (((T = m(t)), !A)) return u(t, T) + } else { + var F = h(t), + z = F == $ || '[object GeneratorFunction]' == F + if (b(t)) return l(t, A) + if (F == P || F == S || (z && !N)) { + if (((T = R || z ? {} : v(t)), !A)) return R ? f(t, s(T, t)) : c(t, i(T, t)) + } else { + if (!O[F]) return N ? t : {} + T = g(t, F, A) + } + } + I || (I = new r()) + var L = I.get(t) + if (L) return L + ;(I.set(t, T), + x(t) + ? t.forEach(function (r) { + T.add(e(r, n, C, r, t, I)) + }) + : w(t) && + t.forEach(function (r, a) { + T.set(a, e(r, n, C, a, t, I)) + })) + var V = M ? void 0 : (D ? (R ? p : d) : R ? k : E)(t) + return ( + a(V || t, function (r, a) { + ;(V && (r = t[(a = r)]), o(T, a, e(r, n, C, a, t, I))) + }), + T + ) + })) + }, + 3118: (e, t, n) => { + var r = n(3218), + a = Object.create, + o = (function () { + function e() {} + return function (t) { + if (!r(t)) return {} + if (a) return a(t) + e.prototype = t + var n = new e() + return ((e.prototype = void 0), n) + } + })() + e.exports = o + }, + 731: (e, t, n) => { + var r = n(8668), + a = n(7443), + o = n(1196), + i = n(9932), + s = n(1717), + l = n(4757) + e.exports = function (e, t, n, u) { + var c = -1, + f = a, + d = !0, + p = e.length, + h = [], + m = t.length + if (!p) return h + ;(n && (t = i(t, s(n))), u ? ((f = o), (d = !1)) : t.length >= 200 && ((f = l), (d = !1), (t = new r(t)))) + e: for (; ++c < p; ) { + var g = e[c], + v = null == n ? g : n(g) + if (((g = u || 0 !== g ? g : 0), d && v == v)) { + for (var y = m; y--; ) if (t[y] === v) continue e + h.push(g) + } else f(t, v, u) || h.push(g) + } + return h + } + }, + 1848: (e) => { + e.exports = function (e, t, n, r) { + for (var a = e.length, o = n + (r ? 1 : -1); r ? o-- : ++o < a; ) if (t(e[o], o, e)) return o + return -1 + } + }, + 1078: (e, t, n) => { + var r = n(2488), + a = n(7285) + e.exports = function e(t, n, o, i, s) { + var l = -1, + u = t.length + for (o || (o = a), s || (s = []); ++l < u; ) { + var c = t[l] + n > 0 && o(c) ? (n > 1 ? e(c, n - 1, o, i, s) : r(s, c)) : i || (s[s.length] = c) + } + return s + } + }, + 8483: (e, t, n) => { + var r = n(5063)() + e.exports = r + }, + 7816: (e, t, n) => { + var r = n(8483), + a = n(3674) + e.exports = function (e, t) { + return e && r(e, t, a) + } + }, + 7786: (e, t, n) => { + var r = n(1811), + a = n(327) + e.exports = function (e, t) { + for (var n = 0, o = (t = r(t, e)).length; null != e && n < o; ) e = e[a(t[n++])] + return n && n == o ? e : void 0 + } + }, + 8866: (e, t, n) => { + var r = n(2488), + a = n(1469) + e.exports = function (e, t, n) { + var o = t(e) + return a(e) ? o : r(o, n(e)) + } + }, + 4239: (e, t, n) => { + var r = n(2705), + a = n(9607), + o = n(2333), + i = r ? r.toStringTag : void 0 + e.exports = function (e) { + return null == e ? (void 0 === e ? '[object Undefined]' : '[object Null]') : i && i in Object(e) ? a(e) : o(e) + } + }, + 13: (e) => { + e.exports = function (e, t) { + return null != e && t in Object(e) + } + }, + 2118: (e, t, n) => { + var r = n(1848), + a = n(2722), + o = n(2351) + e.exports = function (e, t, n) { + return t == t ? o(e, t, n) : r(e, a, n) + } + }, + 9454: (e, t, n) => { + var r = n(4239), + a = n(7005) + e.exports = function (e) { + return a(e) && '[object Arguments]' == r(e) + } + }, + 939: (e, t, n) => { + var r = n(2492), + a = n(7005) + e.exports = function e(t, n, o, i, s) { + return t === n || (null == t || null == n || (!a(t) && !a(n)) ? t != t && n != n : r(t, n, o, i, e, s)) + } + }, + 2492: (e, t, n) => { + var r = n(6384), + a = n(7114), + o = n(8351), + i = n(6096), + s = n(4160), + l = n(1469), + u = n(4144), + c = n(6719), + f = '[object Arguments]', + d = '[object Array]', + p = '[object Object]', + h = Object.prototype.hasOwnProperty + e.exports = function (e, t, n, m, g, v) { + var y = l(e), + b = l(t), + w = y ? d : s(e), + _ = b ? d : s(t), + x = (w = w == f ? p : w) == p, + E = (_ = _ == f ? p : _) == p, + k = w == _ + if (k && u(e)) { + if (!u(t)) return !1 + ;((y = !0), (x = !1)) + } + if (k && !x) return (v || (v = new r()), y || c(e) ? a(e, t, n, m, g, v) : o(e, t, w, n, m, g, v)) + if (!(1 & n)) { + var S = x && h.call(e, '__wrapped__'), + $ = E && h.call(t, '__wrapped__') + if (S || $) { + var P = S ? e.value() : e, + O = $ ? t.value() : t + return (v || (v = new r()), g(P, O, n, m, v)) + } + } + return !!k && (v || (v = new r()), i(e, t, n, m, g, v)) + } + }, + 5588: (e, t, n) => { + var r = n(4160), + a = n(7005) + e.exports = function (e) { + return a(e) && '[object Map]' == r(e) + } + }, + 7365: (e, t, n) => { + var r = n(6384), + a = n(939) + e.exports = function (e, t, n, o) { + var i = n.length, + s = i, + l = !o + if (null == e) return !s + for (e = Object(e); i--; ) { + var u = n[i] + if (l && u[2] ? u[1] !== e[u[0]] : !(u[0] in e)) return !1 + } + for (; ++i < s; ) { + var c = (u = n[i])[0], + f = e[c], + d = u[1] + if (l && u[2]) { + if (void 0 === f && !(c in e)) return !1 + } else { + var p = new r() + if (o) var h = o(f, d, c, e, t, p) + if (!(void 0 === h ? a(d, f, 3, o, p) : h)) return !1 + } + } + return !0 + } + }, + 2722: (e) => { + e.exports = function (e) { + return e != e + } + }, + 8458: (e, t, n) => { + var r = n(3560), + a = n(5346), + o = n(3218), + i = n(346), + s = /^\[object .+?Constructor\]$/, + l = Function.prototype, + u = Object.prototype, + c = l.toString, + f = u.hasOwnProperty, + d = RegExp( + '^' + + c + .call(f) + .replace(/[\\^$.*+?()[\]{}|]/g, '\\$&') + .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + + '$', + ) + e.exports = function (e) { + return !(!o(e) || a(e)) && (r(e) ? d : s).test(i(e)) + } + }, + 9221: (e, t, n) => { + var r = n(4160), + a = n(7005) + e.exports = function (e) { + return a(e) && '[object Set]' == r(e) + } + }, + 8749: (e, t, n) => { + var r = n(4239), + a = n(1780), + o = n(7005), + i = {} + ;((i['[object Float32Array]'] = + i['[object Float64Array]'] = + i['[object Int8Array]'] = + i['[object Int16Array]'] = + i['[object Int32Array]'] = + i['[object Uint8Array]'] = + i['[object Uint8ClampedArray]'] = + i['[object Uint16Array]'] = + i['[object Uint32Array]'] = + !0), + (i['[object Arguments]'] = + i['[object Array]'] = + i['[object ArrayBuffer]'] = + i['[object Boolean]'] = + i['[object DataView]'] = + i['[object Date]'] = + i['[object Error]'] = + i['[object Function]'] = + i['[object Map]'] = + i['[object Number]'] = + i['[object Object]'] = + i['[object RegExp]'] = + i['[object Set]'] = + i['[object String]'] = + i['[object WeakMap]'] = + !1), + (e.exports = function (e) { + return o(e) && a(e.length) && !!i[r(e)] + })) + }, + 7206: (e, t, n) => { + var r = n(1573), + a = n(6432), + o = n(6557), + i = n(1469), + s = n(9601) + e.exports = function (e) { + return 'function' == typeof e ? e : null == e ? o : 'object' == typeof e ? (i(e) ? a(e[0], e[1]) : r(e)) : s(e) + } + }, + 280: (e, t, n) => { + var r = n(5726), + a = n(6916), + o = Object.prototype.hasOwnProperty + e.exports = function (e) { + if (!r(e)) return a(e) + var t = [] + for (var n in Object(e)) o.call(e, n) && 'constructor' != n && t.push(n) + return t + } + }, + 313: (e, t, n) => { + var r = n(3218), + a = n(5726), + o = n(3498), + i = Object.prototype.hasOwnProperty + e.exports = function (e) { + if (!r(e)) return o(e) + var t = a(e), + n = [] + for (var s in e) ('constructor' != s || (!t && i.call(e, s))) && n.push(s) + return n + } + }, + 1573: (e, t, n) => { + var r = n(7365), + a = n(1499), + o = n(2634) + e.exports = function (e) { + var t = a(e) + return 1 == t.length && t[0][2] + ? o(t[0][0], t[0][1]) + : function (n) { + return n === e || r(n, e, t) + } + } + }, + 6432: (e, t, n) => { + var r = n(939), + a = n(7361), + o = n(9095), + i = n(5403), + s = n(9162), + l = n(2634), + u = n(327) + e.exports = function (e, t) { + return i(e) && s(t) + ? l(u(e), t) + : function (n) { + var i = a(n, e) + return void 0 === i && i === t ? o(n, e) : r(t, i, 3) + } + } + }, + 371: (e) => { + e.exports = function (e) { + return function (t) { + return null == t ? void 0 : t[e] + } + } + }, + 9152: (e, t, n) => { + var r = n(7786) + e.exports = function (e) { + return function (t) { + return r(t, e) + } + } + }, + 8674: (e) => { + e.exports = function (e) { + return function (t) { + return null == e ? void 0 : e[t] + } + } + }, + 5976: (e, t, n) => { + var r = n(6557), + a = n(5357), + o = n(61) + e.exports = function (e, t) { + return o(a(e, t, r), e + '') + } + }, + 611: (e, t, n) => { + var r = n(4865), + a = n(1811), + o = n(5776), + i = n(3218), + s = n(327) + e.exports = function (e, t, n, l) { + if (!i(e)) return e + for (var u = -1, c = (t = a(t, e)).length, f = c - 1, d = e; null != d && ++u < c; ) { + var p = s(t[u]), + h = n + if ('__proto__' === p || 'constructor' === p || 'prototype' === p) return e + if (u != f) { + var m = d[p] + void 0 === (h = l ? l(m, p, d) : void 0) && (h = i(m) ? m : o(t[u + 1]) ? [] : {}) + } + ;(r(d, p, h), (d = d[p])) + } + return e + } + }, + 6560: (e, t, n) => { + var r = n(5703), + a = n(8777), + o = n(6557), + i = a + ? function (e, t) { + return a(e, 'toString', { configurable: !0, enumerable: !1, value: r(t), writable: !0 }) + } + : o + e.exports = i + }, + 4259: (e) => { + e.exports = function (e, t, n) { + var r = -1, + a = e.length + ;(t < 0 && (t = -t > a ? 0 : a + t), (n = n > a ? a : n) < 0 && (n += a), (a = t > n ? 0 : (n - t) >>> 0), (t >>>= 0)) + for (var o = Array(a); ++r < a; ) o[r] = e[r + t] + return o + } + }, + 2545: (e) => { + e.exports = function (e, t) { + for (var n = -1, r = Array(e); ++n < e; ) r[n] = t(n) + return r + } + }, + 531: (e, t, n) => { + var r = n(2705), + a = n(9932), + o = n(1469), + i = n(3448), + s = r ? r.prototype : void 0, + l = s ? s.toString : void 0 + e.exports = function e(t) { + if ('string' == typeof t) return t + if (o(t)) return a(t, e) + '' + if (i(t)) return l ? l.call(t) : '' + var n = t + '' + return '0' == n && 1 / t == -1 / 0 ? '-0' : n + } + }, + 1717: (e) => { + e.exports = function (e) { + return function (t) { + return e(t) + } + } + }, + 5652: (e, t, n) => { + var r = n(8668), + a = n(7443), + o = n(1196), + i = n(4757), + s = n(3593), + l = n(1814) + e.exports = function (e, t, n) { + var u = -1, + c = a, + f = e.length, + d = !0, + p = [], + h = p + if (n) ((d = !1), (c = o)) + else if (f >= 200) { + var m = t ? null : s(e) + if (m) return l(m) + ;((d = !1), (c = i), (h = new r())) + } else h = t ? [] : p + e: for (; ++u < f; ) { + var g = e[u], + v = t ? t(g) : g + if (((g = n || 0 !== g ? g : 0), d && v == v)) { + for (var y = h.length; y--; ) if (h[y] === v) continue e + ;(t && h.push(v), p.push(g)) + } else c(h, v, n) || (h !== p && h.push(v), p.push(g)) + } + return p + } + }, + 7406: (e, t, n) => { + var r = n(1811), + a = n(928), + o = n(292), + i = n(327) + e.exports = function (e, t) { + return ((t = r(t, e)), null == (e = o(e, t)) || delete e[i(a(t))]) + } + }, + 6128: (e, t, n) => { + var r = n(731), + a = n(1078), + o = n(5652) + e.exports = function (e, t, n) { + var i = e.length + if (i < 2) return i ? o(e[0]) : [] + for (var s = -1, l = Array(i); ++s < i; ) for (var u = e[s], c = -1; ++c < i; ) c != s && (l[s] = r(l[s] || u, e[c], t, n)) + return o(a(l, 1), t, n) + } + }, + 4757: (e) => { + e.exports = function (e, t) { + return e.has(t) + } + }, + 1811: (e, t, n) => { + var r = n(1469), + a = n(5403), + o = n(5514), + i = n(9833) + e.exports = function (e, t) { + return r(e) ? e : a(e, t) ? [e] : o(i(e)) + } + }, + 180: (e, t, n) => { + var r = n(4259) + e.exports = function (e, t, n) { + var a = e.length + return ((n = void 0 === n ? a : n), !t && n >= a ? e : r(e, t, n)) + } + }, + 4318: (e, t, n) => { + var r = n(1149) + e.exports = function (e) { + var t = new e.constructor(e.byteLength) + return (new r(t).set(new r(e)), t) + } + }, + 4626: (e, t, n) => { + e = n.nmd(e) + var r = n(5639), + a = t && !t.nodeType && t, + o = a && e && !e.nodeType && e, + i = o && o.exports === a ? r.Buffer : void 0, + s = i ? i.allocUnsafe : void 0 + e.exports = function (e, t) { + if (t) return e.slice() + var n = e.length, + r = s ? s(n) : new e.constructor(n) + return (e.copy(r), r) + } + }, + 7157: (e, t, n) => { + var r = n(4318) + e.exports = function (e, t) { + var n = t ? r(e.buffer) : e.buffer + return new e.constructor(n, e.byteOffset, e.byteLength) + } + }, + 3147: (e) => { + var t = /\w*$/ + e.exports = function (e) { + var n = new e.constructor(e.source, t.exec(e)) + return ((n.lastIndex = e.lastIndex), n) + } + }, + 419: (e, t, n) => { + var r = n(2705), + a = r ? r.prototype : void 0, + o = a ? a.valueOf : void 0 + e.exports = function (e) { + return o ? Object(o.call(e)) : {} + } + }, + 7133: (e, t, n) => { + var r = n(4318) + e.exports = function (e, t) { + var n = t ? r(e.buffer) : e.buffer + return new e.constructor(n, e.byteOffset, e.length) + } + }, + 278: (e) => { + e.exports = function (e, t) { + var n = -1, + r = e.length + for (t || (t = Array(r)); ++n < r; ) t[n] = e[n] + return t + } + }, + 8363: (e, t, n) => { + var r = n(4865), + a = n(9465) + e.exports = function (e, t, n, o) { + var i = !n + n || (n = {}) + for (var s = -1, l = t.length; ++s < l; ) { + var u = t[s], + c = o ? o(n[u], e[u], u, n, e) : void 0 + ;(void 0 === c && (c = e[u]), i ? a(n, u, c) : r(n, u, c)) + } + return n + } + }, + 8805: (e, t, n) => { + var r = n(8363), + a = n(9551) + e.exports = function (e, t) { + return r(e, a(e), t) + } + }, + 1911: (e, t, n) => { + var r = n(8363), + a = n(1442) + e.exports = function (e, t) { + return r(e, a(e), t) + } + }, + 4429: (e, t, n) => { + var r = n(5639)['__core-js_shared__'] + e.exports = r + }, + 5063: (e) => { + e.exports = function (e) { + return function (t, n, r) { + for (var a = -1, o = Object(t), i = r(t), s = i.length; s--; ) { + var l = i[e ? s : ++a] + if (!1 === n(o[l], l, o)) break + } + return t + } + } + }, + 8882: (e, t, n) => { + var r = n(180), + a = n(2689), + o = n(3140), + i = n(9833) + e.exports = function (e) { + return function (t) { + t = i(t) + var n = a(t) ? o(t) : void 0, + s = n ? n[0] : t.charAt(0), + l = n ? r(n, 1).join('') : t.slice(1) + return s[e]() + l + } + } + }, + 5393: (e, t, n) => { + var r = n(2663), + a = n(3816), + o = n(8748), + i = RegExp("['’]", 'g') + e.exports = function (e) { + return function (t) { + return r(o(a(t).replace(i, '')), e, '') + } + } + }, + 3593: (e, t, n) => { + var r = n(8525), + a = n(308), + o = n(1814), + i = + r && 1 / o(new r([, -0]))[1] == 1 / 0 + ? function (e) { + return new r(e) + } + : a + e.exports = i + }, + 696: (e, t, n) => { + var r = n(8630) + e.exports = function (e) { + return r(e) ? void 0 : e + } + }, + 9389: (e, t, n) => { + var r = n(8674)({ + À: 'A', + Á: 'A', + Â: 'A', + Ã: 'A', + Ä: 'A', + Å: 'A', + à: 'a', + á: 'a', + â: 'a', + ã: 'a', + ä: 'a', + å: 'a', + Ç: 'C', + ç: 'c', + Ð: 'D', + ð: 'd', + È: 'E', + É: 'E', + Ê: 'E', + Ë: 'E', + è: 'e', + é: 'e', + ê: 'e', + ë: 'e', + Ì: 'I', + Í: 'I', + Î: 'I', + Ï: 'I', + ì: 'i', + í: 'i', + î: 'i', + ï: 'i', + Ñ: 'N', + ñ: 'n', + Ò: 'O', + Ó: 'O', + Ô: 'O', + Õ: 'O', + Ö: 'O', + Ø: 'O', + ò: 'o', + ó: 'o', + ô: 'o', + õ: 'o', + ö: 'o', + ø: 'o', + Ù: 'U', + Ú: 'U', + Û: 'U', + Ü: 'U', + ù: 'u', + ú: 'u', + û: 'u', + ü: 'u', + Ý: 'Y', + ý: 'y', + ÿ: 'y', + Æ: 'Ae', + æ: 'ae', + Þ: 'Th', + þ: 'th', + ß: 'ss', + Ā: 'A', + Ă: 'A', + Ą: 'A', + ā: 'a', + ă: 'a', + ą: 'a', + Ć: 'C', + Ĉ: 'C', + Ċ: 'C', + Č: 'C', + ć: 'c', + ĉ: 'c', + ċ: 'c', + č: 'c', + Ď: 'D', + Đ: 'D', + ď: 'd', + đ: 'd', + Ē: 'E', + Ĕ: 'E', + Ė: 'E', + Ę: 'E', + Ě: 'E', + ē: 'e', + ĕ: 'e', + ė: 'e', + ę: 'e', + ě: 'e', + Ĝ: 'G', + Ğ: 'G', + Ġ: 'G', + Ģ: 'G', + ĝ: 'g', + ğ: 'g', + ġ: 'g', + ģ: 'g', + Ĥ: 'H', + Ħ: 'H', + ĥ: 'h', + ħ: 'h', + Ĩ: 'I', + Ī: 'I', + Ĭ: 'I', + Į: 'I', + İ: 'I', + ĩ: 'i', + ī: 'i', + ĭ: 'i', + į: 'i', + ı: 'i', + Ĵ: 'J', + ĵ: 'j', + Ķ: 'K', + ķ: 'k', + ĸ: 'k', + Ĺ: 'L', + Ļ: 'L', + Ľ: 'L', + Ŀ: 'L', + Ł: 'L', + ĺ: 'l', + ļ: 'l', + ľ: 'l', + ŀ: 'l', + ł: 'l', + Ń: 'N', + Ņ: 'N', + Ň: 'N', + Ŋ: 'N', + ń: 'n', + ņ: 'n', + ň: 'n', + ŋ: 'n', + Ō: 'O', + Ŏ: 'O', + Ő: 'O', + ō: 'o', + ŏ: 'o', + ő: 'o', + Ŕ: 'R', + Ŗ: 'R', + Ř: 'R', + ŕ: 'r', + ŗ: 'r', + ř: 'r', + Ś: 'S', + Ŝ: 'S', + Ş: 'S', + Š: 'S', + ś: 's', + ŝ: 's', + ş: 's', + š: 's', + Ţ: 'T', + Ť: 'T', + Ŧ: 'T', + ţ: 't', + ť: 't', + ŧ: 't', + Ũ: 'U', + Ū: 'U', + Ŭ: 'U', + Ů: 'U', + Ű: 'U', + Ų: 'U', + ũ: 'u', + ū: 'u', + ŭ: 'u', + ů: 'u', + ű: 'u', + ų: 'u', + Ŵ: 'W', + ŵ: 'w', + Ŷ: 'Y', + ŷ: 'y', + Ÿ: 'Y', + Ź: 'Z', + Ż: 'Z', + Ž: 'Z', + ź: 'z', + ż: 'z', + ž: 'z', + IJ: 'IJ', + ij: 'ij', + Œ: 'Oe', + œ: 'oe', + ʼn: "'n", + ſ: 's', + }) + e.exports = r + }, + 8777: (e, t, n) => { + var r = n(852), + a = (function () { + try { + var e = r(Object, 'defineProperty') + return (e({}, '', {}), e) + } catch (e) {} + })() + e.exports = a + }, + 7114: (e, t, n) => { + var r = n(8668), + a = n(2908), + o = n(4757) + e.exports = function (e, t, n, i, s, l) { + var u = 1 & n, + c = e.length, + f = t.length + if (c != f && !(u && f > c)) return !1 + var d = l.get(e), + p = l.get(t) + if (d && p) return d == t && p == e + var h = -1, + m = !0, + g = 2 & n ? new r() : void 0 + for (l.set(e, t), l.set(t, e); ++h < c; ) { + var v = e[h], + y = t[h] + if (i) var b = u ? i(y, v, h, t, e, l) : i(v, y, h, e, t, l) + if (void 0 !== b) { + if (b) continue + m = !1 + break + } + if (g) { + if ( + !a(t, function (e, t) { + if (!o(g, t) && (v === e || s(v, e, n, i, l))) return g.push(t) + }) + ) { + m = !1 + break + } + } else if (v !== y && !s(v, y, n, i, l)) { + m = !1 + break + } + } + return (l.delete(e), l.delete(t), m) + } + }, + 8351: (e, t, n) => { + var r = n(2705), + a = n(1149), + o = n(7813), + i = n(7114), + s = n(8776), + l = n(1814), + u = r ? r.prototype : void 0, + c = u ? u.valueOf : void 0 + e.exports = function (e, t, n, r, u, f, d) { + switch (n) { + case '[object DataView]': + if (e.byteLength != t.byteLength || e.byteOffset != t.byteOffset) return !1 + ;((e = e.buffer), (t = t.buffer)) + case '[object ArrayBuffer]': + return !(e.byteLength != t.byteLength || !f(new a(e), new a(t))) + case '[object Boolean]': + case '[object Date]': + case '[object Number]': + return o(+e, +t) + case '[object Error]': + return e.name == t.name && e.message == t.message + case '[object RegExp]': + case '[object String]': + return e == t + '' + case '[object Map]': + var p = s + case '[object Set]': + var h = 1 & r + if ((p || (p = l), e.size != t.size && !h)) return !1 + var m = d.get(e) + if (m) return m == t + ;((r |= 2), d.set(e, t)) + var g = i(p(e), p(t), r, u, f, d) + return (d.delete(e), g) + case '[object Symbol]': + if (c) return c.call(e) == c.call(t) + } + return !1 + } + }, + 6096: (e, t, n) => { + var r = n(8234), + a = Object.prototype.hasOwnProperty + e.exports = function (e, t, n, o, i, s) { + var l = 1 & n, + u = r(e), + c = u.length + if (c != r(t).length && !l) return !1 + for (var f = c; f--; ) { + var d = u[f] + if (!(l ? d in t : a.call(t, d))) return !1 + } + var p = s.get(e), + h = s.get(t) + if (p && h) return p == t && h == e + var m = !0 + ;(s.set(e, t), s.set(t, e)) + for (var g = l; ++f < c; ) { + var v = e[(d = u[f])], + y = t[d] + if (o) var b = l ? o(y, v, d, t, e, s) : o(v, y, d, e, t, s) + if (!(void 0 === b ? v === y || i(v, y, n, o, s) : b)) { + m = !1 + break + } + g || (g = 'constructor' == d) + } + if (m && !g) { + var w = e.constructor, + _ = t.constructor + w == _ || + !('constructor' in e) || + !('constructor' in t) || + ('function' == typeof w && w instanceof w && 'function' == typeof _ && _ instanceof _) || + (m = !1) + } + return (s.delete(e), s.delete(t), m) + } + }, + 9021: (e, t, n) => { + var r = n(5564), + a = n(5357), + o = n(61) + e.exports = function (e) { + return o(a(e, void 0, r), e + '') + } + }, + 1957: (e, t, n) => { + var r = 'object' == typeof n.g && n.g && n.g.Object === Object && n.g + e.exports = r + }, + 8234: (e, t, n) => { + var r = n(8866), + a = n(9551), + o = n(3674) + e.exports = function (e) { + return r(e, o, a) + } + }, + 6904: (e, t, n) => { + var r = n(8866), + a = n(1442), + o = n(1704) + e.exports = function (e) { + return r(e, o, a) + } + }, + 5050: (e, t, n) => { + var r = n(7019) + e.exports = function (e, t) { + var n = e.__data__ + return r(t) ? n['string' == typeof t ? 'string' : 'hash'] : n.map + } + }, + 1499: (e, t, n) => { + var r = n(9162), + a = n(3674) + e.exports = function (e) { + for (var t = a(e), n = t.length; n--; ) { + var o = t[n], + i = e[o] + t[n] = [o, i, r(i)] + } + return t + } + }, + 852: (e, t, n) => { + var r = n(8458), + a = n(7801) + e.exports = function (e, t) { + var n = a(e, t) + return r(n) ? n : void 0 + } + }, + 5924: (e, t, n) => { + var r = n(5569)(Object.getPrototypeOf, Object) + e.exports = r + }, + 9607: (e, t, n) => { + var r = n(2705), + a = Object.prototype, + o = a.hasOwnProperty, + i = a.toString, + s = r ? r.toStringTag : void 0 + e.exports = function (e) { + var t = o.call(e, s), + n = e[s] + try { + e[s] = void 0 + var r = !0 + } catch (e) {} + var a = i.call(e) + return (r && (t ? (e[s] = n) : delete e[s]), a) + } + }, + 9551: (e, t, n) => { + var r = n(4963), + a = n(479), + o = Object.prototype.propertyIsEnumerable, + i = Object.getOwnPropertySymbols, + s = i + ? function (e) { + return null == e + ? [] + : ((e = Object(e)), + r(i(e), function (t) { + return o.call(e, t) + })) + } + : a + e.exports = s + }, + 1442: (e, t, n) => { + var r = n(2488), + a = n(5924), + o = n(9551), + i = n(479), + s = Object.getOwnPropertySymbols + ? function (e) { + for (var t = []; e; ) (r(t, o(e)), (e = a(e))) + return t + } + : i + e.exports = s + }, + 4160: (e, t, n) => { + var r = n(8552), + a = n(7071), + o = n(3818), + i = n(8525), + s = n(577), + l = n(4239), + u = n(346), + c = '[object Map]', + f = '[object Promise]', + d = '[object Set]', + p = '[object WeakMap]', + h = '[object DataView]', + m = u(r), + g = u(a), + v = u(o), + y = u(i), + b = u(s), + w = l + ;(((r && w(new r(new ArrayBuffer(1))) != h) || + (a && w(new a()) != c) || + (o && w(o.resolve()) != f) || + (i && w(new i()) != d) || + (s && w(new s()) != p)) && + (w = function (e) { + var t = l(e), + n = '[object Object]' == t ? e.constructor : void 0, + r = n ? u(n) : '' + if (r) + switch (r) { + case m: + return h + case g: + return c + case v: + return f + case y: + return d + case b: + return p + } + return t + }), + (e.exports = w)) + }, + 7801: (e) => { + e.exports = function (e, t) { + return null == e ? void 0 : e[t] + } + }, + 222: (e, t, n) => { + var r = n(1811), + a = n(5694), + o = n(1469), + i = n(5776), + s = n(1780), + l = n(327) + e.exports = function (e, t, n) { + for (var u = -1, c = (t = r(t, e)).length, f = !1; ++u < c; ) { + var d = l(t[u]) + if (!(f = null != e && n(e, d))) break + e = e[d] + } + return f || ++u != c ? f : !!(c = null == e ? 0 : e.length) && s(c) && i(d, c) && (o(e) || a(e)) + } + }, + 2689: (e) => { + var t = RegExp('[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]') + e.exports = function (e) { + return t.test(e) + } + }, + 3157: (e) => { + var t = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/ + e.exports = function (e) { + return t.test(e) + } + }, + 1789: (e, t, n) => { + var r = n(4536) + e.exports = function () { + ;((this.__data__ = r ? r(null) : {}), (this.size = 0)) + } + }, + 401: (e) => { + e.exports = function (e) { + var t = this.has(e) && delete this.__data__[e] + return ((this.size -= t ? 1 : 0), t) + } + }, + 7667: (e, t, n) => { + var r = n(4536), + a = Object.prototype.hasOwnProperty + e.exports = function (e) { + var t = this.__data__ + if (r) { + var n = t[e] + return '__lodash_hash_undefined__' === n ? void 0 : n + } + return a.call(t, e) ? t[e] : void 0 + } + }, + 1327: (e, t, n) => { + var r = n(4536), + a = Object.prototype.hasOwnProperty + e.exports = function (e) { + var t = this.__data__ + return r ? void 0 !== t[e] : a.call(t, e) + } + }, + 1866: (e, t, n) => { + var r = n(4536) + e.exports = function (e, t) { + var n = this.__data__ + return ((this.size += this.has(e) ? 0 : 1), (n[e] = r && void 0 === t ? '__lodash_hash_undefined__' : t), this) + } + }, + 3824: (e) => { + var t = Object.prototype.hasOwnProperty + e.exports = function (e) { + var n = e.length, + r = new e.constructor(n) + return (n && 'string' == typeof e[0] && t.call(e, 'index') && ((r.index = e.index), (r.input = e.input)), r) + } + }, + 9148: (e, t, n) => { + var r = n(4318), + a = n(7157), + o = n(3147), + i = n(419), + s = n(7133) + e.exports = function (e, t, n) { + var l = e.constructor + switch (t) { + case '[object ArrayBuffer]': + return r(e) + case '[object Boolean]': + case '[object Date]': + return new l(+e) + case '[object DataView]': + return a(e, n) + case '[object Float32Array]': + case '[object Float64Array]': + case '[object Int8Array]': + case '[object Int16Array]': + case '[object Int32Array]': + case '[object Uint8Array]': + case '[object Uint8ClampedArray]': + case '[object Uint16Array]': + case '[object Uint32Array]': + return s(e, n) + case '[object Map]': + case '[object Set]': + return new l() + case '[object Number]': + case '[object String]': + return new l(e) + case '[object RegExp]': + return o(e) + case '[object Symbol]': + return i(e) + } + } + }, + 8517: (e, t, n) => { + var r = n(3118), + a = n(5924), + o = n(5726) + e.exports = function (e) { + return 'function' != typeof e.constructor || o(e) ? {} : r(a(e)) + } + }, + 7285: (e, t, n) => { + var r = n(2705), + a = n(5694), + o = n(1469), + i = r ? r.isConcatSpreadable : void 0 + e.exports = function (e) { + return o(e) || a(e) || !!(i && e && e[i]) + } + }, + 5776: (e) => { + var t = /^(?:0|[1-9]\d*)$/ + e.exports = function (e, n) { + var r = typeof e + return !!(n = null == n ? 9007199254740991 : n) && ('number' == r || ('symbol' != r && t.test(e))) && e > -1 && e % 1 == 0 && e < n + } + }, + 5403: (e, t, n) => { + var r = n(1469), + a = n(3448), + o = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, + i = /^\w*$/ + e.exports = function (e, t) { + if (r(e)) return !1 + var n = typeof e + return !('number' != n && 'symbol' != n && 'boolean' != n && null != e && !a(e)) || i.test(e) || !o.test(e) || (null != t && e in Object(t)) + } + }, + 7019: (e) => { + e.exports = function (e) { + var t = typeof e + return 'string' == t || 'number' == t || 'symbol' == t || 'boolean' == t ? '__proto__' !== e : null === e + } + }, + 5346: (e, t, n) => { + var r, + a = n(4429), + o = (r = /[^.]+$/.exec((a && a.keys && a.keys.IE_PROTO) || '')) ? 'Symbol(src)_1.' + r : '' + e.exports = function (e) { + return !!o && o in e + } + }, + 5726: (e) => { + var t = Object.prototype + e.exports = function (e) { + var n = e && e.constructor + return e === (('function' == typeof n && n.prototype) || t) + } + }, + 9162: (e, t, n) => { + var r = n(3218) + e.exports = function (e) { + return e == e && !r(e) + } + }, + 7040: (e) => { + e.exports = function () { + ;((this.__data__ = []), (this.size = 0)) + } + }, + 4125: (e, t, n) => { + var r = n(8470), + a = Array.prototype.splice + e.exports = function (e) { + var t = this.__data__, + n = r(t, e) + return !(n < 0 || (n == t.length - 1 ? t.pop() : a.call(t, n, 1), --this.size, 0)) + } + }, + 2117: (e, t, n) => { + var r = n(8470) + e.exports = function (e) { + var t = this.__data__, + n = r(t, e) + return n < 0 ? void 0 : t[n][1] + } + }, + 7518: (e, t, n) => { + var r = n(8470) + e.exports = function (e) { + return r(this.__data__, e) > -1 + } + }, + 4705: (e, t, n) => { + var r = n(8470) + e.exports = function (e, t) { + var n = this.__data__, + a = r(n, e) + return (a < 0 ? (++this.size, n.push([e, t])) : (n[a][1] = t), this) + } + }, + 4785: (e, t, n) => { + var r = n(1989), + a = n(8407), + o = n(7071) + e.exports = function () { + ;((this.size = 0), (this.__data__ = { hash: new r(), map: new (o || a)(), string: new r() })) + } + }, + 1285: (e, t, n) => { + var r = n(5050) + e.exports = function (e) { + var t = r(this, e).delete(e) + return ((this.size -= t ? 1 : 0), t) + } + }, + 6e3: (e, t, n) => { + var r = n(5050) + e.exports = function (e) { + return r(this, e).get(e) + } + }, + 9916: (e, t, n) => { + var r = n(5050) + e.exports = function (e) { + return r(this, e).has(e) + } + }, + 5265: (e, t, n) => { + var r = n(5050) + e.exports = function (e, t) { + var n = r(this, e), + a = n.size + return (n.set(e, t), (this.size += n.size == a ? 0 : 1), this) + } + }, + 8776: (e) => { + e.exports = function (e) { + var t = -1, + n = Array(e.size) + return ( + e.forEach(function (e, r) { + n[++t] = [r, e] + }), + n + ) + } + }, + 2634: (e) => { + e.exports = function (e, t) { + return function (n) { + return null != n && n[e] === t && (void 0 !== t || e in Object(n)) + } + } + }, + 4523: (e, t, n) => { + var r = n(8306) + e.exports = function (e) { + var t = r(e, function (e) { + return (500 === n.size && n.clear(), e) + }), + n = t.cache + return t + } + }, + 4536: (e, t, n) => { + var r = n(852)(Object, 'create') + e.exports = r + }, + 6916: (e, t, n) => { + var r = n(5569)(Object.keys, Object) + e.exports = r + }, + 3498: (e) => { + e.exports = function (e) { + var t = [] + if (null != e) for (var n in Object(e)) t.push(n) + return t + } + }, + 1167: (e, t, n) => { + e = n.nmd(e) + var r = n(1957), + a = t && !t.nodeType && t, + o = a && e && !e.nodeType && e, + i = o && o.exports === a && r.process, + s = (function () { + try { + return (o && o.require && o.require('util').types) || (i && i.binding && i.binding('util')) + } catch (e) {} + })() + e.exports = s + }, + 2333: (e) => { + var t = Object.prototype.toString + e.exports = function (e) { + return t.call(e) + } + }, + 5569: (e) => { + e.exports = function (e, t) { + return function (n) { + return e(t(n)) + } + } + }, + 5357: (e, t, n) => { + var r = n(6874), + a = Math.max + e.exports = function (e, t, n) { + return ( + (t = a(void 0 === t ? e.length - 1 : t, 0)), + function () { + for (var o = arguments, i = -1, s = a(o.length - t, 0), l = Array(s); ++i < s; ) l[i] = o[t + i] + i = -1 + for (var u = Array(t + 1); ++i < t; ) u[i] = o[i] + return ((u[t] = n(l)), r(e, this, u)) + } + ) + } + }, + 292: (e, t, n) => { + var r = n(7786), + a = n(4259) + e.exports = function (e, t) { + return t.length < 2 ? e : r(e, a(t, 0, -1)) + } + }, + 5639: (e, t, n) => { + var r = n(1957), + a = 'object' == typeof self && self && self.Object === Object && self, + o = r || a || Function('return this')() + e.exports = o + }, + 619: (e) => { + e.exports = function (e) { + return (this.__data__.set(e, '__lodash_hash_undefined__'), this) + } + }, + 2385: (e) => { + e.exports = function (e) { + return this.__data__.has(e) + } + }, + 1814: (e) => { + e.exports = function (e) { + var t = -1, + n = Array(e.size) + return ( + e.forEach(function (e) { + n[++t] = e + }), + n + ) + } + }, + 61: (e, t, n) => { + var r = n(6560), + a = n(1275)(r) + e.exports = a + }, + 1275: (e) => { + var t = Date.now + e.exports = function (e) { + var n = 0, + r = 0 + return function () { + var a = t(), + o = 16 - (a - r) + if (((r = a), o > 0)) { + if (++n >= 800) return arguments[0] + } else n = 0 + return e.apply(void 0, arguments) + } + } + }, + 7465: (e, t, n) => { + var r = n(8407) + e.exports = function () { + ;((this.__data__ = new r()), (this.size = 0)) + } + }, + 3779: (e) => { + e.exports = function (e) { + var t = this.__data__, + n = t.delete(e) + return ((this.size = t.size), n) + } + }, + 7599: (e) => { + e.exports = function (e) { + return this.__data__.get(e) + } + }, + 4758: (e) => { + e.exports = function (e) { + return this.__data__.has(e) + } + }, + 4309: (e, t, n) => { + var r = n(8407), + a = n(7071), + o = n(3369) + e.exports = function (e, t) { + var n = this.__data__ + if (n instanceof r) { + var i = n.__data__ + if (!a || i.length < 199) return (i.push([e, t]), (this.size = ++n.size), this) + n = this.__data__ = new o(i) + } + return (n.set(e, t), (this.size = n.size), this) + } + }, + 2351: (e) => { + e.exports = function (e, t, n) { + for (var r = n - 1, a = e.length; ++r < a; ) if (e[r] === t) return r + return -1 + } + }, + 3140: (e, t, n) => { + var r = n(4286), + a = n(2689), + o = n(676) + e.exports = function (e) { + return a(e) ? o(e) : r(e) + } + }, + 5514: (e, t, n) => { + var r = n(4523), + a = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g, + o = /\\(\\)?/g, + i = r(function (e) { + var t = [] + return ( + 46 === e.charCodeAt(0) && t.push(''), + e.replace(a, function (e, n, r, a) { + t.push(r ? a.replace(o, '$1') : n || e) + }), + t + ) + }) + e.exports = i + }, + 327: (e, t, n) => { + var r = n(3448) + e.exports = function (e) { + if ('string' == typeof e || r(e)) return e + var t = e + '' + return '0' == t && 1 / e == -1 / 0 ? '-0' : t + } + }, + 346: (e) => { + var t = Function.prototype.toString + e.exports = function (e) { + if (null != e) { + try { + return t.call(e) + } catch (e) {} + try { + return e + '' + } catch (e) {} + } + return '' + } + }, + 676: (e) => { + var t = '\\ud800-\\udfff', + n = '[' + t + ']', + r = '[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]', + a = '\\ud83c[\\udffb-\\udfff]', + o = '[^' + t + ']', + i = '(?:\\ud83c[\\udde6-\\uddff]){2}', + s = '[\\ud800-\\udbff][\\udc00-\\udfff]', + l = '(?:' + r + '|' + a + ')?', + u = '[\\ufe0e\\ufe0f]?', + c = u + l + '(?:\\u200d(?:' + [o, i, s].join('|') + ')' + u + l + ')*', + f = '(?:' + [o + r + '?', r, i, s, n].join('|') + ')', + d = RegExp(a + '(?=' + a + ')|' + f + c, 'g') + e.exports = function (e) { + return e.match(d) || [] + } + }, + 2757: (e) => { + var t = '\\ud800-\\udfff', + n = '\\u2700-\\u27bf', + r = 'a-z\\xdf-\\xf6\\xf8-\\xff', + a = 'A-Z\\xc0-\\xd6\\xd8-\\xde', + o = + '\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000', + i = '[' + o + ']', + s = '\\d+', + l = '[' + n + ']', + u = '[' + r + ']', + c = '[^' + t + o + s + n + r + a + ']', + f = '(?:\\ud83c[\\udde6-\\uddff]){2}', + d = '[\\ud800-\\udbff][\\udc00-\\udfff]', + p = '[' + a + ']', + h = '(?:' + u + '|' + c + ')', + m = '(?:' + p + '|' + c + ')', + g = "(?:['’](?:d|ll|m|re|s|t|ve))?", + v = "(?:['’](?:D|LL|M|RE|S|T|VE))?", + y = '(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?', + b = '[\\ufe0e\\ufe0f]?', + w = b + y + '(?:\\u200d(?:' + ['[^' + t + ']', f, d].join('|') + ')' + b + y + ')*', + _ = '(?:' + [l, f, d].join('|') + ')' + w, + x = RegExp( + [ + p + '?' + u + '+' + g + '(?=' + [i, p, '$'].join('|') + ')', + m + '+' + v + '(?=' + [i, p + h, '$'].join('|') + ')', + p + '?' + h + '+' + g, + p + '+' + v, + '\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])', + '\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])', + s, + _, + ].join('|'), + 'g', + ) + e.exports = function (e) { + return e.match(x) || [] + } + }, + 6678: (e, t, n) => { + var r = n(5990) + e.exports = function (e) { + return r(e, 4) + } + }, + 361: (e, t, n) => { + var r = n(5990) + e.exports = function (e) { + return r(e, 5) + } + }, + 5703: (e) => { + e.exports = function (e) { + return function () { + return e + } + } + }, + 3816: (e, t, n) => { + var r = n(9389), + a = n(9833), + o = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g, + i = RegExp('[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]', 'g') + e.exports = function (e) { + return (e = a(e)) && e.replace(o, r).replace(i, '') + } + }, + 7813: (e) => { + e.exports = function (e, t) { + return e === t || (e != e && t != t) + } + }, + 5564: (e, t, n) => { + var r = n(1078) + e.exports = function (e) { + return null != e && e.length ? r(e, 1) : [] + } + }, + 7361: (e, t, n) => { + var r = n(7786) + e.exports = function (e, t, n) { + var a = null == e ? void 0 : r(e, t) + return void 0 === a ? n : a + } + }, + 9095: (e, t, n) => { + var r = n(13), + a = n(222) + e.exports = function (e, t) { + return null != e && a(e, t, r) + } + }, + 6557: (e) => { + e.exports = function (e) { + return e + } + }, + 5694: (e, t, n) => { + var r = n(9454), + a = n(7005), + o = Object.prototype, + i = o.hasOwnProperty, + s = o.propertyIsEnumerable, + l = r( + (function () { + return arguments + })(), + ) + ? r + : function (e) { + return a(e) && i.call(e, 'callee') && !s.call(e, 'callee') + } + e.exports = l + }, + 1469: (e) => { + var t = Array.isArray + e.exports = t + }, + 8612: (e, t, n) => { + var r = n(3560), + a = n(1780) + e.exports = function (e) { + return null != e && a(e.length) && !r(e) + } + }, + 9246: (e, t, n) => { + var r = n(8612), + a = n(7005) + e.exports = function (e) { + return a(e) && r(e) + } + }, + 4144: (e, t, n) => { + e = n.nmd(e) + var r = n(5639), + a = n(5062), + o = t && !t.nodeType && t, + i = o && e && !e.nodeType && e, + s = i && i.exports === o ? r.Buffer : void 0, + l = (s ? s.isBuffer : void 0) || a + e.exports = l + }, + 1609: (e, t, n) => { + var r = n(280), + a = n(4160), + o = n(5694), + i = n(1469), + s = n(8612), + l = n(4144), + u = n(5726), + c = n(6719), + f = Object.prototype.hasOwnProperty + e.exports = function (e) { + if (null == e) return !0 + if (s(e) && (i(e) || 'string' == typeof e || 'function' == typeof e.splice || l(e) || c(e) || o(e))) return !e.length + var t = a(e) + if ('[object Map]' == t || '[object Set]' == t) return !e.size + if (u(e)) return !r(e).length + for (var n in e) if (f.call(e, n)) return !1 + return !0 + } + }, + 8446: (e, t, n) => { + var r = n(939) + e.exports = function (e, t) { + return r(e, t) + } + }, + 3560: (e, t, n) => { + var r = n(4239), + a = n(3218) + e.exports = function (e) { + if (!a(e)) return !1 + var t = r(e) + return '[object Function]' == t || '[object GeneratorFunction]' == t || '[object AsyncFunction]' == t || '[object Proxy]' == t + } + }, + 1780: (e) => { + e.exports = function (e) { + return 'number' == typeof e && e > -1 && e % 1 == 0 && e <= 9007199254740991 + } + }, + 6688: (e, t, n) => { + var r = n(5588), + a = n(1717), + o = n(1167), + i = o && o.isMap, + s = i ? a(i) : r + e.exports = s + }, + 3218: (e) => { + e.exports = function (e) { + var t = typeof e + return null != e && ('object' == t || 'function' == t) + } + }, + 7005: (e) => { + e.exports = function (e) { + return null != e && 'object' == typeof e + } + }, + 8630: (e, t, n) => { + var r = n(4239), + a = n(5924), + o = n(7005), + i = Function.prototype, + s = Object.prototype, + l = i.toString, + u = s.hasOwnProperty, + c = l.call(Object) + e.exports = function (e) { + if (!o(e) || '[object Object]' != r(e)) return !1 + var t = a(e) + if (null === t) return !0 + var n = u.call(t, 'constructor') && t.constructor + return 'function' == typeof n && n instanceof n && l.call(n) == c + } + }, + 2928: (e, t, n) => { + var r = n(9221), + a = n(1717), + o = n(1167), + i = o && o.isSet, + s = i ? a(i) : r + e.exports = s + }, + 3448: (e, t, n) => { + var r = n(4239), + a = n(7005) + e.exports = function (e) { + return 'symbol' == typeof e || (a(e) && '[object Symbol]' == r(e)) + } + }, + 6719: (e, t, n) => { + var r = n(8749), + a = n(1717), + o = n(1167), + i = o && o.isTypedArray, + s = i ? a(i) : r + e.exports = s + }, + 3674: (e, t, n) => { + var r = n(4636), + a = n(280), + o = n(8612) + e.exports = function (e) { + return o(e) ? r(e) : a(e) + } + }, + 1704: (e, t, n) => { + var r = n(4636), + a = n(313), + o = n(8612) + e.exports = function (e) { + return o(e) ? r(e, !0) : a(e) + } + }, + 928: (e) => { + e.exports = function (e) { + var t = null == e ? 0 : e.length + return t ? e[t - 1] : void 0 + } + }, + 5021: (e, t, n) => { + var r = n(5393)(function (e, t, n) { + return e + (n ? ' ' : '') + t.toLowerCase() + }) + e.exports = r + }, + 6604: (e, t, n) => { + var r = n(9465), + a = n(7816), + o = n(7206) + e.exports = function (e, t) { + var n = {} + return ( + (t = o(t, 3)), + a(e, function (e, a, o) { + r(n, a, t(e, a, o)) + }), + n + ) + } + }, + 8306: (e, t, n) => { + var r = n(3369) + function a(e, t) { + if ('function' != typeof e || (null != t && 'function' != typeof t)) throw new TypeError('Expected a function') + var n = function () { + var r = arguments, + a = t ? t.apply(this, r) : r[0], + o = n.cache + if (o.has(a)) return o.get(a) + var i = e.apply(this, r) + return ((n.cache = o.set(a, i) || o), i) + } + return ((n.cache = new (a.Cache || r)()), n) + } + ;((a.Cache = r), (e.exports = a)) + }, + 308: (e) => { + e.exports = function () {} + }, + 7557: (e, t, n) => { + var r = n(9932), + a = n(5990), + o = n(7406), + i = n(1811), + s = n(8363), + l = n(696), + u = n(9021), + c = n(6904), + f = u(function (e, t) { + var n = {} + if (null == e) return n + var u = !1 + ;((t = r(t, function (t) { + return ((t = i(t, e)), u || (u = t.length > 1), t) + })), + s(e, c(e), n), + u && (n = a(n, 7, l))) + for (var f = t.length; f--; ) o(n, t[f]) + return n + }) + e.exports = f + }, + 9601: (e, t, n) => { + var r = n(371), + a = n(9152), + o = n(5403), + i = n(327) + e.exports = function (e) { + return o(e) ? r(i(e)) : a(e) + } + }, + 1921: (e, t, n) => { + var r = n(611) + e.exports = function (e, t, n, a) { + return ((a = 'function' == typeof a ? a : void 0), null == e ? e : r(e, t, n, a)) + } + }, + 479: (e) => { + e.exports = function () { + return [] + } + }, + 5062: (e) => { + e.exports = function () { + return !1 + } + }, + 9833: (e, t, n) => { + var r = n(531) + e.exports = function (e) { + return null == e ? '' : r(e) + } + }, + 1700: (e, t, n) => { + var r = n(8882)('toUpperCase') + e.exports = r + }, + 8748: (e, t, n) => { + var r = n(9029), + a = n(3157), + o = n(9833), + i = n(2757) + e.exports = function (e, t, n) { + return ((e = o(e)), void 0 === (t = n ? void 0 : t) ? (a(e) ? i(e) : r(e)) : e.match(t) || []) + } + }, + 6566: (e, t, n) => { + var r = n(4963), + a = n(5976), + o = n(6128), + i = n(9246), + s = a(function (e) { + return o(r(e, i)) + }) + e.exports = s + }, + 7418: (e) => { + 'use strict' + var t = Object.getOwnPropertySymbols, + n = Object.prototype.hasOwnProperty, + r = Object.prototype.propertyIsEnumerable + e.exports = (function () { + try { + if (!Object.assign) return !1 + var e = new String('abc') + if (((e[5] = 'de'), '5' === Object.getOwnPropertyNames(e)[0])) return !1 + for (var t = {}, n = 0; n < 10; n++) t['_' + String.fromCharCode(n)] = n + if ( + '0123456789' !== + Object.getOwnPropertyNames(t) + .map(function (e) { + return t[e] + }) + .join('') + ) + return !1 + var r = {} + return ( + 'abcdefghijklmnopqrst'.split('').forEach(function (e) { + r[e] = e + }), + 'abcdefghijklmnopqrst' === Object.keys(Object.assign({}, r)).join('') + ) + } catch (e) { + return !1 + } + })() + ? Object.assign + : function (e, a) { + for ( + var o, + i, + s = (function (e) { + if (null == e) throw new TypeError('Object.assign cannot be called with null or undefined') + return Object(e) + })(e), + l = 1; + l < arguments.length; + l++ + ) { + for (var u in (o = Object(arguments[l]))) n.call(o, u) && (s[u] = o[u]) + if (t) { + i = t(o) + for (var c = 0; c < i.length; c++) r.call(o, i[c]) && (s[i[c]] = o[i[c]]) + } + } + return s + } + }, + 4448: (e, t, n) => { + 'use strict' + var r = n(7294), + a = n(7418), + o = n(3840) + function i(e) { + for (var t = 'https://reactjs.org/docs/error-decoder.html?invariant=' + e, n = 1; n < arguments.length; n++) + t += '&args[]=' + encodeURIComponent(arguments[n]) + return ( + 'Minified React error #' + + e + + '; visit ' + + t + + ' for the full message or use the non-minified dev environment for full errors and additional helpful warnings.' + ) + } + if (!r) throw Error(i(227)) + var s = new Set(), + l = {} + function u(e, t) { + ;(c(e, t), c(e + 'Capture', t)) + } + function c(e, t) { + for (l[e] = t, e = 0; e < t.length; e++) s.add(t[e]) + } + var f = !('undefined' == typeof window || void 0 === window.document || void 0 === window.document.createElement), + d = + /^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/, + p = Object.prototype.hasOwnProperty, + h = {}, + m = {} + function g(e, t, n, r, a, o, i) { + ;((this.acceptsBooleans = 2 === t || 3 === t || 4 === t), + (this.attributeName = r), + (this.attributeNamespace = a), + (this.mustUseProperty = n), + (this.propertyName = e), + (this.type = t), + (this.sanitizeURL = o), + (this.removeEmptyString = i)) + } + var v = {} + ;('children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style' + .split(' ') + .forEach(function (e) { + v[e] = new g(e, 0, !1, e, null, !1, !1) + }), + [ + ['acceptCharset', 'accept-charset'], + ['className', 'class'], + ['htmlFor', 'for'], + ['httpEquiv', 'http-equiv'], + ].forEach(function (e) { + var t = e[0] + v[t] = new g(t, 1, !1, e[1], null, !1, !1) + }), + ['contentEditable', 'draggable', 'spellCheck', 'value'].forEach(function (e) { + v[e] = new g(e, 2, !1, e.toLowerCase(), null, !1, !1) + }), + ['autoReverse', 'externalResourcesRequired', 'focusable', 'preserveAlpha'].forEach(function (e) { + v[e] = new g(e, 2, !1, e, null, !1, !1) + }), + 'allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope' + .split(' ') + .forEach(function (e) { + v[e] = new g(e, 3, !1, e.toLowerCase(), null, !1, !1) + }), + ['checked', 'multiple', 'muted', 'selected'].forEach(function (e) { + v[e] = new g(e, 3, !0, e, null, !1, !1) + }), + ['capture', 'download'].forEach(function (e) { + v[e] = new g(e, 4, !1, e, null, !1, !1) + }), + ['cols', 'rows', 'size', 'span'].forEach(function (e) { + v[e] = new g(e, 6, !1, e, null, !1, !1) + }), + ['rowSpan', 'start'].forEach(function (e) { + v[e] = new g(e, 5, !1, e.toLowerCase(), null, !1, !1) + })) + var y = /[\-:]([a-z])/g + function b(e) { + return e[1].toUpperCase() + } + function w(e, t, n, r) { + var a = v.hasOwnProperty(t) ? v[t] : null + ;(null !== a ? 0 === a.type : !r && 2 < t.length && ('o' === t[0] || 'O' === t[0]) && ('n' === t[1] || 'N' === t[1])) || + ((function (e, t, n, r) { + if ( + null == t || + (function (e, t, n, r) { + if (null !== n && 0 === n.type) return !1 + switch (typeof t) { + case 'function': + case 'symbol': + return !0 + case 'boolean': + return !r && (null !== n ? !n.acceptsBooleans : 'data-' !== (e = e.toLowerCase().slice(0, 5)) && 'aria-' !== e) + default: + return !1 + } + })(e, t, n, r) + ) + return !0 + if (r) return !1 + if (null !== n) + switch (n.type) { + case 3: + return !t + case 4: + return !1 === t + case 5: + return isNaN(t) + case 6: + return isNaN(t) || 1 > t + } + return !1 + })(t, n, a, r) && (n = null), + r || null === a + ? (function (e) { + return !!p.call(m, e) || (!p.call(h, e) && (d.test(e) ? (m[e] = !0) : ((h[e] = !0), !1))) + })(t) && (null === n ? e.removeAttribute(t) : e.setAttribute(t, '' + n)) + : a.mustUseProperty + ? (e[a.propertyName] = null === n ? 3 !== a.type && '' : n) + : ((t = a.attributeName), + (r = a.attributeNamespace), + null === n + ? e.removeAttribute(t) + : ((n = 3 === (a = a.type) || (4 === a && !0 === n) ? '' : '' + n), r ? e.setAttributeNS(r, t, n) : e.setAttribute(t, n)))) + } + ;('accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height' + .split(' ') + .forEach(function (e) { + var t = e.replace(y, b) + v[t] = new g(t, 1, !1, e, null, !1, !1) + }), + 'xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type'.split(' ').forEach(function (e) { + var t = e.replace(y, b) + v[t] = new g(t, 1, !1, e, 'http://www.w3.org/1999/xlink', !1, !1) + }), + ['xml:base', 'xml:lang', 'xml:space'].forEach(function (e) { + var t = e.replace(y, b) + v[t] = new g(t, 1, !1, e, 'http://www.w3.org/XML/1998/namespace', !1, !1) + }), + ['tabIndex', 'crossOrigin'].forEach(function (e) { + v[e] = new g(e, 1, !1, e.toLowerCase(), null, !1, !1) + }), + (v.xlinkHref = new g('xlinkHref', 1, !1, 'xlink:href', 'http://www.w3.org/1999/xlink', !0, !1)), + ['src', 'href', 'action', 'formAction'].forEach(function (e) { + v[e] = new g(e, 1, !1, e.toLowerCase(), null, !0, !0) + })) + var _ = r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, + x = 60103, + E = 60106, + k = 60107, + S = 60108, + $ = 60114, + P = 60109, + O = 60110, + C = 60112, + j = 60113, + N = 60120, + I = 60115, + T = 60116, + A = 60121, + R = 60128, + D = 60129, + M = 60130, + F = 60131 + if ('function' == typeof Symbol && Symbol.for) { + var z = Symbol.for + ;((x = z('react.element')), + (E = z('react.portal')), + (k = z('react.fragment')), + (S = z('react.strict_mode')), + ($ = z('react.profiler')), + (P = z('react.provider')), + (O = z('react.context')), + (C = z('react.forward_ref')), + (j = z('react.suspense')), + (N = z('react.suspense_list')), + (I = z('react.memo')), + (T = z('react.lazy')), + (A = z('react.block')), + z('react.scope'), + (R = z('react.opaque.id')), + (D = z('react.debug_trace_mode')), + (M = z('react.offscreen')), + (F = z('react.legacy_hidden'))) + } + var L, + V = 'function' == typeof Symbol && Symbol.iterator + function U(e) { + return null === e || 'object' != typeof e ? null : 'function' == typeof (e = (V && e[V]) || e['@@iterator']) ? e : null + } + function q(e) { + if (void 0 === L) + try { + throw Error() + } catch (e) { + var t = e.stack.trim().match(/\n( *(at )?)/) + L = (t && t[1]) || '' + } + return '\n' + L + e + } + var B = !1 + function H(e, t) { + if (!e || B) return '' + B = !0 + var n = Error.prepareStackTrace + Error.prepareStackTrace = void 0 + try { + if (t) + if ( + ((t = function () { + throw Error() + }), + Object.defineProperty(t.prototype, 'props', { + set: function () { + throw Error() + }, + }), + 'object' == typeof Reflect && Reflect.construct) + ) { + try { + Reflect.construct(t, []) + } catch (e) { + var r = e + } + Reflect.construct(e, [], t) + } else { + try { + t.call() + } catch (e) { + r = e + } + e.call(t.prototype) + } + else { + try { + throw Error() + } catch (e) { + r = e + } + e() + } + } catch (e) { + if (e && r && 'string' == typeof e.stack) { + for (var a = e.stack.split('\n'), o = r.stack.split('\n'), i = a.length - 1, s = o.length - 1; 1 <= i && 0 <= s && a[i] !== o[s]; ) s-- + for (; 1 <= i && 0 <= s; i--, s--) + if (a[i] !== o[s]) { + if (1 !== i || 1 !== s) + do { + if ((i--, 0 > --s || a[i] !== o[s])) return '\n' + a[i].replace(' at new ', ' at ') + } while (1 <= i && 0 <= s) + break + } + } + } finally { + ;((B = !1), (Error.prepareStackTrace = n)) + } + return (e = e ? e.displayName || e.name : '') ? q(e) : '' + } + function W(e) { + switch (e.tag) { + case 5: + return q(e.type) + case 16: + return q('Lazy') + case 13: + return q('Suspense') + case 19: + return q('SuspenseList') + case 0: + case 2: + case 15: + return H(e.type, !1) + case 11: + return H(e.type.render, !1) + case 22: + return H(e.type._render, !1) + case 1: + return H(e.type, !0) + default: + return '' + } + } + function K(e) { + if (null == e) return null + if ('function' == typeof e) return e.displayName || e.name || null + if ('string' == typeof e) return e + switch (e) { + case k: + return 'Fragment' + case E: + return 'Portal' + case $: + return 'Profiler' + case S: + return 'StrictMode' + case j: + return 'Suspense' + case N: + return 'SuspenseList' + } + if ('object' == typeof e) + switch (e.$$typeof) { + case O: + return (e.displayName || 'Context') + '.Consumer' + case P: + return (e._context.displayName || 'Context') + '.Provider' + case C: + var t = e.render + return ((t = t.displayName || t.name || ''), e.displayName || ('' !== t ? 'ForwardRef(' + t + ')' : 'ForwardRef')) + case I: + return K(e.type) + case A: + return K(e._render) + case T: + ;((t = e._payload), (e = e._init)) + try { + return K(e(t)) + } catch (e) {} + } + return null + } + function Q(e) { + switch (typeof e) { + case 'boolean': + case 'number': + case 'object': + case 'string': + case 'undefined': + return e + default: + return '' + } + } + function G(e) { + var t = e.type + return (e = e.nodeName) && 'input' === e.toLowerCase() && ('checkbox' === t || 'radio' === t) + } + function J(e) { + e._valueTracker || + (e._valueTracker = (function (e) { + var t = G(e) ? 'checked' : 'value', + n = Object.getOwnPropertyDescriptor(e.constructor.prototype, t), + r = '' + e[t] + if (!e.hasOwnProperty(t) && void 0 !== n && 'function' == typeof n.get && 'function' == typeof n.set) { + var a = n.get, + o = n.set + return ( + Object.defineProperty(e, t, { + configurable: !0, + get: function () { + return a.call(this) + }, + set: function (e) { + ;((r = '' + e), o.call(this, e)) + }, + }), + Object.defineProperty(e, t, { enumerable: n.enumerable }), + { + getValue: function () { + return r + }, + setValue: function (e) { + r = '' + e + }, + stopTracking: function () { + ;((e._valueTracker = null), delete e[t]) + }, + } + ) + } + })(e)) + } + function Y(e) { + if (!e) return !1 + var t = e._valueTracker + if (!t) return !0 + var n = t.getValue(), + r = '' + return (e && (r = G(e) ? (e.checked ? 'true' : 'false') : e.value), (e = r) !== n && (t.setValue(e), !0)) + } + function Z(e) { + if (void 0 === (e = e || ('undefined' != typeof document ? document : void 0))) return null + try { + return e.activeElement || e.body + } catch (t) { + return e.body + } + } + function X(e, t) { + var n = t.checked + return a({}, t, { defaultChecked: void 0, defaultValue: void 0, value: void 0, checked: null != n ? n : e._wrapperState.initialChecked }) + } + function ee(e, t) { + var n = null == t.defaultValue ? '' : t.defaultValue, + r = null != t.checked ? t.checked : t.defaultChecked + ;((n = Q(null != t.value ? t.value : n)), + (e._wrapperState = { + initialChecked: r, + initialValue: n, + controlled: 'checkbox' === t.type || 'radio' === t.type ? null != t.checked : null != t.value, + })) + } + function te(e, t) { + null != (t = t.checked) && w(e, 'checked', t, !1) + } + function ne(e, t) { + te(e, t) + var n = Q(t.value), + r = t.type + if (null != n) + 'number' === r ? ((0 === n && '' === e.value) || e.value != n) && (e.value = '' + n) : e.value !== '' + n && (e.value = '' + n) + else if ('submit' === r || 'reset' === r) return void e.removeAttribute('value') + ;(t.hasOwnProperty('value') ? ae(e, t.type, n) : t.hasOwnProperty('defaultValue') && ae(e, t.type, Q(t.defaultValue)), + null == t.checked && null != t.defaultChecked && (e.defaultChecked = !!t.defaultChecked)) + } + function re(e, t, n) { + if (t.hasOwnProperty('value') || t.hasOwnProperty('defaultValue')) { + var r = t.type + if (!(('submit' !== r && 'reset' !== r) || (void 0 !== t.value && null !== t.value))) return + ;((t = '' + e._wrapperState.initialValue), n || t === e.value || (e.value = t), (e.defaultValue = t)) + } + ;('' !== (n = e.name) && (e.name = ''), (e.defaultChecked = !!e._wrapperState.initialChecked), '' !== n && (e.name = n)) + } + function ae(e, t, n) { + ;('number' === t && Z(e.ownerDocument) === e) || + (null == n ? (e.defaultValue = '' + e._wrapperState.initialValue) : e.defaultValue !== '' + n && (e.defaultValue = '' + n)) + } + function oe(e, t) { + return ( + (e = a({ children: void 0 }, t)), + (t = (function (e) { + var t = '' + return ( + r.Children.forEach(e, function (e) { + null != e && (t += e) + }), + t + ) + })(t.children)) && (e.children = t), + e + ) + } + function ie(e, t, n, r) { + if (((e = e.options), t)) { + t = {} + for (var a = 0; a < n.length; a++) t['$' + n[a]] = !0 + for (n = 0; n < e.length; n++) + ((a = t.hasOwnProperty('$' + e[n].value)), e[n].selected !== a && (e[n].selected = a), a && r && (e[n].defaultSelected = !0)) + } else { + for (n = '' + Q(n), t = null, a = 0; a < e.length; a++) { + if (e[a].value === n) return ((e[a].selected = !0), void (r && (e[a].defaultSelected = !0))) + null !== t || e[a].disabled || (t = e[a]) + } + null !== t && (t.selected = !0) + } + } + function se(e, t) { + if (null != t.dangerouslySetInnerHTML) throw Error(i(91)) + return a({}, t, { value: void 0, defaultValue: void 0, children: '' + e._wrapperState.initialValue }) + } + function le(e, t) { + var n = t.value + if (null == n) { + if (((n = t.children), (t = t.defaultValue), null != n)) { + if (null != t) throw Error(i(92)) + if (Array.isArray(n)) { + if (!(1 >= n.length)) throw Error(i(93)) + n = n[0] + } + t = n + } + ;(null == t && (t = ''), (n = t)) + } + e._wrapperState = { initialValue: Q(n) } + } + function ue(e, t) { + var n = Q(t.value), + r = Q(t.defaultValue) + ;(null != n && ((n = '' + n) !== e.value && (e.value = n), null == t.defaultValue && e.defaultValue !== n && (e.defaultValue = n)), + null != r && (e.defaultValue = '' + r)) + } + function ce(e) { + var t = e.textContent + t === e._wrapperState.initialValue && '' !== t && null !== t && (e.value = t) + } + var fe = { html: 'http://www.w3.org/1999/xhtml', mathml: 'http://www.w3.org/1998/Math/MathML', svg: 'http://www.w3.org/2000/svg' } + function de(e) { + switch (e) { + case 'svg': + return 'http://www.w3.org/2000/svg' + case 'math': + return 'http://www.w3.org/1998/Math/MathML' + default: + return 'http://www.w3.org/1999/xhtml' + } + } + function pe(e, t) { + return null == e || 'http://www.w3.org/1999/xhtml' === e + ? de(t) + : 'http://www.w3.org/2000/svg' === e && 'foreignObject' === t + ? 'http://www.w3.org/1999/xhtml' + : e + } + var he, + me, + ge = + ((me = function (e, t) { + if (e.namespaceURI !== fe.svg || 'innerHTML' in e) e.innerHTML = t + else { + for ( + (he = he || document.createElement('div')).innerHTML = '<svg>' + t.valueOf().toString() + '</svg>', t = he.firstChild; + e.firstChild; + ) + e.removeChild(e.firstChild) + for (; t.firstChild; ) e.appendChild(t.firstChild) + } + }), + 'undefined' != typeof MSApp && MSApp.execUnsafeLocalFunction + ? function (e, t, n, r) { + MSApp.execUnsafeLocalFunction(function () { + return me(e, t) + }) + } + : me) + function ve(e, t) { + if (t) { + var n = e.firstChild + if (n && n === e.lastChild && 3 === n.nodeType) return void (n.nodeValue = t) + } + e.textContent = t + } + var ye = { + animationIterationCount: !0, + borderImageOutset: !0, + borderImageSlice: !0, + borderImageWidth: !0, + boxFlex: !0, + boxFlexGroup: !0, + boxOrdinalGroup: !0, + columnCount: !0, + columns: !0, + flex: !0, + flexGrow: !0, + flexPositive: !0, + flexShrink: !0, + flexNegative: !0, + flexOrder: !0, + gridArea: !0, + gridRow: !0, + gridRowEnd: !0, + gridRowSpan: !0, + gridRowStart: !0, + gridColumn: !0, + gridColumnEnd: !0, + gridColumnSpan: !0, + gridColumnStart: !0, + fontWeight: !0, + lineClamp: !0, + lineHeight: !0, + opacity: !0, + order: !0, + orphans: !0, + tabSize: !0, + widows: !0, + zIndex: !0, + zoom: !0, + fillOpacity: !0, + floodOpacity: !0, + stopOpacity: !0, + strokeDasharray: !0, + strokeDashoffset: !0, + strokeMiterlimit: !0, + strokeOpacity: !0, + strokeWidth: !0, + }, + be = ['Webkit', 'ms', 'Moz', 'O'] + function we(e, t, n) { + return null == t || 'boolean' == typeof t || '' === t + ? '' + : n || 'number' != typeof t || 0 === t || (ye.hasOwnProperty(e) && ye[e]) + ? ('' + t).trim() + : t + 'px' + } + function _e(e, t) { + for (var n in ((e = e.style), t)) + if (t.hasOwnProperty(n)) { + var r = 0 === n.indexOf('--'), + a = we(n, t[n], r) + ;('float' === n && (n = 'cssFloat'), r ? e.setProperty(n, a) : (e[n] = a)) + } + } + Object.keys(ye).forEach(function (e) { + be.forEach(function (t) { + ;((t = t + e.charAt(0).toUpperCase() + e.substring(1)), (ye[t] = ye[e])) + }) + }) + var xe = a( + { menuitem: !0 }, + { + area: !0, + base: !0, + br: !0, + col: !0, + embed: !0, + hr: !0, + img: !0, + input: !0, + keygen: !0, + link: !0, + meta: !0, + param: !0, + source: !0, + track: !0, + wbr: !0, + }, + ) + function Ee(e, t) { + if (t) { + if (xe[e] && (null != t.children || null != t.dangerouslySetInnerHTML)) throw Error(i(137, e)) + if (null != t.dangerouslySetInnerHTML) { + if (null != t.children) throw Error(i(60)) + if ('object' != typeof t.dangerouslySetInnerHTML || !('__html' in t.dangerouslySetInnerHTML)) throw Error(i(61)) + } + if (null != t.style && 'object' != typeof t.style) throw Error(i(62)) + } + } + function ke(e, t) { + if (-1 === e.indexOf('-')) return 'string' == typeof t.is + switch (e) { + case 'annotation-xml': + case 'color-profile': + case 'font-face': + case 'font-face-src': + case 'font-face-uri': + case 'font-face-format': + case 'font-face-name': + case 'missing-glyph': + return !1 + default: + return !0 + } + } + function Se(e) { + return ( + (e = e.target || e.srcElement || window).correspondingUseElement && (e = e.correspondingUseElement), + 3 === e.nodeType ? e.parentNode : e + ) + } + var $e = null, + Pe = null, + Oe = null + function Ce(e) { + if ((e = na(e))) { + if ('function' != typeof $e) throw Error(i(280)) + var t = e.stateNode + t && ((t = aa(t)), $e(e.stateNode, e.type, t)) + } + } + function je(e) { + Pe ? (Oe ? Oe.push(e) : (Oe = [e])) : (Pe = e) + } + function Ne() { + if (Pe) { + var e = Pe, + t = Oe + if (((Oe = Pe = null), Ce(e), t)) for (e = 0; e < t.length; e++) Ce(t[e]) + } + } + function Ie(e, t) { + return e(t) + } + function Te(e, t, n, r, a) { + return e(t, n, r, a) + } + function Ae() {} + var Re = Ie, + De = !1, + Me = !1 + function Fe() { + ;(null === Pe && null === Oe) || (Ae(), Ne()) + } + function ze(e, t) { + var n = e.stateNode + if (null === n) return null + var r = aa(n) + if (null === r) return null + n = r[t] + e: switch (t) { + case 'onClick': + case 'onClickCapture': + case 'onDoubleClick': + case 'onDoubleClickCapture': + case 'onMouseDown': + case 'onMouseDownCapture': + case 'onMouseMove': + case 'onMouseMoveCapture': + case 'onMouseUp': + case 'onMouseUpCapture': + case 'onMouseEnter': + ;((r = !r.disabled) || (r = !('button' === (e = e.type) || 'input' === e || 'select' === e || 'textarea' === e)), (e = !r)) + break e + default: + e = !1 + } + if (e) return null + if (n && 'function' != typeof n) throw Error(i(231, t, typeof n)) + return n + } + var Le = !1 + if (f) + try { + var Ve = {} + ;(Object.defineProperty(Ve, 'passive', { + get: function () { + Le = !0 + }, + }), + window.addEventListener('test', Ve, Ve), + window.removeEventListener('test', Ve, Ve)) + } catch (me) { + Le = !1 + } + function Ue(e, t, n, r, a, o, i, s, l) { + var u = Array.prototype.slice.call(arguments, 3) + try { + t.apply(n, u) + } catch (e) { + this.onError(e) + } + } + var qe = !1, + Be = null, + He = !1, + We = null, + Ke = { + onError: function (e) { + ;((qe = !0), (Be = e)) + }, + } + function Qe(e, t, n, r, a, o, i, s, l) { + ;((qe = !1), (Be = null), Ue.apply(Ke, arguments)) + } + function Ge(e) { + var t = e, + n = e + if (e.alternate) for (; t.return; ) t = t.return + else { + e = t + do { + ;(0 != (1026 & (t = e).flags) && (n = t.return), (e = t.return)) + } while (e) + } + return 3 === t.tag ? n : null + } + function Je(e) { + if (13 === e.tag) { + var t = e.memoizedState + if ((null === t && null !== (e = e.alternate) && (t = e.memoizedState), null !== t)) return t.dehydrated + } + return null + } + function Ye(e) { + if (Ge(e) !== e) throw Error(i(188)) + } + function Ze(e) { + if ( + ((e = (function (e) { + var t = e.alternate + if (!t) { + if (null === (t = Ge(e))) throw Error(i(188)) + return t !== e ? null : e + } + for (var n = e, r = t; ; ) { + var a = n.return + if (null === a) break + var o = a.alternate + if (null === o) { + if (null !== (r = a.return)) { + n = r + continue + } + break + } + if (a.child === o.child) { + for (o = a.child; o; ) { + if (o === n) return (Ye(a), e) + if (o === r) return (Ye(a), t) + o = o.sibling + } + throw Error(i(188)) + } + if (n.return !== r.return) ((n = a), (r = o)) + else { + for (var s = !1, l = a.child; l; ) { + if (l === n) { + ;((s = !0), (n = a), (r = o)) + break + } + if (l === r) { + ;((s = !0), (r = a), (n = o)) + break + } + l = l.sibling + } + if (!s) { + for (l = o.child; l; ) { + if (l === n) { + ;((s = !0), (n = o), (r = a)) + break + } + if (l === r) { + ;((s = !0), (r = o), (n = a)) + break + } + l = l.sibling + } + if (!s) throw Error(i(189)) + } + } + if (n.alternate !== r) throw Error(i(190)) + } + if (3 !== n.tag) throw Error(i(188)) + return n.stateNode.current === n ? e : t + })(e)), + !e) + ) + return null + for (var t = e; ; ) { + if (5 === t.tag || 6 === t.tag) return t + if (t.child) ((t.child.return = t), (t = t.child)) + else { + if (t === e) break + for (; !t.sibling; ) { + if (!t.return || t.return === e) return null + t = t.return + } + ;((t.sibling.return = t.return), (t = t.sibling)) + } + } + return null + } + function Xe(e, t) { + for (var n = e.alternate; null !== t; ) { + if (t === e || t === n) return !0 + t = t.return + } + return !1 + } + var et, + tt, + nt, + rt, + at = !1, + ot = [], + it = null, + st = null, + lt = null, + ut = new Map(), + ct = new Map(), + ft = [], + dt = + 'mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit'.split( + ' ', + ) + function pt(e, t, n, r, a) { + return { blockedOn: e, domEventName: t, eventSystemFlags: 16 | n, nativeEvent: a, targetContainers: [r] } + } + function ht(e, t) { + switch (e) { + case 'focusin': + case 'focusout': + it = null + break + case 'dragenter': + case 'dragleave': + st = null + break + case 'mouseover': + case 'mouseout': + lt = null + break + case 'pointerover': + case 'pointerout': + ut.delete(t.pointerId) + break + case 'gotpointercapture': + case 'lostpointercapture': + ct.delete(t.pointerId) + } + } + function mt(e, t, n, r, a, o) { + return null === e || e.nativeEvent !== o + ? ((e = pt(t, n, r, a, o)), null !== t && null !== (t = na(t)) && tt(t), e) + : ((e.eventSystemFlags |= r), (t = e.targetContainers), null !== a && -1 === t.indexOf(a) && t.push(a), e) + } + function gt(e) { + var t = ta(e.target) + if (null !== t) { + var n = Ge(t) + if (null !== n) + if (13 === (t = n.tag)) { + if (null !== (t = Je(n))) + return ( + (e.blockedOn = t), + void rt(e.lanePriority, function () { + o.unstable_runWithPriority(e.priority, function () { + nt(n) + }) + }) + ) + } else if (3 === t && n.stateNode.hydrate) return void (e.blockedOn = 3 === n.tag ? n.stateNode.containerInfo : null) + } + e.blockedOn = null + } + function vt(e) { + if (null !== e.blockedOn) return !1 + for (var t = e.targetContainers; 0 < t.length; ) { + var n = Zt(e.domEventName, e.eventSystemFlags, t[0], e.nativeEvent) + if (null !== n) return (null !== (t = na(n)) && tt(t), (e.blockedOn = n), !1) + t.shift() + } + return !0 + } + function yt(e, t, n) { + vt(e) && n.delete(t) + } + function bt() { + for (at = !1; 0 < ot.length; ) { + var e = ot[0] + if (null !== e.blockedOn) { + null !== (e = na(e.blockedOn)) && et(e) + break + } + for (var t = e.targetContainers; 0 < t.length; ) { + var n = Zt(e.domEventName, e.eventSystemFlags, t[0], e.nativeEvent) + if (null !== n) { + e.blockedOn = n + break + } + t.shift() + } + null === e.blockedOn && ot.shift() + } + ;(null !== it && vt(it) && (it = null), + null !== st && vt(st) && (st = null), + null !== lt && vt(lt) && (lt = null), + ut.forEach(yt), + ct.forEach(yt)) + } + function wt(e, t) { + e.blockedOn === t && ((e.blockedOn = null), at || ((at = !0), o.unstable_scheduleCallback(o.unstable_NormalPriority, bt))) + } + function _t(e) { + function t(t) { + return wt(t, e) + } + if (0 < ot.length) { + wt(ot[0], e) + for (var n = 1; n < ot.length; n++) { + var r = ot[n] + r.blockedOn === e && (r.blockedOn = null) + } + } + for (null !== it && wt(it, e), null !== st && wt(st, e), null !== lt && wt(lt, e), ut.forEach(t), ct.forEach(t), n = 0; n < ft.length; n++) + (r = ft[n]).blockedOn === e && (r.blockedOn = null) + for (; 0 < ft.length && null === (n = ft[0]).blockedOn; ) (gt(n), null === n.blockedOn && ft.shift()) + } + function xt(e, t) { + var n = {} + return ((n[e.toLowerCase()] = t.toLowerCase()), (n['Webkit' + e] = 'webkit' + t), (n['Moz' + e] = 'moz' + t), n) + } + var Et = { + animationend: xt('Animation', 'AnimationEnd'), + animationiteration: xt('Animation', 'AnimationIteration'), + animationstart: xt('Animation', 'AnimationStart'), + transitionend: xt('Transition', 'TransitionEnd'), + }, + kt = {}, + St = {} + function $t(e) { + if (kt[e]) return kt[e] + if (!Et[e]) return e + var t, + n = Et[e] + for (t in n) if (n.hasOwnProperty(t) && t in St) return (kt[e] = n[t]) + return e + } + f && + ((St = document.createElement('div').style), + 'AnimationEvent' in window || + (delete Et.animationend.animation, delete Et.animationiteration.animation, delete Et.animationstart.animation), + 'TransitionEvent' in window || delete Et.transitionend.transition) + var Pt = $t('animationend'), + Ot = $t('animationiteration'), + Ct = $t('animationstart'), + jt = $t('transitionend'), + Nt = new Map(), + It = new Map(), + Tt = [ + 'abort', + 'abort', + Pt, + 'animationEnd', + Ot, + 'animationIteration', + Ct, + 'animationStart', + 'canplay', + 'canPlay', + 'canplaythrough', + 'canPlayThrough', + 'durationchange', + 'durationChange', + 'emptied', + 'emptied', + 'encrypted', + 'encrypted', + 'ended', + 'ended', + 'error', + 'error', + 'gotpointercapture', + 'gotPointerCapture', + 'load', + 'load', + 'loadeddata', + 'loadedData', + 'loadedmetadata', + 'loadedMetadata', + 'loadstart', + 'loadStart', + 'lostpointercapture', + 'lostPointerCapture', + 'playing', + 'playing', + 'progress', + 'progress', + 'seeking', + 'seeking', + 'stalled', + 'stalled', + 'suspend', + 'suspend', + 'timeupdate', + 'timeUpdate', + jt, + 'transitionEnd', + 'waiting', + 'waiting', + ] + function At(e, t) { + for (var n = 0; n < e.length; n += 2) { + var r = e[n], + a = e[n + 1] + ;((a = 'on' + (a[0].toUpperCase() + a.slice(1))), It.set(r, t), Nt.set(r, a), u(a, [r])) + } + } + ;(0, o.unstable_now)() + var Rt = 8 + function Dt(e) { + if (0 != (1 & e)) return ((Rt = 15), 1) + if (0 != (2 & e)) return ((Rt = 14), 2) + if (0 != (4 & e)) return ((Rt = 13), 4) + var t = 24 & e + return 0 !== t + ? ((Rt = 12), t) + : 0 != (32 & e) + ? ((Rt = 11), 32) + : 0 != (t = 192 & e) + ? ((Rt = 10), t) + : 0 != (256 & e) + ? ((Rt = 9), 256) + : 0 != (t = 3584 & e) + ? ((Rt = 8), t) + : 0 != (4096 & e) + ? ((Rt = 7), 4096) + : 0 != (t = 4186112 & e) + ? ((Rt = 6), t) + : 0 != (t = 62914560 & e) + ? ((Rt = 5), t) + : 67108864 & e + ? ((Rt = 4), 67108864) + : 0 != (134217728 & e) + ? ((Rt = 3), 134217728) + : 0 != (t = 805306368 & e) + ? ((Rt = 2), t) + : 0 != (1073741824 & e) + ? ((Rt = 1), 1073741824) + : ((Rt = 8), e) + } + function Mt(e, t) { + var n = e.pendingLanes + if (0 === n) return (Rt = 0) + var r = 0, + a = 0, + o = e.expiredLanes, + i = e.suspendedLanes, + s = e.pingedLanes + if (0 !== o) ((r = o), (a = Rt = 15)) + else if (0 != (o = 134217727 & n)) { + var l = o & ~i + 0 !== l ? ((r = Dt(l)), (a = Rt)) : 0 != (s &= o) && ((r = Dt(s)), (a = Rt)) + } else 0 != (o = n & ~i) ? ((r = Dt(o)), (a = Rt)) : 0 !== s && ((r = Dt(s)), (a = Rt)) + if (0 === r) return 0 + if (((r = n & (((0 > (r = 31 - qt(r)) ? 0 : 1 << r) << 1) - 1)), 0 !== t && t !== r && 0 == (t & i))) { + if ((Dt(t), a <= Rt)) return t + Rt = a + } + if (0 !== (t = e.entangledLanes)) for (e = e.entanglements, t &= r; 0 < t; ) ((a = 1 << (n = 31 - qt(t))), (r |= e[n]), (t &= ~a)) + return r + } + function Ft(e) { + return 0 != (e = -1073741825 & e.pendingLanes) ? e : 1073741824 & e ? 1073741824 : 0 + } + function zt(e, t) { + switch (e) { + case 15: + return 1 + case 14: + return 2 + case 12: + return 0 === (e = Lt(24 & ~t)) ? zt(10, t) : e + case 10: + return 0 === (e = Lt(192 & ~t)) ? zt(8, t) : e + case 8: + return (0 === (e = Lt(3584 & ~t)) && 0 === (e = Lt(4186112 & ~t)) && (e = 512), e) + case 2: + return (0 === (t = Lt(805306368 & ~t)) && (t = 268435456), t) + } + throw Error(i(358, e)) + } + function Lt(e) { + return e & -e + } + function Vt(e) { + for (var t = [], n = 0; 31 > n; n++) t.push(e) + return t + } + function Ut(e, t, n) { + e.pendingLanes |= t + var r = t - 1 + ;((e.suspendedLanes &= r), (e.pingedLanes &= r), ((e = e.eventTimes)[(t = 31 - qt(t))] = n)) + } + var qt = Math.clz32 + ? Math.clz32 + : function (e) { + return 0 === e ? 32 : (31 - ((Bt(e) / Ht) | 0)) | 0 + }, + Bt = Math.log, + Ht = Math.LN2, + Wt = o.unstable_UserBlockingPriority, + Kt = o.unstable_runWithPriority, + Qt = !0 + function Gt(e, t, n, r) { + De || Ae() + var a = Yt, + o = De + De = !0 + try { + Te(a, e, t, n, r) + } finally { + ;(De = o) || Fe() + } + } + function Jt(e, t, n, r) { + Kt(Wt, Yt.bind(null, e, t, n, r)) + } + function Yt(e, t, n, r) { + var a + if (Qt) + if ((a = 0 == (4 & t)) && 0 < ot.length && -1 < dt.indexOf(e)) ((e = pt(null, e, t, n, r)), ot.push(e)) + else { + var o = Zt(e, t, n, r) + if (null === o) a && ht(e, r) + else { + if (a) { + if (-1 < dt.indexOf(e)) return ((e = pt(o, e, t, n, r)), void ot.push(e)) + if ( + (function (e, t, n, r, a) { + switch (t) { + case 'focusin': + return ((it = mt(it, e, t, n, r, a)), !0) + case 'dragenter': + return ((st = mt(st, e, t, n, r, a)), !0) + case 'mouseover': + return ((lt = mt(lt, e, t, n, r, a)), !0) + case 'pointerover': + var o = a.pointerId + return (ut.set(o, mt(ut.get(o) || null, e, t, n, r, a)), !0) + case 'gotpointercapture': + return ((o = a.pointerId), ct.set(o, mt(ct.get(o) || null, e, t, n, r, a)), !0) + } + return !1 + })(o, e, t, n, r) + ) + return + ht(e, r) + } + Ar(e, t, r, null, n) + } + } + } + function Zt(e, t, n, r) { + var a = Se(r) + if (null !== (a = ta(a))) { + var o = Ge(a) + if (null === o) a = null + else { + var i = o.tag + if (13 === i) { + if (null !== (a = Je(o))) return a + a = null + } else if (3 === i) { + if (o.stateNode.hydrate) return 3 === o.tag ? o.stateNode.containerInfo : null + a = null + } else o !== a && (a = null) + } + } + return (Ar(e, t, r, a, n), null) + } + var Xt = null, + en = null, + tn = null + function nn() { + if (tn) return tn + var e, + t, + n = en, + r = n.length, + a = 'value' in Xt ? Xt.value : Xt.textContent, + o = a.length + for (e = 0; e < r && n[e] === a[e]; e++); + var i = r - e + for (t = 1; t <= i && n[r - t] === a[o - t]; t++); + return (tn = a.slice(e, 1 < t ? 1 - t : void 0)) + } + function rn(e) { + var t = e.keyCode + return ('charCode' in e ? 0 === (e = e.charCode) && 13 === t && (e = 13) : (e = t), 10 === e && (e = 13), 32 <= e || 13 === e ? e : 0) + } + function an() { + return !0 + } + function on() { + return !1 + } + function sn(e) { + function t(t, n, r, a, o) { + for (var i in ((this._reactName = t), + (this._targetInst = r), + (this.type = n), + (this.nativeEvent = a), + (this.target = o), + (this.currentTarget = null), + e)) + e.hasOwnProperty(i) && ((t = e[i]), (this[i] = t ? t(a) : a[i])) + return ( + (this.isDefaultPrevented = (null != a.defaultPrevented ? a.defaultPrevented : !1 === a.returnValue) ? an : on), + (this.isPropagationStopped = on), + this + ) + } + return ( + a(t.prototype, { + preventDefault: function () { + this.defaultPrevented = !0 + var e = this.nativeEvent + e && + (e.preventDefault ? e.preventDefault() : 'unknown' != typeof e.returnValue && (e.returnValue = !1), (this.isDefaultPrevented = an)) + }, + stopPropagation: function () { + var e = this.nativeEvent + e && + (e.stopPropagation ? e.stopPropagation() : 'unknown' != typeof e.cancelBubble && (e.cancelBubble = !0), + (this.isPropagationStopped = an)) + }, + persist: function () {}, + isPersistent: an, + }), + t + ) + } + var ln, + un, + cn, + fn = { + eventPhase: 0, + bubbles: 0, + cancelable: 0, + timeStamp: function (e) { + return e.timeStamp || Date.now() + }, + defaultPrevented: 0, + isTrusted: 0, + }, + dn = sn(fn), + pn = a({}, fn, { view: 0, detail: 0 }), + hn = sn(pn), + mn = a({}, pn, { + screenX: 0, + screenY: 0, + clientX: 0, + clientY: 0, + pageX: 0, + pageY: 0, + ctrlKey: 0, + shiftKey: 0, + altKey: 0, + metaKey: 0, + getModifierState: Pn, + button: 0, + buttons: 0, + relatedTarget: function (e) { + return void 0 === e.relatedTarget ? (e.fromElement === e.srcElement ? e.toElement : e.fromElement) : e.relatedTarget + }, + movementX: function (e) { + return 'movementX' in e + ? e.movementX + : (e !== cn && + (cn && 'mousemove' === e.type ? ((ln = e.screenX - cn.screenX), (un = e.screenY - cn.screenY)) : (un = ln = 0), (cn = e)), + ln) + }, + movementY: function (e) { + return 'movementY' in e ? e.movementY : un + }, + }), + gn = sn(mn), + vn = sn(a({}, mn, { dataTransfer: 0 })), + yn = sn(a({}, pn, { relatedTarget: 0 })), + bn = sn(a({}, fn, { animationName: 0, elapsedTime: 0, pseudoElement: 0 })), + wn = a({}, fn, { + clipboardData: function (e) { + return 'clipboardData' in e ? e.clipboardData : window.clipboardData + }, + }), + _n = sn(wn), + xn = sn(a({}, fn, { data: 0 })), + En = { + Esc: 'Escape', + Spacebar: ' ', + Left: 'ArrowLeft', + Up: 'ArrowUp', + Right: 'ArrowRight', + Down: 'ArrowDown', + Del: 'Delete', + Win: 'OS', + Menu: 'ContextMenu', + Apps: 'ContextMenu', + Scroll: 'ScrollLock', + MozPrintableKey: 'Unidentified', + }, + kn = { + 8: 'Backspace', + 9: 'Tab', + 12: 'Clear', + 13: 'Enter', + 16: 'Shift', + 17: 'Control', + 18: 'Alt', + 19: 'Pause', + 20: 'CapsLock', + 27: 'Escape', + 32: ' ', + 33: 'PageUp', + 34: 'PageDown', + 35: 'End', + 36: 'Home', + 37: 'ArrowLeft', + 38: 'ArrowUp', + 39: 'ArrowRight', + 40: 'ArrowDown', + 45: 'Insert', + 46: 'Delete', + 112: 'F1', + 113: 'F2', + 114: 'F3', + 115: 'F4', + 116: 'F5', + 117: 'F6', + 118: 'F7', + 119: 'F8', + 120: 'F9', + 121: 'F10', + 122: 'F11', + 123: 'F12', + 144: 'NumLock', + 145: 'ScrollLock', + 224: 'Meta', + }, + Sn = { Alt: 'altKey', Control: 'ctrlKey', Meta: 'metaKey', Shift: 'shiftKey' } + function $n(e) { + var t = this.nativeEvent + return t.getModifierState ? t.getModifierState(e) : !!(e = Sn[e]) && !!t[e] + } + function Pn() { + return $n + } + var On = a({}, pn, { + key: function (e) { + if (e.key) { + var t = En[e.key] || e.key + if ('Unidentified' !== t) return t + } + return 'keypress' === e.type + ? 13 === (e = rn(e)) + ? 'Enter' + : String.fromCharCode(e) + : 'keydown' === e.type || 'keyup' === e.type + ? kn[e.keyCode] || 'Unidentified' + : '' + }, + code: 0, + location: 0, + ctrlKey: 0, + shiftKey: 0, + altKey: 0, + metaKey: 0, + repeat: 0, + locale: 0, + getModifierState: Pn, + charCode: function (e) { + return 'keypress' === e.type ? rn(e) : 0 + }, + keyCode: function (e) { + return 'keydown' === e.type || 'keyup' === e.type ? e.keyCode : 0 + }, + which: function (e) { + return 'keypress' === e.type ? rn(e) : 'keydown' === e.type || 'keyup' === e.type ? e.keyCode : 0 + }, + }), + Cn = sn(On), + jn = sn( + a({}, mn, { + pointerId: 0, + width: 0, + height: 0, + pressure: 0, + tangentialPressure: 0, + tiltX: 0, + tiltY: 0, + twist: 0, + pointerType: 0, + isPrimary: 0, + }), + ), + Nn = sn( + a({}, pn, { touches: 0, targetTouches: 0, changedTouches: 0, altKey: 0, metaKey: 0, ctrlKey: 0, shiftKey: 0, getModifierState: Pn }), + ), + In = sn(a({}, fn, { propertyName: 0, elapsedTime: 0, pseudoElement: 0 })), + Tn = a({}, mn, { + deltaX: function (e) { + return 'deltaX' in e ? e.deltaX : 'wheelDeltaX' in e ? -e.wheelDeltaX : 0 + }, + deltaY: function (e) { + return 'deltaY' in e ? e.deltaY : 'wheelDeltaY' in e ? -e.wheelDeltaY : 'wheelDelta' in e ? -e.wheelDelta : 0 + }, + deltaZ: 0, + deltaMode: 0, + }), + An = sn(Tn), + Rn = [9, 13, 27, 32], + Dn = f && 'CompositionEvent' in window, + Mn = null + f && 'documentMode' in document && (Mn = document.documentMode) + var Fn = f && 'TextEvent' in window && !Mn, + zn = f && (!Dn || (Mn && 8 < Mn && 11 >= Mn)), + Ln = String.fromCharCode(32), + Vn = !1 + function Un(e, t) { + switch (e) { + case 'keyup': + return -1 !== Rn.indexOf(t.keyCode) + case 'keydown': + return 229 !== t.keyCode + case 'keypress': + case 'mousedown': + case 'focusout': + return !0 + default: + return !1 + } + } + function qn(e) { + return 'object' == typeof (e = e.detail) && 'data' in e ? e.data : null + } + var Bn = !1, + Hn = { + color: !0, + date: !0, + datetime: !0, + 'datetime-local': !0, + email: !0, + month: !0, + number: !0, + password: !0, + range: !0, + search: !0, + tel: !0, + text: !0, + time: !0, + url: !0, + week: !0, + } + function Wn(e) { + var t = e && e.nodeName && e.nodeName.toLowerCase() + return 'input' === t ? !!Hn[e.type] : 'textarea' === t + } + function Kn(e, t, n, r) { + ;(je(r), 0 < (t = Dr(t, 'onChange')).length && ((n = new dn('onChange', 'change', null, n, r)), e.push({ event: n, listeners: t }))) + } + var Qn = null, + Gn = null + function Jn(e) { + Or(e, 0) + } + function Yn(e) { + if (Y(ra(e))) return e + } + function Zn(e, t) { + if ('change' === e) return t + } + var Xn = !1 + if (f) { + var er + if (f) { + var tr = 'oninput' in document + if (!tr) { + var nr = document.createElement('div') + ;(nr.setAttribute('oninput', 'return;'), (tr = 'function' == typeof nr.oninput)) + } + er = tr + } else er = !1 + Xn = er && (!document.documentMode || 9 < document.documentMode) + } + function rr() { + Qn && (Qn.detachEvent('onpropertychange', ar), (Gn = Qn = null)) + } + function ar(e) { + if ('value' === e.propertyName && Yn(Gn)) { + var t = [] + if ((Kn(t, Gn, e, Se(e)), (e = Jn), De)) e(t) + else { + De = !0 + try { + Ie(e, t) + } finally { + ;((De = !1), Fe()) + } + } + } + } + function or(e, t, n) { + 'focusin' === e ? (rr(), (Gn = n), (Qn = t).attachEvent('onpropertychange', ar)) : 'focusout' === e && rr() + } + function ir(e) { + if ('selectionchange' === e || 'keyup' === e || 'keydown' === e) return Yn(Gn) + } + function sr(e, t) { + if ('click' === e) return Yn(t) + } + function lr(e, t) { + if ('input' === e || 'change' === e) return Yn(t) + } + var ur = + 'function' == typeof Object.is + ? Object.is + : function (e, t) { + return (e === t && (0 !== e || 1 / e == 1 / t)) || (e != e && t != t) + }, + cr = Object.prototype.hasOwnProperty + function fr(e, t) { + if (ur(e, t)) return !0 + if ('object' != typeof e || null === e || 'object' != typeof t || null === t) return !1 + var n = Object.keys(e), + r = Object.keys(t) + if (n.length !== r.length) return !1 + for (r = 0; r < n.length; r++) if (!cr.call(t, n[r]) || !ur(e[n[r]], t[n[r]])) return !1 + return !0 + } + function dr(e) { + for (; e && e.firstChild; ) e = e.firstChild + return e + } + function pr(e, t) { + var n, + r = dr(e) + for (e = 0; r; ) { + if (3 === r.nodeType) { + if (((n = e + r.textContent.length), e <= t && n >= t)) return { node: r, offset: t - e } + e = n + } + e: { + for (; r; ) { + if (r.nextSibling) { + r = r.nextSibling + break e + } + r = r.parentNode + } + r = void 0 + } + r = dr(r) + } + } + function hr(e, t) { + return ( + !(!e || !t) && + (e === t || + ((!e || 3 !== e.nodeType) && + (t && 3 === t.nodeType + ? hr(e, t.parentNode) + : 'contains' in e + ? e.contains(t) + : !!e.compareDocumentPosition && !!(16 & e.compareDocumentPosition(t))))) + ) + } + function mr() { + for (var e = window, t = Z(); t instanceof e.HTMLIFrameElement; ) { + try { + var n = 'string' == typeof t.contentWindow.location.href + } catch (e) { + n = !1 + } + if (!n) break + t = Z((e = t.contentWindow).document) + } + return t + } + function gr(e) { + var t = e && e.nodeName && e.nodeName.toLowerCase() + return ( + t && + (('input' === t && ('text' === e.type || 'search' === e.type || 'tel' === e.type || 'url' === e.type || 'password' === e.type)) || + 'textarea' === t || + 'true' === e.contentEditable) + ) + } + var vr = f && 'documentMode' in document && 11 >= document.documentMode, + yr = null, + br = null, + wr = null, + _r = !1 + function xr(e, t, n) { + var r = n.window === n ? n.document : 9 === n.nodeType ? n : n.ownerDocument + _r || + null == yr || + yr !== Z(r) || + ((r = + 'selectionStart' in (r = yr) && gr(r) + ? { start: r.selectionStart, end: r.selectionEnd } + : { + anchorNode: (r = ((r.ownerDocument && r.ownerDocument.defaultView) || window).getSelection()).anchorNode, + anchorOffset: r.anchorOffset, + focusNode: r.focusNode, + focusOffset: r.focusOffset, + }), + (wr && fr(wr, r)) || + ((wr = r), + 0 < (r = Dr(br, 'onSelect')).length && + ((t = new dn('onSelect', 'select', null, t, n)), e.push({ event: t, listeners: r }), (t.target = yr)))) + } + ;(At( + 'cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focusin focus focusout blur input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange'.split( + ' ', + ), + 0, + ), + At( + 'drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel'.split( + ' ', + ), + 1, + ), + At(Tt, 2)) + for (var Er = 'change selectionchange textInput compositionstart compositionend compositionupdate'.split(' '), kr = 0; kr < Er.length; kr++) + It.set(Er[kr], 0) + ;(c('onMouseEnter', ['mouseout', 'mouseover']), + c('onMouseLeave', ['mouseout', 'mouseover']), + c('onPointerEnter', ['pointerout', 'pointerover']), + c('onPointerLeave', ['pointerout', 'pointerover']), + u('onChange', 'change click focusin focusout input keydown keyup selectionchange'.split(' ')), + u('onSelect', 'focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange'.split(' ')), + u('onBeforeInput', ['compositionend', 'keypress', 'textInput', 'paste']), + u('onCompositionEnd', 'compositionend focusout keydown keypress keyup mousedown'.split(' ')), + u('onCompositionStart', 'compositionstart focusout keydown keypress keyup mousedown'.split(' ')), + u('onCompositionUpdate', 'compositionupdate focusout keydown keypress keyup mousedown'.split(' '))) + var Sr = + 'abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting'.split( + ' ', + ), + $r = new Set('cancel close invalid load scroll toggle'.split(' ').concat(Sr)) + function Pr(e, t, n) { + var r = e.type || 'unknown-event' + ;((e.currentTarget = n), + (function (e, t, n, r, a, o, s, l, u) { + if ((Qe.apply(this, arguments), qe)) { + if (!qe) throw Error(i(198)) + var c = Be + ;((qe = !1), (Be = null), He || ((He = !0), (We = c))) + } + })(r, t, void 0, e), + (e.currentTarget = null)) + } + function Or(e, t) { + t = 0 != (4 & t) + for (var n = 0; n < e.length; n++) { + var r = e[n], + a = r.event + r = r.listeners + e: { + var o = void 0 + if (t) + for (var i = r.length - 1; 0 <= i; i--) { + var s = r[i], + l = s.instance, + u = s.currentTarget + if (((s = s.listener), l !== o && a.isPropagationStopped())) break e + ;(Pr(a, s, u), (o = l)) + } + else + for (i = 0; i < r.length; i++) { + if (((l = (s = r[i]).instance), (u = s.currentTarget), (s = s.listener), l !== o && a.isPropagationStopped())) break e + ;(Pr(a, s, u), (o = l)) + } + } + } + if (He) throw ((e = We), (He = !1), (We = null), e) + } + function Cr(e, t) { + var n = oa(t), + r = e + '__bubble' + n.has(r) || (Tr(t, e, 2, !1), n.add(r)) + } + var jr = '_reactListening' + Math.random().toString(36).slice(2) + function Nr(e) { + e[jr] || + ((e[jr] = !0), + s.forEach(function (t) { + ;($r.has(t) || Ir(t, !1, e, null), Ir(t, !0, e, null)) + })) + } + function Ir(e, t, n, r) { + var a = 4 < arguments.length && void 0 !== arguments[4] ? arguments[4] : 0, + o = n + if (('selectionchange' === e && 9 !== n.nodeType && (o = n.ownerDocument), null !== r && !t && $r.has(e))) { + if ('scroll' !== e) return + ;((a |= 2), (o = r)) + } + var i = oa(o), + s = e + '__' + (t ? 'capture' : 'bubble') + i.has(s) || (t && (a |= 4), Tr(o, e, a, t), i.add(s)) + } + function Tr(e, t, n, r) { + var a = It.get(t) + switch (void 0 === a ? 2 : a) { + case 0: + a = Gt + break + case 1: + a = Jt + break + default: + a = Yt + } + ;((n = a.bind(null, t, n, e)), + (a = void 0), + !Le || ('touchstart' !== t && 'touchmove' !== t && 'wheel' !== t) || (a = !0), + r + ? void 0 !== a + ? e.addEventListener(t, n, { capture: !0, passive: a }) + : e.addEventListener(t, n, !0) + : void 0 !== a + ? e.addEventListener(t, n, { passive: a }) + : e.addEventListener(t, n, !1)) + } + function Ar(e, t, n, r, a) { + var o = r + if (0 == (1 & t) && 0 == (2 & t) && null !== r) + e: for (;;) { + if (null === r) return + var i = r.tag + if (3 === i || 4 === i) { + var s = r.stateNode.containerInfo + if (s === a || (8 === s.nodeType && s.parentNode === a)) break + if (4 === i) + for (i = r.return; null !== i; ) { + var l = i.tag + if ((3 === l || 4 === l) && ((l = i.stateNode.containerInfo) === a || (8 === l.nodeType && l.parentNode === a))) return + i = i.return + } + for (; null !== s; ) { + if (null === (i = ta(s))) return + if (5 === (l = i.tag) || 6 === l) { + r = o = i + continue e + } + s = s.parentNode + } + } + r = r.return + } + !(function (e, t, n) { + if (Me) return e() + Me = !0 + try { + return Re(e, t, n) + } finally { + ;((Me = !1), Fe()) + } + })(function () { + var r = o, + a = Se(n), + i = [] + e: { + var s = Nt.get(e) + if (void 0 !== s) { + var l = dn, + u = e + switch (e) { + case 'keypress': + if (0 === rn(n)) break e + case 'keydown': + case 'keyup': + l = Cn + break + case 'focusin': + ;((u = 'focus'), (l = yn)) + break + case 'focusout': + ;((u = 'blur'), (l = yn)) + break + case 'beforeblur': + case 'afterblur': + l = yn + break + case 'click': + if (2 === n.button) break e + case 'auxclick': + case 'dblclick': + case 'mousedown': + case 'mousemove': + case 'mouseup': + case 'mouseout': + case 'mouseover': + case 'contextmenu': + l = gn + break + case 'drag': + case 'dragend': + case 'dragenter': + case 'dragexit': + case 'dragleave': + case 'dragover': + case 'dragstart': + case 'drop': + l = vn + break + case 'touchcancel': + case 'touchend': + case 'touchmove': + case 'touchstart': + l = Nn + break + case Pt: + case Ot: + case Ct: + l = bn + break + case jt: + l = In + break + case 'scroll': + l = hn + break + case 'wheel': + l = An + break + case 'copy': + case 'cut': + case 'paste': + l = _n + break + case 'gotpointercapture': + case 'lostpointercapture': + case 'pointercancel': + case 'pointerdown': + case 'pointermove': + case 'pointerout': + case 'pointerover': + case 'pointerup': + l = jn + } + var c = 0 != (4 & t), + f = !c && 'scroll' === e, + d = c ? (null !== s ? s + 'Capture' : null) : s + c = [] + for (var p, h = r; null !== h; ) { + var m = (p = h).stateNode + if ((5 === p.tag && null !== m && ((p = m), null !== d && null != (m = ze(h, d)) && c.push(Rr(h, m, p))), f)) break + h = h.return + } + 0 < c.length && ((s = new l(s, u, null, n, a)), i.push({ event: s, listeners: c })) + } + } + if (0 == (7 & t)) { + if ( + ((l = 'mouseout' === e || 'pointerout' === e), + (!(s = 'mouseover' === e || 'pointerover' === e) || 0 != (16 & t) || !(u = n.relatedTarget || n.fromElement) || (!ta(u) && !u[Xr])) && + (l || s) && + ((s = a.window === a ? a : (s = a.ownerDocument) ? s.defaultView || s.parentWindow : window), + l + ? ((l = r), + null !== (u = (u = n.relatedTarget || n.toElement) ? ta(u) : null) && + (u !== (f = Ge(u)) || (5 !== u.tag && 6 !== u.tag)) && + (u = null)) + : ((l = null), (u = r)), + l !== u)) + ) { + if ( + ((c = gn), + (m = 'onMouseLeave'), + (d = 'onMouseEnter'), + (h = 'mouse'), + ('pointerout' !== e && 'pointerover' !== e) || ((c = jn), (m = 'onPointerLeave'), (d = 'onPointerEnter'), (h = 'pointer')), + (f = null == l ? s : ra(l)), + (p = null == u ? s : ra(u)), + ((s = new c(m, h + 'leave', l, n, a)).target = f), + (s.relatedTarget = p), + (m = null), + ta(a) === r && (((c = new c(d, h + 'enter', u, n, a)).target = p), (c.relatedTarget = f), (m = c)), + (f = m), + l && u) + ) + e: { + for (d = u, h = 0, p = c = l; p; p = Mr(p)) h++ + for (p = 0, m = d; m; m = Mr(m)) p++ + for (; 0 < h - p; ) ((c = Mr(c)), h--) + for (; 0 < p - h; ) ((d = Mr(d)), p--) + for (; h--; ) { + if (c === d || (null !== d && c === d.alternate)) break e + ;((c = Mr(c)), (d = Mr(d))) + } + c = null + } + else c = null + ;(null !== l && Fr(i, s, l, c, !1), null !== u && null !== f && Fr(i, f, u, c, !0)) + } + if ('select' === (l = (s = r ? ra(r) : window).nodeName && s.nodeName.toLowerCase()) || ('input' === l && 'file' === s.type)) var g = Zn + else if (Wn(s)) + if (Xn) g = lr + else { + g = ir + var v = or + } + else (l = s.nodeName) && 'input' === l.toLowerCase() && ('checkbox' === s.type || 'radio' === s.type) && (g = sr) + switch ( + (g && (g = g(e, r)) + ? Kn(i, g, n, a) + : (v && v(e, s, r), 'focusout' === e && (v = s._wrapperState) && v.controlled && 'number' === s.type && ae(s, 'number', s.value)), + (v = r ? ra(r) : window), + e) + ) { + case 'focusin': + ;(Wn(v) || 'true' === v.contentEditable) && ((yr = v), (br = r), (wr = null)) + break + case 'focusout': + wr = br = yr = null + break + case 'mousedown': + _r = !0 + break + case 'contextmenu': + case 'mouseup': + case 'dragend': + ;((_r = !1), xr(i, n, a)) + break + case 'selectionchange': + if (vr) break + case 'keydown': + case 'keyup': + xr(i, n, a) + } + var y + if (Dn) + e: { + switch (e) { + case 'compositionstart': + var b = 'onCompositionStart' + break e + case 'compositionend': + b = 'onCompositionEnd' + break e + case 'compositionupdate': + b = 'onCompositionUpdate' + break e + } + b = void 0 + } + else Bn ? Un(e, n) && (b = 'onCompositionEnd') : 'keydown' === e && 229 === n.keyCode && (b = 'onCompositionStart') + ;(b && + (zn && + 'ko' !== n.locale && + (Bn || 'onCompositionStart' !== b + ? 'onCompositionEnd' === b && Bn && (y = nn()) + : ((en = 'value' in (Xt = a) ? Xt.value : Xt.textContent), (Bn = !0))), + 0 < (v = Dr(r, b)).length && + ((b = new xn(b, e, null, n, a)), i.push({ event: b, listeners: v }), (y || null !== (y = qn(n))) && (b.data = y))), + (y = Fn + ? (function (e, t) { + switch (e) { + case 'compositionend': + return qn(t) + case 'keypress': + return 32 !== t.which ? null : ((Vn = !0), Ln) + case 'textInput': + return (e = t.data) === Ln && Vn ? null : e + default: + return null + } + })(e, n) + : (function (e, t) { + if (Bn) return 'compositionend' === e || (!Dn && Un(e, t)) ? ((e = nn()), (tn = en = Xt = null), (Bn = !1), e) : null + switch (e) { + case 'paste': + default: + return null + case 'keypress': + if (!(t.ctrlKey || t.altKey || t.metaKey) || (t.ctrlKey && t.altKey)) { + if (t.char && 1 < t.char.length) return t.char + if (t.which) return String.fromCharCode(t.which) + } + return null + case 'compositionend': + return zn && 'ko' !== t.locale ? null : t.data + } + })(e, n)) && + 0 < (r = Dr(r, 'onBeforeInput')).length && + ((a = new xn('onBeforeInput', 'beforeinput', null, n, a)), i.push({ event: a, listeners: r }), (a.data = y))) + } + Or(i, t) + }) + } + function Rr(e, t, n) { + return { instance: e, listener: t, currentTarget: n } + } + function Dr(e, t) { + for (var n = t + 'Capture', r = []; null !== e; ) { + var a = e, + o = a.stateNode + ;(5 === a.tag && null !== o && ((a = o), null != (o = ze(e, n)) && r.unshift(Rr(e, o, a)), null != (o = ze(e, t)) && r.push(Rr(e, o, a))), + (e = e.return)) + } + return r + } + function Mr(e) { + if (null === e) return null + do { + e = e.return + } while (e && 5 !== e.tag) + return e || null + } + function Fr(e, t, n, r, a) { + for (var o = t._reactName, i = []; null !== n && n !== r; ) { + var s = n, + l = s.alternate, + u = s.stateNode + if (null !== l && l === r) break + ;(5 === s.tag && + null !== u && + ((s = u), a ? null != (l = ze(n, o)) && i.unshift(Rr(n, l, s)) : a || (null != (l = ze(n, o)) && i.push(Rr(n, l, s)))), + (n = n.return)) + } + 0 !== i.length && e.push({ event: t, listeners: i }) + } + function zr() {} + var Lr = null, + Vr = null + function Ur(e, t) { + switch (e) { + case 'button': + case 'input': + case 'select': + case 'textarea': + return !!t.autoFocus + } + return !1 + } + function qr(e, t) { + return ( + 'textarea' === e || + 'option' === e || + 'noscript' === e || + 'string' == typeof t.children || + 'number' == typeof t.children || + ('object' == typeof t.dangerouslySetInnerHTML && null !== t.dangerouslySetInnerHTML && null != t.dangerouslySetInnerHTML.__html) + ) + } + var Br = 'function' == typeof setTimeout ? setTimeout : void 0, + Hr = 'function' == typeof clearTimeout ? clearTimeout : void 0 + function Wr(e) { + ;(1 === e.nodeType || (9 === e.nodeType && null != (e = e.body))) && (e.textContent = '') + } + function Kr(e) { + for (; null != e; e = e.nextSibling) { + var t = e.nodeType + if (1 === t || 3 === t) break + } + return e + } + function Qr(e) { + e = e.previousSibling + for (var t = 0; e; ) { + if (8 === e.nodeType) { + var n = e.data + if ('$' === n || '$!' === n || '$?' === n) { + if (0 === t) return e + t-- + } else '/$' === n && t++ + } + e = e.previousSibling + } + return null + } + var Gr = 0, + Jr = Math.random().toString(36).slice(2), + Yr = '__reactFiber$' + Jr, + Zr = '__reactProps$' + Jr, + Xr = '__reactContainer$' + Jr, + ea = '__reactEvents$' + Jr + function ta(e) { + var t = e[Yr] + if (t) return t + for (var n = e.parentNode; n; ) { + if ((t = n[Xr] || n[Yr])) { + if (((n = t.alternate), null !== t.child || (null !== n && null !== n.child))) + for (e = Qr(e); null !== e; ) { + if ((n = e[Yr])) return n + e = Qr(e) + } + return t + } + n = (e = n).parentNode + } + return null + } + function na(e) { + return !(e = e[Yr] || e[Xr]) || (5 !== e.tag && 6 !== e.tag && 13 !== e.tag && 3 !== e.tag) ? null : e + } + function ra(e) { + if (5 === e.tag || 6 === e.tag) return e.stateNode + throw Error(i(33)) + } + function aa(e) { + return e[Zr] || null + } + function oa(e) { + var t = e[ea] + return (void 0 === t && (t = e[ea] = new Set()), t) + } + var ia = [], + sa = -1 + function la(e) { + return { current: e } + } + function ua(e) { + 0 > sa || ((e.current = ia[sa]), (ia[sa] = null), sa--) + } + function ca(e, t) { + ;(sa++, (ia[sa] = e.current), (e.current = t)) + } + var fa = {}, + da = la(fa), + pa = la(!1), + ha = fa + function ma(e, t) { + var n = e.type.contextTypes + if (!n) return fa + var r = e.stateNode + if (r && r.__reactInternalMemoizedUnmaskedChildContext === t) return r.__reactInternalMemoizedMaskedChildContext + var a, + o = {} + for (a in n) o[a] = t[a] + return (r && (((e = e.stateNode).__reactInternalMemoizedUnmaskedChildContext = t), (e.__reactInternalMemoizedMaskedChildContext = o)), o) + } + function ga(e) { + return null != e.childContextTypes + } + function va() { + ;(ua(pa), ua(da)) + } + function ya(e, t, n) { + if (da.current !== fa) throw Error(i(168)) + ;(ca(da, t), ca(pa, n)) + } + function ba(e, t, n) { + var r = e.stateNode + if (((e = t.childContextTypes), 'function' != typeof r.getChildContext)) return n + for (var o in (r = r.getChildContext())) if (!(o in e)) throw Error(i(108, K(t) || 'Unknown', o)) + return a({}, n, r) + } + function wa(e) { + return ( + (e = ((e = e.stateNode) && e.__reactInternalMemoizedMergedChildContext) || fa), + (ha = da.current), + ca(da, e), + ca(pa, pa.current), + !0 + ) + } + function _a(e, t, n) { + var r = e.stateNode + if (!r) throw Error(i(169)) + ;(n ? ((e = ba(e, t, ha)), (r.__reactInternalMemoizedMergedChildContext = e), ua(pa), ua(da), ca(da, e)) : ua(pa), ca(pa, n)) + } + var xa = null, + Ea = null, + ka = o.unstable_runWithPriority, + Sa = o.unstable_scheduleCallback, + $a = o.unstable_cancelCallback, + Pa = o.unstable_shouldYield, + Oa = o.unstable_requestPaint, + Ca = o.unstable_now, + ja = o.unstable_getCurrentPriorityLevel, + Na = o.unstable_ImmediatePriority, + Ia = o.unstable_UserBlockingPriority, + Ta = o.unstable_NormalPriority, + Aa = o.unstable_LowPriority, + Ra = o.unstable_IdlePriority, + Da = {}, + Ma = void 0 !== Oa ? Oa : function () {}, + Fa = null, + za = null, + La = !1, + Va = Ca(), + Ua = + 1e4 > Va + ? Ca + : function () { + return Ca() - Va + } + function qa() { + switch (ja()) { + case Na: + return 99 + case Ia: + return 98 + case Ta: + return 97 + case Aa: + return 96 + case Ra: + return 95 + default: + throw Error(i(332)) + } + } + function Ba(e) { + switch (e) { + case 99: + return Na + case 98: + return Ia + case 97: + return Ta + case 96: + return Aa + case 95: + return Ra + default: + throw Error(i(332)) + } + } + function Ha(e, t) { + return ((e = Ba(e)), ka(e, t)) + } + function Wa(e, t, n) { + return ((e = Ba(e)), Sa(e, t, n)) + } + function Ka() { + if (null !== za) { + var e = za + ;((za = null), $a(e)) + } + Qa() + } + function Qa() { + if (!La && null !== Fa) { + La = !0 + var e = 0 + try { + var t = Fa + ;(Ha(99, function () { + for (; e < t.length; e++) { + var n = t[e] + do { + n = n(!0) + } while (null !== n) + } + }), + (Fa = null)) + } catch (t) { + throw (null !== Fa && (Fa = Fa.slice(e + 1)), Sa(Na, Ka), t) + } finally { + La = !1 + } + } + } + var Ga = _.ReactCurrentBatchConfig + function Ja(e, t) { + if (e && e.defaultProps) { + for (var n in ((t = a({}, t)), (e = e.defaultProps))) void 0 === t[n] && (t[n] = e[n]) + return t + } + return t + } + var Ya = la(null), + Za = null, + Xa = null, + eo = null + function to() { + eo = Xa = Za = null + } + function no(e) { + var t = Ya.current + ;(ua(Ya), (e.type._context._currentValue = t)) + } + function ro(e, t) { + for (; null !== e; ) { + var n = e.alternate + if ((e.childLanes & t) === t) { + if (null === n || (n.childLanes & t) === t) break + n.childLanes |= t + } else ((e.childLanes |= t), null !== n && (n.childLanes |= t)) + e = e.return + } + } + function ao(e, t) { + ;((Za = e), + (eo = Xa = null), + null !== (e = e.dependencies) && null !== e.firstContext && (0 != (e.lanes & t) && (Di = !0), (e.firstContext = null))) + } + function oo(e, t) { + if (eo !== e && !1 !== t && 0 !== t) + if ( + (('number' == typeof t && 1073741823 !== t) || ((eo = e), (t = 1073741823)), + (t = { context: e, observedBits: t, next: null }), + null === Xa) + ) { + if (null === Za) throw Error(i(308)) + ;((Xa = t), (Za.dependencies = { lanes: 0, firstContext: t, responders: null })) + } else Xa = Xa.next = t + return e._currentValue + } + var io = !1 + function so(e) { + e.updateQueue = { baseState: e.memoizedState, firstBaseUpdate: null, lastBaseUpdate: null, shared: { pending: null }, effects: null } + } + function lo(e, t) { + ;((e = e.updateQueue), + t.updateQueue === e && + (t.updateQueue = { + baseState: e.baseState, + firstBaseUpdate: e.firstBaseUpdate, + lastBaseUpdate: e.lastBaseUpdate, + shared: e.shared, + effects: e.effects, + })) + } + function uo(e, t) { + return { eventTime: e, lane: t, tag: 0, payload: null, callback: null, next: null } + } + function co(e, t) { + if (null !== (e = e.updateQueue)) { + var n = (e = e.shared).pending + ;(null === n ? (t.next = t) : ((t.next = n.next), (n.next = t)), (e.pending = t)) + } + } + function fo(e, t) { + var n = e.updateQueue, + r = e.alternate + if (null !== r && n === (r = r.updateQueue)) { + var a = null, + o = null + if (null !== (n = n.firstBaseUpdate)) { + do { + var i = { eventTime: n.eventTime, lane: n.lane, tag: n.tag, payload: n.payload, callback: n.callback, next: null } + ;(null === o ? (a = o = i) : (o = o.next = i), (n = n.next)) + } while (null !== n) + null === o ? (a = o = t) : (o = o.next = t) + } else a = o = t + return ( + (n = { baseState: r.baseState, firstBaseUpdate: a, lastBaseUpdate: o, shared: r.shared, effects: r.effects }), + void (e.updateQueue = n) + ) + } + ;(null === (e = n.lastBaseUpdate) ? (n.firstBaseUpdate = t) : (e.next = t), (n.lastBaseUpdate = t)) + } + function po(e, t, n, r) { + var o = e.updateQueue + io = !1 + var i = o.firstBaseUpdate, + s = o.lastBaseUpdate, + l = o.shared.pending + if (null !== l) { + o.shared.pending = null + var u = l, + c = u.next + ;((u.next = null), null === s ? (i = c) : (s.next = c), (s = u)) + var f = e.alternate + if (null !== f) { + var d = (f = f.updateQueue).lastBaseUpdate + d !== s && (null === d ? (f.firstBaseUpdate = c) : (d.next = c), (f.lastBaseUpdate = u)) + } + } + if (null !== i) { + for (d = o.baseState, s = 0, f = c = u = null; ; ) { + l = i.lane + var p = i.eventTime + if ((r & l) === l) { + null !== f && (f = f.next = { eventTime: p, lane: 0, tag: i.tag, payload: i.payload, callback: i.callback, next: null }) + e: { + var h = e, + m = i + switch (((l = t), (p = n), m.tag)) { + case 1: + if ('function' == typeof (h = m.payload)) { + d = h.call(p, d, l) + break e + } + d = h + break e + case 3: + h.flags = (-4097 & h.flags) | 64 + case 0: + if (null == (l = 'function' == typeof (h = m.payload) ? h.call(p, d, l) : h)) break e + d = a({}, d, l) + break e + case 2: + io = !0 + } + } + null !== i.callback && ((e.flags |= 32), null === (l = o.effects) ? (o.effects = [i]) : l.push(i)) + } else + ((p = { eventTime: p, lane: l, tag: i.tag, payload: i.payload, callback: i.callback, next: null }), + null === f ? ((c = f = p), (u = d)) : (f = f.next = p), + (s |= l)) + if (null === (i = i.next)) { + if (null === (l = o.shared.pending)) break + ;((i = l.next), (l.next = null), (o.lastBaseUpdate = l), (o.shared.pending = null)) + } + } + ;(null === f && (u = d), + (o.baseState = u), + (o.firstBaseUpdate = c), + (o.lastBaseUpdate = f), + (zs |= s), + (e.lanes = s), + (e.memoizedState = d)) + } + } + function ho(e, t, n) { + if (((e = t.effects), (t.effects = null), null !== e)) + for (t = 0; t < e.length; t++) { + var r = e[t], + a = r.callback + if (null !== a) { + if (((r.callback = null), (r = n), 'function' != typeof a)) throw Error(i(191, a)) + a.call(r) + } + } + } + var mo = new r.Component().refs + function go(e, t, n, r) { + ;((n = null == (n = n(r, (t = e.memoizedState))) ? t : a({}, t, n)), (e.memoizedState = n), 0 === e.lanes && (e.updateQueue.baseState = n)) + } + var vo = { + isMounted: function (e) { + return !!(e = e._reactInternals) && Ge(e) === e + }, + enqueueSetState: function (e, t, n) { + e = e._reactInternals + var r = cl(), + a = fl(e), + o = uo(r, a) + ;((o.payload = t), null != n && (o.callback = n), co(e, o), dl(e, a, r)) + }, + enqueueReplaceState: function (e, t, n) { + e = e._reactInternals + var r = cl(), + a = fl(e), + o = uo(r, a) + ;((o.tag = 1), (o.payload = t), null != n && (o.callback = n), co(e, o), dl(e, a, r)) + }, + enqueueForceUpdate: function (e, t) { + e = e._reactInternals + var n = cl(), + r = fl(e), + a = uo(n, r) + ;((a.tag = 2), null != t && (a.callback = t), co(e, a), dl(e, r, n)) + }, + } + function yo(e, t, n, r, a, o, i) { + return 'function' == typeof (e = e.stateNode).shouldComponentUpdate + ? e.shouldComponentUpdate(r, o, i) + : !(t.prototype && t.prototype.isPureReactComponent && fr(n, r) && fr(a, o)) + } + function bo(e, t, n) { + var r = !1, + a = fa, + o = t.contextType + return ( + 'object' == typeof o && null !== o + ? (o = oo(o)) + : ((a = ga(t) ? ha : da.current), (o = (r = null != (r = t.contextTypes)) ? ma(e, a) : fa)), + (t = new t(n, o)), + (e.memoizedState = null !== t.state && void 0 !== t.state ? t.state : null), + (t.updater = vo), + (e.stateNode = t), + (t._reactInternals = e), + r && (((e = e.stateNode).__reactInternalMemoizedUnmaskedChildContext = a), (e.__reactInternalMemoizedMaskedChildContext = o)), + t + ) + } + function wo(e, t, n, r) { + ;((e = t.state), + 'function' == typeof t.componentWillReceiveProps && t.componentWillReceiveProps(n, r), + 'function' == typeof t.UNSAFE_componentWillReceiveProps && t.UNSAFE_componentWillReceiveProps(n, r), + t.state !== e && vo.enqueueReplaceState(t, t.state, null)) + } + function _o(e, t, n, r) { + var a = e.stateNode + ;((a.props = n), (a.state = e.memoizedState), (a.refs = mo), so(e)) + var o = t.contextType + ;('object' == typeof o && null !== o ? (a.context = oo(o)) : ((o = ga(t) ? ha : da.current), (a.context = ma(e, o))), + po(e, n, a, r), + (a.state = e.memoizedState), + 'function' == typeof (o = t.getDerivedStateFromProps) && (go(e, t, o, n), (a.state = e.memoizedState)), + 'function' == typeof t.getDerivedStateFromProps || + 'function' == typeof a.getSnapshotBeforeUpdate || + ('function' != typeof a.UNSAFE_componentWillMount && 'function' != typeof a.componentWillMount) || + ((t = a.state), + 'function' == typeof a.componentWillMount && a.componentWillMount(), + 'function' == typeof a.UNSAFE_componentWillMount && a.UNSAFE_componentWillMount(), + t !== a.state && vo.enqueueReplaceState(a, a.state, null), + po(e, n, a, r), + (a.state = e.memoizedState)), + 'function' == typeof a.componentDidMount && (e.flags |= 4)) + } + var xo = Array.isArray + function Eo(e, t, n) { + if (null !== (e = n.ref) && 'function' != typeof e && 'object' != typeof e) { + if (n._owner) { + if ((n = n._owner)) { + if (1 !== n.tag) throw Error(i(309)) + var r = n.stateNode + } + if (!r) throw Error(i(147, e)) + var a = '' + e + return null !== t && null !== t.ref && 'function' == typeof t.ref && t.ref._stringRef === a + ? t.ref + : ((t = function (e) { + var t = r.refs + ;(t === mo && (t = r.refs = {}), null === e ? delete t[a] : (t[a] = e)) + }), + (t._stringRef = a), + t) + } + if ('string' != typeof e) throw Error(i(284)) + if (!n._owner) throw Error(i(290, e)) + } + return e + } + function ko(e, t) { + if ('textarea' !== e.type) + throw Error(i(31, '[object Object]' === Object.prototype.toString.call(t) ? 'object with keys {' + Object.keys(t).join(', ') + '}' : t)) + } + function So(e) { + function t(t, n) { + if (e) { + var r = t.lastEffect + ;(null !== r ? ((r.nextEffect = n), (t.lastEffect = n)) : (t.firstEffect = t.lastEffect = n), (n.nextEffect = null), (n.flags = 8)) + } + } + function n(n, r) { + if (!e) return null + for (; null !== r; ) (t(n, r), (r = r.sibling)) + return null + } + function r(e, t) { + for (e = new Map(); null !== t; ) (null !== t.key ? e.set(t.key, t) : e.set(t.index, t), (t = t.sibling)) + return e + } + function a(e, t) { + return (((e = Bl(e, t)).index = 0), (e.sibling = null), e) + } + function o(t, n, r) { + return ((t.index = r), e ? (null !== (r = t.alternate) ? ((r = r.index) < n ? ((t.flags = 2), n) : r) : ((t.flags = 2), n)) : n) + } + function s(t) { + return (e && null === t.alternate && (t.flags = 2), t) + } + function l(e, t, n, r) { + return null === t || 6 !== t.tag ? (((t = Ql(n, e.mode, r)).return = e), t) : (((t = a(t, n)).return = e), t) + } + function u(e, t, n, r) { + return null !== t && t.elementType === n.type + ? (((r = a(t, n.props)).ref = Eo(e, t, n)), (r.return = e), r) + : (((r = Hl(n.type, n.key, n.props, null, e.mode, r)).ref = Eo(e, t, n)), (r.return = e), r) + } + function c(e, t, n, r) { + return null === t || 4 !== t.tag || t.stateNode.containerInfo !== n.containerInfo || t.stateNode.implementation !== n.implementation + ? (((t = Gl(n, e.mode, r)).return = e), t) + : (((t = a(t, n.children || [])).return = e), t) + } + function f(e, t, n, r, o) { + return null === t || 7 !== t.tag ? (((t = Wl(n, e.mode, r, o)).return = e), t) : (((t = a(t, n)).return = e), t) + } + function d(e, t, n) { + if ('string' == typeof t || 'number' == typeof t) return (((t = Ql('' + t, e.mode, n)).return = e), t) + if ('object' == typeof t && null !== t) { + switch (t.$$typeof) { + case x: + return (((n = Hl(t.type, t.key, t.props, null, e.mode, n)).ref = Eo(e, null, t)), (n.return = e), n) + case E: + return (((t = Gl(t, e.mode, n)).return = e), t) + } + if (xo(t) || U(t)) return (((t = Wl(t, e.mode, n, null)).return = e), t) + ko(e, t) + } + return null + } + function p(e, t, n, r) { + var a = null !== t ? t.key : null + if ('string' == typeof n || 'number' == typeof n) return null !== a ? null : l(e, t, '' + n, r) + if ('object' == typeof n && null !== n) { + switch (n.$$typeof) { + case x: + return n.key === a ? (n.type === k ? f(e, t, n.props.children, r, a) : u(e, t, n, r)) : null + case E: + return n.key === a ? c(e, t, n, r) : null + } + if (xo(n) || U(n)) return null !== a ? null : f(e, t, n, r, null) + ko(e, n) + } + return null + } + function h(e, t, n, r, a) { + if ('string' == typeof r || 'number' == typeof r) return l(t, (e = e.get(n) || null), '' + r, a) + if ('object' == typeof r && null !== r) { + switch (r.$$typeof) { + case x: + return ((e = e.get(null === r.key ? n : r.key) || null), r.type === k ? f(t, e, r.props.children, a, r.key) : u(t, e, r, a)) + case E: + return c(t, (e = e.get(null === r.key ? n : r.key) || null), r, a) + } + if (xo(r) || U(r)) return f(t, (e = e.get(n) || null), r, a, null) + ko(t, r) + } + return null + } + function m(a, i, s, l) { + for (var u = null, c = null, f = i, m = (i = 0), g = null; null !== f && m < s.length; m++) { + f.index > m ? ((g = f), (f = null)) : (g = f.sibling) + var v = p(a, f, s[m], l) + if (null === v) { + null === f && (f = g) + break + } + ;(e && f && null === v.alternate && t(a, f), (i = o(v, i, m)), null === c ? (u = v) : (c.sibling = v), (c = v), (f = g)) + } + if (m === s.length) return (n(a, f), u) + if (null === f) { + for (; m < s.length; m++) null !== (f = d(a, s[m], l)) && ((i = o(f, i, m)), null === c ? (u = f) : (c.sibling = f), (c = f)) + return u + } + for (f = r(a, f); m < s.length; m++) + null !== (g = h(f, a, m, s[m], l)) && + (e && null !== g.alternate && f.delete(null === g.key ? m : g.key), (i = o(g, i, m)), null === c ? (u = g) : (c.sibling = g), (c = g)) + return ( + e && + f.forEach(function (e) { + return t(a, e) + }), + u + ) + } + function g(a, s, l, u) { + var c = U(l) + if ('function' != typeof c) throw Error(i(150)) + if (null == (l = c.call(l))) throw Error(i(151)) + for (var f = (c = null), m = s, g = (s = 0), v = null, y = l.next(); null !== m && !y.done; g++, y = l.next()) { + m.index > g ? ((v = m), (m = null)) : (v = m.sibling) + var b = p(a, m, y.value, u) + if (null === b) { + null === m && (m = v) + break + } + ;(e && m && null === b.alternate && t(a, m), (s = o(b, s, g)), null === f ? (c = b) : (f.sibling = b), (f = b), (m = v)) + } + if (y.done) return (n(a, m), c) + if (null === m) { + for (; !y.done; g++, y = l.next()) + null !== (y = d(a, y.value, u)) && ((s = o(y, s, g)), null === f ? (c = y) : (f.sibling = y), (f = y)) + return c + } + for (m = r(a, m); !y.done; g++, y = l.next()) + null !== (y = h(m, a, g, y.value, u)) && + (e && null !== y.alternate && m.delete(null === y.key ? g : y.key), (s = o(y, s, g)), null === f ? (c = y) : (f.sibling = y), (f = y)) + return ( + e && + m.forEach(function (e) { + return t(a, e) + }), + c + ) + } + return function (e, r, o, l) { + var u = 'object' == typeof o && null !== o && o.type === k && null === o.key + u && (o = o.props.children) + var c = 'object' == typeof o && null !== o + if (c) + switch (o.$$typeof) { + case x: + e: { + for (c = o.key, u = r; null !== u; ) { + if (u.key === c) { + if (7 === u.tag) { + if (o.type === k) { + ;(n(e, u.sibling), ((r = a(u, o.props.children)).return = e), (e = r)) + break e + } + } else if (u.elementType === o.type) { + ;(n(e, u.sibling), ((r = a(u, o.props)).ref = Eo(e, u, o)), (r.return = e), (e = r)) + break e + } + n(e, u) + break + } + ;(t(e, u), (u = u.sibling)) + } + o.type === k + ? (((r = Wl(o.props.children, e.mode, l, o.key)).return = e), (e = r)) + : (((l = Hl(o.type, o.key, o.props, null, e.mode, l)).ref = Eo(e, r, o)), (l.return = e), (e = l)) + } + return s(e) + case E: + e: { + for (u = o.key; null !== r; ) { + if (r.key === u) { + if (4 === r.tag && r.stateNode.containerInfo === o.containerInfo && r.stateNode.implementation === o.implementation) { + ;(n(e, r.sibling), ((r = a(r, o.children || [])).return = e), (e = r)) + break e + } + n(e, r) + break + } + ;(t(e, r), (r = r.sibling)) + } + ;(((r = Gl(o, e.mode, l)).return = e), (e = r)) + } + return s(e) + } + if ('string' == typeof o || 'number' == typeof o) + return ( + (o = '' + o), + null !== r && 6 === r.tag + ? (n(e, r.sibling), ((r = a(r, o)).return = e), (e = r)) + : (n(e, r), ((r = Ql(o, e.mode, l)).return = e), (e = r)), + s(e) + ) + if (xo(o)) return m(e, r, o, l) + if (U(o)) return g(e, r, o, l) + if ((c && ko(e, o), void 0 === o && !u)) + switch (e.tag) { + case 1: + case 22: + case 0: + case 11: + case 15: + throw Error(i(152, K(e.type) || 'Component')) + } + return n(e, r) + } + } + var $o = So(!0), + Po = So(!1), + Oo = {}, + Co = la(Oo), + jo = la(Oo), + No = la(Oo) + function Io(e) { + if (e === Oo) throw Error(i(174)) + return e + } + function To(e, t) { + switch ((ca(No, t), ca(jo, e), ca(Co, Oo), (e = t.nodeType))) { + case 9: + case 11: + t = (t = t.documentElement) ? t.namespaceURI : pe(null, '') + break + default: + t = pe((t = (e = 8 === e ? t.parentNode : t).namespaceURI || null), (e = e.tagName)) + } + ;(ua(Co), ca(Co, t)) + } + function Ao() { + ;(ua(Co), ua(jo), ua(No)) + } + function Ro(e) { + Io(No.current) + var t = Io(Co.current), + n = pe(t, e.type) + t !== n && (ca(jo, e), ca(Co, n)) + } + function Do(e) { + jo.current === e && (ua(Co), ua(jo)) + } + var Mo = la(0) + function Fo(e) { + for (var t = e; null !== t; ) { + if (13 === t.tag) { + var n = t.memoizedState + if (null !== n && (null === (n = n.dehydrated) || '$?' === n.data || '$!' === n.data)) return t + } else if (19 === t.tag && void 0 !== t.memoizedProps.revealOrder) { + if (0 != (64 & t.flags)) return t + } else if (null !== t.child) { + ;((t.child.return = t), (t = t.child)) + continue + } + if (t === e) break + for (; null === t.sibling; ) { + if (null === t.return || t.return === e) return null + t = t.return + } + ;((t.sibling.return = t.return), (t = t.sibling)) + } + return null + } + var zo = null, + Lo = null, + Vo = !1 + function Uo(e, t) { + var n = Ul(5, null, null, 0) + ;((n.elementType = 'DELETED'), + (n.type = 'DELETED'), + (n.stateNode = t), + (n.return = e), + (n.flags = 8), + null !== e.lastEffect ? ((e.lastEffect.nextEffect = n), (e.lastEffect = n)) : (e.firstEffect = e.lastEffect = n)) + } + function qo(e, t) { + switch (e.tag) { + case 5: + var n = e.type + return null !== (t = 1 !== t.nodeType || n.toLowerCase() !== t.nodeName.toLowerCase() ? null : t) && ((e.stateNode = t), !0) + case 6: + return null !== (t = '' === e.pendingProps || 3 !== t.nodeType ? null : t) && ((e.stateNode = t), !0) + default: + return !1 + } + } + function Bo(e) { + if (Vo) { + var t = Lo + if (t) { + var n = t + if (!qo(e, t)) { + if (!(t = Kr(n.nextSibling)) || !qo(e, t)) return ((e.flags = (-1025 & e.flags) | 2), (Vo = !1), void (zo = e)) + Uo(zo, n) + } + ;((zo = e), (Lo = Kr(t.firstChild))) + } else ((e.flags = (-1025 & e.flags) | 2), (Vo = !1), (zo = e)) + } + } + function Ho(e) { + for (e = e.return; null !== e && 5 !== e.tag && 3 !== e.tag && 13 !== e.tag; ) e = e.return + zo = e + } + function Wo(e) { + if (e !== zo) return !1 + if (!Vo) return (Ho(e), (Vo = !0), !1) + var t = e.type + if (5 !== e.tag || ('head' !== t && 'body' !== t && !qr(t, e.memoizedProps))) for (t = Lo; t; ) (Uo(e, t), (t = Kr(t.nextSibling))) + if ((Ho(e), 13 === e.tag)) { + if (!(e = null !== (e = e.memoizedState) ? e.dehydrated : null)) throw Error(i(317)) + e: { + for (e = e.nextSibling, t = 0; e; ) { + if (8 === e.nodeType) { + var n = e.data + if ('/$' === n) { + if (0 === t) { + Lo = Kr(e.nextSibling) + break e + } + t-- + } else ('$' !== n && '$!' !== n && '$?' !== n) || t++ + } + e = e.nextSibling + } + Lo = null + } + } else Lo = zo ? Kr(e.stateNode.nextSibling) : null + return !0 + } + function Ko() { + ;((Lo = zo = null), (Vo = !1)) + } + var Qo = [] + function Go() { + for (var e = 0; e < Qo.length; e++) Qo[e]._workInProgressVersionPrimary = null + Qo.length = 0 + } + var Jo = _.ReactCurrentDispatcher, + Yo = _.ReactCurrentBatchConfig, + Zo = 0, + Xo = null, + ei = null, + ti = null, + ni = !1, + ri = !1 + function ai() { + throw Error(i(321)) + } + function oi(e, t) { + if (null === t) return !1 + for (var n = 0; n < t.length && n < e.length; n++) if (!ur(e[n], t[n])) return !1 + return !0 + } + function ii(e, t, n, r, a, o) { + if ( + ((Zo = o), + (Xo = t), + (t.memoizedState = null), + (t.updateQueue = null), + (t.lanes = 0), + (Jo.current = null === e || null === e.memoizedState ? Ii : Ti), + (e = n(r, a)), + ri) + ) { + o = 0 + do { + if (((ri = !1), !(25 > o))) throw Error(i(301)) + ;((o += 1), (ti = ei = null), (t.updateQueue = null), (Jo.current = Ai), (e = n(r, a))) + } while (ri) + } + if (((Jo.current = Ni), (t = null !== ei && null !== ei.next), (Zo = 0), (ti = ei = Xo = null), (ni = !1), t)) throw Error(i(300)) + return e + } + function si() { + var e = { memoizedState: null, baseState: null, baseQueue: null, queue: null, next: null } + return (null === ti ? (Xo.memoizedState = ti = e) : (ti = ti.next = e), ti) + } + function li() { + if (null === ei) { + var e = Xo.alternate + e = null !== e ? e.memoizedState : null + } else e = ei.next + var t = null === ti ? Xo.memoizedState : ti.next + if (null !== t) ((ti = t), (ei = e)) + else { + if (null === e) throw Error(i(310)) + ;((e = { memoizedState: (ei = e).memoizedState, baseState: ei.baseState, baseQueue: ei.baseQueue, queue: ei.queue, next: null }), + null === ti ? (Xo.memoizedState = ti = e) : (ti = ti.next = e)) + } + return ti + } + function ui(e, t) { + return 'function' == typeof t ? t(e) : t + } + function ci(e) { + var t = li(), + n = t.queue + if (null === n) throw Error(i(311)) + n.lastRenderedReducer = e + var r = ei, + a = r.baseQueue, + o = n.pending + if (null !== o) { + if (null !== a) { + var s = a.next + ;((a.next = o.next), (o.next = s)) + } + ;((r.baseQueue = a = o), (n.pending = null)) + } + if (null !== a) { + ;((a = a.next), (r = r.baseState)) + var l = (s = o = null), + u = a + do { + var c = u.lane + if ((Zo & c) === c) + (null !== l && (l = l.next = { lane: 0, action: u.action, eagerReducer: u.eagerReducer, eagerState: u.eagerState, next: null }), + (r = u.eagerReducer === e ? u.eagerState : e(r, u.action))) + else { + var f = { lane: c, action: u.action, eagerReducer: u.eagerReducer, eagerState: u.eagerState, next: null } + ;(null === l ? ((s = l = f), (o = r)) : (l = l.next = f), (Xo.lanes |= c), (zs |= c)) + } + u = u.next + } while (null !== u && u !== a) + ;(null === l ? (o = r) : (l.next = s), + ur(r, t.memoizedState) || (Di = !0), + (t.memoizedState = r), + (t.baseState = o), + (t.baseQueue = l), + (n.lastRenderedState = r)) + } + return [t.memoizedState, n.dispatch] + } + function fi(e) { + var t = li(), + n = t.queue + if (null === n) throw Error(i(311)) + n.lastRenderedReducer = e + var r = n.dispatch, + a = n.pending, + o = t.memoizedState + if (null !== a) { + n.pending = null + var s = (a = a.next) + do { + ;((o = e(o, s.action)), (s = s.next)) + } while (s !== a) + ;(ur(o, t.memoizedState) || (Di = !0), (t.memoizedState = o), null === t.baseQueue && (t.baseState = o), (n.lastRenderedState = o)) + } + return [o, r] + } + function di(e, t, n) { + var r = t._getVersion + r = r(t._source) + var a = t._workInProgressVersionPrimary + if ( + (null !== a ? (e = a === r) : ((e = e.mutableReadLanes), (e = (Zo & e) === e) && ((t._workInProgressVersionPrimary = r), Qo.push(t))), e) + ) + return n(t._source) + throw (Qo.push(t), Error(i(350))) + } + function pi(e, t, n, r) { + var a = Ns + if (null === a) throw Error(i(349)) + var o = t._getVersion, + s = o(t._source), + l = Jo.current, + u = l.useState(function () { + return di(a, t, n) + }), + c = u[1], + f = u[0] + u = ti + var d = e.memoizedState, + p = d.refs, + h = p.getSnapshot, + m = d.source + d = d.subscribe + var g = Xo + return ( + (e.memoizedState = { refs: p, source: t, subscribe: r }), + l.useEffect( + function () { + ;((p.getSnapshot = n), (p.setSnapshot = c)) + var e = o(t._source) + if (!ur(s, e)) { + ;((e = n(t._source)), + ur(f, e) || (c(e), (e = fl(g)), (a.mutableReadLanes |= e & a.pendingLanes)), + (e = a.mutableReadLanes), + (a.entangledLanes |= e)) + for (var r = a.entanglements, i = e; 0 < i; ) { + var l = 31 - qt(i), + u = 1 << l + ;((r[l] |= e), (i &= ~u)) + } + } + }, + [n, t, r], + ), + l.useEffect( + function () { + return r(t._source, function () { + var e = p.getSnapshot, + n = p.setSnapshot + try { + n(e(t._source)) + var r = fl(g) + a.mutableReadLanes |= r & a.pendingLanes + } catch (e) { + n(function () { + throw e + }) + } + }) + }, + [t, r], + ), + (ur(h, n) && ur(m, t) && ur(d, r)) || + (((e = { pending: null, dispatch: null, lastRenderedReducer: ui, lastRenderedState: f }).dispatch = c = ji.bind(null, Xo, e)), + (u.queue = e), + (u.baseQueue = null), + (f = di(a, t, n)), + (u.memoizedState = u.baseState = f)), + f + ) + } + function hi(e, t, n) { + return pi(li(), e, t, n) + } + function mi(e) { + var t = si() + return ( + 'function' == typeof e && (e = e()), + (t.memoizedState = t.baseState = e), + (e = (e = t.queue = { pending: null, dispatch: null, lastRenderedReducer: ui, lastRenderedState: e }).dispatch = ji.bind(null, Xo, e)), + [t.memoizedState, e] + ) + } + function gi(e, t, n, r) { + return ( + (e = { tag: e, create: t, destroy: n, deps: r, next: null }), + null === (t = Xo.updateQueue) + ? ((t = { lastEffect: null }), (Xo.updateQueue = t), (t.lastEffect = e.next = e)) + : null === (n = t.lastEffect) + ? (t.lastEffect = e.next = e) + : ((r = n.next), (n.next = e), (e.next = r), (t.lastEffect = e)), + e + ) + } + function vi(e) { + return ((e = { current: e }), (si().memoizedState = e)) + } + function yi() { + return li().memoizedState + } + function bi(e, t, n, r) { + var a = si() + ;((Xo.flags |= e), (a.memoizedState = gi(1 | t, n, void 0, void 0 === r ? null : r))) + } + function wi(e, t, n, r) { + var a = li() + r = void 0 === r ? null : r + var o = void 0 + if (null !== ei) { + var i = ei.memoizedState + if (((o = i.destroy), null !== r && oi(r, i.deps))) return void gi(t, n, o, r) + } + ;((Xo.flags |= e), (a.memoizedState = gi(1 | t, n, o, r))) + } + function _i(e, t) { + return bi(516, 4, e, t) + } + function xi(e, t) { + return wi(516, 4, e, t) + } + function Ei(e, t) { + return wi(4, 2, e, t) + } + function ki(e, t) { + return 'function' == typeof t + ? ((e = e()), + t(e), + function () { + t(null) + }) + : null != t + ? ((e = e()), + (t.current = e), + function () { + t.current = null + }) + : void 0 + } + function Si(e, t, n) { + return ((n = null != n ? n.concat([e]) : null), wi(4, 2, ki.bind(null, t, e), n)) + } + function $i() {} + function Pi(e, t) { + var n = li() + t = void 0 === t ? null : t + var r = n.memoizedState + return null !== r && null !== t && oi(t, r[1]) ? r[0] : ((n.memoizedState = [e, t]), e) + } + function Oi(e, t) { + var n = li() + t = void 0 === t ? null : t + var r = n.memoizedState + return null !== r && null !== t && oi(t, r[1]) ? r[0] : ((e = e()), (n.memoizedState = [e, t]), e) + } + function Ci(e, t) { + var n = qa() + ;(Ha(98 > n ? 98 : n, function () { + e(!0) + }), + Ha(97 < n ? 97 : n, function () { + var n = Yo.transition + Yo.transition = 1 + try { + ;(e(!1), t()) + } finally { + Yo.transition = n + } + })) + } + function ji(e, t, n) { + var r = cl(), + a = fl(e), + o = { lane: a, action: n, eagerReducer: null, eagerState: null, next: null }, + i = t.pending + if ( + (null === i ? (o.next = o) : ((o.next = i.next), (i.next = o)), (t.pending = o), (i = e.alternate), e === Xo || (null !== i && i === Xo)) + ) + ri = ni = !0 + else { + if (0 === e.lanes && (null === i || 0 === i.lanes) && null !== (i = t.lastRenderedReducer)) + try { + var s = t.lastRenderedState, + l = i(s, n) + if (((o.eagerReducer = i), (o.eagerState = l), ur(l, s))) return + } catch (e) {} + dl(e, a, r) + } + } + var Ni = { + readContext: oo, + useCallback: ai, + useContext: ai, + useEffect: ai, + useImperativeHandle: ai, + useLayoutEffect: ai, + useMemo: ai, + useReducer: ai, + useRef: ai, + useState: ai, + useDebugValue: ai, + useDeferredValue: ai, + useTransition: ai, + useMutableSource: ai, + useOpaqueIdentifier: ai, + unstable_isNewReconciler: !1, + }, + Ii = { + readContext: oo, + useCallback: function (e, t) { + return ((si().memoizedState = [e, void 0 === t ? null : t]), e) + }, + useContext: oo, + useEffect: _i, + useImperativeHandle: function (e, t, n) { + return ((n = null != n ? n.concat([e]) : null), bi(4, 2, ki.bind(null, t, e), n)) + }, + useLayoutEffect: function (e, t) { + return bi(4, 2, e, t) + }, + useMemo: function (e, t) { + var n = si() + return ((t = void 0 === t ? null : t), (e = e()), (n.memoizedState = [e, t]), e) + }, + useReducer: function (e, t, n) { + var r = si() + return ( + (t = void 0 !== n ? n(t) : t), + (r.memoizedState = r.baseState = t), + (e = (e = r.queue = { pending: null, dispatch: null, lastRenderedReducer: e, lastRenderedState: t }).dispatch = ji.bind(null, Xo, e)), + [r.memoizedState, e] + ) + }, + useRef: vi, + useState: mi, + useDebugValue: $i, + useDeferredValue: function (e) { + var t = mi(e), + n = t[0], + r = t[1] + return ( + _i( + function () { + var t = Yo.transition + Yo.transition = 1 + try { + r(e) + } finally { + Yo.transition = t + } + }, + [e], + ), + n + ) + }, + useTransition: function () { + var e = mi(!1), + t = e[0] + return (vi((e = Ci.bind(null, e[1]))), [e, t]) + }, + useMutableSource: function (e, t, n) { + var r = si() + return ((r.memoizedState = { refs: { getSnapshot: t, setSnapshot: null }, source: e, subscribe: n }), pi(r, e, t, n)) + }, + useOpaqueIdentifier: function () { + if (Vo) { + var e = !1, + t = (function (e) { + return { $$typeof: R, toString: e, valueOf: e } + })(function () { + throw (e || ((e = !0), n('r:' + (Gr++).toString(36))), Error(i(355))) + }), + n = mi(t)[1] + return ( + 0 == (2 & Xo.mode) && + ((Xo.flags |= 516), + gi( + 5, + function () { + n('r:' + (Gr++).toString(36)) + }, + void 0, + null, + )), + t + ) + } + return (mi((t = 'r:' + (Gr++).toString(36))), t) + }, + unstable_isNewReconciler: !1, + }, + Ti = { + readContext: oo, + useCallback: Pi, + useContext: oo, + useEffect: xi, + useImperativeHandle: Si, + useLayoutEffect: Ei, + useMemo: Oi, + useReducer: ci, + useRef: yi, + useState: function () { + return ci(ui) + }, + useDebugValue: $i, + useDeferredValue: function (e) { + var t = ci(ui), + n = t[0], + r = t[1] + return ( + xi( + function () { + var t = Yo.transition + Yo.transition = 1 + try { + r(e) + } finally { + Yo.transition = t + } + }, + [e], + ), + n + ) + }, + useTransition: function () { + var e = ci(ui)[0] + return [yi().current, e] + }, + useMutableSource: hi, + useOpaqueIdentifier: function () { + return ci(ui)[0] + }, + unstable_isNewReconciler: !1, + }, + Ai = { + readContext: oo, + useCallback: Pi, + useContext: oo, + useEffect: xi, + useImperativeHandle: Si, + useLayoutEffect: Ei, + useMemo: Oi, + useReducer: fi, + useRef: yi, + useState: function () { + return fi(ui) + }, + useDebugValue: $i, + useDeferredValue: function (e) { + var t = fi(ui), + n = t[0], + r = t[1] + return ( + xi( + function () { + var t = Yo.transition + Yo.transition = 1 + try { + r(e) + } finally { + Yo.transition = t + } + }, + [e], + ), + n + ) + }, + useTransition: function () { + var e = fi(ui)[0] + return [yi().current, e] + }, + useMutableSource: hi, + useOpaqueIdentifier: function () { + return fi(ui)[0] + }, + unstable_isNewReconciler: !1, + }, + Ri = _.ReactCurrentOwner, + Di = !1 + function Mi(e, t, n, r) { + t.child = null === e ? Po(t, null, n, r) : $o(t, e.child, n, r) + } + function Fi(e, t, n, r, a) { + n = n.render + var o = t.ref + return ( + ao(t, a), + (r = ii(e, t, n, r, o, a)), + null === e || Di + ? ((t.flags |= 1), Mi(e, t, r, a), t.child) + : ((t.updateQueue = e.updateQueue), (t.flags &= -517), (e.lanes &= ~a), rs(e, t, a)) + ) + } + function zi(e, t, n, r, a, o) { + if (null === e) { + var i = n.type + return 'function' != typeof i || ql(i) || void 0 !== i.defaultProps || null !== n.compare || void 0 !== n.defaultProps + ? (((e = Hl(n.type, null, r, t, t.mode, o)).ref = t.ref), (e.return = t), (t.child = e)) + : ((t.tag = 15), (t.type = i), Li(e, t, i, r, a, o)) + } + return ( + (i = e.child), + 0 == (a & o) && ((a = i.memoizedProps), (n = null !== (n = n.compare) ? n : fr)(a, r) && e.ref === t.ref) + ? rs(e, t, o) + : ((t.flags |= 1), ((e = Bl(i, r)).ref = t.ref), (e.return = t), (t.child = e)) + ) + } + function Li(e, t, n, r, a, o) { + if (null !== e && fr(e.memoizedProps, r) && e.ref === t.ref) { + if (((Di = !1), 0 == (o & a))) return ((t.lanes = e.lanes), rs(e, t, o)) + 0 != (16384 & e.flags) && (Di = !0) + } + return qi(e, t, n, r, o) + } + function Vi(e, t, n) { + var r = t.pendingProps, + a = r.children, + o = null !== e ? e.memoizedState : null + if ('hidden' === r.mode || 'unstable-defer-without-hiding' === r.mode) + if (0 == (4 & t.mode)) ((t.memoizedState = { baseLanes: 0 }), wl(0, n)) + else { + if (0 == (1073741824 & n)) + return ( + (e = null !== o ? o.baseLanes | n : n), + (t.lanes = t.childLanes = 1073741824), + (t.memoizedState = { baseLanes: e }), + wl(0, e), + null + ) + ;((t.memoizedState = { baseLanes: 0 }), wl(0, null !== o ? o.baseLanes : n)) + } + else (null !== o ? ((r = o.baseLanes | n), (t.memoizedState = null)) : (r = n), wl(0, r)) + return (Mi(e, t, a, n), t.child) + } + function Ui(e, t) { + var n = t.ref + ;((null === e && null !== n) || (null !== e && e.ref !== n)) && (t.flags |= 128) + } + function qi(e, t, n, r, a) { + var o = ga(n) ? ha : da.current + return ( + (o = ma(t, o)), + ao(t, a), + (n = ii(e, t, n, r, o, a)), + null === e || Di + ? ((t.flags |= 1), Mi(e, t, n, a), t.child) + : ((t.updateQueue = e.updateQueue), (t.flags &= -517), (e.lanes &= ~a), rs(e, t, a)) + ) + } + function Bi(e, t, n, r, a) { + if (ga(n)) { + var o = !0 + wa(t) + } else o = !1 + if ((ao(t, a), null === t.stateNode)) + (null !== e && ((e.alternate = null), (t.alternate = null), (t.flags |= 2)), bo(t, n, r), _o(t, n, r, a), (r = !0)) + else if (null === e) { + var i = t.stateNode, + s = t.memoizedProps + i.props = s + var l = i.context, + u = n.contextType + u = 'object' == typeof u && null !== u ? oo(u) : ma(t, (u = ga(n) ? ha : da.current)) + var c = n.getDerivedStateFromProps, + f = 'function' == typeof c || 'function' == typeof i.getSnapshotBeforeUpdate + ;(f || + ('function' != typeof i.UNSAFE_componentWillReceiveProps && 'function' != typeof i.componentWillReceiveProps) || + ((s !== r || l !== u) && wo(t, i, r, u)), + (io = !1)) + var d = t.memoizedState + ;((i.state = d), + po(t, r, i, a), + (l = t.memoizedState), + s !== r || d !== l || pa.current || io + ? ('function' == typeof c && (go(t, n, c, r), (l = t.memoizedState)), + (s = io || yo(t, n, s, r, d, l, u)) + ? (f || + ('function' != typeof i.UNSAFE_componentWillMount && 'function' != typeof i.componentWillMount) || + ('function' == typeof i.componentWillMount && i.componentWillMount(), + 'function' == typeof i.UNSAFE_componentWillMount && i.UNSAFE_componentWillMount()), + 'function' == typeof i.componentDidMount && (t.flags |= 4)) + : ('function' == typeof i.componentDidMount && (t.flags |= 4), (t.memoizedProps = r), (t.memoizedState = l)), + (i.props = r), + (i.state = l), + (i.context = u), + (r = s)) + : ('function' == typeof i.componentDidMount && (t.flags |= 4), (r = !1))) + } else { + ;((i = t.stateNode), + lo(e, t), + (s = t.memoizedProps), + (u = t.type === t.elementType ? s : Ja(t.type, s)), + (i.props = u), + (f = t.pendingProps), + (d = i.context), + (l = 'object' == typeof (l = n.contextType) && null !== l ? oo(l) : ma(t, (l = ga(n) ? ha : da.current)))) + var p = n.getDerivedStateFromProps + ;((c = 'function' == typeof p || 'function' == typeof i.getSnapshotBeforeUpdate) || + ('function' != typeof i.UNSAFE_componentWillReceiveProps && 'function' != typeof i.componentWillReceiveProps) || + ((s !== f || d !== l) && wo(t, i, r, l)), + (io = !1), + (d = t.memoizedState), + (i.state = d), + po(t, r, i, a)) + var h = t.memoizedState + s !== f || d !== h || pa.current || io + ? ('function' == typeof p && (go(t, n, p, r), (h = t.memoizedState)), + (u = io || yo(t, n, u, r, d, h, l)) + ? (c || + ('function' != typeof i.UNSAFE_componentWillUpdate && 'function' != typeof i.componentWillUpdate) || + ('function' == typeof i.componentWillUpdate && i.componentWillUpdate(r, h, l), + 'function' == typeof i.UNSAFE_componentWillUpdate && i.UNSAFE_componentWillUpdate(r, h, l)), + 'function' == typeof i.componentDidUpdate && (t.flags |= 4), + 'function' == typeof i.getSnapshotBeforeUpdate && (t.flags |= 256)) + : ('function' != typeof i.componentDidUpdate || (s === e.memoizedProps && d === e.memoizedState) || (t.flags |= 4), + 'function' != typeof i.getSnapshotBeforeUpdate || (s === e.memoizedProps && d === e.memoizedState) || (t.flags |= 256), + (t.memoizedProps = r), + (t.memoizedState = h)), + (i.props = r), + (i.state = h), + (i.context = l), + (r = u)) + : ('function' != typeof i.componentDidUpdate || (s === e.memoizedProps && d === e.memoizedState) || (t.flags |= 4), + 'function' != typeof i.getSnapshotBeforeUpdate || (s === e.memoizedProps && d === e.memoizedState) || (t.flags |= 256), + (r = !1)) + } + return Hi(e, t, n, r, o, a) + } + function Hi(e, t, n, r, a, o) { + Ui(e, t) + var i = 0 != (64 & t.flags) + if (!r && !i) return (a && _a(t, n, !1), rs(e, t, o)) + ;((r = t.stateNode), (Ri.current = t)) + var s = i && 'function' != typeof n.getDerivedStateFromError ? null : r.render() + return ( + (t.flags |= 1), + null !== e && i ? ((t.child = $o(t, e.child, null, o)), (t.child = $o(t, null, s, o))) : Mi(e, t, s, o), + (t.memoizedState = r.state), + a && _a(t, n, !0), + t.child + ) + } + function Wi(e) { + var t = e.stateNode + ;(t.pendingContext ? ya(0, t.pendingContext, t.pendingContext !== t.context) : t.context && ya(0, t.context, !1), To(e, t.containerInfo)) + } + var Ki, + Qi, + Gi, + Ji, + Yi = { dehydrated: null, retryLane: 0 } + function Zi(e, t, n) { + var r, + a = t.pendingProps, + o = Mo.current, + i = !1 + return ( + (r = 0 != (64 & t.flags)) || (r = (null === e || null !== e.memoizedState) && 0 != (2 & o)), + r + ? ((i = !0), (t.flags &= -65)) + : (null !== e && null === e.memoizedState) || void 0 === a.fallback || !0 === a.unstable_avoidThisFallback || (o |= 1), + ca(Mo, 1 & o), + null === e + ? (void 0 !== a.fallback && Bo(t), + (e = a.children), + (o = a.fallback), + i + ? ((e = Xi(t, e, o, n)), (t.child.memoizedState = { baseLanes: n }), (t.memoizedState = Yi), e) + : 'number' == typeof a.unstable_expectedLoadTime + ? ((e = Xi(t, e, o, n)), (t.child.memoizedState = { baseLanes: n }), (t.memoizedState = Yi), (t.lanes = 33554432), e) + : (((n = Kl({ mode: 'visible', children: e }, t.mode, n, null)).return = t), (t.child = n))) + : (e.memoizedState, + i + ? ((a = (function (e, t, n, r, a) { + var o = t.mode, + i = e.child + e = i.sibling + var s = { mode: 'hidden', children: n } + return ( + 0 == (2 & o) && t.child !== i + ? (((n = t.child).childLanes = 0), + (n.pendingProps = s), + null !== (i = n.lastEffect) + ? ((t.firstEffect = n.firstEffect), (t.lastEffect = i), (i.nextEffect = null)) + : (t.firstEffect = t.lastEffect = null)) + : (n = Bl(i, s)), + null !== e ? (r = Bl(e, r)) : ((r = Wl(r, o, a, null)).flags |= 2), + (r.return = t), + (n.return = t), + (n.sibling = r), + (t.child = n), + r + ) + })(e, t, a.children, a.fallback, n)), + (i = t.child), + (o = e.child.memoizedState), + (i.memoizedState = null === o ? { baseLanes: n } : { baseLanes: o.baseLanes | n }), + (i.childLanes = e.childLanes & ~n), + (t.memoizedState = Yi), + a) + : ((n = (function (e, t, n, r) { + var a = e.child + return ( + (e = a.sibling), + (n = Bl(a, { mode: 'visible', children: n })), + 0 == (2 & t.mode) && (n.lanes = r), + (n.return = t), + (n.sibling = null), + null !== e && ((e.nextEffect = null), (e.flags = 8), (t.firstEffect = t.lastEffect = e)), + (t.child = n) + ) + })(e, t, a.children, n)), + (t.memoizedState = null), + n)) + ) + } + function Xi(e, t, n, r) { + var a = e.mode, + o = e.child + return ( + (t = { mode: 'hidden', children: t }), + 0 == (2 & a) && null !== o ? ((o.childLanes = 0), (o.pendingProps = t)) : (o = Kl(t, a, 0, null)), + (n = Wl(n, a, r, null)), + (o.return = e), + (n.return = e), + (o.sibling = n), + (e.child = o), + n + ) + } + function es(e, t) { + e.lanes |= t + var n = e.alternate + ;(null !== n && (n.lanes |= t), ro(e.return, t)) + } + function ts(e, t, n, r, a, o) { + var i = e.memoizedState + null === i + ? (e.memoizedState = { isBackwards: t, rendering: null, renderingStartTime: 0, last: r, tail: n, tailMode: a, lastEffect: o }) + : ((i.isBackwards = t), + (i.rendering = null), + (i.renderingStartTime = 0), + (i.last = r), + (i.tail = n), + (i.tailMode = a), + (i.lastEffect = o)) + } + function ns(e, t, n) { + var r = t.pendingProps, + a = r.revealOrder, + o = r.tail + if ((Mi(e, t, r.children, n), 0 != (2 & (r = Mo.current)))) ((r = (1 & r) | 2), (t.flags |= 64)) + else { + if (null !== e && 0 != (64 & e.flags)) + e: for (e = t.child; null !== e; ) { + if (13 === e.tag) null !== e.memoizedState && es(e, n) + else if (19 === e.tag) es(e, n) + else if (null !== e.child) { + ;((e.child.return = e), (e = e.child)) + continue + } + if (e === t) break e + for (; null === e.sibling; ) { + if (null === e.return || e.return === t) break e + e = e.return + } + ;((e.sibling.return = e.return), (e = e.sibling)) + } + r &= 1 + } + if ((ca(Mo, r), 0 == (2 & t.mode))) t.memoizedState = null + else + switch (a) { + case 'forwards': + for (n = t.child, a = null; null !== n; ) (null !== (e = n.alternate) && null === Fo(e) && (a = n), (n = n.sibling)) + ;(null === (n = a) ? ((a = t.child), (t.child = null)) : ((a = n.sibling), (n.sibling = null)), ts(t, !1, a, n, o, t.lastEffect)) + break + case 'backwards': + for (n = null, a = t.child, t.child = null; null !== a; ) { + if (null !== (e = a.alternate) && null === Fo(e)) { + t.child = a + break + } + ;((e = a.sibling), (a.sibling = n), (n = a), (a = e)) + } + ts(t, !0, n, null, o, t.lastEffect) + break + case 'together': + ts(t, !1, null, null, void 0, t.lastEffect) + break + default: + t.memoizedState = null + } + return t.child + } + function rs(e, t, n) { + if ((null !== e && (t.dependencies = e.dependencies), (zs |= t.lanes), 0 != (n & t.childLanes))) { + if (null !== e && t.child !== e.child) throw Error(i(153)) + if (null !== t.child) { + for (n = Bl((e = t.child), e.pendingProps), t.child = n, n.return = t; null !== e.sibling; ) + ((e = e.sibling), ((n = n.sibling = Bl(e, e.pendingProps)).return = t)) + n.sibling = null + } + return t.child + } + return null + } + function as(e, t) { + if (!Vo) + switch (e.tailMode) { + case 'hidden': + t = e.tail + for (var n = null; null !== t; ) (null !== t.alternate && (n = t), (t = t.sibling)) + null === n ? (e.tail = null) : (n.sibling = null) + break + case 'collapsed': + n = e.tail + for (var r = null; null !== n; ) (null !== n.alternate && (r = n), (n = n.sibling)) + null === r ? (t || null === e.tail ? (e.tail = null) : (e.tail.sibling = null)) : (r.sibling = null) + } + } + function os(e, t, n) { + var r = t.pendingProps + switch (t.tag) { + case 2: + case 16: + case 15: + case 0: + case 11: + case 7: + case 8: + case 12: + case 9: + case 14: + return null + case 1: + case 17: + return (ga(t.type) && va(), null) + case 3: + return ( + Ao(), + ua(pa), + ua(da), + Go(), + (r = t.stateNode).pendingContext && ((r.context = r.pendingContext), (r.pendingContext = null)), + (null !== e && null !== e.child) || (Wo(t) ? (t.flags |= 4) : r.hydrate || (t.flags |= 256)), + Qi(t), + null + ) + case 5: + Do(t) + var o = Io(No.current) + if (((n = t.type), null !== e && null != t.stateNode)) (Gi(e, t, n, r, o), e.ref !== t.ref && (t.flags |= 128)) + else { + if (!r) { + if (null === t.stateNode) throw Error(i(166)) + return null + } + if (((e = Io(Co.current)), Wo(t))) { + ;((r = t.stateNode), (n = t.type)) + var s = t.memoizedProps + switch (((r[Yr] = t), (r[Zr] = s), n)) { + case 'dialog': + ;(Cr('cancel', r), Cr('close', r)) + break + case 'iframe': + case 'object': + case 'embed': + Cr('load', r) + break + case 'video': + case 'audio': + for (e = 0; e < Sr.length; e++) Cr(Sr[e], r) + break + case 'source': + Cr('error', r) + break + case 'img': + case 'image': + case 'link': + ;(Cr('error', r), Cr('load', r)) + break + case 'details': + Cr('toggle', r) + break + case 'input': + ;(ee(r, s), Cr('invalid', r)) + break + case 'select': + ;((r._wrapperState = { wasMultiple: !!s.multiple }), Cr('invalid', r)) + break + case 'textarea': + ;(le(r, s), Cr('invalid', r)) + } + for (var u in (Ee(n, s), (e = null), s)) + s.hasOwnProperty(u) && + ((o = s[u]), + 'children' === u + ? 'string' == typeof o + ? r.textContent !== o && (e = ['children', o]) + : 'number' == typeof o && r.textContent !== '' + o && (e = ['children', '' + o]) + : l.hasOwnProperty(u) && null != o && 'onScroll' === u && Cr('scroll', r)) + switch (n) { + case 'input': + ;(J(r), re(r, s, !0)) + break + case 'textarea': + ;(J(r), ce(r)) + break + case 'select': + case 'option': + break + default: + 'function' == typeof s.onClick && (r.onclick = zr) + } + ;((r = e), (t.updateQueue = r), null !== r && (t.flags |= 4)) + } else { + switch ( + ((u = 9 === o.nodeType ? o : o.ownerDocument), + e === fe.html && (e = de(n)), + e === fe.html + ? 'script' === n + ? (((e = u.createElement('div')).innerHTML = '<script><\/script>'), (e = e.removeChild(e.firstChild))) + : 'string' == typeof r.is + ? (e = u.createElement(n, { is: r.is })) + : ((e = u.createElement(n)), 'select' === n && ((u = e), r.multiple ? (u.multiple = !0) : r.size && (u.size = r.size))) + : (e = u.createElementNS(e, n)), + (e[Yr] = t), + (e[Zr] = r), + Ki(e, t, !1, !1), + (t.stateNode = e), + (u = ke(n, r)), + n) + ) { + case 'dialog': + ;(Cr('cancel', e), Cr('close', e), (o = r)) + break + case 'iframe': + case 'object': + case 'embed': + ;(Cr('load', e), (o = r)) + break + case 'video': + case 'audio': + for (o = 0; o < Sr.length; o++) Cr(Sr[o], e) + o = r + break + case 'source': + ;(Cr('error', e), (o = r)) + break + case 'img': + case 'image': + case 'link': + ;(Cr('error', e), Cr('load', e), (o = r)) + break + case 'details': + ;(Cr('toggle', e), (o = r)) + break + case 'input': + ;(ee(e, r), (o = X(e, r)), Cr('invalid', e)) + break + case 'option': + o = oe(e, r) + break + case 'select': + ;((e._wrapperState = { wasMultiple: !!r.multiple }), (o = a({}, r, { value: void 0 })), Cr('invalid', e)) + break + case 'textarea': + ;(le(e, r), (o = se(e, r)), Cr('invalid', e)) + break + default: + o = r + } + Ee(n, o) + var c = o + for (s in c) + if (c.hasOwnProperty(s)) { + var f = c[s] + 'style' === s + ? _e(e, f) + : 'dangerouslySetInnerHTML' === s + ? null != (f = f ? f.__html : void 0) && ge(e, f) + : 'children' === s + ? 'string' == typeof f + ? ('textarea' !== n || '' !== f) && ve(e, f) + : 'number' == typeof f && ve(e, '' + f) + : 'suppressContentEditableWarning' !== s && + 'suppressHydrationWarning' !== s && + 'autoFocus' !== s && + (l.hasOwnProperty(s) ? null != f && 'onScroll' === s && Cr('scroll', e) : null != f && w(e, s, f, u)) + } + switch (n) { + case 'input': + ;(J(e), re(e, r, !1)) + break + case 'textarea': + ;(J(e), ce(e)) + break + case 'option': + null != r.value && e.setAttribute('value', '' + Q(r.value)) + break + case 'select': + ;((e.multiple = !!r.multiple), + null != (s = r.value) ? ie(e, !!r.multiple, s, !1) : null != r.defaultValue && ie(e, !!r.multiple, r.defaultValue, !0)) + break + default: + 'function' == typeof o.onClick && (e.onclick = zr) + } + Ur(n, r) && (t.flags |= 4) + } + null !== t.ref && (t.flags |= 128) + } + return null + case 6: + if (e && null != t.stateNode) Ji(e, t, e.memoizedProps, r) + else { + if ('string' != typeof r && null === t.stateNode) throw Error(i(166)) + ;((n = Io(No.current)), + Io(Co.current), + Wo(t) + ? ((r = t.stateNode), (n = t.memoizedProps), (r[Yr] = t), r.nodeValue !== n && (t.flags |= 4)) + : (((r = (9 === n.nodeType ? n : n.ownerDocument).createTextNode(r))[Yr] = t), (t.stateNode = r))) + } + return null + case 13: + return ( + ua(Mo), + (r = t.memoizedState), + 0 != (64 & t.flags) + ? ((t.lanes = n), t) + : ((r = null !== r), + (n = !1), + null === e ? void 0 !== t.memoizedProps.fallback && Wo(t) : (n = null !== e.memoizedState), + r && + !n && + 0 != (2 & t.mode) && + ((null === e && !0 !== t.memoizedProps.unstable_avoidThisFallback) || 0 != (1 & Mo.current) + ? 0 === Ds && (Ds = 3) + : ((0 !== Ds && 3 !== Ds) || (Ds = 4), null === Ns || (0 == (134217727 & zs) && 0 == (134217727 & Ls)) || gl(Ns, Ts))), + (r || n) && (t.flags |= 4), + null) + ) + case 4: + return (Ao(), Qi(t), null === e && Nr(t.stateNode.containerInfo), null) + case 10: + return (no(t), null) + case 19: + if ((ua(Mo), null === (r = t.memoizedState))) return null + if (((s = 0 != (64 & t.flags)), null === (u = r.rendering))) + if (s) as(r, !1) + else { + if (0 !== Ds || (null !== e && 0 != (64 & e.flags))) + for (e = t.child; null !== e; ) { + if (null !== (u = Fo(e))) { + for ( + t.flags |= 64, + as(r, !1), + null !== (s = u.updateQueue) && ((t.updateQueue = s), (t.flags |= 4)), + null === r.lastEffect && (t.firstEffect = null), + t.lastEffect = r.lastEffect, + r = n, + n = t.child; + null !== n; + ) + ((e = r), + ((s = n).flags &= 2), + (s.nextEffect = null), + (s.firstEffect = null), + (s.lastEffect = null), + null === (u = s.alternate) + ? ((s.childLanes = 0), + (s.lanes = e), + (s.child = null), + (s.memoizedProps = null), + (s.memoizedState = null), + (s.updateQueue = null), + (s.dependencies = null), + (s.stateNode = null)) + : ((s.childLanes = u.childLanes), + (s.lanes = u.lanes), + (s.child = u.child), + (s.memoizedProps = u.memoizedProps), + (s.memoizedState = u.memoizedState), + (s.updateQueue = u.updateQueue), + (s.type = u.type), + (e = u.dependencies), + (s.dependencies = null === e ? null : { lanes: e.lanes, firstContext: e.firstContext })), + (n = n.sibling)) + return (ca(Mo, (1 & Mo.current) | 2), t.child) + } + e = e.sibling + } + null !== r.tail && Ua() > Bs && ((t.flags |= 64), (s = !0), as(r, !1), (t.lanes = 33554432)) + } + else { + if (!s) + if (null !== (e = Fo(u))) { + if ( + ((t.flags |= 64), + (s = !0), + null !== (n = e.updateQueue) && ((t.updateQueue = n), (t.flags |= 4)), + as(r, !0), + null === r.tail && 'hidden' === r.tailMode && !u.alternate && !Vo) + ) + return (null !== (t = t.lastEffect = r.lastEffect) && (t.nextEffect = null), null) + } else 2 * Ua() - r.renderingStartTime > Bs && 1073741824 !== n && ((t.flags |= 64), (s = !0), as(r, !1), (t.lanes = 33554432)) + r.isBackwards ? ((u.sibling = t.child), (t.child = u)) : (null !== (n = r.last) ? (n.sibling = u) : (t.child = u), (r.last = u)) + } + return null !== r.tail + ? ((n = r.tail), + (r.rendering = n), + (r.tail = n.sibling), + (r.lastEffect = t.lastEffect), + (r.renderingStartTime = Ua()), + (n.sibling = null), + (t = Mo.current), + ca(Mo, s ? (1 & t) | 2 : 1 & t), + n) + : null + case 23: + case 24: + return ( + _l(), + null !== e && + (null !== e.memoizedState) != (null !== t.memoizedState) && + 'unstable-defer-without-hiding' !== r.mode && + (t.flags |= 4), + null + ) + } + throw Error(i(156, t.tag)) + } + function is(e) { + switch (e.tag) { + case 1: + ga(e.type) && va() + var t = e.flags + return 4096 & t ? ((e.flags = (-4097 & t) | 64), e) : null + case 3: + if ((Ao(), ua(pa), ua(da), Go(), 0 != (64 & (t = e.flags)))) throw Error(i(285)) + return ((e.flags = (-4097 & t) | 64), e) + case 5: + return (Do(e), null) + case 13: + return (ua(Mo), 4096 & (t = e.flags) ? ((e.flags = (-4097 & t) | 64), e) : null) + case 19: + return (ua(Mo), null) + case 4: + return (Ao(), null) + case 10: + return (no(e), null) + case 23: + case 24: + return (_l(), null) + default: + return null + } + } + function ss(e, t) { + try { + var n = '', + r = t + do { + ;((n += W(r)), (r = r.return)) + } while (r) + var a = n + } catch (e) { + a = '\nError generating stack: ' + e.message + '\n' + e.stack + } + return { value: e, source: t, stack: a } + } + function ls(e, t) { + try { + console.error(t.value) + } catch (e) { + setTimeout(function () { + throw e + }) + } + } + ;((Ki = function (e, t) { + for (var n = t.child; null !== n; ) { + if (5 === n.tag || 6 === n.tag) e.appendChild(n.stateNode) + else if (4 !== n.tag && null !== n.child) { + ;((n.child.return = n), (n = n.child)) + continue + } + if (n === t) break + for (; null === n.sibling; ) { + if (null === n.return || n.return === t) return + n = n.return + } + ;((n.sibling.return = n.return), (n = n.sibling)) + } + }), + (Qi = function () {}), + (Gi = function (e, t, n, r) { + var o = e.memoizedProps + if (o !== r) { + ;((e = t.stateNode), Io(Co.current)) + var i, + s = null + switch (n) { + case 'input': + ;((o = X(e, o)), (r = X(e, r)), (s = [])) + break + case 'option': + ;((o = oe(e, o)), (r = oe(e, r)), (s = [])) + break + case 'select': + ;((o = a({}, o, { value: void 0 })), (r = a({}, r, { value: void 0 })), (s = [])) + break + case 'textarea': + ;((o = se(e, o)), (r = se(e, r)), (s = [])) + break + default: + 'function' != typeof o.onClick && 'function' == typeof r.onClick && (e.onclick = zr) + } + for (f in (Ee(n, r), (n = null), o)) + if (!r.hasOwnProperty(f) && o.hasOwnProperty(f) && null != o[f]) + if ('style' === f) { + var u = o[f] + for (i in u) u.hasOwnProperty(i) && (n || (n = {}), (n[i] = '')) + } else + 'dangerouslySetInnerHTML' !== f && + 'children' !== f && + 'suppressContentEditableWarning' !== f && + 'suppressHydrationWarning' !== f && + 'autoFocus' !== f && + (l.hasOwnProperty(f) ? s || (s = []) : (s = s || []).push(f, null)) + for (f in r) { + var c = r[f] + if (((u = null != o ? o[f] : void 0), r.hasOwnProperty(f) && c !== u && (null != c || null != u))) + if ('style' === f) + if (u) { + for (i in u) !u.hasOwnProperty(i) || (c && c.hasOwnProperty(i)) || (n || (n = {}), (n[i] = '')) + for (i in c) c.hasOwnProperty(i) && u[i] !== c[i] && (n || (n = {}), (n[i] = c[i])) + } else (n || (s || (s = []), s.push(f, n)), (n = c)) + else + 'dangerouslySetInnerHTML' === f + ? ((c = c ? c.__html : void 0), (u = u ? u.__html : void 0), null != c && u !== c && (s = s || []).push(f, c)) + : 'children' === f + ? ('string' != typeof c && 'number' != typeof c) || (s = s || []).push(f, '' + c) + : 'suppressContentEditableWarning' !== f && + 'suppressHydrationWarning' !== f && + (l.hasOwnProperty(f) + ? (null != c && 'onScroll' === f && Cr('scroll', e), s || u === c || (s = [])) + : 'object' == typeof c && null !== c && c.$$typeof === R + ? c.toString() + : (s = s || []).push(f, c)) + } + n && (s = s || []).push('style', n) + var f = s + ;(t.updateQueue = f) && (t.flags |= 4) + } + }), + (Ji = function (e, t, n, r) { + n !== r && (t.flags |= 4) + })) + var us = 'function' == typeof WeakMap ? WeakMap : Map + function cs(e, t, n) { + ;(((n = uo(-1, n)).tag = 3), (n.payload = { element: null })) + var r = t.value + return ( + (n.callback = function () { + ;(Qs || ((Qs = !0), (Gs = r)), ls(0, t)) + }), + n + ) + } + function fs(e, t, n) { + ;(n = uo(-1, n)).tag = 3 + var r = e.type.getDerivedStateFromError + if ('function' == typeof r) { + var a = t.value + n.payload = function () { + return (ls(0, t), r(a)) + } + } + var o = e.stateNode + return ( + null !== o && + 'function' == typeof o.componentDidCatch && + (n.callback = function () { + 'function' != typeof r && (null === Js ? (Js = new Set([this])) : Js.add(this), ls(0, t)) + var e = t.stack + this.componentDidCatch(t.value, { componentStack: null !== e ? e : '' }) + }), + n + ) + } + var ds = 'function' == typeof WeakSet ? WeakSet : Set + function ps(e) { + var t = e.ref + if (null !== t) + if ('function' == typeof t) + try { + t(null) + } catch (t) { + Fl(e, t) + } + else t.current = null + } + function hs(e, t) { + switch (t.tag) { + case 0: + case 11: + case 15: + case 22: + case 5: + case 6: + case 4: + case 17: + return + case 1: + if (256 & t.flags && null !== e) { + var n = e.memoizedProps, + r = e.memoizedState + ;((t = (e = t.stateNode).getSnapshotBeforeUpdate(t.elementType === t.type ? n : Ja(t.type, n), r)), + (e.__reactInternalSnapshotBeforeUpdate = t)) + } + return + case 3: + return void (256 & t.flags && Wr(t.stateNode.containerInfo)) + } + throw Error(i(163)) + } + function ms(e, t, n) { + switch (n.tag) { + case 0: + case 11: + case 15: + case 22: + if (null !== (t = null !== (t = n.updateQueue) ? t.lastEffect : null)) { + e = t = t.next + do { + if (3 == (3 & e.tag)) { + var r = e.create + e.destroy = r() + } + e = e.next + } while (e !== t) + } + if (null !== (t = null !== (t = n.updateQueue) ? t.lastEffect : null)) { + e = t = t.next + do { + var a = e + ;((r = a.next), 0 != (4 & (a = a.tag)) && 0 != (1 & a) && (Rl(n, e), Al(n, e)), (e = r)) + } while (e !== t) + } + return + case 1: + return ( + (e = n.stateNode), + 4 & n.flags && + (null === t + ? e.componentDidMount() + : ((r = n.elementType === n.type ? t.memoizedProps : Ja(n.type, t.memoizedProps)), + e.componentDidUpdate(r, t.memoizedState, e.__reactInternalSnapshotBeforeUpdate))), + void (null !== (t = n.updateQueue) && ho(n, t, e)) + ) + case 3: + if (null !== (t = n.updateQueue)) { + if (((e = null), null !== n.child)) + switch (n.child.tag) { + case 5: + case 1: + e = n.child.stateNode + } + ho(n, t, e) + } + return + case 5: + return ((e = n.stateNode), void (null === t && 4 & n.flags && Ur(n.type, n.memoizedProps) && e.focus())) + case 6: + case 4: + case 12: + case 19: + case 17: + case 20: + case 21: + case 23: + case 24: + return + case 13: + return void ( + null === n.memoizedState && + ((n = n.alternate), null !== n && ((n = n.memoizedState), null !== n && ((n = n.dehydrated), null !== n && _t(n)))) + ) + } + throw Error(i(163)) + } + function gs(e, t) { + for (var n = e; ; ) { + if (5 === n.tag) { + var r = n.stateNode + if (t) 'function' == typeof (r = r.style).setProperty ? r.setProperty('display', 'none', 'important') : (r.display = 'none') + else { + r = n.stateNode + var a = n.memoizedProps.style + ;((a = null != a && a.hasOwnProperty('display') ? a.display : null), (r.style.display = we('display', a))) + } + } else if (6 === n.tag) n.stateNode.nodeValue = t ? '' : n.memoizedProps + else if (((23 !== n.tag && 24 !== n.tag) || null === n.memoizedState || n === e) && null !== n.child) { + ;((n.child.return = n), (n = n.child)) + continue + } + if (n === e) break + for (; null === n.sibling; ) { + if (null === n.return || n.return === e) return + n = n.return + } + ;((n.sibling.return = n.return), (n = n.sibling)) + } + } + function vs(e, t) { + if (Ea && 'function' == typeof Ea.onCommitFiberUnmount) + try { + Ea.onCommitFiberUnmount(xa, t) + } catch (e) {} + switch (t.tag) { + case 0: + case 11: + case 14: + case 15: + case 22: + if (null !== (e = t.updateQueue) && null !== (e = e.lastEffect)) { + var n = (e = e.next) + do { + var r = n, + a = r.destroy + if (((r = r.tag), void 0 !== a)) + if (0 != (4 & r)) Rl(t, n) + else { + r = t + try { + a() + } catch (e) { + Fl(r, e) + } + } + n = n.next + } while (n !== e) + } + break + case 1: + if ((ps(t), 'function' == typeof (e = t.stateNode).componentWillUnmount)) + try { + ;((e.props = t.memoizedProps), (e.state = t.memoizedState), e.componentWillUnmount()) + } catch (e) { + Fl(t, e) + } + break + case 5: + ps(t) + break + case 4: + Es(e, t) + } + } + function ys(e) { + ;((e.alternate = null), + (e.child = null), + (e.dependencies = null), + (e.firstEffect = null), + (e.lastEffect = null), + (e.memoizedProps = null), + (e.memoizedState = null), + (e.pendingProps = null), + (e.return = null), + (e.updateQueue = null)) + } + function bs(e) { + return 5 === e.tag || 3 === e.tag || 4 === e.tag + } + function ws(e) { + e: { + for (var t = e.return; null !== t; ) { + if (bs(t)) break e + t = t.return + } + throw Error(i(160)) + } + var n = t + switch (((t = n.stateNode), n.tag)) { + case 5: + var r = !1 + break + case 3: + case 4: + ;((t = t.containerInfo), (r = !0)) + break + default: + throw Error(i(161)) + } + 16 & n.flags && (ve(t, ''), (n.flags &= -17)) + e: t: for (n = e; ; ) { + for (; null === n.sibling; ) { + if (null === n.return || bs(n.return)) { + n = null + break e + } + n = n.return + } + for (n.sibling.return = n.return, n = n.sibling; 5 !== n.tag && 6 !== n.tag && 18 !== n.tag; ) { + if (2 & n.flags) continue t + if (null === n.child || 4 === n.tag) continue t + ;((n.child.return = n), (n = n.child)) + } + if (!(2 & n.flags)) { + n = n.stateNode + break e + } + } + r ? _s(e, n, t) : xs(e, n, t) + } + function _s(e, t, n) { + var r = e.tag, + a = 5 === r || 6 === r + if (a) + ((e = a ? e.stateNode : e.stateNode.instance), + t + ? 8 === n.nodeType + ? n.parentNode.insertBefore(e, t) + : n.insertBefore(e, t) + : (8 === n.nodeType ? (t = n.parentNode).insertBefore(e, n) : (t = n).appendChild(e), + null != (n = n._reactRootContainer) || null !== t.onclick || (t.onclick = zr))) + else if (4 !== r && null !== (e = e.child)) for (_s(e, t, n), e = e.sibling; null !== e; ) (_s(e, t, n), (e = e.sibling)) + } + function xs(e, t, n) { + var r = e.tag, + a = 5 === r || 6 === r + if (a) ((e = a ? e.stateNode : e.stateNode.instance), t ? n.insertBefore(e, t) : n.appendChild(e)) + else if (4 !== r && null !== (e = e.child)) for (xs(e, t, n), e = e.sibling; null !== e; ) (xs(e, t, n), (e = e.sibling)) + } + function Es(e, t) { + for (var n, r, a = t, o = !1; ; ) { + if (!o) { + o = a.return + e: for (;;) { + if (null === o) throw Error(i(160)) + switch (((n = o.stateNode), o.tag)) { + case 5: + r = !1 + break e + case 3: + case 4: + ;((n = n.containerInfo), (r = !0)) + break e + } + o = o.return + } + o = !0 + } + if (5 === a.tag || 6 === a.tag) { + e: for (var s = e, l = a, u = l; ; ) + if ((vs(s, u), null !== u.child && 4 !== u.tag)) ((u.child.return = u), (u = u.child)) + else { + if (u === l) break e + for (; null === u.sibling; ) { + if (null === u.return || u.return === l) break e + u = u.return + } + ;((u.sibling.return = u.return), (u = u.sibling)) + } + r ? ((s = n), (l = a.stateNode), 8 === s.nodeType ? s.parentNode.removeChild(l) : s.removeChild(l)) : n.removeChild(a.stateNode) + } else if (4 === a.tag) { + if (null !== a.child) { + ;((n = a.stateNode.containerInfo), (r = !0), (a.child.return = a), (a = a.child)) + continue + } + } else if ((vs(e, a), null !== a.child)) { + ;((a.child.return = a), (a = a.child)) + continue + } + if (a === t) break + for (; null === a.sibling; ) { + if (null === a.return || a.return === t) return + 4 === (a = a.return).tag && (o = !1) + } + ;((a.sibling.return = a.return), (a = a.sibling)) + } + } + function ks(e, t) { + switch (t.tag) { + case 0: + case 11: + case 14: + case 15: + case 22: + var n = t.updateQueue + if (null !== (n = null !== n ? n.lastEffect : null)) { + var r = (n = n.next) + do { + ;(3 == (3 & r.tag) && ((e = r.destroy), (r.destroy = void 0), void 0 !== e && e()), (r = r.next)) + } while (r !== n) + } + return + case 1: + case 12: + case 17: + return + case 5: + if (null != (n = t.stateNode)) { + r = t.memoizedProps + var a = null !== e ? e.memoizedProps : r + e = t.type + var o = t.updateQueue + if (((t.updateQueue = null), null !== o)) { + for ( + n[Zr] = r, 'input' === e && 'radio' === r.type && null != r.name && te(n, r), ke(e, a), t = ke(e, r), a = 0; + a < o.length; + a += 2 + ) { + var s = o[a], + l = o[a + 1] + 'style' === s ? _e(n, l) : 'dangerouslySetInnerHTML' === s ? ge(n, l) : 'children' === s ? ve(n, l) : w(n, s, l, t) + } + switch (e) { + case 'input': + ne(n, r) + break + case 'textarea': + ue(n, r) + break + case 'select': + ;((e = n._wrapperState.wasMultiple), + (n._wrapperState.wasMultiple = !!r.multiple), + null != (o = r.value) + ? ie(n, !!r.multiple, o, !1) + : e !== !!r.multiple && + (null != r.defaultValue ? ie(n, !!r.multiple, r.defaultValue, !0) : ie(n, !!r.multiple, r.multiple ? [] : '', !1))) + } + } + } + return + case 6: + if (null === t.stateNode) throw Error(i(162)) + return void (t.stateNode.nodeValue = t.memoizedProps) + case 3: + return void ((n = t.stateNode).hydrate && ((n.hydrate = !1), _t(n.containerInfo))) + case 13: + return (null !== t.memoizedState && ((qs = Ua()), gs(t.child, !0)), void Ss(t)) + case 19: + return void Ss(t) + case 23: + case 24: + return void gs(t, null !== t.memoizedState) + } + throw Error(i(163)) + } + function Ss(e) { + var t = e.updateQueue + if (null !== t) { + e.updateQueue = null + var n = e.stateNode + ;(null === n && (n = e.stateNode = new ds()), + t.forEach(function (t) { + var r = Ll.bind(null, e, t) + n.has(t) || (n.add(t), t.then(r, r)) + })) + } + } + function $s(e, t) { + return null !== e && (null === (e = e.memoizedState) || null !== e.dehydrated) && null !== (t = t.memoizedState) && null === t.dehydrated + } + var Ps = Math.ceil, + Os = _.ReactCurrentDispatcher, + Cs = _.ReactCurrentOwner, + js = 0, + Ns = null, + Is = null, + Ts = 0, + As = 0, + Rs = la(0), + Ds = 0, + Ms = null, + Fs = 0, + zs = 0, + Ls = 0, + Vs = 0, + Us = null, + qs = 0, + Bs = 1 / 0 + function Hs() { + Bs = Ua() + 500 + } + var Ws, + Ks = null, + Qs = !1, + Gs = null, + Js = null, + Ys = !1, + Zs = null, + Xs = 90, + el = [], + tl = [], + nl = null, + rl = 0, + al = null, + ol = -1, + il = 0, + sl = 0, + ll = null, + ul = !1 + function cl() { + return 0 != (48 & js) ? Ua() : -1 !== ol ? ol : (ol = Ua()) + } + function fl(e) { + if (0 == (2 & (e = e.mode))) return 1 + if (0 == (4 & e)) return 99 === qa() ? 1 : 2 + if ((0 === il && (il = Fs), 0 !== Ga.transition)) { + ;(0 !== sl && (sl = null !== Us ? Us.pendingLanes : 0), (e = il)) + var t = 4186112 & ~sl + return (0 == (t &= -t) && 0 == (t = (e = 4186112 & ~e) & -e) && (t = 8192), t) + } + return ( + (e = qa()), + (e = zt( + 0 != (4 & js) && 98 === e + ? 12 + : (e = (function (e) { + switch (e) { + case 99: + return 15 + case 98: + return 10 + case 97: + case 96: + return 8 + case 95: + return 2 + default: + return 0 + } + })(e)), + il, + )) + ) + } + function dl(e, t, n) { + if (50 < rl) throw ((rl = 0), (al = null), Error(i(185))) + if (null === (e = pl(e, t))) return null + ;(Ut(e, t, n), e === Ns && ((Ls |= t), 4 === Ds && gl(e, Ts))) + var r = qa() + ;(1 === t + ? 0 != (8 & js) && 0 == (48 & js) + ? vl(e) + : (hl(e, n), 0 === js && (Hs(), Ka())) + : (0 == (4 & js) || (98 !== r && 99 !== r) || (null === nl ? (nl = new Set([e])) : nl.add(e)), hl(e, n)), + (Us = e)) + } + function pl(e, t) { + e.lanes |= t + var n = e.alternate + for (null !== n && (n.lanes |= t), n = e, e = e.return; null !== e; ) + ((e.childLanes |= t), null !== (n = e.alternate) && (n.childLanes |= t), (n = e), (e = e.return)) + return 3 === n.tag ? n.stateNode : null + } + function hl(e, t) { + for (var n = e.callbackNode, r = e.suspendedLanes, a = e.pingedLanes, o = e.expirationTimes, s = e.pendingLanes; 0 < s; ) { + var l = 31 - qt(s), + u = 1 << l, + c = o[l] + if (-1 === c) { + if (0 == (u & r) || 0 != (u & a)) { + ;((c = t), Dt(u)) + var f = Rt + o[l] = 10 <= f ? c + 250 : 6 <= f ? c + 5e3 : -1 + } + } else c <= t && (e.expiredLanes |= u) + s &= ~u + } + if (((r = Mt(e, e === Ns ? Ts : 0)), (t = Rt), 0 === r)) + null !== n && (n !== Da && $a(n), (e.callbackNode = null), (e.callbackPriority = 0)) + else { + if (null !== n) { + if (e.callbackPriority === t) return + n !== Da && $a(n) + } + ;(15 === t + ? ((n = vl.bind(null, e)), null === Fa ? ((Fa = [n]), (za = Sa(Na, Qa))) : Fa.push(n), (n = Da)) + : 14 === t + ? (n = Wa(99, vl.bind(null, e))) + : ((n = (function (e) { + switch (e) { + case 15: + case 14: + return 99 + case 13: + case 12: + case 11: + case 10: + return 98 + case 9: + case 8: + case 7: + case 6: + case 4: + case 5: + return 97 + case 3: + case 2: + case 1: + return 95 + case 0: + return 90 + default: + throw Error(i(358, e)) + } + })(t)), + (n = Wa(n, ml.bind(null, e)))), + (e.callbackPriority = t), + (e.callbackNode = n)) + } + } + function ml(e) { + if (((ol = -1), (sl = il = 0), 0 != (48 & js))) throw Error(i(327)) + var t = e.callbackNode + if (Tl() && e.callbackNode !== t) return null + var n = Mt(e, e === Ns ? Ts : 0) + if (0 === n) return null + var r = n, + a = js + js |= 16 + var o = kl() + for ((Ns === e && Ts === r) || (Hs(), xl(e, r)); ; ) + try { + Pl() + break + } catch (t) { + El(e, t) + } + if ((to(), (Os.current = o), (js = a), null !== Is ? (r = 0) : ((Ns = null), (Ts = 0), (r = Ds)), 0 != (Fs & Ls))) xl(e, 0) + else if (0 !== r) { + if ((2 === r && ((js |= 64), e.hydrate && ((e.hydrate = !1), Wr(e.containerInfo)), 0 !== (n = Ft(e)) && (r = Sl(e, n))), 1 === r)) + throw ((t = Ms), xl(e, 0), gl(e, n), hl(e, Ua()), t) + switch (((e.finishedWork = e.current.alternate), (e.finishedLanes = n), r)) { + case 0: + case 1: + throw Error(i(345)) + case 2: + case 5: + jl(e) + break + case 3: + if ((gl(e, n), (62914560 & n) === n && 10 < (r = qs + 500 - Ua()))) { + if (0 !== Mt(e, 0)) break + if (((a = e.suspendedLanes) & n) !== n) { + ;(cl(), (e.pingedLanes |= e.suspendedLanes & a)) + break + } + e.timeoutHandle = Br(jl.bind(null, e), r) + break + } + jl(e) + break + case 4: + if ((gl(e, n), (4186112 & n) === n)) break + for (r = e.eventTimes, a = -1; 0 < n; ) { + var s = 31 - qt(n) + ;((o = 1 << s), (s = r[s]) > a && (a = s), (n &= ~o)) + } + if ( + ((n = a), + 10 < + (n = + (120 > (n = Ua() - n) + ? 120 + : 480 > n + ? 480 + : 1080 > n + ? 1080 + : 1920 > n + ? 1920 + : 3e3 > n + ? 3e3 + : 4320 > n + ? 4320 + : 1960 * Ps(n / 1960)) - n)) + ) { + e.timeoutHandle = Br(jl.bind(null, e), n) + break + } + jl(e) + break + default: + throw Error(i(329)) + } + } + return (hl(e, Ua()), e.callbackNode === t ? ml.bind(null, e) : null) + } + function gl(e, t) { + for (t &= ~Vs, t &= ~Ls, e.suspendedLanes |= t, e.pingedLanes &= ~t, e = e.expirationTimes; 0 < t; ) { + var n = 31 - qt(t), + r = 1 << n + ;((e[n] = -1), (t &= ~r)) + } + } + function vl(e) { + if (0 != (48 & js)) throw Error(i(327)) + if ((Tl(), e === Ns && 0 != (e.expiredLanes & Ts))) { + var t = Ts, + n = Sl(e, t) + 0 != (Fs & Ls) && (n = Sl(e, (t = Mt(e, t)))) + } else n = Sl(e, (t = Mt(e, 0))) + if ( + (0 !== e.tag && 2 === n && ((js |= 64), e.hydrate && ((e.hydrate = !1), Wr(e.containerInfo)), 0 !== (t = Ft(e)) && (n = Sl(e, t))), + 1 === n) + ) + throw ((n = Ms), xl(e, 0), gl(e, t), hl(e, Ua()), n) + return ((e.finishedWork = e.current.alternate), (e.finishedLanes = t), jl(e), hl(e, Ua()), null) + } + function yl(e, t) { + var n = js + js |= 1 + try { + return e(t) + } finally { + 0 === (js = n) && (Hs(), Ka()) + } + } + function bl(e, t) { + var n = js + ;((js &= -2), (js |= 8)) + try { + return e(t) + } finally { + 0 === (js = n) && (Hs(), Ka()) + } + } + function wl(e, t) { + ;(ca(Rs, As), (As |= t), (Fs |= t)) + } + function _l() { + ;((As = Rs.current), ua(Rs)) + } + function xl(e, t) { + ;((e.finishedWork = null), (e.finishedLanes = 0)) + var n = e.timeoutHandle + if ((-1 !== n && ((e.timeoutHandle = -1), Hr(n)), null !== Is)) + for (n = Is.return; null !== n; ) { + var r = n + switch (r.tag) { + case 1: + null != (r = r.type.childContextTypes) && va() + break + case 3: + ;(Ao(), ua(pa), ua(da), Go()) + break + case 5: + Do(r) + break + case 4: + Ao() + break + case 13: + case 19: + ua(Mo) + break + case 10: + no(r) + break + case 23: + case 24: + _l() + } + n = n.return + } + ;((Ns = e), (Is = Bl(e.current, null)), (Ts = As = Fs = t), (Ds = 0), (Ms = null), (Vs = Ls = zs = 0)) + } + function El(e, t) { + for (;;) { + var n = Is + try { + if ((to(), (Jo.current = Ni), ni)) { + for (var r = Xo.memoizedState; null !== r; ) { + var a = r.queue + ;(null !== a && (a.pending = null), (r = r.next)) + } + ni = !1 + } + if (((Zo = 0), (ti = ei = Xo = null), (ri = !1), (Cs.current = null), null === n || null === n.return)) { + ;((Ds = 1), (Ms = t), (Is = null)) + break + } + e: { + var o = e, + i = n.return, + s = n, + l = t + if ( + ((t = Ts), + (s.flags |= 2048), + (s.firstEffect = s.lastEffect = null), + null !== l && 'object' == typeof l && 'function' == typeof l.then) + ) { + var u = l + if (0 == (2 & s.mode)) { + var c = s.alternate + c + ? ((s.updateQueue = c.updateQueue), (s.memoizedState = c.memoizedState), (s.lanes = c.lanes)) + : ((s.updateQueue = null), (s.memoizedState = null)) + } + var f = 0 != (1 & Mo.current), + d = i + do { + var p + if ((p = 13 === d.tag)) { + var h = d.memoizedState + if (null !== h) p = null !== h.dehydrated + else { + var m = d.memoizedProps + p = void 0 !== m.fallback && (!0 !== m.unstable_avoidThisFallback || !f) + } + } + if (p) { + var g = d.updateQueue + if (null === g) { + var v = new Set() + ;(v.add(u), (d.updateQueue = v)) + } else g.add(u) + if (0 == (2 & d.mode)) { + if (((d.flags |= 64), (s.flags |= 16384), (s.flags &= -2981), 1 === s.tag)) + if (null === s.alternate) s.tag = 17 + else { + var y = uo(-1, 1) + ;((y.tag = 2), co(s, y)) + } + s.lanes |= 1 + break e + } + ;((l = void 0), (s = t)) + var b = o.pingCache + if ( + (null === b + ? ((b = o.pingCache = new us()), (l = new Set()), b.set(u, l)) + : void 0 === (l = b.get(u)) && ((l = new Set()), b.set(u, l)), + !l.has(s)) + ) { + l.add(s) + var w = zl.bind(null, o, u, s) + u.then(w, w) + } + ;((d.flags |= 4096), (d.lanes = t)) + break e + } + d = d.return + } while (null !== d) + l = Error( + (K(s.type) || 'A React component') + + ' suspended while rendering, but no fallback UI was specified.\n\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.', + ) + } + ;(5 !== Ds && (Ds = 2), (l = ss(l, s)), (d = i)) + do { + switch (d.tag) { + case 3: + ;((o = l), (d.flags |= 4096), (t &= -t), (d.lanes |= t), fo(d, cs(0, o, t))) + break e + case 1: + o = l + var _ = d.type, + x = d.stateNode + if ( + 0 == (64 & d.flags) && + ('function' == typeof _.getDerivedStateFromError || + (null !== x && 'function' == typeof x.componentDidCatch && (null === Js || !Js.has(x)))) + ) { + ;((d.flags |= 4096), (t &= -t), (d.lanes |= t), fo(d, fs(d, o, t))) + break e + } + } + d = d.return + } while (null !== d) + } + Cl(n) + } catch (e) { + ;((t = e), Is === n && null !== n && (Is = n = n.return)) + continue + } + break + } + } + function kl() { + var e = Os.current + return ((Os.current = Ni), null === e ? Ni : e) + } + function Sl(e, t) { + var n = js + js |= 16 + var r = kl() + for ((Ns === e && Ts === t) || xl(e, t); ; ) + try { + $l() + break + } catch (t) { + El(e, t) + } + if ((to(), (js = n), (Os.current = r), null !== Is)) throw Error(i(261)) + return ((Ns = null), (Ts = 0), Ds) + } + function $l() { + for (; null !== Is; ) Ol(Is) + } + function Pl() { + for (; null !== Is && !Pa(); ) Ol(Is) + } + function Ol(e) { + var t = Ws(e.alternate, e, As) + ;((e.memoizedProps = e.pendingProps), null === t ? Cl(e) : (Is = t), (Cs.current = null)) + } + function Cl(e) { + var t = e + do { + var n = t.alternate + if (((e = t.return), 0 == (2048 & t.flags))) { + if (null !== (n = os(n, t, As))) return void (Is = n) + if ((24 !== (n = t).tag && 23 !== n.tag) || null === n.memoizedState || 0 != (1073741824 & As) || 0 == (4 & n.mode)) { + for (var r = 0, a = n.child; null !== a; ) ((r |= a.lanes | a.childLanes), (a = a.sibling)) + n.childLanes = r + } + null !== e && + 0 == (2048 & e.flags) && + (null === e.firstEffect && (e.firstEffect = t.firstEffect), + null !== t.lastEffect && (null !== e.lastEffect && (e.lastEffect.nextEffect = t.firstEffect), (e.lastEffect = t.lastEffect)), + 1 < t.flags && (null !== e.lastEffect ? (e.lastEffect.nextEffect = t) : (e.firstEffect = t), (e.lastEffect = t))) + } else { + if (null !== (n = is(t))) return ((n.flags &= 2047), void (Is = n)) + null !== e && ((e.firstEffect = e.lastEffect = null), (e.flags |= 2048)) + } + if (null !== (t = t.sibling)) return void (Is = t) + Is = t = e + } while (null !== t) + 0 === Ds && (Ds = 5) + } + function jl(e) { + var t = qa() + return (Ha(99, Nl.bind(null, e, t)), null) + } + function Nl(e, t) { + do { + Tl() + } while (null !== Zs) + if (0 != (48 & js)) throw Error(i(327)) + var n = e.finishedWork + if (null === n) return null + if (((e.finishedWork = null), (e.finishedLanes = 0), n === e.current)) throw Error(i(177)) + e.callbackNode = null + var r = n.lanes | n.childLanes, + a = r, + o = e.pendingLanes & ~a + ;((e.pendingLanes = a), + (e.suspendedLanes = 0), + (e.pingedLanes = 0), + (e.expiredLanes &= a), + (e.mutableReadLanes &= a), + (e.entangledLanes &= a), + (a = e.entanglements)) + for (var s = e.eventTimes, l = e.expirationTimes; 0 < o; ) { + var u = 31 - qt(o), + c = 1 << u + ;((a[u] = 0), (s[u] = -1), (l[u] = -1), (o &= ~c)) + } + if ( + (null !== nl && 0 == (24 & r) && nl.has(e) && nl.delete(e), + e === Ns && ((Is = Ns = null), (Ts = 0)), + 1 < n.flags ? (null !== n.lastEffect ? ((n.lastEffect.nextEffect = n), (r = n.firstEffect)) : (r = n)) : (r = n.firstEffect), + null !== r) + ) { + if (((a = js), (js |= 32), (Cs.current = null), (Lr = Qt), gr((s = mr())))) { + if ('selectionStart' in s) l = { start: s.selectionStart, end: s.selectionEnd } + else + e: if (((l = ((l = s.ownerDocument) && l.defaultView) || window), (c = l.getSelection && l.getSelection()) && 0 !== c.rangeCount)) { + ;((l = c.anchorNode), (o = c.anchorOffset), (u = c.focusNode), (c = c.focusOffset)) + try { + ;(l.nodeType, u.nodeType) + } catch (e) { + l = null + break e + } + var f = 0, + d = -1, + p = -1, + h = 0, + m = 0, + g = s, + v = null + t: for (;;) { + for ( + var y; + g !== l || (0 !== o && 3 !== g.nodeType) || (d = f + o), + g !== u || (0 !== c && 3 !== g.nodeType) || (p = f + c), + 3 === g.nodeType && (f += g.nodeValue.length), + null !== (y = g.firstChild); + ) + ((v = g), (g = y)) + for (;;) { + if (g === s) break t + if ((v === l && ++h === o && (d = f), v === u && ++m === c && (p = f), null !== (y = g.nextSibling))) break + v = (g = v).parentNode + } + g = y + } + l = -1 === d || -1 === p ? null : { start: d, end: p } + } else l = null + l = l || { start: 0, end: 0 } + } else l = null + ;((Vr = { focusedElem: s, selectionRange: l }), (Qt = !1), (ll = null), (ul = !1), (Ks = r)) + do { + try { + Il() + } catch (e) { + if (null === Ks) throw Error(i(330)) + ;(Fl(Ks, e), (Ks = Ks.nextEffect)) + } + } while (null !== Ks) + ;((ll = null), (Ks = r)) + do { + try { + for (s = e; null !== Ks; ) { + var b = Ks.flags + if ((16 & b && ve(Ks.stateNode, ''), 128 & b)) { + var w = Ks.alternate + if (null !== w) { + var _ = w.ref + null !== _ && ('function' == typeof _ ? _(null) : (_.current = null)) + } + } + switch (1038 & b) { + case 2: + ;(ws(Ks), (Ks.flags &= -3)) + break + case 6: + ;(ws(Ks), (Ks.flags &= -3), ks(Ks.alternate, Ks)) + break + case 1024: + Ks.flags &= -1025 + break + case 1028: + ;((Ks.flags &= -1025), ks(Ks.alternate, Ks)) + break + case 4: + ks(Ks.alternate, Ks) + break + case 8: + Es(s, (l = Ks)) + var x = l.alternate + ;(ys(l), null !== x && ys(x)) + } + Ks = Ks.nextEffect + } + } catch (e) { + if (null === Ks) throw Error(i(330)) + ;(Fl(Ks, e), (Ks = Ks.nextEffect)) + } + } while (null !== Ks) + if ( + ((_ = Vr), + (w = mr()), + (b = _.focusedElem), + (s = _.selectionRange), + w !== b && b && b.ownerDocument && hr(b.ownerDocument.documentElement, b)) + ) { + ;(null !== s && + gr(b) && + ((w = s.start), + void 0 === (_ = s.end) && (_ = w), + 'selectionStart' in b + ? ((b.selectionStart = w), (b.selectionEnd = Math.min(_, b.value.length))) + : (_ = ((w = b.ownerDocument || document) && w.defaultView) || window).getSelection && + ((_ = _.getSelection()), + (l = b.textContent.length), + (x = Math.min(s.start, l)), + (s = void 0 === s.end ? x : Math.min(s.end, l)), + !_.extend && x > s && ((l = s), (s = x), (x = l)), + (l = pr(b, x)), + (o = pr(b, s)), + l && + o && + (1 !== _.rangeCount || + _.anchorNode !== l.node || + _.anchorOffset !== l.offset || + _.focusNode !== o.node || + _.focusOffset !== o.offset) && + ((w = w.createRange()).setStart(l.node, l.offset), + _.removeAllRanges(), + x > s ? (_.addRange(w), _.extend(o.node, o.offset)) : (w.setEnd(o.node, o.offset), _.addRange(w))))), + (w = [])) + for (_ = b; (_ = _.parentNode); ) 1 === _.nodeType && w.push({ element: _, left: _.scrollLeft, top: _.scrollTop }) + for ('function' == typeof b.focus && b.focus(), b = 0; b < w.length; b++) + (((_ = w[b]).element.scrollLeft = _.left), (_.element.scrollTop = _.top)) + } + ;((Qt = !!Lr), (Vr = Lr = null), (e.current = n), (Ks = r)) + do { + try { + for (b = e; null !== Ks; ) { + var E = Ks.flags + if ((36 & E && ms(b, Ks.alternate, Ks), 128 & E)) { + w = void 0 + var k = Ks.ref + if (null !== k) { + var S = Ks.stateNode + ;(Ks.tag, (w = S), 'function' == typeof k ? k(w) : (k.current = w)) + } + } + Ks = Ks.nextEffect + } + } catch (e) { + if (null === Ks) throw Error(i(330)) + ;(Fl(Ks, e), (Ks = Ks.nextEffect)) + } + } while (null !== Ks) + ;((Ks = null), Ma(), (js = a)) + } else e.current = n + if (Ys) ((Ys = !1), (Zs = e), (Xs = t)) + else + for (Ks = r; null !== Ks; ) + ((t = Ks.nextEffect), (Ks.nextEffect = null), 8 & Ks.flags && (((E = Ks).sibling = null), (E.stateNode = null)), (Ks = t)) + if ( + (0 === (r = e.pendingLanes) && (Js = null), + 1 === r ? (e === al ? rl++ : ((rl = 0), (al = e))) : (rl = 0), + (n = n.stateNode), + Ea && 'function' == typeof Ea.onCommitFiberRoot) + ) + try { + Ea.onCommitFiberRoot(xa, n, void 0, 64 == (64 & n.current.flags)) + } catch (e) {} + if ((hl(e, Ua()), Qs)) throw ((Qs = !1), (e = Gs), (Gs = null), e) + return (0 != (8 & js) || Ka(), null) + } + function Il() { + for (; null !== Ks; ) { + var e = Ks.alternate + ul || null === ll || (0 != (8 & Ks.flags) ? Xe(Ks, ll) && (ul = !0) : 13 === Ks.tag && $s(e, Ks) && Xe(Ks, ll) && (ul = !0)) + var t = Ks.flags + ;(0 != (256 & t) && hs(e, Ks), + 0 == (512 & t) || + Ys || + ((Ys = !0), + Wa(97, function () { + return (Tl(), null) + })), + (Ks = Ks.nextEffect)) + } + } + function Tl() { + if (90 !== Xs) { + var e = 97 < Xs ? 97 : Xs + return ((Xs = 90), Ha(e, Dl)) + } + return !1 + } + function Al(e, t) { + ;(el.push(t, e), + Ys || + ((Ys = !0), + Wa(97, function () { + return (Tl(), null) + }))) + } + function Rl(e, t) { + ;(tl.push(t, e), + Ys || + ((Ys = !0), + Wa(97, function () { + return (Tl(), null) + }))) + } + function Dl() { + if (null === Zs) return !1 + var e = Zs + if (((Zs = null), 0 != (48 & js))) throw Error(i(331)) + var t = js + js |= 32 + var n = tl + tl = [] + for (var r = 0; r < n.length; r += 2) { + var a = n[r], + o = n[r + 1], + s = a.destroy + if (((a.destroy = void 0), 'function' == typeof s)) + try { + s() + } catch (e) { + if (null === o) throw Error(i(330)) + Fl(o, e) + } + } + for (n = el, el = [], r = 0; r < n.length; r += 2) { + ;((a = n[r]), (o = n[r + 1])) + try { + var l = a.create + a.destroy = l() + } catch (e) { + if (null === o) throw Error(i(330)) + Fl(o, e) + } + } + for (l = e.current.firstEffect; null !== l; ) + ((e = l.nextEffect), (l.nextEffect = null), 8 & l.flags && ((l.sibling = null), (l.stateNode = null)), (l = e)) + return ((js = t), Ka(), !0) + } + function Ml(e, t, n) { + ;(co(e, (t = cs(0, (t = ss(n, t)), 1))), (t = cl()), null !== (e = pl(e, 1)) && (Ut(e, 1, t), hl(e, t))) + } + function Fl(e, t) { + if (3 === e.tag) Ml(e, e, t) + else + for (var n = e.return; null !== n; ) { + if (3 === n.tag) { + Ml(n, e, t) + break + } + if (1 === n.tag) { + var r = n.stateNode + if ( + 'function' == typeof n.type.getDerivedStateFromError || + ('function' == typeof r.componentDidCatch && (null === Js || !Js.has(r))) + ) { + var a = fs(n, (e = ss(t, e)), 1) + if ((co(n, a), (a = cl()), null !== (n = pl(n, 1)))) (Ut(n, 1, a), hl(n, a)) + else if ('function' == typeof r.componentDidCatch && (null === Js || !Js.has(r))) + try { + r.componentDidCatch(t, e) + } catch (e) {} + break + } + } + n = n.return + } + } + function zl(e, t, n) { + var r = e.pingCache + ;(null !== r && r.delete(t), + (t = cl()), + (e.pingedLanes |= e.suspendedLanes & n), + Ns === e && (Ts & n) === n && (4 === Ds || (3 === Ds && (62914560 & Ts) === Ts && 500 > Ua() - qs) ? xl(e, 0) : (Vs |= n)), + hl(e, t)) + } + function Ll(e, t) { + var n = e.stateNode + ;(null !== n && n.delete(t), + 0 == (t = 0) && + (0 == (2 & (t = e.mode)) + ? (t = 1) + : 0 == (4 & t) + ? (t = 99 === qa() ? 1 : 2) + : (0 === il && (il = Fs), 0 === (t = Lt(62914560 & ~il)) && (t = 4194304))), + (n = cl()), + null !== (e = pl(e, t)) && (Ut(e, t, n), hl(e, n))) + } + function Vl(e, t, n, r) { + ;((this.tag = e), + (this.key = n), + (this.sibling = this.child = this.return = this.stateNode = this.type = this.elementType = null), + (this.index = 0), + (this.ref = null), + (this.pendingProps = t), + (this.dependencies = this.memoizedState = this.updateQueue = this.memoizedProps = null), + (this.mode = r), + (this.flags = 0), + (this.lastEffect = this.firstEffect = this.nextEffect = null), + (this.childLanes = this.lanes = 0), + (this.alternate = null)) + } + function Ul(e, t, n, r) { + return new Vl(e, t, n, r) + } + function ql(e) { + return !(!(e = e.prototype) || !e.isReactComponent) + } + function Bl(e, t) { + var n = e.alternate + return ( + null === n + ? (((n = Ul(e.tag, t, e.key, e.mode)).elementType = e.elementType), + (n.type = e.type), + (n.stateNode = e.stateNode), + (n.alternate = e), + (e.alternate = n)) + : ((n.pendingProps = t), (n.type = e.type), (n.flags = 0), (n.nextEffect = null), (n.firstEffect = null), (n.lastEffect = null)), + (n.childLanes = e.childLanes), + (n.lanes = e.lanes), + (n.child = e.child), + (n.memoizedProps = e.memoizedProps), + (n.memoizedState = e.memoizedState), + (n.updateQueue = e.updateQueue), + (t = e.dependencies), + (n.dependencies = null === t ? null : { lanes: t.lanes, firstContext: t.firstContext }), + (n.sibling = e.sibling), + (n.index = e.index), + (n.ref = e.ref), + n + ) + } + function Hl(e, t, n, r, a, o) { + var s = 2 + if (((r = e), 'function' == typeof e)) ql(e) && (s = 1) + else if ('string' == typeof e) s = 5 + else + e: switch (e) { + case k: + return Wl(n.children, a, o, t) + case D: + ;((s = 8), (a |= 16)) + break + case S: + ;((s = 8), (a |= 1)) + break + case $: + return (((e = Ul(12, n, t, 8 | a)).elementType = $), (e.type = $), (e.lanes = o), e) + case j: + return (((e = Ul(13, n, t, a)).type = j), (e.elementType = j), (e.lanes = o), e) + case N: + return (((e = Ul(19, n, t, a)).elementType = N), (e.lanes = o), e) + case M: + return Kl(n, a, o, t) + case F: + return (((e = Ul(24, n, t, a)).elementType = F), (e.lanes = o), e) + default: + if ('object' == typeof e && null !== e) + switch (e.$$typeof) { + case P: + s = 10 + break e + case O: + s = 9 + break e + case C: + s = 11 + break e + case I: + s = 14 + break e + case T: + ;((s = 16), (r = null)) + break e + case A: + s = 22 + break e + } + throw Error(i(130, null == e ? e : typeof e, '')) + } + return (((t = Ul(s, n, t, a)).elementType = e), (t.type = r), (t.lanes = o), t) + } + function Wl(e, t, n, r) { + return (((e = Ul(7, e, r, t)).lanes = n), e) + } + function Kl(e, t, n, r) { + return (((e = Ul(23, e, r, t)).elementType = M), (e.lanes = n), e) + } + function Ql(e, t, n) { + return (((e = Ul(6, e, null, t)).lanes = n), e) + } + function Gl(e, t, n) { + return ( + ((t = Ul(4, null !== e.children ? e.children : [], e.key, t)).lanes = n), + (t.stateNode = { containerInfo: e.containerInfo, pendingChildren: null, implementation: e.implementation }), + t + ) + } + function Jl(e, t, n) { + ;((this.tag = t), + (this.containerInfo = e), + (this.finishedWork = this.pingCache = this.current = this.pendingChildren = null), + (this.timeoutHandle = -1), + (this.pendingContext = this.context = null), + (this.hydrate = n), + (this.callbackNode = null), + (this.callbackPriority = 0), + (this.eventTimes = Vt(0)), + (this.expirationTimes = Vt(-1)), + (this.entangledLanes = + this.finishedLanes = + this.mutableReadLanes = + this.expiredLanes = + this.pingedLanes = + this.suspendedLanes = + this.pendingLanes = + 0), + (this.entanglements = Vt(0)), + (this.mutableSourceEagerHydrationData = null)) + } + function Yl(e, t, n, r) { + var a = t.current, + o = cl(), + s = fl(a) + e: if (n) { + t: { + if (Ge((n = n._reactInternals)) !== n || 1 !== n.tag) throw Error(i(170)) + var l = n + do { + switch (l.tag) { + case 3: + l = l.stateNode.context + break t + case 1: + if (ga(l.type)) { + l = l.stateNode.__reactInternalMemoizedMergedChildContext + break t + } + } + l = l.return + } while (null !== l) + throw Error(i(171)) + } + if (1 === n.tag) { + var u = n.type + if (ga(u)) { + n = ba(n, u, l) + break e + } + } + n = l + } else n = fa + return ( + null === t.context ? (t.context = n) : (t.pendingContext = n), + ((t = uo(o, s)).payload = { element: e }), + null !== (r = void 0 === r ? null : r) && (t.callback = r), + co(a, t), + dl(a, s, o), + s + ) + } + function Zl(e) { + return (e = e.current).child ? (e.child.tag, e.child.stateNode) : null + } + function Xl(e, t) { + if (null !== (e = e.memoizedState) && null !== e.dehydrated) { + var n = e.retryLane + e.retryLane = 0 !== n && n < t ? n : t + } + } + function eu(e, t) { + ;(Xl(e, t), (e = e.alternate) && Xl(e, t)) + } + function tu(e, t, n) { + var r = (null != n && null != n.hydrationOptions && n.hydrationOptions.mutableSources) || null + if ( + ((n = new Jl(e, t, null != n && !0 === n.hydrate)), + (t = Ul(3, null, null, 2 === t ? 7 : 1 === t ? 3 : 0)), + (n.current = t), + (t.stateNode = n), + so(t), + (e[Xr] = n.current), + Nr(8 === e.nodeType ? e.parentNode : e), + r) + ) + for (e = 0; e < r.length; e++) { + var a = (t = r[e])._getVersion + ;((a = a(t._source)), + null == n.mutableSourceEagerHydrationData + ? (n.mutableSourceEagerHydrationData = [t, a]) + : n.mutableSourceEagerHydrationData.push(t, a)) + } + this._internalRoot = n + } + function nu(e) { + return !( + !e || + (1 !== e.nodeType && 9 !== e.nodeType && 11 !== e.nodeType && (8 !== e.nodeType || ' react-mount-point-unstable ' !== e.nodeValue)) + ) + } + function ru(e, t, n, r, a) { + var o = n._reactRootContainer + if (o) { + var i = o._internalRoot + if ('function' == typeof a) { + var s = a + a = function () { + var e = Zl(i) + s.call(e) + } + } + Yl(t, i, e, a) + } else { + if ( + ((o = n._reactRootContainer = + (function (e, t) { + if ( + (t || + (t = !( + !(t = e ? (9 === e.nodeType ? e.documentElement : e.firstChild) : null) || + 1 !== t.nodeType || + !t.hasAttribute('data-reactroot') + )), + !t) + ) + for (var n; (n = e.lastChild); ) e.removeChild(n) + return new tu(e, 0, t ? { hydrate: !0 } : void 0) + })(n, r)), + (i = o._internalRoot), + 'function' == typeof a) + ) { + var l = a + a = function () { + var e = Zl(i) + l.call(e) + } + } + bl(function () { + Yl(t, i, e, a) + }) + } + return Zl(i) + } + function au(e, t) { + var n = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null + if (!nu(t)) throw Error(i(200)) + return (function (e, t, n) { + var r = 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null + return { $$typeof: E, key: null == r ? null : '' + r, children: e, containerInfo: t, implementation: n } + })(e, t, null, n) + } + ;((Ws = function (e, t, n) { + var r = t.lanes + if (null !== e) + if (e.memoizedProps !== t.pendingProps || pa.current) Di = !0 + else { + if (0 == (n & r)) { + switch (((Di = !1), t.tag)) { + case 3: + ;(Wi(t), Ko()) + break + case 5: + Ro(t) + break + case 1: + ga(t.type) && wa(t) + break + case 4: + To(t, t.stateNode.containerInfo) + break + case 10: + r = t.memoizedProps.value + var a = t.type._context + ;(ca(Ya, a._currentValue), (a._currentValue = r)) + break + case 13: + if (null !== t.memoizedState) + return 0 != (n & t.child.childLanes) ? Zi(e, t, n) : (ca(Mo, 1 & Mo.current), null !== (t = rs(e, t, n)) ? t.sibling : null) + ca(Mo, 1 & Mo.current) + break + case 19: + if (((r = 0 != (n & t.childLanes)), 0 != (64 & e.flags))) { + if (r) return ns(e, t, n) + t.flags |= 64 + } + if ((null !== (a = t.memoizedState) && ((a.rendering = null), (a.tail = null), (a.lastEffect = null)), ca(Mo, Mo.current), r)) + break + return null + case 23: + case 24: + return ((t.lanes = 0), Vi(e, t, n)) + } + return rs(e, t, n) + } + Di = 0 != (16384 & e.flags) + } + else Di = !1 + switch (((t.lanes = 0), t.tag)) { + case 2: + if ( + ((r = t.type), + null !== e && ((e.alternate = null), (t.alternate = null), (t.flags |= 2)), + (e = t.pendingProps), + (a = ma(t, da.current)), + ao(t, n), + (a = ii(null, t, r, e, a, n)), + (t.flags |= 1), + 'object' == typeof a && null !== a && 'function' == typeof a.render && void 0 === a.$$typeof) + ) { + if (((t.tag = 1), (t.memoizedState = null), (t.updateQueue = null), ga(r))) { + var o = !0 + wa(t) + } else o = !1 + ;((t.memoizedState = null !== a.state && void 0 !== a.state ? a.state : null), so(t)) + var s = r.getDerivedStateFromProps + ;('function' == typeof s && go(t, r, s, e), + (a.updater = vo), + (t.stateNode = a), + (a._reactInternals = t), + _o(t, r, e, n), + (t = Hi(null, t, r, !0, o, n))) + } else ((t.tag = 0), Mi(null, t, a, n), (t = t.child)) + return t + case 16: + a = t.elementType + e: { + switch ( + (null !== e && ((e.alternate = null), (t.alternate = null), (t.flags |= 2)), + (e = t.pendingProps), + (a = (o = a._init)(a._payload)), + (t.type = a), + (o = t.tag = + (function (e) { + if ('function' == typeof e) return ql(e) ? 1 : 0 + if (null != e) { + if ((e = e.$$typeof) === C) return 11 + if (e === I) return 14 + } + return 2 + })(a)), + (e = Ja(a, e)), + o) + ) { + case 0: + t = qi(null, t, a, e, n) + break e + case 1: + t = Bi(null, t, a, e, n) + break e + case 11: + t = Fi(null, t, a, e, n) + break e + case 14: + t = zi(null, t, a, Ja(a.type, e), r, n) + break e + } + throw Error(i(306, a, '')) + } + return t + case 0: + return ((r = t.type), (a = t.pendingProps), qi(e, t, r, (a = t.elementType === r ? a : Ja(r, a)), n)) + case 1: + return ((r = t.type), (a = t.pendingProps), Bi(e, t, r, (a = t.elementType === r ? a : Ja(r, a)), n)) + case 3: + if ((Wi(t), (r = t.updateQueue), null === e || null === r)) throw Error(i(282)) + if ( + ((r = t.pendingProps), + (a = null !== (a = t.memoizedState) ? a.element : null), + lo(e, t), + po(t, r, null, n), + (r = t.memoizedState.element) === a) + ) + (Ko(), (t = rs(e, t, n))) + else { + if (((o = (a = t.stateNode).hydrate) && ((Lo = Kr(t.stateNode.containerInfo.firstChild)), (zo = t), (o = Vo = !0)), o)) { + if (null != (e = a.mutableSourceEagerHydrationData)) + for (a = 0; a < e.length; a += 2) (((o = e[a])._workInProgressVersionPrimary = e[a + 1]), Qo.push(o)) + for (n = Po(t, null, r, n), t.child = n; n; ) ((n.flags = (-3 & n.flags) | 1024), (n = n.sibling)) + } else (Mi(e, t, r, n), Ko()) + t = t.child + } + return t + case 5: + return ( + Ro(t), + null === e && Bo(t), + (r = t.type), + (a = t.pendingProps), + (o = null !== e ? e.memoizedProps : null), + (s = a.children), + qr(r, a) ? (s = null) : null !== o && qr(r, o) && (t.flags |= 16), + Ui(e, t), + Mi(e, t, s, n), + t.child + ) + case 6: + return (null === e && Bo(t), null) + case 13: + return Zi(e, t, n) + case 4: + return (To(t, t.stateNode.containerInfo), (r = t.pendingProps), null === e ? (t.child = $o(t, null, r, n)) : Mi(e, t, r, n), t.child) + case 11: + return ((r = t.type), (a = t.pendingProps), Fi(e, t, r, (a = t.elementType === r ? a : Ja(r, a)), n)) + case 7: + return (Mi(e, t, t.pendingProps, n), t.child) + case 8: + case 12: + return (Mi(e, t, t.pendingProps.children, n), t.child) + case 10: + e: { + ;((r = t.type._context), (a = t.pendingProps), (s = t.memoizedProps), (o = a.value)) + var l = t.type._context + if ((ca(Ya, l._currentValue), (l._currentValue = o), null !== s)) + if ( + ((l = s.value), + 0 == (o = ur(l, o) ? 0 : 0 | ('function' == typeof r._calculateChangedBits ? r._calculateChangedBits(l, o) : 1073741823))) + ) { + if (s.children === a.children && !pa.current) { + t = rs(e, t, n) + break e + } + } else + for (null !== (l = t.child) && (l.return = t); null !== l; ) { + var u = l.dependencies + if (null !== u) { + s = l.child + for (var c = u.firstContext; null !== c; ) { + if (c.context === r && 0 != (c.observedBits & o)) { + ;(1 === l.tag && (((c = uo(-1, n & -n)).tag = 2), co(l, c)), + (l.lanes |= n), + null !== (c = l.alternate) && (c.lanes |= n), + ro(l.return, n), + (u.lanes |= n)) + break + } + c = c.next + } + } else s = 10 === l.tag && l.type === t.type ? null : l.child + if (null !== s) s.return = l + else + for (s = l; null !== s; ) { + if (s === t) { + s = null + break + } + if (null !== (l = s.sibling)) { + ;((l.return = s.return), (s = l)) + break + } + s = s.return + } + l = s + } + ;(Mi(e, t, a.children, n), (t = t.child)) + } + return t + case 9: + return ( + (a = t.type), + (r = (o = t.pendingProps).children), + ao(t, n), + (r = r((a = oo(a, o.unstable_observedBits)))), + (t.flags |= 1), + Mi(e, t, r, n), + t.child + ) + case 14: + return ((o = Ja((a = t.type), t.pendingProps)), zi(e, t, a, (o = Ja(a.type, o)), r, n)) + case 15: + return Li(e, t, t.type, t.pendingProps, r, n) + case 17: + return ( + (r = t.type), + (a = t.pendingProps), + (a = t.elementType === r ? a : Ja(r, a)), + null !== e && ((e.alternate = null), (t.alternate = null), (t.flags |= 2)), + (t.tag = 1), + ga(r) ? ((e = !0), wa(t)) : (e = !1), + ao(t, n), + bo(t, r, a), + _o(t, r, a, n), + Hi(null, t, r, !0, e, n) + ) + case 19: + return ns(e, t, n) + case 23: + case 24: + return Vi(e, t, n) + } + throw Error(i(156, t.tag)) + }), + (tu.prototype.render = function (e) { + Yl(e, this._internalRoot, null, null) + }), + (tu.prototype.unmount = function () { + var e = this._internalRoot, + t = e.containerInfo + Yl(null, e, null, function () { + t[Xr] = null + }) + }), + (et = function (e) { + 13 === e.tag && (dl(e, 4, cl()), eu(e, 4)) + }), + (tt = function (e) { + 13 === e.tag && (dl(e, 67108864, cl()), eu(e, 67108864)) + }), + (nt = function (e) { + if (13 === e.tag) { + var t = cl(), + n = fl(e) + ;(dl(e, n, t), eu(e, n)) + } + }), + (rt = function (e, t) { + return t() + }), + ($e = function (e, t, n) { + switch (t) { + case 'input': + if ((ne(e, n), (t = n.name), 'radio' === n.type && null != t)) { + for (n = e; n.parentNode; ) n = n.parentNode + for (n = n.querySelectorAll('input[name=' + JSON.stringify('' + t) + '][type="radio"]'), t = 0; t < n.length; t++) { + var r = n[t] + if (r !== e && r.form === e.form) { + var a = aa(r) + if (!a) throw Error(i(90)) + ;(Y(r), ne(r, a)) + } + } + } + break + case 'textarea': + ue(e, n) + break + case 'select': + null != (t = n.value) && ie(e, !!n.multiple, t, !1) + } + }), + (Ie = yl), + (Te = function (e, t, n, r, a) { + var o = js + js |= 4 + try { + return Ha(98, e.bind(null, t, n, r, a)) + } finally { + 0 === (js = o) && (Hs(), Ka()) + } + }), + (Ae = function () { + 0 == (49 & js) && + ((function () { + if (null !== nl) { + var e = nl + ;((nl = null), + e.forEach(function (e) { + ;((e.expiredLanes |= 24 & e.pendingLanes), hl(e, Ua())) + })) + } + Ka() + })(), + Tl()) + }), + (Re = function (e, t) { + var n = js + js |= 2 + try { + return e(t) + } finally { + 0 === (js = n) && (Hs(), Ka()) + } + })) + var ou = { Events: [na, ra, aa, je, Ne, Tl, { current: !1 }] }, + iu = { findFiberByHostInstance: ta, bundleType: 0, version: '17.0.2', rendererPackageName: 'react-dom' }, + su = { + bundleType: iu.bundleType, + version: iu.version, + rendererPackageName: iu.rendererPackageName, + rendererConfig: iu.rendererConfig, + overrideHookState: null, + overrideHookStateDeletePath: null, + overrideHookStateRenamePath: null, + overrideProps: null, + overridePropsDeletePath: null, + overridePropsRenamePath: null, + setSuspenseHandler: null, + scheduleUpdate: null, + currentDispatcherRef: _.ReactCurrentDispatcher, + findHostInstanceByFiber: function (e) { + return null === (e = Ze(e)) ? null : e.stateNode + }, + findFiberByHostInstance: + iu.findFiberByHostInstance || + function () { + return null + }, + findHostInstancesForRefresh: null, + scheduleRefresh: null, + scheduleRoot: null, + setRefreshHandler: null, + getCurrentFiber: null, + } + if ('undefined' != typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) { + var lu = __REACT_DEVTOOLS_GLOBAL_HOOK__ + if (!lu.isDisabled && lu.supportsFiber) + try { + ;((xa = lu.inject(su)), (Ea = lu)) + } catch (me) {} + } + ;((t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = ou), + (t.createPortal = au), + (t.findDOMNode = function (e) { + if (null == e) return null + if (1 === e.nodeType) return e + var t = e._reactInternals + if (void 0 === t) { + if ('function' == typeof e.render) throw Error(i(188)) + throw Error(i(268, Object.keys(e))) + } + return null === (e = Ze(t)) ? null : e.stateNode + }), + (t.flushSync = function (e, t) { + var n = js + if (0 != (48 & n)) return e(t) + js |= 1 + try { + if (e) return Ha(99, e.bind(null, t)) + } finally { + ;((js = n), Ka()) + } + }), + (t.hydrate = function (e, t, n) { + if (!nu(t)) throw Error(i(200)) + return ru(null, e, t, !0, n) + }), + (t.render = function (e, t, n) { + if (!nu(t)) throw Error(i(200)) + return ru(null, e, t, !1, n) + }), + (t.unmountComponentAtNode = function (e) { + if (!nu(e)) throw Error(i(40)) + return ( + !!e._reactRootContainer && + (bl(function () { + ru(null, null, e, !1, function () { + ;((e._reactRootContainer = null), (e[Xr] = null)) + }) + }), + !0) + ) + }), + (t.unstable_batchedUpdates = yl), + (t.unstable_createPortal = function (e, t) { + return au(e, t, 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null) + }), + (t.unstable_renderSubtreeIntoContainer = function (e, t, n, r) { + if (!nu(n)) throw Error(i(200)) + if (null == e || void 0 === e._reactInternals) throw Error(i(38)) + return ru(e, t, n, !1, r) + }), + (t.version = '17.0.2')) + }, + 3935: (e, t, n) => { + 'use strict' + ;(!(function e() { + if ('undefined' != typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && 'function' == typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE) + try { + __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e) + } catch (e) { + console.error(e) + } + })(), + (e.exports = n(4448))) + }, + 8465: function (e, t, n) { + 'use strict' + var r = + (this && this.__assign) || + function () { + return ( + (r = + Object.assign || + function (e) { + for (var t, n = 1, r = arguments.length; n < r; n++) + for (var a in (t = arguments[n])) Object.prototype.hasOwnProperty.call(t, a) && (e[a] = t[a]) + return e + }), + r.apply(this, arguments) + ) + }, + a = + (this && this.__createBinding) || + (Object.create + ? function (e, t, n, r) { + ;(void 0 === r && (r = n), + Object.defineProperty(e, r, { + enumerable: !0, + get: function () { + return t[n] + }, + })) + } + : function (e, t, n, r) { + ;(void 0 === r && (r = n), (e[r] = t[n])) + }), + o = + (this && this.__setModuleDefault) || + (Object.create + ? function (e, t) { + Object.defineProperty(e, 'default', { enumerable: !0, value: t }) + } + : function (e, t) { + e.default = t + }), + i = + (this && this.__importStar) || + function (e) { + if (e && e.__esModule) return e + var t = {} + if (null != e) for (var n in e) 'default' !== n && Object.prototype.hasOwnProperty.call(e, n) && a(t, e, n) + return (o(t, e), t) + } + ;(Object.defineProperty(t, '__esModule', { value: !0 }), (t.Step = t.Steps = void 0)) + var s = i(n(7294)), + l = s.default.createContext({ + size: 0, + current: 1, + progress: 0, + allSteps: [], + state: {}, + handleChange: function (e) {}, + setState: function (e, t) {}, + getState: function (e, t) { + return '' + }, + next: function () {}, + prev: function () {}, + jump: function (e) {}, + }), + u = s.default.createContext({ order: 0 }) + ;((t.Steps = function (e) { + var t, + n, + a = e.children, + o = e.config, + i = s.default.Children.toArray(a), + c = function (e) { + var t, n + if (null === (t = null == o ? void 0 : o.navigation) || void 0 === t ? void 0 : t.component) { + var a = null === (n = null == o ? void 0 : o.navigation) || void 0 === n ? void 0 : n.component + return s.default.createElement(a, r({}, e)) + } + }, + f = i.map(function (e, t) { + return { title: e.props.title || 'Step ' + (t + 1), order: t + 1 } + }), + d = i.length, + p = s.useState(1), + h = p[0], + m = p[1], + g = s.useState({}), + v = g[0], + y = g[1], + b = s.useState(0), + w = b[0], + _ = b[1] + s.useEffect( + function () { + _(1 === h ? 0 : h === d ? 1 : Number(((h - 1) / (d - 1)).toFixed(2))) + }, + [h, _, d], + ) + var x = { + size: d, + current: h, + progress: w, + allSteps: f, + state: v, + handleChange: function (e) { + var t = e.currentTarget.name, + n = 'checkbox' === e.currentTarget.type ? e.currentTarget.checked : e.currentTarget.value, + r = Object.assign({}, v) + ;((r[t] = n), y(r)) + }, + setState: function (e, t) { + var n = Object.assign({}, v) + ;((n[e] = t), y(n)) + }, + getState: function (e, t) { + return e in v ? v[e] : t + }, + next: function () { + h < d && m(h + 1) + }, + prev: function () { + h > 1 && m(h - 1) + }, + jump: function (e) { + e >= 1 && e <= d && m(e) + }, + } + return s.default.createElement( + l.Provider, + { value: x }, + (null == o ? void 0 : o.before) && + (function (e) { + if (null == o ? void 0 : o.before) { + var t = o.before + return s.default.createElement(t, r({}, e)) + } + })(x), + 'before' === (null === (t = null == o ? void 0 : o.navigation) || void 0 === t ? void 0 : t.location) && c(x), + s.default.Children.map(a, function (e, t) { + return s.default.createElement(u.Provider, { value: { order: t + 1 } }, e) + }), + 'after' === (null === (n = null == o ? void 0 : o.navigation) || void 0 === n ? void 0 : n.location) && c(x), + (null == o ? void 0 : o.after) && + (function (e) { + if (null == o ? void 0 : o.after) { + var t = o.after + return s.default.createElement(t, r({}, e)) + } + })(x), + ) + }), + (t.Step = function (e) { + var t = s.useContext(u).order, + n = e.title, + a = e.component, + o = e.beforeStepChange, + i = s.useContext(l), + c = i.size, + f = i.current + if ( + (s.useEffect( + function () { + return function () { + f === t && o && o() + } + }, + [f, t, o], + ), + t === f) + ) { + var d = Object.assign({}, e) + delete d.component + var p = 'Step ' + t + return s.default.createElement( + a, + r({}, d, i, { + title: n || p, + order: t, + hasPrev: function () { + return t > 1 + }, + hasNext: function () { + return t < c + }, + isFirst: function () { + return 1 === t + }, + isLast: function () { + return t === c + }, + }), + ) + } + return null + })) + }, + 2408: (e, t, n) => { + 'use strict' + var r = n(7418), + a = 60103, + o = 60106 + ;((t.Fragment = 60107), (t.StrictMode = 60108), (t.Profiler = 60114)) + var i = 60109, + s = 60110, + l = 60112 + t.Suspense = 60113 + var u = 60115, + c = 60116 + if ('function' == typeof Symbol && Symbol.for) { + var f = Symbol.for + ;((a = f('react.element')), + (o = f('react.portal')), + (t.Fragment = f('react.fragment')), + (t.StrictMode = f('react.strict_mode')), + (t.Profiler = f('react.profiler')), + (i = f('react.provider')), + (s = f('react.context')), + (l = f('react.forward_ref')), + (t.Suspense = f('react.suspense')), + (u = f('react.memo')), + (c = f('react.lazy'))) + } + var d = 'function' == typeof Symbol && Symbol.iterator + function p(e) { + for (var t = 'https://reactjs.org/docs/error-decoder.html?invariant=' + e, n = 1; n < arguments.length; n++) + t += '&args[]=' + encodeURIComponent(arguments[n]) + return ( + 'Minified React error #' + + e + + '; visit ' + + t + + ' for the full message or use the non-minified dev environment for full errors and additional helpful warnings.' + ) + } + var h = { + isMounted: function () { + return !1 + }, + enqueueForceUpdate: function () {}, + enqueueReplaceState: function () {}, + enqueueSetState: function () {}, + }, + m = {} + function g(e, t, n) { + ;((this.props = e), (this.context = t), (this.refs = m), (this.updater = n || h)) + } + function v() {} + function y(e, t, n) { + ;((this.props = e), (this.context = t), (this.refs = m), (this.updater = n || h)) + } + ;((g.prototype.isReactComponent = {}), + (g.prototype.setState = function (e, t) { + if ('object' != typeof e && 'function' != typeof e && null != e) throw Error(p(85)) + this.updater.enqueueSetState(this, e, t, 'setState') + }), + (g.prototype.forceUpdate = function (e) { + this.updater.enqueueForceUpdate(this, e, 'forceUpdate') + }), + (v.prototype = g.prototype)) + var b = (y.prototype = new v()) + ;((b.constructor = y), r(b, g.prototype), (b.isPureReactComponent = !0)) + var w = { current: null }, + _ = Object.prototype.hasOwnProperty, + x = { key: !0, ref: !0, __self: !0, __source: !0 } + function E(e, t, n) { + var r, + o = {}, + i = null, + s = null + if (null != t) + for (r in (void 0 !== t.ref && (s = t.ref), void 0 !== t.key && (i = '' + t.key), t)) + _.call(t, r) && !x.hasOwnProperty(r) && (o[r] = t[r]) + var l = arguments.length - 2 + if (1 === l) o.children = n + else if (1 < l) { + for (var u = Array(l), c = 0; c < l; c++) u[c] = arguments[c + 2] + o.children = u + } + if (e && e.defaultProps) for (r in (l = e.defaultProps)) void 0 === o[r] && (o[r] = l[r]) + return { $$typeof: a, type: e, key: i, ref: s, props: o, _owner: w.current } + } + function k(e) { + return 'object' == typeof e && null !== e && e.$$typeof === a + } + var S = /\/+/g + function $(e, t) { + return 'object' == typeof e && null !== e && null != e.key + ? (function (e) { + var t = { '=': '=0', ':': '=2' } + return ( + '$' + + e.replace(/[=:]/g, function (e) { + return t[e] + }) + ) + })('' + e.key) + : t.toString(36) + } + function P(e, t, n, r, i) { + var s = typeof e + ;('undefined' !== s && 'boolean' !== s) || (e = null) + var l = !1 + if (null === e) l = !0 + else + switch (s) { + case 'string': + case 'number': + l = !0 + break + case 'object': + switch (e.$$typeof) { + case a: + case o: + l = !0 + } + } + if (l) + return ( + (i = i((l = e))), + (e = '' === r ? '.' + $(l, 0) : r), + Array.isArray(i) + ? ((n = ''), + null != e && (n = e.replace(S, '$&/') + '/'), + P(i, t, n, '', function (e) { + return e + })) + : null != i && + (k(i) && + (i = (function (e, t) { + return { $$typeof: a, type: e.type, key: t, ref: e.ref, props: e.props, _owner: e._owner } + })(i, n + (!i.key || (l && l.key === i.key) ? '' : ('' + i.key).replace(S, '$&/') + '/') + e)), + t.push(i)), + 1 + ) + if (((l = 0), (r = '' === r ? '.' : r + ':'), Array.isArray(e))) + for (var u = 0; u < e.length; u++) { + var c = r + $((s = e[u]), u) + l += P(s, t, n, c, i) + } + else if ( + ((c = (function (e) { + return null === e || 'object' != typeof e ? null : 'function' == typeof (e = (d && e[d]) || e['@@iterator']) ? e : null + })(e)), + 'function' == typeof c) + ) + for (e = c.call(e), u = 0; !(s = e.next()).done; ) l += P((s = s.value), t, n, (c = r + $(s, u++)), i) + else if ('object' === s) + throw ((t = '' + e), Error(p(31, '[object Object]' === t ? 'object with keys {' + Object.keys(e).join(', ') + '}' : t))) + return l + } + function O(e, t, n) { + if (null == e) return e + var r = [], + a = 0 + return ( + P(e, r, '', '', function (e) { + return t.call(n, e, a++) + }), + r + ) + } + function C(e) { + if (-1 === e._status) { + var t = e._result + ;((t = t()), + (e._status = 0), + (e._result = t), + t.then( + function (t) { + 0 === e._status && ((t = t.default), (e._status = 1), (e._result = t)) + }, + function (t) { + 0 === e._status && ((e._status = 2), (e._result = t)) + }, + )) + } + if (1 === e._status) return e._result + throw e._result + } + var j = { current: null } + function N() { + var e = j.current + if (null === e) throw Error(p(321)) + return e + } + var I = { + ReactCurrentDispatcher: j, + ReactCurrentBatchConfig: { transition: 0 }, + ReactCurrentOwner: w, + IsSomeRendererActing: { current: !1 }, + assign: r, + } + ;((t.Children = { + map: O, + forEach: function (e, t, n) { + O( + e, + function () { + t.apply(this, arguments) + }, + n, + ) + }, + count: function (e) { + var t = 0 + return ( + O(e, function () { + t++ + }), + t + ) + }, + toArray: function (e) { + return ( + O(e, function (e) { + return e + }) || [] + ) + }, + only: function (e) { + if (!k(e)) throw Error(p(143)) + return e + }, + }), + (t.Component = g), + (t.PureComponent = y), + (t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = I), + (t.cloneElement = function (e, t, n) { + if (null == e) throw Error(p(267, e)) + var o = r({}, e.props), + i = e.key, + s = e.ref, + l = e._owner + if (null != t) { + if ((void 0 !== t.ref && ((s = t.ref), (l = w.current)), void 0 !== t.key && (i = '' + t.key), e.type && e.type.defaultProps)) + var u = e.type.defaultProps + for (c in t) _.call(t, c) && !x.hasOwnProperty(c) && (o[c] = void 0 === t[c] && void 0 !== u ? u[c] : t[c]) + } + var c = arguments.length - 2 + if (1 === c) o.children = n + else if (1 < c) { + u = Array(c) + for (var f = 0; f < c; f++) u[f] = arguments[f + 2] + o.children = u + } + return { $$typeof: a, type: e.type, key: i, ref: s, props: o, _owner: l } + }), + (t.createContext = function (e, t) { + return ( + void 0 === t && (t = null), + ((e = { + $$typeof: s, + _calculateChangedBits: t, + _currentValue: e, + _currentValue2: e, + _threadCount: 0, + Provider: null, + Consumer: null, + }).Provider = { $$typeof: i, _context: e }), + (e.Consumer = e) + ) + }), + (t.createElement = E), + (t.createFactory = function (e) { + var t = E.bind(null, e) + return ((t.type = e), t) + }), + (t.createRef = function () { + return { current: null } + }), + (t.forwardRef = function (e) { + return { $$typeof: l, render: e } + }), + (t.isValidElement = k), + (t.lazy = function (e) { + return { $$typeof: c, _payload: { _status: -1, _result: e }, _init: C } + }), + (t.memo = function (e, t) { + return { $$typeof: u, type: e, compare: void 0 === t ? null : t } + }), + (t.useCallback = function (e, t) { + return N().useCallback(e, t) + }), + (t.useContext = function (e, t) { + return N().useContext(e, t) + }), + (t.useDebugValue = function () {}), + (t.useEffect = function (e, t) { + return N().useEffect(e, t) + }), + (t.useImperativeHandle = function (e, t, n) { + return N().useImperativeHandle(e, t, n) + }), + (t.useLayoutEffect = function (e, t) { + return N().useLayoutEffect(e, t) + }), + (t.useMemo = function (e, t) { + return N().useMemo(e, t) + }), + (t.useReducer = function (e, t, n) { + return N().useReducer(e, t, n) + }), + (t.useRef = function (e) { + return N().useRef(e) + }), + (t.useState = function (e) { + return N().useState(e) + }), + (t.version = '17.0.2')) + }, + 7294: (e, t, n) => { + 'use strict' + e.exports = n(2408) + }, + 53: (e, t) => { + 'use strict' + var n, r, a, o + if ('object' == typeof performance && 'function' == typeof performance.now) { + var i = performance + t.unstable_now = function () { + return i.now() + } + } else { + var s = Date, + l = s.now() + t.unstable_now = function () { + return s.now() - l + } + } + if ('undefined' == typeof window || 'function' != typeof MessageChannel) { + var u = null, + c = null, + f = function () { + if (null !== u) + try { + var e = t.unstable_now() + ;(u(!0, e), (u = null)) + } catch (e) { + throw (setTimeout(f, 0), e) + } + } + ;((n = function (e) { + null !== u ? setTimeout(n, 0, e) : ((u = e), setTimeout(f, 0)) + }), + (r = function (e, t) { + c = setTimeout(e, t) + }), + (a = function () { + clearTimeout(c) + }), + (t.unstable_shouldYield = function () { + return !1 + }), + (o = t.unstable_forceFrameRate = function () {})) + } else { + var d = window.setTimeout, + p = window.clearTimeout + if ('undefined' != typeof console) { + var h = window.cancelAnimationFrame + ;('function' != typeof window.requestAnimationFrame && + console.error( + "This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills", + ), + 'function' != typeof h && + console.error( + "This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills", + )) + } + var m = !1, + g = null, + v = -1, + y = 5, + b = 0 + ;((t.unstable_shouldYield = function () { + return t.unstable_now() >= b + }), + (o = function () {}), + (t.unstable_forceFrameRate = function (e) { + 0 > e || 125 < e + ? console.error('forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported') + : (y = 0 < e ? Math.floor(1e3 / e) : 5) + })) + var w = new MessageChannel(), + _ = w.port2 + ;((w.port1.onmessage = function () { + if (null !== g) { + var e = t.unstable_now() + b = e + y + try { + g(!0, e) ? _.postMessage(null) : ((m = !1), (g = null)) + } catch (e) { + throw (_.postMessage(null), e) + } + } else m = !1 + }), + (n = function (e) { + ;((g = e), m || ((m = !0), _.postMessage(null))) + }), + (r = function (e, n) { + v = d(function () { + e(t.unstable_now()) + }, n) + }), + (a = function () { + ;(p(v), (v = -1)) + })) + } + function x(e, t) { + var n = e.length + e.push(t) + e: for (;;) { + var r = (n - 1) >>> 1, + a = e[r] + if (!(void 0 !== a && 0 < S(a, t))) break e + ;((e[r] = t), (e[n] = a), (n = r)) + } + } + function E(e) { + return void 0 === (e = e[0]) ? null : e + } + function k(e) { + var t = e[0] + if (void 0 !== t) { + var n = e.pop() + if (n !== t) { + e[0] = n + e: for (var r = 0, a = e.length; r < a; ) { + var o = 2 * (r + 1) - 1, + i = e[o], + s = o + 1, + l = e[s] + if (void 0 !== i && 0 > S(i, n)) void 0 !== l && 0 > S(l, i) ? ((e[r] = l), (e[s] = n), (r = s)) : ((e[r] = i), (e[o] = n), (r = o)) + else { + if (!(void 0 !== l && 0 > S(l, n))) break e + ;((e[r] = l), (e[s] = n), (r = s)) + } + } + } + return t + } + return null + } + function S(e, t) { + var n = e.sortIndex - t.sortIndex + return 0 !== n ? n : e.id - t.id + } + var $ = [], + P = [], + O = 1, + C = null, + j = 3, + N = !1, + I = !1, + T = !1 + function A(e) { + for (var t = E(P); null !== t; ) { + if (null === t.callback) k(P) + else { + if (!(t.startTime <= e)) break + ;(k(P), (t.sortIndex = t.expirationTime), x($, t)) + } + t = E(P) + } + } + function R(e) { + if (((T = !1), A(e), !I)) + if (null !== E($)) ((I = !0), n(D)) + else { + var t = E(P) + null !== t && r(R, t.startTime - e) + } + } + function D(e, n) { + ;((I = !1), T && ((T = !1), a()), (N = !0)) + var o = j + try { + for (A(n), C = E($); null !== C && (!(C.expirationTime > n) || (e && !t.unstable_shouldYield())); ) { + var i = C.callback + if ('function' == typeof i) { + ;((C.callback = null), (j = C.priorityLevel)) + var s = i(C.expirationTime <= n) + ;((n = t.unstable_now()), 'function' == typeof s ? (C.callback = s) : C === E($) && k($), A(n)) + } else k($) + C = E($) + } + if (null !== C) var l = !0 + else { + var u = E(P) + ;(null !== u && r(R, u.startTime - n), (l = !1)) + } + return l + } finally { + ;((C = null), (j = o), (N = !1)) + } + } + var M = o + ;((t.unstable_IdlePriority = 5), + (t.unstable_ImmediatePriority = 1), + (t.unstable_LowPriority = 4), + (t.unstable_NormalPriority = 3), + (t.unstable_Profiling = null), + (t.unstable_UserBlockingPriority = 2), + (t.unstable_cancelCallback = function (e) { + e.callback = null + }), + (t.unstable_continueExecution = function () { + I || N || ((I = !0), n(D)) + }), + (t.unstable_getCurrentPriorityLevel = function () { + return j + }), + (t.unstable_getFirstCallbackNode = function () { + return E($) + }), + (t.unstable_next = function (e) { + switch (j) { + case 1: + case 2: + case 3: + var t = 3 + break + default: + t = j + } + var n = j + j = t + try { + return e() + } finally { + j = n + } + }), + (t.unstable_pauseExecution = function () {}), + (t.unstable_requestPaint = M), + (t.unstable_runWithPriority = function (e, t) { + switch (e) { + case 1: + case 2: + case 3: + case 4: + case 5: + break + default: + e = 3 + } + var n = j + j = e + try { + return t() + } finally { + j = n + } + }), + (t.unstable_scheduleCallback = function (e, o, i) { + var s = t.unstable_now() + switch (((i = 'object' == typeof i && null !== i && 'number' == typeof (i = i.delay) && 0 < i ? s + i : s), e)) { + case 1: + var l = -1 + break + case 2: + l = 250 + break + case 5: + l = 1073741823 + break + case 4: + l = 1e4 + break + default: + l = 5e3 + } + return ( + (e = { id: O++, callback: o, priorityLevel: e, startTime: i, expirationTime: (l = i + l), sortIndex: -1 }), + i > s + ? ((e.sortIndex = i), x(P, e), null === E($) && e === E(P) && (T ? a() : (T = !0), r(R, i - s))) + : ((e.sortIndex = l), x($, e), I || N || ((I = !0), n(D))), + e + ) + }), + (t.unstable_wrapCallback = function (e) { + var t = j + return function () { + var n = j + j = t + try { + return e.apply(this, arguments) + } finally { + j = n + } + } + })) + }, + 3840: (e, t, n) => { + 'use strict' + e.exports = n(53) + }, + 5864: (e, t, n) => { + var r = n(3379), + a = n(5287) + 'string' == typeof (a = a.__esModule ? a.default : a) && (a = [[e.id, a, '']]) + ;(r(a, { insert: 'head', singleton: !1 }), (e.exports = a.locals || {})) + }, + 3379: (e, t, n) => { + 'use strict' + var r, + a = (function () { + var e = {} + return function (t) { + if (void 0 === e[t]) { + var n = document.querySelector(t) + if (window.HTMLIFrameElement && n instanceof window.HTMLIFrameElement) + try { + n = n.contentDocument.head + } catch (e) { + n = null + } + e[t] = n + } + return e[t] + } + })(), + o = [] + function i(e) { + for (var t = -1, n = 0; n < o.length; n++) + if (o[n].identifier === e) { + t = n + break + } + return t + } + function s(e, t) { + for (var n = {}, r = [], a = 0; a < e.length; a++) { + var s = e[a], + l = t.base ? s[0] + t.base : s[0], + u = n[l] || 0, + c = ''.concat(l, ' ').concat(u) + n[l] = u + 1 + var f = i(c), + d = { css: s[1], media: s[2], sourceMap: s[3] } + ;(-1 !== f ? (o[f].references++, o[f].updater(d)) : o.push({ identifier: c, updater: m(d, t), references: 1 }), r.push(c)) + } + return r + } + function l(e) { + var t = document.createElement('style'), + r = e.attributes || {} + if (void 0 === r.nonce) { + var o = n.nc + o && (r.nonce = o) + } + if ( + (Object.keys(r).forEach(function (e) { + t.setAttribute(e, r[e]) + }), + 'function' == typeof e.insert) + ) + e.insert(t) + else { + var i = a(e.insert || 'head') + if (!i) throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.") + i.appendChild(t) + } + return t + } + var u, + c = + ((u = []), + function (e, t) { + return ((u[e] = t), u.filter(Boolean).join('\n')) + }) + function f(e, t, n, r) { + var a = n ? '' : r.media ? '@media '.concat(r.media, ' {').concat(r.css, '}') : r.css + if (e.styleSheet) e.styleSheet.cssText = c(t, a) + else { + var o = document.createTextNode(a), + i = e.childNodes + ;(i[t] && e.removeChild(i[t]), i.length ? e.insertBefore(o, i[t]) : e.appendChild(o)) + } + } + function d(e, t, n) { + var r = n.css, + a = n.media, + o = n.sourceMap + if ( + (a ? e.setAttribute('media', a) : e.removeAttribute('media'), + o && + 'undefined' != typeof btoa && + (r += '\n/*# sourceMappingURL=data:application/json;base64,'.concat(btoa(unescape(encodeURIComponent(JSON.stringify(o)))), ' */')), + e.styleSheet) + ) + e.styleSheet.cssText = r + else { + for (; e.firstChild; ) e.removeChild(e.firstChild) + e.appendChild(document.createTextNode(r)) + } + } + var p = null, + h = 0 + function m(e, t) { + var n, r, a + if (t.singleton) { + var o = h++ + ;((n = p || (p = l(t))), (r = f.bind(null, n, o, !1)), (a = f.bind(null, n, o, !0))) + } else + ((n = l(t)), + (r = d.bind(null, n, t)), + (a = function () { + !(function (e) { + if (null === e.parentNode) return !1 + e.parentNode.removeChild(e) + })(n) + })) + return ( + r(e), + function (t) { + if (t) { + if (t.css === e.css && t.media === e.media && t.sourceMap === e.sourceMap) return + r((e = t)) + } else a() + } + ) + } + e.exports = function (e, t) { + ;(t = t || {}).singleton || + 'boolean' == typeof t.singleton || + (t.singleton = (void 0 === r && (r = Boolean(window && document && document.all && !window.atob)), r)) + var n = s((e = e || []), t) + return function (e) { + if (((e = e || []), '[object Array]' === Object.prototype.toString.call(e))) { + for (var r = 0; r < n.length; r++) { + var a = i(n[r]) + o[a].references-- + } + for (var l = s(e, t), u = 0; u < n.length; u++) { + var c = i(n[u]) + 0 === o[c].references && (o[c].updater(), o.splice(c, 1)) + } + n = l + } + } + } + }, + 540: function (e, t) { + !(function (e) { + 'use strict' + function t() { + for (var e = arguments.length, t = Array(e), n = 0; n < e; n++) t[n] = arguments[n] + if (t.length > 1) { + t[0] = t[0].slice(0, -1) + for (var r = t.length - 1, a = 1; a < r; ++a) t[a] = t[a].slice(1, -1) + return ((t[r] = t[r].slice(1)), t.join('')) + } + return t[0] + } + function n(e) { + return '(?:' + e + ')' + } + function r(e) { + return void 0 === e + ? 'undefined' + : null === e + ? 'null' + : Object.prototype.toString.call(e).split(' ').pop().split(']').shift().toLowerCase() + } + function a(e) { + return e.toUpperCase() + } + function o(e) { + var r = '[A-Za-z]', + a = '[0-9]', + o = t(a, '[A-Fa-f]'), + i = n(n('%[EFef]' + o + '%' + o + o + '%' + o + o) + '|' + n('%[89A-Fa-f]' + o + '%' + o + o) + '|' + n('%' + o + o)), + s = "[\\!\\$\\&\\'\\(\\)\\*\\+\\,\\;\\=]", + l = t('[\\:\\/\\?\\#\\[\\]\\@]', s), + u = e ? '[\\uE000-\\uF8FF]' : '[]', + c = t(r, a, '[\\-\\.\\_\\~]', e ? '[\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]' : '[]'), + f = n(r + t(r, a, '[\\+\\-\\.]') + '*'), + d = n(n(i + '|' + t(c, s, '[\\:]')) + '*'), + p = + (n(n('25[0-5]') + '|' + n('2[0-4]' + a) + '|' + n('1' + a + a) + '|' + n('[1-9]' + a) + '|' + a), + n(n('25[0-5]') + '|' + n('2[0-4]' + a) + '|' + n('1' + a + a) + '|' + n('0?[1-9]' + a) + '|0?0?' + a)), + h = n(p + '\\.' + p + '\\.' + p + '\\.' + p), + m = n(o + '{1,4}'), + g = n(n(m + '\\:' + m) + '|' + h), + v = n(n(m + '\\:') + '{6}' + g), + y = n('\\:\\:' + n(m + '\\:') + '{5}' + g), + b = n(n(m) + '?\\:\\:' + n(m + '\\:') + '{4}' + g), + w = n(n(n(m + '\\:') + '{0,1}' + m) + '?\\:\\:' + n(m + '\\:') + '{3}' + g), + _ = n(n(n(m + '\\:') + '{0,2}' + m) + '?\\:\\:' + n(m + '\\:') + '{2}' + g), + x = n(n(n(m + '\\:') + '{0,3}' + m) + '?\\:\\:' + m + '\\:' + g), + E = n(n(n(m + '\\:') + '{0,4}' + m) + '?\\:\\:' + g), + k = n(n(n(m + '\\:') + '{0,5}' + m) + '?\\:\\:' + m), + S = n(n(n(m + '\\:') + '{0,6}' + m) + '?\\:\\:'), + $ = n([v, y, b, w, _, x, E, k, S].join('|')), + P = n(n(c + '|' + i) + '+'), + O = (n($ + '\\%25' + P), n($ + n('\\%25|\\%(?!' + o + '{2})') + P)), + C = n('[vV]' + o + '+\\.' + t(c, s, '[\\:]') + '+'), + j = n('\\[' + n(O + '|' + $ + '|' + C) + '\\]'), + N = n(n(i + '|' + t(c, s)) + '*'), + I = n(j + '|' + h + '(?!' + N + ')|' + N), + T = n(a + '*'), + A = n(n(d + '@') + '?' + I + n('\\:' + T) + '?'), + R = n(i + '|' + t(c, s, '[\\:\\@]')), + D = n(R + '*'), + M = n(R + '+'), + F = n(n(i + '|' + t(c, s, '[\\@]')) + '+'), + z = n(n('\\/' + D) + '*'), + L = n('\\/' + n(M + z) + '?'), + V = n(F + z), + U = n(M + z), + q = '(?!' + R + ')', + B = (n(z + '|' + L + '|' + V + '|' + U + '|' + q), n(n(R + '|' + t('[\\/\\?]', u)) + '*')), + H = n(n(R + '|[\\/\\?]') + '*'), + W = n(n('\\/\\/' + A + z) + '|' + L + '|' + U + '|' + q), + K = n(f + '\\:' + W + n('\\?' + B) + '?' + n('\\#' + H) + '?'), + Q = n(n('\\/\\/' + A + z) + '|' + L + '|' + V + '|' + q), + G = n(Q + n('\\?' + B) + '?' + n('\\#' + H) + '?') + return ( + n(K + '|' + G), + n(f + '\\:' + W + n('\\?' + B) + '?'), + n(n('\\/\\/(' + n('(' + d + ')@') + '?(' + I + ')' + n('\\:(' + T + ')') + '?)') + '?(' + z + '|' + L + '|' + U + '|' + q + ')'), + n('\\?(' + B + ')'), + n('\\#(' + H + ')'), + n(n('\\/\\/(' + n('(' + d + ')@') + '?(' + I + ')' + n('\\:(' + T + ')') + '?)') + '?(' + z + '|' + L + '|' + V + '|' + q + ')'), + n('\\?(' + B + ')'), + n('\\#(' + H + ')'), + n(n('\\/\\/(' + n('(' + d + ')@') + '?(' + I + ')' + n('\\:(' + T + ')') + '?)') + '?(' + z + '|' + L + '|' + U + '|' + q + ')'), + n('\\?(' + B + ')'), + n('\\#(' + H + ')'), + n('(' + d + ')@'), + n('\\:(' + T + ')'), + { + NOT_SCHEME: new RegExp(t('[^]', r, a, '[\\+\\-\\.]'), 'g'), + NOT_USERINFO: new RegExp(t('[^\\%\\:]', c, s), 'g'), + NOT_HOST: new RegExp(t('[^\\%\\[\\]\\:]', c, s), 'g'), + NOT_PATH: new RegExp(t('[^\\%\\/\\:\\@]', c, s), 'g'), + NOT_PATH_NOSCHEME: new RegExp(t('[^\\%\\/\\@]', c, s), 'g'), + NOT_QUERY: new RegExp(t('[^\\%]', c, s, '[\\:\\@\\/\\?]', u), 'g'), + NOT_FRAGMENT: new RegExp(t('[^\\%]', c, s, '[\\:\\@\\/\\?]'), 'g'), + ESCAPE: new RegExp(t('[^]', c, s), 'g'), + UNRESERVED: new RegExp(c, 'g'), + OTHER_CHARS: new RegExp(t('[^\\%]', c, l), 'g'), + PCT_ENCODED: new RegExp(i, 'g'), + IPV4ADDRESS: new RegExp('^(' + h + ')$'), + IPV6ADDRESS: new RegExp('^\\[?(' + $ + ')' + n(n('\\%25|\\%(?!' + o + '{2})') + '(' + P + ')') + '?\\]?$'), + } + ) + } + var i = o(!1), + s = o(!0), + l = function (e, t) { + if (Array.isArray(e)) return e + if (Symbol.iterator in Object(e)) + return (function (e, t) { + var n = [], + r = !0, + a = !1, + o = void 0 + try { + for (var i, s = e[Symbol.iterator](); !(r = (i = s.next()).done) && (n.push(i.value), !t || n.length !== t); r = !0); + } catch (e) { + ;((a = !0), (o = e)) + } finally { + try { + !r && s.return && s.return() + } finally { + if (a) throw o + } + } + return n + })(e, t) + throw new TypeError('Invalid attempt to destructure non-iterable instance') + }, + u = 2147483647, + c = 36, + f = /^xn--/, + d = /[^\0-\x7E]/, + p = /[\x2E\u3002\uFF0E\uFF61]/g, + h = { + overflow: 'Overflow: input needs wider integers to process', + 'not-basic': 'Illegal input >= 0x80 (not a basic code point)', + 'invalid-input': 'Invalid input', + }, + m = Math.floor, + g = String.fromCharCode + function v(e) { + throw new RangeError(h[e]) + } + function y(e, t) { + var n = e.split('@'), + r = '' + return ( + n.length > 1 && ((r = n[0] + '@'), (e = n[1])), + r + + (function (e, t) { + for (var n = [], r = e.length; r--; ) n[r] = t(e[r]) + return n + })((e = e.replace(p, '.')).split('.'), t).join('.') + ) + } + function b(e) { + for (var t = [], n = 0, r = e.length; n < r; ) { + var a = e.charCodeAt(n++) + if (a >= 55296 && a <= 56319 && n < r) { + var o = e.charCodeAt(n++) + 56320 == (64512 & o) ? t.push(((1023 & a) << 10) + (1023 & o) + 65536) : (t.push(a), n--) + } else t.push(a) + } + return t + } + var w = function (e, t) { + return e + 22 + 75 * (e < 26) - ((0 != t) << 5) + }, + _ = function (e, t, n) { + var r = 0 + for (e = n ? m(e / 700) : e >> 1, e += m(e / t); e > 455; r += c) e = m(e / 35) + return m(r + (36 * e) / (e + 38)) + }, + x = function (e) { + var t, + n = [], + r = e.length, + a = 0, + o = 128, + i = 72, + s = e.lastIndexOf('-') + s < 0 && (s = 0) + for (var l = 0; l < s; ++l) (e.charCodeAt(l) >= 128 && v('not-basic'), n.push(e.charCodeAt(l))) + for (var f = s > 0 ? s + 1 : 0; f < r; ) { + for (var d = a, p = 1, h = c; ; h += c) { + f >= r && v('invalid-input') + var g = (t = e.charCodeAt(f++)) - 48 < 10 ? t - 22 : t - 65 < 26 ? t - 65 : t - 97 < 26 ? t - 97 : c + ;((g >= c || g > m((u - a) / p)) && v('overflow'), (a += g * p)) + var y = h <= i ? 1 : h >= i + 26 ? 26 : h - i + if (g < y) break + var b = c - y + ;(p > m(u / b) && v('overflow'), (p *= b)) + } + var w = n.length + 1 + ;((i = _(a - d, w, 0 == d)), m(a / w) > u - o && v('overflow'), (o += m(a / w)), (a %= w), n.splice(a++, 0, o)) + } + return String.fromCodePoint.apply(String, n) + }, + E = function (e) { + var t = [], + n = (e = b(e)).length, + r = 128, + a = 0, + o = 72, + i = !0, + s = !1, + l = void 0 + try { + for (var f, d = e[Symbol.iterator](); !(i = (f = d.next()).done); i = !0) { + var p = f.value + p < 128 && t.push(g(p)) + } + } catch (e) { + ;((s = !0), (l = e)) + } finally { + try { + !i && d.return && d.return() + } finally { + if (s) throw l + } + } + var h = t.length, + y = h + for (h && t.push('-'); y < n; ) { + var x = u, + E = !0, + k = !1, + S = void 0 + try { + for (var $, P = e[Symbol.iterator](); !(E = ($ = P.next()).done); E = !0) { + var O = $.value + O >= r && O < x && (x = O) + } + } catch (e) { + ;((k = !0), (S = e)) + } finally { + try { + !E && P.return && P.return() + } finally { + if (k) throw S + } + } + var C = y + 1 + ;(x - r > m((u - a) / C) && v('overflow'), (a += (x - r) * C), (r = x)) + var j = !0, + N = !1, + I = void 0 + try { + for (var T, A = e[Symbol.iterator](); !(j = (T = A.next()).done); j = !0) { + var R = T.value + if ((R < r && ++a > u && v('overflow'), R == r)) { + for (var D = a, M = c; ; M += c) { + var F = M <= o ? 1 : M >= o + 26 ? 26 : M - o + if (D < F) break + var z = D - F, + L = c - F + ;(t.push(g(w(F + (z % L), 0))), (D = m(z / L))) + } + ;(t.push(g(w(D, 0))), (o = _(a, C, y == h)), (a = 0), ++y) + } + } + } catch (e) { + ;((N = !0), (I = e)) + } finally { + try { + !j && A.return && A.return() + } finally { + if (N) throw I + } + } + ;(++a, ++r) + } + return t.join('') + }, + k = { + version: '2.1.0', + ucs2: { + decode: b, + encode: function (e) { + return String.fromCodePoint.apply( + String, + (function (e) { + if (Array.isArray(e)) { + for (var t = 0, n = Array(e.length); t < e.length; t++) n[t] = e[t] + return n + } + return Array.from(e) + })(e), + ) + }, + }, + decode: x, + encode: E, + toASCII: function (e) { + return y(e, function (e) { + return d.test(e) ? 'xn--' + E(e) : e + }) + }, + toUnicode: function (e) { + return y(e, function (e) { + return f.test(e) ? x(e.slice(4).toLowerCase()) : e + }) + }, + }, + S = {} + function $(e) { + var t = e.charCodeAt(0) + return t < 16 + ? '%0' + t.toString(16).toUpperCase() + : t < 128 + ? '%' + t.toString(16).toUpperCase() + : t < 2048 + ? '%' + ((t >> 6) | 192).toString(16).toUpperCase() + '%' + ((63 & t) | 128).toString(16).toUpperCase() + : '%' + + ((t >> 12) | 224).toString(16).toUpperCase() + + '%' + + (((t >> 6) & 63) | 128).toString(16).toUpperCase() + + '%' + + ((63 & t) | 128).toString(16).toUpperCase() + } + function P(e) { + for (var t = '', n = 0, r = e.length; n < r; ) { + var a = parseInt(e.substr(n + 1, 2), 16) + if (a < 128) ((t += String.fromCharCode(a)), (n += 3)) + else if (a >= 194 && a < 224) { + if (r - n >= 6) { + var o = parseInt(e.substr(n + 4, 2), 16) + t += String.fromCharCode(((31 & a) << 6) | (63 & o)) + } else t += e.substr(n, 6) + n += 6 + } else if (a >= 224) { + if (r - n >= 9) { + var i = parseInt(e.substr(n + 4, 2), 16), + s = parseInt(e.substr(n + 7, 2), 16) + t += String.fromCharCode(((15 & a) << 12) | ((63 & i) << 6) | (63 & s)) + } else t += e.substr(n, 9) + n += 9 + } else ((t += e.substr(n, 3)), (n += 3)) + } + return t + } + function O(e, t) { + function n(e) { + var n = P(e) + return n.match(t.UNRESERVED) ? n : e + } + return ( + e.scheme && (e.scheme = String(e.scheme).replace(t.PCT_ENCODED, n).toLowerCase().replace(t.NOT_SCHEME, '')), + void 0 !== e.userinfo && + (e.userinfo = String(e.userinfo).replace(t.PCT_ENCODED, n).replace(t.NOT_USERINFO, $).replace(t.PCT_ENCODED, a)), + void 0 !== e.host && (e.host = String(e.host).replace(t.PCT_ENCODED, n).toLowerCase().replace(t.NOT_HOST, $).replace(t.PCT_ENCODED, a)), + void 0 !== e.path && + (e.path = String(e.path) + .replace(t.PCT_ENCODED, n) + .replace(e.scheme ? t.NOT_PATH : t.NOT_PATH_NOSCHEME, $) + .replace(t.PCT_ENCODED, a)), + void 0 !== e.query && (e.query = String(e.query).replace(t.PCT_ENCODED, n).replace(t.NOT_QUERY, $).replace(t.PCT_ENCODED, a)), + void 0 !== e.fragment && + (e.fragment = String(e.fragment).replace(t.PCT_ENCODED, n).replace(t.NOT_FRAGMENT, $).replace(t.PCT_ENCODED, a)), + e + ) + } + function C(e) { + return e.replace(/^0*(.*)/, '$1') || '0' + } + function j(e, t) { + var n = e.match(t.IPV4ADDRESS) || [], + r = l(n, 2)[1] + return r ? r.split('.').map(C).join('.') : e + } + function N(e, t) { + var n = e.match(t.IPV6ADDRESS) || [], + r = l(n, 3), + a = r[1], + o = r[2] + if (a) { + for ( + var i = a.toLowerCase().split('::').reverse(), + s = l(i, 2), + u = s[0], + c = s[1], + f = c ? c.split(':').map(C) : [], + d = u.split(':').map(C), + p = t.IPV4ADDRESS.test(d[d.length - 1]), + h = p ? 7 : 8, + m = d.length - h, + g = Array(h), + v = 0; + v < h; + ++v + ) + g[v] = f[v] || d[m + v] || '' + p && (g[h - 1] = j(g[h - 1], t)) + var y = g + .reduce(function (e, t, n) { + if (!t || '0' === t) { + var r = e[e.length - 1] + r && r.index + r.length === n ? r.length++ : e.push({ index: n, length: 1 }) + } + return e + }, []) + .sort(function (e, t) { + return t.length - e.length + })[0], + b = void 0 + if (y && y.length > 1) { + var w = g.slice(0, y.index), + _ = g.slice(y.index + y.length) + b = w.join(':') + '::' + _.join(':') + } else b = g.join(':') + return (o && (b += '%' + o), b) + } + return e + } + var I = /^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i, + T = void 0 === ''.match(/(){0}/)[1] + function A(e) { + var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, + n = {}, + r = !1 !== t.iri ? s : i + 'suffix' === t.reference && (e = (t.scheme ? t.scheme + ':' : '') + '//' + e) + var a = e.match(I) + if (a) { + ;(T + ? ((n.scheme = a[1]), + (n.userinfo = a[3]), + (n.host = a[4]), + (n.port = parseInt(a[5], 10)), + (n.path = a[6] || ''), + (n.query = a[7]), + (n.fragment = a[8]), + isNaN(n.port) && (n.port = a[5])) + : ((n.scheme = a[1] || void 0), + (n.userinfo = -1 !== e.indexOf('@') ? a[3] : void 0), + (n.host = -1 !== e.indexOf('//') ? a[4] : void 0), + (n.port = parseInt(a[5], 10)), + (n.path = a[6] || ''), + (n.query = -1 !== e.indexOf('?') ? a[7] : void 0), + (n.fragment = -1 !== e.indexOf('#') ? a[8] : void 0), + isNaN(n.port) && (n.port = e.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/) ? a[4] : void 0)), + n.host && (n.host = N(j(n.host, r), r)), + void 0 !== n.scheme || void 0 !== n.userinfo || void 0 !== n.host || void 0 !== n.port || n.path || void 0 !== n.query + ? void 0 === n.scheme + ? (n.reference = 'relative') + : void 0 === n.fragment + ? (n.reference = 'absolute') + : (n.reference = 'uri') + : (n.reference = 'same-document'), + t.reference && + 'suffix' !== t.reference && + t.reference !== n.reference && + (n.error = n.error || 'URI is not a ' + t.reference + ' reference.')) + var o = S[(t.scheme || n.scheme || '').toLowerCase()] + if (t.unicodeSupport || (o && o.unicodeSupport)) O(n, r) + else { + if (n.host && (t.domainHost || (o && o.domainHost))) + try { + n.host = k.toASCII(n.host.replace(r.PCT_ENCODED, P).toLowerCase()) + } catch (e) { + n.error = n.error || "Host's domain name can not be converted to ASCII via punycode: " + e + } + O(n, i) + } + o && o.parse && o.parse(n, t) + } else n.error = n.error || 'URI can not be parsed.' + return n + } + var R = /^\.\.?\//, + D = /^\/\.(\/|$)/, + M = /^\/\.\.(\/|$)/, + F = /^\/?(?:.|\n)*?(?=\/|$)/ + function z(e) { + for (var t = []; e.length; ) + if (e.match(R)) e = e.replace(R, '') + else if (e.match(D)) e = e.replace(D, '/') + else if (e.match(M)) ((e = e.replace(M, '/')), t.pop()) + else if ('.' === e || '..' === e) e = '' + else { + var n = e.match(F) + if (!n) throw new Error('Unexpected dot segment condition') + var r = n[0] + ;((e = e.slice(r.length)), t.push(r)) + } + return t.join('') + } + function L(e) { + var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, + n = t.iri ? s : i, + r = [], + a = S[(t.scheme || e.scheme || '').toLowerCase()] + if ((a && a.serialize && a.serialize(e, t), e.host)) + if (n.IPV6ADDRESS.test(e.host)); + else if (t.domainHost || (a && a.domainHost)) + try { + e.host = t.iri ? k.toUnicode(e.host) : k.toASCII(e.host.replace(n.PCT_ENCODED, P).toLowerCase()) + } catch (n) { + e.error = e.error || "Host's domain name can not be converted to " + (t.iri ? 'Unicode' : 'ASCII') + ' via punycode: ' + n + } + ;(O(e, n), 'suffix' !== t.reference && e.scheme && (r.push(e.scheme), r.push(':'))) + var o = (function (e, t) { + var n = !1 !== t.iri ? s : i, + r = [] + return ( + void 0 !== e.userinfo && (r.push(e.userinfo), r.push('@')), + void 0 !== e.host && + r.push( + N(j(String(e.host), n), n).replace(n.IPV6ADDRESS, function (e, t, n) { + return '[' + t + (n ? '%25' + n : '') + ']' + }), + ), + ('number' != typeof e.port && 'string' != typeof e.port) || (r.push(':'), r.push(String(e.port))), + r.length ? r.join('') : void 0 + ) + })(e, t) + if ( + (void 0 !== o && ('suffix' !== t.reference && r.push('//'), r.push(o), e.path && '/' !== e.path.charAt(0) && r.push('/')), + void 0 !== e.path) + ) { + var l = e.path + ;(t.absolutePath || (a && a.absolutePath) || (l = z(l)), void 0 === o && (l = l.replace(/^\/\//, '/%2F')), r.push(l)) + } + return (void 0 !== e.query && (r.push('?'), r.push(e.query)), void 0 !== e.fragment && (r.push('#'), r.push(e.fragment)), r.join('')) + } + function V(e, t) { + var n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}, + r = {} + return ( + arguments[3] || ((e = A(L(e, n), n)), (t = A(L(t, n), n))), + !(n = n || {}).tolerant && t.scheme + ? ((r.scheme = t.scheme), + (r.userinfo = t.userinfo), + (r.host = t.host), + (r.port = t.port), + (r.path = z(t.path || '')), + (r.query = t.query)) + : (void 0 !== t.userinfo || void 0 !== t.host || void 0 !== t.port + ? ((r.userinfo = t.userinfo), (r.host = t.host), (r.port = t.port), (r.path = z(t.path || '')), (r.query = t.query)) + : (t.path + ? ('/' === t.path.charAt(0) + ? (r.path = z(t.path)) + : ((void 0 === e.userinfo && void 0 === e.host && void 0 === e.port) || e.path + ? e.path + ? (r.path = e.path.slice(0, e.path.lastIndexOf('/') + 1) + t.path) + : (r.path = t.path) + : (r.path = '/' + t.path), + (r.path = z(r.path))), + (r.query = t.query)) + : ((r.path = e.path), void 0 !== t.query ? (r.query = t.query) : (r.query = e.query)), + (r.userinfo = e.userinfo), + (r.host = e.host), + (r.port = e.port)), + (r.scheme = e.scheme)), + (r.fragment = t.fragment), + r + ) + } + function U(e, t) { + return e && e.toString().replace(t && t.iri ? s.PCT_ENCODED : i.PCT_ENCODED, P) + } + var q = { + scheme: 'http', + domainHost: !0, + parse: function (e, t) { + return (e.host || (e.error = e.error || 'HTTP URIs must have a host.'), e) + }, + serialize: function (e, t) { + var n = 'https' === String(e.scheme).toLowerCase() + return ((e.port !== (n ? 443 : 80) && '' !== e.port) || (e.port = void 0), e.path || (e.path = '/'), e) + }, + }, + B = { scheme: 'https', domainHost: q.domainHost, parse: q.parse, serialize: q.serialize } + function H(e) { + return 'boolean' == typeof e.secure ? e.secure : 'wss' === String(e.scheme).toLowerCase() + } + var W = { + scheme: 'ws', + domainHost: !0, + parse: function (e, t) { + var n = e + return ( + (n.secure = H(n)), + (n.resourceName = (n.path || '/') + (n.query ? '?' + n.query : '')), + (n.path = void 0), + (n.query = void 0), + n + ) + }, + serialize: function (e, t) { + if ( + ((e.port !== (H(e) ? 443 : 80) && '' !== e.port) || (e.port = void 0), + 'boolean' == typeof e.secure && ((e.scheme = e.secure ? 'wss' : 'ws'), (e.secure = void 0)), + e.resourceName) + ) { + var n = e.resourceName.split('?'), + r = l(n, 2), + a = r[0], + o = r[1] + ;((e.path = a && '/' !== a ? a : void 0), (e.query = o), (e.resourceName = void 0)) + } + return ((e.fragment = void 0), e) + }, + }, + K = { scheme: 'wss', domainHost: W.domainHost, parse: W.parse, serialize: W.serialize }, + Q = {}, + G = '[A-Za-z0-9\\-\\.\\_\\~\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]', + J = '[0-9A-Fa-f]', + Y = n(n('%[EFef]' + J + '%' + J + J + '%' + J + J) + '|' + n('%[89A-Fa-f]' + J + '%' + J + J) + '|' + n('%' + J + J)), + Z = t("[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]", '[\\"\\\\]'), + X = new RegExp(G, 'g'), + ee = new RegExp(Y, 'g'), + te = new RegExp(t('[^]', "[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]", '[\\.]', '[\\"]', Z), 'g'), + ne = new RegExp(t('[^]', G, "[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]"), 'g'), + re = ne + function ae(e) { + var t = P(e) + return t.match(X) ? t : e + } + var oe = { + scheme: 'mailto', + parse: function (e, t) { + var n = e, + r = (n.to = n.path ? n.path.split(',') : []) + if (((n.path = void 0), n.query)) { + for (var a = !1, o = {}, i = n.query.split('&'), s = 0, l = i.length; s < l; ++s) { + var u = i[s].split('=') + switch (u[0]) { + case 'to': + for (var c = u[1].split(','), f = 0, d = c.length; f < d; ++f) r.push(c[f]) + break + case 'subject': + n.subject = U(u[1], t) + break + case 'body': + n.body = U(u[1], t) + break + default: + ;((a = !0), (o[U(u[0], t)] = U(u[1], t))) + } + } + a && (n.headers = o) + } + n.query = void 0 + for (var p = 0, h = r.length; p < h; ++p) { + var m = r[p].split('@') + if (((m[0] = U(m[0])), t.unicodeSupport)) m[1] = U(m[1], t).toLowerCase() + else + try { + m[1] = k.toASCII(U(m[1], t).toLowerCase()) + } catch (e) { + n.error = n.error || "Email address's domain name can not be converted to ASCII via punycode: " + e + } + r[p] = m.join('@') + } + return n + }, + serialize: function (e, t) { + var n, + r = e, + o = + null != (n = e.to) + ? n instanceof Array + ? n + : 'number' != typeof n.length || n.split || n.setInterval || n.call + ? [n] + : Array.prototype.slice.call(n) + : [] + if (o) { + for (var i = 0, s = o.length; i < s; ++i) { + var l = String(o[i]), + u = l.lastIndexOf('@'), + c = l.slice(0, u).replace(ee, ae).replace(ee, a).replace(te, $), + f = l.slice(u + 1) + try { + f = t.iri ? k.toUnicode(f) : k.toASCII(U(f, t).toLowerCase()) + } catch (e) { + r.error = + r.error || "Email address's domain name can not be converted to " + (t.iri ? 'Unicode' : 'ASCII') + ' via punycode: ' + e + } + o[i] = c + '@' + f + } + r.path = o.join(',') + } + var d = (e.headers = e.headers || {}) + ;(e.subject && (d.subject = e.subject), e.body && (d.body = e.body)) + var p = [] + for (var h in d) + d[h] !== Q[h] && p.push(h.replace(ee, ae).replace(ee, a).replace(ne, $) + '=' + d[h].replace(ee, ae).replace(ee, a).replace(re, $)) + return (p.length && (r.query = p.join('&')), r) + }, + }, + ie = /^([^\:]+)\:(.*)/, + se = { + scheme: 'urn', + parse: function (e, t) { + var n = e.path && e.path.match(ie), + r = e + if (n) { + var a = t.scheme || r.scheme || 'urn', + o = n[1].toLowerCase(), + i = n[2], + s = a + ':' + (t.nid || o), + l = S[s] + ;((r.nid = o), (r.nss = i), (r.path = void 0), l && (r = l.parse(r, t))) + } else r.error = r.error || 'URN can not be parsed.' + return r + }, + serialize: function (e, t) { + var n = t.scheme || e.scheme || 'urn', + r = e.nid, + a = n + ':' + (t.nid || r), + o = S[a] + o && (e = o.serialize(e, t)) + var i = e, + s = e.nss + return ((i.path = (r || t.nid) + ':' + s), i) + }, + }, + le = /^[0-9A-Fa-f]{8}(?:\-[0-9A-Fa-f]{4}){3}\-[0-9A-Fa-f]{12}$/, + ue = { + scheme: 'urn:uuid', + parse: function (e, t) { + var n = e + return ( + (n.uuid = n.nss), + (n.nss = void 0), + t.tolerant || (n.uuid && n.uuid.match(le)) || (n.error = n.error || 'UUID is not valid.'), + n + ) + }, + serialize: function (e, t) { + var n = e + return ((n.nss = (e.uuid || '').toLowerCase()), n) + }, + } + ;((S[q.scheme] = q), + (S[B.scheme] = B), + (S[W.scheme] = W), + (S[K.scheme] = K), + (S[oe.scheme] = oe), + (S[se.scheme] = se), + (S[ue.scheme] = ue), + (e.SCHEMES = S), + (e.pctEncChar = $), + (e.pctDecChars = P), + (e.parse = A), + (e.removeDotSegments = z), + (e.serialize = L), + (e.resolveComponents = V), + (e.resolve = function (e, t, n) { + var r = (function (e, t) { + var n = e + if (t) for (var r in t) n[r] = t[r] + return n + })({ scheme: 'null' }, n) + return L(V(A(e, r), A(t, r), r, !0), r) + }), + (e.normalize = function (e, t) { + return ('string' == typeof e ? (e = L(A(e, t), t)) : 'object' === r(e) && (e = A(L(e, t), t)), e) + }), + (e.equal = function (e, t, n) { + return ( + 'string' == typeof e ? (e = L(A(e, n), n)) : 'object' === r(e) && (e = L(e, n)), + 'string' == typeof t ? (t = L(A(t, n), n)) : 'object' === r(t) && (t = L(t, n)), + e === t + ) + }), + (e.escapeComponent = function (e, t) { + return e && e.toString().replace(t && t.iri ? s.ESCAPE : i.ESCAPE, $) + }), + (e.unescapeComponent = U), + Object.defineProperty(e, '__esModule', { value: !0 })) + })(t) + }, + 4775: (e) => { + 'use strict' + e.exports = JSON.parse( + '{"$id":"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#","description":"Meta-schema for $data reference (JSON AnySchema extension proposal)","type":"object","required":["$data"],"properties":{"$data":{"type":"string","anyOf":[{"format":"relative-json-pointer"},{"format":"json-pointer"}]}},"additionalProperties":false}', + ) + }, + 98: (e) => { + 'use strict' + e.exports = JSON.parse( + '{"$schema":"http://json-schema.org/draft-07/schema#","$id":"http://json-schema.org/draft-07/schema#","title":"Core schema meta-schema","definitions":{"schemaArray":{"type":"array","minItems":1,"items":{"$ref":"#"}},"nonNegativeInteger":{"type":"integer","minimum":0},"nonNegativeIntegerDefault0":{"allOf":[{"$ref":"#/definitions/nonNegativeInteger"},{"default":0}]},"simpleTypes":{"enum":["array","boolean","integer","null","number","object","string"]},"stringArray":{"type":"array","items":{"type":"string"},"uniqueItems":true,"default":[]}},"type":["object","boolean"],"properties":{"$id":{"type":"string","format":"uri-reference"},"$schema":{"type":"string","format":"uri"},"$ref":{"type":"string","format":"uri-reference"},"$comment":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"default":true,"readOnly":{"type":"boolean","default":false},"examples":{"type":"array","items":true},"multipleOf":{"type":"number","exclusiveMinimum":0},"maximum":{"type":"number"},"exclusiveMaximum":{"type":"number"},"minimum":{"type":"number"},"exclusiveMinimum":{"type":"number"},"maxLength":{"$ref":"#/definitions/nonNegativeInteger"},"minLength":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"pattern":{"type":"string","format":"regex"},"additionalItems":{"$ref":"#"},"items":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/schemaArray"}],"default":true},"maxItems":{"$ref":"#/definitions/nonNegativeInteger"},"minItems":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"uniqueItems":{"type":"boolean","default":false},"contains":{"$ref":"#"},"maxProperties":{"$ref":"#/definitions/nonNegativeInteger"},"minProperties":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"required":{"$ref":"#/definitions/stringArray"},"additionalProperties":{"$ref":"#"},"definitions":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"properties":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"patternProperties":{"type":"object","additionalProperties":{"$ref":"#"},"propertyNames":{"format":"regex"},"default":{}},"dependencies":{"type":"object","additionalProperties":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/stringArray"}]}},"propertyNames":{"$ref":"#"},"const":true,"enum":{"type":"array","items":true,"minItems":1,"uniqueItems":true},"type":{"anyOf":[{"$ref":"#/definitions/simpleTypes"},{"type":"array","items":{"$ref":"#/definitions/simpleTypes"},"minItems":1,"uniqueItems":true}]},"format":{"type":"string"},"contentMediaType":{"type":"string"},"contentEncoding":{"type":"string"},"if":{"$ref":"#"},"then":{"$ref":"#"},"else":{"$ref":"#"},"allOf":{"$ref":"#/definitions/schemaArray"},"anyOf":{"$ref":"#/definitions/schemaArray"},"oneOf":{"$ref":"#/definitions/schemaArray"},"not":{"$ref":"#"}},"default":true}', + ) + }, + }, + t = {} + function n(r) { + var a = t[r] + if (void 0 !== a) return a.exports + var o = (t[r] = { id: r, loaded: !1, exports: {} }) + return (e[r].call(o.exports, o, o.exports, n), (o.loaded = !0), o.exports) + } + ;((n.n = (e) => { + var t = e && e.__esModule ? () => e.default : () => e + return (n.d(t, { a: t }), t) + }), + (n.d = (e, t) => { + for (var r in t) n.o(t, r) && !n.o(e, r) && Object.defineProperty(e, r, { enumerable: !0, get: t[r] }) + }), + (n.g = (function () { + if ('object' == typeof globalThis) return globalThis + try { + return this || new Function('return this')() + } catch (e) { + if ('object' == typeof window) return window + } + })()), + (n.o = (e, t) => Object.prototype.hasOwnProperty.call(e, t)), + (n.nmd = (e) => ((e.paths = []), e.children || (e.children = []), e)), + (n.nc = void 0)) + var r = {} + ;(() => { + 'use strict' + n.d(r, { Z: () => Na }) + var e = n(7294), + t = n(3935), + a = n(8465) + const o = { + title: 'Feedback widget', + labels: { + en: { + step1Title: 'Was this page helpful?', + step2Title: 'How can we do better?', + step3Title: 'Thank you for your feedback', + cancelButtonText: 'Cancel', + submitButtonText: 'Submit', + doneButtonText: 'Done', + }, + }, + themes: { + ripplex: { + position: 'right', + styles: { + playground: { backgroundColor: '#23292F', left: 0, bottom: 0, height: 300, position: 'fixed' }, + colors: { primary: 'blue', secondary: 'red' }, + font: { family: 'Roboto', baseWeight: '12px', baseColor: 'primary' }, + container: { + fontFamily: 'Roboto', + color: '#000000', + backgroundColor: '#FFFFFF', + borderColor: '', + borderRadius: 2, + padding: 0, + margin: 0, + width: 360, + right: 36, + bottom: 36, + }, + yesIcon: { backgroundImage: 'url(/assets/thumb.svg)' }, + noIcon: { backgroundImage: 'url(/assets/thumb.svg)' }, + step1header: { color: '#000000', fontWeight: 'bold', fontSize: 15, background: '#F5F7F9', paddingRight: 20 }, + step2header: { color: '#000000', fontWeight: 'bold', fontSize: 15, background: '#F5F7F9' }, + step3: { + background: + 'radial-gradient(156.83% 78.7% at 61.88% 86.04%, rgba(23, 28, 33, 0) 0%, #031B36 100%), radial-gradient(44.33% 47.76% at 5.74% 42.2%, rgba(20, 153, 249, 0.8) 32.68%, rgba(15, 114, 229, 0) 100%), radial-gradient(77.84% 153.29% at 83.57% 149.34%, #1499F9 0%, rgba(16, 131, 231, 0.9) 41.91%, rgba(15, 114, 229, 0) 93.71%), #063975', + lineHeight: 30, + paddingLeft: 10, + height: 150, + }, + inputForm: { height: 100, width: '90%', margin: 10, border: '1px solid #171C21' }, + formCancelButton: { + color: '#999DA2', + border: 'none', + fontSize: 15, + backgroundColor: 'transparent', + '&:hover': { color: '#494949', background: '#ffffff' }, + }, + formSubmitButton: { color: '#ffffff', fontSize: 15, backgroundColor: '#0F72E5', border: '1px solid #0F72E5', borderRadius: 4 }, + thankyouDoneButton: { color: '#ffffff', fontSize: 15, backgroundColor: '#0F72E5', border: '1px solid #0F72E5', borderRadius: 4 }, + }, + }, + xrpl: { + position: 'right', + styles: { + playground: { backgroundColor: 'black', left: 0, bottom: 0, height: 300, position: 'fixed' }, + colors: { primary: 'Gold', secondary: 'Black' }, + font: { family: 'Work Sans', baseWeight: '12px', baseColor: 'primary' }, + container: { + fontFamily: 'Work Sans', + color: 'white', + backgroundColor: '#000000', + border: '2px solid #FFFFFF', + borderColor: '#FFFFFF', + borderRadius: 0, + padding: 0, + margin: 0, + width: 360, + right: 36, + bottom: 100, + }, + yesIcon: { backgroundImage: 'url(/assets/img/fb-thumb.svg)' }, + noIcon: { backgroundImage: 'url(/assets/img/fb-thumb.svg)' }, + step1header: { color: '#ffffff', fontWeight: 'bold', fontSize: 15, background: '#000000', paddingRight: 20 }, + step2header: { + backgroundImage: 'url(/assets/img/fb-step2header.png)', + backgroundRepeat: 'no-repeat', + color: '#ffffff', + fontWeight: 'bold', + fontSize: 15, + }, + step2formarea: { background: '#ffffff' }, + step2footer: { background: '#ffffff', paddingRight: 15 }, + step3: { + backgroundImage: 'url(/assets/img/fb-background.png)', + backgroundRepeat: 'no-repeat', + lineHeight: 30, + paddingLeft: 60, + paddingRight: 60, + height: 150, + }, + inputForm: { height: 100, width: '90%', margin: 10, border: '1px solid #171C21', opacity: 0.5 }, + formCancelButton: { + color: '#999DA2', + border: 'none', + fontSize: 15, + backgroundColor: 'transparent', + '&:hover': { color: '#494949', background: '#ffffff' }, + }, + formSubmitButton: { + color: '#171C21', + fontSize: 15, + fontWeight: 'bold', + backgroundColor: '#ffffff', + border: '2px solid #171C21', + borderRadius: 0, + padding: '8px 16px !important', + }, + thankyouDoneButton: { + color: '#fff', + fontSize: 15, + fontWeight: 'bold', + backgroundColor: '#000000', + border: '2px solid #fff', + borderRadius: 0, + }, + }, + }, + paystring: { + position: 'left', + styles: { + playground: { backgroundColor: '#000e33', left: 0, bottom: 0, height: 300, position: 'fixed' }, + colors: { primary: 'green', secondary: 'blue' }, + font: { family: 'test', baseWeight: '12px', baseColor: 'primary' }, + container: { + fontFamily: 'Roboto', + color: '#000000', + backgroundColor: '#FFFFFF', + borderWidth: 1, + borderStyle: 'solid', + borderColor: '#e1e4e8', + borderRadius: 12, + padding: 0, + margin: 0, + width: 360, + left: 36, + bottom: 36, + }, + yesIcon: { backgroundImage: 'url(/assets/thumb.svg)' }, + noIcon: { backgroundImage: 'url(/assets/thumb.svg)' }, + step1header: { color: '#000000', fontWeight: 'bold', fontSize: 15, background: '#F5F7F9', paddingRight: 20 }, + step2header: { color: '#000000', fontWeight: 'bold', fontSize: 15, background: '#F5F7F9', borderRadius: '10px 10px 0 0' }, + step3: { backgroundImage: 'url(/assets/feedback_background.png)', lineHeight: 30, paddingLeft: 10, height: 150, borderRadius: 12 }, + inputForm: { height: 100, width: '90%', margin: 10 }, + formCancelButton: { + color: '#999DA2', + border: 'none', + fontSize: 15, + backgroundColor: 'transparent', + '&:hover': { color: '#494949', background: '#ffffff' }, + }, + formSubmitButton: { color: '#ffffff', fontSize: 15, backgroundColor: '#FF8100', border: '1px solid #FF8100', borderRadius: 4 }, + thankyouDoneButton: { color: '#ffffff', fontSize: 15, backgroundColor: '#FF8100', border: '1px solid #FF8100', borderRadius: 4 }, + }, + }, + }, + } + var i = n(6678), + s = n.n(i), + l = n(8446), + u = n.n(l), + c = n(7557), + f = n.n(c), + d = n(1921), + p = n.n(d), + h = n(7361), + m = n.n(h) + const g = /[.[\]]/, + v = /"/g + function y(e) { + return '' === e || g.test(e) ? `["${e.replace(v, '\\"')}"]` : e + } + function b(e, t) { + const n = y(e) + return n === e ? (t ? `.${e}` : e) : n + } + const w = /^\["(.*)"]$/, + _ = /\\"/g + function x(e) { + const t = w.exec(e) + return t ? t[1].replace(_, '"') : e + } + const E = /^([^.[\]]*(?:\.[^.[\]]+)*)(?:\.?(\["(?:(?:[^"]|\\")*?[^\\])?"])\.?(.*))?$/, + k = Object.assign( + function (...e) { + const t = null === e[0], + n = [] + for (let t = 0; t !== e.length; ++t) { + const r = e[t] + if (r || 0 === r) + if ('string' == typeof r) { + const a = E.exec(r) + if (a) { + const [, r, o, i] = a + ;(r && (r.includes('.') ? n.push(...r.split('.')) : n.push(r)), o && (n.push(x(o)), i && (e[t--] = i))) + } else n.push(r) + } else if (Array.isArray(r)) { + if (r.length) { + const n = Math.min(t + 1, r.length) + ;((t -= n), e.splice(t + 1, n, ...r)) + } + } else n.push('' + r) + } + return t ? n.map(y) : n.map(b).join('') + }, + { escape: y, unescape: x }, + ) + function S(e) { + return !(!e || e !== Object(e) || e instanceof Date) + } + const $ = (0, e.createContext)(null) + function P(e) { + let t = 0 + return () => `${e}-${('000' + (t++).toString(36)).slice(-4)}` + } + const O = P('uniforms') + class C extends e.Component { + constructor(e) { + ;(super(e), + (this.state = { changed: !1, changedMap: Object.create(null), resetCount: 0, submitted: !1, submitting: !1 }), + (this.mounted = !1), + (this.randomId = (function (e = O()) { + return P(e) + })(this.props.id)), + (this.onReset = this.reset = this.onReset.bind(this)), + (this.onChange = this.change = this.onChange.bind(this)), + (this.onSubmit = this.submit = this.onSubmit.bind(this))) + const t = this.getModel.bind(this) + this.getModel = (e, n = t(e)) => (void 0 !== e && this.props.modelTransform ? this.props.modelTransform(e, n) : n) + } + componentDidMount() { + this.mounted = !0 + } + componentDidUpdate(e, t, n) {} + componentWillUnmount() { + ;((this.mounted = !1), this.delayId && clearTimeout(this.delayId), (this.setState = () => {})) + } + getContext() { + return { + changed: this.state.changed, + changedMap: this.state.changedMap, + error: this.getContextError(), + formRef: this, + model: this.getContextModel(), + name: this.getContextName(), + onChange: this.getContextOnChange(), + onSubmit: this.getContextOnSubmit(), + randomId: this.randomId, + schema: this.getContextSchema(), + state: this.getContextState(), + submitted: this.state.submitted, + submitting: this.state.submitting, + validating: !1, + } + } + getContextName() { + return [] + } + getContextError() { + return this.props.error + } + getContextModel() { + return this.getModel('form') + } + getContextState() { + return { + disabled: !!this.props.disabled, + label: !!this.props.label, + placeholder: !!this.props.placeholder, + readOnly: !!this.props.readOnly, + showInlineError: !!this.props.showInlineError, + } + } + getContextSchema() { + return this.props.schema + } + getContextOnChange() { + return this.onChange + } + getContextOnSubmit() { + return this.onSubmit + } + getModel(e, t = this.props.model) { + return t + } + getNativeFormProps() { + const e = f()(this.props, [ + 'autosave', + 'autosaveDelay', + 'disabled', + 'error', + 'label', + 'model', + 'modelTransform', + 'onChange', + 'onSubmit', + 'placeholder', + 'readOnly', + 'schema', + 'showInlineError', + ]) + return Object.assign(Object.assign({}, e), { onSubmit: this.onSubmit, key: `reset-${this.state.resetCount}` }) + } + onChange(e, t) { + if (this.mounted) { + const n = (function (e, t, n) { + if (!S(t) || (n && typeof t != typeof n)) return u()(t, n) ? [] : [e] + const r = [e] + if (S(n)) { + for (const a in t) (a in n && u()(t[a], n[a])) || r.push(k(e, a)) + for (const a in n) a in t || r.push(k(e, a)) + 1 === r.length && r.pop() + } else for (const n in t) r.push(k(e, n)) + return r + })(e, t, m()(this.getModel(), e)) + 0 !== n.length && + this.setState((e) => + e.changed && n.every((t) => !!m()(e.changedMap, t)) + ? null + : { changed: !0, changedMap: n.reduce((e, t) => p()(e, t, {}, s()), s()(e.changedMap)) }, + ) + } + ;(this.props.onChange && this.props.onChange(e, t), + this.mounted && + this.props.autosave && + (this.delayId && (this.delayId = clearTimeout(this.delayId)), + (this.delayId = setTimeout(() => { + this.setState( + () => null, + () => { + this.onSubmit() + }, + ) + }, this.props.autosaveDelay)))) + } + __reset(e) { + return { changed: !1, changedMap: Object.create(null), resetCount: e.resetCount + 1, submitted: !1, submitting: !1 } + } + onReset() { + this.setState(this.__reset) + } + onSubmit(e) { + ;(e && (e.preventDefault(), e.stopPropagation()), this.setState((e) => (e.submitted ? null : { submitted: !0 }))) + const t = this.props.onSubmit(this.getModel('submit')) + return t instanceof Promise + ? (this.setState({ submitting: !0 }), + t.finally(() => { + this.setState({ submitting: !1 }) + })) + : Promise.resolve() + } + render() { + return e.createElement($.Provider, { value: this.getContext() }, e.createElement('form', Object.assign({}, this.getNativeFormProps()))) + } + } + function j(e, t) { + var n = {} + for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && t.indexOf(r) < 0 && (n[r] = e[r]) + if (null != e && 'function' == typeof Object.getOwnPropertySymbols) { + var a = 0 + for (r = Object.getOwnPropertySymbols(e); a < r.length; a++) + t.indexOf(r[a]) < 0 && Object.prototype.propertyIsEnumerable.call(e, r[a]) && (n[r[a]] = e[r[a]]) + } + return n + } + function N(t) { + class n extends t { + getNativeFormProps() { + const t = super.getNativeFormProps(), + { autoField: n = this.getAutoField(), errorsField: r = this.getErrorsField(), submitField: a = this.getSubmitField() } = t, + o = j(t, ['autoField', 'errorsField', 'submitField']) + return ( + o.children || + (o.children = this.getContextSchema() + .getSubfields() + .map((t) => e.createElement(n, { key: t, name: t })) + .concat([e.createElement(r, { key: '$ErrorsField' }), e.createElement(a, { key: '$SubmitField' })])), + o + ) + } + getAutoField() { + return () => null + } + getErrorsField() { + return () => null + } + getSubmitField() { + return () => null + } + } + return ((n.Quick = N), (n.displayName = `Quick${t.displayName}`), n) + } + ;((C.displayName = 'Form'), + (C.defaultProps = { autosave: !1, autosaveDelay: 0, error: null, label: !0, model: Object.create(null), noValidate: !0, onSubmit() {} }), + Object.create, + Object.create) + const I = N(C) + var T = n(361), + A = n.n(T), + R = n(308), + D = n.n(R) + function M(e) { + class t extends e { + constructor(e) { + ;(super(e), + (this.state = Object.assign(Object.assign({}, this.state), { + error: null, + validate: !1, + validating: !1, + validator: this.getContextSchema().getValidator(e.validator), + })), + (this.onValidate = this.validate = this.onValidate.bind(this)), + (this.onValidateModel = this.validateModel = this.onValidateModel.bind(this))) + } + getContextError() { + var e + return null !== (e = super.getContextError()) && void 0 !== e ? e : this.state.error + } + getContext() { + return Object.assign(Object.assign({}, super.getContext()), { validating: this.state.validating }) + } + getNativeFormProps() { + const e = super.getNativeFormProps() + return f()(e, ['onValidate', 'validate', 'validator']) + } + componentDidUpdate(e, t, n) { + super.componentDidUpdate(e, t, n) + const { model: r, schema: a, validate: o, validator: i } = this.props + a !== e.schema || i !== e.validator + ? this.setState({ validator: a.getValidator(i) }, () => { + F(o, this.state.validate) && this.onValidate() + }) + : !u()(r, e.model) && F(o, this.state.validate) && this.onValidateModel(r) + } + onChange(e, t) { + ;(F(this.props.validate, this.state.validate) && this.onValidate(e, t), super.onChange(e, t)) + } + __reset(e) { + return Object.assign(Object.assign({}, super.__reset(e)), { error: null, validate: !1, validating: !1 }) + } + onSubmit(e) { + ;(e && (e.preventDefault(), e.stopPropagation()), this.setState({ submitted: !0, validate: !0 })) + const t = this.onValidate().then((e) => + null !== e + ? Promise.reject(e) + : super.onSubmit().catch((e) => { + throw (this.setState({ error: e }), e) + }), + ) + return (t.catch(D()), t) + } + onValidate(e, t) { + let n = this.getContextModel() + return (n && e && (n = p()(s()(n), e, A()(t), s())), this.onValidateModel(n)) + } + onValidateModel(e) { + const t = this.getModel('validate', e), + n = + ((r = () => { + this.setState({ validating: !0 }) + }), + function (e, t) { + return e instanceof Promise ? (r(), e.then(t)) : t(e) + }) + var r + return n(this.state.validator(t), (e = null) => + n(this.props.onValidate(t, e), (e = null) => { + var t + return ( + (e = this.props.error === e ? null : e), + this.setState((t) => (t.error !== e || t.validating ? { error: e, validating: !1 } : null)), + Promise.resolve(null !== (t = this.props.error) && void 0 !== t ? t : e) + ) + }), + ) + } + } + return ( + (t.Validated = M), + (t.displayName = `Validated${e.displayName}`), + (t.defaultProps = Object.assign(Object.assign({}, e.defaultProps), { onValidate: (e, t) => t, validate: 'onChangeAfterSubmit' })), + t + ) + } + function F(e, t) { + return 'onChange' === e || ('onChangeAfterSubmit' === e && t) + } + const z = M(C), + L = (function e(t) { + class n extends t { + constructor(e) { + ;(super(e), (this.state = Object.assign(Object.assign({}, this.state), { model: e.model }))) + } + componentDidUpdate(e, t, n) { + const { model: r } = this.props + ;(u()(r, e.model) || this.setState({ model: r }), super.componentDidUpdate(e, t, n)) + } + getNativeFormProps() { + const e = super.getNativeFormProps() + return f()(e, ['onChangeModel']) + } + getModel(e) { + return this.state.model + } + onChange(e, t) { + ;(super.onChange(e, t), + this.setState( + (n) => ({ model: p()(s()(n.model), e, t, s()) }), + () => { + this.props.onChangeModel && this.props.onChangeModel(this.state.model) + }, + )) + } + __reset(e) { + return Object.assign(Object.assign({}, super.__reset(e)), { model: this.props.model }) + } + } + return ((n.Auto = e), (n.displayName = `Auto${t.displayName}`), n) + })(M(N(C))), + V = (function e(t) { + class n extends t {} + return ((n.Unstyled = e), (n.displayName = `Unstyled${t.displayName}`), n) + })(C) + var U = n(1143), + q = n.n(U), + B = n(6604), + H = n.n(B) + function W() { + const t = (0, e.useContext)($) + return ( + q()( + null !== t, + "useForm must be used within a form.\n\nTwo most common reasons for this error are:\n1. Component calling this function doesn't have a parent Form component in the tree.\n2. A duplicate uniforms dependency is installed in node_modules.\n\nFor more info check FAQ: https://uniforms.tools/docs/faq/#useform-must-be-used-within-a-form\n ", + ), + t + ) + } + function K(e, t, n, r) { + const a = !0 === e || void 0 === e, + o = !0 === t || void 0 === t, + i = o ? r : t + return ['' === e || !1 === e || null === e || (a && (o || !n)) ? '' : a ? i : e, i] + } + function Q(t, n, r) { + var a + const o = W(), + i = k((null == r ? void 0 : r.absoluteName) ? '' : o.name, t), + s = o.schema.getField(i), + l = !1 !== (null == r ? void 0 : r.initialValue), + u = l ? (0, e.useRef)(!1) : { current: !1 }, + c = H()(o.state, (e, t) => { + const r = n[t] + return null != r ? !!r : e + }), + f = !!m()(o.changedMap, i), + d = o.schema.getError(i, o.error), + p = o.schema.getErrorMessage(i, o.error), + h = o.schema.getType(i), + g = o.schema.getSubfields(i), + v = o.schema.getProps(i, Object.assign(Object.assign({}, c), n)), + [y, b] = K(n.label, v.label, c.label, ''), + [w] = K(n.placeholder, v.placeholder, c.placeholder, y || b), + _ = (0, e.useMemo)(() => o.randomId(), []), + x = (0, e.useCallback)( + (e, t = i) => { + ;((u.current = !0), o.onChange(t, e)) + }, + [o.onChange, i], + ), + E = m()(o.model, i) + let S, + $ = null !== (a = n.value) && void 0 !== a ? a : E + return ( + l && + (u.current || (void 0 === $ ? (($ = o.schema.getInitialValue(i, n)), (S = $)) : void 0 !== n.value && n.value !== E && (S = n.value)), + (0, e.useEffect)(() => { + var e + ;(null !== (e = n.required) && void 0 !== e ? e : v.required) && void 0 !== S && x(S) + }, [])), + [ + Object.assign( + Object.assign( + Object.assign( + Object.assign(Object.assign({ id: _ }, c), { + changed: f, + error: d, + errorMessage: p, + field: s, + fieldType: h, + fields: g, + onChange: x, + value: $, + }), + v, + ), + n, + ), + { label: y, name: i, placeholder: w }, + ), + o, + ] + ) + } + const G = [], + J = new Set(), + Y = Object.assign( + function (e) { + const t = Object.assign({}, e) + for (const n in e) J.has(n) && delete t[n] + return t + }, + { + register(...e) { + ;(e.forEach((e) => { + J.has(e) || (G.push(e), J.add(e)) + }), + G.sort()) + }, + registered: G, + }, + ) + function Z(t, n) { + function r(r) { + const [a, o] = Q(r.name, r, n), + i = (function (e, t, n) { + if ('leaf' === (null == n ? void 0 : n.kind)) return e + const r = '' !== t.name, + a = Object.keys(e.state).some((e) => null != t[e]) + if (!r && !a) return e + const o = Object.assign({}, e) + return ( + r && (o.name = o.name.concat(t.name)), + a && + (o.state = H()(o.state, (e, n) => { + const r = t[n] + return null != r ? !!r : e + })), + o + ) + })(o, r, n), + s = e.createElement(t, Object.assign({}, r, a)) + return o === i ? s : e.createElement($.Provider, { children: s, value: i }) + } + return ((r.displayName = `${t.displayName || t.name}Field`), Object.assign(r, { Component: t, options: n })) + } + Y.register( + 'changed', + 'error', + 'errorMessage', + 'field', + 'fieldType', + 'fields', + 'initialCount', + 'name', + 'onChange', + 'transform', + 'value', + 'disabled', + 'label', + 'placeholder', + 'showInlineError', + 'component', + 'allowedValues', + ) + const X = Z( + function (t) { + var { disabled: n, id: r, inputRef: a, label: o, name: i, onChange: s, readOnly: l, value: u } = t, + c = j(t, ['disabled', 'id', 'inputRef', 'label', 'name', 'onChange', 'readOnly', 'value']) + return e.createElement( + 'div', + Object.assign({}, Y(c)), + e.createElement('input', { checked: u || !1, disabled: n, id: r, name: i, onChange: () => !n && !l && s(!u), ref: a, type: 'checkbox' }), + o && e.createElement('label', { htmlFor: r }, o), + ) + }, + { kind: 'leaf' }, + ), + ee = ('object' == typeof n.g ? n.g : window).Date, + te = (e, t = 'datetime-local') => (null == e ? void 0 : e.toISOString().slice(0, 'datetime-local' === t ? -8 : -14)), + ne = Z( + function (t) { + var n, + { + disabled: r, + id: a, + inputRef: o, + label: i, + max: s, + min: l, + name: u, + onChange: c, + placeholder: f, + readOnly: d, + value: p, + type: h = 'datetime-local', + } = t, + m = j(t, ['disabled', 'id', 'inputRef', 'label', 'max', 'min', 'name', 'onChange', 'placeholder', 'readOnly', 'value', 'type']) + return e.createElement( + 'div', + Object.assign({}, Y(m)), + i && e.createElement('label', { htmlFor: a }, i), + e.createElement('input', { + disabled: r, + id: a, + max: te(s), + min: te(l), + name: u, + onChange: (e) => { + const t = new ee(e.target.valueAsNumber) + t.getFullYear() < 1e4 ? c(t) : isNaN(e.target.valueAsNumber) && c(void 0) + }, + placeholder: f, + readOnly: d, + ref: o, + type: h, + value: null !== (n = te(p, h)) && void 0 !== n ? n : '', + }), + ) + }, + { kind: 'leaf' }, + ), + re = Z( + function (t) { + var { disabled: n, initialCount: r, name: a, readOnly: o, value: i } = t, + s = j(t, ['disabled', 'initialCount', 'name', 'readOnly', 'value']) + const l = k(null, a), + u = Q(k(l.slice(0, -1)), { initialCount: r }, { absoluteName: !0 })[0], + c = !(n || u.maxCount <= u.value.length) + function f(e) { + !c || o || ('key' in e && 'Enter' !== e.key) || u.onChange(u.value.concat([A()(i)])) + } + return e.createElement('span', Object.assign({}, Y(s), { onClick: f, onKeyDown: f, role: 'button', tabIndex: 0 }), '+') + }, + { initialValue: !1, kind: 'leaf' }, + ), + ae = Z( + function (t) { + var { disabled: n, name: r, readOnly: a } = t, + o = j(t, ['disabled', 'name', 'readOnly']) + const i = k(null, r), + s = +i[i.length - 1], + l = Q(k(i.slice(0, -1)), {}, { absoluteName: !0 })[0], + u = !(n || l.minCount >= l.value.length) + function c(e) { + if (u && !a && (!('key' in e) || 'Enter' === e.key)) { + const e = l.value.slice() + ;(e.splice(s, 1), l.onChange(e)) + } + } + return e.createElement('span', Object.assign({}, Y(o), { onClick: c, onKeyDown: c, role: 'button', tabIndex: 0 }), '-') + }, + { initialValue: !1, kind: 'leaf' }, + ), + oe = Z( + function ({ children: t = e.createElement(we, { label: null, name: '' }) }) { + return e.createElement('div', null, e.createElement(ae, { name: '' }), t) + }, + { initialValue: !1 }, + ), + ie = Z(function (t) { + var { children: n = e.createElement(oe, { name: '$' }), initialCount: r, itemProps: a, label: o, value: i } = t, + s = j(t, ['children', 'initialCount', 'itemProps', 'label', 'value']) + return e.createElement( + 'ul', + Object.assign({}, Y(s)), + o && e.createElement('label', null, o, e.createElement(re, { initialCount: r, name: '$' })), + null == i + ? void 0 + : i.map((t, r) => + e.Children.map(n, (t, n) => { + var o + return (0, e.isValidElement)(t) + ? (0, e.cloneElement)( + t, + Object.assign({ key: `${r}-${n}`, name: null === (o = t.props.name) || void 0 === o ? void 0 : o.replace('$', '' + r) }, a), + ) + : t + }), + ), + ) + }), + se = Z(function (t) { + var { children: n, fields: r, itemProps: a, label: o } = t, + i = j(t, ['children', 'fields', 'itemProps', 'label']) + return e.createElement( + 'div', + Object.assign({}, Y(i)), + o && e.createElement('label', null, o), + n || r.map((t) => e.createElement(we, Object.assign({ key: t, name: t }, a))), + ) + }), + le = Z( + function (t) { + var { + decimal: n, + disabled: r, + id: a, + inputRef: o, + label: i, + max: s, + min: l, + name: u, + onChange: c, + placeholder: f, + readOnly: d, + step: p, + value: h, + } = t, + m = j(t, ['decimal', 'disabled', 'id', 'inputRef', 'label', 'max', 'min', 'name', 'onChange', 'placeholder', 'readOnly', 'step', 'value']) + return e.createElement( + 'div', + Object.assign({}, Y(m)), + i && e.createElement('label', { htmlFor: a }, i), + e.createElement('input', { + disabled: r, + id: a, + max: s, + min: l, + name: u, + onChange: (e) => { + const t = (n ? parseFloat : parseInt)(e.target.value) + c(isNaN(t) ? void 0 : t) + }, + placeholder: f, + readOnly: d, + ref: o, + step: p || (n ? 0.01 : 1), + type: 'number', + value: null != h ? h : '', + }), + ) + }, + { kind: 'leaf' }, + ), + ue = 'undefined' == typeof btoa ? (e) => Buffer.from(e).toString('base64') : btoa, + ce = (e) => ue(encodeURIComponent(e)).replace(/=+$/, ''), + fe = Z( + function (t) { + var { allowedValues: n, disabled: r, id: a, label: o, name: i, onChange: s, readOnly: l, transform: u, value: c } = t, + d = j(t, ['allowedValues', 'disabled', 'id', 'label', 'name', 'onChange', 'readOnly', 'transform', 'value']) + return e.createElement( + 'div', + Object.assign({}, f()(Y(d), ['checkboxes'])), + o && e.createElement('label', null, o), + null == n + ? void 0 + : n.map((t) => + e.createElement( + 'div', + { key: t }, + e.createElement('input', { + checked: t === c, + disabled: r, + id: `${a}-${ce(t)}`, + name: i, + onChange: () => { + l || s(t) + }, + type: 'radio', + }), + e.createElement('label', { htmlFor: `${a}-${ce(t)}` }, u ? u(t) : t), + ), + ), + ) + }, + { kind: 'leaf' }, + ) + var de = n(6566), + pe = n.n(de) + const he = 'undefined' == typeof btoa ? (e) => Buffer.from(e).toString('base64') : btoa, + me = (e) => he(encodeURIComponent(e)).replace(/=+$/, ''), + ge = Z( + function (t) { + var { + allowedValues: n, + checkboxes: r, + disabled: a, + fieldType: o, + id: i, + inputRef: s, + label: l, + name: u, + onChange: c, + placeholder: f, + readOnly: d, + required: p, + disableItem: h, + transform: m, + value: g, + } = t, + v = j(t, [ + 'allowedValues', + 'checkboxes', + 'disabled', + 'fieldType', + 'id', + 'inputRef', + 'label', + 'name', + 'onChange', + 'placeholder', + 'readOnly', + 'required', + 'disableItem', + 'transform', + 'value', + ]) + const y = o === Array + return e.createElement( + 'div', + Object.assign({}, Y(v)), + l && e.createElement('label', { htmlFor: i }, l), + r + ? n.map((t) => { + var n + return e.createElement( + 'div', + { key: t }, + e.createElement('input', { + checked: o === Array ? g.includes(t) : g === t, + disabled: null !== (n = null == h ? void 0 : h(t)) && void 0 !== n ? n : a, + id: `${i}-${me(t)}`, + name: u, + onChange: () => { + d || c(o === Array ? pe()([t], g) : t) + }, + type: 'checkbox', + }), + e.createElement('label', { htmlFor: `${i}-${me(t)}` }, m ? m(t) : t), + ) + }) + : e.createElement( + 'select', + { + disabled: a, + id: i, + multiple: y, + name: u, + onChange: (e) => { + if (!d) { + const t = e.target.value + if (y) { + const n = -1 === e.target.selectedIndex + c(n ? [] : pe()([t], g)) + } else c('' !== t ? t : void 0) + } + }, + ref: s, + value: null != g ? g : '', + }, + (!!f || !p || void 0 === g) && !y && e.createElement('option', { value: '', disabled: p, hidden: p }, f || l), + null == n + ? void 0 + : n.map((t) => e.createElement('option', { disabled: null == h ? void 0 : h(t), key: t, value: t }, m ? m(t) : t)), + ), + ) + }, + { kind: 'leaf' }, + ) + function ve(t) { + var { autoComplete: n, disabled: r, id: a, inputRef: o, label: i, name: s, onChange: l, placeholder: u, readOnly: c, type: f, value: d } = t, + p = j(t, ['autoComplete', 'disabled', 'id', 'inputRef', 'label', 'name', 'onChange', 'placeholder', 'readOnly', 'type', 'value']) + return e.createElement( + 'div', + Object.assign({}, Y(p)), + i && e.createElement('label', { htmlFor: a }, i), + e.createElement('input', { + autoComplete: n, + disabled: r, + id: a, + name: s, + onChange: (e) => l(e.target.value), + placeholder: u, + readOnly: c, + ref: o, + type: f, + value: null != d ? d : '', + }), + ) + } + ve.defaultProps = { type: 'text' } + const ye = Z(ve, { kind: 'leaf' }), + be = (function (t) { + const n = (0, e.createContext)(t) + return Object.assign( + function (t) { + var r, a + const [o, i] = Q(t.name, t), + s = (0, e.useContext)(n), + l = null !== (r = o.component) && void 0 !== r ? r : s(o, i) + return ( + q()(l, 'AutoField received no component for: %s', o.name), + 'options' in l && 'leaf' === (null === (a = l.options) || void 0 === a ? void 0 : a.kind) + ? (0, e.createElement)(l.Component, o) + : (0, e.createElement)(l, t) + ) + }, + { componentDetectorContext: n, defaultComponentDetector: t }, + ) + })((e) => { + if (e.allowedValues) return e.checkboxes && e.fieldType !== Array ? fe : ge + switch (e.fieldType) { + case Array: + return ie + case Boolean: + return X + case Date: + return ne + case Number: + return le + case Object: + return se + case String: + return ye + } + return q()(!1, 'Unsupported field type: %s', e.fieldType) + }), + we = be + function _e(t) { + const { error: n, schema: r } = W() + return n || t.children + ? e.createElement( + 'div', + Object.assign({}, Y(t)), + t.children, + e.createElement( + 'ul', + null, + r.getErrorMessages(n).map((t, n) => e.createElement('li', { key: n }, t)), + ), + ) + : null + } + function xe(t) { + var { disabled: n, inputRef: r, readOnly: a, value: o } = t, + i = j(t, ['disabled', 'inputRef', 'readOnly', 'value']) + const { error: s, state: l } = W() + return e.createElement( + 'input', + Object.assign({ disabled: void 0 === n ? !(!s && !l.disabled) : n, readOnly: a, ref: r, type: 'submit' }, o ? { value: o } : {}, Y(i)), + ) + } + const Ee = (function e(t) { + class n extends I.Quick(t) { + getAutoField() { + return we + } + getErrorsField() { + return _e + } + getSubmitField() { + return xe + } + } + return ((n.Quick = e), n) + })(V), + ke = (function e(t) { + class n extends L.Auto(t) {} + return ((n.Auto = e), n) + })( + (function e(t) { + class n extends z.Validated(t) {} + return ((n.Validated = e), n) + })(V).Validated(Ee.Quick(V)), + ) + Y.register('minCount', 'maxCount') + var Se = n(1609), + $e = n.n(Se), + Pe = n(5021), + Oe = n.n(Pe), + Ce = n(8306), + je = n.n(Ce), + Ne = n(1700), + Ie = n.n(Ne) + class Te { + constructor(...e) { + q()(this.constructor !== Te, 'Bridge cannot be instantiated (args=%o).', { args: e }) + } + getError(e, t) { + return q()(!1, '%s have not implemented `getError` method (args=%o).', this.constructor.name, { name: e, error: t }) + } + getErrorMessage(e, t) { + return q()(!1, '%s have not implemented `getErrorMessage` method (args=%o).', this.constructor.name, { name: e, error: t }) + } + getErrorMessages(e) { + return q()(!1, '%s have not implemented `getErrorMessages` method (args=%o).', this.constructor.name, { error: e }) + } + getField(e) { + return q()(!1, '%s have not implemented `getField` method (args=%o).', this.constructor.name, { name: e }) + } + getInitialValue(e, t) { + return q()(!1, '%s have not implemented `getInitialValue` method (args=%o).', this.constructor.name, { name: e, props: t }) + } + getProps(e, t) { + return q()(!1, '%s have not implemented `getProps` method (args=%o).', this.constructor.name, { name: e, props: t }) + } + getSubfields(e) { + return q()(!1, '%s have not implemented `getSubfields` method (args=%o).', this.constructor.name, { name: e }) + } + getType(e) { + return q()(!1, '%s have not implemented `getType` method (args=%o).', this.constructor.name, { name: e }) + } + getValidator(e) { + return q()(!1, '%s have not implemented `getValidator` method (args=%o).', this.constructor.name, { options: e }) + } + } + function Ae(e, t) { + q()(t, 'Field not found in schema: "%s"', e) + } + function Re(e, t) { + if (!('$ref' in e)) return e + const { $ref: n } = e, + r = j(e, ['$ref']) + return Re( + Object.assign( + {}, + r, + (function (e, t) { + q()(e.startsWith('#'), 'Reference is not an internal reference, and only such are allowed: "%s"', e) + const n = e + .split('/') + .filter((e) => e && '#' !== e) + .reduce((e, t) => e[t], t) + return (q()(n, 'Reference not found in schema: "%s"', e), n) + })(n, t), + ), + t, + ) + } + const De = ['allOf', 'anyOf', 'oneOf'], + Me = ['default', 'enum', 'format', 'isRequired', 'title', 'uniforms'], + Fe = [ + ['maxItems', 'maxCount'], + ['maximum', 'max'], + ['minItems', 'minCount'], + ['minimum', 'min'], + ['multipleOf', 'step'], + ] + class ze extends Te { + constructor(e, t) { + ;(super(), + (this.validator = t), + (this.schema = Re(e, e)), + (this._compiledSchema = { '': this.schema }), + (this.getField = je()(this.getField.bind(this))), + (this.getSubfields = je()(this.getSubfields.bind(this))), + (this.getType = je()(this.getType.bind(this)))) + } + getError(e, t) { + const n = null == t ? void 0 : t.details + if (!Array.isArray(n)) return null + const r = k(null, e).map(k.unescape), + a = k(r), + o = k(r.slice(0, -1)), + i = r[r.length - 1], + s = n.find((e) => { + var t + const n = (function (e) { + return (e = e.startsWith('/') + ? e.replace(/\//g, '.').replace(/~0/g, '~').replace(/~1/g, '/') + : e + .replace(/\[('|")(.+?)\1\]/g, '.$2') + .replace(/\[(.+?)\]/g, '.$1') + .replace(/\\'/g, "'")).slice(1) + })(null !== (t = e.instancePath) && void 0 !== t ? t : e.dataPath) + return a === n || (o === n && i === e.params.missingProperty) + }) + return s || null + } + getErrorMessage(e, t) { + const n = this.getError(e, t) + return (null == n ? void 0 : n.message) || '' + } + getErrorMessages(e) { + if (!e) return [] + const { details: t } = e + return Array.isArray(t) ? t.map((e) => e.message) : [e.message || e] + } + getField(e) { + return k(null, e).reduce((t, n, r, a) => { + var o, i, s, l + const u = k(a.slice(0, r)), + c = k(u, n), + f = null !== (o = (l = this._compiledSchema)[c]) && void 0 !== o ? o : (l[c] = {}) + if ( + ((f.isRequired = !( + !(null === (i = t.required) || void 0 === i ? void 0 : i.includes(n)) && + !(null === (s = this._compiledSchema[u].required) || void 0 === s ? void 0 : s.includes(n)) + )), + '$' === n || n === '' + parseInt(n, 10)) + ) + (Ae(e, 'array' === t.type), (t = Array.isArray(t.items) ? t.items[parseInt(n, 10)] : t.items), Ae(e, !!t)) + else if ('object' === t.type) (Ae(e, !!t.properties), (t = t.properties[k.unescape(n)]), Ae(e, !!t)) + else { + let r = !1 + ;(De.forEach((e) => { + var a + null === (a = t[e]) || + void 0 === a || + a.forEach((e) => { + r || ((e = Re(e, this.schema)), n in e.properties && ((t = e.properties[n]), (r = !0))) + }) + }), + Ae(e, r)) + } + const d = (t = Re(t, this.schema)).required ? t.required.slice() : [], + p = t.properties ? Object.assign({}, t.properties) : {} + return ( + De.forEach((e) => { + var n + null === (n = t[e]) || + void 0 === n || + n.forEach((e) => { + ;((e = Re(e, this.schema)).required && d.push(...e.required), + Object.assign(p, e.properties), + !f.type && e.type && (f.type = e.type)) + }) + }), + d.length > 0 && (f.required = d), + $e()(p) || (f.properties = p), + t + ) + }, this.schema) + } + getInitialValue(e, t) { + var n + const r = this.getField(e), + { default: a = null !== (n = r.default) && void 0 !== n ? n : m()(this.schema.default, e), type: o = r.type } = this._compiledSchema[e] + if (void 0 !== a) return A()(a) + if ('array' === o) { + const n = this.getInitialValue(k(e, '0')), + r = (null == t ? void 0 : t.initialCount) || 0 + return Array.from({ length: r }, () => n) + } + if ('object' === o) { + const t = {} + return ( + this.getSubfields(e).forEach((n) => { + const r = this.getInitialValue(k(e, n)) + void 0 !== r && (t[n] = r) + }), + t + ) + } + } + getProps(e, t) { + var n, r, a + const o = this.getField(e), + i = Object.assign({}, o, o.uniforms, this._compiledSchema[e]) + ;((null !== (n = i.label) && void 0 !== n) || (i.label = null !== (r = i.title) && void 0 !== r ? r : Ie()(Oe()(k(null, e).slice(-1)[0]))), + 'number' === o.type && (i.decimal = !0), + void 0 !== (null === (a = o.uniforms) || void 0 === a ? void 0 : a.type) && (i.type = o.uniforms.type), + void 0 === i.required && (i.required = i.isRequired), + i.type === o.type && delete i.type) + const s = (null == t ? void 0 : t.options) || i.options + return ( + s + ? Array.isArray(s) + ? ((i.allowedValues = s.map((e) => e.value)), (i.transform = (e) => s.find((t) => t.value === e).label)) + : ((i.allowedValues = Object.keys(s)), (i.transform = (e) => s[e])) + : i.enum && (i.allowedValues = i.enum), + Fe.forEach(([e, t]) => { + e in i && ((i[t] = i[e]), delete i[e]) + }), + Me.forEach((e) => { + e in i && delete i[e] + }), + i + ) + } + getSubfields(e = '') { + const t = this.getField(e), + { properties: n = t.properties, type: r = t.type } = this._compiledSchema[e] + return 'object' === r && n ? Object.keys(n).map(k.escape) : [] + } + getType(e) { + const { type: t, format: n } = this.getField(e), + { type: r = t } = this._compiledSchema[e] + return 'date-time' === n + ? Date + : 'string' === r + ? String + : 'number' === r || 'integer' === r + ? Number + : 'object' === r + ? Object + : 'array' === r + ? Array + : 'boolean' === r + ? Boolean + : (q()('null' !== r, 'Field "%s" can not be represented as a type null', e), r) + } + getValidator() { + return this.validator + } + } + const Le = new (n(1581).ZP)({ allErrors: !0, useDefaults: !0, keywords: ['uniforms', 'options', 'defaultValue', 'allowedValues'] }) + const Ve = (t) => { + var { setIsOpen: n, setOpenAnimation: r } = t, + a = (function (e, t) { + var n = {} + for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && t.indexOf(r) < 0 && (n[r] = e[r]) + if (null != e && 'function' == typeof Object.getOwnPropertySymbols) { + var a = 0 + for (r = Object.getOwnPropertySymbols(e); a < r.length; a++) + t.indexOf(r[a]) < 0 && Object.prototype.propertyIsEnumerable.call(e, r[a]) && (n[r[a]] = e[r[a]]) + } + return n + })(t, ['setIsOpen', 'setOpenAnimation']) + const { stepData: o } = a, + i = null == o ? void 0 : o.form, + s = null == o ? void 0 : o.component + if (!o) throw new Error('Step data is required for every step.') + if (s) return e.createElement(e.Fragment, null, e.createElement(s, a)) + if (i) { + const t = (function (e) { + const t = Le.compile(e) + return (e) => (t(e), t.errors && t.errors.length ? { details: t.errors } : null) + })(i) + return e.createElement(ke, { + schema: new ze(i, t), + onSubmit: (e) => { + ;(a.onSubmit && a.onSubmit(a), + a.analytics && + Object.entries(e).forEach(([e, t]) => { + const n = `Step ${a.current}: ${e}`, + r = JSON.stringify(t) + Na.track(a.analytics, n, r) + }), + a.isLast() ? a.handleClose() : a.next()) + }, + }) + } + return e.createElement( + e.Fragment, + null, + e.createElement('h1', null, 'Under Development'), + e.createElement('p', null, 'Please use React Components or Uniform only. (for now) Check the README.md file for other implementations.'), + ) + }, + Ue = { + analytics: null, + analyticsConfig: null, + analyticsName: 'feedback-widget', + currentPath: window.location.pathname, + onSubmit: null, + steps: [], + theme: 'ripplex', + themeValues: { container: null }, + }, + qe = (t) => { + const { themeValues: n } = t, + r = (e) => { + if (t.analytics) { + const n = 'Step 1: Was page helpful?', + r = e + Na.track(t.analytics, n, r) + } else console.error('You must pass analytics options to track user responses.') + t.next() + } + return e.createElement( + 'div', + { className: 'widget-helpful form-group' }, + e.createElement( + 'div', + { style: n.step1header, className: 'widget-header' }, + e.createElement('div', { className: 'widget-header-title' }, 'Was this page helpful?'), + e.createElement('button', { type: 'button', style: n.yesIcon, className: 'widget-header-icon icon-yes', onClick: () => r('Yes') }, ' '), + e.createElement('button', { type: 'button', style: n.noIcon, className: 'widget-header-icon icon-no', onClick: () => r('No') }, ' '), + ), + ) + }, + Be = (t) => { + const { themeValues: n } = t, + [r, a] = (0, e.useState)('') + return e.createElement( + 'div', + { className: ' widget-form form-group' }, + e.createElement( + 'div', + { className: 'widget-form-wrapper' }, + e.createElement('div', { style: n.step2header, className: 'widget-header-title' }, t.themeLabels.step2Title), + e.createElement( + 'div', + { style: n.step2formarea }, + e.createElement('textarea', { style: n.inputForm, onChange: (e) => a(e.target.value) }), + ), + e.createElement( + 'div', + { style: n.step2footer, className: 'widget-form-footer' }, + e.createElement( + 'button', + { + style: n.formCancelButton, + type: 'button', + className: 'widget-header-icon cancel', + onClick: () => { + t.handleClose && t.handleClose() + }, + }, + t.themeLabels.cancelButtonText, + ), + e.createElement( + 'button', + { + style: n.formSubmitButton, + type: 'button', + className: 'widget-header-icon submit', + onClick: () => { + ;((e) => { + if (t.analytics) { + const n = 'Step 2: Feedback form.', + r = e + Na.track(t.analytics, n, r) + } else console.error('You must pass analytics options to track user responses.') + t.next() + })(r) + }, + }, + t.themeLabels.submitButtonText, + ), + ), + ), + ) + }, + He = (t) => { + const { themeValues: n } = t + return e.createElement( + 'div', + { className: 'widget-helpful form-group' }, + e.createElement( + 'div', + { style: n.step1header, className: 'widget-header' }, + e.createElement('div', { className: 'widget-header-title' }, 'Thank you for your feedback!'), + ), + ) + } + n(5864) + const We = (t) => { + const [n, r] = (0, e.useState)(Object.assign(Object.assign({}, Ue), t)), + [i, s] = (0, e.useState)(!1), + [l, u] = (0, e.useState)(null), + [c, f] = (0, e.useState)(!0), + [d, p] = (0, e.useState)('entering'), + [h, m] = (0, e.useState)(null == t ? void 0 : t.theme), + [g, v] = (0, e.useState)(o.themes[h].styles), + [y, b] = (0, e.useState)(o.labels.en), + w = () => { + ;(console.log('Close Feedback Widget.'), p('exiting'), f(!1)) + } + return ( + (0, e.useEffect)(function () { + if (!n.steps || n.steps.length <= 0) { + const e = [{ component: qe }, { component: Be }, { component: He }] + r((t) => { + const n = t + return ((n.steps = e), n) + }) + } + ;(n.analyticsConfig && u(Na.connectAnalytics(n.analyticsConfig, n.analyticsName)), s(!0)) + }, []), + (0, e.useEffect)( + function () { + ;(m(t.theme), v(o.themes[t.theme].styles), b(o.labels.en)) + }, + [t], + ), + e.createElement( + e.Fragment, + null, + i + ? e.createElement( + 'div', + { className: 'cleanslate' }, + e.createElement( + 'div', + { + style: null == g ? void 0 : g.container, + className: `\n ${h}\n widget\n docked-widget\n widget-${d}\n docked-widget-${o.themes[h].position}\n `, + }, + e.createElement( + 'div', + { className: `widget widget-${c}` }, + e.createElement('div', null, e.createElement('button', { type: 'button', id: 'closeFeedback', onClick: () => w() }, 'X')), + e.createElement( + a.Steps, + null, + n.steps.map((t, r) => + e.createElement(a.Step, { + key: r, + component: Ve, + stepData: t, + themeValues: g, + themeLabels: y, + onSubmit: n.onSubmit, + handleClose: w, + currentPath: n.currentPath, + analytics: l || null, + }), + ), + ), + ), + ), + ) + : null, + ) + ) + } + var Ke = n(6905), + Qe = n.n(Ke), + Ge = 'undefined' != typeof process ? process : {}, + Je = (Ge.env && Ge.env.NODE_ENV, 'undefined' != typeof document) + function Ye(e, t) { + return t.charAt(0)[e]() + t.slice(1) + } + ;(Je && window.location.hostname, + null != Ge.versions && Ge.versions.node, + 'undefined' != typeof Deno && Deno.core, + 'object' == typeof self && self.constructor && self.constructor.name, + (Je && 'nodejs' === window.name) || + ('undefined' != typeof navigator && + void 0 !== navigator.userAgent && + (navigator.userAgent.includes('Node.js') || navigator.userAgent.includes('jsdom')))) + var Ze = Ye.bind(null, 'toUpperCase'), + Xe = Ye.bind(null, 'toLowerCase') + function et(e, t) { + void 0 === t && (t = !0) + var n = (function (e) { + return at(e) + ? Ze('null') + : 'object' == typeof e + ? (function (e) { + return nt(e.constructor) ? e.constructor.name : null + })(e) + : Object.prototype.toString.call(e).slice(8, -1) + })(e) + return t ? Xe(n) : n + } + function tt(e, t) { + return typeof t === e + } + var nt = tt.bind(null, 'function'), + rt = tt.bind(null, 'string') + function at(e) { + return null === e + } + function ot(e, t) { + if ('object' != typeof t || at(t)) return !1 + if (t instanceof e) return !0 + var n = et(new e('')) + if ( + (function (e) { + return ( + e instanceof Error || + (rt(e.message) && + e.constructor && + (function (e) { + return 'number' === et(e) && !isNaN(e) + })(e.constructor.stackTraceLimit)) + ) + })(t) + ) + for (; t; ) { + if (et(t) === n) return !0 + t = Object.getPrototypeOf(t) + } + return !1 + } + function it(e, t) { + var n = e instanceof Element || e instanceof HTMLDocument + return n && t + ? (function (e, t) { + return (void 0 === t && (t = ''), e && e.nodeName === t.toUpperCase()) + })(e, t) + : n + } + function st(e) { + var t = [].slice.call(arguments, 1) + return function () { + return e.apply(void 0, [].slice.call(arguments).concat(t)) + } + } + function lt(e) { + try { + return decodeURIComponent(e.replace(/\+/g, ' ')) + } catch (e) { + return null + } + } + function ut(e, t, n) { + for (var r = t.length - 1, a = 0; a < r; ++a) { + var o = t[a] + if ('__proto__' === o || 'constructor' === o) break + ;(o in e || (e[o] = {}), (e = e[o])) + } + e[t[r]] = n + } + function ct() { + for (var e = '', t = 0, n = (4294967295 * Math.random()) | 0; t++ < 36; ) { + var r = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'[t - 1], + a = 15 & n + ;((e += '-' == r || '4' == r ? r : ('x' == r ? a : (3 & a) | 8).toString(16)), (n = t % 8 == 0 ? (4294967295 * Math.random()) | 0 : n >> 4)) + } + return e + } + ;(tt.bind(null, 'undefined'), + tt.bind(null, 'boolean'), + tt.bind(null, 'symbol'), + ot.bind(null, TypeError), + ot.bind(null, SyntaxError), + st(it, 'form'), + st(it, 'button'), + st(it, 'input'), + st(it, 'select')) + var ft = 'undefined', + dt = 'object', + pt = 'undefined' != typeof process ? process : {}, + ht = (pt.env && pt.env.NODE_ENV, 'undefined' != typeof document) + function mt(e, t) { + return t.charAt(0)[e]() + t.slice(1) + } + ;(ht && window.location.hostname, + null != pt.versions && pt.versions.node, + 'undefined' != typeof Deno && Deno.core, + 'object' == typeof self && self.constructor && self.constructor.name, + (ht && 'nodejs' === window.name) || + ('undefined' != typeof navigator && + void 0 !== navigator.userAgent && + (navigator.userAgent.includes('Node.js') || navigator.userAgent.includes('jsdom')))) + var gt = mt.bind(null, 'toUpperCase'), + vt = mt.bind(null, 'toLowerCase') + function yt(e, t) { + void 0 === t && (t = !0) + var n = (function (e) { + return xt(e) + ? gt('null') + : 'object' == typeof e + ? (function (e) { + return wt(e.constructor) ? e.constructor.name : null + })(e) + : Object.prototype.toString.call(e).slice(8, -1) + })(e) + return t ? vt(n) : n + } + function bt(e, t) { + return typeof t === e + } + var wt = bt.bind(null, 'function'), + _t = bt.bind(null, 'string') + function xt(e) { + return null === e + } + function Et(e, t) { + if ('object' != typeof t || xt(t)) return !1 + if (t instanceof e) return !0 + var n = yt(new e('')) + if ( + (function (e) { + return ( + e instanceof Error || + (_t(e.message) && + e.constructor && + (function (e) { + return 'number' === yt(e) && !isNaN(e) + })(e.constructor.stackTraceLimit)) + ) + })(t) + ) + for (; t; ) { + if (yt(t) === n) return !0 + t = Object.getPrototypeOf(t) + } + return !1 + } + function kt(e, t) { + var n = e instanceof Element || e instanceof HTMLDocument + return n && t + ? (function (e, t) { + return (void 0 === t && (t = ''), e && e.nodeName === t.toUpperCase()) + })(e, t) + : n + } + function St(e) { + var t = [].slice.call(arguments, 1) + return function () { + return e.apply(void 0, [].slice.call(arguments).concat(t)) + } + } + ;(bt.bind(null, 'undefined'), + bt.bind(null, 'boolean'), + bt.bind(null, 'symbol'), + Et.bind(null, TypeError), + Et.bind(null, SyntaxError), + St(kt, 'form'), + St(kt, 'button'), + St(kt, 'input'), + St(kt, 'select')) + var $t = 'global', + Pt = '__global__', + Ot = (typeof self === dt && self.self === self && self) || (typeof n.g === dt && n.g.global === n.g && n.g) || void 0 + function Ct(e) { + return Ot[Pt][e] + } + function jt(e, t) { + return (Ot[Pt][e] = t) + } + function Nt(e) { + delete Ot[Pt][e] + } + function It(e, t, n) { + var r + try { + if (At(e)) { + var a = window[e] + r = a[t].bind(a) + } + } catch (e) {} + return r || n + } + Ot[Pt] || (Ot[Pt] = {}) + var Tt = {} + function At(e) { + if (typeof Tt[e] !== ft) return Tt[e] + try { + var t = window[e] + ;(t.setItem(ft, ft), t.removeItem(ft)) + } catch (t) { + return (Tt[e] = !1) + } + return (Tt[e] = !0) + } + var Rt, + Dt = 'any', + Mt = '*', + Ft = 'undefined' != typeof process ? process : {}, + zt = (null == (Rt = Ft.env) || Rt.NODE_ENV, 'undefined' != typeof window) + function Lt(e, t) { + return typeof t === e + } + ;(zt && window.location.hostname, + null != Ft.versions && Ft.versions.node, + 'undefined' != typeof Deno && Deno.core, + 'object' == typeof self && self.constructor && self.constructor.name, + (zt && 'nodejs' === window.name) || + ('undefined' != typeof navigator && (navigator.userAgent.includes('Node.js') || navigator.userAgent.includes('jsdom')))) + var Vt = Lt.bind(null, 'function'), + Ut = Lt.bind(null, 'string'), + qt = Lt.bind(null, 'undefined'), + Bt = Lt.bind(null, 'boolean') + function Ht(e) { + if ( + !(function (e) { + return e && ('object' == typeof e || null !== e) + })(e) + ) + return !1 + for (var t = e; null !== Object.getPrototypeOf(t); ) t = Object.getPrototypeOf(t) + return Object.getPrototypeOf(e) === t + } + function Wt(e, t) { + var n = e instanceof Element || e instanceof HTMLDocument + return n && t + ? (function (e, t) { + return (void 0 === t && (t = ''), e && e.nodeName === t.toUpperCase()) + })(e, t) + : n + } + function Kt(e) { + return function () { + return e.apply(void 0, [].slice.call(arguments).concat([].slice.call(arguments, 1))) + } + } + function Qt(e, t) { + ;(null == t || t > e.length) && (t = e.length) + for (var n = 0, r = new Array(t); n < t; n++) r[n] = e[n] + return r + } + function Gt(e, t) { + if (e) { + if ('string' == typeof e) return Qt(e, t) + var n = Object.prototype.toString.call(e).slice(8, -1) + return ( + 'Object' === n && e.constructor && (n = e.constructor.name), + 'Map' === n || 'Set' === n ? Array.from(e) : 'Arguments' === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? Qt(e, t) : void 0 + ) + } + } + function Jt(e) { + return ( + (function (e) { + if (Array.isArray(e)) return Qt(e) + })(e) || + (function (e) { + if (('undefined' != typeof Symbol && null != e[Symbol.iterator]) || null != e['@@iterator']) return Array.from(e) + })(e) || + Gt(e) || + (function () { + throw new TypeError( + 'Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.', + ) + })() + ) + } + function Yt(e) { + return ( + (Yt = + 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator + ? function (e) { + return typeof e + } + : function (e) { + return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e + }), + Yt(e) + ) + } + function Zt(e, t, n, r, a, o, i) { + try { + var s = e[o](i), + l = s.value + } catch (e) { + return void n(e) + } + s.done ? t(l) : Promise.resolve(l).then(r, a) + } + function Xt(e) { + return function () { + var t = this, + n = arguments + return new Promise(function (r, a) { + var o = e.apply(t, n) + function i(e) { + Zt(o, r, a, i, s, 'next', e) + } + function s(e) { + Zt(o, r, a, i, s, 'throw', e) + } + i(void 0) + }) + } + } + function en(e, t, n) { + return (t in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : (e[t] = n), e) + } + function tn(e, t) { + var n = Object.keys(e) + if (Object.getOwnPropertySymbols) { + var r = Object.getOwnPropertySymbols(e) + ;(t && + (r = r.filter(function (t) { + return Object.getOwnPropertyDescriptor(e, t).enumerable + })), + n.push.apply(n, r)) + } + return n + } + function nn(e) { + for (var t = 1; t < arguments.length; t++) { + var n = null != arguments[t] ? arguments[t] : {} + t % 2 + ? tn(Object(n), !0).forEach(function (t) { + en(e, t, n[t]) + }) + : Object.getOwnPropertyDescriptors + ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) + : tn(Object(n)).forEach(function (t) { + Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) + }) + } + return e + } + ;(Kt(Wt), Kt(Wt), Kt(Wt), Kt(Wt)) + var rn = { exports: {} } + !(function (e) { + var t = (function (e) { + var t, + n = Object.prototype, + r = n.hasOwnProperty, + a = 'function' == typeof Symbol ? Symbol : {}, + o = a.iterator || '@@iterator', + i = a.asyncIterator || '@@asyncIterator', + s = a.toStringTag || '@@toStringTag' + function l(e, t, n) { + return (Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }), e[t]) + } + try { + l({}, '') + } catch (e) { + l = function (e, t, n) { + return (e[t] = n) + } + } + function u(e, t, n, r) { + var a = t && t.prototype instanceof g ? t : g, + o = Object.create(a.prototype), + i = new O(r || []) + return ( + (o._invoke = (function (e, t, n) { + var r = f + return function (a, o) { + if (r === p) throw new Error('Generator is already running') + if (r === h) { + if ('throw' === a) throw o + return j() + } + for (n.method = a, n.arg = o; ; ) { + var i = n.delegate + if (i) { + var s = S(i, n) + if (s) { + if (s === m) continue + return s + } + } + if ('next' === n.method) n.sent = n._sent = n.arg + else if ('throw' === n.method) { + if (r === f) throw ((r = h), n.arg) + n.dispatchException(n.arg) + } else 'return' === n.method && n.abrupt('return', n.arg) + r = p + var l = c(e, t, n) + if ('normal' === l.type) { + if (((r = n.done ? h : d), l.arg === m)) continue + return { value: l.arg, done: n.done } + } + 'throw' === l.type && ((r = h), (n.method = 'throw'), (n.arg = l.arg)) + } + } + })(e, n, i)), + o + ) + } + function c(e, t, n) { + try { + return { type: 'normal', arg: e.call(t, n) } + } catch (e) { + return { type: 'throw', arg: e } + } + } + e.wrap = u + var f = 'suspendedStart', + d = 'suspendedYield', + p = 'executing', + h = 'completed', + m = {} + function g() {} + function v() {} + function y() {} + var b = {} + l(b, o, function () { + return this + }) + var w = Object.getPrototypeOf, + _ = w && w(w(C([]))) + _ && _ !== n && r.call(_, o) && (b = _) + var x = (y.prototype = g.prototype = Object.create(b)) + function E(e) { + ;['next', 'throw', 'return'].forEach(function (t) { + l(e, t, function (e) { + return this._invoke(t, e) + }) + }) + } + function k(e, t) { + function n(a, o, i, s) { + var l = c(e[a], e, o) + if ('throw' !== l.type) { + var u = l.arg, + f = u.value + return f && 'object' == typeof f && r.call(f, '__await') + ? t.resolve(f.__await).then( + function (e) { + n('next', e, i, s) + }, + function (e) { + n('throw', e, i, s) + }, + ) + : t.resolve(f).then( + function (e) { + ;((u.value = e), i(u)) + }, + function (e) { + return n('throw', e, i, s) + }, + ) + } + s(l.arg) + } + var a + this._invoke = function (e, r) { + function o() { + return new t(function (t, a) { + n(e, r, t, a) + }) + } + return (a = a ? a.then(o, o) : o()) + } + } + function S(e, n) { + var r = e.iterator[n.method] + if (r === t) { + if (((n.delegate = null), 'throw' === n.method)) { + if (e.iterator.return && ((n.method = 'return'), (n.arg = t), S(e, n), 'throw' === n.method)) return m + ;((n.method = 'throw'), (n.arg = new TypeError("The iterator does not provide a 'throw' method"))) + } + return m + } + var a = c(r, e.iterator, n.arg) + if ('throw' === a.type) return ((n.method = 'throw'), (n.arg = a.arg), (n.delegate = null), m) + var o = a.arg + return o + ? o.done + ? ((n[e.resultName] = o.value), + (n.next = e.nextLoc), + 'return' !== n.method && ((n.method = 'next'), (n.arg = t)), + (n.delegate = null), + m) + : o + : ((n.method = 'throw'), (n.arg = new TypeError('iterator result is not an object')), (n.delegate = null), m) + } + function $(e) { + var t = { tryLoc: e[0] } + ;(1 in e && (t.catchLoc = e[1]), 2 in e && ((t.finallyLoc = e[2]), (t.afterLoc = e[3])), this.tryEntries.push(t)) + } + function P(e) { + var t = e.completion || {} + ;((t.type = 'normal'), delete t.arg, (e.completion = t)) + } + function O(e) { + ;((this.tryEntries = [{ tryLoc: 'root' }]), e.forEach($, this), this.reset(!0)) + } + function C(e) { + if (e) { + var n = e[o] + if (n) return n.call(e) + if ('function' == typeof e.next) return e + if (!isNaN(e.length)) { + var a = -1, + i = function n() { + for (; ++a < e.length; ) if (r.call(e, a)) return ((n.value = e[a]), (n.done = !1), n) + return ((n.value = t), (n.done = !0), n) + } + return (i.next = i) + } + } + return { next: j } + } + function j() { + return { value: t, done: !0 } + } + return ( + (v.prototype = y), + l(x, 'constructor', y), + l(y, 'constructor', v), + (v.displayName = l(y, s, 'GeneratorFunction')), + (e.isGeneratorFunction = function (e) { + var t = 'function' == typeof e && e.constructor + return !!t && (t === v || 'GeneratorFunction' === (t.displayName || t.name)) + }), + (e.mark = function (e) { + return ( + Object.setPrototypeOf ? Object.setPrototypeOf(e, y) : ((e.__proto__ = y), l(e, s, 'GeneratorFunction')), + (e.prototype = Object.create(x)), + e + ) + }), + (e.awrap = function (e) { + return { __await: e } + }), + E(k.prototype), + l(k.prototype, i, function () { + return this + }), + (e.AsyncIterator = k), + (e.async = function (t, n, r, a, o) { + void 0 === o && (o = Promise) + var i = new k(u(t, n, r, a), o) + return e.isGeneratorFunction(n) + ? i + : i.next().then(function (e) { + return e.done ? e.value : i.next() + }) + }), + E(x), + l(x, s, 'Generator'), + l(x, o, function () { + return this + }), + l(x, 'toString', function () { + return '[object Generator]' + }), + (e.keys = function (e) { + var t = [] + for (var n in e) t.push(n) + return ( + t.reverse(), + function n() { + for (; t.length; ) { + var r = t.pop() + if (r in e) return ((n.value = r), (n.done = !1), n) + } + return ((n.done = !0), n) + } + ) + }), + (e.values = C), + (O.prototype = { + constructor: O, + reset: function (e) { + if ( + ((this.prev = 0), + (this.next = 0), + (this.sent = this._sent = t), + (this.done = !1), + (this.delegate = null), + (this.method = 'next'), + (this.arg = t), + this.tryEntries.forEach(P), + !e) + ) + for (var n in this) 't' === n.charAt(0) && r.call(this, n) && !isNaN(+n.slice(1)) && (this[n] = t) + }, + stop: function () { + this.done = !0 + var e = this.tryEntries[0].completion + if ('throw' === e.type) throw e.arg + return this.rval + }, + dispatchException: function (e) { + if (this.done) throw e + var n = this + function a(r, a) { + return ((s.type = 'throw'), (s.arg = e), (n.next = r), a && ((n.method = 'next'), (n.arg = t)), !!a) + } + for (var o = this.tryEntries.length - 1; o >= 0; --o) { + var i = this.tryEntries[o], + s = i.completion + if ('root' === i.tryLoc) return a('end') + if (i.tryLoc <= this.prev) { + var l = r.call(i, 'catchLoc'), + u = r.call(i, 'finallyLoc') + if (l && u) { + if (this.prev < i.catchLoc) return a(i.catchLoc, !0) + if (this.prev < i.finallyLoc) return a(i.finallyLoc) + } else if (l) { + if (this.prev < i.catchLoc) return a(i.catchLoc, !0) + } else { + if (!u) throw new Error('try statement without catch or finally') + if (this.prev < i.finallyLoc) return a(i.finallyLoc) + } + } + } + }, + abrupt: function (e, t) { + for (var n = this.tryEntries.length - 1; n >= 0; --n) { + var a = this.tryEntries[n] + if (a.tryLoc <= this.prev && r.call(a, 'finallyLoc') && this.prev < a.finallyLoc) { + var o = a + break + } + } + o && ('break' === e || 'continue' === e) && o.tryLoc <= t && t <= o.finallyLoc && (o = null) + var i = o ? o.completion : {} + return ((i.type = e), (i.arg = t), o ? ((this.method = 'next'), (this.next = o.finallyLoc), m) : this.complete(i)) + }, + complete: function (e, t) { + if ('throw' === e.type) throw e.arg + return ( + 'break' === e.type || 'continue' === e.type + ? (this.next = e.arg) + : 'return' === e.type + ? ((this.rval = this.arg = e.arg), (this.method = 'return'), (this.next = 'end')) + : 'normal' === e.type && t && (this.next = t), + m + ) + }, + finish: function (e) { + for (var t = this.tryEntries.length - 1; t >= 0; --t) { + var n = this.tryEntries[t] + if (n.finallyLoc === e) return (this.complete(n.completion, n.afterLoc), P(n), m) + } + }, + catch: function (e) { + for (var t = this.tryEntries.length - 1; t >= 0; --t) { + var n = this.tryEntries[t] + if (n.tryLoc === e) { + var r = n.completion + if ('throw' === r.type) { + var a = r.arg + P(n) + } + return a + } + } + throw new Error('illegal catch attempt') + }, + delegateYield: function (e, n, r) { + return ((this.delegate = { iterator: C(e), resultName: n, nextLoc: r }), 'next' === this.method && (this.arg = t), m) + }, + }), + e + ) + })(e.exports) + try { + regeneratorRuntime = t + } catch (e) { + 'object' == typeof globalThis ? (globalThis.regeneratorRuntime = t) : Function('r', 'regeneratorRuntime = r')(t) + } + })(rn) + var an = rn.exports, + on = 'function', + sn = 'undefined', + ln = 'reducer', + un = '@@redux/', + cn = un + 'INIT', + fn = un + Math.random().toString(36), + dn = (function () { + return (('undefined' == typeof Symbol ? 'undefined' : Yt(Symbol)) === on && Symbol.observable) || '@@observable' + })(), + pn = ' != ' + on + function hn(e, t, n) { + if ((Yt(t) === on && Yt(n) === sn && ((n = t), (t = void 0)), Yt(n) !== sn)) { + if (Yt(n) !== on) throw new Error('enhancer' + pn) + return n(hn)(e, t) + } + if (Yt(e) !== on) throw new Error(ln + pn) + var r = e, + a = t, + o = [], + i = o, + s = !1 + function l() { + i === o && (i = o.slice()) + } + function u() { + return a + } + function c(e) { + if (Yt(e) !== on) throw new Error('Listener' + pn) + var t = !0 + return ( + l(), + i.push(e), + function () { + if (t) { + ;((t = !1), l()) + var n = i.indexOf(e) + i.splice(n, 1) + } + } + ) + } + function f(e) { + if (!Ht(e)) throw new Error('Act != obj') + if (Yt(e.type) === sn) throw new Error('ActType ' + sn) + if (s) throw new Error('Dispatch in ' + ln) + try { + ;((s = !0), (a = r(a, e))) + } finally { + s = !1 + } + for (var t = (o = i), n = 0; n < t.length; n++) (0, t[n])() + return e + } + return ( + f({ type: cn }), + en( + { + dispatch: f, + subscribe: c, + getState: u, + replaceReducer: function (e) { + if (Yt(e) !== on) throw new Error('next ' + ln + pn) + ;((r = e), f({ type: cn })) + }, + }, + dn, + function () { + var e = c + return en( + { + subscribe: function (t) { + if ('object' !== Yt(t)) throw new TypeError('Observer != obj') + function n() { + t.next && t.next(u()) + } + return (n(), { unsubscribe: e(n) }) + }, + }, + dn, + function () { + return this + }, + ) + }, + ) + ) + } + function mn(e, t) { + var n = t && t.type + return 'action ' + ((n && n.toString()) || '?') + ln + ' ' + e + ' returns ' + sn + } + function gn() { + for (var e = arguments.length, t = new Array(e), n = 0; n < e; n++) t[n] = arguments[n] + return 0 === t.length + ? function (e) { + return e + } + : 1 === t.length + ? t[0] + : t.reduce(function (e, t) { + return function () { + return e(t.apply(void 0, arguments)) + } + }) + } + function vn() { + for (var e = arguments.length, t = new Array(e), n = 0; n < e; n++) t[n] = arguments[n] + return function (e) { + return function (n, r, a) { + var o, + i = e(n, r, a), + s = i.dispatch, + l = { + getState: i.getState, + dispatch: function (e) { + return s(e) + }, + } + return ( + (o = t.map(function (e) { + return e(l) + })), + (s = gn.apply(void 0, Jt(o))(i.dispatch)), + nn(nn({}, i), {}, { dispatch: s }) + ) + } + } + } + var yn = '__anon_id', + bn = '__user_id', + wn = '__user_traits', + _n = 'analytics', + xn = 'userId', + En = 'anonymousId', + kn = [ + 'bootstrap', + 'params', + 'campaign', + 'initializeStart', + 'initialize', + 'initializeEnd', + 'ready', + 'resetStart', + 'reset', + 'resetEnd', + 'pageStart', + 'page', + 'pageEnd', + 'pageAborted', + 'trackStart', + 'track', + 'trackEnd', + 'trackAborted', + 'identifyStart', + 'identify', + 'identifyEnd', + 'identifyAborted', + 'userIdChanged', + 'registerPlugins', + 'enablePlugin', + 'disablePlugin', + 'online', + 'offline', + 'setItemStart', + 'setItem', + 'setItemEnd', + 'setItemAborted', + 'removeItemStart', + 'removeItem', + 'removeItemEnd', + 'removeItemAborted', + ], + Sn = ['name', 'EVENTS', 'config', 'loaded'], + $n = kn.reduce( + function (e, t) { + return ((e[t] = t), e) + }, + { + registerPluginType: function (e) { + return 'registerPlugin:'.concat(e) + }, + pluginReadyType: function (e) { + return 'ready:'.concat(e) + }, + }, + ), + Pn = /^utm_/, + On = /^an_prop_/, + Cn = /^an_trait_/ + function jn(e) { + var t = e.storage.setItem + return function (n) { + return function (r) { + return function (a) { + if (a.type === $n.bootstrap) { + var o = a.params, + i = a.user, + s = a.persistedUser, + l = a.initialUser, + u = s.userId === i.userId + ;(s.anonymousId !== i.anonymousId && t(yn, i.anonymousId), + u || t(bn, i.userId), + l.traits && t(wn, nn(nn({}, u && s.traits ? s.traits : {}), l.traits))) + var c = Object.keys(a.params) + if (c.length) { + var f = o.an_uid, + d = o.an_event, + p = c.reduce( + function (e, t) { + if (t.match(Pn) || t.match(/^(d|g)clid/)) { + var n = t.replace(Pn, ''), + r = 'campaign' === n ? 'name' : n + e.campaign[r] = o[t] + } + return (t.match(On) && (e.props[t.replace(On, '')] = o[t]), t.match(Cn) && (e.traits[t.replace(Cn, '')] = o[t]), e) + }, + { campaign: {}, props: {}, traits: {} }, + ) + ;(n.dispatch(nn(nn({ type: $n.params, raw: o }, p), f ? { userId: f } : {})), + f && + setTimeout(function () { + return e.identify(f, p.traits) + }, 0), + d && + setTimeout(function () { + return e.track(d, p.props) + }, 0), + Object.keys(p.campaign).length && n.dispatch({ type: $n.campaign, campaign: p.campaign })) + } + } + return r(a) + } + } + } + } + function Nn(e) { + return function () { + var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, + n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {} + if (n.type === $n.setItemEnd) { + if (n.key === yn) return nn(nn({}, t), { anonymousId: n.value }) + if (n.key === bn) return nn(nn({}, t), { userId: n.value }) + } + switch (n.type) { + case $n.identify: + return Object.assign({}, t, { userId: n.userId, traits: nn(nn({}, t.traits), n.traits) }) + case $n.reset: + return ( + [bn, yn, wn].forEach(function (t) { + e.removeItem(t) + }), + Object.assign({}, t, { userId: null, anonymousId: null, traits: {} }) + ) + default: + return t + } + } + } + function In(e) { + return { userId: e.getItem(bn), anonymousId: e.getItem(yn), traits: e.getItem(wn) } + } + var Tn = function (e) { + return '__TEMP__' + e + } + function An(e) { + var t = e.storage, + n = t.setItem, + r = t.removeItem, + a = t.getItem + return function (e) { + return function (t) { + return function (o) { + var i = o.userId, + s = o.traits, + l = o.options + if ( + (o.type === $n.reset && + ([bn, wn, yn].forEach(function (e) { + r(e) + }), + [xn, En, 'traits'].forEach(function (e) { + Nt(Tn(e)) + })), + o.type === $n.identify) + ) { + a(yn) || n(yn, ct()) + var u = a(bn), + c = a(wn) || {} + ;(u && u !== i && e.dispatch({ type: $n.userIdChanged, old: { userId: u, traits: c }, new: { userId: i, traits: s }, options: l }), + i && n(bn, i), + s && n(wn, nn(nn({}, c), s))) + } + return t(o) + } + } + } + } + var Rn = {} + function Dn(e, t) { + Rn[e] && Vt(Rn[e]) && (Rn[e](t), delete Rn[e]) + } + function Mn(e, t, n) { + return new Promise(function (r, a) { + return t() + ? r(e) + : n < 1 + ? a(nn(nn({}, e), {}, { queue: !0 })) + : (10, + new Promise(function (e) { + return setTimeout(e, 10) + })).then(function (o) { + return Mn(e, t, n - 10).then(r, a) + }) + }) + } + function Fn(e, t, n) { + var r = t(), + a = e.getState(), + o = a.plugins, + i = a.context, + s = a.queue, + l = a.user + if (!i.offline && s && s.actions && s.actions.length) { + var u = s.actions.reduce( + function (e, t, n) { + return (o[t.plugin].loaded ? (e.process.push(t), e.processIndex.push(n)) : (e.requeue.push(t), e.requeueIndex.push(n)), e) + }, + { processIndex: [], process: [], requeue: [], requeueIndex: [] }, + ) + if (u.processIndex && u.processIndex.length) { + u.processIndex.forEach(function (t) { + var a = s.actions[t], + i = a.plugin, + u = a.payload.type, + c = r[i][u] + if (c && Vt(c)) { + var f = (function () { + var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, + t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {} + return [xn, En].reduce(function (n, r) { + return (e.hasOwnProperty(r) && t[r] && t[r] !== e[r] && (n[r] = t[r]), n) + }, e) + })(a.payload, l) + c({ payload: f, config: o[i].config, instance: n }) + var d = ''.concat(u, ':').concat(i) + e.dispatch(nn(nn({}, f), {}, { type: d, _: { called: d, from: 'queueDrain' } })) + } + }) + var c = s.actions.filter(function (e, t) { + return !~u.processIndex.indexOf(t) + }) + s.actions = c + } + } + } + function zn(e) { + var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, + n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {} + return Object.keys(e) + .filter(function (e) { + var r = n.plugins || {} + return Bt(r[e]) ? r[e] : !1 !== r.all && (!t[e] || !1 !== t[e].enabled) + }) + .map(function (t) { + return e[t] + }) + } + var Ln = /Start$/, + Vn = /^bootstrap/, + Un = /^ready/ + function qn(e, t, n, r, a) { + return Bn.apply(this, arguments) + } + function Bn() { + return (Bn = Xt( + an.mark(function e(t, n, r, a, o) { + var i, s, l, u, c, f, d, p, h, m, g + return an.wrap(function (e) { + for (;;) + switch ((e.prev = e.next)) { + case 0: + if (((i = Vt(n) ? n() : n), (s = t.type), (l = s.replace(Ln, '')), !t._ || !t._.called)) { + e.next = 5 + break + } + return e.abrupt('return', t) + case 5: + return ( + (u = r.getState()), + (c = zn(i, u.plugins, t.options)), + s === $n.initializeStart && + t.fromEnable && + (c = Object.keys(u.plugins) + .filter(function (e) { + var n = u.plugins[e] + return t.plugins.includes(e) && !n.initialized + }) + .map(function (e) { + return i[e] + })), + (f = c.map(function (e) { + return e.name + })), + (d = Yn(s, c)), + (e.next = 12), + Hn({ + action: t, + data: { exact: d.before, namespaced: d.beforeNS }, + state: u, + allPlugins: i, + allMatches: d, + instance: r, + store: a, + EVENTS: o, + }) + ) + case 12: + if (!Xn((p = e.sent), f.length)) { + e.next = 15 + break + } + return e.abrupt('return', p) + case 15: + if (s !== l) { + e.next = 19 + break + } + ;((h = p), (e.next = 22)) + break + case 19: + return ( + (e.next = 21), + Hn({ + action: nn(nn({}, p), {}, { type: l }), + data: { exact: d.during, namespaced: d.duringNS }, + state: u, + allPlugins: i, + allMatches: d, + instance: r, + store: a, + EVENTS: o, + }) + ) + case 21: + h = e.sent + case 22: + if (!s.match(Ln)) { + e.next = 28 + break + } + return ( + (m = ''.concat(l, 'End')), + (e.next = 26), + Hn({ + action: nn(nn({}, h), {}, { type: m }), + data: { exact: d.after, namespaced: d.afterNS }, + state: u, + allPlugins: i, + allMatches: d, + instance: r, + store: a, + EVENTS: o, + }) + ) + case 26: + ;(g = e.sent).meta && g.meta.hasCallback && Dn(g.meta.rid, { payload: g }) + case 28: + return e.abrupt('return', p) + case 29: + case 'end': + return e.stop() + } + }, e) + }), + )).apply(this, arguments) + } + function Hn(e) { + return Wn.apply(this, arguments) + } + function Wn() { + return ( + (Wn = Xt( + an.mark(function e(t) { + var n, r, a, o, i, s, l, u, c, f, d, p, h, m, g, v, y, b + return an.wrap(function (e) { + for (;;) + switch ((e.prev = e.next)) { + case 0: + return ( + (n = t.data), + (r = t.action), + (a = t.instance), + (o = t.state), + (i = t.allPlugins), + (s = t.allMatches), + (l = t.store), + (u = t.EVENTS), + (c = o.plugins), + (f = o.context), + (d = r.type), + (p = d.match(Ln)), + (h = n.exact.map(function (e) { + return e.pluginName + })), + p && + (h = s.during.map(function (e) { + return e.pluginName + })), + (m = nr(a, h)), + (g = n.exact.reduce(function (e, t) { + var n = t.pluginName, + r = t.methodName, + a = !1 + return ( + r.match(/^initialize/) || r.match(/^reset/) || (a = !c[n].loaded), + f.offline && r.match(/^(page|track|identify)/) && (a = !0), + (e[''.concat(n)] = a), + e + ) + }, {})), + (e.next = 10), + n.exact.reduce( + (function () { + var e = Xt( + an.mark(function e(t, o, s) { + var l, u, f + return an.wrap(function (e) { + for (;;) + switch ((e.prev = e.next)) { + case 0: + return ((l = o.pluginName), (e.next = 3), t) + case 3: + if (((u = e.sent), !n.namespaced || !n.namespaced[l])) { + e.next = 11 + break + } + return ( + (e.next = 7), + n.namespaced[l].reduce( + (function () { + var e = Xt( + an.mark(function e(t, n, r) { + var o, s, u, f + return an.wrap(function (e) { + for (;;) + switch ((e.prev = e.next)) { + case 0: + return ( + (s = function (e, t, n) { + return function (r, a) { + var o = n || t + return nn( + nn({}, e), + {}, + { abort: { reason: r, plugins: a || [t], caller: d, from: o } }, + ) + } + }), + (e.next = 3), + t + ) + case 3: + if (((o = e.sent), n.method && Vt(n.method))) { + e.next = 6 + break + } + return e.abrupt('return', o) + case 6: + return ( + rr(n.methodName, n.pluginName), + (e.next = 9), + n.method({ + payload: o, + instance: a, + abort: s(o, l, n.pluginName), + config: Qn(n.pluginName, c, i), + plugins: c, + }) + ) + case 9: + return ( + (u = e.sent), + (f = Ht(u) ? u : {}), + e.abrupt('return', Promise.resolve(nn(nn({}, o), f))) + ) + case 12: + case 'end': + return e.stop() + } + }, e) + }), + ) + return function (t, n, r) { + return e.apply(this, arguments) + } + })(), + Promise.resolve(r), + ) + ) + case 7: + ;((f = e.sent), (u[l] = f), (e.next = 12)) + break + case 11: + u[l] = r + case 12: + return e.abrupt('return', Promise.resolve(u)) + case 13: + case 'end': + return e.stop() + } + }, e) + }), + ) + return function (t, n, r) { + return e.apply(this, arguments) + } + })(), + Promise.resolve({}), + ) + ) + case 10: + return ( + (v = e.sent), + (e.next = 13), + n.exact.reduce( + (function () { + var e = Xt( + an.mark(function e(t, r, o) { + var s, u, f, h, y, b, w, _, x, E, k, S + return an.wrap(function (e) { + for (;;) + switch ((e.prev = e.next)) { + case 0: + return ((s = n.exact.length === o + 1), (u = r.pluginName), (f = i[u]), (e.next = 5), t) + case 5: + if (((h = e.sent), (y = v[u] ? v[u] : {}), p && (y = h), !Zn(y, u))) { + e.next = 11 + break + } + return ( + Kn({ data: y, method: d, instance: a, pluginName: u, store: l }), + e.abrupt('return', Promise.resolve(h)) + ) + case 11: + if (!Zn(h, u)) { + e.next = 14 + break + } + return (s && Kn({ data: h, method: d, instance: a, store: l }), e.abrupt('return', Promise.resolve(h))) + case 14: + if (!g.hasOwnProperty(u) || !0 !== g[u]) { + e.next = 17 + break + } + return ( + l.dispatch({ type: 'queue', plugin: u, payload: y, _: { called: 'queue', from: 'queueMechanism' } }), + e.abrupt('return', Promise.resolve(h)) + ) + case 17: + return ( + (b = m(v[u], i[u])), + (e.next = 20), + f[d]({ abort: b.abort, payload: y, instance: a, config: Qn(u, c, i), plugins: c }) + ) + case 20: + return ( + (w = e.sent), + (_ = Ht(w) ? w : {}), + (x = nn(nn({}, h), _)), + Zn((E = v[u]), u) + ? Kn({ data: E, method: d, instance: a, pluginName: u, store: l }) + : ((k = ''.concat(d, ':').concat(u)).match(/:/g) || []).length < 2 && + !d.match(Vn) && + !d.match(Un) && + ((S = p ? x : y), a.dispatch(nn(nn({}, S), {}, { type: k, _: { called: k, from: 'submethod' } }))), + e.abrupt('return', Promise.resolve(x)) + ) + case 26: + case 'end': + return e.stop() + } + }, e) + }), + ) + return function (t, n, r) { + return e.apply(this, arguments) + } + })(), + Promise.resolve(r), + ) + ) + case 13: + if ( + ((y = e.sent), + d.match(Ln) || d.match(/^registerPlugin/) || d.match(Un) || d.match(Vn) || d.match(/^params/) || d.match(/^userIdChanged/)) + ) { + e.next = 21 + break + } + if ((u.plugins.includes(d), !y._ || y._.originalAction !== d)) { + e.next = 18 + break + } + return e.abrupt('return', y) + case 18: + ;((b = nn(nn({}, y), { _: { originalAction: y.type, called: y.type, from: 'engineEnd' } })), + Xn(y, n.exact.length) && !d.match(/End$/) && (b = nn(nn({}, b), { type: y.type + 'Aborted' })), + l.dispatch(b)) + case 21: + return e.abrupt('return', y) + case 22: + case 'end': + return e.stop() + } + }, e) + }), + )), + Wn.apply(this, arguments) + ) + } + function Kn(e) { + var t = e.data, + n = e.method + e.instance + var r = e.pluginName, + a = n + 'Aborted' + (r ? ':' + r : '') + e.store.dispatch(nn(nn({}, t), {}, { type: a, _: { called: a, from: 'abort' } })) + } + function Qn(e, t, n) { + var r = t[e] || n[e] + return r && r.config ? r.config : {} + } + function Gn(e, t) { + return t.reduce(function (t, n) { + return n[e] ? t.concat({ methodName: e, pluginName: n.name, method: n[e] }) : t + }, []) + } + function Jn(e, t) { + var n = e.replace(Ln, ''), + r = t ? ':'.concat(t) : '' + return [''.concat(e).concat(r), ''.concat(n).concat(r), ''.concat(n, 'End').concat(r)] + } + function Yn(e, t, n) { + var r = Jn(e).map(function (e) { + return Gn(e, t) + }) + return t.reduce( + function (n, r) { + var a, + o, + i = r.name, + s = + ((a = Jn(e, i).map(function (e) { + return Gn(e, t) + })), + (o = 3), + (function (e) { + if (Array.isArray(e)) return e + })(a) || + (function (e, t) { + var n = null == e ? null : ('undefined' != typeof Symbol && e[Symbol.iterator]) || e['@@iterator'] + if (null != n) { + var r, + a, + o = [], + i = !0, + s = !1 + try { + for (n = n.call(e); !(i = (r = n.next()).done) && (o.push(r.value), !t || o.length !== t); i = !0); + } catch (e) { + ;((s = !0), (a = e)) + } finally { + try { + i || null == n.return || n.return() + } finally { + if (s) throw a + } + } + return o + } + })(a, o) || + Gt(a, o) || + (function () { + throw new TypeError( + 'Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.', + ) + })()), + l = s[0], + u = s[1], + c = s[2] + return (l.length && (n.beforeNS[i] = l), u.length && (n.duringNS[i] = u), c.length && (n.afterNS[i] = c), n) + }, + { before: r[0], beforeNS: {}, during: r[1], duringNS: {}, after: r[2], afterNS: {} }, + ) + } + function Zn(e, t) { + var n = e.abort + return !!n && (!0 === n || tr(n, t) || (n && tr(n.plugins, t))) + } + function Xn(e, t) { + var n = e.abort + if (!n) return !1 + if (!0 === n || Ut(n)) return !0 + var r = n.plugins + return (er(n) && n.length === t) || (er(r) && r.length === t) + } + function er(e) { + return Array.isArray(e) + } + function tr(e, t) { + return !(!e || !er(e)) && e.includes(t) + } + function nr(e, t) { + return function (n, r, a) { + var o = r.config, + i = r.name, + s = ''.concat(i, '.').concat(n.type) + a && (s = a.event) + var l = n.type.match(Ln) + ? (function (e, t, n, r, a) { + return function (o, i) { + var s = r ? r.name : e, + l = i && er(i) ? i : n + if (r && (!(l = i && er(i) ? i : [e]).includes(e) || 1 !== l.length)) + throw new Error('Method '.concat(t, ' can only abort ').concat(e, ' plugin. ').concat(JSON.stringify(l), ' input valid')) + return nn(nn({}, a), {}, { abort: { reason: o, plugins: l, caller: t, _: s } }) + } + })(i, s, t, a, n) + : (function (e, t) { + return function () { + throw new Error(e.type + ' action not cancellable. Remove abort in ' + t) + } + })(n, s) + return { payload: or(n), instance: e, config: o || {}, abort: l } + } + } + function rr(e, t) { + var n = ar(e) + if (n && n.name === t) { + var r = ar(n.method), + a = r ? 'or ' + r.method : '' + throw new Error( + [ + t + ' plugin is calling method ' + e, + 'Plugins cant call self', + 'Use '.concat(n.method, ' ').concat(a, ' in ').concat(t, ' plugin insteadof ').concat(e), + ].join('\n'), + ) + } + } + function ar(e) { + var t = e.match(/(.*):(.*)/) + return !!t && { method: t[1], name: t[2] } + } + function or(e) { + return Object.keys(e).reduce(function (t, n) { + return ('type' === n || (Ht(e[n]) ? (t[n] = Object.assign({}, e[n])) : (t[n] = e[n])), t) + }, {}) + } + function ir(e, t, n) { + var r = {} + return function (a) { + return function (o) { + return (function () { + var i = Xt( + an.mark(function i(s) { + var l, u, c, f, d, p, h, m, g, v, y, b + return an.wrap(function (i) { + for (;;) + switch ((i.prev = i.next)) { + case 0: + if (((l = s.type), (u = s.abort), (c = s.plugins), (f = s), !u)) { + i.next = 4 + break + } + return i.abrupt('return', o(s)) + case 4: + if ( + (l === $n.enablePlugin && a.dispatch({ type: $n.initializeStart, plugins: c, disabled: [], fromEnable: !0, meta: s.meta }), + l === $n.disablePlugin && + setTimeout(function () { + return Dn(s.meta.rid, { payload: s }) + }, 0), + l === $n.initializeEnd && + ((d = t()), + (p = Object.keys(d)), + (h = p + .filter(function (e) { + return c.includes(e) + }) + .map(function (e) { + return d[e] + })), + (m = []), + (g = []), + (v = s.disabled), + (y = h.map(function (e) { + var t = e.loaded, + n = e.name + return Mn(e, t, 1e4) + .then(function (t) { + return ( + r[n] || + (a.dispatch({ + type: $n.pluginReadyType(n), + name: n, + events: Object.keys(e).filter(function (e) { + return !Sn.includes(e) + }), + }), + (r[n] = !0)), + (m = m.concat(n)), + e + ) + }) + .catch(function (e) { + if (e instanceof Error) throw new Error(e) + return ((g = g.concat(e.name)), e) + }) + })), + Promise.all(y).then(function (e) { + var t = { plugins: m, failed: g, disabled: v } + setTimeout(function () { + p.length === y.length + v.length && a.dispatch(nn(nn({}, { type: $n.ready }), t)) + }, 0) + })), + l === $n.bootstrap) + ) { + i.next = 13 + break + } + return ( + /^ready:([^:]*)$/.test(l) && + setTimeout(function () { + return Fn(a, t, e) + }, 0), + (i.next = 11), + qn(s, t, e, a, n) + ) + case 11: + return ((b = i.sent), i.abrupt('return', o(b))) + case 13: + return i.abrupt('return', o(f)) + case 14: + case 'end': + return i.stop() + } + }, i) + }), + ) + return function (e) { + return i.apply(this, arguments) + } + })() + } + } + } + function sr(e) { + return function (t) { + return function (t) { + return function (n) { + var r = n.type, + a = n.key, + o = n.value, + i = n.options + if (r === $n.setItem || r === $n.removeItem) { + if (n.abort) return t(n) + r === $n.setItem ? e.setItem(a, o, i) : e.removeItem(a, i) + } + return t(n) + } + } + } + } + function lr(e, t) { + for (var n = 0; n < t.length; n++) { + var r = t[n] + ;((r.enumerable = r.enumerable || !1), (r.configurable = !0), 'value' in r && (r.writable = !0), Object.defineProperty(e, r.key, r)) + } + } + function ur(e, t, n) { + return (t && lr(e.prototype, t), n && lr(e, n), Object.defineProperty(e, 'prototype', { writable: !1 }), e) + } + var cr = ur(function e() { + var t = this + ;(!(function (e, t) { + if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function') + })(this, e), + en(this, 'before', []), + en(this, 'after', []), + en(this, 'addMiddleware', function (e, n) { + t[n] = t[n].concat(e) + }), + en(this, 'removeMiddleware', function (e, n) { + var r = t[n].findIndex(function (t) { + return t === e + }) + ;-1 !== r && (t[n] = [].concat(Jt(t[n].slice(0, r)), Jt(t[n].slice(r + 1)))) + }), + en(this, 'dynamicMiddlewares', function (e) { + return function (n) { + return function (r) { + return function (a) { + var o = { + getState: n.getState, + dispatch: function (e) { + return n.dispatch(e) + }, + }, + i = t[e].map(function (e) { + return e(o) + }) + return gn.apply(void 0, Jt(i))(r)(a) + } + } + } + })) + }) + function fr(e) { + return function () { + var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, + n = arguments.length > 1 ? arguments[1] : void 0, + r = {} + if ('initialize:aborted' === n.type) return t + if (/^registerPlugin:([^:]*)$/.test(n.type)) { + var a = dr(n.type, 'registerPlugin'), + o = e()[a] + if (!o || !a) return t + var i = n.enabled + return ( + (r[a] = { enabled: i, initialized: !!i && Boolean(!o.initialize), loaded: !!i && Boolean(o.loaded()), config: o.config || {} }), + nn(nn({}, t), r) + ) + } + if (/^initialize:([^:]*)$/.test(n.type)) { + var s = dr(n.type, $n.initialize), + l = e()[s] + return l && s ? ((r[s] = nn(nn({}, t[s]), { initialized: !0, loaded: Boolean(l.loaded()) })), nn(nn({}, t), r)) : t + } + if (/^ready:([^:]*)$/.test(n.type)) return ((r[n.name] = nn(nn({}, t[n.name]), { loaded: !0 })), nn(nn({}, t), r)) + switch (n.type) { + case $n.disablePlugin: + return nn(nn({}, t), pr(n.plugins, !1, t)) + case $n.enablePlugin: + return nn(nn({}, t), pr(n.plugins, !0, t)) + default: + return t + } + } + } + function dr(e, t) { + return e.substring(t.length + 1, e.length) + } + function pr(e, t, n) { + return e.reduce(function (e, r) { + return ((e[r] = nn(nn({}, n[r]), { enabled: t })), e) + }, n) + } + function hr(e) { + try { + return JSON.parse(JSON.stringify(e)) + } catch (e) {} + return e + } + var mr = { last: {}, history: [] } + function gr() { + var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : mr, + t = arguments.length > 1 ? arguments[1] : void 0, + n = t.type, + r = t.event, + a = t.properties, + o = t.options, + i = t.meta + if (n === $n.track) { + var s = hr(nn(nn({ event: r, properties: a }, Object.keys(o).length && { options: o }), {}, { meta: i })) + return nn(nn({}, e), { last: s, history: e.history.concat(s) }) + } + return e + } + var vr = { actions: [] } + function yr() { + var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : vr, + t = arguments.length > 1 ? arguments[1] : void 0, + n = t.type, + r = t.payload + switch (n) { + case 'queue': + var a + return ((a = r && r.type && r.type === $n.identify ? [t].concat(e.actions) : e.actions.concat(t)), nn(nn({}, e), {}, { actions: a })) + case 'dequeue': + return [] + default: + return e + } + } + var br = /#.*$/ + function wr(e) { + var t = /(http[s]?:\/\/)?([^\/\s]+\/)(.*)/g.exec(e) + return '/' + (t && t[3] ? t[3].split('?')[0].replace(br, '') : '') + } + var _r, + xr, + Er, + kr, + Sr = function () { + var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {} + if (!zt) return e + var t = document, + n = t.title, + r = t.referrer, + a = window, + o = a.location, + i = a.innerWidth, + s = a.innerHeight, + l = o.hash, + u = o.search, + c = (function (e) { + var t = (function () { + if (zt) + for (var e, t = document.getElementsByTagName('link'), n = 0; (e = t[n]); n++) + if ('canonical' === e.getAttribute('rel')) return e.getAttribute('href') + })() + return t ? (t.match(/\?/) ? t : t + e) : window.location.href.replace(br, '') + })(u), + f = { title: n, url: c, path: wr(c), hash: l, search: u, width: i, height: s } + return (r && '' !== r && (f.referrer = r), nn(nn({}, f), e)) + }, + $r = { last: {}, history: [] } + function Pr() { + var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : $r, + t = arguments.length > 1 ? arguments[1] : void 0, + n = t.properties, + r = t.options, + a = t.meta + if (t.type === $n.page) { + var o = hr(nn({ properties: n, meta: a }, Object.keys(r).length && { options: r })) + return nn(nn({}, e), { last: o, history: e.history.concat(o) }) + } + return e + } + ;((_r = (function () { + if (!zt) return !1 + var e = navigator.appVersion + return ~e.indexOf('Win') ? 'Windows' : ~e.indexOf('Mac') ? 'MacOS' : ~e.indexOf('X11') ? 'UNIX' : ~e.indexOf('Linux') ? 'Linux' : 'Unknown OS' + })()), + (xr = zt ? document.referrer : null), + (Er = (function () { + if (Je) { + var e = navigator, + t = e.languages + return e.userLanguage || (t && t.length ? t[0] : e.language) + } + })()), + (kr = (function () { + try { + return Intl.DateTimeFormat().resolvedOptions().timeZone + } catch (e) {} + })())) + var Or = { + initialized: !1, + sessionId: ct(), + app: null, + version: null, + debug: !1, + offline: !!zt && !navigator.onLine, + os: { name: _r }, + userAgent: zt ? navigator.userAgent : 'node', + library: { name: _n, version: '0.10.22' }, + timezone: kr, + locale: Er, + campaign: {}, + referrer: xr, + } + function Cr() { + var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : Or, + t = arguments.length > 1 ? arguments[1] : void 0, + n = e.initialized, + r = t.type, + a = t.campaign + switch (r) { + case $n.campaign: + return nn(nn({}, e), { campaign: a }) + case $n.offline: + return nn(nn({}, e), { offline: !0 }) + case $n.online: + return nn(nn({}, e), { offline: !1 }) + default: + return n ? e : nn(nn(nn({}, Or), e), { initialized: !0 }) + } + } + var jr = ['plugins', 'reducers', 'storage'] + function Nr(e, t, n) { + if (zt) { + var r = window[(n ? 'add' : 'remove') + 'EventListener'] + e.split(' ').forEach(function (e) { + r(e, t) + }) + } + } + function Ir(e) { + var t = Nr.bind(null, 'online offline', function (t) { + return Promise.resolve(!navigator.onLine).then(e) + }) + return ( + t(!0), + function (e) { + return t(!1) + } + ) + } + function Tr() { + return ( + jt(_n, []), + function (e) { + return function (t, n, r) { + var a = e(t, n, r), + o = a.dispatch + return Object.assign(a, { + dispatch: function (e) { + var t = e.action || e + return (Ot[Pt][_n].push(t), o(e)) + }, + }) + } + } + ) + } + function Ar(e) { + return function () { + return gn(gn.apply(null, arguments), Tr()) + } + } + function Rr(e) { + return e ? ((t = e), '[object Array]' === Object.prototype.toString.call(t) ? e : [e]) : [] + var t + } + function Dr() { + var e, + t, + n = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, + r = arguments.length > 1 ? arguments[1] : void 0, + a = arguments.length > 2 ? arguments[2] : void 0, + o = ct() + return ( + r && + (Rn[o] = + ((e = r), + (t = (function (e) { + for (var t, n = e || Array.prototype.slice.call(arguments), r = 0; r < n.length; r++) + if (Vt(n[r])) { + t = n[r] + break + } + return t + })(a)), + function (n) { + ;(t && t(n), e(n)) + })), + nn(nn({}, n), {}, { rid: o, ts: new Date().getTime() }, r ? { hasCallback: !0 } : {}) + ) + } + function Mr() { + var e, + t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, + n = t.reducers || {}, + r = t.initialUser || {}, + a = (t.plugins || []).reduce( + function (e, t) { + if (Vt(t)) return ((e.middlewares = e.middlewares.concat(t)), e) + if ((t.NAMESPACE && (t.name = t.NAMESPACE), !t.name)) throw new Error('https://lytics.dev/errors/1') + var n = t.EVENTS + ? Object.keys(t.EVENTS).map(function (e) { + return t.EVENTS[e] + }) + : [], + r = !(!1 === t.enabled), + a = !(t.config && !1 === t.config.enabled) + ;((e.pluginEnabled[t.name] = r && a), + delete t.enabled, + t.methods && + ((e.methods[t.name] = Object.keys(t.methods).reduce(function (e, n) { + return ( + (e[n] = + ((r = t.methods[n]), + function () { + for (var e = Array.prototype.slice.call(arguments), t = new Array(r.length), n = 0; n < e.length; n++) t[n] = e[n] + return ((t[t.length] = k), r.apply({ instance: k }, t)) + })), + e + ) + var r + }, {})), + delete t.methods)) + var o = Object.keys(t).concat(n), + i = new Set(e.events.concat(o)) + if (((e.events = Array.from(i)), (e.pluginsArray = e.pluginsArray.concat(t)), e.plugins[t.name])) + throw new Error(t.name + 'AlreadyLoaded') + return ( + (e.plugins[t.name] = t), + e.plugins[t.name].loaded || + (e.plugins[t.name].loaded = function () { + return !0 + }), + e + ) + }, + { plugins: {}, pluginEnabled: {}, methods: {}, pluginsArray: [], middlewares: [], events: [] }, + ), + o = t.storage ? t.storage : { getItem: Ct, setItem: jt, removeItem: Nt }, + i = (function (e) { + return function (t, n, r) { + return n.getState('user')[t] || (r && Ht(r) && r[t] ? r[t] : In(e)[t] || Ct(Tn(t)) || null) + } + })(o), + s = a.plugins, + l = a.events + .filter(function (e) { + return !Sn.includes(e) + }) + .sort(), + u = new Set( + l.concat(kn).filter(function (e) { + return !Sn.includes(e) + }), + ), + c = Array.from(u).sort(), + f = function () { + return s + }, + d = new cr(), + p = d.addMiddleware, + h = d.removeMiddleware, + m = d.dynamicMiddlewares, + g = function () { + throw new Error('Abort disabled inListener') + }, + v = (function (e) { + for (var t, n = Object.create(null), r = /([^&=]+)=?([^&]*)/g; (t = r.exec(e)); ) { + var a = lt(t[1]), + o = lt(t[2]) + '[]' === a.substring(a.length - 2) ? (n[(a = a.substring(0, a.length - 2))] || (n[a] = [])).push(o) : (n[a] = '' === o || o) + } + for (var i in n) { + var s = i.split('[') + s.length > 1 && + (ut( + n, + s.map(function (e) { + return e.replace(/[?[\]\\ ]/g, '') + }), + n[i], + ), + delete n[i]) + } + return n + })( + (function (e) { + if (e) { + var t = e.match(/\?(.*)/) + return t && t[1] ? t[1].split('#')[0] : '' + } + return Je && window.location.search.substring(1) + })(e), + ), + y = In(o), + b = nn(nn(nn(nn({}, y), r), v.an_uid ? { userId: v.an_uid } : {}), v.an_aid ? { anonymousId: v.an_aid } : {}) + b.anonymousId || (b.anonymousId = ct()) + var w, + _, + x, + E = nn( + { + enable: function (e, t) { + return new Promise(function (n) { + A.dispatch({ type: $n.enablePlugin, plugins: Rr(e), _: { originalAction: $n.enablePlugin } }, n, [t]) + }) + }, + disable: function (e, t) { + return new Promise(function (n) { + A.dispatch({ type: $n.disablePlugin, plugins: Rr(e), _: { originalAction: $n.disablePlugin } }, n, [t]) + }) + }, + }, + a.methods, + ), + k = { + identify: + ((x = Xt( + an.mark(function e(t, n, r, a) { + var o, s, l, u, c + return an.wrap(function (e) { + for (;;) + switch ((e.prev = e.next)) { + case 0: + return ( + (o = Ut(t) ? t : null), + (s = Ht(t) ? t : n), + (l = r || {}), + (u = k.user()), + jt(Tn(xn), o), + (c = o || s.userId || i(xn, k, s)), + e.abrupt( + 'return', + new Promise(function (e) { + A.dispatch( + nn( + { type: $n.identifyStart, userId: c, traits: s || {}, options: l, anonymousId: u.anonymousId }, + u.id && u.id !== o && { previousId: u.id }, + ), + e, + [n, r, a], + ) + }), + ) + ) + case 7: + case 'end': + return e.stop() + } + }, e) + }), + )), + function (e, t, n, r) { + return x.apply(this, arguments) + }), + track: + ((_ = Xt( + an.mark(function e(t, n, r, a) { + var o, s, l + return an.wrap(function (e) { + for (;;) + switch ((e.prev = e.next)) { + case 0: + if ((o = Ht(t) ? t.event : t) && Ut(o)) { + e.next = 3 + break + } + throw new Error('EventMissing') + case 3: + return ( + (s = Ht(t) ? t : n || {}), + (l = Ht(r) ? r : {}), + e.abrupt( + 'return', + new Promise(function (e) { + A.dispatch( + { type: $n.trackStart, event: o, properties: s, options: l, userId: i(xn, k, n), anonymousId: i(En, k, n) }, + e, + [n, r, a], + ) + }), + ) + ) + case 6: + case 'end': + return e.stop() + } + }, e) + }), + )), + function (e, t, n, r) { + return _.apply(this, arguments) + }), + page: + ((w = Xt( + an.mark(function e(t, n, r) { + var a, o + return an.wrap(function (e) { + for (;;) + switch ((e.prev = e.next)) { + case 0: + return ( + (a = Ht(t) ? t : {}), + (o = Ht(n) ? n : {}), + e.abrupt( + 'return', + new Promise(function (e) { + A.dispatch({ type: $n.pageStart, properties: Sr(a), options: o, userId: i(xn, k, a), anonymousId: i(En, k, a) }, e, [ + t, + n, + r, + ]) + }), + ) + ) + case 3: + case 'end': + return e.stop() + } + }, e) + }), + )), + function (e, t, n) { + return w.apply(this, arguments) + }), + user: function (e) { + if (e === xn || 'id' === e) return i(xn, k) + if (e === En || 'anonId' === e) return i(En, k) + var t = k.getState('user') + return e ? Qe()(t, e) : t + }, + reset: function (e) { + return new Promise(function (t) { + A.dispatch({ type: $n.resetStart }, t, e) + }) + }, + ready: function (e) { + return k.on($n.ready, e) + }, + on: function (e, t) { + if (!e || !Vt(t)) return !1 + if (e === $n.bootstrap) throw new Error('.on disabled for ' + e) + var n = /Start$|Start:/ + if ('*' === e) { + var r = function (e) { + return function (e) { + return function (r) { + return (r.type.match(n) && t({ payload: r, instance: k, plugins: s }), e(r)) + } + } + }, + a = function (e) { + return function (e) { + return function (r) { + return (r.type.match(n) || t({ payload: r, instance: k, plugins: s }), e(r)) + } + } + } + return ( + p(r, Fr), + p(a, zr), + function () { + ;(h(r, Fr), h(a, zr)) + } + ) + } + var o = e.match(n) ? Fr : zr, + i = function (n) { + return function (n) { + return function (r) { + return (r.type === e && t({ payload: r, instance: k, plugins: s, abort: g }), n(r)) + } + } + } + return ( + p(i, o), + function () { + return h(i, o) + } + ) + }, + once: function (e, t) { + if (!e || !Vt(t)) return !1 + if (e === $n.bootstrap) throw new Error('.once disabled for ' + e) + var n = k.on(e, function (e) { + var r = e.payload + ;(t({ payload: r, instance: k, plugins: s, abort: g }), n()) + }) + return n + }, + getState: function (e) { + var t = A.getState() + return e ? Qe()(t, e) : Object.assign({}, t) + }, + dispatch: function (e) { + var t, + n = Ut(e) ? { type: e } : e + if (((t = n.type), kn.includes(t))) throw new Error('reserved action ' + n.type) + var r = e._ || {}, + a = nn(nn({}, n), {}, { _: nn({ originalAction: n.type }, r) }) + A.dispatch(a) + }, + enablePlugin: E.enable, + disablePlugin: E.disable, + plugins: E, + storage: { + getItem: o.getItem, + setItem: function (e, t, n) { + A.dispatch({ type: $n.setItemStart, key: e, value: t, options: n }) + }, + removeItem: function (e, t) { + A.dispatch({ type: $n.removeItemStart, key: e, options: t }) + }, + }, + setAnonymousId: function (e, t) { + k.storage.setItem(yn, e, t) + }, + events: { all: c, core: kn, plugins: l }, + }, + S = a.middlewares.concat([ + function (e) { + return function (e) { + return function (t) { + return (t.meta || (t.meta = Dr()), e(t)) + } + } + }, + m(Fr), + ir(k, f, { all: c, plugins: l }), + sr(o), + jn(k), + An(k), + m(zr), + ]), + $ = { context: Cr, user: Nn(o), page: Pr, track: gr, plugins: fr(f), queue: yr }, + P = gn, + O = gn + if (zt && t.debug) { + var C = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ + ;(C && (P = C({ trace: !0, traceLimit: 25 })), + (O = function () { + return 0 === arguments.length ? Tr() : Ht(Yt(arguments[0])) ? Ar() : Ar().apply(null, arguments) + })) + } + var j, + N = (function (e) { + return Object.keys(e).reduce(function (t, n) { + return (jr.includes(n) || (t[n] = e[n]), t) + }, {}) + })(t), + I = a.pluginsArray.reduce(function (e, t) { + var n = t.name, + r = t.config, + o = t.loaded, + i = a.pluginEnabled[n] + return ((e[n] = { enabled: i, initialized: !!i && Boolean(!t.initialize), loaded: Boolean(o()), config: r || {} }), e) + }, {}), + T = { context: N, user: b, plugins: I }, + A = hn( + (function (e) { + for (var t = Object.keys(e), n = {}, r = 0; r < t.length; r++) { + var a = t[r] + Yt(e[a]) === on && (n[a] = e[a]) + } + var o, + i = Object.keys(n) + try { + !(function (e) { + Object.keys(e).forEach(function (t) { + var n = e[t] + if (Yt(n(void 0, { type: cn })) === sn || Yt(n(void 0, { type: fn })) === sn) throw new Error(ln + ' ' + t + ' ' + sn) + }) + })(n) + } catch (e) { + o = e + } + return function () { + var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, + t = arguments.length > 1 ? arguments[1] : void 0 + if (o) throw o + for (var r = !1, a = {}, s = 0; s < i.length; s++) { + var l = i[s], + u = n[l], + c = e[l], + f = u(c, t) + if (Yt(f) === sn) { + var d = mn(l, t) + throw new Error(d) + } + ;((a[l] = f), (r = r || f !== c)) + } + return r ? a : e + } + })(nn(nn({}, $), n)), + T, + O(P(vn.apply(void 0, Jt(S)))), + ) + A.dispatch = + ((j = A.dispatch), + function (e, t, n) { + var r = Dr(e.meta, t, Rr(n)), + a = nn(nn({}, e), { meta: r }) + return j.apply(null, [a]) + }) + var R = Object.keys(s) + A.dispatch({ type: $n.bootstrap, plugins: R, config: N, params: v, user: b, initialUser: r, persistedUser: y }) + var D = R.filter(function (e) { + return a.pluginEnabled[e] + }), + M = R.filter(function (e) { + return !a.pluginEnabled[e] + }) + return ( + A.dispatch({ type: $n.registerPlugins, plugins: R, enabled: a.pluginEnabled }), + a.pluginsArray.map(function (e, t) { + var n = e.bootstrap, + r = e.config, + o = e.name + ;(n && Vt(n) && n({ instance: k, config: r, payload: e }), + A.dispatch({ type: $n.registerPluginType(o), name: o, enabled: a.pluginEnabled[o], plugin: e }), + a.pluginsArray.length === t + 1 && A.dispatch({ type: $n.initializeStart, plugins: D, disabled: M })) + }), + Ir(function (e) { + A.dispatch({ type: e ? $n.offline : $n.online }) + }), + (function (e, t, n) { + setInterval(function () { + return Fn(e, t, n) + }, 3e3) + })(A, f, k), + k + ) + } + var Fr = 'before', + zr = 'after', + Lr = 'cookie', + Vr = Hr(), + Ur = Wr, + qr = Wr + function Br(e) { + return Vr ? Wr(e, '', -1) : Nt(e) + } + function Hr() { + if (void 0 !== Vr) return Vr + var e = 'cookiecookie' + try { + ;(Wr(e, e), (Vr = -1 !== document.cookie.indexOf(e)), Br(e)) + } catch (e) { + Vr = !1 + } + return Vr + } + function Wr(e, t, n, r, a, o) { + if ('undefined' != typeof window) { + var i = arguments.length > 1 + return ( + !1 === Vr && (i ? jt(e, t) : Ct(e)), + i + ? (document.cookie = + e + + '=' + + encodeURIComponent(t) + + (n + ? '; expires=' + + new Date(+new Date() + 1e3 * n).toUTCString() + + (r ? '; path=' + r : '') + + (a ? '; domain=' + a : '') + + (o ? '; secure' : '') + : '')) + : decodeURIComponent((('; ' + document.cookie).split('; ' + e + '=')[1] || '').split(';')[0]) + ) + } + } + var Kr = 'localStorage', + Qr = At.bind(null, 'localStorage'), + Gr = (It('localStorage', 'getItem', Ct), It('localStorage', 'setItem', jt), It('localStorage', 'removeItem', Nt), 'sessionStorage'), + Jr = At.bind(null, 'sessionStorage') + function Yr(e) { + var t = e + try { + if ('true' === (t = JSON.parse(e))) return !0 + if ('false' === t) return !1 + if (Ht(t)) return t + parseFloat(t) === t && (t = parseFloat(t)) + } catch (e) {} + if (null !== t && '' !== t) return t + } + ;(It('sessionStorage', 'getItem', Ct), It('sessionStorage', 'setItem', jt), It('sessionStorage', 'removeItem', Nt)) + var Zr = Qr(), + Xr = Jr(), + ea = Hr() + function ta(e, t) { + if (e) { + var n = na(t), + r = !ia(n), + a = ra(n) ? Yr(localStorage.getItem(e)) : void 0 + if (r && !qt(a)) return a + var o = aa(n) ? Yr(Ur(e)) : void 0 + if (r && o) return o + var i = oa(n) ? Yr(sessionStorage.getItem(e)) : void 0 + if (r && i) return i + var s = Ct(e) + return r ? s : { localStorage: a, sessionStorage: i, cookie: o, global: s } + } + } + function na(e) { + return e ? (Ut(e) ? e : e.storage) : Dt + } + function ra(e) { + return Zr && sa(e, Kr) + } + function aa(e) { + return ea && sa(e, Lr) + } + function oa(e) { + return Xr && sa(e, Gr) + } + function ia(e) { + return e === Mt || 'all' === e + } + function sa(e, t) { + return e === Dt || e === t || ia(e) + } + function la(e, t, n) { + return { location: e, current: t, previous: n } + } + const ua = { + setItem: function (e, t, n) { + if (e && !qt(t)) { + var r = {}, + a = na(n), + o = JSON.stringify(t), + i = !ia(a) + return ra(a) && ((r[Kr] = la(Kr, t, Yr(localStorage.getItem(e)))), localStorage.setItem(e, o), i) + ? r[Kr] + : aa(a) && ((r[Lr] = la(Lr, t, Yr(Ur(e)))), qr(e, o), i) + ? r[Lr] + : oa(a) && ((r[Gr] = la(Gr, t, Yr(sessionStorage.getItem(e)))), sessionStorage.setItem(e, o), i) + ? r[Gr] + : ((r[$t] = la($t, t, Ct(e))), jt(e, t), i ? r[$t] : r) + } + }, + getItem: ta, + removeItem: function (e, t) { + if (e) { + var n = na(t), + r = ta(e, Mt), + a = {} + return ( + !qt(r.localStorage) && ra(n) && (localStorage.removeItem(e), (a[Kr] = r.localStorage)), + !qt(r.cookie) && aa(n) && (Br(e), (a[Lr] = r.cookie)), + !qt(r.sessionStorage) && oa(n) && (sessionStorage.removeItem(e), (a[Gr] = r.sessionStorage)), + !qt(r.global) && sa(n, $t) && (Nt(e), (a[$t] = r.global)), + a + ) + } + }, + } + function ca(e, t, n) { + return (t in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : (e[t] = n), e) + } + function fa(e, t) { + var n = Object.keys(e) + if (Object.getOwnPropertySymbols) { + var r = Object.getOwnPropertySymbols(e) + ;(t && + (r = r.filter(function (t) { + return Object.getOwnPropertyDescriptor(e, t).enumerable + })), + n.push.apply(n, r)) + } + return n + } + function da(e) { + for (var t = 1; t < arguments.length; t++) { + var n = null != arguments[t] ? arguments[t] : {} + t % 2 + ? fa(Object(n), !0).forEach(function (t) { + ca(e, t, n[t]) + }) + : Object.getOwnPropertyDescriptors + ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) + : fa(Object(n)).forEach(function (t) { + Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) + }) + } + return e + } + function pa(e, t) { + var n = Object.keys(e) + if (Object.getOwnPropertySymbols) { + var r = Object.getOwnPropertySymbols(e) + ;(t && + (r = r.filter(function (t) { + return Object.getOwnPropertyDescriptor(e, t).enumerable + })), + n.push.apply(n, r)) + } + return n + } + function ha(e) { + for (var t = 1; t < arguments.length; t++) { + var n = null != arguments[t] ? arguments[t] : {} + t % 2 + ? pa(Object(n), !0).forEach(function (t) { + ma(e, t, n[t]) + }) + : Object.getOwnPropertyDescriptors + ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) + : pa(Object(n)).forEach(function (t) { + Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) + }) + } + return e + } + function ma(e, t, n) { + return (t in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : (e[t] = n), e) + } + var va, + ya = { debug: !1, containerId: null, dataLayerName: 'dataLayer', dataLayer: void 0, preview: void 0, auth: void 0, execution: 'async' }, + ba = {} + function wa(e, t) { + var n = ba[e] + if (!n) { + var r = t.replace(/^https?:\/\//, '').replace(/[.*+?^${}()|[\]\\]/g, '\\$&') + ;((n = new RegExp(r + '.*[?&]id=' + e)), (ba[e] = n)) + } + var a = document.querySelectorAll('script[src]') + return !!Object.keys(a).filter(function (e) { + return (a[e].src || '').match(n) + }).length + } + function _a(e, t, n) { + return (t in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : (e[t] = n), e) + } + function xa(e) { + for (var t = 1; t < arguments.length; t++) { + var n = null != arguments[t] ? arguments[t] : {}, + r = Object.keys(n) + ;('function' == typeof Object.getOwnPropertySymbols && + (r = r.concat( + Object.getOwnPropertySymbols(n).filter(function (e) { + return Object.getOwnPropertyDescriptor(n, e).enumerable + }), + )), + r.forEach(function (t) { + _a(e, t, n[t]) + })) + } + return e + } + var Ea = { trackingId: null, debug: !1, anonymizeIp: !1, customDimensions: {}, resetCustomDimensionsOnPage: [], setCustomDimensionsToPage: !0 }, + ka = {} + function Sa(e) { + return e + ? !(function (e) { + var t = document.querySelectorAll('script[src]') + return !!Object.keys(t).filter(function (n) { + return (t[n].src || '') === e + }).length + })(e) + : 'undefined' == typeof ga + } + function $a(e) { + var t = e.instanceName + return { instancePrefix: t ? ''.concat(t, '.') : '', instanceName: t } + } + function Pa() { + var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, + t = {}, + n = e.name, + r = e.source, + a = e.medium, + o = e.content, + i = e.keyword + return ( + n && (t.campaignName = n), + r && (t.campaignSource = r), + a && (t.campaignMedium = a), + o && (t.campaignContent = o), + i && (t.campaignKeyword = i), + t + ) + } + function Oa(e) { + var t = (arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}).customDimensions + return Object.keys(t).reduce(function (n, r) { + var a = t[r], + o = + (function (e, t, n, r, a) { + for (t = t.split ? t.split('.') : t, r = 0; r < t.length; r++) e = e ? e[t[r]] : a + return e === a ? void 0 : e + })(e, r) || e[r] + return ('boolean' == typeof o && (o = o.toString()), o || 0 === o ? ((n[a] = o), n) : n) + }, {}) + } + function Ca() { + var e = arguments.length > 1 ? arguments[1] : void 0, + t = arguments.length > 2 ? arguments[2] : void 0, + n = Oa(arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, e) + return Object.keys(n).length ? (e.setCustomDimensionsToPage ? (ga(''.concat(t, 'set'), n), {}) : n) : {} + } + const ja = function () { + var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, + t = !1, + n = $a(e), + r = n.instanceName, + a = n.instancePrefix + return { + name: 'google-analytics', + config: xa({}, Ea, e), + initialize: function (e) { + var t = e.config, + n = e.instance + if (!t.trackingId) throw new Error('No GA trackingId defined') + var o, + i, + s, + l, + u, + c, + f, + d = t.customDimensions, + p = t.customScriptSrc || 'https://www.google-analytics.com/analytics.js' + if ( + (Sa(p) && + ((o = window), + (i = document), + (s = 'script'), + (l = p), + (u = 'ga'), + (o.GoogleAnalyticsObject = u), + (o[u] = + o[u] || + function () { + ;(o[u].q = o[u].q || []).push(arguments) + }), + (o[u].l = 1 * new Date()), + (c = i.createElement(s)), + (f = i.getElementsByTagName(s)[0]), + (c.async = 1), + (c.src = l), + f.parentNode.insertBefore(c, f)), + !ka[r]) + ) { + var h = xa( + { cookieDomain: t.domain || 'auto', siteSpeedSampleRate: t.siteSpeedSampleRate || 1, sampleRate: t.sampleRate || 100, allowLinker: !0 }, + t.cookieConfig, + ) + ;(r && (h.name = r), + ga('create', t.trackingId, h), + t.debug && (ga(''.concat(a, 'set'), 'sendHitTask', null), (window.ga_debug = { trace: !0 })), + t.anonymizeIp && ga(''.concat(a, 'set'), 'anonymizeIp', !0), + t.tasks && + [ + 'customTask', + 'previewTask', + 'checkProtocolTask', + 'validationTask', + 'checkStorageTask', + 'historyImportTask', + 'samplerTask', + 'buildHitTask', + 'sendHitTask', + 'timingTask', + 'displayFeaturesTask', + ].forEach(function (e) { + if (t.tasks.hasOwnProperty(e)) { + var n = t.tasks[e] + 'function' == typeof n ? ga(t.tasks[e]) : null === n && ga(''.concat(a, 'set'), e, n) + } + })) + var m = (n.user() || {}).traits || {} + if (Object.keys(m).length && d && Object.keys(d).length) { + var g = Oa(m, t) + ga(''.concat(a, 'set'), g) + } + ka[r] = !0 + } + }, + page: function (e) { + var n = e.payload, + r = e.config, + o = e.instance, + i = n.properties, + s = r.resetCustomDimensionsOnPage, + l = r.customDimensions, + u = o.getState('context.campaign') + if (!Sa()) { + if (s && s.length) { + var c = s.reduce(function (e, t) { + return (l[t] && (e[l[t]] = null), e) + }, {}) + Object.keys(c).length && ga(''.concat(a, 'set'), c) + } + var f = i.path || document.location.pathname, + d = { page: f, title: i.title, location: i.url }, + p = { page: f, title: i.title } + i.referrer !== document.referrer && (p.referrer = i.referrer) + var h = xa({}, d, Pa(u), Ca(i, r, a)) + ;(ga(''.concat(a, 'set'), p), t && delete h.location, ga(''.concat(a, 'send'), 'pageview', h), (t = !0)) + } + }, + track: function (e) { + var t = e.payload, + n = e.config, + r = e.instance, + a = t.properties, + o = t.event, + i = a.label, + s = a.value + !(function (e) { + var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, + n = arguments.length > 2 ? arguments[2] : void 0 + if (!Sa()) { + var r, + a = $a(t).instancePrefix, + o = { + hitType: e.hitType || 'event', + eventAction: e.event, + eventLabel: e.label, + eventCategory: e.category || 'All', + nonInteraction: void 0 !== e.nonInteraction && !!e.nonInteraction, + } + e.value && (o.eventValue = !(r = e.value) || r < 0 ? 0 : Math.round(r)) + var i = xa({}, o, Pa(e), Ca(n.properties, t, a)) + ga(''.concat(a, 'send'), 'event', i) + } + })( + { + hitType: 'event', + event: o, + label: i, + category: a.category || 'All', + value: s, + nonInteraction: a.nonInteraction, + campaign: r.getState('context.campaign'), + }, + n, + t, + ) + }, + identify: function (e) { + var t = e.payload, + n = e.config + !(function (e) { + var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, + n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {} + if (!Sa()) { + var r = $a(n).instancePrefix + if ((e && ga(''.concat(r, 'set'), 'userId', e), Object.keys(t).length)) { + var a = Oa(t, n) + ga(''.concat(r, 'set'), a) + } + } + })(t.userId, t.traits, n) + }, + loaded: function () { + return !!window.gaplugins + }, + } + } + class Na { + constructor(e) { + ;((this.props = Object.assign(Object.assign({}, Ue), e)), this.el, this.component, this.init()) + } + init() { + this.component || + ((this.component = e.createElement(We, Object.assign({}, this.props))), + 'complete' === document.readyState ? this.render() : window.addEventListener('load', () => this.render())) + } + render() { + if (this.el) throw new Error('Widget is already rendered.') + let e = document.createElement('div') + const n = this.props.parentElement + if (n) { + const t = document.querySelector(n) + if (!t) throw new Error(`${n} is undefined.`) + t && e && (e = t) + } else n || e || (e = document.getElementsByTagName('body')[0]) + ;(t.render(this.component, e), (this.el = e)) + } + static connectAnalytics(e, t) { + const n = [] + return ( + e.forEach((e) => { + switch (e.name) { + case 'ga': + n.push(ja({ trackingId: e.id })) + break + case 'gtm': + const t = (function () { + var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, + t = 'https://www.googletagmanager.com/gtm.js' + return { + name: 'google-tag-manager', + config: ha(ha({}, ya), e), + initialize: function (e) { + var n = e.config, + r = n.containerId, + a = n.dataLayerName, + o = n.customScriptSrc, + i = n.preview, + s = n.auth, + l = n.execution + if (!r) throw new Error('No google tag manager containerId defined') + if (i && !s) throw new Error('When enabling preview mode, both preview and auth parameters must be defined') + var u = o || t + wa(r, u) || + ((function (e, t, n, r, a) { + ;((e[r] = e[r] || []), e[r].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' })) + var o = t.getElementsByTagName(n)[0], + c = t.createElement(n), + f = 'dataLayer' != r ? '&l=' + r : '', + d = i ? '>m_preview=' + i + '>m_auth=' + s + '>m_cookies_win=x' : '' + ;(l && (c[l] = !0), (c.src = ''.concat(u, '?id=') + a + f + d), o.parentNode.insertBefore(c, o)) + })(window, document, 'script', a, r), + (va = a), + (n.dataLayer = window[a])) + }, + page: function (e) { + var t = e.payload + ;(e.options, e.instance) + var n = e.config + void 0 !== n.dataLayer && n.dataLayer.push(t.properties) + }, + track: function (e) { + var t = e.payload + e.options + var n = e.config + if (void 0 !== n.dataLayer) { + var r = t.anonymousId, + a = t.userId, + o = t.properties, + i = o + ;(a && (i.userId = a), + r && (i.anonymousId = r), + o.category || (i.category = 'All'), + n.debug && console.log('gtag push', ha({ event: t.event }, i)), + n.dataLayer.push(ha({ event: t.event }, i))) + } + }, + loaded: function () { + var n = !!va && !(!window[va] || Array.prototype.push === window[va].push) + return wa(e.containerId, e.customScriptSrc || t) && n + }, + } + })({ containerId: e.id, dataLayer: window.dataLayer }) + ;((t.loaded = () => !!window.dataLayer && !!window.dataLayer.push), n.push(t)) + } + }), + (function () { + var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {} + return Mr(da(da({}, { storage: ua }), e)) + })({ debug: !0, app: t, plugins: n }) + ) + } + static track(e, t, n) { + const r = window.location.pathname + e.track(t, { category: r, label: n }) + } + } + window.WidgetClass = Na + })() +})() +//# sourceMappingURL=feedback-widget.js.map diff --git a/static/vendor/highlight.min.js b/static/vendor/highlight.min.js index 1d5af69eda..ce18afe298 100644 --- a/static/vendor/highlight.min.js +++ b/static/vendor/highlight.min.js @@ -1,2 +1,1308 @@ /*! highlight.js v9.7.0 | BSD3 License | git.io/hljslicense */ -!function(e){var n="object"==typeof window&&window||"object"==typeof self&&self;"undefined"!=typeof exports?e(exports):n&&(n.hljs=e({}),"function"==typeof define&&define.amd&&define([],function(){return n.hljs}))}(function(e){function n(e){return e.replace(/[&<>]/gm,function(e){return I[e]})}function t(e){return e.nodeName.toLowerCase()}function r(e,n){var t=e&&e.exec(n);return t&&0===t.index}function a(e){return k.test(e)}function i(e){var n,t,r,i,o=e.className+" ";if(o+=e.parentNode?e.parentNode.className:"",t=B.exec(o))return R(t[1])?t[1]:"no-highlight";for(o=o.split(/\s+/),n=0,r=o.length;r>n;n++)if(i=o[n],a(i)||R(i))return i}function o(e,n){var t,r={};for(t in e)r[t]=e[t];if(n)for(t in n)r[t]=n[t];return r}function u(e){var n=[];return function r(e,a){for(var i=e.firstChild;i;i=i.nextSibling)3===i.nodeType?a+=i.nodeValue.length:1===i.nodeType&&(n.push({event:"start",offset:a,node:i}),a=r(i,a),t(i).match(/br|hr|img|input/)||n.push({event:"stop",offset:a,node:i}));return a}(e,0),n}function c(e,r,a){function i(){return e.length&&r.length?e[0].offset!==r[0].offset?e[0].offset<r[0].offset?e:r:"start"===r[0].event?e:r:e.length?e:r}function o(e){function r(e){return" "+e.nodeName+'="'+n(e.value)+'"'}l+="<"+t(e)+w.map.call(e.attributes,r).join("")+">"}function u(e){l+="</"+t(e)+">"}function c(e){("start"===e.event?o:u)(e.node)}for(var s=0,l="",f=[];e.length||r.length;){var g=i();if(l+=n(a.substr(s,g[0].offset-s)),s=g[0].offset,g===e){f.reverse().forEach(u);do c(g.splice(0,1)[0]),g=i();while(g===e&&g.length&&g[0].offset===s);f.reverse().forEach(o)}else"start"===g[0].event?f.push(g[0].node):f.pop(),c(g.splice(0,1)[0])}return l+n(a.substr(s))}function s(e){function n(e){return e&&e.source||e}function t(t,r){return new RegExp(n(t),"m"+(e.cI?"i":"")+(r?"g":""))}function r(a,i){if(!a.compiled){if(a.compiled=!0,a.k=a.k||a.bK,a.k){var u={},c=function(n,t){e.cI&&(t=t.toLowerCase()),t.split(" ").forEach(function(e){var t=e.split("|");u[t[0]]=[n,t[1]?Number(t[1]):1]})};"string"==typeof a.k?c("keyword",a.k):E(a.k).forEach(function(e){c(e,a.k[e])}),a.k=u}a.lR=t(a.l||/\w+/,!0),i&&(a.bK&&(a.b="\\b("+a.bK.split(" ").join("|")+")\\b"),a.b||(a.b=/\B|\b/),a.bR=t(a.b),a.e||a.eW||(a.e=/\B|\b/),a.e&&(a.eR=t(a.e)),a.tE=n(a.e)||"",a.eW&&i.tE&&(a.tE+=(a.e?"|":"")+i.tE)),a.i&&(a.iR=t(a.i)),null==a.r&&(a.r=1),a.c||(a.c=[]);var s=[];a.c.forEach(function(e){e.v?e.v.forEach(function(n){s.push(o(e,n))}):s.push("self"===e?a:e)}),a.c=s,a.c.forEach(function(e){r(e,a)}),a.starts&&r(a.starts,i);var l=a.c.map(function(e){return e.bK?"\\.?("+e.b+")\\.?":e.b}).concat([a.tE,a.i]).map(n).filter(Boolean);a.t=l.length?t(l.join("|"),!0):{exec:function(){return null}}}}r(e)}function l(e,t,a,i){function o(e,n){var t,a;for(t=0,a=n.c.length;a>t;t++)if(r(n.c[t].bR,e))return n.c[t]}function u(e,n){if(r(e.eR,n)){for(;e.endsParent&&e.parent;)e=e.parent;return e}return e.eW?u(e.parent,n):void 0}function c(e,n){return!a&&r(n.iR,e)}function g(e,n){var t=N.cI?n[0].toLowerCase():n[0];return e.k.hasOwnProperty(t)&&e.k[t]}function h(e,n,t,r){var a=r?"":y.classPrefix,i='<span class="'+a,o=t?"":C;return i+=e+'">',i+n+o}function p(){var e,t,r,a;if(!E.k)return n(B);for(a="",t=0,E.lR.lastIndex=0,r=E.lR.exec(B);r;)a+=n(B.substr(t,r.index-t)),e=g(E,r),e?(M+=e[1],a+=h(e[0],n(r[0]))):a+=n(r[0]),t=E.lR.lastIndex,r=E.lR.exec(B);return a+n(B.substr(t))}function d(){var e="string"==typeof E.sL;if(e&&!x[E.sL])return n(B);var t=e?l(E.sL,B,!0,L[E.sL]):f(B,E.sL.length?E.sL:void 0);return E.r>0&&(M+=t.r),e&&(L[E.sL]=t.top),h(t.language,t.value,!1,!0)}function b(){k+=null!=E.sL?d():p(),B=""}function v(e){k+=e.cN?h(e.cN,"",!0):"",E=Object.create(e,{parent:{value:E}})}function m(e,n){if(B+=e,null==n)return b(),0;var t=o(n,E);if(t)return t.skip?B+=n:(t.eB&&(B+=n),b(),t.rB||t.eB||(B=n)),v(t,n),t.rB?0:n.length;var r=u(E,n);if(r){var a=E;a.skip?B+=n:(a.rE||a.eE||(B+=n),b(),a.eE&&(B=n));do E.cN&&(k+=C),E.skip||(M+=E.r),E=E.parent;while(E!==r.parent);return r.starts&&v(r.starts,""),a.rE?0:n.length}if(c(n,E))throw new Error('Illegal lexeme "'+n+'" for mode "'+(E.cN||"<unnamed>")+'"');return B+=n,n.length||1}var N=R(e);if(!N)throw new Error('Unknown language: "'+e+'"');s(N);var w,E=i||N,L={},k="";for(w=E;w!==N;w=w.parent)w.cN&&(k=h(w.cN,"",!0)+k);var B="",M=0;try{for(var I,j,O=0;;){if(E.t.lastIndex=O,I=E.t.exec(t),!I)break;j=m(t.substr(O,I.index-O),I[0]),O=I.index+j}for(m(t.substr(O)),w=E;w.parent;w=w.parent)w.cN&&(k+=C);return{r:M,value:k,language:e,top:E}}catch(T){if(T.message&&-1!==T.message.indexOf("Illegal"))return{r:0,value:n(t)};throw T}}function f(e,t){t=t||y.languages||E(x);var r={r:0,value:n(e)},a=r;return t.filter(R).forEach(function(n){var t=l(n,e,!1);t.language=n,t.r>a.r&&(a=t),t.r>r.r&&(a=r,r=t)}),a.language&&(r.second_best=a),r}function g(e){return y.tabReplace||y.useBR?e.replace(M,function(e,n){return y.useBR&&"\n"===e?"<br>":y.tabReplace?n.replace(/\t/g,y.tabReplace):void 0}):e}function h(e,n,t){var r=n?L[n]:t,a=[e.trim()];return e.match(/\bhljs\b/)||a.push("hljs"),-1===e.indexOf(r)&&a.push(r),a.join(" ").trim()}function p(e){var n,t,r,o,s,p=i(e);a(p)||(y.useBR?(n=document.createElementNS("http://www.w3.org/1999/xhtml","div"),n.innerHTML=e.innerHTML.replace(/\n/g,"").replace(/<br[ \/]*>/g,"\n")):n=e,s=n.textContent,r=p?l(p,s,!0):f(s),t=u(n),t.length&&(o=document.createElementNS("http://www.w3.org/1999/xhtml","div"),o.innerHTML=r.value,r.value=c(t,u(o),s)),r.value=g(r.value),e.innerHTML=r.value,e.className=h(e.className,p,r.language),e.result={language:r.language,re:r.r},r.second_best&&(e.second_best={language:r.second_best.language,re:r.second_best.r}))}function d(e){y=o(y,e)}function b(){if(!b.called){b.called=!0;var e=document.querySelectorAll("pre code");w.forEach.call(e,p)}}function v(){addEventListener("DOMContentLoaded",b,!1),addEventListener("load",b,!1)}function m(n,t){var r=x[n]=t(e);r.aliases&&r.aliases.forEach(function(e){L[e]=n})}function N(){return E(x)}function R(e){return e=(e||"").toLowerCase(),x[e]||x[L[e]]}var w=[],E=Object.keys,x={},L={},k=/^(no-?highlight|plain|text)$/i,B=/\blang(?:uage)?-([\w-]+)\b/i,M=/((^(<[^>]+>|\t|)+|(?:\n)))/gm,C="</span>",y={classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:void 0},I={"&":"&","<":"<",">":">"};return e.highlight=l,e.highlightAuto=f,e.fixMarkup=g,e.highlightBlock=p,e.configure=d,e.initHighlighting=b,e.initHighlightingOnLoad=v,e.registerLanguage=m,e.listLanguages=N,e.getLanguage=R,e.inherit=o,e.IR="[a-zA-Z]\\w*",e.UIR="[a-zA-Z_]\\w*",e.NR="\\b\\d+(\\.\\d+)?",e.CNR="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",e.BNR="\\b(0b[01]+)",e.RSR="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",e.BE={b:"\\\\[\\s\\S]",r:0},e.ASM={cN:"string",b:"'",e:"'",i:"\\n",c:[e.BE]},e.QSM={cN:"string",b:'"',e:'"',i:"\\n",c:[e.BE]},e.PWM={b:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|like)\b/},e.C=function(n,t,r){var a=e.inherit({cN:"comment",b:n,e:t,c:[]},r||{});return a.c.push(e.PWM),a.c.push({cN:"doctag",b:"(?:TODO|FIXME|NOTE|BUG|XXX):",r:0}),a},e.CLCM=e.C("//","$"),e.CBCM=e.C("/\\*","\\*/"),e.HCM=e.C("#","$"),e.NM={cN:"number",b:e.NR,r:0},e.CNM={cN:"number",b:e.CNR,r:0},e.BNM={cN:"number",b:e.BNR,r:0},e.CSSNM={cN:"number",b:e.NR+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",r:0},e.RM={cN:"regexp",b:/\//,e:/\/[gimuy]*/,i:/\n/,c:[e.BE,{b:/\[/,e:/\]/,r:0,c:[e.BE]}]},e.TM={cN:"title",b:e.IR,r:0},e.UTM={cN:"title",b:e.UIR,r:0},e.METHOD_GUARD={b:"\\.\\s*"+e.UIR,r:0},e});hljs.registerLanguage("php",function(e){var c={b:"\\$+[a-zA-Z_-ÿ][a-zA-Z0-9_-ÿ]*"},i={cN:"meta",b:/<\?(php)?|\?>/},t={cN:"string",c:[e.BE,i],v:[{b:'b"',e:'"'},{b:"b'",e:"'"},e.inherit(e.ASM,{i:null}),e.inherit(e.QSM,{i:null})]},a={v:[e.BNM,e.CNM]};return{aliases:["php3","php4","php5","php6"],cI:!0,k:"and include_once list abstract global private echo interface as static endswitch array null if endwhile or const for endforeach self var while isset public protected exit foreach throw elseif include __FILE__ empty require_once do xor return parent clone use __CLASS__ __LINE__ else break print eval new catch __METHOD__ case exception default die require __FUNCTION__ enddeclare final try switch continue endfor endif declare unset true false trait goto instanceof insteadof __DIR__ __NAMESPACE__ yield finally",c:[e.HCM,e.C("//","$",{c:[i]}),e.C("/\\*","\\*/",{c:[{cN:"doctag",b:"@[A-Za-z]+"}]}),e.C("__halt_compiler.+?;",!1,{eW:!0,k:"__halt_compiler",l:e.UIR}),{cN:"string",b:/<<<['"]?\w+['"]?$/,e:/^\w+;?$/,c:[e.BE,{cN:"subst",v:[{b:/\$\w+/},{b:/\{\$/,e:/\}/}]}]},i,{cN:"keyword",b:/\$this\b/},c,{b:/(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/},{cN:"function",bK:"function",e:/[;{]/,eE:!0,i:"\\$|\\[|%",c:[e.UTM,{cN:"params",b:"\\(",e:"\\)",c:["self",c,e.CBCM,t,a]}]},{cN:"class",bK:"class interface",e:"{",eE:!0,i:/[:\(\$"]/,c:[{bK:"extends implements"},e.UTM]},{bK:"namespace",e:";",i:/[\.']/,c:[e.UTM]},{bK:"use",e:";",c:[e.UTM]},{b:"=>"},t,a]}});hljs.registerLanguage("diff",function(e){return{aliases:["patch"],c:[{cN:"meta",r:10,v:[{b:/^@@ +\-\d+,\d+ +\+\d+,\d+ +@@$/},{b:/^\*\*\* +\d+,\d+ +\*\*\*\*$/},{b:/^\-\-\- +\d+,\d+ +\-\-\-\-$/}]},{cN:"comment",v:[{b:/Index: /,e:/$/},{b:/={3,}/,e:/$/},{b:/^\-{3}/,e:/$/},{b:/^\*{3} /,e:/$/},{b:/^\+{3}/,e:/$/},{b:/\*{5}/,e:/\*{5}$/}]},{cN:"addition",b:"^\\+",e:"$"},{cN:"deletion",b:"^\\-",e:"$"},{cN:"addition",b:"^\\!",e:"$"}]}});hljs.registerLanguage("xml",function(s){var e="[A-Za-z0-9\\._:-]+",t={eW:!0,i:/</,r:0,c:[{cN:"attr",b:e,r:0},{b:/=\s*/,r:0,c:[{cN:"string",endsParent:!0,v:[{b:/"/,e:/"/},{b:/'/,e:/'/},{b:/[^\s"'=<>`]+/}]}]}]};return{aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist"],cI:!0,c:[{cN:"meta",b:"<!DOCTYPE",e:">",r:10,c:[{b:"\\[",e:"\\]"}]},s.C("<!--","-->",{r:10}),{b:"<\\!\\[CDATA\\[",e:"\\]\\]>",r:10},{b:/<\?(php)?/,e:/\?>/,sL:"php",c:[{b:"/\\*",e:"\\*/",skip:!0}]},{cN:"tag",b:"<style(?=\\s|>|$)",e:">",k:{name:"style"},c:[t],starts:{e:"</style>",rE:!0,sL:["css","xml"]}},{cN:"tag",b:"<script(?=\\s|>|$)",e:">",k:{name:"script"},c:[t],starts:{e:"</script>",rE:!0,sL:["actionscript","javascript","handlebars","xml"]}},{cN:"meta",v:[{b:/<\?xml/,e:/\?>/,r:10},{b:/<\?\w+/,e:/\?>/}]},{cN:"tag",b:"</?",e:"/?>",c:[{cN:"name",b:/[^\/><\s]+/,r:0},t]}]}});hljs.registerLanguage("markdown",function(e){return{aliases:["md","mkdown","mkd"],c:[{cN:"section",v:[{b:"^#{1,6}",e:"$"},{b:"^.+?\\n[=-]{2,}$"}]},{b:"<",e:">",sL:"xml",r:0},{cN:"bullet",b:"^([*+-]|(\\d+\\.))\\s+"},{cN:"strong",b:"[*_]{2}.+?[*_]{2}"},{cN:"emphasis",v:[{b:"\\*.+?\\*"},{b:"_.+?_",r:0}]},{cN:"quote",b:"^>\\s+",e:"$"},{cN:"code",v:[{b:"^```w*s*$",e:"^```s*$"},{b:"`.+?`"},{b:"^( {4}| )",e:"$",r:0}]},{b:"^[-\\*]{3,}",e:"$"},{b:"\\[.+?\\][\\(\\[].*?[\\)\\]]",rB:!0,c:[{cN:"string",b:"\\[",e:"\\]",eB:!0,rE:!0,r:0},{cN:"link",b:"\\]\\(",e:"\\)",eB:!0,eE:!0},{cN:"symbol",b:"\\]\\[",e:"\\]",eB:!0,eE:!0}],r:10},{b:/^\[[^\n]+\]:/,rB:!0,c:[{cN:"symbol",b:/\[/,e:/\]/,eB:!0,eE:!0},{cN:"link",b:/:\s*/,e:/$/,eB:!0}]}]}});hljs.registerLanguage("java",function(e){var t=e.UIR+"(<"+e.UIR+"(\\s*,\\s*"+e.UIR+")*>)?",a="false synchronized int abstract float private char boolean static null if const for true while long strictfp finally protected import native final void enum else break transient catch instanceof byte super volatile case assert short package default double public try this switch continue throws protected public private module requires exports",r="\\b(0[bB]([01]+[01_]+[01]+|[01]+)|0[xX]([a-fA-F0-9]+[a-fA-F0-9_]+[a-fA-F0-9]+|[a-fA-F0-9]+)|(([\\d]+[\\d_]+[\\d]+|[\\d]+)(\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))?|\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))([eE][-+]?\\d+)?)[lLfF]?",s={cN:"number",b:r,r:0};return{aliases:["jsp"],k:a,i:/<\/|#/,c:[e.C("/\\*\\*","\\*/",{r:0,c:[{b:/\w+@/,r:0},{cN:"doctag",b:"@[A-Za-z]+"}]}),e.CLCM,e.CBCM,e.ASM,e.QSM,{cN:"class",bK:"class interface",e:/[{;=]/,eE:!0,k:"class interface",i:/[:"\[\]]/,c:[{bK:"extends implements"},e.UTM]},{bK:"new throw return else",r:0},{cN:"function",b:"("+t+"\\s+)+"+e.UIR+"\\s*\\(",rB:!0,e:/[{;=]/,eE:!0,k:a,c:[{b:e.UIR+"\\s*\\(",rB:!0,r:0,c:[e.UTM]},{cN:"params",b:/\(/,e:/\)/,k:a,r:0,c:[e.ASM,e.QSM,e.CNM,e.CBCM]},e.CLCM,e.CBCM]},s,{cN:"meta",b:"@[A-Za-z]+"}]}});hljs.registerLanguage("coffeescript",function(e){var c={keyword:"in if for while finally new do return else break catch instanceof throw try this switch continue typeof delete debugger super then unless until loop of by when and or is isnt not",literal:"true false null undefined yes no on off",built_in:"npm require console print module global window document"},n="[A-Za-z$_][0-9A-Za-z$_]*",r={cN:"subst",b:/#\{/,e:/}/,k:c},s=[e.BNM,e.inherit(e.CNM,{starts:{e:"(\\s*/)?",r:0}}),{cN:"string",v:[{b:/'''/,e:/'''/,c:[e.BE]},{b:/'/,e:/'/,c:[e.BE]},{b:/"""/,e:/"""/,c:[e.BE,r]},{b:/"/,e:/"/,c:[e.BE,r]}]},{cN:"regexp",v:[{b:"///",e:"///",c:[r,e.HCM]},{b:"//[gim]*",r:0},{b:/\/(?![ *])(\\\/|.)*?\/[gim]*(?=\W|$)/}]},{b:"@"+n},{b:"`",e:"`",eB:!0,eE:!0,sL:"javascript"}];r.c=s;var i=e.inherit(e.TM,{b:n}),t="(\\(.*\\))?\\s*\\B[-=]>",o={cN:"params",b:"\\([^\\(]",rB:!0,c:[{b:/\(/,e:/\)/,k:c,c:["self"].concat(s)}]};return{aliases:["coffee","cson","iced"],k:c,i:/\/\*/,c:s.concat([e.C("###","###"),e.HCM,{cN:"function",b:"^\\s*"+n+"\\s*=\\s*"+t,e:"[-=]>",rB:!0,c:[i,o]},{b:/[:\(,=]\s*/,r:0,c:[{cN:"function",b:t,e:"[-=]>",rB:!0,c:[o]}]},{cN:"class",bK:"class",e:"$",i:/[:="\[\]]/,c:[{bK:"extends",eW:!0,i:/[:="\[\]]/,c:[i]},i]},{b:n+":",e:":",rB:!0,rE:!0,r:0}])}});hljs.registerLanguage("http",function(e){var t="HTTP/[0-9\\.]+";return{aliases:["https"],i:"\\S",c:[{b:"^"+t,e:"$",c:[{cN:"number",b:"\\b\\d{3}\\b"}]},{b:"^[A-Z]+ (.*?) "+t+"$",rB:!0,e:"$",c:[{cN:"string",b:" ",e:" ",eB:!0,eE:!0},{b:t},{cN:"keyword",b:"[A-Z]+"}]},{cN:"attribute",b:"^\\w",e:": ",eE:!0,i:"\\n|\\s|=",starts:{e:"$",r:0}},{b:"\\n\\n",starts:{sL:[],eW:!0}}]}});hljs.registerLanguage("css",function(e){var c="[a-zA-Z-][a-zA-Z0-9_-]*",t={b:/[A-Z\_\.\-]+\s*:/,rB:!0,e:";",eW:!0,c:[{cN:"attribute",b:/\S/,e:":",eE:!0,starts:{eW:!0,eE:!0,c:[{b:/[\w-]+\(/,rB:!0,c:[{cN:"built_in",b:/[\w-]+/},{b:/\(/,e:/\)/,c:[e.ASM,e.QSM]}]},e.CSSNM,e.QSM,e.ASM,e.CBCM,{cN:"number",b:"#[0-9A-Fa-f]+"},{cN:"meta",b:"!important"}]}}]};return{cI:!0,i:/[=\/|'\$]/,c:[e.CBCM,{cN:"selector-id",b:/#[A-Za-z0-9_-]+/},{cN:"selector-class",b:/\.[A-Za-z0-9_-]+/},{cN:"selector-attr",b:/\[/,e:/\]/,i:"$"},{cN:"selector-pseudo",b:/:(:)?[a-zA-Z0-9\_\-\+\(\)"'.]+/},{b:"@(font-face|page)",l:"[a-z-]+",k:"font-face page"},{b:"@",e:"[{;]",i:/:/,c:[{cN:"keyword",b:/\w+/},{b:/\s/,eW:!0,eE:!0,r:0,c:[e.ASM,e.QSM,e.CSSNM]}]},{cN:"selector-tag",b:c,r:0},{b:"{",e:"}",i:/\S/,c:[e.CBCM,t]}]}});hljs.registerLanguage("sql",function(e){var t=e.C("--","$");return{cI:!0,i:/[<>{}*#]/,c:[{bK:"begin end start commit rollback savepoint lock alter create drop rename call delete do handler insert load replace select truncate update set show pragma grant merge describe use explain help declare prepare execute deallocate release unlock purge reset change stop analyze cache flush optimize repair kill install uninstall checksum restore check backup revoke comment",e:/;/,eW:!0,l:/[\w\.]+/,k:{keyword:"abort abs absolute acc acce accep accept access accessed accessible account acos action activate add addtime admin administer advanced advise aes_decrypt aes_encrypt after agent aggregate ali alia alias allocate allow alter always analyze ancillary and any anydata anydataset anyschema anytype apply archive archived archivelog are as asc ascii asin assembly assertion associate asynchronous at atan atn2 attr attri attrib attribu attribut attribute attributes audit authenticated authentication authid authors auto autoallocate autodblink autoextend automatic availability avg backup badfile basicfile before begin beginning benchmark between bfile bfile_base big bigfile bin binary_double binary_float binlog bit_and bit_count bit_length bit_or bit_xor bitmap blob_base block blocksize body both bound buffer_cache buffer_pool build bulk by byte byteordermark bytes cache caching call calling cancel capacity cascade cascaded case cast catalog category ceil ceiling chain change changed char_base char_length character_length characters characterset charindex charset charsetform charsetid check checksum checksum_agg child choose chr chunk class cleanup clear client clob clob_base clone close cluster_id cluster_probability cluster_set clustering coalesce coercibility col collate collation collect colu colum column column_value columns columns_updated comment commit compact compatibility compiled complete composite_limit compound compress compute concat concat_ws concurrent confirm conn connec connect connect_by_iscycle connect_by_isleaf connect_by_root connect_time connection consider consistent constant constraint constraints constructor container content contents context contributors controlfile conv convert convert_tz corr corr_k corr_s corresponding corruption cos cost count count_big counted covar_pop covar_samp cpu_per_call cpu_per_session crc32 create creation critical cross cube cume_dist curdate current current_date current_time current_timestamp current_user cursor curtime customdatum cycle data database databases datafile datafiles datalength date_add date_cache date_format date_sub dateadd datediff datefromparts datename datepart datetime2fromparts day day_to_second dayname dayofmonth dayofweek dayofyear days db_role_change dbtimezone ddl deallocate declare decode decompose decrement decrypt deduplicate def defa defau defaul default defaults deferred defi defin define degrees delayed delegate delete delete_all delimited demand dense_rank depth dequeue des_decrypt des_encrypt des_key_file desc descr descri describ describe descriptor deterministic diagnostics difference dimension direct_load directory disable disable_all disallow disassociate discardfile disconnect diskgroup distinct distinctrow distribute distributed div do document domain dotnet double downgrade drop dumpfile duplicate duration each edition editionable editions element ellipsis else elsif elt empty enable enable_all enclosed encode encoding encrypt end end-exec endian enforced engine engines enqueue enterprise entityescaping eomonth error errors escaped evalname evaluate event eventdata events except exception exceptions exchange exclude excluding execu execut execute exempt exists exit exp expire explain export export_set extended extent external external_1 external_2 externally extract failed failed_login_attempts failover failure far fast feature_set feature_value fetch field fields file file_name_convert filesystem_like_logging final finish first first_value fixed flash_cache flashback floor flush following follows for forall force form forma format found found_rows freelist freelists freepools fresh from from_base64 from_days ftp full function general generated get get_format get_lock getdate getutcdate global global_name globally go goto grant grants greatest group group_concat group_id grouping grouping_id groups gtid_subtract guarantee guard handler hash hashkeys having hea head headi headin heading heap help hex hierarchy high high_priority hosts hour http id ident_current ident_incr ident_seed identified identity idle_time if ifnull ignore iif ilike ilm immediate import in include including increment index indexes indexing indextype indicator indices inet6_aton inet6_ntoa inet_aton inet_ntoa infile initial initialized initially initrans inmemory inner innodb input insert install instance instantiable instr interface interleaved intersect into invalidate invisible is is_free_lock is_ipv4 is_ipv4_compat is_not is_not_null is_used_lock isdate isnull isolation iterate java join json json_exists keep keep_duplicates key keys kill language large last last_day last_insert_id last_value lax lcase lead leading least leaves left len lenght length less level levels library like like2 like4 likec limit lines link list listagg little ln load load_file lob lobs local localtime localtimestamp locate locator lock locked log log10 log2 logfile logfiles logging logical logical_reads_per_call logoff logon logs long loop low low_priority lower lpad lrtrim ltrim main make_set makedate maketime managed management manual map mapping mask master master_pos_wait match matched materialized max maxextents maximize maxinstances maxlen maxlogfiles maxloghistory maxlogmembers maxsize maxtrans md5 measures median medium member memcompress memory merge microsecond mid migration min minextents minimum mining minus minute minvalue missing mod mode model modification modify module monitoring month months mount move movement multiset mutex name name_const names nan national native natural nav nchar nclob nested never new newline next nextval no no_write_to_binlog noarchivelog noaudit nobadfile nocheck nocompress nocopy nocycle nodelay nodiscardfile noentityescaping noguarantee nokeep nologfile nomapping nomaxvalue nominimize nominvalue nomonitoring none noneditionable nonschema noorder nopr nopro noprom nopromp noprompt norely noresetlogs noreverse normal norowdependencies noschemacheck noswitch not nothing notice notrim novalidate now nowait nth_value nullif nulls num numb numbe nvarchar nvarchar2 object ocicoll ocidate ocidatetime ociduration ociinterval ociloblocator ocinumber ociref ocirefcursor ocirowid ocistring ocitype oct octet_length of off offline offset oid oidindex old on online only opaque open operations operator optimal optimize option optionally or oracle oracle_date oradata ord ordaudio orddicom orddoc order ordimage ordinality ordvideo organization orlany orlvary out outer outfile outline output over overflow overriding package pad parallel parallel_enable parameters parent parse partial partition partitions pascal passing password password_grace_time password_lock_time password_reuse_max password_reuse_time password_verify_function patch path patindex pctincrease pctthreshold pctused pctversion percent percent_rank percentile_cont percentile_disc performance period period_add period_diff permanent physical pi pipe pipelined pivot pluggable plugin policy position post_transaction pow power pragma prebuilt precedes preceding precision prediction prediction_cost prediction_details prediction_probability prediction_set prepare present preserve prior priority private private_sga privileges procedural procedure procedure_analyze processlist profiles project prompt protection public publishingservername purge quarter query quick quiesce quota quotename radians raise rand range rank raw read reads readsize rebuild record records recover recovery recursive recycle redo reduced ref reference referenced references referencing refresh regexp_like register regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy reject rekey relational relative relaylog release release_lock relies_on relocate rely rem remainder rename repair repeat replace replicate replication required reset resetlogs resize resource respect restore restricted result result_cache resumable resume retention return returning returns reuse reverse revoke right rlike role roles rollback rolling rollup round row row_count rowdependencies rowid rownum rows rtrim rules safe salt sample save savepoint sb1 sb2 sb4 scan schema schemacheck scn scope scroll sdo_georaster sdo_topo_geometry search sec_to_time second section securefile security seed segment select self sequence sequential serializable server servererror session session_user sessions_per_user set sets settings sha sha1 sha2 share shared shared_pool short show shrink shutdown si_averagecolor si_colorhistogram si_featurelist si_positionalcolor si_stillimage si_texture siblings sid sign sin size size_t sizes skip slave sleep smalldatetimefromparts smallfile snapshot some soname sort soundex source space sparse spfile split sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_small_result sql_variant_property sqlcode sqldata sqlerror sqlname sqlstate sqrt square standalone standby start starting startup statement static statistics stats_binomial_test stats_crosstab stats_ks_test stats_mode stats_mw_test stats_one_way_anova stats_t_test_ stats_t_test_indep stats_t_test_one stats_t_test_paired stats_wsr_test status std stddev stddev_pop stddev_samp stdev stop storage store stored str str_to_date straight_join strcmp strict string struct stuff style subdate subpartition subpartitions substitutable substr substring subtime subtring_index subtype success sum suspend switch switchoffset switchover sync synchronous synonym sys sys_xmlagg sysasm sysaux sysdate sysdatetimeoffset sysdba sysoper system system_user sysutcdatetime table tables tablespace tan tdo template temporary terminated tertiary_weights test than then thread through tier ties time time_format time_zone timediff timefromparts timeout timestamp timestampadd timestampdiff timezone_abbr timezone_minute timezone_region to to_base64 to_date to_days to_seconds todatetimeoffset trace tracking transaction transactional translate translation treat trigger trigger_nestlevel triggers trim truncate try_cast try_convert try_parse type ub1 ub2 ub4 ucase unarchived unbounded uncompress under undo unhex unicode uniform uninstall union unique unix_timestamp unknown unlimited unlock unpivot unrecoverable unsafe unsigned until untrusted unusable unused update updated upgrade upped upper upsert url urowid usable usage use use_stored_outlines user user_data user_resources users using utc_date utc_timestamp uuid uuid_short validate validate_password_strength validation valist value values var var_samp varcharc vari varia variab variabl variable variables variance varp varraw varrawc varray verify version versions view virtual visible void wait wallet warning warnings week weekday weekofyear wellformed when whene whenev wheneve whenever where while whitespace with within without work wrapped xdb xml xmlagg xmlattributes xmlcast xmlcolattval xmlelement xmlexists xmlforest xmlindex xmlnamespaces xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltype xor year year_to_month years yearweek",literal:"true false null",built_in:"array bigint binary bit blob boolean char character date dec decimal float int int8 integer interval number numeric real record serial serial8 smallint text varchar varying void"},c:[{cN:"string",b:"'",e:"'",c:[e.BE,{b:"''"}]},{cN:"string",b:'"',e:'"',c:[e.BE,{b:'""'}]},{cN:"string",b:"`",e:"`",c:[e.BE]},e.CNM,e.CBCM,t]},e.CBCM,t]}});hljs.registerLanguage("makefile",function(e){var a={cN:"variable",b:/\$\(/,e:/\)/,c:[e.BE]};return{aliases:["mk","mak"],c:[e.HCM,{b:/^\w+\s*\W*=/,rB:!0,r:0,starts:{e:/\s*\W*=/,eE:!0,starts:{e:/$/,r:0,c:[a]}}},{cN:"section",b:/^[\w]+:\s*$/},{cN:"meta",b:/^\.PHONY:/,e:/$/,k:{"meta-keyword":".PHONY"},l:/[\.\w]+/},{b:/^\t+/,e:/$/,r:0,c:[e.QSM,a]}]}});hljs.registerLanguage("cs",function(e){var i={keyword:"abstract as base bool break byte case catch char checked const continue decimal default delegate do double else enum event explicit extern finally fixed float for foreach goto if implicit in int interface internal is lock long object operator out override params private protected public readonly ref sbyte sealed short sizeof stackalloc static string struct switch this try typeof uint ulong unchecked unsafe ushort using virtual void volatile while nameof add alias ascending async await by descending dynamic equals from get global group into join let on orderby partial remove select set value var where yield",literal:"null false true"},r={cN:"string",b:'@"',e:'"',c:[{b:'""'}]},t=e.inherit(r,{i:/\n/}),a={cN:"subst",b:"{",e:"}",k:i},n=e.inherit(a,{i:/\n/}),c={cN:"string",b:/\$"/,e:'"',i:/\n/,c:[{b:"{{"},{b:"}}"},e.BE,n]},s={cN:"string",b:/\$@"/,e:'"',c:[{b:"{{"},{b:"}}"},{b:'""'},a]},o=e.inherit(s,{i:/\n/,c:[{b:"{{"},{b:"}}"},{b:'""'},n]});a.c=[s,c,r,e.ASM,e.QSM,e.CNM,e.CBCM],n.c=[o,c,t,e.ASM,e.QSM,e.CNM,e.inherit(e.CBCM,{i:/\n/})];var l={v:[s,c,r,e.ASM,e.QSM]},b=e.IR+"(<"+e.IR+"(\\s*,\\s*"+e.IR+")*>)?(\\[\\])?";return{aliases:["csharp"],k:i,i:/::/,c:[e.C("///","$",{rB:!0,c:[{cN:"doctag",v:[{b:"///",r:0},{b:"<!--|-->"},{b:"</?",e:">"}]}]}),e.CLCM,e.CBCM,{cN:"meta",b:"#",e:"$",k:{"meta-keyword":"if else elif endif define undef warning error line region endregion pragma checksum"}},l,e.CNM,{bK:"class interface",e:/[{;=]/,i:/[^\s:]/,c:[e.TM,e.CLCM,e.CBCM]},{bK:"namespace",e:/[{;=]/,i:/[^\s:]/,c:[e.inherit(e.TM,{b:"[a-zA-Z](\\.?\\w)*"}),e.CLCM,e.CBCM]},{bK:"new return throw await",r:0},{cN:"function",b:"("+b+"\\s+)+"+e.IR+"\\s*\\(",rB:!0,e:/[{;=]/,eE:!0,k:i,c:[{b:e.IR+"\\s*\\(",rB:!0,c:[e.TM],r:0},{cN:"params",b:/\(/,e:/\)/,eB:!0,eE:!0,k:i,r:0,c:[l,e.CNM,e.CBCM]},e.CLCM,e.CBCM]}]}});hljs.registerLanguage("objectivec",function(e){var t={cN:"built_in",b:"\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\w+"},_={keyword:"int float while char export sizeof typedef const struct for union unsigned long volatile static bool mutable if do return goto void enum else break extern asm case short default double register explicit signed typename this switch continue wchar_t inline readonly assign readwrite self @synchronized id typeof nonatomic super unichar IBOutlet IBAction strong weak copy in out inout bycopy byref oneway __strong __weak __block __autoreleasing @private @protected @public @try @property @end @throw @catch @finally @autoreleasepool @synthesize @dynamic @selector @optional @required @encode @package @import @defs @compatibility_alias __bridge __bridge_transfer __bridge_retained __bridge_retain __covariant __contravariant __kindof _Nonnull _Nullable _Null_unspecified __FUNCTION__ __PRETTY_FUNCTION__ __attribute__ getter setter retain unsafe_unretained nonnull nullable null_unspecified null_resettable class instancetype NS_DESIGNATED_INITIALIZER NS_UNAVAILABLE NS_REQUIRES_SUPER NS_RETURNS_INNER_POINTER NS_INLINE NS_AVAILABLE NS_DEPRECATED NS_ENUM NS_OPTIONS NS_SWIFT_UNAVAILABLE NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_END NS_REFINED_FOR_SWIFT NS_SWIFT_NAME NS_SWIFT_NOTHROW NS_DURING NS_HANDLER NS_ENDHANDLER NS_VALUERETURN NS_VOIDRETURN",literal:"false true FALSE TRUE nil YES NO NULL",built_in:"BOOL dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once"},i=/[a-zA-Z@][a-zA-Z0-9_]*/,n="@interface @class @protocol @implementation";return{aliases:["mm","objc","obj-c"],k:_,l:i,i:"</",c:[t,e.CLCM,e.CBCM,e.CNM,e.QSM,{cN:"string",v:[{b:'@"',e:'"',i:"\\n",c:[e.BE]},{b:"'",e:"[^\\\\]'",i:"[^\\\\][^']"}]},{cN:"meta",b:"#",e:"$",c:[{cN:"meta-string",v:[{b:'"',e:'"'},{b:"<",e:">"}]}]},{cN:"class",b:"("+n.split(" ").join("|")+")\\b",e:"({|$)",eE:!0,k:n,l:i,c:[e.UTM]},{b:"\\."+e.UIR,r:0}]}});hljs.registerLanguage("ini",function(e){var b={cN:"string",c:[e.BE],v:[{b:"'''",e:"'''",r:10},{b:'"""',e:'"""',r:10},{b:'"',e:'"'},{b:"'",e:"'"}]};return{aliases:["toml"],cI:!0,i:/\S/,c:[e.C(";","$"),e.HCM,{cN:"section",b:/^\s*\[+/,e:/\]+/},{b:/^[a-z0-9\[\]_-]+\s*=\s*/,e:"$",rB:!0,c:[{cN:"attr",b:/[a-z0-9\[\]_-]+/},{b:/=/,eW:!0,r:0,c:[{cN:"literal",b:/\bon|off|true|false|yes|no\b/},{cN:"variable",v:[{b:/\$[\w\d"][\w\d_]*/},{b:/\$\{(.*?)}/}]},b,{cN:"number",b:/([\+\-]+)?[\d]+_[\d_]+/},e.NM]}]}]}});hljs.registerLanguage("python",function(e){var r={cN:"meta",b:/^(>>>|\.\.\.) /},b={cN:"string",c:[e.BE],v:[{b:/(u|b)?r?'''/,e:/'''/,c:[r],r:10},{b:/(u|b)?r?"""/,e:/"""/,c:[r],r:10},{b:/(u|r|ur)'/,e:/'/,r:10},{b:/(u|r|ur)"/,e:/"/,r:10},{b:/(b|br)'/,e:/'/},{b:/(b|br)"/,e:/"/},e.ASM,e.QSM]},a={cN:"number",r:0,v:[{b:e.BNR+"[lLjJ]?"},{b:"\\b(0o[0-7]+)[lLjJ]?"},{b:e.CNR+"[lLjJ]?"}]},l={cN:"params",b:/\(/,e:/\)/,c:["self",r,a,b]};return{aliases:["py","gyp"],k:{keyword:"and elif is global as in if from raise for except finally print import pass return exec else break not with class assert yield try while continue del or def lambda async await nonlocal|10 None True False",built_in:"Ellipsis NotImplemented"},i:/(<\/|->|\?)/,c:[r,a,b,e.HCM,{v:[{cN:"function",bK:"def",r:10},{cN:"class",bK:"class"}],e:/:/,i:/[${=;\n,]/,c:[e.UTM,l,{b:/->/,eW:!0,k:"None"}]},{cN:"meta",b:/^[\t ]*@/,e:/$/},{b:/\b(print|exec)\(/}]}});hljs.registerLanguage("json",function(e){var i={literal:"true false null"},n=[e.QSM,e.CNM],r={e:",",eW:!0,eE:!0,c:n,k:i},t={b:"{",e:"}",c:[{cN:"attr",b:/"/,e:/"/,c:[e.BE],i:"\\n"},e.inherit(r,{b:/:/})],i:"\\S"},c={b:"\\[",e:"\\]",c:[e.inherit(r)],i:"\\S"};return n.splice(n.length,0,t,c),{c:n,k:i,i:"\\S"}});hljs.registerLanguage("perl",function(e){var t="getpwent getservent quotemeta msgrcv scalar kill dbmclose undef lc ma syswrite tr send umask sysopen shmwrite vec qx utime local oct semctl localtime readpipe do return format read sprintf dbmopen pop getpgrp not getpwnam rewinddir qqfileno qw endprotoent wait sethostent bless s|0 opendir continue each sleep endgrent shutdown dump chomp connect getsockname die socketpair close flock exists index shmgetsub for endpwent redo lstat msgctl setpgrp abs exit select print ref gethostbyaddr unshift fcntl syscall goto getnetbyaddr join gmtime symlink semget splice x|0 getpeername recv log setsockopt cos last reverse gethostbyname getgrnam study formline endhostent times chop length gethostent getnetent pack getprotoent getservbyname rand mkdir pos chmod y|0 substr endnetent printf next open msgsnd readdir use unlink getsockopt getpriority rindex wantarray hex system getservbyport endservent int chr untie rmdir prototype tell listen fork shmread ucfirst setprotoent else sysseek link getgrgid shmctl waitpid unpack getnetbyname reset chdir grep split require caller lcfirst until warn while values shift telldir getpwuid my getprotobynumber delete and sort uc defined srand accept package seekdir getprotobyname semop our rename seek if q|0 chroot sysread setpwent no crypt getc chown sqrt write setnetent setpriority foreach tie sin msgget map stat getlogin unless elsif truncate exec keys glob tied closedirioctl socket readlink eval xor readline binmode setservent eof ord bind alarm pipe atan2 getgrent exp time push setgrent gt lt or ne m|0 break given say state when",r={cN:"subst",b:"[$@]\\{",e:"\\}",k:t},s={b:"->{",e:"}"},n={v:[{b:/\$\d/},{b:/[\$%@](\^\w\b|#\w+(::\w+)*|{\w+}|\w+(::\w*)*)/},{b:/[\$%@][^\s\w{]/,r:0}]},i=[e.BE,r,n],o=[n,e.HCM,e.C("^\\=\\w","\\=cut",{eW:!0}),s,{cN:"string",c:i,v:[{b:"q[qwxr]?\\s*\\(",e:"\\)",r:5},{b:"q[qwxr]?\\s*\\[",e:"\\]",r:5},{b:"q[qwxr]?\\s*\\{",e:"\\}",r:5},{b:"q[qwxr]?\\s*\\|",e:"\\|",r:5},{b:"q[qwxr]?\\s*\\<",e:"\\>",r:5},{b:"qw\\s+q",e:"q",r:5},{b:"'",e:"'",c:[e.BE]},{b:'"',e:'"'},{b:"`",e:"`",c:[e.BE]},{b:"{\\w+}",c:[],r:0},{b:"-?\\w+\\s*\\=\\>",c:[],r:0}]},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{b:"(\\/\\/|"+e.RSR+"|\\b(split|return|print|reverse|grep)\\b)\\s*",k:"split return print reverse grep",r:0,c:[e.HCM,{cN:"regexp",b:"(s|tr|y)/(\\\\.|[^/])*/(\\\\.|[^/])*/[a-z]*",r:10},{cN:"regexp",b:"(m|qr)?/",e:"/[a-z]*",c:[e.BE],r:0}]},{cN:"function",bK:"sub",e:"(\\s*\\(.*?\\))?[;{]",eE:!0,r:5,c:[e.TM]},{b:"-\\w\\b",r:0},{b:"^__DATA__$",e:"^__END__$",sL:"mojolicious",c:[{b:"^@@.*",e:"$",cN:"comment"}]}];return r.c=o,s.c=o,{aliases:["pl","pm"],l:/[\w\.]+/,k:t,c:o}});hljs.registerLanguage("bash",function(e){var t={cN:"variable",v:[{b:/\$[\w\d#@][\w\d_]*/},{b:/\$\{(.*?)}/}]},s={cN:"string",b:/"/,e:/"/,c:[e.BE,t,{cN:"variable",b:/\$\(/,e:/\)/,c:[e.BE]}]},a={cN:"string",b:/'/,e:/'/};return{aliases:["sh","zsh"],l:/-?[a-z\._]+/,k:{keyword:"if then else elif fi for while in do done case esac function",literal:"true false",built_in:"break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp",_:"-ne -eq -lt -gt -f -d -e -s -l -a"},c:[{cN:"meta",b:/^#![^\n]+sh\s*$/,r:10},{cN:"function",b:/\w[\w\d_]*\s*\(\s*\)\s*\{/,rB:!0,c:[e.inherit(e.TM,{b:/\w[\w\d_]*/})],r:0},e.HCM,s,a,t]}});hljs.registerLanguage("apache",function(e){var r={cN:"number",b:"[\\$%]\\d+"};return{aliases:["apacheconf"],cI:!0,c:[e.HCM,{cN:"section",b:"</?",e:">"},{cN:"attribute",b:/\w+/,r:0,k:{nomarkup:"order deny allow setenv rewriterule rewriteengine rewritecond documentroot sethandler errordocument loadmodule options header listen serverroot servername"},starts:{e:/$/,r:0,k:{literal:"on off all"},c:[{cN:"meta",b:"\\s\\[",e:"\\]$"},{cN:"variable",b:"[\\$%]\\{",e:"\\}",c:["self",r]},r,e.QSM]}}],i:/\S/}});hljs.registerLanguage("ruby",function(e){var b="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?",r={keyword:"and then defined module in return redo if BEGIN retry end for self when next until do begin unless END rescue else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor",literal:"true false nil"},c={cN:"doctag",b:"@[A-Za-z]+"},a={b:"#<",e:">"},s=[e.C("#","$",{c:[c]}),e.C("^\\=begin","^\\=end",{c:[c],r:10}),e.C("^__END__","\\n$")],n={cN:"subst",b:"#\\{",e:"}",k:r},t={cN:"string",c:[e.BE,n],v:[{b:/'/,e:/'/},{b:/"/,e:/"/},{b:/`/,e:/`/},{b:"%[qQwWx]?\\(",e:"\\)"},{b:"%[qQwWx]?\\[",e:"\\]"},{b:"%[qQwWx]?{",e:"}"},{b:"%[qQwWx]?<",e:">"},{b:"%[qQwWx]?/",e:"/"},{b:"%[qQwWx]?%",e:"%"},{b:"%[qQwWx]?-",e:"-"},{b:"%[qQwWx]?\\|",e:"\\|"},{b:/\B\?(\\\d{1,3}|\\x[A-Fa-f0-9]{1,2}|\\u[A-Fa-f0-9]{4}|\\?\S)\b/},{b:/<<(-?)\w+$/,e:/^\s*\w+$/}]},i={cN:"params",b:"\\(",e:"\\)",endsParent:!0,k:r},d=[t,a,{cN:"class",bK:"class module",e:"$|;",i:/=/,c:[e.inherit(e.TM,{b:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?"}),{b:"<\\s*",c:[{b:"("+e.IR+"::)?"+e.IR}]}].concat(s)},{cN:"function",bK:"def",e:"$|;",c:[e.inherit(e.TM,{b:b}),i].concat(s)},{b:e.IR+"::"},{cN:"symbol",b:e.UIR+"(\\!|\\?)?:",r:0},{cN:"symbol",b:":(?!\\s)",c:[t,{b:b}],r:0},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{b:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{cN:"params",b:/\|/,e:/\|/,k:r},{b:"("+e.RSR+")\\s*",c:[a,{cN:"regexp",c:[e.BE,n],i:/\n/,v:[{b:"/",e:"/[a-z]*"},{b:"%r{",e:"}[a-z]*"},{b:"%r\\(",e:"\\)[a-z]*"},{b:"%r!",e:"![a-z]*"},{b:"%r\\[",e:"\\][a-z]*"}]}].concat(s),r:0}].concat(s);n.c=d,i.c=d;var l="[>?]>",o="[\\w#]+\\(\\w+\\):\\d+:\\d+>",w="(\\w+-)?\\d+\\.\\d+\\.\\d(p\\d+)?[^>]+>",u=[{b:/^\s*=>/,starts:{e:"$",c:d}},{cN:"meta",b:"^("+l+"|"+o+"|"+w+")",starts:{e:"$",c:d}}];return{aliases:["rb","gemspec","podspec","thor","irb"],k:r,i:/\/\*/,c:s.concat(u).concat(d)}});hljs.registerLanguage("yaml",function(e){var a={literal:"{ } true false yes no Yes No True False null"},b="^[ \\-]*",r="[a-zA-Z_][\\w\\-]*",t={cN:"attr",v:[{b:b+r+":"},{b:b+'"'+r+'":'},{b:b+"'"+r+"':"}]},c={cN:"template-variable",v:[{b:"{{",e:"}}"},{b:"%{",e:"}"}]},l={cN:"string",r:0,v:[{b:/'/,e:/'/},{b:/"/,e:/"/}],c:[e.BE,c]};return{cI:!0,aliases:["yml","YAML","yaml"],c:[t,{cN:"meta",b:"^---s*$",r:10},{cN:"string",b:"[\\|>] *$",rE:!0,c:l.c,e:t.v[0].b},{b:"<%[%=-]?",e:"[%-]?%>",sL:"ruby",eB:!0,eE:!0,r:0},{cN:"type",b:"!!"+e.UIR},{cN:"meta",b:"&"+e.UIR+"$"},{cN:"meta",b:"\\*"+e.UIR+"$"},{cN:"bullet",b:"^ *-",r:0},l,e.HCM,e.CNM],k:a}});hljs.registerLanguage("javascript",function(e){var r="[A-Za-z$_][0-9A-Za-z$_]*",t={keyword:"in of if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const export super debugger as async await static import from as",literal:"true false null undefined NaN Infinity",built_in:"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect Promise"},a={cN:"number",v:[{b:"\\b(0[bB][01]+)"},{b:"\\b(0[oO][0-7]+)"},{b:e.CNR}],r:0},n={cN:"subst",b:"\\$\\{",e:"\\}",k:t,c:[]},c={cN:"string",b:"`",e:"`",c:[e.BE,n]};n.c=[e.ASM,e.QSM,c,a,e.RM];var s=n.c.concat([e.CBCM,e.CLCM]);return{aliases:["js","jsx"],k:t,c:[{cN:"meta",r:10,b:/^\s*['"]use (strict|asm)['"]/},{cN:"meta",b:/^#!/,e:/$/},e.ASM,e.QSM,c,e.CLCM,e.CBCM,a,{b:/[{,]\s*/,r:0,c:[{b:r+"\\s*:",rB:!0,r:0,c:[{cN:"attr",b:r,r:0}]}]},{b:"("+e.RSR+"|\\b(case|return|throw)\\b)\\s*",k:"return throw case",c:[e.CLCM,e.CBCM,e.RM,{cN:"function",b:"(\\(.*?\\)|"+r+")\\s*=>",rB:!0,e:"\\s*=>",c:[{cN:"params",v:[{b:r},{b:/\(\s*\)/},{b:/\(/,e:/\)/,eB:!0,eE:!0,k:t,c:s}]}]},{b:/</,e:/(\/\w+|\w+\/)>/,sL:"xml",c:[{b:/<\w+\s*\/>/,skip:!0},{b:/<\w+/,e:/(\/\w+|\w+\/)>/,skip:!0,c:[{b:/<\w+\s*\/>/,skip:!0},"self"]}]}],r:0},{cN:"function",bK:"function",e:/\{/,eE:!0,c:[e.inherit(e.TM,{b:r}),{cN:"params",b:/\(/,e:/\)/,eB:!0,eE:!0,c:s}],i:/\[|%/},{b:/\$[(.]/},e.METHOD_GUARD,{cN:"class",bK:"class",e:/[{;=]/,eE:!0,i:/[:"\[\]]/,c:[{bK:"extends"},e.UTM]},{bK:"constructor",e:/\{/,eE:!0}],i:/#(?!!)/}});hljs.registerLanguage("nginx",function(e){var r={cN:"variable",v:[{b:/\$\d+/},{b:/\$\{/,e:/}/},{b:"[\\$\\@]"+e.UIR}]},b={eW:!0,l:"[a-z/_]+",k:{literal:"on off yes no true false none blocked debug info notice warn error crit select break last permanent redirect kqueue rtsig epoll poll /dev/poll"},r:0,i:"=>",c:[e.HCM,{cN:"string",c:[e.BE,r],v:[{b:/"/,e:/"/},{b:/'/,e:/'/}]},{b:"([a-z]+):/",e:"\\s",eW:!0,eE:!0,c:[r]},{cN:"regexp",c:[e.BE,r],v:[{b:"\\s\\^",e:"\\s|{|;",rE:!0},{b:"~\\*?\\s+",e:"\\s|{|;",rE:!0},{b:"\\*(\\.[a-z\\-]+)+"},{b:"([a-z\\-]+\\.)+\\*"}]},{cN:"number",b:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{cN:"number",b:"\\b\\d+[kKmMgGdshdwy]*\\b",r:0},r]};return{aliases:["nginxconf"],c:[e.HCM,{b:e.UIR+"\\s+{",rB:!0,e:"{",c:[{cN:"section",b:e.UIR}],r:0},{b:e.UIR+"\\s",e:";|{",rB:!0,c:[{cN:"attribute",b:e.UIR,starts:b}],r:0}],i:"[^\\s\\}]"}});hljs.registerLanguage("cpp",function(t){var e={cN:"keyword",b:"\\b[a-z\\d_]*_t\\b"},r={cN:"string",v:[{b:'(u8?|U)?L?"',e:'"',i:"\\n",c:[t.BE]},{b:'(u8?|U)?R"',e:'"',c:[t.BE]},{b:"'\\\\?.",e:"'",i:"."}]},s={cN:"number",v:[{b:"\\b(0b[01']+)"},{b:"\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{b:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],r:0},i={cN:"meta",b:/#\s*[a-z]+\b/,e:/$/,k:{"meta-keyword":"if else elif endif define undef warning error line pragma ifdef ifndef include"},c:[{b:/\\\n/,r:0},t.inherit(r,{cN:"meta-string"}),{cN:"meta-string",b:"<",e:">",i:"\\n"},t.CLCM,t.CBCM]},a=t.IR+"\\s*\\(",c={keyword:"int float while private char catch import module export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const struct for static_cast|10 union namespace unsigned long volatile static protected bool template mutable if public friend do goto auto void enum else break extern using class asm case typeid short reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete alignof constexpr decltype noexcept static_assert thread_local restrict _Bool complex _Complex _Imaginary atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong atomic_ullong new throw return",built_in:"std string cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap array shared_ptr abort abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr",literal:"true false nullptr NULL"},n=[e,t.CLCM,t.CBCM,s,r];return{aliases:["c","cc","h","c++","h++","hpp"],k:c,i:"</",c:n.concat([i,{b:"\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<",e:">",k:c,c:["self",e]},{b:t.IR+"::",k:c},{v:[{b:/=/,e:/;/},{b:/\(/,e:/\)/},{bK:"new throw return else",e:/;/}],k:c,c:n.concat([{b:/\(/,e:/\)/,k:c,c:n.concat(["self"]),r:0}]),r:0},{cN:"function",b:"("+t.IR+"[\\*&\\s]+)+"+a,rB:!0,e:/[{;=]/,eE:!0,k:c,i:/[^\w\s\*&]/,c:[{b:a,rB:!0,c:[t.TM],r:0},{cN:"params",b:/\(/,e:/\)/,k:c,r:0,c:[t.CLCM,t.CBCM,r,s,e]},t.CLCM,t.CBCM,i]}]),exports:{preprocessor:i,strings:r,k:c}}}); \ No newline at end of file +!(function (e) { + var n = ('object' == typeof window && window) || ('object' == typeof self && self) + 'undefined' != typeof exports + ? e(exports) + : n && + ((n.hljs = e({})), + 'function' == typeof define && + define.amd && + define([], function () { + return n.hljs + })) +})(function (e) { + function n(e) { + return e.replace(/[&<>]/gm, function (e) { + return I[e] + }) + } + function t(e) { + return e.nodeName.toLowerCase() + } + function r(e, n) { + var t = e && e.exec(n) + return t && 0 === t.index + } + function a(e) { + return k.test(e) + } + function i(e) { + var n, + t, + r, + i, + o = e.className + ' ' + if (((o += e.parentNode ? e.parentNode.className : ''), (t = B.exec(o)))) return R(t[1]) ? t[1] : 'no-highlight' + for (o = o.split(/\s+/), n = 0, r = o.length; r > n; n++) if (((i = o[n]), a(i) || R(i))) return i + } + function o(e, n) { + var t, + r = {} + for (t in e) r[t] = e[t] + if (n) for (t in n) r[t] = n[t] + return r + } + function u(e) { + var n = [] + return ( + (function r(e, a) { + for (var i = e.firstChild; i; i = i.nextSibling) + 3 === i.nodeType + ? (a += i.nodeValue.length) + : 1 === i.nodeType && + (n.push({ event: 'start', offset: a, node: i }), + (a = r(i, a)), + t(i).match(/br|hr|img|input/) || n.push({ event: 'stop', offset: a, node: i })) + return a + })(e, 0), + n + ) + } + function c(e, r, a) { + function i() { + return e.length && r.length + ? e[0].offset !== r[0].offset + ? e[0].offset < r[0].offset + ? e + : r + : 'start' === r[0].event + ? e + : r + : e.length + ? e + : r + } + function o(e) { + function r(e) { + return ' ' + e.nodeName + '="' + n(e.value) + '"' + } + l += '<' + t(e) + w.map.call(e.attributes, r).join('') + '>' + } + function u(e) { + l += '</' + t(e) + '>' + } + function c(e) { + ;('start' === e.event ? o : u)(e.node) + } + for (var s = 0, l = '', f = []; e.length || r.length; ) { + var g = i() + if (((l += n(a.substr(s, g[0].offset - s))), (s = g[0].offset), g === e)) { + f.reverse().forEach(u) + do (c(g.splice(0, 1)[0]), (g = i())) + while (g === e && g.length && g[0].offset === s) + f.reverse().forEach(o) + } else ('start' === g[0].event ? f.push(g[0].node) : f.pop(), c(g.splice(0, 1)[0])) + } + return l + n(a.substr(s)) + } + function s(e) { + function n(e) { + return (e && e.source) || e + } + function t(t, r) { + return new RegExp(n(t), 'm' + (e.cI ? 'i' : '') + (r ? 'g' : '')) + } + function r(a, i) { + if (!a.compiled) { + if (((a.compiled = !0), (a.k = a.k || a.bK), a.k)) { + var u = {}, + c = function (n, t) { + ;(e.cI && (t = t.toLowerCase()), + t.split(' ').forEach(function (e) { + var t = e.split('|') + u[t[0]] = [n, t[1] ? Number(t[1]) : 1] + })) + } + ;('string' == typeof a.k + ? c('keyword', a.k) + : E(a.k).forEach(function (e) { + c(e, a.k[e]) + }), + (a.k = u)) + } + ;((a.lR = t(a.l || /\w+/, !0)), + i && + (a.bK && (a.b = '\\b(' + a.bK.split(' ').join('|') + ')\\b'), + a.b || (a.b = /\B|\b/), + (a.bR = t(a.b)), + a.e || a.eW || (a.e = /\B|\b/), + a.e && (a.eR = t(a.e)), + (a.tE = n(a.e) || ''), + a.eW && i.tE && (a.tE += (a.e ? '|' : '') + i.tE)), + a.i && (a.iR = t(a.i)), + null == a.r && (a.r = 1), + a.c || (a.c = [])) + var s = [] + ;(a.c.forEach(function (e) { + e.v + ? e.v.forEach(function (n) { + s.push(o(e, n)) + }) + : s.push('self' === e ? a : e) + }), + (a.c = s), + a.c.forEach(function (e) { + r(e, a) + }), + a.starts && r(a.starts, i)) + var l = a.c + .map(function (e) { + return e.bK ? '\\.?(' + e.b + ')\\.?' : e.b + }) + .concat([a.tE, a.i]) + .map(n) + .filter(Boolean) + a.t = l.length + ? t(l.join('|'), !0) + : { + exec: function () { + return null + }, + } + } + } + r(e) + } + function l(e, t, a, i) { + function o(e, n) { + var t, a + for (t = 0, a = n.c.length; a > t; t++) if (r(n.c[t].bR, e)) return n.c[t] + } + function u(e, n) { + if (r(e.eR, n)) { + for (; e.endsParent && e.parent; ) e = e.parent + return e + } + return e.eW ? u(e.parent, n) : void 0 + } + function c(e, n) { + return !a && r(n.iR, e) + } + function g(e, n) { + var t = N.cI ? n[0].toLowerCase() : n[0] + return e.k.hasOwnProperty(t) && e.k[t] + } + function h(e, n, t, r) { + var a = r ? '' : y.classPrefix, + i = '<span class="' + a, + o = t ? '' : C + return ((i += e + '">'), i + n + o) + } + function p() { + var e, t, r, a + if (!E.k) return n(B) + for (a = '', t = 0, E.lR.lastIndex = 0, r = E.lR.exec(B); r; ) + ((a += n(B.substr(t, r.index - t))), + (e = g(E, r)), + e ? ((M += e[1]), (a += h(e[0], n(r[0])))) : (a += n(r[0])), + (t = E.lR.lastIndex), + (r = E.lR.exec(B))) + return a + n(B.substr(t)) + } + function d() { + var e = 'string' == typeof E.sL + if (e && !x[E.sL]) return n(B) + var t = e ? l(E.sL, B, !0, L[E.sL]) : f(B, E.sL.length ? E.sL : void 0) + return (E.r > 0 && (M += t.r), e && (L[E.sL] = t.top), h(t.language, t.value, !1, !0)) + } + function b() { + ;((k += null != E.sL ? d() : p()), (B = '')) + } + function v(e) { + ;((k += e.cN ? h(e.cN, '', !0) : ''), (E = Object.create(e, { parent: { value: E } }))) + } + function m(e, n) { + if (((B += e), null == n)) return (b(), 0) + var t = o(n, E) + if (t) return (t.skip ? (B += n) : (t.eB && (B += n), b(), t.rB || t.eB || (B = n)), v(t, n), t.rB ? 0 : n.length) + var r = u(E, n) + if (r) { + var a = E + a.skip ? (B += n) : (a.rE || a.eE || (B += n), b(), a.eE && (B = n)) + do (E.cN && (k += C), E.skip || (M += E.r), (E = E.parent)) + while (E !== r.parent) + return (r.starts && v(r.starts, ''), a.rE ? 0 : n.length) + } + if (c(n, E)) throw new Error('Illegal lexeme "' + n + '" for mode "' + (E.cN || '<unnamed>') + '"') + return ((B += n), n.length || 1) + } + var N = R(e) + if (!N) throw new Error('Unknown language: "' + e + '"') + s(N) + var w, + E = i || N, + L = {}, + k = '' + for (w = E; w !== N; w = w.parent) w.cN && (k = h(w.cN, '', !0) + k) + var B = '', + M = 0 + try { + for (var I, j, O = 0; ; ) { + if (((E.t.lastIndex = O), (I = E.t.exec(t)), !I)) break + ;((j = m(t.substr(O, I.index - O), I[0])), (O = I.index + j)) + } + for (m(t.substr(O)), w = E; w.parent; w = w.parent) w.cN && (k += C) + return { r: M, value: k, language: e, top: E } + } catch (T) { + if (T.message && -1 !== T.message.indexOf('Illegal')) return { r: 0, value: n(t) } + throw T + } + } + function f(e, t) { + t = t || y.languages || E(x) + var r = { r: 0, value: n(e) }, + a = r + return ( + t.filter(R).forEach(function (n) { + var t = l(n, e, !1) + ;((t.language = n), t.r > a.r && (a = t), t.r > r.r && ((a = r), (r = t))) + }), + a.language && (r.second_best = a), + r + ) + } + function g(e) { + return y.tabReplace || y.useBR + ? e.replace(M, function (e, n) { + return y.useBR && '\n' === e ? '<br>' : y.tabReplace ? n.replace(/\t/g, y.tabReplace) : void 0 + }) + : e + } + function h(e, n, t) { + var r = n ? L[n] : t, + a = [e.trim()] + return (e.match(/\bhljs\b/) || a.push('hljs'), -1 === e.indexOf(r) && a.push(r), a.join(' ').trim()) + } + function p(e) { + var n, + t, + r, + o, + s, + p = i(e) + a(p) || + (y.useBR + ? ((n = document.createElementNS('http://www.w3.org/1999/xhtml', 'div')), + (n.innerHTML = e.innerHTML.replace(/\n/g, '').replace(/<br[ \/]*>/g, '\n'))) + : (n = e), + (s = n.textContent), + (r = p ? l(p, s, !0) : f(s)), + (t = u(n)), + t.length && ((o = document.createElementNS('http://www.w3.org/1999/xhtml', 'div')), (o.innerHTML = r.value), (r.value = c(t, u(o), s))), + (r.value = g(r.value)), + (e.innerHTML = r.value), + (e.className = h(e.className, p, r.language)), + (e.result = { language: r.language, re: r.r }), + r.second_best && (e.second_best = { language: r.second_best.language, re: r.second_best.r })) + } + function d(e) { + y = o(y, e) + } + function b() { + if (!b.called) { + b.called = !0 + var e = document.querySelectorAll('pre code') + w.forEach.call(e, p) + } + } + function v() { + ;(addEventListener('DOMContentLoaded', b, !1), addEventListener('load', b, !1)) + } + function m(n, t) { + var r = (x[n] = t(e)) + r.aliases && + r.aliases.forEach(function (e) { + L[e] = n + }) + } + function N() { + return E(x) + } + function R(e) { + return ((e = (e || '').toLowerCase()), x[e] || x[L[e]]) + } + var w = [], + E = Object.keys, + x = {}, + L = {}, + k = /^(no-?highlight|plain|text)$/i, + B = /\blang(?:uage)?-([\w-]+)\b/i, + M = /((^(<[^>]+>|\t|)+|(?:\n)))/gm, + C = '</span>', + y = { classPrefix: 'hljs-', tabReplace: null, useBR: !1, languages: void 0 }, + I = { '&': '&', '<': '<', '>': '>' } + return ( + (e.highlight = l), + (e.highlightAuto = f), + (e.fixMarkup = g), + (e.highlightBlock = p), + (e.configure = d), + (e.initHighlighting = b), + (e.initHighlightingOnLoad = v), + (e.registerLanguage = m), + (e.listLanguages = N), + (e.getLanguage = R), + (e.inherit = o), + (e.IR = '[a-zA-Z]\\w*'), + (e.UIR = '[a-zA-Z_]\\w*'), + (e.NR = '\\b\\d+(\\.\\d+)?'), + (e.CNR = '(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)'), + (e.BNR = '\\b(0b[01]+)'), + (e.RSR = + '!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~'), + (e.BE = { b: '\\\\[\\s\\S]', r: 0 }), + (e.ASM = { cN: 'string', b: "'", e: "'", i: '\\n', c: [e.BE] }), + (e.QSM = { cN: 'string', b: '"', e: '"', i: '\\n', c: [e.BE] }), + (e.PWM = { + b: /\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|like)\b/, + }), + (e.C = function (n, t, r) { + var a = e.inherit({ cN: 'comment', b: n, e: t, c: [] }, r || {}) + return (a.c.push(e.PWM), a.c.push({ cN: 'doctag', b: '(?:TODO|FIXME|NOTE|BUG|XXX):', r: 0 }), a) + }), + (e.CLCM = e.C('//', '$')), + (e.CBCM = e.C('/\\*', '\\*/')), + (e.HCM = e.C('#', '$')), + (e.NM = { cN: 'number', b: e.NR, r: 0 }), + (e.CNM = { cN: 'number', b: e.CNR, r: 0 }), + (e.BNM = { cN: 'number', b: e.BNR, r: 0 }), + (e.CSSNM = { cN: 'number', b: e.NR + '(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?', r: 0 }), + (e.RM = { cN: 'regexp', b: /\//, e: /\/[gimuy]*/, i: /\n/, c: [e.BE, { b: /\[/, e: /\]/, r: 0, c: [e.BE] }] }), + (e.TM = { cN: 'title', b: e.IR, r: 0 }), + (e.UTM = { cN: 'title', b: e.UIR, r: 0 }), + (e.METHOD_GUARD = { b: '\\.\\s*' + e.UIR, r: 0 }), + e + ) +}) +hljs.registerLanguage('php', function (e) { + var c = { b: '\\$+[a-zA-Z_-ÿ][a-zA-Z0-9_-ÿ]*' }, + i = { cN: 'meta', b: /<\?(php)?|\?>/ }, + t = { cN: 'string', c: [e.BE, i], v: [{ b: 'b"', e: '"' }, { b: "b'", e: "'" }, e.inherit(e.ASM, { i: null }), e.inherit(e.QSM, { i: null })] }, + a = { v: [e.BNM, e.CNM] } + return { + aliases: ['php3', 'php4', 'php5', 'php6'], + cI: !0, + k: 'and include_once list abstract global private echo interface as static endswitch array null if endwhile or const for endforeach self var while isset public protected exit foreach throw elseif include __FILE__ empty require_once do xor return parent clone use __CLASS__ __LINE__ else break print eval new catch __METHOD__ case exception default die require __FUNCTION__ enddeclare final try switch continue endfor endif declare unset true false trait goto instanceof insteadof __DIR__ __NAMESPACE__ yield finally', + c: [ + e.HCM, + e.C('//', '$', { c: [i] }), + e.C('/\\*', '\\*/', { c: [{ cN: 'doctag', b: '@[A-Za-z]+' }] }), + e.C('__halt_compiler.+?;', !1, { eW: !0, k: '__halt_compiler', l: e.UIR }), + { cN: 'string', b: /<<<['"]?\w+['"]?$/, e: /^\w+;?$/, c: [e.BE, { cN: 'subst', v: [{ b: /\$\w+/ }, { b: /\{\$/, e: /\}/ }] }] }, + i, + { cN: 'keyword', b: /\$this\b/ }, + c, + { b: /(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/ }, + { + cN: 'function', + bK: 'function', + e: /[;{]/, + eE: !0, + i: '\\$|\\[|%', + c: [e.UTM, { cN: 'params', b: '\\(', e: '\\)', c: ['self', c, e.CBCM, t, a] }], + }, + { cN: 'class', bK: 'class interface', e: '{', eE: !0, i: /[:\(\$"]/, c: [{ bK: 'extends implements' }, e.UTM] }, + { bK: 'namespace', e: ';', i: /[\.']/, c: [e.UTM] }, + { bK: 'use', e: ';', c: [e.UTM] }, + { b: '=>' }, + t, + a, + ], + } +}) +hljs.registerLanguage('diff', function (e) { + return { + aliases: ['patch'], + c: [ + { cN: 'meta', r: 10, v: [{ b: /^@@ +\-\d+,\d+ +\+\d+,\d+ +@@$/ }, { b: /^\*\*\* +\d+,\d+ +\*\*\*\*$/ }, { b: /^\-\-\- +\d+,\d+ +\-\-\-\-$/ }] }, + { + cN: 'comment', + v: [ + { b: /Index: /, e: /$/ }, + { b: /={3,}/, e: /$/ }, + { b: /^\-{3}/, e: /$/ }, + { b: /^\*{3} /, e: /$/ }, + { b: /^\+{3}/, e: /$/ }, + { b: /\*{5}/, e: /\*{5}$/ }, + ], + }, + { cN: 'addition', b: '^\\+', e: '$' }, + { cN: 'deletion', b: '^\\-', e: '$' }, + { cN: 'addition', b: '^\\!', e: '$' }, + ], + } +}) +hljs.registerLanguage('xml', function (s) { + var e = '[A-Za-z0-9\\._:-]+', + t = { + eW: !0, + i: /</, + r: 0, + c: [ + { cN: 'attr', b: e, r: 0 }, + { b: /=\s*/, r: 0, c: [{ cN: 'string', endsParent: !0, v: [{ b: /"/, e: /"/ }, { b: /'/, e: /'/ }, { b: /[^\s"'=<>`]+/ }] }] }, + ], + } + return { + aliases: ['html', 'xhtml', 'rss', 'atom', 'xjb', 'xsd', 'xsl', 'plist'], + cI: !0, + c: [ + { cN: 'meta', b: '<!DOCTYPE', e: '>', r: 10, c: [{ b: '\\[', e: '\\]' }] }, + s.C('<!--', '-->', { r: 10 }), + { b: '<\\!\\[CDATA\\[', e: '\\]\\]>', r: 10 }, + { b: /<\?(php)?/, e: /\?>/, sL: 'php', c: [{ b: '/\\*', e: '\\*/', skip: !0 }] }, + { cN: 'tag', b: '<style(?=\\s|>|$)', e: '>', k: { name: 'style' }, c: [t], starts: { e: '</style>', rE: !0, sL: ['css', 'xml'] } }, + { + cN: 'tag', + b: '<script(?=\\s|>|$)', + e: '>', + k: { name: 'script' }, + c: [t], + starts: { e: '</script>', rE: !0, sL: ['actionscript', 'javascript', 'handlebars', 'xml'] }, + }, + { + cN: 'meta', + v: [ + { b: /<\?xml/, e: /\?>/, r: 10 }, + { b: /<\?\w+/, e: /\?>/ }, + ], + }, + { cN: 'tag', b: '</?', e: '/?>', c: [{ cN: 'name', b: /[^\/><\s]+/, r: 0 }, t] }, + ], + } +}) +hljs.registerLanguage('markdown', function (e) { + return { + aliases: ['md', 'mkdown', 'mkd'], + c: [ + { cN: 'section', v: [{ b: '^#{1,6}', e: '$' }, { b: '^.+?\\n[=-]{2,}$' }] }, + { b: '<', e: '>', sL: 'xml', r: 0 }, + { cN: 'bullet', b: '^([*+-]|(\\d+\\.))\\s+' }, + { cN: 'strong', b: '[*_]{2}.+?[*_]{2}' }, + { cN: 'emphasis', v: [{ b: '\\*.+?\\*' }, { b: '_.+?_', r: 0 }] }, + { cN: 'quote', b: '^>\\s+', e: '$' }, + { cN: 'code', v: [{ b: '^```w*s*$', e: '^```s*$' }, { b: '`.+?`' }, { b: '^( {4}| )', e: '$', r: 0 }] }, + { b: '^[-\\*]{3,}', e: '$' }, + { + b: '\\[.+?\\][\\(\\[].*?[\\)\\]]', + rB: !0, + c: [ + { cN: 'string', b: '\\[', e: '\\]', eB: !0, rE: !0, r: 0 }, + { cN: 'link', b: '\\]\\(', e: '\\)', eB: !0, eE: !0 }, + { cN: 'symbol', b: '\\]\\[', e: '\\]', eB: !0, eE: !0 }, + ], + r: 10, + }, + { + b: /^\[[^\n]+\]:/, + rB: !0, + c: [ + { cN: 'symbol', b: /\[/, e: /\]/, eB: !0, eE: !0 }, + { cN: 'link', b: /:\s*/, e: /$/, eB: !0 }, + ], + }, + ], + } +}) +hljs.registerLanguage('java', function (e) { + var t = e.UIR + '(<' + e.UIR + '(\\s*,\\s*' + e.UIR + ')*>)?', + a = + 'false synchronized int abstract float private char boolean static null if const for true while long strictfp finally protected import native final void enum else break transient catch instanceof byte super volatile case assert short package default double public try this switch continue throws protected public private module requires exports', + r = + '\\b(0[bB]([01]+[01_]+[01]+|[01]+)|0[xX]([a-fA-F0-9]+[a-fA-F0-9_]+[a-fA-F0-9]+|[a-fA-F0-9]+)|(([\\d]+[\\d_]+[\\d]+|[\\d]+)(\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))?|\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))([eE][-+]?\\d+)?)[lLfF]?', + s = { cN: 'number', b: r, r: 0 } + return { + aliases: ['jsp'], + k: a, + i: /<\/|#/, + c: [ + e.C('/\\*\\*', '\\*/', { + r: 0, + c: [ + { b: /\w+@/, r: 0 }, + { cN: 'doctag', b: '@[A-Za-z]+' }, + ], + }), + e.CLCM, + e.CBCM, + e.ASM, + e.QSM, + { cN: 'class', bK: 'class interface', e: /[{;=]/, eE: !0, k: 'class interface', i: /[:"\[\]]/, c: [{ bK: 'extends implements' }, e.UTM] }, + { bK: 'new throw return else', r: 0 }, + { + cN: 'function', + b: '(' + t + '\\s+)+' + e.UIR + '\\s*\\(', + rB: !0, + e: /[{;=]/, + eE: !0, + k: a, + c: [ + { b: e.UIR + '\\s*\\(', rB: !0, r: 0, c: [e.UTM] }, + { cN: 'params', b: /\(/, e: /\)/, k: a, r: 0, c: [e.ASM, e.QSM, e.CNM, e.CBCM] }, + e.CLCM, + e.CBCM, + ], + }, + s, + { cN: 'meta', b: '@[A-Za-z]+' }, + ], + } +}) +hljs.registerLanguage('coffeescript', function (e) { + var c = { + keyword: + 'in if for while finally new do return else break catch instanceof throw try this switch continue typeof delete debugger super then unless until loop of by when and or is isnt not', + literal: 'true false null undefined yes no on off', + built_in: 'npm require console print module global window document', + }, + n = '[A-Za-z$_][0-9A-Za-z$_]*', + r = { cN: 'subst', b: /#\{/, e: /}/, k: c }, + s = [ + e.BNM, + e.inherit(e.CNM, { starts: { e: '(\\s*/)?', r: 0 } }), + { + cN: 'string', + v: [ + { b: /'''/, e: /'''/, c: [e.BE] }, + { b: /'/, e: /'/, c: [e.BE] }, + { b: /"""/, e: /"""/, c: [e.BE, r] }, + { b: /"/, e: /"/, c: [e.BE, r] }, + ], + }, + { cN: 'regexp', v: [{ b: '///', e: '///', c: [r, e.HCM] }, { b: '//[gim]*', r: 0 }, { b: /\/(?![ *])(\\\/|.)*?\/[gim]*(?=\W|$)/ }] }, + { b: '@' + n }, + { b: '`', e: '`', eB: !0, eE: !0, sL: 'javascript' }, + ] + r.c = s + var i = e.inherit(e.TM, { b: n }), + t = '(\\(.*\\))?\\s*\\B[-=]>', + o = { cN: 'params', b: '\\([^\\(]', rB: !0, c: [{ b: /\(/, e: /\)/, k: c, c: ['self'].concat(s) }] } + return { + aliases: ['coffee', 'cson', 'iced'], + k: c, + i: /\/\*/, + c: s.concat([ + e.C('###', '###'), + e.HCM, + { cN: 'function', b: '^\\s*' + n + '\\s*=\\s*' + t, e: '[-=]>', rB: !0, c: [i, o] }, + { b: /[:\(,=]\s*/, r: 0, c: [{ cN: 'function', b: t, e: '[-=]>', rB: !0, c: [o] }] }, + { cN: 'class', bK: 'class', e: '$', i: /[:="\[\]]/, c: [{ bK: 'extends', eW: !0, i: /[:="\[\]]/, c: [i] }, i] }, + { b: n + ':', e: ':', rB: !0, rE: !0, r: 0 }, + ]), + } +}) +hljs.registerLanguage('http', function (e) { + var t = 'HTTP/[0-9\\.]+' + return { + aliases: ['https'], + i: '\\S', + c: [ + { b: '^' + t, e: '$', c: [{ cN: 'number', b: '\\b\\d{3}\\b' }] }, + { + b: '^[A-Z]+ (.*?) ' + t + '$', + rB: !0, + e: '$', + c: [{ cN: 'string', b: ' ', e: ' ', eB: !0, eE: !0 }, { b: t }, { cN: 'keyword', b: '[A-Z]+' }], + }, + { cN: 'attribute', b: '^\\w', e: ': ', eE: !0, i: '\\n|\\s|=', starts: { e: '$', r: 0 } }, + { b: '\\n\\n', starts: { sL: [], eW: !0 } }, + ], + } +}) +hljs.registerLanguage('css', function (e) { + var c = '[a-zA-Z-][a-zA-Z0-9_-]*', + t = { + b: /[A-Z\_\.\-]+\s*:/, + rB: !0, + e: ';', + eW: !0, + c: [ + { + cN: 'attribute', + b: /\S/, + e: ':', + eE: !0, + starts: { + eW: !0, + eE: !0, + c: [ + { + b: /[\w-]+\(/, + rB: !0, + c: [ + { cN: 'built_in', b: /[\w-]+/ }, + { b: /\(/, e: /\)/, c: [e.ASM, e.QSM] }, + ], + }, + e.CSSNM, + e.QSM, + e.ASM, + e.CBCM, + { cN: 'number', b: '#[0-9A-Fa-f]+' }, + { cN: 'meta', b: '!important' }, + ], + }, + }, + ], + } + return { + cI: !0, + i: /[=\/|'\$]/, + c: [ + e.CBCM, + { cN: 'selector-id', b: /#[A-Za-z0-9_-]+/ }, + { cN: 'selector-class', b: /\.[A-Za-z0-9_-]+/ }, + { cN: 'selector-attr', b: /\[/, e: /\]/, i: '$' }, + { cN: 'selector-pseudo', b: /:(:)?[a-zA-Z0-9\_\-\+\(\)"'.]+/ }, + { b: '@(font-face|page)', l: '[a-z-]+', k: 'font-face page' }, + { + b: '@', + e: '[{;]', + i: /:/, + c: [ + { cN: 'keyword', b: /\w+/ }, + { b: /\s/, eW: !0, eE: !0, r: 0, c: [e.ASM, e.QSM, e.CSSNM] }, + ], + }, + { cN: 'selector-tag', b: c, r: 0 }, + { b: '{', e: '}', i: /\S/, c: [e.CBCM, t] }, + ], + } +}) +hljs.registerLanguage('sql', function (e) { + var t = e.C('--', '$') + return { + cI: !0, + i: /[<>{}*#]/, + c: [ + { + bK: 'begin end start commit rollback savepoint lock alter create drop rename call delete do handler insert load replace select truncate update set show pragma grant merge describe use explain help declare prepare execute deallocate release unlock purge reset change stop analyze cache flush optimize repair kill install uninstall checksum restore check backup revoke comment', + e: /;/, + eW: !0, + l: /[\w\.]+/, + k: { + keyword: + 'abort abs absolute acc acce accep accept access accessed accessible account acos action activate add addtime admin administer advanced advise aes_decrypt aes_encrypt after agent aggregate ali alia alias allocate allow alter always analyze ancillary and any anydata anydataset anyschema anytype apply archive archived archivelog are as asc ascii asin assembly assertion associate asynchronous at atan atn2 attr attri attrib attribu attribut attribute attributes audit authenticated authentication authid authors auto autoallocate autodblink autoextend automatic availability avg backup badfile basicfile before begin beginning benchmark between bfile bfile_base big bigfile bin binary_double binary_float binlog bit_and bit_count bit_length bit_or bit_xor bitmap blob_base block blocksize body both bound buffer_cache buffer_pool build bulk by byte byteordermark bytes cache caching call calling cancel capacity cascade cascaded case cast catalog category ceil ceiling chain change changed char_base char_length character_length characters characterset charindex charset charsetform charsetid check checksum checksum_agg child choose chr chunk class cleanup clear client clob clob_base clone close cluster_id cluster_probability cluster_set clustering coalesce coercibility col collate collation collect colu colum column column_value columns columns_updated comment commit compact compatibility compiled complete composite_limit compound compress compute concat concat_ws concurrent confirm conn connec connect connect_by_iscycle connect_by_isleaf connect_by_root connect_time connection consider consistent constant constraint constraints constructor container content contents context contributors controlfile conv convert convert_tz corr corr_k corr_s corresponding corruption cos cost count count_big counted covar_pop covar_samp cpu_per_call cpu_per_session crc32 create creation critical cross cube cume_dist curdate current current_date current_time current_timestamp current_user cursor curtime customdatum cycle data database databases datafile datafiles datalength date_add date_cache date_format date_sub dateadd datediff datefromparts datename datepart datetime2fromparts day day_to_second dayname dayofmonth dayofweek dayofyear days db_role_change dbtimezone ddl deallocate declare decode decompose decrement decrypt deduplicate def defa defau defaul default defaults deferred defi defin define degrees delayed delegate delete delete_all delimited demand dense_rank depth dequeue des_decrypt des_encrypt des_key_file desc descr descri describ describe descriptor deterministic diagnostics difference dimension direct_load directory disable disable_all disallow disassociate discardfile disconnect diskgroup distinct distinctrow distribute distributed div do document domain dotnet double downgrade drop dumpfile duplicate duration each edition editionable editions element ellipsis else elsif elt empty enable enable_all enclosed encode encoding encrypt end end-exec endian enforced engine engines enqueue enterprise entityescaping eomonth error errors escaped evalname evaluate event eventdata events except exception exceptions exchange exclude excluding execu execut execute exempt exists exit exp expire explain export export_set extended extent external external_1 external_2 externally extract failed failed_login_attempts failover failure far fast feature_set feature_value fetch field fields file file_name_convert filesystem_like_logging final finish first first_value fixed flash_cache flashback floor flush following follows for forall force form forma format found found_rows freelist freelists freepools fresh from from_base64 from_days ftp full function general generated get get_format get_lock getdate getutcdate global global_name globally go goto grant grants greatest group group_concat group_id grouping grouping_id groups gtid_subtract guarantee guard handler hash hashkeys having hea head headi headin heading heap help hex hierarchy high high_priority hosts hour http id ident_current ident_incr ident_seed identified identity idle_time if ifnull ignore iif ilike ilm immediate import in include including increment index indexes indexing indextype indicator indices inet6_aton inet6_ntoa inet_aton inet_ntoa infile initial initialized initially initrans inmemory inner innodb input insert install instance instantiable instr interface interleaved intersect into invalidate invisible is is_free_lock is_ipv4 is_ipv4_compat is_not is_not_null is_used_lock isdate isnull isolation iterate java join json json_exists keep keep_duplicates key keys kill language large last last_day last_insert_id last_value lax lcase lead leading least leaves left len lenght length less level levels library like like2 like4 likec limit lines link list listagg little ln load load_file lob lobs local localtime localtimestamp locate locator lock locked log log10 log2 logfile logfiles logging logical logical_reads_per_call logoff logon logs long loop low low_priority lower lpad lrtrim ltrim main make_set makedate maketime managed management manual map mapping mask master master_pos_wait match matched materialized max maxextents maximize maxinstances maxlen maxlogfiles maxloghistory maxlogmembers maxsize maxtrans md5 measures median medium member memcompress memory merge microsecond mid migration min minextents minimum mining minus minute minvalue missing mod mode model modification modify module monitoring month months mount move movement multiset mutex name name_const names nan national native natural nav nchar nclob nested never new newline next nextval no no_write_to_binlog noarchivelog noaudit nobadfile nocheck nocompress nocopy nocycle nodelay nodiscardfile noentityescaping noguarantee nokeep nologfile nomapping nomaxvalue nominimize nominvalue nomonitoring none noneditionable nonschema noorder nopr nopro noprom nopromp noprompt norely noresetlogs noreverse normal norowdependencies noschemacheck noswitch not nothing notice notrim novalidate now nowait nth_value nullif nulls num numb numbe nvarchar nvarchar2 object ocicoll ocidate ocidatetime ociduration ociinterval ociloblocator ocinumber ociref ocirefcursor ocirowid ocistring ocitype oct octet_length of off offline offset oid oidindex old on online only opaque open operations operator optimal optimize option optionally or oracle oracle_date oradata ord ordaudio orddicom orddoc order ordimage ordinality ordvideo organization orlany orlvary out outer outfile outline output over overflow overriding package pad parallel parallel_enable parameters parent parse partial partition partitions pascal passing password password_grace_time password_lock_time password_reuse_max password_reuse_time password_verify_function patch path patindex pctincrease pctthreshold pctused pctversion percent percent_rank percentile_cont percentile_disc performance period period_add period_diff permanent physical pi pipe pipelined pivot pluggable plugin policy position post_transaction pow power pragma prebuilt precedes preceding precision prediction prediction_cost prediction_details prediction_probability prediction_set prepare present preserve prior priority private private_sga privileges procedural procedure procedure_analyze processlist profiles project prompt protection public publishingservername purge quarter query quick quiesce quota quotename radians raise rand range rank raw read reads readsize rebuild record records recover recovery recursive recycle redo reduced ref reference referenced references referencing refresh regexp_like register regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy reject rekey relational relative relaylog release release_lock relies_on relocate rely rem remainder rename repair repeat replace replicate replication required reset resetlogs resize resource respect restore restricted result result_cache resumable resume retention return returning returns reuse reverse revoke right rlike role roles rollback rolling rollup round row row_count rowdependencies rowid rownum rows rtrim rules safe salt sample save savepoint sb1 sb2 sb4 scan schema schemacheck scn scope scroll sdo_georaster sdo_topo_geometry search sec_to_time second section securefile security seed segment select self sequence sequential serializable server servererror session session_user sessions_per_user set sets settings sha sha1 sha2 share shared shared_pool short show shrink shutdown si_averagecolor si_colorhistogram si_featurelist si_positionalcolor si_stillimage si_texture siblings sid sign sin size size_t sizes skip slave sleep smalldatetimefromparts smallfile snapshot some soname sort soundex source space sparse spfile split sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_small_result sql_variant_property sqlcode sqldata sqlerror sqlname sqlstate sqrt square standalone standby start starting startup statement static statistics stats_binomial_test stats_crosstab stats_ks_test stats_mode stats_mw_test stats_one_way_anova stats_t_test_ stats_t_test_indep stats_t_test_one stats_t_test_paired stats_wsr_test status std stddev stddev_pop stddev_samp stdev stop storage store stored str str_to_date straight_join strcmp strict string struct stuff style subdate subpartition subpartitions substitutable substr substring subtime subtring_index subtype success sum suspend switch switchoffset switchover sync synchronous synonym sys sys_xmlagg sysasm sysaux sysdate sysdatetimeoffset sysdba sysoper system system_user sysutcdatetime table tables tablespace tan tdo template temporary terminated tertiary_weights test than then thread through tier ties time time_format time_zone timediff timefromparts timeout timestamp timestampadd timestampdiff timezone_abbr timezone_minute timezone_region to to_base64 to_date to_days to_seconds todatetimeoffset trace tracking transaction transactional translate translation treat trigger trigger_nestlevel triggers trim truncate try_cast try_convert try_parse type ub1 ub2 ub4 ucase unarchived unbounded uncompress under undo unhex unicode uniform uninstall union unique unix_timestamp unknown unlimited unlock unpivot unrecoverable unsafe unsigned until untrusted unusable unused update updated upgrade upped upper upsert url urowid usable usage use use_stored_outlines user user_data user_resources users using utc_date utc_timestamp uuid uuid_short validate validate_password_strength validation valist value values var var_samp varcharc vari varia variab variabl variable variables variance varp varraw varrawc varray verify version versions view virtual visible void wait wallet warning warnings week weekday weekofyear wellformed when whene whenev wheneve whenever where while whitespace with within without work wrapped xdb xml xmlagg xmlattributes xmlcast xmlcolattval xmlelement xmlexists xmlforest xmlindex xmlnamespaces xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltype xor year year_to_month years yearweek', + literal: 'true false null', + built_in: + 'array bigint binary bit blob boolean char character date dec decimal float int int8 integer interval number numeric real record serial serial8 smallint text varchar varying void', + }, + c: [ + { cN: 'string', b: "'", e: "'", c: [e.BE, { b: "''" }] }, + { cN: 'string', b: '"', e: '"', c: [e.BE, { b: '""' }] }, + { cN: 'string', b: '`', e: '`', c: [e.BE] }, + e.CNM, + e.CBCM, + t, + ], + }, + e.CBCM, + t, + ], + } +}) +hljs.registerLanguage('makefile', function (e) { + var a = { cN: 'variable', b: /\$\(/, e: /\)/, c: [e.BE] } + return { + aliases: ['mk', 'mak'], + c: [ + e.HCM, + { b: /^\w+\s*\W*=/, rB: !0, r: 0, starts: { e: /\s*\W*=/, eE: !0, starts: { e: /$/, r: 0, c: [a] } } }, + { cN: 'section', b: /^[\w]+:\s*$/ }, + { cN: 'meta', b: /^\.PHONY:/, e: /$/, k: { 'meta-keyword': '.PHONY' }, l: /[\.\w]+/ }, + { b: /^\t+/, e: /$/, r: 0, c: [e.QSM, a] }, + ], + } +}) +hljs.registerLanguage('cs', function (e) { + var i = { + keyword: + 'abstract as base bool break byte case catch char checked const continue decimal default delegate do double else enum event explicit extern finally fixed float for foreach goto if implicit in int interface internal is lock long object operator out override params private protected public readonly ref sbyte sealed short sizeof stackalloc static string struct switch this try typeof uint ulong unchecked unsafe ushort using virtual void volatile while nameof add alias ascending async await by descending dynamic equals from get global group into join let on orderby partial remove select set value var where yield', + literal: 'null false true', + }, + r = { cN: 'string', b: '@"', e: '"', c: [{ b: '""' }] }, + t = e.inherit(r, { i: /\n/ }), + a = { cN: 'subst', b: '{', e: '}', k: i }, + n = e.inherit(a, { i: /\n/ }), + c = { cN: 'string', b: /\$"/, e: '"', i: /\n/, c: [{ b: '{{' }, { b: '}}' }, e.BE, n] }, + s = { cN: 'string', b: /\$@"/, e: '"', c: [{ b: '{{' }, { b: '}}' }, { b: '""' }, a] }, + o = e.inherit(s, { i: /\n/, c: [{ b: '{{' }, { b: '}}' }, { b: '""' }, n] }) + ;((a.c = [s, c, r, e.ASM, e.QSM, e.CNM, e.CBCM]), (n.c = [o, c, t, e.ASM, e.QSM, e.CNM, e.inherit(e.CBCM, { i: /\n/ })])) + var l = { v: [s, c, r, e.ASM, e.QSM] }, + b = e.IR + '(<' + e.IR + '(\\s*,\\s*' + e.IR + ')*>)?(\\[\\])?' + return { + aliases: ['csharp'], + k: i, + i: /::/, + c: [ + e.C('///', '$', { rB: !0, c: [{ cN: 'doctag', v: [{ b: '///', r: 0 }, { b: '<!--|-->' }, { b: '</?', e: '>' }] }] }), + e.CLCM, + e.CBCM, + { cN: 'meta', b: '#', e: '$', k: { 'meta-keyword': 'if else elif endif define undef warning error line region endregion pragma checksum' } }, + l, + e.CNM, + { bK: 'class interface', e: /[{;=]/, i: /[^\s:]/, c: [e.TM, e.CLCM, e.CBCM] }, + { bK: 'namespace', e: /[{;=]/, i: /[^\s:]/, c: [e.inherit(e.TM, { b: '[a-zA-Z](\\.?\\w)*' }), e.CLCM, e.CBCM] }, + { bK: 'new return throw await', r: 0 }, + { + cN: 'function', + b: '(' + b + '\\s+)+' + e.IR + '\\s*\\(', + rB: !0, + e: /[{;=]/, + eE: !0, + k: i, + c: [ + { b: e.IR + '\\s*\\(', rB: !0, c: [e.TM], r: 0 }, + { cN: 'params', b: /\(/, e: /\)/, eB: !0, eE: !0, k: i, r: 0, c: [l, e.CNM, e.CBCM] }, + e.CLCM, + e.CBCM, + ], + }, + ], + } +}) +hljs.registerLanguage('objectivec', function (e) { + var t = { cN: 'built_in', b: '\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\w+' }, + _ = { + keyword: + 'int float while char export sizeof typedef const struct for union unsigned long volatile static bool mutable if do return goto void enum else break extern asm case short default double register explicit signed typename this switch continue wchar_t inline readonly assign readwrite self @synchronized id typeof nonatomic super unichar IBOutlet IBAction strong weak copy in out inout bycopy byref oneway __strong __weak __block __autoreleasing @private @protected @public @try @property @end @throw @catch @finally @autoreleasepool @synthesize @dynamic @selector @optional @required @encode @package @import @defs @compatibility_alias __bridge __bridge_transfer __bridge_retained __bridge_retain __covariant __contravariant __kindof _Nonnull _Nullable _Null_unspecified __FUNCTION__ __PRETTY_FUNCTION__ __attribute__ getter setter retain unsafe_unretained nonnull nullable null_unspecified null_resettable class instancetype NS_DESIGNATED_INITIALIZER NS_UNAVAILABLE NS_REQUIRES_SUPER NS_RETURNS_INNER_POINTER NS_INLINE NS_AVAILABLE NS_DEPRECATED NS_ENUM NS_OPTIONS NS_SWIFT_UNAVAILABLE NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_END NS_REFINED_FOR_SWIFT NS_SWIFT_NAME NS_SWIFT_NOTHROW NS_DURING NS_HANDLER NS_ENDHANDLER NS_VALUERETURN NS_VOIDRETURN', + literal: 'false true FALSE TRUE nil YES NO NULL', + built_in: 'BOOL dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once', + }, + i = /[a-zA-Z@][a-zA-Z0-9_]*/, + n = '@interface @class @protocol @implementation' + return { + aliases: ['mm', 'objc', 'obj-c'], + k: _, + l: i, + i: '</', + c: [ + t, + e.CLCM, + e.CBCM, + e.CNM, + e.QSM, + { + cN: 'string', + v: [ + { b: '@"', e: '"', i: '\\n', c: [e.BE] }, + { b: "'", e: "[^\\\\]'", i: "[^\\\\][^']" }, + ], + }, + { + cN: 'meta', + b: '#', + e: '$', + c: [ + { + cN: 'meta-string', + v: [ + { b: '"', e: '"' }, + { b: '<', e: '>' }, + ], + }, + ], + }, + { cN: 'class', b: '(' + n.split(' ').join('|') + ')\\b', e: '({|$)', eE: !0, k: n, l: i, c: [e.UTM] }, + { b: '\\.' + e.UIR, r: 0 }, + ], + } +}) +hljs.registerLanguage('ini', function (e) { + var b = { + cN: 'string', + c: [e.BE], + v: [ + { b: "'''", e: "'''", r: 10 }, + { b: '"""', e: '"""', r: 10 }, + { b: '"', e: '"' }, + { b: "'", e: "'" }, + ], + } + return { + aliases: ['toml'], + cI: !0, + i: /\S/, + c: [ + e.C(';', '$'), + e.HCM, + { cN: 'section', b: /^\s*\[+/, e: /\]+/ }, + { + b: /^[a-z0-9\[\]_-]+\s*=\s*/, + e: '$', + rB: !0, + c: [ + { cN: 'attr', b: /[a-z0-9\[\]_-]+/ }, + { + b: /=/, + eW: !0, + r: 0, + c: [ + { cN: 'literal', b: /\bon|off|true|false|yes|no\b/ }, + { cN: 'variable', v: [{ b: /\$[\w\d"][\w\d_]*/ }, { b: /\$\{(.*?)}/ }] }, + b, + { cN: 'number', b: /([\+\-]+)?[\d]+_[\d_]+/ }, + e.NM, + ], + }, + ], + }, + ], + } +}) +hljs.registerLanguage('python', function (e) { + var r = { cN: 'meta', b: /^(>>>|\.\.\.) / }, + b = { + cN: 'string', + c: [e.BE], + v: [ + { b: /(u|b)?r?'''/, e: /'''/, c: [r], r: 10 }, + { b: /(u|b)?r?"""/, e: /"""/, c: [r], r: 10 }, + { b: /(u|r|ur)'/, e: /'/, r: 10 }, + { b: /(u|r|ur)"/, e: /"/, r: 10 }, + { b: /(b|br)'/, e: /'/ }, + { b: /(b|br)"/, e: /"/ }, + e.ASM, + e.QSM, + ], + }, + a = { cN: 'number', r: 0, v: [{ b: e.BNR + '[lLjJ]?' }, { b: '\\b(0o[0-7]+)[lLjJ]?' }, { b: e.CNR + '[lLjJ]?' }] }, + l = { cN: 'params', b: /\(/, e: /\)/, c: ['self', r, a, b] } + return { + aliases: ['py', 'gyp'], + k: { + keyword: + 'and elif is global as in if from raise for except finally print import pass return exec else break not with class assert yield try while continue del or def lambda async await nonlocal|10 None True False', + built_in: 'Ellipsis NotImplemented', + }, + i: /(<\/|->|\?)/, + c: [ + r, + a, + b, + e.HCM, + { + v: [ + { cN: 'function', bK: 'def', r: 10 }, + { cN: 'class', bK: 'class' }, + ], + e: /:/, + i: /[${=;\n,]/, + c: [e.UTM, l, { b: /->/, eW: !0, k: 'None' }], + }, + { cN: 'meta', b: /^[\t ]*@/, e: /$/ }, + { b: /\b(print|exec)\(/ }, + ], + } +}) +hljs.registerLanguage('json', function (e) { + var i = { literal: 'true false null' }, + n = [e.QSM, e.CNM], + r = { e: ',', eW: !0, eE: !0, c: n, k: i }, + t = { b: '{', e: '}', c: [{ cN: 'attr', b: /"/, e: /"/, c: [e.BE], i: '\\n' }, e.inherit(r, { b: /:/ })], i: '\\S' }, + c = { b: '\\[', e: '\\]', c: [e.inherit(r)], i: '\\S' } + return (n.splice(n.length, 0, t, c), { c: n, k: i, i: '\\S' }) +}) +hljs.registerLanguage('perl', function (e) { + var t = + 'getpwent getservent quotemeta msgrcv scalar kill dbmclose undef lc ma syswrite tr send umask sysopen shmwrite vec qx utime local oct semctl localtime readpipe do return format read sprintf dbmopen pop getpgrp not getpwnam rewinddir qqfileno qw endprotoent wait sethostent bless s|0 opendir continue each sleep endgrent shutdown dump chomp connect getsockname die socketpair close flock exists index shmgetsub for endpwent redo lstat msgctl setpgrp abs exit select print ref gethostbyaddr unshift fcntl syscall goto getnetbyaddr join gmtime symlink semget splice x|0 getpeername recv log setsockopt cos last reverse gethostbyname getgrnam study formline endhostent times chop length gethostent getnetent pack getprotoent getservbyname rand mkdir pos chmod y|0 substr endnetent printf next open msgsnd readdir use unlink getsockopt getpriority rindex wantarray hex system getservbyport endservent int chr untie rmdir prototype tell listen fork shmread ucfirst setprotoent else sysseek link getgrgid shmctl waitpid unpack getnetbyname reset chdir grep split require caller lcfirst until warn while values shift telldir getpwuid my getprotobynumber delete and sort uc defined srand accept package seekdir getprotobyname semop our rename seek if q|0 chroot sysread setpwent no crypt getc chown sqrt write setnetent setpriority foreach tie sin msgget map stat getlogin unless elsif truncate exec keys glob tied closedirioctl socket readlink eval xor readline binmode setservent eof ord bind alarm pipe atan2 getgrent exp time push setgrent gt lt or ne m|0 break given say state when', + r = { cN: 'subst', b: '[$@]\\{', e: '\\}', k: t }, + s = { b: '->{', e: '}' }, + n = { v: [{ b: /\$\d/ }, { b: /[\$%@](\^\w\b|#\w+(::\w+)*|{\w+}|\w+(::\w*)*)/ }, { b: /[\$%@][^\s\w{]/, r: 0 }] }, + i = [e.BE, r, n], + o = [ + n, + e.HCM, + e.C('^\\=\\w', '\\=cut', { eW: !0 }), + s, + { + cN: 'string', + c: i, + v: [ + { b: 'q[qwxr]?\\s*\\(', e: '\\)', r: 5 }, + { b: 'q[qwxr]?\\s*\\[', e: '\\]', r: 5 }, + { b: 'q[qwxr]?\\s*\\{', e: '\\}', r: 5 }, + { b: 'q[qwxr]?\\s*\\|', e: '\\|', r: 5 }, + { b: 'q[qwxr]?\\s*\\<', e: '\\>', r: 5 }, + { b: 'qw\\s+q', e: 'q', r: 5 }, + { b: "'", e: "'", c: [e.BE] }, + { b: '"', e: '"' }, + { b: '`', e: '`', c: [e.BE] }, + { b: '{\\w+}', c: [], r: 0 }, + { b: '-?\\w+\\s*\\=\\>', c: [], r: 0 }, + ], + }, + { cN: 'number', b: '(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b', r: 0 }, + { + b: '(\\/\\/|' + e.RSR + '|\\b(split|return|print|reverse|grep)\\b)\\s*', + k: 'split return print reverse grep', + r: 0, + c: [ + e.HCM, + { cN: 'regexp', b: '(s|tr|y)/(\\\\.|[^/])*/(\\\\.|[^/])*/[a-z]*', r: 10 }, + { cN: 'regexp', b: '(m|qr)?/', e: '/[a-z]*', c: [e.BE], r: 0 }, + ], + }, + { cN: 'function', bK: 'sub', e: '(\\s*\\(.*?\\))?[;{]', eE: !0, r: 5, c: [e.TM] }, + { b: '-\\w\\b', r: 0 }, + { b: '^__DATA__$', e: '^__END__$', sL: 'mojolicious', c: [{ b: '^@@.*', e: '$', cN: 'comment' }] }, + ] + return ((r.c = o), (s.c = o), { aliases: ['pl', 'pm'], l: /[\w\.]+/, k: t, c: o }) +}) +hljs.registerLanguage('bash', function (e) { + var t = { cN: 'variable', v: [{ b: /\$[\w\d#@][\w\d_]*/ }, { b: /\$\{(.*?)}/ }] }, + s = { cN: 'string', b: /"/, e: /"/, c: [e.BE, t, { cN: 'variable', b: /\$\(/, e: /\)/, c: [e.BE] }] }, + a = { cN: 'string', b: /'/, e: /'/ } + return { + aliases: ['sh', 'zsh'], + l: /-?[a-z\._]+/, + k: { + keyword: 'if then else elif fi for while in do done case esac function', + literal: 'true false', + built_in: + 'break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp', + _: '-ne -eq -lt -gt -f -d -e -s -l -a', + }, + c: [ + { cN: 'meta', b: /^#![^\n]+sh\s*$/, r: 10 }, + { cN: 'function', b: /\w[\w\d_]*\s*\(\s*\)\s*\{/, rB: !0, c: [e.inherit(e.TM, { b: /\w[\w\d_]*/ })], r: 0 }, + e.HCM, + s, + a, + t, + ], + } +}) +hljs.registerLanguage('apache', function (e) { + var r = { cN: 'number', b: '[\\$%]\\d+' } + return { + aliases: ['apacheconf'], + cI: !0, + c: [ + e.HCM, + { cN: 'section', b: '</?', e: '>' }, + { + cN: 'attribute', + b: /\w+/, + r: 0, + k: { + nomarkup: + 'order deny allow setenv rewriterule rewriteengine rewritecond documentroot sethandler errordocument loadmodule options header listen serverroot servername', + }, + starts: { + e: /$/, + r: 0, + k: { literal: 'on off all' }, + c: [{ cN: 'meta', b: '\\s\\[', e: '\\]$' }, { cN: 'variable', b: '[\\$%]\\{', e: '\\}', c: ['self', r] }, r, e.QSM], + }, + }, + ], + i: /\S/, + } +}) +hljs.registerLanguage('ruby', function (e) { + var b = '[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?', + r = { + keyword: + 'and then defined module in return redo if BEGIN retry end for self when next until do begin unless END rescue else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor', + literal: 'true false nil', + }, + c = { cN: 'doctag', b: '@[A-Za-z]+' }, + a = { b: '#<', e: '>' }, + s = [e.C('#', '$', { c: [c] }), e.C('^\\=begin', '^\\=end', { c: [c], r: 10 }), e.C('^__END__', '\\n$')], + n = { cN: 'subst', b: '#\\{', e: '}', k: r }, + t = { + cN: 'string', + c: [e.BE, n], + v: [ + { b: /'/, e: /'/ }, + { b: /"/, e: /"/ }, + { b: /`/, e: /`/ }, + { b: '%[qQwWx]?\\(', e: '\\)' }, + { b: '%[qQwWx]?\\[', e: '\\]' }, + { b: '%[qQwWx]?{', e: '}' }, + { b: '%[qQwWx]?<', e: '>' }, + { b: '%[qQwWx]?/', e: '/' }, + { b: '%[qQwWx]?%', e: '%' }, + { b: '%[qQwWx]?-', e: '-' }, + { b: '%[qQwWx]?\\|', e: '\\|' }, + { b: /\B\?(\\\d{1,3}|\\x[A-Fa-f0-9]{1,2}|\\u[A-Fa-f0-9]{4}|\\?\S)\b/ }, + { b: /<<(-?)\w+$/, e: /^\s*\w+$/ }, + ], + }, + i = { cN: 'params', b: '\\(', e: '\\)', endsParent: !0, k: r }, + d = [ + t, + a, + { + cN: 'class', + bK: 'class module', + e: '$|;', + i: /=/, + c: [e.inherit(e.TM, { b: '[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?' }), { b: '<\\s*', c: [{ b: '(' + e.IR + '::)?' + e.IR }] }].concat(s), + }, + { cN: 'function', bK: 'def', e: '$|;', c: [e.inherit(e.TM, { b: b }), i].concat(s) }, + { b: e.IR + '::' }, + { cN: 'symbol', b: e.UIR + '(\\!|\\?)?:', r: 0 }, + { cN: 'symbol', b: ':(?!\\s)', c: [t, { b: b }], r: 0 }, + { cN: 'number', b: '(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b', r: 0 }, + { b: '(\\$\\W)|((\\$|\\@\\@?)(\\w+))' }, + { cN: 'params', b: /\|/, e: /\|/, k: r }, + { + b: '(' + e.RSR + ')\\s*', + c: [ + a, + { + cN: 'regexp', + c: [e.BE, n], + i: /\n/, + v: [ + { b: '/', e: '/[a-z]*' }, + { b: '%r{', e: '}[a-z]*' }, + { b: '%r\\(', e: '\\)[a-z]*' }, + { b: '%r!', e: '![a-z]*' }, + { b: '%r\\[', e: '\\][a-z]*' }, + ], + }, + ].concat(s), + r: 0, + }, + ].concat(s) + ;((n.c = d), (i.c = d)) + var l = '[>?]>', + o = '[\\w#]+\\(\\w+\\):\\d+:\\d+>', + w = '(\\w+-)?\\d+\\.\\d+\\.\\d(p\\d+)?[^>]+>', + u = [ + { b: /^\s*=>/, starts: { e: '$', c: d } }, + { cN: 'meta', b: '^(' + l + '|' + o + '|' + w + ')', starts: { e: '$', c: d } }, + ] + return { aliases: ['rb', 'gemspec', 'podspec', 'thor', 'irb'], k: r, i: /\/\*/, c: s.concat(u).concat(d) } +}) +hljs.registerLanguage('yaml', function (e) { + var a = { literal: '{ } true false yes no Yes No True False null' }, + b = '^[ \\-]*', + r = '[a-zA-Z_][\\w\\-]*', + t = { cN: 'attr', v: [{ b: b + r + ':' }, { b: b + '"' + r + '":' }, { b: b + "'" + r + "':" }] }, + c = { + cN: 'template-variable', + v: [ + { b: '{{', e: '}}' }, + { b: '%{', e: '}' }, + ], + }, + l = { + cN: 'string', + r: 0, + v: [ + { b: /'/, e: /'/ }, + { b: /"/, e: /"/ }, + ], + c: [e.BE, c], + } + return { + cI: !0, + aliases: ['yml', 'YAML', 'yaml'], + c: [ + t, + { cN: 'meta', b: '^---s*$', r: 10 }, + { cN: 'string', b: '[\\|>] *$', rE: !0, c: l.c, e: t.v[0].b }, + { b: '<%[%=-]?', e: '[%-]?%>', sL: 'ruby', eB: !0, eE: !0, r: 0 }, + { cN: 'type', b: '!!' + e.UIR }, + { cN: 'meta', b: '&' + e.UIR + '$' }, + { cN: 'meta', b: '\\*' + e.UIR + '$' }, + { cN: 'bullet', b: '^ *-', r: 0 }, + l, + e.HCM, + e.CNM, + ], + k: a, + } +}) +hljs.registerLanguage('javascript', function (e) { + var r = '[A-Za-z$_][0-9A-Za-z$_]*', + t = { + keyword: + 'in of if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const export super debugger as async await static import from as', + literal: 'true false null undefined NaN Infinity', + built_in: + 'eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect Promise', + }, + a = { cN: 'number', v: [{ b: '\\b(0[bB][01]+)' }, { b: '\\b(0[oO][0-7]+)' }, { b: e.CNR }], r: 0 }, + n = { cN: 'subst', b: '\\$\\{', e: '\\}', k: t, c: [] }, + c = { cN: 'string', b: '`', e: '`', c: [e.BE, n] } + n.c = [e.ASM, e.QSM, c, a, e.RM] + var s = n.c.concat([e.CBCM, e.CLCM]) + return { + aliases: ['js', 'jsx'], + k: t, + c: [ + { cN: 'meta', r: 10, b: /^\s*['"]use (strict|asm)['"]/ }, + { cN: 'meta', b: /^#!/, e: /$/ }, + e.ASM, + e.QSM, + c, + e.CLCM, + e.CBCM, + a, + { b: /[{,]\s*/, r: 0, c: [{ b: r + '\\s*:', rB: !0, r: 0, c: [{ cN: 'attr', b: r, r: 0 }] }] }, + { + b: '(' + e.RSR + '|\\b(case|return|throw)\\b)\\s*', + k: 'return throw case', + c: [ + e.CLCM, + e.CBCM, + e.RM, + { + cN: 'function', + b: '(\\(.*?\\)|' + r + ')\\s*=>', + rB: !0, + e: '\\s*=>', + c: [{ cN: 'params', v: [{ b: r }, { b: /\(\s*\)/ }, { b: /\(/, e: /\)/, eB: !0, eE: !0, k: t, c: s }] }], + }, + { + b: /</, + e: /(\/\w+|\w+\/)>/, + sL: 'xml', + c: [ + { b: /<\w+\s*\/>/, skip: !0 }, + { b: /<\w+/, e: /(\/\w+|\w+\/)>/, skip: !0, c: [{ b: /<\w+\s*\/>/, skip: !0 }, 'self'] }, + ], + }, + ], + r: 0, + }, + { + cN: 'function', + bK: 'function', + e: /\{/, + eE: !0, + c: [e.inherit(e.TM, { b: r }), { cN: 'params', b: /\(/, e: /\)/, eB: !0, eE: !0, c: s }], + i: /\[|%/, + }, + { b: /\$[(.]/ }, + e.METHOD_GUARD, + { cN: 'class', bK: 'class', e: /[{;=]/, eE: !0, i: /[:"\[\]]/, c: [{ bK: 'extends' }, e.UTM] }, + { bK: 'constructor', e: /\{/, eE: !0 }, + ], + i: /#(?!!)/, + } +}) +hljs.registerLanguage('nginx', function (e) { + var r = { cN: 'variable', v: [{ b: /\$\d+/ }, { b: /\$\{/, e: /}/ }, { b: '[\\$\\@]' + e.UIR }] }, + b = { + eW: !0, + l: '[a-z/_]+', + k: { + literal: + 'on off yes no true false none blocked debug info notice warn error crit select break last permanent redirect kqueue rtsig epoll poll /dev/poll', + }, + r: 0, + i: '=>', + c: [ + e.HCM, + { + cN: 'string', + c: [e.BE, r], + v: [ + { b: /"/, e: /"/ }, + { b: /'/, e: /'/ }, + ], + }, + { b: '([a-z]+):/', e: '\\s', eW: !0, eE: !0, c: [r] }, + { + cN: 'regexp', + c: [e.BE, r], + v: [ + { b: '\\s\\^', e: '\\s|{|;', rE: !0 }, + { b: '~\\*?\\s+', e: '\\s|{|;', rE: !0 }, + { b: '\\*(\\.[a-z\\-]+)+' }, + { b: '([a-z\\-]+\\.)+\\*' }, + ], + }, + { cN: 'number', b: '\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b' }, + { cN: 'number', b: '\\b\\d+[kKmMgGdshdwy]*\\b', r: 0 }, + r, + ], + } + return { + aliases: ['nginxconf'], + c: [ + e.HCM, + { b: e.UIR + '\\s+{', rB: !0, e: '{', c: [{ cN: 'section', b: e.UIR }], r: 0 }, + { b: e.UIR + '\\s', e: ';|{', rB: !0, c: [{ cN: 'attribute', b: e.UIR, starts: b }], r: 0 }, + ], + i: '[^\\s\\}]', + } +}) +hljs.registerLanguage('cpp', function (t) { + var e = { cN: 'keyword', b: '\\b[a-z\\d_]*_t\\b' }, + r = { + cN: 'string', + v: [ + { b: '(u8?|U)?L?"', e: '"', i: '\\n', c: [t.BE] }, + { b: '(u8?|U)?R"', e: '"', c: [t.BE] }, + { b: "'\\\\?.", e: "'", i: '.' }, + ], + }, + s = { + cN: 'number', + v: [ + { b: "\\b(0b[01']+)" }, + { b: "\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)" }, + { b: "(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)" }, + ], + r: 0, + }, + i = { + cN: 'meta', + b: /#\s*[a-z]+\b/, + e: /$/, + k: { 'meta-keyword': 'if else elif endif define undef warning error line pragma ifdef ifndef include' }, + c: [{ b: /\\\n/, r: 0 }, t.inherit(r, { cN: 'meta-string' }), { cN: 'meta-string', b: '<', e: '>', i: '\\n' }, t.CLCM, t.CBCM], + }, + a = t.IR + '\\s*\\(', + c = { + keyword: + 'int float while private char catch import module export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const struct for static_cast|10 union namespace unsigned long volatile static protected bool template mutable if public friend do goto auto void enum else break extern using class asm case typeid short reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete alignof constexpr decltype noexcept static_assert thread_local restrict _Bool complex _Complex _Imaginary atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong atomic_ullong new throw return', + built_in: + 'std string cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap array shared_ptr abort abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr', + literal: 'true false nullptr NULL', + }, + n = [e, t.CLCM, t.CBCM, s, r] + return { + aliases: ['c', 'cc', 'h', 'c++', 'h++', 'hpp'], + k: c, + i: '</', + c: n.concat([ + i, + { + b: '\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<', + e: '>', + k: c, + c: ['self', e], + }, + { b: t.IR + '::', k: c }, + { + v: [ + { b: /=/, e: /;/ }, + { b: /\(/, e: /\)/ }, + { bK: 'new throw return else', e: /;/ }, + ], + k: c, + c: n.concat([{ b: /\(/, e: /\)/, k: c, c: n.concat(['self']), r: 0 }]), + r: 0, + }, + { + cN: 'function', + b: '(' + t.IR + '[\\*&\\s]+)+' + a, + rB: !0, + e: /[{;=]/, + eE: !0, + k: c, + i: /[^\w\s\*&]/, + c: [{ b: a, rB: !0, c: [t.TM], r: 0 }, { cN: 'params', b: /\(/, e: /\)/, k: c, r: 0, c: [t.CLCM, t.CBCM, r, s, e] }, t.CLCM, t.CBCM, i], + }, + ]), + exports: { preprocessor: i, strings: r, k: c }, + } +}) diff --git a/static/vendor/iarna-toml-parse.js b/static/vendor/iarna-toml-parse.js index cb7b21bc4a..a333eac0ab 100644 --- a/static/vendor/iarna-toml-parse.js +++ b/static/vendor/iarna-toml-parse.js @@ -1,1660 +1,1773 @@ -(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.TOML = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){ -(function (global){ -'use strict' -const f = require('./format-num.js') -const DateTime = global.Date - -class Date extends DateTime { - constructor (value) { - super(value) - this.isDate = true - } - toISOString () { - return `${this.getUTCFullYear()}-${f(2, this.getUTCMonth() + 1)}-${f(2, this.getUTCDate())}` - } -} - -module.exports = value => { - const date = new Date(value) - /* istanbul ignore if */ - if (isNaN(date)) { - throw new TypeError('Invalid Datetime') +;(function (f) { + if (typeof exports === 'object' && typeof module !== 'undefined') { + module.exports = f() + } else if (typeof define === 'function' && define.amd) { + define([], f) } else { - return date - } -} - -}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"./format-num.js":5}],2:[function(require,module,exports){ -'use strict' -const f = require('./format-num.js') - -class FloatingDateTime extends Date { - constructor (value) { - super(value + 'Z') - this.isFloating = true - } - toISOString () { - const date = `${this.getUTCFullYear()}-${f(2, this.getUTCMonth() + 1)}-${f(2, this.getUTCDate())}` - const time = `${f(2, this.getUTCHours())}:${f(2, this.getUTCMinutes())}:${f(2, this.getUTCSeconds())}.${f(3, this.getUTCMilliseconds())}` - return `${date}T${time}` - } -} - -module.exports = value => { - const date = new FloatingDateTime(value) - /* istanbul ignore if */ - if (isNaN(date)) { - throw new TypeError('Invalid Datetime') - } else { - return date - } -} - -},{"./format-num.js":5}],3:[function(require,module,exports){ -'use strict' -module.exports = value => { - const date = new Date(value) - /* istanbul ignore if */ - if (isNaN(date)) { - throw new TypeError('Invalid Datetime') - } else { - return date - } -} - -},{}],4:[function(require,module,exports){ -'use strict' -const f = require('./format-num.js') - -class Time extends Date { - constructor (value) { - super(`0000-01-01T${value}Z`) - this.isTime = true - } - toISOString () { - return `${f(2, this.getUTCHours())}:${f(2, this.getUTCMinutes())}:${f(2, this.getUTCSeconds())}.${f(3, this.getUTCMilliseconds())}` - } -} - -module.exports = value => { - const date = new Time(value) - /* istanbul ignore if */ - if (isNaN(date)) { - throw new TypeError('Invalid Datetime') - } else { - return date - } -} - -},{"./format-num.js":5}],5:[function(require,module,exports){ -'use strict' -module.exports = (d, num) => { - num = String(num) - while (num.length < d) num = '0' + num - return num -} - -},{}],6:[function(require,module,exports){ -'use strict' -const ParserEND = 0x110000 -class ParserError extends Error { - /* istanbul ignore next */ - constructor (msg, filename, linenumber) { - super('[ParserError] ' + msg, filename, linenumber) - this.name = 'ParserError' - this.code = 'ParserError' - if (Error.captureStackTrace) Error.captureStackTrace(this, ParserError) - } -} -class State { - constructor (parser) { - this.parser = parser - this.buf = '' - this.returned = null - this.result = null - this.resultTable = null - this.resultArr = null - } -} -class Parser { - constructor () { - this.pos = 0 - this.col = 0 - this.line = 0 - this.obj = {} - this.ctx = this.obj - this.stack = [] - this._buf = '' - this.char = null - this.ii = 0 - this.state = new State(this.parseStart) - } - - parse (str) { - /* istanbul ignore next */ - if (str.length === 0 || str.length == null) return - - this._buf = String(str) - this.ii = -1 - this.char = -1 - let getNext - while (getNext === false || this.nextChar()) { - getNext = this.runOne() + var g + if (typeof window !== 'undefined') { + g = window + } else if (typeof global !== 'undefined') { + g = global + } else if (typeof self !== 'undefined') { + g = self + } else { + g = this } - this._buf = null + g.TOML = f() } - nextChar () { - if (this.char === 0x0A) { - ++this.line - this.col = -1 - } - ++this.ii - this.char = this._buf.codePointAt(this.ii) - ++this.pos - ++this.col - return this.haveBuffer() - } - haveBuffer () { - return this.ii < this._buf.length - } - runOne () { - return this.state.parser.call(this, this.state.returned) - } - finish () { - this.char = ParserEND - let last - do { - last = this.state.parser - this.runOne() - } while (this.state.parser !== last) - - this.ctx = null - this.state = null - this._buf = null - - return this.obj - } - next (fn) { - /* istanbul ignore next */ - if (typeof fn !== 'function') throw new ParserError('Tried to set state to non-existent state: ' + JSON.stringify(fn)) - this.state.parser = fn - } - goto (fn) { - this.next(fn) - return this.runOne() - } - call (fn, returnWith) { - if (returnWith) this.next(returnWith) - this.stack.push(this.state) - this.state = new State(fn) - } - callNow (fn, returnWith) { - this.call(fn, returnWith) - return this.runOne() - } - return (value) { - /* istanbul ignore next */ - if (this.stack.length === 0) throw this.error(new ParserError('Stack underflow')) - if (value === undefined) value = this.state.buf - this.state = this.stack.pop() - this.state.returned = value - } - returnNow (value) { - this.return(value) - return this.runOne() - } - consume () { - /* istanbul ignore next */ - if (this.char === ParserEND) throw this.error(new ParserError('Unexpected end-of-buffer')) - this.state.buf += this._buf[this.ii] - } - error (err) { - err.line = this.line - err.col = this.col - err.pos = this.pos - return err - } - /* istanbul ignore next */ - parseStart () { - throw new ParserError('Must declare a parseStart method') - } -} -Parser.END = ParserEND -Parser.Error = ParserError -module.exports = Parser - -},{}],7:[function(require,module,exports){ -(function (global){ -'use strict' -/* eslint-disable no-new-wrappers, no-eval, camelcase, operator-linebreak */ -module.exports = makeParserClass(require('./parser.js')) -module.exports.makeParserClass = makeParserClass - -class TomlError extends Error { - constructor (msg) { - super(msg) - this.name = 'TomlError' - /* istanbul ignore next */ - if (Error.captureStackTrace) Error.captureStackTrace(this, TomlError) - this.fromTOML = true - this.wrapped = null - } -} -TomlError.wrap = err => { - const terr = new TomlError(err.message) - terr.code = err.code - terr.wrapped = err - return terr -} -module.exports.TomlError = TomlError - -const createDateTime = require('./create-datetime.js') -const createDateTimeFloat = require('./create-datetime-float.js') -const createDate = require('./create-date.js') -const createTime = require('./create-time.js') - -const CTRL_I = 0x09 -const CTRL_J = 0x0A -const CTRL_M = 0x0D -const CTRL_CHAR_BOUNDARY = 0x1F // the last non-character in the latin1 region of unicode, except DEL -const CHAR_SP = 0x20 -const CHAR_QUOT = 0x22 -const CHAR_NUM = 0x23 -const CHAR_APOS = 0x27 -const CHAR_PLUS = 0x2B -const CHAR_COMMA = 0x2C -const CHAR_HYPHEN = 0x2D -const CHAR_PERIOD = 0x2E -const CHAR_0 = 0x30 -const CHAR_1 = 0x31 -const CHAR_7 = 0x37 -const CHAR_9 = 0x39 -const CHAR_COLON = 0x3A -const CHAR_EQUALS = 0x3D -const CHAR_A = 0x41 -const CHAR_E = 0x45 -const CHAR_F = 0x46 -const CHAR_T = 0x54 -const CHAR_U = 0x55 -const CHAR_Z = 0x5A -const CHAR_LOWBAR = 0x5F -const CHAR_a = 0x61 -const CHAR_b = 0x62 -const CHAR_e = 0x65 -const CHAR_f = 0x66 -const CHAR_i = 0x69 -const CHAR_l = 0x6C -const CHAR_n = 0x6E -const CHAR_o = 0x6F -const CHAR_r = 0x72 -const CHAR_s = 0x73 -const CHAR_t = 0x74 -const CHAR_u = 0x75 -const CHAR_x = 0x78 -const CHAR_z = 0x7A -const CHAR_LCUB = 0x7B -const CHAR_RCUB = 0x7D -const CHAR_LSQB = 0x5B -const CHAR_BSOL = 0x5C -const CHAR_RSQB = 0x5D -const CHAR_DEL = 0x7F -const SURROGATE_FIRST = 0xD800 -const SURROGATE_LAST = 0xDFFF - -const escapes = { - [CHAR_b]: '\u0008', - [CHAR_t]: '\u0009', - [CHAR_n]: '\u000A', - [CHAR_f]: '\u000C', - [CHAR_r]: '\u000D', - [CHAR_QUOT]: '\u0022', - [CHAR_BSOL]: '\u005C' -} - -function isDigit (cp) { - return cp >= CHAR_0 && cp <= CHAR_9 -} -function isHexit (cp) { - return (cp >= CHAR_A && cp <= CHAR_F) || (cp >= CHAR_a && cp <= CHAR_f) || (cp >= CHAR_0 && cp <= CHAR_9) -} -function isBit (cp) { - return cp === CHAR_1 || cp === CHAR_0 -} -function isOctit (cp) { - return (cp >= CHAR_0 && cp <= CHAR_7) -} -function isAlphaNumQuoteHyphen (cp) { - return (cp >= CHAR_A && cp <= CHAR_Z) - || (cp >= CHAR_a && cp <= CHAR_z) - || (cp >= CHAR_0 && cp <= CHAR_9) - || cp === CHAR_APOS - || cp === CHAR_QUOT - || cp === CHAR_LOWBAR - || cp === CHAR_HYPHEN -} -function isAlphaNumHyphen (cp) { - return (cp >= CHAR_A && cp <= CHAR_Z) - || (cp >= CHAR_a && cp <= CHAR_z) - || (cp >= CHAR_0 && cp <= CHAR_9) - || cp === CHAR_LOWBAR - || cp === CHAR_HYPHEN -} -const _type = Symbol('type') -const _declared = Symbol('declared') - -const hasOwnProperty = Object.prototype.hasOwnProperty -const defineProperty = Object.defineProperty -const descriptor = {configurable: true, enumerable: true, writable: true, value: undefined} - -function hasKey (obj, key) { - if (hasOwnProperty.call(obj, key)) return true - if (key === '__proto__') defineProperty(obj, '__proto__', descriptor) - return false -} - -const INLINE_TABLE = Symbol('inline-table') -function InlineTable () { - return Object.defineProperties({}, { - [_type]: {value: INLINE_TABLE} - }) -} -function isInlineTable (obj) { - if (obj === null || typeof (obj) !== 'object') return false - return obj[_type] === INLINE_TABLE -} - -const TABLE = Symbol('table') -function Table () { - return Object.defineProperties({}, { - [_type]: {value: TABLE}, - [_declared]: {value: false, writable: true} - }) -} -function isTable (obj) { - if (obj === null || typeof (obj) !== 'object') return false - return obj[_type] === TABLE -} - -const _contentType = Symbol('content-type') -const INLINE_LIST = Symbol('inline-list') -function InlineList (type) { - return Object.defineProperties([], { - [_type]: {value: INLINE_LIST}, - [_contentType]: {value: type} - }) -} -function isInlineList (obj) { - if (obj === null || typeof (obj) !== 'object') return false - return obj[_type] === INLINE_LIST -} - -const LIST = Symbol('list') -function List () { - return Object.defineProperties([], { - [_type]: {value: LIST} - }) -} -function isList (obj) { - if (obj === null || typeof (obj) !== 'object') return false - return obj[_type] === LIST -} - -// in an eval, to let bundlers not slurp in a util proxy -let _custom -try { - const utilInspect = eval("require('util').inspect") - _custom = utilInspect.custom -} catch (_) { - /* eval require not available in transpiled bundle */ -} -/* istanbul ignore next */ -const _inspect = _custom || 'inspect' - -class BoxedBigInt { - constructor (value) { - try { - this.value = global.BigInt.asIntN(64, value) - } catch (_) { - /* istanbul ignore next */ - this.value = null - } - Object.defineProperty(this, _type, {value: INTEGER}) - } - isNaN () { - return this.value === null - } - /* istanbul ignore next */ - toString () { - return String(this.value) - } - /* istanbul ignore next */ - [_inspect] () { - return `[BigInt: ${this.toString()}]}` - } - valueOf () { - return this.value - } -} - -const INTEGER = Symbol('integer') -function Integer (value) { - let num = Number(value) - // -0 is a float thing, not an int thing - if (Object.is(num, -0)) num = 0 - /* istanbul ignore else */ - if (global.BigInt && !Number.isSafeInteger(num)) { - return new BoxedBigInt(value) - } else { - /* istanbul ignore next */ - return Object.defineProperties(new Number(num), { - isNaN: {value: function () { return isNaN(this) }}, - [_type]: {value: INTEGER}, - [_inspect]: {value: () => `[Integer: ${value}]`} - }) - } -} -function isInteger (obj) { - if (obj === null || typeof (obj) !== 'object') return false - return obj[_type] === INTEGER -} - -const FLOAT = Symbol('float') -function Float (value) { - /* istanbul ignore next */ - return Object.defineProperties(new Number(value), { - [_type]: {value: FLOAT}, - [_inspect]: {value: () => `[Float: ${value}]`} - }) -} -function isFloat (obj) { - if (obj === null || typeof (obj) !== 'object') return false - return obj[_type] === FLOAT -} - -function tomlType (value) { - const type = typeof value - if (type === 'object') { - /* istanbul ignore if */ - if (value === null) return 'null' - if (value instanceof Date) return 'datetime' - /* istanbul ignore else */ - if (_type in value) { - switch (value[_type]) { - case INLINE_TABLE: return 'inline-table' - case INLINE_LIST: return 'inline-list' - /* istanbul ignore next */ - case TABLE: return 'table' - /* istanbul ignore next */ - case LIST: return 'list' - case FLOAT: return 'float' - case INTEGER: return 'integer' - } - } - } - return type -} - -function makeParserClass (Parser) { - class TOMLParser extends Parser { - constructor () { - super() - this.ctx = this.obj = Table() - } - - /* MATCH HELPER */ - atEndOfWord () { - return this.char === CHAR_NUM || this.char === CTRL_I || this.char === CHAR_SP || this.atEndOfLine() - } - atEndOfLine () { - return this.char === Parser.END || this.char === CTRL_J || this.char === CTRL_M - } - - parseStart () { - if (this.char === Parser.END) { - return null - } else if (this.char === CHAR_LSQB) { - return this.call(this.parseTableOrList) - } else if (this.char === CHAR_NUM) { - return this.call(this.parseComment) - } else if (this.char === CTRL_J || this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M) { - return null - } else if (isAlphaNumQuoteHyphen(this.char)) { - return this.callNow(this.parseAssignStatement) - } else { - throw this.error(new TomlError(`Unknown character "${this.char}"`)) - } - } - - // HELPER, this strips any whitespace and comments to the end of the line - // then RETURNS. Last state in a production. - parseWhitespaceToEOL () { - if (this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M) { - return null - } else if (this.char === CHAR_NUM) { - return this.goto(this.parseComment) - } else if (this.char === Parser.END || this.char === CTRL_J) { - return this.return() - } else { - throw this.error(new TomlError('Unexpected character, expected only whitespace or comments till end of line')) - } - } - - /* ASSIGNMENT: key = value */ - parseAssignStatement () { - return this.callNow(this.parseAssign, this.recordAssignStatement) - } - recordAssignStatement (kv) { - let target = this.ctx - let finalKey = kv.key.pop() - for (let kw of kv.key) { - if (hasKey(target, kw) && (!isTable(target[kw]) || target[kw][_declared])) { - throw this.error(new TomlError("Can't redefine existing key")) +})(function () { + var define, module, exports + return (function () { + function r(e, n, t) { + function o(i, f) { + if (!n[i]) { + if (!e[i]) { + var c = 'function' == typeof require && require + if (!f && c) return c(i, !0) + if (u) return u(i, !0) + var a = new Error("Cannot find module '" + i + "'") + throw ((a.code = 'MODULE_NOT_FOUND'), a) + } + var p = (n[i] = { exports: {} }) + e[i][0].call( + p.exports, + function (r) { + var n = e[i][1][r] + return o(n || r) + }, + p, + p.exports, + r, + e, + n, + t, + ) } - target = target[kw] = target[kw] || Table() + return n[i].exports } - if (hasKey(target, finalKey)) { - throw this.error(new TomlError("Can't redefine existing key")) - } - // unbox our numbers - if (isInteger(kv.value) || isFloat(kv.value)) { - target[finalKey] = kv.value.valueOf() - } else { - target[finalKey] = kv.value - } - return this.goto(this.parseWhitespaceToEOL) + for (var u = 'function' == typeof require && require, i = 0; i < t.length; i++) o(t[i]) + return o } + return r + })()( + { + 1: [ + function (require, module, exports) { + ;(function (global) { + 'use strict' + const f = require('./format-num.js') + const DateTime = global.Date - /* ASSSIGNMENT expression, key = value possibly inside an inline table */ - parseAssign () { - return this.callNow(this.parseKeyword, this.recordAssignKeyword) - } - recordAssignKeyword (key) { - if (this.state.resultTable) { - this.state.resultTable.push(key) - } else { - this.state.resultTable = [key] - } - return this.goto(this.parseAssignKeywordPreDot) - } - parseAssignKeywordPreDot () { - if (this.char === CHAR_PERIOD) { - return this.next(this.parseAssignKeywordPostDot) - } else if (this.char !== CHAR_SP && this.char !== CTRL_I) { - return this.goto(this.parseAssignEqual) - } - } - parseAssignKeywordPostDot () { - if (this.char !== CHAR_SP && this.char !== CTRL_I) { - return this.callNow(this.parseKeyword, this.recordAssignKeyword) - } - } + class Date extends DateTime { + constructor(value) { + super(value) + this.isDate = true + } + toISOString() { + return `${this.getUTCFullYear()}-${f(2, this.getUTCMonth() + 1)}-${f(2, this.getUTCDate())}` + } + } - parseAssignEqual () { - if (this.char === CHAR_EQUALS) { - return this.next(this.parseAssignPreValue) - } else { - throw this.error(new TomlError('Invalid character, expected "="')) - } - } - parseAssignPreValue () { - if (this.char === CHAR_SP || this.char === CTRL_I) { - return null - } else { - return this.callNow(this.parseValue, this.recordAssignValue) - } - } - recordAssignValue (value) { - return this.returnNow({key: this.state.resultTable, value: value}) - } + module.exports = (value) => { + const date = new Date(value) + /* istanbul ignore if */ + if (isNaN(date)) { + throw new TypeError('Invalid Datetime') + } else { + return date + } + } + }).call(this, typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : {}) + }, + { './format-num.js': 5 }, + ], + 2: [ + function (require, module, exports) { + 'use strict' + const f = require('./format-num.js') - /* COMMENTS: #...eol */ - parseComment () { - do { - if (this.char === Parser.END || this.char === CTRL_J) { - return this.return() - } - } while (this.nextChar()) - } + class FloatingDateTime extends Date { + constructor(value) { + super(value + 'Z') + this.isFloating = true + } + toISOString() { + const date = `${this.getUTCFullYear()}-${f(2, this.getUTCMonth() + 1)}-${f(2, this.getUTCDate())}` + const time = `${f(2, this.getUTCHours())}:${f(2, this.getUTCMinutes())}:${f(2, this.getUTCSeconds())}.${f(3, this.getUTCMilliseconds())}` + return `${date}T${time}` + } + } - /* TABLES AND LISTS, [foo] and [[foo]] */ - parseTableOrList () { - if (this.char === CHAR_LSQB) { - this.next(this.parseList) - } else { - return this.goto(this.parseTable) - } - } + module.exports = (value) => { + const date = new FloatingDateTime(value) + /* istanbul ignore if */ + if (isNaN(date)) { + throw new TypeError('Invalid Datetime') + } else { + return date + } + } + }, + { './format-num.js': 5 }, + ], + 3: [ + function (require, module, exports) { + 'use strict' + module.exports = (value) => { + const date = new Date(value) + /* istanbul ignore if */ + if (isNaN(date)) { + throw new TypeError('Invalid Datetime') + } else { + return date + } + } + }, + {}, + ], + 4: [ + function (require, module, exports) { + 'use strict' + const f = require('./format-num.js') - /* TABLE [foo.bar.baz] */ - parseTable () { - this.ctx = this.obj - return this.goto(this.parseTableNext) - } - parseTableNext () { - if (this.char === CHAR_SP || this.char === CTRL_I) { - return null - } else { - return this.callNow(this.parseKeyword, this.parseTableMore) - } - } - parseTableMore (keyword) { - if (this.char === CHAR_SP || this.char === CTRL_I) { - return null - } else if (this.char === CHAR_RSQB) { - if (hasKey(this.ctx, keyword) && (!isTable(this.ctx[keyword]) || this.ctx[keyword][_declared])) { - throw this.error(new TomlError("Can't redefine existing key")) - } else { - this.ctx = this.ctx[keyword] = this.ctx[keyword] || Table() - this.ctx[_declared] = true - } - return this.next(this.parseWhitespaceToEOL) - } else if (this.char === CHAR_PERIOD) { - if (!hasKey(this.ctx, keyword)) { - this.ctx = this.ctx[keyword] = Table() - } else if (isTable(this.ctx[keyword])) { - this.ctx = this.ctx[keyword] - } else if (isList(this.ctx[keyword])) { - this.ctx = this.ctx[keyword][this.ctx[keyword].length - 1] - } else { - throw this.error(new TomlError("Can't redefine existing key")) - } - return this.next(this.parseTableNext) - } else { - throw this.error(new TomlError('Unexpected character, expected whitespace, . or ]')) - } - } + class Time extends Date { + constructor(value) { + super(`0000-01-01T${value}Z`) + this.isTime = true + } + toISOString() { + return `${f(2, this.getUTCHours())}:${f(2, this.getUTCMinutes())}:${f(2, this.getUTCSeconds())}.${f(3, this.getUTCMilliseconds())}` + } + } - /* LIST [[a.b.c]] */ - parseList () { - this.ctx = this.obj - return this.goto(this.parseListNext) - } - parseListNext () { - if (this.char === CHAR_SP || this.char === CTRL_I) { - return null - } else { - return this.callNow(this.parseKeyword, this.parseListMore) - } - } - parseListMore (keyword) { - if (this.char === CHAR_SP || this.char === CTRL_I) { - return null - } else if (this.char === CHAR_RSQB) { - if (!hasKey(this.ctx, keyword)) { - this.ctx[keyword] = List() - } - if (isInlineList(this.ctx[keyword])) { - throw this.error(new TomlError("Can't extend an inline array")) - } else if (isList(this.ctx[keyword])) { - const next = Table() - this.ctx[keyword].push(next) - this.ctx = next - } else { - throw this.error(new TomlError("Can't redefine an existing key")) - } - return this.next(this.parseListEnd) - } else if (this.char === CHAR_PERIOD) { - if (!hasKey(this.ctx, keyword)) { - this.ctx = this.ctx[keyword] = Table() - } else if (isInlineList(this.ctx[keyword])) { - throw this.error(new TomlError("Can't extend an inline array")) - } else if (isInlineTable(this.ctx[keyword])) { - throw this.error(new TomlError("Can't extend an inline table")) - } else if (isList(this.ctx[keyword])) { - this.ctx = this.ctx[keyword][this.ctx[keyword].length - 1] - } else if (isTable(this.ctx[keyword])) { - this.ctx = this.ctx[keyword] - } else { - throw this.error(new TomlError("Can't redefine an existing key")) - } - return this.next(this.parseListNext) - } else { - throw this.error(new TomlError('Unexpected character, expected whitespace, . or ]')) - } - } - parseListEnd (keyword) { - if (this.char === CHAR_RSQB) { - return this.next(this.parseWhitespaceToEOL) - } else { - throw this.error(new TomlError('Unexpected character, expected whitespace, . or ]')) - } - } + module.exports = (value) => { + const date = new Time(value) + /* istanbul ignore if */ + if (isNaN(date)) { + throw new TypeError('Invalid Datetime') + } else { + return date + } + } + }, + { './format-num.js': 5 }, + ], + 5: [ + function (require, module, exports) { + 'use strict' + module.exports = (d, num) => { + num = String(num) + while (num.length < d) num = '0' + num + return num + } + }, + {}, + ], + 6: [ + function (require, module, exports) { + 'use strict' + const ParserEND = 0x110000 + class ParserError extends Error { + /* istanbul ignore next */ + constructor(msg, filename, linenumber) { + super('[ParserError] ' + msg, filename, linenumber) + this.name = 'ParserError' + this.code = 'ParserError' + if (Error.captureStackTrace) Error.captureStackTrace(this, ParserError) + } + } + class State { + constructor(parser) { + this.parser = parser + this.buf = '' + this.returned = null + this.result = null + this.resultTable = null + this.resultArr = null + } + } + class Parser { + constructor() { + this.pos = 0 + this.col = 0 + this.line = 0 + this.obj = {} + this.ctx = this.obj + this.stack = [] + this._buf = '' + this.char = null + this.ii = 0 + this.state = new State(this.parseStart) + } - /* VALUE string, number, boolean, inline list, inline object */ - parseValue () { - if (this.char === Parser.END) { - throw this.error(new TomlError('Key without value')) - } else if (this.char === CHAR_QUOT) { - return this.next(this.parseDoubleString) - } if (this.char === CHAR_APOS) { - return this.next(this.parseSingleString) - } else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS) { - return this.goto(this.parseNumberSign) - } else if (this.char === CHAR_i) { - return this.next(this.parseInf) - } else if (this.char === CHAR_n) { - return this.next(this.parseNan) - } else if (isDigit(this.char)) { - return this.goto(this.parseNumberOrDateTime) - } else if (this.char === CHAR_t || this.char === CHAR_f) { - return this.goto(this.parseBoolean) - } else if (this.char === CHAR_LSQB) { - return this.call(this.parseInlineList, this.recordValue) - } else if (this.char === CHAR_LCUB) { - return this.call(this.parseInlineTable, this.recordValue) - } else { - throw this.error(new TomlError('Unexpected character, expecting string, number, datetime, boolean, inline array or inline table')) - } - } - recordValue (value) { - return this.returnNow(value) - } + parse(str) { + /* istanbul ignore next */ + if (str.length === 0 || str.length == null) return - parseInf () { - if (this.char === CHAR_n) { - return this.next(this.parseInf2) - } else { - throw this.error(new TomlError('Unexpected character, expected "inf", "+inf" or "-inf"')) - } - } - parseInf2 () { - if (this.char === CHAR_f) { - if (this.state.buf === '-') { - return this.return(-Infinity) - } else { - return this.return(Infinity) - } - } else { - throw this.error(new TomlError('Unexpected character, expected "inf", "+inf" or "-inf"')) - } - } + this._buf = String(str) + this.ii = -1 + this.char = -1 + let getNext + while (getNext === false || this.nextChar()) { + getNext = this.runOne() + } + this._buf = null + } + nextChar() { + if (this.char === 0x0a) { + ++this.line + this.col = -1 + } + ++this.ii + this.char = this._buf.codePointAt(this.ii) + ++this.pos + ++this.col + return this.haveBuffer() + } + haveBuffer() { + return this.ii < this._buf.length + } + runOne() { + return this.state.parser.call(this, this.state.returned) + } + finish() { + this.char = ParserEND + let last + do { + last = this.state.parser + this.runOne() + } while (this.state.parser !== last) - parseNan () { - if (this.char === CHAR_a) { - return this.next(this.parseNan2) - } else { - throw this.error(new TomlError('Unexpected character, expected "nan"')) - } - } - parseNan2 () { - if (this.char === CHAR_n) { - return this.return(NaN) - } else { - throw this.error(new TomlError('Unexpected character, expected "nan"')) - } - } + this.ctx = null + this.state = null + this._buf = null - /* KEYS, barewords or basic, literal, or dotted */ - parseKeyword () { - if (this.char === CHAR_QUOT) { - return this.next(this.parseBasicString) - } else if (this.char === CHAR_APOS) { - return this.next(this.parseLiteralString) - } else { - return this.goto(this.parseBareKey) - } - } + return this.obj + } + next(fn) { + /* istanbul ignore next */ + if (typeof fn !== 'function') throw new ParserError('Tried to set state to non-existent state: ' + JSON.stringify(fn)) + this.state.parser = fn + } + goto(fn) { + this.next(fn) + return this.runOne() + } + call(fn, returnWith) { + if (returnWith) this.next(returnWith) + this.stack.push(this.state) + this.state = new State(fn) + } + callNow(fn, returnWith) { + this.call(fn, returnWith) + return this.runOne() + } + return(value) { + /* istanbul ignore next */ + if (this.stack.length === 0) throw this.error(new ParserError('Stack underflow')) + if (value === undefined) value = this.state.buf + this.state = this.stack.pop() + this.state.returned = value + } + returnNow(value) { + this.return(value) + return this.runOne() + } + consume() { + /* istanbul ignore next */ + if (this.char === ParserEND) throw this.error(new ParserError('Unexpected end-of-buffer')) + this.state.buf += this._buf[this.ii] + } + error(err) { + err.line = this.line + err.col = this.col + err.pos = this.pos + return err + } + /* istanbul ignore next */ + parseStart() { + throw new ParserError('Must declare a parseStart method') + } + } + Parser.END = ParserEND + Parser.Error = ParserError + module.exports = Parser + }, + {}, + ], + 7: [ + function (require, module, exports) { + ;(function (global) { + 'use strict' + /* eslint-disable no-new-wrappers, no-eval, camelcase, operator-linebreak */ + module.exports = makeParserClass(require('./parser.js')) + module.exports.makeParserClass = makeParserClass - /* KEYS: barewords */ - parseBareKey () { - do { - if (this.char === Parser.END) { - throw this.error(new TomlError('Key ended without value')) - } else if (isAlphaNumHyphen(this.char)) { - this.consume() - } else if (this.state.buf.length === 0) { - throw this.error(new TomlError('Empty bare keys are not allowed')) - } else { - return this.returnNow() - } - } while (this.nextChar()) - } + class TomlError extends Error { + constructor(msg) { + super(msg) + this.name = 'TomlError' + /* istanbul ignore next */ + if (Error.captureStackTrace) Error.captureStackTrace(this, TomlError) + this.fromTOML = true + this.wrapped = null + } + } + TomlError.wrap = (err) => { + const terr = new TomlError(err.message) + terr.code = err.code + terr.wrapped = err + return terr + } + module.exports.TomlError = TomlError - /* STRINGS, single quoted (literal) */ - parseSingleString () { - if (this.char === CHAR_APOS) { - return this.next(this.parseLiteralMultiStringMaybe) - } else { - return this.goto(this.parseLiteralString) - } - } - parseLiteralString () { - do { - if (this.char === CHAR_APOS) { - return this.return() - } else if (this.atEndOfLine()) { - throw this.error(new TomlError('Unterminated string')) - } else if (this.char === CHAR_DEL || (this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I)) { - throw this.errorControlCharInString() - } else { - this.consume() - } - } while (this.nextChar()) - } - parseLiteralMultiStringMaybe () { - if (this.char === CHAR_APOS) { - return this.next(this.parseLiteralMultiString) - } else { - return this.returnNow() - } - } - parseLiteralMultiString () { - if (this.char === CTRL_M) { - return null - } else if (this.char === CTRL_J) { - return this.next(this.parseLiteralMultiStringContent) - } else { - return this.goto(this.parseLiteralMultiStringContent) - } - } - parseLiteralMultiStringContent () { - do { - if (this.char === CHAR_APOS) { - return this.next(this.parseLiteralMultiEnd) - } else if (this.char === Parser.END) { - throw this.error(new TomlError('Unterminated multi-line string')) - } else if (this.char === CHAR_DEL || (this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I && this.char !== CTRL_J && this.char !== CTRL_M)) { - throw this.errorControlCharInString() - } else { - this.consume() - } - } while (this.nextChar()) - } - parseLiteralMultiEnd () { - if (this.char === CHAR_APOS) { - return this.next(this.parseLiteralMultiEnd2) - } else { - this.state.buf += "'" - return this.goto(this.parseLiteralMultiStringContent) - } - } - parseLiteralMultiEnd2 () { - if (this.char === CHAR_APOS) { - return this.return() - } else { - this.state.buf += "''" - return this.goto(this.parseLiteralMultiStringContent) - } - } + const createDateTime = require('./create-datetime.js') + const createDateTimeFloat = require('./create-datetime-float.js') + const createDate = require('./create-date.js') + const createTime = require('./create-time.js') - /* STRINGS double quoted */ - parseDoubleString () { - if (this.char === CHAR_QUOT) { - return this.next(this.parseMultiStringMaybe) - } else { - return this.goto(this.parseBasicString) - } - } - parseBasicString () { - do { - if (this.char === CHAR_BSOL) { - return this.call(this.parseEscape, this.recordEscapeReplacement) - } else if (this.char === CHAR_QUOT) { - return this.return() - } else if (this.atEndOfLine()) { - throw this.error(new TomlError('Unterminated string')) - } else if (this.char === CHAR_DEL || (this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I)) { - throw this.errorControlCharInString() - } else { - this.consume() - } - } while (this.nextChar()) - } - recordEscapeReplacement (replacement) { - this.state.buf += replacement - return this.goto(this.parseBasicString) - } - parseMultiStringMaybe () { - if (this.char === CHAR_QUOT) { - return this.next(this.parseMultiString) - } else { - return this.returnNow() - } - } - parseMultiString () { - if (this.char === CTRL_M) { - return null - } else if (this.char === CTRL_J) { - return this.next(this.parseMultiStringContent) - } else { - return this.goto(this.parseMultiStringContent) - } - } - parseMultiStringContent () { - do { - if (this.char === CHAR_BSOL) { - return this.call(this.parseMultiEscape, this.recordMultiEscapeReplacement) - } else if (this.char === CHAR_QUOT) { - return this.next(this.parseMultiEnd) - } else if (this.char === Parser.END) { - throw this.error(new TomlError('Unterminated multi-line string')) - } else if (this.char === CHAR_DEL || (this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I && this.char !== CTRL_J && this.char !== CTRL_M)) { - throw this.errorControlCharInString() - } else { - this.consume() - } - } while (this.nextChar()) - } - errorControlCharInString () { - let displayCode = '\\u00' - if (this.char < 16) { - displayCode += '0' - } - displayCode += this.char.toString(16) + const CTRL_I = 0x09 + const CTRL_J = 0x0a + const CTRL_M = 0x0d + const CTRL_CHAR_BOUNDARY = 0x1f // the last non-character in the latin1 region of unicode, except DEL + const CHAR_SP = 0x20 + const CHAR_QUOT = 0x22 + const CHAR_NUM = 0x23 + const CHAR_APOS = 0x27 + const CHAR_PLUS = 0x2b + const CHAR_COMMA = 0x2c + const CHAR_HYPHEN = 0x2d + const CHAR_PERIOD = 0x2e + const CHAR_0 = 0x30 + const CHAR_1 = 0x31 + const CHAR_7 = 0x37 + const CHAR_9 = 0x39 + const CHAR_COLON = 0x3a + const CHAR_EQUALS = 0x3d + const CHAR_A = 0x41 + const CHAR_E = 0x45 + const CHAR_F = 0x46 + const CHAR_T = 0x54 + const CHAR_U = 0x55 + const CHAR_Z = 0x5a + const CHAR_LOWBAR = 0x5f + const CHAR_a = 0x61 + const CHAR_b = 0x62 + const CHAR_e = 0x65 + const CHAR_f = 0x66 + const CHAR_i = 0x69 + const CHAR_l = 0x6c + const CHAR_n = 0x6e + const CHAR_o = 0x6f + const CHAR_r = 0x72 + const CHAR_s = 0x73 + const CHAR_t = 0x74 + const CHAR_u = 0x75 + const CHAR_x = 0x78 + const CHAR_z = 0x7a + const CHAR_LCUB = 0x7b + const CHAR_RCUB = 0x7d + const CHAR_LSQB = 0x5b + const CHAR_BSOL = 0x5c + const CHAR_RSQB = 0x5d + const CHAR_DEL = 0x7f + const SURROGATE_FIRST = 0xd800 + const SURROGATE_LAST = 0xdfff - return this.error(new TomlError(`Control characters (codes < 0x1f and 0x7f) are not allowed in strings, use ${displayCode} instead`)) - } - recordMultiEscapeReplacement (replacement) { - this.state.buf += replacement - return this.goto(this.parseMultiStringContent) - } - parseMultiEnd () { - if (this.char === CHAR_QUOT) { - return this.next(this.parseMultiEnd2) - } else { - this.state.buf += '"' - return this.goto(this.parseMultiStringContent) - } - } - parseMultiEnd2 () { - if (this.char === CHAR_QUOT) { - return this.return() - } else { - this.state.buf += '""' - return this.goto(this.parseMultiStringContent) - } - } - parseMultiEscape () { - if (this.char === CTRL_M || this.char === CTRL_J) { - return this.next(this.parseMultiTrim) - } else if (this.char === CHAR_SP || this.char === CTRL_I) { - return this.next(this.parsePreMultiTrim) - } else { - return this.goto(this.parseEscape) - } - } - parsePreMultiTrim () { - if (this.char === CHAR_SP || this.char === CTRL_I) { - return null - } else if (this.char === CTRL_M || this.char === CTRL_J) { - return this.next(this.parseMultiTrim) - } else { - throw this.error(new TomlError("Can't escape whitespace")) - } - } - parseMultiTrim () { - // explicitly whitespace here, END should follow the same path as chars - if (this.char === CTRL_J || this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M) { - return null - } else { - return this.returnNow() - } - } - parseEscape () { - if (this.char in escapes) { - return this.return(escapes[this.char]) - } else if (this.char === CHAR_u) { - return this.call(this.parseSmallUnicode, this.parseUnicodeReturn) - } else if (this.char === CHAR_U) { - return this.call(this.parseLargeUnicode, this.parseUnicodeReturn) - } else { - throw this.error(new TomlError('Unknown escape character: ' + this.char)) - } - } - parseUnicodeReturn (char) { - try { - const codePoint = parseInt(char, 16) - if (codePoint >= SURROGATE_FIRST && codePoint <= SURROGATE_LAST) { - throw this.error(new TomlError('Invalid unicode, character in range 0xD800 - 0xDFFF is reserved')) - } - return this.returnNow(String.fromCodePoint(codePoint)) - } catch (err) { - throw this.error(TomlError.wrap(err)) - } - } - parseSmallUnicode () { - if (!isHexit(this.char)) { - throw this.error(new TomlError('Invalid character in unicode sequence, expected hex')) - } else { - this.consume() - if (this.state.buf.length >= 4) return this.return() - } - } - parseLargeUnicode () { - if (!isHexit(this.char)) { - throw this.error(new TomlError('Invalid character in unicode sequence, expected hex')) - } else { - this.consume() - if (this.state.buf.length >= 8) return this.return() - } - } + const escapes = { + [CHAR_b]: '\u0008', + [CHAR_t]: '\u0009', + [CHAR_n]: '\u000A', + [CHAR_f]: '\u000C', + [CHAR_r]: '\u000D', + [CHAR_QUOT]: '\u0022', + [CHAR_BSOL]: '\u005C', + } - /* NUMBERS */ - parseNumberSign () { - this.consume() - return this.next(this.parseMaybeSignedInfOrNan) - } - parseMaybeSignedInfOrNan () { - if (this.char === CHAR_i) { - return this.next(this.parseInf) - } else if (this.char === CHAR_n) { - return this.next(this.parseNan) - } else { - return this.callNow(this.parseNoUnder, this.parseNumberIntegerStart) - } - } - parseNumberIntegerStart () { - if (this.char === CHAR_0) { - this.consume() - return this.next(this.parseNumberIntegerExponentOrDecimal) - } else { - return this.goto(this.parseNumberInteger) - } - } - parseNumberIntegerExponentOrDecimal () { - if (this.char === CHAR_PERIOD) { - this.consume() - return this.call(this.parseNoUnder, this.parseNumberFloat) - } else if (this.char === CHAR_E || this.char === CHAR_e) { - this.consume() - return this.next(this.parseNumberExponentSign) - } else { - return this.returnNow(Integer(this.state.buf)) - } - } - parseNumberInteger () { - if (isDigit(this.char)) { - this.consume() - } else if (this.char === CHAR_LOWBAR) { - return this.call(this.parseNoUnder) - } else if (this.char === CHAR_E || this.char === CHAR_e) { - this.consume() - return this.next(this.parseNumberExponentSign) - } else if (this.char === CHAR_PERIOD) { - this.consume() - return this.call(this.parseNoUnder, this.parseNumberFloat) - } else { - const result = Integer(this.state.buf) - /* istanbul ignore if */ - if (result.isNaN()) { - throw this.error(new TomlError('Invalid number')) - } else { - return this.returnNow(result) - } - } - } - parseNoUnder () { - if (this.char === CHAR_LOWBAR || this.char === CHAR_PERIOD || this.char === CHAR_E || this.char === CHAR_e) { - throw this.error(new TomlError('Unexpected character, expected digit')) - } else if (this.atEndOfWord()) { - throw this.error(new TomlError('Incomplete number')) - } - return this.returnNow() - } - parseNumberFloat () { - if (this.char === CHAR_LOWBAR) { - return this.call(this.parseNoUnder, this.parseNumberFloat) - } else if (isDigit(this.char)) { - this.consume() - } else if (this.char === CHAR_E || this.char === CHAR_e) { - this.consume() - return this.next(this.parseNumberExponentSign) - } else { - return this.returnNow(Float(this.state.buf)) - } - } - parseNumberExponentSign () { - if (isDigit(this.char)) { - return this.goto(this.parseNumberExponent) - } else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS) { - this.consume() - this.call(this.parseNoUnder, this.parseNumberExponent) - } else { - throw this.error(new TomlError('Unexpected character, expected -, + or digit')) - } - } - parseNumberExponent () { - if (isDigit(this.char)) { - this.consume() - } else if (this.char === CHAR_LOWBAR) { - return this.call(this.parseNoUnder) - } else { - return this.returnNow(Float(this.state.buf)) - } - } + function isDigit(cp) { + return cp >= CHAR_0 && cp <= CHAR_9 + } + function isHexit(cp) { + return (cp >= CHAR_A && cp <= CHAR_F) || (cp >= CHAR_a && cp <= CHAR_f) || (cp >= CHAR_0 && cp <= CHAR_9) + } + function isBit(cp) { + return cp === CHAR_1 || cp === CHAR_0 + } + function isOctit(cp) { + return cp >= CHAR_0 && cp <= CHAR_7 + } + function isAlphaNumQuoteHyphen(cp) { + return ( + (cp >= CHAR_A && cp <= CHAR_Z) || + (cp >= CHAR_a && cp <= CHAR_z) || + (cp >= CHAR_0 && cp <= CHAR_9) || + cp === CHAR_APOS || + cp === CHAR_QUOT || + cp === CHAR_LOWBAR || + cp === CHAR_HYPHEN + ) + } + function isAlphaNumHyphen(cp) { + return ( + (cp >= CHAR_A && cp <= CHAR_Z) || + (cp >= CHAR_a && cp <= CHAR_z) || + (cp >= CHAR_0 && cp <= CHAR_9) || + cp === CHAR_LOWBAR || + cp === CHAR_HYPHEN + ) + } + const _type = Symbol('type') + const _declared = Symbol('declared') - /* NUMBERS or DATETIMES */ - parseNumberOrDateTime () { - if (this.char === CHAR_0) { - this.consume() - return this.next(this.parseNumberBaseOrDateTime) - } else { - return this.goto(this.parseNumberOrDateTimeOnly) - } - } - parseNumberOrDateTimeOnly () { - // note, if two zeros are in a row then it MUST be a date - if (this.char === CHAR_LOWBAR) { - return this.call(this.parseNoUnder, this.parseNumberInteger) - } else if (isDigit(this.char)) { - this.consume() - if (this.state.buf.length > 4) this.next(this.parseNumberInteger) - } else if (this.char === CHAR_E || this.char === CHAR_e) { - this.consume() - return this.next(this.parseNumberExponentSign) - } else if (this.char === CHAR_PERIOD) { - this.consume() - return this.call(this.parseNoUnder, this.parseNumberFloat) - } else if (this.char === CHAR_HYPHEN) { - return this.goto(this.parseDateTime) - } else if (this.char === CHAR_COLON) { - return this.goto(this.parseOnlyTimeHour) - } else { - return this.returnNow(Integer(this.state.buf)) - } - } - parseDateTimeOnly () { - if (this.state.buf.length < 4) { - if (isDigit(this.char)) { - return this.consume() - } else if (this.char === CHAR_COLON) { - return this.goto(this.parseOnlyTimeHour) - } else { - throw this.error(new TomlError('Expected digit while parsing year part of a date')) - } - } else { - if (this.char === CHAR_HYPHEN) { - return this.goto(this.parseDateTime) - } else { - throw this.error(new TomlError('Expected hyphen (-) while parsing year part of date')) - } - } - } - parseNumberBaseOrDateTime () { - if (this.char === CHAR_b) { - this.consume() - return this.call(this.parseNoUnder, this.parseIntegerBin) - } else if (this.char === CHAR_o) { - this.consume() - return this.call(this.parseNoUnder, this.parseIntegerOct) - } else if (this.char === CHAR_x) { - this.consume() - return this.call(this.parseNoUnder, this.parseIntegerHex) - } else if (this.char === CHAR_PERIOD) { - return this.goto(this.parseNumberInteger) - } else if (isDigit(this.char)) { - return this.goto(this.parseDateTimeOnly) - } else { - return this.returnNow(Integer(this.state.buf)) - } - } - parseIntegerHex () { - if (isHexit(this.char)) { - this.consume() - } else if (this.char === CHAR_LOWBAR) { - return this.call(this.parseNoUnder) - } else { - const result = Integer(this.state.buf) - /* istanbul ignore if */ - if (result.isNaN()) { - throw this.error(new TomlError('Invalid number')) - } else { - return this.returnNow(result) - } - } - } - parseIntegerOct () { - if (isOctit(this.char)) { - this.consume() - } else if (this.char === CHAR_LOWBAR) { - return this.call(this.parseNoUnder) - } else { - const result = Integer(this.state.buf) - /* istanbul ignore if */ - if (result.isNaN()) { - throw this.error(new TomlError('Invalid number')) - } else { - return this.returnNow(result) - } - } - } - parseIntegerBin () { - if (isBit(this.char)) { - this.consume() - } else if (this.char === CHAR_LOWBAR) { - return this.call(this.parseNoUnder) - } else { - const result = Integer(this.state.buf) - /* istanbul ignore if */ - if (result.isNaN()) { - throw this.error(new TomlError('Invalid number')) - } else { - return this.returnNow(result) - } - } - } + const hasOwnProperty = Object.prototype.hasOwnProperty + const defineProperty = Object.defineProperty + const descriptor = { configurable: true, enumerable: true, writable: true, value: undefined } - /* DATETIME */ - parseDateTime () { - // we enter here having just consumed the year and about to consume the hyphen - if (this.state.buf.length < 4) { - throw this.error(new TomlError('Years less than 1000 must be zero padded to four characters')) - } - this.state.result = this.state.buf - this.state.buf = '' - return this.next(this.parseDateMonth) - } - parseDateMonth () { - if (this.char === CHAR_HYPHEN) { - if (this.state.buf.length < 2) { - throw this.error(new TomlError('Months less than 10 must be zero padded to two characters')) - } - this.state.result += '-' + this.state.buf - this.state.buf = '' - return this.next(this.parseDateDay) - } else if (isDigit(this.char)) { - this.consume() - } else { - throw this.error(new TomlError('Incomplete datetime')) - } - } - parseDateDay () { - if (this.char === CHAR_T || this.char === CHAR_SP) { - if (this.state.buf.length < 2) { - throw this.error(new TomlError('Days less than 10 must be zero padded to two characters')) - } - this.state.result += '-' + this.state.buf - this.state.buf = '' - return this.next(this.parseStartTimeHour) - } else if (this.atEndOfWord()) { - return this.return(createDate(this.state.result + '-' + this.state.buf)) - } else if (isDigit(this.char)) { - this.consume() - } else { - throw this.error(new TomlError('Incomplete datetime')) - } - } - parseStartTimeHour () { - if (this.atEndOfWord()) { - return this.returnNow(createDate(this.state.result)) - } else { - return this.goto(this.parseTimeHour) - } - } - parseTimeHour () { - if (this.char === CHAR_COLON) { - if (this.state.buf.length < 2) { - throw this.error(new TomlError('Hours less than 10 must be zero padded to two characters')) - } - this.state.result += 'T' + this.state.buf - this.state.buf = '' - return this.next(this.parseTimeMin) - } else if (isDigit(this.char)) { - this.consume() - } else { - throw this.error(new TomlError('Incomplete datetime')) - } - } - parseTimeMin () { - if (this.state.buf.length < 2 && isDigit(this.char)) { - this.consume() - } else if (this.state.buf.length === 2 && this.char === CHAR_COLON) { - this.state.result += ':' + this.state.buf - this.state.buf = '' - return this.next(this.parseTimeSec) - } else { - throw this.error(new TomlError('Incomplete datetime')) - } - } - parseTimeSec () { - if (isDigit(this.char)) { - this.consume() - if (this.state.buf.length === 2) { - this.state.result += ':' + this.state.buf - this.state.buf = '' - return this.next(this.parseTimeZoneOrFraction) - } - } else { - throw this.error(new TomlError('Incomplete datetime')) - } - } + function hasKey(obj, key) { + if (hasOwnProperty.call(obj, key)) return true + if (key === '__proto__') defineProperty(obj, '__proto__', descriptor) + return false + } - parseOnlyTimeHour () { - /* istanbul ignore else */ - if (this.char === CHAR_COLON) { - if (this.state.buf.length < 2) { - throw this.error(new TomlError('Hours less than 10 must be zero padded to two characters')) - } - this.state.result = this.state.buf - this.state.buf = '' - return this.next(this.parseOnlyTimeMin) - } else { - throw this.error(new TomlError('Incomplete time')) - } - } - parseOnlyTimeMin () { - if (this.state.buf.length < 2 && isDigit(this.char)) { - this.consume() - } else if (this.state.buf.length === 2 && this.char === CHAR_COLON) { - this.state.result += ':' + this.state.buf - this.state.buf = '' - return this.next(this.parseOnlyTimeSec) - } else { - throw this.error(new TomlError('Incomplete time')) - } - } - parseOnlyTimeSec () { - if (isDigit(this.char)) { - this.consume() - if (this.state.buf.length === 2) { - return this.next(this.parseOnlyTimeFractionMaybe) - } - } else { - throw this.error(new TomlError('Incomplete time')) - } - } - parseOnlyTimeFractionMaybe () { - this.state.result += ':' + this.state.buf - if (this.char === CHAR_PERIOD) { - this.state.buf = '' - this.next(this.parseOnlyTimeFraction) - } else { - return this.return(createTime(this.state.result)) - } - } - parseOnlyTimeFraction () { - if (isDigit(this.char)) { - this.consume() - } else if (this.atEndOfWord()) { - if (this.state.buf.length === 0) throw this.error(new TomlError('Expected digit in milliseconds')) - return this.returnNow(createTime(this.state.result + '.' + this.state.buf)) - } else { - throw this.error(new TomlError('Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z')) - } - } + const INLINE_TABLE = Symbol('inline-table') + function InlineTable() { + return Object.defineProperties( + {}, + { + [_type]: { value: INLINE_TABLE }, + }, + ) + } + function isInlineTable(obj) { + if (obj === null || typeof obj !== 'object') return false + return obj[_type] === INLINE_TABLE + } - parseTimeZoneOrFraction () { - if (this.char === CHAR_PERIOD) { - this.consume() - this.next(this.parseDateTimeFraction) - } else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS) { - this.consume() - this.next(this.parseTimeZoneHour) - } else if (this.char === CHAR_Z) { - this.consume() - return this.return(createDateTime(this.state.result + this.state.buf)) - } else if (this.atEndOfWord()) { - return this.returnNow(createDateTimeFloat(this.state.result + this.state.buf)) - } else { - throw this.error(new TomlError('Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z')) - } - } - parseDateTimeFraction () { - if (isDigit(this.char)) { - this.consume() - } else if (this.state.buf.length === 1) { - throw this.error(new TomlError('Expected digit in milliseconds')) - } else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS) { - this.consume() - this.next(this.parseTimeZoneHour) - } else if (this.char === CHAR_Z) { - this.consume() - return this.return(createDateTime(this.state.result + this.state.buf)) - } else if (this.atEndOfWord()) { - return this.returnNow(createDateTimeFloat(this.state.result + this.state.buf)) - } else { - throw this.error(new TomlError('Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z')) - } - } - parseTimeZoneHour () { - if (isDigit(this.char)) { - this.consume() - // FIXME: No more regexps - if (/\d\d$/.test(this.state.buf)) return this.next(this.parseTimeZoneSep) - } else { - throw this.error(new TomlError('Unexpected character in datetime, expected digit')) - } - } - parseTimeZoneSep () { - if (this.char === CHAR_COLON) { - this.consume() - this.next(this.parseTimeZoneMin) - } else { - throw this.error(new TomlError('Unexpected character in datetime, expected colon')) - } - } - parseTimeZoneMin () { - if (isDigit(this.char)) { - this.consume() - if (/\d\d$/.test(this.state.buf)) return this.return(createDateTime(this.state.result + this.state.buf)) - } else { - throw this.error(new TomlError('Unexpected character in datetime, expected digit')) - } - } + const TABLE = Symbol('table') + function Table() { + return Object.defineProperties( + {}, + { + [_type]: { value: TABLE }, + [_declared]: { value: false, writable: true }, + }, + ) + } + function isTable(obj) { + if (obj === null || typeof obj !== 'object') return false + return obj[_type] === TABLE + } - /* BOOLEAN */ - parseBoolean () { - /* istanbul ignore else */ - if (this.char === CHAR_t) { - this.consume() - return this.next(this.parseTrue_r) - } else if (this.char === CHAR_f) { - this.consume() - return this.next(this.parseFalse_a) - } - } - parseTrue_r () { - if (this.char === CHAR_r) { - this.consume() - return this.next(this.parseTrue_u) - } else { - throw this.error(new TomlError('Invalid boolean, expected true or false')) - } - } - parseTrue_u () { - if (this.char === CHAR_u) { - this.consume() - return this.next(this.parseTrue_e) - } else { - throw this.error(new TomlError('Invalid boolean, expected true or false')) - } - } - parseTrue_e () { - if (this.char === CHAR_e) { - return this.return(true) - } else { - throw this.error(new TomlError('Invalid boolean, expected true or false')) - } - } + const _contentType = Symbol('content-type') + const INLINE_LIST = Symbol('inline-list') + function InlineList(type) { + return Object.defineProperties([], { + [_type]: { value: INLINE_LIST }, + [_contentType]: { value: type }, + }) + } + function isInlineList(obj) { + if (obj === null || typeof obj !== 'object') return false + return obj[_type] === INLINE_LIST + } - parseFalse_a () { - if (this.char === CHAR_a) { - this.consume() - return this.next(this.parseFalse_l) - } else { - throw this.error(new TomlError('Invalid boolean, expected true or false')) - } - } + const LIST = Symbol('list') + function List() { + return Object.defineProperties([], { + [_type]: { value: LIST }, + }) + } + function isList(obj) { + if (obj === null || typeof obj !== 'object') return false + return obj[_type] === LIST + } - parseFalse_l () { - if (this.char === CHAR_l) { - this.consume() - return this.next(this.parseFalse_s) - } else { - throw this.error(new TomlError('Invalid boolean, expected true or false')) - } - } + // in an eval, to let bundlers not slurp in a util proxy + let _custom + try { + const utilInspect = eval("require('util').inspect") + _custom = utilInspect.custom + } catch (_) { + /* eval require not available in transpiled bundle */ + } + /* istanbul ignore next */ + const _inspect = _custom || 'inspect' - parseFalse_s () { - if (this.char === CHAR_s) { - this.consume() - return this.next(this.parseFalse_e) - } else { - throw this.error(new TomlError('Invalid boolean, expected true or false')) - } - } + class BoxedBigInt { + constructor(value) { + try { + this.value = global.BigInt.asIntN(64, value) + } catch (_) { + /* istanbul ignore next */ + this.value = null + } + Object.defineProperty(this, _type, { value: INTEGER }) + } + isNaN() { + return this.value === null + } + /* istanbul ignore next */ + toString() { + return String(this.value) + } + /* istanbul ignore next */ + [_inspect]() { + return `[BigInt: ${this.toString()}]}` + } + valueOf() { + return this.value + } + } - parseFalse_e () { - if (this.char === CHAR_e) { - return this.return(false) - } else { - throw this.error(new TomlError('Invalid boolean, expected true or false')) - } - } + const INTEGER = Symbol('integer') + function Integer(value) { + let num = Number(value) + // -0 is a float thing, not an int thing + if (Object.is(num, -0)) num = 0 + /* istanbul ignore else */ + if (global.BigInt && !Number.isSafeInteger(num)) { + return new BoxedBigInt(value) + } else { + /* istanbul ignore next */ + return Object.defineProperties(new Number(num), { + isNaN: { + value: function () { + return isNaN(this) + }, + }, + [_type]: { value: INTEGER }, + [_inspect]: { value: () => `[Integer: ${value}]` }, + }) + } + } + function isInteger(obj) { + if (obj === null || typeof obj !== 'object') return false + return obj[_type] === INTEGER + } - /* INLINE LISTS */ - parseInlineList () { - if (this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M || this.char === CTRL_J) { - return null - } else if (this.char === Parser.END) { - throw this.error(new TomlError('Unterminated inline array')) - } else if (this.char === CHAR_NUM) { - return this.call(this.parseComment) - } else if (this.char === CHAR_RSQB) { - return this.return(this.state.resultArr || InlineList()) - } else { - return this.callNow(this.parseValue, this.recordInlineListValue) - } - } - recordInlineListValue (value) { - if (this.state.resultArr) { - const listType = this.state.resultArr[_contentType] - const valueType = tomlType(value) - if (listType !== valueType) { - throw this.error(new TomlError(`Inline lists must be a single type, not a mix of ${listType} and ${valueType}`)) - } - } else { - this.state.resultArr = InlineList(tomlType(value)) - } - if (isFloat(value) || isInteger(value)) { - // unbox now that we've verified they're ok - this.state.resultArr.push(value.valueOf()) - } else { - this.state.resultArr.push(value) - } - return this.goto(this.parseInlineListNext) - } - parseInlineListNext () { - if (this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M || this.char === CTRL_J) { - return null - } else if (this.char === CHAR_NUM) { - return this.call(this.parseComment) - } else if (this.char === CHAR_COMMA) { - return this.next(this.parseInlineList) - } else if (this.char === CHAR_RSQB) { - return this.goto(this.parseInlineList) - } else { - throw this.error(new TomlError('Invalid character, expected whitespace, comma (,) or close bracket (])')) - } - } + const FLOAT = Symbol('float') + function Float(value) { + /* istanbul ignore next */ + return Object.defineProperties(new Number(value), { + [_type]: { value: FLOAT }, + [_inspect]: { value: () => `[Float: ${value}]` }, + }) + } + function isFloat(obj) { + if (obj === null || typeof obj !== 'object') return false + return obj[_type] === FLOAT + } - /* INLINE TABLE */ - parseInlineTable () { - if (this.char === CHAR_SP || this.char === CTRL_I) { - return null - } else if (this.char === Parser.END || this.char === CHAR_NUM || this.char === CTRL_J || this.char === CTRL_M) { - throw this.error(new TomlError('Unterminated inline array')) - } else if (this.char === CHAR_RCUB) { - return this.return(this.state.resultTable || InlineTable()) - } else { - if (!this.state.resultTable) this.state.resultTable = InlineTable() - return this.callNow(this.parseAssign, this.recordInlineTableValue) - } - } - recordInlineTableValue (kv) { - let target = this.state.resultTable - let finalKey = kv.key.pop() - for (let kw of kv.key) { - if (hasKey(target, kw) && (!isTable(target[kw]) || target[kw][_declared])) { - throw this.error(new TomlError("Can't redefine existing key")) - } - target = target[kw] = target[kw] || Table() - } - if (hasKey(target, finalKey)) { - throw this.error(new TomlError("Can't redefine existing key")) - } - if (isInteger(kv.value) || isFloat(kv.value)) { - target[finalKey] = kv.value.valueOf() - } else { - target[finalKey] = kv.value - } - return this.goto(this.parseInlineTableNext) - } - parseInlineTableNext () { - if (this.char === CHAR_SP || this.char === CTRL_I) { - return null - } else if (this.char === Parser.END || this.char === CHAR_NUM || this.char === CTRL_J || this.char === CTRL_M) { - throw this.error(new TomlError('Unterminated inline array')) - } else if (this.char === CHAR_COMMA) { - return this.next(this.parseInlineTable) - } else if (this.char === CHAR_RCUB) { - return this.goto(this.parseInlineTable) - } else { - throw this.error(new TomlError('Invalid character, expected whitespace, comma (,) or close bracket (])')) - } - } - } - return TOMLParser -} + function tomlType(value) { + const type = typeof value + if (type === 'object') { + /* istanbul ignore if */ + if (value === null) return 'null' + if (value instanceof Date) return 'datetime' + /* istanbul ignore else */ + if (_type in value) { + switch (value[_type]) { + case INLINE_TABLE: + return 'inline-table' + case INLINE_LIST: + return 'inline-list' + /* istanbul ignore next */ + case TABLE: + return 'table' + /* istanbul ignore next */ + case LIST: + return 'list' + case FLOAT: + return 'float' + case INTEGER: + return 'integer' + } + } + } + return type + } -}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"./create-date.js":1,"./create-datetime-float.js":2,"./create-datetime.js":3,"./create-time.js":4,"./parser.js":6}],8:[function(require,module,exports){ -'use strict' -module.exports = prettyError + function makeParserClass(Parser) { + class TOMLParser extends Parser { + constructor() { + super() + this.ctx = this.obj = Table() + } -function prettyError (err, buf) { - /* istanbul ignore if */ - if (err.pos == null || err.line == null) return err - let msg = err.message - msg += ` at row ${err.line + 1}, col ${err.col + 1}, pos ${err.pos}:\n` + /* MATCH HELPER */ + atEndOfWord() { + return this.char === CHAR_NUM || this.char === CTRL_I || this.char === CHAR_SP || this.atEndOfLine() + } + atEndOfLine() { + return this.char === Parser.END || this.char === CTRL_J || this.char === CTRL_M + } - /* istanbul ignore else */ - if (buf && buf.split) { - const lines = buf.split(/\n/) - const lineNumWidth = String(Math.min(lines.length, err.line + 3)).length - let linePadding = ' ' - while (linePadding.length < lineNumWidth) linePadding += ' ' - for (let ii = Math.max(0, err.line - 1); ii < Math.min(lines.length, err.line + 2); ++ii) { - let lineNum = String(ii + 1) - if (lineNum.length < lineNumWidth) lineNum = ' ' + lineNum - if (err.line === ii) { - msg += lineNum + '> ' + lines[ii] + '\n' - msg += linePadding + ' ' - for (let hh = 0; hh < err.col; ++hh) { - msg += ' ' - } - msg += '^\n' - } else { - msg += lineNum + ': ' + lines[ii] + '\n' - } - } - } - err.message = msg + '\n' - return err -} + parseStart() { + if (this.char === Parser.END) { + return null + } else if (this.char === CHAR_LSQB) { + return this.call(this.parseTableOrList) + } else if (this.char === CHAR_NUM) { + return this.call(this.parseComment) + } else if (this.char === CTRL_J || this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M) { + return null + } else if (isAlphaNumQuoteHyphen(this.char)) { + return this.callNow(this.parseAssignStatement) + } else { + throw this.error(new TomlError(`Unknown character "${this.char}"`)) + } + } -},{}],9:[function(require,module,exports){ -(function (global){ -'use strict' -module.exports = parseString + // HELPER, this strips any whitespace and comments to the end of the line + // then RETURNS. Last state in a production. + parseWhitespaceToEOL() { + if (this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M) { + return null + } else if (this.char === CHAR_NUM) { + return this.goto(this.parseComment) + } else if (this.char === Parser.END || this.char === CTRL_J) { + return this.return() + } else { + throw this.error(new TomlError('Unexpected character, expected only whitespace or comments till end of line')) + } + } -const TOMLParser = require('./lib/toml-parser.js') -const prettyError = require('./parse-pretty-error.js') + /* ASSIGNMENT: key = value */ + parseAssignStatement() { + return this.callNow(this.parseAssign, this.recordAssignStatement) + } + recordAssignStatement(kv) { + let target = this.ctx + let finalKey = kv.key.pop() + for (let kw of kv.key) { + if (hasKey(target, kw) && (!isTable(target[kw]) || target[kw][_declared])) { + throw this.error(new TomlError("Can't redefine existing key")) + } + target = target[kw] = target[kw] || Table() + } + if (hasKey(target, finalKey)) { + throw this.error(new TomlError("Can't redefine existing key")) + } + // unbox our numbers + if (isInteger(kv.value) || isFloat(kv.value)) { + target[finalKey] = kv.value.valueOf() + } else { + target[finalKey] = kv.value + } + return this.goto(this.parseWhitespaceToEOL) + } -function parseString (str) { - if (global.Buffer && global.Buffer.isBuffer(str)) { - str = str.toString('utf8') - } - const parser = new TOMLParser() - try { - parser.parse(str) - return parser.finish() - } catch (err) { - throw prettyError(err, str) - } -} + /* ASSSIGNMENT expression, key = value possibly inside an inline table */ + parseAssign() { + return this.callNow(this.parseKeyword, this.recordAssignKeyword) + } + recordAssignKeyword(key) { + if (this.state.resultTable) { + this.state.resultTable.push(key) + } else { + this.state.resultTable = [key] + } + return this.goto(this.parseAssignKeywordPreDot) + } + parseAssignKeywordPreDot() { + if (this.char === CHAR_PERIOD) { + return this.next(this.parseAssignKeywordPostDot) + } else if (this.char !== CHAR_SP && this.char !== CTRL_I) { + return this.goto(this.parseAssignEqual) + } + } + parseAssignKeywordPostDot() { + if (this.char !== CHAR_SP && this.char !== CTRL_I) { + return this.callNow(this.parseKeyword, this.recordAssignKeyword) + } + } -}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"./lib/toml-parser.js":7,"./parse-pretty-error.js":8}]},{},[9])(9) -}); + parseAssignEqual() { + if (this.char === CHAR_EQUALS) { + return this.next(this.parseAssignPreValue) + } else { + throw this.error(new TomlError('Invalid character, expected "="')) + } + } + parseAssignPreValue() { + if (this.char === CHAR_SP || this.char === CTRL_I) { + return null + } else { + return this.callNow(this.parseValue, this.recordAssignValue) + } + } + recordAssignValue(value) { + return this.returnNow({ key: this.state.resultTable, value: value }) + } + + /* COMMENTS: #...eol */ + parseComment() { + do { + if (this.char === Parser.END || this.char === CTRL_J) { + return this.return() + } + } while (this.nextChar()) + } + + /* TABLES AND LISTS, [foo] and [[foo]] */ + parseTableOrList() { + if (this.char === CHAR_LSQB) { + this.next(this.parseList) + } else { + return this.goto(this.parseTable) + } + } + + /* TABLE [foo.bar.baz] */ + parseTable() { + this.ctx = this.obj + return this.goto(this.parseTableNext) + } + parseTableNext() { + if (this.char === CHAR_SP || this.char === CTRL_I) { + return null + } else { + return this.callNow(this.parseKeyword, this.parseTableMore) + } + } + parseTableMore(keyword) { + if (this.char === CHAR_SP || this.char === CTRL_I) { + return null + } else if (this.char === CHAR_RSQB) { + if (hasKey(this.ctx, keyword) && (!isTable(this.ctx[keyword]) || this.ctx[keyword][_declared])) { + throw this.error(new TomlError("Can't redefine existing key")) + } else { + this.ctx = this.ctx[keyword] = this.ctx[keyword] || Table() + this.ctx[_declared] = true + } + return this.next(this.parseWhitespaceToEOL) + } else if (this.char === CHAR_PERIOD) { + if (!hasKey(this.ctx, keyword)) { + this.ctx = this.ctx[keyword] = Table() + } else if (isTable(this.ctx[keyword])) { + this.ctx = this.ctx[keyword] + } else if (isList(this.ctx[keyword])) { + this.ctx = this.ctx[keyword][this.ctx[keyword].length - 1] + } else { + throw this.error(new TomlError("Can't redefine existing key")) + } + return this.next(this.parseTableNext) + } else { + throw this.error(new TomlError('Unexpected character, expected whitespace, . or ]')) + } + } + + /* LIST [[a.b.c]] */ + parseList() { + this.ctx = this.obj + return this.goto(this.parseListNext) + } + parseListNext() { + if (this.char === CHAR_SP || this.char === CTRL_I) { + return null + } else { + return this.callNow(this.parseKeyword, this.parseListMore) + } + } + parseListMore(keyword) { + if (this.char === CHAR_SP || this.char === CTRL_I) { + return null + } else if (this.char === CHAR_RSQB) { + if (!hasKey(this.ctx, keyword)) { + this.ctx[keyword] = List() + } + if (isInlineList(this.ctx[keyword])) { + throw this.error(new TomlError("Can't extend an inline array")) + } else if (isList(this.ctx[keyword])) { + const next = Table() + this.ctx[keyword].push(next) + this.ctx = next + } else { + throw this.error(new TomlError("Can't redefine an existing key")) + } + return this.next(this.parseListEnd) + } else if (this.char === CHAR_PERIOD) { + if (!hasKey(this.ctx, keyword)) { + this.ctx = this.ctx[keyword] = Table() + } else if (isInlineList(this.ctx[keyword])) { + throw this.error(new TomlError("Can't extend an inline array")) + } else if (isInlineTable(this.ctx[keyword])) { + throw this.error(new TomlError("Can't extend an inline table")) + } else if (isList(this.ctx[keyword])) { + this.ctx = this.ctx[keyword][this.ctx[keyword].length - 1] + } else if (isTable(this.ctx[keyword])) { + this.ctx = this.ctx[keyword] + } else { + throw this.error(new TomlError("Can't redefine an existing key")) + } + return this.next(this.parseListNext) + } else { + throw this.error(new TomlError('Unexpected character, expected whitespace, . or ]')) + } + } + parseListEnd(keyword) { + if (this.char === CHAR_RSQB) { + return this.next(this.parseWhitespaceToEOL) + } else { + throw this.error(new TomlError('Unexpected character, expected whitespace, . or ]')) + } + } + + /* VALUE string, number, boolean, inline list, inline object */ + parseValue() { + if (this.char === Parser.END) { + throw this.error(new TomlError('Key without value')) + } else if (this.char === CHAR_QUOT) { + return this.next(this.parseDoubleString) + } + if (this.char === CHAR_APOS) { + return this.next(this.parseSingleString) + } else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS) { + return this.goto(this.parseNumberSign) + } else if (this.char === CHAR_i) { + return this.next(this.parseInf) + } else if (this.char === CHAR_n) { + return this.next(this.parseNan) + } else if (isDigit(this.char)) { + return this.goto(this.parseNumberOrDateTime) + } else if (this.char === CHAR_t || this.char === CHAR_f) { + return this.goto(this.parseBoolean) + } else if (this.char === CHAR_LSQB) { + return this.call(this.parseInlineList, this.recordValue) + } else if (this.char === CHAR_LCUB) { + return this.call(this.parseInlineTable, this.recordValue) + } else { + throw this.error(new TomlError('Unexpected character, expecting string, number, datetime, boolean, inline array or inline table')) + } + } + recordValue(value) { + return this.returnNow(value) + } + + parseInf() { + if (this.char === CHAR_n) { + return this.next(this.parseInf2) + } else { + throw this.error(new TomlError('Unexpected character, expected "inf", "+inf" or "-inf"')) + } + } + parseInf2() { + if (this.char === CHAR_f) { + if (this.state.buf === '-') { + return this.return(-Infinity) + } else { + return this.return(Infinity) + } + } else { + throw this.error(new TomlError('Unexpected character, expected "inf", "+inf" or "-inf"')) + } + } + + parseNan() { + if (this.char === CHAR_a) { + return this.next(this.parseNan2) + } else { + throw this.error(new TomlError('Unexpected character, expected "nan"')) + } + } + parseNan2() { + if (this.char === CHAR_n) { + return this.return(NaN) + } else { + throw this.error(new TomlError('Unexpected character, expected "nan"')) + } + } + + /* KEYS, barewords or basic, literal, or dotted */ + parseKeyword() { + if (this.char === CHAR_QUOT) { + return this.next(this.parseBasicString) + } else if (this.char === CHAR_APOS) { + return this.next(this.parseLiteralString) + } else { + return this.goto(this.parseBareKey) + } + } + + /* KEYS: barewords */ + parseBareKey() { + do { + if (this.char === Parser.END) { + throw this.error(new TomlError('Key ended without value')) + } else if (isAlphaNumHyphen(this.char)) { + this.consume() + } else if (this.state.buf.length === 0) { + throw this.error(new TomlError('Empty bare keys are not allowed')) + } else { + return this.returnNow() + } + } while (this.nextChar()) + } + + /* STRINGS, single quoted (literal) */ + parseSingleString() { + if (this.char === CHAR_APOS) { + return this.next(this.parseLiteralMultiStringMaybe) + } else { + return this.goto(this.parseLiteralString) + } + } + parseLiteralString() { + do { + if (this.char === CHAR_APOS) { + return this.return() + } else if (this.atEndOfLine()) { + throw this.error(new TomlError('Unterminated string')) + } else if (this.char === CHAR_DEL || (this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I)) { + throw this.errorControlCharInString() + } else { + this.consume() + } + } while (this.nextChar()) + } + parseLiteralMultiStringMaybe() { + if (this.char === CHAR_APOS) { + return this.next(this.parseLiteralMultiString) + } else { + return this.returnNow() + } + } + parseLiteralMultiString() { + if (this.char === CTRL_M) { + return null + } else if (this.char === CTRL_J) { + return this.next(this.parseLiteralMultiStringContent) + } else { + return this.goto(this.parseLiteralMultiStringContent) + } + } + parseLiteralMultiStringContent() { + do { + if (this.char === CHAR_APOS) { + return this.next(this.parseLiteralMultiEnd) + } else if (this.char === Parser.END) { + throw this.error(new TomlError('Unterminated multi-line string')) + } else if ( + this.char === CHAR_DEL || + (this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I && this.char !== CTRL_J && this.char !== CTRL_M) + ) { + throw this.errorControlCharInString() + } else { + this.consume() + } + } while (this.nextChar()) + } + parseLiteralMultiEnd() { + if (this.char === CHAR_APOS) { + return this.next(this.parseLiteralMultiEnd2) + } else { + this.state.buf += "'" + return this.goto(this.parseLiteralMultiStringContent) + } + } + parseLiteralMultiEnd2() { + if (this.char === CHAR_APOS) { + return this.return() + } else { + this.state.buf += "''" + return this.goto(this.parseLiteralMultiStringContent) + } + } + + /* STRINGS double quoted */ + parseDoubleString() { + if (this.char === CHAR_QUOT) { + return this.next(this.parseMultiStringMaybe) + } else { + return this.goto(this.parseBasicString) + } + } + parseBasicString() { + do { + if (this.char === CHAR_BSOL) { + return this.call(this.parseEscape, this.recordEscapeReplacement) + } else if (this.char === CHAR_QUOT) { + return this.return() + } else if (this.atEndOfLine()) { + throw this.error(new TomlError('Unterminated string')) + } else if (this.char === CHAR_DEL || (this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I)) { + throw this.errorControlCharInString() + } else { + this.consume() + } + } while (this.nextChar()) + } + recordEscapeReplacement(replacement) { + this.state.buf += replacement + return this.goto(this.parseBasicString) + } + parseMultiStringMaybe() { + if (this.char === CHAR_QUOT) { + return this.next(this.parseMultiString) + } else { + return this.returnNow() + } + } + parseMultiString() { + if (this.char === CTRL_M) { + return null + } else if (this.char === CTRL_J) { + return this.next(this.parseMultiStringContent) + } else { + return this.goto(this.parseMultiStringContent) + } + } + parseMultiStringContent() { + do { + if (this.char === CHAR_BSOL) { + return this.call(this.parseMultiEscape, this.recordMultiEscapeReplacement) + } else if (this.char === CHAR_QUOT) { + return this.next(this.parseMultiEnd) + } else if (this.char === Parser.END) { + throw this.error(new TomlError('Unterminated multi-line string')) + } else if ( + this.char === CHAR_DEL || + (this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I && this.char !== CTRL_J && this.char !== CTRL_M) + ) { + throw this.errorControlCharInString() + } else { + this.consume() + } + } while (this.nextChar()) + } + errorControlCharInString() { + let displayCode = '\\u00' + if (this.char < 16) { + displayCode += '0' + } + displayCode += this.char.toString(16) + + return this.error( + new TomlError(`Control characters (codes < 0x1f and 0x7f) are not allowed in strings, use ${displayCode} instead`), + ) + } + recordMultiEscapeReplacement(replacement) { + this.state.buf += replacement + return this.goto(this.parseMultiStringContent) + } + parseMultiEnd() { + if (this.char === CHAR_QUOT) { + return this.next(this.parseMultiEnd2) + } else { + this.state.buf += '"' + return this.goto(this.parseMultiStringContent) + } + } + parseMultiEnd2() { + if (this.char === CHAR_QUOT) { + return this.return() + } else { + this.state.buf += '""' + return this.goto(this.parseMultiStringContent) + } + } + parseMultiEscape() { + if (this.char === CTRL_M || this.char === CTRL_J) { + return this.next(this.parseMultiTrim) + } else if (this.char === CHAR_SP || this.char === CTRL_I) { + return this.next(this.parsePreMultiTrim) + } else { + return this.goto(this.parseEscape) + } + } + parsePreMultiTrim() { + if (this.char === CHAR_SP || this.char === CTRL_I) { + return null + } else if (this.char === CTRL_M || this.char === CTRL_J) { + return this.next(this.parseMultiTrim) + } else { + throw this.error(new TomlError("Can't escape whitespace")) + } + } + parseMultiTrim() { + // explicitly whitespace here, END should follow the same path as chars + if (this.char === CTRL_J || this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M) { + return null + } else { + return this.returnNow() + } + } + parseEscape() { + if (this.char in escapes) { + return this.return(escapes[this.char]) + } else if (this.char === CHAR_u) { + return this.call(this.parseSmallUnicode, this.parseUnicodeReturn) + } else if (this.char === CHAR_U) { + return this.call(this.parseLargeUnicode, this.parseUnicodeReturn) + } else { + throw this.error(new TomlError('Unknown escape character: ' + this.char)) + } + } + parseUnicodeReturn(char) { + try { + const codePoint = parseInt(char, 16) + if (codePoint >= SURROGATE_FIRST && codePoint <= SURROGATE_LAST) { + throw this.error(new TomlError('Invalid unicode, character in range 0xD800 - 0xDFFF is reserved')) + } + return this.returnNow(String.fromCodePoint(codePoint)) + } catch (err) { + throw this.error(TomlError.wrap(err)) + } + } + parseSmallUnicode() { + if (!isHexit(this.char)) { + throw this.error(new TomlError('Invalid character in unicode sequence, expected hex')) + } else { + this.consume() + if (this.state.buf.length >= 4) return this.return() + } + } + parseLargeUnicode() { + if (!isHexit(this.char)) { + throw this.error(new TomlError('Invalid character in unicode sequence, expected hex')) + } else { + this.consume() + if (this.state.buf.length >= 8) return this.return() + } + } + + /* NUMBERS */ + parseNumberSign() { + this.consume() + return this.next(this.parseMaybeSignedInfOrNan) + } + parseMaybeSignedInfOrNan() { + if (this.char === CHAR_i) { + return this.next(this.parseInf) + } else if (this.char === CHAR_n) { + return this.next(this.parseNan) + } else { + return this.callNow(this.parseNoUnder, this.parseNumberIntegerStart) + } + } + parseNumberIntegerStart() { + if (this.char === CHAR_0) { + this.consume() + return this.next(this.parseNumberIntegerExponentOrDecimal) + } else { + return this.goto(this.parseNumberInteger) + } + } + parseNumberIntegerExponentOrDecimal() { + if (this.char === CHAR_PERIOD) { + this.consume() + return this.call(this.parseNoUnder, this.parseNumberFloat) + } else if (this.char === CHAR_E || this.char === CHAR_e) { + this.consume() + return this.next(this.parseNumberExponentSign) + } else { + return this.returnNow(Integer(this.state.buf)) + } + } + parseNumberInteger() { + if (isDigit(this.char)) { + this.consume() + } else if (this.char === CHAR_LOWBAR) { + return this.call(this.parseNoUnder) + } else if (this.char === CHAR_E || this.char === CHAR_e) { + this.consume() + return this.next(this.parseNumberExponentSign) + } else if (this.char === CHAR_PERIOD) { + this.consume() + return this.call(this.parseNoUnder, this.parseNumberFloat) + } else { + const result = Integer(this.state.buf) + /* istanbul ignore if */ + if (result.isNaN()) { + throw this.error(new TomlError('Invalid number')) + } else { + return this.returnNow(result) + } + } + } + parseNoUnder() { + if (this.char === CHAR_LOWBAR || this.char === CHAR_PERIOD || this.char === CHAR_E || this.char === CHAR_e) { + throw this.error(new TomlError('Unexpected character, expected digit')) + } else if (this.atEndOfWord()) { + throw this.error(new TomlError('Incomplete number')) + } + return this.returnNow() + } + parseNumberFloat() { + if (this.char === CHAR_LOWBAR) { + return this.call(this.parseNoUnder, this.parseNumberFloat) + } else if (isDigit(this.char)) { + this.consume() + } else if (this.char === CHAR_E || this.char === CHAR_e) { + this.consume() + return this.next(this.parseNumberExponentSign) + } else { + return this.returnNow(Float(this.state.buf)) + } + } + parseNumberExponentSign() { + if (isDigit(this.char)) { + return this.goto(this.parseNumberExponent) + } else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS) { + this.consume() + this.call(this.parseNoUnder, this.parseNumberExponent) + } else { + throw this.error(new TomlError('Unexpected character, expected -, + or digit')) + } + } + parseNumberExponent() { + if (isDigit(this.char)) { + this.consume() + } else if (this.char === CHAR_LOWBAR) { + return this.call(this.parseNoUnder) + } else { + return this.returnNow(Float(this.state.buf)) + } + } + + /* NUMBERS or DATETIMES */ + parseNumberOrDateTime() { + if (this.char === CHAR_0) { + this.consume() + return this.next(this.parseNumberBaseOrDateTime) + } else { + return this.goto(this.parseNumberOrDateTimeOnly) + } + } + parseNumberOrDateTimeOnly() { + // note, if two zeros are in a row then it MUST be a date + if (this.char === CHAR_LOWBAR) { + return this.call(this.parseNoUnder, this.parseNumberInteger) + } else if (isDigit(this.char)) { + this.consume() + if (this.state.buf.length > 4) this.next(this.parseNumberInteger) + } else if (this.char === CHAR_E || this.char === CHAR_e) { + this.consume() + return this.next(this.parseNumberExponentSign) + } else if (this.char === CHAR_PERIOD) { + this.consume() + return this.call(this.parseNoUnder, this.parseNumberFloat) + } else if (this.char === CHAR_HYPHEN) { + return this.goto(this.parseDateTime) + } else if (this.char === CHAR_COLON) { + return this.goto(this.parseOnlyTimeHour) + } else { + return this.returnNow(Integer(this.state.buf)) + } + } + parseDateTimeOnly() { + if (this.state.buf.length < 4) { + if (isDigit(this.char)) { + return this.consume() + } else if (this.char === CHAR_COLON) { + return this.goto(this.parseOnlyTimeHour) + } else { + throw this.error(new TomlError('Expected digit while parsing year part of a date')) + } + } else { + if (this.char === CHAR_HYPHEN) { + return this.goto(this.parseDateTime) + } else { + throw this.error(new TomlError('Expected hyphen (-) while parsing year part of date')) + } + } + } + parseNumberBaseOrDateTime() { + if (this.char === CHAR_b) { + this.consume() + return this.call(this.parseNoUnder, this.parseIntegerBin) + } else if (this.char === CHAR_o) { + this.consume() + return this.call(this.parseNoUnder, this.parseIntegerOct) + } else if (this.char === CHAR_x) { + this.consume() + return this.call(this.parseNoUnder, this.parseIntegerHex) + } else if (this.char === CHAR_PERIOD) { + return this.goto(this.parseNumberInteger) + } else if (isDigit(this.char)) { + return this.goto(this.parseDateTimeOnly) + } else { + return this.returnNow(Integer(this.state.buf)) + } + } + parseIntegerHex() { + if (isHexit(this.char)) { + this.consume() + } else if (this.char === CHAR_LOWBAR) { + return this.call(this.parseNoUnder) + } else { + const result = Integer(this.state.buf) + /* istanbul ignore if */ + if (result.isNaN()) { + throw this.error(new TomlError('Invalid number')) + } else { + return this.returnNow(result) + } + } + } + parseIntegerOct() { + if (isOctit(this.char)) { + this.consume() + } else if (this.char === CHAR_LOWBAR) { + return this.call(this.parseNoUnder) + } else { + const result = Integer(this.state.buf) + /* istanbul ignore if */ + if (result.isNaN()) { + throw this.error(new TomlError('Invalid number')) + } else { + return this.returnNow(result) + } + } + } + parseIntegerBin() { + if (isBit(this.char)) { + this.consume() + } else if (this.char === CHAR_LOWBAR) { + return this.call(this.parseNoUnder) + } else { + const result = Integer(this.state.buf) + /* istanbul ignore if */ + if (result.isNaN()) { + throw this.error(new TomlError('Invalid number')) + } else { + return this.returnNow(result) + } + } + } + + /* DATETIME */ + parseDateTime() { + // we enter here having just consumed the year and about to consume the hyphen + if (this.state.buf.length < 4) { + throw this.error(new TomlError('Years less than 1000 must be zero padded to four characters')) + } + this.state.result = this.state.buf + this.state.buf = '' + return this.next(this.parseDateMonth) + } + parseDateMonth() { + if (this.char === CHAR_HYPHEN) { + if (this.state.buf.length < 2) { + throw this.error(new TomlError('Months less than 10 must be zero padded to two characters')) + } + this.state.result += '-' + this.state.buf + this.state.buf = '' + return this.next(this.parseDateDay) + } else if (isDigit(this.char)) { + this.consume() + } else { + throw this.error(new TomlError('Incomplete datetime')) + } + } + parseDateDay() { + if (this.char === CHAR_T || this.char === CHAR_SP) { + if (this.state.buf.length < 2) { + throw this.error(new TomlError('Days less than 10 must be zero padded to two characters')) + } + this.state.result += '-' + this.state.buf + this.state.buf = '' + return this.next(this.parseStartTimeHour) + } else if (this.atEndOfWord()) { + return this.return(createDate(this.state.result + '-' + this.state.buf)) + } else if (isDigit(this.char)) { + this.consume() + } else { + throw this.error(new TomlError('Incomplete datetime')) + } + } + parseStartTimeHour() { + if (this.atEndOfWord()) { + return this.returnNow(createDate(this.state.result)) + } else { + return this.goto(this.parseTimeHour) + } + } + parseTimeHour() { + if (this.char === CHAR_COLON) { + if (this.state.buf.length < 2) { + throw this.error(new TomlError('Hours less than 10 must be zero padded to two characters')) + } + this.state.result += 'T' + this.state.buf + this.state.buf = '' + return this.next(this.parseTimeMin) + } else if (isDigit(this.char)) { + this.consume() + } else { + throw this.error(new TomlError('Incomplete datetime')) + } + } + parseTimeMin() { + if (this.state.buf.length < 2 && isDigit(this.char)) { + this.consume() + } else if (this.state.buf.length === 2 && this.char === CHAR_COLON) { + this.state.result += ':' + this.state.buf + this.state.buf = '' + return this.next(this.parseTimeSec) + } else { + throw this.error(new TomlError('Incomplete datetime')) + } + } + parseTimeSec() { + if (isDigit(this.char)) { + this.consume() + if (this.state.buf.length === 2) { + this.state.result += ':' + this.state.buf + this.state.buf = '' + return this.next(this.parseTimeZoneOrFraction) + } + } else { + throw this.error(new TomlError('Incomplete datetime')) + } + } + + parseOnlyTimeHour() { + /* istanbul ignore else */ + if (this.char === CHAR_COLON) { + if (this.state.buf.length < 2) { + throw this.error(new TomlError('Hours less than 10 must be zero padded to two characters')) + } + this.state.result = this.state.buf + this.state.buf = '' + return this.next(this.parseOnlyTimeMin) + } else { + throw this.error(new TomlError('Incomplete time')) + } + } + parseOnlyTimeMin() { + if (this.state.buf.length < 2 && isDigit(this.char)) { + this.consume() + } else if (this.state.buf.length === 2 && this.char === CHAR_COLON) { + this.state.result += ':' + this.state.buf + this.state.buf = '' + return this.next(this.parseOnlyTimeSec) + } else { + throw this.error(new TomlError('Incomplete time')) + } + } + parseOnlyTimeSec() { + if (isDigit(this.char)) { + this.consume() + if (this.state.buf.length === 2) { + return this.next(this.parseOnlyTimeFractionMaybe) + } + } else { + throw this.error(new TomlError('Incomplete time')) + } + } + parseOnlyTimeFractionMaybe() { + this.state.result += ':' + this.state.buf + if (this.char === CHAR_PERIOD) { + this.state.buf = '' + this.next(this.parseOnlyTimeFraction) + } else { + return this.return(createTime(this.state.result)) + } + } + parseOnlyTimeFraction() { + if (isDigit(this.char)) { + this.consume() + } else if (this.atEndOfWord()) { + if (this.state.buf.length === 0) throw this.error(new TomlError('Expected digit in milliseconds')) + return this.returnNow(createTime(this.state.result + '.' + this.state.buf)) + } else { + throw this.error(new TomlError('Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z')) + } + } + + parseTimeZoneOrFraction() { + if (this.char === CHAR_PERIOD) { + this.consume() + this.next(this.parseDateTimeFraction) + } else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS) { + this.consume() + this.next(this.parseTimeZoneHour) + } else if (this.char === CHAR_Z) { + this.consume() + return this.return(createDateTime(this.state.result + this.state.buf)) + } else if (this.atEndOfWord()) { + return this.returnNow(createDateTimeFloat(this.state.result + this.state.buf)) + } else { + throw this.error(new TomlError('Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z')) + } + } + parseDateTimeFraction() { + if (isDigit(this.char)) { + this.consume() + } else if (this.state.buf.length === 1) { + throw this.error(new TomlError('Expected digit in milliseconds')) + } else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS) { + this.consume() + this.next(this.parseTimeZoneHour) + } else if (this.char === CHAR_Z) { + this.consume() + return this.return(createDateTime(this.state.result + this.state.buf)) + } else if (this.atEndOfWord()) { + return this.returnNow(createDateTimeFloat(this.state.result + this.state.buf)) + } else { + throw this.error(new TomlError('Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z')) + } + } + parseTimeZoneHour() { + if (isDigit(this.char)) { + this.consume() + // FIXME: No more regexps + if (/\d\d$/.test(this.state.buf)) return this.next(this.parseTimeZoneSep) + } else { + throw this.error(new TomlError('Unexpected character in datetime, expected digit')) + } + } + parseTimeZoneSep() { + if (this.char === CHAR_COLON) { + this.consume() + this.next(this.parseTimeZoneMin) + } else { + throw this.error(new TomlError('Unexpected character in datetime, expected colon')) + } + } + parseTimeZoneMin() { + if (isDigit(this.char)) { + this.consume() + if (/\d\d$/.test(this.state.buf)) return this.return(createDateTime(this.state.result + this.state.buf)) + } else { + throw this.error(new TomlError('Unexpected character in datetime, expected digit')) + } + } + + /* BOOLEAN */ + parseBoolean() { + /* istanbul ignore else */ + if (this.char === CHAR_t) { + this.consume() + return this.next(this.parseTrue_r) + } else if (this.char === CHAR_f) { + this.consume() + return this.next(this.parseFalse_a) + } + } + parseTrue_r() { + if (this.char === CHAR_r) { + this.consume() + return this.next(this.parseTrue_u) + } else { + throw this.error(new TomlError('Invalid boolean, expected true or false')) + } + } + parseTrue_u() { + if (this.char === CHAR_u) { + this.consume() + return this.next(this.parseTrue_e) + } else { + throw this.error(new TomlError('Invalid boolean, expected true or false')) + } + } + parseTrue_e() { + if (this.char === CHAR_e) { + return this.return(true) + } else { + throw this.error(new TomlError('Invalid boolean, expected true or false')) + } + } + + parseFalse_a() { + if (this.char === CHAR_a) { + this.consume() + return this.next(this.parseFalse_l) + } else { + throw this.error(new TomlError('Invalid boolean, expected true or false')) + } + } + + parseFalse_l() { + if (this.char === CHAR_l) { + this.consume() + return this.next(this.parseFalse_s) + } else { + throw this.error(new TomlError('Invalid boolean, expected true or false')) + } + } + + parseFalse_s() { + if (this.char === CHAR_s) { + this.consume() + return this.next(this.parseFalse_e) + } else { + throw this.error(new TomlError('Invalid boolean, expected true or false')) + } + } + + parseFalse_e() { + if (this.char === CHAR_e) { + return this.return(false) + } else { + throw this.error(new TomlError('Invalid boolean, expected true or false')) + } + } + + /* INLINE LISTS */ + parseInlineList() { + if (this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M || this.char === CTRL_J) { + return null + } else if (this.char === Parser.END) { + throw this.error(new TomlError('Unterminated inline array')) + } else if (this.char === CHAR_NUM) { + return this.call(this.parseComment) + } else if (this.char === CHAR_RSQB) { + return this.return(this.state.resultArr || InlineList()) + } else { + return this.callNow(this.parseValue, this.recordInlineListValue) + } + } + recordInlineListValue(value) { + if (this.state.resultArr) { + const listType = this.state.resultArr[_contentType] + const valueType = tomlType(value) + if (listType !== valueType) { + throw this.error(new TomlError(`Inline lists must be a single type, not a mix of ${listType} and ${valueType}`)) + } + } else { + this.state.resultArr = InlineList(tomlType(value)) + } + if (isFloat(value) || isInteger(value)) { + // unbox now that we've verified they're ok + this.state.resultArr.push(value.valueOf()) + } else { + this.state.resultArr.push(value) + } + return this.goto(this.parseInlineListNext) + } + parseInlineListNext() { + if (this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M || this.char === CTRL_J) { + return null + } else if (this.char === CHAR_NUM) { + return this.call(this.parseComment) + } else if (this.char === CHAR_COMMA) { + return this.next(this.parseInlineList) + } else if (this.char === CHAR_RSQB) { + return this.goto(this.parseInlineList) + } else { + throw this.error(new TomlError('Invalid character, expected whitespace, comma (,) or close bracket (])')) + } + } + + /* INLINE TABLE */ + parseInlineTable() { + if (this.char === CHAR_SP || this.char === CTRL_I) { + return null + } else if (this.char === Parser.END || this.char === CHAR_NUM || this.char === CTRL_J || this.char === CTRL_M) { + throw this.error(new TomlError('Unterminated inline array')) + } else if (this.char === CHAR_RCUB) { + return this.return(this.state.resultTable || InlineTable()) + } else { + if (!this.state.resultTable) this.state.resultTable = InlineTable() + return this.callNow(this.parseAssign, this.recordInlineTableValue) + } + } + recordInlineTableValue(kv) { + let target = this.state.resultTable + let finalKey = kv.key.pop() + for (let kw of kv.key) { + if (hasKey(target, kw) && (!isTable(target[kw]) || target[kw][_declared])) { + throw this.error(new TomlError("Can't redefine existing key")) + } + target = target[kw] = target[kw] || Table() + } + if (hasKey(target, finalKey)) { + throw this.error(new TomlError("Can't redefine existing key")) + } + if (isInteger(kv.value) || isFloat(kv.value)) { + target[finalKey] = kv.value.valueOf() + } else { + target[finalKey] = kv.value + } + return this.goto(this.parseInlineTableNext) + } + parseInlineTableNext() { + if (this.char === CHAR_SP || this.char === CTRL_I) { + return null + } else if (this.char === Parser.END || this.char === CHAR_NUM || this.char === CTRL_J || this.char === CTRL_M) { + throw this.error(new TomlError('Unterminated inline array')) + } else if (this.char === CHAR_COMMA) { + return this.next(this.parseInlineTable) + } else if (this.char === CHAR_RCUB) { + return this.goto(this.parseInlineTable) + } else { + throw this.error(new TomlError('Invalid character, expected whitespace, comma (,) or close bracket (])')) + } + } + } + return TOMLParser + } + }).call(this, typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : {}) + }, + { './create-date.js': 1, './create-datetime-float.js': 2, './create-datetime.js': 3, './create-time.js': 4, './parser.js': 6 }, + ], + 8: [ + function (require, module, exports) { + 'use strict' + module.exports = prettyError + + function prettyError(err, buf) { + /* istanbul ignore if */ + if (err.pos == null || err.line == null) return err + let msg = err.message + msg += ` at row ${err.line + 1}, col ${err.col + 1}, pos ${err.pos}:\n` + + /* istanbul ignore else */ + if (buf && buf.split) { + const lines = buf.split(/\n/) + const lineNumWidth = String(Math.min(lines.length, err.line + 3)).length + let linePadding = ' ' + while (linePadding.length < lineNumWidth) linePadding += ' ' + for (let ii = Math.max(0, err.line - 1); ii < Math.min(lines.length, err.line + 2); ++ii) { + let lineNum = String(ii + 1) + if (lineNum.length < lineNumWidth) lineNum = ' ' + lineNum + if (err.line === ii) { + msg += lineNum + '> ' + lines[ii] + '\n' + msg += linePadding + ' ' + for (let hh = 0; hh < err.col; ++hh) { + msg += ' ' + } + msg += '^\n' + } else { + msg += lineNum + ': ' + lines[ii] + '\n' + } + } + } + err.message = msg + '\n' + return err + } + }, + {}, + ], + 9: [ + function (require, module, exports) { + ;(function (global) { + 'use strict' + module.exports = parseString + + const TOMLParser = require('./lib/toml-parser.js') + const prettyError = require('./parse-pretty-error.js') + + function parseString(str) { + if (global.Buffer && global.Buffer.isBuffer(str)) { + str = str.toString('utf8') + } + const parser = new TOMLParser() + try { + parser.parse(str) + return parser.finish() + } catch (err) { + throw prettyError(err, str) + } + } + }).call(this, typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : {}) + }, + { './lib/toml-parser.js': 7, './parse-pretty-error.js': 8 }, + ], + }, + {}, + [9], + )(9) +}) diff --git a/static/vendor/jquery-3.7.1.min.js b/static/vendor/jquery-3.7.1.min.js index 7f37b5d991..a46b1d6bb2 100644 --- a/static/vendor/jquery-3.7.1.min.js +++ b/static/vendor/jquery-3.7.1.min.js @@ -1,2 +1,4353 @@ /*! jQuery v3.7.1 | (c) OpenJS Foundation and other contributors | jquery.org/license */ -!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(ie,e){"use strict";var oe=[],r=Object.getPrototypeOf,ae=oe.slice,g=oe.flat?function(e){return oe.flat.call(e)}:function(e){return oe.concat.apply([],e)},s=oe.push,se=oe.indexOf,n={},i=n.toString,ue=n.hasOwnProperty,o=ue.toString,a=o.call(Object),le={},v=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},y=function(e){return null!=e&&e===e.window},C=ie.document,u={type:!0,src:!0,nonce:!0,noModule:!0};function m(e,t,n){var r,i,o=(n=n||C).createElement("script");if(o.text=e,t)for(r in u)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[i.call(e)]||"object":typeof e}var t="3.7.1",l=/HTML$/i,ce=function(e,t){return new ce.fn.init(e,t)};function c(e){var t=!!e&&"length"in e&&e.length,n=x(e);return!v(e)&&!y(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}function fe(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}ce.fn=ce.prototype={jquery:t,constructor:ce,length:0,toArray:function(){return ae.call(this)},get:function(e){return null==e?ae.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=ce.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return ce.each(this,e)},map:function(n){return this.pushStack(ce.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(ae.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(ce.grep(this,function(e,t){return(t+1)%2}))},odd:function(){return this.pushStack(ce.grep(this,function(e,t){return t%2}))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:s,sort:oe.sort,splice:oe.splice},ce.extend=ce.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||v(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(ce.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||ce.isPlainObject(n)?n:{},i=!1,a[t]=ce.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},ce.extend({expando:"jQuery"+(t+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==i.call(e))&&(!(t=r(e))||"function"==typeof(n=ue.call(t,"constructor")&&t.constructor)&&o.call(n)===a)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t,n){m(e,{nonce:t&&t.nonce},n)},each:function(e,t){var n,r=0;if(c(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},text:function(e){var t,n="",r=0,i=e.nodeType;if(!i)while(t=e[r++])n+=ce.text(t);return 1===i||11===i?e.textContent:9===i?e.documentElement.textContent:3===i||4===i?e.nodeValue:n},makeArray:function(e,t){var n=t||[];return null!=e&&(c(Object(e))?ce.merge(n,"string"==typeof e?[e]:e):s.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:se.call(t,e,n)},isXMLDoc:function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!l.test(t||n&&n.nodeName||"HTML")},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(c(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g(a)},guid:1,support:le}),"function"==typeof Symbol&&(ce.fn[Symbol.iterator]=oe[Symbol.iterator]),ce.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var pe=oe.pop,de=oe.sort,he=oe.splice,ge="[\\x20\\t\\r\\n\\f]",ve=new RegExp("^"+ge+"+|((?:^|[^\\\\])(?:\\\\.)*)"+ge+"+$","g");ce.contains=function(e,t){var n=t&&t.parentNode;return e===n||!(!n||1!==n.nodeType||!(e.contains?e.contains(n):e.compareDocumentPosition&&16&e.compareDocumentPosition(n)))};var f=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g;function p(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e}ce.escapeSelector=function(e){return(e+"").replace(f,p)};var ye=C,me=s;!function(){var e,b,w,o,a,T,r,C,d,i,k=me,S=ce.expando,E=0,n=0,s=W(),c=W(),u=W(),h=W(),l=function(e,t){return e===t&&(a=!0),0},f="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",t="(?:\\\\[\\da-fA-F]{1,6}"+ge+"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",p="\\["+ge+"*("+t+")(?:"+ge+"*([*^$|!~]?=)"+ge+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+t+"))|)"+ge+"*\\]",g=":("+t+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+p+")*)|.*)\\)|)",v=new RegExp(ge+"+","g"),y=new RegExp("^"+ge+"*,"+ge+"*"),m=new RegExp("^"+ge+"*([>+~]|"+ge+")"+ge+"*"),x=new RegExp(ge+"|>"),j=new RegExp(g),A=new RegExp("^"+t+"$"),D={ID:new RegExp("^#("+t+")"),CLASS:new RegExp("^\\.("+t+")"),TAG:new RegExp("^("+t+"|[*])"),ATTR:new RegExp("^"+p),PSEUDO:new RegExp("^"+g),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ge+"*(even|odd|(([+-]|)(\\d*)n|)"+ge+"*(?:([+-]|)"+ge+"*(\\d+)|))"+ge+"*\\)|)","i"),bool:new RegExp("^(?:"+f+")$","i"),needsContext:new RegExp("^"+ge+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ge+"*((?:-\\d)?\\d*)"+ge+"*\\)|)(?=[^-]|$)","i")},N=/^(?:input|select|textarea|button)$/i,q=/^h\d$/i,L=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,H=/[+~]/,O=new RegExp("\\\\[\\da-fA-F]{1,6}"+ge+"?|\\\\([^\\r\\n\\f])","g"),P=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},M=function(){V()},R=J(function(e){return!0===e.disabled&&fe(e,"fieldset")},{dir:"parentNode",next:"legend"});try{k.apply(oe=ae.call(ye.childNodes),ye.childNodes),oe[ye.childNodes.length].nodeType}catch(e){k={apply:function(e,t){me.apply(e,ae.call(t))},call:function(e){me.apply(e,ae.call(arguments,1))}}}function I(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(V(e),e=e||T,C)){if(11!==p&&(u=L.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return k.call(n,a),n}else if(f&&(a=f.getElementById(i))&&I.contains(e,a)&&a.id===i)return k.call(n,a),n}else{if(u[2])return k.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&e.getElementsByClassName)return k.apply(n,e.getElementsByClassName(i)),n}if(!(h[t+" "]||d&&d.test(t))){if(c=t,f=e,1===p&&(x.test(t)||m.test(t))){(f=H.test(t)&&U(e.parentNode)||e)==e&&le.scope||((s=e.getAttribute("id"))?s=ce.escapeSelector(s):e.setAttribute("id",s=S)),o=(l=Y(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+Q(l[o]);c=l.join(",")}try{return k.apply(n,f.querySelectorAll(c)),n}catch(e){h(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return re(t.replace(ve,"$1"),e,n,r)}function W(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function F(e){return e[S]=!0,e}function $(e){var t=T.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function B(t){return function(e){return fe(e,"input")&&e.type===t}}function _(t){return function(e){return(fe(e,"input")||fe(e,"button"))&&e.type===t}}function z(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&R(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function X(a){return F(function(o){return o=+o,F(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function U(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function V(e){var t,n=e?e.ownerDocument||e:ye;return n!=T&&9===n.nodeType&&n.documentElement&&(r=(T=n).documentElement,C=!ce.isXMLDoc(T),i=r.matches||r.webkitMatchesSelector||r.msMatchesSelector,r.msMatchesSelector&&ye!=T&&(t=T.defaultView)&&t.top!==t&&t.addEventListener("unload",M),le.getById=$(function(e){return r.appendChild(e).id=ce.expando,!T.getElementsByName||!T.getElementsByName(ce.expando).length}),le.disconnectedMatch=$(function(e){return i.call(e,"*")}),le.scope=$(function(){return T.querySelectorAll(":scope")}),le.cssHas=$(function(){try{return T.querySelector(":has(*,:jqfake)"),!1}catch(e){return!0}}),le.getById?(b.filter.ID=function(e){var t=e.replace(O,P);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&C){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(O,P);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&C){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):t.querySelectorAll(e)},b.find.CLASS=function(e,t){if("undefined"!=typeof t.getElementsByClassName&&C)return t.getElementsByClassName(e)},d=[],$(function(e){var t;r.appendChild(e).innerHTML="<a id='"+S+"' href='' disabled='disabled'></a><select id='"+S+"-\r\\' disabled='disabled'><option selected=''></option></select>",e.querySelectorAll("[selected]").length||d.push("\\["+ge+"*(?:value|"+f+")"),e.querySelectorAll("[id~="+S+"-]").length||d.push("~="),e.querySelectorAll("a#"+S+"+*").length||d.push(".#.+[+~]"),e.querySelectorAll(":checked").length||d.push(":checked"),(t=T.createElement("input")).setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),r.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&d.push(":enabled",":disabled"),(t=T.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||d.push("\\["+ge+"*name"+ge+"*="+ge+"*(?:''|\"\")")}),le.cssHas||d.push(":has"),d=d.length&&new RegExp(d.join("|")),l=function(e,t){if(e===t)return a=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!le.sortDetached&&t.compareDocumentPosition(e)===n?e===T||e.ownerDocument==ye&&I.contains(ye,e)?-1:t===T||t.ownerDocument==ye&&I.contains(ye,t)?1:o?se.call(o,e)-se.call(o,t):0:4&n?-1:1)}),T}for(e in I.matches=function(e,t){return I(e,null,null,t)},I.matchesSelector=function(e,t){if(V(e),C&&!h[t+" "]&&(!d||!d.test(t)))try{var n=i.call(e,t);if(n||le.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){h(t,!0)}return 0<I(t,T,null,[e]).length},I.contains=function(e,t){return(e.ownerDocument||e)!=T&&V(e),ce.contains(e,t)},I.attr=function(e,t){(e.ownerDocument||e)!=T&&V(e);var n=b.attrHandle[t.toLowerCase()],r=n&&ue.call(b.attrHandle,t.toLowerCase())?n(e,t,!C):void 0;return void 0!==r?r:e.getAttribute(t)},I.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},ce.uniqueSort=function(e){var t,n=[],r=0,i=0;if(a=!le.sortStable,o=!le.sortStable&&ae.call(e,0),de.call(e,l),a){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)he.call(e,n[r],1)}return o=null,e},ce.fn.uniqueSort=function(){return this.pushStack(ce.uniqueSort(ae.apply(this)))},(b=ce.expr={cacheLength:50,createPseudo:F,match:D,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(O,P),e[3]=(e[3]||e[4]||e[5]||"").replace(O,P),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||I.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&I.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return D.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&j.test(n)&&(t=Y(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(O,P).toLowerCase();return"*"===e?function(){return!0}:function(e){return fe(e,t)}},CLASS:function(e){var t=s[e+" "];return t||(t=new RegExp("(^|"+ge+")"+e+"("+ge+"|$)"))&&s(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=I.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(v," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(d,e,t,h,g){var v="nth"!==d.slice(0,3),y="last"!==d.slice(-4),m="of-type"===e;return 1===h&&0===g?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u=v!==y?"nextSibling":"previousSibling",l=e.parentNode,c=m&&e.nodeName.toLowerCase(),f=!n&&!m,p=!1;if(l){if(v){while(u){o=e;while(o=o[u])if(m?fe(o,c):1===o.nodeType)return!1;s=u="only"===d&&!s&&"nextSibling"}return!0}if(s=[y?l.firstChild:l.lastChild],y&&f){p=(a=(r=(i=l[S]||(l[S]={}))[d]||[])[0]===E&&r[1])&&r[2],o=a&&l.childNodes[a];while(o=++a&&o&&o[u]||(p=a=0)||s.pop())if(1===o.nodeType&&++p&&o===e){i[d]=[E,a,p];break}}else if(f&&(p=a=(r=(i=e[S]||(e[S]={}))[d]||[])[0]===E&&r[1]),!1===p)while(o=++a&&o&&o[u]||(p=a=0)||s.pop())if((m?fe(o,c):1===o.nodeType)&&++p&&(f&&((i=o[S]||(o[S]={}))[d]=[E,p]),o===e))break;return(p-=g)===h||p%h==0&&0<=p/h}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||I.error("unsupported pseudo: "+e);return a[S]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?F(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=se.call(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:F(function(e){var r=[],i=[],s=ne(e.replace(ve,"$1"));return s[S]?F(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:F(function(t){return function(e){return 0<I(t,e).length}}),contains:F(function(t){return t=t.replace(O,P),function(e){return-1<(e.textContent||ce.text(e)).indexOf(t)}}),lang:F(function(n){return A.test(n||"")||I.error("unsupported lang: "+n),n=n.replace(O,P).toLowerCase(),function(e){var t;do{if(t=C?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=ie.location&&ie.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===r},focus:function(e){return e===function(){try{return T.activeElement}catch(e){}}()&&T.hasFocus()&&!!(e.type||e.href||~e.tabIndex)},enabled:z(!1),disabled:z(!0),checked:function(e){return fe(e,"input")&&!!e.checked||fe(e,"option")&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return q.test(e.nodeName)},input:function(e){return N.test(e.nodeName)},button:function(e){return fe(e,"input")&&"button"===e.type||fe(e,"button")},text:function(e){var t;return fe(e,"input")&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:X(function(){return[0]}),last:X(function(e,t){return[t-1]}),eq:X(function(e,t,n){return[n<0?n+t:n]}),even:X(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:X(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:X(function(e,t,n){var r;for(r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:X(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=B(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=_(e);function G(){}function Y(e,t){var n,r,i,o,a,s,u,l=c[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=y.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=m.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(ve," ")}),a=a.slice(n.length)),b.filter)!(r=D[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?I.error(e):c(e,s).slice(0)}function Q(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function J(a,e,t){var s=e.dir,u=e.next,l=u||s,c=t&&"parentNode"===l,f=n++;return e.first?function(e,t,n){while(e=e[s])if(1===e.nodeType||c)return a(e,t,n);return!1}:function(e,t,n){var r,i,o=[E,f];if(n){while(e=e[s])if((1===e.nodeType||c)&&a(e,t,n))return!0}else while(e=e[s])if(1===e.nodeType||c)if(i=e[S]||(e[S]={}),u&&fe(e,u))e=e[s]||e;else{if((r=i[l])&&r[0]===E&&r[1]===f)return o[2]=r[2];if((i[l]=o)[2]=a(e,t,n))return!0}return!1}}function K(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Z(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function ee(d,h,g,v,y,e){return v&&!v[S]&&(v=ee(v)),y&&!y[S]&&(y=ee(y,e)),F(function(e,t,n,r){var i,o,a,s,u=[],l=[],c=t.length,f=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)I(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),p=!d||!e&&h?f:Z(f,u,d,n,r);if(g?g(p,s=y||(e?d:c||v)?[]:t,n,r):s=p,v){i=Z(s,l),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(s[l[o]]=!(p[l[o]]=a))}if(e){if(y||d){if(y){i=[],o=s.length;while(o--)(a=s[o])&&i.push(p[o]=a);y(null,s=[],i,r)}o=s.length;while(o--)(a=s[o])&&-1<(i=y?se.call(e,a):u[o])&&(e[i]=!(t[i]=a))}}else s=Z(s===t?s.splice(c,s.length):s),y?y(null,t,s,r):k.apply(t,s)})}function te(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=J(function(e){return e===i},a,!0),l=J(function(e){return-1<se.call(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!=w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[J(K(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[S]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return ee(1<s&&K(c),1<s&&Q(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(ve,"$1"),t,s<n&&te(e.slice(s,n)),n<r&&te(e=e.slice(n)),n<r&&Q(e))}c.push(t)}return K(c)}function ne(e,t){var n,v,y,m,x,r,i=[],o=[],a=u[e+" "];if(!a){t||(t=Y(e)),n=t.length;while(n--)(a=te(t[n]))[S]?i.push(a):o.push(a);(a=u(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=E+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t==T||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument==T||(V(o),n=!C);while(s=v[a++])if(s(o,t||T,n)){k.call(r,o);break}i&&(E=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=pe.call(r));f=Z(f)}k.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&ce.uniqueSort(r)}return i&&(E=h,w=p),c},m?F(r):r))).selector=e}return a}function re(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&Y(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&C&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(O,P),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=D.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(O,P),H.test(o[0].type)&&U(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&Q(o)))return k.apply(n,r),n;break}}}return(l||ne(e,c))(r,t,!C,n,!t||H.test(e)&&U(t.parentNode)||t),n}G.prototype=b.filters=b.pseudos,b.setFilters=new G,le.sortStable=S.split("").sort(l).join("")===S,V(),le.sortDetached=$(function(e){return 1&e.compareDocumentPosition(T.createElement("fieldset"))}),ce.find=I,ce.expr[":"]=ce.expr.pseudos,ce.unique=ce.uniqueSort,I.compile=ne,I.select=re,I.setDocument=V,I.tokenize=Y,I.escape=ce.escapeSelector,I.getText=ce.text,I.isXML=ce.isXMLDoc,I.selectors=ce.expr,I.support=ce.support,I.uniqueSort=ce.uniqueSort}();var d=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&ce(e).is(n))break;r.push(e)}return r},h=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},b=ce.expr.match.needsContext,w=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function T(e,n,r){return v(n)?ce.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?ce.grep(e,function(e){return e===n!==r}):"string"!=typeof n?ce.grep(e,function(e){return-1<se.call(n,e)!==r}):ce.filter(n,e,r)}ce.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?ce.find.matchesSelector(r,e)?[r]:[]:ce.find.matches(e,ce.grep(t,function(e){return 1===e.nodeType}))},ce.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(ce(e).filter(function(){for(t=0;t<r;t++)if(ce.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)ce.find(e,i[t],n);return 1<r?ce.uniqueSort(n):n},filter:function(e){return this.pushStack(T(this,e||[],!1))},not:function(e){return this.pushStack(T(this,e||[],!0))},is:function(e){return!!T(this,"string"==typeof e&&b.test(e)?ce(e):e||[],!1).length}});var k,S=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(ce.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||k,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:S.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof ce?t[0]:t,ce.merge(this,ce.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:C,!0)),w.test(r[1])&&ce.isPlainObject(t))for(r in t)v(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=C.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):v(e)?void 0!==n.ready?n.ready(e):e(ce):ce.makeArray(e,this)}).prototype=ce.fn,k=ce(C);var E=/^(?:parents|prev(?:Until|All))/,j={children:!0,contents:!0,next:!0,prev:!0};function A(e,t){while((e=e[t])&&1!==e.nodeType);return e}ce.fn.extend({has:function(e){var t=ce(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(ce.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&ce(e);if(!b.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&ce.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?ce.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?se.call(ce(e),this[0]):se.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(ce.uniqueSort(ce.merge(this.get(),ce(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),ce.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return d(e,"parentNode")},parentsUntil:function(e,t,n){return d(e,"parentNode",n)},next:function(e){return A(e,"nextSibling")},prev:function(e){return A(e,"previousSibling")},nextAll:function(e){return d(e,"nextSibling")},prevAll:function(e){return d(e,"previousSibling")},nextUntil:function(e,t,n){return d(e,"nextSibling",n)},prevUntil:function(e,t,n){return d(e,"previousSibling",n)},siblings:function(e){return h((e.parentNode||{}).firstChild,e)},children:function(e){return h(e.firstChild)},contents:function(e){return null!=e.contentDocument&&r(e.contentDocument)?e.contentDocument:(fe(e,"template")&&(e=e.content||e),ce.merge([],e.childNodes))}},function(r,i){ce.fn[r]=function(e,t){var n=ce.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=ce.filter(t,n)),1<this.length&&(j[r]||ce.uniqueSort(n),E.test(r)&&n.reverse()),this.pushStack(n)}});var D=/[^\x20\t\r\n\f]+/g;function N(e){return e}function q(e){throw e}function L(e,t,n,r){var i;try{e&&v(i=e.promise)?i.call(e).done(t).fail(n):e&&v(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}ce.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},ce.each(e.match(D)||[],function(e,t){n[t]=!0}),n):ce.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){ce.each(e,function(e,t){v(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==x(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return ce.each(arguments,function(e,t){var n;while(-1<(n=ce.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<ce.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},ce.extend({Deferred:function(e){var o=[["notify","progress",ce.Callbacks("memory"),ce.Callbacks("memory"),2],["resolve","done",ce.Callbacks("once memory"),ce.Callbacks("once memory"),0,"resolved"],["reject","fail",ce.Callbacks("once memory"),ce.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return ce.Deferred(function(r){ce.each(o,function(e,t){var n=v(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&v(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,v(t)?s?t.call(e,l(u,o,N,s),l(u,o,q,s)):(u++,t.call(e,l(u,o,N,s),l(u,o,q,s),l(u,o,N,o.notifyWith))):(a!==N&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){ce.Deferred.exceptionHook&&ce.Deferred.exceptionHook(e,t.error),u<=i+1&&(a!==q&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(ce.Deferred.getErrorHook?t.error=ce.Deferred.getErrorHook():ce.Deferred.getStackHook&&(t.error=ce.Deferred.getStackHook()),ie.setTimeout(t))}}return ce.Deferred(function(e){o[0][3].add(l(0,e,v(r)?r:N,e.notifyWith)),o[1][3].add(l(0,e,v(t)?t:N)),o[2][3].add(l(0,e,v(n)?n:q))}).promise()},promise:function(e){return null!=e?ce.extend(e,a):a}},s={};return ce.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=ae.call(arguments),o=ce.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?ae.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(L(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||v(i[t]&&i[t].then)))return o.then();while(t--)L(i[t],a(t),o.reject);return o.promise()}});var H=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;ce.Deferred.exceptionHook=function(e,t){ie.console&&ie.console.warn&&e&&H.test(e.name)&&ie.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},ce.readyException=function(e){ie.setTimeout(function(){throw e})};var O=ce.Deferred();function P(){C.removeEventListener("DOMContentLoaded",P),ie.removeEventListener("load",P),ce.ready()}ce.fn.ready=function(e){return O.then(e)["catch"](function(e){ce.readyException(e)}),this},ce.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--ce.readyWait:ce.isReady)||(ce.isReady=!0)!==e&&0<--ce.readyWait||O.resolveWith(C,[ce])}}),ce.ready.then=O.then,"complete"===C.readyState||"loading"!==C.readyState&&!C.documentElement.doScroll?ie.setTimeout(ce.ready):(C.addEventListener("DOMContentLoaded",P),ie.addEventListener("load",P));var M=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===x(n))for(s in i=!0,n)M(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,v(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(ce(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},R=/^-ms-/,I=/-([a-z])/g;function W(e,t){return t.toUpperCase()}function F(e){return e.replace(R,"ms-").replace(I,W)}var $=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function B(){this.expando=ce.expando+B.uid++}B.uid=1,B.prototype={cache:function(e){var t=e[this.expando];return t||(t={},$(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[F(t)]=n;else for(r in t)i[F(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][F(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(F):(t=F(t))in r?[t]:t.match(D)||[]).length;while(n--)delete r[t[n]]}(void 0===t||ce.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!ce.isEmptyObject(t)}};var _=new B,z=new B,X=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,U=/[A-Z]/g;function V(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(U,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:X.test(i)?JSON.parse(i):i)}catch(e){}z.set(e,t,n)}else n=void 0;return n}ce.extend({hasData:function(e){return z.hasData(e)||_.hasData(e)},data:function(e,t,n){return z.access(e,t,n)},removeData:function(e,t){z.remove(e,t)},_data:function(e,t,n){return _.access(e,t,n)},_removeData:function(e,t){_.remove(e,t)}}),ce.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=z.get(o),1===o.nodeType&&!_.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=F(r.slice(5)),V(o,r,i[r]));_.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){z.set(this,n)}):M(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=z.get(o,n))?t:void 0!==(t=V(o,n))?t:void 0;this.each(function(){z.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){z.remove(this,e)})}}),ce.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=_.get(e,t),n&&(!r||Array.isArray(n)?r=_.access(e,t,ce.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=ce.queue(e,t),r=n.length,i=n.shift(),o=ce._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){ce.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return _.get(e,n)||_.access(e,n,{empty:ce.Callbacks("once memory").add(function(){_.remove(e,[t+"queue",n])})})}}),ce.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?ce.queue(this[0],t):void 0===n?this:this.each(function(){var e=ce.queue(this,t,n);ce._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&ce.dequeue(this,t)})},dequeue:function(e){return this.each(function(){ce.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=ce.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=_.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var G=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,Y=new RegExp("^(?:([+-])=|)("+G+")([a-z%]*)$","i"),Q=["Top","Right","Bottom","Left"],J=C.documentElement,K=function(e){return ce.contains(e.ownerDocument,e)},Z={composed:!0};J.getRootNode&&(K=function(e){return ce.contains(e.ownerDocument,e)||e.getRootNode(Z)===e.ownerDocument});var ee=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&K(e)&&"none"===ce.css(e,"display")};function te(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return ce.css(e,t,"")},u=s(),l=n&&n[3]||(ce.cssNumber[t]?"":"px"),c=e.nodeType&&(ce.cssNumber[t]||"px"!==l&&+u)&&Y.exec(ce.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)ce.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,ce.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ne={};function re(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=_.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&ee(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ne[s])||(o=a.body.appendChild(a.createElement(s)),u=ce.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ne[s]=u)))):"none"!==n&&(l[c]="none",_.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}ce.fn.extend({show:function(){return re(this,!0)},hide:function(){return re(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){ee(this)?ce(this).show():ce(this).hide()})}});var xe,be,we=/^(?:checkbox|radio)$/i,Te=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,Ce=/^$|^module$|\/(?:java|ecma)script/i;xe=C.createDocumentFragment().appendChild(C.createElement("div")),(be=C.createElement("input")).setAttribute("type","radio"),be.setAttribute("checked","checked"),be.setAttribute("name","t"),xe.appendChild(be),le.checkClone=xe.cloneNode(!0).cloneNode(!0).lastChild.checked,xe.innerHTML="<textarea>x</textarea>",le.noCloneChecked=!!xe.cloneNode(!0).lastChild.defaultValue,xe.innerHTML="<option></option>",le.option=!!xe.lastChild;var ke={thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function Se(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&fe(e,t)?ce.merge([e],n):n}function Ee(e,t){for(var n=0,r=e.length;n<r;n++)_.set(e[n],"globalEval",!t||_.get(t[n],"globalEval"))}ke.tbody=ke.tfoot=ke.colgroup=ke.caption=ke.thead,ke.th=ke.td,le.option||(ke.optgroup=ke.option=[1,"<select multiple='multiple'>","</select>"]);var je=/<|&#?\w+;/;function Ae(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===x(o))ce.merge(p,o.nodeType?[o]:o);else if(je.test(o)){a=a||f.appendChild(t.createElement("div")),s=(Te.exec(o)||["",""])[1].toLowerCase(),u=ke[s]||ke._default,a.innerHTML=u[1]+ce.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;ce.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<ce.inArray(o,r))i&&i.push(o);else if(l=K(o),a=Se(f.appendChild(o),"script"),l&&Ee(a),n){c=0;while(o=a[c++])Ce.test(o.type||"")&&n.push(o)}return f}var De=/^([^.]*)(?:\.(.+)|)/;function Ne(){return!0}function qe(){return!1}function Le(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Le(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=qe;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return ce().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=ce.guid++)),e.each(function(){ce.event.add(this,t,i,r,n)})}function He(e,r,t){t?(_.set(e,r,!1),ce.event.add(e,r,{namespace:!1,handler:function(e){var t,n=_.get(this,r);if(1&e.isTrigger&&this[r]){if(n)(ce.event.special[r]||{}).delegateType&&e.stopPropagation();else if(n=ae.call(arguments),_.set(this,r,n),this[r](),t=_.get(this,r),_.set(this,r,!1),n!==t)return e.stopImmediatePropagation(),e.preventDefault(),t}else n&&(_.set(this,r,ce.event.trigger(n[0],n.slice(1),this)),e.stopPropagation(),e.isImmediatePropagationStopped=Ne)}})):void 0===_.get(e,r)&&ce.event.add(e,r,Ne)}ce.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=_.get(t);if($(t)){n.handler&&(n=(o=n).handler,i=o.selector),i&&ce.find.matchesSelector(J,i),n.guid||(n.guid=ce.guid++),(u=v.events)||(u=v.events=Object.create(null)),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof ce&&ce.event.triggered!==e.type?ce.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(D)||[""]).length;while(l--)d=g=(s=De.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=ce.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=ce.event.special[d]||{},c=ce.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&ce.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),ce.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=_.hasData(e)&&_.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(D)||[""]).length;while(l--)if(d=g=(s=De.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=ce.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||ce.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)ce.event.remove(e,d+t[l],n,r,!0);ce.isEmptyObject(u)&&_.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=new Array(arguments.length),u=ce.event.fix(e),l=(_.get(this,"events")||Object.create(null))[u.type]||[],c=ce.event.special[u.type]||{};for(s[0]=u,t=1;t<arguments.length;t++)s[t]=arguments[t];if(u.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,u)){a=ce.event.handlers.call(this,u,l),t=0;while((i=a[t++])&&!u.isPropagationStopped()){u.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!u.isImmediatePropagationStopped())u.rnamespace&&!1!==o.namespace&&!u.rnamespace.test(o.namespace)||(u.handleObj=o,u.data=o.data,void 0!==(r=((ce.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,s))&&!1===(u.result=r)&&(u.preventDefault(),u.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,u),u.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<ce(i,this).index(l):ce.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(ce.Event.prototype,t,{enumerable:!0,configurable:!0,get:v(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[ce.expando]?e:new ce.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return we.test(t.type)&&t.click&&fe(t,"input")&&He(t,"click",!0),!1},trigger:function(e){var t=this||e;return we.test(t.type)&&t.click&&fe(t,"input")&&He(t,"click"),!0},_default:function(e){var t=e.target;return we.test(t.type)&&t.click&&fe(t,"input")&&_.get(t,"click")||fe(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},ce.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},ce.Event=function(e,t){if(!(this instanceof ce.Event))return new ce.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?Ne:qe,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&ce.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[ce.expando]=!0},ce.Event.prototype={constructor:ce.Event,isDefaultPrevented:qe,isPropagationStopped:qe,isImmediatePropagationStopped:qe,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=Ne,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=Ne,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=Ne,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},ce.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:!0},ce.event.addProp),ce.each({focus:"focusin",blur:"focusout"},function(r,i){function o(e){if(C.documentMode){var t=_.get(this,"handle"),n=ce.event.fix(e);n.type="focusin"===e.type?"focus":"blur",n.isSimulated=!0,t(e),n.target===n.currentTarget&&t(n)}else ce.event.simulate(i,e.target,ce.event.fix(e))}ce.event.special[r]={setup:function(){var e;if(He(this,r,!0),!C.documentMode)return!1;(e=_.get(this,i))||this.addEventListener(i,o),_.set(this,i,(e||0)+1)},trigger:function(){return He(this,r),!0},teardown:function(){var e;if(!C.documentMode)return!1;(e=_.get(this,i)-1)?_.set(this,i,e):(this.removeEventListener(i,o),_.remove(this,i))},_default:function(e){return _.get(e.target,r)},delegateType:i},ce.event.special[i]={setup:function(){var e=this.ownerDocument||this.document||this,t=C.documentMode?this:e,n=_.get(t,i);n||(C.documentMode?this.addEventListener(i,o):e.addEventListener(r,o,!0)),_.set(t,i,(n||0)+1)},teardown:function(){var e=this.ownerDocument||this.document||this,t=C.documentMode?this:e,n=_.get(t,i)-1;n?_.set(t,i,n):(C.documentMode?this.removeEventListener(i,o):e.removeEventListener(r,o,!0),_.remove(t,i))}}}),ce.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){ce.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||ce.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),ce.fn.extend({on:function(e,t,n,r){return Le(this,e,t,n,r)},one:function(e,t,n,r){return Le(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,ce(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=qe),this.each(function(){ce.event.remove(this,e,n,t)})}});var Oe=/<script|<style|<link/i,Pe=/checked\s*(?:[^=]|=\s*.checked.)/i,Me=/^\s*<!\[CDATA\[|\]\]>\s*$/g;function Re(e,t){return fe(e,"table")&&fe(11!==t.nodeType?t:t.firstChild,"tr")&&ce(e).children("tbody")[0]||e}function Ie(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function We(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Fe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(_.hasData(e)&&(s=_.get(e).events))for(i in _.remove(t,"handle events"),s)for(n=0,r=s[i].length;n<r;n++)ce.event.add(t,i,s[i][n]);z.hasData(e)&&(o=z.access(e),a=ce.extend({},o),z.set(t,a))}}function $e(n,r,i,o){r=g(r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=v(d);if(h||1<f&&"string"==typeof d&&!le.checkClone&&Pe.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),$e(t,r,i,o)});if(f&&(t=(e=Ae(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=ce.map(Se(e,"script"),Ie)).length;c<f;c++)u=e,c!==p&&(u=ce.clone(u,!0,!0),s&&ce.merge(a,Se(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,ce.map(a,We),c=0;c<s;c++)u=a[c],Ce.test(u.type||"")&&!_.access(u,"globalEval")&&ce.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?ce._evalUrl&&!u.noModule&&ce._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")},l):m(u.textContent.replace(Me,""),u,l))}return n}function Be(e,t,n){for(var r,i=t?ce.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||ce.cleanData(Se(r)),r.parentNode&&(n&&K(r)&&Ee(Se(r,"script")),r.parentNode.removeChild(r));return e}ce.extend({htmlPrefilter:function(e){return e},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=K(e);if(!(le.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||ce.isXMLDoc(e)))for(a=Se(c),r=0,i=(o=Se(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&we.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||Se(e),a=a||Se(c),r=0,i=o.length;r<i;r++)Fe(o[r],a[r]);else Fe(e,c);return 0<(a=Se(c,"script")).length&&Ee(a,!f&&Se(e,"script")),c},cleanData:function(e){for(var t,n,r,i=ce.event.special,o=0;void 0!==(n=e[o]);o++)if($(n)){if(t=n[_.expando]){if(t.events)for(r in t.events)i[r]?ce.event.remove(n,r):ce.removeEvent(n,r,t.handle);n[_.expando]=void 0}n[z.expando]&&(n[z.expando]=void 0)}}}),ce.fn.extend({detach:function(e){return Be(this,e,!0)},remove:function(e){return Be(this,e)},text:function(e){return M(this,function(e){return void 0===e?ce.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return $e(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Re(this,e).appendChild(e)})},prepend:function(){return $e(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Re(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return $e(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return $e(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(ce.cleanData(Se(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return ce.clone(this,e,t)})},html:function(e){return M(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Oe.test(e)&&!ke[(Te.exec(e)||["",""])[1].toLowerCase()]){e=ce.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(ce.cleanData(Se(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return $e(this,arguments,function(e){var t=this.parentNode;ce.inArray(this,n)<0&&(ce.cleanData(Se(this)),t&&t.replaceChild(e,this))},n)}}),ce.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){ce.fn[e]=function(e){for(var t,n=[],r=ce(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),ce(r[o])[a](t),s.apply(n,t.get());return this.pushStack(n)}});var _e=new RegExp("^("+G+")(?!px)[a-z%]+$","i"),ze=/^--/,Xe=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=ie),t.getComputedStyle(e)},Ue=function(e,t,n){var r,i,o={};for(i in t)o[i]=e.style[i],e.style[i]=t[i];for(i in r=n.call(e),t)e.style[i]=o[i];return r},Ve=new RegExp(Q.join("|"),"i");function Ge(e,t,n){var r,i,o,a,s=ze.test(t),u=e.style;return(n=n||Xe(e))&&(a=n.getPropertyValue(t)||n[t],s&&a&&(a=a.replace(ve,"$1")||void 0),""!==a||K(e)||(a=ce.style(e,t)),!le.pixelBoxStyles()&&_e.test(a)&&Ve.test(t)&&(r=u.width,i=u.minWidth,o=u.maxWidth,u.minWidth=u.maxWidth=u.width=a,a=n.width,u.width=r,u.minWidth=i,u.maxWidth=o)),void 0!==a?a+"":a}function Ye(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(l){u.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",l.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",J.appendChild(u).appendChild(l);var e=ie.getComputedStyle(l);n="1%"!==e.top,s=12===t(e.marginLeft),l.style.right="60%",o=36===t(e.right),r=36===t(e.width),l.style.position="absolute",i=12===t(l.offsetWidth/3),J.removeChild(u),l=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s,u=C.createElement("div"),l=C.createElement("div");l.style&&(l.style.backgroundClip="content-box",l.cloneNode(!0).style.backgroundClip="",le.clearCloneStyle="content-box"===l.style.backgroundClip,ce.extend(le,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),s},scrollboxSize:function(){return e(),i},reliableTrDimensions:function(){var e,t,n,r;return null==a&&(e=C.createElement("table"),t=C.createElement("tr"),n=C.createElement("div"),e.style.cssText="position:absolute;left:-11111px;border-collapse:separate",t.style.cssText="box-sizing:content-box;border:1px solid",t.style.height="1px",n.style.height="9px",n.style.display="block",J.appendChild(e).appendChild(t).appendChild(n),r=ie.getComputedStyle(t),a=parseInt(r.height,10)+parseInt(r.borderTopWidth,10)+parseInt(r.borderBottomWidth,10)===t.offsetHeight,J.removeChild(e)),a}}))}();var Qe=["Webkit","Moz","ms"],Je=C.createElement("div").style,Ke={};function Ze(e){var t=ce.cssProps[e]||Ke[e];return t||(e in Je?e:Ke[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Qe.length;while(n--)if((e=Qe[n]+t)in Je)return e}(e)||e)}var et=/^(none|table(?!-c[ea]).+)/,tt={position:"absolute",visibility:"hidden",display:"block"},nt={letterSpacing:"0",fontWeight:"400"};function rt(e,t,n){var r=Y.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function it(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0,l=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(l+=ce.css(e,n+Q[a],!0,i)),r?("content"===n&&(u-=ce.css(e,"padding"+Q[a],!0,i)),"margin"!==n&&(u-=ce.css(e,"border"+Q[a]+"Width",!0,i))):(u+=ce.css(e,"padding"+Q[a],!0,i),"padding"!==n?u+=ce.css(e,"border"+Q[a]+"Width",!0,i):s+=ce.css(e,"border"+Q[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u+l}function ot(e,t,n){var r=Xe(e),i=(!le.boxSizingReliable()||n)&&"border-box"===ce.css(e,"boxSizing",!1,r),o=i,a=Ge(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if(_e.test(a)){if(!n)return a;a="auto"}return(!le.boxSizingReliable()&&i||!le.reliableTrDimensions()&&fe(e,"tr")||"auto"===a||!parseFloat(a)&&"inline"===ce.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===ce.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+it(e,t,n||(i?"border":"content"),o,r,a)+"px"}function at(e,t,n,r,i){return new at.prototype.init(e,t,n,r,i)}ce.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Ge(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,aspectRatio:!0,borderImageSlice:!0,columnCount:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,scale:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeMiterlimit:!0,strokeOpacity:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=F(t),u=ze.test(t),l=e.style;if(u||(t=Ze(s)),a=ce.cssHooks[t]||ce.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=Y.exec(n))&&i[1]&&(n=te(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(ce.cssNumber[s]?"":"px")),le.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=F(t);return ze.test(t)||(t=Ze(s)),(a=ce.cssHooks[t]||ce.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Ge(e,t,r)),"normal"===i&&t in nt&&(i=nt[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),ce.each(["height","width"],function(e,u){ce.cssHooks[u]={get:function(e,t,n){if(t)return!et.test(ce.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?ot(e,u,n):Ue(e,tt,function(){return ot(e,u,n)})},set:function(e,t,n){var r,i=Xe(e),o=!le.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===ce.css(e,"boxSizing",!1,i),s=n?it(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-it(e,u,"border",!1,i)-.5)),s&&(r=Y.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=ce.css(e,u)),rt(0,t,s)}}}),ce.cssHooks.marginLeft=Ye(le.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Ge(e,"marginLeft"))||e.getBoundingClientRect().left-Ue(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),ce.each({margin:"",padding:"",border:"Width"},function(i,o){ce.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+Q[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(ce.cssHooks[i+o].set=rt)}),ce.fn.extend({css:function(e,t){return M(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Xe(e),i=t.length;a<i;a++)o[t[a]]=ce.css(e,t[a],!1,r);return o}return void 0!==n?ce.style(e,t,n):ce.css(e,t)},e,t,1<arguments.length)}}),((ce.Tween=at).prototype={constructor:at,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||ce.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(ce.cssNumber[n]?"":"px")},cur:function(){var e=at.propHooks[this.prop];return e&&e.get?e.get(this):at.propHooks._default.get(this)},run:function(e){var t,n=at.propHooks[this.prop];return this.options.duration?this.pos=t=ce.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):at.propHooks._default.set(this),this}}).init.prototype=at.prototype,(at.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=ce.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){ce.fx.step[e.prop]?ce.fx.step[e.prop](e):1!==e.elem.nodeType||!ce.cssHooks[e.prop]&&null==e.elem.style[Ze(e.prop)]?e.elem[e.prop]=e.now:ce.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=at.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},ce.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},ce.fx=at.prototype.init,ce.fx.step={};var st,ut,lt,ct,ft=/^(?:toggle|show|hide)$/,pt=/queueHooks$/;function dt(){ut&&(!1===C.hidden&&ie.requestAnimationFrame?ie.requestAnimationFrame(dt):ie.setTimeout(dt,ce.fx.interval),ce.fx.tick())}function ht(){return ie.setTimeout(function(){st=void 0}),st=Date.now()}function gt(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=Q[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function vt(e,t,n){for(var r,i=(yt.tweeners[t]||[]).concat(yt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function yt(o,e,t){var n,a,r=0,i=yt.prefilters.length,s=ce.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=st||ht(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:ce.extend({},e),opts:ce.extend(!0,{specialEasing:{},easing:ce.easing._default},t),originalProperties:e,originalOptions:t,startTime:st||ht(),duration:t.duration,tweens:[],createTween:function(e,t){var n=ce.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=F(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=ce.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=yt.prefilters[r].call(l,o,c,l.opts))return v(n.stop)&&(ce._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return ce.map(c,vt,l),v(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),ce.fx.timer(ce.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}ce.Animation=ce.extend(yt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return te(n.elem,e,Y.exec(t),n),n}]},tweener:function(e,t){v(e)?(t=e,e=["*"]):e=e.match(D);for(var n,r=0,i=e.length;r<i;r++)n=e[r],yt.tweeners[n]=yt.tweeners[n]||[],yt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&ee(e),v=_.get(e,"fxshow");for(r in n.queue||(null==(a=ce._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,ce.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],ft.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||ce.style(e,r)}if((u=!ce.isEmptyObject(t))||!ce.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=_.get(e,"display")),"none"===(c=ce.css(e,"display"))&&(l?c=l:(re([e],!0),l=e.style.display||l,c=ce.css(e,"display"),re([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===ce.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=_.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&re([e],!0),p.done(function(){for(r in g||re([e]),_.remove(e,"fxshow"),d)ce.style(e,r,d[r])})),u=vt(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?yt.prefilters.unshift(e):yt.prefilters.push(e)}}),ce.speed=function(e,t,n){var r=e&&"object"==typeof e?ce.extend({},e):{complete:n||!n&&t||v(e)&&e,duration:e,easing:n&&t||t&&!v(t)&&t};return ce.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in ce.fx.speeds?r.duration=ce.fx.speeds[r.duration]:r.duration=ce.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){v(r.old)&&r.old.call(this),r.queue&&ce.dequeue(this,r.queue)},r},ce.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ee).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=ce.isEmptyObject(t),o=ce.speed(e,n,r),a=function(){var e=yt(this,ce.extend({},t),o);(i||_.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=ce.timers,r=_.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&pt.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||ce.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=_.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=ce.timers,o=n?n.length:0;for(t.finish=!0,ce.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),ce.each(["toggle","show","hide"],function(e,r){var i=ce.fn[r];ce.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(gt(r,!0),e,t,n)}}),ce.each({slideDown:gt("show"),slideUp:gt("hide"),slideToggle:gt("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){ce.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),ce.timers=[],ce.fx.tick=function(){var e,t=0,n=ce.timers;for(st=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||ce.fx.stop(),st=void 0},ce.fx.timer=function(e){ce.timers.push(e),ce.fx.start()},ce.fx.interval=13,ce.fx.start=function(){ut||(ut=!0,dt())},ce.fx.stop=function(){ut=null},ce.fx.speeds={slow:600,fast:200,_default:400},ce.fn.delay=function(r,e){return r=ce.fx&&ce.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=ie.setTimeout(e,r);t.stop=function(){ie.clearTimeout(n)}})},lt=C.createElement("input"),ct=C.createElement("select").appendChild(C.createElement("option")),lt.type="checkbox",le.checkOn=""!==lt.value,le.optSelected=ct.selected,(lt=C.createElement("input")).value="t",lt.type="radio",le.radioValue="t"===lt.value;var mt,xt=ce.expr.attrHandle;ce.fn.extend({attr:function(e,t){return M(this,ce.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){ce.removeAttr(this,e)})}}),ce.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?ce.prop(e,t,n):(1===o&&ce.isXMLDoc(e)||(i=ce.attrHooks[t.toLowerCase()]||(ce.expr.match.bool.test(t)?mt:void 0)),void 0!==n?null===n?void ce.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=ce.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!le.radioValue&&"radio"===t&&fe(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(D);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),mt={set:function(e,t,n){return!1===t?ce.removeAttr(e,n):e.setAttribute(n,n),n}},ce.each(ce.expr.match.bool.source.match(/\w+/g),function(e,t){var a=xt[t]||ce.find.attr;xt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=xt[o],xt[o]=r,r=null!=a(e,t,n)?o:null,xt[o]=i),r}});var bt=/^(?:input|select|textarea|button)$/i,wt=/^(?:a|area)$/i;function Tt(e){return(e.match(D)||[]).join(" ")}function Ct(e){return e.getAttribute&&e.getAttribute("class")||""}function kt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(D)||[]}ce.fn.extend({prop:function(e,t){return M(this,ce.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[ce.propFix[e]||e]})}}),ce.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&ce.isXMLDoc(e)||(t=ce.propFix[t]||t,i=ce.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=ce.find.attr(e,"tabindex");return t?parseInt(t,10):bt.test(e.nodeName)||wt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),le.optSelected||(ce.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),ce.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){ce.propFix[this.toLowerCase()]=this}),ce.fn.extend({addClass:function(t){var e,n,r,i,o,a;return v(t)?this.each(function(e){ce(this).addClass(t.call(this,e,Ct(this)))}):(e=kt(t)).length?this.each(function(){if(r=Ct(this),n=1===this.nodeType&&" "+Tt(r)+" "){for(o=0;o<e.length;o++)i=e[o],n.indexOf(" "+i+" ")<0&&(n+=i+" ");a=Tt(n),r!==a&&this.setAttribute("class",a)}}):this},removeClass:function(t){var e,n,r,i,o,a;return v(t)?this.each(function(e){ce(this).removeClass(t.call(this,e,Ct(this)))}):arguments.length?(e=kt(t)).length?this.each(function(){if(r=Ct(this),n=1===this.nodeType&&" "+Tt(r)+" "){for(o=0;o<e.length;o++){i=e[o];while(-1<n.indexOf(" "+i+" "))n=n.replace(" "+i+" "," ")}a=Tt(n),r!==a&&this.setAttribute("class",a)}}):this:this.attr("class","")},toggleClass:function(t,n){var e,r,i,o,a=typeof t,s="string"===a||Array.isArray(t);return v(t)?this.each(function(e){ce(this).toggleClass(t.call(this,e,Ct(this),n),n)}):"boolean"==typeof n&&s?n?this.addClass(t):this.removeClass(t):(e=kt(t),this.each(function(){if(s)for(o=ce(this),i=0;i<e.length;i++)r=e[i],o.hasClass(r)?o.removeClass(r):o.addClass(r);else void 0!==t&&"boolean"!==a||((r=Ct(this))&&_.set(this,"__className__",r),this.setAttribute&&this.setAttribute("class",r||!1===t?"":_.get(this,"__className__")||""))}))},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+Tt(Ct(n))+" ").indexOf(t))return!0;return!1}});var St=/\r/g;ce.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=v(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,ce(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=ce.map(t,function(e){return null==e?"":e+""})),(r=ce.valHooks[this.type]||ce.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=ce.valHooks[t.type]||ce.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(St,""):null==e?"":e:void 0}}),ce.extend({valHooks:{option:{get:function(e){var t=ce.find.attr(e,"value");return null!=t?t:Tt(ce.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!fe(n.parentNode,"optgroup"))){if(t=ce(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=ce.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<ce.inArray(ce.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),ce.each(["radio","checkbox"],function(){ce.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<ce.inArray(ce(e).val(),t)}},le.checkOn||(ce.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Et=ie.location,jt={guid:Date.now()},At=/\?/;ce.parseXML=function(e){var t,n;if(!e||"string"!=typeof e)return null;try{t=(new ie.DOMParser).parseFromString(e,"text/xml")}catch(e){}return n=t&&t.getElementsByTagName("parsererror")[0],t&&!n||ce.error("Invalid XML: "+(n?ce.map(n.childNodes,function(e){return e.textContent}).join("\n"):e)),t};var Dt=/^(?:focusinfocus|focusoutblur)$/,Nt=function(e){e.stopPropagation()};ce.extend(ce.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||C],d=ue.call(e,"type")?e.type:e,h=ue.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||C,3!==n.nodeType&&8!==n.nodeType&&!Dt.test(d+ce.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[ce.expando]?e:new ce.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:ce.makeArray(t,[e]),c=ce.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!y(n)){for(s=c.delegateType||d,Dt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||C)&&p.push(a.defaultView||a.parentWindow||ie)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(_.get(o,"events")||Object.create(null))[e.type]&&_.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&$(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!$(n)||u&&v(n[d])&&!y(n)&&((a=n[u])&&(n[u]=null),ce.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,Nt),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,Nt),ce.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=ce.extend(new ce.Event,n,{type:e,isSimulated:!0});ce.event.trigger(r,null,t)}}),ce.fn.extend({trigger:function(e,t){return this.each(function(){ce.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return ce.event.trigger(e,t,n,!0)}});var qt=/\[\]$/,Lt=/\r?\n/g,Ht=/^(?:submit|button|image|reset|file)$/i,Ot=/^(?:input|select|textarea|keygen)/i;function Pt(n,e,r,i){var t;if(Array.isArray(e))ce.each(e,function(e,t){r||qt.test(n)?i(n,t):Pt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==x(e))i(n,e);else for(t in e)Pt(n+"["+t+"]",e[t],r,i)}ce.param=function(e,t){var n,r=[],i=function(e,t){var n=v(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!ce.isPlainObject(e))ce.each(e,function(){i(this.name,this.value)});else for(n in e)Pt(n,e[n],t,i);return r.join("&")},ce.fn.extend({serialize:function(){return ce.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=ce.prop(this,"elements");return e?ce.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!ce(this).is(":disabled")&&Ot.test(this.nodeName)&&!Ht.test(e)&&(this.checked||!we.test(e))}).map(function(e,t){var n=ce(this).val();return null==n?null:Array.isArray(n)?ce.map(n,function(e){return{name:t.name,value:e.replace(Lt,"\r\n")}}):{name:t.name,value:n.replace(Lt,"\r\n")}}).get()}});var Mt=/%20/g,Rt=/#.*$/,It=/([?&])_=[^&]*/,Wt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Ft=/^(?:GET|HEAD)$/,$t=/^\/\//,Bt={},_t={},zt="*/".concat("*"),Xt=C.createElement("a");function Ut(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(D)||[];if(v(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function Vt(t,i,o,a){var s={},u=t===_t;function l(e){var r;return s[e]=!0,ce.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function Gt(e,t){var n,r,i=ce.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&ce.extend(!0,e,r),e}Xt.href=Et.href,ce.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Et.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":zt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":ce.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Gt(Gt(e,ce.ajaxSettings),t):Gt(ce.ajaxSettings,e)},ajaxPrefilter:Ut(Bt),ajaxTransport:Ut(_t),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=ce.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?ce(y):ce.event,x=ce.Deferred(),b=ce.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Wt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||Et.href)+"").replace($t,Et.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(D)||[""],null==v.crossDomain){r=C.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Xt.protocol+"//"+Xt.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=ce.param(v.data,v.traditional)),Vt(Bt,v,t,T),h)return T;for(i in(g=ce.event&&v.global)&&0==ce.active++&&ce.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Ft.test(v.type),f=v.url.replace(Rt,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Mt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(At.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(It,"$1"),o=(At.test(f)?"&":"?")+"_="+jt.guid+++o),v.url=f+o),v.ifModified&&(ce.lastModified[f]&&T.setRequestHeader("If-Modified-Since",ce.lastModified[f]),ce.etag[f]&&T.setRequestHeader("If-None-Match",ce.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+zt+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=Vt(_t,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=ie.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&ie.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),!i&&-1<ce.inArray("script",v.dataTypes)&&ce.inArray("json",v.dataTypes)<0&&(v.converters["text script"]=function(){}),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(ce.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(ce.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--ce.active||ce.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return ce.get(e,t,n,"json")},getScript:function(e,t){return ce.get(e,void 0,t,"script")}}),ce.each(["get","post"],function(e,i){ce[i]=function(e,t,n,r){return v(t)&&(r=r||n,n=t,t=void 0),ce.ajax(ce.extend({url:e,type:i,dataType:r,data:t,success:n},ce.isPlainObject(e)&&e))}}),ce.ajaxPrefilter(function(e){var t;for(t in e.headers)"content-type"===t.toLowerCase()&&(e.contentType=e.headers[t]||"")}),ce._evalUrl=function(e,t,n){return ce.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){ce.globalEval(e,t,n)}})},ce.fn.extend({wrapAll:function(e){var t;return this[0]&&(v(e)&&(e=e.call(this[0])),t=ce(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return v(n)?this.each(function(e){ce(this).wrapInner(n.call(this,e))}):this.each(function(){var e=ce(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=v(t);return this.each(function(e){ce(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){ce(this).replaceWith(this.childNodes)}),this}}),ce.expr.pseudos.hidden=function(e){return!ce.expr.pseudos.visible(e)},ce.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},ce.ajaxSettings.xhr=function(){try{return new ie.XMLHttpRequest}catch(e){}};var Yt={0:200,1223:204},Qt=ce.ajaxSettings.xhr();le.cors=!!Qt&&"withCredentials"in Qt,le.ajax=Qt=!!Qt,ce.ajaxTransport(function(i){var o,a;if(le.cors||Qt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Yt[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&ie.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),ce.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),ce.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return ce.globalEval(e),e}}}),ce.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),ce.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=ce("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),C.head.appendChild(r[0])},abort:function(){i&&i()}}});var Jt,Kt=[],Zt=/(=)\?(?=&|$)|\?\?/;ce.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Kt.pop()||ce.expando+"_"+jt.guid++;return this[e]=!0,e}}),ce.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Zt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Zt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=v(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Zt,"$1"+r):!1!==e.jsonp&&(e.url+=(At.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||ce.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=ie[r],ie[r]=function(){o=arguments},n.always(function(){void 0===i?ce(ie).removeProp(r):ie[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Kt.push(r)),o&&v(i)&&i(o[0]),o=i=void 0}),"script"}),le.createHTMLDocument=((Jt=C.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Jt.childNodes.length),ce.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(le.createHTMLDocument?((r=(t=C.implementation.createHTMLDocument("")).createElement("base")).href=C.location.href,t.head.appendChild(r)):t=C),o=!n&&[],(i=w.exec(e))?[t.createElement(i[1])]:(i=Ae([e],t,o),o&&o.length&&ce(o).remove(),ce.merge([],i.childNodes)));var r,i,o},ce.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=Tt(e.slice(s)),e=e.slice(0,s)),v(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&ce.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?ce("<div>").append(ce.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},ce.expr.pseudos.animated=function(t){return ce.grep(ce.timers,function(e){return t===e.elem}).length},ce.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=ce.css(e,"position"),c=ce(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=ce.css(e,"top"),u=ce.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),v(t)&&(t=t.call(e,n,ce.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},ce.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){ce.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===ce.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===ce.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=ce(e).offset()).top+=ce.css(e,"borderTopWidth",!0),i.left+=ce.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-ce.css(r,"marginTop",!0),left:t.left-i.left-ce.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===ce.css(e,"position"))e=e.offsetParent;return e||J})}}),ce.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;ce.fn[t]=function(e){return M(this,function(e,t,n){var r;if(y(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),ce.each(["top","left"],function(e,n){ce.cssHooks[n]=Ye(le.pixelPosition,function(e,t){if(t)return t=Ge(e,n),_e.test(t)?ce(e).position()[n]+"px":t})}),ce.each({Height:"height",Width:"width"},function(a,s){ce.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){ce.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return M(this,function(e,t,n){var r;return y(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?ce.css(e,t,i):ce.style(e,t,n,i)},s,n?e:void 0,n)}})}),ce.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){ce.fn[t]=function(e){return this.on(t,e)}}),ce.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.on("mouseenter",e).on("mouseleave",t||e)}}),ce.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){ce.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}});var en=/^[\s\uFEFF\xA0]+|([^\s\uFEFF\xA0])[\s\uFEFF\xA0]+$/g;ce.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),v(e))return r=ae.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(ae.call(arguments)))}).guid=e.guid=e.guid||ce.guid++,i},ce.holdReady=function(e){e?ce.readyWait++:ce.ready(!0)},ce.isArray=Array.isArray,ce.parseJSON=JSON.parse,ce.nodeName=fe,ce.isFunction=v,ce.isWindow=y,ce.camelCase=F,ce.type=x,ce.now=Date.now,ce.isNumeric=function(e){var t=ce.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},ce.trim=function(e){return null==e?"":(e+"").replace(en,"$1")},"function"==typeof define&&define.amd&&define("jquery",[],function(){return ce});var tn=ie.jQuery,nn=ie.$;return ce.noConflict=function(e){return ie.$===ce&&(ie.$=nn),e&&ie.jQuery===ce&&(ie.jQuery=tn),ce},"undefined"==typeof e&&(ie.jQuery=ie.$=ce),ce}); +!(function (e, t) { + 'use strict' + 'object' == typeof module && 'object' == typeof module.exports + ? (module.exports = e.document + ? t(e, !0) + : function (e) { + if (!e.document) throw new Error('jQuery requires a window with a document') + return t(e) + }) + : t(e) +})('undefined' != typeof window ? window : this, function (ie, e) { + 'use strict' + var oe = [], + r = Object.getPrototypeOf, + ae = oe.slice, + g = oe.flat + ? function (e) { + return oe.flat.call(e) + } + : function (e) { + return oe.concat.apply([], e) + }, + s = oe.push, + se = oe.indexOf, + n = {}, + i = n.toString, + ue = n.hasOwnProperty, + o = ue.toString, + a = o.call(Object), + le = {}, + v = function (e) { + return 'function' == typeof e && 'number' != typeof e.nodeType && 'function' != typeof e.item + }, + y = function (e) { + return null != e && e === e.window + }, + C = ie.document, + u = { type: !0, src: !0, nonce: !0, noModule: !0 } + function m(e, t, n) { + var r, + i, + o = (n = n || C).createElement('script') + if (((o.text = e), t)) for (r in u) (i = t[r] || (t.getAttribute && t.getAttribute(r))) && o.setAttribute(r, i) + n.head.appendChild(o).parentNode.removeChild(o) + } + function x(e) { + return null == e ? e + '' : 'object' == typeof e || 'function' == typeof e ? n[i.call(e)] || 'object' : typeof e + } + var t = '3.7.1', + l = /HTML$/i, + ce = function (e, t) { + return new ce.fn.init(e, t) + } + function c(e) { + var t = !!e && 'length' in e && e.length, + n = x(e) + return !v(e) && !y(e) && ('array' === n || 0 === t || ('number' == typeof t && 0 < t && t - 1 in e)) + } + function fe(e, t) { + return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase() + } + ;((ce.fn = ce.prototype = + { + jquery: t, + constructor: ce, + length: 0, + toArray: function () { + return ae.call(this) + }, + get: function (e) { + return null == e ? ae.call(this) : e < 0 ? this[e + this.length] : this[e] + }, + pushStack: function (e) { + var t = ce.merge(this.constructor(), e) + return ((t.prevObject = this), t) + }, + each: function (e) { + return ce.each(this, e) + }, + map: function (n) { + return this.pushStack( + ce.map(this, function (e, t) { + return n.call(e, t, e) + }), + ) + }, + slice: function () { + return this.pushStack(ae.apply(this, arguments)) + }, + first: function () { + return this.eq(0) + }, + last: function () { + return this.eq(-1) + }, + even: function () { + return this.pushStack( + ce.grep(this, function (e, t) { + return (t + 1) % 2 + }), + ) + }, + odd: function () { + return this.pushStack( + ce.grep(this, function (e, t) { + return t % 2 + }), + ) + }, + eq: function (e) { + var t = this.length, + n = +e + (e < 0 ? t : 0) + return this.pushStack(0 <= n && n < t ? [this[n]] : []) + }, + end: function () { + return this.prevObject || this.constructor() + }, + push: s, + sort: oe.sort, + splice: oe.splice, + }), + (ce.extend = ce.fn.extend = + function () { + var e, + t, + n, + r, + i, + o, + a = arguments[0] || {}, + s = 1, + u = arguments.length, + l = !1 + for ( + 'boolean' == typeof a && ((l = a), (a = arguments[s] || {}), s++), 'object' == typeof a || v(a) || (a = {}), s === u && ((a = this), s--); + s < u; + s++ + ) + if (null != (e = arguments[s])) + for (t in e) + ((r = e[t]), + '__proto__' !== t && + a !== r && + (l && r && (ce.isPlainObject(r) || (i = Array.isArray(r))) + ? ((n = a[t]), (o = i && !Array.isArray(n) ? [] : i || ce.isPlainObject(n) ? n : {}), (i = !1), (a[t] = ce.extend(l, o, r))) + : void 0 !== r && (a[t] = r))) + return a + }), + ce.extend({ + expando: 'jQuery' + (t + Math.random()).replace(/\D/g, ''), + isReady: !0, + error: function (e) { + throw new Error(e) + }, + noop: function () {}, + isPlainObject: function (e) { + var t, n + return ( + !(!e || '[object Object]' !== i.call(e)) && + (!(t = r(e)) || ('function' == typeof (n = ue.call(t, 'constructor') && t.constructor) && o.call(n) === a)) + ) + }, + isEmptyObject: function (e) { + var t + for (t in e) return !1 + return !0 + }, + globalEval: function (e, t, n) { + m(e, { nonce: t && t.nonce }, n) + }, + each: function (e, t) { + var n, + r = 0 + if (c(e)) { + for (n = e.length; r < n; r++) if (!1 === t.call(e[r], r, e[r])) break + } else for (r in e) if (!1 === t.call(e[r], r, e[r])) break + return e + }, + text: function (e) { + var t, + n = '', + r = 0, + i = e.nodeType + if (!i) while ((t = e[r++])) n += ce.text(t) + return 1 === i || 11 === i ? e.textContent : 9 === i ? e.documentElement.textContent : 3 === i || 4 === i ? e.nodeValue : n + }, + makeArray: function (e, t) { + var n = t || [] + return (null != e && (c(Object(e)) ? ce.merge(n, 'string' == typeof e ? [e] : e) : s.call(n, e)), n) + }, + inArray: function (e, t, n) { + return null == t ? -1 : se.call(t, e, n) + }, + isXMLDoc: function (e) { + var t = e && e.namespaceURI, + n = e && (e.ownerDocument || e).documentElement + return !l.test(t || (n && n.nodeName) || 'HTML') + }, + merge: function (e, t) { + for (var n = +t.length, r = 0, i = e.length; r < n; r++) e[i++] = t[r] + return ((e.length = i), e) + }, + grep: function (e, t, n) { + for (var r = [], i = 0, o = e.length, a = !n; i < o; i++) !t(e[i], i) !== a && r.push(e[i]) + return r + }, + map: function (e, t, n) { + var r, + i, + o = 0, + a = [] + if (c(e)) for (r = e.length; o < r; o++) null != (i = t(e[o], o, n)) && a.push(i) + else for (o in e) null != (i = t(e[o], o, n)) && a.push(i) + return g(a) + }, + guid: 1, + support: le, + }), + 'function' == typeof Symbol && (ce.fn[Symbol.iterator] = oe[Symbol.iterator]), + ce.each('Boolean Number String Function Array Date RegExp Object Error Symbol'.split(' '), function (e, t) { + n['[object ' + t + ']'] = t.toLowerCase() + })) + var pe = oe.pop, + de = oe.sort, + he = oe.splice, + ge = '[\\x20\\t\\r\\n\\f]', + ve = new RegExp('^' + ge + '+|((?:^|[^\\\\])(?:\\\\.)*)' + ge + '+$', 'g') + ce.contains = function (e, t) { + var n = t && t.parentNode + return e === n || !(!n || 1 !== n.nodeType || !(e.contains ? e.contains(n) : e.compareDocumentPosition && 16 & e.compareDocumentPosition(n))) + } + var f = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g + function p(e, t) { + return t ? ('\0' === e ? '\ufffd' : e.slice(0, -1) + '\\' + e.charCodeAt(e.length - 1).toString(16) + ' ') : '\\' + e + } + ce.escapeSelector = function (e) { + return (e + '').replace(f, p) + } + var ye = C, + me = s + !(function () { + var e, + b, + w, + o, + a, + T, + r, + C, + d, + i, + k = me, + S = ce.expando, + E = 0, + n = 0, + s = W(), + c = W(), + u = W(), + h = W(), + l = function (e, t) { + return (e === t && (a = !0), 0) + }, + f = 'checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped', + t = '(?:\\\\[\\da-fA-F]{1,6}' + ge + '?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+', + p = + '\\[' + + ge + + '*(' + + t + + ')(?:' + + ge + + '*([*^$|!~]?=)' + + ge + + '*(?:\'((?:\\\\.|[^\\\\\'])*)\'|"((?:\\\\.|[^\\\\"])*)"|(' + + t + + '))|)' + + ge + + '*\\]', + g = ':(' + t + ')(?:\\(((\'((?:\\\\.|[^\\\\\'])*)\'|"((?:\\\\.|[^\\\\"])*)")|((?:\\\\.|[^\\\\()[\\]]|' + p + ')*)|.*)\\)|)', + v = new RegExp(ge + '+', 'g'), + y = new RegExp('^' + ge + '*,' + ge + '*'), + m = new RegExp('^' + ge + '*([>+~]|' + ge + ')' + ge + '*'), + x = new RegExp(ge + '|>'), + j = new RegExp(g), + A = new RegExp('^' + t + '$'), + D = { + ID: new RegExp('^#(' + t + ')'), + CLASS: new RegExp('^\\.(' + t + ')'), + TAG: new RegExp('^(' + t + '|[*])'), + ATTR: new RegExp('^' + p), + PSEUDO: new RegExp('^' + g), + CHILD: new RegExp( + '^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(' + + ge + + '*(even|odd|(([+-]|)(\\d*)n|)' + + ge + + '*(?:([+-]|)' + + ge + + '*(\\d+)|))' + + ge + + '*\\)|)', + 'i', + ), + bool: new RegExp('^(?:' + f + ')$', 'i'), + needsContext: new RegExp( + '^' + ge + '*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(' + ge + '*((?:-\\d)?\\d*)' + ge + '*\\)|)(?=[^-]|$)', + 'i', + ), + }, + N = /^(?:input|select|textarea|button)$/i, + q = /^h\d$/i, + L = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + H = /[+~]/, + O = new RegExp('\\\\[\\da-fA-F]{1,6}' + ge + '?|\\\\([^\\r\\n\\f])', 'g'), + P = function (e, t) { + var n = '0x' + e.slice(1) - 65536 + return t || (n < 0 ? String.fromCharCode(n + 65536) : String.fromCharCode((n >> 10) | 55296, (1023 & n) | 56320)) + }, + M = function () { + V() + }, + R = J( + function (e) { + return !0 === e.disabled && fe(e, 'fieldset') + }, + { dir: 'parentNode', next: 'legend' }, + ) + try { + ;(k.apply((oe = ae.call(ye.childNodes)), ye.childNodes), oe[ye.childNodes.length].nodeType) + } catch (e) { + k = { + apply: function (e, t) { + me.apply(e, ae.call(t)) + }, + call: function (e) { + me.apply(e, ae.call(arguments, 1)) + }, + } + } + function I(t, e, n, r) { + var i, + o, + a, + s, + u, + l, + c, + f = e && e.ownerDocument, + p = e ? e.nodeType : 9 + if (((n = n || []), 'string' != typeof t || !t || (1 !== p && 9 !== p && 11 !== p))) return n + if (!r && (V(e), (e = e || T), C)) { + if (11 !== p && (u = L.exec(t))) + if ((i = u[1])) { + if (9 === p) { + if (!(a = e.getElementById(i))) return n + if (a.id === i) return (k.call(n, a), n) + } else if (f && (a = f.getElementById(i)) && I.contains(e, a) && a.id === i) return (k.call(n, a), n) + } else { + if (u[2]) return (k.apply(n, e.getElementsByTagName(t)), n) + if ((i = u[3]) && e.getElementsByClassName) return (k.apply(n, e.getElementsByClassName(i)), n) + } + if (!(h[t + ' '] || (d && d.test(t)))) { + if (((c = t), (f = e), 1 === p && (x.test(t) || m.test(t)))) { + ;(((f = (H.test(t) && U(e.parentNode)) || e) == e && le.scope) || + ((s = e.getAttribute('id')) ? (s = ce.escapeSelector(s)) : e.setAttribute('id', (s = S))), + (o = (l = Y(t)).length)) + while (o--) l[o] = (s ? '#' + s : ':scope') + ' ' + Q(l[o]) + c = l.join(',') + } + try { + return (k.apply(n, f.querySelectorAll(c)), n) + } catch (e) { + h(t, !0) + } finally { + s === S && e.removeAttribute('id') + } + } + } + return re(t.replace(ve, '$1'), e, n, r) + } + function W() { + var r = [] + return function e(t, n) { + return (r.push(t + ' ') > b.cacheLength && delete e[r.shift()], (e[t + ' '] = n)) + } + } + function F(e) { + return ((e[S] = !0), e) + } + function $(e) { + var t = T.createElement('fieldset') + try { + return !!e(t) + } catch (e) { + return !1 + } finally { + ;(t.parentNode && t.parentNode.removeChild(t), (t = null)) + } + } + function B(t) { + return function (e) { + return fe(e, 'input') && e.type === t + } + } + function _(t) { + return function (e) { + return (fe(e, 'input') || fe(e, 'button')) && e.type === t + } + } + function z(t) { + return function (e) { + return 'form' in e + ? e.parentNode && !1 === e.disabled + ? 'label' in e + ? 'label' in e.parentNode + ? e.parentNode.disabled === t + : e.disabled === t + : e.isDisabled === t || (e.isDisabled !== !t && R(e) === t) + : e.disabled === t + : 'label' in e && e.disabled === t + } + } + function X(a) { + return F(function (o) { + return ( + (o = +o), + F(function (e, t) { + var n, + r = a([], e.length, o), + i = r.length + while (i--) e[(n = r[i])] && (e[n] = !(t[n] = e[n])) + }) + ) + }) + } + function U(e) { + return e && 'undefined' != typeof e.getElementsByTagName && e + } + function V(e) { + var t, + n = e ? e.ownerDocument || e : ye + return ( + n != T && + 9 === n.nodeType && + n.documentElement && + ((r = (T = n).documentElement), + (C = !ce.isXMLDoc(T)), + (i = r.matches || r.webkitMatchesSelector || r.msMatchesSelector), + r.msMatchesSelector && ye != T && (t = T.defaultView) && t.top !== t && t.addEventListener('unload', M), + (le.getById = $(function (e) { + return ((r.appendChild(e).id = ce.expando), !T.getElementsByName || !T.getElementsByName(ce.expando).length) + })), + (le.disconnectedMatch = $(function (e) { + return i.call(e, '*') + })), + (le.scope = $(function () { + return T.querySelectorAll(':scope') + })), + (le.cssHas = $(function () { + try { + return (T.querySelector(':has(*,:jqfake)'), !1) + } catch (e) { + return !0 + } + })), + le.getById + ? ((b.filter.ID = function (e) { + var t = e.replace(O, P) + return function (e) { + return e.getAttribute('id') === t + } + }), + (b.find.ID = function (e, t) { + if ('undefined' != typeof t.getElementById && C) { + var n = t.getElementById(e) + return n ? [n] : [] + } + })) + : ((b.filter.ID = function (e) { + var n = e.replace(O, P) + return function (e) { + var t = 'undefined' != typeof e.getAttributeNode && e.getAttributeNode('id') + return t && t.value === n + } + }), + (b.find.ID = function (e, t) { + if ('undefined' != typeof t.getElementById && C) { + var n, + r, + i, + o = t.getElementById(e) + if (o) { + if ((n = o.getAttributeNode('id')) && n.value === e) return [o] + ;((i = t.getElementsByName(e)), (r = 0)) + while ((o = i[r++])) if ((n = o.getAttributeNode('id')) && n.value === e) return [o] + } + return [] + } + })), + (b.find.TAG = function (e, t) { + return 'undefined' != typeof t.getElementsByTagName ? t.getElementsByTagName(e) : t.querySelectorAll(e) + }), + (b.find.CLASS = function (e, t) { + if ('undefined' != typeof t.getElementsByClassName && C) return t.getElementsByClassName(e) + }), + (d = []), + $(function (e) { + var t + ;((r.appendChild(e).innerHTML = + "<a id='" + + S + + "' href='' disabled='disabled'></a><select id='" + + S + + "-\r\\' disabled='disabled'><option selected=''></option></select>"), + e.querySelectorAll('[selected]').length || d.push('\\[' + ge + '*(?:value|' + f + ')'), + e.querySelectorAll('[id~=' + S + '-]').length || d.push('~='), + e.querySelectorAll('a#' + S + '+*').length || d.push('.#.+[+~]'), + e.querySelectorAll(':checked').length || d.push(':checked'), + (t = T.createElement('input')).setAttribute('type', 'hidden'), + e.appendChild(t).setAttribute('name', 'D'), + (r.appendChild(e).disabled = !0), + 2 !== e.querySelectorAll(':disabled').length && d.push(':enabled', ':disabled'), + (t = T.createElement('input')).setAttribute('name', ''), + e.appendChild(t), + e.querySelectorAll("[name='']").length || d.push('\\[' + ge + '*name' + ge + '*=' + ge + '*(?:\'\'|"")')) + }), + le.cssHas || d.push(':has'), + (d = d.length && new RegExp(d.join('|'))), + (l = function (e, t) { + if (e === t) return ((a = !0), 0) + var n = !e.compareDocumentPosition - !t.compareDocumentPosition + return ( + n || + (1 & (n = (e.ownerDocument || e) == (t.ownerDocument || t) ? e.compareDocumentPosition(t) : 1) || + (!le.sortDetached && t.compareDocumentPosition(e) === n) + ? e === T || (e.ownerDocument == ye && I.contains(ye, e)) + ? -1 + : t === T || (t.ownerDocument == ye && I.contains(ye, t)) + ? 1 + : o + ? se.call(o, e) - se.call(o, t) + : 0 + : 4 & n + ? -1 + : 1) + ) + })), + T + ) + } + for (e in ((I.matches = function (e, t) { + return I(e, null, null, t) + }), + (I.matchesSelector = function (e, t) { + if ((V(e), C && !h[t + ' '] && (!d || !d.test(t)))) + try { + var n = i.call(e, t) + if (n || le.disconnectedMatch || (e.document && 11 !== e.document.nodeType)) return n + } catch (e) { + h(t, !0) + } + return 0 < I(t, T, null, [e]).length + }), + (I.contains = function (e, t) { + return ((e.ownerDocument || e) != T && V(e), ce.contains(e, t)) + }), + (I.attr = function (e, t) { + ;(e.ownerDocument || e) != T && V(e) + var n = b.attrHandle[t.toLowerCase()], + r = n && ue.call(b.attrHandle, t.toLowerCase()) ? n(e, t, !C) : void 0 + return void 0 !== r ? r : e.getAttribute(t) + }), + (I.error = function (e) { + throw new Error('Syntax error, unrecognized expression: ' + e) + }), + (ce.uniqueSort = function (e) { + var t, + n = [], + r = 0, + i = 0 + if (((a = !le.sortStable), (o = !le.sortStable && ae.call(e, 0)), de.call(e, l), a)) { + while ((t = e[i++])) t === e[i] && (r = n.push(i)) + while (r--) he.call(e, n[r], 1) + } + return ((o = null), e) + }), + (ce.fn.uniqueSort = function () { + return this.pushStack(ce.uniqueSort(ae.apply(this))) + }), + ((b = ce.expr = + { + cacheLength: 50, + createPseudo: F, + match: D, + attrHandle: {}, + find: {}, + relative: { + '>': { dir: 'parentNode', first: !0 }, + ' ': { dir: 'parentNode' }, + '+': { dir: 'previousSibling', first: !0 }, + '~': { dir: 'previousSibling' }, + }, + preFilter: { + ATTR: function (e) { + return ( + (e[1] = e[1].replace(O, P)), + (e[3] = (e[3] || e[4] || e[5] || '').replace(O, P)), + '~=' === e[2] && (e[3] = ' ' + e[3] + ' '), + e.slice(0, 4) + ) + }, + CHILD: function (e) { + return ( + (e[1] = e[1].toLowerCase()), + 'nth' === e[1].slice(0, 3) + ? (e[3] || I.error(e[0]), + (e[4] = +(e[4] ? e[5] + (e[6] || 1) : 2 * ('even' === e[3] || 'odd' === e[3]))), + (e[5] = +(e[7] + e[8] || 'odd' === e[3]))) + : e[3] && I.error(e[0]), + e + ) + }, + PSEUDO: function (e) { + var t, + n = !e[6] && e[2] + return D.CHILD.test(e[0]) + ? null + : (e[3] + ? (e[2] = e[4] || e[5] || '') + : n && + j.test(n) && + (t = Y(n, !0)) && + (t = n.indexOf(')', n.length - t) - n.length) && + ((e[0] = e[0].slice(0, t)), (e[2] = n.slice(0, t))), + e.slice(0, 3)) + }, + }, + filter: { + TAG: function (e) { + var t = e.replace(O, P).toLowerCase() + return '*' === e + ? function () { + return !0 + } + : function (e) { + return fe(e, t) + } + }, + CLASS: function (e) { + var t = s[e + ' '] + return ( + t || + ((t = new RegExp('(^|' + ge + ')' + e + '(' + ge + '|$)')) && + s(e, function (e) { + return t.test( + ('string' == typeof e.className && e.className) || ('undefined' != typeof e.getAttribute && e.getAttribute('class')) || '', + ) + })) + ) + }, + ATTR: function (n, r, i) { + return function (e) { + var t = I.attr(e, n) + return null == t + ? '!=' === r + : !r || + ((t += ''), + '=' === r + ? t === i + : '!=' === r + ? t !== i + : '^=' === r + ? i && 0 === t.indexOf(i) + : '*=' === r + ? i && -1 < t.indexOf(i) + : '$=' === r + ? i && t.slice(-i.length) === i + : '~=' === r + ? -1 < (' ' + t.replace(v, ' ') + ' ').indexOf(i) + : '|=' === r && (t === i || t.slice(0, i.length + 1) === i + '-')) + } + }, + CHILD: function (d, e, t, h, g) { + var v = 'nth' !== d.slice(0, 3), + y = 'last' !== d.slice(-4), + m = 'of-type' === e + return 1 === h && 0 === g + ? function (e) { + return !!e.parentNode + } + : function (e, t, n) { + var r, + i, + o, + a, + s, + u = v !== y ? 'nextSibling' : 'previousSibling', + l = e.parentNode, + c = m && e.nodeName.toLowerCase(), + f = !n && !m, + p = !1 + if (l) { + if (v) { + while (u) { + o = e + while ((o = o[u])) if (m ? fe(o, c) : 1 === o.nodeType) return !1 + s = u = 'only' === d && !s && 'nextSibling' + } + return !0 + } + if (((s = [y ? l.firstChild : l.lastChild]), y && f)) { + ;((p = (a = (r = (i = l[S] || (l[S] = {}))[d] || [])[0] === E && r[1]) && r[2]), (o = a && l.childNodes[a])) + while ((o = (++a && o && o[u]) || (p = a = 0) || s.pop())) + if (1 === o.nodeType && ++p && o === e) { + i[d] = [E, a, p] + break + } + } else if ((f && (p = a = (r = (i = e[S] || (e[S] = {}))[d] || [])[0] === E && r[1]), !1 === p)) + while ((o = (++a && o && o[u]) || (p = a = 0) || s.pop())) + if ((m ? fe(o, c) : 1 === o.nodeType) && ++p && (f && ((i = o[S] || (o[S] = {}))[d] = [E, p]), o === e)) break + return (p -= g) === h || (p % h == 0 && 0 <= p / h) + } + } + }, + PSEUDO: function (e, o) { + var t, + a = b.pseudos[e] || b.setFilters[e.toLowerCase()] || I.error('unsupported pseudo: ' + e) + return a[S] + ? a(o) + : 1 < a.length + ? ((t = [e, e, '', o]), + b.setFilters.hasOwnProperty(e.toLowerCase()) + ? F(function (e, t) { + var n, + r = a(e, o), + i = r.length + while (i--) e[(n = se.call(e, r[i]))] = !(t[n] = r[i]) + }) + : function (e) { + return a(e, 0, t) + }) + : a + }, + }, + pseudos: { + not: F(function (e) { + var r = [], + i = [], + s = ne(e.replace(ve, '$1')) + return s[S] + ? F(function (e, t, n, r) { + var i, + o = s(e, null, r, []), + a = e.length + while (a--) (i = o[a]) && (e[a] = !(t[a] = i)) + }) + : function (e, t, n) { + return ((r[0] = e), s(r, null, n, i), (r[0] = null), !i.pop()) + } + }), + has: F(function (t) { + return function (e) { + return 0 < I(t, e).length + } + }), + contains: F(function (t) { + return ( + (t = t.replace(O, P)), + function (e) { + return -1 < (e.textContent || ce.text(e)).indexOf(t) + } + ) + }), + lang: F(function (n) { + return ( + A.test(n || '') || I.error('unsupported lang: ' + n), + (n = n.replace(O, P).toLowerCase()), + function (e) { + var t + do { + if ((t = C ? e.lang : e.getAttribute('xml:lang') || e.getAttribute('lang'))) + return (t = t.toLowerCase()) === n || 0 === t.indexOf(n + '-') + } while ((e = e.parentNode) && 1 === e.nodeType) + return !1 + } + ) + }), + target: function (e) { + var t = ie.location && ie.location.hash + return t && t.slice(1) === e.id + }, + root: function (e) { + return e === r + }, + focus: function (e) { + return ( + e === + (function () { + try { + return T.activeElement + } catch (e) {} + })() && + T.hasFocus() && + !!(e.type || e.href || ~e.tabIndex) + ) + }, + enabled: z(!1), + disabled: z(!0), + checked: function (e) { + return (fe(e, 'input') && !!e.checked) || (fe(e, 'option') && !!e.selected) + }, + selected: function (e) { + return (e.parentNode && e.parentNode.selectedIndex, !0 === e.selected) + }, + empty: function (e) { + for (e = e.firstChild; e; e = e.nextSibling) if (e.nodeType < 6) return !1 + return !0 + }, + parent: function (e) { + return !b.pseudos.empty(e) + }, + header: function (e) { + return q.test(e.nodeName) + }, + input: function (e) { + return N.test(e.nodeName) + }, + button: function (e) { + return (fe(e, 'input') && 'button' === e.type) || fe(e, 'button') + }, + text: function (e) { + var t + return fe(e, 'input') && 'text' === e.type && (null == (t = e.getAttribute('type')) || 'text' === t.toLowerCase()) + }, + first: X(function () { + return [0] + }), + last: X(function (e, t) { + return [t - 1] + }), + eq: X(function (e, t, n) { + return [n < 0 ? n + t : n] + }), + even: X(function (e, t) { + for (var n = 0; n < t; n += 2) e.push(n) + return e + }), + odd: X(function (e, t) { + for (var n = 1; n < t; n += 2) e.push(n) + return e + }), + lt: X(function (e, t, n) { + var r + for (r = n < 0 ? n + t : t < n ? t : n; 0 <= --r; ) e.push(r) + return e + }), + gt: X(function (e, t, n) { + for (var r = n < 0 ? n + t : n; ++r < t; ) e.push(r) + return e + }), + }, + }).pseudos.nth = b.pseudos.eq), + { radio: !0, checkbox: !0, file: !0, password: !0, image: !0 })) + b.pseudos[e] = B(e) + for (e in { submit: !0, reset: !0 }) b.pseudos[e] = _(e) + function G() {} + function Y(e, t) { + var n, + r, + i, + o, + a, + s, + u, + l = c[e + ' '] + if (l) return t ? 0 : l.slice(0) + ;((a = e), (s = []), (u = b.preFilter)) + while (a) { + for (o in ((n && !(r = y.exec(a))) || (r && (a = a.slice(r[0].length) || a), s.push((i = []))), + (n = !1), + (r = m.exec(a)) && ((n = r.shift()), i.push({ value: n, type: r[0].replace(ve, ' ') }), (a = a.slice(n.length))), + b.filter)) + !(r = D[o].exec(a)) || (u[o] && !(r = u[o](r))) || ((n = r.shift()), i.push({ value: n, type: o, matches: r }), (a = a.slice(n.length))) + if (!n) break + } + return t ? a.length : a ? I.error(e) : c(e, s).slice(0) + } + function Q(e) { + for (var t = 0, n = e.length, r = ''; t < n; t++) r += e[t].value + return r + } + function J(a, e, t) { + var s = e.dir, + u = e.next, + l = u || s, + c = t && 'parentNode' === l, + f = n++ + return e.first + ? function (e, t, n) { + while ((e = e[s])) if (1 === e.nodeType || c) return a(e, t, n) + return !1 + } + : function (e, t, n) { + var r, + i, + o = [E, f] + if (n) { + while ((e = e[s])) if ((1 === e.nodeType || c) && a(e, t, n)) return !0 + } else + while ((e = e[s])) + if (1 === e.nodeType || c) + if (((i = e[S] || (e[S] = {})), u && fe(e, u))) e = e[s] || e + else { + if ((r = i[l]) && r[0] === E && r[1] === f) return (o[2] = r[2]) + if (((i[l] = o)[2] = a(e, t, n))) return !0 + } + return !1 + } + } + function K(i) { + return 1 < i.length + ? function (e, t, n) { + var r = i.length + while (r--) if (!i[r](e, t, n)) return !1 + return !0 + } + : i[0] + } + function Z(e, t, n, r, i) { + for (var o, a = [], s = 0, u = e.length, l = null != t; s < u; s++) (o = e[s]) && ((n && !n(o, r, i)) || (a.push(o), l && t.push(s))) + return a + } + function ee(d, h, g, v, y, e) { + return ( + v && !v[S] && (v = ee(v)), + y && !y[S] && (y = ee(y, e)), + F(function (e, t, n, r) { + var i, + o, + a, + s, + u = [], + l = [], + c = t.length, + f = + e || + (function (e, t, n) { + for (var r = 0, i = t.length; r < i; r++) I(e, t[r], n) + return n + })(h || '*', n.nodeType ? [n] : n, []), + p = !d || (!e && h) ? f : Z(f, u, d, n, r) + if ((g ? g(p, (s = y || (e ? d : c || v) ? [] : t), n, r) : (s = p), v)) { + ;((i = Z(s, l)), v(i, [], n, r), (o = i.length)) + while (o--) (a = i[o]) && (s[l[o]] = !(p[l[o]] = a)) + } + if (e) { + if (y || d) { + if (y) { + ;((i = []), (o = s.length)) + while (o--) (a = s[o]) && i.push((p[o] = a)) + y(null, (s = []), i, r) + } + o = s.length + while (o--) (a = s[o]) && -1 < (i = y ? se.call(e, a) : u[o]) && (e[i] = !(t[i] = a)) + } + } else ((s = Z(s === t ? s.splice(c, s.length) : s)), y ? y(null, t, s, r) : k.apply(t, s)) + }) + ) + } + function te(e) { + for ( + var i, + t, + n, + r = e.length, + o = b.relative[e[0].type], + a = o || b.relative[' '], + s = o ? 1 : 0, + u = J( + function (e) { + return e === i + }, + a, + !0, + ), + l = J( + function (e) { + return -1 < se.call(i, e) + }, + a, + !0, + ), + c = [ + function (e, t, n) { + var r = (!o && (n || t != w)) || ((i = t).nodeType ? u(e, t, n) : l(e, t, n)) + return ((i = null), r) + }, + ]; + s < r; + s++ + ) + if ((t = b.relative[e[s].type])) c = [J(K(c), t)] + else { + if ((t = b.filter[e[s].type].apply(null, e[s].matches))[S]) { + for (n = ++s; n < r; n++) if (b.relative[e[n].type]) break + return ee( + 1 < s && K(c), + 1 < s && Q(e.slice(0, s - 1).concat({ value: ' ' === e[s - 2].type ? '*' : '' })).replace(ve, '$1'), + t, + s < n && te(e.slice(s, n)), + n < r && te((e = e.slice(n))), + n < r && Q(e), + ) + } + c.push(t) + } + return K(c) + } + function ne(e, t) { + var n, + v, + y, + m, + x, + r, + i = [], + o = [], + a = u[e + ' '] + if (!a) { + ;(t || (t = Y(e)), (n = t.length)) + while (n--) (a = te(t[n]))[S] ? i.push(a) : o.push(a) + ;(a = u( + e, + ((v = o), + (m = 0 < (y = i).length), + (x = 0 < v.length), + (r = function (e, t, n, r, i) { + var o, + a, + s, + u = 0, + l = '0', + c = e && [], + f = [], + p = w, + d = e || (x && b.find.TAG('*', i)), + h = (E += null == p ? 1 : Math.random() || 0.1), + g = d.length + for (i && (w = t == T || t || i); l !== g && null != (o = d[l]); l++) { + if (x && o) { + ;((a = 0), t || o.ownerDocument == T || (V(o), (n = !C))) + while ((s = v[a++])) + if (s(o, t || T, n)) { + k.call(r, o) + break + } + i && (E = h) + } + m && ((o = !s && o) && u--, e && c.push(o)) + } + if (((u += l), m && l !== u)) { + a = 0 + while ((s = y[a++])) s(c, f, t, n) + if (e) { + if (0 < u) while (l--) c[l] || f[l] || (f[l] = pe.call(r)) + f = Z(f) + } + ;(k.apply(r, f), i && !e && 0 < f.length && 1 < u + y.length && ce.uniqueSort(r)) + } + return (i && ((E = h), (w = p)), c) + }), + m ? F(r) : r), + )).selector = e + } + return a + } + function re(e, t, n, r) { + var i, + o, + a, + s, + u, + l = 'function' == typeof e && e, + c = !r && Y((e = l.selector || e)) + if (((n = n || []), 1 === c.length)) { + if (2 < (o = c[0] = c[0].slice(0)).length && 'ID' === (a = o[0]).type && 9 === t.nodeType && C && b.relative[o[1].type]) { + if (!(t = (b.find.ID(a.matches[0].replace(O, P), t) || [])[0])) return n + ;(l && (t = t.parentNode), (e = e.slice(o.shift().value.length))) + } + i = D.needsContext.test(e) ? 0 : o.length + while (i--) { + if (((a = o[i]), b.relative[(s = a.type)])) break + if ((u = b.find[s]) && (r = u(a.matches[0].replace(O, P), (H.test(o[0].type) && U(t.parentNode)) || t))) { + if ((o.splice(i, 1), !(e = r.length && Q(o)))) return (k.apply(n, r), n) + break + } + } + } + return ((l || ne(e, c))(r, t, !C, n, !t || (H.test(e) && U(t.parentNode)) || t), n) + } + ;((G.prototype = b.filters = b.pseudos), + (b.setFilters = new G()), + (le.sortStable = S.split('').sort(l).join('') === S), + V(), + (le.sortDetached = $(function (e) { + return 1 & e.compareDocumentPosition(T.createElement('fieldset')) + })), + (ce.find = I), + (ce.expr[':'] = ce.expr.pseudos), + (ce.unique = ce.uniqueSort), + (I.compile = ne), + (I.select = re), + (I.setDocument = V), + (I.tokenize = Y), + (I.escape = ce.escapeSelector), + (I.getText = ce.text), + (I.isXML = ce.isXMLDoc), + (I.selectors = ce.expr), + (I.support = ce.support), + (I.uniqueSort = ce.uniqueSort)) + })() + var d = function (e, t, n) { + var r = [], + i = void 0 !== n + while ((e = e[t]) && 9 !== e.nodeType) + if (1 === e.nodeType) { + if (i && ce(e).is(n)) break + r.push(e) + } + return r + }, + h = function (e, t) { + for (var n = []; e; e = e.nextSibling) 1 === e.nodeType && e !== t && n.push(e) + return n + }, + b = ce.expr.match.needsContext, + w = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i + function T(e, n, r) { + return v(n) + ? ce.grep(e, function (e, t) { + return !!n.call(e, t, e) !== r + }) + : n.nodeType + ? ce.grep(e, function (e) { + return (e === n) !== r + }) + : 'string' != typeof n + ? ce.grep(e, function (e) { + return -1 < se.call(n, e) !== r + }) + : ce.filter(n, e, r) + } + ;((ce.filter = function (e, t, n) { + var r = t[0] + return ( + n && (e = ':not(' + e + ')'), + 1 === t.length && 1 === r.nodeType + ? ce.find.matchesSelector(r, e) + ? [r] + : [] + : ce.find.matches( + e, + ce.grep(t, function (e) { + return 1 === e.nodeType + }), + ) + ) + }), + ce.fn.extend({ + find: function (e) { + var t, + n, + r = this.length, + i = this + if ('string' != typeof e) + return this.pushStack( + ce(e).filter(function () { + for (t = 0; t < r; t++) if (ce.contains(i[t], this)) return !0 + }), + ) + for (n = this.pushStack([]), t = 0; t < r; t++) ce.find(e, i[t], n) + return 1 < r ? ce.uniqueSort(n) : n + }, + filter: function (e) { + return this.pushStack(T(this, e || [], !1)) + }, + not: function (e) { + return this.pushStack(T(this, e || [], !0)) + }, + is: function (e) { + return !!T(this, 'string' == typeof e && b.test(e) ? ce(e) : e || [], !1).length + }, + })) + var k, + S = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/ + ;(((ce.fn.init = function (e, t, n) { + var r, i + if (!e) return this + if (((n = n || k), 'string' == typeof e)) { + if (!(r = '<' === e[0] && '>' === e[e.length - 1] && 3 <= e.length ? [null, e, null] : S.exec(e)) || (!r[1] && t)) + return !t || t.jquery ? (t || n).find(e) : this.constructor(t).find(e) + if (r[1]) { + if ( + ((t = t instanceof ce ? t[0] : t), + ce.merge(this, ce.parseHTML(r[1], t && t.nodeType ? t.ownerDocument || t : C, !0)), + w.test(r[1]) && ce.isPlainObject(t)) + ) + for (r in t) v(this[r]) ? this[r](t[r]) : this.attr(r, t[r]) + return this + } + return ((i = C.getElementById(r[2])) && ((this[0] = i), (this.length = 1)), this) + } + return e.nodeType ? ((this[0] = e), (this.length = 1), this) : v(e) ? (void 0 !== n.ready ? n.ready(e) : e(ce)) : ce.makeArray(e, this) + }).prototype = ce.fn), + (k = ce(C))) + var E = /^(?:parents|prev(?:Until|All))/, + j = { children: !0, contents: !0, next: !0, prev: !0 } + function A(e, t) { + while ((e = e[t]) && 1 !== e.nodeType); + return e + } + ;(ce.fn.extend({ + has: function (e) { + var t = ce(e, this), + n = t.length + return this.filter(function () { + for (var e = 0; e < n; e++) if (ce.contains(this, t[e])) return !0 + }) + }, + closest: function (e, t) { + var n, + r = 0, + i = this.length, + o = [], + a = 'string' != typeof e && ce(e) + if (!b.test(e)) + for (; r < i; r++) + for (n = this[r]; n && n !== t; n = n.parentNode) + if (n.nodeType < 11 && (a ? -1 < a.index(n) : 1 === n.nodeType && ce.find.matchesSelector(n, e))) { + o.push(n) + break + } + return this.pushStack(1 < o.length ? ce.uniqueSort(o) : o) + }, + index: function (e) { + return e + ? 'string' == typeof e + ? se.call(ce(e), this[0]) + : se.call(this, e.jquery ? e[0] : e) + : this[0] && this[0].parentNode + ? this.first().prevAll().length + : -1 + }, + add: function (e, t) { + return this.pushStack(ce.uniqueSort(ce.merge(this.get(), ce(e, t)))) + }, + addBack: function (e) { + return this.add(null == e ? this.prevObject : this.prevObject.filter(e)) + }, + }), + ce.each( + { + parent: function (e) { + var t = e.parentNode + return t && 11 !== t.nodeType ? t : null + }, + parents: function (e) { + return d(e, 'parentNode') + }, + parentsUntil: function (e, t, n) { + return d(e, 'parentNode', n) + }, + next: function (e) { + return A(e, 'nextSibling') + }, + prev: function (e) { + return A(e, 'previousSibling') + }, + nextAll: function (e) { + return d(e, 'nextSibling') + }, + prevAll: function (e) { + return d(e, 'previousSibling') + }, + nextUntil: function (e, t, n) { + return d(e, 'nextSibling', n) + }, + prevUntil: function (e, t, n) { + return d(e, 'previousSibling', n) + }, + siblings: function (e) { + return h((e.parentNode || {}).firstChild, e) + }, + children: function (e) { + return h(e.firstChild) + }, + contents: function (e) { + return null != e.contentDocument && r(e.contentDocument) + ? e.contentDocument + : (fe(e, 'template') && (e = e.content || e), ce.merge([], e.childNodes)) + }, + }, + function (r, i) { + ce.fn[r] = function (e, t) { + var n = ce.map(this, i, e) + return ( + 'Until' !== r.slice(-5) && (t = e), + t && 'string' == typeof t && (n = ce.filter(t, n)), + 1 < this.length && (j[r] || ce.uniqueSort(n), E.test(r) && n.reverse()), + this.pushStack(n) + ) + } + }, + )) + var D = /[^\x20\t\r\n\f]+/g + function N(e) { + return e + } + function q(e) { + throw e + } + function L(e, t, n, r) { + var i + try { + e && v((i = e.promise)) ? i.call(e).done(t).fail(n) : e && v((i = e.then)) ? i.call(e, t, n) : t.apply(void 0, [e].slice(r)) + } catch (e) { + n.apply(void 0, [e]) + } + } + ;((ce.Callbacks = function (r) { + var e, n + r = + 'string' == typeof r + ? ((e = r), + (n = {}), + ce.each(e.match(D) || [], function (e, t) { + n[t] = !0 + }), + n) + : ce.extend({}, r) + var i, + t, + o, + a, + s = [], + u = [], + l = -1, + c = function () { + for (a = a || r.once, o = i = !0; u.length; l = -1) { + t = u.shift() + while (++l < s.length) !1 === s[l].apply(t[0], t[1]) && r.stopOnFalse && ((l = s.length), (t = !1)) + } + ;(r.memory || (t = !1), (i = !1), a && (s = t ? [] : '')) + }, + f = { + add: function () { + return ( + s && + (t && !i && ((l = s.length - 1), u.push(t)), + (function n(e) { + ce.each(e, function (e, t) { + v(t) ? (r.unique && f.has(t)) || s.push(t) : t && t.length && 'string' !== x(t) && n(t) + }) + })(arguments), + t && !i && c()), + this + ) + }, + remove: function () { + return ( + ce.each(arguments, function (e, t) { + var n + while (-1 < (n = ce.inArray(t, s, n))) (s.splice(n, 1), n <= l && l--) + }), + this + ) + }, + has: function (e) { + return e ? -1 < ce.inArray(e, s) : 0 < s.length + }, + empty: function () { + return (s && (s = []), this) + }, + disable: function () { + return ((a = u = []), (s = t = ''), this) + }, + disabled: function () { + return !s + }, + lock: function () { + return ((a = u = []), t || i || (s = t = ''), this) + }, + locked: function () { + return !!a + }, + fireWith: function (e, t) { + return (a || ((t = [e, (t = t || []).slice ? t.slice() : t]), u.push(t), i || c()), this) + }, + fire: function () { + return (f.fireWith(this, arguments), this) + }, + fired: function () { + return !!o + }, + } + return f + }), + ce.extend({ + Deferred: function (e) { + var o = [ + ['notify', 'progress', ce.Callbacks('memory'), ce.Callbacks('memory'), 2], + ['resolve', 'done', ce.Callbacks('once memory'), ce.Callbacks('once memory'), 0, 'resolved'], + ['reject', 'fail', ce.Callbacks('once memory'), ce.Callbacks('once memory'), 1, 'rejected'], + ], + i = 'pending', + a = { + state: function () { + return i + }, + always: function () { + return (s.done(arguments).fail(arguments), this) + }, + catch: function (e) { + return a.then(null, e) + }, + pipe: function () { + var i = arguments + return ce + .Deferred(function (r) { + ;(ce.each(o, function (e, t) { + var n = v(i[t[4]]) && i[t[4]] + s[t[1]](function () { + var e = n && n.apply(this, arguments) + e && v(e.promise) ? e.promise().progress(r.notify).done(r.resolve).fail(r.reject) : r[t[0] + 'With'](this, n ? [e] : arguments) + }) + }), + (i = null)) + }) + .promise() + }, + then: function (t, n, r) { + var u = 0 + function l(i, o, a, s) { + return function () { + var n = this, + r = arguments, + e = function () { + var e, t + if (!(i < u)) { + if ((e = a.apply(n, r)) === o.promise()) throw new TypeError('Thenable self-resolution') + ;((t = e && ('object' == typeof e || 'function' == typeof e) && e.then), + v(t) + ? s + ? t.call(e, l(u, o, N, s), l(u, o, q, s)) + : (u++, t.call(e, l(u, o, N, s), l(u, o, q, s), l(u, o, N, o.notifyWith))) + : (a !== N && ((n = void 0), (r = [e])), (s || o.resolveWith)(n, r))) + } + }, + t = s + ? e + : function () { + try { + e() + } catch (e) { + ;(ce.Deferred.exceptionHook && ce.Deferred.exceptionHook(e, t.error), + u <= i + 1 && (a !== q && ((n = void 0), (r = [e])), o.rejectWith(n, r))) + } + } + i + ? t() + : (ce.Deferred.getErrorHook + ? (t.error = ce.Deferred.getErrorHook()) + : ce.Deferred.getStackHook && (t.error = ce.Deferred.getStackHook()), + ie.setTimeout(t)) + } + } + return ce + .Deferred(function (e) { + ;(o[0][3].add(l(0, e, v(r) ? r : N, e.notifyWith)), o[1][3].add(l(0, e, v(t) ? t : N)), o[2][3].add(l(0, e, v(n) ? n : q))) + }) + .promise() + }, + promise: function (e) { + return null != e ? ce.extend(e, a) : a + }, + }, + s = {} + return ( + ce.each(o, function (e, t) { + var n = t[2], + r = t[5] + ;((a[t[1]] = n.add), + r && + n.add( + function () { + i = r + }, + o[3 - e][2].disable, + o[3 - e][3].disable, + o[0][2].lock, + o[0][3].lock, + ), + n.add(t[3].fire), + (s[t[0]] = function () { + return (s[t[0] + 'With'](this === s ? void 0 : this, arguments), this) + }), + (s[t[0] + 'With'] = n.fireWith)) + }), + a.promise(s), + e && e.call(s, s), + s + ) + }, + when: function (e) { + var n = arguments.length, + t = n, + r = Array(t), + i = ae.call(arguments), + o = ce.Deferred(), + a = function (t) { + return function (e) { + ;((r[t] = this), (i[t] = 1 < arguments.length ? ae.call(arguments) : e), --n || o.resolveWith(r, i)) + } + } + if (n <= 1 && (L(e, o.done(a(t)).resolve, o.reject, !n), 'pending' === o.state() || v(i[t] && i[t].then))) return o.then() + while (t--) L(i[t], a(t), o.reject) + return o.promise() + }, + })) + var H = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/ + ;((ce.Deferred.exceptionHook = function (e, t) { + ie.console && ie.console.warn && e && H.test(e.name) && ie.console.warn('jQuery.Deferred exception: ' + e.message, e.stack, t) + }), + (ce.readyException = function (e) { + ie.setTimeout(function () { + throw e + }) + })) + var O = ce.Deferred() + function P() { + ;(C.removeEventListener('DOMContentLoaded', P), ie.removeEventListener('load', P), ce.ready()) + } + ;((ce.fn.ready = function (e) { + return ( + O.then(e)['catch'](function (e) { + ce.readyException(e) + }), + this + ) + }), + ce.extend({ + isReady: !1, + readyWait: 1, + ready: function (e) { + ;(!0 === e ? --ce.readyWait : ce.isReady) || ((ce.isReady = !0) !== e && 0 < --ce.readyWait) || O.resolveWith(C, [ce]) + }, + }), + (ce.ready.then = O.then), + 'complete' === C.readyState || ('loading' !== C.readyState && !C.documentElement.doScroll) + ? ie.setTimeout(ce.ready) + : (C.addEventListener('DOMContentLoaded', P), ie.addEventListener('load', P))) + var M = function (e, t, n, r, i, o, a) { + var s = 0, + u = e.length, + l = null == n + if ('object' === x(n)) for (s in ((i = !0), n)) M(e, t, s, n[s], !0, o, a) + else if ( + void 0 !== r && + ((i = !0), + v(r) || (a = !0), + l && + (a + ? (t.call(e, r), (t = null)) + : ((l = t), + (t = function (e, t, n) { + return l.call(ce(e), n) + }))), + t) + ) + for (; s < u; s++) t(e[s], n, a ? r : r.call(e[s], s, t(e[s], n))) + return i ? e : l ? t.call(e) : u ? t(e[0], n) : o + }, + R = /^-ms-/, + I = /-([a-z])/g + function W(e, t) { + return t.toUpperCase() + } + function F(e) { + return e.replace(R, 'ms-').replace(I, W) + } + var $ = function (e) { + return 1 === e.nodeType || 9 === e.nodeType || !+e.nodeType + } + function B() { + this.expando = ce.expando + B.uid++ + } + ;((B.uid = 1), + (B.prototype = { + cache: function (e) { + var t = e[this.expando] + return ( + t || ((t = {}), $(e) && (e.nodeType ? (e[this.expando] = t) : Object.defineProperty(e, this.expando, { value: t, configurable: !0 }))), + t + ) + }, + set: function (e, t, n) { + var r, + i = this.cache(e) + if ('string' == typeof t) i[F(t)] = n + else for (r in t) i[F(r)] = t[r] + return i + }, + get: function (e, t) { + return void 0 === t ? this.cache(e) : e[this.expando] && e[this.expando][F(t)] + }, + access: function (e, t, n) { + return void 0 === t || (t && 'string' == typeof t && void 0 === n) ? this.get(e, t) : (this.set(e, t, n), void 0 !== n ? n : t) + }, + remove: function (e, t) { + var n, + r = e[this.expando] + if (void 0 !== r) { + if (void 0 !== t) { + n = (t = Array.isArray(t) ? t.map(F) : (t = F(t)) in r ? [t] : t.match(D) || []).length + while (n--) delete r[t[n]] + } + ;(void 0 === t || ce.isEmptyObject(r)) && (e.nodeType ? (e[this.expando] = void 0) : delete e[this.expando]) + } + }, + hasData: function (e) { + var t = e[this.expando] + return void 0 !== t && !ce.isEmptyObject(t) + }, + })) + var _ = new B(), + z = new B(), + X = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, + U = /[A-Z]/g + function V(e, t, n) { + var r, i + if (void 0 === n && 1 === e.nodeType) + if (((r = 'data-' + t.replace(U, '-$&').toLowerCase()), 'string' == typeof (n = e.getAttribute(r)))) { + try { + n = 'true' === (i = n) || ('false' !== i && ('null' === i ? null : i === +i + '' ? +i : X.test(i) ? JSON.parse(i) : i)) + } catch (e) {} + z.set(e, t, n) + } else n = void 0 + return n + } + ;(ce.extend({ + hasData: function (e) { + return z.hasData(e) || _.hasData(e) + }, + data: function (e, t, n) { + return z.access(e, t, n) + }, + removeData: function (e, t) { + z.remove(e, t) + }, + _data: function (e, t, n) { + return _.access(e, t, n) + }, + _removeData: function (e, t) { + _.remove(e, t) + }, + }), + ce.fn.extend({ + data: function (n, e) { + var t, + r, + i, + o = this[0], + a = o && o.attributes + if (void 0 === n) { + if (this.length && ((i = z.get(o)), 1 === o.nodeType && !_.get(o, 'hasDataAttrs'))) { + t = a.length + while (t--) a[t] && 0 === (r = a[t].name).indexOf('data-') && ((r = F(r.slice(5))), V(o, r, i[r])) + _.set(o, 'hasDataAttrs', !0) + } + return i + } + return 'object' == typeof n + ? this.each(function () { + z.set(this, n) + }) + : M( + this, + function (e) { + var t + if (o && void 0 === e) return void 0 !== (t = z.get(o, n)) ? t : void 0 !== (t = V(o, n)) ? t : void 0 + this.each(function () { + z.set(this, n, e) + }) + }, + null, + e, + 1 < arguments.length, + null, + !0, + ) + }, + removeData: function (e) { + return this.each(function () { + z.remove(this, e) + }) + }, + }), + ce.extend({ + queue: function (e, t, n) { + var r + if (e) + return ( + (t = (t || 'fx') + 'queue'), + (r = _.get(e, t)), + n && (!r || Array.isArray(n) ? (r = _.access(e, t, ce.makeArray(n))) : r.push(n)), + r || [] + ) + }, + dequeue: function (e, t) { + t = t || 'fx' + var n = ce.queue(e, t), + r = n.length, + i = n.shift(), + o = ce._queueHooks(e, t) + ;('inprogress' === i && ((i = n.shift()), r--), + i && + ('fx' === t && n.unshift('inprogress'), + delete o.stop, + i.call( + e, + function () { + ce.dequeue(e, t) + }, + o, + )), + !r && o && o.empty.fire()) + }, + _queueHooks: function (e, t) { + var n = t + 'queueHooks' + return ( + _.get(e, n) || + _.access(e, n, { + empty: ce.Callbacks('once memory').add(function () { + _.remove(e, [t + 'queue', n]) + }), + }) + ) + }, + }), + ce.fn.extend({ + queue: function (t, n) { + var e = 2 + return ( + 'string' != typeof t && ((n = t), (t = 'fx'), e--), + arguments.length < e + ? ce.queue(this[0], t) + : void 0 === n + ? this + : this.each(function () { + var e = ce.queue(this, t, n) + ;(ce._queueHooks(this, t), 'fx' === t && 'inprogress' !== e[0] && ce.dequeue(this, t)) + }) + ) + }, + dequeue: function (e) { + return this.each(function () { + ce.dequeue(this, e) + }) + }, + clearQueue: function (e) { + return this.queue(e || 'fx', []) + }, + promise: function (e, t) { + var n, + r = 1, + i = ce.Deferred(), + o = this, + a = this.length, + s = function () { + --r || i.resolveWith(o, [o]) + } + ;('string' != typeof e && ((t = e), (e = void 0)), (e = e || 'fx')) + while (a--) (n = _.get(o[a], e + 'queueHooks')) && n.empty && (r++, n.empty.add(s)) + return (s(), i.promise(t)) + }, + })) + var G = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, + Y = new RegExp('^(?:([+-])=|)(' + G + ')([a-z%]*)$', 'i'), + Q = ['Top', 'Right', 'Bottom', 'Left'], + J = C.documentElement, + K = function (e) { + return ce.contains(e.ownerDocument, e) + }, + Z = { composed: !0 } + J.getRootNode && + (K = function (e) { + return ce.contains(e.ownerDocument, e) || e.getRootNode(Z) === e.ownerDocument + }) + var ee = function (e, t) { + return 'none' === (e = t || e).style.display || ('' === e.style.display && K(e) && 'none' === ce.css(e, 'display')) + } + function te(e, t, n, r) { + var i, + o, + a = 20, + s = r + ? function () { + return r.cur() + } + : function () { + return ce.css(e, t, '') + }, + u = s(), + l = (n && n[3]) || (ce.cssNumber[t] ? '' : 'px'), + c = e.nodeType && (ce.cssNumber[t] || ('px' !== l && +u)) && Y.exec(ce.css(e, t)) + if (c && c[3] !== l) { + ;((u /= 2), (l = l || c[3]), (c = +u || 1)) + while (a--) (ce.style(e, t, c + l), (1 - o) * (1 - (o = s() / u || 0.5)) <= 0 && (a = 0), (c /= o)) + ;((c *= 2), ce.style(e, t, c + l), (n = n || [])) + } + return (n && ((c = +c || +u || 0), (i = n[1] ? c + (n[1] + 1) * n[2] : +n[2]), r && ((r.unit = l), (r.start = c), (r.end = i))), i) + } + var ne = {} + function re(e, t) { + for (var n, r, i, o, a, s, u, l = [], c = 0, f = e.length; c < f; c++) + (r = e[c]).style && + ((n = r.style.display), + t + ? ('none' === n && ((l[c] = _.get(r, 'display') || null), l[c] || (r.style.display = '')), + '' === r.style.display && + ee(r) && + (l[c] = + ((u = a = o = void 0), + (a = (i = r).ownerDocument), + (s = i.nodeName), + (u = ne[s]) || + ((o = a.body.appendChild(a.createElement(s))), + (u = ce.css(o, 'display')), + o.parentNode.removeChild(o), + 'none' === u && (u = 'block'), + (ne[s] = u))))) + : 'none' !== n && ((l[c] = 'none'), _.set(r, 'display', n))) + for (c = 0; c < f; c++) null != l[c] && (e[c].style.display = l[c]) + return e + } + ce.fn.extend({ + show: function () { + return re(this, !0) + }, + hide: function () { + return re(this) + }, + toggle: function (e) { + return 'boolean' == typeof e + ? e + ? this.show() + : this.hide() + : this.each(function () { + ee(this) ? ce(this).show() : ce(this).hide() + }) + }, + }) + var xe, + be, + we = /^(?:checkbox|radio)$/i, + Te = /<([a-z][^\/\0>\x20\t\r\n\f]*)/i, + Ce = /^$|^module$|\/(?:java|ecma)script/i + ;((xe = C.createDocumentFragment().appendChild(C.createElement('div'))), + (be = C.createElement('input')).setAttribute('type', 'radio'), + be.setAttribute('checked', 'checked'), + be.setAttribute('name', 't'), + xe.appendChild(be), + (le.checkClone = xe.cloneNode(!0).cloneNode(!0).lastChild.checked), + (xe.innerHTML = '<textarea>x</textarea>'), + (le.noCloneChecked = !!xe.cloneNode(!0).lastChild.defaultValue), + (xe.innerHTML = '<option></option>'), + (le.option = !!xe.lastChild)) + var ke = { + thead: [1, '<table>', '</table>'], + col: [2, '<table><colgroup>', '</colgroup></table>'], + tr: [2, '<table><tbody>', '</tbody></table>'], + td: [3, '<table><tbody><tr>', '</tr></tbody></table>'], + _default: [0, '', ''], + } + function Se(e, t) { + var n + return ( + (n = + 'undefined' != typeof e.getElementsByTagName + ? e.getElementsByTagName(t || '*') + : 'undefined' != typeof e.querySelectorAll + ? e.querySelectorAll(t || '*') + : []), + void 0 === t || (t && fe(e, t)) ? ce.merge([e], n) : n + ) + } + function Ee(e, t) { + for (var n = 0, r = e.length; n < r; n++) _.set(e[n], 'globalEval', !t || _.get(t[n], 'globalEval')) + } + ;((ke.tbody = ke.tfoot = ke.colgroup = ke.caption = ke.thead), + (ke.th = ke.td), + le.option || (ke.optgroup = ke.option = [1, "<select multiple='multiple'>", '</select>'])) + var je = /<|&#?\w+;/ + function Ae(e, t, n, r, i) { + for (var o, a, s, u, l, c, f = t.createDocumentFragment(), p = [], d = 0, h = e.length; d < h; d++) + if ((o = e[d]) || 0 === o) + if ('object' === x(o)) ce.merge(p, o.nodeType ? [o] : o) + else if (je.test(o)) { + ;((a = a || f.appendChild(t.createElement('div'))), + (s = (Te.exec(o) || ['', ''])[1].toLowerCase()), + (u = ke[s] || ke._default), + (a.innerHTML = u[1] + ce.htmlPrefilter(o) + u[2]), + (c = u[0])) + while (c--) a = a.lastChild + ;(ce.merge(p, a.childNodes), ((a = f.firstChild).textContent = '')) + } else p.push(t.createTextNode(o)) + ;((f.textContent = ''), (d = 0)) + while ((o = p[d++])) + if (r && -1 < ce.inArray(o, r)) i && i.push(o) + else if (((l = K(o)), (a = Se(f.appendChild(o), 'script')), l && Ee(a), n)) { + c = 0 + while ((o = a[c++])) Ce.test(o.type || '') && n.push(o) + } + return f + } + var De = /^([^.]*)(?:\.(.+)|)/ + function Ne() { + return !0 + } + function qe() { + return !1 + } + function Le(e, t, n, r, i, o) { + var a, s + if ('object' == typeof t) { + for (s in ('string' != typeof n && ((r = r || n), (n = void 0)), t)) Le(e, s, n, r, t[s], o) + return e + } + if ( + (null == r && null == i + ? ((i = n), (r = n = void 0)) + : null == i && ('string' == typeof n ? ((i = r), (r = void 0)) : ((i = r), (r = n), (n = void 0))), + !1 === i) + ) + i = qe + else if (!i) return e + return ( + 1 === o && + ((a = i), + ((i = function (e) { + return (ce().off(e), a.apply(this, arguments)) + }).guid = a.guid || (a.guid = ce.guid++))), + e.each(function () { + ce.event.add(this, t, i, r, n) + }) + ) + } + function He(e, r, t) { + t + ? (_.set(e, r, !1), + ce.event.add(e, r, { + namespace: !1, + handler: function (e) { + var t, + n = _.get(this, r) + if (1 & e.isTrigger && this[r]) { + if (n) (ce.event.special[r] || {}).delegateType && e.stopPropagation() + else if (((n = ae.call(arguments)), _.set(this, r, n), this[r](), (t = _.get(this, r)), _.set(this, r, !1), n !== t)) + return (e.stopImmediatePropagation(), e.preventDefault(), t) + } else n && (_.set(this, r, ce.event.trigger(n[0], n.slice(1), this)), e.stopPropagation(), (e.isImmediatePropagationStopped = Ne)) + }, + })) + : void 0 === _.get(e, r) && ce.event.add(e, r, Ne) + } + ;((ce.event = { + global: {}, + add: function (t, e, n, r, i) { + var o, + a, + s, + u, + l, + c, + f, + p, + d, + h, + g, + v = _.get(t) + if ($(t)) { + ;(n.handler && ((n = (o = n).handler), (i = o.selector)), + i && ce.find.matchesSelector(J, i), + n.guid || (n.guid = ce.guid++), + (u = v.events) || (u = v.events = Object.create(null)), + (a = v.handle) || + (a = v.handle = + function (e) { + return 'undefined' != typeof ce && ce.event.triggered !== e.type ? ce.event.dispatch.apply(t, arguments) : void 0 + }), + (l = (e = (e || '').match(D) || ['']).length)) + while (l--) + ((d = g = (s = De.exec(e[l]) || [])[1]), + (h = (s[2] || '').split('.').sort()), + d && + ((f = ce.event.special[d] || {}), + (d = (i ? f.delegateType : f.bindType) || d), + (f = ce.event.special[d] || {}), + (c = ce.extend( + { + type: d, + origType: g, + data: r, + handler: n, + guid: n.guid, + selector: i, + needsContext: i && ce.expr.match.needsContext.test(i), + namespace: h.join('.'), + }, + o, + )), + (p = u[d]) || + (((p = u[d] = []).delegateCount = 0), + (f.setup && !1 !== f.setup.call(t, r, h, a)) || (t.addEventListener && t.addEventListener(d, a))), + f.add && (f.add.call(t, c), c.handler.guid || (c.handler.guid = n.guid)), + i ? p.splice(p.delegateCount++, 0, c) : p.push(c), + (ce.event.global[d] = !0))) + } + }, + remove: function (e, t, n, r, i) { + var o, + a, + s, + u, + l, + c, + f, + p, + d, + h, + g, + v = _.hasData(e) && _.get(e) + if (v && (u = v.events)) { + l = (t = (t || '').match(D) || ['']).length + while (l--) + if (((d = g = (s = De.exec(t[l]) || [])[1]), (h = (s[2] || '').split('.').sort()), d)) { + ;((f = ce.event.special[d] || {}), + (p = u[(d = (r ? f.delegateType : f.bindType) || d)] || []), + (s = s[2] && new RegExp('(^|\\.)' + h.join('\\.(?:.*\\.|)') + '(\\.|$)')), + (a = o = p.length)) + while (o--) + ((c = p[o]), + (!i && g !== c.origType) || + (n && n.guid !== c.guid) || + (s && !s.test(c.namespace)) || + (r && r !== c.selector && ('**' !== r || !c.selector)) || + (p.splice(o, 1), c.selector && p.delegateCount--, f.remove && f.remove.call(e, c))) + a && !p.length && ((f.teardown && !1 !== f.teardown.call(e, h, v.handle)) || ce.removeEvent(e, d, v.handle), delete u[d]) + } else for (d in u) ce.event.remove(e, d + t[l], n, r, !0) + ce.isEmptyObject(u) && _.remove(e, 'handle events') + } + }, + dispatch: function (e) { + var t, + n, + r, + i, + o, + a, + s = new Array(arguments.length), + u = ce.event.fix(e), + l = (_.get(this, 'events') || Object.create(null))[u.type] || [], + c = ce.event.special[u.type] || {} + for (s[0] = u, t = 1; t < arguments.length; t++) s[t] = arguments[t] + if (((u.delegateTarget = this), !c.preDispatch || !1 !== c.preDispatch.call(this, u))) { + ;((a = ce.event.handlers.call(this, u, l)), (t = 0)) + while ((i = a[t++]) && !u.isPropagationStopped()) { + ;((u.currentTarget = i.elem), (n = 0)) + while ((o = i.handlers[n++]) && !u.isImmediatePropagationStopped()) + (u.rnamespace && !1 !== o.namespace && !u.rnamespace.test(o.namespace)) || + ((u.handleObj = o), + (u.data = o.data), + void 0 !== (r = ((ce.event.special[o.origType] || {}).handle || o.handler).apply(i.elem, s)) && + !1 === (u.result = r) && + (u.preventDefault(), u.stopPropagation())) + } + return (c.postDispatch && c.postDispatch.call(this, u), u.result) + } + }, + handlers: function (e, t) { + var n, + r, + i, + o, + a, + s = [], + u = t.delegateCount, + l = e.target + if (u && l.nodeType && !('click' === e.type && 1 <= e.button)) + for (; l !== this; l = l.parentNode || this) + if (1 === l.nodeType && ('click' !== e.type || !0 !== l.disabled)) { + for (o = [], a = {}, n = 0; n < u; n++) + (void 0 === a[(i = (r = t[n]).selector + ' ')] && + (a[i] = r.needsContext ? -1 < ce(i, this).index(l) : ce.find(i, this, null, [l]).length), + a[i] && o.push(r)) + o.length && s.push({ elem: l, handlers: o }) + } + return ((l = this), u < t.length && s.push({ elem: l, handlers: t.slice(u) }), s) + }, + addProp: function (t, e) { + Object.defineProperty(ce.Event.prototype, t, { + enumerable: !0, + configurable: !0, + get: v(e) + ? function () { + if (this.originalEvent) return e(this.originalEvent) + } + : function () { + if (this.originalEvent) return this.originalEvent[t] + }, + set: function (e) { + Object.defineProperty(this, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) + }, + }) + }, + fix: function (e) { + return e[ce.expando] ? e : new ce.Event(e) + }, + special: { + load: { noBubble: !0 }, + click: { + setup: function (e) { + var t = this || e + return (we.test(t.type) && t.click && fe(t, 'input') && He(t, 'click', !0), !1) + }, + trigger: function (e) { + var t = this || e + return (we.test(t.type) && t.click && fe(t, 'input') && He(t, 'click'), !0) + }, + _default: function (e) { + var t = e.target + return (we.test(t.type) && t.click && fe(t, 'input') && _.get(t, 'click')) || fe(t, 'a') + }, + }, + beforeunload: { + postDispatch: function (e) { + void 0 !== e.result && e.originalEvent && (e.originalEvent.returnValue = e.result) + }, + }, + }, + }), + (ce.removeEvent = function (e, t, n) { + e.removeEventListener && e.removeEventListener(t, n) + }), + (ce.Event = function (e, t) { + if (!(this instanceof ce.Event)) return new ce.Event(e, t) + ;(e && e.type + ? ((this.originalEvent = e), + (this.type = e.type), + (this.isDefaultPrevented = e.defaultPrevented || (void 0 === e.defaultPrevented && !1 === e.returnValue) ? Ne : qe), + (this.target = e.target && 3 === e.target.nodeType ? e.target.parentNode : e.target), + (this.currentTarget = e.currentTarget), + (this.relatedTarget = e.relatedTarget)) + : (this.type = e), + t && ce.extend(this, t), + (this.timeStamp = (e && e.timeStamp) || Date.now()), + (this[ce.expando] = !0)) + }), + (ce.Event.prototype = { + constructor: ce.Event, + isDefaultPrevented: qe, + isPropagationStopped: qe, + isImmediatePropagationStopped: qe, + isSimulated: !1, + preventDefault: function () { + var e = this.originalEvent + ;((this.isDefaultPrevented = Ne), e && !this.isSimulated && e.preventDefault()) + }, + stopPropagation: function () { + var e = this.originalEvent + ;((this.isPropagationStopped = Ne), e && !this.isSimulated && e.stopPropagation()) + }, + stopImmediatePropagation: function () { + var e = this.originalEvent + ;((this.isImmediatePropagationStopped = Ne), e && !this.isSimulated && e.stopImmediatePropagation(), this.stopPropagation()) + }, + }), + ce.each( + { + altKey: !0, + bubbles: !0, + cancelable: !0, + changedTouches: !0, + ctrlKey: !0, + detail: !0, + eventPhase: !0, + metaKey: !0, + pageX: !0, + pageY: !0, + shiftKey: !0, + view: !0, + char: !0, + code: !0, + charCode: !0, + key: !0, + keyCode: !0, + button: !0, + buttons: !0, + clientX: !0, + clientY: !0, + offsetX: !0, + offsetY: !0, + pointerId: !0, + pointerType: !0, + screenX: !0, + screenY: !0, + targetTouches: !0, + toElement: !0, + touches: !0, + which: !0, + }, + ce.event.addProp, + ), + ce.each({ focus: 'focusin', blur: 'focusout' }, function (r, i) { + function o(e) { + if (C.documentMode) { + var t = _.get(this, 'handle'), + n = ce.event.fix(e) + ;((n.type = 'focusin' === e.type ? 'focus' : 'blur'), (n.isSimulated = !0), t(e), n.target === n.currentTarget && t(n)) + } else ce.event.simulate(i, e.target, ce.event.fix(e)) + } + ;((ce.event.special[r] = { + setup: function () { + var e + if ((He(this, r, !0), !C.documentMode)) return !1 + ;((e = _.get(this, i)) || this.addEventListener(i, o), _.set(this, i, (e || 0) + 1)) + }, + trigger: function () { + return (He(this, r), !0) + }, + teardown: function () { + var e + if (!C.documentMode) return !1 + ;(e = _.get(this, i) - 1) ? _.set(this, i, e) : (this.removeEventListener(i, o), _.remove(this, i)) + }, + _default: function (e) { + return _.get(e.target, r) + }, + delegateType: i, + }), + (ce.event.special[i] = { + setup: function () { + var e = this.ownerDocument || this.document || this, + t = C.documentMode ? this : e, + n = _.get(t, i) + ;(n || (C.documentMode ? this.addEventListener(i, o) : e.addEventListener(r, o, !0)), _.set(t, i, (n || 0) + 1)) + }, + teardown: function () { + var e = this.ownerDocument || this.document || this, + t = C.documentMode ? this : e, + n = _.get(t, i) - 1 + n ? _.set(t, i, n) : (C.documentMode ? this.removeEventListener(i, o) : e.removeEventListener(r, o, !0), _.remove(t, i)) + }, + })) + }), + ce.each({ mouseenter: 'mouseover', mouseleave: 'mouseout', pointerenter: 'pointerover', pointerleave: 'pointerout' }, function (e, i) { + ce.event.special[e] = { + delegateType: i, + bindType: i, + handle: function (e) { + var t, + n = e.relatedTarget, + r = e.handleObj + return ((n && (n === this || ce.contains(this, n))) || ((e.type = r.origType), (t = r.handler.apply(this, arguments)), (e.type = i)), t) + }, + } + }), + ce.fn.extend({ + on: function (e, t, n, r) { + return Le(this, e, t, n, r) + }, + one: function (e, t, n, r) { + return Le(this, e, t, n, r, 1) + }, + off: function (e, t, n) { + var r, i + if (e && e.preventDefault && e.handleObj) + return ((r = e.handleObj), ce(e.delegateTarget).off(r.namespace ? r.origType + '.' + r.namespace : r.origType, r.selector, r.handler), this) + if ('object' == typeof e) { + for (i in e) this.off(i, t, e[i]) + return this + } + return ( + (!1 !== t && 'function' != typeof t) || ((n = t), (t = void 0)), + !1 === n && (n = qe), + this.each(function () { + ce.event.remove(this, e, n, t) + }) + ) + }, + })) + var Oe = /<script|<style|<link/i, + Pe = /checked\s*(?:[^=]|=\s*.checked.)/i, + Me = /^\s*<!\[CDATA\[|\]\]>\s*$/g + function Re(e, t) { + return (fe(e, 'table') && fe(11 !== t.nodeType ? t : t.firstChild, 'tr') && ce(e).children('tbody')[0]) || e + } + function Ie(e) { + return ((e.type = (null !== e.getAttribute('type')) + '/' + e.type), e) + } + function We(e) { + return ('true/' === (e.type || '').slice(0, 5) ? (e.type = e.type.slice(5)) : e.removeAttribute('type'), e) + } + function Fe(e, t) { + var n, r, i, o, a, s + if (1 === t.nodeType) { + if (_.hasData(e) && (s = _.get(e).events)) + for (i in (_.remove(t, 'handle events'), s)) for (n = 0, r = s[i].length; n < r; n++) ce.event.add(t, i, s[i][n]) + z.hasData(e) && ((o = z.access(e)), (a = ce.extend({}, o)), z.set(t, a)) + } + } + function $e(n, r, i, o) { + r = g(r) + var e, + t, + a, + s, + u, + l, + c = 0, + f = n.length, + p = f - 1, + d = r[0], + h = v(d) + if (h || (1 < f && 'string' == typeof d && !le.checkClone && Pe.test(d))) + return n.each(function (e) { + var t = n.eq(e) + ;(h && (r[0] = d.call(this, e, t.html())), $e(t, r, i, o)) + }) + if (f && ((t = (e = Ae(r, n[0].ownerDocument, !1, n, o)).firstChild), 1 === e.childNodes.length && (e = t), t || o)) { + for (s = (a = ce.map(Se(e, 'script'), Ie)).length; c < f; c++) + ((u = e), c !== p && ((u = ce.clone(u, !0, !0)), s && ce.merge(a, Se(u, 'script'))), i.call(n[c], u, c)) + if (s) + for (l = a[a.length - 1].ownerDocument, ce.map(a, We), c = 0; c < s; c++) + ((u = a[c]), + Ce.test(u.type || '') && + !_.access(u, 'globalEval') && + ce.contains(l, u) && + (u.src && 'module' !== (u.type || '').toLowerCase() + ? ce._evalUrl && !u.noModule && ce._evalUrl(u.src, { nonce: u.nonce || u.getAttribute('nonce') }, l) + : m(u.textContent.replace(Me, ''), u, l))) + } + return n + } + function Be(e, t, n) { + for (var r, i = t ? ce.filter(t, e) : e, o = 0; null != (r = i[o]); o++) + (n || 1 !== r.nodeType || ce.cleanData(Se(r)), r.parentNode && (n && K(r) && Ee(Se(r, 'script')), r.parentNode.removeChild(r))) + return e + } + ;(ce.extend({ + htmlPrefilter: function (e) { + return e + }, + clone: function (e, t, n) { + var r, + i, + o, + a, + s, + u, + l, + c = e.cloneNode(!0), + f = K(e) + if (!(le.noCloneChecked || (1 !== e.nodeType && 11 !== e.nodeType) || ce.isXMLDoc(e))) + for (a = Se(c), r = 0, i = (o = Se(e)).length; r < i; r++) + ((s = o[r]), + (u = a[r]), + void 0, + 'input' === (l = u.nodeName.toLowerCase()) && we.test(s.type) + ? (u.checked = s.checked) + : ('input' !== l && 'textarea' !== l) || (u.defaultValue = s.defaultValue)) + if (t) + if (n) for (o = o || Se(e), a = a || Se(c), r = 0, i = o.length; r < i; r++) Fe(o[r], a[r]) + else Fe(e, c) + return (0 < (a = Se(c, 'script')).length && Ee(a, !f && Se(e, 'script')), c) + }, + cleanData: function (e) { + for (var t, n, r, i = ce.event.special, o = 0; void 0 !== (n = e[o]); o++) + if ($(n)) { + if ((t = n[_.expando])) { + if (t.events) for (r in t.events) i[r] ? ce.event.remove(n, r) : ce.removeEvent(n, r, t.handle) + n[_.expando] = void 0 + } + n[z.expando] && (n[z.expando] = void 0) + } + }, + }), + ce.fn.extend({ + detach: function (e) { + return Be(this, e, !0) + }, + remove: function (e) { + return Be(this, e) + }, + text: function (e) { + return M( + this, + function (e) { + return void 0 === e + ? ce.text(this) + : this.empty().each(function () { + ;(1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType) || (this.textContent = e) + }) + }, + null, + e, + arguments.length, + ) + }, + append: function () { + return $e(this, arguments, function (e) { + ;(1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType) || Re(this, e).appendChild(e) + }) + }, + prepend: function () { + return $e(this, arguments, function (e) { + if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) { + var t = Re(this, e) + t.insertBefore(e, t.firstChild) + } + }) + }, + before: function () { + return $e(this, arguments, function (e) { + this.parentNode && this.parentNode.insertBefore(e, this) + }) + }, + after: function () { + return $e(this, arguments, function (e) { + this.parentNode && this.parentNode.insertBefore(e, this.nextSibling) + }) + }, + empty: function () { + for (var e, t = 0; null != (e = this[t]); t++) 1 === e.nodeType && (ce.cleanData(Se(e, !1)), (e.textContent = '')) + return this + }, + clone: function (e, t) { + return ( + (e = null != e && e), + (t = null == t ? e : t), + this.map(function () { + return ce.clone(this, e, t) + }) + ) + }, + html: function (e) { + return M( + this, + function (e) { + var t = this[0] || {}, + n = 0, + r = this.length + if (void 0 === e && 1 === t.nodeType) return t.innerHTML + if ('string' == typeof e && !Oe.test(e) && !ke[(Te.exec(e) || ['', ''])[1].toLowerCase()]) { + e = ce.htmlPrefilter(e) + try { + for (; n < r; n++) 1 === (t = this[n] || {}).nodeType && (ce.cleanData(Se(t, !1)), (t.innerHTML = e)) + t = 0 + } catch (e) {} + } + t && this.empty().append(e) + }, + null, + e, + arguments.length, + ) + }, + replaceWith: function () { + var n = [] + return $e( + this, + arguments, + function (e) { + var t = this.parentNode + ce.inArray(this, n) < 0 && (ce.cleanData(Se(this)), t && t.replaceChild(e, this)) + }, + n, + ) + }, + }), + ce.each({ appendTo: 'append', prependTo: 'prepend', insertBefore: 'before', insertAfter: 'after', replaceAll: 'replaceWith' }, function (e, a) { + ce.fn[e] = function (e) { + for (var t, n = [], r = ce(e), i = r.length - 1, o = 0; o <= i; o++) + ((t = o === i ? this : this.clone(!0)), ce(r[o])[a](t), s.apply(n, t.get())) + return this.pushStack(n) + } + })) + var _e = new RegExp('^(' + G + ')(?!px)[a-z%]+$', 'i'), + ze = /^--/, + Xe = function (e) { + var t = e.ownerDocument.defaultView + return ((t && t.opener) || (t = ie), t.getComputedStyle(e)) + }, + Ue = function (e, t, n) { + var r, + i, + o = {} + for (i in t) ((o[i] = e.style[i]), (e.style[i] = t[i])) + for (i in ((r = n.call(e)), t)) e.style[i] = o[i] + return r + }, + Ve = new RegExp(Q.join('|'), 'i') + function Ge(e, t, n) { + var r, + i, + o, + a, + s = ze.test(t), + u = e.style + return ( + (n = n || Xe(e)) && + ((a = n.getPropertyValue(t) || n[t]), + s && a && (a = a.replace(ve, '$1') || void 0), + '' !== a || K(e) || (a = ce.style(e, t)), + !le.pixelBoxStyles() && + _e.test(a) && + Ve.test(t) && + ((r = u.width), + (i = u.minWidth), + (o = u.maxWidth), + (u.minWidth = u.maxWidth = u.width = a), + (a = n.width), + (u.width = r), + (u.minWidth = i), + (u.maxWidth = o))), + void 0 !== a ? a + '' : a + ) + } + function Ye(e, t) { + return { + get: function () { + if (!e()) return (this.get = t).apply(this, arguments) + delete this.get + }, + } + } + !(function () { + function e() { + if (l) { + ;((u.style.cssText = 'position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0'), + (l.style.cssText = + 'position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%'), + J.appendChild(u).appendChild(l)) + var e = ie.getComputedStyle(l) + ;((n = '1%' !== e.top), + (s = 12 === t(e.marginLeft)), + (l.style.right = '60%'), + (o = 36 === t(e.right)), + (r = 36 === t(e.width)), + (l.style.position = 'absolute'), + (i = 12 === t(l.offsetWidth / 3)), + J.removeChild(u), + (l = null)) + } + } + function t(e) { + return Math.round(parseFloat(e)) + } + var n, + r, + i, + o, + a, + s, + u = C.createElement('div'), + l = C.createElement('div') + l.style && + ((l.style.backgroundClip = 'content-box'), + (l.cloneNode(!0).style.backgroundClip = ''), + (le.clearCloneStyle = 'content-box' === l.style.backgroundClip), + ce.extend(le, { + boxSizingReliable: function () { + return (e(), r) + }, + pixelBoxStyles: function () { + return (e(), o) + }, + pixelPosition: function () { + return (e(), n) + }, + reliableMarginLeft: function () { + return (e(), s) + }, + scrollboxSize: function () { + return (e(), i) + }, + reliableTrDimensions: function () { + var e, t, n, r + return ( + null == a && + ((e = C.createElement('table')), + (t = C.createElement('tr')), + (n = C.createElement('div')), + (e.style.cssText = 'position:absolute;left:-11111px;border-collapse:separate'), + (t.style.cssText = 'box-sizing:content-box;border:1px solid'), + (t.style.height = '1px'), + (n.style.height = '9px'), + (n.style.display = 'block'), + J.appendChild(e).appendChild(t).appendChild(n), + (r = ie.getComputedStyle(t)), + (a = parseInt(r.height, 10) + parseInt(r.borderTopWidth, 10) + parseInt(r.borderBottomWidth, 10) === t.offsetHeight), + J.removeChild(e)), + a + ) + }, + })) + })() + var Qe = ['Webkit', 'Moz', 'ms'], + Je = C.createElement('div').style, + Ke = {} + function Ze(e) { + var t = ce.cssProps[e] || Ke[e] + return ( + t || + (e in Je + ? e + : (Ke[e] = + (function (e) { + var t = e[0].toUpperCase() + e.slice(1), + n = Qe.length + while (n--) if ((e = Qe[n] + t) in Je) return e + })(e) || e)) + ) + } + var et = /^(none|table(?!-c[ea]).+)/, + tt = { position: 'absolute', visibility: 'hidden', display: 'block' }, + nt = { letterSpacing: '0', fontWeight: '400' } + function rt(e, t, n) { + var r = Y.exec(t) + return r ? Math.max(0, r[2] - (n || 0)) + (r[3] || 'px') : t + } + function it(e, t, n, r, i, o) { + var a = 'width' === t ? 1 : 0, + s = 0, + u = 0, + l = 0 + if (n === (r ? 'border' : 'content')) return 0 + for (; a < 4; a += 2) + ('margin' === n && (l += ce.css(e, n + Q[a], !0, i)), + r + ? ('content' === n && (u -= ce.css(e, 'padding' + Q[a], !0, i)), 'margin' !== n && (u -= ce.css(e, 'border' + Q[a] + 'Width', !0, i))) + : ((u += ce.css(e, 'padding' + Q[a], !0, i)), + 'padding' !== n ? (u += ce.css(e, 'border' + Q[a] + 'Width', !0, i)) : (s += ce.css(e, 'border' + Q[a] + 'Width', !0, i)))) + return (!r && 0 <= o && (u += Math.max(0, Math.ceil(e['offset' + t[0].toUpperCase() + t.slice(1)] - o - u - s - 0.5)) || 0), u + l) + } + function ot(e, t, n) { + var r = Xe(e), + i = (!le.boxSizingReliable() || n) && 'border-box' === ce.css(e, 'boxSizing', !1, r), + o = i, + a = Ge(e, t, r), + s = 'offset' + t[0].toUpperCase() + t.slice(1) + if (_e.test(a)) { + if (!n) return a + a = 'auto' + } + return ( + ((!le.boxSizingReliable() && i) || + (!le.reliableTrDimensions() && fe(e, 'tr')) || + 'auto' === a || + (!parseFloat(a) && 'inline' === ce.css(e, 'display', !1, r))) && + e.getClientRects().length && + ((i = 'border-box' === ce.css(e, 'boxSizing', !1, r)), (o = s in e) && (a = e[s])), + (a = parseFloat(a) || 0) + it(e, t, n || (i ? 'border' : 'content'), o, r, a) + 'px' + ) + } + function at(e, t, n, r, i) { + return new at.prototype.init(e, t, n, r, i) + } + ;(ce.extend({ + cssHooks: { + opacity: { + get: function (e, t) { + if (t) { + var n = Ge(e, 'opacity') + return '' === n ? '1' : n + } + }, + }, + }, + cssNumber: { + animationIterationCount: !0, + aspectRatio: !0, + borderImageSlice: !0, + columnCount: !0, + flexGrow: !0, + flexShrink: !0, + fontWeight: !0, + gridArea: !0, + gridColumn: !0, + gridColumnEnd: !0, + gridColumnStart: !0, + gridRow: !0, + gridRowEnd: !0, + gridRowStart: !0, + lineHeight: !0, + opacity: !0, + order: !0, + orphans: !0, + scale: !0, + widows: !0, + zIndex: !0, + zoom: !0, + fillOpacity: !0, + floodOpacity: !0, + stopOpacity: !0, + strokeMiterlimit: !0, + strokeOpacity: !0, + }, + cssProps: {}, + style: function (e, t, n, r) { + if (e && 3 !== e.nodeType && 8 !== e.nodeType && e.style) { + var i, + o, + a, + s = F(t), + u = ze.test(t), + l = e.style + if ((u || (t = Ze(s)), (a = ce.cssHooks[t] || ce.cssHooks[s]), void 0 === n)) + return a && 'get' in a && void 0 !== (i = a.get(e, !1, r)) ? i : l[t] + ;('string' === (o = typeof n) && (i = Y.exec(n)) && i[1] && ((n = te(e, t, i)), (o = 'number')), + null != n && + n == n && + ('number' !== o || u || (n += (i && i[3]) || (ce.cssNumber[s] ? '' : 'px')), + le.clearCloneStyle || '' !== n || 0 !== t.indexOf('background') || (l[t] = 'inherit'), + (a && 'set' in a && void 0 === (n = a.set(e, n, r))) || (u ? l.setProperty(t, n) : (l[t] = n)))) + } + }, + css: function (e, t, n, r) { + var i, + o, + a, + s = F(t) + return ( + ze.test(t) || (t = Ze(s)), + (a = ce.cssHooks[t] || ce.cssHooks[s]) && 'get' in a && (i = a.get(e, !0, n)), + void 0 === i && (i = Ge(e, t, r)), + 'normal' === i && t in nt && (i = nt[t]), + '' === n || n ? ((o = parseFloat(i)), !0 === n || isFinite(o) ? o || 0 : i) : i + ) + }, + }), + ce.each(['height', 'width'], function (e, u) { + ce.cssHooks[u] = { + get: function (e, t, n) { + if (t) + return !et.test(ce.css(e, 'display')) || (e.getClientRects().length && e.getBoundingClientRect().width) + ? ot(e, u, n) + : Ue(e, tt, function () { + return ot(e, u, n) + }) + }, + set: function (e, t, n) { + var r, + i = Xe(e), + o = !le.scrollboxSize() && 'absolute' === i.position, + a = (o || n) && 'border-box' === ce.css(e, 'boxSizing', !1, i), + s = n ? it(e, u, n, a, i) : 0 + return ( + a && o && (s -= Math.ceil(e['offset' + u[0].toUpperCase() + u.slice(1)] - parseFloat(i[u]) - it(e, u, 'border', !1, i) - 0.5)), + s && (r = Y.exec(t)) && 'px' !== (r[3] || 'px') && ((e.style[u] = t), (t = ce.css(e, u))), + rt(0, t, s) + ) + }, + } + }), + (ce.cssHooks.marginLeft = Ye(le.reliableMarginLeft, function (e, t) { + if (t) + return ( + (parseFloat(Ge(e, 'marginLeft')) || + e.getBoundingClientRect().left - + Ue(e, { marginLeft: 0 }, function () { + return e.getBoundingClientRect().left + })) + 'px' + ) + })), + ce.each({ margin: '', padding: '', border: 'Width' }, function (i, o) { + ;((ce.cssHooks[i + o] = { + expand: function (e) { + for (var t = 0, n = {}, r = 'string' == typeof e ? e.split(' ') : [e]; t < 4; t++) n[i + Q[t] + o] = r[t] || r[t - 2] || r[0] + return n + }, + }), + 'margin' !== i && (ce.cssHooks[i + o].set = rt)) + }), + ce.fn.extend({ + css: function (e, t) { + return M( + this, + function (e, t, n) { + var r, + i, + o = {}, + a = 0 + if (Array.isArray(t)) { + for (r = Xe(e), i = t.length; a < i; a++) o[t[a]] = ce.css(e, t[a], !1, r) + return o + } + return void 0 !== n ? ce.style(e, t, n) : ce.css(e, t) + }, + e, + t, + 1 < arguments.length, + ) + }, + }), + (((ce.Tween = at).prototype = { + constructor: at, + init: function (e, t, n, r, i, o) { + ;((this.elem = e), + (this.prop = n), + (this.easing = i || ce.easing._default), + (this.options = t), + (this.start = this.now = this.cur()), + (this.end = r), + (this.unit = o || (ce.cssNumber[n] ? '' : 'px'))) + }, + cur: function () { + var e = at.propHooks[this.prop] + return e && e.get ? e.get(this) : at.propHooks._default.get(this) + }, + run: function (e) { + var t, + n = at.propHooks[this.prop] + return ( + this.options.duration + ? (this.pos = t = ce.easing[this.easing](e, this.options.duration * e, 0, 1, this.options.duration)) + : (this.pos = t = e), + (this.now = (this.end - this.start) * t + this.start), + this.options.step && this.options.step.call(this.elem, this.now, this), + n && n.set ? n.set(this) : at.propHooks._default.set(this), + this + ) + }, + }).init.prototype = at.prototype), + ((at.propHooks = { + _default: { + get: function (e) { + var t + return 1 !== e.elem.nodeType || (null != e.elem[e.prop] && null == e.elem.style[e.prop]) + ? e.elem[e.prop] + : (t = ce.css(e.elem, e.prop, '')) && 'auto' !== t + ? t + : 0 + }, + set: function (e) { + ce.fx.step[e.prop] + ? ce.fx.step[e.prop](e) + : 1 !== e.elem.nodeType || (!ce.cssHooks[e.prop] && null == e.elem.style[Ze(e.prop)]) + ? (e.elem[e.prop] = e.now) + : ce.style(e.elem, e.prop, e.now + e.unit) + }, + }, + }).scrollTop = at.propHooks.scrollLeft = + { + set: function (e) { + e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now) + }, + }), + (ce.easing = { + linear: function (e) { + return e + }, + swing: function (e) { + return 0.5 - Math.cos(e * Math.PI) / 2 + }, + _default: 'swing', + }), + (ce.fx = at.prototype.init), + (ce.fx.step = {})) + var st, + ut, + lt, + ct, + ft = /^(?:toggle|show|hide)$/, + pt = /queueHooks$/ + function dt() { + ut && (!1 === C.hidden && ie.requestAnimationFrame ? ie.requestAnimationFrame(dt) : ie.setTimeout(dt, ce.fx.interval), ce.fx.tick()) + } + function ht() { + return ( + ie.setTimeout(function () { + st = void 0 + }), + (st = Date.now()) + ) + } + function gt(e, t) { + var n, + r = 0, + i = { height: e } + for (t = t ? 1 : 0; r < 4; r += 2 - t) i['margin' + (n = Q[r])] = i['padding' + n] = e + return (t && (i.opacity = i.width = e), i) + } + function vt(e, t, n) { + for (var r, i = (yt.tweeners[t] || []).concat(yt.tweeners['*']), o = 0, a = i.length; o < a; o++) if ((r = i[o].call(n, t, e))) return r + } + function yt(o, e, t) { + var n, + a, + r = 0, + i = yt.prefilters.length, + s = ce.Deferred().always(function () { + delete u.elem + }), + u = function () { + if (a) return !1 + for (var e = st || ht(), t = Math.max(0, l.startTime + l.duration - e), n = 1 - (t / l.duration || 0), r = 0, i = l.tweens.length; r < i; r++) + l.tweens[r].run(n) + return (s.notifyWith(o, [l, n, t]), n < 1 && i ? t : (i || s.notifyWith(o, [l, 1, 0]), s.resolveWith(o, [l]), !1)) + }, + l = s.promise({ + elem: o, + props: ce.extend({}, e), + opts: ce.extend(!0, { specialEasing: {}, easing: ce.easing._default }, t), + originalProperties: e, + originalOptions: t, + startTime: st || ht(), + duration: t.duration, + tweens: [], + createTween: function (e, t) { + var n = ce.Tween(o, l.opts, e, t, l.opts.specialEasing[e] || l.opts.easing) + return (l.tweens.push(n), n) + }, + stop: function (e) { + var t = 0, + n = e ? l.tweens.length : 0 + if (a) return this + for (a = !0; t < n; t++) l.tweens[t].run(1) + return (e ? (s.notifyWith(o, [l, 1, 0]), s.resolveWith(o, [l, e])) : s.rejectWith(o, [l, e]), this) + }, + }), + c = l.props + for ( + !(function (e, t) { + var n, r, i, o, a + for (n in e) + if ( + ((i = t[(r = F(n))]), + (o = e[n]), + Array.isArray(o) && ((i = o[1]), (o = e[n] = o[0])), + n !== r && ((e[r] = o), delete e[n]), + (a = ce.cssHooks[r]) && ('expand' in a)) + ) + for (n in ((o = a.expand(o)), delete e[r], o)) (n in e) || ((e[n] = o[n]), (t[n] = i)) + else t[r] = i + })(c, l.opts.specialEasing); + r < i; + r++ + ) + if ((n = yt.prefilters[r].call(l, o, c, l.opts))) return (v(n.stop) && (ce._queueHooks(l.elem, l.opts.queue).stop = n.stop.bind(n)), n) + return ( + ce.map(c, vt, l), + v(l.opts.start) && l.opts.start.call(o, l), + l.progress(l.opts.progress).done(l.opts.done, l.opts.complete).fail(l.opts.fail).always(l.opts.always), + ce.fx.timer(ce.extend(u, { elem: o, anim: l, queue: l.opts.queue })), + l + ) + } + ;((ce.Animation = ce.extend(yt, { + tweeners: { + '*': [ + function (e, t) { + var n = this.createTween(e, t) + return (te(n.elem, e, Y.exec(t), n), n) + }, + ], + }, + tweener: function (e, t) { + v(e) ? ((t = e), (e = ['*'])) : (e = e.match(D)) + for (var n, r = 0, i = e.length; r < i; r++) ((n = e[r]), (yt.tweeners[n] = yt.tweeners[n] || []), yt.tweeners[n].unshift(t)) + }, + prefilters: [ + function (e, t, n) { + var r, + i, + o, + a, + s, + u, + l, + c, + f = 'width' in t || 'height' in t, + p = this, + d = {}, + h = e.style, + g = e.nodeType && ee(e), + v = _.get(e, 'fxshow') + for (r in (n.queue || + (null == (a = ce._queueHooks(e, 'fx')).unqueued && + ((a.unqueued = 0), + (s = a.empty.fire), + (a.empty.fire = function () { + a.unqueued || s() + })), + a.unqueued++, + p.always(function () { + p.always(function () { + ;(a.unqueued--, ce.queue(e, 'fx').length || a.empty.fire()) + }) + })), + t)) + if (((i = t[r]), ft.test(i))) { + if ((delete t[r], (o = o || 'toggle' === i), i === (g ? 'hide' : 'show'))) { + if ('show' !== i || !v || void 0 === v[r]) continue + g = !0 + } + d[r] = (v && v[r]) || ce.style(e, r) + } + if ((u = !ce.isEmptyObject(t)) || !ce.isEmptyObject(d)) + for (r in (f && + 1 === e.nodeType && + ((n.overflow = [h.overflow, h.overflowX, h.overflowY]), + null == (l = v && v.display) && (l = _.get(e, 'display')), + 'none' === (c = ce.css(e, 'display')) && (l ? (c = l) : (re([e], !0), (l = e.style.display || l), (c = ce.css(e, 'display')), re([e]))), + ('inline' === c || ('inline-block' === c && null != l)) && + 'none' === ce.css(e, 'float') && + (u || + (p.done(function () { + h.display = l + }), + null == l && ((c = h.display), (l = 'none' === c ? '' : c))), + (h.display = 'inline-block'))), + n.overflow && + ((h.overflow = 'hidden'), + p.always(function () { + ;((h.overflow = n.overflow[0]), (h.overflowX = n.overflow[1]), (h.overflowY = n.overflow[2])) + })), + (u = !1), + d)) + (u || + (v ? 'hidden' in v && (g = v.hidden) : (v = _.access(e, 'fxshow', { display: l })), + o && (v.hidden = !g), + g && re([e], !0), + p.done(function () { + for (r in (g || re([e]), _.remove(e, 'fxshow'), d)) ce.style(e, r, d[r]) + })), + (u = vt(g ? v[r] : 0, r, p)), + r in v || ((v[r] = u.start), g && ((u.end = u.start), (u.start = 0)))) + }, + ], + prefilter: function (e, t) { + t ? yt.prefilters.unshift(e) : yt.prefilters.push(e) + }, + })), + (ce.speed = function (e, t, n) { + var r = + e && 'object' == typeof e ? ce.extend({}, e) : { complete: n || (!n && t) || (v(e) && e), duration: e, easing: (n && t) || (t && !v(t) && t) } + return ( + ce.fx.off + ? (r.duration = 0) + : 'number' != typeof r.duration && + (r.duration in ce.fx.speeds ? (r.duration = ce.fx.speeds[r.duration]) : (r.duration = ce.fx.speeds._default)), + (null != r.queue && !0 !== r.queue) || (r.queue = 'fx'), + (r.old = r.complete), + (r.complete = function () { + ;(v(r.old) && r.old.call(this), r.queue && ce.dequeue(this, r.queue)) + }), + r + ) + }), + ce.fn.extend({ + fadeTo: function (e, t, n, r) { + return this.filter(ee).css('opacity', 0).show().end().animate({ opacity: t }, e, n, r) + }, + animate: function (t, e, n, r) { + var i = ce.isEmptyObject(t), + o = ce.speed(e, n, r), + a = function () { + var e = yt(this, ce.extend({}, t), o) + ;(i || _.get(this, 'finish')) && e.stop(!0) + } + return ((a.finish = a), i || !1 === o.queue ? this.each(a) : this.queue(o.queue, a)) + }, + stop: function (i, e, o) { + var a = function (e) { + var t = e.stop + ;(delete e.stop, t(o)) + } + return ( + 'string' != typeof i && ((o = e), (e = i), (i = void 0)), + e && this.queue(i || 'fx', []), + this.each(function () { + var e = !0, + t = null != i && i + 'queueHooks', + n = ce.timers, + r = _.get(this) + if (t) r[t] && r[t].stop && a(r[t]) + else for (t in r) r[t] && r[t].stop && pt.test(t) && a(r[t]) + for (t = n.length; t--; ) n[t].elem !== this || (null != i && n[t].queue !== i) || (n[t].anim.stop(o), (e = !1), n.splice(t, 1)) + ;(!e && o) || ce.dequeue(this, i) + }) + ) + }, + finish: function (a) { + return ( + !1 !== a && (a = a || 'fx'), + this.each(function () { + var e, + t = _.get(this), + n = t[a + 'queue'], + r = t[a + 'queueHooks'], + i = ce.timers, + o = n ? n.length : 0 + for (t.finish = !0, ce.queue(this, a, []), r && r.stop && r.stop.call(this, !0), e = i.length; e--; ) + i[e].elem === this && i[e].queue === a && (i[e].anim.stop(!0), i.splice(e, 1)) + for (e = 0; e < o; e++) n[e] && n[e].finish && n[e].finish.call(this) + delete t.finish + }) + ) + }, + }), + ce.each(['toggle', 'show', 'hide'], function (e, r) { + var i = ce.fn[r] + ce.fn[r] = function (e, t, n) { + return null == e || 'boolean' == typeof e ? i.apply(this, arguments) : this.animate(gt(r, !0), e, t, n) + } + }), + ce.each( + { + slideDown: gt('show'), + slideUp: gt('hide'), + slideToggle: gt('toggle'), + fadeIn: { opacity: 'show' }, + fadeOut: { opacity: 'hide' }, + fadeToggle: { opacity: 'toggle' }, + }, + function (e, r) { + ce.fn[e] = function (e, t, n) { + return this.animate(r, e, t, n) + } + }, + ), + (ce.timers = []), + (ce.fx.tick = function () { + var e, + t = 0, + n = ce.timers + for (st = Date.now(); t < n.length; t++) (e = n[t])() || n[t] !== e || n.splice(t--, 1) + ;(n.length || ce.fx.stop(), (st = void 0)) + }), + (ce.fx.timer = function (e) { + ;(ce.timers.push(e), ce.fx.start()) + }), + (ce.fx.interval = 13), + (ce.fx.start = function () { + ut || ((ut = !0), dt()) + }), + (ce.fx.stop = function () { + ut = null + }), + (ce.fx.speeds = { slow: 600, fast: 200, _default: 400 }), + (ce.fn.delay = function (r, e) { + return ( + (r = (ce.fx && ce.fx.speeds[r]) || r), + (e = e || 'fx'), + this.queue(e, function (e, t) { + var n = ie.setTimeout(e, r) + t.stop = function () { + ie.clearTimeout(n) + } + }) + ) + }), + (lt = C.createElement('input')), + (ct = C.createElement('select').appendChild(C.createElement('option'))), + (lt.type = 'checkbox'), + (le.checkOn = '' !== lt.value), + (le.optSelected = ct.selected), + ((lt = C.createElement('input')).value = 't'), + (lt.type = 'radio'), + (le.radioValue = 't' === lt.value)) + var mt, + xt = ce.expr.attrHandle + ;(ce.fn.extend({ + attr: function (e, t) { + return M(this, ce.attr, e, t, 1 < arguments.length) + }, + removeAttr: function (e) { + return this.each(function () { + ce.removeAttr(this, e) + }) + }, + }), + ce.extend({ + attr: function (e, t, n) { + var r, + i, + o = e.nodeType + if (3 !== o && 8 !== o && 2 !== o) + return 'undefined' == typeof e.getAttribute + ? ce.prop(e, t, n) + : ((1 === o && ce.isXMLDoc(e)) || (i = ce.attrHooks[t.toLowerCase()] || (ce.expr.match.bool.test(t) ? mt : void 0)), + void 0 !== n + ? null === n + ? void ce.removeAttr(e, t) + : i && 'set' in i && void 0 !== (r = i.set(e, n, t)) + ? r + : (e.setAttribute(t, n + ''), n) + : i && 'get' in i && null !== (r = i.get(e, t)) + ? r + : null == (r = ce.find.attr(e, t)) + ? void 0 + : r) + }, + attrHooks: { + type: { + set: function (e, t) { + if (!le.radioValue && 'radio' === t && fe(e, 'input')) { + var n = e.value + return (e.setAttribute('type', t), n && (e.value = n), t) + } + }, + }, + }, + removeAttr: function (e, t) { + var n, + r = 0, + i = t && t.match(D) + if (i && 1 === e.nodeType) while ((n = i[r++])) e.removeAttribute(n) + }, + }), + (mt = { + set: function (e, t, n) { + return (!1 === t ? ce.removeAttr(e, n) : e.setAttribute(n, n), n) + }, + }), + ce.each(ce.expr.match.bool.source.match(/\w+/g), function (e, t) { + var a = xt[t] || ce.find.attr + xt[t] = function (e, t, n) { + var r, + i, + o = t.toLowerCase() + return (n || ((i = xt[o]), (xt[o] = r), (r = null != a(e, t, n) ? o : null), (xt[o] = i)), r) + } + })) + var bt = /^(?:input|select|textarea|button)$/i, + wt = /^(?:a|area)$/i + function Tt(e) { + return (e.match(D) || []).join(' ') + } + function Ct(e) { + return (e.getAttribute && e.getAttribute('class')) || '' + } + function kt(e) { + return Array.isArray(e) ? e : ('string' == typeof e && e.match(D)) || [] + } + ;(ce.fn.extend({ + prop: function (e, t) { + return M(this, ce.prop, e, t, 1 < arguments.length) + }, + removeProp: function (e) { + return this.each(function () { + delete this[ce.propFix[e] || e] + }) + }, + }), + ce.extend({ + prop: function (e, t, n) { + var r, + i, + o = e.nodeType + if (3 !== o && 8 !== o && 2 !== o) + return ( + (1 === o && ce.isXMLDoc(e)) || ((t = ce.propFix[t] || t), (i = ce.propHooks[t])), + void 0 !== n + ? i && 'set' in i && void 0 !== (r = i.set(e, n, t)) + ? r + : (e[t] = n) + : i && 'get' in i && null !== (r = i.get(e, t)) + ? r + : e[t] + ) + }, + propHooks: { + tabIndex: { + get: function (e) { + var t = ce.find.attr(e, 'tabindex') + return t ? parseInt(t, 10) : bt.test(e.nodeName) || (wt.test(e.nodeName) && e.href) ? 0 : -1 + }, + }, + }, + propFix: { for: 'htmlFor', class: 'className' }, + }), + le.optSelected || + (ce.propHooks.selected = { + get: function (e) { + var t = e.parentNode + return (t && t.parentNode && t.parentNode.selectedIndex, null) + }, + set: function (e) { + var t = e.parentNode + t && (t.selectedIndex, t.parentNode && t.parentNode.selectedIndex) + }, + }), + ce.each( + ['tabIndex', 'readOnly', 'maxLength', 'cellSpacing', 'cellPadding', 'rowSpan', 'colSpan', 'useMap', 'frameBorder', 'contentEditable'], + function () { + ce.propFix[this.toLowerCase()] = this + }, + ), + ce.fn.extend({ + addClass: function (t) { + var e, n, r, i, o, a + return v(t) + ? this.each(function (e) { + ce(this).addClass(t.call(this, e, Ct(this))) + }) + : (e = kt(t)).length + ? this.each(function () { + if (((r = Ct(this)), (n = 1 === this.nodeType && ' ' + Tt(r) + ' '))) { + for (o = 0; o < e.length; o++) ((i = e[o]), n.indexOf(' ' + i + ' ') < 0 && (n += i + ' ')) + ;((a = Tt(n)), r !== a && this.setAttribute('class', a)) + } + }) + : this + }, + removeClass: function (t) { + var e, n, r, i, o, a + return v(t) + ? this.each(function (e) { + ce(this).removeClass(t.call(this, e, Ct(this))) + }) + : arguments.length + ? (e = kt(t)).length + ? this.each(function () { + if (((r = Ct(this)), (n = 1 === this.nodeType && ' ' + Tt(r) + ' '))) { + for (o = 0; o < e.length; o++) { + i = e[o] + while (-1 < n.indexOf(' ' + i + ' ')) n = n.replace(' ' + i + ' ', ' ') + } + ;((a = Tt(n)), r !== a && this.setAttribute('class', a)) + } + }) + : this + : this.attr('class', '') + }, + toggleClass: function (t, n) { + var e, + r, + i, + o, + a = typeof t, + s = 'string' === a || Array.isArray(t) + return v(t) + ? this.each(function (e) { + ce(this).toggleClass(t.call(this, e, Ct(this), n), n) + }) + : 'boolean' == typeof n && s + ? n + ? this.addClass(t) + : this.removeClass(t) + : ((e = kt(t)), + this.each(function () { + if (s) for (o = ce(this), i = 0; i < e.length; i++) ((r = e[i]), o.hasClass(r) ? o.removeClass(r) : o.addClass(r)) + else + (void 0 !== t && 'boolean' !== a) || + ((r = Ct(this)) && _.set(this, '__className__', r), + this.setAttribute && this.setAttribute('class', r || !1 === t ? '' : _.get(this, '__className__') || '')) + })) + }, + hasClass: function (e) { + var t, + n, + r = 0 + t = ' ' + e + ' ' + while ((n = this[r++])) if (1 === n.nodeType && -1 < (' ' + Tt(Ct(n)) + ' ').indexOf(t)) return !0 + return !1 + }, + })) + var St = /\r/g + ;(ce.fn.extend({ + val: function (n) { + var r, + e, + i, + t = this[0] + return arguments.length + ? ((i = v(n)), + this.each(function (e) { + var t + 1 === this.nodeType && + (null == (t = i ? n.call(this, e, ce(this).val()) : n) + ? (t = '') + : 'number' == typeof t + ? (t += '') + : Array.isArray(t) && + (t = ce.map(t, function (e) { + return null == e ? '' : e + '' + })), + ((r = ce.valHooks[this.type] || ce.valHooks[this.nodeName.toLowerCase()]) && 'set' in r && void 0 !== r.set(this, t, 'value')) || + (this.value = t)) + })) + : t + ? (r = ce.valHooks[t.type] || ce.valHooks[t.nodeName.toLowerCase()]) && 'get' in r && void 0 !== (e = r.get(t, 'value')) + ? e + : 'string' == typeof (e = t.value) + ? e.replace(St, '') + : null == e + ? '' + : e + : void 0 + }, + }), + ce.extend({ + valHooks: { + option: { + get: function (e) { + var t = ce.find.attr(e, 'value') + return null != t ? t : Tt(ce.text(e)) + }, + }, + select: { + get: function (e) { + var t, + n, + r, + i = e.options, + o = e.selectedIndex, + a = 'select-one' === e.type, + s = a ? null : [], + u = a ? o + 1 : i.length + for (r = o < 0 ? u : a ? o : 0; r < u; r++) + if (((n = i[r]).selected || r === o) && !n.disabled && (!n.parentNode.disabled || !fe(n.parentNode, 'optgroup'))) { + if (((t = ce(n).val()), a)) return t + s.push(t) + } + return s + }, + set: function (e, t) { + var n, + r, + i = e.options, + o = ce.makeArray(t), + a = i.length + while (a--) ((r = i[a]).selected = -1 < ce.inArray(ce.valHooks.option.get(r), o)) && (n = !0) + return (n || (e.selectedIndex = -1), o) + }, + }, + }, + }), + ce.each(['radio', 'checkbox'], function () { + ;((ce.valHooks[this] = { + set: function (e, t) { + if (Array.isArray(t)) return (e.checked = -1 < ce.inArray(ce(e).val(), t)) + }, + }), + le.checkOn || + (ce.valHooks[this].get = function (e) { + return null === e.getAttribute('value') ? 'on' : e.value + })) + })) + var Et = ie.location, + jt = { guid: Date.now() }, + At = /\?/ + ce.parseXML = function (e) { + var t, n + if (!e || 'string' != typeof e) return null + try { + t = new ie.DOMParser().parseFromString(e, 'text/xml') + } catch (e) {} + return ( + (n = t && t.getElementsByTagName('parsererror')[0]), + (t && !n) || + ce.error( + 'Invalid XML: ' + + (n + ? ce + .map(n.childNodes, function (e) { + return e.textContent + }) + .join('\n') + : e), + ), + t + ) + } + var Dt = /^(?:focusinfocus|focusoutblur)$/, + Nt = function (e) { + e.stopPropagation() + } + ;(ce.extend(ce.event, { + trigger: function (e, t, n, r) { + var i, + o, + a, + s, + u, + l, + c, + f, + p = [n || C], + d = ue.call(e, 'type') ? e.type : e, + h = ue.call(e, 'namespace') ? e.namespace.split('.') : [] + if ( + ((o = f = a = n = n || C), + 3 !== n.nodeType && + 8 !== n.nodeType && + !Dt.test(d + ce.event.triggered) && + (-1 < d.indexOf('.') && ((d = (h = d.split('.')).shift()), h.sort()), + (u = d.indexOf(':') < 0 && 'on' + d), + ((e = e[ce.expando] ? e : new ce.Event(d, 'object' == typeof e && e)).isTrigger = r ? 2 : 3), + (e.namespace = h.join('.')), + (e.rnamespace = e.namespace ? new RegExp('(^|\\.)' + h.join('\\.(?:.*\\.|)') + '(\\.|$)') : null), + (e.result = void 0), + e.target || (e.target = n), + (t = null == t ? [e] : ce.makeArray(t, [e])), + (c = ce.event.special[d] || {}), + r || !c.trigger || !1 !== c.trigger.apply(n, t))) + ) { + if (!r && !c.noBubble && !y(n)) { + for (s = c.delegateType || d, Dt.test(s + d) || (o = o.parentNode); o; o = o.parentNode) (p.push(o), (a = o)) + a === (n.ownerDocument || C) && p.push(a.defaultView || a.parentWindow || ie) + } + i = 0 + while ((o = p[i++]) && !e.isPropagationStopped()) + ((f = o), + (e.type = 1 < i ? s : c.bindType || d), + (l = (_.get(o, 'events') || Object.create(null))[e.type] && _.get(o, 'handle')) && l.apply(o, t), + (l = u && o[u]) && l.apply && $(o) && ((e.result = l.apply(o, t)), !1 === e.result && e.preventDefault())) + return ( + (e.type = d), + r || + e.isDefaultPrevented() || + (c._default && !1 !== c._default.apply(p.pop(), t)) || + !$(n) || + (u && + v(n[d]) && + !y(n) && + ((a = n[u]) && (n[u] = null), + (ce.event.triggered = d), + e.isPropagationStopped() && f.addEventListener(d, Nt), + n[d](), + e.isPropagationStopped() && f.removeEventListener(d, Nt), + (ce.event.triggered = void 0), + a && (n[u] = a))), + e.result + ) + } + }, + simulate: function (e, t, n) { + var r = ce.extend(new ce.Event(), n, { type: e, isSimulated: !0 }) + ce.event.trigger(r, null, t) + }, + }), + ce.fn.extend({ + trigger: function (e, t) { + return this.each(function () { + ce.event.trigger(e, t, this) + }) + }, + triggerHandler: function (e, t) { + var n = this[0] + if (n) return ce.event.trigger(e, t, n, !0) + }, + })) + var qt = /\[\]$/, + Lt = /\r?\n/g, + Ht = /^(?:submit|button|image|reset|file)$/i, + Ot = /^(?:input|select|textarea|keygen)/i + function Pt(n, e, r, i) { + var t + if (Array.isArray(e)) + ce.each(e, function (e, t) { + r || qt.test(n) ? i(n, t) : Pt(n + '[' + ('object' == typeof t && null != t ? e : '') + ']', t, r, i) + }) + else if (r || 'object' !== x(e)) i(n, e) + else for (t in e) Pt(n + '[' + t + ']', e[t], r, i) + } + ;((ce.param = function (e, t) { + var n, + r = [], + i = function (e, t) { + var n = v(t) ? t() : t + r[r.length] = encodeURIComponent(e) + '=' + encodeURIComponent(null == n ? '' : n) + } + if (null == e) return '' + if (Array.isArray(e) || (e.jquery && !ce.isPlainObject(e))) + ce.each(e, function () { + i(this.name, this.value) + }) + else for (n in e) Pt(n, e[n], t, i) + return r.join('&') + }), + ce.fn.extend({ + serialize: function () { + return ce.param(this.serializeArray()) + }, + serializeArray: function () { + return this.map(function () { + var e = ce.prop(this, 'elements') + return e ? ce.makeArray(e) : this + }) + .filter(function () { + var e = this.type + return this.name && !ce(this).is(':disabled') && Ot.test(this.nodeName) && !Ht.test(e) && (this.checked || !we.test(e)) + }) + .map(function (e, t) { + var n = ce(this).val() + return null == n + ? null + : Array.isArray(n) + ? ce.map(n, function (e) { + return { name: t.name, value: e.replace(Lt, '\r\n') } + }) + : { name: t.name, value: n.replace(Lt, '\r\n') } + }) + .get() + }, + })) + var Mt = /%20/g, + Rt = /#.*$/, + It = /([?&])_=[^&]*/, + Wt = /^(.*?):[ \t]*([^\r\n]*)$/gm, + Ft = /^(?:GET|HEAD)$/, + $t = /^\/\//, + Bt = {}, + _t = {}, + zt = '*/'.concat('*'), + Xt = C.createElement('a') + function Ut(o) { + return function (e, t) { + 'string' != typeof e && ((t = e), (e = '*')) + var n, + r = 0, + i = e.toLowerCase().match(D) || [] + if (v(t)) while ((n = i[r++])) '+' === n[0] ? ((n = n.slice(1) || '*'), (o[n] = o[n] || []).unshift(t)) : (o[n] = o[n] || []).push(t) + } + } + function Vt(t, i, o, a) { + var s = {}, + u = t === _t + function l(e) { + var r + return ( + (s[e] = !0), + ce.each(t[e] || [], function (e, t) { + var n = t(i, o, a) + return 'string' != typeof n || u || s[n] ? (u ? !(r = n) : void 0) : (i.dataTypes.unshift(n), l(n), !1) + }), + r + ) + } + return l(i.dataTypes[0]) || (!s['*'] && l('*')) + } + function Gt(e, t) { + var n, + r, + i = ce.ajaxSettings.flatOptions || {} + for (n in t) void 0 !== t[n] && ((i[n] ? e : r || (r = {}))[n] = t[n]) + return (r && ce.extend(!0, e, r), e) + } + ;((Xt.href = Et.href), + ce.extend({ + active: 0, + lastModified: {}, + etag: {}, + ajaxSettings: { + url: Et.href, + type: 'GET', + isLocal: /^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol), + global: !0, + processData: !0, + async: !0, + contentType: 'application/x-www-form-urlencoded; charset=UTF-8', + accepts: { '*': zt, text: 'text/plain', html: 'text/html', xml: 'application/xml, text/xml', json: 'application/json, text/javascript' }, + contents: { xml: /\bxml\b/, html: /\bhtml/, json: /\bjson\b/ }, + responseFields: { xml: 'responseXML', text: 'responseText', json: 'responseJSON' }, + converters: { '* text': String, 'text html': !0, 'text json': JSON.parse, 'text xml': ce.parseXML }, + flatOptions: { url: !0, context: !0 }, + }, + ajaxSetup: function (e, t) { + return t ? Gt(Gt(e, ce.ajaxSettings), t) : Gt(ce.ajaxSettings, e) + }, + ajaxPrefilter: Ut(Bt), + ajaxTransport: Ut(_t), + ajax: function (e, t) { + ;('object' == typeof e && ((t = e), (e = void 0)), (t = t || {})) + var c, + f, + p, + n, + d, + r, + h, + g, + i, + o, + v = ce.ajaxSetup({}, t), + y = v.context || v, + m = v.context && (y.nodeType || y.jquery) ? ce(y) : ce.event, + x = ce.Deferred(), + b = ce.Callbacks('once memory'), + w = v.statusCode || {}, + a = {}, + s = {}, + u = 'canceled', + T = { + readyState: 0, + getResponseHeader: function (e) { + var t + if (h) { + if (!n) { + n = {} + while ((t = Wt.exec(p))) n[t[1].toLowerCase() + ' '] = (n[t[1].toLowerCase() + ' '] || []).concat(t[2]) + } + t = n[e.toLowerCase() + ' '] + } + return null == t ? null : t.join(', ') + }, + getAllResponseHeaders: function () { + return h ? p : null + }, + setRequestHeader: function (e, t) { + return (null == h && ((e = s[e.toLowerCase()] = s[e.toLowerCase()] || e), (a[e] = t)), this) + }, + overrideMimeType: function (e) { + return (null == h && (v.mimeType = e), this) + }, + statusCode: function (e) { + var t + if (e) + if (h) T.always(e[T.status]) + else for (t in e) w[t] = [w[t], e[t]] + return this + }, + abort: function (e) { + var t = e || u + return (c && c.abort(t), l(0, t), this) + }, + } + if ( + (x.promise(T), + (v.url = ((e || v.url || Et.href) + '').replace($t, Et.protocol + '//')), + (v.type = t.method || t.type || v.method || v.type), + (v.dataTypes = (v.dataType || '*').toLowerCase().match(D) || ['']), + null == v.crossDomain) + ) { + r = C.createElement('a') + try { + ;((r.href = v.url), (r.href = r.href), (v.crossDomain = Xt.protocol + '//' + Xt.host != r.protocol + '//' + r.host)) + } catch (e) { + v.crossDomain = !0 + } + } + if ((v.data && v.processData && 'string' != typeof v.data && (v.data = ce.param(v.data, v.traditional)), Vt(Bt, v, t, T), h)) return T + for (i in ((g = ce.event && v.global) && 0 == ce.active++ && ce.event.trigger('ajaxStart'), + (v.type = v.type.toUpperCase()), + (v.hasContent = !Ft.test(v.type)), + (f = v.url.replace(Rt, '')), + v.hasContent + ? v.data && v.processData && 0 === (v.contentType || '').indexOf('application/x-www-form-urlencoded') && (v.data = v.data.replace(Mt, '+')) + : ((o = v.url.slice(f.length)), + v.data && (v.processData || 'string' == typeof v.data) && ((f += (At.test(f) ? '&' : '?') + v.data), delete v.data), + !1 === v.cache && ((f = f.replace(It, '$1')), (o = (At.test(f) ? '&' : '?') + '_=' + jt.guid++ + o)), + (v.url = f + o)), + v.ifModified && + (ce.lastModified[f] && T.setRequestHeader('If-Modified-Since', ce.lastModified[f]), + ce.etag[f] && T.setRequestHeader('If-None-Match', ce.etag[f])), + ((v.data && v.hasContent && !1 !== v.contentType) || t.contentType) && T.setRequestHeader('Content-Type', v.contentType), + T.setRequestHeader( + 'Accept', + v.dataTypes[0] && v.accepts[v.dataTypes[0]] + ? v.accepts[v.dataTypes[0]] + ('*' !== v.dataTypes[0] ? ', ' + zt + '; q=0.01' : '') + : v.accepts['*'], + ), + v.headers)) + T.setRequestHeader(i, v.headers[i]) + if (v.beforeSend && (!1 === v.beforeSend.call(y, T, v) || h)) return T.abort() + if (((u = 'abort'), b.add(v.complete), T.done(v.success), T.fail(v.error), (c = Vt(_t, v, t, T)))) { + if (((T.readyState = 1), g && m.trigger('ajaxSend', [T, v]), h)) return T + v.async && + 0 < v.timeout && + (d = ie.setTimeout(function () { + T.abort('timeout') + }, v.timeout)) + try { + ;((h = !1), c.send(a, l)) + } catch (e) { + if (h) throw e + l(-1, e) + } + } else l(-1, 'No Transport') + function l(e, t, n, r) { + var i, + o, + a, + s, + u, + l = t + h || + ((h = !0), + d && ie.clearTimeout(d), + (c = void 0), + (p = r || ''), + (T.readyState = 0 < e ? 4 : 0), + (i = (200 <= e && e < 300) || 304 === e), + n && + (s = (function (e, t, n) { + var r, + i, + o, + a, + s = e.contents, + u = e.dataTypes + while ('*' === u[0]) (u.shift(), void 0 === r && (r = e.mimeType || t.getResponseHeader('Content-Type'))) + if (r) + for (i in s) + if (s[i] && s[i].test(r)) { + u.unshift(i) + break + } + if (u[0] in n) o = u[0] + else { + for (i in n) { + if (!u[0] || e.converters[i + ' ' + u[0]]) { + o = i + break + } + a || (a = i) + } + o = o || a + } + if (o) return (o !== u[0] && u.unshift(o), n[o]) + })(v, T, n)), + !i && -1 < ce.inArray('script', v.dataTypes) && ce.inArray('json', v.dataTypes) < 0 && (v.converters['text script'] = function () {}), + (s = (function (e, t, n, r) { + var i, + o, + a, + s, + u, + l = {}, + c = e.dataTypes.slice() + if (c[1]) for (a in e.converters) l[a.toLowerCase()] = e.converters[a] + o = c.shift() + while (o) + if ( + (e.responseFields[o] && (n[e.responseFields[o]] = t), + !u && r && e.dataFilter && (t = e.dataFilter(t, e.dataType)), + (u = o), + (o = c.shift())) + ) + if ('*' === o) o = u + else if ('*' !== u && u !== o) { + if (!(a = l[u + ' ' + o] || l['* ' + o])) + for (i in l) + if ((s = i.split(' '))[1] === o && (a = l[u + ' ' + s[0]] || l['* ' + s[0]])) { + !0 === a ? (a = l[i]) : !0 !== l[i] && ((o = s[0]), c.unshift(s[1])) + break + } + if (!0 !== a) + if (a && e['throws']) t = a(t) + else + try { + t = a(t) + } catch (e) { + return { state: 'parsererror', error: a ? e : 'No conversion from ' + u + ' to ' + o } + } + } + return { state: 'success', data: t } + })(v, s, T, i)), + i + ? (v.ifModified && + ((u = T.getResponseHeader('Last-Modified')) && (ce.lastModified[f] = u), (u = T.getResponseHeader('etag')) && (ce.etag[f] = u)), + 204 === e || 'HEAD' === v.type + ? (l = 'nocontent') + : 304 === e + ? (l = 'notmodified') + : ((l = s.state), (o = s.data), (i = !(a = s.error)))) + : ((a = l), (!e && l) || ((l = 'error'), e < 0 && (e = 0))), + (T.status = e), + (T.statusText = (t || l) + ''), + i ? x.resolveWith(y, [o, l, T]) : x.rejectWith(y, [T, l, a]), + T.statusCode(w), + (w = void 0), + g && m.trigger(i ? 'ajaxSuccess' : 'ajaxError', [T, v, i ? o : a]), + b.fireWith(y, [T, l]), + g && (m.trigger('ajaxComplete', [T, v]), --ce.active || ce.event.trigger('ajaxStop'))) + } + return T + }, + getJSON: function (e, t, n) { + return ce.get(e, t, n, 'json') + }, + getScript: function (e, t) { + return ce.get(e, void 0, t, 'script') + }, + }), + ce.each(['get', 'post'], function (e, i) { + ce[i] = function (e, t, n, r) { + return ( + v(t) && ((r = r || n), (n = t), (t = void 0)), + ce.ajax(ce.extend({ url: e, type: i, dataType: r, data: t, success: n }, ce.isPlainObject(e) && e)) + ) + } + }), + ce.ajaxPrefilter(function (e) { + var t + for (t in e.headers) 'content-type' === t.toLowerCase() && (e.contentType = e.headers[t] || '') + }), + (ce._evalUrl = function (e, t, n) { + return ce.ajax({ + url: e, + type: 'GET', + dataType: 'script', + cache: !0, + async: !1, + global: !1, + converters: { 'text script': function () {} }, + dataFilter: function (e) { + ce.globalEval(e, t, n) + }, + }) + }), + ce.fn.extend({ + wrapAll: function (e) { + var t + return ( + this[0] && + (v(e) && (e = e.call(this[0])), + (t = ce(e, this[0].ownerDocument).eq(0).clone(!0)), + this[0].parentNode && t.insertBefore(this[0]), + t + .map(function () { + var e = this + while (e.firstElementChild) e = e.firstElementChild + return e + }) + .append(this)), + this + ) + }, + wrapInner: function (n) { + return v(n) + ? this.each(function (e) { + ce(this).wrapInner(n.call(this, e)) + }) + : this.each(function () { + var e = ce(this), + t = e.contents() + t.length ? t.wrapAll(n) : e.append(n) + }) + }, + wrap: function (t) { + var n = v(t) + return this.each(function (e) { + ce(this).wrapAll(n ? t.call(this, e) : t) + }) + }, + unwrap: function (e) { + return ( + this.parent(e) + .not('body') + .each(function () { + ce(this).replaceWith(this.childNodes) + }), + this + ) + }, + }), + (ce.expr.pseudos.hidden = function (e) { + return !ce.expr.pseudos.visible(e) + }), + (ce.expr.pseudos.visible = function (e) { + return !!(e.offsetWidth || e.offsetHeight || e.getClientRects().length) + }), + (ce.ajaxSettings.xhr = function () { + try { + return new ie.XMLHttpRequest() + } catch (e) {} + })) + var Yt = { 0: 200, 1223: 204 }, + Qt = ce.ajaxSettings.xhr() + ;((le.cors = !!Qt && 'withCredentials' in Qt), + (le.ajax = Qt = !!Qt), + ce.ajaxTransport(function (i) { + var o, a + if (le.cors || (Qt && !i.crossDomain)) + return { + send: function (e, t) { + var n, + r = i.xhr() + if ((r.open(i.type, i.url, i.async, i.username, i.password), i.xhrFields)) for (n in i.xhrFields) r[n] = i.xhrFields[n] + for (n in (i.mimeType && r.overrideMimeType && r.overrideMimeType(i.mimeType), + i.crossDomain || e['X-Requested-With'] || (e['X-Requested-With'] = 'XMLHttpRequest'), + e)) + r.setRequestHeader(n, e[n]) + ;((o = function (e) { + return function () { + o && + ((o = a = r.onload = r.onerror = r.onabort = r.ontimeout = r.onreadystatechange = null), + 'abort' === e + ? r.abort() + : 'error' === e + ? 'number' != typeof r.status + ? t(0, 'error') + : t(r.status, r.statusText) + : t( + Yt[r.status] || r.status, + r.statusText, + 'text' !== (r.responseType || 'text') || 'string' != typeof r.responseText + ? { binary: r.response } + : { text: r.responseText }, + r.getAllResponseHeaders(), + )) + } + }), + (r.onload = o()), + (a = r.onerror = r.ontimeout = o('error')), + void 0 !== r.onabort + ? (r.onabort = a) + : (r.onreadystatechange = function () { + 4 === r.readyState && + ie.setTimeout(function () { + o && a() + }) + }), + (o = o('abort'))) + try { + r.send((i.hasContent && i.data) || null) + } catch (e) { + if (o) throw e + } + }, + abort: function () { + o && o() + }, + } + }), + ce.ajaxPrefilter(function (e) { + e.crossDomain && (e.contents.script = !1) + }), + ce.ajaxSetup({ + accepts: { script: 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript' }, + contents: { script: /\b(?:java|ecma)script\b/ }, + converters: { + 'text script': function (e) { + return (ce.globalEval(e), e) + }, + }, + }), + ce.ajaxPrefilter('script', function (e) { + ;(void 0 === e.cache && (e.cache = !1), e.crossDomain && (e.type = 'GET')) + }), + ce.ajaxTransport('script', function (n) { + var r, i + if (n.crossDomain || n.scriptAttrs) + return { + send: function (e, t) { + ;((r = ce('<script>') + .attr(n.scriptAttrs || {}) + .prop({ charset: n.scriptCharset, src: n.url }) + .on( + 'load error', + (i = function (e) { + ;(r.remove(), (i = null), e && t('error' === e.type ? 404 : 200, e.type)) + }), + )), + C.head.appendChild(r[0])) + }, + abort: function () { + i && i() + }, + } + })) + var Jt, + Kt = [], + Zt = /(=)\?(?=&|$)|\?\?/ + ;(ce.ajaxSetup({ + jsonp: 'callback', + jsonpCallback: function () { + var e = Kt.pop() || ce.expando + '_' + jt.guid++ + return ((this[e] = !0), e) + }, + }), + ce.ajaxPrefilter('json jsonp', function (e, t, n) { + var r, + i, + o, + a = + !1 !== e.jsonp && + (Zt.test(e.url) + ? 'url' + : 'string' == typeof e.data && 0 === (e.contentType || '').indexOf('application/x-www-form-urlencoded') && Zt.test(e.data) && 'data') + if (a || 'jsonp' === e.dataTypes[0]) + return ( + (r = e.jsonpCallback = v(e.jsonpCallback) ? e.jsonpCallback() : e.jsonpCallback), + a ? (e[a] = e[a].replace(Zt, '$1' + r)) : !1 !== e.jsonp && (e.url += (At.test(e.url) ? '&' : '?') + e.jsonp + '=' + r), + (e.converters['script json'] = function () { + return (o || ce.error(r + ' was not called'), o[0]) + }), + (e.dataTypes[0] = 'json'), + (i = ie[r]), + (ie[r] = function () { + o = arguments + }), + n.always(function () { + ;(void 0 === i ? ce(ie).removeProp(r) : (ie[r] = i), + e[r] && ((e.jsonpCallback = t.jsonpCallback), Kt.push(r)), + o && v(i) && i(o[0]), + (o = i = void 0)) + }), + 'script' + ) + }), + (le.createHTMLDocument = + (((Jt = C.implementation.createHTMLDocument('').body).innerHTML = '<form></form><form></form>'), 2 === Jt.childNodes.length)), + (ce.parseHTML = function (e, t, n) { + return 'string' != typeof e + ? [] + : ('boolean' == typeof t && ((n = t), (t = !1)), + t || + (le.createHTMLDocument + ? (((r = (t = C.implementation.createHTMLDocument('')).createElement('base')).href = C.location.href), t.head.appendChild(r)) + : (t = C)), + (o = !n && []), + (i = w.exec(e)) ? [t.createElement(i[1])] : ((i = Ae([e], t, o)), o && o.length && ce(o).remove(), ce.merge([], i.childNodes))) + var r, i, o + }), + (ce.fn.load = function (e, t, n) { + var r, + i, + o, + a = this, + s = e.indexOf(' ') + return ( + -1 < s && ((r = Tt(e.slice(s))), (e = e.slice(0, s))), + v(t) ? ((n = t), (t = void 0)) : t && 'object' == typeof t && (i = 'POST'), + 0 < a.length && + ce + .ajax({ url: e, type: i || 'GET', dataType: 'html', data: t }) + .done(function (e) { + ;((o = arguments), a.html(r ? ce('<div>').append(ce.parseHTML(e)).find(r) : e)) + }) + .always( + n && + function (e, t) { + a.each(function () { + n.apply(this, o || [e.responseText, t, e]) + }) + }, + ), + this + ) + }), + (ce.expr.pseudos.animated = function (t) { + return ce.grep(ce.timers, function (e) { + return t === e.elem + }).length + }), + (ce.offset = { + setOffset: function (e, t, n) { + var r, + i, + o, + a, + s, + u, + l = ce.css(e, 'position'), + c = ce(e), + f = {} + ;('static' === l && (e.style.position = 'relative'), + (s = c.offset()), + (o = ce.css(e, 'top')), + (u = ce.css(e, 'left')), + ('absolute' === l || 'fixed' === l) && -1 < (o + u).indexOf('auto') + ? ((a = (r = c.position()).top), (i = r.left)) + : ((a = parseFloat(o) || 0), (i = parseFloat(u) || 0)), + v(t) && (t = t.call(e, n, ce.extend({}, s))), + null != t.top && (f.top = t.top - s.top + a), + null != t.left && (f.left = t.left - s.left + i), + 'using' in t ? t.using.call(e, f) : c.css(f)) + }, + }), + ce.fn.extend({ + offset: function (t) { + if (arguments.length) + return void 0 === t + ? this + : this.each(function (e) { + ce.offset.setOffset(this, t, e) + }) + var e, + n, + r = this[0] + return r + ? r.getClientRects().length + ? ((e = r.getBoundingClientRect()), (n = r.ownerDocument.defaultView), { top: e.top + n.pageYOffset, left: e.left + n.pageXOffset }) + : { top: 0, left: 0 } + : void 0 + }, + position: function () { + if (this[0]) { + var e, + t, + n, + r = this[0], + i = { top: 0, left: 0 } + if ('fixed' === ce.css(r, 'position')) t = r.getBoundingClientRect() + else { + ;((t = this.offset()), (n = r.ownerDocument), (e = r.offsetParent || n.documentElement)) + while (e && (e === n.body || e === n.documentElement) && 'static' === ce.css(e, 'position')) e = e.parentNode + e && + e !== r && + 1 === e.nodeType && + (((i = ce(e).offset()).top += ce.css(e, 'borderTopWidth', !0)), (i.left += ce.css(e, 'borderLeftWidth', !0))) + } + return { top: t.top - i.top - ce.css(r, 'marginTop', !0), left: t.left - i.left - ce.css(r, 'marginLeft', !0) } + } + }, + offsetParent: function () { + return this.map(function () { + var e = this.offsetParent + while (e && 'static' === ce.css(e, 'position')) e = e.offsetParent + return e || J + }) + }, + }), + ce.each({ scrollLeft: 'pageXOffset', scrollTop: 'pageYOffset' }, function (t, i) { + var o = 'pageYOffset' === i + ce.fn[t] = function (e) { + return M( + this, + function (e, t, n) { + var r + if ((y(e) ? (r = e) : 9 === e.nodeType && (r = e.defaultView), void 0 === n)) return r ? r[i] : e[t] + r ? r.scrollTo(o ? r.pageXOffset : n, o ? n : r.pageYOffset) : (e[t] = n) + }, + t, + e, + arguments.length, + ) + } + }), + ce.each(['top', 'left'], function (e, n) { + ce.cssHooks[n] = Ye(le.pixelPosition, function (e, t) { + if (t) return ((t = Ge(e, n)), _e.test(t) ? ce(e).position()[n] + 'px' : t) + }) + }), + ce.each({ Height: 'height', Width: 'width' }, function (a, s) { + ce.each({ padding: 'inner' + a, content: s, '': 'outer' + a }, function (r, o) { + ce.fn[o] = function (e, t) { + var n = arguments.length && (r || 'boolean' != typeof e), + i = r || (!0 === e || !0 === t ? 'margin' : 'border') + return M( + this, + function (e, t, n) { + var r + return y(e) + ? 0 === o.indexOf('outer') + ? e['inner' + a] + : e.document.documentElement['client' + a] + : 9 === e.nodeType + ? ((r = e.documentElement), Math.max(e.body['scroll' + a], r['scroll' + a], e.body['offset' + a], r['offset' + a], r['client' + a])) + : void 0 === n + ? ce.css(e, t, i) + : ce.style(e, t, n, i) + }, + s, + n ? e : void 0, + n, + ) + } + }) + }), + ce.each(['ajaxStart', 'ajaxStop', 'ajaxComplete', 'ajaxError', 'ajaxSuccess', 'ajaxSend'], function (e, t) { + ce.fn[t] = function (e) { + return this.on(t, e) + } + }), + ce.fn.extend({ + bind: function (e, t, n) { + return this.on(e, null, t, n) + }, + unbind: function (e, t) { + return this.off(e, null, t) + }, + delegate: function (e, t, n, r) { + return this.on(t, e, n, r) + }, + undelegate: function (e, t, n) { + return 1 === arguments.length ? this.off(e, '**') : this.off(t, e || '**', n) + }, + hover: function (e, t) { + return this.on('mouseenter', e).on('mouseleave', t || e) + }, + }), + ce.each( + 'blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu'.split( + ' ', + ), + function (e, n) { + ce.fn[n] = function (e, t) { + return 0 < arguments.length ? this.on(n, null, e, t) : this.trigger(n) + } + }, + )) + var en = /^[\s\uFEFF\xA0]+|([^\s\uFEFF\xA0])[\s\uFEFF\xA0]+$/g + ;((ce.proxy = function (e, t) { + var n, r, i + if (('string' == typeof t && ((n = e[t]), (t = e), (e = n)), v(e))) + return ( + (r = ae.call(arguments, 2)), + ((i = function () { + return e.apply(t || this, r.concat(ae.call(arguments))) + }).guid = e.guid = + e.guid || ce.guid++), + i + ) + }), + (ce.holdReady = function (e) { + e ? ce.readyWait++ : ce.ready(!0) + }), + (ce.isArray = Array.isArray), + (ce.parseJSON = JSON.parse), + (ce.nodeName = fe), + (ce.isFunction = v), + (ce.isWindow = y), + (ce.camelCase = F), + (ce.type = x), + (ce.now = Date.now), + (ce.isNumeric = function (e) { + var t = ce.type(e) + return ('number' === t || 'string' === t) && !isNaN(e - parseFloat(e)) + }), + (ce.trim = function (e) { + return null == e ? '' : (e + '').replace(en, '$1') + }), + 'function' == typeof define && + define.amd && + define('jquery', [], function () { + return ce + })) + var tn = ie.jQuery, + nn = ie.$ + return ( + (ce.noConflict = function (e) { + return (ie.$ === ce && (ie.$ = nn), e && ie.jQuery === ce && (ie.jQuery = tn), ce) + }), + 'undefined' == typeof e && (ie.jQuery = ie.$ = ce), + ce + ) +}) diff --git a/styles/_blog.scss b/styles/_blog.scss index 479de16601..3b6736134c 100644 --- a/styles/_blog.scss +++ b/styles/_blog.scss @@ -41,19 +41,19 @@ } .hero-post-date { - text-decoration: overline solid #32E685 10%; + text-decoration: overline solid #32e685 10%; } - @each $category in "general", "developer_reflections", "amendments", - "case_study", "advisories", "release_notes", "development", - "gateway_bulletins", "features", "security" { + @each $category in 'general', 'developer_reflections', 'amendments', 'case_study', 'advisories', 'release_notes', 'development', + 'gateway_bulletins', 'features', 'security' + { .#{$category} .category-list { - img { - content: url("../img/blog/#{$category}.png"); + img { + content: url('../img/blog/#{$category}.png'); max-width: 100%; width: 100%; } - .label{ + .label { width: fit-content; } } @@ -63,12 +63,12 @@ @media (min-width: 768px) and (max-width: 991px) { .category-list { display: block; - + img { display: block; margin-bottom: 10px; } - + .label { display: block !important; margin-bottom: 15px; @@ -104,7 +104,7 @@ padding-right: 10px; img { - content: url("../img/icons/chevron-arrow-down.svg"); + content: url('../img/icons/chevron-arrow-down.svg'); width: 10px; height: 13px; padding: 8px; @@ -144,13 +144,13 @@ font-size: 16px; } - .blog-filter[type="checkbox"]::before { + .blog-filter[type='checkbox']::before { position: relative; display: block; width: 20px; height: 20px; - content: ""; + content: ''; background: $gray-900; border-radius: 4px; @@ -159,7 +159,7 @@ border-color: $gray-400; } - .blog-filter[type="checkbox"]::after { + .blog-filter[type='checkbox']::after { position: relative; display: block; @@ -167,7 +167,7 @@ width: 20px; height: 20px; - content: ""; + content: ''; background-repeat: no-repeat; background-position: center; @@ -177,13 +177,13 @@ border-color: $gray-400; } - .blog-filter[type="checkbox"]:checked::before { + .blog-filter[type='checkbox']:checked::before { background: $gray-900; border: none; border-radius: 0; } - .blog-filter[type="checkbox"]:checked::after { + .blog-filter[type='checkbox']:checked::after { background-image: url(../img/blog/blog-check.svg); background-repeat: no-repeat; background-position: center; @@ -194,7 +194,7 @@ border-radius: 4px; } - .blog-filter[type="checkbox"]:not(:disabled):checked:hover::after { + .blog-filter[type='checkbox']:not(:disabled):checked:hover::after { background-image: url(../img/blog/blog-check.svg); background-repeat: no-repeat; background-position: center; @@ -204,13 +204,13 @@ border-radius: 4px; } - .blog-filter[type="checkbox"]:not(:disabled):hover::before { + .blog-filter[type='checkbox']:not(:disabled):hover::before { background: $gray-900; border: none; border-radius: 0; } - .blog-filter[type="checkbox"]:not(:disabled):hover::after { + .blog-filter[type='checkbox']:not(:disabled):hover::after { background: $gray-900; border: none; border-width: 2px; diff --git a/styles/_breadcrumbs.scss b/styles/_breadcrumbs.scss index c69f6a108d..f5d27638a9 100644 --- a/styles/_breadcrumbs.scss +++ b/styles/_breadcrumbs.scss @@ -11,9 +11,9 @@ } .breadcrumb-item + .breadcrumb-item:before { - content: "\f105"; /* fontawesome angle-right */ - font-family: FontAwesome; - padding-right: 5px; + content: '\f105'; /* fontawesome angle-right */ + font-family: FontAwesome; + padding-right: 5px; } .breadcrumbs-wrap .breadcrumb { padding: 0; @@ -25,6 +25,6 @@ text-decoration: none; &:hover { - color: $primary + color: $primary; } } diff --git a/styles/_buttons.scss b/styles/_buttons.scss index 7fe02e670a..3b6caac4c1 100644 --- a/styles/_buttons.scss +++ b/styles/_buttons.scss @@ -1,6 +1,8 @@ // Button styling -------------------------------------------------------------- -.btn, article a.button, article .btn { +.btn, +article a.button, +article .btn { font-weight: bold; cursor: pointer; text-decoration: none; @@ -10,15 +12,15 @@ } article a.button { - padding: .5rem 1rem; + padding: 0.5rem 1rem; margin: 0 0.5rem; display: inline-block; } .btn.disabled, button.disabled, -.btn[disabled="disabled"], -button[disabled="disabled"] { +.btn[disabled='disabled'], +button[disabled='disabled'] { cursor: not-allowed; } @@ -38,7 +40,7 @@ button[disabled="disabled"] { } &.disabled, - &[disabled="disabled"] { + &[disabled='disabled'] { background: $blue-purple-700; &:hover { @@ -80,7 +82,7 @@ button[disabled="disabled"] { .btn-arrow-out::after { background-position: left 0px bottom 0px; - content: "\00a0"; + content: '\00a0'; background-image: url(../img/icons/arrow-up-right-white.svg); background-repeat: no-repeat; display: inline-block; @@ -152,5 +154,4 @@ button[disabled="disabled"] { top: 0; right: 0; } - } diff --git a/styles/_callouts.scss b/styles/_callouts.scss index 0adde6d432..475ccee6da 100644 --- a/styles/_callouts.scss +++ b/styles/_callouts.scss @@ -50,7 +50,7 @@ blockquote, } .devportal-callout.tip > strong:first-child:before { - content: "\f058"; /* fontawesome check-circle icon */ + content: '\f058'; /* fontawesome check-circle icon */ font-family: FontAwesome; /* color in scss */ margin-left: -20px; @@ -58,7 +58,7 @@ blockquote, } .devportal-callout.note > strong:first-child:before { - content: "\f05a"; /* fontawesome (i) info-circle icon */ + content: '\f05a'; /* fontawesome (i) info-circle icon */ font-family: FontAwesome; /* color in scss */ margin-left: -20px; @@ -66,7 +66,7 @@ blockquote, } .devportal-callout.caution > strong:first-child:before { - content: "\f071"; /* fontawesome /!\ exclamation-triangle icon */ + content: '\f071'; /* fontawesome /!\ exclamation-triangle icon */ font-family: FontAwesome; /* color in scss */ margin-left: -20px; @@ -74,7 +74,7 @@ blockquote, } .devportal-callout.warning > strong:first-child:before { - content: "\f057"; /* fontawesome (x) times-circle icon */ + content: '\f057'; /* fontawesome (x) times-circle icon */ font-family: FontAwesome; /* color in scss */ margin-left: -20px; diff --git a/styles/_cards.scss b/styles/_cards.scss index ecc35bb841..ec21059e13 100644 --- a/styles/_cards.scss +++ b/styles/_cards.scss @@ -1,9 +1,11 @@ -.card, .cta-card, .q-wrapper { +.card, +.cta-card, +.q-wrapper { @include media-breakpoint-up(lg) { box-shadow: $dropdown-box-shadow; } } -#code-samples-deck { +#code-samples-deck { .card { box-shadow: none; margin: 0 2rem 5rem 2rem; @@ -17,7 +19,7 @@ font-size: initial; } - .card-deck .card a{ + .card-deck .card a { margin: 0 2.5rem 5rem 2.5rem; } @@ -28,20 +30,20 @@ .code-contribute { @include media-breakpoint-up(lg) { - width: 75vw; - position: relative; - left: 20%; - right: 20%; - margin-left: -30vw; - margin-right: -30vw; + width: 75vw; + position: relative; + left: 20%; + right: 20%; + margin-left: -30vw; + margin-right: -30vw; } } .contribute { &::before { - content:""; + content: ''; display: block; - height:2px; + height: 2px; width: 100%; position: absolute; top: 0; @@ -52,7 +54,7 @@ width: 16px; background-color: #111112; border-radius: 50%; - border: 3px solid #FBFF4C; + border: 3px solid #fbff4c; display: inline-block; position: absolute; top: -7px; @@ -76,38 +78,37 @@ .contribute_1 { &::before { - background: -webkit-linear-gradient(left, rgba(254, 255, 1, 1), rgba(255, 45, 154, 1) ); + background: -webkit-linear-gradient(left, rgba(254, 255, 1, 1), rgba(255, 45, 154, 1)); } .dot { - border-color: #FBFF4C; + border-color: #fbff4c; } } .contribute_2 { &::before { - background: -webkit-linear-gradient(left, rgba(255, 45, 154, 1), rgba(226, 76, 255, 1)); + background: -webkit-linear-gradient(left, rgba(255, 45, 154, 1), rgba(226, 76, 255, 1)); } .dot { - border-color: #FF198B; + border-color: #ff198b; } } .contribute_3 { &::before { - background: -webkit-linear-gradient(left, rgba(226, 76, 255, 1),rgba(154, 82, 255, 1) ); + background: -webkit-linear-gradient(left, rgba(226, 76, 255, 1), rgba(154, 82, 255, 1)); } .dot { - border-color: #C000E5; + border-color: #c000e5; } } .contribute_4 { &::before { - background: -webkit-linear-gradient(left, rgba(154, 82, 255, 1),rgba(154, 82, 255, 1) ); + background: -webkit-linear-gradient(left, rgba(154, 82, 255, 1), rgba(154, 82, 255, 1)); } .dot { - border-color: #9A52FF; + border-color: #9a52ff; } } - .card > img { border-radius: $border-radius-lg $border-radius-lg 0 0; } @@ -125,7 +126,7 @@ main a.card { } a.card:hover, a:hover .card-new, -[data-component-name="Markdown/Markdown"] a.card { +[data-component-name='Markdown/Markdown'] a.card { text-decoration: none !important; } a.card:hover h3 { @@ -135,7 +136,7 @@ a.card:hover h3 { .circled-logo { background-color: $gray-600; border-radius: 50%; - padding: .65rem; + padding: 0.65rem; width: 50px; height: 50px; img { @@ -191,18 +192,18 @@ a.card:hover h3 { } .card { @include media-breakpoint-up(lg) { - flex-basis: calc(33% - #{(2 * $card-deck-margin)} ); + flex-basis: calc(33% - #{(2 * $card-deck-margin)}); } @include media-breakpoint-up(xl) { margin: 0 (2 * $card-deck-margin) (4 * $card-deck-margin) (2 * $card-deck-margin); - flex-basis: calc(33% - #{(4 * $card-deck-margin)} ); + flex-basis: calc(33% - #{(4 * $card-deck-margin)}); } } } &.row-cols-lg-4 .card { @include media-breakpoint-up(lg) { - flex-basis: calc(25% - #{(2 * $card-deck-margin)} ); + flex-basis: calc(25% - #{(2 * $card-deck-margin)}); } } @@ -234,24 +235,30 @@ a.card:hover h3 { padding: 1rem; } &.row-cols-1 .card { - margin: .75rem .75rem (4 * $card-deck-margin) .75rem; + margin: 0.75rem 0.75rem (4 * $card-deck-margin) 0.75rem; max-width: calc(100% - 1.5rem); } &.row-cols-2 .card { - margin: .75rem; + margin: 0.75rem; max-width: calc(50% - 1.5rem); } } } // Generic selection of card footers for Markdoc {% card-grid %}{% xrpl-card %} elements -$footers-3col: "3-col-light-blue", "3-col-green-purple", "3col-purple-blue-green", "3col-magenta-3", "3col-green-blue", "3col-light-blue-2", "3col-orange-yellow-2", "3col-pink-purple", "3col-green-purple", "3col-magenta", "3-col-purple2", "3col-neutral-blue", "3col-purple-blue", "3-col-pink2", "3col-orange", "3col-light-green", "3col-blue-light-blue", "3col-green", "3-col-dark-blue", "3-col-purple", "3col-magenta-2", "3-col-light-blue-2", "3col-light-blue", "3col-magenta-orange", "3-col-purple-blue", "3col-orange-3", "3col-blue-green", "3-col-green", "3-col-orange", "3col-purple-blue-2", "3col-purple", "3-col-light-blue2", "3col-orange-yellow", "3-col-pink", "3col-green-2", "3col-orange-2", "3-col-pink-purple"; +$footers-3col: + '3-col-light-blue', '3-col-green-purple', '3col-purple-blue-green', '3col-magenta-3', '3col-green-blue', '3col-light-blue-2', + '3col-orange-yellow-2', '3col-pink-purple', '3col-green-purple', '3col-magenta', '3-col-purple2', '3col-neutral-blue', '3col-purple-blue', + '3-col-pink2', '3col-orange', '3col-light-green', '3col-blue-light-blue', '3col-green', '3-col-dark-blue', '3-col-purple', '3col-magenta-2', + '3-col-light-blue-2', '3col-light-blue', '3col-magenta-orange', '3-col-purple-blue', '3col-orange-3', '3col-blue-green', '3-col-green', + '3-col-orange', '3col-purple-blue-2', '3col-purple', '3-col-light-blue2', '3col-orange-yellow', '3-col-pink', '3col-green-2', '3col-orange-2', + '3-col-pink-purple'; -@mixin card-footer-color($offset){ +@mixin card-footer-color($offset) { $index: 0; @for $i from 1 through 9 { .card:nth-child(#{$i}) .card-footer { - background-image: url("../img/cards/#{nth($footers-3col, $i+$offset)}.svg"); + background-image: url('../img/cards/#{nth($footers-3col, $i+$offset)}.svg'); } } } @@ -268,21 +275,21 @@ main article .card-grid { padding: 1rem; } - .card-icon-container { - width: 50px; - height: 50px; - background: $gray-600; - display: flex; - justify-content: center; - align-items: center; - border-radius: 50%; - margin-bottom: 12px; + .card-icon-container { + width: 50px; + height: 50px; + background: $gray-600; + display: flex; + justify-content: center; + align-items: center; + border-radius: 50%; + margin-bottom: 12px; - img { - width: 70%; - height: 70%; + img { + width: 70%; + height: 70%; + } } - } .card-footer { font-size: 0; diff --git a/styles/_code-tabs.scss b/styles/_code-tabs.scss index f75c87bb86..727bf725da 100644 --- a/styles/_code-tabs.scss +++ b/styles/_code-tabs.scss @@ -44,7 +44,8 @@ pre { } } - ul { // code tabs + ul { + // code tabs margin: 0 !important; padding: 0; @@ -59,11 +60,12 @@ pre { } } - a { // clickable part of the tabs + a { + // clickable part of the tabs text-decoration: none; color: $white; background-color: transparent; - padding: .75rem 2rem; + padding: 0.75rem 2rem; margin: 0; border-radius: 4px 4px 0 0; @@ -78,7 +80,8 @@ pre { } } - .btn { // expand/collapse, copy-to-clipboard, etc. + .btn { + // expand/collapse, copy-to-clipboard, etc. z-index: 10; } @@ -93,7 +96,6 @@ pre { margin-right: 10px; } - // Syntax highlighting via Codehilite ------------------------------------------ .codehilite { @@ -111,11 +113,11 @@ pre { color: $gray-500; } - .err { // error - + .err { + // error } - .esc { // escape - + .esc { + // escape } .g, // generic .gd, // generic, deleted @@ -129,7 +131,6 @@ pre { .gu, // generic, underline / subheading .gt // generic, traceback { - } .k, // keyword .kc, // keyword, constant @@ -144,7 +145,6 @@ pre { .l, // literal .ld // literal, date { - } .m, // literal, number .mb, // number, bin @@ -177,9 +177,9 @@ pre { .o, // operator .ow // operator, word { - } - .p { // punctuation + .p { + // punctuation color: $gray-200; } .s, // literal, string @@ -205,16 +205,14 @@ pre { .vi, // variable, instance .vm // variable, magic { - } - - .w { // whitespace - + .w { + // whitespace } - .x { // "other" - + .x { + // "other" } } @@ -234,7 +232,6 @@ pre { } } - // CodeMirror (editable code blocks) ------------------------------------------- // Have to nest due to the order Redocly loads in the styles #redocly_root { diff --git a/styles/_code-walkthrough.scss b/styles/_code-walkthrough.scss index 609bfe932c..d88321c83c 100644 --- a/styles/_code-walkthrough.scss +++ b/styles/_code-walkthrough.scss @@ -1,61 +1,61 @@ #app_root article .code-walkthrough { - margin-right: 112px; - max-width: calc(100% - 112px); - padding-right: 0; - grid-template-columns: 5fr 5fr; + margin-right: 112px; + max-width: calc(100% - 112px); + padding-right: 0; + grid-template-columns: 5fr 5fr; - @media screen and (max-width: 990px) { - margin-right: 96px; - max-width: calc(100% - 96px); + @media screen and (max-width: 990px) { + margin-right: 96px; + max-width: calc(100% - 96px); + } + + // Wide screens - increase available space + @media screen and (min-width: 1600px) { + [data-component-name='Markdoc/CodeWalkthrough/CodeFilters'] { + margin-left: 96px; + max-width: calc(100% - 96px); } - // Wide screens - increase available space - @media screen and (min-width: 1600px) { - [data-component-name="Markdoc/CodeWalkthrough/CodeFilters"] { - margin-left: 96px; - max-width: calc(100% - 96px); - } - - [class*="CodeWalkthrough__ContentWrapper"] { - margin-left: 96px; - max-width: calc(100% - 200px); - } + [class*='CodeWalkthrough__ContentWrapper'] { + margin-left: 96px; + max-width: calc(100% - 200px); } + } - .tag-size-large { - margin: 0 var(--spacing-xs); + .tag-size-large { + margin: 0 var(--spacing-xs); - > div { - padding: 2px 4px; - } + > div { + padding: 2px 4px; } + } - [data-component-name="Markdoc/CodeWalkthrough/CodeFilters"] { - padding: var(--spacing-xs) var(--spacing-lg); + [data-component-name='Markdoc/CodeWalkthrough/CodeFilters'] { + padding: var(--spacing-xs) var(--spacing-lg); - > :first-child > :first-child { - margin: auto; - } + > :first-child > :first-child { + margin: auto; } + } - [data-component-name="Markdoc/CodeWalkthrough/CodePanel"] { - top: var(--navbar-height); - border: 0; + [data-component-name='Markdoc/CodeWalkthrough/CodePanel'] { + top: var(--navbar-height); + border: 0; - [data-component-name="CodeBlock/CodeBlockContainer"] { - border-top-left-radius: 0; - border-top-right-radius: 0; - } + [data-component-name='CodeBlock/CodeBlockContainer'] { + border-top-left-radius: 0; + border-top-right-radius: 0; } + } - > :first-child > div { - border-radius: var(--border-radius-md); - } - [data-component-name="Markdoc/CodeWalkthrough/CodeFilters"] { - background-color: var(--code-panel-bg-color); - } + > :first-child > div { + border-radius: var(--border-radius-md); + } + [data-component-name='Markdoc/CodeWalkthrough/CodeFilters'] { + background-color: var(--code-panel-bg-color); + } - [data-line-number]::before { - padding-left: 0.8em; - } + [data-line-number]::before { + padding-left: 0.8em; + } } diff --git a/styles/_colors.scss b/styles/_colors.scss index 266c5dbdf5..8bbfa1481e 100644 --- a/styles/_colors.scss +++ b/styles/_colors.scss @@ -1,133 +1,133 @@ // XRP Visual Guidelines 2021 palette // Full color palette first ---------------------------------------------------- -$white: #FFFFFF; -$gray-050: #FCFCFD; -$gray-100: #F5F5F7; -$gray-200: #E0E0E1; -$gray-300: #C1C1C2; -$gray-400: #A2A2A4; +$white: #ffffff; +$gray-050: #fcfcfd; +$gray-100: #f5f5f7; +$gray-200: #e0e0e1; +$gray-300: #c1c1c2; +$gray-400: #a2a2a4; $gray-500: #838386; $gray-600: #454549; $gray-700: #343437; $gray-800: #232325; $gray-900: #111112; -$black: #000000; +$black: #000000; $black-10: $gray-100; $black-40: $gray-400; $black-60: $gray-600; -$green-100: #D6FAE7; -$green-200: #ADF5CE; -$green-300: #84F0B6; -$green-400: #5BEB9D; -$green-500: #32E685; -$green-600: #2DCF78; -$green-700: #28B86A; -$green-800: #1E8A50; -$green-900: #145C35; -$green-1000: #0A2E1B; +$green-100: #d6fae7; +$green-200: #adf5ce; +$green-300: #84f0b6; +$green-400: #5beb9d; +$green-500: #32e685; +$green-600: #2dcf78; +$green-700: #28b86a; +$green-800: #1e8a50; +$green-900: #145c35; +$green-1000: #0a2e1b; $green: $green-500; -$apex-2023-green: #00FF76; +$apex-2023-green: #00ff76; $token-2049-purple: #410bb9; -$blue-100: #E5F5FF; -$blue-200: #B2E0FF; -$blue-300: #80CCFF; -$blue-400: #4BB7FF; -$blue-500: #19A3FF; -$blue-600: #008AE5; -$blue-700: #006BB2; -$blue-800: #004D80; -$blue-900: #002E4C; +$blue-100: #e5f5ff; +$blue-200: #b2e0ff; +$blue-300: #80ccff; +$blue-400: #4bb7ff; +$blue-500: #19a3ff; +$blue-600: #008ae5; +$blue-700: #006bb2; +$blue-800: #004d80; +$blue-900: #002e4c; $blue: $blue-500; $accent-blue-90: #001133; // Used in APEX 2023 banner -$blue-purple-100: #F0E5FF; -$blue-purple-200: #D2B2FF; -$blue-purple-300: #B480FF; -$blue-purple-400: #9A52FF; -$blue-purple-500: #7919FF; -$blue-purple-600: #5F00E5; -$blue-purple-700: #4A00B2; +$blue-purple-100: #f0e5ff; +$blue-purple-200: #d2b2ff; +$blue-purple-300: #b480ff; +$blue-purple-400: #9a52ff; +$blue-purple-500: #7919ff; +$blue-purple-600: #5f00e5; +$blue-purple-700: #4a00b2; $blue-purple-800: #350080; -$blue-purple-900: #20004C; +$blue-purple-900: #20004c; $purple: $blue-purple-400; -$red-purple-100: #FBE5FF; -$red-purple-200: #F2B2FF; -$red-purple-300: #EA80FF; -$red-purple-400: #E24CFF; -$red-purple-500: #D919FF; -$red-purple-600: #C000E5; -$red-purple-700: #9500B2; -$red-purple-800: #6B0080; -$red-purple-900: #40004C; +$red-purple-100: #fbe5ff; +$red-purple-200: #f2b2ff; +$red-purple-300: #ea80ff; +$red-purple-400: #e24cff; +$red-purple-500: #d919ff; +$red-purple-600: #c000e5; +$red-purple-700: #9500b2; +$red-purple-800: #6b0080; +$red-purple-900: #40004c; -$magenta-100: #FFE5F2; -$magenta-200: #FFB2D8; -$magenta-300: #FF80BF; -$magenta-400: #FF4BA4; -$magenta-500: #FF198B; -$magenta-600: #E50071; -$magenta-700: #B20058; -$magenta-800: #80003F; -$magenta-900: #4C0026; +$magenta-100: #ffe5f2; +$magenta-200: #ffb2d8; +$magenta-300: #ff80bf; +$magenta-400: #ff4ba4; +$magenta-500: #ff198b; +$magenta-600: #e50071; +$magenta-700: #b20058; +$magenta-800: #80003f; +$magenta-900: #4c0026; $magenta: $magenta-500; $pink: $magenta-500; -$orange-100: #FFEEE5; -$orange-200: #FFCCB2; -$orange-300: #FFAA80; -$orange-400: #FF884B; -$orange-500: #FF6719; -$orange-600: #E54D00; -$orange-700: #B23C00; -$orange-800: #802B00; -$orange-900: #4C1A00; +$orange-100: #ffeee5; +$orange-200: #ffccb2; +$orange-300: #ffaa80; +$orange-400: #ff884b; +$orange-500: #ff6719; +$orange-600: #e54d00; +$orange-700: #b23c00; +$orange-800: #802b00; +$orange-900: #4c1a00; $orange: $orange-500; -$yellow-100: #FEFFE5; -$yellow-200: #FDFFB2; -$yellow-300: #FCFF80; -$yellow-400: #FBFF4C; -$yellow-500: #FAFF19; -$yellow-600: #E0E500; -$yellow-700: #AEB200; -$yellow-800: #7D8000; -$yellow-900: #4B4C00; +$yellow-100: #feffe5; +$yellow-200: #fdffb2; +$yellow-300: #fcff80; +$yellow-400: #fbff4c; +$yellow-500: #faff19; +$yellow-600: #e0e500; +$yellow-700: #aeb200; +$yellow-800: #7d8000; +$yellow-900: #4b4c00; $yellow: $yellow-500; // Common colors & colors used in Bootstrap ------------------------------------ -$primary: $purple; -$secondary: $gray-200; -$light: $white; -$dark: $gray-900; -$success: $green-500; -$info: $blue-500; -$warning: $yellow-500; // "caution" callout style -$danger: $magenta-500; // "warning" callout style +$primary: $purple; +$secondary: $gray-200; +$light: $white; +$dark: $gray-900; +$success: $green-500; +$info: $blue-500; +$warning: $yellow-500; // "caution" callout style +$danger: $magenta-500; // "warning" callout style // Bootstrap elements -$body-bg: $gray-900; +$body-bg: $gray-900; $navbar-light-color: $gray-600; -$code-color: $secondary; -$body-color: $gray-200; -$headings-color: $white; -$text-muted: $gray-200; +$code-color: $secondary; +$body-color: $gray-200; +$headings-color: $white; +$text-muted: $gray-200; $link-hover-color: $purple; -$link-color: $white; +$link-color: $white; -$breadcrumb-bg: $body-bg; +$breadcrumb-bg: $body-bg; $breadcrumb-active-color: $gray-400; -$card-bg: $gray-800; +$card-bg: $gray-800; -$dropdown-bg: $gray-900; +$dropdown-bg: $gray-900; $dropdown-divider-bg: $black; $dropdown-border-color: $gray-900; -$dropdown-color: $secondary; +$dropdown-color: $secondary; $dropdown-link-color: $white; $dropdown-link-hover-color: $purple; $dropdown-link-hover-bg: $gray-900; diff --git a/styles/_content.scss b/styles/_content.scss index 473421a862..101dee111a 100644 --- a/styles/_content.scss +++ b/styles/_content.scss @@ -1,6 +1,6 @@ /* Content text styling (applies mostly to Markdown-generated content)------- */ -[data-component-name="Markdown/Markdown"] article { +[data-component-name='Markdown/Markdown'] article { padding-bottom: 50px; p code, @@ -26,7 +26,8 @@ } } - h2, h2.md { + h2, + h2.md { margin-top: 2.5rem; margin-bottom: 1.5rem; font-size: 2.5rem; @@ -34,7 +35,8 @@ line-height: 1.2; } - h3, h3.md { + h3, + h3.md { font-size: 2.125rem; margin-top: 2rem; margin-bottom: 1rem; @@ -64,7 +66,9 @@ /* Some list items contain <p> tags, some don't. These styles make sure both kinds are spaced consistently. */ - > ul, > ol, .children-display { + > ul, + > ol, + .children-display { li { margin: 6px; margin-top: 24px; @@ -76,13 +80,13 @@ margin: 0; } } - [data-component-name="Markdoc/Tabs/Tabs"] li { + [data-component-name='Markdoc/Tabs/Tabs'] li { margin: 0; } // "Source" links float right - a[title="Source"], - a[title="ソース"] { + a[title='Source'], + a[title='ソース'] { float: right; padding-left: 20px; } @@ -122,7 +126,12 @@ font-size: 1.25rem; } -h1,h2,h3,h4,h5,h6 { +h1, +h2, +h3, +h4, +h5, +h6 { &:hover .hover_anchor { visibility: visible; text-decoration: none; diff --git a/styles/_contribute.scss b/styles/_contribute.scss index eb35d53927..f25edd48fd 100644 --- a/styles/_contribute.scss +++ b/styles/_contribute.scss @@ -1,1186 +1,1178 @@ .page-community { + @media (max-width: 768px) { + .sm-align-items-start { + align-items: start !important; + } + } + + .numbers-animation { + width: 218px; + height: 96px; + } + + @keyframes bounce { + 0%, + 100% { + transform: translateY(0); + } + + 50% { + transform: translateY(-10px); + } + } + + .bounce-arrow { + animation: bounce 1.5s infinite; + animation-timing-function: ease-in-out; + height: 26px; + width: 26px; + position: relative; + top: 24px; + } + + .m-gif { + height: 108px; + } + + .middle-image { + margin: 0 auto; + height: 35px; + } + + .bg-hero { + width: 100%; + height: 635px; + } + + #center-image { + cursor: pointer; + } + + .gradient-num-three { + background: linear-gradient(35deg, #84f0b6 -0.3%, #b480ff 99.7%); + -webkit-background-clip: text; + background-clip: text; + color: transparent; + } + .middle-image-two { + margin: 0 auto; + height: 52px; + } + + .gradient-num-two { + background: linear-gradient(35deg, #ea80ff -0.3%, #80ccff 99.7%); + -webkit-background-clip: text; + background-clip: text; + color: transparent; + } + + .gradient-num { + background: linear-gradient(35deg, #b480ff -0.3%, #ffaa80 99.7%); + -webkit-background-clip: text; + background-clip: text; + color: transparent; + } + + .surround-gradient { + background: linear-gradient(35deg, #b480ff -0.3%, #ffaa80 99.7%); + -webkit-background-clip: text; + background-clip: text; + color: transparent; + font-size: 40px; + font-weight: 400; + } + + .surround-gradient-two { + background: linear-gradient(35deg, #ea80ff -0.3%, #80ccff 99.7%); + -webkit-background-clip: text; + background-clip: text; + color: transparent; + font-size: 40px; + font-weight: 400; + } + + .surround-gradient-three { + background: linear-gradient(35deg, #84f0b6 -0.3%, #b480ff 99.7%); + -webkit-background-clip: text; + background-clip: text; + color: transparent; + font-size: 40px; + font-weight: 400; + } + + .main-title { + color: var(--black-black-0, #fff); + text-align: center; + + /* Desktop / H1 */ + font-family: Work Sans; + font-size: 62px; + font-style: normal; + font-weight: 700; + line-height: 70px; @media (max-width: 768px) { - .sm-align-items-start { - align-items: start !important; - } + font-size: 42px; + line-height: 52px; + text-align: left; } + } - .numbers-animation { - width: 218px; - height: 96px; + .get-funding-btn { + width: 90%; + margin: 0 auto; + } + + @media (max-width: 768px) { + .cd-none-sm { + display: none !important; } + } - @keyframes bounce { - - 0%, - 100% { - transform: translateY(0); - } - - 50% { - transform: translateY(-10px); - } + @media (min-width: 769px) { + .cd-none-lg { + display: none !important; } + } - .bounce-arrow { - animation: bounce 1.5s infinite; - animation-timing-function: ease-in-out; - height: 26px; - width: 26px; - position: relative; - top: 24px; - } + .icon-date { + padding-right: 4px; + content: url(../img/events/event-date.svg); + } - .m-gif { - height: 108px; - } + .icon-location { + padding-right: 4px; + content: url(../img/events/event-location.svg); + } - .middle-image { - margin: 0 auto; - height: 35px; - } - - .bg-hero { - width: 100%; - height: 635px; - } - - #center-image { - cursor: pointer; - } - - - .gradient-num-three { - background: linear-gradient(35deg, #84F0B6 -0.3%, #B480FF 99.7%); - -webkit-background-clip: text; - background-clip: text; - color: transparent; - } - .middle-image-two{ - margin: 0 auto; - height: 52px; - } - - .gradient-num-two { - background: linear-gradient(35deg, #EA80FF -0.3%, #80CCFF 99.7%); - -webkit-background-clip: text; - background-clip: text; - color: transparent; - } - - .gradient-num { - background: linear-gradient(35deg, #B480FF -0.3%, #FFAA80 99.7%); - -webkit-background-clip: text; - background-clip: text; - color: transparent; - } - - .surround-gradient { - background: linear-gradient(35deg, #B480FF -0.3%, #FFAA80 99.7%); - -webkit-background-clip: text; - background-clip: text; - color: transparent; - font-size: 40px; - font-weight: 400; - } - - .surround-gradient-two { - background: linear-gradient(35deg, #EA80FF -0.3%, #80CCFF 99.7%); - -webkit-background-clip: text; - background-clip: text; - color: transparent; - font-size: 40px; - font-weight: 400; - } - - .surround-gradient-three { - background: linear-gradient(35deg, #84F0B6 -0.3%, #B480FF 99.7%); - -webkit-background-clip: text; - background-clip: text; - color: transparent; - font-size: 40px; - font-weight: 400; - } - - .main-title { - color: var(--black-black-0, #FFF); - text-align: center; - - /* Desktop / H1 */ - font-family: Work Sans; - font-size: 62px; - font-style: normal; - font-weight: 700; - line-height: 70px; - - @media (max-width: 768px) { - font-size: 42px; - line-height: 52px; - text-align: left; - } - } - - .get-funding-btn { - width: 90%; - margin: 0 auto; - } - - @media (max-width: 768px) { - .cd-none-sm { - display: none !important; - } - } - - @media (min-width: 769px) { - .cd-none-lg { - display: none !important; - } - } - - .icon-date { - padding-right: 4px; - content: url(../img/events/event-date.svg); - } - - .icon-location { - padding-right: 4px; - content: url(../img/events/event-location.svg); - } + .builders-wrap { + white-space: nowrap; + } + @media (min-width: 768px) { .builders-wrap { - white-space: nowrap; + white-space: normal; + } + } + + #community-table { + padding: 20px 93px; + max-width: 1280px; + margin: 0 auto; + border-radius: 5px; + padding-top: 165px; + + @include media-breakpoint-up(lg) { + padding-top: 512px; } - @media (min-width: 768px) { - .builders-wrap { - white-space: normal; - } + @media (max-width: 768px) { + margin: 0; + padding: 20px; + margin-top: 100px !important; + } + } + + .eyebrow-convo { + text-align: start; + font-family: Work Sans; + font-size: 20px; + font-style: normal; + font-weight: 700; + line-height: 26px; + padding-bottom: 5px; + /* 130% */ + } + + .final-tr { + border: none !important; + } + + #community-table h4 { + text-align: start; + margin: 10px 0; + font-family: Work Sans; + font-size: 32px; + font-style: normal; + font-weight: 700; + line-height: 38px; + /* 118.75% */ + } + + #community-table table { + width: 100%; + margin-top: 31px; + border-collapse: collapse; + } + + #community-table tr { + padding: 10px 10px; + border-bottom: 1px solid #343437; + } + + #community-table td { + overflow: hidden; // Hide the overflow + max-width: 34vw; // Your current max width + position: relative; // To position the pseudo-element + vertical-align: middle; + } + + .scrolling-text { + display: inline-block; + } + + #community-table img { + max-width: 52px; + height: 29px; + } + + .td-img { + padding: 10px; + width: 69px; + + .discord-icon { + content: url(../img/community/ic_discord.png); + } + + .twitter-icon { + content: url(../img/community/ic_twitter.png); + } + + .youtube-icon { + content: url(../img/community/ic_youtube.png); + } + + .xrpl-icon { + content: url(../img/community/ic_xrpl.png); + } + + .github-icon { + content: url(../img/community/ic_github.png); + } + + .stackoverflow-icon { + content: url(../img/community/ic_stackoverflow.png); + } + } + + .text-external-link { + display: inline-flex; + align-items: center; + margin-left: 10px; + } + + .external-link-contribute { + display: inline-block; + vertical-align: middle; + padding-right: 41px; + height: 16px; + background: url(../img/icons/arrow-up-right.svg) no-repeat center center; + transition: transform 0.3s ease; + /* smooth transition effect */ + } + + .text-external-link:hover .external-link-contribute { + transform: translate(5px, -5px); + /* move 5px to the right and 5px up */ + } + + table td { + position: relative; + padding-right: 25px; + /* Give some space for the arrow */ + } + + table td .text-external-link { + position: absolute; + right: 5px; + top: 50%; + transform: translateY(-50%); + } + + @media (max-width: 768px) { + #community-table img { + width: 96px; + height: 29px; } #community-table { - padding: 20px 93px; - max-width: 1280px; - margin: 0 auto; - border-radius: 5px; - padding-top: 165px; - - @include media-breakpoint-up(lg) { - padding-top: 512px; - } - - @media (max-width: 768px) { - margin: 0; - padding: 20px; - margin-top: 100px !important; - } - } - - .eyebrow-convo { - text-align: start; - font-family: Work Sans; - font-size: 20px; - font-style: normal; - font-weight: 700; - line-height: 26px; - padding-bottom: 5px; - /* 130% */ - } - - .final-tr { - border: none !important; - } - - #community-table h4 { - text-align: start; - margin: 10px 0; - font-family: Work Sans; - font-size: 32px; - font-style: normal; - font-weight: 700; - line-height: 38px; - /* 118.75% */ - } - - #community-table table { - width: 100%; - margin-top: 31px; - border-collapse: collapse; - } - - #community-table tr { - padding: 10px 10px; - border-bottom: 1px solid #343437; - } - - #community-table td { - overflow: hidden; // Hide the overflow - max-width: 34vw; // Your current max width - position: relative; // To position the pseudo-element - vertical-align: middle; - } - - .scrolling-text { - display: inline-block; - } - - - #community-table img { - max-width: 52px; - height: 29px; + width: 100%; } .td-img { - padding: 10px; - width: 69px; - - .discord-icon { - content: url(../img/community/ic_discord.png) - } - - .twitter-icon { - content: url(../img/community/ic_twitter.png); - } - - .youtube-icon { - content: url(../img/community/ic_youtube.png); - } - - .xrpl-icon { - content: url(../img/community/ic_xrpl.png); - } - - .github-icon { - content: url(../img/community/ic_github.png); - } - - .stackoverflow-icon { - content: url(../img/community/ic_stackoverflow.png); - } + min-width: 60px; + /* Remove fixed width for mobile view */ } + } + .funding-text { + color: var($white); + /* Desktop/H6 */ + font-family: Work Sans; + font-size: 20px; + font-style: normal; + font-weight: 700; + line-height: 44px; + padding-bottom: 4px; + /* 130% */ + } - .text-external-link { - display: inline-flex; - align-items: center; - margin-left: 10px; - } - - .external-link-contribute { - display: inline-block; - vertical-align: middle; - padding-right: 41px; - height: 16px; - background: url(../img/icons/arrow-up-right.svg) no-repeat center center; - transition: transform 0.3s ease; - /* smooth transition effect */ - - } - - .text-external-link:hover .external-link-contribute { - transform: translate(5px, -5px); - /* move 5px to the right and 5px up */ - } - - table td { - position: relative; - padding-right: 25px; - /* Give some space for the arrow */ - } - - table td .text-external-link { - position: absolute; - right: 5px; - top: 50%; - transform: translateY(-50%); - } - - @media (max-width: 768px) { - #community-table img { - width: 96px; - height: 29px; - } - - #community-table { - width: 100%; - } - - .td-img { - min-width: 60px; - /* Remove fixed width for mobile view */ - } - } - - .funding-text { - color: var($white); - /* Desktop/H6 */ - font-family: Work Sans; - font-size: 20px; - font-style: normal; - font-weight: 700; - line-height: 44px; - padding-bottom: 4px; - /* 130% */ - } - - .xrpl-events-section { - padding: 50px 40px; - margin: 100px auto; - display: flex; - justify-content: space-around; - align-items: center; - max-width: 1280px; - - // Responsive Styles for Mobile - @media screen and (max-width: 768px) { - // Adjust this breakpoint value as needed - flex-direction: column; - align-items: start; - - .header-div { - text-align: center; - } - - .header { - display: flex; - flex-direction: column; - align-items: start; - - h6 { - margin-bottom: 0.5rem; - font-family: Work Sans; - font-size: 20px; - font-style: normal; - font-weight: 700; - line-height: 28px; - } - - h4 { - font-family: Work Sans; - font-size: 28px; - font-style: normal; - font-weight: 700; - line-height: 34px; - } - } - - .description { - text-align: start; - margin-top: 2rem; - font-family: Work Sans; - font-size: 24px; - font-style: normal; - font-weight: 500; - line-height: 28px; - /* 140% */ - } - - .view-all-events-btn { - float: left; - } - - .upcoming-event { - text-align: start; - margin-top: 2rem; - padding: 1rem 0; - - .days-count { - margin-bottom: 1rem; - } - } - } - - .header-div { - padding-top: 27px; - } - - .header { - h6 { - padding-left: 1.5px; - font-family: 'Work Sans', sans-serif; - font-size: 20px; - font-weight: 700; - color: var(--black-black-0, #FFF); - text-align: start; - } - - h4 { - text-align: start; - font-family: 'Work Sans', sans-serif; - font-size: 32px; - font-weight: 700; - color: var(--black-black-0, #FFF); - } - } - - .description { - font-family: 'Work Sans', sans-serif; - font-size: 20px; - font-weight: 500; - max-width: 444px; - color: var(--black-black-10-gray-200, #E0E0E1); - line-height: 32px; - /* 133.333% */ - } - - .view-all-events-btn { - display: inline-block; - margin-top: 1rem; - } - - .upcoming-event { - margin-top: 2rem; - - .upcoming-label { - position: relative; - top: 7px; - font-family: 'Work Sans', sans-serif; - font-size: 12px; - font-weight: 600; - text-transform: uppercase; - color: var(--black-black-30, #C1C1C2); - } - - - .days-count { - font-weight: 300; - margin-bottom: 21px; - line-height: 99px; - font-size: 88px; - background: linear-gradient(35deg, #B480FF -.3%, #FFAA80 99.7%); - -webkit-background-clip: text; - background-clip: text; - color: transparent; - display: inline-block; - } - - .days-word { - vertical-align: bottom; - font-weight: normal; - margin-bottom: 21px; - line-height: 99px; - font-size: 40px; - background: linear-gradient(35deg, #B480FF -.3%, #FFAA80 99.7%); - -webkit-background-clip: text; - background-clip: text; - color: transparent; - display: inline-block; - } - - h5 { - font-family: 'Work Sans', sans-serif; - font-size: 16px; - font-weight: 700; - color: var(--black-black-10, #F5F5F7); - } - - .event-details, - .event-location { - font-family: 'Work Sans', sans-serif; - font-size: 12px; - font-weight: 600; - color: var(--black-black-30, #C1C1C2); - } - } - } - - .community-funding { - display: flex; - flex-wrap: wrap; - justify-content: space-between; - max-width: 1280px; - margin: 100px auto; - padding-right: 54px; - padding-left: 73px; - margin-top: 120px; - } - - .funding-section { - flex: 1; - padding: 20px; - color: var(--black-black-0); - } - - .small-text { - color: var(--black-black-30, #C1C1C2); - font-family: Work Sans; - font-size: 12px; - font-style: normal; - font-weight: 600; - line-height: 16px; - /* 133.333% */ - text-transform: uppercase; - padding-left: 11px; - text-align: start; - } - - .funding-section h2 { - font-size: 32px; - font-weight: 700; - line-height: 38px; - margin-top: 10px; - margin-bottom: 40px; - } - - .funding-section p { - color: var(--black-black-20); - font-size: 24px; - font-weight: 500; - line-height: 32px; - margin-bottom: 40px; - } - - .stats { - flex: 1; - display: flex; - justify-content: space-between; - - @media (max-width: 768px) { - flex-direction: column; - align-items: start; - text-align: start; - padding-left: 7px; - } - } - - .stacked-stats { - display: flex; - flex-direction: column; - justify-content: space-between; - } - - .stat { - align-self: center; - text-align: center; - margin: 0 auto; - display: flex; - flex-direction: column; - - @media (max-width: 768px) { - margin: 0px; - text-align: start; - align-self: start; - } - } - - .number { - opacity: 1; - font-size: 88px; - display: flex; - padding: 10px; - align-items: center; - line-height: 96px; - font-weight: 300; - } + .xrpl-events-section { + padding: 50px 40px; + margin: 100px auto; + display: flex; + justify-content: space-around; + align-items: center; + max-width: 1280px; + // Responsive Styles for Mobile @media screen and (max-width: 768px) { - .community-funding { - flex-direction: column-reverse; - padding-left: 16px; - padding-right: 16px; - } + // Adjust this breakpoint value as needed + flex-direction: column; + align-items: start; - .funding-section, - .stats { - width: 100%; - } - } + .header-div { + text-align: center; + } - .carousel { - position: relative; - width: 1280px; - margin: 0 auto; - margin-top: 106px; - max-width: 100%; // Make the carousel responsive - - .flex-align { - display: flex; - align-items: center; - } - - @media (max-width: 768px) { - width: 100%; // Make the carousel full width on small screens - } - } - - .center-image-wrapper { - position: relative; - width: 552px; - height: 314px; - - @media (max-width: 1118px) { - width: 55%; - height: auto; - } - - @media (max-width: 768px) { - margin: 0 auto; // Remove margin on small screens - width: 86%; - } - } - - .image-container { - display: flex; - justify-content: space-around; - align-items: center; - overflow: hidden; - /* Hide overflow to keep the sliding effect clean */ - } - - .image-container img { - max-width: 100%; - transition: transform 0.7s ease-in-out, opacity 0.7s ease-in-out; - } - - #center-image { - width: 100%; - - } - - #left-image, - #right-image { - width: 252px; - height: 144px; - opacity: 0.7; - - @media (max-width: 1118px) { - width: 15%; - height: auto; - } - - // Styles for smaller screens - @media (max-width: 768px) { - display: none; - margin: 0; // Adjust center image margin on small screens - } - } - - /* Additional styles for animating the left and right images off-screen */ - #left-image.exit, - #right-image.exit { - transform: translateX(-100%); - opacity: 0; - } - - #left-image.enter, - #right-image.enter { - transform: translateX(100%); - opacity: 0; - } - - #center-image.exit { - transform: scale(0.8); - /* Shrink the center image a bit when exiting */ - opacity: 0; - } - - #center-image.enter { - transform: scale(1); - /* Return to normal size when entering */ - opacity: 1; - } - - .nav-btn { - position: absolute; - top: 50%; - transform: translateY(-50%); - font-size: 24px; - background: none; - border: none; - cursor: pointer; - } - - #prev-btn { - left: 0; - } - - #next-btn { - right: 0; - } - - .event-info { - position: absolute; - bottom: 10px; - left: 32px; + .header { display: flex; flex-direction: column; - gap: 4px; + align-items: start; - @media (max-width: 768px) { - left: 7px; - } - span { - color: #FFF; - font-family: Work Sans; - font-size: 12px; - font-style: normal; - font-weight: 600; - line-height: 16px; + h6 { + margin-bottom: 0.5rem; + font-family: Work Sans; + font-size: 20px; + font-style: normal; + font-weight: 700; + line-height: 28px; } - .name { - padding-bottom: 5px; - color: var(--black-black-10, #F5F5F7); - font-family: Work Sans; - font-size: 16px; - font-style: normal; - font-weight: 700; - line-height: 24px; - /* 150% */ + h4 { + font-family: Work Sans; + font-size: 28px; + font-style: normal; + font-weight: 700; + line-height: 34px; } - } + } - .arrow-wrapper { - display: flex; - justify-content: center; - padding-top: 24px; - } - - :root { - --black-black-0: #FFF; - --black-black-10: #F5F5F7; - --black-black-30: #C1C1C2; - } - - .community-spotlight-wrapper { - display: flex; - padding: 20px; - max-width: 1280px; - min-height: 582px; - margin: 100px auto; - gap: 48px; - padding-right: 54px; - padding-left: 73px; - } - - .community-spotlight { - flex: 1; - display: flex; - flex-direction: column; - padding-right: 10px; - - /* for spacing */ - } - - .projects-wrapper { - flex: 1; - position: relative; - display: flex; - justify-content: center; - gap: 48px; - - @media (max-width: 768px) { - gap: 48px; - } - } - - .project-card { - background-color: transparent; - border-radius: 4px; - height: fit-content; - width: 252px; - max-height: 456px; - - @media (max-width: 768px) { - width: 99%; - } - } - - // Styles for smaller screens - - // .project-card.top-left { - // top: 0; - // left: 0; - // } - - .project-card.bottom-right { - align-self: end; - } - - .card-image { - border-radius: 4px; - height: 144px; - width: 252px; - /* adjust as per your design */ - background-color: rgb(44, 43, 43); - /* placeholder */ - display: flex; - align-items: center; - } - - .spotlight-title, - .project-title { - color: var(--black-black-10, #F5F5F7); - font-family: Work Sans; - font-size: 16px; - font-style: normal; - font-weight: 700; - line-height: 16px; - /* 100% */ - } - - .spotlight-subtitle { - color: var(--black-black-10, #F5F5F7); - font-family: Work Sans; - font-size: 16px; - font-style: normal; - font-weight: 700; - line-height: 16px; - /* 100% */ - } - - - .project-description { - color: var(--black-black-30, #C1C1C2); - font-family: Work Sans; - font-size: 16px; - font-style: normal; - font-weight: 400; - line-height: 24px; - /* 150% */ - } - - .card-details { - background-color: transparent; - display: flex; - flex-direction: column; + .description { text-align: start; - padding: 15px; - height: fit-content; - } - - .view-project { - color: var(--blue-purple-blue-purple-50, #7919FF); + margin-top: 2rem; font-family: Work Sans; - font-size: 16px; + font-size: 24px; font-style: normal; - font-weight: 400; - line-height: 16px; - cursor: pointer; - text-decoration: none; - } + font-weight: 500; + line-height: 28px; + /* 140% */ + } - @media (max-width: 1076px) { - .project-card.bottom-right { - align-self: auto; + .view-all-events-btn { + float: left; + } + + .upcoming-event { + text-align: start; + margin-top: 2rem; + padding: 1rem 0; + + .days-count { + margin-bottom: 1rem; } - - .community-spotlight-wrapper { - flex-direction: column; - align-items: center; - margin-left: 0px; - padding-right: 26px; - padding-left: 26px; - } - - .community-spotlight, - .projects-wrapper { - width: 100%; - margin: 0; - padding: 0; - } - - .projects-wrapper { - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; - position: static; - } - - .card-image { - width: 100%; - } - - .card-details { - gap: 16px; - margin-top: 10px; - } - - .project-card { - position: static; - margin: 20px 0; - height: fit-content; - /* Space between the cards */ - } - } - - .w-222 { - width: 222px; - } - .bottom-cards-section .com-card .card-content { - display: flex; - flex-direction: column; - justify-content: space-between; - /* Add this line */ - gap: 16px; - position: relative; - z-index: 1; - height: 100%; - /* Add this line to make card-content full height */ - } - - .bottom-cards-section .com-card { - border-radius: 8px; - padding: 36px; - background: #232325; - min-width: 352px; - height: 442px; - /* You have a fixed height for the cards */ - max-width: 352px; - position: relative; - display: flex; - /* This makes sure your card content is a flex container */ - flex-direction: column; - /* Align children vertically */ - justify-content: space-between; - /* This will push the links to the bottom */ - } - - .bottom-cards-section.bug-bounty { - justify-content: space-around; - .com-card{ - min-width: 559px; - max-width: 559px; - height: 442px; - } - } - .pr-bt16{ - position: relative; - bottom: 16px; - } - .pr-bt28{ - position: relative; - bottom: 28px; - } - .bottom-cards-section { - display: flex; - flex-direction: row; - justify-content: space-around; - gap: 48px; - max-width: 1280px; - margin: 70px auto; - - .com-card { - padding: 36px; - background: #232325; - min-width: 352px; - height: 442px; - max-width: 352px; - position: relative; - - .top-left-img { - position: absolute; - top: 0; - height: 292px; - left: 0; - content: url(../img/community/card-bg-1.svg); - } - .top-right-img.bug-bounty-card-bg { - content: url(../img/community/bug-bounty-card-bg.png); - height: 123px; - } - .bottom-right-img.bug-bounty-card-bg-2 { - content: url(../img/community/bug-bounty-card-bg-2.png); - height: 123px; - } - - .bottom-right-img { - position: absolute; - bottom: 0; - right: 0; - height: 333px; - content: url(../img/community/card-bg-2.svg); - } - - .top-right-img { - height: 390px; - position: absolute; - top: 0; - right: 0; - content: url(../img/community/card-bg-3.svg); - } - - .card-content { - display: flex; - flex-direction: column; - gap: 16px; - position: relative; - z-index: 1; - - .card-title { - margin-bottom: 0px !important; - color: var(--black-black-0-white, #FFF); - white-space: nowrap; - /* Desktop/H6 */ - font-family: Work Sans; - font-size: 20px; - font-style: normal; - font-weight: 700; - line-height: 26px; - /* 130% */ - } - - .card-subtitle { - color: var(--black-black-0, #FFF); - font-family: Work Sans; - font-size: 24px; - font-style: normal; - font-weight: 700; - line-height: 32px; - /* 133.333% */ - margin-top: 2px; - } - - .card-description { - color: var(--black-black-20, #E0E0E1); - font-family: Work Sans; - font-size: 16px; - font-style: normal; - font-weight: 400; - line-height: 24px; - /* 150% */ - margin-top: 15px; - margin-bottom: 15px; - a{ - color: $blue-purple-400; - } - } - - .card-links { - display: flex; - flex-direction: column; - gap: 8px; - } - - .com-card-link { - text-decoration: none; - cursor: pointer; - color: #9A52FF; - font-family: Work Sans; - font-size: 16px; - font-style: normal; - font-weight: 600; - line-height: 24px; - white-space: nowrap; - @include media-breakpoint-down(sm) { - display: block; - width: 100%; - } - - &::after { - display: inline-block; - content: url(../img/icons/arrow-right-purple.svg); - position: relative; - top: 1px; - vertical-align: middle; - padding-left: 8px; - -webkit-transition: transform 0.3s ease-out; - -moz-transition: transform 0.3s ease-out; - -ms-transition: transform 0.3s ease-out; - -o-transition: transform 0.3s ease-out; - transition: transform 0.3s ease-out; - } - - &:hover { - border: none; - - &::after { - -webkit-transform: translateX(4px); - -moz-transform: translateX(4px); - -ms-transform: translateX(4px); - -o-transform: translateX(4px); - transform: translateX(4px); - } - } - } - } - } - } - - /* Media query for mobile view */ - @media (max-width: 768px) { - .pr-bt28{ - position: relative; - bottom: 0px; - } - .pr-bt16{ - position: relative; - bottom: 0px; - } - .bottom-cards-section { - flex-direction: column; - align-items: center; - padding: 20px; - } - .bottom-cards-section.bug-bounty { - justify-content: space-around; - .com-card{ - min-width: 352px; - height: fit-content; - max-width: 352px; - } - } - - .bottom-cards-section .com-card { - margin-bottom: 20px; - /* Ensure that the card takes up space */ - display: block; - width: 100%; - } - } - - .num-separator { - width: 32px; - height: 1px; - background: var(--black-black-70, #343437); - margin-bottom: 32px; - margin-top: 1px; - } - - .stat-separator { - width: 32px; - height: 1px; - background: var(--black-black-70, #343437); - margin-bottom: 32px; - margin-top: 8px; - } - - .ml-8 { - margin-left: 8px; - } - - .ml-19 { - margin-left: 19px; - } - - .ml-14 { - margin-left: 11px; + } } .header-div { - .header { - gap: 10px; - display: flex; - flex-direction: column; - padding-bottom: 35px - } + padding-top: 27px; } - .spotlight-subtitle { + .header { + h6 { + padding-left: 1.5px; + font-family: 'Work Sans', sans-serif; + font-size: 20px; + font-weight: 700; + color: var(--black-black-0, #fff); + text-align: start; + } + + h4 { + text-align: start; + font-family: 'Work Sans', sans-serif; font-size: 32px; font-weight: 700; - line-height: 38px; - margin-top: 10px; - margin-bottom: 40px; + color: var(--black-black-0, #fff); + } } - .spotlight-description { - color: var(--black-black-20); - font-size: 24px; - font-weight: 500; - line-height: 32px; - margin-bottom: 40px; + .description { + font-family: 'Work Sans', sans-serif; + font-size: 20px; + font-weight: 500; + max-width: 444px; + color: var(--black-black-10-gray-200, #e0e0e1); + line-height: 32px; + /* 133.333% */ } -} \ No newline at end of file + .view-all-events-btn { + display: inline-block; + margin-top: 1rem; + } + + .upcoming-event { + margin-top: 2rem; + + .upcoming-label { + position: relative; + top: 7px; + font-family: 'Work Sans', sans-serif; + font-size: 12px; + font-weight: 600; + text-transform: uppercase; + color: var(--black-black-30, #c1c1c2); + } + + .days-count { + font-weight: 300; + margin-bottom: 21px; + line-height: 99px; + font-size: 88px; + background: linear-gradient(35deg, #b480ff -0.3%, #ffaa80 99.7%); + -webkit-background-clip: text; + background-clip: text; + color: transparent; + display: inline-block; + } + + .days-word { + vertical-align: bottom; + font-weight: normal; + margin-bottom: 21px; + line-height: 99px; + font-size: 40px; + background: linear-gradient(35deg, #b480ff -0.3%, #ffaa80 99.7%); + -webkit-background-clip: text; + background-clip: text; + color: transparent; + display: inline-block; + } + + h5 { + font-family: 'Work Sans', sans-serif; + font-size: 16px; + font-weight: 700; + color: var(--black-black-10, #f5f5f7); + } + + .event-details, + .event-location { + font-family: 'Work Sans', sans-serif; + font-size: 12px; + font-weight: 600; + color: var(--black-black-30, #c1c1c2); + } + } + } + + .community-funding { + display: flex; + flex-wrap: wrap; + justify-content: space-between; + max-width: 1280px; + margin: 100px auto; + padding-right: 54px; + padding-left: 73px; + margin-top: 120px; + } + + .funding-section { + flex: 1; + padding: 20px; + color: var(--black-black-0); + } + + .small-text { + color: var(--black-black-30, #c1c1c2); + font-family: Work Sans; + font-size: 12px; + font-style: normal; + font-weight: 600; + line-height: 16px; + /* 133.333% */ + text-transform: uppercase; + padding-left: 11px; + text-align: start; + } + + .funding-section h2 { + font-size: 32px; + font-weight: 700; + line-height: 38px; + margin-top: 10px; + margin-bottom: 40px; + } + + .funding-section p { + color: var(--black-black-20); + font-size: 24px; + font-weight: 500; + line-height: 32px; + margin-bottom: 40px; + } + + .stats { + flex: 1; + display: flex; + justify-content: space-between; + + @media (max-width: 768px) { + flex-direction: column; + align-items: start; + text-align: start; + padding-left: 7px; + } + } + + .stacked-stats { + display: flex; + flex-direction: column; + justify-content: space-between; + } + + .stat { + align-self: center; + text-align: center; + margin: 0 auto; + display: flex; + flex-direction: column; + + @media (max-width: 768px) { + margin: 0px; + text-align: start; + align-self: start; + } + } + + .number { + opacity: 1; + font-size: 88px; + display: flex; + padding: 10px; + align-items: center; + line-height: 96px; + font-weight: 300; + } + + @media screen and (max-width: 768px) { + .community-funding { + flex-direction: column-reverse; + padding-left: 16px; + padding-right: 16px; + } + + .funding-section, + .stats { + width: 100%; + } + } + + .carousel { + position: relative; + width: 1280px; + margin: 0 auto; + margin-top: 106px; + max-width: 100%; // Make the carousel responsive + + .flex-align { + display: flex; + align-items: center; + } + + @media (max-width: 768px) { + width: 100%; // Make the carousel full width on small screens + } + } + + .center-image-wrapper { + position: relative; + width: 552px; + height: 314px; + + @media (max-width: 1118px) { + width: 55%; + height: auto; + } + + @media (max-width: 768px) { + margin: 0 auto; // Remove margin on small screens + width: 86%; + } + } + + .image-container { + display: flex; + justify-content: space-around; + align-items: center; + overflow: hidden; + /* Hide overflow to keep the sliding effect clean */ + } + + .image-container img { + max-width: 100%; + transition: + transform 0.7s ease-in-out, + opacity 0.7s ease-in-out; + } + + #center-image { + width: 100%; + } + + #left-image, + #right-image { + width: 252px; + height: 144px; + opacity: 0.7; + + @media (max-width: 1118px) { + width: 15%; + height: auto; + } + + // Styles for smaller screens + @media (max-width: 768px) { + display: none; + margin: 0; // Adjust center image margin on small screens + } + } + + /* Additional styles for animating the left and right images off-screen */ + #left-image.exit, + #right-image.exit { + transform: translateX(-100%); + opacity: 0; + } + + #left-image.enter, + #right-image.enter { + transform: translateX(100%); + opacity: 0; + } + + #center-image.exit { + transform: scale(0.8); + /* Shrink the center image a bit when exiting */ + opacity: 0; + } + + #center-image.enter { + transform: scale(1); + /* Return to normal size when entering */ + opacity: 1; + } + + .nav-btn { + position: absolute; + top: 50%; + transform: translateY(-50%); + font-size: 24px; + background: none; + border: none; + cursor: pointer; + } + + #prev-btn { + left: 0; + } + + #next-btn { + right: 0; + } + + .event-info { + position: absolute; + bottom: 10px; + left: 32px; + display: flex; + flex-direction: column; + gap: 4px; + + @media (max-width: 768px) { + left: 7px; + } + span { + color: #fff; + font-family: Work Sans; + font-size: 12px; + font-style: normal; + font-weight: 600; + line-height: 16px; + } + + .name { + padding-bottom: 5px; + color: var(--black-black-10, #f5f5f7); + font-family: Work Sans; + font-size: 16px; + font-style: normal; + font-weight: 700; + line-height: 24px; + /* 150% */ + } + } + + .arrow-wrapper { + display: flex; + justify-content: center; + padding-top: 24px; + } + + :root { + --black-black-0: #fff; + --black-black-10: #f5f5f7; + --black-black-30: #c1c1c2; + } + + .community-spotlight-wrapper { + display: flex; + padding: 20px; + max-width: 1280px; + min-height: 582px; + margin: 100px auto; + gap: 48px; + padding-right: 54px; + padding-left: 73px; + } + + .community-spotlight { + flex: 1; + display: flex; + flex-direction: column; + padding-right: 10px; + + /* for spacing */ + } + + .projects-wrapper { + flex: 1; + position: relative; + display: flex; + justify-content: center; + gap: 48px; + + @media (max-width: 768px) { + gap: 48px; + } + } + + .project-card { + background-color: transparent; + border-radius: 4px; + height: fit-content; + width: 252px; + max-height: 456px; + + @media (max-width: 768px) { + width: 99%; + } + } + + // Styles for smaller screens + + // .project-card.top-left { + // top: 0; + // left: 0; + // } + + .project-card.bottom-right { + align-self: end; + } + + .card-image { + border-radius: 4px; + height: 144px; + width: 252px; + /* adjust as per your design */ + background-color: rgb(44, 43, 43); + /* placeholder */ + display: flex; + align-items: center; + } + + .spotlight-title, + .project-title { + color: var(--black-black-10, #f5f5f7); + font-family: Work Sans; + font-size: 16px; + font-style: normal; + font-weight: 700; + line-height: 16px; + /* 100% */ + } + + .spotlight-subtitle { + color: var(--black-black-10, #f5f5f7); + font-family: Work Sans; + font-size: 16px; + font-style: normal; + font-weight: 700; + line-height: 16px; + /* 100% */ + } + + .project-description { + color: var(--black-black-30, #c1c1c2); + font-family: Work Sans; + font-size: 16px; + font-style: normal; + font-weight: 400; + line-height: 24px; + /* 150% */ + } + + .card-details { + background-color: transparent; + display: flex; + flex-direction: column; + text-align: start; + padding: 15px; + height: fit-content; + } + + .view-project { + color: var(--blue-purple-blue-purple-50, #7919ff); + font-family: Work Sans; + font-size: 16px; + font-style: normal; + font-weight: 400; + line-height: 16px; + cursor: pointer; + text-decoration: none; + } + + @media (max-width: 1076px) { + .project-card.bottom-right { + align-self: auto; + } + + .community-spotlight-wrapper { + flex-direction: column; + align-items: center; + margin-left: 0px; + padding-right: 26px; + padding-left: 26px; + } + + .community-spotlight, + .projects-wrapper { + width: 100%; + margin: 0; + padding: 0; + } + + .projects-wrapper { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + position: static; + } + + .card-image { + width: 100%; + } + + .card-details { + gap: 16px; + margin-top: 10px; + } + + .project-card { + position: static; + margin: 20px 0; + height: fit-content; + /* Space between the cards */ + } + } + + .w-222 { + width: 222px; + } + .bottom-cards-section .com-card .card-content { + display: flex; + flex-direction: column; + justify-content: space-between; + /* Add this line */ + gap: 16px; + position: relative; + z-index: 1; + height: 100%; + /* Add this line to make card-content full height */ + } + + .bottom-cards-section .com-card { + border-radius: 8px; + padding: 36px; + background: #232325; + min-width: 352px; + height: 442px; + /* You have a fixed height for the cards */ + max-width: 352px; + position: relative; + display: flex; + /* This makes sure your card content is a flex container */ + flex-direction: column; + /* Align children vertically */ + justify-content: space-between; + /* This will push the links to the bottom */ + } + + .bottom-cards-section.bug-bounty { + justify-content: space-around; + .com-card { + min-width: 559px; + max-width: 559px; + height: 442px; + } + } + .pr-bt16 { + position: relative; + bottom: 16px; + } + .pr-bt28 { + position: relative; + bottom: 28px; + } + .bottom-cards-section { + display: flex; + flex-direction: row; + justify-content: space-around; + gap: 48px; + max-width: 1280px; + margin: 70px auto; + + .com-card { + padding: 36px; + background: #232325; + min-width: 352px; + height: 442px; + max-width: 352px; + position: relative; + + .top-left-img { + position: absolute; + top: 0; + height: 292px; + left: 0; + content: url(../img/community/card-bg-1.svg); + } + .top-right-img.bug-bounty-card-bg { + content: url(../img/community/bug-bounty-card-bg.png); + height: 123px; + } + .bottom-right-img.bug-bounty-card-bg-2 { + content: url(../img/community/bug-bounty-card-bg-2.png); + height: 123px; + } + + .bottom-right-img { + position: absolute; + bottom: 0; + right: 0; + height: 333px; + content: url(../img/community/card-bg-2.svg); + } + + .top-right-img { + height: 390px; + position: absolute; + top: 0; + right: 0; + content: url(../img/community/card-bg-3.svg); + } + + .card-content { + display: flex; + flex-direction: column; + gap: 16px; + position: relative; + z-index: 1; + + .card-title { + margin-bottom: 0px !important; + color: var(--black-black-0-white, #fff); + white-space: nowrap; + /* Desktop/H6 */ + font-family: Work Sans; + font-size: 20px; + font-style: normal; + font-weight: 700; + line-height: 26px; + /* 130% */ + } + + .card-subtitle { + color: var(--black-black-0, #fff); + font-family: Work Sans; + font-size: 24px; + font-style: normal; + font-weight: 700; + line-height: 32px; + /* 133.333% */ + margin-top: 2px; + } + + .card-description { + color: var(--black-black-20, #e0e0e1); + font-family: Work Sans; + font-size: 16px; + font-style: normal; + font-weight: 400; + line-height: 24px; + /* 150% */ + margin-top: 15px; + margin-bottom: 15px; + a { + color: $blue-purple-400; + } + } + + .card-links { + display: flex; + flex-direction: column; + gap: 8px; + } + + .com-card-link { + text-decoration: none; + cursor: pointer; + color: #9a52ff; + font-family: Work Sans; + font-size: 16px; + font-style: normal; + font-weight: 600; + line-height: 24px; + white-space: nowrap; + @include media-breakpoint-down(sm) { + display: block; + width: 100%; + } + + &::after { + display: inline-block; + content: url(../img/icons/arrow-right-purple.svg); + position: relative; + top: 1px; + vertical-align: middle; + padding-left: 8px; + -webkit-transition: transform 0.3s ease-out; + -moz-transition: transform 0.3s ease-out; + -ms-transition: transform 0.3s ease-out; + -o-transition: transform 0.3s ease-out; + transition: transform 0.3s ease-out; + } + + &:hover { + border: none; + + &::after { + -webkit-transform: translateX(4px); + -moz-transform: translateX(4px); + -ms-transform: translateX(4px); + -o-transform: translateX(4px); + transform: translateX(4px); + } + } + } + } + } + } + + /* Media query for mobile view */ + @media (max-width: 768px) { + .pr-bt28 { + position: relative; + bottom: 0px; + } + .pr-bt16 { + position: relative; + bottom: 0px; + } + .bottom-cards-section { + flex-direction: column; + align-items: center; + padding: 20px; + } + .bottom-cards-section.bug-bounty { + justify-content: space-around; + .com-card { + min-width: 352px; + height: fit-content; + max-width: 352px; + } + } + + .bottom-cards-section .com-card { + margin-bottom: 20px; + /* Ensure that the card takes up space */ + display: block; + width: 100%; + } + } + + .num-separator { + width: 32px; + height: 1px; + background: var(--black-black-70, #343437); + margin-bottom: 32px; + margin-top: 1px; + } + + .stat-separator { + width: 32px; + height: 1px; + background: var(--black-black-70, #343437); + margin-bottom: 32px; + margin-top: 8px; + } + + .ml-8 { + margin-left: 8px; + } + + .ml-19 { + margin-left: 19px; + } + + .ml-14 { + margin-left: 11px; + } + + .header-div { + .header { + gap: 10px; + display: flex; + flex-direction: column; + padding-bottom: 35px; + } + } + + .spotlight-subtitle { + font-size: 32px; + font-weight: 700; + line-height: 38px; + margin-top: 10px; + margin-bottom: 40px; + } + + .spotlight-description { + color: var(--black-black-20); + font-size: 24px; + font-weight: 500; + line-height: 32px; + margin-bottom: 40px; + } +} diff --git a/styles/_dev-tools.scss b/styles/_dev-tools.scss index 6f2bf7c403..9ddba55817 100644 --- a/styles/_dev-tools.scss +++ b/styles/_dev-tools.scss @@ -19,7 +19,8 @@ } .throbber { - width: 24px;height:24px; + width: 24px; + height: 24px; } #connection-status .card-body { @@ -46,7 +47,7 @@ } .progress small { - margin-top: .5rem; // Fix "Getting ready to send..." position + margin-top: 0.5rem; // Fix "Getting ready to send..." position } .page-tx-sender .input-group .form-control, @@ -76,7 +77,9 @@ } .rpc-tool .main { - h1::before, h2::before, h3::before { + h1::before, + h2::before, + h3::before { // These aren't anchors, and the placement of the anchor fix thing // causes things above them to be unclickable display: none; diff --git a/styles/_diagrams.scss b/styles/_diagrams.scss index 459f9159c8..bf6d264269 100644 --- a/styles/_diagrams.scss +++ b/styles/_diagrams.scss @@ -24,314 +24,334 @@ article { } } - html:not(.light) article { - // Recolor UMLet diagrams for dark theme ------------------------------------- - svg[fill="black"] { + svg[fill='black'] { fill: $white; stroke: $white; - *[fill="white"] { + *[fill='white'] { fill: $black; } - *[stroke="white"] { + *[stroke='white'] { stroke: $black; } - *[fill="black"] { + *[fill='black'] { fill: $white; } - *[stroke="black"] { + *[stroke='black'] { stroke: $white; } - g[fill="blue"] { + g[fill='blue'] { fill: $blue-500; } - g[stroke="blue"] { + g[stroke='blue'] { stroke: $blue-500; } - g[fill="rgb(120,120,120)"] { + g[fill='rgb(120,120,120)'] { fill: $gray-200; } - g[stroke="rgb(120,120,120)"] { + g[stroke='rgb(120,120,120)'] { stroke: $gray-200; } - g[fill="rgb(200,200,200)"] { + g[fill='rgb(200,200,200)'] { fill: $gray-700; } - g[fill="rgb(70,70,70)"] { + g[fill='rgb(70,70,70)'] { fill: $gray-500; } - g[stroke="rgb(70,70,70)"] { + g[stroke='rgb(70,70,70)'] { stroke: $gray-500; } - g[fill="rgb(29,180,255)"] { // old Ripple blue. Change to green. + g[fill='rgb(29,180,255)'] { + // old Ripple blue. Change to green. fill: $primary; } - g[stroke="rgb(29,180,255)"] { + g[stroke='rgb(29,180,255)'] { stroke: $primary; } - rect[stroke="rgb(245,247,249)"] { // old off-white. change to black. + rect[stroke='rgb(245,247,249)'] { + // old off-white. change to black. stroke: $black; } - g[fill="lime"], - g[fill="rgb(0,255,0)"] { // standard green. change to primary green. + g[fill='lime'], + g[fill='rgb(0,255,0)'] { + // standard green. change to primary green. fill: $primary; } - g[stroke="lime"] , - g[stroke="rgb(0,255,0)"]{ + g[stroke='lime'], + g[stroke='rgb(0,255,0)'] { stroke: $primary; } - g[fill="yellow"], - g[fill="rgb(255,255,0)"] { + g[fill='yellow'], + g[fill='rgb(255,255,0)'] { fill: $yellow-500; // nested stroke should remain black so it's visible over yellow - path[stroke="black"] { + path[stroke='black'] { stroke: $black; } } - g[fill="red"], - g[fill="rgb(255,255,0)"] { // magenta-500 is our closest shade to pure red + g[fill='red'], + g[fill='rgb(255,255,0)'] { + // magenta-500 is our closest shade to pure red fill: $magenta-500; } - g[stroke="red"], - g[stroke="rgb(255,255,0)"] { + g[stroke='red'], + g[stroke='rgb(255,255,0)'] { stroke: $magenta-500; } - g[fill="yellow"] + g text, - g[fill="rgb(255,255,0)"] + g text { // On yellow notes, use black text + g[fill='yellow'] + g text, + g[fill='rgb(255,255,0)'] + g text { + // On yellow notes, use black text fill: $black; } - g[fill="lime"] + g text { // same for green + g[fill='lime'] + g text { + // same for green fill: $black; } } // Recolor Google Draw diagrams for dark theme, including ones using // old Ripple color schemes. ------------------------------------------------- - svg[fill="none"] { - path[fill="#000000"] { // white on black instead of black on white + svg[fill='none'] { + path[fill='#000000'] { + // white on black instead of black on white fill: $white; } - path[stroke="#000000"] { + path[stroke='#000000'] { stroke: $white; } - path[fill="#ffffff"] { + path[fill='#ffffff'] { fill: $black; } - path[stroke="#ffffff"] { + path[stroke='#ffffff'] { stroke: $black; } - path[fill="#23292f"], - path[fill="#23282f"] { // old XRP off-blacks: invert to white + path[fill='#23292f'], + path[fill='#23282f'] { + // old XRP off-blacks: invert to white fill: $white; } - path[stroke="#23292f"], - path[stroke="#23282f"] { + path[stroke='#23292f'], + path[stroke='#23282f'] { stroke: $white; } - path[fill="#2c3e50"], - path[fill="#2b3e51"] { // old dark blue-grays: change to light gray + path[fill='#2c3e50'], + path[fill='#2b3e51'] { + // old dark blue-grays: change to light gray fill: $secondary; } - path[stroke="#2c3e50"], - path[stroke="#2b3e51"] { + path[stroke='#2c3e50'], + path[stroke='#2b3e51'] { stroke: $secondary; } - path[fill="#1c2835"] { // old 90% gray; change to 10% + path[fill='#1c2835'] { + // old 90% gray; change to 10% fill: $gray-100; } - path[stroke="#1c2835"] { + path[stroke='#1c2835'] { stroke: $gray-100; } - path[fill="#21aa47"] { // old green + path[fill='#21aa47'] { + // old green fill: $green; } - path[stroke="#21aa47"] { + path[stroke='#21aa47'] { stroke: $green; } - path[fill="#e64b3b"] { // old red + path[fill='#e64b3b'] { + // old red fill: $red; } - path[stroke="#e64b3b"] { + path[stroke='#e64b3b'] { stroke: $red; } - path[stroke="#27a2db"], - path[stroke="#00aae4"] { // old primary blues: change to primary green + path[stroke='#27a2db'], + path[stroke='#00aae4'] { + // old primary blues: change to primary green stroke: $primary; } - path[fill="#27a2db"], - path[fill="#00aae4"] { + path[fill='#27a2db'], + path[fill='#00aae4'] { fill: $primary; } - path[fill="#e6e7e8"] { // old light gray: change to dark + path[fill='#e6e7e8'] { + // old light gray: change to dark fill: $gray-800; } - path[stroke="#e6e7e8"] { + path[stroke='#e6e7e8'] { stroke: $gray-800; } - path[stroke="#ffbf27"] { // old yellow-orange: change to red-purple + path[stroke='#ffbf27'] { + // old yellow-orange: change to red-purple stroke: $red-purple-500; // (to complement green instead of blue) } - path[fill="#00ff00"] { // standard "green" + path[fill='#00ff00'] { + // standard "green" fill: $green; } - path[stroke="#00ff00"] { + path[stroke='#00ff00'] { stroke: $green; } - path[fill="#ff00ff"] { // standard "magenta" + path[fill='#ff00ff'] { + // standard "magenta" fill: $magenta; } - path[stroke="#ff00ff"] { + path[stroke='#ff00ff'] { stroke: $magenta; } linearGradient { // White Box Top gradient: darken to dark gray - stop[stop-color="#ffffff"] { + stop[stop-color='#ffffff'] { stop-color: $gray-700; } - stop[stop-color="#e6e7e8"] { // old gray-100 + stop[stop-color='#e6e7e8'] { + // old gray-100 stop-color: $gray-800; } // White Box Side gradient: darken to near black - stop[stop-color="#dbdcdd"] { // old gray-200 + stop[stop-color='#dbdcdd'] { + // old gray-200 stop-color: $black; } - stop[stop-color="#b1b3b5"] { // old gray-300 + stop[stop-color='#b1b3b5'] { + // old gray-300 stop-color: $gray-900; } // Primary Blue Side gradient: change to green - stop[stop-color="#29a1da"] { + stop[stop-color='#29a1da'] { stop-color: $green-600; } - stop[stop-color="#2789b9"] { + stop[stop-color='#2789b9'] { stop-color: $green-400; } // Primary Blue Top gradient: change to green - stop[stop-color="#6bc1ec"] { + stop[stop-color='#6bc1ec'] { stop-color: $green-200; } - stop[stop-color="#8ad6f4"] { + stop[stop-color='#8ad6f4'] { stop-color: $green-300; } // Secondary Y-O Top gradient: change to red-purple - stop[stop-color="#fab913"] { + stop[stop-color='#fab913'] { stop-color: $red-purple-200; } - stop[stop-color="#fad26b"] { + stop[stop-color='#fad26b'] { stop-color: $red-purple-300; } // Secondary Y-O Side gradient: change to red-purple - stop[stop-color="#f8a136"] { + stop[stop-color='#f8a136'] { stop-color: $red-purple-400; } - stop[stop-color="#f7931a"] { + stop[stop-color='#f7931a'] { stop-color: $red-purple-600; } } } - } // Less significant tweaks to color schemes for diagrams in light mode // Recolor UMLet diagrams for dark theme ------------------------------------- html.light { - svg[fill="black"] { - - g[fill="blue"] { + svg[fill='black'] { + g[fill='blue'] { fill: $blue-700; } - g[stroke="blue"] { + g[stroke='blue'] { stroke: $blue-500; } - g[fill="rgb(120,120,120)"] { + g[fill='rgb(120,120,120)'] { fill: $gray-700; } - g[stroke="rgb(120,120,120)"] { + g[stroke='rgb(120,120,120)'] { stroke: $gray-700; } - g[fill="rgb(200,200,200)"] { + g[fill='rgb(200,200,200)'] { fill: $gray-400; } - g[fill="rgb(70,70,70)"] { + g[fill='rgb(70,70,70)'] { fill: $gray-700; } - g[stroke="rgb(70,70,70)"] { + g[stroke='rgb(70,70,70)'] { stroke: $gray-700; } - g[fill="rgb(29,180,255)"] { // old Ripple blue. + g[fill='rgb(29,180,255)'] { + // old Ripple blue. fill: $blue-500; } - g[stroke="rgb(29,180,255)"] { + g[stroke='rgb(29,180,255)'] { stroke: $blue-700; } - rect[stroke="rgb(245,247,249)"] { // old off-white. + rect[stroke='rgb(245,247,249)'] { + // old off-white. stroke: $gray-050; } - g[fill="lime"], - g[fill="rgb(0,255,0)"] { // standard green. + g[fill='lime'], + g[fill='rgb(0,255,0)'] { + // standard green. fill: $green-400; // lighten backgrounds a little } - g[stroke="lime"] , - g[stroke="rgb(0,255,0)"]{ + g[stroke='lime'], + g[stroke='rgb(0,255,0)'] { stroke: $green-700; // darken strokes } - g[fill="yellow"], - g[fill="rgb(255,255,0)"] { + g[fill='yellow'], + g[fill='rgb(255,255,0)'] { fill: $yellow-300; // lighten up yellow BGs a little } - g[fill="red"], - g[fill="rgb(255,255,0)"] { // magenta-500 is our closest shade to pure red + g[fill='red'], + g[fill='rgb(255,255,0)'] { + // magenta-500 is our closest shade to pure red fill: $magenta-400; // ... but let's lighten it a little as a bg } - g[stroke="red"], - g[stroke="rgb(255,255,0)"] { + g[stroke='red'], + g[stroke='rgb(255,255,0)'] { stroke: $magenta-500; } } // Recolor Figma diagrams for light mode ------------------------------------ - svg[fill="none"] { - rect[fill="#111112"] { + svg[fill='none'] { + rect[fill='#111112'] { fill: $light-bg; } - path[fill="white"] { + path[fill='white'] { fill: $black; } - path[fill="#343437"] { + path[fill='#343437'] { fill: $gray-300; } - path[fill="#A2A2A4"], - rect[fill="#A2A2A4"], - ellipse[fill="#A2A2A4"] { + path[fill='#A2A2A4'], + rect[fill='#A2A2A4'], + ellipse[fill='#A2A2A4'] { fill: $gray-600; } - path[fill="#232325"] { + path[fill='#232325'] { fill: $gray-200; } - path[fill="#F5F5F7"] { + path[fill='#F5F5F7'] { fill: $gray-900; } - path[stroke="#F5F5F7"] { + path[stroke='#F5F5F7'] { stroke: $gray-900; } - path[stroke="#FF198B"] { + path[stroke='#FF198B'] { // slightly darken up this magenta for more contrast in light mode stroke: $magenta-700; } - linearGradient stop[stop-color="#F5F5F7"] { + linearGradient stop[stop-color='#F5F5F7'] { stop-color: $gray-900; } - linearGradient stop[stop-color="#C1C1C2"] { + linearGradient stop[stop-color='#C1C1C2'] { stop-color: $gray-700; } } diff --git a/styles/_docs-landing.scss b/styles/_docs-landing.scss index c7ec712f8d..1e9d725a1b 100644 --- a/styles/_docs-landing.scss +++ b/styles/_docs-landing.scss @@ -4,85 +4,85 @@ .light { .sdk-img { - content:url(../img/graphics/sdk-white.png); + content: url(../img/graphics/sdk-white.png); } .ref-book-illustration { - content:url(../img/graphics/ref-book-light.png) + content: url(../img/graphics/ref-book-light.png); } .tutorial-illustration { - content:url(../img/graphics/tutorials-illustration-light.png) + content: url(../img/graphics/tutorials-illustration-light.png); } .concepts-doc-illustration { - content:url(../img/graphics/concepts-docs-light.png) + content: url(../img/graphics/concepts-docs-light.png); } .use-cases { .wallet-illustration { - content:url(../img/graphics/wallet-light.svg) + content: url(../img/graphics/wallet-light.svg); } .token-illustration { - content:url(../img/graphics/tokens-light.png) + content: url(../img/graphics/tokens-light.png); } .connections-illustration { - content:url(../img/graphics/nodes-light.svg) + content: url(../img/graphics/nodes-light.svg); } } .quickstart-image { - content:url(../img/graphics/getting-started-pages-light.png) + content: url(../img/graphics/getting-started-pages-light.png); } .dev-tools-img { - content:url(../img/graphics/dev-tools-light.svg) + content: url(../img/graphics/dev-tools-light.svg); } .dev-tools-link:hover p { - color: $black + color: $black; } } .dark { .sdk-img { - content:url(../img/graphics/sdk-black.png); + content: url(../img/graphics/sdk-black.png); } .ref-book-illustration { - content:url(../img/graphics/ref-book.png) + content: url(../img/graphics/ref-book.png); } .tutorial-illustration { - content:url(../img/graphics/tutorials-illustration.png) + content: url(../img/graphics/tutorials-illustration.png); } .concepts-doc-illustration { - content:url(../img/graphics/concepts-doc.png) + content: url(../img/graphics/concepts-doc.png); } .use-cases { .wallet-illustration { - content:url(../img/graphics/wallet-dark.png) + content: url(../img/graphics/wallet-dark.png); } .token-illustration { - content:url(../img/graphics/tokens-dark.png) + content: url(../img/graphics/tokens-dark.png); } .connections-illustration { - content:url(../img/graphics/nodes-dark.png) + content: url(../img/graphics/nodes-dark.png); } } .quickstart-image { - content:url(../img/graphics/getting-started-pages-dark.svg) + content: url(../img/graphics/getting-started-pages-dark.svg); } .dev-tools-img { - content:url(../img/graphics/dev-tools-dark.png) + content: url(../img/graphics/dev-tools-dark.png); } .dev-tools-link:hover p { @@ -95,9 +95,10 @@ } // Video Cards -.get-started-img, .flat-card { - max-width:100%; - max-height:100%; +.get-started-img, +.flat-card { + max-width: 100%; + max-height: 100%; } .faded-text { @@ -109,10 +110,9 @@ } .page-docs-index { - section { padding-top: 64px; - padding-bottom:64px; + padding-bottom: 64px; } .dev-tools-link { @@ -124,7 +124,7 @@ h6:hover { text-decoration: underline; text-decoration-color: $purple; - background: none!important; + background: none !important; } &:hover p { @@ -138,7 +138,7 @@ text-decoration: none !important; } - .btn-arrow::after{ + .btn-arrow::after { content: url(../img/icons/arrow-right-purple.svg); width: 1.5rem; height: 1.5rem; @@ -146,22 +146,21 @@ } .langs { - - &> a { + & > a { display: block; } h5:hover { text-decoration: underline; text-decoration-color: $purple; - background: none!important; + background: none !important; } - a:hover{ + a:hover { text-decoration: none !important; } - .btn-arrow::after{ + .btn-arrow::after { content: url(../img/icons/arrow-right-purple.svg); vertical-align: baseline; width: 1.5rem; @@ -186,7 +185,8 @@ content: url(../img/icons/arrow-right-purple.svg); } - .documentation-index:hover, .documentation-index::after { + .documentation-index:hover, + .documentation-index::after { color: $purple; text-decoration: none !important; background: none !important; @@ -206,7 +206,6 @@ padding: 32px 12px; } } - } .page-docs-index::before { @@ -227,9 +226,9 @@ } .dev-tools-img { - max-width:100%; + max-width: 100%; max-height: 100%; - margin:auto; + margin: auto; } .page-docs { @@ -252,7 +251,7 @@ } .circled-logo { - margin-left:0.1rem; + margin-left: 0.1rem; } } diff --git a/styles/_external-links.scss b/styles/_external-links.scss index 1d5af74f84..bcab2d51e2 100644 --- a/styles/_external-links.scss +++ b/styles/_external-links.scss @@ -1,6 +1,6 @@ .external-link { &::after { - content: "\00a0"; + content: '\00a0'; background-image: url(../img/icons/arrow-up-right.svg); background-repeat: no-repeat; display: inline-block; @@ -63,17 +63,17 @@ &::after { position: absolute; right: 4px; - content: "\00a0"; + content: '\00a0'; background-image: url(../img/icons/arrow-up-right.svg); background-repeat: no-repeat; display: inline-block; background-size: 1.5rem; - padding: 0 .5rem; - background-position: left 0 bottom -.1rem; + padding: 0 0.5rem; + background-position: left 0 bottom -0.1rem; transition: background-position 100ms ease-in-out; } &:hover::after { - background-position: left .2rem bottom .1rem; + background-position: left 0.2rem bottom 0.1rem; } } } diff --git a/styles/_feedback.scss b/styles/_feedback.scss index 0c6596cf7a..fe718a80d1 100644 --- a/styles/_feedback.scss +++ b/styles/_feedback.scss @@ -47,28 +47,28 @@ .widget-form-footer { padding-right: 0 !important; } - + .submit { - background-color: $blue-purple-500 !important; - font-weight: bold !important; - color: $white !important; - border: none !important; - border-color: transparent !important; - border-radius: 4px !important; - margin: 0 !important; - margin-top: 8px !important; + background-color: $blue-purple-500 !important; + font-weight: bold !important; + color: $white !important; + border: none !important; + border-color: transparent !important; + border-radius: 4px !important; + margin: 0 !important; + margin-top: 8px !important; + &:hover { + background: $blue-purple-600 !important; + } + + &.disabled, + &[disabled='disabled'] { + background-color: $blue-purple-700 !important; + &:hover { - background: $blue-purple-600 !important; - } - - &.disabled, - &[disabled="disabled"] { background-color: $blue-purple-700 !important; - - &:hover { - background-color: $blue-purple-700 !important; - } } + } } .cancel { diff --git a/styles/_font-face.scss b/styles/_font-face.scss index 375305bd12..75d77009c0 100644 --- a/styles/_font-face.scss +++ b/styles/_font-face.scss @@ -4,26 +4,40 @@ font-style: normal; font-weight: 400; font-display: auto; - src: local('Space Mono'), local('SpaceMono-Regular'), url("../font/SpaceMono-Regular.woff2") format('woff2'), url(https://fonts.gstatic.com/s/spacemono/v4/i7dPIFZifjKcF5UAWdDRYEF8RQ.woff2) format('woff2'); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; + src: + local('Space Mono'), + local('SpaceMono-Regular'), + url('../font/SpaceMono-Regular.woff2') format('woff2'), + url(https://fonts.gstatic.com/s/spacemono/v4/i7dPIFZifjKcF5UAWdDRYEF8RQ.woff2) format('woff2'); + unicode-range: + U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, + U+FEFF, U+FFFD; } @font-face { font-family: 'Space Mono'; font-style: normal; font-weight: 700; font-display: auto; - src: local('Space Mono Bold'), local('SpaceMono-Bold'), url("../font/SpaceMono-Bold.woff2") format('woff2'), url(https://fonts.gstatic.com/s/spacemono/v4/i7dMIFZifjKcF5UAWdDRaPpZUFWaHg.woff2) format('woff2'); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; + src: + local('Space Mono Bold'), + local('SpaceMono-Bold'), + url('../font/SpaceMono-Bold.woff2') format('woff2'), + url(https://fonts.gstatic.com/s/spacemono/v4/i7dMIFZifjKcF5UAWdDRaPpZUFWaHg.woff2) format('woff2'); + unicode-range: + U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, + U+FEFF, U+FFFD; } - /* latin-ext */ @font-face { font-family: 'Work Sans'; font-style: normal; font-weight: 400; font-display: swap; - src: local('Work Sans'), url("../font/WorkSans-Regular.ttf") format('truetype'), url(https://fonts.gstatic.com/s/worksans/v8/QGY_z_wNahGAdqQ43RhVcIgYT2Xz5u32K0nXBiEJpp_c.woff2) format('woff2'); + src: + local('Work Sans'), + url('../font/WorkSans-Regular.ttf') format('truetype'), + url(https://fonts.gstatic.com/s/worksans/v8/QGY_z_wNahGAdqQ43RhVcIgYT2Xz5u32K0nXBiEJpp_c.woff2) format('woff2'); unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; } /* latin */ @@ -32,8 +46,13 @@ font-style: normal; font-weight: 400; font-display: swap; - src: local('Work Sans'), url("../font/WorkSans-Regular.ttf") format('truetype'), url(https://fonts.gstatic.com/s/worksans/v8/QGY_z_wNahGAdqQ43RhVcIgYT2Xz5u32K0nXBi8Jpg.woff2) format('woff2'); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; + src: + local('Work Sans'), + url('../font/WorkSans-Regular.ttf') format('truetype'), + url(https://fonts.gstatic.com/s/worksans/v8/QGY_z_wNahGAdqQ43RhVcIgYT2Xz5u32K0nXBi8Jpg.woff2) format('woff2'); + unicode-range: + U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, + U+FEFF, U+FFFD; } /* latin-ext */ @@ -42,7 +61,9 @@ font-style: normal; font-weight: 500; font-display: swap; - src: url("../font/WorkSans-Medium.ttf") format('truetype'), url(https://fonts.gstatic.com/s/worksans/v9/QGY_z_wNahGAdqQ43RhVcIgYT2Xz5u32K3vXBiEJpp_c.woff2) format('woff2'); + src: + url('../font/WorkSans-Medium.ttf') format('truetype'), + url(https://fonts.gstatic.com/s/worksans/v9/QGY_z_wNahGAdqQ43RhVcIgYT2Xz5u32K3vXBiEJpp_c.woff2) format('woff2'); unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; } /* latin */ @@ -51,8 +72,12 @@ font-style: normal; font-weight: 500; font-display: swap; - src: url("../font/WorkSans-Medium.ttf") format('truetype'), url(https://fonts.gstatic.com/s/worksans/v9/QGY_z_wNahGAdqQ43RhVcIgYT2Xz5u32K3vXBi8Jpg.woff2) format('woff2'); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; + src: + url('../font/WorkSans-Medium.ttf') format('truetype'), + url(https://fonts.gstatic.com/s/worksans/v9/QGY_z_wNahGAdqQ43RhVcIgYT2Xz5u32K3vXBi8Jpg.woff2) format('woff2'); + unicode-range: + U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, + U+FEFF, U+FFFD; } /* latin-ext */ @@ -61,7 +86,9 @@ font-style: normal; font-weight: 600; font-display: swap; - src: url("../font/WorkSans-SemiBold.ttf") format('truetype'), url(https://fonts.gstatic.com/s/worksans/v9/QGY_z_wNahGAdqQ43RhVcIgYT2Xz5u32K5fQBiEJpp_c.woff2) format('woff2'); + src: + url('../font/WorkSans-SemiBold.ttf') format('truetype'), + url(https://fonts.gstatic.com/s/worksans/v9/QGY_z_wNahGAdqQ43RhVcIgYT2Xz5u32K5fQBiEJpp_c.woff2) format('woff2'); unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; } /* latin */ @@ -70,8 +97,12 @@ font-style: normal; font-weight: 600; font-display: swap; - src: url("../font/WorkSans-SemiBold.ttf") format('truetype'), url(https://fonts.gstatic.com/s/worksans/v9/QGY_z_wNahGAdqQ43RhVcIgYT2Xz5u32K5fQBi8Jpg.woff2) format('woff2'); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; + src: + url('../font/WorkSans-SemiBold.ttf') format('truetype'), + url(https://fonts.gstatic.com/s/worksans/v9/QGY_z_wNahGAdqQ43RhVcIgYT2Xz5u32K5fQBi8Jpg.woff2) format('woff2'); + unicode-range: + U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, + U+FEFF, U+FFFD; } /* latin-ext */ @font-face { @@ -79,7 +110,10 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Work Sans Bold'), url("../font/WorkSans-Bold.ttf") format('truetype'), url(https://fonts.gstatic.com/s/worksans/v8/QGY_z_wNahGAdqQ43RhVcIgYT2Xz5u32K67QBiEJpp_c.woff2) format('woff2'); + src: + local('Work Sans Bold'), + url('../font/WorkSans-Bold.ttf') format('truetype'), + url(https://fonts.gstatic.com/s/worksans/v8/QGY_z_wNahGAdqQ43RhVcIgYT2Xz5u32K67QBiEJpp_c.woff2) format('woff2'); unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; } /* latin */ @@ -88,6 +122,11 @@ font-style: normal; font-weight: 700; font-display: swap; - src: local('Work Sans Bold'), url("../font/WorkSans-Bold.ttf") format('truetype'), url(https://fonts.gstatic.com/s/worksans/v8/QGY_z_wNahGAdqQ43RhVcIgYT2Xz5u32K67QBi8Jpg.woff2) format('woff2'); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; + src: + local('Work Sans Bold'), + url('../font/WorkSans-Bold.ttf') format('truetype'), + url(https://fonts.gstatic.com/s/worksans/v8/QGY_z_wNahGAdqQ43RhVcIgYT2Xz5u32K67QBi8Jpg.woff2) format('woff2'); + unicode-range: + U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, + U+FEFF, U+FFFD; } diff --git a/styles/_font.scss b/styles/_font.scss index ac1462aa82..564366e612 100644 --- a/styles/_font.scss +++ b/styles/_font.scss @@ -6,19 +6,31 @@ body { -webkit-font-smoothing: antialiased; } -pre, code { +pre, +code { /* Disable ligatures on code-font, so, for example, </ doesn't become a diagonal arrow. */ - font-feature-settings: "liga" 0; + font-feature-settings: 'liga' 0; font-variant-ligatures: none; } -h1, h2, h3, h4, h5, h6, -.h1, .h2, .h3, .h4, .h5, .h6 { +h1, +h2, +h3, +h4, +h5, +h6, +.h1, +.h2, +.h3, +.h4, +.h5, +.h6 { font-weight: bold; } -h1, .h1 { +h1, +.h1 { font-size: 3.875rem; line-height: 70px; @media (max-width: 480px) { @@ -26,7 +38,8 @@ h1, .h1 { line-height: 48px; } } -h2, .h2 { +h2, +.h2 { font-size: 3.5rem; line-height: 62px; @include media-breakpoint-down(sm) { @@ -40,7 +53,8 @@ h2, .h2 { } } } -h3, .h3 { +h3, +.h3 { font-size: 3rem; line-height: 52px; @include media-breakpoint-down(sm) { @@ -54,7 +68,8 @@ h3, .h3 { } } } -h4, .h4 { +h4, +.h4 { font-size: 2rem; line-height: 38px; @include media-breakpoint-down(sm) { @@ -62,7 +77,8 @@ h4, .h4 { line-height: 26px; } } -h5, .h5 { +h5, +.h5 { font-size: 1.5rem; line-height: 32px; @include media-breakpoint-down(sm) { @@ -70,7 +86,8 @@ h5, .h5 { line-height: 26px; } } -h6, .h6 { +h6, +.h6 { font-size: 1.25rem; line-height: 26px; @include media-breakpoint-down(sm) { @@ -154,7 +171,7 @@ p { content: url(../img/icon-long-arrow.svg); width: 28px; padding-left: 7px; - transition: all .2s ease-in-out; + transition: all 0.2s ease-in-out; display: inline-block; text-decoration: none; } @@ -166,12 +183,15 @@ p { .lang-ja { font-family: 'Work Sans', 'Noto Sans JP', sans-serif; - h1, h2, h3, h4, h5, + h1, + h2, + h3, + h4, + h5, .navbar .navbar-nav .nav-link, article .children-display li a, .right-sidebar .level-1 a, .right-sidebar .separator { font-family: 'Work Sans', 'Noto Sans JP', sans-serif; } - } diff --git a/styles/_footer.scss b/styles/_footer.scss index 5525407260..b8f18fc70d 100644 --- a/styles/_footer.scss +++ b/styles/_footer.scss @@ -1,10 +1,17 @@ /* Footer ------------------------------------------------------------------- */ -[data-component-name="Footer/Footer"] { - [data-component-name="Footer/FooterColumn"] { - text-shadow: #111112 0px 0px 2px, #111112 1px 1px 2px, #111112 2px 2px 3px, - #111112 2px 2px 4px, #111112 2px 2px 5px, #111112 2px 2px 6px, #111112 -1px -1px 2px, - #111112 -2px -2px 3px, #111112 -2px -2px 4px; +[data-component-name='Footer/Footer'] { + [data-component-name='Footer/FooterColumn'] { + text-shadow: + #111112 0px 0px 2px, + #111112 1px 1px 2px, + #111112 2px 2px 3px, + #111112 2px 2px 4px, + #111112 2px 2px 5px, + #111112 2px 2px 6px, + #111112 -1px -1px 2px, + #111112 -2px -2px 3px, + #111112 -2px -2px 4px; } padding: 7.5rem 2rem; @@ -28,7 +35,7 @@ } .nav-link { - padding: .75rem 0; + padding: 0.75rem 0; line-height: 1; } diff --git a/styles/_forms.scss b/styles/_forms.scss index e06acc607d..3cf026dc75 100644 --- a/styles/_forms.scss +++ b/styles/_forms.scss @@ -79,7 +79,7 @@ html { #topsearchboxcontainer { justify-content: right; } - .algolia-autocomplete .ds-dropdown-menu [class^="ds-dataset-"] { + .algolia-autocomplete .ds-dropdown-menu [class^='ds-dataset-'] { background-color: $dropdown-bg; border: 0; border-radius: $border-radius-lg; @@ -95,7 +95,6 @@ html { .algolia-autocomplete .ds-dropdown-menu::before { border: 0; } - } .dark { @@ -138,7 +137,7 @@ html { .DocSearch-Help { color: $black-10 !important; } - .DocSearch-Hit[aria-selected="true"] a { + .DocSearch-Hit[aria-selected='true'] a { background: $gray-700; .DocSearch-Hit-Container { background-color: $gray-700; @@ -208,11 +207,8 @@ html { .algolia-docsearch-suggestion--category-header .algolia-docsearch-suggestion--category-header-lvl1 .algolia-docsearch-suggestion--highlight, - .algolia-autocomplete - .algolia-docsearch-suggestion--text - .algolia-docsearch-suggestion--highlight { + .algolia-autocomplete .algolia-docsearch-suggestion--text .algolia-docsearch-suggestion--highlight { box-shadow: none; background-color: $gray-700; } - } diff --git a/styles/_github-edit.scss b/styles/_github-edit.scss index d68ed77b05..bf88bc088c 100644 --- a/styles/_github-edit.scss +++ b/styles/_github-edit.scss @@ -1,4 +1,4 @@ // Edit icon in dark mode -.dark [data-component-name="Breadcrumbs/Breadcrumbs"] + div > a > svg > rect { +.dark [data-component-name='Breadcrumbs/Breadcrumbs'] + div > a > svg > rect { fill: transparent; } diff --git a/styles/_helpers.scss b/styles/_helpers.scss index 2eae630a9c..9e37e81bec 100644 --- a/styles/_helpers.scss +++ b/styles/_helpers.scss @@ -149,7 +149,7 @@ } } } -.mt-1{ +.mt-1 { margin-top: 1rem; } .mt-12 { @@ -485,21 +485,42 @@ br { // Arrow bouncing animation @keyframes arrowDance { - 0% { padding-left: 7px; } - 50% { padding-left: 14px; } - 100% { padding-left: 7px; } + 0% { + padding-left: 7px; + } + 50% { + padding-left: 14px; + } + 100% { + padding-left: 7px; + } } // Alt version for elements absolute-positioned to the right @keyframes arrowDance2 { - 0% { right: 0; } - 50% { right: 7px; } - 100% { right: 0; } + 0% { + right: 0; + } + 50% { + right: 7px; + } + 100% { + right: 0; + } } // Diagonal up-right arrow bouncing (also for absolute-positioned to the right) @keyframes arrowDanceDiag { - 0% { right: 7px; margin-top: 0; } - 50% { right: 0; margin-top: -7px; } - 100% { right: 7px; margin-top: 0; } + 0% { + right: 7px; + margin-top: 0; + } + 50% { + right: 0; + margin-top: -7px; + } + 100% { + right: 7px; + margin-top: 0; + } } diff --git a/styles/_interactive-tutorials.scss b/styles/_interactive-tutorials.scss index ceefe2ecaa..ef0900857b 100644 --- a/styles/_interactive-tutorials.scss +++ b/styles/_interactive-tutorials.scss @@ -44,7 +44,7 @@ } .breadcrumb-item.done a:after { - content: "\f058"; /* fontawesome check-circle icon */ + content: '\f058'; /* fontawesome check-circle icon */ font-family: FontAwesome; color: $secondary; padding-right: 5px; diff --git a/styles/_landings.scss b/styles/_landings.scss index 019eb98ca2..aeb4607821 100644 --- a/styles/_landings.scss +++ b/styles/_landings.scss @@ -1,6 +1,5 @@ /* Landing Pages ------------------------------------------------------------ */ .landing { - .container-fluid.section-hero { padding: 48px 0; } @@ -29,7 +28,7 @@ } .level-1, - .level-2{ + .level-2 { margin-top: 0; } @@ -45,7 +44,8 @@ line-height: 1.71em; } - .doc-index { // "All Pages" listings + .doc-index { + // "All Pages" listings .level-1 { list-style-type: disc; margin-left: 1rem; @@ -113,7 +113,6 @@ // border-top: none; // } - #main_content_wrapper { border-bottom: none; // Offset for top nav bar @@ -141,7 +140,7 @@ } &:not(.external-link)::after { - content: " "; + content: ' '; background-image: url(../img/icons/arrow-right-purple.svg); background-repeat: no-repeat; background-position: center; @@ -150,23 +149,23 @@ right: 0; width: 1.5rem; height: 1.5rem; - transition: all .2s ease; + transition: all 0.2s ease; } &:not(.external-link):hover::after { animation: arrowDance2 1.2s infinite; } &.external-link::after { - content: " "; + content: ' '; background-image: url(../img/icons/arrow-up-right.svg); background-repeat: no-repeat; position: absolute; background-position: center; - background-size: .75rem; + background-size: 0.75rem; right: 7px; width: 1.5rem; height: 1.5rem; - transition: all .2s ease; + transition: all 0.2s ease; } &.external-link:hover::after { diff --git a/styles/_layout.scss b/styles/_layout.scss index 441c07d3b1..f41aa54062 100644 --- a/styles/_layout.scss +++ b/styles/_layout.scss @@ -83,7 +83,6 @@ section { } } - .col-lg { padding-left: 0; padding-right: 0; @@ -97,7 +96,6 @@ section { } } - // Grid styles (often not for cards) ------------------------------------------- .card-grid { @@ -121,13 +119,12 @@ section { /* 4 equal columns and any number of auto-sized rows. */ grid-auto-rows: auto; grid-template-columns: repeat(2, 1fr); - + @include media-breakpoint-up(lg) { grid-template-columns: repeat(4, 1fr); } } - &.card-grid-3xN { /* 3 equal columns and any number of auto-sized rows. */ grid-auto-rows: auto; @@ -164,7 +161,6 @@ section { } } - .card { padding: 20px; border: 0; @@ -196,7 +192,6 @@ section { &.section-hero { padding-left: 0; } - } // New Page Layouts --------------------------------------------------------------- @@ -219,7 +214,6 @@ section { } } - /* Responsive design for different viewscreens ------------------------------ */ @include media-breakpoint-down(md) { @@ -252,24 +246,23 @@ section { } } - /* TIMELINE */ .timeline-wrapper { - z-index: 999; - position: relative; + z-index: 999; + position: relative; } .timeline:before { - content: ''; - position: absolute; - top: -40px; - left: 18px; - height: 95%; - width: 4px; - background: linear-gradient(180deg, rgba(254, 255, 1, 1) 0%, rgba(255, 45, 154, 1) 33%, rgba(163, 8, 143, 1) 66%, rgba(44, 4, 128, 0.85) 100%); - @include media-breakpoint-down(md) { - left: 8px; - } - } + content: ''; + position: absolute; + top: -40px; + left: 18px; + height: 95%; + width: 4px; + background: linear-gradient(180deg, rgba(254, 255, 1, 1) 0%, rgba(255, 45, 154, 1) 33%, rgba(163, 8, 143, 1) 66%, rgba(44, 4, 128, 0.85) 100%); + @include media-breakpoint-down(md) { + left: 8px; + } +} .timeline-dot { margin-top: 94px; @@ -302,9 +295,9 @@ section { border: 3px solid $red-purple-900; } .timeline-block { - display: flex; - position: relative; - z-index: 1; + display: flex; + position: relative; + z-index: 1; } .timeline-content { @@ -338,7 +331,7 @@ section { margin-right: calc(5% - 9px); } .timeline-content { - width: 45%; + width: 45%; -ms-flex-positive: 0; flex-grow: 0; will-change: transform; @@ -348,7 +341,7 @@ section { } @include media-breakpoint-up(lg) { - [data-component-name="TableOfContent/TableOfContent"] { + [data-component-name='TableOfContent/TableOfContent'] { margin-right: 32px; } } diff --git a/styles/_pages.scss b/styles/_pages.scss index 5ce7638001..8ca6e81ed5 100644 --- a/styles/_pages.scss +++ b/styles/_pages.scss @@ -37,12 +37,12 @@ max-width: 856px; height: auto; object-fit: cover; - content: url("../img/home-hero.svg"); + content: url('../img/home-hero.svg'); margin-bottom: 24px; display: block; margin-left: auto; margin-right: auto; - + @media (min-width: 992px) { min-height: 470px; } @@ -57,33 +57,39 @@ } #benefits-list { - @each $benefit in "public", "streamlined", "performance", "low-cost", - "community", "reliability" - - { + @each $benefit in 'public', 'streamlined', 'performance', 'low-cost', 'community', 'reliability' { ##{$benefit} { - content: url("../img/icons/#{$benefit}.svg"); + content: url('../img/icons/#{$benefit}.svg'); } } } #advanced-features { - $feature-cards: [ "pink-purple", "neutral-blue", "light-green", "orange", "purple-blue-2"]; + $feature-cards: + [ 'pink-purple', + 'neutral-blue', + 'light-green', + 'orange', + 'purple-blue-2']; @for $i from 1 through 5 { .card:nth-child(#{$i}) .card-footer { - background-image: url("../img/cards/3col-#{nth($feature-cards, $i)}.svg"); + background-image: url('../img/cards/3col-#{nth($feature-cards, $i)}.svg'); } } } #get-started { - $gs-cards: [ "orange-yellow", "magenta-orange", "purple-blue-green", - "light-blue", "green-blue"]; + $gs-cards: + [ 'orange-yellow', + 'magenta-orange', + 'purple-blue-green', + 'light-blue', + 'green-blue']; @for $i from 1 through 5 { .card:nth-child(#{$i}) .card-footer { - background-image: url("../img/cards/3col-#{nth($gs-cards, $i)}.svg"); + background-image: url('../img/cards/3col-#{nth($gs-cards, $i)}.svg'); } } } @@ -92,27 +98,27 @@ // Payments page specific embedded payments icons #embedded-payments-list { #digital-wallets { - content: url("../img/uses/payments/digital-wallet.png"); + content: url('../img/uses/payments/digital-wallet.png'); } - + #cross-border-remittance { - content: url("../img/uses/payments/cross-border.png"); + content: url('../img/uses/payments/cross-border.png'); } - + #regulated-foreign-exchange { - content: url("../img/uses/payments/regulated.png"); + content: url('../img/uses/payments/regulated.png'); } - + #merchant-settlement { - content: url("../img/uses/payments/merchant-settlement.png"); + content: url('../img/uses/payments/merchant-settlement.png'); } - + #b2b-payment-rails { - content: url("../img/uses/payments/b2b-payment.png"); + content: url('../img/uses/payments/b2b-payment.png'); } - + #compliance-first-payment-acceptance { - content: url("../img/uses/payments/compliance.png"); + content: url('../img/uses/payments/compliance.png'); } } @@ -141,7 +147,7 @@ .landing-builtin-bg { &::before { - content: ""; + content: ''; position: absolute; top: 0; left: 0; @@ -172,34 +178,31 @@ } #wallets { - @each $wallet in "ledger", "secalot", "trezor", "xumm", "trust", "gatehub", "towo", "keystone", "dcent", "coin", "gem", "joey" { + @each $wallet in 'ledger', 'secalot', 'trezor', 'xumm', 'trust', 'gatehub', 'towo', 'keystone', 'dcent', 'coin', 'gem', 'joey' { #wallet-#{$wallet} { - content: url("../img/wallets/#{$wallet}.svg"); + content: url('../img/wallets/#{$wallet}.svg'); } } - @each $wallet in "bitfrost", "crossmark" { + @each $wallet in 'bitfrost', 'crossmark' { #wallet-#{$wallet} { - content: url("../img/wallets/#{$wallet}.png"); + content: url('../img/wallets/#{$wallet}.png'); } } } #top-exchanges { // Vector logos - @each $exchange in "bitstamp", "kraken", "cex-io", "liquid", "lmax", - "bitfinex", "etoro" - - { + @each $exchange in 'bitstamp', 'kraken', 'cex-io', 'liquid', 'lmax', 'bitfinex', 'etoro' { #exch-#{$exchange} { - content: url("../img/exchanges/#{$exchange}.svg"); + content: url('../img/exchanges/#{$exchange}.svg'); } } // Raster logos - @each $exchange in "bittrex", "currency-com", "ftx" { + @each $exchange in 'bittrex', 'currency-com', 'ftx' { #exch-#{$exchange} { - content: url("../img/exchanges/#{$exchange}.png"); + content: url('../img/exchanges/#{$exchange}.png'); } } } @@ -379,69 +382,68 @@ top: 10px; } - @each $usecase in "infrastructure", "developer_tooling", "interoperability", - "wallet", "nfts", "exchanges", "gaming", "security", "payments", - "web_monetization", "sustainability", "cbdc", "other", "carbon_markets", - "custody", "defi" - - { + @each $usecase in 'infrastructure', 'developer_tooling', 'interoperability', 'wallet', 'nfts', 'exchanges', 'gaming', 'security', 'payments', + 'web_monetization', 'sustainability', 'cbdc', 'other', 'carbon_markets', 'custody', 'defi' + { ##{$usecase} { - content: url("../img/icons/usecases/ic_#{$usecase}.png"); + content: url('../img/icons/usecases/ic_#{$usecase}.png'); } } // logos for cards // $type incase png or jpg is needed. @each $company, - $type in ("bithomp": "svg", - "onthedex": "svg", - "gatehub": "svg", - "towo-labs": "svg", - "xrp-toolkit": "svg", - "xrpl-org-ledger-explorer": "svg", - "xrpl-rosetta": "svg", - "xrpscan": "svg", - "evernode": "svg", - "cryptum": "svg", - "x-tokenize": "svg", - "multichain": "svg", - "xumm-wallet": "svg", - "gem-wallet": "svg", - "aesthetes": "svg", - "audiotarky": "svg", - "xrp-cafe": "svg", - "nft-master": "svg", - "onxrp": "svg", - "peerkat": "svg", - "sologenic-nft": "svg", - "sologenic-dex": "svg", - "xp-market": "svg", - "ledger-city": "svg", - "forte": "svg", - "futureverse": "svg", - 'first-ledger-bot': 'svg', - "moai-finance": "svg", - "orchestra-finance": "svg", - "anchain-ai": "svg", - "coil": "svg", - "carbonland-trust": "svg", - "casino-coin": "svg", - "bitgo": "svg", - "bitpay": "svg", - "ripples-on-demand-liquidity": "svg", - "ripples-cbdc-platform": "svg", - "momento": "svg", - "zerpmon": "png", - "joey-wallet": "svg", - "Crossmark": "png", - "Edge": "png" - - ) { + $type + in ( + 'bithomp': 'svg', + 'onthedex': 'svg', + 'gatehub': 'svg', + 'towo-labs': 'svg', + 'xrp-toolkit': 'svg', + 'xrpl-org-ledger-explorer': 'svg', + 'xrpl-rosetta': 'svg', + 'xrpscan': 'svg', + 'evernode': 'svg', + 'cryptum': 'svg', + 'x-tokenize': 'svg', + 'multichain': 'svg', + 'xumm-wallet': 'svg', + 'gem-wallet': 'svg', + 'aesthetes': 'svg', + 'audiotarky': 'svg', + 'xrp-cafe': 'svg', + 'nft-master': 'svg', + 'onxrp': 'svg', + 'peerkat': 'svg', + 'sologenic-nft': 'svg', + 'sologenic-dex': 'svg', + 'xp-market': 'svg', + 'ledger-city': 'svg', + 'forte': 'svg', + 'futureverse': 'svg', + 'first-ledger-bot': 'svg', + 'moai-finance': 'svg', + 'orchestra-finance': 'svg', + 'anchain-ai': 'svg', + 'coil': 'svg', + 'carbonland-trust': 'svg', + 'casino-coin': 'svg', + 'bitgo': 'svg', + 'bitpay': 'svg', + 'ripples-on-demand-liquidity': 'svg', + 'ripples-cbdc-platform': 'svg', + 'momento': 'svg', + 'zerpmon': 'png', + 'joey-wallet': 'svg', + 'Crossmark': 'png', + 'Edge': 'png' + ) + { #use_case_companies_list { ##{$company} { .biz-logo { max-height: 40px; - content: url("../img/uses/#{$company}.#{$type}"); + content: url('../img/uses/#{$company}.#{$type}'); } } } @@ -560,9 +562,9 @@ } .connect-list { - @each $connect in "connect-01", "connect-02", "connect-03", "connect-04" { + @each $connect in 'connect-01', 'connect-02', 'connect-03', 'connect-04' { ##{$connect} { - content: url("../img/impact/#{$connect}.svg"); + content: url('../img/impact/#{$connect}.svg'); } } } @@ -570,9 +572,9 @@ .page-funding { .funding-list { - @each $funding in "funding-01", "funding-02", "funding-03", "funding-04" { + @each $funding in 'funding-01', 'funding-02', 'funding-03', 'funding-04' { ##{$funding} { - content: url("../img/funding/#{$funding}.svg"); + content: url('../img/funding/#{$funding}.svg'); } } } @@ -594,23 +596,17 @@ // Ambassadors .page-ambassadors { #benefits-list { - @each $benefits in "benefits-01", "benefits-02", "benefits-03", - "benefits-04", "benefits-05", "benefits-06" - - { + @each $benefits in 'benefits-01', 'benefits-02', 'benefits-03', 'benefits-04', 'benefits-05', 'benefits-06' { ##{$benefits} { - content: url("../img/ambassadors/#{$benefits}.svg"); + content: url('../img/ambassadors/#{$benefits}.svg'); } } } #eligibility-list { - @each $eligibility in "eligibility-01", "eligibility-02", "eligibility-03", - "eligibility-04", "eligibility-05" - - { + @each $eligibility in 'eligibility-01', 'eligibility-02', 'eligibility-03', 'eligibility-04', 'eligibility-05' { ##{$eligibility} { - content: url("../img/ambassadors/#{$eligibility}.svg"); + content: url('../img/ambassadors/#{$eligibility}.svg'); } } } @@ -807,7 +803,7 @@ .event-card-footer .icon::before { height: 24px; width: 24px; - content: ""; + content: ''; margin-right: 8px; background-size: contain; background-repeat: no-repeat; @@ -859,13 +855,13 @@ // -webkit-filter: opacity(0.4); // } - .events-filter[type="checkbox"]::before { + .events-filter[type='checkbox']::before { position: relative; display: block; width: 20px; height: 20px; - content: ""; + content: ''; background: $gray-900; border-radius: 4px; @@ -874,7 +870,7 @@ border-color: $gray-400; } - .events-filter[type="checkbox"]::after { + .events-filter[type='checkbox']::after { position: relative; display: block; @@ -882,7 +878,7 @@ width: 20px; height: 20px; - content: ""; + content: ''; background-repeat: no-repeat; background-position: center; @@ -892,13 +888,13 @@ border-color: $gray-400; } - .events-filter[type="checkbox"]:checked::before { + .events-filter[type='checkbox']:checked::before { background: $gray-900; border: none; border-radius: 0; } - .events-filter[type="checkbox"]:checked::after { + .events-filter[type='checkbox']:checked::after { background-image: url(../img/events/event-check.svg); background-repeat: no-repeat; background-position: center; @@ -909,7 +905,7 @@ border-radius: 4px; } - .events-filter[type="checkbox"]:not(:disabled):checked:hover::after { + .events-filter[type='checkbox']:not(:disabled):checked:hover::after { background-image: url(../img/events/event-check.svg); background-repeat: no-repeat; background-position: center; @@ -919,13 +915,13 @@ border-radius: 4px; } - .events-filter[type="checkbox"]:not(:disabled):hover::before { + .events-filter[type='checkbox']:not(:disabled):hover::before { background: $gray-900; border: none; border-radius: 0; } - .events-filter[type="checkbox"]:not(:disabled):hover::after { + .events-filter[type='checkbox']:not(:disabled):hover::after { background: $gray-900; border: none; border-width: 2px; @@ -1067,14 +1063,14 @@ &::before { display: block; - content: " "; + content: ' '; margin-top: -40px; height: 40px; visibility: hidden; pointer-events: none; } - >a { + > a { text-decoration: none; &:hover { @@ -1335,12 +1331,9 @@ } .page-community { - @each $platform in "github", "twitch", "stack-overflow", "twitter", "discord", - "youtube", "devto" - - { + @each $platform in 'github', 'twitch', 'stack-overflow', 'twitter', 'discord', 'youtube', 'devto' { #platform-#{$platform} { - content: url("../img/logos/#{$platform}.svg"); + content: url('../img/logos/#{$platform}.svg'); } } } @@ -1381,24 +1374,26 @@ .page-dev-tools { @each $tool, - $card-graphic in ("xrp-explorer": "3-col-orange", - "bithomp-explorer": "3-col-light-blue", - "xrpscan": "3-col-pink", - "token-list": "3-col-pink2", - "websocket": "3-col-purple2", - "rpc": "3-col-green", - "technical-explorer": "3-col-purple-blue", - "faucets": "3-col-pink2", - "trasaction-sender": "3-col-light-blue2", - "domain": "3-col-green-purple", - "xrp-ledger": "3-col-dark-blue", - "binary-visualizer": "3-col-purple-blue", - "token-metadata-lookup": "3-col-pink-purple" - - ) { + $card-graphic + in ( + 'xrp-explorer': '3-col-orange', + 'bithomp-explorer': '3-col-light-blue', + 'xrpscan': '3-col-pink', + 'token-list': '3-col-pink2', + 'websocket': '3-col-purple2', + 'rpc': '3-col-green', + 'technical-explorer': '3-col-purple-blue', + 'faucets': '3-col-pink2', + 'trasaction-sender': '3-col-light-blue2', + 'domain': '3-col-green-purple', + 'xrp-ledger': '3-col-dark-blue', + 'binary-visualizer': '3-col-purple-blue', + 'token-metadata-lookup': '3-col-pink-purple' + ) + { ##{$tool} { .card-footer { - background-image: url("../img/cards/#{$card-graphic}.svg"); + background-image: url('../img/cards/#{$card-graphic}.svg'); } } } @@ -1466,19 +1461,18 @@ html.light { } #trasaction-sender .card-footer { - background-image: url("../img/cards/3-col-light-blue-2.svg"); + background-image: url('../img/cards/3-col-light-blue-2.svg'); } } } -.page-rwa-tokenization{ +.page-rwa-tokenization { .developer-tools { - padding:180px 0px; + padding: 180px 0px; } } .page-rwa-tokenization, .use-case-payments { - .right-arrow-item::after { display: inline-block; content: url('../img/icons/arrow-right-purple.svg'); @@ -1496,9 +1490,9 @@ html.light { } .token-title { - color: var(--black-black-0-white, #FFF); + color: var(--black-black-0-white, #fff); text-align: center; - font-family: "Work Sans"; + font-family: 'Work Sans'; font-size: 62px; font-style: normal; font-weight: 700; @@ -1511,58 +1505,57 @@ html.light { font-size: 42px; text-align: left; } - } - .token-title-container { - gap: 32px; - padding: 104px 40px; + .token-title-container { + gap: 32px; + padding: 104px 40px; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + + .button-container { display: flex; - flex-direction: column; - align-items: center; + flex-wrap: wrap; + gap: 32px; justify-content: center; - - .button-container { - display: flex; - flex-wrap: wrap; - gap: 32px; - justify-content: center; + align-items: center; + + .internal-link { + color: #9a52ff; + font-size: 16px; + font-style: normal; + font-weight: 700; + text-decoration: none; + cursor: pointer; + display: inline-flex; align-items: center; - - .internal-link { - color: #9a52ff; - font-size: 16px; - font-style: normal; - font-weight: 700; - text-decoration: none; - cursor: pointer; - display: inline-flex; - align-items: center; - background: none !important; - } - - @media (max-width: 767px) { - padding-bottom: 0px; - gap: 16px; - flex-direction: column; - width: 100%; - - .btn-primary.p-12 { - width: 100%; - } - - .internal-link { - width: 100%; - text-align: center; - white-space: normal; - } - } - + background: none !important; + } + + @media (max-width: 767px) { + padding-bottom: 0px; + gap: 16px; + flex-direction: column; + width: 100%; + .btn-primary.p-12 { - padding: 12px; + width: 100%; + } + + .internal-link { + width: 100%; + text-align: center; + white-space: normal; } } + + .btn-primary.p-12 { + padding: 12px; + } } + } .token-video-container { padding: 104px 64px; @@ -1576,7 +1569,7 @@ html.light { @media (max-width: 767px) { padding-bottom: 0px; } - .__button-container{ + .__button-container { margin-top: 16px; } .token-video { @@ -1595,8 +1588,8 @@ html.light { gap: 24px; p { - color: var(--black-black-10-gray-200, #E0E0E1); - font-family: "Work Sans"; + color: var(--black-black-10-gray-200, #e0e0e1); + font-family: 'Work Sans'; font-size: 24px; font-style: normal; font-weight: 400; @@ -1610,20 +1603,20 @@ html.light { gap: 40px; padding: 80px 40px; max-width: 800px; - + .token-video { width: 100%; max-width: 100%; height: auto; aspect-ratio: 16/9; } - + .token-video-text-container { width: 100%; max-width: 100%; align-items: flex-start; text-align: left; - + p { font-size: 22px; line-height: 30px; @@ -1635,7 +1628,7 @@ html.light { padding: 60px 40px; gap: 32px; max-width: 100%; - + .token-video-text-container { p { font-size: 18px; @@ -1663,8 +1656,8 @@ html.light { } .cards-title-token { - color: var(--black-black-0-white, #FFF); - font-family: "Work Sans"; + color: var(--black-black-0-white, #fff); + font-family: 'Work Sans'; font-size: 32px; font-style: normal; font-weight: 700; @@ -1691,7 +1684,6 @@ html.light { margin-bottom: 40px; } - .benefits-container { display: grid; grid-template-columns: repeat(4, 1fr); @@ -1705,30 +1697,30 @@ html.light { grid-template-columns: repeat(3, 1fr); } } - + @media (max-width: 1145px) { .section-title { font-size: 28px; line-height: 34px; } - + .benefits-container { grid-template-columns: repeat(2, 1fr); gap: 32px; } - + .benefit-card { padding: 24px; min-height: 280px; } } - + @media (max-width: 767px) { .benefits-container { grid-template-columns: 1fr; gap: 24px; } - + .benefit-card { padding: 20px; min-height: 240px; @@ -1759,112 +1751,117 @@ html.light { 'delegated-token-management': '../img/tokenization/delegated-token-management.png', ); - @each $name, $path in $icons { - .benefit-icon.#{$name} { - background-image: url(#{$path}); + @each $name, $path in $icons { + .benefit-icon.#{$name} { + background-image: url(#{$path}); + } + } + + .benefit-title { + color: var(--black-black-0-white, #fff); + font-size: 20px; + font-weight: 700; + line-height: 26px; + margin-top: -10px; + } + + .benefit-description { + color: var(--Black-Black-20, #e0e0e1); + font-size: 16px; + font-weight: 400; + line-height: 24px; + margin-top: 16px; + } + + @media (max-width: 991px) { + .benefit-card { + padding: 20px; + } } } -.benefit-title { - color: var(--black-black-0-white, #fff); - font-size: 20px; - font-weight: 700; - line-height: 26px; - margin-top: -10px; -} - -.benefit-description { - color: var(--Black-Black-20, #e0e0e1); - font-size: 16px; - font-weight: 400; - line-height: 24px; - margin-top: 16px; -} - -@media (max-width: 991px) { - .benefit-card { - padding: 20px; - } -} -} - -.upcoming-events { - display: flex; - flex-direction: column; - justify-content: center; - overflow: hidden; - padding: 100px 40px; - max-width: 1200px; - width: 100%; - @media (max-width: 767px) { - padding-bottom: 0px; - padding-top: 0px; - } -} - -.upcoming-events__title { - max-width: 630px; - align-self: stretch; - color: #fff; - font: 700 32px/38px Work Sans, -apple-system, Roboto, Helvetica, sans-serif; - margin-bottom: 64px; - @media (max-width: 767px) { - text-align: left; - } -} - -.upcoming-events__logo-container { - display: flex; - align-items: center; - gap: 60px; - justify-content: center; - flex-wrap: wrap; -} - -.token-events-wrapper { - padding-top: 0px; - display: flex; - justify-content: center; -} - -.company-logo { - flex: 0 0 auto; - width: 140px; - aspect-ratio: var(--aspect-ratio); - background-size: contain; - background-repeat: no-repeat; - background-position: center; -} - -@media (max-width: 991px) { - .upcoming-events__title { - margin-bottom: 40px; - } - .upcoming-events { - text-align: center; + display: flex; + flex-direction: column; + justify-content: center; + overflow: hidden; + padding: 100px 40px; + max-width: 1200px; + width: 100%; + @media (max-width: 767px) { + padding-bottom: 0px; + padding-top: 0px; + } + } + + .upcoming-events__title { + max-width: 630px; + align-self: stretch; + color: #fff; + font: + 700 32px/38px Work Sans, + -apple-system, + Roboto, + Helvetica, + sans-serif; + margin-bottom: 64px; + @media (max-width: 767px) { + text-align: left; + } } .upcoming-events__logo-container { + display: flex; + align-items: center; + gap: 60px; + justify-content: center; + flex-wrap: wrap; + } + + .token-events-wrapper { + padding-top: 0px; + display: flex; justify-content: center; } -} -.small-100 { - @media (max-width: 575.98px) { - /* Applies only on screens smaller than Bootstrap's `sm` breakpoint */ - width: 100%; + .company-logo { + flex: 0 0 auto; + width: 140px; + aspect-ratio: var(--aspect-ratio); + background-size: contain; + background-repeat: no-repeat; + background-position: center; + } + + @media (max-width: 991px) { + .upcoming-events__title { + margin-bottom: 40px; + } + + .upcoming-events { + text-align: center; + } + + .upcoming-events__logo-container { + justify-content: center; + } + } + + .small-100 { + @media (max-width: 575.98px) { + /* Applies only on screens smaller than Bootstrap's `sm` breakpoint */ + width: 100%; + } + } + .company-logo { + cursor: pointer; + flex: 0 0 auto; + max-width: 140px; + aspect-ratio: var(--aspect-ratio); + background-size: contain; + background-repeat: no-repeat; + background-position: center; } -} -.company-logo { - cursor: pointer; - flex: 0 0 auto; - max-width: 140px; - aspect-ratio: var(--aspect-ratio); - background-size: contain; - background-repeat: no-repeat; - background-position: center; -} $company-logos: ( 'zoniqx': '../img/tokenization/zoniqx.png', @@ -1882,469 +1879,466 @@ html.light { background-image: url(#{$path}); } } - - .company-logo{ + + .company-logo { max-height: 66px; max-width: 100px; width: 100%; height: 100%; } -/* Developer tools styles - shared between tokenization and payments pages */ -.token-developer-tools-section, -.payments-integration-section { - .developer-tools { - font-family: 'Work Sans', sans-serif; - color: #fff; - } - - .developer-tools__header { - margin-bottom: 64px; - } - - .developer-tools__title { - font-size: 32px; - font-weight: 700; - line-height: 1; - margin-bottom: 24px; - } - - .developer-tools__description { - font-size: 16px; - line-height: 24px; - } - - .developer-tools__list { - list-style: none; - padding: 0; - margin: 0; - } - - .feature-item { - a:hover { - text-decoration: none; - } - margin-bottom: 16px; - cursor: pointer; - } - - .feature-item__content { - display: flex; - justify-content: space-between; - align-items: center; - margin-bottom: 16px; - cursor: pointer; - } - - .feature-item__content:hover .right-arrow-item::after { - transform: translateX(4px); - /* Moves the arrow 4px to the right on hover */ - } - - .feature-item__title { - font-size: 16px; - color: #e0e0e1; - cursor: pointer; - } - - .feature-item__icon { - width: 24px; - height: 24px; - object-fit: contain; - } - - .feature-item__divider { - height: 1px; - opacity: 0.3; - background-color: #fff; - } - - - - .developer-tools__image { - width: 110%; - height: 124%; - background-image: url("../img/tokenization/graphic.png"); - background-size: contain; - background-repeat: no-repeat; - background-position: center; - } - .m-h-300 { - min-height: 300px; - } - - @media (max-width: 991px) { + /* Developer tools styles - shared between tokenization and payments pages */ + .token-developer-tools-section, + .payments-integration-section { .developer-tools { - padding: 50px 40px; + font-family: 'Work Sans', sans-serif; + color: #fff; } .developer-tools__header { + margin-bottom: 64px; + } + + .developer-tools__title { + font-size: 32px; + font-weight: 700; + line-height: 1; + margin-bottom: 24px; + } + + .developer-tools__description { + font-size: 16px; + line-height: 24px; + } + + .developer-tools__list { + list-style: none; + padding: 0; + margin: 0; + } + + .feature-item { + a:hover { + text-decoration: none; + } + margin-bottom: 16px; + cursor: pointer; + } + + .feature-item__content { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 16px; + cursor: pointer; + } + + .feature-item__content:hover .right-arrow-item::after { + transform: translateX(4px); + /* Moves the arrow 4px to the right on hover */ + } + + .feature-item__title { + font-size: 16px; + color: #e0e0e1; + cursor: pointer; + } + + .feature-item__icon { + width: 24px; + height: 24px; + object-fit: contain; + } + + .feature-item__divider { + height: 1px; + opacity: 0.3; + background-color: #fff; + } + + .developer-tools__image { + width: 110%; + height: 124%; + background-image: url('../img/tokenization/graphic.png'); + background-size: contain; + background-repeat: no-repeat; + background-position: center; + } + .m-h-300 { + min-height: 300px; + } + + @media (max-width: 991px) { + .developer-tools { + padding: 50px 40px; + } + + .developer-tools__header { + margin-bottom: 40px; + } + } + } + + .token-features-section { + .rwa-tokenization { + font-family: 'Work Sans', sans-serif; + padding: 100px 40px; + padding-top: 0px; + color: #fff; + } + + .container { + max-width: 1200px; + margin: 0 auto; + } + + .rwa-header { + text-align: start; margin-bottom: 40px; } - } -} -.token-features-section { - .rwa-tokenization { - font-family: 'Work Sans', sans-serif; - padding: 100px 40px; - padding-top: 0px; - color: #fff; - } - - .container { - max-width: 1200px; - margin: 0 auto; - } - - .rwa-header { - text-align: start; - margin-bottom: 40px; - } - - .rwa-title { - font-size: 32px; - font-weight: 700; - line-height: 38px; - } - - .cta-container { - display: flex; - justify-content: flex-start; - gap: 24px; - } - - .btn { - font-size: 16px; - font-weight: 700; - padding: 8px 16px; - border-radius: 4px; - text-decoration: none; - } - - .btn-primary { - background-color: #7919ff; - color: #fff; - } - - .btn-link { - color: #9a52ff; - } - - @media (max-width: 991px) { - .auto-bridge { - padding: 18px !important; - } - - .rwa-tokenization { - padding: 50px 20px; - } - - .feature-grid { - gap: 20px; + .rwa-title { + font-size: 32px; + font-weight: 700; + line-height: 38px; } .cta-container { - flex-direction: column; - align-items: center; - } - } - .feature-grid { - display: flex; - flex-wrap: wrap; - gap: 40px; - justify-content: center; - margin-bottom: 20px; - .feature-card { - flex: 1 0 100%; - max-width: 100%; - margin-bottom: 20px; - position: relative; - - @media (min-width: 768px) { - flex: 1 0 calc(50% - 40px); - max-width: calc(50% - 40px); - } - - @media (min-width: 1200px) { - flex: 1 0 calc(25% - 30px); - max-width: calc(25% - 30px); - } - } -} - - .feature-card:hover .right-arrow-item::after { - transform: translateX(4px); - /* Moves the arrow 4px to the right on hover */ - } - - .feature-header { - margin-bottom: 16px; - position: relative; - } - - .feature-title { - display: flex; - align-items: flex-start; - justify-content: space-between; - font-size: 20px; - font-weight: 700; - line-height: 26px; - color: #fff; - width: 100%; - flex-wrap: wrap; - - @media (max-width: 767px) { - padding-right: 30px; - flex-wrap: nowrap; + display: flex; justify-content: flex-start; + gap: 24px; } - - @media (min-width: 768px) and (max-width: 1199px) { - flex-wrap: nowrap; - padding-right: 30px; - justify-content: flex-start; + + .btn { + font-size: 16px; + font-weight: 700; + padding: 8px 16px; + border-radius: 4px; + text-decoration: none; } - } - .feature-icon { - width: 16px; - height: 16px; - margin-left: 8px; - } + .btn-primary { + background-color: #7919ff; + color: #fff; + } - .feature-description { - font-size: 16px; - line-height: 24px; - color: #e0e0e1; - } -} + .btn-link { + color: #9a52ff; + } -.max-w-1150 { - max-width: 1150px !important; -} + @media (max-width: 991px) { + .auto-bridge { + padding: 18px !important; + } -.custom-gap { - justify-content: start !important; -} + .rwa-tokenization { + padding: 50px 20px; + } -.mt-16 { - margin-top: 16px; -} + .feature-grid { + gap: 20px; + } -.com-card { - min-width: auto !important; - padding: 40px !important; - height: fit-content; - max-height: 388px !important; -} - -.section-padding { - padding: 100px 40px; -} - -// Developer Resources Section - Clean, responsive styles with high specificity -.developer-resources-section { - .bottom-cards-section.bug-bounty.section-padding { - display: flex !important; - flex-wrap: wrap !important; - gap: 32px; - max-width: 1200px; - margin: 80px auto; - padding: 0px; - justify-content: center; - - @media (min-width: 768px) { + .cta-container { + flex-direction: column; + align-items: center; + } + } + .feature-grid { + display: flex; + flex-wrap: wrap; gap: 40px; - justify-content: space-between; - } - - @media (max-width: 767px) { - flex-direction: column; - gap: 20px; - margin: 40px auto; - padding: 0px; - } - - // High specificity to override contribute styles - .com-card { - flex: 1 !important; - position: relative; - margin: 0 !important; - - @media (min-width: 768px) { - flex: 1 1 calc(50% - 20px); - max-width: calc(50% - 20px); - min-width: calc(50% - 20px); - width: auto; - } - - @media (max-width: 767px) { - width: 100% !important; - max-width: 100% !important; - min-width: 100% !important; - margin-bottom: 0 !important; - flex: none !important; - } + justify-content: center; + margin-bottom: 20px; + .feature-card { + flex: 1 0 100%; + max-width: 100%; + margin-bottom: 20px; + position: relative; - &.developer-spotlight { - background-image: url(../img/community/bug-bounty-card-bg.png); - background-position: top right; - background-size: 169px 88px; - background-repeat: no-repeat; - } - &.learn-stay-updated { - background-image: url(../img/community/bug-bounty-card-bg-2.png); - background-position: bottom right; - background-size: contain; - background-repeat: no-repeat; - background-size: 136px 177px; - @media (max-width: 767px) { - background-image: url(../img/community/bug-bounty-card-bg-2-mobile.png); + @media (min-width: 768px) { + flex: 1 0 calc(50% - 40px); + max-width: calc(50% - 40px); + } + + @media (min-width: 1200px) { + flex: 1 0 calc(25% - 30px); + max-width: calc(25% - 30px); } } - - .card-content { - display: flex; + } + + .feature-card:hover .right-arrow-item::after { + transform: translateX(4px); + /* Moves the arrow 4px to the right on hover */ + } + + .feature-header { + margin-bottom: 16px; + position: relative; + } + + .feature-title { + display: flex; + align-items: flex-start; + justify-content: space-between; + font-size: 20px; + font-weight: 700; + line-height: 26px; + color: #fff; + width: 100%; + flex-wrap: wrap; + + @media (max-width: 767px) { + padding-right: 30px; + flex-wrap: nowrap; + justify-content: flex-start; + } + + @media (min-width: 768px) and (max-width: 1199px) { + flex-wrap: nowrap; + padding-right: 30px; + justify-content: flex-start; + } + } + + .feature-icon { + width: 16px; + height: 16px; + margin-left: 8px; + } + + .feature-description { + font-size: 16px; + line-height: 24px; + color: #e0e0e1; + } + } + + .max-w-1150 { + max-width: 1150px !important; + } + + .custom-gap { + justify-content: start !important; + } + + .mt-16 { + margin-top: 16px; + } + + .com-card { + min-width: auto !important; + padding: 40px !important; + height: fit-content; + max-height: 388px !important; + } + + .section-padding { + padding: 100px 40px; + } + + // Developer Resources Section - Clean, responsive styles with high specificity + .developer-resources-section { + .bottom-cards-section.bug-bounty.section-padding { + display: flex !important; + flex-wrap: wrap !important; + gap: 32px; + max-width: 1200px; + margin: 80px auto; + padding: 0px; + justify-content: center; + + @media (min-width: 768px) { + gap: 40px; + justify-content: space-between; + } + + @media (max-width: 767px) { flex-direction: column; - height: 100%; - - .card-description { - flex-grow: 1; - margin-bottom: 24px; - max-width: 560px; + gap: 20px; + margin: 40px auto; + padding: 0px; + } + + // High specificity to override contribute styles + .com-card { + flex: 1 !important; + position: relative; + margin: 0 !important; + + @media (min-width: 768px) { + flex: 1 1 calc(50% - 20px); + max-width: calc(50% - 20px); + min-width: calc(50% - 20px); + width: auto; + } + + @media (max-width: 767px) { + width: 100% !important; + max-width: 100% !important; + min-width: 100% !important; + margin-bottom: 0 !important; + flex: none !important; + } + + &.developer-spotlight { + background-image: url(../img/community/bug-bounty-card-bg.png); + background-position: top right; + background-size: 169px 88px; + background-repeat: no-repeat; + } + &.learn-stay-updated { + background-image: url(../img/community/bug-bounty-card-bg-2.png); + background-position: bottom right; + background-size: contain; + background-repeat: no-repeat; + background-size: 136px 177px; @media (max-width: 767px) { - margin-bottom: 20px; + background-image: url(../img/community/bug-bounty-card-bg-2-mobile.png); } } - - .card-links { - margin-top: auto; - - @media (max-width: 767px) { - margin-top: 16px; - - .com-card-link { - display: block; - margin-bottom: 12px; - - &:last-child { - margin-bottom: 0; + + .card-content { + display: flex; + flex-direction: column; + height: 100%; + + .card-description { + flex-grow: 1; + margin-bottom: 24px; + max-width: 560px; + @media (max-width: 767px) { + margin-bottom: 20px; + } + } + + .card-links { + margin-top: auto; + + @media (max-width: 767px) { + margin-top: 16px; + + .com-card-link { + display: block; + margin-bottom: 12px; + + &:last-child { + margin-bottom: 0; + } } } } } } } - } - - // Single card layout - remove gap and control spacing precisely - &.single-card .bottom-cards-section.bug-bounty.section-padding { - gap: 0 !important; - } - &.single-card { - .bug-bounty-card-bg-2 { - @media (max-width: 767px) { - content: url("../img/community/bug-bounty-card-bg-2-mobile.png"); + + // Single card layout - remove gap and control spacing precisely + &.single-card .bottom-cards-section.bug-bounty.section-padding { + gap: 0 !important; + } + &.single-card { + .bug-bounty-card-bg-2 { + @media (max-width: 767px) { + content: url('../img/community/bug-bounty-card-bg-2-mobile.png'); + } + } + + .com-card { + font-size: 24px; + max-height: 288px !important; + + @media (max-width: 768px) { + min-height: 493px !important; + } + @media (min-width: 768px) { + flex: 1 1 100% !important; + max-width: 100% !important; + min-width: 100% !important; + } + + .bottom-right-img.bug-bounty-card-bg-2 { + height: 714px; + width: auto; + object-fit: cover; + object-position: right bottom; + } + + .card-content { + gap: 0; + + .card-title { + margin-bottom: 24px; + margin-top: 0; + } + + .card-description { + margin-bottom: 24px; + margin-top: 0; + flex-grow: 0; + padding: 0; + } + + .card-links { + margin-top: 0; + margin-bottom: 0; + } + } } } - - .com-card { - font-size: 24px; - max-height: 288px !important; - - @media (max-width: 768px) { - min-height: 493px !important; - } - @media (min-width: 768px) { - flex: 1 1 100% !important; - max-width: 100% !important; - min-width: 100% !important; - } - - .bottom-right-img.bug-bounty-card-bg-2 { - height: 714px ; - width: auto; - object-fit: cover; - object-position: right bottom; - } - - .card-content { - gap: 0; - - .card-title { - margin-bottom: 24px; - margin-top: 0; - } - - .card-description { - margin-bottom: 24px; - margin-top: 0; - flex-grow: 0; - padding: 0; - } - - .card-links { - margin-top: 0; - margin-bottom: 0; - } - } - } - } -} - -.token-utility-section { - padding: 100px 40px; - @media (max-width: 767px) { - padding-bottom: 0px; - } - .section-title { - font-size: 32px; - font-weight: 700; - line-height: 38px; - text-align: start; - margin-bottom: 64px; - color: $white; } - .utility-grid { - display: grid; - grid-template-columns: repeat(4, 1fr); - gap: 40px; - - @media (max-width: 1199px) { - grid-template-columns: repeat(2, 1fr); - } - + .token-utility-section { + padding: 100px 40px; @media (max-width: 767px) { - grid-template-columns: 1fr; + padding-bottom: 0px; } - } - - .utility-card { - - .utility-title { - font-size: 20px; + .section-title { + font-size: 32px; font-weight: 700; - line-height: 26px; - margin-bottom: 16px; + line-height: 38px; + text-align: start; + margin-bottom: 64px; color: $white; } - .utility-description { - font-size: 16px; - line-height: 24px; - color: $gray-200; + .utility-grid { + display: grid; + grid-template-columns: repeat(4, 1fr); + gap: 40px; - a { - color: $blue-purple-400; - text-decoration: none; + @media (max-width: 1199px) { + grid-template-columns: repeat(2, 1fr); + } - &:hover { - text-decoration: underline; + @media (max-width: 767px) { + grid-template-columns: 1fr; + } + } + + .utility-card { + .utility-title { + font-size: 20px; + font-weight: 700; + line-height: 26px; + margin-bottom: 16px; + color: $white; + } + + .utility-description { + font-size: 16px; + line-height: 24px; + color: $gray-200; + + a { + color: $blue-purple-400; + text-decoration: none; + + &:hover { + text-decoration: underline; + } } } } } } -} diff --git a/styles/_print.scss b/styles/_print.scss index 6e79d8afe8..5b42486543 100644 --- a/styles/_print.scss +++ b/styles/_print.scss @@ -1,6 +1,6 @@ /* Print styles ------------------------------------------------------------- */ @media print { - /* undo code tabs */ + /* undo code tabs */ .multicode > div { display: block !important; } @@ -27,19 +27,33 @@ } pre code { white-space: pre-wrap !important; - color: #22252B !important; + color: #22252b !important; } code { white-space: pre-wrap !important; - color: #22252B !important; + color: #22252b !important; } - .codehilite .n, .codehilite .na, .codehilite .nb, .codehilite .nc, .codehilite .nd, .codehilite .ne, .codehilite .nf, .codehilite .ni, .codehilite .nl, .codehilite .nn, .codehilite .nt, .codehilite .nv, .codehilite .nx, .codehilite .bp, .codehilite .fm, .codehilite .py { - color: #22252B; -} + .codehilite .n, + .codehilite .na, + .codehilite .nb, + .codehilite .nc, + .codehilite .nd, + .codehilite .ne, + .codehilite .nf, + .codehilite .ni, + .codehilite .nl, + .codehilite .nn, + .codehilite .nt, + .codehilite .nv, + .codehilite .nx, + .codehilite .bp, + .codehilite .fm, + .codehilite .py { + color: #22252b; + } - - article a[title="Source"] { + article a[title='Source'] { float: none; } /* Drop header, footer, sidebars */ @@ -52,26 +66,38 @@ display: none !important; } /* Full-width content body */ - article, #main_content_body { + article, + #main_content_body { position: static; display: block; width: auto; height: auto; - color:black !important; + color: black !important; max-width: 100%; overflow: visible !important; } - body { - overflow: visible; + body { + overflow: visible; background: #fff; } - h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 { + h1, + h2, + h3, + h4, + h5, + h6, + .h1, + .h2, + .h3, + .h4, + .h5, + .h6 { color: black; } .interactive-block { - display:none; + display: none; } .container { diff --git a/styles/_side-nav.scss b/styles/_side-nav.scss index 7018e8c264..b11957ff06 100644 --- a/styles/_side-nav.scss +++ b/styles/_side-nav.scss @@ -52,7 +52,6 @@ aside .active-parent > a { } .dactyl-tree-nav { - nav { margin-left: 1rem; padding-left: 0; @@ -95,7 +94,7 @@ aside .active-parent > a { } > .nav-item { - padding: .5rem 0; + padding: 0.5rem 0; font-size: 1.125rem; > .nav-link { @@ -109,10 +108,8 @@ aside .active-parent > a { } } - /* Right navigation --------------------------------------------------------- */ - .toc-header { font-weight: bold; font-size: 14px; @@ -150,13 +147,13 @@ aside .active-parent > a { padding: 0; &.separator { - padding: .25rem 1rem; + padding: 0.25rem 1rem; } a { display: block; margin-top: 5px; - padding: .25rem 1rem; + padding: 0.25rem 1rem; font-size: 0.9rem; &:hover, @@ -187,11 +184,11 @@ aside .active-parent > a { } } - &.no-sideline { border-left: 0; - a:hover, a.active { + a:hover, + a.active { border-left: 0; margin-left: 0; } diff --git a/styles/_status-labels.scss b/styles/_status-labels.scss index 3ddbd79790..d11e64c559 100644 --- a/styles/_status-labels.scss +++ b/styles/_status-labels.scss @@ -19,7 +19,7 @@ .labels-wrap { ul::before { - content: "\f02c"; + content: '\f02c'; font-family: FontAwesome; font-size: 1.5rem; } @@ -31,7 +31,7 @@ color: $gray-400; &::after { - content: "\f105"; /* fontawesome angle-right */ + content: '\f105'; /* fontawesome angle-right */ font-family: FontAwesome; padding-left: 5px; } @@ -40,7 +40,7 @@ .label { border-radius: 100px; border-width: 0; - padding: .5rem 1rem; + padding: 0.5rem 1rem; font-weight: bold; text-decoration: none !important; text-align: center; @@ -361,7 +361,7 @@ &.label-use-interoperability, &.label-use-web_monetization, &.blog-category-gateway_bulletins, - &.chip-purple { + &.chip-purple { @include chip-purple; } diff --git a/styles/_tables.scss b/styles/_tables.scss index 49578f7e51..cb5967afc1 100644 --- a/styles/_tables.scss +++ b/styles/_tables.scss @@ -17,7 +17,8 @@ article table { border-bottom: 1px solid $gray-200; } - th, td { + th, + td { padding: 0.2em; vertical-align: text-top; } @@ -28,13 +29,14 @@ article table { } .landing-table { - th, tr { + th, + tr { border-bottom: 2px solid $gray-600; } td { width: 33.33%; padding: 16px 40px 16px 0; - &:nth-child(1){ + &:nth-child(1) { font-weight: normal; } @include media-breakpoint-down(sm) { @@ -49,15 +51,14 @@ article table { } } - .dblue { color: $gray-600; } #overview-table { - td:nth-child(1){ + td:nth-child(1) { width: 40%; } - td:nth-child(2){ + td:nth-child(2) { width: 30%; } tbody td { diff --git a/styles/_top-banner.scss b/styles/_top-banner.scss index 0cb8077b70..790f8e9014 100644 --- a/styles/_top-banner.scss +++ b/styles/_top-banner.scss @@ -3,41 +3,41 @@ display: flex; justify-content: space-between; height: $banner-height; - background: #32E685 !important; + background: #32e685 !important; padding: 7px 35px; - font-family: "Space Grotesk"; + font-family: 'Space Grotesk'; z-index: 10; cursor: pointer; - + &:hover { text-decoration: none; color: $white; - .button-icon{ + .button-icon { animation: iconJitter 0.7s cubic-bezier(0.16, 1, 0.3, 1) forwards; transition: transform 0.7s cubic-bezier(0.16, 1, 0.3, 1); } } color: $black !important; text-align: center; - font-family: "Space Grotesk"; + font-family: 'Space Grotesk'; font-size: 26px; // Further scaled down from 28px font-style: normal; font-weight: 600; letter-spacing: -0.32px; // Pseudo-element for the fill animation &::after { - content: ""; + content: ''; position: absolute; top: 0; left: 0; width: 100%; // Full width so that we can scale it height: 100%; - background-color: #E0E500; + background-color: #e0e500; z-index: 0; - transform: scaleX(0); // Start scaled down to 0 - transform-origin: left; // Scale from the left edge + transform: scaleX(0); // Start scaled down to 0 + transform-origin: left; // Scale from the left edge transition: transform 0.7s cubic-bezier(0.7, 0, 0.84, 0); - will-change: transform; // Hint for smoother animations + will-change: transform; // Hint for smoother animations } // On hover, scale to full width @@ -53,43 +53,43 @@ @media (max-width: 768px) { font-size: 18px; padding: 11px 35px; - .banner-button{ + .banner-button { gap: 11px !important; } - .button-text{ + .button-text { margin-bottom: 4px; } } @media (max-width: 564px) { font-size: 15px; padding: 9px 40px; - .button-text{ + .button-text { margin-bottom: 0px; } - .banner-event-details{ + .banner-event-details { gap: 0px !important; flex-direction: column; text-align: left; line-height: 21px; - .event-date{ + .event-date { position: relative; top: -5px; } } - .banner-button{ + .banner-button { align-self: baseline; gap: 8px !important; margin-top: -2px !important; padding-top: 0px !important; } } - .banner-button{ + .banner-button { display: flex; align-items: center; gap: 14.5px; padding-top: 1px; - img{ - width: 24.5px; + img { + width: 24.5px; height: 33.7px; @media (max-width: 768px) { width: 15.5px; @@ -108,7 +108,6 @@ gap: 32px; } - .button-icon { transform-style: preserve-3d; aspect-ratio: 0.71; @@ -129,7 +128,6 @@ transform: translate3d(0, 0, 0) scale3d(1, 1, 1) rotateZ(45deg) skew(0deg, 0deg); } } - } .web-banner a { @@ -153,4 +151,4 @@ .web-banner.has-hover:not(:hover) .button-icon { animation: iconReturn 0.7s ease-in-out forwards; transition: transform 0.7s cubic-bezier(0.16, 1, 0.3, 1); -} \ No newline at end of file +} diff --git a/styles/_top-nav.scss b/styles/_top-nav.scss index 4003acc399..75fd82110c 100644 --- a/styles/_top-nav.scss +++ b/styles/_top-nav.scss @@ -2,7 +2,7 @@ $nav-height: 80px; $banner-height: 0; // Currently no pencil banner. -[data-component-name="layouts/RootLayout"] { +[data-component-name='layouts/RootLayout'] { padding-top: $nav-height + $banner-height; } @@ -14,8 +14,12 @@ $banner-height: 0; // Currently no pencil banner. .navbar-brand { text-decoration: none; white-space: pre; - -webkit-transition: opacity 0.2s ease, color 0.2s ease; - transition: opacity 0.2s ease, color 0.2s ease; + -webkit-transition: + opacity 0.2s ease, + color 0.2s ease; + transition: + opacity 0.2s ease, + color 0.2s ease; padding-left: 2rem; .logo { @@ -347,7 +351,7 @@ $banner-height: 0; // Currently no pencil banner. &::before, div { position: absolute; - content: " "; + content: ' '; background-color: $gray-100; display: block; width: 100%; @@ -389,7 +393,7 @@ $banner-height: 0; // Currently no pencil banner. } #topnav-search { - [data-component-name="Search/SearchTrigger"] { + [data-component-name='Search/SearchTrigger'] { cursor: pointer; } } @@ -441,18 +445,15 @@ $banner-height: 0; // Currently no pencil banner. } // "Docs" dropdown placement (mobile) - .col-for-document_types - { + .col-for-document_types { grid-column: 1; grid-row: 2; } - .col-for-use_cases - { + .col-for-use_cases { grid-column: 2; grid-row: 2; } - .col-for-get_started - { + .col-for-get_started { grid-column: 1 / 3; grid-row: 4; margin: -1px; @@ -490,12 +491,12 @@ $banner-height: 0; // Currently no pencil banner. } &::before { - content: "\f053"; // < chevron + content: '\f053'; // < chevron display: inline-block; margin-bottom: -5px; // fix weird placement on Chrome } &::after { - content: "\f054"; // > chevron + content: '\f054'; // > chevron position: absolute; right: 2rem; } @@ -570,7 +571,6 @@ $banner-height: 0; // Currently no pencil banner. right: 26px; } } // end mobile specific styles ---------------------------------------------- - } // Fix so anchors don't jump under the fixed header ---------------------------- @@ -582,7 +582,7 @@ article h5:before, article h6:before, .interactive-block:before { display: block; - content: " "; + content: ' '; margin-top: -24px; height: 60px; visibility: hidden; diff --git a/styles/_use-cases.scss b/styles/_use-cases.scss index bdb331cecd..83e339b917 100644 --- a/styles/_use-cases.scss +++ b/styles/_use-cases.scss @@ -1,18 +1,18 @@ /* Use Cases ---------------------------------------------------------------- */ // Define each category's logos -$infrastructure-logos: "xrp-ledger", "gatehub", "towolabs", "xrpscan", "xrp-toolkit", "bithomp", "onthedex"; -$developer-tooling-logos: "cryptum", "evernode", "threezy", "tokenize"; -$interoperability-logos: "multichain"; -$wallet-logos: "crossmark", "edge", "gem-wallet", "xumm", "joey-wallet"; -$nfts-logos: "aesthetes", "audiotarky", "nftmaster", "peerkat", "sologenic_dex", "xrp-cafe", "xrp-oval"; -$exchanges-logos: "sologenic_dex", "xpmarket", "orchestra-finance", "moai-finance", "first-ledger-bot"; -$gaming-logos: "forte", "ledger-city", "futureverse", "zerpmon"; -$security-logos: "anchain"; -$payments-logos: "ripple", "supermojo"; -$cbdc-logos: "ripple"; -$carbon-markets-logos: "carbonland-trust"; -$custody-logos: "gatehub", "bitgo"; +$infrastructure-logos: 'xrp-ledger', 'gatehub', 'towolabs', 'xrpscan', 'xrp-toolkit', 'bithomp', 'onthedex'; +$developer-tooling-logos: 'cryptum', 'evernode', 'threezy', 'tokenize'; +$interoperability-logos: 'multichain'; +$wallet-logos: 'crossmark', 'edge', 'gem-wallet', 'xumm', 'joey-wallet'; +$nfts-logos: 'aesthetes', 'audiotarky', 'nftmaster', 'peerkat', 'sologenic_dex', 'xrp-cafe', 'xrp-oval'; +$exchanges-logos: 'sologenic_dex', 'xpmarket', 'orchestra-finance', 'moai-finance', 'first-ledger-bot'; +$gaming-logos: 'forte', 'ledger-city', 'futureverse', 'zerpmon'; +$security-logos: 'anchain'; +$payments-logos: 'ripple', 'supermojo'; +$cbdc-logos: 'ripple'; +$carbon-markets-logos: 'carbonland-trust'; +$custody-logos: 'gatehub', 'bitgo'; // Create a mixin to handle the common logic @mixin create-logo-classes($logo-list) { @@ -48,19 +48,19 @@ $custody-logos: "gatehub", "bitgo"; min-height: 100px !important; position: relative; bottom: 20px; - content: url("../img/uses/first-ledger-bot.svg"); + content: url('../img/uses/first-ledger-bot.svg'); } .orchestra-finance { min-height: 56px !important; - content: url("../img/uses/orchestra-finance.svg"); + content: url('../img/uses/orchestra-finance.svg'); } .moai-finance { min-height: 100px !important; position: relative; bottom: 20px; - content: url("../img/uses/moai-finance.svg"); + content: url('../img/uses/moai-finance.svg'); } .ledger-city { @@ -77,7 +77,7 @@ $custody-logos: "gatehub", "bitgo"; min-height: 84px; position: relative; bottom: 13px; - content: url("../img/uses/zerpmon.png") !important; + content: url('../img/uses/zerpmon.png') !important; } } @@ -85,10 +85,9 @@ $custody-logos: "gatehub", "bitgo"; #threezy { .biz-logo { max-height: 40px; - content: url("../img/uses/modallogos/threezy.png"); + content: url('../img/uses/modallogos/threezy.png'); } } - } html.light { @@ -226,18 +225,13 @@ html.light { } .modal-content-uses::before { - content: ""; + content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 1px; - background: linear-gradient(90deg, - #b480ff -0.32%, - #5f00e6 32.7%, - #1aa4ff 61.53%, - #19ff83 100.32%, - #19ff83 100.32%); + background: linear-gradient(90deg, #b480ff -0.32%, #5f00e6 32.7%, #1aa4ff 61.53%, #19ff83 100.32%, #19ff83 100.32%); } .content-section { @@ -253,7 +247,7 @@ html.light { } .section-text-title { - font-family: "Work Sans"; + font-family: 'Work Sans'; font-style: normal; font-weight: 500; font-size: 24px; @@ -264,7 +258,7 @@ html.light { .section-text-description { max-width: 320px; - font-family: "Work Sans"; + font-family: 'Work Sans'; font-style: normal; font-weight: 400; font-size: 16px; @@ -277,7 +271,7 @@ html.light { position: relative; top: 17px; left: 50px; - font-family: "Work Sans"; + font-family: 'Work Sans'; font-style: normal; font-weight: 600; font-size: 12px; @@ -298,7 +292,7 @@ html.light { } .explore-projects { - font-family: "Work Sans"; + font-family: 'Work Sans'; font-style: normal; font-weight: 600; font-size: 12px; @@ -450,7 +444,7 @@ html.light { } .circle-text { - font-family: "Work Sans"; + font-family: 'Work Sans'; font-style: normal; font-weight: 700; white-space: nowrap; @@ -484,16 +478,12 @@ html.light { display: block; width: 100%; text-align: left; - font-family: "Work Sans"; + font-family: 'Work Sans'; font-style: normal; font-weight: 400; font-size: 32px; line-height: 38px; - background: linear-gradient(90deg, - #feff01 0%, - #ff2d9a 30.82%, - #e24cff 64.01%, - #9a52ff 100%); + background: linear-gradient(90deg, #feff01 0%, #ff2d9a 30.82%, #e24cff 64.01%, #9a52ff 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; @@ -533,7 +523,7 @@ html.light { position: relative; top: 17px; left: 50px; - font-family: "Work Sans"; + font-family: 'Work Sans'; font-style: normal; font-weight: 600; font-size: 12px; @@ -545,16 +535,12 @@ html.light { display: block; width: 100%; text-align: left; - font-family: "Work Sans"; + font-family: 'Work Sans'; font-style: normal; font-weight: 400; font-size: 32px; line-height: 38px; - background: linear-gradient(90deg, - #b480ff -0.32%, - #5f00e6 32.7%, - #1aa4ff 61.53%, - #19ff83 100.32%); + background: linear-gradient(90deg, #b480ff -0.32%, #5f00e6 32.7%, #1aa4ff 61.53%, #19ff83 100.32%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; @@ -588,7 +574,7 @@ html.light { } .pill-number { - font-family: "Work Sans"; + font-family: 'Work Sans'; font-style: normal; font-weight: 600; font-size: 22.1452px; @@ -640,7 +626,7 @@ html.light { } .related-tasks-links a::after { - content: " ➝"; + content: ' ➝'; padding-left: 0; transition: all 0.2s ease-in-out; } @@ -688,7 +674,7 @@ html.light { width: 100%; height: 250px; border-radius: 8px; - background: linear-gradient(88deg, #9A52FF -14.32%, #32E685 45.35%, #19A3FF 100.76%); + background: linear-gradient(88deg, #9a52ff -14.32%, #32e685 45.35%, #19a3ff 100.76%); padding: 4rem 2rem; display: grid; grid-template-columns: repeat(4, 1fr); @@ -712,7 +698,6 @@ html.light { padding-top: 2rem; border-bottom: 2px solid black; } - } .stat-container:last-child { @@ -728,8 +713,6 @@ html.light { font-weight: 400; } - - .video-external-link .link-text { margin-left: 0.25rem; } @@ -742,7 +725,7 @@ html.light { align-self: stretch; height: 0.25rem; border-radius: 2rem; - background: var(--Gradient-3, linear-gradient(90deg, #FEFF01 0%, #FF2D9A 30.82%, #E24CFF 64.01%, #9A52FF 100%)); + background: var(--Gradient-3, linear-gradient(90deg, #feff01 0%, #ff2d9a 30.82%, #e24cff 64.01%, #9a52ff 100%)); } .project-cards-container { @@ -773,11 +756,11 @@ html.light { } .project-cards .col.odd::before { - background: linear-gradient(90deg, #D91AFF 26.41%, #1AA4FF 100.32%); + background: linear-gradient(90deg, #d91aff 26.41%, #1aa4ff 100.32%); } .project-cards .col.even::before { - background: linear-gradient(90deg, #4BB7FF -0.32%, #32E685 30.61%); + background: linear-gradient(90deg, #4bb7ff -0.32%, #32e685 30.61%); } .project-cards .project-logo { @@ -795,47 +778,47 @@ html.light { } .amy { - content: url("../img/logos/amy.svg"); + content: url('../img/logos/amy.svg'); } .carbonland { - content: url("../img/logos/carbonland.svg"); + content: url('../img/logos/carbonland.svg'); } .evernode { - content: url("../img/logos/evernode.svg"); + content: url('../img/logos/evernode.svg'); } .nautilus { - content: url("../img/logos/nautilus.svg"); + content: url('../img/logos/nautilus.svg'); } .onXRP { - content: url("../img/logos/onXRP.svg"); + content: url('../img/logos/onXRP.svg'); } .raised-in-space { - content: url("../img/logos/raised-in-space.svg"); + content: url('../img/logos/raised-in-space.svg'); } .sologenic { - content: url("../img/logos/sologenic.svg"); + content: url('../img/logos/sologenic.svg'); } .xaman { - content: url("../img/logos/xaman-labs.svg"); + content: url('../img/logos/xaman-labs.svg'); } .xrpcafe { - content: url("../img/logos/xrpcafe.svg"); + content: url('../img/logos/xrpcafe.svg'); } .prev img { - content: url("../img/icons/prev.svg"); + content: url('../img/icons/prev.svg'); } .next img { - content: url("../img/icons/prev.svg"); + content: url('../img/icons/prev.svg'); transform: scaleX(-1); } @@ -851,12 +834,12 @@ html.light { } .next.hover-color:hover img { - content: url("../img/icons/next-purple.svg"); + content: url('../img/icons/next-purple.svg'); transform: scaleX(1); } .prev.hover-color:hover img { - content: url("../img/icons/next-purple.svg"); + content: url('../img/icons/next-purple.svg'); transform: scaleX(-1); } @@ -882,7 +865,7 @@ html.light { left: 0; width: 50px; height: 4px; - background-color: #32E685; + background-color: #32e685; } .project-cards a, @@ -907,15 +890,15 @@ html.light { width: 100%; &:nth-child(1) .article-card-background { - background-image: linear-gradient(86deg, #B20058 -21.16%, #E24CFF 31.78%, #9A52FF 101.64%); + background-image: linear-gradient(86deg, #b20058 -21.16%, #e24cff 31.78%, #9a52ff 101.64%); } &:nth-child(2) .article-card-background { - background-image: linear-gradient(22deg, #B480FF -6.54%, #5F00E5 50.87%, #1AA4FF 114.16%); + background-image: linear-gradient(22deg, #b480ff -6.54%, #5f00e5 50.87%, #1aa4ff 114.16%); } &:nth-child(3) .article-card-background { - background-image: linear-gradient(162deg, #B480FF -11.11%, #1AA4FF 56.26%, #2DCF78 112.84%); + background-image: linear-gradient(162deg, #b480ff -11.11%, #1aa4ff 56.26%, #2dcf78 112.84%); } } @@ -959,20 +942,20 @@ body, max-width: 1280px; margin: 0 auto; padding: 80px 0px; - + @include media-breakpoint-down(lg) { gap: 60px; max-width: 942px; padding: 80px 0px; } - + @include media-breakpoint-down(md) { flex-direction: column; gap: 32px; max-width: 608px; padding: 60px 0px; } - + @include media-breakpoint-down(sm) { padding: 40px 0px; } @@ -990,23 +973,23 @@ body, max-height: 560px; border-radius: 12px; box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1); - + @include media-breakpoint-down(lg) { min-height: 350px; max-height: 450px; } - + @include media-breakpoint-down(md) { min-height: 300px; max-height: 400px; } - + @include media-breakpoint-down(sm) { min-height: 250px; max-height: 350px; } } - + @include media-breakpoint-down(md) { width: 100%; } @@ -1022,7 +1005,7 @@ body, font-size: 18px; font-style: normal; font-weight: 700; - + @include media-breakpoint-down(sm) { font-size: 16px; } @@ -1031,7 +1014,7 @@ body, font-size: 42px; font-style: normal; font-weight: 700; - + @include media-breakpoint-down(sm) { font-size: 32px; } @@ -1041,13 +1024,13 @@ body, font-size: 24px; font-style: normal; font-weight: 400; - + @include media-breakpoint-down(sm) { font-size: 18px; } } } - + @include media-breakpoint-down(md) { width: 100%; } @@ -1063,8 +1046,8 @@ body, background-color: transparent; white-space: normal; box-sizing: border-box; - .card-title{ - margin-bottom: 16px; + .card-title { + margin-bottom: 16px; } } @@ -1115,7 +1098,7 @@ body, .security-card-grid-3 { gap: 2.5rem; /* 40px gap for 3-column layout */ - + @media (min-width: 1200px) { grid-template-columns: repeat(3, 1fr); } @@ -1150,7 +1133,7 @@ body, strong { display: block; margin-bottom: 4px; - color: #E0E0E1; + color: #e0e0e1; font-size: 16px; font-style: normal; font-weight: 400; @@ -1159,7 +1142,7 @@ body, .advantage-description { display: block; - color: #E0E0E1; + color: #e0e0e1; font-size: 16px; font-style: normal; font-weight: 400; @@ -1169,7 +1152,7 @@ body, /* Card title typography for bullet version */ .security-card .card-title { - color: var(--Black-Black-0, #FFF); + color: var(--Black-Black-0, #fff); font-size: 18px; font-style: normal; font-weight: 700; @@ -1208,18 +1191,18 @@ body, padding: 32px; .project-description { text-align: left; /* Changed from center to left */ - + .first-word { - color: #FFF; + color: #fff; font-size: 16px; font-style: normal; font-weight: 700; line-height: 24px; /* 150% */ } - + .rest-text { - color: var(--XRPL-Primary-White, #FFF); - font-family: "Work Sans"; + color: var(--XRPL-Primary-White, #fff); + font-family: 'Work Sans'; font-size: 16px; font-style: normal; font-weight: 400; @@ -1241,37 +1224,37 @@ body, /* Stablecoin images */ .project-logo { - margin-Bottom: 32px; + margin-bottom: 32px; img.ripple-usd { content: url('../img/uses/payments/rlusd.png'); width: 180px; height: 50px; } - + img.usdc { content: url('../img/uses/payments/usdc.png'); width: 50px; height: 50px; } - + img.usdb { content: url('../img/uses/payments/usdb.png'); width: 126px; height: 50px; } - + img.europ { content: url('../img/uses/payments/eroup.png'); width: 147px; height: 50px; } - + img.xsgd { content: url('../img/uses/payments/XSGD.png'); width: 50px; height: 50px; } - + img.audd { content: url('../img/uses/payments/AUDD.png'); width: 50px; @@ -1281,11 +1264,11 @@ body, /* Alternating gradients for payments page */ &.odd::before { - background: linear-gradient(90deg, #D91AFF 26.41%, #1AA4FF 100.32%); + background: linear-gradient(90deg, #d91aff 26.41%, #1aa4ff 100.32%); } &.even::before { - background: linear-gradient(90deg, #4BB7FF -0.32%, #32E685 30.61%); + background: linear-gradient(90deg, #4bb7ff -0.32%, #32e685 30.61%); } } @@ -1294,22 +1277,22 @@ body, h4.eyebrow { font-size: 28px !important; } - + .payments-project-card { /* Override styles for battle-tested cards */ min-height: 384px; display: flex; flex-direction: column; - + .project-logo img { /* Battle-tested company logos */ - + &.coinpayments { content: url('../img/uses/payments/coinpayments.png'); width: 99px; height: 60px; } - + &.ripple { content: url('../img/uses/payments/ripple-white.png'); width: 100px; @@ -1317,26 +1300,26 @@ body, margin-bottom: 11px; margin-top: 19px; } - + &.friipay { content: url('../img/uses/payments/friipay.png'); width: 60px; - height: 60px; + height: 60px; } } - + .project-description { flex-grow: 1; } - + .project-button { margin-top: auto; padding-top: 32px; display: flex; justify-content: center; - + .battle-tested-arrow { - color: #9A52FF; + color: #9a52ff; font-size: 16px; font-style: normal; font-weight: 700; @@ -1345,7 +1328,7 @@ body, display: inline-flex; align-items: center; background: none !important; - + &::after { position: relative; top: -1px; @@ -1356,16 +1339,16 @@ body, width: 16px; height: 16px; } - + &:hover { text-decoration: none; background: none !important; - + &::after { transform: translateX(4px); } } - + &:focus { background: none !important; outline: none; @@ -1381,56 +1364,56 @@ body, padding: 120px 0; /* Slightly less padding than default 180px */ max-width: 1280px; margin: 0 auto; - + @include media-breakpoint-down(lg) { max-width: 942px; } - + @include media-breakpoint-down(md) { max-width: 608px; } - - .container{ + + .container { padding: 0; } - .feature-item__title{ + .feature-item__title { font-size: 16px; font-weight: 400; - color: #FFF + color: #fff; } } - + .developer-tools__header { margin-bottom: 80px; - + &.text-center { text-align: center; } } - + .developer-tools__title { font-size: 28px; font-weight: 700; margin-bottom: 0; text-align: left; } - + /* Two-column layout with 48px gap */ .row { gap: 48px; margin: 0; display: flex; flex-wrap: wrap; - + @media (max-width: 991px) { flex-direction: column; gap: 32px; } - + .col-lg-6 { padding: 0; flex: 1; - + @media (max-width: 991px) { flex: none; width: 100%; @@ -1441,59 +1424,59 @@ body, /* Integration column styling */ .integration-column { padding: 0px; - + .integration-column__title { - color: #FFF; + color: #fff; font-size: 20px; font-weight: 700; margin-bottom: 0px; } - + .integration-column__subtitle { - color: #E0E0E1; + color: #e0e0e1; font-size: 16px; font-weight: 400; line-height: 150%; margin-bottom: 32px; } - + .developer-tools__list { margin-top: 0; } } - + /* Responsive adjustments */ @media (max-width: 991px) { .developer-tools { padding: 80px 0; } - + .developer-tools__header { margin-bottom: 60px; } - + .integration-column { padding: 0; margin-bottom: 40px; } - + .col-lg-6:last-child .integration-column { margin-bottom: 0; } } - + @media (max-width: 767px) { .developer-tools { padding: 60px 20px; } - + .developer-tools__header { margin-bottom: 40px; } - + .developer-tools__title { font-size: 24px; text-align: center; } } -} \ No newline at end of file +} diff --git a/styles/_video.scss b/styles/_video.scss index 80eb05710c..aaa2683ed8 100644 --- a/styles/_video.scss +++ b/styles/_video.scss @@ -11,15 +11,15 @@ } #video-overlay { - position:fixed; - top:0; - left:0; - z-index:1190; - height:100%; - width:100%; - background:#ffffff; - opacity:0.6; - display:none; + position: fixed; + top: 0; + left: 0; + z-index: 1190; + height: 100%; + width: 100%; + background: #ffffff; + opacity: 0.6; + display: none; } #video { @@ -70,7 +70,7 @@ font-weight: 600; &::after { - content: "\00a0"; + content: '\00a0'; background-image: url(../img/icons/arrow-up-right.svg); background-repeat: no-repeat; display: inline-block; @@ -86,7 +86,7 @@ } } -.video-title{ +.video-title { line-height: 1.2; @include media-breakpoint-up(md) { diff --git a/styles/light/_light-theme.scss b/styles/light/_light-theme.scss index eef3aed94c..46edbd8282 100644 --- a/styles/light/_light-theme.scss +++ b/styles/light/_light-theme.scss @@ -1,9 +1,8 @@ // General color elements ------------------------------------------------------ article { - p code, table code, - li>code { + li > code { background-color: $gray-200; color: $gray-900; } @@ -40,7 +39,10 @@ h6, &.green-500 { color: $green-700; - text-shadow: white 0 0 2px, white -1px -1px 2px, white 1px 1px 2px; + text-shadow: + white 0 0 2px, + white -1px -1px 2px, + white 1px 1px 2px; } } @@ -74,7 +76,7 @@ h6, } .arrow-link::after { - content: url("../img/lightmode/icon-long-arrow.svg"); + content: url('../img/lightmode/icon-long-arrow.svg'); } // Forms and inputs ------------------------------------------------------------ @@ -117,7 +119,7 @@ h6, background-color: $light-form-bg; } -[data-component-name="Search/SearchIcon"]>path { +[data-component-name='Search/SearchIcon'] > path { fill: black; } @@ -125,7 +127,7 @@ h6, a, nav a, -a:not([role="button"]) { +a:not([role='button']) { color: $light-fg; &.btn-primary { @@ -204,11 +206,11 @@ article a.button, } // nav "hero" images - #dropdown-hero-for-docs>img { + #dropdown-hero-for-docs > img { content: url(../img/icons/lightmode/docs.svg); } - #dropdown-hero-for-community>img { + #dropdown-hero-for-community > img { content: url(../img/icons/lightmode/contribute.svg); } @@ -223,7 +225,7 @@ article a.button, } .dropdown-item.dropdown-hero { - >img { + > img { background-color: $gray-050; } @@ -253,7 +255,6 @@ article a.button, @include media-breakpoint-down(md) { .navbar-toggler { .navbar-toggler-icon { - &::after, &::before, div { @@ -263,7 +264,7 @@ article a.button, } .navbar-nav .nav-link, - .navbar-collapse>.nav-item { + .navbar-collapse > .nav-item { background: $gray-200; } @@ -287,8 +288,8 @@ aside a:hover, aside .sidenav_cat_title:hover, aside a.active, aside a.active:hover, -aside .active>a, -aside .active>a:hover { +aside .active > a, +aside .active > a:hover { color: $light-link-hover-color; } @@ -301,7 +302,7 @@ aside .active>a:hover { border-left-color: $light-link-hover-color; } - .active>.nav-link { + .active > .nav-link { border-left-color: $light-link-hover-color; } } @@ -316,7 +317,6 @@ aside .active>a:hover { } li a { - &:hover, .active { border-left-color: $light-link-hover-color; @@ -332,9 +332,16 @@ aside .active>a:hover { } .copyright-license { - text-shadow: white 0px 0px 2px, white 1px 1px 2px, white 2px 2px 3px, - white 2px 2px 4px, white 2px 2px 5px, white 2px 2px 6px, white -1px -1px 2px, - white -2px -2px 3px, white -2px -2px 4px; + text-shadow: + white 0px 0px 2px, + white 1px 1px 2px, + white 2px 2px 3px, + white 2px 2px 4px, + white 2px 2px 5px, + white 2px 2px 6px, + white -1px -1px 2px, + white -2px -2px 3px, + white -2px -2px 4px; } // Osano cookie consent overrides @@ -381,7 +388,7 @@ aside .card { color: $light-fg; box-shadow: $light-box-shadow; - >h4 a.expander:hover { + > h4 a.expander:hover { color: $light-fg; } } @@ -389,7 +396,7 @@ aside .card { .page-community { .com-card { - background: #FFFFFF; + background: #ffffff; } .project-description { @@ -397,11 +404,11 @@ aside .card { } #platform-stack-overflow { - content: url("../img/logos/lightmode/stack-overflow.svg"); + content: url('../img/logos/lightmode/stack-overflow.svg'); } #platform-discord { - content: url("../img/logos/lightmode/discord.svg"); + content: url('../img/logos/lightmode/discord.svg'); } } @@ -424,7 +431,7 @@ aside .card { .circled-logo { background-color: $gray-200; - img[src="assets/img/logos/globe.svg"] { + img[src='assets/img/logos/globe.svg'] { filter: invert(100%); } } @@ -440,7 +447,7 @@ aside .card { .devportal-callout.注意 { border-color: $yellow-700; - >strong:first-child::before { + > strong:first-child::before { color: $yellow-700; } } @@ -449,7 +456,7 @@ aside .card { .devportal-callout.ヒント { border-color: $green-600; - >strong:first-child::before { + > strong:first-child::before { color: $green-600; } } @@ -519,16 +526,13 @@ pre { // Homepage .page-home { #home-hero-graphic { - content: url("../img/lightmode/home-hero.svg"); + content: url('../img/lightmode/home-hero.svg'); } #benefits-list { - @each $benefit in "public", "streamlined", "performance", "low-cost", - "community", "reliability" - - { + @each $benefit in 'public', 'streamlined', 'performance', 'low-cost', 'community', 'reliability' { ##{$benefit} { - content: url("../img/icons/lightmode/#{$benefit}.svg"); + content: url('../img/icons/lightmode/#{$benefit}.svg'); } } } @@ -536,64 +540,63 @@ pre { // XRPL Overview #validator-graphic { - content: url("../img/lightmode/validators.svg"); + content: url('../img/lightmode/validators.svg'); } // XRP Overview #wallets { #wallet-xumm { - content: url("../img/wallets/lightmode/xumm.svg"); + content: url('../img/wallets/lightmode/xumm.svg'); } #wallet-bitfrost { - content: url("../img/wallets/lightmode/bitfrost.png"); + content: url('../img/wallets/lightmode/bitfrost.png'); } #wallet-towo { - content: url("../img/wallets/lightmode/towo.svg"); + content: url('../img/wallets/lightmode/towo.svg'); } #wallet-keystone { - content: url("../img/wallets/lightmode/keystone.svg"); + content: url('../img/wallets/lightmode/keystone.svg'); } #wallet-dcent { - content: url("../img/wallets/lightmode/dcent.svg"); + content: url('../img/wallets/lightmode/dcent.svg'); } #wallet-coin { - content: url("../img/wallets/lightmode/coin.svg"); + content: url('../img/wallets/lightmode/coin.svg'); } #wallet-gem { - content: url("../img/wallets/lightmode/gem.svg"); + content: url('../img/wallets/lightmode/gem.svg'); } #wallet-crossmark { - content: url("../img/wallets/lightmode/crossmark.png"); + content: url('../img/wallets/lightmode/crossmark.png'); } #wallet-joey { - content: url("../img/wallets/lightmode/joey.svg"); + content: url('../img/wallets/lightmode/joey.svg'); } } - #top-exchanges { // Kraken, eToro are OK on both light and dark // Vector logos - @each $exchange in "bitstamp", "cex-io", "liquid", "bitfinex" { + @each $exchange in 'bitstamp', 'cex-io', 'liquid', 'bitfinex' { #exch-#{$exchange} { - content: url("../img/exchanges/lightmode/#{$exchange}.svg"); + content: url('../img/exchanges/lightmode/#{$exchange}.svg'); } } // PNG logos - @each $exchange in "bittrex", "currency-com", "ftx", "lmax" { + @each $exchange in 'bittrex', 'currency-com', 'ftx', 'lmax' { #exch-#{$exchange} { - content: url("../img/exchanges/lightmode/#{$exchange}.png"); + content: url('../img/exchanges/lightmode/#{$exchange}.png'); } } } @@ -605,7 +608,6 @@ pre { // Use Cases & Featured Projects page .page-uses { - .card-body { background: $white; color: $gray-700; @@ -616,26 +618,11 @@ pre { background-color: $gray-050; } - - - @each $usecase in "infrastructure", - "developer_tooling", - "interoperability", - "wallet", - "nfts", - "exchanges", - "gaming", - "security", - "payments", - "web_monetization", - "sustainability", - "cbdc", - "custody", - "other", - "carbon_markets", - "defi" { + @each $usecase in 'infrastructure', 'developer_tooling', 'interoperability', 'wallet', 'nfts', 'exchanges', 'gaming', 'security', 'payments', + 'web_monetization', 'sustainability', 'cbdc', 'custody', 'other', 'carbon_markets', 'defi' + { ##{$usecase} { - content: url("../img/icons/usecases/lightmode/ic_#{$usecase}.png"); + content: url('../img/icons/usecases/lightmode/ic_#{$usecase}.png'); } } @@ -644,7 +631,7 @@ pre { } .category_count { - background: #D2B2FF; + background: #d2b2ff; color: #350080; } @@ -652,36 +639,39 @@ pre { color: #000; } - @each $company, $type in ('bitgo': 'svg', - 'sologenic-nft': 'svg', - 'carbonland-trust': 'svg', - 'futureverse': 'png', - "moai-finance": "svg", - "orchestra-finance": "svg", - 'x-tokenize': 'svg', - 'casino-coin': 'svg', - 'xrp-cafe': 'svg', - 'coil': 'svg', - 'xrp-toolkit': 'svg', - 'first-ledger-bot': 'svg', - 'cryptum': 'svg', - 'xrpl-org-ledger-explorer': 'svg', - 'evernode': 'svg', - 'xrpl-rosetta': 'svg', - 'ripples-cbdc-platform': 'svg', - 'xrpscan': 'svg', - 'ripples-on-demand-liquidity': 'svg', - 'xumm-wallet': 'svg', - 'sologenic-dex': 'svg', - 'joey-wallet': 'svg', - 'Crossmark': 'png' - - ) { + @each $company, + $type + in ( + 'bitgo': 'svg', + 'sologenic-nft': 'svg', + 'carbonland-trust': 'svg', + 'futureverse': 'png', + 'moai-finance': 'svg', + 'orchestra-finance': 'svg', + 'x-tokenize': 'svg', + 'casino-coin': 'svg', + 'xrp-cafe': 'svg', + 'coil': 'svg', + 'xrp-toolkit': 'svg', + 'first-ledger-bot': 'svg', + 'cryptum': 'svg', + 'xrpl-org-ledger-explorer': 'svg', + 'evernode': 'svg', + 'xrpl-rosetta': 'svg', + 'ripples-cbdc-platform': 'svg', + 'xrpscan': 'svg', + 'ripples-on-demand-liquidity': 'svg', + 'xumm-wallet': 'svg', + 'sologenic-dex': 'svg', + 'joey-wallet': 'svg', + 'Crossmark': 'png' + ) + { #use_case_companies_list { ##{$company} { .biz-logo { max-height: 40px; - content: url("../img/uses/lightmode/#{$company}.#{$type}"); + content: url('../img/uses/lightmode/#{$company}.#{$type}'); } } } @@ -691,24 +681,24 @@ pre { #threezy { .biz-logo { max-height: 40px; - content: url("../img/uses/lightmode/threezy.png"); + content: url('../img/uses/lightmode/threezy.png'); } } } .modal-content-uses { .first-ledger-bot { - content: url("../img/uses/lightmode/first-ledger-bot.svg"); + content: url('../img/uses/lightmode/first-ledger-bot.svg'); } .moai-finance { - content: url("../img/uses/lightmode/moai-finance.svg"); + content: url('../img/uses/lightmode/moai-finance.svg'); } .orchestra-finance { max-height: 52px; margin: 0; - content: url("../img/uses/lightmode/orchestra-finance.svg"); + content: url('../img/uses/lightmode/orchestra-finance.svg'); } } @@ -722,7 +712,6 @@ pre { filter: invert(100%); } } - } .landing-bg { @@ -778,7 +767,6 @@ pre { filter: invert(100%); } } - } // Docs landing page @@ -818,7 +806,6 @@ pre { .project-card { background-color: transparent; - } .card-details { @@ -826,7 +813,7 @@ pre { } .card-image { - background: #E0E0E1; + background: #e0e0e1; } #community-table tr { @@ -876,7 +863,7 @@ pre { } .discord-icon { - content: url(../img/community/ic_discord_light.png) + content: url(../img/community/ic_discord_light.png); } .twitter-icon { @@ -1015,11 +1002,11 @@ $placeholder-color: $gray-600; background: url(../img/events/event-location-light.svg); } - .events-filter[type="checkbox"]::before { + .events-filter[type='checkbox']::before { background-color: $gray-100; } - .events-filter[type="checkbox"]:not(:disabled):checked:hover::after { + .events-filter[type='checkbox']:not(:disabled):checked:hover::after { background-image: url(../img/events/event-check.svg); background-repeat: no-repeat; background-position: center; @@ -1030,34 +1017,28 @@ $placeholder-color: $gray-600; border-radius: 4px; } - .events-filter[type="checkbox"]:not(:disabled):hover::before { + .events-filter[type='checkbox']:not(:disabled):hover::before { background-color: $gray-100; } - .events-filter[type="checkbox"]:not(:disabled):hover::after { + .events-filter[type='checkbox']:not(:disabled):hover::after { background-color: $gray-100; } } .page-ambassadors { #benefits-list { - @each $benefits in "benefits-01", "benefits-02", "benefits-03", - "benefits-04", "benefits-05", "benefits-06" - - { + @each $benefits in 'benefits-01', 'benefits-02', 'benefits-03', 'benefits-04', 'benefits-05', 'benefits-06' { ##{$benefits} { - content: url("../img/ambassadors/lightmode/#{$benefits}.svg"); + content: url('../img/ambassadors/lightmode/#{$benefits}.svg'); } } } #eligibility-list { - @each $eligibility in "eligibility-01", "eligibility-02", "eligibility-03", - "eligibility-04", "eligibility-05" - - { + @each $eligibility in 'eligibility-01', 'eligibility-02', 'eligibility-03', 'eligibility-04', 'eligibility-05' { ##{$eligibility} { - content: url("../img/ambassadors/lightmode/#{$eligibility}.svg"); + content: url('../img/ambassadors/lightmode/#{$eligibility}.svg'); } } } @@ -1065,9 +1046,9 @@ $placeholder-color: $gray-600; .page-funding { .funding-list { - @each $funding in "funding-01", "funding-02", "funding-03", "funding-04" { + @each $funding in 'funding-01', 'funding-02', 'funding-03', 'funding-04' { ##{$funding} { - content: url("../img/funding/lightmode/#{$funding}.svg"); + content: url('../img/funding/lightmode/#{$funding}.svg'); } } } @@ -1078,11 +1059,10 @@ $placeholder-color: $gray-600; } .page-impact { - .connect-list { - @each $connect in "connect-01", "connect-02", "connect-03", "connect-04" { + @each $connect in 'connect-01', 'connect-02', 'connect-03', 'connect-04' { ##{$connect} { - content: url("../img/impact/lightmode/#{$connect}.svg"); + content: url('../img/impact/lightmode/#{$connect}.svg'); } } } @@ -1094,7 +1074,6 @@ $placeholder-color: $gray-600; #map-dark { display: none; } - } main article .card-grid { @@ -1110,11 +1089,18 @@ main article .card-grid { } } -[data-component-name="Footer/Footer"] { - [data-component-name="Footer/FooterColumn"] { - text-shadow: $gray-100 0px 0px 2px, $gray-100 1px 1px 2px, $gray-100 2px 2px 3px, - $gray-100 2px 2px 4px, $gray-100 2px 2px 5px, $gray-100 2px 2px 6px, $gray-100 -1px -1px 2px, - $gray-100 -2px -2px 3px, $gray-100 -2px -2px 4px; +[data-component-name='Footer/Footer'] { + [data-component-name='Footer/FooterColumn'] { + text-shadow: + $gray-100 0px 0px 2px, + $gray-100 1px 1px 2px, + $gray-100 2px 2px 3px, + $gray-100 2px 2px 4px, + $gray-100 2px 2px 5px, + $gray-100 2px 2px 6px, + $gray-100 -1px -1px 2px, + $gray-100 -2px -2px 3px, + $gray-100 -2px -2px 4px; } } @@ -1135,73 +1121,73 @@ main article .card-grid { color: $gray-700; } - .blog-filter[type="checkbox"]::before { + .blog-filter[type='checkbox']::before { background: $gray-100; } - .blog-filter[type="checkbox"]:checked::before { + .blog-filter[type='checkbox']:checked::before { background: $gray-100; } - .blog-filter[type="checkbox"]:not(:disabled):checked:hover::after { + .blog-filter[type='checkbox']:not(:disabled):checked:hover::after { background-image: url(../img/blog/blog-check-light-mode.svg); } - .blog-filter[type="checkbox"]:not(:disabled):hover::before { + .blog-filter[type='checkbox']:not(:disabled):hover::before { background: $gray-100; } - .blog-filter[type="checkbox"]:not(:disabled):hover::after { + .blog-filter[type='checkbox']:not(:disabled):hover::after { background: $gray-100; } .post-date { - text-decoration: overline solid #145C35 10%; + text-decoration: overline solid #145c35 10%; } #general-badge { - background-color: #FFFFFF; + background-color: #ffffff; color: #343437; } #release_notes-badge { - background-color: #32E685; - color: #145C35; + background-color: #32e685; + color: #145c35; } #advisories-badge { - background-color: #FF6719; - color: #4C1A00; + background-color: #ff6719; + color: #4c1a00; } #amendments-badge { - background-color: #FAFF19; - color: #4B4C00; + background-color: #faff19; + color: #4b4c00; } #development-badge { - background-color: #7919FF; - color: #20004C; + background-color: #7919ff; + color: #20004c; } #developer_reflections-badge { - background-color: #19A3FF; - color: #002E4C; + background-color: #19a3ff; + color: #002e4c; } #gateway_bulletins-badge { - background-color: #D919FF; - color: #40004C; + background-color: #d919ff; + color: #40004c; } #features-badge { - background-color: #32E685; - color: #145C35; + background-color: #32e685; + color: #145c35; } #security-badge { - background-color: #FF198B; - color: #4C0026; + background-color: #ff198b; + color: #4c0026; } .dropdown-btn { @@ -1210,7 +1196,7 @@ main article .card-grid { border-color: $gray-200; img { - content: url("../img/icons/lightmode/chevron-arrow-down.svg"); + content: url('../img/icons/lightmode/chevron-arrow-down.svg'); } } @@ -1229,19 +1215,19 @@ main article .card-grid { } .article-card-background { - filter: drop-shadow(0px 1px 18px rgba(24, 24, 24, 0.50)); + filter: drop-shadow(0px 1px 18px rgba(24, 24, 24, 0.5)); } .evernode { - content: url("../img/logos/evernode.svg"); + content: url('../img/logos/evernode.svg'); } .prev img { - content: url("../img/icons/prev_light.svg"); + content: url('../img/icons/prev_light.svg'); } .next img { - content: url("../img/icons/prev_light.svg"); + content: url('../img/icons/prev_light.svg'); transform: scaleX(-1); } @@ -1255,13 +1241,13 @@ main article .card-grid { color: $black; } .utility-card { - .utility-title{ - color: $black; + .utility-title { + color: $black; + } + .utility-description { + color: $black; + } } - .utility-description { - color: $black; - } - } $icons: ( 'low-fees': '../img/tokenization/lightmode/low-fees.png', 'access': '../img/tokenization/lightmode/cross-chain.png', @@ -1274,7 +1260,6 @@ main article .card-grid { background-image: url(#{$path}); } } - $company-logos-light: ( 'open-eden': '../img/tokenization/lightmode/open-eden.png', @@ -1295,16 +1280,16 @@ main article .card-grid { } .token-features-section { .btn-link { - color: #7919FF; + color: #7919ff; } } .card-description { a { - color: #7919FF !important; + color: #7919ff !important; } } .developer-tools__image { - background-image: url("../img/tokenization/lightmode/graphic.png"); + background-image: url('../img/tokenization/lightmode/graphic.png'); } .right-arrow-item::after { content: url('../img/icons/lightmode/arrow-right-purple.svg'); @@ -1320,7 +1305,7 @@ main article .card-grid { } .benefit-card { - background: #FFF; + background: #fff; .benefit-title { color: var(--XRPL-Primary-Black, #000); @@ -1355,7 +1340,7 @@ main article .card-grid { color: var(--XRPL-Black-Black-80, #232325); } .com-card-link { - color: #7919FF !important; + color: #7919ff !important; } } @@ -1373,61 +1358,61 @@ main article .card-grid { } */ .use-case-payments { - .payments-integration-section{ - .integration-column__title{ - color: var(--XRPL-Primary-Black, #000); + .payments-integration-section { + .integration-column__title { + color: var(--XRPL-Primary-Black, #000); + } + .integration-column__subtitle { + color: var(--XRPL-Black-Black-80, #232325); + } + .feature-item__title { + color: var(--XRPL-Primary-Black, #000); + } + .feature-item__divider { + background-color: #000; + } } - .integration-column__subtitle{ - color: var(--XRPL-Black-Black-80, #232325); - } - .feature-item__title{ - color: var(--XRPL-Primary-Black, #000); - } - .feature-item__divider{ - background-color: #000; - } -} .payments-project-card { - background: #FFF; - box-shadow: none; - .first-word{ - color: var(--XRPL-Black-Black-80, #232325); - } - .rest-text{ - color: var(--XRPL-Black-Black-80, #232325); - } - - /* Light mode payment logos */ - .project-logo { - img.ripple-usd { - content: url('../img/uses/lightmode/payments/rlusd.png'); - } - - img.usdc { - content: url('../img/uses/lightmode/payments/usdc.png'); - } - - img.usdb { - content: url('../img/uses/lightmode/payments/usdb.png'); - } - - img.europ { - content: url('../img/uses/lightmode/payments/erop.png'); - } - - img.xsgd { - content: url('../img/uses/lightmode/payments/xsgd.png'); - } - - img.audd { - content: url('../img/uses/lightmode/payments/audd.png'); - } - } + background: #fff; + box-shadow: none; + .first-word { + color: var(--XRPL-Black-Black-80, #232325); + } + .rest-text { + color: var(--XRPL-Black-Black-80, #232325); + } + + /* Light mode payment logos */ + .project-logo { + img.ripple-usd { + content: url('../img/uses/lightmode/payments/rlusd.png'); + } + + img.usdc { + content: url('../img/uses/lightmode/payments/usdc.png'); + } + + img.usdb { + content: url('../img/uses/lightmode/payments/usdb.png'); + } + + img.europ { + content: url('../img/uses/lightmode/payments/erop.png'); + } + + img.xsgd { + content: url('../img/uses/lightmode/payments/xsgd.png'); + } + + img.audd { + content: url('../img/uses/lightmode/payments/audd.png'); + } + } } .advantages-section { .advantage-item { - strong{ + strong { color: var(--XRPL-Black-Black-80, #232325); } } @@ -1437,48 +1422,46 @@ main article .card-grid { /* Light mode embedded payments icons */ #embedded-payments-list { #digital-wallets { - content: url("../img/uses/lightmode/payments/digital-wallet.png"); + content: url('../img/uses/lightmode/payments/digital-wallet.png'); } - + #cross-border-remittance { - content: url("../img/uses/lightmode/payments/cross-border.png"); + content: url('../img/uses/lightmode/payments/cross-border.png'); } - + #regulated-foreign-exchange { - content: url("../img/uses/lightmode/payments/regulated.png"); + content: url('../img/uses/lightmode/payments/regulated.png'); } - + #merchant-settlement { - content: url("../img/uses/lightmode/payments/merchant-settlement.png"); + content: url('../img/uses/lightmode/payments/merchant-settlement.png'); } - + #b2b-payment-rails { - content: url("../img/uses/lightmode/payments/b2b-payment.png"); + content: url('../img/uses/lightmode/payments/b2b-payment.png'); } - + #compliance-first-payment-acceptance { - content: url("../img/uses/lightmode/payments/compliance.png"); + content: url('../img/uses/lightmode/payments/compliance.png'); } } /* Light mode battle-tested company logos */ .use-case-payments .battle-tested-section { .payments-project-card { - background: #FFF !important; + background: #fff !important; .project-logo img { &.coinpayments { content: url('../img/uses/lightmode/payments/coinpayments.png'); } - + &.ripple { content: url('../img/uses/lightmode/payments/ripple-black.png'); } - + &.friipay { content: url('../img/uses/lightmode/payments/friipay.png'); } } } - - } diff --git a/styles/light/_mixins.scss b/styles/light/_mixins.scss index ed858e5ad4..fdd5422331 100644 --- a/styles/light/_mixins.scss +++ b/styles/light/_mixins.scss @@ -1,5 +1,5 @@ -@mixin prefers-color-scheme( $scheme: dark ) { - @media (prefers-color-scheme: #{$scheme}) { - @content; - } - } \ No newline at end of file +@mixin prefers-color-scheme($scheme: dark) { + @media (prefers-color-scheme: #{$scheme}) { + @content; + } +} diff --git a/styles/xrpl.scss b/styles/xrpl.scss index a4a0ddcddb..db5846e08e 100644 --- a/styles/xrpl.scss +++ b/styles/xrpl.scss @@ -1,7 +1,7 @@ // Bootstrap-derived SASS. See README.md in this folder for instructions. -@import "_colors.scss"; -@import "_font-face.scss"; +@import '_colors.scss'; +@import '_font-face.scss'; $navbar-padding-y: 0; $nav-link-padding-x: 2rem; @@ -29,51 +29,59 @@ $input-btn-line-height: 1.25; $input-font-size: 1rem; // @import "_font-face.scss"; -$font-family-monospace: "Space Mono", monospace; -$font-family-sans-serif: "Work Sans", -apple-system, BlinkMacSystemFont, - "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", +$font-family-monospace: 'Space Mono', monospace; +$font-family-sans-serif: + 'Work Sans', + -apple-system, + BlinkMacSystemFont, + 'Segoe UI', + Roboto, + Oxygen-Sans, + Ubuntu, + Cantarell, + 'Helvetica Neue', sans-serif; $base-size: 16px; $line-height-base: 1.5; // Bootstrap v4 -@import "../node_modules/bootstrap/scss/bootstrap.scss"; +@import '../node_modules/bootstrap/scss/bootstrap.scss'; // Import site styles -@import "_font.scss"; -@import "_forms.scss"; -@import "_layout.scss"; -@import "_side-nav.scss"; -@import "_helpers.scss"; -@import "_buttons.scss"; -@import "_tables.scss"; -@import "_tables.scss"; -@import "_use-cases.scss"; -@import "_github-edit.scss"; -@import "_top-nav.scss"; -@import "_top-banner.scss"; -@import "_content.scss"; -@import "_code-tabs.scss"; -@import "_code-walkthrough.scss"; -@import "_diagrams.scss"; -@import "_external-links.scss"; -@import "_footer.scss"; -@import "_callouts.scss"; -@import "_cards.scss"; -@import "_breadcrumbs.scss"; -@import "_landings.scss"; -@import "_interactive-tutorials.scss"; -@import "_status-labels.scss"; -@import "_dev-tools.scss"; -@import "_print.scss"; -@import "_pages.scss"; -@import "_rpc-tool.scss"; -@import "_blog.scss"; -@import "_feedback.scss"; -@import "_video.scss"; -@import "_contribute.scss"; -@import "_docs-landing.scss"; -@import "_osano.scss"; +@import '_font.scss'; +@import '_forms.scss'; +@import '_layout.scss'; +@import '_side-nav.scss'; +@import '_helpers.scss'; +@import '_buttons.scss'; +@import '_tables.scss'; +@import '_tables.scss'; +@import '_use-cases.scss'; +@import '_github-edit.scss'; +@import '_top-nav.scss'; +@import '_top-banner.scss'; +@import '_content.scss'; +@import '_code-tabs.scss'; +@import '_code-walkthrough.scss'; +@import '_diagrams.scss'; +@import '_external-links.scss'; +@import '_footer.scss'; +@import '_callouts.scss'; +@import '_cards.scss'; +@import '_breadcrumbs.scss'; +@import '_landings.scss'; +@import '_interactive-tutorials.scss'; +@import '_status-labels.scss'; +@import '_dev-tools.scss'; +@import '_print.scss'; +@import '_pages.scss'; +@import '_rpc-tool.scss'; +@import '_blog.scss'; +@import '_feedback.scss'; +@import '_video.scss'; +@import '_contribute.scss'; +@import '_docs-landing.scss'; +@import '_osano.scss'; // Light/Dark theme settings --------------------------------------------------- // Option to only change theme on user system settings. No toggle. @@ -88,5 +96,5 @@ $line-height-base: 1.5; // } html.light { - @import "light/_light-theme.scss"; + @import 'light/_light-theme.scss'; } diff --git a/top-nav.yaml b/top-nav.yaml index de83b133e3..cb729df98e 100644 --- a/top-nav.yaml +++ b/top-nav.yaml @@ -50,7 +50,7 @@ groupTranslationKey: navbar.docs items: - icon: ./static/img/icons/docs.svg - # Note: arbitrary keys are dropped from these items, so the label & description are split on " || " + # Note: arbitrary keys are dropped from these items, so the label & description are split on " || " label: Documentation || Dive into XRP Ledger technology and start integrating. labelTranslationKey: topnav.docs.title || topnav.docs.description page: ./docs/index.page.tsx @@ -144,30 +144,30 @@ - group: Get Involved groupTranslationKey: topnav.community.get-involved items: - - page: ./community/events.page.tsx - label: Events - labelTranslationKey: topnav.community.events - - page: ./community/ambassadors.page.tsx - label: Ambassadors - labelTranslationKey: topnav.community.ambassadors - - page: ./community/developer-funding.page.tsx - label: Developer Funding - labelTranslationKey: topnav.community.developer-funding - - label: XRPL Jobs - labelTranslationKey: topnav.community.xrpl-jobs - href: https://jobs.xrpl.org/ - external: true - - label: Dev Blog - labelTranslationKey: topnav.community.dev-blog - href: /blog/ - - label: XRPL Grants - labelTranslationKey: topnav.community.xrpl-grants - href: https://xrplgrants.org/ - external: true - - label: GitHub - labelTranslationKey: topnav.community.github - href: https://github.com/XRPLF/ - external: true - - page: ./community/report-a-scam.md - label: Report a Scam - labelTranslationKey: topnav.community.report-a-scam + - page: ./community/events.page.tsx + label: Events + labelTranslationKey: topnav.community.events + - page: ./community/ambassadors.page.tsx + label: Ambassadors + labelTranslationKey: topnav.community.ambassadors + - page: ./community/developer-funding.page.tsx + label: Developer Funding + labelTranslationKey: topnav.community.developer-funding + - label: XRPL Jobs + labelTranslationKey: topnav.community.xrpl-jobs + href: https://jobs.xrpl.org/ + external: true + - label: Dev Blog + labelTranslationKey: topnav.community.dev-blog + href: /blog/ + - label: XRPL Grants + labelTranslationKey: topnav.community.xrpl-grants + href: https://xrplgrants.org/ + external: true + - label: GitHub + labelTranslationKey: topnav.community.github + href: https://github.com/XRPLF/ + external: true + - page: ./community/report-a-scam.md + label: Report a Scam + labelTranslationKey: topnav.community.report-a-scam